summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu-xetex
diff options
context:
space:
mode:
authorJonathan Kew <jfkthame@googlemail.com>2007-11-21 12:29:46 +0000
committerJonathan Kew <jfkthame@googlemail.com>2007-11-21 12:29:46 +0000
commit952d69f85d43b087ce9fa79d3fc6f1c076000bc7 (patch)
treedd6937a6486e80e1638618308481075efab000ae /Build/source/libs/icu-xetex
parent888236cb9df7b7d7b5a3e2d784037a9a59511c53 (diff)
updated icu-xetex library for XeTeX 0.997
git-svn-id: svn://tug.org/texlive/trunk@5536 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu-xetex')
-rw-r--r--Build/source/libs/icu-xetex/Doxyfile.in26
-rw-r--r--Build/source/libs/icu-xetex/Makefile.in4
-rw-r--r--Build/source/libs/icu-xetex/README2
-rw-r--r--Build/source/libs/icu-xetex/aclocal.m485
-rw-r--r--Build/source/libs/icu-xetex/allinone/allinone.sln68
-rw-r--r--Build/source/libs/icu-xetex/common/.cvsignore1
-rw-r--r--Build/source/libs/icu-xetex/common/Makefile.in77
-rw-r--r--Build/source/libs/icu-xetex/common/brkdict.cpp242
-rw-r--r--Build/source/libs/icu-xetex/common/brkdict.h174
-rw-r--r--Build/source/libs/icu-xetex/common/brkeng.cpp230
-rw-r--r--Build/source/libs/icu-xetex/common/brkeng.h265
-rw-r--r--Build/source/libs/icu-xetex/common/brkiter.cpp89
-rw-r--r--Build/source/libs/icu-xetex/common/caniter.cpp216
-rw-r--r--Build/source/libs/icu-xetex/common/common.vcproj100
-rw-r--r--Build/source/libs/icu-xetex/common/cpputils.h20
-rw-r--r--Build/source/libs/icu-xetex/common/dbbi.cpp637
-rw-r--r--Build/source/libs/icu-xetex/common/dbbi_tbl.cpp59
-rw-r--r--Build/source/libs/icu-xetex/common/dbbi_tbl.h90
-rw-r--r--Build/source/libs/icu-xetex/common/dictbe.cpp418
-rw-r--r--Build/source/libs/icu-xetex/common/dictbe.h193
-rw-r--r--Build/source/libs/icu-xetex/common/hash.h50
-rw-r--r--Build/source/libs/icu-xetex/common/localsvc.h25
-rw-r--r--Build/source/libs/icu-xetex/common/locid.cpp13
-rw-r--r--Build/source/libs/icu-xetex/common/locmap.c185
-rw-r--r--Build/source/libs/icu-xetex/common/locutil.cpp4
-rw-r--r--Build/source/libs/icu-xetex/common/putil.c1003
-rw-r--r--Build/source/libs/icu-xetex/common/putilimp.h42
-rw-r--r--Build/source/libs/icu-xetex/common/rbbi.cpp1516
-rw-r--r--Build/source/libs/icu-xetex/common/rbbicst.pl145
-rw-r--r--Build/source/libs/icu-xetex/common/rbbidata.cpp18
-rw-r--r--Build/source/libs/icu-xetex/common/rbbidata.h3
-rw-r--r--Build/source/libs/icu-xetex/common/rbbinode.cpp11
-rw-r--r--Build/source/libs/icu-xetex/common/rbbinode.h11
-rw-r--r--Build/source/libs/icu-xetex/common/rbbirb.h4
-rw-r--r--Build/source/libs/icu-xetex/common/rbbirpt.h96
-rw-r--r--Build/source/libs/icu-xetex/common/rbbiscan.cpp21
-rw-r--r--Build/source/libs/icu-xetex/common/rbbiscan.h10
-rw-r--r--Build/source/libs/icu-xetex/common/rbbisetb.cpp35
-rw-r--r--Build/source/libs/icu-xetex/common/rbbisetb.h8
-rw-r--r--Build/source/libs/icu-xetex/common/rbbistbl.cpp2
-rw-r--r--Build/source/libs/icu-xetex/common/rbbitblb.cpp131
-rw-r--r--Build/source/libs/icu-xetex/common/rbbitblb.h3
-rw-r--r--Build/source/libs/icu-xetex/common/resbund_cnv.cpp5
-rw-r--r--Build/source/libs/icu-xetex/common/ruleiter.h8
-rw-r--r--Build/source/libs/icu-xetex/common/serv.h8
-rw-r--r--Build/source/libs/icu-xetex/common/servnotf.cpp100
-rw-r--r--Build/source/libs/icu-xetex/common/sprpimpl.h4
-rw-r--r--Build/source/libs/icu-xetex/common/triedict.cpp1407
-rw-r--r--Build/source/libs/icu-xetex/common/triedict.h346
-rw-r--r--Build/source/libs/icu-xetex/common/ubidi.c1598
-rw-r--r--Build/source/libs/icu-xetex/common/ubidi_props.c12
-rw-r--r--Build/source/libs/icu-xetex/common/ubidi_props_data.c444
-rw-r--r--Build/source/libs/icu-xetex/common/ubidiimp.h96
-rw-r--r--Build/source/libs/icu-xetex/common/ubidiln.c479
-rw-r--r--Build/source/libs/icu-xetex/common/ubidiwrt.c109
-rw-r--r--Build/source/libs/icu-xetex/common/ubrk.cpp86
-rw-r--r--Build/source/libs/icu-xetex/common/ubrkimpl.h13
-rw-r--r--Build/source/libs/icu-xetex/common/ucase.c128
-rw-r--r--Build/source/libs/icu-xetex/common/ucase.h5
-rw-r--r--Build/source/libs/icu-xetex/common/ucase_props_data.c515
-rw-r--r--Build/source/libs/icu-xetex/common/uchar.c17
-rw-r--r--Build/source/libs/icu-xetex/common/uchar_props_data.c3518
-rw-r--r--Build/source/libs/icu-xetex/common/ucln_cmn.c34
-rw-r--r--Build/source/libs/icu-xetex/common/ucln_cmn.h5
-rw-r--r--Build/source/libs/icu-xetex/common/ucmp8.c572
-rw-r--r--Build/source/libs/icu-xetex/common/ucmp8.h244
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv.c188
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv2022.c158
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_bld.c142
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_bld.h15
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_cb.c130
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_imp.h5
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_io.c495
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_io.h98
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_lmb.c11
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_u16.c51
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_u32.c13
-rw-r--r--Build/source/libs/icu-xetex/common/ucnv_u8.c12
-rw-r--r--Build/source/libs/icu-xetex/common/ucnvhz.c59
-rw-r--r--Build/source/libs/icu-xetex/common/ucnvisci.c91
-rw-r--r--Build/source/libs/icu-xetex/common/ucnvmbcs.c6
-rw-r--r--Build/source/libs/icu-xetex/common/ucnvscsu.c50
-rw-r--r--Build/source/libs/icu-xetex/common/ucol_swp.c87
-rw-r--r--Build/source/libs/icu-xetex/common/udata.c218
-rw-r--r--Build/source/libs/icu-xetex/common/udataswp.h2
-rw-r--r--Build/source/libs/icu-xetex/common/uenumimp.h16
-rw-r--r--Build/source/libs/icu-xetex/common/uhash.c844
-rw-r--r--Build/source/libs/icu-xetex/common/uhash.h73
-rw-r--r--Build/source/libs/icu-xetex/common/uidna.cpp15
-rw-r--r--Build/source/libs/icu-xetex/common/uinit.c31
-rw-r--r--Build/source/libs/icu-xetex/common/uinvchar.c45
-rw-r--r--Build/source/libs/icu-xetex/common/uiter.cpp7
-rw-r--r--Build/source/libs/icu-xetex/common/uloc.c394
-rw-r--r--Build/source/libs/icu-xetex/common/umapfile.c52
-rw-r--r--Build/source/libs/icu-xetex/common/umath.c24
-rw-r--r--Build/source/libs/icu-xetex/common/umutex.c29
-rw-r--r--Build/source/libs/icu-xetex/common/unames.c133
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/brkiter.h165
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/caniter.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/dbbi.h252
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/locid.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/normlzr.h5
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/platform.h.in11
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ppalmos.h4
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/pwin32.h20
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/rbbi.h179
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/strenum.h19
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ubidi.h726
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ubrk.h169
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uchar.h382
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ucnv.h119
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uconfig.h35
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udata.h7
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udeprctd.h48
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/udraft.h506
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uidna.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uintrnal.h68
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uloc.h33
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/umachine.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/umisc.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/unifilt.h5
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uniset.h12
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/unistr.h81
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uobject.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uobslete.h9
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/urename.h3053
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ures.h228
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uscript.h112
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uset.h75
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usetiter.h89
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usprep.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/ustring.h156
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/usystem.h46
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utext.h907
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf.h16
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf16.h20
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf8.h77
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utf_old.h2
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utrace.h6
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/utypes.h29
-rw-r--r--Build/source/libs/icu-xetex/common/unicode/uversion.h20
-rw-r--r--Build/source/libs/icu-xetex/common/uniset.cpp15
-rw-r--r--Build/source/libs/icu-xetex/common/uniset_props.cpp98
-rw-r--r--Build/source/libs/icu-xetex/common/unistr_cnv.cpp481
-rw-r--r--Build/source/libs/icu-xetex/common/unorm.cpp10
-rw-r--r--Build/source/libs/icu-xetex/common/unorm_props_data.c4276
-rw-r--r--Build/source/libs/icu-xetex/common/uprops.c150
-rw-r--r--Build/source/libs/icu-xetex/common/uprops.h30
-rw-r--r--Build/source/libs/icu-xetex/common/ures_cnv.c6
-rw-r--r--Build/source/libs/icu-xetex/common/uresbund.c424
-rw-r--r--Build/source/libs/icu-xetex/common/uresdata.c25
-rw-r--r--Build/source/libs/icu-xetex/common/uresdata.h23
-rw-r--r--Build/source/libs/icu-xetex/common/uresimp.h79
-rw-r--r--Build/source/libs/icu-xetex/common/uscript.c27
-rw-r--r--Build/source/libs/icu-xetex/common/uset.cpp109
-rw-r--r--Build/source/libs/icu-xetex/common/usetiter.cpp24
-rw-r--r--Build/source/libs/icu-xetex/common/ushape.c65
-rw-r--r--Build/source/libs/icu-xetex/common/usprep.cpp46
-rw-r--r--Build/source/libs/icu-xetex/common/ustr_imp.h6
-rw-r--r--Build/source/libs/icu-xetex/common/ustr_wcs.c34
-rw-r--r--Build/source/libs/icu-xetex/common/ustrcase.c78
-rw-r--r--Build/source/libs/icu-xetex/common/ustrenum.cpp12
-rw-r--r--Build/source/libs/icu-xetex/common/ustrfmt.c31
-rw-r--r--Build/source/libs/icu-xetex/common/ustrfmt.h4
-rw-r--r--Build/source/libs/icu-xetex/common/ustrtrns.c920
-rw-r--r--Build/source/libs/icu-xetex/common/utext.cpp2331
-rw-r--r--Build/source/libs/icu-xetex/common/utf_impl.c30
-rw-r--r--Build/source/libs/icu-xetex/common/util.cpp205
-rw-r--r--Build/source/libs/icu-xetex/common/util_props.cpp214
-rw-r--r--Build/source/libs/icu-xetex/common/utrie.c125
-rw-r--r--Build/source/libs/icu-xetex/common/utrie.h53
-rw-r--r--Build/source/libs/icu-xetex/common/utypes.c13
-rw-r--r--Build/source/libs/icu-xetex/common/uvector.h10
-rw-r--r--Build/source/libs/icu-xetex/common/uvectr32.h6
-rw-r--r--Build/source/libs/icu-xetex/common/wintz.c581
-rw-r--r--Build/source/libs/icu-xetex/common/wintz.h37
-rw-r--r--Build/source/libs/icu-xetex/config.guess23
-rw-r--r--Build/source/libs/icu-xetex/config.sub28
-rw-r--r--Build/source/libs/icu-xetex/config/Makefile.inc.in16
-rw-r--r--Build/source/libs/icu-xetex/config/icu-config-bottom4
-rw-r--r--Build/source/libs/icu-xetex/config/make2sh.sed3
-rw-r--r--Build/source/libs/icu-xetex/config/mh-aix3
-rw-r--r--Build/source/libs/icu-xetex/config/mh-aix-gcc5
-rw-r--r--Build/source/libs/icu-xetex/config/mh-aix-va15
-rw-r--r--Build/source/libs/icu-xetex/config/mh-alpha-linux-cc7
-rw-r--r--Build/source/libs/icu-xetex/config/mh-alpha-linux-gcc7
-rw-r--r--Build/source/libs/icu-xetex/config/mh-alpha-osf7
-rw-r--r--Build/source/libs/icu-xetex/config/mh-beos5
-rw-r--r--Build/source/libs/icu-xetex/config/mh-bsd-gcc8
-rw-r--r--Build/source/libs/icu-xetex/config/mh-cygwin26
-rw-r--r--Build/source/libs/icu-xetex/config/mh-cygwin-msvc27
-rw-r--r--Build/source/libs/icu-xetex/config/mh-darwin6
-rw-r--r--Build/source/libs/icu-xetex/config/mh-hpux-acc4
-rw-r--r--Build/source/libs/icu-xetex/config/mh-irix4
-rw-r--r--Build/source/libs/icu-xetex/config/mh-linux7
-rw-r--r--Build/source/libs/icu-xetex/config/mh-linux-va10
-rw-r--r--Build/source/libs/icu-xetex/config/mh-mingw7
-rw-r--r--Build/source/libs/icu-xetex/config/mh-os39058
-rw-r--r--Build/source/libs/icu-xetex/config/mh-ptx65
-rw-r--r--Build/source/libs/icu-xetex/config/mh-qnx5
-rw-r--r--Build/source/libs/icu-xetex/config/mh-solaris3
-rw-r--r--Build/source/libs/icu-xetex/config/mh-solaris-gcc8
-rwxr-xr-xBuild/source/libs/icu-xetex/configure876
-rw-r--r--Build/source/libs/icu-xetex/configure.in116
-rw-r--r--Build/source/libs/icu-xetex/data/Makefile.in100
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/brkfiles.mk30
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/brklocal.mk31
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/char.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/en.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/en_US.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/en_US_POSIX.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/ja.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/line.txt341
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/line_th.txt173
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/root.txt21
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/sent.txt173
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/thaidict.brkbin104383 -> 0 bytes
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/thaidict.txt26359
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/word.txt160
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/word_POSIX.txt163
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/word_ja.txt180
-rw-r--r--Build/source/libs/icu-xetex/data/brkitr/word_th.txt72
-rw-r--r--Build/source/libs/icu-xetex/data/build.xml283
-rw-r--r--Build/source/libs/icu-xetex/data/cldr-icu-readme.txt58
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_AE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_BH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_DZ.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_EG.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_IQ.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_JO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_KW.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_LB.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_LY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_MA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_OM.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_QA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_SA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_SD.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_SY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_TN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ar_YE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/as.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/coll/as_IN.txt (renamed from Build/source/libs/icu-xetex/data/coll/ar_IN.txt)8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/be.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/be_BY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/bg.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/bg_BG.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/bn.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ca.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ca_ES.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/colfiles.mk42
-rw-r--r--Build/source/libs/icu-xetex/data/coll/collocal.mk7
-rw-r--r--Build/source/libs/icu-xetex/data/coll/cs.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/cs_CZ.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/da.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/da_DK.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_AT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_BE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_CH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_DE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de_LU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/de__PHONEBOOK.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/el.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/el_GR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_AU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_BE.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_BW.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_CA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_GB.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_HK.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_IE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_MT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_NZ.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_PH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_SG.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_US.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_US_POSIX.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_VI.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_ZA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/en_ZW.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/eo.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_AR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_BO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_CL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_CO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_CR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_DO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_EC.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_ES.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_GT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_HN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_MX.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_NI.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_PA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_PE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_PR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_PY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_SV.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_US.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_UY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es_VE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/es__TRADITIONAL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/et.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/et_EE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fa.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fa_AF.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fa_IR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fi.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fi_FI.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fo.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fo_FO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr_BE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr_CA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr_CH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr_FR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/fr_LU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ga.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ga_IE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/gu.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/gu_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/haw.txt31
-rw-r--r--Build/source/libs/icu-xetex/data/coll/he.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/he_IL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hi.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hi_.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hi_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hi__DIRECT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hr.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hr_HR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hu.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/hu_HU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/id.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/id_ID.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/in.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/in_ID.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/is.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/is_IS.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/it.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/it_CH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/it_IT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/iw.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/iw_IL.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ja.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ja_JP.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kk.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kk_KZ.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kl.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kl_GL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kn.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kn_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ko.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ko_KR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/kok.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/coll/lt.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/lt_LT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/lv.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/lv_LV.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mk.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mk_MK.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ml.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mr.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mr_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ms.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ms_BN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ms_MY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mt.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/mt_MT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nb.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nb_NO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nl.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nl_BE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nl_NL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nn.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/nn_NO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/om.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/om_ET.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/om_KE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/or.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pa.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pa_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pl.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pl_PL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ps.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ps_AF.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pt.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pt_BR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/pt_PT.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ro.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ro_RO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/root.txt2760
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ru.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ru_RU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ru_UA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sh.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sh_BA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sh_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sk.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sk_SK.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sl.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sl_SI.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sq.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sq_AL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr_BA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr_Cyrl.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr_Cyrl_BA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr_Cyrl_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sr_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sv.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sv_FI.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/sv_SE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ta.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/ta_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/te.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/te_IN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/th.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/th_TH.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/tr.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/tr_TR.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/uk.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/uk_UA.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/vi.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/coll/vi_VN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh.txt18
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_CN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_HK.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_Hant.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_MO.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_SG.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_TW.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh_TW_STROKE.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/coll/zh__PINYIN.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/icu-config.xml310
-rw-r--r--Build/source/libs/icu-xetex/data/locales/af.txt83
-rw-r--r--Build/source/libs/icu-xetex/data/locales/af_ZA.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/am.txt175
-rw-r--r--Build/source/libs/icu-xetex/data/locales/am_ET.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar.txt1797
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_AE.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_BH.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_DZ.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_EG.txt13
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_IQ.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_JO.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_KW.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_LB.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_LY.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_MA.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_OM.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_QA.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_SA.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_SD.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_SY.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_TN.txt18
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ar_YE.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/as.txt35
-rw-r--r--Build/source/libs/icu-xetex/data/locales/as_IN.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az.txt38
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az_AZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az_Cyrl.txt29
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az_Cyrl_AZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az_Latn.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/az_Latn_AZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/be.txt32
-rw-r--r--Build/source/libs/icu-xetex/data/locales/be_BY.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/bg.txt844
-rw-r--r--Build/source/libs/icu-xetex/data/locales/bg_BG.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/bn.txt104
-rw-r--r--Build/source/libs/icu-xetex/data/locales/bn_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ca.txt36
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ca_ES.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/cs.txt346
-rw-r--r--Build/source/libs/icu-xetex/data/locales/cs_CZ.txt9
-rw-r--r--Build/source/libs/icu-xetex/data/locales/cy.txt34
-rw-r--r--Build/source/libs/icu-xetex/data/locales/cy_GB.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/da.txt490
-rw-r--r--Build/source/libs/icu-xetex/data/locales/da_DK.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de.txt147
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de_AT.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de_BE.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de_CH.txt27
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de_DE.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/de_LU.txt30
-rw-r--r--Build/source/libs/icu-xetex/data/locales/el.txt215
-rw-r--r--Build/source/libs/icu-xetex/data/locales/el_GR.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en.txt453
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_AU.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_BE.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_BW.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_CA.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_GB.txt24
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_HK.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_IE.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_IN.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_MT.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_NZ.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_PH.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_PK.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_RH.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_SG.txt36
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_US.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_US_POSIX.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_VI.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_ZA.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/en_ZW.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/eo.txt33
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es.txt575
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_AR.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_BO.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_CL.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_CO.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_CR.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_DO.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_EC.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_ES.txt9
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_GT.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_HN.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_MX.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_NI.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_PA.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_PE.txt27
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_PR.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_PY.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_SV.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_US.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_UY.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/es_VE.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/et.txt33
-rw-r--r--Build/source/libs/icu-xetex/data/locales/et_EE.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/eu.txt38
-rw-r--r--Build/source/libs/icu-xetex/data/locales/eu_ES.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fa.txt1217
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fa_AF.txt172
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fa_IR.txt18
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fi.txt924
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fi_FI.txt18
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fo.txt31
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fo_FO.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr.txt894
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr_BE.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr_CA.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr_CH.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr_FR.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/fr_LU.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ga.txt97
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ga_IE.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gl.txt28
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gl_ES.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gu.txt23
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gu_IN.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gv.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/gv_GB.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/haw.txt102
-rw-r--r--Build/source/libs/icu-xetex/data/locales/haw_US.txt41
-rw-r--r--Build/source/libs/icu-xetex/data/locales/he.txt936
-rw-r--r--Build/source/libs/icu-xetex/data/locales/he_IL.txt24
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hi.txt124
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hi_IN.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hr.txt89
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hr_HR.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hu.txt343
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hu_HU.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hy.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hy_AM.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/hy_AM_REVISED.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/id.txt32
-rw-r--r--Build/source/libs/icu-xetex/data/locales/id_ID.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/in.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/in_ID.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/is.txt39
-rw-r--r--Build/source/libs/icu-xetex/data/locales/is_IS.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/it.txt390
-rw-r--r--Build/source/libs/icu-xetex/data/locales/it_CH.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/it_IT.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/iw.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/iw_IL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ja.txt1280
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ja_JP.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ja_JP_TRADITIONAL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kk.txt17
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kk_KZ.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kl.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kl_GL.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kn.txt26
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kn_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ko.txt353
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ko_KR.txt89
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kok.txt27
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kok_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kw.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/kw_GB.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/lt.txt137
-rw-r--r--Build/source/libs/icu-xetex/data/locales/lt_LT.txt128
-rw-r--r--Build/source/libs/icu-xetex/data/locales/lv.txt35
-rw-r--r--Build/source/libs/icu-xetex/data/locales/lv_LV.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mk.txt26
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mk_MK.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ml.txt361
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ml_IN.txt19
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mr.txt28
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mr_IN.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ms.txt33
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ms_BN.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ms_MY.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mt.txt211
-rw-r--r--Build/source/libs/icu-xetex/data/locales/mt_MT.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nb.txt874
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nb_NO.txt31
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nl.txt516
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nl_BE.txt23
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nl_NL.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nn.txt845
-rw-r--r--Build/source/libs/icu-xetex/data/locales/nn_NO.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/no.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/no_NO.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/no_NO_NY.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/om.txt59
-rw-r--r--Build/source/libs/icu-xetex/data/locales/om_ET.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/om_KE.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/or.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/locales/or_IN.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pa.txt66
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pa_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pl.txt262
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pl_PL.txt493
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ps.txt100
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ps_AF.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pt.txt329
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pt_BR.txt141
-rw-r--r--Build/source/libs/icu-xetex/data/locales/pt_PT.txt75
-rw-r--r--Build/source/libs/icu-xetex/data/locales/resfiles.mk64
-rw-r--r--Build/source/libs/icu-xetex/data/locales/reslocal.mk37
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ro.txt128
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ro_RO.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/root.txt229
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ru.txt1021
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ru_RU.txt37
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ru_UA.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sh.txt7
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sh_CS.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sh_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sk.txt94
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sk_SK.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sl.txt78
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sl_SI.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/so.txt59
-rw-r--r--Build/source/libs/icu-xetex/data/locales/so_DJ.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/so_ET.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/so_KE.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/so_SO.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sq.txt21
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sq_AL.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr.txt81
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_CS.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Cyrl.txt30
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Cyrl_CS.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Cyrl_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Latn.txt86
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Latn_CS.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_Latn_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sr_YU.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sv.txt705
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sv_FI.txt108
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sv_SE.txt71
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sw.txt66
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sw_KE.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/sw_TZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ta.txt36
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ta_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/te.txt111
-rw-r--r--Build/source/libs/icu-xetex/data/locales/te_IN.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/th.txt1990
-rw-r--r--Build/source/libs/icu-xetex/data/locales/th_TH.txt55
-rw-r--r--Build/source/libs/icu-xetex/data/locales/th_TH_TRADITIONAL.txt4
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ti.txt63
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ti_ER.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ti_ET.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/tr.txt358
-rw-r--r--Build/source/libs/icu-xetex/data/locales/tr_TR.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uk.txt722
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uk_UA.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ur.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ur_IN.txt24
-rw-r--r--Build/source/libs/icu-xetex/data/locales/ur_PK.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz_Cyrl.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz_Cyrl_UZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz_Latn.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz_Latn_UZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/uz_UZ.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/locales/vi.txt21
-rw-r--r--Build/source/libs/icu-xetex/data/locales/vi_VN.txt6
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh.txt823
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_CN.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_HK.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hans.txt890
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hans_CN.txt51
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hans_SG.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hant.txt694
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hant_HK.txt74
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hant_MO.txt74
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_Hant_TW.txt126
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_MO.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_SG.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/locales/zh_TW.txt12
-rw-r--r--Build/source/libs/icu-xetex/data/makedata.mak137
-rw-r--r--Build/source/libs/icu-xetex/data/makedata.vcproj6
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/convrtrs.txt120
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/gb18030.ucm4
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/ibm-4517_P100-2005.ucm470
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/ibm-9067_X100-2005.ucm370
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/ibm-9448_X100-2005.ucm (renamed from Build/source/libs/icu-xetex/data/mappings/windows-1256-2000.ucm)69
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/iso-8859_10-1998.ucm307
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/iso-8859_11-2001.ucm301
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/iso-8859_14-1998.ucm304
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/macos-6_2-10.4.ucm (renamed from Build/source/libs/icu-xetex/data/mappings/macos-6-10.2.ucm)20
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk (renamed from Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk.omit)8
-rw-r--r--Build/source/libs/icu-xetex/data/mappings/ucmfiles.mk7
-rw-r--r--Build/source/libs/icu-xetex/data/misc/CurrencyData.txt18
-rw-r--r--Build/source/libs/icu-xetex/data/misc/misclocal.mk1
-rw-r--r--Build/source/libs/icu-xetex/data/misc/supplementalData.txt8028
-rw-r--r--Build/source/libs/icu-xetex/data/misc/zoneinfo.txt2555
-rw-r--r--Build/source/libs/icu-xetex/data/rbnf/ja.txt64
-rw-r--r--Build/source/libs/icu-xetex/data/rbnf/rbnflocal.mk5
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Any_Accents.txt317
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Any_Publishing.txt29
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Arabic_Latin.txt231
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_InterIndic.txt186
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Bengali_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/CanadianAboriginal_Latin.txt191
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Cyrillic_Latin.txt221
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_InterIndic.txt234
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Devanagari_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Fullwidth_Halfwidth.txt40
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Georgian_Latin.txt44
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Greek_Latin.txt370
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Greek_Latin_UNGEGN.txt145
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_InterIndic.txt182
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gujarati_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_InterIndic.txt158
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Gurmukhi_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Han_Latin.txt51
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Han_Spacedhan.txt29
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Hangul_Latin.txt13
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Hebrew_Latin.txt116
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Hiragana_Katakana.txt102
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Hiragana_Latin.txt20
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Bengali.txt255
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Devanagari.txt309
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Gujarati.txt266
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Gurmukhi.txt289
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Kannada.txt271
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Latin.txt997
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Malayalam.txt271
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Oriya.txt265
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Tamil.txt286
-rw-r--r--Build/source/libs/icu-xetex/data/translit/InterIndic_Telugu.txt270
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Jamo_Latin.txt13
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_InterIndic.txt176
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Kannada_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Armenian.txt91
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Bengali.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_ConjoiningJamo.txt251
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Devanagari.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Ethiopic.txt353
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Gujarati.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Gurmukhi.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Hangul.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_InterIndic.txt737
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Jamo.txt536
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Kannada.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Katakana.txt379
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Malayalam.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_NumericPinyin.txt37
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Oriya.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Tamil.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Telugu.txt15
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Latin_Thai.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_InterIndic.txt161
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Malayalam_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_InterIndic.txt169
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Oriya_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Pinyin_NumericPinyin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Spacedhan_Han.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Syriac_Latin.txt56
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_InterIndic.txt144
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tamil_Telugu.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Bengali.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Devanagari.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Gujarati.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Gurmukhi.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_InterIndic.txt156
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Kannada.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Latin.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Malayalam.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Oriya.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Telugu_Tamil.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Thaana_Latin.txt440
-rw-r--r--Build/source/libs/icu-xetex/data/translit/ThaiLogical_Latin.txt193
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Thai_Latin.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Thai_ThaiLogical.txt32
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Thai_ThaiSemi.txt22
-rw-r--r--Build/source/libs/icu-xetex/data/translit/Tone_Digit.txt11
-rw-r--r--Build/source/libs/icu-xetex/data/translit/el.txt2
-rw-r--r--Build/source/libs/icu-xetex/data/translit/en.txt2
-rw-r--r--Build/source/libs/icu-xetex/data/translit/root.txt1422
-rw-r--r--Build/source/libs/icu-xetex/data/translit/trnsfiles.mk6
-rw-r--r--Build/source/libs/icu-xetex/data/translit/trnslocal.mk6
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/BidiMirroring.txt42
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/Blocks.txt19
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/CaseFolding.txt37
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedAge.txt54
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedBidiClass.txt119
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedCoreProperties.txt442
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedJoiningGroup.txt10
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedJoiningType.txt34
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedNormalizationProps.txt79
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/DerivedNumericValues.txt183
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/EastAsianWidth.txt64
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/FractionalUCA.txt33419
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/GraphemeBreakProperty.txt30
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/LineBreak.txt150
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/NormalizationCorrections.txt14
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/NormalizationTest.txt98
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/PropList.txt1818
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/PropertyAliases.txt8
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/PropertyValueAliases.txt24
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/Scripts.txt2454
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/SentenceBreakProperty.txt104
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/SpecialCasing.txt16
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/UCARules.txt1408
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/UnicodeData.txt1493
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/WordBreakProperty.txt84
-rw-r--r--Build/source/libs/icu-xetex/data/unidata/changes.txt112
-rw-r--r--Build/source/libs/icu-xetex/data/xml/brkitr/en.xml18
-rw-r--r--Build/source/libs/icu-xetex/data/xml/brkitr/en_US.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/brkitr/en_US_POSIX.xml27
-rw-r--r--Build/source/libs/icu-xetex/data/xml/brkitr/ja.xml25
-rw-r--r--Build/source/libs/icu-xetex/data/xml/brkitr/root.xml32
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ar.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/be.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/bg.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ca.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/cs.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/da.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/de.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/dz.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/el.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/en.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/en_BE.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/eo.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/es.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/et.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/fa.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/fa_AF.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/fi.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/fo.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/fr.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/gu.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/he.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/hi.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/hr.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/hu.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/is.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/it.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ja.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/kk.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/kl.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/kn.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ko.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/lt.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/lv.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/mk.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ml.xml18
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/mr.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/mt.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/nb.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/nn.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/om.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/or.xml17
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/pa.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/pl.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ps.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ro.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/root.xml24
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ru.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sh.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sk.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sl.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sq.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sr.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/sv.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/ta.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/te.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/th.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/tr.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/uk.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/vi.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh_HK.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh_Hant.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh_MO.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh_TW.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/collation/zh_TW_STROKE.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/deprecatedList.dtd23
-rw-r--r--Build/source/libs/icu-xetex/data/xml/deprecatedList.xml77
-rw-r--r--Build/source/libs/icu-xetex/data/xml/experimental/az_AZ.txt21
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/aa.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/aa_DJ.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/aa_ER.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/aa_ER_SAAHO.xml20
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/aa_ET.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/af.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/am.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ar.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/as.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/az.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/az_AZ.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/az_Cyrl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/az_Latn.xml26
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/be.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/bg.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/bn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/bs.xml14
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/byn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/byn_ER.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ca.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/cs.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/cy.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/da.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/de.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/de_LI.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/dv.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/dv_MV.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/dz.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/el.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_AS.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_BZ.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_GU.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_JM.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_MH.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_MP.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_TT.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_UM.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/en_US_POSIX.xml15
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/eo.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/es.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/et.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/eu.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/fa.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/fi.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/fo.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/fr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/fr_MC.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ga.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gez.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gez_ER.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gez_ET.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gu.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/gv.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/haw.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/haw_US.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/he.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/hi.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/hr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/hu.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/hy.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/id.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/is.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/it.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/iu.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/iw.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ja.xml39
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ka.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ka_GE.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/kk.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/kl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/km.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/km_KH.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/kn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ko.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/kok.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/kw.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ky.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ky_KG.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/lo.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/lt.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/lv.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/mk.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ml.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/mn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/mn_MN.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/mr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ms.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/mt.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/nb.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/nl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/nn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/no.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/om.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/or.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/pa.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/pl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ps.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/pt.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ro.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/root.xml94
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ru.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sa.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sa_IN.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sh.xml17
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sid.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sid_ET.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sk.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sl.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/so.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sq.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sr_Cyrl.xml25
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sr_Latn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sv.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/sw.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/syr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/syr_SY.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ta.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/te.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/th.xml37
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ti.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/tig.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/tig_ER.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/tr.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/tt.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/tt_RU.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uk.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ur.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/ur_IN.xml18
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uz.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uz_Arab.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uz_Cyrl.xml26
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uz_Latn.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/uz_UZ.xml10
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/vi.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/wal.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/wal_ET.xml19
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/zh.xml12
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/zh_Hans.xml27
-rw-r--r--Build/source/libs/icu-xetex/data/xml/main/zh_Hant.xml12
-rw-r--r--Build/source/libs/icu-xetex/extra/uconv/Makefile.in4
-rw-r--r--Build/source/libs/icu-xetex/extra/uconv/uconv.cpp14
-rw-r--r--Build/source/libs/icu-xetex/extra/uconv/uconv.vcproj4
-rw-r--r--Build/source/libs/icu-xetex/i18n/Makefile.in38
-rw-r--r--Build/source/libs/icu-xetex/i18n/anytrans.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/anytrans.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/astro.cpp48
-rw-r--r--Build/source/libs/icu-xetex/i18n/astro.h22
-rw-r--r--Build/source/libs/icu-xetex/i18n/calendar.cpp26
-rw-r--r--Build/source/libs/icu-xetex/i18n/choicfmt.cpp33
-rw-r--r--Build/source/libs/icu-xetex/i18n/coleitr.cpp540
-rw-r--r--Build/source/libs/icu-xetex/i18n/cpdtrans.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/csdetect.cpp387
-rw-r--r--Build/source/libs/icu-xetex/i18n/csdetect.h56
-rw-r--r--Build/source/libs/icu-xetex/i18n/csmatch.cpp61
-rw-r--r--Build/source/libs/icu-xetex/i18n/csmatch.h44
-rw-r--r--Build/source/libs/icu-xetex/i18n/csr2022.cpp172
-rw-r--r--Build/source/libs/icu-xetex/i18n/csr2022.h86
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrecog.cpp28
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrecog.h42
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrmbcs.cpp517
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrmbcs.h205
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrsbcs.cpp1099
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrsbcs.h364
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrucode.cpp146
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrucode.h106
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrutf8.cpp111
-rw-r--r--Build/source/libs/icu-xetex/i18n/csrutf8.h42
-rw-r--r--Build/source/libs/icu-xetex/i18n/datefmt.cpp26
-rw-r--r--Build/source/libs/icu-xetex/i18n/dcfmtsym.cpp44
-rw-r--r--Build/source/libs/icu-xetex/i18n/decimfmt.cpp40
-rw-r--r--Build/source/libs/icu-xetex/i18n/digitlst.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/dtfmtsym.cpp1225
-rw-r--r--Build/source/libs/icu-xetex/i18n/esctrn.cpp28
-rw-r--r--Build/source/libs/icu-xetex/i18n/esctrn.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/fmtable.cpp23
-rw-r--r--Build/source/libs/icu-xetex/i18n/gregocal.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/hebrwcal.cpp19
-rw-r--r--Build/source/libs/icu-xetex/i18n/hebrwcal.h10
-rw-r--r--Build/source/libs/icu-xetex/i18n/i18n.vcproj132
-rw-r--r--Build/source/libs/icu-xetex/i18n/inputext.cpp162
-rw-r--r--Build/source/libs/icu-xetex/i18n/inputext.h59
-rw-r--r--Build/source/libs/icu-xetex/i18n/name2uni.cpp5
-rw-r--r--Build/source/libs/icu-xetex/i18n/name2uni.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/nfrlist.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/nfrule.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/nfsubs.h16
-rw-r--r--Build/source/libs/icu-xetex/i18n/nortrans.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/nultrans.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/numfmt.cpp67
-rw-r--r--Build/source/libs/icu-xetex/i18n/olsontz.cpp79
-rw-r--r--Build/source/libs/icu-xetex/i18n/olsontz.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/quant.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbnf.cpp5
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbt.cpp11
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbt_data.cpp34
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbt_data.h9
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbt_pars.cpp313
-rw-r--r--Build/source/libs/icu-xetex/i18n/rbt_pars.h52
-rw-r--r--Build/source/libs/icu-xetex/i18n/regexcmp.cpp34
-rw-r--r--Build/source/libs/icu-xetex/i18n/regexcmp.h11
-rw-r--r--Build/source/libs/icu-xetex/i18n/regeximp.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/rematch.cpp12
-rw-r--r--Build/source/libs/icu-xetex/i18n/remtrans.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/repattrn.cpp5
-rw-r--r--Build/source/libs/icu-xetex/i18n/simpletz.cpp7
-rw-r--r--Build/source/libs/icu-xetex/i18n/smpdtfmt.cpp424
-rw-r--r--Build/source/libs/icu-xetex/i18n/sortkey.cpp10
-rw-r--r--Build/source/libs/icu-xetex/i18n/stsearch.cpp199
-rw-r--r--Build/source/libs/icu-xetex/i18n/tblcoll.cpp107
-rw-r--r--Build/source/libs/icu-xetex/i18n/timezone.cpp43
-rw-r--r--Build/source/libs/icu-xetex/i18n/titletrn.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/tolowtrn.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/toupptrn.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/translit.cpp78
-rw-r--r--Build/source/libs/icu-xetex/i18n/transreg.cpp53
-rw-r--r--Build/source/libs/icu-xetex/i18n/transreg.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/tridpars.cpp10
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucal.cpp29
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucln_in.c6
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucln_in.h3
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol.cpp957
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_bld.cpp36
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_cnt.cpp337
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_cnt.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_elm.cpp155
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_elm.h14
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_imp.h26
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_res.cpp296
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_sit.cpp14
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_tok.cpp8
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_tok.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucol_wgt.c4
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucoleitr.cpp29
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucsdet.cpp234
-rw-r--r--Build/source/libs/icu-xetex/i18n/ucurr.cpp21
-rw-r--r--Build/source/libs/icu-xetex/i18n/udat.cpp248
-rw-r--r--Build/source/libs/icu-xetex/i18n/ulocdata.c25
-rw-r--r--Build/source/libs/icu-xetex/i18n/umsg.cpp166
-rw-r--r--Build/source/libs/icu-xetex/i18n/unesctrn.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/uni2name.h6
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/calendar.h14
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/coll.h16
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/curramt.h24
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/currunit.h22
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/dcfmtsym.h22
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/decimfmt.h28
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/dtfmtsym.h236
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/fmtable.h45
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/format.h5
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/gregocal.h5
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/measfmt.h10
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/measunit.h12
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/measure.h22
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/msgfmt.h4
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/numfmt.h17
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/rbnf.h33
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/regex.h8
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/simpletz.h2
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/smpdtfmt.h33
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/sortkey.h8
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/stsearch.h7
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/tblcoll.h22
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/timezone.h18
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/translit.h49
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/ucal.h282
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/ucol.h106
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/ucsdet.h350
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/ucurr.h30
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/udat.h95
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/ulocdata.h58
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/umsg.h56
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/unum.h123
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/uregex.h132
-rw-r--r--Build/source/libs/icu-xetex/i18n/unicode/utmscale.h98
-rw-r--r--Build/source/libs/icu-xetex/i18n/uregex.cpp7
-rw-r--r--Build/source/libs/icu-xetex/i18n/usearch.cpp4
-rw-r--r--Build/source/libs/icu-xetex/i18n/utmscale.c120
-rw-r--r--Build/source/libs/icu-xetex/i18n/windtfmt.cpp315
-rw-r--r--Build/source/libs/icu-xetex/i18n/windtfmt.h148
-rw-r--r--Build/source/libs/icu-xetex/i18n/winnmfmt.cpp345
-rw-r--r--Build/source/libs/icu-xetex/i18n/winnmfmt.h168
-rw-r--r--Build/source/libs/icu-xetex/icudefs.mk.in2
-rw-r--r--Build/source/libs/icu-xetex/io/Makefile.in44
-rw-r--r--Build/source/libs/icu-xetex/io/io.vcproj16
-rw-r--r--Build/source/libs/icu-xetex/io/locbund.c76
-rw-r--r--Build/source/libs/icu-xetex/io/locbund.h3
-rw-r--r--Build/source/libs/icu-xetex/io/ucln_io.c51
-rw-r--r--Build/source/libs/icu-xetex/io/ucln_io.h37
-rw-r--r--Build/source/libs/icu-xetex/io/ufile.c29
-rw-r--r--Build/source/libs/icu-xetex/io/ufmt_cmn.c81
-rw-r--r--Build/source/libs/icu-xetex/io/unicode/ustdio.h137
-rw-r--r--Build/source/libs/icu-xetex/io/unicode/ustream.h6
-rw-r--r--Build/source/libs/icu-xetex/io/uprintf.h3
-rw-r--r--Build/source/libs/icu-xetex/io/uprntf_p.c22
-rw-r--r--Build/source/libs/icu-xetex/io/uscanf_p.c175
-rw-r--r--Build/source/libs/icu-xetex/io/ustdio.c8
-rw-r--r--Build/source/libs/icu-xetex/io/ustream.cpp32
-rw-r--r--Build/source/libs/icu-xetex/layout/AnchorTables.cpp9
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp16
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h3
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicShaping.cpp222
-rw-r--r--Build/source/libs/icu-xetex/layout/ArabicShaping.h21
-rw-r--r--Build/source/libs/icu-xetex/layout/CanonShaping.h4
-rw-r--r--Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp15
-rw-r--r--Build/source/libs/icu-xetex/layout/DefaultCharMapper.h5
-rw-r--r--Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp2
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphIterator.cpp54
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphIterator.h16
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h2
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp5
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h3
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp7
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h5
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp6
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h6
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp4
-rw-r--r--Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h4
-rw-r--r--Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp33
-rw-r--r--Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp338
-rw-r--r--Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h125
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicClassTables.cpp120
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp8
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicReordering.cpp306
-rw-r--r--Build/source/libs/icu-xetex/layout/IndicReordering.h32
-rw-r--r--Build/source/libs/icu-xetex/layout/KernTable.cpp28
-rw-r--r--Build/source/libs/icu-xetex/layout/KernTable.h6
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp7
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerReordering.cpp192
-rw-r--r--Build/source/libs/icu-xetex/layout/KhmerReordering.h9
-rw-r--r--Build/source/libs/icu-xetex/layout/LEFontInstance.cpp73
-rw-r--r--Build/source/libs/icu-xetex/layout/LEFontInstance.h105
-rw-r--r--Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp36
-rw-r--r--Build/source/libs/icu-xetex/layout/LEGlyphStorage.h83
-rw-r--r--Build/source/libs/icu-xetex/layout/LEInsertionList.h9
-rw-r--r--Build/source/libs/icu-xetex/layout/LELanguages.h8
-rw-r--r--Build/source/libs/icu-xetex/layout/LEScripts.h63
-rw-r--r--Build/source/libs/icu-xetex/layout/LETypes.h11
-rw-r--r--Build/source/libs/icu-xetex/layout/LayoutEngine.cpp97
-rw-r--r--Build/source/libs/icu-xetex/layout/LayoutEngine.h15
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupProcessor.cpp132
-rw-r--r--Build/source/libs/icu-xetex/layout/LookupProcessor.h14
-rw-r--r--Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl90
-rw-r--r--Build/source/libs/icu-xetex/layout/Makefile.in44
-rw-r--r--Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp7
-rw-r--r--Build/source/libs/icu-xetex/layout/MirroredCharData.cpp108
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp111
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h53
-rw-r--r--Build/source/libs/icu-xetex/layout/OpenTypeTables.h13
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp60
-rw-r--r--Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h62
-rw-r--r--Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp208
-rw-r--r--Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp2
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp87
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h129
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanReordering.cpp381
-rw-r--r--Build/source/libs/icu-xetex/layout/TibetanReordering.h151
-rw-r--r--Build/source/libs/icu-xetex/layout/layout.vcproj35
-rw-r--r--Build/source/libs/icu-xetex/layoutex/Makefile.in41
-rw-r--r--Build/source/libs/icu-xetex/layoutex/ParagraphLayout.cpp63
-rw-r--r--Build/source/libs/icu-xetex/layoutex/layout/RunArrays.h15
-rw-r--r--Build/source/libs/icu-xetex/layoutex/layoutex.vcproj12
-rwxr-xr-xBuild/source/libs/icu-xetex/runConfigureICU96
-rw-r--r--Build/source/libs/icu-xetex/samples/Makefile.in4
-rw-r--r--Build/source/libs/icu-xetex/samples/break/break.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/cal/cal.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/case/case.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/citer/citer.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/coll/coll.cpp5
-rw-r--r--Build/source/libs/icu-xetex/samples/coll/coll.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/csdet/Makefile.in93
-rw-r--r--Build/source/libs/icu-xetex/samples/csdet/csdet.c73
-rw-r--r--Build/source/libs/icu-xetex/samples/csdet/csdet.sln21
-rw-r--r--Build/source/libs/icu-xetex/samples/csdet/csdet.vcproj140
-rw-r--r--Build/source/libs/icu-xetex/samples/date/date.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/datecal/Makefile4
-rw-r--r--Build/source/libs/icu-xetex/samples/datefmt/datefmt.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/FontMap.cpp21
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/GDIFontInstance.cpp29
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/layout.cpp8
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/layout.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/paragraph.cpp192
-rw-r--r--Build/source/libs/icu-xetex/samples/layout/paragraph.h18
-rw-r--r--Build/source/libs/icu-xetex/samples/legacy/legacy.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/msgfmt/msgfmt.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/numfmt/numfmt.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/props/props.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/readme.txt4
-rw-r--r--Build/source/libs/icu-xetex/samples/strsrch/strsrch.cpp5
-rw-r--r--Build/source/libs/icu-xetex/samples/strsrch/strsrch.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/translit/translit.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/uciter8/uciter8.sln10
-rw-r--r--Build/source/libs/icu-xetex/samples/uciter8/uciter8.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/uciter8/uit_len8.c151
-rw-r--r--Build/source/libs/icu-xetex/samples/ucnv/ucnv.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/udata/reader.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/udata/writer.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/ufortune/resources/Makefile4
-rw-r--r--Build/source/libs/icu-xetex/samples/ufortune/resources/es.txt224
-rw-r--r--Build/source/libs/icu-xetex/samples/ufortune/resources/fortune_resources.mak5
-rw-r--r--Build/source/libs/icu-xetex/samples/ufortune/ufortune.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/ugrep/ugrep.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/uresb/uresb.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/samples/ustring/ustring.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/stubdata/Makefile.in34
-rw-r--r--Build/source/libs/icu-xetex/stubdata/stubdata.vcproj12
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/Makefile.in28
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/bocu1tst.c4
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/callcoll.c27
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/callcoll.h6
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/calltest.c6
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/capitst.c87
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cbiapts.c8
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cbiditst.c1754
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ccaltst.c62
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ccapitst.c326
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cdattst.c26
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cdtdptst.c23
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cdtrgtst.c90
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/chashtst.c8
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cintltst.vcproj11
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cldrtest.c179
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cloctst.c372
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cloctst.h17
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cmsccoll.c118
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cmsgtst.c26
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cnmdptst.c48
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cnumtst.c49
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/crestst.c82
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/creststn.c392
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/creststn.h17
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cstrcase.c41
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cucdapi.c61
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cucdtst.c236
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cucdtst.h28
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/currtest.c7
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/custrtrn.c421
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/custrtst.c49
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/cutiltst.c4
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/eurocreg.c9
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/hpmufn.c53
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/nccbtst.c164
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ncnvfbts.c32
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ncnvtst.c262
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/nfsprep.c42
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/nucnvtst.c346
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/putiltst.c9
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/reapits.c69
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/spreptst.c58
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/stdnmtst.c21
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/tracetst.c9
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ucmptst.c201
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/ucsdetst.c356
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/udatatst.c277
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/utexttst.c10
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/utf8tst.c133
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/utmstest.c146
-rw-r--r--Build/source/libs/icu-xetex/test/cintltst/utransts.c9
-rw-r--r--Build/source/libs/icu-xetex/test/collperf/.cvsignore1
-rw-r--r--Build/source/libs/icu-xetex/test/collperf/collperf.cpp1749
-rw-r--r--Build/source/libs/icu-xetex/test/collperf/collperf.dsp160
-rw-r--r--Build/source/libs/icu-xetex/test/collperf/readme.html84
-rw-r--r--Build/source/libs/icu-xetex/test/hdrtst/Makefile.in73
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/Makefile.in27
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/aliastst.cpp287
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/aliastst.h30
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/apicoll.cpp100
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/apicoll.h5
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/astrotst.cpp6
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/callimts.cpp6
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/calregts.cpp18
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/caltest.cpp16
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/caltest.h2
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/canittst.cpp8
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/canittst.h4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/citrtest.cpp31
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/cntabcol.cpp324
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/cntabcol.h4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/convtest.cpp51
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/convtest.h4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/csdetest.cpp518
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/csdetest.h39
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/dtfmrgts.cpp26
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.cpp28
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.h3
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/dtfmttst.cpp507
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/dtfmttst.h27
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/escoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/ficoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/frcoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/idnaconf.cpp23
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/idnaref.cpp190
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/intltest.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/intltest.vcproj96
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/itformat.cpp2
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/itmajor.cpp12
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/itrbnf.cpp16
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/itutil.cpp17
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/loctest.cpp101
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/miscdtfm.cpp59
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/nmfmtrt.cpp6
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/numfmtst.cpp109
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/numfmtst.h9
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/numrgts.cpp37
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/rbbiapts.cpp77
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/rbbitst.cpp1118
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/rbbitst.h4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/restsnew.cpp10
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/rndmcoll.cpp185
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/rndmcoll.h29
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/sdtfmtts.cpp8
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/srchtest.cpp47
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/srchtest.h3
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/testidn.cpp9
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/testidna.cpp22
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/thcoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tmsgfmt.cpp22
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/transrt.cpp63
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/transtst.cpp87
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/transtst.h13
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/trcoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/trnserr.cpp24
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/trnserr.h6
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tscoll.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tsdate.cpp8
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.cpp220
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.h8
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tsmthred.cpp43
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tsputil.cpp15
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tstnorm.cpp477
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tzbdtest.cpp109
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tzbdtest.h5
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tzregts.cpp184
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tzregts.h5
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tztest.cpp203
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/tztest.h6
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/ucaconf.cpp2
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/ucdtest.cpp4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/uobjtest.cpp15
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/usettest.cpp86
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/usettest.h4
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/utxttest.cpp280
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/utxttest.h3
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/uvectest.cpp7
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/wbnf.cpp1771
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/wbnf.h157
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/windttst.cpp197
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/windttst.h41
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/winnmtst.cpp323
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/winnmtst.h41
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/winutil.cpp81
-rw-r--r--Build/source/libs/icu-xetex/test/intltest/winutil.h46
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/Makefile.in22
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/filetst.c53
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/iotest.cpp124
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/iotest.h3
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/iotest.vcproj27
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/stream.cpp135
-rw-r--r--Build/source/libs/icu-xetex/test/iotest/strtst.c48
-rw-r--r--Build/source/libs/icu-xetex/test/letest/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/letest/FontTableCache.cpp11
-rw-r--r--Build/source/libs/icu-xetex/test/letest/Makefile.in23
-rw-r--r--Build/source/libs/icu-xetex/test/letest/PortableFontInstance.cpp80
-rw-r--r--Build/source/libs/icu-xetex/test/letest/PortableFontInstance.h66
-rw-r--r--Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.cpp132
-rw-r--r--Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.h72
-rw-r--r--Build/source/libs/icu-xetex/test/letest/cmaps.h7
-rw-r--r--Build/source/libs/icu-xetex/test/letest/gendata.cpp536
-rw-r--r--Build/source/libs/icu-xetex/test/letest/gendata.vcproj22
-rw-r--r--Build/source/libs/icu-xetex/test/letest/gendata.xml77
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letest.cpp832
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letest.h32
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letest.sln9
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letest.vcproj24
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letsutil.cpp98
-rw-r--r--Build/source/libs/icu-xetex/test/letest/letsutil.h36
-rw-r--r--Build/source/libs/icu-xetex/test/perf/charperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/charperf/Makefile.in21
-rw-r--r--Build/source/libs/icu-xetex/test/perf/charperf/charperf.cpp184
-rw-r--r--Build/source/libs/icu-xetex/test/perf/charperf/charperf.h212
-rw-r--r--Build/source/libs/icu-xetex/test/perf/collperf/.cvsignore6
-rwxr-xr-xBuild/source/libs/icu-xetex/test/perf/collperf/CollPerf.pl82
-rw-r--r--Build/source/libs/icu-xetex/test/perf/collperf/Makefile.in (renamed from Build/source/libs/icu-xetex/test/collperf/Makefile.in)23
-rw-r--r--Build/source/libs/icu-xetex/test/perf/collperf/collperf.cpp879
-rw-r--r--Build/source/libs/icu-xetex/test/perf/collperf/collperf.vcproj179
-rw-r--r--Build/source/libs/icu-xetex/test/perf/normperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/normperf/Makefile.in23
-rw-r--r--Build/source/libs/icu-xetex/test/perf/normperf/normperf.h21
-rw-r--r--Build/source/libs/icu-xetex/test/perf/perf.sln24
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ubrkperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ubrkperf/Makefile.in23
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/Makefile.in (renamed from Build/source/libs/icu-xetex/test/unalignedtest/Makefile.in)27
-rwxr-xr-xBuild/source/libs/icu-xetex/test/perf/usetperf/UsetPerf.pl45
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/bitset.cpp (renamed from Build/source/libs/icu-xetex/test/usetperf/bitset.cpp)2
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/bitset.h (renamed from Build/source/libs/icu-xetex/test/usetperf/bitset.h)2
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.cpp143
-rw-r--r--Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.vcproj203
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ustrperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ustrperf/Makefile.in78
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.cpp390
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.h671
-rw-r--r--Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/test/perf/utfperf/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/test/perf/utfperf/Makefile.in78
-rwxr-xr-xBuild/source/libs/icu-xetex/test/perf/utfperf/UtfPerf.pl46
-rw-r--r--Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.cpp156
-rw-r--r--Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.vcproj160
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt8436
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/CollationTest_SHIFTED_STUB.txt8398
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/DataDrivenCollationTest.txt2
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/Makefile.in86
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/casing.txt5
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/conversion.txt77
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/csdetest.xml550
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/icu26_testtypes.res (renamed from Build/source/libs/icu-xetex/test/testdata/testdata_icu26_testtypes.res)bin13944 -> 13944 bytes
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/icu26e_testtypes.res (renamed from Build/source/libs/icu-xetex/test/testdata/testdata_icu26e_testtypes.res)bin13944 -> 13944 bytes
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/icuio.txt31
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/idna_conf.txt1266
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/idna_rules.txt4
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/iscii.bin38
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/letest.xml1048
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/ra.xlf247
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/rbbitst.txt57
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/regextst.txt22
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/structLocale.txt5722
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/te.txt53
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/testaliases.txt24
-rw-r--r--Build/source/libs/icu-xetex/test/testdata/testdata.mak132
-rw-r--r--Build/source/libs/icu-xetex/test/testmap/Makefile.in9
-rw-r--r--Build/source/libs/icu-xetex/test/thaitest/space.txt162
-rw-r--r--Build/source/libs/icu-xetex/test/thaitest/thaitest.cpp79
-rw-r--r--Build/source/libs/icu-xetex/test/unalignedtest/readme27
-rw-r--r--Build/source/libs/icu-xetex/test/unalignedtest/unaligned.c152
-rw-r--r--Build/source/libs/icu-xetex/test/usetperf/timer.h62
-rw-r--r--Build/source/libs/icu-xetex/test/usetperf/usetperf.cpp122
-rw-r--r--Build/source/libs/icu-xetex/test/usetperf/usetperf.dsp164
-rw-r--r--Build/source/libs/icu-xetex/test/utfperf/utfperf.c450
-rw-r--r--Build/source/libs/icu-xetex/test/utfperf/utfperf.dsp158
-rw-r--r--Build/source/libs/icu-xetex/tools/Makefile.in12
-rw-r--r--Build/source/libs/icu-xetex/tools/cpysearch/cpyskip.txt116
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/.cvsignore4
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/Makefile.in45
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/ctest.c16
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/ctestfw.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/datamap.cpp5
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/tstdtmod.cpp3
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/unicode/testlog.h6
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/unicode/testtype.h5
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/unicode/uperf.h6
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/unicode/utimer.h10
-rw-r--r--Build/source/libs/icu-xetex/tools/ctestfw/uperf.cpp13
-rw-r--r--Build/source/libs/icu-xetex/tools/dumpce/dumpce.cpp6
-rw-r--r--Build/source/libs/icu-xetex/tools/genbidi/Makefile.in42
-rw-r--r--Build/source/libs/icu-xetex/tools/genbidi/genbidi.8.in128
-rw-r--r--Build/source/libs/icu-xetex/tools/genbidi/genbidi.c99
-rw-r--r--Build/source/libs/icu-xetex/tools/genbidi/genbidi.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genbrk/.cvsignore1
-rw-r--r--Build/source/libs/icu-xetex/tools/genbrk/Makefile.in38
-rw-r--r--Build/source/libs/icu-xetex/tools/genbrk/genbrk.1.in112
-rw-r--r--Build/source/libs/icu-xetex/tools/genbrk/genbrk.cpp31
-rw-r--r--Build/source/libs/icu-xetex/tools/genbrk/genbrk.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gencase/.cvsignore3
-rw-r--r--Build/source/libs/icu-xetex/tools/gencase/Makefile.in42
-rw-r--r--Build/source/libs/icu-xetex/tools/gencase/gencase.8.in136
-rw-r--r--Build/source/libs/icu-xetex/tools/gencase/gencase.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genccode/Makefile.in38
-rw-r--r--Build/source/libs/icu-xetex/tools/genccode/genccode.c2
-rw-r--r--Build/source/libs/icu-xetex/tools/genccode/genccode.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/.cvsignore6
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/Makefile.in49
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/decmn.8.in68
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/decmn.c303
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/gencmn.c90
-rw-r--r--Build/source/libs/icu-xetex/tools/gencmn/gencmn.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gencnval/.cvsignore3
-rw-r--r--Build/source/libs/icu-xetex/tools/gencnval/Makefile.in38
-rw-r--r--Build/source/libs/icu-xetex/tools/gencnval/gencnval.c93
-rw-r--r--Build/source/libs/icu-xetex/tools/gencnval/gencnval.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genctd/.cvsignore9
-rw-r--r--Build/source/libs/icu-xetex/tools/genctd/Makefile.in95
-rw-r--r--Build/source/libs/icu-xetex/tools/genctd/genctd.1.in111
-rw-r--r--Build/source/libs/icu-xetex/tools/genctd/genctd.cpp393
-rw-r--r--Build/source/libs/icu-xetex/tools/genctd/genctd.vcproj (renamed from Build/source/libs/icu-xetex/tools/gencmn/decmn.vcproj)47
-rw-r--r--Build/source/libs/icu-xetex/tools/gendraft/DeprecatedApi.txt225
-rw-r--r--Build/source/libs/icu-xetex/tools/gendraft/DraftApi.txt372
-rw-r--r--Build/source/libs/icu-xetex/tools/gendraft/ObsoleteApi.txt19
-rw-r--r--Build/source/libs/icu-xetex/tools/gendraft/exclude.txt7
-rw-r--r--Build/source/libs/icu-xetex/tools/gendraft/gendraft.pl172
-rwxr-xr-xBuild/source/libs/icu-xetex/tools/gendraft/genheaders.pl253
-rw-r--r--Build/source/libs/icu-xetex/tools/gennames/.cvsignore5
-rw-r--r--Build/source/libs/icu-xetex/tools/gennames/Makefile.in41
-rw-r--r--Build/source/libs/icu-xetex/tools/gennames/gennames.8.in85
-rw-r--r--Build/source/libs/icu-xetex/tools/gennames/gennames.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gennorm/Makefile.in39
-rw-r--r--Build/source/libs/icu-xetex/tools/gennorm/gennorm.8.in114
-rw-r--r--Build/source/libs/icu-xetex/tools/gennorm/gennorm.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gennorm/store.c6
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/Makefile.in29
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/SyntheticPropertyValueAliases.txt62
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/data.h3479
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/genpname.cpp5
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/genpname.vcproj2
-rwxr-xr-xBuild/source/libs/icu-xetex/tools/genpname/gensvpa.pl161
-rw-r--r--Build/source/libs/icu-xetex/tools/genpname/preparse.pl23
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/.cvsignore5
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/Makefile.in37
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/genprops.8.in126
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/genprops.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/props2.c17
-rw-r--r--Build/source/libs/icu-xetex/tools/genprops/store.c4
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/Makefile.in32
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/derb.c17
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/derb.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/gendtjar.pl34
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/genrb.c52
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/genrb.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/parse.c140
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/parse.h4
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/reslist.c24
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/reslist.h5
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/ustr.c3
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/wrtjava.c12
-rw-r--r--Build/source/libs/icu-xetex/tools/genrb/wrtxml.c37
-rwxr-xr-xBuild/source/libs/icu-xetex/tools/genren/genren.pl4
-rw-r--r--Build/source/libs/icu-xetex/tools/gensprep/Makefile.in35
-rw-r--r--Build/source/libs/icu-xetex/tools/gensprep/gensprep.c15
-rw-r--r--Build/source/libs/icu-xetex/tools/gensprep/gensprep.h4
-rw-r--r--Build/source/libs/icu-xetex/tools/gensprep/gensprep.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/gensprep/store.c17
-rw-r--r--Build/source/libs/icu-xetex/tools/gentest/.cvsignore1
-rw-r--r--Build/source/libs/icu-xetex/tools/gentest/Makefile.in14
-rw-r--r--Build/source/libs/icu-xetex/tools/gentest/gentest.c7
-rw-r--r--Build/source/libs/icu-xetex/tools/gentest/gentest.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/genuca/Makefile.in40
-rw-r--r--Build/source/libs/icu-xetex/tools/genuca/genuca.cpp28
-rw-r--r--Build/source/libs/icu-xetex/tools/genuca/genuca.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/.cvsignore11
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/Makefile.in96
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/icupkg.1.in204
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/icupkg.8.in204
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/icupkg.cpp579
-rw-r--r--Build/source/libs/icu-xetex/tools/icupkg/icupkg.vcproj145
-rw-r--r--Build/source/libs/icu-xetex/tools/icuswap/Makefile.in38
-rw-r--r--Build/source/libs/icu-xetex/tools/icuswap/icuswap.cpp221
-rw-r--r--Build/source/libs/icu-xetex/tools/icuswap/icuswap.vcproj22
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/Makefile.in43
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/gencnvex.c4
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/genmbcs.c4
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/genmbcs.h4
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/makeconv.c91
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/makeconv.h4
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/makeconv.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/makeconv/ucnvstat.c3
-rwxr-xr-xBuild/source/libs/icu-xetex/tools/memcheck/ICUMemCheck.pl68
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/Makefile.in34
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/cmnmode.c7
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/dllmode.c18
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/filemode.c224
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/make.c93
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.c264
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.vcproj2
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.c22
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.h7
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/sttcmode.c9
-rw-r--r--Build/source/libs/icu-xetex/tools/pkgdata/winmode.c14
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/.cvsignore4
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/Makefile.in31
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/package.cpp1202
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/package.h159
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/pkg_imp.h35
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/pkgitems.cpp638
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/swapimpl.cpp (renamed from Build/source/libs/icu-xetex/tools/icuswap/swapimpl.cpp)142
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/swapimpl.h43
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/toolutil.vcproj42
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/ucbuf.c98
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/uparse.c48
-rw-r--r--Build/source/libs/icu-xetex/tools/toolutil/xmlparser.cpp30
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/.cvsignore3
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/Makefile.in88
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/asctime.c138
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/ialloc.c86
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/localtime.c2053
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/patch-icu-tzcode475
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/private.h368
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/readme.txt90
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/scheck.c63
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/tz.alias4
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/tz2icu.cpp24
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/tzfile.h180
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/tzselect.ksh308
-rw-r--r--Build/source/libs/icu-xetex/tools/tzcode/zic.c2948
1774 files changed, 186053 insertions, 76285 deletions
diff --git a/Build/source/libs/icu-xetex/Doxyfile.in b/Build/source/libs/icu-xetex/Doxyfile.in
index 8821cac6783..170020921cc 100644
--- a/Build/source/libs/icu-xetex/Doxyfile.in
+++ b/Build/source/libs/icu-xetex/Doxyfile.in
@@ -1,7 +1,7 @@
# Doxyfile 1.3.7
# ********************************************************************
# * COPYRIGHT:
-# * Copyright (c) 2004-2005, International Business Machines Corporation
+# * Copyright (c) 2004-2006, International Business Machines Corporation
# * and others. All Rights Reserved.
# ********************************************************************
@@ -30,12 +30,12 @@ INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES = "memo=\par Note:\n" \
- "draft=\par Draft: \n This API may be changed in the future versions and was introduced in \n" \
- "stable=\par Stable:\n" \
- "deprecated=\par Deprecated:\n" \
- "obsolete=\par Obsolete:\n" \
- "system=\par System:\n Do not use unless you know what you are doing. \n" \
- "internal=\par Internal:\n Do not use. This API is for interal use only. \n" \
+ "draft=\xrefitem draft \"Draft\" \"Draft List\" This API may be changed in the future versions and was introduced in \n" \
+ "stable=\xrefitem stable \"Stable\" \"Stable List\" \n" \
+ "deprecated=\xrefitem deprecated \"Deprecated\" \"Deprecated List\" \n" \
+ "obsolete=\xrefitem obsolete \"Obsolete\" \"Obsolete List\" \n" \
+ "system=\xrefitem system \"System\" \"System List\" \n Do not use unless you know what you are doing. \n" \
+ "internal=\xrefitem internal \"Internal\" \"Internal List\" Do not use. This API is for interal use only. \n"
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
@@ -82,7 +82,7 @@ WARN_LOGFILE =
INPUT = ./common/unicode/platform.h @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
FILE_PATTERNS = *.h
RECURSIVE = NO
-EXCLUDE = @srcdir@/common/unicode/urename.h @srcdir@/common/unicode/udraft.h @srcdir@/common/unicode/udeprctd.h @srcdir@/common/unicode/uobslete.h
+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
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = config*.h
EXAMPLE_PATH =
@@ -172,7 +172,7 @@ GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
+GENERATE_PERLMOD = NO
PERLMOD_LATEX = YES
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
@@ -180,19 +180,19 @@ PERLMOD_MAKEVAR_PREFIX =
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
-PREDEFINED =
+PREDEFINED = U_EXPORT2 U_STABLE U_DRAFT U_INTERNAL U_SYSTEM U_DEPRECATED U_OBSOLETE
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
-GENERATE_TAGFILE =
+GENERATE_TAGFILE = "@srcdir@/doc/html/icudocs.tag"
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
diff --git a/Build/source/libs/icu-xetex/Makefile.in b/Build/source/libs/icu-xetex/Makefile.in
index 9aa0dd4448b..1d957db23ce 100644
--- a/Build/source/libs/icu-xetex/Makefile.in
+++ b/Build/source/libs/icu-xetex/Makefile.in
@@ -1,6 +1,6 @@
#******************************************************************************
#
-# Copyright (C) 1998-2004, International Business Machines
+# Copyright (C) 1998-2006, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
@@ -175,11 +175,13 @@ $(top_builddir)/config/Makefile.inc: $(srcdir)/config/Makefile.inc.in $(top_bui
$(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config/icu-config-top $(top_srcdir)/config/icu-config-bottom $(top_builddir)/config/Makefile.inc @platform_make_fragment@ $(top_srcdir)/config/make2sh.sed
-$(RMV) $@
$(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@
+ chmod u+w $@
@echo "# Following from @platform_make_fragment@" >> $@
sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
cat $(top_srcdir)/config/icu-config-bottom >> $@
echo "# Rebuilt on "`date` >> $@
+ chmod u-w $@
config.status: $(srcdir)/configure $(srcdir)/common/unicode/uversion.h
@echo
diff --git a/Build/source/libs/icu-xetex/README b/Build/source/libs/icu-xetex/README
index ea10b4af232..2a4e9a27945 100644
--- a/Build/source/libs/icu-xetex/README
+++ b/Build/source/libs/icu-xetex/README
@@ -3,7 +3,7 @@ README for libs/icu-xetex directory
This directory contains a *MODIFIED* version of the ICU library source code,
for use by XeTeX.
-The ICU source code for release 3.4 was checked out from CVS and imported to
+The ICU source code for release 3.6 was checked out from CVS and imported to
the XeTeX repository; records of the modifications made (primarily extensions to
non-Latin support in the Layout Engine) can be found in the XeTeX repository.
diff --git a/Build/source/libs/icu-xetex/aclocal.m4 b/Build/source/libs/icu-xetex/aclocal.m4
index 18ba7772ffa..fa0ab6433a5 100644
--- a/Build/source/libs/icu-xetex/aclocal.m4
+++ b/Build/source/libs/icu-xetex/aclocal.m4
@@ -1,5 +1,5 @@
dnl aclocal.m4 for ICU
-dnl Copyright (c) 1999-2005, International Business Machines Corporation and
+dnl Copyright (c) 1999-2006, International Business Machines Corporation and
dnl others. All Rights Reserved.
dnl Stephen F. Booth
@@ -43,7 +43,7 @@ powerpc*-*-linux*)
else
icu_cv_host_frag=mh-cygwin-msvc
fi ;;
-*-*-*bsd*) icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-*bsd*|*-*-dragonfly*) icu_cv_host_frag=mh-bsd-gcc ;;
*-*-aix*)
if test "$GCC" = yes; then
icu_cv_host_frag=mh-aix-gcc
@@ -72,7 +72,6 @@ powerpc*-*-linux*)
*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
*-*-nto*) icu_cv_host_frag=mh-qnx ;;
*-ncr-*) icu_cv_host_frag=mh-mpras ;;
-*-sequent-*) icu_cv_host_frag=mh-ptx ;;
*) icu_cv_host_frag=mh-unknown ;;
esac
]
@@ -88,6 +87,18 @@ else
$1_TRUE='#'
fi])
+dnl ICU_PROG_LINK - Make sure that the linker is usable
+AC_DEFUN(ICU_PROG_LINK,
+[
+case "${host}" in
+ *-*-cygwin*|*-*-mingw*)
+ if test "$GCC" != yes && test -n "`link --version 2>&1 | grep 'GNU coreutils'`"; then
+ AC_MSG_ERROR([link.exe is not a valid linker. Your PATH is incorrect.
+ Please follow the directions in ICU's readme.])
+ fi;;
+ *);;
+esac])
+
dnl AC_SEARCH_LIBS_FIRST(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
dnl [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
dnl Search for a library defining FUNC, then see if it's not already available.
@@ -177,6 +188,27 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS,
ENABLE_64BIT_LIBS=no
fi
;;
+ x86_64-*-cygwin)
+ if test "$GCC" = yes; then
+ if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+ ENABLE_64BIT_LIBS=yes
+ else
+ ENABLE_64BIT_LIBS=no
+ fi
+ else
+ ENABLE_64BIT_LIBS=no
+ OLD_CPPFLAGS="${CPPFLAGS}"
+ OLD_LDFLAGS="${LDFLAGS}"
+ CPPFLAGS="${CPPFLAGS} /DWIN64"
+ LDFLAGS="${LDFLAGS} /MACHINE:AMD64"
+ AC_TRY_RUN(int main(void) {return 0;},
+ ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+ if test "$ENABLE_64BIT_LIBS" = no; then
+ CPPFLAGS="${OLD_CPPFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+ fi
+ fi
+ ;;
*-*-aix*|powerpc64-*-linux*)
if test "$ac_cv_prog_gcc" = no; then
# Note: Have not tested 64-bitness with gcc.
@@ -224,25 +256,38 @@ AC_DEFUN(AC_CHECK_64BIT_LIBS,
fi
fi
;;
-# *-*ibm-openedition*|*-*-os390*)
-# OLD_CFLAGS="${CFLAGS}"
-# OLD_CXXFLAGS="${CXXFLAGS}"
-# OLD_LDFLAGS="${LDFLAGS}"
-# CFLAGS="${CFLAGS} -Wc,lp64,expo"
-# CXXFLAGS="${CXXFLAGS} -Wc,lp64,expo"
-# LDFLAGS="${LDFLAGS} -Wl,lp64"
-# AC_TRY_RUN(int main(void) {return 0;},
-# ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
-# if test "$ENABLE_64BIT_LIBS" = no; then
-# CFLAGS="${OLD_CFLAGS}"
-# CXXFLAGS="${OLD_CXXFLAGS}"
-# LDFLAGS="${OLD_LDFLAGS}"
-# fi
-# ;;
+ *-*ibm-openedition*|*-*-os390*)
+ OLD_CFLAGS="${CFLAGS}"
+ OLD_CXXFLAGS="${CXXFLAGS}"
+ OLD_LDFLAGS="${LDFLAGS}"
+ CFLAGS="${CFLAGS} -Wc,lp64"
+ CXXFLAGS="${CXXFLAGS} -Wc,lp64"
+ LDFLAGS="${LDFLAGS} -Wl,lp64"
+ AC_TRY_RUN(int main(void) {return 0;},
+ ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+ if test "$ENABLE_64BIT_LIBS" = no; then
+ CFLAGS="${OLD_CFLAGS}"
+ CXXFLAGS="${OLD_CXXFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+ fi
+ ;;
*)
ENABLE_64BIT_LIBS=no
;;
esac
+ else
+ if test "$GCC" = yes; then
+ OLD_CFLAGS="${CFLAGS}"
+ OLD_CXXFLAGS="${CXXFLAGS}"
+ CFLAGS="${CFLAGS} -m32"
+ CXXFLAGS="${CXXFLAGS} -m32"
+ AC_TRY_RUN(int main(void) {return 0;},
+ ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=yes)
+ if test "$ENABLE_64BIT_LIBS" = yes; then
+ CFLAGS="${OLD_CFLAGS}"
+ CXXFLAGS="${OLD_CXXFLAGS}"
+ fi
+ fi
fi
dnl Individual tests that fail should reset their own flags.
AC_MSG_RESULT($ENABLE_64BIT_LIBS)
@@ -266,7 +311,7 @@ AC_DEFUN(AC_CHECK_STRICT_COMPILE,
then
if test "$GCC" = yes
then
- CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long -fno-strict-aliasing"
+ CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long"
case "${host}" in
*-*-solaris*)
CFLAGS="$CFLAGS -D__STDC__=0";;
@@ -282,7 +327,7 @@ AC_DEFUN(AC_CHECK_STRICT_COMPILE,
fi
if test "$GXX" = yes
then
- CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Winline -Wno-long-long"
+ CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
case "${host}" in
*-*-solaris*)
CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
diff --git a/Build/source/libs/icu-xetex/allinone/allinone.sln b/Build/source/libs/icu-xetex/allinone/allinone.sln
index 729f863b48c..835178e2913 100644
--- a/Build/source/libs/icu-xetex/allinone/allinone.sln
+++ b/Build/source/libs/icu-xetex/allinone/allinone.sln
@@ -18,12 +18,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctestfw", "..\tools\ctestfw
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decmn", "..\tools\gencmn\decmn.vcproj", "{20869594-A3DD-4A75-8068-99B03A5CF4E4}"
- ProjectSection(ProjectDependencies) = postProject
- {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
- {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "derb", "..\tools\genrb\derb.vcproj", "{D3065ADB-8820-4CC7-9B6C-9510833961A3}"
ProjectSection(ProjectDependencies) = postProject
{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
@@ -143,14 +137,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata", "..\data\makedat
{DB312A49-12A9-4E07-9E96-451DC2D8FF61} = {DB312A49-12A9-4E07-9E96-451DC2D8FF61}
{DB312A49-12A9-4E07-9E96-451DC2D8FF62} = {DB312A49-12A9-4E07-9E96-451DC2D8FF62}
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC} = {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}
{77C78066-746F-4EA6-B3FE-B8C8A4A97891} = {77C78066-746F-4EA6-B3FE-B8C8A4A97891}
- {6FC24387-370C-4561-9582-7A819749E2C5} = {6FC24387-370C-4561-9582-7A819749E2C5}
{203EC78A-0531-43F0-A636-285439BDE025} = {203EC78A-0531-43F0-A636-285439BDE025}
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F} = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
- {20869594-A3DD-4A75-8068-99B03A5CF4E4} = {20869594-A3DD-4A75-8068-99B03A5CF4E4}
{86829694-A375-4C58-B4EA-96EF514E3225} = {86829694-A375-4C58-B4EA-96EF514E3225}
{631C23CE-6C1D-4875-88F0-85E0A42B36EA} = {631C23CE-6C1D-4875-88F0-85E0A42B36EA}
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547} = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569} = {9D4211F7-2C77-439C-82F0-30A4E43BA569}
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
EndProjectSection
EndProject
@@ -192,13 +186,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensprep", "..\tools\genspr
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuswap", "..\tools\icuswap\icuswap.vcproj", "{6FC24387-370C-4561-9582-7A819749E2C5}"
- ProjectSection(ProjectDependencies) = postProject
- {0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
- {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
- {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
- EndProjectSection
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iotest", "..\test\iotest\iotest.vcproj", "{E4993E82-D68A-46CA-BAE0-9D35E172E46F}"
ProjectSection(ProjectDependencies) = postProject
{C2B04507-2521-4801-BF0D-5FD79D6D518C} = {C2B04507-2521-4801-BF0D-5FD79D6D518C}
@@ -219,6 +206,33 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencase", "..\tools\gencase
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icupkg", "..\tools\icupkg\icupkg.vcproj", "{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genctd", "..\tools\genctd\genctd.vcproj", "{9D4211F7-2C77-439C-82F0-30A4E43BA569}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "letest", "..\test\letest\letest.vcproj", "{67351485-4D18-4245-BE39-A7EF0675ACD2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+ {C920062A-0647-4553-A3B2-37C58065664B} = {C920062A-0647-4553-A3B2-37C58065664B}
+ {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+ {ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuswap", "..\tools\icuswap\icuswap.vcproj", "{39690C2A-AD89-45E4-893A-899496B85785}"
+ ProjectSection(ProjectDependencies) = postProject
+ {6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
@@ -237,10 +251,6 @@ Global
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.Build.0 = Debug|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.ActiveCfg = Release|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.Build.0 = Release|Win32
- {20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.ActiveCfg = Debug|Win32
- {20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.Build.0 = Debug|Win32
- {20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.ActiveCfg = Release|Win32
- {20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.Build.0 = Release|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.ActiveCfg = Debug|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.Build.0 = Debug|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.ActiveCfg = Release|Win32
@@ -337,10 +347,6 @@ Global
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.Build.0 = Debug|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.ActiveCfg = Release|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.Build.0 = Release|Win32
- {6FC24387-370C-4561-9582-7A819749E2C5}.Debug.ActiveCfg = Debug|Win32
- {6FC24387-370C-4561-9582-7A819749E2C5}.Debug.Build.0 = Debug|Win32
- {6FC24387-370C-4561-9582-7A819749E2C5}.Release.ActiveCfg = Release|Win32
- {6FC24387-370C-4561-9582-7A819749E2C5}.Release.Build.0 = Release|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.ActiveCfg = Debug|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.Build.0 = Debug|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release.ActiveCfg = Release|Win32
@@ -353,6 +359,22 @@ Global
{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Debug.Build.0 = Debug|Win32
{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Release.ActiveCfg = Release|Win32
{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Release.Build.0 = Release|Win32
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug.ActiveCfg = Debug|Win32
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug.Build.0 = Debug|Win32
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release.ActiveCfg = Release|Win32
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release.Build.0 = Release|Win32
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug.ActiveCfg = Debug|Win32
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug.Build.0 = Debug|Win32
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release.ActiveCfg = Release|Win32
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release.Build.0 = Release|Win32
+ {67351485-4D18-4245-BE39-A7EF0675ACD2}.Debug.ActiveCfg = Debug|Win32
+ {67351485-4D18-4245-BE39-A7EF0675ACD2}.Debug.Build.0 = Debug|Win32
+ {67351485-4D18-4245-BE39-A7EF0675ACD2}.Release.ActiveCfg = Release|Win32
+ {67351485-4D18-4245-BE39-A7EF0675ACD2}.Release.Build.0 = Release|Win32
+ {39690C2A-AD89-45E4-893A-899496B85785}.Debug.ActiveCfg = Debug|Win32
+ {39690C2A-AD89-45E4-893A-899496B85785}.Debug.Build.0 = Debug|Win32
+ {39690C2A-AD89-45E4-893A-899496B85785}.Release.ActiveCfg = Release|Win32
+ {39690C2A-AD89-45E4-893A-899496B85785}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
diff --git a/Build/source/libs/icu-xetex/common/.cvsignore b/Build/source/libs/icu-xetex/common/.cvsignore
index fd975286a94..97c71fca869 100644
--- a/Build/source/libs/icu-xetex/common/.cvsignore
+++ b/Build/source/libs/icu-xetex/common/.cvsignore
@@ -3,6 +3,7 @@ libicu*.*
Debug
Release
Makefile
+svchook.mk
icucfg.h
*.ao
*.o
diff --git a/Build/source/libs/icu-xetex/common/Makefile.in b/Build/source/libs/icu-xetex/common/Makefile.in
index 2499d3ff5c4..666373cf160 100644
--- a/Build/source/libs/icu-xetex/common/Makefile.in
+++ b/Build/source/libs/icu-xetex/common/Makefile.in
@@ -1,6 +1,6 @@
#******************************************************************************
#
-# Copyright (C) 1999-2005, International Business Machines
+# Copyright (C) 1999-2006, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
@@ -19,8 +19,12 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = common
+# for service hook
+LOCALSVC_CPP=localsvc.cpp
+SVC_HOOK_INC=$(top_builddir)/common/svchook.mk
+
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
+CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB) $(SVC_HOOK_INC)
## Target information
@@ -32,7 +36,7 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = common.res
@@ -51,39 +55,47 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICUUC)
-CPPFLAGS += -I. -I$(srcdir) -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
DEFS += -DU_COMMON_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICUUC)
# $(LIBICUDT) is either stub data or the real DLL common data.
LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
-OBJECTS = putil.o utypes.o uobject.o cmemory.o umutex.o ucln_cmn.o uinit.o \
-udata.o ucmndata.o udatamem.o udataswp.o umapfile.o ucol_swp.o \
-uresbund.o ures_cnv.o uresdata.o resbund.o resbund_cnv.o \
-ucat.o locmap.o uloc.o locid.o \
-uhash.o uhash_us.o \
-ucnv.o ucnv_set.o ucnv_bld.o ucnv_cb.o ucnv_cnv.o ucnv_err.o ucnv_ext.o ucnv_io.o ucnvlat1.o \
+OBJECTS = putil.o umath.o utypes.o uinvchar.o umutex.o ucln_cmn.o uinit.o uobject.o cmemory.o \
+udata.o ucmndata.o udatamem.o umapfile.o udataswp.o ucol_swp.o utrace.o \
+uhash.o uhash_us.o uenum.o ustrenum.o uvector.o ustack.o uvectr32.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 \
-ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvisci.o ucnvdisp.o \
-unistr.o unistr_case.o unistr_cnv.o unistr_props.o \
-utf_impl.o ustring.o ustr_cnv.o ustrcase.o ucasemap.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o uinvchar.o utext.o \
+ucnv_ext.o ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvisci.o ucnvdisp.o ucnv_set.o \
+uresbund.o ures_cnv.o uresdata.o resbund.o resbund_cnv.o \
+ucat.o locmap.o uloc.o locid.o locutil.o \
+ustr_cnv.o unistr_cnv.o unistr.o unistr_case.o unistr_props.o \
+utf_impl.o ustring.o ustrcase.o ucasemap.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o utext.o \
normlzr.o unorm.o unormcmp.o unorm_it.o chariter.o schriter.o uchriter.o uiter.o \
-uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o unames.o \
-uscript.o usc_impl.o uvector.o ustack.o uvectr32.o ucmp8.o \
-uarrsort.o utrie.o uset.o uset_props.o uniset.o uniset_props.o ruleiter.o caniter.o unifilt.o unifunct.o usetiter.o \
-brkiter.o brkdict.o ubrk.o dbbi.o dbbi_tbl.o \
+uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o \
+uscript.o usc_impl.o unames.o \
+utrie.o uset_props.o uniset_props.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 triedict.o \
rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o \
-serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o locutil.o \
-uenum.o ustrenum.o uidna.o usprep.o punycode.o \
-cwchar.o util.o parsepos.o utrace.o locbased.o
+serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o \
+uidna.o usprep.o punycode.o \
+util.o util_props.o parsepos.o locbased.o cwchar.o wintz.o
+
+## Header files to install
+HEADERS = $(srcdir)/unicode/*.h unicode/*.h
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
-## Header files to install
-HEADERS = unicode/*.h $(srcdir)/unicode/*.h
+-include Makefile.local
+
+-include $(SVC_HOOK_INC)
+
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
@@ -101,8 +113,6 @@ distclean : distclean-local
dist: dist-local
check: all check-local
--include Makefile.local
-
all-local: $(ALL_TARGETS) unicode/platform.h
install-local: install-headers install-library
@@ -131,6 +141,14 @@ ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
endif
endif
+$(SVC_HOOK_INC):
+ @echo generating $@
+ @-test -f $(top_srcdir)/common/$(LOCALSVC_CPP) && ( echo "have $(LOCALSVC_CPP) - U_LOCAL_SERVICE_HOOK=1" ; \
+ echo 'CPPFLAGS +=-DU_LOCAL_SERVICE_HOOK=1' > $@ ; \
+ echo 'OBJECTS += $(LOCALSVC_CPP:%.cpp=%.o)' >> $@ \
+ ) ; true
+ @echo "# Autogenerated by Makefile" >> $@
+
install-headers:
$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode
@for file in $(HEADERS); do \
@@ -145,11 +163,11 @@ clean-local:
$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
distclean-local: clean-local
- $(RMV) Makefile icucfg.h unicode/platform.h
+ $(RMV) Makefile icucfg.h unicode/platform.h $(SVC_HOOK_INC)
check-local:
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(SVC_HOOK_INC)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
@@ -163,14 +181,13 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
-$(BATCH_TARGET): $(OBJECTS)
+$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
endif # OS390BATCH
-
endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
diff --git a/Build/source/libs/icu-xetex/common/brkdict.cpp b/Build/source/libs/icu-xetex/common/brkdict.cpp
deleted file mode 100644
index 68875b97708..00000000000
--- a/Build/source/libs/icu-xetex/common/brkdict.cpp
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 1999-2004 IBM and others. All rights reserved.
-**********************************************************************
-* Date Name Description
-* 12/1/99 rtg Ported from Java
-* 01/13/2000 helena Added UErrorCode to ctors.
-**********************************************************************
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-#include "unicode/ures.h"
-#include "brkdict.h"
-#include "cmemory.h"
-
-U_NAMESPACE_BEGIN
-
-//=================================================================================
-// deserialization
-//=================================================================================
-
-BreakDictionary::BreakDictionary(const char* /*dictionaryFilename*/, UErrorCode& status)
- : columnMap(NULL),
- table(NULL),
- rowIndex(NULL),
- rowIndexFlags(NULL),
- rowIndexFlagsIndex(NULL),
- rowIndexShifts(NULL)
-{
- if (U_FAILURE(status)) return;
-
- UResourceBundle *th_dict = ures_open(NULL, "th", &status);
- th_dict = ures_getByKey(th_dict, "BreakDictionaryData", th_dict, &status);
- if (U_FAILURE(status)) return;
-
- int32_t len;
- const uint8_t * data = ures_getBinary(th_dict, &len, &status);
- ures_close(th_dict);
- if (U_FAILURE(status)) return;
-
- readDictionaryFile(data);
-}
-
-BreakDictionary::~BreakDictionary()
-{
- ucmp8_close(columnMap);
- uprv_free(table);
- uprv_free(rowIndex);
- uprv_free(rowIndexFlags);
- uprv_free(rowIndexFlagsIndex);
- uprv_free(rowIndexShifts);
-}
-
-// macros to support readDictionaryFile. The data files originated from a Java
-// program, and Java always writes data out in big-endian format. These macros will
-// byte-swap the data for appropriate use on Windows.
-
-#if U_IS_BIG_ENDIAN
-#define SWAP32(x)
-#define SWAP16(x)
-#else
-#define SWAP32(x) x = (uint32_t)((x >> 24 & 0xff) | (x >> 8 & 0xff00) | (x << 8 & 0xff0000) | (x << 24 & 0xff000000))
-#define SWAP16(x) x = (uint16_t)((x << 8 & 0xff00) | (x >> 8 & 0xff))
-#endif
-
-#define DICTIONARY_READ(source, destAddr, len) \
- uprv_memcpy(destAddr, source, len);\
- source+=(len)
-
-
-void
-BreakDictionary::readDictionaryFile(const uint8_t * in)
-{
- int32_t l;
- int32_t version;
-
- int i;
-
- // read in the version number (right now we just ignore it)
- DICTIONARY_READ(in, &version, 4);
-
- // read in the column map (this is serialized in its internal form:
- // an index array followed by a data array)
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- uint16_t* temp = (uint16_t*) uprv_malloc(sizeof(uint16_t)*l);
- DICTIONARY_READ(in, temp, l * sizeof (int16_t) );
- for (i = 0; i < l; i++) {
- SWAP16(temp[i]);
- }
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- int8_t* temp2 = (int8_t*) uprv_malloc(sizeof(int8_t)*l);
- DICTIONARY_READ(in, temp2, l);
- columnMap = ucmp8_openAdopt(temp, temp2, l);
-
- // read in numCols and numColGroups
- DICTIONARY_READ(in, &numCols, 4);
- SWAP32(numCols);
- DICTIONARY_READ(in, &numColGroups, 4);
- SWAP32(numColGroups);
-
- // read in the row-number index
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- rowIndex = (int16_t *)uprv_malloc(l*2);
- DICTIONARY_READ(in, rowIndex, l * sizeof (int16_t) );
- for (i = 0; i < l; i++) {
- SWAP16(rowIndex[i]);
- }
-
- // load in the populated-cells bitmap: index first, then bitmap list
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- rowIndexFlagsIndex = (int16_t *)uprv_malloc(l*2);
- DICTIONARY_READ(in, rowIndexFlagsIndex, l * sizeof(int16_t) );
- for (i = 0; i < l; i++) {
- SWAP16(rowIndexFlagsIndex[i]);
- }
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- rowIndexFlags = (int32_t *)uprv_malloc(l*4);
- DICTIONARY_READ(in, rowIndexFlags, l * sizeof(int32_t));
- for (i = 0; i < l; i++) {
- SWAP32(rowIndexFlags[i]);
- }
-
- // load in the row-shift index
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- rowIndexShifts = (int8_t *)uprv_malloc(l);
- DICTIONARY_READ(in, rowIndexShifts, l);
-
- // finally, load in the actual state table
- DICTIONARY_READ(in, &l, 4);
- SWAP32(l);
- table = (int16_t *)uprv_malloc(l*2);
- DICTIONARY_READ(in, table, l * sizeof(int16_t) );
- for (i = 0; i < l; i++) {
- SWAP16(table[i]);
- }
-
- // the reverse column map occurs next in the file. In the C/C++ code, for the
- // time being, we're not going to worry about that.
-}
-
-//=================================================================================
-// access to the words
-//=================================================================================
-
-/**
- * Uses the column map to map the character to a column number, then
- * passes the row and column number to the other version of at()
- * @param row The current state
- * @param ch The character whose column we're interested in
- * @return The new state to transition to
- */
-int16_t
-BreakDictionary::at(int32_t row, UChar ch) const
-{
- int16_t col = ucmp8_get(columnMap, ch);
- return at(row, (int32_t)col);
-}
-
-/**
- * Returns the value in the cell with the specified (logical) row and
- * column numbers. In DictionaryBasedBreakIterator, the row number is
- * a state number, the column number is an input, and the return value
- * is the row number of the new state to transition to. (0 is the
- * "error" state, and -1 is the "end of word" state in a dictionary)
- * @param row The row number of the current state
- * @param col The column number of the input character (0 means "not a
- * dictionary character")
- * @return The row number of the new state to transition to
- */
-int16_t
-BreakDictionary::at(int32_t row, int32_t col) const
-{
- if (cellIsPopulated(row, col)) {
- // we map from logical to physical row number by looking up the
- // mapping in rowIndex; we map from logical column number to
- // physical column number by looking up a shift value for this
- // logical row and offsetting the logical column number by
- // the shift amount. Then we can use internalAt() to actually
- // get the value out of the table.
- return internalAt(rowIndex[row], col + rowIndexShifts[row]);
- }
- else {
- return 0;
- }
-}
-
-//=================================================================================
-// implementation
-//=================================================================================
-/**
- * Given (logical) row and column numbers, returns true if the
- * cell in that position is populated
- */
-UBool
-BreakDictionary::cellIsPopulated(int32_t row, int32_t col) const
-{
- // look up the entry in the bitmap index for the specified row.
- // If it's a negative number, it's the column number of the only
- // populated cell in the row
- if (rowIndexFlagsIndex[row] < 0) {
- return col == -rowIndexFlagsIndex[row];
- }
-
- // if it's a positive number, it's the offset of an entry in the bitmap
- // list. If the table is more than 32 columns wide, the bitmap is stored
- // successive entries in the bitmap list, so we have to divide the column
- // number by 32 and offset the number we got out of the index by the result.
- // Once we have the appropriate piece of the bitmap, test the appropriate
- // bit and return the result.
- else {
- int32_t flags = rowIndexFlags[rowIndexFlagsIndex[row] + (col >> 5)];
- return (flags & (1 << (col & 0x1f))) != 0;
- }
-}
-
-/**
- * Implementation of at() when we know the specified cell is populated.
- * @param row The PHYSICAL row number of the cell
- * @param col The PHYSICAL column number of the cell
- * @return The value stored in the cell
- */
-int16_t
-BreakDictionary::internalAt(int32_t row, int32_t col) const
-{
- // the table is a one-dimensional array, so this just does the math necessary
- // to treat it as a two-dimensional array (we don't just use a two-dimensional
- // array because two-dimensional arrays are inefficient in Java)
- return table[row * numCols + col];
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/Build/source/libs/icu-xetex/common/brkdict.h b/Build/source/libs/icu-xetex/common/brkdict.h
deleted file mode 100644
index 87a6fd74d7b..00000000000
--- a/Build/source/libs/icu-xetex/common/brkdict.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 1999-2004 IBM and others. All rights reserved.
-**********************************************************************
-* Date Name Description
-* 12/1/99 rtg Ported from Java
-* 01/13/2000 helena Added UErrorCode to ctors.
-**********************************************************************
-*/
-
-#ifndef BRKDICT_H
-#define BRKDICT_H
-
-#include "unicode/utypes.h"
-#include "unicode/uobject.h"
-#include "ucmp8.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * This is the class that represents the list of known words used by
- * DictionaryBasedBreakIterator. The conceptual data structure used
- * here is a trie: there is a node hanging off the root node for every
- * letter that can start a word. Each of these nodes has a node hanging
- * off of it for every letter that can be the second letter of a word
- * if this node is the first letter, and so on. The trie is represented
- * as a two-dimensional array that can be treated as a table of state
- * transitions. Indexes are used to compress this array, taking
- * advantage of the fact that this array will always be very sparse.
- */
-class BreakDictionary : public UMemory {
- //=================================================================================
- // data members
- //=================================================================================
-private:
-
- /**
- * Maps from characters to column numbers. The main use of this is to
- * avoid making room in the array for empty columns.
- */
- CompactByteArray* columnMap;
-
- /**
- * The number of actual columns in the table
- */
- int32_t numCols;
-
- /**
- * Columns are organized into groups of 32. This says how many
- * column groups. (We could calculate this, but we store the
- * value to avoid having to repeatedly calculate it.)
- */
- int32_t numColGroups;
-
- /**
- * The actual compressed state table. Each conceptual row represents
- * a state, and the cells in it contain the row numbers of the states
- * to transition to for each possible letter. 0 is used to indicate
- * an illegal combination of letters (i.e., the error state). The
- * table is compressed by eliminating all the unpopulated (i.e., zero)
- * cells. Multiple conceptual rows can then be doubled up in a single
- * physical row by sliding them up and possibly shifting them to one
- * side or the other so the populated cells don't collide. Indexes
- * are used to identify unpopulated cells and to locate populated cells.
- */
- int16_t* table;
-
- /**
- * This index maps logical row numbers to physical row numbers
- */
- int16_t* rowIndex;
-
- /**
- * A bitmap is used to tell which cells in the comceptual table are
- * populated. This array contains all the unique bit combinations
- * in that bitmap. If the table is more than 32 columns wide,
- * successive entries in this array are used for a single row.
- */
- int32_t* rowIndexFlags;
-
- /**
- * This index maps from a logical row number into the bitmap table above.
- * (This keeps us from storing duplicate bitmap combinations.) Since there
- * are a lot of rows with only one populated cell, instead of wasting space
- * in the bitmap table, we just store a negative number in this index for
- * rows with one populated cell. The absolute value of that number is
- * the column number of the populated cell.
- */
- int16_t* rowIndexFlagsIndex;
-
- /**
- * For each logical row, this index contains a constant that is added to
- * the logical column number to get the physical column number
- */
- int8_t* rowIndexShifts;
-
- //=================================================================================
- // deserialization
- //=================================================================================
-
-public:
- /**
- * Constructor. Creates the BreakDictionary by using readDictionaryFile() to
- * load the dictionary tables from the disk.
- * @param dictionaryFilename The name of the dictionary file
- * @param status for errors if it occurs
- */
- BreakDictionary(const char* dictionaryFilename, UErrorCode& status);
-
- /**
- * Destructor.
- */
- ~BreakDictionary();
-
- /**
- * Reads the dictionary file on the disk and constructs the appropriate in-memory
- * representation.
- * @param in The given memory stream
- */
- void readDictionaryFile(const uint8_t * in);
-
- //=================================================================================
- // access to the words
- //=================================================================================
-
- /**
- * Uses the column map to map the character to a column number, then
- * passes the row and column number to the other version of at()
- * @param row The current state
- * @param ch The character whose column we're interested in
- * @return The new state to transition to
- */
- int16_t at(int32_t row, UChar ch) const;
-
- /**
- * Returns the value in the cell with the specified (logical) row and
- * column numbers. In DictionaryBasedBreakIterator, the row number is
- * a state number, the column number is an input, and the return value
- * is the row number of the new state to transition to. (0 is the
- * "error" state, and -1 is the "end of word" state in a dictionary)
- * @param row The row number of the current state
- * @param col The column number of the input character (0 means "not a
- * dictionary character")
- * @return The row number of the new state to transition to
- */
- int16_t at(int32_t row, int32_t col) const;
-
-private:
- /**
- * Given (logical) row and column numbers, returns true if the
- * cell in that position is populated
- * @param row The LOGICAL row number of the cell
- * @param col The PHYSICAL row number of the cell
- * @return true if the cell in that position is populated
- */
- UBool cellIsPopulated(int32_t row, int32_t col) const;
-
- /**
- * Implementation of at() when we know the specified cell is populated.
- * @param row The PHYSICAL row number of the cell
- * @param col The PHYSICAL column number of the cell
- * @return The value stored in the cell
- */
- int16_t internalAt(int32_t row, int32_t col) const;
-
- // the following methods are never meant to be called and so are not defined
- // (if you don't declare them, you get default implementations)
- BreakDictionary(const BreakDictionary& that);
- BreakDictionary& operator=(const BreakDictionary& that);
-};
-
-U_NAMESPACE_END
-
-#endif
diff --git a/Build/source/libs/icu-xetex/common/brkeng.cpp b/Build/source/libs/icu-xetex/common/brkeng.cpp
new file mode 100644
index 00000000000..577a401ce5b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/brkeng.cpp
@@ -0,0 +1,230 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "brkeng.h"
+#include "dictbe.h"
+#include "triedict.h"
+#include "unicode/uchar.h"
+#include "unicode/uniset.h"
+#include "unicode/chariter.h"
+#include "unicode/ures.h"
+#include "unicode/udata.h"
+#include "unicode/putil.h"
+#include "unicode/ustring.h"
+#include "uvector.h"
+#include "mutex.h"
+#include "uresimp.h"
+#include "ubrkimpl.h"
+
+U_NAMESPACE_BEGIN
+
+/*
+ ******************************************************************
+ */
+
+LanguageBreakEngine::LanguageBreakEngine() {
+}
+
+LanguageBreakEngine::~LanguageBreakEngine() {
+}
+
+/*
+ ******************************************************************
+ */
+
+LanguageBreakFactory::LanguageBreakFactory() {
+}
+
+LanguageBreakFactory::~LanguageBreakFactory() {
+}
+
+/*
+ ******************************************************************
+ */
+
+UnhandledEngine::UnhandledEngine(UErrorCode &/*status*/) {
+ for (int32_t i = 0; i < (int32_t)(sizeof(fHandled)/sizeof(fHandled[0])); ++i) {
+ fHandled[i] = 0;
+ }
+}
+
+UnhandledEngine::~UnhandledEngine() {
+ for (int32_t i = 0; i < (int32_t)(sizeof(fHandled)/sizeof(fHandled[0])); ++i) {
+ if (fHandled[i] != 0) {
+ delete fHandled[i];
+ }
+ }
+}
+
+UBool
+UnhandledEngine::handles(UChar32 c, int32_t breakType) const {
+ return (breakType >= 0 && breakType < (int32_t)(sizeof(fHandled)/sizeof(fHandled[0]))
+ && fHandled[breakType] != 0 && fHandled[breakType]->contains(c));
+}
+
+int32_t
+UnhandledEngine::findBreaks( UText *text,
+ int32_t startPos,
+ int32_t endPos,
+ UBool reverse,
+ int32_t breakType,
+ UStack &/*foundBreaks*/ ) const {
+ if (breakType >= 0 && breakType < (int32_t)(sizeof(fHandled)/sizeof(fHandled[0]))) {
+ UChar32 c = utext_current32(text);
+ if (reverse) {
+ while((int32_t)utext_getNativeIndex(text) > startPos && fHandled[breakType]->contains(c)) {
+ c = utext_previous32(text);
+ }
+ }
+ else {
+ while((int32_t)utext_getNativeIndex(text) < endPos && fHandled[breakType]->contains(c)) {
+ utext_next32(text); // TODO: recast loop to work with post-increment operations.
+ c = utext_current32(text);
+ }
+ }
+ }
+ return 0;
+}
+
+void
+UnhandledEngine::handleCharacter(UChar32 c, int32_t breakType) {
+ if (breakType >= 0 && breakType < (int32_t)(sizeof(fHandled)/sizeof(fHandled[0]))) {
+ if (fHandled[breakType] == 0) {
+ fHandled[breakType] = new UnicodeSet();
+ if (fHandled[breakType] == 0) {
+ return;
+ }
+ }
+ if (!fHandled[breakType]->contains(c)) {
+ UErrorCode status = U_ZERO_ERROR;
+ // Apply the entire script of the character.
+ int32_t script = u_getIntPropertyValue(c, UCHAR_SCRIPT);
+ fHandled[breakType]->applyIntPropertyValue(UCHAR_SCRIPT, script, status);
+ }
+ }
+}
+
+/*
+ ******************************************************************
+ */
+
+ICULanguageBreakFactory::ICULanguageBreakFactory(UErrorCode &/*status*/) {
+ fEngines = 0;
+}
+
+ICULanguageBreakFactory::~ICULanguageBreakFactory() {
+ if (fEngines != 0) {
+ delete fEngines;
+ }
+}
+
+U_NAMESPACE_END
+U_CDECL_BEGIN
+static void U_CALLCONV _deleteEngine(void *obj) {
+ delete (const LanguageBreakEngine *) obj;
+}
+U_CDECL_END
+U_NAMESPACE_BEGIN
+
+const LanguageBreakEngine *
+ICULanguageBreakFactory::getEngineFor(UChar32 c, int32_t breakType) {
+ UBool needsInit;
+ UErrorCode status = U_ZERO_ERROR;
+ umtx_lock(NULL);
+ needsInit = (UBool)(fEngines == NULL);
+ umtx_unlock(NULL);
+
+ if (needsInit) {
+ UStack *engines = new UStack(_deleteEngine, NULL, status);
+ if (U_SUCCESS(status) && engines == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ // TODO: add locale parameter, check "dictionaries" in locale
+ // TODO: generalize once we can figure out how to parameterize engines
+ // instead of having different subclasses. Right now it needs to check
+ // for the key of each particular subclass.
+
+ // Open root from brkitr tree.
+ char dictnbuff[256];
+ char ext[4]={'\0'};
+
+ UResourceBundle *b = ures_open(U_ICUDATA_BRKITR, "", &status);
+ b = ures_getByKeyWithFallback(b, "dictionaries", b, &status);
+ b = ures_getByKeyWithFallback(b, "Thai", b, &status);
+ int32_t dictnlength = 0;
+ const UChar *dictfname = ures_getString(b, &dictnlength, &status);
+ if (U_SUCCESS(status) && (size_t)dictnlength >= sizeof(dictnbuff)) {
+ dictnlength = 0;
+ status = U_BUFFER_OVERFLOW_ERROR;
+ }
+ if (U_SUCCESS(status) && dictfname) {
+ UChar* extStart=u_strchr(dictfname, 0x002e);
+ int len = 0;
+ if(extStart!=NULL){
+ len = extStart-dictfname;
+ u_UCharsToChars(extStart+1, ext, sizeof(ext)); // nul terminates the buff
+ u_UCharsToChars(dictfname, dictnbuff, len);
+ }
+ dictnbuff[len]=0; // nul terminate
+ }
+ ures_close(b);
+ UDataMemory *file = udata_open(U_ICUDATA_BRKITR, ext, dictnbuff, &status);
+ if (U_SUCCESS(status)) {
+ const CompactTrieDictionary *dict = new CompactTrieDictionary(
+ file, status);
+ if (U_SUCCESS(status) && dict == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ if (U_FAILURE(status)) {
+ delete dict;
+ dict = NULL;
+ }
+ const ThaiBreakEngine *thai = new ThaiBreakEngine(dict, status);
+ if (thai == NULL) {
+ delete dict;
+ if (U_SUCCESS(status)) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ }
+ if (U_SUCCESS(status)) {
+ engines->push((void *)thai, status);
+ }
+ else {
+ delete thai;
+ }
+ }
+ umtx_lock(NULL);
+ if (fEngines == NULL) {
+ fEngines = engines;
+ engines = NULL;
+ }
+ umtx_unlock(NULL);
+ delete engines;
+ }
+
+ if (fEngines == NULL) {
+ return NULL;
+ }
+ int32_t i = fEngines->size();
+ const LanguageBreakEngine *lbe = NULL;
+ while (--i >= 0) {
+ lbe = (const LanguageBreakEngine *)(fEngines->elementAt(i));
+ if (lbe != NULL && lbe->handles(c, breakType)) {
+ break;
+ }
+ lbe = NULL;
+ }
+ return lbe;
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/Build/source/libs/icu-xetex/common/brkeng.h b/Build/source/libs/icu-xetex/common/brkeng.h
new file mode 100644
index 00000000000..afc70dc3eae
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/brkeng.h
@@ -0,0 +1,265 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#ifndef BRKENG_H
+#define BRKENG_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "unicode/utext.h"
+
+U_NAMESPACE_BEGIN
+
+class UnicodeSet;
+class UStack;
+
+/*******************************************************************
+ * LanguageBreakEngine
+ */
+
+/**
+ * <p>LanguageBreakEngines implement language-specific knowledge for
+ * finding text boundaries within a run of characters belonging to a
+ * specific set. The boundaries will be of a specific kind, e.g. word,
+ * line, etc.</p>
+ *
+ * <p>LanguageBreakEngines should normally be implemented so as to
+ * be shared between threads without locking.</p>
+ */
+class LanguageBreakEngine : public UMemory {
+ public:
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ */
+ LanguageBreakEngine();
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~LanguageBreakEngine();
+
+ /**
+ * <p>Indicate whether this engine handles a particular character for
+ * a particular kind of break.</p>
+ *
+ * @param c A character which begins a run that the engine might handle
+ * @param breakType The type of text break which the caller wants to determine
+ * @return TRUE if this engine handles the particular character and break
+ * type.
+ */
+ virtual UBool handles(UChar32 c, int32_t breakType) const = 0;
+
+ /**
+ * <p>Find any breaks within a run in the supplied text.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left at the end of the run of characters which the engine
+ * is capable of handling.
+ * @param startPos The start of the run within the supplied text.
+ * @param endPos The end of the run within the supplied text.
+ * @param reverse Whether the caller is looking for breaks in a reverse
+ * direction.
+ * @param breakType The type of break desired, or -1.
+ * @param foundBreaks An allocated C array of the breaks found, if any
+ * @return The number of breaks found.
+ */
+ virtual int32_t findBreaks( UText *text,
+ int32_t startPos,
+ int32_t endPos,
+ UBool reverse,
+ int32_t breakType,
+ UStack &foundBreaks ) const = 0;
+
+};
+
+/*******************************************************************
+ * LanguageBreakFactory
+ */
+
+/**
+ * <p>LanguageBreakFactorys find and return a LanguageBreakEngine
+ * that can determine breaks for characters in a specific set, if
+ * such an object can be found.</p>
+ *
+ * <p>If a LanguageBreakFactory is to be shared between threads,
+ * appropriate synchronization must be used; there is none internal
+ * to the factory.</p>
+ *
+ * <p>A LanguageBreakEngine returned by a LanguageBreakFactory can
+ * normally be shared between threads without synchronization, unless
+ * the specific subclass of LanguageBreakFactory indicates otherwise.</p>
+ *
+ * <p>A LanguageBreakFactory is responsible for deleting any LanguageBreakEngine
+ * it returns when it itself is deleted, unless the specific subclass of
+ * LanguageBreakFactory indicates otherwise. Naturally, the factory should
+ * not be deleted until the LanguageBreakEngines it has returned are no
+ * longer needed.</p>
+ */
+class LanguageBreakFactory : public UMemory {
+ public:
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ */
+ LanguageBreakFactory();
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~LanguageBreakFactory();
+
+ /**
+ * <p>Find and return a LanguageBreakEngine that can find the desired
+ * kind of break for the set of characters to which the supplied
+ * character belongs. It is up to the set of available engines to
+ * determine what the sets of characters are.</p>
+ *
+ * @param c A character that begins a run for which a LanguageBreakEngine is
+ * sought.
+ * @param breakType The kind of text break for which a LanguageBreakEngine is
+ * sought.
+ * @return A LanguageBreakEngine with the desired characteristics, or 0.
+ */
+ virtual const LanguageBreakEngine *getEngineFor(UChar32 c, int32_t breakType) = 0;
+
+};
+
+/*******************************************************************
+ * UnhandledEngine
+ */
+
+/**
+ * <p>UnhandledEngine is a special subclass of LanguageBreakEngine that
+ * handles characters that no other LanguageBreakEngine is available to
+ * handle. It is told the character and the type of break; at its
+ * discretion it may handle more than the specified character (e.g.,
+ * the entire script to which that character belongs.</p>
+ *
+ * <p>UnhandledEngines may not be shared between threads without
+ * external synchronization.</p>
+ */
+
+class UnhandledEngine : public LanguageBreakEngine {
+ private:
+
+ /**
+ * The sets of characters handled, for each break type
+ * @internal
+ */
+
+ UnicodeSet *fHandled[4];
+
+ public:
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ */
+ UnhandledEngine(UErrorCode &status);
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~UnhandledEngine();
+
+ /**
+ * <p>Indicate whether this engine handles a particular character for
+ * a particular kind of break.</p>
+ *
+ * @param c A character which begins a run that the engine might handle
+ * @param breakType The type of text break which the caller wants to determine
+ * @return TRUE if this engine handles the particular character and break
+ * type.
+ */
+ virtual UBool handles(UChar32 c, int32_t breakType) const;
+
+ /**
+ * <p>Find any breaks within a run in the supplied text.</p>
+ *
+ * @param text A UText representing the text (TODO: UText). The
+ * iterator is left at the end of the run of characters which the engine
+ * is capable of handling.
+ * @param startPos The start of the run within the supplied text.
+ * @param endPos The end of the run within the supplied text.
+ * @param reverse Whether the caller is looking for breaks in a reverse
+ * direction.
+ * @param breakType The type of break desired, or -1.
+ * @param foundBreaks An allocated C array of the breaks found, if any
+ * @return The number of breaks found.
+ */
+ virtual int32_t findBreaks( UText *text,
+ int32_t startPos,
+ int32_t endPos,
+ UBool reverse,
+ int32_t breakType,
+ UStack &foundBreaks ) const;
+
+ /**
+ * <p>Tell the engine to handle a particular character and break type.</p>
+ *
+ * @param c A character which the engine should handle
+ * @param breakType The type of text break for which the engine should handle c
+ */
+ virtual void handleCharacter(UChar32 c, int32_t breakType);
+
+};
+
+/*******************************************************************
+ * ICULanguageBreakFactory
+ */
+
+/**
+ * <p>ICULanguageBreakFactory is the default LanguageBreakFactory for
+ * ICU. It creates dictionary-based LanguageBreakEngines from dictionary
+ * data in the ICU data file.</p>
+ */
+class ICULanguageBreakFactory : public LanguageBreakFactory {
+ private:
+
+ /**
+ * The stack of break engines created by this factory
+ * @internal
+ */
+
+ UStack *fEngines;
+
+ public:
+
+ /**
+ * <p>Standard constructor.</p>
+ *
+ */
+ ICULanguageBreakFactory(UErrorCode &status);
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~ICULanguageBreakFactory();
+
+ /**
+ * <p>Find and return a LanguageBreakEngine that can find the desired
+ * kind of break for the set of characters to which the supplied
+ * character belongs. It is up to the set of available engines to
+ * determine what the sets of characters are.</p>
+ *
+ * @param c A character that begins a run for which a LanguageBreakEngine is
+ * sought.
+ * @param breakType The kind of text break for which a LanguageBreakEngine is
+ * sought.
+ * @return A LanguageBreakEngine with the desired characteristics, or 0.
+ */
+ virtual const LanguageBreakEngine *getEngineFor(UChar32 c, int32_t breakType);
+
+};
+
+U_NAMESPACE_END
+
+ /* BRKENG_H */
+#endif
diff --git a/Build/source/libs/icu-xetex/common/brkiter.cpp b/Build/source/libs/icu-xetex/common/brkiter.cpp
index e8b10f78d27..256095bfed6 100644
--- a/Build/source/libs/icu-xetex/common/brkiter.cpp
+++ b/Build/source/libs/icu-xetex/common/brkiter.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -22,16 +22,19 @@
#if !UCONFIG_NO_BREAK_ITERATION
-#include "unicode/dbbi.h"
+#include "unicode/rbbi.h"
#include "unicode/brkiter.h"
#include "unicode/udata.h"
#include "unicode/ures.h"
+#include "unicode/ustring.h"
#include "ucln_cmn.h"
#include "cstring.h"
#include "mutex.h"
#include "servloc.h"
#include "locbased.h"
#include "uresimp.h"
+#include "uassert.h"
+#include "ubrkimpl.h"
// *****************************************************************************
// class BreakIterator
@@ -45,15 +48,18 @@ U_NAMESPACE_BEGIN
// -------------------------------------
BreakIterator*
-BreakIterator::buildInstance(const Locale& loc, const char *type, UBool dict, UErrorCode &status)
+BreakIterator::buildInstance(const Locale& loc, const char *type, int32_t kind, UErrorCode &status)
{
char fnbuff[256];
+ char ext[4]={'\0'};
char actualLocale[ULOC_FULLNAME_CAPACITY];
int32_t size;
const UChar* brkfname = NULL;
- UResourceBundle brkRulesStack, brkNameStack;
- UResourceBundle *brkRules = &brkRulesStack, *brkName = &brkNameStack;
- BreakIterator *result = NULL;
+ UResourceBundle brkRulesStack;
+ UResourceBundle brkNameStack;
+ UResourceBundle *brkRules = &brkRulesStack;
+ UResourceBundle *brkName = &brkNameStack;
+ RuleBasedBreakIterator *result = NULL;
if (U_FAILURE(status))
return NULL;
@@ -62,7 +68,13 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UBool dict, UE
ures_initStackObject(brkName);
// Get the locale
- UResourceBundle *b = ures_open(NULL, loc.getName(), &status);
+ UResourceBundle *b = ures_open(U_ICUDATA_BRKITR, loc.getName(), &status);
+ /* this is a hack for now. Should be fixed when the data is fetched from
+ brk_index.txt */
+ if(status==U_USING_DEFAULT_WARNING){
+ status=U_ZERO_ERROR;
+ ures_openFillIn(b, U_ICUDATA_BRKITR, "", &status);
+ }
// Get the "boundaries" array.
if (U_SUCCESS(status)) {
@@ -71,57 +83,48 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UBool dict, UE
brkName = ures_getByKeyWithFallback(brkRules, type, brkName, &status);
// Get the actual string
brkfname = ures_getString(brkName, &size, &status);
+ U_ASSERT((size_t)size<sizeof(fnbuff));
+ if ((size_t)size>=sizeof(fnbuff)) {
+ size=0;
+ if (U_SUCCESS(status)) {
+ status = U_BUFFER_OVERFLOW_ERROR;
+ }
+ }
// Use the string if we found it
if (U_SUCCESS(status) && brkfname) {
uprv_strncpy(actualLocale,
ures_getLocale(brkName, &status),
sizeof(actualLocale)/sizeof(actualLocale[0]));
- u_UCharsToChars(brkfname, fnbuff, size+1);
+
+ UChar* extStart=u_strchr(brkfname, 0x002e);
+ int len = 0;
+ if(extStart!=NULL){
+ len = extStart-brkfname;
+ u_UCharsToChars(extStart+1, ext, sizeof(ext)); // nul terminates the buff
+ u_UCharsToChars(brkfname, fnbuff, len);
+ }
+ fnbuff[len]=0; // nul terminate
}
}
ures_close(brkRules);
ures_close(brkName);
- UDataMemory* file = udata_open(NULL, "brk", fnbuff, &status);
+ UDataMemory* file = udata_open(U_ICUDATA_BRKITR, ext, fnbuff, &status);
if (U_FAILURE(status)) {
ures_close(b);
return NULL;
}
- // We found the break rules; now see if a dictionary is needed
- if (dict)
- {
- UErrorCode localStatus = U_ZERO_ERROR;
- brkName = &brkNameStack;
- ures_initStackObject(brkName);
- brkName = ures_getByKeyWithFallback(b, "BreakDictionaryData", brkName, &localStatus);
-#if 0
- if (U_SUCCESS(localStatus)) {
- brkfname = ures_getString(&brkname, &size, &localStatus);
- }
-#endif
- if (U_SUCCESS(localStatus)) {
-#if 0
- u_UCharsToChars(brkfname, fnbuff, size);
- fnbuff[size] = '\0';
-#endif
- result = new DictionaryBasedBreakIterator(file, "thaidict.brk", status);
- }
- ures_close(brkName);
- }
-
- // If there is still no result but we haven't had an error, no dictionary,
- // so make a non-dictionary break iterator
- if (U_SUCCESS(status) && result == NULL) {
- result = new RuleBasedBreakIterator(file, status);
- }
+ // Create a RuleBasedBreakIterator
+ result = new RuleBasedBreakIterator(file, status);
- // If there is a result, set the valid locale and actual locale
+ // If there is a result, set the valid locale and actual locale, and the kind
if (U_SUCCESS(status) && result != NULL) {
U_LOCALE_BASED(locBased, *result);
locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), actualLocale);
+ result->setBreakType(kind);
}
ures_close(b);
@@ -361,7 +364,7 @@ BreakIterator::getAvailableLocales(void)
// -------------------------------------
BreakIterator*
-BreakIterator::createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status)
+BreakIterator::createInstance(const Locale& loc, int32_t kind, UErrorCode& status)
{
if (U_FAILURE(status)) {
return NULL;
@@ -408,19 +411,19 @@ BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status)
BreakIterator *result = NULL;
switch (kind) {
case UBRK_CHARACTER:
- result = BreakIterator::buildInstance(loc, "grapheme", FALSE, status);
+ result = BreakIterator::buildInstance(loc, "grapheme", kind, status);
break;
case UBRK_WORD:
- result = BreakIterator::buildInstance(loc, "word", TRUE, status);
+ result = BreakIterator::buildInstance(loc, "word", kind, status);
break;
case UBRK_LINE:
- result = BreakIterator::buildInstance(loc, "line", TRUE, status);
+ result = BreakIterator::buildInstance(loc, "line", kind, status);
break;
case UBRK_SENTENCE:
- result = BreakIterator::buildInstance(loc, "sentence", FALSE, status);
+ result = BreakIterator::buildInstance(loc, "sentence", kind, status);
break;
case UBRK_TITLE:
- result = BreakIterator::buildInstance(loc, "title", FALSE, status);
+ result = BreakIterator::buildInstance(loc, "title", kind, status);
break;
default:
status = U_ILLEGAL_ARGUMENT_ERROR;
diff --git a/Build/source/libs/icu-xetex/common/caniter.cpp b/Build/source/libs/icu-xetex/common/caniter.cpp
index 731e24398da..04d48ba8fce 100644
--- a/Build/source/libs/icu-xetex/common/caniter.cpp
+++ b/Build/source/libs/icu-xetex/common/caniter.cpp
@@ -1,6 +1,6 @@
/*
*****************************************************************************
- * Copyright (C) 1996-2004, International Business Machines Corporation and *
+ * Copyright (C) 1996-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*****************************************************************************
*/
@@ -51,29 +51,7 @@ Results for: {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMB
*@author M. Davis
*@draft
*/
-#if 0
-static UBool PROGRESS = FALSE;
-#include <stdio.h>
-#include "unicode/translit.h"
-
-UErrorCode status = U_ZERO_ERROR;
-
-// Just for testing - remove, not thread safe.
-static const char* UToS(const UnicodeString &source) {
- static char buffer[256];
- buffer[source.extract(0, source.length(), buffer)] = 0;
- return buffer;
-}
-
-static const UnicodeString &Tr(const UnicodeString &source) {
- static Transliterator *NAME = Transliterator::createInstance("name", UTRANS_FORWARD, status);
- static UnicodeString result;
- result = source;
- NAME->transliterate(result);
- return result;
-}
-#endif
// public
U_NAMESPACE_BEGIN
@@ -111,14 +89,16 @@ void CanonicalIterator::cleanPieces() {
}
uprv_free(pieces);
pieces = NULL;
- if(pieces_lengths != NULL) {
- uprv_free(pieces_lengths);
- }
+ pieces_length = 0;
+ }
+ if(pieces_lengths != NULL) {
+ uprv_free(pieces_lengths);
pieces_lengths = NULL;
- if(current != NULL) {
- uprv_free(current);
- }
+ }
+ if(current != NULL) {
+ uprv_free(current);
current = NULL;
+ current_length = 0;
}
}
@@ -269,20 +249,7 @@ CleanPartialInitialization:
if (list != NULL) {
delete[] list;
}
- if (pieces != NULL) {
- uprv_free(pieces);
- }
- pieces = NULL;
- pieces_length = 0;
- if(pieces_lengths != NULL) {
- uprv_free(pieces_lengths);
- }
- pieces_lengths = NULL;
- if(current != NULL) {
- uprv_free(current);
- }
- current = NULL;
- current_length = 0;
+ cleanPieces();
}
/**
@@ -293,7 +260,7 @@ CleanPartialInitialization:
*/
void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status) {
if(U_FAILURE(status)) {
- return;
+ return;
}
//if (PROGRESS) printf("Permute: %s\n", UToS(Tr(source)));
int32_t i = 0;
@@ -302,27 +269,23 @@ void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros
// if zero or one character, just return a set with it
// we check for length < 2 to keep from counting code points all the time
if (source.length() <= 2 && source.countChar32() <= 1) {
- UnicodeString *toPut = new UnicodeString(source);
- /* test for NULL */
- if (toPut == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- result->put(source, toPut, status);
- return;
+ UnicodeString *toPut = new UnicodeString(source);
+ /* test for NULL */
+ if (toPut == 0) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ result->put(source, toPut, status);
+ return;
}
// otherwise iterate through the string, and recursively permute all the other characters
UChar32 cp;
- Hashtable *subpermute = new Hashtable(status);
- /* test for NULL */
- if (subpermute == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ Hashtable subpermute(status);
+ if(U_FAILURE(status)) {
return;
}
- if (U_SUCCESS(status)) {
- subpermute->setValueDeleter(uhash_deleteUnicodeString);
- }
+ subpermute.setValueDeleter(uhash_deleteUnicodeString);
for (i = 0; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
cp = source.char32At(i);
@@ -338,37 +301,34 @@ void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros
continue;
}
- subpermute->removeAll();
+ subpermute.removeAll();
// see what the permutations of the characters before and after this one are
//Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
- permute(subPermuteString.replace(i, UTF16_CHAR_LENGTH(cp), NULL, 0), skipZeros, subpermute, status);
+ permute(subPermuteString.replace(i, UTF16_CHAR_LENGTH(cp), NULL, 0), skipZeros, &subpermute, status);
/* Test for buffer overflows */
if(U_FAILURE(status)) {
- delete subpermute;
return;
}
// The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents
// of source at this point.
// prefix this character to all of them
- ne = subpermute->nextElement(el);
+ ne = subpermute.nextElement(el);
while (ne != NULL) {
- UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
- UnicodeString *chStr = new UnicodeString(cp);
- //test for NULL
- if (chStr == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- delete subpermute;
- return;
- }
+ UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
+ UnicodeString *chStr = new UnicodeString(cp);
+ //test for NULL
+ if (chStr == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
chStr->append(*permRes); //*((UnicodeString *)(ne->value.pointer));
//if (PROGRESS) printf(" Piece: %s\n", UToS(*chStr));
result->put(*chStr, chStr, status);
- ne = subpermute->nextElement(el);
+ ne = subpermute.nextElement(el);
}
}
- delete subpermute;
//return result;
}
@@ -378,21 +338,17 @@ void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros
UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status) {
Hashtable result(status);
Hashtable permutations(status);
+ Hashtable basic(status);
if (U_FAILURE(status)) {
return 0;
}
result.setValueDeleter(uhash_deleteUnicodeString);
permutations.setValueDeleter(uhash_deleteUnicodeString);
+ basic.setValueDeleter(uhash_deleteUnicodeString);
UChar USeg[256];
int32_t segLen = segment.extract(USeg, 256, status);
- Hashtable *basic = getEquivalents2(USeg, segLen, status);
- //Hashtable *basic = getEquivalents2(segment, segLen, status);
- if (basic == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- delete basic;
- return 0;
- }
+ getEquivalents2(&basic, USeg, segLen, status);
// now get all the permutations
// add only the ones that are canonically equivalent
@@ -401,7 +357,7 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i
const UHashElement *ne = NULL;
int32_t el = -1;
//Iterator it = basic.iterator();
- ne = basic->nextElement(el);
+ ne = basic.nextElement(el);
//while (it.hasNext())
while (ne != NULL) {
//String item = (String) it.next();
@@ -432,12 +388,11 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i
ne2 = permutations.nextElement(el2);
}
- ne = basic->nextElement(el);
+ ne = basic.nextElement(el);
}
/* Test for buffer overflows */
if(U_FAILURE(status)) {
- delete basic;
return 0;
}
// convert into a String[] to clean up storage
@@ -446,50 +401,39 @@ UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, i
int32_t resultCount;
if((resultCount = result.count())) {
finalResult = new UnicodeString[resultCount];
- } else {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- }
- /* test for NULL */
- if (finalResult == 0) {
- if(U_SUCCESS(status)) {
+ if (finalResult == 0) {
status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
}
- delete basic;
- return 0;
+ }
+ else {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
}
//result.toArray(finalResult);
result_len = 0;
el = -1;
ne = result.nextElement(el);
while(ne != NULL) {
- UnicodeString finResult = *((UnicodeString *)(ne->value.pointer));
- finalResult[result_len++] = finResult;
+ finalResult[result_len++] = *((UnicodeString *)(ne->value.pointer));
ne = result.nextElement(el);
}
- delete basic;
return finalResult;
}
-Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status) {
-//Hashtable *CanonicalIterator::getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status) {
+Hashtable *CanonicalIterator::getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status) {
- Hashtable *result = new Hashtable(status);
- /* test for NULL */
- if (result == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
- if (U_SUCCESS(status)) {
- result->setValueDeleter(uhash_deleteUnicodeString);
+ if (U_FAILURE(status)) {
+ return NULL;
}
//if (PROGRESS) printf("Adding: %s\n", UToS(Tr(segment)));
UnicodeString toPut(segment, segLen);
- result->put(toPut, new UnicodeString(toPut), status);
+ fillinResult->put(toPut, new UnicodeString(toPut), status);
USerializedSet starts;
@@ -500,48 +444,45 @@ Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segL
// see if any character is at the start of some decomposition
UTF_GET_CHAR(segment, 0, i, segLen, cp);
if (!unorm_getCanonStartSet(cp, &starts)) {
- continue;
+ continue;
}
// if so, see which decompositions match
for(j = 0, cp = end+1; cp <= end || uset_getSerializedRange(&starts, j++, &cp, &end); ++cp) {
- //Hashtable *remainder = extract(cp, segment, segLen, i, status);
- Hashtable *remainder = extract(cp, segment, segLen, i, status);
- if (remainder == NULL) continue;
+ Hashtable remainder(status);
+ remainder.setValueDeleter(uhash_deleteUnicodeString);
+ if (extract(&remainder, cp, segment, segLen, i, status) == NULL) {
+ continue;
+ }
// there were some matches, so add all the possibilities to the set.
UnicodeString prefix(segment, i);
prefix += cp;
- const UHashElement *ne = NULL;
int32_t el = -1;
- ne = remainder->nextElement(el);
+ const UHashElement *ne = remainder.nextElement(el);
while (ne != NULL) {
UnicodeString item = *((UnicodeString *)(ne->value.pointer));
UnicodeString *toAdd = new UnicodeString(prefix);
/* test for NULL */
if (toAdd == 0) {
status = U_MEMORY_ALLOCATION_ERROR;
- delete result;
- delete remainder;
- return 0;
+ return NULL;
}
*toAdd += item;
- result->put(*toAdd, toAdd, status);
+ fillinResult->put(*toAdd, toAdd, status);
//if (PROGRESS) printf("Adding: %s\n", UToS(Tr(*toAdd)));
- ne = remainder->nextElement(el);
+ ne = remainder.nextElement(el);
}
-
- delete remainder;
}
}
/* Test for buffer overflows */
if(U_FAILURE(status)) {
- return 0;
+ return NULL;
}
- return result;
+ return fillinResult;
}
/**
@@ -549,11 +490,15 @@ Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segL
* (with canonical rearrangment!)
* If so, take the remainder, and return the equivalents
*/
-Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
//Hashtable *CanonicalIterator::extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
//if (PROGRESS) printf(" extract: %s, ", UToS(Tr(UnicodeString(comp))));
//if (PROGRESS) printf("%s, %i\n", UToS(Tr(segment)), segmentPos);
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+
const int32_t bufSize = 256;
int32_t bufLen = 0;
UChar temp[bufSize];
@@ -588,7 +533,7 @@ Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_
i = segmentPos;
while(i < segLen) {
- UTF_NEXT_CHAR(segment, i, segLen, cp);
+ UTF_NEXT_CHAR(segment, i, segLen, cp);
if (cp == decompCp) { // if equal, eat another cp from decomp
@@ -635,20 +580,14 @@ Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_
*/
}
}
- if (!ok) return NULL; // we failed, characters left over
+ if (!ok)
+ return NULL; // we failed, characters left over
//if (PROGRESS) printf("Matches\n");
if (bufLen == 0) {
- Hashtable *result = new Hashtable(status);
- /* test for NULL */
- if (result == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return 0;
- }
- result->setValueDeleter(uhash_deleteUnicodeString);
- result->put(UnicodeString(), new UnicodeString(), status);
- return result; // succeed, but no remainder
+ fillinResult->put(UnicodeString(), new UnicodeString(), status);
+ return fillinResult; // succeed, but no remainder
}
// brute force approach
@@ -658,16 +597,13 @@ Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_
UChar trial[bufSize];
unorm_decompose(trial, bufSize, temp, tempLen, FALSE, 0, &status);
- /* Test for buffer overflows */
- if(U_FAILURE(status)) {
- return 0;
- }
-
- if(uprv_memcmp(segment+segmentPos, trial, (segLen - segmentPos)*sizeof(UChar)) != 0) {
- return NULL;
+ if(U_FAILURE(status)
+ || uprv_memcmp(segment+segmentPos, trial, (segLen - segmentPos)*sizeof(UChar)) != 0)
+ {
+ return NULL;
}
- return getEquivalents2(buff, bufLen, status);
+ return getEquivalents2(fillinResult, buff, bufLen, status);
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/common/common.vcproj b/Build/source/libs/icu-xetex/common/common.vcproj
index 66159fdefef..a30a33c7fbc 100644
--- a/Build/source/libs/icu-xetex/common/common.vcproj
+++ b/Build/source/libs/icu-xetex/common/common.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/common.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -38,10 +39,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuuc34.dll"
+ OutputFile="..\..\bin\icuuc36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuuc34.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuuc36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4a800000"
ImportLibrary="..\..\lib\icuuc.lib"/>
@@ -90,6 +91,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/common.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -102,11 +104,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuuc34d.dll"
+ OutputFile="..\..\bin\icuuc36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuuc34d.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuuc36d.pdb"
BaseAddress="0x4a800000"
ImportLibrary="..\..\lib\icuucd.lib"/>
<Tool
@@ -208,10 +210,10 @@
Name="break iteration"
Filter="">
<File
- RelativePath=".\brkdict.cpp">
+ RelativePath=".\brkeng.cpp">
</File>
<File
- RelativePath=".\brkdict.h">
+ RelativePath=".\brkeng.h">
</File>
<File
RelativePath=".\brkiter.cpp">
@@ -236,9 +238,6 @@
</FileConfiguration>
</File>
<File
- RelativePath=".\dbbi.cpp">
- </File>
- <File
RelativePath=".\unicode\dbbi.h">
<FileConfiguration
Name="Release|Win32">
@@ -258,10 +257,10 @@
</FileConfiguration>
</File>
<File
- RelativePath=".\dbbi_tbl.cpp">
+ RelativePath=".\dictbe.cpp">
</File>
<File
- RelativePath=".\dbbi_tbl.h">
+ RelativePath=".\dictbe.h">
</File>
<File
RelativePath=".\rbbi.cpp">
@@ -328,6 +327,12 @@
RelativePath=".\rbbitblb.h">
</File>
<File
+ RelativePath=".\triedict.cpp">
+ </File>
+ <File
+ RelativePath=".\triedict.h">
+ </File>
+ <File
RelativePath=".\ubrk.cpp">
</File>
<File
@@ -349,6 +354,9 @@
Outputs="..\..\include\unicode\$(InputFileName)"/>
</FileConfiguration>
</File>
+ <File
+ RelativePath=".\ubrkimpl.h">
+ </File>
</Filter>
<Filter
Name="collation"
@@ -404,12 +412,6 @@
RelativePath=".\uarrsort.h">
</File>
<File
- RelativePath=".\ucmp8.c">
- </File>
- <File
- RelativePath=".\ucmp8.h">
- </File>
- <File
RelativePath=".\uenum.c">
</File>
<File
@@ -625,6 +627,25 @@
</FileConfiguration>
</File>
<File
+ RelativePath=".\unicode\uintrnal.h">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ </File>
+ <File
RelativePath=".\unicode\umachine.h">
<FileConfiguration
Name="Release|Win32">
@@ -644,6 +665,9 @@
</FileConfiguration>
</File>
<File
+ RelativePath=".\umath.c">
+ </File>
+ <File
RelativePath=".\umutex.c">
<FileConfiguration
Name="Release|Win32">
@@ -700,6 +724,25 @@
</FileConfiguration>
</File>
<File
+ RelativePath=".\unicode\usystem.h">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ </File>
+ <File
RelativePath=".\utrace.c">
</File>
<File
@@ -765,6 +808,24 @@
Outputs="..\..\include\unicode\$(InputFileName)"/>
</FileConfiguration>
</File>
+ <File
+ RelativePath=".\wintz.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\wintz.h">
+ </File>
</Filter>
<Filter
Name="conversion"
@@ -1104,6 +1165,9 @@
<File
RelativePath=".\util.h">
</File>
+ <File
+ RelativePath=".\util_props.cpp">
+ </File>
</Filter>
<Filter
Name="idna"
@@ -2031,4 +2095,4 @@
</Files>
<Globals>
</Globals>
-</VisualStudioProject>
+</VisualStudioProject> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/common/cpputils.h b/Build/source/libs/icu-xetex/common/cpputils.h
index de09aea1427..c1b439c7ff8 100644
--- a/Build/source/libs/icu-xetex/common/cpputils.h
+++ b/Build/source/libs/icu-xetex/common/cpputils.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2001, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -15,6 +15,7 @@
#define CPPUTILS_H
#include "unicode/utypes.h"
+#include "unicode/unistr.h"
#include "cmemory.h"
/*==========================================================================*/
@@ -63,4 +64,21 @@ uprv_arrayCopy(const UChar *src, int32_t srcStart,
UChar *dst, int32_t dstStart, int32_t count)
{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+/**
+ * Copy an array of UnicodeString OBJECTS (not pointers).
+ * @internal
+ */
+static inline void
+uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t count)
+{ while(count-- > 0) *dst++ = *src++; }
+
+/**
+ * Copy an array of UnicodeString OBJECTS (not pointers).
+ * @internal
+ */
+static inline void
+uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, int32_t srcStart,
+ U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t dstStart, int32_t count)
+{ uprv_arrayCopy(src+srcStart, dst+dstStart, count); }
+
#endif /* _CPPUTILS */
diff --git a/Build/source/libs/icu-xetex/common/dbbi.cpp b/Build/source/libs/icu-xetex/common/dbbi.cpp
deleted file mode 100644
index 9f4928473f8..00000000000
--- a/Build/source/libs/icu-xetex/common/dbbi.cpp
+++ /dev/null
@@ -1,637 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 1999-2005 IBM Corp. All rights reserved.
-**********************************************************************
-* Date Name Description
-* 12/1/99 rgillam Complete port from Java.
-* 01/13/2000 helena Added UErrorCode to ctors.
-**********************************************************************
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-#include "unicode/dbbi.h"
-#include "unicode/schriter.h"
-#include "dbbi_tbl.h"
-#include "uvector.h"
-#include "cmemory.h"
-#include "uassert.h"
-
-U_NAMESPACE_BEGIN
-
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DictionaryBasedBreakIterator)
-
-
-//------------------------------------------------------------------------------
-//
-// constructors
-//
-//------------------------------------------------------------------------------
-
-DictionaryBasedBreakIterator::DictionaryBasedBreakIterator() :
-RuleBasedBreakIterator() {
- init();
-}
-
-
-DictionaryBasedBreakIterator::DictionaryBasedBreakIterator(UDataMemory* rbbiData,
- const char* dictionaryFilename,
- UErrorCode& status)
-: RuleBasedBreakIterator(rbbiData, status)
-{
- init();
- if (U_FAILURE(status)) {return;};
- fTables = new DictionaryBasedBreakIteratorTables(dictionaryFilename, status);
- if (U_FAILURE(status)) {
- if (fTables != NULL) {
- fTables->removeReference();
- fTables = NULL;
- }
- return;
- }
- /* test for NULL */
- if(fTables == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
-}
-
-
-DictionaryBasedBreakIterator::DictionaryBasedBreakIterator(const DictionaryBasedBreakIterator &other) :
-RuleBasedBreakIterator(other)
-{
- init();
- if (other.fTables != NULL) {
- fTables = other.fTables;
- fTables->addReference();
- }
-}
-
-
-
-
-//------------------------------------------------------------------------------
-//
-// Destructor
-//
-//------------------------------------------------------------------------------
-DictionaryBasedBreakIterator::~DictionaryBasedBreakIterator()
-{
- uprv_free(cachedBreakPositions);
- cachedBreakPositions = NULL;
- if (fTables != NULL) {fTables->removeReference();};
-}
-
-//------------------------------------------------------------------------------
-//
-// Assignment operator. Sets this iterator to have the same behavior,
-// and iterate over the same text, as the one passed in.
-//
-//------------------------------------------------------------------------------
-DictionaryBasedBreakIterator&
-DictionaryBasedBreakIterator::operator=(const DictionaryBasedBreakIterator& that) {
- if (this == &that) {
- return *this;
- }
- reset(); // clears out cached break positions.
- RuleBasedBreakIterator::operator=(that);
- if (this->fTables != that.fTables) {
- if (this->fTables != NULL) {this->fTables->removeReference();};
- this->fTables = that.fTables;
- if (this->fTables != NULL) {this->fTables->addReference();};
- }
- return *this;
-}
-
-//------------------------------------------------------------------------------
-//
-// Clone() Returns a newly-constructed RuleBasedBreakIterator with the same
-// behavior, and iterating over the same text, as this one.
-//
-//------------------------------------------------------------------------------
-BreakIterator*
-DictionaryBasedBreakIterator::clone() const {
- return new DictionaryBasedBreakIterator(*this);
-}
-
-//=======================================================================
-// BreakIterator overrides
-//=======================================================================
-
-/**
- * Advances the iterator one step backwards.
- * @return The position of the last boundary position before the
- * current iteration position
- */
-int32_t
-DictionaryBasedBreakIterator::previous()
-{
- // if we have cached break positions and we're still in the range
- // covered by them, just move one step backward in the cache
- if (cachedBreakPositions != NULL && positionInCache > 0) {
- --positionInCache;
- fText->setIndex(cachedBreakPositions[positionInCache]);
- return cachedBreakPositions[positionInCache];
- }
-
- // otherwise, dump the cache and use the inherited previous() method to move
- // backward. This may fill up the cache with new break positions, in which
- // case we have to mark our position in the cache
- else {
- reset();
- int32_t result = RuleBasedBreakIterator::previous();
- if (cachedBreakPositions != NULL) {
- for (positionInCache=0;
- cachedBreakPositions[positionInCache] != result;
- positionInCache++);
- U_ASSERT(positionInCache < numCachedBreakPositions);
- if (positionInCache >= numCachedBreakPositions) {
- // Something has gone wrong. Dump the cache.
- reset();
- }
- }
- return result;
- }
-}
-
-/**
- * Sets the current iteration position to the last boundary position
- * before the specified position.
- * @param offset The position to begin searching from
- * @return The position of the last boundary before "offset"
- */
-int32_t
-DictionaryBasedBreakIterator::preceding(int32_t offset)
-{
- // if the offset passed in is already past the end of the text,
- // just return DONE; if it's before the beginning, return the
- // text's starting offset
- if (fText == NULL || offset > fText->endIndex()) {
- return BreakIterator::DONE;
- }
- else if (offset < fText->startIndex()) {
- return fText->startIndex();
- }
-
- // if we have no cached break positions, or "offset" is outside the
- // range covered by the cache, we can just call the inherited routine
- // (which will eventually call other routines in this class that may
- // refresh the cache)
- if (cachedBreakPositions == NULL || offset <= cachedBreakPositions[0] ||
- offset > cachedBreakPositions[numCachedBreakPositions - 1]) {
- reset();
- return RuleBasedBreakIterator::preceding(offset);
- }
-
- // on the other hand, if "offset" is within the range covered by the cache,
- // then all we have to do is search the cache for the last break position
- // before "offset"
- else {
- positionInCache = 0;
- while (positionInCache < numCachedBreakPositions
- && offset > cachedBreakPositions[positionInCache])
- ++positionInCache;
- --positionInCache;
- fText->setIndex(cachedBreakPositions[positionInCache]);
- return fText->getIndex();
- }
-}
-
-/**
- * Sets the current iteration position to the first boundary position after
- * the specified position.
- * @param offset The position to begin searching forward from
- * @return The position of the first boundary after "offset"
- */
-int32_t
-DictionaryBasedBreakIterator::following(int32_t offset)
-{
- // if the offset passed in is already past the end of the text,
- // just return DONE; if it's before the beginning, return the
- // text's starting offset
- if (fText == NULL || offset > fText->endIndex()) {
- return BreakIterator::DONE;
- }
- else if (offset < fText->startIndex()) {
- return fText->startIndex();
- }
-
- // if we have no cached break positions, or if "offset" is outside the
- // range covered by the cache, then dump the cache and call our
- // inherited following() method. This will call other methods in this
- // class that may refresh the cache.
- if (cachedBreakPositions == NULL || offset < cachedBreakPositions[0] ||
- offset >= cachedBreakPositions[numCachedBreakPositions - 1]) {
- reset();
- return RuleBasedBreakIterator::following(offset);
- }
-
- // on the other hand, if "offset" is within the range covered by the
- // cache, then just search the cache for the first break position
- // after "offset"
- else {
- positionInCache = 0;
- while (positionInCache < numCachedBreakPositions
- && offset >= cachedBreakPositions[positionInCache])
- ++positionInCache;
- fText->setIndex(cachedBreakPositions[positionInCache]);
- return fText->getIndex();
- }
-}
-
-/**
- * This is the implementation function for next().
- */
-int32_t
-DictionaryBasedBreakIterator::handleNext()
-{
- UErrorCode status = U_ZERO_ERROR;
- // if there are no cached break positions, or if we've just moved
- // off the end of the range covered by the cache, we have to dump
- // and possibly regenerate the cache
- if (cachedBreakPositions == NULL || positionInCache == numCachedBreakPositions - 1) {
-
- // start by using the inherited handleNext() to find a tentative return
- // value. dictionaryCharCount tells us how many dictionary characters
- // we passed over on our way to the tentative return value
- int32_t startPos = fText->getIndex();
- fDictionaryCharCount = 0;
- int32_t result = RuleBasedBreakIterator::handleNext();
-
- // if we passed over more than one dictionary character, then we use
- // divideUpDictionaryRange() to regenerate the cached break positions
- // for the new range
- if (fDictionaryCharCount > 1 && result - startPos > 1) {
- divideUpDictionaryRange(startPos, result, status);
- U_ASSERT(U_SUCCESS(status));
- if (U_FAILURE(status)) {
- // Something went badly wrong, an internal error.
- // We have no way from here to report it to caller.
- // Treat as if this is if the dictionary did not apply to range.
- reset();
- return result;
- }
- }
-
- // otherwise, the value we got back from the inherited fuction
- // is our return value, and we can dump the cache
- else {
- reset();
- return result;
- }
- }
-
- // if the cache of break positions has been regenerated (or existed all
- // along), then just advance to the next break position in the cache
- // and return it
- if (cachedBreakPositions != NULL) {
- ++positionInCache;
- fText->setIndex(cachedBreakPositions[positionInCache]);
- return cachedBreakPositions[positionInCache];
- }
- return -9999; // SHOULD NEVER GET HERE!
-}
-
-void
-DictionaryBasedBreakIterator::reset()
-{
- uprv_free(cachedBreakPositions);
- cachedBreakPositions = NULL;
- numCachedBreakPositions = 0;
- fDictionaryCharCount = 0;
- positionInCache = 0;
-}
-
-
-
-//------------------------------------------------------------------------------
-//
-// init() Common initialization routine, for use by constructors, etc.
-//
-//------------------------------------------------------------------------------
-void DictionaryBasedBreakIterator::init() {
- cachedBreakPositions = NULL;
- fTables = NULL;
- numCachedBreakPositions = 0;
- fDictionaryCharCount = 0;
- positionInCache = 0;
-}
-
-
-//------------------------------------------------------------------------------
-//
-// BufferClone
-//
-//------------------------------------------------------------------------------
-BreakIterator * DictionaryBasedBreakIterator::createBufferClone(void *stackBuffer,
- int32_t &bufferSize,
- UErrorCode &status)
-{
- if (U_FAILURE(status)){
- return NULL;
- }
-
- //
- // If user buffer size is zero this is a preflight operation to
- // obtain the needed buffer size, allowing for worst case misalignment.
- //
- if (bufferSize == 0) {
- bufferSize = sizeof(DictionaryBasedBreakIterator) + U_ALIGNMENT_OFFSET_UP(0);
- return NULL;
- }
-
- //
- // Check the alignment and size of the user supplied buffer.
- // Allocate heap memory if the user supplied memory is insufficient.
- //
- char *buf = (char *)stackBuffer;
- uint32_t s = bufferSize;
-
- if (stackBuffer == NULL) {
- s = 0; // Ignore size, force allocation if user didn't give us a buffer.
- }
- if (U_ALIGNMENT_OFFSET(stackBuffer) != 0) {
- int32_t offsetUp = (int32_t)U_ALIGNMENT_OFFSET_UP(buf);
- s -= offsetUp;
- buf += offsetUp;
- }
- if (s < sizeof(DictionaryBasedBreakIterator)) {
- buf = (char *) new DictionaryBasedBreakIterator();
- if (buf == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- status = U_SAFECLONE_ALLOCATED_WARNING;
- }
-
- //
- // Initialize the clone object.
- // TODO: using an overloaded C++ "operator new" to directly initialize the
- // copy in the user's buffer would be better, but it doesn't seem
- // to get along with namespaces. Investigate why.
- //
- // The memcpy is only safe with an empty (default constructed)
- // break iterator. Use on others can screw up reference counts
- // to data. memcpy-ing objects is not really a good idea...
- //
- DictionaryBasedBreakIterator localIter; // Empty break iterator, source for memcpy
- DictionaryBasedBreakIterator *clone = (DictionaryBasedBreakIterator *)buf;
- uprv_memcpy(clone, &localIter, sizeof(DictionaryBasedBreakIterator)); // clone = empty, but initialized, iterator.
- *clone = *this; // clone = the real one we want.
- if (status != U_SAFECLONE_ALLOCATED_WARNING) {
- clone->fBufferClone = TRUE;
- }
- return clone;
-}
-
-
-
-
-/**
- * This is the function that actually implements the dictionary-based
- * algorithm. Given the endpoints of a range of text, it uses the
- * dictionary to determine the positions of any boundaries in this
- * range. It stores all the boundary positions it discovers in
- * cachedBreakPositions so that we only have to do this work once
- * for each time we enter the range.
- */
-void
-DictionaryBasedBreakIterator::divideUpDictionaryRange(int32_t startPos, int32_t endPos, UErrorCode &status)
-{
- // the range we're dividing may begin or end with non-dictionary characters
- // (i.e., for line breaking, we may have leading or trailing punctuation
- // that needs to be kept with the word). Seek from the beginning of the
- // range to the first dictionary character
- fText->setIndex(startPos);
- UChar32 c = fText->current32();
- while (isDictionaryChar(c) == FALSE) {
- c = fText->next32();
- }
-
- if (U_FAILURE(status)) {
- return; // UStack below overwrites the status error codes
- }
-
- // initialize. We maintain two stacks: currentBreakPositions contains
- // the list of break positions that will be returned if we successfully
- // finish traversing the whole range now. possibleBreakPositions lists
- // all other possible word ends we've passed along the way. (Whenever
- // we reach an error [a sequence of characters that can't begin any word
- // in the dictionary], we back up, possibly delete some breaks from
- // currentBreakPositions, move a break from possibleBreakPositions
- // to currentBreakPositions, and start over from there. This process
- // continues in this way until we either successfully make it all the way
- // across the range, or exhaust all of our combinations of break
- // positions.) wrongBreakPositions is used to keep track of paths we've
- // tried on previous iterations. As the iterator backs up further and
- // further, this saves us from having to follow each possible path
- // through the text all the way to the error (hopefully avoiding many
- // future recursive calls as well).
- // there can be only one kind of error in UStack and UVector, so we'll
- // just let the error fall through
- UStack currentBreakPositions(status);
- UStack possibleBreakPositions(status);
- UVector wrongBreakPositions(status);
-
- // the dictionary is implemented as a trie, which is treated as a state
- // machine. -1 represents the end of a legal word. Every word in the
- // dictionary is represented by a path from the root node to -1. A path
- // that ends in state 0 is an illegal combination of characters.
- int16_t state = 0;
-
- // these two variables are used for error handling. We keep track of the
- // farthest we've gotten through the range being divided, and the combination
- // of breaks that got us that far. If we use up all possible break
- // combinations, the text contains an error or a word that's not in the
- // dictionary. In this case, we "bless" the break positions that got us the
- // farthest as real break positions, and then start over from scratch with
- // the character where the error occurred.
- int32_t farthestEndPoint = fText->getIndex();
- UStack bestBreakPositions(status);
- UBool bestBreakPositionsInitialized = FALSE;
-
- if (U_FAILURE(status)) {
- return;
- }
- // initialize (we always exit the loop with a break statement)
- c = fText->current32();
- for (;;) {
- // The dictionary implementation doesn't do supplementary chars.
- // Put them through as an unpaired surrogate, which
- // will end any dictionary match in progress.
- // With any luck, this dictionary implementation will be retired soon.
- if (c>0x10000) {
- c = 0xd800;
- }
-
- // if we can transition to state "-1" from our current state, we're
- // on the last character of a legal word. Push that position onto
- // the possible-break-positions stack
- if (fTables->fDictionary->at(state, (int32_t)0) == -1) {
- possibleBreakPositions.push(fText->getIndex(), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
-
- // look up the new state to transition to in the dictionary
- state = fTables->fDictionary->at(state, (UChar)c);
-
- // if the character we're sitting on causes us to transition to
- // the "end of word" state, then it was a non-dictionary character
- // and we've successfully traversed the whole range. Drop out
- // of the loop.
- if (state == -1) {
- currentBreakPositions.push(fText->getIndex(), status);
- if (U_FAILURE(status)) {
- return;
- }
- break;
- }
-
- // if the character we're sitting on causes us to transition to
- // the error state, or if we've gone off the end of the range
- // without transitioning to the "end of word" state, we've hit
- // an error...
- else if (state == 0 || fText->getIndex() >= endPos) {
-
- // if this is the farthest we've gotten, take note of it in
- // case there's an error in the text
- if (fText->getIndex() > farthestEndPoint) {
- farthestEndPoint = fText->getIndex();
- bestBreakPositions.removeAllElements();
- bestBreakPositionsInitialized = TRUE;
- for (int32_t i = 0; i < currentBreakPositions.size(); i++) {
- bestBreakPositions.push(currentBreakPositions.elementAti(i), status);
- }
- }
-
- // wrongBreakPositions is a list of all break positions we've tried starting
- // that didn't allow us to traverse all the way through the text. Every time
- // we pop a break position off of currentBreakPositions, we put it into
- // wrongBreakPositions to avoid trying it again later. If we make it to this
- // spot, we're either going to back up to a break in possibleBreakPositions
- // and try starting over from there, or we've exhausted all possible break
- // positions and are going to do the fallback procedure. This loop prevents
- // us from messing with anything in possibleBreakPositions that didn't work as
- // a starting point the last time we tried it (this is to prevent a bunch of
- // repetitive checks from slowing down some extreme cases)
- while (!possibleBreakPositions.isEmpty() && wrongBreakPositions.contains(
- possibleBreakPositions.peeki())) {
- possibleBreakPositions.popi();
- }
-
- // if we've used up all possible break-position combinations, there's
- // an error or an unknown word in the text. In this case, we start
- // over, treating the farthest character we've reached as the beginning
- // of the range, and "blessing" the break positions that got us that
- // far as real break positions
- if (possibleBreakPositions.isEmpty()) {
- if (bestBreakPositionsInitialized) {
- currentBreakPositions.removeAllElements();
- for (int32_t i = 0; i < bestBreakPositions.size(); i++) {
- currentBreakPositions.push(bestBreakPositions.elementAti(i), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
- bestBreakPositions.removeAllElements();
- if (farthestEndPoint < endPos) {
- fText->setIndex(farthestEndPoint);
- fText->next32();
- }
- else {
- break;
- }
- }
- else {
- if ((currentBreakPositions.isEmpty()
- || currentBreakPositions.peeki() != fText->getIndex())
- && fText->getIndex() != startPos) {
- currentBreakPositions.push(fText->getIndex(), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
- fText->next32();
- currentBreakPositions.push(fText->getIndex(), status);
- if (U_FAILURE(status)) {
- return;
- }
- }
- }
-
- // if we still have more break positions we can try, then promote the
- // last break in possibleBreakPositions into currentBreakPositions,
- // and get rid of all entries in currentBreakPositions that come after
- // it. Then back up to that position and start over from there (i.e.,
- // treat that position as the beginning of a new word)
- else {
- int32_t temp = possibleBreakPositions.popi();
- int32_t temp2 = 0;
- while (!currentBreakPositions.isEmpty() && temp <
- currentBreakPositions.peeki()) {
- temp2 = currentBreakPositions.popi();
- wrongBreakPositions.addElement(temp2, status);
- }
- currentBreakPositions.push(temp, status);
- fText->setIndex(currentBreakPositions.peeki());
- }
-
- // re-sync "c" for the next go-round, and drop out of the loop if
- // we've made it off the end of the range
- c = fText->current32();
- if (fText->getIndex() >= endPos) {
- break;
- }
- }
-
- // if we didn't hit any exceptional conditions on this last iteration,
- // just advance to the next character and loop
- else {
- c = fText->next32();
- }
- }
-
- // dump the last break position in the list, and replace it with the actual
- // end of the range (which may be the same character, or may be further on
- // because the range actually ended with non-dictionary characters we want to
- // keep with the word)
- if (!currentBreakPositions.isEmpty()) {
- currentBreakPositions.popi();
- }
- currentBreakPositions.push(endPos, status);
- if (U_FAILURE(status)) {
- return;
- }
-
- // create a regular array to hold the break positions and copy
- // the break positions from the stack to the array (in addition,
- // our starting position goes into this array as a break position).
- // This array becomes the cache of break positions used by next()
- // and previous(), so this is where we actually refresh the cache.
- if (cachedBreakPositions != NULL) {
- uprv_free(cachedBreakPositions);
- }
- cachedBreakPositions = (int32_t *)uprv_malloc((currentBreakPositions.size() + 1) * sizeof(int32_t));
- /* Test for NULL */
- if(cachedBreakPositions == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- numCachedBreakPositions = currentBreakPositions.size() + 1;
- cachedBreakPositions[0] = startPos;
-
- for (int32_t i = 0; i < currentBreakPositions.size(); i++) {
- cachedBreakPositions[i + 1] = currentBreakPositions.elementAti(i);
- }
- positionInCache = 0;
-}
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
-
-/* eof */
diff --git a/Build/source/libs/icu-xetex/common/dbbi_tbl.cpp b/Build/source/libs/icu-xetex/common/dbbi_tbl.cpp
deleted file mode 100644
index 29eb3eb8b38..00000000000
--- a/Build/source/libs/icu-xetex/common/dbbi_tbl.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 1999-2002 IBM Corp. All rights reserved.
-**********************************************************************
-* Date Name Description
-* 12/1/99 rgillam Complete port from Java.
-* 01/13/2000 helena Added UErrorCode to ctors.
-* 06/14/2002 andy Gutted for new RBBI impl.
-**********************************************************************
-*/
-
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_BREAK_ITERATION
-
-#include "dbbi_tbl.h"
-#include "unicode/dbbi.h"
-#include "umutex.h"
-
-U_NAMESPACE_BEGIN
-
-//=======================================================================
-// constructor
-//=======================================================================
-
-DictionaryBasedBreakIteratorTables::DictionaryBasedBreakIteratorTables(
- const char* dictionaryFilename,
- UErrorCode &status) {
- fDictionary = new BreakDictionary(dictionaryFilename, status);
- fRefCount = 1;
-}
-
-
-void DictionaryBasedBreakIteratorTables::addReference() {
- umtx_atomic_inc(&fRefCount);
-}
-
-
-void DictionaryBasedBreakIteratorTables::removeReference() {
- if (umtx_atomic_dec(&fRefCount) == 0) {
- delete this;
- }
-}
-
-
-/**
- * Destructor
- */
-DictionaryBasedBreakIteratorTables::~DictionaryBasedBreakIteratorTables() {
- delete fDictionary;
- fDictionary = NULL;
-}
-
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
-
-/* eof */
diff --git a/Build/source/libs/icu-xetex/common/dbbi_tbl.h b/Build/source/libs/icu-xetex/common/dbbi_tbl.h
deleted file mode 100644
index 70728e3f894..00000000000
--- a/Build/source/libs/icu-xetex/common/dbbi_tbl.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 1999-2000 IBM Corp. All rights reserved.
-**********************************************************************
-* Date Name Description
-* 12/1/99 rgillam Complete port from Java.
-* 01/13/2000 helena Added UErrorCode to ctors.
-**********************************************************************
-*/
-
-#ifndef DBBI_TBL_H
-#define DBBI_TBL_H
-
-#include "unicode/utypes.h"
-#include "unicode/uobject.h"
-#include "unicode/udata.h"
-#include "brkdict.h"
-
-U_NAMESPACE_BEGIN
-
-/* forward declaration */
-class DictionaryBasedBreakIterator;
-
-//
-// DictionaryBasedBreakIteratorTables
-//
-// This class sits between instances of DictionaryBasedBreakIterator
-// and the dictionary data itself, which is of type BreakDictionary.
-// It provides reference counting, allowing multiple copies of a
-// DictionaryBasedBreakIterator to share a single instance of
-// BreakDictionary.
-//
-// TODO: it'd probably be cleaner to add the reference counting to
-// BreakDictionary and get rid of this class, but doing it this way
-// was a convenient transition from earlier code, and time is short...
-//
-class DictionaryBasedBreakIteratorTables : public UMemory {
-
-private:
- int32_t fRefCount;
-
-
-public:
- //=======================================================================
- // constructor
- //=======================================================================
- /* @param dictionaryFilename The name of the dictionary file
- * @param status The error code
- * @return the newly created DictionaryBasedBreakIteratorTables
- **/
- DictionaryBasedBreakIteratorTables(const char* dictionaryFilename,
- UErrorCode& status);
-
- BreakDictionary *fDictionary;
- void addReference();
- void removeReference();
- /**
- * Destructor. Should not be used directly. Use removeReference() istead.
- * (Not private to avoid compiler warnings.)
- */
- virtual ~DictionaryBasedBreakIteratorTables();
-
-private:
- /**
- * The copy constructor is declared private and not implemented.
- * THIS CLASS MAY NOT BE COPIED.
- * @param that The DictionaryBasedBreakIteratorTables to be copied.
- * @return the newly constructed DictionaryBasedBreakIteratorTables.
- */
- DictionaryBasedBreakIteratorTables(const DictionaryBasedBreakIteratorTables& that);
-
- //=======================================================================
- // boilerplate
- //=======================================================================
-
-
- /**
- * The assignment operator is declared private and not implemented.
- * THIS CLASS MAY NOT BE COPIED.
- * Call addReference() and share an existing copy instead.
- * @that The object to be copied
- * @return the newly created DictionaryBasedBreakIteratorTables.
- */
- DictionaryBasedBreakIteratorTables& operator=(
- const DictionaryBasedBreakIteratorTables& that);
-};
-
-U_NAMESPACE_END
-
-#endif
diff --git a/Build/source/libs/icu-xetex/common/dictbe.cpp b/Build/source/libs/icu-xetex/common/dictbe.cpp
new file mode 100644
index 00000000000..ac774f7c765
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/dictbe.cpp
@@ -0,0 +1,418 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "brkeng.h"
+#include "dictbe.h"
+#include "unicode/uniset.h"
+#include "unicode/chariter.h"
+#include "unicode/ubrk.h"
+#include "uvector.h"
+#include "triedict.h"
+
+U_NAMESPACE_BEGIN
+
+/*
+ ******************************************************************
+ */
+
+/*DictionaryBreakEngine::DictionaryBreakEngine() {
+ fTypes = 0;
+}*/
+
+DictionaryBreakEngine::DictionaryBreakEngine(uint32_t breakTypes) {
+ fTypes = breakTypes;
+}
+
+DictionaryBreakEngine::~DictionaryBreakEngine() {
+}
+
+UBool
+DictionaryBreakEngine::handles(UChar32 c, int32_t breakType) const {
+ return (breakType >= 0 && breakType < 32 && (((uint32_t)1 << breakType) & fTypes)
+ && fSet.contains(c));
+}
+
+int32_t
+DictionaryBreakEngine::findBreaks( UText *text,
+ int32_t startPos,
+ int32_t endPos,
+ UBool reverse,
+ int32_t breakType,
+ UStack &foundBreaks ) const {
+ int32_t result = 0;
+
+ // Find the span of characters included in the set.
+ int32_t start = (int32_t)utext_getNativeIndex(text);
+ int32_t current;
+ int32_t rangeStart;
+ int32_t rangeEnd;
+ UChar32 c = utext_current32(text);
+ if (reverse) {
+ UBool isDict = fSet.contains(c);
+ while((current = (int32_t)utext_getNativeIndex(text)) > startPos && isDict) {
+ c = utext_previous32(text);
+ isDict = fSet.contains(c);
+ }
+ rangeStart = (current < startPos) ? startPos : current+(isDict ? 0 : 1);
+ rangeEnd = start + 1;
+ }
+ else {
+ while((current = (int32_t)utext_getNativeIndex(text)) < endPos && fSet.contains(c)) {
+ utext_next32(text); // TODO: recast loop for postincrement
+ c = utext_current32(text);
+ }
+ rangeStart = start;
+ rangeEnd = current;
+ }
+ if (breakType >= 0 && breakType < 32 && (((uint32_t)1 << breakType) & fTypes)) {
+ result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks);
+ utext_setNativeIndex(text, current);
+ }
+
+ return result;
+}
+
+void
+DictionaryBreakEngine::setCharacters( UnicodeSet &set ) {
+ fSet = set;
+}
+
+/*void
+DictionaryBreakEngine::setBreakTypes( uint32_t breakTypes ) {
+ fTypes = breakTypes;
+}*/
+
+/*
+ ******************************************************************
+ */
+
+
+// Helper class for improving readability of the Thai word break
+// algorithm. The implementation is completely inline.
+
+// List size, limited by the maximum number of words in the dictionary
+// that form a nested sequence.
+#define POSSIBLE_WORD_LIST_MAX 20
+
+class PossibleWord {
+ private:
+ // list of word candidate lengths, in increasing length order
+ int32_t lengths[POSSIBLE_WORD_LIST_MAX];
+ int count; // Count of candidates
+ int32_t prefix; // The longest match with a dictionary word
+ int32_t offset; // Offset in the text of these candidates
+ int mark; // The preferred candidate's offset
+ int current; // The candidate we're currently looking at
+
+ public:
+ PossibleWord();
+ ~PossibleWord();
+
+ // Fill the list of candidates if needed, select the longest, and return the number found
+ int candidates( UText *text, const TrieWordDictionary *dict, int32_t rangeEnd );
+
+ // Select the currently marked candidate, point after it in the text, and invalidate self
+ int32_t acceptMarked( UText *text );
+
+ // Back up from the current candidate to the next shorter one; return TRUE if that exists
+ // and point the text after it
+ UBool backUp( UText *text );
+
+ // Return the longest prefix this candidate location shares with a dictionary word
+ int32_t longestPrefix();
+
+ // Mark the current candidate as the one we like
+ void markCurrent();
+};
+
+inline
+PossibleWord::PossibleWord() {
+ offset = -1;
+}
+
+inline
+PossibleWord::~PossibleWord() {
+}
+
+inline int
+PossibleWord::candidates( UText *text, const TrieWordDictionary *dict, int32_t rangeEnd ) {
+ // TODO: If getIndex is too slow, use offset < 0 and add discardAll()
+ int32_t start = (int32_t)utext_getNativeIndex(text);
+ if (start != offset) {
+ offset = start;
+ prefix = dict->matches(text, rangeEnd-start, lengths, count, sizeof(lengths)/sizeof(lengths[0]));
+ // Dictionary leaves text after longest prefix, not longest word. Back up.
+ if (count <= 0) {
+ utext_setNativeIndex(text, start);
+ }
+ }
+ if (count > 0) {
+ utext_setNativeIndex(text, start+lengths[count-1]);
+ }
+ current = count-1;
+ mark = current;
+ return count;
+}
+
+inline int32_t
+PossibleWord::acceptMarked( UText *text ) {
+ utext_setNativeIndex(text, offset + lengths[mark]);
+ return lengths[mark];
+}
+
+inline UBool
+PossibleWord::backUp( UText *text ) {
+ if (current > 0) {
+ utext_setNativeIndex(text, offset + lengths[--current]);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+inline int32_t
+PossibleWord::longestPrefix() {
+ return prefix;
+}
+
+inline void
+PossibleWord::markCurrent() {
+ mark = current;
+}
+
+// How many words in a row are "good enough"?
+#define THAI_LOOKAHEAD 3
+
+// Will not combine a non-word with a preceding dictionary word longer than this
+#define THAI_ROOT_COMBINE_THRESHOLD 3
+
+// Will not combine a non-word that shares at least this much prefix with a
+// dictionary word, with a preceding word
+#define THAI_PREFIX_COMBINE_THRESHOLD 3
+
+// Ellision character
+#define THAI_PAIYANNOI 0x0E2F
+
+// Repeat character
+#define THAI_MAIYAMOK 0x0E46
+
+// Minimum word size
+#define THAI_MIN_WORD 2
+
+// Minimum number of characters for two words
+#define THAI_MIN_WORD_SPAN (THAI_MIN_WORD * 2)
+
+ThaiBreakEngine::ThaiBreakEngine(const TrieWordDictionary *adoptDictionary, UErrorCode &status)
+ : DictionaryBreakEngine((1<<UBRK_WORD) | (1<<UBRK_LINE)),
+ fDictionary(adoptDictionary)
+{
+ fThaiWordSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]]"), status);
+ if (U_SUCCESS(status)) {
+ setCharacters(fThaiWordSet);
+ }
+ fMarkSet.applyPattern(UNICODE_STRING_SIMPLE("[[:Thai:]&[:LineBreak=SA:]&[:M:]]"), status);
+ fEndWordSet = fThaiWordSet;
+ fEndWordSet.remove(0x0E31); // MAI HAN-AKAT
+ fEndWordSet.remove(0x0E40, 0x0E44); // SARA E through SARA AI MAIMALAI
+ fBeginWordSet.add(0x0E01, 0x0E2E); // KO KAI through HO NOKHUK
+ fBeginWordSet.add(0x0E40, 0x0E44); // SARA E through SARA AI MAIMALAI
+ fSuffixSet.add(THAI_PAIYANNOI);
+ fSuffixSet.add(THAI_MAIYAMOK);
+}
+
+ThaiBreakEngine::~ThaiBreakEngine() {
+ delete fDictionary;
+}
+
+int32_t
+ThaiBreakEngine::divideUpDictionaryRange( UText *text,
+ int32_t rangeStart,
+ int32_t rangeEnd,
+ UStack &foundBreaks ) const {
+ if ((rangeEnd - rangeStart) < THAI_MIN_WORD_SPAN) {
+ return 0; // Not enough characters for two words
+ }
+
+ uint32_t wordsFound = 0;
+ int32_t wordLength;
+ int32_t current;
+ UErrorCode status = U_ZERO_ERROR;
+ PossibleWord words[THAI_LOOKAHEAD];
+ UChar32 uc;
+
+ utext_setNativeIndex(text, rangeStart);
+
+ while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
+ wordLength = 0;
+
+ // Look for candidate words at the current position
+ int candidates = words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+
+ // If we found exactly one, use that
+ if (candidates == 1) {
+ wordLength = words[wordsFound%THAI_LOOKAHEAD].acceptMarked(text);
+ wordsFound += 1;
+ }
+
+ // If there was more than one, see which one can take us forward the most words
+ else if (candidates > 1) {
+ // If we're already at the end of the range, we're done
+ if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+ goto foundBest;
+ }
+ do {
+ int wordsMatched = 1;
+ if (words[(wordsFound+1)%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) > 0) {
+ if (wordsMatched < 2) {
+ // Followed by another dictionary word; mark first word as a good candidate
+ words[wordsFound%THAI_LOOKAHEAD].markCurrent();
+ wordsMatched = 2;
+ }
+
+ // If we're already at the end of the range, we're done
+ if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
+ goto foundBest;
+ }
+
+ // See if any of the possible second words is followed by a third word
+ do {
+ // If we find a third word, stop right away
+ if (words[(wordsFound+2)%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd)) {
+ words[wordsFound%THAI_LOOKAHEAD].markCurrent();
+ goto foundBest;
+ }
+ }
+ while (words[(wordsFound+1)%THAI_LOOKAHEAD].backUp(text));
+ }
+ }
+ while (words[wordsFound%THAI_LOOKAHEAD].backUp(text));
+foundBest:
+ wordLength = words[wordsFound%THAI_LOOKAHEAD].acceptMarked(text);
+ wordsFound += 1;
+ }
+
+ // We come here after having either found a word or not. We look ahead to the
+ // next word. If it's not a dictionary word, we will combine it withe the word we
+ // just found (if there is one), but only if the preceding word does not exceed
+ // the threshold.
+ // The text iterator should now be positioned at the end of the word we found.
+ if ((int32_t)utext_getNativeIndex(text) < rangeEnd && wordLength < THAI_ROOT_COMBINE_THRESHOLD) {
+ // if it is a dictionary word, do nothing. If it isn't, then if there is
+ // no preceding word, or the non-word shares less than the minimum threshold
+ // of characters with a dictionary word, then scan to resynchronize
+ if (words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) <= 0
+ && (wordLength == 0
+ || words[wordsFound%THAI_LOOKAHEAD].longestPrefix() < THAI_PREFIX_COMBINE_THRESHOLD)) {
+ // Look for a plausible word boundary
+ //TODO: This section will need a rework for UText.
+ int32_t remaining = rangeEnd - (current+wordLength);
+ UChar32 pc = utext_current32(text);
+ int32_t chars = 0;
+ while (TRUE) {
+ utext_next32(text);
+ uc = utext_current32(text);
+ // TODO: Here we're counting on the fact that the SA languages are all
+ // in the BMP. This should get fixed with the UText rework.
+ chars += 1;
+ if (--remaining <= 0) {
+ break;
+ }
+ if (fEndWordSet.contains(pc) && fBeginWordSet.contains(uc)) {
+ // Maybe. See if it's in the dictionary.
+ // NOTE: In the original Apple code, checked that the next
+ // 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.
+ int candidates = words[(wordsFound+1)%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
+ utext_setNativeIndex(text, current+wordLength+chars);
+ if (candidates > 0) {
+ break;
+ }
+ }
+ pc = uc;
+ }
+
+ // Bump the word count if there wasn't already one
+ if (wordLength <= 0) {
+ wordsFound += 1;
+ }
+
+ // Update the length with the passed-over characters
+ wordLength += chars;
+ }
+ else {
+ // Back up to where we were for next iteration
+ utext_setNativeIndex(text, current+wordLength);
+ }
+ }
+
+ // Never stop before a combining mark.
+ int32_t currPos;
+ while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+ utext_next32(text);
+ wordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+ }
+
+ // Look ahead for possible suffixes if a dictionary word does not follow.
+ // We do this in code rather than using a rule so that the heuristic
+ // resynch continues to function. For example, one of the suffix characters
+ // could be a typo in the middle of a word.
+ if ((int32_t)utext_getNativeIndex(text) < rangeEnd && wordLength > 0) {
+ if (words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) <= 0
+ && fSuffixSet.contains(uc = utext_current32(text))) {
+ if (uc == THAI_PAIYANNOI) {
+ if (!fSuffixSet.contains(utext_previous32(text))) {
+ // Skip over previous end and PAIYANNOI
+ utext_next32(text);
+ utext_next32(text);
+ wordLength += 1; // Add PAIYANNOI to word
+ uc = utext_current32(text); // Fetch next character
+ }
+ else {
+ // Restore prior position
+ utext_next32(text);
+ }
+ }
+ if (uc == THAI_MAIYAMOK) {
+ if (utext_previous32(text) != THAI_MAIYAMOK) {
+ // Skip over previous end and MAIYAMOK
+ utext_next32(text);
+ utext_next32(text);
+ wordLength += 1; // Add MAIYAMOK to word
+ }
+ else {
+ // Restore prior position
+ utext_next32(text);
+ }
+ }
+ }
+ else {
+ utext_setNativeIndex(text, current+wordLength);
+ }
+ }
+
+ // Did we find a word on this iteration? If so, push it on the break stack
+ if (wordLength > 0) {
+ foundBreaks.push((current+wordLength), status);
+ }
+ }
+
+ // Don't return a break for the end of the dictionary range if there is one there.
+ if (foundBreaks.peeki() >= rangeEnd) {
+ (void) foundBreaks.popi();
+ wordsFound -= 1;
+ }
+
+ return wordsFound;
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/Build/source/libs/icu-xetex/common/dictbe.h b/Build/source/libs/icu-xetex/common/dictbe.h
new file mode 100644
index 00000000000..80a52f57e16
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/dictbe.h
@@ -0,0 +1,193 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#ifndef DICTBE_H
+#define DICTBE_H
+
+#include "unicode/utypes.h"
+#include "unicode/uniset.h"
+#include "unicode/utext.h"
+
+#include "brkeng.h"
+
+U_NAMESPACE_BEGIN
+
+class TrieWordDictionary;
+
+/*******************************************************************
+ * DictionaryBreakEngine
+ */
+
+/**
+ * <p>DictionaryBreakEngine is a kind of LanguageBreakEngine that uses a
+ * dictionary to determine language-specific breaks.</p>
+ *
+ * <p>After it is constructed a DictionaryBreakEngine may be shared between
+ * threads without synchronization.</p>
+ */
+class DictionaryBreakEngine : public LanguageBreakEngine {
+ private:
+ /**
+ * The set of characters handled by this engine
+ * @internal
+ */
+
+ UnicodeSet fSet;
+
+ /**
+ * The set of break types handled by this engine
+ * @internal
+ */
+
+ uint32_t fTypes;
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ */
+ DictionaryBreakEngine();
+
+ public:
+
+ /**
+ * <p>Constructor setting the break types handled.</p>
+ *
+ * @param breakTypes A bitmap of types handled by the engine.
+ */
+ DictionaryBreakEngine( uint32_t breakTypes );
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~DictionaryBreakEngine();
+
+ /**
+ * <p>Indicate whether this engine handles a particular character for
+ * a particular kind of break.</p>
+ *
+ * @param c A character which begins a run that the engine might handle
+ * @param breakType The type of text break which the caller wants to determine
+ * @return TRUE if this engine handles the particular character and break
+ * type.
+ */
+ virtual UBool handles( UChar32 c, int32_t breakType ) const;
+
+ /**
+ * <p>Find any breaks within a run in the supplied text.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left at the end of the run of characters which the engine
+ * is capable of handling.
+ * @param startPos The start of the run within the supplied text.
+ * @param endPos The end of the run within the supplied text.
+ * @param reverse Whether the caller is looking for breaks in a reverse
+ * direction.
+ * @param breakType The type of break desired, or -1.
+ * @param foundBreaks An allocated C array of the breaks found, if any
+ * @return The number of breaks found.
+ */
+ virtual int32_t findBreaks( UText *text,
+ int32_t startPos,
+ int32_t endPos,
+ UBool reverse,
+ int32_t breakType,
+ UStack &foundBreaks ) const;
+
+ protected:
+
+ /**
+ * <p>Set the character set handled by this engine.</p>
+ *
+ * @param set A UnicodeSet of the set of characters handled by the engine
+ */
+ virtual void setCharacters( UnicodeSet &set );
+
+ /**
+ * <p>Set the break types handled by this engine.</p>
+ *
+ * @param breakTypes A bitmap of types handled by the engine.
+ */
+// virtual void setBreakTypes( uint32_t breakTypes );
+
+ /**
+ * <p>Divide up a range of known dictionary characters.</p>
+ *
+ * @param text A UText representing the text
+ * @param rangeStart The start of the range of dictionary characters
+ * @param rangeEnd The end of the range of dictionary characters
+ * @param foundBreaks Output of C array of int32_t break positions, or 0
+ * @return The number of breaks found
+ */
+ virtual int32_t divideUpDictionaryRange( UText *text,
+ int32_t rangeStart,
+ int32_t rangeEnd,
+ UStack &foundBreaks ) const = 0;
+
+};
+
+/*******************************************************************
+ * ThaiBreakEngine
+ */
+
+/**
+ * <p>ThaiBreakEngine is a kind of DictionaryBreakEngine that uses a
+ * TrieWordDictionary and heuristics to determine Thai-specific breaks.</p>
+ *
+ * <p>After it is constructed a ThaiBreakEngine may be shared between
+ * threads without synchronization.</p>
+ */
+class ThaiBreakEngine : public DictionaryBreakEngine {
+ private:
+ /**
+ * The set of characters handled by this engine
+ * @internal
+ */
+
+ UnicodeSet fThaiWordSet;
+ UnicodeSet fEndWordSet;
+ UnicodeSet fBeginWordSet;
+ UnicodeSet fSuffixSet;
+ UnicodeSet fMarkSet;
+ const TrieWordDictionary *fDictionary;
+
+ public:
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ * @param adoptDictionary A TrieWordDictionary to adopt. Deleted when the
+ * engine is deleted.
+ */
+ ThaiBreakEngine(const TrieWordDictionary *adoptDictionary, UErrorCode &status);
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~ThaiBreakEngine();
+
+ protected:
+ /**
+ * <p>Divide up a range of known dictionary characters.</p>
+ *
+ * @param text A UText representing the text
+ * @param rangeStart The start of the range of dictionary characters
+ * @param rangeEnd The end of the range of dictionary characters
+ * @param foundBreaks Output of C array of int32_t break positions, or 0
+ * @return The number of breaks found
+ */
+ virtual int32_t divideUpDictionaryRange( UText *text,
+ int32_t rangeStart,
+ int32_t rangeEnd,
+ UStack &foundBreaks ) const;
+
+};
+
+
+U_NAMESPACE_END
+
+ /* DICTBE_H */
+#endif
diff --git a/Build/source/libs/icu-xetex/common/hash.h b/Build/source/libs/icu-xetex/common/hash.h
index f1ea543cb67..375499bf1b8 100644
--- a/Build/source/libs/icu-xetex/common/hash.h
+++ b/Build/source/libs/icu-xetex/common/hash.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* Date Name Description
@@ -26,8 +26,9 @@ U_NAMESPACE_BEGIN
*/
class U_COMMON_API Hashtable : public UMemory {
UHashtable* hash;
+ UHashtable hashObj;
- inline void init(UHashFunction *keyHash, UKeyComparator *keyComp, UErrorCode& status);
+ inline void init(UHashFunction *keyHash, UKeyComparator *keyComp, UValueComparator *valueComp, UErrorCode& status);
public:
/**
@@ -39,6 +40,14 @@ public:
/**
* Construct a hashtable
+ * @param keyComp Compartor for comparing the keys
+ * @param valueComp Compartor for comparing the values
+ * @param status Error code
+ */
+ Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp, UErrorCode& status);
+
+ /**
+ * Construct a hashtable
* @param status Error code
*/
Hashtable(UErrorCode& status);
@@ -76,7 +85,12 @@ public:
const UHashElement* find(const UnicodeString& key) const;
const UHashElement* nextElement(int32_t& pos) const;
+
+ UKeyComparator* setKeyCompartor(UKeyComparator*keyComp);
+
+ UValueComparator* setValueCompartor(UValueComparator* valueComp);
+ UBool equals(const Hashtable& that) const;
private:
Hashtable(const Hashtable &other); // forbid copying of this class
Hashtable &operator=(const Hashtable &other); // forbid copying of this class
@@ -86,16 +100,22 @@ private:
* Implementation
********************************************************************/
-inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp, UErrorCode& status) {
+inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp,
+ UValueComparator *valueComp, UErrorCode& status) {
if (U_FAILURE(status)) {
return;
}
- hash = uhash_open(keyHash, keyComp, &status);
+ uhash_init(&hashObj, keyHash, keyComp, valueComp, &status);
if (U_SUCCESS(status)) {
+ hash = &hashObj;
uhash_setKeyDeleter(hash, uhash_deleteUnicodeString);
}
}
+inline Hashtable::Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp,
+ UErrorCode& status) : hash(0) {
+ init( uhash_hashUnicodeString, keyComp, valueComp, status);
+}
inline Hashtable::Hashtable(UBool ignoreKeyCase, UErrorCode& status)
: hash(0)
{
@@ -103,26 +123,26 @@ inline Hashtable::Hashtable(UBool ignoreKeyCase, UErrorCode& status)
: uhash_hashUnicodeString,
ignoreKeyCase ? uhash_compareCaselessUnicodeString
: uhash_compareUnicodeString,
+ NULL,
status);
}
inline Hashtable::Hashtable(UErrorCode& status)
: hash(0)
{
- init(uhash_hashUnicodeString, uhash_compareUnicodeString, status);
+ init(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, status);
}
inline Hashtable::Hashtable()
: hash(0)
{
UErrorCode status = U_ZERO_ERROR;
- init(uhash_hashUnicodeString, uhash_compareUnicodeString, status);
+ init(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, status);
}
inline Hashtable::~Hashtable() {
- if (hash != 0) {
+ if (hash != NULL) {
uhash_close(hash);
- hash = 0;
}
}
@@ -167,9 +187,21 @@ inline const UHashElement* Hashtable::nextElement(int32_t& pos) const {
}
inline void Hashtable::removeAll(void) {
- uhash_removeAll(hash);
+ uhash_removeAll(hash);
}
+inline UKeyComparator* Hashtable::setKeyCompartor(UKeyComparator*keyComp){
+ return uhash_setKeyComparator(hash, keyComp);
+}
+
+inline UValueComparator* Hashtable::setValueCompartor(UValueComparator* valueComp){
+ return uhash_setValueComparator(hash, valueComp);
+}
+
+inline UBool Hashtable::equals(const Hashtable& that)const{
+ return uhash_equals(hash, that.hash);
+}
U_NAMESPACE_END
#endif
+
diff --git a/Build/source/libs/icu-xetex/common/localsvc.h b/Build/source/libs/icu-xetex/common/localsvc.h
new file mode 100644
index 00000000000..67e5a8455ae
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/localsvc.h
@@ -0,0 +1,25 @@
+/*
+***************************************************************************
+* Copyright (C) 2006 International Business Machines Corporation *
+* and others. All rights reserved. *
+***************************************************************************
+*/
+
+#ifndef LOCALSVC_H
+#define LOCALSVC_H
+
+#include "unicode/utypes.h"
+
+#if U_LOCAL_SERVICE_HOOK
+/**
+ * Prototype for user-supplied service hook. This function is expected to return
+ * a type of factory object specific to the requested service.
+ *
+ * @param what service-specific string identifying the specific user hook
+ * @param status error status
+ * @return a service-specific hook, or NULL on failure.
+ */
+U_CAPI void* uprv_svc_hook(const char *what, UErrorCode *status);
+#endif
+
+#endif
diff --git a/Build/source/libs/icu-xetex/common/locid.cpp b/Build/source/libs/icu-xetex/common/locid.cpp
index c2eb5192d1d..cb8d59eb4c1 100644
--- a/Build/source/libs/icu-xetex/common/locid.cpp
+++ b/Build/source/libs/icu-xetex/common/locid.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1997-2005, International Business Machines
+ * Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -160,7 +160,7 @@ void locale_set_default_internal(const char *id)
umtx_unlock(NULL);
if (hashTableNeedsInit) {
status = U_ZERO_ERROR;
- UHashtable *tHashTable = uhash_open(uhash_hashChars, uhash_compareChars, &status);
+ UHashtable *tHashTable = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &status);
if (U_FAILURE(status)) {
return;
}
@@ -357,7 +357,7 @@ Locale::Locale( const char * newLanguage,
/*if the whole string is longer than our internal limit, we need
to go to the heap for temporary buffers*/
- if (size > ULOC_FULLNAME_CAPACITY)
+ if (size >= ULOC_FULLNAME_CAPACITY)
{
togo_heap = (char *)uprv_malloc(sizeof(char)*(size+1));
togo = togo_heap;
@@ -604,7 +604,7 @@ Locale& Locale::init(const char* localeID, UBool canonicalize)
// successful end of init()
return *this;
- } while(0);
+ } while(0); /*loop doesn't iterate*/
// when an error occurs, then set this object to "bogus" (there is no UErrorCode here)
setToBogus();
@@ -937,6 +937,7 @@ Locale::getAvailableLocales(int32_t& count)
newLocaleList = new Locale[locCount];
}
if (newLocaleList == NULL) {
+ count = 0;
return NULL;
}
@@ -1107,13 +1108,13 @@ const Locale &
Locale::getLocale(int locid)
{
Locale *localeCache = getLocaleCache();
- U_ASSERT(locid < eMAX_LOCALES);
+ U_ASSERT((locid < eMAX_LOCALES)&&(locid>=0));
if (localeCache == NULL) {
// Failure allocating the locale cache.
// The best we can do is return a NULL reference.
locid = 0;
}
- return localeCache[locid];
+ return localeCache[locid]; /*operating on NULL*/
}
/*
diff --git a/Build/source/libs/icu-xetex/common/locmap.c b/Build/source/libs/icu-xetex/common/locmap.c
index c17f3cede7c..802c6c38c17 100644
--- a/Build/source/libs/icu-xetex/common/locmap.c
+++ b/Build/source/libs/icu-xetex/common/locmap.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1996-2005, International Business Machines
+ * Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -121,14 +121,28 @@ static const ILcidPosixElement ar[] = {
ILCID_POSIX_ELEMENT_ARRAY(0x044d, as, as_IN)
ILCID_POSIX_ELEMENT_ARRAY(0x045e, am, am_ET)
+ILCID_POSIX_ELEMENT_ARRAY(0x047a, arn,arn_CL)
static const ILcidPosixElement az[] = {
{0x2c, "az"},
- {0x082c, "az_AZ"}, /* Cyrillic based */
- {0x042c, "az_Latn_AZ"} /* Latin based */
+ {0x082c, "az_Cyrl_AZ"}, /* Cyrillic based */
+ {0x082c, "az_Cyrl"}, /* Cyrillic based */
+ {0x042c, "az_Latn_AZ"}, /* Latin based */
+ {0x042c, "az_Latn"}, /* Latin based */
+ {0x042c, "az_AZ"} /* Latin based */
};
+ILCID_POSIX_ELEMENT_ARRAY(0x046d, ba, ba_RU)
ILCID_POSIX_ELEMENT_ARRAY(0x0423, be, be_BY)
+
+static const ILcidPosixElement ber[] = {
+ {0x5f, "ber"},
+ {0x045f, "ber_Arab_DZ"},
+ {0x045f, "ber_Arab"},
+ {0x085f, "ber_Latn_DZ"},
+ {0x085f, "ber_Latn"}
+};
+
ILCID_POSIX_ELEMENT_ARRAY(0x0402, bg, bg_BG)
static const ILcidPosixElement bn[] = {
@@ -137,14 +151,15 @@ static const ILcidPosixElement bn[] = {
{0x0445, "bn_IN"}
};
-
static const ILcidPosixElement bo[] = {
{0x51, "bo"},
{0x0851, "bo_BT"},
{0x0451, "bo_CN"}
};
+ILCID_POSIX_ELEMENT_ARRAY(0x047e, br, br_FR)
ILCID_POSIX_ELEMENT_ARRAY(0x0403, ca, ca_ES)
+ILCID_POSIX_ELEMENT_ARRAY(0x0483, co, co_FR)
ILCID_POSIX_ELEMENT_ARRAY(0x045c, chr,chr_US)
/* Declared as cs_CZ to get around compiler errors on z/OS, which defines cs as a function */
@@ -163,7 +178,8 @@ static const ILcidPosixElement de[] = {
{0x0407, "de_DE"},
{0x1407, "de_LI"},
{0x1007, "de_LU"},
- {0x10407,"de__PHONEBOOK"} /*This is really de_DE_PHONEBOOK on Windows, maybe 10007*/
+ {0x10407,"de_DE@collation=phonebook"}, /*This is really de_DE_PHONEBOOK on Windows*/
+ {0x10407,"de@collation=phonebook"} /*This is really de_DE_PHONEBOOK on Windows*/
};
ILCID_POSIX_ELEMENT_ARRAY(0x0465, dv, dv_MV)
@@ -176,9 +192,12 @@ static const ILcidPosixElement en[] = {
{0x1009, "en_CA"},
{0x0809, "en_GB"},
{0x1809, "en_IE"},
+ {0x4009, "en_IN"},
{0x2009, "en_JM"},
+ {0x4409, "en_MY"},
{0x1409, "en_NZ"},
{0x3409, "en_PH"},
+ {0x4809, "en_SG"},
{0x2C09, "en_TT"},
{0x0409, "en_US"},
{0x007f, "en_US_POSIX"}, /* duplicate for roundtripping */
@@ -193,7 +212,7 @@ static const ILcidPosixElement en[] = {
};
static const ILcidPosixElement en_US_POSIX[] = {
- {0x007f, "en_US_POSIX"}, /* duplicate for roundtripping */
+ {0x007f, "en_US_POSIX"} /* duplicate for roundtripping */
};
static const ILcidPosixElement es[] = {
@@ -215,15 +234,31 @@ static const ILcidPosixElement es[] = {
{0x500a, "es_PR"},
{0x3c0a, "es_PY"},
{0x440a, "es_SV"},
+ {0x540a, "es_US"},
{0x380a, "es_UY"},
{0x200a, "es_VE"},
- {0x040a, "es__TRADITIONAL"} /*This is really es_ES_TRADITIONAL on Windows */
+ {0x040a, "es_ES@collation=traditional"},
+ {0x040a, "es@collation=traditional"}
};
ILCID_POSIX_ELEMENT_ARRAY(0x0425, et, et_EE)
ILCID_POSIX_ELEMENT_ARRAY(0x042d, eu, eu_ES)
-ILCID_POSIX_ELEMENT_ARRAY(0x0429, fa, fa_IR)
+
+/* ISO-639 doesn't distinguish between Persian and Dari.*/
+static const ILcidPosixElement fa[] = {
+ {0x29, "fa"},
+ {0x0429, "fa_IR"}, /* Persian/Farsi (Iran) */
+ {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
+};
+
+/* duplicate for roundtripping */
+static const ILcidPosixElement fa_AF[] = {
+ {0x8c, "fa_AF"}, /* Persian/Dari (Afghanistan) */
+ {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
+};
+
ILCID_POSIX_ELEMENT_ARRAY(0x040b, fi, fi_FI)
+ILCID_POSIX_ELEMENT_ARRAY(0x0464, fil,fil_PH)
ILCID_POSIX_ELEMENT_ARRAY(0x0438, fo, fo_FO)
static const ILcidPosixElement fr[] = {
@@ -257,7 +292,8 @@ static const ILcidPosixElement ga[] = {
ILCID_POSIX_ELEMENT_ARRAY(0x0456, gl, gl_ES)
ILCID_POSIX_ELEMENT_ARRAY(0x0447, gu, gu_IN)
ILCID_POSIX_ELEMENT_ARRAY(0x0474, gn, gn_PY)
-ILCID_POSIX_ELEMENT_ARRAY(0x0468, ha, ha_NG)
+ILCID_POSIX_ELEMENT_ARRAY(0x0484, gsw,gsw_FR)
+ILCID_POSIX_ELEMENT_ARRAY(0x0468, ha, ha_NG) /* ha_Latn_NG? */
ILCID_POSIX_ELEMENT_ARRAY(0x0475, haw,haw_US)
ILCID_POSIX_ELEMENT_ARRAY(0x040d, he, he_IL)
ILCID_POSIX_ELEMENT_ARRAY(0x0439, hi, hi_IN)
@@ -265,20 +301,28 @@ ILCID_POSIX_ELEMENT_ARRAY(0x0439, hi, hi_IN)
/* This LCID is really four different locales.*/
static const ILcidPosixElement hr[] = {
{0x1a, "hr"},
+ {0x141a, "bs_Latn_BA"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x141a, "bs_Latn"}, /* Bosnian, Bosnia and Herzegovina */
{0x141a, "bs_BA"}, /* Bosnian, Bosnia and Herzegovina */
{0x141a, "bs"}, /* Bosnian */
+ {0x201a, "bs_Cyrl_BA"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x201a, "bs_Cyrl"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x101a, "hr_BA"}, /* Croatian in Bosnia */
{0x041a, "hr_HR"}, /* Croatian*/
- {0x081a, "sr_Latn_YU"}, /* Serbo-Croatian*/
+ {0x181a, "sr_Latn_BA"}, /* Serbo-Croatian in Bosnia */
+ {0x081a, "sr_Latn_CS"}, /* Serbo-Croatian*/
{0x081a, "sr_Latn"}, /* It's 0x1a or 0x081a, pick one to make the test program happy. */
- {0x0c1a, "sr_Cyrl_YU"}, /* Serbian*/
+ {0x1c1a, "sr_Cyrl_BA"}, /* Serbo-Croatian in Bosnia */
+ {0x0c1a, "sr_Cyrl_CS"}, /* Serbian*/
{0x0c1a, "sr_Cyrl"}, /* It's 0x1a or 0x0c1a, pick one to make the test program happy. */
- {0x0c1a, "sr"}, /* It's 0x1a or 0x0c1a, pick one to make the test program happy. */
+ {0x0c1a, "sr"} /* In CLDR sr is sr_Cyrl. */
};
ILCID_POSIX_ELEMENT_ARRAY(0x040e, hu, hu_HU)
ILCID_POSIX_ELEMENT_ARRAY(0x042b, hy, hy_AM)
ILCID_POSIX_ELEMENT_ARRAY(0x0421, id, id_ID)
ILCID_POSIX_ELEMENT_ARRAY(0x0470, ig, ig_NG)
+ILCID_POSIX_ELEMENT_ARRAY(0x0478, ii, ii_CN)
ILCID_POSIX_ELEMENT_ARRAY(0x040f, is, is_IS)
static const ILcidPosixElement it[] = {
@@ -287,11 +331,19 @@ static const ILcidPosixElement it[] = {
{0x0410, "it_IT"}
};
-ILCID_POSIX_ELEMENT_ARRAY(0x045d, iu, iu_CA) /* TODO: verify country */
+static const ILcidPosixElement iu[] = {
+ {0x5d, "iu"},
+ {0x045d, "iu_Cans_CA"},
+ {0x045d, "iu_Cans"},
+ {0x085d, "iu_Latn_CA"},
+ {0x085d, "iu_Latn"}
+};
+
ILCID_POSIX_ELEMENT_ARRAY(0x040d, iw, iw_IL) /*Left in for compatibility*/
ILCID_POSIX_ELEMENT_ARRAY(0x0411, ja, ja_JP)
ILCID_POSIX_ELEMENT_ARRAY(0x0437, ka, ka_GE)
ILCID_POSIX_ELEMENT_ARRAY(0x043f, kk, kk_KZ)
+ILCID_POSIX_ELEMENT_ARRAY(0x046f, kl, kl_GL)
ILCID_POSIX_ELEMENT_ARRAY(0x0453, km, km_KH)
ILCID_POSIX_ELEMENT_ARRAY(0x044b, kn, kn_IN)
@@ -312,14 +364,22 @@ static const ILcidPosixElement ks[] = { /* We could add PK and CN too */
ILCID_POSIX_ELEMENT_ARRAY(0x0440, ky, ky_KG) /* Kyrgyz is spoken in Kyrgyzstan */
ILCID_POSIX_ELEMENT_ARRAY(0x0476, la, la_IT) /* TODO: Verify the country */
+ILCID_POSIX_ELEMENT_ARRAY(0x046e, lb, lb_LU)
ILCID_POSIX_ELEMENT_ARRAY(0x0454, lo, lo_LA)
ILCID_POSIX_ELEMENT_ARRAY(0x0427, lt, lt_LT)
ILCID_POSIX_ELEMENT_ARRAY(0x0426, lv, lv_LV)
ILCID_POSIX_ELEMENT_ARRAY(0x0481, mi, mi_NZ)
ILCID_POSIX_ELEMENT_ARRAY(0x042f, mk, mk_MK)
ILCID_POSIX_ELEMENT_ARRAY(0x044c, ml, ml_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0450, mn, mn_MN)
+
+static const ILcidPosixElement mn[] = {
+ {0x50, "mn"},
+ {0x0850, "mn_CN"},
+ {0x0450, "mn_MN"}
+};
+
ILCID_POSIX_ELEMENT_ARRAY(0x0458, mni,mni_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x047c, moh,moh_CA)
ILCID_POSIX_ELEMENT_ARRAY(0x044e, mr, mr_IN)
static const ILcidPosixElement ms[] = {
@@ -328,8 +388,8 @@ static const ILcidPosixElement ms[] = {
{0x043e, "ms_MY"} /* Malaysia*/
};
-/* The MSJDK documentation says this is maltese, but it's not supported.*/
ILCID_POSIX_ELEMENT_ARRAY(0x043a, mt, mt_MT)
+ILCID_POSIX_ELEMENT_ARRAY(0x0455, my, my_MM)
static const ILcidPosixElement ne[] = {
{0x61, "ne"},
@@ -354,7 +414,8 @@ static const ILcidPosixElement no[] = {
{0x0814, "no_NO_NY"}/* really nn_NO */
};
-ILCID_POSIX_ELEMENT_ARRAY(0x046c, nso,nso_ZA) /* TODO: Verify the country */
+ILCID_POSIX_ELEMENT_ARRAY(0x046c, nso,nso_ZA) /* TODO: Verify the ISO-639 code */
+ILCID_POSIX_ELEMENT_ARRAY(0x0482, oc, oc_FR)
ILCID_POSIX_ELEMENT_ARRAY(0x0472, om, om_ET) /* TODO: Verify the country */
/* Declared as or_IN to get around compiler errors*/
@@ -379,12 +440,14 @@ static const ILcidPosixElement pt[] = {
};
static const ILcidPosixElement qu[] = {
- {0x6B, "qu"},
- {0x046B, "qu_BO"},
- {0x086B, "qu_EC"},
- {0x0C6B, "qu_PE"}
+ {0x6b, "qu"},
+ {0x046b, "qu_BO"},
+ {0x086b, "qu_EC"},
+ {0x0C6b, "qu_PE"}
};
+ILCID_POSIX_ELEMENT_ARRAY(0x0486, qut, qut_GT) /* qut is an ISO-639-3 code */
+ILCID_POSIX_ELEMENT_ARRAY(0x0417, rm, rm_CH)
ILCID_POSIX_ELEMENT_ARRAY(0x0418, ro, ro_RO)
static const ILcidPosixElement root[] = {
@@ -392,7 +455,9 @@ static const ILcidPosixElement root[] = {
};
ILCID_POSIX_ELEMENT_ARRAY(0x0419, ru, ru_RU)
+ILCID_POSIX_ELEMENT_ARRAY(0x0487, rw, rw_RW)
ILCID_POSIX_ELEMENT_ARRAY(0x044f, sa, sa_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0485, sah,sah_RU)
static const ILcidPosixElement sd[] = {
{0x59, "sd"},
@@ -400,6 +465,19 @@ static const ILcidPosixElement sd[] = {
{0x0859, "sd_PK"}
};
+static const ILcidPosixElement se[] = {
+ {0x3b, "se"},
+ {0x0c3b, "se_FI"},
+ {0x043b, "se_NO"},
+ {0x083b, "se_SE"},
+ {0x183b, "sma_NO"},
+ {0x1c3b, "sma_SE"},
+ {0x103b, "smj_NO"},
+ {0x143b, "smj_SE"},
+ {0x243b, "smn_FI"},
+ {0x203b, "sms_FI"},
+};
+
ILCID_POSIX_ELEMENT_ARRAY(0x045b, si, si_LK)
ILCID_POSIX_ELEMENT_ARRAY(0x041b, sk, sk_SK)
ILCID_POSIX_ELEMENT_ARRAY(0x0424, sl, sl_SI)
@@ -416,6 +494,7 @@ ILCID_POSIX_ELEMENT_ARRAY(0x0441, sw, sw_KE)
ILCID_POSIX_ELEMENT_ARRAY(0x045A, syr, syr_SY)
ILCID_POSIX_ELEMENT_ARRAY(0x0449, ta, ta_IN)
ILCID_POSIX_ELEMENT_ARRAY(0x044a, te, te_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0428, tg, tg_TJ) /* Cyrillic based by default */
ILCID_POSIX_ELEMENT_ARRAY(0x041e, th, th_TH)
static const ILcidPosixElement ti[] = {
@@ -425,7 +504,6 @@ static const ILcidPosixElement ti[] = {
};
ILCID_POSIX_ELEMENT_ARRAY(0x0442, tk, tk_TM)
-ILCID_POSIX_ELEMENT_ARRAY(0x0464, tl, tl_PH)
ILCID_POSIX_ELEMENT_ARRAY(0x0432, tn, tn_BW)
ILCID_POSIX_ELEMENT_ARRAY(0x041f, tr, tr_TR)
ILCID_POSIX_ELEMENT_ARRAY(0x0444, tt, tt_RU)
@@ -440,19 +518,31 @@ static const ILcidPosixElement ur[] = {
static const ILcidPosixElement uz[] = {
{0x43, "uz"},
+ {0x0843, "uz_Cyrl_UZ"}, /* Cyrillic based */
+ {0x0843, "uz_Cyrl"}, /* Cyrillic based */
{0x0843, "uz_UZ"}, /* Cyrillic based */
- {0x0443, "uz_Latn_UZ"} /* Latin based */
+ {0x0443, "uz_Latn_UZ"}, /* Latin based */
+ {0x0443, "uz_Latn"} /* Latin based */
};
ILCID_POSIX_ELEMENT_ARRAY(0x0433, ve, ve_ZA) /* TODO: Verify the country */
ILCID_POSIX_ELEMENT_ARRAY(0x042a, vi, vi_VN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0434, xh, xh_ZA) /* TODO: Verify the country */
-ILCID_POSIX_ELEMENT_ARRAY(0x046a, yo, yo_NG) /* TODO: Verify the country */
-/* TODO: Make the locales with the script the primary locale once the names are implemented in the resources. */
+static const ILcidPosixElement wen[] = {
+ {0x2E, "wen"},
+ {0x042E, "wen_DE"},
+ {0x042E, "hsb_DE"},
+ {0x082E, "dsb_DE"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0488, wo, wo_SN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0434, xh, xh_ZA)
+ILCID_POSIX_ELEMENT_ARRAY(0x046a, yo, yo_NG)
+
static const ILcidPosixElement zh[] = {
{0x04, "zh"},
{0x0804, "zh_Hans_CN"},
+ {0x0804, "zh_Hans"},
{0x0804, "zh_CN"},
{0x0c04, "zh_Hant_HK"},
{0x0c04, "zh_HK"},
@@ -461,39 +551,44 @@ static const ILcidPosixElement zh[] = {
{0x1004, "zh_Hans_SG"},
{0x1004, "zh_SG"},
{0x0404, "zh_Hant_TW"},
+ {0x0404, "zh_Hant"},
{0x0404, "zh_TW"},
- {0x30404,"zh_Hant_TW"},
+ {0x30404,"zh_Hant_TW"}, /* Bopomofo order */
{0x30404,"zh_TW"}, /* Bopomofo order */
- {0x20404,"zh_TW@collation=STROKE"}
+ {0x20404,"zh_Hant_TW@collation=stroke"},
+ {0x20404,"zh_TW@collation=stroke"},
+ {0x20804,"zh_Hans_CN@collation=stroke"},
+ {0x20804,"zh_CN@collation=stroke"}
};
-ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA) /* TODO: Verify the country */
+ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA)
/* This must be static and grouped by LCID. */
-/* non-existent ISO-639 codes */
+/* non-existent ISO-639-2 codes */
/*
0x466 Edo
0x467 Fulfulde - Nigeria
-0x43b Sami (Lappish)
-0x42e Sorbian (iso639 = dsb, hsb, wen)
+0x486 K'iche - Guatemala
0x430 Sutu
-0x45f Tamazight (Arabic script)
-0x85f Tamazight (Latin script)
-0x478 Yi
*/
static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(af), /* af Afrikaans 0x36 */
ILCID_POSIX_MAP(am), /* am Amharic 0x5e */
ILCID_POSIX_MAP(ar), /* ar Arabic 0x01 */
+ ILCID_POSIX_MAP(arn), /* arn Araucanian/Mapudungun 0x7a */
ILCID_POSIX_MAP(as), /* as Assamese 0x4d */
ILCID_POSIX_MAP(az), /* az Azerbaijani 0x2c */
+ ILCID_POSIX_MAP(ba), /* ba Bashkir 0x6d */
ILCID_POSIX_MAP(be), /* be Belarusian 0x23 */
+ ILCID_POSIX_MAP(ber), /* ber Berber/Tamazight 0x5f */
ILCID_POSIX_MAP(bg), /* bg Bulgarian 0x02 */
ILCID_POSIX_MAP(bn), /* bn Bengali; Bangla 0x45 */
ILCID_POSIX_MAP(bo), /* bo Tibetan 0x51 */
+ ILCID_POSIX_MAP(br), /* br Breton 0x7e */
ILCID_POSIX_MAP(ca), /* ca Catalan 0x03 */
ILCID_POSIX_MAP(chr), /* chr Cherokee 0x5c */
+ ILCID_POSIX_MAP(co), /* co Corsican 0x83 */
ILCID_POSIX_MAP(cs_CZ), /* cs Czech 0x05 */
ILCID_POSIX_MAP(cy), /* cy Welsh 0x52 */
ILCID_POSIX_MAP(da), /* da Danish 0x06 */
@@ -505,14 +600,17 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(es), /* es Spanish 0x0a */
ILCID_POSIX_MAP(et), /* et Estonian 0x25 */
ILCID_POSIX_MAP(eu), /* eu Basque 0x2d */
- ILCID_POSIX_MAP(fa), /* fa Farsi 0x29 */
+ ILCID_POSIX_MAP(fa), /* fa Persian/Farsi 0x29 */
+ ILCID_POSIX_MAP(fa_AF), /* fa Persian/Dari 0x8c */
ILCID_POSIX_MAP(fi), /* fi Finnish 0x0b */
+ ILCID_POSIX_MAP(fil), /* fil Filipino 0x64 */
ILCID_POSIX_MAP(fo), /* fo Faroese 0x38 */
ILCID_POSIX_MAP(fr), /* fr French 0x0c */
ILCID_POSIX_MAP(fy), /* fy Frisian 0x62 */
ILCID_POSIX_MAP(ga), /* * Gaelic (Ireland,Scotland) 0x3c */
ILCID_POSIX_MAP(gl), /* gl Galician 0x56 */
ILCID_POSIX_MAP(gn), /* gn Guarani 0x74 */
+ ILCID_POSIX_MAP(gsw), /* gsw Alemanic/Alsatian/Swiss German 0x84 */
ILCID_POSIX_MAP(gu), /* gu Gujarati 0x47 */
ILCID_POSIX_MAP(ha), /* ha Hausa 0x68 */
ILCID_POSIX_MAP(haw), /* haw Hawaiian 0x75 */
@@ -523,6 +621,7 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(hy), /* hy Armenian 0x2b */
ILCID_POSIX_MAP(id), /* id Indonesian (formerly in) 0x21 */
ILCID_POSIX_MAP(ig), /* ig Igbo 0x70 */
+ ILCID_POSIX_MAP(ii), /* ii Sichuan Yi 0x78 */
ILCID_POSIX_MAP(is), /* is Icelandic 0x0f */
ILCID_POSIX_MAP(it), /* it Italian 0x10 */
ILCID_POSIX_MAP(iu), /* iu Inuktitut 0x5d */
@@ -530,6 +629,7 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(ja), /* ja Japanese 0x11 */
ILCID_POSIX_MAP(ka), /* ka Georgian 0x37 */
ILCID_POSIX_MAP(kk), /* kk Kazakh 0x3f */
+ ILCID_POSIX_MAP(kl), /* kl Kalaallisut 0x6f */
ILCID_POSIX_MAP(km), /* km Khmer 0x53 */
ILCID_POSIX_MAP(kn), /* kn Kannada 0x4b */
ILCID_POSIX_MAP(ko), /* ko Korean 0x12 */
@@ -537,6 +637,7 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(kr), /* kr Kanuri 0x71 */
ILCID_POSIX_MAP(ks), /* ks Kashmiri 0x60 */
ILCID_POSIX_MAP(ky), /* ky Kyrgyz 0x40 */
+ ILCID_POSIX_MAP(lb), /* lb Luxembourgish 0x6e */
ILCID_POSIX_MAP(la), /* la Latin 0x76 */
ILCID_POSIX_MAP(lo), /* lo Lao 0x54 */
ILCID_POSIX_MAP(lt), /* lt Lithuanian 0x27 */
@@ -546,27 +647,35 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(ml), /* ml Malayalam 0x4c */
ILCID_POSIX_MAP(mn), /* mn Mongolian 0x50 */
ILCID_POSIX_MAP(mni), /* mni Manipuri 0x58 */
+ ILCID_POSIX_MAP(moh), /* moh Mohawk 0x7c */
ILCID_POSIX_MAP(mr), /* mr Marathi 0x4e */
ILCID_POSIX_MAP(ms), /* ms Malay 0x3e */
ILCID_POSIX_MAP(mt), /* mt Maltese 0x3a */
+ ILCID_POSIX_MAP(my), /* my Burmese 0x55 */
/* ILCID_POSIX_MAP(nb), // no Norwegian 0x14 */
ILCID_POSIX_MAP(ne), /* ne Nepali 0x61 */
ILCID_POSIX_MAP(nl), /* nl Dutch 0x13 */
/* ILCID_POSIX_MAP(nn), // no Norwegian 0x14 */
ILCID_POSIX_MAP(no), /* * Norwegian 0x14 */
ILCID_POSIX_MAP(nso), /* nso Sotho, Northern (Sepedi dialect) 0x6c */
+ ILCID_POSIX_MAP(oc), /* oc Occitan 0x82 */
ILCID_POSIX_MAP(om), /* om Oromo 0x72 */
ILCID_POSIX_MAP(or_IN), /* or Oriya 0x48 */
ILCID_POSIX_MAP(pa), /* pa Punjabi 0x46 */
ILCID_POSIX_MAP(pl), /* pl Polish 0x15 */
ILCID_POSIX_MAP(ps), /* ps Pashto 0x63 */
ILCID_POSIX_MAP(pt), /* pt Portuguese 0x16 */
- ILCID_POSIX_MAP(qu), /* qu Quechua (correct spelling)0x6B */
+ ILCID_POSIX_MAP(qu), /* qu Quechua 0x6B */
+ ILCID_POSIX_MAP(qut), /* qut K'iche 0x86 */
+ ILCID_POSIX_MAP(rm), /* rm Raeto-Romance/Romansh 0x17 */
ILCID_POSIX_MAP(ro), /* ro Romanian 0x18 */
ILCID_POSIX_MAP(root), /* root 0x00 */
ILCID_POSIX_MAP(ru), /* ru Russian 0x19 */
+ ILCID_POSIX_MAP(rw), /* rw Kinyarwanda 0x87 */
ILCID_POSIX_MAP(sa), /* sa Sanskrit 0x4f */
+ ILCID_POSIX_MAP(sah), /* sah Yakut 0x85 */
ILCID_POSIX_MAP(sd), /* sd Sindhi 0x59 */
+ ILCID_POSIX_MAP(se), /* se Sami 0x3b */
/* ILCID_POSIX_MAP(sh), // sh Serbo-Croatian 0x1a */
ILCID_POSIX_MAP(si), /* si Sinhalese 0x5b */
ILCID_POSIX_MAP(sk), /* sk Slovak 0x1b */
@@ -579,10 +688,10 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(syr), /* syr Syriac 0x5A */
ILCID_POSIX_MAP(ta), /* ta Tamil 0x49 */
ILCID_POSIX_MAP(te), /* te Telugu 0x4a */
+ ILCID_POSIX_MAP(tg), /* tg Tajik 0x28 */
ILCID_POSIX_MAP(th), /* th Thai 0x1e */
ILCID_POSIX_MAP(ti), /* ti Tigrigna 0x73 */
ILCID_POSIX_MAP(tk), /* tk Turkmen 0x42 */
- ILCID_POSIX_MAP(tl), /* tl Tagalog (Filipino) 0x64 */
ILCID_POSIX_MAP(tn), /* tn Tswana 0x32 */
ILCID_POSIX_MAP(tr), /* tr Turkish 0x1f */
ILCID_POSIX_MAP(tt), /* tt Tatar 0x44 */
@@ -592,6 +701,8 @@ static const ILcidPosixMap gPosixIDmap[] = {
ILCID_POSIX_MAP(uz), /* uz Uzbek 0x43 */
ILCID_POSIX_MAP(ve), /* ve Venda 0x33 */
ILCID_POSIX_MAP(vi), /* vi Vietnamese 0x2a */
+ ILCID_POSIX_MAP(wen), /* wen Sorbian 0x2e */
+ ILCID_POSIX_MAP(wo), /* wo Wolof 0x88 */
ILCID_POSIX_MAP(xh), /* xh Xhosa 0x34 */
ILCID_POSIX_MAP(yo), /* yo Yoruba 0x6a */
ILCID_POSIX_MAP(zh), /* zh Chinese 0x04 */
diff --git a/Build/source/libs/icu-xetex/common/locutil.cpp b/Build/source/libs/icu-xetex/common/locutil.cpp
index 61b90892af4..777403d7980 100644
--- a/Build/source/libs/icu-xetex/common/locutil.cpp
+++ b/Build/source/libs/icu-xetex/common/locutil.cpp
@@ -211,7 +211,9 @@ LocaleUtility::getAvailableLocaleNames(const UnicodeString& bundleID)
ucln_common_registerCleanup(UCLN_COMMON_SERVICE, service_cleanup);
}
umtx_unlock(NULL);
- delete cache;
+ if(cache != NULL) {
+ delete cache;
+ }
cache = h;
}
diff --git a/Build/source/libs/icu-xetex/common/putil.c b/Build/source/libs/icu-xetex/common/putil.c
index b371284562e..e063a261241 100644
--- a/Build/source/libs/icu-xetex/common/putil.c
+++ b/Build/source/libs/icu-xetex/common/putil.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -36,23 +36,21 @@
******************************************************************************
*/
-#ifndef PTX
-
/* Define _XOPEN_SOURCE for Solaris and friends. */
/* NetBSD needs it to be >= 4 */
#ifndef _XOPEN_SOURCE
+#if __STDC_VERSION__ >= 199901L
+/* It is invalid to compile an XPG3, XPG4, XPG4v2 or XPG5 application using c99 */
+#define _XOPEN_SOURCE 600
+#else
#define _XOPEN_SOURCE 4
#endif
-
-/* Define __USE_POSIX and __USE_XOPEN for Linux and glibc. */
-#ifndef __USE_POSIX
-#define __USE_POSIX
-#endif
-#ifndef __USE_XOPEN
-#define __USE_XOPEN
#endif
-#endif /* PTX */
+/* Make sure things like readlink and such functions work. */
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif
/* include ICU headers */
#include "unicode/utypes.h"
@@ -84,6 +82,7 @@
# define NOIME
# define NOMCX
# include <windows.h>
+# include "wintz.h"
#elif defined(U_CYGWIN) && defined(__STRICT_ANSI__)
/* tzset isn't defined in strict ANSI on Cygwin. */
# undef __STRICT_ANSI__
@@ -102,12 +101,9 @@
# define ICU_NO_USER_DATA_OVERRIDE 1
#elif defined(OS390)
#include "unicode/ucnv.h" /* Needed for UCNV_SWAP_LFNL_OPTION_STRING */
-#elif defined(U_AIX)
-#elif defined(U_SOLARIS) || defined(U_LINUX)
-#elif defined(U_HPUX)
-#elif defined(U_DARWIN)
-#include <sys/file.h>
-#include <sys/param.h>
+#elif defined(U_DARWIN) || defined(U_LINUX) || defined(U_BSD)
+#include <limits.h>
+#include <unistd.h>
#elif defined(U_QNX)
#include <sys/neutrino.h>
#endif
@@ -136,41 +132,14 @@ static const char copyright[] = U_COPYRIGHT_STRING;
/* We return QNAN rather than SNAN*/
#define SIGN 0x80000000U
-#if defined(__GNUC__) || defined(_MSC_VER)
-/*
- This is an optimization for when u_topNBytesOfDouble
- and u_bottomNBytesOfDouble can't be properly optimized by the compiler
- or when faster infinity and NaN usage is helpful.
-*/
-#define USE_64BIT_DOUBLE_OPTIMIZATION 1
-#else
-#define USE_64BIT_DOUBLE_OPTIMIZATION 0
-#endif
-
-#if USE_64BIT_DOUBLE_OPTIMIZATION
-/* gcc 3.2 has an optimization bug */
-static const int64_t gNan64 = INT64_C(0x7FF8000000000000);
-static const int64_t gInf64 = INT64_C(0x7FF0000000000000);
-static const double * const fgNan = (const double * const)(&gNan64);
-static const double * const fgInf = (const double * const)(&gInf64);
-#else
-
-#if IEEE_754
-#define NAN_TOP ((int16_t)0x7FF8)
-#define INF_TOP ((int16_t)0x7FF0)
-#elif defined(OS390)
-#define NAN_TOP ((int16_t)0x7F08)
-#define INF_TOP ((int16_t)0x3F00)
-#endif
-/* statics */
-static UBool fgNaNInitialized = FALSE;
-static UBool fgInfInitialized = FALSE;
-static double gNan;
-static double gInf;
-static double * fgNan = &gNan;
-static double * fgInf = &gInf;
-#endif
+/* Make it easy to define certain types of constants */
+typedef union {
+ int64_t i64; /* This must be defined first in order to allow the initialization to work. This is a C89 feature. */
+ double d64;
+} BitPatternConversion;
+static const BitPatternConversion gNan = { (int64_t) INT64_C(0x7FF8000000000000) };
+static const BitPatternConversion gInf = { (int64_t) INT64_C(0x7FF0000000000000) };
/*---------------------------------------------------------------------------
Platform utilities
@@ -186,8 +155,11 @@ static double * fgInf = &gInf;
# define U_POSIX_LOCALE 1
#endif
-/* Utilities to get the bits from a double */
-#if !USE_64BIT_DOUBLE_OPTIMIZATION
+/*
+ WARNING! u_topNBytesOfDouble and u_bottomNBytesOfDouble
+ can't be properly optimized by the gcc compiler sometimes (i.e. gcc 3.2).
+*/
+#if !IEEE_754
static char*
u_topNBytesOfDouble(double* d, int n)
{
@@ -277,35 +249,10 @@ U_CAPI UBool U_EXPORT2
uprv_isNaN(double number)
{
#if IEEE_754
-#if USE_64BIT_DOUBLE_OPTIMIZATION
- /* gcc 3.2 has an optimization bug */
+ BitPatternConversion convertedNumber;
+ convertedNumber.d64 = number;
/* Infinity is 0x7FF0000000000000U. Anything greater than that is a NaN */
- return (UBool)(((*((int64_t *)&number)) & U_INT64_MAX) > gInf64);
-
-#else
- /* This should work in theory, but it doesn't, so we resort to the more*/
- /* complicated method below.*/
- /* return number != number;*/
-
- /* You can't return number == getNaN() because, by definition, NaN != x for*/
- /* all x, including NaN (that is, NaN != NaN). So instead, we compare*/
- /* against the known bit pattern. We must be careful of endianism here.*/
- /* The pattern we are looking for id:*/
-
- /* 7FFy yyyy yyyy yyyy (some y non-zero)*/
-
- /* There are two different kinds of NaN, but we ignore the distinction*/
- /* here. Note that the y value must be non-zero; if it is zero, then we*/
- /* have infinity.*/
-
- uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
- sizeof(uint32_t));
- uint32_t lowBits = *(uint32_t*)u_bottomNBytesOfDouble(&number,
- sizeof(uint32_t));
-
- return (UBool)(((highBits & 0x7FF00000L) == 0x7FF00000L) &&
- (((highBits & 0x000FFFFFL) != 0) || (lowBits != 0)));
-#endif
+ return (UBool)((convertedNumber.i64 & U_INT64_MAX) > gInf.i64);
#elif defined(OS390)
uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
@@ -328,32 +275,10 @@ U_CAPI UBool U_EXPORT2
uprv_isInfinite(double number)
{
#if IEEE_754
-#if USE_64BIT_DOUBLE_OPTIMIZATION
- /* gcc 3.2 has an optimization bug */
- return (UBool)(((*((int64_t *)&number)) & U_INT64_MAX) == gInf64);
-#else
-
- /* We know the top bit is the sign bit, so we mask that off in a copy of */
- /* the number and compare against infinity. [LIU]*/
- /* The following approach doesn't work for some reason, so we go ahead and */
- /* scrutinize the pattern itself. */
- /* double a = number; */
- /* *(int8_t*)u_topNBytesOfDouble(&a, 1) &= 0x7F;*/
- /* return a == uprv_getInfinity();*/
- /* Instead, We want to see either:*/
-
- /* 7FF0 0000 0000 0000*/
- /* FFF0 0000 0000 0000*/
-
- uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
- sizeof(uint32_t));
- uint32_t lowBits = *(uint32_t*)u_bottomNBytesOfDouble(&number,
- sizeof(uint32_t));
-
- return (UBool)(((highBits & ~SIGN) == 0x7FF00000U) &&
- (lowBits == 0x00000000U));
-#endif
-
+ BitPatternConversion convertedNumber;
+ convertedNumber.d64 = number;
+ /* Infinity is exactly 0x7FF0000000000000U. */
+ return (UBool)((convertedNumber.i64 & U_INT64_MAX) == gInf.i64);
#elif defined(OS390)
uint32_t highBits = *(uint32_t*)u_topNBytesOfDouble(&number,
sizeof(uint32_t));
@@ -398,19 +323,7 @@ U_CAPI double U_EXPORT2
uprv_getNaN()
{
#if IEEE_754 || defined(OS390)
-#if !USE_64BIT_DOUBLE_OPTIMIZATION
- if (!fgNaNInitialized) {
- /* This variable is always initialized with the same value,
- so a mutex isn't needed. */
- int i;
- int8_t* p = (int8_t*)fgNan;
- for(i = 0; i < sizeof(double); ++i)
- *p++ = 0;
- *(int16_t*)u_topNBytesOfDouble(fgNan, sizeof(NAN_TOP)) = NAN_TOP;
- fgNaNInitialized = TRUE;
- }
-#endif
- return *fgNan;
+ return gNan.d64;
#else
/* If your platform doesn't support IEEE 754 but *does* have an NaN value,*/
/* you'll need to replace this default implementation with what's correct*/
@@ -423,20 +336,7 @@ U_CAPI double U_EXPORT2
uprv_getInfinity()
{
#if IEEE_754 || defined(OS390)
-#if !USE_64BIT_DOUBLE_OPTIMIZATION
- if (!fgInfInitialized)
- {
- /* This variable is always initialized with the same value,
- so a mutex isn't needed. */
- int i;
- int8_t* p = (int8_t*)fgInf;
- for(i = 0; i < sizeof(double); ++i)
- *p++ = 0;
- *(int16_t*)u_topNBytesOfDouble(fgInf, sizeof(INF_TOP)) = INF_TOP;
- fgInfInitialized = TRUE;
- }
-#endif
- return *fgInf;
+ return gInf.d64;
#else
/* If your platform doesn't support IEEE 754 but *does* have an infinity*/
/* value, you'll need to replace this default implementation with what's*/
@@ -515,12 +415,6 @@ uprv_fmax(double x, double y)
return (x > y ? x : y);
}
-U_CAPI int32_t U_EXPORT2
-uprv_max(int32_t x, int32_t y)
-{
- return (x > y ? x : y);
-}
-
U_CAPI double U_EXPORT2
uprv_fmin(double x, double y)
{
@@ -542,12 +436,6 @@ uprv_fmin(double x, double y)
return (x > y ? y : x);
}
-U_CAPI int32_t U_EXPORT2
-uprv_min(int32_t x, int32_t y)
-{
- return (x > y ? y : x);
-}
-
/**
* Truncates the given double.
* trunc(3.3) = 3.0, trunc (-3.3) = -3.0
@@ -589,40 +477,6 @@ uprv_maxMantissa(void)
return pow(2.0, DBL_MANT_DIG + 1.0) - 1.0;
}
-/**
- * Return the floor of the log base 10 of a given double.
- * This method compensates for inaccuracies which arise naturally when
- * computing logs, and always give the correct value. The parameter
- * must be positive and finite.
- * (Thanks to Alan Liu for supplying this function.)
- */
-U_CAPI int16_t U_EXPORT2
-uprv_log10(double d)
-{
-#ifdef OS400
- /* We don't use the normal implementation because you can't underflow */
- /* a double otherwise an underflow exception occurs */
- return log10(d);
-#else
- /* The reason this routine is needed is that simply taking the*/
- /* log and dividing by log10 yields a result which may be off*/
- /* by 1 due to rounding errors. For example, the naive log10*/
- /* of 1.0e300 taken this way is 299, rather than 300.*/
- double alog10 = log(d) / log(10.0);
- int16_t ailog10 = (int16_t) floor(alog10);
-
- /* Positive logs could be too small, e.g. 0.99 instead of 1.0*/
- if (alog10 > 0 && d >= pow(10.0, (double)(ailog10 + 1)))
- ++ailog10;
-
- /* Negative logs could be too big, e.g. -0.99 instead of -1.0*/
- else if (alog10 < 0 && d < pow(10.0, (double)(ailog10)))
- --ailog10;
-
- return ailog10;
-#endif
-}
-
U_CAPI double U_EXPORT2
uprv_log(double d)
{
@@ -681,487 +535,6 @@ uprv_digitsAfterDecimal(double x)
platform with new implementations.
---------------------------------------------------------------------------*/
-/* Win32 time zone detection ------------------------------------------------ */
-
-#ifdef U_WINDOWS
-
-/*
- This code attempts to detect the Windows time zone, as set in the
- Windows Date and Time control panel. It attempts to work on
- multiple flavors of Windows (9x, Me, NT, 2000, XP) 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 one of two keys (depending on
- the flavor of Windows):
-
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones\
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
-
- Under this key are several subkeys, one for each time zone. These
- subkeys are named "Pacific" on Win9x/Me and "Pacific Standard Time"
- on WinNT/2k/XP. 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>
-*/
-
-/**
- * Layout of the binary registry data under the "TZI" key.
- */
-typedef struct {
- LONG Bias;
- LONG StandardBias;
- LONG DaylightBias; /* Tweaked by GetTimeZoneInformation */
- SYSTEMTIME StandardDate;
- SYSTEMTIME DaylightDate;
-} TZI;
-
-typedef struct {
- const char* icuid;
- const char* winid;
-} WindowsICUMap;
-
-/**
- * Mapping between Windows zone IDs and ICU zone IDs. This list has
- * been mechanically checked; all zone offsets match (most important)
- * and city names match the display city names (where possible). The
- * presence or absence of DST differs in some cases, but this is
- * acceptable as long as the zone is semantically the same (which has
- * been manually checked).
- *
- * Windows 9x/Me zone IDs are listed as "Pacific" rather than "Pacific
- * Standard Time", which is seen in NT/2k/XP. This is fixed-up at
- * runtime as needed. The one exception is "Mexico Standard Time 2",
- * which is not present on Windows 9x/Me.
- *
- * Zones that are not unique under Offset+Rules should be grouped
- * together for efficiency (see code below). In addition, rules MUST
- * be grouped so that all zones of a single offset are together.
- *
- * Comments list S(tandard) or D(aylight), as declared by Windows,
- * followed by the display name (data from Windows XP).
- *
- * NOTE: Etc/GMT+12 is CORRECT for offset GMT-12:00. Consult
- * documentation elsewhere for an explanation.
- */
-static const WindowsICUMap ZONE_MAP[] = {
- "Etc/GMT+12", "Dateline", /* S (GMT-12:00) International Date Line West */
-
- "Pacific/Apia", "Samoa", /* S (GMT-11:00) Midway Island, Samoa */
-
- "Pacific/Honolulu", "Hawaiian", /* S (GMT-10:00) Hawaii */
-
- "America/Anchorage", "Alaskan", /* D (GMT-09:00) Alaska */
-
- "America/Los_Angeles", "Pacific", /* D (GMT-08:00) Pacific Time (US & Canada); Tijuana */
-
- "America/Phoenix", "US Mountain", /* S (GMT-07:00) Arizona */
- "America/Denver", "Mountain", /* D (GMT-07:00) Mountain Time (US & Canada) */
- "America/Chihuahua", "Mexico Standard Time 2", /* D (GMT-07:00) Chihuahua, La Paz, Mazatlan */
-
- "America/Managua", "Central America", /* S (GMT-06:00) Central America */
- "America/Regina", "Canada Central", /* S (GMT-06:00) Saskatchewan */
- "America/Mexico_City", "Mexico", /* D (GMT-06:00) Guadalajara, Mexico City, Monterrey */
- "America/Chicago", "Central", /* D (GMT-06:00) Central Time (US & Canada) */
-
- "America/Indianapolis", "US Eastern", /* S (GMT-05:00) Indiana (East) */
- "America/Bogota", "SA Pacific", /* S (GMT-05:00) Bogota, Lima, Quito */
- "America/New_York", "Eastern", /* D (GMT-05:00) Eastern Time (US & Canada) */
-
- "America/Caracas", "SA Western", /* S (GMT-04:00) Caracas, La Paz */
- "America/Santiago", "Pacific SA", /* D (GMT-04:00) Santiago */
- "America/Halifax", "Atlantic", /* D (GMT-04:00) Atlantic Time (Canada) */
-
- "America/St_Johns", "Newfoundland", /* D (GMT-03:30) Newfoundland */
-
- "America/Buenos_Aires", "SA Eastern", /* S (GMT-03:00) Buenos Aires, Georgetown */
- "America/Godthab", "Greenland", /* D (GMT-03:00) Greenland */
- "America/Sao_Paulo", "E. South America", /* D (GMT-03:00) Brasilia */
-
- "America/Noronha", "Mid-Atlantic", /* D (GMT-02:00) Mid-Atlantic */
-
- "Atlantic/Cape_Verde", "Cape Verde", /* S (GMT-01:00) Cape Verde Is. */
- "Atlantic/Azores", "Azores", /* D (GMT-01:00) Azores */
-
- "Africa/Casablanca", "Greenwich", /* S (GMT) Casablanca, Monrovia */
- "Europe/London", "GMT", /* D (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London */
-
- "Africa/Lagos", "W. Central Africa", /* S (GMT+01:00) West Central Africa */
- "Europe/Berlin", "W. Europe", /* D (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna */
- "Europe/Paris", "Romance", /* D (GMT+01:00) Brussels, Copenhagen, Madrid, Paris */
- "Europe/Sarajevo", "Central European", /* D (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb */
- "Europe/Belgrade", "Central Europe", /* D (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague */
-
- "Africa/Johannesburg", "South Africa", /* S (GMT+02:00) Harare, Pretoria */
- "Asia/Jerusalem", "Israel", /* S (GMT+02:00) Jerusalem */
- "Europe/Istanbul", "GTB", /* D (GMT+02:00) Athens, Istanbul, Minsk */
- "Europe/Helsinki", "FLE", /* D (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius */
- "Africa/Cairo", "Egypt", /* D (GMT+02:00) Cairo */
- "Europe/Bucharest", "E. Europe", /* D (GMT+02:00) Bucharest */
-
- "Africa/Nairobi", "E. Africa", /* S (GMT+03:00) Nairobi */
- "Asia/Riyadh", "Arab", /* S (GMT+03:00) Kuwait, Riyadh */
- "Europe/Moscow", "Russian", /* D (GMT+03:00) Moscow, St. Petersburg, Volgograd */
- "Asia/Baghdad", "Arabic", /* D (GMT+03:00) Baghdad */
-
- "Asia/Tehran", "Iran", /* D (GMT+03:30) Tehran */
-
- "Asia/Muscat", "Arabian", /* S (GMT+04:00) Abu Dhabi, Muscat */
- "Asia/Tbilisi", "Caucasus", /* D (GMT+04:00) Baku, Tbilisi, Yerevan */
-
- "Asia/Kabul", "Afghanistan", /* S (GMT+04:30) Kabul */
-
- "Asia/Karachi", "West Asia", /* S (GMT+05:00) Islamabad, Karachi, Tashkent */
- "Asia/Yekaterinburg", "Ekaterinburg", /* D (GMT+05:00) Ekaterinburg */
-
- "Asia/Calcutta", "India", /* S (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi */
-
- "Asia/Katmandu", "Nepal", /* S (GMT+05:45) Kathmandu */
-
- "Asia/Colombo", "Sri Lanka", /* S (GMT+06:00) Sri Jayawardenepura */
- "Asia/Dhaka", "Central Asia", /* S (GMT+06:00) Astana, Dhaka */
- "Asia/Novosibirsk", "N. Central Asia", /* D (GMT+06:00) Almaty, Novosibirsk */
-
- "Asia/Rangoon", "Myanmar", /* S (GMT+06:30) Rangoon */
-
- "Asia/Bangkok", "SE Asia", /* S (GMT+07:00) Bangkok, Hanoi, Jakarta */
- "Asia/Krasnoyarsk", "North Asia", /* D (GMT+07:00) Krasnoyarsk */
-
- "Australia/Perth", "W. Australia", /* S (GMT+08:00) Perth */
- "Asia/Taipei", "Taipei", /* S (GMT+08:00) Taipei */
- "Asia/Singapore", "Singapore", /* S (GMT+08:00) Kuala Lumpur, Singapore */
- "Asia/Hong_Kong", "China", /* S (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi */
- "Asia/Irkutsk", "North Asia East", /* D (GMT+08:00) Irkutsk, Ulaan Bataar */
-
- "Asia/Tokyo", "Tokyo", /* S (GMT+09:00) Osaka, Sapporo, Tokyo */
- "Asia/Seoul", "Korea", /* S (GMT+09:00) Seoul */
- "Asia/Yakutsk", "Yakutsk", /* D (GMT+09:00) Yakutsk */
-
- "Australia/Darwin", "AUS Central", /* S (GMT+09:30) Darwin */
- "Australia/Adelaide", "Cen. Australia", /* D (GMT+09:30) Adelaide */
-
- "Pacific/Guam", "West Pacific", /* S (GMT+10:00) Guam, Port Moresby */
- "Australia/Brisbane", "E. Australia", /* S (GMT+10:00) Brisbane */
- "Asia/Vladivostok", "Vladivostok", /* D (GMT+10:00) Vladivostok */
- "Australia/Hobart", "Tasmania", /* D (GMT+10:00) Hobart */
- "Australia/Sydney", "AUS Eastern", /* D (GMT+10:00) Canberra, Melbourne, Sydney */
-
- "Asia/Magadan", "Central Pacific", /* S (GMT+11:00) Magadan, Solomon Is., New Caledonia */
-
- "Pacific/Fiji", "Fiji", /* S (GMT+12:00) Fiji, Kamchatka, Marshall Is. */
- "Pacific/Auckland", "New Zealand", /* D (GMT+12:00) Auckland, Wellington */
-
- "Pacific/Tongatapu", "Tonga", /* S (GMT+13:00) Nuku'alofa */
- NULL, NULL
-};
-
-typedef struct {
- const char* winid;
- const char* altwinid;
-} WindowsZoneRemap;
-
-/**
- * If a lookup fails, we attempt to remap certain Windows ids to
- * alternate Windows ids. If the alternate listed here begins with
- * '-', we use it as is (without the '-'). If it begins with '+', we
- * append a " Standard Time" if appropriate.
- */
-static const WindowsZoneRemap ZONE_REMAP[] = {
- "Central European", "-Warsaw",
- "Central Europe", "-Prague Bratislava",
- "China", "-Beijing",
-
- "Greenwich", "+GMT",
- "GTB", "+GFT",
- "Arab", "+Saudi Arabia",
- "SE Asia", "+Bangkok",
- "AUS Eastern", "+Sydney",
- NULL, NULL,
-};
-
-/**
- * Various registry keys and key fragments.
- */
-static const char CURRENT_ZONE_REGKEY[] = "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
-static const char STANDARD_NAME_REGKEY[] = "StandardName";
-static const char STANDARD_TIME_REGKEY[] = " Standard Time";
-static const char TZI_REGKEY[] = "TZI";
-static const char STD_REGKEY[] = "Std";
-
-/**
- * HKLM subkeys used to probe for the flavor of Windows. Note that we
- * specifically check for the "GMT" zone subkey; this is present on
- * NT, but on XP has become "GMT Standard Time". We need to
- * discriminate between these cases.
- */
-static const char* const WIN_TYPE_PROBE_REGKEY[] = {
- /* WIN_9X_ME_TYPE */
- "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones",
-
- /* WIN_NT_TYPE */
- "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\GMT"
-
- /* otherwise: WIN_2K_XP_TYPE */
-};
-
-/**
- * The time zone root subkeys (under HKLM) for different flavors of
- * Windows.
- */
-static const char* const TZ_REGKEY[] = {
- /* WIN_9X_ME_TYPE */
- "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones\\",
-
- /* WIN_NT_TYPE | WIN_2K_XP_TYPE */
- "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\"
-};
-
-/**
- * Flavor of Windows, from our perspective. Not a real OS version,
- * but rather the flavor of the layout of the time zone information in
- * the registry.
- */
-enum {
- WIN_9X_ME_TYPE = 0,
- WIN_NT_TYPE = 1,
- WIN_2K_XP_TYPE = 2
-};
-
-/**
- * Auxiliary Windows time zone function. Attempts to open the given
- * Windows time zone ID as a registry key. Returns ERROR_SUCCESS if
- * successful. Caller must close the registry key. Handles
- * variations in the resource layout in different flavors of Windows.
- *
- * @param hkey output parameter to receive opened registry key
- * @param winid Windows zone ID, e.g., "Pacific", without the
- * " Standard Time" suffix (if any). Special case "Mexico Standard Time 2"
- * allowed.
- * @param winType Windows flavor (WIN_9X_ME_TYPE, etc.)
- * @return ERROR_SUCCESS upon success
- */
-static LONG openTZRegKey(HKEY *hkey, const char* winid, int winType) {
- LONG result;
- char subKeyName[96];
- char* name;
- int i;
-
- uprv_strcpy(subKeyName, TZ_REGKEY[(winType == WIN_9X_ME_TYPE) ? 0 : 1]);
- name = &subKeyName[strlen(subKeyName)];
- uprv_strcat(subKeyName, winid);
- if (winType != WIN_9X_ME_TYPE) {
- /* Don't modify "Mexico Standard Time 2", which does not occur
- on WIN_9X_ME_TYPE. Also, if the type is WIN_NT_TYPE, then
- in practice this means the GMT key is not followed by
- " Standard Time", so don't append in that case. */
- int isMexico2 = (winid[uprv_strlen(winid)- 1] == '2');
- if (!isMexico2 &&
- !(winType == WIN_NT_TYPE && uprv_strcmp(winid, "GMT") == 0)) {
- uprv_strcat(subKeyName, STANDARD_TIME_REGKEY);
- }
- }
- result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- subKeyName,
- 0,
- KEY_QUERY_VALUE,
- hkey);
-
- if (result != ERROR_SUCCESS) {
- /* If the primary lookup fails, try to remap the Windows zone
- ID, according to the remapping table. */
- for (i=0; ZONE_REMAP[i].winid; ++i) {
- if (uprv_strcmp(winid, ZONE_REMAP[i].winid) == 0) {
- uprv_strcpy(name, ZONE_REMAP[i].altwinid + 1);
- if (*(ZONE_REMAP[i].altwinid) == '+' &&
- winType != WIN_9X_ME_TYPE) {
- uprv_strcat(subKeyName, STANDARD_TIME_REGKEY);
- }
- result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- subKeyName,
- 0,
- KEY_QUERY_VALUE,
- hkey);
- break;
- }
- }
- }
-
- return result;
-}
-
-/**
- * Main Windows time zone detection function. Returns the Windows
- * time zone, translated to an ICU time zone, or NULL upon failure.
- */
-static const char* detectWindowsTimeZone() {
- int winType;
- LONG result;
- HKEY hkey;
- TZI tziKey;
- TZI tziReg;
- DWORD cbData = sizeof(TZI);
- TIME_ZONE_INFORMATION apiTZI;
- char stdName[32];
- DWORD stdNameSize;
- char stdRegName[64];
- DWORD stdRegNameSize;
- int firstMatch, lastMatch;
- int j;
-
- /* Detect the version of windows by trying to open a sequence of
- probe keys. We don't use the OS version API because what we
- really want to know is how the registry is laid out.
- Specifically, is it 9x/Me or not, and is it "GMT" or "GMT
- Standard Time". */
- for (winType=0; winType<2; ++winType) {
- result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- WIN_TYPE_PROBE_REGKEY[winType],
- 0,
- KEY_QUERY_VALUE,
- &hkey);
- RegCloseKey(hkey);
- if (result == ERROR_SUCCESS) {
- break;
- }
- }
-
- /* 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));
- 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));
-
- /* For each zone that can be identified by Offset+Rules, see if we
- have a match. Continue scanning after finding a match,
- recording the index of the first and the last match. We have
- to do this because some zones are not unique under
- Offset+Rules. */
- firstMatch = lastMatch = -1;
- for (j=0; ZONE_MAP[j].icuid; j++) {
- result = openTZRegKey(&hkey, ZONE_MAP[j].winid, winType);
- if (result == ERROR_SUCCESS) {
- result = RegQueryValueEx(hkey,
- TZI_REGKEY,
- NULL,
- NULL,
- (LPBYTE)&tziReg,
- &cbData);
- }
- RegCloseKey(hkey);
- if (result == ERROR_SUCCESS) {
- /* Assume that offsets are grouped together, and bail out
- when we've scanned everything with a matching
- offset. */
- if (firstMatch >= 0 && tziKey.Bias != tziReg.Bias) {
- break;
- }
- /* 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) {
- if (firstMatch < 0) {
- firstMatch = j;
- }
- lastMatch = j;
- }
- }
- }
-
- /* This should never happen; if it does it means our table doesn't
- match Windows AT ALL, perhaps because this is post-XP? */
- if (firstMatch < 0) {
- return NULL;
- }
-
- if (firstMatch != lastMatch) {
- /* Offset+Rules lookup yielded >= 2 matches. Try to match the
- localized display name. Get the name from the registry
- (not the API). This avoids conversion issues. Use the
- standard name, since Windows modifies the daylight name to
- match the standard name if there is no DST. */
- result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- CURRENT_ZONE_REGKEY,
- 0,
- KEY_QUERY_VALUE,
- &hkey);
- if (result == ERROR_SUCCESS) {
- stdNameSize = sizeof(stdName);
- result = RegQueryValueEx(hkey,
- (LPTSTR)STANDARD_NAME_REGKEY,
- NULL,
- NULL,
- (LPBYTE)stdName,
- &stdNameSize);
- RegCloseKey(hkey);
-
- /* Scan through the Windows time zone data in the registry
- again (just the range of zones with matching TZIs) and
- look for a standard display name match. */
- for (j=firstMatch; j<=lastMatch; j++) {
- result = openTZRegKey(&hkey, ZONE_MAP[j].winid, winType);
- if (result == ERROR_SUCCESS) {
- stdRegNameSize = sizeof(stdRegName);
- result = RegQueryValueEx(hkey,
- (LPTSTR)STD_REGKEY,
- NULL,
- NULL,
- (LPBYTE)stdRegName,
- &stdRegNameSize);
- }
- RegCloseKey(hkey);
- if (result == ERROR_SUCCESS &&
- stdRegNameSize == stdNameSize &&
- uprv_memcmp(stdName, stdRegName, stdNameSize) == 0) {
- firstMatch = j; /* record the match */
- break;
- }
- }
- } else {
- RegCloseKey(hkey); /* should never get here */
- }
- }
-
- return ZONE_MAP[firstMatch].icuid;
-}
-
-#endif /*U_WINDOWS*/
-
/* Generic time zone layer -------------------------------------------------- */
/* Time zone utilities */
@@ -1209,58 +582,103 @@ uprv_timezone()
extern U_IMPORT char *U_TZNAME[];
#endif
-#if defined(U_DARWIN) /* For Mac OS X */
+#if !UCONFIG_NO_FILE_IO && (defined(U_DARWIN) || defined(U_LINUX) || defined(U_BSD))
+/* These platforms are likely to use Olson timezone IDs. */
+#define CHECK_LOCALTIME_LINK 1
#define TZZONELINK "/etc/localtime"
#define TZZONEINFO "/usr/share/zoneinfo/"
-static char *gTimeZoneBuffer = NULL; /* Heap allocated */
+static char gTimeZoneBuffer[PATH_MAX];
+static char *gTimeZoneBufferPtr = NULL;
+#endif
+
+#ifndef U_WINDOWS
+#define isNonDigit(ch) (ch < '0' || '9' < ch)
+static UBool isValidOlsonID(const char *id) {
+ int32_t idx = 0;
+
+ /* Determine if this is something like Iceland (Olson ID)
+ or AST4ADT (non-Olson ID) */
+ while (id[idx] && isNonDigit(id[idx]) && id[idx] != ',') {
+ idx++;
+ }
+
+ /* If we went through the whole string, then it might be okay.
+ The timezone is sometimes set to "CST-7CDT", "CST6CDT5,J129,J131/19:30",
+ "GRNLNDST3GRNLNDDT" or similar, so we cannot use it.
+ The rest of the time it could be an Olson ID. George */
+ return (UBool)(id[idx] == 0
+ || uprv_strcmp(id, "PST8PDT") == 0
+ || uprv_strcmp(id, "MST7MDT") == 0
+ || uprv_strcmp(id, "CST6CDT") == 0
+ || uprv_strcmp(id, "EST5EDT") == 0);
+}
#endif
U_CAPI const char* U_EXPORT2
uprv_tzname(int n)
{
#ifdef U_WINDOWS
- char* id = (char*) detectWindowsTimeZone();
+ const char *id = uprv_detectWindowsTimeZone();
+
if (id != NULL) {
return id;
}
-#endif
+#else
+ const char *tzenv = NULL;
-#if defined(U_DARWIN)
+/*#if defined(U_DARWIN)
int ret;
- char *tzenv;
-
tzenv = getenv("TZFILE");
if (tzenv != NULL) {
return tzenv;
}
+#endif*/
-#if 0
- /* TZ is often set to "PST8PDT" or similar, so we cannot use it. Alan */
tzenv = getenv("TZ");
- if (tzenv != NULL) {
+ if (tzenv != NULL && isValidOlsonID(tzenv))
+ {
+ /* This might be a good Olson ID. */
+ if (uprv_strncmp(tzenv, "posix/", 6) == 0
+ || uprv_strncmp(tzenv, "right/", 6) == 0)
+ {
+ /* Remove the posix/ or right/ prefix. */
+ tzenv += 6;
+ }
return tzenv;
}
-#endif
-
- /* Caller must handle threading issues */
- if (gTimeZoneBuffer == NULL) {
- gTimeZoneBuffer = (char *) uprv_malloc(MAXPATHLEN + 2);
+ /* else U_TZNAME will give a better result. */
- ret = readlink(TZZONELINK, gTimeZoneBuffer, MAXPATHLEN + 2);
+#if defined(CHECK_LOCALTIME_LINK)
+ /* Caller must handle threading issues */
+ if (gTimeZoneBufferPtr == NULL) {
+ /*
+ This is a trick to look at the name of the link to get the Olson ID
+ because the tzfile contents is underspecified.
+ This isn't guaranteed to work because it may not be a symlink.
+ */
+ int32_t ret = (int32_t)readlink(TZZONELINK, gTimeZoneBuffer, sizeof(gTimeZoneBuffer));
if (0 < ret) {
- gTimeZoneBuffer[ret] = '\0';
- if (uprv_strncmp(gTimeZoneBuffer, TZZONEINFO, sizeof(TZZONEINFO) - 1) == 0) {
- return (gTimeZoneBuffer += sizeof(TZZONEINFO) - 1);
+ int32_t tzZoneInfoLen = uprv_strlen(TZZONEINFO);
+ gTimeZoneBuffer[ret] = 0;
+ if (uprv_strncmp(gTimeZoneBuffer, TZZONEINFO, tzZoneInfoLen) == 0
+ && isValidOlsonID(gTimeZoneBuffer + tzZoneInfoLen))
+ {
+ return (gTimeZoneBufferPtr = gTimeZoneBuffer + tzZoneInfoLen);
}
}
-
- uprv_free(gTimeZoneBuffer);
- gTimeZoneBuffer = NULL;
}
+ else {
+ return gTimeZoneBufferPtr;
+ }
+#endif
#endif
#ifdef U_TZNAME
+ /*
+ U_TZNAME is usually a non-unique abbreviation,
+ which isn't normally usable.
+ */
return U_TZNAME[n];
#else
return "";
@@ -1384,7 +802,7 @@ u_getDataDirectory(void) {
There may also be some platforms where environment variables
are not allowed.
*/
-# if !defined(ICU_NO_USER_DATA_OVERRIDE) && (!defined(UCONFIG_NO_FILE_IO) || !UCONFIG_NO_FILE_IO)
+# if !defined(ICU_NO_USER_DATA_OVERRIDE) && !UCONFIG_NO_FILE_IO
/* First try to get the environment variable */
path=getenv("ICU_DATA");
# endif
@@ -1520,32 +938,48 @@ static const char *uprv_getPOSIXID(void)
{
static const char* posixID = NULL;
if (posixID == 0) {
- posixID = getenv("LC_ALL");
- if (posixID == 0) {
- posixID = getenv("LANG");
+ /*
+ * On Solaris two different calls to setlocale can result in
+ * different values. Only get this value once.
+ *
+ * We must check this first because an application can set this.
+ *
+ * LC_ALL can't be used because it's platform dependent. The LANG
+ * environment variable seems to affect LC_CTYPE variable by default.
+ * Here is what setlocale(LC_ALL, NULL) can return.
+ * HPUX can return 'C C C C C C C'
+ * Solaris can return /en_US/C/C/C/C/C on the second try.
+ * Linux can return LC_CTYPE=C;LC_NUMERIC=C;...
+ *
+ * The default codepage detection also needs to use LC_CTYPE.
+ *
+ * Do not call setlocale(LC_*, "")! Using an empty string instead
+ * of NULL, will modify the libc behavior.
+ */
+ posixID = setlocale(LC_CTYPE, NULL);
+ if ((posixID == 0)
+ || (uprv_strcmp("C", posixID) == 0)
+ || (uprv_strcmp("POSIX", posixID) == 0))
+ {
+ /* Maybe we got some garbage. Try something more reasonable */
+ posixID = getenv("LC_ALL");
if (posixID == 0) {
- /*
- * On Solaris two different calls to setlocale can result in
- * different values. Only get this value once.
- */
- posixID = setlocale(LC_ALL, NULL);
+ posixID = getenv("LC_CTYPE");
+ if (posixID == 0) {
+ posixID = getenv("LANG");
+ }
}
}
- }
- if (posixID==0)
- {
- /* Nothing worked. Give it a nice value. */
- posixID = "en_US";
- }
- else if ((uprv_strcmp("C", posixID) == 0)
- || (uprv_strchr(posixID, ' ') != NULL)
- || (uprv_strchr(posixID, '/') != NULL))
- { /* HPUX returns 'C C C C C C C' */
- /* Solaris can return /en_US/C/C/C/C/C on the second try. */
- /* Maybe we got some garbage. Give it a nice value. */
- posixID = "en_US_POSIX";
+ if ((posixID==0)
+ || (uprv_strcmp("C", posixID) == 0)
+ || (uprv_strcmp("POSIX", posixID) == 0))
+ {
+ /* Nothing worked. Give it a nice POSIX default value. */
+ posixID = "en_US_POSIX";
+ }
}
+
return posixID;
}
#endif
@@ -1595,7 +1029,7 @@ The leftmost codepage (.xxx) wins.
if ((p = uprv_strchr(posixID, '.')) != NULL) {
/* assume new locale can't be larger than old one? */
- correctedPOSIXLocale = uprv_malloc(uprv_strlen(posixID));
+ correctedPOSIXLocale = uprv_malloc(uprv_strlen(posixID)+1);
uprv_strncpy(correctedPOSIXLocale, posixID, p-posixID);
correctedPOSIXLocale[p-posixID] = 0;
@@ -1608,7 +1042,7 @@ The leftmost codepage (.xxx) wins.
/* Note that we scan the *uncorrected* ID. */
if ((p = uprv_strrchr(posixID, '@')) != NULL) {
if (correctedPOSIXLocale == NULL) {
- correctedPOSIXLocale = uprv_malloc(uprv_strlen(posixID));
+ correctedPOSIXLocale = uprv_malloc(uprv_strlen(posixID)+1);
uprv_strncpy(correctedPOSIXLocale, posixID, p-posixID);
correctedPOSIXLocale[p-posixID] = 0;
}
@@ -1617,12 +1051,7 @@ The leftmost codepage (.xxx) wins.
/* Take care of any special cases here.. */
if (!uprv_strcmp(p, "nynorsk")) {
p = "NY";
-
- /* Should we assume no_NO_NY instead of possible no__NY?
- * if (!uprv_strcmp(correctedPOSIXLocale, "no")) {
- * uprv_strcpy(correctedPOSIXLocale, "no_NO");
- * }
- */
+ /* Don't worry about no__NY. In practice, it won't appear. */
}
if (uprv_strchr(correctedPOSIXLocale,'_') == NULL) {
@@ -1645,6 +1074,8 @@ The leftmost codepage (.xxx) wins.
/* Should there be a map from 'no@nynorsk' -> no_NO_NY here?
* How about 'russian' -> 'ru'?
+ * Many of the other locales using ISO codes will be handled by the
+ * canonicalization functions in uloc_getDefault.
*/
}
@@ -1810,6 +1241,81 @@ The leftmost codepage (.xxx) wins.
}
+#if U_POSIX_LOCALE
+/*
+Due to various platform differences, one platform may specify a charset,
+when they really mean a different charset. Remap the names so that they are
+compatible with ICU.
+*/
+static const char*
+remapPlatformDependentCodepage(const char *locale, const char *name) {
+ if (locale != NULL && *locale == 0) {
+ /* Make sure that an empty locale is handled the same way. */
+ locale = NULL;
+ }
+ if (name == NULL) {
+ return NULL;
+ }
+#if defined(U_AIX)
+ if (uprv_strcmp(name, "IBM-943") == 0) {
+ /* Use the ASCII compatible ibm-943 */
+ name = "Shift-JIS";
+ }
+ else if (uprv_strcmp(name, "IBM-1252") == 0) {
+ /* Use the windows-1252 that contains the Euro */
+ name = "IBM-5348";
+ }
+#elif defined(U_SOLARIS)
+ if (locale != NULL && uprv_strcmp(name, "EUC") == 0) {
+ /* Solaris underspecifies the "EUC" name. */
+ if (uprv_strcmp(locale, "zh_CN") == 0) {
+ name = "EUC-CN";
+ }
+ else if (uprv_strcmp(locale, "zh_TW") == 0) {
+ name = "EUC-TW";
+ }
+ else if (uprv_strcmp(locale, "ko_KR") == 0) {
+ name = "EUC-KR";
+ }
+ }
+#elif defined(U_DARWIN)
+ if (locale == NULL && *name == 0) {
+ /*
+ No locale was specified, and an empty name was passed in.
+ This usually indicates that nl_langinfo didn't return valid information.
+ Mac OS X uses UTF-8 by default (especially the locale data and console).
+ */
+ name = "UTF-8";
+ }
+#endif
+ /* return NULL when "" is passed in */
+ if (*name == 0) {
+ name = NULL;
+ }
+ return name;
+}
+
+static const char*
+getCodepageFromPOSIXID(const char *localeName, char * buffer, int32_t buffCapacity)
+{
+ char localeBuf[100];
+ const char *name = NULL;
+ char *variant = NULL;
+
+ if (localeName != NULL && (name = (uprv_strchr(localeName, '.'))) != NULL) {
+ size_t localeCapacity = uprv_min(sizeof(localeBuf), (name-localeName)+1);
+ uprv_strncpy(localeBuf, localeName, localeCapacity);
+ localeBuf[localeCapacity-1] = 0; /* ensure NULL termination */
+ name = uprv_strncpy(buffer, name+1, buffCapacity);
+ buffer[buffCapacity-1] = 0; /* ensure NULL termination */
+ if ((variant = (uprv_strchr(name, '@'))) != NULL) {
+ *variant = 0;
+ }
+ name = remapPlatformDependentCodepage(localeBuf, name);
+ }
+ return name;
+}
+#endif
static const char*
int_getDefaultCodepage()
@@ -1850,58 +1356,32 @@ int_getDefaultCodepage()
#elif U_POSIX_LOCALE
static char codesetName[100];
- char *name = NULL;
- char *euro = NULL;
const char *localeName = NULL;
+ const char *name = NULL;
uprv_memset(codesetName, 0, sizeof(codesetName));
- /* Check setlocale before the environment variables
- because the application may have set it first */
-
- /* Use setlocale in a nice way.
+ /* Use setlocale in a nice way, and then check some environment variables.
Maybe the application used setlocale already.
- Normally this won't work. */
- localeName = setlocale(LC_CTYPE, NULL);
- if (localeName != NULL && (name = (uprv_strchr(localeName, '.'))) != NULL) {
- /* strip the locale name and look at the suffix only */
- name = uprv_strncpy(codesetName, name+1, sizeof(codesetName));
- codesetName[sizeof(codesetName)-1] = 0;
- if ((euro = (uprv_strchr(name, '@'))) != NULL) {
- *euro = 0;
- }
- /* if we can find the codset name from setlocale, return that. */
- if (*name) {
- return name;
- }
+ */
+ localeName = uprv_getPOSIXID();
+ name = getCodepageFromPOSIXID(localeName, codesetName, sizeof(codesetName));
+ if (name) {
+ /* if we can find the codeset name from setlocale, return that. */
+ return name;
}
/* else "C" was probably returned. That's underspecified. */
- /* Use setlocale a little more forcefully.
- The application didn't use setlocale */
- localeName = setlocale(LC_CTYPE, "");
- if (localeName != NULL && (name = (uprv_strchr(localeName, '.'))) != NULL) {
- /* strip the locale name and look at the suffix only */
- name = uprv_strncpy(codesetName, name+1, sizeof(codesetName));
- codesetName[sizeof(codesetName)-1] = 0;
- if ((euro = (uprv_strchr(name, '@'))) != NULL) {
- *euro = 0;
- }
- /* if we can find the codset name from setlocale, return that. */
- if (*name) {
- return name;
- }
- }
- /* else "C" or something like it was returned. That's still underspecified. */
-
#if U_HAVE_NL_LANGINFO_CODESET
if (*codesetName) {
uprv_memset(codesetName, 0, sizeof(codesetName));
}
- /* When available, check nl_langinfo first because it usually gives more
- useful names. It depends on LC_CTYPE and not LANG or LC_ALL */
+ /* When available, check nl_langinfo because it usually gives more
+ useful names. It depends on LC_CTYPE and not LANG or LC_ALL.
+ nl_langinfo may use the same buffer as setlocale. */
{
const char *codeset = nl_langinfo(U_NL_LANGINFO_CODESET);
+ codeset = remapPlatformDependentCodepage(NULL, codeset);
if (codeset != NULL) {
uprv_strncpy(codesetName, codeset, sizeof(codesetName));
codesetName[sizeof(codesetName)-1] = 0;
@@ -1910,28 +1390,9 @@ int_getDefaultCodepage()
}
#endif
- /* Try a locale specified by the user.
- This is usually underspecified and usually checked by setlocale already. */
- if (*codesetName) {
- uprv_memset(codesetName, 0, sizeof(codesetName));
- }
- localeName = uprv_getPOSIXID();
- if (localeName != NULL && (name = (uprv_strchr(localeName, '.'))) != NULL) {
- /* strip the locale name and look at the suffix only */
- name = uprv_strncpy(codesetName, name+1, sizeof(codesetName));
- codesetName[sizeof(codesetName)-1] = 0;
- if ((euro = (uprv_strchr(name, '@'))) != NULL) {
- *euro = 0;
- }
- /* if we can find the codset name, return that. */
- if (*name) {
- return name;
- }
- }
-
if (*codesetName == 0)
{
- /* if the table lookup failed, return US ASCII (ISO 646). */
+ /* Everything failed. Return US ASCII (ISO 646). */
uprv_strcpy(codesetName, "US-ASCII");
}
return codesetName;
diff --git a/Build/source/libs/icu-xetex/common/putilimp.h b/Build/source/libs/icu-xetex/common/putilimp.h
index 1c3e1a9db94..04c91b39032 100644
--- a/Build/source/libs/icu-xetex/common/putilimp.h
+++ b/Build/source/libs/icu-xetex/common/putilimp.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -135,19 +135,6 @@ U_INTERNAL int32_t U_EXPORT2 uprv_min(int32_t d, int32_t y);
U_INTERNAL double U_EXPORT2 uprv_maxMantissa(void);
/**
- * Return the floor of the log base 10 of a given double.
- * This method compensates for inaccuracies which arise naturally when
- * computing logs, and always gives the correct value. The parameter
- * must be positive and finite.
- * (Thanks to Alan Liu for supplying this function.)
- *
- * @param d the double value to apply the common log function for.
- * @return the log of value d.
- * @internal
- */
-U_INTERNAL int16_t U_EXPORT2 uprv_log10(double d);
-
-/**
* Floating point utility to calculate the logarithm of a double.
* @internal
*/
@@ -260,19 +247,34 @@ U_INTERNAL UBool U_EXPORT2 uprv_pathIsAbsolute(const char *path);
# elif defined(OS400)
/*
* With the provided macro we should never be out of range of a given segment
- * (a traditional/typical segment that is). Our segments have 5 bytes for the id
- * and 3 bytes for the offset. The key is that the casting takes care of only
- * retrieving the offset portion minus x1000. Hence, the smallest offset seen in
- * a program is x001000 and when casted to an int would be 0. That's why we can
- * only add 0xffefff. Otherwise, we would exceed the segment.
+ * (a traditional/typical segment that is). Our segments have 5 bytes for the
+ * id and 3 bytes for the offset. The key is that the casting takes care of
+ * only retrieving the offset portion minus x1000. Hence, the smallest offset
+ * seen in a program is x001000 and when casted to an int would be 0.
+ * That's why we can only add 0xffefff. Otherwise, we would exceed the segment.
*
* Currently, 16MB is the current addressing limitation on as/400. This macro
* may eventually be changed to use 2GB addressability for the newer version of
* as/400 machines.
*/
# define U_MAX_PTR(base) ((void *)(((char *)base)-((int32_t)(base))+((int32_t)0xffefff)))
+# elif defined(__GNUC__) && __GNUC__ >= 4
+/*
+ * Due to a compiler optimization bug, gcc 4 causes test failures when doing
+ * this math arithmetic on pointers on some platforms. It seems like the
+ * pointers are considered signed instead of unsigned. The uintptr_t type
+ * isn't available on all platforms (i.e MSVC 6) and pointers aren't always
+ * a scalar value (i.e. i5/OS in the lines above).
+ */
+# define U_MAX_PTR(base) \
+ ((void *)(((uintptr_t)(base)+0x7fffffffu) > (uintptr_t)(base) \
+ ? ((uintptr_t)(base)+0x7fffffffu) \
+ : (uintptr_t)-1))
# else
-# define U_MAX_PTR(base) ((void *)(((char *)(base)+0x7fffffffu) > (char *)(base) ? ((char *)(base)+0x7fffffffu) : (char *)-1))
+# define U_MAX_PTR(base) \
+ ((char *)(((char *)(base)+0x7fffffffu) > (char *)(base) \
+ ? ((char *)(base)+0x7fffffffu) \
+ : (char *)-1))
# endif
#endif
diff --git a/Build/source/libs/icu-xetex/common/rbbi.cpp b/Build/source/libs/icu-xetex/common/rbbi.cpp
index 7bb5752e8b1..e5f5eeb469b 100644
--- a/Build/source/libs/icu-xetex/common/rbbi.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbi.cpp
@@ -1,6 +1,6 @@
/*
***************************************************************************
-* Copyright (C) 1999-2005 International Business Machines Corporation *
+* Copyright (C) 1999-2006 International Business Machines Corporation *
* and others. All rights reserved. *
***************************************************************************
*/
@@ -16,14 +16,28 @@
#include "unicode/rbbi.h"
#include "unicode/schriter.h"
+#include "unicode/uchriter.h"
#include "unicode/udata.h"
#include "unicode/uclean.h"
#include "rbbidata.h"
#include "rbbirb.h"
#include "cmemory.h"
#include "cstring.h"
+#include "mutex.h"
+#include "ucln_cmn.h"
+#include "brkeng.h"
#include "uassert.h"
+#include "uvector.h"
+
+// if U_LOCAL_SERVICE_HOOK is defined, then localsvc.cpp is expected to be included.
+#if U_LOCAL_SERVICE_HOOK
+#include "localsvc.h"
+#endif
+
+#ifdef RBBI_DEBUG
+static UBool fTrace = FALSE;
+#endif
U_NAMESPACE_BEGIN
@@ -82,7 +96,6 @@ RuleBasedBreakIterator::RuleBasedBreakIterator( const UnicodeString &rules,
UParseError &parseError,
UErrorCode &status)
{
- u_init(&status); // Just in case ICU is not yet initialized
init();
if (U_FAILURE(status)) {return;}
RuleBasedBreakIterator *bi = (RuleBasedBreakIterator *)
@@ -127,12 +140,34 @@ RuleBasedBreakIterator::RuleBasedBreakIterator(const RuleBasedBreakIterator& oth
* Destructor
*/
RuleBasedBreakIterator::~RuleBasedBreakIterator() {
- delete fText;
- fText = NULL;
+ if (fCharIter!=fSCharIter && fCharIter!=fDCharIter) {
+ // fCharIter was adopted from the outside.
+ delete fCharIter;
+ }
+ fCharIter = NULL;
+ delete fSCharIter;
+ fCharIter = NULL;
+ delete fDCharIter;
+ fDCharIter = NULL;
+
+ utext_close(fText);
+
if (fData != NULL) {
fData->removeReference();
fData = NULL;
}
+ if (fCachedBreakPositions) {
+ uprv_free(fCachedBreakPositions);
+ fCachedBreakPositions = NULL;
+ }
+ if (fLanguageBreakEngines) {
+ delete fLanguageBreakEngines;
+ fLanguageBreakEngines = NULL;
+ }
+ if (fUnhandledBreakEngine) {
+ delete fUnhandledBreakEngine;
+ fUnhandledBreakEngine = NULL;
+ }
}
/**
@@ -144,10 +179,26 @@ RuleBasedBreakIterator::operator=(const RuleBasedBreakIterator& that) {
if (this == &that) {
return *this;
}
- delete fText;
- fText = NULL;
- if (that.fText != NULL) {
- fText = that.fText->clone();
+ reset(); // Delete break cache information
+ fBreakType = that.fBreakType;
+ if (fLanguageBreakEngines != NULL) {
+ delete fLanguageBreakEngines;
+ fLanguageBreakEngines = NULL; // Just rebuild for now
+ }
+ // TODO: clone fLanguageBreakEngines from "that"
+ UErrorCode status = U_ZERO_ERROR;
+ fText = utext_clone(fText, that.fText, FALSE, TRUE, &status);
+
+ if (fCharIter!=fSCharIter && fCharIter!=fDCharIter) {
+ delete fCharIter;
+ }
+ fCharIter = NULL;
+
+ if (that.fCharIter != NULL ) {
+ // This is a little bit tricky - it will intially appear that
+ // this->fCharIter is adopted, even if that->fCharIter was
+ // not adopted. That's ok.
+ fCharIter = that.fCharIter->clone();
}
if (fData != NULL) {
@@ -157,7 +208,6 @@ RuleBasedBreakIterator::operator=(const RuleBasedBreakIterator& that) {
if (that.fData != NULL) {
fData = that.fData->addReference();
}
- fTrace = that.fTrace;
return *this;
}
@@ -170,14 +220,24 @@ RuleBasedBreakIterator::operator=(const RuleBasedBreakIterator& that) {
// Initializes all fields, leaving the object in a consistent state.
//
//-----------------------------------------------------------------------------
-UBool RuleBasedBreakIterator::fTrace = FALSE;
void RuleBasedBreakIterator::init() {
-
- fText = NULL;
+ UErrorCode status = U_ZERO_ERROR;
+ fBufferClone = FALSE;
+ fText = utext_openUChars(NULL, NULL, 0, &status);
+ fCharIter = NULL;
+ fSCharIter = NULL;
+ fDCharIter = NULL;
fData = NULL;
fLastRuleStatusIndex = 0;
fLastStatusIndexValid = TRUE;
fDictionaryCharCount = 0;
+ fBreakType = -1;
+
+ fCachedBreakPositions = NULL;
+ fLanguageBreakEngines = NULL;
+ fUnhandledBreakEngine = NULL;
+ fNumCachedBreakPositions = 0;
+ fPositionInCache = 0;
#ifdef RBBI_DEBUG
static UBool debugInitDone = FALSE;
@@ -211,20 +271,26 @@ RuleBasedBreakIterator::clone(void) const {
*/
UBool
RuleBasedBreakIterator::operator==(const BreakIterator& that) const {
- UBool r = FALSE;
if (that.getDynamicClassID() != getDynamicClassID()) {
- return r;
+ return FALSE;
}
const RuleBasedBreakIterator& that2 = (const RuleBasedBreakIterator&) that;
- if (fText == that2.fText ||
- (fText != NULL && that2.fText != NULL && *that2.fText == *fText)) {
- if (that2.fData == fData ||
- (fData != NULL && that2.fData != NULL && *that2.fData == *fData)) {
- r = TRUE;
+
+ if (!utext_equals(fText, that2.fText)) {
+ // The two break iterators are operating on different text,
+ // or have a different interation position.
+ return FALSE;
+ };
+
+ // TODO: need a check for when in a dictionary region at different offsets.
+
+ if (that2.fData == fData ||
+ (fData != NULL && that2.fData != NULL && *that2.fData == *fData)) {
+ // The two break iterators are using the same rules.
+ return TRUE;
}
- }
- return r;
+ return FALSE;
}
/**
@@ -240,6 +306,42 @@ RuleBasedBreakIterator::hashCode(void) const {
return hash;
}
+
+void RuleBasedBreakIterator::setText(UText *ut, UErrorCode &status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ reset();
+ fText = utext_clone(fText, ut, FALSE, TRUE, &status);
+
+ // Set up a dummy CharacterIterator to be returned if anyone
+ // calls getText(). With input from UText, there is no reasonable
+ // way to return a characterIterator over the actual input text.
+ // Return one over an empty string instead - this is the closest
+ // we can come to signaling a failure.
+ // (GetText() is obsolete, this failure is sort of OK)
+ if (fDCharIter == NULL) {
+ static UChar c = 0;
+ fDCharIter = new UCharCharacterIterator(&c, 0);
+ }
+
+ if (fCharIter!=fSCharIter && fCharIter!=fDCharIter) {
+ // existing fCharIter was adopted from the outside. Delete it now.
+ delete fCharIter;
+ }
+ fCharIter = fDCharIter;
+
+ this->first();
+}
+
+
+UText *RuleBasedBreakIterator::getUText(UText *fillIn, UErrorCode &status) const {
+ UText *result = utext_clone(fillIn, fText, FALSE, TRUE, &status);
+ return result;
+}
+
+
+
/**
* Returns the description used to create this iterator
*/
@@ -265,23 +367,11 @@ RuleBasedBreakIterator::getRules() const {
//=======================================================================
/**
- * Return a CharacterIterator over the text being analyzed. This version
- * of this method returns the actual CharacterIterator we're using internally.
- * Changing the state of this iterator can have undefined consequences. If
- * you need to change it, clone it first.
- * @return An iterator over the text being analyzed.
+ * Return a CharacterIterator over the text being analyzed.
*/
-const CharacterIterator&
+CharacterIterator&
RuleBasedBreakIterator::getText() const {
- RuleBasedBreakIterator* nonConstThis = (RuleBasedBreakIterator*)this;
-
- // The iterator is initialized pointing to no text at all, so if this
- // function is called while we're in that state, we have to fudge an
- // an iterator to return.
- if (nonConstThis->fText == NULL) {
- nonConstThis->fText = new StringCharacterIterator(UnicodeString());
- }
- return *nonConstThis->fText;
+ return *fCharIter;
}
/**
@@ -291,9 +381,22 @@ RuleBasedBreakIterator::getText() const {
*/
void
RuleBasedBreakIterator::adoptText(CharacterIterator* newText) {
+ // If we are holding a CharacterIterator adopted from a
+ // previous call to this function, delete it now.
+ if (fCharIter!=fSCharIter && fCharIter!=fDCharIter) {
+ delete fCharIter;
+ }
+
+ fCharIter = newText;
+ UErrorCode status = U_ZERO_ERROR;
reset();
- delete fText;
- fText = newText;
+ if (newText==NULL || newText->startIndex() != 0) {
+ // startIndex !=0 wants to be an error, but there's no way to report it.
+ // Make the iterator text be an empty string.
+ fText = utext_openUChars(fText, NULL, 0, &status);
+ } else {
+ fText = utext_openCharacterIterator(fText, newText, &status);
+ }
this->first();
}
@@ -304,15 +407,26 @@ RuleBasedBreakIterator::adoptText(CharacterIterator* newText) {
*/
void
RuleBasedBreakIterator::setText(const UnicodeString& newText) {
+ UErrorCode status = U_ZERO_ERROR;
reset();
- if (fText != NULL && fText->getDynamicClassID()
- == StringCharacterIterator::getStaticClassID()) {
- ((StringCharacterIterator*)fText)->setText(newText);
+ fText = utext_openConstUnicodeString(fText, &newText, &status);
+
+ // Set up a character iterator on the string.
+ // Needed in case someone calls getText().
+ // Can not, unfortunately, do this lazily on the (probably never)
+ // call to getText(), because getText is const.
+ if (fSCharIter == NULL) {
+ fSCharIter = new StringCharacterIterator(newText);
+ } else {
+ fSCharIter->setText(newText);
}
- else {
- delete fText;
- fText = new StringCharacterIterator(newText);
+
+ if (fCharIter!=fSCharIter && fCharIter!=fDCharIter) {
+ // old fCharIter was adopted from the outside. Delete it.
+ delete fCharIter;
}
+ fCharIter = fSCharIter;
+
this->first();
}
@@ -320,24 +434,21 @@ RuleBasedBreakIterator::setText(const UnicodeString& newText) {
/**
* Sets the current iteration position to the beginning of the text.
- * (i.e., the CharacterIterator's starting offset).
* @return The offset of the beginning of the text.
*/
int32_t RuleBasedBreakIterator::first(void) {
reset();
fLastRuleStatusIndex = 0;
fLastStatusIndexValid = TRUE;
- if (fText == NULL)
- return BreakIterator::DONE;
+ //if (fText == NULL)
+ // return BreakIterator::DONE;
- //fText->first();
- fText->setToStart();
- return fText->getIndex();
+ utext_setNativeIndex(fText, 0);
+ return 0;
}
/**
* Sets the current iteration position to the end of the text.
- * (i.e., the CharacterIterator's ending offset).
* @return The text's past-the-end offset.
*/
int32_t RuleBasedBreakIterator::last(void) {
@@ -348,17 +459,9 @@ int32_t RuleBasedBreakIterator::last(void) {
return BreakIterator::DONE;
}
- // I'm not sure why, but t.last() returns the offset of the last character,
- // rather than the past-the-end offset
- //
- // (It's so a loop like for(p=it.last(); p!=DONE; p=it.previous()) ...
- // will work correctly.)
-
-
fLastStatusIndexValid = FALSE;
- int32_t pos = fText->endIndex();
- fText->setIndex(pos);
-
+ int32_t pos = (int32_t)utext_nativeLength(fText);
+ utext_setNativeIndex(fText, pos);
return pos;
}
@@ -374,7 +477,7 @@ int32_t RuleBasedBreakIterator::last(void) {
int32_t RuleBasedBreakIterator::next(int32_t n) {
int32_t result = current();
while (n > 0) {
- result = handleNext();
+ result = next();
--n;
}
while (n < 0) {
@@ -389,7 +492,26 @@ int32_t RuleBasedBreakIterator::next(int32_t n) {
* @return The position of the first boundary after this one.
*/
int32_t RuleBasedBreakIterator::next(void) {
- return handleNext();
+ // if we have cached break positions and we're still in the range
+ // covered by them, just move one step forward in the cache
+ if (fCachedBreakPositions != NULL) {
+ if (fPositionInCache < fNumCachedBreakPositions - 1) {
+ ++fPositionInCache;
+ int32_t pos = fCachedBreakPositions[fPositionInCache];
+ utext_setNativeIndex(fText, pos);
+ return pos;
+ }
+ else {
+ reset();
+ }
+ }
+
+ int32_t startPos = current();
+ int32_t result = handleNext(fData->fForwardTable);
+ if (fDictionaryCharCount > 0) {
+ result = checkDictionary(startPos, result, FALSE);
+ }
+ return result;
}
/**
@@ -397,15 +519,36 @@ int32_t RuleBasedBreakIterator::next(void) {
* @return The position of the last boundary position preceding this one.
*/
int32_t RuleBasedBreakIterator::previous(void) {
+ int32_t result;
+ int32_t startPos;
+
+ // if we have cached break positions and we're still in the range
+ // covered by them, just move one step backward in the cache
+ if (fCachedBreakPositions != NULL) {
+ if (fPositionInCache > 0) {
+ --fPositionInCache;
+ int32_t pos = fCachedBreakPositions[fPositionInCache];
+ utext_setNativeIndex(fText, pos);
+ return pos;
+ }
+ else {
+ reset();
+ }
+ }
+
// if we're already sitting at the beginning of the text, return DONE
- if (fText == NULL || current() == fText->startIndex()) {
+ if (fText == NULL || (startPos = current()) == 0) {
fLastRuleStatusIndex = 0;
fLastStatusIndexValid = TRUE;
return BreakIterator::DONE;
}
if (fData->fSafeRevTable != NULL || fData->fSafeFwdTable != NULL) {
- return handlePrevious(fData->fReverseTable);
+ result = handlePrevious(fData->fReverseTable);
+ if (fDictionaryCharCount > 0) {
+ result = checkDictionary(result, startPos, TRUE);
+ }
+ return result;
}
// old rule syntax
@@ -413,13 +556,18 @@ int32_t RuleBasedBreakIterator::previous(void) {
// break position before the current position (we back our internal
// iterator up one step to prevent handlePrevious() from returning
// the current position), but not necessarily the last one before
+
// where we started
int32_t start = current();
- fText->previous32();
- int32_t lastResult = handlePrevious();
- int32_t result = lastResult;
+ UTEXT_PREVIOUS32(fText);
+ int32_t lastResult = handlePrevious(fData->fReverseTable);
+ if (lastResult == UBRK_DONE) {
+ lastResult = 0;
+ utext_setNativeIndex(fText, 0);
+ }
+ result = lastResult;
int32_t lastTag = 0;
UBool breakTagValid = FALSE;
@@ -428,7 +576,7 @@ int32_t RuleBasedBreakIterator::previous(void) {
// point is our return value
for (;;) {
- result = handleNext();
+ result = next();
if (result == BreakIterator::DONE || result >= start) {
break;
}
@@ -440,15 +588,19 @@ int32_t RuleBasedBreakIterator::previous(void) {
// fLastBreakTag wants to have the value for section of text preceding
// the result position that we are to return (in lastResult.) If
// the backwards rules overshot and the above loop had to do two or more
- // handleNext()s to move up to the desired return position, we will have a valid
+ // next()s to move up to the desired return position, we will have a valid
// tag value. But, if handlePrevious() took us to exactly the correct result positon,
// we wont have a tag value for that position, which is only set by handleNext().
// set the current iteration position to be the last break position
// before where we started, and then return that value
- fText->setIndex(lastResult);
+ utext_setNativeIndex(fText, lastResult);
fLastRuleStatusIndex = lastTag; // for use by getRuleStatus()
fLastStatusIndexValid = breakTagValid;
+
+ // No need to check the dictionary; it will have been handled by
+ // next()
+
return lastResult;
}
@@ -459,16 +611,37 @@ int32_t RuleBasedBreakIterator::previous(void) {
* @return The position of the first break after the current position.
*/
int32_t RuleBasedBreakIterator::following(int32_t offset) {
+ // if we have cached break positions and offset is in the range
+ // covered by them, use them
+ // TODO: could use binary search
+ // TODO: what if offset is outside range, but break is not?
+ if (fCachedBreakPositions != NULL) {
+ if (offset >= fCachedBreakPositions[0]
+ && offset < fCachedBreakPositions[fNumCachedBreakPositions - 1]) {
+ fPositionInCache = 0;
+ // We are guaranteed not to leave the array due to range test above
+ while (offset >= fCachedBreakPositions[fPositionInCache]) {
+ ++fPositionInCache;
+ }
+ int32_t pos = fCachedBreakPositions[fPositionInCache];
+ utext_setNativeIndex(fText, pos);
+ return pos;
+ }
+ else {
+ reset();
+ }
+ }
+
// if the offset passed in is already past the end of the text,
// just return DONE; if it's before the beginning, return the
// text's starting offset
fLastRuleStatusIndex = 0;
fLastStatusIndexValid = TRUE;
- if (fText == NULL || offset >= fText->endIndex()) {
+ if (fText == NULL || offset >= utext_nativeLength(fText)) {
last();
return next();
}
- else if (offset < fText->startIndex()) {
+ else if (offset < 0) {
return first();
}
@@ -480,12 +653,11 @@ int32_t RuleBasedBreakIterator::following(int32_t offset) {
if (fData->fSafeRevTable != NULL) {
// new rule syntax
- /// todo synwee
- fText->setIndex(offset);
+ utext_setNativeIndex(fText, offset);
// move forward one codepoint to prepare for moving back to a
// safe point.
// this handles offset being between a supplementary character
- fText->next32();
+ UTEXT_NEXT32(fText);
// handlePrevious will move most of the time to < 1 boundary away
handlePrevious(fData->fSafeRevTable);
int32_t result = next();
@@ -496,8 +668,8 @@ int32_t RuleBasedBreakIterator::following(int32_t offset) {
}
if (fData->fSafeFwdTable != NULL) {
// backup plan if forward safe table is not available
- fText->setIndex(offset);
- fText->previous32();
+ utext_setNativeIndex(fText, offset);
+ UTEXT_PREVIOUS32(fText);
// handle next will give result >= offset
handleNext(fData->fSafeFwdTable);
// previous will give result 0 or 1 boundary away from offset,
@@ -518,7 +690,7 @@ int32_t RuleBasedBreakIterator::following(int32_t offset) {
return result;
}
// otherwise, we have to sync up first. Use handlePrevious() to back
- // us up to a known break position before the specified position (if
+ // up to a known break position before the specified position (if
// we can determine that the specified position is a break position,
// we don't back up at all). This may or may not be the last break
// position at or before our starting position. Advance forward
@@ -526,9 +698,10 @@ int32_t RuleBasedBreakIterator::following(int32_t offset) {
// we stop on will be the first break position after the specified one.
// old rule syntax
- fText->setIndex(offset);
- if (offset == fText->startIndex()) {
- return handleNext();
+ utext_setNativeIndex(fText, offset);
+ if (offset==0 ||
+ offset==1 && utext_getNativeIndex(fText)==0) {
+ return next();
}
result = previous();
@@ -546,15 +719,34 @@ int32_t RuleBasedBreakIterator::following(int32_t offset) {
* @return The position of the last boundary before the starting position.
*/
int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
+ // if we have cached break positions and offset is in the range
+ // covered by them, use them
+ if (fCachedBreakPositions != NULL) {
+ // TODO: binary search?
+ // TODO: What if offset is outside range, but break is not?
+ if (offset > fCachedBreakPositions[0]
+ && offset <= fCachedBreakPositions[fNumCachedBreakPositions - 1]) {
+ fPositionInCache = 0;
+ while (fPositionInCache < fNumCachedBreakPositions
+ && offset > fCachedBreakPositions[fPositionInCache])
+ ++fPositionInCache;
+ --fPositionInCache;
+ utext_setNativeIndex(fText, fCachedBreakPositions[fPositionInCache]);
+ return fCachedBreakPositions[fPositionInCache];
+ }
+ else {
+ reset();
+ }
+ }
+
// if the offset passed in is already past the end of the text,
// just return DONE; if it's before the beginning, return the
-
// text's starting offset
- if (fText == NULL || offset > fText->endIndex()) {
+ if (fText == NULL || offset > utext_nativeLength(fText)) {
// return BreakIterator::DONE;
return last();
}
- else if (offset < fText->startIndex()) {
+ else if (offset < 0) {
return first();
}
@@ -564,17 +756,16 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
if (fData->fSafeFwdTable != NULL) {
// new rule syntax
- fText->setIndex(offset);
-
- int32_t newOffset = fText->getIndex();
+ utext_setNativeIndex(fText, offset);
+ int32_t newOffset = (int32_t)UTEXT_GETNATIVEINDEX(fText);
if (newOffset != offset) {
// Will come here if specified offset was not a code point boundary AND
// the underlying implmentation is using UText, which snaps any non-code-point-boundary
// indices to the containing code point.
// For breakitereator::preceding only, these non-code-point indices need to be moved
// up to refer to the following codepoint.
- fText->next32();
- offset = fText->getIndex();
+ UTEXT_NEXT32(fText);
+ offset = (int32_t)UTEXT_GETNATIVEINDEX(fText);
}
// TODO: (synwee) would it be better to just check for being in the middle of a surrogate pair,
@@ -582,9 +773,9 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
// (Change would interact with safe rules.)
// TODO: change RBBI behavior for off-boundary indices to match that of UText?
// affects only preceding(), seems cleaner, but is slightly different.
- fText->previous32();
+ UTEXT_PREVIOUS32(fText);
handleNext(fData->fSafeFwdTable);
- int32_t result = fText->getIndex();
+ int32_t result = (int32_t)UTEXT_GETNATIVEINDEX(fText);
while (result >= offset) {
result = previous();
}
@@ -592,8 +783,13 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
}
if (fData->fSafeRevTable != NULL) {
// backup plan if forward safe table is not available
- fText->setIndex(offset);
- fText->next32();
+ // TODO: check whether this path can be discarded
+ // It's probably OK to say that rules must supply both safe tables
+ // if they use safe tables at all. We have certainly never described
+ // to anyone how to work with just one safe table.
+ utext_setNativeIndex(fText, offset);
+ UTEXT_NEXT32(fText);
+
// handle previous will give result <= offset
handlePrevious(fData->fSafeRevTable);
@@ -616,7 +812,7 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
}
// old rule syntax
- fText->setIndex(offset);
+ utext_setNativeIndex(fText, offset);
return previous();
}
@@ -629,23 +825,23 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) {
*/
UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
// the beginning index of the iterator is always a boundary position by definition
- if (fText == NULL || offset == fText->startIndex()) {
+ if (offset == 0) {
first(); // For side effects on current position, tag values.
return TRUE;
}
- if (offset == fText->endIndex()) {
+ if (offset == (int32_t)utext_nativeLength(fText)) {
last(); // For side effects on current position, tag values.
return TRUE;
}
// out-of-range indexes are never boundary positions
- if (offset < fText->startIndex()) {
+ if (offset < 0) {
first(); // For side effects on current position, tag values.
return FALSE;
}
- if (offset > fText->endIndex()) {
+ if (offset > utext_nativeLength(fText)) {
last(); // For side effects on current position, tag values.
return FALSE;
}
@@ -653,7 +849,10 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
// otherwise, we can use following() on the position before the specified
// one and return true if the position we get back is the one the user
// specified
- return following(offset - 1) == offset;
+ utext_previous32From(fText, offset);
+ int32_t backOne = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ UBool result = following(backOne) == offset;
+ return result;
}
/**
@@ -661,112 +860,136 @@ UBool RuleBasedBreakIterator::isBoundary(int32_t offset) {
* @return The current iteration position.
*/
int32_t RuleBasedBreakIterator::current(void) const {
- return (fText != NULL) ? fText->getIndex() : (int32_t)BreakIterator::DONE;
+ int32_t pos = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ return pos;
}
-
+
//=======================================================================
// implementation
//=======================================================================
+//
+// RBBIRunMode - the state machine runs an extra iteration at the beginning and end
+// of user text. A variable with this enum type keeps track of where we
+// are. The state machine only fetches user input while in the RUN mode.
+//
+enum RBBIRunMode {
+ RBBI_START, // state machine processing is before first char of input
+ RBBI_RUN, // state machine processing is in the user text
+ RBBI_END // state machine processing is after end of user text.
+};
+
//-----------------------------------------------------------------------------------
//
-// handleNext()
-// This method is the actual implementation of the next() method. All iteration
-// vectors through here. This method initializes the state machine to state 1
+// handleNext(stateTable)
+// This method is the actual implementation of the rbbi next() method.
+// This method initializes the state machine to state 1
// and advances through the text character by character until we reach the end
// of the text or the state machine transitions to state 0. We update our return
// value every time the state machine passes through an accepting state.
//
//-----------------------------------------------------------------------------------
-int32_t RuleBasedBreakIterator::handleNext() {
- return handleNext(fData->fForwardTable);
-}
-
int32_t RuleBasedBreakIterator::handleNext(const RBBIStateTable *statetable) {
- if (fTrace) {
- RBBIDebugPuts("Handle Next pos char state category");
- }
+ int32_t state;
+ int16_t category = 0;
+ RBBIRunMode mode;
+
+ RBBIStateTableRow *row;
+ UChar32 c;
+ int32_t lookaheadStatus = 0;
+ int32_t lookaheadTagIdx = 0;
+ int32_t result = 0;
+ int32_t initialPosition = 0;
+ int32_t lookaheadResult = 0;
+ UBool lookAheadHardBreak = (statetable->fFlags & RBBI_LOOKAHEAD_HARD_BREAK) != 0;
+ const char *tableData = statetable->fTableData;
+ uint32_t tableRowLen = statetable->fRowLen;
+
+ #ifdef RBBI_DEBUG
+ if (fTrace) {
+ RBBIDebugPuts("Handle Next pos char state category");
+ }
+ #endif
// No matter what, handleNext alway correctly sets the break tag value.
fLastStatusIndexValid = TRUE;
+ fLastRuleStatusIndex = 0;
// if we're already at the end of the text, return DONE.
- if (fText == NULL || fData == NULL || fText->hasNext() == FALSE) {
- fLastRuleStatusIndex = 0;
+ initialPosition = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ result = initialPosition;
+ c = UTEXT_NEXT32(fText);
+ if (fData == NULL || c==U_SENTINEL) {
return BreakIterator::DONE;
}
- int32_t initialPosition = fText->getIndex();
- int32_t result = initialPosition;
- int32_t lookaheadResult = 0;
-
- // Initialize the state machine. Begin in state 1
- int32_t state = START_STATE;
- int16_t category;
- UChar32 c = fText->current32();
- RBBIStateTableRow *row;
- int32_t lookaheadStatus = 0;
- int32_t lookaheadTagIdx = 0;
-
- fLastRuleStatusIndex = 0;
-
- row = (RBBIStateTableRow *) // Point to starting row of state table.
- (statetable->fTableData + (statetable->fRowLen * state));
+ // Set the initial state for the state machine
+ state = START_STATE;
+ row = (RBBIStateTableRow *)
+ //(statetable->fTableData + (statetable->fRowLen * state));
+ (tableData + tableRowLen * state);
+
+
+ mode = RBBI_RUN;
+ if (statetable->fFlags & RBBI_BOF_REQUIRED) {
+ category = 2;
+ mode = RBBI_START;
+ }
- // Character Category fetch for starting character.
- // See comments on character category code within loop, below.
- UTRIE_GET16(&fData->fTrie, c, category);
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- category &= ~0x4000;
- }
// loop until we reach the end of the text or transition to state 0
+ //
for (;;) {
- if (c == CharacterIterator::DONE && fText->hasNext()==FALSE) {
+ if (c == U_SENTINEL) {
// Reached end of input string.
- // Note: CharacterIterator::DONE is 0xffff, which is also a legal
- // character value. Check for DONE first, because it's quicker,
- // but also need to check fText->hasNext() to be certain.
-
- if (lookaheadResult > result) {
- // We ran off the end of the string with a pending look-ahead match.
- // Treat this as if the look-ahead condition had been met, and return
- // the match at the / position from the look-ahead rule.
- result = lookaheadResult;
- fLastRuleStatusIndex = lookaheadTagIdx;
- lookaheadStatus = 0;
- } else if (result == initialPosition) {
- // Ran off end, no match found.
- // move forward one
- fText->setIndex(initialPosition);
- fText->next32();
- fText->getIndex();
+ if (mode == RBBI_END) {
+ // We have already run the loop one last time with the
+ // character set to the psueudo {eof} value. Now it is time
+ // to unconditionally bail out.
+ if (lookaheadResult > result) {
+ // We ran off the end of the string with a pending look-ahead match.
+ // Treat this as if the look-ahead condition had been met, and return
+ // the match at the / position from the look-ahead rule.
+ result = lookaheadResult;
+ fLastRuleStatusIndex = lookaheadTagIdx;
+ lookaheadStatus = 0;
+ }
+ break;
}
- break;
+ // Run the loop one last time with the fake end-of-input character category.
+ mode = RBBI_END;
+ category = 1;
}
- // look up the current character's character category, which tells us
- // which column in the state table to look at.
- // Note: the 16 in UTRIE_GET16 refers to the size of the data being returned,
- // not the size of the character going in, which is a UChar32.
- //
- UTRIE_GET16(&fData->fTrie, c, category);
- // Check the dictionary bit in the character's category.
- // Counter is only used by dictionary based iterators (subclasses).
- // Chars that need to be handled by a dictionary have a flag bit set
- // in their category values.
//
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- // And off the dictionary flag bit.
- category &= ~0x4000;
+ // Get the char category. An incoming category of 1 or 2 means that
+ // we are preset for doing the beginning or end of input, and
+ // that we shouldn't get a category from an actual text input character.
+ //
+ if (mode == RBBI_RUN) {
+ // look up the current character's character category, which tells us
+ // which column in the state table to look at.
+ // Note: the 16 in UTRIE_GET16 refers to the size of the data being returned,
+ // not the size of the character going in, which is a UChar32.
+ //
+ UTRIE_GET16(&fData->fTrie, c, category);
+
+ // Check the dictionary bit in the character's category.
+ // Counter is only used by dictionary based iterators (subclasses).
+ // Chars that need to be handled by a dictionary have a flag bit set
+ // in their category values.
+ //
+ if ((category & 0x4000) != 0) {
+ fDictionaryCharCount++;
+ // And off the dictionary flag bit.
+ category &= ~0x4000;
+ }
}
#ifdef RBBI_DEBUG
if (fTrace) {
- RBBIDebugPrintf(" %4d ", fText->getIndex());
+ RBBIDebugPrintf(" %4d ", utext_getNativeIndex(fText));
if (0x20<=c && c<0x7f) {
RBBIDebugPrintf("\"%c\" ", c);
} else {
@@ -776,42 +999,40 @@ int32_t RuleBasedBreakIterator::handleNext(const RBBIStateTable *statetable) {
}
#endif
- // look up a state transition in the state table
+ // State Transition - move machine to its next state
+ //
state = row->fNextState[category];
row = (RBBIStateTableRow *)
- (statetable->fTableData + (statetable->fRowLen * state));
+ // (statetable->fTableData + (statetable->fRowLen * state));
+ (tableData + tableRowLen * state);
- // Get the next character. Doing it here positions the iterator
- // to the correct position for recording matches in the code that
- // follows.
- c = fText->next32();
if (row->fAccepting == -1) {
- // Match found, common case, could have lookahead so we move on to check it
- result = fText->getIndex();
- /// added
+ // Match found, common case.
+ if (mode != RBBI_START) {
+ result = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ }
fLastRuleStatusIndex = row->fTagIdx; // Remember the break status (tag) values.
}
if (row->fLookAhead != 0) {
if (lookaheadStatus != 0
&& row->fAccepting == lookaheadStatus) {
- // Lookahead match is completed. Set the result accordingly, but only
- // if no other rule has matched further in the mean time.
+ // Lookahead match is completed.
result = lookaheadResult;
fLastRuleStatusIndex = lookaheadTagIdx;
lookaheadStatus = 0;
- /// i think we have to back up to read the lookahead character again
- /// fText->setIndex(lookaheadResult);
- /// TODO: this is a simple hack since reverse rules only have simple
- /// lookahead rules that we can definitely break out from.
- /// we need to make the lookahead rules not chain eventually.
- /// return result;
- /// this is going to be the longest match again
+ // TODO: make a standalone hard break in a rule work.
+ if (lookAheadHardBreak) {
+ utext_setNativeIndex(fText, result);
+ return result;
+ }
+ // Look-ahead completed, but other rules may match further. Continue on
+ // TODO: junk this feature? I don't think it's used anywhwere.
goto continueOn;
}
- int32_t r = fText->getIndex();
+ int32_t r = (int32_t)UTEXT_GETNATIVEINDEX(fText);
lookaheadResult = r;
lookaheadStatus = row->fLookAhead;
lookaheadTagIdx = row->fTagIdx;
@@ -819,13 +1040,12 @@ int32_t RuleBasedBreakIterator::handleNext(const RBBIStateTable *statetable) {
}
- if (row->fAccepting == 0) {
- // No match, nothing of interest happening, common case.
- goto continueOn;
+ if (row->fAccepting != 0) {
+ // Because this is an accepting state, any in-progress look-ahead match
+ // is no longer relavant. Clear out the pending lookahead status.
+ lookaheadStatus = 0; // clear out any pending look-ahead match.
}
- lookaheadStatus = 0; // clear out any pending look-ahead matches.
-
continueOn:
if (state == STOP_STATE) {
// This is the normal exit from the lookup state machine.
@@ -833,6 +1053,20 @@ continueOn:
// longer match is possible, no matter what characters follow.
break;
}
+
+ // Advance to the next character.
+ // If this is a beginning-of-input loop iteration, don't advance
+ // the input position. The next iteration will be processing the
+ // first real input character.
+ if (mode == RBBI_RUN) {
+ c = UTEXT_NEXT32(fText);
+ } else {
+ if (mode == RBBI_START) {
+ mode = RBBI_RUN;
+ }
+ }
+
+
}
// The state machine is done. Check whether it found a match...
@@ -841,13 +1075,13 @@ continueOn:
// (This really indicates a defect in the break rules. They should always match
// at least one character.)
if (result == initialPosition) {
- result = fText->setIndex(initialPosition);
- fText ->next32();
- result = fText->getIndex();
+ utext_setNativeIndex(fText, initialPosition);
+ UTEXT_NEXT32(fText);
+ result = (int32_t)UTEXT_GETNATIVEINDEX(fText);
}
// Leave the iterator at our result position.
- fText->setIndex(result);
+ utext_setNativeIndex(fText, result);
#ifdef RBBI_DEBUG
if (fTrace) {
RBBIDebugPrintf("result = %d\n\n", result);
@@ -857,137 +1091,6 @@ continueOn:
}
-//----------------------------------------------------------------
-//
-// handlePrevious(void) This is the variant used with old style rules
-// (Overshoot to a safe point, then move forward)
-//
-//----------------------------------------------------------------
-int32_t RuleBasedBreakIterator::handlePrevious(void) {
- if (fText == NULL || fData == NULL) {
- return 0;
- }
- if (fData->fReverseTable == NULL) {
- return fText->setToStart();
- }
-
- int32_t state = START_STATE;
- int32_t category;
- int32_t lastCategory = 0;
- int32_t result = fText->getIndex();
- int32_t lookaheadStatus = 0;
- int32_t lookaheadResult = 0;
- int32_t lookaheadTagIdx = 0;
- UChar32 c = fText->current32();
- RBBIStateTableRow *row;
-
- row = (RBBIStateTableRow *)
- (this->fData->fReverseTable->fTableData + (state * fData->fReverseTable->fRowLen));
- UTRIE_GET16(&fData->fTrie, c, category);
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- category &= ~0x4000;
- }
-
- if (fTrace) {
- RBBIDebugPuts("Handle Prev pos char state category");
- }
-
- // loop until we reach the beginning of the text or transition to state 0
- for (;;) {
- if (c == CharacterIterator::DONE && fText->hasPrevious()==FALSE) {
- break;
- }
-
- // save the last character's category and look up the current
- // character's category
- lastCategory = category;
- UTRIE_GET16(&fData->fTrie, c, category);
-
- // Check the dictionary bit in the character's category.
- // Counter is only used by dictionary based iterators.
- //
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- category &= ~0x4000;
- }
-
- #ifdef RBBI_DEBUG
- if (fTrace) {
- RBBIDebugPrintf(" %4d ", fText->getIndex());
- if (0x20<=c && c<0x7f) {
- RBBIDebugPrintf("\"%c\" ", c);
- } else {
- RBBIDebugPrintf("%5x ", c);
- }
- RBBIDebugPrintf("%3d %3d\n", state, category);
- }
- #endif
-
- // look up a state transition in the backwards state table
- state = row->fNextState[category];
- row = (RBBIStateTableRow *)
- (this->fData->fReverseTable->fTableData + (state * fData->fReverseTable->fRowLen));
-
- if (row->fAccepting == 0 && row->fLookAhead == 0) {
- // No match, nothing of interest happening, common case.
- goto continueOn;
- }
-
- if (row->fAccepting == -1) {
- // Match found, common case, no lookahead involved.
- result = fText->getIndex();
- lookaheadStatus = 0; // clear out any pending look-ahead matches.
- goto continueOn;
- }
-
- if (row->fAccepting == 0 && row->fLookAhead != 0) {
- // Lookahead match point. Remember it, but only if no other rule
- // has unconditionally matched to this point.
- // TODO: handle case where there's a pending match from a different rule
- // where lookaheadStatus != 0 && lookaheadStatus != row->fLookAhead.
- int32_t r = fText->getIndex();
- if (r > result) {
- lookaheadResult = r;
- lookaheadStatus = row->fLookAhead;
- lookaheadTagIdx = row->fTagIdx;
- }
- goto continueOn;
- }
-
- if (row->fAccepting != 0 && row->fLookAhead != 0) {
- // Lookahead match is completed. Set the result accordingly, but only
- // if no other rule has matched further in the mean time.
- if (lookaheadResult > result) {
- U_ASSERT(row->fAccepting == lookaheadStatus); // TODO: handle this case
- // of overlapping lookahead matches.
- result = lookaheadResult;
- fLastRuleStatusIndex = lookaheadTagIdx;
- lookaheadStatus = 0;
- }
- goto continueOn;
- }
-
-continueOn:
- if (state == STOP_STATE) {
- break;
- }
-
- // then advance one character backwards
- c = fText->previous32();
- }
-
- // Note: the result postion isn't what is returned to the user by previous(),
- // but where the implementation of previous() turns around and
- // starts iterating forward again.
- if (c == CharacterIterator::DONE && fText->hasPrevious()==FALSE) {
- result = fText->startIndex();
- }
- fText->setIndex(result);
-
- return result;
-}
-
//-----------------------------------------------------------------------------------
//
@@ -1000,72 +1103,110 @@ continueOn:
//
//-----------------------------------------------------------------------------------
int32_t RuleBasedBreakIterator::handlePrevious(const RBBIStateTable *statetable) {
- if (fText == NULL || statetable == NULL) {
- return 0;
- }
- // break tag is no longer valid after icu switched to exact backwards
- // positioning.
+ int32_t state;
+ int16_t category = 0;
+ RBBIRunMode mode;
+ RBBIStateTableRow *row;
+ UChar32 c;
+ int32_t lookaheadStatus = 0;
+ int32_t result = 0;
+ int32_t initialPosition = 0;
+ int32_t lookaheadResult = 0;
+ UBool lookAheadHardBreak = (statetable->fFlags & RBBI_LOOKAHEAD_HARD_BREAK) != 0;
+
+ #ifdef RBBI_DEBUG
+ if (fTrace) {
+ RBBIDebugPuts("Handle Previous pos char state category");
+ }
+ #endif
+
+ // handlePrevious() never gets the rule status.
+ // Flag the status as invalid; if the user ever asks for status, we will need
+ // to back up, then re-find the break position using handleNext(), which does
+ // get the status value.
fLastStatusIndexValid = FALSE;
- if (statetable == NULL) {
- return fText->setToStart();
- }
+ fLastRuleStatusIndex = 0;
- int32_t state = START_STATE;
- int32_t category;
- UBool hasPassedStartText = !fText->hasPrevious();
- UChar32 c = fText->previous32();
- // previous character
- int32_t result = fText->getIndex();
- int32_t lookaheadStatus = 0;
- int32_t lookaheadResult = 0;
- UBool lookAheadHardBreak = (statetable->fFlags & RBBI_LOOKAHEAD_HARD_BREAK) != 0;
+ // if we're already at the start of the text, return DONE.
+ if (fText == NULL || fData == NULL || UTEXT_GETNATIVEINDEX(fText)==0) {
+ return BreakIterator::DONE;
+ }
- RBBIStateTableRow *row;
+ // Set up the starting char.
+ initialPosition = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ result = initialPosition;
+ c = UTEXT_PREVIOUS32(fText);
+ // Set the initial state for the state machine
+ state = START_STATE;
row = (RBBIStateTableRow *)
- (statetable->fTableData + (state * statetable->fRowLen));
- UTRIE_GET16(&fData->fTrie, c, category);
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- category &= ~0x4000;
+ (statetable->fTableData + (statetable->fRowLen * state));
+ category = 3;
+ mode = RBBI_RUN;
+ if (statetable->fFlags & RBBI_BOF_REQUIRED) {
+ category = 2;
+ mode = RBBI_START;
}
- if (fTrace) {
- RBBIDebugPuts("Handle Prev pos char state category");
- }
- // loop until we reach the beginning of the text or transition to state 0
+ // loop until we reach the start of the text or transition to state 0
+ //
for (;;) {
- if (hasPassedStartText) {
- // Ran off the beginning of text.
- if (*(int32_t *)fData->fHeader->fFormatVersion == 1) {
- // This is the old (ICU 3.2 and earlier) format data.
- // No explicit support for matching {eof}. Did have hack, though...
- if (row->fLookAhead != 0 && lookaheadResult == 0) {
- result = 0;
+ if (c == U_SENTINEL) {
+ // Reached end of input string.
+ if (mode == RBBI_END ||
+ *(int32_t *)fData->fHeader->fFormatVersion == 1 ) {
+ // We have already run the loop one last time with the
+ // character set to the psueudo {eof} value. Now it is time
+ // to unconditionally bail out.
+ // (Or we have an old format binary rule file that does not support {eof}.)
+ if (lookaheadResult < result) {
+ // We ran off the end of the string with a pending look-ahead match.
+ // Treat this as if the look-ahead condition had been met, and return
+ // the match at the / position from the look-ahead rule.
+ result = lookaheadResult;
+ lookaheadStatus = 0;
+ } else if (result == initialPosition) {
+ // Ran off start, no match found.
+ // move one index one (towards the start, since we are doing a previous())
+ utext_setNativeIndex(fText, initialPosition);
+ UTEXT_PREVIOUS32(fText); // TODO: shouldn't be necessary. We're already at beginning. Check.
}
break;
}
- // Newer data format, with support for {eof}.
- // end of input is hardwired by rule builder as category/column 1.
+ // Run the loop one last time with the fake end-of-input character category.
+ mode = RBBI_END;
category = 1;
- } else {
- // Not at {eof}.
- // look up the current character's category (the table column)
- UTRIE_GET16(&fData->fTrie, c, category);
}
- // Check the dictionary bit in the character's category.
- // Counter is only used by dictionary based iterators.
//
- if ((category & 0x4000) != 0) {
- fDictionaryCharCount++;
- category &= ~0x4000;
+ // Get the char category. An incoming category of 1 or 2 means that
+ // we are preset for doing the beginning or end of input, and
+ // that we shouldn't get a category from an actual text input character.
+ //
+ if (mode == RBBI_RUN) {
+ // look up the current character's character category, which tells us
+ // which column in the state table to look at.
+ // Note: the 16 in UTRIE_GET16 refers to the size of the data being returned,
+ // not the size of the character going in, which is a UChar32.
+ //
+ UTRIE_GET16(&fData->fTrie, c, category);
+
+ // Check the dictionary bit in the character's category.
+ // Counter is only used by dictionary based iterators (subclasses).
+ // Chars that need to be handled by a dictionary have a flag bit set
+ // in their category values.
+ //
+ if ((category & 0x4000) != 0) {
+ fDictionaryCharCount++;
+ // And off the dictionary flag bit.
+ category &= ~0x4000;
+ }
}
#ifdef RBBI_DEBUG
if (fTrace) {
- RBBIDebugPrintf(" %4d ", fText->getIndex());
+ RBBIDebugPrintf(" %4d ", (int32_t)utext_getNativeIndex(fText));
if (0x20<=c && c<0x7f) {
RBBIDebugPrintf("\"%c\" ", c);
} else {
@@ -1075,84 +1216,85 @@ int32_t RuleBasedBreakIterator::handlePrevious(const RBBIStateTable *statetable)
}
#endif
- // look up a state transition in the backwards state table
+ // State Transition - move machine to its next state
+ //
state = row->fNextState[category];
row = (RBBIStateTableRow *)
- (statetable->fTableData + (state * statetable->fRowLen));
+ (statetable->fTableData + (statetable->fRowLen * state));
if (row->fAccepting == -1) {
- // Match found, common case, could have lookahead so we move on to check it
- result = fText->getIndex();
+ // Match found, common case.
+ result = (int32_t)UTEXT_GETNATIVEINDEX(fText);
}
if (row->fLookAhead != 0) {
if (lookaheadStatus != 0
&& row->fAccepting == lookaheadStatus) {
- // Lookahead match is completed. Set the result accordingly, but only
- // if no other rule has matched further in the mean time.
+ // Lookahead match is completed.
result = lookaheadResult;
lookaheadStatus = 0;
- /// i think we have to back up to read the lookahead character again
- /// fText->setIndex(lookaheadResult);
- /// TODO: this is a simple hack since reverse rules only have simple
- /// lookahead rules that we can definitely break out from.
- /// we need to make the lookahead rules not chain eventually.
- /// return result;
- /// this is going to be the longest match again
-
- /// syn wee todo hard coded for line breaks stuff
- /// needs to provide a tag in rules to ensure a stop.
-
+ // TODO: make a standalone hard break in a rule work.
if (lookAheadHardBreak) {
- fText->setIndex(result);
+ utext_setNativeIndex(fText, result);
return result;
}
- fText->setIndex(result);
-
+ // Look-ahead completed, but other rules may match further. Continue on
+ // TODO: junk this feature? I don't think it's used anywhwere.
goto continueOn;
}
- int32_t r = fText->getIndex();
- lookaheadResult = r;
- lookaheadStatus = row->fLookAhead;
- goto continueOn;
- }
-
- // not lookahead
- if (row->fAccepting == 0) {
- // No match, nothing of interest happening, common case.
+ int32_t r = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ lookaheadResult = r;
+ lookaheadStatus = row->fLookAhead;
goto continueOn;
}
- // This is a plain (non-look-ahead) accepting state
- if (!lookAheadHardBreak) {
- lookaheadStatus = 0; // clear out any pending look-ahead matches.
- // But only if not doing the lookAheadHardBreak option,
- // which needs to force a break no matter what is going
- // on with the rest of the match, i.e. we can't abandon
- // a partially completed look-ahead match because some
- // other rule matched further than the '/' position
- // in the look-ahead match.
+ if (row->fAccepting != 0) {
+ // Because this is an accepting state, any in-progress look-ahead match
+ // is no longer relavant. Clear out the pending lookahead status.
+ lookaheadStatus = 0;
}
continueOn:
if (state == STOP_STATE) {
+ // This is the normal exit from the lookup state machine.
+ // We have advanced through the string until it is certain that no
+ // longer match is possible, no matter what characters follow.
break;
}
- if (hasPassedStartText) {
- break;
+ // Move (backwards) to the next character to process.
+ // If this is a beginning-of-input loop iteration, don't advance
+ // the input position. The next iteration will be processing the
+ // first real input character.
+ if (mode == RBBI_RUN) {
+ c = UTEXT_PREVIOUS32(fText);
+ } else {
+ if (mode == RBBI_START) {
+ mode = RBBI_RUN;
+ }
}
-
- // Advance one character backwards
- hasPassedStartText = !fText->hasPrevious();
- c = fText->previous32();
}
+ // The state machine is done. Check whether it found a match...
- fText->setIndex(result);
+ // If the iterator failed to advance in the match engine, force it ahead by one.
+ // (This really indicates a defect in the break rules. They should always match
+ // at least one character.)
+ if (result == initialPosition) {
+ utext_setNativeIndex(fText, initialPosition);
+ UTEXT_PREVIOUS32(fText);
+ result = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ }
+ // Leave the iterator at our result position.
+ utext_setNativeIndex(fText, result);
+ #ifdef RBBI_DEBUG
+ if (fTrace) {
+ RBBIDebugPrintf("result = %d\n\n", result);
+ }
+ #endif
return result;
}
@@ -1160,8 +1302,13 @@ continueOn:
void
RuleBasedBreakIterator::reset()
{
- // Base-class version of this function is a no-op.
- // Subclasses may override with their own reset behavior.
+ if (fCachedBreakPositions) {
+ uprv_free(fCachedBreakPositions);
+ }
+ fCachedBreakPositions = NULL;
+ fNumCachedBreakPositions = 0;
+ fDictionaryCharCount = 0;
+ fPositionInCache = 0;
}
@@ -1182,7 +1329,7 @@ RuleBasedBreakIterator::reset()
void RuleBasedBreakIterator::makeRuleStatusValid() {
if (fLastStatusIndexValid == FALSE) {
// No cached status is available.
- if (fText == NULL || current() == fText->startIndex()) {
+ if (fText == NULL || current() == 0) {
// At start of text, or there is no text. Status is always zero.
fLastRuleStatusIndex = 0;
fLastStatusIndexValid = TRUE;
@@ -1190,6 +1337,9 @@ void RuleBasedBreakIterator::makeRuleStatusValid() {
// Not at start of text. Find status the tedious way.
int32_t pa = current();
previous();
+ if (fNumCachedBreakPositions > 0) {
+ reset(); // Blow off the dictionary cache
+ }
int32_t pb = next();
if (pa != pb) {
// note: the if (pa != pb) test is here only to eliminate warnings for
@@ -1198,7 +1348,6 @@ void RuleBasedBreakIterator::makeRuleStatusValid() {
}
}
}
- U_ASSERT(fLastStatusIndexValid == TRUE);
U_ASSERT(fLastRuleStatusIndex >= 0 && fLastRuleStatusIndex < fData->fStatusMaxIdx);
}
@@ -1308,16 +1457,20 @@ BreakIterator * RuleBasedBreakIterator::createBufferClone(void *stackBuffer,
buf += offsetUp;
}
if (s < sizeof(RuleBasedBreakIterator)) {
- buf = (char *) new RuleBasedBreakIterator;
- if (buf == 0) {
+ // Not enough room in the caller-supplied buffer.
+ // Do a plain-vanilla heap based clone and return that, along with
+ // a warning that the clone was allocated.
+ RuleBasedBreakIterator *clonedBI = new RuleBasedBreakIterator(*this);
+ if (clonedBI == 0) {
status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ } else {
+ status = U_SAFECLONE_ALLOCATED_WARNING;
}
- status = U_SAFECLONE_ALLOCATED_WARNING;
+ return clonedBI;
}
//
- // Clone the object.
+ // Clone the source BI into the caller-supplied buffer.
// TODO: using an overloaded operator new to directly initialize the
// copy in the user's buffer would be better, but it doesn't seem
// to get along with namespaces. Investigate why.
@@ -1328,17 +1481,15 @@ BreakIterator * RuleBasedBreakIterator::createBufferClone(void *stackBuffer,
//
RuleBasedBreakIterator localIter; // Empty break iterator, source for memcpy
RuleBasedBreakIterator *clone = (RuleBasedBreakIterator *)buf;
- uprv_memcpy(clone, &localIter, sizeof(RuleBasedBreakIterator)); // clone = empty, but initialized, iterator.
- *clone = *this; // clone = the real one we want.
- if (status != U_SAFECLONE_ALLOCATED_WARNING) {
- clone->fBufferClone = TRUE;
- }
+ uprv_memcpy(clone, &localIter, sizeof(RuleBasedBreakIterator)); // init C++ gorp, BreakIterator base class part
+ clone->init(); // Init RuleBasedBreakIterator part, (user default constructor)
+ *clone = *this; // clone = the real BI we want.
+ clone->fBufferClone = TRUE; // Flag to prevent deleting storage on close (From C code)
return clone;
}
-
//-------------------------------------------------------------------------------
//
// isDictionaryChar Return true if the category lookup for this char
@@ -1349,257 +1500,330 @@ BreakIterator * RuleBasedBreakIterator::createBufferClone(void *stackBuffer,
// break iterators.
//
//-------------------------------------------------------------------------------
-UBool RuleBasedBreakIterator::isDictionaryChar(UChar32 c) {
+/*UBool RuleBasedBreakIterator::isDictionaryChar(UChar32 c) {
if (fData == NULL) {
return FALSE;
}
uint16_t category;
UTRIE_GET16(&fData->fTrie, c, category);
return (category & 0x4000) != 0;
-}
+}*/
//-------------------------------------------------------------------------------
//
-// UText functions As a temporary implementation, create a type of CharacterIterator
-// that works over UText, and let the RBBI engine continue to
-// work on CharacterIterator, which it always has.
-//
-// The permanent solution is to rework the RBBI engine to use
-// UText directly, which will be more efficient for all input
-// sources.
-//
-// This CharacterIterator implementation over UText is not complete,
-// it has only what is needed for RBBI, and is not intended
-// to ever become public.
+// checkDictionary This function handles all processing of characters in
+// the "dictionary" set. It will determine the appropriate
+// course of action, and possibly set up a cache in the
+// process.
//
//-------------------------------------------------------------------------------
+int32_t RuleBasedBreakIterator::checkDictionary(int32_t startPos,
+ int32_t endPos,
+ UBool reverse) {
+ // Reset the old break cache first.
+ uint32_t dictionaryCount = fDictionaryCharCount;
+ reset();
-class CharacterIteratorUT: public CharacterIterator {
-public:
- CharacterIteratorUT(UText *ut);
- virtual ~CharacterIteratorUT();
-
- virtual CharacterIterator *clone() const;
- virtual UBool operator==(const ForwardCharacterIterator& that) const;
- virtual UChar setIndex(int32_t position);
- virtual UChar32 previous32(void);
- virtual UChar32 next32(void);
- virtual UBool hasNext();
- virtual UChar32 current32(void) const;
- virtual UBool hasPrevious();
- virtual int32_t move(int32_t delta, EOrigin origin);
- static UClassID getStaticClassID(void);
- virtual UClassID getDynamicClassID(void) const;
-
- UText *fUText;
- virtual void resetTo(const UText *ut, UErrorCode *status);
-
-private:
- CharacterIteratorUT();
-
- // The following functions are not needed by RBBI,
- // but are pure virtual in CharacterIterator, so must be defined.
- // Only stubs are provided in this implementation.
- virtual int32_t hashCode(void) const {U_ASSERT(FALSE); return 0;};
- virtual UChar nextPostInc(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar32 next32PostInc(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar first(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar32 first32(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar last(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar32 last32(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar32 setIndex32(int32_t) {U_ASSERT(FALSE); return 0;};
- virtual UChar current(void) const {U_ASSERT(FALSE); return 0;};
- virtual UChar next(void) {U_ASSERT(FALSE); return 0;};
- virtual UChar previous(void) {U_ASSERT(FALSE); return 0;};
- virtual int32_t move32(int32_t, EOrigin) {U_ASSERT(FALSE); return 0;};
- virtual void getText(UnicodeString &) {U_ASSERT(FALSE);};
-};
-
-
-
-//
-// The following fields are inherited from CharacterIterator.
-// This implementation __MUST__ keep them current because of non-virtual inline
-// functions defined in CharacterIterator.
-// int32_t textLength; // length of the text.
-// int32_t pos; // current index position
-// int32_t begin; // starting index. Always 0 for us.
-// int32_t end; // ending index
-//
-// CharacterIterator was designed assuming that utf-16 indexing would be used,
-// but native indexing will pass through OK. This partial implementation only
-// provides the '32' flavored code point access, not UChar access.
-//
+ if (dictionaryCount <= 1 || (endPos - startPos) <= 1) {
+ return (reverse ? startPos : endPos);
+ }
+
+ // Starting from the starting point, scan towards the proposed result,
+ // looking for the first dictionary character (which may be the one
+ // we're on, if we're starting in the middle of a range).
+ utext_setNativeIndex(fText, reverse ? endPos : startPos);
+ if (reverse) {
+ UTEXT_PREVIOUS32(fText);
+ }
+
+ int32_t rangeStart = startPos;
+ int32_t rangeEnd = endPos;
-UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CharacterIteratorUT)
+ uint16_t category;
+ int32_t current;
+ UErrorCode status = U_ZERO_ERROR;
+ UStack breaks(status);
+ int32_t foundBreakCount = 0;
+ UChar32 c = utext_current32(fText);
-CharacterIteratorUT::CharacterIteratorUT(UText *ut) {
- UErrorCode status = U_ZERO_ERROR;
- fUText = utext_clone(NULL, ut, FALSE, &status);
+ UTRIE_GET16(&fData->fTrie, c, category);
- // Set the inherited CharacterItertor fields
- textLength = utext_nativeLength(ut);
- pos = 0;
- begin = 0;
- end = textLength;
-}
-
-CharacterIteratorUT::CharacterIteratorUT() {
- fUText = NULL;
- textLength = 0;
- pos = 0;
- begin = 0;
- end = 0;
-}
+ // Is the character we're starting on a dictionary character? If so, we
+ // need to back up to include the entire run; otherwise the results of
+ // the break algorithm will differ depending on where we start. Since
+ // the result is cached and there is typically a non-dictionary break
+ // within a small number of words, there should be little performance impact.
+ if (category & 0x4000) {
+ if (reverse) {
+ do {
+ utext_next32(fText); // TODO: recast to work directly with postincrement.
+ c = utext_current32(fText);
+ UTRIE_GET16(&fData->fTrie, c, category);
+ } while (c != U_SENTINEL && (category & 0x4000));
+ // Back up to the last dictionary character
+ rangeEnd = (int32_t)UTEXT_GETNATIVEINDEX(fText);
+ if (c == U_SENTINEL) {
+ // c = fText->last32();
+ // TODO: why was this if needed?
+ c = UTEXT_PREVIOUS32(fText);
+ }
+ else {
+ c = UTEXT_PREVIOUS32(fText);
+ }
+ }
+ else {
+ do {
+ c = UTEXT_PREVIOUS32(fText);
+ UTRIE_GET16(&fData->fTrie, c, category);
+ }
+ while (c != U_SENTINEL && (category & 0x4000));
+ // Back up to the last dictionary character
+ if (c == U_SENTINEL) {
+ // c = fText->first32();
+ c = utext_current32(fText);
+ }
+ else {
+ utext_next32(fText);
+ c = utext_current32(fText);
+ }
+ rangeStart = (int32_t)UTEXT_GETNATIVEINDEX(fText);;
+ }
+ UTRIE_GET16(&fData->fTrie, c, category);
+ }
+
+ // Loop through the text, looking for ranges of dictionary characters.
+ // For each span, find the appropriate break engine, and ask it to find
+ // any breaks within the span.
+ while(U_SUCCESS(status)) {
+ if (reverse) {
+ while((current = (int32_t)UTEXT_GETNATIVEINDEX(fText)) > rangeStart && (category & 0x4000) == 0) {
+ c = UTEXT_PREVIOUS32(fText);
+ UTRIE_GET16(&fData->fTrie, c, category);
+ }
+ if (current <= rangeStart) {
+ break;
+ }
+ }
+ else {
+ while((current = (int32_t)UTEXT_GETNATIVEINDEX(fText)) < rangeEnd && (category & 0x4000) == 0) {
+ utext_next32(fText); // TODO: tweak for post-increment operation
+ c = utext_current32(fText);
+ UTRIE_GET16(&fData->fTrie, c, category);
+ }
+ if (current >= rangeEnd) {
+ break;
+ }
+ }
+
+ // We now have a dictionary character. Get the appropriate language object
+ // to deal with it.
+ const LanguageBreakEngine *lbe = getLanguageBreakEngine(c);
+
+ // Ask the language object if there are any breaks. It will leave the text
+ // pointer on the other side of its range, ready to search for the next one.
+ if (lbe != NULL) {
+ foundBreakCount += lbe->findBreaks(fText, rangeStart, rangeEnd, reverse, fBreakType, breaks);
+ }
+
+ // Reload the loop variables for the next go-round
+ c = utext_current32(fText);
+ UTRIE_GET16(&fData->fTrie, c, category);
+ }
+
+ // If we found breaks, build a new break cache. The first and last entries must
+ // be the original starting and ending position.
+ if (foundBreakCount > 0) {
+ int32_t totalBreaks = foundBreakCount;
+ if (startPos < breaks.elementAti(0)) {
+ totalBreaks += 1;
+ }
+ if (endPos > breaks.peeki()) {
+ totalBreaks += 1;
+ }
+ fCachedBreakPositions = (int32_t *)uprv_malloc(totalBreaks * sizeof(int32_t));
+ if (fCachedBreakPositions != NULL) {
+ int32_t out = 0;
+ fNumCachedBreakPositions = totalBreaks;
+ if (startPos < breaks.elementAti(0)) {
+ fCachedBreakPositions[out++] = startPos;
+ }
+ for (int32_t i = 0; i < foundBreakCount; ++i) {
+ fCachedBreakPositions[out++] = breaks.elementAti(i);
+ }
+ if (endPos > fCachedBreakPositions[out-1]) {
+ fCachedBreakPositions[out] = endPos;
+ }
+ // If there are breaks, then by definition, we are replacing the original
+ // proposed break by one of the breaks we found. Use following() and
+ // preceding() to do the work. They should never recurse in this case.
+ if (reverse) {
+ return preceding(endPos - 1);
+ }
+ else {
+ return following(startPos);
+ }
+ }
+ // If the allocation failed, just fall through to the "no breaks found" case.
+ }
-CharacterIteratorUT::~CharacterIteratorUT() {
- utext_close(fUText);
+ // If we get here, there were no language-based breaks. As a result, the
+ // text pointer should be back to where it started, but set it just to
+ // make sure.
+ utext_setNativeIndex(fText, reverse ? startPos : endPos);
+ return (reverse ? startPos : endPos);
}
+static UStack *gLanguageBreakFactories = NULL;
-CharacterIterator *CharacterIteratorUT::clone() const {
- UErrorCode status = U_ZERO_ERROR;
- CharacterIteratorUT *result = new CharacterIteratorUT();
- result->fUText = utext_clone(NULL, fUText, TRUE, &status);
- if (U_SUCCESS(status)) {
- result->textLength = utext_nativeLength(fUText);
- result->pos = 0;
- result->begin = 0;
- result->end = textLength;
- }
- return result;
-}
+U_NAMESPACE_END
-UBool CharacterIteratorUT::operator==(const ForwardCharacterIterator& that) const {
- if (this->getDynamicClassID() != that.getDynamicClassID()) {
- return FALSE;
- }
- const CharacterIteratorUT *realThat = (const CharacterIteratorUT *)&that;
- UBool result = this->fUText->context == realThat->fUText->context;
- return result;
-}
+// defined in ucln_cmn.h
-UChar CharacterIteratorUT::setIndex(int32_t position) {
- pos = position;
- if (pos < 0) {
- pos = 0;
- } else if (pos > end) {
- pos = end;
+/**
+ * Release all static memory held by breakiterator.
+ */
+U_CDECL_BEGIN
+static UBool U_CALLCONV breakiterator_cleanup_dict(void) {
+ if (gLanguageBreakFactories) {
+ delete gLanguageBreakFactories;
+ gLanguageBreakFactories = NULL;
}
- utext_setNativeIndex(fUText, pos);
- pos = utext_getNativeIndex(fUText); // because utext snaps to code point boundary.
- return 0x0000ffff; // RBBI doesn't use return value, and UText can't return a UChar easily.
+ return TRUE;
}
+U_CDECL_END
-UChar32 CharacterIteratorUT::previous32(void) {
- UChar32 result = UTEXT_PREVIOUS32(fUText);
- pos = utext_getNativeIndex(fUText); // TODO: maybe optimize common case?
- if (result < 0) {
- result = 0x0000ffff;
- }
- return result;
+U_CDECL_BEGIN
+static void U_CALLCONV _deleteFactory(void *obj) {
+ delete (LanguageBreakFactory *) obj;
}
+U_CDECL_END
+U_NAMESPACE_BEGIN
-UChar32 CharacterIteratorUT::next32(void) {
- // TODO: optimize.
- UTEXT_NEXT32(fUText);
- pos = utext_getNativeIndex(fUText);
- UChar32 result = UTEXT_NEXT32(fUText);
- if (result < 0) {
- result = 0x0000ffff;
- } else {
- UTEXT_PREVIOUS32(fUText);
+static const LanguageBreakEngine*
+getLanguageBreakEngineFromFactory(UChar32 c, int32_t breakType)
+{
+ UBool needsInit;
+ UErrorCode status = U_ZERO_ERROR;
+ umtx_lock(NULL);
+ needsInit = (UBool)(gLanguageBreakFactories == NULL);
+ umtx_unlock(NULL);
+
+ if (needsInit) {
+ UStack *factories = new UStack(_deleteFactory, NULL, status);
+ if (U_SUCCESS(status)) {
+ ICULanguageBreakFactory *builtIn = new ICULanguageBreakFactory(status);
+ factories->push(builtIn, status);
+#ifdef U_LOCAL_SERVICE_HOOK
+ LanguageBreakFactory *extra = (LanguageBreakFactory *)uprv_svc_hook("languageBreakFactory", &status);
+ if (extra != NULL) {
+ factories->push(extra, status);
+ }
+#endif
+ }
+ umtx_lock(NULL);
+ if (gLanguageBreakFactories == NULL) {
+ gLanguageBreakFactories = factories;
+ factories = NULL;
+ ucln_common_registerCleanup(UCLN_COMMON_BREAKITERATOR_DICT, breakiterator_cleanup_dict);
+ }
+ umtx_unlock(NULL);
+ delete factories;
}
- return result;
-}
-
-UBool CharacterIteratorUT::hasNext() {
- // What would really be best for RBBI is a hasNext32()
- UBool result = TRUE;
- if (pos >= end) {
- result = FALSE;
+
+ if (gLanguageBreakFactories == NULL) {
+ return NULL;
}
- return result;
-}
-
-UChar32 CharacterIteratorUT::current32(void) const {
- UChar32 result = utext_current32(fUText);
- if (result < 0) {
- result = 0x0000ffff;
+
+ int32_t i = gLanguageBreakFactories->size();
+ const LanguageBreakEngine *lbe = NULL;
+ while (--i >= 0) {
+ LanguageBreakFactory *factory = (LanguageBreakFactory *)(gLanguageBreakFactories->elementAt(i));
+ lbe = factory->getEngineFor(c, breakType);
+ if (lbe != NULL) {
+ break;
+ }
}
- return result;
+ return lbe;
}
-UBool CharacterIteratorUT::hasPrevious() {
- UBool result = pos > 0;
- return result;
-}
-int32_t CharacterIteratorUT::move(int32_t delta, EOrigin origin) {
- // only needed for the inherited inline implementation of setToStart().
- int32_t result = pos;
- switch (origin) {
-case kStart:
- result = delta;
- break;
-case kCurrent:
- result = pos + delta;
- break;
-case kEnd:
- result = end + delta;
- break;
-default:
- U_ASSERT(FALSE);
- }
- utext_setNativeIndex(fUText, result);
- pos = utext_getNativeIndex(fUText); // align to cp boundary
- return result;
+//-------------------------------------------------------------------------------
+//
+// getLanguageBreakEngine Find an appropriate LanguageBreakEngine for the
+// the characer c.
+//
+//-------------------------------------------------------------------------------
+const LanguageBreakEngine *
+RuleBasedBreakIterator::getLanguageBreakEngine(UChar32 c) {
+ const LanguageBreakEngine *lbe = NULL;
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (fLanguageBreakEngines == NULL) {
+ fLanguageBreakEngines = new UStack(status);
+ if (U_FAILURE(status)) {
+ delete fLanguageBreakEngines;
+ fLanguageBreakEngines = 0;
+ return NULL;
+ }
+ }
+
+ int32_t i = fLanguageBreakEngines->size();
+ while (--i >= 0) {
+ lbe = (const LanguageBreakEngine *)(fLanguageBreakEngines->elementAt(i));
+ if (lbe->handles(c, fBreakType)) {
+ return lbe;
+ }
+ }
+
+ // No existing dictionary took the character. See if a factory wants to
+ // give us a new LanguageBreakEngine for this character.
+ lbe = getLanguageBreakEngineFromFactory(c, fBreakType);
+
+ // If we got one, use it and push it on our stack.
+ if (lbe != NULL) {
+ fLanguageBreakEngines->push((void *)lbe, status);
+ // Even if we can't remember it, we can keep looking it up, so
+ // return it even if the push fails.
+ return lbe;
+ }
+
+ // No engine is forthcoming for this character. Add it to the
+ // reject set. Create the reject break engine if needed.
+ if (fUnhandledBreakEngine == NULL) {
+ fUnhandledBreakEngine = new UnhandledEngine(status);
+ if (U_SUCCESS(status) && fUnhandledBreakEngine == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ // Put it last so that scripts for which we have an engine get tried
+ // first.
+ fLanguageBreakEngines->insertElementAt(fUnhandledBreakEngine, 0, status);
+ // If we can't insert it, or creation failed, get rid of it
+ if (U_FAILURE(status)) {
+ delete fUnhandledBreakEngine;
+ fUnhandledBreakEngine = 0;
+ return NULL;
+ }
+ }
+
+ // Tell the reject engine about the character; at its discretion, it may
+ // add more than just the one character.
+ fUnhandledBreakEngine->handleCharacter(c, fBreakType);
+
+ return fUnhandledBreakEngine;
}
-void CharacterIteratorUT::resetTo(const UText *ut, UErrorCode *status) {
- // Reset this CharacterIteratorUT to use a new UText.
- fUText = utext_clone(fUText, ut, FALSE, status);
- utext_setNativeIndex(fUText, 0);
- textLength = utext_nativeLength(fUText);
- pos = 0;
- end = textLength;
-}
+/*int32_t RuleBasedBreakIterator::getBreakType() const {
+ return fBreakType;
+}*/
-void RuleBasedBreakIterator::setText(UText *ut, UErrorCode &status) {
- if (U_FAILURE(status)) {
- return;
- }
+void RuleBasedBreakIterator::setBreakType(int32_t type) {
+ fBreakType = type;
reset();
- if (fText != NULL &&
- fText->getDynamicClassID() == CharacterIteratorUT::getStaticClassID())
- {
- // The break iterator is already using a UText based character iterator.
- // Copy the new UText into the existing character iterator's UText.
- CharacterIteratorUT *utcr = (CharacterIteratorUT *)fText;
- utcr->resetTo(ut, &status);
- } else {
- delete fText;
- fText = new CharacterIteratorUT(ut);
- }
- this->first();
-}
-
-
-UText *RuleBasedBreakIterator::getUText(UText *fillIn, UErrorCode &status) const {
- UText *result = NULL;
- if (U_SUCCESS(status) && fText!=NULL &&
- fText->getDynamicClassID() == CharacterIteratorUT::getStaticClassID())
- {
- CharacterIteratorUT *utcr = (CharacterIteratorUT *)fText;
- result = utext_clone(fillIn, utcr->fUText, FALSE, &status);
- }
- return result;
}
-
U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/Build/source/libs/icu-xetex/common/rbbicst.pl b/Build/source/libs/icu-xetex/common/rbbicst.pl
index 704c52f0d08..98b06cbc27d 100644
--- a/Build/source/libs/icu-xetex/common/rbbicst.pl
+++ b/Build/source/libs/icu-xetex/common/rbbicst.pl
@@ -1,19 +1,20 @@
#**************************************************************************
-# Copyright (C) 2002-2004 International Business Machines Corporation *
+# Copyright (C) 2002-2005 International Business Machines Corporation *
# and others. All rights reserved. *
#**************************************************************************
#
# rbbicst Compile the RBBI rule paser state table data into initialized C data.
# Usage:
# cd icu/source/common
-# perl rbbicst.pl [-j] < rbbirpt.txt > rbbirpt.h
+# perl rbbicst.pl < rbbirpt.txt > rbbirpt.h
+# perl rbbicst.pl -j < rbbirpt.txt > RBBIRuleParseTable.java
#
# The output file, rbbrpt.h, is included by some of the .cpp rbbi
# implementation files. This perl script is NOT run as part
# of a normal ICU build. It is run by hand when needed, and the
# rbbirpt.h generated file is put back into cvs.
#
-# See rbbirpt.h for a description of the input format for this script.
+# See rbbirpt.txt for a description of the input format for this script.
#
if ($ARGV[0] eq "-j") {
@@ -106,9 +107,9 @@ line_loop: while (<>) {
#
# do the 'n' flag
#
- $state_flag[$num_states] = "FALSE";
+ $state_flag[$num_states] = $javaOutput? "false" : "FALSE";
if ($fields[0] eq "n") {
- $state_flag[$num_states] = "TRUE";
+ $state_flag[$num_states] = $javaOutput? "true": "TRUE";
shift @fields;
}
@@ -197,6 +198,33 @@ for ($state=1; $state<$num_states; $state++) {
die if ($errors>0);
+#
+# Assign numbers to each of the character classes classes used.
+# Sets are numbered from 128 - 250
+# The values 0-127 in the state table are used for matching
+# individual ASCII characters (the only thing that can appear in the rules.)
+# The "set" names appearing in the code below (default, etc.) need special
+# handling because they do not correspond to a normal set of characters,
+# but trigger special handling by code in the state machine.
+#
+$i = 128;
+foreach $setName (sort keys %charClasses) {
+ if ($setName eq "default") {
+ $charClasses{$setName} = 255;}
+ elsif ($setName eq "escaped") {
+ $charClasses{$setName} = 254;}
+ elsif ($setName eq "escapedP") {
+ $charClasses{$setName} = 253;}
+ elsif ($setName eq "eof") {
+ $charClasses{$setName} = 252;}
+ else {
+ # Normal (single) character class. Number them.
+ $charClasses{$setName} = $i;
+ $i++;
+ }
+}
+
+
my ($sec, $min, $hour, , $day, $mon, $year, $wday, $yday, $isdst) = localtime;
$year += 1900;
@@ -216,59 +244,87 @@ if ($javaOutput) {
print " * rule parser.\n";
print " * It is generated by the Perl script \"rbbicst.pl\" from\n";
print " * the rule parser state definitions file \"rbbirpt.txt\".\n";
+ print " * \@internal \n";
print " *\n";
print " */\n";
- print "public class RuleBasedBreakIteratorStateTable\n";
+ print "class RBBIRuleParseTable\n";
print "{\n";
- #
+ #
# Emit the constants for the actions to be performed.
#
$n = 1;
- foreach $act (keys %actions) {
- print " public static final int $act = $n;\n";
+ foreach $act (sort keys %actions) {
+ print " static final short $act = $n;\n";
$n++;
}
print " \n";
+
#
- # emit the state transition table
+ # Emit constants for char class names
#
- print " public static final String[] gRuleParseStateTable = {\n";
- printf(" \"\\u%04.4x\\u%04.4x\\u%04.4x\\u%04.4x\\u%04.4x\"\n", doNOP, 0, 0, 0, 1);
+ foreach $setName (sort keys %charClasses) {
+ print " static final short kRuleSet_$setName = $charClasses{$setName};\n";
+ }
+ print "\n\n";
+
+
+ print " static class RBBIRuleTableElement { \n";
+ print " short fAction; \n";
+ print " short fCharClass; \n";
+ print " short fNextState; \n";
+ print " short fPushState; \n";
+ print " boolean fNextChar; \n";
+ print " String fStateName; \n";
+ print " RBBIRuleTableElement(short a, int cc, int ns, int ps, boolean nc, String sn) { \n";
+ print " fAction = a; \n";
+ print " fCharClass = (short)cc; \n";
+ print " fNextState = (short)ns; \n";
+ print " fPushState = (short)ps; \n";
+ print " fNextChar = nc; \n";
+ print " fStateName = sn; \n";
+ print " } \n";
+ print " }; \n";
+ print " \n";
+
+
+ print " static RBBIRuleTableElement[] gRuleParseStateTable = { \n ";
+ print " new RBBIRuleTableElement(doNOP, 0, 0,0, true, null ) // 0 \n"; #output the unused state 0.
for ($state=1; $state < $num_states; $state++) {
- printf(" , \"\\u%04.4x", $state_func_name[$state]);
- # print " , {$state_func_name[$state],";
+ print " , new RBBIRuleTableElement($state_func_name[$state],";
if ($state_literal_chars[$state] ne "") {
- printf("\\u%04.4x", $state_func_name[$state]);
+ $c = $state_literal_chars[$state];
+ print("'$c', ");
}else {
- printf("\\u%04.4x", $charClasses{$state_char_class[$state]});
+ print " $charClasses{$state_char_class[$state]},";
}
- printf("\\u%04.4x", $states{$state_dest_state[$state]});
-
+ print " $states{$state_dest_state[$state]},";
+
# The push-state field is optional. If omitted, fill field with a zero, which flags
# the state machine that there is no push state.
if ($state_push_state[$state] eq "") {
- print "\\u0000";
+ print "0, ";
} else {
- printf("\\u%04.4x", $states{$state_push_state[$state]});
+ print " $states{$state_push_state[$state]},";
}
- printf("\\u%04.4x", $state_flag[$state]);
-
- # For the first row of each state, append the state name.
- # Used for debugging only.
+ print " $state_flag[$state], ";
+
+ # if this is the first row of the table for this state, put out the state name.
if ($stateNames[$state] ne "") {
- printf("%-20s", $stateNames[$state]."\"");
+ print " \"$stateNames[$state]\") ";
} else {
- printf("%-20s", "\"");
+ print " null ) ";
}
-
- # Put out a C++ comment showing the number (index) of this state row,
- print " // $state ";
+
+ # Put out a comment showing the number (index) of this state row,
+ print " // $state ";
print "\n";
- };
- print " };\n";
- print "}\n";
+ }
+ print " };\n";
+
+ print "}; \n";
+
}
else
{
@@ -302,25 +358,10 @@ else
print "//\n";
print "// Character classes for RBBI rule scanning.\n";
print "//\n";
- $i = 128; # State Table values for Unicode char sets range from 128-250.
- # Sets "default", "escaped", etc. get special handling.
- # They have no corresponding UnicodeSet object in the state machine,
- # but are handled by special case code. So we emit no reference
- # to a UnicodeSet object to them here.
- foreach $setName (keys %charClasses) {
- if ($setName eq "default") {
- $charClasses{$setName} = 255;}
- elsif ($setName eq "escaped") {
- $charClasses{$setName} = 254;}
- elsif ($setName eq "escapedP") {
- $charClasses{$setName} = 253;}
- elsif ($setName eq "eof") {
- $charClasses{$setName} = 252;}
- else {
- # Normal character class. Fill in array with a ptr to the corresponding UnicodeSet in the state machine.
- print " static const uint8_t kRuleSet_$setName = $i;\n";
- $charClasses{$setName} = $i;
- $i++;
+ foreach $setName (sort keys %charClasses) {
+ if ($charClasses{$setName} < 250) {
+ # Normal character class.
+ print " static const uint8_t kRuleSet_$setName = $charClasses{$setName};\n";
}
}
print "\n\n";
@@ -329,7 +370,7 @@ else
# Emit the enum for the actions to be performed.
#
print "enum RBBI_RuleParseAction {\n";
- foreach $act (keys %actions) {
+ foreach $act (sort keys %actions) {
print " $act,\n";
}
print " rbbiLastAction};\n\n";
diff --git a/Build/source/libs/icu-xetex/common/rbbidata.cpp b/Build/source/libs/icu-xetex/common/rbbidata.cpp
index 3d039a011fc..360290bd584 100644
--- a/Build/source/libs/icu-xetex/common/rbbidata.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbidata.cpp
@@ -326,7 +326,8 @@ ubrk_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outD
//
// Prefight operation? Just return the size
//
- int32_t totalSize = headerSize + ds->readUInt32(rbbiDH->fLength);
+ int32_t breakDataLength = ds->readUInt32(rbbiDH->fLength);
+ int32_t totalSize = headerSize + breakDataLength;
if (length < 0) {
return totalSize;
}
@@ -334,15 +335,12 @@ ubrk_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outD
//
// Check that length passed in is consistent with length from RBBI data header.
//
- if (length > 0) {
- length -= headerSize;
- if ((uint32_t)length < ds->readUInt32(rbbiDH->fLength)) {
- udata_printError(ds, "ubrk_swap(): too few bytes (%d after ICU Data header) for break data.\n",
- length);
- *status=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
+ if (length < totalSize) {
+ udata_printError(ds, "ubrk_swap(): too few bytes (%d after ICU Data header) for break data.\n",
+ breakDataLength);
+ *status=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
}
- }
//
@@ -362,7 +360,7 @@ ubrk_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outD
// when originally created. Any unused space between items needs to be zero.
//
if (inBytes != outBytes) {
- uprv_memset(outBytes, 0, length);
+ uprv_memset(outBytes, 0, breakDataLength);
}
//
diff --git a/Build/source/libs/icu-xetex/common/rbbidata.h b/Build/source/libs/icu-xetex/common/rbbidata.h
index ceb7c1a8e6c..7ba1db05d65 100644
--- a/Build/source/libs/icu-xetex/common/rbbidata.h
+++ b/Build/source/libs/icu-xetex/common/rbbidata.h
@@ -131,7 +131,8 @@ struct RBBIStateTable {
};
typedef enum {
- RBBI_LOOKAHEAD_HARD_BREAK = 1
+ RBBI_LOOKAHEAD_HARD_BREAK = 1,
+ RBBI_BOF_REQUIRED = 2
} RBBIStateTableFlags;
diff --git a/Build/source/libs/icu-xetex/common/rbbinode.cpp b/Build/source/libs/icu-xetex/common/rbbinode.cpp
index b873f218631..af467b6d064 100644
--- a/Build/source/libs/icu-xetex/common/rbbinode.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbinode.cpp
@@ -1,6 +1,6 @@
/*
***************************************************************************
-* Copyright (C) 2002-2003 International Business Machines Corporation *
+* Copyright (C) 2002-2006 International Business Machines Corporation *
* and others. All rights reserved. *
***************************************************************************
*/
@@ -33,8 +33,9 @@
U_NAMESPACE_BEGIN
-int RBBINode::gLastSerial = 0;
-
+#ifdef RBBI_DEBUG
+static int gLastSerial = 0;
+#endif
//-------------------------------------------------------------------------
@@ -43,7 +44,9 @@ int RBBINode::gLastSerial = 0;
//
//-------------------------------------------------------------------------
RBBINode::RBBINode(NodeType t) : UMemory() {
+#ifdef RBBI_DEBUG
fSerialNum = ++gLastSerial;
+#endif
fType = t;
fParent = NULL;
fLeftChild = NULL;
@@ -69,7 +72,9 @@ RBBINode::RBBINode(NodeType t) : UMemory() {
RBBINode::RBBINode(const RBBINode &other) : UMemory(other) {
+#ifdef RBBI_DEBUG
fSerialNum = ++gLastSerial;
+#endif
fType = other.fType;
fParent = NULL;
fLeftChild = NULL;
diff --git a/Build/source/libs/icu-xetex/common/rbbinode.h b/Build/source/libs/icu-xetex/common/rbbinode.h
index 68286792946..0cbf6a71abe 100644
--- a/Build/source/libs/icu-xetex/common/rbbinode.h
+++ b/Build/source/libs/icu-xetex/common/rbbinode.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2001-2003, International Business Machines Corporation and
+ * Copyright (c) 2001-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -96,20 +96,15 @@ class RBBINode : public UMemory {
#ifdef RBBI_DEBUG
void printNode();
void printTree(UBool withHeading);
-#else
- // Do-nothing inline functions for non-debug builds. Can't make empty defines for member
- // functions - they won't compile at the call sites.
- int fakeField;
- #define printNode() fakeField=0;
- #define printTree(withHeading) fakeField=0;
#endif
private:
RBBINode &operator = (const RBBINode &other); // No defs.
UBool operator == (const RBBINode &other); // Private, so these functions won't accidently be used.
+#ifdef RBBI_DEBUG
int fSerialNum; // Debugging aids.
- static int gLastSerial;
+#endif
};
#ifdef RBBI_DEBUG
diff --git a/Build/source/libs/icu-xetex/common/rbbirb.h b/Build/source/libs/icu-xetex/common/rbbirb.h
index b39e3694524..d7a5383606c 100644
--- a/Build/source/libs/icu-xetex/common/rbbirb.h
+++ b/Build/source/libs/icu-xetex/common/rbbirb.h
@@ -1,7 +1,7 @@
//
// rbbirb.h
//
-// Copyright (C) 2002-2004, International Business Machines Corporation and others.
+// Copyright (C) 2002-2005, International Business Machines Corporation and others.
// All Rights Reserved.
//
// This file contains declarations for several classes from the
@@ -84,7 +84,7 @@ public:
#else
// A do-nothing inline function for non-debug builds. Member funcs can't be empty
// or the call sites won't compile.
- int fFakeField;
+ int32_t fFakeField;
#define rbbiSymtablePrint() fFakeField=0;
#endif
diff --git a/Build/source/libs/icu-xetex/common/rbbirpt.h b/Build/source/libs/icu-xetex/common/rbbirpt.h
index 3b6473d45ef..deea57b7add 100644
--- a/Build/source/libs/icu-xetex/common/rbbirpt.h
+++ b/Build/source/libs/icu-xetex/common/rbbirpt.h
@@ -6,7 +6,7 @@
// It is generated by the Perl script "rbbicst.pl" from
// the rule parser state definitions file "rbbirpt.txt".
//
-// Copyright (C) 2002-2004 International Business Machines Corporation
+// Copyright (C) 2002-2005 International Business Machines Corporation
// and others. All rights reserved.
//
//---------------------------------------------------------------------------------
@@ -18,44 +18,44 @@ U_NAMESPACE_BEGIN
// Character classes for RBBI rule scanning.
//
static const uint8_t kRuleSet_digit_char = 128;
- static const uint8_t kRuleSet_white_space = 129;
- static const uint8_t kRuleSet_rule_char = 130;
- static const uint8_t kRuleSet_name_start_char = 131;
- static const uint8_t kRuleSet_name_char = 132;
+ static const uint8_t kRuleSet_name_char = 129;
+ static const uint8_t kRuleSet_name_start_char = 130;
+ static const uint8_t kRuleSet_rule_char = 131;
+ static const uint8_t kRuleSet_white_space = 132;
enum RBBI_RuleParseAction {
+ doCheckVarDef,
+ doDotAny,
+ doEndAssign,
+ doEndOfRule,
+ doEndVariableName,
+ doExit,
+ doExprCatOperator,
+ doExprFinished,
doExprOrOperator,
+ doExprRParen,
+ doExprStart,
+ doLParen,
+ doNOP,
doOptionEnd,
- doRuleErrorAssignExpr,
- doTagValue,
- doEndAssign,
- doRuleError,
- doVariableNameExpectedErr,
+ doOptionStart,
+ doReverseDir,
doRuleChar,
- doLParen,
+ doRuleError,
+ doRuleErrorAssignExpr,
+ doScanUnicodeSet,
doSlash,
+ doStartAssign,
doStartTagValue,
- doDotAny,
- doExprFinished,
- doScanUnicodeSet,
- doExprRParen,
doStartVariableName,
- doTagExpectedError,
doTagDigit,
- doUnaryOpStar,
- doEndVariableName,
- doNOP,
- doUnaryOpQuestion,
- doExit,
- doStartAssign,
- doEndOfRule,
+ doTagExpectedError,
+ doTagValue,
doUnaryOpPlus,
- doExprStart,
- doOptionStart,
- doExprCatOperator,
- doReverseDir,
- doCheckVarDef,
+ doUnaryOpQuestion,
+ doUnaryOpStar,
+ doVariableNameExpectedErr,
rbbiLastAction};
//-------------------------------------------------------------------------------
@@ -76,42 +76,42 @@ struct RBBIRuleTableEl {
static const struct RBBIRuleTableEl gRuleParseStateTable[] = {
{doNOP, 0, 0, 0, TRUE}
, {doExprStart, 254, 21, 8, FALSE} // 1 start
- , {doNOP, 129, 1,0, TRUE} // 2
+ , {doNOP, 132, 1,0, TRUE} // 2
, {doExprStart, 36 /* $ */, 80, 90, FALSE} // 3
, {doNOP, 33 /* ! */, 11,0, TRUE} // 4
, {doNOP, 59 /* ; */, 1,0, TRUE} // 5
, {doNOP, 252, 0,0, FALSE} // 6
, {doExprStart, 255, 21, 8, FALSE} // 7
, {doEndOfRule, 59 /* ; */, 1,0, TRUE} // 8 break-rule-end
- , {doNOP, 129, 8,0, TRUE} // 9
+ , {doNOP, 132, 8,0, TRUE} // 9
, {doRuleError, 255, 95,0, FALSE} // 10
, {doNOP, 33 /* ! */, 13,0, TRUE} // 11 rev-option
, {doReverseDir, 255, 20, 8, FALSE} // 12
- , {doOptionStart, 131, 15,0, TRUE} // 13 option-scan1
+ , {doOptionStart, 130, 15,0, TRUE} // 13 option-scan1
, {doRuleError, 255, 95,0, FALSE} // 14
- , {doNOP, 132, 15,0, TRUE} // 15 option-scan2
+ , {doNOP, 129, 15,0, TRUE} // 15 option-scan2
, {doOptionEnd, 255, 17,0, FALSE} // 16
, {doNOP, 59 /* ; */, 1,0, TRUE} // 17 option-scan3
- , {doNOP, 129, 17,0, TRUE} // 18
+ , {doNOP, 132, 17,0, TRUE} // 18
, {doRuleError, 255, 95,0, FALSE} // 19
, {doExprStart, 255, 21, 8, FALSE} // 20 reverse-rule
, {doRuleChar, 254, 30,0, TRUE} // 21 term
- , {doNOP, 129, 21,0, TRUE} // 22
- , {doRuleChar, 130, 30,0, TRUE} // 23
+ , {doNOP, 132, 21,0, TRUE} // 22
+ , {doRuleChar, 131, 30,0, TRUE} // 23
, {doNOP, 91 /* [ */, 86, 30, FALSE} // 24
, {doLParen, 40 /* ( */, 21, 30, TRUE} // 25
, {doNOP, 36 /* $ */, 80, 29, FALSE} // 26
, {doDotAny, 46 /* . */, 30,0, TRUE} // 27
, {doRuleError, 255, 95,0, FALSE} // 28
, {doCheckVarDef, 255, 30,0, FALSE} // 29 term-var-ref
- , {doNOP, 129, 30,0, TRUE} // 30 expr-mod
+ , {doNOP, 132, 30,0, TRUE} // 30 expr-mod
, {doUnaryOpStar, 42 /* * */, 35,0, TRUE} // 31
, {doUnaryOpPlus, 43 /* + */, 35,0, TRUE} // 32
, {doUnaryOpQuestion, 63 /* ? */, 35,0, TRUE} // 33
, {doNOP, 255, 35,0, FALSE} // 34
, {doExprCatOperator, 254, 21,0, FALSE} // 35 expr-cont
- , {doNOP, 129, 35,0, TRUE} // 36
- , {doExprCatOperator, 130, 21,0, FALSE} // 37
+ , {doNOP, 132, 35,0, TRUE} // 36
+ , {doExprCatOperator, 131, 21,0, FALSE} // 37
, {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 38
, {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 39
, {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 40
@@ -124,8 +124,8 @@ static const struct RBBIRuleTableEl gRuleParseStateTable[] = {
, {doSlash, 47 /* / */, 49,0, TRUE} // 47 look-ahead
, {doNOP, 255, 95,0, FALSE} // 48
, {doExprCatOperator, 254, 21,0, FALSE} // 49 expr-cont-no-slash
- , {doNOP, 129, 35,0, TRUE} // 50
- , {doExprCatOperator, 130, 21,0, FALSE} // 51
+ , {doNOP, 132, 35,0, TRUE} // 50
+ , {doExprCatOperator, 131, 21,0, FALSE} // 51
, {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 52
, {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 53
, {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 54
@@ -133,19 +133,19 @@ static const struct RBBIRuleTableEl gRuleParseStateTable[] = {
, {doExprOrOperator, 124 /* | */, 21,0, TRUE} // 56
, {doExprRParen, 41 /* ) */, 255,0, TRUE} // 57
, {doExprFinished, 255, 255,0, FALSE} // 58
- , {doNOP, 129, 59,0, TRUE} // 59 tag-open
+ , {doNOP, 132, 59,0, TRUE} // 59 tag-open
, {doStartTagValue, 128, 62,0, FALSE} // 60
, {doTagExpectedError, 255, 95,0, FALSE} // 61
- , {doNOP, 129, 66,0, TRUE} // 62 tag-value
+ , {doNOP, 132, 66,0, TRUE} // 62 tag-value
, {doNOP, 125 /* } */, 66,0, FALSE} // 63
, {doTagDigit, 128, 62,0, TRUE} // 64
, {doTagExpectedError, 255, 95,0, FALSE} // 65
- , {doNOP, 129, 66,0, TRUE} // 66 tag-close
+ , {doNOP, 132, 66,0, TRUE} // 66 tag-close
, {doTagValue, 125 /* } */, 69,0, TRUE} // 67
, {doTagExpectedError, 255, 95,0, FALSE} // 68
, {doExprCatOperator, 254, 21,0, FALSE} // 69 expr-cont-no-tag
- , {doNOP, 129, 69,0, TRUE} // 70
- , {doExprCatOperator, 130, 21,0, FALSE} // 71
+ , {doNOP, 132, 69,0, TRUE} // 70
+ , {doExprCatOperator, 131, 21,0, FALSE} // 71
, {doExprCatOperator, 91 /* [ */, 21,0, FALSE} // 72
, {doExprCatOperator, 40 /* ( */, 21,0, FALSE} // 73
, {doExprCatOperator, 36 /* $ */, 21,0, FALSE} // 74
@@ -156,15 +156,15 @@ static const struct RBBIRuleTableEl gRuleParseStateTable[] = {
, {doExprFinished, 255, 255,0, FALSE} // 79
, {doStartVariableName, 36 /* $ */, 82,0, TRUE} // 80 scan-var-name
, {doNOP, 255, 95,0, FALSE} // 81
- , {doNOP, 131, 84,0, TRUE} // 82 scan-var-start
+ , {doNOP, 130, 84,0, TRUE} // 82 scan-var-start
, {doVariableNameExpectedErr, 255, 95,0, FALSE} // 83
- , {doNOP, 132, 84,0, TRUE} // 84 scan-var-body
+ , {doNOP, 129, 84,0, TRUE} // 84 scan-var-body
, {doEndVariableName, 255, 255,0, FALSE} // 85
, {doScanUnicodeSet, 91 /* [ */, 255,0, TRUE} // 86 scan-unicode-set
, {doScanUnicodeSet, 112 /* p */, 255,0, TRUE} // 87
, {doScanUnicodeSet, 80 /* P */, 255,0, TRUE} // 88
, {doNOP, 255, 95,0, FALSE} // 89
- , {doNOP, 129, 90,0, TRUE} // 90 assign-or-rule
+ , {doNOP, 132, 90,0, TRUE} // 90 assign-or-rule
, {doStartAssign, 61 /* = */, 21, 93, TRUE} // 91
, {doNOP, 255, 29, 8, FALSE} // 92
, {doEndAssign, 59 /* ; */, 1,0, TRUE} // 93 assign-end
diff --git a/Build/source/libs/icu-xetex/common/rbbiscan.cpp b/Build/source/libs/icu-xetex/common/rbbiscan.cpp
index dd50ec5a946..75c69f525e9 100644
--- a/Build/source/libs/icu-xetex/common/rbbiscan.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbiscan.cpp
@@ -2,7 +2,7 @@
//
// file: rbbiscan.cpp
//
-// Copyright (C) 2002-2005, International Business Machines Corporation and others.
+// Copyright (C) 2002-2006, International Business Machines Corporation and others.
// All Rights Reserved.
//
// This file contains the Rule Based Break Iterator Rule Builder functions for
@@ -142,7 +142,7 @@ RBBIRuleScanner::RBBIRuleScanner(RBBIRuleBuilder *rb)
}
fSymbolTable = new RBBISymbolTable(this, rb->fRules, *rb->fStatus);
- fSetTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, rb->fStatus);
+ fSetTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, rb->fStatus);
uhash_setValueDeleter(fSetTable, RBBISetTable_deleter);
}
@@ -289,13 +289,13 @@ UBool RBBIRuleScanner::doParseActions(EParseAction action)
// Make a symbol table entry for the $variableRef node.
fSymbolTable->addEntry(varRefNode->fText, varRefNode, *fRB->fStatus);
- if (U_FAILURE(*fRB->fStatus)) {
- // This is a round-about way to get the parse position set
- // so that duplicate symbols error messages include a line number.
- UErrorCode t = *fRB->fStatus;
- *fRB->fStatus = U_ZERO_ERROR;
- error(t);
- }
+ if (U_FAILURE(*fRB->fStatus)) {
+ // This is a round-about way to get the parse position set
+ // so that duplicate symbols error messages include a line number.
+ UErrorCode t = *fRB->fStatus;
+ *fRB->fStatus = U_ZERO_ERROR;
+ error(t);
+ }
// Clean up the stack.
delete startExprNode;
@@ -435,7 +435,6 @@ UBool RBBIRuleScanner::doParseActions(EParseAction action)
fRB->fRules.extractBetween(n->fFirstPos, n->fLastPos, n->fText);
break;
}
- break;
case doSlash:
// Scanned a '/', which identifies a look-ahead break position in a rule.
@@ -1149,7 +1148,7 @@ void RBBIRuleScanner::scanSet() {
// Verify that the set contains at least one code point.
//
- if (uset->charAt(0) == -1) {
+ if (uset->isEmpty()) {
// This set is empty.
// Make it an error, because it almost certainly is not what the user wanted.
// Also, avoids having to think about corner cases in the tree manipulation code
diff --git a/Build/source/libs/icu-xetex/common/rbbiscan.h b/Build/source/libs/icu-xetex/common/rbbiscan.h
index fff5d475996..89748318eee 100644
--- a/Build/source/libs/icu-xetex/common/rbbiscan.h
+++ b/Build/source/libs/icu-xetex/common/rbbiscan.h
@@ -1,7 +1,7 @@
//
// rbbiscan.h
//
-// Copyright (C) 2002-2003, International Business Machines Corporation and others.
+// Copyright (C) 2002-2005, International Business Machines Corporation and others.
// All Rights Reserved.
//
// This file contains declarations for class RBBIRuleScanner
@@ -102,8 +102,8 @@ private:
int32_t fNextIndex; // Index of the next character, which
// is the first character not yet scanned.
UBool fQuoteMode; // Scan is in a 'quoted region'
- int fLineNum; // Line number in input file.
- int fCharNum; // Char position within the line.
+ int32_t fLineNum; // Line number in input file.
+ int32_t fCharNum; // Char position within the line.
UChar32 fLastChar; // Previous char, needed to count CR-LF
// as a single line, not two.
@@ -116,12 +116,12 @@ private:
// parsing. index by p[state][char-class]
uint16_t fStack[kStackSize]; // State stack, holds state pushes
- int fStackPtr; // and pops as specified in the state
+ int32_t fStackPtr; // and pops as specified in the state
// transition rules.
RBBINode *fNodeStack[kStackSize]; // Node stack, holds nodes created
// during the parse of a rule
- int fNodeStackPtr;
+ int32_t fNodeStackPtr;
UBool fReverseRule; // True if the rule currently being scanned
diff --git a/Build/source/libs/icu-xetex/common/rbbisetb.cpp b/Build/source/libs/icu-xetex/common/rbbisetb.cpp
index eceffb6bac3..0bbe8e920ee 100644
--- a/Build/source/libs/icu-xetex/common/rbbisetb.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbisetb.cpp
@@ -94,6 +94,7 @@ RBBISetBuilder::RBBISetBuilder(RBBIRuleBuilder *rb)
fTrie = 0;
fTrieSize = 0;
fGroupCount = 0;
+ fSawBOF = FALSE;
}
@@ -224,7 +225,8 @@ void RBBISetBuilder::build() {
//
// Numbering: # 0 (state table column 0) is unused.
// # 1 is reserved - table column 1 is for end-of-input
- // # 2 is the first range list.
+ // # 2 is reserved - table column 2 is for beginning-in-input
+ // # 3 is the first range list.
//
RangeDescriptor *rlSearchRange;
for (rlRange = fRangeList; rlRange!=0; rlRange=rlRange->fNext) {
@@ -236,20 +238,26 @@ void RBBISetBuilder::build() {
}
if (rlRange->fNum == 0) {
fGroupCount ++;
- rlRange->fNum = fGroupCount+1;
+ rlRange->fNum = fGroupCount+2;
rlRange->setDictionaryFlag();
- addValToSets(rlRange->fIncludesSets, fGroupCount+1);
+ addValToSets(rlRange->fIncludesSets, fGroupCount+2);
}
}
// Handle input sets that contain the special string {eof}.
// Column 1 of the state table is reserved for EOF on input.
- // Add this column value (1) to the equivalent expression
+ // Column 2 is reserved for before-the-start-input.
+ // (This column can be optimized away later if there are no rule
+ // references to {bof}.)
+ // Add this column value (1 or 2) to the equivalent expression
// subtree for each UnicodeSet that contains the string {eof}
- // Because EOF is not a character in the normal sense, it doesn't
- // affect the computation of ranges or TRIE.
+ // Because {bof} and {eof} are not a characters in the normal sense,
+ // they doesn't affect the computation of ranges or TRIE.
static const UChar eofUString[] = {0x65, 0x6f, 0x66, 0};
+ static const UChar bofUString[] = {0x62, 0x6f, 0x66, 0};
+
UnicodeString eofString(eofUString);
+ UnicodeString bofString(bofUString);
for (ni=0; ; ni++) { // Loop over each of the UnicodeSets encountered in the input rules
usetNode = (RBBINode *)this->fRB->fUSetNodes->elementAt(ni);
if (usetNode==NULL) {
@@ -259,6 +267,10 @@ void RBBISetBuilder::build() {
if (inputSet->contains(eofString)) {
addValToSet(usetNode, 1);
}
+ if (inputSet->contains(bofString)) {
+ addValToSet(usetNode, 2);
+ fSawBOF = TRUE;
+ }
}
@@ -367,10 +379,19 @@ void RBBISetBuilder::addValToSet(RBBINode *usetNode, uint32_t val) {
//
//------------------------------------------------------------------------
int32_t RBBISetBuilder::getNumCharCategories() const {
- return fGroupCount + 2;
+ return fGroupCount + 3;
}
+//------------------------------------------------------------------------
+//
+// sawBOF
+//
+//------------------------------------------------------------------------
+UBool RBBISetBuilder::sawBOF() const {
+ return fSawBOF;
+}
+
//------------------------------------------------------------------------
//
diff --git a/Build/source/libs/icu-xetex/common/rbbisetb.h b/Build/source/libs/icu-xetex/common/rbbisetb.h
index ec0a0dc855c..c8bc1df7786 100644
--- a/Build/source/libs/icu-xetex/common/rbbisetb.h
+++ b/Build/source/libs/icu-xetex/common/rbbisetb.h
@@ -82,11 +82,13 @@ public:
void addValToSets(UVector *sets, uint32_t val);
void addValToSet (RBBINode *usetNode, uint32_t val);
int32_t getNumCharCategories() const; // CharCategories are the same as input symbol set to the
- // runtime state machine, which are the same as
- // columns in the DFA state table
+ // runtime state machine, which are the same as
+ // columns in the DFA state table
int32_t getTrieSize() /*const*/; // Size in bytes of the serialized Trie.
void serializeTrie(uint8_t *where); // write out the serialized Trie.
UChar32 getFirstChar(int32_t val) const;
+ UBool sawBOF() const; // Indicate whether any references to the {bof} pseudo
+ // character were encountered.
#ifdef RBBI_DEBUG
void printSets();
void printRanges();
@@ -116,6 +118,8 @@ private:
// column 2 is for group 0. Funny counting.
int32_t fGroupCount;
+ UBool fSawBOF;
+
RBBISetBuilder(const RBBISetBuilder &other); // forbid copying of this class
RBBISetBuilder &operator=(const RBBISetBuilder &other); // forbid copying of this class
};
diff --git a/Build/source/libs/icu-xetex/common/rbbistbl.cpp b/Build/source/libs/icu-xetex/common/rbbistbl.cpp
index 56676538ac0..771eb3136a4 100644
--- a/Build/source/libs/icu-xetex/common/rbbistbl.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbistbl.cpp
@@ -44,7 +44,7 @@ RBBISymbolTable::RBBISymbolTable(RBBIRuleScanner *rs, const UnicodeString &rules
fHashTable = NULL;
fCachedSetLookup = NULL;
- fHashTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, &status);
+ fHashTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, &status);
// uhash_open checks status
if (U_FAILURE(status)) {
return;
diff --git a/Build/source/libs/icu-xetex/common/rbbitblb.cpp b/Build/source/libs/icu-xetex/common/rbbitblb.cpp
index e4c02f8d115..73ffd6dd0ad 100644
--- a/Build/source/libs/icu-xetex/common/rbbitblb.cpp
+++ b/Build/source/libs/icu-xetex/common/rbbitblb.cpp
@@ -1,13 +1,13 @@
-//
-// rbbitblb.cpp
-//
-
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
+//
+// rbbitblb.cpp
+//
+
#include "unicode/utypes.h"
@@ -75,10 +75,28 @@ void RBBITableBuilder::build() {
// parse tree for the substition expression.
//
fTree = fTree->flattenVariables();
+#ifdef RBBI_DEBUG
if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "ftree")) {
RBBIDebugPuts("Parse tree after flattening variable references.");
fTree->printTree(TRUE);
}
+#endif
+
+ //
+ // If the rules contained any references to {bof}
+ // add a {bof} <cat> <former root of tree> to the
+ // tree. Means that all matches must start out with the
+ // {bof} fake character.
+ //
+ if (fRB->fSetBuilder->sawBOF()) {
+ RBBINode *bofTop = new RBBINode(RBBINode::opCat);
+ RBBINode *bofLeaf = new RBBINode(RBBINode::leafChar);
+ bofTop->fLeftChild = bofLeaf;
+ bofTop->fRightChild = fTree;
+ bofLeaf->fParent = bofTop;
+ bofLeaf->fVal = 2; // Reserved value for {bof}.
+ fTree = bofTop;
+ }
//
// Add a unique right-end marker to the expression.
@@ -97,10 +115,12 @@ void RBBITableBuilder::build() {
// expression.
//
fTree->flattenSets();
+#ifdef RBBI_DEBUG
if (fRB->fDebugEnv && uprv_strstr(fRB->fDebugEnv, "stree")) {
RBBIDebugPuts("Parse tree after flattening Unicode Set references.");
fTree->printTree(TRUE);
}
+#endif
//
@@ -127,6 +147,13 @@ void RBBITableBuilder::build() {
}
//
+ // BOF (start of input) test fixup.
+ //
+ if (fRB->fSetBuilder->sawBOF()) {
+ bofFixup();
+ }
+
+ //
// Build the DFA state transition tables.
//
buildStateTable();
@@ -349,8 +376,15 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree) {
return;
}
- // Get all nodes that can be the start a match, which is FirstPosition(root)
- UVector *matchStartNodes = tree->fFirstPosSet;
+ // Get all nodes that can be the start a match, which is FirstPosition()
+ // of the portion of the tree corresponding to user-written rules.
+ // See the tree description in bofFixup().
+ RBBINode *userRuleRoot = tree;
+ if (fRB->fSetBuilder->sawBOF()) {
+ userRuleRoot = tree->fLeftChild->fRightChild;
+ }
+ U_ASSERT(userRuleRoot != NULL);
+ UVector *matchStartNodes = userRuleRoot->fFirstPosSet;
// Iteratate over all leaf nodes,
@@ -419,6 +453,62 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree) {
//-----------------------------------------------------------------------------
//
+// bofFixup. Fixup for state tables that include {bof} beginning of input testing.
+// Do an swizzle similar to chaining, modifying the followPos set of
+// the bofNode to include the followPos nodes from other {bot} nodes
+// scattered through the tree.
+//
+// This function has much in common with calcChainedFollowPos().
+//
+//-----------------------------------------------------------------------------
+void RBBITableBuilder::bofFixup() {
+
+ if (U_FAILURE(*fStatus)) {
+ return;
+ }
+
+ // The parse tree looks like this ...
+ // fTree root ---> <cat>
+ // / \ .
+ // <cat> <#end node>
+ // / \ .
+ // <bofNode> rest
+ // of tree
+ //
+ // We will be adding things to the followPos set of the <bofNode>
+ //
+ RBBINode *bofNode = fTree->fLeftChild->fLeftChild;
+ U_ASSERT(bofNode->fType == RBBINode::leafChar);
+ U_ASSERT(bofNode->fVal == 2);
+
+ // Get all nodes that can be the start a match of the user-written rules
+ // (excluding the fake bofNode)
+ // We want the nodes that can start a match in the
+ // part labeled "rest of tree"
+ //
+ UVector *matchStartNodes = fTree->fLeftChild->fRightChild->fFirstPosSet;
+
+ RBBINode *startNode;
+ int startNodeIx;
+ for (startNodeIx = 0; startNodeIx<matchStartNodes->size(); startNodeIx++) {
+ startNode = (RBBINode *)matchStartNodes->elementAt(startNodeIx);
+ if (startNode->fType != RBBINode::leafChar) {
+ continue;
+ }
+
+ if (startNode->fVal == bofNode->fVal) {
+ // We found a leaf node corresponding to a {bof} that was
+ // explicitly written into a rule.
+ // Add everything from the followPos set of this node to the
+ // followPos set of the fake bofNode at the start of the tree.
+ //
+ setAdd(bofNode->fFollowPos, startNode->fFollowPos);
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+//
// buildStateTable() Determine the set of runtime DFA states and the
// transition tables for these states, by the algorithm
// of fig. 3.44 in Aho.
@@ -576,27 +666,27 @@ void RBBITableBuilder::flagAcceptingStates() {
// If no other value was specified, force it to -1.
if (sd->fAccepting==0) {
- // State hasn't been marked as accepting yet. Do it now.
+ // State hasn't been marked as accepting yet. Do it now.
sd->fAccepting = endMarker->fVal;
if (sd->fAccepting == 0) {
sd->fAccepting = -1;
- }
+ }
}
if (sd->fAccepting==-1 && endMarker->fVal != 0) {
- // Both lookahead and non-lookahead accepting for this state.
- // Favor the look-ahead. Expedient for line break.
- // TODO: need a more elegant resolution for conflicting rules.
- sd->fAccepting = endMarker->fVal;
- }
- // implicit else:
- // if sd->fAccepting already had a value other than 0 or -1, leave it be.
+ // Both lookahead and non-lookahead accepting for this state.
+ // Favor the look-ahead. Expedient for line break.
+ // TODO: need a more elegant resolution for conflicting rules.
+ sd->fAccepting = endMarker->fVal;
+ }
+ // implicit else:
+ // if sd->fAccepting already had a value other than 0 or -1, leave it be.
// If the end marker node is from a look-ahead rule, set
// the fLookAhead field or this state also.
if (endMarker->fLookAheadEnd) {
- // TODO: don't change value if already set?
- // TODO: allow for more than one active look-ahead rule in engine.
- // Make value here an index to a side array in engine?
+ // TODO: don't change value if already set?
+ // TODO: allow for more than one active look-ahead rule in engine.
+ // Make value here an index to a side array in engine?
sd->fLookAhead = sd->fAccepting;
}
}
@@ -958,6 +1048,9 @@ void RBBITableBuilder::exportTable(void *where) {
if (fRB->fLookAheadHardBreak) {
table->fFlags |= RBBI_LOOKAHEAD_HARD_BREAK;
}
+ if (fRB->fSetBuilder->sawBOF()) {
+ table->fFlags |= RBBI_BOF_REQUIRED;
+ }
table->fReserved = 0;
for (state=0; state<table->fNumStates; state++) {
diff --git a/Build/source/libs/icu-xetex/common/rbbitblb.h b/Build/source/libs/icu-xetex/common/rbbitblb.h
index e4a2b890bd1..3805b6752a3 100644
--- a/Build/source/libs/icu-xetex/common/rbbitblb.h
+++ b/Build/source/libs/icu-xetex/common/rbbitblb.h
@@ -4,7 +4,7 @@
/*
**********************************************************************
-* Copyright (c) 2002-2004, International Business Machines
+* Copyright (c) 2002-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -51,6 +51,7 @@ private:
void calcLastPos(RBBINode *n);
void calcFollowPos(RBBINode *n);
void calcChainedFollowPos(RBBINode *n);
+ void bofFixup();
void buildStateTable();
void flagAcceptingStates();
void flagLookAheadStates();
diff --git a/Build/source/libs/icu-xetex/common/resbund_cnv.cpp b/Build/source/libs/icu-xetex/common/resbund_cnv.cpp
index 871f025e014..a18e57e3106 100644
--- a/Build/source/libs/icu-xetex/common/resbund_cnv.cpp
+++ b/Build/source/libs/icu-xetex/common/resbund_cnv.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -47,7 +47,8 @@ ResourceBundle::constructForLocale(const UnicodeString& path,
}
else {
UnicodeString nullTerminatedPath(path);
- fResource = ures_openU(nullTerminatedPath.getTerminatedBuffer(), locale.getName(), &error);
+ nullTerminatedPath.append((UChar)0);
+ fResource = ures_openU(nullTerminatedPath.getBuffer(), locale.getName(), &error);
}
}
diff --git a/Build/source/libs/icu-xetex/common/ruleiter.h b/Build/source/libs/icu-xetex/common/ruleiter.h
index 8438f5797b7..5c86020bd8b 100644
--- a/Build/source/libs/icu-xetex/common/ruleiter.h
+++ b/Build/source/libs/icu-xetex/common/ruleiter.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2003-2005, International Business Machines
+* Copyright (c) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -11,7 +11,7 @@
#ifndef _RULEITER_H_
#define _RULEITER_H_
-#include "unicode/utypes.h"
+#include "unicode/uobject.h"
U_NAMESPACE_BEGIN
@@ -26,7 +26,7 @@ class SymbolTable;
* @author Alan Liu
* @since ICU 2.8
*/
-class U_COMMON_API RuleCharacterIterator {
+class RuleCharacterIterator : public UMemory {
// TODO: Ideas for later. (Do not implement if not needed, lest the
// code coverage numbers go down due to unused methods.)
@@ -131,7 +131,7 @@ public:
/**
* An opaque object representing the position of a RuleCharacterIterator.
*/
- struct Pos {
+ struct Pos : public UMemory {
private:
const UnicodeString* buf;
int32_t pos;
diff --git a/Build/source/libs/icu-xetex/common/serv.h b/Build/source/libs/icu-xetex/common/serv.h
index 835eb934334..72f0a9f4aee 100644
--- a/Build/source/libs/icu-xetex/common/serv.h
+++ b/Build/source/libs/icu-xetex/common/serv.h
@@ -1,6 +1,6 @@
/**
*******************************************************************************
- * Copyright (C) 2001-2005, International Business Machines Corporation. *
+ * Copyright (C) 2001-2006, International Business Machines Corporation. *
* All Rights Reserved. *
*******************************************************************************
*/
@@ -26,6 +26,7 @@ U_NAMESPACE_END
#include "unicode/unistr.h"
#include "unicode/locid.h"
+#include "unicode/umisc.h"
#include "hash.h"
#include "uvector.h"
@@ -436,11 +437,6 @@ private:
U_CAPI void U_EXPORT2
userv_deleteStringPair(void *obj);
-/**
- * Opaque type returned by registerInstance and registerFactory.
- */
-typedef const void* URegistryKey;
-
/*******************************************************************
* ICUService
*/
diff --git a/Build/source/libs/icu-xetex/common/servnotf.cpp b/Build/source/libs/icu-xetex/common/servnotf.cpp
index eb4a90164c6..6adf52ece2e 100644
--- a/Build/source/libs/icu-xetex/common/servnotf.cpp
+++ b/Build/source/libs/icu-xetex/common/servnotf.cpp
@@ -1,6 +1,6 @@
/**
*******************************************************************************
- * Copyright (C) 2001-2004, International Business Machines Corporation and *
+ * Copyright (C) 2001-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -20,7 +20,7 @@ EventListener::~EventListener() {}
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(EventListener)
ICUNotifier::ICUNotifier(void)
- : notifyLock(0), listeners(NULL)
+: notifyLock(0), listeners(NULL)
{
umtx_init(&notifyLock);
}
@@ -38,75 +38,77 @@ ICUNotifier::~ICUNotifier(void) {
void
ICUNotifier::addListener(const EventListener* l, UErrorCode& status)
{
- if (U_SUCCESS(status)) {
- if (l == NULL) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- }
-
- if (acceptsListener(*l)) {
- Mutex lmx(&notifyLock);
- if (listeners == NULL) {
- listeners = new UVector(5, status);
- } else {
- for (int i = 0, e = listeners->size(); i < e; ++i) {
- const EventListener* el = (const EventListener*)(listeners->elementAt(i));
- if (l == el) {
+ if (U_SUCCESS(status)) {
+ if (l == NULL) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
return;
- }
}
- }
- listeners->addElement((void*)l, status); // cast away const
- } else {
+ if (acceptsListener(*l)) {
+ Mutex lmx(&notifyLock);
+ if (listeners == NULL) {
+ listeners = new UVector(5, status);
+ } else {
+ for (int i = 0, e = listeners->size(); i < e; ++i) {
+ const EventListener* el = (const EventListener*)(listeners->elementAt(i));
+ if (l == el) {
+ return;
+ }
+ }
+ }
+
+ listeners->addElement((void*)l, status); // cast away const
+ }
#ifdef NOTIFIER_DEBUG
- fprintf(stderr, "Listener invalid for this notifier.");
- exit(1);
+ else {
+ fprintf(stderr, "Listener invalid for this notifier.");
+ exit(1);
+ }
#endif
}
- }
}
void
ICUNotifier::removeListener(const EventListener *l, UErrorCode& status)
{
- if (U_SUCCESS(status)) {
- if (l == NULL) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
+ if (U_SUCCESS(status)) {
+ if (l == NULL) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
- {
- Mutex lmx(&notifyLock);
- if (listeners != NULL) {
- // identity equality check
- for (int i = 0, e = listeners->size(); i < e; ++i) {
- const EventListener* el = (const EventListener*)listeners->elementAt(i);
- if (l == el) {
- listeners->removeElementAt(i);
- if (listeners->size() == 0) {
- delete listeners;
- listeners = NULL;
+ {
+ Mutex lmx(&notifyLock);
+ if (listeners != NULL) {
+ // identity equality check
+ for (int i = 0, e = listeners->size(); i < e; ++i) {
+ const EventListener* el = (const EventListener*)listeners->elementAt(i);
+ if (l == el) {
+ listeners->removeElementAt(i);
+ if (listeners->size() == 0) {
+ delete listeners;
+ listeners = NULL;
+ }
+ return;
+ }
+ }
}
- return;
- }
}
- }
}
- }
}
void
ICUNotifier::notifyChanged(void)
{
- if (listeners != NULL) {
- Mutex lmx(&notifyLock);
if (listeners != NULL) {
- for (int i = 0, e = listeners->size(); i < e; ++i) {
- EventListener* el = (EventListener*)listeners->elementAt(i);
- notifyListener(*el);
- }
+ Mutex lmx(&notifyLock);
+ if (listeners != NULL) {
+ for (int i = 0, e = listeners->size(); i < e; ++i) {
+ EventListener* el = (EventListener*)listeners->elementAt(i);
+ notifyListener(*el);
+ }
+ }
}
- }
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/common/sprpimpl.h b/Build/source/libs/icu-xetex/common/sprpimpl.h
index 36639b5ca13..1422cc3acd5 100644
--- a/Build/source/libs/icu-xetex/common/sprpimpl.h
+++ b/Build/source/libs/icu-xetex/common/sprpimpl.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -89,8 +89,8 @@ struct UStringPrepProfile{
const uint16_t* mappingData;
UDataMemory* sprepData;
const UBiDiProps *bdp; /* used only if checkBiDi is set */
- UBool isDataLoaded;
int32_t refCount;
+ UBool isDataLoaded;
UBool doNFKC;
UBool checkBiDi;
};
diff --git a/Build/source/libs/icu-xetex/common/triedict.cpp b/Build/source/libs/icu-xetex/common/triedict.cpp
new file mode 100644
index 00000000000..2c58a550019
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/triedict.cpp
@@ -0,0 +1,1407 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "triedict.h"
+#include "unicode/chariter.h"
+#include "unicode/uchriter.h"
+#include "unicode/strenum.h"
+#include "unicode/uenum.h"
+#include "unicode/udata.h"
+#include "cmemory.h"
+#include "udataswp.h"
+#include "uvector.h"
+#include "uvectr32.h"
+#include "uarrsort.h"
+
+//#define DEBUG_TRIE_DICT 1
+
+#ifdef DEBUG_TRIE_DICT
+#include <sys/times.h>
+#include <limits.h>
+#include <stdio.h>
+#endif
+
+U_NAMESPACE_BEGIN
+
+/*******************************************************************
+ * TrieWordDictionary
+ */
+
+TrieWordDictionary::TrieWordDictionary() {
+}
+
+TrieWordDictionary::~TrieWordDictionary() {
+}
+
+/*******************************************************************
+ * MutableTrieDictionary
+ */
+
+// Node structure for the ternary, uncompressed trie
+struct TernaryNode : public UMemory {
+ UChar ch; // UTF-16 code unit
+ uint16_t flags; // Flag word
+ TernaryNode *low; // Less-than link
+ TernaryNode *equal; // Equal link
+ TernaryNode *high; // Greater-than link
+
+ TernaryNode(UChar uc);
+ ~TernaryNode();
+};
+
+enum MutableTrieNodeFlags {
+ kEndsWord = 0x0001 // This node marks the end of a valid word
+};
+
+inline
+TernaryNode::TernaryNode(UChar uc) {
+ ch = uc;
+ flags = 0;
+ low = NULL;
+ equal = NULL;
+ high = NULL;
+}
+
+// Not inline since it's recursive
+TernaryNode::~TernaryNode() {
+ delete low;
+ delete equal;
+ delete high;
+}
+
+MutableTrieDictionary::MutableTrieDictionary( UChar median, UErrorCode &status ) {
+ // Start the trie off with something. Having the root node already present
+ // cuts a special case out of the search/insertion functions.
+ // Making it a median character cuts the worse case for searches from
+ // 4x a balanced trie to 2x a balanced trie. It's best to choose something
+ // that starts a word that is midway in the list.
+ fTrie = new TernaryNode(median);
+ if (fTrie == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ fIter = utext_openUChars(NULL, NULL, 0, &status);
+ if (U_SUCCESS(status) && fIter == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+}
+
+MutableTrieDictionary::MutableTrieDictionary( UErrorCode &status ) {
+ fTrie = NULL;
+ fIter = utext_openUChars(NULL, NULL, 0, &status);
+ if (U_SUCCESS(status) && fIter == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+}
+
+MutableTrieDictionary::~MutableTrieDictionary() {
+ delete fTrie;
+ utext_close(fIter);
+}
+
+int32_t
+MutableTrieDictionary::search( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit,
+ TernaryNode *&parent,
+ UBool &pMatched ) const {
+ // TODO: current implementation works in UTF-16 space
+ const TernaryNode *up = NULL;
+ const TernaryNode *p = fTrie;
+ int mycount = 0;
+ pMatched = TRUE;
+ int i;
+
+ UChar uc = utext_current32(text);
+ for (i = 0; i < maxLength && p != NULL; ++i) {
+ while (p != NULL) {
+ if (uc < p->ch) {
+ up = p;
+ p = p->low;
+ }
+ else if (uc == p->ch) {
+ break;
+ }
+ else {
+ up = p;
+ p = p->high;
+ }
+ }
+ if (p == NULL) {
+ pMatched = FALSE;
+ break;
+ }
+ // Must be equal to get here
+ if (limit > 0 && (p->flags & kEndsWord)) {
+ lengths[mycount++] = i+1;
+ --limit;
+ }
+ up = p;
+ p = p->equal;
+ uc = utext_next32(text);
+ uc = utext_current32(text);
+ }
+
+ // Note that there is no way to reach here with up == 0 unless
+ // maxLength is 0 coming in.
+ parent = (TernaryNode *)up;
+ count = mycount;
+ return i;
+}
+
+void
+MutableTrieDictionary::addWord( const UChar *word,
+ int32_t length,
+ UErrorCode &status ) {
+#if 0
+ if (length <= 0) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+#endif
+ TernaryNode *parent;
+ UBool pMatched;
+ int count;
+ fIter = utext_openUChars(fIter, word, length, &status);
+
+ int matched;
+ matched = search(fIter, length, NULL, count, 0, parent, pMatched);
+
+ while (matched++ < length) {
+ UChar32 uc = utext_next32(fIter); // TODO: supplemetary support?
+ U_ASSERT(uc != U_SENTINEL);
+ TernaryNode *newNode = new TernaryNode(uc);
+ if (newNode == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ if (pMatched) {
+ parent->equal = newNode;
+ }
+ else {
+ pMatched = TRUE;
+ if (uc < parent->ch) {
+ parent->low = newNode;
+ }
+ else {
+ parent->high = newNode;
+ }
+ }
+ parent = newNode;
+ }
+
+ parent->flags |= kEndsWord;
+}
+
+#if 0
+void
+MutableTrieDictionary::addWords( UEnumeration *words,
+ UErrorCode &status ) {
+ int32_t length;
+ const UChar *word;
+ while ((word = uenum_unext(words, &length, &status)) && U_SUCCESS(status)) {
+ addWord(word, length, status);
+ }
+}
+#endif
+
+int32_t
+MutableTrieDictionary::matches( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit ) const {
+ TernaryNode *parent;
+ UBool pMatched;
+ return search(text, maxLength, lengths, count, limit, parent, pMatched);
+}
+
+// Implementation of iteration for MutableTrieDictionary
+class MutableTrieEnumeration : public StringEnumeration {
+private:
+ UStack fNodeStack; // Stack of nodes to process
+ UVector32 fBranchStack; // Stack of which branch we are working on
+ TernaryNode *fRoot; // Root node
+ static const char fgClassID;
+ enum StackBranch {
+ kLessThan,
+ kEqual,
+ kGreaterThan,
+ kDone
+ };
+
+public:
+ static UClassID U_EXPORT2 getStaticClassID(void) { return (UClassID)&fgClassID; }
+ virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); }
+public:
+ MutableTrieEnumeration(TernaryNode *root, UErrorCode &status)
+ : fNodeStack(status), fBranchStack(status) {
+ fRoot = root;
+ fNodeStack.push(root, status);
+ fBranchStack.push(kLessThan, status);
+ unistr.remove();
+ }
+
+ virtual ~MutableTrieEnumeration() {
+ }
+
+ virtual StringEnumeration *clone() const {
+ UErrorCode status = U_ZERO_ERROR;
+ return new MutableTrieEnumeration(fRoot, status);
+ }
+
+ virtual const UnicodeString *snext(UErrorCode &status) {
+ if (fNodeStack.empty() || U_FAILURE(status)) {
+ return NULL;
+ }
+ TernaryNode *node = (TernaryNode *) fNodeStack.peek();
+ StackBranch where = (StackBranch) fBranchStack.peeki();
+ while (!fNodeStack.empty() && U_SUCCESS(status)) {
+ UBool emit;
+ UBool equal;
+
+ switch (where) {
+ case kLessThan:
+ if (node->low != NULL) {
+ fBranchStack.setElementAt(kEqual, fBranchStack.size()-1);
+ node = (TernaryNode *) fNodeStack.push(node->low, status);
+ where = (StackBranch) fBranchStack.push(kLessThan, status);
+ break;
+ }
+ case kEqual:
+ emit = (node->flags & kEndsWord) != 0;
+ equal = (node->equal != NULL);
+ // If this node should be part of the next emitted string, append
+ // the UChar to the string, and make sure we pop it when we come
+ // back to this node. The character should only be in the string
+ // for as long as we're traversing the equal subtree of this node
+ if (equal || emit) {
+ unistr.append(node->ch);
+ fBranchStack.setElementAt(kGreaterThan, fBranchStack.size()-1);
+ }
+ if (equal) {
+ node = (TernaryNode *) fNodeStack.push(node->equal, status);
+ where = (StackBranch) fBranchStack.push(kLessThan, status);
+ }
+ if (emit) {
+ return &unistr;
+ }
+ if (equal) {
+ break;
+ }
+ case kGreaterThan:
+ // If this node's character is in the string, remove it.
+ if (node->equal != NULL || (node->flags & kEndsWord)) {
+ unistr.truncate(unistr.length()-1);
+ }
+ if (node->high != NULL) {
+ fBranchStack.setElementAt(kDone, fBranchStack.size()-1);
+ node = (TernaryNode *) fNodeStack.push(node->high, status);
+ where = (StackBranch) fBranchStack.push(kLessThan, status);
+ break;
+ }
+ case kDone:
+ fNodeStack.pop();
+ fBranchStack.popi();
+ node = (TernaryNode *) fNodeStack.peek();
+ where = (StackBranch) fBranchStack.peeki();
+ break;
+ default:
+ return NULL;
+ }
+ }
+ return NULL;
+ }
+
+ // Very expensive, but this should never be used.
+ virtual int32_t count(UErrorCode &status) const {
+ MutableTrieEnumeration counter(fRoot, status);
+ int32_t result = 0;
+ while (counter.snext(status) != NULL && U_SUCCESS(status)) {
+ ++result;
+ }
+ return result;
+ }
+
+ virtual void reset(UErrorCode &status) {
+ fNodeStack.removeAllElements();
+ fBranchStack.removeAllElements();
+ fNodeStack.push(fRoot, status);
+ fBranchStack.push(kLessThan, status);
+ unistr.remove();
+ }
+};
+
+const char MutableTrieEnumeration::fgClassID = '\0';
+
+StringEnumeration *
+MutableTrieDictionary::openWords( UErrorCode &status ) const {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ return new MutableTrieEnumeration(fTrie, status);
+}
+
+/*******************************************************************
+ * CompactTrieDictionary
+ */
+
+struct CompactTrieHeader {
+ uint32_t size; // Size of the data in bytes
+ uint32_t magic; // Magic number (including version)
+ uint16_t nodeCount; // Number of entries in offsets[]
+ uint16_t root; // Node number of the root node
+ uint32_t offsets[1]; // Offsets to nodes from start of data
+};
+
+// Note that to avoid platform-specific alignment issues, all members of the node
+// structures should be the same size, or should contain explicit padding to
+// natural alignment boundaries.
+
+// We can't use a bitfield for the flags+count field, because the layout of those
+// is not portable. 12 bits of count allows for up to 4096 entries in a node.
+struct CompactTrieNode {
+ uint16_t flagscount; // Count of sub-entries, plus flags
+};
+
+enum CompactTrieNodeFlags {
+ kVerticalNode = 0x1000, // This is a vertical node
+ kParentEndsWord = 0x2000, // The node whose equal link points to this ends a word
+ kReservedFlag1 = 0x4000,
+ kReservedFlag2 = 0x8000,
+ kCountMask = 0x0FFF, // The count portion of flagscount
+ kFlagMask = 0xF000 // The flags portion of flagscount
+};
+
+// The two node types are distinguished by the kVerticalNode flag.
+
+struct CompactTrieHorizontalEntry {
+ uint16_t ch; // UChar
+ uint16_t equal; // Equal link node index
+};
+
+// We don't use inheritance here because C++ does not guarantee that the
+// base class comes first in memory!!
+
+struct CompactTrieHorizontalNode {
+ uint16_t flagscount; // Count of sub-entries, plus flags
+ CompactTrieHorizontalEntry entries[1];
+};
+
+struct CompactTrieVerticalNode {
+ uint16_t flagscount; // Count of sub-entries, plus flags
+ uint16_t equal; // Equal link node index
+ uint16_t chars[1]; // Code units
+};
+
+// {'Dic', 1}, version 1
+#define COMPACT_TRIE_MAGIC_1 0x44696301
+
+CompactTrieDictionary::CompactTrieDictionary(UDataMemory *dataObj,
+ UErrorCode &status )
+: fUData(dataObj)
+{
+ fData = (const CompactTrieHeader *) udata_getMemory(dataObj);
+ fOwnData = FALSE;
+ if (fData->magic != COMPACT_TRIE_MAGIC_1) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ fData = NULL;
+ }
+}
+CompactTrieDictionary::CompactTrieDictionary( const void *data,
+ UErrorCode &status )
+: fUData(NULL)
+{
+ fData = (const CompactTrieHeader *) data;
+ fOwnData = FALSE;
+ if (fData->magic != COMPACT_TRIE_MAGIC_1) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ fData = NULL;
+ }
+}
+
+CompactTrieDictionary::CompactTrieDictionary( const MutableTrieDictionary &dict,
+ UErrorCode &status )
+: fUData(NULL)
+{
+ fData = compactMutableTrieDictionary(dict, status);
+ fOwnData = !U_FAILURE(status);
+}
+
+CompactTrieDictionary::~CompactTrieDictionary() {
+ if (fOwnData) {
+ uprv_free((void *)fData);
+ }
+ if (fUData) {
+ udata_close(fUData);
+ }
+}
+
+uint32_t
+CompactTrieDictionary::dataSize() const {
+ return fData->size;
+}
+
+const void *
+CompactTrieDictionary::data() const {
+ return fData;
+}
+
+// This function finds the address of a node for us, given its node ID
+static inline const CompactTrieNode *
+getCompactNode(const CompactTrieHeader *header, uint16_t node) {
+ return (const CompactTrieNode *)((const uint8_t *)header + header->offsets[node]);
+}
+
+int32_t
+CompactTrieDictionary::matches( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit ) const {
+ // TODO: current implementation works in UTF-16 space
+ const CompactTrieNode *node = getCompactNode(fData, fData->root);
+ int mycount = 0;
+
+ UChar uc = utext_current32(text);
+ int i = 0;
+
+ while (node != NULL) {
+ // Check if the node we just exited ends a word
+ if (limit > 0 && (node->flagscount & kParentEndsWord)) {
+ lengths[mycount++] = i;
+ --limit;
+ }
+ // Check that we haven't exceeded the maximum number of input characters.
+ // We have to do that here rather than in the while condition so that
+ // we can check for ending a word, above.
+ if (i >= maxLength) {
+ break;
+ }
+
+ int nodeCount = (node->flagscount & kCountMask);
+ if (nodeCount == 0) {
+ // Special terminal node; return now
+ break;
+ }
+ if (node->flagscount & kVerticalNode) {
+ // Vertical node; check all the characters in it
+ const CompactTrieVerticalNode *vnode = (const CompactTrieVerticalNode *)node;
+ for (int j = 0; j < nodeCount && i < maxLength; ++j) {
+ if (uc != vnode->chars[j]) {
+ // We hit a non-equal character; return
+ goto exit;
+ }
+ utext_next32(text);
+ uc = utext_current32(text);
+ ++i;
+ }
+ // To get here we must have come through the whole list successfully;
+ // go on to the next node. Note that a word cannot end in the middle
+ // of a vertical node.
+ node = getCompactNode(fData, vnode->equal);
+ }
+ else {
+ // Horizontal node; do binary search
+ const CompactTrieHorizontalNode *hnode = (const CompactTrieHorizontalNode *)node;
+ int low = 0;
+ int high = nodeCount-1;
+ int middle;
+ node = NULL; // If we don't find a match, we'll fall out of the loop
+ while (high >= low) {
+ middle = (high+low)/2;
+ if (uc == hnode->entries[middle].ch) {
+ // We hit a match; get the next node and next character
+ node = getCompactNode(fData, hnode->entries[middle].equal);
+ utext_next32(text);
+ uc = utext_current32(text);
+ ++i;
+ break;
+ }
+ else if (uc < hnode->entries[middle].ch) {
+ high = middle-1;
+ }
+ else {
+ low = middle+1;
+ }
+ }
+ }
+ }
+exit:
+ count = mycount;
+ return i;
+}
+
+// Implementation of iteration for CompactTrieDictionary
+class CompactTrieEnumeration : public StringEnumeration {
+private:
+ UVector32 fNodeStack; // Stack of nodes to process
+ UVector32 fIndexStack; // Stack of where in node we are
+ const CompactTrieHeader *fHeader; // Trie data
+ static const char fgClassID;
+
+public:
+ static UClassID U_EXPORT2 getStaticClassID(void) { return (UClassID)&fgClassID; }
+ virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); }
+public:
+ CompactTrieEnumeration(const CompactTrieHeader *header, UErrorCode &status)
+ : fNodeStack(status), fIndexStack(status) {
+ fHeader = header;
+ fNodeStack.push(header->root, status);
+ fIndexStack.push(0, status);
+ unistr.remove();
+ }
+
+ virtual ~CompactTrieEnumeration() {
+ }
+
+ virtual StringEnumeration *clone() const {
+ UErrorCode status = U_ZERO_ERROR;
+ return new CompactTrieEnumeration(fHeader, status);
+ }
+
+ virtual const UnicodeString * snext(UErrorCode &status);
+
+ // Very expensive, but this should never be used.
+ virtual int32_t count(UErrorCode &status) const {
+ CompactTrieEnumeration counter(fHeader, status);
+ int32_t result = 0;
+ while (counter.snext(status) != NULL && U_SUCCESS(status)) {
+ ++result;
+ }
+ return result;
+ }
+
+ virtual void reset(UErrorCode &status) {
+ fNodeStack.removeAllElements();
+ fIndexStack.removeAllElements();
+ fNodeStack.push(fHeader->root, status);
+ fIndexStack.push(0, status);
+ unistr.remove();
+ }
+};
+
+const char CompactTrieEnumeration::fgClassID = '\0';
+
+const UnicodeString *
+CompactTrieEnumeration::snext(UErrorCode &status) {
+ if (fNodeStack.empty() || U_FAILURE(status)) {
+ return NULL;
+ }
+ const CompactTrieNode *node = getCompactNode(fHeader, fNodeStack.peeki());
+ int where = fIndexStack.peeki();
+ while (!fNodeStack.empty() && U_SUCCESS(status)) {
+ int nodeCount = (node->flagscount & kCountMask);
+ UBool goingDown = FALSE;
+ if (nodeCount == 0) {
+ // Terminal node; go up immediately
+ fNodeStack.popi();
+ fIndexStack.popi();
+ node = getCompactNode(fHeader, fNodeStack.peeki());
+ where = fIndexStack.peeki();
+ }
+ else if (node->flagscount & kVerticalNode) {
+ // Vertical node
+ const CompactTrieVerticalNode *vnode = (const CompactTrieVerticalNode *)node;
+ if (where == 0) {
+ // Going down
+ unistr.append((const UChar *)vnode->chars, (int32_t) nodeCount);
+ fIndexStack.setElementAt(1, fIndexStack.size()-1);
+ node = getCompactNode(fHeader, fNodeStack.push(vnode->equal, status));
+ where = fIndexStack.push(0, status);
+ goingDown = TRUE;
+ }
+ else {
+ // Going up
+ unistr.truncate(unistr.length()-nodeCount);
+ fNodeStack.popi();
+ fIndexStack.popi();
+ node = getCompactNode(fHeader, fNodeStack.peeki());
+ where = fIndexStack.peeki();
+ }
+ }
+ else {
+ // Horizontal node
+ const CompactTrieHorizontalNode *hnode = (const CompactTrieHorizontalNode *)node;
+ if (where > 0) {
+ // Pop previous char
+ unistr.truncate(unistr.length()-1);
+ }
+ if (where < nodeCount) {
+ // Push on next node
+ unistr.append((UChar)hnode->entries[where].ch);
+ fIndexStack.setElementAt(where+1, fIndexStack.size()-1);
+ node = getCompactNode(fHeader, fNodeStack.push(hnode->entries[where].equal, status));
+ where = fIndexStack.push(0, status);
+ goingDown = TRUE;
+ }
+ else {
+ // Going up
+ fNodeStack.popi();
+ fIndexStack.popi();
+ node = getCompactNode(fHeader, fNodeStack.peeki());
+ where = fIndexStack.peeki();
+ }
+ }
+ // Check if the parent of the node we've just gone down to ends a
+ // word. If so, return it.
+ if (goingDown && (node->flagscount & kParentEndsWord)) {
+ return &unistr;
+ }
+ }
+ return NULL;
+}
+
+StringEnumeration *
+CompactTrieDictionary::openWords( UErrorCode &status ) const {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ return new CompactTrieEnumeration(fData, status);
+}
+
+//
+// Below here is all code related to converting a ternary trie to a compact trie
+// and back again
+//
+
+// Helper classes to construct the compact trie
+class BuildCompactTrieNode: public UMemory {
+ public:
+ UBool fParentEndsWord;
+ UBool fVertical;
+ UBool fHasDuplicate;
+ int32_t fNodeID;
+ UnicodeString fChars;
+
+ public:
+ BuildCompactTrieNode(UBool parentEndsWord, UBool vertical, UStack &nodes, UErrorCode &status) {
+ fParentEndsWord = parentEndsWord;
+ fHasDuplicate = FALSE;
+ fVertical = vertical;
+ fNodeID = nodes.size();
+ nodes.push(this, status);
+ }
+
+ virtual ~BuildCompactTrieNode() {
+ }
+
+ virtual uint32_t size() {
+ return sizeof(uint16_t);
+ }
+
+ virtual void write(uint8_t *bytes, uint32_t &offset, const UVector32 &/*translate*/) {
+ // Write flag/count
+ *((uint16_t *)(bytes+offset)) = (fChars.length() & kCountMask)
+ | (fVertical ? kVerticalNode : 0) | (fParentEndsWord ? kParentEndsWord : 0 );
+ offset += sizeof(uint16_t);
+ }
+};
+
+class BuildCompactTrieHorizontalNode: public BuildCompactTrieNode {
+ public:
+ UStack fLinks;
+
+ public:
+ BuildCompactTrieHorizontalNode(UBool parentEndsWord, UStack &nodes, UErrorCode &status)
+ : BuildCompactTrieNode(parentEndsWord, FALSE, nodes, status), fLinks(status) {
+ }
+
+ virtual ~BuildCompactTrieHorizontalNode() {
+ }
+
+ virtual uint32_t size() {
+ return offsetof(CompactTrieHorizontalNode,entries) +
+ (fChars.length()*sizeof(CompactTrieHorizontalEntry));
+ }
+
+ virtual void write(uint8_t *bytes, uint32_t &offset, const UVector32 &translate) {
+ BuildCompactTrieNode::write(bytes, offset, translate);
+ int32_t count = fChars.length();
+ for (int32_t i = 0; i < count; ++i) {
+ CompactTrieHorizontalEntry *entry = (CompactTrieHorizontalEntry *)(bytes+offset);
+ entry->ch = fChars[i];
+ entry->equal = translate.elementAti(((BuildCompactTrieNode *)fLinks[i])->fNodeID);
+#ifdef DEBUG_TRIE_DICT
+ if (entry->equal == 0) {
+ fprintf(stderr, "ERROR: horizontal link %d, logical node %d maps to physical node zero\n",
+ i, ((BuildCompactTrieNode *)fLinks[i])->fNodeID);
+ }
+#endif
+ offset += sizeof(CompactTrieHorizontalEntry);
+ }
+ }
+
+ void addNode(UChar ch, BuildCompactTrieNode *link, UErrorCode &status) {
+ fChars.append(ch);
+ fLinks.push(link, status);
+ }
+};
+
+class BuildCompactTrieVerticalNode: public BuildCompactTrieNode {
+ public:
+ BuildCompactTrieNode *fEqual;
+
+ public:
+ BuildCompactTrieVerticalNode(UBool parentEndsWord, UStack &nodes, UErrorCode &status)
+ : BuildCompactTrieNode(parentEndsWord, TRUE, nodes, status) {
+ fEqual = NULL;
+ }
+
+ virtual ~BuildCompactTrieVerticalNode() {
+ }
+
+ virtual uint32_t size() {
+ return offsetof(CompactTrieVerticalNode,chars) + (fChars.length()*sizeof(uint16_t));
+ }
+
+ virtual void write(uint8_t *bytes, uint32_t &offset, const UVector32 &translate) {
+ CompactTrieVerticalNode *node = (CompactTrieVerticalNode *)(bytes+offset);
+ BuildCompactTrieNode::write(bytes, offset, translate);
+ node->equal = translate.elementAti(fEqual->fNodeID);
+ offset += sizeof(node->equal);
+#ifdef DEBUG_TRIE_DICT
+ if (node->equal == 0) {
+ fprintf(stderr, "ERROR: vertical link, logical node %d maps to physical node zero\n",
+ fEqual->fNodeID);
+ }
+#endif
+ fChars.extract(0, fChars.length(), (UChar *)node->chars);
+ offset += sizeof(uint16_t)*fChars.length();
+ }
+
+ void addChar(UChar ch) {
+ fChars.append(ch);
+ }
+
+ void setLink(BuildCompactTrieNode *node) {
+ fEqual = node;
+ }
+};
+
+// Forward declaration
+static void walkHorizontal(const TernaryNode *node,
+ BuildCompactTrieHorizontalNode *building,
+ UStack &nodes,
+ UErrorCode &status);
+
+// Convert one node. Uses recursion.
+
+static BuildCompactTrieNode *
+compactOneNode(const TernaryNode *node, UBool parentEndsWord, UStack &nodes, UErrorCode &status) {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ BuildCompactTrieNode *result = NULL;
+ UBool horizontal = (node->low != NULL || node->high != NULL);
+ if (horizontal) {
+ BuildCompactTrieHorizontalNode *hResult =
+ new BuildCompactTrieHorizontalNode(parentEndsWord, nodes, status);
+ if (hResult == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ if (U_SUCCESS(status)) {
+ walkHorizontal(node, hResult, nodes, status);
+ result = hResult;
+ }
+ }
+ else {
+ BuildCompactTrieVerticalNode *vResult =
+ new BuildCompactTrieVerticalNode(parentEndsWord, nodes, status);
+ if (vResult == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ if (U_SUCCESS(status)) {
+ UBool endsWord = FALSE;
+ // Take up nodes until we end a word, or hit a node with < or > links
+ do {
+ vResult->addChar(node->ch);
+ endsWord = (node->flags & kEndsWord) != 0;
+ node = node->equal;
+ }
+ while(node != NULL && !endsWord && node->low == NULL && node->high == NULL);
+ if (node == NULL) {
+ if (!endsWord) {
+ status = U_ILLEGAL_ARGUMENT_ERROR; // Corrupt input trie
+ }
+ else {
+ vResult->setLink((BuildCompactTrieNode *)nodes[1]);
+ }
+ }
+ else {
+ vResult->setLink(compactOneNode(node, endsWord, nodes, status));
+ }
+ result = vResult;
+ }
+ }
+ return result;
+}
+
+// Walk the set of peers at the same level, to build a horizontal node.
+// Uses recursion.
+
+static void walkHorizontal(const TernaryNode *node,
+ BuildCompactTrieHorizontalNode *building,
+ UStack &nodes,
+ UErrorCode &status) {
+ while (U_SUCCESS(status) && node != NULL) {
+ if (node->low != NULL) {
+ walkHorizontal(node->low, building, nodes, status);
+ }
+ BuildCompactTrieNode *link = NULL;
+ if (node->equal != NULL) {
+ link = compactOneNode(node->equal, (node->flags & kEndsWord) != 0, nodes, status);
+ }
+ else if (node->flags & kEndsWord) {
+ link = (BuildCompactTrieNode *)nodes[1];
+ }
+ if (U_SUCCESS(status) && link != NULL) {
+ building->addNode(node->ch, link, status);
+ }
+ // Tail recurse manually instead of leaving it to the compiler.
+ //if (node->high != NULL) {
+ // walkHorizontal(node->high, building, nodes, status);
+ //}
+ node = node->high;
+ }
+}
+
+U_NAMESPACE_END
+U_CDECL_BEGIN
+static int32_t U_CALLCONV
+_sortBuildNodes(const void * /*context*/, const void *voidl, const void *voidr) {
+ BuildCompactTrieNode *left = *(BuildCompactTrieNode **)voidl;
+ BuildCompactTrieNode *right = *(BuildCompactTrieNode **)voidr;
+ // Check for comparing a node to itself, to avoid spurious duplicates
+ if (left == right) {
+ return 0;
+ }
+ // Most significant is type of node. Can never coalesce.
+ if (left->fVertical != right->fVertical) {
+ return left->fVertical - right->fVertical;
+ }
+ // Next, the "parent ends word" flag. If that differs, we cannot coalesce.
+ if (left->fParentEndsWord != right->fParentEndsWord) {
+ return left->fParentEndsWord - right->fParentEndsWord;
+ }
+ // Next, the string. If that differs, we can never coalesce.
+ int32_t result = left->fChars.compare(right->fChars);
+ if (result != 0) {
+ return result;
+ }
+ // We know they're both the same node type, so branch for the two cases.
+ if (left->fVertical) {
+ result = ((BuildCompactTrieVerticalNode *)left)->fEqual->fNodeID
+ - ((BuildCompactTrieVerticalNode *)right)->fEqual->fNodeID;
+ }
+ else {
+ // We need to compare the links vectors. They should be the
+ // same size because the strings were equal.
+ // We compare the node IDs instead of the pointers, to handle
+ // coalesced nodes.
+ BuildCompactTrieHorizontalNode *hleft, *hright;
+ hleft = (BuildCompactTrieHorizontalNode *)left;
+ hright = (BuildCompactTrieHorizontalNode *)right;
+ int32_t count = hleft->fLinks.size();
+ for (int32_t i = 0; i < count && result == 0; ++i) {
+ result = ((BuildCompactTrieNode *)(hleft->fLinks[i]))->fNodeID -
+ ((BuildCompactTrieNode *)(hright->fLinks[i]))->fNodeID;
+ }
+ }
+ // If they are equal to each other, mark them (speeds coalescing)
+ if (result == 0) {
+ left->fHasDuplicate = TRUE;
+ right->fHasDuplicate = TRUE;
+ }
+ return result;
+}
+U_CDECL_END
+U_NAMESPACE_BEGIN
+
+static void coalesceDuplicates(UStack &nodes, UErrorCode &status) {
+ // We sort the array of nodes to place duplicates next to each other
+ if (U_FAILURE(status)) {
+ return;
+ }
+ int32_t size = nodes.size();
+ void **array = (void **)uprv_malloc(sizeof(void *)*size);
+ if (array == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ (void) nodes.toArray(array);
+
+ // Now repeatedly identify duplicates until there are no more
+ int32_t dupes = 0;
+ long passCount = 0;
+#ifdef DEBUG_TRIE_DICT
+ long totalDupes = 0;
+#endif
+ do {
+ BuildCompactTrieNode *node;
+ BuildCompactTrieNode *first = NULL;
+ BuildCompactTrieNode **p;
+ BuildCompactTrieNode **pFirst = NULL;
+ int32_t counter = size - 2;
+ // Sort the array, skipping nodes 0 and 1. Use quicksort for the first
+ // pass for speed. For the second and subsequent passes, we use stable
+ // (insertion) sort for two reasons:
+ // 1. The array is already mostly ordered, so we get better performance.
+ // 2. The way we find one and only one instance of a set of duplicates is to
+ // check that the node ID equals the array index. If we used an unstable
+ // sort for the second or later passes, it's possible that none of the
+ // duplicates would wind up with a node ID equal to its array index.
+ // The sort stability guarantees that, because as we coalesce more and
+ // more groups, the first element of the resultant group will be one of
+ // the first elements of the groups being coalesced.
+ // To use quicksort for the second and subsequent passes, we would have to
+ // find the minimum of the node numbers in a group, and set all the nodes
+ // in the group to that node number.
+ uprv_sortArray(array+2, counter, sizeof(void *), _sortBuildNodes, NULL, (passCount > 0), &status);
+ dupes = 0;
+ for (p = (BuildCompactTrieNode **)array + 2; counter > 0; --counter, ++p) {
+ node = *p;
+ if (node->fHasDuplicate) {
+ if (first == NULL) {
+ first = node;
+ pFirst = p;
+ }
+ else if (_sortBuildNodes(NULL, pFirst, p) != 0) {
+ // Starting a new run of dupes
+ first = node;
+ pFirst = p;
+ }
+ else if (node->fNodeID != first->fNodeID) {
+ // Slave one to the other, note duplicate
+ node->fNodeID = first->fNodeID;
+ dupes += 1;
+ }
+ }
+ else {
+ // This node has no dupes
+ first = NULL;
+ pFirst = NULL;
+ }
+ }
+ passCount += 1;
+#ifdef DEBUG_TRIE_DICT
+ totalDupes += dupes;
+ fprintf(stderr, "Trie node dupe removal, pass %d: %d nodes tagged\n", passCount, dupes);
+#endif
+ }
+ while (dupes > 0);
+#ifdef DEBUG_TRIE_DICT
+ fprintf(stderr, "Trie node dupe removal complete: %d tagged in %d passes\n", totalDupes, passCount);
+#endif
+
+ // We no longer need the temporary array, as the nodes have all been marked appropriately.
+ uprv_free(array);
+}
+
+U_NAMESPACE_END
+U_CDECL_BEGIN
+static void U_CALLCONV _deleteBuildNode(void *obj) {
+ delete (BuildCompactTrieNode *) obj;
+}
+U_CDECL_END
+U_NAMESPACE_BEGIN
+
+CompactTrieHeader *
+CompactTrieDictionary::compactMutableTrieDictionary( const MutableTrieDictionary &dict,
+ UErrorCode &status ) {
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+#ifdef DEBUG_TRIE_DICT
+ struct tms timing;
+ struct tms previous;
+ (void) ::times(&previous);
+#endif
+ UStack nodes(_deleteBuildNode, NULL, status); // Index of nodes
+
+ // Add node 0, used as the NULL pointer/sentinel.
+ nodes.addElement((int32_t)0, status);
+
+ // Start by creating the special empty node we use to indicate that the parent
+ // terminates a word. This must be node 1, because the builder assumes
+ // that.
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+ BuildCompactTrieNode *terminal = new BuildCompactTrieNode(TRUE, FALSE, nodes, status);
+ if (terminal == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+
+ // This call does all the work of building the new trie structure. The root
+ // will be node 2.
+ BuildCompactTrieNode *root = compactOneNode(dict.fTrie, FALSE, nodes, status);
+#ifdef DEBUG_TRIE_DICT
+ (void) ::times(&timing);
+ fprintf(stderr, "Compact trie built, %d nodes, time user %f system %f\n",
+ nodes.size(), (double)(timing.tms_utime-previous.tms_utime)/CLK_TCK,
+ (double)(timing.tms_stime-previous.tms_stime)/CLK_TCK);
+ previous = timing;
+#endif
+
+ // Now coalesce all duplicate nodes.
+ coalesceDuplicates(nodes, status);
+#ifdef DEBUG_TRIE_DICT
+ (void) ::times(&timing);
+ fprintf(stderr, "Duplicates coalesced, time user %f system %f\n",
+ (double)(timing.tms_utime-previous.tms_utime)/CLK_TCK,
+ (double)(timing.tms_stime-previous.tms_stime)/CLK_TCK);
+ previous = timing;
+#endif
+
+ // Next, build the output trie.
+ // First we compute all the sizes and build the node ID translation table.
+ uint32_t totalSize = offsetof(CompactTrieHeader,offsets);
+ int32_t count = nodes.size();
+ int32_t nodeCount = 1; // The sentinel node we already have
+ BuildCompactTrieNode *node;
+ UVector32 translate(count, status); // Should be no growth needed after this
+ translate.push(0, status); // The sentinel node
+
+ if (U_FAILURE(status)) {
+ return NULL;
+ }
+
+ for (int32_t i = 1; i < count; ++i) {
+ node = (BuildCompactTrieNode *)nodes[i];
+ if (node->fNodeID == i) {
+ // Only one node out of each duplicate set is used
+ if (i >= translate.size()) {
+ // Logically extend the mapping table
+ translate.setSize(i+1);
+ }
+ translate.setElementAt(nodeCount++, i);
+ totalSize += node->size();
+ }
+ }
+
+ // Check for overflowing 16 bits worth of nodes.
+ if (nodeCount > 0x10000) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ // Add enough room for the offsets.
+ totalSize += nodeCount*sizeof(uint32_t);
+#ifdef DEBUG_TRIE_DICT
+ (void) ::times(&timing);
+ fprintf(stderr, "Sizes/mapping done, time user %f system %f\n",
+ (double)(timing.tms_utime-previous.tms_utime)/CLK_TCK,
+ (double)(timing.tms_stime-previous.tms_stime)/CLK_TCK);
+ previous = timing;
+ fprintf(stderr, "%d nodes, %d unique, %d bytes\n", nodes.size(), nodeCount, totalSize);
+#endif
+ uint8_t *bytes = (uint8_t *)uprv_malloc(totalSize);
+ if (bytes == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+
+ CompactTrieHeader *header = (CompactTrieHeader *)bytes;
+ header->size = totalSize;
+ header->nodeCount = nodeCount;
+ header->offsets[0] = 0; // Sentinel
+ header->root = translate.elementAti(root->fNodeID);
+#ifdef DEBUG_TRIE_DICT
+ if (header->root == 0) {
+ fprintf(stderr, "ERROR: root node %d translate to physical zero\n", root->fNodeID);
+ }
+#endif
+ uint32_t offset = offsetof(CompactTrieHeader,offsets)+(nodeCount*sizeof(uint32_t));
+ nodeCount = 1;
+ // Now write the data
+ for (int32_t i = 1; i < count; ++i) {
+ node = (BuildCompactTrieNode *)nodes[i];
+ if (node->fNodeID == i) {
+ header->offsets[nodeCount++] = offset;
+ node->write(bytes, offset, translate);
+ }
+ }
+#ifdef DEBUG_TRIE_DICT
+ (void) ::times(&timing);
+ fprintf(stderr, "Trie built, time user %f system %f\n",
+ (double)(timing.tms_utime-previous.tms_utime)/CLK_TCK,
+ (double)(timing.tms_stime-previous.tms_stime)/CLK_TCK);
+ previous = timing;
+ fprintf(stderr, "Final offset is %d\n", offset);
+
+ // Collect statistics on node types and sizes
+ int hCount = 0;
+ int vCount = 0;
+ size_t hSize = 0;
+ size_t vSize = 0;
+ size_t hItemCount = 0;
+ size_t vItemCount = 0;
+ uint32_t previousOff = offset;
+ for (uint16_t i = nodeCount-1; i >= 2; --i) {
+ const CompactTrieNode *node = getCompactNode(header, i);
+ if (node->flagscount & kVerticalNode) {
+ vCount += 1;
+ vItemCount += (node->flagscount & kCountMask);
+ vSize += previousOff-header->offsets[i];
+ }
+ else {
+ hCount += 1;
+ hItemCount += (node->flagscount & kCountMask);
+ hSize += previousOff-header->offsets[i];
+ }
+ previousOff = header->offsets[i];
+ }
+ fprintf(stderr, "Horizontal nodes: %d total, average %f bytes with %f items\n", hCount,
+ (double)hSize/hCount, (double)hItemCount/hCount);
+ fprintf(stderr, "Vertical nodes: %d total, average %f bytes with %f items\n", vCount,
+ (double)vSize/vCount, (double)vItemCount/vCount);
+#endif
+
+ if (U_FAILURE(status)) {
+ uprv_free(bytes);
+ header = NULL;
+ }
+ else {
+ header->magic = COMPACT_TRIE_MAGIC_1;
+ }
+ return header;
+}
+
+// Forward declaration
+static TernaryNode *
+unpackOneNode( const CompactTrieHeader *header, const CompactTrieNode *node, UErrorCode &status );
+
+
+// Convert a horizontal node (or subarray thereof) into a ternary subtrie
+static TernaryNode *
+unpackHorizontalArray( const CompactTrieHeader *header, const CompactTrieHorizontalEntry *array,
+ int low, int high, UErrorCode &status ) {
+ if (U_FAILURE(status) || low > high) {
+ return NULL;
+ }
+ int middle = (low+high)/2;
+ TernaryNode *result = new TernaryNode(array[middle].ch);
+ if (result == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+ const CompactTrieNode *equal = getCompactNode(header, array[middle].equal);
+ if (equal->flagscount & kParentEndsWord) {
+ result->flags |= kEndsWord;
+ }
+ result->low = unpackHorizontalArray(header, array, low, middle-1, status);
+ result->high = unpackHorizontalArray(header, array, middle+1, high, status);
+ result->equal = unpackOneNode(header, equal, status);
+ return result;
+}
+
+// Convert one compact trie node into a ternary subtrie
+static TernaryNode *
+unpackOneNode( const CompactTrieHeader *header, const CompactTrieNode *node, UErrorCode &status ) {
+ int nodeCount = (node->flagscount & kCountMask);
+ if (nodeCount == 0 || U_FAILURE(status)) {
+ // Failure, or terminal node
+ return NULL;
+ }
+ if (node->flagscount & kVerticalNode) {
+ const CompactTrieVerticalNode *vnode = (const CompactTrieVerticalNode *)node;
+ TernaryNode *head = NULL;
+ TernaryNode *previous = NULL;
+ TernaryNode *latest = NULL;
+ for (int i = 0; i < nodeCount; ++i) {
+ latest = new TernaryNode(vnode->chars[i]);
+ if (latest == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
+ if (head == NULL) {
+ head = latest;
+ }
+ if (previous != NULL) {
+ previous->equal = latest;
+ }
+ previous = latest;
+ }
+ if (latest != NULL) {
+ const CompactTrieNode *equal = getCompactNode(header, vnode->equal);
+ if (equal->flagscount & kParentEndsWord) {
+ latest->flags |= kEndsWord;
+ }
+ latest->equal = unpackOneNode(header, equal, status);
+ }
+ return head;
+ }
+ else {
+ // Horizontal node
+ const CompactTrieHorizontalNode *hnode = (const CompactTrieHorizontalNode *)node;
+ return unpackHorizontalArray(header, &hnode->entries[0], 0, nodeCount-1, status);
+ }
+}
+
+MutableTrieDictionary *
+CompactTrieDictionary::cloneMutable( UErrorCode &status ) const {
+ MutableTrieDictionary *result = new MutableTrieDictionary( status );
+ if (result == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+ TernaryNode *root = unpackOneNode(fData, getCompactNode(fData, fData->root), status);
+ if (U_FAILURE(status)) {
+ delete root; // Clean up
+ delete result;
+ return NULL;
+ }
+ result->fTrie = root;
+ return result;
+}
+
+U_NAMESPACE_END
+
+U_CAPI int32_t U_EXPORT2
+triedict_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outData,
+ UErrorCode *status) {
+
+ if (status == NULL || U_FAILURE(*status)) {
+ return 0;
+ }
+ if(ds==NULL || inData==NULL || length<-1 || (length>0 && outData==NULL)) {
+ *status=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ //
+ // Check that the data header is for for dictionary data.
+ // (Header contents are defined in genxxx.cpp)
+ //
+ const UDataInfo *pInfo = (const UDataInfo *)((const uint8_t *)inData+4);
+ if(!( pInfo->dataFormat[0]==0x54 && /* dataFormat="TrDc" */
+ pInfo->dataFormat[1]==0x72 &&
+ pInfo->dataFormat[2]==0x44 &&
+ pInfo->dataFormat[3]==0x63 &&
+ pInfo->formatVersion[0]==1 )) {
+ udata_printError(ds, "triedict_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized\n",
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3],
+ pInfo->formatVersion[0]);
+ *status=U_UNSUPPORTED_ERROR;
+ return 0;
+ }
+
+ //
+ // Swap the data header. (This is the generic ICU Data Header, not the
+ // CompactTrieHeader). This swap also conveniently gets us
+ // the size of the ICU d.h., which lets us locate the start
+ // of the RBBI specific data.
+ //
+ int32_t headerSize=udata_swapDataHeader(ds, inData, length, outData, status);
+
+ //
+ // Get the CompactTrieHeader, and check that it appears to be OK.
+ //
+ const uint8_t *inBytes =(const uint8_t *)inData+headerSize;
+ const CompactTrieHeader *header = (const CompactTrieHeader *)inBytes;
+ if (ds->readUInt32(header->magic) != COMPACT_TRIE_MAGIC_1
+ || ds->readUInt32(header->size) < sizeof(CompactTrieHeader))
+ {
+ udata_printError(ds, "triedict_swap(): CompactTrieHeader is invalid.\n");
+ *status=U_UNSUPPORTED_ERROR;
+ return 0;
+ }
+
+ //
+ // Prefight operation? Just return the size
+ //
+ uint32_t totalSize = ds->readUInt32(header->size);
+ int32_t sizeWithUData = (int32_t)totalSize + headerSize;
+ if (length < 0) {
+ return sizeWithUData;
+ }
+
+ //
+ // Check that length passed in is consistent with length from RBBI data header.
+ //
+ if (length < sizeWithUData) {
+ udata_printError(ds, "triedict_swap(): too few bytes (%d after ICU Data header) for trie data.\n",
+ totalSize);
+ *status=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+
+ //
+ // Swap the Data. Do the data itself first, then the CompactTrieHeader, because
+ // we need to reference the header to locate the data, and an
+ // inplace swap of the header leaves it unusable.
+ //
+ uint8_t *outBytes = (uint8_t *)outData + headerSize;
+ CompactTrieHeader *outputHeader = (CompactTrieHeader *)outBytes;
+
+#if 0
+ //
+ // If not swapping in place, zero out the output buffer before starting.
+ //
+ if (inBytes != outBytes) {
+ uprv_memset(outBytes, 0, totalSize);
+ }
+
+ // We need to loop through all the nodes in the offset table, and swap each one.
+ uint16_t nodeCount = ds->readUInt16(header->nodeCount);
+ // Skip node 0, which should always be 0.
+ for (int i = 1; i < nodeCount; ++i) {
+ uint32_t nodeOff = ds->readUInt32(header->offsets[i]);
+ const CompactTrieNode *inNode = (const CompactTrieNode *)(inBytes + nodeOff);
+ CompactTrieNode *outNode = (CompactTrieNode *)(outBytes + nodeOff);
+ uint16_t flagscount = ds->readUInt16(inNode->flagscount);
+ uint16_t itemCount = flagscount & kCountMask;
+ ds->writeUInt16(&outNode->flagscount, flagscount);
+ if (itemCount > 0) {
+ if (flagscount & kVerticalNode) {
+ ds->swapArray16(ds, inBytes+nodeOff+offsetof(CompactTrieVerticalNode,chars),
+ itemCount*sizeof(uint16_t),
+ outBytes+nodeOff+offsetof(CompactTrieVerticalNode,chars), status);
+ uint16_t equal = ds->readUInt16(inBytes+nodeOff+offsetof(CompactTrieVerticalNode,equal);
+ ds->writeUInt16(outBytes+nodeOff+offsetof(CompactTrieVerticalNode,equal));
+ }
+ else {
+ const CompactTrieHorizontalNode *inHNode = (const CompactTrieHorizontalNode *)inNode;
+ CompactTrieHorizontalNode *outHNode = (CompactTrieHorizontalNode *)outNode;
+ for (int j = 0; j < itemCount; ++j) {
+ uint16_t word = ds->readUInt16(inHNode->entries[j].ch);
+ ds->writeUInt16(&outHNode->entries[j].ch, word);
+ word = ds->readUInt16(inHNode->entries[j].equal);
+ ds->writeUInt16(&outHNode->entries[j].equal, word);
+ }
+ }
+ }
+ }
+#endif
+
+ // All the data in all the nodes consist of 16 bit items. Swap them all at once.
+ uint16_t nodeCount = ds->readUInt16(header->nodeCount);
+ uint32_t nodesOff = offsetof(CompactTrieHeader,offsets)+((uint32_t)nodeCount*sizeof(uint32_t));
+ ds->swapArray16(ds, inBytes+nodesOff, totalSize-nodesOff, outBytes+nodesOff, status);
+
+ // Swap the header
+ ds->writeUInt32(&outputHeader->size, totalSize);
+ uint32_t magic = ds->readUInt32(header->magic);
+ ds->writeUInt32(&outputHeader->magic, magic);
+ ds->writeUInt16(&outputHeader->nodeCount, nodeCount);
+ uint16_t root = ds->readUInt16(header->root);
+ ds->writeUInt16(&outputHeader->root, root);
+ ds->swapArray32(ds, inBytes+offsetof(CompactTrieHeader,offsets),
+ sizeof(uint32_t)*(int32_t)nodeCount,
+ outBytes+offsetof(CompactTrieHeader,offsets), status);
+
+ return sizeWithUData;
+}
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/Build/source/libs/icu-xetex/common/triedict.h b/Build/source/libs/icu-xetex/common/triedict.h
new file mode 100644
index 00000000000..b8796617690
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/triedict.h
@@ -0,0 +1,346 @@
+/**
+ *******************************************************************************
+ * Copyright (C) 2006, International Business Machines Corporation and others. *
+ * All Rights Reserved. *
+ *******************************************************************************
+ */
+
+#ifndef TRIEDICT_H
+#define TRIEDICT_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "unicode/utext.h"
+
+struct UEnumeration;
+struct UDataSwapper;
+struct UDataMemory;
+
+ /**
+ * <p>UDataSwapFn function for use in swapping a compact dictionary.</p>
+ *
+ * @param ds Pointer to UDataSwapper containing global data about the
+ * transformation and function pointers for handling primitive
+ * types.
+ * @param inData Pointer to the input data to be transformed or examined.
+ * @param length Length of the data, counting bytes. May be -1 for preflighting.
+ * If length>=0, then transform the data.
+ * If length==-1, then only determine the length of the data.
+ * The length cannot be determined from the data itself for all
+ * types of data (e.g., not for simple arrays of integers).
+ * @param outData Pointer to the output data buffer.
+ * If length>=0 (transformation), then the output buffer must
+ * have a capacity of at least length.
+ * If length==-1, then outData will not be used and can be NULL.
+ * @param pErrorCode ICU UErrorCode parameter, must not be NULL and must
+ * fulfill U_SUCCESS on input.
+ * @return The actual length of the data.
+ *
+ * @see UDataSwapper
+ */
+
+U_CAPI int32_t U_EXPORT2
+triedict_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
+U_NAMESPACE_BEGIN
+
+class StringEnumeration;
+struct CompactTrieHeader;
+
+/*******************************************************************
+ * TrieWordDictionary
+ */
+
+/**
+ * <p>TrieWordDictionary is an abstract class that represents a word
+ * dictionary based on a trie. The base protocol is read-only.
+ * Subclasses may allow writing.</p>
+ */
+class U_COMMON_API TrieWordDictionary : public UMemory {
+ public:
+
+ /**
+ * <p>Default constructor.</p>
+ *
+ */
+ TrieWordDictionary();
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~TrieWordDictionary();
+
+ /**
+ * <p>Find dictionary words that match the text.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left after the longest prefix match in the dictionary.
+ * @param start The current position in text.
+ * @param maxLength The maximum number of code units to match.
+ * @param lengths An array that is filled with the lengths of words that matched.
+ * @param count Filled with the number of elements output in lengths.
+ * @param limit The size of the lengths array; this limits the number of words output.
+ * @return The number of characters in text that were matched.
+ */
+ virtual int32_t matches( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit ) const = 0;
+
+ /**
+ * <p>Return a StringEnumeration for iterating all the words in the dictionary.</p>
+ *
+ * @param status A status code recording the success of the call.
+ * @return A StringEnumeration that will iterate through the whole dictionary.
+ * The caller is responsible for closing it. The order is unspecified.
+ */
+ virtual StringEnumeration *openWords( UErrorCode &status ) const = 0;
+
+};
+
+/*******************************************************************
+ * MutableTrieDictionary
+ */
+
+/**
+ * <p>MutableTrieDictionary is a TrieWordDictionary that allows words to be
+ * added.</p>
+ */
+
+struct TernaryNode; // Forwards declaration
+
+class U_COMMON_API MutableTrieDictionary : public TrieWordDictionary {
+ private:
+ /**
+ * The root node of the trie
+ * @internal
+ */
+
+ TernaryNode *fTrie;
+
+ /**
+ * A UText for internal use
+ * @internal
+ */
+
+ UText *fIter;
+
+ friend class CompactTrieDictionary; // For fast conversion
+
+ public:
+
+ /**
+ * <p>Constructor.</p>
+ *
+ * @param median A UChar around which to balance the trie. Ideally, it should
+ * begin at least one word that is near the median of the set in the dictionary
+ * @param status A status code recording the success of the call.
+ */
+ MutableTrieDictionary( UChar median, UErrorCode &status );
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~MutableTrieDictionary();
+
+ /**
+ * <p>Find dictionary words that match the text.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left after the longest prefix match in the dictionary.
+ * @param maxLength The maximum number of code units to match.
+ * @param lengths An array that is filled with the lengths of words that matched.
+ * @param count Filled with the number of elements output in lengths.
+ * @param limit The size of the lengths array; this limits the number of words output.
+ * @return The number of characters in text that were matched.
+ */
+ virtual int32_t matches( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit ) const;
+
+ /**
+ * <p>Return a StringEnumeration for iterating all the words in the dictionary.</p>
+ *
+ * @param status A status code recording the success of the call.
+ * @return A StringEnumeration that will iterate through the whole dictionary.
+ * The caller is responsible for closing it. The order is unspecified.
+ */
+ virtual StringEnumeration *openWords( UErrorCode &status ) const;
+
+ /**
+ * <p>Add one word to the dictionary.</p>
+ *
+ * @param word A UChar buffer containing the word.
+ * @param length The length of the word.
+ * @param status The resultant status
+ */
+ virtual void addWord( const UChar *word,
+ int32_t length,
+ UErrorCode &status);
+
+#if 0
+ /**
+ * <p>Add all strings from a UEnumeration to the dictionary.</p>
+ *
+ * @param words A UEnumeration that will return the desired words.
+ * @param status The resultant status
+ */
+ virtual void addWords( UEnumeration *words, UErrorCode &status );
+#endif
+
+protected:
+ /**
+ * <p>Search the dictionary for matches.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left after the longest prefix match in the dictionary.
+ * @param maxLength The maximum number of code units to match.
+ * @param lengths An array that is filled with the lengths of words that matched.
+ * @param count Filled with the number of elements output in lengths.
+ * @param limit The size of the lengths array; this limits the number of words output.
+ * @param parent The parent of the current node
+ * @param pMatched The returned parent node matched the input
+ * @return The number of characters in text that were matched.
+ */
+ virtual int32_t search( UText *text,
+ int32_t maxLength,
+ int32_t *lengths,
+ int &count,
+ int limit,
+ TernaryNode *&parent,
+ UBool &pMatched ) const;
+
+private:
+ /**
+ * <p>Private constructor. The root node it not allocated.</p>
+ *
+ * @param status A status code recording the success of the call.
+ */
+ MutableTrieDictionary( UErrorCode &status );
+};
+
+/*******************************************************************
+ * CompactTrieDictionary
+ */
+
+/**
+ * <p>CompactTrieDictionary is a TrieWordDictionary that has been compacted
+ * to save space.</p>
+ */
+class U_COMMON_API CompactTrieDictionary : public TrieWordDictionary {
+ private:
+ /**
+ * The root node of the trie
+ */
+
+ const CompactTrieHeader *fData;
+
+ /**
+ * A UBool indicating whether or not we own the fData.
+ */
+
+ UBool fOwnData;
+
+ UDataMemory *fUData;
+ public:
+ /**
+ * <p>Construct a dictionary from a UDataMemory.</p>
+ *
+ * @param data A pointer to a UDataMemory, which is adopted
+ * @param status A status code giving the result of the constructor
+ */
+ CompactTrieDictionary(UDataMemory *dataObj, UErrorCode &status);
+
+ /**
+ * <p>Construct a dictionary from raw saved data.</p>
+ *
+ * @param data A pointer to the raw data, which is still owned by the caller
+ * @param status A status code giving the result of the constructor
+ */
+ CompactTrieDictionary(const void *dataObj, UErrorCode &status);
+
+ /**
+ * <p>Construct a dictionary from a MutableTrieDictionary.</p>
+ *
+ * @param dict The dictionary to use as input.
+ * @param status A status code recording the success of the call.
+ */
+ CompactTrieDictionary( const MutableTrieDictionary &dict, UErrorCode &status );
+
+ /**
+ * <p>Virtual destructor.</p>
+ */
+ virtual ~CompactTrieDictionary();
+
+ /**
+ * <p>Find dictionary words that match the text.</p>
+ *
+ * @param text A UText representing the text. The
+ * iterator is left after the longest prefix match in the dictionary.
+ * @param maxLength The maximum number of code units to match.
+ * @param lengths An array that is filled with the lengths of words that matched.
+ * @param count Filled with the number of elements output in lengths.
+ * @param limit The size of the lengths array; this limits the number of words output.
+ * @return The number of characters in text that were matched.
+ */
+ virtual int32_t matches( UText *text,
+ int32_t rangeEnd,
+ int32_t *lengths,
+ int &count,
+ int limit ) const;
+
+ /**
+ * <p>Return a StringEnumeration for iterating all the words in the dictionary.</p>
+ *
+ * @param status A status code recording the success of the call.
+ * @return A StringEnumeration that will iterate through the whole dictionary.
+ * The caller is responsible for closing it. The order is unspecified.
+ */
+ virtual StringEnumeration *openWords( UErrorCode &status ) const;
+
+ /**
+ * <p>Return the size of the compact data.</p>
+ *
+ * @return The size of the dictionary's compact data.
+ */
+ virtual uint32_t dataSize() const;
+
+ /**
+ * <p>Return a void * pointer to the compact data, platform-endian.</p>
+ *
+ * @return The data for the compact dictionary, suitable for passing to the
+ * constructor.
+ */
+ virtual const void *data() const;
+
+ /**
+ * <p>Return a MutableTrieDictionary clone of this dictionary.</p>
+ *
+ * @param status A status code recording the success of the call.
+ * @return A MutableTrieDictionary with the same data as this dictionary
+ */
+ virtual MutableTrieDictionary *cloneMutable( UErrorCode &status ) const;
+
+ private:
+
+ /**
+ * <p>Convert a MutableTrieDictionary into a compact data blob.</p>
+ *
+ * @param dict The dictionary to convert.
+ * @param status A status code recording the success of the call.
+ * @return A single data blob starting with a CompactTrieHeader.
+ */
+ static CompactTrieHeader *compactMutableTrieDictionary( const MutableTrieDictionary &dict,
+ UErrorCode &status );
+
+};
+
+U_NAMESPACE_END
+
+ /* TRIEDICT_H */
+#endif
diff --git a/Build/source/libs/icu-xetex/common/ubidi.c b/Build/source/libs/icu-xetex/common/ubidi.c
index f7cc5b7a8d9..bccdbfaa72c 100644
--- a/Build/source/libs/icu-xetex/common/ubidi.c
+++ b/Build/source/libs/icu-xetex/common/ubidi.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -215,6 +215,9 @@ ubidi_getMemory(void **pMemory, int32_t *pSize, UBool mayAllocate, int32_t sizeN
/* not enough memory, and we must not allocate */
return FALSE;
} else if(sizeNeeded!=*pSize && mayAllocate) {
+ /* FOOD FOR THOUGHT: in hope to improve performance, we should
+ * try never shrinking memory, only growing it when required.
+ */
/* we may try to grow or shrink */
void *memory;
@@ -243,12 +246,16 @@ ubidi_close(UBiDi *pBiDi) {
if(pBiDi->levelsMemory!=NULL) {
uprv_free(pBiDi->levelsMemory);
}
+ if(pBiDi->runsMemory!=NULL) {
+ uprv_free(pBiDi->runsMemory);
+ }
if(pBiDi->parasMemory!=NULL) {
uprv_free(pBiDi->parasMemory);
}
- if(pBiDi->runsMemory!=NULL) {
- uprv_free(pBiDi->runsMemory);
+ if(pBiDi->insertPoints.points!=NULL) {
+ uprv_free(pBiDi->insertPoints.points);
}
+
uprv_free(pBiDi);
}
}
@@ -259,6 +266,8 @@ U_CAPI void U_EXPORT2
ubidi_setInverse(UBiDi *pBiDi, UBool isInverse) {
if(pBiDi!=NULL) {
pBiDi->isInverse=isInverse;
+ pBiDi->reorderingMode = isInverse ? UBIDI_REORDER_INVERSE_NUMBERS_AS_L
+ : UBIDI_REORDER_DEFAULT;
}
}
@@ -271,6 +280,58 @@ ubidi_isInverse(UBiDi *pBiDi) {
}
}
+/* FOOD FOR THOUGHT: currently the reordering modes are a mixture of
+ * algorithm for direct BiDi, algorithm for inverse BiDi and the bizarre
+ * concept of RUNS_ONLY which is a double operation.
+ * It could be advantageous to divide this into 3 concepts:
+ * a) Operation: direct / inverse / RUNS_ONLY
+ * b) Direct algorithm: default / NUMBERS_SPECIAL / GROUP_NUMBERS_WITH_L
+ * c) Inverse algorithm: default / INVERSE_LIKE_DIRECT / NUMBERS_SPECIAL
+ * This would allow combinations not possible today like RUNS_ONLY with
+ * NUMBERS_SPECIAL.
+ * Also allow to set INSERT_MARKS for the direct step of RUNS_ONLY and
+ * REMOVE_CONTROLS for the inverse step.
+ * Not all combinations would be supported, and probably not all do make sense.
+ * This would need to document which ones are supported and what are the
+ * fallbacks for unsupported combinations.
+ */
+U_CAPI void U_EXPORT2
+ubidi_setReorderingMode(UBiDi *pBiDi, UBiDiReorderingMode reorderingMode) {
+ if ((pBiDi != NULL) && (reorderingMode >= UBIDI_REORDER_DEFAULT)
+ && (reorderingMode < UBIDI_REORDER_COUNT)) {
+ pBiDi->reorderingMode = reorderingMode;
+ pBiDi->isInverse = reorderingMode == UBIDI_REORDER_INVERSE_NUMBERS_AS_L;
+ }
+}
+
+U_CAPI UBiDiReorderingMode U_EXPORT2
+ubidi_getReorderingMode(UBiDi *pBiDi) {
+ if (pBiDi != NULL) {
+ return pBiDi->reorderingMode;
+ } else {
+ return UBIDI_REORDER_DEFAULT;
+ }
+}
+
+U_CAPI void U_EXPORT2
+ubidi_setReorderingOptions(UBiDi *pBiDi, uint32_t reorderingOptions) {
+ if (reorderingOptions & UBIDI_OPTION_REMOVE_CONTROLS) {
+ reorderingOptions&=~UBIDI_OPTION_INSERT_MARKS;
+ }
+ if (pBiDi != NULL) {
+ pBiDi->reorderingOptions = reorderingOptions;
+ }
+}
+
+U_CAPI uint32_t U_EXPORT2
+ubidi_getReorderingOptions(UBiDi *pBiDi) {
+ if (pBiDi != NULL) {
+ return pBiDi->reorderingOptions;
+ } else {
+ return 0;
+ }
+}
+
/* perform (P2)..(P3) ------------------------------------------------------- */
/*
@@ -283,12 +344,20 @@ getDirProps(UBiDi *pBiDi) {
const UChar *text=pBiDi->text;
DirProp *dirProps=pBiDi->dirPropsMemory; /* pBiDi->dirProps is const */
- int32_t i=0, i0, i1, length=pBiDi->length;
+ int32_t i=0, i0, i1, length=pBiDi->originalLength;
Flags flags=0; /* collect all directionalities in the text */
UChar32 uchar;
- DirProp dirProp = 0, paraDirDefault = 0; /* initialize to avoid compiler warnings */
+ DirProp dirProp=0, paraDirDefault=0;/* initialize to avoid compiler warnings */
UBool isDefaultLevel=IS_DEFAULT_LEVEL(pBiDi->paraLevel);
- UBool paraLevelStillDefault=FALSE; /* flag for real value not set */
+ /* for inverse BiDi, the default para level is set to RTL if there is a
+ strong character at either end of the text */
+ UBool isDefaultLevelInverse=isDefaultLevel &&
+ (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT ||
+ pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL);
+ int32_t lastArabicPos=-1;
+ int32_t controlCount=0;
+ UBool removeBiDiControls = pBiDi->reorderingOptions &
+ UBIDI_OPTION_REMOVE_CONTROLS;
typedef enum {
NOT_CONTEXTUAL, /* 0: not contextual paraLevel */
@@ -299,14 +368,18 @@ getDirProps(UBiDi *pBiDi) {
int32_t paraStart=0; /* index of first char in paragraph */
DirProp paraDir; /* == CONTEXT_RTL within paragraphs
starting with strong R char */
+ DirProp lastStrongDir=0; /* for default level & inverse BiDi */
+ int32_t lastStrongLTR=0; /* for STREAMING option */
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_STREAMING) {
+ pBiDi->length=0;
+ lastStrongLTR=0;
+ }
if(isDefaultLevel) {
paraDirDefault=pBiDi->paraLevel&1 ? CONTEXT_RTL : 0;
- state=LOOKING_FOR_STRONG;
- paraStart=0;
paraDir=paraDirDefault;
- pBiDi->paraLevel&=1; /* set to default */
- paraLevelStillDefault=TRUE;
+ lastStrongDir=paraDirDefault;
+ state=LOOKING_FOR_STRONG;
} else {
state=NOT_CONTEXTUAL;
paraDir=0;
@@ -317,11 +390,12 @@ getDirProps(UBiDi *pBiDi) {
* the DEFAULT_XXX values are designed so that
* their bit 0 alone yields the intended default
*/
- for( /* i=0 above */ ; i<length; /* i is incremented by UTF_NEXT_CHAR */) {
+ for( /* i=0 above */ ; i<length; ) {
+ /* i is incremented by UTF_NEXT_CHAR */
i0=i; /* index of first code unit */
UTF_NEXT_CHAR(text, i, length, uchar);
i1=i-1; /* index of last code unit, gets the directional property */
- flags|=DIRPROP_FLAG(dirProp=ubidi_getClass(pBiDi->bdp, uchar));
+ flags|=DIRPROP_FLAG(dirProp=ubidi_getCustomizedClass(pBiDi, uchar));
dirProps[i1]=dirProp|paraDir;
if(i1>i0) { /* set previous code units' properties to BN */
flags|=DIRPROP_FLAG(BN);
@@ -332,13 +406,9 @@ getDirProps(UBiDi *pBiDi) {
if(state==LOOKING_FOR_STRONG) {
if(dirProp==L) {
state=FOUND_STRONG_CHAR;
- if(paraLevelStillDefault) {
- paraLevelStillDefault=FALSE;
- pBiDi->paraLevel=0;
- }
if(paraDir) {
paraDir=0;
- for(i1=paraStart; i1<=i; i1++) {
+ for(i1=paraStart; i1<i; i1++) {
dirProps[i1]&=~CONTEXT_RTL;
}
}
@@ -346,32 +416,67 @@ getDirProps(UBiDi *pBiDi) {
}
if(dirProp==R || dirProp==AL) {
state=FOUND_STRONG_CHAR;
- if(paraLevelStillDefault) {
- paraLevelStillDefault=FALSE;
- pBiDi->paraLevel=1;
- }
if(paraDir==0) {
paraDir=CONTEXT_RTL;
- for(i1=paraStart; i1<=i; i1++) {
+ for(i1=paraStart; i1<i; i1++) {
dirProps[i1]|=CONTEXT_RTL;
}
}
continue;
}
}
- if((dirProp==B)&&(i<length)) { /* B not last char in text */
- if(!((uchar==CR) && (text[i]==LF))) {
- pBiDi->paraCount++;
+ if(dirProp==L) {
+ lastStrongDir=0;
+ lastStrongLTR=i; /* i is index to next character */
+ }
+ else if(dirProp==R) {
+ lastStrongDir=CONTEXT_RTL;
+ }
+ else if(dirProp==AL) {
+ lastStrongDir=CONTEXT_RTL;
+ lastArabicPos=i-1;
+ }
+ else if(dirProp==B) {
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_STREAMING) {
+ pBiDi->length=i; /* i is index to next character */
+ }
+ if(isDefaultLevelInverse && (lastStrongDir==CONTEXT_RTL) &&(paraDir!=lastStrongDir)) {
+ for( ; paraStart<i; paraStart++) {
+ dirProps[paraStart]|=CONTEXT_RTL;
+ }
+ }
+ if(i<length) { /* B not last char in text */
+ if(!((uchar==CR) && (text[i]==LF))) {
+ pBiDi->paraCount++;
+ }
if(isDefaultLevel) {
state=LOOKING_FOR_STRONG;
paraStart=i; /* i is index to next character */
paraDir=paraDirDefault;
- /* keep the paraLevel of the first paragraph even if it
- defaulted (no strong char was found) */
- paraLevelStillDefault=FALSE;
+ lastStrongDir=paraDirDefault;
}
}
}
+ if(removeBiDiControls && IS_BIDI_CONTROL_CHAR(uchar)) {
+ controlCount++;
+ }
+ }
+ if(isDefaultLevelInverse && (lastStrongDir==CONTEXT_RTL) &&(paraDir!=lastStrongDir)) {
+ for(i1=paraStart; i1<length; i1++) {
+ dirProps[i1]|=CONTEXT_RTL;
+ }
+ }
+ if(isDefaultLevel) {
+ pBiDi->paraLevel=GET_PARALEVEL(pBiDi, 0);
+ }
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_STREAMING) {
+ if((lastStrongLTR>pBiDi->length) &&
+ (GET_PARALEVEL(pBiDi, lastStrongLTR)==0)) {
+ pBiDi->length = lastStrongLTR;
+ }
+ if(pBiDi->length<pBiDi->originalLength) {
+ pBiDi->paraCount--;
+ }
}
/* The following line does nothing new for contextual paraLevel, but is
needed for absolute paraLevel. */
@@ -381,14 +486,17 @@ getDirProps(UBiDi *pBiDi) {
flags|=DIRPROP_FLAG(L);
}
+ pBiDi->controlCount = controlCount;
pBiDi->flags=flags;
+ pBiDi->lastArabicPos=lastArabicPos;
}
/* perform (X1)..(X9) ------------------------------------------------------- */
/* determine if the text is mixed-directional or single-directional */
static UBiDiDirection
-directionFromFlags(Flags flags) {
+directionFromFlags(UBiDi *pBiDi) {
+ Flags flags=pBiDi->flags;
/* if the text contains AN and neutrals, then some neutrals may become RTL */
if(!(flags&MASK_RTL || ((flags&DIRPROP_FLAG(AN)) && (flags&MASK_POSSIBLE_N)))) {
return UBIDI_LTR;
@@ -466,13 +574,15 @@ resolveExplicitLevels(UBiDi *pBiDi) {
int32_t paraIndex=0;
/* determine if the text is mixed-directional or single-directional */
- direction=directionFromFlags(flags);
+ direction=directionFromFlags(pBiDi);
- /* we may not need to resolve any explicit levels */
- if(direction!=UBIDI_MIXED) {
+ /* we may not need to resolve any explicit levels, but for multiple
+ paragraphs we want to loop on all chars to set the para boundaries */
+ if((direction!=UBIDI_MIXED) && (pBiDi->paraCount==1)) {
/* not mixed directionality: levels don't matter - trailingWSStart will be 0 */
} else if((pBiDi->paraCount==1) &&
- (!(flags&MASK_EXPLICIT) || pBiDi->isInverse)) {
+ (!(flags&MASK_EXPLICIT) ||
+ (pBiDi->reorderingMode > UBIDI_REORDER_LAST_LOGICAL_TO_VISUAL))) {
/* mixed, but all characters are at the same embedding level */
/* or we are in "inverse BiDi" */
/* and we don't have contextual multiple paragraphs with some B char */
@@ -604,8 +714,9 @@ resolveExplicitLevels(UBiDi *pBiDi) {
/* again, determine if the text is mixed-directional or single-directional */
pBiDi->flags=flags;
- direction=directionFromFlags(flags);
+ direction=directionFromFlags(pBiDi);
}
+
return direction;
}
@@ -661,7 +772,408 @@ checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
/* determine if the text is mixed-directional or single-directional */
pBiDi->flags=flags;
- return directionFromFlags(flags);
+ return directionFromFlags(pBiDi);
+}
+
+/*********************************************************************/
+/* The Properties state machine table */
+/*********************************************************************/
+/* */
+/* All table cells are 8 bits: */
+/* bits 0..4: next state */
+/* bits 5..7: action to perform (if > 0) */
+/* */
+/* Cells may be of format "n" where n represents the next state */
+/* (except for the rightmost column). */
+/* Cells may also be of format "_(x,y)" where x represents an action */
+/* to perform and y represents the next state. */
+/* */
+/*********************************************************************/
+/* Definitions and type for properties state table */
+/*********************************************************************/
+#define IMPTABPROPS_COLUMNS 14
+#define IMPTABPROPS_RES (IMPTABPROPS_COLUMNS - 1)
+#define GET_STATEPROPS(cell) ((cell)&0x1f)
+#define GET_ACTIONPROPS(cell) ((cell)>>5)
+#define _(action, newState) ((uint8_t)(newState+(action<<5)))
+
+static const uint8_t groupProp[] = /* dirProp regrouped */
+{
+/* L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN */
+ 0, 1, 2, 7, 8, 3, 9, 6, 5, 4, 4, 10, 10, 12, 10, 10, 10, 11, 10
+};
+enum { _L=0, _R=1, _EN=2, _AN=3, _ON=4, _S=5, _B=6 }; /* reduced dirProp */
+
+/*********************************************************************/
+/* */
+/* PROPERTIES STATE TABLE */
+/* */
+/* In table impTabProps, */
+/* - the ON column regroups ON and WS */
+/* - the BN column regroups BN, LRE, RLE, LRO, RLO, PDF */
+/* - the Res column is the reduced property assigned to a run */
+/* */
+/* Action 1: process current run1, init new run1 */
+/* 2: init new run2 */
+/* 3: process run1, process run2, init new run1 */
+/* 4: process run1, set run1=run2, init new run2 */
+/* */
+/* Notes: */
+/* 1) This table is used in resolveImplicitLevels(). */
+/* 2) This table triggers actions when there is a change in the Bidi*/
+/* property of incoming characters (action 1). */
+/* 3) Most such property sequences are processed immediately (in */
+/* fact, passed to processPropertySeq(). */
+/* 4) However, numbers are assembled as one sequence. This means */
+/* that undefined situations (like CS following digits, until */
+/* it is known if the next char will be a digit) are held until */
+/* following chars define them. */
+/* Example: digits followed by CS, then comes another CS or ON; */
+/* the digits will be processed, then the CS assigned */
+/* as the start of an ON sequence (action 3). */
+/* 5) There are cases where more than one sequence must be */
+/* processed, for instance digits followed by CS followed by L: */
+/* the digits must be processed as one sequence, and the CS */
+/* must be processed as an ON sequence, all this before starting */
+/* assembling chars for the opening L sequence. */
+/* */
+/* */
+static const uint8_t impTabProps[][IMPTABPROPS_COLUMNS] =
+{
+/* L , R , EN , AN , ON , S , B , ES , ET , CS , BN , NSM , AL , Res */
+/* 0 Init */ { 1 , 2 , 4 , 5 , 7 , 15 , 17 , 7 , 9 , 7 , 0 , 7 , 3 , _ON },
+/* 1 L */ { 1 , _(1,2), _(1,4), _(1,5), _(1,7),_(1,15),_(1,17), _(1,7), _(1,9), _(1,7), 1 , 1 , _(1,3), _L },
+/* 2 R */ { _(1,1), 2 , _(1,4), _(1,5), _(1,7),_(1,15),_(1,17), _(1,7), _(1,9), _(1,7), 2 , 2 , _(1,3), _R },
+/* 3 AL */ { _(1,1), _(1,2), _(1,6), _(1,6), _(1,8),_(1,16),_(1,17), _(1,8), _(1,8), _(1,8), 3 , 3 , 3 , _R },
+/* 4 EN */ { _(1,1), _(1,2), 4 , _(1,5), _(1,7),_(1,15),_(1,17),_(2,10), 11 ,_(2,10), 4 , 4 , _(1,3), _EN },
+/* 5 AN */ { _(1,1), _(1,2), _(1,4), 5 , _(1,7),_(1,15),_(1,17), _(1,7), _(1,9),_(2,12), 5 , 5 , _(1,3), _AN },
+/* 6 AL:EN/AN */ { _(1,1), _(1,2), 6 , 6 , _(1,8),_(1,16),_(1,17), _(1,8), _(1,8),_(2,13), 6 , 6 , _(1,3), _AN },
+/* 7 ON */ { _(1,1), _(1,2), _(1,4), _(1,5), 7 ,_(1,15),_(1,17), 7 ,_(2,14), 7 , 7 , 7 , _(1,3), _ON },
+/* 8 AL:ON */ { _(1,1), _(1,2), _(1,6), _(1,6), 8 ,_(1,16),_(1,17), 8 , 8 , 8 , 8 , 8 , _(1,3), _ON },
+/* 9 ET */ { _(1,1), _(1,2), 4 , _(1,5), 7 ,_(1,15),_(1,17), 7 , 9 , 7 , 9 , 9 , _(1,3), _ON },
+/*10 EN+ES/CS */ { _(3,1), _(3,2), 4 , _(3,5), _(4,7),_(3,15),_(3,17), _(4,7),_(4,14), _(4,7), 10 , _(4,7), _(3,3), _EN },
+/*11 EN+ET */ { _(1,1), _(1,2), 4 , _(1,5), _(1,7),_(1,15),_(1,17), _(1,7), 11 , _(1,7), 11 , 11 , _(1,3), _EN },
+/*12 AN+CS */ { _(3,1), _(3,2), _(3,4), 5 , _(4,7),_(3,15),_(3,17), _(4,7),_(4,14), _(4,7), 12 , _(4,7), _(3,3), _AN },
+/*13 AL:EN/AN+CS */ { _(3,1), _(3,2), 6 , 6 , _(4,8),_(3,16),_(3,17), _(4,8), _(4,8), _(4,8), 13 , _(4,8), _(3,3), _AN },
+/*14 ON+ET */ { _(1,1), _(1,2), _(4,4), _(1,5), 7 ,_(1,15),_(1,17), 7 , 14 , 7 , 14 , 14 , _(1,3), _ON },
+/*15 S */ { _(1,1), _(1,2), _(1,4), _(1,5), _(1,7), 15 ,_(1,17), _(1,7), _(1,9), _(1,7), 15 , _(1,7), _(1,3), _S },
+/*16 AL:S */ { _(1,1), _(1,2), _(1,6), _(1,6), _(1,8), 16 ,_(1,17), _(1,8), _(1,8), _(1,8), 16 , _(1,8), _(1,3), _S },
+/*17 B */ { _(1,1), _(1,2), _(1,4), _(1,5), _(1,7),_(1,15), 17 , _(1,7), _(1,9), _(1,7), 17 , _(1,7), _(1,3), _B }
+};
+
+/* we must undef macro _ because the levels table have a different
+ * structure (4 bits for action and 4 bits for next state.
+ */
+#undef _
+
+/*********************************************************************/
+/* The levels state machine tables */
+/*********************************************************************/
+/* */
+/* All table cells are 8 bits: */
+/* bits 0..3: next state */
+/* bits 4..7: action to perform (if > 0) */
+/* */
+/* Cells may be of format "n" where n represents the next state */
+/* (except for the rightmost column). */
+/* Cells may also be of format "_(x,y)" where x represents an action */
+/* to perform and y represents the next state. */
+/* */
+/* This format limits each table to 16 states each and to 15 actions.*/
+/* */
+/*********************************************************************/
+/* Definitions and type for levels state tables */
+/*********************************************************************/
+#define IMPTABLEVELS_COLUMNS (_B + 2)
+#define IMPTABLEVELS_RES (IMPTABLEVELS_COLUMNS - 1)
+#define GET_STATE(cell) ((cell)&0x0f)
+#define GET_ACTION(cell) ((cell)>>4)
+#define _(action, newState) ((uint8_t)(newState+(action<<4)))
+
+typedef uint8_t ImpTab[][IMPTABLEVELS_COLUMNS];
+typedef uint8_t ImpAct[];
+
+/* FOOD FOR THOUGHT: each ImpTab should have its associated ImpAct,
+ * instead of having a pair of ImpTab and a pair of ImpAct.
+ */
+typedef struct ImpTabPair {
+ ImpTab * pImpTab[2];
+ ImpAct * pImpAct[2];
+} ImpTabPair;
+
+/*********************************************************************/
+/* */
+/* LEVELS STATE TABLES */
+/* */
+/* In all levels state tables, */
+/* - state 0 is the initial state */
+/* - the Res column is the increment to add to the text level */
+/* for this property sequence. */
+/* */
+/* The impAct arrays for each table of a pair map the local action */
+/* numbers of the table to the total list of actions. For instance, */
+/* action 2 in a given table corresponds to the action number which */
+/* appears in entry [2] of the impAct array for that table. */
+/* The first entry of all impAct arrays must be 0. */
+/* */
+/* Action 1: init conditional sequence */
+/* 2: prepend conditional sequence to current sequence */
+/* 3: set ON sequence to new level - 1 */
+/* 4: init EN/AN/ON sequence */
+/* 5: fix EN/AN/ON sequence followed by R */
+/* 6: set previous level sequence to level 2 */
+/* */
+/* Notes: */
+/* 1) These tables are used in processPropertySeq(). The input */
+/* is property sequences as determined by resolveImplicitLevels. */
+/* 2) Most such property sequences are processed immediately */
+/* (levels are assigned). */
+/* 3) However, some sequences cannot be assigned a final level till */
+/* one or more following sequences are received. For instance, */
+/* ON following an R sequence within an even-level paragraph. */
+/* If the following sequence is R, the ON sequence will be */
+/* assigned basic run level+1, and so will the R sequence. */
+/* 4) S is generally handled like ON, since its level will be fixed */
+/* to paragraph level in adjustWSLevels(). */
+/* */
+
+static const ImpTab impTabL_DEFAULT = /* Even paragraph level */
+/* In this table, conditional sequences receive the higher possible level
+ until proven otherwise.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 0 , 1 , 0 , 2 , 0 , 0 , 0 , 0 },
+/* 1 : R */ { 0 , 1 , 3 , 3 , _(1,4), _(1,4), 0 , 1 },
+/* 2 : AN */ { 0 , 1 , 0 , 2 , _(1,5), _(1,5), 0 , 2 },
+/* 3 : R+EN/AN */ { 0 , 1 , 3 , 3 , _(1,4), _(1,4), 0 , 2 },
+/* 4 : R+ON */ { _(2,0), 1 , 3 , 3 , 4 , 4 , _(2,0), 1 },
+/* 5 : AN+ON */ { _(2,0), 1 , _(2,0), 2 , 5 , 5 , _(2,0), 1 }
+};
+static const ImpTab impTabR_DEFAULT = /* Odd paragraph level */
+/* In this table, conditional sequences receive the lower possible level
+ until proven otherwise.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 0 },
+/* 1 : L */ { 1 , 0 , 1 , 3 , _(1,4), _(1,4), 0 , 1 },
+/* 2 : EN/AN */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 1 },
+/* 3 : L+AN */ { 1 , 0 , 1 , 3 , 5 , 5 , 0 , 1 },
+/* 4 : L+ON */ { _(2,1), 0 , _(2,1), 3 , 4 , 4 , 0 , 0 },
+/* 5 : L+AN+ON */ { 1 , 0 , 1 , 3 , 5 , 5 , 0 , 0 }
+};
+static const ImpAct impAct0 = {0,1,2,3,4,5,6};
+static const ImpTabPair impTab_DEFAULT = {{(ImpTab*)&impTabL_DEFAULT,
+ (ImpTab*)&impTabR_DEFAULT},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct0}};
+
+static const ImpTab impTabL_NUMBERS_SPECIAL = /* Even paragraph level */
+/* In this table, conditional sequences receive the higher possible level
+ until proven otherwise.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 0 , 2 , 1 , 1 , 0 , 0 , 0 , 0 },
+/* 1 : L+EN/AN */ { 0 , 2 , 1 , 1 , 0 , 0 , 0 , 2 },
+/* 2 : R */ { 0 , 2 , 4 , 4 , _(1,3), 0 , 0 , 1 },
+/* 3 : R+ON */ { _(2,0), 2 , 4 , 4 , 3 , 3 , _(2,0), 1 },
+/* 4 : R+EN/AN */ { 0 , 2 , 4 , 4 , _(1,3), _(1,3), 0 , 2 }
+ };
+static const ImpTabPair impTab_NUMBERS_SPECIAL = {{(ImpTab*)&impTabL_NUMBERS_SPECIAL,
+ (ImpTab*)&impTabR_DEFAULT},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct0}};
+
+static const ImpTab impTabL_GROUP_NUMBERS_WITH_R =
+/* In this table, EN/AN+ON sequences receive levels as if associated with R
+ until proven that there is L or sor/eor on both sides. AN is handled like EN.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 init */ { 0 , 3 , _(1,1), _(1,1), 0 , 0 , 0 , 0 },
+/* 1 EN/AN */ { _(2,0), 3 , 1 , 1 , 2 , _(2,0), _(2,0), 2 },
+/* 2 EN/AN+ON */ { _(2,0), 3 , 1 , 1 , 2 , _(2,0), _(2,0), 1 },
+/* 3 R */ { 0 , 3 , 5 , 5 , _(1,4), 0 , 0 , 1 },
+/* 4 R+ON */ { _(2,0), 3 , 5 , 5 , 4 , _(2,0), _(2,0), 1 },
+/* 5 R+EN/AN */ { 0 , 3 , 5 , 5 , _(1,4), 0 , 0 , 2 }
+};
+static const ImpTab impTabR_GROUP_NUMBERS_WITH_R =
+/* In this table, EN/AN+ON sequences receive levels as if associated with R
+ until proven that there is L on both sides. AN is handled like EN.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 init */ { 2 , 0 , 1 , 1 , 0 , 0 , 0 , 0 },
+/* 1 EN/AN */ { 2 , 0 , 1 , 1 , 0 , 0 , 0 , 1 },
+/* 2 L */ { 2 , 0 , _(1,4), _(1,4), _(1,3), 0 , 0 , 1 },
+/* 3 L+ON */ { _(2,2), 0 , 4 , 4 , 3 , 0 , 0 , 0 },
+/* 4 L+EN/AN */ { _(2,2), 0 , 4 , 4 , 3 , 0 , 0 , 1 }
+};
+static const ImpTabPair impTab_GROUP_NUMBERS_WITH_R = {
+ {(ImpTab*)&impTabL_GROUP_NUMBERS_WITH_R,
+ (ImpTab*)&impTabR_GROUP_NUMBERS_WITH_R},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct0}};
+
+
+static const ImpTab impTabL_INVERSE_NUMBERS_AS_L =
+/* This table is identical to the Default LTR table except that EN and AN are
+ handled like L.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 },
+/* 1 : R */ { 0 , 1 , 0 , 0 , _(1,4), _(1,4), 0 , 1 },
+/* 2 : AN */ { 0 , 1 , 0 , 0 , _(1,5), _(1,5), 0 , 2 },
+/* 3 : R+EN/AN */ { 0 , 1 , 0 , 0 , _(1,4), _(1,4), 0 , 2 },
+/* 4 : R+ON */ { _(2,0), 1 , _(2,0), _(2,0), 4 , 4 , _(2,0), 1 },
+/* 5 : AN+ON */ { _(2,0), 1 , _(2,0), _(2,0), 5 , 5 , _(2,0), 1 }
+};
+static const ImpTab impTabR_INVERSE_NUMBERS_AS_L =
+/* This table is identical to the Default RTL table except that EN and AN are
+ handled like L.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 },
+/* 1 : L */ { 1 , 0 , 1 , 1 , _(1,4), _(1,4), 0 , 1 },
+/* 2 : EN/AN */ { 1 , 0 , 1 , 1 , 0 , 0 , 0 , 1 },
+/* 3 : L+AN */ { 1 , 0 , 1 , 1 , 5 , 5 , 0 , 1 },
+/* 4 : L+ON */ { _(2,1), 0 , _(2,1), _(2,1), 4 , 4 , 0 , 0 },
+/* 5 : L+AN+ON */ { 1 , 0 , 1 , 1 , 5 , 5 , 0 , 0 }
+};
+static const ImpTabPair impTab_INVERSE_NUMBERS_AS_L = {
+ {(ImpTab*)&impTabL_INVERSE_NUMBERS_AS_L,
+ (ImpTab*)&impTabR_INVERSE_NUMBERS_AS_L},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct0}};
+
+static const ImpTab impTabR_INVERSE_LIKE_DIRECT = /* Odd paragraph level */
+/* In this table, conditional sequences receive the lower possible level
+ until proven otherwise.
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 0 },
+/* 1 : L */ { 1 , 0 , 1 , 2 , _(1,3), _(1,3), 0 , 1 },
+/* 2 : EN/AN */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 1 },
+/* 3 : L+ON */ { _(2,1), _(3,0), 6 , 4 , 3 , 3 , _(3,0), 0 },
+/* 4 : L+ON+AN */ { _(2,1), _(3,0), 6 , 4 , 5 , 5 , _(3,0), 3 },
+/* 5 : L+AN+ON */ { _(2,1), _(3,0), 6 , 4 , 5 , 5 , _(3,0), 2 },
+/* 6 : L+ON+EN */ { _(2,1), _(3,0), 6 , 4 , 3 , 3 , _(3,0), 1 }
+};
+static const ImpAct impAct1 = {0,1,11,12};
+/* FOOD FOR THOUGHT: in LTR table below, check case "JKL 123abc"
+ */
+static const ImpTabPair impTab_INVERSE_LIKE_DIRECT = {
+ {(ImpTab*)&impTabL_DEFAULT,
+ (ImpTab*)&impTabR_INVERSE_LIKE_DIRECT},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct1}};
+
+static const ImpTab impTabL_INVERSE_LIKE_DIRECT_WITH_MARKS =
+/* The case handled in this table is (visually): R EN L
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 0 , _(6,3), 0 , 1 , 0 , 0 , 0 , 0 },
+/* 1 : L+AN */ { 0 , _(6,3), 0 , 1 , _(1,2), _(3,0), 0 , 4 },
+/* 2 : L+AN+ON */ { _(2,0), _(6,3), _(2,0), 1 , 2 , _(3,0), _(2,0), 3 },
+/* 3 : R */ { 0 , _(6,3), _(5,5), _(5,6), _(1,4), _(3,0), 0 , 3 },
+/* 4 : R+ON */ { _(3,0), _(4,3), _(5,5), _(5,6), 4 , _(3,0), _(3,0), 3 },
+/* 5 : R+EN */ { _(3,0), _(4,3), 5 , _(5,6), _(1,4), _(3,0), _(3,0), 4 },
+/* 6 : R+AN */ { _(3,0), _(4,3), _(5,5), 6 , _(1,4), _(3,0), _(3,0), 4 }
+};
+static const ImpTab impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS =
+/* The cases handled in this table are (visually): R EN L
+ R L AN L
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { _(1,3), 0 , 1 , 1 , 0 , 0 , 0 , 0 },
+/* 1 : R+EN/AN */ { _(2,3), 0 , 1 , 1 , 2 , _(4,0), 0 , 1 },
+/* 2 : R+EN/AN+ON */ { _(2,3), 0 , 1 , 1 , 2 , _(4,0), 0 , 0 },
+/* 3 : L */ { 3 , 0 , 3 , _(3,6), _(1,4), _(4,0), 0 , 1 },
+/* 4 : L+ON */ { _(5,3), _(4,0), 5 , _(3,6), 4 , _(4,0), _(4,0), 0 },
+/* 5 : L+ON+EN */ { _(5,3), _(4,0), 5 , _(3,6), 4 , _(4,0), _(4,0), 1 },
+/* 6 : L+AN */ { _(5,3), _(4,0), 6 , 6 , 4 , _(4,0), _(4,0), 3 }
+};
+static const ImpAct impAct2 = {0,1,7,8,9,10};
+static const ImpTabPair impTab_INVERSE_LIKE_DIRECT_WITH_MARKS = {
+ {(ImpTab*)&impTabL_INVERSE_LIKE_DIRECT_WITH_MARKS,
+ (ImpTab*)&impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct2}};
+
+static const ImpTabPair impTab_INVERSE_FOR_NUMBERS_SPECIAL = {
+ {(ImpTab*)&impTabL_NUMBERS_SPECIAL,
+ (ImpTab*)&impTabR_INVERSE_LIKE_DIRECT},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct1}};
+
+static const ImpTab impTabL_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS =
+/* The case handled in this table is (visually): R EN L
+*/
+{
+/* L , R , EN , AN , ON , S , B , Res */
+/* 0 : init */ { 0 , _(6,2), 1 , 1 , 0 , 0 , 0 , 0 },
+/* 1 : L+EN/AN */ { 0 , _(6,2), 1 , 1 , 0 , _(3,0), 0 , 4 },
+/* 2 : R */ { 0 , _(6,2), _(5,4), _(5,4), _(1,3), _(3,0), 0 , 3 },
+/* 3 : R+ON */ { _(3,0), _(4,2), _(5,4), _(5,4), 3 , _(3,0), _(3,0), 3 },
+/* 4 : R+EN/AN */ { _(3,0), _(4,2), 4 , 4 , _(1,3), _(3,0), _(3,0), 4 }
+};
+static const ImpTabPair impTab_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS = {
+ {(ImpTab*)&impTabL_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS,
+ (ImpTab*)&impTabR_INVERSE_LIKE_DIRECT_WITH_MARKS},
+ {(ImpAct*)&impAct0, (ImpAct*)&impAct2}};
+
+#undef _
+
+typedef struct {
+ ImpTab * pImpTab; /* level table pointer */
+ ImpAct * pImpAct; /* action map array */
+ int32_t startON; /* start of ON sequence */
+ int32_t startL2EN; /* start of level 2 sequence */
+ int32_t lastStrongRTL; /* index of last found R or AL */
+ int32_t state; /* current state */
+ UBiDiLevel runLevel; /* run level before implicit solving */
+} LevState;
+
+/*------------------------------------------------------------------------*/
+
+static void
+addPoint(UBiDi *pBiDi, int32_t pos, int32_t flag)
+ /* param pos: position where to insert
+ param flag: one of LRM_BEFORE, LRM_AFTER, RLM_BEFORE, RLM_AFTER
+ */
+{
+#define FIRSTALLOC 10
+ Point point;
+ InsertPoints * pInsertPoints=&(pBiDi->insertPoints);
+
+ if (pInsertPoints->capacity == 0)
+ {
+ pInsertPoints->points=uprv_malloc(sizeof(Point)*FIRSTALLOC);
+ if (pInsertPoints->points == NULL)
+ {
+ pInsertPoints->errorCode=U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ pInsertPoints->capacity=FIRSTALLOC;
+ }
+ if (pInsertPoints->size >= pInsertPoints->capacity) /* no room for new point */
+ {
+ void * savePoints=pInsertPoints->points;
+ pInsertPoints->points=uprv_realloc(pInsertPoints->points,
+ pInsertPoints->capacity*2*sizeof(Point));
+ if (pInsertPoints->points == NULL)
+ {
+ pInsertPoints->points=savePoints;
+ pInsertPoints->errorCode=U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ else pInsertPoints->capacity*=2;
+ }
+ point.pos=pos;
+ point.flag=flag;
+ pInsertPoints->points[pInsertPoints->size]=point;
+ pInsertPoints->size++;
+#undef FIRSTALLOC
}
/* perform rules (Wn), (Nn), and (In) on a run of the text ------------------ */
@@ -672,16 +1184,6 @@ checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
* (except for W5: sequences of ET) and keeps track of changes
* in a rule Wp that affect a later Wq (p<q).
*
- * historyOfEN is a variable-saver: it contains 4 boolean states;
- * a bit in it set to 1 means:
- * bit 0: the current code is an EN after W2
- * bit 1: the current code is an EN after W4
- * bit 2: the previous code was an EN after W2
- * bit 3: the previous code was an EN after W4
- * In other words, b0..1 have transitions of EN in the current iteration,
- * while b2..3 have the transitions of EN in the previous iteration.
- * A simple historyOfEN<<=2 suffices for the propagation.
- *
* The (Nn) and (In) rules are also performed in that same single loop,
* but effectively one iteration behind for white space.
*
@@ -689,356 +1191,310 @@ checkExplicitLevels(UBiDi *pBiDi, UErrorCode *pErrorCode) {
* to actually store the intermediate directional properties in dirProps[].
*/
-#define EN_SHIFT 2
-#define EN_AFTER_W2 1
-#define EN_AFTER_W4 2
-#define EN_ALL 3
-#define PREV_EN_AFTER_W2 4
-#define PREV_EN_AFTER_W4 8
-
static void
-resolveImplicitLevels(UBiDi *pBiDi,
- int32_t start, int32_t limit,
- DirProp sor, DirProp eor) {
- const DirProp *dirProps=pBiDi->dirProps;
- UBiDiLevel *levels=pBiDi->levels;
-
- int32_t i, next, neutralStart=-1;
- DirProp prevDirProp, dirProp, nextDirProp, lastStrong, beforeNeutral=L;
- UBiDiLevel numberLevel;
- uint8_t historyOfEN;
-
- /* initialize: current at sor, next at start (it is start<limit) */
- next=start;
- dirProp=lastStrong=sor;
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- historyOfEN=0;
-
- if(pBiDi->isInverse) {
- /*
- * For "inverse BiDi", we set the levels of numbers just like for
- * regular L characters, plus a flag that ubidi_getRuns() will use
- * to set a similar flag on the corresponding output run.
- */
- numberLevel=levels[start];
- if(numberLevel&1) {
- ++numberLevel;
- }
- } else {
- /* normal BiDi: least greater even level */
- numberLevel=(UBiDiLevel)((levels[start]+2)&~1);
- }
-
- /*
- * In all steps of this implementation, BN and explicit embedding codes
- * must be treated as if they didn't exist (X9).
- * They will get levels set before a non-neutral character, and remain
- * undefined before a neutral one, but adjustWSLevels() will take care
- * of all of them.
- */
- while(DIRPROP_FLAG(nextDirProp)&MASK_BN_EXPLICIT) {
- if(++next<limit) {
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- } else {
- nextDirProp=eor;
+processPropertySeq(UBiDi *pBiDi, LevState *pLevState, uint8_t _prop,
+ int32_t start, int32_t limit) {
+ uint8_t cell, oldStateSeq, actionSeq;
+ ImpTab * pImpTab=pLevState->pImpTab;
+ ImpAct * pImpAct=pLevState->pImpAct;
+ UBiDiLevel * levels=pBiDi->levels;
+ UBiDiLevel level, addLevel;
+ InsertPoints * pInsertPoints;
+ int32_t start0, k;
+
+ start0=start; /* save original start position */
+ oldStateSeq=pLevState->state;
+ cell=(*pImpTab)[oldStateSeq][_prop];
+ pLevState->state=GET_STATE(cell); /* isolate the new state */
+ actionSeq=(*pImpAct)[GET_ACTION(cell)]; /* isolate the action */
+ addLevel=(*pImpTab)[pLevState->state][IMPTABLEVELS_RES];
+
+ if(actionSeq) {
+ switch(actionSeq) {
+ case 1: /* init ON seq */
+ pLevState->startON=start0;
break;
- }
- }
- /*
- * Note: at the end of this file, there is a prototype
- * of a version of this function that uses a statetable
- * at the core of this state machine.
- * If you make changes to this state machine,
- * please update that prototype as well.
- */
+ case 2: /* prepend ON seq to current seq */
+ start=pLevState->startON;
+ break;
- /* loop for entire run */
- while(next<limit) {
- /* advance */
- prevDirProp=dirProp;
- dirProp=nextDirProp;
- i=next;
- do {
- if(++next<limit) {
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- } else {
- nextDirProp=eor;
- break;
+ case 3: /* L or S after possible relevant EN/AN */
+ /* check if we had EN after R/AL */
+ if (pLevState->startL2EN >= 0) {
+ addPoint(pBiDi, pLevState->startL2EN, LRM_BEFORE);
}
- } while(DIRPROP_FLAG(nextDirProp)&MASK_BN_EXPLICIT);
- historyOfEN<<=EN_SHIFT;
-
- /* (W1..W7) */
- switch(dirProp) {
- case L:
- lastStrong=L;
- break;
- case R:
- lastStrong=R;
- break;
- case AL:
- /* (W3) */
- lastStrong=AL;
- dirProp=R;
- break;
- case EN:
- /* we have to set historyOfEN correctly */
- if(lastStrong==AL) {
- /* (W2) */
- dirProp=AN;
- } else {
- if(lastStrong==L) {
- /* (W7) */
- dirProp=L;
+ pLevState->startL2EN=-1; /* not within previous if since could also be -2 */
+ /* check if we had any relevant EN/AN after R/AL */
+ pInsertPoints=&(pBiDi->insertPoints);
+ if ((pInsertPoints->capacity == 0) ||
+ (pInsertPoints->size <= pInsertPoints->confirmed))
+ {
+ /* nothing, just clean up */
+ pLevState->lastStrongRTL=-1;
+ /* check if we have a pending conditional segment */
+ level=(*pImpTab)[oldStateSeq][IMPTABLEVELS_RES];
+ if ((level & 1) && (pLevState->startON > 0)) { /* after ON */
+ start=pLevState->startON; /* reset to basic run level */
}
- /* this EN stays after (W2) and (W4) - at least before (W7) */
- historyOfEN|=EN_ALL;
- }
- break;
- case ES:
- if( historyOfEN&PREV_EN_AFTER_W2 && /* previous was EN before (W4) */
- nextDirProp==EN && lastStrong!=AL /* next is EN and (W2) won't make it AN */
- ) {
- /* (W4) */
- if(lastStrong!=L) {
- dirProp=EN;
- } else {
- /* (W7) */
- dirProp=L;
+ if (_prop == _S) /* add LRM before S */
+ {
+ addPoint(pBiDi, start0, LRM_BEFORE);
+ pInsertPoints->confirmed=pInsertPoints->size;
}
- historyOfEN|=EN_AFTER_W4;
- } else {
- /* (W6) */
- dirProp=ON;
+ break;
}
- break;
- case CS:
- if( historyOfEN&PREV_EN_AFTER_W2 && /* previous was EN before (W4) */
- nextDirProp==EN && lastStrong!=AL /* next is EN and (W2) won't make it AN */
- ) {
- /* (W4) */
- if(lastStrong!=L) {
- dirProp=EN;
- } else {
- /* (W7) */
- dirProp=L;
- }
- historyOfEN|=EN_AFTER_W4;
- } else if(prevDirProp==AN && /* previous was AN */
- (nextDirProp==AN || /* next is AN */
- (nextDirProp==EN && lastStrong==AL)) /* or (W2) will make it one */
- ) {
- /* (W4) */
- dirProp=AN;
- } else {
- /* (W6) */
- dirProp=ON;
+ /* reset previous RTL cont to level for LTR text */
+ for (k=pLevState->lastStrongRTL+1; k<start0; k++)
+ {
+ /* reset odd level, leave runLevel+2 as is */
+ levels[k]=(levels[k] - 2) & ~1;
}
- break;
- case ET:
- /* get sequence of ET; advance only next, not current, previous or historyOfEN */
- if(next<limit) {
- while(DIRPROP_FLAG(nextDirProp)&MASK_ET_NSM_BN /* (W1), (X9) */) {
- if(++next<limit) {
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- } else {
- nextDirProp=eor;
- break;
- }
- }
+ /* mark insert points as confirmed */
+ pInsertPoints->confirmed=pInsertPoints->size;
+ pLevState->lastStrongRTL=-1;
+ if (_prop == _S) /* add LRM before S */
+ {
+ addPoint(pBiDi, start0, LRM_BEFORE);
+ pInsertPoints->confirmed=pInsertPoints->size;
}
+ break;
- /* now process the sequence of ET like a single ET */
- if((historyOfEN&PREV_EN_AFTER_W4) || /* previous was EN before (W5) */
- (nextDirProp==EN && lastStrong!=AL) /* next is EN and (W2) won't make it AN */
- ) {
- /* (W5) */
- if(lastStrong!=L) {
- dirProp=EN;
- } else {
- /* (W7) */
- dirProp=L;
+ case 4: /* R/AL after possible relevant EN/AN */
+ /* just clean up */
+ pInsertPoints=&(pBiDi->insertPoints);
+ if (pInsertPoints->capacity > 0)
+ /* remove all non confirmed insert points */
+ pInsertPoints->size=pInsertPoints->confirmed;
+ pLevState->startON=-1;
+ pLevState->startL2EN=-1;
+ pLevState->lastStrongRTL=limit - 1;
+ break;
+
+ case 5: /* EN/AN after R/AL + possible cont */
+ /* check for real AN */
+ if ((_prop == _AN) && (NO_CONTEXT_RTL(pBiDi->dirProps[start0]) == AN) &&
+ (pBiDi->reorderingMode!=UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL))
+ {
+ /* real AN */
+ if (pLevState->startL2EN == -1) /* if no relevant EN already found */
+ {
+ /* just note the righmost digit as a strong RTL */
+ pLevState->lastStrongRTL=limit - 1;
+ break;
}
- } else {
- /* (W6) */
- dirProp=ON;
+ if (pLevState->startL2EN >= 0) /* after EN, no AN */
+ {
+ addPoint(pBiDi, pLevState->startL2EN, LRM_BEFORE);
+ pLevState->startL2EN=-2;
+ }
+ /* note AN */
+ addPoint(pBiDi, start0, LRM_BEFORE);
+ break;
+ }
+ /* if first EN/AN after R/AL */
+ if (pLevState->startL2EN == -1) {
+ pLevState->startL2EN=start0;
}
-
- /* apply the result of (W1), (W5)..(W7) to the entire sequence of ET */
break;
- case NSM:
- /* (W1) */
- dirProp=prevDirProp;
- /* set historyOfEN back to prevDirProp's historyOfEN */
- historyOfEN>>=EN_SHIFT;
- /*
- * Technically, this should be done before the switch() in the form
- * if(nextDirProp==NSM) {
- * dirProps[next]=nextDirProp=dirProp;
- * }
- *
- * - effectively one iteration ahead.
- * However, whether the next dirProp is NSM or is equal to the current dirProp
- * does not change the outcome of any condition in (W2)..(W7).
- */
+
+ case 6: /* note location of latest R/AL */
+ pLevState->lastStrongRTL=limit - 1;
+ pLevState->startON=-1;
break;
- case B:
- lastStrong=sor;
- dirProp=GET_LR_FROM_LEVEL(levels[i]);
+
+ case 7: /* L after R+ON/EN/AN */
+ /* include possible adjacent number on the left */
+ for (k=start0-1; k>=0 && !(levels[k]&1); k--);
+ if(k>=0) {
+ addPoint(pBiDi, k, RLM_BEFORE); /* add RLM before */
+ pInsertPoints=&(pBiDi->insertPoints);
+ pInsertPoints->confirmed=pInsertPoints->size; /* confirm it */
+ }
+ pLevState->startON=start0;
break;
- default:
+
+ case 8: /* AN after L */
+ /* AN numbers between L text on both sides may be trouble. */
+ /* tentatively bracket with LRMs; will be confirmed if followed by L */
+ addPoint(pBiDi, start0, LRM_BEFORE); /* add LRM before */
+ addPoint(pBiDi, start0, LRM_AFTER); /* add LRM after */
break;
- }
- /* here, it is always [prev,this,next]dirProp!=BN; it may be next>i+1 */
+ case 9: /* R after L+ON/EN/AN */
+ /* false alert, infirm LRMs around previous AN */
+ pInsertPoints=&(pBiDi->insertPoints);
+ pInsertPoints->size=pInsertPoints->confirmed;
+ if (_prop == _S) /* add RLM before S */
+ {
+ addPoint(pBiDi, start0, RLM_BEFORE);
+ pInsertPoints->confirmed=pInsertPoints->size;
+ }
+ break;
- /* perform (Nn) - here, only L, R, EN, AN, and neutrals are left */
- /* for "inverse BiDi", treat neutrals like L */
- /* this is one iteration late for the neutrals */
- if(DIRPROP_FLAG(dirProp)&MASK_N) {
- if(neutralStart<0) {
- /* start of a sequence of neutrals */
- neutralStart=i;
- beforeNeutral=prevDirProp;
+ case 10: /* L after L+ON/AN */
+ level=pLevState->runLevel + addLevel;
+ for(k=pLevState->startON; k<start0; k++) {
+ if (levels[k]<level)
+ levels[k]=level;
}
- } else /* not a neutral, can be only one of { L, R, EN, AN } */ {
- /*
- * Note that all levels[] values are still the same at this
- * point because this function is called for an entire
- * same-level run.
- * Therefore, we need to read only one actual level.
- */
- UBiDiLevel level=levels[i];
-
- if(neutralStart>=0) {
- UBiDiLevel final;
- /* end of a sequence of neutrals (dirProp is "afterNeutral") */
- if(!(pBiDi->isInverse)) {
- if(beforeNeutral==L) {
- if(dirProp==L) {
- final=0; /* make all neutrals L (N1) */
- } else {
- final=level; /* make all neutrals "e" (N2) */
- }
- } else /* beforeNeutral is one of { R, EN, AN } */ {
- if(dirProp==L) {
- final=level; /* make all neutrals "e" (N2) */
- } else {
- final=1; /* make all neutrals R (N1) */
- }
+ pInsertPoints=&(pBiDi->insertPoints);
+ pInsertPoints->confirmed=pInsertPoints->size; /* confirm inserts */
+ pLevState->startON=start0;
+ break;
+
+ case 11: /* L after L+ON+EN/AN/ON */
+ level=pLevState->runLevel;
+ for(k=start0-1; k>=pLevState->startON; k--) {
+ if(levels[k]==level+3) {
+ while(levels[k]==level+3) {
+ levels[k--]-=2;
}
- } else {
- /* "inverse BiDi": collapse [before]dirProps L, EN, AN into L */
- if(beforeNeutral!=R) {
- if(dirProp!=R) {
- final=0; /* make all neutrals L (N1) */
- } else {
- final=level; /* make all neutrals "e" (N2) */
- }
- } else /* beforeNeutral is one of { R, EN, AN } */ {
- if(dirProp!=R) {
- final=level; /* make all neutrals "e" (N2) */
- } else {
- final=1; /* make all neutrals R (N1) */
- }
+ while(levels[k]==level) {
+ k--;
}
}
- /* perform (In) on the sequence of neutrals */
- if((level^final)&1) {
- /* do something only if we need to _change_ the level */
- do {
- ++levels[neutralStart];
- } while(++neutralStart<i);
+ if(levels[k]==level+2) {
+ levels[k]=level;
+ continue;
}
- neutralStart=-1;
+ levels[k]=level+1;
}
+ break;
- /* perform (In) on the non-neutral character */
- /*
- * in the cases of (W5), processing a sequence of ET,
- * and of (X9), skipping BN,
- * there may be multiple characters from i to <next
- * that all get (virtually) the same dirProp and (really) the same level
- */
- if(dirProp==L) {
- if(level&1) {
- ++level;
- } else {
- i=next; /* we keep the levels */
- }
- } else if(dirProp==R) {
- if(!(level&1)) {
- ++level;
- } else {
- i=next; /* we keep the levels */
+ case 12: /* R after L+ON+EN/AN/ON */
+ level=pLevState->runLevel+1;
+ for(k=start0-1; k>=pLevState->startON; k--) {
+ if(levels[k]>level) {
+ levels[k]-=2;
}
- } else /* EN or AN */ {
- /* this level depends on whether we do "inverse BiDi" */
- level=numberLevel;
}
+ break;
- /* apply the new level to the sequence, if necessary */
- while(i<next) {
- levels[i++]=level;
- }
+ default: /* we should never get here */
+ start=start0+25;
+ start/=(start-start0-25); /* force program crash */
+ break;
}
- if(pBiDi->defaultParaLevel&&((i+1)<limit)&&(dirProps[i]==B)) {
- dirProp=GET_LR_FROM_LEVEL(levels[i+1]);
+ }
+ if((addLevel) || (start < start0)) {
+ level=pLevState->runLevel + addLevel;
+ for(k=start; k<limit; k++) {
+ levels[k]=level;
}
}
+}
- /* perform (Nn) - here,
- the character after the neutrals is eor, which is either L or R */
- /* this is one iteration late for the neutrals */
- if(neutralStart>=0) {
- /*
- * Note that all levels[] values are still the same at this
- * point because this function is called for an entire
- * same-level run.
- * Therefore, we need to read only one actual level.
- */
- UBiDiLevel level=levels[neutralStart], final;
+static void
+resolveImplicitLevels(UBiDi *pBiDi,
+ int32_t start, int32_t limit,
+ DirProp sor, DirProp eor) {
+ const DirProp *dirProps=pBiDi->dirProps;
- /* end of a sequence of neutrals (eor is "afterNeutral") */
- if(!(pBiDi->isInverse)) {
- if(beforeNeutral==L) {
- if(eor==L) {
- final=0; /* make all neutrals L (N1) */
- } else {
- final=level; /* make all neutrals "e" (N2) */
- }
- } else /* beforeNeutral is one of { R, EN, AN } */ {
- if(eor==L) {
- final=level; /* make all neutrals "e" (N2) */
- } else {
- final=1; /* make all neutrals R (N1) */
- }
- }
+ LevState levState;
+ int32_t i, start1, start2;
+ uint8_t oldStateImp, stateImp, actionImp;
+ uint8_t gprop, resProp, cell;
+ UBool inverseRTL;
+ DirProp nextStrongProp=R;
+ int32_t nextStrongPos=-1;
+
+ /* check for RTL inverse BiDi mode */
+ /* FOOD FOR THOUGHT: in case of RTL inverse BiDi, it would make sense to
+ * loop on the text characters from end to start.
+ * This would need a different properties state table (at least different
+ * actions) and different levels state tables (maybe very similar to the
+ * LTR corresponding ones.
+ */
+ inverseRTL=((start<pBiDi->lastArabicPos) && (GET_PARALEVEL(pBiDi, start) & 1) &&
+ (pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_LIKE_DIRECT ||
+ pBiDi->reorderingMode==UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL));
+ /* initialize for levels state table */
+ levState.startL2EN=-1; /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
+ levState.lastStrongRTL=-1; /* used for INVERSE_LIKE_DIRECT_WITH_MARKS */
+ levState.state=0;
+ levState.runLevel=pBiDi->levels[start];
+ levState.pImpTab=((pBiDi->pImpTabPair)->pImpTab)[levState.runLevel&1];
+ levState.pImpAct=((pBiDi->pImpTabPair)->pImpAct)[levState.runLevel&1];
+ processPropertySeq(pBiDi, &levState, sor, start, start);
+ /* initialize for property state table */
+ if(dirProps[start]==NSM) {
+ stateImp = 1 + sor;
+ } else {
+ stateImp=0;
+ }
+ start1=start;
+ start2=start;
+
+ for(i=start; i<=limit; i++) {
+ if(i>=limit) {
+ gprop=eor;
} else {
- /* "inverse BiDi": collapse [before]dirProps L, EN, AN into L */
- if(beforeNeutral!=R) {
- if(eor!=R) {
- final=0; /* make all neutrals L (N1) */
- } else {
- final=level; /* make all neutrals "e" (N2) */
- }
- } else /* beforeNeutral is one of { R, EN, AN } */ {
- if(eor!=R) {
- final=level; /* make all neutrals "e" (N2) */
- } else {
- final=1; /* make all neutrals R (N1) */
+ DirProp prop, prop1;
+ prop=NO_CONTEXT_RTL(dirProps[i]);
+ if(inverseRTL) {
+ if(prop==AL) {
+ /* AL before EN does not make it AN */
+ prop=R;
+ } else if(prop==EN) {
+ if(nextStrongPos<=i) {
+ /* look for next strong char (L/R/AL) */
+ int32_t j;
+ nextStrongProp=R; /* set default */
+ nextStrongPos=limit;
+ for(j=i+1; j<limit; j++) {
+ prop1=NO_CONTEXT_RTL(dirProps[j]);
+ if(prop1==L || prop1==R || prop1==AL) {
+ nextStrongProp=prop1;
+ nextStrongPos=j;
+ break;
+ }
+ }
+ }
+ if(nextStrongProp==AL) {
+ prop=AN;
+ }
}
}
+ gprop=groupProp[prop];
}
- /* perform (In) on the sequence of neutrals */
- if((level^final)&1) {
- /* do something only if we need to _change_ the level */
- do {
- ++levels[neutralStart];
- } while(++neutralStart<limit);
+ oldStateImp=stateImp;
+ cell=impTabProps[oldStateImp][gprop];
+ stateImp=GET_STATEPROPS(cell); /* isolate the new state */
+ actionImp=GET_ACTIONPROPS(cell); /* isolate the action */
+ if((i==limit) && (actionImp==0)) {
+ /* there is an unprocessed sequence if its property == eor */
+ actionImp=1; /* process the last sequence */
+ }
+ if(actionImp) {
+ resProp=impTabProps[oldStateImp][IMPTABPROPS_RES];
+ switch(actionImp) {
+ case 1: /* process current seq1, init new seq1 */
+ processPropertySeq(pBiDi, &levState, resProp, start1, i);
+ start1=i;
+ break;
+ case 2: /* init new seq2 */
+ start2=i;
+ break;
+ case 3: /* process seq1, process seq2, init new seq1 */
+ processPropertySeq(pBiDi, &levState, resProp, start1, start2);
+ processPropertySeq(pBiDi, &levState, _ON, start2, i);
+ start1=i;
+ break;
+ case 4: /* process seq1, set seq1=seq2, init new seq2 */
+ processPropertySeq(pBiDi, &levState, resProp, start1, start2);
+ start1=start2;
+ start2=i;
+ break;
+ default: /* we should never get here */
+ start=start1+25;
+ start/=(start-start1-25); /* force program crash */
+ break;
+ }
}
}
+ /* flush possible pending sequence, e.g. ON */
+ processPropertySeq(pBiDi, &levState, eor, limit, limit);
}
/* perform (L1) and (X9) ---------------------------------------------------- */
@@ -1088,6 +1544,159 @@ adjustWSLevels(UBiDi *pBiDi) {
}
}
+#define BIDI_MIN(x, y) ((x)<(y) ? (x) : (y))
+#define BIDI_ABS(x) ((x)>=0 ? (x) : (-(x)))
+static void
+setParaRunsOnly(UBiDi *pBiDi, const UChar *text, int32_t length,
+ UBiDiLevel paraLevel, UErrorCode *pErrorCode) {
+ void *runsOnlyMemory;
+ int32_t *visualMap;
+ UChar *visualText;
+ const UBiDiLevel *levels;
+ UBiDiLevel *saveLevels;
+ Run *runs;
+ int32_t visualLength, i, j, visualStart, logicalStart,
+ runCount, runLength, addedRuns, insertRemove,
+ start, limit, step, indexOddBit, logicalPos,
+ index, index1;
+ uint32_t saveOptions;
+
+ pBiDi->reorderingMode=UBIDI_REORDER_DEFAULT;
+ if(length==0) {
+ ubidi_setPara(pBiDi, text, length, paraLevel, NULL, pErrorCode);
+ goto cleanup3;
+ }
+ /* obtain memory for mapping table and visual text */
+ runsOnlyMemory=uprv_malloc(length*(sizeof(int32_t)+sizeof(UChar)+sizeof(UBiDiLevel)));
+ if(runsOnlyMemory==NULL) {
+ *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
+ goto cleanup3;
+ }
+ visualMap=runsOnlyMemory;
+ visualText=(UChar *)&visualMap[length];
+ saveLevels=(UBiDiLevel *)&visualText[length];
+ saveOptions=pBiDi->reorderingOptions;
+ if(saveOptions & UBIDI_OPTION_INSERT_MARKS) {
+ pBiDi->reorderingOptions&=~UBIDI_OPTION_INSERT_MARKS;
+ pBiDi->reorderingOptions|=UBIDI_OPTION_REMOVE_CONTROLS;
+ }
+ ubidi_setPara(pBiDi, text, length, paraLevel, NULL, pErrorCode);
+ levels=ubidi_getLevels(pBiDi, pErrorCode);
+
+ /* FOOD FOR THOUGHT: instead of writing the visual text, we could use
+ * the visual map and the dirProps array to drive the second call
+ * to ubidi_setPara (but must make provision for possible removal of
+ * BiDi controls. Alternatively, only use the dirProps array via
+ * customized classifier callback.
+ */
+ visualLength=ubidi_writeReordered(pBiDi, visualText, length,
+ UBIDI_DO_MIRRORING, pErrorCode);
+ pBiDi->reorderingOptions=saveOptions;
+ ubidi_getVisualMap(pBiDi, visualMap, pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ goto cleanup2;
+ }
+ uprv_memcpy(saveLevels, levels, length*sizeof(UBiDiLevel));
+
+ pBiDi->reorderingMode=UBIDI_REORDER_INVERSE_LIKE_DIRECT;
+ paraLevel=pBiDi->paraLevel^1;
+ ubidi_setPara(pBiDi, visualText, visualLength, paraLevel, NULL, pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ goto cleanup1;
+ }
+ ubidi_getRuns(pBiDi);
+ /* check if some runs must be split, count how many splits */
+ addedRuns=0;
+ runCount=pBiDi->runCount;
+ runs=pBiDi->runs;
+ visualStart=0;
+ for(i=0; i<runCount; i++, visualStart+=runLength) {
+ runLength=runs[i].visualLimit-visualStart;
+ if(runLength<2) {
+ continue;
+ }
+ logicalStart=GET_INDEX(runs[i].logicalStart);
+ for(j=logicalStart+1; j<logicalStart+runLength; j++) {
+ index=visualMap[j];
+ index1=visualMap[j-1];
+ if((BIDI_ABS(index-index1)!=1) || (saveLevels[index]!=saveLevels[index1])) {
+ addedRuns++;
+ }
+ }
+ }
+ if(addedRuns) {
+ if(getRunsMemory(pBiDi, runCount+addedRuns)) {
+ if(runCount==1) {
+ /* because we switch from UBiDi.simpleRuns to UBiDi.runs */
+ pBiDi->runsMemory[0]=runs[0];
+ }
+ runs=pBiDi->runs=pBiDi->runsMemory;
+ pBiDi->runCount+=addedRuns;
+ } else {
+ goto cleanup1;
+ }
+ }
+ /* split runs which are not consecutive in source text */
+ for(i=runCount-1; i>=0; i--) {
+ runLength= i==0 ? runs[0].visualLimit :
+ runs[i].visualLimit-runs[i-1].visualLimit;
+ logicalStart=runs[i].logicalStart;
+ indexOddBit=GET_ODD_BIT(logicalStart);
+ logicalStart=GET_INDEX(logicalStart);
+ if(runLength<2) {
+ if(addedRuns) {
+ runs[i+addedRuns]=runs[i];
+ }
+ logicalPos=visualMap[logicalStart];
+ runs[i+addedRuns].logicalStart=MAKE_INDEX_ODD_PAIR(logicalPos,
+ saveLevels[logicalPos]^indexOddBit);
+ continue;
+ }
+ if(indexOddBit) {
+ start=logicalStart;
+ limit=logicalStart+runLength-1;
+ step=1;
+ } else {
+ start=logicalStart+runLength-1;
+ limit=logicalStart;
+ step=-1;
+ }
+ for(j=start; j!=limit; j+=step) {
+ index=visualMap[j];
+ index1=visualMap[j+step];
+ if((BIDI_ABS(index-index1)!=1) || (saveLevels[index]!=saveLevels[index1])) {
+ logicalPos=BIDI_MIN(visualMap[start], index);
+ runs[i+addedRuns].logicalStart=MAKE_INDEX_ODD_PAIR(logicalPos,
+ saveLevels[logicalPos]^indexOddBit);
+ runs[i+addedRuns].visualLimit=runs[i].visualLimit;
+ runs[i].visualLimit-=BIDI_ABS(j-start)+1;
+ insertRemove=runs[i].insertRemove&(LRM_AFTER|RLM_AFTER);
+ runs[i+addedRuns].insertRemove=insertRemove;
+ runs[i].insertRemove&=~insertRemove;
+ start=j+step;
+ addedRuns--;
+ }
+ }
+ if(addedRuns) {
+ runs[i+addedRuns]=runs[i];
+ }
+ logicalPos=BIDI_MIN(visualMap[start], visualMap[limit]);
+ runs[i+addedRuns].logicalStart=MAKE_INDEX_ODD_PAIR(logicalPos,
+ saveLevels[logicalPos]^indexOddBit);
+ }
+
+ cleanup1:
+ /* restore initial paraLevel */
+ pBiDi->paraLevel^=1;
+ cleanup2:
+ /* restore real text */
+ pBiDi->text=text;
+ /* free memory for mapping table and visual text */
+ uprv_free(runsOnlyMemory);
+ cleanup3:
+ pBiDi->reorderingMode=UBIDI_REORDER_RUNS_ONLY;
+}
+
/* ubidi_setPara ------------------------------------------------------------ */
U_CAPI void U_EXPORT2
@@ -1111,22 +1720,26 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
length=u_strlen(text);
}
+ /* special treatment for RUNS_ONLY mode */
+ if(pBiDi->reorderingMode==UBIDI_REORDER_RUNS_ONLY) {
+ setParaRunsOnly(pBiDi, text, length, paraLevel, pErrorCode);
+ return;
+ }
+
/* initialize the UBiDi structure */
pBiDi->pParaBiDi=NULL; /* mark unfinished setPara */
pBiDi->text=text;
- pBiDi->length=length;
+ pBiDi->length=pBiDi->originalLength=pBiDi->resultLength=length;
pBiDi->paraLevel=paraLevel;
pBiDi->direction=UBIDI_LTR;
- pBiDi->trailingWSStart=length; /* the levels[] will reflect the WS run */
+ pBiDi->paraCount=1;
pBiDi->dirProps=NULL;
pBiDi->levels=NULL;
pBiDi->runs=NULL;
+ pBiDi->insertPoints.size=0; /* clean up from last call */
+ pBiDi->insertPoints.confirmed=0; /* clean up from last call */
- /* initialize paras for single paragraph */
- pBiDi->paraCount=1;
- pBiDi->paras=pBiDi->simpleParas;
- pBiDi->simpleParas[0]=length;
/*
* Save the original paraLevel if contextual; otherwise, set to 0.
*/
@@ -1173,6 +1786,9 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
*pErrorCode=U_MEMORY_ALLOCATION_ERROR;
return;
}
+ /* the processed length may have changed if UBIDI_OPTION_STREAMING */
+ length= pBiDi->length;
+ pBiDi->trailingWSStart=length; /* the levels[] will reflect the WS run */
/* allocate paras memory */
if(pBiDi->paraCount>1) {
if(getInitialParasMemory(pBiDi, pBiDi->paraCount)) {
@@ -1182,6 +1798,10 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
*pErrorCode=U_MEMORY_ALLOCATION_ERROR;
return;
}
+ } else {
+ /* initialize paras for single paragraph */
+ pBiDi->paras=pBiDi->simpleParas;
+ pBiDi->simpleParas[0]=length;
}
/* are explicit levels specified? */
@@ -1225,6 +1845,45 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
break;
default:
/*
+ * Choose the right implicit state table
+ */
+ switch(pBiDi->reorderingMode) {
+ case UBIDI_REORDER_DEFAULT:
+ pBiDi->pImpTabPair=&impTab_DEFAULT;
+ break;
+ case UBIDI_REORDER_NUMBERS_SPECIAL:
+ pBiDi->pImpTabPair=&impTab_NUMBERS_SPECIAL;
+ break;
+ case UBIDI_REORDER_GROUP_NUMBERS_WITH_R:
+ pBiDi->pImpTabPair=&impTab_GROUP_NUMBERS_WITH_R;
+ break;
+ case UBIDI_REORDER_RUNS_ONLY:
+ /* we should never get here */
+ pBiDi=NULL;
+ pBiDi->text=NULL; /* make the program crash! */
+ break;
+ case UBIDI_REORDER_INVERSE_NUMBERS_AS_L:
+ pBiDi->pImpTabPair=&impTab_INVERSE_NUMBERS_AS_L;
+ break;
+ case UBIDI_REORDER_INVERSE_LIKE_DIRECT:
+ if (pBiDi->reorderingOptions & UBIDI_OPTION_INSERT_MARKS) {
+ pBiDi->pImpTabPair=&impTab_INVERSE_LIKE_DIRECT_WITH_MARKS;
+ } else {
+ pBiDi->pImpTabPair=&impTab_INVERSE_LIKE_DIRECT;
+ }
+ break;
+ case UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL:
+ if (pBiDi->reorderingOptions & UBIDI_OPTION_INSERT_MARKS) {
+ pBiDi->pImpTabPair=&impTab_INVERSE_FOR_NUMBERS_SPECIAL_WITH_MARKS;
+ } else {
+ pBiDi->pImpTabPair=&impTab_INVERSE_FOR_NUMBERS_SPECIAL;
+ }
+ break;
+ default:
+ pBiDi->pImpTabPair=&impTab_DEFAULT;
+ break;
+ }
+ /*
* If there are no external levels specified and there
* are no significant explicit level codes in the text,
* then we can treat the entire paragraph as one run.
@@ -1297,19 +1956,21 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
}
} while(limit<length);
}
-
+ /* check if we got any memory shortage while adding insert points */
+ if (U_FAILURE(pBiDi->insertPoints.errorCode))
+ {
+ *pErrorCode=pBiDi->insertPoints.errorCode;
+ return;
+ }
/* reset the embedding levels for some non-graphic characters (L1), (X9) */
adjustWSLevels(pBiDi);
-
- /* for "inverse BiDi", ubidi_getRuns() modifies the levels of numeric runs following RTL runs */
- if(pBiDi->isInverse) {
- if(!ubidi_getRuns(pBiDi)) {
- *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- }
break;
}
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_REMOVE_CONTROLS) {
+ pBiDi->resultLength -= pBiDi->controlCount;
+ } else {
+ pBiDi->resultLength += pBiDi->insertPoints.size;
+ }
pBiDi->pParaBiDi=pBiDi; /* mark successful setPara */
}
@@ -1350,12 +2011,30 @@ ubidi_getText(const UBiDi *pBiDi) {
U_CAPI int32_t U_EXPORT2
ubidi_getLength(const UBiDi *pBiDi) {
if(IS_VALID_PARA_OR_LINE(pBiDi)) {
+ return pBiDi->originalLength;
+ } else {
+ return 0;
+ }
+}
+
+U_CAPI int32_t U_EXPORT2
+ubidi_getProcessedLength(const UBiDi *pBiDi) {
+ if(IS_VALID_PARA_OR_LINE(pBiDi)) {
return pBiDi->length;
} else {
return 0;
}
}
+U_CAPI int32_t U_EXPORT2
+ubidi_getResultLength(const UBiDi *pBiDi) {
+ if(IS_VALID_PARA_OR_LINE(pBiDi)) {
+ return pBiDi->resultLength;
+ } else {
+ return 0;
+ }
+}
+
/* paragraphs API functions ------------------------------------------------- */
U_CAPI UBiDiLevel U_EXPORT2
@@ -1376,7 +2055,7 @@ ubidi_countParagraphs(UBiDi *pBiDi) {
}
}
-U_STABLE void U_EXPORT2
+U_CAPI void U_EXPORT2
ubidi_getParagraphByIndex(const UBiDi *pBiDi, int32_t paraIndex,
int32_t *pParaStart, int32_t *pParaLimit,
UBiDiLevel *pParaLevel, UErrorCode *pErrorCode) {
@@ -1408,7 +2087,7 @@ ubidi_getParagraphByIndex(const UBiDi *pBiDi, int32_t paraIndex,
return;
}
-U_STABLE int32_t U_EXPORT2
+U_CAPI int32_t U_EXPORT2
ubidi_getParagraph(const UBiDi *pBiDi, int32_t charIndex,
int32_t *pParaStart, int32_t *pParaLimit,
UBiDiLevel *pParaLevel, UErrorCode *pErrorCode) {
@@ -1430,140 +2109,53 @@ ubidi_getParagraph(const UBiDi *pBiDi, int32_t charIndex,
return paraIndex;
}
-/* statetable prototype ----------------------------------------------------- */
-
-/*
- * This is here for possible future
- * performance work and is not compiled right now.
- */
-
-#if 0
-/*
- * This is a piece of code that could be part of ubidi.c/resolveImplicitLevels().
- * It replaces in the (Wn) state machine the switch()-if()-cascade with
- * just a few if()s and a state table.
- */
-
-/* use the state table only for the following dirProp's */
-#define MASK_W_TABLE (FLAG(L)|FLAG(R)|FLAG(AL)|FLAG(EN)|FLAG(ES)|FLAG(CS)|FLAG(ET)|FLAG(AN))
-
-/*
- * inputs:
- *
- * 0..1 historyOfEN - 2b
- * 2 prevDirProp==AN - 1b
- * 3..4 lastStrong, one of { L, R, AL, none } - 2b
- * 5..7 dirProp, one of { L, R, AL, EN, ES, CS, ET, AN } - 3b
- * 8..9 nextDirProp, one of { EN, AN, other }
- *
- * total: 10b=1024 states
- */
-enum { _L, _R, _AL, _EN, _ES, _CS, _ET, _AN, _OTHER }; /* lastStrong, dirProp */
-enum { __EN, __AN, __OTHER }; /* nextDirProp */
-
-#define LAST_STRONG_SHIFT 3
-#define DIR_PROP_SHIFT 5
-#define NEXT_DIR_PROP_SHIFT 8
-
-/* masks after shifting */
-#define LAST_STRONG_MASK 3
-#define DIR_PROP_MASK 7
-#define STATE_MASK 0x1f
-
-/* convert dirProp into _dirProp (above enum) */
-static DirProp inputDirProp[dirPropCount]={ _X<<DIR_PROP_SHIFT, ... };
-
-/* convert dirProp into __dirProp (above enum) */
-static DirProp inputNextDirProp[dirPropCount]={ __X<<NEXT_DIR_PROP_SHIFT, ... };
-
-/*
- * outputs:
- *
- * dirProp, one of { L, R, EN, AN, ON } - 3b
- *
- * 0..1 historyOfEN - 2b
- * 2 prevDirProp==AN - 1b
- * 3..4 lastStrong, one of { L, R, AL, none } - 2b
- * 5..7 new dirProp, one of { L, R, EN, AN, ON }
- *
- * total: 8 bits=1 byte per state
- */
-enum { ___L, ___R, ___EN, ___AN, ___ON, ___count };
-
-/* convert ___dirProp into dirProp (above enum) */
-static DirProp outputDirProp[___count]={ X, ... };
-
-/* state table */
-static uint8_t wnTable[1024]={ /* calculate with switch()-if()-cascade */ };
+U_CAPI void U_EXPORT2
+ubidi_setClassCallback(UBiDi *pBiDi, UBiDiClassCallback *newFn,
+ const void *newContext, UBiDiClassCallback **oldFn,
+ const void **oldContext, UErrorCode *pErrorCode)
+{
+ if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+ return;
+ } else if(pBiDi==NULL) {
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ if( oldFn )
+ {
+ *oldFn = pBiDi->fnClassCallback;
+ }
+ if( oldContext )
+ {
+ *oldContext = pBiDi->coClassCallback;
+ }
+ pBiDi->fnClassCallback = newFn;
+ pBiDi->coClassCallback = newContext;
+}
-static void
-resolveImplicitLevels(BiDi *pBiDi,
- Index start, Index end,
- DirProp sor, DirProp eor) {
- /* new variable */
- uint8_t state;
-
- /* remove variable lastStrong */
-
- /* set initial state (set lastStrong, the rest is 0) */
- state= sor==L ? 0 : _R<<LAST_STRONG_SHIFT;
-
- while(next<limit) {
- /* advance */
- prevDirProp=dirProp;
- dirProp=nextDirProp;
- i=next;
- do {
- if(++next<limit) {
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- } else {
- nextDirProp=eor;
- break;
- }
- } while(FLAG(nextDirProp)&MASK_BN_EXPLICIT);
-
- /* (W1..W7) */
- /* ### This may be more efficient with a switch(dirProp). */
- if(FLAG(dirProp)&MASK_W_TABLE) {
- state=wnTable[
- ((int)state)|
- inputDirProp[dirProp]|
- inputNextDirProp[nextDirProp]
- ];
- dirProp=outputDirProp[state>>DIR_PROP_SHIFT];
- state&=STATE_MASK;
- } else if(dirProp==ET) {
- /* get sequence of ET; advance only next, not current, previous or historyOfEN */
- while(next<limit && FLAG(nextDirProp)&MASK_ET_NSM_BN /* (W1), (X9) */) {
- if(++next<limit) {
- nextDirProp=NO_CONTEXT_RTL(dirProps[next]);
- } else {
- nextDirProp=eor;
- break;
- }
- }
+U_CAPI void U_EXPORT2
+ubidi_getClassCallback(UBiDi *pBiDi, UBiDiClassCallback **fn, const void **context)
+{
+ if( fn )
+ {
+ *fn = pBiDi->fnClassCallback;
+ }
+ if( context )
+ {
+ *context = pBiDi->coClassCallback;
+ }
+}
- state=wnTable[
- ((int)state)|
- _ET<<DIR_PROP_SHIFT|
- inputNextDirProp[nextDirProp]
- ];
- dirProp=outputDirProp[state>>DIR_PROP_SHIFT];
- state&=STATE_MASK;
-
- /* apply the result of (W1), (W5)..(W7) to the entire sequence of ET */
- } else if(dirProp==NSM) {
- /* (W1) */
- dirProp=prevDirProp;
- /* keep prevDirProp's EN and AN states! */
- } else /* other */ {
- /* set EN and AN states to 0 */
- state&=LAST_STRONG_MASK<<LAST_STRONG_SHIFT;
- }
+U_CAPI UCharDirection U_EXPORT2
+ubidi_getCustomizedClass(UBiDi *pBiDi, UChar32 c)
+{
+ UCharDirection dir;
- /* perform (Nn) and (In) as usual */
+ if( pBiDi->fnClassCallback == NULL ||
+ (dir = (*pBiDi->fnClassCallback)(pBiDi->coClassCallback, c)) == U_BIDI_CLASS_DEFAULT )
+ {
+ return ubidi_getClass(pBiDi->bdp, c);
+ } else {
+ return dir;
}
- /* perform (Nn) and (In) as usual */
}
-#endif
diff --git a/Build/source/libs/icu-xetex/common/ubidi_props.c b/Build/source/libs/icu-xetex/common/ubidi_props.c
index 4cba512d648..8538c6c5bd4 100644
--- a/Build/source/libs/icu-xetex/common/ubidi_props.c
+++ b/Build/source/libs/icu-xetex/common/ubidi_props.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -191,7 +191,9 @@ ubidi_openBinary(const uint8_t *bin, int32_t length, UErrorCode *pErrorCode) {
U_CAPI void U_EXPORT2
ubidi_closeProps(UBiDiProps *bdp) {
if(bdp!=NULL) {
+#if !UBIDI_HARDCODE_DATA
udata_close(bdp->mem);
+#endif
uprv_free(bdp);
}
}
@@ -199,17 +201,21 @@ ubidi_closeProps(UBiDiProps *bdp) {
/* UBiDiProps singleton ----------------------------------------------------- */
static UBiDiProps *gBdp=NULL, *gBdpDummy=NULL;
+#if !UBIDI_HARDCODE_DATA
static UErrorCode gErrorCode=U_ZERO_ERROR;
static int8_t gHaveData=0;
+#endif
static UBool U_CALLCONV
ubidi_cleanup(void) {
ubidi_closeProps(gBdp);
gBdp=NULL;
- gErrorCode=U_ZERO_ERROR;
- gHaveData=0;
ubidi_closeProps(gBdpDummy);
gBdpDummy=NULL;
+#if !UBIDI_HARDCODE_DATA
+ gErrorCode=U_ZERO_ERROR;
+ gHaveData=0;
+#endif
return TRUE;
}
diff --git a/Build/source/libs/icu-xetex/common/ubidi_props_data.c b/Build/source/libs/icu-xetex/common/ubidi_props_data.c
index 1716c90a8e9..9b188ed53a2 100644
--- a/Build/source/libs/icu-xetex/common/ubidi_props_data.c
+++ b/Build/source/libs/icu-xetex/common/ubidi_props_data.c
@@ -1,43 +1,43 @@
/*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
* file name: ubidi_props_data.c
*
- * machine-generated on: 2005-04-28
+ * machine-generated on: 2006-06-13
*/
-static const UVersionInfo ubidi_props_dataVersion={4,1,0,0};
+static const UVersionInfo ubidi_props_dataVersion={5,0,0,0};
-static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x3bdc,0x39e8,0x1a,0x622,0x76e,0,0,0,0,0,0,0,0,0,0x3500b2};
+static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x3f14,0x3d20,0x1a,0x622,0x76e,0,0,0,0,0,0,0,0,0,0x3500b2};
-static const uint16_t ubidi_props_trieIndex[7404]={
+static const uint16_t ubidi_props_trieIndex[7816]={
0x250,0x258,0x260,0x268,0x270,0x278,0x280,0x288,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x28e,0x296,0x29e,0x2a6,0x2a6,0x2a6,0x2aa,0x2b2,0x248,0x248,0x2b5,
0x248,0x248,0x248,0x248,0x2bd,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x2c3,0x2c8,0x2d0,0x2d2,
-0x2da,0x2e2,0x2ea,0x2f2,0x2f8,0x2ff,0x307,0x30f,0x317,0x31f,0x325,0x32c,0x330,0x337,0x2d2,0x2d2,
-0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x33f,0x340,0x348,0x350,0x358,0x340,0x360,0x368,
-0x33f,0x340,0x370,0x374,0x33f,0x340,0x37c,0x384,0x358,0x389,0x391,0x248,0x396,0x248,0x39e,0x3a2,
-0x248,0x3a9,0x3b1,0x248,0x248,0x3b7,0x3bf,0x248,0x248,0x248,0x3c7,0x248,0x248,0x248,0x3cd,0x248,
-0x248,0x3d3,0x3db,0x248,0x248,0x3df,0x3e7,0x248,0x3eb,0x3f2,0x248,0x3fa,0x402,0x409,0x395,0x248,
-0x248,0x411,0x3eb,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x418,0x248,0x420,0x248,0x248,0x248,
+0x2da,0x2e2,0x2ea,0x2f2,0x2f8,0x2ff,0x307,0x30f,0x317,0x31f,0x325,0x32c,0x330,0x337,0x33f,0x345,
+0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x34d,0x34e,0x356,0x35e,0x366,0x34e,0x36e,0x376,
+0x34d,0x34e,0x37e,0x382,0x34d,0x34e,0x38a,0x392,0x366,0x397,0x39f,0x248,0x3a4,0x248,0x3ac,0x3b0,
+0x248,0x3b7,0x3bf,0x248,0x248,0x3c5,0x3cd,0x3d5,0x248,0x248,0x3dd,0x248,0x248,0x248,0x3e3,0x248,
+0x248,0x3e9,0x3f1,0x248,0x248,0x3f5,0x3fd,0x248,0x401,0x408,0x248,0x410,0x418,0x41f,0x3a3,0x248,
+0x248,0x427,0x401,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x42e,0x248,0x436,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x428,0x248,0x248,0x248,0x430,0x430,0x364,0x364,0x248,0x436,0x43e,0x420,
-0x446,0x248,0x248,0x248,0x248,0x356,0x248,0x248,0x248,0x44e,0x456,0x248,0x248,0x248,0x458,0x460,
-0x468,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x470,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x471,0x479,0x47d,
-0x485,0x48b,0x492,0x49a,0x4a2,0x4aa,0x4b0,0x4b5,0x4bd,0x4c5,0x4cd,0x248,0x4d5,0x460,0x460,0x460,
-0x4dd,0x4e5,0x4ed,0x4f5,0x4fa,0x502,0x50a,0x510,0x518,0x520,0x248,0x526,0x52d,0x460,0x461,0x248,
-0x460,0x534,0x533,0x460,0x53c,0x248,0x248,0x45d,0x460,0x460,0x460,0x460,0x460,0x460,0x460,0x460,
-0x460,0x460,0x460,0x460,0x544,0x54c,0x248,0x248,0x554,0x55a,0x55f,0x567,0x546,0x56d,0x575,0x57d,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x460,0x460,0x460,0x460,0x585,0x58c,0x594,0x59c,
-0x5a4,0x5ac,0x5b4,0x5bb,0x5c3,0x5cb,0x5d2,0x5da,0x463,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x5e2,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x5ea,0x248,0x248,0x248,0x5f2,0x460,0x460,0x463,0x460,0x460,0x460,0x460,0x460,0x460,0x5f9,0x5ff,
-0x607,0x60f,0x248,0x248,0x617,0x61e,0x248,0x287,0x248,0x248,0x248,0x248,0x248,0x248,0x464,0x248,
-0x61f,0x248,0x4d5,0x627,0x248,0x62f,0x637,0x248,0x248,0x248,0x248,0x63b,0x248,0x248,0x458,0x286,
+0x248,0x248,0x248,0x248,0x43e,0x248,0x248,0x248,0x446,0x446,0x372,0x372,0x248,0x44c,0x454,0x436,
+0x45c,0x248,0x248,0x248,0x248,0x364,0x248,0x248,0x248,0x464,0x46c,0x248,0x248,0x248,0x46e,0x476,
+0x47e,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x486,0x489,0x3a4,0x491,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x499,0x3b7,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x49c,0x4a4,0x4a8,
+0x4b0,0x4b8,0x4bf,0x4c7,0x4cf,0x4d7,0x4dd,0x4e1,0x4e9,0x4f1,0x4f9,0x248,0x501,0x476,0x476,0x476,
+0x509,0x511,0x519,0x521,0x526,0x52e,0x536,0x53c,0x544,0x54c,0x248,0x552,0x559,0x476,0x476,0x55f,
+0x476,0x567,0x56f,0x476,0x577,0x248,0x248,0x473,0x476,0x476,0x476,0x476,0x476,0x476,0x476,0x476,
+0x476,0x476,0x476,0x476,0x57f,0x587,0x248,0x248,0x58f,0x595,0x59a,0x5a2,0x581,0x5a8,0x5b0,0x5b8,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x476,0x476,0x476,0x476,0x5c0,0x5c7,0x5cf,0x5d7,
+0x5df,0x5e7,0x5ef,0x5f6,0x5fe,0x606,0x60d,0x615,0x61d,0x625,0x248,0x248,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x62c,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
+0x634,0x248,0x248,0x248,0x63c,0x476,0x476,0x479,0x476,0x476,0x476,0x476,0x476,0x476,0x643,0x649,
+0x651,0x659,0x248,0x248,0x661,0x668,0x248,0x287,0x248,0x248,0x248,0x248,0x248,0x248,0x47a,0x248,
+0x669,0x248,0x501,0x671,0x248,0x679,0x681,0x248,0x248,0x248,0x248,0x685,0x248,0x248,0x46e,0x286,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
@@ -50,7 +50,7 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x460,0x460,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x476,0x476,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
@@ -94,9 +94,9 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x4d5,0x460,0x534,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x643,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x64b,0x652,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x501,0x476,0x567,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x61d,0x46d,0x248,0x248,0x248,0x248,0x248,0x248,
+0x68d,0x694,0x248,0x697,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
@@ -120,8 +120,8 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x720,0x723,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,
-0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x248,0x72b,0x733,0x72b,0x248,0x72b,0x248,0x72b,
+0x787,0x78a,0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,
+0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,0x248,0x792,0x79a,0x792,0x248,0x792,0x248,0x792,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
@@ -137,27 +137,27 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x655,0x65d,0x661,0x330,0x330,0x330,0x330,0x330,
-0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x665,0x330,0x330,0x330,0x330,0x66d,0x671,
-0x679,0x681,0x685,0x68d,0x330,0x330,0x330,0x691,0x699,0x260,0x6a1,0x6a9,0x248,0x248,0x248,0x6b1,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x69d,0x6a5,0x6a9,0x330,0x330,0x330,0x330,0x330,
+0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x6ad,0x330,0x330,0x330,0x330,0x6b5,0x6b9,
+0x6c1,0x6c9,0x6cd,0x6d5,0x330,0x330,0x330,0x6d9,0x6e1,0x260,0x6e9,0x6f1,0x248,0x248,0x248,0x6f9,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x6b9,0x248,0x460,0x460,0x533,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x6bd,0x248,
-0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
-0x6c5,0x6c9,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x701,0x248,0x476,0x476,0x56f,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
+0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x709,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
+0x711,0x715,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,0x2d2,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x6d1,0x6d9,0x6df,0x248,0x248,
-0x460,0x460,0x6e7,0x248,0x248,0x248,0x248,0x248,0x460,0x460,0x643,0x248,0x248,0x248,0x248,0x248,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x71d,0x725,0x72b,0x248,0x248,
+0x476,0x476,0x733,0x248,0x248,0x248,0x248,0x248,0x476,0x476,0x73b,0x248,0x248,0x248,0x248,0x248,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x6ec,0x6f0,
+0x248,0x248,0x248,0x248,0x248,0x248,0x741,0x248,0x748,0x248,0x744,0x248,0x74b,0x248,0x753,0x757,
0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,
-0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x6f8,
-0x700,0x708,0x708,0x708,0x710,0x710,0x710,0x710,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x718,
-0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,
-0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,
-0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,0x710,
+0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x248,0x75f,
+0x767,0x76f,0x76f,0x76f,0x777,0x777,0x777,0x777,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x77f,
+0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,
+0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,
+0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,0x777,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,
@@ -191,7 +191,7 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0xa,0,0,0,0,0,1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,
1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
@@ -219,108 +219,119 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,
-0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0xb1,0xb1,0,
+0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,
+1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,
+0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa,0xa,0xa,0x21,1,
+1,1,1,1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,
+0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,
+0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
+0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,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,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0xb1,0,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,4,0xa,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
-0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
+0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
+0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,
-0xa,4,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xb1,0,0,0xa0,0,0,0,0,0,0,0xa0,0,0,0,0,0,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,
+0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0xb1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,
+0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x300a,0xf00a,0x300a,0xf00a,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,0,0,0,0,
-0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0,
-0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,
-0,0xb1,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0xb1,0xb1,0,0xb1,0,0,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,
+0,0,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0,0,0,0,9,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
-9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa0,0xa0,0,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,
-0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
-0,0,0,4,0,0xb1,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xb1,0xb1,0xb1,9,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0xb1,
-0xb1,0x11,0x11,0x11,0,0,0,0,0,0,0xb1,0,0,0,0,0,
-0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0x300a,0xf00a,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa0,0xa0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,
+0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4,0,0xb1,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,9,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0,9,9,9,9,9,9,9,9,9,9,9,0xb2,
-0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,
-4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,6,0x300a,0xf00a,0xa,
+0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0x11,0x11,0x11,0,0,0,0,
+0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,
+0xa,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0x12,0x12,0x12,0x12,
-0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2,
-2,2,3,3,0xa,0x300a,0xf00a,0,2,2,2,2,2,2,2,2,
-2,2,3,3,0xa,0x300a,0xf00a,0,0,0,0,0,0,0,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,4,4,4,4,4,4,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,
+0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa,
+0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,
+9,9,9,9,9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,
+4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+6,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,
+0x12,0x12,0x12,0x12,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,
+2,2,2,2,2,2,3,3,0xa,0x300a,0xf00a,0,2,2,2,2,
+2,2,2,2,2,2,3,3,0xa,0x300a,0xf00a,0,0,0,0,0,
+0,0,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,4,4,4,4,
+4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,
0,0,0,0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,
0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,
-0,0,4,0,0,0,0xa,0,0,0,0,0,0,0,0xa,0xa,
+0,0,4,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,
0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,
-0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,
@@ -345,78 +356,85 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
+0xa,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,
-0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa,0xa,0xa,0xa,0,
-0,0,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0,0,0,0,0,
-0,0,0,0,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
-0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
-0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x700a,0x300a,0xf00a,0xb00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,
-0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0xa,
-0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,
-0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,
+0xa,0xa,0xa,0xa,0,0xa,0,0xa,0xa,0xa,0xa,0,0,0,0xa,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,
-0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
-0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,
-0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,
-0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,
-0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,
-0x100a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,
-0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,
-0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,
-0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
-0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0,0,0,0,0x300a,0xf00a,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0xa,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0,0,0,0,
0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,9,0xa,0xa,0xa,
-0xa,0,0,0,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,
-0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0,0,0,
-0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0,0,0,
-0,0,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,
+0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x700a,0x300a,0xf00a,
+0xb00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,
+0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,
+0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,
+0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,
+0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,
+0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,
+0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,
+0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,
+0x100a,0xa,0x900a,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,
+0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,
+0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0x300a,0xf00a,0,0,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0,0,0,0,9,0xa,0xa,0xa,0xa,0,0,0,0x300a,0xf00a,0x300a,0xf00a,
+0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,
+0xa,0x300a,0xf00a,0x100a,0xa,0,0,0,0,0,0,0,0,0,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xa,0,0,0,0,0,0xa,0xa,0,0,0,0,
+0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa,
+0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,
+0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,
+0,0,0,0,0,0,0x11,0,0,0,0xb1,0,0,0,0,0xb1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,
+0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0x11,0,
-0,0,0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,
0xa,0xa,0xa,0xa,0,0,0,0,0,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,0xb1,1,1,1,1,1,1,1,1,1,1,3,1,1,
@@ -430,8 +448,8 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,
0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,
0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0xa,0xa,0xa,
-0xa,0xa,0xa,4,0xa,0xa,3,3,0xa,0xa,0xa,0,0xa,4,4,0xa,
+0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x300a,0xf00a,0x300a,
+0xf00a,0x300a,0xf00a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa,
0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,
0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x300a,0xf00a,0xa,3,
@@ -444,8 +462,9 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,
0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,
-0,0,0,0,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,
+0,0,0,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,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,
0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,
1,1,1,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,
@@ -455,26 +474,33 @@ static const uint16_t ubidi_props_trieIndex[7404]={
0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,
0xb1,0xa,0,0,0,0,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,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,
+0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1000,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x1000,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1000,
+0,0,0,0,0,0,0,0,0,0,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,2,2,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12,
-0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0,0,0,0,0,0,0,0,0,0,0x12,0x12,0x12,0xb2,0x12,0x12,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb2,0xb2,0xb2,0xb2,
0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x12,0x12,0x12,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x820,0,0x840,0x860,0,0,0,0,0,0,0,0,0,0,0,0,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x820,0,0x840,0x860,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x880,0x8a0,0,0,0,0,0,0,0,0,0,0x8c0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x880,0x8a0,0,0,
+0,0,0,0,0,0,0,0x8c0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x8c0,0x8e0,0x900,0x900,0x900,
+0,0,0,0,0,0,0,0x8c0,0x8e0,0x900,0x900,0x900,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0
};
static const uint32_t ubidi_props_mirrors[26]={
@@ -516,7 +542,7 @@ static const UBiDiProps ubidi_props_singleton={
NULL,
utrie_defaultGetFoldingOffset,
2336,
- 5068,
+ 5480,
0,
TRUE
},
diff --git a/Build/source/libs/icu-xetex/common/ubidiimp.h b/Build/source/libs/icu-xetex/common/ubidiimp.h
index 2864aac6361..ca68858d32c 100644
--- a/Build/source/libs/icu-xetex/common/ubidiimp.h
+++ b/Build/source/libs/icu-xetex/common/ubidiimp.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -119,34 +119,73 @@ enum {
(UBiDiLevel)((ubidi)->defaultParaLevel ? (ubidi)->dirProps[index]>>7 \
: (ubidi)->paraLevel)
-/* Paragraph type for multiple paragraph support --- -------------------- */
+/* Paragraph type for multiple paragraph support ---------------------------- */
typedef int32_t Para;
#define CR 0x000D
#define LF 0x000A
/* Run structure for reordering --------------------------------------------- */
+enum {
+ LRM_BEFORE=1,
+ LRM_AFTER=2,
+ RLM_BEFORE=4,
+ RLM_AFTER=8
+};
typedef struct Run {
int32_t logicalStart, /* first character of the run; b31 indicates even/odd level */
- visualLimit; /* last visual position of the run +1 */
+ visualLimit, /* last visual position of the run +1 */
+ insertRemove; /* if >0, flags for inserting LRM/RLM before/after run,
+ if <0, count of bidi controls within run */
} Run;
/* in a Run, logicalStart will get this bit set if the run level is odd */
#define INDEX_ODD_BIT (1UL<<31)
-#define MAKE_INDEX_ODD_PAIR(index, level) (index|((int32_t)level<<31))
-#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)level<<31))
+#define MAKE_INDEX_ODD_PAIR(index, level) ((index)|((int32_t)(level)<<31))
+#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((int32_t)(level)<<31))
#define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT)
-#define GET_INDEX(x) (x&~INDEX_ODD_BIT)
-#define GET_ODD_BIT(x) ((uint32_t)x>>31)
-#define IS_ODD_RUN(x) ((x&INDEX_ODD_BIT)!=0)
-#define IS_EVEN_RUN(x) ((x&INDEX_ODD_BIT)==0)
+#define GET_INDEX(x) ((x)&~INDEX_ODD_BIT)
+#define GET_ODD_BIT(x) ((uint32_t)(x)>>31)
+#define IS_ODD_RUN(x) (((x)&INDEX_ODD_BIT)!=0)
+#define IS_EVEN_RUN(x) (((x)&INDEX_ODD_BIT)==0)
U_CFUNC UBool
ubidi_getRuns(UBiDi *pBiDi);
+/** BiDi control code points */
+enum {
+ ZWNJ_CHAR=0x200c,
+ ZWJ_CHAR,
+ LRM_CHAR,
+ RLM_CHAR,
+ LRE_CHAR=0x202a,
+ RLE_CHAR,
+ PDF_CHAR,
+ LRO_CHAR,
+ RLO_CHAR
+};
+
+#define IS_BIDI_CONTROL_CHAR(c) (((uint32_t)(c)&0xfffffffc)==ZWNJ_CHAR || (uint32_t)((c)-LRE_CHAR)<5)
+
+/* InsertPoints structure for noting where to put BiDi marks ---------------- */
+
+typedef struct Point {
+ int32_t pos; /* position in text */
+ int32_t flag; /* flag for LRM/RLM, before/after */
+} Point;
+
+typedef struct InsertPoints {
+ int32_t capacity; /* number of points allocated */
+ int32_t size; /* number of points used */
+ int32_t confirmed; /* number of points confirmed */
+ UErrorCode errorCode; /* for eventual memory shortage */
+ Point *points; /* pointer to array of points */
+} InsertPoints;
+
+
/* UBiDi structure ----------------------------------------------------------- */
struct UBiDi {
@@ -162,8 +201,21 @@ struct UBiDi {
const UChar *text;
/* length of the current text */
+ int32_t originalLength;
+
+ /* if the UBIDI_OPTION_STREAMING option is set, this is the length
+ * of text actually processed by ubidi_setPara, which may be shorter than
+ * the original length.
+ * Otherwise, it is identical to the original length.
+ */
int32_t length;
+ /* if the UBIDI_OPTION_REMOVE_CONTROLS option is set, and/or
+ * marks are allowed to be inserted in one of the reordering mode, the
+ * length of the result string may be different from the processed length.
+ */
+ int32_t resultLength;
+
/* memory sizes in bytes */
int32_t dirPropsSize, levelsSize, parasSize, runsSize;
@@ -182,7 +234,18 @@ struct UBiDi {
/* are we performing an approximation of the "inverse BiDi" algorithm? */
UBool isInverse;
- UBool isInverse2;
+
+ /* are we using the basic algorithm or its variation? */
+ UBiDiReorderingMode reorderingMode;
+
+ /* UBIDI_REORDER_xxx values must be ordered so that all the regular
+ * logical to visual modes come first, and all inverse BiDi modes
+ * come last.
+ */
+ #define UBIDI_REORDER_LAST_LOGICAL_TO_VISUAL UBIDI_REORDER_NUMBERS_SPECIAL
+
+ /* bitmask for reordering options */
+ uint32_t reorderingOptions;
/* must block separators receive level 0? */
UBool orderParagraphsLTR;
@@ -202,6 +265,9 @@ struct UBiDi {
/* flags is a bit set for which directional properties are in the text */
Flags flags;
+ /* lastArabicPos is index to the last AL in the text, -1 if none */
+ int32_t lastArabicPos;
+
/* characters after trailingWSStart are WS and are */
/* implicitly at the paraLevel (rule (L1)) - levels may not reflect that */
int32_t trailingWSStart;
@@ -220,6 +286,16 @@ struct UBiDi {
/* for non-mixed text, we only need a tiny array of runs (no malloc()) */
Run simpleRuns[1];
+
+ /* for inverse Bidi with insertion of directional marks */
+ InsertPoints insertPoints;
+
+ /* for option UBIDI_OPTION_REMOVE_CONTROLS */
+ int32_t controlCount;
+
+ /* for Bidi class callback */
+ UBiDiClassCallback *fnClassCallback; /* action pointer */
+ const void *coClassCallback; /* context pointer */
};
#define IS_VALID_PARA(x) ((x) && ((x)->pParaBiDi==(x)))
diff --git a/Build/source/libs/icu-xetex/common/ubidiln.c b/Build/source/libs/icu-xetex/common/ubidiln.c
index 71e5d15d164..31866b4764d 100644
--- a/Build/source/libs/icu-xetex/common/ubidiln.c
+++ b/Build/source/libs/icu-xetex/common/ubidiln.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -142,6 +142,7 @@ ubidi_setLine(const UBiDi *pParaBiDi,
return;
} else if(ubidi_getParagraph(pParaBiDi, start, NULL, NULL, NULL, pErrorCode) !=
ubidi_getParagraph(pParaBiDi, limit-1, NULL, NULL, NULL, pErrorCode)) {
+ /* the line crosses a paragraph boundary */
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return;
}
@@ -150,10 +151,22 @@ ubidi_setLine(const UBiDi *pParaBiDi,
pLineBiDi->pParaBiDi=NULL; /* mark unfinished setLine */
pLineBiDi->text=pParaBiDi->text+start;
length=pLineBiDi->length=limit-start;
+ pLineBiDi->resultLength=pLineBiDi->originalLength=length;
pLineBiDi->paraLevel=GET_PARALEVEL(pParaBiDi, start);
pLineBiDi->paraCount=pParaBiDi->paraCount;
pLineBiDi->runs=NULL;
pLineBiDi->flags=0;
+ pLineBiDi->reorderingMode=pParaBiDi->reorderingMode;
+ pLineBiDi->reorderingOptions=pParaBiDi->reorderingOptions;
+ pLineBiDi->controlCount=0;
+ if(pParaBiDi->controlCount>0) {
+ int32_t j;
+ for(j=start; j<limit; j++) {
+ if(IS_BIDI_CONTROL_CHAR(pParaBiDi->text[j])) {
+ pLineBiDi->controlCount++;
+ }
+ }
+ }
if(length>0) {
pLineBiDi->dirProps=pParaBiDi->dirProps+start;
@@ -384,6 +397,7 @@ getSingleRun(UBiDi *pBiDi, UBiDiLevel level) {
/* fill and reorder the single run */
pBiDi->runs[0].logicalStart=MAKE_INDEX_ODD_PAIR(0, level);
pBiDi->runs[0].visualLimit=pBiDi->length;
+ pBiDi->runs[0].insertRemove=0;
}
/* reorder the runs array (L2) ---------------------------------------------- */
@@ -469,7 +483,6 @@ reorderLine(UBiDi *pBiDi, UBiDiLevel minLevel, UBiDiLevel maxLevel) {
tempRun = runs[firstRun];
runs[firstRun]=runs[endRun];
runs[endRun]=tempRun;
-
++firstRun;
--endRun;
}
@@ -496,7 +509,6 @@ reorderLine(UBiDi *pBiDi, UBiDiLevel minLevel, UBiDiLevel maxLevel) {
tempRun=runs[firstRun];
runs[firstRun]=runs[runCount];
runs[runCount]=tempRun;
-
++firstRun;
--runCount;
}
@@ -505,12 +517,34 @@ reorderLine(UBiDi *pBiDi, UBiDiLevel minLevel, UBiDiLevel maxLevel) {
/* compute the runs array --------------------------------------------------- */
+static int32_t getRunFromLogicalIndex(UBiDi *pBiDi, int32_t logicalIndex) {
+ Run *runs=pBiDi->runs;
+ int32_t runCount=pBiDi->runCount, visualStart=0, i, length, logicalStart;
+
+ for(i=0; i<runCount; i++) {
+ length=runs[i].visualLimit-visualStart;
+ logicalStart=GET_INDEX(runs[i].logicalStart);
+ if((logicalIndex>=logicalStart) && (logicalIndex<(logicalStart+length))) {
+ return i;
+ }
+ visualStart+=length;
+ }
+ /* we should never get here */
+ i=length+25;
+ i/=(i-length-25); /* force program crash */
+ return 0;
+}
+
/*
* Compute the runs array from the levels array.
* After ubidi_getRuns() returns TRUE, runCount is guaranteed to be >0
* and the runs are reordered.
* Odd-level runs have visualStart on their visual right edge and
* they progress visually to the left.
+ * If option UBIDI_OPTION_INSERT_MARKS is set, insertRemove will contain the
+ * sum of appropriate LRM/RLM_BEFORE/AFTER flags.
+ * If option UBIDI_OPTION_REMOVE_CONTROLS is set, insertRemove will contain the
+ * negative number of BiDi control characters within this run.
*/
U_CFUNC UBool
ubidi_getRuns(UBiDi *pBiDi) {
@@ -578,8 +612,11 @@ ubidi_getRuns(UBiDi *pBiDi) {
}
/* set the runs */
- /* this could be optimized, e.g.: 464->444, 484->444, 575->555, 595->555 */
- /* however, that would take longer and make other functions more complicated */
+ /* FOOD FOR THOUGHT: this could be optimized, e.g.:
+ * 464->444, 484->444, 575->555, 595->555
+ * However, that would take longer. Check also how it would
+ * interact with BiDi control removal and inserting Marks.
+ */
runIndex=0;
/* search for the run limits and initialize visualLimit values with the run lengths */
@@ -601,6 +638,7 @@ ubidi_getRuns(UBiDi *pBiDi) {
/* i is another run limit */
runs[runIndex].logicalStart=start;
runs[runIndex].visualLimit=i-start;
+ runs[runIndex].insertRemove=0;
++runIndex;
} while(i<limit);
@@ -622,11 +660,9 @@ ubidi_getRuns(UBiDi *pBiDi) {
reorderLine(pBiDi, minLevel, maxLevel);
/* now add the direction flags and adjust the visualLimit's to be just that */
- ADD_ODD_BIT_FROM_LEVEL(runs[0].logicalStart, levels[runs[0].logicalStart]);
- limit=runs[0].visualLimit;
-
/* this loop will also handle the trailing WS run */
- for(i=1; i<runCount; ++i) {
+ limit=0;
+ for(i=0; i<runCount; ++i) {
ADD_ODD_BIT_FROM_LEVEL(runs[i].logicalStart, levels[runs[i].logicalStart]);
limit=runs[i].visualLimit+=limit;
}
@@ -643,6 +679,30 @@ ubidi_getRuns(UBiDi *pBiDi) {
}
}
}
+
+ /* handle insert LRM/RLM BEFORE/AFTER run */
+ if(pBiDi->insertPoints.size>0) {
+ Point *point, *start=pBiDi->insertPoints.points,
+ *limit=start+pBiDi->insertPoints.size;
+ int32_t runIndex;
+ for(point=start; point<limit; point++) {
+ runIndex=getRunFromLogicalIndex(pBiDi, point->pos);
+ pBiDi->runs[runIndex].insertRemove|=point->flag;
+ }
+ }
+
+ /* handle remove BiDi control characters */
+ if(pBiDi->controlCount>0) {
+ int32_t runIndex;
+ const UChar *start=pBiDi->text, *limit=start+pBiDi->length, *pu;
+ for(pu=start; pu<limit; pu++) {
+ if(IS_BIDI_CONTROL_CHAR(*pu)) {
+ runIndex=getRunFromLogicalIndex(pBiDi, pu-start);
+ pBiDi->runs[runIndex].insertRemove--;
+ }
+ }
+ }
+
return TRUE;
}
@@ -813,6 +873,7 @@ ubidi_reorderVisual(const UBiDiLevel *levels, int32_t length, int32_t *indexMap)
U_CAPI int32_t U_EXPORT2
ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode) {
+ int32_t visualIndex;
if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
return 0;
} else if(!IS_VALID_PARA_OR_LINE(pBiDi)) {
@@ -825,9 +886,11 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode)
/* we can do the trivial cases without the runs array */
switch(pBiDi->direction) {
case UBIDI_LTR:
- return logicalIndex;
+ visualIndex=logicalIndex;
+ break;
case UBIDI_RTL:
- return pBiDi->length-logicalIndex-1;
+ visualIndex=pBiDi->length-logicalIndex-1;
+ break;
default:
if(pBiDi->runCount<0 && !ubidi_getRuns(pBiDi)) {
*pErrorCode=U_MEMORY_ALLOCATION_ERROR;
@@ -843,92 +906,288 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode)
if(offset>=0 && offset<length) {
if(IS_EVEN_RUN(runs[i].logicalStart)) {
/* LTR */
- return visualStart+offset;
+ visualIndex=visualStart+offset;
} else {
/* RTL */
- return visualStart+length-offset-1;
+ visualIndex=visualStart+length-offset-1;
}
+ break; /* exit for loop */
}
visualStart+=length;
}
}
}
}
+
+ if(pBiDi->insertPoints.size>0) {
+ /* add the number of added marks until the calculated visual index */
+ Run *runs=pBiDi->runs;
+ int32_t i, length, insertRemove;
+ int32_t visualStart=0, markFound=0;
+ for(i=0; ; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ if(insertRemove & (LRM_BEFORE|RLM_BEFORE)) {
+ markFound++;
+ }
+ /* is it the run containing the visual index? */
+ if(visualIndex<runs[i].visualLimit) {
+ return visualIndex+markFound;
+ }
+ if(insertRemove & (LRM_AFTER|RLM_AFTER)) {
+ markFound++;
+ }
+ }
+ }
+ else if(pBiDi->controlCount>0) {
+ /* subtract the number of controls until the calculated visual index */
+ Run *runs=pBiDi->runs;
+ int32_t i, j, start, limit, length, insertRemove;
+ int32_t visualStart=0, controlFound=0;
+ UChar uchar=pBiDi->text[logicalIndex];
+ /* is the logical index pointing to a control ? */
+ if(IS_BIDI_CONTROL_CHAR(uchar)) {
+ return UBIDI_MAP_NOWHERE;
+ }
+ /* loop on runs */
+ for(i=0; ; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ /* calculated visual index is beyond this run? */
+ if(visualIndex>=runs[i].visualLimit) {
+ controlFound-=insertRemove;
+ continue;
+ }
+ /* calculated visual index must be within current run */
+ if(insertRemove==0) {
+ return visualIndex-controlFound;
+ }
+ if(IS_EVEN_RUN(runs[i].logicalStart)) {
+ /* LTR: check from run start to logical index */
+ start=runs[i].logicalStart;
+ limit=logicalIndex;
+ } else {
+ /* RTL: check from logical index to run end */
+ start=logicalIndex+1;
+ limit=runs[i].logicalStart+length;
+ }
+ for(j=start; j<limit; j++) {
+ uchar=pBiDi->text[j];
+ if(IS_BIDI_CONTROL_CHAR(uchar)) {
+ controlFound++;
+ }
+ }
+ return visualIndex-controlFound;
+ }
+ }
+
+ return visualIndex;
}
U_CAPI int32_t U_EXPORT2
ubidi_getLogicalIndex(UBiDi *pBiDi, int32_t visualIndex, UErrorCode *pErrorCode) {
+ Run *runs;
+ int32_t i, runCount, start;
if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
return 0;
} else if(!IS_VALID_PARA_OR_LINE(pBiDi)) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return 0;
- } else if(visualIndex<0 || pBiDi->length<=visualIndex) {
+ } else if(visualIndex<0 || pBiDi->resultLength<=visualIndex) {
*pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
- } else {
- /* we can do the trivial cases without the runs array */
- switch(pBiDi->direction) {
- case UBIDI_LTR:
+ }
+ /* we can do the trivial cases without the runs array */
+ if(pBiDi->insertPoints.size==0 && pBiDi->controlCount==0) {
+ if(pBiDi->direction==UBIDI_LTR) {
return visualIndex;
- case UBIDI_RTL:
+ }
+ else if(pBiDi->direction==UBIDI_RTL) {
return pBiDi->length-visualIndex-1;
- default:
- if(pBiDi->runCount<0 && !ubidi_getRuns(pBiDi)) {
- *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
- return 0;
- } else {
- Run *runs=pBiDi->runs;
- int32_t i, runCount=pBiDi->runCount, start;
-
- if(runCount<=10) {
- /* linear search for the run */
- for(i=0; visualIndex>=runs[i].visualLimit; ++i) {}
- } else {
- /* binary search for the run */
- int32_t begin=0, limit=runCount;
+ }
+ if(pBiDi->runCount<0 && !ubidi_getRuns(pBiDi)) {
+ *pErrorCode=U_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+ }
- /* the middle if() is guaranteed to find the run, we don't need a loop limit */
- for(;;) {
- i=(begin+limit)/2;
- if(visualIndex>=runs[i].visualLimit) {
- begin=i+1;
- } else if(i==0 || visualIndex>=runs[i-1].visualLimit) {
- break;
- } else {
- limit=i;
- }
- }
+ runs=pBiDi->runs;
+ runCount=pBiDi->runCount;
+ if(pBiDi->insertPoints.size>0) {
+ /* handle inserted LRM/RLM */
+ int32_t markFound=0, insertRemove;
+ int32_t visualStart=0, length;
+ runs=pBiDi->runs;
+ /* subtract number of marks until visual index */
+ for(i=0; ; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ if(insertRemove&(LRM_BEFORE|RLM_BEFORE)) {
+ if(visualIndex<=(visualStart+markFound)) {
+ return UBIDI_MAP_NOWHERE;
}
-
- start=runs[i].logicalStart;
- if(IS_EVEN_RUN(start)) {
- /* LTR */
- /* the offset in runs[i] is visualIndex-runs[i-1].visualLimit */
- if(i>0) {
- visualIndex-=runs[i-1].visualLimit;
- }
- return GET_INDEX(start)+visualIndex;
- } else {
- /* RTL */
- return GET_INDEX(start)+runs[i].visualLimit-visualIndex-1;
+ markFound++;
+ }
+ /* is adjusted visual index within this run? */
+ if(visualIndex<(runs[i].visualLimit+markFound)) {
+ visualIndex-=markFound;
+ break;
+ }
+ if(insertRemove&(LRM_AFTER|RLM_AFTER)) {
+ if(visualIndex==(visualStart+length+markFound)) {
+ return UBIDI_MAP_NOWHERE;
+ }
+ markFound++;
+ }
+ }
+ }
+ else if(pBiDi->controlCount>0) {
+ /* handle removed BiDi control characters */
+ int32_t controlFound=0, insertRemove, length;
+ int32_t logicalStart, logicalEnd, visualStart=0, j, k;
+ UChar uchar;
+ UBool evenRun;
+ /* add number of controls until visual index */
+ for(i=0; ; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ /* is adjusted visual index beyond current run? */
+ if(visualIndex>=(runs[i].visualLimit-controlFound+insertRemove)) {
+ controlFound-=insertRemove;
+ continue;
+ }
+ /* adjusted visual index is within current run */
+ if(insertRemove==0) {
+ visualIndex+=controlFound;
+ break;
+ }
+ /* count non-control chars until visualIndex */
+ logicalStart=runs[i].logicalStart;
+ evenRun=IS_EVEN_RUN(logicalStart);
+ REMOVE_ODD_BIT(logicalStart);
+ logicalEnd=logicalStart+length-1;
+ for(j=0; j<length; j++) {
+ k= evenRun ? logicalStart+j : logicalEnd-j;
+ uchar=pBiDi->text[k];
+ if(IS_BIDI_CONTROL_CHAR(uchar)) {
+ controlFound++;
+ }
+ if((visualIndex+controlFound)==(visualStart+j)) {
+ break;
}
}
+ visualIndex+=controlFound;
+ break;
+ }
+ }
+ /* handle all cases */
+ if(runCount<=10) {
+ /* linear search for the run */
+ for(i=0; visualIndex>=runs[i].visualLimit; ++i) {}
+ } else {
+ /* binary search for the run */
+ int32_t begin=0, limit=runCount;
+
+ /* the middle if() is guaranteed to find the run, we don't need a loop limit */
+ for(;;) {
+ i=(begin+limit)/2;
+ if(visualIndex>=runs[i].visualLimit) {
+ begin=i+1;
+ } else if(i==0 || visualIndex>=runs[i-1].visualLimit) {
+ break;
+ } else {
+ limit=i;
+ }
}
}
+
+ start=runs[i].logicalStart;
+ if(IS_EVEN_RUN(start)) {
+ /* LTR */
+ /* the offset in runs[i] is visualIndex-runs[i-1].visualLimit */
+ if(i>0) {
+ visualIndex-=runs[i-1].visualLimit;
+ }
+ return start+visualIndex;
+ } else {
+ /* RTL */
+ return GET_INDEX(start)+runs[i].visualLimit-visualIndex-1;
+ }
}
U_CAPI void U_EXPORT2
ubidi_getLogicalMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode) {
- UBiDiLevel *levels;
+ const UBiDiLevel *levels;
/* ubidi_getLevels() checks all of its and our arguments */
- if((levels=(UBiDiLevel *)ubidi_getLevels(pBiDi, pErrorCode))==NULL) {
+ if((levels=ubidi_getLevels(pBiDi, pErrorCode))==NULL) {
/* no op */
} else if(indexMap==NULL) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
} else {
ubidi_reorderLogical(levels, pBiDi->length, indexMap);
+
+ if(pBiDi->insertPoints.size>0) {
+ int32_t markFound=0, runCount=pBiDi->runCount;
+ int32_t visualStart=0, length, insertRemove, i, j;
+ Run *runs=pBiDi->runs;
+ /* add number of marks found until each index */
+ for(i=0; i<runCount; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ if(insertRemove&(LRM_BEFORE|RLM_BEFORE)) {
+ markFound++;
+ }
+ if(markFound>0) {
+ int32_t logicalStart=GET_INDEX(runs[i].logicalStart);
+ int32_t limit=logicalStart+length;
+ for(j=logicalStart; j<limit; j++) {
+ indexMap[j]+=markFound;
+ }
+ }
+ if(insertRemove&(LRM_AFTER|RLM_AFTER)) {
+ markFound++;
+ }
+ }
+ }
+ else if(pBiDi->controlCount>0) {
+ int32_t controlFound=0, runCount=pBiDi->runCount;
+ int32_t visualStart=0, length, insertRemove, i, j, k;
+ int32_t logicalStart, logicalEnd;
+ UBool evenRun;
+ UChar uchar;
+ Run *runs=pBiDi->runs;
+ /* subtract number of controls found until each index */
+ for(i=0; i<runCount; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ /* no control found within previous runs nor within this run */
+ if((controlFound-insertRemove)==0) {
+ continue;
+ }
+ logicalStart=runs[i].logicalStart;
+ evenRun=IS_EVEN_RUN(logicalStart);
+ REMOVE_ODD_BIT(logicalStart);
+ logicalEnd=logicalStart+length-1;
+ /* if no control within this run */
+ if(insertRemove==0) {
+ for(j=logicalStart; j<=logicalEnd; j++) {
+ indexMap[j]-=controlFound;
+ }
+ continue;
+ }
+ for(j=0; j<length; j++) {
+ k= evenRun ? logicalStart+j : logicalEnd-j;
+ uchar=pBiDi->text[k];
+ if(IS_BIDI_CONTROL_CHAR(uchar)) {
+ controlFound++;
+ indexMap[k]=UBIDI_MAP_NOWHERE;
+ continue;
+ }
+ indexMap[k]-=controlFound;
+ }
+ }
+ }
}
}
@@ -942,7 +1201,7 @@ ubidi_getVisualMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode) {
} else {
/* fill a visual-to-logical index map using the runs[] */
Run *runs=pBiDi->runs, *runsLimit=runs+pBiDi->runCount;
- int32_t logicalStart, visualStart, visualLimit;
+ int32_t logicalStart, visualStart, visualLimit, *pi=indexMap;
visualStart=0;
for(; runs<runsLimit; ++runs) {
@@ -950,26 +1209,118 @@ ubidi_getVisualMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode) {
visualLimit=runs->visualLimit;
if(IS_EVEN_RUN(logicalStart)) {
do { /* LTR */
- *indexMap++ = logicalStart++;
+ *pi++ = logicalStart++;
} while(++visualStart<visualLimit);
} else {
REMOVE_ODD_BIT(logicalStart);
logicalStart+=visualLimit-visualStart; /* logicalLimit */
do { /* RTL */
- *indexMap++ = --logicalStart;
+ *pi++ = --logicalStart;
} while(++visualStart<visualLimit);
}
/* visualStart==visualLimit; */
}
+
+ if(pBiDi->insertPoints.size>0) {
+ int32_t markFound=0, runCount=pBiDi->runCount;
+ int32_t insertRemove, i, j, k;
+ runs=pBiDi->runs;
+ /* count all inserted marks */
+ for(i=0; i<runCount; i++) {
+ insertRemove=runs[i].insertRemove;
+ if(insertRemove&(LRM_BEFORE|RLM_BEFORE)) {
+ markFound++;
+ }
+ if(insertRemove&(LRM_AFTER|RLM_AFTER)) {
+ markFound++;
+ }
+ }
+ /* move back indexes by number of preceding marks */
+ k=pBiDi->resultLength;
+ for(i=runCount-1; i>=0 && markFound>0; i--) {
+ insertRemove=runs[i].insertRemove;
+ if(insertRemove&(LRM_AFTER|RLM_AFTER)) {
+ indexMap[--k]= UBIDI_MAP_NOWHERE;
+ markFound--;
+ }
+ visualStart= i>0 ? runs[i-1].visualLimit : 0;
+ for(j=runs[i].visualLimit-1; j>=visualStart && markFound>0; j--) {
+ indexMap[--k]=indexMap[j];
+ }
+ if(insertRemove&(LRM_BEFORE|RLM_BEFORE)) {
+ indexMap[--k]= UBIDI_MAP_NOWHERE;
+ markFound--;
+ }
+ }
+ }
+ else if(pBiDi->controlCount>0) {
+ int32_t runCount=pBiDi->runCount, logicalEnd;
+ int32_t insertRemove, length, i, j, k, m;
+ UChar uchar;
+ UBool evenRun;
+ runs=pBiDi->runs;
+ visualStart=0;
+ /* move forward indexes by number of preceding controls */
+ k=0;
+ for(i=0; i<runCount; i++, visualStart+=length) {
+ length=runs[i].visualLimit-visualStart;
+ insertRemove=runs[i].insertRemove;
+ /* if no control found yet, nothing to do in this run */
+ if((insertRemove==0)&&(k==visualStart)) {
+ k+=length;
+ continue;
+ }
+ /* if no control in this run */
+ if(insertRemove==0) {
+ visualLimit=runs[i].visualLimit;
+ for(j=visualStart; j<visualLimit; j++) {
+ indexMap[k++]=indexMap[j];
+ }
+ continue;
+ }
+ logicalStart=runs[i].logicalStart;
+ evenRun=IS_EVEN_RUN(logicalStart);
+ REMOVE_ODD_BIT(logicalStart);
+ logicalEnd=logicalStart+length-1;
+ for(j=0; j<length; j++) {
+ m= evenRun ? logicalStart+j : logicalEnd-j;
+ uchar=pBiDi->text[m];
+ if(!IS_BIDI_CONTROL_CHAR(uchar)) {
+ indexMap[k++]=m;
+ }
+ }
+ }
+ }
}
}
U_CAPI void U_EXPORT2
ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length) {
- if(srcMap!=NULL && destMap!=NULL) {
- srcMap+=length;
+ if(srcMap!=NULL && destMap!=NULL && length>0) {
+ const int32_t *pi;
+ int32_t destLength=-1, count=0;
+ /* find highest value and count positive indexes in srcMap */
+ pi=srcMap+length;
+ while(pi>srcMap) {
+ if(*--pi>destLength) {
+ destLength=*pi;
+ }
+ if(*pi>=0) {
+ count++;
+ }
+ }
+ destLength++; /* add 1 for origin 0 */
+ if(count<destLength) {
+ /* we must fill unmatched destMap entries with -1 */
+ uprv_memset(destMap, 0xFF, destLength*sizeof(int32_t));
+ }
+ pi=srcMap+length;
while(length>0) {
- destMap[*--srcMap]=--length;
+ if(*--pi>=0) {
+ destMap[*pi]=--length;
+ } else {
+ --length;
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/common/ubidiwrt.c b/Build/source/libs/icu-xetex/common/ubidiwrt.c
index 53b1bc1dd01..acbc4bb47ab 100644
--- a/Build/source/libs/icu-xetex/common/ubidiwrt.c
+++ b/Build/source/libs/icu-xetex/common/ubidiwrt.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -46,18 +46,6 @@
# error reimplement ubidi_writeReordered() for UTF-8, see comment above
#endif
-/** BiDi control code points */
-enum {
- LRM_CHAR=0x200e,
- RLM_CHAR,
- LRE_CHAR=0x202a,
- RLE_CHAR,
- PDF_CHAR,
- LRO_CHAR,
- RLO_CHAR
-};
-
-#define IS_BIDI_CONTROL_CHAR(c) (((uint32_t)(c)&0xfffffffe)==LRM_CHAR || (uint32_t)((c)-LRE_CHAR)<5)
#define IS_COMBINING(type) ((1UL<<(type))&(1UL<<U_NON_SPACING_MARK|1UL<<U_COMBINING_SPACING_MARK|1UL<<U_ENCLOSING_MARK))
/*
@@ -378,7 +366,7 @@ ubidi_writeReordered(UBiDi *pBiDi,
/* more error checking */
if( pBiDi==NULL ||
- (text=ubidi_getText(pBiDi))==NULL || (length=ubidi_getLength(pBiDi))<0 ||
+ (text=pBiDi->text)==NULL || (length=pBiDi->length)<0 ||
destSize<0 || (destSize>0 && dest==NULL))
{
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
@@ -388,7 +376,7 @@ ubidi_writeReordered(UBiDi *pBiDi,
/* do input and output overlap? */
if( dest!=NULL &&
((text>=dest && text<dest+destSize) ||
- (dest>=text && dest<text+length)))
+ (dest>=text && dest<text+pBiDi->originalLength)))
{
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return 0;
@@ -409,13 +397,31 @@ ubidi_writeReordered(UBiDi *pBiDi,
destCapacity=destSize;
/*
+ * Option "insert marks" implies UBIDI_INSERT_LRM_FOR_NUMERIC if the
+ * reordering mode (checked below) is appropriate.
+ */
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_INSERT_MARKS) {
+ options|=UBIDI_INSERT_LRM_FOR_NUMERIC;
+ options&=~UBIDI_REMOVE_BIDI_CONTROLS;
+ }
+ /*
+ * Option "remove controls" implies UBIDI_REMOVE_BIDI_CONTROLS
+ * and cancels UBIDI_INSERT_LRM_FOR_NUMERIC.
+ */
+ if(pBiDi->reorderingOptions & UBIDI_OPTION_REMOVE_CONTROLS) {
+ options|=UBIDI_REMOVE_BIDI_CONTROLS;
+ options&=~UBIDI_INSERT_LRM_FOR_NUMERIC;
+ }
+ /*
* If we do not perform the "inverse BiDi" algorithm, then we
* don't need to insert any LRMs, and don't need to test for it.
*/
- if(!ubidi_isInverse(pBiDi)) {
+ if((pBiDi->reorderingMode != UBIDI_REORDER_INVERSE_NUMBERS_AS_L) &&
+ (pBiDi->reorderingMode != UBIDI_REORDER_INVERSE_LIKE_DIRECT) &&
+ (pBiDi->reorderingMode != UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL) &&
+ (pBiDi->reorderingMode != UBIDI_REORDER_RUNS_ONLY)) {
options&=~UBIDI_INSERT_LRM_FOR_NUMERIC;
}
-
/*
* Iterate through all visual runs and copy the run text segments to
* the destination, according to the options.
@@ -449,16 +455,34 @@ ubidi_writeReordered(UBiDi *pBiDi,
/* insert BiDi controls for "inverse BiDi" */
const DirProp *dirProps=pBiDi->dirProps;
const UChar *src;
+ UChar uc;
UBiDiDirection dir;
+ int32_t markFlag;
for(run=0; run<runCount; ++run) {
dir=ubidi_getVisualRun(pBiDi, run, &logicalStart, &runLength);
src=text+logicalStart;
+ /* check if something relevant in insertPoints */
+ markFlag=pBiDi->runs[run].insertRemove;
+ if(markFlag<0) { /* insert count */
+ markFlag=0;
+ }
if(UBIDI_LTR==dir) {
- if(/*run>0 &&*/ dirProps[logicalStart]!=L) {
+ if((pBiDi->isInverse) &&
+ (/*run>0 &&*/ dirProps[logicalStart]!=L)) {
+ markFlag |= LRM_BEFORE;
+ }
+ if (markFlag & LRM_BEFORE) {
+ uc=LRM_CHAR;
+ }
+ else if (markFlag & RLM_BEFORE) {
+ uc=RLM_CHAR;
+ }
+ else uc=0;
+ if(uc) {
if(destSize>0) {
- *dest++=LRM_CHAR;
+ *dest++=uc;
}
--destSize;
}
@@ -469,16 +493,38 @@ ubidi_writeReordered(UBiDi *pBiDi,
dest+=runLength;
destSize-=runLength;
- if(/*run<runCount-1 &&*/ dirProps[logicalStart+runLength-1]!=L) {
+ if((pBiDi->isInverse) &&
+ (/*run<runCount-1 &&*/ dirProps[logicalStart+runLength-1]!=L)) {
+ markFlag |= LRM_AFTER;
+ }
+ if (markFlag & LRM_AFTER) {
+ uc=LRM_CHAR;
+ }
+ else if (markFlag & RLM_AFTER) {
+ uc=RLM_CHAR;
+ }
+ else uc=0;
+ if(uc) {
if(destSize>0) {
- *dest++=LRM_CHAR;
+ *dest++=uc;
}
--destSize;
}
- } else {
- if(/*run>0 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1]))) {
+ } else { /* RTL run */
+ if((pBiDi->isInverse) &&
+ (/*run>0 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart+runLength-1])))) {
+ markFlag |= RLM_BEFORE;
+ }
+ if (markFlag & LRM_BEFORE) {
+ uc=LRM_CHAR;
+ }
+ else if (markFlag & RLM_BEFORE) {
+ uc=RLM_CHAR;
+ }
+ else uc=0;
+ if(uc) {
if(destSize>0) {
- *dest++=RLM_CHAR;
+ *dest++=uc;
}
--destSize;
}
@@ -489,9 +535,20 @@ ubidi_writeReordered(UBiDi *pBiDi,
dest+=runLength;
destSize-=runLength;
- if(/*run<runCount-1 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart]))) {
+ if((pBiDi->isInverse) &&
+ (/*run<runCount-1 &&*/ !(MASK_R_AL&DIRPROP_FLAG(dirProps[logicalStart])))) {
+ markFlag |= RLM_AFTER;
+ }
+ if (markFlag & LRM_AFTER) {
+ uc=LRM_CHAR;
+ }
+ else if (markFlag & RLM_AFTER) {
+ uc=RLM_CHAR;
+ }
+ else uc=0;
+ if(uc) {
if(destSize>0) {
- *dest++=RLM_CHAR;
+ *dest++=uc;
}
--destSize;
}
diff --git a/Build/source/libs/icu-xetex/common/ubrk.cpp b/Build/source/libs/icu-xetex/common/ubrk.cpp
index 7bf3e1066b6..3f941a5459f 100644
--- a/Build/source/libs/icu-xetex/common/ubrk.cpp
+++ b/Build/source/libs/icu-xetex/common/ubrk.cpp
@@ -1,6 +1,6 @@
/*
*****************************************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*****************************************************************************************
*/
@@ -17,6 +17,7 @@
#include "unicode/uchriter.h"
#include "unicode/rbbi.h"
#include "rbbirb.h"
+#include "uassert.h"
U_NAMESPACE_USE
@@ -59,6 +60,9 @@ ubrk_open(UBreakIteratorType type,
case UBRK_TITLE:
result = BreakIterator::createTitleInstance(Locale(locale), *status);
break;
+
+ default:
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
}
// check for allocation error
@@ -70,18 +74,12 @@ ubrk_open(UBreakIteratorType type,
return 0;
}
+
+ UBreakIterator *uBI = (UBreakIterator *)result;
if (text != NULL) {
- UCharCharacterIterator *iter = 0;
- iter = new UCharCharacterIterator(text, textLength);
- if(iter == 0) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- delete result;
- return 0;
- }
- result->adoptText(iter);
+ ubrk_setText(uBI, text, textLength, status);
}
-
- return (UBreakIterator*)result;
+ return uBI;
}
@@ -111,17 +109,11 @@ ubrk_openRules( const UChar *rules,
return 0;
}
+ UBreakIterator *uBI = (UBreakIterator *)result;
if (text != NULL) {
- UCharCharacterIterator *iter = 0;
- iter = new UCharCharacterIterator(text, textLength);
- if(iter == 0) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- delete result;
- return 0;
- }
- result->adoptText(iter);
+ ubrk_setText(uBI, text, textLength, status);
}
- return (UBreakIterator *)result;
+ return uBI;
}
@@ -142,6 +134,12 @@ ubrk_safeClone(
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
+ // Clear any incoming Safe Clone Allocated warning.
+ // Propagating this through to our return would really
+ // confuse our caller.
+ if (*status==U_SAFECLONE_ALLOCATED_WARNING) {
+ *status = U_ZERO_ERROR;
+ }
return (UBreakIterator *)(((BreakIterator*)bi)->
createBufferClone(stackBuffer, *pBufferSize, *status));
}
@@ -168,33 +166,23 @@ ubrk_setText(UBreakIterator* bi,
int32_t textLength,
UErrorCode* status)
{
+ BreakIterator *brit = (BreakIterator *)bi;
+ UText ut = UTEXT_INITIALIZER;
+ utext_openUChars(&ut, text, textLength, status);
+ brit->setText(&ut, *status);
+ // A stack allocated UText wrapping a UCHar * string
+ // can be dumped without explicitly closing it.
+}
- if (U_FAILURE(*status)) return;
-
- const CharacterIterator& biText = ((BreakIterator*)bi)->getText();
- int32_t textLen = (textLength == -1 ? u_strlen(text) : textLength);
- if (biText.getDynamicClassID() == UCharCharacterIterator::getStaticClassID()) {
- ((UCharCharacterIterator&)biText).setText(text, textLen);
- }
- else {
- UCharCharacterIterator *iter = 0;
- iter = new UCharCharacterIterator(text, textLen);
- if(iter == 0) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- ((BreakIterator*)bi)->adoptText(iter);
- }
-}
U_DRAFT void U_EXPORT2
ubrk_setUText(UBreakIterator *bi,
UText *text,
UErrorCode *status)
{
- BreakIterator *brit = (BreakIterator *)bi;
- brit->setText(text, *status);
+ RuleBasedBreakIterator *brit = (RuleBasedBreakIterator *)bi;
+ brit->RuleBasedBreakIterator::setText(text, *status);
}
@@ -205,35 +193,35 @@ U_CAPI int32_t U_EXPORT2
ubrk_current(const UBreakIterator *bi)
{
- return ((BreakIterator*)bi)->current();
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::current();
}
U_CAPI int32_t U_EXPORT2
ubrk_next(UBreakIterator *bi)
{
- return ((BreakIterator*)bi)->next();
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::next();
}
U_CAPI int32_t U_EXPORT2
ubrk_previous(UBreakIterator *bi)
{
- return ((BreakIterator*)bi)->previous();
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::previous();
}
U_CAPI int32_t U_EXPORT2
ubrk_first(UBreakIterator *bi)
{
- return ((BreakIterator*)bi)->first();
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::first();
}
U_CAPI int32_t U_EXPORT2
ubrk_last(UBreakIterator *bi)
{
- return ((BreakIterator*)bi)->last();
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::last();
}
U_CAPI int32_t U_EXPORT2
@@ -241,7 +229,7 @@ ubrk_preceding(UBreakIterator *bi,
int32_t offset)
{
- return ((BreakIterator*)bi)->preceding(offset);
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::preceding(offset);
}
U_CAPI int32_t U_EXPORT2
@@ -249,7 +237,7 @@ ubrk_following(UBreakIterator *bi,
int32_t offset)
{
- return ((BreakIterator*)bi)->following(offset);
+ return ((RuleBasedBreakIterator*)bi)->RuleBasedBreakIterator::following(offset);
}
U_CAPI const char* U_EXPORT2
@@ -270,20 +258,20 @@ ubrk_countAvailable()
U_CAPI UBool U_EXPORT2
ubrk_isBoundary(UBreakIterator *bi, int32_t offset)
{
- return ((BreakIterator *)bi)->isBoundary(offset);
+ return ((RuleBasedBreakIterator *)bi)->RuleBasedBreakIterator::isBoundary(offset);
}
U_CAPI int32_t U_EXPORT2
ubrk_getRuleStatus(UBreakIterator *bi)
{
- return ((RuleBasedBreakIterator *)bi)->getRuleStatus();
+ return ((RuleBasedBreakIterator *)bi)->RuleBasedBreakIterator::getRuleStatus();
}
U_CAPI int32_t U_EXPORT2
ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, UErrorCode *status)
{
- return ((RuleBasedBreakIterator *)bi)->getRuleStatusVec(fillInVec, capacity, *status);
+ return ((RuleBasedBreakIterator *)bi)->RuleBasedBreakIterator::getRuleStatusVec(fillInVec, capacity, *status);
}
diff --git a/Build/source/libs/icu-xetex/common/ubrkimpl.h b/Build/source/libs/icu-xetex/common/ubrkimpl.h
new file mode 100644
index 00000000000..e4909712566
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/ubrkimpl.h
@@ -0,0 +1,13 @@
+/*
+**********************************************************************
+* Copyright (C) 2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+*/
+
+#ifndef UBRKIMPL_H
+#define UBRKIMPL_H
+
+#define U_ICUDATA_BRKITR U_ICUDATA_NAME U_TREE_SEPARATOR_STRING "brkitr"
+
+#endif /*UBRKIMPL_H*/
diff --git a/Build/source/libs/icu-xetex/common/ucase.c b/Build/source/libs/icu-xetex/common/ucase.c
index de3f79a7ed4..c21045a06a4 100644
--- a/Build/source/libs/icu-xetex/common/ucase.c
+++ b/Build/source/libs/icu-xetex/common/ucase.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -196,7 +196,9 @@ ucase_openBinary(const uint8_t *bin, int32_t length, UErrorCode *pErrorCode) {
U_CAPI void U_EXPORT2
ucase_close(UCaseProps *csp) {
if(csp!=NULL) {
+#if !UCASE_HARDCODE_DATA
udata_close(csp->mem);
+#endif
uprv_free(csp);
}
}
@@ -204,16 +206,20 @@ ucase_close(UCaseProps *csp) {
/* UCaseProps singleton ----------------------------------------------------- */
static UCaseProps *gCsp=NULL, *gCspDummy=NULL;
+#if !UCASE_HARDCODE_DATA
static UErrorCode gErrorCode=U_ZERO_ERROR;
static int8_t gHaveData=0;
+#endif
static UBool U_CALLCONV ucase_cleanup(void) {
ucase_close(gCsp);
gCsp=NULL;
- gErrorCode=U_ZERO_ERROR;
- gHaveData=0;
ucase_close(gCspDummy);
gCspDummy=NULL;
+#if !UCASE_HARDCODE_DATA
+ gErrorCode=U_ZERO_ERROR;
+ gHaveData=0;
+#endif
return TRUE;
}
@@ -605,7 +611,7 @@ strcmpMax(const UChar *s, int32_t length, const UChar *t, int32_t max) {
U_CAPI UBool U_EXPORT2
ucase_addStringCaseClosure(const UCaseProps *csp, const UChar *s, int32_t length, const USetAdder *sa) {
const UChar *unfold, *p;
- int32_t i, start, limit, result, unfoldRows, unfoldRowWidth, unfoldStringWidth, unfoldCPWidth;
+ int32_t i, start, limit, result, unfoldRows, unfoldRowWidth, unfoldStringWidth;
if(csp->unfold==NULL || s==NULL) {
return FALSE; /* no reverse case folding data, or no string */
@@ -625,7 +631,6 @@ ucase_addStringCaseClosure(const UCaseProps *csp, const UChar *s, int32_t length
unfoldRows=unfold[UCASE_UNFOLD_ROWS];
unfoldRowWidth=unfold[UCASE_UNFOLD_ROW_WIDTH];
unfoldStringWidth=unfold[UCASE_UNFOLD_STRING_WIDTH];
- unfoldCPWidth=unfoldRowWidth-unfoldStringWidth;
unfold+=unfoldRowWidth;
if(length>unfoldStringWidth) {
@@ -1479,3 +1484,116 @@ ucase_toFullFolding(const UCaseProps *csp, UChar32 c,
return (result==c) ? ~result : result;
}
+
+/* case mapping properties API ---------------------------------------------- */
+
+/* get the UCaseProps singleton, or else its dummy, once and for all */
+static const UCaseProps *
+getCaseProps() {
+ /*
+ * This lazy intialization with double-checked locking (without mutex protection for
+ * the initial check) is transiently unsafe under certain circumstances.
+ * Check the readme and use u_init() if necessary.
+ */
+
+ /* the initial check is performed by the GET_CASE_PROPS() macro */
+ const UCaseProps *csp;
+ UErrorCode errorCode=U_ZERO_ERROR;
+
+ csp=ucase_getSingleton(&errorCode);
+ if(U_FAILURE(errorCode)) {
+ errorCode=U_ZERO_ERROR;
+ csp=ucase_getDummy(&errorCode);
+ if(U_FAILURE(errorCode)) {
+ return NULL;
+ }
+ }
+
+ return csp;
+}
+
+/*
+ * In ICU 3.0, most Unicode properties were loaded from uprops.icu.
+ * ICU 3.2 adds ucase.icu for case mapping properties.
+ * ICU 3.4 adds ubidi.icu for bidi/shaping properties and
+ * removes case/bidi/shaping properties from uprops.icu.
+ *
+ * Loading of uprops.icu was never mutex-protected and required u_init()
+ * for thread safety.
+ * In order to maintain performance for all such properties,
+ * ucase.icu and ubidi.icu are loaded lazily, without mutexing.
+ * u_init() will try to load them for thread safety,
+ * but u_init() will not fail if they are missing.
+ *
+ * uchar.c maintains a tri-state flag for (not loaded/loaded/failed to load)
+ * and an error code for load failure.
+ * Instead, here we try to load at most once.
+ * If it works, we use the resulting singleton object.
+ * If it fails, then we get a dummy object, which always works unless
+ * we are seriously out of memory.
+ * After the first try, we have a never-changing pointer to either the
+ * real singleton or the dummy.
+ *
+ * This method is used in Unicode properties APIs (uchar.h) that
+ * do not have a service object and also do not have an error code parameter.
+ * Other API implementations get the singleton themselves
+ * (with mutexing), store it in the service object, and report errors.
+ */
+#define GET_CASE_PROPS() (gCsp!=NULL ? gCsp : getCaseProps())
+
+/* public API (see uchar.h) */
+
+U_CAPI UBool U_EXPORT2
+u_isULowercase(UChar32 c) {
+ return (UBool)(UCASE_LOWER==ucase_getType(GET_CASE_PROPS(), c));
+}
+
+U_CAPI UBool U_EXPORT2
+u_isUUppercase(UChar32 c) {
+ return (UBool)(UCASE_UPPER==ucase_getType(GET_CASE_PROPS(), c));
+}
+
+/* Transforms the Unicode character to its lower case equivalent.*/
+U_CAPI UChar32 U_EXPORT2
+u_tolower(UChar32 c) {
+ return ucase_tolower(GET_CASE_PROPS(), c);
+}
+
+/* Transforms the Unicode character to its upper case equivalent.*/
+U_CAPI UChar32 U_EXPORT2
+u_toupper(UChar32 c) {
+ return ucase_toupper(GET_CASE_PROPS(), c);
+}
+
+/* Transforms the Unicode character to its title case equivalent.*/
+U_CAPI UChar32 U_EXPORT2
+u_totitle(UChar32 c) {
+ return ucase_totitle(GET_CASE_PROPS(), c);
+}
+
+/* return the simple case folding mapping for c */
+U_CAPI UChar32 U_EXPORT2
+u_foldCase(UChar32 c, uint32_t options) {
+ return ucase_fold(GET_CASE_PROPS(), c, options);
+}
+
+U_CFUNC int32_t U_EXPORT2
+ucase_hasBinaryProperty(UChar32 c, UProperty which) {
+ /* case mapping properties */
+ const UCaseProps *csp=GET_CASE_PROPS();
+ if(csp==NULL) {
+ return FALSE;
+ }
+ switch(which) {
+ case UCHAR_LOWERCASE:
+ return (UBool)(UCASE_LOWER==ucase_getType(csp, c));
+ case UCHAR_UPPERCASE:
+ return (UBool)(UCASE_UPPER==ucase_getType(csp, c));
+ case UCHAR_SOFT_DOTTED:
+ return ucase_isSoftDotted(csp, c);
+ case UCHAR_CASE_SENSITIVE:
+ return ucase_isCaseSensitive(csp, c);
+ default:
+ return FALSE;
+ }
+}
diff --git a/Build/source/libs/icu-xetex/common/ucase.h b/Build/source/libs/icu-xetex/common/ucase.h
index 5781756692f..e3e5be0517d 100644
--- a/Build/source/libs/icu-xetex/common/ucase.h
+++ b/Build/source/libs/icu-xetex/common/ucase.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -238,6 +238,9 @@ ucase_toFullFolding(const UCaseProps *csp, UChar32 c,
const UChar **pString,
uint32_t options);
+U_CFUNC int32_t U_EXPORT2
+ucase_hasBinaryProperty(UChar32 c, UProperty which);
+
/* file definitions --------------------------------------------------------- */
#define UCASE_DATA_NAME "ucase"
diff --git a/Build/source/libs/icu-xetex/common/ucase_props_data.c b/Build/source/libs/icu-xetex/common/ucase_props_data.c
index 4bd3d7292db..854e67c3bae 100644
--- a/Build/source/libs/icu-xetex/common/ucase_props_data.c
+++ b/Build/source/libs/icu-xetex/common/ucase_props_data.c
@@ -1,42 +1,42 @@
/*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
* file name: ucase_props_data.c
*
- * machine-generated on: 2005-04-28
+ * machine-generated on: 2006-06-13
*/
-static const UVersionInfo ucase_props_dataVersion={4,1,0,0};
+static const UVersionInfo ucase_props_dataVersion={5,0,0,0};
-static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x44aa,0x37e8,0x4cf,0x172,0,0,0,0,0,0,0,0,0,0,3};
+static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x466a,0x3980,0x4e3,0x172,0,0,0,0,0,0,0,0,0,0,3};
-static const uint16_t ucase_props_trieIndex[7148]={
+static const uint16_t ucase_props_trieIndex[7352]={
0x238,0x240,0x248,0x250,0x258,0x260,0x268,0x270,0x278,0x27e,0x285,0x288,0x290,0x298,0x2a0,0x2a8,
-0x278,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0x2d8,0x2e0,0x2e8,0x2ee,0x2f6,0x2fe,0x305,0x30d,0x315,0x31b,
-0x323,0x327,0x32b,0x278,0x333,0x278,0x33b,0x33f,0x347,0x34b,0x350,0x358,0x35f,0x367,0x36f,0x372,
-0x37a,0x230,0x382,0x38a,0x230,0x230,0x38f,0x397,0x39c,0x3a1,0x3a9,0x230,0x230,0x3b0,0x230,0x230,
+0x278,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0x2d8,0x2e0,0x2e8,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31c,
+0x324,0x328,0x32c,0x278,0x334,0x278,0x33c,0x278,0x340,0x345,0x34a,0x352,0x359,0x361,0x369,0x36c,
+0x374,0x230,0x37c,0x384,0x230,0x230,0x389,0x391,0x396,0x39b,0x3a3,0x230,0x230,0x3aa,0x230,0x3b0,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x3b8,0x3b9,0x3c1,0x3c9,0x3d1,0x3b9,0x3d9,0x3c9,
0x3b8,0x3b9,0x3e1,0x3e5,0x3b8,0x3b9,0x3ed,0x3c9,0x3d1,0x3f1,0x3f9,0x230,0x3fe,0x230,0x406,0x230,
-0x230,0x40a,0x412,0x230,0x230,0x3f1,0x419,0x230,0x230,0x230,0x421,0x230,0x230,0x230,0x427,0x230,
+0x230,0x40a,0x412,0x230,0x230,0x3f1,0x419,0x3c9,0x230,0x230,0x421,0x230,0x230,0x230,0x427,0x230,
0x230,0x42d,0x434,0x230,0x230,0x438,0x440,0x230,0x444,0x44b,0x230,0x452,0x45a,0x461,0x469,0x230,
0x230,0x46e,0x475,0x230,0x230,0x47d,0x485,0x3ff,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x487,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x48f,0x48f,0x495,0x495,0x230,0x49a,0x4a2,0x230,
0x4aa,0x230,0x4b2,0x230,0x230,0x407,0x230,0x230,0x230,0x4ba,0x230,0x230,0x230,0x230,0x230,0x230,
-0x4c1,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x4c9,0x4c9,0x4c9,0x4d1,0x4cc,0x4d8,0x4e0,0x230,
-0x278,0x4e8,0x278,0x4f0,0x4f3,0x278,0x4fb,0x33f,0x503,0x50b,0x513,0x51b,0x523,0x52b,0x533,0x53b,
-0x543,0x54a,0x230,0x552,0x55a,0x230,0x560,0x568,0x570,0x578,0x580,0x588,0x230,0x230,0x230,0x230,
+0x4c1,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x4c9,0x4cc,0x4d4,0x4da,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x4e2,0x4e2,0x4e2,0x4ea,0x4e5,0x4f2,0x4fa,0x4fd,
+0x278,0x505,0x278,0x50d,0x510,0x278,0x518,0x51b,0x523,0x52b,0x533,0x53b,0x543,0x54b,0x553,0x55b,
+0x563,0x56a,0x230,0x572,0x57a,0x230,0x580,0x588,0x590,0x598,0x5a0,0x5a8,0x5b0,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x590,0x596,0x59c,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x5b3,0x5b9,0x5bf,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x5a4,0x5a9,0x5ad,0x230,0x278,0x278,0x278,0x5b5,0x5bd,0x5c5,0x230,0x23e,0x230,0x230,0x230,0x230,
+0x5c7,0x5cc,0x5d0,0x5d8,0x278,0x278,0x278,0x5e0,0x5e8,0x5f0,0x230,0x23e,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x3d0,0x5cb,0x230,0x230,0x5d2,0x230,0x230,0x4b3,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x3d0,0x5f6,0x230,0x230,0x5fd,0x230,0x230,0x4b3,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
@@ -95,8 +95,8 @@ static const uint16_t ucase_props_trieIndex[7148]={
0x3cc,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x5da,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x5e1,0x3b7,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x605,0x60d,0x230,0x230,0x230,0x230,0x230,0x230,
+0x614,0x3b7,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
@@ -120,8 +120,8 @@ static const uint16_t ucase_props_trieIndex[7148]={
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x6e8,0x6eb,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x6f3,0x230,0x230,0x230,0x230,0x230,
+0x71b,0x71e,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x726,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
@@ -137,20 +137,20 @@ static const uint16_t ucase_props_trieIndex[7148]={
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x5e9,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x61c,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x5f1,0x5f9,0x230,0x230,0x230,0x230,0x230,0x23a,0x230,0x601,0x609,0x610,0x40a,0x230,0x230,0x618,
+0x624,0x62c,0x230,0x230,0x230,0x230,0x230,0x23a,0x230,0x634,0x63c,0x643,0x40a,0x230,0x230,0x64b,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x620,0x626,0x62a,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x653,0x659,0x65d,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x632,0x636,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x63e,0x646,0x64c,0x230,0x230,
-0x230,0x230,0x654,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
-0x65c,0x664,0x669,0x66f,0x677,0x67f,0x687,0x660,0x68f,0x697,0x69f,0x6a6,0x661,0x65c,0x664,0x65f,
-0x66f,0x662,0x65d,0x6ae,0x660,0x6b6,0x6be,0x6c6,0x6cd,0x6b9,0x6c1,0x6c9,0x6d0,0x6bc,0x6d8,0x230,
-0x3d1,0x6e0,0x6e0,0x6e0,0x230,0x230,0x230,0x230,0x6e0,0x6e0,0x6e0,0x6e0,0x6e0,0x6e0,0x6e0,0x5f1,
+0x665,0x669,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x671,0x679,0x67f,0x230,0x230,
+0x230,0x230,0x687,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
+0x68f,0x697,0x69c,0x6a2,0x6aa,0x6b2,0x6ba,0x693,0x6c2,0x6ca,0x6d2,0x6d9,0x694,0x68f,0x697,0x692,
+0x6a2,0x695,0x690,0x6e1,0x693,0x6e9,0x6f1,0x6f9,0x700,0x6ec,0x6f4,0x6fc,0x703,0x6ef,0x70b,0x230,
+0x3d1,0x713,0x713,0x713,0x230,0x230,0x230,0x230,0x713,0x713,0x713,0x713,0x713,0x713,0x713,0x624,
0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,0x230,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -176,7 +176,7 @@ static const uint16_t ucase_props_trieIndex[7148]={
1,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x41d,0x46,0xffc5,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0xe1c6,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x49d,
-1,0x3486,0x46,0xffc5,0x46,0xffc5,0x3386,0x46,0xffc5,0x3346,0x3346,0x46,0xffc5,1,0x13c6,0x3286,
+0x30c5,0x3486,0x46,0xffc5,0x46,0xffc5,0x3386,0x46,0xffc5,0x3346,0x3346,0x46,0xffc5,1,0x13c6,0x3286,
0x32c6,0x46,0xffc5,0x3346,0x33c6,0x1845,0x34c6,0x3446,0x46,0xffc5,0x28c5,1,0x34c6,0x3546,0x2085,0x3586,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x3686,0x46,0xffc5,0x3686,1,1,0x46,0xffc5,0x3686,0x46,
0xffc5,0x3646,0x3646,0x46,0xffc5,0x46,0xffc5,0x36c6,0x46,0xffc5,1,0,0x46,0xffc5,1,0xe05,
@@ -185,71 +185,71 @@ static const uint16_t ucase_props_trieIndex[7148]={
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
0x6ad,0x72e,0x75f,0x79d,0x46,0xffc5,0xe7c6,0xf206,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
0xdf86,1,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,1,1,1,1,1,1,2,0x46,0xffc5,0xd746,2,1,
-1,0x14c6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x46,0xffc5,0x46,0xffc5,1,1,1,1,1,1,0x7ce,0x46,0xffc5,0xd746,0x7ee,1,
+1,0x46,0xffc5,0xcf46,0x1146,0x11c6,0x46,0xffc5,0x46,0xffd5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
1,1,1,0xcb85,0xcc85,1,0xccc5,0xccc5,1,0xcd85,1,0xcd45,1,1,1,1,
-0xccc5,1,1,0xcc45,1,1,1,1,0xcbd5,0xcb45,1,1,1,1,1,0xcb45,
-1,1,0xcac5,1,1,0xca85,1,1,1,1,1,1,1,1,1,1,
-0xc985,1,1,0xc985,1,1,1,1,0xc985,1,0xc9c5,0xc9c5,1,1,1,1,
-1,1,0xc945,1,0xeb45,1,1,1,1,1,1,1,1,0x11,1,1,
+0xccc5,1,1,0xcc45,1,1,1,1,0xcbd5,0xcb45,1,0x80d,1,1,1,0xcb45,
+1,1,0xcac5,1,1,0xca85,1,1,1,1,1,1,1,0x82d,1,1,
+0xc985,1,1,0xc985,1,1,1,1,0xc985,0xeec5,0xc9c5,0xc9c5,0xee45,1,1,1,
+1,1,0xc945,1,0,1,1,1,1,1,1,1,1,0x11,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,0x11,1,1,1,1,1,1,0x40,0x40,0x40,0x44,0x40,0x44,0x40,
1,1,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,
1,1,1,1,1,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,
-0x64,0x64,0x60,0x60,0x60,0x60,0x60,0x7cc,0x64,0x60,0x64,0x60,0x64,0x60,0x60,0x60,
+0x64,0x64,0x60,0x60,0x60,0x60,0x60,0x84c,0x64,0x60,0x64,0x60,0x64,0x60,0x60,0x60,
0x60,0x60,0x60,0x64,0x60,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x74,0x70,0x70,0x70,0x70,0x70,0x70,
-0x70,0x70,0x70,0x70,0x70,0x60,0x60,0x60,0x60,0x60,0x64,0x60,0x60,0x7dd,0x60,0x70,
+0x70,0x70,0x70,0x70,0x70,0x60,0x60,0x60,0x60,0x60,0x64,0x60,0x60,0x85d,0x60,0x70,
0x70,0x70,0x60,0x60,0x60,0x70,0x70,0x40,0x60,0x60,0x60,0x70,0x70,0x70,0x70,0x60,
0x70,0x70,0x70,0x60,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x60,0x60,0x60,0x60,0x60,
0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0,0,0,0,0x40,0x40,0,0,
-0,0,1,0,0,0,0,0,0x40,0x40,0x986,0,0x946,0x946,0x946,0,
-0x1006,0,0xfc6,0xfc6,0x82d,0x806,0x8fe,0x806,0x806,0x93e,0x806,0x806,0x97e,0x9ce,0xa1e,0x806,
-0xa5e,0x806,0x806,0x806,0xa9e,0xade,0,0xb1e,0x806,0x806,0xb5e,0x806,0x806,0xb9e,0x806,0x806,
-0xf685,0xf6c5,0xf6c5,0xf6c5,0xbdd,0xf805,0xcad,0xf805,0xf805,0xced,0xf805,0xf805,0xd2d,0xd7d,0xdcd,0xf805,
-0xe0d,0xf805,0xf805,0xf805,0xe4d,0xe8d,0xecd,0xefd,0xf805,0xf805,0xf3d,0xf805,0xf805,0xf7d,0xf805,0xf805,
-0xf005,0xf045,0xf045,0,0xfbd,0xfed,2,2,2,0x103d,0x106d,1,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x109d,0x10cd,0x1c5,0x11,
-0x10fe,0x114d,0,0x46,0xffc5,0xfe46,0x46,0xffc5,1,2,2,2,0x1406,0x1406,0x1406,0x1406,
-0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x806,0x806,0x806,0x806,
-0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0xf805,0xf805,0xf805,0xf805,
-0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xec05,0xec05,0xec05,0xec05,
-0xec05,0xec05,0xec15,0xec05,0xec15,0xec05,0xec05,0xec05,0xec05,0xec05,0xec05,0xec05,0x46,0xffc5,0,0x60,
-0x60,0x60,0x60,0,0x40,0x40,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,2,0x46,0xffc5,0x46,
-0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0,0x46,0xffc5,0x46,0xffc5,
+0,0,1,0x2085,0x2085,0x2085,0,0,0,0,0,0,0x40,0x40,0x986,0,
+0x946,0x946,0x946,0,0x1006,0,0xfc6,0xfc6,0x8ad,0x806,0x97e,0x806,0x806,0x9be,0x806,0x806,
+0x9fe,0xa4e,0xa9e,0x806,0xade,0x806,0x806,0x806,0xb1e,0xb5e,0,0xb9e,0x806,0x806,0xbde,0x806,
+0x806,0xc1e,0x806,0x806,0xf685,0xf6c5,0xf6c5,0xf6c5,0xc5d,0xf805,0xd2d,0xf805,0xf805,0xd6d,0xf805,0xf805,
+0xdad,0xdfd,0xe4d,0xf805,0xe8d,0xf805,0xf805,0xf805,0xecd,0xf0d,0xf4d,0xf7d,0xf805,0xf805,0xfbd,0xf805,
+0xf805,0xffd,0xf805,0xf805,0xf005,0xf045,0xf045,0,0x103d,0x106d,2,2,2,0x10bd,0x10ed,1,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0,0,0,0,0,0,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xc06,0xc06,0xc06,
-0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
-0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0,0,0x40,0,0,0,0,0,0,
-0,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,
+0x111d,0x114d,0x1c5,0x11,0x117e,0x11cd,0,0x46,0xffc5,0xfe46,0x46,0xffc5,1,0xdf86,0xdf86,0xdf86,
+0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,0x1406,
+0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,
+0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,
+0xec05,0xec05,0xec05,0xec05,0xec05,0xec05,0xec15,0xec05,0xec15,0xec05,0xec05,0xec05,0xec05,0xec05,0xec05,0xec05,
+0x46,0xffc5,0,0x60,0x60,0x60,0x60,0,0x40,0x40,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x3c6,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0xfc45,
+0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x46,0xffc5,0x46,0xffc5,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
+0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0,
+0,0x40,0,0,0,0,0,0,0,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,
0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,
-0xf405,0xf405,0xf405,0x117d,0,0,0,0,0,0,0,0,0,0x70,0x60,0x60,
-0x60,0x60,0x70,0x60,0x60,0x60,0x70,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x70,0x70,
-0x70,0x70,0x70,0x70,0x60,0x60,0x70,0x60,0x60,0x70,0x70,0x60,0x70,0x70,0x70,0x70,
-0x70,0x70,0x70,0x70,0x70,0x70,0,0x70,0x70,0x70,0,0x70,0,0x70,0x70,0,
-0x60,0x70,0,0x70,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x40,0,0,0,
-0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,0,0,0,0,
-0,0,0,0,0,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,0,0,
-0,0,0,0,0,0,0,0,0x40,0,0,0,0,0,0,0,
-0,0,0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x60,0x60,0x70,0x70,0x60,
-0x60,0x60,0x60,0x60,0x70,0x60,0x60,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x70,0,0,0,0,0,0,0,
+0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0x11fd,0,0,0,0,
+0,0,0,0,0,0x70,0x60,0x60,0x60,0x60,0x70,0x60,0x60,0x60,0x70,0x70,
+0x60,0x60,0x60,0x60,0x60,0x60,0x70,0x70,0x70,0x70,0x70,0x70,0x60,0x60,0x70,0x60,
+0x60,0x70,0x70,0x60,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0,0x70,0,0x70,0x70,0,0x60,0x70,0,0x70,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x40,0x40,0x60,0x60,0x60,0x60,0x70,
-0x60,0x40,0x40,0x60,0x60,0,0x70,0x60,0x60,0x70,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x40,
-0,0x70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x60,0x70,0x60,0x60,0x70,0x60,0x60,0x70,0x70,0x70,0x60,0x70,
-0x70,0x60,0x70,0x60,0x60,0x60,0x70,0x60,0x70,0x60,0x70,0x60,0x70,0x60,0x60,0,
+0,0,0,0,0x40,0,0,0,0,0,0,0,0,0,0,0,
+0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0,0,0,0,
+0x60,0x60,0x60,0x60,0x60,0x60,0,0,0,0,0,0,0,0,0,0,
+0x40,0,0,0,0,0,0,0,0,0,0,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x60,0x60,0x70,0x70,0x60,0x60,0x60,0x60,0x60,0x70,0x60,0x60,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,
+0x60,0x40,0x40,0x60,0x60,0x60,0x60,0x70,0x60,0x40,0x40,0x60,0x60,0,0x70,0x60,
+0x60,0x70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x40,0,0x70,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x60,0x70,0x60,0x60,
+0x70,0x60,0x60,0x70,0x70,0x70,0x60,0x70,0x70,0x60,0x70,0x60,0x60,0x60,0x70,0x60,
+0x70,0x60,0x70,0x60,0x70,0x60,0x60,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,0x60,0x60,0x60,
+0x60,0x60,0x70,0x60,0x40,0x40,0,0,0,0,0x40,0,0,0,0,0,
0,0x40,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,
0x70,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,
@@ -299,9 +299,9 @@ static const uint16_t ucase_props_trieIndex[7148]={
0,0,0,0,0,0x40,0x40,0x40,0x40,0,0x40,0,0,0,0x40,0x70,
0,0x70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0,0,
-0,0,0,0,0x11fe,0x121e,0x123e,0x125e,0x127e,0x129e,0x12be,0x12de,0x12fe,0x131e,0x133e,0x135e,
-0x137e,0x139e,0x13be,0x13de,0x13fe,0x141e,0x143e,0x145e,0x147e,0x149e,0x14be,0x14de,0x14fe,0x151e,0x153e,0x155e,
-0x157e,0x159e,0x15be,0x15de,0x15fe,0x161e,0x163e,0x165e,0x167e,0x169e,0,0,0,0,0,0,
+0,0,0,0,0x127e,0x129e,0x12be,0x12de,0x12fe,0x131e,0x133e,0x135e,0x137e,0x139e,0x13be,0x13de,
+0x13fe,0x141e,0x143e,0x145e,0x147e,0x149e,0x14be,0x14de,0x14fe,0x151e,0x153e,0x155e,0x157e,0x159e,0x15be,0x15de,
+0x15fe,0x161e,0x163e,0x165e,0x167e,0x169e,0x16be,0x16de,0x16fe,0x171e,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0x60,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,
@@ -318,37 +318,45 @@ static const uint16_t ucase_props_trieIndex[7148]={
0x40,0,0,0,0,0,0,0,0,0,0x40,0,0,0,0,0,
0,0x70,0x60,0x70,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0x60,0x70,0,0,0,
-0,0,0,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,0x11,1,1,1,1,1,1,1,1,1,
+0,0,0,0,0x40,0x40,0x40,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,0x70,0,0x40,0x40,0x40,0x40,0x40,0,0x40,0,0,0,
+0,0,0x40,0,0x30,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x60,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0,0,0,0,
+0,0,0,0,0,0,0,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,0x11,1,1,1,0x11,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x11,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-0x60,0x60,0x70,0x60,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffd5,0x46,0xffc5,
+1,1,1,1,1,0x173d,1,1,1,1,1,1,0x11,1,1,1,
+0x11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x60,0x60,0x70,0x60,0x60,0x60,0x60,0x60,
+0x60,0x60,0x70,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x60,0x70,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x46,0xffd5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x46,0xffc5,0x46,0xffc5,0x175e,0x179d,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x16be,0x16fd,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
+0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x17dd,0x185d,0x18dd,0x195d,0x19dd,0x1a5d,0,0,0,0,
+0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffd5,0x46,0xffc5,0x46,0xffc5,
0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x173d,0x17bd,0x183d,0x18bd,0x193d,0x19bd,0,0,0,0,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffd5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,
-0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0x205,0x205,0x205,0x205,
+0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0,0,0,0,0,0,0x205,0x205,0x205,0x205,
0x205,0x205,0x205,0x205,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0x205,0x205,0x205,0x205,
0x205,0x205,0,0,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0,0,0x205,0x205,0x205,0x205,
0x205,0x205,0x205,0x205,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0x205,0x205,0x205,0x205,
0x205,0x205,0x205,0x205,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0x205,0x205,0x205,0x205,
-0x205,0x205,0,0,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0,0,0x19ed,0x205,0x1a6d,0x205,
-0x1b1d,0x205,0x1bcd,0x205,0,0xfe06,0,0xfe06,0,0xfe06,0,0xfe06,0x205,0x205,0x205,0x205,
+0x205,0x205,0,0,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0,0,0x1a8d,0x205,0x1b0d,0x205,
+0x1bbd,0x205,0x1c6d,0x205,0,0xfe06,0,0xfe06,0,0xfe06,0,0xfe06,0x205,0x205,0x205,0x205,
0x205,0x205,0x205,0x205,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0xfe06,0x1285,0x1285,0x1585,0x1585,
-0x1585,0x1585,0x1905,0x1905,0x2005,0x2005,0x1c05,0x1c05,0x1f85,0x1f85,0,0,0x1c7d,0x1ced,0x1d5d,0x1dcd,
-0x1e3d,0x1ead,0x1f1d,0x1f8d,0x1fff,0x206f,0x20df,0x214f,0x21bf,0x222f,0x229f,0x230f,0x237d,0x23ed,0x245d,0x24cd,
-0x253d,0x25ad,0x261d,0x268d,0x26ff,0x276f,0x27df,0x284f,0x28bf,0x292f,0x299f,0x2a0f,0x2a7d,0x2aed,0x2b5d,0x2bcd,
-0x2c3d,0x2cad,0x2d1d,0x2d8d,0x2dff,0x2e6f,0x2edf,0x2f4f,0x2fbf,0x302f,0x309f,0x310f,0x205,0x205,0x317d,0x31fd,
-0x326d,0,0x32ed,0x336d,0xfe06,0xfe06,0xed86,0xed86,0x341f,0x40,0x348d,0x40,0x40,0x40,0x34dd,0x355d,
-0x35cd,0,0x364d,0x36cd,0xea86,0xea86,0xea86,0xea86,0x377f,0x40,0x40,0x40,0x205,0x205,0x37ed,0x389d,
-0,0,0x396d,0x39ed,0xfe06,0xfe06,0xe706,0xe706,0,0x40,0x40,0x40,0x205,0x205,0x3a9d,0x3b4d,
-0x3c1d,0x1c5,0x3c9d,0x3d1d,0xfe06,0xfe06,0xe406,0xe406,0xfe46,0x40,0x40,0x40,0,0,0x3dcd,0x3e4d,
-0x3ebd,0,0x3f3d,0x3fbd,0xe006,0xe006,0xe086,0xe086,0x406f,0x40,0x40,0,0,0,0,0,
+0x1585,0x1585,0x1905,0x1905,0x2005,0x2005,0x1c05,0x1c05,0x1f85,0x1f85,0,0,0x1d1d,0x1d8d,0x1dfd,0x1e6d,
+0x1edd,0x1f4d,0x1fbd,0x202d,0x209f,0x210f,0x217f,0x21ef,0x225f,0x22cf,0x233f,0x23af,0x241d,0x248d,0x24fd,0x256d,
+0x25dd,0x264d,0x26bd,0x272d,0x279f,0x280f,0x287f,0x28ef,0x295f,0x29cf,0x2a3f,0x2aaf,0x2b1d,0x2b8d,0x2bfd,0x2c6d,
+0x2cdd,0x2d4d,0x2dbd,0x2e2d,0x2e9f,0x2f0f,0x2f7f,0x2fef,0x305f,0x30cf,0x313f,0x31af,0x205,0x205,0x321d,0x329d,
+0x330d,0,0x338d,0x340d,0xfe06,0xfe06,0xed86,0xed86,0x34bf,0x40,0x352d,0x40,0x40,0x40,0x357d,0x35fd,
+0x366d,0,0x36ed,0x376d,0xea86,0xea86,0xea86,0xea86,0x381f,0x40,0x40,0x40,0x205,0x205,0x388d,0x393d,
+0,0,0x3a0d,0x3a8d,0xfe06,0xfe06,0xe706,0xe706,0,0x40,0x40,0x40,0x205,0x205,0x3b3d,0x3bed,
+0x3cbd,0x1c5,0x3d3d,0x3dbd,0xfe06,0xfe06,0xe406,0xe406,0xfe46,0x40,0x40,0x40,0,0,0x3e6d,0x3eed,
+0x3f5d,0,0x3fdd,0x405d,0xe006,0xe006,0xe086,0xe086,0x410f,0x40,0x40,0,0,0,0,0,
0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,0x40,0,0,0,0,
0,0,0,0,0,0x40,0,0,0,0,0,0,0,0,0,0x40,
0,0,0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0,
@@ -358,110 +366,115 @@ static const uint16_t ucase_props_trieIndex[7148]={
0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x60,0x60,0x70,0x70,0x60,0x60,0x60,0x60,0x70,0x70,0x70,0x60,0x60,0x40,0x40,0x40,
-0x40,0x60,0x40,0x40,0x40,0x70,0x70,0x60,0x70,0x60,0x70,0x70,0,0,0,0,
+0x40,0x60,0x40,0x40,0x40,0x70,0x70,0x60,0x70,0x60,0x70,0x70,0x70,0x70,0x70,0x70,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,2,0,0,0,0,2,0,0,1,2,2,2,1,1,
2,2,2,1,0,2,0,0,0,2,2,2,2,2,0,0,
-0,0,0,0,2,0,0x40de,0,2,0,0x411e,0x415e,2,2,0,1,
-2,2,0,2,1,0,0,0,0,1,0,0,1,1,2,2,
-0,0,0,0,0,2,1,1,0x11,0x11,0,0,0,0,0,0,
+0,0,0,0,2,0,0x417e,0,2,0,0x41be,0x41fe,2,2,0,1,
+2,2,0x706,2,1,0,0,0,0,1,0,0,1,1,2,2,
+0,0,0,0,0,2,1,1,0x11,0x11,0,0,0,0,0xf905,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,0x406,
0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,0xfc05,
+0,0,0,0x46,0xffc5,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,
-0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,
-0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
+0,0,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,0x686,
+0x686,0x686,0x686,0x686,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,
+0xf985,0xf985,0xf985,0xf985,0xf985,0xf985,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xc06,0xc06,0xc06,0xc06,
0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,
-0xc06,0xc06,0xc06,0,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,
+0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0,
0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,
-0xf405,0xf405,0xf405,0,0x46,0xffc5,0x46,0xffc5,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,0x419d,0x41bd,0x41dd,0x41fd,0x421d,0x423d,0x425d,0x427d,0x429d,0x42bd,0x42dd,0x42fd,
-0x431d,0x433d,0x435d,0x437d,0x439d,0x43bd,0x43dd,0x43fd,0x441d,0x443d,0x445d,0x447d,0x449d,0x44bd,0x44dd,0x44fd,
-0x451d,0x453d,0x455d,0x457d,0x459d,0x45bd,0x45dd,0x45fd,0x461d,0x463d,0,0,0,0,0,0,
+0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0xf405,0,
+0x46,0xffc5,0x423e,0x425e,0x427e,0x429d,0x42bd,0x46,0xffc5,0x46,0xffc5,0x46,0xffc5,0,0,0,
+0,0,0,0,1,0x46,0xffc5,1,0,0,0,0,0,0,0,0,
+0x46,0xffc5,0x46,0xffc5,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,0x70,0x70,0x70,0x70,0x70,0x70,0,0x40,0x40,0x40,
-0x40,0x40,0,0,0,0,0,0x40,0,0,0,0,0,0,0,0,
+0x42dd,0x42fd,0x431d,0x433d,0x435d,0x437d,0x439d,0x43bd,0x43dd,0x43fd,0x441d,0x443d,0x445d,0x447d,0x449d,0x44bd,
+0x44dd,0x44fd,0x451d,0x453d,0x455d,0x457d,0x459d,0x45bd,0x45dd,0x45fd,0x461d,0x463d,0x465d,0x467d,0x469d,0x46bd,
+0x46dd,0x46fd,0x471d,0x473d,0x475d,0x477d,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x70,0x70,0x40,0x40,0x40,0x40,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+0,0,0x70,0x70,0x70,0x70,0x70,0x70,0,0x40,0x40,0x40,0x40,0x40,0,0,
+0,0,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,0x70,0x70,0x40,
+0x40,0x40,0x40,0,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,0,
-0,0,0,0,0,0,0,0,0,0,0x70,0,0,0,0,0x40,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x465d,0x46dd,0x475d,0x47dd,0x488d,0x493d,0x49dd,0,0,0,0,0,
-0,0,0,0,0,0,0,0x4a7d,0x4afd,0x4b7d,0x4bfd,0x4c7d,0,0,0,0,
-0,0,0x70,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x60,0x60,0x60,0x60,0,0,0,0,0,0,0,0,
+0,0,0,0,0x40,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,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,
-0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0,
-0,0,0x40,0,0x40,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,
-0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0,
+0,0,0,0,0,0,0x70,0,0,0,0,0x40,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x40,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0,0,0,0,
-0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,
-0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,
-0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,
-0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0,0x40,0x40,0,
-0,0,0,0,0x40,0x70,0x40,0x60,0,0,0,0,0,0,0,0,
+0x479d,0x481d,0x489d,0x491d,0x49cd,0x4a7d,0x4b1d,0,0,0,0,0,0,0,0,0,
+0,0,0,0x4bbd,0x4c3d,0x4cbd,0x4d3d,0x4dbd,0,0,0,0,0,0,0x70,0,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x60,0x70,0x70,0,0,0,0,0x70,0,0,0,0,0,0x30,0x30,0x70,
-0x70,0x70,0,0,0,0x30,0x30,0x30,0x30,0x30,0x30,0x40,0x40,0x40,0x40,0x40,
-0x40,0x40,0x40,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0,0,0x60,0x60,0x60,
-0x60,0x60,0x70,0x70,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x60,0x60,0x60,0x60,0,0,
+0x60,0x60,0x60,0x60,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x60,0x60,0x60,0,0,0,0,0,0,0,0,0,0,0,
+0,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,
+0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0x806,0,0,0,0x40,0,
+0x40,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,
+0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0xf805,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x40,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x40,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x40,0x40,0x40,0,0,0,0,0xa06,0xa06,0xa06,0xa06,
+0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,
+0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xa06,0xf605,0xf605,0xf605,0xf605,
+0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,0xf605,
+0xf605,0xf605,0xf605,0xf605,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x40,0x40,0x40,0,0x40,0x40,0,0,0,0,0,
+0x40,0x70,0x40,0x60,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x60,0x70,0x70,0,
+0,0,0,0x70,0,0,0,0,0,0x30,0x30,0x70,0x70,0x70,0,0,
+0,0x30,0x30,0x30,0x30,0x30,0x30,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0,0,0x60,0x60,0x60,0x60,0x60,0x70,0x70,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x60,0x60,0x60,0x60,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x60,0x60,
+0x60,0,0,0,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,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,1,1,1,1,1,1,
-1,1,0x11,0x11,1,1,1,1,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,1,1,1,1,1,1,1,0,0x11,0x11,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,1,1,1,1,1,1,1,1,0x11,0x11,
+1,1,1,1,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,1,1,
-1,1,1,1,1,1,0x11,0x11,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,2,0,2,2,0,0,2,0,
-0,2,2,0,0,2,2,2,2,0,2,2,2,2,2,2,
-2,2,1,1,1,1,0,1,0,1,0x11,0x11,1,1,1,1,
-0,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,1,1,1,1,
-2,2,0,2,2,2,2,0,0,2,2,2,2,2,2,2,
-2,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1,
+1,1,1,1,1,0,0x11,0x11,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,2,2,2,2,2,2,2,1,1,1,1,1,1,
1,1,0x11,0x11,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,2,2,0,2,2,2,2,0,2,2,2,2,
-2,0,2,0,0,0,2,2,2,2,2,2,2,0,1,1,
-1,1,1,1,1,1,0x11,0x11,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,2,1,1,1,1,1,1,1,1,
+1,1,1,1,2,0,2,2,0,0,2,0,0,2,2,0,
+0,2,2,2,2,0,2,2,2,2,2,2,2,2,1,1,
+1,1,0,1,0,1,0x11,0x11,1,1,1,1,0,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,1,1,1,1,1,1,0,0,
-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,0,1,1,1,1,1,1,
+2,2,2,2,2,2,2,2,1,1,1,1,2,2,0,2,
+2,2,2,0,0,2,2,2,2,2,2,2,2,0,2,2,
+2,2,2,2,2,0,1,1,1,1,1,1,1,1,0x11,0x11,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,0,1,1,1,1,1,1,2,2,2,2,2,2,
+2,2,0,2,2,2,2,0,2,2,2,2,2,0,2,0,
+0,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1,
+1,1,0x11,0x11,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,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,
+2,2,2,2,1,1,1,1,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,1,1,1,1,1,1,0,0,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-1,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
+2,2,2,2,2,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,0,
+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,2,2,2,2,2,2,0,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0,1,1,1,1,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0,
+1,1,1,1,1,1,2,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40,
0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,
-0,0x820,0x840,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0x820,0x840,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x860,0x880,0,0,0,0,0,0,0,0,0,0,0x8a0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x860,0x880,0,0,
+0,0,0,0,0,0,0,0,0x8a0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0
};
-static const uint16_t ucase_props_exceptions[1231]={
+static const uint16_t ucase_props_exceptions[1251]={
0xc041,0x69,2,0x130,0x131,0x4001,0x6a,0x41,0x6b,1,0x212a,0x41,0x73,1,0x17f,0x5044,
0x49,2,0x130,0x131,0x44,0x4b,1,0x212a,0x44,0x53,1,0x17f,6,0x3bc,0x39c,0x41,
0xe5,1,0x212b,0x4001,0xec,0x4001,0xed,0x80,0x2220,0x73,0x73,0x53,0x53,0x53,0x73,0x44,
@@ -469,76 +482,78 @@ static const uint16_t ucase_props_exceptions[1231]={
0x130,0x80,0x2220,0x2bc,0x6e,0x2bc,0x4e,0x2bc,0x4e,6,0x73,0x53,9,0x1c6,0x1c5,0xd,
0x1c6,0x1c4,0x1c5,0xc,0x1c4,0x1c5,9,0x1c9,0x1c8,0xd,0x1c9,0x1c7,0x1c8,0xc,0x1c7,0x1c8,
9,0x1cc,0x1cb,0xd,0x1cc,0x1ca,0x1cb,0xc,0x1ca,0x1cb,0x80,0x2220,0x6a,0x30c,0x4a,0x30c,
-0x4a,0x30c,9,0x1f3,0x1f2,0xd,0x1f3,0x1f1,0x1f2,0xc,0x1f1,0x1f2,0x6000,0x3046,0x3b9,0x399,
-1,0x1fbe,0xc0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x41,
-0x3b2,1,0x3d0,0x41,0x3b5,1,0x3f5,0x41,0x3b8,2,0x3d1,0x3f4,0x41,0x3b9,2,0x345,
-0x1fbe,0x41,0x3ba,1,0x3f0,0x41,0x3bc,1,0xb5,0x41,0x3c0,1,0x3d6,0x41,0x3c1,1,
-0x3f1,0x4041,0x3c3,1,0x3c2,0x41,0x3c6,1,0x3d5,0x41,0x3c9,1,0x2126,0xc0,1,0x3330,
-0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x1fe3,0x44,0x392,1,0x3d0,0x44,0x395,
-1,0x3f5,0x44,0x398,2,0x3d1,0x3f4,0x44,0x399,2,0x345,0x1fbe,0x44,0x39a,1,0x3f0,
-0x44,0x39c,1,0xb5,0x44,0x3a0,1,0x3d6,0x44,0x3a1,1,0x3f1,6,0x3c3,0x3a3,0x44,
-0x3a3,1,0x3c2,0x44,0x3a6,1,0x3d5,0x44,0x3a9,1,0x2126,6,0x3b2,0x392,0x46,0x3b8,
-0x398,1,0x3f4,6,0x3c6,0x3a6,6,0x3c0,0x3a0,6,0x3ba,0x39a,6,0x3c1,0x3a1,0x41,
-0x3b8,2,0x398,0x3d1,6,0x3b5,0x395,0x80,0x2220,0x565,0x582,0x535,0x552,0x535,0x582,1,
-0x2d00,1,0x2d01,1,0x2d02,1,0x2d03,1,0x2d04,1,0x2d05,1,0x2d06,1,0x2d07,1,
-0x2d08,1,0x2d09,1,0x2d0a,1,0x2d0b,1,0x2d0c,1,0x2d0d,1,0x2d0e,1,0x2d0f,1,
-0x2d10,1,0x2d11,1,0x2d12,1,0x2d13,1,0x2d14,1,0x2d15,1,0x2d16,1,0x2d17,1,
-0x2d18,1,0x2d19,1,0x2d1a,1,0x2d1b,1,0x2d1c,1,0x2d1d,1,0x2d1e,1,0x2d1f,1,
-0x2d20,1,0x2d21,1,0x2d22,1,0x2d23,1,0x2d24,1,0x2d25,0x41,0x1e61,1,0x1e9b,0x44,
-0x1e60,1,0x1e9b,0x80,0x2220,0x68,0x331,0x48,0x331,0x48,0x331,0x80,0x2220,0x74,0x308,0x54,
-0x308,0x54,0x308,0x80,0x2220,0x77,0x30a,0x57,0x30a,0x57,0x30a,0x80,0x2220,0x79,0x30a,0x59,
-0x30a,0x59,0x30a,0x80,0x2220,0x61,0x2be,0x41,0x2be,0x41,0x2be,6,0x1e61,0x1e60,0x80,0x2220,
-0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,0x80,0x3330,0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,
-0x300,0x80,0x3330,0x3c5,0x313,0x301,0x3a5,0x313,0x301,0x3a5,0x313,0x301,0x80,0x3330,0x3c5,0x313,
-0x342,0x3a5,0x313,0x342,0x3a5,0x313,0x342,0x84,0x1f88,0x220,0x1f00,0x3b9,0x1f08,0x399,0x84,0x1f89,
-0x220,0x1f01,0x3b9,0x1f09,0x399,0x84,0x1f8a,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x84,0x1f8b,0x220,0x1f03,
-0x3b9,0x1f0b,0x399,0x84,0x1f8c,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x84,0x1f8d,0x220,0x1f05,0x3b9,0x1f0d,
-0x399,0x84,0x1f8e,0x220,0x1f06,0x3b9,0x1f0e,0x399,0x84,0x1f8f,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x81,
-0x1f80,0x220,0x1f00,0x3b9,0x1f08,0x399,0x81,0x1f81,0x220,0x1f01,0x3b9,0x1f09,0x399,0x81,0x1f82,0x220,
-0x1f02,0x3b9,0x1f0a,0x399,0x81,0x1f83,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x81,0x1f84,0x220,0x1f04,0x3b9,
-0x1f0c,0x399,0x81,0x1f85,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x81,0x1f86,0x220,0x1f06,0x3b9,0x1f0e,0x399,
-0x81,0x1f87,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x84,0x1f98,0x220,0x1f20,0x3b9,0x1f28,0x399,0x84,0x1f99,
-0x220,0x1f21,0x3b9,0x1f29,0x399,0x84,0x1f9a,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x84,0x1f9b,0x220,0x1f23,
-0x3b9,0x1f2b,0x399,0x84,0x1f9c,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x84,0x1f9d,0x220,0x1f25,0x3b9,0x1f2d,
-0x399,0x84,0x1f9e,0x220,0x1f26,0x3b9,0x1f2e,0x399,0x84,0x1f9f,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x81,
-0x1f90,0x220,0x1f20,0x3b9,0x1f28,0x399,0x81,0x1f91,0x220,0x1f21,0x3b9,0x1f29,0x399,0x81,0x1f92,0x220,
-0x1f22,0x3b9,0x1f2a,0x399,0x81,0x1f93,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x81,0x1f94,0x220,0x1f24,0x3b9,
-0x1f2c,0x399,0x81,0x1f95,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x81,0x1f96,0x220,0x1f26,0x3b9,0x1f2e,0x399,
-0x81,0x1f97,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x84,0x1fa8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x84,0x1fa9,
-0x220,0x1f61,0x3b9,0x1f69,0x399,0x84,0x1faa,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x84,0x1fab,0x220,0x1f63,
-0x3b9,0x1f6b,0x399,0x84,0x1fac,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x84,0x1fad,0x220,0x1f65,0x3b9,0x1f6d,
-0x399,0x84,0x1fae,0x220,0x1f66,0x3b9,0x1f6e,0x399,0x84,0x1faf,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x81,
-0x1fa0,0x220,0x1f60,0x3b9,0x1f68,0x399,0x81,0x1fa1,0x220,0x1f61,0x3b9,0x1f69,0x399,0x81,0x1fa2,0x220,
-0x1f62,0x3b9,0x1f6a,0x399,0x81,0x1fa3,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x81,0x1fa4,0x220,0x1f64,0x3b9,
-0x1f6c,0x399,0x81,0x1fa5,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x81,0x1fa6,0x220,0x1f66,0x3b9,0x1f6e,0x399,
-0x81,0x1fa7,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x80,0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x84,
-0x1fbc,0x220,0x3b1,0x3b9,0x391,0x399,0x80,0x2220,0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x80,0x2220,
-0x3b1,0x342,0x391,0x342,0x391,0x342,0x80,0x3330,0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,
-0x345,0x81,0x1fb3,0x220,0x3b1,0x3b9,0x391,0x399,0x46,0x3b9,0x399,1,0x345,0x80,0x2220,0x1f74,
-0x3b9,0x1fca,0x399,0x1fca,0x345,0x84,0x1fcc,0x220,0x3b7,0x3b9,0x397,0x399,0x80,0x2220,0x3ae,0x3b9,
-0x389,0x399,0x389,0x345,0x80,0x2220,0x3b7,0x342,0x397,0x342,0x397,0x342,0x80,0x3330,0x3b7,0x342,
-0x3b9,0x397,0x342,0x399,0x397,0x342,0x345,0x81,0x1fc3,0x220,0x3b7,0x3b9,0x397,0x399,0x80,0x3330,
-0x3b9,0x308,0x300,0x399,0x308,0x300,0x399,0x308,0x300,0xc0,1,0x3330,0x3b9,0x308,0x301,0x399,
-0x308,0x301,0x399,0x308,0x301,0x390,0x80,0x2220,0x3b9,0x342,0x399,0x342,0x399,0x342,0x80,0x3330,
-0x3b9,0x308,0x342,0x399,0x308,0x342,0x399,0x308,0x342,0x80,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,
-0x300,0x3a5,0x308,0x300,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,
-0x3b0,0x80,0x2220,0x3c1,0x313,0x3a1,0x313,0x3a1,0x313,0x80,0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,
-0x342,0x80,0x3330,0x3c5,0x308,0x342,0x3a5,0x308,0x342,0x3a5,0x308,0x342,0x80,0x2220,0x1f7c,0x3b9,
-0x1ffa,0x399,0x1ffa,0x345,0x84,0x1ffc,0x220,0x3c9,0x3b9,0x3a9,0x399,0x80,0x2220,0x3ce,0x3b9,0x38f,
-0x399,0x38f,0x345,0x80,0x2220,0x3c9,0x342,0x3a9,0x342,0x3a9,0x342,0x80,0x3330,0x3c9,0x342,0x3b9,
-0x3a9,0x342,0x399,0x3a9,0x342,0x345,0x81,0x1ff3,0x220,0x3c9,0x3b9,0x3a9,0x399,0x41,0x3c9,1,
-0x3a9,0x41,0x6b,1,0x4b,0x41,0xe5,1,0xc5,4,0x10a0,4,0x10a1,4,0x10a2,4,
-0x10a3,4,0x10a4,4,0x10a5,4,0x10a6,4,0x10a7,4,0x10a8,4,0x10a9,4,0x10aa,4,
-0x10ab,4,0x10ac,4,0x10ad,4,0x10ae,4,0x10af,4,0x10b0,4,0x10b1,4,0x10b2,4,
-0x10b3,4,0x10b4,4,0x10b5,4,0x10b6,4,0x10b7,4,0x10b8,4,0x10b9,4,0x10ba,4,
-0x10bb,4,0x10bc,4,0x10bd,4,0x10be,4,0x10bf,4,0x10c0,4,0x10c1,4,0x10c2,4,
-0x10c3,4,0x10c4,4,0x10c5,0x80,0x2220,0x66,0x66,0x46,0x46,0x46,0x66,0x80,0x2220,0x66,
-0x69,0x46,0x49,0x46,0x69,0x80,0x2220,0x66,0x6c,0x46,0x4c,0x46,0x6c,0x80,0x3330,0x66,
-0x66,0x69,0x46,0x46,0x49,0x46,0x66,0x69,0x80,0x3330,0x66,0x66,0x6c,0x46,0x46,0x4c,
-0x46,0x66,0x6c,0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb06,0xc0,1,0x2220,
-0x73,0x74,0x53,0x54,0x53,0x74,0xfb05,0x80,0x2220,0x574,0x576,0x544,0x546,0x544,0x576,0x80,
-0x2220,0x574,0x565,0x544,0x535,0x544,0x565,0x80,0x2220,0x574,0x56b,0x544,0x53b,0x544,0x56b,0x80,
-0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576,0x80,0x2220,0x574,0x56d,0x544,0x53d,0x544,0x56d
+0x4a,0x30c,9,0x1f3,0x1f2,0xd,0x1f3,0x1f1,0x1f2,0xc,0x1f1,0x1f2,1,0x2c65,1,0x2c66,
+4,0x2c62,4,0x2c64,0x6000,0x3046,0x3b9,0x399,1,0x1fbe,0xc0,1,0x3330,0x3b9,0x308,0x301,
+0x399,0x308,0x301,0x399,0x308,0x301,0x1fd3,0x41,0x3b2,1,0x3d0,0x41,0x3b5,1,0x3f5,0x41,
+0x3b8,2,0x3d1,0x3f4,0x41,0x3b9,2,0x345,0x1fbe,0x41,0x3ba,1,0x3f0,0x41,0x3bc,1,
+0xb5,0x41,0x3c0,1,0x3d6,0x41,0x3c1,1,0x3f1,0x4041,0x3c3,1,0x3c2,0x41,0x3c6,1,
+0x3d5,0x41,0x3c9,1,0x2126,0xc0,1,0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,
+0x301,0x1fe3,0x44,0x392,1,0x3d0,0x44,0x395,1,0x3f5,0x44,0x398,2,0x3d1,0x3f4,0x44,
+0x399,2,0x345,0x1fbe,0x44,0x39a,1,0x3f0,0x44,0x39c,1,0xb5,0x44,0x3a0,1,0x3d6,
+0x44,0x3a1,1,0x3f1,6,0x3c3,0x3a3,0x44,0x3a3,1,0x3c2,0x44,0x3a6,1,0x3d5,0x44,
+0x3a9,1,0x2126,6,0x3b2,0x392,0x46,0x3b8,0x398,1,0x3f4,6,0x3c6,0x3a6,6,0x3c0,
+0x3a0,6,0x3ba,0x39a,6,0x3c1,0x3a1,0x41,0x3b8,2,0x398,0x3d1,6,0x3b5,0x395,0x80,
+0x2220,0x565,0x582,0x535,0x552,0x535,0x582,1,0x2d00,1,0x2d01,1,0x2d02,1,0x2d03,1,
+0x2d04,1,0x2d05,1,0x2d06,1,0x2d07,1,0x2d08,1,0x2d09,1,0x2d0a,1,0x2d0b,1,
+0x2d0c,1,0x2d0d,1,0x2d0e,1,0x2d0f,1,0x2d10,1,0x2d11,1,0x2d12,1,0x2d13,1,
+0x2d14,1,0x2d15,1,0x2d16,1,0x2d17,1,0x2d18,1,0x2d19,1,0x2d1a,1,0x2d1b,1,
+0x2d1c,1,0x2d1d,1,0x2d1e,1,0x2d1f,1,0x2d20,1,0x2d21,1,0x2d22,1,0x2d23,1,
+0x2d24,1,0x2d25,4,0x2c63,0x41,0x1e61,1,0x1e9b,0x44,0x1e60,1,0x1e9b,0x80,0x2220,0x68,
+0x331,0x48,0x331,0x48,0x331,0x80,0x2220,0x74,0x308,0x54,0x308,0x54,0x308,0x80,0x2220,0x77,
+0x30a,0x57,0x30a,0x57,0x30a,0x80,0x2220,0x79,0x30a,0x59,0x30a,0x59,0x30a,0x80,0x2220,0x61,
+0x2be,0x41,0x2be,0x41,0x2be,6,0x1e61,0x1e60,0x80,0x2220,0x3c5,0x313,0x3a5,0x313,0x3a5,0x313,
+0x80,0x3330,0x3c5,0x313,0x300,0x3a5,0x313,0x300,0x3a5,0x313,0x300,0x80,0x3330,0x3c5,0x313,0x301,
+0x3a5,0x313,0x301,0x3a5,0x313,0x301,0x80,0x3330,0x3c5,0x313,0x342,0x3a5,0x313,0x342,0x3a5,0x313,
+0x342,0x84,0x1f88,0x220,0x1f00,0x3b9,0x1f08,0x399,0x84,0x1f89,0x220,0x1f01,0x3b9,0x1f09,0x399,0x84,
+0x1f8a,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x84,0x1f8b,0x220,0x1f03,0x3b9,0x1f0b,0x399,0x84,0x1f8c,0x220,
+0x1f04,0x3b9,0x1f0c,0x399,0x84,0x1f8d,0x220,0x1f05,0x3b9,0x1f0d,0x399,0x84,0x1f8e,0x220,0x1f06,0x3b9,
+0x1f0e,0x399,0x84,0x1f8f,0x220,0x1f07,0x3b9,0x1f0f,0x399,0x81,0x1f80,0x220,0x1f00,0x3b9,0x1f08,0x399,
+0x81,0x1f81,0x220,0x1f01,0x3b9,0x1f09,0x399,0x81,0x1f82,0x220,0x1f02,0x3b9,0x1f0a,0x399,0x81,0x1f83,
+0x220,0x1f03,0x3b9,0x1f0b,0x399,0x81,0x1f84,0x220,0x1f04,0x3b9,0x1f0c,0x399,0x81,0x1f85,0x220,0x1f05,
+0x3b9,0x1f0d,0x399,0x81,0x1f86,0x220,0x1f06,0x3b9,0x1f0e,0x399,0x81,0x1f87,0x220,0x1f07,0x3b9,0x1f0f,
+0x399,0x84,0x1f98,0x220,0x1f20,0x3b9,0x1f28,0x399,0x84,0x1f99,0x220,0x1f21,0x3b9,0x1f29,0x399,0x84,
+0x1f9a,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x84,0x1f9b,0x220,0x1f23,0x3b9,0x1f2b,0x399,0x84,0x1f9c,0x220,
+0x1f24,0x3b9,0x1f2c,0x399,0x84,0x1f9d,0x220,0x1f25,0x3b9,0x1f2d,0x399,0x84,0x1f9e,0x220,0x1f26,0x3b9,
+0x1f2e,0x399,0x84,0x1f9f,0x220,0x1f27,0x3b9,0x1f2f,0x399,0x81,0x1f90,0x220,0x1f20,0x3b9,0x1f28,0x399,
+0x81,0x1f91,0x220,0x1f21,0x3b9,0x1f29,0x399,0x81,0x1f92,0x220,0x1f22,0x3b9,0x1f2a,0x399,0x81,0x1f93,
+0x220,0x1f23,0x3b9,0x1f2b,0x399,0x81,0x1f94,0x220,0x1f24,0x3b9,0x1f2c,0x399,0x81,0x1f95,0x220,0x1f25,
+0x3b9,0x1f2d,0x399,0x81,0x1f96,0x220,0x1f26,0x3b9,0x1f2e,0x399,0x81,0x1f97,0x220,0x1f27,0x3b9,0x1f2f,
+0x399,0x84,0x1fa8,0x220,0x1f60,0x3b9,0x1f68,0x399,0x84,0x1fa9,0x220,0x1f61,0x3b9,0x1f69,0x399,0x84,
+0x1faa,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x84,0x1fab,0x220,0x1f63,0x3b9,0x1f6b,0x399,0x84,0x1fac,0x220,
+0x1f64,0x3b9,0x1f6c,0x399,0x84,0x1fad,0x220,0x1f65,0x3b9,0x1f6d,0x399,0x84,0x1fae,0x220,0x1f66,0x3b9,
+0x1f6e,0x399,0x84,0x1faf,0x220,0x1f67,0x3b9,0x1f6f,0x399,0x81,0x1fa0,0x220,0x1f60,0x3b9,0x1f68,0x399,
+0x81,0x1fa1,0x220,0x1f61,0x3b9,0x1f69,0x399,0x81,0x1fa2,0x220,0x1f62,0x3b9,0x1f6a,0x399,0x81,0x1fa3,
+0x220,0x1f63,0x3b9,0x1f6b,0x399,0x81,0x1fa4,0x220,0x1f64,0x3b9,0x1f6c,0x399,0x81,0x1fa5,0x220,0x1f65,
+0x3b9,0x1f6d,0x399,0x81,0x1fa6,0x220,0x1f66,0x3b9,0x1f6e,0x399,0x81,0x1fa7,0x220,0x1f67,0x3b9,0x1f6f,
+0x399,0x80,0x2220,0x1f70,0x3b9,0x1fba,0x399,0x1fba,0x345,0x84,0x1fbc,0x220,0x3b1,0x3b9,0x391,0x399,
+0x80,0x2220,0x3ac,0x3b9,0x386,0x399,0x386,0x345,0x80,0x2220,0x3b1,0x342,0x391,0x342,0x391,0x342,
+0x80,0x3330,0x3b1,0x342,0x3b9,0x391,0x342,0x399,0x391,0x342,0x345,0x81,0x1fb3,0x220,0x3b1,0x3b9,
+0x391,0x399,0x46,0x3b9,0x399,1,0x345,0x80,0x2220,0x1f74,0x3b9,0x1fca,0x399,0x1fca,0x345,0x84,
+0x1fcc,0x220,0x3b7,0x3b9,0x397,0x399,0x80,0x2220,0x3ae,0x3b9,0x389,0x399,0x389,0x345,0x80,0x2220,
+0x3b7,0x342,0x397,0x342,0x397,0x342,0x80,0x3330,0x3b7,0x342,0x3b9,0x397,0x342,0x399,0x397,0x342,
+0x345,0x81,0x1fc3,0x220,0x3b7,0x3b9,0x397,0x399,0x80,0x3330,0x3b9,0x308,0x300,0x399,0x308,0x300,
+0x399,0x308,0x300,0xc0,1,0x3330,0x3b9,0x308,0x301,0x399,0x308,0x301,0x399,0x308,0x301,0x390,
+0x80,0x2220,0x3b9,0x342,0x399,0x342,0x399,0x342,0x80,0x3330,0x3b9,0x308,0x342,0x399,0x308,0x342,
+0x399,0x308,0x342,0x80,0x3330,0x3c5,0x308,0x300,0x3a5,0x308,0x300,0x3a5,0x308,0x300,0xc0,1,
+0x3330,0x3c5,0x308,0x301,0x3a5,0x308,0x301,0x3a5,0x308,0x301,0x3b0,0x80,0x2220,0x3c1,0x313,0x3a1,
+0x313,0x3a1,0x313,0x80,0x2220,0x3c5,0x342,0x3a5,0x342,0x3a5,0x342,0x80,0x3330,0x3c5,0x308,0x342,
+0x3a5,0x308,0x342,0x3a5,0x308,0x342,0x80,0x2220,0x1f7c,0x3b9,0x1ffa,0x399,0x1ffa,0x345,0x84,0x1ffc,
+0x220,0x3c9,0x3b9,0x3a9,0x399,0x80,0x2220,0x3ce,0x3b9,0x38f,0x399,0x38f,0x345,0x80,0x2220,0x3c9,
+0x342,0x3a9,0x342,0x3a9,0x342,0x80,0x3330,0x3c9,0x342,0x3b9,0x3a9,0x342,0x399,0x3a9,0x342,0x345,
+0x81,0x1ff3,0x220,0x3c9,0x3b9,0x3a9,0x399,0x41,0x3c9,1,0x3a9,0x41,0x6b,1,0x4b,0x41,
+0xe5,1,0xc5,1,0x26b,1,0x1d7d,1,0x27d,4,0x23a,4,0x23e,4,0x10a0,4,
+0x10a1,4,0x10a2,4,0x10a3,4,0x10a4,4,0x10a5,4,0x10a6,4,0x10a7,4,0x10a8,4,
+0x10a9,4,0x10aa,4,0x10ab,4,0x10ac,4,0x10ad,4,0x10ae,4,0x10af,4,0x10b0,4,
+0x10b1,4,0x10b2,4,0x10b3,4,0x10b4,4,0x10b5,4,0x10b6,4,0x10b7,4,0x10b8,4,
+0x10b9,4,0x10ba,4,0x10bb,4,0x10bc,4,0x10bd,4,0x10be,4,0x10bf,4,0x10c0,4,
+0x10c1,4,0x10c2,4,0x10c3,4,0x10c4,4,0x10c5,0x80,0x2220,0x66,0x66,0x46,0x46,0x46,
+0x66,0x80,0x2220,0x66,0x69,0x46,0x49,0x46,0x69,0x80,0x2220,0x66,0x6c,0x46,0x4c,0x46,
+0x6c,0x80,0x3330,0x66,0x66,0x69,0x46,0x46,0x49,0x46,0x66,0x69,0x80,0x3330,0x66,0x66,
+0x6c,0x46,0x46,0x4c,0x46,0x66,0x6c,0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,
+0xfb06,0xc0,1,0x2220,0x73,0x74,0x53,0x54,0x53,0x74,0xfb05,0x80,0x2220,0x574,0x576,0x544,
+0x546,0x544,0x576,0x80,0x2220,0x574,0x565,0x544,0x535,0x544,0x565,0x80,0x2220,0x574,0x56b,0x544,
+0x53b,0x544,0x56b,0x80,0x2220,0x57e,0x576,0x54e,0x546,0x54e,0x576,0x80,0x2220,0x574,0x56d,0x544,
+0x53d,0x544,0x56d
};
static const uint16_t ucase_props_unfold[370]={
@@ -578,7 +593,7 @@ static const UCaseProps ucase_props_singleton={
NULL,
utrie_defaultGetFoldingOffset,
2240,
- 4908,
+ 5112,
0,
TRUE
},
diff --git a/Build/source/libs/icu-xetex/common/uchar.c b/Build/source/libs/icu-xetex/common/uchar.c
index 3e71d98dcf0..718e87a4c9d 100644
--- a/Build/source/libs/icu-xetex/common/uchar.c
+++ b/Build/source/libs/icu-xetex/common/uchar.c
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -154,11 +154,9 @@ _openProps(UCharProps *ucp, UErrorCode *pErrorCode) {
#endif
-U_CFUNC int8_t
+#if !UCHAR_HARDCODE_DATA
+static int8_t
uprv_loadPropsData(UErrorCode *pErrorCode) {
-#if UCHAR_HARDCODE_DATA
- return TRUE;
-#else
/* load Unicode character properties data from file if necessary */
/*
@@ -168,7 +166,6 @@ uprv_loadPropsData(UErrorCode *pErrorCode) {
*/
if(havePropsData==0) {
UCharProps ucp={ NULL };
- UCaseProps *csp;
if(U_FAILURE(*pErrorCode)) {
return havePropsData;
@@ -187,7 +184,6 @@ uprv_loadPropsData(UErrorCode *pErrorCode) {
ucp.pData32=NULL;
uprv_memcpy(&propsTrie, &ucp.propsTrie, sizeof(propsTrie));
uprv_memcpy(&propsVectorsTrie, &ucp.propsVectorsTrie, sizeof(propsVectorsTrie));
- csp=NULL;
}
/* initialize some variables */
@@ -213,11 +209,8 @@ uprv_loadPropsData(UErrorCode *pErrorCode) {
}
return havePropsData;
-#endif
}
-#if !UCHAR_HARDCODE_DATA
-
static int8_t
loadPropsData(void) {
UErrorCode errorCode = U_ZERO_ERROR;
@@ -806,11 +799,11 @@ u_charAge(UChar32 c, UVersionInfo versionArray) {
U_CAPI UScriptCode U_EXPORT2
uscript_getScript(UChar32 c, UErrorCode *pErrorCode) {
if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
- return 0;
+ return USCRIPT_INVALID_CODE;
}
if((uint32_t)c>0x10ffff) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
+ return USCRIPT_INVALID_CODE;
}
return (UScriptCode)(u_getUnicodeProperties(c, 0)&UPROPS_SCRIPT_MASK);
diff --git a/Build/source/libs/icu-xetex/common/uchar_props_data.c b/Build/source/libs/icu-xetex/common/uchar_props_data.c
index 6a75ed185fa..0d329f8e563 100644
--- a/Build/source/libs/icu-xetex/common/uchar_props_data.c
+++ b/Build/source/libs/icu-xetex/common/uchar_props_data.c
@@ -1,181 +1,185 @@
/*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
* file name: uchar_props_data.c
*
- * machine-generated on: 2005-04-29
+ * machine-generated on: 2006-06-13
*/
static const UVersionInfo formatVersion={4,0,5,2};
-static const UVersionInfo dataVersion={4,1,0,0};
+static const UVersionInfo dataVersion={5,0,0,0};
-static const uint16_t propsTrie_index[12724]={
-0x298,0x2a0,0x2a8,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0x2d8,0x2da,0x2e0,0x2e3,0x2eb,0x2f3,0x2fb,0x303,
-0x2d8,0x309,0x311,0x315,0x315,0x319,0x321,0x329,0x331,0x331,0x331,0x335,0x33d,0x345,0x34a,0x350,
-0x358,0x35c,0x315,0x2d8,0x364,0x2d8,0x36c,0x370,0x378,0x37c,0x381,0x389,0x38f,0x394,0x39c,0x3a2,
-0x3aa,0x3b2,0x3ba,0x3c2,0x3c7,0x3c7,0x3ca,0x3d2,0x3da,0x3df,0x3e5,0x3ea,0x3c7,0x3f2,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x3fa,0x3fc,0x404,0x40c,0x414,0x41a,0x422,0x42a,
-0x432,0x438,0x440,0x448,0x450,0x456,0x45e,0x466,0x414,0x46e,0x476,0x47e,0x486,0x48e,0x496,0x49d,
-0x4a5,0x4ab,0x4b3,0x4bb,0x4c3,0x4c9,0x4d1,0x4bb,0x4c3,0x4d9,0x4e1,0x4bb,0x4e9,0x4f0,0x4f8,0x500,
-0x508,0x50c,0x514,0x290,0x51c,0x524,0x52c,0x290,0x534,0x53c,0x544,0x54a,0x552,0x559,0x561,0x290,
-0x3c7,0x569,0x571,0x290,0x290,0x358,0x579,0x57d,0x3c7,0x3c7,0x585,0x3c7,0x3c7,0x58d,0x3c7,0x58f,
-0x3c7,0x3c7,0x597,0x3c7,0x59f,0x5a3,0x5ab,0x3c7,0x5b1,0x3c7,0x5b7,0x5bf,0x5c7,0x3c7,0x3c7,0x5cf,
-0x508,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x5d7,0x5df,0x3c7,0x3c7,0x5e7,0x5ef,0x5f7,0x5ff,0x607,0x3c7,0x60f,0x617,0x61f,
-0x627,0x3c7,0x62f,0x631,0x3c7,0x639,0x290,0x290,0x641,0x649,0x651,0x656,0x3c7,0x65e,0x666,0x66e,
-0x676,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x315,0x67e,0x681,0x689,0x690,0x681,0x698,0x290,
-0x2d8,0x2d8,0x2d8,0x2d8,0x6a0,0x2d8,0x2d8,0x370,0x6a8,0x6b0,0x6b8,0x6c0,0x6c8,0x6cc,0x6d4,0x6dc,
-0x6e4,0x6ec,0x6f4,0x6fc,0x704,0x70c,0x712,0x71a,0x722,0x72a,0x732,0x73a,0x742,0x74a,0x74f,0x755,
-0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x762,0x76a,0x66e,0x76d,0x775,0x77c,0x782,0x290,
-0x66e,0x78a,0x792,0x79a,0x79d,0x66e,0x66e,0x7a4,0x66e,0x66e,0x66e,0x66e,0x66e,0x7ac,0x7b4,0x7b6,
-0x66e,0x66e,0x66e,0x7be,0x7c2,0x7ca,0x290,0x290,0x7d2,0x7d8,0x7dd,0x7e5,0x7ed,0x7f3,0x7fb,0x802,
-0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x75a,0x75a,0x75a,0x75a,0x80a,0x75a,0x811,0x818,
-0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x75a,0x820,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x358,0x828,0x82c,0x290,0x2d8,0x2d8,0x2d8,0x834,0x315,0x83c,0x3c7,0x843,0x84b,0x853,0x853,0x290,
-0x85b,0x290,0x290,0x290,0x863,0x66e,0x66e,0x820,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x86a,0x870,
-0x878,0x880,0x508,0x3c7,0x888,0x890,0x3c7,0x892,0x507,0x89a,0x3c7,0x3c7,0x89f,0x631,0x8a5,0x63d,
-0x8ad,0x8b5,0x8bc,0x66e,0x8b5,0x8c4,0x66e,0x8ad,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,
-0xbb1,0x3c7,0x3c7,0x3c7,0xb49,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0xbb7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xbd1,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb00,0x66e,0x66e,
-0xb29,0x3c7,0xbe6,0x3c7,0xb4e,0xc2b,0xbfe,0xb64,0xbaf,0x3c7,0x3c7,0xc1a,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xc33,0x3c7,0xc3a,0xb54,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xc06,0x3c7,0x3c7,0x3c7,0xb6c,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb8f,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb2d,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0xb34,0x3c7,0x3c7,0x3c7,0xbee,0xb3b,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xc0a,0x3c7,0x3c7,0xbe2,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xbd5,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xbf6,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0xc1f,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0xb96,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0xc27,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb59,0x3c7,0x3c7,0x3c7,0xb5e,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0xbc6,0xbca,0x3c7,0x3c7,0x3c7,0xb21,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x630,0x290,0x290,
-0x8cc,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x8d2,0x66e,0x78a,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x8da,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x8e2,0x8ea,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb08,0x290,0x290,
-0xc42,0xc45,0xc4d,0xc54,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0xc5c,0x290,0xc64,0xc65,0xc64,0xc65,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x8f2,0x3c7,0x8f8,0x3c7,0x3c7,0x58f,0x290,0x900,0x908,0x910,0x3c7,0x3c7,0x3e9,0x918,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x91d,0x63d,0x3c7,0x925,0x3c7,0x92b,0x92f,
-0x937,0x93f,0x946,0x94e,0x3c7,0x3c7,0x3c7,0x954,0x95c,0x2a8,0x964,0x96c,0x971,0x979,0x981,0x989,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,
-0x991,0x998,0x9a0,0x290,0x3c7,0x3c7,0x3c7,0x9a8,0x9b0,0x9b8,0x9c0,0x9c8,0x9cf,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x979,0x9d7,0x9dd,0x290,0x9e5,0x3c7,0x9ed,0x290,
-0x358,0x9f5,0x9f9,0x3c7,0x3fb,0xa01,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xa09,0xa0c,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xa14,0xa1b,0xa23,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x66e,0x86a,0x66e,0xa2b,0x66e,0xa32,0xa3a,0xa40,0xa44,0x290,
-0x66e,0x66e,0xa4c,0x290,0x290,0x290,0x290,0x290,0x66e,0x66e,0xa54,0x290,0x290,0x290,0x290,0x290,
-0xa5c,0xa63,0xa68,0xa6e,0xa76,0xa7e,0xa86,0xa60,0xa8e,0xa96,0xa9e,0xaa3,0xa75,0xa5c,0xa63,0xa5f,
-0xa6e,0xaab,0xa5d,0xaae,0xa60,0xab6,0xabe,0xac6,0xacd,0xab9,0xac1,0xac9,0xad0,0xabc,0xad8,0xae0,
-0xbdd,0x3c7,0x3c7,0xb9d,0x3c7,0x3c7,0x3c7,0xba5,0x3c7,0xbbf,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb41,0x3c7,0x3c7,0xc12,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb72,0xb7a,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb5e,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb81,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0xb88,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0xbaa,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x84b,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,0x3c7,
-0x3fb,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xae8,0xaf0,0xaf0,0xaf0,0x290,0x290,0x290,0x290,0x331,0x331,0x331,0x331,0x331,0x331,0x331,0xaf8,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,
-0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb18,0xb19,
+static const uint16_t propsTrie_index[13440]={
+0x2a8,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0x2d8,0x2e0,0x2e8,0x2ea,0x2f0,0x2f3,0x2fb,0x303,0x30b,0x313,
+0x2e8,0x319,0x321,0x325,0x328,0x32e,0x336,0x33e,0x346,0x346,0x346,0x34a,0x352,0x35a,0x35f,0x365,
+0x36d,0x371,0x325,0x2e8,0x379,0x2e8,0x381,0x2e8,0x385,0x38a,0x38f,0x397,0x39d,0x3a2,0x3aa,0x3b0,
+0x3b8,0x3c0,0x3c8,0x3d0,0x3d5,0x3d5,0x3d8,0x3e0,0x3e8,0x3ed,0x3f3,0x3f8,0x3d5,0x400,0x408,0x40e,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x416,0x418,0x420,0x428,0x430,0x436,0x43e,0x446,
+0x44e,0x454,0x45c,0x464,0x46c,0x472,0x47a,0x482,0x430,0x48a,0x492,0x49a,0x4a2,0x4aa,0x4b2,0x4b9,
+0x4c1,0x4c7,0x4cf,0x4d7,0x4df,0x4e5,0x4ed,0x4f5,0x4df,0x4fd,0x505,0x4d7,0x50d,0x514,0x51c,0x524,
+0x52c,0x530,0x538,0x2a0,0x540,0x548,0x550,0x2a0,0x558,0x560,0x568,0x56e,0x576,0x57d,0x585,0x2a0,
+0x3d5,0x58d,0x595,0x2a0,0x2a0,0x36d,0x59d,0x5a1,0x3d5,0x3d5,0x5a9,0x3d5,0x3d5,0x5b1,0x3d5,0x5b3,
+0x3d5,0x3d5,0x5bb,0x3d5,0x5c3,0x5c7,0x5cf,0x3d5,0x5d5,0x3d5,0x5db,0x5e3,0x5eb,0x3d5,0x3d5,0x5f3,
+0x52c,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x5fb,0x603,0x3d5,0x3d5,0x60b,0x613,0x61b,0x623,0x62b,0x3d5,0x633,0x63b,0x643,
+0x64b,0x3d5,0x653,0x655,0x3d5,0x65d,0x2a0,0x2a0,0x665,0x66d,0x675,0x67a,0x3d5,0x682,0x68a,0x692,
+0x69a,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x6a2,0x6a5,0x6ad,0x6b5,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x325,0x6bd,0x6c0,0x6c8,0x6cf,0x6c0,0x6d7,0x6da,
+0x2e8,0x2e8,0x2e8,0x2e8,0x6e2,0x2e8,0x2e8,0x6ea,0x6f2,0x6fa,0x702,0x70a,0x712,0x716,0x71e,0x726,
+0x72e,0x736,0x73e,0x746,0x74e,0x756,0x75c,0x764,0x76c,0x774,0x77c,0x784,0x78c,0x794,0x799,0x79f,
+0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7ac,0x7b4,0x692,0x7b7,0x7bf,0x7c6,0x7cb,0x7d3,
+0x692,0x7db,0x7e3,0x7eb,0x7ee,0x692,0x692,0x7f5,0x692,0x692,0x692,0x692,0x692,0x7fd,0x805,0x807,
+0x692,0x692,0x692,0x80f,0x813,0x81b,0x2a0,0x2a0,0x823,0x829,0x82e,0x836,0x83e,0x844,0x84c,0x853,
+0x692,0x692,0x692,0x692,0x692,0x692,0x692,0x692,0x7a4,0x7a4,0x7a4,0x7a4,0x85b,0x7a4,0x862,0x869,
+0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x871,0x879,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x36d,0x881,0x885,0x88d,0x2e8,0x2e8,0x2e8,0x895,0x325,0x89d,0x3d5,0x8a4,0x8ac,0x8b4,0x8b4,0x2a0,
+0x8bc,0x2a0,0x2a0,0x2a0,0x8c4,0x692,0x692,0x8cb,0x692,0x692,0x692,0x692,0x692,0x692,0x8d3,0x8d9,
+0x8e1,0x8e9,0x52c,0x3d5,0x8f1,0x8f9,0x3d5,0x8fb,0x52b,0x903,0x3d5,0x3d5,0x908,0x655,0x90e,0x661,
+0x916,0x91e,0x925,0x692,0x91e,0x92d,0x692,0x916,0x692,0x692,0x692,0x692,0x692,0x692,0x692,0x692,
+0xc64,0x3d5,0x3d5,0x3d5,0xbfc,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0xc6a,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc84,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xbb3,0x692,0x692,
+0xbdc,0x3d5,0xc99,0x3d5,0xc01,0xcde,0xcb1,0xc17,0xc62,0x3d5,0x3d5,0xccd,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xce6,0x3d5,0xced,0xc07,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xcb9,0x3d5,0x3d5,0x3d5,0xc1f,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc42,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xbe0,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0xbe7,0x3d5,0x3d5,0x3d5,0xca1,0xbee,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xcbd,0x3d5,0x3d5,0xc95,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc88,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xca9,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0xcd2,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0xc49,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0xcda,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc0c,0x3d5,0x3d5,0x3d5,0xc11,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0xc79,0xc7d,0x3d5,0x3d5,0x3d5,0xbd4,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x654,0x2a0,0x2a0,
+0x935,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x93b,0x692,0x7db,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x943,0x94b,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x953,0x95b,0x3d5,0x963,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xbbb,0x2a0,0x2a0,
+0xcf5,0xcf8,0xd00,0xd07,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0xd0f,0x2a0,0xd17,0xd18,0xd17,0xd18,
+0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,
+0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x96b,0x3d5,0x971,0x3d5,0x3d5,0x5b3,0x2a0,0x979,0x981,0x989,0x3d5,0x3d5,0x3f7,0x991,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x996,0x661,0x3d5,0x99e,0x3d5,0x9a4,0x9a8,
+0x9b0,0x9b8,0x9bf,0x9c7,0x3d5,0x3d5,0x3d5,0x9cd,0x9d5,0x2b8,0x9dd,0x9e5,0x9ea,0x9f2,0x9fa,0xa02,
+0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,
+0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,0xbc3,
+0xa0a,0xa11,0xa19,0x2a0,0x3d5,0x3d5,0x3d5,0xa21,0xa29,0xa31,0xa39,0xa41,0xa48,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x9f2,0xa50,0xa58,0x2a0,0xa60,0x3d5,0xa68,0x2a0,
+0x36d,0xa70,0xa74,0x3d5,0x417,0xa7c,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xa84,0xa87,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0xa8f,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xa97,0xa9e,0xaa6,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xaae,0x2a0,0x2a0,0x2a0,0x2a0,
+0xab6,0xabe,0xac6,0xace,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x692,0x692,0x692,0x692,0x692,0x692,0x692,0x8d3,0x692,0xad6,0x692,0xadd,0xae5,0xaeb,0xaef,0x2a0,
+0x692,0x692,0xaf7,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x692,0x692,0xaff,0xb07,0x2a0,0x2a0,0x2a0,0x2a0,
+0xb0f,0xb16,0xb1b,0xb21,0xb29,0xb31,0xb39,0xb13,0xb41,0xb49,0xb51,0xb56,0xb28,0xb0f,0xb16,0xb12,
+0xb21,0xb5e,0xb10,0xb61,0xb13,0xb69,0xb71,0xb79,0xb80,0xb6c,0xb74,0xb7c,0xb83,0xb6f,0xb8b,0xb93,
+0xc90,0x3d5,0x3d5,0xc50,0x3d5,0x3d5,0x3d5,0xc58,0x3d5,0xc72,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xbf4,0x3d5,0x3d5,0xcc5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc25,0xc2d,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc11,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc34,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0xc3b,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0xc5d,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x8ac,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,0x3d5,
+0x417,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xb9b,0xba3,0xba3,0xba3,0x2a0,0x2a0,0x2a0,0x2a0,0x346,0x346,0x346,0x346,0x346,0x346,0x346,0xbab,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,
+0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcb,0xbcc,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
@@ -208,71 +212,74 @@ static const uint16_t propsTrie_index[12724]={
1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2,
1,2,1,1,1,2,1,2,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1,
-2,1,1,2,2,1,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
+2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2,
+1,2,1,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,2,4,4,4,4,4,4,4,4,4,4,4,4,
-4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,
-4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,6,6,6,6,6,6,6,6,6,6,6,6,
+2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,
+4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,4,4,
+4,4,4,4,4,4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,0,0,0,0,0x1a,0x1a,0,0,0,0,4,0,
-0,0,0x17,0,0,0,0,0,0x1a,0x1a,1,0x17,1,1,1,0,
-1,0,1,1,2,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,0,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,2,2,2,2,0,2,2,1,1,1,2,2,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-2,2,2,2,1,2,0x18,1,2,1,1,2,2,1,1,1,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+6,6,6,6,6,6,6,6,0,0,0,0,0x1a,0x1a,0,0,
+0,0,4,2,2,2,0x17,0,0,0,0,0,0x1a,0x1a,1,0x17,
+1,1,1,0,1,0,1,1,2,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0,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,2,2,2,2,0,2,2,1,1,
+1,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,2,2,2,2,1,2,0x18,1,2,1,1,2,
+2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
1,1,1,1,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,
-1,2,0x1b,6,6,6,6,0,7,7,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,
+1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,1,2,0x1b,6,6,6,6,0,7,7,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,1,2,1,2,0,0,0,0,0,0,
-1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-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,0,0,4,0x17,0x17,
-0x17,0x17,0x17,0x17,0,2,2,2,2,2,2,2,2,2,2,2,
+1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1,
+2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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,0,0,4,0x17,0x17,0x17,0x17,0x17,0x17,0,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,0,0x17,0x13,0,0,0,0,0,0,6,6,6,
+2,2,2,2,2,2,2,2,2,2,2,2,0,0x17,0x13,0,
+0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,
6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,0,6,6,6,0x17,6,
-0x17,6,6,0x17,6,6,0x17,6,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,0,0,0,0,0,5,5,5,0x17,0x17,0,0,0,
-0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10,0,0,0,0,
-0,0,0,0x19,0x17,0x17,0x1b,0x1b,6,6,6,6,6,6,0,0,
-0,0,0,0x17,0,0,0x17,0x17,0,5,5,5,5,5,5,5,
+6,6,6,6,6,6,0x17,6,0x17,6,6,0x17,6,6,0x17,6,
+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,0,0,0,0,0,
+5,5,5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,
+0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0x19,0x17,0x17,0x1b,0x1b,
+6,6,6,6,6,6,0,0,0,0,0,0x17,0,0,0x17,0x17,
+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,0,0,0,0,0,
+4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,
+0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x17,0x17,0x17,0x17,5,5,
+6,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,0,4,5,5,5,5,5,5,5,
-5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,
-6,6,6,6,6,6,6,0,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,
-0x829,0x929,0x17,0x17,0x17,0x17,5,5,6,5,5,5,5,5,5,5,
+5,5,5,5,0x17,5,6,6,6,6,6,6,6,0x10,7,6,
+6,6,6,6,6,4,4,6,6,0x1b,6,6,6,6,5,5,
+0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,5,5,5,0x1b,0x1b,5,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,
+5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,
+6,6,6,6,6,6,6,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,
+6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,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,0x17,5,6,6,
-6,6,6,6,6,0x10,7,6,6,6,6,6,6,4,4,6,
-6,0x1b,6,6,6,6,5,5,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,
-0x829,0x929,5,5,5,0x1b,0x1b,5,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,5,6,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,
-0,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,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,5,5,5,5,5,5,6,6,
-6,6,6,6,6,6,6,6,6,5,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,6,6,8,5,5,5,5,
+5,5,5,6,6,6,6,6,6,6,6,6,4,4,0x1b,0x17,
+0x17,0x17,4,0,0,0,0,0,0,6,6,8,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,6,5,8,8,
8,6,6,6,6,6,6,6,6,8,8,8,8,6,0,0,
5,6,6,6,6,0,0,0,5,5,5,5,5,5,5,5,
5,5,6,6,0x17,0x17,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,
-0x17,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,
+0x17,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,
0,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5,
5,0,0,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,
@@ -322,7 +329,9 @@ static const uint16_t propsTrie_index[12724]={
5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,0,
6,5,8,6,8,8,8,8,8,0,6,8,8,0,8,8,
6,6,0,0,0,0,0,0,0,8,8,0,0,0,0,0,
-0,0,5,0,5,5,5,5,5,5,5,5,5,0,5,5,
+0,0,5,0,5,5,6,6,0,0,0x29,0x129,0x229,0x329,0x429,0x529,
+0x629,0x729,0x829,0x929,0,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0,0,0,0,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,0,8,8,8,6,6,6,0,0,8,8,8,0,8,8,
8,6,0,0,0,0,0,0,0,0,0,8,0,0,0,0,
@@ -427,1635 +436,1720 @@ static const uint16_t propsTrie_index[12724]={
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,
-6,8,8,8,0,0,0x17,0x17,2,2,2,2,2,2,2,2,
-2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,
+6,8,8,8,0,0,0x17,0x17,6,6,6,6,8,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,6,8,6,6,6,6,6,8,
+6,8,8,8,8,8,6,8,8,5,5,5,5,5,5,5,
+0,0,0,0,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,
+6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,
+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,
-4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2,
+4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,2,2,4,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,2,2,4,4,4,4,4,
-6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
+2,2,2,2,2,2,2,4,4,4,4,4,6,6,6,6,
+6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,6,6,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,1,2,2,2,
+2,2,2,2,0,0,0,0,1,2,1,2,1,2,1,2,
1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
-1,2,1,2,1,2,2,2,2,2,2,2,0,0,0,0,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0,
-2,2,2,2,2,2,2,2,0,1,0,1,0,1,0,1,
-2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,
-2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,
-2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,
-2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,
-2,2,2,2,2,0,2,2,1,1,1,1,3,0x1a,2,0x1a,
-0x1a,0x1a,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a,
-2,2,2,2,0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a,
-2,2,2,2,2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a,
-0,0,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0,
-0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10,
-0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc,
-0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16,
-0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
-0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc,
-0x10,0x10,0x10,0x10,0,0,0,0,0,0,0x10,0x10,0x10,0x10,0x10,0x10,
-0x4b,2,0,0,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0x18,0x18,0x18,0x14,0x15,2,
-0x4b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0x18,0x18,0x18,0x14,0x15,0,
-4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,
-0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
-0x19,0x19,0x19,0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,
-6,6,6,6,6,7,7,7,7,6,7,7,7,6,6,6,
-6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,
-0x1b,0x1b,2,1,1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,
-0x1b,1,1,1,1,1,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,
-1,0x1b,1,1,1,1,0x1b,2,1,1,0x1b,1,2,5,5,5,
-5,2,0x1b,0x1b,2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,
-2,2,0x1b,0x18,0x1b,0,0,0,0,0,0,0x98b,0x118b,0xb8b,0x138b,0x1b8b,
-0x238b,0xc8b,0x2c8b,0xe8b,0x1e8b,0x2e8b,0x3e8b,0x16b,0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,
-0x96a,0xa6a,0xb6a,0xc6a,0x326a,0x646a,0x50aa,0x11aa,0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,
-0x96a,0xa6a,0xb6a,0xc6a,0x326a,0x646a,0x50aa,0x11aa,0x11aa,0x51aa,0x12aa,0xa,0,0,0,0,
-0,0,0,0,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,
-0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+1,2,0,0,0,0,0,0,2,2,2,2,2,2,2,2,
+1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,
+1,1,1,1,1,1,0,0,2,2,2,2,2,2,2,2,
+1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
+1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,
+1,1,1,1,1,1,0,0,2,2,2,2,2,2,2,2,
+0,1,0,1,0,1,0,1,2,2,2,2,2,2,2,2,
+1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,
+2,2,2,2,2,2,0,0,2,2,2,2,2,2,2,2,
+3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,2,
+3,3,3,3,3,3,3,3,2,2,2,2,2,0,2,2,
+1,1,1,1,3,0x1a,2,0x1a,0x1a,0x1a,2,2,2,0,2,2,
+1,1,1,1,3,0x1a,0x1a,0x1a,2,2,2,2,0,0,2,2,
+1,1,1,1,0,0x1a,0x1a,0x1a,2,2,2,2,2,2,2,2,
+1,1,1,1,1,0x1a,0x1a,0x1a,0,0,2,2,2,0,2,2,
+1,1,1,1,3,0x1a,0x1a,0,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,
+0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,
+0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16,0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,0,0,0,0,
+0,0,0x10,0x10,0x10,0x10,0x10,0x10,0x4b,2,0,0,0x44b,0x54b,0x64b,0x74b,
+0x84b,0x94b,0x18,0x18,0x18,0x14,0x15,2,0x4b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,
+0x84b,0x94b,0x18,0x18,0x18,0x14,0x15,0,4,4,4,4,4,0,0,0,
+0,0,0,0,0,0,0,0,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,
+7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2,
+1,1,1,2,0x1b,1,0x1b,0x1b,0x1b,1,1,1,1,1,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2,
+1,1,1,1,2,5,5,5,5,2,0x1b,0x1b,2,2,1,1,
+0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0,
+0,0,0,0x98b,0x118b,0xb8b,0x138b,0x1b8b,0x238b,0xc8b,0x2c8b,0xe8b,0x1e8b,0x2e8b,0x3e8b,0x16b,
+0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,0xa6a,0xb6a,0xc6a,0x326a,0x646a,0x50aa,0x11aa,
+0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,0xa6a,0xb6a,0xc6a,0x326a,0x646a,0x50aa,0x11aa,
+0x11aa,0x51aa,0x12aa,1,2,0,0,0,0,0,0,0,0,0,0,0,
+0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x14,0x15,0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,
-0x94b,0xa6b,0xb6b,0xc6b,0xd6b,0xe6b,0xf6b,0x106b,0x116b,0x126b,0x136b,0x146b,0x14b,0x24b,0x34b,0x44b,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x14b,0x24b,0x34b,0x44b,
0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0xb6b,0xc6b,0xd6b,0xe6b,0xf6b,0x106b,0x116b,0x126b,0x136b,0x146b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x4b,0xb6b,0xc6b,0xd6b,0xe6b,0xf6b,
-0x106b,0x116b,0x126b,0x136b,0x146b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0x4b,
+0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0xb6b,0xc6b,0xd6b,0xe6b,0xf6b,0x106b,
+0x116b,0x126b,0x136b,0x146b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x4b,0xb6b,
+0xc6b,0xd6b,0xe6b,0xf6b,0x106b,0x116b,0x126b,0x136b,0x146b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,
+0x84b,0x94b,0xa6b,0x4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,
+0x1b,0,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,
-0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0,0x1b,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14b,0x24b,
+0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,
+0x94b,0xa6b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0x1b,0,0,0,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0,0x1b,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,
-0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,
-0x74b,0x84b,0x94b,0xa6b,0x14b,0x24b,0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0x14b,0x24b,
-0x34b,0x44b,0x54b,0x64b,0x74b,0x84b,0x94b,0xa6b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x18,0x18,0x18,0x18,
-0x18,0x14,0x15,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,0x14,0x15,
-0x14,0x15,0x14,0x15,0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14,
+0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0,0,0,0,0,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0,0,0,0,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,
0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
-0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,
+0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
-0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,
+0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0,0,0,0,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,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0,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,2,2,2,2,2,2,2,2,2,2,2,0,
-1,2,1,2,2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x88b,0x17,0x17,
-2,2,2,2,2,2,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,0,0,0,0,0,0,0,0,0,4,0,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,5,5,5,5,5,5,5,5,5,
-5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5,
-5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5,
-5,5,5,0,5,5,5,5,5,5,5,0,0x17,0x17,0x1c,0x1d,
-0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x13,0,0,0,0,0x1c,0x1d,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
+2,2,2,0,1,2,1,1,1,2,2,1,2,1,2,1,
+2,0,0,0,0,0,0,0,2,1,2,2,0,0,0,0,
+0,0,0,0,1,2,1,2,2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x17,0x17,0x17,
+0x17,0x88b,0x17,0x17,2,2,2,2,2,2,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,0,0,0,0,0,0,0,0,0,4,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,
-0xc,0x17,0x17,0x17,0x1b,4,5,0x6a,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,
-0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0x14,0x15,0x15,
-0x1b,0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,6,6,6,6,6,6,
-0x13,4,4,4,4,4,0x1b,0x1b,0xa6a,0x146a,0x1e6a,4,5,0x17,0x1b,0x1b,
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,6,6,0x1a,0x1a,4,4,5,
-0x13,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,0x17,4,4,4,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,0x1b,0x1b,0x16b,0x26b,
-0x36b,0x46b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,
+5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0,
+0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0,0,0,0,0x1c,0x1d,0,0,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0x16b,0x26b,0x36b,0x46b,0x56b,0x66b,0x76b,0x86b,0x96b,0xa6b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1b,0x156b,0x166b,0x176b,0x186b,0x196b,0x1a6b,0x1b6b,0x1c6b,0x1d6b,0x1e6b,0x1f6b,0x206b,0x216b,0x226b,0x236b,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x246b,0x256b,0x266b,0x276b,0x286b,0x296b,0x2a6b,0x2b6b,0x2c6b,0x2d6b,0x2e6b,0x2f6b,0x306b,0x316b,0x326b,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
-0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,
-0,0,0,0,0,0,0,0,5,5,8,5,5,5,6,5,
-5,5,5,6,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,8,
-0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,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,5,5,5,0,0,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,
-0,0,0,2,2,2,2,2,0,0,0,0,0,5,6,5,
-5,5,5,5,5,5,5,5,5,0x18,5,5,5,5,5,5,
-5,5,5,5,5,5,5,0,5,5,5,5,5,0,5,0,
-5,5,0,5,5,0,5,5,5,5,5,5,5,5,5,5,
+0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0,0,0,0,0xc,0x17,0x17,0x17,0x1b,4,5,0x6a,0x14,0x15,0x14,0x15,
+0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,
+0x13,0x14,0x15,0x15,0x1b,0x16a,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,6,6,
+6,6,6,6,0x13,4,4,4,4,4,0x1b,0x1b,0xa6a,0x146a,0x1e6a,4,
+5,0x17,0x1b,0x1b,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,6,6,0x1a,
+0x1a,4,4,5,0x13,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,0x17,4,4,4,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+0x1b,0x1b,0x16b,0x26b,0x36b,0x46b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x16b,0x26b,0x36b,0x46b,0x56b,0x66b,0x76b,0x86b,
+0x96b,0xa6b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1b,0x156b,0x166b,0x176b,0x186b,0x196b,0x1a6b,0x1b6b,0x1c6b,0x1d6b,0x1e6b,0x1f6b,
+0x206b,0x216b,0x226b,0x236b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x246b,0x256b,0x266b,0x276b,0x286b,0x296b,0x2a6b,0x2b6b,0x2c6b,0x2d6b,0x2e6b,
+0x2f6b,0x306b,0x316b,0x326b,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,
+0x1a,0x1a,0x1a,4,4,4,4,0,0,0,0,0,0x1a,0x1a,0,0,
0,0,0,0,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,5,5,
+0,0,0,0,0,0,0,0,0,0,0,0,5,5,8,5,
+5,5,6,5,5,5,5,6,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8,
+8,6,6,8,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,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,5,5,5,5,5,5,5,5,5,
+0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,
+0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,2,2,2,2,2,2,2,0,0,0,0,0,
+0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0,
+0,5,6,5,5,5,5,5,5,5,5,5,5,0x18,5,5,
+5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5,
+5,0,5,0,5,5,0,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,0x14,0x15,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0,0,5,5,5,5,5,5,5,5,5,5,
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,5,5,5,5,
-5,5,5,5,5,5,5,5,0x19,0x1b,0,0,6,6,6,6,
-6,6,6,6,6,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0,6,6,6,6,
-0,0,0,0,0,0,0,0,0,0,0,0,0x17,0x13,0x13,0x16,
-0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,
-0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,
-0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,
-0x17,0x19,0x17,0x17,0,0,0,0,5,5,5,5,5,0,5,5,
+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,0,0,0x10,
-0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,
-0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x17,0x17,0x18,0x18,0x18,0x17,
-0x1a,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,0x14,0x18,0x15,0x18,0x14,
-0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5,5,5,5,5,
-4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x14,0x15,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5,
+5,5,5,5,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,
+5,5,5,5,5,5,5,5,5,5,5,5,0x19,0x1b,0,0,
+6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0,
+6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,
+0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,
+0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,
+0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,
+0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0,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,4,4,5,5,5,5,5,5,5,5,5,5,5,5,
+5,0,0,0x10,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,
+0x17,0x13,0x17,0x17,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x17,0x17,
+0x18,0x18,0x18,0x17,0x1a,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,0x14,
+0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5,
+5,5,5,5,4,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,5,5,5,5,5,5,0,0,5,5,
-5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,
-5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18,
-0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,
-0x1b,0x1b,0,0,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,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,0,5,5,0,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,
+5,5,5,5,5,5,4,4,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,0,
-0x17,0x17,0x1b,0,0,0,0,0x16b,0x26b,0x36b,0x46b,0x56b,0x66b,0x76b,0x86b,0x96b,
-0xa6b,0x146b,0x1e6b,0x286b,0x326b,0x3c6b,0x466b,0x506b,0x5a6b,0x646b,0xc86b,0x30ab,0x40ab,0x50ab,0x60ab,0x70ab,
-0x80ab,0x90ab,0x11ab,0x21ab,0x31ab,0x41ab,0x51ab,0x61ab,0x71ab,0x81ab,0x91ab,0x12ab,0x22ab,0x32ab,0x42ab,0x52ab,
-0x62ab,0x72ab,0x82ab,0x92ab,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0xa8a,0x88a,0x16a,0x56a,0x326a,0x50aa,0x51aa,0x52aa,0x56a,0xa6a,0x326a,0x646a,0x50aa,0x11aa,0x51aa,0x56a,
-0xa6a,0x326a,0x646a,0x50aa,0x11aa,0x12aa,0x52aa,0xa6a,0x16a,0x16a,0x16a,0x26a,0x26a,0x26a,0x26a,0x56a,
-0xa6a,0xa6a,0xa6a,0xa6a,0xa6a,0x1e6a,0x326a,0x326a,0x326a,0x326a,0x646a,0x30aa,0x50aa,0x50aa,0x50aa,0x50aa,
-0x50aa,0x11aa,0x51aa,0x56a,0x326a,0x88b,0x88b,0x118b,0x1a8b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x6b,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x16b,0x56b,0xa6b,0x326b,
-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,0x90aa,0,
+5,5,5,5,5,5,5,0,0,0,5,5,5,5,5,5,
+0,0,5,5,5,5,5,5,0,0,5,5,5,5,5,5,
+0,0,5,5,5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,
+0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0,0x10,0x10,0x10,0x1b,0x1b,0,0,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,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,0,
+5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,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,0,
+0,0,0,0,0x17,0x17,0x1b,0,0,0,0,0x16b,0x26b,0x36b,0x46b,0x56b,
+0x66b,0x76b,0x86b,0x96b,0xa6b,0x146b,0x1e6b,0x286b,0x326b,0x3c6b,0x466b,0x506b,0x5a6b,0x646b,0xc86b,0x30ab,
+0x40ab,0x50ab,0x60ab,0x70ab,0x80ab,0x90ab,0x11ab,0x21ab,0x31ab,0x41ab,0x51ab,0x61ab,0x71ab,0x81ab,0x91ab,0x12ab,
+0x22ab,0x32ab,0x42ab,0x52ab,0x62ab,0x72ab,0x82ab,0x92ab,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0xa8a,0x88a,0x16a,0x56a,0x326a,0x50aa,0x51aa,0x52aa,0x56a,0xa6a,0x326a,0x646a,
+0x50aa,0x11aa,0x51aa,0x56a,0xa6a,0x326a,0x646a,0x50aa,0x11aa,0x12aa,0x52aa,0xa6a,0x16a,0x16a,0x16a,0x26a,
+0x26a,0x26a,0x26a,0x56a,0xa6a,0xa6a,0xa6a,0xa6a,0xa6a,0x1e6a,0x326a,0x326a,0x326a,0x326a,0x646a,0x30aa,
+0x50aa,0x50aa,0x50aa,0x50aa,0x50aa,0x11aa,0x51aa,0x56a,0x326a,0x88b,0x88b,0x118b,0x1a8b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x6b,0,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,5,5,5,5,5,5,5,5,5,5,
+0x16b,0x56b,0xa6b,0x326b,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,0,0x17,5,5,5,5,0,0,0,0,5,5,5,5,
-5,5,5,5,0x1b,0x16a,0x26a,0xa6a,0x146a,0x646a,0,0,0,0,0,0,
-0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,
+5,0x5a6a,5,5,5,5,5,5,5,5,0x90aa,0,0,0,0,0,
+0,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,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17,
+5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,
+0x17,0x16a,0x26a,0xa6a,0x146a,0x646a,0,0,0,0,0,0,0,0,0,0,
+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,2,2,2,2,2,
-2,2,2,2,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0,0,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0,0,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,5,5,5,5,0,0,5,0,5,5,
+5,5,5,5,5,5,0,0,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,0,5,5,0,0,0,5,0,0,5,
-5,6,6,6,0,6,6,0,0,0,0,0,6,6,6,6,
-5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5,
+5,5,0,5,5,0,0,0,5,0,0,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,6,6,6,0,0,0,0,6,0x14b,0x24b,0x34b,0x44b,
-0xa6b,0x146b,0x646b,0x11ab,0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,
-0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,
-6,6,0x1b,0x1b,0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,6,6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,
-6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,
+5,5,0x16b,0xa6b,0x146b,0x646b,0,0,0,0,0,0x17,5,6,6,6,
+0,6,6,0,0,0,0,0,6,6,6,6,5,5,5,5,
+0,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,0,0,0,0,
+6,6,6,0,0,0,0,6,0x14b,0x24b,0x34b,0x44b,0xa6b,0x146b,0x646b,0x11ab,
+0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+0x17,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x26a,0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,
+0x36a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,0x16a,0x26a,0x36a,
+0x46a,0x56a,0x66a,0x76a,0x86a,0x96a,0x16a,0x26a,0x36a,0x46a,0x56a,0x26a,0x36a,0x36a,0x46a,0x56a,
+0x66a,0x76a,0x86a,0x96a,0x16a,0x26a,0x36a,0x36a,0x46a,0x56a,0xa,0xa,0x16a,0x26a,0x36a,0x36a,
+0x46a,0x56a,0x36a,0x36a,0x46a,0x46a,0x46a,0x46a,0x66a,0x76a,0x76a,0x76a,0x86a,0x86a,0x96a,0x96a,
+0x96a,0x96a,0x26a,0x36a,0x46a,0x56a,0x66a,0x16a,0x26a,0x36a,0x46a,0x46a,0x56a,0x56a,0xa,0xa,
+0x16a,0x26a,0x98a,0x118a,0x2c8a,0x98a,0x118a,0xe8a,0xa8a,0xc8a,0xa8a,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,
+0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b,
+0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,
+6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,6,6,6,6,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,
-0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,6,6,
+6,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
+0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0x16b,0x26b,0x36b,0x46b,
+0x56b,0x66b,0x76b,0x86b,0x96b,0xa6b,0x146b,0x1e6b,0x286b,0x326b,0x3c6b,0x466b,0x506b,0x5a6b,0,0,
+0,0,0,0,0,0,0,0,0,0,0,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,2,2,2,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,2,2,2,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,2,2,
-2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,
+2,0,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,1,1,1,1,1,1,1,1,2,2,2,2,2,2,
+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,2,2,2,2,2,2,2,
-2,2,2,2,1,0,1,1,0,0,1,0,0,1,1,0,
-0,1,1,1,1,0,1,1,1,1,1,1,1,1,2,2,
-2,2,0,2,0,2,2,2,2,2,2,2,0,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,2,2,2,2,1,1,0,1,
-1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,
+1,0,1,1,0,0,1,0,0,1,1,0,0,1,1,1,
+1,0,1,1,1,1,1,1,1,1,2,2,2,2,0,2,
+0,2,2,2,2,2,2,2,0,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,2,2,2,2,1,1,0,1,1,1,1,0,
+0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,
+1,0,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,1,1,0,1,
+1,1,1,0,1,1,1,1,1,0,1,0,0,0,1,1,
1,1,1,1,1,0,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,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-1,1,0,1,1,1,1,0,1,1,1,1,1,0,1,0,
-0,0,1,1,1,1,1,1,1,0,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,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,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,1,2,2,2,2,2,2,0,0,
+2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,2,2,2,2,2,2,0,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,0x18,2,2,2,2,2,2,
+1,1,1,1,1,0x18,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,0x18,
+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,1,1,1,0x18,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,0x18,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,
-1,1,1,0x18,2,2,2,2,2,2,2,2,2,2,2,2,
-2,2,2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,
-1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
-2,2,2,0x18,2,2,2,2,2,2,0,0,0,0,0x29,0x129,
+2,2,2,2,2,0x18,2,2,2,2,2,2,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,0x18,
+2,2,2,2,2,2,1,2,0,0,0x29,0x129,0x229,0x329,0x429,0x529,
+0x629,0x729,0x829,0x929,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x29,0x129,
0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,
-0x829,0x929,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0x29,0x129,0x229,0x329,
-0x429,0x529,0x629,0x729,0x829,0x929,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,
-0,0x10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x829,0x929,0x29,0x129,0x229,0x329,0x429,0x529,0x629,0x729,0x829,0x929,0,0x10,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10,
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
-6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,
+6,6,6,6,6,6,6,6,6,6,6,6,0,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,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,
-5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,
+5,5,0,0,0,0,0,0,0,0,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,0x12,0x12,0x12,0x12,
0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,
-0x11,0x11,0,0,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,0x65,5,5,5,5,5,
-5,5,5,5,0x165,5,5,0x765,5,5,5,0x12a5,5,0x365,5,5,
+0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0,0,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x165,5,5,5,5,5,5,5,0x165,5,5,
+5,5,5,5,5,5,0x65,5,5,5,5,5,5,5,5,5,
+0x165,5,5,0x765,5,5,5,0x12a5,5,0x365,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,0x165,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x165,0x265,0x365,5,0x265,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x165,5,
+5,0x165,5,5,5,5,5,5,5,0x165,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,0x265,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,0x165,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x165,0x265,0x365,5,0x265,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x165,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,0x265,5,5,5,5,5,5,5,0x565,5,0x465,5,
-5,5,5,5,5,5,5,5,5,0x265,5,0x865,5,0x665,5,5,
+5,5,5,0x265,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,0x265,5,5,5,5,0x265,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x265,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x365,5,5,5,5,5,5,5,
+0x265,5,5,5,5,5,5,5,0x565,5,0x465,5,5,5,5,5,
+5,5,5,5,5,0x265,5,0x865,5,0x665,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x265,5,
+5,5,5,0x265,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x265,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x365,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x365,0x365,0x365,
+0x365,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,0x665,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x365,0x365,0x365,0x365,5,5,5,5,5,5,5,5,5,5,5,
+5,0x365,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,0x365,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,0x665,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x365,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,0x365,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,0x365,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,0x365,5,5,5,
+5,5,5,5,5,5,5,0x365,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,0x365,5,5,5,5,
+5,5,5,0x465,5,5,5,5,5,5,0x465,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,0x465,5,5,5,5,5,5,0x465,5,
+5,5,5,5,0x465,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,0x465,5,5,5,5,5,5,5,
+5,5,0x465,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,0x465,5,5,5,5,5,5,5,5,5,
+5,0x465,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,0x565,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,0x465,5,5,5,5,5,5,5,5,5,5,
+5,5,0x565,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,0x565,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,0x565,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,0x565,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,0x665,5,
-5,5,5,5,0x6465,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x665,5,5,5,5,5,
+0x6465,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,0x665,5,5,5,
+5,5,5,5,5,5,5,5,5,5,5,5,5,0x765,5,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-0x665,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,0x765,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,0x765,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,0x765,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,0x765,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,0x865,5,5,5,5,5,5,5,5,5,5,5,
+0x865,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,0x965,5,5,5,5,5,5,5,5,5,5,
+5,0x965,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,0x965,0x1465,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x965,5,
-5,5,5,5,5,5,5,5,0xa65,5,5,5,5,5,5,5,
+5,5,0x965,0x1465,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,5,5,5,0x965,5,5,5,5,5,
+5,5,5,5,0xa65,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,0x11a5,5,0xa65,5,0x11a5,0x1465,0x1e65,5,5,
-5,5,5,5,0x2865,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,0x11a5,5,0xa65,5,0x11a5,0x1465,0x1e65,5,5,5,5,5,5,
+0x2865,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,0xa65,5,5,5,5,0x1e65,5,5,5,5,
-5,5,5,5,0x2865,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,0x2865,5,5,5,5,5,5,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x6465,5,5,5,5,5,5,5,
+5,5,0xa65,5,5,5,5,0x1e65,5,5,5,5,5,5,5,5,
+0x2865,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+0x2865,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x6465,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,0x6465,5,5,5,5,5,5,5,5,5,
+5,5,5,5,0x12a5,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,0x6465,5,5,5,5,5,
-5,5,5,5,5,5,5,5,0x12a5,5,5,5,5,5,5,5,
+5,5,5,5,5,5,5,0x16a5,5,5,5,5,0x16a5,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,0x16a5,5,5,5,5,
-0x16a5,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,0x1aa5,5,
+5,5,5,5,5,5,5,5,5,5,0x1aa5,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,0x820,0x840,0x860,0,0,0,0,0,
+5,5,5,5,0x820,0x840,0x860,0,0,0,0,0,0x880,0x8a0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x880,0x8a0,0,0,0,0,0,0,
-0,0,0,0,0x8c0,0x8e0,0x900,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x920,0x8e0,0x940,0x8e0,
-0x8e0,0x8e0,0x960,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x980,0x8e0,0x8e0,0x8e0,
-0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x9a0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x9c0,0,
-0x9e0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x8c0,0x8e0,0,0,0,0,0,0,0,0,0,0,
+0x900,0x920,0x940,0x920,0x920,0x920,0x920,0x920,0x960,0x920,0x980,0x920,0x920,0x920,0x9a0,0x920,
+0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x9c0,0x920,0x920,0x920,0x920,0x920,0x920,0x920,
+0x920,0x920,0x920,0x920,0x920,0x9e0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xa00,0,0xa20,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,
-0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,
-0xa00,0xa00,0xa00,0xa20
+0,0,0,0,0,0,0,0,0,0,0,0,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa60
};
static const UTrie propsTrie={
propsTrie_index,
NULL,
utrie_defaultGetFoldingOffset,
- 2624,
- 10100,
+ 2688,
+ 10752,
0,
TRUE
};
-static const uint16_t propsVectorsTrie_index[16324]={
-0x298,0x2a0,0x2a8,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0xad5,0xadc,0xae4,0xaeb,0xaf3,0xafb,0xb03,0xb0b,
-0xb12,0xd81,0x330,0xb1a,0xb1b,0xb21,0xa0c,0xb29,0xc7a,0xc7a,0xc82,0x338,0x340,0x348,0x350,0xb31,
-0xb4f,0xc4d,0xb39,0xb41,0x358,0xb47,0x360,0x366,0x875,0x36e,0x373,0x37b,0x382,0x38a,0x392,0x398,
-0x3a0,0x3a8,0x3b0,0xb5f,0xb6f,0xb71,0xb57,0xb67,0x3b8,0xd89,0x3c0,0x92b,0xd91,0x3c8,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x3d0,0x3d6,0x3de,0x3e6,0x3ee,0x3f4,0x3fc,0x404,
-0x40c,0x412,0x41a,0x422,0x42a,0x430,0x438,0x440,0x448,0x44e,0x456,0x45e,0x466,0x46e,0x476,0x47d,
-0x485,0x48b,0x493,0x49b,0x4a3,0x4a9,0x4b1,0x4b9,0x4c1,0x4c7,0x4cf,0x4d7,0x4df,0x4e6,0x4ee,0x4f6,
-0x4fe,0x502,0x50a,0x511,0x519,0x521,0x529,0x531,0xd4b,0xd53,0x539,0x541,0x549,0x551,0x559,0x55e,
-0xe16,0x566,0x56e,0x575,0x575,0xb79,0x57d,0x581,0xd12,0xd12,0x589,0xd22,0xd23,0x591,0xd1a,0x593,
-0xd99,0xd9b,0x59b,0xd9b,0x5a3,0x5a8,0x5b0,0xda0,0x5b6,0xd9b,0x5bc,0x5c4,0x968,0xda8,0xda8,0x5cc,
-0x5d4,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,0xdb0,
-0xdb0,0xdb0,0xdb0,0x5d9,0x5e1,0xdb8,0xdb8,0x5e9,0x87d,0x885,0x88d,0x895,0xe1e,0xde0,0x5f1,0x5f9,
-0x601,0xdc0,0xdc8,0x609,0xdc0,0x2d8,0x290,0x290,0x8ac,0x8b4,0x8bc,0x8c1,0xf76,0x9a3,0x9ab,0xef6,
-0x933,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0xf16,0xefe,0xf0e,0xf06,0xf86,0xf8d,0x947,0x948,
-0xb81,0xb81,0xb81,0xb81,0x611,0xb81,0xb81,0x619,0x621,0xb89,0x625,0x62d,0xb89,0x635,0x63d,0x645,
-0xa1c,0xa14,0xb91,0x64d,0x655,0x65d,0x663,0x66b,0xa24,0xa2c,0x673,0xa34,0x67b,0xb99,0xa3c,0xba0,
-0xa44,0xa4c,0xa54,0xa5c,0xa64,0xa6b,0xba8,0xbb0,0xa73,0xbb8,0xbbb,0xbbd,0xdd0,0xeb1,0x683,0x68a,
-0xbc5,0x692,0x69a,0xa7b,0xa80,0xa83,0xa89,0x9fc,0xa91,0xa91,0xa96,0xa04,0xa9e,0xaa6,0xaae,0xab6,
-0xabe,0xbcd,0xac5,0xacd,0x6a2,0x6aa,0x6af,0x6af,0x6b7,0x6bd,0x6c5,0x6cd,0x6d5,0x6db,0x89d,0x8a4,
-0xdd8,0xdd8,0xdd8,0xdd8,0xdd8,0xdd8,0xdd8,0xdd8,0xeb9,0xeb9,0xeb9,0xeb9,0xec1,0xec8,0xeca,0xed1,
-0xed9,0xedd,0xedd,0xee0,0xedd,0xedd,0xee6,0xedd,0x8c9,0x8ce,0x8ce,0x8ce,0x8ce,0x8ce,0x8ce,0x8ce,
-0xf6e,0x978,0x97c,0x290,0xf5e,0xf5e,0xf5e,0x950,0xf66,0x970,0xf9d,0x9cb,0x958,0x960,0x960,0x290,
-0x9bb,0x9c3,0x9c3,0x9c3,0x6e3,0xde8,0xde8,0x6eb,0xdf0,0xdf0,0xdf0,0xdf0,0xdf0,0xdf0,0x6f3,0x2dc,
-0xc72,0xc8a,0x6fb,0xc92,0x703,0xc9a,0xca2,0xcaa,0x70b,0x710,0xcb2,0xcb9,0x715,0x71d,0x93b,0x93f,
-0x725,0xcc9,0x72d,0xcc1,0xcd2,0xcd6,0xcce,0x735,0xcf4,0xcf4,0xcde,0xce4,0xcf4,0xcf4,0xcf5,0xcec,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,
-0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0xdf8,0x73d,0xf1e,0xf1e,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,
-0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0xcfd,0x745,0x74c,0x74c,
-0xe00,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,
-0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,0xe06,
-0xe06,0xe06,0xe06,0xe06,0x754,0xe0e,0x2e4,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x99b,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xf95,0x2ec,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,
-0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,
-0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,
-0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,
-0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,
-0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,
-0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,
-0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,
-0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,
-0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,
-0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,
-0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,
-0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,
-0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,
-0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,
-0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,
-0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,
-0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,
-0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,
-0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,
-0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,
-0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0xd79,0xd73,0xd74,0xd75,0xd76,0xd77,0xd78,0x2f4,0x290,0x290,
-0xfad,0xfb0,0xfb8,0xfbe,0xfc6,0xfc7,0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,
-0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,0x290,0xfcf,0xfd7,0xfcf,0xfdf,0xfe0,0xfe8,0xfe9,
-0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,
-0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,
-0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0x9f4,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,0xd05,
-0xd0a,0x75c,0xeee,0x762,0xfa5,0xfa5,0x766,0x76d,0x775,0x77d,0x785,0xbe5,0xbec,0x78d,0x792,0xbf4,
-0xc2a,0xc2a,0xbd5,0xbdd,0xbfc,0xc21,0xc22,0xc32,0xc04,0xc09,0x79a,0xc11,0x7a2,0xc19,0x7aa,0x7ae,
-0x9d3,0x7b6,0x7be,0x7c6,0xc3a,0xc40,0xc45,0x7ce,0x7de,0xc62,0xc6a,0xc55,0xc5a,0x7e6,0x7ee,0x7d6,
-0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,
-0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd5b,0xd63,0xd63,0xd63,0xd63,
-0x8d6,0x8dd,0x8e5,0x8ed,0xf26,0xf26,0xf26,0x8f5,0x8fd,0x900,0xf56,0xf4e,0x2fc,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x7f6,0x7fe,0x304,0x290,0x908,0xf7e,0x9b3,0x290,
-0xe33,0xe26,0xe2b,0xf2e,0x910,0x30c,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x918,0x91b,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x984,0x98b,0x993,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0xe3b,0xe3b,0xe3b,0xe3b,0xe3b,0xe3b,0xe3b,0x806,0xe43,0x80e,0xe44,0xe4c,0xe54,0xe5a,0x816,0x81e,
-0xf46,0xf46,0x314,0x290,0x290,0x290,0x290,0x290,0xf36,0xf36,0x923,0x290,0x290,0x290,0x290,0x290,
-0xe83,0xe7e,0x826,0xe81,0x82e,0x836,0x83e,0xe87,0x846,0x84e,0x856,0xe80,0xe88,0xe83,0xe7e,0xe86,
-0xe81,0xe89,0xe84,0xe7f,0xe87,0x85d,0xe62,0xe6a,0xe71,0xe78,0xe65,0xe6d,0xe74,0xe7b,0x865,0xea9,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,
-0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x290,0x318,
-0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,
-0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,
-0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,
-0xe99,0xe99,0xe99,0xe99,0xe99,0xe99,0x9e4,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,
-0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,
-0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,
-0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,0xea1,
-0x9ec,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,
-0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,
-0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9dc,
-0x86d,0xe91,0xe91,0xe91,0x320,0x320,0x320,0x320,0xf3e,0xf3e,0xf3e,0xf3e,0xf3e,0xf3e,0xf3e,0x328,
-0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,
-0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,
-0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,0x320,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,
-0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd2b,
-0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,
-0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,
-0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,
-0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd43,0xd33,
+static const uint16_t propsVectorsTrie_index[16924]={
+0x2a8,0x2b0,0x2b8,0x2c0,0x2c8,0x2d0,0x2d8,0x2e0,0xb1b,0xb22,0xb2a,0xb31,0xb39,0xb41,0xb49,0xb51,
+0xb58,0xde3,0xb60,0xb64,0xb67,0xb6d,0xa52,0xb75,0xcdc,0xcdc,0xce4,0x340,0x348,0x350,0x358,0xb7d,
+0xba9,0xca7,0xb85,0xb8d,0x360,0xb93,0xb9b,0xba1,0x860,0x368,0x36d,0x375,0x37c,0xcbc,0x384,0x38a,
+0x392,0x39a,0x3a2,0xbb9,0xbc9,0xbcb,0xbb1,0xbc1,0x3aa,0xdeb,0x3b2,0x91a,0xdf3,0x3ba,0x1016,0x9cc,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x3c2,0x3c8,0x3d0,0x3d8,0x3e0,0x3e6,0x3ee,0x3f6,
+0x3fe,0x404,0x40c,0x414,0x41c,0x422,0x42a,0x432,0x43a,0x440,0x448,0x450,0x458,0x460,0x468,0x46f,
+0x477,0x47d,0x485,0x48d,0x495,0x49b,0x4a3,0x4ab,0x4b3,0x4b9,0x4c1,0x4c9,0x4d1,0x4d8,0x4e0,0x4e8,
+0x4f0,0x4f4,0x4fc,0x503,0x50b,0x513,0x51b,0x523,0xdad,0xdb5,0x52b,0x533,0x53b,0x543,0x54b,0x550,
+0xe70,0x558,0x560,0x567,0x567,0xbd3,0x56f,0x573,0xd74,0xd74,0x57b,0xd84,0xd85,0x583,0xd7c,0x585,
+0xdfb,0xdfd,0x58d,0xdfd,0x595,0x59a,0x5a2,0xe02,0x5a8,0xdfd,0x5ae,0x5b6,0x959,0xe0a,0xe0a,0x5be,
+0x5c6,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,0xe12,
+0xe12,0xe12,0xe12,0x5cb,0x5d3,0xe1a,0xe1a,0x5db,0x868,0x870,0x878,0x880,0xe80,0xe78,0x5e3,0x5eb,
+0x5f3,0xe22,0xe2a,0x5fb,0xe22,0x2e8,0x2a0,0x2a0,0x897,0x89f,0x8a7,0x8ac,0x100e,0x994,0x99c,0xf5e,
+0x922,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x101e,0x1023,0x9d4,0x9dc,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0xf7e,0xf66,0xf76,0xf6e,0xfee,0xfe6,0x936,0x939,
+0xbdb,0xbdb,0xbdb,0xbdb,0x603,0xbdb,0xbdb,0x60b,0x613,0xbe3,0x617,0x61f,0xbe3,0x627,0x62f,0x637,
+0xa62,0xa5a,0xbeb,0x63f,0x647,0x64f,0x655,0x65d,0xa6a,0xa72,0x665,0xa7a,0x66d,0xbf3,0xa82,0xbfa,
+0xa8a,0xa92,0xa9a,0xaa2,0xaaa,0xab1,0xc02,0xc0a,0xab9,0xc12,0xc15,0xc17,0xe32,0xf13,0xf19,0x675,
+0xc1f,0x67d,0x685,0xac1,0xac6,0xac9,0xacf,0xa42,0xad7,0xad7,0xadc,0xa4a,0xae4,0xaec,0xaf4,0xafc,
+0xb04,0xc27,0xb0b,0xb13,0x68d,0x695,0x69a,0x69a,0x6a2,0x6a8,0x6b0,0x6b8,0x6c0,0x6c6,0x888,0x88f,
+0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xf21,0xf21,0xf21,0xf21,0xf29,0xf30,0xf32,0xf39,
+0xf41,0xf45,0xf45,0xf48,0xf45,0xf45,0xf4e,0xf45,0x8b4,0x8bc,0x8bd,0x8bd,0x8bd,0x8bd,0x8bd,0x8bd,
+0xfd6,0x969,0x96d,0x9e4,0xfc6,0xfc6,0xfc6,0x941,0xfce,0x961,0xffe,0x9bc,0x949,0x951,0x951,0x2a0,
+0x9ac,0x9b4,0x9b4,0x9b4,0x6ce,0xe42,0xe42,0x6d6,0xe4a,0xe4a,0xe4a,0xe4a,0xe4a,0xe4a,0x6de,0x2ec,
+0xcd4,0xcec,0x6e6,0xcf4,0x6ee,0xcfc,0xd04,0xd0c,0x6f6,0x6fb,0xd14,0xd1b,0x700,0x708,0x92a,0x92e,
+0x710,0xd2b,0x718,0xd23,0xd34,0xd38,0xd30,0x720,0xd56,0xd56,0xd40,0xd46,0xd56,0xd56,0xd57,0xd4e,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,
+0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52,0x728,0xf86,0xf86,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,
+0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0x730,0x737,0x737,
+0xe5a,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,
+0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,0xe60,
+0xe60,0xe60,0xe60,0xe60,0x73f,0xe68,0x2f4,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x98c,0x9ec,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
+0xff6,0x2fc,0x102b,0x9f5,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,
+0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,
+0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,
+0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,
+0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,
+0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,
+0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,
+0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,
+0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,
+0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,
+0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,
+0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,
+0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,
+0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,
+0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,
+0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,
+0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,
+0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,
+0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,
+0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,
+0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,
+0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0xddb,0xdd5,0xdd6,0xdd7,0xdd8,0xdd9,0xdda,0x304,0x2a0,0x2a0,
+0x1043,0x1046,0x104e,0x1054,0x105c,0x105d,0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,
+0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,0x2a0,0x1065,0x106d,0x1065,0x1075,0x1076,0x107e,0x107f,
+0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,
+0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,0xdcd,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,
+0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xa3a,0xd67,0xd67,0xd67,0xd67,0xd67,0xd67,0xd67,0xd67,
+0xd6c,0x747,0xf56,0x74d,0x1006,0x1006,0x751,0x758,0x760,0x768,0x770,0xc3f,0xc46,0x778,0x77d,0xc4e,
+0xc84,0xc84,0xc2f,0xc37,0xc56,0xc7b,0xc7c,0xc8c,0xc5e,0xc63,0x785,0xc6b,0x78d,0xc73,0x795,0x799,
+0x9c4,0x7a1,0x7a9,0x7b1,0xc94,0xc9a,0xc9f,0x7b9,0x7c9,0xcc4,0xccc,0xcaf,0xcb4,0x7d1,0x7d9,0x7c1,
+0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,
+0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdbd,0xdc5,0xdc5,0xdc5,0xdc5,
+0x8c5,0x8cc,0x8d4,0x8dc,0xf8e,0xf8e,0xf8e,0x8e4,0x8ec,0x8ef,0xfbe,0xfb6,0x30c,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x7e1,0x7e9,0x314,0x2a0,0x8f7,0xfde,0x9a4,0x2a0,
+0xe95,0xe88,0xe8d,0xf96,0x8ff,0x31c,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x907,0x90a,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x9fd,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x975,0x97c,0x984,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,
+0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0x1033,0xa05,0xa09,0xa09,0xa09,0xa09,
+0x103b,0x103b,0x103b,0xa11,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0xe9d,0x7f1,0xea5,0x7f9,0xea6,0xeae,0xeb6,0xebc,0x801,0x809,
+0xfae,0xfae,0x324,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0xf9e,0xf9e,0x912,0xa19,0x2a0,0x2a0,0x2a0,0x2a0,
+0xee5,0xee0,0x811,0xee3,0x819,0x821,0x829,0xee9,0x831,0x839,0x841,0xee2,0xeea,0xee5,0xee0,0xee8,
+0xee3,0xeeb,0xee6,0xee1,0xee9,0x848,0xec4,0xecc,0xed3,0xeda,0xec7,0xecf,0xed6,0xedd,0x850,0xf0b,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,
+0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x328,
+0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,
+0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,
+0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,
+0xefb,0xefb,0xefb,0xefb,0xefb,0xefb,0xa2a,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,
+0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,
+0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,
+0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,0xf03,
+0xa32,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,
+0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,
+0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa21,0xa22,
+0x858,0xef3,0xef3,0xef3,0x330,0x330,0x330,0x330,0xfa6,0xfa6,0xfa6,0xfa6,0xfa6,0xfa6,0xfa6,0x338,
+0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,
+0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,
+0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,0x330,
+0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,
+0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,
+0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,
+0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd9d,0xd8d,
+0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,
+0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,
+0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,
+0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xda5,0xd95,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x40b,0x615,0x477,0x432,0x540,0x47a,0x47a,
-0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,
-0x729,0x555,0x708,0x3e4,0x6ed,0x6c3,0x3e4,0x70b,0x690,0x456,0x3e4,0x6f0,0x60f,0x567,0x612,0x72c,
-0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x678,0x60c,0x60f,0x3e7,0x3e7,0x3e7,0x555,
-0x3e4,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
-0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x690,0x6ed,0x456,0x3ed,0x3f0,
-0x3ea,0x3f9,0x3f9,0x3f9,0x3f9,0x3f9,0x3f9,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,
-0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x3f3,0x690,0x429,0x456,0x3e7,0x47a,
-0x47d,0x47d,0x47d,0x47d,0x47d,0x732,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
-0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,0x47d,
-0x55b,0x165,0x6c6,0x6f3,0x6de,0x6f3,0x3ff,0x165,0x16b,0x1da,0x171,0x6f9,0x402,0x41d,0x38d,0x405,
-0x6b1,0x6e1,0x162,0x162,0x42f,0x1dd,0x165,0x16e,0x16b,0x162,0x171,0x6f9,0x15f,0x15f,0x15f,0x165,
-0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x396,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,
-0x396,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x168,0x396,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x396,0x390,
-0x393,0x393,0x1e0,0x1e0,0x1e0,0x1e0,0x390,0x1e0,0x393,0x393,0x393,0x1e0,0x393,0x393,0x1e0,0x1e0,
-0x390,0x1e0,0x393,0x393,0x1e0,0x1e0,0x1e0,0x168,0x390,0x393,0x393,0x1e0,0x393,0x1e0,0x390,0x1e0,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x8af,0x60,0x60,0x60,0x60,0x60,0x60,
+0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x426,0x621,0x450,0x450,0x54c,0x495,0x495,
+0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,
+0x747,0x561,0x717,0x3ff,0x6fc,0x6d2,0x3ff,0x71a,0x69f,0x474,0x3ff,0x6ff,0x61b,0x573,0x61e,0x74a,
+0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x618,0x61b,0x402,0x402,0x402,0x561,
+0x3ff,0x417,0x417,0x417,0x417,0x417,0x417,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,
+0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x69f,0x6fc,0x474,0x408,0x40b,
+0x405,0x414,0x414,0x414,0x414,0x414,0x414,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,
+0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x69f,0x447,0x474,0x402,0x495,
+0x498,0x498,0x498,0x498,0x498,0x750,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,
+0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498,
+0x567,0x17d,0x6d5,0x702,0x6ed,0x702,0x41a,0x17d,0x183,0x1f2,0x189,0x708,0x41d,0x43b,0x3a8,0x420,
+0x6c0,0x6f0,0x17a,0x17a,0x44d,0x1f5,0x17d,0x186,0x183,0x17a,0x189,0x708,0x177,0x177,0x177,0x17d,
+0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x3b1,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,
+0x3b1,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x180,0x3b1,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x3b1,0x3ab,
+0x3ae,0x3ae,0x1f8,0x1f8,0x1f8,0x1f8,0x3ab,0x1f8,0x3ae,0x3ae,0x3ae,0x1f8,0x3ae,0x3ae,0x1f8,0x1f8,
+0x3ab,0x1f8,0x3ae,0x3ae,0x1f8,0x1f8,0x1f8,0x180,0x3ab,0x3ae,0x3ae,0x1f8,0x3ae,0x1f8,0x3ab,0x1f8,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x8b8,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x8d0,0x8d0,0x8d3,0x8d3,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x90,0x90,0x90,0x90,
-0x8e5,0xa26,0x8e5,0x8e5,0x8e5,0xa26,0x8e5,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
+0x8d9,0x8d9,0x8dc,0x8dc,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d9,0x8d,0x8d,0x8d,0x8d,
+0x8ee,0xa41,0x8ee,0x8ee,0x8ee,0xa41,0x8ee,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xbdf,0xbdf,0xbdf,0xc39,0xc39,0xc30,0xc30,0xc39,0xbdc,0xbdc,0xbdc,0xbdc,0x13b,0x13b,0x13b,0x13b,
+0xbf1,0xbf1,0xbf1,0xc4b,0xc4b,0xc42,0xc42,0xc4b,0xbee,0xbee,0xbee,0xbee,0x138,0x138,0x138,0x138,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x7a4,0x7a4,0x7a4,0x7a4,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0x7c5,0x7c5,0x7c5,0x7c5,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0x10e,0x10e,0x10e,0x10e,0x10e,
+0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x10b,0x10b,0x10b,0x10b,0x10b,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0xcc,0xcc,0xcc,0xcc,0xcc,
+0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0xc9,0xc9,0xc9,0xc9,0xc9,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0x102,0x102,0x102,0x102,0x102,0x102,
+0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xb4f,0xff,0xff,0xff,0xff,0xff,0xff,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xb91,0xb91,0xc15,0xc15,0xc15,0xb91,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,
+0xba9,0xba9,0xc2a,0xc2a,0xc2a,0xba9,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x747,0x747,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x765,0x765,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
+0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
-0xb49,0xb4c,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
-0x207,0x3ab,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,
-0x564,0x564,0x8c4,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,0xa11,
-9,9,9,9,0x228,0x225,9,9,9,9,0x22e,9,9,9,0x603,9,
-9,9,9,9,0x22b,0x228,0x23d,0x21c,0x23d,0x23d,0x23d,9,0x23d,9,0x23d,0x23d,
-0x234,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,
-0x3b4,0x3b4,9,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x3b4,0x23d,0x23d,0x234,0x234,0x234,0x234,
-0x234,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,
-0x3b1,0x3b1,0x231,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x234,0x234,0x234,0x234,0x234,9,
-0x240,0x240,0x243,0x23d,0x23d,0x240,0x237,0x7c2,0x96c,0x969,0x23a,0x7c2,0x23a,0x7c2,0x23a,0x7c2,
-0x24f,0x249,0x246,0x480,0x480,0x480,0x480,0xc,0x870,0x870,0x972,0x96f,0x7cb,0x7c5,0x7cb,0x7c5,
-0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,
-0x24f,0x252,0x24c,0x24f,0x249,0x972,0x96f,0x24f,0x249,0x972,0x96f,0x24f,0x249,0x972,0x96f,0xc,
-0x252,0x24c,0x252,0x24c,0x24f,0x249,0x252,0x24c,0x24f,0x249,0x252,0x24c,0x252,0x24c,0x252,0x24c,
-0x24f,0x249,0x252,0x24c,0x7ce,0x7c8,0x252,0x24c,0x252,0x24c,0x252,0x24c,0x252,0x24c,0xb58,0xb55,
-0x252,0x24c,0xc,0xc,0xc,0xc,0xc,0xc,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
-0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xf,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
-0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,0x261,
-0x261,0x261,0x261,0xf,0xf,0x264,0x255,0x255,0x258,0x255,0x258,0x255,0xf,0x25b,0x25b,0x25b,
-0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,
-0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25e,
-0xf,0x606,0x84c,0xf,0xf,0xf,0xf,0xf,0x12,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
-0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0xc06,0x76e,0x76e,0x76e,0x76e,0x76e,
-0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x483,0x483,0x483,0x483,0x483,0x483,0x483,0x483,
-0x483,0x483,0x12,0x483,0x483,0x483,0x267,0x483,0x267,0x483,0x483,0x270,0x771,0xc09,0xc3f,0xc09,
-0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,
-0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x12,0x12,0x12,0x12,0x12,
-0x273,0x273,0x273,0x26d,0x26a,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
-0xa71,0xa71,0xa71,0xa71,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0xc66,0x543,0xb37,0xa74,0xa74,
-0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0x15,0x15,0x15,0x15,0x15,0x543,0x15,0x15,0xc42,0x546,
-0x15,0x27f,0x282,0x282,0x282,0x282,0x282,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,
-0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x15,0x15,0x15,0x15,0x15,
-0x279,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x489,0x489,0x489,0x489,0x489,
-0x489,0x489,0x489,0x873,0x873,0x873,0xafe,0xb04,0xb01,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0x15,
-0x7e0,0x7e0,0x7e0,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7dd,0x7da,0x7dd,0x7da,0x18,0x7d7,
-0x7e3,0x876,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,
-0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x18,0x18,0xa7a,0xa7a,0xa7a,
-0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,
-0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,0x87f,
-0x87f,0x978,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,
-0x1e,0x495,0x495,0x49e,0xa7d,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,
+0x570,0x570,0x8cd,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,0xa2c,
+6,6,6,6,0x243,0x240,6,6,6,6,0x249,0xc93,0xc93,0xc93,0x60f,6,
+6,6,6,6,0x246,0x243,0x258,0x237,0x258,0x258,0x258,6,0x258,6,0x258,0x258,
+0x24f,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,
+0x3cf,0x3cf,6,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x258,0x258,0x24f,0x24f,0x24f,0x24f,
+0x24f,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,
+0x3cc,0x3cc,0x24c,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x24f,0x24f,0x24f,0x24f,0x24f,6,
+0x25b,0x25b,0x25e,0x258,0x258,0x25b,0x252,0x7e3,0x98d,0x98a,0x255,0x7e3,0x255,0x7e3,0x255,0x7e3,
+0x26a,0x264,0x261,0x49b,0x49b,0x49b,0x49b,9,0x894,0x894,0x993,0x990,0x7ec,0x7e6,0x7ec,0x7e6,
+0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,
+0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
+0xc,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,
+0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0xc,0xc,0x27f,0x270,0x270,
+0x273,0x270,0x273,0x270,0xc,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,
+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,
+0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x279,0xc,0x612,0x86a,0xc,0xc,0xc,0xc,0xc,
+0xf,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,
+0x282,0x49e,0x49e,0x28b,0x78f,0xc1e,0xc51,0xc1e,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,
0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,
-0x28e,0x291,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x291,0x28e,0x28e,0x291,0x28e,0x28e,0x28e,
-0x28e,0x28e,0x1e,0x1e,0x498,0x28e,0x49e,0x49e,0x49e,0x495,0x495,0x495,0x495,0x495,0x495,0x495,
-0x495,0x49e,0x49e,0x49e,0x49e,0x49b,0x1e,0x1e,0x28e,0x498,0x498,0x498,0x498,0x1e,0x1e,0x1e,
-0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x28e,0x28e,0x495,0x495,0x40e,0x40e,0x657,0x657,
-0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x657,0x28b,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
-0x1e,0x1e,0x1e,0x1e,0x1e,0xb5b,0x1e,0x1e,0x21,0x4a1,0x4aa,0x4aa,0x21,0x297,0x297,0x297,
-0x297,0x297,0x297,0x297,0x297,0x21,0x21,0x297,0x297,0x21,0x21,0x297,0x297,0x297,0x297,0x297,
-0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x21,0x297,0x297,0x297,0x297,0x297,0x297,
-0x297,0x21,0x297,0x21,0x21,0x21,0x297,0x297,0x297,0x297,0x21,0x21,0x4a4,0xa80,0x4a1,0x4aa,
-0x4aa,0x4a1,0x4a1,0x4a1,0x4a1,0x21,0x21,0x4aa,0x4aa,0x21,0x21,0x4ad,0x4ad,0x4a7,0xb5e,0x21,
-0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x4a1,0x21,0x21,0x21,0x21,0x29a,0x29a,0x21,0x29a,
-0x297,0x297,0x4a1,0x4a1,0x21,0x21,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,0x65a,
-0x297,0x297,0x6cc,0x6cc,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x21,0x21,0x21,0x21,0x21,
-0x24,0xb07,0x4b0,0xb0a,0x24,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x24,0x24,0x24,0x24,0x29d,
-0x29d,0x24,0x24,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,
-0x29d,0x24,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x24,0x29d,0x2a0,0x24,0x29d,0x2a0,0x24,
-0x29d,0x29d,0x24,0x24,0x4b3,0x24,0x4b9,0x4b9,0x4b9,0x4b0,0x4b0,0x24,0x24,0x24,0x24,0x4b0,
-0x4b0,0x24,0x24,0x4b0,0x4b0,0x4b6,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
-0x24,0x2a0,0x2a0,0x2a0,0x29d,0x24,0x2a0,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x65d,0x65d,
-0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x4b0,0x4b0,0x29d,0x29d,0x29d,0x24,0x24,0x24,
-0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x27,0x4bc,0x4bc,0x4c5,0x27,0x2a3,0x2a3,0x2a3,
-0x2a3,0x2a3,0x2a3,0x2a3,0xa83,0x2a3,0x27,0x2a3,0x2a3,0x2a3,0x27,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
-0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x27,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,
-0x2a3,0x27,0x2a3,0x2a3,0x27,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x27,0x27,0x4bf,0x2a3,0x4c5,0x4c5,
-0x4c5,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x27,0x4bc,0x4bc,0x4c5,0x27,0x4c5,0x4c5,0x4c2,0x27,0x27,
-0x2a3,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
-0x2a3,0xa83,0xb0d,0xb0d,0x27,0x27,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,0x660,
-0x27,0xb43,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
-0x2a,0x4c8,0x4d1,0x4d1,0x2a,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a,0x2a,0x2a9,
-0x2a9,0x2a,0x2a,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,
-0x2a9,0x2a,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a,0x2a9,0x2a9,0x2a,0xa86,0x2a9,0x2a9,
-0x2a9,0x2a9,0x2a,0x2a,0x4cb,0x2a9,0x4c8,0x4c8,0x4d1,0x4c8,0x4c8,0x4c8,0x2a,0x2a,0x2a,0x4d1,
-0x4d4,0x2a,0x2a,0x4d4,0x4d4,0x4ce,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x4c8,0x4c8,
-0x2a,0x2a,0x2a,0x2a,0x2ac,0x2ac,0x2a,0x2a9,0x2a9,0x2a9,0x2a,0x2a,0x2a,0x2a,0x663,0x663,
-0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x2a6,0xa86,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
-0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2d,0x2d,0x4d7,0x2b2,0x2d,0x2b2,0x2b2,0x2b2,
-0x2b2,0x2b2,0x2b2,0x2d,0x2d,0x2d,0x2b2,0x2b2,0x2b2,0x2d,0x2b2,0x2b2,0x2b5,0x2b2,0x2d,0x2d,
-0x2d,0x2b2,0x2b2,0x2d,0x2b2,0x2d,0x2b2,0x2b2,0x2d,0x2d,0x2d,0x2b2,0x2b2,0x2d,0x2d,0x2d,
-0x2b2,0x2b2,0x2b2,0x2d,0x2d,0x2d,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0xb61,0x2b2,
-0x2b2,0x2b2,0x2d,0x2d,0x2d,0x2d,0x4d7,0x4dd,0x4d7,0x4dd,0x4dd,0x2d,0x2d,0x2d,0x4dd,0x4dd,
-0x4dd,0x2d,0x4e0,0x4e0,0x4e0,0x4da,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x4d7,
-0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0xc5a,0x666,0x666,0x666,0x666,0x666,
-0x666,0x666,0x666,0x666,0x2af,0x2af,0x2af,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xb46,0xa89,0x2d,
-0x2d,0x2d,0x2d,0x2d,0x30,0x4ec,0x4ec,0x4ec,0x30,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,
-0x2b8,0x30,0x2b8,0x2b8,0x2b8,0x30,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,
-0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x30,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,
-0x30,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x30,0x30,0x30,0x30,0x4e3,0x4e3,0x4e3,0x4ec,0x4ec,0x4ec,
-0x4ec,0x30,0x4e3,0x4e3,0x4e6,0x30,0x4e3,0x4e3,0x4e3,0x4e9,0x30,0x30,0x30,0x30,0x30,0x30,
-0x30,0x4e3,0x4e3,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2b8,0x2b8,0x30,0x30,
-0x30,0x30,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x30,0x30,0x30,0x30,
-0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x33,0x33,0x4f5,0x4f5,
-0x33,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x33,0x2bb,0x2bb,0x2bb,0x33,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x33,0x2bb,0x2bb,
-0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x33,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x33,0x33,
-0xb10,0xa8c,0x4f5,0x4ef,0x4f8,0x4f5,0x4ef,0x4f5,0x4f5,0x33,0x4ef,0x4f8,0x4f8,0x33,0x4f8,0x4f8,
-0x4ef,0x4f2,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x4ef,0x4ef,0x33,0x33,0x33,0x33,0x33,
-0x33,0x33,0x2bb,0x33,0x2bb,0x2bb,0x33,0x33,0x33,0x33,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,
-0x66c,0x66c,0x66c,0x66c,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
-0x33,0x33,0x33,0x33,0x36,0x36,0x501,0x501,0x36,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,
-0x2be,0x36,0x2be,0x2be,0x2be,0x36,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,
-0x2be,0x2be,0x2be,0x2be,0x2be,0x36,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,
-0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x36,0x36,0x36,0x36,0x4fb,0x501,0x501,0x4fb,0x4fb,0x4fb,
-0x36,0x36,0x501,0x501,0x501,0x36,0x504,0x504,0x504,0x4fe,0x36,0x36,0x36,0x36,0x36,0x36,
-0x36,0x36,0x36,0x4fb,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x2be,0x2be,0x36,0x36,
-0x36,0x36,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x36,0x36,0x36,0x36,
-0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x39,0x888,0x888,
-0x39,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,
-0x7ec,0x7ec,0x7ec,0x39,0x39,0x39,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,
-0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x39,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,
-0x7ec,0x7ec,0x7ec,0x7ec,0x39,0x7ec,0x39,0x39,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x7ec,0x39,
-0x39,0x39,0x885,0x39,0x39,0x39,0x39,0x882,0x888,0x888,0x882,0x882,0x882,0x39,0x882,0x39,
-0x888,0x888,0x88b,0x888,0x88b,0x88b,0x88b,0x882,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
-0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x888,0x888,0x7e9,0x39,0x39,0x39,
-0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3c,0x711,0x711,0x711,0x711,0x711,0x711,0x711,
-0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,
-0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x507,0x711,0x70e,0x507,0x507,0x507,0x507,
-0x507,0x507,0x50d,0x3c,0x3c,0x3c,0x3c,0x6cf,0x717,0x717,0x717,0x717,0x717,0x711,0x714,0x50a,
-0x50a,0x50a,0x50a,0x50a,0x50a,0x507,0x50a,0x2c1,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,
-0x672,0x672,0x411,0x411,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+0x28e,0x28e,0x28e,0xf,0xf,0xf,0xf,0xf,0x28e,0x28e,0x28e,0x288,0x285,0xf,0xf,0xf,
+0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xa89,0xa89,0xa89,0xa89,0x12,0x12,0x12,0x12,
+0x12,0x12,0x12,0xc7b,0x54f,0xb49,0xa8c,0xa8c,0xb13,0xb13,0xb13,0xb13,0xb13,0xb13,0x12,0x12,
+0x12,0x12,0x12,0x54f,0x12,0x12,0xc54,0x552,0x12,0x29a,0x29d,0x29d,0x29d,0x29d,0x29d,0x29a,
+0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x12,0x12,0x12,0x12,0x12,0x294,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x897,0x897,0x897,0xb13,0xb19,
+0xb16,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0x12,0x801,0x801,0x801,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,
+0x7fe,0x7fe,0x7fe,0x7fb,0x7fe,0x7fb,0x15,0x7f8,0x804,0x89a,0x804,0x804,0x804,0x804,0x804,0x804,
+0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,0x89d,
+0x89d,0x89d,0x89d,0x15,0x15,0xa92,0xa92,0xa92,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,
+0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0x807,0x807,0x807,0x807,0x807,0x807,0x8a3,0x8a3,
+0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x999,0x18,0x18,0x18,0x18,0x18,0x18,
+0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x4b0,0x4b0,0x4b9,0xa95,0x2a9,0x2a9,0x2a9,
+0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,
+0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2ac,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,
+0x2a9,0x2ac,0x2a9,0x2a9,0x2ac,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x1b,0x1b,0x4b3,0x2a9,0x4b9,0x4b9,
+0x4b9,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b9,0x4b9,0x4b9,0x4b9,0x4b6,0x1b,0x1b,
+0x2a9,0x4b3,0x4b3,0x4b3,0x4b3,0x1b,0x1b,0x1b,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,
+0x2a9,0x2a9,0x4b0,0x4b0,0x42c,0x42c,0x666,0x666,0x666,0x666,0x666,0x666,0x666,0x666,0x666,0x666,
+0x2a6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xc9c,0xc9c,0xb73,0xc9c,0xc9c,
+0x1e,0x4bc,0x4c5,0x4c5,0x1e,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x1e,0x1e,0x2b2,
+0x2b2,0x1e,0x1e,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,
+0x2b2,0x1e,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x1e,0x2b2,0x1e,0x1e,0x1e,0x2b2,0x2b2,
+0x2b2,0x2b2,0x1e,0x1e,0x4bf,0xa98,0x4bc,0x4c5,0x4c5,0x4bc,0x4bc,0x4bc,0x4bc,0x1e,0x1e,0x4c5,
+0x4c5,0x1e,0x1e,0x4c8,0x4c8,0x4c2,0xb76,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x4bc,
+0x1e,0x1e,0x1e,0x1e,0x2b5,0x2b5,0x1e,0x2b5,0x2b2,0x2b2,0x4bc,0x4bc,0x1e,0x1e,0x669,0x669,
+0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x2b2,0x2b2,0x6db,0x6db,0x2af,0x2af,0x2af,0x2af,
+0x2af,0x2af,0x2af,0x1e,0x1e,0x1e,0x1e,0x1e,0x21,0xb1c,0x4cb,0xb1f,0x21,0x2b8,0x2b8,0x2b8,
+0x2b8,0x2b8,0x2b8,0x21,0x21,0x21,0x21,0x2b8,0x2b8,0x21,0x21,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,
+0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x21,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,
+0x2b8,0x21,0x2b8,0x2bb,0x21,0x2b8,0x2bb,0x21,0x2b8,0x2b8,0x21,0x21,0x4ce,0x21,0x4d4,0x4d4,
+0x4d4,0x4cb,0x4cb,0x21,0x21,0x21,0x21,0x4cb,0x4cb,0x21,0x21,0x4cb,0x4cb,0x4d1,0x21,0x21,
+0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x2bb,0x2bb,0x2bb,0x2b8,0x21,0x2bb,0x21,
+0x21,0x21,0x21,0x21,0x21,0x21,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,0x66c,
+0x4cb,0x4cb,0x2b8,0x2b8,0x2b8,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+0x24,0x4d7,0x4d7,0x4e0,0x24,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0xa9b,0x2be,0x24,0x2be,
+0x2be,0x2be,0x24,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,
+0x2be,0x24,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x24,0x2be,0x2be,0x24,0x2be,0x2be,0x2be,
+0x2be,0x2be,0x24,0x24,0x4da,0x2be,0x4e0,0x4e0,0x4e0,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x24,0x4d7,
+0x4d7,0x4e0,0x24,0x4e0,0x4e0,0x4dd,0x24,0x24,0x2be,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x2be,0xa9b,0xb22,0xb22,0x24,0x24,0x66f,0x66f,
+0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x66f,0x24,0xb55,0x24,0x24,0x24,0x24,0x24,0x24,
+0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x27,0x4e3,0x4ec,0x4ec,0x27,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x27,0x27,0x2c4,0x2c4,0x27,0x27,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,
+0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x27,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,
+0x2c4,0x27,0x2c4,0x2c4,0x27,0xa9e,0x2c4,0x2c4,0x2c4,0x2c4,0x27,0x27,0x4e6,0x2c4,0x4e3,0x4e3,
+0x4ec,0x4e3,0x4e3,0x4e3,0x27,0x27,0x27,0x4ec,0x4ef,0x27,0x27,0x4ef,0x4ef,0x4e9,0x27,0x27,
+0x27,0x27,0x27,0x27,0x27,0x27,0x4e3,0x4e3,0x27,0x27,0x27,0x27,0x2c7,0x2c7,0x27,0x2c4,
+0x2c4,0x2c4,0x27,0x27,0x27,0x27,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,0x672,
+0x2c1,0xa9e,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,
+0x2a,0x2a,0x4f2,0x2cd,0x2a,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2a,0x2a,0x2a,0x2cd,0x2cd,
+0x2cd,0x2a,0x2cd,0x2cd,0x2d0,0x2cd,0x2a,0x2a,0x2a,0x2cd,0x2cd,0x2a,0x2cd,0x2a,0x2cd,0x2cd,
+0x2a,0x2a,0x2a,0x2cd,0x2cd,0x2a,0x2a,0x2a,0x2cd,0x2cd,0x2cd,0x2a,0x2a,0x2a,0x2cd,0x2cd,
+0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0xb79,0x2cd,0x2cd,0x2cd,0x2a,0x2a,0x2a,0x2a,0x4f2,0x4f8,
+0x4f2,0x4f8,0x4f8,0x2a,0x2a,0x2a,0x4f8,0x4f8,0x4f8,0x2a,0x4fb,0x4fb,0x4fb,0x4f5,0x2a,0x2a,
+0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x4f2,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,
+0x2a,0x2a,0xc6f,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x2ca,0x2ca,0x2ca,0xaa1,
+0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xb58,0xaa1,0x2a,0x2a,0x2a,0x2a,0x2a,0x2d,0x507,0x507,0x507,
+0x2d,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d,0x2d3,0x2d3,0x2d3,0x2d,0x2d3,0x2d3,
+0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d,0x2d3,0x2d3,
+0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d,0x2d,
+0x2d,0x2d,0x4fe,0x4fe,0x4fe,0x507,0x507,0x507,0x507,0x2d,0x4fe,0x4fe,0x501,0x2d,0x4fe,0x4fe,
+0x4fe,0x504,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x4fe,0x4fe,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x2d,0x2d,0x2d,0x2d,0x2d3,0x2d3,0x2d,0x2d,0x2d,0x2d,0x678,0x678,0x678,0x678,0x678,0x678,
+0x678,0x678,0x678,0x678,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,
+0x2d,0x2d,0x2d,0x2d,0x30,0x30,0x510,0x510,0x30,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,
+0x2d6,0x30,0x2d6,0x2d6,0x2d6,0x30,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,
+0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x30,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,
+0x30,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x30,0x30,0xb25,0xaa4,0x510,0x50a,0x513,0x510,0x50a,0x510,
+0x510,0x30,0x50a,0x513,0x513,0x30,0x513,0x513,0x50a,0x50d,0x30,0x30,0x30,0x30,0x30,0x30,
+0x30,0x50a,0x50a,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x2d6,0x30,0x2d6,0x2d6,0xd0e,0xd0e,
+0x30,0x30,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x30,0xc9f,0xc9f,0x30,
+0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x33,0x33,0x51c,0x51c,
+0x33,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x33,0x2d9,0x2d9,0x2d9,0x33,0x2d9,0x2d9,
+0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x33,0x2d9,0x2d9,
+0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x2d9,0x33,0x33,
+0x33,0x33,0x516,0x51c,0x51c,0x516,0x516,0x516,0x33,0x33,0x51c,0x51c,0x51c,0x33,0x51f,0x51f,
+0x51f,0x519,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x516,0x33,0x33,0x33,0x33,
+0x33,0x33,0x33,0x33,0x2d9,0x2d9,0x33,0x33,0x33,0x33,0x67e,0x67e,0x67e,0x67e,0x67e,0x67e,
+0x67e,0x67e,0x67e,0x67e,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,
+0x33,0x33,0x33,0x33,0x36,0x36,0x8ac,0x8ac,0x36,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,
+0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x36,0x36,0x36,0x80d,0x80d,
+0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,
+0x80d,0x80d,0x36,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x36,0x80d,0x36,0x36,
+0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x36,0x36,0x36,0x8a9,0x36,0x36,0x36,0x36,0x8a6,
+0x8ac,0x8ac,0x8a6,0x8a6,0x8a6,0x36,0x8a6,0x36,0x8ac,0x8ac,0x8af,0x8ac,0x8af,0x8af,0x8af,0x8a6,
+0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+0x36,0x36,0x8ac,0x8ac,0x80a,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
+0x39,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,
+0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,
+0x729,0x71d,0x729,0x726,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x723,0x39,0x39,0x39,0x39,0x6de,
+0x72f,0x72f,0x72f,0x72f,0x72f,0x729,0x72c,0x720,0x720,0x720,0x720,0x720,0x720,0x71d,0x720,0x2dc,
+0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x681,0x42f,0x42f,0x39,0x39,0x39,0x39,
+0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,
+0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x3c,0x73b,0x73b,0x3c,
+0x73b,0x3c,0x3c,0x73b,0x73b,0x3c,0x73b,0x3c,0x3c,0x73b,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
+0x73b,0x73b,0x73b,0x73b,0x3c,0x73b,0x73b,0x73b,0x73b,0x73b,0x73b,0x73b,0x3c,0x73b,0x73b,0x73b,
+0x3c,0x73b,0x3c,0x73b,0x3c,0x3c,0x73b,0x73b,0x3c,0x73b,0x73b,0x73b,0x73b,0x732,0x73b,0x738,
+0x732,0x732,0x732,0x732,0x732,0x732,0x3c,0x732,0x732,0x73b,0x3c,0x3c,0x744,0x744,0x744,0x744,
+0x744,0x3c,0x741,0x3c,0x735,0x735,0x735,0x735,0x735,0x732,0x3c,0x3c,0x684,0x684,0x684,0x684,
+0x684,0x684,0x684,0x684,0x684,0x684,0x3c,0x3c,0x73e,0x73e,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,
-0x3c,0x3c,0x3c,0x3c,0x3f,0x71d,0x71d,0x3f,0x71d,0x3f,0x3f,0x71d,0x71d,0x3f,0x71d,0x3f,
-0x3f,0x71d,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x71d,0x71d,0x71d,0x71d,0x3f,0x71d,0x71d,0x71d,
-0x71d,0x71d,0x71d,0x71d,0x3f,0x71d,0x71d,0x71d,0x3f,0x71d,0x3f,0x71d,0x3f,0x3f,0x71d,0x71d,
-0x3f,0x71d,0x71d,0x71d,0x71d,0x510,0x71d,0x71a,0x510,0x510,0x510,0x510,0x510,0x510,0x3f,0x510,
-0x510,0x71d,0x3f,0x3f,0x726,0x726,0x726,0x726,0x726,0x3f,0x723,0x3f,0x513,0x513,0x513,0x513,
-0x513,0x510,0x3f,0x3f,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x675,0x3f,0x3f,
-0x720,0x720,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
+0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x777,0x777,0x777,0x77a,
+0x777,0x777,0x777,0x777,0x3f,0x777,0x777,0x777,0x777,0x77a,0x777,0x777,0x777,0x777,0x77a,0x777,
+0x777,0x777,0x777,0x77a,0x777,0x777,0x777,0x777,0x77a,0x777,0x777,0x777,0x777,0x777,0x777,0x777,
+0x777,0x777,0x777,0x777,0x777,0x77a,0x813,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x792,0x792,0x795,
+0x792,0x795,0x795,0x798,0x795,0x798,0x792,0x792,0x792,0x792,0x792,0x783,0x792,0x795,0x79b,0x79b,
+0x79e,0x780,0x79b,0x79b,0x777,0x777,0x777,0x777,0x3f,0x3f,0x3f,0x3f,0x792,0x792,0x792,0x795,
+0x792,0x792,0x8b2,0x792,0x3f,0x792,0x792,0x792,0x792,0x795,0x792,0x792,0x792,0x792,0x795,0x792,
+0x792,0x792,0x792,0x795,0x792,0x792,0x792,0x792,0x795,0x792,0x8b2,0x8b2,0x8b2,0x792,0x792,0x792,
+0x792,0x792,0x792,0x792,0x8b2,0x795,0x8b2,0x8b2,0x8b2,0x3f,0x86d,0x86d,0x810,0x810,0x810,0x810,
+0x810,0x810,0x8b5,0x810,0x810,0x810,0x810,0x810,0x810,0x3f,0x3f,0x810,0xc0f,0xc0f,0x3f,0x3f,
+0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,
-0x3f,0x3f,0x3f,0x3f,0x759,0x759,0x759,0x75c,0x759,0x759,0x759,0x759,0x42,0x759,0x759,0x759,
-0x759,0x75c,0x759,0x759,0x759,0x759,0x75c,0x759,0x759,0x759,0x759,0x75c,0x759,0x759,0x759,0x759,
-0x75c,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x759,0x75c,0x7f2,0x42,
-0x42,0x42,0x42,0x42,0x42,0x774,0x774,0x777,0x774,0x777,0x777,0x77a,0x777,0x77a,0x774,0x774,
-0x774,0x774,0x774,0x765,0x774,0x777,0x77d,0x77d,0x77d,0x762,0x77d,0x77d,0x759,0x759,0x759,0x759,
-0x42,0x42,0x42,0x42,0x774,0x774,0x774,0x777,0x774,0x774,0x88e,0x774,0x42,0x774,0x774,0x774,
-0x774,0x777,0x774,0x774,0x774,0x774,0x777,0x774,0x774,0x774,0x774,0x777,0x774,0x774,0x774,0x774,
-0x777,0x774,0x88e,0x88e,0x88e,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x88e,0x777,0x88e,0x88e,
-0x88e,0x42,0x84f,0x84f,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,0x891,0x7ef,0x7ef,0x7ef,0x7ef,0x7ef,
-0x7ef,0x42,0x42,0x7ef,0xbfa,0xbfa,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
+0x918,0x918,0x42,0x918,0x918,0x918,0x91b,0x918,0x42,0x918,0x918,0x42,0x915,0x90c,0x90c,0x90c,
+0x90c,0x915,0x90c,0x42,0x42,0x42,0x90c,0x90f,0x915,0x912,0x42,0x42,0x42,0x42,0x42,0x42,
+0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x870,0x870,0x816,0x816,0x816,0x816,
+0x918,0x918,0x918,0x918,0x918,0x918,0x915,0x915,0x90c,0x90c,0x42,0x42,0x42,0x42,0x42,0x42,
0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,
-0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x906,0x906,0x45,0x906,0x906,0x906,0x909,0x906,
-0x45,0x906,0x906,0x45,0x89d,0x894,0x894,0x894,0x894,0x89d,0x894,0x45,0x45,0x45,0x894,0x897,
-0x89d,0x89a,0x45,0x45,0x45,0x45,0x45,0x45,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,0x8f4,
-0x8f4,0x8f4,0x852,0x852,0x7f5,0x7f5,0x7f5,0x7f5,0x906,0x906,0x906,0x906,0x906,0x906,0x89d,0x89d,
-0x894,0x894,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
-0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
-0x45,0x45,0x45,0x45,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x48,0x48,0x48,0x48,0x48,0x48,
-0x48,0x48,0x48,0x48,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x97b,0x97b,0xb64,0xb64,0x2c4,
-0xb67,0x48,0x48,0x48,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,
-0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x4b,0x4b,
-0x4b,0x4b,0x4b,0x73b,0x741,0x741,0x741,0x4b,0x4b,0x4b,0x4b,0x4b,0x73e,0x73e,0x73e,0x73e,
-0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,
-0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0xb6d,0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x4e,0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0xb6d,0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,
-0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x4e,
-0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x4e,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,0x804,0x4e,0x804,0x804,0x804,0x804,0x4e,0x4e,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x4e,0x4e,0x4e,0x4e,0xc0f,
-0xb6a,0x855,0x7fe,0x7fb,0x7fb,0x7fb,0x7fb,0x7fe,0x7fe,0x801,0x801,0x801,0x801,0x801,0x801,0x801,
-0x801,0x801,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x4e,0x4e,0x4e,
-0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,
-0x807,0x807,0x807,0x807,0x807,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,
-0x54,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,
-0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,
-0x810,0x80a,0x80d,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x54,0x54,0x54,0x54,0x54,
-0x54,0x54,0x54,0x54,0x858,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,
-0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x813,0x8fd,
-0x86d,0x57,0x57,0x57,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x85b,
-0x85b,0x85b,0x816,0x816,0x816,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,
-0x5a,0x5a,0x5a,0x5a,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8ac,0x8a0,0x8ac,0x8ac,0x8a3,0x8a3,0x8a3,
-0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a3,0x8a6,0x8a9,0x861,0x861,0x8eb,0x8ee,0x85e,0x8e8,0x861,0x900,
-0x819,0xb13,0x5d,0x5d,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x8f7,0x5d,0x5d,
-0x5d,0x5d,0x5d,0x5d,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0x5d,0x5d,
-0x5d,0x5d,0x5d,0x5d,0x81c,0x81c,0x864,0x867,0x864,0x864,0x86a,0x81c,0x864,0x867,0x81c,0x8b2,
-0x8b2,0x8b2,0x8be,0x60,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x60,0x60,
-0x60,0x60,0x60,0x60,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x60,0x60,0x60,0x60,
-0x60,0x60,0x60,0x60,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,
-0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2d0,0x75f,
-0x63,0x63,0x63,0x63,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,
-0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x63,0x63,
-0x63,0x63,0x63,0x63,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x2df,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x66,0x66,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x66,0x66,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x66,0x2df,0x66,0x2df,
-0x66,0x2df,0x66,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x2df,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,
-0x2dc,0x2dc,0x66,0x66,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x2df,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x66,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2d9,0x2dc,0x2d9,0x2d9,0x2d6,0x2dc,0x2dc,0x2dc,0x66,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2d6,0x2d6,0x2d6,0x2dc,0x2dc,0x2dc,0x2dc,0x66,0x66,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x66,0x2d6,0x2d6,0x2d6,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2d6,0x2d6,0x2d6,0x66,0x66,0x2dc,0x2dc,0x2dc,0x66,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2d6,0x2d9,0x66,0xa59,0x97e,0x97e,0x97e,0x69,0x69,0x69,0x69,0x69,0x69,0x51c,0x51c,
-0x51c,0x51c,0x51c,0x51c,0x2f4,0x98d,0x6c,0x6c,0x189,0x2f4,0x2f4,0x2f4,0x2f4,0x2f4,0x2fa,0x300,
-0x2fa,0x684,0x43e,0x18c,0x2f1,0x186,0x186,0x186,0x186,0x2f1,0x2f1,0x2f1,0x2f1,0x2f1,0x2f7,0x2fd,
-0x2f7,0x681,0x43b,0x6c,0xb73,0xb73,0xb73,0xb73,0xb73,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
-0x6c,0x6c,0x6c,0x6c,0x6d2,0x6d2,0x6d2,0x6d2,0x6d2,0x6d2,0x6d2,0x6ae,0x6d5,0x6e7,0x6d2,0x795,
-0x7aa,0x903,0x903,0x903,0xa53,0xa53,0xc69,0xc69,0xc69,0xc69,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
-0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x525,0x525,0x525,0x525,
-0x525,0x525,0x525,0x525,0x525,0x525,0x525,0x525,0x525,0x522,0x522,0x522,0x522,0x525,0x8b5,0x8b5,
-0x9f6,0x9fc,0x9fc,0x9f9,0x9f9,0x9f9,0x9f9,0xc12,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
-0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x996,0x993,0x993,0x993,
-0x993,0x99c,0x999,0x999,0x999,0x999,0x990,0x993,0xb76,0x75,0x75,0x75,0x78,0x78,0x78,0x3cc,
-0x19b,0x153,0x321,0x321,0x321,0x321,0x321,0x19b,0x3cc,0x3cc,0x19b,0x321,0x327,0x327,0x327,0x831,
-0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x1a7,0x1a7,0x1a7,0x1a7,
-0x1a7,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x336,0x336,0x32d,0x32d,0x32d,0x32d,0x9a5,0x9a5,0x9a5,0x9a5,
-0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0xa9b,0xa9e,0xb7c,0xb7c,0xb7c,
-0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x2e5,0x2e5,0x2e5,0x2e5,
+0x2e5,0x2e5,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x2e2,0x2e2,0x2e2,0x2e2,
+0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,
+0x2e2,0x2e2,0x2e2,0x99c,0x99c,0xb7c,0xb7c,0x2df,0xb7f,0x45,0x45,0x45,0x756,0x756,0x756,0x756,
+0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
+0x756,0x756,0x756,0x756,0x756,0x756,0x48,0x48,0x48,0x48,0x48,0x759,0x75f,0x75f,0x75f,0x48,
+0x48,0x48,0x48,0x48,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,
+0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x48,0x48,
+0x48,0x48,0x48,0x48,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,0x825,0x4b,0x825,0x825,
+0x825,0x825,0x4b,0x4b,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x4b,0x825,0x4b,0x825,0x825,
+0x825,0x825,0x4b,0x4b,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,0x825,0x4b,0x825,0x825,
+0x825,0x825,0x4b,0x4b,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,0x825,0x4b,0x825,0x825,0x825,0x825,0x4b,0x4b,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x4b,0x825,0x4b,0x825,0x825,0x825,0x825,0x4b,0x4b,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x4b,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,
+0x825,0x4b,0x825,0x825,0x825,0x825,0x4b,0x4b,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x4b,0x4b,0x4b,0x4b,0xc24,0xb82,0x873,0x81f,0x81c,0x81c,0x81c,0x81c,0x81f,
+0x81f,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x822,0x819,0x819,0x819,0x819,0x819,0x819,
+0x819,0x819,0x819,0x819,0x819,0x4b,0x4b,0x4b,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x4e,0x4e,0x4e,
+0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x51,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
+0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
+0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x82b,0x82e,0x831,0x831,0x831,0x831,0x831,
+0x831,0x831,0x831,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x876,0x834,0x834,0x834,
+0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,
+0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x903,0x891,0x54,0x54,0x54,0x837,0x837,0x837,0x837,
+0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x879,0x879,0x879,0x837,0x837,0x837,0x57,0x57,0x57,
+0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x57,0x92d,0x92d,0x92d,0x92d,
+0x92d,0x92d,0x921,0x92d,0x92d,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x927,0x92a,
+0x87f,0x87f,0x8f1,0x930,0x87c,0x83a,0x87f,0x906,0x930,0xb5b,0x5a,0x5a,0x8fd,0x8fd,0x8fd,0x8fd,
+0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0xaa7,0xaa7,0xaa7,0xaa7,
+0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0xaa7,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x83d,0x83d,0x882,0x885,
+0x888,0x882,0x88e,0x83d,0x888,0x88b,0x83d,0x8bb,0x8bb,0x8bb,0x8c7,0x5d,0x900,0x900,0x900,0x900,
+0x900,0x900,0x900,0x900,0x900,0x900,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2e8,0x2e8,0x2e8,0x2e8,0x2eb,0x77d,0x60,0x60,0x60,0x60,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x60,0x60,0x60,0x60,0x60,0x60,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x63,0x63,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x63,0x63,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x63,0x2fa,0x63,0x2fa,0x63,0x2fa,0x63,0x2fa,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x63,0x63,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x63,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f4,0x2f7,0x2f4,0x2f4,0x2f1,0x2f7,0x2f7,
+0x2f7,0x63,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f1,0x2f1,0x2f1,0x2f7,0x2f7,0x2f7,0x2f7,
+0x63,0x63,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x63,0x2f1,0x2f1,0x2f1,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f1,0x2f1,0x2f1,0x63,0x63,0x2f7,0x2f7,
+0x2f7,0x63,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f1,0x2f4,0x63,0xa71,0x99f,0x99f,0x99f,
+0x66,0x66,0x66,0x66,0x66,0x66,0x528,0x528,0x528,0x528,0x528,0x528,0x30c,0x9ab,0x69,0x69,
+0x1a1,0x30c,0x30c,0x30c,0x30c,0x30c,0x312,0x318,0x312,0x693,0x45c,0x1a4,0x309,0x19e,0x19e,0x19e,
+0x19e,0x309,0x309,0x309,0x309,0x309,0x30f,0x315,0x30f,0x690,0x459,0x69,0xb8b,0xb8b,0xb8b,0xb8b,
+0xb8b,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x6e1,0x6e1,0x6e1,0x6e1,
+0x6e1,0x6e1,0x6e1,0x6bd,0x6e4,0x6f6,0x6e1,0x7b6,0x7cb,0x909,0x909,0x909,0xa6e,0xa6e,0xc7e,0xc7e,
+0xc7e,0xc7e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6c,0x6c,0x6c,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,
+0x531,0x52e,0x52e,0x52e,0x52e,0x531,0x8be,0x8be,0xa11,0xa17,0xa17,0xa14,0xa14,0xa14,0xa14,0xc27,
+0xd11,0xd11,0xd11,0xd11,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x9b4,0x9b1,0x9b1,0x9b1,0x9b1,0x9ba,0x9b7,0x9b7,0x9b7,0x9b7,0x9ae,0x9b1,
+0xb8e,0xca2,0xca5,0x72,0x75,0x75,0x75,0x3e7,0x1b3,0x16b,0x33c,0x33c,0x33c,0x33c,0x33c,0x1b3,
+0x3e7,0x3e7,0x1b3,0x33c,0x342,0x342,0x342,0x84f,0xca8,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x351,0x351,
+0x348,0x348,0x348,0x348,0xcae,0xcae,0xcab,0xcab,0xcab,0xcab,0xcab,0xcab,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x363,0x363,0x363,0x363,0x363,0x858,0x858,0x7b,0x7b,0x7b,0x7b,0x7b,
0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
-0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x348,0x348,0x348,0x348,0x348,0x83a,0x83a,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x366,0x7e,
0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
-0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,0x34b,
-0x34b,0x34b,0x34b,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
-0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,
-0x9b1,0x9b1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,
-0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0x84,0x84,0x84,0xaa1,0xaa1,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,
-0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f,0x84,0x84,0x84,0x84,0x84,0x84,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
-0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x87,0x35a,0x35a,0x35a,
-0x35a,0x87,0x35a,0x35a,0x35a,0x35a,0x87,0x87,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,
-0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x87,0x35a,0x35a,0x35a,
-0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,
-0x35a,0x3d2,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,
-0x87,0x35a,0x87,0x35a,0x35a,0x35a,0x35a,0x87,0x87,0x87,0x35a,0x87,0x35a,0x35a,0x35a,0x6ff,
-0x6ff,0x6ff,0x6ff,0x87,0x87,0x35a,0x54f,0x54f,0x35a,0x35a,0x35a,0x35a,0xa41,0x9e7,0xa41,0x9e7,
-0xa41,0x9e7,0xa41,0x9e7,0xa41,0x9e7,0xa41,0x9e7,0xa41,0x9e7,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
-0x1d4,0x1d4,0x1d4,0x1d4,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,
-0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x35a,0x87,0x87,0x87,0x35a,0x35a,0x35a,0x35a,
-0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x87,0x35a,0x35a,0x35a,
-0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x35a,0x87,0x8c7,0x8c7,0x8c7,0x8c7,
-0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,
-0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8a,0x8c7,0x8c7,0x8c7,0x8c7,0x8ca,0x8c7,0x8c7,0x8c7,0x8c7,
-0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8ca,
-0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8cd,0x8cd,0x8cd,0x8cd,
-0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,
-0x8cd,0x8cd,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x93,0x633,0x5a9,0x633,
-0x5a9,0x633,0x5a9,0x633,0x5a9,0x633,0x5a9,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,
-0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5ac,0x5a9,0x5a9,0x5a9,0x5a9,0x633,
-0x5a9,0x633,0x5a9,0x633,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x633,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,
-0x5ac,0xa35,0xa35,0x93,0x93,0x53d,0x53d,0x630,0x630,0x636,0x639,0xa1d,0x96,0x96,0x96,0x96,
-0x96,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,
-0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x96,0x96,0x96,
-0x99,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
-0x5b8,0x5b8,0x5b8,0x99,0x5be,0x5be,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
-0x5c1,0x5c1,0x5c1,0x5c1,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,
-0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x8dc,0x9c,0x9c,0x9c,0x9c,
-0x9c,0x9c,0x9c,0x9c,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,
-0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,
-0x5cd,0xb2e,0xb2e,0x9f,0x5c7,0x5c7,0x5c7,0x5c7,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
-0x9f,0x9f,0x9f,0x9f,0xb2b,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5ca,0x5ca,0x9f,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
-0xa2,0xa2,0xa2,0xa2,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
-0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,
-0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
-0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,
-0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0xa8,0xa8,0xa8,
+0x7e,0x7e,0x7e,0x7e,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0xab9,0xab9,
+0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
+0xb97,0x81,0x81,0x81,0xab9,0xab9,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
+0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xcb1,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x84,0x375,0x375,0x375,0x375,0x84,0x375,0x375,
+0x375,0x375,0x84,0x84,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x84,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x3ed,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x84,0x375,0x84,0x375,
+0x375,0x375,0x375,0x84,0x84,0x84,0x375,0x84,0x375,0x375,0x375,0x70e,0x70e,0x70e,0x70e,0x84,
+0x84,0x375,0x55b,0x55b,0x375,0x375,0x375,0x375,0xa5c,0xa02,0xa5c,0xa02,0xa5c,0xa02,0xa5c,0xa02,
+0xa5c,0xa02,0xa5c,0xa02,0xa5c,0xa02,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,
+0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,0x174,
+0x174,0x174,0x174,0x174,0x375,0x84,0x84,0x84,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x84,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
+0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x84,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,
+0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,
+0x8d0,0x8d0,0x87,0x8d0,0x8d0,0x8d0,0x8d0,0x8d3,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,
+0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d3,0x87,0x87,0x87,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,
+0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8a,0x8a,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x90,0x642,0x5b5,0x642,0x5b5,0x642,0x5b5,0x642,
+0x5b5,0x642,0x5b5,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,
+0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b5,0x5b5,0x5b5,0x642,0x5b5,0x642,0x5b5,0x642,
+0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x642,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b8,0xa53,0xa53,0x90,
+0x90,0x549,0x549,0x63f,0x63f,0x645,0x648,0xa38,0x93,0x93,0x93,0x93,0x93,0x5c1,0x5c1,0x5c1,
+0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,
+0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x93,0x93,0x93,0x96,0x5c4,0x5c4,0x5c4,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x96,
+0x5ca,0x5ca,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,0x5cd,
0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
-0x5dc,0x5df,0x5dc,0x5df,0x5df,0x5dc,0x5dc,0x5df,0x5df,0x5df,0x5dc,0x5dc,0x5dc,0x5dc,0xb1,0xb1,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xb1,0xb1,0xb1,0xb1,0xb1,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xc4e,0xc4e,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
-0xb1,0xb1,0xb1,0xb1,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0x36c,0xb4,0xb4,0xb4,0xb4,0xb4,
-0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x35d,0x35d,0x35d,0x35d,0x35d,0xb4,0xb4,0xb4,0xb4,
-0xb4,0x846,0x528,0x363,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x360,0x363,0x363,
-0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0xb4,0x363,0x363,0x363,0x363,
-0x363,0xb4,0x363,0xb4,0x363,0x363,0xb4,0x363,0x363,0xb4,0x363,0x363,0x363,0x363,0x363,0x363,
-0x363,0x363,0x363,0x366,0x378,0x372,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,
-0x375,0x37b,0x378,0x372,0x378,0x372,0x375,0x37b,0x378,0x372,0x378,0x372,0x375,0x37b,0x378,0x372,
-0x375,0x37b,0x378,0x372,0x378,0x372,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0x378,0x372,0x375,0x37b,0x378,
-0x372,0x378,0x372,0x378,0x372,0x378,0x378,0x372,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0x375,0x372,0x375,0x375,0x375,0x375,0x375,0x375,
-0x372,0x375,0x372,0x372,0x375,0x375,0x372,0x372,0x372,0x372,0x372,0x375,0x372,0x372,0x375,0x372,
-0x375,0x375,0x375,0x372,0x375,0x375,0x375,0x375,0xb7,0xb7,0x375,0x375,0x375,0x375,0x372,0x372,
-0x375,0x372,0x372,0x372,0x372,0x375,0x372,0x372,0x372,0x372,0x372,0x375,0x375,0x375,0x372,0x372,
-0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,
-0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x36f,0x36f,0xa50,0xaa4,0xb7,0xb7,0x52b,0x52b,0x52b,0x52b,0xba,0xba,0xba,0xba,
-0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0x5e5,0x5e8,0x5e8,0x5ee,0x5ee,0x69c,0x468,0x69c,
-0x468,0x69c,0x468,0x69c,0x468,0x69c,0x468,0x69c,0x468,0x69f,0x46b,0x69f,0x46b,0xa2c,0xa2c,0xb40,
-0xafb,0x5e2,0x5e2,0x5e2,0x5e2,0x5eb,0x5eb,0x5eb,0x471,0x5f7,0x474,0xbd,0x64b,0x64b,0x558,0x558,
-0x5f4,0x6a2,0x46e,0x6a2,0x46e,0x6a2,0x46e,0x5f1,0x5f1,0x5fa,0x5fa,0x5fd,0x5fa,0x5fa,0x5fa,0xbd,
-0x5fa,0x6f6,0x6c9,0x5f1,0xbd,0xbd,0xbd,0xbd,0x37e,0x38a,0x37e,0x9b4,0x37e,0xc0,0x37e,0x38a,
-0x37e,0x38a,0x37e,0x38a,0x37e,0x38a,0x37e,0x38a,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,
-0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x387,0x381,0x387,0x381,0x384,0x38a,0x387,0x381,0x387,
-0x381,0x387,0x381,0x387,0x381,0xc0,0xc0,0x735,0x6c0,0x6ea,0x579,0x57c,0x570,0x6ea,0x6ea,0xc6,
-0x3d5,0x3d8,0x3d8,0x3d8,0x3d8,0x3d5,0x3d5,0xc6,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,
-0xc3,0x8b8,0x8b8,0x8b8,0x7a7,0x1d7,0x14d,0x14d,0xc6,0x552,0x576,0x570,0x6ea,0x6c0,0x570,0x576,
-0x68d,0x44d,0x570,0x579,0x450,0x573,0x453,0x570,0x585,0x585,0x585,0x585,0x585,0x585,0x585,0x585,
-0x585,0x585,0x627,0x627,0x579,0x579,0x579,0x552,0x3de,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,
-0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,
-0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0xc6,0xc6,0xc6,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,
-0xc6,0xc6,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0xc6,0xc6,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,
-0xc6,0xc6,0x3db,0x3db,0x3db,0xc6,0xc6,0xc6,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,
-0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x921,
-0x921,0x921,0x921,0x921,0x921,0x921,0x921,0xc9,0x91e,0x91e,0x91e,0x91e,0xc9,0xc9,0xc9,0xc9,
-0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,
-0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x924,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,
-0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0xcf,0xcf,
-0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0xd2,
-0xd2,0xd2,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x933,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x930,0x930,0x930,0x930,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
-0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,
-0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0xd5,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x93c,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x93c,0xd5,0x93c,0x93c,0xd5,0xd5,0x93c,0xd5,0xd5,0x93c,0x93c,0xd5,
-0xd5,0x93c,0x93c,0x93c,0x93c,0xd5,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x939,0x939,
-0x939,0x939,0xd5,0x939,0xd5,0x939,0x939,0x939,0x939,0xaad,0x939,0x939,0xd5,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x939,0x939,0x939,0x939,0x93c,0x93c,0xd5,0x93c,
-0x93c,0x93c,0x93c,0xd5,0xd5,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0xd5,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0xd5,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x93c,0x93c,0xd5,0x93c,0x93c,0x93c,0x93c,0xd5,0x93c,0x93c,0x93c,0x93c,0x93c,0xd5,0x93c,0xd5,
-0xd5,0xd5,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0xd5,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0xb82,0xb82,0xd5,0xd5,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x939,0x939,0x939,0x936,0x939,0x939,0x939,0x939,0x939,0x939,0xd5,0xd5,
-0xd5,0xd5,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
-0x95a,0x95a,0x95a,0x95a,0xd8,0x951,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
-0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
-0xd8,0xd8,0xd8,0xd8,0x9ba,0x9b7,0x9ba,0x9b7,0x9ba,0x9b7,0x9ba,0x9b7,0x9ba,0x9b7,0x9ba,0x9b7,
-0x9ba,0x9b7,0x9ba,0x9b7,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
-0xdb,0xdb,0xdb,0xdb,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,
-0x9bd,0xde,0x9bd,0x9bd,0x9bd,0x9bd,0xa02,0xa02,0x9ff,0xde,0xde,0xde,0xde,0xde,0xde,0xde,
-0xde,0xde,0xde,0xde,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,
-0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0xa08,0xa08,0xa05,0x9c0,0x9c0,0xe1,0xe1,0xe1,0xe1,0xe1,
-0xe1,0xe1,0xe1,0xe1,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,
-0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0xa0b,0xa0b,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,
-0xe4,0xe4,0xe4,0xe4,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,
-0x9c9,0xe7,0x9c9,0x9c9,0x9c9,0xe7,0xa0e,0xa0e,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,
-0xe7,0xe7,0xe7,0xe7,0xb85,0xb85,0xb85,0xb85,0xb85,0xc60,0xbfd,0xea,0xea,0xea,0xea,0xea,
-0xea,0xea,0xea,0xea,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,
-0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0xa4a,0x9f0,0xa4a,0x9f0,0xa4a,0x9f0,0xea,0xea,0xea,0xea,
-0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,
-0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,
-0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0xed,0xed,0xed,
-0xb16,0xb16,0xb16,0xb1c,0xb1c,0xb1c,0xb1c,0xb16,0xb16,0xb1c,0xb1c,0xb1c,0xed,0xed,0xed,0xed,
-0xb1c,0xb1c,0xb16,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb19,0xb19,0xb19,0xed,0xed,0xed,0xed,
-0xab0,0xed,0xed,0xed,0xb25,0xb25,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,
-0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,
-0xab6,0xab6,0xf0,0xf0,0xab6,0xab6,0xab6,0xab6,0xab6,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
-0xf0,0xf0,0xf0,0xf0,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,0xad4,
-0xad4,0xad4,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xb8e,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
+0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0xb40,0xb40,0x9c,
+0x5d3,0x5d3,0x5d3,0x5d3,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,
+0xb3d,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
+0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x9c,
+0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,
+0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,
+0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,
+0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xc60,0xa2,0xa2,0xa2,0xa2,
+0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,
+0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0x8eb,0x8eb,0x8eb,0x8eb,
+0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0xa5,0xa5,0xa5,0x8ee,0x8ee,0x8ee,0x8ee,
+0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x5e8,0x5eb,0x5e8,0x5eb,
+0x5eb,0x5e8,0x5e8,0x5eb,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8,0xae,0xae,0xa44,0xa44,0xa44,0xa44,
+0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xae,
+0xae,0xae,0xae,0xae,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,
+0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xae,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0x387,0x387,0x387,0x387,0x387,0x387,0x387,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0x378,0x378,0x378,0x378,0x378,0xb1,0xb1,0xb1,0xb1,0xb1,0x864,0x534,0x37e,
+0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x37b,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,
+0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0xb1,0x37e,0x37e,0x37e,0x37e,0x37e,0xb1,0x37e,0xb1,
+0x37e,0x37e,0xb1,0x37e,0x37e,0xb1,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x381,
+0x393,0x38d,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,
+0x393,0x38d,0x390,0x396,0x393,0x38d,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,
+0x393,0x38d,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0x393,0x38d,0x390,0x396,0x393,0x38d,0x393,0x38d,0x393,
+0x38d,0x393,0x393,0x38d,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+0xb4,0xb4,0xb4,0xb4,0x390,0x38d,0x390,0x390,0x390,0x390,0x390,0x390,0x38d,0x390,0x38d,0x38d,
+0x390,0x390,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x38d,0x38d,0x390,0x38d,0x390,0x390,0x390,0x38d,
+0x390,0x390,0x390,0x390,0xb4,0xb4,0x390,0x390,0x390,0x390,0x38d,0x38d,0x390,0x38d,0x38d,0x38d,
+0x38d,0x390,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x390,0x390,0x38d,0x38d,0xb4,0xb4,0xb4,0xb4,
+0xb4,0xb4,0xb4,0xb4,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,
+0x936,0x936,0x936,0x936,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x38a,0x38a,
+0xa6b,0xabc,0xb4,0xb4,0x537,0x537,0x537,0x537,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,
+0xb7,0xb7,0xb7,0xb7,0x5f1,0x5f4,0x5f4,0x5fa,0x5fa,0x6ab,0x486,0x6ab,0x486,0x6ab,0x486,0x6ab,
+0x486,0x6ab,0x486,0x6ab,0x486,0x6ae,0x489,0x6ae,0x489,0xa47,0xa47,0xb52,0xb10,0x5ee,0x5ee,0x5ee,
+0x5ee,0x5f7,0x5f7,0x5f7,0x48f,0x603,0x492,0xba,0x65a,0x65a,0x564,0x564,0x600,0x6b1,0x48c,0x6b1,
+0x48c,0x6b1,0x48c,0x5fd,0x5fd,0x606,0x606,0x609,0x606,0x606,0x606,0xba,0x606,0x705,0x6d8,0x5fd,
+0xba,0xba,0xba,0xba,0x399,0x3a5,0x399,0x9d2,0x399,0xbd,0x399,0x3a5,0x399,0x3a5,0x399,0x3a5,
+0x399,0x3a5,0x399,0x3a5,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,
+0x3a5,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x3a2,
+0x39c,0xbd,0xbd,0x753,0x6cf,0x6f9,0x585,0x588,0x57c,0x6f9,0x6f9,0xc3,0x3f0,0x3f3,0x3f3,0x3f3,
+0x3f3,0x3f0,0x3f0,0xc3,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0x8c1,0x8c1,0x8c1,
+0x7c8,0x1ef,0x165,0x165,0xc3,0x55e,0x582,0x57c,0x6f9,0x6cf,0x57c,0x582,0x69c,0x46b,0x57c,0x585,
+0x46e,0x57f,0x471,0x57c,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x591,0x636,0x636,
+0x585,0x585,0x585,0x55e,0x3f9,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0xc3,0xc3,0xc3,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0xc3,0xc3,0x3f6,0x3f6,
+0x3f6,0x3f6,0x3f6,0x3f6,0xc3,0xc3,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0xc3,0xc3,0x3f6,0x3f6,
+0x3f6,0xc3,0xc3,0xc3,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
+0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,0x942,
+0x942,0x942,0x942,0xc6,0x93f,0x93f,0x93f,0x93f,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+0xc6,0xc6,0xc6,0xc6,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,0x945,
+0x945,0x945,0x945,0x945,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,
+0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,
+0xcc,0xcc,0xcc,0xcc,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0xcf,0xcf,0xcf,0x951,0x951,
+0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
+0x951,0x951,0x951,0x951,0x954,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
+0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
+0x951,0x951,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
+0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
+0xcf,0xcf,0xcf,0xcf,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0xd2,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95d,0xd2,0x95d,0x95d,0xd2,0xd2,0x95d,0xd2,0xd2,0x95d,0x95d,0xd2,0xd2,0x95d,0x95d,0x95d,
+0x95d,0xd2,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95a,0x95a,0x95a,0x95a,0xd2,0x95a,
+0xd2,0x95a,0x95a,0x95a,0x95a,0xac5,0x95a,0x95a,0xd2,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0xd2,0x95d,0x95d,0x95d,0x95d,0xd2,
+0xd2,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0xd2,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0xd2,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0xd2,0x95d,
+0x95d,0x95d,0x95d,0xd2,0x95d,0x95d,0x95d,0x95d,0x95d,0xd2,0x95d,0xd2,0xd2,0xd2,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0xd2,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0xb9a,0xb9a,0xd2,0xd2,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95a,0x95a,0x95a,0x957,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0xcb7,0xcb4,0xd2,0xd2,0x97b,0x97b,
+0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
+0xd5,0x972,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,
+0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5,
+0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,0x9d8,0x9d5,
+0xcbd,0xcba,0xcbd,0xcba,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,
+0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0xdb,0x9db,0x9db,
+0x9db,0x9db,0xa1a,0xa1a,0xa1d,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,
+0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,0x9de,
+0x9de,0x9de,0xa20,0xa20,0xa23,0x9ff,0x9ff,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,
+0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,0x9e1,
+0x9e1,0x9e1,0xa26,0xa26,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,
+0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0x9e4,0xe4,0x9e4,0x9e4,
+0x9e4,0xe4,0xa29,0xa29,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,
+0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xc75,0xc12,0xcc0,0xcc0,0xcc0,0xcc0,0xe7,0xe7,0xe7,0xe7,0xe7,
+0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,0x9e7,
+0x9e7,0x9e7,0xa65,0xa0b,0xa65,0xa0b,0xa65,0xa0b,0xe7,0xe7,0xe7,0xe7,0x9ea,0x9ea,0x9ea,0x9ea,
+0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0x9ea,0xacb,0xacb,0xacb,0xacb,
+0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,
+0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xacb,0xea,0xea,0xea,0xb28,0xb28,0xb28,0xb2e,
+0xb2e,0xb2e,0xb2e,0xb28,0xb28,0xb2e,0xb2e,0xb2e,0xea,0xea,0xea,0xea,0xb2e,0xb2e,0xb28,0xb2e,
+0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2b,0xb2b,0xb2b,0xea,0xea,0xea,0xea,0xac8,0xea,0xea,0xea,
+0xb37,0xb37,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb5e,0xb5e,0xb5e,0xb5e,
+0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xed,0xed,
+0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,0xed,
+0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xba6,0xba6,
+0xba6,0xba6,0xba6,0xba6,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xf0,0xf0,0xf0,0xf0,0xf0,
+0xcc3,0xcc3,0xcc3,0xcc3,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
+0xf0,0xf0,0xf0,0xf0,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
+0xf3,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
+0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xf3,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
+0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xf3,0xaef,0xaef,0xf3,0xaef,
+0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xf3,0xf3,
+0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xf3,0xf3,
0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
-0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,
-0xada,0xada,0xada,0xada,0xf6,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,
-0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xf6,0xada,0xada,0xada,0xada,
-0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xf6,
-0xada,0xada,0xf6,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,
-0xada,0xada,0xf6,0xf6,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,
-0xada,0xada,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,
-0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,
-0xf6,0xf6,0xf6,0xf6,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
-0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xf9,
-0xf9,0xf9,0xf9,0xf9,0xaf5,0xaf5,0xaf5,0xfc,0xfc,0xfc,0xfc,0xae0,0xae0,0xae0,0xae0,0xae0,
-0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,
-0xae0,0xae0,0xae0,0xae0,0xfc,0xfc,0xfc,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,
-0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xff,0xaf8,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,
-0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0xae9,0x102,0x102,
-0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0x105,0x105,0xaec,0x105,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,
-0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,
-0xaec,0xaec,0x105,0xaec,0xaec,0x105,0x105,0x105,0xaec,0x105,0x105,0xaec,0xaef,0xaef,0xaef,0xaef,
-0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
-0xaef,0xaef,0xaef,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0xb9a,0xb9a,0xb9a,0xb9a,
-0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0x111,0x111,0x111,0x111,0x111,0x111,
-0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0xba0,0xba0,0xba0,0xba0,
-0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,
-0xba0,0xba0,0xba0,0xc18,0xc18,0xc1b,0xc1b,0xc1b,0x114,0x114,0xbeb,0xb9d,0xc51,0xc51,0xc51,0xc51,
-0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0x117,0x117,0x117,0x117,
-0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0xa3b,0xa3b,0xa3b,0xa3b,
-0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xc1e,0xc1e,0xc1e,0xc1e,
-0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,
-0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,
-0xba9,0xba6,0xba9,0xba6,0xba6,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0x11d,0x11d,0x11d,0x11d,0x11d,
-0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0xbee,0xbee,0xbee,0xbee,0xba3,0xbee,0xbee,
-0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,
-0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x120,
-0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x120,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x120,
-0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x120,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x120,
-0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,
-0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0x123,0x123,0x123,0x123,0x123,0x123,
-0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,
-0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,
-0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0x129,
-0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,
-0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0x129,
-0xbc1,0xc24,0xc24,0xc24,0x12c,0xc24,0xc24,0x12c,0x12c,0x12c,0x12c,0x12c,0xc24,0xc24,0xc24,0xc24,
-0xbc1,0xbc1,0xbc1,0xbc1,0x12c,0xbc1,0xbc1,0xbc1,0x12c,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,
-0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,0xbc1,
-0x12c,0x12c,0x12c,0x12c,0xc21,0xc21,0xc21,0x12c,0x12c,0x12c,0x12c,0xc27,0xbbe,0xbbe,0xbbe,0xbbe,
-0xbbe,0xbbe,0xbbe,0xbbe,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0xbf1,0xbf1,0xbf1,0xbf1,
-0xbf1,0xbf1,0xbf1,0xbf1,0xbbe,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0xbc4,0xbc4,0xbc4,0xbc4,
-0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,
-0xbc4,0xbc4,0xbc4,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0xbca,0xbca,0xbca,0xbca,
-0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0x132,0x132,0x132,0x132,0x132,0x132,0xc2a,0xc2a,0xc2a,0xc2a,
-0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xc2a,0xbca,0xbca,0xbca,
-0xbca,0xbca,0xbca,0xbca,0xc2a,0xc2a,0x132,0x132,0x132,0x132,0x132,0x132,0xc5d,0xc5d,0xc5d,0xc5d,
-0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0x132,0x132,0x132,0x132,0xbc7,0xbc7,0xbd0,0xbd0,0xbd0,0xbd0,
-0x135,0x135,0x135,0x135,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbcd,0xbd0,0xbd0,0xbd0,
-0xbd0,0xbd0,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0xc6c,0xc6c,0xc6c,0xc6c,
-0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xc6c,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
-0xbf4,0xbf4,0xbd9,0xbf7,0x138,0x138,0x138,0x138,0xc6c,0xc6c,0x138,0x138,0x138,0x138,0x138,0x138,
-0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,
-0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0x138,0xbe2,0xbe2,0xbe2,0xbe2,
-0xbe2,0xbe2,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0xbe5,0x13e,0x13e,0x13e,0x13e,
-0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,0xa14,0xa14,0xa14,0xa14,
-0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xa14,0xc57,0xc00,0xc00,0xc57,
-0xc57,0xc45,0xc45,0xc63,0xc03,0xc54,0x141,0x141,0x141,0x141,0x141,0x141,0x144,0x144,0x144,0x144,
-0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,
-0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x747,0x747,
-0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,
-0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,
-0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x14a,0x14a,
-0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,
-0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,0x150,
-0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x156,0x960,0x960,0x960,0x960,0x960,
-0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0xaf2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x159,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,0x34e,
-0x210,0x210,0x20a,0x20a,0x3ae,0x20a,0x213,0x177,0x42c,0x177,0x177,0x177,0x42c,0x177,0x213,0x213,
-0x17a,0x216,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x174,0x174,0x174,0x174,0x20d,0x174,0x20a,0x849,
-0x17d,0x17d,0x3c3,0x2e2,0x600,0x600,0x600,0x420,0x435,0x435,0x516,0x516,0x516,0x516,0x516,0x8c1,
-0x6b4,0x6a5,0x6b7,0x6ba,0x6ab,0x6b4,0x6a8,0x6a8,0x2e2,0x6fc,0x6fc,0x17d,0x618,0x2e8,0x3c6,0x2eb,
-0x414,0x414,0x417,0x417,0x417,0x417,0x417,0x55e,0x417,0x417,0x417,0x72f,0x51f,0x51f,0x519,0x519,
-0x426,0x561,0x41a,0x423,0x408,0x180,0x183,0x2e5,0x702,0x705,0x67e,0x6fc,0x702,0x702,0x67e,0x6fc,
-0x306,0x306,0x31b,0x6bd,0x303,0x18f,0x306,0x312,0x303,0x6bd,0x315,0x31b,0x31b,0x31b,0x315,0x315,
-0x31b,0x31b,0x31b,0x195,0x303,0x31b,0x6e4,0x303,0x30f,0x31b,0x31b,0x31b,0x31b,0x31b,0x303,0x303,
-0x309,0x18f,0x192,0x303,0x31b,0x303,0x3c9,0x303,0x31b,0x30c,0x31e,0x198,0x31b,0x31b,0x30f,0x315,
-0x31b,0x31b,0x303,0x31b,0x315,0x318,0x318,0x318,0x318,0x82e,0x82b,0xa98,0xb79,0x999,0x99c,0x99c,
-0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x32a,0x32a,0x32a,0x32a,
-0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x324,0x324,0x324,0x324,0x324,0x324,
-0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x330,0x336,0x336,
-0x32d,0x32d,0x1a7,0x32d,0x1a7,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,
-0x1aa,0x339,0x1aa,0x1aa,0x33c,0x339,0x339,0x1aa,0x1aa,0x33c,0x339,0x1aa,0x33c,0x339,0x339,0x1aa,
-0x339,0x1aa,0x6db,0x6d8,0x339,0x1aa,0x339,0x339,0x339,0x339,0x1aa,0x339,0x339,0x1aa,0x1aa,0x1aa,
-0x1aa,0x339,0x339,0x1aa,0x33c,0x1aa,0x33c,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1b0,0x33f,0x1aa,0x33f,
-0x33f,0x339,0x339,0x339,0x1aa,0x1aa,0x1aa,0x1aa,0x339,0x339,0x339,0x339,0x1aa,0x1aa,0x339,0x339,
-0x339,0x33c,0x339,0x339,0x33c,0x339,0x339,0x33c,0x1aa,0x33c,0x339,0x339,0x1aa,0x339,0x339,0x339,
-0x339,0x339,0x1aa,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,
-0x1ad,0x1aa,0x33c,0x339,0x1aa,0x1aa,0x1aa,0x1aa,0x339,0x339,0x1aa,0x1aa,0x339,0x33c,0x1ad,0x1ad,
-0x33c,0x33c,0x339,0x339,0x33c,0x33c,0x339,0x339,0x33c,0x33c,0x339,0x339,0x339,0x339,0x339,0x339,
-0x33c,0x33c,0x1aa,0x1aa,0x33c,0x33c,0x1aa,0x1aa,0x33c,0x33c,0x339,0x339,0x339,0x339,0x339,0x339,
-0x339,0x339,0x339,0x339,0x339,0x1aa,0x339,0x339,0x339,0x1aa,0x339,0x339,0x339,0x339,0x339,0x339,
-0x339,0x1aa,0x339,0x339,0x339,0x339,0x339,0x339,0x33c,0x33c,0x33c,0x33c,0x339,0x339,0x339,0x339,
-0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x1aa,0x342,0x837,0x342,0x342,
-0x342,0x342,0x342,0x342,0x345,0x345,0x345,0x345,0x342,0x342,0x342,0x342,0x342,0x342,0x1b3,0x342,
-0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
-0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,
-0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,
-0x1b6,0x1b6,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,
-0x1bf,0x1bf,0x1bf,0x1bf,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,
-0x1bc,0x1bc,0x1bc,0x1bc,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x34e,0x34e,0x34e,0x34e,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,
-0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,
-0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x351,0x351,0x1c5,0x1c5,0x1c5,0x1c5,0x9ab,0x9ab,
-0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x9ab,0x1c8,0x1c8,0x354,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,
-0x1c8,0x1c8,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c8,0x1c8,0x354,0x354,0x1c8,0x1cb,
-0x354,0x354,0x354,0x354,0x1c8,0x1c8,0x354,0x354,0x1c8,0x1cb,0x354,0x354,0x354,0x354,0x1c8,0x1c8,
-0x1c8,0x354,0x354,0x1c8,0x354,0x354,0x1c8,0x1c8,0x1c8,0x1c8,0x354,0x354,0x354,0x354,0x354,0x354,
-0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c8,0x1c8,0x1c8,0x1c8,0x354,0x354,
-0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c8,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,
-0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x357,0x357,0x357,0x357,0x357,0x1ce,0x1ce,0x357,
-0x357,0x1ce,0x357,0x357,0x357,0x357,0x1ce,0x1ce,0x357,0x357,0x357,0x357,0xa5c,0xa5c,0x95d,0x95d,
-0xb7f,0x840,0x357,0x357,0x1ce,0x357,0x1ce,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x1ce,0x1ce,0x357,0x1ce,0x1ce,0x1ce,0x357,0x1ce,0x1ce,0x1ce,0x1ce,0x357,
-0x1ce,0x1ce,0x357,0x1d1,0x840,0x840,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,0x9b1,
-0x9b1,0x9b1,0xb7f,0xb7f,0x1ef,0x39c,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,
-0x1ef,0x1e6,0x1ef,0x1e6,0x1ec,0x399,0x1ef,0x39c,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x39c,
-0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x3a2,0x399,0x1ef,0x1e6,0x1ef,0x39c,0x1ef,0x1e6,0x1ef,0x1e6,
-0x1ef,0x399,0x3a5,0x39f,0x1ef,0x1e6,0x1ef,0x1e6,0x399,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x3a5,
-0x39f,0x3a2,0x399,0x1ef,0x39c,0x1ef,0x1e6,0x1ef,0x39c,0x39f,0x3a2,0x399,0x1ef,0x39c,0x1ef,0x1e6,
-0x1ef,0x1e6,0x3a2,0x399,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,
-0x1ef,0x1e6,0x3a2,0x399,0x1ef,0x1e6,0x1ef,0x39c,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,
-0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1ef,0x1e6,0x1ef,0x1e6,0x1ef,0x1e6,0x1e9,0x1f2,0x1fe,0x1fe,0x1f2,
-0x1fe,0x1f2,0x1fe,0x1fe,0x1f2,0x1fe,0x1fe,0x1fe,0x1f2,0x1f2,0x1fe,0x1fe,0x1fe,0x1fe,0x1f2,0x1fe,
-0x1fe,0x1f2,0x1fe,0x1fe,0x1fe,0x1f2,0x1f2,0x1f2,0x1fe,0x1fe,0x1f2,0x1fe,0x201,0x1f5,0x1fe,0x1f2,
-0x1fe,0x1f2,0x1fe,0x1fe,0x1f2,0x1fe,0x1f2,0x1f2,0x1fe,0x1f2,0x1fe,0x201,0x1f5,0x1fe,0x1fe,0x1fe,
-0x1f2,0x1fe,0x1f2,0x1fe,0x1fe,0x1f2,0x1f2,0x1fb,0x1fe,0x1f2,0x1f2,0x1f2,0x1fb,0x1fb,0x1fb,0x1fb,
-0x204,0x204,0x1f8,0x204,0x204,0x1f8,0x204,0x204,0x1f8,0x201,0x3a8,0x201,0x3a8,0x201,0x3a8,0x201,
-0x3a8,0x201,0x3a8,0x201,0x3a8,0x201,0x3a8,0x201,0x3a8,0x1f2,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,
-0x1fe,0x1f2,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x1f5,0x204,0x204,0x1f8,
-0x201,0x1f5,0x7b3,0x7b3,0x7b6,0x7b0,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,
-0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,0x201,0x1f5,
-0x7b6,0x7b0,0x7b6,0x7b0,0x7b3,0x7ad,0x7b6,0x7b0,0x207,0x3ab,0x207,0x207,0x207,0x207,0x207,0x207,
-0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,
-0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x7b9,0x7b9,0x7b9,
-0x7b9,0x7b9,0xa62,0xa62,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x219,0x213,0x213,0x213,
-0x213,0x213,0x213,0x213,0x219,0x219,0x219,0x219,0x219,0x20a,0x20a,0x20a,0x20a,0x20a,0x7bc,0x7bc,
-0x7bc,0x7bc,0x7bf,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,0xa65,
-0xa65,0xa65,0xa65,0xa65,0x23a,0x7c2,0x222,0x21f,0x222,0x21f,0x222,0x21f,0x222,0x21f,0x222,0x21f,
-0x222,0x21f,0x222,0x21f,0x240,0x240,0x237,0x231,0x91b,0x918,0x966,0xa6b,0xa68,0xa6e,0xa6b,0xa68,
-0xb4f,0xb52,0xb52,0xb52,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,
-0x3b7,0x3b7,0x3b7,0x3b7,0x7c8,0x3ba,0x249,0x24c,0x249,0x249,0x249,0x24c,0x249,0x249,0x249,0x249,
-0x24c,0x7c8,0x24c,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,
-0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x252,0x24c,0x24f,0x249,0x24f,0x249,
-0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,
-0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x24f,0x249,0x7ce,0x3c0,0x24f,0x252,
-0x24f,0x24f,0x24f,0x252,0x24f,0x24f,0x24f,0x24f,0x252,0x7ce,0x252,0x24f,0x3bd,0x3bd,0x3bd,0x3bd,
-0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3c0,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x282,0x27f,0x282,0x27f,
-0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x7d4,0x27f,0x27f,0x27f,0x282,
-0x54c,0x27f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x276,0x48c,0x492,0x64e,0x64e,0x64e,0x64e,
-0x64e,0x64e,0x64e,0x64e,0x64e,0x64e,0x549,0x651,0x651,0x27c,0x975,0x975,0x486,0x27f,0x27f,0x27f,
-0x27f,0x285,0x285,0x285,0x285,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x492,0x48f,0x48f,0x48f,
-0x48f,0x288,0x288,0x48f,0x48f,0x27c,0x492,0x492,0x492,0x48f,0xa77,0xa77,0x654,0x654,0x654,0x654,
-0x654,0x654,0x654,0x654,0x654,0x654,0x7d4,0x7d4,0x7d4,0x7d1,0x7d1,0xa77,0x27f,0x27f,0x27f,0x27f,
-0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,
-0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x7d4,0x7d4,0x27f,0x27f,
-0x27f,0x27f,0x27f,0x7d4,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,
-0x2ca,0x2ca,0x2ca,0x2ca,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,
-0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,0x2d3,0x2cd,
-0x2d3,0x2cd,0x2d3,0x2cd,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x2df,0x2df,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2dc,0x2df,0x2df,0x2df,0x2df,
-0x2df,0x2df,0x2df,0x2df,0x2ee,0x2e2,0x2e2,0x2e2,0x609,0x67b,0x438,0x987,0x828,0x828,0x825,0x825,
-0x825,0x825,0x981,0x981,0x981,0x981,0x98a,0xa92,0xa95,0xb70,0xbe8,0x984,0xbe8,0xbe8,0xbe8,0xbe8,
-0xb70,0xbe8,0xbe8,0x9e1,0x333,0x32d,0x32d,0x333,0x32d,0x32d,0x333,0x32d,0x32d,0x32d,0x32d,0x32d,
-0x32d,0x32d,0x336,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x3cf,0x3cf,0x32d,0x32d,
-0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x32d,0x3cf,0x32d,0x32d,0x32d,0x834,0x834,0x834,0x834,0x834,
-0x834,0x834,0x834,0x834,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,0x99f,
-0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,
-0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,0x339,
-0x33c,0x33c,0x33c,0x33c,0x339,0x339,0x339,0x339,0x339,0x339,0x33c,0x33c,0x33c,0x33c,0x339,0x339,
-0x339,0x339,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,0x9a2,
-0x345,0x345,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x693,0x459,0x342,0x342,0x342,0x342,0x342,
-0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,
-0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x342,0x837,
-0x9a8,0x837,0x837,0x837,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,
-0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,
-0x348,0x348,0x348,0x348,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,0x357,
-0x357,0x357,0x357,0x357,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,
+0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,
+0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,
+0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xf6,0xf6,0xf6,0xf6,0xf6,
+0xb0a,0xb0a,0xb0a,0xf9,0xf9,0xf9,0xf9,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,
+0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,
+0xf9,0xf9,0xf9,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf5,0xaf8,0xaf8,0xaf8,0xaf8,
+0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,
+0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xfc,0xb0d,0xafe,0xafe,0xafe,0xafe,
+0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,
+0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xff,0xff,0xb01,0xb01,0xb01,0xb01,
+0xb01,0xb01,0x102,0x102,0xb01,0x102,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,
+0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0x102,0xb01,
+0xb01,0x102,0x102,0x102,0xb01,0x102,0x102,0xb01,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,
+0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0x105,
+0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,
+0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0xbb2,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,
+0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0x10e,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,
+0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xbb8,0xc2d,
+0xc2d,0xc30,0xc30,0xc30,0x111,0x111,0xbfd,0xbb5,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,
+0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0xc66,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,
+0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,
+0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xa59,0xc33,0xc33,0xc33,0xc33,0xd14,0xd14,0xd14,0xd14,
+0xd14,0xd14,0xd14,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,
+0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x117,
+0x117,0x117,0xd14,0xd14,0xbc1,0xbbe,0xbc1,0xbbe,0xbbe,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0x11a,
+0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0xc00,0xc00,0xc00,
+0xc00,0xbbb,0xc00,0xc00,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,
+0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0x11d,0x11d,0x11d,0x11d,0x11d,
+0x11d,0x11d,0x11d,0x11d,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0x11d,0xbc4,0xbc4,0xbc4,0xbc4,
+0xbc4,0xbc4,0xbc4,0x11d,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0xbc4,0x11d,0xbc4,0xbc4,0xbc4,0xbc4,
+0xbc4,0xbc4,0xbc4,0x11d,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,
+0xbca,0xbca,0xbca,0xbca,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0x120,0x120,
+0x120,0x120,0x120,0x120,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0x123,0x123,0x123,0x123,0x123,0x123,
+0x123,0x123,0x123,0x123,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,
+0xbd3,0xbd3,0xbd3,0x126,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,
+0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,
+0xbd0,0xbd0,0xbd0,0x126,0xbd9,0xc39,0xc39,0xc39,0x129,0xc39,0xc39,0x129,0x129,0x129,0x129,0x129,
+0xc39,0xc39,0xc39,0xc39,0xbd9,0xbd9,0xbd9,0xbd9,0x129,0xbd9,0xbd9,0xbd9,0x129,0xbd9,0xbd9,0xbd9,
+0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,0xbd9,
+0xbd9,0xbd9,0xbd9,0xbd9,0x129,0x129,0x129,0x129,0xc36,0xc36,0xc36,0x129,0x129,0x129,0x129,0xc3c,
+0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
+0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xbd6,0x129,0x129,0x129,0x129,0x129,0x129,0x129,
+0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,
+0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xcc6,0xcc6,0xcc6,0xcc6,0x12c,0x12c,0x12c,0x12c,0x12c,
+0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,
+0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,0xc87,
+0xc87,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc87,0xc87,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,
+0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0x12f,0x12f,0x12f,0x12f,0xc84,0xc84,
+0xbdf,0xbdf,0xbdf,0xbdf,0x132,0x132,0x132,0x132,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,
+0xc06,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,
+0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc81,0xc09,0xc09,
+0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xbeb,0xc0c,0x135,0x135,0x135,0x135,0xc81,0xc81,0x135,0x135,
+0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
+0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,0x135,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0xbf7,
+0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,
+0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,
+0xc6c,0xc15,0xc15,0xc6c,0xc6c,0xc57,0xc57,0xc78,0xc18,0xc69,0x13e,0x13e,0x13e,0x13e,0x13e,0x13e,
+0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xd17,0xd17,0xd17,0xd17,0xd17,
+0xd17,0xd17,0xd17,0xd17,0xccf,0xccf,0xcc9,0xcc9,0xd2f,0xd29,0xcd2,0x141,0x141,0x141,0x141,0x141,
+0xd23,0xd23,0xd1a,0xd23,0xd26,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0x144,0x144,0x144,0x144,
+0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35,0xcff,0xcff,0xcf9,0xcfc,0xcff,0xcff,
+0xcf9,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,
+0xd1d,0xd1d,0xd1d,0xd1d,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0x144,0x144,0x144,
+0xce1,0xcde,0xce1,0xce1,0xce1,0xcde,0xcde,0xce1,0xcde,0xce1,0xcde,0xce1,0xcde,0x147,0x147,0x147,
+0x147,0x147,0x147,0x147,0xcde,0xce1,0xcde,0xcde,0x147,0x147,0x147,0x147,0x147,0x147,0x147,0x147,
+0xce4,0xce4,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,
+0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,
+0x14a,0x14a,0x14a,0x14a,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,
+0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xd08,0xd08,0xd2c,0xd2c,0x14d,0x14d,0x14d,0x14d,
+0x14d,0x14d,0x14d,0x14d,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,
+0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xced,0xcea,0xcea,0xcea,0xcea,0x150,0x150,
+0x150,0x150,0x150,0xd02,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,
+0xcf0,0xcf0,0xcf0,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,
+0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,
+0x153,0x153,0x153,0x153,0xcf3,0xcf3,0xcf3,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,
+0x156,0x156,0x156,0x156,0xd05,0xd05,0xd05,0xd05,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,
+0x156,0x156,0x156,0x156,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,
+0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,0x159,
+0x159,0x159,0x159,0x159,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,
+0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,
+0x15c,0x15c,0x15c,0x15c,0x15c,0x15c,0x765,0x765,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,
+0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x15f,
+0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x162,0x162,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,
+0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,
+0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x168,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,
+0x1d4,0x1d4,0x16e,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981,
+0x981,0x981,0x981,0x981,0x981,0x981,0x981,0xb07,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x171,0x369,0x369,0x369,
+0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x369,0x22b,0x22b,0x225,0x225,0x3c9,0x225,0x22e,0x18f,
+0x44a,0x18f,0x18f,0x18f,0x44a,0x18f,0x22e,0x22e,0x192,0x231,0x225,0x225,0x225,0x225,0x225,0x225,
+0x18c,0x18c,0x18c,0x18c,0x228,0x18c,0x225,0x867,0x195,0x195,0x3de,0x2fd,0x60c,0x60c,0x60c,0x43e,
+0x453,0x453,0x522,0x522,0x522,0x522,0x522,0x8ca,0x6c3,0x6b4,0x6c6,0x6c9,0x6ba,0x6c3,0x6b7,0x6b7,
+0x2fd,0x70b,0x70b,0x195,0x627,0x624,0x3e1,0x303,0x432,0x432,0x435,0x435,0x435,0x435,0x435,0x56a,
+0x435,0x435,0x435,0x74d,0x52b,0x52b,0x525,0x525,0x444,0x56d,0x438,0x441,0x423,0x198,0x19b,0x300,
+0x711,0x714,0x68d,0x70b,0x711,0x711,0x68d,0x70b,0x31e,0x31e,0x333,0x6cc,0x31b,0x1a7,0x31e,0x32a,
+0x31b,0x6cc,0x32d,0x333,0x333,0x333,0x32d,0x32d,0x333,0x333,0x333,0x1ad,0x31b,0x333,0x6f3,0x31b,
+0x327,0x333,0x333,0x333,0x333,0x333,0x31b,0x31b,0x321,0x1a7,0x1aa,0x31b,0x333,0x31b,0x3e4,0x31b,
+0x333,0x324,0x339,0x1b0,0x333,0x333,0x327,0x32d,0x333,0x333,0x336,0x333,0x32d,0x330,0x330,0x330,
+0x330,0x84c,0x849,0xab0,0xb91,0x9b7,0x9ba,0x9ba,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,
+0x1b9,0x1b9,0x1b9,0x1b9,0x345,0x345,0x345,0x345,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,
+0x1b6,0x1b6,0x33f,0x33f,0x33f,0x33f,0x33f,0x33f,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,
+0x348,0x348,0x348,0x348,0x348,0x34b,0x351,0x351,0x348,0x348,0x1bf,0x348,0x1bf,0x348,0x348,0x348,
+0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x1c2,0x354,0x1c2,0x1c2,0x357,0x354,0x354,0x1c2,
+0x1c2,0x357,0x354,0x1c2,0x357,0x354,0x354,0x1c2,0x354,0x1c2,0x6ea,0x6e7,0x354,0x1c2,0x354,0x354,
+0x354,0x354,0x1c2,0x354,0x354,0x1c2,0x1c2,0x1c2,0x1c2,0x354,0x354,0x1c2,0x357,0x1c2,0x357,0x1c2,
+0x1c2,0x1c2,0x1c2,0x1c2,0x1c8,0x35a,0x1c2,0x35a,0x35a,0x354,0x354,0x354,0x1c2,0x1c2,0x1c2,0x1c2,
+0x354,0x354,0x354,0x354,0x1c2,0x1c2,0x354,0x354,0x354,0x357,0x354,0x354,0x357,0x354,0x354,0x357,
+0x1c2,0x357,0x354,0x354,0x1c2,0x354,0x354,0x354,0x354,0x354,0x1c2,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c5,0x1c2,0x357,0x354,0x1c2,0x1c2,0x1c2,0x1c2,
+0x354,0x354,0x1c2,0x1c2,0x354,0x357,0x1c5,0x1c5,0x357,0x357,0x354,0x354,0x357,0x357,0x354,0x354,
+0x357,0x357,0x354,0x354,0x354,0x354,0x354,0x354,0x357,0x357,0x1c2,0x1c2,0x357,0x357,0x1c2,0x1c2,
+0x357,0x357,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c2,0x354,0x354,
+0x354,0x1c2,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x1c2,0x354,0x354,0x354,0x354,0x354,0x354,
+0x357,0x357,0x357,0x357,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0x1c2,0x35d,0x855,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x360,0x360,0x360,0x360,
+0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x1cb,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,
+0x35d,0x35d,0x35d,0x35d,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,
+0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,
+0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,
+0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,
+0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d4,0x1d4,0x1d4,0x1d4,
+0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1da,0x1da,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x369,0x369,0x369,0x369,
+0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,
+0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,
+0x36c,0x36c,0x1dd,0x1dd,0x1dd,0x1dd,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,
+0x1e0,0x1e0,0x36f,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,
+0x36f,0x36f,0x1e0,0x1e0,0x36f,0x36f,0x1e0,0x1e3,0x36f,0x36f,0x36f,0x36f,0x1e0,0x1e0,0x36f,0x36f,
+0x1e0,0x1e3,0x36f,0x36f,0x36f,0x36f,0x1e0,0x1e0,0x1e0,0x36f,0x36f,0x1e0,0x36f,0x36f,0x1e0,0x1e0,
+0x1e0,0x1e0,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,
+0x36f,0x36f,0x1e0,0x1e0,0x1e0,0x1e0,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x36f,0x1e0,
+0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,0x9cc,
+0x372,0x372,0x372,0x372,0x372,0x1e6,0x1e6,0x372,0x372,0x1e6,0x372,0x372,0x372,0x372,0x1e6,0x1e6,
+0x372,0x372,0x372,0x372,0xa74,0xa74,0x97e,0x97e,0xb97,0x85e,0x372,0x372,0x1e6,0x372,0x1e6,0x372,
0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,
-0x372,0x372,0x372,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,
-0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,
-0x375,0x37b,0x378,0x372,0x378,0x372,0x378,0x372,0x378,0x372,0x378,0x372,0x378,0x372,0x378,0x372,
-0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,0x375,0x37b,0x378,0x372,
-0x378,0x372,0x378,0x372,0x378,0x372,0x375,0x37b,0x375,0x37b,0x378,0x372,0x378,0x372,0x378,0x372,
-0x378,0x372,0x378,0x372,0x378,0x372,0x378,0x372,0x375,0x378,0x372,0x375,0x378,0x372,0x375,0x37b,
+0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x1e6,0x1e6,0x372,0x1e6,
+0x1e6,0x1e6,0x372,0x1e6,0x1e6,0x1e6,0x1e6,0x372,0x1e6,0x1e6,0x372,0x1e9,0x85e,0x85e,0x9cf,0x9cf,
+0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0x9cf,0xb97,0xb97,0x207,0x3b7,0x207,0x1fe,
+0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x204,0x3b4,0x207,0x3b7,
+0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x3b7,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x3bd,0x3b4,
+0x207,0x1fe,0x207,0x3b7,0x207,0x1fe,0x207,0x1fe,0x207,0x3b4,0x3c0,0x3ba,0x207,0x1fe,0x207,0x1fe,
+0x3b4,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x3c0,0x3ba,0x3bd,0x3b4,0x207,0x3b7,0x207,0x1fe,0x207,
+0x3b7,0x3ba,0x3bd,0x3b4,0x207,0x3b7,0x207,0x1fe,0x207,0x1fe,0x3bd,0x3b4,0x207,0x1fe,0x207,0x1fe,
+0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x3bd,0x3b4,0x207,0x1fe,0x207,0x3b7,
+0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x1fe,0x207,0x207,0x1fe,0x207,
+0x1fe,0x207,0x1fe,0x201,0x20a,0x216,0x216,0x20a,0x216,0x20a,0x216,0x216,0x20a,0x216,0x216,0x216,
+0x20a,0x20a,0x216,0x216,0x216,0x216,0x20a,0x216,0x216,0x20a,0x216,0x216,0x216,0x20a,0x20a,0x20a,
+0x216,0x216,0x20a,0x216,0x219,0x20d,0x216,0x20a,0x216,0x20a,0x216,0x216,0x20a,0x216,0x20a,0x20a,
+0x216,0x20a,0x216,0x219,0x20d,0x216,0x216,0x216,0x20a,0x216,0x20a,0x216,0x216,0x20a,0x20a,0x213,
+0x216,0x20a,0x20a,0x20a,0x213,0x213,0x213,0x213,0x21c,0x21c,0x210,0x21c,0x21c,0x210,0x21c,0x21c,
+0x210,0x219,0x3c3,0x219,0x3c3,0x219,0x3c3,0x219,0x3c3,0x219,0x3c3,0x219,0x3c3,0x219,0x3c3,0x219,
+0x3c3,0x20a,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x216,0x20a,0x219,0x20d,0x219,0x20d,0x219,0x20d,
+0x219,0x20d,0x219,0x20d,0x20d,0x21c,0x21c,0x210,0x219,0x20d,0x7d4,0x7d4,0x7d7,0x7d1,0x219,0x20d,
+0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,
+0x219,0x20d,0x219,0x20d,0x219,0x20d,0x219,0x20d,0x7d7,0x7d1,0x7d7,0x7d1,0x7d4,0x7ce,0x7d7,0x7d1,
+0xb61,0xb64,0xc8d,0xc90,0xc90,0xc90,0xc90,0xc8d,0xc90,0xc8d,0xc90,0xc8d,0xc90,0xc8d,0xc90,0xc8d,
+0x21f,0x3c6,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,
+0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,
+0x222,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x7da,0x7da,0x7da,
+0x7da,0x7da,0xa7a,0xa7a,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x22e,0x22e,0x22e,
+0x22e,0x22e,0x22e,0x22e,0x234,0x234,0x234,0x234,0x234,0x225,0x225,0x225,0x225,0x225,0x7dd,0x7dd,
+0x7dd,0x7dd,0x7e0,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,
+0xa7d,0xa7d,0xa7d,0xa7d,0x255,0x7e3,0x23d,0x23a,0x23d,0x23a,0x23d,0x23a,0x23d,0x23a,0x23d,0x23a,
+0x23d,0x23a,0x23d,0x23a,0x25b,0x25b,0x252,0x24c,0x93c,0x939,0x987,0xa83,0xa80,0xa86,0xa83,0xa80,
+0xb67,0xb6a,0xb6a,0xb6a,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,
+0x3d2,0x3d2,0x3d2,0x3d2,0x7e9,0x3d5,0x264,0x267,0x264,0x264,0x264,0x267,0x264,0x264,0x264,0x264,
+0x267,0x7e9,0x267,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,
+0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26d,0x267,0x26a,0x264,0x26a,0x264,
+0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,
+0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x264,0x26a,0x26d,0x267,0x26a,
+0x264,0x993,0x990,0x26a,0x264,0x993,0x990,0x26a,0x264,0x993,0x990,0xc96,0x26d,0x267,0x26d,0x267,
+0x26a,0x264,0x26d,0x267,0x26a,0x264,0x26d,0x267,0x26d,0x267,0x26d,0x267,0x26a,0x264,0x26d,0x267,
+0x7ef,0x7e9,0x26d,0x267,0x26d,0x267,0x26d,0x267,0x26d,0x267,0xb70,0xb6d,0x26d,0x267,0xc99,0xc96,
+0xc99,0xc96,0xc99,0xc96,0x7ef,0x3db,0x26a,0x26d,0x26a,0x26a,0x26a,0x26d,0x26a,0x26a,0x26a,0x26a,
+0x26d,0x7ef,0x26d,0x26a,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3db,0x3d8,0x3d8,
+0x3d8,0x3d8,0x3d8,0x3d8,0x29d,0x29a,0x29d,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x7f5,0x29a,0x29a,0x29a,0x29d,0x558,0x29a,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,
+0x4aa,0x291,0x4a7,0x4ad,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x65d,0x555,0x660,
+0x660,0x297,0x996,0x996,0x4a1,0x29a,0x29a,0x29a,0x29a,0x2a0,0x2a0,0x2a0,0x2a0,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x29a,0x4ad,0x4aa,0x4aa,0x4aa,0x4aa,0x2a3,0x2a3,0x4aa,0x4aa,0x297,0x4ad,0x4ad,
+0x4ad,0x4aa,0xa8f,0xa8f,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x663,0x7f5,0x7f5,
+0x7f5,0x7f2,0x7f2,0xa8f,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,
+0x29a,0x29a,0x29a,0x29a,0x7f5,0x7f5,0x29a,0x29a,0x29a,0x29a,0x29a,0x7f5,0x2e5,0x2e5,0x2e5,0x2e5,
+0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,
+0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2e5,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,
+0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2ee,0x2e8,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2f7,0x2f7,0x2f7,0x2f7,
+0x2f7,0x2f7,0x2f7,0x2f7,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x2fa,0x306,0x2fd,0x2fd,0x2fd,
+0x615,0x68a,0x456,0xa4a,0x8f4,0x8f4,0x846,0x846,0x846,0x846,0x9a2,0x9a2,0x9a2,0x9a2,0x9a8,0xaaa,
+0xaad,0xb88,0xbfa,0x9a5,0xbfa,0xbfa,0xbfa,0xbfa,0xb88,0xbfa,0xbfa,0x9fc,0x34e,0x348,0x348,0x34e,
+0x348,0x348,0x34e,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x351,0x348,0x348,0x348,0x348,0x348,
+0x348,0x348,0x348,0x348,0x3ea,0x3ea,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x348,0x3ea,
+0x348,0x348,0x348,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x852,0x9bd,0x9bd,0x9bd,0x9bd,
+0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x9bd,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,
+0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x354,0x357,0x357,0x357,0x357,0x354,0x354,0x354,0x354,
+0x354,0x354,0x357,0x357,0x357,0x357,0x354,0x354,0x354,0x354,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,
+0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x360,0x360,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,
+0x35d,0x6a2,0x477,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,
+0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,
+0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x35d,0x855,0x9c6,0x855,0x855,0x855,0x363,0x363,0x363,0x363,
+0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,
+0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x363,0x372,0x372,0x372,0x372,
0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,
-0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,
-0x372,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,
-0x372,0x378,0x687,0x441,0x375,0x375,0x372,0x375,0x372,0x375,0x372,0x372,0x375,0x372,0x372,0x375,
-0x372,0x375,0x372,0x372,0x375,0x372,0x375,0x375,0x372,0x372,0x372,0x375,0x372,0x372,0x372,0x372,
-0x372,0x375,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,
-0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x375,0x375,0x372,0x372,0x375,0x372,0x375,0x372,
-0x372,0x372,0x372,0x372,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
-0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x375,
-0x375,0x375,0x375,0x375,0x375,0x375,0x375,0x37b,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,
-0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x37b,0x378,0x378,0x378,
-0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x387,0x387,0x381,0x387,0x381,0x387,0x381,0x387,
-0x381,0x387,0x381,0x384,0x38a,0x387,0x381,0x387,0x381,0x384,0x38a,0x387,0x381,0x387,0x381,0x384,
-0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x387,0x381,0x387,0x381,0x387,
-0x381,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,
-0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,0x38a,0x387,0x381,0x384,
-0x38a,0x387,0x381,0x384,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,
-0x3bd,0x3bd,0x3bd,0x3bd,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3ba,0x3b7,0x3b7,
-0x3b7,0x3b7,0x3b7,0x3b7,0x9ed,0x44a,0x68a,0x444,0x447,0x61b,0x3e1,0x624,0x624,0x624,0x624,0x624,
-0x624,0x624,0x624,0x624,0x621,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,
-0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,
-0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x3e1,0x61e,0x61e,0x570,0x591,0x591,0x591,0x591,0x591,0x591,0x58b,
-0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,
-0x58b,0x58b,0x58b,0x68d,0x579,0x44d,0x57f,0x582,0x57c,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e,0x588,
-0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,0x588,
-0x588,0x588,0x588,0x68d,0x579,0x44d,0x579,0xa47,0x56d,0x462,0x465,0x59a,0x594,0x62d,0x5a0,0x5a6,
-0x696,0x45c,0x696,0x45c,0x699,0x45f,0x699,0x45f,0x696,0x45c,0x59a,0x59a,0x696,0x45c,0x696,0x45c,
-0x696,0x45c,0x696,0x45c,0x62a,0x699,0x45f,0x45f,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,
-0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,
-0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x52e,0x537,0x537,0x52e,0x531,0x531,0x534,0x8bb,0x8bb,
-0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0x8bb,0xa17,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,0xb1f,
-0xc3c,0xc3c,0xc3c,0xc3c,0xc3c,0xb28,0xb28,0xb28,0x59a,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,
-0x5a6,0x5a6,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x59d,0x5a3,0x5a3,0x5a3,0x5a3,0x5a3,0x597,0x594,
-0x8d9,0x8d9,0x8d9,0xa32,0xa2f,0xa1a,0x8d6,0x56a,0x5ac,0x5a9,0x5ac,0x633,0x5a9,0x5ac,0x5a9,0x5ac,
-0x5a9,0x5ac,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5a9,0x5ac,0x5ac,0x5a9,0x5ac,0x5ac,0x5a9,0x5ac,0x5ac,
-0x5a9,0x5ac,0x5ac,0x5a9,0x5ac,0x5ac,0x5a9,0x5a9,0xa38,0x642,0x5af,0x642,0x5af,0x642,0x5af,0x642,
-0x5af,0x642,0x5af,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,
-0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x5af,0x5b2,0x642,0x5af,0x5b2,0x5af,0x5b2,
-0x5af,0x5b2,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5b2,0x5b2,0x5af,0x5b2,0x5b2,0x5af,0x5b2,0x5b2,
-0x5af,0x5b2,0x5b2,0x5af,0x5b2,0x5b2,0x5af,0x5af,0x5af,0x5af,0x5af,0x642,0x5af,0x642,0x5af,0x642,
-0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x642,0x5af,0x5af,0x5af,0x5af,0x5af,0x5b2,0x642,0x642,0x5b2,
-0x5b2,0x5b2,0x5b2,0x63c,0x63f,0x645,0x648,0xa20,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
-0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
-0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5bb,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
-0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,
-0x5b8,0x5b8,0x5b8,0x5b8,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,0x5d0,
-0xb31,0xb31,0xc48,0x5c4,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,
-0x5c7,0x5c7,0x5c7,0x5c7,0xb2b,0xb2b,0xb2b,0xb2b,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,
-0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,
-0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,
-0x5d3,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0xb34,0xb34,0xb34,0xb34,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
+0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x393,0x393,0x393,0x393,
+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x38a,0x38a,0x38a,0x38a,0x38a,0x38a,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x396,0x393,0x38d,
+0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,
+0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x393,0x38d,0x393,0x38d,
+0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,
+0x390,0x396,0x393,0x38d,0x390,0x396,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x390,0x396,
+0x390,0x396,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,0x393,0x38d,
+0x390,0x393,0x38d,0x390,0x393,0x38d,0x390,0x396,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,
+0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x390,0x390,0x390,0x390,0x390,0x390,
+0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x38d,0x393,0x696,0x45f,0x390,0x390,0x38d,0x390,
+0x38d,0x390,0x38d,0x38d,0x390,0x38d,0x38d,0x390,0x38d,0x390,0x38d,0x38d,0x390,0x38d,0x390,0x390,
+0x38d,0x38d,0x38d,0x390,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,
+0x390,0x390,0x38d,0x38d,0x390,0x38d,0x390,0x38d,0x38d,0x38d,0x38d,0x38d,0x390,0x390,0x390,0x390,
+0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,
+0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x390,0x396,
+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
+0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
+0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,0x396,
+0x396,0x396,0x396,0x396,0x396,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,
+0x3a2,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x3a2,
+0x39c,0x39f,0x3a5,0x3a2,0x39c,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,
+0x3a5,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,
+0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,
+0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3a5,0x3a2,0x39c,0x39f,0x3d8,0x3d8,0x3d8,0x3d8,
+0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d8,0x3d2,0x3d2,0x3d2,0x3d2,
+0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d5,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0xa08,0x468,0x699,0x462,
+0x465,0x62a,0x3fc,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x633,0x630,0x3fc,0x3fc,0x3fc,
+0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,
+0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x62d,0x62d,
+0x78c,0x78c,0xc1b,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,
+0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0xd0b,0x49e,0x49e,0x49e,0x429,0x49e,
+0x57c,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,
+0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x597,0x69c,0x585,0x46b,0x58b,0x58e,
+0x588,0x59a,0x59a,0x59a,0x59a,0x59a,0x59a,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,
+0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x69c,0x585,0x46b,0x585,0xa62,
+0x579,0x480,0x483,0x5a6,0x5a0,0x63c,0x5ac,0x5b2,0x6a5,0x47a,0x6a5,0x47a,0x6a8,0x47d,0x6a8,0x47d,
+0x6a5,0x47a,0x5a6,0x5a6,0x6a5,0x47a,0x6a5,0x47a,0x6a5,0x47a,0x6a5,0x47a,0x639,0x6a8,0x47d,0x47d,
+0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,
+0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,0x53a,
+0x543,0x543,0x53a,0x53d,0x53d,0x540,0x8c4,0x8c4,0x8c4,0x8c4,0x8c4,0x8c4,0x8c4,0x8c4,0x8c4,0xa32,
+0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xb31,0xc4e,0xc4e,0xc4e,0xc4e,0xc5a,0xb3a,0xb3a,0xb3a,
+0x5a6,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x546,0x546,0x546,0x546,0x546,0x546,
+0x5a9,0x5af,0x5af,0x5af,0x5af,0x5af,0x5a3,0x5a0,0x8e2,0x8e2,0x8e2,0xa50,0xa4d,0xa35,0x8df,0x576,
+0x5b8,0x5b5,0x5b8,0x642,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b8,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,
+0x5b8,0x5b8,0x5b5,0x5b8,0x5b8,0x5b5,0x5b8,0x5b8,0x5b5,0x5b8,0x5b8,0x5b5,0x5b8,0x5b8,0x5b5,0x5b5,
+0xa56,0x651,0x5bb,0x651,0x5bb,0x651,0x5bb,0x651,0x5bb,0x651,0x5bb,0x5bb,0x5be,0x5bb,0x5be,0x5bb,
+0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,
+0x5be,0x5bb,0x5be,0x651,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5be,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,
+0x5be,0x5be,0x5bb,0x5be,0x5be,0x5bb,0x5be,0x5be,0x5bb,0x5be,0x5be,0x5bb,0x5be,0x5be,0x5bb,0x5bb,
+0x5bb,0x5bb,0x5bb,0x651,0x5bb,0x651,0x5bb,0x651,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x5bb,0x651,0x5bb,
+0x5bb,0x5bb,0x5bb,0x5bb,0x5be,0x651,0x651,0x5be,0x5be,0x5be,0x5be,0x64b,0x64e,0x654,0x657,0xa3b,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
+0x5c7,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,
+0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5dc,0x5dc,0x5dc,0x5dc,
+0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,
+0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0xb43,0xb43,0xc5d,0x5d0,0x5d3,0x5d3,0x5d3,0x5d3,
0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,
-0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0xb34,
+0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0x5d3,0xb3d,0xb3d,0xb3d,0xb3d,
0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,
-0x5d6,0x5d6,0xb34,0xb34,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
-0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,
-0x5d9,0x5d9,0x5d9,0x5d9,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,
-0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,
-0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5df,0x5df,0x5dc,0x5df,0x5dc,0x5df,0x5df,0x5dc,0x5dc,0x5dc,
-0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5df,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,
-0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,
-0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,
-0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,
-0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x744,0x741,0x741,0x741,0x741,0x741,0x741,0x741,
-0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,
-0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x750,0x750,0x750,0x750,
-0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,
-0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x74a,0x74a,0x753,0x753,0x753,0x753,
-0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,
-0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x74d,0x74d,0x750,0x750,0x750,0x750,
-0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,
-0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x753,0x753,0x753,0x753,
-0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,
-0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x753,0x759,0x768,0x768,0x768,
-0x768,0x756,0x768,0x768,0x78c,0x768,0x768,0x762,0x789,0x786,0x786,0x786,0x786,0x786,0x78c,0x756,
-0x783,0x756,0x756,0x756,0x77d,0x77d,0x756,0x756,0x756,0x756,0x756,0x756,0x78f,0x78f,0x78f,0x78f,
-0x78f,0x78f,0x78f,0x78f,0x78f,0x78f,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
-0x762,0x77d,0x756,0x77d,0x756,0x77d,0x792,0x76b,0x792,0x76b,0x780,0x780,0x798,0x798,0x798,0x798,
-0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,
-0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x798,0x79b,0x79b,0x79b,0x79b,
-0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,
-0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79b,0x79e,0x79e,0x79e,0x79e,
-0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,
-0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x79e,0x7a1,0x7a4,0x7a4,0x7a4,
-0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,
-0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a1,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,
-0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,0x7a4,
-0x7a4,0x7a4,0x7a4,0x7a4,0x963,0xa5f,0x7b3,0x7ad,0x7b3,0x7ad,0x7b6,0x7b0,0x7b6,0x7b0,0x7b6,0x7b0,
-0x7b6,0x7b0,0x7b6,0x7b0,0x7b6,0x7b0,0x7b6,0x7b0,0xa5f,0xa5f,0xa5f,0xb49,0xb49,0xb49,0xb4c,0xb4c,
-0xb49,0xb4c,0xb4c,0xb49,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,0x7e3,
-0x7e3,0xa7a,0xa7a,0xa7a,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,0x87c,
-0x87c,0x87c,0x87c,0x87c,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,
-0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,0x7e6,
-0x7e6,0x7e6,0x7e6,0x7e6,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xb6d,
-0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,
-0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,
+0x5d6,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,0xa3e,
+0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,
+0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,
+0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0xb46,
+0xb46,0xb46,0xb46,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,
+0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,
+0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0xb46,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,
+0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,
+0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0x5e2,0xb46,0xb46,0x5e5,0x5e5,0x5e5,0x5e5,
+0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,
+0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e5,0x5e8,0x5e8,0x5e8,0x5e8,
+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,
+0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5eb,0x5eb,
+0x5e8,0x5eb,0x5e8,0x5eb,0x5eb,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x5eb,
+0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
+0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,
+0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,
+0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,0x75c,
+0x762,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,0x75f,
+0x75f,0x75f,0x75f,0x75f,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x76e,0x76e,0x768,0x768,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x76b,0x76b,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,0x76e,
+0x76e,0x76e,0x76e,0x76e,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,0x771,
+0x771,0x771,0x771,0x771,0x777,0x786,0x786,0x786,0x786,0x774,0x786,0x786,0x7ad,0x786,0x786,0x780,
+0x7aa,0x7a7,0x7a7,0x7a7,0x7a7,0x7a7,0x7ad,0x774,0x7a4,0x774,0x774,0x774,0x79b,0x79b,0x774,0x774,
+0x774,0x774,0x774,0x774,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x774,0x774,
+0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x780,0x79b,0x774,0x79b,0x774,0x79b,0x7b3,0x789,
+0x7b3,0x789,0x7a1,0x7a1,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,
+0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,
+0x7b9,0x7b9,0x7b9,0x7b9,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,
+0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,0x7bc,
+0x7bc,0x7bc,0x7bc,0x7bc,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,
+0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,0x7bf,
+0x7bf,0x7bf,0x7bf,0x7bf,0x7c2,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,
+0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,
+0x7c2,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,
+0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x7c5,0x984,0xa77,0x7d4,0x7ce,
+0x7d4,0x7ce,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,0x7d7,0x7d1,
+0xa77,0xa77,0xa77,0xb61,0xb61,0xb61,0xb64,0xb64,0xb61,0xb64,0xb64,0xb61,0x804,0x804,0x804,0x804,
+0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0xa92,0xa92,0xa92,0x8a0,0x8a0,0x8a0,0x8a0,
+0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x807,0x807,0x807,0x807,
0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,
-0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,
-0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,0x810,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,0x816,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x822,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
-0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,0x81f,
+0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x807,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0xb85,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0xb85,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,
+0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x825,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,
+0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
+0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,
+0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x831,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,
-0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,
-0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,
-0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,
-0x90f,0x90f,0x90f,0x912,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,
-0x90f,0x90f,0x90f,0x90f,0x90c,0x90c,0x8ac,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8a0,0x8ac,0x8ac,
-0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,
-0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,0x8c7,
-0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,
-0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,0x8cd,
-0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,0x8df,
-0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,
-0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8f1,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,
-0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,
-0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e2,0x8e5,0x8e5,0xa26,0xa26,0x8e5,0x8e5,0x8e5,0x8e5,
-0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0xa26,0x8e5,0x8e5,0x8e5,
-0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,
-0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,
-0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x906,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,
-0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,
-0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x90f,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0xaaa,0xaaa,
-0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,
-0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0x927,0xaa7,0xaa7,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0x92a,0x92a,0x92a,0x92a,
-0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,
-0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92d,0x92d,0x92d,0x92d,
-0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,
-0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x930,0x930,0x930,0x930,
+0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x843,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,
+0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,
+0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,0x855,
+0x855,0x855,0x855,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,
+0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,
+0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x861,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,
+0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,
+0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d0,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,
+0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,
+0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8d6,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,
+0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,
+0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8e8,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
+0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8f7,0x8eb,0x8eb,
+0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
+0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,0x8eb,
+0x8ee,0x8ee,0xa41,0xa41,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,
+0x8ee,0x8ee,0x8ee,0x8ee,0xa41,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,0x8ee,
+0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,
+0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,0x918,
+0x930,0x930,0x930,0x933,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
+0x930,0x930,0x930,0x930,0x91e,0x91e,0x92d,0x921,0x921,0x921,0x921,0x921,0x921,0x921,0x92d,0x92d,
0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x933,0x933,
-0x933,0x933,0x933,0x933,0x933,0x942,0x948,0x94e,0x94e,0x94e,0x930,0x930,0x930,0x94b,0x945,0x945,
-0x945,0x945,0x945,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x94e,0x94e,0x94e,0x94e,0x94e,
-0x94e,0x94e,0x94e,0x930,0x930,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x930,0x930,0x930,0x930,
0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x94e,0x94e,0x94e,0x94e,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,
-0x930,0x930,0x930,0x933,0x933,0x933,0x933,0x933,0x93c,0x936,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x936,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x936,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x936,0x939,0x939,0x939,0x939,0x939,0x939,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x936,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,
-0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,
-0x93c,0x93c,0x93c,0x93c,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
+0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0xac2,0xac2,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,
+0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,0x948,
+0x948,0x948,0xabf,0xabf,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
+0xafb,0xafb,0xafb,0xafb,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,
+0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,0x94b,
+0x94b,0x94b,0x94b,0x94b,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,
+0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,0x94e,
+0x94e,0x94e,0x94e,0x94e,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
-0x951,0x951,0x951,0x951,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,
-0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x954,
-0x954,0x954,0x954,0x954,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,0x957,
-0x957,0x957,0x957,0x957,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x951,0x951,0x951,0x951,0x951,0x951,0x954,0x954,0x954,0x954,0x954,0x954,0x954,0x963,0x969,0x96f,
+0x96f,0x96f,0x951,0x951,0x951,0x96c,0x966,0x966,0x966,0x966,0x966,0x960,0x960,0x960,0x960,0x960,
+0x960,0x960,0x960,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x96f,0x951,0x951,0x96f,0x96f,0x96f,
+0x96f,0x96f,0x96f,0x96f,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,
+0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x96f,0x96f,0x96f,0x96f,0x951,0x951,
+0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x954,0x954,0x954,0x954,0x954,
+0x95d,0x957,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x957,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x957,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x957,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x957,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
+0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,
+0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95d,0x95a,0x95a,
0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,
-0x95a,0x95a,0x95a,0x95a,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,
-0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0xa3e,0x9e4,0xa56,0x9a8,0x9a5,0x9a5,0x9a5,0x9a5,
-0x9a5,0x9a5,0x9a5,0x9a5,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,
-0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,
-0x9d2,0x9d2,0x9d2,0x9d2,0x9d5,0x9d5,0x9d5,0xa44,0x9ea,0xa4d,0x9f3,0xa44,0x9ea,0xa44,0x9ea,0xa44,
-0x9ea,0xa44,0x9ea,0xa44,0x9ea,0xa44,0x9ea,0xa44,0x9ea,0xa44,0x9ea,0xa44,0x9ea,0x9d5,0x9d5,0x9d5,
-0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
-0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
-0xa44,0x9ea,0xa44,0x9ea,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
-0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,
-0xa44,0x9ea,0x9d5,0x9d5,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9de,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9de,0x9de,0x9de,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,0x9d8,
-0x9d8,0x9d8,0x9d8,0x9d8,0x9db,0x9d8,0x9d8,0x9d8,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,
-0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xa29,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,
-0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,
-0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xab9,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xabf,0xabf,
-0xabf,0xabf,0xabf,0xabc,0xad1,0xad1,0xad1,0xacb,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xacb,0xad1,0xad1,0xad1,0xad1,0xac5,0xac5,0xace,0xace,0xace,0xace,0xac2,0xac2,
-0xac2,0xac2,0xac2,0xac8,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,
-0xb88,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xacb,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,0xad1,
-0xad1,0xad1,0xad1,0xad1,0xad1,0xac5,0xac5,0xac5,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,
-0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,
-0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xac8,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,
-0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
+0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95a,0x95d,0x95d,0x95d,0x95d,0x972,0x972,0x972,0x972,
+0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,
+0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x975,0x975,0x975,0x975,
+0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,
+0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,
+0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x978,0x97b,0x97b,0x97b,0x97b,
+0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,
+0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x97b,0x9c6,0x9c6,0x9c6,0x9c6,
+0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,
+0x9c3,0x9c3,0x9c3,0x9c6,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,
+0x9c3,0x9c3,0x9c3,0xab3,0xab6,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,
+0xcae,0xcae,0xcae,0xcae,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
+0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,
+0x9ed,0x9ed,0x9ed,0x9ed,0x9f0,0x9f0,0x9f0,0xa5f,0xa05,0xa68,0xa0e,0xa5f,0xa05,0xa5f,0xa05,0xa5f,
+0xa05,0xa5f,0xa05,0xa5f,0xa05,0xa5f,0xa05,0xa5f,0xa05,0xa5f,0xa05,0xa5f,0xa05,0x9f0,0x9f0,0x9f0,
+0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,
+0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,
+0xa5f,0xa05,0xa5f,0xa05,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,
+0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,
+0xa5f,0xa05,0x9f0,0x9f0,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,
+0x9f9,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,
+0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,
+0x9f3,0x9f3,0x9f3,0x9f3,0x9f9,0x9f9,0x9f9,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,
+0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,0x9f3,
+0x9f3,0x9f3,0x9f3,0x9f3,0x9f6,0x9f3,0x9f3,0x9f3,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
+0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,
+0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,
+0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,
+0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xace,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xad4,0xad4,
+0xad4,0xad4,0xad4,0xad1,0xae6,0xae6,0xae6,0xae0,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
+0xae6,0xae6,0xae6,0xae0,0xae6,0xae6,0xae6,0xae6,0xada,0xada,0xae3,0xae3,0xae3,0xae3,0xad7,0xad7,
+0xad7,0xad7,0xad7,0xadd,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,
+0xba0,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
+0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae0,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
+0xae6,0xae6,0xae6,0xae6,0xae6,0xada,0xada,0xada,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,
-0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,
-0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
-0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,
-0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xaef,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,
-0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb22,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
-0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,
-0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb91,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
-0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb94,0xb94,0xb94,
-0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
-0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,
-0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xb97,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,
-0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,
-0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xba9,0xba6,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,
-0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,
-0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbb5,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,
-0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,
-0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbbb,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,
-0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,
-0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,
-0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,
-0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,
+0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xadd,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,
+0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,
+0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaec,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,
+0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,
+0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
+0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,
+0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xafb,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,
+0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,
+0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb04,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,
+0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,
+0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,
+0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,
+0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,
+0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbac,0xbac,0xbac,
+0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,
+0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,
+0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbaf,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,
+0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,
+0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbc1,0xbbe,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,
+0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,
+0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,
0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,
-0xbd3,0xbd3,0xbd3,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,
-0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,
-0xbd6,0xbd6,0xbd6,0xbd6,0xbdf,0xbdf,0xc36,0xbdf,0xbdf,0xbdf,0xc33,0xbdf,0xbdf,0xbdf,0xbdf,0xc2d,
+0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,
0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,
-0xbdf,0xbdf,0xbdf,0xbdf,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,
-0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,0xbe2,
-0xbe2,0xbe2,0xbe2,0xbe2,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,
-0xc4e,0xc4e,0xc4e,0xc4e,0x820,0x840,0x860,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x880,0x8a0,0,0,0,0,0,0,0,0,0,0x8c0,
-0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,
-0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,0x8e0,
-0x8e0,0x900,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,
-0x920,0x920,0x920,0x920,0x920,0x920,0x940,0x960,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,
+0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbdf,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,
+0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,
+0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbe2,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,
+0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,0xbe5,
+0xbe5,0xbe5,0xbe5,0xbe8,0xbe8,0xbe8,0xbe8,0xbe8,0xbf1,0xbf1,0xc48,0xbf1,0xbf1,0xbf1,0xc45,0xbf1,
+0xbf1,0xbf1,0xbf1,0xc3f,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,
+0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf1,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,
+0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xbf4,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,
+0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,
+0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,
+0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,
+0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xc8a,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,
+0xd32,0xd32,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,
+0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xccc,0xd1a,0xd1a,0xd1a,0xd1a,0xd20,0xcd8,0xcdb,0xcd8,
+0xcdb,0xcd8,0xcdb,0xcd8,0xcdb,0xcd8,0xcdb,0xcd8,0xcd8,0xcd8,0xcdb,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,
+0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,0xcd8,
+0xd1d,0xd20,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd23,0xd1a,0xd23,0xd20,0xd20,0xce7,0xce7,0xce7,0xce7,
+0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,
+0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xce7,0xcf0,0xcf0,0xcf0,0xcf0,
+0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,
+0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf3,0xcf3,0xcf3,0xcf3,
+0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,
+0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0xcf3,0x820,0x840,0x860,0,
+0,0,0,0,0x880,0x8a0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x8c0,0x8e0,0,0,
+0,0,0,0,0,0,0,0x900,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,
0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,
-0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x960,0,0,0,0,
+0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x920,0x940,0x960,0x960,0x960,0x960,0x960,0x960,
+0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x980,0x9a0,
+0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,
+0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,
+0x960,0x960,0x960,0x9a0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x8c0,0x980,0x9a0,0x9a0,0x9a0,
+0,0,0,0x900,0x9c0,0x9e0,0x9e0,0x9e0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x9c0,0x9c0,0x9c0,0x9c0,
-0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,
-0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9c0,0x9e0,
-0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,
+0,0,0,0,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,
0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,
-0xa00,0xa00,0xa00,0xa20
+0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa00,0xa20,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,
+0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa60
};
static const UTrie propsVectorsTrie={
propsVectorsTrie_index,
NULL,
utrie_defaultGetFoldingOffset,
- 2624,
- 13700,
+ 2688,
+ 14236,
0,
TRUE
};
-static const uint32_t propsVectors[3183]={
-0,0,0,0,0x800000,0,0x200,0,0,0x400,0,0,0x480,0,0,0x500,
-0,0,0x580,0,0,0x600,0,0,0x680,0,0,0x700,0,0,0x780,0,
-0,0x800,0,0,0x880,0,0,0x900,0,0,0x980,0,0,0xa00,0,0,
-0xa80,0,0,0xb00,0,0,0xb80,0,0,0xc00,0,0,0xc80,0,0,0xd00,
-0,0,0xd80,0,0,0xe00,0,0,0xe80,0,0,0xf00,0,0,0xf80,0,
-0,0x1000,0,0,0x1080,0,0,0x1100,0,0,0x1180,0,0,0x1200,0,0,
-0x1280,0,0,0x1300,0,0,0x1380,0,0,0x1400,0x800000,0,0x1480,0,0,0x1500,
-0,0,0x1580,0,0,0x1600,0,0,0x1680,0,0,0x1800,0,0x4000000,0x1880,0,
-0x4000000,0x1900,0,0x4000000,0x1b80,0,0x4000000,0x1c00,0,0x4000000,0x1d00,0,0,0x1d80,0,0,
-0x1e00,0,0,0x1f00,0,0,0x2000,0,0,0x2080,0,0,0x2180,0,0,0x2200,
-0,0,0x2300,0,0,0x2380,0,0,0x2400,0,0,0x2480,0,0,0x2500,0,
-0,0x2780,0,0,0x2800,0,0,0x2880,0,0,0x2900,0,0,0x2a00,0,0,
-0x2a80,0,0,0x2b00,0x800000,0,0x2b80,0,0,0x2c00,0,0,0x2c80,0,0,0x2d80,
-0,0,0x2e00,0,0,0x2e80,0,0,0x3000,0x800000,0,0x3080,0,0,0x3100,0,
-0,0x3180,0,0,0x3200,0,0,0x3280,0,0,0x3300,0,0x4000000,0x3780,0,0,
-0x3800,0,0,0x3980,0,0x4000000,0x3a80,0,0,0x3b00,0,0,0x3b80,0,0,0x3c00,
-0,0,0x3d00,0,0,0x3d80,0,0,0x3e00,0,0,0x3f00,0,0,0x3f80,0,
-0,0x4000,0,0,0x4080,0,0,0x4100,0,0,0x4180,0,0,0x4200,0,0,
-0x4280,0,0,0x4300,0,0,0x4380,0,0,0x4400,0,0,0x4480,0,0,0x4500,
-0,0,0x4580,0,0,0x4600,0,0,0x4700,0,0x4000000,0x4780,0,0,0x4800,0,
-0,0x4880,0,0,0x28000,0,0,0x2af00,0,0,0x2af80,0,0,0x11002b00,0x810000,0,
-0x1100a700,0,0,0x11041680,0x80000000,6,0x11041980,0x80000000,3,0x11041a00,0x80000000,0x4000000,0x11041c00,0x80000000,0,0x11048100,
-0x80000000,6,0x11048100,0x80000000,0xf,0x11048100,0x80000000,0x4000000,0x11048100,0x80000080,0x4000000,0x11048100,0x80001000,2,0x11048100,0x90003000,
-0x1000,0x11048119,0xf8000400,0x1040f,0x11048300,0x80001000,2,0x11048300,0xf8001400,0x18400,0x11048300,0xf8003400,0x18400,0x11049400,0x80000000,0x4000000,
-0x11049400,0x80000008,0x4000000,0x11049400,0x80000080,0x4000000,0x11049480,0x80000000,0xe,0x11049480,0x80000000,0xf,0x11049499,0xf8000400,0x1040f,0x11049600,
-0x80000000,2,0x11049600,0x80000000,0xf,0x11049600,0xf8000480,0x10405,0x11049619,0xf8000400,0x28401,0x11049680,0x80000000,6,0x11049680,0xf8000400,
-0x10402,0x11049680,0xf8000400,0x28402,0x11049700,0x80000000,0x4000000,0x11049700,0x80000080,0x4000000,0x11049780,0x80000080,0x4000000,0x11049780,0x80000080,0x4000001,
-0x11049780,0x80000080,0x4000002,0x11049800,0x80000000,0x4000000,0x11049980,0x80000000,2,0x11049980,0x80000000,3,0x11049980,0x80000400,0x10403,0x11049980,
-0x80000400,0x28403,0x11049a00,0x80000000,0x4000000,0x11049a80,0x80000000,0x4000000,0x11049b00,0x80000000,0x4000000,0x11049b00,0x80000080,0x4000000,0x11049b80,0x80000000,
-0x4000000,0x11049b80,0x80000080,0x4000000,0x11049c00,0x80000000,0,0x1104ab00,0x80000000,0,0x11080100,0x80000000,0x4000000,0x11080100,0xf8000400,0x10402,
-0x11080119,0xf8000400,0x10401,0x11080119,0xf8000400,0x28401,0x11080199,0xf8000400,0x10401,0x11080199,0xf8000400,0x10402,0x11080199,0xf8000400,0x28400,0x11080199,
-0xf8000400,0x28401,0x11080219,0xf8000400,0x10400,0x11080219,0xf8000400,0x10401,0x11080219,0xf8000400,0x10402,0x11080219,0xf8000400,0x18400,0x11080219,0xf8000400,
-0x28400,0x11080219,0xf8000400,0x28401,0x11080219,0xf8000400,0x28402,0x11080299,0xf8000400,0x10400,0x11080300,0x80001000,0,0x11080300,0x80001000,2,
-0x11080300,0xf8001400,0x10400,0x11080300,0xf8001400,0x18400,0x11080300,0xf8003400,0x18400,0x11080319,0xf8001400,0x1040f,0x11080400,0x80000040,1,0x11080407,
-0xf8000400,0x10400,0x11080407,0xf8000400,0x28400,0x1108040e,0x80001000,0,0x1108040e,0x80001000,1,0x1108040e,0x80001000,2,0x1108040e,0xe0001400,
-0x10402,0x1108040e,0xf8000400,0x10400,0x1108040e,0xf8000400,0x10401,0x1108040e,0xf8000400,0x10402,0x1108040e,0xf8000400,0x28400,0x1108040e,0xf8000400,0x28401,
-0x1108040e,0xf8000480,0x10402,0x1108040e,0xf8000480,0x28402,0x11080488,0x80000000,0,0x11080488,0xf8000400,0x10400,0x11080488,0xf8000400,0x10401,0x11080488,
-0xf8000400,0x28400,0x11080488,0xf8000400,0x28401,0x11080503,0x80000000,0,0x11080503,0x80000000,0x1024000,0x11080503,0xf8000400,0x10400,0x11080503,0xf8000400,
-0x10402,0x11080503,0xf8000400,0x28400,0x11080503,0xf8001400,0x18400,0x11080593,0x80000000,0,0x11080593,0x80000000,0x1000,0x11080593,0x80000000,0x18400,
-0x11080593,0x80000040,0,0x11080593,0xf8000400,0x18400,0x11080600,0x800000,0xc820,0x11080600,0xf8002400,0x18400,0x11080602,0x80000000,0,0x11080602,
-0xf8000400,0x18400,0x11080602,0xf8000400,0x18401,0x11080602,0xf8000400,0x18402,0x11080602,0xf8001400,0x18400,0x11080780,0x80000000,0,0x1108078a,0xf8000400,
-0x18400,0x1108078a,0xf8000400,0x18401,0x11080804,0x80000000,0,0x11080804,0xf8000400,0x18400,0x11080804,0xf8000400,0x18401,0x11080890,0xf8000400,0x18400,
-0x11080890,0xf8000400,0x18401,0x1108090f,0xf8000400,0x18400,0x1108099f,0x80000000,0,0x1108099f,0xf8000400,0x18400,0x1108099f,0xf8000400,0x18401,0x11080a23,
-0x80000000,0,0x11080a23,0xf8000400,0x18400,0x11080a23,0xf8000400,0x18401,0x11080aa4,0xf8000400,0x18400,0x11080b15,0xf8000400,0x18400,0x11080b9a,0xf8000400,
-0x18400,0x11080ca6,0x80000000,0,0x11080e80,0x80000000,0,0x11080e8c,0xf8000400,0x18400,0x11080e8c,0xf8000400,0x28400,0x11081319,0xf8000400,0x10401,
-0x11081319,0xf8000400,0x10402,0x11081319,0xf8000400,0x28401,0x1108138e,0x80001000,1,0x1108138e,0x80001000,2,0x1108138e,0xf8000400,0x10401,0x1108138e,
-0xf8000400,0x28401,0x11081400,0x80000000,0x4000000,0x11081400,0x80000000,0x4000002,0x11081400,0x80000040,0x5024000,0x11081400,0xd0000000,0x1c00,0x11081400,0xd0000080,
-0x1c00,0x11081480,0x80000000,0xe,0x11081480,0x80000000,0xf,0x11081480,0x80000080,0xe,0x11081480,0x80000080,0xf,0x11081480,0x80000088,0xe,
-0x11081480,0x80000088,0xf,0x11081600,0x80000000,0,0x11081600,0x80000000,2,0x11081600,0x80000000,0xf,0x11081600,0x80000080,0,0x11081600,
-0xf8000000,0,0x11081600,0xf8000400,0x28402,0x11081600,0xf8000480,0x10405,0x11081600,0xf8000480,0x18402,0x11081600,0xf8000480,0x28405,0x11081619,0xf8000400,
-0x28401,0x11081680,0x80000000,6,0x11081680,0xf8000400,0x10402,0x11081680,0xf8000400,0x18400,0x11081680,0xf8000400,0x28402,0x11081700,0x80000000,0x4000000,
-0x11081700,0x80000000,0x4000001,0x11081700,0x80000080,0x4000000,0x11081700,0x80000080,0x4000001,0x11081780,0x80000080,0x4000000,0x11081780,0x80000080,0x4000001,0x11081780,
-0x80000080,0x4000002,0x11081800,0x80000000,0x4000000,0x11081800,0x80000080,0x4000000,0x11081880,0x80000000,0x4000000,0x11081900,0x80000000,0x4000000,0x11081a00,0x80000000,
-0x4000000,0x11081a80,0x80000000,0x4000000,0x11081b00,0x80000000,0x4000000,0x11081b80,0x80000000,0x4000000,0x11081c00,0x80000000,0x4000000,0x11082803,0xf8000400,0x10402,
-0x11082813,0x80000080,5,0x11082813,0xf8000400,0x18401,0x11082813,0xf8000400,0x18402,0x11082813,0xf8000400,0x18405,0x11082819,0xf8000400,0x10402,0x11082882,
-0xe0000400,0x18408,0x11082882,0xf8000400,0x18404,0x11082882,0xf8000400,0x18407,0x11082882,0xf8000400,0x18408,0x11082882,0xf8000400,0x18409,0x11082a82,0xe0000400,
-0x18408,0x11082a82,0xf8000400,0x18404,0x11082a82,0xf8000400,0x18407,0x11082a82,0xf8000400,0x18408,0x11082a82,0xf8000400,0x18409,0x11088100,0x80000000,0x4000000,
-0x11088119,0xf8000400,0x10400,0x11088119,0xf8000400,0x10401,0x11088119,0xf8000400,0x28400,0x11088199,0xf8000400,0x10400,0x11088199,0xf8000400,0x10401,0x11088199,
-0xf8000400,0x10402,0x11088199,0xf8000400,0x28400,0x11088199,0xf8000400,0x28402,0x11088219,0xf8000400,0x10401,0x11088299,0xf8000400,0x10400,0x11088300,0x80001000,
-0,0x1108840e,0xf8000400,0x10400,0x1108840e,0xf8000400,0x28400,0x11088488,0xf8000400,0x10400,0x11088488,0xf8000400,0x10401,0x11088488,0xf8000400,0x28400,
-0x11088488,0xf8000400,0x28401,0x11089400,0x80000000,0x4000000,0x11089400,0x80000000,0x4000002,0x1108960e,0xf8000400,0x28401,0x11089680,0x80000000,6,0x11089700,
-0x80000000,0x4000000,0x11089c00,0x80000000,0x4000000,0x11092b80,0x80000000,0xa,0x11092b80,0x80000080,0xa,0x11092b92,0xf8000400,0x1840a,0x11092b92,0xf8800400,
-0x1840a,0x11092b96,0xf8000400,0x18c0a,0x110a0080,0x80000000,0x4000000,0x110a0080,0x80000080,0x4000000,0x110a0080,0x80001000,0x4000000,0x110a0080,0x80001080,0x4000000,
-0x110a0080,0xd0000000,0x1c00,0x110a0099,0xf8000400,0x10400,0x110a0099,0xf8000400,0x28400,0x110a0099,0xf8000700,0x10400,0x110a0099,0xf8000700,0x28400,0x110a0100,
-0x80000000,0x4000000,0x110a0100,0x80000080,0x4000000,0x110a0100,0x80001000,2,0x110c9400,0x80000008,0x4000000,0x11100080,1,0x8020020,0x11100780,0x80000040,
-0x1024000,0x11100ca6,0x80000040,0,0x11101400,0x80000001,0x20001,0x11101400,0x80000001,0x20002,0x11101400,0x80000008,0x4000000,0x11108100,0x800010,0xc820,
-0x11109400,0x80000000,0x4001000,0x11109400,0x80000008,0x4000000,0x11109400,0x80000018,0x4000000,0x11120080,0x80000080,0x4000000,0x11140300,0xf8001400,0x18400,0x11148100,
-0x80001000,2,0x11180080,1,0x8020020,0x11181400,1,0x801c020,0x11201400,0x80000000,0x4008000,0x11201480,0x80000080,0x800e,0x11201480,0x80000080,
-0x800f,0x11202880,0x80000000,0x4008000,0x11212b80,0x80000020,0x800a,0x11212b80,0x80000040,0xa,0x11212b80,0x80000040,0x102400a,0x1121ab80,0x80000000,0x8011,
-0x1121ab80,0x80000040,0x11,0x1121ab80,0x80000040,0x1024011,0x11220080,0x80000000,0x4008000,0x11229800,0x80000000,0x4008001,0x11229e80,0x80000000,0x4008000,0x11229e80,
-0x80000020,0x4008000,0x11229e80,0x80000040,0x4000000,0x11229e80,0x80000040,0x5024000,0x1122a980,0x80000000,0x8010,0x1122a980,0x80000020,0x8010,0x1122aa00,0x80000000,
-0x800c,0x1122aa00,0x80000040,0xc,0x1122aa00,0x80000040,0x102400c,0x11240080,1,0x8020020,0x11240080,0x800000,0x20,0x11240100,0x800000,0x20,
-0x11240488,0x50021000,0x60,0x11240593,0x50021400,0x60,0x11240601,0x50020400,0x60,0x11240601,0x50021400,0x60,0x11240602,0x20000,0x60,0x11240602,
-0x50020400,0x60,0x11240602,0x50021000,0x60,0x1124078a,0x50020400,0x60,0x1124078a,0x50021000,0x60,0x1124078a,0x50061000,0x60,0x1124078a,0xd0000400,
-0x18400,0x11240804,0x50020400,0x60,0x11240804,0x50021000,0x60,0x11240804,0x50061000,0x60,0x11240804,0xd0000400,0x18400,0x11240804,0xd0000400,0x18401,
-0x11240890,0x50020400,0x60,0x11240890,0x50021000,0x60,0x11240890,0x50061000,0x60,0x11240890,0xd0000400,0x18400,0x1124090f,0x50020400,0x60,0x1124090f,
-0x50021000,0x60,0x1124090f,0x50061000,0x60,0x1124090f,0xd0000400,0x18400,0x1124099f,0x50020400,0x60,0x1124099f,0x50021000,0x60,0x1124099f,0x50061000,
-0x60,0x1124099f,0xd0000400,0x18400,0x1124099f,0xd0000400,0x18401,0x11240a23,0x50020400,0x60,0x11240a23,0x50061000,0x60,0x11240a23,0xd0000400,0x18400,
-0x11240a23,0xd0000400,0x18401,0x11240aa4,0x50020400,0x60,0x11240aa4,0x50020400,0x61,0x11240aa4,0x50061000,0x60,0x11240aa4,0xd0000400,0x18400,0x11240b15,
-0x50020400,0x60,0x11240b15,0x50061000,0x60,0x11240b15,0xd0000400,0x18400,0x11240b15,0xd0000400,0x18401,0x11240b9a,0x50020400,0x60,0x11240b9a,0x50061000,
-0x60,0x11240b9a,0xd0000400,0x18400,0x11240b9a,0xd0000400,0x18401,0x11240ca6,0x50020400,0x60,0x11240ca6,0x50021000,0x60,0x11240ca6,0x50060400,0x60,
-0x11240d18,0x50020400,0x60,0x11240d18,0x50021000,0x60,0x11241400,0x800000,0xc820,0x11241400,0x800000,0x800c820,0x11241400,0x1800000,0xc820,0x11241401,
-0x820000,0x60,0x11241581,0x20000,0x60,0x11241581,0x50020080,0x60,0x11242813,0x50021400,0x60,0x11242901,0x50021000,0x60,0x11248381,0x50021000,
-0x60,0x11248381,0x50021000,0x61,0x11248381,0x50021400,0x60,0x11248381,0x51021000,0x61,0x11269e81,0x50021000,0x60,0x11269f01,0x50021000,0x60,
-0x11280080,1,0x801c040,0x112c0600,0x80000040,0,0x112c0600,0x80000040,0x1024000,0x112c0602,0x80000000,0,0x112c0602,0x80000040,0x1024000,0x112c1c00,
-0x80000000,0x4000000,0x112dab80,0x80000040,0x1024011,0x112e0080,0x80000040,0x5024000,0x112eaa00,0x80000040,0x102400c,0x11300100,0x80000001,0x1840b,0x11301400,0x80000001,
-0x2000b,0x11301400,0x80000018,0x400000b,0x11308381,0x50021000,0x60,0x11360080,0x80000018,0x4000000,0x11381e80,0x80000000,0,0x11399e80,0x80000001,0x20011,
-0x1139ab80,0x80000000,0x11,0x1139ab80,0x80000018,0x11,0x1139ab80,0x80000020,0x11,0x1139ab80,0x80000080,0x11,0x1139ab80,0x80001000,0x11,0x1139ab80,
-0x80001080,0x11,0x1139ab80,0xd0000000,0x1c11,0x1139ab80,0xd0000100,0x11,0x1139ab99,0xf8000400,0x10411,0x1139ab99,0xf8000400,0x28411,0x1139ab99,0xf8000500,
-0x10411,0x1139ab99,0xf8000500,0x28411,0x113a9e80,0x80000000,0,0x113a9e80,0x80000000,2,0x113a9e80,0x80000000,0x4000000,0x113a9e80,0x80000008,0x4000000,
-0x113a9e80,0xf8000c00,0x18000,0x113a9e80,0xf8002400,0x18c00,0x113a9e91,0xf8000c00,0x18000,0x113a9f14,0xf8000400,0x18000,0x113a9f14,0xf8000400,0x18001,0x113a9f96,
-0xf8000400,0x18c00,0x113a9f96,0xf8000400,0x18c01,0x113aa005,0xf8000400,0x18400,0x113aa092,0xf8000400,0x18402,0x113aa092,0xf8800400,0x18402,0x113aa100,0x80000000,
-0,0x113aa100,0x80000000,0xf,0x113aa200,0x80000000,0,0x113aa200,0x80000000,2,0x113aa200,0x80000000,3,0x113aa212,0x80000000,2,
-0x113aa212,0x80000000,3,0x113aa280,0x80000000,2,0x113aa280,0x80000000,0xd,0x113aa391,0xf8400c00,0x18000,0x113aa791,0xf8000c00,0x18001,0x113aa791,
-0xf8400c00,0x18000,0x113aa980,0x80000000,2,0x113aa980,0x80000000,0x10,0x113aa980,0x80000008,0x10,0x113aa980,0xd0000000,0x1c02,0x113aa980,0xd0000000,
-0x1c10,0x113aaa00,0x80000000,0xc,0x113aaa00,0x80000008,0xc,0x113aaa00,0x80000040,0xc,0x113aaa00,0x80000080,0xc,0x113aaa00,0x80000098,0xc,
-0x113c9400,0x80000000,0x4000002,0x11400400,0x80000040,0x1401,0x11400500,0x80000040,0x1025400,0x11401400,0x80000080,0x4001400,0x11420080,0x80000040,0x4001000,0x11420080,
-0x80000040,0x4001400,0x11420080,0x80000040,0x5005400,0x11440080,1,0x801c0a0,0x11481400,0x80000040,0x5024002,0x11492b80,0x80000010,0xa,0x11492b80,0xf0001400,
-0x18c0a,0x11492b80,0xf8003400,0x18c0a,0x11492b96,0xf8000400,0x18c0a,0x1149ab80,0x80000040,0x11,0x114a9e80,0x80000008,0x4000000,0x114a9e91,0xf8002400,0x18400,
-0x114a9f00,0xe0001000,0xc02,0x114a9f14,0xf8000400,0x18000,0x114a9f14,0xf8002400,0x18000,0x114a9f14,0xf8002400,0x18001,0x114a9f80,0x80000010,0,0x114a9f80,
-0xf8003400,0x18c00,0x114a9f96,0xf8000400,0x18c00,0x114a9f96,0xf8002400,0x18c00,0x114a9f96,0xf8002400,0x18c01,0x114aaa00,0x80000040,0xc,0x114c0600,0xd0000000,
-0x15800,0x114c0602,0x80000000,0x15800,0x114c0602,0xd0000000,0x15800,0x114c078a,0xd0000000,0x15800,0x114c0804,0xd0000000,0x15800,0x114c0890,0xd0000000,0x15800,
-0x114c090f,0xd0000000,0x15800,0x114c099f,0xd0000000,0x15800,0x114c0a23,0xd0000000,0x15800,0x114c0aa4,0xd0000000,0x15800,0x114c0b15,0xd0000000,0x15800,0x114c0b9a,
-0xd0000000,0x15800,0x114c0ca6,0xd0000000,0x15800,0x114c0d18,0xd0000000,0x15800,0x114e0080,0xd0000300,0x15800,0x11501400,0x80000000,0x4008000,0x11501400,0x80000020,
-0x4008000,0x11501480,0x80000080,0x800e,0x11501480,0x80000080,0x800f,0x11502880,0x80000000,0x4008000,0x11512b80,0x80000020,0x800a,0x1151ab80,0x80000000,0x8011,
-0x11520080,0x80000000,0x4008000,0x11529800,0x80000000,0x4008001,0x11529e80,0x80000000,0x4008000,0x11529e80,0x80000020,0x4008000,0x1152a980,0x80000000,0x8010,0x1152a980,
-0x80000020,0x8010,0x1152aa00,0x80000000,0x800c,0x11541400,0x80000000,0x4000000,0x11541400,0x80000000,0x4000002,0x11541400,0x80000080,0x4000002,0x11541500,0x80000000,
-0,0x11548100,0x80000000,0x4000000,0x11549400,0x80000000,0x4000000,0x11549400,0x80000080,0x4000000,0x11549400,0x80000080,0x4000002,0x11549600,0x80000000,2,
-0x1155ab80,0x80000000,0x11,0x11560080,0x80000000,0x4000000,0x11560100,0x80000000,0x4000000,0x1156aa00,0x80000000,0xc,0x11580804,0x80000000,0,0x11580c80,
-0x80000000,0,0x11581500,0x80000000,0,0x11581500,0x80000000,2,0x11581780,0x80000080,0x4000000,0x11581780,0x80000088,0x4000000,0x11588100,0x80000000,
-0x4000000,0x11588100,0x80000080,0x4000000,0x11589600,0x80000000,2,0x11591500,0x80000000,0,0x1159ab80,0x80000000,0x11,0x115a0080,0x80000000,0x4000000,
-0x115a0080,0x80000080,0x4000000,0x115a0100,0x80000000,0x4000000,0x115aaa00,0x80000000,0xc,0x115c0100,0x80000020,0x4008000,0x115c1400,0x80000020,0x4008000,0x115c1c00,
-0x80000000,0x4008000,0x115c9400,0x80000020,0x4008000,0x115c9400,0x80000020,0x4009000,0x115e0080,0x80000020,0x4008000,0x115e0080,0x80000020,0x4009000,0x11600ca6,0xf0000400,
-0x18002,0x11600ca6,0xf8000400,0x18000,0x11600ca6,0xf8002400,0x18000,0x11600ca6,0xfc000400,0x18000,0x11600d18,0xf0000400,0x18002,0x11600d18,0xf8000400,0x18000,
-0x11600d18,0xf8000400,0x18002,0x11600d18,0xf8002400,0x18000,0x11600d18,0xfc000400,0x18000,0x116a0080,0x80000001,0x8020000,0x116e0080,0x80000000,0x4000000,0x11701400,
-0x800000,0xc820,0x11740100,1,0x801c020,0x11782a80,0x800000,0xc820,0x11868f12,0xf8000400,0x18480,0x11868f12,0xf8800400,0x18480,0x11880f12,0xf8000400,
-0x18500,0x118c0f12,0xf8000400,0x18520,0x118c0f12,0xf8800400,0x18520,0x20000000,0x810000,0,0x20003680,0x810000,0,0x20003700,0x810000,0,
-0x2000b680,0,0,0x2000b700,0,0,0x20080da7,0x80000000,0,0x20080da7,0xf8000400,0x18400,0x20080da7,0xf8000400,0x18401,0x20081319,
-0xf8000400,0x10401,0x20100da7,0x80000000,0,0x20100da7,0xd0000400,0x18400,0x20140da7,0x80000000,0,0x20200da7,0x80000000,0x8000,0x20240593,0x50021000,
-0x60,0x20240593,0x50021400,0x60,0x20240da7,0x50020400,0x60,0x20240da7,0x50020400,0x61,0x20240da7,0x50020400,0x62,0x20240da7,0x50021000,0x60,
-0x20240da7,0xd0001000,0,0x202c0da7,0x80000000,0,0x202c0da7,0x80000040,0,0x20300da7,0x80000000,0xb,0x20300da7,0x80000040,0,0x204c0da7,
-0xd0000000,0x15800,0x20500da7,0x80000000,0x8000,0x20581500,0x80000000,0,0x20642580,0x800000,0,0x20642600,0x800000,0,0x20642680,0x800000,
-0,0x207ea512,0xf8000400,0x184c1,0x2082a512,0xf8000400,0x184e1,0x211c2b00,0x80000000,0,0x21589500,0x80000000,0,0x30080219,0xf8000400,0x10400,
-0x30080219,0xf8000400,0x10401,0x30080219,0xf8000400,0x28400,0x30080219,0xf8000400,0x28401,0x30080299,0xf8000400,0x10400,0x30080300,0x80001000,0,0x30080300,
-0xf8001400,0x18400,0x3008040e,0xf8000400,0x10400,0x30080488,0xf8000400,0x10400,0x30080488,0xf8000400,0x10401,0x30080488,0xf8000400,0x28400,0x30080488,0xf8000400,
-0x28401,0x30080602,0x80000000,0,0x30080602,0xf8000400,0x18400,0x300806a2,0x800000,0xc820,0x300806a2,0x80000000,0,0x300806a2,0x80000040,0,
-0x300806a2,0x80000040,0x1024000,0x300806a2,0xf8000400,0x18400,0x30080725,0xf8000400,0x18400,0x30080c21,0x80000000,0,0x30080c21,0xf8000400,0x18400,0x30080da7,
-0x80000000,0,0x30080da7,0xf8000400,0x18400,0x30080e1c,0x80000000,0,0x30080f8b,0x80000000,0,0x30080f8b,0x80000040,0,0x30080f8b,0x80000040,
-0x1024000,0x30080f8b,0xd0000000,0,0x30080f8b,0xf8000400,0x18400,0x30081006,0xf8000400,0x18400,0x300810a8,0x80000040,0,0x300810a8,0x80000040,0x1024000,
-0x300810a8,0xf8000400,0x18400,0x3008111d,0xf8000400,0x18400,0x300811a0,0xf8000400,0x18400,0x30081217,0xf8000400,0x18400,0x3008129b,0x80000000,0,0x3008129b,
-0xf8000400,0x18400,0x3008129b,0xf8002400,0x18400,0x30081400,0x80000000,0x4000000,0x30081400,0x80000040,0x5024002,0x30081600,0x80000000,0,0x30081600,0xf8000400,
-0x10405,0x30081680,0xf8000400,0x18400,0x30081700,0x80000000,0x4000000,0x30081800,0x80000000,0x4000000,0x30081880,0x80000000,0x4000000,0x30081b00,0x80000000,0x4000000,
-0x30081b80,0x80000000,0x4000000,0x30081cae,0x80000000,0x4000000,0x30082813,0xf8000400,0x18401,0x30088300,0x80001000,0,0x30100503,0x80000018,0,0x30100da7,
-0x80000000,0,0x30100e1c,0x80000040,0x1024000,0x30100f8b,0x80000040,0,0x3010111d,0x80000001,0x20000,0x30101180,0x80000040,0,0x30101217,0x80000000,
-0,0x30101217,0x80000040,0,0x3010129b,0x80000040,0,0x3010129b,0x80000040,0x1024000,0x3014129b,0x80000018,0,0x3020111d,0x80000000,0x8000,
-0x30240488,0x20000,0x60,0x30240601,0x50020400,0x60,0x302406a2,0x50020400,0x60,0x302406a2,0x50021000,0x60,0x302406a2,0x50021400,0x60,0x30240725,
-0x50021400,0x60,0x30240c21,0x50020400,0x60,0x30240c21,0x50061000,0x60,0x30240c21,0xd0000400,0x18400,0x30240c21,0xd0000400,0x18401,0x30240da7,0x50020400,
-0x60,0x30240da7,0x50021000,0x60,0x30240e1c,0x50020400,0x60,0x30240e1c,0x50021000,0x60,0x30240e1c,0x50061000,0x60,0x30240e1c,0xd0000400,0x18400,
-0x30241217,0x50020400,0x60,0x30241217,0x50021000,0x60,0x30241217,0x50061000,0x60,0x30241217,0x51021000,0x60,0x30241217,0xd0000400,0x18400,0x3024129b,
-0x50020400,0x60,0x3024129b,0x50820000,0x2000060,0x30241581,0x20000,0x60,0x30242b00,0,0xc820,0x30248381,0x50021000,0x60,0x3030129b,0x80000001,
-0x20000,0x30301400,0x80000001,0x2000b,0x30308381,0x50021000,0x60,0x303a9d11,0x80200000,0,0x303a9d11,0x80200000,2,0x303a9d91,0x80200000,2,
-0x303a9e00,0x80080000,0,0x303a9e00,0x80100000,0,0x303a9e80,0x80000000,0,0x303a9e91,0xf8000c00,0x18002,0x303aa185,0xf8000400,0x18400,0x303aa311,
-0xf8400c00,0x18000,0x303aa429,0xf8000400,0x18400,0x303aa4a9,0x80000000,0,0x30481217,0x80000000,0,0x30481217,0x80000040,0,0x30481217,0xf8000400,
-0x18400,0x304aa429,0xf8002400,0x18400,0x304c0e1c,0xd0000000,0x15800,0x304c1217,0xd0000000,0x15800,0x304c129b,0xd0000000,0x15800,0x3050111d,0x80000000,0x8000,
-0x30581217,0x80000000,0,0x30581500,0x80000000,0,0x30600e1c,0xf8000400,0x18400,0x30600e1c,0xf8000400,0x18401,0x30601217,0x800000,0xc820,0x30601217,
-0xf8000400,0x18400,0x30601217,0xf9000400,0x18400,0x31002880,0x810000,0,0x3108040e,0xf8000480,0x10402,0x3108040e,0xf8000480,0x28402,0x31082c1e,0x80000000,
-0,0x31082c1e,0xf8000400,0x18400,0x31082c8d,0xf8000400,0x18400,0x31082d09,0xf8000400,0x10400,0x31082d09,0xf8000400,0x28400,0x31082d80,0x80000000,0,
-0x31082e00,0x80000000,0,0x31082e00,0x80000000,1,0x31082e80,0x80000080,5,0x31082e80,0xf8000480,0x10405,0x31082e80,0xf8000480,0x28405,0x31242e00,
-0x800000,0xc820,0x31242e00,0x50020000,0x60,0x31242e00,0x50021000,0x60,0x31242e00,0xd0000000,0,0x31242e00,0xd0001000,0,0x31242e01,0x50021000,
-0x60,0x31243000,0x800000,0xc820,0x313aaf11,0xf8400c00,0x18000,0x313aaf91,0xf8000c00,0x18001,0x314c2e80,0xd0000080,0x15805,0x32041b80,0x80000000,0x4000000,
-0x32049980,0x80000000,0,0x32080219,0xf8000400,0x28400,0x3208040e,0x80000080,0,0x3208040e,0xf8000400,0x10400,0x3208040e,0xf8000400,0x28400,0x32080488,
-0xf8000400,0x10400,0x32080488,0xf8000400,0x28400,0x32080602,0xf8000400,0x18400,0x32080725,0xf8000400,0x18400,0x32080e8c,0xf8000400,0x18400,0x32081400,0x800080,
-0xc820,0x32081400,0x80000000,0x4000000,0x32081400,0x80000000,0x4000002,0x32081400,0x80000040,0x5024002,0x32081400,0x80000080,0x4000000,0x32081499,0xf8000400,0x1040f,
-0x32081600,0x80000000,0,0x32081600,0x80000080,0,0x32081600,0x80000080,5,0x32081600,0xf8000480,0x10405,0x32081600,0xf8000480,0x28405,0x32081700,
-0x80000080,0x4000000,0x32081780,0x80000080,0x4000000,0x32081800,0x80000000,0x4000000,0x32081800,0x80000080,0x4000000,0x32081a80,0x80000000,0x4000000,0x32081b00,0x80000080,
-0x4000000,0x32081b80,0x80000000,0x4000000,0x32082a82,0xf8000400,0x18400,0x32083088,0xf8000400,0x10400,0x32083088,0xf8000400,0x28400,0x3208312a,0xf8000400,0x18400,
-0x32083180,0x80000000,0,0x320831ab,0xf8000400,0x18400,0x3208322c,0xf8000400,0x18400,0x320832ad,0xf8000400,0x18400,0x32083300,0x80000080,0x4000000,0x32083380,
-0x80000080,0x4000000,0x32083400,0x80000080,0x4000000,0x32083480,0x80000080,0x4000000,0x32083500,0x80000080,0x4000000,0x32083500,0x80000080,0x4000001,0x32083500,0x80000080,
-0x4000002,0x32101400,0x80000001,0x20002,0x32201800,0x80000000,0x4008000,0x32201c00,0x80000000,0x4008000,0x32203480,0x80000080,0x4008000,0x3221ab80,0x80000000,0x8011,
-0x32223300,0x80000080,0x4008000,0x32223480,0x80000080,0x4008000,0x32241581,0x20000,0x60,0x32241581,0x50020000,0x60,0x32241581,0x50020080,0x60,0x3224312a,
-0x50020000,0x60,0x3224312a,0x50020400,0x60,0x322431ab,0x50020000,0x60,0x322431ab,0x50020400,0x60,0x3224322c,0x50020400,0x60,0x322432ad,0x50020400,
-0x60,0x32248381,0x50020000,0x60,0x3224b601,0x50820000,0x2000060,0x32308381,0x50860000,0x60,0x323a9e80,0x80000000,0,0x323a9f14,0xf8000400,0x18010,
-0x323a9f96,0xf8000400,0x18c10,0x323aa200,0x80000000,3,0x323aa4a9,0x80000000,0,0x323aa791,0xf8000400,0x18401,0x323aa980,0x80000000,0x4000000,0x324a9e80,
-0xf8000400,0x18400,0x324a9e91,0xf8000400,0x18400,0x324a9f14,0xf8000400,0x18000,0x324a9f80,0x80000008,0xc00,0x324ab596,0xf8000400,0x18c00,0x32501800,0x80000000,
-0x4008000,0x32501c00,0x80000000,0x4008000,0x32503480,0x80000080,0x4008000,0x3251ab80,0x80000000,0x8011,0x32523300,0x80000080,0x4008000,0x32523480,0x80000080,0x4008000,
-0x32542882,0x80000000,8,0x32581500,0x80000000,0,0x325c1800,0x80000000,0x4008000,0x32781400,0x800000,0xc820,0x40049b80,0x80000000,0x4000000,0x40080219,
-0xf8000400,0x10400,0x40080299,0xf8000400,0x10400,0x40080300,0x80001000,0,0x4008040e,0xf8000400,0x10400,0x4008040e,0xf8000400,0x28400,0x4008040e,0xf8000400,
-0x28402,0x40080600,0x800000,0xc820,0x40080602,0x80000000,0,0x40080602,0xf8000400,0x18400,0x400806a2,0xf8000400,0x18400,0x4008078a,0xf8000400,0x18400,
-0x40080804,0xf8000400,0x18400,0x4008090f,0xf8000400,0x18400,0x4008099f,0xf8000400,0x18400,0x40080a23,0x80000000,0,0x40080b15,0xf8000400,0x18400,0x40081217,
-0x80000000,0,0x40081400,0x80000008,0x4000000,0x40081400,0xd0000000,0x1c00,0x40081600,0x80000000,2,0x40081800,0x80000000,0x4000000,0x40081800,0x80000080,
-0x4000000,0x40081b80,0x80000000,0x4000000,0x40082880,0x80000000,0,0x40082d09,0xf8000400,0x10400,0x40082d09,0xf8000400,0x28400,0x40082e80,0xf8000480,0x10405,
-0x400837b0,0x80000000,0,0x400837b0,0xf8000400,0x18400,0x40083834,0xf8000400,0x18400,0x40083897,0x80000000,0,0x40083908,0xf8000400,0x10400,0x4008390e,
-0xf8000400,0x10400,0x4008390e,0xf8001400,0x1040e,0x4008390e,0xf8001400,0x1040f,0x40083919,0xf8000400,0x10400,0x40083919,0xf8001400,0x10400,0x40083919,0xf8001400,
-0x1040e,0x40083919,0xf8001400,0x1040f,0x40083980,0x80000000,0x4000000,0x40083a00,0x80000000,0,0x40083ab1,0xf8000400,0x18400,0x40083b31,0xf8000400,0x18400,
-0x40083b80,0x80000000,0,0x40083c35,0xf8000400,0x18400,0x40083cb3,0xf8000400,0x18400,0x40083d32,0xf8000400,0x18400,0x40083daf,0xf8000400,0x18400,0x40083e00,
-0x80000000,0,0x40089980,0x80000000,0,0x40103b80,0x80000000,0,0x40103c35,0x80000000,0,0x4022a980,0x80000000,0x8010,0x40240602,0x50020400,
-0x60,0x40240602,0x50021000,0x60,0x40240602,0x50021400,0x60,0x40240890,0x50020400,0x60,0x40240890,0xd0000400,0x18400,0x4024090f,0x50020400,0x60,
-0x40240b15,0x50021000,0x60,0x40241217,0x50021000,0x60,0x402437b0,0x50020400,0x60,0x402437b0,0x50021000,0x60,0x402437b0,0xd0000400,0x18400,0x40248381,
-0x50021000,0x60,0x4024be81,0x50820000,0x2000060,0x402c37b0,0x80000040,0x1024000,0x40308381,0x50021000,0x60,0x403aa200,0x80000000,0xd,0x403aa212,0x80000000,
-2,0x403aa212,0x80000000,3,0x403aa280,0x80000000,0xd,0x40400602,0x80000000,0x1400,0x404c37b0,0xd0000000,0x15800,0x404c3d32,0xd0000000,0x15800,
-0x4052a980,0x80000000,0x8010,0x4058090f,0x80000000,0,0x40580a23,0x80000000,0,0x41080219,0xf8000400,0x10400,0x41080219,0xf8000400,0x28400,0x4108040e,
-0xf8000400,0x10400,0x4108040e,0xf8000400,0x28400,0x41080488,0xf8000400,0x10400,0x41080488,0xf8000400,0x28400,0x4108078a,0xf8000400,0x18400,0x41080804,0xf8000400,
-0x18400,0x41080a23,0xf8000400,0x18400,0x41080e8c,0xf8000400,0x18400,0x41080e8c,0xf8000400,0x1840f,0x41080f8b,0x80000000,0,0x41080f8b,0xf8000400,0x18400,
-0x41081400,0x80000000,0x4000000,0x41081499,0xf8000400,0x1040e,0x41081600,0x80000000,0,0x41081600,0xf8000480,0x10405,0x41081800,0x80000000,0x4000000,0x41081b80,
-0x80000000,0x4000000,0x41082e80,0xf8000400,0x10405,0x41083300,0x80000080,0x4000000,0x41083908,0xf8000400,0x1040f,0x41083919,0xf8000400,0x10400,0x41083980,0x80000000,
-0x4000000,0x41083f0e,0x80000000,0,0x41083f8e,0x80000000,0,0x41083f8e,0xf8000400,0x18400,0x41084002,0xf8000400,0x18400,0x410840b7,0x80000000,0,
-0x410840b7,0xf8000400,0x18400,0x41084207,0x80000000,0,0x41084207,0xf8000400,0x10400,0x41084207,0xf8000400,0x28400,0x4108428b,0xf8000400,0x18400,0x4108430b,
-0x80000000,0,0x4108430b,0xf8000400,0x18400,0x4108438c,0xf8000400,0x10400,0x41084438,0xf8000400,0x10400,0x41084438,0xf8000400,0x28400,0x410844b9,0x80000000,
-0,0x410844b9,0xf8000400,0x18400,0x41084500,0x80000000,0,0x410845bb,0x80000000,0,0x410845bb,0xf8000400,0x18400,0x4108463d,0x80000000,0,
-0x4108463d,0xf8000400,0x18400,0x41084699,0xf8000400,0x10400,0x41084699,0xf8000400,0x1040f,0x41084700,0x80000000,0x4000000,0x410847ba,0x80000000,0,0x410847ba,
-0xf8000400,0x18400,0x4108483c,0xf8000400,0x18400,0x4108483c,0xf8000400,0x1840f,0x41101400,0x80000000,0x4000000,0x411040b7,0x80000000,0,0x41104207,0x80000000,
-0,0x411044b9,0x80000000,0,0x41104700,0x80000000,0x4000000,0x41104700,0x80000018,0x4000000,0x41140da7,0x80000000,0,0x41203300,0x80000080,0x4008000,
-0x4122c880,0x80000000,0x10,0x4122c880,0x80000000,0x8010,0x41240593,0x50020000,0x60,0x41240593,0x50020400,0x60,0x41240602,0x50020400,0x60,0x41240f8b,
-0x50020400,0x60,0x41241581,0x50020000,0x60,0x41243f0e,0x50020000,0x60,0x412440b7,0x50020400,0x60,0x412440b7,0xd0000400,0x18400,0x41244181,0x50020000,
-0x60,0x412444b9,0x50020000,0x60,0x412444b9,0x50020400,0x60,0x412444b9,0x50060000,0x60,0x412445bb,0xd0000400,0x18400,0x412447ba,0x50020000,0x60,
-0x412447ba,0x50020400,0x60,0x412447ba,0x50060000,0x60,0x412447ba,0xd0000000,0,0x412447ba,0xd0000400,0x18400,0x41248381,0x50020000,0x60,0x412c0593,
-0x80000000,0,0x412c0602,0x80000000,0,0x412ec880,0x80000000,0x10,0x413aa200,0x80000000,3,0x413aa391,0xf8400c00,0x18000,0x413aa791,0xf8000c00,
-0x18001,0x413ac100,0x80000000,0,0x413ec880,0x80000000,0x10,0x4142c880,0x80000000,0x1410,0x414c0a23,0xd0000000,0x15800,0x414c45bb,0xd0000000,0x15800,
-0x41503300,0x80000080,0x4008000,0x4152c880,0x80000000,0x8010,0x41540602,0x80000000,0,0x41581500,0x80000000,0,0x415c4700,0x80000000,0x4008000};
+static const uint32_t propsVectors[3384]={
+0x67,0,0,0x67,0x800000,0,0x467,0,0,0x4e7,0,0,0x567,0,0,0x5e7,
+0,0,0x667,0,0,0x6e7,0,0,0x767,0,0,0x7e7,0,0,0x867,0,
+0,0x8e7,0,0,0x967,0,0,0x9e7,0,0,0xa67,0,0,0xae7,0,0,
+0xb67,0,0,0xbe7,0,0,0xc67,0,0,0xce7,0,0,0xd67,0,0,0xde7,
+0,0,0xe67,0,0,0xee7,0,0,0xf67,0,0,0xfe7,0,0,0x1067,0,
+0,0x10e7,0,0,0x1167,0,0,0x11e7,0,0,0x1267,0,0,0x12e7,0,0,
+0x1367,0,0,0x13e7,0,0,0x1467,0x800000,0,0x14e7,0,0,0x1567,0,0,0x15e7,
+0,0,0x1667,0,0,0x16e7,0,0,0x1867,0,0x4000000,0x18e7,0,0x4000000,0x1967,0,
+0x4000000,0x1be7,0,0x4000000,0x1c67,0,0x4000000,0x1d67,0,0,0x1de7,0,0,0x1e67,0,0,
+0x1f67,0,0,0x2067,0,0,0x20e7,0,0,0x21e7,0,0,0x2267,0,0,0x2367,
+0,0,0x23e7,0,0,0x2467,0,0,0x24e7,0,0,0x2567,0,0,0x27e7,0,
+0,0x2867,0,0,0x28e7,0,0,0x2967,0,0,0x2a67,0,0,0x2ae7,0,0,
+0x2b67,0x800000,0,0x2be7,0,0,0x2c67,0,0,0x2ce7,0,0,0x2de7,0,0,0x2e67,
+0,0,0x2ee7,0,0,0x3067,0x800000,0,0x30e7,0,0,0x3167,0,0,0x31e7,0,
+0,0x3267,0,0,0x32e7,0,0,0x3367,0,0x4000000,0x37e7,0,0,0x3867,0,0,
+0x39e7,0,0x4000000,0x3ae7,0,0,0x3b67,0,0,0x3be7,0,0,0x3c67,0,0,0x3d67,
+0,0,0x3de7,0,0,0x3e67,0,0,0x3f67,0,0,0x3fe7,0,0,0x4067,0,
+0,0x40e7,0,0,0x4167,0,0,0x41e7,0,0,0x4267,0,0,0x42e7,0,0,
+0x4367,0,0,0x43e7,0,0,0x4467,0,0,0x44e7,0,0,0x4567,0,0,0x45e7,
+0,0,0x4667,0,0,0x4767,0,0x4000000,0x47e7,0,0,0x4867,0,0,0x48e7,0,
+0,0x4967,0,0,0x49e7,0,0,0x4a67,0,0,0x4ae7,0,0,0x4b67,0,0,
+0x4be7,0,0,0x4c67,0,0,0x4ce7,0,0,0x4d67,0,0,0x28067,0,0,0x2af67,
+0,0,0x2afe7,0,0,0x11002b67,0x810000,0,0x1100a767,0,0,0x11041680,0x80000000,6,0x11041980,0x80000000,
+3,0x11041a00,0x80000000,0x4000000,0x11041c00,0x80000000,0,0x11048100,0x80000000,6,0x11048100,0x80000000,0xf,0x11048100,0x80000000,0x4000000,
+0x11048100,0x80000080,0x4000000,0x11048100,0x80001000,2,0x11048100,0x90003000,0x1000,0x11048119,0xf8000400,0x1040f,0x11048300,0x80001000,2,0x11048300,
+0xf8001400,0x18400,0x11048300,0xf8003400,0x18400,0x11049400,0x80000000,0x4000000,0x11049400,0x80000008,0x4000000,0x11049400,0x80000080,0x4000000,0x11049480,0x80000000,
+0xe,0x11049480,0x80000000,0xf,0x11049499,0xf8000400,0x1040f,0x11049600,0x80000000,2,0x11049600,0x80000000,0xf,0x11049600,0xf8000480,0x10405,
+0x11049619,0xf8000400,0x28401,0x11049680,0x80000000,6,0x11049680,0xf8000400,0x10402,0x11049680,0xf8000400,0x28402,0x11049700,0x80000000,0x4000000,0x11049700,
+0x80000080,0x4000000,0x11049780,0x80000080,0x4000000,0x11049780,0x80000080,0x4000001,0x11049780,0x80000080,0x4000002,0x11049800,0x80000000,0x4000000,0x11049980,0x80000000,
+2,0x11049980,0x80000000,3,0x11049980,0x80000400,0x10403,0x11049980,0x80000400,0x28403,0x11049a00,0x80000000,0x4000000,0x11049a80,0x80000000,0x4000000,
+0x11049b00,0x80000000,0x4000000,0x11049b00,0x80000080,0x4000000,0x11049b80,0x80000000,0x4000000,0x11049b80,0x80000080,0x4000000,0x11049c00,0x80000000,0,0x1104ab00,
+0x80000000,0,0x11080100,0x80000000,0x4000000,0x11080100,0xf8000400,0x10402,0x11080119,0xf8000400,0x10401,0x11080119,0xf8000400,0x28401,0x11080199,0xf8000400,
+0x10401,0x11080199,0xf8000400,0x10402,0x11080199,0xf8000400,0x28400,0x11080199,0xf8000400,0x28401,0x11080219,0xf8000400,0x10400,0x11080219,0xf8000400,0x10401,
+0x11080219,0xf8000400,0x10402,0x11080219,0xf8000400,0x18400,0x11080219,0xf8000400,0x28400,0x11080219,0xf8000400,0x28401,0x11080219,0xf8000400,0x28402,0x11080299,
+0xf8000400,0x10400,0x11080299,0xf8000400,0x18400,0x11080300,0x80001000,0,0x11080300,0x80001000,2,0x11080300,0xf8001400,0x10400,0x11080300,0xf8001400,
+0x18400,0x11080300,0xf8003400,0x18400,0x11080319,0xf8001400,0x1040f,0x11080400,0x80000040,1,0x11080407,0xf8000400,0x10400,0x11080407,0xf8000400,0x28400,
+0x1108040e,0x80001000,0,0x1108040e,0x80001000,1,0x1108040e,0x80001000,2,0x1108040e,0xe0001400,0x10402,0x1108040e,0xf8000400,0x10400,0x1108040e,
+0xf8000400,0x10401,0x1108040e,0xf8000400,0x10402,0x1108040e,0xf8000400,0x28400,0x1108040e,0xf8000400,0x28401,0x1108040e,0xf8000480,0x10402,0x1108040e,0xf8000480,
+0x28402,0x11080488,0x80000000,0,0x11080488,0xf8000400,0x10400,0x11080488,0xf8000400,0x10401,0x11080488,0xf8000400,0x28400,0x11080488,0xf8000400,0x28401,
+0x11080503,0x80000000,0,0x11080503,0x80000000,0x1024000,0x11080503,0xf8000400,0x10400,0x11080503,0xf8000400,0x10402,0x11080503,0xf8000400,0x28400,0x11080503,
+0xf8001400,0x18400,0x11080593,0x80000000,0,0x11080593,0x80000000,0x1000,0x11080593,0x80000000,0x18400,0x11080593,0x80000040,0,0x11080593,0xf8000400,
+0x18400,0x11080600,0x800000,0xc820,0x11080600,0xf8002400,0x18400,0x11080602,0x80000000,0,0x11080602,0xf8000400,0x18400,0x11080602,0xf8000400,0x18401,
+0x11080602,0xf8000400,0x18402,0x11080602,0xf8001400,0x18400,0x11080780,0x80000000,0,0x1108078a,0xf8000400,0x18400,0x1108078a,0xf8000400,0x18401,0x11080804,
+0x80000000,0,0x11080804,0xf8000400,0x18400,0x11080804,0xf8000400,0x18401,0x11080890,0xf8000400,0x18400,0x11080890,0xf8000400,0x18401,0x1108090f,0xf8000400,
+0x18400,0x1108099f,0x80000000,0,0x1108099f,0xf8000400,0x18400,0x1108099f,0xf8000400,0x18401,0x11080a23,0x80000000,0,0x11080a23,0xf8000400,0x18400,
+0x11080a23,0xf8000400,0x18401,0x11080aa4,0xf8000400,0x18400,0x11080b15,0xf8000400,0x18400,0x11080b9a,0xf8000400,0x18400,0x11080ca6,0x80000000,0,0x11080e80,
+0x80000000,0,0x11080e8c,0xf8000400,0x18400,0x11080e8c,0xf8000400,0x28400,0x11081319,0xf8000400,0x10401,0x11081319,0xf8000400,0x10402,0x11081319,0xf8000400,
+0x28401,0x1108138e,0x80001000,1,0x1108138e,0x80001000,2,0x1108138e,0xf8000400,0x10401,0x1108138e,0xf8000400,0x28401,0x11081400,0x80000000,0x4000000,
+0x11081400,0x80000000,0x4000002,0x11081400,0xd0000000,0x1c00,0x11081400,0xd0000080,0x1c00,0x11081480,0x80000000,0xe,0x11081480,0x80000000,0xf,0x11081480,
+0x80000080,0xe,0x11081480,0x80000080,0xf,0x11081480,0x80000088,0xe,0x11081480,0x80000088,0xf,0x11081600,0x80000000,0,0x11081600,0x80000000,
+2,0x11081600,0x80000000,0xf,0x11081600,0x80000080,0,0x11081600,0xf8000000,0,0x11081600,0xf8000400,0x28402,0x11081600,0xf8000480,0x10405,
+0x11081600,0xf8000480,0x18402,0x11081600,0xf8000480,0x28405,0x11081619,0xf8000400,0x28400,0x11081619,0xf8000400,0x28401,0x11081680,0x80000000,6,0x11081680,
+0xf8000400,0x10402,0x11081680,0xf8000400,0x18400,0x11081680,0xf8000400,0x28402,0x11081700,0x80000000,0x4000000,0x11081700,0x80000000,0x4000001,0x11081700,0x80000080,
+0x4000000,0x11081700,0x80000080,0x4000001,0x11081780,0x80000080,0x4000000,0x11081780,0x80000080,0x4000001,0x11081780,0x80000080,0x4000002,0x11081800,0x80000000,0x4000000,
+0x11081800,0x80000080,0x4000000,0x11081880,0x80000000,0x4000000,0x11081900,0x80000000,0x4000000,0x11081a00,0x80000000,0x4000000,0x11081a80,0x80000000,0x4000000,0x11081b00,
+0x80000000,0x4000000,0x11081b80,0x80000000,0x4000000,0x11081c00,0x80000000,0x4000000,0x11082803,0xf8000400,0x10402,0x11082813,0x80000080,5,0x11082813,0xf8000400,
+0x18401,0x11082813,0xf8000400,0x18402,0x11082813,0xf8000400,0x18405,0x11082819,0xf8000400,0x10402,0x11082882,0xe0000400,0x18408,0x11082882,0xf8000400,0x18404,
+0x11082882,0xf8000400,0x18407,0x11082882,0xf8000400,0x18408,0x11082882,0xf8000400,0x18409,0x11082a82,0xe0000400,0x18408,0x11082a82,0xf8000400,0x18404,0x11082a82,
+0xf8000400,0x18407,0x11082a82,0xf8000400,0x18408,0x11082a82,0xf8000400,0x18409,0x11088100,0x80000000,0x4000000,0x11088119,0xf8000400,0x10400,0x11088119,0xf8000400,
+0x10401,0x11088119,0xf8000400,0x28400,0x11088199,0xf8000400,0x10400,0x11088199,0xf8000400,0x10401,0x11088199,0xf8000400,0x10402,0x11088199,0xf8000400,0x28400,
+0x11088199,0xf8000400,0x28402,0x11088219,0xf8000400,0x10401,0x11088299,0xf8000400,0x10400,0x11088300,0x80001000,0,0x1108840e,0xf8000400,0x10400,0x1108840e,
+0xf8000400,0x28400,0x11088488,0xf8000400,0x10400,0x11088488,0xf8000400,0x10401,0x11088488,0xf8000400,0x28400,0x11088488,0xf8000400,0x28401,0x11089400,0x80000000,
+0x4000000,0x11089400,0x80000000,0x4000002,0x1108960e,0xf8000400,0x28401,0x11089680,0x80000000,6,0x11089700,0x80000000,0x4000000,0x11089c00,0x80000000,0x4000000,
+0x11092b80,0x80000000,0xa,0x11092b80,0x80000080,0xa,0x11092b92,0xf8000400,0x1840a,0x11092b92,0xf8800400,0x1840a,0x11092b96,0xf8000400,0x18c0a,0x110a0080,
+0x80000000,0x4000000,0x110a0080,0x80000080,0x4000000,0x110a0080,0x80001000,0x4000000,0x110a0080,0x80001080,0x4000000,0x110a0080,0xd0000000,0x1c00,0x110a0099,0xf8000400,
+0x10400,0x110a0099,0xf8000400,0x28400,0x110a0099,0xf8000700,0x10400,0x110a0099,0xf8000700,0x28400,0x110a0100,0x80000000,0x4000000,0x110a0100,0x80000080,0x4000000,
+0x110a0100,0x80001000,2,0x110c9400,0x80000008,0x4000000,0x11100080,1,0x8020020,0x11100593,0x80000008,0,0x11100780,0x80000040,0x1024000,0x11100ca6,
+0x80000040,0,0x11101400,0x80000001,0x20001,0x11101400,0x80000001,0x20002,0x11101400,0x80000008,0x4000000,0x11108100,0x800010,0xc820,0x11109400,0x80000000,
+0x4001000,0x11109400,0x80000008,0x4000000,0x11109400,0x80000018,0x4000000,0x11120080,0x80000080,0x4000000,0x11140300,0xf8001400,0x18400,0x11148100,0x80001000,2,
+0x11180080,1,0x8020020,0x11181400,1,0x801c020,0x11201400,0x80000000,0x4008000,0x11201480,0x80000080,0x800e,0x11201480,0x80000080,0x800f,0x11202880,
+0x80000000,0x4008000,0x11212b80,0x80000020,0x800a,0x11212b80,0x80000040,0xa,0x11212b80,0x80000040,0x102400a,0x1121ab80,0x80000000,0x8011,0x1121ab80,0x80000040,
+0x11,0x1121ab80,0x80000040,0x1024011,0x11220080,0x80000000,0x4008000,0x11229800,0x80000000,0x4008001,0x11229e80,0x80000000,0x4008000,0x11229e80,0x80000020,0x4008000,
+0x11229e80,0x80000040,0x4000000,0x11229e80,0x80000040,0x5024000,0x1122a980,0x80000000,0x8010,0x1122a980,0x80000020,0x8010,0x1122aa00,0x80000000,0x800c,0x1122aa00,
+0x80000040,0xc,0x1122aa00,0x80000040,0x102400c,0x11240080,0x800000,0x20,0x11240100,0x800000,0x20,0x11240488,0x50021000,0x60,0x11240593,0x50021400,
+0x60,0x11240601,0x50020400,0x60,0x11240601,0x50021400,0x60,0x11240602,0x20000,0x60,0x11240602,0x50020400,0x60,0x11240602,0x50021000,0x60,
+0x1124078a,0x50020400,0x60,0x1124078a,0x50021000,0x60,0x1124078a,0x50061000,0x60,0x1124078a,0xd0000400,0x18400,0x11240804,0x50020400,0x60,0x11240804,
+0x50021000,0x60,0x11240804,0x50061000,0x60,0x11240804,0xd0000400,0x18400,0x11240804,0xd0000400,0x18401,0x11240890,0x50020400,0x60,0x11240890,0x50021000,
+0x60,0x11240890,0x50061000,0x60,0x11240890,0xd0000400,0x18400,0x1124090f,0x50020400,0x60,0x1124090f,0x50021000,0x60,0x1124090f,0x50061000,0x60,
+0x1124090f,0xd0000400,0x18400,0x1124099f,0x50020400,0x60,0x1124099f,0x50021000,0x60,0x1124099f,0x50061000,0x60,0x1124099f,0xd0000400,0x18400,0x1124099f,
+0xd0000400,0x18401,0x11240a23,0x50020400,0x60,0x11240a23,0x50061000,0x60,0x11240a23,0xd0000400,0x18400,0x11240a23,0xd0000400,0x18401,0x11240aa4,0x50020400,
+0x60,0x11240aa4,0x50020400,0x61,0x11240aa4,0x50061000,0x60,0x11240aa4,0xd0000400,0x18400,0x11240b15,0x50020400,0x60,0x11240b15,0x50061000,0x60,
+0x11240b15,0xd0000400,0x18400,0x11240b15,0xd0000400,0x18401,0x11240b9a,0x50020400,0x60,0x11240b9a,0x50061000,0x60,0x11240b9a,0xd0000400,0x18400,0x11240b9a,
+0xd0000400,0x18401,0x11241400,0x800000,0xc820,0x11241400,0x800000,0x800c820,0x11241400,0x1800000,0xc820,0x11241401,0x820000,0x60,0x11241581,0x20000,
+0x60,0x11241581,0x50020080,0x60,0x11242813,0x50021400,0x60,0x11242901,0x50021000,0x60,0x11248381,0x50021000,0x60,0x11248381,0x50021000,0x61,
+0x11248381,0x50021400,0x60,0x11248381,0x51021000,0x61,0x11269e81,0x50021000,0x60,0x11269f01,0x50021000,0x60,0x11280080,1,0x801c040,0x112c0600,
+0x80000040,0,0x112c0600,0x80000040,0x1024000,0x112c0602,0x80000000,0,0x112c0602,0x80000040,0x1024000,0x112c1c00,0x80000000,0x4000000,0x112dab80,0x80000040,
+0x1024011,0x112e0080,0x80000040,0x5024000,0x112eaa00,0x80000040,0x102400c,0x11300100,0x80000001,0x1800b,0x11301400,0x80000001,0x2000b,0x11301400,0x80000018,0x400000b,
+0x11308381,0x50021000,0x60,0x11360080,0x80000018,0x4000000,0x11381e80,0x80000000,0,0x11399e80,0x80000001,0x20011,0x1139ab80,0x80000000,0x11,0x1139ab80,
+0x80000018,0x11,0x1139ab80,0x80000020,0x11,0x1139ab80,0x80000080,0x11,0x1139ab80,0x80001000,0x11,0x1139ab80,0x80001080,0x11,0x1139ab80,0xd0000000,
+0x1c11,0x1139ab80,0xd0000100,0x11,0x1139ab99,0xf8000400,0x10411,0x1139ab99,0xf8000400,0x28411,0x1139ab99,0xf8000500,0x10411,0x1139ab99,0xf8000500,0x28411,
+0x113a9e80,0x80000000,0,0x113a9e80,0x80000000,2,0x113a9e80,0x80000000,0x4000000,0x113a9e80,0x80000008,0x4000000,0x113a9e80,0xf8000c00,0x18000,0x113a9e80,
+0xf8002400,0x18c00,0x113a9e91,0xf8000c00,0x18000,0x113a9f14,0xf8000400,0x18000,0x113a9f14,0xf8000400,0x18001,0x113a9f96,0xf8000400,0x18c00,0x113a9f96,0xf8000400,
+0x18c01,0x113aa005,0xf8000400,0x18400,0x113aa092,0xf8000400,0x18402,0x113aa092,0xf8800400,0x18402,0x113aa100,0x80000000,0,0x113aa100,0x80000000,0xf,
+0x113aa200,0x80000000,0,0x113aa200,0x80000000,2,0x113aa200,0x80000000,3,0x113aa212,0x80000000,2,0x113aa212,0x80000000,3,0x113aa280,
+0x80000000,2,0x113aa280,0x80000000,0xd,0x113aa391,0xf8400c00,0x18000,0x113aa791,0xf8000c00,0x18001,0x113aa791,0xf8400c00,0x18000,0x113aa980,0x80000000,
+2,0x113aa980,0x80000000,0x10,0x113aa980,0x80000008,0x10,0x113aa980,0xd0000000,0x1c02,0x113aa980,0xd0000000,0x1c10,0x113aaa00,0x80000000,0xc,
+0x113aaa00,0x80000008,0xc,0x113aaa00,0x80000040,0xc,0x113aaa00,0x80000080,0xc,0x113aaa00,0x80000098,0xc,0x113c9400,0x80000000,0x4000002,0x11400400,
+0x80000040,0x1401,0x11400500,0x80000040,0x1025400,0x11401400,0x80000080,0x4001400,0x11420080,0x80000040,0x4001000,0x11420080,0x80000040,0x4001400,0x11420080,0x80000040,
+0x5005400,0x11440080,1,0x801c0a0,0x11481400,0x80000040,0x5024000,0x11481400,0x80000040,0x5024002,0x11492b80,0x80000010,0xa,0x11492b80,0xf0001400,0x18c0a,
+0x11492b80,0xf8003400,0x18c0a,0x11492b96,0xf8000400,0x18c0a,0x1149ab80,0x80000040,0x11,0x114a9e80,0x80000008,0x4000000,0x114a9e91,0xf8002400,0x18400,0x114a9f00,
+0xe0001000,0xc02,0x114a9f14,0xf8000400,0x18000,0x114a9f14,0xf8002400,0x18000,0x114a9f14,0xf8002400,0x18001,0x114a9f80,0x80000010,0,0x114a9f80,0xf8003400,
+0x18c00,0x114a9f96,0xf8000400,0x18c00,0x114a9f96,0xf8002400,0x18c00,0x114a9f96,0xf8002400,0x18c01,0x114aaa00,0x80000040,0xc,0x114c0600,0xd0000000,0x15800,
+0x114c0602,0x80000000,0x15800,0x114c0602,0xd0000000,0x15800,0x114c078a,0xd0000000,0x15800,0x114c0804,0xd0000000,0x15800,0x114c0890,0xd0000000,0x15800,0x114c090f,
+0xd0000000,0x15800,0x114c099f,0xd0000000,0x15800,0x114c0a23,0xd0000000,0x15800,0x114c0aa4,0xd0000000,0x15800,0x114c0b15,0xd0000000,0x15800,0x114c0b9a,0xd0000000,
+0x15800,0x114c0ca6,0xd0000000,0x15800,0x114c0d18,0xd0000000,0x15800,0x114e0080,0xd0000300,0x15800,0x11501400,0x80000000,0x4008000,0x11501400,0x80000020,0x4008000,
+0x11501480,0x80000080,0x800e,0x11501480,0x80000080,0x800f,0x11502880,0x80000000,0x4008000,0x11512b80,0x80000020,0x800a,0x1151ab80,0x80000000,0x8011,0x11520080,
+0x80000000,0x4008000,0x11529800,0x80000000,0x4008001,0x11529e80,0x80000000,0x4008000,0x11529e80,0x80000020,0x4008000,0x1152a980,0x80000000,0x8010,0x1152a980,0x80000020,
+0x8010,0x1152aa00,0x80000000,0x800c,0x11541400,0x80000000,0x4000000,0x11541400,0x80000000,0x4000002,0x11541400,0x80000080,0x4000002,0x11541500,0x80000000,0,
+0x11548100,0x80000000,0x4000000,0x11549400,0x80000000,0x4000000,0x11549400,0x80000080,0x4000000,0x11549400,0x80000080,0x4000002,0x11549600,0x80000000,2,0x1155ab80,
+0x80000000,0x11,0x11560080,0x80000000,0x4000000,0x11560100,0x80000000,0x4000000,0x1156aa00,0x80000000,0xc,0x11580804,0x80000000,0,0x11580c80,0x80000000,
+0,0x11581500,0x80000000,0,0x11581500,0x80000000,2,0x11581780,0x80000080,0x4000000,0x11581780,0x80000088,0x4000000,0x11588100,0x80000000,0x4000000,
+0x11588100,0x80000080,0x4000000,0x11589600,0x80000000,2,0x11591500,0x80000000,0,0x1159ab80,0x80000000,0x11,0x115a0080,0x80000000,0x4000000,0x115a0080,
+0x80000080,0x4000000,0x115a0100,0x80000000,0x4000000,0x115aaa00,0x80000000,0xc,0x115c0100,0x80000020,0x4008000,0x115c1400,0x80000020,0x4008000,0x115c1c00,0x80000000,
+0x4008000,0x115c9400,0x80000020,0x4008000,0x115c9400,0x80000020,0x4009000,0x115e0080,0x80000020,0x4008000,0x115e0080,0x80000020,0x4009000,0x11600ca6,0x50020400,0x60,
+0x11600ca6,0x50021000,0x60,0x11600ca6,0x50060400,0x60,0x11600ca6,0xf0000400,0x18002,0x11600ca6,0xf8000400,0x18000,0x11600ca6,0xf8002400,0x18000,0x11600ca6,
+0xfc000400,0x18000,0x11600d18,0x50020400,0x60,0x11600d18,0x50021000,0x60,0x11600d18,0xf0000400,0x18002,0x11600d18,0xf8000400,0x18000,0x11600d18,0xf8000400,
+0x18002,0x11600d18,0xf8002400,0x18000,0x11600d18,0xfc000400,0x18000,0x116a0080,0x80000001,0x8020000,0x116e0080,0x80000000,0x4000000,0x11701400,0x800000,0xc820,
+0x11740100,1,0x801c020,0x11782a80,0x800000,0xc820,0x11868f12,0xf8000400,0x18480,0x11868f12,0xf8800400,0x18480,0x11880f12,0xf8000400,0x18500,0x118c0f12,
+0xf8000400,0x18520,0x118c0f12,0xf8800400,0x18520,0x20000067,0x810000,0,0x200036e7,0x810000,0,0x20003767,0x810000,0,0x2000b6e7,0,
+0,0x2000b767,0,0,0x20080da7,0x80000000,0,0x20080da7,0xf8000400,0x18400,0x20080da7,0xf8000400,0x18401,0x20081319,0xf8000400,0x10401,
+0x20100da7,0x80000000,0,0x20100da7,0xd0000400,0x18400,0x20140da7,0x80000000,0,0x20200da7,0x80000000,0x8000,0x20240593,0x50021000,0x60,0x20240593,
+0x50021400,0x60,0x20240da7,0x50020400,0x60,0x20240da7,0x50020400,0x61,0x20240da7,0x50020400,0x62,0x20240da7,0x50021000,0x60,0x20240da7,0x50061000,
+0x60,0x20240da7,0xd0001000,0,0x202c0da7,0x80000000,0,0x202c0da7,0x80000040,0,0x20300da7,0x80000000,0xb,0x20300da7,0x80000040,0,
+0x204c0da7,0xd0000000,0x15800,0x20500da7,0x80000000,0x8000,0x20581500,0x80000000,0,0x206425e7,0x800000,0,0x20642667,0x800000,0,0x206426e7,
+0x800000,0,0x207ea512,0xf8000400,0x184c1,0x2082a512,0xf8000400,0x184e1,0x211c2b00,0x80000000,0,0x21589500,0x80000000,0,0x30080219,0xf8000400,
+0x10400,0x30080219,0xf8000400,0x10401,0x30080219,0xf8000400,0x28400,0x30080219,0xf8000400,0x28401,0x30080299,0xf8000400,0x10400,0x30080300,0x80001000,0,
+0x30080300,0xf8001400,0x18400,0x3008040e,0xf8000400,0x10400,0x30080488,0xf8000400,0x10400,0x30080488,0xf8000400,0x10401,0x30080488,0xf8000400,0x28400,0x30080488,
+0xf8000400,0x28401,0x30080602,0x80000000,0,0x30080602,0xf8000400,0x18400,0x300806a2,0x800000,0xc820,0x300806a2,0x80000000,0,0x300806a2,0x80000040,
+0,0x300806a2,0x80000040,0x1024000,0x300806a2,0xf8000400,0x18400,0x30080725,0xf8000400,0x18400,0x30080c21,0x80000000,0,0x30080c21,0xf8000400,0x18400,
+0x30080da7,0x80000000,0,0x30080da7,0xf8000400,0x18400,0x30080e1c,0x80000000,0,0x30080f8b,0x80000000,0,0x30080f8b,0x80000040,0,0x30080f8b,
+0x80000040,0x1024000,0x30080f8b,0xd0000000,0,0x30080f8b,0xf8000400,0x18400,0x30081006,0xf8000400,0x18400,0x300810a8,0x80000040,0,0x300810a8,0x80000040,
+0x1024000,0x300810a8,0xf8000400,0x18400,0x3008111d,0xf8000400,0x18400,0x300811a0,0xf8000400,0x18400,0x30081217,0x80000000,0,0x3008129b,0x80000000,0,
+0x3008129b,0xf8000400,0x18400,0x3008129b,0xf8002400,0x18400,0x30081400,0x80000000,0x4000000,0x30081600,0x80000000,0,0x30081600,0xf8000400,0x10405,0x30081680,
+0xf8000400,0x28400,0x30081700,0x80000000,0x4000000,0x30081800,0x80000000,0x4000000,0x30081880,0x80000000,0x4000000,0x30081b00,0x80000000,0x4000000,0x30081b80,0x80000000,
+0x4000000,0x30081cae,0x80000000,0x4000000,0x30082813,0xf8000400,0x18401,0x30088300,0x80001000,0,0x30100503,0x80000018,0,0x30100da7,0x80000000,0,
+0x30100e1c,0x80000040,0x1024000,0x30100f8b,0x80000040,0,0x3010111d,0x80000001,0x20000,0x30101180,0x80000040,0,0x30101217,0x80000000,0,0x30101217,
+0x80000040,0,0x30101280,0x80000040,0,0x30101280,0x80000040,0x1024000,0x3010129b,0x80000040,0,0x3010129b,0x80000040,0x1024000,0x3014129b,0x80000018,
+0,0x3020111d,0x80000000,0x8000,0x30240488,0x20000,0x60,0x30240601,0x50020400,0x60,0x302406a2,0x50020400,0x60,0x302406a2,0x50021000,0x60,
+0x302406a2,0x50021400,0x60,0x30240725,0x50021400,0x60,0x30240c21,0x50020400,0x60,0x30240c21,0x50061000,0x60,0x30240c21,0xd0000400,0x18400,0x30240c21,
+0xd0000400,0x18401,0x30240da7,0x50020400,0x60,0x30240da7,0x50021000,0x60,0x3024129b,0x50020400,0x60,0x3024129b,0x50820000,0x2000060,0x30241581,0x20000,
+0x60,0x30242b00,0,0xc820,0x30248381,0x50021000,0x60,0x3030129b,0x80000001,0x20000,0x30301400,0x80000001,0x2000b,0x30308381,0x50021000,0x60,
+0x303a9d11,0x80200000,0,0x303a9d11,0x80200000,2,0x303a9d91,0x80200000,2,0x303a9e00,0x80080000,0,0x303a9e00,0x80100000,0,0x303a9e80,
+0x80000000,0,0x303a9e91,0xf8000c00,0x18002,0x303aa185,0xf8000400,0x18400,0x303aa311,0xf8400c00,0x18000,0x303aa429,0xf8000400,0x18400,0x303aa4a9,0x80000000,
+0,0x30481217,0x80000040,0,0x30481400,0x80000040,0x5024002,0x304aa429,0xf8002400,0x18400,0x304c0e1c,0xd0000000,0x15800,0x304c1217,0xd0000000,0x15800,
+0x304c129b,0xd0000000,0x15800,0x3050111d,0x80000000,0x8000,0x30581217,0x80000000,0,0x30581500,0x80000000,0,0x30600e1c,0x50020400,0x60,0x30600e1c,
+0x50021000,0x60,0x30600e1c,0x50061000,0x60,0x30600e1c,0xd0000400,0x18000,0x30600e1c,0xf8000400,0x18000,0x30600e1c,0xf8000400,0x18001,0x30601217,0x800000,
+0xc820,0x30601217,0x50020400,0x60,0x30601217,0x50021000,0x60,0x30601217,0x50061000,0x60,0x30601217,0x51021000,0x60,0x30601217,0xd0000400,0x18000,
+0x30601217,0xf8000400,0x18000,0x30601217,0xf9000400,0x18000,0x310028e7,0x810000,0,0x3108040e,0xf8000480,0x10402,0x3108040e,0xf8000480,0x28402,0x31082c1e,
+0x80000000,0,0x31082c1e,0xf8000400,0x18400,0x31082c8d,0xf8000400,0x18400,0x31082d09,0xf8000400,0x10400,0x31082d09,0xf8000400,0x28400,0x31082d80,0x80000000,
+0,0x31082e00,0x80000000,0,0x31082e00,0x80000000,1,0x31082e80,0x80000080,5,0x31082e80,0xf8000480,0x10405,0x31082e80,0xf8000480,0x28405,
+0x31242e00,0x800000,0xc820,0x31242e00,0x50020000,0x60,0x31242e00,0x50021000,0x60,0x31242e00,0xd0000000,0,0x31242e00,0xd0001000,0,0x31242e01,
+0x50021000,0x60,0x31243000,0x800000,0xc820,0x313aaf11,0xf8400c00,0x18000,0x313aaf91,0xf8000c00,0x18001,0x314c2e80,0xd0000080,0x15805,0x32041b80,0x80000000,
+0x4000000,0x32049980,0x80000000,0,0x32080219,0xf8000400,0x28400,0x3208040e,0x80000080,0,0x3208040e,0xf8000400,0x10400,0x3208040e,0xf8000400,0x28400,
+0x32080488,0xf8000400,0x10400,0x32080488,0xf8000400,0x28400,0x32080602,0xf8000400,0x18400,0x32080725,0xf8000400,0x18400,0x32080e8c,0xf8000400,0x18400,0x32081400,
+0x800080,0xc820,0x32081400,0x80000000,0x4000000,0x32081400,0x80000000,0x4000002,0x32081400,0x80000080,0x4000000,0x32081499,0xf8000400,0x1040f,0x32081600,0x80000000,
+0,0x32081600,0x80000080,0,0x32081600,0x80000080,5,0x32081600,0xf8000480,0x10405,0x32081600,0xf8000480,0x28405,0x32081700,0x80000080,0x4000000,
+0x32081780,0x80000080,0x4000000,0x32081800,0x80000000,0x4000000,0x32081800,0x80000080,0x4000000,0x32081a80,0x80000000,0x4000000,0x32081b00,0x80000080,0x4000000,0x32081b80,
+0x80000000,0x4000000,0x32082a82,0xf8000400,0x18400,0x32083088,0xf8000400,0x10400,0x32083088,0xf8000400,0x28400,0x3208312a,0xf8000400,0x18400,0x320831ab,0xf8000400,
+0x18400,0x3208322c,0xf8000400,0x18400,0x320832ad,0xf8000400,0x18400,0x32083300,0x80000080,0x4000000,0x32083380,0x80000080,0x4000000,0x32083400,0x80000080,0x4000000,
+0x32083480,0x80000080,0x4000000,0x32083500,0x80000080,0x4000000,0x32083500,0x80000080,0x4000001,0x32083500,0x80000080,0x4000002,0x32101400,0x80000001,0x20002,0x32103180,
+0x80000000,0,0x32201c00,0x80000000,0x4008000,0x32203480,0x80000080,0x4008000,0x3221ab80,0x80000000,0x8011,0x32223300,0x80000080,0x4008000,0x32223480,0x80000080,
+0x4008000,0x32241581,0x20000,0x60,0x32241581,0x50020000,0x60,0x32241581,0x50020080,0x60,0x3224312a,0x50020400,0x60,0x3224312a,0x50060000,0x60,
+0x322431ab,0x50020400,0x60,0x322431ab,0x50060000,0x60,0x3224322c,0x50020400,0x60,0x322432ad,0x50020400,0x60,0x32248381,0x50020000,0x60,0x3224b601,
+0x50820000,0x2000060,0x32308381,0x50820000,0x60,0x323a9e80,0x80000000,0,0x323a9f14,0xf8000400,0x18010,0x323a9f96,0xf8000400,0x18c10,0x323aa200,0x80000000,
+3,0x323aa4a9,0x80000000,0,0x323aa791,0xf8000400,0x18401,0x323aa980,0x80000000,0x4000000,0x32481400,0x80000040,0x5024002,0x324a9e80,0xf8000400,0x18400,
+0x324a9e91,0xf8000400,0x18400,0x324a9f14,0xf8000400,0x18000,0x324a9f80,0x80000008,0xc00,0x324ab596,0xf8000400,0x18c00,0x32501c00,0x80000000,0x4008000,0x32503480,
+0x80000080,0x4008000,0x3251ab80,0x80000000,0x8011,0x32523300,0x80000080,0x4008000,0x32523480,0x80000080,0x4008000,0x32542882,0x80000000,8,0x32581500,0x80000000,
+0,0x32781400,0x800000,0xc820,0x40049b80,0x80000000,0x4000000,0x40080219,0xf8000400,0x10400,0x40080299,0xf8000400,0x10400,0x40080300,0x80001000,0,
+0x4008040e,0xf8000400,0x10400,0x4008040e,0xf8000400,0x28400,0x4008040e,0xf8000400,0x28402,0x40080600,0x800000,0xc820,0x40080602,0x80000000,0,0x40080602,
+0xf8000400,0x18400,0x400806a2,0xf8000400,0x18400,0x4008078a,0xf8000400,0x18400,0x40080804,0xf8000400,0x18400,0x4008090f,0xf8000400,0x18400,0x4008099f,0xf8000400,
+0x18400,0x40080a23,0x80000000,0,0x40080b15,0xf8000400,0x18400,0x40081217,0x80000000,0,0x40081400,0x80000008,0x4000000,0x40081400,0xd0000000,0x1c00,
+0x40081600,0x80000000,2,0x40081800,0x80000000,0x4000000,0x40081800,0x80000080,0x4000000,0x40081b80,0x80000000,0x4000000,0x40082880,0x80000000,0,0x40082d09,
+0xf8000400,0x10400,0x40082d09,0xf8000400,0x28400,0x40082e80,0xf8000480,0x10405,0x400837b0,0x80000000,0,0x400837b0,0xf8000400,0x18400,0x40083897,0x80000000,
+0,0x40083908,0xf8000400,0x10400,0x4008390e,0xf8000400,0x10400,0x4008390e,0xf8001400,0x1040e,0x4008390e,0xf8001400,0x1040f,0x40083919,0xf8000400,0x10400,
+0x40083919,0xf8001400,0x10400,0x40083919,0xf8001400,0x1040e,0x40083919,0xf8001400,0x1040f,0x40083980,0x80000000,0x4000000,0x40083a00,0x80000000,0,0x40083ab1,
+0xf8000400,0x18400,0x40083b31,0xf8000400,0x18400,0x40083b80,0x80000000,0,0x40083c35,0xf8000400,0x18400,0x40083cb3,0xf8000400,0x18400,0x40083d32,0xf8000400,
+0x18400,0x40083daf,0xf8000400,0x18400,0x40083e00,0x80000000,0,0x40089980,0x80000000,0,0x40103b80,0x80000000,0,0x40103c35,0x80000040,0,
+0x4022a980,0x80000000,0x8010,0x40240602,0x50020400,0x60,0x40240602,0x50021000,0x60,0x40240602,0x50021400,0x60,0x40240890,0x50020400,0x60,0x40240890,
+0xd0000400,0x18400,0x4024090f,0x50020400,0x60,0x40240b15,0x50021000,0x60,0x402437b0,0x50020400,0x60,0x402437b0,0x50021000,0x60,0x402437b0,0xd0000400,
+0x18400,0x40248381,0x50021000,0x60,0x4024be81,0x50820000,0x2000060,0x402c37b0,0x80000040,0x1024000,0x40308381,0x50021000,0x60,0x403aa200,0x80000000,0xd,
+0x403aa212,0x80000000,2,0x403aa212,0x80000000,3,0x403aa280,0x80000000,0xd,0x40400602,0x80000000,0x1400,0x404c37b0,0xd0000000,0x15800,0x404c3d32,
+0xd0000000,0x15800,0x4052a980,0x80000000,0x8010,0x4058090f,0x80000000,0,0x40580a23,0x80000000,0,0x40601217,0x50021000,0x60,0x40603834,0xf8000400,
+0x18000,0x41080219,0xf8000400,0x10400,0x41080219,0xf8000400,0x28400,0x4108040e,0xf8000400,0x10400,0x4108040e,0xf8000400,0x28400,0x41080488,0xf8000400,0x10400,
+0x41080488,0xf8000400,0x28400,0x4108078a,0xf8000400,0x18400,0x41080804,0xf8000400,0x18400,0x41080a23,0xf8000400,0x18400,0x41080e8c,0xf8000400,0x18400,0x41080e8c,
+0xf8000400,0x1840f,0x41080f8b,0x80000000,0,0x41080f8b,0xf8000400,0x18400,0x41081400,0x80000000,0x4000000,0x41081499,0xf8000400,0x1040e,0x41081600,0x80000000,
+0,0x41081600,0xf8000480,0x10405,0x41081800,0x80000000,0x4000000,0x41081b80,0x80000000,0x4000000,0x41082e80,0xf8000480,0x10405,0x41083300,0x80000080,0x4000000,
+0x41083908,0xf8000400,0x1040f,0x41083919,0xf8000400,0x10400,0x41083980,0x80000000,0x4000000,0x41083f0e,0x80000000,0,0x41083f8e,0x80000000,0,0x41083f8e,
+0xf8000400,0x18400,0x41084002,0xf8000400,0x18400,0x410840b7,0x80000000,0,0x410840b7,0xf8000400,0x18400,0x41084207,0x80000000,0,0x41084207,0xf8000400,
+0x10400,0x41084207,0xf8000400,0x28400,0x4108428b,0xf8000400,0x18400,0x4108430b,0x80000000,0,0x4108430b,0xf8000400,0x18400,0x4108438c,0xf8000400,0x10400,
+0x41084438,0xf8000400,0x10400,0x41084438,0xf8000400,0x28400,0x410844b9,0x80000000,0,0x410844b9,0xf8000400,0x18400,0x41084500,0x80000000,0,0x4108463d,
+0xf8000400,0x18400,0x4108468e,0xf8000400,0x1040f,0x41084699,0xf8000400,0x10400,0x41084699,0xf8000400,0x1040f,0x41084700,0x80000000,0x4000000,0x410847ba,0x80000000,
+0,0x410847ba,0xf8000400,0x18400,0x4108483c,0xf8000400,0x18400,0x4108483c,0xf8000400,0x1840f,0x41101400,0x80000000,0x4000000,0x411040b7,0x80000000,0,
+0x41104207,0x80000000,0,0x411044b9,0x80000000,0,0x4110463d,0x80000040,0,0x41104700,0x80000000,0x4000000,0x41104700,0x80000018,0x4000000,0x41140da7,
+0x80000000,0,0x41203300,0x80000080,0x4008000,0x4122c880,0x80000000,0x10,0x4122c880,0x80000000,0x8010,0x41240593,0x50020000,0x60,0x41240593,0x50020400,
+0x60,0x41240602,0x50020400,0x60,0x41240f8b,0x50020400,0x60,0x41241581,0x50020000,0x60,0x41243f0e,0x50020000,0x60,0x412440b7,0x50020400,0x60,
+0x412440b7,0xd0000400,0x18400,0x41244181,0x50020000,0x60,0x412444b9,0x50020000,0x60,0x412444b9,0x50020400,0x60,0x412444b9,0x50060000,0x60,0x412447ba,
+0x50020000,0x60,0x412447ba,0x50020400,0x60,0x412447ba,0x50060000,0x60,0x412447ba,0xd0000000,0,0x412447ba,0xd0000400,0x18400,0x41248381,0x50020000,
+0x60,0x412c0593,0x80000000,0,0x412c0602,0x80000000,0,0x412ec880,0x80000000,0x10,0x41308381,0x50020000,0x60,0x413aa200,0x80000000,3,
+0x413aa391,0xf8400c00,0x18000,0x413aa791,0xf8000c00,0x18001,0x413ac100,0x80000000,0,0x413ec880,0x80000000,0x10,0x4142c880,0x80000000,0x1410,0x414c0a23,
+0xd0000000,0x15800,0x414c45bb,0xd0000000,0x15800,0x41503300,0x80000080,0x4008000,0x4152c880,0x80000000,0x8010,0x41540602,0x80000000,0,0x41581500,0x80000000,
+0,0x415c4700,0x80000000,0x4008000,0x416045bb,0x80000000,0,0x416045bb,0xd0000400,0x18000,0x416045bb,0xf8000400,0x18000,0x50080219,0xf8000400,0x10400,
+0x50080219,0xf8000400,0x28400,0x5008040e,0xf8000400,0x10400,0x50080488,0xf8000400,0x10400,0x50080488,0xf8000400,0x28400,0x5008078a,0xf8000400,0x18400,0x50080b15,
+0x80000000,0,0x50081600,0x80000000,0,0x50081619,0xf8000400,0x10400,0x50081699,0xf8000400,0x10400,0x50081800,0x80000000,0x4000000,0x50081800,0x80000080,
+0x4000000,0x50081b80,0x80000000,0x4000000,0x50082e80,0xf8000480,0x10405,0x50082e80,0xf8000480,0x28405,0x50083088,0xf8000400,0x10400,0x50083088,0xf8000400,0x28400,
+0x50083300,0x80000080,0x4000000,0x50083980,0x80000000,0x4000000,0x50084500,0xf8001400,0x18400,0x50084957,0x80000000,0,0x50084957,0xf8000400,0x18400,0x50084957,
+0xf8001400,0x18400,0x50084957,0xf8002400,0x18400,0x500849be,0x80000000,0,0x500849be,0xf8000400,0x18400,0x500849be,0xf8000400,0x18401,0x50084a19,0xf8000400,
+0x10400,0x50084a19,0xf8000400,0x28400,0x50084a80,0x80001000,0,0x50084b5a,0xf8000400,0x18400,0x50084bdb,0x80000000,0,0x50084bdb,0xf8000400,0x18400,
+0x50084c65,0xf8000400,0x18400,0x50084ce5,0xf8000400,0x18400,0x50084d00,0x80000000,0,0x501049be,0x80000000,0,0x501049be,0x80000040,0,0x501049be,
+0x80000040,0x1024000,0x50104bdb,0x80000040,0,0x50104ce5,0x80000040,0,0x50144b5a,0x80000000,0,0x50240593,0x50021400,0x60,0x50240b15,0x50020400,
+0x60,0x50241581,0x50020080,0x60,0x50244181,0x50021000,0x60,0x50244957,0x50021000,0x60,0x502449be,0x50020400,0x60,0x502449be,0x50021000,0x60,
+0x502449be,0xd0000400,0x18400,0x502449be,0xd0000400,0x18401,0x502449be,0xd0041000,0,0x502c4957,0x80000040,0x1024000,0x502c4b5a,0x80000040,0x1024000,0x50404957,
+0x80000040,0x1400,0x504c4957,0xd0000000,0x15800,0x504c49be,0xd0000000,0x15800};
-static const int32_t countPropsVectors=3183;
+static const int32_t countPropsVectors=3384;
static const int32_t propsVectorsColumns=3;
-static const int32_t indexes[UPROPS_INDEX_COUNT]={0x18ee,0x18ee,0x18ee,0x18ee,0x38d4,3,0x4543,0,0,0,0x8ec8bd,0x29d31,0,0,0,0};
+static const int32_t indexes[UPROPS_INDEX_COUNT]={0x1a54,0x1a54,0x1a54,0x1a54,0x3b66,3,0x489e,0,0,0,0x8ecd67,0x29d31,0,0,0,0};
diff --git a/Build/source/libs/icu-xetex/common/ucln_cmn.c b/Build/source/libs/icu-xetex/common/ucln_cmn.c
index c14b3dbc4a0..452e628bb38 100644
--- a/Build/source/libs/icu-xetex/common/ucln_cmn.c
+++ b/Build/source/libs/icu-xetex/common/ucln_cmn.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2001-2004, International Business Machines *
+* Copyright (C) 2001-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -26,9 +26,11 @@
#include "uassert.h"
static cleanupFunc *gCommonCleanupFunctions[UCLN_COMMON_COUNT];
+static cleanupFunc *gLibCleanupFunctions[UCLN_COMMON];
-void ucln_common_registerCleanup(ECleanupCommonType type,
- cleanupFunc *func)
+U_CFUNC void
+ucln_common_registerCleanup(ECleanupCommonType type,
+ cleanupFunc *func)
{
U_ASSERT(UCLN_COMMON_START < type && type < UCLN_COMMON_COUNT);
if (UCLN_COMMON_START < type && type < UCLN_COMMON_COUNT)
@@ -37,10 +39,30 @@ void ucln_common_registerCleanup(ECleanupCommonType type,
}
}
-U_CFUNC UBool ucln_common_lib_cleanup(void) {
- ECleanupCommonType commonFunc;
+U_CAPI void U_EXPORT2
+ucln_registerCleanup(ECleanupLibraryType type,
+ cleanupFunc *func)
+{
+ U_ASSERT(UCLN_START < type && type < UCLN_COMMON);
+ if (UCLN_START < type && type < UCLN_COMMON)
+ {
+ gLibCleanupFunctions[type] = func;
+ }
+}
+
+U_CFUNC UBool ucln_lib_cleanup(void) {
+ ECleanupLibraryType libType = UCLN_START;
+ ECleanupCommonType commonFunc = UCLN_COMMON_START;
+
+ for (libType++; libType<UCLN_COMMON; libType++) {
+ if (gLibCleanupFunctions[libType])
+ {
+ gLibCleanupFunctions[libType]();
+ gLibCleanupFunctions[libType] = NULL;
+ }
+ }
- for (commonFunc = UCLN_COMMON_START+1; commonFunc<UCLN_COMMON_COUNT; commonFunc++) {
+ for (commonFunc++; commonFunc<UCLN_COMMON_COUNT; commonFunc++) {
if (gCommonCleanupFunctions[commonFunc])
{
gCommonCleanupFunctions[commonFunc]();
diff --git a/Build/source/libs/icu-xetex/common/ucln_cmn.h b/Build/source/libs/icu-xetex/common/ucln_cmn.h
index 167f1f3c677..b6f069959cd 100644
--- a/Build/source/libs/icu-xetex/common/ucln_cmn.h
+++ b/Build/source/libs/icu-xetex/common/ucln_cmn.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2001-2005, International Business Machines *
+* Copyright (C) 2001-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -26,7 +26,7 @@ U_CFUNC UBool umtx_cleanup(void);
U_CFUNC UBool utrace_cleanup(void);
-U_CFUNC UBool ucln_common_lib_cleanup(void);
+U_CFUNC UBool ucln_lib_cleanup(void);
/*
Please keep the order of enums declared in same order
@@ -35,6 +35,7 @@ typedef enum ECleanupCommonType {
UCLN_COMMON_START = -1,
UCLN_COMMON_USPREP,
UCLN_COMMON_BREAKITERATOR,
+ UCLN_COMMON_BREAKITERATOR_DICT,
UCLN_COMMON_SERVICE,
UCLN_COMMON_URES,
UCLN_COMMON_LOCALE,
diff --git a/Build/source/libs/icu-xetex/common/ucmp8.c b/Build/source/libs/icu-xetex/common/ucmp8.c
deleted file mode 100644
index f22c2e13667..00000000000
--- a/Build/source/libs/icu-xetex/common/ucmp8.c
+++ /dev/null
@@ -1,572 +0,0 @@
-/*
-********************************************************************
-* COPYRIGHT:
-* Copyright (c) 1997-2004, International Business Machines Corporation and
-* others. All Rights Reserved.
-********************************************************************
-*/
-
-#include "ucmp8.h"
-#include "cmemory.h"
-
-/* internal constants*/
-
-
-U_CAPI int32_t U_EXPORT2
-ucmp8_getkUnicodeCount() { return UCMP8_kUnicodeCount;}
-
-U_CAPI int32_t U_EXPORT2
-ucmp8_getkBlockCount() { return UCMP8_kBlockCount;}
-
-U_CAPI void U_EXPORT2
-ucmp8_initBogus(CompactByteArray* array)
-{
- CompactByteArray* this_obj = array;
-
- if (this_obj == NULL) return;
-
- this_obj->fStructSize = sizeof(CompactByteArray);
- this_obj->fArray = NULL;
- this_obj->fIndex = NULL;
- this_obj->fCount = UCMP8_kUnicodeCount;
- this_obj->fCompact = FALSE;
- this_obj->fBogus = TRUE;
- this_obj->fAlias = FALSE;
- this_obj->fIAmOwned = TRUE;
-}
-
-/* debug flags*/
-/*=======================================================*/
-U_CAPI void U_EXPORT2
-ucmp8_init(CompactByteArray* array, int8_t defaultValue)
-{
-/* set up the index array and the data array.
- * the index array always points into particular parts of the data array
- * it is initially set up to point at regular block boundaries
- * The following example uses blocks of 4 for simplicity
- * Example: Expanded
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 8 12 16 ...
- * ARRAY abcdeababcedzyabcdea...
- * | | | | | |...
- * whenever you set an element in the array, it unpacks to this state
- * After compression, the index will point to various places in the data array
- * wherever there is a runs of the same elements as in the original
- * Example: Compressed
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 1 8 2 ...
- * ARRAY abcdeabazyabc...
- * If you look at the example, index# 2 in the expanded version points
- * to data position number 8, which has elements "bced". In the compressed
- * version, index# 2 points to data position 1, which also has "bced"
- */
- CompactByteArray* this_obj = array;
- int32_t i;
-
- if (this_obj == NULL) return;
-
- this_obj->fStructSize = sizeof(CompactByteArray);
- this_obj->fArray = NULL;
- this_obj->fIndex = NULL;
- this_obj->fCount = UCMP8_kUnicodeCount;
- this_obj->fCompact = FALSE;
- this_obj->fBogus = FALSE;
- this_obj->fAlias = FALSE;
- this_obj->fIAmOwned = TRUE;
-
-
- this_obj->fArray = (int8_t*) uprv_malloc(sizeof(int8_t) * UCMP8_kUnicodeCount);
- if (!this_obj->fArray)
- {
- this_obj->fBogus = TRUE;
- return;
- }
- this_obj->fIndex = (uint16_t*) uprv_malloc(sizeof(uint16_t) * UCMP8_kIndexCount);
- if (!this_obj->fIndex)
- {
- uprv_free(this_obj->fArray);
- this_obj->fArray = NULL;
- this_obj->fBogus = TRUE;
- return;
- }
- for (i = 0; i < UCMP8_kUnicodeCount; ++i)
- {
- this_obj->fArray[i] = defaultValue;
- }
- for (i = 0; i < UCMP8_kIndexCount; ++i)
- {
- this_obj->fIndex[i] = (uint16_t)(i << UCMP8_kBlockShift);
- }
-}
-
-U_CAPI CompactByteArray* U_EXPORT2
-ucmp8_open(int8_t defaultValue)
-{
-/* set up the index array and the data array.
- * the index array always points into particular parts of the data array
- * it is initially set up to point at regular block boundaries
- * The following example uses blocks of 4 for simplicity
- * Example: Expanded
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 8 12 16 ...
- * ARRAY abcdeababcedzyabcdea...
- * | | | | | |...
- * whenever you set an element in the array, it unpacks to this state
- * After compression, the index will point to various places in the data array
- * wherever there is a runs of the same elements as in the original
- * Example: Compressed
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 1 8 2 ...
- * ARRAY abcdeabazyabc...
- * If you look at the example, index# 2 in the expanded version points
- * to data position number 8, which has elements "bced". In the compressed
- * version, index# 2 points to data position 1, which also has "bced"
- */
- CompactByteArray* this_obj = (CompactByteArray*) uprv_malloc(sizeof(CompactByteArray));
- int32_t i;
-
- if (this_obj == NULL) return NULL;
-
- this_obj->fStructSize = sizeof(CompactByteArray);
- this_obj->fArray = NULL;
- this_obj->fIndex = NULL;
- this_obj->fCount = UCMP8_kUnicodeCount;
- this_obj->fCompact = FALSE;
- this_obj->fBogus = FALSE;
- this_obj->fAlias = FALSE;
- this_obj->fIAmOwned = FALSE;
-
-
- this_obj->fArray = (int8_t*) uprv_malloc(sizeof(int8_t) * UCMP8_kUnicodeCount);
- if (!this_obj->fArray)
- {
- this_obj->fBogus = TRUE;
- return NULL;
- }
- this_obj->fIndex = (uint16_t*) uprv_malloc(sizeof(uint16_t) * UCMP8_kIndexCount);
- if (!this_obj->fIndex)
- {
- uprv_free(this_obj->fArray);
- this_obj->fArray = NULL;
- this_obj->fBogus = TRUE;
- return NULL;
- }
- for (i = 0; i < UCMP8_kUnicodeCount; ++i)
- {
- this_obj->fArray[i] = defaultValue;
- }
- for (i = 0; i < UCMP8_kIndexCount; ++i)
- {
- this_obj->fIndex[i] = (uint16_t)(i << UCMP8_kBlockShift);
- }
-
- return this_obj;
-}
-
-U_CAPI CompactByteArray* U_EXPORT2
-ucmp8_openAdopt(uint16_t *indexArray,
- int8_t *newValues,
- int32_t count)
-{
- CompactByteArray* this_obj = (CompactByteArray*) uprv_malloc(sizeof(CompactByteArray));
- /* test for NULL */
- if(this_obj == NULL)
- return NULL;
- ucmp8_initAdopt(this_obj, indexArray, newValues, count);
- this_obj->fIAmOwned = FALSE;
- return this_obj;
-}
-
-U_CAPI CompactByteArray* U_EXPORT2
-ucmp8_openAlias(uint16_t *indexArray,
- int8_t *newValues,
- int32_t count)
-{
- CompactByteArray* this_obj = (CompactByteArray*) uprv_malloc(sizeof(CompactByteArray));
- /* test for NULL */
- if(this_obj == NULL)
- return NULL;
- ucmp8_initAlias(this_obj, indexArray, newValues, count);
- this_obj->fIAmOwned = FALSE;
- return this_obj;
-}
-
-/*=======================================================*/
-
-U_CAPI CompactByteArray* U_EXPORT2
-ucmp8_initAdopt(CompactByteArray *this_obj,
- uint16_t *indexArray,
- int8_t *newValues,
- int32_t count)
-{
- if (this_obj) {
- this_obj->fCount = count;
- this_obj->fBogus = FALSE;
- this_obj->fStructSize = sizeof(CompactByteArray);
-
- this_obj->fArray = newValues;
- this_obj->fIndex = indexArray;
- this_obj->fCompact = (UBool)((count < UCMP8_kUnicodeCount) ? TRUE : FALSE);
- this_obj->fAlias = FALSE;
- this_obj->fIAmOwned = TRUE;
- }
-
- return this_obj;
-}
-
-U_CAPI CompactByteArray* U_EXPORT2
-ucmp8_initAlias(CompactByteArray *this_obj,
- uint16_t *indexArray,
- int8_t *newValues,
- int32_t count)
-{
- if (this_obj) {
- this_obj->fArray = NULL;
- this_obj->fIndex = NULL;
- this_obj->fCount = count;
- this_obj->fBogus = FALSE;
- this_obj->fStructSize = sizeof(CompactByteArray);
-
- this_obj->fArray = newValues;
- this_obj->fIndex = indexArray;
- this_obj->fCompact = (UBool)((count < UCMP8_kUnicodeCount) ? TRUE : FALSE);
- this_obj->fAlias = TRUE;
- this_obj->fIAmOwned = TRUE;
- }
-
- return this_obj;
-}
-
-/*=======================================================*/
-
-U_CAPI void U_EXPORT2
-ucmp8_close(CompactByteArray* this_obj)
-{
- if(this_obj != NULL) {
- if(!this_obj->fAlias) {
- if(this_obj->fArray != NULL) {
- uprv_free(this_obj->fArray);
- }
- if(this_obj->fIndex != NULL) {
- uprv_free(this_obj->fIndex);
- }
- }
- if(!this_obj->fIAmOwned) /* Called if 'init' was called instead of 'open'. */
- {
- uprv_free(this_obj);
- }
- }
-}
-
-
-/*=======================================================*/
-
-U_CAPI void U_EXPORT2
-ucmp8_expand(CompactByteArray* this_obj)
-{
- /* can optimize later.
- * if we have to expand, then walk through the blocks instead of using Get
- * this code unpacks the array by copying the blocks to the normalized position.
- * Example: Compressed
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 1 8 2 ...
- * ARRAY abcdeabazyabc...
- * turns into
- * Example: Expanded
- * INDEX# 0 1 2 3 4
- * INDEX 0 4 8 12 16 ...
- * ARRAY abcdeababcedzyabcdea...
- */
- int32_t i;
- if (this_obj->fCompact)
- {
- int8_t* tempArray;
- tempArray = (int8_t*) uprv_malloc(sizeof(int8_t) * UCMP8_kUnicodeCount);
- if (!tempArray)
- {
- this_obj->fBogus = TRUE;
- return;
- }
- for (i = 0; i < UCMP8_kUnicodeCount; ++i)
- {
- tempArray[i] = ucmp8_get(this_obj,(UChar)i); /* HSYS : How expand?*/
- }
- for (i = 0; i < UCMP8_kIndexCount; ++i)
- {
- this_obj->fIndex[i] = (uint16_t)(i<< UCMP8_kBlockShift);
- }
- uprv_free(this_obj->fArray);
- this_obj->fArray = tempArray;
- this_obj->fCompact = FALSE;
- this_obj->fAlias = FALSE;
-
- }
-}
-
-
-/*=======================================================*/
-/* this_obj->fArray: an array to be overlapped
- * start and count: specify the block to be overlapped
- * tempIndex: the overlapped array (actually indices back into inputContents)
- * inputHash: an index of hashes for tempIndex, where
- * inputHash[i] = XOR of values from i-count+1 to i
- */
-static int32_t
-findOverlappingPosition(CompactByteArray* this_obj,
- uint32_t start,
- const UChar* tempIndex,
- int32_t tempIndexCount,
- uint32_t cycle)
-{
- /* this_obj is a utility routine for finding blocks that overlap.
- * IMPORTANT: the cycle number is very important. Small cycles take a lot
- * longer to work. In some cases, they may be able to get better compaction.
- */
-
- int32_t i;
- int32_t j;
- int32_t currentCount;
-
- for (i = 0; i < tempIndexCount; i += cycle)
- {
- currentCount = UCMP8_kBlockCount;
- if (i + UCMP8_kBlockCount > tempIndexCount)
- {
- currentCount = tempIndexCount - i;
- }
- for (j = 0; j < currentCount; ++j)
- {
- if (this_obj->fArray[start + j] != this_obj->fArray[tempIndex[i + j]])
- break;
- }
- if (j == currentCount)
- break;
- }
-
- return i;
-}
-
-U_CAPI UBool U_EXPORT2
-ucmp8_isBogus(const CompactByteArray* this_obj)
-{
- return (UBool)(this_obj == NULL || this_obj->fBogus);
-}
-
-U_CAPI const int8_t* U_EXPORT2
-ucmp8_getArray(const CompactByteArray* this_obj)
-{
- return this_obj->fArray;
-}
-
-U_CAPI const uint16_t* U_EXPORT2
-ucmp8_getIndex(const CompactByteArray* this_obj)
-{
- return this_obj->fIndex;
-}
-
-U_CAPI int32_t U_EXPORT2
-ucmp8_getCount(const CompactByteArray* this_obj)
-{
- return this_obj->fCount;
-}
-
-
-U_CAPI void U_EXPORT2
-ucmp8_set(CompactByteArray* this_obj,
- UChar c,
- int8_t value)
-{
- if (this_obj->fCompact == TRUE)
- {
- ucmp8_expand(this_obj);
- if (this_obj->fBogus) return;
- }
- this_obj->fArray[(int32_t)c] = value;
-}
-
-
-U_CAPI void U_EXPORT2
-ucmp8_setRange(CompactByteArray* this_obj,
- UChar start,
- UChar end,
- int8_t value)
-{
- int32_t i;
- if (this_obj->fCompact == TRUE)
- {
- ucmp8_expand(this_obj);
- if (this_obj->fBogus)
- return;
- }
- for (i = start; i <= end; ++i)
- {
- this_obj->fArray[i] = value;
- }
-}
-
-
-/*=======================================================*/
-
-U_CAPI void U_EXPORT2
-ucmp8_compact(CompactByteArray* this_obj,
- uint32_t cycle)
-{
- if (!this_obj->fCompact)
- {
- /* this_obj actually does the compaction.
- * it walks throught the contents of the expanded array, finding the
- * first block in the data that matches the contents of the current index.
- * As it works, it keeps an updated pointer to the last position,
- * so that it knows how big to make the final array
- * If the matching succeeds, then the index will point into the data
- * at some earlier position.
- * If the matching fails, then last position pointer will be bumped,
- * and the index will point to that last block of data.
- */
- UChar* tempIndex;
- int32_t tempIndexCount;
- int8_t* tempArray;
- int32_t iBlock, iIndex;
-
- /* fix cycle, must be 0 < cycle <= blockcount*/
- if (cycle <= 0)
- cycle = 1;
- else if (cycle > (uint32_t)UCMP8_kBlockCount)
- cycle = UCMP8_kBlockCount;
-
- /* make temp storage, larger than we need*/
- tempIndex = (UChar*) uprv_malloc(sizeof(UChar)* UCMP8_kUnicodeCount);
- if (!tempIndex)
- {
- this_obj->fBogus = TRUE;
- return;
- }
- /* set up first block.*/
- tempIndexCount = UCMP8_kBlockCount;
- for (iIndex = 0; iIndex < UCMP8_kBlockCount; ++iIndex)
- {
- tempIndex[iIndex] = (uint16_t)iIndex;
- } /* endfor (iIndex = 0; .....)*/
- this_obj->fIndex[0] = 0;
-
- /* for each successive block, find out its first position in the compacted array*/
- for (iBlock = 1; iBlock < UCMP8_kIndexCount; ++iBlock)
- {
- int32_t newCount, firstPosition, block;
- block = iBlock << UCMP8_kBlockShift;
- /* if (debugSmall) if (block > debugSmallLimit) break;*/
- firstPosition = findOverlappingPosition(this_obj,
- block,
- tempIndex,
- tempIndexCount,
- cycle);
-
- /* if not contained in the current list, copy the remainder
- * invariant; cumulativeHash[iBlock] = XOR of values from iBlock-kBlockCount+1 to iBlock
- * we do this_obj by XORing out cumulativeHash[iBlock-kBlockCount]
- */
- newCount = firstPosition + UCMP8_kBlockCount;
- if (newCount > tempIndexCount)
- {
- for (iIndex = tempIndexCount; iIndex < newCount; ++iIndex)
- {
- tempIndex[iIndex] = (uint16_t)(iIndex - firstPosition + block);
- } /* endfor (iIndex = tempIndexCount....)*/
- tempIndexCount = newCount;
- } /* endif (newCount > tempIndexCount)*/
- this_obj->fIndex[iBlock] = (uint16_t)firstPosition;
- } /* endfor (iBlock = 1.....)*/
-
- /* now allocate and copy the items into the array*/
- tempArray = (int8_t*) uprv_malloc(tempIndexCount * sizeof(int8_t));
- if (!tempArray)
- {
- this_obj->fBogus = TRUE;
- uprv_free(tempIndex);
- return;
- }
- for (iIndex = 0; iIndex < tempIndexCount; ++iIndex)
- {
- tempArray[iIndex] = this_obj->fArray[tempIndex[iIndex]];
- }
- uprv_free(this_obj->fArray);
- this_obj->fArray = tempArray;
- this_obj->fCount = tempIndexCount;
-
-
- /* free up temp storage*/
- uprv_free(tempIndex);
- this_obj->fCompact = TRUE;
- } /* endif (!this_obj->fCompact)*/
-}
-
-#define MEMORY_WRITE(destAddr, source, sizeSoFar, len) \
- if (destAddr) {\
- uprv_memcpy(destAddr+sizeSoFar, source, len);\
- }\
- sizeSoFar += (len)
-
-U_CAPI uint32_t U_EXPORT2 ucmp8_flattenMem (const CompactByteArray* array, uint8_t *MS)
-{
- int32_t size = 0;
- static const int32_t version = ICU_UCMP8_VERSION;
-
- MEMORY_WRITE(MS, &version, size, 4);
-
- MEMORY_WRITE(MS, &array->fCount, size, 4);
-
- MEMORY_WRITE(MS, array->fIndex, size, sizeof(array->fIndex[0])*UCMP8_kIndexCount);
-
- MEMORY_WRITE(MS, array->fArray, size, sizeof(array->fArray[0])*array->fCount);
-
- while(size%4) /* end padding */
- {
- uint8_t pad = 0;
- MEMORY_WRITE(MS, &pad, size, 1);
- }
-
- return size;
-}
-
-/* We use sizeof(*array), etc so that this code can be as portable as
- possible between the ucmpX_ family.
-*/
-
-U_CAPI void U_EXPORT2 ucmp8_initFromData(CompactByteArray *this_obj, const uint8_t **source, UErrorCode *status)
-{
- uint32_t i;
- const uint8_t *oldSource = *source;
-
- if(U_FAILURE(*status))
- return;
-
- this_obj->fArray = NULL;
- this_obj->fIndex = NULL;
- this_obj->fBogus = FALSE;
- this_obj->fStructSize = sizeof(CompactByteArray);
- this_obj->fCompact = TRUE;
- this_obj->fAlias = TRUE;
- this_obj->fIAmOwned = TRUE;
-
- i = * ((const uint32_t*) *source);
- (*source) += 4;
-
- if(i != ICU_UCMP8_VERSION)
- {
- *status = U_INVALID_FORMAT_ERROR;
- return;
- }
-
- this_obj->fCount = * ((const uint32_t*)*source);
- (*source) += 4;
-
- this_obj->fIndex = (uint16_t*) *source;
- (*source) += sizeof(this_obj->fIndex[0])*UCMP8_kIndexCount;
-
- this_obj->fArray = (int8_t*) *source;
- (*source) += sizeof(this_obj->fArray[0])*this_obj->fCount;
-
- /* eat up padding */
- while((*source-(oldSource))%4)
- (*source)++;
-}
diff --git a/Build/source/libs/icu-xetex/common/ucmp8.h b/Build/source/libs/icu-xetex/common/ucmp8.h
deleted file mode 100644
index b4951825ba5..00000000000
--- a/Build/source/libs/icu-xetex/common/ucmp8.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- ********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1996-2004, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************
- */
-
-
-
-#ifndef UCMP8_H
-#define UCMP8_H
-
-/* 32-bits.
- Bump this whenever the internal structure changes.
-*/
-#define ICU_UCMP8_VERSION 0x01260000
-
-#include "unicode/utypes.h"
-
-/*====================================
- * class CompactByteArray
- * Provides a compact way to store information that is indexed by Unicode values,
- * such as character properties, types, keyboard values, etc.
- * The ATypes are used by value, so should be small, integers or pointers.
- *====================================
- */
-
-U_CAPI int32_t U_EXPORT2 ucmp8_getkUnicodeCount(void);
-U_CAPI int32_t U_EXPORT2 ucmp8_getkBlockCount(void);
-
-typedef struct CompactByteArray {
- uint32_t fStructSize;
- int8_t* fArray;
- uint16_t* fIndex;
- int32_t fCount;
- UBool fCompact;
- UBool fBogus;
- UBool fAlias;
- UBool fIAmOwned; /* don't free CBA on close */
-} CompactByteArray;
-
-#define UCMP8_kUnicodeCount 65536
-#define UCMP8_kBlockShift 7
-#define UCMP8_kBlockCount (1<<UCMP8_kBlockShift)
-#define UCMP8_kIndexShift (16-UCMP8_kBlockShift)
-#define UCMP8_kIndexCount (1<<UCMP8_kIndexShift)
-#define UCMP8_kBlockMask (UCMP8_kBlockCount-1)
-
-
-/**
- * Construct an empty CompactByteArray with uprv_malloc(). Do not call any of the
- * ucmp8_init*() functions after using this function. They will cause a memory
- * leak.
- *
- * @param defaultValue the default value for all characters not explicitly in the array
- * @see ucmp8_init
- * @see ucmp8_initBogus
- * @return The initialized array.
- */
-U_CAPI CompactByteArray* U_EXPORT2 ucmp8_open(int8_t defaultValue);
-
-/**
- * Construct a CompactByteArray from a pre-computed index and values array. The values
- * will be adopted by the CompactByteArray. Memory is allocated with uprv_malloc.
- * Note: for speed, the compact method will only re-use blocks in the values array
- * that are on a block boundary. The pre-computed arrays passed in to this constructor
- * may re-use blocks at any position in the values array. The indexArray and newValues
- * will be uprv_free'd when ucmp16_close() is called.
- *
- * @param indexArray the index array to be adopted
- * @param newValues the value array to be adopted
- * @param count the number of entries in the value array
- * @return the newly constructed ComapctByteArray
- * @see compact
- */
-U_CAPI CompactByteArray* U_EXPORT2 ucmp8_openAdopt(uint16_t* indexArray,
- int8_t* newValues,
- int32_t count);
-
-/**
- * Construct a CompactByteArray from a pre-computed index and values array. The values
- * will be aliased by the CompactByteArray. Memory is allocated with uprv_malloc.
- * Note: for speed, the compact method will only re-use blocks in the values array
- * that are on a block boundary. The pre-computed arrays passed in to this constructor
- * may re-use blocks at any position in the values array.
- *
- * @param indexArray the index array to be adopted
- * @param newValues the value array to be adopted
- * @param count the number of entries in the value array
- * @return the newly constructed CompactByteArray
- * @see compact
- */
-U_CAPI CompactByteArray* U_EXPORT2 ucmp8_openAlias(uint16_t* indexArray,
- int8_t* newValues,
- int32_t count);
-
-
-/**
- * Initialize an empty CompactByteArray. Do not call this function
- * if you created the array with ucmp8_open() because it will cause a memory
- * leak.
- *
- * @param defaultValue the default value for all characters not explicitly in the array
- * @param array An uninitialized CompactByteArray
- * @see ucmp8_open
- */
-U_CAPI void U_EXPORT2 ucmp8_init(CompactByteArray* array, int8_t defaultValue);
-
-/**
- * Initialize an empty CompactByteArray to the bogus value. Do not call this
- * function if you created the array with ucmp8_open() because it will cause
- * a memory leak.
- *
- * @param array An uninitialized CompactByteArray
- * @see ucmp8_open
- * @see ucmp8_isBogus
- */
-U_CAPI void U_EXPORT2 ucmp8_initBogus(CompactByteArray* array);
-
-/**
- * Initialize a CompactByteArray from a pre-computed index and values array. The values
- * will be adopted by the CompactByteArray. Memory is allocated with uprv_malloc.
- * Note: for speed, the compact method will only re-use blocks in the values array
- * that are on a block boundary. The pre-computed arrays passed in to this constructor
- * may re-use blocks at any position in the values array. The indexArray and newValues
- * will be uprv_free'd when ucmp16_close() is called.
- *
- * @param this_obj An uninitialized CompactByteArray
- * @param indexArray the index array to be adopted
- * @param newValues the value array to be adopted
- * @param count the number of entries in the value array
- * @return the pointer refers to the CompactByteArray
- * @see compact
- */
-U_CAPI CompactByteArray* U_EXPORT2 ucmp8_initAdopt(CompactByteArray *this_obj,
- uint16_t* indexArray,
- int8_t* newValues,
- int32_t count);
-
-/**
- * Initialize a CompactByteArray from a pre-computed index and values array. The values
- * will be aliased by the CompactByteArray. Memory is allocated with uprv_malloc.
- * Note: for speed, the compact method will only re-use blocks in the values array
- * that are on a block boundary. The pre-computed arrays passed in to this constructor
- * may re-use blocks at any position in the values array.
- *
- * @param this_obj An uninitialized CompactByteArray
- * @param indexArray the index array to be adopted
- * @param newValues the value array to be adopted
- * @param count the number of entries in the value array
- * @return the pointer refers to the CompactByteArray
- * @see compact
- */
-U_CAPI CompactByteArray* U_EXPORT2 ucmp8_initAlias(CompactByteArray *this_obj,
- uint16_t* indexArray,
- int8_t* newValues,
- int32_t count);
-
-/**
- * Free up any allocated memory associated with this compact array.
- * The memory that is uprv_free'd depends on how the array was initialized
- * or opened.
- *
- * @param array The compact array to close
- */
-U_CAPI void U_EXPORT2 ucmp8_close(CompactByteArray* array);
-
-/**
- * Returns TRUE if the creation of the compact array fails.
- * @param array The CompactByteArray to be created.
- * @return TRUE if the creation of the compact array fails.
- */
-U_CAPI UBool U_EXPORT2 ucmp8_isBogus(const CompactByteArray* array);
-
-/**
- * Get the mapped value of a Unicode character.
- *
- * @param index the character to get the mapped value with
- * @return the mapped value of the given character
- */
-#define ucmp8_get(array, index) (array->fArray[(array->fIndex[index >> UCMP8_kBlockShift] & 0xFFFF) + (index & UCMP8_kBlockMask)])
-
-#define ucmp8_getu(array,index) (uint8_t)ucmp8_get(array,index)
-
-
-/**
- * Set a new value for a Unicode character.
- * Set automatically expands the array if it is compacted.
- *
- * @param array the CompactByteArray to be set
- * @param character the character to set the mapped value with
- * @param value the new mapped value
- */
-U_CAPI void U_EXPORT2 ucmp8_set(CompactByteArray* array,
- UChar character,
- int8_t value);
-
-/**
- * Set new values for a range of Unicode character.
- *
- * @param array the CompactByteArray to be set
- * @param start the starting offset of the range
- * @param end the ending offset of the range
- * @param value the new mapped value
- */
-U_CAPI void U_EXPORT2 ucmp8_setRange(CompactByteArray* array,
- UChar start,
- UChar end,
- int8_t value);
-
-U_CAPI int32_t U_EXPORT2 ucmp8_getCount(const CompactByteArray* array);
-U_CAPI const int8_t* U_EXPORT2 ucmp8_getArray(const CompactByteArray* array);
-U_CAPI const uint16_t* U_EXPORT2 ucmp8_getIndex(const CompactByteArray* array);
-
-/**
- * Compact the array.
- * The value of cycle determines how large the overlap can be.
- * A cycle of 1 is the most compacted, but takes the most time to do.
- * If values stored in the array tend to repeat in cycles of, say, 16,
- * then using that will be faster than cycle = 1, and get almost the
- * same compression.
- * @param array The CompactByteArray to be compacted
- * @param cycle The value determines how large the overlap can be.
- */
-U_CAPI void U_EXPORT2 ucmp8_compact(CompactByteArray* array,
- uint32_t cycle);
-
-/** Expanded takes the array back to a 65536 element array
- * @param array The CompactByteArray to be expanded
- */
-U_CAPI void U_EXPORT2 ucmp8_expand(CompactByteArray* array);
-
-/**
- * Flatten into a memory structure. Pass in NULL to pre-flight to get the required size.
- * @internal
- */
-U_CAPI uint32_t U_EXPORT2 ucmp8_flattenMem(const CompactByteArray* array, uint8_t *MS);
-
-/* initializes an existing CBA from memory. Will cause ucmp8_close() to not deallocate anything. */
-U_CAPI void U_EXPORT2 ucmp8_initFromData(CompactByteArray* array, const uint8_t **source, UErrorCode *status);
-
-#endif
-
diff --git a/Build/source/libs/icu-xetex/common/ucnv.c b/Build/source/libs/icu-xetex/common/ucnv.c
index 42b9443880a..ff6eebafd1a 100644
--- a/Build/source/libs/icu-xetex/common/ucnv.c
+++ b/Build/source/libs/icu-xetex/common/ucnv.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -249,6 +249,19 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U
uprv_memcpy(localConverter, cnv, sizeof(UConverter));
localConverter->isCopyLocal = localConverter->isExtraLocal = FALSE;
+ /* copy the substitution string */
+ if (cnv->subChars == (uint8_t *)cnv->subUChars) {
+ localConverter->subChars = (uint8_t *)localConverter->subUChars;
+ } else {
+ localConverter->subChars = (uint8_t *)uprv_malloc(UCNV_ERROR_BUFFER_LENGTH * U_SIZEOF_UCHAR);
+ if (localConverter->subChars == NULL) {
+ uprv_free(allocatedConverter);
+ UTRACE_EXIT_STATUS(*status);
+ return NULL;
+ }
+ uprv_memcpy(localConverter->subChars, cnv->subChars, UCNV_ERROR_BUFFER_LENGTH * U_SIZEOF_UCHAR);
+ }
+
/* now either call the safeclone fcn or not */
if (cnv->sharedData->impl->safeClone != NULL) {
/* call the custom safeClone function */
@@ -256,6 +269,9 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U
}
if(localConverter==NULL || U_FAILURE(*status)) {
+ if (allocatedConverter != NULL && allocatedConverter->subChars != (uint8_t *)allocatedConverter->subUChars) {
+ uprv_free(allocatedConverter->subChars);
+ }
uprv_free(allocatedConverter);
UTRACE_EXIT_STATUS(*status);
return NULL;
@@ -295,27 +311,6 @@ ucnv_safeClone(const UConverter* cnv, void *stackBuffer, int32_t *pBufferSize, U
U_CAPI void U_EXPORT2
ucnv_close (UConverter * converter)
{
- /* first, notify the callback functions that the converter is closed */
- UConverterToUnicodeArgs toUArgs = {
- sizeof(UConverterToUnicodeArgs),
- TRUE,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
- UConverterFromUnicodeArgs fromUArgs = {
- sizeof(UConverterFromUnicodeArgs),
- TRUE,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL
- };
UErrorCode errorCode = U_ZERO_ERROR;
UTRACE_ENTRY_OC(UTRACE_UCNV_CLOSE);
@@ -329,16 +324,50 @@ ucnv_close (UConverter * converter)
UTRACE_DATA3(UTRACE_OPEN_CLOSE, "close converter %s at %p, isCopyLocal=%b",
ucnv_getName(converter, &errorCode), converter, converter->isCopyLocal);
- toUArgs.converter = fromUArgs.converter = converter;
+ /* In order to speed up the close, only call the callbacks when they have been changed.
+ This performance check will only work when the callbacks are set within a shared library
+ or from user code that statically links this code. */
+ /* first, notify the callback functions that the converter is closed */
+ if (converter->fromCharErrorBehaviour != UCNV_TO_U_DEFAULT_CALLBACK) {
+ UConverterToUnicodeArgs toUArgs = {
+ sizeof(UConverterToUnicodeArgs),
+ TRUE,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ };
- converter->fromCharErrorBehaviour(converter->toUContext, &toUArgs, NULL, 0, UCNV_CLOSE, &errorCode);
- errorCode = U_ZERO_ERROR;
- converter->fromUCharErrorBehaviour(converter->fromUContext, &fromUArgs, NULL, 0, 0, UCNV_CLOSE, &errorCode);
+ toUArgs.converter = converter;
+ errorCode = U_ZERO_ERROR;
+ converter->fromCharErrorBehaviour(converter->toUContext, &toUArgs, NULL, 0, UCNV_CLOSE, &errorCode);
+ }
+ if (converter->fromUCharErrorBehaviour != UCNV_FROM_U_DEFAULT_CALLBACK) {
+ UConverterFromUnicodeArgs fromUArgs = {
+ sizeof(UConverterFromUnicodeArgs),
+ TRUE,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ };
+ fromUArgs.converter = converter;
+ errorCode = U_ZERO_ERROR;
+ converter->fromUCharErrorBehaviour(converter->fromUContext, &fromUArgs, NULL, 0, 0, UCNV_CLOSE, &errorCode);
+ }
if (converter->sharedData->impl->close != NULL) {
converter->sharedData->impl->close(converter);
}
+ if (converter->subChars != (uint8_t *)converter->subUChars) {
+ uprv_free(converter->subChars);
+ }
+
/*
Checking whether it's an algorithic converter is okay
in multithreaded applications because the value never changes.
@@ -349,7 +378,7 @@ ucnv_close (UConverter * converter)
}
if(!converter->isCopyLocal){
- uprv_free (converter);
+ uprv_free(converter);
}
UTRACE_EXIT();
@@ -386,15 +415,19 @@ ucnv_getSubstChars (const UConverter * converter,
if (U_FAILURE (*err))
return;
+ if (converter->subCharLen <= 0) {
+ /* Unicode string or empty string from ucnv_setSubstString(). */
+ *len = 0;
+ return;
+ }
+
if (*len < converter->subCharLen) /*not enough space in subChars */
{
*err = U_INDEX_OUTOFBOUNDS_ERROR;
return;
}
- uprv_memcpy (mySubChar, converter->subChar, converter->subCharLen); /*fills in the subchars */
- *len = converter->subCharLen; /*store # of bytes copied to buffer */
- uprv_memcpy (mySubChar, converter->subChar, converter->subCharLen); /*fills in the subchars */
+ uprv_memcpy (mySubChar, converter->subChars, converter->subCharLen); /*fills in the subchars */
*len = converter->subCharLen; /*store # of bytes copied to buffer */
}
@@ -415,7 +448,7 @@ ucnv_setSubstChars (UConverter * converter,
return;
}
- uprv_memcpy (converter->subChar, mySubChar, len); /*copies the subchars */
+ uprv_memcpy (converter->subChars, mySubChar, len); /*copies the subchars */
converter->subCharLen = len; /*sets the new len */
/*
@@ -428,6 +461,93 @@ ucnv_setSubstChars (UConverter * converter,
return;
}
+U_DRAFT void U_EXPORT2
+ucnv_setSubstString(UConverter *cnv,
+ const UChar *s,
+ int32_t length,
+ UErrorCode *err) {
+ UAlignedMemory cloneBuffer[U_CNV_SAFECLONE_BUFFERSIZE / sizeof(UAlignedMemory) + 1];
+ char chars[UCNV_ERROR_BUFFER_LENGTH];
+
+ UConverter *clone;
+ uint8_t *subChars;
+ int32_t cloneSize, length8;
+
+ /* Let the following functions check all arguments. */
+ cloneSize = sizeof(cloneBuffer);
+ clone = ucnv_safeClone(cnv, cloneBuffer, &cloneSize, err);
+ ucnv_setFromUCallBack(clone, UCNV_FROM_U_CALLBACK_STOP, NULL, NULL, NULL, err);
+ length8 = ucnv_fromUChars(clone, chars, (int32_t)sizeof(chars), s, length, err);
+ ucnv_close(clone);
+ if (U_FAILURE(*err)) {
+ return;
+ }
+
+ if (cnv->sharedData->impl->writeSub == NULL
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ || (cnv->sharedData->staticData->conversionType == UCNV_MBCS &&
+ ucnv_MBCSGetType(cnv) != UCNV_EBCDIC_STATEFUL)
+#endif
+ ) {
+ /* The converter is not stateful. Store the charset bytes as a fixed string. */
+ subChars = (uint8_t *)chars;
+ } else {
+ /*
+ * The converter has a non-default writeSub() function, indicating
+ * that it is stateful.
+ * Store the Unicode string for on-the-fly conversion for correct
+ * state handling.
+ */
+ if (length > UCNV_ERROR_BUFFER_LENGTH) {
+ /*
+ * Should not occur. The converter should output at least one byte
+ * per UChar, which means that ucnv_fromUChars() should catch all
+ * overflows.
+ */
+ *err = U_BUFFER_OVERFLOW_ERROR;
+ return;
+ }
+ subChars = (uint8_t *)s;
+ if (length < 0) {
+ length = u_strlen(s);
+ }
+ length8 = length * U_SIZEOF_UCHAR;
+ }
+
+ /*
+ * For storing the substitution string, select either the small buffer inside
+ * UConverter or allocate a subChars buffer.
+ */
+ if (length8 > UCNV_MAX_SUBCHAR_LEN) {
+ /* Use a separate buffer for the string. Outside UConverter to not make it too large. */
+ if (cnv->subChars == (uint8_t *)cnv->subUChars) {
+ /* Allocate a new buffer for the string. */
+ cnv->subChars = (uint8_t *)uprv_malloc(UCNV_ERROR_BUFFER_LENGTH * U_SIZEOF_UCHAR);
+ if (cnv->subChars == NULL) {
+ cnv->subChars = (uint8_t *)cnv->subUChars;
+ *err = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ uprv_memset(cnv->subChars, 0, UCNV_ERROR_BUFFER_LENGTH * U_SIZEOF_UCHAR);
+ }
+ }
+
+ /* Copy the substitution string into the UConverter or its subChars buffer. */
+ if (length8 == 0) {
+ cnv->subCharLen = 0;
+ } else {
+ uprv_memcpy(cnv->subChars, subChars, length8);
+ if (subChars == (uint8_t *)chars) {
+ cnv->subCharLen = (int8_t)length8;
+ } else /* subChars == s */ {
+ cnv->subCharLen = (int8_t)-length;
+ }
+ }
+
+ /* See comment in ucnv_setSubstChars(). */
+ cnv->subChar1 = 0;
+}
+
/*resets the internal states of a converter
*goal : have the same behaviour than a freshly created converter
*/
@@ -1839,6 +1959,12 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv,
}
if(pivotStart==NULL) {
+ if(!flush) {
+ /* streaming conversion requires an explicit pivot buffer */
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
/* use the stack pivot buffer */
pivotStart=myPivotSource=myPivotTarget=pivotBuffer;
pivotSource=&myPivotSource;
diff --git a/Build/source/libs/icu-xetex/common/ucnv2022.c b/Build/source/libs/icu-xetex/common/ucnv2022.c
index 4c615667a07..9dc1c2838dd 100644
--- a/Build/source/libs/icu-xetex/common/ucnv2022.c
+++ b/Build/source/libs/icu-xetex/common/ucnv2022.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnv2022.c
@@ -172,17 +172,17 @@ typedef struct ISO2022State {
#define UCNV_2022_MAX_CONVERTERS 10
typedef struct{
+ UConverterSharedData *myConverterArray[UCNV_2022_MAX_CONVERTERS];
UConverter *currentConverter;
-#ifdef U_ENABLE_GENERIC_ISO_2022
- UBool isFirstBuffer;
-#endif
Cnv2022Type currentType;
ISO2022State toU2022State, fromU2022State;
- UConverterSharedData *myConverterArray[UCNV_2022_MAX_CONVERTERS];
uint32_t key;
uint32_t version;
- char locale[3];
+#ifdef U_ENABLE_GENERIC_ISO_2022
+ UBool isFirstBuffer;
+#endif
char name[30];
+ char locale[3];
}UConverterDataISO2022;
/* Protos */
@@ -378,7 +378,23 @@ static const UConverterSharedData _ISO2022CNData;
/*************** Converter implementations ******************/
-static void
+/* The purpose of this function is to get around gcc compiler warnings. */
+static U_INLINE void
+fromUWriteUInt8(UConverter *cnv,
+ const char *bytes, int32_t length,
+ uint8_t **target, const char *targetLimit,
+ int32_t **offsets,
+ int32_t sourceIndex,
+ UErrorCode *pErrorCode)
+{
+ char *targetChars = (char *)*target;
+ ucnv_fromUWriteBytes(cnv, bytes, length, &targetChars, targetLimit,
+ offsets, sourceIndex, pErrorCode);
+ *target = (uint8_t*)targetChars;
+
+}
+
+static U_INLINE void
setInitialStateToUnicodeKR(UConverter* converter, UConverterDataISO2022 *myConverterData){
if(myConverterData->version == 1) {
UConverter *cnv = myConverterData->currentConverter;
@@ -389,7 +405,7 @@ setInitialStateToUnicodeKR(UConverter* converter, UConverterDataISO2022 *myConve
}
}
-static void
+static U_INLINE void
setInitialStateFromUnicodeKR(UConverter* converter,UConverterDataISO2022 *myConverterData){
/* in ISO-2022-KR the designator sequence appears only once
* in a file so we append it only once
@@ -421,20 +437,16 @@ _ISO2022Open(UConverter *cnv, const char *name, const char *locale,uint32_t opti
uint32_t version;
uprv_memset(myConverterData, 0, sizeof(UConverterDataISO2022));
- myConverterData->currentConverter = NULL;
myConverterData->currentType = ASCII1;
- myConverterData->key =0;
-#ifdef U_ENABLE_GENERIC_ISO_2022
- myConverterData->isFirstBuffer = TRUE;
-#endif
cnv->fromUnicodeStatus =FALSE;
if(locale){
uprv_strncpy(myLocale, locale, sizeof(myLocale));
}
- myConverterData->version= 0;
version = options & UCNV_OPTIONS_VERSION_MASK;
+ myConverterData->version = version;
if(myLocale[0]=='j' && (myLocale[1]=='a'|| myLocale[1]=='p') &&
- (myLocale[2]=='_' || myLocale[2]=='\0')){
+ (myLocale[2]=='_' || myLocale[2]=='\0'))
+ {
size_t len=0;
/* open the required converters and cache them */
if(jpCharsetMasks[version]&CSM(ISO8859_7)) {
@@ -456,50 +468,49 @@ _ISO2022Open(UConverter *cnv, const char *name, const char *locale,uint32_t opti
cnv->sharedData=(UConverterSharedData*)(&_ISO2022JPData);
uprv_strcpy(myConverterData->locale,"ja");
- myConverterData->version = version;
uprv_strcpy(myConverterData->name,"ISO_2022,locale=ja,version=");
len = uprv_strlen(myConverterData->name);
myConverterData->name[len]=(char)(myConverterData->version+(int)'0');
myConverterData->name[len+1]='\0';
}
else if(myLocale[0]=='k' && (myLocale[1]=='o'|| myLocale[1]=='r') &&
- (myLocale[2]=='_' || myLocale[2]=='\0')){
-
- if ((options & UCNV_OPTIONS_VERSION_MASK)==1){
- myConverterData->version = 1;
- myConverterData->currentConverter=
- ucnv_open("icu-internal-25546",errorCode);
+ (myLocale[2]=='_' || myLocale[2]=='\0'))
+ {
+ if (version==1){
+ myConverterData->currentConverter=
+ ucnv_open("icu-internal-25546",errorCode);
- if (U_FAILURE(*errorCode)) {
- _ISO2022Close(cnv);
- return;
- }
+ if (U_FAILURE(*errorCode)) {
+ _ISO2022Close(cnv);
+ return;
+ }
- uprv_strcpy(myConverterData->name,"ISO_2022,locale=ko,version=1");
- uprv_memcpy(cnv->subChar, myConverterData->currentConverter->subChar, 4);
- cnv->subCharLen = myConverterData->currentConverter->subCharLen;
+ uprv_strcpy(myConverterData->name,"ISO_2022,locale=ko,version=1");
+ uprv_memcpy(cnv->subChars, myConverterData->currentConverter->subChars, 4);
+ cnv->subCharLen = myConverterData->currentConverter->subCharLen;
}else{
- myConverterData->currentConverter=ucnv_open("ibm-949",errorCode);
+ myConverterData->currentConverter=ucnv_open("ibm-949",errorCode);
- if (U_FAILURE(*errorCode)) {
- _ISO2022Close(cnv);
- return;
- }
+ if (U_FAILURE(*errorCode)) {
+ _ISO2022Close(cnv);
+ return;
+ }
- myConverterData->version = 0;
- uprv_strcpy(myConverterData->name,"ISO_2022,locale=ko,version=0");
+ myConverterData->version = 0;
+ uprv_strcpy(myConverterData->name,"ISO_2022,locale=ko,version=0");
}
/* initialize the state variables */
setInitialStateToUnicodeKR(cnv, myConverterData);
- setInitialStateFromUnicodeKR(cnv,myConverterData);
+ setInitialStateFromUnicodeKR(cnv, myConverterData);
/* set the function pointers to appropriate funtions */
cnv->sharedData=(UConverterSharedData*)&_ISO2022KRData;
uprv_strcpy(myConverterData->locale,"ko");
}
else if(((myLocale[0]=='z' && myLocale[1]=='h') || (myLocale[0]=='c'&& myLocale[1]=='n'))&&
- (myLocale[2]=='_' || myLocale[2]=='\0')){
+ (myLocale[2]=='_' || myLocale[2]=='\0'))
+ {
/* open the required converters and cache them */
myConverterData->myConverterArray[GB2312_1] = ucnv_loadSharedData("ibm-5478", NULL, errorCode);
@@ -513,16 +524,17 @@ _ISO2022Open(UConverter *cnv, const char *name, const char *locale,uint32_t opti
cnv->sharedData=(UConverterSharedData*)&_ISO2022CNData;
uprv_strcpy(myConverterData->locale,"cn");
- if ((options & UCNV_OPTIONS_VERSION_MASK)==1){
- myConverterData->version = 1;
+ if (version==1){
uprv_strcpy(myConverterData->name,"ISO_2022,locale=zh,version=1");
}else{
- uprv_strcpy(myConverterData->name,"ISO_2022,locale=zh,version=0");
myConverterData->version = 0;
+ uprv_strcpy(myConverterData->name,"ISO_2022,locale=zh,version=0");
}
}
else{
#ifdef U_ENABLE_GENERIC_ISO_2022
+ myConverterData->isFirstBuffer = TRUE;
+
/* append the UTF-8 escape sequence */
cnv->charErrorBufferLength = 3;
cnv->charErrorBuffer[0] = 0x1b;
@@ -869,7 +881,9 @@ DONE:
*err = U_UNSUPPORTED_ESCAPE_SEQUENCE;
break;
}
+ /*fall through*/
case GB2312_1:
+ /*fall through*/
case CNS_11643_1:
myData2022->toU2022State.cs[1]=(int8_t)tempState;
break;
@@ -1566,10 +1580,10 @@ getTrail:
*offsets++ = sourceIndex;
}
} else {
- ucnv_fromUWriteBytes(
+ fromUWriteUInt8(
args->converter,
buffer, outLen,
- (char **)&target, (const char *)targetLimit,
+ &target, (const char *)targetLimit,
&offsets, (int32_t)(source - args->source - U16_LENGTH(sourceChar)),
err);
if(U_FAILURE(*err)) {
@@ -1634,10 +1648,10 @@ getTrail:
sourceIndex=-1;
}
- ucnv_fromUWriteBytes(
+ fromUWriteUInt8(
args->converter,
buffer, outLen,
- (char **)&target, (const char *)targetLimit,
+ &target, (const char *)targetLimit,
&offsets, sourceIndex,
err);
}
@@ -2071,10 +2085,10 @@ getTrail:
sourceIndex=-1;
}
- ucnv_fromUWriteBytes(
+ fromUWriteUInt8(
args->converter,
SHIFT_IN_STR, 1,
- (char **)&target, (const char *)targetLimit,
+ &target, (const char *)targetLimit,
&offsets, sourceIndex,
err);
}
@@ -2638,10 +2652,10 @@ getTrail:
*offsets++ = sourceIndex;
}
} else {
- ucnv_fromUWriteBytes(
+ fromUWriteUInt8(
args->converter,
buffer, len,
- (char **)&target, (const char *)targetLimit,
+ &target, (const char *)targetLimit,
&offsets, (int32_t)(source - args->source - U16_LENGTH(sourceChar)),
err);
if(U_FAILURE(*err)) {
@@ -2695,10 +2709,10 @@ getTrail:
sourceIndex=-1;
}
- ucnv_fromUWriteBytes(
+ fromUWriteUInt8(
args->converter,
SHIFT_IN_STR, 1,
- (char **)&target, (const char *)targetLimit,
+ &target, (const char *)targetLimit,
&offsets, sourceIndex,
err);
}
@@ -2871,7 +2885,7 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC
char buffer[8];
int32_t length;
- subchar=(char *)cnv->subChar;
+ subchar=(char *)cnv->subChars;
length=cnv->subCharLen; /* assume length==1 for most variants */
p = buffer;
@@ -2926,14 +2940,24 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC
}
break;
} else {
- /* let the subconverter write the subchar */
- args->converter = myConverterData->currentConverter;
- uprv_memcpy(myConverterData->currentConverter->subChar, subchar, 4);
+ /* save the subconverter's substitution string */
+ uint8_t *currentSubChars = myConverterData->currentConverter->subChars;
+ int8_t currentSubCharLen = myConverterData->currentConverter->subCharLen;
+
+ /* set our substitution string into the subconverter */
+ myConverterData->currentConverter->subChars = (uint8_t *)subchar;
myConverterData->currentConverter->subCharLen = (int8_t)length;
+ /* let the subconverter write the subchar, set/retrieve fromUChar32 state */
+ args->converter = myConverterData->currentConverter;
myConverterData->currentConverter->fromUChar32 = cnv->fromUChar32;
ucnv_cbFromUWriteSub(args, 0, err);
cnv->fromUChar32 = myConverterData->currentConverter->fromUChar32;
+ args->converter = cnv;
+
+ /* restore the subconverter's substitution string */
+ myConverterData->currentConverter->subChars = currentSubChars;
+ myConverterData->currentConverter->subCharLen = currentSubCharLen;
if(*err == U_BUFFER_OVERFLOW_ERROR) {
if(myConverterData->currentConverter->charErrorBufferLength > 0) {
@@ -2945,7 +2969,6 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC
cnv->charErrorBufferLength = myConverterData->currentConverter->charErrorBufferLength;
myConverterData->currentConverter->charErrorBufferLength = 0;
}
- args->converter = cnv;
return;
}
default:
@@ -2957,12 +2980,23 @@ _ISO_2022_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorC
offsetIndex, err);
}
-/* structure for SafeClone calculations */
+/*
+ * Structure for cloning an ISO 2022 converter into a single memory block.
+ * ucnv_safeClone() of the converter will align the entire cloneStruct,
+ * and then ucnv_safeClone() of the sub-converter may additionally align
+ * currentConverter inside the cloneStruct, for which we need the deadSpace
+ * after currentConverter.
+ * This is because UAlignedMemory may be larger than the actually
+ * necessary alignment size for the platform.
+ * The other cloneStruct fields will not be moved around,
+ * and are aligned properly with cloneStruct's alignment.
+ */
struct cloneStruct
{
UConverter cnv;
- UConverterDataISO2022 mydata;
UConverter currentConverter;
+ UAlignedMemory deadSpace;
+ UConverterDataISO2022 mydata;
};
@@ -2988,11 +3022,13 @@ _ISO_2022_SafeClone(
/* ucnv.c/ucnv_safeClone() copied the main UConverter already */
uprv_memcpy(&localClone->mydata, cnvData, sizeof(UConverterDataISO2022));
+ localClone->cnv.extraInfo = &localClone->mydata; /* set pointer to extra data */
+ localClone->cnv.isExtraLocal = TRUE;
/* share the subconverters */
if(cnvData->currentConverter != NULL) {
- size = (int32_t)sizeof(UConverter);
+ size = (int32_t)(sizeof(UConverter) + sizeof(UAlignedMemory)); /* include size of padding */
localClone->mydata.currentConverter =
ucnv_safeClone(cnvData->currentConverter,
&localClone->currentConverter,
@@ -3008,8 +3044,6 @@ _ISO_2022_SafeClone(
}
}
- localClone->cnv.extraInfo = &localClone->mydata; /* set pointer to extra data */
- localClone->cnv.isExtraLocal = TRUE;
return &localClone->cnv;
}
@@ -3286,7 +3320,7 @@ static const UConverterStaticData _ISO2022CNStaticData={
0,
UCNV_IBM,
UCNV_ISO_2022,
- 2,
+ 1,
8, /* max 8 bytes per UChar: 4-byte CNS designator + 2 bytes for SS2/SS3 + DBCS */
{ 0x1a, 0, 0, 0 },
1,
diff --git a/Build/source/libs/icu-xetex/common/ucnv_bld.c b/Build/source/libs/icu-xetex/common/ucnv_bld.c
index b9d64df5589..62e1609f087 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_bld.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_bld.c
@@ -1,7 +1,7 @@
/*
********************************************************************
* COPYRIGHT:
- * Copyright (c) 1996-2005, International Business Machines Corporation and
+ * Copyright (c) 1996-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
*
@@ -160,6 +160,8 @@ static uint16_t gAvailableConverterCount = 0;
static char gDefaultConverterNameBuffer[UCNV_MAX_CONVERTER_NAME_LENGTH + 1]; /* +1 for NULL */
static const char *gDefaultConverterName = NULL;
+static const UConverterSharedData *gDefaultAlgorithmicSharedData = NULL;
+static UBool gDefaultConverterContainsOption;
static const char DATA_TYPE[] = "cnv";
@@ -182,6 +184,8 @@ static UBool U_CALLCONV ucnv_cleanup(void) {
gDefaultConverterName = NULL;
gDefaultConverterNameBuffer[0] = 0;
+ gDefaultConverterContainsOption = FALSE;
+ gDefaultAlgorithmicSharedData = NULL;
umtx_destroy(&cnvCacheMutex); /* Don't worry about destroying the mutex even */
/* if the hash table still exists. The mutex */
@@ -287,7 +291,7 @@ static UConverterSharedData *createConverterFromFile(UConverterLoadArgs *pArgs,
UTRACE_ENTRY_OC(UTRACE_UCNV_LOAD);
- if (err == NULL || U_FAILURE (*err)) {
+ if (U_FAILURE (*err)) {
UTRACE_EXIT_STATUS(*err);
return NULL;
}
@@ -374,7 +378,7 @@ ucnv_shareConverterData(UConverterSharedData * data)
if (SHARED_DATA_HASHTABLE == NULL)
{
- SHARED_DATA_HASHTABLE = uhash_openSize(uhash_hashChars, uhash_compareChars,
+ SHARED_DATA_HASHTABLE = uhash_openSize(uhash_hashChars, uhash_compareChars, NULL,
ucnv_io_countTotalAliases(&err),
&err);
ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
@@ -658,6 +662,8 @@ ucnv_loadSharedData(const char *converterName, UConverterLookupData *lookup, UEr
UConverterLookupData stackLookup;
UConverterSharedData *mySharedConverterData = NULL;
UErrorCode internalErrorCode = U_ZERO_ERROR;
+ UBool mayContainOption = TRUE;
+ UBool checkForAlgorithmic = TRUE;
if (U_FAILURE (*err)) {
return NULL;
@@ -672,13 +678,29 @@ ucnv_loadSharedData(const char *converterName, UConverterLookupData *lookup, UEr
/* In case "name" is NULL we want to open the default converter. */
if (converterName == NULL) {
+ /* Call ucnv_getDefaultName first to query the name from the OS. */
lookup->realName = ucnv_getDefaultName();
if (lookup->realName == NULL) {
*err = U_MISSING_RESOURCE_ERROR;
return NULL;
}
+ mySharedConverterData = (UConverterSharedData *)gDefaultAlgorithmicSharedData;
+ checkForAlgorithmic = FALSE;
+ mayContainOption = gDefaultConverterContainsOption;
/* the default converter name is already canonical */
- } else {
+ }
+ else if((converterName[0] == 'U' ?
+ ( converterName[1] == 'T' && converterName[2] == 'F') :
+ (converterName[0] == 'u' && converterName[1] == 't' && converterName[2] == 'f'))
+ &&
+ (converterName[3] == '-' ?
+ (converterName[4] == '8' && converterName[5] == 0) :
+ (converterName[3] == '8' && converterName[4] == 0)))
+ {
+ /* fastpath for UTF-8 */
+ return (UConverterSharedData *)converterData[UCNV_UTF8];
+ }
+ else {
/* separate the converter name from the options */
parseConverterOptions(converterName, lookup->cnvName, lookup->locale, &lookup->options, err);
if (U_FAILURE(*err)) {
@@ -687,7 +709,7 @@ ucnv_loadSharedData(const char *converterName, UConverterLookupData *lookup, UEr
}
/* get the canonical converter name */
- lookup->realName = ucnv_io_getConverterName(lookup->cnvName, &internalErrorCode);
+ lookup->realName = ucnv_io_getConverterName(lookup->cnvName, &mayContainOption, &internalErrorCode);
if (U_FAILURE(internalErrorCode) || lookup->realName == NULL) {
/*
* set the input name in case the converter was added
@@ -698,13 +720,15 @@ ucnv_loadSharedData(const char *converterName, UConverterLookupData *lookup, UEr
}
/* separate the converter name from the options */
- if(lookup->realName != lookup->cnvName) {
+ if(mayContainOption && lookup->realName != lookup->cnvName) {
parseConverterOptions(lookup->realName, lookup->cnvName, lookup->locale, &lookup->options, err);
lookup->realName = lookup->cnvName;
}
/* get the shared data for an algorithmic converter, if it is one */
- mySharedConverterData = (UConverterSharedData *)getAlgorithmicTypeFromName(lookup->realName);
+ if (checkForAlgorithmic) {
+ mySharedConverterData = (UConverterSharedData *)getAlgorithmicTypeFromName(lookup->realName);
+ }
if (mySharedConverterData == NULL)
{
/* it is a data-based converter, get its shared data. */
@@ -878,20 +902,21 @@ ucnv_createConverterFromSharedData(UConverter *myUConverter,
/* initialize the converter */
uprv_memset(myUConverter, 0, sizeof(UConverter));
myUConverter->isCopyLocal = isCopyLocal;
- myUConverter->isExtraLocal = FALSE;
+ /*myUConverter->isExtraLocal = FALSE;*/ /* Set by the memset call */
myUConverter->sharedData = mySharedConverterData;
myUConverter->options = options;
- myUConverter->fromCharErrorBehaviour = (UConverterToUCallback) UCNV_TO_U_CALLBACK_SUBSTITUTE;
- myUConverter->fromUCharErrorBehaviour = (UConverterFromUCallback) UCNV_FROM_U_CALLBACK_SUBSTITUTE;
- myUConverter->toUnicodeStatus = myUConverter->sharedData->toUnicodeStatus;
- myUConverter->maxBytesPerUChar = myUConverter->sharedData->staticData->maxBytesPerChar;
- myUConverter->subChar1 = myUConverter->sharedData->staticData->subChar1;
- myUConverter->subCharLen = myUConverter->sharedData->staticData->subCharLen;
- uprv_memcpy (myUConverter->subChar, myUConverter->sharedData->staticData->subChar, myUConverter->subCharLen);
myUConverter->preFromUFirstCP = U_SENTINEL;
-
- if(myUConverter != NULL && myUConverter->sharedData->impl->open != NULL) {
- myUConverter->sharedData->impl->open(myUConverter, realName, locale,options, err);
+ myUConverter->fromCharErrorBehaviour = UCNV_TO_U_DEFAULT_CALLBACK;
+ myUConverter->fromUCharErrorBehaviour = UCNV_FROM_U_DEFAULT_CALLBACK;
+ myUConverter->toUnicodeStatus = mySharedConverterData->toUnicodeStatus;
+ myUConverter->maxBytesPerUChar = mySharedConverterData->staticData->maxBytesPerChar;
+ myUConverter->subChar1 = mySharedConverterData->staticData->subChar1;
+ myUConverter->subCharLen = mySharedConverterData->staticData->subCharLen;
+ myUConverter->subChars = (uint8_t *)myUConverter->subUChars;
+ uprv_memcpy(myUConverter->subChars, mySharedConverterData->staticData->subChar, myUConverter->subCharLen);
+
+ if(mySharedConverterData->impl->open != NULL) {
+ mySharedConverterData->impl->open(myUConverter, realName, locale, options, err);
if(U_FAILURE(*err)) {
ucnv_close(myUConverter);
return NULL;
@@ -1062,6 +1087,36 @@ ucnv_bld_getAvailableConverter(uint16_t n, UErrorCode *pErrorCode) {
/* default converter name --------------------------------------------------- */
+/* Copy the canonical converter name. */
+static U_INLINE void
+internalSetName(const char *name, UErrorCode *status) {
+ UConverterLookupData lookup;
+ int32_t length=(int32_t)(uprv_strlen(name));
+ UBool containsOption = (UBool)(uprv_strchr(name, UCNV_OPTION_SEP_CHAR) != NULL);
+ const UConverterSharedData *algorithmicSharedData;
+
+ lookup.locale[0] = 0;
+ lookup.options = 0;
+ lookup.realName = name;
+ if(containsOption) {
+ parseConverterOptions(lookup.realName, lookup.cnvName, lookup.locale, &lookup.options, status);
+ lookup.realName = lookup.cnvName;
+ }
+ algorithmicSharedData = getAlgorithmicTypeFromName(lookup.realName);
+
+ umtx_lock(&cnvCacheMutex);
+
+ uprv_memcpy(gDefaultConverterNameBuffer, name, length);
+ gDefaultConverterNameBuffer[length]=0;
+ gDefaultConverterName = gDefaultConverterNameBuffer;
+ gDefaultConverterContainsOption = containsOption;
+ gDefaultAlgorithmicSharedData = algorithmicSharedData;
+
+ ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
+
+ umtx_unlock(&cnvCacheMutex);
+}
+
/*
* In order to be really thread-safe, the get function would have to take
* a buffer parameter and copy the current string inside a mutex block.
@@ -1079,7 +1134,6 @@ ucnv_getDefaultName() {
if(name==NULL) {
UErrorCode errorCode = U_ZERO_ERROR;
UConverter *cnv = NULL;
- int32_t length = 0;
name = uprv_getDefaultCodepage();
@@ -1093,7 +1147,7 @@ ucnv_getDefaultName() {
if(name == NULL || name[0] == 0
|| U_FAILURE(errorCode) || cnv == NULL
- || length>=sizeof(gDefaultConverterNameBuffer))
+ || uprv_strlen(name)>=sizeof(gDefaultConverterNameBuffer))
{
/* Panic time, let's use a fallback. */
#if (U_CHARSET_FAMILY == U_ASCII_FAMILY)
@@ -1106,16 +1160,7 @@ ucnv_getDefaultName() {
#endif
}
- length=(int32_t)(uprv_strlen(name));
-
- /* Copy the name before we close the converter. */
- umtx_lock(&cnvCacheMutex);
- uprv_memcpy(gDefaultConverterNameBuffer, name, length);
- gDefaultConverterNameBuffer[length]=0;
- gDefaultConverterName = gDefaultConverterNameBuffer;
- name = gDefaultConverterName;
- ucln_common_registerCleanup(UCLN_COMMON_UCNV, ucnv_cleanup);
- umtx_unlock(&cnvCacheMutex);
+ internalSetName(name, &errorCode);
/* The close may make the current name go away. */
ucnv_close(cnv);
@@ -1132,24 +1177,23 @@ ucnv_setDefaultName(const char *converterName) {
gDefaultConverterName=NULL;
umtx_unlock(&cnvCacheMutex);
} else {
- UErrorCode errorCode=U_ZERO_ERROR;
- const char *name=ucnv_io_getConverterName(converterName, &errorCode);
+ UErrorCode errorCode = U_ZERO_ERROR;
+ UConverter *cnv = NULL;
+ const char *name = NULL;
- umtx_lock(&cnvCacheMutex);
+ /* if the name is there, test it out and get the canonical name with options */
+ cnv = ucnv_open(converterName, &errorCode);
+ if(U_SUCCESS(errorCode) && cnv != NULL) {
+ name = ucnv_getName(cnv, &errorCode);
+ }
if(U_SUCCESS(errorCode) && name!=NULL) {
- gDefaultConverterName=name;
- } else {
- /* do not set the name if the alias lookup failed and it is too long */
- int32_t length=(int32_t)(uprv_strlen(converterName));
- if(length<sizeof(gDefaultConverterNameBuffer)) {
- /* it was not found as an alias, so copy it - accept an empty name */
- uprv_memcpy(gDefaultConverterNameBuffer, converterName, length);
- gDefaultConverterNameBuffer[length]=0;
- gDefaultConverterName=gDefaultConverterNameBuffer;
- }
+ internalSetName(name, &errorCode);
}
- umtx_unlock(&cnvCacheMutex);
+ /* else this converter is bad to use. Don't change it to a bad value. */
+
+ /* The close may make the current name go away. */
+ ucnv_close(cnv);
}
}
@@ -1259,7 +1303,13 @@ ucnv_swap(const UDataSwapper *ds,
inMBCSHeader=(const _MBCSHeader *)inBytes;
outMBCSHeader=(_MBCSHeader *)outBytes;
- if(!(inMBCSHeader->version[0]==4 || inMBCSHeader->version[1]>=1)) {
+ if(0<=length && length<sizeof(_MBCSHeader)) {
+ udata_printError(ds, "ucnv_swap(): too few bytes (%d after headers) for an ICU MBCS .cnv conversion table\n",
+ length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return 0;
+ }
+ if(!(inMBCSHeader->version[0]==4 && inMBCSHeader->version[1]>=1)) {
udata_printError(ds, "ucnv_swap(): unsupported _MBCSHeader.version %d.%d\n",
inMBCSHeader->version[0], inMBCSHeader->version[1]);
*pErrorCode=U_UNSUPPORTED_ERROR;
@@ -1275,7 +1325,7 @@ ucnv_swap(const UDataSwapper *ds,
mbcsHeader.flags= ds->readUInt32(inMBCSHeader->flags);
mbcsHeader.fromUBytesLength= ds->readUInt32(inMBCSHeader->fromUBytesLength);
- extOffset=(int32_t)mbcsHeader.flags>>8;
+ extOffset=(int32_t)(mbcsHeader.flags>>8);
outputType=(uint8_t)mbcsHeader.flags;
/* make sure that the output type is known */
diff --git a/Build/source/libs/icu-xetex/common/ucnv_bld.h b/Build/source/libs/icu-xetex/common/ucnv_bld.h
index eecb42bbb80..75aa4d183ab 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_bld.h
+++ b/Build/source/libs/icu-xetex/common/ucnv_bld.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -157,6 +157,17 @@ struct UConverter {
const void *fromUContext;
const void *toUContext;
+ /*
+ * Pointer to charset bytes for substitution string if subCharLen>0,
+ * or pointer to Unicode string (UChar *) if subCharLen<0.
+ * subCharLen==0 is equivalent to using a skip callback.
+ * If the pointer is !=subUChars then it is allocated with
+ * UCNV_ERROR_BUFFER_LENGTH * U_SIZEOF_UCHAR bytes.
+ * The subUChars field is declared as UChar[] not uint8_t[] to
+ * guarantee alignment for UChars.
+ */
+ uint8_t *subChars;
+
UConverterSharedData *sharedData; /* Pointer to the shared immutable part of the converter object */
uint32_t options; /* options flags from UConverterOpen, may contain additional bits */
@@ -200,9 +211,9 @@ struct UConverter {
uint8_t subChar1; /* single-byte substitution character if different from subChar */
UBool useSubChar1;
- uint8_t subChar[UCNV_MAX_SUBCHAR_LEN]; /* codepage specific character sequence */
char invalidCharBuffer[UCNV_MAX_CHAR_LEN]; /* bytes from last error/callback situation */
uint8_t charErrorBuffer[UCNV_ERROR_BUFFER_LENGTH]; /* codepage output from Error functions */
+ UChar subUChars[UCNV_MAX_SUBCHAR_LEN/U_SIZEOF_UCHAR]; /* see subChars documentation */
UChar invalidUCharBuffer[U16_MAX_LENGTH]; /* UChars from last error/callback situation */
UChar UCharErrorBuffer[UCNV_ERROR_BUFFER_LENGTH]; /* unicode output from Error functions */
diff --git a/Build/source/libs/icu-xetex/common/ucnv_cb.c b/Build/source/libs/icu-xetex/common/ucnv_cb.c
index 5038ab574f3..fa34b658327 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_cb.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_cb.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* ucnv_cb.c:
@@ -104,7 +104,7 @@ ucnv_cbFromUWriteUChars(UConverterFromUnicodeArgs *args,
/* && (*source < sourceLimit && args->target >= args->targetLimit)
-- S. Hrcek */
{
- /* Overflowed the target. Now, we'll write into the charErrorBuffer.
+ /* Overflowed the target. Now, we'll write into the charErrorBuffer.
It's a fixed size. If we overflow it... Hmm */
char *newTarget;
const char *newTargetLimit;
@@ -126,49 +126,48 @@ ucnv_cbFromUWriteUChars(UConverterFromUnicodeArgs *args,
return;
}
- /* We're going to tell the converter that the errbuff len is empty.
- This prevents the existing errbuff from being 'flushed' out onto
- itself. If the errbuff is needed by the converter this time,
- we're hosed - we're out of space! */
-
- args->converter->charErrorBufferLength = 0;
-
- ucnv_fromUnicode(args->converter,
- &newTarget,
- newTargetLimit,
- source,
- sourceLimit,
- NULL,
- FALSE,
- &err2);
-
- /* We can go ahead and overwrite the length here. We know just how
- to recalculate it. */
-
- args->converter->charErrorBufferLength = (int8_t)(
- newTarget - (char*)args->converter->charErrorBuffer);
-
- if((newTarget >= newTargetLimit) || (err2 == U_BUFFER_OVERFLOW_ERROR))
- {
- /* now we're REALLY in trouble.
- Internal program error - callback shouldn't have written this much
- data!
- */
- *err = U_INTERNAL_PROGRAM_ERROR;
- return;
- }
- else
- {
- /* sub errs could be invalid/truncated/illegal chars or w/e.
- These might want to be passed on up.. But the problem is, we already
- need to pass U_BUFFER_OVERFLOW_ERROR. That has to override these
- other errs.. */
-
- /*
- if(U_FAILURE(err2))
- ??
- */
- }
+ /* We're going to tell the converter that the errbuff len is empty.
+ This prevents the existing errbuff from being 'flushed' out onto
+ itself. If the errbuff is needed by the converter this time,
+ we're hosed - we're out of space! */
+
+ args->converter->charErrorBufferLength = 0;
+
+ ucnv_fromUnicode(args->converter,
+ &newTarget,
+ newTargetLimit,
+ source,
+ sourceLimit,
+ NULL,
+ FALSE,
+ &err2);
+
+ /* We can go ahead and overwrite the length here. We know just how
+ to recalculate it. */
+
+ args->converter->charErrorBufferLength = (int8_t)(
+ newTarget - (char*)args->converter->charErrorBuffer);
+
+ if((newTarget >= newTargetLimit) || (err2 == U_BUFFER_OVERFLOW_ERROR))
+ {
+ /* now we're REALLY in trouble.
+ Internal program error - callback shouldn't have written this much
+ data!
+ */
+ *err = U_INTERNAL_PROGRAM_ERROR;
+ return;
+ }
+ /*else {*/
+ /* sub errs could be invalid/truncated/illegal chars or w/e.
+ These might want to be passed on up.. But the problem is, we already
+ need to pass U_BUFFER_OVERFLOW_ERROR. That has to override these
+ other errs.. */
+
+ /*
+ if(U_FAILURE(err2))
+ ??
+ */
+ /*}*/
}
}
@@ -177,19 +176,48 @@ ucnv_cbFromUWriteSub (UConverterFromUnicodeArgs *args,
int32_t offsetIndex,
UErrorCode * err)
{
+ UConverter *converter;
+ int32_t length;
+
if(U_FAILURE(*err)) {
return;
}
+ converter = args->converter;
+ length = converter->subCharLen;
- if(args->converter->sharedData->impl->writeSub!=NULL) {
- args->converter->sharedData->impl->writeSub(args, offsetIndex, err);
- } else if(args->converter->subChar1!=0 && args->converter->invalidUCharBuffer[0]<=0xff) {
+ if(length == 0) {
+ return;
+ }
+
+ if(length < 0) {
+ /*
+ * Write/convert the substitution string. Its real length is -length.
+ * Unlike the escape callback, we need not change the converter's
+ * callback function because ucnv_setSubstString() verified that
+ * the string can be converted, so we will not get a conversion error
+ * and will not recurse.
+ * At worst we should get a U_BUFFER_OVERFLOW_ERROR.
+ */
+ const UChar *source = (const UChar *)converter->subChars;
+ ucnv_cbFromUWriteUChars(args, &source, source - length, offsetIndex, err);
+ return;
+ }
+
+ if(converter->sharedData->impl->writeSub!=NULL) {
+ converter->sharedData->impl->writeSub(args, offsetIndex, err);
+ }
+ else if(converter->subChar1!=0 && (uint16_t)converter->invalidUCharBuffer[0]<=(uint16_t)0xffu) {
+ /*
+ TODO: Is this untestable because the MBCS converter has a writeSub function to call
+ and the other converters don't use subChar1?
+ */
ucnv_cbFromUWriteBytes(args,
- (const char *)&args->converter->subChar1, 1,
+ (const char *)&converter->subChar1, 1,
offsetIndex, err);
- } else {
+ }
+ else {
ucnv_cbFromUWriteBytes(args,
- (const char *)args->converter->subChar, args->converter->subCharLen,
+ (const char *)converter->subChars, length,
offsetIndex, err);
}
}
diff --git a/Build/source/libs/icu-xetex/common/ucnv_imp.h b/Build/source/libs/icu-xetex/common/ucnv_imp.h
index d42b2a4b60f..c1f48c0e186 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_imp.h
+++ b/Build/source/libs/icu-xetex/common/ucnv_imp.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -87,6 +87,9 @@ ucnv_unloadSharedDataIfReady(UConverterSharedData *sharedData);
void
ucnv_incrementRefCount(UConverterSharedData *sharedData);
+#define UCNV_TO_U_DEFAULT_CALLBACK ((UConverterToUCallback) UCNV_TO_U_CALLBACK_SUBSTITUTE)
+#define UCNV_FROM_U_DEFAULT_CALLBACK ((UConverterFromUCallback) UCNV_FROM_U_CALLBACK_SUBSTITUTE)
+
#endif
#endif /* _UCNV_IMP */
diff --git a/Build/source/libs/icu-xetex/common/ucnv_io.c b/Build/source/libs/icu-xetex/common/ucnv_io.c
index 03ce876b950..4e570e55d9c 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_io.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_io.c
@@ -1,15 +1,15 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
*
*
* ucnv_io.c:
-* initializes global variables and defines functions pertaining to file
-* access, and name resolution aspect of the library.
+* initializes global variables and defines functions pertaining to converter
+* name resolution aspect of the conversion code.
*
* new implementation:
*
@@ -73,6 +73,8 @@
* index of this list is also used by other sections, like the 4th section.
* The index for the 3rd and 4th section is used to get the
* alias -> converter name mapping. Section 3 and 4 form a two column table.
+ * Some of the most significant bits of each index may contain other
+ * information (see findConverter for details).
*
* 4) This section contains a list of mapped converter names. Consider this
* as a table that maps the 3rd section to the 1st section. This list contains
@@ -94,8 +96,10 @@
* the third dimension to the section 5. No other section should be referencing
* this section.
*
- * 7) Reserved at this time (There is no information). This _usually_ has a
- * size of 0. Future versions may add more information here.
+ * 7) Starting in ICU 3.6, this can be a UConverterAliasOptions struct. Its
+ * presence indicates that a section 9 exists. UConverterAliasOptions specifies
+ * what type of string normalization is used among other potential things in the
+ * future.
*
* 8) This is the string table. All strings are indexed on an even address.
* There are two reasons for this. First many chip architectures locate strings
@@ -103,6 +107,10 @@
* numbers, this string table can be 128KB in size instead of 64KB when we
* only have strings starting on an even address.
*
+ * 9) When present this is a set of prenormalized strings from section 8. This
+ * table contains normalized strings with the dashes and spaces stripped out,
+ * and all strings lowercased. In the future, the options in section 7 may state
+ * other types of normalization.
*
* Here is the concept of section 5 and 6. It's a 3D cube. Each tag
* has a unique alias among all converters. That same alias can
@@ -173,29 +181,21 @@ enum {
untaggedConvArrayIndex=4,
taggedAliasArrayIndex=5,
taggedAliasListsIndex=6,
- reservedIndex1=7,
+ tableOptionsIndex=7,
stringTableIndex=8,
- minTocLength=8, /* min. tocLength in the file, does not count the tocLengthIndex! */
- offsetsCount /* length of the swapper's temporary offsets[] */
+ normalizedStringTableIndex=9,
+ offsetsCount, /* length of the swapper's temporary offsets[] */
+ minTocLength=8 /* min. tocLength in the file, does not count the tocLengthIndex! */
};
-static const uint16_t *gConverterList = NULL;
-static const uint16_t *gTagList = NULL;
-static const uint16_t *gAliasList = NULL;
-static const uint16_t *gUntaggedConvArray = NULL;
-static const uint16_t *gTaggedAliasArray = NULL;
-static const uint16_t *gTaggedAliasLists = NULL;
-static const uint16_t *gStringTable = NULL;
-
-static uint32_t gConverterListSize;
-static uint32_t gTagListSize;
-static uint32_t gAliasListSize;
-static uint32_t gUntaggedConvArraySize;
-static uint32_t gTaggedAliasArraySize;
-static uint32_t gTaggedAliasListsSize;
-static uint32_t gStringTableSize;
+static const UConverterAliasOptions defaultTableOptions = {
+ UCNV_IO_UNNORMALIZED,
+ 0 /* containsCnvOptionInfo */
+};
+static UConverterAlias gMainTable;
-#define GET_STRING(idx) (const char *)(gStringTable + (idx))
+#define GET_STRING(idx) (const char *)(gMainTable.stringTable + (idx))
+#define GET_NORMALIZED_STRING(idx) (const char *)(gMainTable.normalizedStringTable + (idx))
static UBool U_CALLCONV
isAcceptable(void *context,
@@ -219,21 +219,7 @@ static UBool U_CALLCONV ucnv_io_cleanup(void)
gAliasData = NULL;
}
- gConverterListSize = 0;
- gTagListSize = 0;
- gAliasListSize = 0;
- gUntaggedConvArraySize = 0;
- gTaggedAliasArraySize = 0;
- gTaggedAliasListsSize = 0;
- gStringTableSize = 0;
-
- gConverterList = NULL;
- gTagList = NULL;
- gAliasList = NULL;
- gUntaggedConvArray = NULL;
- gTaggedAliasArray = NULL;
- gTaggedAliasLists = NULL;
- gStringTable = NULL;
+ uprv_memset(&gMainTable, 0, sizeof(gMainTable));
return TRUE; /* Everything was cleaned up */
}
@@ -254,7 +240,6 @@ haveAliasData(UErrorCode *pErrorCode) {
const uint16_t *table = NULL;
uint32_t tableStart;
uint32_t currOffset;
- uint32_t reservedSize1;
data = udata_openChoice(NULL, DATA_TYPE, DATA_NAME, isAcceptable, NULL, pErrorCode);
if(U_FAILURE(*pErrorCode)) {
@@ -275,39 +260,57 @@ haveAliasData(UErrorCode *pErrorCode) {
gAliasData = data;
data=NULL;
- gConverterListSize = ((const uint32_t *)(table))[1];
- gTagListSize = ((const uint32_t *)(table))[2];
- gAliasListSize = ((const uint32_t *)(table))[3];
- gUntaggedConvArraySize = ((const uint32_t *)(table))[4];
- gTaggedAliasArraySize = ((const uint32_t *)(table))[5];
- gTaggedAliasListsSize = ((const uint32_t *)(table))[6];
- reservedSize1 = ((const uint32_t *)(table))[7]; /* reserved */
- gStringTableSize = ((const uint32_t *)(table))[8];
+ gMainTable.converterListSize = ((const uint32_t *)(table))[1];
+ gMainTable.tagListSize = ((const uint32_t *)(table))[2];
+ gMainTable.aliasListSize = ((const uint32_t *)(table))[3];
+ gMainTable.untaggedConvArraySize = ((const uint32_t *)(table))[4];
+ gMainTable.taggedAliasArraySize = ((const uint32_t *)(table))[5];
+ gMainTable.taggedAliasListsSize = ((const uint32_t *)(table))[6];
+ gMainTable.optionTableSize = ((const uint32_t *)(table))[7];
+ gMainTable.stringTableSize = ((const uint32_t *)(table))[8];
+
+ if (((const uint32_t *)(table))[0] > 8) {
+ gMainTable.normalizedStringTableSize = ((const uint32_t *)(table))[9];
+ }
currOffset = tableStart * (sizeof(uint32_t)/sizeof(uint16_t)) + (sizeof(uint32_t)/sizeof(uint16_t));
- gConverterList = table + currOffset;
+ gMainTable.converterList = table + currOffset;
- currOffset += gConverterListSize;
- gTagList = table + currOffset;
+ currOffset += gMainTable.converterListSize;
+ gMainTable.tagList = table + currOffset;
- currOffset += gTagListSize;
- gAliasList = table + currOffset;
+ currOffset += gMainTable.tagListSize;
+ gMainTable.aliasList = table + currOffset;
- currOffset += gAliasListSize;
- gUntaggedConvArray = table + currOffset;
+ currOffset += gMainTable.aliasListSize;
+ gMainTable.untaggedConvArray = table + currOffset;
- currOffset += gUntaggedConvArraySize;
- gTaggedAliasArray = table + currOffset;
+ currOffset += gMainTable.untaggedConvArraySize;
+ gMainTable.taggedAliasArray = table + currOffset;
/* aliasLists is a 1's based array, but it has a padding character */
- currOffset += gTaggedAliasArraySize;
- gTaggedAliasLists = table + currOffset;
+ currOffset += gMainTable.taggedAliasArraySize;
+ gMainTable.taggedAliasLists = table + currOffset;
+
+ currOffset += gMainTable.taggedAliasListsSize;
+ if (gMainTable.optionTableSize > 0
+ && ((const UConverterAliasOptions *)(table + currOffset))->stringNormalizationType < UCNV_IO_NORM_TYPE_COUNT)
+ {
+ /* Faster table */
+ gMainTable.optionTable = (const UConverterAliasOptions *)(table + currOffset);
+ }
+ else {
+ /* Smaller table, or I can't handle this normalization mode!
+ Use the original slower table lookup. */
+ gMainTable.optionTable = &defaultTableOptions;
+ }
- currOffset += gTaggedAliasListsSize;
- /* reserved */
+ currOffset += gMainTable.optionTableSize;
+ gMainTable.stringTable = table + currOffset;
- currOffset += reservedSize1;
- gStringTable = table + currOffset;
+ currOffset += gMainTable.stringTableSize;
+ gMainTable.normalizedStringTable = ((gMainTable.optionTable->stringNormalizationType == UCNV_IO_UNNORMALIZED)
+ ? gMainTable.stringTable : (table + currOffset));
ucln_common_registerCleanup(UCLN_COMMON_UCNV_IO, ucnv_io_cleanup);
}
@@ -327,18 +330,15 @@ isAlias(const char *alias, UErrorCode *pErrorCode) {
if(alias==NULL) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return FALSE;
- } else if(*alias==0) {
- return FALSE;
- } else {
- return TRUE;
}
+ return (UBool)(*alias!=0);
}
static uint32_t getTagNumber(const char *tagname) {
- if (gTagList) {
+ if (gMainTable.tagList) {
uint32_t tagNum;
- for (tagNum = 0; tagNum < gTagListSize; tagNum++) {
- if (!uprv_stricmp(GET_STRING(gTagList[tagNum]), tagname)) {
+ for (tagNum = 0; tagNum < gMainTable.tagListSize; tagNum++) {
+ if (!uprv_stricmp(GET_STRING(gMainTable.tagList[tagNum]), tagname)) {
return tagNum;
}
}
@@ -347,48 +347,128 @@ static uint32_t getTagNumber(const char *tagname) {
return UINT32_MAX;
}
+/* character types relevant for ucnv_compareNames() */
+enum {
+ IGNORE,
+ ZERO,
+ NONZERO,
+ MINLETTER /* any values from here on are lowercase letter mappings */
+};
+
+/* character types for ASCII 00..7F */
+static const uint8_t asciiTypes[128] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ ZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, 0, 0, 0, 0, 0, 0,
+ 0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0, 0, 0, 0, 0,
+ 0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0, 0, 0, 0, 0
+};
+
+#define GET_ASCII_TYPE(c) ((int8_t)(c) >= 0 ? asciiTypes[(uint8_t)c] : (uint8_t)IGNORE)
+
+/* character types for EBCDIC 80..FF */
+static const uint8_t ebcdicTypes[128] = {
+ 0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0, 0, 0, 0, 0, 0,
+ 0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0, 0, 0, 0, 0, 0,
+ 0, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0, 0, 0, 0, 0, 0,
+ ZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, NONZERO, 0, 0, 0, 0, 0, 0
+};
+
+#define GET_EBCDIC_TYPE(c) ((int8_t)(c) < 0 ? ebcdicTypes[(c)&0x7f] : (uint8_t)IGNORE)
+
+#if U_CHARSET_FAMILY==U_ASCII_FAMILY
+# define GET_CHAR_TYPE(c) GET_ASCII_TYPE(c)
+#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+# define GET_CHAR_TYPE(c) GET_EBCDIC_TYPE(c)
+#else
+# error U_CHARSET_FAMILY is not valid
+#endif
+
/* @see ucnv_compareNames */
U_CFUNC char * U_EXPORT2
ucnv_io_stripASCIIForCompare(char *dst, const char *name) {
- char c1 = *name;
char *dstItr = dst;
-
- while (c1) {
- /* Ignore delimiters '-', '_', and ' ' */
- while ((c1 = *name) == 0x2d || c1 == 0x5f || c1 == 0x20) {
- ++name;
+ uint8_t type, nextType;
+ char c1;
+ UBool afterDigit = FALSE;
+
+ while ((c1 = *name++) != 0) {
+ type = GET_ASCII_TYPE(c1);
+ switch (type) {
+ case IGNORE:
+ afterDigit = FALSE;
+ continue; /* ignore all but letters and digits */
+ case ZERO:
+ if (!afterDigit) {
+ nextType = GET_ASCII_TYPE(*name);
+ if (nextType == ZERO || nextType == NONZERO) {
+ continue; /* ignore leading zero before another digit */
+ }
+ }
+ break;
+ case NONZERO:
+ afterDigit = TRUE;
+ break;
+ default:
+ c1 = (char)type; /* lowercased letter */
+ afterDigit = FALSE;
+ break;
}
-
- /* lowercase for case-insensitive comparison */
- *(dstItr++) = uprv_asciitolower(c1);
- ++name;
+ *dstItr++ = c1;
}
+ *dstItr = 0;
return dst;
}
U_CFUNC char * U_EXPORT2
ucnv_io_stripEBCDICForCompare(char *dst, const char *name) {
- char c1 = *name;
char *dstItr = dst;
-
- while (c1) {
- /* Ignore delimiters '-', '_', and ' ' */
- while ((c1 = *name) == 0x60 || c1 == 0x6d || c1 == 0x40) {
- ++name;
+ uint8_t type, nextType;
+ char c1;
+ UBool afterDigit = FALSE;
+
+ while ((c1 = *name++) != 0) {
+ type = GET_EBCDIC_TYPE(c1);
+ switch (type) {
+ case IGNORE:
+ afterDigit = FALSE;
+ continue; /* ignore all but letters and digits */
+ case ZERO:
+ if (!afterDigit) {
+ nextType = GET_EBCDIC_TYPE(*name);
+ if (nextType == ZERO || nextType == NONZERO) {
+ continue; /* ignore leading zero before another digit */
+ }
+ }
+ break;
+ case NONZERO:
+ afterDigit = TRUE;
+ break;
+ default:
+ c1 = (char)type; /* lowercased letter */
+ afterDigit = FALSE;
+ break;
}
-
- /* lowercase for case-insensitive comparison */
- *(dstItr++) = uprv_ebcdictolower(c1);
- ++name;
+ *dstItr++ = c1;
}
+ *dstItr = 0;
return dst;
}
/**
- * Do a fuzzy compare of a two converter/alias names. The comparison
- * is case-insensitive. It also ignores the characters '-', '_', and
- * ' ' (dash, underscore, and space). Thus the strings "UTF-8",
- * "utf_8", and "Utf 8" are exactly equivalent.
+ * Do a fuzzy compare of two converter/alias names.
+ * The comparison is case-insensitive, ignores leading zeroes if they are not
+ * followed by further digits, and ignores all but letters and digits.
+ * Thus the strings "UTF-8", "utf_8", "u*T@f08" and "Utf 8" are exactly equivalent.
+ * See section 1.4, Charset Alias Matching in Unicode Technical Standard #22
+ * at http://www.unicode.org/reports/tr22/
*
* This is a symmetrical (commutative) operation; order of arguments
* is insignificant. This is an important property for sorting the
@@ -406,15 +486,58 @@ ucnv_io_stripEBCDICForCompare(char *dst, const char *name) {
U_CAPI int U_EXPORT2
ucnv_compareNames(const char *name1, const char *name2) {
int rc;
+ uint8_t type, nextType;
char c1, c2;
+ UBool afterDigit1 = FALSE, afterDigit2 = FALSE;
for (;;) {
- /* Ignore delimiters '-', '_', and ' ' */
- while ((c1 = *name1) == '-' || c1 == '_' || c1 == ' ') {
- ++name1;
+ while ((c1 = *name1++) != 0) {
+ type = GET_CHAR_TYPE(c1);
+ switch (type) {
+ case IGNORE:
+ afterDigit1 = FALSE;
+ continue; /* ignore all but letters and digits */
+ case ZERO:
+ if (!afterDigit1) {
+ nextType = GET_CHAR_TYPE(*name1);
+ if (nextType == ZERO || nextType == NONZERO) {
+ continue; /* ignore leading zero before another digit */
+ }
+ }
+ break;
+ case NONZERO:
+ afterDigit1 = TRUE;
+ break;
+ default:
+ c1 = (char)type; /* lowercased letter */
+ afterDigit1 = FALSE;
+ break;
+ }
+ break; /* deliver c1 */
}
- while ((c2 = *name2) == '-' || c2 == '_' || c2 == ' ') {
- ++name2;
+ while ((c2 = *name2++) != 0) {
+ type = GET_CHAR_TYPE(c2);
+ switch (type) {
+ case IGNORE:
+ afterDigit2 = FALSE;
+ continue; /* ignore all but letters and digits */
+ case ZERO:
+ if (!afterDigit2) {
+ nextType = GET_CHAR_TYPE(*name2);
+ if (nextType == ZERO || nextType == NONZERO) {
+ continue; /* ignore leading zero before another digit */
+ }
+ }
+ break;
+ case NONZERO:
+ afterDigit2 = TRUE;
+ break;
+ default:
+ c2 = (char)type; /* lowercased letter */
+ afterDigit2 = FALSE;
+ break;
+ }
+ break; /* deliver c2 */
}
/* If we reach the ends of both strings then they match */
@@ -423,13 +546,10 @@ ucnv_compareNames(const char *name1, const char *name2) {
}
/* Case-insensitive comparison */
- rc = (int)(unsigned char)uprv_tolower(c1) -
- (int)(unsigned char)uprv_tolower(c2);
+ rc = (int)(unsigned char)c1 - (int)(unsigned char)c2;
if (rc != 0) {
return rc;
}
- ++name1;
- ++name2;
}
}
@@ -438,14 +558,27 @@ ucnv_compareNames(const char *name1, const char *name2) {
* return the converter number index for gConverterList
*/
static U_INLINE uint32_t
-findConverter(const char *alias, UErrorCode *pErrorCode) {
+findConverter(const char *alias, UBool *containsOption, UErrorCode *pErrorCode) {
uint32_t mid, start, limit;
uint32_t lastMid;
int result;
+ int isUnnormalized = (gMainTable.optionTable->stringNormalizationType == UCNV_IO_UNNORMALIZED);
+ char strippedName[UCNV_MAX_CONVERTER_NAME_LENGTH];
+
+ if (!isUnnormalized) {
+ if (uprv_strlen(alias) >= UCNV_MAX_CONVERTER_NAME_LENGTH) {
+ *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+ return UINT32_MAX;
+ }
+
+ /* Lower case and remove ignoreable characters. */
+ ucnv_io_stripForCompare(strippedName, alias);
+ alias = strippedName;
+ }
/* do a binary search for the alias */
start = 0;
- limit = gUntaggedConvArraySize;
+ limit = gMainTable.untaggedConvArraySize;
mid = limit;
lastMid = UINT32_MAX;
@@ -455,7 +588,12 @@ findConverter(const char *alias, UErrorCode *pErrorCode) {
break; /* We haven't moved, and it wasn't found. */
}
lastMid = mid;
- result = ucnv_compareNames(alias, GET_STRING(gAliasList[mid]));
+ if (isUnnormalized) {
+ result = ucnv_compareNames(alias, GET_STRING(gMainTable.aliasList[mid]));
+ }
+ else {
+ result = uprv_strcmp(alias, GET_NORMALIZED_STRING(gMainTable.aliasList[mid]));
+ }
if (result < 0) {
limit = mid;
@@ -466,10 +604,18 @@ findConverter(const char *alias, UErrorCode *pErrorCode) {
* this alias in gAliasList is unique, but different standards
* may map an alias to different converters.
*/
- if (gUntaggedConvArray[mid] & UCNV_AMBIGUOUS_ALIAS_MAP_BIT) {
+ if (gMainTable.untaggedConvArray[mid] & UCNV_AMBIGUOUS_ALIAS_MAP_BIT) {
*pErrorCode = U_AMBIGUOUS_ALIAS_WARNING;
}
- return gUntaggedConvArray[mid] & UCNV_CONVERTER_INDEX_MASK;
+ /* State whether the canonical converter name contains an option.
+ This information is contained in this list in order to maintain backward & forward compatibility. */
+ if (containsOption) {
+ UBool containsCnvOptionInfo = (UBool)gMainTable.optionTable->containsCnvOptionInfo;
+ *containsOption = (UBool)((containsCnvOptionInfo
+ && ((gMainTable.untaggedConvArray[mid] & UCNV_CONTAINS_OPTION_BIT) != 0))
+ || !containsCnvOptionInfo);
+ }
+ return gMainTable.untaggedConvArray[mid] & UCNV_CONVERTER_INDEX_MASK;
}
}
@@ -484,9 +630,9 @@ static U_INLINE UBool
isAliasInList(const char *alias, uint32_t listOffset) {
if (listOffset) {
uint32_t currAlias;
- uint32_t listCount = gTaggedAliasLists[listOffset];
+ uint32_t listCount = gMainTable.taggedAliasLists[listOffset];
/* +1 to skip listCount */
- const uint16_t *currList = gTaggedAliasLists + listOffset + 1;
+ const uint16_t *currList = gMainTable.taggedAliasLists + listOffset + 1;
for (currAlias = 0; currAlias < listCount; currAlias++) {
if (currList[currAlias]
&& ucnv_compareNames(alias, GET_STRING(currList[currAlias]))==0)
@@ -513,14 +659,14 @@ findTaggedAliasListsOffset(const char *alias, const char *standard, UErrorCode *
uint32_t tagNum = getTagNumber(standard);
/* Make a quick guess. Hopefully they used a TR22 canonical alias. */
- convNum = findConverter(alias, &myErr);
+ convNum = findConverter(alias, NULL, &myErr);
if (myErr != U_ZERO_ERROR) {
*pErrorCode = myErr;
}
- if (tagNum < (gTagListSize - UCNV_NUM_HIDDEN_TAGS) && convNum < gConverterListSize) {
- listOffset = gTaggedAliasArray[tagNum*gConverterListSize + convNum];
- if (listOffset && gTaggedAliasLists[listOffset + 1]) {
+ if (tagNum < (gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS) && convNum < gMainTable.converterListSize) {
+ listOffset = gMainTable.taggedAliasArray[tagNum*gMainTable.converterListSize + convNum];
+ if (listOffset && gMainTable.taggedAliasLists[listOffset + 1]) {
return listOffset;
}
if (myErr == U_AMBIGUOUS_ALIAS_WARNING) {
@@ -529,13 +675,13 @@ findTaggedAliasListsOffset(const char *alias, const char *standard, UErrorCode *
at the highest standard affinity.
This may take a while.
*/
- for (idx = 0; idx < gTaggedAliasArraySize; idx++) {
- listOffset = gTaggedAliasArray[idx];
+ for (idx = 0; idx < gMainTable.taggedAliasArraySize; idx++) {
+ listOffset = gMainTable.taggedAliasArray[idx];
if (listOffset && isAliasInList(alias, listOffset)) {
- uint32_t currTagNum = idx/gConverterListSize;
- uint32_t currConvNum = (idx - currTagNum*gConverterListSize);
- uint32_t tempListOffset = gTaggedAliasArray[tagNum*gConverterListSize + currConvNum];
- if (tempListOffset && gTaggedAliasLists[tempListOffset + 1]) {
+ uint32_t currTagNum = idx/gMainTable.converterListSize;
+ uint32_t currConvNum = (idx - currTagNum*gMainTable.converterListSize);
+ uint32_t tempListOffset = gMainTable.taggedAliasArray[tagNum*gMainTable.converterListSize + currConvNum];
+ if (tempListOffset && gMainTable.taggedAliasLists[tempListOffset + 1]) {
return tempListOffset;
}
/* else keep on looking */
@@ -564,13 +710,13 @@ findTaggedConverterNum(const char *alias, const char *standard, UErrorCode *pErr
uint32_t tagNum = getTagNumber(standard);
/* Make a quick guess. Hopefully they used a TR22 canonical alias. */
- convNum = findConverter(alias, &myErr);
+ convNum = findConverter(alias, NULL, &myErr);
if (myErr != U_ZERO_ERROR) {
*pErrorCode = myErr;
}
- if (tagNum < (gTagListSize - UCNV_NUM_HIDDEN_TAGS) && convNum < gConverterListSize) {
- listOffset = gTaggedAliasArray[tagNum*gConverterListSize + convNum];
+ if (tagNum < (gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS) && convNum < gMainTable.converterListSize) {
+ listOffset = gMainTable.taggedAliasArray[tagNum*gMainTable.converterListSize + convNum];
if (listOffset && isAliasInList(alias, listOffset)) {
return convNum;
}
@@ -580,10 +726,10 @@ findTaggedConverterNum(const char *alias, const char *standard, UErrorCode *pErr
We search only in the requested tag, not the whole thing.
This may take a while.
*/
- uint32_t convStart = (tagNum)*gConverterListSize;
- uint32_t convLimit = (tagNum+1)*gConverterListSize;
+ uint32_t convStart = (tagNum)*gMainTable.converterListSize;
+ uint32_t convLimit = (tagNum+1)*gMainTable.converterListSize;
for (idx = convStart; idx < convLimit; idx++) {
- listOffset = gTaggedAliasArray[idx];
+ listOffset = gMainTable.taggedAliasArray[idx];
if (listOffset && isAliasInList(alias, listOffset)) {
return idx-convStart;
}
@@ -600,11 +746,11 @@ findTaggedConverterNum(const char *alias, const char *standard, UErrorCode *pErr
U_CFUNC const char *
-ucnv_io_getConverterName(const char *alias, UErrorCode *pErrorCode) {
+ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *pErrorCode) {
if(haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
- uint32_t convNum = findConverter(alias, pErrorCode);
- if (convNum < gConverterListSize) {
- return GET_STRING(gConverterList[convNum]);
+ uint32_t convNum = findConverter(alias, containsOption, pErrorCode);
+ if (convNum < gMainTable.converterListSize) {
+ return GET_STRING(gMainTable.converterList[convNum]);
}
/* else converter not found */
}
@@ -618,7 +764,7 @@ ucnv_io_countStandardAliases(UEnumeration *enumerator, UErrorCode *pErrorCode) {
uint32_t listOffset = myContext->listOffset;
if (listOffset) {
- value = gTaggedAliasLists[listOffset];
+ value = gMainTable.taggedAliasLists[listOffset];
}
return value;
}
@@ -632,8 +778,8 @@ ucnv_io_nextStandardAliases(UEnumeration *enumerator,
uint32_t listOffset = myContext->listOffset;
if (listOffset) {
- uint32_t listCount = gTaggedAliasLists[listOffset];
- const uint16_t *currList = gTaggedAliasLists + listOffset + 1;
+ uint32_t listCount = gMainTable.taggedAliasLists[listOffset];
+ const uint16_t *currList = gMainTable.taggedAliasLists + listOffset + 1;
if (myContext->listIdx < listCount) {
const char *myStr = GET_STRING(currList[myContext->listIdx++]);
@@ -644,7 +790,9 @@ ucnv_io_nextStandardAliases(UEnumeration *enumerator,
}
}
/* Either we accessed a zero length list, or we enumerated too far. */
- *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ if (resultLength) {
+ *resultLength = 0;
+ }
return NULL;
}
@@ -682,7 +830,7 @@ ucnv_openStandardNames(const char *convName,
/* When listOffset == 0, we want to acknowledge that the
converter name and standard are okay, but there
is nothing to enumerate. */
- if (listOffset < gTaggedAliasListsSize) {
+ if (listOffset < gMainTable.taggedAliasListsSize) {
UAliasContext *myContext;
myEnum = uprv_malloc(sizeof(UEnumeration));
@@ -706,16 +854,16 @@ ucnv_openStandardNames(const char *convName,
return myEnum;
}
-U_CFUNC uint16_t
+static uint16_t
ucnv_io_countAliases(const char *alias, UErrorCode *pErrorCode) {
if(haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
- uint32_t convNum = findConverter(alias, pErrorCode);
- if (convNum < gConverterListSize) {
+ uint32_t convNum = findConverter(alias, NULL, pErrorCode);
+ if (convNum < gMainTable.converterListSize) {
/* tagListNum - 1 is the ALL tag */
- int32_t listOffset = gTaggedAliasArray[(gTagListSize - 1)*gConverterListSize + convNum];
+ int32_t listOffset = gMainTable.taggedAliasArray[(gMainTable.tagListSize - 1)*gMainTable.converterListSize + convNum];
if (listOffset) {
- return gTaggedAliasLists[listOffset];
+ return gMainTable.taggedAliasLists[listOffset];
}
/* else this shouldn't happen. internal program error */
}
@@ -724,19 +872,19 @@ ucnv_io_countAliases(const char *alias, UErrorCode *pErrorCode) {
return 0;
}
-U_CFUNC uint16_t
+static uint16_t
ucnv_io_getAliases(const char *alias, uint16_t start, const char **aliases, UErrorCode *pErrorCode) {
if(haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
uint32_t currAlias;
- uint32_t convNum = findConverter(alias, pErrorCode);
- if (convNum < gConverterListSize) {
+ uint32_t convNum = findConverter(alias, NULL, pErrorCode);
+ if (convNum < gMainTable.converterListSize) {
/* tagListNum - 1 is the ALL tag */
- int32_t listOffset = gTaggedAliasArray[(gTagListSize - 1)*gConverterListSize + convNum];
+ int32_t listOffset = gMainTable.taggedAliasArray[(gMainTable.tagListSize - 1)*gMainTable.converterListSize + convNum];
if (listOffset) {
- uint32_t listCount = gTaggedAliasLists[listOffset];
+ uint32_t listCount = gMainTable.taggedAliasLists[listOffset];
/* +1 to skip listCount */
- const uint16_t *currList = gTaggedAliasLists + listOffset + 1;
+ const uint16_t *currList = gMainTable.taggedAliasLists + listOffset + 1;
for (currAlias = start; currAlias < listCount; currAlias++) {
aliases[currAlias] = GET_STRING(currList[currAlias]);
@@ -749,18 +897,18 @@ ucnv_io_getAliases(const char *alias, uint16_t start, const char **aliases, UErr
return 0;
}
-U_CFUNC const char *
+static const char *
ucnv_io_getAlias(const char *alias, uint16_t n, UErrorCode *pErrorCode) {
if(haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
- uint32_t convNum = findConverter(alias, pErrorCode);
- if (convNum < gConverterListSize) {
+ uint32_t convNum = findConverter(alias, NULL, pErrorCode);
+ if (convNum < gMainTable.converterListSize) {
/* tagListNum - 1 is the ALL tag */
- int32_t listOffset = gTaggedAliasArray[(gTagListSize - 1)*gConverterListSize + convNum];
+ int32_t listOffset = gMainTable.taggedAliasArray[(gMainTable.tagListSize - 1)*gMainTable.converterListSize + convNum];
if (listOffset) {
- uint32_t listCount = gTaggedAliasLists[listOffset];
+ uint32_t listCount = gMainTable.taggedAliasLists[listOffset];
/* +1 to skip listCount */
- const uint16_t *currList = gTaggedAliasLists + listOffset + 1;
+ const uint16_t *currList = gMainTable.taggedAliasLists + listOffset + 1;
if (n < listCount) {
return GET_STRING(currList[n]);
@@ -774,11 +922,11 @@ ucnv_io_getAlias(const char *alias, uint16_t n, UErrorCode *pErrorCode) {
return NULL;
}
-U_CFUNC uint16_t
+static uint16_t
ucnv_io_countStandards(UErrorCode *pErrorCode) {
if (haveAliasData(pErrorCode)) {
/* Don't include the empty list */
- return (uint16_t)(gTagListSize - UCNV_NUM_HIDDEN_TAGS);
+ return (uint16_t)(gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS);
}
return 0;
@@ -787,8 +935,8 @@ ucnv_io_countStandards(UErrorCode *pErrorCode) {
U_CAPI const char * U_EXPORT2
ucnv_getStandard(uint16_t n, UErrorCode *pErrorCode) {
if (haveAliasData(pErrorCode)) {
- if (n < gTagListSize - UCNV_NUM_HIDDEN_TAGS) {
- return GET_STRING(gTagList[n]);
+ if (n < gMainTable.tagListSize - UCNV_NUM_HIDDEN_TAGS) {
+ return GET_STRING(gMainTable.tagList[n]);
}
*pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR;
}
@@ -801,8 +949,8 @@ ucnv_getStandardName(const char *alias, const char *standard, UErrorCode *pError
if (haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
uint32_t listOffset = findTaggedAliasListsOffset(alias, standard, pErrorCode);
- if (0 < listOffset && listOffset < gTaggedAliasListsSize) {
- const uint16_t *currList = gTaggedAliasLists + listOffset + 1;
+ if (0 < listOffset && listOffset < gMainTable.taggedAliasListsSize) {
+ const uint16_t *currList = gMainTable.taggedAliasLists + listOffset + 1;
/* Get the preferred name from this list */
if (currList[0]) {
@@ -847,8 +995,8 @@ ucnv_getCanonicalName(const char *alias, const char *standard, UErrorCode *pErro
if (haveAliasData(pErrorCode) && isAlias(alias, pErrorCode)) {
uint32_t convNum = findTaggedConverterNum(alias, standard, pErrorCode);
- if (convNum < gConverterListSize) {
- return GET_STRING(gConverterList[convNum]);
+ if (convNum < gMainTable.converterListSize) {
+ return GET_STRING(gMainTable.converterList[convNum]);
}
}
@@ -857,7 +1005,7 @@ ucnv_getCanonicalName(const char *alias, const char *standard, UErrorCode *pErro
static int32_t U_CALLCONV
ucnv_io_countAllConverters(UEnumeration *enumerator, UErrorCode *pErrorCode) {
- return gConverterListSize;
+ return gMainTable.converterListSize;
}
static const char* U_CALLCONV
@@ -867,15 +1015,17 @@ ucnv_io_nextAllConverters(UEnumeration *enumerator,
{
uint16_t *myContext = (uint16_t *)(enumerator->context);
- if (*myContext < gConverterListSize) {
- const char *myStr = GET_STRING(gConverterList[(*myContext)++]);
+ if (*myContext < gMainTable.converterListSize) {
+ const char *myStr = GET_STRING(gMainTable.converterList[(*myContext)++]);
if (resultLength) {
*resultLength = (int32_t)uprv_strlen(myStr);
}
return myStr;
}
/* Either we accessed a zero length list, or we enumerated too far. */
- *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ if (resultLength) {
+ *resultLength = 0;
+ }
return NULL;
}
@@ -921,7 +1071,7 @@ ucnv_openAllNames(UErrorCode *pErrorCode) {
U_CFUNC uint16_t
ucnv_io_countTotalAliases(UErrorCode *pErrorCode) {
if (haveAliasData(pErrorCode)) {
- return (uint16_t)gAliasListSize;
+ return (uint16_t)gMainTable.aliasListSize;
}
return 0;
}
@@ -1012,22 +1162,23 @@ ucnv_swapAliases(const UDataSwapper *ds,
}
inTable=(const uint16_t *)((const char *)inData+headerSize);
+ uprv_memset(toc, 0, sizeof(toc));
toc[tocLengthIndex]=tocLength=ds->readUInt32(((const uint32_t *)inTable)[tocLengthIndex]);
- if(tocLength<minTocLength) {
- udata_printError(ds, "ucnv_swapAliases(): table of contents too short (%u sections)\n", tocLength);
+ if(tocLength<minTocLength || offsetsCount<=tocLength) {
+ udata_printError(ds, "ucnv_swapAliases(): table of contents contains unsupported number of sections (%u sections)\n", tocLength);
*pErrorCode=U_INVALID_FORMAT_ERROR;
return 0;
}
/* read the known part of the table of contents */
- for(i=converterListIndex; i<=minTocLength; ++i) {
+ for(i=converterListIndex; i<=tocLength; ++i) {
toc[i]=ds->readUInt32(((const uint32_t *)inTable)[i]);
}
/* compute offsets */
- offsets[tocLengthIndex]=0;
+ uprv_memset(offsets, 0, sizeof(offsets));
offsets[converterListIndex]=2*(1+tocLength); /* count two 16-bit units per toc entry */
- for(i=tagListIndex; i<=stringTableIndex; ++i) {
+ for(i=tagListIndex; i<=tocLength; ++i) {
offsets[i]=offsets[i-1]+toc[i-1];
}
@@ -1052,8 +1203,8 @@ ucnv_swapAliases(const UDataSwapper *ds,
/* swap the entire table of contents */
ds->swapArray32(ds, inTable, 4*(1+tocLength), outTable, pErrorCode);
- /* swap strings */
- ds->swapInvChars(ds, inTable+offsets[stringTableIndex], 2*(int32_t)toc[stringTableIndex],
+ /* swap unormalized strings & normalized strings */
+ ds->swapInvChars(ds, inTable+offsets[stringTableIndex], 2*(int32_t)(toc[stringTableIndex]+toc[normalizedStringTableIndex]),
outTable+offsets[stringTableIndex], pErrorCode);
if(U_FAILURE(*pErrorCode)) {
udata_printError(ds, "ucnv_swapAliases().swapInvChars(charset names) failed\n");
diff --git a/Build/source/libs/icu-xetex/common/ucnv_io.h b/Build/source/libs/icu-xetex/common/ucnv_io.h
index da44b0c729f..91bc6e5916a 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_io.h
+++ b/Build/source/libs/icu-xetex/common/ucnv_io.h
@@ -1,13 +1,13 @@
/*
**********************************************************************
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
*
* ucnv_io.h:
- * defines variables and functions pertaining to file access, and name resolution
- * aspect of the library
+ * defines variables and functions pertaining to converter name resolution
+ * aspect of the conversion code
*/
#ifndef UCNV_IO_H
@@ -20,16 +20,51 @@
#include "udataswp.h"
#define UCNV_AMBIGUOUS_ALIAS_MAP_BIT 0x8000
+#define UCNV_CONTAINS_OPTION_BIT 0x4000
#define UCNV_CONVERTER_INDEX_MASK 0xFFF
#define UCNV_NUM_RESERVED_TAGS 2
#define UCNV_NUM_HIDDEN_TAGS 1
+enum {
+ UCNV_IO_UNNORMALIZED,
+ UCNV_IO_STD_NORMALIZED,
+ UCNV_IO_NORM_TYPE_COUNT
+};
+
+typedef struct {
+ uint16_t stringNormalizationType;
+ uint16_t containsCnvOptionInfo;
+} UConverterAliasOptions;
+
+typedef struct UConverterAlias {
+ const uint16_t *converterList;
+ const uint16_t *tagList;
+ const uint16_t *aliasList;
+ const uint16_t *untaggedConvArray;
+ const uint16_t *taggedAliasArray;
+ const uint16_t *taggedAliasLists;
+ const UConverterAliasOptions *optionTable;
+ const uint16_t *stringTable;
+ const uint16_t *normalizedStringTable;
+
+ uint32_t converterListSize;
+ uint32_t tagListSize;
+ uint32_t aliasListSize;
+ uint32_t untaggedConvArraySize;
+ uint32_t taggedAliasArraySize;
+ uint32_t taggedAliasListsSize;
+ uint32_t optionTableSize;
+ uint32_t stringTableSize;
+ uint32_t normalizedStringTableSize;
+} UConverterAlias;
+
/**
* \var ucnv_io_stripForCompare
* Remove the underscores, dashes and spaces from the name, and convert
* the name to lower case.
* @param dst The destination buffer, which is <= the buffer of name.
* @param dst The destination buffer, which is <= the buffer of name.
+ * @see ucnv_compareNames
* @return the destination buffer.
*/
#if U_CHARSET_FAMILY==U_ASCII_FAMILY
@@ -40,10 +75,10 @@
# error U_CHARSET_FAMILY is not valid
#endif
-U_CFUNC char * U_EXPORT2
+U_CAPI char * U_EXPORT2
ucnv_io_stripASCIIForCompare(char *dst, const char *name);
-U_CFUNC char * U_EXPORT2
+U_CAPI char * U_EXPORT2
ucnv_io_stripEBCDICForCompare(char *dst, const char *name);
/**
@@ -52,59 +87,16 @@ ucnv_io_stripEBCDICForCompare(char *dst, const char *name);
* is returned in mixed-case.
* Returns NULL if the alias is not found.
* @param alias The alias name to be searched.
+ * @param containsOption A return value stating whether the returned converter name contains an option (a comma)
* @param pErrorCode The error code
* @return the converter name in mixed-case, return NULL if the alias is not found.
*/
U_CFUNC const char *
-ucnv_io_getConverterName(const char *alias, UErrorCode *pErrorCode);
-
-/**
- * The count for ucnv_io_getAliases and ucnv_io_getAlias
- * @param alias The alias name to be counted
- * @param pErrorCode The error code
- * @return the alias count
- */
-U_CFUNC uint16_t
-ucnv_io_countAliases(const char *alias, UErrorCode *pErrorCode);
-
-/**
- * Search case-insensitively for a converter alias and set aliases to
- * a pointer to the list of aliases for the actual converter.
- * The first "alias" is the canonical converter name.
- * The aliases are stored consecutively, in mixed case, each NUL-terminated.
- * There are as many strings in this list as the return value specifies.
- * Returns the number of aliases including the canonical converter name,
- * or 0 if the alias is not found.
- * @param alias The canonical converter name
- * @param start
- * @param aliases A pointer to the list of aliases for the actual converter
- * @return the number of aliases including the canonical converter name, or 0 if the alias is not found.
- */
-U_CFUNC uint16_t
-ucnv_io_getAliases(const char *alias, uint16_t start, const char **aliases, UErrorCode *pErrorCode);
-
-/**
- * Search case-insensitively for a converter alias and return
- * the (n)th alias.
- * Returns NULL if the alias is not found.
- * @param alias The converter alias
- * @param n The number specifies which alias to get
- * @param pErrorCode The error code
- * @return the (n)th alias and return NULL if the alias is not found.
- */
-U_CFUNC const char *
-ucnv_io_getAlias(const char *alias, uint16_t n, UErrorCode *pErrorCode);
-
-/**
- * Return the number of all standard names.
- * @param pErrorCode The error code
- * @return the number of all standard names
- */
-U_CFUNC uint16_t
-ucnv_io_countStandards(UErrorCode *pErrorCode);
+ucnv_io_getConverterName(const char *alias, UBool *containsOption, UErrorCode *pErrorCode);
/**
- * Return the number of all aliases (and converter names).
+ * Return the number of all aliases and converter names.
+ * This is helpful if you need a number for creating an alias table.
* @param pErrorCode The error code
* @return the number of all aliases
*/
@@ -112,7 +104,7 @@ U_CFUNC uint16_t
ucnv_io_countTotalAliases(UErrorCode *pErrorCode);
/**
- * Swap an ICU converter alias table. See ucnv_io.c.
+ * Swap an ICU converter alias table. See implementation for details.
* @internal
*/
U_CAPI int32_t U_EXPORT2
diff --git a/Build/source/libs/icu-xetex/common/ucnv_lmb.c b/Build/source/libs/icu-xetex/common/ucnv_lmb.c
index 8f4db1cd38a..79606af2894 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_lmb.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_lmb.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnv_lmb.cpp
@@ -1016,9 +1016,8 @@ static UChar32
_LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args,
UErrorCode* err)
{
- UChar32 uniChar = 0; /* an output UNICODE char */
- ulmbcs_byte_t CurByte; /* A byte from the input stream */
- const char * saveSource;
+ UChar32 uniChar = 0; /* an output UNICODE char */
+ ulmbcs_byte_t CurByte; /* A byte from the input stream */
/* error check */
if (args->source >= args->sourceLimit)
@@ -1027,7 +1026,7 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args,
return 0xffff;
}
/* Grab first byte & save address for error recovery */
- CurByte = *((ulmbcs_byte_t *) (saveSource = args->source++));
+ CurByte = *((ulmbcs_byte_t *) (args->source++));
/*
* at entry of each if clause:
@@ -1046,7 +1045,7 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args,
|| CurByte == ULMBCS_HT || CurByte == ULMBCS_CR
|| CurByte == ULMBCS_LF || CurByte == ULMBCS_123SYSTEMRANGE)
{
- uniChar = CurByte;
+ uniChar = CurByte;
}
else
{
diff --git a/Build/source/libs/icu-xetex/common/ucnv_u16.c b/Build/source/libs/icu-xetex/common/ucnv_u16.c
index 93123b596cb..6fc9e2a4493 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_u16.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_u16.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnv_u16.c
@@ -35,15 +35,16 @@ enum {
# define _UTF16PEFromUnicodeWithOffsets _UTF16LEFromUnicodeWithOffsets
#endif
+
static void
_UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
UErrorCode *pErrorCode) {
UConverter *cnv;
const UChar *source;
- uint8_t *target;
+ char *target;
int32_t *offsets;
- int32_t targetCapacity, length, sourceIndex;
+ uint32_t targetCapacity, length, sourceIndex;
UChar c, trail;
char overflow[4];
@@ -67,13 +68,13 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
cnv->fromUnicodeStatus=0;
}
- targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
- if(targetCapacity<=0) {
+ target=pArgs->target;
+ if(target >= pArgs->targetLimit) {
*pErrorCode=U_BUFFER_OVERFLOW_ERROR;
return;
}
- target=(uint8_t *)pArgs->target;
+ targetCapacity=(uint32_t)(pArgs->targetLimit-target);
offsets=pArgs->offsets;
sourceIndex=0;
@@ -101,7 +102,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
if(c==0) {
/* copy an even number of bytes for complete UChars */
- int32_t count=2*length;
+ uint32_t count=2*length;
if(count>targetCapacity) {
count=targetCapacity&~1;
}
@@ -226,7 +227,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
(char **)&target, pArgs->targetLimit,
&offsets, sourceIndex,
pErrorCode);
- targetCapacity=(int32_t)(pArgs->targetLimit-(char *)target);
+ targetCapacity=(uint32_t)(pArgs->targetLimit-(char *)target);
}
if(U_SUCCESS(*pErrorCode) && source<pArgs->sourceLimit && targetCapacity==0) {
@@ -247,7 +248,7 @@ _UTF16BEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
UChar *target;
int32_t *offsets;
- int32_t targetCapacity, length, count, sourceIndex;
+ uint32_t targetCapacity, length, count, sourceIndex;
UChar c, trail;
cnv=pArgs->converter;
@@ -258,13 +259,13 @@ _UTF16BEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
return;
}
- targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
- if(targetCapacity<=0) {
+ target=pArgs->target;
+ if(target >= pArgs->targetLimit) {
*pErrorCode=U_BUFFER_OVERFLOW_ERROR;
return;
}
- target=pArgs->target;
+ targetCapacity=(uint32_t)(pArgs->targetLimit-target);
offsets=pArgs->offsets;
sourceIndex=0;
c=0;
@@ -594,10 +595,10 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
UErrorCode *pErrorCode) {
UConverter *cnv;
const UChar *source;
- uint8_t *target;
+ char *target;
int32_t *offsets;
- int32_t targetCapacity, length, sourceIndex;
+ uint32_t targetCapacity, length, sourceIndex;
UChar c, trail;
char overflow[4];
@@ -621,13 +622,13 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
cnv->fromUnicodeStatus=0;
}
- targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
- if(targetCapacity<=0) {
+ target=pArgs->target;
+ if(target >= pArgs->targetLimit) {
*pErrorCode=U_BUFFER_OVERFLOW_ERROR;
return;
}
- target=(uint8_t *)pArgs->target;
+ targetCapacity=(uint32_t)(pArgs->targetLimit-pArgs->target);
offsets=pArgs->offsets;
sourceIndex=0;
@@ -655,7 +656,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
if(c==0) {
/* copy an even number of bytes for complete UChars */
- int32_t count=2*length;
+ uint32_t count=2*length;
if(count>targetCapacity) {
count=targetCapacity&~1;
}
@@ -777,10 +778,10 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
/* output length bytes with overflow (length>targetCapacity>0) */
ucnv_fromUWriteBytes(cnv,
overflow, length,
- (char **)&target, pArgs->targetLimit,
+ &target, pArgs->targetLimit,
&offsets, sourceIndex,
pErrorCode);
- targetCapacity=(int32_t)(pArgs->targetLimit-(char *)target);
+ targetCapacity=(uint32_t)(pArgs->targetLimit-(char *)target);
}
if(U_SUCCESS(*pErrorCode) && source<pArgs->sourceLimit && targetCapacity==0) {
@@ -789,7 +790,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs,
/* write back the updated pointers */
pArgs->source=source;
- pArgs->target=(char *)target;
+ pArgs->target=target;
pArgs->offsets=offsets;
}
@@ -801,7 +802,7 @@ _UTF16LEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
UChar *target;
int32_t *offsets;
- int32_t targetCapacity, length, count, sourceIndex;
+ uint32_t targetCapacity, length, count, sourceIndex;
UChar c, trail;
cnv=pArgs->converter;
@@ -812,13 +813,13 @@ _UTF16LEToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs,
return;
}
- targetCapacity=(int32_t)(pArgs->targetLimit-pArgs->target);
- if(targetCapacity<=0) {
+ target=pArgs->target;
+ if(target >= pArgs->targetLimit) {
*pErrorCode=U_BUFFER_OVERFLOW_ERROR;
return;
}
- target=pArgs->target;
+ targetCapacity=(uint32_t)(pArgs->targetLimit-pArgs->target);
offsets=pArgs->offsets;
sourceIndex=0;
c=0;
diff --git a/Build/source/libs/icu-xetex/common/ucnv_u32.c b/Build/source/libs/icu-xetex/common/ucnv_u32.c
index 223f923fdce..034bf9bbcb9 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_u32.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_u32.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnv_u32.c
@@ -51,9 +51,10 @@ T_UConverter_toUnicode_UTF32_BE(UConverterToUnicodeArgs * args,
unsigned char *toUBytes = args->converter->toUBytes;
uint32_t ch, i;
- /* UTF-8 returns here for only non-offset, this needs to change.*/
+ /* Restore state of current sequence */
if (args->converter->toUnicodeStatus && myTarget < targetLimit) {
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
ch = args->converter->toUnicodeStatus - 1;/*Stores the previously calculated ch from a previous call*/
args->converter->toUnicodeStatus = 0;
@@ -131,8 +132,10 @@ T_UConverter_toUnicode_UTF32_BE_OFFSET_LOGIC(UConverterToUnicodeArgs * args,
uint32_t ch, i;
int32_t offsetNum = 0;
+ /* Restore state of current sequence */
if (args->converter->toUnicodeStatus && myTarget < targetLimit) {
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
ch = args->converter->toUnicodeStatus - 1;/*Stores the previously calculated ch from a previous call*/
args->converter->toUnicodeStatus = 0;
@@ -510,10 +513,11 @@ T_UConverter_toUnicode_UTF32_LE(UConverterToUnicodeArgs * args,
unsigned char *toUBytes = args->converter->toUBytes;
uint32_t ch, i;
- /* UTF-8 returns here for only non-offset, this needs to change.*/
+ /* Restore state of current sequence */
if (args->converter->toUnicodeStatus && myTarget < targetLimit)
{
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
/* Stores the previously calculated ch from a previous call*/
ch = args->converter->toUnicodeStatus - 1;
@@ -596,10 +600,11 @@ T_UConverter_toUnicode_UTF32_LE_OFFSET_LOGIC(UConverterToUnicodeArgs * args,
uint32_t ch, i;
int32_t offsetNum = 0;
- /* UTF-8 returns here for only non-offset, this needs to change.*/
+ /* Restore state of current sequence */
if (args->converter->toUnicodeStatus && myTarget < targetLimit)
{
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
/* Stores the previously calculated ch from a previous call*/
ch = args->converter->toUnicodeStatus - 1;
diff --git a/Build/source/libs/icu-xetex/common/ucnv_u8.c b/Build/source/libs/icu-xetex/common/ucnv_u8.c
index 8abcc604b4b..7b977019ce0 100644
--- a/Build/source/libs/icu-xetex/common/ucnv_u8.c
+++ b/Build/source/libs/icu-xetex/common/ucnv_u8.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnv_u8.c
@@ -101,6 +101,7 @@ static void ucnv_toUnicode_UTF8 (UConverterToUnicodeArgs * args,
{
inBytes = args->converter->mode; /* restore # of bytes to consume */
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
ch = args->converter->toUnicodeStatus;/*Stores the previously calculated ch from a previous call*/
args->converter->toUnicodeStatus = 0;
@@ -165,7 +166,6 @@ morebytes:
(isCESU8 ? i <= 3 : !UTF_IS_SURROGATE(ch)))
{
/* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */
- args->converter->toULength = 0;
if (ch <= MAXIMUM_UCS2)
{
/* fits in 16 bits */
@@ -230,6 +230,7 @@ static void ucnv_toUnicode_UTF8_OFFSETS_LOGIC (UConverterToUnicodeArgs * args,
{
inBytes = args->converter->mode; /* restore # of bytes to consume */
i = args->converter->toULength; /* restore # of bytes consumed */
+ args->converter->toULength = 0;
ch = args->converter->toUnicodeStatus;/*Stores the previously calculated ch from a previous call*/
args->converter->toUnicodeStatus = 0;
@@ -292,7 +293,6 @@ morebytes:
(isCESU8 ? i <= 3 : !UTF_IS_SURROGATE(ch)))
{
/* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */
- args->converter->toULength = 0;
if (ch <= MAXIMUM_UCS2)
{
/* fits in 16 bits */
@@ -349,7 +349,7 @@ U_CFUNC void ucnv_fromUnicode_UTF8 (UConverterFromUnicodeArgs * args,
const UChar *sourceLimit = args->sourceLimit;
const unsigned char *targetLimit = (unsigned char *) args->targetLimit;
UBool isCESU8 = (UBool)(args->converter->sharedData == &_CESU8Data);
- UChar32 ch, ch2;
+ UChar32 ch;
int16_t indexToWrite;
char temp[4];
@@ -394,7 +394,6 @@ lowsurrogate:
if(UTF_IS_SECOND_SURROGATE(trail)) {
++mySource;
ch=UTF16_GET_PAIR_VALUE(ch, trail);
- ch2 = 0;
/* convert this supplementary code point */
/* exit this condition tree */
} else {
@@ -466,7 +465,7 @@ U_CFUNC void ucnv_fromUnicode_UTF8_OFFSETS_LOGIC (UConverterFromUnicodeArgs * ar
const UChar *sourceLimit = args->sourceLimit;
const unsigned char *targetLimit = (unsigned char *) args->targetLimit;
UBool isCESU8 = (UBool)(args->converter->sharedData == &_CESU8Data);
- UChar32 ch, ch2;
+ UChar32 ch;
int32_t offsetNum, nextSourceIndex;
int16_t indexToWrite;
char temp[4];
@@ -522,7 +521,6 @@ lowsurrogate:
++mySource;
++nextSourceIndex;
ch=UTF16_GET_PAIR_VALUE(ch, trail);
- ch2 = 0;
/* convert this supplementary code point */
/* exit this condition tree */
} else {
diff --git a/Build/source/libs/icu-xetex/common/ucnvhz.c b/Build/source/libs/icu-xetex/common/ucnvhz.c
index 2b0b3999ece..b94811b8122 100644
--- a/Build/source/libs/icu-xetex/common/ucnvhz.c
+++ b/Build/source/libs/icu-xetex/common/ucnvhz.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnvhz.c
@@ -53,10 +53,10 @@
typedef struct{
+ UConverter* gbConverter;
int32_t targetIndex;
int32_t sourceIndex;
UBool isEscapeAppended;
- UConverter* gbConverter;
UBool isStateDBCS;
UBool isTargetUCharDBCS;
}UConverterDataHZ;
@@ -69,16 +69,11 @@ _HZOpen(UConverter *cnv, const char *name,const char *locale,uint32_t options, U
cnv->fromUnicodeStatus= 0;
cnv->mode=0;
cnv->fromUChar32=0x0000;
- cnv->extraInfo = uprv_malloc (sizeof (UConverterDataHZ));
+ cnv->extraInfo = uprv_malloc(sizeof(UConverterDataHZ));
if(cnv->extraInfo != NULL){
+ uprv_memset(cnv->extraInfo, 0, sizeof(UConverterDataHZ));
((UConverterDataHZ*)cnv->extraInfo)->gbConverter = ucnv_open("ibm-1386",errorCode);
- ((UConverterDataHZ*)cnv->extraInfo)->isStateDBCS = FALSE;
- ((UConverterDataHZ*)cnv->extraInfo)->isEscapeAppended = FALSE;
- ((UConverterDataHZ*)cnv->extraInfo)->targetIndex = 0;
- ((UConverterDataHZ*)cnv->extraInfo)->sourceIndex = 0;
- ((UConverterDataHZ*)cnv->extraInfo)->isTargetUCharDBCS = FALSE;
}
- /* test for NULL */
else {
*errorCode = U_MEMORY_ALLOCATION_ERROR;
return;
@@ -148,7 +143,8 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
UChar32 targetUniChar = 0x0000;
UChar mySourceChar = 0x0000;
UConverterDataHZ* myData=(UConverterDataHZ*)(args->converter->extraInfo);
-
+ tempBuf[0]=0;
+ tempBuf[1]=0;
if ((args->converter == NULL) || (args->targetLimit < args->target) || (mySourceLimit < args->source)){
*err = U_ILLEGAL_ARGUMENT_ERROR;
return;
@@ -261,9 +257,17 @@ SAVE_STATE:
*err = U_ILLEGAL_CHAR_FOUND;
}
if(myData->isStateDBCS){
- args->converter->toUBytes[0] = (uint8_t)(tempBuf[0]-0x80);
- args->converter->toUBytes[1] = (uint8_t)(tempBuf[1]-0x80);
- args->converter->toULength=2;
+ /* this should never occur since isStateDBCS is set to true
+ * only after tempBuf[0] and tempBuf[1]
+ * are set to the input .. just to please BEAM
+ */
+ if(tempBuf[0]==0 || tempBuf[1]==0){
+ *err = U_INTERNAL_PROGRAM_ERROR;
+ }else{
+ args->converter->toUBytes[0] = (uint8_t)(tempBuf[0]-0x80);
+ args->converter->toUBytes[1] = (uint8_t)(tempBuf[1]-0x80);
+ args->converter->toULength=2;
+ }
}
else{
args->converter->toUBytes[0] = (uint8_t)mySourceChar;
@@ -295,11 +299,10 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
int32_t mySourceLength = (int32_t)(args->sourceLimit - args->source);
int32_t length=0;
uint32_t targetUniChar = 0x0000;
- UChar32 mySourceChar = 0x0000,c=0x0000;
+ UChar32 mySourceChar = 0x0000;
UConverterDataHZ *myConverterData=(UConverterDataHZ*)args->converter->extraInfo;
UBool isTargetUCharDBCS = (UBool) myConverterData->isTargetUCharDBCS;
UBool oldIsTargetUCharDBCS = isTargetUCharDBCS;
- UBool isEscapeAppended =FALSE;
int len =0;
const char* escSeq=NULL;
@@ -315,7 +318,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
targetUniChar = missingCharMarker;
if (myTargetIndex < targetLength){
- c=mySourceChar = (UChar) mySource[mySourceIndex++];
+ mySourceChar = (UChar) mySource[mySourceIndex++];
oldIsTargetUCharDBCS = isTargetUCharDBCS;
@@ -344,13 +347,13 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
len =ESC_LEN;
escSeq = SB_ESCAPE;
CONCAT_ESCAPE_MACRO(args, myTargetIndex, targetLength, escSeq,err,len,mySourceIndex);
- myConverterData->isEscapeAppended =isEscapeAppended =TRUE;
+ myConverterData->isEscapeAppended = TRUE;
}
else{ /* Shifting from a single byte to double byte mode*/
len =ESC_LEN;
escSeq = DB_ESCAPE;
CONCAT_ESCAPE_MACRO(args, myTargetIndex, targetLength, escSeq,err,len,mySourceIndex);
- myConverterData->isEscapeAppended =isEscapeAppended =TRUE;
+ myConverterData->isEscapeAppended = TRUE;
}
}
@@ -457,20 +460,28 @@ _HZ_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *e
*p++= UCNV_CLOSE_BRACE;
convData->isTargetUCharDBCS=FALSE;
}
- *p++= cnv->subChar[0];
+ *p++= (char)cnv->subChars[0];
ucnv_cbFromUWriteBytes(args,
buffer, (int32_t)(p - buffer),
offsetIndex, err);
}
-/* structure for SafeClone calculations */
+/*
+ * Structure for cloning an HZ converter into a single memory block.
+ * ucnv_safeClone() of the HZ converter will align the entire cloneHZStruct,
+ * and then ucnv_safeClone() of the sub-converter may additionally align
+ * subCnv inside the cloneHZStruct, for which we need the deadSpace after
+ * subCnv. This is because UAlignedMemory may be larger than the actually
+ * necessary alignment size for the platform.
+ * The other cloneHZStruct fields will not be moved around,
+ * and are aligned properly with cloneHZStruct's alignment.
+ */
struct cloneHZStruct
{
UConverter cnv;
- UAlignedMemory deadSpace1;
UConverter subCnv;
- UAlignedMemory deadSpace2;
+ UAlignedMemory deadSpace;
UConverterDataHZ mydata;
};
@@ -494,14 +505,14 @@ _HZ_SafeClone(const UConverter *cnv,
}
localClone = (struct cloneHZStruct *)stackBuffer;
- uprv_memcpy(&localClone->cnv, cnv, sizeof(UConverter));
+ /* ucnv.c/ucnv_safeClone() copied the main UConverter already */
uprv_memcpy(&localClone->mydata, cnv->extraInfo, sizeof(UConverterDataHZ));
localClone->cnv.extraInfo = &localClone->mydata;
localClone->cnv.isExtraLocal = TRUE;
/* deep-clone the sub-converter */
- size = (int32_t)sizeof(UConverter);
+ size = (int32_t)(sizeof(UConverter) + sizeof(UAlignedMemory)); /* include size of padding */
((UConverterDataHZ*)localClone->cnv.extraInfo)->gbConverter =
ucnv_safeClone(((UConverterDataHZ*)cnv->extraInfo)->gbConverter, &localClone->subCnv, &size, status);
diff --git a/Build/source/libs/icu-xetex/common/ucnvisci.c b/Build/source/libs/icu-xetex/common/ucnvisci.c
index 90b66be3c34..84a2740f605 100644
--- a/Build/source/libs/icu-xetex/common/ucnvisci.c
+++ b/Build/source/libs/icu-xetex/common/ucnvisci.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ucnvisci.c
@@ -70,28 +70,28 @@ typedef enum {
/**
- * Enumeration for switching code pages if <ATX>+<one of below values>
+ * Enumeration for switching code pages if <ATR>+<one of below values>
* is encountered
*/
typedef enum {
- DEF =0x40,
- RMN =0x41,
- DEV =0x42,
- BNG =0x43,
- TML =0x44,
- TLG =0x45,
- ASM =0x46,
- ORI =0x47,
- KND =0x48,
- MLM =0x49,
- GJR =0x4A,
- PNJ =0x4B,
- ARB =0x71,
- PES =0x72,
- URD =0x73,
- SND =0x74,
- KSM =0x75,
- PST =0x76
+ DEF = 0x40,
+ RMN = 0x41,
+ DEV = 0x42,
+ BNG = 0x43,
+ TML = 0x44,
+ TLG = 0x45,
+ ASM = 0x46,
+ ORI = 0x47,
+ KND = 0x48,
+ MLM = 0x49,
+ GJR = 0x4A,
+ PNJ = 0x4B,
+ ARB = 0x71,
+ PES = 0x72,
+ URD = 0x73,
+ SND = 0x74,
+ KSM = 0x75,
+ PST = 0x76
}ISCIILang;
typedef enum{
@@ -116,10 +116,18 @@ typedef struct{
MaskEnum currentMaskToUnicode; /* mask for current state in toUnicode */
MaskEnum defMaskToUnicode; /* mask for default state in toUnicode */
UBool isFirstBuffer; /* boolean for fromUnicode to see if we need to announce the first script */
+ UBool resetToDefaultToUnicode; /* boolean for reseting to default delta and mask when a newline is encountered*/
char name[30];
}UConverterDataISCII;
-static const uint16_t lookupInitialData[][3]={
+typedef struct LookupDataStruct
+{
+ UniLang uniLang;
+ MaskEnum maskEnum;
+ ISCIILang isciiLang;
+} LookupDataStruct;
+
+static const LookupDataStruct lookupInitialData[]={
{ DEVANAGARI, DEV_MASK, DEV },
{ BENGALI, BNG_MASK, BNG },
{ GURMUKHI, PNJ_MASK, PNJ },
@@ -141,15 +149,16 @@ _ISCIIOpen(UConverter *cnv, const char *name,const char *locale,uint32_t options
converterData->contextCharToUnicode=NO_CHAR_MARKER;
cnv->toUnicodeStatus = missingCharMarker;
converterData->contextCharFromUnicode=0x0000;
+ converterData->resetToDefaultToUnicode=FALSE;
/* check if the version requested is supported */
if((options & UCNV_OPTIONS_VERSION_MASK) < 9){
/* initialize state variables */
converterData->currentDeltaFromUnicode=converterData->currentDeltaToUnicode=
converterData->defDeltaToUnicode=
- (uint16_t)(lookupInitialData[options & UCNV_OPTIONS_VERSION_MASK][0] * DELTA);
+ (uint16_t)(lookupInitialData[options & UCNV_OPTIONS_VERSION_MASK].uniLang * DELTA);
converterData->currentMaskFromUnicode = converterData->currentMaskToUnicode =
- converterData->defMaskToUnicode=lookupInitialData[options & UCNV_OPTIONS_VERSION_MASK][1];
+ converterData->defMaskToUnicode=lookupInitialData[options & UCNV_OPTIONS_VERSION_MASK].maskEnum;
converterData->isFirstBuffer=TRUE;
uprv_strcpy(converterData->name,"ISCII,version=");
@@ -198,9 +207,10 @@ _ISCIIReset(UConverter *cnv, UConverterResetChoice choice){
if(choice!=UCNV_RESET_TO_UNICODE) {
cnv->fromUChar32=0x0000;
data->contextCharFromUnicode=0x00;
- data->currentMaskFromUnicode=data->defDeltaToUnicode;
+ data->currentMaskFromUnicode=data->defMaskToUnicode;
data->currentDeltaFromUnicode=data->defDeltaToUnicode;
data->isFirstBuffer=TRUE;
+ data->resetToDefaultToUnicode=FALSE;
}
}
@@ -809,7 +819,6 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
int32_t* offsets = args->offsets;
uint32_t targetByteUnit = 0x0000;
UChar32 sourceChar = 0x0000;
- UBool useFallback;
UConverterDataISCII *converterData;
uint16_t newDelta=0;
uint16_t range = 0;
@@ -821,7 +830,6 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
}
/* initialize data */
converterData=(UConverterDataISCII*)args->converter->extraInfo;
- useFallback = args->converter->useFallback;
newDelta=converterData->currentDeltaFromUnicode;
range = (uint16_t)(newDelta/DELTA);
@@ -844,7 +852,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
}
if(sourceChar == LF){
targetByteUnit = ATR<<8;
- targetByteUnit += (uint8_t) lookupInitialData[range][2];
+ targetByteUnit += (uint8_t) lookupInitialData[range].isciiLang;
args->converter->fromUnicodeStatus=sourceChar;
/* now append ATR and language code */
WRITE_TO_TARGET_FROM_U(args,offsets,source,target,targetLimit,targetByteUnit,err);
@@ -890,7 +898,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
/* Now are we in the same block as the previous? */
if(newDelta!= converterData->currentDeltaFromUnicode || converterData->isFirstBuffer){
converterData->currentDeltaFromUnicode = newDelta;
- converterData->currentMaskFromUnicode = lookupInitialData[range][1];
+ converterData->currentMaskFromUnicode = lookupInitialData[range].maskEnum;
deltaChanged =TRUE;
converterData->isFirstBuffer=FALSE;
}
@@ -916,7 +924,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args,
*/
uint16_t temp=0;
temp =(uint16_t)(ATR<<8);
- temp += (uint16_t)((uint8_t) lookupInitialData[range][2]);
+ temp += (uint16_t)((uint8_t) lookupInitialData[range].isciiLang);
/* reset */
deltaChanged=FALSE;
/* now append ATR and language code */
@@ -997,8 +1005,10 @@ static const int32_t lookupTable[][2]={
{ BENGALI, BNG_MASK },
{ ORIYA, ORI_MASK },
{ KANNADA, KND_MASK },
+ { MALAYALAM, MLM_MASK },
{ GUJARATI, GJR_MASK },
- { GURMUKHI, PNJ_MASK },
+ { GURMUKHI, PNJ_MASK }
+
};
#define WRITE_TO_TARGET_TO_U(args,source,target,offsets,offset,targetUniChar,delta, err){\
@@ -1099,7 +1109,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
data->currentDeltaToUnicode =
(uint16_t)(lookupTable[sourceChar & 0x0F][0] * DELTA);
data->currentMaskToUnicode =
- lookupTable[sourceChar & 0x0F][1] ;
+ (MaskEnum)lookupTable[sourceChar & 0x0F][1] ;
}
else if(sourceChar==DEF){
/* switch back to default */
@@ -1200,6 +1210,14 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
*contextCharToUnicode = sourceChar;
}
break;
+ case 0x0A:
+ /* fall through */
+ case 0x0D:
+ data->resetToDefaultToUnicode = TRUE;
+ GET_MAPPING(sourceChar,targetUniChar,data);
+ *contextCharToUnicode = sourceChar;
+ break;
+
case ISCII_NUKTA:
/* handle soft halant */
if(*contextCharToUnicode == ISCII_HALANT){
@@ -1221,7 +1239,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
if(found){
/* find out if the mapping is valid in this state */
if(validityTable[(uint8_t)targetUniChar] & data->currentMaskToUnicode){
- targetUniChar += data->currentDeltaToUnicode ;
+ /*targetUniChar += data->currentDeltaToUnicode ;*/
*contextCharToUnicode= NO_CHAR_MARKER;
*toUnicodeStatus = missingCharMarker;
break;
@@ -1248,6 +1266,11 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args,
if(targetUniChar != missingCharMarker ){
/* now save the targetUniChar for delayed write */
*toUnicodeStatus = (UChar) targetUniChar;
+ if(data->resetToDefaultToUnicode==TRUE){
+ data->currentDeltaToUnicode = data->defDeltaToUnicode;
+ data->currentMaskToUnicode = data->defMaskToUnicode;
+ data->resetToDefaultToUnicode=FALSE;
+ }
}else{
/* we reach here only if targetUniChar == missingCharMarker
@@ -1321,7 +1344,7 @@ _ISCII_SafeClone(const UConverter *cnv,
}
localClone = (struct cloneISCIIStruct *)stackBuffer;
- uprv_memcpy(&localClone->cnv, cnv, sizeof(UConverter));
+ /* ucnv.c/ucnv_safeClone() copied the main UConverter already */
uprv_memcpy(&localClone->mydata, cnv->extraInfo, sizeof(UConverterDataISCII));
localClone->cnv.extraInfo = &localClone->mydata;
@@ -1343,7 +1366,7 @@ _ISCIIGetUnicodeSet(const UConverter *cnv,
scripts, we add all roundtrippable characters to this set. */
sa->addRange(sa->set, 0, ASCII_END);
for (script = DEVANAGARI; script <= MALAYALAM; script++) {
- mask = (uint8_t)(lookupInitialData[script][1]);
+ mask = (uint8_t)(lookupInitialData[script].maskEnum);
for (idx = 0; idx < DELTA; idx++) {
if (validityTable[idx] & mask) {
sa->add(sa->set, idx + (script * DELTA) + INDIC_BLOCK_BEGIN);
diff --git a/Build/source/libs/icu-xetex/common/ucnvmbcs.c b/Build/source/libs/icu-xetex/common/ucnvmbcs.c
index a220a3bde3c..84bae8a9f25 100644
--- a/Build/source/libs/icu-xetex/common/ucnvmbcs.c
+++ b/Build/source/libs/icu-xetex/common/ucnvmbcs.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -589,7 +589,7 @@ ucnv_MBCSGetUnicodeSet(const UConverter *cnv,
* Definition of LINEAR macros and gb18030Ranges see near the beginning of the file.
*
* In the future, conversion extensions may handle m:n mappings and delta tables,
- * see http://oss.software.ibm.com/cvs/icu/~checkout~/icuhtml/design/conversion/conversion_extensions.html
+ * see http://dev.icu-project.org/cgi-bin/viewcvs.cgi/~checkout~/icuhtml/design/conversion/conversion_extensions.html
*
* If an input character cannot be mapped, then these functions set an error
* code. The framework will then call the callback function.
@@ -3877,7 +3877,7 @@ ucnv_MBCSWriteSub(UConverterFromUnicodeArgs *pArgs,
length=1;
} else {
/* select subChar in all other cases */
- subchar=(char *)cnv->subChar;
+ subchar=(char *)cnv->subChars;
length=cnv->subCharLen;
}
diff --git a/Build/source/libs/icu-xetex/common/ucnvscsu.c b/Build/source/libs/icu-xetex/common/ucnvscsu.c
index 191435fee2e..910a4920225 100644
--- a/Build/source/libs/icu-xetex/common/ucnvscsu.c
+++ b/Build/source/libs/icu-xetex/common/ucnvscsu.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -205,6 +205,10 @@ _SCSUOpen(UConverter *cnv,
} else {
*pErrorCode=U_MEMORY_ALLOCATION_ERROR;
}
+
+ /* Set the substitution character U+fffd as a Unicode string. */
+ cnv->subUChars[0]=0xfffd;
+ cnv->subCharLen=-1;
}
static void
@@ -1433,11 +1437,14 @@ outputBytes:
* first to the overflow buffer what does not fit into the
* regular target.
*/
- /* we know that 1<=targetCapacity<length<=4 */
+ /* we know that 0<=targetCapacity<length<=4 */
+ /* targetCapacity==0 when SCU+supplementary where SCU used up targetCapacity==1 */
length-=targetCapacity;
p=(uint8_t *)cnv->charErrorBuffer;
switch(length) {
/* each branch falls through to the next one */
+ case 4:
+ *p++=(uint8_t)(c>>24);
case 3:
*p++=(uint8_t)(c>>16);
case 2:
@@ -1470,7 +1477,6 @@ outputBytes:
*offsets++=sourceIndex;
}
default:
- /* will never occur */
break;
}
@@ -1868,11 +1874,14 @@ outputBytes:
* first to the overflow buffer what does not fit into the
* regular target.
*/
- /* we know that 1<=targetCapacity<length<=4 */
+ /* we know that 0<=targetCapacity<length<=4 */
+ /* targetCapacity==0 when SCU+supplementary where SCU used up targetCapacity==1 */
length-=targetCapacity;
p=(uint8_t *)cnv->charErrorBuffer;
switch(length) {
/* each branch falls through to the next one */
+ case 4:
+ *p++=(uint8_t)(c>>24);
case 3:
*p++=(uint8_t)(c>>16);
case 2:
@@ -1896,7 +1905,6 @@ outputBytes:
case 1:
*target++=(uint8_t)c;
default:
- /* will never occur */
break;
}
@@ -1922,30 +1930,6 @@ _SCSUGetName(const UConverter *cnv) {
}
}
-static void
-_SCSUWriteSub(UConverterFromUnicodeArgs *pArgs,
- int32_t offsetIndex,
- UErrorCode *pErrorCode) {
- static const char squ_fffd[]={ (char)SQU, (char)0xffu, (char)0xfdu };
-
- /*
- * The substitution character is U+fffd={ ff, fd }.
- * If the SCSU converter is in Unicode mode, then these two bytes just need to
- * be written. Otherwise, this character is quoted.
- */
- if(((SCSUData *)pArgs->converter->extraInfo)->fromUIsSingleByteMode) {
- /* single-byte mode: quote Unicode */
- ucnv_cbFromUWriteBytes(pArgs,
- squ_fffd, 3,
- offsetIndex, pErrorCode);
- } else {
- /* Unicode mode: just write U+fffd */
- ucnv_cbFromUWriteBytes(pArgs,
- squ_fffd+1, 2,
- offsetIndex, pErrorCode);
- }
-}
-
/* structure for SafeClone calculations */
struct cloneSCSUStruct
{
@@ -2000,7 +1984,7 @@ static const UConverterImpl _SCSUImpl={
NULL,
_SCSUGetName,
- _SCSUWriteSub,
+ NULL,
_SCSUSafeClone,
ucnv_getCompleteUnicodeSet
};
@@ -2012,10 +1996,8 @@ static const UConverterStaticData _SCSUStaticData={
UCNV_IBM, UCNV_SCSU,
1, 3, /* one UChar generates at least 1 byte and at most 3 bytes */
/*
- * ### TODO the subchar really must be written by an SCSU function
- * however, currently SCSU's fromUnicode() never causes errors, therefore
- * no callbacks will be called and no subchars written
- * See Jitterbug 2837 - RFE: forbid converting surrogate code points in all charsets
+ * The subchar here is ignored because _SCSUOpen() sets U+fffd as a Unicode
+ * substitution string.
*/
{ 0x0e, 0xff, 0xfd, 0 }, 3,
FALSE, FALSE,
diff --git a/Build/source/libs/icu-xetex/common/ucol_swp.c b/Build/source/libs/icu-xetex/common/ucol_swp.c
index 18e2c2cad08..3b8ac14c30f 100644
--- a/Build/source/libs/icu-xetex/common/ucol_swp.c
+++ b/Build/source/libs/icu-xetex/common/ucol_swp.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -16,17 +16,92 @@
* Swap collation binaries.
*/
-#include "unicode/utypes.h"
-
-#if !UCONFIG_NO_COLLATION
-
#include "unicode/udata.h" /* UDataInfo */
-#include "cmemory.h"
#include "utrie.h"
#include "udataswp.h"
+#include "cmemory.h"
#include "ucol_imp.h"
#include "ucol_swp.h"
+/* 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 && 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
+
/* swap a header-less collation binary, inside a resource bundle or ucadata.icu */
U_CAPI int32_t U_EXPORT2
ucol_swapBinary(const UDataSwapper *ds,
diff --git a/Build/source/libs/icu-xetex/common/udata.c b/Build/source/libs/icu-xetex/common/udata.c
index dd8e5d5831f..5ffd85079a0 100644
--- a/Build/source/libs/icu-xetex/common/udata.c
+++ b/Build/source/libs/icu-xetex/common/udata.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -139,7 +139,6 @@ setCommonICUData(UDataMemory *pData, /* The new common data. Belongs to ca
uprv_free(newCommonData);
}
umtx_unlock(NULL);
- return;
}
static const char *
@@ -218,7 +217,7 @@ static UHashtable *udata_getHashTable() {
return gCommonDataCache;
}
- tHT = uhash_open(uhash_hashChars, uhash_compareChars, &err);
+ tHT = uhash_open(uhash_hashChars, uhash_compareChars, NULL, &err);
uhash_setValueDeleter(tHT, DataCacheElement_deleter);
umtx_lock(NULL);
@@ -284,6 +283,7 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr
}
newElement->item = UDataMemory_createNewInstance(pErr);
if (U_FAILURE(*pErr)) {
+ uprv_free(newElement);
return NULL;
}
UDatamemory_assign(newElement->item, item);
@@ -293,6 +293,8 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr
newElement->name = uprv_malloc(nameLen+1);
if (newElement->name == NULL) {
*pErr = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(newElement->item);
+ uprv_free(newElement);
return NULL;
}
uprv_strcpy(newElement->name, baseName);
@@ -493,11 +495,6 @@ static void udata_pathiter_init(UDataPathIterator *iter, const char *path, const
iter->basename = findBasename(item);
iter->basenameLen = (int32_t)uprv_strlen(iter->basename);
- if(iter->basename == NULL) {
- iter->nextPath = NULL;
- return;
- }
-
/** Item path **/
iter->itemPath = iter->itemPathBuf;
if(iter->basename == item) {
@@ -576,7 +573,7 @@ static const char *udata_pathiter_next(UDataPathIterator *iter)
do
{
if( iter->nextPath == NULL ) {
- return NULL;
+ break;
}
path = iter->nextPath;
@@ -698,6 +695,10 @@ static void udata_pathiter_dt(UDataPathIterator *iter) {
uprv_free(iter->pathBuffer);
iter->pathBuffer = NULL;
}
+ if (iter->packageStub != iter->packageStubBuf) {
+ uprv_free(iter->packageStub);
+ iter->packageStub = NULL;
+ }
}
/* ==================================================================================*/
@@ -1012,118 +1013,72 @@ checkDataItem
/**
* @return 0 if not loaded, 1 if loaded or err
*/
-static UDataMemory *doLoadFromIndividualFiles(const char *pkgName, const char *oldIndFileName,
- const char *dataPath, const char *tocEntryPathSuffix, const char *inBasename,
+static UDataMemory *doLoadFromIndividualFiles(const char *pkgName,
+ const char *dataPath, const char *tocEntryPathSuffix,
/* following arguments are the same as doOpenChoice itself */
const char *path, const char *type, const char *name,
UDataMemoryIsAcceptable *isAcceptable, void *context,
UErrorCode *subErrorCode,
UErrorCode *pErrorCode)
{
- UDataMemory *retVal = NULL;
- const char *pathBuffer;
- UDataMemory dataMemory;
- UDataMemory *pEntryData;
-
- UDataPathIterator iter;
- /* #1a look in ind. files: package\nam.typ ========================= */
- /* init path iterator for individual files */
- udata_pathiter_init(&iter, dataPath, pkgName, path, tocEntryPathSuffix, FALSE);
-
- while((pathBuffer = udata_pathiter_next(&iter)))
- {
-#ifdef UDATA_DEBUG
- fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
-#endif
- if( uprv_mapFile(&dataMemory, pathBuffer) ||
- (inBasename!=pathBuffer && uprv_mapFile(&dataMemory, inBasename)))
- {
- pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
- if (pEntryData != NULL) {
- /* Data is good.
- * Hand off ownership of the backing memory to the user's UDataMemory.
- * and return it. */
- pEntryData->mapAddr = dataMemory.mapAddr;
- pEntryData->map = dataMemory.map;
-
-#ifdef UDATA_DEBUG
- fprintf(stderr, "** Mapped file: %s\n", pathBuffer);
-#endif
- retVal = pEntryData;
- goto commonReturn;
- }
+ UDataMemory *retVal = NULL;
+ const char *pathBuffer;
+ UDataMemory dataMemory;
+ UDataMemory *pEntryData;
- /* the data is not acceptable, or some error occured. Either way, unmap the memory */
- udata_close(&dataMemory);
+ UDataPathIterator iter;
+ /* look in ind. files: package\nam.typ ========================= */
+ /* init path iterator for individual files */
+ udata_pathiter_init(&iter, dataPath, pkgName, path, tocEntryPathSuffix, FALSE);
- /* If we had a nasty error, bail out completely. */
- if (U_FAILURE(*pErrorCode)) {
- retVal = NULL;
- goto commonReturn;
- }
-
- /* Otherwise remember that we found data but didn't like it for some reason */
- *subErrorCode=U_INVALID_FORMAT_ERROR;
- }
+ while((pathBuffer = udata_pathiter_next(&iter)))
+ {
#ifdef UDATA_DEBUG
- fprintf(stderr, "%s\n", UDataMemory_isLoaded(&dataMemory)?"LOADED":"not loaded");
+ fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
#endif
- }
- udata_pathiter_dt(&iter);
-
- /* #1b look in ind. files - with old naming (package_nam.typ not package\nam.typ) ==================== */
- /* init path iterator for individual files */
- udata_pathiter_init(&iter, dataPath, "", path, oldIndFileName, FALSE);
-
- while((pathBuffer = udata_pathiter_next(&iter)))
+ if(uprv_mapFile(&dataMemory, pathBuffer))
{
-#ifdef UDATA_DEBUG
- fprintf(stderr, "UDATA: trying individual file %s\n", pathBuffer);
-#endif
- if( uprv_mapFile(&dataMemory, pathBuffer) ||
- (inBasename!=pathBuffer && uprv_mapFile(&dataMemory, inBasename)))
- {
- pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
- if (pEntryData != NULL) {
- /* Data is good.
- * Hand off ownership of the backing memory to the user's UDataMemory.
- * and return it. */
- pEntryData->mapAddr = dataMemory.mapAddr;
- pEntryData->map = dataMemory.map;
+ pEntryData = checkDataItem(dataMemory.pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
+ if (pEntryData != NULL) {
+ /* Data is good.
+ * Hand off ownership of the backing memory to the user's UDataMemory.
+ * and return it. */
+ pEntryData->mapAddr = dataMemory.mapAddr;
+ pEntryData->map = dataMemory.map;
#ifdef UDATA_DEBUG
- fprintf(stderr, "** Mapped file: %s\n", pathBuffer);
+ fprintf(stderr, "** Mapped file: %s\n", pathBuffer);
#endif
- retVal = pEntryData;
- goto commonReturn;
- }
-
- /* the data is not acceptable, or some error occured. Either way, unmap the memory */
- udata_close(&dataMemory);
+ retVal = pEntryData;
+ goto commonReturn;
+ }
- /* If we had a nasty error, bail out completely. */
- if (U_FAILURE(*pErrorCode)) {
- retVal = NULL;
- goto commonReturn;
- }
+ /* the data is not acceptable, or some error occured. Either way, unmap the memory */
+ udata_close(&dataMemory);
- /* Otherwise remember that we found data but didn't like it for some reason */
- *subErrorCode=U_INVALID_FORMAT_ERROR;
+ /* If we had a nasty error, bail out completely. */
+ if (U_FAILURE(*pErrorCode)) {
+ retVal = NULL;
+ goto commonReturn;
}
+
+ /* Otherwise remember that we found data but didn't like it for some reason */
+ *subErrorCode=U_INVALID_FORMAT_ERROR;
+ }
#ifdef UDATA_DEBUG
- fprintf(stderr, "%s\n", UDataMemory_isLoaded(&dataMemory)?"LOADED":"not loaded");
+ fprintf(stderr, "%s\n", UDataMemory_isLoaded(&dataMemory)?"LOADED":"not loaded");
#endif
- }
+ }
commonReturn:
- udata_pathiter_dt(&iter);
- return retVal;
+ udata_pathiter_dt(&iter);
+ return retVal;
}
/**
* @return 0 if not loaded, 1 if loaded or err
*/
-static UDataMemory *doLoadFromCommonData(UBool isICUData, const char *pkgName, const char *oldIndFileName,
- const char *dataPath, const char *tocEntryPathSuffix, const char *tocEntryName, const char *inBasename,
+static UDataMemory *doLoadFromCommonData(UBool isICUData, const char *pkgName,
+ const char *dataPath, const char *tocEntryPathSuffix, const char *tocEntryName,
/* following arguments are the same as doOpenChoice itself */
const char *path, const char *type, const char *name,
UDataMemoryIsAcceptable *isAcceptable, void *context,
@@ -1154,13 +1109,6 @@ static UDataMemory *doLoadFromCommonData(UBool isICUData, const char *pkgName, c
#ifdef UDATA_DEBUG
fprintf(stderr, "%s: pHeader=%p - %s\n", tocEntryName, pHeader, u_errorName(*subErrorCode));
#endif
- if((pHeader == NULL) && !U_FAILURE(*subErrorCode)) {
- pHeader=pCommonData->vFuncs->Lookup(pCommonData, oldIndFileName, /* oldIndFileName is preceded by a slash */
- &length, subErrorCode);
-#ifdef UDATA_DEBUG
- fprintf(stderr, "[OLD name] %s: pHeader=%p - %s\n", oldIndFileName, pHeader, u_errorName(*subErrorCode));
-#endif
- }
if(pHeader!=NULL) {
pEntryData = checkDataItem(pHeader, isAcceptable, context, type, name, subErrorCode, pErrorCode);
@@ -1231,9 +1179,6 @@ doOpenChoice(const char *path, const char *type, const char *name,
TinyString tocEntryName; /* entry name in tree format. ex: 'icudt28b/coll/ar.res' */
TinyString tocEntryPath; /* entry name in path format. ex: 'icudt28b\\coll\\ar.res' */
- TinyString oldIndFileName; /* ex: icudt28b_ar.res */
- TinyString oldStylePath;
- TinyString oldStylePathBasename;
TinyString pkgName;
TinyString treeName;
@@ -1243,10 +1188,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
const char *dataPath;
- const char *tocEntrySuffix;
int32_t tocEntrySuffixIndex;
const char *tocEntryPathSuffix;
- const char *inBasename;
UErrorCode subErrorCode=U_ZERO_ERROR;
const char *treeChar;
@@ -1281,11 +1224,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
}
#endif
- TinyString_init(&oldIndFileName);
TinyString_init(&tocEntryName);
TinyString_init(&tocEntryPath);
- TinyString_init(&oldStylePath);
- TinyString_init(&oldStylePathBasename);
TinyString_init(&pkgName);
TinyString_init(&treeName);
@@ -1343,7 +1283,6 @@ doOpenChoice(const char *path, const char *type, const char *name,
/* prepend the package */
TinyString_append(&tocEntryName, pkgName.s);
TinyString_append(&tocEntryPath, pkgName.s);
- TinyString_append(&oldIndFileName, pkgName.s);
tocEntrySuffixIndex = tocEntryName.length;
if(treeName.s[0]) {
@@ -1354,10 +1293,8 @@ doOpenChoice(const char *path, const char *type, const char *name,
TinyString_append(&tocEntryPath, treeName.s);
}
- TinyString_append(&oldIndFileName, "_");
TinyString_append(&tocEntryName, U_TREE_ENTRY_SEP_STRING);
TinyString_append(&tocEntryPath, U_FILE_SEP_STRING);
- TinyString_append(&oldIndFileName, name);
TinyString_append(&tocEntryName, name);
TinyString_append(&tocEntryPath, name);
if(type!=NULL && *type!=0) {
@@ -1365,28 +1302,16 @@ doOpenChoice(const char *path, const char *type, const char *name,
TinyString_append(&tocEntryName, type);
TinyString_append(&tocEntryPath, ".");
TinyString_append(&tocEntryPath, type);
- TinyString_append(&oldIndFileName, ".");
- TinyString_append(&oldIndFileName, type);
}
- tocEntrySuffix = tocEntryName.s+tocEntrySuffixIndex; /* suffix starts here */
tocEntryPathSuffix = tocEntryPath.s+tocEntrySuffixIndex; /* suffix starts here */
#ifdef UDATA_DEBUG
fprintf(stderr, " tocEntryName = %s\n", tocEntryName.s);
fprintf(stderr, " tocEntryPath = %s\n", tocEntryName.s);
- fprintf(stderr, " oldIndFileName = %s\n", oldIndFileName.s);
#endif
- /* try to get an individual data file */
if(path == NULL) {
path = COMMON_DATA_NAME; /* "icudt26e" */
- inBasename = COMMON_DATA_NAME;
- } else {
- if(isICUData) {
- inBasename=COMMON_DATA_NAME;
- } else {
- inBasename=findBasename(path);
- }
}
/************************ Begin loop looking for ind. files ***************/
@@ -1394,33 +1319,6 @@ doOpenChoice(const char *path, const char *type, const char *name,
fprintf(stderr, "IND: inBasename = %s, pkg=%s\n", inBasename, packageNameFromPath(path));
#endif
- /* Deal with a null basename */
- if( (*inBasename==0) && (uprv_strlen(path) > 3) ) {
- /* the purpose of this exercise is to turn /tmp/foo/bar/ into
- path= /tmp/foo/bar/bar and basename= bar
- (i.e. /tmp/foo/bar/bar.dat or /tmp/foo/bar/bar_en_US.res )
- */
-
- char *rightSlash;
- TinyString_append(&oldStylePath, path);
- /* chop off trailing slash */
- oldStylePath.length--;
- oldStylePath.s[oldStylePath.length] = 0;
-
- rightSlash = (char*)uprv_strrchr(oldStylePath.s, U_FILE_SEP_CHAR);
- if(rightSlash != NULL) {
- rightSlash++;
- TinyString_append(&oldStylePathBasename, rightSlash);
- inBasename = oldStylePathBasename.s;
- TinyString_append(&oldStylePath, U_FILE_SEP_STRING);
- TinyString_append(&oldStylePath, inBasename); /* one more time, for the base name */
- path = oldStylePath.s;
- } else {
- *pErrorCode = U_FILE_ACCESS_ERROR; /* hopelessly bad case */
- retVal = NULL;
- goto commonReturn;
- }
- }
/* End of dealing with a null basename */
dataPath = u_getDataDirectory();
@@ -1431,8 +1329,7 @@ doOpenChoice(const char *path, const char *type, const char *name,
#endif
/* #2 */
retVal = doLoadFromCommonData(isICUData,
- pkgName.s, oldIndFileName.s, dataPath, tocEntryPathSuffix,
- tocEntryName.s, inBasename,
+ pkgName.s, dataPath, tocEntryPathSuffix, tocEntryName.s,
path, type, name, isAcceptable, context, &subErrorCode, pErrorCode);
if((retVal != NULL) || U_FAILURE(*pErrorCode)) {
goto commonReturn;
@@ -1447,7 +1344,7 @@ doOpenChoice(const char *path, const char *type, const char *name,
#endif
/* Check to make sure that there is a dataPath to iterate over */
if ((dataPath && *dataPath) || !isICUData) {
- retVal = doLoadFromIndividualFiles(pkgName.s, oldIndFileName.s, dataPath, tocEntryPathSuffix, inBasename,
+ retVal = doLoadFromIndividualFiles(pkgName.s, dataPath, tocEntryPathSuffix,
path, type, name, isAcceptable, context, &subErrorCode, pErrorCode);
if((retVal != NULL) || U_FAILURE(*pErrorCode)) {
goto commonReturn;
@@ -1462,8 +1359,7 @@ doOpenChoice(const char *path, const char *type, const char *name,
fprintf(stderr, "Trying packages (UDATA_ONLY_PACKAGES || UDATA_FILES_FIRST)\n");
#endif
retVal = doLoadFromCommonData(isICUData,
- pkgName.s, oldIndFileName.s, dataPath, tocEntryPathSuffix,
- tocEntryName.s, inBasename,
+ pkgName.s, dataPath, tocEntryPathSuffix, tocEntryName.s,
path, type, name, isAcceptable, context, &subErrorCode, pErrorCode);
if((retVal != NULL) || U_FAILURE(*pErrorCode)) {
goto commonReturn;
@@ -1478,8 +1374,7 @@ doOpenChoice(const char *path, const char *type, const char *name,
fprintf(stderr, "Trying common data (UDATA_NO_FILES)\n");
#endif
retVal = doLoadFromCommonData(isICUData,
- pkgName.s, oldIndFileName.s, "", tocEntryPathSuffix,
- tocEntryName.s, inBasename,
+ pkgName.s, "", tocEntryPathSuffix, tocEntryName.s,
path, type, name, isAcceptable, context, &subErrorCode, pErrorCode);
if((retVal != NULL) || U_FAILURE(*pErrorCode)) {
goto commonReturn;
@@ -1500,9 +1395,6 @@ doOpenChoice(const char *path, const char *type, const char *name,
commonReturn:
TinyString_dt(&tocEntryName);
TinyString_dt(&tocEntryPath);
- TinyString_dt(&oldIndFileName);
- TinyString_dt(&oldStylePath);
- TinyString_dt(&oldStylePathBasename);
TinyString_dt(&pkgName);
TinyString_dt(&treeName);
#if (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR)
diff --git a/Build/source/libs/icu-xetex/common/udataswp.h b/Build/source/libs/icu-xetex/common/udataswp.h
index f8389d13717..52b99aaa3cf 100644
--- a/Build/source/libs/icu-xetex/common/udataswp.h
+++ b/Build/source/libs/icu-xetex/common/udataswp.h
@@ -266,7 +266,7 @@ udata_printError(const UDataSwapper *ds,
* Swap invariant char * strings ASCII->EBCDIC.
* @internal
*/
-U_CFUNC int32_t
+U_CAPI int32_t U_EXPORT2
uprv_ebcdicFromAscii(const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode);
diff --git a/Build/source/libs/icu-xetex/common/uenumimp.h b/Build/source/libs/icu-xetex/common/uenumimp.h
index 2c5cc3acaf3..664bc686644 100644
--- a/Build/source/libs/icu-xetex/common/uenumimp.h
+++ b/Build/source/libs/icu-xetex/common/uenumimp.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -58,13 +58,14 @@ UEnumCount(UEnumeration *en, UErrorCode *status);
/**
* Function type declaration for uenum_unext().
*
- * This function should return the next element
- * as a UChar *
+ * This function returns the next element as a UChar *,
+ * or NULL after all elements haven been enumerated.
*
* @param en enumeration
* @param resultLength pointer to result length
* @param status pointer to UErrorCode variable
- * @return next element as UChar *
+ * @return next element as UChar *,
+ * or NULL after all elements haven been enumerated
*/
typedef const UChar* U_CALLCONV
UEnumUNext(UEnumeration* en,
@@ -74,13 +75,14 @@ UEnumUNext(UEnumeration* en,
/**
* Function type declaration for uenum_next().
*
- * This function should return the next element
- * as a char *
+ * This function returns the next element as a char *,
+ * or NULL after all elements haven been enumerated.
*
* @param en enumeration
* @param resultLength pointer to result length
* @param status pointer to UErrorCode variable
- * @return next element as char *
+ * @return next element as char *,
+ * or NULL after all elements haven been enumerated
*/
typedef const char* U_CALLCONV
UEnumNext(UEnumeration* en,
diff --git a/Build/source/libs/icu-xetex/common/uhash.c b/Build/source/libs/icu-xetex/common/uhash.c
index f42593f0006..7907205dbc7 100644
--- a/Build/source/libs/icu-xetex/common/uhash.c
+++ b/Build/source/libs/icu-xetex/common/uhash.c
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* Date Name Description
@@ -83,6 +83,7 @@ static const int32_t PRIMES[] = {
};
#define PRIMES_LENGTH (sizeof(PRIMES) / sizeof(PRIMES[0]))
+#define DEFAULT_PRIME_INDEX 3
/* These ratios are tuned to the PRIMES array such that a resize
* places the table back into the zone of non-resizing. That is,
@@ -132,56 +133,414 @@ static const float RESIZE_POLICY_RATIO_TABLE[6] = {
#define HINT_VALUE_POINTER (2)
/********************************************************************
- * Debugging
+ * PRIVATE Implementation
********************************************************************/
+static UHashTok
+_uhash_setElement(UHashtable *hash, UHashElement* e,
+ int32_t hashcode,
+ UHashTok key, UHashTok value, int8_t hint) {
-/********************************************************************
- * PRIVATE Prototypes
- ********************************************************************/
+ UHashTok oldValue = e->value;
+ if (hash->keyDeleter != NULL && e->key.pointer != NULL &&
+ e->key.pointer != key.pointer) { /* Avoid double deletion */
+ (*hash->keyDeleter)(e->key.pointer);
+ }
+ if (hash->valueDeleter != NULL) {
+ if (oldValue.pointer != NULL &&
+ oldValue.pointer != value.pointer) { /* Avoid double deletion */
+ (*hash->valueDeleter)(oldValue.pointer);
+ }
+ oldValue.pointer = NULL;
+ }
+ /* Compilers should copy the UHashTok union correctly, but even if
+ * they do, memory heap tools (e.g. BoundsChecker) can get
+ * confused when a pointer is cloaked in a union and then copied.
+ * TO ALLEVIATE THIS, we use hints (based on what API the user is
+ * calling) to copy pointers when we know the user thinks
+ * something is a pointer. */
+ if (hint & HINT_KEY_POINTER) {
+ e->key.pointer = key.pointer;
+ } else {
+ e->key = key;
+ }
+ if (hint & HINT_VALUE_POINTER) {
+ e->value.pointer = value.pointer;
+ } else {
+ e->value = value;
+ }
+ e->hashcode = hashcode;
+ return oldValue;
+}
+
+/**
+ * Assumes that the given element is not empty or deleted.
+ */
+static UHashTok
+_uhash_internalRemoveElement(UHashtable *hash, UHashElement* e) {
+ UHashTok empty;
+ U_ASSERT(!IS_EMPTY_OR_DELETED(e->hashcode));
+ --hash->count;
+ empty.pointer = NULL; empty.integer = 0;
+ return _uhash_setElement(hash, e, HASH_DELETED, empty, empty, 0);
+}
+
+static void
+_uhash_internalSetResizePolicy(UHashtable *hash, enum UHashResizePolicy policy) {
+ U_ASSERT(hash != NULL);
+ U_ASSERT(((int32_t)policy) >= 0);
+ U_ASSERT(((int32_t)policy) < 3);
+ hash->lowWaterRatio = RESIZE_POLICY_RATIO_TABLE[policy * 2];
+ hash->highWaterRatio = RESIZE_POLICY_RATIO_TABLE[policy * 2 + 1];
+}
+
+/**
+ * Allocate internal data array of a size determined by the given
+ * prime index. If the index is out of range it is pinned into range.
+ * If the allocation fails the status is set to
+ * U_MEMORY_ALLOCATION_ERROR and all array storage is freed. In
+ * either case the previous array pointer is overwritten.
+ *
+ * Caller must ensure primeIndex is in range 0..PRIME_LENGTH-1.
+ */
+static void
+_uhash_allocate(UHashtable *hash,
+ int32_t primeIndex,
+ UErrorCode *status) {
+
+ UHashElement *p, *limit;
+ UHashTok emptytok;
+
+ if (U_FAILURE(*status)) return;
+
+ U_ASSERT(primeIndex >= 0 && primeIndex < PRIMES_LENGTH);
+
+ hash->primeIndex = primeIndex;
+ hash->length = PRIMES[primeIndex];
+
+ p = hash->elements = (UHashElement*)
+ uprv_malloc(sizeof(UHashElement) * hash->length);
+
+ if (hash->elements == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ emptytok.pointer = NULL; /* Only one of these two is needed */
+ emptytok.integer = 0; /* but we don't know which one. */
+
+ limit = p + hash->length;
+ while (p < limit) {
+ p->key = emptytok;
+ p->value = emptytok;
+ p->hashcode = HASH_EMPTY;
+ ++p;
+ }
+
+ hash->count = 0;
+ hash->lowWaterMark = (int32_t)(hash->length * hash->lowWaterRatio);
+ hash->highWaterMark = (int32_t)(hash->length * hash->highWaterRatio);
+}
+
+static UHashtable*
+_uhash_init(UHashtable *result,
+ UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
+ int32_t primeIndex,
+ UErrorCode *status)
+{
+ if (U_FAILURE(*status)) return NULL;
+ U_ASSERT(keyHash != NULL);
+ U_ASSERT(keyComp != NULL);
+
+ result->keyHasher = keyHash;
+ result->keyComparator = keyComp;
+ result->valueComparator = valueComp;
+ result->keyDeleter = NULL;
+ result->valueDeleter = NULL;
+ result->allocated = FALSE;
+ _uhash_internalSetResizePolicy(result, U_GROW);
+
+ _uhash_allocate(result, primeIndex, status);
+
+ if (U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ return result;
+}
+
+static UHashtable*
+_uhash_create(UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
+ int32_t primeIndex,
+ UErrorCode *status) {
+ UHashtable *result;
+
+ if (U_FAILURE(*status)) return NULL;
+
+ result = (UHashtable*) uprv_malloc(sizeof(UHashtable));
+ if (result == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+
+ _uhash_init(result, keyHash, keyComp, valueComp, primeIndex, status);
+ result->allocated = TRUE;
+
+ if (U_FAILURE(*status)) {
+ uprv_free(result);
+ return NULL;
+ }
+
+ return result;
+}
+
+/**
+ * Look for a key in the table, or if no such key exists, the first
+ * empty slot matching the given hashcode. Keys are compared using
+ * the keyComparator function.
+ *
+ * First find the start position, which is the hashcode modulo
+ * the length. Test it to see if it is:
+ *
+ * a. identical: First check the hash values for a quick check,
+ * then compare keys for equality using keyComparator.
+ * b. deleted
+ * c. empty
+ *
+ * Stop if it is identical or empty, otherwise continue by adding a
+ * "jump" value (moduloing by the length again to keep it within
+ * range) and retesting. For efficiency, there need enough empty
+ * values so that the searchs stop within a reasonable amount of time.
+ * This can be changed by changing the high/low water marks.
+ *
+ * In theory, this function can return NULL, if it is full (no empty
+ * or deleted slots) and if no matching key is found. In practice, we
+ * prevent this elsewhere (in uhash_put) by making sure the last slot
+ * in the table is never filled.
+ *
+ * The size of the table should be prime for this algorithm to work;
+ * otherwise we are not guaranteed that the jump value (the secondary
+ * hash) is relatively prime to the table length.
+ */
+static UHashElement*
+_uhash_find(const UHashtable *hash, UHashTok key,
+ int32_t hashcode) {
+
+ int32_t firstDeleted = -1; /* assume invalid index */
+ int32_t theIndex, startIndex;
+ int32_t jump = 0; /* lazy evaluate */
+ int32_t tableHash;
+ UHashElement *elements = hash->elements;
+
+ hashcode &= 0x7FFFFFFF; /* must be positive */
+ startIndex = theIndex = (hashcode ^ 0x4000000) % hash->length;
-static UHashtable* _uhash_create(UHashFunction *keyHash, UKeyComparator *keyComp,
- int32_t primeIndex, UErrorCode *status);
+ do {
+ tableHash = elements[theIndex].hashcode;
+ if (tableHash == hashcode) { /* quick check */
+ if ((*hash->keyComparator)(key, elements[theIndex].key)) {
+ return &(elements[theIndex]);
+ }
+ } else if (!IS_EMPTY_OR_DELETED(tableHash)) {
+ /* We have hit a slot which contains a key-value pair,
+ * but for which the hash code does not match. Keep
+ * looking.
+ */
+ } else if (tableHash == HASH_EMPTY) { /* empty, end o' the line */
+ break;
+ } else if (firstDeleted < 0) { /* remember first deleted */
+ firstDeleted = theIndex;
+ }
+ if (jump == 0) { /* lazy compute jump */
+ /* The jump value must be relatively prime to the table
+ * length. As long as the length is prime, then any value
+ * 1..length-1 will be relatively prime to it.
+ */
+ jump = (hashcode % (hash->length - 1)) + 1;
+ }
+ theIndex = (theIndex + jump) % hash->length;
+ } while (theIndex != startIndex);
-static void _uhash_allocate(UHashtable *hash, int32_t primeIndex,
- UErrorCode *status);
+ if (firstDeleted >= 0) {
+ theIndex = firstDeleted; /* reset if had deleted slot */
+ } else if (tableHash != HASH_EMPTY) {
+ /* We get to this point if the hashtable is full (no empty or
+ * deleted slots), and we've failed to find a match. THIS
+ * WILL NEVER HAPPEN as long as uhash_put() makes sure that
+ * count is always < length.
+ */
+ U_ASSERT(FALSE);
+ return NULL; /* Never happens if uhash_put() behaves */
+ }
+ return &(elements[theIndex]);
+}
-static void _uhash_rehash(UHashtable *hash);
+/**
+ * Attempt to grow or shrink the data arrays in order to make the
+ * count fit between the high and low water marks. hash_put() and
+ * hash_remove() call this method when the count exceeds the high or
+ * low water marks. This method may do nothing, if memory allocation
+ * fails, or if the count is already in range, or if the length is
+ * already at the low or high limit. In any case, upon return the
+ * arrays will be valid.
+ */
+static void
+_uhash_rehash(UHashtable *hash) {
-static UHashElement* _uhash_find(const UHashtable *hash, UHashTok key,
- int32_t hashcode);
+ UHashElement *old = hash->elements;
+ int32_t oldLength = hash->length;
+ int32_t newPrimeIndex = hash->primeIndex;
+ int32_t i;
+ UErrorCode status = U_ZERO_ERROR;
-static UHashTok _uhash_put(UHashtable *hash,
- UHashTok key,
- UHashTok value,
- int8_t hint,
- UErrorCode *status);
+ if (hash->count > hash->highWaterMark) {
+ if (++newPrimeIndex >= PRIMES_LENGTH) {
+ return;
+ }
+ } else if (hash->count < hash->lowWaterMark) {
+ if (--newPrimeIndex < 0) {
+ return;
+ }
+ } else {
+ return;
+ }
-static UHashTok _uhash_remove(UHashtable *hash,
- UHashTok key);
+ _uhash_allocate(hash, newPrimeIndex, &status);
-static UHashTok _uhash_internalRemoveElement(UHashtable *hash, UHashElement* e);
+ if (U_FAILURE(status)) {
+ hash->elements = old;
+ hash->length = oldLength;
+ return;
+ }
-static UHashTok _uhash_setElement(UHashtable* hash, UHashElement* e,
- int32_t hashcode,
- UHashTok key, UHashTok value,
- int8_t hint);
+ for (i = oldLength - 1; i >= 0; --i) {
+ if (!IS_EMPTY_OR_DELETED(old[i].hashcode)) {
+ UHashElement *e = _uhash_find(hash, old[i].key, old[i].hashcode);
+ U_ASSERT(e != NULL);
+ U_ASSERT(e->hashcode == HASH_EMPTY);
+ e->key = old[i].key;
+ e->value = old[i].value;
+ e->hashcode = old[i].hashcode;
+ ++hash->count;
+ }
+ }
+
+ uprv_free(old);
+}
+
+static UHashTok
+_uhash_remove(UHashtable *hash,
+ UHashTok key) {
+ /* First find the position of the key in the table. If the object
+ * has not been removed already, remove it. If the user wanted
+ * keys deleted, then delete it also. We have to put a special
+ * hashcode in that position that means that something has been
+ * deleted, since when we do a find, we have to continue PAST any
+ * deleted values.
+ */
+ UHashTok result;
+ UHashElement* e = _uhash_find(hash, key, hash->keyHasher(key));
+ U_ASSERT(e != NULL);
+ result.pointer = NULL; result.integer = 0;
+ if (!IS_EMPTY_OR_DELETED(e->hashcode)) {
+ result = _uhash_internalRemoveElement(hash, e);
+ if (hash->count < hash->lowWaterMark) {
+ _uhash_rehash(hash);
+ }
+ }
+ return result;
+}
+
+static UHashTok
+_uhash_put(UHashtable *hash,
+ UHashTok key,
+ UHashTok value,
+ int8_t hint,
+ UErrorCode *status) {
+
+ /* Put finds the position in the table for the new value. If the
+ * key is already in the table, it is deleted, if there is a
+ * non-NULL keyDeleter. Then the key, the hash and the value are
+ * all put at the position in their respective arrays.
+ */
+ int32_t hashcode;
+ UHashElement* e;
+ UHashTok emptytok;
+
+ if (U_FAILURE(*status)) {
+ goto err;
+ }
+ U_ASSERT(hash != NULL);
+ /* Cannot always check pointer here or iSeries sees NULL every time. */
+ if ((hint & HINT_VALUE_POINTER) && value.pointer == NULL) {
+ /* Disallow storage of NULL values, since NULL is returned by
+ * get() to indicate an absent key. Storing NULL == removing.
+ */
+ return _uhash_remove(hash, key);
+ }
+ if (hash->count > hash->highWaterMark) {
+ _uhash_rehash(hash);
+ }
+
+ hashcode = (*hash->keyHasher)(key);
+ e = _uhash_find(hash, key, hashcode);
+ U_ASSERT(e != NULL);
+
+ if (IS_EMPTY_OR_DELETED(e->hashcode)) {
+ /* Important: We must never actually fill the table up. If we
+ * do so, then _uhash_find() will return NULL, and we'll have
+ * to check for NULL after every call to _uhash_find(). To
+ * avoid this we make sure there is always at least one empty
+ * or deleted slot in the table. This only is a problem if we
+ * are out of memory and rehash isn't working.
+ */
+ ++hash->count;
+ if (hash->count == hash->length) {
+ /* Don't allow count to reach length */
+ --hash->count;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ goto err;
+ }
+ }
+
+ /* We must in all cases handle storage properly. If there was an
+ * old key, then it must be deleted (if the deleter != NULL).
+ * Make hashcodes stored in table positive.
+ */
+ return _uhash_setElement(hash, e, hashcode & 0x7FFFFFFF, key, value, hint);
+
+ err:
+ /* If the deleters are non-NULL, this method adopts its key and/or
+ * value arguments, and we must be sure to delete the key and/or
+ * value in all cases, even upon failure.
+ */
+ HASH_DELETE_KEY_VALUE(hash, key.pointer, value.pointer);
+ emptytok.pointer = NULL; emptytok.integer = 0;
+ return emptytok;
+}
-static void _uhash_internalSetResizePolicy(UHashtable *hash, enum UHashResizePolicy policy);
/********************************************************************
* PUBLIC API
********************************************************************/
U_CAPI UHashtable* U_EXPORT2
-uhash_open(UHashFunction *keyHash, UKeyComparator *keyComp,
+uhash_open(UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
UErrorCode *status) {
- return _uhash_create(keyHash, keyComp, 3, status);
+ return _uhash_create(keyHash, keyComp, valueComp, DEFAULT_PRIME_INDEX, status);
}
U_CAPI UHashtable* U_EXPORT2
-uhash_openSize(UHashFunction *keyHash, UKeyComparator *keyComp,
+uhash_openSize(UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
int32_t size,
UErrorCode *status) {
@@ -191,7 +550,17 @@ uhash_openSize(UHashFunction *keyHash, UKeyComparator *keyComp,
++i;
}
- return _uhash_create(keyHash, keyComp, i, status);
+ return _uhash_create(keyHash, keyComp, valueComp, i, status);
+}
+
+U_CAPI UHashtable* U_EXPORT2
+uhash_init(UHashtable *fillinResult,
+ UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
+ UErrorCode *status) {
+
+ return _uhash_init(fillinResult, keyHash, keyComp, valueComp, DEFAULT_PRIME_INDEX, status);
}
U_CAPI void U_EXPORT2
@@ -208,7 +577,9 @@ uhash_close(UHashtable *hash) {
uprv_free(hash->elements);
hash->elements = NULL;
}
- uprv_free(hash);
+ if (hash->allocated) {
+ uprv_free(hash);
+ }
}
U_CAPI UHashFunction *U_EXPORT2
@@ -224,6 +595,12 @@ uhash_setKeyComparator(UHashtable *hash, UKeyComparator *fn) {
hash->keyComparator = fn;
return result;
}
+U_CAPI UValueComparator *U_EXPORT2
+uhash_setValueComparator(UHashtable *hash, UValueComparator *fn){
+ UValueComparator *result = hash->valueComparator;
+ hash->valueComparator = fn;
+ return result;
+}
U_CAPI UObjectDeleter *U_EXPORT2
uhash_setKeyDeleter(UHashtable *hash, UObjectDeleter *fn) {
@@ -491,6 +868,48 @@ uhash_hashIChars(const UHashTok key) {
STRING_HASH(uint8_t, key.pointer, uprv_strlen((char*)p), uprv_tolower(*p));
}
+U_CAPI UBool U_EXPORT2
+uhash_equals(const UHashtable* hash1, const UHashtable* hash2){
+
+ int32_t count1, count2, pos, i;
+
+ if(hash1==hash2){
+ return TRUE;
+ }
+
+ if(hash1==NULL || hash2==NULL){
+ return FALSE;
+ }
+ /* make sure that we are comparing 2 hashes of the same type */
+ if( hash1->keyComparator != hash2->keyComparator ||
+ hash2->valueComparator != hash2->valueComparator){
+ return FALSE;
+ }
+
+ count1 = uhash_count(hash1);
+ count2 = uhash_count(hash2);
+ if(count1!=count2){
+ return FALSE;
+ }
+
+ pos=-1;
+ for(i=0; i<count1; i++){
+ const UHashElement* elem1 = uhash_nextElement(hash1, &pos);
+ const UHashTok key1 = elem1->key;
+ const UHashTok val1 = elem1->value;
+ /* here the keys are not compared, instead the key form hash1 is used to fetch
+ * value from hash2. If the hashes are equal then then both hashes should
+ * contain equal values for the same key!
+ */
+ const UHashElement* elem2 = _uhash_find(hash2, key1, hash2->keyHasher(key1));
+ const UHashTok val2 = elem2->value;
+ if(hash1->valueComparator(val1, val2)==FALSE){
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
/********************************************************************
* PUBLIC Comparator Functions
********************************************************************/
@@ -569,368 +988,3 @@ uhash_freeBlock(void *obj) {
uprv_free(obj);
}
-/********************************************************************
- * PRIVATE Implementation
- ********************************************************************/
-
-static UHashtable*
-_uhash_create(UHashFunction *keyHash, UKeyComparator *keyComp,
- int32_t primeIndex,
- UErrorCode *status) {
- UHashtable *result;
-
- if (U_FAILURE(*status)) return NULL;
- U_ASSERT(keyHash != NULL);
- U_ASSERT(keyComp != NULL);
-
- result = (UHashtable*) uprv_malloc(sizeof(UHashtable));
- if (result == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
-
- result->keyHasher = keyHash;
- result->keyComparator = keyComp;
- result->keyDeleter = NULL;
- result->valueDeleter = NULL;
- _uhash_internalSetResizePolicy(result, U_GROW);
-
- _uhash_allocate(result, primeIndex, status);
-
- if (U_FAILURE(*status)) {
- uprv_free(result);
- return NULL;
- }
-
- return result;
-}
-
-/**
- * Allocate internal data array of a size determined by the given
- * prime index. If the index is out of range it is pinned into range.
- * If the allocation fails the status is set to
- * U_MEMORY_ALLOCATION_ERROR and all array storage is freed. In
- * either case the previous array pointer is overwritten.
- *
- * Caller must ensure primeIndex is in range 0..PRIME_LENGTH-1.
- */
-static void
-_uhash_allocate(UHashtable *hash,
- int32_t primeIndex,
- UErrorCode *status) {
-
- UHashElement *p, *limit;
- UHashTok emptytok;
-
- if (U_FAILURE(*status)) return;
-
- U_ASSERT(primeIndex >= 0 && primeIndex < PRIMES_LENGTH);
-
- hash->primeIndex = primeIndex;
- hash->length = PRIMES[primeIndex];
-
- p = hash->elements = (UHashElement*)
- uprv_malloc(sizeof(UHashElement) * hash->length);
-
- if (hash->elements == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
-
- emptytok.pointer = NULL; /* Only one of these two is needed */
- emptytok.integer = 0; /* but we don't know which one. */
-
- limit = p + hash->length;
- while (p < limit) {
- p->key = emptytok;
- p->value = emptytok;
- p->hashcode = HASH_EMPTY;
- ++p;
- }
-
- hash->count = 0;
- hash->lowWaterMark = (int32_t)(hash->length * hash->lowWaterRatio);
- hash->highWaterMark = (int32_t)(hash->length * hash->highWaterRatio);
-}
-
-/**
- * Attempt to grow or shrink the data arrays in order to make the
- * count fit between the high and low water marks. hash_put() and
- * hash_remove() call this method when the count exceeds the high or
- * low water marks. This method may do nothing, if memory allocation
- * fails, or if the count is already in range, or if the length is
- * already at the low or high limit. In any case, upon return the
- * arrays will be valid.
- */
-static void
-_uhash_rehash(UHashtable *hash) {
-
- UHashElement *old = hash->elements;
- int32_t oldLength = hash->length;
- int32_t newPrimeIndex = hash->primeIndex;
- int32_t i;
- UErrorCode status = U_ZERO_ERROR;
-
- if (hash->count > hash->highWaterMark) {
- if (++newPrimeIndex >= PRIMES_LENGTH) {
- return;
- }
- } else if (hash->count < hash->lowWaterMark) {
- if (--newPrimeIndex < 0) {
- return;
- }
- } else {
- return;
- }
-
- _uhash_allocate(hash, newPrimeIndex, &status);
-
- if (U_FAILURE(status)) {
- hash->elements = old;
- hash->length = oldLength;
- return;
- }
-
- for (i = oldLength - 1; i >= 0; --i) {
- if (!IS_EMPTY_OR_DELETED(old[i].hashcode)) {
- UHashElement *e = _uhash_find(hash, old[i].key, old[i].hashcode);
- U_ASSERT(e != NULL);
- U_ASSERT(e->hashcode == HASH_EMPTY);
- e->key = old[i].key;
- e->value = old[i].value;
- e->hashcode = old[i].hashcode;
- ++hash->count;
- }
- }
-
- uprv_free(old);
-}
-
-/**
- * Look for a key in the table, or if no such key exists, the first
- * empty slot matching the given hashcode. Keys are compared using
- * the keyComparator function.
- *
- * First find the start position, which is the hashcode modulo
- * the length. Test it to see if it is:
- *
- * a. identical: First check the hash values for a quick check,
- * then compare keys for equality using keyComparator.
- * b. deleted
- * c. empty
- *
- * Stop if it is identical or empty, otherwise continue by adding a
- * "jump" value (moduloing by the length again to keep it within
- * range) and retesting. For efficiency, there need enough empty
- * values so that the searchs stop within a reasonable amount of time.
- * This can be changed by changing the high/low water marks.
- *
- * In theory, this function can return NULL, if it is full (no empty
- * or deleted slots) and if no matching key is found. In practice, we
- * prevent this elsewhere (in uhash_put) by making sure the last slot
- * in the table is never filled.
- *
- * The size of the table should be prime for this algorithm to work;
- * otherwise we are not guaranteed that the jump value (the secondary
- * hash) is relatively prime to the table length.
- */
-static UHashElement*
-_uhash_find(const UHashtable *hash, UHashTok key,
- int32_t hashcode) {
-
- int32_t firstDeleted = -1; /* assume invalid index */
- int32_t theIndex, startIndex;
- int32_t jump = 0; /* lazy evaluate */
- int32_t tableHash;
-
- hashcode &= 0x7FFFFFFF; /* must be positive */
- startIndex = theIndex = (hashcode ^ 0x4000000) % hash->length;
-
- do {
- tableHash = hash->elements[theIndex].hashcode;
- if (tableHash == hashcode) { /* quick check */
- if ((*hash->keyComparator)(key, hash->elements[theIndex].key)) {
- return &(hash->elements[theIndex]);
- }
- } else if (!IS_EMPTY_OR_DELETED(tableHash)) {
- /* We have hit a slot which contains a key-value pair,
- * but for which the hash code does not match. Keep
- * looking.
- */
- } else if (tableHash == HASH_EMPTY) { /* empty, end o' the line */
- break;
- } else if (firstDeleted < 0) { /* remember first deleted */
- firstDeleted = theIndex;
- }
- if (jump == 0) { /* lazy compute jump */
- /* The jump value must be relatively prime to the table
- * length. As long as the length is prime, then any value
- * 1..length-1 will be relatively prime to it.
- */
- jump = (hashcode % (hash->length - 1)) + 1;
- }
- theIndex = (theIndex + jump) % hash->length;
- } while (theIndex != startIndex);
-
- if (firstDeleted >= 0) {
- theIndex = firstDeleted; /* reset if had deleted slot */
- } else if (tableHash != HASH_EMPTY) {
- /* We get to this point if the hashtable is full (no empty or
- * deleted slots), and we've failed to find a match. THIS
- * WILL NEVER HAPPEN as long as uhash_put() makes sure that
- * count is always < length.
- */
- U_ASSERT(FALSE);
- return NULL; /* Never happens if uhash_put() behaves */
- }
- return &(hash->elements[theIndex]);
-}
-
-static UHashTok
-_uhash_put(UHashtable *hash,
- UHashTok key,
- UHashTok value,
- int8_t hint,
- UErrorCode *status) {
-
- /* Put finds the position in the table for the new value. If the
- * key is already in the table, it is deleted, if there is a
- * non-NULL keyDeleter. Then the key, the hash and the value are
- * all put at the position in their respective arrays.
- */
- int32_t hashcode;
- UHashElement* e;
- UHashTok emptytok;
-
- if (U_FAILURE(*status)) {
- goto err;
- }
- U_ASSERT(hash != NULL);
- /* Cannot always check pointer here or iSeries sees NULL every time. */
- if ((hint & HINT_VALUE_POINTER) && value.pointer == NULL) {
- /* Disallow storage of NULL values, since NULL is returned by
- * get() to indicate an absent key. Storing NULL == removing.
- */
- return _uhash_remove(hash, key);
- }
- if (hash->count > hash->highWaterMark) {
- _uhash_rehash(hash);
- }
-
- hashcode = (*hash->keyHasher)(key);
- e = _uhash_find(hash, key, hashcode);
- U_ASSERT(e != NULL);
-
- if (IS_EMPTY_OR_DELETED(e->hashcode)) {
- /* Important: We must never actually fill the table up. If we
- * do so, then _uhash_find() will return NULL, and we'll have
- * to check for NULL after every call to _uhash_find(). To
- * avoid this we make sure there is always at least one empty
- * or deleted slot in the table. This only is a problem if we
- * are out of memory and rehash isn't working.
- */
- ++hash->count;
- if (hash->count == hash->length) {
- /* Don't allow count to reach length */
- --hash->count;
- *status = U_MEMORY_ALLOCATION_ERROR;
- goto err;
- }
- }
-
- /* We must in all cases handle storage properly. If there was an
- * old key, then it must be deleted (if the deleter != NULL).
- * Make hashcodes stored in table positive.
- */
- return _uhash_setElement(hash, e, hashcode & 0x7FFFFFFF, key, value, hint);
-
- err:
- /* If the deleters are non-NULL, this method adopts its key and/or
- * value arguments, and we must be sure to delete the key and/or
- * value in all cases, even upon failure.
- */
- HASH_DELETE_KEY_VALUE(hash, key.pointer, value.pointer);
- emptytok.pointer = NULL; emptytok.integer = 0;
- return emptytok;
-}
-
-static UHashTok
-_uhash_remove(UHashtable *hash,
- UHashTok key) {
- /* First find the position of the key in the table. If the object
- * has not been removed already, remove it. If the user wanted
- * keys deleted, then delete it also. We have to put a special
- * hashcode in that position that means that something has been
- * deleted, since when we do a find, we have to continue PAST any
- * deleted values.
- */
- UHashTok result;
- UHashElement* e = _uhash_find(hash, key, hash->keyHasher(key));
- U_ASSERT(e != NULL);
- result.pointer = NULL; result.integer = 0;
- if (!IS_EMPTY_OR_DELETED(e->hashcode)) {
- result = _uhash_internalRemoveElement(hash, e);
- if (hash->count < hash->lowWaterMark) {
- _uhash_rehash(hash);
- }
- }
- return result;
-}
-
-static UHashTok
-_uhash_setElement(UHashtable *hash, UHashElement* e,
- int32_t hashcode,
- UHashTok key, UHashTok value, int8_t hint) {
-
- UHashTok oldValue = e->value;
- if (hash->keyDeleter != NULL && e->key.pointer != NULL &&
- e->key.pointer != key.pointer) { /* Avoid double deletion */
- (*hash->keyDeleter)(e->key.pointer);
- }
- if (hash->valueDeleter != NULL) {
- if (oldValue.pointer != NULL &&
- oldValue.pointer != value.pointer) { /* Avoid double deletion */
- (*hash->valueDeleter)(oldValue.pointer);
- }
- oldValue.pointer = NULL;
- }
- /* Compilers should copy the UHashTok union correctly, but even if
- * they do, memory heap tools (e.g. BoundsChecker) can get
- * confused when a pointer is cloaked in a union and then copied.
- * TO ALLEVIATE THIS, we use hints (based on what API the user is
- * calling) to copy pointers when we know the user thinks
- * something is a pointer. */
- if (hint & HINT_KEY_POINTER) {
- e->key.pointer = key.pointer;
- } else {
- e->key = key;
- }
- if (hint & HINT_VALUE_POINTER) {
- e->value.pointer = value.pointer;
- } else {
- e->value = value;
- }
- e->hashcode = hashcode;
- return oldValue;
-}
-
-/**
- * Assumes that the given element is not empty or deleted.
- */
-static UHashTok
-_uhash_internalRemoveElement(UHashtable *hash, UHashElement* e) {
- UHashTok empty;
- U_ASSERT(!IS_EMPTY_OR_DELETED(e->hashcode));
- --hash->count;
- empty.pointer = NULL; empty.integer = 0;
- return _uhash_setElement(hash, e, HASH_DELETED, empty, empty, 0);
-}
-
-static void
-_uhash_internalSetResizePolicy(UHashtable *hash, enum UHashResizePolicy policy) {
- U_ASSERT(hash != NULL);
- U_ASSERT(((int32_t)policy) >= 0);
- U_ASSERT(((int32_t)policy) < 3);
- hash->lowWaterRatio = RESIZE_POLICY_RATIO_TABLE[policy * 2];
- hash->highWaterRatio = RESIZE_POLICY_RATIO_TABLE[policy * 2 + 1];
-}
diff --git a/Build/source/libs/icu-xetex/common/uhash.h b/Build/source/libs/icu-xetex/common/uhash.h
index 9e26978813c..b5f3a67db3f 100644
--- a/Build/source/libs/icu-xetex/common/uhash.h
+++ b/Build/source/libs/icu-xetex/common/uhash.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* Date Name Description
@@ -117,7 +117,14 @@ typedef int32_t U_CALLCONV UHashFunction(const UHashTok key);
*/
typedef UBool U_CALLCONV UKeyComparator(const UHashTok key1,
const UHashTok key2);
-
+/**
+ * A key comparison function.
+ * @param val1 A key stored in a hashtable
+ * @param val2 A key stored in a hashtable
+ * @return TRUE if the two keys are equal.
+ */
+typedef UBool U_CALLCONV UValueComparator(const UHashTok val1,
+ const UHashTok val2);
/**
* A function called by <TT>uhash_remove</TT>,
* <TT>uhash_close</TT>, or <TT>uhash_put</TT> to delete
@@ -146,6 +153,19 @@ struct UHashtable {
UHashElement *elements;
+ /* Function pointers */
+
+ UHashFunction *keyHasher; /* Computes hash from key.
+ * Never null. */
+ UKeyComparator *keyComparator; /* Compares keys for equality.
+ * Never null. */
+ UValueComparator *valueComparator; /* Compares the values for equality */
+
+ UObjectDeleter *keyDeleter; /* Deletes keys when required.
+ * If NULL won't do anything */
+ UObjectDeleter *valueDeleter; /* Deletes values when required.
+ * If NULL won't do anything */
+
/* Size parameters */
int32_t count; /* The number of key-value pairs in this table.
@@ -163,16 +183,7 @@ struct UHashtable {
float highWaterRatio; /* 0..1; high water as a fraction of length */
float lowWaterRatio; /* 0..1; low water as a fraction of length */
- /* Function pointers */
-
- UHashFunction *keyHasher; /* Computes hash from key.
- * Never null. */
- UKeyComparator *keyComparator; /* Compares keys for equality.
- * Never null. */
- UObjectDeleter *keyDeleter; /* Deletes keys when required.
- * If NULL won't do anything */
- UObjectDeleter *valueDeleter; /* Deletes values when required.
- * If NULL won't do anything */
+ UBool allocated; /* Was this UHashtable allocated? */
};
typedef struct UHashtable UHashtable;
@@ -195,6 +206,7 @@ U_CDECL_END
U_CAPI UHashtable* U_EXPORT2
uhash_open(UHashFunction *keyHash,
UKeyComparator *keyComp,
+ UValueComparator *valueComp,
UErrorCode *status);
/**
@@ -211,10 +223,28 @@ uhash_open(UHashFunction *keyHash,
U_CAPI UHashtable* U_EXPORT2
uhash_openSize(UHashFunction *keyHash,
UKeyComparator *keyComp,
+ UValueComparator *valueComp,
int32_t size,
UErrorCode *status);
/**
+ * Initialize an existing UHashtable.
+ * @param keyHash A pointer to the key hashing function. Must not be
+ * NULL.
+ * @param keyComp A pointer to the function that compares keys. Must
+ * not be NULL.
+ * @param status A pointer to an UErrorCode to receive any errors.
+ * @return A pointer to a UHashtable, or 0 if an error occurred.
+ * @see uhash_openSize
+ */
+U_CAPI UHashtable* U_EXPORT2
+uhash_init(UHashtable *hash,
+ UHashFunction *keyHash,
+ UKeyComparator *keyComp,
+ UValueComparator *valueComp,
+ UErrorCode *status);
+
+/**
* Close a UHashtable, releasing the memory used.
* @param hash The UHashtable to close.
*/
@@ -243,6 +273,16 @@ U_CAPI UKeyComparator *U_EXPORT2
uhash_setKeyComparator(UHashtable *hash, UKeyComparator *fn);
/**
+ * Set the function used to compare values. The default comparison is a
+ * void* pointer comparison.
+ * @param hash The UHashtable to set
+ * @param fn the function to be used compare keys; must not be NULL
+ * @return the previous key comparator; non-NULL
+ */
+U_CAPI UValueComparator *U_EXPORT2
+uhash_setValueComparator(UHashtable *hash, UValueComparator *fn);
+
+/**
* Set the function used to delete keys. If this function pointer is
* NULL, this hashtable does not delete keys. If it is non-NULL, this
* hashtable does delete keys. This function should be set once
@@ -676,4 +716,13 @@ uhash_deleteUVector(void *obj);
U_CAPI void U_EXPORT2
uhash_freeBlock(void *obj);
+/**
+ * Checks if the given hash tables are equal or not.
+ * @param hash1
+ * @param hash2
+ * @return true if the hashtables are equal and false if not.
+ */
+U_CAPI UBool U_EXPORT2
+uhash_equals(const UHashtable* hash1, const UHashtable* hash2);
+
#endif
diff --git a/Build/source/libs/icu-xetex/common/uidna.cpp b/Build/source/libs/icu-xetex/common/uidna.cpp
index b5bf9a5107e..4a6b329ce52 100644
--- a/Build/source/libs/icu-xetex/common/uidna.cpp
+++ b/Build/source/libs/icu-xetex/common/uidna.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -66,12 +66,6 @@ startsWithPrefix(const UChar* src , int32_t srcLength){
return startsWithPrefix;
}
-inline static void
-toASCIILower(UChar* src, int32_t srcLen){
- for(int32_t i=0; i<srcLen; i++){
- src[i] = toASCIILower(src[i]);
- }
-}
inline static int32_t
compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len,
@@ -194,13 +188,6 @@ static inline UBool isLDHChar(UChar ch){
return FALSE;
}
-// We should add this to utypes.c
-#if U_ICU_VERSION_MAJOR_NUM>3 || (U_ICU_VERSION_MAJOR_NUM==3 && U_ICU_VERSION_MINOR_NUM>4)
-# error Time bomb: After ICU 3.4 move the definition of utypes.h and fix the TODO in _uIDNAErrorName definition.
-#else
-# define U_IDNA_ZERO_LENGTH_LABEL_ERROR U_IDNA_ERROR_LIMIT
-#endif
-
static int32_t
_internal_toASCII(const UChar* src, int32_t srcLength,
UChar* dest, int32_t destCapacity,
diff --git a/Build/source/libs/icu-xetex/common/uinit.c b/Build/source/libs/icu-xetex/common/uinit.c
index efdeaba8d57..a70e51d0e6f 100644
--- a/Build/source/libs/icu-xetex/common/uinit.c
+++ b/Build/source/libs/icu-xetex/common/uinit.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2001-2005, International Business Machines *
+* Copyright (C) 2001-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -30,19 +30,6 @@ static UBool gICUInitialized = FALSE;
static UMTX gICUInitMutex = NULL;
-static cleanupFunc *gLibCleanupFunctions[UCLN_COMMON];
-
-U_CAPI void U_EXPORT2
-ucln_registerCleanup(ECleanupLibraryType type,
- cleanupFunc *func)
-{
- U_ASSERT(UCLN_START < type && type < UCLN_COMMON);
- if (UCLN_START < type && type < UCLN_COMMON)
- {
- gLibCleanupFunctions[type] = func;
- }
-}
-
/************************************************
The cleanup order is important in this function.
Please be sure that you have read ucln.h
@@ -50,21 +37,11 @@ ucln_registerCleanup(ECleanupLibraryType type,
U_CAPI void U_EXPORT2
u_cleanup(void)
{
- ECleanupLibraryType libType;
-
UTRACE_ENTRY_OC(UTRACE_U_CLEANUP);
umtx_lock(NULL); /* Force a memory barrier, so that we are sure to see */
umtx_unlock(NULL); /* all state left around by any other threads. */
- for (libType = UCLN_START+1; libType<UCLN_COMMON; libType++) {
- if (gLibCleanupFunctions[libType])
- {
- gLibCleanupFunctions[libType]();
- gLibCleanupFunctions[libType] = NULL;
- }
- }
-
- ucln_common_lib_cleanup();
+ ucln_lib_cleanup();
umtx_destroy(&gICUInitMutex);
umtx_cleanup();
@@ -108,7 +85,7 @@ u_init(UErrorCode *status) {
* available.
*/
#if !UCONFIG_NO_CONVERSION
- ucnv_io_countStandards(status);
+ ucnv_io_countTotalAliases(status);
#endif
#else
/* Do any required init for services that don't have open operations
@@ -118,7 +95,7 @@ u_init(UErrorCode *status) {
*/
/* Char Properties */
- uprv_loadPropsData(status);
+ uprv_haveProperties(status);
/* load the case and bidi properties but don't fail if they are not available */
u_isULowercase(0x61);
diff --git a/Build/source/libs/icu-xetex/common/uinvchar.c b/Build/source/libs/icu-xetex/common/uinvchar.c
index 263c35fc014..325a09d1d1f 100644
--- a/Build/source/libs/icu-xetex/common/uinvchar.c
+++ b/Build/source/libs/icu-xetex/common/uinvchar.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -145,58 +145,49 @@ static const uint32_t invariantChars[4]={
/* test signed types for invariant characters, adds test for positive values */
#define SCHAR_IS_INVARIANT(c) ((0<=(c)) && UCHAR_IS_INVARIANT(c))
+#if U_CHARSET_FAMILY==U_ASCII_FAMILY
+#define CHAR_TO_UCHAR(c) c
+#define UCHAR_TO_CHAR(c) c
+#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+#define CHAR_TO_UCHAR(u) asciiFromEbcdic[u]
+#define UCHAR_TO_CHAR(u) ebcdicFromAscii[u]
+#else
+# error U_CHARSET_FAMILY is not valid
+#endif
+
+
U_CAPI void U_EXPORT2
u_charsToUChars(const char *cs, UChar *us, int32_t length) {
UChar u;
uint8_t c;
- UBool onlyInvariantChars;
/*
* Allow the entire ASCII repertoire to be mapped _to_ Unicode.
* For EBCDIC systems, this works for characters with codes from
* codepages 37 and 1047 or compatible.
*/
- onlyInvariantChars=TRUE;
while(length>0) {
c=(uint8_t)(*cs++);
-#if U_CHARSET_FAMILY==U_ASCII_FAMILY
- u=(UChar)c;
-#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- u=(UChar)asciiFromEbcdic[c];
-#else
-# error U_CHARSET_FAMILY is not valid
-#endif
- if(u==0 && c!=0) {
- onlyInvariantChars=FALSE;
- }
+ u=(UChar)CHAR_TO_UCHAR(c);
+ U_ASSERT((u!=0 || c==0)); /* only invariant chars converted? */
*us++=u;
--length;
}
- U_ASSERT(onlyInvariantChars); /* only invariant chars? */
}
U_CAPI void U_EXPORT2
u_UCharsToChars(const UChar *us, char *cs, int32_t length) {
UChar u;
- UBool onlyInvariantChars;
- onlyInvariantChars=TRUE;
while(length>0) {
u=*us++;
if(!UCHAR_IS_INVARIANT(u)) {
- onlyInvariantChars=FALSE;
+ U_ASSERT(FALSE); /* Variant characters were used. These are not portable in ICU. */
u=0;
}
-#if U_CHARSET_FAMILY==U_ASCII_FAMILY
- *cs++=(char)u;
-#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- *cs++=(char)ebcdicFromAscii[u];
-#else
-# error U_CHARSET_FAMILY is not valid
-#endif
+ *cs++=(char)UCHAR_TO_CHAR(u);
--length;
}
- U_ASSERT(onlyInvariantChars); /* only invariant chars? */
}
U_CAPI UBool U_EXPORT2
@@ -232,7 +223,7 @@ uprv_isInvariantString(const char *s, int32_t length) {
return FALSE; /* found a variant char */
}
#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- c=asciiFromEbcdic[c];
+ c=CHAR_TO_UCHAR(c);
if(c==0 || !UCHAR_IS_INVARIANT(c)) {
return FALSE; /* found a variant char */
}
@@ -277,7 +268,7 @@ uprv_isInvariantUString(const UChar *s, int32_t length) {
/* UDataSwapFn implementations used in udataswp.c ------- */
/* convert ASCII to EBCDIC and verify that all characters are invariant */
-U_CFUNC int32_t
+U_CAPI int32_t U_EXPORT2
uprv_ebcdicFromAscii(const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode) {
diff --git a/Build/source/libs/icu-xetex/common/uiter.cpp b/Build/source/libs/icu-xetex/common/uiter.cpp
index 6ca975089b5..bfe92c6c751 100644
--- a/Build/source/libs/icu-xetex/common/uiter.cpp
+++ b/Build/source/libs/icu-xetex/common/uiter.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -50,11 +50,12 @@ noopCurrent(UCharIterator * /*iter*/) {
static uint32_t U_CALLCONV
noopGetState(const UCharIterator * /*iter*/) {
- return 0;
+ return UITER_NO_STATE;
}
static void U_CALLCONV
-noopSetState(UCharIterator * /*iter*/, uint32_t /*state*/, UErrorCode * /*pErrorCode*/) {
+noopSetState(UCharIterator * /*iter*/, uint32_t /*state*/, UErrorCode *pErrorCode) {
+ *pErrorCode=U_UNSUPPORTED_ERROR;
}
static const UCharIterator noopIterator={
diff --git a/Build/source/libs/icu-xetex/common/uloc.c b/Build/source/libs/icu-xetex/common/uloc.c
index c4981987e52..275497bd4e1 100644
--- a/Build/source/libs/icu-xetex/common/uloc.c
+++ b/Build/source/libs/icu-xetex/common/uloc.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -31,6 +31,7 @@
#include "unicode/utypes.h"
#include "unicode/ustring.h"
#include "unicode/uloc.h"
+#include "unicode/ures.h"
#include "putilimp.h"
#include "ustr_imp.h"
@@ -113,14 +114,15 @@ static int32_t _installedLocalesCount = 0;
*/
static const char * const LANGUAGES[] = {
"aa", "ab", "ace", "ach", "ada", "ady", "ae", "af", "afa",
- "afh", "ak", "akk", "ale", "alg", "alt", "am", "an", "ang", "apa",
+ "afh", "ain", "ak", "akk", "ale", "alg", "alt", "am", "an",
+ "ang", "anp", "apa",
"ar", "arc", "arn", "arp", "art", "arw", "as", "ast",
"ath", "aus", "av", "awa", "ay", "az", "ba", "bad",
"bai", "bal", "ban", "bas", "bat", "be", "bej",
"bem", "ber", "bg", "bh", "bho", "bi", "bik", "bin",
"bla", "bm", "bn", "bnt", "bo", "br", "bra", "bs",
"btk", "bua", "bug", "byn", "ca", "cad", "cai", "car", "cau",
- "ce", "ceb", "cel", "ch", "chb", "chg", "chk", "chm",
+ "cch", "ce", "ceb", "cel", "ch", "chb", "chg", "chk", "chm",
"chn", "cho", "chp", "chr", "chy", "cmc", "co", "cop",
"cpe", "cpf", "cpp", "cr", "crh", "crp", "cs", "csb", "cu", "cus",
"cv", "cy", "da", "dak", "dar", "day", "de", "del", "den",
@@ -128,17 +130,18 @@ static const char * const LANGUAGES[] = {
"dz", "ee", "efi", "egy", "eka", "el", "elx", "en",
"enm", "eo", "es", "et", "eu", "ewo", "fa",
"fan", "fat", "ff", "fi", "fil", "fiu", "fj", "fo", "fon",
- "fr", "frm", "fro", "fur", "fy", "ga", "gaa", "gay",
- "gba", "gd", "gem", "gez", "gil", "gl", "gmh", "gn",
- "goh", "gon", "gor", "got", "grb", "grc", "gu", "gv",
- "gwi", "ha", "hai", "haw", "he", "hi", "hil", "him",
+ "fr", "frm", "fro", "frr", "frs", "fur", "fy",
+ "ga", "gaa", "gay", "gba", "gd", "gem", "gez", "gil",
+ "gl", "gmh", "gn", "goh", "gon", "gor", "got", "grb",
+ "grc", "gsw", "gu", "gv", "gwi",
+ "ha", "hai", "haw", "he", "hi", "hil", "him",
"hit", "hmn", "ho", "hr", "hsb", "ht", "hu", "hup", "hy", "hz",
"ia", "iba", "id", "ie", "ig", "ii", "ijo", "ik",
"ilo", "inc", "ine", "inh", "io", "ira", "iro", "is", "it",
"iu", "ja", "jbo", "jpr", "jrb", "jv", "ka", "kaa", "kab",
- "kac", "kam", "kar", "kaw", "kbd", "kg", "kha", "khi",
+ "kac", "kaj", "kam", "kar", "kaw", "kbd", "kcg", "kfo", "kg", "kha", "khi",
"kho", "ki", "kj", "kk", "kl", "km", "kmb", "kn",
- "ko", "kok", "kos", "kpe", "kr", "krc", "kro", "kru", "ks",
+ "ko", "kok", "kos", "kpe", "kr", "krc", "krl", "kro", "kru", "ks",
"ku", "kum", "kut", "kv", "kw", "ky", "la", "lad",
"lah", "lam", "lb", "lez", "lg", "li", "ln", "lo", "lol",
"loz", "lt", "lu", "lua", "lui", "lun", "luo", "lus",
@@ -154,7 +157,7 @@ static const char * const LANGUAGES[] = {
"pag", "pal", "pam", "pap", "pau", "peo", "phi", "phn",
"pi", "pl", "pon", "pra", "pro", "ps", "pt", "qu",
"raj", "rap", "rar", "rm", "rn", "ro", "roa", "rom",
- "ru", "rw", "sa", "sad", "sah", "sai", "sal", "sam",
+ "ru", "rup", "rw", "sa", "sad", "sah", "sai", "sal", "sam",
"sas", "sat", "sc", "scn", "sco", "sd", "se", "sel", "sem",
"sg", "sga", "sgn", "shn", "si", "sid", "sio", "sit",
"sk", "sl", "sla", "sm", "sma", "smi", "smj", "smn",
@@ -168,11 +171,17 @@ static const char * const LANGUAGES[] = {
"uz", "vai", "ve", "vi", "vo", "vot", "wa", "wak",
"wal", "war", "was", "wen", "wo", "xal", "xh", "yao", "yap",
"yi", "yo", "ypk", "za", "zap", "zen", "zh", "znd",
- "zu", "zun",
+ "zu", "zun", "zxx",
NULL,
"in", "iw", "ji", "jw", "sh", /* obsolete language codes */
NULL
};
+static const char* const DEPRECATED_LANGUAGES[]={
+ "in", "iw", "ji", "jw", NULL, NULL
+};
+static const char* const REPLACEMENT_LANGUAGES[]={
+ "id", "he", "yi", "jv", NULL, NULL
+};
/**
* Table of 3-letter language codes.
@@ -193,8 +202,8 @@ NULL
static const char * const LANGUAGES_3[] = {
/* "aa", "ab", "ace", "ach", "ada", "ady", "ae", "af", "afa", */
"aar", "abk", "ace", "ach", "ada", "ady", "ave", "afr", "afa",
-/* "afh", "ak", "akk", "ale", "alg", "alt", "am", "an", "ang", "apa", */
- "afh", "aka", "akk", "ale", "alg", "alt", "amh", "arg", "ang", "apa",
+/* "afh", "ain", "ak", "akk", "ale", "alg", "alt", "am", "an", "ang", "anp", "apa", */
+ "afh", "ain", "aka", "akk", "ale", "alg", "alt", "amh", "arg", "ang", "anp", "apa",
/* "ar", "arc", "arn", "arp", "art", "arw", "as", "ast", */
"ara", "arc", "arn", "arp", "art", "arw", "asm", "ast",
/* "ath", "aus", "av", "awa", "ay", "az", "ba", "bad", */
@@ -207,8 +216,8 @@ static const char * const LANGUAGES_3[] = {
"bla", "bam", "ben", "bnt", "bod", "bre", "bra", "bos",
/* "btk", "bua", "bug", "byn", "ca", "cad", "cai", "car", "cau", */
"btk", "bua", "bug", "byn", "cat", "cad", "cai", "car", "cau",
-/* "ce", "ceb", "cel", "ch", "chb", "chg", "chk", "chm", */
- "che", "ceb", "cel", "cha", "chb", "chg", "chk", "chm",
+/* "cch", "ce", "ceb", "cel", "ch", "chb", "chg", "chk", "chm", */
+ "cch", "che", "ceb", "cel", "cha", "chb", "chg", "chk", "chm",
/* "chn", "cho", "chp", "chr", "chy", "cmc", "co", "cop", */
"chn", "cho", "chp", "chr", "chy", "cmc", "cos", "cop",
/* "cpe", "cpf", "cpp", "cr", "crh", "crp", "cs", "csb", "cu", "cus", */
@@ -223,12 +232,12 @@ static const char * const LANGUAGES_3[] = {
"enm", "epo", "spa", "est", "eus", "ewo", "fas",
/* "fan", "fat", "ff", "fi", "fil", "fiu", "fj", "fo", "fon", */
"fan", "fat", "ful", "fin", "fil", "fiu", "fij", "fao", "fon",
-/* "fr", "frm", "fro", "fur", "fy", "ga", "gaa", "gay", */
- "fra", "frm", "fro", "fur", "fry", "gle", "gaa", "gay",
+/* "fr", "frm", "fro", "fur", "frr", "frs", "fy", "ga", "gaa", "gay", */
+ "fra", "frm", "fro", "fur", "frr", "frs", "fry", "gle", "gaa", "gay",
/* "gba", "gd", "gem", "gez", "gil", "gl", "gmh", "gn", */
"gba", "gla", "gem", "gez", "gil", "glg", "gmh", "grn",
-/* "goh", "gon", "gor", "got", "grb", "grc", "gu", "gv", */
- "goh", "gon", "gor", "got", "grb", "grc", "guj", "glv",
+/* "goh", "gon", "gor", "got", "grb", "grc", "gsw", "gu", "gv", */
+ "goh", "gon", "gor", "got", "grb", "grc", "gsw", "guj", "glv",
/* "gwi", "ha", "hai", "haw", "he", "hi", "hil", "him", */
"gwi", "hau", "hai", "haw", "heb", "hin", "hil", "him",
/* "hit", "hmn", "ho", "hr", "hsb", "ht", "hu", "hup", "hy", "hz", */
@@ -239,12 +248,12 @@ static const char * const LANGUAGES_3[] = {
"ilo", "inc", "ine", "inh", "ido", "ira", "iro", "isl", "ita",
/* "iu", "ja", "jbo", "jpr", "jrb", "jv", "ka", "kaa", "kab", */
"iku", "jpn", "jbo", "jpr", "jrb", "jav", "kat", "kaa", "kab",
-/* "kac", "kam", "kar", "kaw", "kbd", "kg", "kha", "khi", */
- "kac", "kam", "kar", "kaw", "kbd", "kon", "kha", "khi",
+/* "kac", "kaj", "kam", "kar", "kaw", "kbd", "kcg", "kfo", "kg", "kha", "khi",*/
+ "kac", "kaj", "kam", "kar", "kaw", "kbd", "kcg", "kfo", "kg", "kha", "khi",
/* "kho", "ki", "kj", "kk", "kl", "km", "kmb", "kn", */
"kho", "kik", "kua", "kaz", "kal", "khm", "kmb", "kan",
-/* "ko", "kok", "kos", "kpe", "kr", "krc", "kro", "kru", "ks", */
- "kor", "kok", "kos", "kpe", "kau", "krc", "kro", "kru", "kas",
+/* "ko", "kok", "kos", "kpe", "kr", "krc", "krl", "kro", "kru", "ks", */
+ "kor", "kok", "kos", "kpe", "kau", "krc", "krl", "kro", "kru", "kas",
/* "ku", "kum", "kut", "kv", "kw", "ky", "la", "lad", */
"kur", "kum", "kut", "kom", "cor", "kir", "lat", "lad",
/* "lah", "lam", "lb", "lez", "lg", "li", "ln", "lo", "lol", */
@@ -275,8 +284,8 @@ static const char * const LANGUAGES_3[] = {
"pli", "pol", "pon", "pra", "pro", "pus", "por", "que",
/* "raj", "rap", "rar", "rm", "rn", "ro", "roa", "rom", */
"raj", "rap", "rar", "roh", "run", "ron", "roa", "rom",
-/* "ru", "rw", "sa", "sad", "sah", "sai", "sal", "sam", */
- "rus", "kin", "san", "sad", "sah", "sai", "sal", "sam",
+/* "ru", "rup", "rw", "sa", "sad", "sah", "sai", "sal", "sam", */
+ "rus", "rup", "kin", "san", "sad", "sah", "sai", "sal", "sam",
/* "sas", "sat", "sc", "scn", "sco", "sd", "se", "sel", "sem", */
"sas", "sat", "srd", "scn", "sco", "snd", "sme", "sel", "sem",
/* "sg", "sga", "sgn", "shn", "si", "sid", "sio", "sit", */
@@ -304,7 +313,7 @@ static const char * const LANGUAGES_3[] = {
/* "yi", "yo", "ypk", "za", "zap", "zen", "zh", "znd", */
"yid", "yor", "ypk", "zha", "zap", "zen", "zho", "znd",
/* "zu", "zun", */
- "zul", "zun",
+ "zul", "zun", "zxx",
NULL,
/* "in", "iw", "ji", "jw", "sh", */
"ind", "heb", "yid", "jaw", "srp",
@@ -345,11 +354,11 @@ static const char * const COUNTRIES[] = {
"CU", "CV", "CX", "CY", "CZ", "DE", "DJ", "DK",
"DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER",
"ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR",
- "GA", "GB", "GD", "GE", "GF", "GH", "GI", "GL",
+ "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL",
"GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU",
"GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU",
- "ID", "IE", "IL", "IN", "IO", "IQ", "IR", "IS",
- "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI",
+ "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS",
+ "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI",
"KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA",
"LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU",
"LV", "LY", "MA", "MC", "MD", "MG", "MH", "MK",
@@ -365,12 +374,20 @@ static const char * const COUNTRIES[] = {
"TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV",
"TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ",
"VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF",
- "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW",
+ "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", "ZZ",
NULL,
"FX", "RO", "TP", "ZR", /* obsolete country codes */
NULL
};
+static const char* const DEPRECATED_COUNTRIES[] ={
+ "BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR", NULL, NULL /* deprecated country list */
+};
+static const char* const REPLACEMENT_COUNTRIES[] = {
+/* "BU", "DY", "FX", "HV", "NH", "RH", "TP", "YU", "ZR" */
+ "MM", "BJ", "FR", "BF", "VU", "ZW", "TL", "CS", "CD", NULL, NULL /* replacement country codes */
+};
+
/**
* Table of 3-letter country codes.
*
@@ -403,16 +420,16 @@ static const char * const COUNTRIES_3[] = {
"DMA", "DOM", "DZA", "ECU", "EST", "EGY", "ESH", "ERI",
/* "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", */
"ESP", "ETH", "FIN", "FJI", "FLK", "FSM", "FRO", "FRA",
-/* "GA", "GB", "GD", "GE", "GF", "GH", "GI", "GL", */
- "GAB", "GBR", "GRD", "GEO", "GUF", "GHA", "GIB", "GRL",
+/* "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", */
+ "GAB", "GBR", "GRD", "GEO", "GUF", "GGY", "GHA", "GIB", "GRL",
/* "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", */
"GMB", "GIN", "GLP", "GNQ", "GRC", "SGS", "GTM", "GUM",
/* "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", */
"GNB", "GUY", "HKG", "HMD", "HND", "HRV", "HTI", "HUN",
-/* "ID", "IE", "IL", "IN", "IO", "IQ", "IR", "IS", */
- "IDN", "IRL", "ISR", "IND", "IOT", "IRQ", "IRN", "ISL",
-/* "IT", "JM", "JO", "JP", "KE", "KG", "KH", "KI", */
- "ITA", "JAM", "JOR", "JPN", "KEN", "KGZ", "KHM", "KIR",
+/* ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS" */
+ "IDN", "IRL", "ISR", "IMN", "IND", "IOT", "IRQ", "IRN", "ISL",
+/* "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", */
+ "ITA", "JEY", "JAM", "JOR", "JPN", "KEN", "KGZ", "KHM", "KIR",
/* "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", */
"COM", "KNA", "PRK", "KOR", "KWT", "CYM", "KAZ", "LAO",
/* "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", */
@@ -443,8 +460,8 @@ static const char * const COUNTRIES_3[] = {
"TWN", "TZA", "UKR", "UGA", "UMI", "USA", "URY", "UZB",
/* "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", */
"VAT", "VCT", "VEN", "VGB", "VIR", "VNM", "VUT", "WLF",
-/* "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", */
- "WSM", "YEM", "MYT", "YUG", "ZAF", "ZMB", "ZWE",
+/* "WS", "YE", "YT", "YU", "ZA", "ZM", "ZW", "ZZZ" */
+ "WSM", "YEM", "MYT", "YUG", "ZAF", "ZMB", "ZWE", "ZZZ",
NULL,
/* "FX", "RO", "TP", "ZR", */
"FXX", "ROM", "TMP", "ZAR",
@@ -465,6 +482,7 @@ typedef struct CanonicalizationMap {
static const CanonicalizationMap CANONICALIZE_MAP[] = {
{ "", "en_US_POSIX", NULL, NULL }, /* .NET name */
{ "C", "en_US_POSIX", NULL, NULL }, /* POSIX name */
+ { "posix", "en_US_POSIX", NULL, NULL }, /* POSIX name (alias of C) */
{ "art_LOJBAN", "jbo", NULL, NULL }, /* registered name */
{ "az_AZ_CYRL", "az_Cyrl_AZ", NULL, NULL }, /* .NET name */
{ "az_AZ_LATN", "az_Latn_AZ", NULL, NULL }, /* .NET name */
@@ -498,8 +516,10 @@ static const CanonicalizationMap CANONICALIZE_MAP[] = {
{ "nl_NL_PREEURO", "nl_NL", "currency", "NLG" },
{ "pt_PT_PREEURO", "pt_PT", "currency", "PTE" },
{ "sl_ROZAJ", "sl__ROZAJ", NULL, NULL }, /* registered name */
- { "sr_SP_CYRL", "sr_Cyrl_SP", NULL, NULL }, /* .NET name */
- { "sr_SP_LATN", "sr_Latn_SP", NULL, NULL }, /* .NET name */
+ { "sr_SP_CYRL", "sr_Cyrl_CS", NULL, NULL }, /* .NET name */
+ { "sr_SP_LATN", "sr_Latn_CS", NULL, NULL }, /* .NET name */
+ { "sr_YU_CYRILLIC", "sr_Cyrl_CS", NULL, NULL }, /* Linux name */
+ { "uz_UZ_CYRILLIC", "uz_Cyrl_UZ", NULL, NULL }, /* Linux name */
{ "uz_UZ_CYRL", "uz_Cyrl_UZ", NULL, NULL }, /* .NET name */
{ "uz_UZ_LATN", "uz_Latn_UZ", NULL, NULL }, /* .NET name */
{ "zh_CHS", "zh_Hans", NULL, NULL }, /* .NET name */
@@ -524,14 +544,16 @@ static const CanonicalizationMap CANONICALIZE_MAP[] = {
static const char *
locale_getKeywordsStart(const char *localeID) {
- /* TODO This seems odd. No matter what charset we're on, won't '@'
- be '@'? Or are we building on one EBCDIC machine and moving the
- library to another? */
const char *result = NULL;
- static const uint8_t ebcdicSigns[] = { 0x7C, 0x44, 0x66, 0x80, 0xAC, 0xAE, 0xAF, 0xB5, 0xEC, 0xEF, 0x00 };
if((result = uprv_strchr(localeID, '@')) != NULL) {
return result;
- } else if(U_CHARSET_FAMILY == U_EBCDIC_FAMILY) {
+ }
+#if (U_CHARSET_FAMILY == U_EBCDIC_FAMILY)
+ else {
+ /* We do this because the @ sign is variant, and the @ sign used on one
+ EBCDIC machine won't be compiled the same way on other EBCDIC based
+ machines. */
+ static const uint8_t ebcdicSigns[] = { 0x7C, 0x44, 0x66, 0x80, 0xAC, 0xAE, 0xAF, 0xB5, 0xEC, 0xEF, 0x00 };
const uint8_t *charToFind = ebcdicSigns;
while(*charToFind) {
if((result = uprv_strchr(localeID, *charToFind)) != NULL) {
@@ -540,6 +562,7 @@ locale_getKeywordsStart(const char *localeID) {
charToFind++;
}
}
+#endif
return NULL;
}
@@ -775,7 +798,6 @@ uloc_getKeywordValue(const char* localeID,
UErrorCode* status)
{
const char* nextSeparator = NULL;
- int32_t keywordNameLen;
char keywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
char localeKeywordNameBuffer[ULOC_KEYWORD_BUFFER_LEN];
int32_t i = 0;
@@ -789,7 +811,7 @@ uloc_getKeywordValue(const char* localeID,
return 0;
}
- keywordNameLen = locale_canonKeywordName(keywordNameBuffer, keywordName, status);
+ locale_canonKeywordName(keywordNameBuffer, keywordName, status);
if(U_FAILURE(*status)) {
return 0;
}
@@ -882,6 +904,17 @@ uloc_setKeywordValue(const char* keywordName,
if(U_FAILURE(*status)) {
return -1;
}
+ if(bufferCapacity>1) {
+ bufLen = (int32_t)uprv_strlen(buffer);
+ } else {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+ if(bufferCapacity<bufLen) {
+ /* The capacity is less than the length?! Is this NULL terminated? */
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
if(keywordValue && !*keywordValue) {
keywordValue = NULL;
}
@@ -895,12 +928,6 @@ uloc_setKeywordValue(const char* keywordName,
return 0;
}
startSearchHere = (char*)locale_getKeywordsStart(buffer);
- if(bufferCapacity>1) {
- bufLen = (int32_t)uprv_strlen(buffer);
- } else {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
if(startSearchHere == NULL || (startSearchHere[1]==0)) {
if(!keywordValue) { /* no keywords = nothing to remove */
return bufLen;
@@ -1123,6 +1150,22 @@ _copyCount(char *dest, int32_t destCapacity, const char *src) {
}
}
+static const char*
+uloc_getCurrentCountryID(const char* oldID){
+ int32_t offset = _findIndex(DEPRECATED_COUNTRIES, oldID);
+ if (offset >= 0) {
+ return REPLACEMENT_COUNTRIES[offset];
+ }
+ return oldID;
+}
+static const char*
+uloc_getCurrentLanguageID(const char* oldID){
+ int32_t offset = _findIndex(DEPRECATED_LANGUAGES, oldID);
+ if (offset >= 0) {
+ return REPLACEMENT_LANGUAGES[offset];
+ }
+ return oldID;
+}
/*
* the internal functions _getLanguage(), _getCountry(), _getVariant()
* avoid duplicating code to handle the earlier locale ID pieces
@@ -1498,6 +1541,9 @@ uloc_openKeywords(const char* localeID,
#define OPTION_SET(options, mask) ((options & mask) != 0)
+static const char i_default[] = {'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'};
+#define I_DEFAULT_LENGTH (sizeof i_default / sizeof i_default[0])
+
/**
* Canonicalize the given localeID, to level 1 or to level 2,
* depending on the options. To specify level 1, pass in options=0.
@@ -1513,6 +1559,7 @@ _canonicalize(const char* localeID,
UErrorCode* err) {
int32_t j, len, fieldCount=0, scriptSize=0, variantSize=0, nameCapacity;
char localeBuffer[ULOC_FULLNAME_CAPACITY];
+ const char* origLocaleID = localeID;
const char* keywordAssign = NULL;
const char* separatorIndicator = NULL;
const char* addKeyword = NULL;
@@ -1542,7 +1589,16 @@ _canonicalize(const char* localeID,
/* get all pieces, one after another, and separate with '_' */
len=_getLanguage(localeID, name, nameCapacity, &localeID);
- if(_isIDSeparator(*localeID)) {
+
+ if(len == I_DEFAULT_LENGTH && uprv_strncmp(origLocaleID, i_default, len) == 0) {
+ const char *d = uloc_getDefault();
+
+ len = uprv_strlen(d);
+
+ if (name != NULL) {
+ uprv_strncpy(name, d, len);
+ }
+ } else if(_isIDSeparator(*localeID)) {
const char *scriptID;
++fieldCount;
@@ -1733,7 +1789,7 @@ uloc_getParent(const char* localeID,
i=0;
}
- if(i>0) {
+ if(i>0 && parent != localeID) {
uprv_memcpy(parent, localeID, uprv_min(i, parentCapacity));
}
return u_terminateChars(parent, parentCapacity, i, err);
@@ -1824,7 +1880,6 @@ uloc_getVariant(const char* localeID,
UErrorCode* err)
{
int32_t i=0;
- UBool haveVariant=FALSE;
if(err==NULL || U_FAILURE(*err)) {
return 0;
@@ -1848,7 +1903,6 @@ uloc_getVariant(const char* localeID,
if (_isIDSeparator(*localeID)) {
_getCountry(localeID+1, NULL, 0, &localeID);
if(_isIDSeparator(*localeID)) {
- haveVariant=TRUE;
i=_getVariant(localeID+1, *localeID, variant, variantCapacity);
}
}
@@ -1988,153 +2042,107 @@ _res_getTableStringWithFallback(const char *path, const char *locale,
int32_t *pLength,
UErrorCode *pErrorCode)
{
- char localeBuffer[ULOC_FULLNAME_CAPACITY*4];
- UResourceBundle *rb, table;
- const UChar *item;
+/* char localeBuffer[ULOC_FULLNAME_CAPACITY*4];*/
+ UResourceBundle *rb=NULL, table, subTable;
+ const UChar *item=NULL;
UErrorCode errorCode;
char explicitFallbackName[ULOC_FULLNAME_CAPACITY] = {0};
- int32_t efnLen =0;
- const UChar* ef = NULL;
- UBool overrideExplicitFallback = FALSE;
- for(;;) {
- /*
- * open the bundle for the current locale
- * this falls back through the locale's chain to root
- */
- errorCode=U_ZERO_ERROR;
- rb=ures_open(path, locale, &errorCode);
- if(U_FAILURE(errorCode)) {
- /* total failure, not even root could be opened */
- *pErrorCode=errorCode;
- return NULL;
- } else if(errorCode==U_USING_DEFAULT_WARNING ||
- (errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
- ) {
- /* set the "strongest" error code (success->fallback->default->failure) */
- *pErrorCode=errorCode;
- }
-
- /*
- * try to open the requested table
- * this falls back through the locale's chain to root, but not through the default locale
- */
- errorCode=U_ZERO_ERROR;
+
+ /*
+ * open the bundle for the current locale
+ * this falls back through the locale's chain to root
+ */
+ errorCode=U_ZERO_ERROR;
+ rb=ures_open(path, locale, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ /* total failure, not even root could be opened */
+ *pErrorCode=errorCode;
+ return NULL;
+ } else if(errorCode==U_USING_DEFAULT_WARNING ||
+ (errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
+ ) {
+ /* set the "strongest" error code (success->fallback->default->failure) */
+ *pErrorCode=errorCode;
+ }
+
+ for(;;){
ures_initStackObject(&table);
- ures_getByKey(rb, tableKey, &table, &errorCode);
- if(U_FAILURE(errorCode)) {
- /* no such table anywhere in this fallback chain */
- ures_close(rb);
- *pErrorCode=errorCode;
- return NULL;
- } else if(errorCode==U_USING_DEFAULT_WARNING ||
- (errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
- ) {
- /* set the "strongest" error code (success->fallback->default->failure) */
- *pErrorCode=errorCode;
+ ures_initStackObject(&subTable);
+ ures_getByKeyWithFallback(rb, tableKey, &table, &errorCode);
+ if (subTableKey != NULL) {
+ /*
+ ures_getByKeyWithFallback(&table,subTableKey, &subTable, &errorCode);
+ item = ures_getStringByKeyWithFallback(&subTable, itemKey, pLength, &errorCode);
+ if(U_FAILURE(errorCode)){
+ *pErrorCode = errorCode;
+ }
+
+ break;*/
+
+ ures_getByKeyWithFallback(&table,subTableKey, &table, &errorCode);
}
-
- /* check if the fallback token is set */
- ef = ures_getStringByKey(&table, "Fallback", &efnLen, &errorCode);
if(U_SUCCESS(errorCode)){
- /* set the fallback chain */
- u_UCharsToChars(ef, explicitFallbackName, efnLen);
- /* null terminate the buffer */
- explicitFallbackName[efnLen]=0;
- }else if(errorCode==U_USING_DEFAULT_WARNING ||
- (errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
- ) {
- /* set the "strongest" error code (success->fallback->default->failure) */
- *pErrorCode=errorCode;
- }
-
- /* try to open the requested item in the table */
- errorCode=U_ZERO_ERROR;
- if(subTableKey == NULL){
- item=ures_getStringByKey(&table, itemKey, pLength, &errorCode);
- }else{
- UResourceBundle subTable;
- ures_initStackObject(&subTable);
- ures_getByKey(&table, subTableKey, &subTable, &errorCode);
- item = ures_getStringByKey(&subTable, itemKey, pLength, &errorCode);
- ures_close(&subTable);
- }
- if(U_SUCCESS(errorCode)) {
- /* if the item for the key is empty ... override the explicit fall back set */
- if(item[0]==0 && efnLen > 0){
- overrideExplicitFallback = TRUE;
- }else{
- /* we got the requested item! */
- ures_close(&table);
- ures_close(rb);
-
- if(errorCode==U_USING_DEFAULT_WARNING ||
- (errorCode==U_USING_FALLBACK_WARNING && *pErrorCode!=U_USING_DEFAULT_WARNING)
- ) {
- /* set the "strongest" error code (success->fallback->default->failure) */
- *pErrorCode=errorCode;
+ item = ures_getStringByKeyWithFallback(&table, itemKey, pLength, &errorCode);
+ if(U_FAILURE(errorCode)){
+ const char* replacement = NULL;
+ *pErrorCode = errorCode; /*save the errorCode*/
+ errorCode = U_ZERO_ERROR;
+ /* may be a deprecated code */
+ if(uprv_strcmp(tableKey, "Countries")==0){
+ replacement = uloc_getCurrentCountryID(itemKey);
+ }else if(uprv_strcmp(tableKey, "Languages")==0){
+ replacement = uloc_getCurrentLanguageID(itemKey);
}
-
- /*
- * It is safe to close the bundle and still return the
- * string pointer because resource bundles are
- * cached until u_cleanup().
- */
- return item;
+ /*pointer comparison is ok since uloc_getCurrentCountryID & uloc_getCurrentLanguageID return the key itself is replacement is not found*/
+ if(replacement!=NULL && itemKey != replacement){
+ item = ures_getStringByKeyWithFallback(&table, replacement, pLength, &errorCode);
+ if(U_SUCCESS(errorCode)){
+ *pErrorCode = errorCode;
+ break;
+ }
+ }
+ }else{
+ break;
}
}
+
+ if(U_FAILURE(errorCode)){
- /*
- * We get here if the item was not found.
- * We will follow the chain to the parent locale bundle and look in
- * the table there.
- */
+ /* still can't figure out ?.. try the fallback mechanism */
+ int32_t len = 0;
+ const UChar* fallbackLocale = NULL;
+ *pErrorCode = errorCode;
+ errorCode = U_ZERO_ERROR;
- /* get the real locale ID for this table */
- errorCode=U_ZERO_ERROR;
- locale=ures_getLocale(&table, &errorCode);
- /* keep table and rb open until we are done using the locale string owned by the table bundle */
- if(U_FAILURE(errorCode)) {
- /* error getting the locale ID for an open RB - should never happen */
- ures_close(&table);
- ures_close(rb);
- *pErrorCode=U_INTERNAL_PROGRAM_ERROR;
- return NULL;
- }
-
- if(*locale==0 || 0==uprv_strcmp(locale, _kRootName) || 0==uprv_strcmp(locale,explicitFallbackName)) {
- /* end of fallback; even root does not have the requested item either */
- ures_close(&table);
+ fallbackLocale = ures_getStringByKeyWithFallback(&table, "Fallback", &len, &errorCode);
+ if(U_FAILURE(errorCode)){
+ *pErrorCode = errorCode;
+ break;
+ }
+
+ u_UCharsToChars(fallbackLocale, explicitFallbackName, len);
+
+ /* guard against recursive fallback */
+ if(uprv_strcmp(explicitFallbackName, locale)==0){
+ *pErrorCode = U_INTERNAL_PROGRAM_ERROR;
+ break;
+ }
ures_close(rb);
- *pErrorCode=U_MISSING_RESOURCE_ERROR;
- return NULL;
- }
-
- /* could not find the table, or its item, try to fall back to a different RB and table */
- errorCode=U_ZERO_ERROR;
- if(efnLen > 0 && overrideExplicitFallback == FALSE){
- /* continue the fallback lookup with the explicit fallback that is requested */
- locale = explicitFallbackName;
- }else{
- uloc_getParent(locale, localeBuffer, sizeof(localeBuffer), &errorCode);
- if(U_FAILURE(errorCode) || errorCode==U_STRING_NOT_TERMINATED_WARNING) {
- /* error getting the parent locale ID - should never happen */
- *pErrorCode=U_INTERNAL_PROGRAM_ERROR;
- return NULL;
+ rb = ures_open(NULL, explicitFallbackName, &errorCode);
+ if(U_FAILURE(errorCode)){
+ *pErrorCode = errorCode;
+ break;
}
-
- /* continue the fallback lookup with the parent locale ID */
- locale=localeBuffer;
-
- /* adjust error code as we fall back */
- if (uprv_strlen(locale) == 0) /* Falling back to root locale? */
- *pErrorCode = U_USING_DEFAULT_WARNING;
- else if (*pErrorCode != U_USING_DEFAULT_WARNING)
- *pErrorCode = U_USING_FALLBACK_WARNING;
+ /* succeeded in opening the fallback bundle .. continue and try to fetch the item */
+ }else{
+ break;
}
- /* done with the locale string - ready to close table and rb */
- ures_close(&table);
- ures_close(rb);
}
+ /* done with the locale string - ready to close table and rb */
+ ures_close(&subTable);
+ ures_close(&table);
+ ures_close(rb);
+ return item;
}
static int32_t
@@ -2989,11 +2997,11 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable,
if(len>0) {
uprv_strncpy(result, l, uprv_min(len, resultAvailable));
}
- for(i=0;i<acceptListCount;i++) {
- uprv_free(fallbackList[i]);
+ for(j=0;j<acceptListCount;j++) {
+ uprv_free(fallbackList[j]);
}
uprv_free(fallbackList);
- return u_terminateChars(result, resultAvailable, len, status);
+ return u_terminateChars(result, resultAvailable, len, status);
}
}
uenum_reset(availableLocales, status);
diff --git a/Build/source/libs/icu-xetex/common/umapfile.c b/Build/source/libs/icu-xetex/common/umapfile.c
index d956e77211a..356e55ac32b 100644
--- a/Build/source/libs/icu-xetex/common/umapfile.c
+++ b/Build/source/libs/icu-xetex/common/umapfile.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************/
@@ -21,32 +21,6 @@
#include "udatamem.h"
#include "umapfile.h"
-#if U_ICU_VERSION_MAJOR_NUM>3 || (U_ICU_VERSION_MAJOR_NUM==3 && U_ICU_VERSION_MINOR_NUM>4)
-# error Time bomb: After ICU 3.4 move the definition of UCONFIG_NO_FILE_IO to uconfig.h. Use Jitterbug 4614.
-#endif
-
-/**
- * \def UCONFIG_NO_FILE_IO
- * This switch turns off all file access in the common library
- * where file access is only used for data loading.
- * ICU data must then be provided in the form of a data DLL (or with an
- * equivalent way to link to the data residing in an executable,
- * as in building a combined library with both the common library's code and
- * the data), or via udata_setCommonData().
- * Application data must be provided via udata_setAppData() or by using
- * "open" functions that take pointers to data, for example ucol_openBinary().
- *
- * File access is not used at all in the i18n library.
- *
- * File access cannot be turned off for the icuio library or for the ICU
- * test suites and ICU tools.
- *
- * @draft ICU 3.6
- */
-#ifndef UCONFIG_NO_FILE_IO
-# define UCONFIG_NO_FILE_IO 0
-#endif
-
/* memory-mapping base definitions ------------------------------------------ */
/* MAP_NONE: no memory mapping, no file access at all */
@@ -66,6 +40,7 @@
# define NOIME
# define NOMCX
# include <windows.h>
+# include "cmemory.h"
typedef HANDLE MemoryMap;
@@ -74,7 +49,7 @@
# define MAP_IMPLEMENTATION MAP_WIN32
/* ### Todo: properly auto detect mmap(). Until then, just add your platform here. */
-#elif U_HAVE_MMAP || defined(U_AIX) || defined(U_HPUX) || defined(OS390) || defined(PTX)
+#elif U_HAVE_MMAP || defined(U_AIX) || defined(U_HPUX) || defined(OS390)
typedef size_t MemoryMap;
# define IS_MAP(map) ((map)!=0)
@@ -151,6 +126,9 @@
{
HANDLE map;
HANDLE file;
+ SECURITY_ATTRIBUTES mappingAttributes;
+ SECURITY_ATTRIBUTES *mappingAttributesPtr = NULL;
+ SECURITY_DESCRIPTOR securityDesc;
UDataMemory_init(pData); /* Clear the output struct. */
@@ -162,8 +140,24 @@
return FALSE;
}
+ /* Declare and initialize a security descriptor.
+ This is required for multiuser systems on Windows 2000 SP4 and beyond */
+ if (InitializeSecurityDescriptor(&securityDesc, SECURITY_DESCRIPTOR_REVISION)) {
+ /* give the security descriptor a Null Dacl done using the "TRUE, (PACL)NULL" here */
+ if (SetSecurityDescriptorDacl(&securityDesc, TRUE, (PACL)NULL, FALSE)) {
+ /* Make the security attributes point to the security descriptor */
+ uprv_memset(&mappingAttributes, 0, sizeof(mappingAttributes));
+ mappingAttributes.nLength = sizeof(mappingAttributes);
+ mappingAttributes.lpSecurityDescriptor = &securityDesc;
+ mappingAttributes.bInheritHandle = FALSE; /* object uninheritable */
+ mappingAttributesPtr = &mappingAttributes;
+ }
+ }
+ /* else creating security descriptors can fail when we are on Windows 98,
+ and mappingAttributesPtr == NULL for that case. */
+
/* create an unnamed Windows file-mapping object for the specified file */
- map=CreateFileMapping(file, NULL, PAGE_READONLY, 0, 0, NULL);
+ map=CreateFileMapping(file, mappingAttributesPtr, PAGE_READONLY, 0, 0, NULL);
CloseHandle(file);
if(map==NULL) {
return FALSE;
diff --git a/Build/source/libs/icu-xetex/common/umath.c b/Build/source/libs/icu-xetex/common/umath.c
new file mode 100644
index 00000000000..4a571143168
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/umath.c
@@ -0,0 +1,24 @@
+/*
+******************************************************************************
+*
+* Copyright (C) 1997-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+* This file contains platform independent math.
+*/
+
+#include "putilimp.h"
+
+U_CAPI int32_t U_EXPORT2
+uprv_max(int32_t x, int32_t y)
+{
+ return (x > y ? x : y);
+}
+
+U_CAPI int32_t U_EXPORT2
+uprv_min(int32_t x, int32_t y)
+{
+ return (x > y ? y : x);
+}
+
diff --git a/Build/source/libs/icu-xetex/common/umutex.c b/Build/source/libs/icu-xetex/common/umutex.c
index 5b72ea48d70..22396f5e1d9 100644
--- a/Build/source/libs/icu-xetex/common/umutex.c
+++ b/Build/source/libs/icu-xetex/common/umutex.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -22,6 +22,14 @@
#include "uassert.h"
#include "ucln_cmn.h"
+#if defined(U_DARWIN)
+#include <AvailabilityMacros.h>
+#if (ICU_USE_THREADS == 1) && defined(MAC_OS_X_VERSION_10_4) && defined(MAC_OS_X_VERSION_MIN_REQUIRED) && (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4)
+#include <libkern/OSAtomic.h>
+#define USE_MAC_OS_ATOMIC_INCREMENT 1
+#endif
+#endif
+
/* Assume POSIX, and modify as necessary below */
#define POSIX
@@ -511,6 +519,8 @@ umtx_atomic_inc(int32_t *p) {
} else {
#if defined (U_WINDOWS) && ICU_USE_THREADS == 1
retVal = InterlockedIncrement((LONG*)p);
+ #elif defined(USE_MAC_OS_ATOMIC_INCREMENT)
+ retVal = OSAtomicIncrement32Barrier(p);
#elif defined (POSIX) && ICU_USE_THREADS == 1
umtx_lock(&gIncDecMutex);
retVal = ++(*p);
@@ -531,6 +541,8 @@ umtx_atomic_dec(int32_t *p) {
} else {
#if defined (U_WINDOWS) && ICU_USE_THREADS == 1
retVal = InterlockedDecrement((LONG*)p);
+ #elif defined(USE_MAC_OS_ATOMIC_INCREMENT)
+ retVal = OSAtomicDecrement32Barrier(p);
#elif defined (POSIX) && ICU_USE_THREADS == 1
umtx_lock(&gIncDecMutex);
retVal = --(*p);
@@ -552,7 +564,6 @@ umtx_atomic_dec(int32_t *p) {
U_CAPI void U_EXPORT2
u_setAtomicIncDecFunctions(const void *context, UMtxAtomicFn *ip, UMtxAtomicFn *dp,
UErrorCode *status) {
- int32_t testInt;
if (U_FAILURE(*status)) {
return;
}
@@ -571,11 +582,15 @@ u_setAtomicIncDecFunctions(const void *context, UMtxAtomicFn *ip, UMtxAtomicFn *
pDecFn = dp;
gIncDecContext = context;
- testInt = 0;
- U_ASSERT(umtx_atomic_inc(&testInt) == 1); /* Sanity Check. Do the functions work at all? */
- U_ASSERT(testInt == 1);
- U_ASSERT(umtx_atomic_dec(&testInt) == 0);
- U_ASSERT(testInt == 0);
+#if !U_RELEASE
+ {
+ int32_t testInt = 0;
+ U_ASSERT(umtx_atomic_inc(&testInt) == 1); /* Sanity Check. Do the functions work at all? */
+ U_ASSERT(testInt == 1);
+ U_ASSERT(umtx_atomic_dec(&testInt) == 0);
+ U_ASSERT(testInt == 0);
+ }
+#endif
}
diff --git a/Build/source/libs/icu-xetex/common/unames.c b/Build/source/libs/icu-xetex/common/unames.c
index 621d028a829..c8faf8fe871 100644
--- a/Build/source/libs/icu-xetex/common/unames.c
+++ b/Build/source/libs/icu-xetex/common/unames.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -65,16 +65,14 @@ static UErrorCode gLoadErrorCode=U_ZERO_ERROR;
/*
* Maximum length of character names (regular & 1.0).
- * Maximum length of ISO comments.
*/
-static int32_t gMaxNameLength=0, gMaxISOCommentLength=0;
+static int32_t gMaxNameLength=0;
/*
* Set of chars used in character names (regular & 1.0).
- * Set of chars used in ISO comments.
* Chars are platform-dependent (can be EBCDIC).
*/
-static uint32_t gNameSet[8]={ 0 }, gISOCommentSet[8]={ 0 };
+static uint32_t gNameSet[8]={ 0 };
#define U_NONCHARACTER_CODE_POINT U_CHAR_CATEGORY_COUNT
#define U_LEAD_SURROGATE U_CHAR_CATEGORY_COUNT + 1
@@ -82,8 +80,41 @@ static uint32_t gNameSet[8]={ 0 }, gISOCommentSet[8]={ 0 };
#define U_CHAR_EXTENDED_CATEGORY_COUNT (U_CHAR_CATEGORY_COUNT + 3)
-static const char * const
-charCatNames[U_CHAR_EXTENDED_CATEGORY_COUNT];
+static const char * const charCatNames[U_CHAR_EXTENDED_CATEGORY_COUNT] = {
+ "unassigned",
+ "uppercase letter",
+ "lowercase letter",
+ "titlecase letter",
+ "modifier letter",
+ "other letter",
+ "non spacing mark",
+ "enclosing mark",
+ "combining spacing mark",
+ "decimal digit number",
+ "letter number",
+ "other number",
+ "space separator",
+ "line separator",
+ "paragraph separator",
+ "control",
+ "format",
+ "private use area",
+ "surrogate",
+ "dash punctuation",
+ "start punctuation",
+ "end punctuation",
+ "connector punctuation",
+ "other punctuation",
+ "math symbol",
+ "currency symbol",
+ "modifier symbol",
+ "other symbol",
+ "initial punctuation",
+ "final punctuation",
+ "noncharacter",
+ "lead surrogate",
+ "trail surrogate"
+};
/* implementation ----------------------------------------------------------- */
@@ -372,42 +403,6 @@ compareName(UCharNames *names,
return (UBool)(*otherName==0);
}
-static const char * const charCatNames[U_CHAR_EXTENDED_CATEGORY_COUNT] = {
- "unassigned",
- "uppercase letter",
- "lowercase letter",
- "titlecase letter",
- "modifier letter",
- "other letter",
- "non spacing mark",
- "enclosing mark",
- "combining spacing mark",
- "decimal digit number",
- "letter number",
- "other number",
- "space separator",
- "line separator",
- "paragraph separator",
- "control",
- "format",
- "private use area",
- "surrogate",
- "dash punctuation",
- "start punctuation",
- "end punctuation",
- "connector punctuation",
- "other punctuation",
- "math symbol",
- "currency symbol",
- "modifier symbol",
- "other symbol",
- "initial punctuation",
- "final punctuation",
- "noncharacter",
- "lead surrogate",
- "trail surrogate"
-};
-
static uint8_t getCharCat(UChar32 cp) {
uint8_t cat;
@@ -1333,7 +1328,6 @@ calcGroupNameSetsLengths(int32_t maxNameLength) {
Group *group;
const uint8_t *s, *line, *lineLimit;
- int32_t maxISOCommentLength=0;
int32_t groupCount, lineNumber, length;
tokenLengths=(int8_t *)uprv_malloc(tokenCount);
@@ -1380,10 +1374,7 @@ calcGroupNameSetsLengths(int32_t maxNameLength) {
}
/* read ISO comment */
- length=calcNameSetLength(tokens, tokenCount, tokenStrings, tokenLengths, gISOCommentSet, &line, lineLimit);
- if(length>maxISOCommentLength) {
- maxISOCommentLength=length;
- }
+ /*length=calcNameSetLength(tokens, tokenCount, tokenStrings, tokenLengths, gISOCommentSet, &line, lineLimit);*/
}
++group;
@@ -1395,7 +1386,6 @@ calcGroupNameSetsLengths(int32_t maxNameLength) {
}
/* set gMax... - name length last for threading */
- gMaxISOCommentLength=maxISOCommentLength;
gMaxNameLength=maxNameLength;
}
@@ -1694,22 +1684,6 @@ uprv_getMaxCharNameLength() {
}
}
-#if 0
-/*
-Currently not used but left for future use. Probably by UnicodeSet.
-urename.h and uprops.h changed accordingly.
-*/
-U_CAPI int32_t U_EXPORT2
-uprv_getMaxISOCommentLength() {
- UErrorCode errorCode=U_ZERO_ERROR;
- if(calcNameSetsLengths(&errorCode)) {
- return gMaxISOCommentLength;
- } else {
- return 0;
- }
-}
-#endif
-
/**
* Converts the char set cset into a Unicode set uset.
* @param cset Set of 256 bit flags corresponding to a set of chars.
@@ -1757,21 +1731,6 @@ uprv_getCharNameCharacters(const USetAdder *sa) {
charSetToUSet(gNameSet, sa);
}
-#if 0
-/*
-Currently not used but left for future use. Probably by UnicodeSet.
-urename.h and uprops.h changed accordingly.
-*/
-/**
- * Fills set with characters that are used in Unicode character names.
- * @param set USetAdder to receive characters.
- */
-U_CAPI void U_EXPORT2
-uprv_getISOCommentCharacters(const USetAdder *sa) {
- charSetToUSet(gISOCommentSet, sa);
-}
-#endif
-
/* data swapping ------------------------------------------------------------ */
/*
@@ -2085,23 +2044,11 @@ uchar_swapNames(const UDataSwapper *ds,
case 1:
{
/* swap factors and the prefix and factor strings */
- uint16_t factors[8];
- uint32_t j, factorsCount;
+ uint32_t factorsCount;
factorsCount=inRange->variant;
- if(factorsCount==0 || factorsCount>LENGTHOF(factors)) {
- udata_printError(ds, "uchar_swapNames(): too many factors (%u) in algorithmic range %u\n",
- factorsCount, i);
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
-
- /* read and swap the factors */
p=(const uint16_t *)(inRange+1);
q=(uint16_t *)(outRange+1);
- for(j=0; j<factorsCount; ++j) {
- factors[j]=ds->readUInt16(p[j]);
- }
ds->swapArray16(ds, p, (int32_t)(factorsCount*2), q, pErrorCode);
/* swap the strings, up to the last terminating NUL */
diff --git a/Build/source/libs/icu-xetex/common/unicode/brkiter.h b/Build/source/libs/icu-xetex/common/unicode/brkiter.h
index 152e6a3d781..ba65650b5f3 100644
--- a/Build/source/libs/icu-xetex/common/unicode/brkiter.h
+++ b/Build/source/libs/icu-xetex/common/unicode/brkiter.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -48,38 +48,31 @@ U_NAMESPACE_END
#include "unicode/ubrk.h"
#include "unicode/strenum.h"
#include "unicode/utext.h"
+#include "unicode/umisc.h"
U_NAMESPACE_BEGIN
-#if !UCONFIG_NO_SERVICE
-/**
- * Opaque type returned by registerInstance.
- * @stable
- */
-typedef const void* URegistryKey;
-#endif
-
/**
* The BreakIterator class implements methods for finding the location
* of boundaries in text. BreakIterator is an abstract base class.
* Instances of BreakIterator maintain a current position and scan over
* text returning the index of characters where boundaries occur.
- * <P>
+ * <p>
* Line boundary analysis determines where a text string can be broken
* when line-wrapping. The mechanism correctly handles punctuation and
* hyphenated words.
- * <P>
+ * <p>
* Sentence boundary analysis allows selection with correct
* interpretation of periods within numbers and abbreviations, and
* trailing punctuation marks such as quotation marks and parentheses.
- * <P>
+ * <p>
* Word boundary analysis is used by search and replace functions, as
* well as within text editing applications that allow the user to
* select words with a double click. Word selection provides correct
* interpretation of punctuation marks within and following
* words. Characters that are not part of a word, such as symbols or
* punctuation marks, have word-breaks on both sides.
- * <P>
+ * <p>
* Character boundary analysis allows users to interact with
* characters as they expect to, for example, when moving the cursor
* through a text string. Character boundary analysis provides correct
@@ -87,126 +80,22 @@ typedef const void* URegistryKey;
* character is stored. For example, an accented character might be
* stored as a base character and a diacritical mark. What users
* consider to be a character can differ between languages.
- * <P>
- * This is the interface for all text boundaries.
- * <P>
- * Examples:
- * <P>
- * Helper function to output text
- * <pre>
- * \code
- * void printTextRange( BreakIterator& iterator, int32_t start, int32_t end )
- * {
- * UnicodeString textBuffer, temp;
- * CharacterIterator *strIter = iterator.createText();
- * strIter->getText(temp);
- * cout << " " << start << " " << end << " |"
- * << temp.extractBetween(start, end, textBuffer)
- * << "|" << endl;
- * delete strIter;
- * }
- * \endcode
- * </pre>
- * Print each element in order:
- * <pre>
- * \code
- * void printEachForward( BreakIterator& boundary)
- * {
- * int32_t start = boundary.first();
- * for (int32_t end = boundary.next();
- * end != BreakIterator::DONE;
- * start = end, end = boundary.next())
- * {
- * printTextRange( boundary, start, end );
- * }
- * }
- * \endcode
- * </pre>
- * Print each element in reverse order:
- * <pre>
- * \code
- * void printEachBackward( BreakIterator& boundary)
- * {
- * int32_t end = boundary.last();
- * for (int32_t start = boundary.previous();
- * start != BreakIterator::DONE;
- * end = start, start = boundary.previous())
- * {
- * printTextRange( boundary, start, end );
- * }
- * }
- * \endcode
- * </pre>
- * Print first element
- * <pre>
- * \code
- * void printFirst(BreakIterator& boundary)
- * {
- * int32_t start = boundary.first();
- * int32_t end = boundary.next();
- * printTextRange( boundary, start, end );
- * }
- * \endcode
- * </pre>
- * Print last element
- * <pre>
- * \code
- * void printLast(BreakIterator& boundary)
- * {
- * int32_t end = boundary.last();
- * int32_t start = boundary.previous();
- * printTextRange( boundary, start, end );
- * }
- * \endcode
- * </pre>
- * Print the element at a specified position
- * <pre>
- * \code
- * void printAt(BreakIterator &boundary, int32_t pos )
- * {
- * int32_t end = boundary.following(pos);
- * int32_t start = boundary.previous();
- * printTextRange( boundary, start, end );
- * }
- * \endcode
- * </pre>
- * Creating and using text boundaries
- * <pre>
- * \code
- * void BreakIterator_Example( void )
- * {
- * BreakIterator* boundary;
- * UnicodeString stringToExamine("Aaa bbb ccc. Ddd eee fff.");
- * cout << "Examining: " << stringToExamine << endl;
- *
- * //print each sentence in forward and reverse order
- * boundary = BreakIterator::createSentenceInstance( Locale::US );
- * boundary->setText(stringToExamine);
- * cout << "----- forward: -----------" << endl;
- * printEachForward(*boundary);
- * cout << "----- backward: ----------" << endl;
- * printEachBackward(*boundary);
- * delete boundary;
- *
- * //print each word in order
- * boundary = BreakIterator::createWordInstance();
- * boundary->setText(stringToExamine);
- * cout << "----- forward: -----------" << endl;
- * printEachForward(*boundary);
- * //print first element
- * cout << "----- first: -------------" << endl;
- * printFirst(*boundary);
- * //print last element
- * cout << "----- last: --------------" << endl;
- * printLast(*boundary);
- * //print word at charpos 10
- * cout << "----- at pos 10: ---------" << endl;
- * printAt(*boundary, 10 );
+ * <p>
+ * The text boundary positions are found according to the rules
+ * described in Unicode Standard Annex #29, Text Boundaries, and
+ * Unicode Standard Annex #14, Line Breaking Properties. These
+ * are available at http://www.unicode.org/reports/tr14/ and
+ * http://www.unicode.org/reports/tr29/.
+ * <p>
+ * In addition to the C++ API defined in this header file, a
+ * plain C API with equivalent functionality is defined in the
+ * file ubrk.h
+ * <p>
+ * Code snippits illustrating the use of the Break Iterator APIs
+ * are available in the ICU User Guide,
+ * http://icu.sourceforge.net/userguide/boundaryAnalysis.html
+ * and in the sample program icu/source/samples/break/break.cpp"
*
- * delete boundary;
- * }
- * \endcode
- * </pre>
*/
class U_COMMON_API BreakIterator : public UObject {
public:
@@ -255,11 +144,9 @@ public:
/**
* Return a CharacterIterator over the text being analyzed.
- * Changing the state of the returned iterator can have undefined consequences
- * on the operation of the break iterator. If you need to change it, clone it first.
* @stable ICU 2.0
*/
- virtual const CharacterIterator& getText(void) const = 0;
+ virtual CharacterIterator& getText(void) const = 0;
/**
@@ -304,6 +191,8 @@ public:
/**
* Change the text over which this operates. The text boundary is
* reset to the start.
+ * Note that setText(UText *) provides similar functionality to this function,
+ * and is more efficient.
* @param it The CharacterIterator used to change the text.
* @stable ICU 2.0
*/
@@ -613,7 +502,7 @@ public:
/**
* Returns the locale for this break iterator. Two flavors are available: valid and
* actual locale.
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
@@ -626,8 +515,8 @@ public:
const char *getLocaleID(ULocDataLocaleType type, UErrorCode& status) const;
private:
- static BreakIterator* buildInstance(const Locale& loc, const char *type, UBool dict, UErrorCode& status);
- static BreakIterator* createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status);
+ static BreakIterator* buildInstance(const Locale& loc, const char *type, int32_t kind, UErrorCode& status);
+ static BreakIterator* createInstance(const Locale& loc, int32_t kind, UErrorCode& status);
static BreakIterator* makeInstance(const Locale& loc, int32_t kind, UErrorCode& status);
friend class ICUBreakIteratorFactory;
diff --git a/Build/source/libs/icu-xetex/common/unicode/caniter.h b/Build/source/libs/icu-xetex/common/unicode/caniter.h
index 5e1526dbf48..84a65958d16 100644
--- a/Build/source/libs/icu-xetex/common/unicode/caniter.h
+++ b/Build/source/libs/icu-xetex/common/unicode/caniter.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
- * Copyright (C) 1996-2005, International Business Machines Corporation and *
+ * Copyright (C) 1996-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -178,7 +178,7 @@ private:
UnicodeString *getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status); //private String[] getEquivalents(String segment)
//Set getEquivalents2(String segment);
- Hashtable *getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status);
+ Hashtable *getEquivalents2(Hashtable *fillinResult, const UChar *segment, int32_t segLen, UErrorCode &status);
//Hashtable *getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status);
/**
@@ -187,7 +187,7 @@ private:
* If so, take the remainder, and return the equivalents
*/
//Set extract(int comp, String segment, int segmentPos, StringBuffer buffer);
- Hashtable *extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
+ Hashtable *extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
//Hashtable *extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status);
void cleanPieces();
diff --git a/Build/source/libs/icu-xetex/common/unicode/dbbi.h b/Build/source/libs/icu-xetex/common/unicode/dbbi.h
index 2fb15497c9b..c7984ef862f 100644
--- a/Build/source/libs/icu-xetex/common/unicode/dbbi.h
+++ b/Build/source/libs/icu-xetex/common/unicode/dbbi.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005 IBM Corp. All rights reserved.
+* Copyright (C) 1999-2006 IBM Corp. All rights reserved.
**********************************************************************
* Date Name Description
* 12/1/99 rgillam Complete port from Java.
@@ -22,253 +22,17 @@
U_NAMESPACE_BEGIN
-/* forward declaration */
-class DictionaryBasedBreakIteratorTables;
-
/**
- * A subclass of RuleBasedBreakIterator that adds the ability to use a dictionary
- * to further subdivide ranges of text beyond what is possible using just the
- * state-table-based algorithm. This is necessary, for example, to handle
- * word and line breaking in Thai, which doesn't use spaces between words. The
- * state-table-based algorithm used by RuleBasedBreakIterator is used to divide
- * up text as far as possible, and then contiguous ranges of letters are
- * repeatedly compared against a list of known words (i.e., the dictionary)
- * to divide them up into words.
- *
- * <p>Applications do not normally need to include this header.</p>
- *
- * <p>This class will probably be deprecated in a future release of ICU, and replaced
- * with a more flexible and capable dictionary based break iterator. This change
- * should be invisible to applications, because creation and use of instances of
- * DictionaryBasedBreakIterator is through the factories and abstract
- * API on class BreakIterator, which will remain stable.</p>
- *
- * <p>This class is not intended to be subclassed.</p>
- *
- *
- * DictionaryBasedBreakIterator uses the same rule language as RuleBasedBreakIterator,
- * but adds one more special substitution name: &lt;dictionary&gt;. This substitution
- * name is used to identify characters in words in the dictionary. The idea is that
- * if the iterator passes over a chunk of text that includes two or more characters
- * in a row that are included in &lt;dictionary&gt;, it goes back through that range and
- * derives additional break positions (if possible) using the dictionary.
- *
- * DictionaryBasedBreakIterator is also constructed with the filename of a dictionary
- * file. It follows a prescribed search path to locate the dictionary (right now,
- * it looks for it in /com/ibm/text/resources in each directory in the classpath,
- * and won't find it in JAR files, but this location is likely to change). The
- * dictionary file is in a serialized binary format. We have a very primitive (and
- * slow) BuildDictionaryFile utility for creating dictionary files, but aren't
- * currently making it public. Contact us for help.
- * <p>
- * <b> NOTE </b> The DictionaryBasedIterator class is still under development. The
- * APIs are not in stable condition yet.
+ * An obsolete subclass of RuleBasedBreakIterator. Handling of dictionary-
+ * based break iteration has been folded into the base class. This class
+ * is deprecated as of ICU 3.6.
*/
-class U_COMMON_API DictionaryBasedBreakIterator : public RuleBasedBreakIterator {
-
-private:
-
- /**
- * when a range of characters is divided up using the dictionary, the break
- * positions that are discovered are stored here, preventing us from having
- * to use either the dictionary or the state table again until the iterator
- * leaves this range of text
- */
- int32_t* cachedBreakPositions;
-
- /**
- * The number of elements in cachedBreakPositions
- */
- int32_t numCachedBreakPositions;
-
- /**
- * if cachedBreakPositions is not null, this indicates which item in the
- * cache the current iteration position refers to
- */
- int32_t positionInCache;
-
- DictionaryBasedBreakIteratorTables *fTables;
-
- /**=======================================================================
- * Create a dictionary based break boundary detection iterator.
- * @param tablesImage The location for the dictionary to be loaded into memory
- * @param dictionaryFilename The name of the dictionary file
- * @param status the error code status
- * @return A dictionary based break detection iterator. The UErrorCode& status
- * parameter is used to return status information to the user.
- * To check whether the construction succeeded or not, you should check
- * the value of U_SUCCESS(err). If you wish more detailed information, you
- * can check for informational error results which still indicate success. For example,
- * U_FILE_ACCESS_ERROR will be returned if the file does not exist.
- * The caller owns the returned object and is responsible for deleting it.
- ======================================================================= */
- DictionaryBasedBreakIterator(UDataMemory* tablesImage, const char* dictionaryFilename, UErrorCode& status);
-
-public:
- //=======================================================================
- // boilerplate
- //=======================================================================
-
- /**
- * Destructor
- * @stable ICU 2.0
- */
- virtual ~DictionaryBasedBreakIterator();
-
- /**
- * Default constructor. Creates an "empty" break iterator.
- * Such an iterator can subsequently be assigned to.
- * @return the newly created DictionaryBaseBreakIterator.
- * @stable ICU 2.0
- */
- DictionaryBasedBreakIterator();
-
- /**
- * Copy constructor.
- * @param other The DictionaryBasedBreakIterator to be copied.
- * @return the newly created DictionaryBasedBreakIterator.
- * @stable ICU 2.0
- */
- DictionaryBasedBreakIterator(const DictionaryBasedBreakIterator &other);
-
- /**
- * Assignment operator.
- * @param that The object to be copied.
- * @return the newly set DictionaryBasedBreakIterator.
- * @stable ICU 2.0
- */
- DictionaryBasedBreakIterator& operator=(const DictionaryBasedBreakIterator& that);
-
- /**
- * Returns a newly-constructed RuleBasedBreakIterator with the same
- * behavior, and iterating over the same text, as this one.
- * @return Returns a newly-constructed RuleBasedBreakIterator.
- * @stable ICU 2.0
- */
- virtual BreakIterator* clone(void) const;
-
- //=======================================================================
- // BreakIterator overrides
- //=======================================================================
- /**
- * Advances the iterator backwards, to the last boundary preceding this one.
- * @return The position of the last boundary position preceding this one.
- * @stable ICU 2.0
- */
- virtual int32_t previous(void);
-
- /**
- * Sets the iterator to refer to the first boundary position following
- * the specified position.
- * @param offset The position from which to begin searching for a break position.
- * @return The position of the first break after the current position.
- * @stable ICU 2.0
- */
- virtual int32_t following(int32_t offset);
-
- /**
- * Sets the iterator to refer to the last boundary position before the
- * specified position.
- * @param offset The position to begin searching for a break from.
- * @return The position of the last boundary before the starting position.
- * @stable ICU 2.0
- */
- virtual int32_t preceding(int32_t offset);
-
- /**
- * Returns the class ID for this class. This is useful only for
- * comparing to a return value from getDynamicClassID(). For example:
- *
- * Base* polymorphic_pointer = createPolymorphicObject();
- * if (polymorphic_pointer->getDynamicClassID() ==
- * Derived::getStaticClassID()) ...
- *
- * @return The class ID for all objects of this class.
- * @stable ICU 2.0
- */
- static UClassID U_EXPORT2 getStaticClassID(void);
-
- /**
- * Returns a unique class ID POLYMORPHICALLY. Pure virtual override.
- * This method is to implement a simple version of RTTI, since not all
- * C++ compilers support genuine RTTI. Polymorphic operator==() and
- * clone() methods call this method.
- *
- * @return The class ID for this object. All objects of a
- * given class have the same class ID. Objects of
- * other classes have different class IDs.
- * @stable ICU 2.0
- */
- virtual UClassID getDynamicClassID(void) const;
-
-protected:
- //=======================================================================
- // implementation
- //=======================================================================
- /**
- * This method is the actual implementation of the next() method. All iteration
- * vectors through here. This method initializes the state machine to state 1
- * and advances through the text character by character until we reach the end
- * of the text or the state machine transitions to state 0. We update our return
- * value every time the state machine passes through a possible end state.
- * @internal
- */
- virtual int32_t handleNext(void);
-
- /**
- * removes the cache of break positions (usually in response to a change in
- * position of some sort)
- * @internal
- */
- virtual void reset(void);
-
- /**
- * init Initialize a dbbi. Common routine for use by constructors.
- * @internal
- */
- void init();
-
- /**
- * @param stackBuffer user allocated space for the new clone. If NULL new memory will be allocated.
- * If buffer is not large enough, new memory will be allocated.
- * @param BufferSize reference to size of allocated space.
- * If BufferSize == 0, a sufficient size for use in cloning will
- * be returned ('pre-flighting')
- * If BufferSize is not enough for a stack-based safe clone,
- * new memory will be allocated.
- * @param status to indicate whether the operation went on smoothly or there were errors
- * An informational status value, U_SAFECLONE_ALLOCATED_ERROR, is used if any allocations were
- * necessary.
- * @return pointer to the new clone
- * @internal
- */
- virtual BreakIterator * createBufferClone(void *stackBuffer,
- int32_t &BufferSize,
- UErrorCode &status);
-
-
-private:
- /**
- * This is the function that actually implements the dictionary-based
- * algorithm. Given the endpoints of a range of text, it uses the
- * dictionary to determine the positions of any boundaries in this
- * range. It stores all the boundary positions it discovers in
- * cachedBreakPositions so that we only have to do this work once
- * for each time we enter the range.
- * @param startPos The start position of a range of text
- * @param endPos The end position of a range of text
- * @param status The error code status
- */
- void divideUpDictionaryRange(int32_t startPos, int32_t endPos, UErrorCode &status);
+
+#ifndef U_HIDE_DEPRECATED_API
+typedef RuleBasedBreakIterator DictionaryBasedBreakIterator;
- /*
- * HSYS : Please revisit with Rich, the ctors of the DBBI class is currently
- * marked as private.
- */
- friend class DictionaryBasedBreakIteratorTables;
- friend class BreakIterator;
-};
+#endif
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/common/unicode/locid.h b/Build/source/libs/icu-xetex/common/unicode/locid.h
index aba214aa239..a3cc23b31fa 100644
--- a/Build/source/libs/icu-xetex/common/unicode/locid.h
+++ b/Build/source/libs/icu-xetex/common/unicode/locid.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -57,9 +57,9 @@
* this class:
* \htmlonly<blockquote>\endhtmlonly
* <pre>
- * . Locale( const char* language,
- * . const char* country,
- * . const char* variant);
+ * Locale( const char* language,
+ * const char* country,
+ * const char* variant);
* </pre>
* \htmlonly</blockquote>\endhtmlonly
* The first argument to the constructors is a valid <STRONG>ISO
@@ -74,8 +74,8 @@
* Code.</STRONG> These codes are the upper-case two-letter codes
* as defined by ISO-3166.
* You can find a full list of these codes at a number of sites, such as:
- * <BR><a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html">
- * http://www.iso.ch/iso/en/prods-services/iso3166ma/index.html</a>
+ * <BR><a href="http://www.iso.org/iso/en/prods-services/iso3166ma/index.html">
+ * http://www.iso.org/iso/en/prods-services/iso3166ma/index.html</a>
*
* <P>
* The third constructor requires a third argument--the <STRONG>Variant.</STRONG>
@@ -367,7 +367,7 @@ public:
* the string by calling uloc_canonicalize().
* @param name the locale ID to create from. Must not be NULL.
* @return a new locale object corresponding to the given name
- * @draft ICU 3.0
+ * @stable ICU 3.0
* @see uloc_canonicalize
*/
static Locale U_EXPORT2 createCanonical(const char* name);
@@ -446,7 +446,7 @@ public:
/**
* returns the locale's three-letter language code, as specified
- * in ISO draft standard ISO-639-2..
+ * in ISO draft standard ISO-639-2.
* @return An alias to the code, or NULL
* @stable ICU 2.0
*/
diff --git a/Build/source/libs/icu-xetex/common/unicode/normlzr.h b/Build/source/libs/icu-xetex/common/unicode/normlzr.h
index 2b1f7e61de9..7974f1ac4dd 100644
--- a/Build/source/libs/icu-xetex/common/unicode/normlzr.h
+++ b/Build/source/libs/icu-xetex/common/unicode/normlzr.h
@@ -1,7 +1,7 @@
/*
********************************************************************
* COPYRIGHT:
- * Copyright (c) 1996-2005, International Business Machines Corporation and
+ * Copyright (c) 1996-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
*/
@@ -29,6 +29,9 @@ typedef struct UCharIterator UCharIterator; /**< C typedef for struct UCharItera
U_NAMESPACE_BEGIN
/**
+ * The Normalizer class supports the standard normalization forms described in
+ * <a href="http://www.unicode.org/unicode/reports/tr15/" target="unicode">
+ * Unicode Standard Annex #15: Unicode Normalization Forms</a>.
*
* The Normalizer class consists of two parts:
* - static functions that normalize strings or test if strings are normalized
diff --git a/Build/source/libs/icu-xetex/common/unicode/platform.h.in b/Build/source/libs/icu-xetex/common/unicode/platform.h.in
index 2726ebd218a..80766a253e2 100644
--- a/Build/source/libs/icu-xetex/common/unicode/platform.h.in
+++ b/Build/source/libs/icu-xetex/common/unicode/platform.h.in
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -249,7 +249,16 @@ typedef unsigned int uint32_t;
/* Symbol import-export control */
/*===========================================================================*/
+#if defined(U_DARWIN) && defined(__GNUC__) && (__GNUC__ >= 4)
+#define USE_GCC_VISIBILITY_ATTRIBUTE 1
+#endif
+
+#ifdef USE_GCC_VISIBILITY_ATTRIBUTE
+#define U_EXPORT __attribute__((visibility("default")))
+#else
#define U_EXPORT
+#endif
+
/* U_CALLCONV is releated to U_EXPORT2 */
#define U_EXPORT2
diff --git a/Build/source/libs/icu-xetex/common/unicode/ppalmos.h b/Build/source/libs/icu-xetex/common/unicode/ppalmos.h
index a14d306b920..c15b2ceae32 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ppalmos.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ppalmos.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -270,4 +270,4 @@ typedef unsigned int uint32_t;
#define U_MAKE_IS_NMAKE 1
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/Build/source/libs/icu-xetex/common/unicode/pwin32.h b/Build/source/libs/icu-xetex/common/unicode/pwin32.h
index e31ac84d5ac..198ce8e3322 100644
--- a/Build/source/libs/icu-xetex/common/unicode/pwin32.h
+++ b/Build/source/libs/icu-xetex/common/unicode/pwin32.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -97,8 +97,12 @@
/* Define 64 bit limits */
#if !U_INT64_IS_LONG_LONG
-#define INT64_C(x) ((int64_t)x)
-#define UINT64_C(x) ((uint64_t)x)
+# ifndef INT64_C
+# define INT64_C(x) ((int64_t)x)
+# endif
+# ifndef UINT64_C
+# define UINT64_C(x) ((uint64_t)x)
+# endif
/* else use the umachine.h definition */
#endif
@@ -168,8 +172,14 @@ typedef unsigned int uint32_t;
/* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */
#define ICU_USE_THREADS 1
-/* Windows currently only runs on x86 CPUs which currently all have strong memory models. */
+/* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check mutex lock. */
+/*
+Microsoft can define _M_IX86, _M_AMD64 (before Visual Studio 8) or _M_X64 (starting in Visual Studio 8).
+Intel can define _M_IX86 or _M_X64
+*/
+#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
#define UMTX_STRONG_MEMORY_MODEL 1
+#endif
#ifndef U_DEBUG
#ifdef _DEBUG
@@ -271,7 +281,7 @@ typedef unsigned int uint32_t;
# endif
#endif
-#if defined(_MSC_VER) && defined(_M_IX86)
+#if defined(_MSC_VER) && defined(_M_IX86) && !defined(_MANAGED)
#define U_ALIGN_CODE(val) __asm align val
#else
#define U_ALIGN_CODE(val)
diff --git a/Build/source/libs/icu-xetex/common/unicode/rbbi.h b/Build/source/libs/icu-xetex/common/unicode/rbbi.h
index 1097a4e7d07..2b81c3ecf29 100644
--- a/Build/source/libs/icu-xetex/common/unicode/rbbi.h
+++ b/Build/source/libs/icu-xetex/common/unicode/rbbi.h
@@ -1,6 +1,6 @@
/*
***************************************************************************
-* Copyright (C) 1999-2005 International Business Machines Corporation *
+* Copyright (C) 1999-2006 International Business Machines Corporation *
* and others. All rights reserved. *
***************************************************************************
@@ -26,6 +26,8 @@
#include "unicode/brkiter.h"
#include "unicode/udata.h"
#include "unicode/parseerr.h"
+#include "unicode/schriter.h"
+#include "unicode/uchriter.h"
struct UTrie;
@@ -37,10 +39,14 @@ struct RBBIDataHeader;
class RuleBasedBreakIteratorTables;
class BreakIterator;
class RBBIDataWrapper;
+class UStack;
+class LanguageBreakEngine;
+class UnhandledEngine;
struct RBBIStateTable;
+
/**
*
* A subclass of BreakIterator whose behavior is specified using a list of rules.
@@ -60,10 +66,31 @@ class U_COMMON_API RuleBasedBreakIterator : public BreakIterator {
protected:
/**
- * The character iterator through which this BreakIterator accesses the text
+ * The UText through which this BreakIterator accesses the text
* @internal
*/
- CharacterIterator* fText;
+ UText *fText;
+
+ /**
+ * A character iterator that refers to the same text as the UText, above.
+ * Only included for compatibility with old API, which was based on CharacterIterators.
+ * Value may be adopted from outside, or one of fSCharIter or fDCharIter, below.
+ */
+ CharacterIterator *fCharIter;
+
+ /**
+ * When the input text is provided by a UnicodeString, this will point to
+ * a characterIterator that wraps that data. Needed only for the
+ * implementation of getText(), a backwards compatibility issue.
+ */
+ StringCharacterIterator *fSCharIter;
+
+ /**
+ * When the input text is provided by a UText, this
+ * dummy CharacterIterator over an empty string will
+ * be returned from getText()
+ */
+ UCharCharacterIterator *fDCharIter;
/**
* The rule data for this BreakIterator instance
@@ -86,20 +113,58 @@ protected:
/**
* Counter for the number of characters encountered with the "dictionary"
- * flag set. Normal RBBI iterators don't use it, although the code
- * for updating it is live. Dictionary Based break iterators (a subclass
- * of us) access this field directly.
+ * flag set.
* @internal
*/
- uint32_t fDictionaryCharCount;
+ uint32_t fDictionaryCharCount;
/**
- * Debugging flag. Trace operation of state machine when true.
+ * When a range of characters is divided up using the dictionary, the break
+ * positions that are discovered are stored here, preventing us from having
+ * to use either the dictionary or the state table again until the iterator
+ * leaves this range of text. Has the most impact for line breaking.
* @internal
*/
- static UBool fTrace;
+ int32_t* fCachedBreakPositions;
+ /**
+ * The number of elements in fCachedBreakPositions
+ * @internal
+ */
+ int32_t fNumCachedBreakPositions;
+ /**
+ * if fCachedBreakPositions is not null, this indicates which item in the
+ * cache the current iteration position refers to
+ * @internal
+ */
+ int32_t fPositionInCache;
+
+ /**
+ *
+ * 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
+ */
+ UStack *fLanguageBreakEngines;
+
+ /**
+ *
+ * If present, the special LanguageBreakEngine used for handling
+ * characters that are in the dictionary set, but not handled by any
+ * LangugageBreakEngine.
+ * @internal
+ */
+ UnhandledEngine *fUnhandledBreakEngine;
+
+ /**
+ *
+ * The type of the break iterator, or -1 if it has not been set.
+ * @internal
+ */
+ int32_t fBreakType;
+
protected:
//=======================================================================
// constructors
@@ -117,7 +182,7 @@ protected:
*/
RuleBasedBreakIterator(RBBIDataHeader* data, UErrorCode &status);
- /** @internal */
+
friend class RBBIRuleBuilder;
/** @internal */
friend class BreakIterator;
@@ -232,14 +297,31 @@ public:
//=======================================================================
/**
- * Return a CharacterIterator over the text being analyzed. This version
- * of this method returns the actual CharacterIterator we're using internally.
- * Changing the state of this iterator can have undefined consequences. If
- * you need to change it, clone it first.
+ * <p>
+ * Return a CharacterIterator over the text being analyzed.
+ * The returned character iterator is owned by the break iterator, and must
+ * not be deleted by the caller. Repeated calls to this function may
+ * return the same CharacterIterator.
+ * </p>
+ * <p>
+ * The returned character iterator must not be used concurrently with
+ * the break iterator. If concurrent operation is needed, clone the
+ * returned character iterator first and operate on the clone.
+ * </p>
+ * <p>
+ * When the break iterator is operating on text supplied via a UText,
+ * this function will fail. Lacking any way to signal failures, it
+ * returns an CharacterIterator containing no text.
+ * The function getUText() provides similar functionality,
+ * is reliable, and is more efficient.
+ * </p>
+ *
+ * TODO: deprecate this function?
+ *
* @return An iterator over the text being analyzed.
- * @stable ICU 2.0
+ * @stable ICU 2.0
*/
- virtual const CharacterIterator& getText(void) const;
+ virtual CharacterIterator& getText(void) const;
/**
@@ -292,7 +374,6 @@ public:
/**
* Sets the current iteration position to the beginning of the text.
- * (i.e., the CharacterIterator's starting offset).
* @return The offset of the beginning of the text.
* @stable ICU 2.0
*/
@@ -300,7 +381,6 @@ public:
/**
* Sets the current iteration position to the end of the text.
- * (i.e., the CharacterIterator's ending offset).
* @return The text's past-the-end offset.
* @stable ICU 2.0
*/
@@ -423,7 +503,7 @@ public:
* is the total number of status values that were available,
* not the reduced number that were actually returned.
* @see getRuleStatus
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual int32_t getRuleStatusVec(int32_t *fillInVec, int32_t capacity, UErrorCode &status);
@@ -507,33 +587,13 @@ protected:
// implementation
//=======================================================================
/**
- * This method is the actual implementation of the next() method. All iteration
- * vectors through here. This method initializes the state machine to state 1
- * and advances through the text character by character until we reach the end
- * of the text or the state machine transitions to state 0. We update our return
- * value every time the state machine passes through a possible end state.
- * @internal
- */
- virtual int32_t handleNext(void);
-
- /**
- * This method backs the iterator back up to a "safe position" in the text.
- * This is a position that we know, without any context, must be a break position.
- * The various calling methods then iterate forward from this safe position to
- * the appropriate position to return. (For more information, see the description
- * of buildBackwardsStateTable() in RuleBasedBreakIterator.Builder.)
- * @internal
- */
- virtual int32_t handlePrevious(void);
-
- /**
* Dumps caches and performs other actions associated with a complete change
- * in text or iteration position. This function is a no-op in RuleBasedBreakIterator,
- * but subclasses can and do override it.
+ * in text or iteration position.
* @internal
*/
virtual void reset(void);
+#if 0
/**
* Return true if the category lookup for this char
* indicates that it is in the set of dictionary lookup chars.
@@ -545,6 +605,19 @@ protected:
virtual UBool isDictionaryChar(UChar32);
/**
+ * Get the type of the break iterator.
+ * @internal
+ */
+ virtual int32_t getBreakType() const;
+#endif
+
+ /**
+ * Set the type of the break iterator.
+ * @internal
+ */
+ virtual void setBreakType(int32_t type);
+
+ /**
* Common initialization function, used by constructors and bufferClone.
* (Also used by DictionaryBasedBreakIterator::createBufferClone().)
* @internal
@@ -576,6 +649,30 @@ private:
int32_t handleNext(const RBBIStateTable *statetable);
/**
+ * This is the function that actually implements dictionary-based
+ * breaking. Covering at least the range from startPos to endPos,
+ * it checks for dictionary characters, and if it finds them determines
+ * the appropriate object to deal with them. It may cache found breaks in
+ * fCachedBreakPositions as it goes. It may well also look at text outside
+ * the range startPos to endPos.
+ * If going forward, endPos is the normal Unicode break result, and
+ * if goind in reverse, startPos is the normal Unicode break result
+ * @param startPos The start position of a range of text
+ * @param endPos The end position of a range of text
+ * @param reverse The call is for the reverse direction
+ * @internal
+ */
+ int32_t checkDictionary(int32_t startPos, int32_t endPos, UBool reverse);
+
+ /**
+ * This function returns the appropriate LanguageBreakEngine for a
+ * given character c.
+ * @param c A character in the dictionary set
+ * @internal
+ */
+ const LanguageBreakEngine *getLanguageBreakEngine(UChar32 c);
+
+ /**
* @internal
*/
void makeRuleStatusValid();
diff --git a/Build/source/libs/icu-xetex/common/unicode/strenum.h b/Build/source/libs/icu-xetex/common/unicode/strenum.h
index c75e4b223b6..5e956430dcc 100644
--- a/Build/source/libs/icu-xetex/common/unicode/strenum.h
+++ b/Build/source/libs/icu-xetex/common/unicode/strenum.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -184,6 +184,23 @@ public:
*/
virtual void reset(UErrorCode& status) = 0;
+ /**
+ * Compares this enumeration to other to check if both are equal
+ *
+ * @param that The other string enumeration to compare this object to
+ * @return TRUE if the enumerations are equal. FALSE if not.
+ * @draft ICU 3.6
+ */
+ virtual UBool operator==(const StringEnumeration& that)const;
+ /**
+ * Compares this enumeration to other to check if both are not equal
+ *
+ * @param that The other string enumeration to compare this object to
+ * @return TRUE if the enumerations are equal. FALSE if not.
+ * @draft ICU 3.6
+ */
+ virtual UBool operator!=(const StringEnumeration& that)const;
+
protected:
/**
* UnicodeString field for use with default implementations and subclasses.
diff --git a/Build/source/libs/icu-xetex/common/unicode/ubidi.h b/Build/source/libs/icu-xetex/common/unicode/ubidi.h
index 9cfe827b7dd..71d181cadee 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ubidi.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ubidi.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -20,20 +20,6 @@
#include "unicode/utypes.h"
#include "unicode/uchar.h"
-/*
- * javadoc-style comments are intended to be transformed into HTML
- * using DOC++ - see
- * http://www.zib.de/Visual/software/doc++/index.html .
- *
- * The HTML documentation is created with
- * doc++ -H ubidi.h
- *
- * The following #define trick allows us to do it all in one file
- * and still be able to compile it.
- */
-/*#define DOCXX_TAG*/
-/*#define BIDI_SAMPLE_CODE*/
-
/**
*\file
* \brief C API: BIDI algorithm
@@ -369,6 +355,21 @@ typedef uint8_t UBiDiLevel;
#define UBIDI_LEVEL_OVERRIDE 0x80
/**
+ * Special value which can be returned by the mapping functions when a logical
+ * index has no corresponding visual index or vice-versa. This may happen
+ * for the logical-to-visual mapping of a BiDi control when option
+ * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is specified. This can also happen
+ * for the visual-to-logical mapping of a BiDi mark (LRM or RLM) inserted
+ * by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
+ * @see ubidi_getVisualIndex
+ * @see ubidi_getVisualMap
+ * @see ubidi_getLogicalIndex
+ * @see ubidi_getLogicalMap
+ * @draft ICU 3.6
+ */
+#define UBIDI_MAP_NOWHERE (-1)
+
+/**
* <code>UBiDiDirection</code> values indicate the text direction.
* @stable ICU 2.0
*/
@@ -442,9 +443,9 @@ ubidi_open(void);
* that internal memory will be preallocated for. An attempt to access
* visual runs on an object that was not preallocated for as many runs
* as the text was actually resolved to will fail,
- * unless this value is 0, which leaves the allocation up to the implementation.<p>
+ * unless this value is 0, which leaves the allocation up to the implementation.<br><br>
* The number of runs depends on the actual text and maybe anywhere between
- * 1 and <code>maxLength</code>. It is typically small.<p>
+ * 1 and <code>maxLength</code>. It is typically small.
*
* @param pErrorCode must be a valid pointer to an error code value.
*
@@ -461,8 +462,8 @@ ubidi_openSized(int32_t maxLength, int32_t maxRunCount, UErrorCode *pErrorCode);
* <strong>Important: </strong>
* A parent <code>UBiDi</code> object must not be destroyed or reused if
* it still has children.
- * If a <code>UBiDi</code> object is the <i>child</i>
- * of another one (its <i>parent</i>), after calling
+ * If a <code>UBiDi</code> object has become the <i>child</i>
+ * of another one (its <i>parent</i>) by calling
* <code>ubidi_setLine()</code>, then the child object must
* be destroyed (closed) or reused (by calling
* <code>ubidi_setPara()</code> or <code>ubidi_setLine()</code>)
@@ -505,12 +506,24 @@ ubidi_close(UBiDi *pBiDi);
* <code>ubidi_getVisualRun()</code> gets the reordered runs, these are actually
* the runs of the logically ordered output.</p>
*
+ * <p>Calling this function with argument <code>isInverse</code> set to
+ * <code>TRUE</code> is equivalent to calling
+ * <code>ubidi_setReorderingMode</code> with argument
+ * <code>reorderingMode</code>
+ * set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
+ * Calling this function with argument <code>isInverse</code> set to
+ * <code>FALSE</code> is equivalent to calling
+ * <code>ubidi_setReorderingMode</code> with argument
+ * <code>reorderingMode</code>
+ * set to <code>#UBIDI_REORDER_DEFAULT</code>.
+ *
* @param pBiDi is a <code>UBiDi</code> object.
*
- * @param isInverse specifies "forward" or "inverse" BiDi operation
+ * @param isInverse specifies "forward" or "inverse" BiDi operation.
*
* @see ubidi_setPara
* @see ubidi_writeReordered
+ * @see ubidi_setReorderingMode
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -518,11 +531,17 @@ ubidi_setInverse(UBiDi *pBiDi, UBool isInverse);
/**
* Is this BiDi object set to perform the inverse BiDi algorithm?
+ * <p>Note: calling this function after setting the reordering mode with
+ * <code>ubidi_setReorderingMode</code> will return <code>TRUE</code> if the
+ * reordering mode was set to <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>,
+ * <code>FALSE</code> for all other values.</p>
*
* @param pBiDi is a <code>UBiDi</code> object.
* @return TRUE if the BiDi object is set to perform the inverse BiDi algorithm
+ * by handling numbers as L.
*
* @see ubidi_setInverse
+ * @see ubidi_setReorderingMode
* @stable ICU 2.0
*/
@@ -567,6 +586,373 @@ U_STABLE UBool U_EXPORT2
ubidi_isOrderParagraphsLTR(UBiDi *pBiDi);
/**
+ * <code>UBiDiReorderingMode</code> values indicate which variant of the BiDi
+ * algorithm to use.
+ *
+ * @see ubidi_setReorderingMode
+ * @draft ICU 3.6
+ */
+typedef enum UBiDiReorderingMode {
+ /** Regular Logical to Visual BiDi algorithm according to Unicode.
+ * This is a 0 value. @draft ICU 3.6 */
+ UBIDI_REORDER_DEFAULT = 0,
+ /** Logical to Visual algorithm which handles numbers in a way which
+ * mimicks the behavior of Windows XP.
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_NUMBERS_SPECIAL,
+ /** Logical to Visual algorithm grouping numbers with adjacent R characters
+ * (reversible algorithm).
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_GROUP_NUMBERS_WITH_R,
+ /** Reorder runs only to transform a Logical LTR string to the Logical RTL
+ * string with the same display, or vice-versa.<br>
+ * If this mode is set together with option
+ * <code>#UBIDI_OPTION_INSERT_MARKS</code>, some BiDi controls in the source
+ * text may be removed and other controls may be added to produce the
+ * minimum combination which has the required display.
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_RUNS_ONLY,
+ /** Visual to Logical algorithm which handles numbers like L
+ * (same algorithm as selected by <code>ubidi_setInverse(TRUE)</code>.
+ * @see ubidi_setInverse
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_INVERSE_NUMBERS_AS_L,
+ /** Visual to Logical algorithm equivalent to the regular Logical to Visual
+ * algorithm. @draft ICU 3.6 */
+ UBIDI_REORDER_INVERSE_LIKE_DIRECT,
+ /** Inverse BiDi (Visual to Logical) algorithm for the
+ * <code>UBIDI_REORDER_NUMBERS_SPECIAL</code> BiDi algorithm.
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL,
+ /** Number of values for reordering mode.
+ * @draft ICU 3.6 */
+ UBIDI_REORDER_COUNT
+} UBiDiReorderingMode;
+
+/**
+ * Modify the operation of the BiDi algorithm such that it implements some
+ * variant to the basic BiDi algorithm or approximates an "inverse BiDi"
+ * algorithm, depending on different values of the "reordering mode".
+ * This function must be called before <code>ubidi_setPara()</code>, and stays
+ * in effect until called again with a different argument.
+ *
+ * <p>The normal operation of the BiDi algorithm as described
+ * in the Unicode Standard Annex #9 is to take text stored in logical
+ * (keyboard, typing) order and to determine how to reorder it for visual
+ * rendering.</p>
+ *
+ * <p>With the reordering mode set to a value other than
+ * <code>#UBIDI_REORDER_DEFAULT</code>, this function changes the behavior of
+ * some of the subsequent functions in a way such that they implement an
+ * inverse BiDi algorithm or some other algorithm variants.</p>
+ *
+ * <p>Some legacy systems store text in visual order, and for operations
+ * with standard, Unicode-based algorithms, the text needs to be transformed
+ * into logical order. This is effectively the inverse algorithm of the
+ * described BiDi algorithm. Note that there is no standard algorithm for
+ * this "inverse BiDi", so a number of variants are implemented here.</p>
+ *
+ * <p>In other cases, it may be desirable to emulate some variant of the
+ * Logical to Visual algorithm (e.g. one used in MS Windows), or perform a
+ * Logical to Logical transformation.</p>
+ *
+ * <ul>
+ * <li>When the reordering mode is set to <code>#UBIDI_REORDER_DEFAULT</code>,
+ * the standard BiDi Logical to Visual algorithm is applied.</li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_NUMBERS_SPECIAL</code>,
+ * the algorithm used to perform BiDi transformations when calling
+ * <code>ubidi_setPara</code> should approximate the algorithm used in
+ * Microsoft Windows XP rather than strictly conform to the Unicode BiDi
+ * algorithm.
+ * <br>
+ * The differences between the basic algorithm and the algorithm addressed
+ * by this option are as follows:
+ * <ul>
+ * <li>Within text at an even embedding level, the sequence "123AB"
+ * (where AB represent R or AL letters) is transformed to "123BA" by the
+ * Unicode algorithm and to "BA123" by the Windows algorithm.</li>
+ * <li>Arabic-Indic numbers (AN) are handled by the Windows algorithm just
+ * like regular numbers (EN).</li>
+ * </ul></li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_GROUP_NUMBERS_WITH_R</code>,
+ * numbers located between LTR text and RTL text are associated with the RTL
+ * text. For instance, an LTR paragraph with content "abc 123 DEF" (where
+ * upper case letters represent RTL characters) will be transformed to
+ * "abc FED 123" (and not "abc 123 FED"), "DEF 123 abc" will be transformed
+ * to "123 FED abc" and "123 FED abc" will be transformed to "DEF 123 abc".
+ * This makes the algorithm reversible and makes it useful when round trip
+ * (from visual to logical and back to visual) must be achieved without
+ * adding LRM characters. However, this is a variation from the standard
+ * Unicode Bidi algorithm.<br>
+ * The source text should not contain BiDi control characters other than LRM
+ * or RLM.</li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_RUNS_ONLY</code>,
+ * a "Logical to Logical" transformation must be performed:
+ * <ul>
+ * <li>If the default text level of the source text (argument <code>paraLevel</code>
+ * in <code>ubidi_setPara</code>) is even, the source text will be handled as
+ * LTR logical text and will be transformed to the RTL logical text which has
+ * the same LTR visual display.</li>
+ * <li>If the default level of the source text is odd, the source text
+ * will be handled as RTL logical text and will be transformed to the
+ * LTR logical text which has the same LTR visual display.</li>
+ * </ul>
+ * This mode may be needed when logical text which is basically Arabic or
+ * Hebrew, with possible included numbers or phrases in English, has to be
+ * displayed as if it had an even embedding level (this can happen if the
+ * displaying application treats all text as if it was basically LTR.
+ * <br>
+ * This mode may also be needed in the reverse case, when logical text which is
+ * basically English, with possible included phrases in Arabic or Hebrew, has to
+ * be displayed as if it had an odd embedding level.
+ * <br>
+ * Both cases could be handled by adding LRE or RLE at the head of the text,
+ * if the display subsystem supports these formatting controls. If it does not,
+ * the problem may be handled by transforming the source text in this mode
+ * before displaying it, so that it will be displayed properly.<br>
+ * The source text should not contain BiDi control characters other than LRM
+ * or RLM.</li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>, an "inverse BiDi" algorithm
+ * is applied.
+ * Runs of text with numeric characters will be treated like LTR letters and
+ * may need to be surrounded with LRM characters when they are written in
+ * reordered sequence (the option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> can
+ * be used with function <code>ubidi_writeReordered</code> to this end. This
+ * mode is equivalent to calling <code>ubidi_setInverse()</code> with
+ * argument <code>isInverse</code> set to <code>TRUE</code>.</li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code>, the "direct" Logical to Visual
+ * BiDi algorithm is used as an approximation of an "inverse BiDi" algorithm.
+ * This mode is similar to mode <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>
+ * but is closer to the regular BiDi algorithm.
+ * <br>
+ * For example, an LTR paragraph with the content "FED 123 456 CBA" (where
+ * upper case represents RTL characters) will be transformed to
+ * "ABC 456 123 DEF", as opposed to "DEF 123 456 ABC"
+ * with mode <code>UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.<br>
+ * When used in conjunction with option
+ * <code>#UBIDI_OPTION_INSERT_MARKS</code>, this mode generally
+ * adds BiDi marks to the output significantly more sparingly than mode
+ * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> with option
+ * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to
+ * <code>ubidi_writeReordered</code>.</li>
+ *
+ * <li>When the reordering mode is set to
+ * <code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code>, the Logical to Visual
+ * BiDi algorithm used in Windows XP is used as an approximation of an
+ * "inverse BiDi" algorithm.
+ * <br>
+ * For example, an LTR paragraph with the content "abc FED123" (where
+ * upper case represents RTL characters) will be transformed to
+ * "abc 123DEF.</li>
+ * </ul>
+ *
+ * <p>In all the reordering modes specifying an "inverse BiDi" algorithm
+ * (i.e. those with a name starting with <code>UBIDI_REORDER_INVERSE</code>),
+ * output runs should be retrieved using
+ * <code>ubidi_getVisualRun()</code>, and the output text with
+ * <code>ubidi_writeReordered()</code>. The caller should keep in mind that in
+ * "inverse BiDi" modes the input is actually visually ordered text and
+ * reordered output returned by <code>ubidi_getVisualRun()</code> or
+ * <code>ubidi_writeReordered()</code> are actually runs or character string
+ * of logically ordered output.<br>
+ * For all the "inverse BiDi" modes, the source text should not contain
+ * BiDi control characters other than LRM or RLM.</p>
+ *
+ * <p>Note that option <code>#UBIDI_OUTPUT_REVERSE</code> of
+ * <code>ubidi_writeReordered</code> has no useful meaning and should not be
+ * used in conjunction with any value of the reordering mode specifying
+ * "inverse BiDi" or with value <code>UBIDI_REORDER_RUNS_ONLY</code>.
+ *
+ * @param pBiDi is a <code>UBiDi</code> object.
+ * @param reorderingMode specifies the required variant of the BiDi algorithm.
+ *
+ * @see UBiDiReorderingMode
+ * @see ubidi_setInverse
+ * @see ubidi_setPara
+ * @see ubidi_writeReordered
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ubidi_setReorderingMode(UBiDi *pBiDi, UBiDiReorderingMode reorderingMode);
+
+/**
+ * What is the requested reordering mode for a given BiDi object?
+ *
+ * @param pBiDi is a <code>UBiDi</code> object.
+ * @return the current reordering mode of the BiDi object
+ * @see ubidi_setReorderingMode
+ * @draft ICU 3.6
+ */
+U_DRAFT UBiDiReorderingMode U_EXPORT2
+ubidi_getReorderingMode(UBiDi *pBiDi);
+
+/**
+ * <code>UBiDiReorderingOption</code> values indicate which options are
+ * specified to affect the BiDi algorithm.
+ *
+ * @see ubidi_setReorderingOptions
+ * @draft ICU 3.6
+ */
+typedef enum UBiDiReorderingOption {
+ /**
+ * option value for <code>ubidi_setReorderingOptions</code>:
+ * disable all the options which can be set with this function
+ * @see ubidi_setReorderingOptions
+ * @draft ICU 3.6
+ */
+ UBIDI_OPTION_DEFAULT = 0,
+
+ /**
+ * option bit for <code>ubidi_setReorderingOptions</code>:
+ * insert BiDi marks (LRM or RLM) when needed to ensure correct result of
+ * a reordering to a Logical order
+ *
+ * <p>This option must be set or reset before calling
+ * <code>ubidi_setPara</code>.</p>
+ *
+ * <p>This option is significant only with reordering modes which generate
+ * a result with Logical order, specifically:</p>
+ * <ul>
+ * <li><code>#UBIDI_REORDER_RUNS_ONLY</code></li>
+ * <li><code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code></li>
+ * <li><code>#UBIDI_REORDER_INVERSE_LIKE_DIRECT</code></li>
+ * <li><code>#UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL</code></li>
+ * </ul>
+ *
+ * <p>If this option is set in conjunction with reordering mode
+ * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> or with calling
+ * <code>ubidi_setInverse(TRUE)</code>, it implies
+ * option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code>
+ * in calls to function <code>ubidi_writeReordered()</code>.</p>
+ *
+ * <p>For other reordering modes, a minimum number of LRM or RLM characters
+ * will be added to the source text after reordering it so as to ensure
+ * round trip, i.e. when applying the inverse reordering mode on the
+ * resulting logical text with removal of BiDi marks
+ * (option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> set before calling
+ * <code>ubidi_setPara()</code> or option <code>#UBIDI_REMOVE_BIDI_CONTROLS</code>
+ * in <code>ubidi_writeReordered</code>), the result will be identical to the
+ * source text in the first transformation.
+ *
+ * <p>This option will be ignored if specified together with option
+ * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>. It inhibits option
+ * <code>UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to function
+ * <code>ubidi_writeReordered()</code> and it implies option
+ * <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls to function
+ * <code>ubidi_writeReordered()</code> if the reordering mode is
+ * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code>.</p>
+ *
+ * @see ubidi_setReorderingMode
+ * @see ubidi_setReorderingOptions
+ * @draft ICU 3.6
+ */
+ UBIDI_OPTION_INSERT_MARKS = 1,
+
+ /**
+ * option bit for <code>ubidi_setReorderingOptions</code>:
+ * remove BiDi control characters
+ *
+ * <p>This option must be set or reset before calling
+ * <code>ubidi_setPara</code>.</p>
+ *
+ * <p>This option nullifies option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
+ * It inhibits option <code>#UBIDI_INSERT_LRM_FOR_NUMERIC</code> in calls
+ * to function <code>ubidi_writeReordered()</code> and it implies option
+ * <code>#UBIDI_REMOVE_BIDI_CONTROLS</code> in calls to that function.</p>
+ *
+ * @see ubidi_setReorderingMode
+ * @see ubidi_setReorderingOptions
+ * @draft ICU 3.6
+ */
+ UBIDI_OPTION_REMOVE_CONTROLS = 2,
+
+ /**
+ * option bit for <code>ubidi_setReorderingOptions</code>:
+ * process the output as part of a stream to be continued
+ *
+ * <p>This option must be set or reset before calling
+ * <code>ubidi_setPara</code>.</p>
+ *
+ * <p>This option specifies that the caller is interested in processing large
+ * text object in parts.
+ * The results of the successive calls are expected to be concatenated by the
+ * caller. Only the call for the last part will have this option bit off.</p>
+ *
+ * <p>When this option bit is on, <code>ubidi_setPara()</code> may process
+ * less than the full source text in order to truncate the text at a meaningful
+ * boundary. The caller should call <code>ubidi_getProcessedLength()</code>
+ * immediately after calling <code>ubidi_setPara()</code> in order to
+ * determine how much of the source text has been processed.
+ * Source text beyond that length should be resubmitted in following calls to
+ * <code>ubidi_setPara</code>. The processed length may be less than
+ * the length of the source text if a character preceding the last character of
+ * the source text constitutes a reasonable boundary (like a block separator)
+ * for text to be continued.<br>
+ * If the last character of the source text constitutes a reasonable
+ * boundary, the whole text will be processed at once.<br>
+ * If nowhere in the source text there exists
+ * such a reasonable boundary, the processed length will be zero.<br>
+ * The caller should check for such an occurrence and do one of the following:
+ * <ul><li>submit a larger amount of text with a better chance to include
+ * a reasonable boundary.</li>
+ * <li>resubmit the same text after turning off option
+ * <code>UBIDI_OPTION_STREAMING</code>.</li></ul>
+ * In all cases, this option should be turned off before processing the last
+ * part of the text.</p>
+ *
+ * <p>When the <code>UBIDI_OPTION_STREAMING</code> option is used,
+ * it is recommended to call <code>ubidi_orderParagraphsLTR()</code> with
+ * argument <code>orderParagraphsLTR</code> set to <code>TRUE</code> before
+ * calling <code>ubidi_setPara</code> so that later paragraphs may be
+ * concatenated to previous paragraphs on the right.</p>
+ *
+ * @see ubidi_setReorderingMode
+ * @see ubidi_setReorderingOptions
+ * @see ubidi_getProcessedLength
+ * @see ubidi_orderParagraphsLTR
+ * @draft ICU 3.6
+ */
+ UBIDI_OPTION_STREAMING = 4
+} UBiDiReorderingOption;
+
+/**
+ * Specify which of the reordering options
+ * should be applied during BiDi transformations.
+ *
+ * @param pBiDi is a <code>UBiDi</code> object.
+ * @param reorderingOptions is a combination of zero or more of the following
+ * options:
+ * <code>#UBIDI_OPTION_DEFAULT</code>, <code>#UBIDI_OPTION_INSERT_MARKS</code>,
+ * <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>, <code>#UBIDI_OPTION_STREAMING</code>.
+ *
+ * @see ubidi_getReorderingOptions
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ubidi_setReorderingOptions(UBiDi *pBiDi, uint32_t reorderingOptions);
+
+/**
+ * What are the reordering options applied to a given BiDi object?
+ *
+ * @param pBiDi is a <code>UBiDi</code> object.
+ * @return the current reordering options of the BiDi object
+ * @see ubidi_setReorderingOptions
+ * @draft ICU 3.6
+ */
+U_DRAFT uint32_t U_EXPORT2
+ubidi_getReorderingOptions(UBiDi *pBiDi);
+
+/**
* Perform the Unicode BiDi algorithm. It is defined in the
* <a href="http://www.unicode.org/unicode/reports/tr9/">Unicode Standard Anned #9</a>,
* version 13,
@@ -597,11 +983,10 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi);
* which will be set to contain the reordering information,
* especially the resolved levels for all the characters in <code>text</code>.
*
- * @param text is a pointer to the text that the
- * BiDi algorithm will be performed on
- * <strong>The text must be (at least) <code>length</code> long.</strong>
+ * @param text is a pointer to the text that the BiDi algorithm will be performed on.
* This pointer is stored in the UBiDi object and can be retrieved
- * with <code>ubidi_getText()</code>.
+ * with <code>ubidi_getText()</code>.<br>
+ * <strong>Note:</strong> the text must be (at least) <code>length</code> long.
*
* @param length is the length of the text; if <code>length==-1</code> then
* the text must be zero-terminated.
@@ -610,24 +995,24 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi);
* it is typically 0 (LTR) or 1 (RTL).
* If the function shall determine the paragraph level from the text,
* then <code>paraLevel</code> can be set to
- * either <code>UBIDI_DEFAULT_LTR</code>
- * or <code>UBIDI_DEFAULT_RTL</code>; if the text contains multiple
+ * either <code>#UBIDI_DEFAULT_LTR</code>
+ * or <code>#UBIDI_DEFAULT_RTL</code>; if the text contains multiple
* paragraphs, the paragraph level shall be determined separately for
* each paragraph; if a paragraph does not include any strongly typed
* character, then the desired default is used (0 for LTR or 1 for RTL).
- * Any other value between 0 and <code>UBIDI_MAX_EXPLICIT_LEVEL</code> is also valid,
- * with odd levels indicating RTL.
+ * Any other value between 0 and <code>#UBIDI_MAX_EXPLICIT_LEVEL</code>
+ * is also valid, with odd levels indicating RTL.
*
* @param embeddingLevels (in) may be used to preset the embedding and override levels,
* ignoring characters like LRE and PDF in the text.
* A level overrides the directional property of its corresponding
* (same index) character if the level has the
- * <code>UBIDI_LEVEL_OVERRIDE</code> bit set.<p>
+ * <code>#UBIDI_LEVEL_OVERRIDE</code> bit set.<br><br>
* Except for that bit, it must be
* <code>paraLevel<=embeddingLevels[]<=UBIDI_MAX_EXPLICIT_LEVEL</code>,
* with one exception: a level of zero may be specified for a paragraph
* separator even if <code>paraLevel>0</code> when multiple paragraphs
- * are submitted in the same call to <code>ubidi_setPara()</code>.<p>
+ * are submitted in the same call to <code>ubidi_setPara()</code>.<br><br>
* <strong>Caution: </strong>A copy of this pointer, not of the levels,
* will be stored in the <code>UBiDi</code> object;
* the <code>embeddingLevels</code> array must not be
@@ -635,11 +1020,11 @@ ubidi_isOrderParagraphsLTR(UBiDi *pBiDi);
* and the <code>embeddingLevels</code>
* should not be modified to avoid unexpected results on subsequent BiDi operations.
* However, the <code>ubidi_setPara()</code> and
- * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<p>
+ * <code>ubidi_setLine()</code> functions may modify some or all of the levels.<br><br>
* After the <code>UBiDi</code> object is reused or destroyed, the caller
- * must take care of the deallocation of the <code>embeddingLevels</code> array.<p>
- * <strong>The <code>embeddingLevels</code> array must be
- * at least <code>length</code> long.</strong>
+ * must take care of the deallocation of the <code>embeddingLevels</code> array.<br><br>
+ * <strong>Note:</strong> the <code>embeddingLevels</code> array must be
+ * at least <code>length</code> long.
*
* @param pErrorCode must be a valid pointer to an error code value.
* @stable ICU 2.0
@@ -692,6 +1077,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length,
* @param pErrorCode must be a valid pointer to an error code value.
*
* @see ubidi_setPara
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -776,7 +1162,7 @@ ubidi_countParagraphs(UBiDi *pBiDi);
* @param pBiDi is the paragraph or line <code>UBiDi</code> object.
*
* @param charIndex is the index of a character within the text, in the
- * range <code>[0..ubidi_getLength(pBiDi)-1]</code>.
+ * range <code>[0..ubidi_getProcessedLength(pBiDi)-1]</code>.
*
* @param pParaStart will receive the index of the first character of the
* paragraph in the text.
@@ -797,6 +1183,8 @@ ubidi_countParagraphs(UBiDi *pBiDi);
* @param pErrorCode must be a valid pointer to an error code value.
*
* @return The index of the paragraph containing the specified position.
+ *
+ * @see ubidi_getProcessedLength
* @stable ICU 3.4
*/
U_STABLE int32_t U_EXPORT2
@@ -846,6 +1234,7 @@ ubidi_getParagraphByIndex(const UBiDi *pBiDi, int32_t paraIndex,
* @return The level for the character at charIndex.
*
* @see UBiDiLevel
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE UBiDiLevel U_EXPORT2
@@ -866,6 +1255,7 @@ ubidi_getLevelAt(const UBiDi *pBiDi, int32_t charIndex);
* or <code>NULL</code> if an error occurs.
*
* @see UBiDiLevel
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE const UBiDiLevel * U_EXPORT2
@@ -891,6 +1281,8 @@ ubidi_getLevels(UBiDi *pBiDi, UErrorCode *pErrorCode);
* @param pLevel will receive the level of the run.
* This pointer can be <code>NULL</code> if this
* value is not necessary.
+ *
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -976,6 +1368,10 @@ ubidi_getVisualRun(UBiDi *pBiDi, int32_t runIndex,
* <code>UBiDi</code> object, then calling
* <code>ubidi_getLogicalMap()</code> is more efficient.<p>
*
+ * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
+ * visual position because the corresponding text character is a BiDi control
+ * removed from output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
+ * <p>
* Note that in right-to-left runs, this mapping places
* modifier letters before base characters and second surrogates
* before first ones.
@@ -990,6 +1386,7 @@ ubidi_getVisualRun(UBiDi *pBiDi, int32_t runIndex,
*
* @see ubidi_getLogicalMap
* @see ubidi_getLogicalIndex
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE int32_t U_EXPORT2
@@ -1001,6 +1398,10 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode)
* <code>UBiDi</code> object, then calling
* <code>ubidi_getVisualMap()</code> is more efficient.<p>
*
+ * The value returned may be <code>#UBIDI_MAP_NOWHERE</code> if there is no
+ * logical position because the corresponding text character is a BiDi mark
+ * inserted in the output by option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
+ * <p>
* This is the inverse function to <code>ubidi_getVisualIndex()</code>.
*
* @param pBiDi is the paragraph or line <code>UBiDi</code> object.
@@ -1013,6 +1414,7 @@ ubidi_getVisualIndex(UBiDi *pBiDi, int32_t logicalIndex, UErrorCode *pErrorCode)
*
* @see ubidi_getVisualMap
* @see ubidi_getVisualIndex
+ * @see ubidi_getResultLength
* @stable ICU 2.0
*/
U_STABLE int32_t U_EXPORT2
@@ -1021,18 +1423,27 @@ ubidi_getLogicalIndex(UBiDi *pBiDi, int32_t visualIndex, UErrorCode *pErrorCode)
/**
* Get a logical-to-visual index map (array) for the characters in the UBiDi
* (paragraph or line) object.
+ * <p>
+ * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
+ * corresponding text characters are BiDi controls removed from the visual
+ * output by the option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code>.
*
* @param pBiDi is the paragraph or line <code>UBiDi</code> object.
*
- * @param indexMap is a pointer to an array of <code>ubidi_getLength()</code>
+ * @param indexMap is a pointer to an array of <code>ubidi_getProcessedLength()</code>
* indexes which will reflect the reordering of the characters.
- * The array does not need to be initialized.<p>
- * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.<p>
+ * If option <code>#UBIDI_OPTION_INSERT_MARKS</code> is set, the number
+ * of elements allocated in <code>indexMap</code> must be no less than
+ * <code>ubidi_getResultLength()</code>.
+ * The array does not need to be initialized.<br><br>
+ * The index map will result in <code>indexMap[logicalIndex]==visualIndex</code>.
*
* @param pErrorCode must be a valid pointer to an error code value.
*
* @see ubidi_getVisualMap
* @see ubidi_getVisualIndex
+ * @see ubidi_getProcessedLength
+ * @see ubidi_getResultLength
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -1041,18 +1452,27 @@ ubidi_getLogicalMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode);
/**
* Get a visual-to-logical index map (array) for the characters in the UBiDi
* (paragraph or line) object.
+ * <p>
+ * Some values in the map may be <code>#UBIDI_MAP_NOWHERE</code> if the
+ * corresponding text characters are BiDi marks inserted in the visual output
+ * by the option <code>#UBIDI_OPTION_INSERT_MARKS</code>.
*
* @param pBiDi is the paragraph or line <code>UBiDi</code> object.
*
- * @param indexMap is a pointer to an array of <code>ubidi_getLength()</code>
+ * @param indexMap is a pointer to an array of <code>ubidi_getResultLength()</code>
* indexes which will reflect the reordering of the characters.
- * The array does not need to be initialized.<p>
- * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.<p>
+ * If option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> is set, the number
+ * of elements allocated in <code>indexMap</code> must be no less than
+ * <code>ubidi_getProcessedLength()</code>.
+ * The array does not need to be initialized.<br><br>
+ * The index map will result in <code>indexMap[visualIndex]==logicalIndex</code>.
*
* @param pErrorCode must be a valid pointer to an error code value.
*
* @see ubidi_getLogicalMap
* @see ubidi_getLogicalIndex
+ * @see ubidi_getProcessedLength
+ * @see ubidi_getResultLength
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -1062,7 +1482,7 @@ ubidi_getVisualMap(UBiDi *pBiDi, int32_t *indexMap, UErrorCode *pErrorCode);
* This is a convenience function that does not use a UBiDi object.
* It is intended to be used for when an application has determined the levels
* of objects (character sequences) and just needs to have them reordered (L2).
- * This is equivalent to using <code>ubidi_getLogicalMap</code> on a
+ * This is equivalent to using <code>ubidi_getLogicalMap()</code> on a
* <code>UBiDi</code> object.
*
* @param levels is an array with <code>length</code> levels that have been determined by
@@ -1085,7 +1505,7 @@ ubidi_reorderLogical(const UBiDiLevel *levels, int32_t length, int32_t *indexMap
* This is a convenience function that does not use a UBiDi object.
* It is intended to be used for when an application has determined the levels
* of objects (character sequences) and just needs to have them reordered (L2).
- * This is equivalent to using <code>ubidi_getVisualMap</code> on a
+ * This is equivalent to using <code>ubidi_getVisualMap()</code> on a
* <code>UBiDi</code> object.
*
* @param levels is an array with <code>length</code> levels that have been determined by
@@ -1106,16 +1526,29 @@ ubidi_reorderVisual(const UBiDiLevel *levels, int32_t length, int32_t *indexMap)
/**
* Invert an index map.
- * The one-to-one index mapping of the first map is inverted and written to
+ * The index mapping of the first map is inverted and written to
* the second one.
*
* @param srcMap is an array with <code>length</code> indexes
- * which define the original mapping.
- *
- * @param destMap is an array with <code>length</code> indexes
- * which will be filled with the inverse mapping.
+ * which defines the original mapping from a source array containing
+ * <code>length</code> elements to a destination array.
+ * All indexes must be >=0 or equal to <code>UBIDI_MAP_NOWHERE</code>.
+ * This special value means that the corresponding elements in the source
+ * array have no matching element in the destination array.
+ * Some indexes may have a value >= <code>length</code>, if the
+ * destination array has more elements than the source array.
+ * There must be no duplicate indexes (two or more indexes with the
+ * same value except <code>UBIDI_MAP_NOWHERE</code>).
+ *
+ * @param destMap is an array with a number of indexes equal to 1 + the highest
+ * value in <code>srcMap</code>.
+ * <code>destMap</code> will be filled with the inverse mapping.
+ * Elements of <code>destMap</code> which have no matching elements in
+ * <code>srcMap</code> will receive an index equal to
+ * <code>UBIDI_MAP_NOWHERE</code>
*
* @param length is the length of each array.
+ * @See UBIDI_MAP_NOWHERE
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -1147,6 +1580,9 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length);
* surround the run with LRMs if necessary;
* this is part of the approximate "inverse BiDi" algorithm
*
+ * <p>This option does not imply corresponding adjustment of the index
+ * mappings.</p>
+ *
* @see ubidi_setInverse
* @see ubidi_writeReordered
* @stable ICU 2.0
@@ -1156,7 +1592,10 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length);
/**
* option bit for ubidi_writeReordered():
* remove BiDi control characters
- * (this does not affect UBIDI_INSERT_LRM_FOR_NUMERIC)
+ * (this does not affect #UBIDI_INSERT_LRM_FOR_NUMERIC)
+ *
+ * <p>This option does not imply corresponding adjustment of the index
+ * mappings.</p>
*
* @see ubidi_writeReordered
* @stable ICU 2.0
@@ -1180,10 +1619,181 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length);
#define UBIDI_OUTPUT_REVERSE 16
/**
+ * Get the length of the source text processed by the last call to
+ * <code>ubidi_setPara()</code>. This length may be different from the length
+ * of the source text if option <code>#UBIDI_OPTION_STREAMING</code>
+ * has been set.
+ * <br>
+ * Note that whenever the length of the text affects the execution or the
+ * result of a function, it is the processed length which must be considered,
+ * except for <code>ubidi_setPara</code> (which receives unprocessed source
+ * text) and <code>ubidi_getLength</code> (which returns the original length
+ * of the source text).<br>
+ * In particular, the processed length is the one to consider in the following
+ * cases:
+ * <ul>
+ * <li>maximum value of the <code>limit</code> argument of
+ * <code>ubidi_setLine</code></li>
+ * <li>maximum value of the <code>charIndex</code> argument of
+ * <code>ubidi_getParagraph</code></li>
+ * <li>maximum value of the <code>charIndex</code> argument of
+ * <code>ubidi_getLevelAt</code></li>
+ * <li>number of elements in the array returned by <code>ubidi_getLevels</code></li>
+ * <li>maximum value of the <code>logicalStart</code> argument of
+ * <code>ubidi_getLogicalRun</code></li>
+ * <li>maximum value of the <code>logicalIndex</code> argument of
+ * <code>ubidi_getVisualIndex</code></li>
+ * <li>number of elements filled in the <code>*indexMap</code> argument of
+ * <code>ubidi_getLogicalMap</code></li>
+ * <li>length of text processed by <code>ubidi_writeReordered</code></li>
+ * </ul>
+ *
+ * @param pBiDi is the paragraph <code>UBiDi</code> object.
+ *
+ * @return The length of the part of the source text processed by
+ * the last call to <code>ubidi_setPara</code>.
+ * @see ubidi_setPara
+ * @see UBIDI_OPTION_STREAMING
+ * @draft ICU 3.6
+ */
+U_DRAFT int32_t U_EXPORT2
+ubidi_getProcessedLength(const UBiDi *pBiDi);
+
+/**
+ * Get the length of the reordered text resulting from the last call to
+ * <code>ubidi_setPara()</code>. This length may be different from the length
+ * of the source text if option <code>#UBIDI_OPTION_INSERT_MARKS</code>
+ * or option <code>#UBIDI_OPTION_REMOVE_CONTROLS</code> has been set.
+ * <br>
+ * This resulting length is the one to consider in the following cases:
+ * <ul>
+ * <li>maximum value of the <code>visualIndex</code> argument of
+ * <code>ubidi_getLogicalIndex</code></li>
+ * <li>number of elements of the <code>*indexMap</code> argument of
+ * <code>ubidi_getVisualMap</code></li>
+ * </ul>
+ * Note that this length stays identical to the source text length if
+ * BiDi marks are inserted or removed using option bits of
+ * <code>ubidi_writeReordered</code>, or if option
+ * <code>#UBIDI_REORDER_INVERSE_NUMBERS_AS_L</code> has been set.
+ *
+ * @param pBiDi is the paragraph <code>UBiDi</code> object.
+ *
+ * @return The length of the reordered text resulting from
+ * the last call to <code>ubidi_setPara</code>.
+ * @see ubidi_setPara
+ * @see UBIDI_OPTION_INSERT_MARKS
+ * @see UBIDI_OPTION_REMOVE_CONTROLS
+ * @draft ICU 3.6
+ */
+U_DRAFT int32_t U_EXPORT2
+ubidi_getResultLength(const UBiDi *pBiDi);
+
+U_CDECL_BEGIN
+/**
+ * value returned by <code>UBiDiClassCallback</code> callbacks when
+ * there is no need to override the standard BiDi class for a given code point.
+ * @see UBiDiClassCallback
+ * @draft ICU 3.6
+ */
+#define U_BIDI_CLASS_DEFAULT U_CHAR_DIRECTION_COUNT
+
+/**
+ * Callback type declaration for overriding default BiDi class values with
+ * custom ones.
+ * <p>Usually, the function pointer will be propagated to a <code>UBiDi</code>
+ * object by calling the <code>ubidi_setClassCallback()</code> function;
+ * then the callback will be invoked by the UBA implementation any time the
+ * class of a character is to be determined.</p>
+ *
+ * @param context is a pointer to the callback private data.
+ *
+ * @param c is the code point to get a BiDi class for.
+ *
+ * @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</code> if the standard BiDi class value
+ * for <code>c</code> is to be used.
+ * @see ubidi_setClassCallback
+ * @see ubidi_getClassCallback
+ * @draft ICU 3.6
+ */
+typedef UCharDirection U_CALLCONV
+UBiDiClassCallback(const void *context, UChar32 c);
+
+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</code>, that value is used;
+ * otherwise the default class determination mechanism is invoked.</p>
+ *
+ * @param pBiDi is the paragraph <code>UBiDi</code> object.
+ *
+ * @param c is the code point whose BiDi class must be retrieved.
+ *
+ * @return The BiDi class for character <code>c</code> based
+ * on the given <code>pBiDi</code> instance.
+ * @see UBiDiClassCallback
+ * @draft ICU 3.6
+ */
+U_DRAFT UCharDirection U_EXPORT2
+ubidi_getCustomizedClass(UBiDi *pBiDi, UChar32 c);
+
+/**
+ * Set the callback function and callback data used by the UBA
+ * implementation for BiDi class determination.
+ * <p>This may be useful for assigning BiDi classes to PUA characters, or
+ * for special application needs. For instance, an application may want to
+ * handle all spaces like L or R characters (according to the base direction)
+ * when creating the visual ordering of logical lines which are part of a report
+ * organized in columns: there should not be interaction between adjacent
+ * cells.<p>
+ *
+ * @param pBiDi is the paragraph <code>UBiDi</code> object.
+ *
+ * @param newFn is the new callback function pointer.
+ *
+ * @param newContext is the new callback context pointer. This can be NULL.
+ *
+ * @param oldFn fillin: Returns the old callback function pointer. This can be
+ * NULL.
+ *
+ * @param oldContext fillin: Returns the old callback's context. This can be
+ * NULL.
+ *
+ * @param pErrorCode must be a valid pointer to an error code value.
+ *
+ * @see ubidi_getClassCallback
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ubidi_setClassCallback(UBiDi *pBiDi, UBiDiClassCallback *newFn,
+ const void *newContext, UBiDiClassCallback **oldFn,
+ const void **oldContext, UErrorCode *pErrorCode);
+
+/**
+ * Get the current callback function used for BiDi class determination.
+ *
+ * @param pBiDi is the paragraph <code>UBiDi</code> object.
+ *
+ * @param fn fillin: Returns the callback function pointer.
+ *
+ * @param context fillin: Returns the callback's private context.
+ *
+ * @see ubidi_setClassCallback
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ubidi_getClassCallback(UBiDi *pBiDi, UBiDiClassCallback **fn, const void **context);
+
+/**
* Take a <code>UBiDi</code> object containing the reordering
* information for a piece of text (one or more paragraphs) set by
- * <code>ubidi_setPara()</code> or for a line of text set by <code>ubidi_setLine()</code>
- * and write a reordered string to the destination buffer.
+ * <code>ubidi_setPara()</code> or for a line of text set by
+ * <code>ubidi_setLine()</code> and write a reordered string to the
+ * destination buffer.
*
* This function preserves the integrity of characters with multiple
* code units and (optionally) modifier letters.
@@ -1196,20 +1806,14 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length);
* characters; see the description of the <code>destSize</code>
* and <code>options</code> parameters and of the option bit flags.
*
- * @see UBIDI_DO_MIRRORING
- * @see UBIDI_INSERT_LRM_FOR_NUMERIC
- * @see UBIDI_KEEP_BASE_COMBINING
- * @see UBIDI_OUTPUT_REVERSE
- * @see UBIDI_REMOVE_BIDI_CONTROLS
- *
* @param pBiDi A pointer to a <code>UBiDi</code> object that
* is set by <code>ubidi_setPara()</code> or
* <code>ubidi_setLine()</code> and contains the reordering
* information for the text that it was defined for,
- * as well as a pointer to that text.
- * <p>The text was aliased (only the pointer was stored
+ * as well as a pointer to that text.<br><br>
+ * The text was aliased (only the pointer was stored
* without copying the contents) and must not have been modified
- * since the <code>ubidi_setPara()</code> call.</p>
+ * since the <code>ubidi_setPara()</code> call.
*
* @param dest A pointer to where the reordered text is to be copied.
* The source text and <code>dest[destSize]</code>
@@ -1245,6 +1849,8 @@ ubidi_invertMap(const int32_t *srcMap, int32_t *destMap, int32_t length);
* @param pErrorCode must be a valid pointer to an error code value.
*
* @return The length of the output string.
+ *
+ * @see ubidi_getProcessedLength
* @stable ICU 2.0
*/
U_STABLE int32_t U_EXPORT2
diff --git a/Build/source/libs/icu-xetex/common/unicode/ubrk.h b/Build/source/libs/icu-xetex/common/unicode/ubrk.h
index f4e734aa5c4..39f25cf8833 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ubrk.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ubrk.h
@@ -1,6 +1,8 @@
/*
-* Copyright (C) 1996-2005, International Business Machines Corporation and others. All Rights Reserved.
-*****************************************************************************************
+******************************************************************************
+* Copyright (C) 1996-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
+******************************************************************************
*/
#ifndef UBRK_H
@@ -37,22 +39,22 @@
* of boundaries in text. Pointer to a UBreakIterator maintain a
* current position and scan over text returning the index of characters
* where boundaries occur.
- * <P>
+ * <p>
* Line boundary analysis determines where a text string can be broken
* when line-wrapping. The mechanism correctly handles punctuation and
* hyphenated words.
- * <P>
+ * <p>
* Sentence boundary analysis allows selection with correct
* interpretation of periods within numbers and abbreviations, and
* trailing punctuation marks such as quotation marks and parentheses.
- * <P>
+ * <p>
* Word boundary analysis is used by search and replace functions, as
* well as within text editing applications that allow the user to
* select words with a double click. Word selection provides correct
* interpretation of punctuation marks within and following
* words. Characters that are not part of a word, such as symbols or
* punctuation marks, have word-breaks on both sides.
- * <P>
+ * <p>
* Character boundary analysis allows users to interact with
* characters as they expect to, for example, when moving the cursor
* through a text string. Character boundary analysis provides correct
@@ -60,140 +62,37 @@
* character is stored. For example, an accented character might be
* stored as a base character and a diacritical mark. What users
* consider to be a character can differ between languages.
- * <P>
+ * <p>
* Title boundary analysis locates all positions,
* typically starts of words, that should be set to Title Case
* when title casing the text.
- * <P>
- *
- * This is the interface for all text boundaries.
- * <P>
- * Examples:
- * <P>
- * Helper function to output text
- * <pre>
- * \code
- * void printTextRange(UChar* str, int32_t start, int32_t end ) {
- * UChar* result;
- * UChar* temp;
- * const char* res;
- * temp=(UChar*)malloc(sizeof(UChar) * ((u_strlen(str)-start)+1));
- * result=(UChar*)malloc(sizeof(UChar) * ((end-start)+1));
- * u_strcpy(temp, &str[start]);
- * u_strncpy(result, temp, end-start);
- * res=(char*)malloc(sizeof(char) * (u_strlen(result)+1));
- * u_austrcpy(res, result);
- * printf("%s\n", res);
- * }
- * \endcode
- * </pre>
- * Print each element in order:
- * <pre>
- * \code
- * void printEachForward( UBreakIterator* boundary, UChar* str) {
- * int32_t end;
- * int32_t start = ubrk_first(boundary);
- * for (end = ubrk_next(boundary)); end != UBRK_DONE; start = end, end = ubrk_next(boundary)) {
- * printTextRange(str, start, end );
- * }
- * }
- * \endcode
- * </pre>
- * Print each element in reverse order:
- * <pre>
- * \code
- * void printEachBackward( UBreakIterator* boundary, UChar* str) {
- * int32_t start;
- * int32_t end = ubrk_last(boundary);
- * for (start = ubrk_previous(boundary); start != UBRK_DONE; end = start, start =ubrk_previous(boundary)) {
- * printTextRange( str, start, end );
- * }
- * }
- * \endcode
- * </pre>
- * Print first element
- * <pre>
- * \code
- * void printFirst(UBreakIterator* boundary, UChar* str) {
- * int32_t end;
- * int32_t start = ubrk_first(boundary);
- * end = ubrk_next(boundary);
- * printTextRange( str, start, end );
- * }
- * \endcode
- * </pre>
- * Print last element
- * <pre>
- * \code
- * void printLast(UBreakIterator* boundary, UChar* str) {
- * int32_t start;
- * int32_t end = ubrk_last(boundary);
- * start = ubrk_previous(boundary);
- * printTextRange(str, start, end );
- * }
- * \endcode
- * </pre>
- * Print the element at a specified position
- * <pre>
- * \code
- * void printAt(UBreakIterator* boundary, int32_t pos , UChar* str) {
- * int32_t start;
- * int32_t end = ubrk_following(boundary, pos);
- * start = ubrk_previous(boundary);
- * printTextRange(str, start, end );
- * }
- * \endcode
- * </pre>
- * Creating and using text boundaries
- * <pre>
- * \code
- * void BreakIterator_Example( void ) {
- * UBreakIterator* boundary;
- * UChar *stringToExamine;
- * stringToExamine=(UChar*)malloc(sizeof(UChar) * (strlen("Aaa bbb ccc. Ddd eee fff.")+1) );
- * u_uastrcpy(stringToExamine, "Aaa bbb ccc. Ddd eee fff.");
- * printf("Examining: "Aaa bbb ccc. Ddd eee fff.");
- *
- * //print each sentence in forward and reverse order
- * boundary = ubrk_open(UBRK_SENTENCE, "en_us", stringToExamine, u_strlen(stringToExamine), &status);
- * printf("----- forward: -----------\n");
- * printEachForward(boundary, stringToExamine);
- * printf("----- backward: ----------\n");
- * printEachBackward(boundary, stringToExamine);
- * ubrk_close(boundary);
- *
- * //print each word in order
- * boundary = ubrk_open(UBRK_WORD, "en_us", stringToExamine, u_strlen(stringToExamine), &status);
- * printf("----- forward: -----------\n");
- * printEachForward(boundary, stringToExamine);
- * printf("----- backward: ----------\n");
- * printEachBackward(boundary, stringToExamine);
- * //print first element
- * printf("----- first: -------------\n");
- * printFirst(boundary, stringToExamine);
- * //print last element
- * printf("----- last: --------------\n");
- * printLast(boundary, stringToExamine);
- * //print word at charpos 10
- * printf("----- at pos 10: ---------\n");
- * printAt(boundary, 10 , stringToExamine);
- *
- * ubrk_close(boundary);
- * }
- * \endcode
- * </pre>
+ * <p>
+ * The text boundary positions are found according to the rules
+ * described in Unicode Standard Annex #29, Text Boundaries, and
+ * Unicode Standard Annex #14, Line Breaking Properties. These
+ * are available at http://www.unicode.org/reports/tr14/ and
+ * http://www.unicode.org/reports/tr29/.
+ * <p>
+ * In addition to the plain C API defined in this header file, an
+ * object oriented C++ API with equivalent functionality is defined in the
+ * file brkiter.h.
+ * <p>
+ * Code snippits illustrating the use of the Break Iterator APIs
+ * are available in the ICU User Guide,
+ * http://icu.sourceforge.net/userguide/boundaryAnalysis.html
+ * and in the sample program icu/source/samples/break/break.cpp"
*/
/** The possible types of text boundaries. @stable ICU 2.0 */
typedef enum UBreakIteratorType {
/** Character breaks @stable ICU 2.0 */
- UBRK_CHARACTER,
+ UBRK_CHARACTER = 0,
/** Word breaks @stable ICU 2.0 */
- UBRK_WORD,
+ UBRK_WORD = 1,
/** Line breaks @stable ICU 2.0 */
- UBRK_LINE,
+ UBRK_LINE = 2,
/** Sentence breaks @stable ICU 2.0 */
- UBRK_SENTENCE,
+ UBRK_SENTENCE = 3,
#ifndef U_HIDE_DEPRECATED_API
/**
@@ -204,9 +103,9 @@ typedef enum UBreakIteratorType {
*
* @deprecated ICU 2.8 Use the word break iterator for titlecasing for Unicode 4 and later.
*/
- UBRK_TITLE
+ UBRK_TITLE = 4,
#endif /* U_HIDE_DEPRECATED_API */
-
+ UBRK_COUNT = 5
} UBreakIteratorType;
/** Value indicating all text boundaries have been returned.
@@ -556,9 +455,9 @@ ubrk_getRuleStatus(UBreakIterator *bi);
* @param status receives error codes.
* @return The number of rule status values from rules that determined
* the most recent boundary returned by the break iterator.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity, UErrorCode *status);
/**
@@ -568,9 +467,9 @@ ubrk_getRuleStatusVec(UBreakIterator *bi, int32_t *fillInVec, int32_t capacity,
* @param type locale type (valid or actual)
* @param status error code
* @return locale string
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
-U_DRAFT const char* U_EXPORT2
+U_STABLE const char* U_EXPORT2
ubrk_getLocaleByType(const UBreakIterator *bi, ULocDataLocaleType type, UErrorCode* status);
diff --git a/Build/source/libs/icu-xetex/common/unicode/uchar.h b/Build/source/libs/icu-xetex/common/unicode/uchar.h
index 0adb47f83c5..ce5fc4f4805 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uchar.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uchar.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -39,7 +39,7 @@ U_CDECL_BEGIN
* @see u_getUnicodeVersion
* @stable ICU 2.0
*/
-#define U_UNICODE_VERSION "4.1"
+#define U_UNICODE_VERSION "5.0"
/**
* \file
@@ -187,137 +187,137 @@ typedef enum UProperty {
/** First constant for binary Unicode properties. @stable ICU 2.1 */
UCHAR_BINARY_START=UCHAR_ALPHABETIC,
/** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */
- UCHAR_ASCII_HEX_DIGIT,
+ UCHAR_ASCII_HEX_DIGIT=1,
/** Binary property Bidi_Control.
Format controls which have specific functions
in the Bidi Algorithm. @stable ICU 2.1 */
- UCHAR_BIDI_CONTROL,
+ UCHAR_BIDI_CONTROL=2,
/** Binary property Bidi_Mirrored.
Characters that may change display in RTL text.
Same as u_isMirrored.
See Bidi Algorithm, UTR 9. @stable ICU 2.1 */
- UCHAR_BIDI_MIRRORED,
+ UCHAR_BIDI_MIRRORED=3,
/** Binary property Dash. Variations of dashes. @stable ICU 2.1 */
- UCHAR_DASH,
+ UCHAR_DASH=4,
/** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2).
Ignorable in most processing.
<2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */
- UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
+ UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5,
/** Binary property Deprecated (new in Unicode 3.2).
The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */
- UCHAR_DEPRECATED,
+ UCHAR_DEPRECATED=6,
/** Binary property Diacritic. Characters that linguistically modify
the meaning of another character to which they apply. @stable ICU 2.1 */
- UCHAR_DIACRITIC,
+ UCHAR_DIACRITIC=7,
/** Binary property Extender.
Extend the value or shape of a preceding alphabetic character,
e.g., length and iteration marks. @stable ICU 2.1 */
- UCHAR_EXTENDER,
+ UCHAR_EXTENDER=8,
/** Binary property Full_Composition_Exclusion.
CompositionExclusions.txt+Singleton Decompositions+
Non-Starter Decompositions. @stable ICU 2.1 */
- UCHAR_FULL_COMPOSITION_EXCLUSION,
+ UCHAR_FULL_COMPOSITION_EXCLUSION=9,
/** Binary property Grapheme_Base (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries.
[0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */
- UCHAR_GRAPHEME_BASE,
+ UCHAR_GRAPHEME_BASE=10,
/** Binary property Grapheme_Extend (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries.
Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */
- UCHAR_GRAPHEME_EXTEND,
+ UCHAR_GRAPHEME_EXTEND=11,
/** Binary property Grapheme_Link (new in Unicode 3.2).
For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */
- UCHAR_GRAPHEME_LINK,
+ UCHAR_GRAPHEME_LINK=12,
/** Binary property Hex_Digit.
Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */
- UCHAR_HEX_DIGIT,
+ UCHAR_HEX_DIGIT=13,
/** Binary property Hyphen. Dashes used to mark connections
between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */
- UCHAR_HYPHEN,
+ UCHAR_HYPHEN=14,
/** Binary property ID_Continue.
Characters that can continue an identifier.
DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out."
ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */
- UCHAR_ID_CONTINUE,
+ UCHAR_ID_CONTINUE=15,
/** Binary property ID_Start.
Characters that can start an identifier.
Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */
- UCHAR_ID_START,
+ UCHAR_ID_START=16,
/** Binary property Ideographic.
CJKV ideographs. @stable ICU 2.1 */
- UCHAR_IDEOGRAPHIC,
+ UCHAR_IDEOGRAPHIC=17,
/** Binary property IDS_Binary_Operator (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_IDS_BINARY_OPERATOR,
+ UCHAR_IDS_BINARY_OPERATOR=18,
/** Binary property IDS_Trinary_Operator (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_IDS_TRINARY_OPERATOR,
+ UCHAR_IDS_TRINARY_OPERATOR=19,
/** Binary property Join_Control.
Format controls for cursive joining and ligation. @stable ICU 2.1 */
- UCHAR_JOIN_CONTROL,
+ UCHAR_JOIN_CONTROL=20,
/** Binary property Logical_Order_Exception (new in Unicode 3.2).
Characters that do not use logical order and
require special handling in most processing. @stable ICU 2.1 */
- UCHAR_LOGICAL_ORDER_EXCEPTION,
+ UCHAR_LOGICAL_ORDER_EXCEPTION=21,
/** Binary property Lowercase. Same as u_isULowercase, different from u_islower.
Ll+Other_Lowercase @stable ICU 2.1 */
- UCHAR_LOWERCASE,
+ UCHAR_LOWERCASE=22,
/** Binary property Math. Sm+Other_Math @stable ICU 2.1 */
- UCHAR_MATH,
+ UCHAR_MATH=23,
/** Binary property Noncharacter_Code_Point.
Code points that are explicitly defined as illegal
for the encoding of characters. @stable ICU 2.1 */
- UCHAR_NONCHARACTER_CODE_POINT,
+ UCHAR_NONCHARACTER_CODE_POINT=24,
/** Binary property Quotation_Mark. @stable ICU 2.1 */
- UCHAR_QUOTATION_MARK,
+ UCHAR_QUOTATION_MARK=25,
/** Binary property Radical (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_RADICAL,
+ UCHAR_RADICAL=26,
/** Binary property Soft_Dotted (new in Unicode 3.2).
Characters with a "soft dot", like i or j.
An accent placed on these characters causes
the dot to disappear. @stable ICU 2.1 */
- UCHAR_SOFT_DOTTED,
+ UCHAR_SOFT_DOTTED=27,
/** Binary property Terminal_Punctuation.
Punctuation characters that generally mark
the end of textual units. @stable ICU 2.1 */
- UCHAR_TERMINAL_PUNCTUATION,
+ UCHAR_TERMINAL_PUNCTUATION=28,
/** Binary property Unified_Ideograph (new in Unicode 3.2).
For programmatic determination of
Ideographic Description Sequences. @stable ICU 2.1 */
- UCHAR_UNIFIED_IDEOGRAPH,
+ UCHAR_UNIFIED_IDEOGRAPH=29,
/** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper.
Lu+Other_Uppercase @stable ICU 2.1 */
- UCHAR_UPPERCASE,
+ UCHAR_UPPERCASE=30,
/** Binary property White_Space.
Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace.
Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */
- UCHAR_WHITE_SPACE,
+ UCHAR_WHITE_SPACE=31,
/** Binary property XID_Continue.
ID_Continue modified to allow closure under
normalization forms NFKC and NFKD. @stable ICU 2.1 */
- UCHAR_XID_CONTINUE,
+ UCHAR_XID_CONTINUE=32,
/** Binary property XID_Start. ID_Start modified to allow
closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */
- UCHAR_XID_START,
+ UCHAR_XID_START=33,
/** Binary property Case_Sensitive. Either the source of a case
mapping or _in_ the target of a case mapping. Not the same as
the general category Cased_Letter. @stable ICU 2.6 */
- UCHAR_CASE_SENSITIVE,
+ UCHAR_CASE_SENSITIVE=34,
/** Binary property STerm (new in Unicode 4.0.1).
Sentence Terminal. Used in UAX #29: Text Boundaries
(http://www.unicode.org/reports/tr29/)
- @draft ICU 3.0 */
- UCHAR_S_TERM,
+ @stable ICU 3.0 */
+ UCHAR_S_TERM=35,
/** Binary property Variation_Selector (new in Unicode 4.0.1).
Indicates all those characters that qualify as Variation Selectors.
For details on the behavior of these characters,
see StandardizedVariants.html and 15.6 Variation Selectors.
- @draft ICU 3.0 */
- UCHAR_VARIATION_SELECTOR,
+ @stable ICU 3.0 */
+ UCHAR_VARIATION_SELECTOR=36,
/** Binary property NFD_Inert.
ICU-specific property for characters that are inert under NFD,
i.e., they do not interact with adjacent characters.
@@ -339,8 +339,8 @@ typedef enum UProperty {
See also com.ibm.text.UCD.NFSkippable in the ICU4J repository,
and icu/source/common/unormimp.h .
- @draft ICU 3.0 */
- UCHAR_NFD_INERT,
+ @stable ICU 3.0 */
+ UCHAR_NFD_INERT=37,
/** Binary property NFKD_Inert.
ICU-specific property for characters that are inert under NFKD,
i.e., they do not interact with adjacent characters.
@@ -348,8 +348,8 @@ typedef enum UProperty {
to find the boundary of safely normalizable text despite possible
text additions.
@see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFKD_INERT,
+ @stable ICU 3.0 */
+ UCHAR_NFKD_INERT=38,
/** Binary property NFC_Inert.
ICU-specific property for characters that are inert under NFC,
i.e., they do not interact with adjacent characters.
@@ -357,8 +357,8 @@ typedef enum UProperty {
to find the boundary of safely normalizable text despite possible
text additions.
@see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFC_INERT,
+ @stable ICU 3.0 */
+ UCHAR_NFC_INERT=39,
/** Binary property NFKC_Inert.
ICU-specific property for characters that are inert under NFKC,
i.e., they do not interact with adjacent characters.
@@ -366,8 +366,8 @@ typedef enum UProperty {
to find the boundary of safely normalizable text despite possible
text additions.
@see UCHAR_NFD_INERT
- @draft ICU 3.0 */
- UCHAR_NFKC_INERT,
+ @stable ICU 3.0 */
+ UCHAR_NFKC_INERT=40,
/** Binary Property Segment_Starter.
ICU-specific property for characters that are starters in terms of
Unicode normalization and combining character sequences.
@@ -377,45 +377,47 @@ typedef enum UProperty {
ICU uses this property for segmenting a string for generating a set of
canonically equivalent strings, e.g. for canonical closure while
processing collation tailoring rules.
- @draft ICU 3.0 */
- UCHAR_SEGMENT_STARTER,
+ @stable ICU 3.0 */
+ UCHAR_SEGMENT_STARTER=41,
+#ifndef U_HIDE_DRAFT_API
/** Binary property Pattern_Syntax (new in Unicode 4.1).
See UAX #31 Identifier and Pattern Syntax
(http://www.unicode.org/reports/tr31/)
@draft ICU 3.4 */
- UCHAR_PATTERN_SYNTAX,
+ UCHAR_PATTERN_SYNTAX=42,
/** Binary property Pattern_White_Space (new in Unicode 4.1).
See UAX #31 Identifier and Pattern Syntax
(http://www.unicode.org/reports/tr31/)
@draft ICU 3.4 */
- UCHAR_PATTERN_WHITE_SPACE,
+ UCHAR_PATTERN_WHITE_SPACE=43,
/** Binary property alnum (a C/POSIX character class).
Implemented according to the UTS #18 Annex C Standard Recommendation.
See the uchar.h file documentation.
@draft ICU 3.4 */
- UCHAR_POSIX_ALNUM,
+ UCHAR_POSIX_ALNUM=44,
/** Binary property blank (a C/POSIX character class).
Implemented according to the UTS #18 Annex C Standard Recommendation.
See the uchar.h file documentation.
@draft ICU 3.4 */
- UCHAR_POSIX_BLANK,
+ UCHAR_POSIX_BLANK=45,
/** Binary property graph (a C/POSIX character class).
Implemented according to the UTS #18 Annex C Standard Recommendation.
See the uchar.h file documentation.
@draft ICU 3.4 */
- UCHAR_POSIX_GRAPH,
+ UCHAR_POSIX_GRAPH=46,
/** Binary property print (a C/POSIX character class).
Implemented according to the UTS #18 Annex C Standard Recommendation.
See the uchar.h file documentation.
@draft ICU 3.4 */
- UCHAR_POSIX_PRINT,
+ UCHAR_POSIX_PRINT=47,
/** Binary property xdigit (a C/POSIX character class).
Implemented according to the UTS #18 Annex C Standard Recommendation.
See the uchar.h file documentation.
@draft ICU 3.4 */
- UCHAR_POSIX_XDIGIT,
+ UCHAR_POSIX_XDIGIT=48,
+#endif /* U_HIDE_DRAFT_API */
/** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */
- UCHAR_BINARY_LIMIT,
+ UCHAR_BINARY_LIMIT=49,
/** Enumerated property Bidi_Class.
Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */
@@ -424,81 +426,83 @@ typedef enum UProperty {
UCHAR_INT_START=UCHAR_BIDI_CLASS,
/** Enumerated property Block.
Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */
- UCHAR_BLOCK,
+ UCHAR_BLOCK=0x1001,
/** Enumerated property Canonical_Combining_Class.
Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */
- UCHAR_CANONICAL_COMBINING_CLASS,
+ UCHAR_CANONICAL_COMBINING_CLASS=0x1002,
/** Enumerated property Decomposition_Type.
Returns UDecompositionType values. @stable ICU 2.2 */
- UCHAR_DECOMPOSITION_TYPE,
+ UCHAR_DECOMPOSITION_TYPE=0x1003,
/** Enumerated property East_Asian_Width.
See http://www.unicode.org/reports/tr11/
Returns UEastAsianWidth values. @stable ICU 2.2 */
- UCHAR_EAST_ASIAN_WIDTH,
+ UCHAR_EAST_ASIAN_WIDTH=0x1004,
/** Enumerated property General_Category.
Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */
- UCHAR_GENERAL_CATEGORY,
+ UCHAR_GENERAL_CATEGORY=0x1005,
/** Enumerated property Joining_Group.
Returns UJoiningGroup values. @stable ICU 2.2 */
- UCHAR_JOINING_GROUP,
+ UCHAR_JOINING_GROUP=0x1006,
/** Enumerated property Joining_Type.
Returns UJoiningType values. @stable ICU 2.2 */
- UCHAR_JOINING_TYPE,
+ UCHAR_JOINING_TYPE=0x1007,
/** Enumerated property Line_Break.
Returns ULineBreak values. @stable ICU 2.2 */
- UCHAR_LINE_BREAK,
+ UCHAR_LINE_BREAK=0x1008,
/** Enumerated property Numeric_Type.
Returns UNumericType values. @stable ICU 2.2 */
- UCHAR_NUMERIC_TYPE,
+ UCHAR_NUMERIC_TYPE=0x1009,
/** Enumerated property Script.
Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */
- UCHAR_SCRIPT,
+ UCHAR_SCRIPT=0x100A,
/** Enumerated property Hangul_Syllable_Type, new in Unicode 4.
Returns UHangulSyllableType values. @stable ICU 2.6 */
- UCHAR_HANGUL_SYLLABLE_TYPE,
+ UCHAR_HANGUL_SYLLABLE_TYPE=0x100B,
/** Enumerated property NFD_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFD_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFD_QUICK_CHECK=0x100C,
/** Enumerated property NFKD_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFKD_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFKD_QUICK_CHECK=0x100D,
/** Enumerated property NFC_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFC_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFC_QUICK_CHECK=0x100E,
/** Enumerated property NFKC_Quick_Check.
- Returns UNormalizationCheckResult values. @draft ICU 3.0 */
- UCHAR_NFKC_QUICK_CHECK,
+ Returns UNormalizationCheckResult values. @stable ICU 3.0 */
+ UCHAR_NFKC_QUICK_CHECK=0x100F,
/** Enumerated property Lead_Canonical_Combining_Class.
ICU-specific property for the ccc of the first code point
of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
Useful for checking for canonically ordered text;
see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
- Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
- UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
+ Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
+ UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010,
/** Enumerated property Trail_Canonical_Combining_Class.
ICU-specific property for the ccc of the last code point
of the decomposition, or tccc(c)=ccc(NFD(c)[last]).
Useful for checking for canonically ordered text;
see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
- Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
- UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
+ Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */
+ UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011,
+#ifndef U_HIDE_DRAFT_API
/** Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1).
Used in UAX #29: Text Boundaries
(http://www.unicode.org/reports/tr29/)
Returns UGraphemeClusterBreak values. @draft ICU 3.4 */
- UCHAR_GRAPHEME_CLUSTER_BREAK,
+ UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012,
/** Enumerated property Sentence_Break (new in Unicode 4.1).
Used in UAX #29: Text Boundaries
(http://www.unicode.org/reports/tr29/)
Returns USentenceBreak values. @draft ICU 3.4 */
- UCHAR_SENTENCE_BREAK,
+ UCHAR_SENTENCE_BREAK=0x1013,
/** Enumerated property Word_Break (new in Unicode 4.1).
Used in UAX #29: Text Boundaries
(http://www.unicode.org/reports/tr29/)
Returns UWordBreakValues values. @draft ICU 3.4 */
- UCHAR_WORD_BREAK,
+ UCHAR_WORD_BREAK=0x1014,
+#endif /*U_HIDE_DRAFT_API*/
/** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
- UCHAR_INT_LIMIT,
+ UCHAR_INT_LIMIT=0x1015,
/** Bitmask property General_Category_Mask.
This is the General_Category property returned as a bit mask.
@@ -512,7 +516,7 @@ typedef enum UProperty {
/** First constant for bit-mask Unicode properties. @stable ICU 2.4 */
UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
/** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */
- UCHAR_MASK_LIMIT,
+ UCHAR_MASK_LIMIT=0x2001,
/** Double property Numeric_Value.
Corresponds to u_getNumericValue. @stable ICU 2.4 */
@@ -520,7 +524,7 @@ typedef enum UProperty {
/** First constant for double Unicode properties. @stable ICU 2.4 */
UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
/** One more than the last constant for double Unicode properties. @stable ICU 2.4 */
- UCHAR_DOUBLE_LIMIT,
+ UCHAR_DOUBLE_LIMIT=0x3001,
/** String property Age.
Corresponds to u_charAge. @stable ICU 2.4 */
@@ -529,42 +533,42 @@ typedef enum UProperty {
UCHAR_STRING_START=UCHAR_AGE,
/** String property Bidi_Mirroring_Glyph.
Corresponds to u_charMirror. @stable ICU 2.4 */
- UCHAR_BIDI_MIRRORING_GLYPH,
+ UCHAR_BIDI_MIRRORING_GLYPH=0x4001,
/** String property Case_Folding.
Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */
- UCHAR_CASE_FOLDING,
+ UCHAR_CASE_FOLDING=0x4002,
/** String property ISO_Comment.
Corresponds to u_getISOComment. @stable ICU 2.4 */
- UCHAR_ISO_COMMENT,
+ UCHAR_ISO_COMMENT=0x4003,
/** String property Lowercase_Mapping.
Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */
- UCHAR_LOWERCASE_MAPPING,
+ UCHAR_LOWERCASE_MAPPING=0x4004,
/** String property Name.
Corresponds to u_charName. @stable ICU 2.4 */
- UCHAR_NAME,
+ UCHAR_NAME=0x4005,
/** String property Simple_Case_Folding.
Corresponds to u_foldCase. @stable ICU 2.4 */
- UCHAR_SIMPLE_CASE_FOLDING,
+ UCHAR_SIMPLE_CASE_FOLDING=0x4006,
/** String property Simple_Lowercase_Mapping.
Corresponds to u_tolower. @stable ICU 2.4 */
- UCHAR_SIMPLE_LOWERCASE_MAPPING,
+ UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007,
/** String property Simple_Titlecase_Mapping.
Corresponds to u_totitle. @stable ICU 2.4 */
- UCHAR_SIMPLE_TITLECASE_MAPPING,
+ UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008,
/** String property Simple_Uppercase_Mapping.
Corresponds to u_toupper. @stable ICU 2.4 */
- UCHAR_SIMPLE_UPPERCASE_MAPPING,
+ UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009,
/** String property Titlecase_Mapping.
Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */
- UCHAR_TITLECASE_MAPPING,
+ UCHAR_TITLECASE_MAPPING=0x400A,
/** String property Unicode_1_Name.
Corresponds to u_charName. @stable ICU 2.4 */
- UCHAR_UNICODE_1_NAME,
+ UCHAR_UNICODE_1_NAME=0x400B,
/** String property Uppercase_Mapping.
Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */
- UCHAR_UPPERCASE_MAPPING,
+ UCHAR_UPPERCASE_MAPPING=0x400C,
/** One more than the last constant for string Unicode properties. @stable ICU 2.4 */
- UCHAR_STRING_LIMIT,
+ UCHAR_STRING_LIMIT=0x400D,
/** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */
UCHAR_INVALID_CODE = -1
@@ -1128,7 +1132,7 @@ enum UBlockCode {
* @stable ICU 2.2
*/
UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
- /** @draft ICU 3.0 */
+ /** @stable ICU 3.0 */
UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/
/** @stable ICU 2.2 */
UBLOCK_TAGALOG = 98, /*[1700]*/
@@ -1190,6 +1194,7 @@ enum UBlockCode {
/** @stable ICU 2.6 */
UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
+#ifndef U_HIDE_DRAFT_API
/* New blocks in Unicode 4.1 */
/** @draft ICU 3.4 */
@@ -1233,8 +1238,31 @@ enum UBlockCode {
/** @draft ICU 3.4 */
UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/
- /** @stable ICU 2.0 */
- UBLOCK_COUNT,
+ /* New blocks in Unicode 5.0 */
+
+ /** @draft ICU 3.6 */
+ UBLOCK_NKO = 146, /*[07C0]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_BALINESE = 147, /*[1B00]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_PHAGS_PA = 150, /*[A840]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_PHOENICIAN = 151, /*[10900]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_CUNEIFORM = 152, /*[12000]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/
+ /** @draft ICU 3.6 */
+ UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/
+
+#endif /*U_HIDE_DRAFT_API*/
+
+ /** @stable ICU 2.0 */
+ UBLOCK_COUNT = 155,
/** @stable ICU 2.0 */
UBLOCK_INVALID_CODE=-1
@@ -1416,17 +1444,19 @@ typedef enum UJoiningGroup {
* @draft ICU 3.4
*/
typedef enum UGraphemeClusterBreak {
- U_GCB_OTHER, /*[XX]*/ /*See note !!*/
- U_GCB_CONTROL, /*[CN]*/
- U_GCB_CR, /*[CR]*/
- U_GCB_EXTEND, /*[EX]*/
- U_GCB_L, /*[L]*/
- U_GCB_LF, /*[LF]*/
- U_GCB_LV, /*[LV]*/
- U_GCB_LVT, /*[LVT]*/
- U_GCB_T, /*[T]*/
- U_GCB_V, /*[V]*/
- U_GCB_COUNT
+#ifndef U_HIDE_DRAFT_API
+ U_GCB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_GCB_CONTROL = 1, /*[CN]*/
+ U_GCB_CR = 2, /*[CR]*/
+ U_GCB_EXTEND = 3, /*[EX]*/
+ U_GCB_L = 4, /*[L]*/
+ U_GCB_LF = 5, /*[LF]*/
+ U_GCB_LV = 6, /*[LV]*/
+ U_GCB_LVT = 7, /*[LVT]*/
+ U_GCB_T = 8, /*[T]*/
+ U_GCB_V = 9, /*[V]*/
+#endif /*U_HIDE_DRAFT_API*/
+ U_GCB_COUNT = 10
} UGraphemeClusterBreak;
/**
@@ -1437,15 +1467,17 @@ typedef enum UGraphemeClusterBreak {
* @draft ICU 3.4
*/
typedef enum UWordBreakValues {
- U_WB_OTHER, /*[XX]*/ /*See note !!*/
- U_WB_ALETTER, /*[LE]*/
- U_WB_FORMAT, /*[FO]*/
- U_WB_KATAKANA, /*[KA]*/
- U_WB_MIDLETTER, /*[ML]*/
- U_WB_MIDNUM, /*[MN]*/
- U_WB_NUMERIC, /*[NU]*/
- U_WB_EXTENDNUMLET, /*[EX]*/
- U_WB_COUNT
+#ifndef U_HIDE_DRAFT_API
+ U_WB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_WB_ALETTER = 1, /*[LE]*/
+ U_WB_FORMAT = 2, /*[FO]*/
+ U_WB_KATAKANA = 3, /*[KA]*/
+ U_WB_MIDLETTER = 4, /*[ML]*/
+ U_WB_MIDNUM = 5, /*[MN]*/
+ U_WB_NUMERIC = 6, /*[NU]*/
+ U_WB_EXTENDNUMLET = 7, /*[EX]*/
+#endif /*U_HIDE_DRAFT_API*/
+ U_WB_COUNT = 8
} UWordBreakValues;
/**
@@ -1455,18 +1487,20 @@ typedef enum UWordBreakValues {
* @draft ICU 3.4
*/
typedef enum USentenceBreak {
- U_SB_OTHER, /*[XX]*/ /*See note !!*/
- U_SB_ATERM, /*[AT]*/
- U_SB_CLOSE, /*[CL]*/
- U_SB_FORMAT, /*[FO]*/
- U_SB_LOWER, /*[LO]*/
- U_SB_NUMERIC, /*[NU]*/
- U_SB_OLETTER, /*[LE]*/
- U_SB_SEP, /*[SE]*/
- U_SB_SP, /*[SP]*/
- U_SB_STERM, /*[ST]*/
- U_SB_UPPER, /*[UP]*/
- U_SB_COUNT
+#ifndef U_HIDE_DRAFT_API
+ U_SB_OTHER = 0, /*[XX]*/ /*See note !!*/
+ U_SB_ATERM = 1, /*[AT]*/
+ U_SB_CLOSE = 2, /*[CL]*/
+ U_SB_FORMAT = 3, /*[FO]*/
+ U_SB_LOWER = 4, /*[LO]*/
+ U_SB_NUMERIC = 5, /*[NU]*/
+ U_SB_OLETTER = 6, /*[LE]*/
+ U_SB_SEP = 7, /*[SE]*/
+ U_SB_SP = 8, /*[SP]*/
+ U_SB_STERM = 9, /*[ST]*/
+ U_SB_UPPER = 10, /*[UP]*/
+#endif /*U_HIDE_DRAFT_API*/
+ U_SB_COUNT = 11
} USentenceBreak;
/**
@@ -1476,45 +1510,45 @@ typedef enum USentenceBreak {
* @stable ICU 2.2
*/
typedef enum ULineBreak {
- U_LB_UNKNOWN, /*[XX]*/ /*See note !!*/
- U_LB_AMBIGUOUS, /*[AI]*/
- U_LB_ALPHABETIC, /*[AL]*/
- U_LB_BREAK_BOTH, /*[B2]*/
- U_LB_BREAK_AFTER, /*[BA]*/
- U_LB_BREAK_BEFORE, /*[BB]*/
- U_LB_MANDATORY_BREAK, /*[BK]*/
- U_LB_CONTINGENT_BREAK, /*[CB]*/
- U_LB_CLOSE_PUNCTUATION, /*[CL]*/
- U_LB_COMBINING_MARK, /*[CM]*/
- U_LB_CARRIAGE_RETURN, /*[CR]*/
- U_LB_EXCLAMATION, /*[EX]*/
- U_LB_GLUE, /*[GL]*/
- U_LB_HYPHEN, /*[HY]*/
- U_LB_IDEOGRAPHIC, /*[ID]*/
- U_LB_INSEPERABLE,
- /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @draft ICU 3.0 */
+ U_LB_UNKNOWN = 0, /*[XX]*/ /*See note !!*/
+ U_LB_AMBIGUOUS = 1, /*[AI]*/
+ U_LB_ALPHABETIC = 2, /*[AL]*/
+ U_LB_BREAK_BOTH = 3, /*[B2]*/
+ U_LB_BREAK_AFTER = 4, /*[BA]*/
+ U_LB_BREAK_BEFORE = 5, /*[BB]*/
+ U_LB_MANDATORY_BREAK = 6, /*[BK]*/
+ U_LB_CONTINGENT_BREAK = 7, /*[CB]*/
+ U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/
+ U_LB_COMBINING_MARK = 9, /*[CM]*/
+ U_LB_CARRIAGE_RETURN = 10, /*[CR]*/
+ U_LB_EXCLAMATION = 11, /*[EX]*/
+ U_LB_GLUE = 12, /*[GL]*/
+ U_LB_HYPHEN = 13, /*[HY]*/
+ U_LB_IDEOGRAPHIC = 14, /*[ID]*/
+ U_LB_INSEPERABLE = 15,
+ /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @stable ICU 3.0 */
U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/
- U_LB_INFIX_NUMERIC, /*[IS]*/
- U_LB_LINE_FEED, /*[LF]*/
- U_LB_NONSTARTER, /*[NS]*/
- U_LB_NUMERIC, /*[NU]*/
- U_LB_OPEN_PUNCTUATION, /*[OP]*/
- U_LB_POSTFIX_NUMERIC, /*[PO]*/
- U_LB_PREFIX_NUMERIC, /*[PR]*/
- U_LB_QUOTATION, /*[QU]*/
- U_LB_COMPLEX_CONTEXT, /*[SA]*/
- U_LB_SURROGATE, /*[SG]*/
- U_LB_SPACE, /*[SP]*/
- U_LB_BREAK_SYMBOLS, /*[SY]*/
- U_LB_ZWSPACE, /*[ZW]*/
- U_LB_NEXT_LINE, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
- U_LB_WORD_JOINER, /*[WJ]*/
- U_LB_H2, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
- U_LB_H3, /*[H3]*/
- U_LB_JL, /*[JL]*/
- U_LB_JT, /*[JT]*/
- U_LB_JV, /*[JV]*/
- U_LB_COUNT
+ U_LB_INFIX_NUMERIC = 16, /*[IS]*/
+ U_LB_LINE_FEED = 17, /*[LF]*/
+ U_LB_NONSTARTER = 18, /*[NS]*/
+ U_LB_NUMERIC = 19, /*[NU]*/
+ U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/
+ U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/
+ U_LB_PREFIX_NUMERIC = 22, /*[PR]*/
+ U_LB_QUOTATION = 23, /*[QU]*/
+ U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/
+ U_LB_SURROGATE = 25, /*[SG]*/
+ U_LB_SPACE = 26, /*[SP]*/
+ U_LB_BREAK_SYMBOLS = 27, /*[SY]*/
+ U_LB_ZWSPACE = 28, /*[ZW]*/
+ U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
+ U_LB_WORD_JOINER = 30, /*[WJ]*/
+ U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */
+ U_LB_H3 = 32, /*[H3]*/
+ U_LB_JL = 33, /*[JL]*/
+ U_LB_JT = 34, /*[JT]*/
+ U_LB_JV = 35, /*[JV]*/
+ U_LB_COUNT = 36
} ULineBreak;
/**
@@ -2451,7 +2485,7 @@ u_charFromName(UCharNameChoice nameChoice,
* @see u_enumCharNames
* @stable ICU 1.7
*/
-typedef UBool UEnumCharNamesFn(void *context,
+typedef UBool U_CALLCONV UEnumCharNamesFn(void *context,
UChar32 code,
UCharNameChoice nameChoice,
const char *name,
diff --git a/Build/source/libs/icu-xetex/common/unicode/ucnv.h b/Build/source/libs/icu-xetex/common/unicode/ucnv.h
index 14ac8021adb..f8fce55bebd 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ucnv.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ucnv.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* ucnv.h:
@@ -253,11 +253,13 @@ U_CDECL_END
#define UCNV_SWAP_LFNL_OPTION_STRING ",swaplfnl"
/**
- * Do a fuzzy compare of a two converter/alias names. The comparison
- * is case-insensitive. It also ignores the characters '-', '_', and
- * ' ' (dash, underscore, and space). Thus the strings "UTF-8",
- * "utf_8", and "Utf 8" are exactly equivalent.
- *
+ * Do a fuzzy compare of two converter/alias names.
+ * The comparison is case-insensitive, ignores leading zeroes if they are not
+ * followed by further digits, and ignores all but letters and digits.
+ * Thus the strings "UTF-8", "utf_8", "u*T@f08" and "Utf 8" are exactly equivalent.
+ * See section 1.4, Charset Alias Matching in Unicode Technical Standard #22
+ * at http://www.unicode.org/reports/tr22/
+ *
* @param name1 a converter name or alias, zero-terminated
* @param name2 a converter name or alias, zero-terminated
* @return 0 if the names match, or a negative value if the name1
@@ -270,11 +272,12 @@ ucnv_compareNames(const char *name1, const char *name2);
/**
- * Creates a UConverter object with the names specified as a C string.
+ * Creates a UConverter object with the name of a coded character set specified as a C string.
* The actual name will be resolved with the alias file
* using a case-insensitive string comparison that ignores
- * the delimiters '-', '_', and ' ' (dash, underscore, and space).
- * E.g., the names "UTF8", "utf-8", and "Utf 8" are all equivalent.
+ * leading zeroes and all non-alphanumeric characters.
+ * E.g., the names "UTF8", "utf-8", "u*T@f08" and "Utf 8" are all equivalent.
+ * (See also ucnv_compareNames().)
* If <code>NULL</code> is passed for the converter name, it will create one with the
* getDefaultName return value.
*
@@ -294,14 +297,26 @@ ucnv_compareNames(const char *name1, const char *name2);
* <p>The conversion behavior and names can vary between platforms. ICU may
* convert some characters differently from other platforms. Details on this topic
* are in the <a href="http://icu.sourceforge.net/userguide/conversion.html">User's
- * Guide</a>.</p>
- *
- * @param converterName Name of the uconv table, may have options appended
+ * Guide</a>. Aliases starting with a "cp" prefix have no specific meaning
+ * other than its an alias starting with the letters "cp". Please do not
+ * associate any meaning to these aliases.</p>
+ *
+ * @param converterName Name of the coded character set table.
+ * This may have options appended to the string.
+ * IANA alias character set names, IBM CCSIDs starting with "ibm-",
+ * Windows codepage numbers starting with "windows-" are frequently
+ * used for this parameter. See ucnv_getAvailableName and
+ * ucnv_getAlias for a complete list that is available.
+ * If this parameter is NULL, the default converter will be used.
* @param err outgoing error status <TT>U_MEMORY_ALLOCATION_ERROR, U_FILE_ACCESS_ERROR</TT>
* @return the created Unicode converter object, or <TT>NULL</TT> if an error occured
* @see ucnv_openU
* @see ucnv_openCCSID
+ * @see ucnv_getAvailableName
+ * @see ucnv_getAlias
+ * @see ucnv_getDefaultName
* @see ucnv_close
+ * @ee ucnv_compareNames
* @stable ICU 2.0
*/
U_STABLE UConverter* U_EXPORT2
@@ -313,13 +328,16 @@ ucnv_open(const char *converterName, UErrorCode *err);
* The name should be limited to the ASCII-7 alphanumerics range.
* The actual name will be resolved with the alias file
* using a case-insensitive string comparison that ignores
- * the delimiters '-', '_', and ' ' (dash, underscore, and space).
- * E.g., the names "UTF8", "utf-8", and "Utf 8" are all equivalent.
+ * leading zeroes and all non-alphanumeric characters.
+ * E.g., the names "UTF8", "utf-8", "u*T@f08" and "Utf 8" are all equivalent.
+ * (See also ucnv_compareNames().)
* If <TT>NULL</TT> is passed for the converter name, it will create
* one with the ucnv_getDefaultName() return value.
* If the alias is ambiguous, then the preferred converter is used
* and the status is set to U_AMBIGUOUS_ALIAS_WARNING.
- * @param name : name of the uconv table in a zero terminated
+ *
+ * <p>See ucnv_open for the complete details</p>
+ * @param name Name of the UConverter table in a zero terminated
* Unicode string
* @param err outgoing error status <TT>U_MEMORY_ALLOCATION_ERROR,
* U_FILE_ACCESS_ERROR</TT>
@@ -328,7 +346,7 @@ ucnv_open(const char *converterName, UErrorCode *err);
* @see ucnv_open
* @see ucnv_openCCSID
* @see ucnv_close
- * @see ucnv_getDefaultName
+ * @ee ucnv_compareNames
* @stable ICU 2.0
*/
U_STABLE UConverter* U_EXPORT2
@@ -505,6 +523,8 @@ ucnv_close(UConverter * converter);
/**
* Fills in the output parameter, subChars, with the substitution characters
* as multiple bytes.
+ * If ucnv_setSubstString() set a Unicode string because the converter is
+ * stateful, then subChars will be an empty string.
*
* @param converter the Unicode converter
* @param subChars the subsitution characters
@@ -513,6 +533,7 @@ ucnv_close(UConverter * converter);
* @param err the outgoing error status code.
* If the substitution character array is too small, an
* <TT>U_INDEX_OUTOFBOUNDS_ERROR</TT> will be returned.
+ * @see ucnv_setSubstString
* @see ucnv_setSubstChars
* @stable ICU 2.0
*/
@@ -525,12 +546,19 @@ ucnv_getSubstChars(const UConverter *converter,
/**
* Sets the substitution chars when converting from unicode to a codepage. The
* substitution is specified as a string of 1-4 bytes, and may contain
- * <TT>NULL</TT> byte.
+ * <TT>NULL</TT> bytes.
+ * The subChars must represent a single character. The caller needs to know the
+ * byte sequence of a valid character in the converter's charset.
+ * For some converters, for example some ISO 2022 variants, only single-byte
+ * substitution characters may be supported.
+ * The newer ucnv_setSubstString() function relaxes these limitations.
+ *
* @param converter the Unicode converter
* @param subChars the substitution character byte sequence we want set
* @param len the number of bytes in subChars
* @param err the error status code. <TT>U_INDEX_OUTOFBOUNDS_ERROR </TT> if
* len is bigger than the maximum number of bytes allowed in subchars
+ * @see ucnv_setSubstString
* @see ucnv_getSubstChars
* @stable ICU 2.0
*/
@@ -541,6 +569,39 @@ ucnv_setSubstChars(UConverter *converter,
UErrorCode *err);
/**
+ * Set a substitution string for converting from Unicode to a charset.
+ * The caller need not know the charset byte sequence for each charset.
+ *
+ * Unlike ucnv_setSubstChars() which is designed to set a charset byte sequence
+ * for a single character, this function takes a Unicode string with
+ * zero, one or more characters, and immediately verifies that the string can be
+ * converted to the charset.
+ * If not, or if the result is too long (more than 32 bytes as of ICU 3.6),
+ * then the function returns with an error accordingly.
+ *
+ * Also unlike ucnv_setSubstChars(), this function works for stateful charsets
+ * by converting on the fly at the point of substitution rather than setting
+ * a fixed byte sequence.
+ *
+ * @param cnv The UConverter object.
+ * @param s The Unicode string.
+ * @param length The number of UChars in s, or -1 for a NUL-terminated string.
+ * @param err Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ *
+ * @see ucnv_setSubstChars
+ * @see ucnv_getSubstChars
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ucnv_setSubstString(UConverter *cnv,
+ const UChar *s,
+ int32_t length,
+ UErrorCode *err);
+
+/**
* Fills in the output parameter, errBytes, with the error characters from the
* last failing conversion.
*
@@ -661,8 +722,6 @@ ucnv_resetFromUnicode(UConverter *converter);
U_STABLE int8_t U_EXPORT2
ucnv_getMaxCharSize(const UConverter *converter);
-#ifndef U_HIDE_DRAFT_API
-
/**
* Calculates the size of a buffer for conversion from Unicode to a charset.
* The calculated size is guaranteed to be sufficient for this conversion.
@@ -685,8 +744,6 @@ ucnv_getMaxCharSize(const UConverter *converter);
#define UCNV_GET_MAX_BYTES_FOR_STRING(length, maxCharSize) \
(((int32_t)(length)+10)*(int32_t)(maxCharSize))
-#endif /*U_HIDE_DRAFT_API*/
-
/**
* Returns the minimum byte length for characters in this codepage.
* This is usually either 1 or 2.
@@ -1219,6 +1276,12 @@ ucnv_getNextUChar(UConverter * converter,
* Internally, two conversions - ucnv_toUnicode() and ucnv_fromUnicode() -
* are used, "pivoting" through 16-bit Unicode.
*
+ * Important: For streaming conversion (multiple function calls for successive
+ * parts of a text stream), the caller must provide a pivot buffer explicitly,
+ * and must preserve the pivot buffer and associated pointers from one
+ * call to another. (The buffer may be moved if its contents and the relative
+ * pointer positions are preserved.)
+ *
* There is a similar function, ucnv_convert(),
* which has the following limitations:
* - it takes charset names, not converter objects, so that
@@ -1230,7 +1293,7 @@ ucnv_getNextUChar(UConverter * converter,
*
* By contrast, ucnv_convertEx()
* - takes UConverter parameters instead of charset names
- * - fully exposes the pivot buffer for complete error handling
+ * - fully exposes the pivot buffer for streaming conversion and complete error handling
*
* ucnv_convertEx() also provides further convenience:
* - an option to reset the converters at the beginning
@@ -1244,6 +1307,7 @@ ucnv_getNextUChar(UConverter * converter,
* or set U_STRING_NOT_TERMINATED_WARNING if the output exactly fills
* the target buffer
* - the pivot buffer can be provided internally;
+ * possible only for whole-string conversion, not streaming conversion;
* in this case, the caller will not be able to get details about where an
* error occurred
* (if pivotStart==NULL, see below)
@@ -1715,11 +1779,14 @@ U_STABLE const char * U_EXPORT2
ucnv_getDefaultName(void);
/**
- * sets the current default converter name. Caller must own the storage for 'name'
- * and preserve it indefinitely.
+ * This function sets the current default converter name.
+ * DO NOT call this function from multiple threads! This function is not
+ * thread safe. If this function needs to be called, it should be called
+ * during application initialization. Most of the time, the results from
+ * ucnv_getDefaultName() is sufficient for your application.
* @param name the converter name to be the default (must exist).
* @see ucnv_getDefaultName
- * @system SYSTEM API
+ * @system
* @stable ICU 2.0
*/
U_STABLE void U_EXPORT2
@@ -1796,7 +1863,7 @@ ucnv_usesFallback(const UConverter *cnv);
* UErrorCode err = U_ZERO_ERROR;
* char input[] = { '\xEF','\xBB', '\xBF','\x41','\x42','\x43' };
* int32_t signatureLength = 0;
- * char *encoding = ucnv_detectUnicodeSignatures(input,sizeof(input),&signatureLength,&err);
+ * char *encoding = ucnv_detectUnicodeSignature(input,sizeof(input),&signatureLength,&err);
* UConverter *conv = NULL;
* UChar output[100];
* UChar *target = output, *out;
diff --git a/Build/source/libs/icu-xetex/common/unicode/uconfig.h b/Build/source/libs/icu-xetex/common/unicode/uconfig.h
index 8041cedaacf..8dea2ab8c4d 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uconfig.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uconfig.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: uconfig.h
@@ -24,6 +24,13 @@
* The switches are fairly coarse, controlling large modules.
* Basic services cannot be turned off.
*
+ * Building with any of these options does not guarantee that the
+ * ICU build process will completely work. It is recommended that
+ * the ICU libraries and data be built using the normal build.
+ * At that time you should remove the data used by those services.
+ * After building the ICU data library, you should rebuild the ICU
+ * libraries with these switches customized to your needs.
+ *
* @stable ICU 2.4
*/
@@ -59,11 +66,33 @@
/* common library switches -------------------------------------------------- */
/**
+ * \def UCONFIG_NO_FILE_IO
+ * This switch turns off all file access in the common library
+ * where file access is only used for data loading.
+ * ICU data must then be provided in the form of a data DLL (or with an
+ * equivalent way to link to the data residing in an executable,
+ * as in building a combined library with both the common library's code and
+ * the data), or via udata_setCommonData().
+ * Application data must be provided via udata_setAppData() or by using
+ * "open" functions that take pointers to data, for example ucol_openBinary().
+ *
+ * File access is not used at all in the i18n library.
+ *
+ * File access cannot be turned off for the icuio library or for the ICU
+ * test suites and ICU tools.
+ *
+ * @draft ICU 3.6
+ */
+#ifndef UCONFIG_NO_FILE_IO
+# define UCONFIG_NO_FILE_IO 0
+#endif
+
+/**
* \def UCONFIG_NO_CONVERSION
* ICU will not completely build with this switch turned on.
* This switch turns off all converters.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
#ifndef UCONFIG_NO_CONVERSION
# define UCONFIG_NO_CONVERSION 0
@@ -177,7 +206,7 @@
* \def UCONFIG_NO_SERVICE
* This switch turns off service registration.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
#ifndef UCONFIG_NO_SERVICE
# define UCONFIG_NO_SERVICE 0
diff --git a/Build/source/libs/icu-xetex/common/unicode/udata.h b/Build/source/libs/icu-xetex/common/unicode/udata.h
index 0881ef32453..2a12c11fcd8 100644
--- a/Build/source/libs/icu-xetex/common/unicode/udata.h
+++ b/Build/source/libs/icu-xetex/common/unicode/udata.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -35,7 +35,8 @@ U_CDECL_BEGIN
*
* See the User Guide Data Management chapter.
*/
-
+
+#ifndef U_HIDE_INTERNAL_API
/**
* Character used to separate package names from tree names
* @internal ICU 3.0
@@ -66,6 +67,8 @@ U_CDECL_BEGIN
*/
#define U_ICUDATA_ALIAS "ICUDATA"
+#endif /* U_HIDE_INTERNAL_API */
+
/**
* UDataInfo contains the properties about the requested data.
* This is meta data.
diff --git a/Build/source/libs/icu-xetex/common/unicode/udeprctd.h b/Build/source/libs/icu-xetex/common/unicode/udeprctd.h
index 60c423ed6e0..8369eb4ae13 100644
--- a/Build/source/libs/icu-xetex/common/unicode/udeprctd.h
+++ b/Build/source/libs/icu-xetex/common/unicode/udeprctd.h
@@ -1,15 +1,15 @@
/*
*******************************************************************************
-* Copyright (C) 2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
-* file name: udeprctd.h
+* file name:
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
*
-* Created by: gendraft.pl, a perl script written by Ram Viswanadha
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
*
* Contains data for commenting out APIs.
* Gets included by umachine.h
@@ -23,27 +23,27 @@
#ifdef U_HIDE_DEPRECATED_API
-#define LEUnicode_3_4 LEUnicode_DEPRECATED_API_DO_NOT_USE
-#define UBRK_TITLE_3_4 UBRK_TITLE_DEPRECATED_API_DO_NOT_USE
-#define ucol_getContractions_3_4 ucol_getContractions_DEPRECATED_API_DO_NOT_USE
-#define ucol_getLocale_3_4 ucol_getLocale_DEPRECATED_API_DO_NOT_USE
-#define ULOC_REQUESTED_LOCALE_3_4 ULOC_REQUESTED_LOCALE_DEPRECATED_API_DO_NOT_USE
-#define RES_NONE_3_4 RES_NONE_DEPRECATED_API_DO_NOT_USE
-#define RES_STRING_3_4 RES_STRING_DEPRECATED_API_DO_NOT_USE
-#define RES_BINARY_3_4 RES_BINARY_DEPRECATED_API_DO_NOT_USE
-#define RES_TABLE_3_4 RES_TABLE_DEPRECATED_API_DO_NOT_USE
-#define RES_ALIAS_3_4 RES_ALIAS_DEPRECATED_API_DO_NOT_USE
-#define RES_INT_3_4 RES_INT_DEPRECATED_API_DO_NOT_USE
-#define RES_ARRAY_3_4 RES_ARRAY_DEPRECATED_API_DO_NOT_USE
-#define RES_INT_VECTOR_3_4 RES_INT_VECTOR_DEPRECATED_API_DO_NOT_USE
-#define RES_RESERVED_3_4 RES_RESERVED_DEPRECATED_API_DO_NOT_USE
-#define ures_countArrayItems_3_4 ures_countArrayItems_DEPRECATED_API_DO_NOT_USE
-#define ures_getVersionNumber_3_4 ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE
-#define ures_getLocale_3_4 ures_getLocale_DEPRECATED_API_DO_NOT_USE
-#define utrans_open_3_4 utrans_open_DEPRECATED_API_DO_NOT_USE
-#define utrans_getID_3_4 utrans_getID_DEPRECATED_API_DO_NOT_USE
-#define utrans_unregister_3_4 utrans_unregister_DEPRECATED_API_DO_NOT_USE
-#define utrans_getAvailableID_3_4 utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE
+# if U_DISABLE_RENAMING
+# define ucol_getContractions ucol_getContractions_DEPRECATED_API_DO_NOT_USE
+# define ucol_getLocale ucol_getLocale_DEPRECATED_API_DO_NOT_USE
+# define ures_countArrayItems ures_countArrayItems_DEPRECATED_API_DO_NOT_USE
+# define ures_getLocale ures_getLocale_DEPRECATED_API_DO_NOT_USE
+# define ures_getVersionNumber ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE
+# define utrans_getAvailableID utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE
+# define utrans_getID utrans_getID_DEPRECATED_API_DO_NOT_USE
+# define utrans_open utrans_open_DEPRECATED_API_DO_NOT_USE
+# define utrans_unregister utrans_unregister_DEPRECATED_API_DO_NOT_USE
+# else
+# define ucol_getContractions_3_6 ucol_getContractions_DEPRECATED_API_DO_NOT_USE
+# define ucol_getLocale_3_6 ucol_getLocale_DEPRECATED_API_DO_NOT_USE
+# define ures_countArrayItems_3_6 ures_countArrayItems_DEPRECATED_API_DO_NOT_USE
+# define ures_getLocale_3_6 ures_getLocale_DEPRECATED_API_DO_NOT_USE
+# define ures_getVersionNumber_3_6 ures_getVersionNumber_DEPRECATED_API_DO_NOT_USE
+# define utrans_getAvailableID_3_6 utrans_getAvailableID_DEPRECATED_API_DO_NOT_USE
+# define utrans_getID_3_6 utrans_getID_DEPRECATED_API_DO_NOT_USE
+# define utrans_open_3_6 utrans_open_DEPRECATED_API_DO_NOT_USE
+# define utrans_unregister_3_6 utrans_unregister_DEPRECATED_API_DO_NOT_USE
+# endif /* U_DISABLE_RENAMING */
#endif /* U_HIDE_DEPRECATED_API */
#endif /* UDEPRCTD_H */
diff --git a/Build/source/libs/icu-xetex/common/unicode/udraft.h b/Build/source/libs/icu-xetex/common/unicode/udraft.h
index 180586289df..2c4150e108c 100644
--- a/Build/source/libs/icu-xetex/common/unicode/udraft.h
+++ b/Build/source/libs/icu-xetex/common/unicode/udraft.h
@@ -1,15 +1,15 @@
/*
*******************************************************************************
-* Copyright (C) 2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
-* file name: udraft.h
+* file name:
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
*
-* Created by: gendraft.pl, a perl script written by Ram Viswanadha
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
*
* Contains data for commenting out APIs.
* Gets included by umachine.h
@@ -23,273 +23,239 @@
#ifdef U_HIDE_DRAFT_API
-#define ubrk_setUText_3_4 ubrk_setUText_DRAFT_API_DO_NOT_USE
-#define ubrk_getRuleStatusVec_3_4 ubrk_getRuleStatusVec_DRAFT_API_DO_NOT_USE
-#define ubrk_getLocaleByType_3_4 ubrk_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define ucal_getLocaleByType_3_4 ucal_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define UCaseMap_3_4 UCaseMap_DRAFT_API_DO_NOT_USE
-#define ucasemap_open_3_4 ucasemap_open_DRAFT_API_DO_NOT_USE
-#define ucasemap_close_3_4 ucasemap_close_DRAFT_API_DO_NOT_USE
-#define ucasemap_getLocale_3_4 ucasemap_getLocale_DRAFT_API_DO_NOT_USE
-#define ucasemap_getOptions_3_4 ucasemap_getOptions_DRAFT_API_DO_NOT_USE
-#define ucasemap_setLocale_3_4 ucasemap_setLocale_DRAFT_API_DO_NOT_USE
-#define ucasemap_setOptions_3_4 ucasemap_setOptions_DRAFT_API_DO_NOT_USE
-#define ucasemap_utf8ToLower_3_4 ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE
-#define ucasemap_utf8ToUpper_3_4 ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE
-#define UCHAR_S_TERM_3_4 UCHAR_S_TERM_DRAFT_API_DO_NOT_USE
-#define UCHAR_VARIATION_SELECTOR_3_4 UCHAR_VARIATION_SELECTOR_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFD_INERT_3_4 UCHAR_NFD_INERT_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFKD_INERT_3_4 UCHAR_NFKD_INERT_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFC_INERT_3_4 UCHAR_NFC_INERT_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFKC_INERT_3_4 UCHAR_NFKC_INERT_DRAFT_API_DO_NOT_USE
-#define UCHAR_SEGMENT_STARTER_3_4 UCHAR_SEGMENT_STARTER_DRAFT_API_DO_NOT_USE
-#define UCHAR_PATTERN_SYNTAX_3_4 UCHAR_PATTERN_SYNTAX_DRAFT_API_DO_NOT_USE
-#define UCHAR_PATTERN_WHITE_SPACE_3_4 UCHAR_PATTERN_WHITE_SPACE_DRAFT_API_DO_NOT_USE
-#define UCHAR_POSIX_ALNUM_3_4 UCHAR_POSIX_ALNUM_DRAFT_API_DO_NOT_USE
-#define UCHAR_POSIX_BLANK_3_4 UCHAR_POSIX_BLANK_DRAFT_API_DO_NOT_USE
-#define UCHAR_POSIX_GRAPH_3_4 UCHAR_POSIX_GRAPH_DRAFT_API_DO_NOT_USE
-#define UCHAR_POSIX_PRINT_3_4 UCHAR_POSIX_PRINT_DRAFT_API_DO_NOT_USE
-#define UCHAR_POSIX_XDIGIT_3_4 UCHAR_POSIX_XDIGIT_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFD_QUICK_CHECK_3_4 UCHAR_NFD_QUICK_CHECK_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFKD_QUICK_CHECK_3_4 UCHAR_NFKD_QUICK_CHECK_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFC_QUICK_CHECK_3_4 UCHAR_NFC_QUICK_CHECK_DRAFT_API_DO_NOT_USE
-#define UCHAR_NFKC_QUICK_CHECK_3_4 UCHAR_NFKC_QUICK_CHECK_DRAFT_API_DO_NOT_USE
-#define UCHAR_LEAD_CANONICAL_COMBINING_CLASS_3_4 UCHAR_LEAD_CANONICAL_COMBINING_CLASS_DRAFT_API_DO_NOT_USE
-#define UCHAR_TRAIL_CANONICAL_COMBINING_CLASS_3_4 UCHAR_TRAIL_CANONICAL_COMBINING_CLASS_DRAFT_API_DO_NOT_USE
-#define UCHAR_GRAPHEME_CLUSTER_BREAK_3_4 UCHAR_GRAPHEME_CLUSTER_BREAK_DRAFT_API_DO_NOT_USE
-#define UCHAR_SENTENCE_BREAK_3_4 UCHAR_SENTENCE_BREAK_DRAFT_API_DO_NOT_USE
-#define UCHAR_WORD_BREAK_3_4 UCHAR_WORD_BREAK_DRAFT_API_DO_NOT_USE
-#define UGraphemeClusterBreak_3_4 UGraphemeClusterBreak_DRAFT_API_DO_NOT_USE
-#define UWordBreakValues_3_4 UWordBreakValues_DRAFT_API_DO_NOT_USE
-#define USentenceBreak_3_4 USentenceBreak_DRAFT_API_DO_NOT_USE
-#define U_LB_INSEPARABLE_3_4 U_LB_INSEPARABLE_DRAFT_API_DO_NOT_USE
-#define ucnv_fromUCountPending_3_4 ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE
-#define ucnv_toUCountPending_3_4 ucnv_toUCountPending_DRAFT_API_DO_NOT_USE
-#define ucol_openFromShortString_3_4 ucol_openFromShortString_DRAFT_API_DO_NOT_USE
-#define ucol_getContractionsAndExpansions_3_4 ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE
-#define ucol_openAvailableLocales_3_4 ucol_openAvailableLocales_DRAFT_API_DO_NOT_USE
-#define ucol_getKeywords_3_4 ucol_getKeywords_DRAFT_API_DO_NOT_USE
-#define ucol_getKeywordValues_3_4 ucol_getKeywordValues_DRAFT_API_DO_NOT_USE
-#define ucol_getFunctionalEquivalent_3_4 ucol_getFunctionalEquivalent_DRAFT_API_DO_NOT_USE
-#define ucol_getShortDefinitionString_3_4 ucol_getShortDefinitionString_DRAFT_API_DO_NOT_USE
-#define ucol_normalizeShortDefinitionString_3_4 ucol_normalizeShortDefinitionString_DRAFT_API_DO_NOT_USE
-#define ucol_getLocaleByType_3_4 ucol_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define ucol_cloneBinary_3_4 ucol_cloneBinary_DRAFT_API_DO_NOT_USE
-#define ucol_openBinary_3_4 ucol_openBinary_DRAFT_API_DO_NOT_USE
-#define UCURR_ALL_3_4 UCURR_ALL_DRAFT_API_DO_NOT_USE
-#define UCURR_COMMON_3_4 UCURR_COMMON_DRAFT_API_DO_NOT_USE
-#define UCURR_UNCOMMON_3_4 UCURR_UNCOMMON_DRAFT_API_DO_NOT_USE
-#define UCURR_DEPRECATED_3_4 UCURR_DEPRECATED_DRAFT_API_DO_NOT_USE
-#define UCURR_NON_DEPRECATED_3_4 UCURR_NON_DEPRECATED_DRAFT_API_DO_NOT_USE
-#define UCurrCurrencyType_3_4 UCurrCurrencyType_DRAFT_API_DO_NOT_USE
-#define ucurr_getDefaultFractionDigits_3_4 ucurr_getDefaultFractionDigits_DRAFT_API_DO_NOT_USE
-#define ucurr_getRoundingIncrement_3_4 ucurr_getRoundingIncrement_DRAFT_API_DO_NOT_USE
-#define ucurr_openISOCurrencies_3_4 ucurr_openISOCurrencies_DRAFT_API_DO_NOT_USE
-#define UDAT_ERA_FIELD_3_4 UDAT_ERA_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_YEAR_FIELD_3_4 UDAT_YEAR_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_MONTH_FIELD_3_4 UDAT_MONTH_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_DATE_FIELD_3_4 UDAT_DATE_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_HOUR_OF_DAY1_FIELD_3_4 UDAT_HOUR_OF_DAY1_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_HOUR_OF_DAY0_FIELD_3_4 UDAT_HOUR_OF_DAY0_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_MINUTE_FIELD_3_4 UDAT_MINUTE_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_SECOND_FIELD_3_4 UDAT_SECOND_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_FRACTIONAL_SECOND_FIELD_3_4 UDAT_FRACTIONAL_SECOND_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_DAY_OF_WEEK_FIELD_3_4 UDAT_DAY_OF_WEEK_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_DAY_OF_YEAR_FIELD_3_4 UDAT_DAY_OF_YEAR_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_DAY_OF_WEEK_IN_MONTH_FIELD_3_4 UDAT_DAY_OF_WEEK_IN_MONTH_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_WEEK_OF_YEAR_FIELD_3_4 UDAT_WEEK_OF_YEAR_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_WEEK_OF_MONTH_FIELD_3_4 UDAT_WEEK_OF_MONTH_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_AM_PM_FIELD_3_4 UDAT_AM_PM_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_HOUR1_FIELD_3_4 UDAT_HOUR1_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_HOUR0_FIELD_3_4 UDAT_HOUR0_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_TIMEZONE_FIELD_3_4 UDAT_TIMEZONE_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_YEAR_WOY_FIELD_3_4 UDAT_YEAR_WOY_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_DOW_LOCAL_FIELD_3_4 UDAT_DOW_LOCAL_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_EXTENDED_YEAR_FIELD_3_4 UDAT_EXTENDED_YEAR_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_JULIAN_DAY_FIELD_3_4 UDAT_JULIAN_DAY_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_MILLISECONDS_IN_DAY_FIELD_3_4 UDAT_MILLISECONDS_IN_DAY_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_TIMEZONE_RFC_FIELD_3_4 UDAT_TIMEZONE_RFC_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_TIMEZONE_GENERIC_FIELD_3_4 UDAT_TIMEZONE_GENERIC_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_STANDALONE_DAY_FIELD_3_4 UDAT_STANDALONE_DAY_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_STANDALONE_MONTH_FIELD_3_4 UDAT_STANDALONE_MONTH_FIELD_DRAFT_API_DO_NOT_USE
-#define UDAT_FIELD_COUNT_3_4 UDAT_FIELD_COUNT_DRAFT_API_DO_NOT_USE
-#define UDateFormatField_3_4 UDateFormatField_DRAFT_API_DO_NOT_USE
-#define udat_getLocaleByType_3_4 udat_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define UDataFileAccess_3_4 UDataFileAccess_DRAFT_API_DO_NOT_USE
-#define udata_setFileAccess_3_4 udata_setFileAccess_DRAFT_API_DO_NOT_USE
-#define UAcceptResult_3_4 UAcceptResult_DRAFT_API_DO_NOT_USE
-#define uloc_setKeywordValue_3_4 uloc_setKeywordValue_DRAFT_API_DO_NOT_USE
-#define uloc_acceptLanguageFromHTTP_3_4 uloc_acceptLanguageFromHTTP_DRAFT_API_DO_NOT_USE
-#define uloc_acceptLanguage_3_4 uloc_acceptLanguage_DRAFT_API_DO_NOT_USE
-#define ULocaleData_3_4 ULocaleData_DRAFT_API_DO_NOT_USE
-#define ULocaleDataExemplarSetType_3_4 ULocaleDataExemplarSetType_DRAFT_API_DO_NOT_USE
-#define ULocaleDataDelimiterType_3_4 ULocaleDataDelimiterType_DRAFT_API_DO_NOT_USE
-#define UMeasurementSystem_3_4 UMeasurementSystem_DRAFT_API_DO_NOT_USE
-#define ulocdata_open_3_4 ulocdata_open_DRAFT_API_DO_NOT_USE
-#define ulocdata_close_3_4 ulocdata_close_DRAFT_API_DO_NOT_USE
-#define ulocdata_setNoSubstitute_3_4 ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE
-#define ulocdata_getNoSubstitute_3_4 ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE
-#define ulocdata_getExemplarSet_3_4 ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE
-#define ulocdata_getDelimiter_3_4 ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE
-#define ulocdata_getMeasurementSystem_3_4 ulocdata_getMeasurementSystem_DRAFT_API_DO_NOT_USE
-#define ulocdata_getPaperSize_3_4 ulocdata_getPaperSize_DRAFT_API_DO_NOT_USE
-#define umsg_autoQuoteApostrophe_3_4 umsg_autoQuoteApostrophe_DRAFT_API_DO_NOT_USE
-#define UNUM_PATTERN_DECIMAL_3_4 UNUM_PATTERN_DECIMAL_DRAFT_API_DO_NOT_USE
-#define UNUM_ORDINAL_3_4 UNUM_ORDINAL_DRAFT_API_DO_NOT_USE
-#define UNUM_DURATION_3_4 UNUM_DURATION_DRAFT_API_DO_NOT_USE
-#define UNUM_PATTERN_RULEBASED_3_4 UNUM_PATTERN_RULEBASED_DRAFT_API_DO_NOT_USE
-#define UNUM_SIGNIFICANT_DIGITS_USED_3_4 UNUM_SIGNIFICANT_DIGITS_USED_DRAFT_API_DO_NOT_USE
-#define UNUM_MIN_SIGNIFICANT_DIGITS_3_4 UNUM_MIN_SIGNIFICANT_DIGITS_DRAFT_API_DO_NOT_USE
-#define UNUM_MAX_SIGNIFICANT_DIGITS_3_4 UNUM_MAX_SIGNIFICANT_DIGITS_DRAFT_API_DO_NOT_USE
-#define UNUM_LENIENT_PARSE_3_4 UNUM_LENIENT_PARSE_DRAFT_API_DO_NOT_USE
-#define UNUM_DEFAULT_RULESET_3_4 UNUM_DEFAULT_RULESET_DRAFT_API_DO_NOT_USE
-#define UNUM_PUBLIC_RULESETS_3_4 UNUM_PUBLIC_RULESETS_DRAFT_API_DO_NOT_USE
-#define UNUM_SIGNIFICANT_DIGIT_SYMBOL_3_4 UNUM_SIGNIFICANT_DIGIT_SYMBOL_DRAFT_API_DO_NOT_USE
-#define unum_formatDoubleCurrency_3_4 unum_formatDoubleCurrency_DRAFT_API_DO_NOT_USE
-#define unum_parseDoubleCurrency_3_4 unum_parseDoubleCurrency_DRAFT_API_DO_NOT_USE
-#define unum_getLocaleByType_3_4 unum_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define URegularExpression_3_4 URegularExpression_DRAFT_API_DO_NOT_USE
-#define UREGEX_CANON_EQ_3_4 UREGEX_CANON_EQ_DRAFT_API_DO_NOT_USE
-#define uregex_open_3_4 uregex_open_DRAFT_API_DO_NOT_USE
-#define uregex_openC_3_4 uregex_openC_DRAFT_API_DO_NOT_USE
-#define uregex_close_3_4 uregex_close_DRAFT_API_DO_NOT_USE
-#define uregex_clone_3_4 uregex_clone_DRAFT_API_DO_NOT_USE
-#define uregex_pattern_3_4 uregex_pattern_DRAFT_API_DO_NOT_USE
-#define uregex_flags_3_4 uregex_flags_DRAFT_API_DO_NOT_USE
-#define uregex_setText_3_4 uregex_setText_DRAFT_API_DO_NOT_USE
-#define uregex_getText_3_4 uregex_getText_DRAFT_API_DO_NOT_USE
-#define uregex_matches_3_4 uregex_matches_DRAFT_API_DO_NOT_USE
-#define uregex_lookingAt_3_4 uregex_lookingAt_DRAFT_API_DO_NOT_USE
-#define uregex_find_3_4 uregex_find_DRAFT_API_DO_NOT_USE
-#define uregex_findNext_3_4 uregex_findNext_DRAFT_API_DO_NOT_USE
-#define uregex_groupCount_3_4 uregex_groupCount_DRAFT_API_DO_NOT_USE
-#define uregex_group_3_4 uregex_group_DRAFT_API_DO_NOT_USE
-#define uregex_start_3_4 uregex_start_DRAFT_API_DO_NOT_USE
-#define uregex_end_3_4 uregex_end_DRAFT_API_DO_NOT_USE
-#define uregex_reset_3_4 uregex_reset_DRAFT_API_DO_NOT_USE
-#define uregex_replaceAll_3_4 uregex_replaceAll_DRAFT_API_DO_NOT_USE
-#define uregex_replaceFirst_3_4 uregex_replaceFirst_DRAFT_API_DO_NOT_USE
-#define uregex_appendReplacement_3_4 uregex_appendReplacement_DRAFT_API_DO_NOT_USE
-#define uregex_appendTail_3_4 uregex_appendTail_DRAFT_API_DO_NOT_USE
-#define uregex_split_3_4 uregex_split_DRAFT_API_DO_NOT_USE
-#define ures_getLocaleByType_3_4 ures_getLocaleByType_DRAFT_API_DO_NOT_USE
-#define ures_openAvailableLocales_3_4 ures_openAvailableLocales_DRAFT_API_DO_NOT_USE
-#define USCRIPT_KATAKANA_OR_HIRAGANA_3_4 USCRIPT_KATAKANA_OR_HIRAGANA_DRAFT_API_DO_NOT_USE
-#define USET_ADD_CASE_MAPPINGS_3_4 USET_ADD_CASE_MAPPINGS_DRAFT_API_DO_NOT_USE
-#define uset_set_3_4 uset_set_DRAFT_API_DO_NOT_USE
-#define uset_applyIntPropertyValue_3_4 uset_applyIntPropertyValue_DRAFT_API_DO_NOT_USE
-#define uset_applyPropertyAlias_3_4 uset_applyPropertyAlias_DRAFT_API_DO_NOT_USE
-#define uset_resemblesPattern_3_4 uset_resemblesPattern_DRAFT_API_DO_NOT_USE
-#define uset_addAllCodePoints_3_4 uset_addAllCodePoints_DRAFT_API_DO_NOT_USE
-#define uset_removeAll_3_4 uset_removeAll_DRAFT_API_DO_NOT_USE
-#define uset_retain_3_4 uset_retain_DRAFT_API_DO_NOT_USE
-#define uset_retainAll_3_4 uset_retainAll_DRAFT_API_DO_NOT_USE
-#define uset_compact_3_4 uset_compact_DRAFT_API_DO_NOT_USE
-#define uset_complementAll_3_4 uset_complementAll_DRAFT_API_DO_NOT_USE
-#define uset_indexOf_3_4 uset_indexOf_DRAFT_API_DO_NOT_USE
-#define uset_charAt_3_4 uset_charAt_DRAFT_API_DO_NOT_USE
-#define uset_containsAll_3_4 uset_containsAll_DRAFT_API_DO_NOT_USE
-#define uset_containsAllCodePoints_3_4 uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE
-#define uset_containsNone_3_4 uset_containsNone_DRAFT_API_DO_NOT_USE
-#define uset_containsSome_3_4 uset_containsSome_DRAFT_API_DO_NOT_USE
-#define uset_equals_3_4 uset_equals_DRAFT_API_DO_NOT_USE
-#define UFILE_3_4 UFILE_DRAFT_API_DO_NOT_USE
-#define UFileDirection_3_4 UFileDirection_DRAFT_API_DO_NOT_USE
-#define u_fopen_3_4 u_fopen_DRAFT_API_DO_NOT_USE
-#define u_finit_3_4 u_finit_DRAFT_API_DO_NOT_USE
-#define u_fstropen_3_4 u_fstropen_DRAFT_API_DO_NOT_USE
-#define u_fclose_3_4 u_fclose_DRAFT_API_DO_NOT_USE
-#define u_feof_3_4 u_feof_DRAFT_API_DO_NOT_USE
-#define u_fflush_3_4 u_fflush_DRAFT_API_DO_NOT_USE
-#define u_frewind_3_4 u_frewind_DRAFT_API_DO_NOT_USE
-#define u_fgetfile_3_4 u_fgetfile_DRAFT_API_DO_NOT_USE
-#define u_fgetlocale_3_4 u_fgetlocale_DRAFT_API_DO_NOT_USE
-#define u_fsetlocale_3_4 u_fsetlocale_DRAFT_API_DO_NOT_USE
-#define u_fgetcodepage_3_4 u_fgetcodepage_DRAFT_API_DO_NOT_USE
-#define u_fsetcodepage_3_4 u_fsetcodepage_DRAFT_API_DO_NOT_USE
-#define u_fgetConverter_3_4 u_fgetConverter_DRAFT_API_DO_NOT_USE
-#define u_fprintf_3_4 u_fprintf_DRAFT_API_DO_NOT_USE
-#define u_vfprintf_3_4 u_vfprintf_DRAFT_API_DO_NOT_USE
-#define u_fprintf_u_3_4 u_fprintf_u_DRAFT_API_DO_NOT_USE
-#define u_vfprintf_u_3_4 u_vfprintf_u_DRAFT_API_DO_NOT_USE
-#define u_fputs_3_4 u_fputs_DRAFT_API_DO_NOT_USE
-#define u_fputc_3_4 u_fputc_DRAFT_API_DO_NOT_USE
-#define u_file_write_3_4 u_file_write_DRAFT_API_DO_NOT_USE
-#define u_fscanf_3_4 u_fscanf_DRAFT_API_DO_NOT_USE
-#define u_vfscanf_3_4 u_vfscanf_DRAFT_API_DO_NOT_USE
-#define u_fscanf_u_3_4 u_fscanf_u_DRAFT_API_DO_NOT_USE
-#define u_vfscanf_u_3_4 u_vfscanf_u_DRAFT_API_DO_NOT_USE
-#define u_fgets_3_4 u_fgets_DRAFT_API_DO_NOT_USE
-#define u_fgetc_3_4 u_fgetc_DRAFT_API_DO_NOT_USE
-#define u_fgetcx_3_4 u_fgetcx_DRAFT_API_DO_NOT_USE
-#define u_fungetc_3_4 u_fungetc_DRAFT_API_DO_NOT_USE
-#define u_file_read_3_4 u_file_read_DRAFT_API_DO_NOT_USE
-#define u_fsettransliterator_3_4 u_fsettransliterator_DRAFT_API_DO_NOT_USE
-#define u_sprintf_3_4 u_sprintf_DRAFT_API_DO_NOT_USE
-#define u_snprintf_3_4 u_snprintf_DRAFT_API_DO_NOT_USE
-#define u_vsprintf_3_4 u_vsprintf_DRAFT_API_DO_NOT_USE
-#define u_vsnprintf_3_4 u_vsnprintf_DRAFT_API_DO_NOT_USE
-#define u_sprintf_u_3_4 u_sprintf_u_DRAFT_API_DO_NOT_USE
-#define u_snprintf_u_3_4 u_snprintf_u_DRAFT_API_DO_NOT_USE
-#define u_vsprintf_u_3_4 u_vsprintf_u_DRAFT_API_DO_NOT_USE
-#define u_vsnprintf_u_3_4 u_vsnprintf_u_DRAFT_API_DO_NOT_USE
-#define u_sscanf_3_4 u_sscanf_DRAFT_API_DO_NOT_USE
-#define u_vsscanf_3_4 u_vsscanf_DRAFT_API_DO_NOT_USE
-#define u_sscanf_u_3_4 u_sscanf_u_DRAFT_API_DO_NOT_USE
-#define u_vsscanf_u_3_4 u_vsscanf_u_DRAFT_API_DO_NOT_USE
-#define UText_3_4 UText_DRAFT_API_DO_NOT_USE
-#define UTextChunk_3_4 UTextChunk_DRAFT_API_DO_NOT_USE
-#define UTextClone_3_4 UTextClone_DRAFT_API_DO_NOT_USE
-#define UTextNativeLength_3_4 UTextNativeLength_DRAFT_API_DO_NOT_USE
-#define UTextAccess_3_4 UTextAccess_DRAFT_API_DO_NOT_USE
-#define UTextExtract_3_4 UTextExtract_DRAFT_API_DO_NOT_USE
-#define UTextReplace_3_4 UTextReplace_DRAFT_API_DO_NOT_USE
-#define UTextCopy_3_4 UTextCopy_DRAFT_API_DO_NOT_USE
-#define UTextMapOffsetToNative_3_4 UTextMapOffsetToNative_DRAFT_API_DO_NOT_USE
-#define UTextMapNativeIndexToUTF16_3_4 UTextMapNativeIndexToUTF16_DRAFT_API_DO_NOT_USE
-#define UTextClose_3_4 UTextClose_DRAFT_API_DO_NOT_USE
-#define utext_close_3_4 utext_close_DRAFT_API_DO_NOT_USE
-#define utext_openUTF8_3_4 utext_openUTF8_DRAFT_API_DO_NOT_USE
-#define utext_openUChars_3_4 utext_openUChars_DRAFT_API_DO_NOT_USE
-#define utext_clone_3_4 utext_clone_DRAFT_API_DO_NOT_USE
-#define utext_nativeLength_3_4 utext_nativeLength_DRAFT_API_DO_NOT_USE
-#define utext_isLengthExpensive_3_4 utext_isLengthExpensive_DRAFT_API_DO_NOT_USE
-#define utext_char32At_3_4 utext_char32At_DRAFT_API_DO_NOT_USE
-#define utext_current32_3_4 utext_current32_DRAFT_API_DO_NOT_USE
-#define utext_next32From_3_4 utext_next32From_DRAFT_API_DO_NOT_USE
-#define utext_previous32From_3_4 utext_previous32From_DRAFT_API_DO_NOT_USE
-#define utext_getNativeIndex_3_4 utext_getNativeIndex_DRAFT_API_DO_NOT_USE
-#define utext_setNativeIndex_3_4 utext_setNativeIndex_DRAFT_API_DO_NOT_USE
-#define utext_moveIndex32_3_4 utext_moveIndex32_DRAFT_API_DO_NOT_USE
-#define utext_extract_3_4 utext_extract_DRAFT_API_DO_NOT_USE
-#define utext_isWritable_3_4 utext_isWritable_DRAFT_API_DO_NOT_USE
-#define utext_hasMetaData_3_4 utext_hasMetaData_DRAFT_API_DO_NOT_USE
-#define utext_replace_3_4 utext_replace_DRAFT_API_DO_NOT_USE
-#define utext_copy_3_4 utext_copy_DRAFT_API_DO_NOT_USE
-#define utext_setup_3_4 utext_setup_DRAFT_API_DO_NOT_USE
-#define UDTS_JAVA_TIME_3_4 UDTS_JAVA_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_UNIX_TIME_3_4 UDTS_UNIX_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_ICU4C_TIME_3_4 UDTS_ICU4C_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_WINDOWS_FILE_TIME_3_4 UDTS_WINDOWS_FILE_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_DOTNET_DATE_TIME_3_4 UDTS_DOTNET_DATE_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_MAC_OLD_TIME_3_4 UDTS_MAC_OLD_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_MAC_TIME_3_4 UDTS_MAC_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_EXCEL_TIME_3_4 UDTS_EXCEL_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_DB2_TIME_3_4 UDTS_DB2_TIME_DRAFT_API_DO_NOT_USE
-#define UDTS_MAX_SCALE_3_4 UDTS_MAX_SCALE_DRAFT_API_DO_NOT_USE
-#define UDateTimeScale_3_4 UDateTimeScale_DRAFT_API_DO_NOT_USE
-#define UTSV_UNITS_VALUE_3_4 UTSV_UNITS_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_EPOCH_OFFSET_VALUE_3_4 UTSV_EPOCH_OFFSET_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_FROM_MIN_VALUE_3_4 UTSV_FROM_MIN_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_FROM_MAX_VALUE_3_4 UTSV_FROM_MAX_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_TO_MIN_VALUE_3_4 UTSV_TO_MIN_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_TO_MAX_VALUE_3_4 UTSV_TO_MAX_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_EPOCH_OFFSET_PLUS_1_VALUE_3_4 UTSV_EPOCH_OFFSET_PLUS_1_VALUE_DRAFT_API_DO_NOT_USE
-#define UTSV_EPOCH_OFFSET_MINUS_1_VALUE_3_4 UTSV_EPOCH_OFFSET_MINUS_1_VALUE_DRAFT_API_DO_NOT_USE
-#define UTimeScaleValue_3_4 UTimeScaleValue_DRAFT_API_DO_NOT_USE
-#define utmscale_getTimeScaleValue_3_4 utmscale_getTimeScaleValue_DRAFT_API_DO_NOT_USE
-#define utmscale_fromInt64_3_4 utmscale_fromInt64_DRAFT_API_DO_NOT_USE
-#define utmscale_toInt64_3_4 utmscale_toInt64_DRAFT_API_DO_NOT_USE
+# if U_DISABLE_RENAMING
+# define u_fclose u_fclose_DRAFT_API_DO_NOT_USE
+# define u_feof u_feof_DRAFT_API_DO_NOT_USE
+# define u_fflush u_fflush_DRAFT_API_DO_NOT_USE
+# define u_fgetConverter u_fgetConverter_DRAFT_API_DO_NOT_USE
+# define u_fgetc u_fgetc_DRAFT_API_DO_NOT_USE
+# define u_fgetcodepage u_fgetcodepage_DRAFT_API_DO_NOT_USE
+# define u_fgetcx u_fgetcx_DRAFT_API_DO_NOT_USE
+# define u_fgetfile u_fgetfile_DRAFT_API_DO_NOT_USE
+# define u_fgetlocale u_fgetlocale_DRAFT_API_DO_NOT_USE
+# define u_fgets u_fgets_DRAFT_API_DO_NOT_USE
+# define u_file_read u_file_read_DRAFT_API_DO_NOT_USE
+# define u_file_write u_file_write_DRAFT_API_DO_NOT_USE
+# define u_finit u_finit_DRAFT_API_DO_NOT_USE
+# define u_fopen u_fopen_DRAFT_API_DO_NOT_USE
+# define u_fprintf u_fprintf_DRAFT_API_DO_NOT_USE
+# define u_fprintf_u u_fprintf_u_DRAFT_API_DO_NOT_USE
+# define u_fputc u_fputc_DRAFT_API_DO_NOT_USE
+# define u_fputs u_fputs_DRAFT_API_DO_NOT_USE
+# define u_frewind u_frewind_DRAFT_API_DO_NOT_USE
+# define u_fscanf u_fscanf_DRAFT_API_DO_NOT_USE
+# define u_fscanf_u u_fscanf_u_DRAFT_API_DO_NOT_USE
+# define u_fsetcodepage u_fsetcodepage_DRAFT_API_DO_NOT_USE
+# define u_fsetlocale u_fsetlocale_DRAFT_API_DO_NOT_USE
+# define u_fsettransliterator u_fsettransliterator_DRAFT_API_DO_NOT_USE
+# define u_fstropen u_fstropen_DRAFT_API_DO_NOT_USE
+# define u_fungetc u_fungetc_DRAFT_API_DO_NOT_USE
+# define u_snprintf u_snprintf_DRAFT_API_DO_NOT_USE
+# define u_snprintf_u u_snprintf_u_DRAFT_API_DO_NOT_USE
+# define u_sprintf u_sprintf_DRAFT_API_DO_NOT_USE
+# define u_sprintf_u u_sprintf_u_DRAFT_API_DO_NOT_USE
+# define u_sscanf u_sscanf_DRAFT_API_DO_NOT_USE
+# define u_sscanf_u u_sscanf_u_DRAFT_API_DO_NOT_USE
+# define u_strFromUTF8Lenient u_strFromUTF8Lenient_DRAFT_API_DO_NOT_USE
+# define u_strFromUTF8WithSub u_strFromUTF8WithSub_DRAFT_API_DO_NOT_USE
+# define u_strToUTF8WithSub u_strToUTF8WithSub_DRAFT_API_DO_NOT_USE
+# define u_vfprintf u_vfprintf_DRAFT_API_DO_NOT_USE
+# define u_vfprintf_u u_vfprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vfscanf u_vfscanf_DRAFT_API_DO_NOT_USE
+# define u_vfscanf_u u_vfscanf_u_DRAFT_API_DO_NOT_USE
+# define u_vsnprintf u_vsnprintf_DRAFT_API_DO_NOT_USE
+# define u_vsnprintf_u u_vsnprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vsprintf u_vsprintf_DRAFT_API_DO_NOT_USE
+# define u_vsprintf_u u_vsprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vsscanf u_vsscanf_DRAFT_API_DO_NOT_USE
+# define u_vsscanf_u u_vsscanf_u_DRAFT_API_DO_NOT_USE
+# define ubidi_getProcessedLength ubidi_getProcessedLength_DRAFT_API_DO_NOT_USE
+# define ubidi_getReorderingMode ubidi_getReorderingMode_DRAFT_API_DO_NOT_USE
+# define ubidi_getReorderingOptions ubidi_getReorderingOptions_DRAFT_API_DO_NOT_USE
+# define ubidi_getResultLength ubidi_getResultLength_DRAFT_API_DO_NOT_USE
+# define ubidi_setReorderingMode ubidi_setReorderingMode_DRAFT_API_DO_NOT_USE
+# define ubidi_setReorderingOptions ubidi_setReorderingOptions_DRAFT_API_DO_NOT_USE
+# define ubrk_setUText ubrk_setUText_DRAFT_API_DO_NOT_USE
+# define ucal_getGregorianChange ucal_getGregorianChange_DRAFT_API_DO_NOT_USE
+# define ucal_setGregorianChange ucal_setGregorianChange_DRAFT_API_DO_NOT_USE
+# define ucasemap_close ucasemap_close_DRAFT_API_DO_NOT_USE
+# define ucasemap_getLocale ucasemap_getLocale_DRAFT_API_DO_NOT_USE
+# define ucasemap_getOptions ucasemap_getOptions_DRAFT_API_DO_NOT_USE
+# define ucasemap_open ucasemap_open_DRAFT_API_DO_NOT_USE
+# define ucasemap_setLocale ucasemap_setLocale_DRAFT_API_DO_NOT_USE
+# define ucasemap_setOptions ucasemap_setOptions_DRAFT_API_DO_NOT_USE
+# define ucasemap_utf8ToLower ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE
+# define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE
+# define ucnv_fromUCountPending ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE
+# define ucnv_setSubstString ucnv_setSubstString_DRAFT_API_DO_NOT_USE
+# define ucnv_toUCountPending ucnv_toUCountPending_DRAFT_API_DO_NOT_USE
+# define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE
+# define ucsdet_close ucsdet_close_DRAFT_API_DO_NOT_USE
+# define ucsdet_detect ucsdet_detect_DRAFT_API_DO_NOT_USE
+# define ucsdet_detectAll ucsdet_detectAll_DRAFT_API_DO_NOT_USE
+# define ucsdet_enableInputFilter ucsdet_enableInputFilter_DRAFT_API_DO_NOT_USE
+# define ucsdet_getAllDetectableCharsets ucsdet_getAllDetectableCharsets_DRAFT_API_DO_NOT_USE
+# define ucsdet_getConfidence ucsdet_getConfidence_DRAFT_API_DO_NOT_USE
+# define ucsdet_getLanguage ucsdet_getLanguage_DRAFT_API_DO_NOT_USE
+# define ucsdet_getName ucsdet_getName_DRAFT_API_DO_NOT_USE
+# define ucsdet_getUChars ucsdet_getUChars_DRAFT_API_DO_NOT_USE
+# define ucsdet_isInputFilterEnabled ucsdet_isInputFilterEnabled_DRAFT_API_DO_NOT_USE
+# define ucsdet_open ucsdet_open_DRAFT_API_DO_NOT_USE
+# define ucsdet_setDeclaredEncoding ucsdet_setDeclaredEncoding_DRAFT_API_DO_NOT_USE
+# define ucsdet_setText ucsdet_setText_DRAFT_API_DO_NOT_USE
+# define udata_setFileAccess udata_setFileAccess_DRAFT_API_DO_NOT_USE
+# define ulocdata_close ulocdata_close_DRAFT_API_DO_NOT_USE
+# define ulocdata_getDelimiter ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE
+# define ulocdata_getExemplarSet ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE
+# define ulocdata_getNoSubstitute ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE
+# define ulocdata_open ulocdata_open_DRAFT_API_DO_NOT_USE
+# define ulocdata_setNoSubstitute ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8String ures_getUTF8String_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8StringByIndex ures_getUTF8StringByIndex_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8StringByKey ures_getUTF8StringByKey_DRAFT_API_DO_NOT_USE
+# define uset_addAllCodePoints uset_addAllCodePoints_DRAFT_API_DO_NOT_USE
+# define uset_containsAllCodePoints uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE
+# define utext_char32At utext_char32At_DRAFT_API_DO_NOT_USE
+# define utext_clone utext_clone_DRAFT_API_DO_NOT_USE
+# define utext_close utext_close_DRAFT_API_DO_NOT_USE
+# define utext_copy utext_copy_DRAFT_API_DO_NOT_USE
+# define utext_current32 utext_current32_DRAFT_API_DO_NOT_USE
+# define utext_equals utext_equals_DRAFT_API_DO_NOT_USE
+# define utext_extract utext_extract_DRAFT_API_DO_NOT_USE
+# define utext_freeze utext_freeze_DRAFT_API_DO_NOT_USE
+# define utext_getNativeIndex utext_getNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_getPreviousNativeIndex utext_getPreviousNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_hasMetaData utext_hasMetaData_DRAFT_API_DO_NOT_USE
+# define utext_isLengthExpensive utext_isLengthExpensive_DRAFT_API_DO_NOT_USE
+# define utext_isWritable utext_isWritable_DRAFT_API_DO_NOT_USE
+# define utext_moveIndex32 utext_moveIndex32_DRAFT_API_DO_NOT_USE
+# define utext_nativeLength utext_nativeLength_DRAFT_API_DO_NOT_USE
+# define utext_next32 utext_next32_DRAFT_API_DO_NOT_USE
+# define utext_next32From utext_next32From_DRAFT_API_DO_NOT_USE
+# define utext_openUChars utext_openUChars_DRAFT_API_DO_NOT_USE
+# define utext_openUTF8 utext_openUTF8_DRAFT_API_DO_NOT_USE
+# define utext_previous32 utext_previous32_DRAFT_API_DO_NOT_USE
+# define utext_previous32From utext_previous32From_DRAFT_API_DO_NOT_USE
+# define utext_replace utext_replace_DRAFT_API_DO_NOT_USE
+# define utext_setNativeIndex utext_setNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_setup utext_setup_DRAFT_API_DO_NOT_USE
+# else
+# define u_fclose_3_6 u_fclose_DRAFT_API_DO_NOT_USE
+# define u_feof_3_6 u_feof_DRAFT_API_DO_NOT_USE
+# define u_fflush_3_6 u_fflush_DRAFT_API_DO_NOT_USE
+# define u_fgetConverter_3_6 u_fgetConverter_DRAFT_API_DO_NOT_USE
+# define u_fgetc_3_6 u_fgetc_DRAFT_API_DO_NOT_USE
+# define u_fgetcodepage_3_6 u_fgetcodepage_DRAFT_API_DO_NOT_USE
+# define u_fgetcx_3_6 u_fgetcx_DRAFT_API_DO_NOT_USE
+# define u_fgetfile_3_6 u_fgetfile_DRAFT_API_DO_NOT_USE
+# define u_fgetlocale_3_6 u_fgetlocale_DRAFT_API_DO_NOT_USE
+# define u_fgets_3_6 u_fgets_DRAFT_API_DO_NOT_USE
+# define u_file_read_3_6 u_file_read_DRAFT_API_DO_NOT_USE
+# define u_file_write_3_6 u_file_write_DRAFT_API_DO_NOT_USE
+# define u_finit_3_6 u_finit_DRAFT_API_DO_NOT_USE
+# define u_fopen_3_6 u_fopen_DRAFT_API_DO_NOT_USE
+# define u_fprintf_3_6 u_fprintf_DRAFT_API_DO_NOT_USE
+# define u_fprintf_u_3_6 u_fprintf_u_DRAFT_API_DO_NOT_USE
+# define u_fputc_3_6 u_fputc_DRAFT_API_DO_NOT_USE
+# define u_fputs_3_6 u_fputs_DRAFT_API_DO_NOT_USE
+# define u_frewind_3_6 u_frewind_DRAFT_API_DO_NOT_USE
+# define u_fscanf_3_6 u_fscanf_DRAFT_API_DO_NOT_USE
+# define u_fscanf_u_3_6 u_fscanf_u_DRAFT_API_DO_NOT_USE
+# define u_fsetcodepage_3_6 u_fsetcodepage_DRAFT_API_DO_NOT_USE
+# define u_fsetlocale_3_6 u_fsetlocale_DRAFT_API_DO_NOT_USE
+# define u_fsettransliterator_3_6 u_fsettransliterator_DRAFT_API_DO_NOT_USE
+# define u_fstropen_3_6 u_fstropen_DRAFT_API_DO_NOT_USE
+# define u_fungetc_3_6 u_fungetc_DRAFT_API_DO_NOT_USE
+# define u_snprintf_3_6 u_snprintf_DRAFT_API_DO_NOT_USE
+# define u_snprintf_u_3_6 u_snprintf_u_DRAFT_API_DO_NOT_USE
+# define u_sprintf_3_6 u_sprintf_DRAFT_API_DO_NOT_USE
+# define u_sprintf_u_3_6 u_sprintf_u_DRAFT_API_DO_NOT_USE
+# define u_sscanf_3_6 u_sscanf_DRAFT_API_DO_NOT_USE
+# define u_sscanf_u_3_6 u_sscanf_u_DRAFT_API_DO_NOT_USE
+# define u_strFromUTF8Lenient_3_6 u_strFromUTF8Lenient_DRAFT_API_DO_NOT_USE
+# define u_strFromUTF8WithSub_3_6 u_strFromUTF8WithSub_DRAFT_API_DO_NOT_USE
+# define u_strToUTF8WithSub_3_6 u_strToUTF8WithSub_DRAFT_API_DO_NOT_USE
+# define u_vfprintf_3_6 u_vfprintf_DRAFT_API_DO_NOT_USE
+# define u_vfprintf_u_3_6 u_vfprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vfscanf_3_6 u_vfscanf_DRAFT_API_DO_NOT_USE
+# define u_vfscanf_u_3_6 u_vfscanf_u_DRAFT_API_DO_NOT_USE
+# define u_vsnprintf_3_6 u_vsnprintf_DRAFT_API_DO_NOT_USE
+# define u_vsnprintf_u_3_6 u_vsnprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vsprintf_3_6 u_vsprintf_DRAFT_API_DO_NOT_USE
+# define u_vsprintf_u_3_6 u_vsprintf_u_DRAFT_API_DO_NOT_USE
+# define u_vsscanf_3_6 u_vsscanf_DRAFT_API_DO_NOT_USE
+# define u_vsscanf_u_3_6 u_vsscanf_u_DRAFT_API_DO_NOT_USE
+# define ubidi_getProcessedLength_3_6 ubidi_getProcessedLength_DRAFT_API_DO_NOT_USE
+# define ubidi_getReorderingMode_3_6 ubidi_getReorderingMode_DRAFT_API_DO_NOT_USE
+# define ubidi_getReorderingOptions_3_6 ubidi_getReorderingOptions_DRAFT_API_DO_NOT_USE
+# define ubidi_getResultLength_3_6 ubidi_getResultLength_DRAFT_API_DO_NOT_USE
+# define ubidi_setReorderingMode_3_6 ubidi_setReorderingMode_DRAFT_API_DO_NOT_USE
+# define ubidi_setReorderingOptions_3_6 ubidi_setReorderingOptions_DRAFT_API_DO_NOT_USE
+# define ubrk_setUText_3_6 ubrk_setUText_DRAFT_API_DO_NOT_USE
+# define ucal_getGregorianChange_3_6 ucal_getGregorianChange_DRAFT_API_DO_NOT_USE
+# define ucal_setGregorianChange_3_6 ucal_setGregorianChange_DRAFT_API_DO_NOT_USE
+# define ucasemap_close_3_6 ucasemap_close_DRAFT_API_DO_NOT_USE
+# define ucasemap_getLocale_3_6 ucasemap_getLocale_DRAFT_API_DO_NOT_USE
+# define ucasemap_getOptions_3_6 ucasemap_getOptions_DRAFT_API_DO_NOT_USE
+# define ucasemap_open_3_6 ucasemap_open_DRAFT_API_DO_NOT_USE
+# define ucasemap_setLocale_3_6 ucasemap_setLocale_DRAFT_API_DO_NOT_USE
+# define ucasemap_setOptions_3_6 ucasemap_setOptions_DRAFT_API_DO_NOT_USE
+# define ucasemap_utf8ToLower_3_6 ucasemap_utf8ToLower_DRAFT_API_DO_NOT_USE
+# define ucasemap_utf8ToUpper_3_6 ucasemap_utf8ToUpper_DRAFT_API_DO_NOT_USE
+# define ucnv_fromUCountPending_3_6 ucnv_fromUCountPending_DRAFT_API_DO_NOT_USE
+# define ucnv_setSubstString_3_6 ucnv_setSubstString_DRAFT_API_DO_NOT_USE
+# define ucnv_toUCountPending_3_6 ucnv_toUCountPending_DRAFT_API_DO_NOT_USE
+# define ucol_getContractionsAndExpansions_3_6 ucol_getContractionsAndExpansions_DRAFT_API_DO_NOT_USE
+# define ucsdet_close_3_6 ucsdet_close_DRAFT_API_DO_NOT_USE
+# define ucsdet_detectAll_3_6 ucsdet_detectAll_DRAFT_API_DO_NOT_USE
+# define ucsdet_detect_3_6 ucsdet_detect_DRAFT_API_DO_NOT_USE
+# define ucsdet_enableInputFilter_3_6 ucsdet_enableInputFilter_DRAFT_API_DO_NOT_USE
+# define ucsdet_getAllDetectableCharsets_3_6 ucsdet_getAllDetectableCharsets_DRAFT_API_DO_NOT_USE
+# define ucsdet_getConfidence_3_6 ucsdet_getConfidence_DRAFT_API_DO_NOT_USE
+# define ucsdet_getLanguage_3_6 ucsdet_getLanguage_DRAFT_API_DO_NOT_USE
+# define ucsdet_getName_3_6 ucsdet_getName_DRAFT_API_DO_NOT_USE
+# define ucsdet_getUChars_3_6 ucsdet_getUChars_DRAFT_API_DO_NOT_USE
+# define ucsdet_isInputFilterEnabled_3_6 ucsdet_isInputFilterEnabled_DRAFT_API_DO_NOT_USE
+# define ucsdet_open_3_6 ucsdet_open_DRAFT_API_DO_NOT_USE
+# define ucsdet_setDeclaredEncoding_3_6 ucsdet_setDeclaredEncoding_DRAFT_API_DO_NOT_USE
+# define ucsdet_setText_3_6 ucsdet_setText_DRAFT_API_DO_NOT_USE
+# define udata_setFileAccess_3_6 udata_setFileAccess_DRAFT_API_DO_NOT_USE
+# define ulocdata_close_3_6 ulocdata_close_DRAFT_API_DO_NOT_USE
+# define ulocdata_getDelimiter_3_6 ulocdata_getDelimiter_DRAFT_API_DO_NOT_USE
+# define ulocdata_getExemplarSet_3_6 ulocdata_getExemplarSet_DRAFT_API_DO_NOT_USE
+# define ulocdata_getNoSubstitute_3_6 ulocdata_getNoSubstitute_DRAFT_API_DO_NOT_USE
+# define ulocdata_open_3_6 ulocdata_open_DRAFT_API_DO_NOT_USE
+# define ulocdata_setNoSubstitute_3_6 ulocdata_setNoSubstitute_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8StringByIndex_3_6 ures_getUTF8StringByIndex_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8StringByKey_3_6 ures_getUTF8StringByKey_DRAFT_API_DO_NOT_USE
+# define ures_getUTF8String_3_6 ures_getUTF8String_DRAFT_API_DO_NOT_USE
+# define uset_addAllCodePoints_3_6 uset_addAllCodePoints_DRAFT_API_DO_NOT_USE
+# define uset_containsAllCodePoints_3_6 uset_containsAllCodePoints_DRAFT_API_DO_NOT_USE
+# define utext_char32At_3_6 utext_char32At_DRAFT_API_DO_NOT_USE
+# define utext_clone_3_6 utext_clone_DRAFT_API_DO_NOT_USE
+# define utext_close_3_6 utext_close_DRAFT_API_DO_NOT_USE
+# define utext_copy_3_6 utext_copy_DRAFT_API_DO_NOT_USE
+# define utext_current32_3_6 utext_current32_DRAFT_API_DO_NOT_USE
+# define utext_equals_3_6 utext_equals_DRAFT_API_DO_NOT_USE
+# define utext_extract_3_6 utext_extract_DRAFT_API_DO_NOT_USE
+# define utext_freeze_3_6 utext_freeze_DRAFT_API_DO_NOT_USE
+# define utext_getNativeIndex_3_6 utext_getNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_getPreviousNativeIndex_3_6 utext_getPreviousNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_hasMetaData_3_6 utext_hasMetaData_DRAFT_API_DO_NOT_USE
+# define utext_isLengthExpensive_3_6 utext_isLengthExpensive_DRAFT_API_DO_NOT_USE
+# define utext_isWritable_3_6 utext_isWritable_DRAFT_API_DO_NOT_USE
+# define utext_moveIndex32_3_6 utext_moveIndex32_DRAFT_API_DO_NOT_USE
+# define utext_nativeLength_3_6 utext_nativeLength_DRAFT_API_DO_NOT_USE
+# define utext_next32From_3_6 utext_next32From_DRAFT_API_DO_NOT_USE
+# define utext_next32_3_6 utext_next32_DRAFT_API_DO_NOT_USE
+# define utext_openUChars_3_6 utext_openUChars_DRAFT_API_DO_NOT_USE
+# define utext_openUTF8_3_6 utext_openUTF8_DRAFT_API_DO_NOT_USE
+# define utext_previous32From_3_6 utext_previous32From_DRAFT_API_DO_NOT_USE
+# define utext_previous32_3_6 utext_previous32_DRAFT_API_DO_NOT_USE
+# define utext_replace_3_6 utext_replace_DRAFT_API_DO_NOT_USE
+# define utext_setNativeIndex_3_6 utext_setNativeIndex_DRAFT_API_DO_NOT_USE
+# define utext_setup_3_6 utext_setup_DRAFT_API_DO_NOT_USE
+# endif /* U_DISABLE_RENAMING */
#endif /* U_HIDE_DRAFT_API */
#endif /* UDRAFT_H */
diff --git a/Build/source/libs/icu-xetex/common/unicode/uidna.h b/Build/source/libs/icu-xetex/common/unicode/uidna.h
index 00e2d3808b9..1371b9ed3cd 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uidna.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uidna.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -49,8 +49,6 @@
*
*/
-#ifndef U_HIDE_DRAFT_API
-
/**
* Option to prohibit processing of unassigned codepoints in the input and
* do not check if the input conforms to STD-3 ASCII rules.
@@ -74,8 +72,6 @@
*/
#define UIDNA_USE_STD3_RULES 0x0002
-#endif /*U_HIDE_DRAFT_API*/
-
/**
* This function implements the ToASCII operation as defined in the IDNA RFC.
* This operation is done on <b>single labels</b> before sending it to something that expects
diff --git a/Build/source/libs/icu-xetex/common/unicode/uintrnal.h b/Build/source/libs/icu-xetex/common/unicode/uintrnal.h
new file mode 100644
index 00000000000..79630d1d172
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/unicode/uintrnal.h
@@ -0,0 +1,68 @@
+/*
+*******************************************************************************
+* Copyright (C) 2004-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*******************************************************************************
+*
+* file name:
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
+*
+* Contains data for commenting out APIs.
+* Gets included by umachine.h
+*
+* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT
+* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
+*/
+
+#ifndef UINTRNAL_H
+#define UINTRNAL_H
+
+#ifdef U_HIDE_INTERNAL_API
+
+# if U_DISABLE_RENAMING
+# define RegexPatternDump RegexPatternDump_INTERNAL_API_DO_NOT_USE
+# define ucol_collatorToIdentifier ucol_collatorToIdentifier_INTERNAL_API_DO_NOT_USE
+# define ucol_equals ucol_equals_INTERNAL_API_DO_NOT_USE
+# define ucol_forgetUCA ucol_forgetUCA_INTERNAL_API_DO_NOT_USE
+# define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_INTERNAL_API_DO_NOT_USE
+# define ucol_getUnsafeSet ucol_getUnsafeSet_INTERNAL_API_DO_NOT_USE
+# define ucol_identifierToShortString ucol_identifierToShortString_INTERNAL_API_DO_NOT_USE
+# define ucol_openFromIdentifier ucol_openFromIdentifier_INTERNAL_API_DO_NOT_USE
+# define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_INTERNAL_API_DO_NOT_USE
+# define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_INTERNAL_API_DO_NOT_USE
+# define uprv_getDefaultCodepage uprv_getDefaultCodepage_INTERNAL_API_DO_NOT_USE
+# define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_INTERNAL_API_DO_NOT_USE
+# define ures_openFillIn ures_openFillIn_INTERNAL_API_DO_NOT_USE
+# define utf8_appendCharSafeBody utf8_appendCharSafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_back1SafeBody utf8_back1SafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_countTrailBytes utf8_countTrailBytes_INTERNAL_API_DO_NOT_USE
+# define utf8_nextCharSafeBody utf8_nextCharSafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_prevCharSafeBody utf8_prevCharSafeBody_INTERNAL_API_DO_NOT_USE
+# else
+# define RegexPatternDump_3_6 RegexPatternDump_INTERNAL_API_DO_NOT_USE
+# define ucol_collatorToIdentifier_3_6 ucol_collatorToIdentifier_INTERNAL_API_DO_NOT_USE
+# define ucol_equals_3_6 ucol_equals_INTERNAL_API_DO_NOT_USE
+# define ucol_forgetUCA_3_6 ucol_forgetUCA_INTERNAL_API_DO_NOT_USE
+# define ucol_getAttributeOrDefault_3_6 ucol_getAttributeOrDefault_INTERNAL_API_DO_NOT_USE
+# define ucol_getUnsafeSet_3_6 ucol_getUnsafeSet_INTERNAL_API_DO_NOT_USE
+# define ucol_identifierToShortString_3_6 ucol_identifierToShortString_INTERNAL_API_DO_NOT_USE
+# define ucol_openFromIdentifier_3_6 ucol_openFromIdentifier_INTERNAL_API_DO_NOT_USE
+# define ucol_prepareShortStringOpen_3_6 ucol_prepareShortStringOpen_INTERNAL_API_DO_NOT_USE
+# define ucol_shortStringToIdentifier_3_6 ucol_shortStringToIdentifier_INTERNAL_API_DO_NOT_USE
+# define uprv_getDefaultCodepage_3_6 uprv_getDefaultCodepage_INTERNAL_API_DO_NOT_USE
+# define uprv_getDefaultLocaleID_3_6 uprv_getDefaultLocaleID_INTERNAL_API_DO_NOT_USE
+# define ures_openFillIn_3_6 ures_openFillIn_INTERNAL_API_DO_NOT_USE
+# define utf8_appendCharSafeBody_3_6 utf8_appendCharSafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_back1SafeBody_3_6 utf8_back1SafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_countTrailBytes_3_6 utf8_countTrailBytes_INTERNAL_API_DO_NOT_USE
+# define utf8_nextCharSafeBody_3_6 utf8_nextCharSafeBody_INTERNAL_API_DO_NOT_USE
+# define utf8_prevCharSafeBody_3_6 utf8_prevCharSafeBody_INTERNAL_API_DO_NOT_USE
+# endif /* U_DISABLE_RENAMING */
+
+#endif /* U_HIDE_INTERNAL_API */
+#endif /* UINTRNAL_H */
+
diff --git a/Build/source/libs/icu-xetex/common/unicode/uloc.h b/Build/source/libs/icu-xetex/common/unicode/uloc.h
index c16fcc8e2a9..61b70607866 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uloc.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uloc.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -261,25 +261,22 @@
*/
#define ULOC_FULLNAME_CAPACITY 56
-
-#ifndef U_HIDE_DRAFT_API
-
/**
* Useful constant for the maximum size of the script part of a locale ID
* (including the terminating NULL).
- * @internal ICU 2.8
+ * @stable ICU 2.8
*/
#define ULOC_SCRIPT_CAPACITY 6
/**
* Useful constant for the maximum size of keywords in a locale
- * @internal ICU 2.8
+ * @stable ICU 2.8
*/
#define ULOC_KEYWORDS_CAPACITY 50
/**
- * Useful constant for the maximum size of keywords in a locale
- * @internal ICU 2.8
+ * Useful constant for the maximum SIZE of keywords in a locale
+ * @stable ICU 2.8
*/
#define ULOC_KEYWORD_AND_VALUES_CAPACITY 100
@@ -300,8 +297,6 @@
*/
#define ULOC_KEYWORD_ITEM_SEPARATOR ';'
-#endif /*U_HIDE_DRAFT_API*/
-
/**
* Constants for *_getLocale()
* Allow user to select whether she wants information on
@@ -333,7 +328,7 @@ typedef enum {
ULOC_REQUESTED_LOCALE = 2,
#endif /* U_HIDE_DEPRECATED_API */
- ULOC_DATA_LOCALE_TYPE_LIMIT
+ ULOC_DATA_LOCALE_TYPE_LIMIT = 3
} ULocDataLocaleType ;
@@ -420,7 +415,7 @@ uloc_getScript(const char* localeID,
* than countryCapacity, the returned country code will be truncated.
* @stable ICU 2.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uloc_getCountry(const char* localeID,
char* country,
int32_t countryCapacity,
@@ -852,9 +847,9 @@ uloc_getKeywordValue(const char* localeID,
* @param status containing error code - buffer not big enough.
* @return the length needed for the buffer
* @see uloc_getKeywordValue
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uloc_setKeywordValue(const char* keywordName,
const char* keywordValue,
char* buffer, int32_t bufferCapacity,
@@ -864,7 +859,7 @@ uloc_setKeywordValue(const char* keywordName,
* enums for the 'outResult' parameter return value
* @see uloc_acceptLanguageFromHTTP
* @see uloc_acceptLanguage
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
typedef enum {
ULOC_ACCEPT_FAILED = 0, /* No exact match was found. */
@@ -885,9 +880,9 @@ typedef enum {
* @param availableLocales - list of available locales to match
* @param status Error status, may be BUFFER_OVERFLOW_ERROR
* @return length needed for the locale.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable,
UAcceptResult *outResult,
const char *httpAcceptLanguage,
@@ -905,9 +900,9 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable,
* @param availableLocales - list of available locales to match
* @param status Error status, may be BUFFER_OVERFLOW_ERROR
* @return length needed for the locale.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uloc_acceptLanguage(char *result, int32_t resultAvailable,
UAcceptResult *outResult, const char **acceptList,
int32_t acceptListCount,
diff --git a/Build/source/libs/icu-xetex/common/unicode/umachine.h b/Build/source/libs/icu-xetex/common/unicode/umachine.h
index a38e3f04dac..60419cda808 100644
--- a/Build/source/libs/icu-xetex/common/unicode/umachine.h
+++ b/Build/source/libs/icu-xetex/common/unicode/umachine.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -354,6 +354,8 @@ typedef int32_t UChar32;
/* the OS in use. */
/*==========================================================================*/
+#ifndef U_HIDE_INTERNAL_API
+
/**
* \def U_ALIGN_CODE
* This is used to align code fragments to a specific byte boundary.
@@ -364,6 +366,8 @@ typedef int32_t UChar32;
# define U_ALIGN_CODE(n)
#endif
+#endif /* U_HIDE_INTERNAL_API */
+
#ifndef U_INLINE
# ifdef XP_CPLUSPLUS
# define U_INLINE inline
diff --git a/Build/source/libs/icu-xetex/common/unicode/umisc.h b/Build/source/libs/icu-xetex/common/unicode/umisc.h
index d47fa3837d2..d85451fc767 100644
--- a/Build/source/libs/icu-xetex/common/unicode/umisc.h
+++ b/Build/source/libs/icu-xetex/common/unicode/umisc.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2003, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: umisc.h
@@ -23,7 +23,9 @@
*
* This file contains miscellaneous definitions for the C APIs.
*/
-
+
+U_CDECL_BEGIN
+
/** A struct representing a range of text containing a specific field
* @stable ICU 2.0
*/
@@ -45,4 +47,14 @@ typedef struct UFieldPosition {
int32_t endIndex;
} UFieldPosition;
+#if !UCONFIG_NO_SERVICE
+/**
+ * Opaque type returned by registerInstance, registerFactory and unregister for service registration.
+ * @stable ICU 2.6
+ */
+typedef const void* URegistryKey;
+#endif
+
+U_CDECL_END
+
#endif
diff --git a/Build/source/libs/icu-xetex/common/unicode/unifilt.h b/Build/source/libs/icu-xetex/common/unicode/unifilt.h
index 7ab46657dc1..5bf1ba4e4fd 100644
--- a/Build/source/libs/icu-xetex/common/unicode/unifilt.h
+++ b/Build/source/libs/icu-xetex/common/unicode/unifilt.h
@@ -1,5 +1,6 @@
/*
-* Copyright (C) 1999-2005, International Business Machines Corporation and others.
+**********************************************************************
+* Copyright (C) 1999-2006, International Business Machines Corporation and others.
* All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -25,7 +26,7 @@ U_NAMESPACE_BEGIN
* characters outside the range contextStart..contextLimit-1. This
* allows explicit matching by rules and UnicodeSets of text outside a
* defined range.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
#define U_ETHER ((UChar)0xFFFF)
diff --git a/Build/source/libs/icu-xetex/common/unicode/uniset.h b/Build/source/libs/icu-xetex/common/unicode/uniset.h
index d44725f14bd..1e48aa8365e 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uniset.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uniset.h
@@ -1,6 +1,6 @@
/*
***************************************************************************
-* Copyright (C) 1999-2005, International Business Machines Corporation
+* Copyright (C) 1999-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***************************************************************************
* Date Name Description
@@ -363,16 +363,6 @@ public:
const SymbolTable* symbols,
UErrorCode& status);
-#ifdef U_USE_UNICODESET_DEPRECATES
- /**
- * Obsolete: Constructs a set from the given Unicode character category.
- * @param category an integer indicating the character category as
- * defined in uchar.h.
- * @obsolete ICU 2.6. Use a pattern with the category instead since this API will be removed in that release.
- */
- UnicodeSet(int8_t category, UErrorCode& status);
-#endif
-
/**
* Constructs a set that is identical to the given UnicodeSet.
* @stable ICU 2.0
diff --git a/Build/source/libs/icu-xetex/common/unicode/unistr.h b/Build/source/libs/icu-xetex/common/unicode/unistr.h
index cce66c8ae69..fe1722bdc97 100644
--- a/Build/source/libs/icu-xetex/common/unicode/unistr.h
+++ b/Build/source/libs/icu-xetex/common/unicode/unistr.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -42,7 +42,9 @@ class StringThreadTest;
#endif
#ifndef USTRING_H
-/* see ustring.h */
+/**
+ * \ingroup ustring_ustrlen
+ */
U_STABLE int32_t U_EXPORT2
u_strlen(const UChar *s);
#endif
@@ -63,7 +65,7 @@ class BreakIterator; // unicode/brkiter.h
* therefore recommended over ones taking a charset name string
* (where the empty string "" indicates invariant-character conversion).
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
#define US_INV UnicodeString::kInvariant
@@ -192,12 +194,12 @@ public:
* Use the macro US_INV instead of the full qualification for this value.
*
* @see US_INV
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
enum EInvariant {
/**
* @see EInvariant
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
kInvariant
};
@@ -1438,7 +1440,7 @@ public:
* @param targetCapacity the length of the target buffer
* @param inv Signature-distinguishing paramater, use US_INV.
* @return the output string length, not including the terminating NUL
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
int32_t extract(int32_t start,
int32_t startLength,
@@ -2817,7 +2819,7 @@ public:
* @param inv Signature-distinguishing paramater, use US_INV.
*
* @see US_INV
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UnicodeString(const char *src, int32_t length, enum EInvariant inv);
@@ -3201,32 +3203,6 @@ private:
U_COMMON_API UnicodeString U_EXPORT2
operator+ (const UnicodeString &s1, const UnicodeString &s2);
-U_NAMESPACE_END
-
-// inline implementations -------------------------------------------------- ***
-
-//========================================
-// Array copying
-//========================================
-/**
- * Copy an array of UnicodeString OBJECTS (not pointers).
- * @internal
- */
-inline void
-uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t count)
-{ while(count-- > 0) *dst++ = *src++; }
-
-/**
- * Copy an array of UnicodeString OBJECTS (not pointers).
- * @internal
- */
-inline void
-uprv_arrayCopy(const U_NAMESPACE_QUALIFIER UnicodeString *src, int32_t srcStart,
- U_NAMESPACE_QUALIFIER UnicodeString *dst, int32_t dstStart, int32_t count)
-{ uprv_arrayCopy(src+srcStart, dst+dstStart, count); }
-
-U_NAMESPACE_BEGIN
-
//========================================
// Inline members
//========================================
@@ -4005,23 +3981,6 @@ UnicodeString::setTo(UChar32 srcChar)
}
inline UnicodeString&
-UnicodeString::operator+= (UChar ch)
-{ return doReplace(fLength, 0, &ch, 0, 1); }
-
-inline UnicodeString&
-UnicodeString::operator+= (UChar32 ch) {
- UChar buffer[U16_MAX_LENGTH];
- int32_t _length = 0;
- UBool isError = FALSE;
- U16_APPEND(buffer, _length, U16_MAX_LENGTH, ch, isError);
- return doReplace(fLength, 0, buffer, 0, _length);
-}
-
-inline UnicodeString&
-UnicodeString::operator+= (const UnicodeString& srcText)
-{ return doReplace(fLength, 0, srcText, 0, srcText.fLength); }
-
-inline UnicodeString&
UnicodeString::append(const UnicodeString& srcText,
int32_t srcStart,
int32_t srcLength)
@@ -4056,6 +4015,19 @@ UnicodeString::append(UChar32 srcChar) {
}
inline UnicodeString&
+UnicodeString::operator+= (UChar ch)
+{ return doReplace(fLength, 0, &ch, 0, 1); }
+
+inline UnicodeString&
+UnicodeString::operator+= (UChar32 ch) {
+ return append(ch);
+}
+
+inline UnicodeString&
+UnicodeString::operator+= (const UnicodeString& srcText)
+{ return doReplace(fLength, 0, srcText, 0, srcText.fLength); }
+
+inline UnicodeString&
UnicodeString::insert(int32_t start,
const UnicodeString& srcText,
int32_t srcStart,
@@ -4107,12 +4079,11 @@ inline UnicodeString&
UnicodeString::remove(int32_t start,
int32_t _length)
{
- if(start <= 0 && _length == INT32_MAX) {
- // remove(guaranteed everything) of a bogus string makes the string empty and non-bogus
- return remove();
- } else {
+ if(start <= 0 && _length == INT32_MAX) {
+ // remove(guaranteed everything) of a bogus string makes the string empty and non-bogus
+ return remove();
+ }
return doReplace(start, _length, NULL, 0, 0);
- }
}
inline UnicodeString&
diff --git a/Build/source/libs/icu-xetex/common/unicode/uobject.h b/Build/source/libs/icu-xetex/common/unicode/uobject.h
index 4dfc247bdd6..877359942de 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uobject.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uobject.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -49,6 +49,8 @@ U_NAMESPACE_BEGIN
#define U_HAVE_PLACEMENT_NEW 1
#endif
+
+#ifndef U_HIDE_DRAFT_API
/** U_HAVE_DEBUG_LOCATION_NEW - Define this to define the MFC debug
* version of the operator new.
*
@@ -57,7 +59,7 @@ U_NAMESPACE_BEGIN
#ifndef U_HAVE_DEBUG_LOCATION_NEW
#define U_HAVE_DEBUG_LOCATION_NEW 0
#endif
-
+#endif /*U_HIDE_DRAFT_API*/
/**
* UMemory is the common ICU base class.
diff --git a/Build/source/libs/icu-xetex/common/unicode/uobslete.h b/Build/source/libs/icu-xetex/common/unicode/uobslete.h
index c898f7f1790..e4f160f4fb9 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uobslete.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uobslete.h
@@ -1,15 +1,15 @@
/*
*******************************************************************************
-* Copyright (C) 2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
-* file name: uobslete.h
+* file name:
* encoding: US-ASCII
* tab size: 8 (not used)
* indentation:4
*
-* Created by: gendraft.pl, a perl script written by Ram Viswanadha
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
*
* Contains data for commenting out APIs.
* Gets included by umachine.h
@@ -23,6 +23,9 @@
#ifdef U_HIDE_OBSOLETE_API
+# if U_DISABLE_RENAMING
+# else
+# endif /* U_DISABLE_RENAMING */
#endif /* U_HIDE_OBSOLETE_API */
#endif /* UOBSLETE_H */
diff --git a/Build/source/libs/icu-xetex/common/unicode/urename.h b/Build/source/libs/icu-xetex/common/unicode/urename.h
index 0d9b7a37ad7..b95800200bd 100644
--- a/Build/source/libs/icu-xetex/common/unicode/urename.h
+++ b/Build/source/libs/icu-xetex/common/unicode/urename.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
@@ -29,1501 +29,1572 @@
/* C exports renaming data */
-#define T_CString_int64ToString T_CString_int64ToString_3_4
-#define T_CString_integerToString T_CString_integerToString_3_4
-#define T_CString_stricmp T_CString_stricmp_3_4
-#define T_CString_stringToInteger T_CString_stringToInteger_3_4
-#define T_CString_strnicmp T_CString_strnicmp_3_4
-#define T_CString_toLowerCase T_CString_toLowerCase_3_4
-#define T_CString_toUpperCase T_CString_toUpperCase_3_4
-#define T_FileStream_close T_FileStream_close_3_4
-#define T_FileStream_eof T_FileStream_eof_3_4
-#define T_FileStream_error T_FileStream_error_3_4
-#define T_FileStream_file_exists T_FileStream_file_exists_3_4
-#define T_FileStream_getc T_FileStream_getc_3_4
-#define T_FileStream_open T_FileStream_open_3_4
-#define T_FileStream_peek T_FileStream_peek_3_4
-#define T_FileStream_putc T_FileStream_putc_3_4
-#define T_FileStream_read T_FileStream_read_3_4
-#define T_FileStream_readLine T_FileStream_readLine_3_4
-#define T_FileStream_remove T_FileStream_remove_3_4
-#define T_FileStream_rewind T_FileStream_rewind_3_4
-#define T_FileStream_size T_FileStream_size_3_4
-#define T_FileStream_stderr T_FileStream_stderr_3_4
-#define T_FileStream_stdin T_FileStream_stdin_3_4
-#define T_FileStream_stdout T_FileStream_stdout_3_4
-#define T_FileStream_ungetc T_FileStream_ungetc_3_4
-#define T_FileStream_write T_FileStream_write_3_4
-#define T_FileStream_writeLine T_FileStream_writeLine_3_4
-#define UCNV_FROM_U_CALLBACK_ESCAPE UCNV_FROM_U_CALLBACK_ESCAPE_3_4
-#define UCNV_FROM_U_CALLBACK_SKIP UCNV_FROM_U_CALLBACK_SKIP_3_4
-#define UCNV_FROM_U_CALLBACK_STOP UCNV_FROM_U_CALLBACK_STOP_3_4
-#define UCNV_FROM_U_CALLBACK_SUBSTITUTE UCNV_FROM_U_CALLBACK_SUBSTITUTE_3_4
-#define UCNV_TO_U_CALLBACK_ESCAPE UCNV_TO_U_CALLBACK_ESCAPE_3_4
-#define UCNV_TO_U_CALLBACK_SKIP UCNV_TO_U_CALLBACK_SKIP_3_4
-#define UCNV_TO_U_CALLBACK_STOP UCNV_TO_U_CALLBACK_STOP_3_4
-#define UCNV_TO_U_CALLBACK_SUBSTITUTE UCNV_TO_U_CALLBACK_SUBSTITUTE_3_4
-#define UDataMemory_createNewInstance UDataMemory_createNewInstance_3_4
-#define UDataMemory_init UDataMemory_init_3_4
-#define UDataMemory_isLoaded UDataMemory_isLoaded_3_4
-#define UDataMemory_normalizeDataPointer UDataMemory_normalizeDataPointer_3_4
-#define UDataMemory_setData UDataMemory_setData_3_4
-#define UDatamemory_assign UDatamemory_assign_3_4
-#define _ASCIIData _ASCIIData_3_4
-#define _Bocu1Data _Bocu1Data_3_4
-#define _CESU8Data _CESU8Data_3_4
-#define _HZData _HZData_3_4
-#define _IMAPData _IMAPData_3_4
-#define _ISCIIData _ISCIIData_3_4
-#define _ISO2022Data _ISO2022Data_3_4
-#define _LMBCSData1 _LMBCSData1_3_4
-#define _LMBCSData11 _LMBCSData11_3_4
-#define _LMBCSData16 _LMBCSData16_3_4
-#define _LMBCSData17 _LMBCSData17_3_4
-#define _LMBCSData18 _LMBCSData18_3_4
-#define _LMBCSData19 _LMBCSData19_3_4
-#define _LMBCSData2 _LMBCSData2_3_4
-#define _LMBCSData3 _LMBCSData3_3_4
-#define _LMBCSData4 _LMBCSData4_3_4
-#define _LMBCSData5 _LMBCSData5_3_4
-#define _LMBCSData6 _LMBCSData6_3_4
-#define _LMBCSData8 _LMBCSData8_3_4
-#define _Latin1Data _Latin1Data_3_4
-#define _MBCSData _MBCSData_3_4
-#define _SCSUData _SCSUData_3_4
-#define _UTF16BEData _UTF16BEData_3_4
-#define _UTF16Data _UTF16Data_3_4
-#define _UTF16LEData _UTF16LEData_3_4
-#define _UTF32BEData _UTF32BEData_3_4
-#define _UTF32Data _UTF32Data_3_4
-#define _UTF32LEData _UTF32LEData_3_4
-#define _UTF7Data _UTF7Data_3_4
-#define _UTF8Data _UTF8Data_3_4
-#define cmemory_cleanup cmemory_cleanup_3_4
-#define cmemory_inUse cmemory_inUse_3_4
-#define locale_getKeywords locale_getKeywords_3_4
-#define locale_get_default locale_get_default_3_4
-#define locale_set_default locale_set_default_3_4
-#define res_countArrayItems res_countArrayItems_3_4
-#define res_findResource res_findResource_3_4
-#define res_getAlias res_getAlias_3_4
-#define res_getArrayItem res_getArrayItem_3_4
-#define res_getBinary res_getBinary_3_4
-#define res_getIntVector res_getIntVector_3_4
-#define res_getResource res_getResource_3_4
-#define res_getString res_getString_3_4
-#define res_getTableItemByIndex res_getTableItemByIndex_3_4
-#define res_getTableItemByKey res_getTableItemByKey_3_4
-#define res_load res_load_3_4
-#define res_unload res_unload_3_4
-#define transliterator_cleanup transliterator_cleanup_3_4
-#define u_UCharsToChars u_UCharsToChars_3_4
-#define u_austrcpy u_austrcpy_3_4
-#define u_austrncpy u_austrncpy_3_4
-#define u_catclose u_catclose_3_4
-#define u_catgets u_catgets_3_4
-#define u_catopen u_catopen_3_4
-#define u_charAge u_charAge_3_4
-#define u_charDigitValue u_charDigitValue_3_4
-#define u_charDirection u_charDirection_3_4
-#define u_charFromName u_charFromName_3_4
-#define u_charMirror u_charMirror_3_4
-#define u_charName u_charName_3_4
-#define u_charType u_charType_3_4
-#define u_charsToUChars u_charsToUChars_3_4
-#define u_cleanup u_cleanup_3_4
-#define u_countChar32 u_countChar32_3_4
-#define u_digit u_digit_3_4
-#define u_enumCharNames u_enumCharNames_3_4
-#define u_enumCharTypes u_enumCharTypes_3_4
-#define u_errorName u_errorName_3_4
-#define u_fclose u_fclose_3_4
-#define u_feof u_feof_3_4
-#define u_fflush u_fflush_3_4
-#define u_fgetConverter u_fgetConverter_3_4
-#define u_fgetc u_fgetc_3_4
-#define u_fgetcodepage u_fgetcodepage_3_4
-#define u_fgetcx u_fgetcx_3_4
-#define u_fgetfile u_fgetfile_3_4
-#define u_fgetlocale u_fgetlocale_3_4
-#define u_fgets u_fgets_3_4
-#define u_file_read u_file_read_3_4
-#define u_file_write u_file_write_3_4
-#define u_file_write_flush u_file_write_flush_3_4
-#define u_finit u_finit_3_4
-#define u_foldCase u_foldCase_3_4
-#define u_fopen u_fopen_3_4
-#define u_forDigit u_forDigit_3_4
-#define u_formatMessage u_formatMessage_3_4
-#define u_formatMessageWithError u_formatMessageWithError_3_4
-#define u_fprintf u_fprintf_3_4
-#define u_fprintf_u u_fprintf_u_3_4
-#define u_fputc u_fputc_3_4
-#define u_fputs u_fputs_3_4
-#define u_frewind u_frewind_3_4
-#define u_fscanf u_fscanf_3_4
-#define u_fscanf_u u_fscanf_u_3_4
-#define u_fsetcodepage u_fsetcodepage_3_4
-#define u_fsetlocale u_fsetlocale_3_4
-#define u_fsettransliterator u_fsettransliterator_3_4
-#define u_fstropen u_fstropen_3_4
-#define u_fungetc u_fungetc_3_4
-#define u_getCombiningClass u_getCombiningClass_3_4
-#define u_getDataDirectory u_getDataDirectory_3_4
-#define u_getDefaultConverter u_getDefaultConverter_3_4
-#define u_getFC_NFKC_Closure u_getFC_NFKC_Closure_3_4
-#define u_getISOComment u_getISOComment_3_4
-#define u_getIntPropertyMaxValue u_getIntPropertyMaxValue_3_4
-#define u_getIntPropertyMinValue u_getIntPropertyMinValue_3_4
-#define u_getIntPropertyValue u_getIntPropertyValue_3_4
-#define u_getNumericValue u_getNumericValue_3_4
-#define u_getPropertyEnum u_getPropertyEnum_3_4
-#define u_getPropertyName u_getPropertyName_3_4
-#define u_getPropertyValueEnum u_getPropertyValueEnum_3_4
-#define u_getPropertyValueName u_getPropertyValueName_3_4
-#define u_getUnicodeProperties u_getUnicodeProperties_3_4
-#define u_getUnicodeVersion u_getUnicodeVersion_3_4
-#define u_getVersion u_getVersion_3_4
-#define u_growBufferFromStatic u_growBufferFromStatic_3_4
-#define u_hasBinaryProperty u_hasBinaryProperty_3_4
-#define u_init u_init_3_4
-#define u_isIDIgnorable u_isIDIgnorable_3_4
-#define u_isIDPart u_isIDPart_3_4
-#define u_isIDStart u_isIDStart_3_4
-#define u_isISOControl u_isISOControl_3_4
-#define u_isJavaIDPart u_isJavaIDPart_3_4
-#define u_isJavaIDStart u_isJavaIDStart_3_4
-#define u_isJavaSpaceChar u_isJavaSpaceChar_3_4
-#define u_isMirrored u_isMirrored_3_4
-#define u_isUAlphabetic u_isUAlphabetic_3_4
-#define u_isULowercase u_isULowercase_3_4
-#define u_isUUppercase u_isUUppercase_3_4
-#define u_isUWhiteSpace u_isUWhiteSpace_3_4
-#define u_isWhitespace u_isWhitespace_3_4
-#define u_isalnum u_isalnum_3_4
-#define u_isalnumPOSIX u_isalnumPOSIX_3_4
-#define u_isalpha u_isalpha_3_4
-#define u_isbase u_isbase_3_4
-#define u_isblank u_isblank_3_4
-#define u_iscntrl u_iscntrl_3_4
-#define u_isdefined u_isdefined_3_4
-#define u_isdigit u_isdigit_3_4
-#define u_isgraph u_isgraph_3_4
-#define u_isgraphPOSIX u_isgraphPOSIX_3_4
-#define u_islower u_islower_3_4
-#define u_isprint u_isprint_3_4
-#define u_isprintPOSIX u_isprintPOSIX_3_4
-#define u_ispunct u_ispunct_3_4
-#define u_isspace u_isspace_3_4
-#define u_istitle u_istitle_3_4
-#define u_isupper u_isupper_3_4
-#define u_isxdigit u_isxdigit_3_4
-#define u_lengthOfIdenticalLevelRun u_lengthOfIdenticalLevelRun_3_4
-#define u_locbund_close u_locbund_close_3_4
-#define u_locbund_getNumberFormat u_locbund_getNumberFormat_3_4
-#define u_locbund_init u_locbund_init_3_4
-#define u_memcasecmp u_memcasecmp_3_4
-#define u_memchr u_memchr_3_4
-#define u_memchr32 u_memchr32_3_4
-#define u_memcmp u_memcmp_3_4
-#define u_memcmpCodePointOrder u_memcmpCodePointOrder_3_4
-#define u_memcpy u_memcpy_3_4
-#define u_memmove u_memmove_3_4
-#define u_memrchr u_memrchr_3_4
-#define u_memrchr32 u_memrchr32_3_4
-#define u_memset u_memset_3_4
-#define u_parseMessage u_parseMessage_3_4
-#define u_parseMessageWithError u_parseMessageWithError_3_4
-#define u_printf_parse u_printf_parse_3_4
-#define u_releaseDefaultConverter u_releaseDefaultConverter_3_4
-#define u_scanf_parse u_scanf_parse_3_4
-#define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_3_4
-#define u_setDataDirectory u_setDataDirectory_3_4
-#define u_setMemoryFunctions u_setMemoryFunctions_3_4
-#define u_setMutexFunctions u_setMutexFunctions_3_4
-#define u_shapeArabic u_shapeArabic_3_4
-#define u_snprintf u_snprintf_3_4
-#define u_snprintf_u u_snprintf_u_3_4
-#define u_sprintf u_sprintf_3_4
-#define u_sprintf_u u_sprintf_u_3_4
-#define u_sscanf u_sscanf_3_4
-#define u_sscanf_u u_sscanf_u_3_4
-#define u_strCaseCompare u_strCaseCompare_3_4
-#define u_strCompare u_strCompare_3_4
-#define u_strCompareIter u_strCompareIter_3_4
-#define u_strFindFirst u_strFindFirst_3_4
-#define u_strFindLast u_strFindLast_3_4
-#define u_strFoldCase u_strFoldCase_3_4
-#define u_strFromPunycode u_strFromPunycode_3_4
-#define u_strFromUTF32 u_strFromUTF32_3_4
-#define u_strFromUTF8 u_strFromUTF8_3_4
-#define u_strFromWCS u_strFromWCS_3_4
-#define u_strHasMoreChar32Than u_strHasMoreChar32Than_3_4
-#define u_strToLower u_strToLower_3_4
-#define u_strToPunycode u_strToPunycode_3_4
-#define u_strToTitle u_strToTitle_3_4
-#define u_strToUTF32 u_strToUTF32_3_4
-#define u_strToUTF8 u_strToUTF8_3_4
-#define u_strToUpper u_strToUpper_3_4
-#define u_strToWCS u_strToWCS_3_4
-#define u_strcasecmp u_strcasecmp_3_4
-#define u_strcat u_strcat_3_4
-#define u_strchr u_strchr_3_4
-#define u_strchr32 u_strchr32_3_4
-#define u_strcmp u_strcmp_3_4
-#define u_strcmpCodePointOrder u_strcmpCodePointOrder_3_4
-#define u_strcmpFold u_strcmpFold_3_4
-#define u_strcpy u_strcpy_3_4
-#define u_strcspn u_strcspn_3_4
-#define u_strlen u_strlen_3_4
-#define u_strncasecmp u_strncasecmp_3_4
-#define u_strncat u_strncat_3_4
-#define u_strncmp u_strncmp_3_4
-#define u_strncmpCodePointOrder u_strncmpCodePointOrder_3_4
-#define u_strncpy u_strncpy_3_4
-#define u_strpbrk u_strpbrk_3_4
-#define u_strrchr u_strrchr_3_4
-#define u_strrchr32 u_strrchr32_3_4
-#define u_strrstr u_strrstr_3_4
-#define u_strspn u_strspn_3_4
-#define u_strstr u_strstr_3_4
-#define u_strtok_r u_strtok_r_3_4
-#define u_terminateChars u_terminateChars_3_4
-#define u_terminateUChar32s u_terminateUChar32s_3_4
-#define u_terminateUChars u_terminateUChars_3_4
-#define u_terminateWChars u_terminateWChars_3_4
-#define u_tolower u_tolower_3_4
-#define u_totitle u_totitle_3_4
-#define u_toupper u_toupper_3_4
-#define u_uastrcpy u_uastrcpy_3_4
-#define u_uastrncpy u_uastrncpy_3_4
-#define u_unescape u_unescape_3_4
-#define u_unescapeAt u_unescapeAt_3_4
-#define u_versionFromString u_versionFromString_3_4
-#define u_versionToString u_versionToString_3_4
-#define u_vformatMessage u_vformatMessage_3_4
-#define u_vformatMessageWithError u_vformatMessageWithError_3_4
-#define u_vfprintf u_vfprintf_3_4
-#define u_vfprintf_u u_vfprintf_u_3_4
-#define u_vfscanf u_vfscanf_3_4
-#define u_vfscanf_u u_vfscanf_u_3_4
-#define u_vparseMessage u_vparseMessage_3_4
-#define u_vparseMessageWithError u_vparseMessageWithError_3_4
-#define u_vsnprintf u_vsnprintf_3_4
-#define u_vsnprintf_u u_vsnprintf_u_3_4
-#define u_vsprintf u_vsprintf_3_4
-#define u_vsprintf_u u_vsprintf_u_3_4
-#define u_vsscanf u_vsscanf_3_4
-#define u_vsscanf_u u_vsscanf_u_3_4
-#define u_writeDiff u_writeDiff_3_4
-#define u_writeIdenticalLevelRun u_writeIdenticalLevelRun_3_4
-#define u_writeIdenticalLevelRunTwoChars u_writeIdenticalLevelRunTwoChars_3_4
-#define ubidi_addPropertyStarts ubidi_addPropertyStarts_3_4
-#define ubidi_close ubidi_close_3_4
-#define ubidi_closeProps ubidi_closeProps_3_4
-#define ubidi_countParagraphs ubidi_countParagraphs_3_4
-#define ubidi_countRuns ubidi_countRuns_3_4
-#define ubidi_getClass ubidi_getClass_3_4
-#define ubidi_getDirection ubidi_getDirection_3_4
-#define ubidi_getDummy ubidi_getDummy_3_4
-#define ubidi_getJoiningGroup ubidi_getJoiningGroup_3_4
-#define ubidi_getJoiningType ubidi_getJoiningType_3_4
-#define ubidi_getLength ubidi_getLength_3_4
-#define ubidi_getLevelAt ubidi_getLevelAt_3_4
-#define ubidi_getLevels ubidi_getLevels_3_4
-#define ubidi_getLogicalIndex ubidi_getLogicalIndex_3_4
-#define ubidi_getLogicalMap ubidi_getLogicalMap_3_4
-#define ubidi_getLogicalRun ubidi_getLogicalRun_3_4
-#define ubidi_getMaxValue ubidi_getMaxValue_3_4
-#define ubidi_getMemory ubidi_getMemory_3_4
-#define ubidi_getMirror ubidi_getMirror_3_4
-#define ubidi_getParaLevel ubidi_getParaLevel_3_4
-#define ubidi_getParagraph ubidi_getParagraph_3_4
-#define ubidi_getParagraphByIndex ubidi_getParagraphByIndex_3_4
-#define ubidi_getRuns ubidi_getRuns_3_4
-#define ubidi_getSingleton ubidi_getSingleton_3_4
-#define ubidi_getText ubidi_getText_3_4
-#define ubidi_getVisualIndex ubidi_getVisualIndex_3_4
-#define ubidi_getVisualMap ubidi_getVisualMap_3_4
-#define ubidi_getVisualRun ubidi_getVisualRun_3_4
-#define ubidi_invertMap ubidi_invertMap_3_4
-#define ubidi_isBidiControl ubidi_isBidiControl_3_4
-#define ubidi_isInverse ubidi_isInverse_3_4
-#define ubidi_isJoinControl ubidi_isJoinControl_3_4
-#define ubidi_isMirrored ubidi_isMirrored_3_4
-#define ubidi_isOrderParagraphsLTR ubidi_isOrderParagraphsLTR_3_4
-#define ubidi_open ubidi_open_3_4
-#define ubidi_openSized ubidi_openSized_3_4
-#define ubidi_orderParagraphsLTR ubidi_orderParagraphsLTR_3_4
-#define ubidi_reorderLogical ubidi_reorderLogical_3_4
-#define ubidi_reorderVisual ubidi_reorderVisual_3_4
-#define ubidi_setInverse ubidi_setInverse_3_4
-#define ubidi_setLine ubidi_setLine_3_4
-#define ubidi_setPara ubidi_setPara_3_4
-#define ubidi_writeReordered ubidi_writeReordered_3_4
-#define ubidi_writeReverse ubidi_writeReverse_3_4
-#define ublock_getCode ublock_getCode_3_4
-#define ubrk_close ubrk_close_3_4
-#define ubrk_countAvailable ubrk_countAvailable_3_4
-#define ubrk_current ubrk_current_3_4
-#define ubrk_first ubrk_first_3_4
-#define ubrk_following ubrk_following_3_4
-#define ubrk_getAvailable ubrk_getAvailable_3_4
-#define ubrk_getLocaleByType ubrk_getLocaleByType_3_4
-#define ubrk_getRuleStatus ubrk_getRuleStatus_3_4
-#define ubrk_getRuleStatusVec ubrk_getRuleStatusVec_3_4
-#define ubrk_isBoundary ubrk_isBoundary_3_4
-#define ubrk_last ubrk_last_3_4
-#define ubrk_next ubrk_next_3_4
-#define ubrk_open ubrk_open_3_4
-#define ubrk_openRules ubrk_openRules_3_4
-#define ubrk_preceding ubrk_preceding_3_4
-#define ubrk_previous ubrk_previous_3_4
-#define ubrk_safeClone ubrk_safeClone_3_4
-#define ubrk_setText ubrk_setText_3_4
-#define ubrk_setUText ubrk_setUText_3_4
-#define ubrk_swap ubrk_swap_3_4
-#define ucal_add ucal_add_3_4
-#define ucal_clear ucal_clear_3_4
-#define ucal_clearField ucal_clearField_3_4
-#define ucal_close ucal_close_3_4
-#define ucal_countAvailable ucal_countAvailable_3_4
-#define ucal_equivalentTo ucal_equivalentTo_3_4
-#define ucal_get ucal_get_3_4
-#define ucal_getAttribute ucal_getAttribute_3_4
-#define ucal_getAvailable ucal_getAvailable_3_4
-#define ucal_getDSTSavings ucal_getDSTSavings_3_4
-#define ucal_getDefaultTimeZone ucal_getDefaultTimeZone_3_4
-#define ucal_getLimit ucal_getLimit_3_4
-#define ucal_getLocaleByType ucal_getLocaleByType_3_4
-#define ucal_getMillis ucal_getMillis_3_4
-#define ucal_getNow ucal_getNow_3_4
-#define ucal_getTimeZoneDisplayName ucal_getTimeZoneDisplayName_3_4
-#define ucal_inDaylightTime ucal_inDaylightTime_3_4
-#define ucal_isSet ucal_isSet_3_4
-#define ucal_open ucal_open_3_4
-#define ucal_openCountryTimeZones ucal_openCountryTimeZones_3_4
-#define ucal_openTimeZones ucal_openTimeZones_3_4
-#define ucal_roll ucal_roll_3_4
-#define ucal_set ucal_set_3_4
-#define ucal_setAttribute ucal_setAttribute_3_4
-#define ucal_setDate ucal_setDate_3_4
-#define ucal_setDateTime ucal_setDateTime_3_4
-#define ucal_setDefaultTimeZone ucal_setDefaultTimeZone_3_4
-#define ucal_setMillis ucal_setMillis_3_4
-#define ucal_setTimeZone ucal_setTimeZone_3_4
-#define ucase_addCaseClosure ucase_addCaseClosure_3_4
-#define ucase_addPropertyStarts ucase_addPropertyStarts_3_4
-#define ucase_addStringCaseClosure ucase_addStringCaseClosure_3_4
-#define ucase_close ucase_close_3_4
-#define ucase_fold ucase_fold_3_4
-#define ucase_getCaseLocale ucase_getCaseLocale_3_4
-#define ucase_getDummy ucase_getDummy_3_4
-#define ucase_getSingleton ucase_getSingleton_3_4
-#define ucase_getType ucase_getType_3_4
-#define ucase_getTypeOrIgnorable ucase_getTypeOrIgnorable_3_4
-#define ucase_isCaseSensitive ucase_isCaseSensitive_3_4
-#define ucase_isSoftDotted ucase_isSoftDotted_3_4
-#define ucase_toFullFolding ucase_toFullFolding_3_4
-#define ucase_toFullLower ucase_toFullLower_3_4
-#define ucase_toFullTitle ucase_toFullTitle_3_4
-#define ucase_toFullUpper ucase_toFullUpper_3_4
-#define ucase_tolower ucase_tolower_3_4
-#define ucase_totitle ucase_totitle_3_4
-#define ucase_toupper ucase_toupper_3_4
-#define ucasemap_close ucasemap_close_3_4
-#define ucasemap_getLocale ucasemap_getLocale_3_4
-#define ucasemap_getOptions ucasemap_getOptions_3_4
-#define ucasemap_open ucasemap_open_3_4
-#define ucasemap_setLocale ucasemap_setLocale_3_4
-#define ucasemap_setOptions ucasemap_setOptions_3_4
-#define ucasemap_utf8ToLower ucasemap_utf8ToLower_3_4
-#define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_3_4
-#define uchar_addPropertyStarts uchar_addPropertyStarts_3_4
-#define uchar_getHST uchar_getHST_3_4
-#define uchar_swapNames uchar_swapNames_3_4
-#define ucln_common_lib_cleanup ucln_common_lib_cleanup_3_4
-#define ucln_common_registerCleanup ucln_common_registerCleanup_3_4
-#define ucln_i18n_registerCleanup ucln_i18n_registerCleanup_3_4
-#define ucln_registerCleanup ucln_registerCleanup_3_4
-#define ucmp8_close ucmp8_close_3_4
-#define ucmp8_compact ucmp8_compact_3_4
-#define ucmp8_expand ucmp8_expand_3_4
-#define ucmp8_flattenMem ucmp8_flattenMem_3_4
-#define ucmp8_getArray ucmp8_getArray_3_4
-#define ucmp8_getCount ucmp8_getCount_3_4
-#define ucmp8_getIndex ucmp8_getIndex_3_4
-#define ucmp8_getkBlockCount ucmp8_getkBlockCount_3_4
-#define ucmp8_getkUnicodeCount ucmp8_getkUnicodeCount_3_4
-#define ucmp8_init ucmp8_init_3_4
-#define ucmp8_initAdopt ucmp8_initAdopt_3_4
-#define ucmp8_initAlias ucmp8_initAlias_3_4
-#define ucmp8_initBogus ucmp8_initBogus_3_4
-#define ucmp8_initFromData ucmp8_initFromData_3_4
-#define ucmp8_isBogus ucmp8_isBogus_3_4
-#define ucmp8_open ucmp8_open_3_4
-#define ucmp8_openAdopt ucmp8_openAdopt_3_4
-#define ucmp8_openAlias ucmp8_openAlias_3_4
-#define ucmp8_set ucmp8_set_3_4
-#define ucmp8_setRange ucmp8_setRange_3_4
-#define ucnv_MBCSFromUChar32 ucnv_MBCSFromUChar32_3_4
-#define ucnv_MBCSFromUnicodeWithOffsets ucnv_MBCSFromUnicodeWithOffsets_3_4
-#define ucnv_MBCSGetType ucnv_MBCSGetType_3_4
-#define ucnv_MBCSGetUnicodeSetForBytes ucnv_MBCSGetUnicodeSetForBytes_3_4
-#define ucnv_MBCSGetUnicodeSetForUnicode ucnv_MBCSGetUnicodeSetForUnicode_3_4
-#define ucnv_MBCSIsLeadByte ucnv_MBCSIsLeadByte_3_4
-#define ucnv_MBCSSimpleGetNextUChar ucnv_MBCSSimpleGetNextUChar_3_4
-#define ucnv_MBCSToUnicodeWithOffsets ucnv_MBCSToUnicodeWithOffsets_3_4
-#define ucnv_bld_countAvailableConverters ucnv_bld_countAvailableConverters_3_4
-#define ucnv_bld_getAvailableConverter ucnv_bld_getAvailableConverter_3_4
-#define ucnv_cbFromUWriteBytes ucnv_cbFromUWriteBytes_3_4
-#define ucnv_cbFromUWriteSub ucnv_cbFromUWriteSub_3_4
-#define ucnv_cbFromUWriteUChars ucnv_cbFromUWriteUChars_3_4
-#define ucnv_cbToUWriteSub ucnv_cbToUWriteSub_3_4
-#define ucnv_cbToUWriteUChars ucnv_cbToUWriteUChars_3_4
-#define ucnv_close ucnv_close_3_4
-#define ucnv_compareNames ucnv_compareNames_3_4
-#define ucnv_convert ucnv_convert_3_4
-#define ucnv_convertEx ucnv_convertEx_3_4
-#define ucnv_countAliases ucnv_countAliases_3_4
-#define ucnv_countAvailable ucnv_countAvailable_3_4
-#define ucnv_countStandards ucnv_countStandards_3_4
-#define ucnv_createAlgorithmicConverter ucnv_createAlgorithmicConverter_3_4
-#define ucnv_createConverter ucnv_createConverter_3_4
-#define ucnv_createConverterFromPackage ucnv_createConverterFromPackage_3_4
-#define ucnv_createConverterFromSharedData ucnv_createConverterFromSharedData_3_4
-#define ucnv_detectUnicodeSignature ucnv_detectUnicodeSignature_3_4
-#define ucnv_extContinueMatchFromU ucnv_extContinueMatchFromU_3_4
-#define ucnv_extContinueMatchToU ucnv_extContinueMatchToU_3_4
-#define ucnv_extGetUnicodeSet ucnv_extGetUnicodeSet_3_4
-#define ucnv_extInitialMatchFromU ucnv_extInitialMatchFromU_3_4
-#define ucnv_extInitialMatchToU ucnv_extInitialMatchToU_3_4
-#define ucnv_extSimpleMatchFromU ucnv_extSimpleMatchFromU_3_4
-#define ucnv_extSimpleMatchToU ucnv_extSimpleMatchToU_3_4
-#define ucnv_fixFileSeparator ucnv_fixFileSeparator_3_4
-#define ucnv_flushCache ucnv_flushCache_3_4
-#define ucnv_fromAlgorithmic ucnv_fromAlgorithmic_3_4
-#define ucnv_fromUChars ucnv_fromUChars_3_4
-#define ucnv_fromUCountPending ucnv_fromUCountPending_3_4
-#define ucnv_fromUWriteBytes ucnv_fromUWriteBytes_3_4
-#define ucnv_fromUnicode ucnv_fromUnicode_3_4
-#define ucnv_fromUnicode_UTF8 ucnv_fromUnicode_UTF8_3_4
-#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC ucnv_fromUnicode_UTF8_OFFSETS_LOGIC_3_4
-#define ucnv_getAlias ucnv_getAlias_3_4
-#define ucnv_getAliases ucnv_getAliases_3_4
-#define ucnv_getAvailableName ucnv_getAvailableName_3_4
-#define ucnv_getCCSID ucnv_getCCSID_3_4
-#define ucnv_getCanonicalName ucnv_getCanonicalName_3_4
-#define ucnv_getCompleteUnicodeSet ucnv_getCompleteUnicodeSet_3_4
-#define ucnv_getDefaultName ucnv_getDefaultName_3_4
-#define ucnv_getDisplayName ucnv_getDisplayName_3_4
-#define ucnv_getFromUCallBack ucnv_getFromUCallBack_3_4
-#define ucnv_getInvalidChars ucnv_getInvalidChars_3_4
-#define ucnv_getInvalidUChars ucnv_getInvalidUChars_3_4
-#define ucnv_getMaxCharSize ucnv_getMaxCharSize_3_4
-#define ucnv_getMinCharSize ucnv_getMinCharSize_3_4
-#define ucnv_getName ucnv_getName_3_4
-#define ucnv_getNextUChar ucnv_getNextUChar_3_4
-#define ucnv_getNonSurrogateUnicodeSet ucnv_getNonSurrogateUnicodeSet_3_4
-#define ucnv_getPlatform ucnv_getPlatform_3_4
-#define ucnv_getStandard ucnv_getStandard_3_4
-#define ucnv_getStandardName ucnv_getStandardName_3_4
-#define ucnv_getStarters ucnv_getStarters_3_4
-#define ucnv_getSubstChars ucnv_getSubstChars_3_4
-#define ucnv_getToUCallBack ucnv_getToUCallBack_3_4
-#define ucnv_getType ucnv_getType_3_4
-#define ucnv_getUnicodeSet ucnv_getUnicodeSet_3_4
-#define ucnv_incrementRefCount ucnv_incrementRefCount_3_4
-#define ucnv_io_countAliases ucnv_io_countAliases_3_4
-#define ucnv_io_countStandards ucnv_io_countStandards_3_4
-#define ucnv_io_countTotalAliases ucnv_io_countTotalAliases_3_4
-#define ucnv_io_getAlias ucnv_io_getAlias_3_4
-#define ucnv_io_getAliases ucnv_io_getAliases_3_4
-#define ucnv_io_getConverterName ucnv_io_getConverterName_3_4
-#define ucnv_io_stripASCIIForCompare ucnv_io_stripASCIIForCompare_3_4
-#define ucnv_io_stripEBCDICForCompare ucnv_io_stripEBCDICForCompare_3_4
-#define ucnv_isAmbiguous ucnv_isAmbiguous_3_4
-#define ucnv_load ucnv_load_3_4
-#define ucnv_loadSharedData ucnv_loadSharedData_3_4
-#define ucnv_open ucnv_open_3_4
-#define ucnv_openAllNames ucnv_openAllNames_3_4
-#define ucnv_openCCSID ucnv_openCCSID_3_4
-#define ucnv_openPackage ucnv_openPackage_3_4
-#define ucnv_openStandardNames ucnv_openStandardNames_3_4
-#define ucnv_openU ucnv_openU_3_4
-#define ucnv_reset ucnv_reset_3_4
-#define ucnv_resetFromUnicode ucnv_resetFromUnicode_3_4
-#define ucnv_resetToUnicode ucnv_resetToUnicode_3_4
-#define ucnv_safeClone ucnv_safeClone_3_4
-#define ucnv_setDefaultName ucnv_setDefaultName_3_4
-#define ucnv_setFallback ucnv_setFallback_3_4
-#define ucnv_setFromUCallBack ucnv_setFromUCallBack_3_4
-#define ucnv_setSubstChars ucnv_setSubstChars_3_4
-#define ucnv_setToUCallBack ucnv_setToUCallBack_3_4
-#define ucnv_swap ucnv_swap_3_4
-#define ucnv_swapAliases ucnv_swapAliases_3_4
-#define ucnv_toAlgorithmic ucnv_toAlgorithmic_3_4
-#define ucnv_toUChars ucnv_toUChars_3_4
-#define ucnv_toUCountPending ucnv_toUCountPending_3_4
-#define ucnv_toUWriteCodePoint ucnv_toUWriteCodePoint_3_4
-#define ucnv_toUWriteUChars ucnv_toUWriteUChars_3_4
-#define ucnv_toUnicode ucnv_toUnicode_3_4
-#define ucnv_unload ucnv_unload_3_4
-#define ucnv_unloadSharedDataIfReady ucnv_unloadSharedDataIfReady_3_4
-#define ucnv_usesFallback ucnv_usesFallback_3_4
-#define ucol_allocWeights ucol_allocWeights_3_4
-#define ucol_assembleTailoringTable ucol_assembleTailoringTable_3_4
-#define ucol_calcSortKey ucol_calcSortKey_3_4
-#define ucol_calcSortKeySimpleTertiary ucol_calcSortKeySimpleTertiary_3_4
-#define ucol_cloneBinary ucol_cloneBinary_3_4
-#define ucol_cloneRuleData ucol_cloneRuleData_3_4
-#define ucol_close ucol_close_3_4
-#define ucol_closeElements ucol_closeElements_3_4
-#define ucol_collatorToIdentifier ucol_collatorToIdentifier_3_4
-#define ucol_countAvailable ucol_countAvailable_3_4
-#define ucol_createElements ucol_createElements_3_4
-#define ucol_doCE ucol_doCE_3_4
-#define ucol_equal ucol_equal_3_4
-#define ucol_equals ucol_equals_3_4
-#define ucol_forgetUCA ucol_forgetUCA_3_4
-#define ucol_getAttribute ucol_getAttribute_3_4
-#define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_3_4
-#define ucol_getAvailable ucol_getAvailable_3_4
-#define ucol_getBound ucol_getBound_3_4
-#define ucol_getCEGenerator ucol_getCEGenerator_3_4
-#define ucol_getCEStrengthDifference ucol_getCEStrengthDifference_3_4
-#define ucol_getContractions ucol_getContractions_3_4
-#define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_3_4
-#define ucol_getDisplayName ucol_getDisplayName_3_4
-#define ucol_getFirstCE ucol_getFirstCE_3_4
-#define ucol_getFunctionalEquivalent ucol_getFunctionalEquivalent_3_4
-#define ucol_getKeywordValues ucol_getKeywordValues_3_4
-#define ucol_getKeywords ucol_getKeywords_3_4
-#define ucol_getLocale ucol_getLocale_3_4
-#define ucol_getLocaleByType ucol_getLocaleByType_3_4
-#define ucol_getMaxExpansion ucol_getMaxExpansion_3_4
-#define ucol_getNextCE ucol_getNextCE_3_4
-#define ucol_getNextGenerated ucol_getNextGenerated_3_4
-#define ucol_getOffset ucol_getOffset_3_4
-#define ucol_getPrevCE ucol_getPrevCE_3_4
-#define ucol_getRules ucol_getRules_3_4
-#define ucol_getRulesEx ucol_getRulesEx_3_4
-#define ucol_getShortDefinitionString ucol_getShortDefinitionString_3_4
-#define ucol_getSimpleCEGenerator ucol_getSimpleCEGenerator_3_4
-#define ucol_getSortKey ucol_getSortKey_3_4
-#define ucol_getSortKeySize ucol_getSortKeySize_3_4
-#define ucol_getSortKeyWithAllocation ucol_getSortKeyWithAllocation_3_4
-#define ucol_getStrength ucol_getStrength_3_4
-#define ucol_getTailoredSet ucol_getTailoredSet_3_4
-#define ucol_getUCAVersion ucol_getUCAVersion_3_4
-#define ucol_getUnsafeSet ucol_getUnsafeSet_3_4
-#define ucol_getVariableTop ucol_getVariableTop_3_4
-#define ucol_getVersion ucol_getVersion_3_4
-#define ucol_greater ucol_greater_3_4
-#define ucol_greaterOrEqual ucol_greaterOrEqual_3_4
-#define ucol_identifierToShortString ucol_identifierToShortString_3_4
-#define ucol_initBuffers ucol_initBuffers_3_4
-#define ucol_initCollator ucol_initCollator_3_4
-#define ucol_initInverseUCA ucol_initInverseUCA_3_4
-#define ucol_initUCA ucol_initUCA_3_4
-#define ucol_inv_getGapPositions ucol_inv_getGapPositions_3_4
-#define ucol_inv_getNextCE ucol_inv_getNextCE_3_4
-#define ucol_inv_getPrevCE ucol_inv_getPrevCE_3_4
-#define ucol_isTailored ucol_isTailored_3_4
-#define ucol_keyHashCode ucol_keyHashCode_3_4
-#define ucol_mergeSortkeys ucol_mergeSortkeys_3_4
-#define ucol_next ucol_next_3_4
-#define ucol_nextSortKeyPart ucol_nextSortKeyPart_3_4
-#define ucol_nextWeight ucol_nextWeight_3_4
-#define ucol_normalizeShortDefinitionString ucol_normalizeShortDefinitionString_3_4
-#define ucol_open ucol_open_3_4
-#define ucol_openAvailableLocales ucol_openAvailableLocales_3_4
-#define ucol_openBinary ucol_openBinary_3_4
-#define ucol_openElements ucol_openElements_3_4
-#define ucol_openFromIdentifier ucol_openFromIdentifier_3_4
-#define ucol_openFromShortString ucol_openFromShortString_3_4
-#define ucol_openRules ucol_openRules_3_4
-#define ucol_open_internal ucol_open_internal_3_4
-#define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_3_4
-#define ucol_previous ucol_previous_3_4
-#define ucol_primaryOrder ucol_primaryOrder_3_4
-#define ucol_prv_getSpecialCE ucol_prv_getSpecialCE_3_4
-#define ucol_prv_getSpecialPrevCE ucol_prv_getSpecialPrevCE_3_4
-#define ucol_reset ucol_reset_3_4
-#define ucol_restoreVariableTop ucol_restoreVariableTop_3_4
-#define ucol_safeClone ucol_safeClone_3_4
-#define ucol_secondaryOrder ucol_secondaryOrder_3_4
-#define ucol_setAttribute ucol_setAttribute_3_4
-#define ucol_setOffset ucol_setOffset_3_4
-#define ucol_setOptionsFromHeader ucol_setOptionsFromHeader_3_4
-#define ucol_setReqValidLocales ucol_setReqValidLocales_3_4
-#define ucol_setStrength ucol_setStrength_3_4
-#define ucol_setText ucol_setText_3_4
-#define ucol_setVariableTop ucol_setVariableTop_3_4
-#define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_3_4
-#define ucol_strcoll ucol_strcoll_3_4
-#define ucol_strcollIter ucol_strcollIter_3_4
-#define ucol_swap ucol_swap_3_4
-#define ucol_swapBinary ucol_swapBinary_3_4
-#define ucol_swapInverseUCA ucol_swapInverseUCA_3_4
-#define ucol_tertiaryOrder ucol_tertiaryOrder_3_4
-#define ucol_tok_assembleTokenList ucol_tok_assembleTokenList_3_4
-#define ucol_tok_closeTokenList ucol_tok_closeTokenList_3_4
-#define ucol_tok_getNextArgument ucol_tok_getNextArgument_3_4
-#define ucol_tok_initTokenList ucol_tok_initTokenList_3_4
-#define ucol_tok_parseNextToken ucol_tok_parseNextToken_3_4
-#define ucol_updateInternalState ucol_updateInternalState_3_4
-#define ucurr_forLocale ucurr_forLocale_3_4
-#define ucurr_getDefaultFractionDigits ucurr_getDefaultFractionDigits_3_4
-#define ucurr_getName ucurr_getName_3_4
-#define ucurr_getRoundingIncrement ucurr_getRoundingIncrement_3_4
-#define ucurr_openISOCurrencies ucurr_openISOCurrencies_3_4
-#define ucurr_register ucurr_register_3_4
-#define ucurr_unregister ucurr_unregister_3_4
-#define udat_applyPattern udat_applyPattern_3_4
-#define udat_clone udat_clone_3_4
-#define udat_close udat_close_3_4
-#define udat_countAvailable udat_countAvailable_3_4
-#define udat_countSymbols udat_countSymbols_3_4
-#define udat_format udat_format_3_4
-#define udat_get2DigitYearStart udat_get2DigitYearStart_3_4
-#define udat_getAvailable udat_getAvailable_3_4
-#define udat_getCalendar udat_getCalendar_3_4
-#define udat_getLocaleByType udat_getLocaleByType_3_4
-#define udat_getNumberFormat udat_getNumberFormat_3_4
-#define udat_getSymbols udat_getSymbols_3_4
-#define udat_isLenient udat_isLenient_3_4
-#define udat_open udat_open_3_4
-#define udat_parse udat_parse_3_4
-#define udat_parseCalendar udat_parseCalendar_3_4
-#define udat_set2DigitYearStart udat_set2DigitYearStart_3_4
-#define udat_setCalendar udat_setCalendar_3_4
-#define udat_setLenient udat_setLenient_3_4
-#define udat_setNumberFormat udat_setNumberFormat_3_4
-#define udat_setSymbols udat_setSymbols_3_4
-#define udat_toPattern udat_toPattern_3_4
-#define udata_checkCommonData udata_checkCommonData_3_4
-#define udata_close udata_close_3_4
-#define udata_closeSwapper udata_closeSwapper_3_4
-#define udata_getHeaderSize udata_getHeaderSize_3_4
-#define udata_getInfo udata_getInfo_3_4
-#define udata_getInfoSize udata_getInfoSize_3_4
-#define udata_getLength udata_getLength_3_4
-#define udata_getMemory udata_getMemory_3_4
-#define udata_getRawMemory udata_getRawMemory_3_4
-#define udata_open udata_open_3_4
-#define udata_openChoice udata_openChoice_3_4
-#define udata_openSwapper udata_openSwapper_3_4
-#define udata_openSwapperForInputData udata_openSwapperForInputData_3_4
-#define udata_printError udata_printError_3_4
-#define udata_readInt16 udata_readInt16_3_4
-#define udata_readInt32 udata_readInt32_3_4
-#define udata_setAppData udata_setAppData_3_4
-#define udata_setCommonData udata_setCommonData_3_4
-#define udata_setFileAccess udata_setFileAccess_3_4
-#define udata_swapDataHeader udata_swapDataHeader_3_4
-#define udata_swapInvStringBlock udata_swapInvStringBlock_3_4
-#define uenum_close uenum_close_3_4
-#define uenum_count uenum_count_3_4
-#define uenum_next uenum_next_3_4
-#define uenum_nextDefault uenum_nextDefault_3_4
-#define uenum_openCharStringsEnumeration uenum_openCharStringsEnumeration_3_4
-#define uenum_openStringEnumeration uenum_openStringEnumeration_3_4
-#define uenum_reset uenum_reset_3_4
-#define uenum_unext uenum_unext_3_4
-#define uenum_unextDefault uenum_unextDefault_3_4
-#define ufile_close_translit ufile_close_translit_3_4
-#define ufile_fill_uchar_buffer ufile_fill_uchar_buffer_3_4
-#define ufile_flush_translit ufile_flush_translit_3_4
-#define ufile_getch ufile_getch_3_4
-#define ufile_getch32 ufile_getch32_3_4
-#define ufmt_64tou ufmt_64tou_3_4
-#define ufmt_defaultCPToUnicode ufmt_defaultCPToUnicode_3_4
-#define ufmt_digitvalue ufmt_digitvalue_3_4
-#define ufmt_isdigit ufmt_isdigit_3_4
-#define ufmt_ptou ufmt_ptou_3_4
-#define ufmt_uto64 ufmt_uto64_3_4
-#define ufmt_utop ufmt_utop_3_4
-#define uhash_close uhash_close_3_4
-#define uhash_compareCaselessUnicodeString uhash_compareCaselessUnicodeString_3_4
-#define uhash_compareChars uhash_compareChars_3_4
-#define uhash_compareIChars uhash_compareIChars_3_4
-#define uhash_compareLong uhash_compareLong_3_4
-#define uhash_compareUChars uhash_compareUChars_3_4
-#define uhash_compareUnicodeString uhash_compareUnicodeString_3_4
-#define uhash_count uhash_count_3_4
-#define uhash_deleteHashtable uhash_deleteHashtable_3_4
-#define uhash_deleteUVector uhash_deleteUVector_3_4
-#define uhash_deleteUnicodeString uhash_deleteUnicodeString_3_4
-#define uhash_find uhash_find_3_4
-#define uhash_freeBlock uhash_freeBlock_3_4
-#define uhash_get uhash_get_3_4
-#define uhash_geti uhash_geti_3_4
-#define uhash_hashCaselessUnicodeString uhash_hashCaselessUnicodeString_3_4
-#define uhash_hashChars uhash_hashChars_3_4
-#define uhash_hashIChars uhash_hashIChars_3_4
-#define uhash_hashLong uhash_hashLong_3_4
-#define uhash_hashUChars uhash_hashUChars_3_4
-#define uhash_hashUCharsN uhash_hashUCharsN_3_4
-#define uhash_hashUnicodeString uhash_hashUnicodeString_3_4
-#define uhash_iget uhash_iget_3_4
-#define uhash_igeti uhash_igeti_3_4
-#define uhash_iput uhash_iput_3_4
-#define uhash_iputi uhash_iputi_3_4
-#define uhash_iremove uhash_iremove_3_4
-#define uhash_iremovei uhash_iremovei_3_4
-#define uhash_nextElement uhash_nextElement_3_4
-#define uhash_open uhash_open_3_4
-#define uhash_openSize uhash_openSize_3_4
-#define uhash_put uhash_put_3_4
-#define uhash_puti uhash_puti_3_4
-#define uhash_remove uhash_remove_3_4
-#define uhash_removeAll uhash_removeAll_3_4
-#define uhash_removeElement uhash_removeElement_3_4
-#define uhash_removei uhash_removei_3_4
-#define uhash_setKeyComparator uhash_setKeyComparator_3_4
-#define uhash_setKeyDeleter uhash_setKeyDeleter_3_4
-#define uhash_setKeyHasher uhash_setKeyHasher_3_4
-#define uhash_setResizePolicy uhash_setResizePolicy_3_4
-#define uhash_setValueDeleter uhash_setValueDeleter_3_4
-#define uhst_addPropertyStarts uhst_addPropertyStarts_3_4
-#define uidna_IDNToASCII uidna_IDNToASCII_3_4
-#define uidna_IDNToUnicode uidna_IDNToUnicode_3_4
-#define uidna_compare uidna_compare_3_4
-#define uidna_toASCII uidna_toASCII_3_4
-#define uidna_toUnicode uidna_toUnicode_3_4
-#define uiter_current32 uiter_current32_3_4
-#define uiter_getState uiter_getState_3_4
-#define uiter_next32 uiter_next32_3_4
-#define uiter_previous32 uiter_previous32_3_4
-#define uiter_setCharacterIterator uiter_setCharacterIterator_3_4
-#define uiter_setReplaceable uiter_setReplaceable_3_4
-#define uiter_setState uiter_setState_3_4
-#define uiter_setString uiter_setString_3_4
-#define uiter_setUTF16BE uiter_setUTF16BE_3_4
-#define uiter_setUTF8 uiter_setUTF8_3_4
-#define uloc_acceptLanguage uloc_acceptLanguage_3_4
-#define uloc_acceptLanguageFromHTTP uloc_acceptLanguageFromHTTP_3_4
-#define uloc_canonicalize uloc_canonicalize_3_4
-#define uloc_countAvailable uloc_countAvailable_3_4
-#define uloc_getAvailable uloc_getAvailable_3_4
-#define uloc_getBaseName uloc_getBaseName_3_4
-#define uloc_getCountry uloc_getCountry_3_4
-#define uloc_getDefault uloc_getDefault_3_4
-#define uloc_getDisplayCountry uloc_getDisplayCountry_3_4
-#define uloc_getDisplayKeyword uloc_getDisplayKeyword_3_4
-#define uloc_getDisplayKeywordValue uloc_getDisplayKeywordValue_3_4
-#define uloc_getDisplayLanguage uloc_getDisplayLanguage_3_4
-#define uloc_getDisplayName uloc_getDisplayName_3_4
-#define uloc_getDisplayScript uloc_getDisplayScript_3_4
-#define uloc_getDisplayVariant uloc_getDisplayVariant_3_4
-#define uloc_getISO3Country uloc_getISO3Country_3_4
-#define uloc_getISO3Language uloc_getISO3Language_3_4
-#define uloc_getISOCountries uloc_getISOCountries_3_4
-#define uloc_getISOLanguages uloc_getISOLanguages_3_4
-#define uloc_getKeywordValue uloc_getKeywordValue_3_4
-#define uloc_getLCID uloc_getLCID_3_4
-#define uloc_getLanguage uloc_getLanguage_3_4
-#define uloc_getName uloc_getName_3_4
-#define uloc_getParent uloc_getParent_3_4
-#define uloc_getScript uloc_getScript_3_4
-#define uloc_getVariant uloc_getVariant_3_4
-#define uloc_openKeywordList uloc_openKeywordList_3_4
-#define uloc_openKeywords uloc_openKeywords_3_4
-#define uloc_setDefault uloc_setDefault_3_4
-#define uloc_setKeywordValue uloc_setKeywordValue_3_4
-#define ulocdata_close ulocdata_close_3_4
-#define ulocdata_getDelimiter ulocdata_getDelimiter_3_4
-#define ulocdata_getExemplarSet ulocdata_getExemplarSet_3_4
-#define ulocdata_getMeasurementSystem ulocdata_getMeasurementSystem_3_4
-#define ulocdata_getPaperSize ulocdata_getPaperSize_3_4
-#define ulocdata_open ulocdata_open_3_4
-#define umsg_applyPattern umsg_applyPattern_3_4
-#define umsg_autoQuoteApostrophe umsg_autoQuoteApostrophe_3_4
-#define umsg_clone umsg_clone_3_4
-#define umsg_close umsg_close_3_4
-#define umsg_format umsg_format_3_4
-#define umsg_getLocale umsg_getLocale_3_4
-#define umsg_open umsg_open_3_4
-#define umsg_parse umsg_parse_3_4
-#define umsg_setLocale umsg_setLocale_3_4
-#define umsg_toPattern umsg_toPattern_3_4
-#define umsg_vformat umsg_vformat_3_4
-#define umsg_vparse umsg_vparse_3_4
-#define umtx_atomic_dec umtx_atomic_dec_3_4
-#define umtx_atomic_inc umtx_atomic_inc_3_4
-#define umtx_cleanup umtx_cleanup_3_4
-#define umtx_destroy umtx_destroy_3_4
-#define umtx_init umtx_init_3_4
-#define umtx_lock umtx_lock_3_4
-#define umtx_unlock umtx_unlock_3_4
-#define unorm_addPropertyStarts unorm_addPropertyStarts_3_4
-#define unorm_closeIter unorm_closeIter_3_4
-#define unorm_compare unorm_compare_3_4
-#define unorm_compose unorm_compose_3_4
-#define unorm_concatenate unorm_concatenate_3_4
-#define unorm_decompose unorm_decompose_3_4
-#define unorm_getCanonStartSet unorm_getCanonStartSet_3_4
-#define unorm_getCanonicalDecomposition unorm_getCanonicalDecomposition_3_4
-#define unorm_getDecomposition unorm_getDecomposition_3_4
-#define unorm_getFCD16FromCodePoint unorm_getFCD16FromCodePoint_3_4
-#define unorm_getFCDTrie unorm_getFCDTrie_3_4
-#define unorm_getNX unorm_getNX_3_4
-#define unorm_getQuickCheck unorm_getQuickCheck_3_4
-#define unorm_getUnicodeVersion unorm_getUnicodeVersion_3_4
-#define unorm_haveData unorm_haveData_3_4
-#define unorm_internalIsFullCompositionExclusion unorm_internalIsFullCompositionExclusion_3_4
-#define unorm_internalNormalize unorm_internalNormalize_3_4
-#define unorm_internalNormalizeWithNX unorm_internalNormalizeWithNX_3_4
-#define unorm_internalQuickCheck unorm_internalQuickCheck_3_4
-#define unorm_isCanonSafeStart unorm_isCanonSafeStart_3_4
-#define unorm_isNFSkippable unorm_isNFSkippable_3_4
-#define unorm_isNormalized unorm_isNormalized_3_4
-#define unorm_isNormalizedWithOptions unorm_isNormalizedWithOptions_3_4
-#define unorm_next unorm_next_3_4
-#define unorm_normalize unorm_normalize_3_4
-#define unorm_openIter unorm_openIter_3_4
-#define unorm_previous unorm_previous_3_4
-#define unorm_quickCheck unorm_quickCheck_3_4
-#define unorm_quickCheckWithOptions unorm_quickCheckWithOptions_3_4
-#define unorm_setIter unorm_setIter_3_4
-#define unum_applyPattern unum_applyPattern_3_4
-#define unum_clone unum_clone_3_4
-#define unum_close unum_close_3_4
-#define unum_countAvailable unum_countAvailable_3_4
-#define unum_format unum_format_3_4
-#define unum_formatDouble unum_formatDouble_3_4
-#define unum_formatDoubleCurrency unum_formatDoubleCurrency_3_4
-#define unum_formatInt64 unum_formatInt64_3_4
-#define unum_getAttribute unum_getAttribute_3_4
-#define unum_getAvailable unum_getAvailable_3_4
-#define unum_getDoubleAttribute unum_getDoubleAttribute_3_4
-#define unum_getLocaleByType unum_getLocaleByType_3_4
-#define unum_getSymbol unum_getSymbol_3_4
-#define unum_getTextAttribute unum_getTextAttribute_3_4
-#define unum_open unum_open_3_4
-#define unum_parse unum_parse_3_4
-#define unum_parseDouble unum_parseDouble_3_4
-#define unum_parseDoubleCurrency unum_parseDoubleCurrency_3_4
-#define unum_parseInt64 unum_parseInt64_3_4
-#define unum_setAttribute unum_setAttribute_3_4
-#define unum_setDoubleAttribute unum_setDoubleAttribute_3_4
-#define unum_setSymbol unum_setSymbol_3_4
-#define unum_setTextAttribute unum_setTextAttribute_3_4
-#define unum_toPattern unum_toPattern_3_4
-#define upname_swap upname_swap_3_4
-#define uprops_getSource uprops_getSource_3_4
-#define upropsvec_addPropertyStarts upropsvec_addPropertyStarts_3_4
-#define uprv_asciiFromEbcdic uprv_asciiFromEbcdic_3_4
-#define uprv_asciitolower uprv_asciitolower_3_4
-#define uprv_ceil uprv_ceil_3_4
-#define uprv_cnttab_addContraction uprv_cnttab_addContraction_3_4
-#define uprv_cnttab_changeContraction uprv_cnttab_changeContraction_3_4
-#define uprv_cnttab_changeLastCE uprv_cnttab_changeLastCE_3_4
-#define uprv_cnttab_clone uprv_cnttab_clone_3_4
-#define uprv_cnttab_close uprv_cnttab_close_3_4
-#define uprv_cnttab_constructTable uprv_cnttab_constructTable_3_4
-#define uprv_cnttab_findCE uprv_cnttab_findCE_3_4
-#define uprv_cnttab_findCP uprv_cnttab_findCP_3_4
-#define uprv_cnttab_getCE uprv_cnttab_getCE_3_4
-#define uprv_cnttab_insertContraction uprv_cnttab_insertContraction_3_4
-#define uprv_cnttab_isTailored uprv_cnttab_isTailored_3_4
-#define uprv_cnttab_open uprv_cnttab_open_3_4
-#define uprv_cnttab_setContraction uprv_cnttab_setContraction_3_4
-#define uprv_compareASCIIPropertyNames uprv_compareASCIIPropertyNames_3_4
-#define uprv_compareEBCDICPropertyNames uprv_compareEBCDICPropertyNames_3_4
-#define uprv_compareInvAscii uprv_compareInvAscii_3_4
-#define uprv_compareInvEbcdic uprv_compareInvEbcdic_3_4
-#define uprv_convertToLCID uprv_convertToLCID_3_4
-#define uprv_convertToPosix uprv_convertToPosix_3_4
-#define uprv_copyAscii uprv_copyAscii_3_4
-#define uprv_copyEbcdic uprv_copyEbcdic_3_4
-#define uprv_dtostr uprv_dtostr_3_4
-#define uprv_ebcdicFromAscii uprv_ebcdicFromAscii_3_4
-#define uprv_ebcdictolower uprv_ebcdictolower_3_4
-#define uprv_fabs uprv_fabs_3_4
-#define uprv_floor uprv_floor_3_4
-#define uprv_fmax uprv_fmax_3_4
-#define uprv_fmin uprv_fmin_3_4
-#define uprv_fmod uprv_fmod_3_4
-#define uprv_free uprv_free_3_4
-#define uprv_getCharNameCharacters uprv_getCharNameCharacters_3_4
-#define uprv_getDefaultCodepage uprv_getDefaultCodepage_3_4
-#define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_3_4
-#define uprv_getInfinity uprv_getInfinity_3_4
-#define uprv_getMaxCharNameLength uprv_getMaxCharNameLength_3_4
-#define uprv_getMaxValues uprv_getMaxValues_3_4
-#define uprv_getNaN uprv_getNaN_3_4
-#define uprv_getStaticCurrencyName uprv_getStaticCurrencyName_3_4
-#define uprv_getUTCtime uprv_getUTCtime_3_4
-#define uprv_haveProperties uprv_haveProperties_3_4
-#define uprv_init_collIterate uprv_init_collIterate_3_4
-#define uprv_int32Comparator uprv_int32Comparator_3_4
-#define uprv_isInfinite uprv_isInfinite_3_4
-#define uprv_isInvariantString uprv_isInvariantString_3_4
-#define uprv_isInvariantUString uprv_isInvariantUString_3_4
-#define uprv_isNaN uprv_isNaN_3_4
-#define uprv_isNegativeInfinity uprv_isNegativeInfinity_3_4
-#define uprv_isPositiveInfinity uprv_isPositiveInfinity_3_4
-#define uprv_isRuleWhiteSpace uprv_isRuleWhiteSpace_3_4
-#define uprv_itou uprv_itou_3_4
-#define uprv_loadPropsData uprv_loadPropsData_3_4
-#define uprv_log uprv_log_3_4
-#define uprv_log10 uprv_log10_3_4
-#define uprv_malloc uprv_malloc_3_4
-#define uprv_mapFile uprv_mapFile_3_4
-#define uprv_max uprv_max_3_4
-#define uprv_maxMantissa uprv_maxMantissa_3_4
-#define uprv_min uprv_min_3_4
-#define uprv_modf uprv_modf_3_4
-#define uprv_openRuleWhiteSpaceSet uprv_openRuleWhiteSpaceSet_3_4
-#define uprv_pathIsAbsolute uprv_pathIsAbsolute_3_4
-#define uprv_pow uprv_pow_3_4
-#define uprv_pow10 uprv_pow10_3_4
-#define uprv_realloc uprv_realloc_3_4
-#define uprv_round uprv_round_3_4
-#define uprv_sortArray uprv_sortArray_3_4
-#define uprv_strCompare uprv_strCompare_3_4
-#define uprv_strdup uprv_strdup_3_4
-#define uprv_strndup uprv_strndup_3_4
-#define uprv_syntaxError uprv_syntaxError_3_4
-#define uprv_timezone uprv_timezone_3_4
-#define uprv_toupper uprv_toupper_3_4
-#define uprv_trunc uprv_trunc_3_4
-#define uprv_tzname uprv_tzname_3_4
-#define uprv_tzset uprv_tzset_3_4
-#define uprv_uca_addAnElement uprv_uca_addAnElement_3_4
-#define uprv_uca_assembleTable uprv_uca_assembleTable_3_4
-#define uprv_uca_canonicalClosure uprv_uca_canonicalClosure_3_4
-#define uprv_uca_cloneTempTable uprv_uca_cloneTempTable_3_4
-#define uprv_uca_closeTempTable uprv_uca_closeTempTable_3_4
-#define uprv_uca_getCodePointFromRaw uprv_uca_getCodePointFromRaw_3_4
-#define uprv_uca_getImplicitFromRaw uprv_uca_getImplicitFromRaw_3_4
-#define uprv_uca_getImplicitPrimary uprv_uca_getImplicitPrimary_3_4
-#define uprv_uca_getRawFromCodePoint uprv_uca_getRawFromCodePoint_3_4
-#define uprv_uca_getRawFromImplicit uprv_uca_getRawFromImplicit_3_4
-#define uprv_uca_initImplicitConstants uprv_uca_initImplicitConstants_3_4
-#define uprv_uca_initTempTable uprv_uca_initTempTable_3_4
-#define uprv_uint16Comparator uprv_uint16Comparator_3_4
-#define uprv_uint32Comparator uprv_uint32Comparator_3_4
-#define uprv_unmapFile uprv_unmapFile_3_4
-#define uregex_appendReplacement uregex_appendReplacement_3_4
-#define uregex_appendTail uregex_appendTail_3_4
-#define uregex_clone uregex_clone_3_4
-#define uregex_close uregex_close_3_4
-#define uregex_end uregex_end_3_4
-#define uregex_find uregex_find_3_4
-#define uregex_findNext uregex_findNext_3_4
-#define uregex_flags uregex_flags_3_4
-#define uregex_getText uregex_getText_3_4
-#define uregex_group uregex_group_3_4
-#define uregex_groupCount uregex_groupCount_3_4
-#define uregex_lookingAt uregex_lookingAt_3_4
-#define uregex_matches uregex_matches_3_4
-#define uregex_open uregex_open_3_4
-#define uregex_openC uregex_openC_3_4
-#define uregex_pattern uregex_pattern_3_4
-#define uregex_replaceAll uregex_replaceAll_3_4
-#define uregex_replaceFirst uregex_replaceFirst_3_4
-#define uregex_reset uregex_reset_3_4
-#define uregex_setText uregex_setText_3_4
-#define uregex_split uregex_split_3_4
-#define uregex_start uregex_start_3_4
-#define ures_appendResPath ures_appendResPath_3_4
-#define ures_close ures_close_3_4
-#define ures_copyResb ures_copyResb_3_4
-#define ures_countArrayItems ures_countArrayItems_3_4
-#define ures_findResource ures_findResource_3_4
-#define ures_findSubResource ures_findSubResource_3_4
-#define ures_freeResPath ures_freeResPath_3_4
-#define ures_getBinary ures_getBinary_3_4
-#define ures_getByIndex ures_getByIndex_3_4
-#define ures_getByKey ures_getByKey_3_4
-#define ures_getByKeyWithFallback ures_getByKeyWithFallback_3_4
-#define ures_getFunctionalEquivalent ures_getFunctionalEquivalent_3_4
-#define ures_getInt ures_getInt_3_4
-#define ures_getIntVector ures_getIntVector_3_4
-#define ures_getKey ures_getKey_3_4
-#define ures_getKeywordValues ures_getKeywordValues_3_4
-#define ures_getLocale ures_getLocale_3_4
-#define ures_getLocaleByType ures_getLocaleByType_3_4
-#define ures_getName ures_getName_3_4
-#define ures_getNextResource ures_getNextResource_3_4
-#define ures_getNextString ures_getNextString_3_4
-#define ures_getPath ures_getPath_3_4
-#define ures_getSize ures_getSize_3_4
-#define ures_getString ures_getString_3_4
-#define ures_getStringByIndex ures_getStringByIndex_3_4
-#define ures_getStringByKey ures_getStringByKey_3_4
-#define ures_getType ures_getType_3_4
-#define ures_getUInt ures_getUInt_3_4
-#define ures_getVersion ures_getVersion_3_4
-#define ures_getVersionNumber ures_getVersionNumber_3_4
-#define ures_hasNext ures_hasNext_3_4
-#define ures_initStackObject ures_initStackObject_3_4
-#define ures_open ures_open_3_4
-#define ures_openAvailableLocales ures_openAvailableLocales_3_4
-#define ures_openDirect ures_openDirect_3_4
-#define ures_openFillIn ures_openFillIn_3_4
-#define ures_openU ures_openU_3_4
-#define ures_resetIterator ures_resetIterator_3_4
-#define ures_swap ures_swap_3_4
-#define uscript_closeRun uscript_closeRun_3_4
-#define uscript_getCode uscript_getCode_3_4
-#define uscript_getName uscript_getName_3_4
-#define uscript_getScript uscript_getScript_3_4
-#define uscript_getShortName uscript_getShortName_3_4
-#define uscript_nextRun uscript_nextRun_3_4
-#define uscript_openRun uscript_openRun_3_4
-#define uscript_resetRun uscript_resetRun_3_4
-#define uscript_setRunText uscript_setRunText_3_4
-#define usearch_close usearch_close_3_4
-#define usearch_first usearch_first_3_4
-#define usearch_following usearch_following_3_4
-#define usearch_getAttribute usearch_getAttribute_3_4
-#define usearch_getBreakIterator usearch_getBreakIterator_3_4
-#define usearch_getCollator usearch_getCollator_3_4
-#define usearch_getMatchedLength usearch_getMatchedLength_3_4
-#define usearch_getMatchedStart usearch_getMatchedStart_3_4
-#define usearch_getMatchedText usearch_getMatchedText_3_4
-#define usearch_getOffset usearch_getOffset_3_4
-#define usearch_getPattern usearch_getPattern_3_4
-#define usearch_getText usearch_getText_3_4
-#define usearch_handleNextCanonical usearch_handleNextCanonical_3_4
-#define usearch_handleNextExact usearch_handleNextExact_3_4
-#define usearch_handlePreviousCanonical usearch_handlePreviousCanonical_3_4
-#define usearch_handlePreviousExact usearch_handlePreviousExact_3_4
-#define usearch_last usearch_last_3_4
-#define usearch_next usearch_next_3_4
-#define usearch_open usearch_open_3_4
-#define usearch_openFromCollator usearch_openFromCollator_3_4
-#define usearch_preceding usearch_preceding_3_4
-#define usearch_previous usearch_previous_3_4
-#define usearch_reset usearch_reset_3_4
-#define usearch_setAttribute usearch_setAttribute_3_4
-#define usearch_setBreakIterator usearch_setBreakIterator_3_4
-#define usearch_setCollator usearch_setCollator_3_4
-#define usearch_setOffset usearch_setOffset_3_4
-#define usearch_setPattern usearch_setPattern_3_4
-#define usearch_setText usearch_setText_3_4
-#define userv_deleteStringPair userv_deleteStringPair_3_4
-#define uset_add uset_add_3_4
-#define uset_addAll uset_addAll_3_4
-#define uset_addAllCodePoints uset_addAllCodePoints_3_4
-#define uset_addRange uset_addRange_3_4
-#define uset_addString uset_addString_3_4
-#define uset_applyIntPropertyValue uset_applyIntPropertyValue_3_4
-#define uset_applyPattern uset_applyPattern_3_4
-#define uset_applyPropertyAlias uset_applyPropertyAlias_3_4
-#define uset_charAt uset_charAt_3_4
-#define uset_clear uset_clear_3_4
-#define uset_close uset_close_3_4
-#define uset_compact uset_compact_3_4
-#define uset_complement uset_complement_3_4
-#define uset_complementAll uset_complementAll_3_4
-#define uset_contains uset_contains_3_4
-#define uset_containsAll uset_containsAll_3_4
-#define uset_containsAllCodePoints uset_containsAllCodePoints_3_4
-#define uset_containsNone uset_containsNone_3_4
-#define uset_containsRange uset_containsRange_3_4
-#define uset_containsSome uset_containsSome_3_4
-#define uset_containsString uset_containsString_3_4
-#define uset_equals uset_equals_3_4
-#define uset_getItem uset_getItem_3_4
-#define uset_getItemCount uset_getItemCount_3_4
-#define uset_getSerializedRange uset_getSerializedRange_3_4
-#define uset_getSerializedRangeCount uset_getSerializedRangeCount_3_4
-#define uset_getSerializedSet uset_getSerializedSet_3_4
-#define uset_indexOf uset_indexOf_3_4
-#define uset_isEmpty uset_isEmpty_3_4
-#define uset_open uset_open_3_4
-#define uset_openPattern uset_openPattern_3_4
-#define uset_openPatternOptions uset_openPatternOptions_3_4
-#define uset_remove uset_remove_3_4
-#define uset_removeAll uset_removeAll_3_4
-#define uset_removeRange uset_removeRange_3_4
-#define uset_removeString uset_removeString_3_4
-#define uset_resemblesPattern uset_resemblesPattern_3_4
-#define uset_retain uset_retain_3_4
-#define uset_retainAll uset_retainAll_3_4
-#define uset_serialize uset_serialize_3_4
-#define uset_serializedContains uset_serializedContains_3_4
-#define uset_set uset_set_3_4
-#define uset_setSerializedToOne uset_setSerializedToOne_3_4
-#define uset_size uset_size_3_4
-#define uset_toPattern uset_toPattern_3_4
-#define usprep_close usprep_close_3_4
-#define usprep_open usprep_open_3_4
-#define usprep_prepare usprep_prepare_3_4
-#define usprep_swap usprep_swap_3_4
-#define ustr_foldCase ustr_foldCase_3_4
-#define ustr_toLower ustr_toLower_3_4
-#define ustr_toTitle ustr_toTitle_3_4
-#define ustr_toUpper ustr_toUpper_3_4
-#define utext_char32At utext_char32At_3_4
-#define utext_clone utext_clone_3_4
-#define utext_close utext_close_3_4
-#define utext_compare utext_compare_3_4
-#define utext_copy utext_copy_3_4
-#define utext_current32 utext_current32_3_4
-#define utext_extract utext_extract_3_4
-#define utext_getNativeIndex utext_getNativeIndex_3_4
-#define utext_hasMetaData utext_hasMetaData_3_4
-#define utext_isLengthExpensive utext_isLengthExpensive_3_4
-#define utext_isWritable utext_isWritable_3_4
-#define utext_moveIndex32 utext_moveIndex32_3_4
-#define utext_nativeLength utext_nativeLength_3_4
-#define utext_next32 utext_next32_3_4
-#define utext_next32From utext_next32From_3_4
-#define utext_openReplaceable utext_openReplaceable_3_4
-#define utext_openUChars utext_openUChars_3_4
-#define utext_openUTF8 utext_openUTF8_3_4
-#define utext_openUnicodeString utext_openUnicodeString_3_4
-#define utext_previous32 utext_previous32_3_4
-#define utext_previous32From utext_previous32From_3_4
-#define utext_replace utext_replace_3_4
-#define utext_setNativeIndex utext_setNativeIndex_3_4
-#define utext_setup utext_setup_3_4
-#define utf8_appendCharSafeBody utf8_appendCharSafeBody_3_4
-#define utf8_back1SafeBody utf8_back1SafeBody_3_4
-#define utf8_countTrailBytes utf8_countTrailBytes_3_4
-#define utf8_nextCharSafeBody utf8_nextCharSafeBody_3_4
-#define utf8_prevCharSafeBody utf8_prevCharSafeBody_3_4
-#define utmscale_fromInt64 utmscale_fromInt64_3_4
-#define utmscale_getTimeScaleValue utmscale_getTimeScaleValue_3_4
-#define utmscale_toInt64 utmscale_toInt64_3_4
-#define utrace_cleanup utrace_cleanup_3_4
-#define utrace_data utrace_data_3_4
-#define utrace_entry utrace_entry_3_4
-#define utrace_exit utrace_exit_3_4
-#define utrace_format utrace_format_3_4
-#define utrace_functionName utrace_functionName_3_4
-#define utrace_getFunctions utrace_getFunctions_3_4
-#define utrace_getLevel utrace_getLevel_3_4
-#define utrace_level utrace_level_3_4
-#define utrace_setFunctions utrace_setFunctions_3_4
-#define utrace_setLevel utrace_setLevel_3_4
-#define utrace_vformat utrace_vformat_3_4
-#define utrans_clone utrans_clone_3_4
-#define utrans_close utrans_close_3_4
-#define utrans_countAvailableIDs utrans_countAvailableIDs_3_4
-#define utrans_getAvailableID utrans_getAvailableID_3_4
-#define utrans_getID utrans_getID_3_4
-#define utrans_getUnicodeID utrans_getUnicodeID_3_4
-#define utrans_open utrans_open_3_4
-#define utrans_openIDs utrans_openIDs_3_4
-#define utrans_openInverse utrans_openInverse_3_4
-#define utrans_openU utrans_openU_3_4
-#define utrans_register utrans_register_3_4
-#define utrans_rep_caseContextIterator utrans_rep_caseContextIterator_3_4
-#define utrans_setFilter utrans_setFilter_3_4
-#define utrans_stripRules utrans_stripRules_3_4
-#define utrans_trans utrans_trans_3_4
-#define utrans_transIncremental utrans_transIncremental_3_4
-#define utrans_transIncrementalUChars utrans_transIncrementalUChars_3_4
-#define utrans_transUChars utrans_transUChars_3_4
-#define utrans_unregister utrans_unregister_3_4
-#define utrans_unregisterID utrans_unregisterID_3_4
-#define utrie_clone utrie_clone_3_4
-#define utrie_close utrie_close_3_4
-#define utrie_defaultGetFoldingOffset utrie_defaultGetFoldingOffset_3_4
-#define utrie_enum utrie_enum_3_4
-#define utrie_get32 utrie_get32_3_4
-#define utrie_getData utrie_getData_3_4
-#define utrie_open utrie_open_3_4
-#define utrie_serialize utrie_serialize_3_4
-#define utrie_set32 utrie_set32_3_4
-#define utrie_setRange32 utrie_setRange32_3_4
-#define utrie_swap utrie_swap_3_4
-#define utrie_unserialize utrie_unserialize_3_4
-#define utrie_unserializeDummy utrie_unserializeDummy_3_4
+#define T_CString_int64ToString T_CString_int64ToString_3_6
+#define T_CString_integerToString T_CString_integerToString_3_6
+#define T_CString_stricmp T_CString_stricmp_3_6
+#define T_CString_stringToInteger T_CString_stringToInteger_3_6
+#define T_CString_strnicmp T_CString_strnicmp_3_6
+#define T_CString_toLowerCase T_CString_toLowerCase_3_6
+#define T_CString_toUpperCase T_CString_toUpperCase_3_6
+#define UCNV_FROM_U_CALLBACK_ESCAPE UCNV_FROM_U_CALLBACK_ESCAPE_3_6
+#define UCNV_FROM_U_CALLBACK_SKIP UCNV_FROM_U_CALLBACK_SKIP_3_6
+#define UCNV_FROM_U_CALLBACK_STOP UCNV_FROM_U_CALLBACK_STOP_3_6
+#define UCNV_FROM_U_CALLBACK_SUBSTITUTE UCNV_FROM_U_CALLBACK_SUBSTITUTE_3_6
+#define UCNV_TO_U_CALLBACK_ESCAPE UCNV_TO_U_CALLBACK_ESCAPE_3_6
+#define UCNV_TO_U_CALLBACK_SKIP UCNV_TO_U_CALLBACK_SKIP_3_6
+#define UCNV_TO_U_CALLBACK_STOP UCNV_TO_U_CALLBACK_STOP_3_6
+#define UCNV_TO_U_CALLBACK_SUBSTITUTE UCNV_TO_U_CALLBACK_SUBSTITUTE_3_6
+#define UDataMemory_createNewInstance UDataMemory_createNewInstance_3_6
+#define UDataMemory_init UDataMemory_init_3_6
+#define UDataMemory_isLoaded UDataMemory_isLoaded_3_6
+#define UDataMemory_normalizeDataPointer UDataMemory_normalizeDataPointer_3_6
+#define UDataMemory_setData UDataMemory_setData_3_6
+#define UDatamemory_assign UDatamemory_assign_3_6
+#define _ASCIIData _ASCIIData_3_6
+#define _Bocu1Data _Bocu1Data_3_6
+#define _CESU8Data _CESU8Data_3_6
+#define _HZData _HZData_3_6
+#define _IMAPData _IMAPData_3_6
+#define _ISCIIData _ISCIIData_3_6
+#define _ISO2022Data _ISO2022Data_3_6
+#define _LMBCSData1 _LMBCSData1_3_6
+#define _LMBCSData11 _LMBCSData11_3_6
+#define _LMBCSData16 _LMBCSData16_3_6
+#define _LMBCSData17 _LMBCSData17_3_6
+#define _LMBCSData18 _LMBCSData18_3_6
+#define _LMBCSData19 _LMBCSData19_3_6
+#define _LMBCSData2 _LMBCSData2_3_6
+#define _LMBCSData3 _LMBCSData3_3_6
+#define _LMBCSData4 _LMBCSData4_3_6
+#define _LMBCSData5 _LMBCSData5_3_6
+#define _LMBCSData6 _LMBCSData6_3_6
+#define _LMBCSData8 _LMBCSData8_3_6
+#define _Latin1Data _Latin1Data_3_6
+#define _MBCSData _MBCSData_3_6
+#define _SCSUData _SCSUData_3_6
+#define _UTF16BEData _UTF16BEData_3_6
+#define _UTF16Data _UTF16Data_3_6
+#define _UTF16LEData _UTF16LEData_3_6
+#define _UTF32BEData _UTF32BEData_3_6
+#define _UTF32Data _UTF32Data_3_6
+#define _UTF32LEData _UTF32LEData_3_6
+#define _UTF7Data _UTF7Data_3_6
+#define _UTF8Data _UTF8Data_3_6
+#define cmemory_cleanup cmemory_cleanup_3_6
+#define cmemory_inUse cmemory_inUse_3_6
+#define locale_getKeywords locale_getKeywords_3_6
+#define locale_get_default locale_get_default_3_6
+#define locale_set_default locale_set_default_3_6
+#define res_countArrayItems res_countArrayItems_3_6
+#define res_findResource res_findResource_3_6
+#define res_getAlias res_getAlias_3_6
+#define res_getArrayItem res_getArrayItem_3_6
+#define res_getBinary res_getBinary_3_6
+#define res_getIntVector res_getIntVector_3_6
+#define res_getResource res_getResource_3_6
+#define res_getString res_getString_3_6
+#define res_getTableItemByIndex res_getTableItemByIndex_3_6
+#define res_getTableItemByKey res_getTableItemByKey_3_6
+#define res_load res_load_3_6
+#define res_unload res_unload_3_6
+#define transliterator_cleanup transliterator_cleanup_3_6
+#define triedict_swap triedict_swap_3_6
+#define u_UCharsToChars u_UCharsToChars_3_6
+#define u_austrcpy u_austrcpy_3_6
+#define u_austrncpy u_austrncpy_3_6
+#define u_catclose u_catclose_3_6
+#define u_catgets u_catgets_3_6
+#define u_catopen u_catopen_3_6
+#define u_charAge u_charAge_3_6
+#define u_charDigitValue u_charDigitValue_3_6
+#define u_charDirection u_charDirection_3_6
+#define u_charFromName u_charFromName_3_6
+#define u_charMirror u_charMirror_3_6
+#define u_charName u_charName_3_6
+#define u_charType u_charType_3_6
+#define u_charsToUChars u_charsToUChars_3_6
+#define u_cleanup u_cleanup_3_6
+#define u_countChar32 u_countChar32_3_6
+#define u_digit u_digit_3_6
+#define u_enumCharNames u_enumCharNames_3_6
+#define u_enumCharTypes u_enumCharTypes_3_6
+#define u_errorName u_errorName_3_6
+#define u_fclose u_fclose_3_6
+#define u_feof u_feof_3_6
+#define u_fflush u_fflush_3_6
+#define u_fgetConverter u_fgetConverter_3_6
+#define u_fgetc u_fgetc_3_6
+#define u_fgetcodepage u_fgetcodepage_3_6
+#define u_fgetcx u_fgetcx_3_6
+#define u_fgetfile u_fgetfile_3_6
+#define u_fgetlocale u_fgetlocale_3_6
+#define u_fgets u_fgets_3_6
+#define u_file_read u_file_read_3_6
+#define u_file_write u_file_write_3_6
+#define u_file_write_flush u_file_write_flush_3_6
+#define u_finit u_finit_3_6
+#define u_foldCase u_foldCase_3_6
+#define u_fopen u_fopen_3_6
+#define u_forDigit u_forDigit_3_6
+#define u_formatMessage u_formatMessage_3_6
+#define u_formatMessageWithError u_formatMessageWithError_3_6
+#define u_fprintf u_fprintf_3_6
+#define u_fprintf_u u_fprintf_u_3_6
+#define u_fputc u_fputc_3_6
+#define u_fputs u_fputs_3_6
+#define u_frewind u_frewind_3_6
+#define u_fscanf u_fscanf_3_6
+#define u_fscanf_u u_fscanf_u_3_6
+#define u_fsetcodepage u_fsetcodepage_3_6
+#define u_fsetlocale u_fsetlocale_3_6
+#define u_fsettransliterator u_fsettransliterator_3_6
+#define u_fstropen u_fstropen_3_6
+#define u_fungetc u_fungetc_3_6
+#define u_getCombiningClass u_getCombiningClass_3_6
+#define u_getDataDirectory u_getDataDirectory_3_6
+#define u_getDefaultConverter u_getDefaultConverter_3_6
+#define u_getFC_NFKC_Closure u_getFC_NFKC_Closure_3_6
+#define u_getISOComment u_getISOComment_3_6
+#define u_getIntPropertyMaxValue u_getIntPropertyMaxValue_3_6
+#define u_getIntPropertyMinValue u_getIntPropertyMinValue_3_6
+#define u_getIntPropertyValue u_getIntPropertyValue_3_6
+#define u_getNumericValue u_getNumericValue_3_6
+#define u_getPropertyEnum u_getPropertyEnum_3_6
+#define u_getPropertyName u_getPropertyName_3_6
+#define u_getPropertyValueEnum u_getPropertyValueEnum_3_6
+#define u_getPropertyValueName u_getPropertyValueName_3_6
+#define u_getUnicodeProperties u_getUnicodeProperties_3_6
+#define u_getUnicodeVersion u_getUnicodeVersion_3_6
+#define u_getVersion u_getVersion_3_6
+#define u_growBufferFromStatic u_growBufferFromStatic_3_6
+#define u_hasBinaryProperty u_hasBinaryProperty_3_6
+#define u_init u_init_3_6
+#define u_isIDIgnorable u_isIDIgnorable_3_6
+#define u_isIDPart u_isIDPart_3_6
+#define u_isIDStart u_isIDStart_3_6
+#define u_isISOControl u_isISOControl_3_6
+#define u_isJavaIDPart u_isJavaIDPart_3_6
+#define u_isJavaIDStart u_isJavaIDStart_3_6
+#define u_isJavaSpaceChar u_isJavaSpaceChar_3_6
+#define u_isMirrored u_isMirrored_3_6
+#define u_isUAlphabetic u_isUAlphabetic_3_6
+#define u_isULowercase u_isULowercase_3_6
+#define u_isUUppercase u_isUUppercase_3_6
+#define u_isUWhiteSpace u_isUWhiteSpace_3_6
+#define u_isWhitespace u_isWhitespace_3_6
+#define u_isalnum u_isalnum_3_6
+#define u_isalnumPOSIX u_isalnumPOSIX_3_6
+#define u_isalpha u_isalpha_3_6
+#define u_isbase u_isbase_3_6
+#define u_isblank u_isblank_3_6
+#define u_iscntrl u_iscntrl_3_6
+#define u_isdefined u_isdefined_3_6
+#define u_isdigit u_isdigit_3_6
+#define u_isgraph u_isgraph_3_6
+#define u_isgraphPOSIX u_isgraphPOSIX_3_6
+#define u_islower u_islower_3_6
+#define u_isprint u_isprint_3_6
+#define u_isprintPOSIX u_isprintPOSIX_3_6
+#define u_ispunct u_ispunct_3_6
+#define u_isspace u_isspace_3_6
+#define u_istitle u_istitle_3_6
+#define u_isupper u_isupper_3_6
+#define u_isxdigit u_isxdigit_3_6
+#define u_lengthOfIdenticalLevelRun u_lengthOfIdenticalLevelRun_3_6
+#define u_locbund_close u_locbund_close_3_6
+#define u_locbund_getNumberFormat u_locbund_getNumberFormat_3_6
+#define u_locbund_init u_locbund_init_3_6
+#define u_memcasecmp u_memcasecmp_3_6
+#define u_memchr u_memchr_3_6
+#define u_memchr32 u_memchr32_3_6
+#define u_memcmp u_memcmp_3_6
+#define u_memcmpCodePointOrder u_memcmpCodePointOrder_3_6
+#define u_memcpy u_memcpy_3_6
+#define u_memmove u_memmove_3_6
+#define u_memrchr u_memrchr_3_6
+#define u_memrchr32 u_memrchr32_3_6
+#define u_memset u_memset_3_6
+#define u_parseMessage u_parseMessage_3_6
+#define u_parseMessageWithError u_parseMessageWithError_3_6
+#define u_printf_parse u_printf_parse_3_6
+#define u_releaseDefaultConverter u_releaseDefaultConverter_3_6
+#define u_scanf_parse u_scanf_parse_3_6
+#define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_3_6
+#define u_setDataDirectory u_setDataDirectory_3_6
+#define u_setMemoryFunctions u_setMemoryFunctions_3_6
+#define u_setMutexFunctions u_setMutexFunctions_3_6
+#define u_shapeArabic u_shapeArabic_3_6
+#define u_snprintf u_snprintf_3_6
+#define u_snprintf_u u_snprintf_u_3_6
+#define u_sprintf u_sprintf_3_6
+#define u_sprintf_u u_sprintf_u_3_6
+#define u_sscanf u_sscanf_3_6
+#define u_sscanf_u u_sscanf_u_3_6
+#define u_strCaseCompare u_strCaseCompare_3_6
+#define u_strCompare u_strCompare_3_6
+#define u_strCompareIter u_strCompareIter_3_6
+#define u_strFindFirst u_strFindFirst_3_6
+#define u_strFindLast u_strFindLast_3_6
+#define u_strFoldCase u_strFoldCase_3_6
+#define u_strFromPunycode u_strFromPunycode_3_6
+#define u_strFromUTF32 u_strFromUTF32_3_6
+#define u_strFromUTF8 u_strFromUTF8_3_6
+#define u_strFromUTF8Lenient u_strFromUTF8Lenient_3_6
+#define u_strFromUTF8WithSub u_strFromUTF8WithSub_3_6
+#define u_strFromWCS u_strFromWCS_3_6
+#define u_strHasMoreChar32Than u_strHasMoreChar32Than_3_6
+#define u_strToLower u_strToLower_3_6
+#define u_strToPunycode u_strToPunycode_3_6
+#define u_strToTitle u_strToTitle_3_6
+#define u_strToUTF32 u_strToUTF32_3_6
+#define u_strToUTF8 u_strToUTF8_3_6
+#define u_strToUTF8WithSub u_strToUTF8WithSub_3_6
+#define u_strToUpper u_strToUpper_3_6
+#define u_strToWCS u_strToWCS_3_6
+#define u_strcasecmp u_strcasecmp_3_6
+#define u_strcat u_strcat_3_6
+#define u_strchr u_strchr_3_6
+#define u_strchr32 u_strchr32_3_6
+#define u_strcmp u_strcmp_3_6
+#define u_strcmpCodePointOrder u_strcmpCodePointOrder_3_6
+#define u_strcmpFold u_strcmpFold_3_6
+#define u_strcpy u_strcpy_3_6
+#define u_strcspn u_strcspn_3_6
+#define u_strlen u_strlen_3_6
+#define u_strncasecmp u_strncasecmp_3_6
+#define u_strncat u_strncat_3_6
+#define u_strncmp u_strncmp_3_6
+#define u_strncmpCodePointOrder u_strncmpCodePointOrder_3_6
+#define u_strncpy u_strncpy_3_6
+#define u_strpbrk u_strpbrk_3_6
+#define u_strrchr u_strrchr_3_6
+#define u_strrchr32 u_strrchr32_3_6
+#define u_strrstr u_strrstr_3_6
+#define u_strspn u_strspn_3_6
+#define u_strstr u_strstr_3_6
+#define u_strtok_r u_strtok_r_3_6
+#define u_terminateChars u_terminateChars_3_6
+#define u_terminateUChar32s u_terminateUChar32s_3_6
+#define u_terminateUChars u_terminateUChars_3_6
+#define u_terminateWChars u_terminateWChars_3_6
+#define u_tolower u_tolower_3_6
+#define u_totitle u_totitle_3_6
+#define u_toupper u_toupper_3_6
+#define u_uastrcpy u_uastrcpy_3_6
+#define u_uastrncpy u_uastrncpy_3_6
+#define u_unescape u_unescape_3_6
+#define u_unescapeAt u_unescapeAt_3_6
+#define u_versionFromString u_versionFromString_3_6
+#define u_versionToString u_versionToString_3_6
+#define u_vformatMessage u_vformatMessage_3_6
+#define u_vformatMessageWithError u_vformatMessageWithError_3_6
+#define u_vfprintf u_vfprintf_3_6
+#define u_vfprintf_u u_vfprintf_u_3_6
+#define u_vfscanf u_vfscanf_3_6
+#define u_vfscanf_u u_vfscanf_u_3_6
+#define u_vparseMessage u_vparseMessage_3_6
+#define u_vparseMessageWithError u_vparseMessageWithError_3_6
+#define u_vsnprintf u_vsnprintf_3_6
+#define u_vsnprintf_u u_vsnprintf_u_3_6
+#define u_vsprintf u_vsprintf_3_6
+#define u_vsprintf_u u_vsprintf_u_3_6
+#define u_vsscanf u_vsscanf_3_6
+#define u_vsscanf_u u_vsscanf_u_3_6
+#define u_writeDiff u_writeDiff_3_6
+#define u_writeIdenticalLevelRun u_writeIdenticalLevelRun_3_6
+#define u_writeIdenticalLevelRunTwoChars u_writeIdenticalLevelRunTwoChars_3_6
+#define ubidi_addPropertyStarts ubidi_addPropertyStarts_3_6
+#define ubidi_close ubidi_close_3_6
+#define ubidi_closeProps ubidi_closeProps_3_6
+#define ubidi_countParagraphs ubidi_countParagraphs_3_6
+#define ubidi_countRuns ubidi_countRuns_3_6
+#define ubidi_getClass ubidi_getClass_3_6
+#define ubidi_getClassCallback ubidi_getClassCallback_3_6
+#define ubidi_getCustomizedClass ubidi_getCustomizedClass_3_6
+#define ubidi_getDirection ubidi_getDirection_3_6
+#define ubidi_getDummy ubidi_getDummy_3_6
+#define ubidi_getJoiningGroup ubidi_getJoiningGroup_3_6
+#define ubidi_getJoiningType ubidi_getJoiningType_3_6
+#define ubidi_getLength ubidi_getLength_3_6
+#define ubidi_getLevelAt ubidi_getLevelAt_3_6
+#define ubidi_getLevels ubidi_getLevels_3_6
+#define ubidi_getLogicalIndex ubidi_getLogicalIndex_3_6
+#define ubidi_getLogicalMap ubidi_getLogicalMap_3_6
+#define ubidi_getLogicalRun ubidi_getLogicalRun_3_6
+#define ubidi_getMaxValue ubidi_getMaxValue_3_6
+#define ubidi_getMemory ubidi_getMemory_3_6
+#define ubidi_getMirror ubidi_getMirror_3_6
+#define ubidi_getParaLevel ubidi_getParaLevel_3_6
+#define ubidi_getParagraph ubidi_getParagraph_3_6
+#define ubidi_getParagraphByIndex ubidi_getParagraphByIndex_3_6
+#define ubidi_getProcessedLength ubidi_getProcessedLength_3_6
+#define ubidi_getReorderingMode ubidi_getReorderingMode_3_6
+#define ubidi_getReorderingOptions ubidi_getReorderingOptions_3_6
+#define ubidi_getResultLength ubidi_getResultLength_3_6
+#define ubidi_getRuns ubidi_getRuns_3_6
+#define ubidi_getSingleton ubidi_getSingleton_3_6
+#define ubidi_getText ubidi_getText_3_6
+#define ubidi_getVisualIndex ubidi_getVisualIndex_3_6
+#define ubidi_getVisualMap ubidi_getVisualMap_3_6
+#define ubidi_getVisualRun ubidi_getVisualRun_3_6
+#define ubidi_invertMap ubidi_invertMap_3_6
+#define ubidi_isBidiControl ubidi_isBidiControl_3_6
+#define ubidi_isInverse ubidi_isInverse_3_6
+#define ubidi_isJoinControl ubidi_isJoinControl_3_6
+#define ubidi_isMirrored ubidi_isMirrored_3_6
+#define ubidi_isOrderParagraphsLTR ubidi_isOrderParagraphsLTR_3_6
+#define ubidi_open ubidi_open_3_6
+#define ubidi_openSized ubidi_openSized_3_6
+#define ubidi_orderParagraphsLTR ubidi_orderParagraphsLTR_3_6
+#define ubidi_reorderLogical ubidi_reorderLogical_3_6
+#define ubidi_reorderVisual ubidi_reorderVisual_3_6
+#define ubidi_setClassCallback ubidi_setClassCallback_3_6
+#define ubidi_setInverse ubidi_setInverse_3_6
+#define ubidi_setLine ubidi_setLine_3_6
+#define ubidi_setPara ubidi_setPara_3_6
+#define ubidi_setReorderingMode ubidi_setReorderingMode_3_6
+#define ubidi_setReorderingOptions ubidi_setReorderingOptions_3_6
+#define ubidi_writeReordered ubidi_writeReordered_3_6
+#define ubidi_writeReverse ubidi_writeReverse_3_6
+#define ublock_getCode ublock_getCode_3_6
+#define ubrk_close ubrk_close_3_6
+#define ubrk_countAvailable ubrk_countAvailable_3_6
+#define ubrk_current ubrk_current_3_6
+#define ubrk_first ubrk_first_3_6
+#define ubrk_following ubrk_following_3_6
+#define ubrk_getAvailable ubrk_getAvailable_3_6
+#define ubrk_getLocaleByType ubrk_getLocaleByType_3_6
+#define ubrk_getRuleStatus ubrk_getRuleStatus_3_6
+#define ubrk_getRuleStatusVec ubrk_getRuleStatusVec_3_6
+#define ubrk_isBoundary ubrk_isBoundary_3_6
+#define ubrk_last ubrk_last_3_6
+#define ubrk_next ubrk_next_3_6
+#define ubrk_open ubrk_open_3_6
+#define ubrk_openRules ubrk_openRules_3_6
+#define ubrk_preceding ubrk_preceding_3_6
+#define ubrk_previous ubrk_previous_3_6
+#define ubrk_safeClone ubrk_safeClone_3_6
+#define ubrk_setText ubrk_setText_3_6
+#define ubrk_setUText ubrk_setUText_3_6
+#define ubrk_swap ubrk_swap_3_6
+#define ucal_add ucal_add_3_6
+#define ucal_clear ucal_clear_3_6
+#define ucal_clearField ucal_clearField_3_6
+#define ucal_close ucal_close_3_6
+#define ucal_countAvailable ucal_countAvailable_3_6
+#define ucal_equivalentTo ucal_equivalentTo_3_6
+#define ucal_get ucal_get_3_6
+#define ucal_getAttribute ucal_getAttribute_3_6
+#define ucal_getAvailable ucal_getAvailable_3_6
+#define ucal_getDSTSavings ucal_getDSTSavings_3_6
+#define ucal_getDefaultTimeZone ucal_getDefaultTimeZone_3_6
+#define ucal_getGregorianChange ucal_getGregorianChange_3_6
+#define ucal_getLimit ucal_getLimit_3_6
+#define ucal_getLocaleByType ucal_getLocaleByType_3_6
+#define ucal_getMillis ucal_getMillis_3_6
+#define ucal_getNow ucal_getNow_3_6
+#define ucal_getTimeZoneDisplayName ucal_getTimeZoneDisplayName_3_6
+#define ucal_inDaylightTime ucal_inDaylightTime_3_6
+#define ucal_isSet ucal_isSet_3_6
+#define ucal_open ucal_open_3_6
+#define ucal_openCountryTimeZones ucal_openCountryTimeZones_3_6
+#define ucal_openTimeZones ucal_openTimeZones_3_6
+#define ucal_roll ucal_roll_3_6
+#define ucal_set ucal_set_3_6
+#define ucal_setAttribute ucal_setAttribute_3_6
+#define ucal_setDate ucal_setDate_3_6
+#define ucal_setDateTime ucal_setDateTime_3_6
+#define ucal_setDefaultTimeZone ucal_setDefaultTimeZone_3_6
+#define ucal_setGregorianChange ucal_setGregorianChange_3_6
+#define ucal_setMillis ucal_setMillis_3_6
+#define ucal_setTimeZone ucal_setTimeZone_3_6
+#define ucase_addCaseClosure ucase_addCaseClosure_3_6
+#define ucase_addPropertyStarts ucase_addPropertyStarts_3_6
+#define ucase_addStringCaseClosure ucase_addStringCaseClosure_3_6
+#define ucase_close ucase_close_3_6
+#define ucase_fold ucase_fold_3_6
+#define ucase_getCaseLocale ucase_getCaseLocale_3_6
+#define ucase_getDummy ucase_getDummy_3_6
+#define ucase_getSingleton ucase_getSingleton_3_6
+#define ucase_getType ucase_getType_3_6
+#define ucase_getTypeOrIgnorable ucase_getTypeOrIgnorable_3_6
+#define ucase_hasBinaryProperty ucase_hasBinaryProperty_3_6
+#define ucase_isCaseSensitive ucase_isCaseSensitive_3_6
+#define ucase_isSoftDotted ucase_isSoftDotted_3_6
+#define ucase_toFullFolding ucase_toFullFolding_3_6
+#define ucase_toFullLower ucase_toFullLower_3_6
+#define ucase_toFullTitle ucase_toFullTitle_3_6
+#define ucase_toFullUpper ucase_toFullUpper_3_6
+#define ucase_tolower ucase_tolower_3_6
+#define ucase_totitle ucase_totitle_3_6
+#define ucase_toupper ucase_toupper_3_6
+#define ucasemap_close ucasemap_close_3_6
+#define ucasemap_getLocale ucasemap_getLocale_3_6
+#define ucasemap_getOptions ucasemap_getOptions_3_6
+#define ucasemap_open ucasemap_open_3_6
+#define ucasemap_setLocale ucasemap_setLocale_3_6
+#define ucasemap_setOptions ucasemap_setOptions_3_6
+#define ucasemap_utf8ToLower ucasemap_utf8ToLower_3_6
+#define ucasemap_utf8ToUpper ucasemap_utf8ToUpper_3_6
+#define uchar_addPropertyStarts uchar_addPropertyStarts_3_6
+#define uchar_getHST uchar_getHST_3_6
+#define uchar_swapNames uchar_swapNames_3_6
+#define ucln_common_registerCleanup ucln_common_registerCleanup_3_6
+#define ucln_i18n_registerCleanup ucln_i18n_registerCleanup_3_6
+#define ucln_io_registerCleanup ucln_io_registerCleanup_3_6
+#define ucln_lib_cleanup ucln_lib_cleanup_3_6
+#define ucln_registerCleanup ucln_registerCleanup_3_6
+#define ucnv_MBCSFromUChar32 ucnv_MBCSFromUChar32_3_6
+#define ucnv_MBCSFromUnicodeWithOffsets ucnv_MBCSFromUnicodeWithOffsets_3_6
+#define ucnv_MBCSGetType ucnv_MBCSGetType_3_6
+#define ucnv_MBCSGetUnicodeSetForBytes ucnv_MBCSGetUnicodeSetForBytes_3_6
+#define ucnv_MBCSGetUnicodeSetForUnicode ucnv_MBCSGetUnicodeSetForUnicode_3_6
+#define ucnv_MBCSIsLeadByte ucnv_MBCSIsLeadByte_3_6
+#define ucnv_MBCSSimpleGetNextUChar ucnv_MBCSSimpleGetNextUChar_3_6
+#define ucnv_MBCSToUnicodeWithOffsets ucnv_MBCSToUnicodeWithOffsets_3_6
+#define ucnv_bld_countAvailableConverters ucnv_bld_countAvailableConverters_3_6
+#define ucnv_bld_getAvailableConverter ucnv_bld_getAvailableConverter_3_6
+#define ucnv_cbFromUWriteBytes ucnv_cbFromUWriteBytes_3_6
+#define ucnv_cbFromUWriteSub ucnv_cbFromUWriteSub_3_6
+#define ucnv_cbFromUWriteUChars ucnv_cbFromUWriteUChars_3_6
+#define ucnv_cbToUWriteSub ucnv_cbToUWriteSub_3_6
+#define ucnv_cbToUWriteUChars ucnv_cbToUWriteUChars_3_6
+#define ucnv_close ucnv_close_3_6
+#define ucnv_compareNames ucnv_compareNames_3_6
+#define ucnv_convert ucnv_convert_3_6
+#define ucnv_convertEx ucnv_convertEx_3_6
+#define ucnv_countAliases ucnv_countAliases_3_6
+#define ucnv_countAvailable ucnv_countAvailable_3_6
+#define ucnv_countStandards ucnv_countStandards_3_6
+#define ucnv_createAlgorithmicConverter ucnv_createAlgorithmicConverter_3_6
+#define ucnv_createConverter ucnv_createConverter_3_6
+#define ucnv_createConverterFromPackage ucnv_createConverterFromPackage_3_6
+#define ucnv_createConverterFromSharedData ucnv_createConverterFromSharedData_3_6
+#define ucnv_detectUnicodeSignature ucnv_detectUnicodeSignature_3_6
+#define ucnv_extContinueMatchFromU ucnv_extContinueMatchFromU_3_6
+#define ucnv_extContinueMatchToU ucnv_extContinueMatchToU_3_6
+#define ucnv_extGetUnicodeSet ucnv_extGetUnicodeSet_3_6
+#define ucnv_extInitialMatchFromU ucnv_extInitialMatchFromU_3_6
+#define ucnv_extInitialMatchToU ucnv_extInitialMatchToU_3_6
+#define ucnv_extSimpleMatchFromU ucnv_extSimpleMatchFromU_3_6
+#define ucnv_extSimpleMatchToU ucnv_extSimpleMatchToU_3_6
+#define ucnv_fixFileSeparator ucnv_fixFileSeparator_3_6
+#define ucnv_flushCache ucnv_flushCache_3_6
+#define ucnv_fromAlgorithmic ucnv_fromAlgorithmic_3_6
+#define ucnv_fromUChars ucnv_fromUChars_3_6
+#define ucnv_fromUCountPending ucnv_fromUCountPending_3_6
+#define ucnv_fromUWriteBytes ucnv_fromUWriteBytes_3_6
+#define ucnv_fromUnicode ucnv_fromUnicode_3_6
+#define ucnv_fromUnicode_UTF8 ucnv_fromUnicode_UTF8_3_6
+#define ucnv_fromUnicode_UTF8_OFFSETS_LOGIC ucnv_fromUnicode_UTF8_OFFSETS_LOGIC_3_6
+#define ucnv_getAlias ucnv_getAlias_3_6
+#define ucnv_getAliases ucnv_getAliases_3_6
+#define ucnv_getAvailableName ucnv_getAvailableName_3_6
+#define ucnv_getCCSID ucnv_getCCSID_3_6
+#define ucnv_getCanonicalName ucnv_getCanonicalName_3_6
+#define ucnv_getCompleteUnicodeSet ucnv_getCompleteUnicodeSet_3_6
+#define ucnv_getDefaultName ucnv_getDefaultName_3_6
+#define ucnv_getDisplayName ucnv_getDisplayName_3_6
+#define ucnv_getFromUCallBack ucnv_getFromUCallBack_3_6
+#define ucnv_getInvalidChars ucnv_getInvalidChars_3_6
+#define ucnv_getInvalidUChars ucnv_getInvalidUChars_3_6
+#define ucnv_getMaxCharSize ucnv_getMaxCharSize_3_6
+#define ucnv_getMinCharSize ucnv_getMinCharSize_3_6
+#define ucnv_getName ucnv_getName_3_6
+#define ucnv_getNextUChar ucnv_getNextUChar_3_6
+#define ucnv_getNonSurrogateUnicodeSet ucnv_getNonSurrogateUnicodeSet_3_6
+#define ucnv_getPlatform ucnv_getPlatform_3_6
+#define ucnv_getStandard ucnv_getStandard_3_6
+#define ucnv_getStandardName ucnv_getStandardName_3_6
+#define ucnv_getStarters ucnv_getStarters_3_6
+#define ucnv_getSubstChars ucnv_getSubstChars_3_6
+#define ucnv_getToUCallBack ucnv_getToUCallBack_3_6
+#define ucnv_getType ucnv_getType_3_6
+#define ucnv_getUnicodeSet ucnv_getUnicodeSet_3_6
+#define ucnv_incrementRefCount ucnv_incrementRefCount_3_6
+#define ucnv_io_countTotalAliases ucnv_io_countTotalAliases_3_6
+#define ucnv_io_getConverterName ucnv_io_getConverterName_3_6
+#define ucnv_io_stripASCIIForCompare ucnv_io_stripASCIIForCompare_3_6
+#define ucnv_io_stripEBCDICForCompare ucnv_io_stripEBCDICForCompare_3_6
+#define ucnv_isAmbiguous ucnv_isAmbiguous_3_6
+#define ucnv_load ucnv_load_3_6
+#define ucnv_loadSharedData ucnv_loadSharedData_3_6
+#define ucnv_open ucnv_open_3_6
+#define ucnv_openAllNames ucnv_openAllNames_3_6
+#define ucnv_openCCSID ucnv_openCCSID_3_6
+#define ucnv_openPackage ucnv_openPackage_3_6
+#define ucnv_openStandardNames ucnv_openStandardNames_3_6
+#define ucnv_openU ucnv_openU_3_6
+#define ucnv_reset ucnv_reset_3_6
+#define ucnv_resetFromUnicode ucnv_resetFromUnicode_3_6
+#define ucnv_resetToUnicode ucnv_resetToUnicode_3_6
+#define ucnv_safeClone ucnv_safeClone_3_6
+#define ucnv_setDefaultName ucnv_setDefaultName_3_6
+#define ucnv_setFallback ucnv_setFallback_3_6
+#define ucnv_setFromUCallBack ucnv_setFromUCallBack_3_6
+#define ucnv_setSubstChars ucnv_setSubstChars_3_6
+#define ucnv_setSubstString ucnv_setSubstString_3_6
+#define ucnv_setToUCallBack ucnv_setToUCallBack_3_6
+#define ucnv_swap ucnv_swap_3_6
+#define ucnv_swapAliases ucnv_swapAliases_3_6
+#define ucnv_toAlgorithmic ucnv_toAlgorithmic_3_6
+#define ucnv_toUChars ucnv_toUChars_3_6
+#define ucnv_toUCountPending ucnv_toUCountPending_3_6
+#define ucnv_toUWriteCodePoint ucnv_toUWriteCodePoint_3_6
+#define ucnv_toUWriteUChars ucnv_toUWriteUChars_3_6
+#define ucnv_toUnicode ucnv_toUnicode_3_6
+#define ucnv_unload ucnv_unload_3_6
+#define ucnv_unloadSharedDataIfReady ucnv_unloadSharedDataIfReady_3_6
+#define ucnv_usesFallback ucnv_usesFallback_3_6
+#define ucol_allocWeights ucol_allocWeights_3_6
+#define ucol_assembleTailoringTable ucol_assembleTailoringTable_3_6
+#define ucol_calcSortKey ucol_calcSortKey_3_6
+#define ucol_calcSortKeySimpleTertiary ucol_calcSortKeySimpleTertiary_3_6
+#define ucol_cloneBinary ucol_cloneBinary_3_6
+#define ucol_cloneRuleData ucol_cloneRuleData_3_6
+#define ucol_close ucol_close_3_6
+#define ucol_closeElements ucol_closeElements_3_6
+#define ucol_collatorToIdentifier ucol_collatorToIdentifier_3_6
+#define ucol_countAvailable ucol_countAvailable_3_6
+#define ucol_createElements ucol_createElements_3_6
+#define ucol_doCE ucol_doCE_3_6
+#define ucol_equal ucol_equal_3_6
+#define ucol_equals ucol_equals_3_6
+#define ucol_forgetUCA ucol_forgetUCA_3_6
+#define ucol_getAttribute ucol_getAttribute_3_6
+#define ucol_getAttributeOrDefault ucol_getAttributeOrDefault_3_6
+#define ucol_getAvailable ucol_getAvailable_3_6
+#define ucol_getBound ucol_getBound_3_6
+#define ucol_getCEGenerator ucol_getCEGenerator_3_6
+#define ucol_getCEStrengthDifference ucol_getCEStrengthDifference_3_6
+#define ucol_getContractions ucol_getContractions_3_6
+#define ucol_getContractionsAndExpansions ucol_getContractionsAndExpansions_3_6
+#define ucol_getDisplayName ucol_getDisplayName_3_6
+#define ucol_getFirstCE ucol_getFirstCE_3_6
+#define ucol_getFunctionalEquivalent ucol_getFunctionalEquivalent_3_6
+#define ucol_getKeywordValues ucol_getKeywordValues_3_6
+#define ucol_getKeywords ucol_getKeywords_3_6
+#define ucol_getLocale ucol_getLocale_3_6
+#define ucol_getLocaleByType ucol_getLocaleByType_3_6
+#define ucol_getMaxExpansion ucol_getMaxExpansion_3_6
+#define ucol_getNextCE ucol_getNextCE_3_6
+#define ucol_getNextGenerated ucol_getNextGenerated_3_6
+#define ucol_getOffset ucol_getOffset_3_6
+#define ucol_getPrevCE ucol_getPrevCE_3_6
+#define ucol_getRules ucol_getRules_3_6
+#define ucol_getRulesEx ucol_getRulesEx_3_6
+#define ucol_getShortDefinitionString ucol_getShortDefinitionString_3_6
+#define ucol_getSimpleCEGenerator ucol_getSimpleCEGenerator_3_6
+#define ucol_getSortKey ucol_getSortKey_3_6
+#define ucol_getSortKeySize ucol_getSortKeySize_3_6
+#define ucol_getSortKeyWithAllocation ucol_getSortKeyWithAllocation_3_6
+#define ucol_getStrength ucol_getStrength_3_6
+#define ucol_getTailoredSet ucol_getTailoredSet_3_6
+#define ucol_getUCAVersion ucol_getUCAVersion_3_6
+#define ucol_getUnsafeSet ucol_getUnsafeSet_3_6
+#define ucol_getVariableTop ucol_getVariableTop_3_6
+#define ucol_getVersion ucol_getVersion_3_6
+#define ucol_greater ucol_greater_3_6
+#define ucol_greaterOrEqual ucol_greaterOrEqual_3_6
+#define ucol_identifierToShortString ucol_identifierToShortString_3_6
+#define ucol_initBuffers ucol_initBuffers_3_6
+#define ucol_initCollator ucol_initCollator_3_6
+#define ucol_initInverseUCA ucol_initInverseUCA_3_6
+#define ucol_initUCA ucol_initUCA_3_6
+#define ucol_inv_getGapPositions ucol_inv_getGapPositions_3_6
+#define ucol_inv_getNextCE ucol_inv_getNextCE_3_6
+#define ucol_inv_getPrevCE ucol_inv_getPrevCE_3_6
+#define ucol_isTailored ucol_isTailored_3_6
+#define ucol_keyHashCode ucol_keyHashCode_3_6
+#define ucol_mergeSortkeys ucol_mergeSortkeys_3_6
+#define ucol_next ucol_next_3_6
+#define ucol_nextSortKeyPart ucol_nextSortKeyPart_3_6
+#define ucol_nextWeight ucol_nextWeight_3_6
+#define ucol_normalizeShortDefinitionString ucol_normalizeShortDefinitionString_3_6
+#define ucol_open ucol_open_3_6
+#define ucol_openAvailableLocales ucol_openAvailableLocales_3_6
+#define ucol_openBinary ucol_openBinary_3_6
+#define ucol_openElements ucol_openElements_3_6
+#define ucol_openFromIdentifier ucol_openFromIdentifier_3_6
+#define ucol_openFromShortString ucol_openFromShortString_3_6
+#define ucol_openRules ucol_openRules_3_6
+#define ucol_open_internal ucol_open_internal_3_6
+#define ucol_prepareShortStringOpen ucol_prepareShortStringOpen_3_6
+#define ucol_previous ucol_previous_3_6
+#define ucol_primaryOrder ucol_primaryOrder_3_6
+#define ucol_prv_getSpecialCE ucol_prv_getSpecialCE_3_6
+#define ucol_prv_getSpecialPrevCE ucol_prv_getSpecialPrevCE_3_6
+#define ucol_reset ucol_reset_3_6
+#define ucol_restoreVariableTop ucol_restoreVariableTop_3_6
+#define ucol_safeClone ucol_safeClone_3_6
+#define ucol_secondaryOrder ucol_secondaryOrder_3_6
+#define ucol_setAttribute ucol_setAttribute_3_6
+#define ucol_setOffset ucol_setOffset_3_6
+#define ucol_setOptionsFromHeader ucol_setOptionsFromHeader_3_6
+#define ucol_setReqValidLocales ucol_setReqValidLocales_3_6
+#define ucol_setStrength ucol_setStrength_3_6
+#define ucol_setText ucol_setText_3_6
+#define ucol_setVariableTop ucol_setVariableTop_3_6
+#define ucol_shortStringToIdentifier ucol_shortStringToIdentifier_3_6
+#define ucol_strcoll ucol_strcoll_3_6
+#define ucol_strcollIter ucol_strcollIter_3_6
+#define ucol_swap ucol_swap_3_6
+#define ucol_swapBinary ucol_swapBinary_3_6
+#define ucol_swapInverseUCA ucol_swapInverseUCA_3_6
+#define ucol_tertiaryOrder ucol_tertiaryOrder_3_6
+#define ucol_tok_assembleTokenList ucol_tok_assembleTokenList_3_6
+#define ucol_tok_closeTokenList ucol_tok_closeTokenList_3_6
+#define ucol_tok_getNextArgument ucol_tok_getNextArgument_3_6
+#define ucol_tok_initTokenList ucol_tok_initTokenList_3_6
+#define ucol_tok_parseNextToken ucol_tok_parseNextToken_3_6
+#define ucol_updateInternalState ucol_updateInternalState_3_6
+#define ucsdet_close ucsdet_close_3_6
+#define ucsdet_detect ucsdet_detect_3_6
+#define ucsdet_detectAll ucsdet_detectAll_3_6
+#define ucsdet_enableInputFilter ucsdet_enableInputFilter_3_6
+#define ucsdet_getAllDetectableCharsets ucsdet_getAllDetectableCharsets_3_6
+#define ucsdet_getConfidence ucsdet_getConfidence_3_6
+#define ucsdet_getLanguage ucsdet_getLanguage_3_6
+#define ucsdet_getName ucsdet_getName_3_6
+#define ucsdet_getUChars ucsdet_getUChars_3_6
+#define ucsdet_isInputFilterEnabled ucsdet_isInputFilterEnabled_3_6
+#define ucsdet_open ucsdet_open_3_6
+#define ucsdet_setDeclaredEncoding ucsdet_setDeclaredEncoding_3_6
+#define ucsdet_setText ucsdet_setText_3_6
+#define ucurr_forLocale ucurr_forLocale_3_6
+#define ucurr_getDefaultFractionDigits ucurr_getDefaultFractionDigits_3_6
+#define ucurr_getName ucurr_getName_3_6
+#define ucurr_getRoundingIncrement ucurr_getRoundingIncrement_3_6
+#define ucurr_openISOCurrencies ucurr_openISOCurrencies_3_6
+#define ucurr_register ucurr_register_3_6
+#define ucurr_unregister ucurr_unregister_3_6
+#define udat_applyPattern udat_applyPattern_3_6
+#define udat_clone udat_clone_3_6
+#define udat_close udat_close_3_6
+#define udat_countAvailable udat_countAvailable_3_6
+#define udat_countSymbols udat_countSymbols_3_6
+#define udat_format udat_format_3_6
+#define udat_get2DigitYearStart udat_get2DigitYearStart_3_6
+#define udat_getAvailable udat_getAvailable_3_6
+#define udat_getCalendar udat_getCalendar_3_6
+#define udat_getLocaleByType udat_getLocaleByType_3_6
+#define udat_getNumberFormat udat_getNumberFormat_3_6
+#define udat_getSymbols udat_getSymbols_3_6
+#define udat_isLenient udat_isLenient_3_6
+#define udat_open udat_open_3_6
+#define udat_parse udat_parse_3_6
+#define udat_parseCalendar udat_parseCalendar_3_6
+#define udat_set2DigitYearStart udat_set2DigitYearStart_3_6
+#define udat_setCalendar udat_setCalendar_3_6
+#define udat_setLenient udat_setLenient_3_6
+#define udat_setNumberFormat udat_setNumberFormat_3_6
+#define udat_setSymbols udat_setSymbols_3_6
+#define udat_toPattern udat_toPattern_3_6
+#define udata_checkCommonData udata_checkCommonData_3_6
+#define udata_close udata_close_3_6
+#define udata_closeSwapper udata_closeSwapper_3_6
+#define udata_getHeaderSize udata_getHeaderSize_3_6
+#define udata_getInfo udata_getInfo_3_6
+#define udata_getInfoSize udata_getInfoSize_3_6
+#define udata_getLength udata_getLength_3_6
+#define udata_getMemory udata_getMemory_3_6
+#define udata_getRawMemory udata_getRawMemory_3_6
+#define udata_open udata_open_3_6
+#define udata_openChoice udata_openChoice_3_6
+#define udata_openSwapper udata_openSwapper_3_6
+#define udata_openSwapperForInputData udata_openSwapperForInputData_3_6
+#define udata_printError udata_printError_3_6
+#define udata_readInt16 udata_readInt16_3_6
+#define udata_readInt32 udata_readInt32_3_6
+#define udata_setAppData udata_setAppData_3_6
+#define udata_setCommonData udata_setCommonData_3_6
+#define udata_setFileAccess udata_setFileAccess_3_6
+#define udata_swapDataHeader udata_swapDataHeader_3_6
+#define udata_swapInvStringBlock udata_swapInvStringBlock_3_6
+#define uenum_close uenum_close_3_6
+#define uenum_count uenum_count_3_6
+#define uenum_next uenum_next_3_6
+#define uenum_nextDefault uenum_nextDefault_3_6
+#define uenum_openCharStringsEnumeration uenum_openCharStringsEnumeration_3_6
+#define uenum_openStringEnumeration uenum_openStringEnumeration_3_6
+#define uenum_reset uenum_reset_3_6
+#define uenum_unext uenum_unext_3_6
+#define uenum_unextDefault uenum_unextDefault_3_6
+#define ufile_close_translit ufile_close_translit_3_6
+#define ufile_fill_uchar_buffer ufile_fill_uchar_buffer_3_6
+#define ufile_flush_translit ufile_flush_translit_3_6
+#define ufile_getch ufile_getch_3_6
+#define ufile_getch32 ufile_getch32_3_6
+#define ufmt_64tou ufmt_64tou_3_6
+#define ufmt_defaultCPToUnicode ufmt_defaultCPToUnicode_3_6
+#define ufmt_digitvalue ufmt_digitvalue_3_6
+#define ufmt_isdigit ufmt_isdigit_3_6
+#define ufmt_ptou ufmt_ptou_3_6
+#define ufmt_uto64 ufmt_uto64_3_6
+#define ufmt_utop ufmt_utop_3_6
+#define uhash_close uhash_close_3_6
+#define uhash_compareCaselessUnicodeString uhash_compareCaselessUnicodeString_3_6
+#define uhash_compareChars uhash_compareChars_3_6
+#define uhash_compareIChars uhash_compareIChars_3_6
+#define uhash_compareLong uhash_compareLong_3_6
+#define uhash_compareUChars uhash_compareUChars_3_6
+#define uhash_compareUnicodeString uhash_compareUnicodeString_3_6
+#define uhash_count uhash_count_3_6
+#define uhash_deleteHashtable uhash_deleteHashtable_3_6
+#define uhash_deleteUVector uhash_deleteUVector_3_6
+#define uhash_deleteUnicodeString uhash_deleteUnicodeString_3_6
+#define uhash_equals uhash_equals_3_6
+#define uhash_find uhash_find_3_6
+#define uhash_freeBlock uhash_freeBlock_3_6
+#define uhash_get uhash_get_3_6
+#define uhash_geti uhash_geti_3_6
+#define uhash_hashCaselessUnicodeString uhash_hashCaselessUnicodeString_3_6
+#define uhash_hashChars uhash_hashChars_3_6
+#define uhash_hashIChars uhash_hashIChars_3_6
+#define uhash_hashLong uhash_hashLong_3_6
+#define uhash_hashUChars uhash_hashUChars_3_6
+#define uhash_hashUCharsN uhash_hashUCharsN_3_6
+#define uhash_hashUnicodeString uhash_hashUnicodeString_3_6
+#define uhash_iget uhash_iget_3_6
+#define uhash_igeti uhash_igeti_3_6
+#define uhash_init uhash_init_3_6
+#define uhash_iput uhash_iput_3_6
+#define uhash_iputi uhash_iputi_3_6
+#define uhash_iremove uhash_iremove_3_6
+#define uhash_iremovei uhash_iremovei_3_6
+#define uhash_nextElement uhash_nextElement_3_6
+#define uhash_open uhash_open_3_6
+#define uhash_openSize uhash_openSize_3_6
+#define uhash_put uhash_put_3_6
+#define uhash_puti uhash_puti_3_6
+#define uhash_remove uhash_remove_3_6
+#define uhash_removeAll uhash_removeAll_3_6
+#define uhash_removeElement uhash_removeElement_3_6
+#define uhash_removei uhash_removei_3_6
+#define uhash_setKeyComparator uhash_setKeyComparator_3_6
+#define uhash_setKeyDeleter uhash_setKeyDeleter_3_6
+#define uhash_setKeyHasher uhash_setKeyHasher_3_6
+#define uhash_setResizePolicy uhash_setResizePolicy_3_6
+#define uhash_setValueComparator uhash_setValueComparator_3_6
+#define uhash_setValueDeleter uhash_setValueDeleter_3_6
+#define uhst_addPropertyStarts uhst_addPropertyStarts_3_6
+#define uidna_IDNToASCII uidna_IDNToASCII_3_6
+#define uidna_IDNToUnicode uidna_IDNToUnicode_3_6
+#define uidna_compare uidna_compare_3_6
+#define uidna_toASCII uidna_toASCII_3_6
+#define uidna_toUnicode uidna_toUnicode_3_6
+#define uiter_current32 uiter_current32_3_6
+#define uiter_getState uiter_getState_3_6
+#define uiter_next32 uiter_next32_3_6
+#define uiter_previous32 uiter_previous32_3_6
+#define uiter_setCharacterIterator uiter_setCharacterIterator_3_6
+#define uiter_setReplaceable uiter_setReplaceable_3_6
+#define uiter_setState uiter_setState_3_6
+#define uiter_setString uiter_setString_3_6
+#define uiter_setUTF16BE uiter_setUTF16BE_3_6
+#define uiter_setUTF8 uiter_setUTF8_3_6
+#define uloc_acceptLanguage uloc_acceptLanguage_3_6
+#define uloc_acceptLanguageFromHTTP uloc_acceptLanguageFromHTTP_3_6
+#define uloc_canonicalize uloc_canonicalize_3_6
+#define uloc_countAvailable uloc_countAvailable_3_6
+#define uloc_getAvailable uloc_getAvailable_3_6
+#define uloc_getBaseName uloc_getBaseName_3_6
+#define uloc_getCountry uloc_getCountry_3_6
+#define uloc_getDefault uloc_getDefault_3_6
+#define uloc_getDisplayCountry uloc_getDisplayCountry_3_6
+#define uloc_getDisplayKeyword uloc_getDisplayKeyword_3_6
+#define uloc_getDisplayKeywordValue uloc_getDisplayKeywordValue_3_6
+#define uloc_getDisplayLanguage uloc_getDisplayLanguage_3_6
+#define uloc_getDisplayName uloc_getDisplayName_3_6
+#define uloc_getDisplayScript uloc_getDisplayScript_3_6
+#define uloc_getDisplayVariant uloc_getDisplayVariant_3_6
+#define uloc_getISO3Country uloc_getISO3Country_3_6
+#define uloc_getISO3Language uloc_getISO3Language_3_6
+#define uloc_getISOCountries uloc_getISOCountries_3_6
+#define uloc_getISOLanguages uloc_getISOLanguages_3_6
+#define uloc_getKeywordValue uloc_getKeywordValue_3_6
+#define uloc_getLCID uloc_getLCID_3_6
+#define uloc_getLanguage uloc_getLanguage_3_6
+#define uloc_getName uloc_getName_3_6
+#define uloc_getParent uloc_getParent_3_6
+#define uloc_getScript uloc_getScript_3_6
+#define uloc_getVariant uloc_getVariant_3_6
+#define uloc_openKeywordList uloc_openKeywordList_3_6
+#define uloc_openKeywords uloc_openKeywords_3_6
+#define uloc_setDefault uloc_setDefault_3_6
+#define uloc_setKeywordValue uloc_setKeywordValue_3_6
+#define ulocdata_close ulocdata_close_3_6
+#define ulocdata_getDelimiter ulocdata_getDelimiter_3_6
+#define ulocdata_getExemplarSet ulocdata_getExemplarSet_3_6
+#define ulocdata_getMeasurementSystem ulocdata_getMeasurementSystem_3_6
+#define ulocdata_getNoSubstitute ulocdata_getNoSubstitute_3_6
+#define ulocdata_getPaperSize ulocdata_getPaperSize_3_6
+#define ulocdata_open ulocdata_open_3_6
+#define ulocdata_setNoSubstitute ulocdata_setNoSubstitute_3_6
+#define umsg_applyPattern umsg_applyPattern_3_6
+#define umsg_autoQuoteApostrophe umsg_autoQuoteApostrophe_3_6
+#define umsg_clone umsg_clone_3_6
+#define umsg_close umsg_close_3_6
+#define umsg_format umsg_format_3_6
+#define umsg_getLocale umsg_getLocale_3_6
+#define umsg_open umsg_open_3_6
+#define umsg_parse umsg_parse_3_6
+#define umsg_setLocale umsg_setLocale_3_6
+#define umsg_toPattern umsg_toPattern_3_6
+#define umsg_vformat umsg_vformat_3_6
+#define umsg_vparse umsg_vparse_3_6
+#define umtx_atomic_dec umtx_atomic_dec_3_6
+#define umtx_atomic_inc umtx_atomic_inc_3_6
+#define umtx_cleanup umtx_cleanup_3_6
+#define umtx_destroy umtx_destroy_3_6
+#define umtx_init umtx_init_3_6
+#define umtx_lock umtx_lock_3_6
+#define umtx_unlock umtx_unlock_3_6
+#define unorm_addPropertyStarts unorm_addPropertyStarts_3_6
+#define unorm_closeIter unorm_closeIter_3_6
+#define unorm_compare unorm_compare_3_6
+#define unorm_compose unorm_compose_3_6
+#define unorm_concatenate unorm_concatenate_3_6
+#define unorm_decompose unorm_decompose_3_6
+#define unorm_getCanonStartSet unorm_getCanonStartSet_3_6
+#define unorm_getCanonicalDecomposition unorm_getCanonicalDecomposition_3_6
+#define unorm_getDecomposition unorm_getDecomposition_3_6
+#define unorm_getFCD16FromCodePoint unorm_getFCD16FromCodePoint_3_6
+#define unorm_getFCDTrie unorm_getFCDTrie_3_6
+#define unorm_getNX unorm_getNX_3_6
+#define unorm_getQuickCheck unorm_getQuickCheck_3_6
+#define unorm_getUnicodeVersion unorm_getUnicodeVersion_3_6
+#define unorm_haveData unorm_haveData_3_6
+#define unorm_internalIsFullCompositionExclusion unorm_internalIsFullCompositionExclusion_3_6
+#define unorm_internalNormalize unorm_internalNormalize_3_6
+#define unorm_internalNormalizeWithNX unorm_internalNormalizeWithNX_3_6
+#define unorm_internalQuickCheck unorm_internalQuickCheck_3_6
+#define unorm_isCanonSafeStart unorm_isCanonSafeStart_3_6
+#define unorm_isNFSkippable unorm_isNFSkippable_3_6
+#define unorm_isNormalized unorm_isNormalized_3_6
+#define unorm_isNormalizedWithOptions unorm_isNormalizedWithOptions_3_6
+#define unorm_next unorm_next_3_6
+#define unorm_normalize unorm_normalize_3_6
+#define unorm_openIter unorm_openIter_3_6
+#define unorm_previous unorm_previous_3_6
+#define unorm_quickCheck unorm_quickCheck_3_6
+#define unorm_quickCheckWithOptions unorm_quickCheckWithOptions_3_6
+#define unorm_setIter unorm_setIter_3_6
+#define unum_applyPattern unum_applyPattern_3_6
+#define unum_clone unum_clone_3_6
+#define unum_close unum_close_3_6
+#define unum_countAvailable unum_countAvailable_3_6
+#define unum_format unum_format_3_6
+#define unum_formatDouble unum_formatDouble_3_6
+#define unum_formatDoubleCurrency unum_formatDoubleCurrency_3_6
+#define unum_formatInt64 unum_formatInt64_3_6
+#define unum_getAttribute unum_getAttribute_3_6
+#define unum_getAvailable unum_getAvailable_3_6
+#define unum_getDoubleAttribute unum_getDoubleAttribute_3_6
+#define unum_getLocaleByType unum_getLocaleByType_3_6
+#define unum_getSymbol unum_getSymbol_3_6
+#define unum_getTextAttribute unum_getTextAttribute_3_6
+#define unum_open unum_open_3_6
+#define unum_parse unum_parse_3_6
+#define unum_parseDouble unum_parseDouble_3_6
+#define unum_parseDoubleCurrency unum_parseDoubleCurrency_3_6
+#define unum_parseInt64 unum_parseInt64_3_6
+#define unum_setAttribute unum_setAttribute_3_6
+#define unum_setDoubleAttribute unum_setDoubleAttribute_3_6
+#define unum_setSymbol unum_setSymbol_3_6
+#define unum_setTextAttribute unum_setTextAttribute_3_6
+#define unum_toPattern unum_toPattern_3_6
+#define upname_swap upname_swap_3_6
+#define uprops_getSource uprops_getSource_3_6
+#define upropsvec_addPropertyStarts upropsvec_addPropertyStarts_3_6
+#define uprv_asciiFromEbcdic uprv_asciiFromEbcdic_3_6
+#define uprv_asciitolower uprv_asciitolower_3_6
+#define uprv_ceil uprv_ceil_3_6
+#define uprv_cnttab_addContraction uprv_cnttab_addContraction_3_6
+#define uprv_cnttab_changeContraction uprv_cnttab_changeContraction_3_6
+#define uprv_cnttab_changeLastCE uprv_cnttab_changeLastCE_3_6
+#define uprv_cnttab_clone uprv_cnttab_clone_3_6
+#define uprv_cnttab_close uprv_cnttab_close_3_6
+#define uprv_cnttab_constructTable uprv_cnttab_constructTable_3_6
+#define uprv_cnttab_findCE uprv_cnttab_findCE_3_6
+#define uprv_cnttab_findCP uprv_cnttab_findCP_3_6
+#define uprv_cnttab_getCE uprv_cnttab_getCE_3_6
+#define uprv_cnttab_insertContraction uprv_cnttab_insertContraction_3_6
+#define uprv_cnttab_isTailored uprv_cnttab_isTailored_3_6
+#define uprv_cnttab_open uprv_cnttab_open_3_6
+#define uprv_cnttab_setContraction uprv_cnttab_setContraction_3_6
+#define uprv_compareASCIIPropertyNames uprv_compareASCIIPropertyNames_3_6
+#define uprv_compareEBCDICPropertyNames uprv_compareEBCDICPropertyNames_3_6
+#define uprv_compareInvAscii uprv_compareInvAscii_3_6
+#define uprv_compareInvEbcdic uprv_compareInvEbcdic_3_6
+#define uprv_convertToLCID uprv_convertToLCID_3_6
+#define uprv_convertToPosix uprv_convertToPosix_3_6
+#define uprv_copyAscii uprv_copyAscii_3_6
+#define uprv_copyEbcdic uprv_copyEbcdic_3_6
+#define uprv_ebcdicFromAscii uprv_ebcdicFromAscii_3_6
+#define uprv_ebcdictolower uprv_ebcdictolower_3_6
+#define uprv_fabs uprv_fabs_3_6
+#define uprv_floor uprv_floor_3_6
+#define uprv_fmax uprv_fmax_3_6
+#define uprv_fmin uprv_fmin_3_6
+#define uprv_fmod uprv_fmod_3_6
+#define uprv_free uprv_free_3_6
+#define uprv_getCharNameCharacters uprv_getCharNameCharacters_3_6
+#define uprv_getDefaultCodepage uprv_getDefaultCodepage_3_6
+#define uprv_getDefaultLocaleID uprv_getDefaultLocaleID_3_6
+#define uprv_getInfinity uprv_getInfinity_3_6
+#define uprv_getMaxCharNameLength uprv_getMaxCharNameLength_3_6
+#define uprv_getMaxValues uprv_getMaxValues_3_6
+#define uprv_getNaN uprv_getNaN_3_6
+#define uprv_getStaticCurrencyName uprv_getStaticCurrencyName_3_6
+#define uprv_getUTCtime uprv_getUTCtime_3_6
+#define uprv_haveProperties uprv_haveProperties_3_6
+#define uprv_init_collIterate uprv_init_collIterate_3_6
+#define uprv_int32Comparator uprv_int32Comparator_3_6
+#define uprv_isInfinite uprv_isInfinite_3_6
+#define uprv_isInvariantString uprv_isInvariantString_3_6
+#define uprv_isInvariantUString uprv_isInvariantUString_3_6
+#define uprv_isNaN uprv_isNaN_3_6
+#define uprv_isNegativeInfinity uprv_isNegativeInfinity_3_6
+#define uprv_isPositiveInfinity uprv_isPositiveInfinity_3_6
+#define uprv_isRuleWhiteSpace uprv_isRuleWhiteSpace_3_6
+#define uprv_itou uprv_itou_3_6
+#define uprv_log uprv_log_3_6
+#define uprv_malloc uprv_malloc_3_6
+#define uprv_mapFile uprv_mapFile_3_6
+#define uprv_max uprv_max_3_6
+#define uprv_maxMantissa uprv_maxMantissa_3_6
+#define uprv_min uprv_min_3_6
+#define uprv_modf uprv_modf_3_6
+#define uprv_openRuleWhiteSpaceSet uprv_openRuleWhiteSpaceSet_3_6
+#define uprv_parseCurrency uprv_parseCurrency_3_6
+#define uprv_pathIsAbsolute uprv_pathIsAbsolute_3_6
+#define uprv_pow uprv_pow_3_6
+#define uprv_pow10 uprv_pow10_3_6
+#define uprv_realloc uprv_realloc_3_6
+#define uprv_round uprv_round_3_6
+#define uprv_sortArray uprv_sortArray_3_6
+#define uprv_strCompare uprv_strCompare_3_6
+#define uprv_strdup uprv_strdup_3_6
+#define uprv_strndup uprv_strndup_3_6
+#define uprv_syntaxError uprv_syntaxError_3_6
+#define uprv_timezone uprv_timezone_3_6
+#define uprv_toupper uprv_toupper_3_6
+#define uprv_trunc uprv_trunc_3_6
+#define uprv_tzname uprv_tzname_3_6
+#define uprv_tzset uprv_tzset_3_6
+#define uprv_uca_addAnElement uprv_uca_addAnElement_3_6
+#define uprv_uca_assembleTable uprv_uca_assembleTable_3_6
+#define uprv_uca_canonicalClosure uprv_uca_canonicalClosure_3_6
+#define uprv_uca_cloneTempTable uprv_uca_cloneTempTable_3_6
+#define uprv_uca_closeTempTable uprv_uca_closeTempTable_3_6
+#define uprv_uca_getCodePointFromRaw uprv_uca_getCodePointFromRaw_3_6
+#define uprv_uca_getImplicitFromRaw uprv_uca_getImplicitFromRaw_3_6
+#define uprv_uca_getImplicitPrimary uprv_uca_getImplicitPrimary_3_6
+#define uprv_uca_getRawFromCodePoint uprv_uca_getRawFromCodePoint_3_6
+#define uprv_uca_getRawFromImplicit uprv_uca_getRawFromImplicit_3_6
+#define uprv_uca_initImplicitConstants uprv_uca_initImplicitConstants_3_6
+#define uprv_uca_initTempTable uprv_uca_initTempTable_3_6
+#define uprv_uint16Comparator uprv_uint16Comparator_3_6
+#define uprv_uint32Comparator uprv_uint32Comparator_3_6
+#define uprv_unmapFile uprv_unmapFile_3_6
+#define uregex_appendReplacement uregex_appendReplacement_3_6
+#define uregex_appendTail uregex_appendTail_3_6
+#define uregex_clone uregex_clone_3_6
+#define uregex_close uregex_close_3_6
+#define uregex_end uregex_end_3_6
+#define uregex_find uregex_find_3_6
+#define uregex_findNext uregex_findNext_3_6
+#define uregex_flags uregex_flags_3_6
+#define uregex_getText uregex_getText_3_6
+#define uregex_group uregex_group_3_6
+#define uregex_groupCount uregex_groupCount_3_6
+#define uregex_lookingAt uregex_lookingAt_3_6
+#define uregex_matches uregex_matches_3_6
+#define uregex_open uregex_open_3_6
+#define uregex_openC uregex_openC_3_6
+#define uregex_pattern uregex_pattern_3_6
+#define uregex_replaceAll uregex_replaceAll_3_6
+#define uregex_replaceFirst uregex_replaceFirst_3_6
+#define uregex_reset uregex_reset_3_6
+#define uregex_setText uregex_setText_3_6
+#define uregex_split uregex_split_3_6
+#define uregex_start uregex_start_3_6
+#define ures_clone ures_clone_3_6
+#define ures_close ures_close_3_6
+#define ures_copyResb ures_copyResb_3_6
+#define ures_countArrayItems ures_countArrayItems_3_6
+#define ures_equal ures_equal_3_6
+#define ures_findResource ures_findResource_3_6
+#define ures_findSubResource ures_findSubResource_3_6
+#define ures_getBinary ures_getBinary_3_6
+#define ures_getByIndex ures_getByIndex_3_6
+#define ures_getByKey ures_getByKey_3_6
+#define ures_getByKeyWithFallback ures_getByKeyWithFallback_3_6
+#define ures_getFunctionalEquivalent ures_getFunctionalEquivalent_3_6
+#define ures_getInt ures_getInt_3_6
+#define ures_getIntVector ures_getIntVector_3_6
+#define ures_getKey ures_getKey_3_6
+#define ures_getKeywordValues ures_getKeywordValues_3_6
+#define ures_getLocale ures_getLocale_3_6
+#define ures_getLocaleByType ures_getLocaleByType_3_6
+#define ures_getName ures_getName_3_6
+#define ures_getNextResource ures_getNextResource_3_6
+#define ures_getNextString ures_getNextString_3_6
+#define ures_getParentBundle ures_getParentBundle_3_6
+#define ures_getPath ures_getPath_3_6
+#define ures_getSize ures_getSize_3_6
+#define ures_getString ures_getString_3_6
+#define ures_getStringByIndex ures_getStringByIndex_3_6
+#define ures_getStringByKey ures_getStringByKey_3_6
+#define ures_getStringByKeyWithFallback ures_getStringByKeyWithFallback_3_6
+#define ures_getType ures_getType_3_6
+#define ures_getUInt ures_getUInt_3_6
+#define ures_getUTF8String ures_getUTF8String_3_6
+#define ures_getUTF8StringByIndex ures_getUTF8StringByIndex_3_6
+#define ures_getUTF8StringByKey ures_getUTF8StringByKey_3_6
+#define ures_getVersion ures_getVersion_3_6
+#define ures_getVersionNumber ures_getVersionNumber_3_6
+#define ures_hasNext ures_hasNext_3_6
+#define ures_initStackObject ures_initStackObject_3_6
+#define ures_open ures_open_3_6
+#define ures_openAvailableLocales ures_openAvailableLocales_3_6
+#define ures_openDirect ures_openDirect_3_6
+#define ures_openFillIn ures_openFillIn_3_6
+#define ures_openU ures_openU_3_6
+#define ures_resetIterator ures_resetIterator_3_6
+#define ures_swap ures_swap_3_6
+#define uscript_closeRun uscript_closeRun_3_6
+#define uscript_getCode uscript_getCode_3_6
+#define uscript_getName uscript_getName_3_6
+#define uscript_getScript uscript_getScript_3_6
+#define uscript_getShortName uscript_getShortName_3_6
+#define uscript_nextRun uscript_nextRun_3_6
+#define uscript_openRun uscript_openRun_3_6
+#define uscript_resetRun uscript_resetRun_3_6
+#define uscript_setRunText uscript_setRunText_3_6
+#define usearch_close usearch_close_3_6
+#define usearch_first usearch_first_3_6
+#define usearch_following usearch_following_3_6
+#define usearch_getAttribute usearch_getAttribute_3_6
+#define usearch_getBreakIterator usearch_getBreakIterator_3_6
+#define usearch_getCollator usearch_getCollator_3_6
+#define usearch_getMatchedLength usearch_getMatchedLength_3_6
+#define usearch_getMatchedStart usearch_getMatchedStart_3_6
+#define usearch_getMatchedText usearch_getMatchedText_3_6
+#define usearch_getOffset usearch_getOffset_3_6
+#define usearch_getPattern usearch_getPattern_3_6
+#define usearch_getText usearch_getText_3_6
+#define usearch_handleNextCanonical usearch_handleNextCanonical_3_6
+#define usearch_handleNextExact usearch_handleNextExact_3_6
+#define usearch_handlePreviousCanonical usearch_handlePreviousCanonical_3_6
+#define usearch_handlePreviousExact usearch_handlePreviousExact_3_6
+#define usearch_last usearch_last_3_6
+#define usearch_next usearch_next_3_6
+#define usearch_open usearch_open_3_6
+#define usearch_openFromCollator usearch_openFromCollator_3_6
+#define usearch_preceding usearch_preceding_3_6
+#define usearch_previous usearch_previous_3_6
+#define usearch_reset usearch_reset_3_6
+#define usearch_setAttribute usearch_setAttribute_3_6
+#define usearch_setBreakIterator usearch_setBreakIterator_3_6
+#define usearch_setCollator usearch_setCollator_3_6
+#define usearch_setOffset usearch_setOffset_3_6
+#define usearch_setPattern usearch_setPattern_3_6
+#define usearch_setText usearch_setText_3_6
+#define userv_deleteStringPair userv_deleteStringPair_3_6
+#define uset_add uset_add_3_6
+#define uset_addAll uset_addAll_3_6
+#define uset_addAllCodePoints uset_addAllCodePoints_3_6
+#define uset_addRange uset_addRange_3_6
+#define uset_addString uset_addString_3_6
+#define uset_applyIntPropertyValue uset_applyIntPropertyValue_3_6
+#define uset_applyPattern uset_applyPattern_3_6
+#define uset_applyPropertyAlias uset_applyPropertyAlias_3_6
+#define uset_charAt uset_charAt_3_6
+#define uset_clear uset_clear_3_6
+#define uset_close uset_close_3_6
+#define uset_compact uset_compact_3_6
+#define uset_complement uset_complement_3_6
+#define uset_complementAll uset_complementAll_3_6
+#define uset_contains uset_contains_3_6
+#define uset_containsAll uset_containsAll_3_6
+#define uset_containsAllCodePoints uset_containsAllCodePoints_3_6
+#define uset_containsNone uset_containsNone_3_6
+#define uset_containsRange uset_containsRange_3_6
+#define uset_containsSome uset_containsSome_3_6
+#define uset_containsString uset_containsString_3_6
+#define uset_equals uset_equals_3_6
+#define uset_getItem uset_getItem_3_6
+#define uset_getItemCount uset_getItemCount_3_6
+#define uset_getSerializedRange uset_getSerializedRange_3_6
+#define uset_getSerializedRangeCount uset_getSerializedRangeCount_3_6
+#define uset_getSerializedSet uset_getSerializedSet_3_6
+#define uset_indexOf uset_indexOf_3_6
+#define uset_isEmpty uset_isEmpty_3_6
+#define uset_open uset_open_3_6
+#define uset_openPattern uset_openPattern_3_6
+#define uset_openPatternOptions uset_openPatternOptions_3_6
+#define uset_remove uset_remove_3_6
+#define uset_removeAll uset_removeAll_3_6
+#define uset_removeRange uset_removeRange_3_6
+#define uset_removeString uset_removeString_3_6
+#define uset_resemblesPattern uset_resemblesPattern_3_6
+#define uset_retain uset_retain_3_6
+#define uset_retainAll uset_retainAll_3_6
+#define uset_serialize uset_serialize_3_6
+#define uset_serializedContains uset_serializedContains_3_6
+#define uset_set uset_set_3_6
+#define uset_setSerializedToOne uset_setSerializedToOne_3_6
+#define uset_size uset_size_3_6
+#define uset_toPattern uset_toPattern_3_6
+#define usprep_close usprep_close_3_6
+#define usprep_open usprep_open_3_6
+#define usprep_prepare usprep_prepare_3_6
+#define usprep_swap usprep_swap_3_6
+#define ustr_foldCase ustr_foldCase_3_6
+#define ustr_toLower ustr_toLower_3_6
+#define ustr_toTitle ustr_toTitle_3_6
+#define ustr_toUpper ustr_toUpper_3_6
+#define utext_char32At utext_char32At_3_6
+#define utext_clone utext_clone_3_6
+#define utext_close utext_close_3_6
+#define utext_copy utext_copy_3_6
+#define utext_current32 utext_current32_3_6
+#define utext_equals utext_equals_3_6
+#define utext_extract utext_extract_3_6
+#define utext_freeze utext_freeze_3_6
+#define utext_getNativeIndex utext_getNativeIndex_3_6
+#define utext_getPreviousNativeIndex utext_getPreviousNativeIndex_3_6
+#define utext_hasMetaData utext_hasMetaData_3_6
+#define utext_isLengthExpensive utext_isLengthExpensive_3_6
+#define utext_isWritable utext_isWritable_3_6
+#define utext_moveIndex32 utext_moveIndex32_3_6
+#define utext_nativeLength utext_nativeLength_3_6
+#define utext_next32 utext_next32_3_6
+#define utext_next32From utext_next32From_3_6
+#define utext_openCharacterIterator utext_openCharacterIterator_3_6
+#define utext_openConstUnicodeString utext_openConstUnicodeString_3_6
+#define utext_openReplaceable utext_openReplaceable_3_6
+#define utext_openUChars utext_openUChars_3_6
+#define utext_openUTF8 utext_openUTF8_3_6
+#define utext_openUnicodeString utext_openUnicodeString_3_6
+#define utext_previous32 utext_previous32_3_6
+#define utext_previous32From utext_previous32From_3_6
+#define utext_replace utext_replace_3_6
+#define utext_setNativeIndex utext_setNativeIndex_3_6
+#define utext_setup utext_setup_3_6
+#define utf8_appendCharSafeBody utf8_appendCharSafeBody_3_6
+#define utf8_back1SafeBody utf8_back1SafeBody_3_6
+#define utf8_countTrailBytes utf8_countTrailBytes_3_6
+#define utf8_nextCharSafeBody utf8_nextCharSafeBody_3_6
+#define utf8_prevCharSafeBody utf8_prevCharSafeBody_3_6
+#define utmscale_fromInt64 utmscale_fromInt64_3_6
+#define utmscale_getTimeScaleValue utmscale_getTimeScaleValue_3_6
+#define utmscale_toInt64 utmscale_toInt64_3_6
+#define utrace_cleanup utrace_cleanup_3_6
+#define utrace_data utrace_data_3_6
+#define utrace_entry utrace_entry_3_6
+#define utrace_exit utrace_exit_3_6
+#define utrace_format utrace_format_3_6
+#define utrace_functionName utrace_functionName_3_6
+#define utrace_getFunctions utrace_getFunctions_3_6
+#define utrace_getLevel utrace_getLevel_3_6
+#define utrace_level utrace_level_3_6
+#define utrace_setFunctions utrace_setFunctions_3_6
+#define utrace_setLevel utrace_setLevel_3_6
+#define utrace_vformat utrace_vformat_3_6
+#define utrans_clone utrans_clone_3_6
+#define utrans_close utrans_close_3_6
+#define utrans_countAvailableIDs utrans_countAvailableIDs_3_6
+#define utrans_getAvailableID utrans_getAvailableID_3_6
+#define utrans_getID utrans_getID_3_6
+#define utrans_getUnicodeID utrans_getUnicodeID_3_6
+#define utrans_open utrans_open_3_6
+#define utrans_openIDs utrans_openIDs_3_6
+#define utrans_openInverse utrans_openInverse_3_6
+#define utrans_openU utrans_openU_3_6
+#define utrans_register utrans_register_3_6
+#define utrans_rep_caseContextIterator utrans_rep_caseContextIterator_3_6
+#define utrans_setFilter utrans_setFilter_3_6
+#define utrans_stripRules utrans_stripRules_3_6
+#define utrans_trans utrans_trans_3_6
+#define utrans_transIncremental utrans_transIncremental_3_6
+#define utrans_transIncrementalUChars utrans_transIncrementalUChars_3_6
+#define utrans_transUChars utrans_transUChars_3_6
+#define utrans_unregister utrans_unregister_3_6
+#define utrans_unregisterID utrans_unregisterID_3_6
+#define utrie_clone utrie_clone_3_6
+#define utrie_close utrie_close_3_6
+#define utrie_defaultGetFoldingOffset utrie_defaultGetFoldingOffset_3_6
+#define utrie_enum utrie_enum_3_6
+#define utrie_get32 utrie_get32_3_6
+#define utrie_getData utrie_getData_3_6
+#define utrie_open utrie_open_3_6
+#define utrie_serialize utrie_serialize_3_6
+#define utrie_set32 utrie_set32_3_6
+#define utrie_setRange32 utrie_setRange32_3_6
+#define utrie_swap utrie_swap_3_6
+#define utrie_unserialize utrie_unserialize_3_6
+#define utrie_unserializeDummy utrie_unserializeDummy_3_6
/* C++ class names renaming defines */
#ifdef XP_CPLUSPLUS
#if !U_HAVE_NAMESPACE
-#define AbsoluteValueSubstitution AbsoluteValueSubstitution_3_4
-#define AlternateSubstitutionSubtable AlternateSubstitutionSubtable_3_4
-#define AnchorTable AnchorTable_3_4
-#define AnyTransliterator AnyTransliterator_3_4
-#define ArabicOpenTypeLayoutEngine ArabicOpenTypeLayoutEngine_3_4
-#define ArabicShaping ArabicShaping_3_4
-#define BasicCalendarFactory BasicCalendarFactory_3_4
-#define BinarySearchLookupTable BinarySearchLookupTable_3_4
-#define BreakDictionary BreakDictionary_3_4
-#define BreakIterator BreakIterator_3_4
-#define BuddhistCalendar BuddhistCalendar_3_4
-#define CFactory CFactory_3_4
-#define Calendar Calendar_3_4
-#define CalendarAstronomer CalendarAstronomer_3_4
-#define CalendarCache CalendarCache_3_4
-#define CalendarData CalendarData_3_4
-#define CalendarService CalendarService_3_4
-#define CanonShaping CanonShaping_3_4
-#define CanonicalIterator CanonicalIterator_3_4
-#define CaseMapTransliterator CaseMapTransliterator_3_4
-#define ChainingContextualSubstitutionFormat1Subtable ChainingContextualSubstitutionFormat1Subtable_3_4
-#define ChainingContextualSubstitutionFormat2Subtable ChainingContextualSubstitutionFormat2Subtable_3_4
-#define ChainingContextualSubstitutionFormat3Subtable ChainingContextualSubstitutionFormat3Subtable_3_4
-#define ChainingContextualSubstitutionSubtable ChainingContextualSubstitutionSubtable_3_4
-#define CharSubstitutionFilter CharSubstitutionFilter_3_4
-#define CharacterIterator CharacterIterator_3_4
-#define ChoiceFormat ChoiceFormat_3_4
-#define ClassDefFormat1Table ClassDefFormat1Table_3_4
-#define ClassDefFormat2Table ClassDefFormat2Table_3_4
-#define ClassDefinitionTable ClassDefinitionTable_3_4
-#define CollationElementIterator CollationElementIterator_3_4
-#define CollationKey CollationKey_3_4
-#define Collator Collator_3_4
-#define CollatorFactory CollatorFactory_3_4
-#define CompoundTransliterator CompoundTransliterator_3_4
-#define ContextualGlyphSubstitutionProcessor ContextualGlyphSubstitutionProcessor_3_4
-#define ContextualSubstitutionBase ContextualSubstitutionBase_3_4
-#define ContextualSubstitutionFormat1Subtable ContextualSubstitutionFormat1Subtable_3_4
-#define ContextualSubstitutionFormat2Subtable ContextualSubstitutionFormat2Subtable_3_4
-#define ContextualSubstitutionFormat3Subtable ContextualSubstitutionFormat3Subtable_3_4
-#define ContextualSubstitutionSubtable ContextualSubstitutionSubtable_3_4
-#define CoverageFormat1Table CoverageFormat1Table_3_4
-#define CoverageFormat2Table CoverageFormat2Table_3_4
-#define CoverageTable CoverageTable_3_4
-#define CurrencyAmount CurrencyAmount_3_4
-#define CurrencyFormat CurrencyFormat_3_4
-#define CurrencyUnit CurrencyUnit_3_4
-#define CursiveAttachmentSubtable CursiveAttachmentSubtable_3_4
-#define DateFormat DateFormat_3_4
-#define DateFormatSymbols DateFormatSymbols_3_4
-#define DecimalFormat DecimalFormat_3_4
-#define DecimalFormatSymbols DecimalFormatSymbols_3_4
-#define DefaultCalendarFactory DefaultCalendarFactory_3_4
-#define DefaultCharMapper DefaultCharMapper_3_4
-#define DeviceTable DeviceTable_3_4
-#define DictionaryBasedBreakIterator DictionaryBasedBreakIterator_3_4
-#define DictionaryBasedBreakIteratorTables DictionaryBasedBreakIteratorTables_3_4
-#define DigitList DigitList_3_4
-#define Entry Entry_3_4
-#define EnumToOffset EnumToOffset_3_4
-#define EscapeTransliterator EscapeTransliterator_3_4
-#define EventListener EventListener_3_4
-#define ExtensionSubtable ExtensionSubtable_3_4
-#define FeatureListTable FeatureListTable_3_4
-#define FieldPosition FieldPosition_3_4
-#define FontRuns FontRuns_3_4
-#define Format Format_3_4
-#define Format1AnchorTable Format1AnchorTable_3_4
-#define Format2AnchorTable Format2AnchorTable_3_4
-#define Format3AnchorTable Format3AnchorTable_3_4
-#define Formattable Formattable_3_4
-#define ForwardCharacterIterator ForwardCharacterIterator_3_4
-#define FractionalPartSubstitution FractionalPartSubstitution_3_4
-#define FunctionReplacer FunctionReplacer_3_4
-#define GDEFMarkFilter GDEFMarkFilter_3_4
-#define GXLayoutEngine GXLayoutEngine_3_4
-#define GlyphDefinitionTableHeader GlyphDefinitionTableHeader_3_4
-#define GlyphIterator GlyphIterator_3_4
-#define GlyphLookupTableHeader GlyphLookupTableHeader_3_4
-#define GlyphPositionAdjustments GlyphPositionAdjustments_3_4
-#define GlyphPositioningLookupProcessor GlyphPositioningLookupProcessor_3_4
-#define GlyphPositioningTableHeader GlyphPositioningTableHeader_3_4
-#define GlyphSubstitutionLookupProcessor GlyphSubstitutionLookupProcessor_3_4
-#define GlyphSubstitutionTableHeader GlyphSubstitutionTableHeader_3_4
-#define Grego Grego_3_4
-#define GregorianCalendar GregorianCalendar_3_4
-#define HanOpenTypeLayoutEngine HanOpenTypeLayoutEngine_3_4
-#define HebrewCalendar HebrewCalendar_3_4
-#define ICUBreakIteratorFactory ICUBreakIteratorFactory_3_4
-#define ICUBreakIteratorService ICUBreakIteratorService_3_4
-#define ICUCollatorFactory ICUCollatorFactory_3_4
-#define ICUCollatorService ICUCollatorService_3_4
-#define ICULocaleService ICULocaleService_3_4
-#define ICUNotifier ICUNotifier_3_4
-#define ICUNumberFormatFactory ICUNumberFormatFactory_3_4
-#define ICUNumberFormatService ICUNumberFormatService_3_4
-#define ICUResourceBundleFactory ICUResourceBundleFactory_3_4
-#define ICUService ICUService_3_4
-#define ICUServiceFactory ICUServiceFactory_3_4
-#define ICUServiceKey ICUServiceKey_3_4
-#define ICU_Utility ICU_Utility_3_4
-#define IndicClassTable IndicClassTable_3_4
-#define IndicOpenTypeLayoutEngine IndicOpenTypeLayoutEngine_3_4
-#define IndicRearrangementProcessor IndicRearrangementProcessor_3_4
-#define IndicReordering IndicReordering_3_4
-#define IntegralPartSubstitution IntegralPartSubstitution_3_4
-#define IslamicCalendar IslamicCalendar_3_4
-#define JapaneseCalendar JapaneseCalendar_3_4
-#define KernTable KernTable_3_4
-#define KeywordEnumeration KeywordEnumeration_3_4
-#define KhmerClassTable KhmerClassTable_3_4
-#define KhmerOpenTypeLayoutEngine KhmerOpenTypeLayoutEngine_3_4
-#define KhmerReordering KhmerReordering_3_4
-#define LECharMapper LECharMapper_3_4
-#define LEFontInstance LEFontInstance_3_4
-#define LEGlyphFilter LEGlyphFilter_3_4
-#define LEGlyphStorage LEGlyphStorage_3_4
-#define LEInsertionCallback LEInsertionCallback_3_4
-#define LEInsertionList LEInsertionList_3_4
-#define LXUtilities LXUtilities_3_4
-#define LayoutEngine LayoutEngine_3_4
-#define LigatureSubstitutionProcessor LigatureSubstitutionProcessor_3_4
-#define LigatureSubstitutionSubtable LigatureSubstitutionSubtable_3_4
-#define LocDataParser LocDataParser_3_4
-#define Locale Locale_3_4
-#define LocaleBased LocaleBased_3_4
-#define LocaleKey LocaleKey_3_4
-#define LocaleKeyFactory LocaleKeyFactory_3_4
-#define LocaleRuns LocaleRuns_3_4
-#define LocaleUtility LocaleUtility_3_4
-#define LocalizationInfo LocalizationInfo_3_4
-#define LookupListTable LookupListTable_3_4
-#define LookupProcessor LookupProcessor_3_4
-#define LookupSubtable LookupSubtable_3_4
-#define LookupTable LookupTable_3_4
-#define LowercaseTransliterator LowercaseTransliterator_3_4
-#define MPreFixups MPreFixups_3_4
-#define MarkArray MarkArray_3_4
-#define MarkToBasePositioningSubtable MarkToBasePositioningSubtable_3_4
-#define MarkToLigaturePositioningSubtable MarkToLigaturePositioningSubtable_3_4
-#define MarkToMarkPositioningSubtable MarkToMarkPositioningSubtable_3_4
-#define Math Math_3_4
-#define Measure Measure_3_4
-#define MeasureFormat MeasureFormat_3_4
-#define MeasureUnit MeasureUnit_3_4
-#define MessageFormat MessageFormat_3_4
-#define MessageFormatAdapter MessageFormatAdapter_3_4
-#define ModulusSubstitution ModulusSubstitution_3_4
-#define MoonRiseSetCoordFunc MoonRiseSetCoordFunc_3_4
-#define MoonTimeAngleFunc MoonTimeAngleFunc_3_4
-#define MorphSubtableHeader MorphSubtableHeader_3_4
-#define MorphTableHeader MorphTableHeader_3_4
-#define MultipleSubstitutionSubtable MultipleSubstitutionSubtable_3_4
-#define MultiplierSubstitution MultiplierSubstitution_3_4
-#define NFFactory NFFactory_3_4
-#define NFRule NFRule_3_4
-#define NFRuleSet NFRuleSet_3_4
-#define NFSubstitution NFSubstitution_3_4
-#define NameToEnum NameToEnum_3_4
-#define NameUnicodeTransliterator NameUnicodeTransliterator_3_4
-#define NonContextualGlyphSubstitutionProcessor NonContextualGlyphSubstitutionProcessor_3_4
-#define NonContiguousEnumToOffset NonContiguousEnumToOffset_3_4
-#define NormalizationTransliterator NormalizationTransliterator_3_4
-#define Normalizer Normalizer_3_4
-#define NullSubstitution NullSubstitution_3_4
-#define NullTransliterator NullTransliterator_3_4
-#define NumberFormat NumberFormat_3_4
-#define NumberFormatFactory NumberFormatFactory_3_4
-#define NumeratorSubstitution NumeratorSubstitution_3_4
-#define OlsonTimeZone OlsonTimeZone_3_4
-#define OpenTypeLayoutEngine OpenTypeLayoutEngine_3_4
-#define OpenTypeUtilities OpenTypeUtilities_3_4
-#define PairPositioningFormat1Subtable PairPositioningFormat1Subtable_3_4
-#define PairPositioningFormat2Subtable PairPositioningFormat2Subtable_3_4
-#define PairPositioningSubtable PairPositioningSubtable_3_4
-#define ParagraphLayout ParagraphLayout_3_4
-#define ParseData ParseData_3_4
-#define ParsePosition ParsePosition_3_4
-#define PropertyAliases PropertyAliases_3_4
-#define Quantifier Quantifier_3_4
-#define RBBIDataWrapper RBBIDataWrapper_3_4
-#define RBBINode RBBINode_3_4
-#define RBBIRuleBuilder RBBIRuleBuilder_3_4
-#define RBBIRuleScanner RBBIRuleScanner_3_4
-#define RBBISetBuilder RBBISetBuilder_3_4
-#define RBBIStateDescriptor RBBIStateDescriptor_3_4
-#define RBBISymbolTable RBBISymbolTable_3_4
-#define RBBISymbolTableEntry RBBISymbolTableEntry_3_4
-#define RBBITableBuilder RBBITableBuilder_3_4
-#define RangeDescriptor RangeDescriptor_3_4
-#define RegexCompile RegexCompile_3_4
-#define RegexMatcher RegexMatcher_3_4
-#define RegexPattern RegexPattern_3_4
-#define RegexStaticSets RegexStaticSets_3_4
-#define RemoveTransliterator RemoveTransliterator_3_4
-#define Replaceable Replaceable_3_4
-#define ReplaceableGlue ReplaceableGlue_3_4
-#define ResourceBundle ResourceBundle_3_4
-#define RiseSetCoordFunc RiseSetCoordFunc_3_4
-#define RuleBasedBreakIterator RuleBasedBreakIterator_3_4
-#define RuleBasedCollator RuleBasedCollator_3_4
-#define RuleBasedNumberFormat RuleBasedNumberFormat_3_4
-#define RuleBasedTransliterator RuleBasedTransliterator_3_4
-#define RuleCharacterIterator RuleCharacterIterator_3_4
-#define RuleHalf RuleHalf_3_4
-#define RunArray RunArray_3_4
-#define SameValueSubstitution SameValueSubstitution_3_4
-#define ScriptListTable ScriptListTable_3_4
-#define ScriptRunIterator ScriptRunIterator_3_4
-#define ScriptTable ScriptTable_3_4
-#define SearchIterator SearchIterator_3_4
-#define SegmentArrayProcessor SegmentArrayProcessor_3_4
-#define SegmentSingleProcessor SegmentSingleProcessor_3_4
-#define ServiceEnumeration ServiceEnumeration_3_4
-#define ServiceListener ServiceListener_3_4
-#define SimpleArrayProcessor SimpleArrayProcessor_3_4
-#define SimpleDateFormat SimpleDateFormat_3_4
-#define SimpleFactory SimpleFactory_3_4
-#define SimpleLocaleKeyFactory SimpleLocaleKeyFactory_3_4
-#define SimpleNumberFormatFactory SimpleNumberFormatFactory_3_4
-#define SimpleTimeZone SimpleTimeZone_3_4
-#define SinglePositioningFormat1Subtable SinglePositioningFormat1Subtable_3_4
-#define SinglePositioningFormat2Subtable SinglePositioningFormat2Subtable_3_4
-#define SinglePositioningSubtable SinglePositioningSubtable_3_4
-#define SingleSubstitutionFormat1Subtable SingleSubstitutionFormat1Subtable_3_4
-#define SingleSubstitutionFormat2Subtable SingleSubstitutionFormat2Subtable_3_4
-#define SingleSubstitutionSubtable SingleSubstitutionSubtable_3_4
-#define SingleTableProcessor SingleTableProcessor_3_4
-#define Spec Spec_3_4
-#define StateTableProcessor StateTableProcessor_3_4
-#define StringCharacterIterator StringCharacterIterator_3_4
-#define StringEnumeration StringEnumeration_3_4
-#define StringLocalizationInfo StringLocalizationInfo_3_4
-#define StringMatcher StringMatcher_3_4
-#define StringPair StringPair_3_4
-#define StringReplacer StringReplacer_3_4
-#define StringSearch StringSearch_3_4
-#define StyleRuns StyleRuns_3_4
-#define SubstitutionLookup SubstitutionLookup_3_4
-#define SubtableProcessor SubtableProcessor_3_4
-#define SunTimeAngleFunc SunTimeAngleFunc_3_4
-#define SymbolTable SymbolTable_3_4
-#define TZEnumeration TZEnumeration_3_4
-#define ThaiLayoutEngine ThaiLayoutEngine_3_4
-#define ThaiShaping ThaiShaping_3_4
-#define TimeZone TimeZone_3_4
-#define TitlecaseTransliterator TitlecaseTransliterator_3_4
-#define TransliterationRule TransliterationRule_3_4
-#define TransliterationRuleData TransliterationRuleData_3_4
-#define TransliterationRuleSet TransliterationRuleSet_3_4
-#define Transliterator Transliterator_3_4
-#define TransliteratorAlias TransliteratorAlias_3_4
-#define TransliteratorIDParser TransliteratorIDParser_3_4
-#define TransliteratorParser TransliteratorParser_3_4
-#define TransliteratorRegistry TransliteratorRegistry_3_4
-#define TrimmedArrayProcessor TrimmedArrayProcessor_3_4
-#define UCharCharacterIterator UCharCharacterIterator_3_4
-#define UMemory UMemory_3_4
-#define UObject UObject_3_4
-#define URegularExpression URegularExpression_3_4
-#define UStack UStack_3_4
-#define UStringEnumeration UStringEnumeration_3_4
-#define UVector UVector_3_4
-#define UVector32 UVector32_3_4
-#define UnescapeTransliterator UnescapeTransliterator_3_4
-#define UnicodeArabicOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine_3_4
-#define UnicodeFilter UnicodeFilter_3_4
-#define UnicodeFunctor UnicodeFunctor_3_4
-#define UnicodeMatcher UnicodeMatcher_3_4
-#define UnicodeNameTransliterator UnicodeNameTransliterator_3_4
-#define UnicodeReplacer UnicodeReplacer_3_4
-#define UnicodeSet UnicodeSet_3_4
-#define UnicodeSetIterator UnicodeSetIterator_3_4
-#define UnicodeString UnicodeString_3_4
-#define UppercaseTransliterator UppercaseTransliterator_3_4
-#define ValueRecord ValueRecord_3_4
-#define ValueRuns ValueRuns_3_4
-#define locale_set_default_internal locale_set_default_internal_3_4
-#define uprv_parseCurrency uprv_parseCurrency_3_4
-#define util64_fromDouble util64_fromDouble_3_4
-#define util64_pow util64_pow_3_4
-#define util64_tou util64_tou_3_4
+#define AbsoluteValueSubstitution AbsoluteValueSubstitution_3_6
+#define AlternateSubstitutionSubtable AlternateSubstitutionSubtable_3_6
+#define AnchorTable AnchorTable_3_6
+#define AnyTransliterator AnyTransliterator_3_6
+#define ArabicOpenTypeLayoutEngine ArabicOpenTypeLayoutEngine_3_6
+#define ArabicShaping ArabicShaping_3_6
+#define BasicCalendarFactory BasicCalendarFactory_3_6
+#define BinarySearchLookupTable BinarySearchLookupTable_3_6
+#define BreakIterator BreakIterator_3_6
+#define BuddhistCalendar BuddhistCalendar_3_6
+#define BuildCompactTrieHorizontalNode BuildCompactTrieHorizontalNode_3_6
+#define BuildCompactTrieNode BuildCompactTrieNode_3_6
+#define BuildCompactTrieVerticalNode BuildCompactTrieVerticalNode_3_6
+#define CFactory CFactory_3_6
+#define Calendar Calendar_3_6
+#define CalendarAstronomer CalendarAstronomer_3_6
+#define CalendarCache CalendarCache_3_6
+#define CalendarData CalendarData_3_6
+#define CalendarService CalendarService_3_6
+#define CanonShaping CanonShaping_3_6
+#define CanonicalIterator CanonicalIterator_3_6
+#define CaseMapTransliterator CaseMapTransliterator_3_6
+#define ChainingContextualSubstitutionFormat1Subtable ChainingContextualSubstitutionFormat1Subtable_3_6
+#define ChainingContextualSubstitutionFormat2Subtable ChainingContextualSubstitutionFormat2Subtable_3_6
+#define ChainingContextualSubstitutionFormat3Subtable ChainingContextualSubstitutionFormat3Subtable_3_6
+#define ChainingContextualSubstitutionSubtable ChainingContextualSubstitutionSubtable_3_6
+#define CharSubstitutionFilter CharSubstitutionFilter_3_6
+#define CharacterIterator CharacterIterator_3_6
+#define CharsetDetector CharsetDetector_3_6
+#define CharsetMatch CharsetMatch_3_6
+#define CharsetRecog_2022 CharsetRecog_2022_3_6
+#define CharsetRecog_2022CN CharsetRecog_2022CN_3_6
+#define CharsetRecog_2022JP CharsetRecog_2022JP_3_6
+#define CharsetRecog_2022KR CharsetRecog_2022KR_3_6
+#define CharsetRecog_8859_1 CharsetRecog_8859_1_3_6
+#define CharsetRecog_8859_1_da CharsetRecog_8859_1_da_3_6
+#define CharsetRecog_8859_1_de CharsetRecog_8859_1_de_3_6
+#define CharsetRecog_8859_1_en CharsetRecog_8859_1_en_3_6
+#define CharsetRecog_8859_1_es CharsetRecog_8859_1_es_3_6
+#define CharsetRecog_8859_1_fr CharsetRecog_8859_1_fr_3_6
+#define CharsetRecog_8859_1_it CharsetRecog_8859_1_it_3_6
+#define CharsetRecog_8859_1_nl CharsetRecog_8859_1_nl_3_6
+#define CharsetRecog_8859_1_no CharsetRecog_8859_1_no_3_6
+#define CharsetRecog_8859_1_pt CharsetRecog_8859_1_pt_3_6
+#define CharsetRecog_8859_1_sv CharsetRecog_8859_1_sv_3_6
+#define CharsetRecog_8859_2 CharsetRecog_8859_2_3_6
+#define CharsetRecog_8859_2_cs CharsetRecog_8859_2_cs_3_6
+#define CharsetRecog_8859_2_hu CharsetRecog_8859_2_hu_3_6
+#define CharsetRecog_8859_2_pl CharsetRecog_8859_2_pl_3_6
+#define CharsetRecog_8859_2_ro CharsetRecog_8859_2_ro_3_6
+#define CharsetRecog_8859_5 CharsetRecog_8859_5_3_6
+#define CharsetRecog_8859_5_ru CharsetRecog_8859_5_ru_3_6
+#define CharsetRecog_8859_6 CharsetRecog_8859_6_3_6
+#define CharsetRecog_8859_6_ar CharsetRecog_8859_6_ar_3_6
+#define CharsetRecog_8859_7 CharsetRecog_8859_7_3_6
+#define CharsetRecog_8859_7_el CharsetRecog_8859_7_el_3_6
+#define CharsetRecog_8859_8 CharsetRecog_8859_8_3_6
+#define CharsetRecog_8859_8_I_he CharsetRecog_8859_8_I_he_3_6
+#define CharsetRecog_8859_8_he CharsetRecog_8859_8_he_3_6
+#define CharsetRecog_8859_9 CharsetRecog_8859_9_3_6
+#define CharsetRecog_8859_9_tr CharsetRecog_8859_9_tr_3_6
+#define CharsetRecog_KOI8_R CharsetRecog_KOI8_R_3_6
+#define CharsetRecog_UTF8 CharsetRecog_UTF8_3_6
+#define CharsetRecog_UTF_16_BE CharsetRecog_UTF_16_BE_3_6
+#define CharsetRecog_UTF_16_LE CharsetRecog_UTF_16_LE_3_6
+#define CharsetRecog_UTF_32 CharsetRecog_UTF_32_3_6
+#define CharsetRecog_UTF_32_BE CharsetRecog_UTF_32_BE_3_6
+#define CharsetRecog_UTF_32_LE CharsetRecog_UTF_32_LE_3_6
+#define CharsetRecog_Unicode CharsetRecog_Unicode_3_6
+#define CharsetRecog_big5 CharsetRecog_big5_3_6
+#define CharsetRecog_euc CharsetRecog_euc_3_6
+#define CharsetRecog_euc_jp CharsetRecog_euc_jp_3_6
+#define CharsetRecog_euc_kr CharsetRecog_euc_kr_3_6
+#define CharsetRecog_gb_18030 CharsetRecog_gb_18030_3_6
+#define CharsetRecog_mbcs CharsetRecog_mbcs_3_6
+#define CharsetRecog_sbcs CharsetRecog_sbcs_3_6
+#define CharsetRecog_sjis CharsetRecog_sjis_3_6
+#define CharsetRecog_windows_1251 CharsetRecog_windows_1251_3_6
+#define CharsetRecog_windows_1256 CharsetRecog_windows_1256_3_6
+#define CharsetRecognizer CharsetRecognizer_3_6
+#define ChoiceFormat ChoiceFormat_3_6
+#define ClassDefFormat1Table ClassDefFormat1Table_3_6
+#define ClassDefFormat2Table ClassDefFormat2Table_3_6
+#define ClassDefinitionTable ClassDefinitionTable_3_6
+#define CollationElementIterator CollationElementIterator_3_6
+#define CollationKey CollationKey_3_6
+#define Collator Collator_3_6
+#define CollatorFactory CollatorFactory_3_6
+#define CompactTrieDictionary CompactTrieDictionary_3_6
+#define CompactTrieEnumeration CompactTrieEnumeration_3_6
+#define CompoundTransliterator CompoundTransliterator_3_6
+#define ContextualGlyphSubstitutionProcessor ContextualGlyphSubstitutionProcessor_3_6
+#define ContextualSubstitutionBase ContextualSubstitutionBase_3_6
+#define ContextualSubstitutionFormat1Subtable ContextualSubstitutionFormat1Subtable_3_6
+#define ContextualSubstitutionFormat2Subtable ContextualSubstitutionFormat2Subtable_3_6
+#define ContextualSubstitutionFormat3Subtable ContextualSubstitutionFormat3Subtable_3_6
+#define ContextualSubstitutionSubtable ContextualSubstitutionSubtable_3_6
+#define CoverageFormat1Table CoverageFormat1Table_3_6
+#define CoverageFormat2Table CoverageFormat2Table_3_6
+#define CoverageTable CoverageTable_3_6
+#define CurrencyAmount CurrencyAmount_3_6
+#define CurrencyFormat CurrencyFormat_3_6
+#define CurrencyUnit CurrencyUnit_3_6
+#define CursiveAttachmentSubtable CursiveAttachmentSubtable_3_6
+#define DateFormat DateFormat_3_6
+#define DateFormatSymbols DateFormatSymbols_3_6
+#define DecimalFormat DecimalFormat_3_6
+#define DecimalFormatSymbols DecimalFormatSymbols_3_6
+#define DefaultCalendarFactory DefaultCalendarFactory_3_6
+#define DefaultCharMapper DefaultCharMapper_3_6
+#define DeviceTable DeviceTable_3_6
+#define DictionaryBreakEngine DictionaryBreakEngine_3_6
+#define DigitList DigitList_3_6
+#define Entry Entry_3_6
+#define EnumToOffset EnumToOffset_3_6
+#define EscapeTransliterator EscapeTransliterator_3_6
+#define EventListener EventListener_3_6
+#define ExtensionSubtable ExtensionSubtable_3_6
+#define FeatureListTable FeatureListTable_3_6
+#define FieldPosition FieldPosition_3_6
+#define FontRuns FontRuns_3_6
+#define Format Format_3_6
+#define Format1AnchorTable Format1AnchorTable_3_6
+#define Format2AnchorTable Format2AnchorTable_3_6
+#define Format3AnchorTable Format3AnchorTable_3_6
+#define Formattable Formattable_3_6
+#define ForwardCharacterIterator ForwardCharacterIterator_3_6
+#define FractionalPartSubstitution FractionalPartSubstitution_3_6
+#define FunctionReplacer FunctionReplacer_3_6
+#define GDEFMarkFilter GDEFMarkFilter_3_6
+#define GXLayoutEngine GXLayoutEngine_3_6
+#define GlyphDefinitionTableHeader GlyphDefinitionTableHeader_3_6
+#define GlyphIterator GlyphIterator_3_6
+#define GlyphLookupTableHeader GlyphLookupTableHeader_3_6
+#define GlyphPositionAdjustments GlyphPositionAdjustments_3_6
+#define GlyphPositioningLookupProcessor GlyphPositioningLookupProcessor_3_6
+#define GlyphPositioningTableHeader GlyphPositioningTableHeader_3_6
+#define GlyphSubstitutionLookupProcessor GlyphSubstitutionLookupProcessor_3_6
+#define GlyphSubstitutionTableHeader GlyphSubstitutionTableHeader_3_6
+#define Grego Grego_3_6
+#define GregorianCalendar GregorianCalendar_3_6
+#define HanOpenTypeLayoutEngine HanOpenTypeLayoutEngine_3_6
+#define HangulOpenTypeLayoutEngine HangulOpenTypeLayoutEngine_3_6
+#define HebrewCalendar HebrewCalendar_3_6
+#define ICUBreakIteratorFactory ICUBreakIteratorFactory_3_6
+#define ICUBreakIteratorService ICUBreakIteratorService_3_6
+#define ICUCollatorFactory ICUCollatorFactory_3_6
+#define ICUCollatorService ICUCollatorService_3_6
+#define ICULanguageBreakFactory ICULanguageBreakFactory_3_6
+#define ICULocaleService ICULocaleService_3_6
+#define ICUNotifier ICUNotifier_3_6
+#define ICUNumberFormatFactory ICUNumberFormatFactory_3_6
+#define ICUNumberFormatService ICUNumberFormatService_3_6
+#define ICUResourceBundleFactory ICUResourceBundleFactory_3_6
+#define ICUService ICUService_3_6
+#define ICUServiceFactory ICUServiceFactory_3_6
+#define ICUServiceKey ICUServiceKey_3_6
+#define ICU_Utility ICU_Utility_3_6
+#define IndicClassTable IndicClassTable_3_6
+#define IndicOpenTypeLayoutEngine IndicOpenTypeLayoutEngine_3_6
+#define IndicRearrangementProcessor IndicRearrangementProcessor_3_6
+#define IndicReordering IndicReordering_3_6
+#define InputText InputText_3_6
+#define IntegralPartSubstitution IntegralPartSubstitution_3_6
+#define IslamicCalendar IslamicCalendar_3_6
+#define IteratedChar IteratedChar_3_6
+#define JapaneseCalendar JapaneseCalendar_3_6
+#define KernTable KernTable_3_6
+#define KeywordEnumeration KeywordEnumeration_3_6
+#define KhmerClassTable KhmerClassTable_3_6
+#define KhmerOpenTypeLayoutEngine KhmerOpenTypeLayoutEngine_3_6
+#define KhmerReordering KhmerReordering_3_6
+#define LECharMapper LECharMapper_3_6
+#define LEFontInstance LEFontInstance_3_6
+#define LEGlyphFilter LEGlyphFilter_3_6
+#define LEGlyphStorage LEGlyphStorage_3_6
+#define LEInsertionCallback LEInsertionCallback_3_6
+#define LEInsertionList LEInsertionList_3_6
+#define LXUtilities LXUtilities_3_6
+#define LanguageBreakEngine LanguageBreakEngine_3_6
+#define LanguageBreakFactory LanguageBreakFactory_3_6
+#define LayoutEngine LayoutEngine_3_6
+#define LigatureSubstitutionProcessor LigatureSubstitutionProcessor_3_6
+#define LigatureSubstitutionSubtable LigatureSubstitutionSubtable_3_6
+#define LocDataParser LocDataParser_3_6
+#define Locale Locale_3_6
+#define LocaleBased LocaleBased_3_6
+#define LocaleKey LocaleKey_3_6
+#define LocaleKeyFactory LocaleKeyFactory_3_6
+#define LocaleRuns LocaleRuns_3_6
+#define LocaleUtility LocaleUtility_3_6
+#define LocalizationInfo LocalizationInfo_3_6
+#define LookupListTable LookupListTable_3_6
+#define LookupProcessor LookupProcessor_3_6
+#define LookupSubtable LookupSubtable_3_6
+#define LookupTable LookupTable_3_6
+#define LowercaseTransliterator LowercaseTransliterator_3_6
+#define MPreFixups MPreFixups_3_6
+#define MarkArray MarkArray_3_6
+#define MarkToBasePositioningSubtable MarkToBasePositioningSubtable_3_6
+#define MarkToLigaturePositioningSubtable MarkToLigaturePositioningSubtable_3_6
+#define MarkToMarkPositioningSubtable MarkToMarkPositioningSubtable_3_6
+#define Math Math_3_6
+#define Measure Measure_3_6
+#define MeasureFormat MeasureFormat_3_6
+#define MeasureUnit MeasureUnit_3_6
+#define MessageFormat MessageFormat_3_6
+#define MessageFormatAdapter MessageFormatAdapter_3_6
+#define ModulusSubstitution ModulusSubstitution_3_6
+#define MoonRiseSetCoordFunc MoonRiseSetCoordFunc_3_6
+#define MoonTimeAngleFunc MoonTimeAngleFunc_3_6
+#define MorphSubtableHeader MorphSubtableHeader_3_6
+#define MorphTableHeader MorphTableHeader_3_6
+#define MultipleSubstitutionSubtable MultipleSubstitutionSubtable_3_6
+#define MultiplierSubstitution MultiplierSubstitution_3_6
+#define MutableTrieDictionary MutableTrieDictionary_3_6
+#define MutableTrieEnumeration MutableTrieEnumeration_3_6
+#define NFFactory NFFactory_3_6
+#define NFRule NFRule_3_6
+#define NFRuleSet NFRuleSet_3_6
+#define NFSubstitution NFSubstitution_3_6
+#define NGramParser NGramParser_3_6
+#define NameToEnum NameToEnum_3_6
+#define NameUnicodeTransliterator NameUnicodeTransliterator_3_6
+#define NonContextualGlyphSubstitutionProcessor NonContextualGlyphSubstitutionProcessor_3_6
+#define NonContiguousEnumToOffset NonContiguousEnumToOffset_3_6
+#define NormalizationTransliterator NormalizationTransliterator_3_6
+#define Normalizer Normalizer_3_6
+#define NullSubstitution NullSubstitution_3_6
+#define NullTransliterator NullTransliterator_3_6
+#define NumberFormat NumberFormat_3_6
+#define NumberFormatFactory NumberFormatFactory_3_6
+#define NumeratorSubstitution NumeratorSubstitution_3_6
+#define OlsonTimeZone OlsonTimeZone_3_6
+#define OpenTypeLayoutEngine OpenTypeLayoutEngine_3_6
+#define OpenTypeUtilities OpenTypeUtilities_3_6
+#define PairPositioningFormat1Subtable PairPositioningFormat1Subtable_3_6
+#define PairPositioningFormat2Subtable PairPositioningFormat2Subtable_3_6
+#define PairPositioningSubtable PairPositioningSubtable_3_6
+#define ParagraphLayout ParagraphLayout_3_6
+#define ParseData ParseData_3_6
+#define ParsePosition ParsePosition_3_6
+#define PropertyAliases PropertyAliases_3_6
+#define Quantifier Quantifier_3_6
+#define RBBIDataWrapper RBBIDataWrapper_3_6
+#define RBBINode RBBINode_3_6
+#define RBBIRuleBuilder RBBIRuleBuilder_3_6
+#define RBBIRuleScanner RBBIRuleScanner_3_6
+#define RBBISetBuilder RBBISetBuilder_3_6
+#define RBBIStateDescriptor RBBIStateDescriptor_3_6
+#define RBBISymbolTable RBBISymbolTable_3_6
+#define RBBISymbolTableEntry RBBISymbolTableEntry_3_6
+#define RBBITableBuilder RBBITableBuilder_3_6
+#define RangeDescriptor RangeDescriptor_3_6
+#define RegexCompile RegexCompile_3_6
+#define RegexMatcher RegexMatcher_3_6
+#define RegexPattern RegexPattern_3_6
+#define RegexStaticSets RegexStaticSets_3_6
+#define RemoveTransliterator RemoveTransliterator_3_6
+#define Replaceable Replaceable_3_6
+#define ReplaceableGlue ReplaceableGlue_3_6
+#define ResourceBundle ResourceBundle_3_6
+#define RiseSetCoordFunc RiseSetCoordFunc_3_6
+#define RuleBasedBreakIterator RuleBasedBreakIterator_3_6
+#define RuleBasedCollator RuleBasedCollator_3_6
+#define RuleBasedNumberFormat RuleBasedNumberFormat_3_6
+#define RuleBasedTransliterator RuleBasedTransliterator_3_6
+#define RuleCharacterIterator RuleCharacterIterator_3_6
+#define RuleHalf RuleHalf_3_6
+#define RunArray RunArray_3_6
+#define SameValueSubstitution SameValueSubstitution_3_6
+#define ScriptListTable ScriptListTable_3_6
+#define ScriptRunIterator ScriptRunIterator_3_6
+#define ScriptTable ScriptTable_3_6
+#define SearchIterator SearchIterator_3_6
+#define SegmentArrayProcessor SegmentArrayProcessor_3_6
+#define SegmentSingleProcessor SegmentSingleProcessor_3_6
+#define ServiceEnumeration ServiceEnumeration_3_6
+#define ServiceListener ServiceListener_3_6
+#define SimpleArrayProcessor SimpleArrayProcessor_3_6
+#define SimpleDateFormat SimpleDateFormat_3_6
+#define SimpleFactory SimpleFactory_3_6
+#define SimpleLocaleKeyFactory SimpleLocaleKeyFactory_3_6
+#define SimpleNumberFormatFactory SimpleNumberFormatFactory_3_6
+#define SimpleTimeZone SimpleTimeZone_3_6
+#define SinglePositioningFormat1Subtable SinglePositioningFormat1Subtable_3_6
+#define SinglePositioningFormat2Subtable SinglePositioningFormat2Subtable_3_6
+#define SinglePositioningSubtable SinglePositioningSubtable_3_6
+#define SingleSubstitutionFormat1Subtable SingleSubstitutionFormat1Subtable_3_6
+#define SingleSubstitutionFormat2Subtable SingleSubstitutionFormat2Subtable_3_6
+#define SingleSubstitutionSubtable SingleSubstitutionSubtable_3_6
+#define SingleTableProcessor SingleTableProcessor_3_6
+#define Spec Spec_3_6
+#define StateTableProcessor StateTableProcessor_3_6
+#define StringCharacterIterator StringCharacterIterator_3_6
+#define StringEnumeration StringEnumeration_3_6
+#define StringLocalizationInfo StringLocalizationInfo_3_6
+#define StringMatcher StringMatcher_3_6
+#define StringPair StringPair_3_6
+#define StringReplacer StringReplacer_3_6
+#define StringSearch StringSearch_3_6
+#define StyleRuns StyleRuns_3_6
+#define SubstitutionLookup SubstitutionLookup_3_6
+#define SubtableProcessor SubtableProcessor_3_6
+#define SunTimeAngleFunc SunTimeAngleFunc_3_6
+#define SymbolTable SymbolTable_3_6
+#define TZEnumeration TZEnumeration_3_6
+#define TernaryNode TernaryNode_3_6
+#define ThaiBreakEngine ThaiBreakEngine_3_6
+#define ThaiLayoutEngine ThaiLayoutEngine_3_6
+#define ThaiShaping ThaiShaping_3_6
+#define TibetanClassTable TibetanClassTable_3_6
+#define TibetanOpenTypeLayoutEngine TibetanOpenTypeLayoutEngine_3_6
+#define TibetanReordering TibetanReordering_3_6
+#define TimeZone TimeZone_3_6
+#define TimeZoneKeysEnumeration TimeZoneKeysEnumeration_3_6
+#define TitlecaseTransliterator TitlecaseTransliterator_3_6
+#define TransliterationRule TransliterationRule_3_6
+#define TransliterationRuleData TransliterationRuleData_3_6
+#define TransliterationRuleSet TransliterationRuleSet_3_6
+#define Transliterator Transliterator_3_6
+#define TransliteratorAlias TransliteratorAlias_3_6
+#define TransliteratorIDParser TransliteratorIDParser_3_6
+#define TransliteratorParser TransliteratorParser_3_6
+#define TransliteratorRegistry TransliteratorRegistry_3_6
+#define TrieWordDictionary TrieWordDictionary_3_6
+#define TrimmedArrayProcessor TrimmedArrayProcessor_3_6
+#define UCharCharacterIterator UCharCharacterIterator_3_6
+#define UMemory UMemory_3_6
+#define UObject UObject_3_6
+#define URegularExpression URegularExpression_3_6
+#define UStack UStack_3_6
+#define UStringEnumeration UStringEnumeration_3_6
+#define UVector UVector_3_6
+#define UVector32 UVector32_3_6
+#define UnescapeTransliterator UnescapeTransliterator_3_6
+#define UnhandledEngine UnhandledEngine_3_6
+#define UnicodeArabicOpenTypeLayoutEngine UnicodeArabicOpenTypeLayoutEngine_3_6
+#define UnicodeFilter UnicodeFilter_3_6
+#define UnicodeFunctor UnicodeFunctor_3_6
+#define UnicodeMatcher UnicodeMatcher_3_6
+#define UnicodeNameTransliterator UnicodeNameTransliterator_3_6
+#define UnicodeReplacer UnicodeReplacer_3_6
+#define UnicodeSet UnicodeSet_3_6
+#define UnicodeSetIterator UnicodeSetIterator_3_6
+#define UnicodeString UnicodeString_3_6
+#define UppercaseTransliterator UppercaseTransliterator_3_6
+#define ValueRecord ValueRecord_3_6
+#define ValueRuns ValueRuns_3_6
+#define locale_set_default_internal locale_set_default_internal_3_6
+#define util64_fromDouble util64_fromDouble_3_6
+#define util64_pow util64_pow_3_6
+#define util64_tou util64_tou_3_6
#endif
#endif
diff --git a/Build/source/libs/icu-xetex/common/unicode/ures.h b/Build/source/libs/icu-xetex/common/unicode/ures.h
index 2bf97d77dee..f6e3b347b13 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ures.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ures.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -82,6 +82,8 @@ typedef enum {
*/
URES_ALIAS=3,
+#ifndef U_HIDE_INTERNAL_API
+
/**
* Internal use only.
* Alternative resource type constant for tables of key-value pairs.
@@ -90,6 +92,8 @@ typedef enum {
*/
URES_TABLE32=4,
+#endif /* U_HIDE_INTERNAL_API */
+
/**
* Resource type constant for a single 28-bit integer, interpreted as
* signed or unsigned by the ures_getInt() or ures_getUInt() function.
@@ -107,8 +111,7 @@ typedef enum {
* @see ures_getIntVector
* @stable ICU 2.6
*/
- URES_INT_VECTOR=14,
-
+ URES_INT_VECTOR = 14,
#ifndef U_HIDE_DEPRECATED_API
/** @deprecated ICU 2.6 Use the URES_ constant instead. */
RES_NONE=URES_NONE,
@@ -126,10 +129,11 @@ typedef enum {
RES_ARRAY=URES_ARRAY,
/** @deprecated ICU 2.6 Use the URES_ constant instead. */
RES_INT_VECTOR=URES_INT_VECTOR,
+ /** @deprecated ICU 2.6 Not used. */
+ RES_RESERVED=15,
#endif /* U_HIDE_DEPRECATED_API */
- /** @deprecated ICU 2.6 Not used. */
- RES_RESERVED=15
+ URES_LIMIT = 16
} UResType;
/*
@@ -299,9 +303,9 @@ ures_getLocale(const UResourceBundle* resourceBundle,
* ULocDataLocaleType in uloc.h
* @param status just for catching illegal arguments
* @return A Locale name
- * @draft ICU 2.8 likely to change in the future
+ * @stable ICU 2.8
*/
-U_DRAFT const char* U_EXPORT2
+U_STABLE const char* U_EXPORT2
ures_getLocaleByType(const UResourceBundle* resourceBundle,
ULocDataLocaleType type,
UErrorCode* status);
@@ -352,6 +356,59 @@ ures_getString(const UResourceBundle* resourceBundle,
UErrorCode* status);
/**
+ * Returns a UTF-8 string from a string resource.
+ * The UTF-8 string may be returnable directly as a pointer, or
+ * it may need to be copied, or transformed from UTF-16 using u_strToUTF8()
+ * or equivalent.
+ *
+ * If forceCopy==TRUE, then the string is always written to the dest buffer
+ * and dest is returned.
+ *
+ * If forceCopy==FALSE, then the string is returned as a pointer if possible,
+ * without needing a dest buffer (it can be NULL). If the string needs to be
+ * copied or transformed, then it may be placed into dest at an arbitrary offset.
+ *
+ * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual.
+ *
+ * If the string is transformed from UTF-16, then a conversion error may occur
+ * if an unpaired surrogate is encountered. If the function is successful, then
+ * the output UTF-8 string is always well-formed.
+ *
+ * @param resB Resource bundle.
+ * @param dest Destination buffer. Can be NULL only if capacity=*length==0.
+ * @param length Input: Capacity of destination buffer.
+ * Output: Actual length of the UTF-8 string, not counting the
+ * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR.
+ * Can be NULL, meaning capacity=0 and the string length is not
+ * returned to the caller.
+ * @param forceCopy If TRUE, then the output string will always be written to
+ * dest, with U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING set if appropriate.
+ * If FALSE, then the dest buffer may or may not contain a
+ * copy of the string. dest may or may not be modified.
+ * If a copy needs to be written, then the UErrorCode parameter
+ * indicates overflow etc. as usual.
+ * @param status Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to the UTF-8 string. It may be dest, or at some offset
+ * from dest (only if !forceCopy), or in unrelated memory.
+ * Always NUL-terminated unless the string was written to dest and
+ * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set).
+ *
+ * @see ures_getString
+ * @see u_strToUTF8
+ * @draft ICU 3.6
+ */
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8String(const UResourceBundle *resB,
+ char *dest, int32_t *length,
+ UBool forceCopy,
+ UErrorCode *status);
+
+/**
* Returns a binary data from a binary resource.
*
* @param resourceBundle a string resource
@@ -498,11 +555,11 @@ ures_hasNext(const UResourceBundle *resourceBundle);
* to iterate over. Features a fill-in parameter.
*
* @param resourceBundle a resource
- * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller.
+ * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller.
* Alternatively, you can supply a struct to be filled by this function.
* @param status fills in the outgoing error code. You may still get a non NULL result even if an
* error occured. Check status instead.
- * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
+ * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it
* @stable ICU 2.0
*/
U_STABLE UResourceBundle* U_EXPORT2
@@ -533,11 +590,11 @@ ures_getNextString(UResourceBundle *resourceBundle,
*
* @param resourceBundle the resource bundle from which to get a sub-resource
* @param indexR an index to the wanted resource.
- * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller.
+ * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller.
* Alternatively, you can supply a struct to be filled by this function.
* @param status fills in the outgoing error code. Don't count on NULL being returned if an error has
* occured. Check status instead.
- * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
+ * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it
* @stable ICU 2.0
*/
U_STABLE UResourceBundle* U_EXPORT2
@@ -564,15 +621,70 @@ ures_getStringByIndex(const UResourceBundle *resourceBundle,
UErrorCode *status);
/**
+ * Returns a UTF-8 string from a resource at the specified index.
+ * The UTF-8 string may be returnable directly as a pointer, or
+ * it may need to be copied, or transformed from UTF-16 using u_strToUTF8()
+ * or equivalent.
+ *
+ * If forceCopy==TRUE, then the string is always written to the dest buffer
+ * and dest is returned.
+ *
+ * If forceCopy==FALSE, then the string is returned as a pointer if possible,
+ * without needing a dest buffer (it can be NULL). If the string needs to be
+ * copied or transformed, then it may be placed into dest at an arbitrary offset.
+ *
+ * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual.
+ *
+ * If the string is transformed from UTF-16, then a conversion error may occur
+ * if an unpaired surrogate is encountered. If the function is successful, then
+ * the output UTF-8 string is always well-formed.
+ *
+ * @param resB Resource bundle.
+ * @param index An index to the wanted string.
+ * @param dest Destination buffer. Can be NULL only if capacity=*length==0.
+ * @param pLength Input: Capacity of destination buffer.
+ * Output: Actual length of the UTF-8 string, not counting the
+ * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR.
+ * Can be NULL, meaning capacity=0 and the string length is not
+ * returned to the caller.
+ * @param forceCopy If TRUE, then the output string will always be written to
+ * dest, with U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING set if appropriate.
+ * If FALSE, then the dest buffer may or may not contain a
+ * copy of the string. dest may or may not be modified.
+ * If a copy needs to be written, then the UErrorCode parameter
+ * indicates overflow etc. as usual.
+ * @param status Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to the UTF-8 string. It may be dest, or at some offset
+ * from dest (only if !forceCopy), or in unrelated memory.
+ * Always NUL-terminated unless the string was written to dest and
+ * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set).
+ *
+ * @see ures_getStringByIndex
+ * @see u_strToUTF8
+ * @draft ICU 3.6
+ */
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8StringByIndex(const UResourceBundle *resB,
+ int32_t index,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status);
+
+/**
* Returns a resource in a given resource that has a given key. This procedure works only with table
* resources. Features a fill-in parameter.
*
* @param resourceBundle a resource
* @param key a key associated with the wanted resource
- * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller.
+ * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller.
* Alternatively, you can supply a struct to be filled by this function.
* @param status fills in the outgoing error code.
- * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
+ * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it
* @stable ICU 2.0
*/
U_STABLE UResourceBundle* U_EXPORT2
@@ -599,6 +711,63 @@ ures_getStringByKey(const UResourceBundle *resB,
int32_t* len,
UErrorCode *status);
+/**
+ * Returns a UTF-8 string from a resource and a key.
+ * This function works only with table resources.
+ *
+ * The UTF-8 string may be returnable directly as a pointer, or
+ * it may need to be copied, or transformed from UTF-16 using u_strToUTF8()
+ * or equivalent.
+ *
+ * If forceCopy==TRUE, then the string is always written to the dest buffer
+ * and dest is returned.
+ *
+ * If forceCopy==FALSE, then the string is returned as a pointer if possible,
+ * without needing a dest buffer (it can be NULL). If the string needs to be
+ * copied or transformed, then it may be placed into dest at an arbitrary offset.
+ *
+ * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual.
+ *
+ * If the string is transformed from UTF-16, then a conversion error may occur
+ * if an unpaired surrogate is encountered. If the function is successful, then
+ * the output UTF-8 string is always well-formed.
+ *
+ * @param resB Resource bundle.
+ * @param key A key associated with the wanted resource
+ * @param dest Destination buffer. Can be NULL only if capacity=*length==0.
+ * @param pLength Input: Capacity of destination buffer.
+ * Output: Actual length of the UTF-8 string, not counting the
+ * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR.
+ * Can be NULL, meaning capacity=0 and the string length is not
+ * returned to the caller.
+ * @param forceCopy If TRUE, then the output string will always be written to
+ * dest, with U_BUFFER_OVERFLOW_ERROR and
+ * U_STRING_NOT_TERMINATED_WARNING set if appropriate.
+ * If FALSE, then the dest buffer may or may not contain a
+ * copy of the string. dest may or may not be modified.
+ * If a copy needs to be written, then the UErrorCode parameter
+ * indicates overflow etc. as usual.
+ * @param status Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to the UTF-8 string. It may be dest, or at some offset
+ * from dest (only if !forceCopy), or in unrelated memory.
+ * Always NUL-terminated unless the string was written to dest and
+ * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set).
+ *
+ * @see ures_getStringByKey
+ * @see u_strToUTF8
+ * @draft ICU 3.6
+ */
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8StringByKey(const UResourceBundle *resB,
+ const char *key,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status);
+
#ifdef XP_CPLUSPLUS
#include "unicode/unistr.h"
@@ -606,12 +775,12 @@ U_NAMESPACE_BEGIN
/**
* returns a string from a string resource type
*
- * @param resB a resource
+ * @param resB a resource
* @param status: fills in the outgoing error code
* could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
* could be a non-failing error
* e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
- * @return an UnicodeString object. If there is an error, string is bogus
+ * @return a UnicodeString object. If there is an error, string is bogus
* @stable ICU 2.0
*/
inline UnicodeString
@@ -686,40 +855,15 @@ U_NAMESPACE_END
#endif
-
-/**
- * Get a resource with multi-level fallback. Normally only the top level resources will
- * fallback to its parent. This performs fallback on subresources. For example, when a table
- * is defined in a resource bundle and a parent resource bundle, normally no fallback occurs
- * on the sub-resources because the table is defined in the current resource bundle, but this
- * function can perform fallback on the sub-resources of the table.
- * @param resB a resource
- * @param inKey a key associated with the requested resource
- * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller.
- * Alternatively, you can supply a struct to be filled by this function.
- * @param status: fills in the outgoing error code
- * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
- * could be a non-failing error
- * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
- * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
- * @internal ICU 3.0
- */
-U_INTERNAL UResourceBundle* U_EXPORT2
-ures_getByKeyWithFallback(const UResourceBundle *resB,
- const char* inKey,
- UResourceBundle *fillIn,
- UErrorCode *status);
-
-
/**
* Create a string enumerator, owned by the caller, of all locales located within
* the specified resource tree.
* @param packageName name of the tree, such as (NULL) or U_ICUDATA_ALIAS or or "ICUDATA-coll"
* This call is similar to uloc_getAvailable().
* @param status error code
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ures_openAvailableLocales(const char *packageName, UErrorCode *status);
diff --git a/Build/source/libs/icu-xetex/common/unicode/uscript.h b/Build/source/libs/icu-xetex/common/unicode/uscript.h
index 3420299a023..d7cbc38eb38 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uscript.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uscript.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -22,7 +22,23 @@
*/
/**
- * Constants for Unicode script values from ScriptNames.txt.
+ * Constants for ISO 15924 script codes.
+ *
+ * Many of these script codes - those from Unicode's ScriptNames.txt -
+ * are character property values for Unicode's Script property.
+ * See UAX #24 Script Names (http://www.unicode.org/reports/tr24/).
+ *
+ * Starting with ICU 3.6, constants for most ISO 15924 script codes
+ * are included (currently excluding private-use codes Qaaa..Qabx).
+ * For scripts for which there are codes in ISO 15924 but which are not
+ * used in the Unicode Character Database (UCD), there are no Unicode characters
+ * associated with those scripts.
+ *
+ * For example, there are no characters that have a UCD script code of
+ * Hans or Hant. All Han ideographs have the Hani script code.
+ * The Hans and Hant script codes are used with CLDR data.
+ *
+ * ISO 15924 script codes are included for use with CLDR and similar.
*
* @stable ICU 2.2
*/
@@ -36,11 +52,11 @@ typedef enum UScriptCode {
USCRIPT_BOPOMOFO = 5, /* Bopo */
USCRIPT_CHEROKEE = 6, /* Cher */
USCRIPT_COPTIC = 7, /* Copt */
- USCRIPT_CYRILLIC = 8, /* Cyrl (Cyrs) */
+ USCRIPT_CYRILLIC = 8, /* Cyrl */
USCRIPT_DESERET = 9, /* Dsrt */
USCRIPT_DEVANAGARI = 10, /* Deva */
USCRIPT_ETHIOPIC = 11, /* Ethi */
- USCRIPT_GEORGIAN = 12, /* Geor (Geon, Geoa) */
+ USCRIPT_GEORGIAN = 12, /* Geor */
USCRIPT_GOTHIC = 13, /* Goth */
USCRIPT_GREEK = 14, /* Grek */
USCRIPT_GUJARATI = 15, /* Gujr */
@@ -53,7 +69,7 @@ typedef enum UScriptCode {
USCRIPT_KATAKANA = 22, /* Kana */
USCRIPT_KHMER = 23, /* Khmr */
USCRIPT_LAO = 24, /* Laoo */
- USCRIPT_LATIN = 25, /* Latn (Latf, Latg) */
+ USCRIPT_LATIN = 25, /* Latn */
USCRIPT_MALAYALAM = 26, /* Mlym */
USCRIPT_MONGOLIAN = 27, /* Mong */
USCRIPT_MYANMAR = 28, /* Mymr */
@@ -62,7 +78,7 @@ typedef enum UScriptCode {
USCRIPT_ORIYA = 31, /* Orya */
USCRIPT_RUNIC = 32, /* Runr */
USCRIPT_SINHALA = 33, /* Sinh */
- USCRIPT_SYRIAC = 34, /* Syrc (Syrj, Syrn, Syre) */
+ USCRIPT_SYRIAC = 34, /* Syrc */
USCRIPT_TAMIL = 35, /* Taml */
USCRIPT_TELUGU = 36, /* Telu */
USCRIPT_THAANA = 37, /* Thaa */
@@ -79,28 +95,74 @@ typedef enum UScriptCode {
USCRIPT_TAGBANWA = 45, /* Tagb */
/* New scripts in Unicode 4 @stable ICU 2.6 */
- USCRIPT_BRAILLE, /* Brai */
- USCRIPT_CYPRIOT, /* Cprt */
- USCRIPT_LIMBU, /* Limb */
- USCRIPT_LINEAR_B, /* Linb */
- USCRIPT_OSMANYA, /* Osma */
- USCRIPT_SHAVIAN, /* Shaw */
- USCRIPT_TAI_LE, /* Tale */
- USCRIPT_UGARITIC, /* Ugar */
-
- /** New script code in Unicode 4.0.1 @draft ICU 3.0 */
- USCRIPT_KATAKANA_OR_HIRAGANA,/*Hrkt */
+ USCRIPT_BRAILLE = 46, /* Brai */
+ USCRIPT_CYPRIOT = 47, /* Cprt */
+ USCRIPT_LIMBU = 48, /* Limb */
+ USCRIPT_LINEAR_B = 49, /* Linb */
+ USCRIPT_OSMANYA = 50, /* Osma */
+ USCRIPT_SHAVIAN = 51, /* Shaw */
+ USCRIPT_TAI_LE = 52, /* Tale */
+ USCRIPT_UGARITIC = 53, /* Ugar */
+ /** New script code in Unicode 4.0.1 @stable ICU 3.0 */
+ USCRIPT_KATAKANA_OR_HIRAGANA = 54,/*Hrkt */
+
+#ifndef U_HIDE_DRAFT_API
/* New scripts in Unicode 4.1 @draft ICU 3.4 */
- USCRIPT_BUGINESE, /* Bugi */
- USCRIPT_GLAGOLITIC, /* Glag */
- USCRIPT_KHAROSHTHI, /* Khar */
- USCRIPT_SYLOTI_NAGRI, /* Sylo */
- USCRIPT_NEW_TAI_LUE, /* Talu */
- USCRIPT_TIFINAGH, /* Tfng */
- USCRIPT_OLD_PERSIAN, /* Xpeo */
+ USCRIPT_BUGINESE = 55, /* Bugi */
+ USCRIPT_GLAGOLITIC = 56, /* Glag */
+ USCRIPT_KHAROSHTHI = 57, /* Khar */
+ USCRIPT_SYLOTI_NAGRI = 58, /* Sylo */
+ USCRIPT_NEW_TAI_LUE = 59, /* Talu */
+ USCRIPT_TIFINAGH = 60, /* Tfng */
+ USCRIPT_OLD_PERSIAN = 61, /* Xpeo */
- USCRIPT_CODE_LIMIT
+ /* New script codes from ISO 15924 @draft ICU 3.6 */
+ USCRIPT_BALINESE = 62, /* Bali */
+ USCRIPT_BATAK = 63, /* Batk */
+ USCRIPT_BLISSYMBOLS = 64, /* Blis */
+ USCRIPT_BRAHMI = 65, /* Brah */
+ USCRIPT_CHAM = 66, /* Cham */
+ USCRIPT_CIRTH = 67, /* Cirt */
+ USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC = 68, /* Cyrs */
+ USCRIPT_DEMOTIC_EGYPTIAN = 69, /* Egyd */
+ USCRIPT_HIERATIC_EGYPTIAN = 70, /* Egyh */
+ USCRIPT_EGYPTIAN_HIEROGLYPHS = 71, /* Egyp */
+ USCRIPT_KHUTSURI = 72, /* Geok */
+ USCRIPT_SIMPLIFIED_HAN = 73, /* Hans */
+ USCRIPT_TRADITIONAL_HAN = 74, /* Hant */
+ USCRIPT_PAHAWH_HMONG = 75, /* Hmng */
+ USCRIPT_OLD_HUNGARIAN = 76, /* Hung */
+ USCRIPT_HARAPPAN_INDUS = 77, /* Inds */
+ USCRIPT_JAVANESE = 78, /* Java */
+ USCRIPT_KAYAH_LI = 79, /* Kali */
+ USCRIPT_LATIN_FRAKTUR = 80, /* Latf */
+ USCRIPT_LATIN_GAELIC = 81, /* Latg */
+ USCRIPT_LEPCHA = 82, /* Lepc */
+ USCRIPT_LINEAR_A = 83, /* Lina */
+ USCRIPT_MANDAEAN = 84, /* Mand */
+ USCRIPT_MAYAN_HIEROGLYPHS = 85, /* Maya */
+ USCRIPT_MEROITIC = 86, /* Mero */
+ USCRIPT_NKO = 87, /* Nkoo */
+ USCRIPT_ORKHON = 88, /* Orkh */
+ USCRIPT_OLD_PERMIC = 89, /* Perm */
+ USCRIPT_PHAGS_PA = 90, /* Phag */
+ USCRIPT_PHOENICIAN = 91, /* Phnx */
+ USCRIPT_PHONETIC_POLLARD = 92, /* Plrd */
+ USCRIPT_RONGORONGO = 93, /* Roro */
+ USCRIPT_SARATI = 94, /* Sara */
+ USCRIPT_ESTRANGELO_SYRIAC = 95, /* Syre */
+ USCRIPT_WESTERN_SYRIAC = 96, /* Syrj */
+ USCRIPT_EASTERN_SYRIAC = 97, /* Syrn */
+ USCRIPT_TENGWAR = 98, /* Teng */
+ USCRIPT_VAI = 99, /* Vaii */
+ USCRIPT_VISIBLE_SPEECH = 100, /* Visp */
+ USCRIPT_CUNEIFORM = 101,/* Xsux */
+ USCRIPT_UNWRITTEN_LANGUAGES = 102,/* Zxxx */
+ USCRIPT_UNKNOWN = 103,/* Zzzz */ /* Unknown="Code for uncoded script", for unassigned code points */
+ /* Private use codes from Qaaa - Qabx are not supported*/
+#endif /* U_HIDE_DRAFT_API */
+ USCRIPT_CODE_LIMIT = 104
} UScriptCode;
/**
diff --git a/Build/source/libs/icu-xetex/common/unicode/uset.h b/Build/source/libs/icu-xetex/common/unicode/uset.h
index 050a9070e6e..e6c7d3ecc12 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uset.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uset.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -81,22 +81,15 @@ enum {
USET_CASE_INSENSITIVE = 2,
/**
- * Bitmask for UnicodeSet::closeOver() indicating letter case.
- * This may be ORed together with other selectors.
- * @internal
- */
- USET_CASE = 2,
-
- /**
* Enable case insensitive matching. E.g., "[ab]" with this flag
* will match 'a', 'A', 'b', and 'B'. "[^ab]" with this flag will
* match all except 'a', 'A', 'b', and 'B'. This adds the lower-,
* title-, and uppercase mappings as well as the case folding
* of each existing element in the set.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
USET_ADD_CASE_MAPPINGS = 4,
-
+
/**
* Enough for any single-code point set
* @internal
@@ -192,9 +185,9 @@ uset_close(USet* set);
* @param set the object to set to the given range
* @param start first character in the set, inclusive
* @param end last character in the set, inclusive
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_set(USet* set,
UChar32 start, UChar32 end);
@@ -243,9 +236,9 @@ uset_applyPattern(USet *set,
*
* @param ec error code input/output parameter
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_applyIntPropertyValue(USet* set,
UProperty prop, int32_t value, UErrorCode* ec);
@@ -281,9 +274,9 @@ uset_applyIntPropertyValue(USet* set,
*
* @param ec error code input/output parameter
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_applyPropertyAlias(USet* set,
const UChar *prop, int32_t propLength,
const UChar *value, int32_t valueLength,
@@ -296,9 +289,9 @@ uset_applyPropertyAlias(USet* set,
* @param pattern a string specifying the pattern
* @param patternLength the length of the pattern, or -1 if NULL
* @param pos the given position
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uset_resemblesPattern(const UChar *pattern, int32_t patternLength,
int32_t pos);
@@ -420,9 +413,9 @@ uset_removeString(USet* set, const UChar* str, int32_t strLen);
* @param set the object from which the elements are to be removed
* @param removeSet the object that defines which elements will be
* removed from this set
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_removeAll(USet* set, const USet* removeSet);
/**
@@ -436,9 +429,9 @@ uset_removeAll(USet* set, const USet* removeSet);
* to this set.
* @param end last character, inclusive, of range to be retained
* to this set.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_retain(USet* set, UChar32 start, UChar32 end);
/**
@@ -450,9 +443,9 @@ uset_retain(USet* set, UChar32 start, UChar32 end);
*
* @param set the object on which to perform the retain
* @param retain set that defines which elements this set will retain
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_retainAll(USet* set, const USet* retain);
/**
@@ -460,9 +453,9 @@ uset_retainAll(USet* set, const USet* retain);
* possible space, without changing this object's value.
*
* @param set the object on which to perfrom the compact
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_compact(USet* set);
/**
@@ -483,9 +476,9 @@ uset_complement(USet* set);
* @param set the set with which to complement
* @param complement set that defines which elements will be xor'ed
* from this set.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uset_complementAll(USet* set, const USet* complement);
/**
@@ -548,9 +541,9 @@ uset_containsString(const USet* set, const UChar* str, int32_t strLen);
* @param set the set
* @param c the character to obtain the index for
* @return an index from 0..size()-1, or -1
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uset_indexOf(const USet* set, UChar32 c);
/**
@@ -561,9 +554,9 @@ uset_indexOf(const USet* set, UChar32 c);
* @param set the set
* @param index an index from 0..size()-1 to obtain the char for
* @return the character at the given index, or (UChar32)-1.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UChar32 U_EXPORT2
+U_STABLE UChar32 U_EXPORT2
uset_charAt(const USet* set, int32_t index);
/**
@@ -614,13 +607,13 @@ uset_getItem(const USet* set, int32_t itemIndex,
/**
* Returns true if set1 contains all the characters and strings
- * of set2. It answers the question, 'Is set1 a subset of set2?'
+ * of set2. It answers the question, 'Is set1 a superset of set2?'
* @param set1 set to be checked for containment
* @param set2 set to be checked for containment
* @return true if the test condition is met
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uset_containsAll(const USet* set1, const USet* set2);
/**
@@ -642,9 +635,9 @@ uset_containsAllCodePoints(const USet* set, const UChar *str, int32_t strLen);
* @param set1 set to be checked for containment
* @param set2 set to be checked for containment
* @return true if the test condition is met
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uset_containsNone(const USet* set1, const USet* set2);
/**
@@ -653,9 +646,9 @@ uset_containsNone(const USet* set1, const USet* set2);
* @param set1 set to be checked for containment
* @param set2 set to be checked for containment
* @return true if the test condition is met
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uset_containsSome(const USet* set1, const USet* set2);
/**
@@ -664,9 +657,9 @@ uset_containsSome(const USet* set1, const USet* set2);
* @param set1 set to be checked for containment
* @param set2 set to be checked for containment
* @return true if the test condition is met
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uset_equals(const USet* set1, const USet* set2);
/*********************************************************************
diff --git a/Build/source/libs/icu-xetex/common/unicode/usetiter.h b/Build/source/libs/icu-xetex/common/unicode/usetiter.h
index 3e77ddde046..defa75cd7ed 100644
--- a/Build/source/libs/icu-xetex/common/unicode/usetiter.h
+++ b/Build/source/libs/icu-xetex/common/unicode/usetiter.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -28,19 +28,23 @@ class UnicodeString;
* code points or ranges have been returned, it returns the
* multicharacter strings of the UnicodSet, if any.
*
- * <p>To iterate over code points, use a loop like this:
+ * This class is not intended to be subclassed. Consider any fields
+ * or methods declared as "protected" to be private. The use of
+ * protected in this class is an artifact of history.
+ *
+ * <p>To iterate over code points and strings, use a loop like this:
* <pre>
* UnicodeSetIterator it(set);
* while (set.next()) {
- * if (set.isString()) {
- * processString(set.getString());
- * } else {
- * processCodepoint(set.getCodepoint());
- * }
+ * processItem(set.getString());
* }
* </pre>
+ * <p>Each item in the set is accessed as a string. Set elements
+ * consisting of single code points are returned as strings containing
+ * just the one code point.
*
- * <p>To iterate over code point ranges, use a loop like this:
+ * <p>To iterate over code point ranges, instead of individual code points,
+ * use a loop like this:
* <pre>
* UnicodeSetIterator it(set);
* while (it.nextRange()) {
@@ -121,9 +125,14 @@ class U_COMMON_API UnicodeSetIterator : public UObject {
* caller can retrieve it with <tt>getString()</tt>. If this
* method returns false, the current element is a code point or
* code point range, depending on whether <tt>next()</tt> or
- * <tt>nextRange()</tt> was called, and the caller can retrieve it
- * with <tt>getCodepoint()</tt> and, for a range,
- * <tt>getCodepointEnd()</tt>.
+ * <tt>nextRange()</tt> was called.
+ * Elements of types string and codepoint can both be retrieved
+ * with the function <tt>getString()</tt>.
+ * Elements of type codepoint can also be retrieved with
+ * <tt>getCodepoint()</tt>.
+ * For ranges, <tt>getCodepoint()</tt> returns the starting codepoint
+ * of the range, and <tt>getCodepointEnd()</tt> returns the end
+ * of the range.
* @stable ICU 2.4
*/
inline UBool isString() const;
@@ -145,28 +154,37 @@ class U_COMMON_API UnicodeSetIterator : public UObject {
/**
* Returns the current string, if <tt>isString()</tt> returned
- * true. Otherwise returns an undefined result.
+ * true. If the current iteration item is a code point, a UnicodeString
+ * containing that single code point is returned.
+ *
+ * Ownership of the returned string remains with the iterator.
+ * The string is guaranteed to remain valid only until the iterator is
+ * advanced to the next item, or until the iterator is deleted.
+ *
* @stable ICU 2.4
*/
- inline const UnicodeString& getString() const;
+ const UnicodeString& getString();
/**
- * Returns the next element in the set, either a single code point
- * or a string. If there are no more elements in the set, return
- * false. If <tt>codepoint == IS_STRING</tt>, the value is a
- * string in the <tt>string</tt> field. Otherwise the value is a
- * single code point in the <tt>codepoint</tt> field.
+ * Advances the iteration position to the next element in the set,
+ * which can be either a single code point or a string.
+ * If there are no more elements in the set, return false.
+ *
+ * <p>
+ * If <tt>isString() == TRUE</tt>, the value is a
+ * string, otherwise the value is a
+ * single code point. Elements of either type can be retrieved
+ * with the function <tt>getString()</tt>, while elements of
+ * consisting of a single code point can be retrieved with
+ * <tt>getCodepoint()</tt>
*
* <p>The order of iteration is all code points in sorted order,
- * followed by all strings sorted order. <tt>codepointEnd</tt> is
- * undefined after calling this method. <tt>string</tt> is
- * undefined unless <tt>codepoint == IS_STRING</tt>. Do not mix
+ * followed by all strings sorted order. Do not mix
* calls to <tt>next()</tt> and <tt>nextRange()</tt> without
* calling <tt>reset()</tt> between them. The results of doing so
* are undefined.
*
- * @return true if there was another element in the set and this
- * object contains the element.
+ * @return true if there was another element in the set.
* @stable ICU 2.4
*/
UBool next();
@@ -174,21 +192,20 @@ class U_COMMON_API UnicodeSetIterator : public UObject {
/**
* Returns the next element in the set, either a code point range
* or a string. If there are no more elements in the set, return
- * false. If <tt>codepoint == IS_STRING</tt>, the value is a
- * string in the <tt>string</tt> field. Otherwise the value is a
- * range of one or more code points from <tt>codepoint</tt> to
- * <tt>codepointeEnd</tt> inclusive.
+ * false. If <tt>isString() == TRUE</tt>, the value is a
+ * string and can be accessed with <tt>getString()</tt>. Otherwise the value is a
+ * range of one or more code points from <tt>getCodepoint()</tt> to
+ * <tt>getCodepointeEnd()</tt> inclusive.
*
* <p>The order of iteration is all code points ranges in sorted
* order, followed by all strings sorted order. Ranges are
- * disjoint and non-contiguous. <tt>string</tt> is undefined
- * unless <tt>codepoint == IS_STRING</tt>. Do not mix calls to
+ * disjoint and non-contiguous. The value returned from <tt>getString()</tt>
+ * is undefined unless <tt>isString() == TRUE</tt>. Do not mix calls to
* <tt>next()</tt> and <tt>nextRange()</tt> without calling
* <tt>reset()</tt> between them. The results of doing so are
* undefined.
*
- * @return true if there was another element in the set and this
- * object contains the element.
+ * @return true if there was another element in the set.
* @stable ICU 2.4
*/
UBool nextRange();
@@ -259,6 +276,13 @@ class U_COMMON_API UnicodeSetIterator : public UObject {
*/
int32_t stringCount;
+ /**
+ * Points to the string to use when the caller asks for a
+ * string and the current iteration item is a code point, not a string.
+ * @internal
+ */
+ UnicodeString *cpString;
+
/** Copy constructor. Disallowed.
* @stable ICU 2.4
*/
@@ -288,9 +312,6 @@ inline UChar32 UnicodeSetIterator::getCodepointEnd() const {
return codepointEnd;
}
-inline const UnicodeString& UnicodeSetIterator::getString() const {
- return *string;
-}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/common/unicode/usprep.h b/Build/source/libs/icu-xetex/common/unicode/usprep.h
index 33bfff25b64..c7e75a53fab 100644
--- a/Build/source/libs/icu-xetex/common/unicode/usprep.h
+++ b/Build/source/libs/icu-xetex/common/unicode/usprep.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -59,8 +59,6 @@
#include "unicode/parseerr.h"
-#ifndef U_HIDE_DRAFT_API
-
/**
* The StringPrep profile
* @stable ICU 2.8
@@ -85,8 +83,6 @@ typedef struct UStringPrepProfile UStringPrepProfile;
#define USPREP_ALLOW_UNASSIGNED 0x0001
-#endif /*U_HIDE_DRAFT_API*/
-
/**
* Creates a StringPrep profile from the data file.
*
diff --git a/Build/source/libs/icu-xetex/common/unicode/ustring.h b/Build/source/libs/icu-xetex/common/unicode/ustring.h
index 485388058b6..4777c269f57 100644
--- a/Build/source/libs/icu-xetex/common/unicode/ustring.h
+++ b/Build/source/libs/icu-xetex/common/unicode/ustring.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -71,6 +71,10 @@
*/
/**
+* \defgroup ustring_ustrlen
+ */
+/*@{*/
+/**
* Determine the length of an array of UChar.
*
* @param s The array of UChars, NULL (U+0000) terminated.
@@ -79,6 +83,7 @@
*/
U_STABLE int32_t U_EXPORT2
u_strlen(const UChar *s);
+/*@}*/
/**
* Count Unicode code points in the length UChar code units of the string.
@@ -1157,6 +1162,7 @@ u_strFoldCase(UChar *dest, int32_t destCapacity,
uint32_t options,
UErrorCode *pErrorCode);
+#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
/**
* Converts a sequence of UChars to wchar_t units.
*
@@ -1209,6 +1215,8 @@ u_strFromWCS(UChar *dest,
const wchar_t *src,
int32_t srcLength,
UErrorCode *pErrorCode);
+#endif /* defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION */
+
/**
* Converts a sequence of UChars (UTF-16) to UTF-8 bytes
*
@@ -1227,6 +1235,8 @@ u_strFromWCS(UChar *dest,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
* @stable ICU 2.0
+ * @see u_strToUTF8WithSub
+ * @see u_strFromUTF8
*/
U_STABLE char* U_EXPORT2
u_strToUTF8(char *dest,
@@ -1254,6 +1264,8 @@ u_strToUTF8(char *dest,
* which must not indicate a failure before the function call.
* @return The pointer to destination buffer.
* @stable ICU 2.0
+ * @see u_strFromUTF8WithSub
+ * @see u_strFromUTF8Lenient
*/
U_STABLE UChar* U_EXPORT2
u_strFromUTF8(UChar *dest,
@@ -1264,6 +1276,148 @@ u_strFromUTF8(UChar *dest,
UErrorCode *pErrorCode);
/**
+ * Converts a sequence of UChars (UTF-16) to UTF-8 bytes.
+ * Same as u_strToUTF8() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strToUTF8().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of chars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to destination buffer.
+ * @see u_strToUTF8
+ * @see u_strFromUTF8WithSub
+ * @draft ICU 3.6
+ */
+U_DRAFT char* U_EXPORT2
+u_strToUTF8WithSub(char *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Converts a sequence of UTF-8 bytes to UChars (UTF-16).
+ * Same as u_strFromUTF8() except for the additional subchar which is output for
+ * illegal input sequences, instead of stopping with the U_INVALID_CHAR_FOUND error code.
+ * With subchar==U_SENTINEL, this function behaves exactly like u_strFromUTF8().
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param subchar The substitution character to use in place of an illegal input sequence,
+ * or U_SENTINEL if the function is to return with U_INVALID_CHAR_FOUND instead.
+ * A substitution character can be any valid Unicode code point (up to U+10FFFF)
+ * except for surrogate code points (U+D800..U+DFFF).
+ * The recommended value is U+FFFD "REPLACEMENT CHARACTER".
+ * @param pNumSubstitutions Output parameter receiving the number of substitutions if subchar>=0.
+ * Set to 0 if no substitutions occur or subchar<0.
+ * pNumSubstitutions can be NULL.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF8
+ * @see u_strFromUTF8Lenient
+ * @see u_strToUTF8WithSub
+ * @draft ICU 3.6
+ */
+U_DRAFT UChar* U_EXPORT2
+u_strFromUTF8WithSub(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
+ UErrorCode *pErrorCode);
+
+/**
+ * Converts a sequence of UTF-8 bytes to UChars (UTF-16).
+ * Same as u_strFromUTF8() except that this function is designed to be very fast,
+ * which it achieves by being lenient about malformed UTF-8 sequences.
+ * This function is intended for use in environments where UTF-8 text is
+ * expected to be well-formed.
+ *
+ * Its semantics are:
+ * - Well-formed UTF-8 text is correctly converted to well-formed UTF-16 text.
+ * - The function will not read beyond the input string, nor write beyond
+ * the destCapacity.
+ * - Malformed UTF-8 results in "garbage" 16-bit Unicode strings which may not
+ * be well-formed UTF-16.
+ * The function will resynchronize to valid code point boundaries
+ * within a small number of code points after an illegal sequence.
+ * - Non-shortest forms are not detected and will result in "spoofing" output.
+ *
+ * For further performance improvement, if srcLength is given (>=0),
+ * then it must be destCapacity>=srcLength.
+ *
+ * @param dest A buffer for the result string. The result will be zero-terminated if
+ * the buffer is large enough.
+ * @param destCapacity The size of the buffer (number of UChars). If it is 0, then
+ * dest may be NULL and the function will only return the length of the
+ * result without writing any of the result string (pre-flighting).
+ * Unlike for other ICU functions, if srcLength>=0 then it
+ * must be destCapacity>=srcLength.
+ * @param pDestLength A pointer to receive the number of units written to the destination. If
+ * pDestLength!=NULL then *pDestLength is always set to the
+ * number of output units corresponding to the transformation of
+ * all the input units, even in case of a buffer overflow.
+ * Unlike for other ICU functions, if srcLength>=0 but
+ * destCapacity<srcLength, then *pDestLength will be set to srcLength
+ * (and U_BUFFER_OVERFLOW_ERROR will be set)
+ * regardless of the actual result length.
+ * @param src The original source string
+ * @param srcLength The length of the original string. If -1, then src must be zero-terminated.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The pointer to destination buffer.
+ * @see u_strFromUTF8
+ * @see u_strFromUTF8WithSub
+ * @see u_strToUTF8WithSub
+ * @draft ICU 3.6
+ */
+U_CAPI UChar * U_EXPORT2
+u_strFromUTF8Lenient(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UErrorCode *pErrorCode);
+
+/**
* Converts a sequence of UChars (UTF-16) to UTF32 units.
*
* @param dest A buffer for the result string. The result will be zero-terminated if
diff --git a/Build/source/libs/icu-xetex/common/unicode/usystem.h b/Build/source/libs/icu-xetex/common/unicode/usystem.h
new file mode 100644
index 00000000000..b42e1023fe0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/unicode/usystem.h
@@ -0,0 +1,46 @@
+/*
+*******************************************************************************
+* Copyright (C) 2004-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*******************************************************************************
+*
+* file name:
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
+*
+* Contains data for commenting out APIs.
+* Gets included by umachine.h
+*
+* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT
+* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
+*/
+
+#ifndef USYSTEM_H
+#define USYSTEM_H
+
+#ifdef U_HIDE_SYSTEM_API
+
+# if U_DISABLE_RENAMING
+# define u_cleanup u_cleanup_SYSTEM_API_DO_NOT_USE
+# define u_setAtomicIncDecFunctions u_setAtomicIncDecFunctions_SYSTEM_API_DO_NOT_USE
+# define u_setMemoryFunctions u_setMemoryFunctions_SYSTEM_API_DO_NOT_USE
+# define u_setMutexFunctions u_setMutexFunctions_SYSTEM_API_DO_NOT_USE
+# define ucnv_setDefaultName ucnv_setDefaultName_SYSTEM_API_DO_NOT_USE
+# define uloc_getDefault uloc_getDefault_SYSTEM_API_DO_NOT_USE
+# define uloc_setDefault uloc_setDefault_SYSTEM_API_DO_NOT_USE
+# else
+# define u_cleanup_3_6 u_cleanup_SYSTEM_API_DO_NOT_USE
+# define u_setAtomicIncDecFunctions_3_6 u_setAtomicIncDecFunctions_SYSTEM_API_DO_NOT_USE
+# define u_setMemoryFunctions_3_6 u_setMemoryFunctions_SYSTEM_API_DO_NOT_USE
+# define u_setMutexFunctions_3_6 u_setMutexFunctions_SYSTEM_API_DO_NOT_USE
+# define ucnv_setDefaultName_3_6 ucnv_setDefaultName_SYSTEM_API_DO_NOT_USE
+# define uloc_getDefault_3_6 uloc_getDefault_SYSTEM_API_DO_NOT_USE
+# define uloc_setDefault_3_6 uloc_setDefault_SYSTEM_API_DO_NOT_USE
+# endif /* U_DISABLE_RENAMING */
+
+#endif /* U_HIDE_SYSTEM_API */
+#endif /* USYSTEM_H */
+
diff --git a/Build/source/libs/icu-xetex/common/unicode/utext.h b/Build/source/libs/icu-xetex/common/unicode/utext.h
index 1588a18b5d7..84aeb68afeb 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utext.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utext.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -23,7 +23,7 @@
*
* The Text Access API provides a means to allow text that is stored in alternative
* formats to work with ICU services. ICU normally operates on text that is
- * stored UTF-16 format, in (UChar *) arrays for the C APIs or as type
+ * stored in UTF-16 format, in (UChar *) arrays for the C APIs or as type
* UnicodeString for C++ APIs.
*
* ICU Text Access allows other formats, such as UTF-8 or non-contiguous
@@ -102,6 +102,35 @@
* an adjusted index is returned, the original index referred to the
* interior of a character.
*
+ * <em>Conventions for calling UText functions</em>
+ *
+ * Most UText access functions have as their first parameter a (UText *) pointer,
+ * which specifies the UText to be used. Unless otherwise noted, the
+ * pointer must refer to a valid, open UText. Attempting to
+ * use a closed UText or passing a NULL pointer is a programming error and
+ * will produce undefined results or NULL pointer exceptions.
+ *
+ * The UText_Open family of functions can either open an existing (closed)
+ * UText, or heap allocate a new UText. Here is sample code for creating
+ * a stack-allocated UText.
+ *
+ * \code
+ * char *s = whatever(); // A utf-8 string
+ * U_ErrorCode status = U_ZERO_ERROR;
+ * UText ut = UTEXT_INITIALIZER;
+ * utext_openUTF8(ut, s, -1, &status);
+ * if (U_FAILURE(status)) {
+ * // error handling
+ * } else {
+ * // work with the UText
+ * }
+ * \endcode
+ *
+ * Any existing UText passed to an open function _must_ have been initialized,
+ * either by the UTEXT_INITIALIZER, or by having been originally heap-allocated
+ * by an open function. Passing NULL will cause the open function to
+ * heap-allocate and fully initialize a new UText.
+ *
*/
@@ -110,18 +139,14 @@
#ifdef XP_CPLUSPLUS
#include "unicode/rep.h"
#include "unicode/unistr.h"
+#include "unicode/chariter.h"
#endif
-#ifndef U_HIDE_DRAFT_API
U_CDECL_BEGIN
struct UText;
-typedef struct UText UText; /**< C typedef for struct UText. @draft ICU 3.4 */
-
-struct UTextChunk;
-typedef struct UTextChunk UTextChunk; /**< C typedef for struct UTextChunk. @draft ICU 3.4 */
-
+typedef struct UText UText; /**< C typedef for struct UText. @draft ICU 3.6 */
/***************************************************************************************
@@ -132,10 +157,9 @@ typedef struct UTextChunk UTextChunk; /**< C typedef for struct UTextChunk. @dra
/**
- * utext_close Close function for UText instances.
- * Cleans up, releases any resources being held by an
- * open UText.
- * <p/>
+ * Close function for UText instances.
+ * Cleans up, releases any resources being held by an open UText.
+ * <p>
* If the UText was originally allocated by one of the utext_open functions,
* the storage associated with the utext will also be freed.
* If the UText storage originated with the application, as it would with
@@ -169,7 +193,7 @@ utext_close(UText *ut);
* @param ut Pointer to a UText struct. If NULL, a new UText will be created.
* If non-NULL, must refer to an initialized UText struct, which will then
* be reset to reference the specified UTF-8 string.
- * @param s A UTF-8 string
+ * @param s A UTF-8 string. Must not be NULL.
* @param length The length of the UTF-8 string in bytes, or -1 if the string is
* zero terminated.
* @param status Errors are returned here.
@@ -178,7 +202,7 @@ utext_close(UText *ut);
* @draft ICU 3.4
*/
U_DRAFT UText * U_EXPORT2
-utext_openUTF8(UText *ut, const char *s, int32_t length, UErrorCode *status);
+utext_openUTF8(UText *ut, const char *s, int64_t length, UErrorCode *status);
/**
@@ -196,7 +220,7 @@ utext_openUTF8(UText *ut, const char *s, int32_t length, UErrorCode *status);
* @draft ICU 3.4
*/
U_DRAFT UText * U_EXPORT2
-utext_openUChars(UText *ut, const UChar *s, int32_t length, UErrorCode *status);
+utext_openUChars(UText *ut, const UChar *s, int64_t length, UErrorCode *status);
#ifdef XP_CPLUSPLUS
@@ -247,19 +271,41 @@ utext_openConstUnicodeString(UText *ut, const UnicodeString *s, UErrorCode *stat
U_DRAFT UText * U_EXPORT2
utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status);
+/**
+ * Open a UText implementation over an ICU CharacterIterator.
+ * @param ut Pointer to a UText struct. If NULL, a new UText will be created.
+ * If non-NULL, must refer to an already existing UText, which will then
+ * be reset to reference the specified replaceable text.
+ * @param ci A Character Iterator.
+ * @param status Errors are returned here.
+ * @return Pointer to the UText. If a UText was supplied as input, this
+ * will always be used and returned.
+ * @see Replaceable
+ * @draft ICU 3.4
+ */
+U_DRAFT UText * U_EXPORT2
+utext_openCharacterIterator(UText *ut, CharacterIterator *ic, UErrorCode *status);
+
#endif
/**
- * clone a UText. Much like opening a UText where the source text is itself
+ * Clone a UText. This is much like opening a UText where the source text is itself
* another UText.
*
* A deep clone will copy both the UText data structures and the underlying text.
* The original and cloned UText will operate completely independently; modifications
- * made to the text in one will not effect the other. Text providers are not
+ * made to the text in one will not affect the other. Text providers are not
* required to support deep clones. The user of clone() must check the status return
* and be prepared to handle failures.
*
+ * The standard UText implementations for UTF8, UChar *, UnicodeString and
+ * Replaceable all support deep cloning.
+ *
+ * The UText returned from a deep clone will be writable, assuming that the text
+ * provider is able to support writing, even if the source UText had been made
+ * non-writable by means of UText_freeze().
+ *
* A shallow clone replicates only the UText data structures; it does not make
* a copy of the underlying text. Shallow clones can be used as an efficient way to
* have multiple iterators active in a single text string that is not being
@@ -268,15 +314,32 @@ utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status);
* A shallow clone operation will not fail, barring truly exceptional conditions such
* as memory allocation failures.
*
+ * Shallow UText clones should be avoided if the UText functions that modify the
+ * text are expected to be used, either on the original or the cloned UText.
+ * Any such modifications can cause unpredictable behavior. Read Only
+ * shallow clones provide some protection against errors of this type by
+ * disabling text modification via the cloned UText.
+ *
+ * A shallow clone made with the readOnly parameter == FALSE will preserve the
+ * utext_isWritable() state of the source object. Note, however, that
+ * write operations must be avoided while more than one UText exists that refer
+ * to the same underlying text.
+ *
* A UText and its clone may be safely concurrently accessed by separate threads.
- * This is true for both shallow and deep clones.
+ * This is true for read access only with shallow clones, and for both read and
+ * write access with deep clones.
* It is the responsibility of the Text Provider to ensure that this thread safety
* constraint is met.
*
* @param dest A UText struct to be filled in with the result of the clone operation,
* or NULL if the clone function should heap-allocate a new UText struct.
+ * If non-NULL, must refer to an already existing UText, which will then
+ * be reset to become the clone.
* @param src The UText to be cloned.
* @param deep TRUE to request a deep clone, FALSE for a shallow clone.
+ * @param readOnly TRUE to request that the cloned UText have read only access to the
+ * underlying text.
+
* @param status Errors are returned here. For deep clones, U_UNSUPPORTED_ERROR
* will be returned if the text provider is unable to clone the
* original text.
@@ -284,12 +347,27 @@ utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status);
* @draft ICU 3.4
*/
U_DRAFT UText * U_EXPORT2
-utext_clone(UText *dest, const UText *src, UBool deep, UErrorCode *status);
+utext_clone(UText *dest, const UText *src, UBool deep, UBool readOnly, UErrorCode *status);
+
+
+/**
+ * Compare two UText objects for equality.
+ * UTexts are equal if they are iterating over the same text, and
+ * have the same iteration position within the text.
+ * If either or both of the parameters are NULL, the comparison is FALSE.
+ *
+ * @param a The first of the two UTexts to compare.
+ * @param b The other UText to be compared.
+ * @return TRUE if the two UTexts are equal.
+ * @draft ICU 3.6
+ */
+U_DRAFT UBool U_EXPORT2
+utext_equals(const UText *a, const UText *b);
/*****************************************************************************
*
- * C Functions to work with the text represeted by a UText wrapper
+ * Functions to work with the text represeted by a UText wrapper
*
*****************************************************************************/
@@ -304,7 +382,7 @@ utext_clone(UText *dest, const UText *src, UBool deep, UErrorCode *status);
*
* @draft ICU 3.4
*/
-U_DRAFT int32_t U_EXPORT2
+U_DRAFT int64_t U_EXPORT2
utext_nativeLength(UText *ut);
/**
@@ -336,7 +414,10 @@ utext_isLengthExpensive(const UText *ut);
* This function is roughly equivalent to the the sequence
* utext_setNativeIndex(index);
* utext_current32();
- * (There is a difference if the index is out of bounds by being less than zero)
+ * (There is a subtle difference if the index is out of bounds by being less than zero -
+ * utext_setNativeIndex(negative value) sets the index to zero, after which utext_current()
+ * will return the char at zero. utext_char32At(negative index), on the other hand, will
+ * return the U_SENTINEL value of -1.)
*
* @param ut the text to be accessed
* @param nativeIndex the native index of the character to be accessed. If the index points
@@ -346,7 +427,7 @@ utext_isLengthExpensive(const UText *ut);
* @draft ICU 3.4
*/
U_DRAFT UChar32 U_EXPORT2
-utext_char32At(UText *ut, int32_t nativeIndex);
+utext_char32At(UText *ut, int64_t nativeIndex);
/**
@@ -366,9 +447,12 @@ utext_current32(UText *ut);
/**
* Get the code point at the current iteration position of the UText, and
* advance the position to the first index following the character.
- * Returns U_SENTINEL (-1) if the position is at the end of the
- * text.
- * This is a post-increment operation
+ *
+ * If the position is at the end of the text (the index following
+ * the last character, which is also the length of the text),
+ * return U_SENTINEL (-1) and do not advance the index.
+ *
+ * This is a post-increment operation.
*
* An inline macro version of this function, UTEXT_NEXT32(),
* is available for performance critical use.
@@ -386,11 +470,12 @@ utext_next32(UText *ut);
* Move the iterator position to the character (code point) whose
* index precedes the current position, and return that character.
* This is a pre-decrement operation.
- * Returns U_SENTINEL (-1) if the position is at the start of the text.
- * This is a pre-decrement operation.
*
- * An inline macro version of this function, UTEXT_PREVIOUS32(),
- * is available for performance critical use.
+ * If the initial position is at the start of the text (index of 0)
+ * return U_SENTINEL (-1), and leave the position unchanged.
+ *
+ * An inline macro version of this function, UTEXT_PREVIOUS32(),
+ * is available for performance critical use.
*
* @param ut the text to be accessed.
* @return the previous UChar32 code point, or U_SENTINEL (-1)
@@ -403,12 +488,16 @@ utext_previous32(UText *ut);
/**
- * Set the iteration index, access the text for forward iteration,
- * and return the code point starting at or before that index.
+ * Set the iteration index and return the code point at that index.
* Leave the iteration index at the start of the following code point.
*
* This function is the most efficient and convenient way to
- * begin a forward iteration.
+ * begin a forward iteration. The results are identical to the those
+ * from the sequence
+ * \code
+ * utext_setIndex();
+ * utext_next32();
+ * \endcode
*
* @param ut the text to be accessed.
* @param nativeIndex Iteration index, in the native units of the text provider.
@@ -417,7 +506,7 @@ utext_previous32(UText *ut);
* @draft ICU 3.4
*/
U_DRAFT UChar32 U_EXPORT2
-utext_next32From(UText *ut, int32_t nativeIndex);
+utext_next32From(UText *ut, int64_t nativeIndex);
@@ -437,92 +526,118 @@ utext_next32From(UText *ut, int32_t nativeIndex);
* @draft ICU 3.4
*/
U_DRAFT UChar32 U_EXPORT2
-utext_previous32From(UText *ut, int32_t nativeIndex);
+utext_previous32From(UText *ut, int64_t nativeIndex);
/**
* Get the current iterator position, which can range from 0 to
* the length of the text.
* The position is a native index into the input text, in whatever format it
- * may have, and may not always correspond to a UChar (UTF-16) index
- * into the text. The returned position will always be aligned to a
- * code point boundary
+ * may have (possibly UTF-8 for example), and may not always be the same as
+ * the corresponding UChar (UTF-16) index.
+ * The returned position will always be aligned to a code point boundary.
*
* @param ut the text to be accessed.
* @return the current index position, in the native units of the text provider.
* @draft ICU 3.4
*/
-U_DRAFT int32_t U_EXPORT2
-utext_getNativeIndex(UText *ut);
+U_DRAFT int64_t U_EXPORT2
+utext_getNativeIndex(const UText *ut);
/**
- * Set the current iteration position to the nearest code point
- * boundary at or preceding the specified index.
- * The index is in the native units of the original input text.
- * If the index is out of range, it will be trimmed to be within
- * the range of the input text.
- * <p/>
- * It will usually be more efficient to begin an iteration
- * using the functions utext_next32From() or utext_previous32From()
- * rather than setIndex().
- * <p/>
- * Moving the index position to an adjacent character is best done
- * with utext_next32(), utext_previous32() or utext_moveIndex32().
- * Attempting to do direct arithmetic on the index position is
- * complicated by the fact that the size (in native units) of a
- * character depends on the underlying representation of the character
- * (UTF-8, UTF-16, UTF-32, arbitrary codepage), and is not
- * easily knowable.
- *
- * @param ut the text to be accessed.
- * @param nativeIndex the native unit index of the new iteration position.
- * @draft ICU 3.4
- */
+ * Set the current iteration position to the nearest code point
+ * boundary at or preceding the specified index.
+ * The index is in the native units of the original input text.
+ * If the index is out of range, it will be pinned to be within
+ * the range of the input text.
+ * <p>
+ * It will usually be more efficient to begin an iteration
+ * using the functions utext_next32From() or utext_previous32From()
+ * rather than setIndex().
+ * <p>
+ * Moving the index position to an adjacent character is best done
+ * with utext_next32(), utext_previous32() or utext_moveIndex32().
+ * Attempting to do direct arithmetic on the index position is
+ * complicated by the fact that the size (in native units) of a
+ * character depends on the underlying representation of the character
+ * (UTF-8, UTF-16, UTF-32, arbitrary codepage), and is not
+ * easily knowable.
+ *
+ * @param ut the text to be accessed.
+ * @param nativeIndex the native unit index of the new iteration position.
+ * @draft ICU 3.4
+ */
U_DRAFT void U_EXPORT2
-utext_setNativeIndex(UText *ut, int32_t nativeIndex);
+utext_setNativeIndex(UText *ut, int64_t nativeIndex);
/**
- * Move the iterator postion by delta code points. The number of code points
- * is a signed number; a negative delta will move the iterator backwards,
- * towards the start of the text.
- * <p/>
- * The index is moved by <code>delta</code> code points
- * forward or backward, but no further backward than to 0 and
- * no further forward than to utext_nativeLength().
- * The resulting index value will be in between 0 and length, inclusive.
- * <p/>
- * Because the index is kept in the native units of the text provider, the
- * actual numeric amount by which the index moves depends on the
- * underlying text storage representation of the text provider.
- *
- * @param ut the text to be accessed.
- * @param delta the signed number of code points to move the iteration position.
- * @return TRUE if the position could be moved the requested number of positions while
- * staying within the range [0 - text length].
- * @draft ICU 3.4
- */
+ * Move the iterator postion by delta code points. The number of code points
+ * is a signed number; a negative delta will move the iterator backwards,
+ * towards the start of the text.
+ * <p>
+ * The index is moved by <code>delta</code> code points
+ * forward or backward, but no further backward than to 0 and
+ * no further forward than to utext_nativeLength().
+ * The resulting index value will be in between 0 and length, inclusive.
+ *
+ * @param ut the text to be accessed.
+ * @param delta the signed number of code points to move the iteration position.
+ * @return TRUE if the position could be moved the requested number of positions while
+ * staying within the range [0 - text length].
+ * @draft ICU 3.4
+ */
U_DRAFT UBool U_EXPORT2
utext_moveIndex32(UText *ut, int32_t delta);
+/**
+ * Get the native index of the character preceeding the current position.
+ * If the iteration position is already at the start of the text, zero
+ * is returned.
+ * The value returned is the same as that obtained from the following sequence,
+ * but without the side effect of changing the iteration position.
+ *
+ * \code
+ * UText *ut = whatever;
+ * ...
+ * utext_previous(ut)
+ * utext_getNativeIndex(ut);
+ * \endcode
+ *
+ * This function is most useful during forwards iteration, where it will get the
+ * native index of the character most recently returned from utext_next().
+ *
+ * @param ut the text to be accessed
+ * @return the native index of the character preceeding the current index position,
+ * or zero if the current position is at the start of the text.
+ * @draft ICU 3.6
+ */
+U_DRAFT int64_t U_EXPORT2
+utext_getPreviousNativeIndex(UText *ut);
+
/**
*
* Extract text from a UText into a UChar buffer. The range of text to be extracted
* is specified in the native indices of the UText provider. These may not necessarily
* be UTF-16 indices.
- * <p/>
- * The size (number of 16 bit UChars) in the data to be extracted is returned. The
+ * <p>
+ * The size (number of 16 bit UChars) of the data to be extracted is returned. The
* full number of UChars is returned, even when the extracted text is truncated
* because the specified buffer size is too small.
- *
+ * <p>
* The extracted string will (if you are a user) / must (if you are a text provider)
* be NUL-terminated if there is sufficient space in the destination buffer. This
* terminating NUL is not included in the returned length.
+ * <p>
+ * The iteration index is left at the position following the last extracted character.
*
* @param ut the UText from which to extract data.
- * @param nativeStart the native index of the first character to extract.
+ * @param nativeStart the native index of the first character to extract.\
+ * If the specified index is out of range,
+ * it will be pinned to to be within 0 <= index <= textLength
* @param nativeLimit the native string index of the position following the last
- * character to extract. If the specified limit is greater than the length
- * of the text, the limit will be trimmed back to the text length.
+ * character to extract. If the specified index is out of range,
+ * it will be pinned to to be within 0 <= index <= textLength.
+ * nativeLimit must be >= nativeStart.
* @param dest the UChar (UTF-16) buffer into which the extracted text is placed
* @param destCapacity The size, in UChars, of the destination buffer. May be zero
* for precomputing the required size.
@@ -535,12 +650,12 @@ utext_moveIndex32(UText *ut, int32_t delta);
*/
U_DRAFT int32_t U_EXPORT2
utext_extract(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
+ int64_t nativeStart, int64_t nativeLimit,
UChar *dest, int32_t destCapacity,
UErrorCode *status);
-
+#ifndef U_HIDE_DRAFT_API
/************************************************************************************
*
* #define inline versions of selected performance-critical text access functions
@@ -568,8 +683,8 @@ utext_extract(UText *ut,
* @draft ICU 3.4
*/
#define UTEXT_NEXT32(ut) \
- ((ut)->chunk.offset < (ut)->chunk.length && ((ut)->chunk.contents)[(ut)->chunk.offset]<0xd800 ? \
- ((ut)->chunk.contents)[((ut)->chunk.offset)++] : utext_next32(ut))
+ ((ut)->chunkOffset < (ut)->chunkLength && ((ut)->chunkContents)[(ut)->chunkOffset]<0xd800 ? \
+ ((ut)->chunkContents)[((ut)->chunkOffset)++] : utext_next32(ut))
/**
* inline version of utext_previous32(), for performance-critical situations.
@@ -582,12 +697,31 @@ utext_extract(UText *ut,
* @draft ICU 3.4
*/
#define UTEXT_PREVIOUS32(ut) \
- ((ut)->chunk.offset > 0 && \
- (ut)->chunk.contents[(ut)->chunk.offset-1] < 0xd800 ? \
- (ut)->chunk.contents[--((ut)->chunk.offset)] : utext_previous32(ut))
+ ((ut)->chunkOffset > 0 && \
+ (ut)->chunkContents[(ut)->chunkOffset-1] < 0xd800 ? \
+ (ut)->chunkContents[--((ut)->chunkOffset)] : utext_previous32(ut))
+
+/**
+ * inline version of utext_getNativeIndex(), for performance-critical situations.
+ *
+ * Get the current iterator position, which can range from 0 to
+ * the length of the text.
+ * The position is a native index into the input text, in whatever format it
+ * may have (possibly UTF-8 for example), and may not always be the same as
+ * the corresponding UChar (UTF-16) index.
+ * The returned position will always be aligned to a code point boundary.
+ *
+ * @draft ICU 3.6
+ */
+#define UTEXT_GETNATIVEINDEX(ut) \
+ ((ut)->chunkOffset <= (ut)->nativeIndexingLimit? \
+ (ut)->chunkNativeStart+(ut)->chunkOffset : \
+ (ut)->pFuncs->mapOffsetToNative(ut))
+
+#endif
/************************************************************************************
*
@@ -599,12 +733,20 @@ utext_extract(UText *ut,
/**
- * Return TRUE if the text can be written with utext_replace() or
+ * Return TRUE if the text can be written (modified) with utext_replace() or
* utext_copy(). For the text to be writable, the text provider must
- * be of a type that supports writing.
+ * be of a type that supports writing and the UText must not be frozen.
+ *
+ * Attempting to modify text when utext_isWriteable() is FALSE will fail -
+ * the text will not be modified, and an error will be returned from the function
+ * that attempted the modification.
*
* @param ut the UText to be tested.
* @return TRUE if the text is modifiable.
+ *
+ * @see utext_freeze()
+ * @see utext_replace()
+ * @see utext_copy()
* @draft ICU 3.4
*
*/
@@ -653,7 +795,7 @@ utext_hasMetaData(const UText *ut);
*/
U_DRAFT int32_t U_EXPORT2
utext_replace(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
+ int64_t nativeStart, int64_t nativeLimit,
const UChar *replacementText, int32_t replacementLength,
UErrorCode *status);
@@ -669,6 +811,9 @@ utext_replace(UText *ut,
* The text to be copied or moved is inserted at destIndex;
* it does not replace or overwrite any existing text.
*
+ * The iteration position is left following the newly inserted text
+ * at the destination position.
+ *
* This function is only available on UText types that support writing,
* that is, ones where utext_isWritable() returns TRUE.
*
@@ -679,8 +824,10 @@ utext_replace(UText *ut,
*
* @param ut The UText representing the text to be operated on.
* @param nativeStart The native index of the start of the region to be copied or moved
- * @param nativeLimit The native index of the character position following the region to be copied.
- * @param destIndex The native destination index to which the source substring is copied or moved.
+ * @param nativeLimit The native index of the character position following the region
+ * to be copied.
+ * @param destIndex The native destination index to which the source substring is
+ * copied or moved.
* @param move If TRUE, then the substring is moved, not copied/duplicated.
* @param status receives any error status. Possible errors include U_NO_WRITE_PERMISSION
*
@@ -688,68 +835,38 @@ utext_replace(UText *ut,
*/
U_DRAFT void U_EXPORT2
utext_copy(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
- int32_t destIndex,
+ int64_t nativeStart, int64_t nativeLimit,
+ int64_t destIndex,
UBool move,
UErrorCode *status);
-
-
-
-/****************************************************************************************
- *
- * The following items are required by text providers implementations -
- * by packages that are writing UText wrappers for additional types of text strings.
- * These declarations are not needed by applications that use already existing
- * UText functions for wrapping strings or accessing text data that has been
- * wrapped in a UText.
- *
- *****************************************************************************************/
-
-
/**
- * Descriptor of a chunk, or segment of text in UChar format.
- *
- * UText provider implementations surface their text in the form of UTextChunks.
+ * <p>
+ * Freeze a UText. This prevents any modification to the underlying text itself
+ * by means of functions operating on this UText.
+ * </p>
+ * <p>
+ * Once frozen, a UText can not be unfrozen. The intent is to ensure
+ * that a the text underlying a frozen UText wrapper cannot be modified via that UText.
+ * </p>
+ * <p>
+ * Caution: freezing a UText will disable changes made via the specific
+ * frozen UText wrapper only; it will not have any effect on the ability to
+ * directly modify the text by bypassing the UText. Any such backdoor modifications
+ * are always an error while UText access is occuring because the underlying
+ * text can get out of sync with UText's buffering.
+ * </p>
*
- * If the native form of the text if UTF-16, a chunk will typically refer back to the
- * original native text storage. If the native format is something else, chunks
- * will typically refer to a buffer maintained by the provider that contains
- * some amount input that has been converted to UTF-16 (UChar) form.
- *
- * @draft ICU 3.4
- */
-struct UTextChunk {
- /** Pointer to contents of text chunk. UChar format. */
- const UChar *contents;
-
- /** Index within the contents of the current iteration position. */
- int32_t offset;
-
- /** Number of UChars in the chunk. */
- int32_t length;
-
- /** (Native) text index corresponding to the start of the chunk. */
- int32_t nativeStart;
-
- /** (Native) text index corresponding to the end of the chunk (contents+length). */
- int32_t nativeLimit;
-
- /** If TRUE, then non-UTF-16 indexes are used in this chunk. */
- UBool nonUTF16Indexes;
-
- /** Unused. */
- UBool padding1, padding2, padding3;
-
- /** Unused. */
- int32_t padInt1, padInt2;
-
- /** Contains sizeof(UTextChunk) and allows the future addition of fields. */
- int32_t sizeOfStruct;
-};
+ * @param ut The UText to be frozen.
+ * @see utext_isWritable()
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+utext_freeze(UText *ut);
+#ifndef U_HIDE_DRAFT_API
/**
* UText provider properties (bit field indexes).
*
@@ -758,12 +875,6 @@ struct UTextChunk {
*/
enum {
/**
- * The provider works with non-UTF-16 ("native") text indexes.
- * For example, byte indexes into UTF-8 text or UTF-32 indexes into UTF-32 text.
- * @draft ICU 3.4
- */
- UTEXT_PROVIDER_NON_UTF16_INDEXES = 0,
- /**
* It is potentially time consuming for the provider to determine the length of the text.
* @draft ICU 3.4
*/
@@ -786,8 +897,16 @@ enum {
* There is meta data associated with the text.
* @see Replaceable::hasMetaData()
* @draft ICU 3.4
+ */
+ UTEXT_PROVIDER_HAS_META_DATA = 4,
+ /**
+ * Text provider owns the text storage.
+ * Generally occurs as the result of a deep clone of the UText.
+ * When closing the UText, the associated text must
+ * also be closed/deleted/freed/ whatever is appropriate.
+ * @draft ICU 3.6
*/
- UTEXT_PROVIDER_HAS_META_DATA = 4
+ UTEXT_PROVIDER_OWNS_TEXT = 5
};
/**
@@ -839,7 +958,7 @@ UTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status);
* @see UText
* @draft ICU 3.4
*/
-typedef int32_t U_CALLCONV
+typedef int64_t U_CALLCONV
UTextNativeLength(UText *ut);
/**
@@ -868,7 +987,7 @@ UTextNativeLength(UText *ut);
* @draft ICU 3.4
*/
typedef UBool U_CALLCONV
-UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk);
+UTextAccess(UText *ut, int64_t nativeIndex, UBool forward);
/**
* Function type declaration for UText.extract().
@@ -876,10 +995,10 @@ UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk);
* Extract text from a UText into a UChar buffer. The range of text to be extracted
* is specified in the native indices of the UText provider. These may not necessarily
* be UTF-16 indices.
- * <p/>
+ * <p>
* The size (number of 16 bit UChars) in the data to be extracted is returned. The
* full amount is returned, even when the specified buffer size is smaller.
- *
+ * <p>
* The extracted string will (if you are a user) / must (if you are a text provider)
* be NUL-terminated if there is sufficient space in the destination buffer.
*
@@ -899,7 +1018,7 @@ UTextAccess(UText *ut, int32_t nativeIndex, UBool forward, UTextChunk *chunk);
*/
typedef int32_t U_CALLCONV
UTextExtract(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
+ int64_t nativeStart, int64_t nativeLimit,
UChar *dest, int32_t destCapacity,
UErrorCode *status);
@@ -934,7 +1053,7 @@ UTextExtract(UText *ut,
*/
typedef int32_t U_CALLCONV
UTextReplace(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
+ int64_t nativeStart, int64_t nativeLimit,
const UChar *replacementText, int32_t replacmentLength,
UErrorCode *status);
@@ -968,34 +1087,32 @@ UTextReplace(UText *ut,
*/
typedef void U_CALLCONV
UTextCopy(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
- int32_t nativeDest,
+ int64_t nativeStart, int64_t nativeLimit,
+ int64_t nativeDest,
UBool move,
UErrorCode *status);
/**
* Function type declaration for UText.mapOffsetToNative().
- * Map from a UChar offset within the current text chunk within the UText to
+ * Map from the current UChar offset within the current text chunk to
* the corresponding native index in the original source text.
*
* This is required only for text providers that do not use native UTF-16 indexes.
*
- * TODO: specify behavior with out-of-bounds offset? Shouldn't ever occur.
- *
* @param ut the UText.
- * @param offset UTF-16 offset within text chunk
- * 0<=offset<=chunk->length.
- * @return Absolute (native) index corresponding to the specified chunk offset.
+ * @return Absolute (native) index corresponding to chunkOffset in the current chunk.
* The returned native index should always be to a code point boundary.
*
* @draft ICU 3.4
*/
-typedef int32_t U_CALLCONV
-UTextMapOffsetToNative(UText *ut, int32_t offset);
+typedef int64_t U_CALLCONV
+UTextMapOffsetToNative(const UText *ut);
/**
* Function type declaration for UText.mapIndexToUTF16().
- * Map from a native index to a UChar offset within a text chunk
+ * Map from a native index to a UChar offset within a text chunk.
+ * Behavior is undefined if the native index does not fall within the
+ * current chunk.
*
* This function is required only for text providers that do not use native UTF-16 indexes.
*
@@ -1004,11 +1121,10 @@ UTextMapOffsetToNative(UText *ut, int32_t offset);
* @return Chunk-relative UTF-16 offset corresponding to the specified native
* index.
*
- * TODO: specify behavior with out-of-bounds index? Shouldn't ever occur.
* @draft ICU 3.4
*/
typedef int32_t U_CALLCONV
-UTextMapNativeIndexToUTF16(UText *ut, int32_t nativeIndex);
+UTextMapNativeIndexToUTF16(const UText *ut, int64_t nativeIndex);
/**
@@ -1033,102 +1149,44 @@ UTextClose(UText *ut);
/**
- * UText struct. Provides the interface between the generic UText access code
- * and the UText provider code that works on specific kinds of
- * text (UTF-8, noncontiguous UTF-16, whatever.)
- *
- * Applications that are using predefined types of text providers
- * to pass text data to ICU services will have no need to view the
- * internals of the UText structs that they open.
- *
- * @draft ICU 3.4
+ * (public) Function dispatch table for UText.
+ * Conceptually very much like a C++ Virtual Function Table.
+ * This struct defines the organization of the table.
+ * Each text provider implementation must provide an
+ * actual table that is initialized with the appropriate functions
+ * for the type of text being handled.
+ * @draft ICU 3.6
*/
-struct UText {
+struct UTextFuncs {
/**
- * (protected) Pointer to string or wrapped object or similar.
- * Not used by caller.
- * @draft ICU 3.4
- */
- const void *context;
-
- /**
- * (protected) Pointer fields available for use by the text provider.
- * Not used by UText common code.
- * @draft ICU 3.4
- */
- const void *p, *q, *r;
-
- /**
- * (protected) Pointer to additional space requested by the
- * text provider during the utext_open operation.
- * @draft ICU 3.4
- */
- void *pExtra;
-
- /**
- * (protected) Size in bytes of the extra space (pExtra).
- * @draft ICU 3.4
- */
- int32_t extraSize;
-
- /**
- * (private) Flags for managing the allocation and freeing of
- * memory associated with this UText.
- * @internal
- */
- int32_t flags;
-
- /**
- * (private) Magic. Try to detect when we are handed junk.
- * utext_openXYZ() functions take an initialized,
- * but not necessarily open, UText struct as an,
- * optional fill-in parameter. This magic field
- * is used to check for that initialization.
- * Text provider close functions must NOT clear
- * the magic field because that would prevent
- * reuse of the UText struct.
- * @internal
- */
- uint32_t magic;
-
-
- /**
- * (public) sizeOfStruct=sizeof(UText)
- * Allows possible backward compatible extension.
+ * (public) Function table size, sizeof(UTextFuncs)
+ * Intended for use should the table grow to accomodate added
+ * functions in the future, to allow tests for older format
+ * function tables that do not contain the extensions.
*
- * @draft ICU 3.4
+ * Fields are placed for optimal alignment on
+ * 32/64/128-bit-pointer machines, by normally grouping together
+ * 4 32-bit fields,
+ * 4 pointers,
+ * 2 64-bit fields
+ * in sequence.
+ * @draft ICU 3.6
*/
- int32_t sizeOfStruct;
+ int32_t tableSize;
/**
- * (protected) Integer fields for use by text provider.
- * Not used by caller.
- * @draft ICU 3.4
- */
- int32_t a, b, c;
-
-
- /**
- * Text provider properties. This set of flags is maintainted by the
- * text provider implementation.
- * @draft ICU 3.4
- */
- int32_t providerProperties;
-
-
-
- /** descriptor for the text chunk that includes or is adjacent to
- * the current iteration position.
- * @draft ICU 3.4
+ * (private) Alignment padding.
+ * Do not use, reserved for use by the UText framework only.
+ * @internal
*/
- UTextChunk chunk;
+ int32_t reserved1, reserved2, reserved3;
/**
* (public) Function pointer for UTextClone
*
* @see UTextClone
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextClone *clone;
@@ -1137,7 +1195,7 @@ struct UText {
* May be expensive to compute!
*
* @see UTextLength
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextNativeLength *nativeLength;
@@ -1145,7 +1203,7 @@ struct UText {
* (public) Function pointer for UTextAccess.
*
* @see UTextAccess
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextAccess *access;
@@ -1153,7 +1211,7 @@ struct UText {
* (public) Function pointer for UTextExtract.
*
* @see UTextExtract
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextExtract *extract;
@@ -1161,7 +1219,7 @@ struct UText {
* (public) Function pointer for UTextReplace.
*
* @see UTextReplace
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextReplace *replace;
@@ -1169,7 +1227,7 @@ struct UText {
* (public) Function pointer for UTextCopy.
*
* @see UTextCopy
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextCopy *copy;
@@ -1177,7 +1235,7 @@ struct UText {
* (public) Function pointer for UTextMapOffsetToNative.
*
* @see UTextMapOffsetToNative
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextMapOffsetToNative *mapOffsetToNative;
@@ -1185,7 +1243,7 @@ struct UText {
* (public) Function pointer for UTextMapNativeIndexToUTF16.
*
* @see UTextMapNativeIndexToUTF16
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextMapNativeIndexToUTF16 *mapNativeIndexToUTF16;
@@ -1193,11 +1251,239 @@ struct UText {
* (public) Function pointer for UTextClose.
*
* @see UTextClose
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
UTextClose *close;
+
+ /**
+ * (private) Spare function pointer
+ * @internal
+ */
+
+ UTextClose *spare1;
+ /**
+ * (private) Spare function pointer
+ * @internal
+ */
+ UTextClose *spare2;
+
+ /**
+ * (private) Spare function pointer
+ * @internal
+ */
+ UTextClose *spare3;
+
+};
+typedef struct UTextFuncs UTextFuncs;
+
+#endif
+
+#ifndef U_HIDE_DRAFT_API
+ /**
+ * UText struct. Provides the interface between the generic UText access code
+ * and the UText provider code that works on specific kinds of
+ * text (UTF-8, noncontiguous UTF-16, whatever.)
+ *
+ * Applications that are using predefined types of text providers
+ * to pass text data to ICU services will have no need to view the
+ * internals of the UText structs that they open.
+ *
+ * @draft ICU 3.6
+ */
+struct UText {
+ /**
+ * (private) Magic. Used to help detect when UText functions are handed
+ * invalid or unitialized UText structs.
+ * utext_openXYZ() functions take an initialized,
+ * but not necessarily open, UText struct as an
+ * optional fill-in parameter. This magic field
+ * is used to check for that initialization.
+ * Text provider close functions must NOT clear
+ * the magic field because that would prevent
+ * reuse of the UText struct.
+ * @internal
+ */
+ uint32_t magic;
+
+
+ /**
+ * (private) Flags for managing the allocation and freeing of
+ * memory associated with this UText.
+ * @internal
+ */
+ int32_t flags;
+
+
+ /**
+ * Text provider properties. This set of flags is maintainted by the
+ * text provider implementation.
+ * @draft ICU 3.4
+ */
+ int32_t providerProperties;
+
+ /**
+ * (public) sizeOfStruct=sizeof(UText)
+ * Allows possible backward compatible extension.
+ *
+ * @draft ICU 3.4
+ */
+ int32_t sizeOfStruct;
+
+ /* ------ 16 byte alignment boundary ----------- */
+
+
+ /**
+ * (protected) Native index of the first character position following
+ * the current chunk.
+ * @draft ICU 3.6
+ */
+ int64_t chunkNativeLimit;
+
+ /**
+ * (protected) Size in bytes of the extra space (pExtra).
+ * @draft ICU 3.4
+ */
+ int32_t extraSize;
+
+ /**
+ * (protected) The highest chunk offset where native indexing and
+ * chunk (UTF-16) indexing correspond. For UTF-16 sources, value
+ * will be equal to chunkLength.
+ *
+ * @draft ICU 3.6
+ */
+ int32_t nativeIndexingLimit;
+
+ /* ---- 16 byte alignment boundary------ */
+
+ /**
+ * (protected) Native index of the first character in the text chunk.
+ * @draft ICU 3.6
+ */
+ int64_t chunkNativeStart;
+
+ /**
+ * (protected) Current iteration position within the text chunk (UTF-16 buffer).
+ * This is the index to the character that will be returned by utext_next32().
+ * @draft ICU 3.6
+ */
+ int32_t chunkOffset;
+
+ /**
+ * (protected) Length the text chunk (UTF-16 buffer), in UChars.
+ * @draft ICU 3.6
+ */
+ int32_t chunkLength;
+
+ /* ---- 16 byte alignment boundary-- */
+
+
+ /**
+ * (protected) pointer to a chunk of text in UTF-16 format.
+ * May refer either to original storage of the source of the text, or
+ * if conversion was required, to a buffer owned by the UText.
+ * @draft ICU 3.6
+ */
+ const UChar *chunkContents;
+
+ /**
+ * (public) Pointer to Dispatch table for accessing functions for this UText.
+ * @draft ICU 3.6
+ */
+ UTextFuncs *pFuncs;
+
+ /**
+ * (protected) Pointer to additional space requested by the
+ * text provider during the utext_open operation.
+ * @draft ICU 3.4
+ */
+ void *pExtra;
+
+ /**
+ * (protected) Pointer to string or text-containin object or similar.
+ * This is the source of the text that this UText is wrapping, in a format
+ * that is known to the text provider functions.
+ * @draft ICU 3.4
+ */
+ const void *context;
+
+ /* --- 16 byte alignment boundary--- */
+
+ /**
+ * (protected) Pointer fields available for use by the text provider.
+ * Not used by UText common code.
+ * @draft ICU 3.6
+ */
+ const void *p;
+ /**
+ * (protected) Pointer fields available for use by the text provider.
+ * Not used by UText common code.
+ * @draft ICU 3.6
+ */
+ const void *q;
+ /**
+ * (protected) Pointer fields available for use by the text provider.
+ * Not used by UText common code.
+ * @draft ICU 3.6
+ */
+ const void *r;
+
+ /**
+ * Private field reserved for future use by the UText framework
+ * itself. This is not to be touched by the text providers.
+ * @internal ICU 3.4
+ */
+ void *privP;
+
+
+ /* --- 16 byte alignment boundary--- */
+
+
+ /**
+ * (protected) Integer field reserved for use by the text provider.
+ * Not used by the UText framework, or by the client (user) of the UText.
+ * @draft ICU 3.4
+ */
+ int64_t a;
+
+ /**
+ * (protected) Integer field reserved for use by the text provider.
+ * Not used by the UText framework, or by the client (user) of the UText.
+ * @draft ICU 3.4
+ */
+ int32_t b;
+
+ /**
+ * (protected) Integer field reserved for use by the text provider.
+ * Not used by the UText framework, or by the client (user) of the UText.
+ * @draft ICU 3.4
+ */
+ int32_t c;
+
+ /* ---- 16 byte alignment boundary---- */
+
+
+ /**
+ * Private field reserved for future use by the UText framework
+ * itself. This is not to be touched by the text providers.
+ * @internal ICU 3.4
+ */
+ int64_t privA;
+ /**
+ * Private field reserved for future use by the UText framework
+ * itself. This is not to be touched by the text providers.
+ * @internal ICU 3.4
+ */
+ int32_t privB;
+ /**
+ * Private field reserved for future use by the UText framework
+ * itself. This is not to be touched by the text providers.
+ * @internal ICU 3.4
+ */
+ int32_t privC;
};
+#endif
/**
* Common function for use by Text Provider implementations to allocate and/or initialize
@@ -1220,74 +1506,47 @@ utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status);
/**
* @internal
+ * Value used to help identify correctly initialized UText structs.
+ * Note: must be publicly visible so that UTEXT_INITIALIZER can access it.
*/
enum {
UTEXT_MAGIC = 0x345ad82c
};
-
-
-/**
- * Initializer for a UTextChunk
- * @internal
- */
-#define UTEXT_CHUNK_INIT { \
- NULL, /* contents */ \
- 0, /* offset */ \
- 0, /* length */ \
- 0, /* start */ \
- 0, /* limit */ \
- FALSE, /* nonUTF16idx */ \
- FALSE, FALSE, FALSE, /* padding1,2,3 */ \
- 0, 0, /* padInt1, 2 */ \
- sizeof(UTextChunk) \
-}
-
-
-
-/**
- * Initializer for the first part of a UText struct, the part that is
- * in common for all types of text providers.
- *
- * @internal
- */
-#define UTEXT_INITIALIZER_HEAD \
- NULL, /* context */ \
- NULL, NULL, NULL, /* p, q, r */ \
- NULL, /* pExtra */ \
- 0, /* extraSize */ \
- 0, /* flags */ \
- UTEXT_MAGIC, /* magic */ \
- sizeof(UText), /* sizeOfStruct */ \
- 0, 0, 0, /* a, b, c */ \
- 0, /* providerProps */ \
- UTEXT_CHUNK_INIT /* UTextChunk */
-
-
+#ifndef U_HIDE_DRAFT_API
/**
* initializer to be used with local (stack) instances of a UText
* struct. UText structs must be initialized before passing
* them to one of the utext_open functions.
*
- * @draft ICU 3.4
+ * @draft ICU 3.6
*/
-#define UTEXT_INITIALIZER { \
- UTEXT_INITIALIZER_HEAD, \
- NULL, /* clone () */ \
- NULL, /* length () */ \
- NULL, /* access () */ \
- NULL, /* extract () */ \
- NULL, /* replace () */ \
- NULL, /* copy () */ \
- NULL, NULL, /* map * 2 () */ \
- NULL /* close () */ \
-}
+#define UTEXT_INITIALIZER { \
+ UTEXT_MAGIC, /* magic */ \
+ 0, /* flags */ \
+ 0, /* providerProps */ \
+ sizeof(UText), /* sizeOfStruct */ \
+ 0, /* chunkNativeLimit */ \
+ 0, /* extraSize */ \
+ 0, /* nativeIndexingLimit */ \
+ 0, /* chunkNativeStart */ \
+ 0, /* chunkOffset */ \
+ 0, /* chunkLength */ \
+ NULL, /* chunkContents */ \
+ NULL, /* pFuncs */ \
+ NULL, /* pExtra */ \
+ NULL, /* context */ \
+ NULL, NULL, NULL, /* p, q, r */ \
+ NULL, /* privP */ \
+ 0, 0, 0, /* a, b, c */ \
+ 0, 0, 0 /* privA,B,C, */ \
+ }
-U_CDECL_END
+#endif /* U_HIDE_DRAFT_API */
+U_CDECL_END
-#endif /* U_HIDE_DRAFT_API */
#endif
diff --git a/Build/source/libs/icu-xetex/common/unicode/utf.h b/Build/source/libs/icu-xetex/common/unicode/utf.h
index 71abc4218dc..2dfef63d66f 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utf.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utf.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -63,6 +63,14 @@
* malformed sequences can be expressed unambiguously with a distinct subrange
* of Unicode code points.)
*
+ * The regular "safe" macros require that the initial, passed-in string index
+ * is within bounds. They only check the index when they read more than one
+ * code unit. This is usually done with code similar to the following loop:
+ * <pre>while(i<length) {
+ * U16_NEXT(s, i, length, c);
+ * // use c
+ * }</pre>
+ *
* When it is safe to assume that text is well-formed UTF-16
* (does not contain single, unpaired surrogates), then one can use
* U16_..._UNSAFE macros.
@@ -80,6 +88,8 @@
* The unsafe UTF-8 macros are entirely implemented inside the macro definitions
* and are fast, while the safe UTF-8 macros call functions for all but the
* trivial (ASCII) cases.
+ * (ICU 3.6 optimizes U8_NEXT() and U8_APPEND() to handle most other common
+ * characters inline as well.)
*
* Unlike with UTF-16, malformed sequences cannot be expressed with distinct
* code point values (0..U+10ffff). They are indicated with negative values instead.
@@ -157,8 +167,6 @@
(uint32_t)(c)<=0x10ffff && \
!U_IS_UNICODE_NONCHAR(c)))
-#ifndef U_HIDE_DRAFT_API
-
/**
* Is this code point a BMP code point (U+0000..U+ffff)?
* @param c 32-bit code point
@@ -174,8 +182,6 @@
* @stable ICU 2.8
*/
#define U_IS_SUPPLEMENTARY(c) ((uint32_t)((c)-0x10000)<=0xfffff)
-
-#endif /*U_HIDE_DRAFT_API*/
/**
* Is this code point a lead surrogate (U+d800..U+dbff)?
diff --git a/Build/source/libs/icu-xetex/common/unicode/utf16.h b/Build/source/libs/icu-xetex/common/unicode/utf16.h
index 217c27429b7..cd8c5c1ed10 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utf16.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utf16.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -179,7 +179,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i<length
+ * @param i string offset, must be start<=i<length
* @param length string length
* @param c output UChar32 variable
* @see U16_GET_UNSAFE
@@ -243,7 +243,7 @@
* will be returned as the code point.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param c output UChar32 variable
* @see U16_NEXT_UNSAFE
@@ -292,7 +292,7 @@
* then isError is set to TRUE.
*
* @param s const UChar * string buffer
- * @param i string offset, i<length
+ * @param i string offset, must be i<capacity
* @param capacity size of the string buffer
* @param c code point to append
* @param isError output UBool set to TRUE if an error occurs, otherwise not modified
@@ -332,7 +332,7 @@
* "Safe" macro, handles unpaired surrogates and checks for string boundaries.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @see U16_FWD_1_UNSAFE
* @stable ICU 2.4
@@ -370,7 +370,7 @@
* "Safe" macro, handles unpaired surrogates and checks for string boundaries.
*
* @param s const UChar * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param n number of code points to skip
* @see U16_FWD_N_UNSAFE
@@ -413,7 +413,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<=i
* @see U16_SET_CP_START_UNSAFE
* @stable ICU 2.4
*/
@@ -468,7 +468,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @param c output UChar32 variable
* @see U16_PREV_UNSAFE
* @stable ICU 2.4
@@ -509,7 +509,7 @@
*
* @param s const UChar * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @see U16_BACK_1_UNSAFE
* @stable ICU 2.4
*/
@@ -549,7 +549,7 @@
*
* @param s const UChar * string
* @param start start of string
- * @param i string offset, i<length
+ * @param i string offset, must be start<i
* @param n number of code points to skip
* @see U16_BACK_N_UNSAFE
* @stable ICU 2.4
diff --git a/Build/source/libs/icu-xetex/common/unicode/utf8.h b/Build/source/libs/icu-xetex/common/unicode/utf8.h
index b66ded8d6c0..ff788403048 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utf8.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utf8.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -48,8 +48,8 @@
* @internal
*/
#ifdef U_UTF8_IMPL
-U_INTERNAL const uint8_t
-#elif defined(U_STATIC_IMPLEMENTATION)
+U_EXPORT const uint8_t
+#elif defined(U_STATIC_IMPLEMENTATION) || defined(U_COMMON_IMPLEMENTATION)
U_CFUNC const uint8_t
#else
U_CFUNC U_IMPORT const uint8_t /* U_IMPORT2? */ /*U_IMPORT*/
@@ -181,7 +181,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset
- * @param i string offset, start<=i<length
+ * @param i string offset, must be start<=i<length
* @param length string length
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_GET_UNSAFE
@@ -213,7 +213,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* @stable ICU 2.4
*/
#define U8_NEXT_UNSAFE(s, i, c) { \
- (c)=(s)[(i)++]; \
+ (c)=(uint8_t)(s)[(i)++]; \
if((uint8_t)((c)-0xc0)<0x35) { \
uint8_t __count=U8_COUNT_TRAIL_BYTES(c); \
U8_MASK_LEAD_BYTE(c, __count); \
@@ -243,16 +243,34 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* c is set to a negative value.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_NEXT_UNSAFE
* @stable ICU 2.4
*/
#define U8_NEXT(s, i, length, c) { \
- (c)=(s)[(i)++]; \
- if(((uint8_t)(c))>=0x80) { \
- if(U8_IS_LEAD(c)) { \
+ (c)=(uint8_t)(s)[(i)++]; \
+ if((c)>=0x80) { \
+ uint8_t __t1, __t2; \
+ if( /* handle U+1000..U+CFFF inline */ \
+ (0xe0<(c) && (c)<=0xec) && \
+ (((i)+1)<(length)) && \
+ (__t1=(uint8_t)((s)[i]-0x80))<=0x3f && \
+ (__t2=(uint8_t)((s)[(i)+1]-0x80))<= 0x3f \
+ ) { \
+ /* no need for (c&0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */ \
+ (c)=(UChar)(((c)<<12)|(__t1<<6)|__t2); \
+ (i)+=2; \
+ } else if( /* handle U+0080..U+07FF inline */ \
+ ((c)<0xe0 && (c)>=0xc2) && \
+ ((i)<(length)) && \
+ (__t1=(uint8_t)((s)[i]-0x80))<=0x3f \
+ ) { \
+ (c)=(UChar)((((c)&0x1f)<<6)|__t1); \
+ ++(i); \
+ } else if(U8_IS_LEAD(c)) { \
+ /* function call for "complicated" and error cases */ \
(c)=utf8_nextCharSafeBody((const uint8_t *)s, &(i), (int32_t)(length), c, -1); \
} else { \
(c)=U_SENTINEL; \
@@ -293,7 +311,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
}
/**
- * Append a code point to a string, overwriting 1 or 2 code units.
+ * Append a code point to a string, overwriting 1 to 4 bytes.
* The offset points to the current end of the string contents
* and is advanced (post-increment).
* "Safe" macro, checks for a valid code point.
@@ -302,18 +320,25 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* then isError is set to TRUE.
*
* @param s const uint8_t * string buffer
- * @param i string offset, i<length
- * @param length size of the string buffer
+ * @param i string offset, must be i<capacity
+ * @param capacity size of the string buffer
* @param c code point to append
* @param isError output UBool set to TRUE if an error occurs, otherwise not modified
* @see U8_APPEND_UNSAFE
* @stable ICU 2.4
*/
-#define U8_APPEND(s, i, length, c, isError) { \
+#define U8_APPEND(s, i, capacity, c, isError) { \
if((uint32_t)(c)<=0x7f) { \
(s)[(i)++]=(uint8_t)(c); \
+ } else if((uint32_t)(c)<=0x7ff && (i)+1<(capacity)) { \
+ (s)[(i)++]=(uint8_t)(((c)>>6)|0xc0); \
+ (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \
+ } else if((uint32_t)(c)<=0xd7ff && (i)+2<(capacity)) { \
+ (s)[(i)++]=(uint8_t)(((c)>>12)|0xe0); \
+ (s)[(i)++]=(uint8_t)((((c)>>6)&0x3f)|0x80); \
+ (s)[(i)++]=(uint8_t)(((c)&0x3f)|0x80); \
} else { \
- (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(length), c, &(isError)); \
+ (i)=utf8_appendCharSafeBody(s, (int32_t)(i), (int32_t)(capacity), c, &(isError)); \
} \
}
@@ -337,13 +362,13 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* "Safe" macro, checks for illegal sequences and for string boundaries.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @see U8_FWD_1_UNSAFE
* @stable ICU 2.4
*/
#define U8_FWD_1(s, i, length) { \
- uint8_t __b=(s)[(i)++]; \
+ uint8_t __b=(uint8_t)(s)[(i)++]; \
if(U8_IS_LEAD(__b)) { \
uint8_t __count=U8_COUNT_TRAIL_BYTES(__b); \
if((i)+__count>(length)) { \
@@ -383,7 +408,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* "Safe" macro, checks for illegal sequences and for string boundaries.
*
* @param s const uint8_t * string
- * @param i string offset, i<length
+ * @param i string offset, must be i<length
* @param length string length
* @param n number of code points to skip
* @see U8_FWD_N_UNSAFE
@@ -424,7 +449,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<=i
* @see U8_SET_CP_START_UNSAFE
* @stable ICU 2.4
*/
@@ -456,14 +481,14 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
* @stable ICU 2.4
*/
#define U8_PREV_UNSAFE(s, i, c) { \
- (c)=(s)[--(i)]; \
+ (c)=(uint8_t)(s)[--(i)]; \
if(U8_IS_TRAIL(c)) { \
uint8_t __b, __count=1, __shift=6; \
\
/* c is a trail byte */ \
(c)&=0x3f; \
for(;;) { \
- __b=(s)[--(i)]; \
+ __b=(uint8_t)(s)[--(i)]; \
if(__b>=0xc0) { \
U8_MASK_LEAD_BYTE(__b, __count); \
(c)|=(UChar32)__b<<__shift; \
@@ -492,16 +517,16 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @param c output UChar32 variable, set to <0 in case of an error
* @see U8_PREV_UNSAFE
* @stable ICU 2.4
*/
#define U8_PREV(s, start, i, c) { \
- (c)=(s)[--(i)]; \
+ (c)=(uint8_t)(s)[--(i)]; \
if((c)>=0x80) { \
if((c)<=0xbf) { \
- (c)=utf8_prevCharSafeBody(s, start, &(i), c, -1); \
+ (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -1); \
} else { \
(c)=U_SENTINEL; \
} \
@@ -531,7 +556,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i
+ * @param i string offset, must be start<i
* @see U8_BACK_1_UNSAFE
* @stable ICU 2.4
*/
@@ -571,7 +596,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start index of the start of the string
- * @param i string offset, i<length
+ * @param i string offset, must be start<i
* @param n number of code points to skip
* @see U8_BACK_N_UNSAFE
* @stable ICU 2.4
@@ -612,7 +637,7 @@ utf8_back1SafeBody(const uint8_t *s, int32_t start, int32_t i);
*
* @param s const uint8_t * string
* @param start starting string offset (usually 0)
- * @param i string offset, start<=i<=length
+ * @param i string offset, must be start<=i<=length
* @param length string length
* @see U8_SET_CP_LIMIT_UNSAFE
* @stable ICU 2.4
diff --git a/Build/source/libs/icu-xetex/common/unicode/utf_old.h b/Build/source/libs/icu-xetex/common/unicode/utf_old.h
index 20bf9b0aa8d..2397889960e 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utf_old.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utf_old.h
@@ -89,7 +89,7 @@
* accordingly. UTF-16 was the default.</p>
*
* <p>This concept has been abandoned.
- * A lot of the ICU source code assumes UChar srings are in UTF-16.
+ * A lot of the ICU source code assumes UChar strings are in UTF-16.
* This is especially true for low-level code like
* conversion, normalization, and collation.
* The utf.h header enforces the default of UTF-16.
diff --git a/Build/source/libs/icu-xetex/common/unicode/utrace.h b/Build/source/libs/icu-xetex/common/unicode/utrace.h
index edf50b0c2f7..bacca6df16c 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utrace.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utrace.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003-2005, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -30,8 +30,6 @@
U_CDECL_BEGIN
-#ifndef U_HIDE_DRAFT_API
-
/**
* Trace severity levels. Higher levels increase the verbosity of the trace output.
* @see utrace_setLevel
@@ -85,8 +83,6 @@ typedef enum UTraceFunctionNumber {
UTRACE_COLLATION_LIMIT
} UTraceFunctionNumber;
-#endif /*U_HIDE_DRAFT_API*/
-
/**
* Setter for the trace level.
* @param traceLevel A UTraceLevel value.
diff --git a/Build/source/libs/icu-xetex/common/unicode/utypes.h b/Build/source/libs/icu-xetex/common/unicode/utypes.h
index 2672c74289c..7aceb27f982 100644
--- a/Build/source/libs/icu-xetex/common/unicode/utypes.h
+++ b/Build/source/libs/icu-xetex/common/unicode/utypes.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -54,6 +54,13 @@
#include "unicode/uobslete.h"
#endif
+#ifdef U_HIDE_INTERNAL_API
+#include "unicode/uintrnal.h"
+#endif
+
+#ifdef U_HIDE_SYSTEM_API
+#include "unicode/usystem.h"
+#endif
/*!
* \file
@@ -190,11 +197,14 @@
* @stable ICU 2.4
*/
#define U_ICUDATA_ENTRY_POINT U_DEF2_ICUDATA_ENTRY_POINT(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM)
+
/**
+ * Do not use.
* @internal
*/
#define U_DEF2_ICUDATA_ENTRY_POINT(major, minor) U_DEF_ICUDATA_ENTRY_POINT(major, minor)
/**
+ * Do not use.
* @internal
*/
#define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt##major##minor##_dat
@@ -322,7 +332,7 @@ typedef void* UClassID;
* \def U_DATA_API
* Set to export library symbols from inside the stubdata library,
* and to import them from outside.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
/**
@@ -476,10 +486,11 @@ typedef void* UClassID;
*
* Note: This is currently only done on Windows because
* some Linux/Unix compilers have problems with defining global new/delete.
- * On Windows, WIN32 is defined, and it is _MSC_Ver>=1200 for MSVC 6.0 and higher.
+ * On Windows, WIN32 is defined, and it is _MSC_VER>=1200 for MSVC 6.0 and higher.
*/
-#if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_Ver>=1200) && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION))
+#if defined(XP_CPLUSPLUS) && defined(U_WINDOWS) && (_MSC_VER>=1200) && U_DEBUG && (defined(U_COMMON_IMPLEMENTATION) || defined(U_I18N_IMPLEMENTATION) || defined(U_LAYOUT_IMPLEMENTATION) || defined(U_USTDIO_IMPLEMENTATION))
+#ifndef U_HIDE_INTERNAL_API
/**
* Global operator new, defined only inside ICU4C, must not be used.
* Crashes intentionally.
@@ -526,6 +537,7 @@ operator delete[](void * /*p*/) {
*q=5; /* break it */
}
+#endif /* U_HIDE_INTERNAL_API */
#endif
/*===========================================================================*/
@@ -586,7 +598,7 @@ typedef enum UErrorCode {
U_PARSE_ERROR = 9, /**< Equivalent to Java ParseException */
U_INVALID_CHAR_FOUND = 10, /**< Character conversion: Unmappable input sequence. In other APIs: Invalid character. */
U_TRUNCATED_CHAR_FOUND = 11, /**< Character conversion: Incomplete input sequence. */
- U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units.. */
+ U_ILLEGAL_CHAR_FOUND = 12, /**< Character conversion: Illegal input sequence/combination of input units. */
U_INVALID_TABLE_FORMAT = 13, /**< Conversion table file found, but corrupted */
U_INVALID_TABLE_FILE = 14, /**< Conversion table file not found */
U_BUFFER_OVERFLOW_ERROR = 15, /**< A result would not fit in the supplied buffer */
@@ -671,8 +683,8 @@ typedef enum UErrorCode {
/*
* the error code range 0x10200 0x102ff are reserved for Break Iterator related error
*/
+ U_BRK_INTERNAL_ERROR=0x10200, /**< An internal error (bug) was detected. */
U_BRK_ERROR_START=0x10200, /**< Start of codes indicating Break Iterator failures */
- U_BRK_INTERNAL_ERROR, /**< An internal error (bug) was detected. */
U_BRK_HEX_DIGITS_EXPECTED, /**< Hex digits expected as part of a escaped char in a rule. */
U_BRK_SEMICOLON_EXPECTED, /**< Missing ';' at the end of a RBBI rule. */
U_BRK_RULE_SYNTAX, /**< Syntax error in RBBI rule. */
@@ -691,8 +703,8 @@ typedef enum UErrorCode {
/*
* The error codes in the range 0x10300-0x103ff are reserved for regular expression related errrs
*/
+ U_REGEX_INTERNAL_ERROR=0x10300, /**< An internal error (bug) was detected. */
U_REGEX_ERROR_START=0x10300, /**< Start of codes indicating Regexp failures */
- U_REGEX_INTERNAL_ERROR, /**< An internal error (bug) was detected. */
U_REGEX_RULE_SYNTAX, /**< Syntax error in regexp pattern. */
U_REGEX_INVALID_STATE, /**< RegexMatcher in invalid state for requested operation */
U_REGEX_BAD_ESCAPE_SEQUENCE, /**< Unrecognized backslash escape sequence in pattern */
@@ -711,14 +723,15 @@ typedef enum UErrorCode {
/*
* The error code in the range 0x10400-0x104ff are reserved for IDNA related error codes
*/
+ U_IDNA_PROHIBITED_ERROR=0x10400,
U_IDNA_ERROR_START=0x10400,
- U_IDNA_PROHIBITED_ERROR,
U_IDNA_UNASSIGNED_ERROR,
U_IDNA_CHECK_BIDI_ERROR,
U_IDNA_STD3_ASCII_RULES_ERROR,
U_IDNA_ACE_PREFIX_ERROR,
U_IDNA_VERIFICATION_ERROR,
U_IDNA_LABEL_TOO_LONG_ERROR,
+ U_IDNA_ZERO_LENGTH_LABEL_ERROR,
U_IDNA_ERROR_LIMIT,
/*
* Aliases for StringPrep
diff --git a/Build/source/libs/icu-xetex/common/unicode/uversion.h b/Build/source/libs/icu-xetex/common/unicode/uversion.h
index fdf251c2b22..156dd7fd93b 100644
--- a/Build/source/libs/icu-xetex/common/unicode/uversion.h
+++ b/Build/source/libs/icu-xetex/common/unicode/uversion.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
@@ -67,7 +67,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_MINOR_NUM 4
+#define U_ICU_VERSION_MINOR_NUM 6
/** The current ICU patchlevel version as an integer.
* This value will change in the subsequent releases of ICU
@@ -79,20 +79,20 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SUFFIX _3_4
+#define U_ICU_VERSION_SUFFIX _3_6
/** The current ICU library version as a dotted-decimal string. The patchlevel
* only appears in this string if it non-zero.
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
-#define U_ICU_VERSION "3.4"
+#define U_ICU_VERSION "3.6"
/** The current ICU library major/minor version as a string without dots, for library name suffixes.
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
-#define U_ICU_VERSION_SHORT "34"
+#define U_ICU_VERSION_SHORT "36"
/** An ICU version consists of up to 4 numbers from 0..255.
* @stable ICU 2.4
@@ -119,13 +119,21 @@ typedef uint8_t UVersionInfo[U_MAX_VERSION_LENGTH];
#define U_ICU_NAMESPACE icu
namespace U_ICU_NAMESPACE { }
#else
-#define U_ICU_NAMESPACE icu_3_4
+#define U_ICU_NAMESPACE icu_3_6
namespace U_ICU_NAMESPACE { }
namespace icu = U_ICU_NAMESPACE;
#endif
+
+#ifndef U_USING_ICU_NAMESPACE
+# define U_USING_ICU_NAMESPACE 1
+#endif
+
+#if U_USING_ICU_NAMESPACE
U_NAMESPACE_USE
#endif
+#endif
+
/*===========================================================================*/
/* General version helper functions. Definitions in putil.c */
diff --git a/Build/source/libs/icu-xetex/common/uniset.cpp b/Build/source/libs/icu-xetex/common/uniset.cpp
index e93462d7a82..50e786304eb 100644
--- a/Build/source/libs/icu-xetex/common/uniset.cpp
+++ b/Build/source/libs/icu-xetex/common/uniset.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -339,24 +339,27 @@ int32_t UnicodeSet::findCodePoint(UChar32 c) const {
// Return the smallest i such that c < list[i]. Assume
// list[len - 1] == HIGH and that c is legal (0..HIGH-1).
- if (c < list[0]) return 0;
+ if (c < list[0])
+ return 0;
// High runner test. c is often after the last range, so an
// initial check for this condition pays off.
- if (len >= 2 && c >= list[len-2]) return len-1;
+ if (len >= 2 && c >= list[len-2])
+ return len-1;
int32_t lo = 0;
int32_t hi = len - 1;
// invariant: c >= list[lo]
// invariant: c < list[hi]
for (;;) {
int32_t i = (lo + hi) >> 1;
- if (i == lo) return hi;
- if (c < list[i]) {
+ if (i == lo) {
+ break; // Found!
+ } else if (c < list[i]) {
hi = i;
} else {
lo = i;
}
}
- return 0; // To make compiler happy; never reached
+ return hi;
}
/**
diff --git a/Build/source/libs/icu-xetex/common/uniset_props.cpp b/Build/source/libs/icu-xetex/common/uniset_props.cpp
index 2e619904f72..fe6e1291878 100644
--- a/Build/source/libs/icu-xetex/common/uniset_props.cpp
+++ b/Build/source/libs/icu-xetex/common/uniset_props.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -67,11 +67,11 @@
#define UPPER_N ((UChar)78) /*N*/
#define EQUALS ((UChar)0x003D) /*=*/
-static const UChar POSIX_OPEN[] = { SET_OPEN,COLON,0 }; // "[:"
+//static const UChar POSIX_OPEN[] = { SET_OPEN,COLON,0 }; // "[:"
static const UChar POSIX_CLOSE[] = { COLON,SET_CLOSE,0 }; // ":]"
-static const UChar PERL_OPEN[] = { BACKSLASH,LOWER_P,0 }; // "\\p"
+//static const UChar PERL_OPEN[] = { BACKSLASH,LOWER_P,0 }; // "\\p"
static const UChar PERL_CLOSE[] = { CLOSE_BRACE,0 }; // "}"
-static const UChar NAME_OPEN[] = { BACKSLASH,UPPER_N,0 }; // "\\N"
+//static const UChar NAME_OPEN[] = { BACKSLASH,UPPER_N,0 }; // "\\N"
static const UChar HYPHEN_RIGHT_BRACE[] = {HYPHEN,SET_CLOSE,0}; /*-]*/
// Special property set IDs
@@ -83,47 +83,11 @@ static const char ASSIGNED[] = "Assigned"; // [:^Cn:]
#define NAME_PROP "na"
#define NAME_PROP_LENGTH 2
-// TEMPORARY: Remove when deprecated category code constructor is removed.
-static const UChar CATEGORY_NAMES[] = {
- // Must be kept in sync with uchar.h/UCharCategory
- 0x43, 0x6E, /* "Cn" */
- 0x4C, 0x75, /* "Lu" */
- 0x4C, 0x6C, /* "Ll" */
- 0x4C, 0x74, /* "Lt" */
- 0x4C, 0x6D, /* "Lm" */
- 0x4C, 0x6F, /* "Lo" */
- 0x4D, 0x6E, /* "Mn" */
- 0x4D, 0x65, /* "Me" */
- 0x4D, 0x63, /* "Mc" */
- 0x4E, 0x64, /* "Nd" */
- 0x4E, 0x6C, /* "Nl" */
- 0x4E, 0x6F, /* "No" */
- 0x5A, 0x73, /* "Zs" */
- 0x5A, 0x6C, /* "Zl" */
- 0x5A, 0x70, /* "Zp" */
- 0x43, 0x63, /* "Cc" */
- 0x43, 0x66, /* "Cf" */
- 0x43, 0x6F, /* "Co" */
- 0x43, 0x73, /* "Cs" */
- 0x50, 0x64, /* "Pd" */
- 0x50, 0x73, /* "Ps" */
- 0x50, 0x65, /* "Pe" */
- 0x50, 0x63, /* "Pc" */
- 0x50, 0x6F, /* "Po" */
- 0x53, 0x6D, /* "Sm" */
- 0x53, 0x63, /* "Sc" */
- 0x53, 0x6B, /* "Sk" */
- 0x53, 0x6F, /* "So" */
- 0x50, 0x69, /* "Pi" */
- 0x50, 0x66, /* "Pf" */
- 0x00
-};
-
/**
* Delimiter string used in patterns to close a category reference:
* ":]". Example: "[:Lu:]".
*/
-static const UChar CATEGORY_CLOSE[] = {COLON, SET_CLOSE, 0x0000}; /* ":]" */
+//static const UChar CATEGORY_CLOSE[] = {COLON, SET_CLOSE, 0x0000}; /* ":]" */
U_NAMESPACE_BEGIN
@@ -142,10 +106,10 @@ isPerlOpen(const UnicodeString &pattern, int32_t pos) {
return pattern.charAt(pos)==BACKSLASH && ((c=pattern.charAt(pos+1))==LOWER_P || c==UPPER_P);
}
-static inline UBool
+/*static inline UBool
isPerlClose(const UnicodeString &pattern, int32_t pos) {
return pattern.charAt(pos)==CLOSE_BRACE;
-}
+}*/
static inline UBool
isNameOpen(const UnicodeString &pattern, int32_t pos) {
@@ -157,10 +121,10 @@ isPOSIXOpen(const UnicodeString &pattern, int32_t pos) {
return pattern.charAt(pos)==SET_OPEN && pattern.charAt(pos+1)==COLON;
}
-static inline UBool
+/*static inline UBool
isPOSIXClose(const UnicodeString &pattern, int32_t pos) {
return pattern.charAt(pos)==COLON && pattern.charAt(pos+1)==SET_CLOSE;
-}
+}*/
// TODO memory debugging provided inside uniset.cpp
// could be made available here but probably obsolete with use of modern
@@ -243,40 +207,6 @@ UnicodeSet::UnicodeSet(const UnicodeString& pattern, ParsePosition& pos,
_dbgct(this);
}
-#ifdef U_USE_UNICODESET_DEPRECATES
-/**
- * DEPRECATED Constructs a set from the given Unicode character category.
- * @param category an integer indicating the character category as
- * defined in uchar.h.
- * @deprecated To be removed after 2002-DEC-31
- */
-UnicodeSet::UnicodeSet(int8_t category, UErrorCode& status) :
- len(0), capacity(START_EXTRA), bufferCapacity(0),
- list(0), buffer(0), strings(0)
-{
- static const UChar OPEN[] = { 91, 58, 0 }; // "[:"
- static const UChar CLOSE[]= { 58, 93, 0 }; // ":]"
- if (U_SUCCESS(status)) {
- if (category < 0 || category >= U_CHAR_CATEGORY_COUNT) {
- status = U_ILLEGAL_ARGUMENT_ERROR;
- } else {
- UnicodeString pattern(FALSE, CATEGORY_NAMES + category*2, 2);
- pattern.insert(0, OPEN);
- pattern.append(CLOSE);
- list = (UChar32*) uprv_malloc(sizeof(UChar32) * capacity);
- /* test for NULL */
- if(list == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }else{
- allocateStrings();
- applyPattern(pattern, status);
- }
- }
- }
- _dbgct(this);
-}
-#endif
-
//----------------------------------------------------------------
// Public API
//----------------------------------------------------------------
@@ -774,7 +704,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars,
* patterns like /[^abc]/i work.
*/
if ((options & USET_CASE_INSENSITIVE) != 0) {
- closeOver(USET_CASE);
+ closeOver(USET_CASE_INSENSITIVE);
}
else if ((options & USET_ADD_CASE_MAPPINGS) != 0) {
closeOver(USET_ADD_CASE_MAPPINGS);
@@ -1360,7 +1290,7 @@ addCaseMapping(UnicodeSet &set, int32_t result, const UChar *full, UnicodeString
}
UnicodeSet& UnicodeSet::closeOver(int32_t attribute) {
- if (attribute & (USET_CASE | USET_ADD_CASE_MAPPINGS)) {
+ if (attribute & (USET_CASE_INSENSITIVE | USET_ADD_CASE_MAPPINGS)) {
UErrorCode status = U_ZERO_ERROR;
const UCaseProps *csp = ucase_getSingleton(&status);
if (U_SUCCESS(status)) {
@@ -1377,7 +1307,7 @@ UnicodeSet& UnicodeSet::closeOver(int32_t attribute) {
// start with input set to guarantee inclusion
// USET_CASE: remove strings because the strings will actually be reduced (folded);
// therefore, start with no strings and add only those needed
- if (attribute & USET_CASE) {
+ if (attribute & USET_CASE_INSENSITIVE) {
foldSet.strings->removeAllElements();
}
@@ -1390,7 +1320,7 @@ UnicodeSet& UnicodeSet::closeOver(int32_t attribute) {
UChar32 start = getRangeStart(i);
UChar32 end = getRangeEnd(i);
- if (attribute & USET_CASE) {
+ if (attribute & USET_CASE_INSENSITIVE) {
// full case closure
for (UChar32 cp=start; cp<=end; ++cp) {
ucase_addCaseClosure(csp, cp, &sa);
@@ -1414,7 +1344,7 @@ UnicodeSet& UnicodeSet::closeOver(int32_t attribute) {
}
}
if (strings != NULL && strings->size() > 0) {
- if (attribute & USET_CASE) {
+ if (attribute & USET_CASE_INSENSITIVE) {
for (int32_t j=0; j<strings->size(); ++j) {
str = *(const UnicodeString *) strings->elementAt(j);
str.foldCase();
diff --git a/Build/source/libs/icu-xetex/common/unistr_cnv.cpp b/Build/source/libs/icu-xetex/common/unistr_cnv.cpp
index 72afc3f4c19..adc0dda6d51 100644
--- a/Build/source/libs/icu-xetex/common/unistr_cnv.cpp
+++ b/Build/source/libs/icu-xetex/common/unistr_cnv.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -43,9 +43,9 @@ UnicodeString::UnicodeString(const char *codepageData,
fArray(fStackBuffer),
fFlags(kShortString)
{
- if(codepageData != 0) {
- doCodepageCreate(codepageData, (int32_t)uprv_strlen(codepageData), codepage);
- }
+ if(codepageData != 0) {
+ doCodepageCreate(codepageData, (int32_t)uprv_strlen(codepageData), codepage);
+ }
}
@@ -57,9 +57,9 @@ UnicodeString::UnicodeString(const char *codepageData,
fArray(fStackBuffer),
fFlags(kShortString)
{
- if(codepageData != 0) {
- doCodepageCreate(codepageData, dataLength, codepage);
- }
+ if(codepageData != 0) {
+ doCodepageCreate(codepageData, dataLength, codepage);
+ }
}
UnicodeString::UnicodeString(const char *src, int32_t srcLength,
@@ -70,35 +70,35 @@ UnicodeString::UnicodeString(const char *src, int32_t srcLength,
fArray(fStackBuffer),
fFlags(kShortString)
{
- if(U_SUCCESS(errorCode)) {
- // check arguments
- if(src==NULL) {
- // treat as an empty string, do nothing more
- } else if(srcLength<-1) {
- errorCode=U_ILLEGAL_ARGUMENT_ERROR;
- } else {
- // get input length
- if(srcLength==-1) {
- srcLength=(int32_t)uprv_strlen(src);
- }
- if(srcLength>0) {
- if(cnv!=0) {
- // use the provided converter
- ucnv_resetToUnicode(cnv);
- doCodepageCreate(src, srcLength, cnv, errorCode);
+ if(U_SUCCESS(errorCode)) {
+ // check arguments
+ if(src==NULL) {
+ // treat as an empty string, do nothing more
+ } else if(srcLength<-1) {
+ errorCode=U_ILLEGAL_ARGUMENT_ERROR;
} else {
- // use the default converter
- cnv=u_getDefaultConverter(&errorCode);
- doCodepageCreate(src, srcLength, cnv, errorCode);
- u_releaseDefaultConverter(cnv);
+ // get input length
+ if(srcLength==-1) {
+ srcLength=(int32_t)uprv_strlen(src);
+ }
+ if(srcLength>0) {
+ if(cnv!=0) {
+ // use the provided converter
+ ucnv_resetToUnicode(cnv);
+ doCodepageCreate(src, srcLength, cnv, errorCode);
+ } else {
+ // use the default converter
+ cnv=u_getDefaultConverter(&errorCode);
+ doCodepageCreate(src, srcLength, cnv, errorCode);
+ u_releaseDefaultConverter(cnv);
+ }
+ }
}
- }
- }
- if(U_FAILURE(errorCode)) {
- setToBogus();
+ if(U_FAILURE(errorCode)) {
+ setToBogus();
+ }
}
- }
}
//========================================
@@ -111,257 +111,260 @@ UnicodeString::extract(int32_t start,
uint32_t dstSize,
const char *codepage) const
{
- // if the arguments are illegal, then do nothing
- if(/*dstSize < 0 || */(dstSize > 0 && target == 0)) {
- return 0;
- }
-
- // pin the indices to legal values
- pinIndices(start, length);
-
- // create the converter
- UConverter *converter;
- UErrorCode status = U_ZERO_ERROR;
-
- // just write the NUL if the string length is 0
- if(length == 0) {
- if(dstSize >= 0x80000000) {
- // careful: dstSize is unsigned! (0xffffffff means "unlimited")
- // make sure that the NUL-termination works (takes int32_t)
- dstSize=0x7fffffff;
- }
- return u_terminateChars(target, dstSize, 0, &status);
- }
-
- // if the codepage is the default, use our cache
- // if it is an empty string, then use the "invariant character" conversion
- if (codepage == 0) {
- converter = u_getDefaultConverter(&status);
- } else if (*codepage == 0) {
- // use the "invariant characters" conversion
- int32_t destLength;
- // careful: dstSize is unsigned! (0xffffffff means "unlimited")
- if(dstSize >= 0x80000000) {
- destLength = length;
- // make sure that the NUL-termination works (takes int32_t)
- dstSize=0x7fffffff;
- } else if(length <= (int32_t)dstSize) {
- destLength = length;
+ // if the arguments are illegal, then do nothing
+ if(/*dstSize < 0 || */(dstSize > 0 && target == 0)) {
+ return 0;
+ }
+
+ // pin the indices to legal values
+ pinIndices(start, length);
+
+ // create the converter
+ UConverter *converter;
+ UErrorCode status = U_ZERO_ERROR;
+
+ // just write the NUL if the string length is 0
+ if(length == 0) {
+ if(dstSize >= 0x80000000) {
+ // careful: dstSize is unsigned! (0xffffffff means "unlimited")
+ // make sure that the NUL-termination works (takes int32_t)
+ dstSize=0x7fffffff;
+ }
+ return u_terminateChars(target, dstSize, 0, &status);
+ }
+
+ // if the codepage is the default, use our cache
+ // if it is an empty string, then use the "invariant character" conversion
+ if (codepage == 0) {
+ converter = u_getDefaultConverter(&status);
+ } else if (*codepage == 0) {
+ // use the "invariant characters" conversion
+ int32_t destLength;
+ // careful: dstSize is unsigned! (0xffffffff means "unlimited")
+ if(dstSize >= 0x80000000) {
+ destLength = length;
+ // make sure that the NUL-termination works (takes int32_t)
+ dstSize=0x7fffffff;
+ } else if(length <= (int32_t)dstSize) {
+ destLength = length;
+ } else {
+ destLength = (int32_t)dstSize;
+ }
+ u_UCharsToChars(getArrayStart() + start, target, destLength);
+ return u_terminateChars(target, (int32_t)dstSize, length, &status);
} else {
- destLength = (int32_t)dstSize;
+ converter = ucnv_open(codepage, &status);
}
- u_UCharsToChars(getArrayStart() + start, target, destLength);
- return u_terminateChars(target, (int32_t)dstSize, length, &status);
- } else {
- converter = ucnv_open(codepage, &status);
- }
-
- length = doExtract(start, length, target, (int32_t)dstSize, converter, status);
-
- // close the converter
- if (codepage == 0) {
- u_releaseDefaultConverter(converter);
- } else {
- ucnv_close(converter);
- }
-
- return length;
+
+ length = doExtract(start, length, target, (int32_t)dstSize, converter, status);
+
+ // close the converter
+ if (codepage == 0) {
+ u_releaseDefaultConverter(converter);
+ } else {
+ ucnv_close(converter);
+ }
+
+ return length;
}
int32_t
UnicodeString::extract(char *dest, int32_t destCapacity,
UConverter *cnv,
- UErrorCode &errorCode) const {
- if(U_FAILURE(errorCode)) {
- return 0;
- }
-
- if(isBogus() || destCapacity<0 || (destCapacity>0 && dest==0)) {
- errorCode=U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- // nothing to do?
- if(fLength<=0) {
- return u_terminateChars(dest, destCapacity, 0, &errorCode);
- }
-
- // get the converter
- UBool isDefaultConverter;
- if(cnv==0) {
- isDefaultConverter=TRUE;
- cnv=u_getDefaultConverter(&errorCode);
+ UErrorCode &errorCode) const
+{
if(U_FAILURE(errorCode)) {
- return 0;
+ return 0;
}
- } else {
- isDefaultConverter=FALSE;
- ucnv_resetFromUnicode(cnv);
- }
- // convert
- int32_t length=doExtract(0, fLength, dest, destCapacity, cnv, errorCode);
+ if(isBogus() || destCapacity<0 || (destCapacity>0 && dest==0)) {
+ errorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
- // release the converter
- if(isDefaultConverter) {
- u_releaseDefaultConverter(cnv);
- }
+ // nothing to do?
+ if(fLength<=0) {
+ return u_terminateChars(dest, destCapacity, 0, &errorCode);
+ }
- return length;
+ // get the converter
+ UBool isDefaultConverter;
+ if(cnv==0) {
+ isDefaultConverter=TRUE;
+ cnv=u_getDefaultConverter(&errorCode);
+ if(U_FAILURE(errorCode)) {
+ return 0;
+ }
+ } else {
+ isDefaultConverter=FALSE;
+ ucnv_resetFromUnicode(cnv);
+ }
+
+ // convert
+ int32_t length=doExtract(0, fLength, dest, destCapacity, cnv, errorCode);
+
+ // release the converter
+ if(isDefaultConverter) {
+ u_releaseDefaultConverter(cnv);
+ }
+
+ return length;
}
int32_t
UnicodeString::doExtract(int32_t start, int32_t length,
char *dest, int32_t destCapacity,
UConverter *cnv,
- UErrorCode &errorCode) const {
- if(U_FAILURE(errorCode)) {
- if(destCapacity!=0) {
- *dest=0;
+ UErrorCode &errorCode) const
+{
+ if(U_FAILURE(errorCode)) {
+ if(destCapacity!=0) {
+ *dest=0;
+ }
+ return 0;
+ }
+
+ const UChar *src=fArray+start, *srcLimit=src+length;
+ char *originalDest=dest;
+ const char *destLimit;
+
+ if(destCapacity==0) {
+ destLimit=dest=0;
+ } else if(destCapacity==-1) {
+ // Pin the limit to U_MAX_PTR if the "magic" destCapacity is used.
+ destLimit=(char*)U_MAX_PTR(dest);
+ // for NUL-termination, translate into highest int32_t
+ destCapacity=0x7fffffff;
+ } else {
+ destLimit=dest+destCapacity;
+ }
+
+ // perform the conversion
+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode);
+ length=(int32_t)(dest-originalDest);
+
+ // if an overflow occurs, then get the preflighting length
+ if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
+ char buffer[1024];
+
+ destLimit=buffer+sizeof(buffer);
+ do {
+ dest=buffer;
+ errorCode=U_ZERO_ERROR;
+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode);
+ length+=(int32_t)(dest-buffer);
+ } while(errorCode==U_BUFFER_OVERFLOW_ERROR);
}
- return 0;
- }
-
- const UChar *src=fArray+start, *srcLimit=src+length;
- char *originalDest=dest;
- const char *destLimit;
-
- if(destCapacity==0) {
- destLimit=dest=0;
- } else if(destCapacity==-1) {
- // Pin the limit to U_MAX_PTR if the "magic" destCapacity is used.
- destLimit=(char*)U_MAX_PTR(dest);
- // for NUL-termination, translate into highest int32_t
- destCapacity=0x7fffffff;
- } else {
- destLimit=dest+destCapacity;
- }
-
- // perform the conversion
- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode);
- length=(int32_t)(dest-originalDest);
-
- // if an overflow occurs, then get the preflighting length
- if(errorCode==U_BUFFER_OVERFLOW_ERROR) {
- char buffer[1024];
-
- destLimit=buffer+sizeof(buffer);
- do {
- dest=buffer;
- errorCode=U_ZERO_ERROR;
- ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &errorCode);
- length+=(int32_t)(dest-buffer);
- } while(errorCode==U_BUFFER_OVERFLOW_ERROR);
- }
-
- return u_terminateChars(originalDest, destCapacity, length, &errorCode);
+
+ return u_terminateChars(originalDest, destCapacity, length, &errorCode);
}
void
UnicodeString::doCodepageCreate(const char *codepageData,
- int32_t dataLength,
- const char *codepage)
+ int32_t dataLength,
+ const char *codepage)
{
- // if there's nothing to convert, do nothing
- if(codepageData == 0 || dataLength == 0 || dataLength < -1) {
- return;
- }
- if(dataLength == -1) {
- dataLength = (int32_t)uprv_strlen(codepageData);
- }
-
- UErrorCode status = U_ZERO_ERROR;
-
- // create the converter
- // if the codepage is the default, use our cache
- // if it is an empty string, then use the "invariant character" conversion
- UConverter *converter = (codepage == 0 ?
+ // if there's nothing to convert, do nothing
+ if(codepageData == 0 || dataLength == 0 || dataLength < -1) {
+ return;
+ }
+ if(dataLength == -1) {
+ dataLength = (int32_t)uprv_strlen(codepageData);
+ }
+
+ UErrorCode status = U_ZERO_ERROR;
+
+ // create the converter
+ // if the codepage is the default, use our cache
+ // if it is an empty string, then use the "invariant character" conversion
+ UConverter *converter = (codepage == 0 ?
u_getDefaultConverter(&status) :
*codepage == 0 ?
0 :
ucnv_open(codepage, &status));
- // if we failed, set the appropriate flags and return
- if(U_FAILURE(status)) {
- setToBogus();
- return;
- }
-
- // perform the conversion
- if(converter == 0) {
- // use the "invariant characters" conversion
- if(cloneArrayIfNeeded(dataLength, dataLength, FALSE)) {
- u_charsToUChars(codepageData, getArrayStart(), dataLength);
- fLength = dataLength;
+ // if we failed, set the appropriate flags and return
+ if(U_FAILURE(status)) {
+ setToBogus();
+ return;
+ }
+
+ // perform the conversion
+ if(converter == 0) {
+ // use the "invariant characters" conversion
+ if(cloneArrayIfNeeded(dataLength, dataLength, FALSE)) {
+ u_charsToUChars(codepageData, getArrayStart(), dataLength);
+ fLength = dataLength;
+ } else {
+ setToBogus();
+ }
+ return;
+ }
+
+ // convert using the real converter
+ doCodepageCreate(codepageData, dataLength, converter, status);
+ if(U_FAILURE(status)) {
+ setToBogus();
+ }
+
+ // close the converter
+ if(codepage == 0) {
+ u_releaseDefaultConverter(converter);
} else {
- setToBogus();
+ ucnv_close(converter);
}
- return;
- }
-
- // convert using the real converter
- doCodepageCreate(codepageData, dataLength, converter, status);
- if(U_FAILURE(status)) {
- setToBogus();
- }
-
- // close the converter
- if(codepage == 0) {
- u_releaseDefaultConverter(converter);
- } else {
- ucnv_close(converter);
- }
}
void
UnicodeString::doCodepageCreate(const char *codepageData,
int32_t dataLength,
UConverter *converter,
- UErrorCode &status) {
- if(U_FAILURE(status)) {
- return;
- }
-
- // set up the conversion parameters
- const char *mySource = codepageData;
- const char *mySourceEnd = mySource + dataLength;
- UChar *myTarget;
-
- // estimate the size needed:
- // 1.25 UChar's per source byte should cover most cases
- int32_t arraySize = dataLength + (dataLength >> 2);
-
- // we do not care about the current contents
- UBool doCopyArray = FALSE;
- for(;;) {
- if(!cloneArrayIfNeeded(arraySize, arraySize, doCopyArray)) {
- setToBogus();
- break;
+ UErrorCode &status)
+{
+ if(U_FAILURE(status)) {
+ return;
}
- // perform the conversion
- myTarget = fArray + fLength;
- ucnv_toUnicode(converter, &myTarget, fArray + fCapacity,
- &mySource, mySourceEnd, 0, TRUE, &status);
+ // set up the conversion parameters
+ const char *mySource = codepageData;
+ const char *mySourceEnd = mySource + dataLength;
+ UChar *myTarget;
+
+ // estimate the size needed:
+ // 1.25 UChar's per source byte should cover most cases
+ int32_t arraySize = dataLength + (dataLength >> 2);
+
+ // we do not care about the current contents
+ UBool doCopyArray = FALSE;
+ for(;;) {
+ if(!cloneArrayIfNeeded(arraySize, arraySize, doCopyArray)) {
+ setToBogus();
+ break;
+ }
- // update the conversion parameters
- fLength = (int32_t)(myTarget - fArray);
+ // perform the conversion
+ myTarget = fArray + fLength;
+ ucnv_toUnicode(converter, &myTarget, fArray + fCapacity,
+ &mySource, mySourceEnd, 0, TRUE, &status);
- // allocate more space and copy data, if needed
- if(status == U_BUFFER_OVERFLOW_ERROR) {
- // reset the error code
- status = U_ZERO_ERROR;
+ // update the conversion parameters
+ fLength = (int32_t)(myTarget - fArray);
- // keep the previous conversion results
- doCopyArray = TRUE;
+ // allocate more space and copy data, if needed
+ if(status == U_BUFFER_OVERFLOW_ERROR) {
+ // reset the error code
+ status = U_ZERO_ERROR;
- // estimate the new size needed, larger than before
- // try 2 UChar's per remaining source byte
- arraySize = (int32_t)(fLength + 2 * (mySourceEnd - mySource));
- } else {
- break;
+ // keep the previous conversion results
+ doCopyArray = TRUE;
+
+ // estimate the new size needed, larger than before
+ // try 2 UChar's per remaining source byte
+ arraySize = (int32_t)(fLength + 2 * (mySourceEnd - mySource));
+ } else {
+ break;
+ }
}
- }
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/common/unorm.cpp b/Build/source/libs/icu-xetex/common/unorm.cpp
index ee4e9fc7491..b89c3e1ffc0 100644
--- a/Build/source/libs/icu-xetex/common/unorm.cpp
+++ b/Build/source/libs/icu-xetex/common/unorm.cpp
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (c) 1996-2005, International Business Machines
+* Copyright (c) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* File unorm.cpp
@@ -148,10 +148,10 @@ isNorm32HangulOrJamo(uint32_t norm32) {
* Given isNorm32HangulOrJamo(),
* is this a Hangul syllable or a Jamo?
*/
-static inline UBool
+/*static inline UBool
isHangulJamoNorm32HangulOrJamoL(uint32_t norm32) {
return norm32<_NORM_MIN_JAMO_V;
-}
+}*/
/*
* Given norm32 for Jamo V or T,
@@ -191,7 +191,7 @@ U_CDECL_END
/* unorm_props_data.c is machine-generated by gennorm --csource */
#include "unorm_props_data.c"
-static const UBool formatVersion_2_1=TRUE, formatVersion_2_2=TRUE;
+static const UBool formatVersion_2_2=TRUE;
#else
@@ -1622,6 +1622,8 @@ _decompose(UChar *dest, int32_t destCapacity,
/* avoid compiler warnings */
norm32=0;
c=0;
+ cc=0;
+ trailCC=0;
if(srcLength>=0) {
/* string with length */
diff --git a/Build/source/libs/icu-xetex/common/unorm_props_data.c b/Build/source/libs/icu-xetex/common/unorm_props_data.c
index b67d9e4e099..16047b75bdc 100644
--- a/Build/source/libs/icu-xetex/common/unorm_props_data.c
+++ b/Build/source/libs/icu-xetex/common/unorm_props_data.c
@@ -1,48 +1,48 @@
/*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
* file name: unorm_props_data.c
*
- * machine-generated on: 2005-05-17
+ * machine-generated on: 2006-06-13
*/
static const UVersionInfo formatVersion={ 2,3,5,2 };
-static const UVersionInfo dataVersion={ 4,1,0,0 };
+static const UVersionInfo dataVersion={ 5,0,0,0 };
static const int32_t indexes[_NORM_INDEX_TOP]={
-0x9ef0,0x3e18,0x790,0x164,0,0x35,0x300,0xa0,0xc0,0xa0,0x29f0,0x2c00,0x1e16,0,0,0,
+0xa1a0,0x3e4b,0x7a7,0x16f,0,0x36,0x300,0xa0,0xc0,0xa0,0x2b00,0x2cf8,0x1e2c,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
static const uint16_t normTrie_index[2208]={
-0,0x889,0x7eb,0x7f3,0,0x531,0x32e,0x336,0x33e,0x346,0x34e,0x356,0,0x35e,0x365,0x36d,
-0x375,0x37d,0,0,0x7fa,0x539,0x540,0x548,0x4e3,0x4eb,0x16d,8,0x175,0x385,0x10,0x16,
-0x38d,0x395,0x39d,0x3a5,0x802,0,0x3ad,0x3b5,0,0,0,0,0x54f,0x80a,0x812,0,
-0x816,0x3bd,0x4f3,0x557,0,0,0x3c5,0x81e,0x822,0x827,0x82f,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x3cd,0x17d,0,0,0x4fb,0x185,0,
-0,0x18d,0x195,0,0,0x832,0x83a,0,0,0x503,0x19d,0,0x3d5,0x50b,0x3dc,0,
-0,0,0x3e3,0,0,0x83e,0x3eb,0,0,0x513,0x3f2,0,0,0,0x3f8,0,
-0,0x55e,0x846,0,0,0x565,0x56c,0,0x574,0x849,0x1a5,0x1ad,0x1b5,0x1bd,0x850,0,
-0,0x400,0,0,0,0,0,0x57b,0x8b2,0,0,0x51b,0,0x521,0x529,0,
-0,0,0,0,0,0,0,0,0,0,0x852,0,0,0,0,0,
+0,0x8b4,0x7ff,0x807,0,0x54d,0x336,0x33e,0x346,0x34e,0x356,0x35e,0,0x366,0x36d,0x375,
+0x37d,0x385,0,0,0x80e,0x555,0x55c,0x564,0x4ff,0x507,0x175,8,0x17d,0x38d,0x10,0x16,
+0x395,0x39d,0x3a5,0x3ad,0x816,0,0x3b5,0x3bd,0,0,0,0,0x56b,0x81e,0x826,0,
+0x82a,0x3c5,0x50f,0x573,0,0,0x3cd,0x832,0x836,0x83b,0x843,0,0,0,0,0x849,
+0,0,0,0,0,0,0,0,0,0x3d5,0x185,0,0,0x517,0x18d,0,
+0,0x195,0x19d,0,0,0x84e,0x856,0,0,0x51f,0x1a5,0,0x3dd,0x527,0x3e4,0,
+0,0,0x3eb,0,0,0x85a,0x3f3,0,0,0x52f,0x3fa,0,0,0,0x400,0,
+0,0x57a,0x862,0,0,0x581,0x588,0,0x590,0x865,0x1ad,0x1b5,0x1bd,0x1c5,0x86c,0,
+0,0x408,0,0,0,0,0,0x597,0x8dd,0,0,0x537,0,0x53d,0x545,0,
+0,0,0,0,0,0,0,0,0,0,0x86e,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x85a,0x85a,0,0,0,0,0x860,0,
-0,0,0,0,0,0x868,0,0,0,0x86b,0,0,0,0,0,0,
-0x872,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x1d,0x25,0x583,0x58a,0x592,0x87a,0,
-0x408,0x410,0x418,0x420,0x428,0x430,0x438,0x440,0x448,0x450,0x458,0x1c5,0x460,0x1cd,0x1d5,0x1dd,
-0x1e5,0x59a,0x5a2,0x5aa,0x5b2,0x2d,0x87e,0x886,0x35,0x3d,0x45,0x5ba,0x468,0x46f,0x474,0,
-0x47c,0x484,0x48c,0x494,0x49c,0x4a4,0,0x4ac,0,0x1eb,0,0,0,0,0,0,
-0,0,0,0x5c2,0x5ca,0x5d2,0x5da,0x5e2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x876,0x876,0,0,0,0,0x87c,0,
+0,0,0,0,0,0x884,0,0,0,0x887,0,0,0,0,0,0,
+0x88e,0,0,0,0,0,0,0,0x40f,0x414,0x41c,0x895,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x1d,0x25,0x59f,0x5a6,0x5ae,0x89d,0x8a0,
+0x424,0x42c,0x434,0x43c,0x444,0x44c,0x454,0x45c,0x464,0x46c,0x474,0x1cd,0x47c,0x1d5,0x1dd,0x1e5,
+0x1ed,0x5b6,0x5be,0x5c6,0x5ce,0x2d,0x8a8,0x8b0,0x35,0x3d,0x45,0x5d6,0x484,0x48b,0x490,0,
+0x498,0x4a0,0x4a8,0x4b0,0x4b8,0x4c0,0,0x4c8,0,0x1f3,0,0,0,0,0,0,
+0,0,0,0x5de,0x5e6,0x5ee,0x5f6,0x5fe,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x5e7,0,0,0x5eb,0,0,0x1ee,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x5f1,0,0,0,0,
-0,0,0,0,0x5f5,0,0,0x5fd,0x605,0x60d,0x615,0x61d,0x625,0x62d,0x635,0,
-0x63d,0x643,0x4b3,0x4bb,0x4c3,0x4cb,0x4d3,0x4db,0,0x64a,0x652,0x65a,0x662,0,0,0,
-0x66a,0x672,0x4d,0x67a,0x682,0x68a,0x55,0x692,0x69a,0x6a2,0x6aa,0x5d,0x65,0x6d,0x75,0x6b2,
+0x603,0,0,0x607,0,0,0x1f6,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x60d,0,0,0,0,
+0,0,0,0,0x611,0,0,0x619,0x621,0x629,0x631,0x639,0x641,0x649,0x651,0,
+0x659,0x65f,0x4cf,0x4d7,0x4df,0x4e7,0x4ef,0x4f7,0,0x666,0x66e,0x676,0x67e,0,0,0,
+0x686,0x68e,0x4d,0x696,0x69e,0x6a6,0x55,0x6ae,0x6b6,0x6be,0x6c6,0x5d,0x65,0x6d,0x75,0x6ce,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -101,31 +101,31 @@ static const uint16_t normTrie_index[2208]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x891,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x8bc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,
-0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8ba,0x8c1,0,0,
-0x8c9,0x8cc,0,0x8d2,0,0,0,0,0,0,0,0,0,0,0,0,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,
+0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8e5,0x8ec,0,0,
+0x8f4,0x8f7,0,0x8fd,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -141,540 +141,545 @@ static const uint16_t normTrie_index[2208]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1f6,0x1fe,0x206,0x20e,0x216,0x21e,0x226,0x22e,
-0x236,0x23e,0x246,0x24e,0x256,0x25e,0x266,0,0x26e,0x276,0x27e,0x6ba,0x6c2,0x6ca,0x6cf,0x6d7,
-0x6df,0x6e7,0x6ef,0x6f7,0x6ff,0x707,0x70f,0x717,0x71f,0x727,0x72f,0x737,0x73f,0x747,0x74f,0x753,
-0x75b,0x763,0x76b,0x773,0x77b,0x783,0x78b,0x793,0x79b,0x7a3,0x7ab,0x7b3,0x7bb,0x7c3,0x7cb,0x7d3,
+0,0,0,0,0,0,0,0,0x1fe,0x206,0x20e,0x216,0x21e,0x226,0x22e,0x236,
+0x23e,0x246,0x24e,0x256,0x25e,0x266,0x26e,0,0x276,0x27e,0x286,0x6d6,0x6de,0x6e6,0x6eb,0x6f3,
+0x6fb,0x703,0x70b,0x713,0x71b,0x723,0x72b,0x733,0x73b,0x743,0x74b,0x753,0x75b,0x763,0x76b,0x76f,
+0x777,0x77f,0x787,0x78f,0x797,0x79f,0x7a7,0x7af,0x7b7,0x7bf,0x7c7,0x7cf,0x7d7,0x7df,0x7e7,0x7ef,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x896,0x89a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x286,0x28e,0x8a2,0x296,0x29e,0,
-0,0,0x8aa,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x8c1,0x8c5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x28e,0x296,0x8cd,0x29e,0x2a6,0,
+0,0,0x8d5,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x7d,0x85,0x8d,0x95,0x9d,0xa5,0xad,0xb5,0xbd,0xc5,0xcd,0xd5,0xdd,0xe5,0xed,0xf5,
-0xfd,0x105,0x10d,0x115,0x11d,0x125,0x12d,0x135,0x13d,0x145,0x14d,0x155,0x15d,0x165,0x7db,0x7e3,
-0x2a6,0x2ae,0x2b6,0x2be,0x2c6,0x2ce,0x2d6,0x2de,0x2e6,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31e,
-0x326,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0xfd,0x105,0x10d,0x115,0x11d,0x125,0x12d,0x135,0x13d,0x145,0x14d,0x155,0x15d,0x165,0x16d,0x7f7,
+0x2ae,0x2b6,0x2be,0x2c6,0x2ce,0x2d6,0x2de,0x2e6,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31e,0x326,
+0x32e,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
-static const uint32_t normTrie_data32[9064]={
+static const uint32_t normTrie_data32[9236]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xea00,0xea00,0xe900,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,
-0,0,0,0,0x60e000f,0,0,0,0,0,0x139000a,0,0,0,0x610000f,0,
-0,0x3dbb0040,0,0,0,0x3d770040,0,0,0,0x3d790040,0x14a1004c,0x14a6004c,0x14aa000c,0x14ae000c,0x14b3004c,0,
-0x20fd000a,0x20ff000a,0x13e004a,0x140000e,0x147000e,0x2101000a,0x2103000a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x2105000a,0x2107000a,0x14e000a,0,0x2109000a,0x210b000a,0,0,
-0,0x150000a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x152000a,0x154000a,0x156000a,0,0x158000a,0x15a000a,0x15c000a,0x15e000a,0x160000a,0x162000a,0x164000a,0x166000a,0x168000a,0x16a000a,0x16c000a,0,
-0x16e000a,0x170000a,0x172000a,0x174000a,0x176000a,0x178000a,0x17a000a,0x2136000a,0x2138000a,0x213a000a,0x213c000a,0x213e000a,0x2140000a,0x2142000a,0x2144000a,0x2146000a,
-0x2148000a,0x214a000a,0,0x214c000a,0x214e000a,0x2150000a,0x2152000a,0x2154000a,0x2156000a,0x2158000a,0x215a000a,0x215c000a,0x215e000a,0x2160000a,0x2162000a,0x2164000a,
-0x2166000a,0x2168000a,0x216a000a,0x216c000a,0,0,0,0,0,0,0,0,0x17c000a,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x2271000a,0x2275000a,0x17f000a,0x181000a,0,0x2279000a,0x227d000a,0x184000a,0,0x186000a,0x2281000a,0x189000a,
-0x18b000a,0x18d000a,0x2283000a,0x2285000a,0x18f000a,0x191000a,0x193000a,0x2287000a,0,0x195000a,0x197000a,0,0,0x19a000a,0x19c000a,0x19e000a,
-0x1a0000a,0x1a2000a,0,0,0x1a4000a,0x1a7000a,0x1ab000a,0,0x1ae000a,0,0x6f1000f,0,0x1b0000a,0,0x6f3000f,0x6f5000f,
-0x1b2000a,0x1b4000a,0,0x2289000a,0x1b6000a,0x1b8000a,0,0x1ba000a,0x228b000a,0x228d000a,0x228f000a,0x2291000a,0x2293000a,0x2295000a,0,0x1bc000a,
-0x2297000a,0x2299000a,0x1c0000a,0x1c2000a,0x229b000a,0,0,0,0,0x1c4000a,0x229d000a,0x229f000a,0x22a1000a,0x22a3000a,0,0,
-0,0,0,0,0,0,0,0x22a5000a,0x22a9000a,0x22ad000a,0x22b1000a,0x22b5000a,0x22b9000a,0x22bd000a,0x22c1000a,0x22c5000a,
-0x22c9000a,0x22cd000a,0x22d1000a,0x22d5000a,0x28ad000a,0x28b1000a,0x28b5000a,0x28b9000a,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1c6000a,0x28bd000a,0x28c0000a,0x28c3000a,0x28c6000a,0x28c9000a,0x28cc000a,0x28cf000a,0x28d2000a,0x28d5000a,0x28d8000a,0x28db000a,
-0x28de000a,0x28e1000a,0x28e4000a,0x28e7000a,0x29cd000a,0x29d0000a,0x29d3000a,0x29d6000a,0x29d9000a,0x29dc000a,0x29df000a,0x29e2000a,0x29e5000a,0x29e8000a,0x29ec000a,0x29f0000a,
-0x1ca000a,0x29f4000a,0x1cd000a,0x1d0000a,0x29f8000a,0x29fa000a,0x29fc000a,0x29fe000a,0x2a00000a,0x2a02000a,0x2a04000a,0x2a06000a,0x2a08000a,0x2a0a000a,0x2a0c000a,0x2a0e000a,
-0x2a10000a,0x2a12000a,0x2a14000a,0x2a16000a,0x2c2c000a,0x2c2f000a,0x2c32000a,0x2c36000a,0x2c3a000a,0x2c3e000a,0x2c42000a,0x2c46000a,0x2c4a000a,0x2c4e000a,0x2c52000a,0x2c56000a,
-0x2c5a000a,0x2c5e000a,0x2c62000a,0x2c66000a,0x2c6a000a,0x1d4000a,0x2c6e000a,0x1d8000a,0x2c71000a,0x1db000a,0x2c75000a,0x2c78000a,0x2c7b000a,0x2c7f000a,0x1de000a,0x2c83000a,
-0x2c86000a,0x2c89000a,0x2c8c000a,0x2c8f000a,0x1e1000a,0x1e4000a,0x1e7000a,0x1ea000a,0x1ed000a,0x1f0000a,0x1f3000a,0x1f6000a,0x2c94000a,0x2c98000a,0x1f9000a,0x1fc000a,
-0x1ff000a,0x2c9d000a,0x2ca0000a,0x2ca3000a,0x202000a,0x205000a,0x209000a,0x20d000a,0x211000a,0x2ca6000a,0x2ca9000a,0x2cac000a,0x2caf000a,0x2cb2000a,0x2cb5000a,0x2cb8000a,
-0x2cbb000a,0x2cbe000a,0x2cc1000a,0x2cc4000a,0x2cc8000a,0x2ccc000a,0x2ccf000a,0x2cd3000a,0x2cd7000a,0x2cdb000a,0x2cde000a,0x2ce2000a,0x2ce6000a,0x215000a,0x218000a,0x21c000a,
-0x220000a,0x2ceb000a,0x2cef000a,0x2cf5000a,0x2cfc000a,0x2cff000a,0x2d02000a,0x2d05000a,0x224000a,0x227000a,0x22a000a,0x22d000a,0x230000a,0x233000a,0x236000a,0x239000a,
-0x23c000a,0x23f000a,0x242000a,0x245000a,0x248000a,0x24b000a,0x2d08000a,0x24e000a,0x2d0d000a,0x2d10000a,0x251000a,0x256000a,0x25a000a,0x25d000a,0x2d13000a,0x260000a,
-0x2d16000a,0x263000a,0x266000a,0x2d19000a,0x2d1c000a,0x2d1f000a,0x2d22000a,0x2d26000a,0x2d29000a,0x2d2c000a,0x2d30000a,0x269000a,0x2d34000a,0x26c000a,0x270000a,0x2d39000a,
-0x273000a,0x276000a,0x279000a,0x27d000a,0x281000a,0x283000a,0x285000a,0x287000a,0x289000a,0x28b000a,0x28d000a,0x28f000a,0x291000a,0x293000a,0x295000a,0x297000a,
-0x299000a,0x29b000a,0x29d000a,0x29f000a,0x2a1000a,0x2a3000a,0x2a5000a,0x2a7000a,0x2a9000a,0x2ab000a,0x2ad000a,0x2af000a,0x2b1000a,0x2b3000a,0x38fb000a,0x38fd000a,
-0x38ff000a,0x3901000a,0x3903000a,0x3905000a,0x3907000a,0x3909000a,0x390b000a,0x390d000a,0x390f000a,0x3911000a,0x3913000a,0x3915000a,0x3917000a,0x3919000a,0x391b000a,0x391d000a,
-0x391f000a,0x3921000a,0x3923000a,0x3925000a,0x3927000a,0x3929000a,0x392b000a,0x392d000a,0x2b5000a,0x2b7000a,0x2b9000a,0x2bb000a,0x2bd000a,0x2bf000a,0x2c1000a,0x2c3000a,
-0x2c5000a,0x2c7000a,0x2c9000a,0x2cb000a,0x2cd000a,0x2cf000a,0x2d1000a,0x2d3000a,0x2d5000a,0x2d7000a,0x2d9000a,0x2db000a,0x2dd000a,0x2df000a,0x2e1000a,0x2e3000a,
-0x2e5000a,0x2e7000a,0x392f000a,0x3931000a,0x3933000a,0x3935000a,0x3937000a,0x3939000a,0x393b000a,0,0x393d000a,0x393f000a,0x3941000a,0x3943000a,0x3945000a,0x3947000a,
-0x3949000a,0x394b000a,0x394d000a,0x394f000a,0x3951000a,0x3953000a,0x3955000a,0x3957000a,0x3959000a,0x395b000a,0x395d000a,0x395f000a,0x2e9000a,0x2eb000a,0x2ed000a,0x2ef000a,
-0x2f1000a,0x2f3000a,0x2f5000a,0x2f7000a,0x2f9000a,0x2fb000a,0x2fd000a,0x2ff000a,0x301000a,0x303000a,0x305000a,0x307000a,0x309000a,0x30b000a,0x30d000a,0x30f000a,
-0x311000a,0x313000a,0x315000a,0x317000a,0x319000a,0x31b000a,0x3961000a,0x3963000a,0x3965000a,0x3967000a,0x3969000a,0x396b000a,0x396d000a,0x396f000a,0x3971000a,0x3973000a,
-0x3975000a,0x3977000a,0x3979000a,0x397b000a,0x397d000a,0x397f000a,0x3981000a,0x3983000a,0x3985000a,0x3987000a,0x3989000a,0x398b000a,0x398d000a,0x398f000a,0x3991000a,0x3993000a,
-0x31d000a,0,0x31f000a,0x321000a,0,0,0x323000a,0,0,0x325000a,0x327000a,0,0,0x329000a,0x32b000a,0x32d000a,
-0x32f000a,0,0x331000a,0x333000a,0x335000a,0x337000a,0x339000a,0x33b000a,0x33d000a,0x33f000a,0x3995000a,0x3997000a,0x3999000a,0x399b000a,0,0x399d000a,
-0,0x399f000a,0x39a1000a,0x39a3000a,0x39a5000a,0x39a7000a,0x39a9000a,0x39ab000a,0,0x39ad000a,0x39af000a,0x39b1000a,0x39b3000a,0x39b5000a,0x39b7000a,0x39b9000a,
-0x39bb000a,0x39bd000a,0x39bf000a,0x39c1000a,0x341000a,0x343000a,0x345000a,0x347000a,0x349000a,0x34b000a,0x34d000a,0x34f000a,0x351000a,0x353000a,0x355000a,0x357000a,
-0x359000a,0x35b000a,0x35d000a,0x35f000a,0x361000a,0x363000a,0x365000a,0x367000a,0x369000a,0x36b000a,0x36d000a,0x36f000a,0x371000a,0x373000a,0x39c3000a,0x39c5000a,
-0x39c7000a,0x39c9000a,0x39cb000a,0x39cd000a,0x39cf000a,0x39d1000a,0x39d3000a,0x39d5000a,0x39d7000a,0x39d9000a,0x39db000a,0x39dd000a,0x39df000a,0x39e1000a,0x39e3000a,0x39e5000a,
-0x39e7000a,0x39e9000a,0x39eb000a,0x39ed000a,0x39ef000a,0x39f1000a,0x39f3000a,0x39f5000a,0x375000a,0x377000a,0,0x379000a,0x37b000a,0x37d000a,0x37f000a,0,
-0,0x381000a,0x383000a,0x385000a,0x387000a,0x389000a,0x38b000a,0x38d000a,0x38f000a,0,0x391000a,0x393000a,0x395000a,0x397000a,0x399000a,0x39b000a,
-0x39d000a,0,0x39f7000a,0x39f9000a,0x39fb000a,0x39fd000a,0x39ff000a,0x3a01000a,0x3a03000a,0x3a05000a,0x3a07000a,0x3a09000a,0x3a0b000a,0x3a0d000a,0x3a0f000a,0x3a11000a,
-0x3a13000a,0x3a15000a,0x3a17000a,0x3a19000a,0x3a1b000a,0x3a1d000a,0x3a1f000a,0x3a21000a,0x3a23000a,0x3a25000a,0x3a27000a,0x3a29000a,0x39f000a,0x3a1000a,0,0x3a3000a,
-0x3a5000a,0x3a7000a,0x3a9000a,0,0x3ab000a,0x3ad000a,0x3af000a,0x3b1000a,0x3b3000a,0,0x3b5000a,0,0,0,0x3b7000a,0x3b9000a,
-0x3bb000a,0x3bd000a,0x3bf000a,0x3c1000a,0x3c3000a,0,0x3a2b000a,0x3a2d000a,0x3a2f000a,0x3a31000a,0x3a33000a,0x3a35000a,0x3a37000a,0x3a39000a,0x3a3b000a,0x3a3d000a,
-0x3a3f000a,0x3a41000a,0x3a43000a,0x3a45000a,0x3a47000a,0x3a49000a,0x3a4b000a,0x3a4d000a,0x3a4f000a,0x3a51000a,0x3a53000a,0x3a55000a,0x3a57000a,0x3a59000a,0x3a5b000a,0x3a5d000a,
-0x3c5000a,0x3c7000a,0x3c9000a,0x3cb000a,0x3cd000a,0x3cf000a,0x3d1000a,0x3d3000a,0x3d5000a,0x3d7000a,0x3d9000a,0x3db000a,0x3dd000a,0x3df000a,0x3e1000a,0x3e3000a,
-0x3e5000a,0x3e7000a,0x3e9000a,0x3eb000a,0x3ed000a,0x3ef000a,0x3f1000a,0x3f3000a,0x3f5000a,0x3f7000a,0x3a5f000a,0x3a61000a,0x3a63000a,0x3a65000a,0x3a67000a,0x3a69000a,
-0x3a6b000a,0x3a6d000a,0x3a6f000a,0x3a71000a,0x3a73000a,0x3a75000a,0x3a77000a,0x3a79000a,0x3a7b000a,0x3a7d000a,0x3a7f000a,0x3a81000a,0x3a83000a,0x3a85000a,0x3a87000a,0x3a89000a,
-0x3a8b000a,0x3a8d000a,0x3a8f000a,0x3a91000a,0x3f9000a,0x3fb000a,0x3fd000a,0x3ff000a,0x401000a,0x403000a,0x405000a,0x407000a,0x409000a,0x40b000a,0x40d000a,0x40f000a,
-0x411000a,0x413000a,0x415000a,0x417000a,0x419000a,0x41b000a,0x41d000a,0x41f000a,0x421000a,0x423000a,0x425000a,0x427000a,0x429000a,0x42b000a,0x3a93000a,0x3a95000a,
-0x3a97000a,0x3a99000a,0x3a9b000a,0x3a9d000a,0x3a9f000a,0x3aa1000a,0x3aa3000a,0x3aa5000a,0x3aa7000a,0x3aa9000a,0x3aab000a,0x3aad000a,0x3aaf000a,0x3ab1000a,0x3ab3000a,0x3ab5000a,
-0x3ab7000a,0x3ab9000a,0x3abb000a,0x3abd000a,0x3abf000a,0x3ac1000a,0x3ac3000a,0x3ac5000a,0x42d000a,0x42f000a,0x431000a,0x433000a,0x435000a,0x437000a,0x439000a,0x43b000a,
-0x43d000a,0x43f000a,0x441000a,0x443000a,0x445000a,0x447000a,0x449000a,0x44b000a,0x44d000a,0x44f000a,0x451000a,0x453000a,0x455000a,0x457000a,0x459000a,0x45b000a,
-0x45d000a,0x45f000a,0x3ac7000a,0x3ac9000a,0x3acb000a,0x3acd000a,0x3acf000a,0x3ad1000a,0x3ad3000a,0x3ad5000a,0x3ad7000a,0x3ad9000a,0x3adb000a,0x3add000a,0x3adf000a,0x3ae1000a,
-0x3ae3000a,0x3ae5000a,0x3ae7000a,0x3ae9000a,0x3aeb000a,0x3aed000a,0x3aef000a,0x3af1000a,0x3af3000a,0x3af5000a,0x3af7000a,0x3af9000a,0x461000a,0x463000a,0x465000a,0x467000a,
-0x469000a,0x46b000a,0x46d000a,0x46f000a,0x471000a,0x473000a,0x475000a,0x477000a,0x479000a,0x47b000a,0x47d000a,0x47f000a,0x481000a,0x483000a,0x485000a,0x487000a,
-0x489000a,0x48b000a,0x48d000a,0x48f000a,0x491000a,0x493000a,0x3afb000a,0x3afd000a,0x3aff000a,0x3b01000a,0x3b03000a,0x3b05000a,0x3b07000a,0x3b09000a,0x3b0b000a,0x3b0d000a,
-0x3b0f000a,0x3b11000a,0x3b13000a,0x3b15000a,0x3b17000a,0x3b19000a,0x3b1b000a,0x3b1d000a,0x3b1f000a,0x3b21000a,0x3b23000a,0x3b25000a,0x3b27000a,0x3b29000a,0x3b2b000a,0x3b2d000a,
-0x495000a,0x497000a,0x499000a,0x49b000a,0x49d000a,0x49f000a,0x4a1000a,0x4a3000a,0x4a5000a,0x4a7000a,0x4a9000a,0x4ab000a,0x4ad000a,0x4af000a,0x4b1000a,0x4b3000a,
-0x4b5000a,0x4b7000a,0x4b9000a,0x4bb000a,0x4bd000a,0x4bf000a,0x4c1000a,0x4c3000a,0x4c5000a,0x4c7000a,0x3b2f000a,0x3b31000a,0x3b33000a,0x3b35000a,0x3b37000a,0x3b39000a,
-0x3b3b000a,0x3b3d000a,0x3b3f000a,0x3b41000a,0x3b43000a,0x3b45000a,0x3b47000a,0x3b49000a,0x3b4b000a,0x3b4d000a,0x3b4f000a,0x3b51000a,0x3b53000a,0x3b55000a,0x3b57000a,0x3b59000a,
-0x3b5b000a,0x3b5d000a,0x3b5f000a,0x3b61000a,0x4c9000a,0x4cb000a,0x4cd000a,0x4cf000a,0x4d1000a,0x4d3000a,0x4d5000a,0x4d7000a,0x4d9000a,0x4db000a,0x4dd000a,0x4df000a,
-0x4e1000a,0x4e3000a,0x4e5000a,0x4e7000a,0x4e9000a,0x4eb000a,0x4ed000a,0x4ef000a,0x4f1000a,0x4f3000a,0x4f5000a,0x4f7000a,0x4f9000a,0x4fb000a,0x3b63000a,0x3b65000a,
-0x3b67000a,0x3b69000a,0x3b6b000a,0x3b6d000a,0x3b6f000a,0x3b71000a,0x3b73000a,0x3b75000a,0x3b77000a,0x3b79000a,0x3b7b000a,0x3b7d000a,0x3b7f000a,0x3b81000a,0x3b83000a,0x3b85000a,
-0x3b87000a,0x3b89000a,0x3b8b000a,0x3b8d000a,0x3b8f000a,0x3b91000a,0x3b93000a,0x3b95000a,0x3b97000a,0x3b99000a,0,0,0x4fd000a,0x4ff000a,0x501000a,0x503000a,
-0x505000a,0x507000a,0x509000a,0x50b000a,0x50d000a,0x50f000a,0x511000a,0x513000a,0x515000a,0x517000a,0x519000a,0x51b000a,0x51d000a,0x51f000a,0x521000a,0x523000a,
-0x525000a,0x527000a,0x529000a,0x52b000a,0x52d000a,0x3b9b000a,0x3b9d000a,0x3b9f000a,0x3ba1000a,0x3ba3000a,0x3ba5000a,0x3ba7000a,0x3ba9000a,0x3bab000a,0x3bad000a,0x3baf000a,
-0x3bb1000a,0x3bb3000a,0x3bb5000a,0x3bb7000a,0x3bb9000a,0x3bbb000a,0x3bbd000a,0x52f000a,0x3bbf000a,0x3bc1000a,0x3bc3000a,0x3bc5000a,0x3bc7000a,0x3bc9000a,0x3bcb000a,0x3bcd000a,
-0x3bcf000a,0x3bd1000a,0x3bd3000a,0x3bd5000a,0x3bd7000a,0x3bd9000a,0x531000a,0x533000a,0x535000a,0x537000a,0x539000a,0x53b000a,0x53d000a,0x53f000a,0x541000a,0x543000a,
-0x545000a,0x547000a,0x549000a,0x54b000a,0x54d000a,0x54f000a,0x551000a,0x553000a,0x555000a,0x557000a,0x559000a,0x55b000a,0x55d000a,0x55f000a,0x561000a,0x3bdb000a,
-0x3bdd000a,0x3bdf000a,0x3be1000a,0x3be3000a,0x3be5000a,0x3be7000a,0x3be9000a,0x3beb000a,0x3bed000a,0x3bef000a,0x3bf1000a,0x3bf3000a,0x3bf5000a,0x3bf7000a,0x3bf9000a,0x3bfb000a,
-0x3bfd000a,0x563000a,0x3bff000a,0x3c01000a,0x3c03000a,0x3c05000a,0x3c07000a,0x3c09000a,0x3c0b000a,0x3c0d000a,0x3c0f000a,0x3c11000a,0x3c13000a,0x3c15000a,0x3c17000a,0x3c19000a,
-0x565000a,0x567000a,0x569000a,0x56b000a,0x56d000a,0x56f000a,0x571000a,0x573000a,0x575000a,0x577000a,0x579000a,0x57b000a,0x57d000a,0x57f000a,0x581000a,0x583000a,
-0x585000a,0x587000a,0x589000a,0x58b000a,0x58d000a,0x58f000a,0x591000a,0x593000a,0x595000a,0x3c1b000a,0x3c1d000a,0x3c1f000a,0x3c21000a,0x3c23000a,0x3c25000a,0x3c27000a,
-0x3c29000a,0x3c2b000a,0x3c2d000a,0x3c2f000a,0x3c31000a,0x3c33000a,0x3c35000a,0x3c37000a,0x3c39000a,0x3c3b000a,0x3c3d000a,0x597000a,0x3c3f000a,0x3c41000a,0x3c43000a,0x3c45000a,
-0x3c47000a,0x3c49000a,0x3c4b000a,0x3c4d000a,0x3c4f000a,0x3c51000a,0x3c53000a,0x3c55000a,0x3c57000a,0x3c59000a,0x599000a,0x59b000a,0x59d000a,0x59f000a,0x5a1000a,0x5a3000a,
-0x5a5000a,0x5a7000a,0x5a9000a,0x5ab000a,0x5ad000a,0x5af000a,0x5b1000a,0x5b3000a,0x5b5000a,0x5b7000a,0x5b9000a,0x5bb000a,0x5bd000a,0x5bf000a,0x5c1000a,0x5c3000a,
-0x5c5000a,0x5c7000a,0x5c9000a,0x3c5b000a,0x3c5d000a,0x3c5f000a,0x3c61000a,0x3c63000a,0x3c65000a,0x3c67000a,0x3c69000a,0x3c6b000a,0x3c6d000a,0x3c6f000a,0x3c71000a,0x3c73000a,
-0x3c75000a,0x3c77000a,0x3c79000a,0x3c7b000a,0x3c7d000a,0x5cb000a,0x3c7f000a,0x3c81000a,0x3c83000a,0x3c85000a,0x3c87000a,0x3c89000a,0x3c8b000a,0x3c8d000a,0x3c8f000a,0x3c91000a,
-0x3c93000a,0x3c95000a,0x3c97000a,0x3c99000a,0x5cd000a,0x5cf000a,0x5d1000a,0x5d3000a,0x5d5000a,0x5d7000a,0x5d9000a,0x5db000a,0x5dd000a,0x5df000a,0x5e1000a,0x5e3000a,
-0x5e5000a,0x5e7000a,0x5e9000a,0x5eb000a,0x5ed000a,0x5ef000a,0x5f1000a,0x5f3000a,0x5f5000a,0x5f7000a,0x5f9000a,0x5fb000a,0x5fd000a,0x3c9b000a,0x3c9d000a,0x3c9f000a,
-0x3ca1000a,0x3ca3000a,0x3ca5000a,0x3ca7000a,0x3ca9000a,0x3cab000a,0x3cad000a,0x3caf000a,0x3cb1000a,0x3cb3000a,0x3cb5000a,0x3cb7000a,0x3cb9000a,0x3cbb000a,0x3cbd000a,0x5ff000a,
-0x3cbf000a,0x3cc1000a,0x3cc3000a,0x3cc5000a,0x601e60f,0x604e60f,0x2046e6b0,0x607e60f,0x60ae60f,0x2047f0b0,0xe600,0xdc00,0xdc00,0xdc00,0xe600,0xe600,
+0,0,0,0,0x612000f,0,0,0,0,0,0x13b000a,0,0,0,0x614000f,0,
+0,0x3dee0040,0,0,0,0x3d9f0040,0,0,0,0x3da10040,0x14a5004c,0x14aa004c,0x14ae000c,0x14b2000c,0x14b7004c,0,
+0x2123000a,0x2125000a,0x140004a,0x142000e,0x149000e,0x2127000a,0x2129000a,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x212b000a,0x212d000a,0x150000a,0,0x212f000a,0x2131000a,0,0,
+0,0x152000a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x154000a,0x156000a,0x158000a,0,0x15a000a,0x15c000a,0x15e000a,0x160000a,0x162000a,0x164000a,0x166000a,0x168000a,0x16a000a,0x16c000a,0x16e000a,0,
+0x170000a,0x172000a,0x174000a,0x176000a,0x178000a,0x17a000a,0x17c000a,0x215c000a,0x215e000a,0x2160000a,0x2162000a,0x2164000a,0x2166000a,0x2168000a,0x216a000a,0x216c000a,
+0x216e000a,0x2170000a,0,0x2172000a,0x2174000a,0x2176000a,0x2178000a,0x217a000a,0x217c000a,0x217e000a,0x2180000a,0x2182000a,0x2184000a,0x2186000a,0x2188000a,0x218a000a,
+0x218c000a,0x218e000a,0x2190000a,0x2192000a,0,0,0,0,0,0,0,0,0x17e000a,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x2297000a,0x229b000a,0x181000a,0x183000a,0,0x229f000a,0x22a3000a,0x186000a,0,0x188000a,0x22a7000a,0x18b000a,
+0x18d000a,0x18f000a,0x22a9000a,0x22ab000a,0x191000a,0x193000a,0x195000a,0x22ad000a,0,0x197000a,0x199000a,0,0,0x19c000a,0x19e000a,0x1a0000a,
+0x1a2000a,0x1a4000a,0,0,0x1a6000a,0x1a9000a,0x1ad000a,0,0x1b0000a,0,0x6f5000f,0,0x1b2000a,0,0x6f7000f,0x6f9000f,
+0x1b4000a,0x1b6000a,0,0x22af000a,0x1b8000a,0x1ba000a,0,0x1bc000a,0x22b1000a,0x22b3000a,0x22b5000a,0x22b7000a,0x22b9000a,0x22bb000a,0,0x1be000a,
+0x22bd000a,0x22bf000a,0x1c2000a,0x1c4000a,0x22c1000a,0,0,0,0,0x1c6000a,0x22c3000a,0x22c5000a,0x22c7000a,0x22c9000a,0,0,
+0,0,0,0,0,0,0,0x22cb000a,0x22cf000a,0x22d3000a,0x22d7000a,0x22db000a,0x22df000a,0x22e3000a,0x22e7000a,0x22eb000a,
+0x22ef000a,0x22f3000a,0x22f7000a,0x22fb000a,0x28d3000a,0x28d7000a,0x28db000a,0x28df000a,0,0,0,0,0,0,0,0,
+0,0,0,0,0x1c8000a,0x28e3000a,0x28e6000a,0x28e9000a,0x28ec000a,0x28ef000a,0x28f2000a,0x28f5000a,0x28f8000a,0x28fb000a,0x28fe000a,0x2901000a,
+0x2904000a,0x2907000a,0x290a000a,0x290d000a,0x29f3000a,0x29f6000a,0x29f9000a,0x29fc000a,0x29ff000a,0x2a02000a,0x2a05000a,0x2a08000a,0x2a0b000a,0x2a0e000a,0x2a12000a,0x2a16000a,
+0x1cc000a,0x2a1a000a,0x1cf000a,0x1d2000a,0x2a1e000a,0x2a20000a,0x2a22000a,0x2a24000a,0x2a26000a,0x2a28000a,0x2a2a000a,0x2a2c000a,0x2a2e000a,0x2a30000a,0x2a32000a,0x2a34000a,
+0x2a36000a,0x2a38000a,0x2a3a000a,0x2a3c000a,0x2c52000a,0x2c55000a,0x2c58000a,0x2c5c000a,0x2c60000a,0x2c64000a,0x2c68000a,0x2c6c000a,0x2c70000a,0x2c74000a,0x2c78000a,0x2c7c000a,
+0x2c80000a,0x2c84000a,0x2c88000a,0x2c8c000a,0x2c90000a,0x1d6000a,0x2c94000a,0x1da000a,0x2c97000a,0x1dd000a,0x2c9b000a,0x2c9e000a,0x2ca1000a,0x2ca5000a,0x1e0000a,0x2ca9000a,
+0x2cac000a,0x2caf000a,0x2cb2000a,0x2cb5000a,0x1e3000a,0x1e6000a,0x1e9000a,0x1ec000a,0x1ef000a,0x1f2000a,0x1f5000a,0x1f8000a,0x2cba000a,0x2cbe000a,0x1fb000a,0x1fe000a,
+0x201000a,0x2cc3000a,0x2cc6000a,0x2cc9000a,0x204000a,0x207000a,0x20b000a,0x20f000a,0x213000a,0x2ccc000a,0x2ccf000a,0x2cd2000a,0x2cd5000a,0x2cd8000a,0x2cdb000a,0x2cde000a,
+0x2ce1000a,0x2ce4000a,0x2ce7000a,0x2cea000a,0x2cee000a,0x2cf2000a,0x2cf5000a,0x2cf9000a,0x2cfd000a,0x2d01000a,0x2d04000a,0x2d08000a,0x2d0c000a,0x217000a,0x21a000a,0x21e000a,
+0x222000a,0x2d11000a,0x2d15000a,0x2d1b000a,0x2d22000a,0x2d25000a,0x2d28000a,0x2d2b000a,0x226000a,0x229000a,0x22c000a,0x22f000a,0x232000a,0x235000a,0x238000a,0x23b000a,
+0x23e000a,0x241000a,0x244000a,0x247000a,0x24a000a,0x24d000a,0x2d2e000a,0x250000a,0x2d33000a,0x2d36000a,0x253000a,0x258000a,0x25c000a,0x25f000a,0x2d39000a,0x262000a,
+0x2d3c000a,0x265000a,0x268000a,0x2d3f000a,0x2d42000a,0x2d45000a,0x2d48000a,0x2d4c000a,0x2d4f000a,0x2d52000a,0x2d56000a,0x26b000a,0x2d5a000a,0x26e000a,0x272000a,0x2d5f000a,
+0x275000a,0x278000a,0x27b000a,0x27f000a,0x283000a,0x285000a,0x287000a,0x289000a,0x28b000a,0x28d000a,0x28f000a,0x291000a,0x293000a,0x295000a,0x297000a,0x299000a,
+0x29b000a,0x29d000a,0x29f000a,0x2a1000a,0x2a3000a,0x2a5000a,0x2a7000a,0x2a9000a,0x2ab000a,0x2ad000a,0x2af000a,0x2b1000a,0x2b3000a,0x2b5000a,0x3921000a,0x3923000a,
+0x3925000a,0x3927000a,0x3929000a,0x392b000a,0x392d000a,0x392f000a,0x3931000a,0x3933000a,0x3935000a,0x3937000a,0x3939000a,0x393b000a,0x393d000a,0x393f000a,0x3941000a,0x3943000a,
+0x3945000a,0x3947000a,0x3949000a,0x394b000a,0x394d000a,0x394f000a,0x3951000a,0x3953000a,0x2b7000a,0x2b9000a,0x2bb000a,0x2bd000a,0x2bf000a,0x2c1000a,0x2c3000a,0x2c5000a,
+0x2c7000a,0x2c9000a,0x2cb000a,0x2cd000a,0x2cf000a,0x2d1000a,0x2d3000a,0x2d5000a,0x2d7000a,0x2d9000a,0x2db000a,0x2dd000a,0x2df000a,0x2e1000a,0x2e3000a,0x2e5000a,
+0x2e7000a,0x2e9000a,0x3955000a,0x3957000a,0x3959000a,0x395b000a,0x395d000a,0x395f000a,0x3961000a,0,0x3963000a,0x3965000a,0x3967000a,0x3969000a,0x396b000a,0x396d000a,
+0x396f000a,0x3971000a,0x3973000a,0x3975000a,0x3977000a,0x3979000a,0x397b000a,0x397d000a,0x397f000a,0x3981000a,0x3983000a,0x3985000a,0x2eb000a,0x2ed000a,0x2ef000a,0x2f1000a,
+0x2f3000a,0x2f5000a,0x2f7000a,0x2f9000a,0x2fb000a,0x2fd000a,0x2ff000a,0x301000a,0x303000a,0x305000a,0x307000a,0x309000a,0x30b000a,0x30d000a,0x30f000a,0x311000a,
+0x313000a,0x315000a,0x317000a,0x319000a,0x31b000a,0x31d000a,0x3987000a,0x3989000a,0x398b000a,0x398d000a,0x398f000a,0x3991000a,0x3993000a,0x3995000a,0x3997000a,0x3999000a,
+0x399b000a,0x399d000a,0x399f000a,0x39a1000a,0x39a3000a,0x39a5000a,0x39a7000a,0x39a9000a,0x39ab000a,0x39ad000a,0x39af000a,0x39b1000a,0x39b3000a,0x39b5000a,0x39b7000a,0x39b9000a,
+0x31f000a,0,0x321000a,0x323000a,0,0,0x325000a,0,0,0x327000a,0x329000a,0,0,0x32b000a,0x32d000a,0x32f000a,
+0x331000a,0,0x333000a,0x335000a,0x337000a,0x339000a,0x33b000a,0x33d000a,0x33f000a,0x341000a,0x39bb000a,0x39bd000a,0x39bf000a,0x39c1000a,0,0x39c3000a,
+0,0x39c5000a,0x39c7000a,0x39c9000a,0x39cb000a,0x39cd000a,0x39cf000a,0x39d1000a,0,0x39d3000a,0x39d5000a,0x39d7000a,0x39d9000a,0x39db000a,0x39dd000a,0x39df000a,
+0x39e1000a,0x39e3000a,0x39e5000a,0x39e7000a,0x343000a,0x345000a,0x347000a,0x349000a,0x34b000a,0x34d000a,0x34f000a,0x351000a,0x353000a,0x355000a,0x357000a,0x359000a,
+0x35b000a,0x35d000a,0x35f000a,0x361000a,0x363000a,0x365000a,0x367000a,0x369000a,0x36b000a,0x36d000a,0x36f000a,0x371000a,0x373000a,0x375000a,0x39e9000a,0x39eb000a,
+0x39ed000a,0x39ef000a,0x39f1000a,0x39f3000a,0x39f5000a,0x39f7000a,0x39f9000a,0x39fb000a,0x39fd000a,0x39ff000a,0x3a01000a,0x3a03000a,0x3a05000a,0x3a07000a,0x3a09000a,0x3a0b000a,
+0x3a0d000a,0x3a0f000a,0x3a11000a,0x3a13000a,0x3a15000a,0x3a17000a,0x3a19000a,0x3a1b000a,0x377000a,0x379000a,0,0x37b000a,0x37d000a,0x37f000a,0x381000a,0,
+0,0x383000a,0x385000a,0x387000a,0x389000a,0x38b000a,0x38d000a,0x38f000a,0x391000a,0,0x393000a,0x395000a,0x397000a,0x399000a,0x39b000a,0x39d000a,
+0x39f000a,0,0x3a1d000a,0x3a1f000a,0x3a21000a,0x3a23000a,0x3a25000a,0x3a27000a,0x3a29000a,0x3a2b000a,0x3a2d000a,0x3a2f000a,0x3a31000a,0x3a33000a,0x3a35000a,0x3a37000a,
+0x3a39000a,0x3a3b000a,0x3a3d000a,0x3a3f000a,0x3a41000a,0x3a43000a,0x3a45000a,0x3a47000a,0x3a49000a,0x3a4b000a,0x3a4d000a,0x3a4f000a,0x3a1000a,0x3a3000a,0,0x3a5000a,
+0x3a7000a,0x3a9000a,0x3ab000a,0,0x3ad000a,0x3af000a,0x3b1000a,0x3b3000a,0x3b5000a,0,0x3b7000a,0,0,0,0x3b9000a,0x3bb000a,
+0x3bd000a,0x3bf000a,0x3c1000a,0x3c3000a,0x3c5000a,0,0x3a51000a,0x3a53000a,0x3a55000a,0x3a57000a,0x3a59000a,0x3a5b000a,0x3a5d000a,0x3a5f000a,0x3a61000a,0x3a63000a,
+0x3a65000a,0x3a67000a,0x3a69000a,0x3a6b000a,0x3a6d000a,0x3a6f000a,0x3a71000a,0x3a73000a,0x3a75000a,0x3a77000a,0x3a79000a,0x3a7b000a,0x3a7d000a,0x3a7f000a,0x3a81000a,0x3a83000a,
+0x3c7000a,0x3c9000a,0x3cb000a,0x3cd000a,0x3cf000a,0x3d1000a,0x3d3000a,0x3d5000a,0x3d7000a,0x3d9000a,0x3db000a,0x3dd000a,0x3df000a,0x3e1000a,0x3e3000a,0x3e5000a,
+0x3e7000a,0x3e9000a,0x3eb000a,0x3ed000a,0x3ef000a,0x3f1000a,0x3f3000a,0x3f5000a,0x3f7000a,0x3f9000a,0x3a85000a,0x3a87000a,0x3a89000a,0x3a8b000a,0x3a8d000a,0x3a8f000a,
+0x3a91000a,0x3a93000a,0x3a95000a,0x3a97000a,0x3a99000a,0x3a9b000a,0x3a9d000a,0x3a9f000a,0x3aa1000a,0x3aa3000a,0x3aa5000a,0x3aa7000a,0x3aa9000a,0x3aab000a,0x3aad000a,0x3aaf000a,
+0x3ab1000a,0x3ab3000a,0x3ab5000a,0x3ab7000a,0x3fb000a,0x3fd000a,0x3ff000a,0x401000a,0x403000a,0x405000a,0x407000a,0x409000a,0x40b000a,0x40d000a,0x40f000a,0x411000a,
+0x413000a,0x415000a,0x417000a,0x419000a,0x41b000a,0x41d000a,0x41f000a,0x421000a,0x423000a,0x425000a,0x427000a,0x429000a,0x42b000a,0x42d000a,0x3ab9000a,0x3abb000a,
+0x3abd000a,0x3abf000a,0x3ac1000a,0x3ac3000a,0x3ac5000a,0x3ac7000a,0x3ac9000a,0x3acb000a,0x3acd000a,0x3acf000a,0x3ad1000a,0x3ad3000a,0x3ad5000a,0x3ad7000a,0x3ad9000a,0x3adb000a,
+0x3add000a,0x3adf000a,0x3ae1000a,0x3ae3000a,0x3ae5000a,0x3ae7000a,0x3ae9000a,0x3aeb000a,0x42f000a,0x431000a,0x433000a,0x435000a,0x437000a,0x439000a,0x43b000a,0x43d000a,
+0x43f000a,0x441000a,0x443000a,0x445000a,0x447000a,0x449000a,0x44b000a,0x44d000a,0x44f000a,0x451000a,0x453000a,0x455000a,0x457000a,0x459000a,0x45b000a,0x45d000a,
+0x45f000a,0x461000a,0x3aed000a,0x3aef000a,0x3af1000a,0x3af3000a,0x3af5000a,0x3af7000a,0x3af9000a,0x3afb000a,0x3afd000a,0x3aff000a,0x3b01000a,0x3b03000a,0x3b05000a,0x3b07000a,
+0x3b09000a,0x3b0b000a,0x3b0d000a,0x3b0f000a,0x3b11000a,0x3b13000a,0x3b15000a,0x3b17000a,0x3b19000a,0x3b1b000a,0x3b1d000a,0x3b1f000a,0x463000a,0x465000a,0x467000a,0x469000a,
+0x46b000a,0x46d000a,0x46f000a,0x471000a,0x473000a,0x475000a,0x477000a,0x479000a,0x47b000a,0x47d000a,0x47f000a,0x481000a,0x483000a,0x485000a,0x487000a,0x489000a,
+0x48b000a,0x48d000a,0x48f000a,0x491000a,0x493000a,0x495000a,0x3b21000a,0x3b23000a,0x3b25000a,0x3b27000a,0x3b29000a,0x3b2b000a,0x3b2d000a,0x3b2f000a,0x3b31000a,0x3b33000a,
+0x3b35000a,0x3b37000a,0x3b39000a,0x3b3b000a,0x3b3d000a,0x3b3f000a,0x3b41000a,0x3b43000a,0x3b45000a,0x3b47000a,0x3b49000a,0x3b4b000a,0x3b4d000a,0x3b4f000a,0x3b51000a,0x3b53000a,
+0x497000a,0x499000a,0x49b000a,0x49d000a,0x49f000a,0x4a1000a,0x4a3000a,0x4a5000a,0x4a7000a,0x4a9000a,0x4ab000a,0x4ad000a,0x4af000a,0x4b1000a,0x4b3000a,0x4b5000a,
+0x4b7000a,0x4b9000a,0x4bb000a,0x4bd000a,0x4bf000a,0x4c1000a,0x4c3000a,0x4c5000a,0x4c7000a,0x4c9000a,0x3b55000a,0x3b57000a,0x3b59000a,0x3b5b000a,0x3b5d000a,0x3b5f000a,
+0x3b61000a,0x3b63000a,0x3b65000a,0x3b67000a,0x3b69000a,0x3b6b000a,0x3b6d000a,0x3b6f000a,0x3b71000a,0x3b73000a,0x3b75000a,0x3b77000a,0x3b79000a,0x3b7b000a,0x3b7d000a,0x3b7f000a,
+0x3b81000a,0x3b83000a,0x3b85000a,0x3b87000a,0x4cb000a,0x4cd000a,0x4cf000a,0x4d1000a,0x4d3000a,0x4d5000a,0x4d7000a,0x4d9000a,0x4db000a,0x4dd000a,0x4df000a,0x4e1000a,
+0x4e3000a,0x4e5000a,0x4e7000a,0x4e9000a,0x4eb000a,0x4ed000a,0x4ef000a,0x4f1000a,0x4f3000a,0x4f5000a,0x4f7000a,0x4f9000a,0x4fb000a,0x4fd000a,0x3b89000a,0x3b8b000a,
+0x3b8d000a,0x3b8f000a,0x3b91000a,0x3b93000a,0x3b95000a,0x3b97000a,0x3b99000a,0x3b9b000a,0x3b9d000a,0x3b9f000a,0x3ba1000a,0x3ba3000a,0x3ba5000a,0x3ba7000a,0x3ba9000a,0x3bab000a,
+0x3bad000a,0x3baf000a,0x3bb1000a,0x3bb3000a,0x3bb5000a,0x3bb7000a,0x3bb9000a,0x3bbb000a,0x3bbd000a,0x3bbf000a,0,0,0x4ff000a,0x501000a,0x503000a,0x505000a,
+0x507000a,0x509000a,0x50b000a,0x50d000a,0x50f000a,0x511000a,0x513000a,0x515000a,0x517000a,0x519000a,0x51b000a,0x51d000a,0x51f000a,0x521000a,0x523000a,0x525000a,
+0x527000a,0x529000a,0x52b000a,0x52d000a,0x52f000a,0x3bc1000a,0x3bc3000a,0x3bc5000a,0x3bc7000a,0x3bc9000a,0x3bcb000a,0x3bcd000a,0x3bcf000a,0x3bd1000a,0x3bd3000a,0x3bd5000a,
+0x3bd7000a,0x3bd9000a,0x3bdb000a,0x3bdd000a,0x3bdf000a,0x3be1000a,0x3be3000a,0x531000a,0x3be5000a,0x3be7000a,0x3be9000a,0x3beb000a,0x3bed000a,0x3bef000a,0x3bf1000a,0x3bf3000a,
+0x3bf5000a,0x3bf7000a,0x3bf9000a,0x3bfb000a,0x3bfd000a,0x3bff000a,0x533000a,0x535000a,0x537000a,0x539000a,0x53b000a,0x53d000a,0x53f000a,0x541000a,0x543000a,0x545000a,
+0x547000a,0x549000a,0x54b000a,0x54d000a,0x54f000a,0x551000a,0x553000a,0x555000a,0x557000a,0x559000a,0x55b000a,0x55d000a,0x55f000a,0x561000a,0x563000a,0x3c01000a,
+0x3c03000a,0x3c05000a,0x3c07000a,0x3c09000a,0x3c0b000a,0x3c0d000a,0x3c0f000a,0x3c11000a,0x3c13000a,0x3c15000a,0x3c17000a,0x3c19000a,0x3c1b000a,0x3c1d000a,0x3c1f000a,0x3c21000a,
+0x3c23000a,0x565000a,0x3c25000a,0x3c27000a,0x3c29000a,0x3c2b000a,0x3c2d000a,0x3c2f000a,0x3c31000a,0x3c33000a,0x3c35000a,0x3c37000a,0x3c39000a,0x3c3b000a,0x3c3d000a,0x3c3f000a,
+0x567000a,0x569000a,0x56b000a,0x56d000a,0x56f000a,0x571000a,0x573000a,0x575000a,0x577000a,0x579000a,0x57b000a,0x57d000a,0x57f000a,0x581000a,0x583000a,0x585000a,
+0x587000a,0x589000a,0x58b000a,0x58d000a,0x58f000a,0x591000a,0x593000a,0x595000a,0x597000a,0x3c41000a,0x3c43000a,0x3c45000a,0x3c47000a,0x3c49000a,0x3c4b000a,0x3c4d000a,
+0x3c4f000a,0x3c51000a,0x3c53000a,0x3c55000a,0x3c57000a,0x3c59000a,0x3c5b000a,0x3c5d000a,0x3c5f000a,0x3c61000a,0x3c63000a,0x599000a,0x3c65000a,0x3c67000a,0x3c69000a,0x3c6b000a,
+0x3c6d000a,0x3c6f000a,0x3c71000a,0x3c73000a,0x3c75000a,0x3c77000a,0x3c79000a,0x3c7b000a,0x3c7d000a,0x3c7f000a,0x59b000a,0x59d000a,0x59f000a,0x5a1000a,0x5a3000a,0x5a5000a,
+0x5a7000a,0x5a9000a,0x5ab000a,0x5ad000a,0x5af000a,0x5b1000a,0x5b3000a,0x5b5000a,0x5b7000a,0x5b9000a,0x5bb000a,0x5bd000a,0x5bf000a,0x5c1000a,0x5c3000a,0x5c5000a,
+0x5c7000a,0x5c9000a,0x5cb000a,0x3c81000a,0x3c83000a,0x3c85000a,0x3c87000a,0x3c89000a,0x3c8b000a,0x3c8d000a,0x3c8f000a,0x3c91000a,0x3c93000a,0x3c95000a,0x3c97000a,0x3c99000a,
+0x3c9b000a,0x3c9d000a,0x3c9f000a,0x3ca1000a,0x3ca3000a,0x5cd000a,0x3ca5000a,0x3ca7000a,0x3ca9000a,0x3cab000a,0x3cad000a,0x3caf000a,0x3cb1000a,0x3cb3000a,0x3cb5000a,0x3cb7000a,
+0x3cb9000a,0x3cbb000a,0x3cbd000a,0x3cbf000a,0x5cf000a,0x5d1000a,0x5d3000a,0x5d5000a,0x5d7000a,0x5d9000a,0x5db000a,0x5dd000a,0x5df000a,0x5e1000a,0x5e3000a,0x5e5000a,
+0x5e7000a,0x5e9000a,0x5eb000a,0x5ed000a,0x5ef000a,0x5f1000a,0x5f3000a,0x5f5000a,0x5f7000a,0x5f9000a,0x5fb000a,0x5fd000a,0x5ff000a,0x3cc1000a,0x3cc3000a,0x3cc5000a,
+0x3cc7000a,0x3cc9000a,0x3ccb000a,0x3ccd000a,0x3ccf000a,0x3cd1000a,0x3cd3000a,0x3cd5000a,0x3cd7000a,0x3cd9000a,0x3cdb000a,0x3cdd000a,0x3cdf000a,0x3ce1000a,0x3ce3000a,0x601000a,
+0x3ce5000a,0x3ce7000a,0x3ce9000a,0x3ceb000a,0x3ced000a,0x3cef000a,0x3cf1000a,0x3cf3000a,0x3cf5000a,0x3cf7000a,0x3cf9000a,0x3cfb000a,0x3cfd000a,0x3cff000a,0x603000a,0x3d01000a,
+0,0,0x3d03000a,0x3d05000a,0x3d07000a,0x3d09000a,0x3d0b000a,0x3d0d000a,0x3d0f000a,0x3d11000a,0x3d13000a,0x3d15000a,0x3d17000a,0x3d19000a,0x3d1b000a,0x3d1d000a,
+0x3d1f000a,0x3d21000a,0x3d23000a,0x3d25000a,0x605e60f,0x608e60f,0x206be6b0,0x60be60f,0x60ee60f,0x206cf0b0,0xe600,0xdc00,0xdc00,0xdc00,0xe600,0xe600,
0xe600,0xdc00,0xdc00,0,0xe600,0xe600,0xe600,0xdc00,0xdc00,0xdc00,0xdc00,0xe600,0xe800,0xdc00,0xdc00,0xe600,
-0xe900,0xea00,0xea00,0xe900,0,0,0,0,0x20f9000a,0x1458000e,0x1460000c,0x612000f,0x1464000c,0x1468000c,0x146c000c,0,
-0x1470000c,0,0x1474000c,0x1478000c,0x147c000c,0x3d6c0040,0,0,0,0x3d6d0040,0,0x3d6e0040,0,0x3d6f0040,0,0,
-0,0,0,0x3d700040,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x900,0,0,0,0xe600,0xdc00,0xe600,0xe600,0,0,0,0x614000f,0x618000f,0x61c000f,0x620000f,
-0x624000f,0x628000f,0x62c000f,0x630000f,0,0,0,0,0,0,0,0x3da30040,0,0,0,0x15b3000c,
-0x15b6000c,0x900,0,0,0,0,0,0,0,0,0,0x204d00b0,0,0,0,0,
-0x634000f,0x638000f,0,0x63c000f,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x640000f,0,0,0x644000f,0,0,0,0,0,
+0xe900,0xea00,0xea00,0xe900,0,0,0,0,0x211f000a,0x145c000e,0x1464000c,0x616000f,0x1468000c,0x146c000c,0x1470000c,0,
+0x1474000c,0,0x1478000c,0x147c000c,0x1480000c,0x3d940040,0,0,0,0x3d950040,0,0x3d960040,0,0x3d970040,0,0,
+0,0,0,0x3d980040,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x900,0,0,0,0xe600,0xdc00,0xe600,0xe600,0,0,0,0x618000f,0x61c000f,0x620000f,0x624000f,
+0x628000f,0x62c000f,0x630000f,0x634000f,0,0,0,0,0,0,0,0x3dcb0040,0,0,0,0x15b7000c,
+0x15ba000c,0x900,0,0,0,0,0,0,0,0,0,0x207200b0,0,0,0,0,
+0x638000f,0x63c000f,0,0x640000f,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x644000f,0,0,0x648000f,0,0,0,0,0,
0x700,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x900,0,0,0,0,0,0,0,0,0,0,0,0x648000f,0x64c000f,0x650000f,
-0,0,0x654000f,0,0,0,0,0,0,0,0,0x3da40040,0x15b9000c,0,0,0x15bc000c,
-0x15bf000c,0x900,0,0,0,0,0,0,0,0,0x204f00b0,0x205000b0,0,0,0,0,
-0x658000f,0x65c000f,0,0,0,0,0,0x660000f,0,0,0,0,0,0,0,0,
-0,0x663000f,0,0,0,0,0x666000f,0,0,0,0,0x669000f,0,0,0,0,
-0x66c000f,0,0,0,0,0,0,0,0,0,0,0,0,0x66f000f,0,0,
-0,0,0,0,0,0x8100,0x8200,0x672000f,0x8400,0x676000f,0x67a000f,0x212a000a,0x67e000f,0x212f000a,0x8200,0x8200,
-0x8200,0x8200,0,0,0x8200,0x682000f,0xe600,0xe600,0x900,0,0xe600,0xe600,0,0,0,0,
-0,0,0,0,0,0,0,0x686000f,0,0,0,0,0,0,0,0,
-0,0x689000f,0,0,0,0,0x68c000f,0,0,0,0,0x68f000f,0,0,0,0,
-0x692000f,0,0,0,0,0,0,0,0,0,0,0,0,0x695000f,0,0,
-0,0,0,0,0x1bfb004c,0x1c00004c,0x1c05004c,0x1c0b004c,0x1c11004c,0x1c17004c,0x1c1d004c,0x1c23004c,0x1c29004c,0x1c2e004c,0x1c33004c,0x1c39004c,
-0x1c3f004c,0x1c45004c,0x1c4b004c,0x1c51004c,0x1c57004c,0x698000f,0x1c5b000c,0x69c000f,0x1c60004c,0x6a0000f,0x1c64000c,0x6a4000f,0x1c68000c,0x6a8000f,0x1c6c000c,0x6ac000f,
-0x1c71004c,0x6b0000f,0,0,0x1d2d000c,0x1d32000c,0x1d37000c,0x1d3d000c,0x1d43000c,0x1d49000c,0x1d4f000c,0x1d55000c,0x1d5b000c,0x1d60000c,0x1d65000c,0x1d6b000c,
-0x1d71000c,0x1d77000c,0x1d7d000c,0x1d83000c,0x1d89000c,0x1d8d000c,0x1d91000c,0x1d96000c,0x1d9a000c,0,0x1da0004c,0x1da4000c,0x1da9000c,0x1dad000c,0x1db1000c,0x6b4000f,
-0x1db5000c,0x21d3000a,0x6b8000f,0x21d8004a,0x21dc000a,0x1db9000e,0x1dc1000c,0x1dc6000c,0x1dca000c,0,0x1dd0004c,0x1dd4000c,0x1dd9000c,0x6ba000f,0x1ddd000c,0x6be000f,
-0x1de1000c,0x1de5000e,0x1ded000e,0x1df5000e,0x1dfd000c,0x1e01000c,0x1e05000c,0x6c2000f,0,0,0x1e0a000c,0x1e0e000c,0x1e13000c,0x1e17000c,0x1e1b000c,0x6c7000f,
-0,0x1e1f000e,0x1e27000e,0x1e2f000e,0x1e37000c,0x1e3b000c,0x1e3f000c,0x6cb000f,0x1e44000c,0x1e48000c,0x1e4c000c,0x1e50000c,0x1e55000c,0x1e59000c,0x1e5d000c,0x6d0000f,
-0x1e61000c,0x1e65000e,0x6d4000f,0x6dc000f,0,0,0x1e6d000c,0x1e72000c,0x1e76000c,0,0x1e7c004c,0x1e80000c,0x1e85000c,0x6de000f,0x1e89000c,0x6e2000f,
-0x1e8d000c,0x6e6000f,0x21e1004a,0,0x6eb000f,0x6ee000f,0x21e5000a,0x21e7000a,0x21e9000a,0x21eb000a,0x21ed000a,0x21ef000a,0x21f1000a,0x21f3000a,0x21f5000a,0,
-0,0,0,0,0,0x21f7000a,0,0,0,0,0,0x21f9000a,0,0,0,0,
-0,0,0,0,0,0x6f9000f,0x6fb000f,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x6fd000f,0,0,0,0x701000f,0x703000f,0x705000f,0x707000f,0x709000f,0x70b000f,0x70d000f,0x70f000f,
-0x711000f,0x713000f,0x715000f,0x717000f,0x719000f,0x71b000f,0x71d000f,0x71f000f,0x721000f,0x723000f,0x725000f,0x727000f,0x729000f,0x72b000f,0x72d000f,0x72f000f,
-0x731000f,0x733000f,0x735000f,0x737000f,0x739000f,0x73b000f,0x73d000f,0x73f000f,0x741000f,0x743000f,0x745000f,0x747000f,0x749000f,0x74b000f,0x74d000f,0x74f000f,
-0x751000f,0x753000f,0x755000f,0x757000f,0x759000f,0x75b000f,0x75d000f,0x75f000f,0x761000f,0x763000f,0x765000f,0x767000f,0x769000f,0x76b000f,0x76d000f,0x76f000f,
-0x771000f,0x773000f,0x775000f,0x777000f,0x779000f,0x77b000f,0x77d000f,0x77f000f,0x781000f,0x783000f,0x785000f,0x787000f,0x789000f,0x78b000f,0x78d000f,0x78f000f,
-0x791000f,0x793000f,0x795000f,0x797000f,0x799000f,0x79b000f,0x79d000f,0x79f000f,0x7a1000f,0x7a3000f,0x7a5000f,0x7a7000f,0x7a9000f,0x7ab000f,0x7ad000f,0x7af000f,
-0x7b1000f,0x7b3000f,0x7b5000f,0x7b7000f,0x7b9000f,0x7bb000f,0x7bd000f,0x7bf000f,0x7c1000f,0x7c3000f,0x7c5000f,0x7c7000f,0x7c9000f,0x7cb000f,0x7cd000f,0x7cf000f,
-0x7d1000f,0x7d3000f,0x7d5000f,0x7d7000f,0x7d9000f,0x7db000f,0x7dd000f,0x7df000f,0x7e1000f,0x7e3000f,0x7e5000f,0x7e7000f,0x7e9000f,0x7eb000f,0x7ed000f,0x7ef000f,
-0x7f1000f,0x7f3000f,0x7f5000f,0x7f7000f,0x7f9000f,0x7fb000f,0x7fd000f,0x7ff000f,0x801000f,0x803000f,0x805000f,0x807000f,0x809000f,0x80b000f,0x80d000f,0x80f000f,
-0x811000f,0x813000f,0x815000f,0x817000f,0x819000f,0x81b000f,0x81d000f,0x81f000f,0x821000f,0x823000f,0x825000f,0x827000f,0x829000f,0x82b000f,0x82d000f,0x82f000f,
-0x831000f,0x833000f,0x835000f,0x837000f,0x839000f,0x83b000f,0x83d000f,0x83f000f,0x841000f,0x843000f,0x845000f,0x847000f,0x849000f,0x84b000f,0x84d000f,0x84f000f,
-0x851000f,0x853000f,0x855000f,0x857000f,0x859000f,0x85b000f,0x85d000f,0x85f000f,0x861000f,0x863000f,0x865000f,0x867000f,0x869000f,0x86b000f,0x86d000f,0x86f000f,
-0x871000f,0x873000f,0x875000f,0x877000f,0x879000f,0x87b000f,0x87d000f,0x87f000f,0x881000f,0x883000f,0x885000f,0x887000f,0x889000f,0x88b000f,0x88d000f,0x88f000f,
-0x891000f,0x893000f,0x895000f,0x897000f,0x899000f,0x89b000f,0x89d000f,0x89f000f,0x8a1000f,0x8a3000f,0x8a5000f,0x8a7000f,0x8a9000f,0x8ab000f,0x8ad000f,0x8af000f,
-0x8b1000f,0x8b3000f,0x8b5000f,0x8b7000f,0x8b9000f,0x8bb000f,0x8bd000f,0x8bf000f,0x8c1000f,0x8c3000f,0x8c5000f,0x8c7000f,0x8c9000f,0x8cb000f,0x8cd000f,0x8cf000f,
-0x8d1000f,0x8d3000f,0x8d5000f,0x8d7000f,0x8d9000f,0x8db000f,0x8dd000f,0x8df000f,0x8e1000f,0x8e3000f,0x8e5000f,0x8e7000f,0x8e9000f,0x8eb000f,0x8ed000f,0x8ef000f,
-0x8f1000f,0x8f3000f,0x8f5000f,0x8f7000f,0x8f9000f,0x8fb000f,0x8fd000f,0x8ff000f,0x901000f,0x903000f,0x905000f,0x907000f,0x909000f,0x90b000f,0x90d000f,0x90f000f,
-0x911000f,0x913000f,0x915000f,0x917000f,0x919000f,0x91b000f,0,0,0x91d000f,0,0x91f000f,0,0,0x921000f,0x923000f,0x925000f,
-0x927000f,0x929000f,0x92b000f,0x92d000f,0x92f000f,0x931000f,0x933000f,0,0x935000f,0,0x937000f,0,0,0x939000f,0x93b000f,0,
-0,0,0x93d000f,0x93f000f,0x941000f,0x943000f,0,0,0x945000f,0x947000f,0x949000f,0x94b000f,0x94d000f,0x94f000f,0x951000f,0x953000f,
-0x955000f,0x957000f,0x959000f,0x95b000f,0x95d000f,0x95f000f,0x961000f,0x963000f,0x965000f,0x967000f,0x969000f,0x96b000f,0x96d000f,0x96f000f,0x971000f,0x973000f,
-0x975000f,0x977000f,0x979000f,0x97b000f,0x97d000f,0x97f000f,0x981000f,0x983000f,0x985000f,0x987000f,0x989000f,0x98b000f,0x98d000f,0x98f000f,0x991000f,0x993000f,
-0x995000f,0x997000f,0x999000f,0x99b000f,0x99d000f,0x99f000f,0x9a1000f,0x9a3000f,0x9a5000f,0x9a7000f,0x9a9000f,0x9ab000f,0x9ad000f,0x9af000f,0x9b1000f,0x9b3000f,
-0x9b5000f,0x9b7000f,0x9b9000f,0,0,0,0,0,0x9bb000f,0x9bd000f,0x9bf000f,0x9c1000f,0x9c3000f,0x9c5000f,0x9c7000f,0x9c9000f,
-0x9cb000f,0x9cd000f,0x9cf000f,0x9d1000f,0x9d3000f,0x9d5000f,0x9d7000f,0x9d9000f,0x9db000f,0x9dd000f,0x9df000f,0x9e1000f,0x9e3000f,0x9e5000f,0x9e7000f,0x9e9000f,
-0x9eb000f,0x9ed000f,0x9ef000f,0x9f1000f,0x9f3000f,0x9f5000f,0x9f7000f,0x9f9000f,0x9fb000f,0x9fd000f,0x9ff000f,0xa01000f,0xa03000f,0xa05000f,0xa07000f,0xa09000f,
-0xa0b000f,0xa0d000f,0xa0f000f,0xa11000f,0xa13000f,0xa15000f,0xa17000f,0xa19000f,0xa1b000f,0xa1d000f,0xa1f000f,0xa21000f,0xa23000f,0xa25000f,0xa27000f,0xa29000f,
-0xa2b000f,0xa2d000f,0xa2f000f,0xa31000f,0xa33000f,0xa35000f,0xa37000f,0xa39000f,0xa3b000f,0xa3d000f,0xa3f000f,0xa41000f,0xa43000f,0xa45000f,0xa47000f,0xa49000f,
-0xa4b000f,0xa4d000f,0xa4f000f,0xa51000f,0xa53000f,0xa55000f,0xa57000f,0xa59000f,0xa5b000f,0xa5d000f,0xa5f000f,0xa61000f,0xa63000f,0xa65000f,0xa67000f,0xa69000f,
-0xa6b000f,0xa6d000f,0xa6f000f,0xa71000f,0xa73000f,0xa75000f,0xa77000f,0xa79000f,0xa7c000f,0xa7f000f,0xa82000f,0xa84000f,0xa86000f,0xa88000f,0xa8b000f,0xa8e000f,
-0xa91000f,0xa93000f,0,0,0,0,0,0,0x2db3000a,0x2db6000a,0x2db9000a,0x2dbc000a,0x2dc0000a,0x2dc4000a,0x2dc7000a,0,
-0,0,0,0,0,0,0,0,0,0,0,0x2dca000a,0x2dcd000a,0x2dd0000a,0x2dd3000a,0x2dd6000a,
-0,0,0,0,0,0xa95000f,0x1a00,0xa99000f,0x2dd9000a,0x2ddb000a,0x2ddd000a,0x2ddf000a,0x2de1000a,0x2de3000a,0x2de5000a,0x2de7000a,
-0x2de9000a,0x2deb000a,0xa9d000f,0xaa1000f,0xaa5000f,0xaaa000f,0xaaf000f,0xab3000f,0xab7000f,0xabb000f,0xabf000f,0xac3000f,0xac7000f,0xacb000f,0xacf000f,0,
-0xad3000f,0xad7000f,0xadb000f,0xadf000f,0xae3000f,0,0xae7000f,0,0xaeb000f,0xaef000f,0,0xaf3000f,0xaf7000f,0,0xafb000f,0xaff000f,
-0xb03000f,0xb07000f,0xb0b000f,0xb0f000f,0xb13000f,0xb17000f,0xb1b000f,0x2ded000a,0x2df0000a,0x2df2000a,0x2df4000a,0x2df6000a,0x2df8000a,0x2dfa000a,0x2dfc000a,0x2dfe000a,
-0x2e00000a,0x2e02000a,0x2e04000a,0x2e06000a,0x2e08000a,0x2e0a000a,0x2e0c000a,0x2e0e000a,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xb1f000f,0xb25000f,0xb2b000f,0xb33000f,0xb3b000f,0xb43000f,0xb4b000f,0xd800,0xd800,0x100,
+0,0x900,0,0,0,0,0,0,0,0,0,0,0,0x64c000f,0x650000f,0x654000f,
+0,0,0x658000f,0,0,0,0,0,0,0,0,0x3dcc0040,0x15bd000c,0,0,0x15c0000c,
+0x15c3000c,0x900,0,0,0,0,0,0,0,0,0x207400b0,0x207500b0,0,0,0,0,
+0x65c000f,0x660000f,0,0,0,0,0,0x664000f,0,0,0,0,0,0,0,0,
+0,0x667000f,0,0,0,0,0x66a000f,0,0,0,0,0x66d000f,0,0,0,0,
+0x670000f,0,0,0,0,0,0,0,0,0,0,0,0,0x673000f,0,0,
+0,0,0,0,0,0x8100,0x8200,0x676000f,0x8400,0x67a000f,0x67e000f,0x2150000a,0x682000f,0x2155000a,0x8200,0x8200,
+0x8200,0x8200,0,0,0x8200,0x686000f,0xe600,0xe600,0x900,0,0xe600,0xe600,0,0,0,0,
+0,0,0,0,0,0,0,0x68a000f,0,0,0,0,0,0,0,0,
+0,0x68d000f,0,0,0,0,0x690000f,0,0,0,0,0x693000f,0,0,0,0,
+0x696000f,0,0,0,0,0,0,0,0,0,0,0,0,0x699000f,0,0,
+0,0,0,0,0x1c20004c,0x1c25004c,0x1c2a004c,0x1c30004c,0x1c36004c,0x1c3c004c,0x1c42004c,0x1c48004c,0x1c4e004c,0x1c53004c,0x1c58004c,0x1c5e004c,
+0x1c64004c,0x1c6a004c,0x1c70004c,0x1c76004c,0x1c7c004c,0x69c000f,0x1c80000c,0x6a0000f,0x1c85004c,0x6a4000f,0x1c89000c,0x6a8000f,0x1c8d000c,0x6ac000f,0x1c91000c,0x6b0000f,
+0x1c96004c,0x6b4000f,0,0,0x1d52000c,0x1d57000c,0x1d5c000c,0x1d62000c,0x1d68000c,0x1d6e000c,0x1d74000c,0x1d7a000c,0x1d80000c,0x1d85000c,0x1d8a000c,0x1d90000c,
+0x1d96000c,0x1d9c000c,0x1da2000c,0x1da8000c,0x1dae000c,0x1db2000c,0x1db6000c,0x1dbb000c,0x1dbf000c,0,0x1dc5004c,0x1dc9000c,0x1dce000c,0x1dd2000c,0x1dd6000c,0x6b8000f,
+0x1dda000c,0x21f9000a,0x6bc000f,0x21fe004a,0x2202000a,0x1dde000e,0x1de6000c,0x1deb000c,0x1def000c,0,0x1df5004c,0x1df9000c,0x1dfe000c,0x6be000f,0x1e02000c,0x6c2000f,
+0x1e06000c,0x1e0a000e,0x1e12000e,0x1e1a000e,0x1e22000c,0x1e26000c,0x1e2a000c,0x6c6000f,0,0,0x1e2f000c,0x1e33000c,0x1e38000c,0x1e3c000c,0x1e40000c,0x6cb000f,
+0,0x1e44000e,0x1e4c000e,0x1e54000e,0x1e5c000c,0x1e60000c,0x1e64000c,0x6cf000f,0x1e69000c,0x1e6d000c,0x1e71000c,0x1e75000c,0x1e7a000c,0x1e7e000c,0x1e82000c,0x6d4000f,
+0x1e86000c,0x1e8a000e,0x6d8000f,0x6e0000f,0,0,0x1e92000c,0x1e97000c,0x1e9b000c,0,0x1ea1004c,0x1ea5000c,0x1eaa000c,0x6e2000f,0x1eae000c,0x6e6000f,
+0x1eb2000c,0x6ea000f,0x2207004a,0,0x6ef000f,0x6f2000f,0x220b000a,0x220d000a,0x220f000a,0x2211000a,0x2213000a,0x2215000a,0x2217000a,0x2219000a,0x221b000a,0,
+0,0,0,0,0,0x221d000a,0,0,0,0,0,0x221f000a,0,0,0,0,
+0,0,0,0,0,0x6fd000f,0x6ff000f,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x701000f,0,0,0,0x705000f,0x707000f,0x709000f,0x70b000f,0x70d000f,0x70f000f,0x711000f,0x713000f,
+0x715000f,0x717000f,0x719000f,0x71b000f,0x71d000f,0x71f000f,0x721000f,0x723000f,0x725000f,0x727000f,0x729000f,0x72b000f,0x72d000f,0x72f000f,0x731000f,0x733000f,
+0x735000f,0x737000f,0x739000f,0x73b000f,0x73d000f,0x73f000f,0x741000f,0x743000f,0x745000f,0x747000f,0x749000f,0x74b000f,0x74d000f,0x74f000f,0x751000f,0x753000f,
+0x755000f,0x757000f,0x759000f,0x75b000f,0x75d000f,0x75f000f,0x761000f,0x763000f,0x765000f,0x767000f,0x769000f,0x76b000f,0x76d000f,0x76f000f,0x771000f,0x773000f,
+0x775000f,0x777000f,0x779000f,0x77b000f,0x77d000f,0x77f000f,0x781000f,0x783000f,0x785000f,0x787000f,0x789000f,0x78b000f,0x78d000f,0x78f000f,0x791000f,0x793000f,
+0x795000f,0x797000f,0x799000f,0x79b000f,0x79d000f,0x79f000f,0x7a1000f,0x7a3000f,0x7a5000f,0x7a7000f,0x7a9000f,0x7ab000f,0x7ad000f,0x7af000f,0x7b1000f,0x7b3000f,
+0x7b5000f,0x7b7000f,0x7b9000f,0x7bb000f,0x7bd000f,0x7bf000f,0x7c1000f,0x7c3000f,0x7c5000f,0x7c7000f,0x7c9000f,0x7cb000f,0x7cd000f,0x7cf000f,0x7d1000f,0x7d3000f,
+0x7d5000f,0x7d7000f,0x7d9000f,0x7db000f,0x7dd000f,0x7df000f,0x7e1000f,0x7e3000f,0x7e5000f,0x7e7000f,0x7e9000f,0x7eb000f,0x7ed000f,0x7ef000f,0x7f1000f,0x7f3000f,
+0x7f5000f,0x7f7000f,0x7f9000f,0x7fb000f,0x7fd000f,0x7ff000f,0x801000f,0x803000f,0x805000f,0x807000f,0x809000f,0x80b000f,0x80d000f,0x80f000f,0x811000f,0x813000f,
+0x815000f,0x817000f,0x819000f,0x81b000f,0x81d000f,0x81f000f,0x821000f,0x823000f,0x825000f,0x827000f,0x829000f,0x82b000f,0x82d000f,0x82f000f,0x831000f,0x833000f,
+0x835000f,0x837000f,0x839000f,0x83b000f,0x83d000f,0x83f000f,0x841000f,0x843000f,0x845000f,0x847000f,0x849000f,0x84b000f,0x84d000f,0x84f000f,0x851000f,0x853000f,
+0x855000f,0x857000f,0x859000f,0x85b000f,0x85d000f,0x85f000f,0x861000f,0x863000f,0x865000f,0x867000f,0x869000f,0x86b000f,0x86d000f,0x86f000f,0x871000f,0x873000f,
+0x875000f,0x877000f,0x879000f,0x87b000f,0x87d000f,0x87f000f,0x881000f,0x883000f,0x885000f,0x887000f,0x889000f,0x88b000f,0x88d000f,0x88f000f,0x891000f,0x893000f,
+0x895000f,0x897000f,0x899000f,0x89b000f,0x89d000f,0x89f000f,0x8a1000f,0x8a3000f,0x8a5000f,0x8a7000f,0x8a9000f,0x8ab000f,0x8ad000f,0x8af000f,0x8b1000f,0x8b3000f,
+0x8b5000f,0x8b7000f,0x8b9000f,0x8bb000f,0x8bd000f,0x8bf000f,0x8c1000f,0x8c3000f,0x8c5000f,0x8c7000f,0x8c9000f,0x8cb000f,0x8cd000f,0x8cf000f,0x8d1000f,0x8d3000f,
+0x8d5000f,0x8d7000f,0x8d9000f,0x8db000f,0x8dd000f,0x8df000f,0x8e1000f,0x8e3000f,0x8e5000f,0x8e7000f,0x8e9000f,0x8eb000f,0x8ed000f,0x8ef000f,0x8f1000f,0x8f3000f,
+0x8f5000f,0x8f7000f,0x8f9000f,0x8fb000f,0x8fd000f,0x8ff000f,0x901000f,0x903000f,0x905000f,0x907000f,0x909000f,0x90b000f,0x90d000f,0x90f000f,0x911000f,0x913000f,
+0x915000f,0x917000f,0x919000f,0x91b000f,0x91d000f,0x91f000f,0,0,0x921000f,0,0x923000f,0,0,0x925000f,0x927000f,0x929000f,
+0x92b000f,0x92d000f,0x92f000f,0x931000f,0x933000f,0x935000f,0x937000f,0,0x939000f,0,0x93b000f,0,0,0x93d000f,0x93f000f,0,
+0,0,0x941000f,0x943000f,0x945000f,0x947000f,0,0,0x949000f,0x94b000f,0x94d000f,0x94f000f,0x951000f,0x953000f,0x955000f,0x957000f,
+0x959000f,0x95b000f,0x95d000f,0x95f000f,0x961000f,0x963000f,0x965000f,0x967000f,0x969000f,0x96b000f,0x96d000f,0x96f000f,0x971000f,0x973000f,0x975000f,0x977000f,
+0x979000f,0x97b000f,0x97d000f,0x97f000f,0x981000f,0x983000f,0x985000f,0x987000f,0x989000f,0x98b000f,0x98d000f,0x98f000f,0x991000f,0x993000f,0x995000f,0x997000f,
+0x999000f,0x99b000f,0x99d000f,0x99f000f,0x9a1000f,0x9a3000f,0x9a5000f,0x9a7000f,0x9a9000f,0x9ab000f,0x9ad000f,0x9af000f,0x9b1000f,0x9b3000f,0x9b5000f,0x9b7000f,
+0x9b9000f,0x9bb000f,0x9bd000f,0,0,0,0,0,0x9bf000f,0x9c1000f,0x9c3000f,0x9c5000f,0x9c7000f,0x9c9000f,0x9cb000f,0x9cd000f,
+0x9cf000f,0x9d1000f,0x9d3000f,0x9d5000f,0x9d7000f,0x9d9000f,0x9db000f,0x9dd000f,0x9df000f,0x9e1000f,0x9e3000f,0x9e5000f,0x9e7000f,0x9e9000f,0x9eb000f,0x9ed000f,
+0x9ef000f,0x9f1000f,0x9f3000f,0x9f5000f,0x9f7000f,0x9f9000f,0x9fb000f,0x9fd000f,0x9ff000f,0xa01000f,0xa03000f,0xa05000f,0xa07000f,0xa09000f,0xa0b000f,0xa0d000f,
+0xa0f000f,0xa11000f,0xa13000f,0xa15000f,0xa17000f,0xa19000f,0xa1b000f,0xa1d000f,0xa1f000f,0xa21000f,0xa23000f,0xa25000f,0xa27000f,0xa29000f,0xa2b000f,0xa2d000f,
+0xa2f000f,0xa31000f,0xa33000f,0xa35000f,0xa37000f,0xa39000f,0xa3b000f,0xa3d000f,0xa3f000f,0xa41000f,0xa43000f,0xa45000f,0xa47000f,0xa49000f,0xa4b000f,0xa4d000f,
+0xa4f000f,0xa51000f,0xa53000f,0xa55000f,0xa57000f,0xa59000f,0xa5b000f,0xa5d000f,0xa5f000f,0xa61000f,0xa63000f,0xa65000f,0xa67000f,0xa69000f,0xa6b000f,0xa6d000f,
+0xa6f000f,0xa71000f,0xa73000f,0xa75000f,0xa77000f,0xa79000f,0xa7b000f,0xa7d000f,0xa80000f,0xa83000f,0xa86000f,0xa88000f,0xa8a000f,0xa8c000f,0xa8f000f,0xa92000f,
+0xa95000f,0xa97000f,0,0,0,0,0,0,0x2dd9000a,0x2ddc000a,0x2ddf000a,0x2de2000a,0x2de6000a,0x2dea000a,0x2ded000a,0,
+0,0,0,0,0,0,0,0,0,0,0,0x2df0000a,0x2df3000a,0x2df6000a,0x2df9000a,0x2dfc000a,
+0,0,0,0,0,0xa99000f,0x1a00,0xa9d000f,0x2dff000a,0x2e01000a,0x2e03000a,0x2e05000a,0x2e07000a,0x2e09000a,0x2e0b000a,0x2e0d000a,
+0x2e0f000a,0x2e11000a,0xaa1000f,0xaa5000f,0xaa9000f,0xaae000f,0xab3000f,0xab7000f,0xabb000f,0xabf000f,0xac3000f,0xac7000f,0xacb000f,0xacf000f,0xad3000f,0,
+0xad7000f,0xadb000f,0xadf000f,0xae3000f,0xae7000f,0,0xaeb000f,0,0xaef000f,0xaf3000f,0,0xaf7000f,0xafb000f,0,0xaff000f,0xb03000f,
+0xb07000f,0xb0b000f,0xb0f000f,0xb13000f,0xb17000f,0xb1b000f,0xb1f000f,0x2e13000a,0x2e16000a,0x2e18000a,0x2e1a000a,0x2e1c000a,0x2e1e000a,0x2e20000a,0x2e22000a,0x2e24000a,
+0x2e26000a,0x2e28000a,0x2e2a000a,0x2e2c000a,0x2e2e000a,0x2e30000a,0x2e32000a,0x2e34000a,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0xb23000f,0xb29000f,0xb2f000f,0xb37000f,0xb3f000f,0xb47000f,0xb4f000f,0xd800,0xd800,0x100,
0x100,0x100,0,0,0,0xe200,0xd800,0xd800,0xd800,0xd800,0xd800,0,0,0,0,0,
0,0,0,0xdc00,0xdc00,0xdc00,0xdc00,0xdc00,0,0,0,0,0,0,0,0,
0,0,0xe600,0xe600,0xe600,0xe600,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb53000f,0xb59000f,0xb5f000f,0xb67000f,0xb6f000f,0xb77000f,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xb7f000f,0xb81000f,0xb83000f,0xb85000f,0xb88000f,0xb8a000f,0xb8c000f,0xb8e000f,
-0xb90000f,0xb92000f,0xb94000f,0xb96000f,0xb98000f,0xb9a000f,0xb9d000f,0xb9f000f,0xba1000f,0xba3000f,0xba5000f,0xba8000f,0xbaa000f,0xbac000f,0xbae000f,0xbb1000f,
-0xbb3000f,0xbb5000f,0xbb7000f,0xbb9000f,0xbbb000f,0xbbe000f,0xbc0000f,0xbc2000f,0xbc4000f,0xbc6000f,0xbc8000f,0xbca000f,0xbcc000f,0xbce000f,0xbd0000f,0xbd2000f,
-0xbd4000f,0xbd6000f,0xbd8000f,0xbda000f,0xbdc000f,0xbde000f,0xbe0000f,0xbe2000f,0xbe4000f,0xbe6000f,0xbe8000f,0xbea000f,0xbec000f,0xbef000f,0xbf1000f,0xbf3000f,
-0xbf5000f,0xbf8000f,0xbfa000f,0xbfc000f,0xbfe000f,0xc00000f,0xc02000f,0xc04000f,0xc06000f,0xc08000f,0xc0a000f,0xc0c000f,0xc0e000f,0xc10000f,0xc12000f,0xc14000f,
-0xc16000f,0xc18000f,0xc1a000f,0xc1c000f,0xc1e000f,0xc20000f,0xc22000f,0xc24000f,0xc26000f,0xc28000f,0xc2a000f,0xc2c000f,0xc2e000f,0xc30000f,0xc32000f,0xc34000f,
-0xc36000f,0xc38000f,0xc3b000f,0xc3d000f,0xc3f000f,0xc41000f,0xc43000f,0xc45000f,0xc47000f,0xc4a000f,0xc4d000f,0xc4f000f,0xc51000f,0xc53000f,0xc55000f,0xc57000f,
-0xc59000f,0xc5b000f,0xc5d000f,0xc5f000f,0xc61000f,0xc64000f,0xc66000f,0xc68000f,0xc6a000f,0xc6c000f,0xc6f000f,0xc71000f,0xc73000f,0xc75000f,0xc77000f,0xc79000f,
-0xc7b000f,0xc7d000f,0xc7f000f,0xc81000f,0xc84000f,0xc86000f,0xc89000f,0xc8b000f,0xc8d000f,0xc8f000f,0xc91000f,0xc93000f,0xc95000f,0xc97000f,0xc99000f,0xc9b000f,
-0xc9d000f,0xc9f000f,0xca2000f,0xca4000f,0xca6000f,0xca8000f,0xcaa000f,0xcac000f,0xcaf000f,0xcb1000f,0xcb4000f,0xcb7000f,0xcb9000f,0xcbb000f,0xcbd000f,0xcbf000f,
-0xcc2000f,0xcc5000f,0xcc7000f,0xcc9000f,0xccb000f,0xccd000f,0xccf000f,0xcd1000f,0xcd3000f,0xcd5000f,0xcd7000f,0xcd9000f,0xcdb000f,0xcde000f,0xce0000f,0xce2000f,
-0xce4000f,0xce6000f,0xce8000f,0xcea000f,0xcec000f,0xcee000f,0xcf0000f,0xcf2000f,0xcf4000f,0xcf6000f,0xcf8000f,0xcfa000f,0xcfc000f,0xcfe000f,0xd00000f,0xd02000f,
-0xd04000f,0xd07000f,0xd09000f,0xd0b000f,0xd0d000f,0xd0f000f,0xd11000f,0xd14000f,0xd16000f,0xd18000f,0xd1a000f,0xd1c000f,0xd1e000f,0xd20000f,0xd22000f,0xd24000f,
-0xd26000f,0xd28000f,0xd2a000f,0xd2d000f,0xd2f000f,0xd31000f,0xd33000f,0xd35000f,0xd37000f,0xd39000f,0xd3b000f,0xd3d000f,0xd3f000f,0xd41000f,0xd43000f,0xd45000f,
-0xd47000f,0xd49000f,0xd4b000f,0xd4d000f,0xd4f000f,0xd51000f,0xd54000f,0xd56000f,0xd58000f,0xd5a000f,0xd5c000f,0xd5e000f,0xd61000f,0xd63000f,0xd65000f,0xd67000f,
-0xd69000f,0xd6b000f,0xd6d000f,0xd6f000f,0xd71000f,0xd74000f,0xd76000f,0xd78000f,0xd7a000f,0xd7d000f,0xd7f000f,0xd81000f,0xd83000f,0xd85000f,0xd87000f,0xd89000f,
-0xd8c000f,0xd8f000f,0xd92000f,0xd94000f,0xd97000f,0xd99000f,0xd9b000f,0xd9d000f,0xd9f000f,0xda1000f,0xda3000f,0xda5000f,0xda7000f,0xda9000f,0xdab000f,0xdae000f,
-0xdb0000f,0xdb2000f,0xdb4000f,0xdb6000f,0xdb8000f,0xdba000f,0xdbd000f,0xdbf000f,0xdc1000f,0xdc4000f,0xdc7000f,0xdc9000f,0xdcb000f,0xdcd000f,0xdcf000f,0xdd1000f,
-0xdd3000f,0xdd5000f,0xdd7000f,0xdd9000f,0xddc000f,0xdde000f,0xde1000f,0xde3000f,0xde6000f,0xde8000f,0xdea000f,0xdec000f,0xdef000f,0xdf1000f,0xdf3000f,0xdf6000f,
-0xdf9000f,0xdfb000f,0xdfd000f,0xdff000f,0xe01000f,0xe03000f,0xe05000f,0xe07000f,0xe09000f,0xe0b000f,0xe0d000f,0xe0f000f,0xe11000f,0xe13000f,0xe16000f,0xe18000f,
-0xe1b000f,0xe1d000f,0xe20000f,0xe22000f,0xe25000f,0xe28000f,0xe2b000f,0xe2d000f,0xe2f000f,0xe31000f,0xe34000f,0xe37000f,0xe3a000f,0xe3d000f,0xe3f000f,0xe41000f,
-0xe43000f,0xe45000f,0xe47000f,0xe49000f,0xe4b000f,0xe4d000f,0xe50000f,0xe52000f,0xe54000f,0xe56000f,0xe58000f,0xe5b000f,0xe5d000f,0xe60000f,0xe63000f,0xe65000f,
-0xe67000f,0xe69000f,0xe6b000f,0xe6d000f,0xe6f000f,0xe72000f,0xe75000f,0xe78000f,0xe7a000f,0xe7c000f,0xe7f000f,0xe81000f,0xe83000f,0xe85000f,0xe88000f,0xe8a000f,
-0xe8c000f,0xe8e000f,0xe90000f,0xe92000f,0xe95000f,0xe97000f,0xe99000f,0xe9b000f,0xe9d000f,0xe9f000f,0xea1000f,0xea4000f,0xea7000f,0xea9000f,0xeac000f,0xeae000f,
-0xeb1000f,0xeb3000f,0xeb5000f,0xeb7000f,0xeba000f,0xebd000f,0xebf000f,0xec2000f,0xec4000f,0xec7000f,0xec9000f,0xecb000f,0xecd000f,0xecf000f,0xed1000f,0xed3000f,
-0xed6000f,0xed9000f,0xedc000f,0xedf000f,0xee1000f,0xee3000f,0xee5000f,0xee7000f,0xee9000f,0xeeb000f,0xeed000f,0xeef000f,0xef1000f,0xef3000f,0xef5000f,0xef7000f,
-0xefa000f,0xefc000f,0xefe000f,0xf00000f,0xf02000f,0xf04000f,0xf06000f,0xf08000f,0xf0a000f,0xf0c000f,0xf0e000f,0xf10000f,0xf12000f,0xf15000f,0xf18000f,0xf1b000f,
-0xf1d000f,0xf1f000f,0xf21000f,0xf23000f,0xf26000f,0xf28000f,0xf2b000f,0xf2d000f,0xf2f000f,0xf32000f,0xf35000f,0xf37000f,0xf39000f,0xf3b000f,0xf3d000f,0xf3f000f,
-0xf41000f,0xf43000f,0xf45000f,0xf47000f,0xf49000f,0xf4b000f,0xf4d000f,0xf4f000f,0xf51000f,0xf53000f,0xf55000f,0xf57000f,0xf59000f,0xf5b000f,0xf5e000f,0xf60000f,
-0xf62000f,0xf64000f,0xf66000f,0xf68000f,0xf6b000f,0xf6e000f,0xf70000f,0xf72000f,0xf74000f,0xf76000f,0xf78000f,0xf7a000f,0xf7d000f,0xf7f000f,0xf81000f,0xf83000f,
-0xf85000f,0xf88000f,0xf8b000f,0xf8d000f,0xf8f000f,0xf91000f,0xf94000f,0xf96000f,0xf98000f,0xf9b000f,0xf9e000f,0xfa0000f,0xfa2000f,0xfa4000f,0xfa7000f,0xfa9000f,
-0xfab000f,0xfad000f,0xfaf000f,0xfb1000f,0xfb3000f,0xfb5000f,0xfb8000f,0xfba000f,0xfbc000f,0xfbe000f,0xfc1000f,0xfc3000f,0xfc5000f,0xfc7000f,0xfc9000f,0xfcc000f,
-0xfcf000f,0xfd1000f,0xfd3000f,0xfd5000f,0xfd8000f,0xfda000f,0xfdd000f,0xfdf000f,0xfe1000f,0xfe3000f,0xfe6000f,0xfe8000f,0xfea000f,0xfec000f,0xfee000f,0xff0000f,
-0xff2000f,0xff4000f,0xff7000f,0xff9000f,0xffb000f,0xffd000f,0xfff000f,0x1001000f,0x1003000f,0x1006000f,0x1008000f,0x100b000f,0x100e000f,0x1011000f,0x1013000f,0x1015000f,
-0x1017000f,0x1019000f,0x101b000f,0x101d000f,0x101f000f,0x1021000f,0,0,0x1024000c,0x1028000c,0x102d004c,0x1031000c,0x1036004c,0x103b004c,0x3d660040,0x1040004c,
-0x1044000c,0x1048000c,0x104d004c,0x1051000c,0x1055000c,0x1059000c,0x105d000c,0x1062004c,0,0x1066000c,0x106a000c,0x106e000c,0x1073004c,0x1078004c,0x107d004c,0,
-0x3d6a0040,0x1081000c,0x1085000c,0x1089000c,0x108e004c,0x1092000c,0,0,0x1096000c,0x109a000c,0x109f004c,0x10a3000c,0x10a8004c,0x10ad004c,0x3d670040,0x10b2004c,
-0x10b6000c,0x10ba000c,0x10bf004c,0x10c3000c,0x10c7000c,0x10cb000c,0x10cf000c,0x10d4004c,0,0x10d8000c,0x10dc000c,0x10e0000c,0x10e5004c,0x10ea004c,0x10ef004c,0,
-0x3d6b0040,0x10f3000c,0x10f7000c,0x10fb000c,0x1100004c,0x1104000c,0,0x1108000c,0x110c000c,0x1110000c,0x1115004c,0x111a004c,0x111e000c,0x1122000c,0x1126000c,0x112a000c,
-0x112e000c,0x1132000c,0x1136000c,0x113a000c,0x113e000c,0x1142000c,0x1146000c,0x114a000c,0,0,0x114f004c,0x1154004c,0x1158000c,0x115c000c,0x1160000c,0x1164000c,
-0x1168000c,0x116c000c,0x1170000c,0x1174000c,0x1178000c,0x117c000c,0x1180000c,0x1184000c,0x1188000c,0x118c000c,0x1190000c,0x1194000c,0x1198000c,0x119c000c,0,0,
-0x11a0000c,0x11a4000c,0x11a8000c,0x11ac000c,0x11b0000c,0x11b4000c,0x11b8000c,0x11bc000c,0x11c0000c,0,0x2089000a,0x208c000a,0x11c4000c,0x11c8000c,0x11cc000c,0x11d0000c,
-0,0x11d4000c,0x11d8000c,0x11dc000c,0x11e0000c,0x11e4000c,0x11e8000c,0x208f000a,0x2092000a,0,0,0x11ec000c,0x11f0000c,0x11f4000c,0x11f8000c,0x11fc000c,
-0x1200000c,0x2095000a,0,0,0x1205004c,0x120a004c,0x120e000c,0x1212000c,0x1216000c,0x121a000c,0,0,0x121e000c,0x1222000c,0x1226000c,0x122a000c,
-0x122e000c,0x1232000c,0x1237004c,0x123c004c,0x1240000c,0x1244000c,0x1248000c,0x124c000c,0x1251004c,0x1256004c,0x125a000c,0x125e000c,0x1262000c,0x1266000c,0,0,
-0x126b004c,0x1270004c,0x1275004c,0x127a004c,0x127e000c,0x1282000c,0x1286000c,0x128a000c,0x128e000c,0x1292000c,0x1296000c,0x129a000c,0x129e000c,0x12a2000c,0x12a6000c,0x12aa000c,
-0x12ae000c,0x12b2000c,0x12b6000c,0x12ba000c,0x12be000c,0x12c2000c,0x12c6000c,0x2099004a,0x12cb004c,0x12d0004c,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x12d5004c,0x12da004c,0,0,0,0,0,0,0x3d680040,
-0,0,0,0,0,0,0,0,0x209b000a,0x20a0000a,0x20a5000a,0x20aa000a,0x20ad000a,0x20b0000a,0x20b3000a,0x20b6000a,
-0x20b9000a,0x12de000c,0x12e2000c,0x12e6000c,0x12ea000c,0x12ee000c,0x12f2000c,0x12f6000c,0x12fa000c,0x12fe000c,0x1303000c,0x1308000c,0x130d000c,0x1312000c,0x1317000c,0x131c000c,
-0x1321000c,0,0x1326000c,0x132b000c,0x1330000c,0x1335000c,0x133a000c,0x133e000c,0,0,0x1342000c,0x1346000c,0x134a000c,0x134e000c,0x1353004c,0x1358004c,
-0x135c000c,0x1361000c,0x1366000c,0x136a000c,0x136e000c,0x20bc000a,0x20bf000a,0x20c2000a,0x1372000c,0x1376000c,0,0,0x137a000c,0x137e000c,0x1382000c,0x1387000c,
-0x138c000c,0x1390000c,0x1394000c,0x1398000c,0x139c000c,0x13a0000c,0x13a4000c,0x13a8000c,0x13ac000c,0x13b0000c,0x13b4000c,0x13b8000c,0x13bc000c,0x13c0000c,0x13c4000c,0x13c8000c,
-0x13cc000c,0x13d0000c,0x13d4000c,0x13d8000c,0x13dc000c,0x13e0000c,0x13e4000c,0x13e8000c,0x13ec000c,0x13f0000c,0x13f4000c,0x13f8000c,0x13fc000c,0x1400000c,0x1404000c,0x1408000c,
-0,0,0x140c000c,0x1410000c,0,0,0,0,0,0,0x1415004c,0x141a004c,0x141f004c,0x1424004c,0x1428000c,0x142d000c,
-0x1432000c,0x1437000c,0x143d004c,0x1442004c,0x1446000c,0x144b000c,0x1450000c,0x1454000c,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x3dbc0040,0,0,0,0x3d710040,0,0,0,0x3d720040,0x1481000c,0x1485000c,
-0x148a004c,0x148e000c,0x1493004c,0x1497000c,0x149b000c,0x3d730040,0,0,0,0x3d740040,0,0x3d750040,0,0x3d760040,0,0,
-0,0,0,0x3d780040,0x14b7000c,0x14bb000c,0,0x14bf000c,0,0,0x3d7c0040,0x14c3000c,0,0,0,0,
-0x14c7000c,0x14cb000c,0x14cf000c,0,0x3d8a0040,0,0,0x3d7b0040,0,0x3d7a0040,0x3d880040,0x3d8e0040,0x3d7e0040,0x14d3000c,0x3d7d0040,0,
-0,0,0x3d900040,0,0,0,0,0x3d7f0040,0,0,0,0x3d960040,0,0,0,0x3d980040,
-0,0x3d940040,0,0,0x3d8b0040,0,0,0x3d820040,0,0x3d810040,0x3d890040,0x3d8f0040,0x3d800040,0x14d7000c,0x3d840040,0,
-0,0,0x3d910040,0,0,0,0,0x3d850040,0,0,0,0x3d970040,0,0,0,0x3d990040,
-0,0x3d950040,0,0,0x14db000c,0x14df000c,0,0x14e3000c,0,0,0x3d830040,0x14e7000c,0,0,0,0,
-0x14eb000c,0x14ef000c,0x14f3000c,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x3d860040,0x3d870040,0x14f7000c,0x14fb000c,0,0,0,0,
-0,0,0,0,0,0x14ff000c,0x1503000c,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1507000c,0x150b000c,0x150f000c,0x1513000c,0,0,0x1517000c,0x151b000c,0x3d8c0040,0x3d8d0040,0x151f000c,0x1523000c,
-0x1527000c,0x152b000c,0x152f000c,0x1533000c,0,0,0x1537000c,0x153b000c,0x153f000c,0x1543000c,0x1547000c,0x154b000c,0x3d920040,0x3d930040,0x154f000c,0x1553000c,
-0x1557000c,0x155b000c,0x155f000c,0x1563000c,0x1567000c,0x156b000c,0x156f000c,0x1573000c,0x1577000c,0x157b000c,0,0,0x157f000c,0x1583000c,0,0,
-0,0,0,0,0,0,0x1587000c,0x158b000c,0x158f000c,0x1593000c,0x1597000c,0x3d9a0040,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x159b000c,0x3d9e0040,0x159f000c,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x3d9f0040,0x15a3000c,0,0x3d9d0040,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,
-0xe600,0,0,0xe600,0,0,0,0,0,0,0,0,0x3da00040,0x15a7000c,0,0,
-0,0,0,0,0x3da10040,0x15ab000c,0,0x3da20040,0x15af000c,0,0,0,0,0,0,0,
-0x204b07b0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x3da50040,0,0x15c2000c,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x3da60040,0x3da70040,0,0,0x15c5000c,0x15c8000c,0x15cb000c,0x900,0,0,
-0,0,0,0,0,0,0,0x205200b0,0,0,0,0,0,0,0,0,
-0,0,0x3da80040,0,0x15ce000c,0,0,0,0,0x900,0,0,0,0,0,0,
-0,0x5400,0x20535bb0,0,0,0,0,0,0,0,0,0,0x15d2000c,0,0x205400b0,0,
-0,0,0x3daa0040,0x15d5000c,0x15d8000c,0,0x15dc004c,0x15df000c,0,0x900,0,0,0,0,0,0,
-0,0x205500b0,0x205600b0,0,0,0,0,0,0,0,0,0,0,0,0x3dab0040,0x3dac0040,
-0,0,0x15e3000c,0x15e6000c,0x15e9000c,0x900,0,0,0,0,0,0,0,0,0,0x205800b0,
-0,0,0,0,0,0,0,0,0,0,0x205909b0,0,0,0,0,0x205a00b0,
-0,0,0,0,0,0,0,0,0,0x3dad0040,0x15ec000c,0,0x15f1004c,0x15f4000c,0x15f9000c,0x205b00b0,
-0,0,0,0,0,0x3dae0040,0x15fc000c,0,0,0,0,0,0,0,0x205c00b0,0,
+0,0,0,0xb57000f,0xb5d000f,0xb63000f,0xb6b000f,0xb73000f,0xb7b000f,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xb83000f,0xb85000f,0xb87000f,0xb89000f,0xb8c000f,0xb8e000f,0xb90000f,0xb92000f,
+0xb94000f,0xb96000f,0xb98000f,0xb9a000f,0xb9c000f,0xb9e000f,0xba1000f,0xba3000f,0xba5000f,0xba7000f,0xba9000f,0xbac000f,0xbae000f,0xbb0000f,0xbb2000f,0xbb5000f,
+0xbb7000f,0xbb9000f,0xbbb000f,0xbbd000f,0xbbf000f,0xbc2000f,0xbc4000f,0xbc6000f,0xbc8000f,0xbca000f,0xbcc000f,0xbce000f,0xbd0000f,0xbd2000f,0xbd4000f,0xbd6000f,
+0xbd8000f,0xbda000f,0xbdc000f,0xbde000f,0xbe0000f,0xbe2000f,0xbe4000f,0xbe6000f,0xbe8000f,0xbea000f,0xbec000f,0xbee000f,0xbf0000f,0xbf3000f,0xbf5000f,0xbf7000f,
+0xbf9000f,0xbfc000f,0xbfe000f,0xc00000f,0xc02000f,0xc04000f,0xc06000f,0xc08000f,0xc0a000f,0xc0c000f,0xc0e000f,0xc10000f,0xc12000f,0xc14000f,0xc16000f,0xc18000f,
+0xc1a000f,0xc1c000f,0xc1e000f,0xc20000f,0xc22000f,0xc24000f,0xc26000f,0xc28000f,0xc2a000f,0xc2c000f,0xc2e000f,0xc30000f,0xc32000f,0xc34000f,0xc36000f,0xc38000f,
+0xc3a000f,0xc3c000f,0xc3f000f,0xc41000f,0xc43000f,0xc45000f,0xc47000f,0xc49000f,0xc4b000f,0xc4e000f,0xc51000f,0xc53000f,0xc55000f,0xc57000f,0xc59000f,0xc5b000f,
+0xc5d000f,0xc5f000f,0xc61000f,0xc63000f,0xc65000f,0xc68000f,0xc6a000f,0xc6c000f,0xc6e000f,0xc70000f,0xc73000f,0xc75000f,0xc77000f,0xc79000f,0xc7b000f,0xc7d000f,
+0xc7f000f,0xc81000f,0xc83000f,0xc85000f,0xc88000f,0xc8a000f,0xc8d000f,0xc8f000f,0xc91000f,0xc93000f,0xc95000f,0xc97000f,0xc99000f,0xc9b000f,0xc9d000f,0xc9f000f,
+0xca1000f,0xca3000f,0xca6000f,0xca8000f,0xcaa000f,0xcac000f,0xcae000f,0xcb0000f,0xcb3000f,0xcb5000f,0xcb8000f,0xcbb000f,0xcbd000f,0xcbf000f,0xcc1000f,0xcc3000f,
+0xcc6000f,0xcc9000f,0xccb000f,0xccd000f,0xccf000f,0xcd1000f,0xcd3000f,0xcd5000f,0xcd7000f,0xcd9000f,0xcdb000f,0xcdd000f,0xcdf000f,0xce2000f,0xce4000f,0xce6000f,
+0xce8000f,0xcea000f,0xcec000f,0xcee000f,0xcf0000f,0xcf2000f,0xcf4000f,0xcf6000f,0xcf8000f,0xcfa000f,0xcfc000f,0xcfe000f,0xd00000f,0xd02000f,0xd04000f,0xd06000f,
+0xd08000f,0xd0b000f,0xd0d000f,0xd0f000f,0xd11000f,0xd13000f,0xd15000f,0xd18000f,0xd1a000f,0xd1c000f,0xd1e000f,0xd20000f,0xd22000f,0xd24000f,0xd26000f,0xd28000f,
+0xd2a000f,0xd2c000f,0xd2e000f,0xd31000f,0xd33000f,0xd35000f,0xd37000f,0xd39000f,0xd3b000f,0xd3d000f,0xd3f000f,0xd41000f,0xd43000f,0xd45000f,0xd47000f,0xd49000f,
+0xd4b000f,0xd4d000f,0xd4f000f,0xd51000f,0xd53000f,0xd55000f,0xd58000f,0xd5a000f,0xd5c000f,0xd5e000f,0xd60000f,0xd62000f,0xd65000f,0xd67000f,0xd69000f,0xd6b000f,
+0xd6d000f,0xd6f000f,0xd71000f,0xd73000f,0xd75000f,0xd78000f,0xd7a000f,0xd7c000f,0xd7e000f,0xd81000f,0xd83000f,0xd85000f,0xd87000f,0xd89000f,0xd8b000f,0xd8d000f,
+0xd90000f,0xd93000f,0xd96000f,0xd98000f,0xd9b000f,0xd9d000f,0xd9f000f,0xda1000f,0xda3000f,0xda5000f,0xda7000f,0xda9000f,0xdab000f,0xdad000f,0xdaf000f,0xdb2000f,
+0xdb4000f,0xdb6000f,0xdb8000f,0xdba000f,0xdbc000f,0xdbe000f,0xdc1000f,0xdc3000f,0xdc5000f,0xdc8000f,0xdcb000f,0xdcd000f,0xdcf000f,0xdd1000f,0xdd3000f,0xdd5000f,
+0xdd7000f,0xdd9000f,0xddb000f,0xddd000f,0xde0000f,0xde2000f,0xde5000f,0xde7000f,0xdea000f,0xdec000f,0xdee000f,0xdf0000f,0xdf3000f,0xdf5000f,0xdf7000f,0xdfa000f,
+0xdfd000f,0xdff000f,0xe01000f,0xe03000f,0xe05000f,0xe07000f,0xe09000f,0xe0b000f,0xe0d000f,0xe0f000f,0xe11000f,0xe13000f,0xe15000f,0xe17000f,0xe1a000f,0xe1c000f,
+0xe1f000f,0xe21000f,0xe24000f,0xe26000f,0xe29000f,0xe2c000f,0xe2f000f,0xe31000f,0xe33000f,0xe35000f,0xe38000f,0xe3b000f,0xe3e000f,0xe41000f,0xe43000f,0xe45000f,
+0xe47000f,0xe49000f,0xe4b000f,0xe4d000f,0xe4f000f,0xe51000f,0xe54000f,0xe56000f,0xe58000f,0xe5a000f,0xe5c000f,0xe5f000f,0xe61000f,0xe64000f,0xe67000f,0xe69000f,
+0xe6b000f,0xe6d000f,0xe6f000f,0xe71000f,0xe73000f,0xe76000f,0xe79000f,0xe7c000f,0xe7e000f,0xe80000f,0xe83000f,0xe85000f,0xe87000f,0xe89000f,0xe8c000f,0xe8e000f,
+0xe90000f,0xe92000f,0xe94000f,0xe96000f,0xe99000f,0xe9b000f,0xe9d000f,0xe9f000f,0xea1000f,0xea3000f,0xea5000f,0xea8000f,0xeab000f,0xead000f,0xeb0000f,0xeb2000f,
+0xeb5000f,0xeb7000f,0xeb9000f,0xebb000f,0xebe000f,0xec1000f,0xec3000f,0xec6000f,0xec8000f,0xecb000f,0xecd000f,0xecf000f,0xed1000f,0xed3000f,0xed5000f,0xed7000f,
+0xeda000f,0xedd000f,0xee0000f,0xee3000f,0xee5000f,0xee7000f,0xee9000f,0xeeb000f,0xeed000f,0xeef000f,0xef1000f,0xef3000f,0xef5000f,0xef7000f,0xef9000f,0xefb000f,
+0xefe000f,0xf00000f,0xf02000f,0xf04000f,0xf06000f,0xf08000f,0xf0a000f,0xf0c000f,0xf0e000f,0xf10000f,0xf12000f,0xf14000f,0xf16000f,0xf19000f,0xf1c000f,0xf1f000f,
+0xf21000f,0xf23000f,0xf25000f,0xf27000f,0xf2a000f,0xf2c000f,0xf2f000f,0xf31000f,0xf33000f,0xf36000f,0xf39000f,0xf3b000f,0xf3d000f,0xf3f000f,0xf41000f,0xf43000f,
+0xf45000f,0xf47000f,0xf49000f,0xf4b000f,0xf4d000f,0xf4f000f,0xf51000f,0xf53000f,0xf55000f,0xf57000f,0xf59000f,0xf5b000f,0xf5d000f,0xf5f000f,0xf62000f,0xf64000f,
+0xf66000f,0xf68000f,0xf6a000f,0xf6c000f,0xf6f000f,0xf72000f,0xf74000f,0xf76000f,0xf78000f,0xf7a000f,0xf7c000f,0xf7e000f,0xf81000f,0xf83000f,0xf85000f,0xf87000f,
+0xf89000f,0xf8c000f,0xf8f000f,0xf91000f,0xf93000f,0xf95000f,0xf98000f,0xf9a000f,0xf9c000f,0xf9f000f,0xfa2000f,0xfa4000f,0xfa6000f,0xfa8000f,0xfab000f,0xfad000f,
+0xfaf000f,0xfb1000f,0xfb3000f,0xfb5000f,0xfb7000f,0xfb9000f,0xfbc000f,0xfbe000f,0xfc0000f,0xfc2000f,0xfc5000f,0xfc7000f,0xfc9000f,0xfcb000f,0xfcd000f,0xfd0000f,
+0xfd3000f,0xfd5000f,0xfd7000f,0xfd9000f,0xfdc000f,0xfde000f,0xfe1000f,0xfe3000f,0xfe5000f,0xfe7000f,0xfea000f,0xfec000f,0xfee000f,0xff0000f,0xff2000f,0xff4000f,
+0xff6000f,0xff8000f,0xffb000f,0xffd000f,0xfff000f,0x1001000f,0x1003000f,0x1005000f,0x1007000f,0x100a000f,0x100c000f,0x100f000f,0x1012000f,0x1015000f,0x1017000f,0x1019000f,
+0x101b000f,0x101d000f,0x101f000f,0x1021000f,0x1023000f,0x1025000f,0,0,0x1028000c,0x102c000c,0x1031004c,0x1035000c,0x103a004c,0x103f004c,0x3d8e0040,0x1044004c,
+0x1048000c,0x104c000c,0x1051004c,0x1055000c,0x1059000c,0x105d000c,0x1061000c,0x1066004c,0,0x106a000c,0x106e000c,0x1072000c,0x1077004c,0x107c004c,0x1081004c,0,
+0x3d920040,0x1085000c,0x1089000c,0x108d000c,0x1092004c,0x1096000c,0,0,0x109a000c,0x109e000c,0x10a3004c,0x10a7000c,0x10ac004c,0x10b1004c,0x3d8f0040,0x10b6004c,
+0x10ba000c,0x10be000c,0x10c3004c,0x10c7000c,0x10cb000c,0x10cf000c,0x10d3000c,0x10d8004c,0,0x10dc000c,0x10e0000c,0x10e4000c,0x10e9004c,0x10ee004c,0x10f3004c,0,
+0x3d930040,0x10f7000c,0x10fb000c,0x10ff000c,0x1104004c,0x1108000c,0,0x110c000c,0x1110000c,0x1114000c,0x1119004c,0x111e004c,0x1122000c,0x1126000c,0x112a000c,0x112e000c,
+0x1132000c,0x1136000c,0x113a000c,0x113e000c,0x1142000c,0x1146000c,0x114a000c,0x114e000c,0,0,0x1153004c,0x1158004c,0x115c000c,0x1160000c,0x1164000c,0x1168000c,
+0x116c000c,0x1170000c,0x1174000c,0x1178000c,0x117c000c,0x1180000c,0x1184000c,0x1188000c,0x118c000c,0x1190000c,0x1194000c,0x1198000c,0x119c000c,0x11a0000c,0,0,
+0x11a4000c,0x11a8000c,0x11ac000c,0x11b0000c,0x11b4000c,0x11b8000c,0x11bc000c,0x11c0000c,0x11c4000c,0,0x20af000a,0x20b2000a,0x11c8000c,0x11cc000c,0x11d0000c,0x11d4000c,
+0,0x11d8000c,0x11dc000c,0x11e0000c,0x11e4000c,0x11e8000c,0x11ec000c,0x20b5000a,0x20b8000a,0,0,0x11f0000c,0x11f4000c,0x11f8000c,0x11fc000c,0x1200000c,
+0x1204000c,0x20bb000a,0,0,0x1209004c,0x120e004c,0x1212000c,0x1216000c,0x121a000c,0x121e000c,0,0,0x1222000c,0x1226000c,0x122a000c,0x122e000c,
+0x1232000c,0x1236000c,0x123b004c,0x1240004c,0x1244000c,0x1248000c,0x124c000c,0x1250000c,0x1255004c,0x125a004c,0x125e000c,0x1262000c,0x1266000c,0x126a000c,0,0,
+0x126f004c,0x1274004c,0x1279004c,0x127e004c,0x1282000c,0x1286000c,0x128a000c,0x128e000c,0x1292000c,0x1296000c,0x129a000c,0x129e000c,0x12a2000c,0x12a6000c,0x12aa000c,0x12ae000c,
+0x12b2000c,0x12b6000c,0x12ba000c,0x12be000c,0x12c2000c,0x12c6000c,0x12ca000c,0x20bf004a,0x12cf004c,0x12d4004c,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x12d9004c,0x12de004c,0,0,0,0,0,0,0x3d900040,
+0,0,0,0,0,0,0,0,0x20c1000a,0x20c6000a,0x20cb000a,0x20d0000a,0x20d3000a,0x20d6000a,0x20d9000a,0x20dc000a,
+0x20df000a,0x12e2000c,0x12e6000c,0x12ea000c,0x12ee000c,0x12f2000c,0x12f6000c,0x12fa000c,0x12fe000c,0x1302000c,0x1307000c,0x130c000c,0x1311000c,0x1316000c,0x131b000c,0x1320000c,
+0x1325000c,0,0x132a000c,0x132f000c,0x1334000c,0x1339000c,0x133e000c,0x1342000c,0,0,0x1346000c,0x134a000c,0x134e000c,0x1352000c,0x1357004c,0x135c004c,
+0x1360000c,0x1365000c,0x136a000c,0x136e000c,0x1372000c,0x20e2000a,0x20e5000a,0x20e8000a,0x1376000c,0x137a000c,0,0,0x137e000c,0x1382000c,0x1386000c,0x138b000c,
+0x1390000c,0x1394000c,0x1398000c,0x139c000c,0x13a0000c,0x13a4000c,0x13a8000c,0x13ac000c,0x13b0000c,0x13b4000c,0x13b8000c,0x13bc000c,0x13c0000c,0x13c4000c,0x13c8000c,0x13cc000c,
+0x13d0000c,0x13d4000c,0x13d8000c,0x13dc000c,0x13e0000c,0x13e4000c,0x13e8000c,0x13ec000c,0x13f0000c,0x13f4000c,0x13f8000c,0x13fc000c,0x1400000c,0x1404000c,0x1408000c,0x140c000c,
+0,0,0x1410000c,0x1414000c,0,0,0,0,0,0,0x1419004c,0x141e004c,0x1423004c,0x1428004c,0x142c000c,0x1431000c,
+0x1436000c,0x143b000c,0x1441004c,0x1446004c,0x144a000c,0x144f000c,0x1454000c,0x1458000c,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x3def0040,0,0,0,0x3d990040,0,0,0,0x3d9a0040,0x1485000c,0x1489000c,
+0x148e004c,0x1492000c,0x1497004c,0x149b000c,0x149f000c,0x3d9b0040,0,0,0,0x3d9c0040,0,0x3d9d0040,0,0x3d9e0040,0,0,
+0,0,0,0x3da00040,0x14bb000c,0x14bf000c,0,0x14c3000c,0,0,0x3da40040,0x14c7000c,0,0,0,0,
+0x14cb000c,0x14cf000c,0x14d3000c,0,0x3db20040,0,0,0x3da30040,0,0x3da20040,0x3db00040,0x3db60040,0x3da60040,0x14d7000c,0x3da50040,0,
+0,0,0x3db80040,0,0,0,0,0x3da70040,0,0,0,0x3dbe0040,0,0,0,0x3dc00040,
+0,0x3dbc0040,0,0,0x3db30040,0,0,0x3daa0040,0,0x3da90040,0x3db10040,0x3db70040,0x3da80040,0x14db000c,0x3dac0040,0,
+0,0,0x3db90040,0,0,0,0,0x3dad0040,0,0,0,0x3dbf0040,0,0,0,0x3dc10040,
+0,0x3dbd0040,0,0,0x14df000c,0x14e3000c,0,0x14e7000c,0,0,0x3dab0040,0x14eb000c,0,0,0,0,
+0x14ef000c,0x14f3000c,0x14f7000c,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x3dae0040,0x3daf0040,0x14fb000c,0x14ff000c,0,0,0,0,
+0,0,0,0,0,0x1503000c,0x1507000c,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x150b000c,0x150f000c,0x1513000c,0x1517000c,0,0,0x151b000c,0x151f000c,0x3db40040,0x3db50040,0x1523000c,0x1527000c,
+0x152b000c,0x152f000c,0x1533000c,0x1537000c,0,0,0x153b000c,0x153f000c,0x1543000c,0x1547000c,0x154b000c,0x154f000c,0x3dba0040,0x3dbb0040,0x1553000c,0x1557000c,
+0x155b000c,0x155f000c,0x1563000c,0x1567000c,0x156b000c,0x156f000c,0x1573000c,0x1577000c,0x157b000c,0x157f000c,0,0,0x1583000c,0x1587000c,0,0,
+0,0,0,0,0,0,0x158b000c,0x158f000c,0x1593000c,0x1597000c,0x159b000c,0x3dc20040,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x159f000c,0x3dc60040,0x15a3000c,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x3dc70040,0x15a7000c,0,0x3dc50040,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,
+0xe600,0,0,0xe600,0,0,0,0,0,0,0,0,0x3dc80040,0x15ab000c,0,0,
+0,0,0,0,0x3dc90040,0x15af000c,0,0x3dca0040,0x15b3000c,0,0,0,0,0,0,0,
+0x207007b0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x3dcd0040,0,0x15c6000c,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x3dce0040,0x3dcf0040,0,0,0x15c9000c,0x15cc000c,0x15cf000c,0x900,0,0,
+0,0,0,0,0,0,0,0x207700b0,0,0,0,0,0,0,0,0,
+0,0,0x3dd00040,0,0x15d2000c,0,0,0,0,0x900,0,0,0,0,0,0,
+0,0x5400,0x20785bb0,0,0,0,0,0,0,0,0,0,0x15d6000c,0,0x207900b0,0,
+0,0,0x3dd20040,0x15d9000c,0x15dc000c,0,0x15e0004c,0x15e3000c,0,0x900,0,0,0,0,0,0,
+0,0x207a00b0,0x207b00b0,0,0,0,0,0,0,0,0,0,0,0,0x3dd30040,0x3dd40040,
+0,0,0x15e7000c,0x15ea000c,0x15ed000c,0x900,0,0,0,0,0,0,0,0,0,0x207d00b0,
+0,0,0,0,0,0,0,0,0,0,0x207e09b0,0,0,0,0,0x207f00b0,
+0,0,0,0,0,0,0,0,0,0x3dd50040,0x15f0000c,0,0x15f5004c,0x15f8000c,0x15fd000c,0x208000b0,
+0,0,0,0,0,0x3dd60040,0x1600000c,0,0,0,0,0,0,0,0x208100b0,0,
0,0,0,0,0,0,0,0x700,0,0x900,0,0,0,0,0,0,
-0x15ff000c,0x1603000c,0x1607000c,0x160b000c,0x160f000c,0x1613000c,0x1617000c,0x161b000c,0x161f000c,0x1624000c,0x1629000c,0x162d000c,0x1631000c,0x1635000c,0x1639000c,0x163d000c,
-0x1641000c,0x1645000c,0x1649000c,0x164d000c,0x1651000c,0x1656000c,0x165b000c,0x1660000c,0x1665000c,0x1669000c,0x166d000c,0x1671000c,0x1675000c,0x167a000c,0x167f000c,0x1683000c,
-0x1687000c,0x168b000c,0x168f000c,0x1693000c,0x1697000c,0x169b000c,0x169f000c,0x16a3000c,0x16a7000c,0x16ab000c,0x16af000c,0x16b3000c,0x16b7000c,0x16bb000c,0x16bf000c,0x16c4000c,
-0x16c9000c,0x16cd000c,0x16d1000c,0x16d5000c,0x16d9000c,0x16dd000c,0x16e2004c,0x16e7004c,0x16eb000c,0x16f0000c,0x16f5000c,0x16f9000c,0x16fd000c,0x1701000c,0x1705000c,0x1709000c,
-0x170d000c,0x1711000c,0x1715000c,0x1719000c,0x171d000c,0x1721000c,0x1725000c,0x1729000c,0x172d000c,0x1731000c,0x1735000c,0x1739000c,0x173d000c,0x1742000c,0x1747000c,0x174c000c,
-0x1751000c,0x1756000c,0x175b000c,0x1760000c,0x1765000c,0x1769000c,0x176d000c,0x1771000c,0x1775000c,0x1779000c,0x177e004c,0x1783004c,0x1787000c,0x178c000c,0x1791000c,0x1795000c,
-0x1799000c,0x179d000c,0x17a2004c,0x17a7004c,0x17ab000c,0x17b0000c,0x17b5000c,0x17ba000c,0x17bf000c,0x17c4000c,0x17c9000c,0x17cd000c,0x17d1000c,0x17d5000c,0x17d9000c,0x17dd000c,
-0x17e1000c,0x17e5000c,0x17e9000c,0x17ed000c,0x17f1000c,0x17f5000c,0x17f9000c,0x17fd000c,0x1801000c,0x1806000c,0x180b000c,0x1810000c,0x1815000c,0x1819000c,0x181d000c,0x1821000c,
-0x1825000c,0x1829000c,0x182d000c,0x1831000c,0x1835000c,0x1839000c,0x183d000c,0x1841000c,0x1845000c,0x1849000c,0x184d000c,0x1851000c,0x1855000c,0x1859000c,0x185d000c,0x1861000c,
-0x1865000c,0x1869000c,0x186d000c,0x1871000c,0x1875000c,0x1879000c,0x187d000c,0x1881000c,0x1885000c,0x1889000c,0x21d0000a,0x188d000e,0,0,0,0,
-0x1895004c,0x189a004c,0x189e000c,0x18a2000c,0x18a6000c,0x18ab000c,0x18b0000c,0x18b5000c,0x18ba000c,0x18bf000c,0x18c4000c,0x18c9000c,0x18ce000c,0x18d3000c,0x18d8000c,0x18dd000c,
-0x18e2000c,0x18e7000c,0x18ec000c,0x18f1000c,0x18f6000c,0x18fb000c,0x1900000c,0x1905000c,0x190b004c,0x1910004c,0x1914000c,0x1918000c,0x191c000c,0x1920000c,0x1924000c,0x1929000c,
-0x192e000c,0x1933000c,0x1938000c,0x193d000c,0x1942000c,0x1947000c,0x194c000c,0x1951000c,0x1956000c,0x195a000c,0x195e000c,0x1962000c,0x1967004c,0x196c004c,0x1970000c,0x1974000c,
-0x1978000c,0x197d000c,0x1982000c,0x1987000c,0x198c000c,0x1991000c,0x1996000c,0x199b000c,0x19a0000c,0x19a5000c,0x19aa000c,0x19af000c,0x19b4000c,0x19b9000c,0x19be000c,0x19c3000c,
-0x19c8000c,0x19cd000c,0x19d2000c,0x19d7000c,0x19dc000c,0x19e0000c,0x19e4000c,0x19e8000c,0x19ec000c,0x19f1000c,0x19f6000c,0x19fb000c,0x1a00000c,0x1a05000c,0x1a0a000c,0x1a0f000c,
-0x1a14000c,0x1a19000c,0x1a1e000c,0x1a22000c,0x1a26000c,0x1a2a000c,0x1a2e000c,0x1a32000c,0x1a36000c,0x1a3a000c,0,0,0,0,0,0,
-0x1a3f004c,0x1a44004c,0x1a49004c,0x1a4f004c,0x1a55004c,0x1a5b004c,0x1a61004c,0x1a67004c,0x1a6d004c,0x1a72004c,0x1a77004c,0x1a7d004c,0x1a83004c,0x1a89004c,0x1a8f004c,0x1a95004c,
-0x1a9b004c,0x1aa0004c,0x1aa4000c,0x1aa9000c,0x1aae000c,0x1ab3000c,0,0,0x1ab9004c,0x1abe004c,0x1ac2000c,0x1ac7000c,0x1acc000c,0x1ad1000c,0,0,
-0x1ad7004c,0x1adc004c,0x1ae1004c,0x1ae7004c,0x1aed004c,0x1af3004c,0x1af9004c,0x1aff004c,0x1b05004c,0x1b0a004c,0x1b0f004c,0x1b15004c,0x1b1b004c,0x1b21004c,0x1b27004c,0x1b2d004c,
-0x1b33004c,0x1b38004c,0x1b3c000c,0x1b41000c,0x1b46000c,0x1b4b000c,0x1b50000c,0x1b55000c,0x1b5b004c,0x1b60004c,0x1b64000c,0x1b69000c,0x1b6e000c,0x1b73000c,0x1b78000c,0x1b7d000c,
-0x1b83004c,0x1b88004c,0x1b8c000c,0x1b91000c,0x1b96000c,0x1b9b000c,0,0,0x1ba1004c,0x1ba6004c,0x1baa000c,0x1baf000c,0x1bb4000c,0x1bb9000c,0,0,
-0x1bbf004c,0x1bc4004c,0x1bc8000c,0x1bcd000c,0x1bd2000c,0x1bd7000c,0x1bdc000c,0x1be1000c,0,0x1be7004c,0,0x1beb000c,0,0x1bf0000c,0,0x1bf5000c,
-0x1c75000c,0x1c7a000c,0x1c7f000c,0x1c85000c,0x1c8b000c,0x1c91000c,0x1c97000c,0x1c9d000c,0x1ca3000c,0x1ca8000c,0x1cad000c,0x1cb3000c,0x1cb9000c,0x1cbf000c,0x1cc5000c,0x1ccb000c,
-0x1cd1000c,0x1cd6000c,0x1cdb000c,0x1ce1000c,0x1ce7000c,0x1ced000c,0x1cf3000c,0x1cf9000c,0x1cff000c,0x1d04000c,0x1d09000c,0x1d0f000c,0x1d15000c,0x1d1b000c,0x1d21000c,0x1d27000c,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x3dbd0040,0,0x3dbe0040,0,0x3dbf0040,0,0,0,0,0,0x1e91000c,0x1e95000c,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x1e99000c,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e9d000c,0x1ea1000c,0x1ea5000c,
-0x3dc00040,0,0x3dc20040,0,0x3dc10040,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x3dc30040,0x1ea9000c,0,0,0,0x3dc40040,0x1ead000c,0,0x3dc50040,0x1eb1000c,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x3dc60040,0x1eb5000c,0x3dc70040,0x1eb9000c,0,0,0,0,0,0x2334000a,0x2337000a,0,0x233b000a,
-0x233e000a,0,0,0,0,0,0,0,0,0,0,0,0x3dc80040,0,0,0,
-0,0x1ebd000c,0,0x3dc90040,0x1ec1000c,0x3dca0040,0,0x1ec5000c,0x3dcb0040,0x1ec9000c,0,0,0,0x3dce0040,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1ecd000c,0x3dcd0040,0x1ed1000c,0,0x3dd10040,0x3dd20040,0,0,0,0,0,0,0,0x1ed5000c,0x1ed9000c,0x1edd000c,
-0x1ee1000c,0x1ee5000c,0x3dd30040,0x3dd40040,0x1ee9000c,0x1eed000c,0x3dd50040,0x3dd60040,0x1ef1000c,0x1ef5000c,0x3dd70040,0x3dd80040,0x3de10040,0x3de20040,0,0,
-0x1ef9000c,0x1efd000c,0x3dd90040,0x3dda0040,0x1f01000c,0x1f05000c,0x3ddb0040,0x3ddc0040,0x1f09000c,0x1f0d000c,0,0,0,0,0,0,
-0,0x3de30040,0x3de40040,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x3ddd0040,0,0,0,0,0,0x3dde0040,0x3ddf0040,0,0x3de00040,0x1f11000c,0x1f15000c,0x1f19000c,0x1f1d000c,
-0,0,0x3de50040,0x3de60040,0x3de70040,0x3de80040,0,0,0,0,0,0,0,0,0,0,
-0x1f21000c,0x1f25000c,0x1f29000c,0x1f2d000c,0,0,0,0,0,0,0x1f31000c,0x1f35000c,0x1f39000c,0x1f3d000c,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x3dfd0040,0,0,0,0,0x3de90040,0x1f41000c,0x3dea0040,0x1f45000c,0x3deb0040,0x1f49000c,0x3dec0040,0x1f4d000c,0x3ded0040,
-0x1f51000c,0x3dee0040,0x1f55000c,0x3def0040,0x1f59000c,0x3df00040,0x1f5d000c,0x3df10040,0x1f61000c,0x3df20040,0x1f65000c,0x3df30040,0x1f69000c,0x3df40040,0x1f6d000c,0,
-0x3df50040,0x1f71000c,0x3df60040,0x1f75000c,0x3df70040,0x1f79000c,0,0,0,0,0,0x3df80040,0x1f7d000c,0x1f81000c,0x3df90040,0x1f85000c,
-0x1f89000c,0x3dfa0040,0x1f8d000c,0x1f91000c,0x3dfb0040,0x1f95000c,0x1f99000c,0x3dfc0040,0x1f9d000c,0x1fa1000c,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x1fa5000c,0,0,0,0,0x205d08b0,0x205e08b0,0x26b5000a,0x26b9000a,0x3dfe0040,0x1fa9000c,0x26bd000a,0,0,0,0,
-0,0,0x3e130040,0,0,0,0,0x3dff0040,0x1fad000c,0x3e000040,0x1fb1000c,0x3e010040,0x1fb5000c,0x3e020040,0x1fb9000c,0x3e030040,
-0x1fbd000c,0x3e040040,0x1fc1000c,0x3e050040,0x1fc5000c,0x3e060040,0x1fc9000c,0x3e070040,0x1fcd000c,0x3e080040,0x1fd1000c,0x3e090040,0x1fd5000c,0x3e0a0040,0x1fd9000c,0,
-0x3e0b0040,0x1fdd000c,0x3e0c0040,0x1fe1000c,0x3e0d0040,0x1fe5000c,0,0,0,0,0,0x3e0e0040,0x1fe9000c,0x1fed000c,0x3e0f0040,0x1ff1000c,
-0x1ff5000c,0x3e100040,0x1ff9000c,0x1ffd000c,0x3e110040,0x2001000c,0x2005000c,0x3e120040,0x2009000c,0x200d000c,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x3e140040,0x3e150040,0x3e160040,0x3e170040,0,
-0x2011000c,0,0,0x2015000c,0x2019000c,0x201d000c,0x2021000c,0,0,0x3e180040,0x2025000c,0x26c0000a,0x202ae6b0,0x202be6b0,0x202ce6b0,0x202de6b0,
-0x202ee6b0,0xe600,0x202fe6b0,0x2030e6b0,0x2031e6b0,0x2032e6b0,0x2033e6b0,0x2034e6b0,0x2035e6b0,0xe600,0xe600,0x2036e6b0,0xe600,0x2037e6b0,0xe600,0x2038e6b0,
-0x2039e6b0,0xe800,0xdc00,0xdc00,0xdc00,0xdc00,0xe800,0x203ad8b0,0xdc00,0xdc00,0xdc00,0xdc00,0xdc00,0xca00,0xca00,0x203bdcb0,
-0x203cdcb0,0x203ddcb0,0x203edcb0,0x203fcab0,0x2040cab0,0xdc00,0xdc00,0xdc00,0xdc00,0x2041dcb0,0x2042dcb0,0xdc00,0x2043dcb0,0x2044dcb0,0xdc00,0xdc00,
-0x100,0x100,0x100,0x100,0x204501b0,0xdc00,0xdc00,0xdc00,0xdc00,0xe600,0xe600,0xe600,0,0,0,0,
-0,0,0,0,0x3d9b0040,0,0x3d9c0040,0x1b00,0x1c00,0x1d00,0x1e00,0x1f00,0x2000,0x2100,0x2200,0x2048e6b0,
-0x2049e6b0,0x204adcb0,0xdc00,0xe600,0xe600,0xe600,0xe600,0xe600,0xdc00,0xe600,0xe600,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x700,0,0x204c00b0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x700,0,0x204e00b0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x205100b0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x205700b0,0,0,0xfff200b0,0xfff200b0,0xfff200b0,
+0,0x3dd70040,0x1603000c,0x3dd80040,0x1606000c,0x3dd90040,0x1609000c,0x3dda0040,0x160c000c,0x3ddb0040,0x160f000c,0,0,0x3ddc0040,0x1612000c,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x700,0x208200b0,0,0,0,0,0x3ddd0040,0x1615000c,0x3dde0040,0x1618000c,0x3ddf0040,0x3de00040,
+0x161b000c,0x161e000c,0x3de10040,0x1621000c,0x900,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1624000c,0x1628000c,0x162c000c,0x1630000c,0x1634000c,0x1638000c,0x163c000c,0x1640000c,0x1644000c,0x1649000c,0x164e000c,0x1652000c,0x1656000c,0x165a000c,0x165e000c,0x1662000c,
+0x1666000c,0x166a000c,0x166e000c,0x1672000c,0x1676000c,0x167b000c,0x1680000c,0x1685000c,0x168a000c,0x168e000c,0x1692000c,0x1696000c,0x169a000c,0x169f000c,0x16a4000c,0x16a8000c,
+0x16ac000c,0x16b0000c,0x16b4000c,0x16b8000c,0x16bc000c,0x16c0000c,0x16c4000c,0x16c8000c,0x16cc000c,0x16d0000c,0x16d4000c,0x16d8000c,0x16dc000c,0x16e0000c,0x16e4000c,0x16e9000c,
+0x16ee000c,0x16f2000c,0x16f6000c,0x16fa000c,0x16fe000c,0x1702000c,0x1707004c,0x170c004c,0x1710000c,0x1715000c,0x171a000c,0x171e000c,0x1722000c,0x1726000c,0x172a000c,0x172e000c,
+0x1732000c,0x1736000c,0x173a000c,0x173e000c,0x1742000c,0x1746000c,0x174a000c,0x174e000c,0x1752000c,0x1756000c,0x175a000c,0x175e000c,0x1762000c,0x1767000c,0x176c000c,0x1771000c,
+0x1776000c,0x177b000c,0x1780000c,0x1785000c,0x178a000c,0x178e000c,0x1792000c,0x1796000c,0x179a000c,0x179e000c,0x17a3004c,0x17a8004c,0x17ac000c,0x17b1000c,0x17b6000c,0x17ba000c,
+0x17be000c,0x17c2000c,0x17c7004c,0x17cc004c,0x17d0000c,0x17d5000c,0x17da000c,0x17df000c,0x17e4000c,0x17e9000c,0x17ee000c,0x17f2000c,0x17f6000c,0x17fa000c,0x17fe000c,0x1802000c,
+0x1806000c,0x180a000c,0x180e000c,0x1812000c,0x1816000c,0x181a000c,0x181e000c,0x1822000c,0x1826000c,0x182b000c,0x1830000c,0x1835000c,0x183a000c,0x183e000c,0x1842000c,0x1846000c,
+0x184a000c,0x184e000c,0x1852000c,0x1856000c,0x185a000c,0x185e000c,0x1862000c,0x1866000c,0x186a000c,0x186e000c,0x1872000c,0x1876000c,0x187a000c,0x187e000c,0x1882000c,0x1886000c,
+0x188a000c,0x188e000c,0x1892000c,0x1896000c,0x189a000c,0x189e000c,0x18a2000c,0x18a6000c,0x18aa000c,0x18ae000c,0x21f6000a,0x18b2000e,0,0,0,0,
+0x18ba004c,0x18bf004c,0x18c3000c,0x18c7000c,0x18cb000c,0x18d0000c,0x18d5000c,0x18da000c,0x18df000c,0x18e4000c,0x18e9000c,0x18ee000c,0x18f3000c,0x18f8000c,0x18fd000c,0x1902000c,
+0x1907000c,0x190c000c,0x1911000c,0x1916000c,0x191b000c,0x1920000c,0x1925000c,0x192a000c,0x1930004c,0x1935004c,0x1939000c,0x193d000c,0x1941000c,0x1945000c,0x1949000c,0x194e000c,
+0x1953000c,0x1958000c,0x195d000c,0x1962000c,0x1967000c,0x196c000c,0x1971000c,0x1976000c,0x197b000c,0x197f000c,0x1983000c,0x1987000c,0x198c004c,0x1991004c,0x1995000c,0x1999000c,
+0x199d000c,0x19a2000c,0x19a7000c,0x19ac000c,0x19b1000c,0x19b6000c,0x19bb000c,0x19c0000c,0x19c5000c,0x19ca000c,0x19cf000c,0x19d4000c,0x19d9000c,0x19de000c,0x19e3000c,0x19e8000c,
+0x19ed000c,0x19f2000c,0x19f7000c,0x19fc000c,0x1a01000c,0x1a05000c,0x1a09000c,0x1a0d000c,0x1a11000c,0x1a16000c,0x1a1b000c,0x1a20000c,0x1a25000c,0x1a2a000c,0x1a2f000c,0x1a34000c,
+0x1a39000c,0x1a3e000c,0x1a43000c,0x1a47000c,0x1a4b000c,0x1a4f000c,0x1a53000c,0x1a57000c,0x1a5b000c,0x1a5f000c,0,0,0,0,0,0,
+0x1a64004c,0x1a69004c,0x1a6e004c,0x1a74004c,0x1a7a004c,0x1a80004c,0x1a86004c,0x1a8c004c,0x1a92004c,0x1a97004c,0x1a9c004c,0x1aa2004c,0x1aa8004c,0x1aae004c,0x1ab4004c,0x1aba004c,
+0x1ac0004c,0x1ac5004c,0x1ac9000c,0x1ace000c,0x1ad3000c,0x1ad8000c,0,0,0x1ade004c,0x1ae3004c,0x1ae7000c,0x1aec000c,0x1af1000c,0x1af6000c,0,0,
+0x1afc004c,0x1b01004c,0x1b06004c,0x1b0c004c,0x1b12004c,0x1b18004c,0x1b1e004c,0x1b24004c,0x1b2a004c,0x1b2f004c,0x1b34004c,0x1b3a004c,0x1b40004c,0x1b46004c,0x1b4c004c,0x1b52004c,
+0x1b58004c,0x1b5d004c,0x1b61000c,0x1b66000c,0x1b6b000c,0x1b70000c,0x1b75000c,0x1b7a000c,0x1b80004c,0x1b85004c,0x1b89000c,0x1b8e000c,0x1b93000c,0x1b98000c,0x1b9d000c,0x1ba2000c,
+0x1ba8004c,0x1bad004c,0x1bb1000c,0x1bb6000c,0x1bbb000c,0x1bc0000c,0,0,0x1bc6004c,0x1bcb004c,0x1bcf000c,0x1bd4000c,0x1bd9000c,0x1bde000c,0,0,
+0x1be4004c,0x1be9004c,0x1bed000c,0x1bf2000c,0x1bf7000c,0x1bfc000c,0x1c01000c,0x1c06000c,0,0x1c0c004c,0,0x1c10000c,0,0x1c15000c,0,0x1c1a000c,
+0x1c9a000c,0x1c9f000c,0x1ca4000c,0x1caa000c,0x1cb0000c,0x1cb6000c,0x1cbc000c,0x1cc2000c,0x1cc8000c,0x1ccd000c,0x1cd2000c,0x1cd8000c,0x1cde000c,0x1ce4000c,0x1cea000c,0x1cf0000c,
+0x1cf6000c,0x1cfb000c,0x1d00000c,0x1d06000c,0x1d0c000c,0x1d12000c,0x1d18000c,0x1d1e000c,0x1d24000c,0x1d29000c,0x1d2e000c,0x1d34000c,0x1d3a000c,0x1d40000c,0x1d46000c,0x1d4c000c,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x3df00040,0,0x3df10040,0,0x3df20040,0,0,0,0,0,0x1eb6000c,0x1eba000c,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x1ebe000c,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x1ec2000c,0x1ec6000c,0x1eca000c,
+0x3df30040,0,0x3df50040,0,0x3df40040,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x3df60040,0x1ece000c,0,0,0,0x3df70040,0x1ed2000c,0,0x3df80040,0x1ed6000c,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x3df90040,0x1eda000c,0x3dfa0040,0x1ede000c,0,0,0,0,0,0x235a000a,0x235d000a,0,0x2361000a,
+0x2364000a,0,0,0,0,0,0,0,0,0,0,0,0x3dfb0040,0,0,0,
+0,0x1ee2000c,0,0x3dfc0040,0x1ee6000c,0x3dfd0040,0,0x1eea000c,0x3dfe0040,0x1eee000c,0,0,0,0x3e010040,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1ef2000c,0x3e000040,0x1ef6000c,0,0x3e040040,0x3e050040,0,0,0,0,0,0,0,0x1efa000c,0x1efe000c,0x1f02000c,
+0x1f06000c,0x1f0a000c,0x3e060040,0x3e070040,0x1f0e000c,0x1f12000c,0x3e080040,0x3e090040,0x1f16000c,0x1f1a000c,0x3e0a0040,0x3e0b0040,0x3e140040,0x3e150040,0,0,
+0x1f1e000c,0x1f22000c,0x3e0c0040,0x3e0d0040,0x1f26000c,0x1f2a000c,0x3e0e0040,0x3e0f0040,0x1f2e000c,0x1f32000c,0,0,0,0,0,0,
+0,0x3e160040,0x3e170040,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x3e100040,0,0,0,0,0,0x3e110040,0x3e120040,0,0x3e130040,0x1f36000c,0x1f3a000c,0x1f3e000c,0x1f42000c,
+0,0,0x3e180040,0x3e190040,0x3e1a0040,0x3e1b0040,0,0,0,0,0,0,0,0,0,0,
+0x1f46000c,0x1f4a000c,0x1f4e000c,0x1f52000c,0,0,0,0,0,0,0x1f56000c,0x1f5a000c,0x1f5e000c,0x1f62000c,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x3e300040,0,0,0,0,0x3e1c0040,0x1f66000c,0x3e1d0040,0x1f6a000c,0x3e1e0040,0x1f6e000c,0x3e1f0040,0x1f72000c,0x3e200040,
+0x1f76000c,0x3e210040,0x1f7a000c,0x3e220040,0x1f7e000c,0x3e230040,0x1f82000c,0x3e240040,0x1f86000c,0x3e250040,0x1f8a000c,0x3e260040,0x1f8e000c,0x3e270040,0x1f92000c,0,
+0x3e280040,0x1f96000c,0x3e290040,0x1f9a000c,0x3e2a0040,0x1f9e000c,0,0,0,0,0,0x3e2b0040,0x1fa2000c,0x1fa6000c,0x3e2c0040,0x1faa000c,
+0x1fae000c,0x3e2d0040,0x1fb2000c,0x1fb6000c,0x3e2e0040,0x1fba000c,0x1fbe000c,0x3e2f0040,0x1fc2000c,0x1fc6000c,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x1fca000c,0,0,0,0,0x208308b0,0x208408b0,0x26db000a,0x26df000a,0x3e310040,0x1fce000c,0x26e3000a,0,0,0,0,
+0,0,0x3e460040,0,0,0,0,0x3e320040,0x1fd2000c,0x3e330040,0x1fd6000c,0x3e340040,0x1fda000c,0x3e350040,0x1fde000c,0x3e360040,
+0x1fe2000c,0x3e370040,0x1fe6000c,0x3e380040,0x1fea000c,0x3e390040,0x1fee000c,0x3e3a0040,0x1ff2000c,0x3e3b0040,0x1ff6000c,0x3e3c0040,0x1ffa000c,0x3e3d0040,0x1ffe000c,0,
+0x3e3e0040,0x2002000c,0x3e3f0040,0x2006000c,0x3e400040,0x200a000c,0,0,0,0,0,0x3e410040,0x200e000c,0x2012000c,0x3e420040,0x2016000c,
+0x201a000c,0x3e430040,0x201e000c,0x2022000c,0x3e440040,0x2026000c,0x202a000c,0x3e450040,0x202e000c,0x2032000c,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x3e470040,0x3e480040,0x3e490040,0x3e4a0040,0,
+0x2036000c,0,0,0x203a000c,0x203e000c,0x2042000c,0x2046000c,0,0,0x3e4b0040,0x204a000c,0x26e6000a,0x204fe6b0,0x2050e6b0,0x2051e6b0,0x2052e6b0,
+0x2053e6b0,0xe600,0x2054e6b0,0x2055e6b0,0x2056e6b0,0x2057e6b0,0x2058e6b0,0x2059e6b0,0x205ae6b0,0xe600,0xe600,0x205be6b0,0xe600,0x205ce6b0,0xe600,0x205de6b0,
+0x205ee6b0,0xe800,0xdc00,0xdc00,0xdc00,0xdc00,0xe800,0x205fd8b0,0xdc00,0xdc00,0xdc00,0xdc00,0xdc00,0xca00,0xca00,0x2060dcb0,
+0x2061dcb0,0x2062dcb0,0x2063dcb0,0x2064cab0,0x2065cab0,0xdc00,0xdc00,0xdc00,0xdc00,0x2066dcb0,0x2067dcb0,0xdc00,0x2068dcb0,0x2069dcb0,0xdc00,0xdc00,
+0x100,0x100,0x100,0x100,0x206a01b0,0xdc00,0xdc00,0xdc00,0xdc00,0xe600,0xe600,0xe600,0,0,0,0,
+0,0,0,0,0x3dc30040,0,0x3dc40040,0x1b00,0x1c00,0x1d00,0x1e00,0x1f00,0x2000,0x2100,0x2200,0x206de6b0,
+0x206ee6b0,0x206fdcb0,0xdc00,0xe600,0xe600,0xe600,0xe600,0xe600,0xdc00,0xe600,0xe600,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x700,0,0x207100b0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x700,0,0x207300b0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x207600b0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x207c00b0,0,0,0xfff200b0,0xfff200b0,0xfff200b0,
0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,0xfff200b0,
0xfff200b0,0xfff200b0,0,0,0,0,0,0,0,0,0,0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,
0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,
0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0xfff300b0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x205e000a,0,0,0,0,0,0,0,0x2061004a,0,0x2065000a,0,
-0,0,0,0x2067000a,0,0,0x206b000a,0x206d000a,0x206f000a,0x2073000a,0,0,0x2075000a,0x2079000a,0x207b000a,0,
-0x207d000a,0x2081000a,0x2085000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x20c5000a,0x20c7000a,0x20c9000a,0x20cb000a,0x20cd000a,0x20cf000a,0x20d1000a,0x20d3000a,0x20d5000a,0,0,0,
+0,0,0,0,0x2084000a,0,0,0,0,0,0,0,0x2087004a,0,0x208b000a,0,
+0,0,0,0x208d000a,0,0,0x2091000a,0x2093000a,0x2095000a,0x2099000a,0,0,0x209b000a,0x209f000a,0x20a1000a,0,
+0x20a3000a,0x20a7000a,0x20ab000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x20eb000a,0x20ed000a,0x20ef000a,0x20f1000a,0x20f3000a,0x20f5000a,0x20f7000a,0x20f9000a,0x20fb000a,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x20d7000a,0x20db000a,0x20df000a,0x20e3000a,0x20e7000a,0x20eb000a,0,0,
-0x20ef000a,0x20f1000a,0x20f3000a,0x20f5000a,0x20f7000a,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x20fd000a,0x2101000a,0x2105000a,0x2109000a,0x210d000a,0x2111000a,0,0,
+0x2115000a,0x2117000a,0x2119000a,0x211b000a,0x211d000a,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x210d000a,0,0,0,0,0,0,0,0,0,0xdc00,0xe600,0xe600,
+0,0,0,0x2133000a,0,0,0,0,0,0,0,0,0,0xdc00,0xe600,0xe600,
0xe600,0xe600,0xdc00,0xe600,0xe600,0xe600,0xde00,0xdc00,0xe600,0xe600,0xe600,0xe600,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0x2300,0,0,0,
-0,0x2110000a,0x2113000a,0x2116000a,0x2119000a,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x211c000a,0,0,0,0,
+0,0x2136000a,0x2139000a,0x213c000a,0x213f000a,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x2142000a,0,0,0,0,
0x6700,0x6700,0x900,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x211f000a,0,0,0,0,0x7600,0x7600,0,0,
+0,0,0,0,0,0,0,0x2145000a,0,0,0,0,0x7600,0x7600,0,0,
0,0,0,0,0,0,0,0,0x7a00,0x7a00,0x7a00,0x7a00,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x2122000a,0x2125000a,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x2128000a,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x2148000a,0x214b000a,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x214e000a,0,0,0,
0,0,0,0,0,0,0,0,0xdc00,0xdc00,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x2134000a,0,0,0,0x216e000a,0x2170000a,0x2172000a,0x2174000a,
-0x2176000a,0x2178000a,0x217a000a,0x217c000a,0x217e000a,0x2180000a,0x2182000a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x2184000a,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x2186000a,0x2188000a,0x218a000a,0x218c000a,0x218e000a,0x2190000a,0x2192000a,0x2194000a,0x2196000a,0x2198000a,0x219a000a,0x219c000a,0x219e000a,
-0x21a0000a,0x21a2000a,0x21a4000a,0x21a6000a,0x21a8000a,0x21aa000a,0x21ac000a,0x21ae000a,0x21b0000a,0x21b2000a,0x21b4000a,0x21b6000a,0x21b8000a,0x21ba000a,0x21bc000a,0x21be000a,
-0x21c0000a,0x21c2000a,0x21c4000a,0x21c6000a,0x21c8000a,0x21ca000a,0x21cc000a,0x21ce000a,0,0,0,0,0x21fd000a,0x21ff000a,0x2202000a,0,
-0,0,0,0,0,0,0,0x2206000a,0,0,0,0x2208000a,0x220b000a,0,0x220f000a,0x2212000a,
-0,0,0,0,0x2216000a,0,0x2219000a,0,0,0,0,0,0,0,0,0x221d000a,
-0x2220000a,0x2223000a,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2226000a,
-0,0,0,0,0,0,0,0x222b000a,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x222d000a,0x222f000a,0,0,0x2231000a,0x2233000a,0x2235000a,0x2237000a,
-0x2239000a,0x223b000a,0x223d000a,0x223f000a,0x2241000a,0x2243000a,0x2245000a,0x2247000a,0x2249000a,0x224b000a,0x224d000a,0x224f000a,0x2251000a,0x2253000a,0x2255000a,0x2257000a,
-0x2259000a,0x225b000a,0x225d000a,0x225f000a,0x2261000a,0x2263000a,0x2265000a,0,0x2267000a,0x2269000a,0x226b000a,0x226d000a,0x226f000a,0,0,0,
-0,0,0,0,0,0,0,0,0x22d8000a,0x22da000a,0x22dd000a,0x22e1000a,0x22e4000a,0x22e6000a,0x22e9000a,0x22ed000a,
-0x22f2000a,0x22f5000a,0x22f7000a,0x22fa000a,0x22fe000a,0x2300000a,0x2302000a,0x2304000a,0x2306000a,0x2308000a,0x230b000a,0x230f000a,0x2312000a,0x2314000a,0x2317000a,0x231b000a,
-0x2320000a,0x2323000a,0x2325000a,0x2328000a,0x232c000a,0x232e000a,0x2330000a,0x2332000a,0x2342000a,0x2344000a,0x2346000a,0x2348000a,0x234a000a,0x234c000a,0x234e000a,0x2350000a,
-0x2352000a,0x2354000a,0x2357000a,0x235a000a,0x235d000a,0x2360000a,0x2363000a,0x2366000a,0x2369000a,0x236c000a,0x236f000a,0x2372000a,0x2375000a,0x2379000a,0x237d000a,0x2381000a,
-0x2385000a,0x2389000a,0x238d000a,0x2391000a,0x2395000a,0x2399000a,0x239e000a,0x23a3000a,0x23a8000a,0x23ad000a,0x23b2000a,0x23b7000a,0x23bc000a,0x23c1000a,0x23c6000a,0x23cb000a,
-0x23d0000a,0x23d3000a,0x23d6000a,0x23d9000a,0x23dc000a,0x23df000a,0x23e2000a,0x23e5000a,0x23e8000a,0x23eb000a,0x23ef000a,0x23f3000a,0x23f7000a,0x23fb000a,0x23ff000a,0x2403000a,
-0x2407000a,0x240b000a,0x240f000a,0x2413000a,0x2417000a,0x241b000a,0x241f000a,0x2423000a,0x2427000a,0x242b000a,0x242f000a,0x2433000a,0x2437000a,0x243b000a,0x243f000a,0x2443000a,
-0x2447000a,0x244b000a,0x244f000a,0x2453000a,0x2457000a,0x245b000a,0x245f000a,0x2463000a,0x2467000a,0x246b000a,0x246f000a,0x2473000a,0x2477000a,0x247b000a,0x247f000a,0x2481000a,
-0x2483000a,0x2485000a,0x2487000a,0x2489000a,0x248b000a,0x248d000a,0x248f000a,0x2491000a,0x2493000a,0x2495000a,0x2497000a,0x2499000a,0x249b000a,0x249d000a,0x249f000a,0x24a1000a,
-0x24a3000a,0x24a5000a,0x24a7000a,0x24a9000a,0x24ab000a,0x24ad000a,0x24af000a,0x24b1000a,0x24b3000a,0x24b5000a,0x24b7000a,0x24b9000a,0x24bb000a,0x24bd000a,0x24bf000a,0x24c1000a,
-0x24c3000a,0x24c5000a,0x24c7000a,0x24c9000a,0x24cb000a,0x24cd000a,0x24cf000a,0x24d1000a,0x24d3000a,0x24d5000a,0x24d7000a,0x24d9000a,0x24db000a,0x24dd000a,0x24df000a,0x24e1000a,
-0x24e3000a,0x24e5000a,0x24e7000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x24e9000a,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x24ee000a,0x24f2000a,0x24f5000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x24f9000a,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x24fb000a,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x24fd000a,0,0,0,0,0,0,0,0,
-0,0,0,0,0x24ff000a,0x2501000a,0x2503000a,0x2505000a,0x2507000a,0x2509000a,0x250b000a,0x250d000a,0x250f000a,0x2511000a,0x2513000a,0x2515000a,
-0x2517000a,0x2519000a,0x251b000a,0x251d000a,0x251f000a,0x2521000a,0x2523000a,0x2525000a,0x2527000a,0x2529000a,0x252b000a,0x252d000a,0x252f000a,0x2531000a,0x2533000a,0x2535000a,
-0x2537000a,0x2539000a,0x253b000a,0x253d000a,0x253f000a,0x2541000a,0x2543000a,0x2545000a,0x2547000a,0x2549000a,0x254b000a,0x254d000a,0x254f000a,0x2551000a,0x2553000a,0x2555000a,
-0x2557000a,0x2559000a,0x255b000a,0x255d000a,0x255f000a,0x2561000a,0x2563000a,0x2565000a,0x2567000a,0x2569000a,0x256b000a,0x256d000a,0x256f000a,0x2571000a,0x2573000a,0x2575000a,
-0x2577000a,0x2579000a,0x257b000a,0x257d000a,0x257f000a,0x2581000a,0x2583000a,0x2585000a,0x2587000a,0x2589000a,0x258b000a,0x258d000a,0x258f000a,0x2591000a,0x2593000a,0x2595000a,
-0x2597000a,0x2599000a,0x259b000a,0x259d000a,0x259f000a,0x25a1000a,0x25a3000a,0x25a5000a,0x25a7000a,0x25a9000a,0x25ab000a,0x25ad000a,0x25af000a,0x25b1000a,0x25b3000a,0x25b5000a,
-0x25b7000a,0x25b9000a,0x25bb000a,0x25bd000a,0x25bf000a,0x25c1000a,0x25c3000a,0x25c5000a,0x25c7000a,0x25c9000a,0x25cb000a,0x25cd000a,0x25cf000a,0x25d1000a,0x25d3000a,0x25d5000a,
-0x25d7000a,0x25d9000a,0x25db000a,0x25dd000a,0x25df000a,0x25e1000a,0x25e3000a,0x25e5000a,0x25e7000a,0x25e9000a,0x25eb000a,0x25ed000a,0x25ef000a,0x25f1000a,0x25f3000a,0x25f5000a,
-0x25f7000a,0x25f9000a,0x25fb000a,0x25fd000a,0x25ff000a,0x2601000a,0x2603000a,0x2605000a,0x2607000a,0x2609000a,0x260b000a,0x260d000a,0x260f000a,0x2611000a,0x2613000a,0x2615000a,
-0x2617000a,0x2619000a,0x261b000a,0x261d000a,0x261f000a,0x2621000a,0x2623000a,0x2625000a,0x2627000a,0x2629000a,0x262b000a,0x262d000a,0x262f000a,0x2631000a,0x2633000a,0x2635000a,
-0x2637000a,0x2639000a,0x263b000a,0x263d000a,0x263f000a,0x2641000a,0x2643000a,0x2645000a,0x2647000a,0x2649000a,0x264b000a,0x264d000a,0x264f000a,0x2651000a,0x2653000a,0x2655000a,
-0x2657000a,0x2659000a,0x265b000a,0x265d000a,0x265f000a,0x2661000a,0x2663000a,0x2665000a,0x2667000a,0x2669000a,0x266b000a,0x266d000a,0x266f000a,0x2671000a,0x2673000a,0x2675000a,
-0x2677000a,0x2679000a,0x267b000a,0x267d000a,0x267f000a,0x2681000a,0x2683000a,0x2685000a,0x2687000a,0x2689000a,0x268b000a,0x268d000a,0x268f000a,0x2691000a,0x2693000a,0x2695000a,
-0x2697000a,0x2699000a,0x269b000a,0x269d000a,0x269f000a,0x26a1000a,0x26a3000a,0x26a5000a,0x26a7000a,0x26a9000a,0,0,0,0,0,0,
-0,0,0,0,0x26ab000a,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x215a000a,0,0,0,0x2194000a,0x2196000a,0x2198000a,0x219a000a,
+0x219c000a,0x219e000a,0x21a0000a,0x21a2000a,0x21a4000a,0x21a6000a,0x21a8000a,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x21aa000a,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x21ac000a,0x21ae000a,0x21b0000a,0x21b2000a,0x21b4000a,0x21b6000a,0x21b8000a,0x21ba000a,0x21bc000a,0x21be000a,0x21c0000a,0x21c2000a,0x21c4000a,
+0x21c6000a,0x21c8000a,0x21ca000a,0x21cc000a,0x21ce000a,0x21d0000a,0x21d2000a,0x21d4000a,0x21d6000a,0x21d8000a,0x21da000a,0x21dc000a,0x21de000a,0x21e0000a,0x21e2000a,0x21e4000a,
+0x21e6000a,0x21e8000a,0x21ea000a,0x21ec000a,0x21ee000a,0x21f0000a,0x21f2000a,0x21f4000a,0,0,0,0,0x2223000a,0x2225000a,0x2228000a,0,
+0,0,0,0,0,0,0,0x222c000a,0,0,0,0x222e000a,0x2231000a,0,0x2235000a,0x2238000a,
+0,0,0,0,0x223c000a,0,0x223f000a,0,0,0,0,0,0,0,0,0x2243000a,
+0x2246000a,0x2249000a,0,0,0,0,0,0,0,0,0,0,0,0,0,0x224c000a,
+0,0,0,0,0,0,0,0x2251000a,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x2253000a,0x2255000a,0,0,0x2257000a,0x2259000a,0x225b000a,0x225d000a,
+0x225f000a,0x2261000a,0x2263000a,0x2265000a,0x2267000a,0x2269000a,0x226b000a,0x226d000a,0x226f000a,0x2271000a,0x2273000a,0x2275000a,0x2277000a,0x2279000a,0x227b000a,0x227d000a,
+0x227f000a,0x2281000a,0x2283000a,0x2285000a,0x2287000a,0x2289000a,0x228b000a,0,0x228d000a,0x228f000a,0x2291000a,0x2293000a,0x2295000a,0,0,0,
+0,0,0,0,0,0,0,0,0x22fe000a,0x2300000a,0x2303000a,0x2307000a,0x230a000a,0x230c000a,0x230f000a,0x2313000a,
+0x2318000a,0x231b000a,0x231d000a,0x2320000a,0x2324000a,0x2326000a,0x2328000a,0x232a000a,0x232c000a,0x232e000a,0x2331000a,0x2335000a,0x2338000a,0x233a000a,0x233d000a,0x2341000a,
+0x2346000a,0x2349000a,0x234b000a,0x234e000a,0x2352000a,0x2354000a,0x2356000a,0x2358000a,0x2368000a,0x236a000a,0x236c000a,0x236e000a,0x2370000a,0x2372000a,0x2374000a,0x2376000a,
+0x2378000a,0x237a000a,0x237d000a,0x2380000a,0x2383000a,0x2386000a,0x2389000a,0x238c000a,0x238f000a,0x2392000a,0x2395000a,0x2398000a,0x239b000a,0x239f000a,0x23a3000a,0x23a7000a,
+0x23ab000a,0x23af000a,0x23b3000a,0x23b7000a,0x23bb000a,0x23bf000a,0x23c4000a,0x23c9000a,0x23ce000a,0x23d3000a,0x23d8000a,0x23dd000a,0x23e2000a,0x23e7000a,0x23ec000a,0x23f1000a,
+0x23f6000a,0x23f9000a,0x23fc000a,0x23ff000a,0x2402000a,0x2405000a,0x2408000a,0x240b000a,0x240e000a,0x2411000a,0x2415000a,0x2419000a,0x241d000a,0x2421000a,0x2425000a,0x2429000a,
+0x242d000a,0x2431000a,0x2435000a,0x2439000a,0x243d000a,0x2441000a,0x2445000a,0x2449000a,0x244d000a,0x2451000a,0x2455000a,0x2459000a,0x245d000a,0x2461000a,0x2465000a,0x2469000a,
+0x246d000a,0x2471000a,0x2475000a,0x2479000a,0x247d000a,0x2481000a,0x2485000a,0x2489000a,0x248d000a,0x2491000a,0x2495000a,0x2499000a,0x249d000a,0x24a1000a,0x24a5000a,0x24a7000a,
+0x24a9000a,0x24ab000a,0x24ad000a,0x24af000a,0x24b1000a,0x24b3000a,0x24b5000a,0x24b7000a,0x24b9000a,0x24bb000a,0x24bd000a,0x24bf000a,0x24c1000a,0x24c3000a,0x24c5000a,0x24c7000a,
+0x24c9000a,0x24cb000a,0x24cd000a,0x24cf000a,0x24d1000a,0x24d3000a,0x24d5000a,0x24d7000a,0x24d9000a,0x24db000a,0x24dd000a,0x24df000a,0x24e1000a,0x24e3000a,0x24e5000a,0x24e7000a,
+0x24e9000a,0x24eb000a,0x24ed000a,0x24ef000a,0x24f1000a,0x24f3000a,0x24f5000a,0x24f7000a,0x24f9000a,0x24fb000a,0x24fd000a,0x24ff000a,0x2501000a,0x2503000a,0x2505000a,0x2507000a,
+0x2509000a,0x250b000a,0x250d000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x250f000a,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x2514000a,0x2518000a,0x251b000a,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x251f000a,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x2521000a,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0x2523000a,0,0,0,0,0,0,0,0,
+0,0,0,0,0x2525000a,0x2527000a,0x2529000a,0x252b000a,0x252d000a,0x252f000a,0x2531000a,0x2533000a,0x2535000a,0x2537000a,0x2539000a,0x253b000a,
+0x253d000a,0x253f000a,0x2541000a,0x2543000a,0x2545000a,0x2547000a,0x2549000a,0x254b000a,0x254d000a,0x254f000a,0x2551000a,0x2553000a,0x2555000a,0x2557000a,0x2559000a,0x255b000a,
+0x255d000a,0x255f000a,0x2561000a,0x2563000a,0x2565000a,0x2567000a,0x2569000a,0x256b000a,0x256d000a,0x256f000a,0x2571000a,0x2573000a,0x2575000a,0x2577000a,0x2579000a,0x257b000a,
+0x257d000a,0x257f000a,0x2581000a,0x2583000a,0x2585000a,0x2587000a,0x2589000a,0x258b000a,0x258d000a,0x258f000a,0x2591000a,0x2593000a,0x2595000a,0x2597000a,0x2599000a,0x259b000a,
+0x259d000a,0x259f000a,0x25a1000a,0x25a3000a,0x25a5000a,0x25a7000a,0x25a9000a,0x25ab000a,0x25ad000a,0x25af000a,0x25b1000a,0x25b3000a,0x25b5000a,0x25b7000a,0x25b9000a,0x25bb000a,
+0x25bd000a,0x25bf000a,0x25c1000a,0x25c3000a,0x25c5000a,0x25c7000a,0x25c9000a,0x25cb000a,0x25cd000a,0x25cf000a,0x25d1000a,0x25d3000a,0x25d5000a,0x25d7000a,0x25d9000a,0x25db000a,
+0x25dd000a,0x25df000a,0x25e1000a,0x25e3000a,0x25e5000a,0x25e7000a,0x25e9000a,0x25eb000a,0x25ed000a,0x25ef000a,0x25f1000a,0x25f3000a,0x25f5000a,0x25f7000a,0x25f9000a,0x25fb000a,
+0x25fd000a,0x25ff000a,0x2601000a,0x2603000a,0x2605000a,0x2607000a,0x2609000a,0x260b000a,0x260d000a,0x260f000a,0x2611000a,0x2613000a,0x2615000a,0x2617000a,0x2619000a,0x261b000a,
+0x261d000a,0x261f000a,0x2621000a,0x2623000a,0x2625000a,0x2627000a,0x2629000a,0x262b000a,0x262d000a,0x262f000a,0x2631000a,0x2633000a,0x2635000a,0x2637000a,0x2639000a,0x263b000a,
+0x263d000a,0x263f000a,0x2641000a,0x2643000a,0x2645000a,0x2647000a,0x2649000a,0x264b000a,0x264d000a,0x264f000a,0x2651000a,0x2653000a,0x2655000a,0x2657000a,0x2659000a,0x265b000a,
+0x265d000a,0x265f000a,0x2661000a,0x2663000a,0x2665000a,0x2667000a,0x2669000a,0x266b000a,0x266d000a,0x266f000a,0x2671000a,0x2673000a,0x2675000a,0x2677000a,0x2679000a,0x267b000a,
+0x267d000a,0x267f000a,0x2681000a,0x2683000a,0x2685000a,0x2687000a,0x2689000a,0x268b000a,0x268d000a,0x268f000a,0x2691000a,0x2693000a,0x2695000a,0x2697000a,0x2699000a,0x269b000a,
+0x269d000a,0x269f000a,0x26a1000a,0x26a3000a,0x26a5000a,0x26a7000a,0x26a9000a,0x26ab000a,0x26ad000a,0x26af000a,0x26b1000a,0x26b3000a,0x26b5000a,0x26b7000a,0x26b9000a,0x26bb000a,
+0x26bd000a,0x26bf000a,0x26c1000a,0x26c3000a,0x26c5000a,0x26c7000a,0x26c9000a,0x26cb000a,0x26cd000a,0x26cf000a,0,0,0,0,0,0,
+0,0,0,0,0x26d1000a,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0xda00,0xe400,0xe800,0xde00,0xe000,0xe000,0,0,0,0,
-0,0,0x26ad000a,0,0x26af000a,0x26b1000a,0x26b3000a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x26c3000a,0x26c5000a,0x26c7000a,0x26c9000a,0x26cb000a,0x26cd000a,0x26cf000a,
-0x26d1000a,0x26d3000a,0x26d5000a,0x26d7000a,0x26d9000a,0x26db000a,0x26dd000a,0x26df000a,0x26e1000a,0x26e3000a,0x26e5000a,0x26e7000a,0x26e9000a,0x26eb000a,0x26ed000a,0x26ef000a,
-0x26f1000a,0x26f3000a,0x26f5000a,0x26f7000a,0x26f9000a,0x26fb000a,0x26fd000a,0x26ff000a,0x2701000a,0x2703000a,0x2705000a,0x2707000a,0x2709000a,0x270b000a,0x270d000a,0x270f000a,
-0x2711000a,0x2713000a,0x2715000a,0x2717000a,0x2719000a,0x271b000a,0x271d000a,0x271f000a,0x2721000a,0x2723000a,0x2725000a,0x2727000a,0x2729000a,0x272b000a,0x272d000a,0x272f000a,
-0x2731000a,0x2733000a,0x2735000a,0x2737000a,0x2739000a,0x273b000a,0x273d000a,0x273f000a,0x2741000a,0x2743000a,0x2745000a,0x2747000a,0x2749000a,0x274b000a,0x274d000a,0x274f000a,
-0x2751000a,0x2753000a,0x2755000a,0x2757000a,0x2759000a,0x275b000a,0x275d000a,0x275f000a,0x2761000a,0x2763000a,0x2765000a,0x2767000a,0x2769000a,0x276b000a,0x276d000a,0x276f000a,
-0x2771000a,0x2773000a,0x2775000a,0x2777000a,0x2779000a,0x277b000a,0x277d000a,0,0,0,0x277f000a,0x2781000a,0x2783000a,0x2785000a,0x2787000a,0x2789000a,
-0x278b000a,0x278d000a,0x278f000a,0x2791000a,0x2793000a,0x2795000a,0x2797000a,0x2799000a,0x279b000a,0x279f000a,0x27a3000a,0x27a7000a,0x27ab000a,0x27af000a,0x27b3000a,0x27b7000a,
-0x27bb000a,0x27bf000a,0x27c3000a,0x27c7000a,0x27cb000a,0x27cf000a,0x27d3000a,0x27d8000a,0x27dd000a,0x27e2000a,0x27e7000a,0x27ec000a,0x27f1000a,0x27f6000a,0x27fb000a,0x2800000a,
-0x2805000a,0x280a000a,0x280f000a,0x2814000a,0x2819000a,0x281e000a,0x2826000a,0,0x282d000a,0x2831000a,0x2835000a,0x2839000a,0x283d000a,0x2841000a,0x2845000a,0x2849000a,
-0x284d000a,0x2851000a,0x2855000a,0x2859000a,0x285d000a,0x2861000a,0x2865000a,0x2869000a,0x286d000a,0x2871000a,0x2875000a,0x2879000a,0x287d000a,0x2881000a,0x2885000a,0x2889000a,
-0x288d000a,0x2891000a,0x2895000a,0x2899000a,0x289d000a,0x28a1000a,0x28a5000a,0x28a9000a,0x28ea000a,0x28ec000a,0x28ee000a,0x28f0000a,0x28f2000a,0x28f4000a,0x28f6000a,0x28f8000a,
-0x28fa000a,0x28fc000a,0x28fe000a,0x2900000a,0x2902000a,0x2904000a,0x2906000a,0x2909000a,0x290c000a,0x290f000a,0x2912000a,0x2915000a,0x2918000a,0x291b000a,0x291e000a,0x2921000a,
-0x2924000a,0x2927000a,0x292a000a,0x292d000a,0x2930000a,0x2936000a,0x293b000a,0,0x293e000a,0x2940000a,0x2942000a,0x2944000a,0x2946000a,0x2948000a,0x294a000a,0x294c000a,
-0x294e000a,0x2950000a,0x2952000a,0x2954000a,0x2956000a,0x2958000a,0x295a000a,0x295c000a,0x295e000a,0x2960000a,0x2962000a,0x2964000a,0x2966000a,0x2968000a,0x296a000a,0x296c000a,
-0x296e000a,0x2970000a,0x2972000a,0x2974000a,0x2976000a,0x2978000a,0x297a000a,0x297c000a,0x297e000a,0x2980000a,0x2982000a,0x2984000a,0x2986000a,0x2988000a,0x298a000a,0x298c000a,
-0x298e000a,0x2990000a,0x2992000a,0x2994000a,0x2996000a,0x2998000a,0x299a000a,0x299c000a,0x299e000a,0x29a0000a,0x29a3000a,0x29a6000a,0x29a9000a,0x29ac000a,0x29af000a,0x29b2000a,
-0x29b5000a,0x29b8000a,0x29bb000a,0x29be000a,0x29c1000a,0x29c4000a,0x29c7000a,0x29ca000a,0x2a18000a,0x2a1a000a,0x2a1c000a,0x2a1e000a,0x2a20000a,0x2a22000a,0x2a24000a,0x2a26000a,
-0x2a28000a,0x2a2a000a,0x2a2c000a,0x2a2e000a,0x2a30000a,0x2a32000a,0x2a34000a,0x2a36000a,0x2a38000a,0x2a3a000a,0x2a3c000a,0x2a3e000a,0x2a40000a,0x2a42000a,0x2a44000a,0x2a46000a,
-0x2a48000a,0x2a4a000a,0x2a4c000a,0x2a4e000a,0x2a50000a,0x2a52000a,0x2a54000a,0,0x2a56000a,0x2a5c000a,0x2a61000a,0x2a67000a,0x2a6b000a,0x2a72000a,0x2a76000a,0x2a7a000a,
-0x2a82000a,0x2a87000a,0x2a8b000a,0x2a8f000a,0x2a93000a,0x2a98000a,0x2a9d000a,0x2aa2000a,0x2aa7000a,0x2aad000a,0x2ab2000a,0x2ab7000a,0x2abe000a,0x2ac1000a,0x2ac8000a,0x2acf000a,
-0x2ad5000a,0x2ada000a,0x2ae1000a,0x2ae8000a,0x2aed000a,0x2af1000a,0x2af5000a,0x2afb000a,0x2b00000a,0x2b06000a,0x2b0d000a,0x2b11000a,0x2b15000a,0x2b1a000a,0x2b1e000a,0x2b22000a,
-0x2b25000a,0x2b28000a,0x2b2c000a,0x2b30000a,0x2b37000a,0x2b3c000a,0x2b42000a,0x2b49000a,0x2b4e000a,0x2b52000a,0x2b56000a,0x2b5e000a,0x2b63000a,0x2b6a000a,0x2b6e000a,0x2b74000a,
-0x2b78000a,0x2b7d000a,0x2b81000a,0x2b86000a,0x2b8d000a,0x2b92000a,0x2b98000a,0x2b9d000a,0x2ba0000a,0x2ba7000a,0x2bab000a,0x2baf000a,0x2bb4000a,0x2bb8000a,0x2bbc000a,0x2bc0000a,
-0x2bc6000a,0x2bcb000a,0x2bce000a,0x2bd5000a,0x2bda000a,0x2be0000a,0x2be5000a,0x2beb000a,0x2bef000a,0x2bf3000a,0x2bf8000a,0x2bfb000a,0x2c00000a,0x2c06000a,0x2c09000a,0x2c10000a,
-0x2c14000a,0x2c17000a,0x2c1a000a,0x2c1d000a,0x2c20000a,0x2c23000a,0x2c26000a,0x2c29000a,0x2d3c000a,0x2d3f000a,0x2d42000a,0x2d45000a,0x2d48000a,0x2d4b000a,0x2d4e000a,0x2d51000a,
-0x2d54000a,0x2d57000a,0x2d5b000a,0x2d5f000a,0x2d63000a,0x2d67000a,0x2d6b000a,0x2d6f000a,0x2d73000a,0x2d77000a,0x2d7b000a,0x2d7f000a,0x2d83000a,0x2d87000a,0x2d8b000a,0x2d8f000a,
-0x2d93000a,0x2d97000a,0x2d9b000a,0x2d9f000a,0x2da3000a,0x2da7000a,0x2dab000a,0x2daf000a,0x2e10000a,0x2e12000a,0x2e14000a,0x2e16000a,0x2e18000a,0x2e1a000a,0x2e1c000a,0x2e1e000a,
-0x2e20000a,0x2e22000a,0x2e24000a,0x2e26000a,0x2e28000a,0x2e2a000a,0x2e2c000a,0x2e2e000a,0x2e30000a,0x2e32000a,0x2e34000a,0x2e36000a,0x2e38000a,0x2e3a000a,0x2e3c000a,0x2e3e000a,
-0x2e40000a,0x2e42000a,0x2e44000a,0x2e46000a,0x2e48000a,0x2e4a000a,0x2e4c000a,0x2e4e000a,0x2e50000a,0x2e52000a,0x2e54000a,0x2e56000a,0x2e58000a,0x2e5a000a,0x2e5c000a,0x2e5e000a,
-0x2e60000a,0x2e62000a,0x2e64000a,0x2e66000a,0x2e68000a,0x2e6a000a,0x2e6c000a,0x2e6e000a,0x2e70000a,0x2e72000a,0x2e74000a,0x2e76000a,0x2e78000a,0x2e7a000a,0x2e7c000a,0x2e7e000a,
-0x2e80000a,0x2e82000a,0x2e84000a,0x2e86000a,0x2e88000a,0x2e8a000a,0x2e8c000a,0x2e8e000a,0x2e90000a,0x2e92000a,0x2e94000a,0x2e96000a,0x2e98000a,0x2e9c000a,0x2ea0000a,0x2ea2000a,
-0x2ea4000a,0x2ea6000a,0x2ea8000a,0x2eaa000a,0x2eac000a,0x2eae000a,0x2eb0000a,0x2eb2000a,0x2eb4000a,0x2eb8000a,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2ebc000a,
-0x2ebe000a,0x2ec0000a,0x2ec2000a,0x2ec4000a,0x2ec6000a,0x2ec8000a,0x2eca000a,0x2ecc000a,0x2ece000a,0x2ed0000a,0x2ed3000a,0x2ed5000a,0x2ed7000a,0x2ed9000a,0x2edb000a,0x2edd000a,
-0x2edf000a,0x2ee1000a,0x2ee3000a,0x2ee5000a,0x2ee7000a,0x2ee9000a,0x2eeb000a,0x2eef000a,0x2ef3000a,0x2ef7000a,0x2efb000a,0x2eff000a,0x2f03000a,0x2f07000a,0x2f0b000a,0x2f0f000a,
-0x2f13000a,0x2f17000a,0x2f1b000a,0x2f1f000a,0x2f23000a,0x2f27000a,0x2f2b000a,0x2f2f000a,0x2f33000a,0x2f35000a,0x2f37000a,0x2f39000a,0x2f3b000a,0x2f3f000a,0x2f43000a,0x2f47000a,
-0x2f4b000a,0x2f4f000a,0x2f52000a,0x2f55000a,0x2f58000a,0x2f5b000a,0x2f5e000a,0x2f61000a,0x2f64000a,0x2f67000a,0x2f6a000a,0x2f6d000a,0x2f70000a,0x2f73000a,0x2f76000a,0x2f79000a,
-0x2f7c000a,0x2f7f000a,0x2f82000a,0x2f85000a,0x2f88000a,0x2f8b000a,0x2f8e000a,0x2f91000a,0x2f94000a,0x2f97000a,0x2f9a000a,0x2f9d000a,0x2fa0000a,0x2fa3000a,0x2fa6000a,0x2fa9000a,
-0x2fac000a,0x2faf000a,0x2fb2000a,0x2fb5000a,0x2fb8000a,0x2fbb000a,0x2fbe000a,0x2fc1000a,0x2fc4000a,0x2fc7000a,0x2fca000a,0x2fcd000a,0x2fd0000a,0x2fd3000a,0x2fd6000a,0x2fd9000a,
-0x2fdc000a,0x2fdf000a,0x2fe2000a,0x2fe5000a,0x2fe8000a,0x2feb000a,0x2fee000a,0x2ff1000a,0x2ff4000a,0x2ff7000a,0x2ffa000a,0x2ffd000a,0x3000000a,0x3003000a,0x3006000a,0x3009000a,
-0x300c000a,0x300f000a,0x3012000a,0x3015000a,0x3018000a,0x301b000a,0x301e000a,0x3021000a,0x3024000a,0x3027000a,0x302a000a,0x302d000a,0x3030000a,0x3033000a,0x3036000a,0x3039000a,
-0x303c000a,0x303f000a,0x3042000a,0x3045000a,0x3048000a,0x304b000a,0x304e000a,0x3051000a,0x3055000a,0x3059000a,0x305d000a,0x3062000a,0x3067000a,0x306c000a,0x3071000a,0x3076000a,
-0x307b000a,0x307f000a,0x3083000a,0x3087000a,0x308b000a,0x308f000a,0x3093000a,0x3096000a,0x3099000a,0x309c000a,0x309f000a,0x30a2000a,0x30a5000a,0x30a8000a,0x30ab000a,0x30ae000a,
-0x30b1000a,0x30b4000a,0x30b7000a,0x30ba000a,0x30bd000a,0x30c0000a,0x30c3000a,0x30c6000a,0x30c9000a,0x30cc000a,0x30cf000a,0x30d2000a,0x30d5000a,0x30d8000a,0x30db000a,0x30de000a,
-0x30e1000a,0x30e4000a,0x30e7000a,0x30ea000a,0x30ed000a,0x30f0000a,0x30f3000a,0x30f6000a,0x30f9000a,0x30fc000a,0x30ff000a,0x3102000a,0x3105000a,0x3109000a,0x310c000a,0x310f000a,
-0x3112000a,0x3115000a,0x3118000a,0x311b000a,0x311f000a,0x3123000a,0x3127000a,0x312b000a,0x312f000a,0x3132000a,0x3135000a,0x3138000a,0x313b000a,0x313e000a,0x3141000a,0x3144000a,
-0x3147000a,0x314a000a,0x314d000a,0x3150000a,0x3153000a,0x3156000a,0x3159000a,0x315c000a,0x315f000a,0x3162000a,0x3165000a,0x3168000a,0x316b000a,0x316e000a,0x3171000a,0x3174000a,
-0x3177000a,0x317a000a,0x317d000a,0x3180000a,0x3183000a,0x3186000a,0x3189000a,0x318c000a,0x318f000a,0x3192000a,0x3195000a,0x3198000a,0x319b000a,0x319e000a,0x31a1000a,0x31a4000a,
-0x31a7000a,0x31aa000a,0x31ad000a,0x31b0000a,0x31b3000a,0x31b6000a,0x31b9000a,0x31bc000a,0x31bf000a,0x31c2000a,0x31c5000a,0x31c8000a,0x31cb000a,0x31ce000a,0x31d1000a,0x31d4000a,
-0x31d7000a,0x31da000a,0x31dd000a,0x31e0000a,0x31e3000a,0x31e6000a,0x31ea000a,0x31ed000a,0x31f0000a,0x31f3000a,0x31f6000a,0x31f9000a,0x31fd000a,0x3201000a,0x3204000a,0x3207000a,
-0x320a000a,0x320d000a,0x3210000a,0x3213000a,0x3216000a,0x3219000a,0x321c000a,0x321f000a,0x3222000a,0x3225000a,0x3228000a,0x322b000a,0x322e000a,0x3231000a,0x3234000a,0x3239000a,
-0x323e000a,0x3243000a,0x3246000a,0x3249000a,0x324c000a,0x324f000a,0x3252000a,0x3255000a,0x3258000a,0x325b000a,0x325e000a,0x3261000a,0x3264000a,0x3267000a,0x326a000a,0x326d000a,
-0x3270000a,0x3273000a,0x3276000a,0x3279000a,0x327c000a,0x327f000a,0x3282000a,0x3285000a,0x3288000a,0x328b000a,0x328e000a,0x3291000a,0x3294000a,0x3297000a,0x329a000a,0x329d000a,
-0x32a0000a,0x32a3000a,0x32a6000a,0x32a9000a,0x32ac000a,0x32af000a,0x32b2000a,0x32b5000a,0x32b8000a,0x32bb000a,0x32be000a,0x32c1000a,0x32c4000a,0x32c7000a,0x32ca000a,0x32cd000a,
-0x32d0000a,0x32d3000a,0x32d6000a,0x32d9000a,0x32dc000a,0x32df000a,0x32e2000a,0x32e5000a,0x32e8000a,0x32eb000a,0x32ee000a,0x32f1000a,0x32f4000a,0x32f7000a,0x32fa000a,0x32fd000a,
-0x3300000a,0x3303000a,0x3306000a,0x3309000a,0x330c000a,0x330f000a,0x3312000a,0x3315000a,0x3318000a,0x331c000a,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x3320000a,0x3324000a,0x3328000a,0x332c000a,
-0x3330000a,0x3334000a,0x3338000a,0x333c000a,0x3340000a,0x3344000a,0x3348000a,0x334c000a,0x3350000a,0x3354000a,0x3358000a,0x335c000a,0x3360000a,0x3364000a,0x3368000a,0x336c000a,
-0x3370000a,0x3374000a,0x3378000a,0x337c000a,0x3380000a,0x3384000a,0x3388000a,0x338c000a,0x3390000a,0x3394000a,0x3398000a,0x339c000a,0x33a0000a,0x33a4000a,0x33a8000a,0x33ac000a,
-0x33b0000a,0x33b4000a,0x33b8000a,0x33bc000a,0x33c0000a,0x33c4000a,0x33c8000a,0x33cc000a,0x33d0000a,0x33d4000a,0x33d8000a,0x33dc000a,0x33e0000a,0x33e4000a,0x33e8000a,0x33ec000a,
-0x33f0000a,0x33f4000a,0x33f8000a,0x33fc000a,0x3400000a,0x3404000a,0x3408000a,0x340c000a,0x3410000a,0x3414000a,0x3418000a,0x341c000a,0,0,0x3420000a,0x3424000a,
-0x3428000a,0x342c000a,0x3430000a,0x3434000a,0x3438000a,0x343c000a,0x3440000a,0x3444000a,0x3448000a,0x344c000a,0x3450000a,0x3454000a,0x3458000a,0x345c000a,0x3460000a,0x3464000a,
-0x3468000a,0x346c000a,0x3470000a,0x3474000a,0x3478000a,0x347c000a,0x3480000a,0x3484000a,0x3488000a,0x348c000a,0x3490000a,0x3494000a,0x3498000a,0x349c000a,0x34a0000a,0x34a4000a,
-0x34a8000a,0x34ac000a,0x34b0000a,0x34b4000a,0x34b8000a,0x34bc000a,0x34c0000a,0x34c4000a,0x34c8000a,0x34cc000a,0x34d0000a,0x34d4000a,0x34d8000a,0x34dc000a,0x34e0000a,0x34e4000a,
-0x34e8000a,0x34ec000a,0x34f0000a,0x34f4000a,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x34f8000a,0x34fc000a,0x3500000a,0x3505000a,
-0x350a000a,0x350f000a,0x3514000a,0x3519000a,0x351e000a,0x3523000a,0x3527000a,0x353a000a,0x3543000a,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x3548000a,0x354a000a,0x354c000a,0x354e000a,
-0x3550000a,0x3552000a,0x3554000a,0x3556000a,0x3558000a,0x355a000a,0,0,0,0,0,0,0xe600,0xe600,0xe600,0xe600,
-0,0,0,0,0,0,0,0,0,0,0,0,0x355e000a,0x3561000a,0x3563000a,0x3565000a,
-0x3567000a,0x3569000a,0x356b000a,0x356d000a,0x356f000a,0x3571000a,0x3573000a,0x3575000a,0x3577000a,0x3579000a,0x357b000a,0x357d000a,0x357f000a,0x3581000a,0x3583000a,0x3585000a,
-0x3587000a,0,0,0x3589000a,0x358b000a,0x358d000a,0x3591000a,0x3595000a,0x3599000a,0x359d000a,0x359f000a,0x35a1000a,0x35a3000a,0x35a5000a,0x35a7000a,0,
-0x35a9000a,0x35ab000a,0x35ad000a,0x35af000a,0x35b1000a,0x35b3000a,0x35b5000a,0x35b7000a,0x35b9000a,0x35bb000a,0x35bd000a,0x35bf000a,0x35c1000a,0x35c3000a,0x35c5000a,0x35c7000a,
-0x35c9000a,0x35cb000a,0x35cd000a,0,0x35cf000a,0x35d1000a,0x35d3000a,0x35d5000a,0,0,0,0,0x35d7000a,0x35db000a,0x35df000a,0,
-0x35e3000a,0,0x35e7000a,0x35eb000a,0x35ef000a,0x35f3000a,0x35f7000a,0x35fb000a,0x35ff000a,0x3603000a,0x3607000a,0x360b000a,0x360f000a,0x3611000a,0x3615000a,0x3619000a,
-0x361d000a,0x3621000a,0x3625000a,0x3629000a,0x362d000a,0x3631000a,0x3635000a,0x3639000a,0x363d000a,0x3641000a,0x3643000a,0x3645000a,0x3647000a,0x3649000a,0x364b000a,0x364d000a,
-0x364f000a,0x3651000a,0x3653000a,0x3655000a,0x3657000a,0x3659000a,0x365b000a,0x365d000a,0x365f000a,0x3661000a,0x3663000a,0x3665000a,0x3667000a,0x3669000a,0x366b000a,0x366d000a,
-0x366f000a,0x3671000a,0x3673000a,0x3675000a,0x3677000a,0x3679000a,0x367b000a,0x367d000a,0x367f000a,0x3681000a,0x3683000a,0x3685000a,0x3687000a,0x3689000a,0x368b000a,0x368d000a,
-0x368f000a,0x3691000a,0x3693000a,0x3695000a,0x3697000a,0x3699000a,0x369b000a,0x369d000a,0x369f000a,0x36a1000a,0x36a3000a,0x36a5000a,0x36a7000a,0x36a9000a,0x36ab000a,0x36ad000a,
-0x36af000a,0x36b1000a,0x36b3000a,0x36b5000a,0x36b7000a,0x36b9000a,0x36bb000a,0x36bd000a,0x36bf000a,0x36c1000a,0x36c3000a,0x36c5000a,0x36c7000a,0x36c9000a,0x36cb000a,0x36cd000a,
-0x36cf000a,0x36d1000a,0x36d3000a,0x36d5000a,0x36d7000a,0x36d9000a,0x36db000a,0x36dd000a,0x36df000a,0x36e1000a,0x36e3000a,0x36e5000a,0x36e7000a,0x36e9000a,0x36eb000a,0x36ed000a,
-0x36ef000a,0x36f1000a,0x36f3000a,0x36f5000a,0x36f7000a,0x36f9000a,0x36fb000a,0x36fd000a,0x36ff000a,0x3701000a,0x3703000a,0x3705000a,0x3707000a,0x3709000a,0x370b000a,0x370d000a,
-0x370f000a,0x3711000a,0x3716000a,0x371b000a,0x3720000a,0x3725000a,0x372a000a,0x372f000a,0x3732000a,0,0,0,0,0x3735000a,0x3737000a,0x3739000a,
-0x373b000a,0x373d000a,0x373f000a,0x3741000a,0x3743000a,0x3745000a,0x3747000a,0x3749000a,0x374b000a,0x374d000a,0x374f000a,0x3751000a,0x3753000a,0x3755000a,0x3757000a,0x3759000a,
-0x375b000a,0x375d000a,0x375f000a,0x3761000a,0x3763000a,0x3765000a,0x3767000a,0x3769000a,0x376b000a,0x376d000a,0x376f000a,0x3771000a,0x3773000a,0x3775000a,0x3777000a,0x3779000a,
-0x377b000a,0x377d000a,0x377f000a,0x3781000a,0x3783000a,0x3785000a,0x3787000a,0x3789000a,0x378b000a,0x378d000a,0x378f000a,0x3791000a,0x3793000a,0x3795000a,0x3797000a,0x3799000a,
-0x379b000a,0x379d000a,0x379f000a,0x37a1000a,0x37a3000a,0x37a5000a,0x37a7000a,0x37a9000a,0x37ab000a,0x37ad000a,0x37af000a,0x37b1000a,0x37b3000a,0x37b5000a,0x37b7000a,0x37b9000a,
-0x37bb000a,0x37bd000a,0x37bf000a,0x37c1000a,0x37c3000a,0x37c5000a,0x37c7000a,0x37c9000a,0x37cb000a,0x37cd000a,0x37cf000a,0x37d1000a,0x37d3000a,0x37d5000a,0x37d7000a,0x37d9000a,
-0x37db000a,0x37dd000a,0x37df000a,0x37e1000a,0x37e3000a,0x37e5000a,0x37e7000a,0x37e9000a,0x37eb000a,0x37ed000a,0x37ef000a,0x37f1000a,0x37f3000a,0x37f5000a,0x37f7000a,0x37f9000a,
-0x37fb000a,0x37fd000a,0x37ff000a,0x3801000a,0x3803000a,0x3805000a,0x3807000a,0x3809000a,0x380b000a,0x380d000a,0x380f000a,0x3811000a,0x3813000a,0x3815000a,0x3817000a,0x3819000a,
-0x381b000a,0x381d000a,0x381f000a,0x3821000a,0x3823000a,0x3825000a,0x3827000a,0x3829000a,0x382b000a,0x382d000a,0x382f000a,0x3831000a,0x3833000a,0x3835000a,0x3837000a,0x3839000a,
-0x383b000a,0x383d000a,0x383f000a,0x3841000a,0x3843000a,0x3845000a,0x3847000a,0x3849000a,0x384b000a,0x384d000a,0x384f000a,0x3851000a,0x3853000a,0x3855000a,0x3857000a,0x3859000a,
-0x385b000a,0x385d000a,0x385f000a,0x3861000a,0x3863000a,0x3865000a,0x3867000a,0x3869000a,0x386b000a,0x386d000a,0x386f000a,0x3872000a,0x3875000a,0x3877000a,0x3879000a,0x387b000a,
-0x387d000a,0x387f000a,0x3881000a,0x3883000a,0x3885000a,0x3887000a,0x3889000a,0x388b000a,0x388d000a,0x388f000a,0x3891000a,0x3893000a,0x3895000a,0x3897000a,0x3899000a,0x389b000a,
-0x389d000a,0x389f000a,0x38a1000a,0x38a3000a,0x38a5000a,0x38a7000a,0x38a9000a,0x38ab000a,0x38ad000a,0x38af000a,0x38b1000a,0,0,0,0x38b3000a,0x38b5000a,
-0x38b7000a,0x38b9000a,0x38bb000a,0x38bd000a,0,0,0x38bf000a,0x38c1000a,0x38c3000a,0x38c5000a,0x38c7000a,0x38c9000a,0,0,0x38cb000a,0x38cd000a,
-0x38cf000a,0x38d1000a,0x38d3000a,0x38d5000a,0,0,0x38d7000a,0x38d9000a,0x38db000a,0,0,0,0x38dd000a,0x38df000a,0x38e1000a,0x38e3000a,
-0x38e7000a,0x38e9000a,0x38eb000a,0,0x38ed000a,0x38ef000a,0x38f1000a,0x38f3000a,0x38f5000a,0x38f7000a,0x38f9000a,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x3cc7000a,0x3cc9000a,0x3ccb000a,0x3ccd000a,
-0x3ccf000a,0x3cd1000a,0x3cd3000a,0x3cd5000a,0x3cd7000a,0x3cd9000a,0,0,0,0,0x3cdb000a,0x3cdd000a,0x3cdf000a,0x3ce1000a,0x3ce3000a,0x3ce5000a,
-0x3ce7000a,0x3ce9000a,0x3ceb000a,0x3ced000a,0x3cef000a,0x3cf1000a,0x3cf3000a,0x3cf5000a,0x3cf7000a,0x3cf9000a,0x3cfb000a,0x3cfd000a,0x3cff000a,0x3d01000a,0x3d03000a,0x3d05000a,
-0x3d07000a,0x3d09000a,0x3d0b000a,0x3d0d000a,0x3d0f000a,0x3d11000a,0x3d13000a,0x3d15000a,0x3d17000a,0x3d19000a,0x3d1b000a,0x3d1d000a,0x3d1f000a,0x3d21000a,0x3d23000a,0x3d25000a,
-0x3d27000a,0x3d29000a,0x3d2b000a,0x3d2d000a,0x3d2f000a,0x3d31000a,0x3d33000a,0x3d35000a,0x3d37000a,0x3d39000a,0x3d3b000a,0x3d3d000a,0,0x3d400040,0x3daf0040,0x3d410040,
-0x3d500040,0x3d420040,0x3db10040,0x3d520040,0x3d540040,0x3d430040,0x3d560040,0x3d580040,0x3d5a0040,0x3db30040,0x3d440040,0x3d450040,0x3db50040,0,0x3d5c0040,0x3d5e0040,
-0x3d600040,0x3d460040,0x3db70040,0x3d620040,0x3db90040,0x3d470040,0x3d640040,0,0,0,0,0,0,0x3d480040,0x3db00040,0x3d490040,
-0x3d510040,0x3d4a0040,0x3db20040,0x3d530040,0x3d550040,0x3d4b0040,0x3d570040,0x3d590040,0x3d5b0040,0x3db40040,0x3d4c0040,0x3d4d0040,0x3db60040,0,0x3d5d0040,0x3d5f0040,
-0x3d610040,0x3d4e0040,0x3db80040,0x3d630040,0x3dba0040,0x3d4f0040,0x3d650040,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x3d690040,0,0,0,0,0,
+0,0,0x26d3000a,0,0x26d5000a,0x26d7000a,0x26d9000a,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x26e9000a,0x26eb000a,0x26ed000a,0x26ef000a,0x26f1000a,0x26f3000a,0x26f5000a,
+0x26f7000a,0x26f9000a,0x26fb000a,0x26fd000a,0x26ff000a,0x2701000a,0x2703000a,0x2705000a,0x2707000a,0x2709000a,0x270b000a,0x270d000a,0x270f000a,0x2711000a,0x2713000a,0x2715000a,
+0x2717000a,0x2719000a,0x271b000a,0x271d000a,0x271f000a,0x2721000a,0x2723000a,0x2725000a,0x2727000a,0x2729000a,0x272b000a,0x272d000a,0x272f000a,0x2731000a,0x2733000a,0x2735000a,
+0x2737000a,0x2739000a,0x273b000a,0x273d000a,0x273f000a,0x2741000a,0x2743000a,0x2745000a,0x2747000a,0x2749000a,0x274b000a,0x274d000a,0x274f000a,0x2751000a,0x2753000a,0x2755000a,
+0x2757000a,0x2759000a,0x275b000a,0x275d000a,0x275f000a,0x2761000a,0x2763000a,0x2765000a,0x2767000a,0x2769000a,0x276b000a,0x276d000a,0x276f000a,0x2771000a,0x2773000a,0x2775000a,
+0x2777000a,0x2779000a,0x277b000a,0x277d000a,0x277f000a,0x2781000a,0x2783000a,0x2785000a,0x2787000a,0x2789000a,0x278b000a,0x278d000a,0x278f000a,0x2791000a,0x2793000a,0x2795000a,
+0x2797000a,0x2799000a,0x279b000a,0x279d000a,0x279f000a,0x27a1000a,0x27a3000a,0,0,0,0x27a5000a,0x27a7000a,0x27a9000a,0x27ab000a,0x27ad000a,0x27af000a,
+0x27b1000a,0x27b3000a,0x27b5000a,0x27b7000a,0x27b9000a,0x27bb000a,0x27bd000a,0x27bf000a,0x27c1000a,0x27c5000a,0x27c9000a,0x27cd000a,0x27d1000a,0x27d5000a,0x27d9000a,0x27dd000a,
+0x27e1000a,0x27e5000a,0x27e9000a,0x27ed000a,0x27f1000a,0x27f5000a,0x27f9000a,0x27fe000a,0x2803000a,0x2808000a,0x280d000a,0x2812000a,0x2817000a,0x281c000a,0x2821000a,0x2826000a,
+0x282b000a,0x2830000a,0x2835000a,0x283a000a,0x283f000a,0x2844000a,0x284c000a,0,0x2853000a,0x2857000a,0x285b000a,0x285f000a,0x2863000a,0x2867000a,0x286b000a,0x286f000a,
+0x2873000a,0x2877000a,0x287b000a,0x287f000a,0x2883000a,0x2887000a,0x288b000a,0x288f000a,0x2893000a,0x2897000a,0x289b000a,0x289f000a,0x28a3000a,0x28a7000a,0x28ab000a,0x28af000a,
+0x28b3000a,0x28b7000a,0x28bb000a,0x28bf000a,0x28c3000a,0x28c7000a,0x28cb000a,0x28cf000a,0x2910000a,0x2912000a,0x2914000a,0x2916000a,0x2918000a,0x291a000a,0x291c000a,0x291e000a,
+0x2920000a,0x2922000a,0x2924000a,0x2926000a,0x2928000a,0x292a000a,0x292c000a,0x292f000a,0x2932000a,0x2935000a,0x2938000a,0x293b000a,0x293e000a,0x2941000a,0x2944000a,0x2947000a,
+0x294a000a,0x294d000a,0x2950000a,0x2953000a,0x2956000a,0x295c000a,0x2961000a,0,0x2964000a,0x2966000a,0x2968000a,0x296a000a,0x296c000a,0x296e000a,0x2970000a,0x2972000a,
+0x2974000a,0x2976000a,0x2978000a,0x297a000a,0x297c000a,0x297e000a,0x2980000a,0x2982000a,0x2984000a,0x2986000a,0x2988000a,0x298a000a,0x298c000a,0x298e000a,0x2990000a,0x2992000a,
+0x2994000a,0x2996000a,0x2998000a,0x299a000a,0x299c000a,0x299e000a,0x29a0000a,0x29a2000a,0x29a4000a,0x29a6000a,0x29a8000a,0x29aa000a,0x29ac000a,0x29ae000a,0x29b0000a,0x29b2000a,
+0x29b4000a,0x29b6000a,0x29b8000a,0x29ba000a,0x29bc000a,0x29be000a,0x29c0000a,0x29c2000a,0x29c4000a,0x29c6000a,0x29c9000a,0x29cc000a,0x29cf000a,0x29d2000a,0x29d5000a,0x29d8000a,
+0x29db000a,0x29de000a,0x29e1000a,0x29e4000a,0x29e7000a,0x29ea000a,0x29ed000a,0x29f0000a,0x2a3e000a,0x2a40000a,0x2a42000a,0x2a44000a,0x2a46000a,0x2a48000a,0x2a4a000a,0x2a4c000a,
+0x2a4e000a,0x2a50000a,0x2a52000a,0x2a54000a,0x2a56000a,0x2a58000a,0x2a5a000a,0x2a5c000a,0x2a5e000a,0x2a60000a,0x2a62000a,0x2a64000a,0x2a66000a,0x2a68000a,0x2a6a000a,0x2a6c000a,
+0x2a6e000a,0x2a70000a,0x2a72000a,0x2a74000a,0x2a76000a,0x2a78000a,0x2a7a000a,0,0x2a7c000a,0x2a82000a,0x2a87000a,0x2a8d000a,0x2a91000a,0x2a98000a,0x2a9c000a,0x2aa0000a,
+0x2aa8000a,0x2aad000a,0x2ab1000a,0x2ab5000a,0x2ab9000a,0x2abe000a,0x2ac3000a,0x2ac8000a,0x2acd000a,0x2ad3000a,0x2ad8000a,0x2add000a,0x2ae4000a,0x2ae7000a,0x2aee000a,0x2af5000a,
+0x2afb000a,0x2b00000a,0x2b07000a,0x2b0e000a,0x2b13000a,0x2b17000a,0x2b1b000a,0x2b21000a,0x2b26000a,0x2b2c000a,0x2b33000a,0x2b37000a,0x2b3b000a,0x2b40000a,0x2b44000a,0x2b48000a,
+0x2b4b000a,0x2b4e000a,0x2b52000a,0x2b56000a,0x2b5d000a,0x2b62000a,0x2b68000a,0x2b6f000a,0x2b74000a,0x2b78000a,0x2b7c000a,0x2b84000a,0x2b89000a,0x2b90000a,0x2b94000a,0x2b9a000a,
+0x2b9e000a,0x2ba3000a,0x2ba7000a,0x2bac000a,0x2bb3000a,0x2bb8000a,0x2bbe000a,0x2bc3000a,0x2bc6000a,0x2bcd000a,0x2bd1000a,0x2bd5000a,0x2bda000a,0x2bde000a,0x2be2000a,0x2be6000a,
+0x2bec000a,0x2bf1000a,0x2bf4000a,0x2bfb000a,0x2c00000a,0x2c06000a,0x2c0b000a,0x2c11000a,0x2c15000a,0x2c19000a,0x2c1e000a,0x2c21000a,0x2c26000a,0x2c2c000a,0x2c2f000a,0x2c36000a,
+0x2c3a000a,0x2c3d000a,0x2c40000a,0x2c43000a,0x2c46000a,0x2c49000a,0x2c4c000a,0x2c4f000a,0x2d62000a,0x2d65000a,0x2d68000a,0x2d6b000a,0x2d6e000a,0x2d71000a,0x2d74000a,0x2d77000a,
+0x2d7a000a,0x2d7d000a,0x2d81000a,0x2d85000a,0x2d89000a,0x2d8d000a,0x2d91000a,0x2d95000a,0x2d99000a,0x2d9d000a,0x2da1000a,0x2da5000a,0x2da9000a,0x2dad000a,0x2db1000a,0x2db5000a,
+0x2db9000a,0x2dbd000a,0x2dc1000a,0x2dc5000a,0x2dc9000a,0x2dcd000a,0x2dd1000a,0x2dd5000a,0x2e36000a,0x2e38000a,0x2e3a000a,0x2e3c000a,0x2e3e000a,0x2e40000a,0x2e42000a,0x2e44000a,
+0x2e46000a,0x2e48000a,0x2e4a000a,0x2e4c000a,0x2e4e000a,0x2e50000a,0x2e52000a,0x2e54000a,0x2e56000a,0x2e58000a,0x2e5a000a,0x2e5c000a,0x2e5e000a,0x2e60000a,0x2e62000a,0x2e64000a,
+0x2e66000a,0x2e68000a,0x2e6a000a,0x2e6c000a,0x2e6e000a,0x2e70000a,0x2e72000a,0x2e74000a,0x2e76000a,0x2e78000a,0x2e7a000a,0x2e7c000a,0x2e7e000a,0x2e80000a,0x2e82000a,0x2e84000a,
+0x2e86000a,0x2e88000a,0x2e8a000a,0x2e8c000a,0x2e8e000a,0x2e90000a,0x2e92000a,0x2e94000a,0x2e96000a,0x2e98000a,0x2e9a000a,0x2e9c000a,0x2e9e000a,0x2ea0000a,0x2ea2000a,0x2ea4000a,
+0x2ea6000a,0x2ea8000a,0x2eaa000a,0x2eac000a,0x2eae000a,0x2eb0000a,0x2eb2000a,0x2eb4000a,0x2eb6000a,0x2eb8000a,0x2eba000a,0x2ebc000a,0x2ebe000a,0x2ec2000a,0x2ec6000a,0x2ec8000a,
+0x2eca000a,0x2ecc000a,0x2ece000a,0x2ed0000a,0x2ed2000a,0x2ed4000a,0x2ed6000a,0x2ed8000a,0x2eda000a,0x2ede000a,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x2ee2000a,
+0x2ee4000a,0x2ee6000a,0x2ee8000a,0x2eea000a,0x2eec000a,0x2eee000a,0x2ef0000a,0x2ef2000a,0x2ef4000a,0x2ef6000a,0x2ef9000a,0x2efb000a,0x2efd000a,0x2eff000a,0x2f01000a,0x2f03000a,
+0x2f05000a,0x2f07000a,0x2f09000a,0x2f0b000a,0x2f0d000a,0x2f0f000a,0x2f11000a,0x2f15000a,0x2f19000a,0x2f1d000a,0x2f21000a,0x2f25000a,0x2f29000a,0x2f2d000a,0x2f31000a,0x2f35000a,
+0x2f39000a,0x2f3d000a,0x2f41000a,0x2f45000a,0x2f49000a,0x2f4d000a,0x2f51000a,0x2f55000a,0x2f59000a,0x2f5b000a,0x2f5d000a,0x2f5f000a,0x2f61000a,0x2f65000a,0x2f69000a,0x2f6d000a,
+0x2f71000a,0x2f75000a,0x2f78000a,0x2f7b000a,0x2f7e000a,0x2f81000a,0x2f84000a,0x2f87000a,0x2f8a000a,0x2f8d000a,0x2f90000a,0x2f93000a,0x2f96000a,0x2f99000a,0x2f9c000a,0x2f9f000a,
+0x2fa2000a,0x2fa5000a,0x2fa8000a,0x2fab000a,0x2fae000a,0x2fb1000a,0x2fb4000a,0x2fb7000a,0x2fba000a,0x2fbd000a,0x2fc0000a,0x2fc3000a,0x2fc6000a,0x2fc9000a,0x2fcc000a,0x2fcf000a,
+0x2fd2000a,0x2fd5000a,0x2fd8000a,0x2fdb000a,0x2fde000a,0x2fe1000a,0x2fe4000a,0x2fe7000a,0x2fea000a,0x2fed000a,0x2ff0000a,0x2ff3000a,0x2ff6000a,0x2ff9000a,0x2ffc000a,0x2fff000a,
+0x3002000a,0x3005000a,0x3008000a,0x300b000a,0x300e000a,0x3011000a,0x3014000a,0x3017000a,0x301a000a,0x301d000a,0x3020000a,0x3023000a,0x3026000a,0x3029000a,0x302c000a,0x302f000a,
+0x3032000a,0x3035000a,0x3038000a,0x303b000a,0x303e000a,0x3041000a,0x3044000a,0x3047000a,0x304a000a,0x304d000a,0x3050000a,0x3053000a,0x3056000a,0x3059000a,0x305c000a,0x305f000a,
+0x3062000a,0x3065000a,0x3068000a,0x306b000a,0x306e000a,0x3071000a,0x3074000a,0x3077000a,0x307b000a,0x307f000a,0x3083000a,0x3088000a,0x308d000a,0x3092000a,0x3097000a,0x309c000a,
+0x30a1000a,0x30a5000a,0x30a9000a,0x30ad000a,0x30b1000a,0x30b5000a,0x30b9000a,0x30bc000a,0x30bf000a,0x30c2000a,0x30c5000a,0x30c8000a,0x30cb000a,0x30ce000a,0x30d1000a,0x30d4000a,
+0x30d7000a,0x30da000a,0x30dd000a,0x30e0000a,0x30e3000a,0x30e6000a,0x30e9000a,0x30ec000a,0x30ef000a,0x30f2000a,0x30f5000a,0x30f8000a,0x30fb000a,0x30fe000a,0x3101000a,0x3104000a,
+0x3107000a,0x310a000a,0x310d000a,0x3110000a,0x3113000a,0x3116000a,0x3119000a,0x311c000a,0x311f000a,0x3122000a,0x3125000a,0x3128000a,0x312b000a,0x312f000a,0x3132000a,0x3135000a,
+0x3138000a,0x313b000a,0x313e000a,0x3141000a,0x3145000a,0x3149000a,0x314d000a,0x3151000a,0x3155000a,0x3158000a,0x315b000a,0x315e000a,0x3161000a,0x3164000a,0x3167000a,0x316a000a,
+0x316d000a,0x3170000a,0x3173000a,0x3176000a,0x3179000a,0x317c000a,0x317f000a,0x3182000a,0x3185000a,0x3188000a,0x318b000a,0x318e000a,0x3191000a,0x3194000a,0x3197000a,0x319a000a,
+0x319d000a,0x31a0000a,0x31a3000a,0x31a6000a,0x31a9000a,0x31ac000a,0x31af000a,0x31b2000a,0x31b5000a,0x31b8000a,0x31bb000a,0x31be000a,0x31c1000a,0x31c4000a,0x31c7000a,0x31ca000a,
+0x31cd000a,0x31d0000a,0x31d3000a,0x31d6000a,0x31d9000a,0x31dc000a,0x31df000a,0x31e2000a,0x31e5000a,0x31e8000a,0x31eb000a,0x31ee000a,0x31f1000a,0x31f4000a,0x31f7000a,0x31fa000a,
+0x31fd000a,0x3200000a,0x3203000a,0x3206000a,0x3209000a,0x320c000a,0x3210000a,0x3213000a,0x3216000a,0x3219000a,0x321c000a,0x321f000a,0x3223000a,0x3227000a,0x322a000a,0x322d000a,
+0x3230000a,0x3233000a,0x3236000a,0x3239000a,0x323c000a,0x323f000a,0x3242000a,0x3245000a,0x3248000a,0x324b000a,0x324e000a,0x3251000a,0x3254000a,0x3257000a,0x325a000a,0x325f000a,
+0x3264000a,0x3269000a,0x326c000a,0x326f000a,0x3272000a,0x3275000a,0x3278000a,0x327b000a,0x327e000a,0x3281000a,0x3284000a,0x3287000a,0x328a000a,0x328d000a,0x3290000a,0x3293000a,
+0x3296000a,0x3299000a,0x329c000a,0x329f000a,0x32a2000a,0x32a5000a,0x32a8000a,0x32ab000a,0x32ae000a,0x32b1000a,0x32b4000a,0x32b7000a,0x32ba000a,0x32bd000a,0x32c0000a,0x32c3000a,
+0x32c6000a,0x32c9000a,0x32cc000a,0x32cf000a,0x32d2000a,0x32d5000a,0x32d8000a,0x32db000a,0x32de000a,0x32e1000a,0x32e4000a,0x32e7000a,0x32ea000a,0x32ed000a,0x32f0000a,0x32f3000a,
+0x32f6000a,0x32f9000a,0x32fc000a,0x32ff000a,0x3302000a,0x3305000a,0x3308000a,0x330b000a,0x330e000a,0x3311000a,0x3314000a,0x3317000a,0x331a000a,0x331d000a,0x3320000a,0x3323000a,
+0x3326000a,0x3329000a,0x332c000a,0x332f000a,0x3332000a,0x3335000a,0x3338000a,0x333b000a,0x333e000a,0x3342000a,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x3346000a,0x334a000a,0x334e000a,0x3352000a,
+0x3356000a,0x335a000a,0x335e000a,0x3362000a,0x3366000a,0x336a000a,0x336e000a,0x3372000a,0x3376000a,0x337a000a,0x337e000a,0x3382000a,0x3386000a,0x338a000a,0x338e000a,0x3392000a,
+0x3396000a,0x339a000a,0x339e000a,0x33a2000a,0x33a6000a,0x33aa000a,0x33ae000a,0x33b2000a,0x33b6000a,0x33ba000a,0x33be000a,0x33c2000a,0x33c6000a,0x33ca000a,0x33ce000a,0x33d2000a,
+0x33d6000a,0x33da000a,0x33de000a,0x33e2000a,0x33e6000a,0x33ea000a,0x33ee000a,0x33f2000a,0x33f6000a,0x33fa000a,0x33fe000a,0x3402000a,0x3406000a,0x340a000a,0x340e000a,0x3412000a,
+0x3416000a,0x341a000a,0x341e000a,0x3422000a,0x3426000a,0x342a000a,0x342e000a,0x3432000a,0x3436000a,0x343a000a,0x343e000a,0x3442000a,0,0,0x3446000a,0x344a000a,
+0x344e000a,0x3452000a,0x3456000a,0x345a000a,0x345e000a,0x3462000a,0x3466000a,0x346a000a,0x346e000a,0x3472000a,0x3476000a,0x347a000a,0x347e000a,0x3482000a,0x3486000a,0x348a000a,
+0x348e000a,0x3492000a,0x3496000a,0x349a000a,0x349e000a,0x34a2000a,0x34a6000a,0x34aa000a,0x34ae000a,0x34b2000a,0x34b6000a,0x34ba000a,0x34be000a,0x34c2000a,0x34c6000a,0x34ca000a,
+0x34ce000a,0x34d2000a,0x34d6000a,0x34da000a,0x34de000a,0x34e2000a,0x34e6000a,0x34ea000a,0x34ee000a,0x34f2000a,0x34f6000a,0x34fa000a,0x34fe000a,0x3502000a,0x3506000a,0x350a000a,
+0x350e000a,0x3512000a,0x3516000a,0x351a000a,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x351e000a,0x3522000a,0x3526000a,0x352b000a,
+0x3530000a,0x3535000a,0x353a000a,0x353f000a,0x3544000a,0x3549000a,0x354d000a,0x3560000a,0x3569000a,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x356e000a,0x3570000a,0x3572000a,0x3574000a,
+0x3576000a,0x3578000a,0x357a000a,0x357c000a,0x357e000a,0x3580000a,0,0,0,0,0,0,0xe600,0xe600,0xe600,0xe600,
+0,0,0,0,0,0,0,0,0,0,0,0,0x3584000a,0x3587000a,0x3589000a,0x358b000a,
+0x358d000a,0x358f000a,0x3591000a,0x3593000a,0x3595000a,0x3597000a,0x3599000a,0x359b000a,0x359d000a,0x359f000a,0x35a1000a,0x35a3000a,0x35a5000a,0x35a7000a,0x35a9000a,0x35ab000a,
+0x35ad000a,0,0,0x35af000a,0x35b1000a,0x35b3000a,0x35b7000a,0x35bb000a,0x35bf000a,0x35c3000a,0x35c5000a,0x35c7000a,0x35c9000a,0x35cb000a,0x35cd000a,0,
+0x35cf000a,0x35d1000a,0x35d3000a,0x35d5000a,0x35d7000a,0x35d9000a,0x35db000a,0x35dd000a,0x35df000a,0x35e1000a,0x35e3000a,0x35e5000a,0x35e7000a,0x35e9000a,0x35eb000a,0x35ed000a,
+0x35ef000a,0x35f1000a,0x35f3000a,0,0x35f5000a,0x35f7000a,0x35f9000a,0x35fb000a,0,0,0,0,0x35fd000a,0x3601000a,0x3605000a,0,
+0x3609000a,0,0x360d000a,0x3611000a,0x3615000a,0x3619000a,0x361d000a,0x3621000a,0x3625000a,0x3629000a,0x362d000a,0x3631000a,0x3635000a,0x3637000a,0x363b000a,0x363f000a,
+0x3643000a,0x3647000a,0x364b000a,0x364f000a,0x3653000a,0x3657000a,0x365b000a,0x365f000a,0x3663000a,0x3667000a,0x3669000a,0x366b000a,0x366d000a,0x366f000a,0x3671000a,0x3673000a,
+0x3675000a,0x3677000a,0x3679000a,0x367b000a,0x367d000a,0x367f000a,0x3681000a,0x3683000a,0x3685000a,0x3687000a,0x3689000a,0x368b000a,0x368d000a,0x368f000a,0x3691000a,0x3693000a,
+0x3695000a,0x3697000a,0x3699000a,0x369b000a,0x369d000a,0x369f000a,0x36a1000a,0x36a3000a,0x36a5000a,0x36a7000a,0x36a9000a,0x36ab000a,0x36ad000a,0x36af000a,0x36b1000a,0x36b3000a,
+0x36b5000a,0x36b7000a,0x36b9000a,0x36bb000a,0x36bd000a,0x36bf000a,0x36c1000a,0x36c3000a,0x36c5000a,0x36c7000a,0x36c9000a,0x36cb000a,0x36cd000a,0x36cf000a,0x36d1000a,0x36d3000a,
+0x36d5000a,0x36d7000a,0x36d9000a,0x36db000a,0x36dd000a,0x36df000a,0x36e1000a,0x36e3000a,0x36e5000a,0x36e7000a,0x36e9000a,0x36eb000a,0x36ed000a,0x36ef000a,0x36f1000a,0x36f3000a,
+0x36f5000a,0x36f7000a,0x36f9000a,0x36fb000a,0x36fd000a,0x36ff000a,0x3701000a,0x3703000a,0x3705000a,0x3707000a,0x3709000a,0x370b000a,0x370d000a,0x370f000a,0x3711000a,0x3713000a,
+0x3715000a,0x3717000a,0x3719000a,0x371b000a,0x371d000a,0x371f000a,0x3721000a,0x3723000a,0x3725000a,0x3727000a,0x3729000a,0x372b000a,0x372d000a,0x372f000a,0x3731000a,0x3733000a,
+0x3735000a,0x3737000a,0x373c000a,0x3741000a,0x3746000a,0x374b000a,0x3750000a,0x3755000a,0x3758000a,0,0,0,0,0x375b000a,0x375d000a,0x375f000a,
+0x3761000a,0x3763000a,0x3765000a,0x3767000a,0x3769000a,0x376b000a,0x376d000a,0x376f000a,0x3771000a,0x3773000a,0x3775000a,0x3777000a,0x3779000a,0x377b000a,0x377d000a,0x377f000a,
+0x3781000a,0x3783000a,0x3785000a,0x3787000a,0x3789000a,0x378b000a,0x378d000a,0x378f000a,0x3791000a,0x3793000a,0x3795000a,0x3797000a,0x3799000a,0x379b000a,0x379d000a,0x379f000a,
+0x37a1000a,0x37a3000a,0x37a5000a,0x37a7000a,0x37a9000a,0x37ab000a,0x37ad000a,0x37af000a,0x37b1000a,0x37b3000a,0x37b5000a,0x37b7000a,0x37b9000a,0x37bb000a,0x37bd000a,0x37bf000a,
+0x37c1000a,0x37c3000a,0x37c5000a,0x37c7000a,0x37c9000a,0x37cb000a,0x37cd000a,0x37cf000a,0x37d1000a,0x37d3000a,0x37d5000a,0x37d7000a,0x37d9000a,0x37db000a,0x37dd000a,0x37df000a,
+0x37e1000a,0x37e3000a,0x37e5000a,0x37e7000a,0x37e9000a,0x37eb000a,0x37ed000a,0x37ef000a,0x37f1000a,0x37f3000a,0x37f5000a,0x37f7000a,0x37f9000a,0x37fb000a,0x37fd000a,0x37ff000a,
+0x3801000a,0x3803000a,0x3805000a,0x3807000a,0x3809000a,0x380b000a,0x380d000a,0x380f000a,0x3811000a,0x3813000a,0x3815000a,0x3817000a,0x3819000a,0x381b000a,0x381d000a,0x381f000a,
+0x3821000a,0x3823000a,0x3825000a,0x3827000a,0x3829000a,0x382b000a,0x382d000a,0x382f000a,0x3831000a,0x3833000a,0x3835000a,0x3837000a,0x3839000a,0x383b000a,0x383d000a,0x383f000a,
+0x3841000a,0x3843000a,0x3845000a,0x3847000a,0x3849000a,0x384b000a,0x384d000a,0x384f000a,0x3851000a,0x3853000a,0x3855000a,0x3857000a,0x3859000a,0x385b000a,0x385d000a,0x385f000a,
+0x3861000a,0x3863000a,0x3865000a,0x3867000a,0x3869000a,0x386b000a,0x386d000a,0x386f000a,0x3871000a,0x3873000a,0x3875000a,0x3877000a,0x3879000a,0x387b000a,0x387d000a,0x387f000a,
+0x3881000a,0x3883000a,0x3885000a,0x3887000a,0x3889000a,0x388b000a,0x388d000a,0x388f000a,0x3891000a,0x3893000a,0x3895000a,0x3898000a,0x389b000a,0x389d000a,0x389f000a,0x38a1000a,
+0x38a3000a,0x38a5000a,0x38a7000a,0x38a9000a,0x38ab000a,0x38ad000a,0x38af000a,0x38b1000a,0x38b3000a,0x38b5000a,0x38b7000a,0x38b9000a,0x38bb000a,0x38bd000a,0x38bf000a,0x38c1000a,
+0x38c3000a,0x38c5000a,0x38c7000a,0x38c9000a,0x38cb000a,0x38cd000a,0x38cf000a,0x38d1000a,0x38d3000a,0x38d5000a,0x38d7000a,0,0,0,0x38d9000a,0x38db000a,
+0x38dd000a,0x38df000a,0x38e1000a,0x38e3000a,0,0,0x38e5000a,0x38e7000a,0x38e9000a,0x38eb000a,0x38ed000a,0x38ef000a,0,0,0x38f1000a,0x38f3000a,
+0x38f5000a,0x38f7000a,0x38f9000a,0x38fb000a,0,0,0x38fd000a,0x38ff000a,0x3901000a,0,0,0,0x3903000a,0x3905000a,0x3907000a,0x3909000a,
+0x390d000a,0x390f000a,0x3911000a,0,0x3913000a,0x3915000a,0x3917000a,0x3919000a,0x391b000a,0x391d000a,0x391f000a,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x3d27000a,0x3d29000a,0x3d2b000a,0x3d2d000a,
+0x3d2f000a,0x3d31000a,0x3d33000a,0x3d35000a,0x3d37000a,0x3d39000a,0x3d3b000a,0x3d3d000a,0x3d3f000a,0x3d41000a,0x3d43000a,0x3d45000a,0x3d47000a,0x3d49000a,0x3d4b000a,0x3d4d000a,
+0x3d4f000a,0x3d51000a,0x3d53000a,0x3d55000a,0x3d57000a,0x3d59000a,0x3d5b000a,0x3d5d000a,0x3d5f000a,0x3d61000a,0x3d63000a,0x3d65000a,0,0x3d680040,0x3de20040,0x3d690040,
+0x3d780040,0x3d6a0040,0x3de40040,0x3d7a0040,0x3d7c0040,0x3d6b0040,0x3d7e0040,0x3d800040,0x3d820040,0x3de60040,0x3d6c0040,0x3d6d0040,0x3de80040,0,0x3d840040,0x3d860040,
+0x3d880040,0x3d6e0040,0x3dea0040,0x3d8a0040,0x3dec0040,0x3d6f0040,0x3d8c0040,0,0,0,0,0,0,0x3d700040,0x3de30040,0x3d710040,
+0x3d790040,0x3d720040,0x3de50040,0x3d7b0040,0x3d7d0040,0x3d730040,0x3d7f0040,0x3d810040,0x3d830040,0x3de70040,0x3d740040,0x3d750040,0x3de90040,0,0x3d850040,0x3d870040,
+0x3d890040,0x3d760040,0x3deb0040,0x3d8b0040,0x3ded0040,0x3d770040,0x3d8d0040,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x3d910040,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0xe600,0xe600,0xe600,0xe600,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0xe600,0xe600,0xdc00,0xdc00,0xdc00,0xdc00,0xdc00,0xdc00,
0xe600,0xe600,0xdc00,0xe600,0xe600,0xde00,0xe400,0xe600,0xa00,0xb00,0xc00,0xd00,0xe00,0xf00,0x1000,0x1100,
-0x1200,0x1300,0,0x1400,0x1500,0x1600,0,0x1700,0,0x1800,0x1900,0,0xe600,0xdc00,0,0x1200,
+0x1200,0x1300,0x1300,0x1400,0x1500,0x1600,0,0x1700,0,0x1800,0x1900,0,0xe600,0xdc00,0,0x1200,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0,0,
0,0,0,0,0,0,0,0,0xe600,0xe600,0xe600,0xdc00,0xe600,0,0,0xe600,
@@ -683,11 +688,13 @@ static const uint32_t normTrie_data32[9064]={
0,0,0,0,0,0,0,0,0,0,0,0,0xe600,0xdc00,0xe600,0xe600,
0xdc00,0xe600,0xe600,0xdc00,0xdc00,0xdc00,0xe600,0xdc00,0xdc00,0xe600,0xdc00,0xe600,0xe600,0xe600,0xdc00,0xe600,
0xdc00,0xe600,0xdc00,0xe600,0xdc00,0xe600,0xe600,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe600,
+0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xdc00,0xe600,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0x700,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x900,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x700,0,0,0x3da90040,0,0,0,0,0,0,0,0,
+0,0,0,0,0x700,0,0,0x3dd10040,0,0,0,0,0,0,0,0,
0x6b00,0x6b00,0x6b00,0x6b00,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0xdc00,0,0xdc00,0,0xd800,0,0,
0,0,0,0,0,0,0xdc00,0,0,0,0,0,0,0,0,0,
@@ -700,31 +707,35 @@ static const uint32_t normTrie_data32[9064]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0xde00,0xe600,0xdc00,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe600,
-0xdc00,0,0,0,0,0,0,0,0xe600,0xe600,0xdc00,0xe600,0,0,0,0,
+0xdc00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe600,
+0xdc00,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0,0,0,0,0,0,0,0,
+0,0,0,0,0xe600,0xe600,0xdc00,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xe600,0xdc00,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe600,0xdc00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xe600,0xe600,0x100,0x100,0xe600,0xe600,0xe600,0xe600,
-0x100,0x100,0x100,0xe600,0xe600,0,0,0,0,0xe600,0,0,0,0x100,0x100,0xe600,
-0xdc00,0xe600,0x100,0x100,0,0,0,0,0,0,0,0,0,0,0,0,
+0xe600,0xe600,0x100,0x100,0xe600,0xe600,0xe600,0xe600,0x100,0x100,0x100,0xe600,0xe600,0,0,0,
+0,0xe600,0,0,0,0x100,0x100,0xe600,0xdc00,0xe600,0x100,0x100,0xdc00,0xdc00,0xdc00,0xdc00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x3dcf0040,0x3dcc0040,0x3dd00040,0,0,0,0,0,0,0,0x900,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x3e020040,0x3dff0040,0x3e030040,0,
+0,0,0,0,0,0,0x900,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xdc00,0,0xe600,0,0,0,0,0,0,0,0,
+0,0xdc00,0,0xe600,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe600,0x100,0xdc00,0,
+0,0,0,0x900,0xdc00,0xdc00,0xdc00,0,0,0xe600,0xe600,0xe600,0xe600,0xe600,0xdc00,0xdc00,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xe600,0x100,0xdc00,0,0,0,0,0x900,0xdc00,0xdc00,0xdc00,0,0,0xe600,0xe600,0xe600,
-0xe600,0xe600,0xdc00,0xdc00,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xe600,0xe600,0xe600,0,0,0,
+0,0,0,0,0,0,0xe600,0xe600,0xe600,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,
-0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,
+0,0,0,0,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,
+0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0xfff10040,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,
0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,
-0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0,0,0,0,0,0,0,0,
+0xfff0000c,0xfff0000c,0xfff0000c,0xfff0000c,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xfc01ff00,0,0,0,0,0,0,0,0,0,
+0,0,0xfc01ff00,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xfc02ff0f,0xfc03000a,0,0,0,0,0,0,0,0,0,0,
+0xfc02ff0f,0xfc03000a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xfc04000f,0
+0,0,0xfc04000f,0
};
static const UTrie normTrie={
@@ -732,13 +743,13 @@ static const UTrie normTrie={
normTrie_data32,
getFoldingNormOffset,
2208,
- 9064,
+ 9236,
0,
FALSE
};
-static const uint16_t extraData[15896]={
-0x139,0xff02,0x20,0x3b9,0xff01,0x3c5,0xff01,0x3cd,0xff01,0x3cb,0xff01,0x3c3,0xff01,0x61,0xff01,0xe6,
+static const uint16_t extraData[15947]={
+0x13b,0xff02,0x20,0x3b9,0xff01,0x3c5,0xff01,0x3cd,0xff01,0x3cb,0xff01,0x3c3,0xff01,0x61,0xff01,0xe6,
0xff01,0x62,0xff01,0x64,0xff01,0x65,0xff01,0x1dd,0xff01,0x67,0xff01,0x68,0xff01,0x69,0xff01,0x6a,
0xff01,0x6b,0xff01,0x6c,0xff01,0x6d,0xff01,0x6e,0xff01,0x6f,0xff01,0x223,0xff01,0x70,0xff01,0x72,
0xff01,0x74,0xff01,0x75,0xff01,0x77,0xff02,0x72,0x73,0xff01,0x63,0xff02,0xb0,0x63,0xff01,0x25b,
@@ -757,1133 +768,1138 @@ static const uint16_t extraData[15896]={
0x70,0x68,0xff03,0x70,0x70,0x6d,0xff02,0x70,0x72,0xff02,0x73,0x76,0xff02,0x77,0x62,0xff03,
0x76,0x2215,0x6d,0xff03,0x61,0x2215,0x6d,0xff01,0x3b1,0xff01,0x3b2,0xff01,0x3b4,0xff01,0x3b5,0xff01,
0x3b6,0xff01,0x3b7,0xff01,0x3b8,0xff01,0x3ba,0xff01,0x3bb,0xff01,0x3bd,0xff01,0x3be,0xff01,0x3bf,0xff01,
-0x3c1,0xff01,0x3c4,0xff01,0x3c6,0xff01,0x3c7,0xff01,0x3c8,0x8200,0xf0,0x20,0x345,0x3b2,0x100,0x3a5,
-0x8282,0xe6,0x3d2,0x301,0xe6,0x3a5,0x301,0x8282,0xe6,0x3d2,0x308,0xe6,0x3a5,0x308,0x100,0x3c2,
-0x100,0x3a3,0x100,0x41,0x100,0xc6,0x100,0x42,0x100,0x44,0x100,0x45,0x100,0x18e,0x100,0x47,
-0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,
-0x100,0x222,0x100,0x50,0x100,0x52,0x100,0x54,0x100,0x55,0x100,0x57,0x200,0x52,0x73,0x100,
-0x43,0x200,0xb0,0x43,0x100,0x190,0x200,0xb0,0x46,0x100,0x48,0x100,0x48,0x100,0x48,0x100,
-0x49,0x100,0x49,0x100,0x4c,0x100,0x4e,0x200,0x4e,0x6f,0x100,0x50,0x100,0x51,0x100,0x52,
-0x100,0x52,0x100,0x52,0x200,0x53,0x4d,0x300,0x54,0x45,0x4c,0x200,0x54,0x4d,0x100,0x5a,
-0x100,0x5a,0x100,0x42,0x100,0x43,0x100,0x45,0x100,0x46,0x100,0x4d,0x300,0x46,0x41,0x58,
-0x100,0x393,0x100,0x3a0,0x100,0x44,0x300,0x50,0x54,0x45,0x200,0x48,0x67,0x200,0x65,0x56,
-0x300,0x4c,0x54,0x44,0x300,0x68,0x50,0x61,0x200,0x41,0x55,0x200,0x6f,0x56,0x200,0x49,
-0x55,0x200,0x70,0x41,0x200,0x6e,0x41,0x200,0x3bc,0x41,0x200,0x6d,0x41,0x200,0x6b,0x41,
-0x200,0x4b,0x42,0x200,0x4d,0x42,0x200,0x47,0x42,0x200,0x70,0x46,0x200,0x6e,0x46,0x200,
-0x3bc,0x46,0x200,0x48,0x7a,0x300,0x6b,0x48,0x7a,0x300,0x4d,0x48,0x7a,0x300,0x47,0x48,
-0x7a,0x300,0x54,0x48,0x7a,0x200,0x50,0x61,0x300,0x6b,0x50,0x61,0x300,0x4d,0x50,0x61,
-0x300,0x47,0x50,0x61,0x200,0x70,0x56,0x200,0x6e,0x56,0x200,0x3bc,0x56,0x200,0x6d,0x56,
-0x200,0x6b,0x56,0x200,0x4d,0x56,0x200,0x70,0x57,0x200,0x6e,0x57,0x200,0x3bc,0x57,0x200,
-0x6d,0x57,0x200,0x6b,0x57,0x200,0x4d,0x57,0x200,0x6b,0x3a9,0x200,0x4d,0x3a9,0x200,0x42,
-0x71,0x400,0x43,0x2215,0x6b,0x67,0x300,0x43,0x6f,0x2e,0x200,0x64,0x42,0x200,0x47,0x79,
-0x200,0x48,0x50,0x200,0x4b,0x4b,0x200,0x4b,0x4d,0x200,0x50,0x48,0x300,0x50,0x50,0x4d,
-0x200,0x50,0x52,0x200,0x53,0x76,0x200,0x57,0x62,0x300,0x56,0x2215,0x6d,0x300,0x41,0x2215,
-0x6d,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,
-0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,
-0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,
-0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,
-0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,
-0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,
-0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,
-0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,
-0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,
-0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,
-0x43,0x100,0x44,0x100,0x47,0x100,0x4a,0x100,0x4b,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,
-0x51,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,
-0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,
-0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,
-0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,
-0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x44,0x100,0x45,0x100,0x46,0x100,
-0x47,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,
-0x51,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,
-0x41,0x100,0x42,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x49,0x100,0x4a,0x100,
-0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4f,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,
-0x57,0x100,0x58,0x100,0x59,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,
-0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,
-0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,
-0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,
-0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,
-0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,
-0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,
-0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,
-0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,
-0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,
-0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,
-0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,
-0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,
-0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,
-0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,
-0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,
-0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,
-0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,
-0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,
-0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x391,0x100,
-0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,
-0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,
-0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,
-0x3c2,0x100,0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,
-0x398,0x100,0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,
-0x3a0,0x100,0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,
-0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,
-0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,
-0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,
-0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,0x391,0x100,0x392,0x100,0x393,0x100,
-0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,0x39a,0x100,0x39b,0x100,
-0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,0x398,0x100,0x3a3,0x100,
-0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,0x391,0x100,
-0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,
-0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,
-0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,
-0x3c2,0x81,0xe6e6,0x300,0x81,0xe6e6,0x301,0x81,0xe6e6,0x313,0x82,0xe6e6,0x308,0x301,1,0x2b9,
-1,0x3b,1,0xb7,0x82,7,0x915,0x93c,0x82,7,0x916,0x93c,0x82,7,0x917,0x93c,
-0x82,7,0x91c,0x93c,0x82,7,0x921,0x93c,0x82,7,0x922,0x93c,0x82,7,0x92b,0x93c,
-0x82,7,0x92f,0x93c,0x82,7,0x9a1,0x9bc,0x82,7,0x9a2,0x9bc,0x82,7,0x9af,0x9bc,
-0x82,7,0xa32,0xa3c,0x82,7,0xa38,0xa3c,0x82,7,0xa16,0xa3c,0x82,7,0xa17,0xa3c,
-0x82,7,0xa1c,0xa3c,0x82,7,0xa2b,0xa3c,0x82,7,0xb21,0xb3c,0x82,7,0xb22,0xb3c,
-2,0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7,2,0xf5b,0xfb7,2,
-0xf40,0xfb5,0x82,0x8182,0xf71,0xf72,0x82,0x8184,0xf71,0xf74,0x82,0x82,0xfb2,0xf80,0x82,0x82,
-0xfb3,0xf80,0x82,0x8182,0xf71,0xf80,2,0xf92,0xfb7,2,0xf9c,0xfb7,2,0xfa1,0xfb7,2,
-0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,0x82,0xe6,0x3b1,0x301,0x82,0xe6,0x3b5,0x301,
-0x82,0xe6,0x3b7,0x301,0x82,0xe6,0x3b9,0x301,0x82,0xe6,0x3bf,0x301,0x82,0xe6,0x3c5,0x301,
-0x82,0xe6,0x3c9,0x301,0x82,0xe6,0x391,0x301,1,0x3b9,0x82,0xe6,0x395,0x301,0x82,0xe6,
-0x397,0x301,0x83,0xe6,0x3b9,0x308,0x301,0x82,0xe6,0x399,0x301,0x83,0xe6,0x3c5,0x308,0x301,
-0x82,0xe6,0x3a5,0x301,0x8382,0xe6,0xa8,0x301,0xe6,0x20,0x308,0x301,1,0x60,0x82,0xe6,
-0x39f,0x301,0x82,0xe6,0x3a9,0x301,0x8201,0xb4,0xe6,0x20,0x301,0x101,0x2002,0x20,0x101,0x2003,
-0x20,1,0x3a9,1,0x4b,0x82,0xe6,0x41,0x30a,1,0x3008,1,0x3009,0x82,1,0x2add,
-0x338,1,0x8c48,1,0x66f4,1,0x8eca,1,0x8cc8,1,0x6ed1,1,0x4e32,1,0x53e5,1,
-0x9f9c,1,0x9f9c,1,0x5951,1,0x91d1,1,0x5587,1,0x5948,1,0x61f6,1,0x7669,1,
-0x7f85,1,0x863f,1,0x87ba,1,0x88f8,1,0x908f,1,0x6a02,1,0x6d1b,1,0x70d9,1,
-0x73de,1,0x843d,1,0x916a,1,0x99f1,1,0x4e82,1,0x5375,1,0x6b04,1,0x721b,1,
-0x862d,1,0x9e1e,1,0x5d50,1,0x6feb,1,0x85cd,1,0x8964,1,0x62c9,1,0x81d8,1,
-0x881f,1,0x5eca,1,0x6717,1,0x6d6a,1,0x72fc,1,0x90ce,1,0x4f86,1,0x51b7,1,
-0x52de,1,0x64c4,1,0x6ad3,1,0x7210,1,0x76e7,1,0x8001,1,0x8606,1,0x865c,1,
-0x8def,1,0x9732,1,0x9b6f,1,0x9dfa,1,0x788c,1,0x797f,1,0x7da0,1,0x83c9,1,
-0x9304,1,0x9e7f,1,0x8ad6,1,0x58df,1,0x5f04,1,0x7c60,1,0x807e,1,0x7262,1,
-0x78ca,1,0x8cc2,1,0x96f7,1,0x58d8,1,0x5c62,1,0x6a13,1,0x6dda,1,0x6f0f,1,
-0x7d2f,1,0x7e37,1,0x964b,1,0x52d2,1,0x808b,1,0x51dc,1,0x51cc,1,0x7a1c,1,
-0x7dbe,1,0x83f1,1,0x9675,1,0x8b80,1,0x62cf,1,0x6a02,1,0x8afe,1,0x4e39,1,
-0x5be7,1,0x6012,1,0x7387,1,0x7570,1,0x5317,1,0x78fb,1,0x4fbf,1,0x5fa9,1,
-0x4e0d,1,0x6ccc,1,0x6578,1,0x7d22,1,0x53c3,1,0x585e,1,0x7701,1,0x8449,1,
-0x8aaa,1,0x6bba,1,0x8fb0,1,0x6c88,1,0x62fe,1,0x82e5,1,0x63a0,1,0x7565,1,
-0x4eae,1,0x5169,1,0x51c9,1,0x6881,1,0x7ce7,1,0x826f,1,0x8ad2,1,0x91cf,1,
-0x52f5,1,0x5442,1,0x5973,1,0x5eec,1,0x65c5,1,0x6ffe,1,0x792a,1,0x95ad,1,
-0x9a6a,1,0x9e97,1,0x9ece,1,0x529b,1,0x66c6,1,0x6b77,1,0x8f62,1,0x5e74,1,
-0x6190,1,0x6200,1,0x649a,1,0x6f23,1,0x7149,1,0x7489,1,0x79ca,1,0x7df4,1,
-0x806f,1,0x8f26,1,0x84ee,1,0x9023,1,0x934a,1,0x5217,1,0x52a3,1,0x54bd,1,
-0x70c8,1,0x88c2,1,0x8aaa,1,0x5ec9,1,0x5ff5,1,0x637b,1,0x6bae,1,0x7c3e,1,
-0x7375,1,0x4ee4,1,0x56f9,1,0x5be7,1,0x5dba,1,0x601c,1,0x73b2,1,0x7469,1,
-0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1,0x9818,1,0x4f8b,1,0x79ae,1,
-0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1,0x5bee,1,0x5c3f,1,0x6599,1,
-0x6a02,1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1,0x6688,1,0x962e,1,
-0x5289,1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1,0x7559,1,0x786b,1,
-0x7d10,1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1,0x5d19,1,0x6dea,1,
-0x8f2a,1,0x5f8b,1,0x6144,1,0x6817,1,0x7387,1,0x9686,1,0x5229,1,0x540f,1,
-0x5c65,1,0x6613,1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,0x75e2,1,0x7f79,1,
-0x88cf,1,0x88e1,1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,0x541d,1,0x71d0,1,
-0x7498,1,0x85fa,1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,0x6dcb,1,0x81e8,1,
-0x7acb,1,0x7b20,1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,0x4ec0,1,0x8336,1,
-0x523a,1,0x5207,1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,0x6d1e,1,0x66b4,1,
-0x8f3b,1,0x884c,1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,0x55c0,1,0x585a,1,
-0x6674,1,0x51de,1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,0x7965,1,0x798f,1,
-0x9756,1,0x7cbe,1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,0x90fd,1,0x98ef,1,
-0x98fc,1,0x9928,1,0x9db4,1,0x4fae,1,0x50e7,1,0x514d,1,0x52c9,1,0x52e4,1,
-0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1,0x58a8,1,0x5c64,1,0x5c6e,1,
-0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1,0x65e2,1,0x6691,1,0x6885,1,
-0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1,0x7422,1,0x7891,1,0x793e,1,
-0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1,0x798d,1,0x798e,1,0x7a40,1,
-0x7a81,1,0x7bc0,1,0x7df4,1,0x7e09,1,0x7e41,1,0x7f72,1,0x8005,1,0x81ed,1,
-0x8279,1,0x8279,1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,0x8b39,1,0x8cd3,1,
-0x8d08,1,0x8fb6,1,0x9038,1,0x96e3,1,0x97ff,1,0x983b,1,0x4e26,1,0x51b5,1,
-0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7,1,0x52fa,1,0x559d,1,0x5555,1,
-0x5599,1,0x55e2,1,0x585a,1,0x58b3,1,0x5944,1,0x5954,1,0x5a62,1,0x5b28,1,
-0x5ed2,1,0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,0x6108,1,0x618e,1,
-0x6160,1,0x61f2,1,0x6234,1,0x63c4,1,0x641c,1,0x6452,1,0x6556,1,0x6674,1,
-0x6717,1,0x671b,1,0x6756,1,0x6b79,1,0x6bba,1,0x6d41,1,0x6edb,1,0x6ecb,1,
-0x6f22,1,0x701e,1,0x716e,1,0x77a7,1,0x7235,1,0x72af,1,0x732a,1,0x7471,1,
-0x7506,1,0x753b,1,0x761d,1,0x761f,1,0x76ca,1,0x76db,1,0x76f4,1,0x774a,1,
-0x7740,1,0x78cc,1,0x7ab1,1,0x7bc0,1,0x7c7b,1,0x7d5b,1,0x7df4,1,0x7f3e,1,
-0x8005,1,0x8352,1,0x83ef,1,0x8779,1,0x8941,1,0x8986,1,0x8996,1,0x8abf,1,
-0x8af8,1,0x8acb,1,0x8b01,1,0x8afe,1,0x8aed,1,0x8b39,1,0x8b8a,1,0x8d08,1,
-0x8f38,1,0x9072,1,0x9199,1,0x9276,1,0x967c,1,0x96e3,1,0x9756,1,0x97db,1,
-0x97ff,1,0x980b,1,0x983b,1,0x9b12,1,0x9f9c,2,0xd84a,0xdc4a,2,0xd84a,0xdc44,2,
-0xd84c,0xdfd5,1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,0xd857,0xdcd0,2,0xd85f,
-0xded3,1,0x9f43,1,0x9f8e,0x82,0xe,0x5d9,0x5b4,0x82,0x11,0x5f2,0x5b7,0x82,0x18,0x5e9,
-0x5c1,0x82,0x19,0x5e9,0x5c2,0x83,0x18,0x5e9,0x5bc,0x5c1,0x83,0x19,0x5e9,0x5bc,0x5c2,0x82,
-0x11,0x5d0,0x5b7,0x82,0x12,0x5d0,0x5b8,0x82,0x15,0x5d0,0x5bc,0x82,0x15,0x5d1,0x5bc,0x82,
-0x15,0x5d2,0x5bc,0x82,0x15,0x5d3,0x5bc,0x82,0x15,0x5d4,0x5bc,0x82,0x15,0x5d5,0x5bc,0x82,
-0x15,0x5d6,0x5bc,0x82,0x15,0x5d8,0x5bc,0x82,0x15,0x5d9,0x5bc,0x82,0x15,0x5da,0x5bc,0x82,
-0x15,0x5db,0x5bc,0x82,0x15,0x5dc,0x5bc,0x82,0x15,0x5de,0x5bc,0x82,0x15,0x5e0,0x5bc,0x82,
-0x15,0x5e1,0x5bc,0x82,0x15,0x5e3,0x5bc,0x82,0x15,0x5e4,0x5bc,0x82,0x15,0x5e6,0x5bc,0x82,
-0x15,0x5e7,0x5bc,0x82,0x15,0x5e8,0x5bc,0x82,0x15,0x5e9,0x5bc,0x82,0x15,0x5ea,0x5bc,0x82,
-0x13,0x5d5,0x5b9,0x82,0x17,0x5d1,0x5bf,0x82,0x17,0x5db,0x5bf,0x82,0x17,0x5e4,0x5bf,0x84,
-0xd8,0xd834,0xdd57,0xd834,0xdd65,0x84,0xd8,0xd834,0xdd58,0xd834,0xdd65,0x86,0xd8,0xd834,0xdd58,0xd834,
-0xdd65,0xd834,0xdd6e,0x86,0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6f,0x86,0xd8,0xd834,0xdd58,0xd834,
-0xdd65,0xd834,0xdd70,0x86,0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0x86,0xd8,0xd834,0xdd58,0xd834,
-0xdd65,0xd834,0xdd72,0x84,0xd8,0xd834,0xddb9,0xd834,0xdd65,0x84,0xd8,0xd834,0xddba,0xd834,0xdd65,0x86,
-0xd8,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0x86,0xd8,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6e,0x86,
-0xd8,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6f,0x86,0xd8,0xd834,0xddba,0xd834,0xdd65,0xd834,0xdd6f,1,
-0x4e3d,1,0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fae,1,0x4fbb,1,0x5002,
-1,0x507a,1,0x5099,1,0x50e7,1,0x50cf,1,0x349e,2,0xd841,0xde3a,1,0x514d,1,
-0x5154,1,0x5164,1,0x5177,2,0xd841,0xdd1c,1,0x34b9,1,0x5167,1,0x518d,2,0xd841,
-0xdd4b,1,0x5197,1,0x51a4,1,0x4ecc,1,0x51ac,1,0x51b5,2,0xd864,0xdddf,1,0x51f5,
-1,0x5203,1,0x34df,1,0x523b,1,0x5246,1,0x5272,1,0x5277,1,0x3515,1,0x52c7,
-1,0x52c9,1,0x52e4,1,0x52fa,1,0x5305,1,0x5306,1,0x5317,1,0x5349,1,0x5351,
-1,0x535a,1,0x5373,1,0x537d,1,0x537f,1,0x537f,1,0x537f,2,0xd842,0xde2c,1,
-0x7070,1,0x53ca,1,0x53df,2,0xd842,0xdf63,1,0x53eb,1,0x53f1,1,0x5406,1,0x549e,
-1,0x5438,1,0x5448,1,0x5468,1,0x54a2,1,0x54f6,1,0x5510,1,0x5553,1,0x5563,
-1,0x5584,1,0x5584,1,0x5599,1,0x55ab,1,0x55b3,1,0x55c2,1,0x5716,1,0x5606,
-1,0x5717,1,0x5651,1,0x5674,1,0x5207,1,0x58ee,1,0x57ce,1,0x57f4,1,0x580d,
-1,0x578b,1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,0x58f2,1,0x58f7,1,
-0x5906,1,0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,0xdeea,1,0x59ec,1,
-0x5a1b,1,0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,0x5b08,1,0x5b3e,1,
-0x5b3e,2,0xd846,0xddc8,1,0x5bc3,1,0x5bd8,1,0x5be7,1,0x5bf3,2,0xd846,0xdf18,1,
-0x5bff,1,0x5c06,1,0x5f53,1,0x5c22,1,0x3781,1,0x5c60,1,0x5c6e,1,0x5cc0,1,
-0x5c8d,2,0xd847,0xdde4,1,0x5d43,2,0xd847,0xdde6,1,0x5d6e,1,0x5d6b,1,0x5d7c,1,
-0x5de1,1,0x5de2,1,0x382f,1,0x5dfd,1,0x5e28,1,0x5e3d,1,0x5e69,1,0x3862,2,
-0xd848,0xdd83,1,0x387c,1,0x5eb0,1,0x5eb3,1,0x5eb6,1,0x5eca,2,0xd868,0xdf92,1,
-0x5efe,2,0xd848,0xdf31,2,0xd848,0xdf31,1,0x8201,1,0x5f22,1,0x5f22,1,0x38c7,2,
-0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1,0x38e3,1,0x5f9a,1,0x5fcd,1,
-0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,1,0x6094,2,0xd849,0xded4,1,0x60c7,
-1,0x6148,1,0x614c,1,0x614e,1,0x614c,1,0x617a,1,0x618e,1,0x61b2,1,0x61a4,
-1,0x61af,1,0x61de,1,0x61f2,1,0x61f6,1,0x6210,1,0x621b,1,0x625d,1,0x62b1,
-1,0x62d4,1,0x6350,2,0xd84a,0xdf0c,1,0x633d,1,0x62fc,1,0x6368,1,0x6383,1,
-0x63e4,2,0xd84a,0xdff1,1,0x6422,1,0x63c5,1,0x63a9,1,0x3a2e,1,0x6469,1,0x647e,
-1,0x649d,1,0x6477,1,0x3a6c,1,0x654f,1,0x656c,2,0xd84c,0xdc0a,1,0x65e3,1,
-0x66f8,1,0x6649,1,0x3b19,1,0x6691,1,0x3b08,1,0x3ae4,1,0x5192,1,0x5195,1,
-0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6717,1,0x671b,1,0x6721,1,0x675e,1,
-0x6753,2,0xd84c,0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,1,0x6885,2,0xd84d,
-0xdc6d,1,0x688e,1,0x681f,1,0x6914,1,0x3b9d,1,0x6942,1,0x69a3,1,0x69ea,1,
-0x6aa8,2,0xd84d,0xdea3,1,0x6adb,1,0x3c18,1,0x6b21,2,0xd84e,0xdca7,1,0x6b54,1,
-0x3c4e,1,0x6b72,1,0x6b9f,1,0x6bba,1,0x6bbb,2,0xd84e,0xde8d,2,0xd847,0xdd0b,2,
-0xd84e,0xdefa,1,0x6c4e,2,0xd84f,0xdcbc,1,0x6cbf,1,0x6ccd,1,0x6c67,1,0x6d16,1,
-0x6d3e,1,0x6d77,1,0x6d41,1,0x6d69,1,0x6d78,1,0x6d85,2,0xd84f,0xdd1e,1,0x6d34,
-1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ecb,1,0x6ec7,2,0xd84f,0xded1,1,0x6df9,1,
-0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1,0x7039,1,0x701e,1,0x701b,1,
-0x3d96,1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25,1,0x7145,2,0xd850,
-0xde63,1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7235,1,0x7250,2,0xd851,0xde08,1,
-0x7280,1,0x7295,2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,0x738b,1,0x3eac,1,
-0x73a5,1,0x3eb8,1,0x3eb8,1,0x7447,1,0x745c,1,0x7471,1,0x7485,1,0x74ca,1,
-0x3f1b,1,0x7524,2,0xd853,0xdc36,1,0x753e,2,0xd853,0xdc92,1,0x7570,2,0xd848,0xdd9f,
-1,0x7610,2,0xd853,0xdfa1,2,0xd853,0xdfb8,2,0xd854,0xdc44,1,0x3ffc,1,0x4008,1,
-0x76f4,2,0xd854,0xdcf3,2,0xd854,0xdcf2,2,0xd854,0xdd19,2,0xd854,0xdd33,1,0x771e,1,
-0x771f,1,0x771f,1,0x774a,1,0x4039,1,0x778b,1,0x4046,1,0x4096,2,0xd855,0xdc1d,
-1,0x784e,1,0x788c,1,0x78cc,1,0x40e3,2,0xd855,0xde26,1,0x7956,2,0xd855,0xde9a,
-2,0xd855,0xdec5,1,0x798f,1,0x79eb,1,0x412f,1,0x7a40,1,0x7a4a,1,0x7a4f,2,
-0xd856,0xdd7c,2,0xd856,0xdea7,2,0xd856,0xdea7,1,0x7aee,1,0x4202,2,0xd856,0xdfab,1,
-0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1,0x7cd2,1,0x42a0,1,0x7ce8,1,0x7ce3,
-1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301,1,0x7dc7,1,0x7e02,1,0x7e45,1,
-0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359,2,0xd858,0xded9,1,0x7f7a,2,0xd858,
-0xdf3e,1,0x7f95,1,0x7ffa,1,0x8005,2,0xd859,0xdcda,2,0xd859,0xdd23,1,0x8060,2,
-0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2,1,0x8103,1,0x440b,1,
-0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c,0xdf93,2,0xd84c,0xdf9c,1,
-0x8201,1,0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,0x829d,1,0x52b3,1,
-0x82b1,1,0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x82e5,1,0x831d,1,0x8363,
-1,0x83ad,1,0x8323,1,0x83bd,1,0x83e7,1,0x8457,1,0x8353,1,0x83ca,1,0x83cc,
-1,0x83dc,2,0xd85b,0xdc36,2,0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,0x452b,1,0x84f1,1,
-0x84f3,1,0x8516,2,0xd85c,0xdfca,1,0x8564,2,0xd85b,0xdf2c,1,0x455d,1,0x4561,2,
-0xd85b,0xdfb1,2,0xd85c,0xdcd2,1,0x456b,1,0x8650,1,0x865c,1,0x8667,1,0x8669,1,
-0x86a9,1,0x8688,1,0x870e,1,0x86e2,1,0x8779,1,0x8728,1,0x876b,1,0x8786,1,
-0x45d7,1,0x87e1,1,0x8801,1,0x45f9,1,0x8860,1,0x8863,2,0xd85d,0xde67,1,0x88d7,
-1,0x88de,1,0x4635,1,0x88fa,1,0x34bb,2,0xd85e,0xdcae,2,0xd85e,0xdd66,1,0x46be,
-1,0x46c7,1,0x8aa0,1,0x8aed,1,0x8b8a,1,0x8c55,2,0xd85f,0xdca8,1,0x8cab,1,
-0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2,0xd842,0xdc04,1,0x8dcb,1,0x8dbc,1,
-0x8df0,2,0xd842,0xdcde,1,0x8ed4,1,0x8f38,2,0xd861,0xddd2,2,0xd861,0xdded,1,0x9094,
-1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238,1,0x92d7,1,0x92d8,1,
-0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1,0x4995,1,0x95b7,2,0xd863,
-0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864,0xdd45,2,0xd864,0xde1a,1,
-0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2,0xd865,0xdc96,1,0x980b,1,
-0x980b,1,0x9829,2,0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,1,0x99a7,1,0x99c2,
-1,0x99fe,1,0x4bce,2,0xd866,0xdf30,1,0x9b12,1,0x9c40,1,0x9cfd,1,0x4cce,1,
-0x4ced,1,0x9d67,2,0xd868,0xdcce,1,0x4cf8,2,0xd868,0xdd05,2,0xd868,0xde0e,2,0xd868,
-0xde91,1,0x9ebb,1,0x4d56,1,0x9ef9,1,0x9efe,1,0x9f05,1,0x9f0f,1,0x9f16,1,
-0x9f3b,2,0xd869,0xde00,0x82,0xe6,0x41,0x300,0x82,0xe6,0x41,0x301,0x4d0,0x82,0xe6,0x41,
-0x302,0x82,0xe6,0x41,0x303,0x2c8,0x82,0xe6,0x41,0x308,0x2e0,0x82,0xe6,0x41,0x30a,0x46e,
-0x82,0xca,0x43,0x327,0x82,0xe6,0x45,0x300,0x82,0xe6,0x45,0x301,0x4f8,0x82,0xe6,0x45,
-0x302,0x82,0xe6,0x45,0x308,0x82,0xe6,0x49,0x300,0x82,0xe6,0x49,0x301,0x82,0xe6,0x49,
-0x302,0x482,0x82,0xe6,0x49,0x308,0x82,0xe6,0x4e,0x303,0x82,0xe6,0x4f,0x300,0x82,0xe6,
-0x4f,0x301,0x50c,0x82,0xe6,0x4f,0x302,0x2ec,0x82,0xe6,0x4f,0x303,0x2e8,0x82,0xe6,0x4f,
-0x308,0x82,0xe6,0x55,0x300,0x82,0xe6,0x55,0x301,0x82,0xe6,0x55,0x302,0x2b8,0x82,0xe6,
-0x55,0x308,0x82,0xe6,0x59,0x301,0x82,0xe6,0x61,0x300,0x82,0xe6,0x61,0x301,0x4d8,0x82,
-0xe6,0x61,0x302,0x82,0xe6,0x61,0x303,0x2ca,0x82,0xe6,0x61,0x308,0x2e2,0x82,0xe6,0x61,
-0x30a,0x470,0x82,0xca,0x63,0x327,0x82,0xe6,0x65,0x300,0x82,0xe6,0x65,0x301,0x500,0x82,
-0xe6,0x65,0x302,0x82,0xe6,0x65,0x308,0x82,0xe6,0x69,0x300,0x82,0xe6,0x69,0x301,0x82,
-0xe6,0x69,0x302,0x484,0x82,0xe6,0x69,0x308,0x82,0xe6,0x6e,0x303,0x82,0xe6,0x6f,0x300,
-0x82,0xe6,0x6f,0x301,0x514,0x82,0xe6,0x6f,0x302,0x2f2,0x82,0xe6,0x6f,0x303,0x2ea,0x82,
-0xe6,0x6f,0x308,0x82,0xe6,0x75,0x300,0x82,0xe6,0x75,0x301,0x82,0xe6,0x75,0x302,0x2c0,
-0x82,0xe6,0x75,0x308,0x82,0xe6,0x79,0x301,0x82,0xe6,0x79,0x308,0x82,0xe6,0x41,0x304,
-0x82,0xe6,0x61,0x304,0x4e8,0x82,0xe6,0x41,0x306,0x4f0,0x82,0xe6,0x61,0x306,0x82,0xca,
-0x41,0x328,0x82,0xca,0x61,0x328,0x82,0xe6,0x43,0x301,0x82,0xe6,0x63,0x301,0x82,0xe6,
-0x43,0x302,0x82,0xe6,0x63,0x302,0x82,0xe6,0x43,0x307,0x82,0xe6,0x63,0x307,0x82,0xe6,
-0x43,0x30c,0x82,0xe6,0x63,0x30c,0x82,0xe6,0x44,0x30c,0x82,0xe6,0x64,0x30c,0x472,0x82,
-0xe6,0x45,0x304,0x476,0x82,0xe6,0x65,0x304,0x82,0xe6,0x45,0x306,0x82,0xe6,0x65,0x306,
-0x82,0xe6,0x45,0x307,0x82,0xe6,0x65,0x307,0x82,0xca,0x45,0x328,0x82,0xca,0x65,0x328,
-0x82,0xe6,0x45,0x30c,0x82,0xe6,0x65,0x30c,0x82,0xe6,0x47,0x302,0x82,0xe6,0x67,0x302,
-0x82,0xe6,0x47,0x306,0x82,0xe6,0x67,0x306,0x82,0xe6,0x47,0x307,0x82,0xe6,0x67,0x307,
-0x82,0xca,0x47,0x327,0x82,0xca,0x67,0x327,0x82,0xe6,0x48,0x302,0x82,0xe6,0x68,0x302,
-0x82,0xe6,0x49,0x303,0x82,0xe6,0x69,0x303,0x82,0xe6,0x49,0x304,0x82,0xe6,0x69,0x304,
-0x82,0xe6,0x49,0x306,0x82,0xe6,0x69,0x306,0x82,0xca,0x49,0x328,0x82,0xca,0x69,0x328,
-0x82,0xe6,0x49,0x307,0x82,0xe6,0x4a,0x302,0x82,0xe6,0x6a,0x302,0x82,0xca,0x4b,0x327,
-0x82,0xca,0x6b,0x327,0x82,0xe6,0x4c,0x301,0x82,0xe6,0x6c,0x301,0x82,0xca,0x4c,0x327,
-0x82,0xca,0x6c,0x327,0x82,0xe6,0x4c,0x30c,0x82,0xe6,0x6c,0x30c,0x82,0xe6,0x4e,0x301,
-0x82,0xe6,0x6e,0x301,0x82,0xca,0x4e,0x327,0x82,0xca,0x6e,0x327,0x82,0xe6,0x4e,0x30c,
-0x82,0xe6,0x6e,0x30c,0x496,0x82,0xe6,0x4f,0x304,0x49a,0x82,0xe6,0x6f,0x304,0x82,0xe6,
-0x4f,0x306,0x82,0xe6,0x6f,0x306,0x82,0xe6,0x4f,0x30b,0x82,0xe6,0x6f,0x30b,0x82,0xe6,
-0x52,0x301,0x82,0xe6,0x72,0x301,0x82,0xca,0x52,0x327,0x82,0xca,0x72,0x327,0x82,0xe6,
-0x52,0x30c,0x82,0xe6,0x72,0x30c,0x4aa,0x82,0xe6,0x53,0x301,0x4ac,0x82,0xe6,0x73,0x301,
-0x82,0xe6,0x53,0x302,0x82,0xe6,0x73,0x302,0x82,0xca,0x53,0x327,0x82,0xca,0x73,0x327,
-0x4ae,0x82,0xe6,0x53,0x30c,0x4b0,0x82,0xe6,0x73,0x30c,0x82,0xca,0x54,0x327,0x82,0xca,
-0x74,0x327,0x82,0xe6,0x54,0x30c,0x82,0xe6,0x74,0x30c,0x4b6,0x82,0xe6,0x55,0x303,0x4b8,
-0x82,0xe6,0x75,0x303,0x4ba,0x82,0xe6,0x55,0x304,0x4bc,0x82,0xe6,0x75,0x304,0x82,0xe6,
-0x55,0x306,0x82,0xe6,0x75,0x306,0x82,0xe6,0x55,0x30a,0x82,0xe6,0x75,0x30a,0x82,0xe6,
-0x55,0x30b,0x82,0xe6,0x75,0x30b,0x82,0xca,0x55,0x328,0x82,0xca,0x75,0x328,0x82,0xe6,
-0x57,0x302,0x82,0xe6,0x77,0x302,0x82,0xe6,0x59,0x302,0x82,0xe6,0x79,0x302,0x82,0xe6,
-0x59,0x308,0x82,0xe6,0x5a,0x301,0x82,0xe6,0x7a,0x301,0x82,0xe6,0x5a,0x307,0x82,0xe6,
-0x7a,0x307,0x82,0xe6,0x5a,0x30c,0x82,0xe6,0x7a,0x30c,0x520,0x82,0xd8,0x4f,0x31b,0x52a,
-0x82,0xd8,0x6f,0x31b,0x534,0x82,0xd8,0x55,0x31b,0x53e,0x82,0xd8,0x75,0x31b,0x82,0xe6,
-0x41,0x30c,0x82,0xe6,0x61,0x30c,0x82,0xe6,0x49,0x30c,0x82,0xe6,0x69,0x30c,0x82,0xe6,
-0x4f,0x30c,0x82,0xe6,0x6f,0x30c,0x82,0xe6,0x55,0x30c,0x82,0xe6,0x75,0x30c,0x83,0xe6,
-0x55,0x308,0x304,0x83,0xe6,0x75,0x308,0x304,0x83,0xe6,0x55,0x308,0x301,0x83,0xe6,0x75,
-0x308,0x301,0x83,0xe6,0x55,0x308,0x30c,0x83,0xe6,0x75,0x308,0x30c,0x83,0xe6,0x55,0x308,
-0x300,0x83,0xe6,0x75,0x308,0x300,0x83,0xe6,0x41,0x308,0x304,0x83,0xe6,0x61,0x308,0x304,
-0x83,0xe6,0x41,0x307,0x304,0x83,0xe6,0x61,0x307,0x304,0x82,0xe6,0xc6,0x304,0x82,0xe6,
-0xe6,0x304,0x82,0xe6,0x47,0x30c,0x82,0xe6,0x67,0x30c,0x82,0xe6,0x4b,0x30c,0x82,0xe6,
-0x6b,0x30c,0x2d8,0x82,0xca,0x4f,0x328,0x2da,0x82,0xca,0x6f,0x328,0x83,0xe6,0x4f,0x328,
-0x304,0x83,0xe6,0x6f,0x328,0x304,0x82,0xe6,0x1b7,0x30c,0x82,0xe6,0x292,0x30c,0x82,0xe6,
-0x6a,0x30c,0x82,0xe6,0x47,0x301,0x82,0xe6,0x67,0x301,0x82,0xe6,0x4e,0x300,0x82,0xe6,
-0x6e,0x300,0x83,0xe6,0x41,0x30a,0x301,0x83,0xe6,0x61,0x30a,0x301,0x82,0xe6,0xc6,0x301,
-0x82,0xe6,0xe6,0x301,0x82,0xe6,0xd8,0x301,0x82,0xe6,0xf8,0x301,0x82,0xe6,0x41,0x30f,
-0x82,0xe6,0x61,0x30f,0x82,0xe6,0x41,0x311,0x82,0xe6,0x61,0x311,0x82,0xe6,0x45,0x30f,
-0x82,0xe6,0x65,0x30f,0x82,0xe6,0x45,0x311,0x82,0xe6,0x65,0x311,0x82,0xe6,0x49,0x30f,
-0x82,0xe6,0x69,0x30f,0x82,0xe6,0x49,0x311,0x82,0xe6,0x69,0x311,0x82,0xe6,0x4f,0x30f,
-0x82,0xe6,0x6f,0x30f,0x82,0xe6,0x4f,0x311,0x82,0xe6,0x6f,0x311,0x82,0xe6,0x52,0x30f,
-0x82,0xe6,0x72,0x30f,0x82,0xe6,0x52,0x311,0x82,0xe6,0x72,0x311,0x82,0xe6,0x55,0x30f,
-0x82,0xe6,0x75,0x30f,0x82,0xe6,0x55,0x311,0x82,0xe6,0x75,0x311,0x82,0xdc,0x53,0x326,
-0x82,0xdc,0x73,0x326,0x82,0xdc,0x54,0x326,0x82,0xdc,0x74,0x326,0x82,0xe6,0x48,0x30c,
-0x82,0xe6,0x68,0x30c,0x2cc,0x82,0xe6,0x41,0x307,0x2ce,0x82,0xe6,0x61,0x307,0x47a,0x82,
-0xca,0x45,0x327,0x47c,0x82,0xca,0x65,0x327,0x83,0xe6,0x4f,0x308,0x304,0x83,0xe6,0x6f,
-0x308,0x304,0x83,0xe6,0x4f,0x303,0x304,0x83,0xe6,0x6f,0x303,0x304,0x2f8,0x82,0xe6,0x4f,
-0x307,0x2fa,0x82,0xe6,0x6f,0x307,0x83,0xe6,0x4f,0x307,0x304,0x83,0xe6,0x6f,0x307,0x304,
-0x82,0xe6,0x59,0x304,0x82,0xe6,0x79,0x304,0x8382,0xe6,0xa8,0x301,0xe6,0x20,0x308,0x301,
-0x82,0xe6,0x391,0x301,0x82,0xe6,0x395,0x301,0x82,0xe6,0x397,0x301,0x82,0xe6,0x399,0x301,
-0x82,0xe6,0x39f,0x301,0x82,0xe6,0x3a5,0x301,0x82,0xe6,0x3a9,0x301,0x83,0xe6,0x3b9,0x308,
-0x301,0x82,0xe6,0x399,0x308,0x82,0xe6,0x3a5,0x308,0x63c,0x82,0xe6,0x3b1,0x301,0x82,0xe6,
-0x3b5,0x301,0x642,0x82,0xe6,0x3b7,0x301,0x82,0xe6,0x3b9,0x301,0x83,0xe6,0x3c5,0x308,0x301,
-0x34e,0x82,0xe6,0x3b9,0x308,0x388,0x82,0xe6,0x3c5,0x308,0x82,0xe6,0x3bf,0x301,0x82,0xe6,
-0x3c5,0x301,0x65a,0x82,0xe6,0x3c9,0x301,0x82,0xe6,0x415,0x300,0x82,0xe6,0x415,0x308,0x82,
-0xe6,0x413,0x301,0x82,0xe6,0x406,0x308,0x82,0xe6,0x41a,0x301,0x82,0xe6,0x418,0x300,0x82,
-0xe6,0x423,0x306,0x82,0xe6,0x418,0x306,0x82,0xe6,0x438,0x306,0x82,0xe6,0x435,0x300,0x82,
-0xe6,0x435,0x308,0x82,0xe6,0x433,0x301,0x82,0xe6,0x456,0x308,0x82,0xe6,0x43a,0x301,0x82,
-0xe6,0x438,0x300,0x82,0xe6,0x443,0x306,0x82,0xe6,0x474,0x30f,0x82,0xe6,0x475,0x30f,0x82,
-0xe6,0x416,0x306,0x82,0xe6,0x436,0x306,0x82,0xe6,0x410,0x306,0x82,0xe6,0x430,0x306,0x82,
-0xe6,0x410,0x308,0x82,0xe6,0x430,0x308,0x82,0xe6,0x415,0x306,0x82,0xe6,0x435,0x306,0x82,
-0xe6,0x4d8,0x308,0x82,0xe6,0x4d9,0x308,0x82,0xe6,0x416,0x308,0x82,0xe6,0x436,0x308,0x82,
-0xe6,0x417,0x308,0x82,0xe6,0x437,0x308,0x82,0xe6,0x418,0x304,0x82,0xe6,0x438,0x304,0x82,
-0xe6,0x418,0x308,0x82,0xe6,0x438,0x308,0x82,0xe6,0x41e,0x308,0x82,0xe6,0x43e,0x308,0x82,
-0xe6,0x4e8,0x308,0x82,0xe6,0x4e9,0x308,0x82,0xe6,0x42d,0x308,0x82,0xe6,0x44d,0x308,0x82,
-0xe6,0x423,0x304,0x82,0xe6,0x443,0x304,0x82,0xe6,0x423,0x308,0x82,0xe6,0x443,0x308,0x82,
-0xe6,0x423,0x30b,0x82,0xe6,0x443,0x30b,0x82,0xe6,0x427,0x308,0x82,0xe6,0x447,0x308,0x82,
-0xe6,0x42b,0x308,0x82,0xe6,0x44b,0x308,0x82,0xe6,0x627,0x653,0x82,0xe6,0x627,0x654,0x82,
-0xe6,0x648,0x654,0x82,0xdc,0x627,0x655,0x82,0xe6,0x64a,0x654,0x82,0xe6,0x6d5,0x654,0x82,
-0xe6,0x6c1,0x654,0x82,0xe6,0x6d2,0x654,0x82,7,0x928,0x93c,0x82,7,0x930,0x93c,0x82,
-7,0x933,0x93c,2,0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,2,0xb47,0xb3e,2,
-0xb47,0xb57,2,0xb92,0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,0xbc6,0xbd7,0x82,0x5b,
-0xc46,0xc56,2,0xcbf,0xcd5,2,0xcc6,0xcd5,2,0xcc6,0xcd6,0x450,2,0xcc6,0xcc2,3,
-0xcc6,0xcc2,0xcd5,2,0xd46,0xd3e,2,0xd47,0xd3e,2,0xd46,0xd57,0x82,9,0xdd9,0xdca,
-0x45e,2,0xdd9,0xdcf,0x83,9,0xdd9,0xdcf,0xdca,2,0xdd9,0xddf,2,0x1025,0x102e,0x82,
-0xdc,0x41,0x325,0x82,0xdc,0x61,0x325,0x82,0xe6,0x42,0x307,0x82,0xe6,0x62,0x307,0x82,
-0xdc,0x42,0x323,0x82,0xdc,0x62,0x323,0x82,0xdc,0x42,0x331,0x82,0xdc,0x62,0x331,0x83,
-0xe6,0x43,0x327,0x301,0x83,0xe6,0x63,0x327,0x301,0x82,0xe6,0x44,0x307,0x82,0xe6,0x64,
-0x307,0x82,0xdc,0x44,0x323,0x82,0xdc,0x64,0x323,0x82,0xdc,0x44,0x331,0x82,0xdc,0x64,
-0x331,0x82,0xca,0x44,0x327,0x82,0xca,0x64,0x327,0x82,0xdc,0x44,0x32d,0x82,0xdc,0x64,
-0x32d,0x83,0xe6,0x45,0x304,0x300,0x83,0xe6,0x65,0x304,0x300,0x83,0xe6,0x45,0x304,0x301,
-0x83,0xe6,0x65,0x304,0x301,0x82,0xdc,0x45,0x32d,0x82,0xdc,0x65,0x32d,0x82,0xdc,0x45,
-0x330,0x82,0xdc,0x65,0x330,0x83,0xe6,0x45,0x327,0x306,0x83,0xe6,0x65,0x327,0x306,0x82,
-0xe6,0x46,0x307,0x82,0xe6,0x66,0x307,0x82,0xe6,0x47,0x304,0x82,0xe6,0x67,0x304,0x82,
-0xe6,0x48,0x307,0x82,0xe6,0x68,0x307,0x82,0xdc,0x48,0x323,0x82,0xdc,0x68,0x323,0x82,
-0xe6,0x48,0x308,0x82,0xe6,0x68,0x308,0x82,0xca,0x48,0x327,0x82,0xca,0x68,0x327,0x82,
-0xdc,0x48,0x32e,0x82,0xdc,0x68,0x32e,0x82,0xdc,0x49,0x330,0x82,0xdc,0x69,0x330,0x83,
-0xe6,0x49,0x308,0x301,0x83,0xe6,0x69,0x308,0x301,0x82,0xe6,0x4b,0x301,0x82,0xe6,0x6b,
-0x301,0x82,0xdc,0x4b,0x323,0x82,0xdc,0x6b,0x323,0x82,0xdc,0x4b,0x331,0x82,0xdc,0x6b,
-0x331,0x486,0x82,0xdc,0x4c,0x323,0x488,0x82,0xdc,0x6c,0x323,0x83,0xe6,0x4c,0x323,0x304,
-0x83,0xe6,0x6c,0x323,0x304,0x82,0xdc,0x4c,0x331,0x82,0xdc,0x6c,0x331,0x82,0xdc,0x4c,
-0x32d,0x82,0xdc,0x6c,0x32d,0x82,0xe6,0x4d,0x301,0x82,0xe6,0x6d,0x301,0x82,0xe6,0x4d,
-0x307,0x82,0xe6,0x6d,0x307,0x82,0xdc,0x4d,0x323,0x82,0xdc,0x6d,0x323,0x82,0xe6,0x4e,
-0x307,0x82,0xe6,0x6e,0x307,0x82,0xdc,0x4e,0x323,0x82,0xdc,0x6e,0x323,0x82,0xdc,0x4e,
-0x331,0x82,0xdc,0x6e,0x331,0x82,0xdc,0x4e,0x32d,0x82,0xdc,0x6e,0x32d,0x83,0xe6,0x4f,
-0x303,0x301,0x83,0xe6,0x6f,0x303,0x301,0x83,0xe6,0x4f,0x303,0x308,0x83,0xe6,0x6f,0x303,
-0x308,0x83,0xe6,0x4f,0x304,0x300,0x83,0xe6,0x6f,0x304,0x300,0x83,0xe6,0x4f,0x304,0x301,
-0x83,0xe6,0x6f,0x304,0x301,0x82,0xe6,0x50,0x301,0x82,0xe6,0x70,0x301,0x82,0xe6,0x50,
-0x307,0x82,0xe6,0x70,0x307,0x82,0xe6,0x52,0x307,0x82,0xe6,0x72,0x307,0x4a6,0x82,0xdc,
-0x52,0x323,0x4a8,0x82,0xdc,0x72,0x323,0x83,0xe6,0x52,0x323,0x304,0x83,0xe6,0x72,0x323,
-0x304,0x82,0xdc,0x52,0x331,0x82,0xdc,0x72,0x331,0x82,0xe6,0x53,0x307,0x82,0xe6,0x73,
-0x307,0x4b2,0x82,0xdc,0x53,0x323,0x4b4,0x82,0xdc,0x73,0x323,0x83,0xe6,0x53,0x301,0x307,
-0x83,0xe6,0x73,0x301,0x307,0x83,0xe6,0x53,0x30c,0x307,0x83,0xe6,0x73,0x30c,0x307,0x83,
-0xe6,0x53,0x323,0x307,0x83,0xe6,0x73,0x323,0x307,0x82,0xe6,0x54,0x307,0x82,0xe6,0x74,
-0x307,0x82,0xdc,0x54,0x323,0x82,0xdc,0x74,0x323,0x82,0xdc,0x54,0x331,0x82,0xdc,0x74,
-0x331,0x82,0xdc,0x54,0x32d,0x82,0xdc,0x74,0x32d,0x82,0xdc,0x55,0x324,0x82,0xdc,0x75,
-0x324,0x82,0xdc,0x55,0x330,0x82,0xdc,0x75,0x330,0x82,0xdc,0x55,0x32d,0x82,0xdc,0x75,
-0x32d,0x83,0xe6,0x55,0x303,0x301,0x83,0xe6,0x75,0x303,0x301,0x83,0xe6,0x55,0x304,0x308,
-0x83,0xe6,0x75,0x304,0x308,0x82,0xe6,0x56,0x303,0x82,0xe6,0x76,0x303,0x82,0xdc,0x56,
-0x323,0x82,0xdc,0x76,0x323,0x82,0xe6,0x57,0x300,0x82,0xe6,0x77,0x300,0x82,0xe6,0x57,
-0x301,0x82,0xe6,0x77,0x301,0x82,0xe6,0x57,0x308,0x82,0xe6,0x77,0x308,0x82,0xe6,0x57,
-0x307,0x82,0xe6,0x77,0x307,0x82,0xdc,0x57,0x323,0x82,0xdc,0x77,0x323,0x82,0xe6,0x58,
-0x307,0x82,0xe6,0x78,0x307,0x82,0xe6,0x58,0x308,0x82,0xe6,0x78,0x308,0x82,0xe6,0x59,
-0x307,0x82,0xe6,0x79,0x307,0x82,0xe6,0x5a,0x302,0x82,0xe6,0x7a,0x302,0x82,0xdc,0x5a,
-0x323,0x82,0xdc,0x7a,0x323,0x82,0xdc,0x5a,0x331,0x82,0xdc,0x7a,0x331,0x82,0xdc,0x68,
-0x331,0x82,0xe6,0x74,0x308,0x82,0xe6,0x77,0x30a,0x82,0xe6,0x79,0x30a,0x8282,0xe6,0x17f,
-0x307,0xe6,0x73,0x307,0x4e0,0x82,0xdc,0x41,0x323,0x4e4,0x82,0xdc,0x61,0x323,0x82,0xe6,
-0x41,0x309,0x82,0xe6,0x61,0x309,0x83,0xe6,0x41,0x302,0x301,0x83,0xe6,0x61,0x302,0x301,
-0x83,0xe6,0x41,0x302,0x300,0x83,0xe6,0x61,0x302,0x300,0x83,0xe6,0x41,0x302,0x309,0x83,
-0xe6,0x61,0x302,0x309,0x83,0xe6,0x41,0x302,0x303,0x83,0xe6,0x61,0x302,0x303,0x83,0xe6,
-0x41,0x323,0x302,0x83,0xe6,0x61,0x323,0x302,0x83,0xe6,0x41,0x306,0x301,0x83,0xe6,0x61,
-0x306,0x301,0x83,0xe6,0x41,0x306,0x300,0x83,0xe6,0x61,0x306,0x300,0x83,0xe6,0x41,0x306,
-0x309,0x83,0xe6,0x61,0x306,0x309,0x83,0xe6,0x41,0x306,0x303,0x83,0xe6,0x61,0x306,0x303,
-0x83,0xe6,0x41,0x323,0x306,0x83,0xe6,0x61,0x323,0x306,0x508,0x82,0xdc,0x45,0x323,0x50a,
-0x82,0xdc,0x65,0x323,0x82,0xe6,0x45,0x309,0x82,0xe6,0x65,0x309,0x82,0xe6,0x45,0x303,
-0x82,0xe6,0x65,0x303,0x83,0xe6,0x45,0x302,0x301,0x83,0xe6,0x65,0x302,0x301,0x83,0xe6,
-0x45,0x302,0x300,0x83,0xe6,0x65,0x302,0x300,0x83,0xe6,0x45,0x302,0x309,0x83,0xe6,0x65,
-0x302,0x309,0x83,0xe6,0x45,0x302,0x303,0x83,0xe6,0x65,0x302,0x303,0x83,0xe6,0x45,0x323,
-0x302,0x83,0xe6,0x65,0x323,0x302,0x82,0xe6,0x49,0x309,0x82,0xe6,0x69,0x309,0x82,0xdc,
-0x49,0x323,0x82,0xdc,0x69,0x323,0x51c,0x82,0xdc,0x4f,0x323,0x51e,0x82,0xdc,0x6f,0x323,
-0x82,0xe6,0x4f,0x309,0x82,0xe6,0x6f,0x309,0x83,0xe6,0x4f,0x302,0x301,0x83,0xe6,0x6f,
-0x302,0x301,0x83,0xe6,0x4f,0x302,0x300,0x83,0xe6,0x6f,0x302,0x300,0x83,0xe6,0x4f,0x302,
-0x309,0x83,0xe6,0x6f,0x302,0x309,0x83,0xe6,0x4f,0x302,0x303,0x83,0xe6,0x6f,0x302,0x303,
-0x83,0xe6,0x4f,0x323,0x302,0x83,0xe6,0x6f,0x323,0x302,0x83,0xe6,0x4f,0x31b,0x301,0x83,
-0xe6,0x6f,0x31b,0x301,0x83,0xe6,0x4f,0x31b,0x300,0x83,0xe6,0x6f,0x31b,0x300,0x83,0xe6,
-0x4f,0x31b,0x309,0x83,0xe6,0x6f,0x31b,0x309,0x83,0xe6,0x4f,0x31b,0x303,0x83,0xe6,0x6f,
-0x31b,0x303,0x83,0xdc,0x4f,0x31b,0x323,0x83,0xdc,0x6f,0x31b,0x323,0x82,0xdc,0x55,0x323,
-0x82,0xdc,0x75,0x323,0x82,0xe6,0x55,0x309,0x82,0xe6,0x75,0x309,0x83,0xe6,0x55,0x31b,
-0x301,0x83,0xe6,0x75,0x31b,0x301,0x83,0xe6,0x55,0x31b,0x300,0x83,0xe6,0x75,0x31b,0x300,
-0x83,0xe6,0x55,0x31b,0x309,0x83,0xe6,0x75,0x31b,0x309,0x83,0xe6,0x55,0x31b,0x303,0x83,
-0xe6,0x75,0x31b,0x303,0x83,0xdc,0x55,0x31b,0x323,0x83,0xdc,0x75,0x31b,0x323,0x82,0xe6,
-0x59,0x300,0x82,0xe6,0x79,0x300,0x82,0xdc,0x59,0x323,0x82,0xdc,0x79,0x323,0x82,0xe6,
-0x59,0x309,0x82,0xe6,0x79,0x309,0x82,0xe6,0x59,0x303,0x82,0xe6,0x79,0x303,0x548,0x82,
-0xe6,0x3b1,0x313,0x550,0x82,0xe6,0x3b1,0x314,0x5f2,0x83,0xe6,0x3b1,0x313,0x300,0x5f4,0x83,
-0xe6,0x3b1,0x314,0x300,0x5f6,0x83,0xe6,0x3b1,0x313,0x301,0x5f8,0x83,0xe6,0x3b1,0x314,0x301,
-0x5fa,0x83,0xe6,0x3b1,0x313,0x342,0x5fc,0x83,0xe6,0x3b1,0x314,0x342,0x558,0x82,0xe6,0x391,
-0x313,0x560,0x82,0xe6,0x391,0x314,0x5fe,0x83,0xe6,0x391,0x313,0x300,0x600,0x83,0xe6,0x391,
-0x314,0x300,0x602,0x83,0xe6,0x391,0x313,0x301,0x604,0x83,0xe6,0x391,0x314,0x301,0x606,0x83,
-0xe6,0x391,0x313,0x342,0x608,0x83,0xe6,0x391,0x314,0x342,0x568,0x82,0xe6,0x3b5,0x313,0x56c,
-0x82,0xe6,0x3b5,0x314,0x83,0xe6,0x3b5,0x313,0x300,0x83,0xe6,0x3b5,0x314,0x300,0x83,0xe6,
-0x3b5,0x313,0x301,0x83,0xe6,0x3b5,0x314,0x301,0x570,0x82,0xe6,0x395,0x313,0x574,0x82,0xe6,
-0x395,0x314,0x83,0xe6,0x395,0x313,0x300,0x83,0xe6,0x395,0x314,0x300,0x83,0xe6,0x395,0x313,
-0x301,0x83,0xe6,0x395,0x314,0x301,0x578,0x82,0xe6,0x3b7,0x313,0x580,0x82,0xe6,0x3b7,0x314,
-0x60a,0x83,0xe6,0x3b7,0x313,0x300,0x60c,0x83,0xe6,0x3b7,0x314,0x300,0x60e,0x83,0xe6,0x3b7,
-0x313,0x301,0x610,0x83,0xe6,0x3b7,0x314,0x301,0x612,0x83,0xe6,0x3b7,0x313,0x342,0x614,0x83,
-0xe6,0x3b7,0x314,0x342,0x588,0x82,0xe6,0x397,0x313,0x590,0x82,0xe6,0x397,0x314,0x616,0x83,
-0xe6,0x397,0x313,0x300,0x618,0x83,0xe6,0x397,0x314,0x300,0x61a,0x83,0xe6,0x397,0x313,0x301,
-0x61c,0x83,0xe6,0x397,0x314,0x301,0x61e,0x83,0xe6,0x397,0x313,0x342,0x620,0x83,0xe6,0x397,
-0x314,0x342,0x598,0x82,0xe6,0x3b9,0x313,0x59e,0x82,0xe6,0x3b9,0x314,0x83,0xe6,0x3b9,0x313,
-0x300,0x83,0xe6,0x3b9,0x314,0x300,0x83,0xe6,0x3b9,0x313,0x301,0x83,0xe6,0x3b9,0x314,0x301,
-0x83,0xe6,0x3b9,0x313,0x342,0x83,0xe6,0x3b9,0x314,0x342,0x5a4,0x82,0xe6,0x399,0x313,0x5aa,
-0x82,0xe6,0x399,0x314,0x83,0xe6,0x399,0x313,0x300,0x83,0xe6,0x399,0x314,0x300,0x83,0xe6,
-0x399,0x313,0x301,0x83,0xe6,0x399,0x314,0x301,0x83,0xe6,0x399,0x313,0x342,0x83,0xe6,0x399,
-0x314,0x342,0x5b0,0x82,0xe6,0x3bf,0x313,0x5b4,0x82,0xe6,0x3bf,0x314,0x83,0xe6,0x3bf,0x313,
-0x300,0x83,0xe6,0x3bf,0x314,0x300,0x83,0xe6,0x3bf,0x313,0x301,0x83,0xe6,0x3bf,0x314,0x301,
-0x5b8,0x82,0xe6,0x39f,0x313,0x5bc,0x82,0xe6,0x39f,0x314,0x83,0xe6,0x39f,0x313,0x300,0x83,
-0xe6,0x39f,0x314,0x300,0x83,0xe6,0x39f,0x313,0x301,0x83,0xe6,0x39f,0x314,0x301,0x5c0,0x82,
-0xe6,0x3c5,0x313,0x5c6,0x82,0xe6,0x3c5,0x314,0x83,0xe6,0x3c5,0x313,0x300,0x83,0xe6,0x3c5,
-0x314,0x300,0x83,0xe6,0x3c5,0x313,0x301,0x83,0xe6,0x3c5,0x314,0x301,0x83,0xe6,0x3c5,0x313,
-0x342,0x83,0xe6,0x3c5,0x314,0x342,0x5cc,0x82,0xe6,0x3a5,0x314,0x83,0xe6,0x3a5,0x314,0x300,
-0x83,0xe6,0x3a5,0x314,0x301,0x83,0xe6,0x3a5,0x314,0x342,0x5d2,0x82,0xe6,0x3c9,0x313,0x5da,
-0x82,0xe6,0x3c9,0x314,0x622,0x83,0xe6,0x3c9,0x313,0x300,0x624,0x83,0xe6,0x3c9,0x314,0x300,
-0x626,0x83,0xe6,0x3c9,0x313,0x301,0x628,0x83,0xe6,0x3c9,0x314,0x301,0x62a,0x83,0xe6,0x3c9,
-0x313,0x342,0x62c,0x83,0xe6,0x3c9,0x314,0x342,0x5e2,0x82,0xe6,0x3a9,0x313,0x5ea,0x82,0xe6,
-0x3a9,0x314,0x62e,0x83,0xe6,0x3a9,0x313,0x300,0x630,0x83,0xe6,0x3a9,0x314,0x300,0x632,0x83,
-0xe6,0x3a9,0x313,0x301,0x634,0x83,0xe6,0x3a9,0x314,0x301,0x636,0x83,0xe6,0x3a9,0x313,0x342,
-0x638,0x83,0xe6,0x3a9,0x314,0x342,0x63a,0x82,0xe6,0x3b1,0x300,0x82,0xe6,0x3b5,0x300,0x640,
-0x82,0xe6,0x3b7,0x300,0x82,0xe6,0x3b9,0x300,0x82,0xe6,0x3bf,0x300,0x82,0xe6,0x3c5,0x300,
-0x658,0x82,0xe6,0x3c9,0x300,0x83,0xf0,0x3b1,0x313,0x345,0x83,0xf0,0x3b1,0x314,0x345,0x84,
-0xf0,0x3b1,0x313,0x300,0x345,0x84,0xf0,0x3b1,0x314,0x300,0x345,0x84,0xf0,0x3b1,0x313,0x301,
-0x345,0x84,0xf0,0x3b1,0x314,0x301,0x345,0x84,0xf0,0x3b1,0x313,0x342,0x345,0x84,0xf0,0x3b1,
-0x314,0x342,0x345,0x83,0xf0,0x391,0x313,0x345,0x83,0xf0,0x391,0x314,0x345,0x84,0xf0,0x391,
-0x313,0x300,0x345,0x84,0xf0,0x391,0x314,0x300,0x345,0x84,0xf0,0x391,0x313,0x301,0x345,0x84,
-0xf0,0x391,0x314,0x301,0x345,0x84,0xf0,0x391,0x313,0x342,0x345,0x84,0xf0,0x391,0x314,0x342,
-0x345,0x83,0xf0,0x3b7,0x313,0x345,0x83,0xf0,0x3b7,0x314,0x345,0x84,0xf0,0x3b7,0x313,0x300,
-0x345,0x84,0xf0,0x3b7,0x314,0x300,0x345,0x84,0xf0,0x3b7,0x313,0x301,0x345,0x84,0xf0,0x3b7,
-0x314,0x301,0x345,0x84,0xf0,0x3b7,0x313,0x342,0x345,0x84,0xf0,0x3b7,0x314,0x342,0x345,0x83,
-0xf0,0x397,0x313,0x345,0x83,0xf0,0x397,0x314,0x345,0x84,0xf0,0x397,0x313,0x300,0x345,0x84,
-0xf0,0x397,0x314,0x300,0x345,0x84,0xf0,0x397,0x313,0x301,0x345,0x84,0xf0,0x397,0x314,0x301,
-0x345,0x84,0xf0,0x397,0x313,0x342,0x345,0x84,0xf0,0x397,0x314,0x342,0x345,0x83,0xf0,0x3c9,
-0x313,0x345,0x83,0xf0,0x3c9,0x314,0x345,0x84,0xf0,0x3c9,0x313,0x300,0x345,0x84,0xf0,0x3c9,
-0x314,0x300,0x345,0x84,0xf0,0x3c9,0x313,0x301,0x345,0x84,0xf0,0x3c9,0x314,0x301,0x345,0x84,
-0xf0,0x3c9,0x313,0x342,0x345,0x84,0xf0,0x3c9,0x314,0x342,0x345,0x83,0xf0,0x3a9,0x313,0x345,
-0x83,0xf0,0x3a9,0x314,0x345,0x84,0xf0,0x3a9,0x313,0x300,0x345,0x84,0xf0,0x3a9,0x314,0x300,
-0x345,0x84,0xf0,0x3a9,0x313,0x301,0x345,0x84,0xf0,0x3a9,0x314,0x301,0x345,0x84,0xf0,0x3a9,
-0x313,0x342,0x345,0x84,0xf0,0x3a9,0x314,0x342,0x345,0x82,0xe6,0x3b1,0x306,0x82,0xe6,0x3b1,
-0x304,0x83,0xf0,0x3b1,0x300,0x345,0x82,0xf0,0x3b1,0x345,0x83,0xf0,0x3b1,0x301,0x345,0x63e,
-0x82,0xe6,0x3b1,0x342,0x83,0xf0,0x3b1,0x342,0x345,0x82,0xe6,0x391,0x306,0x82,0xe6,0x391,
-0x304,0x82,0xe6,0x391,0x300,0x82,0xf0,0x391,0x345,0x8382,0xe6,0xa8,0x342,0xe6,0x20,0x308,
-0x342,0x83,0xf0,0x3b7,0x300,0x345,0x82,0xf0,0x3b7,0x345,0x83,0xf0,0x3b7,0x301,0x345,0x644,
-0x82,0xe6,0x3b7,0x342,0x83,0xf0,0x3b7,0x342,0x345,0x82,0xe6,0x395,0x300,0x82,0xe6,0x397,
-0x300,0x82,0xf0,0x397,0x345,0x8382,0xe6,0x1fbf,0x300,0xe6,0x20,0x313,0x300,0x8382,0xe6,0x1fbf,
-0x301,0xe6,0x20,0x313,0x301,0x8382,0xe6,0x1fbf,0x342,0xe6,0x20,0x313,0x342,0x82,0xe6,0x3b9,
-0x306,0x82,0xe6,0x3b9,0x304,0x83,0xe6,0x3b9,0x308,0x300,0x82,0xe6,0x3b9,0x342,0x83,0xe6,
-0x3b9,0x308,0x342,0x82,0xe6,0x399,0x306,0x82,0xe6,0x399,0x304,0x82,0xe6,0x399,0x300,0x8382,
-0xe6,0x1ffe,0x300,0xe6,0x20,0x314,0x300,0x8382,0xe6,0x1ffe,0x301,0xe6,0x20,0x314,0x301,0x8382,
-0xe6,0x1ffe,0x342,0xe6,0x20,0x314,0x342,0x82,0xe6,0x3c5,0x306,0x82,0xe6,0x3c5,0x304,0x83,
-0xe6,0x3c5,0x308,0x300,0x82,0xe6,0x3c1,0x313,0x82,0xe6,0x3c1,0x314,0x82,0xe6,0x3c5,0x342,
-0x83,0xe6,0x3c5,0x308,0x342,0x82,0xe6,0x3a5,0x306,0x82,0xe6,0x3a5,0x304,0x82,0xe6,0x3a5,
-0x300,0x82,0xe6,0x3a1,0x314,0x8382,0xe6,0xa8,0x300,0xe6,0x20,0x308,0x300,0x83,0xf0,0x3c9,
-0x300,0x345,0x82,0xf0,0x3c9,0x345,0x83,0xf0,0x3c9,0x301,0x345,0x65c,0x82,0xe6,0x3c9,0x342,
-0x83,0xf0,0x3c9,0x342,0x345,0x82,0xe6,0x39f,0x300,0x82,0xe6,0x3a9,0x300,0x82,0xf0,0x3a9,
-0x345,0x82,1,0x2190,0x338,0x82,1,0x2192,0x338,0x82,1,0x2194,0x338,0x82,1,0x21d0,
-0x338,0x82,1,0x21d4,0x338,0x82,1,0x21d2,0x338,0x82,1,0x2203,0x338,0x82,1,0x2208,
-0x338,0x82,1,0x220b,0x338,0x82,1,0x2223,0x338,0x82,1,0x2225,0x338,0x82,1,0x223c,
-0x338,0x82,1,0x2243,0x338,0x82,1,0x2245,0x338,0x82,1,0x2248,0x338,0x82,1,0x3d,
-0x338,0x82,1,0x2261,0x338,0x82,1,0x224d,0x338,0x82,1,0x3c,0x338,0x82,1,0x3e,
-0x338,0x82,1,0x2264,0x338,0x82,1,0x2265,0x338,0x82,1,0x2272,0x338,0x82,1,0x2273,
-0x338,0x82,1,0x2276,0x338,0x82,1,0x2277,0x338,0x82,1,0x227a,0x338,0x82,1,0x227b,
-0x338,0x82,1,0x2282,0x338,0x82,1,0x2283,0x338,0x82,1,0x2286,0x338,0x82,1,0x2287,
-0x338,0x82,1,0x22a2,0x338,0x82,1,0x22a8,0x338,0x82,1,0x22a9,0x338,0x82,1,0x22ab,
-0x338,0x82,1,0x227c,0x338,0x82,1,0x227d,0x338,0x82,1,0x2291,0x338,0x82,1,0x2292,
-0x338,0x82,1,0x22b2,0x338,0x82,1,0x22b3,0x338,0x82,1,0x22b4,0x338,0x82,1,0x22b5,
-0x338,0x82,8,0x304b,0x3099,0x82,8,0x304d,0x3099,0x82,8,0x304f,0x3099,0x82,8,0x3051,
-0x3099,0x82,8,0x3053,0x3099,0x82,8,0x3055,0x3099,0x82,8,0x3057,0x3099,0x82,8,0x3059,
-0x3099,0x82,8,0x305b,0x3099,0x82,8,0x305d,0x3099,0x82,8,0x305f,0x3099,0x82,8,0x3061,
-0x3099,0x82,8,0x3064,0x3099,0x82,8,0x3066,0x3099,0x82,8,0x3068,0x3099,0x82,8,0x306f,
-0x3099,0x82,8,0x306f,0x309a,0x82,8,0x3072,0x3099,0x82,8,0x3072,0x309a,0x82,8,0x3075,
-0x3099,0x82,8,0x3075,0x309a,0x82,8,0x3078,0x3099,0x82,8,0x3078,0x309a,0x82,8,0x307b,
-0x3099,0x82,8,0x307b,0x309a,0x82,8,0x3046,0x3099,0x82,8,0x309d,0x3099,0x82,8,0x30ab,
-0x3099,0x82,8,0x30ad,0x3099,0x82,8,0x30af,0x3099,0x82,8,0x30b1,0x3099,0x82,8,0x30b3,
-0x3099,0x82,8,0x30b5,0x3099,0x82,8,0x30b7,0x3099,0x82,8,0x30b9,0x3099,0x82,8,0x30bb,
-0x3099,0x82,8,0x30bd,0x3099,0x82,8,0x30bf,0x3099,0x82,8,0x30c1,0x3099,0x82,8,0x30c4,
-0x3099,0x82,8,0x30c6,0x3099,0x82,8,0x30c8,0x3099,0x82,8,0x30cf,0x3099,0x82,8,0x30cf,
-0x309a,0x82,8,0x30d2,0x3099,0x82,8,0x30d2,0x309a,0x82,8,0x30d5,0x3099,0x82,8,0x30d5,
-0x309a,0x82,8,0x30d8,0x3099,0x82,8,0x30d8,0x309a,0x82,8,0x30db,0x3099,0x82,8,0x30db,
-0x309a,0x82,8,0x30a6,0x3099,0x82,8,0x30ef,0x3099,0x82,8,0x30f0,0x3099,0x82,8,0x30f1,
-0x3099,0x82,8,0x30f2,0x3099,0x82,8,0x30fd,0x3099,0x790,0x791,0x792,0x793,0x797,0x798,0x79a,
-0x794,0x7bd,0x795,0x79c,0x79b,0x79e,0x79f,0x7be,0x7bf,0x79d,0x7b7,0x7bc,0x7b6,0x7a0,0x796,0x799,
-0x7b9,0x7bb,0x7ba,0x7b8,0x7c2,0x7c0,0x7c1,0x7a1,0x7a2,0x7a3,0x7a4,0x7a5,0x7a6,0x7a8,0x7a7,0x7a9,
-0x7ab,0x7aa,0x7ac,0x7af,0x7ad,0x7ae,0x7b0,0x7b1,0x7b2,0x7b3,0x7b4,0x7b5,0x7c3,0x7c4,0x100,0x20,
-0x2fc,0x8200,0xe6,0x20,0x308,0x100,0x61,0x8200,0xe6,0x20,0x304,0x100,0x32,0x100,0x33,0x8200,
-0xe6,0x20,0x301,0x100,0x3bc,0x8200,0xca,0x20,0x327,0x100,0x31,0x100,0x6f,0x300,0x31,0x2044,
-0x34,0x300,0x31,0x2044,0x32,0x300,0x33,0x2044,0x34,0x200,0x49,0x4a,0x200,0x69,0x6a,0x200,
-0x4c,0xb7,0x200,0x6c,0xb7,0x200,0x2bc,0x6e,0x4ce,0x100,0x73,0x8300,0xe6,0x44,0x5a,0x30c,
-0x8300,0xe6,0x44,0x7a,0x30c,0x8300,0xe6,0x64,0x7a,0x30c,0x200,0x4c,0x4a,0x200,0x4c,0x6a,
-0x200,0x6c,0x6a,0x200,0x4e,0x4a,0x200,0x4e,0x6a,0x200,0x6e,0x6a,0x200,0x44,0x5a,0x200,
-0x44,0x7a,0x200,0x64,0x7a,0x100,0x68,0x100,0x266,0x100,0x6a,0x100,0x72,0x100,0x279,0x100,
-0x27b,0x100,0x281,0x100,0x77,0x100,0x79,0x8200,0xe6,0x20,0x306,0x8200,0xe6,0x20,0x307,0x8200,
-0xe6,0x20,0x30a,0x8200,0xca,0x20,0x328,0x8200,0xe6,0x20,0x303,0x8200,0xe6,0x20,0x30b,0x100,
-0x263,0x100,0x6c,0x100,0x73,0x100,0x78,0x100,0x295,0x8200,0xe6,0x20,0x301,0x100,0x3b2,0x100,
-0x3b8,0x100,0x3c6,0x100,0x3c0,0x100,0x3ba,0x100,0x3c1,0x100,0x398,0x100,0x3b5,0x200,0x565,0x582,
-0x200,0x627,0x674,0x200,0x648,0x674,0x200,0x6c7,0x674,0x200,0x64a,0x674,0x200,0xe4d,0xe32,0x200,
-0xecd,0xeb2,0x200,0xeab,0xe99,0x200,0xeab,0xea1,0x100,0xf0b,0x8300,0x82,0xfb2,0xf71,0xf80,0x8300,
-0x82,0xfb3,0xf71,0xf80,0x100,0x10dc,0x100,0x61,0x100,0x250,0x100,0x251,0x100,0x1d02,0x100,0x62,
-0x100,0x64,0x100,0x65,0x100,0x259,0x100,0x25b,0x100,0x25c,0x100,0x67,0x100,0x6b,0x100,0x6d,
-0x100,0x14b,0x100,0x6f,0x100,0x254,0x100,0x1d16,0x100,0x1d17,0x100,0x70,0x100,0x74,0x100,0x75,
-0x100,0x1d1d,0x100,0x26f,0x100,0x76,0x100,0x1d25,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3c6,
-0x100,0x3c7,0x100,0x69,0x100,0x72,0x100,0x75,0x100,0x76,0x100,0x3b2,0x100,0x3b3,0x100,0x3c1,
-0x100,0x3c6,0x100,0x3c7,0x100,0x43d,0x100,0x252,0x100,0x63,0x100,0x255,0x100,0xf0,0x100,0x25c,
-0x100,0x66,0x100,0x25f,0x100,0x261,0x100,0x265,0x100,0x268,0x100,0x269,0x100,0x26a,0x100,0x1d7b,
-0x100,0x29d,0x100,0x26d,0x100,0x1d85,0x100,0x29f,0x100,0x271,0x100,0x270,0x100,0x272,0x100,0x273,
-0x100,0x274,0x100,0x275,0x100,0x278,0x100,0x282,0x100,0x283,0x100,0x1ab,0x100,0x289,0x100,0x28a,
-0x100,0x1d1c,0x100,0x28b,0x100,0x28c,0x100,0x7a,0x100,0x290,0x100,0x291,0x100,0x292,0x100,0x3b8,
-0x200,0x61,0x2be,0x8200,0xe6,0x20,0x313,0x646,0x8200,0xe6,0x20,0x313,0x8200,0xe6,0x20,0x342,
-0x64c,0x8200,0xe6,0x20,0x314,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,
-0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x2010,0x8200,0xdc,0x20,0x333,0x100,0x2e,0x200,
-0x2e,0x2e,0x300,0x2e,0x2e,0x2e,0x100,0x20,0x200,0x2032,0x2032,0x300,0x2032,0x2032,0x2032,0x200,
-0x2035,0x2035,0x300,0x2035,0x2035,0x2035,0x200,0x21,0x21,0x8200,0xe6,0x20,0x305,0x200,0x3f,0x3f,
-0x200,0x3f,0x21,0x200,0x21,0x3f,0x400,0x2032,0x2032,0x2032,0x2032,0x100,0x20,0x100,0x30,0x100,
-0x69,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x2b,0x100,
-0x2212,0x100,0x3d,0x100,0x28,0x100,0x29,0x100,0x6e,0x100,0x30,0x100,0x31,0x100,0x32,0x100,
-0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x2b,0x100,
-0x2212,0x100,0x3d,0x100,0x28,0x100,0x29,0x100,0x61,0x100,0x65,0x100,0x6f,0x100,0x78,0x100,
-0x259,0x300,0x61,0x2f,0x63,0x300,0x61,0x2f,0x73,0x300,0x63,0x2f,0x6f,0x300,0x63,0x2f,
-0x75,0x100,0x67,0x100,0x68,0x100,0x127,0x100,0x6c,0x100,0x65,0x100,0x6f,0x100,0x5d0,0x100,
-0x5d1,0x100,0x5d2,0x100,0x5d3,0x100,0x69,0x100,0x3c0,0x100,0x3b3,0x100,0x2211,0x100,0x64,0x100,
-0x65,0x100,0x69,0x100,0x6a,0x300,0x31,0x2044,0x33,0x300,0x32,0x2044,0x33,0x300,0x31,0x2044,
-0x35,0x300,0x32,0x2044,0x35,0x300,0x33,0x2044,0x35,0x300,0x34,0x2044,0x35,0x300,0x31,0x2044,
-0x36,0x300,0x35,0x2044,0x36,0x300,0x31,0x2044,0x38,0x300,0x33,0x2044,0x38,0x300,0x35,0x2044,
-0x38,0x300,0x37,0x2044,0x38,0x200,0x31,0x2044,0x100,0x49,0x200,0x49,0x49,0x300,0x49,0x49,
-0x49,0x200,0x49,0x56,0x100,0x56,0x200,0x56,0x49,0x300,0x56,0x49,0x49,0x400,0x56,0x49,
-0x49,0x49,0x200,0x49,0x58,0x100,0x58,0x200,0x58,0x49,0x300,0x58,0x49,0x49,0x100,0x4c,
-0x100,0x43,0x100,0x44,0x100,0x4d,0x100,0x69,0x200,0x69,0x69,0x300,0x69,0x69,0x69,0x200,
-0x69,0x76,0x100,0x76,0x200,0x76,0x69,0x300,0x76,0x69,0x69,0x400,0x76,0x69,0x69,0x69,
-0x200,0x69,0x78,0x100,0x78,0x200,0x78,0x69,0x300,0x78,0x69,0x69,0x100,0x6c,0x100,0x63,
-0x100,0x64,0x100,0x6d,0x200,0x222b,0x222b,0x300,0x222b,0x222b,0x222b,0x200,0x222e,0x222e,0x300,0x222e,
-0x222e,0x222e,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,
-0x100,0x38,0x100,0x39,0x200,0x31,0x30,0x200,0x31,0x31,0x200,0x31,0x32,0x200,0x31,0x33,
-0x200,0x31,0x34,0x200,0x31,0x35,0x200,0x31,0x36,0x200,0x31,0x37,0x200,0x31,0x38,0x200,
-0x31,0x39,0x200,0x32,0x30,0x300,0x28,0x31,0x29,0x300,0x28,0x32,0x29,0x300,0x28,0x33,
-0x29,0x300,0x28,0x34,0x29,0x300,0x28,0x35,0x29,0x300,0x28,0x36,0x29,0x300,0x28,0x37,
-0x29,0x300,0x28,0x38,0x29,0x300,0x28,0x39,0x29,0x400,0x28,0x31,0x30,0x29,0x400,0x28,
-0x31,0x31,0x29,0x400,0x28,0x31,0x32,0x29,0x400,0x28,0x31,0x33,0x29,0x400,0x28,0x31,
-0x34,0x29,0x400,0x28,0x31,0x35,0x29,0x400,0x28,0x31,0x36,0x29,0x400,0x28,0x31,0x37,
-0x29,0x400,0x28,0x31,0x38,0x29,0x400,0x28,0x31,0x39,0x29,0x400,0x28,0x32,0x30,0x29,
-0x200,0x31,0x2e,0x200,0x32,0x2e,0x200,0x33,0x2e,0x200,0x34,0x2e,0x200,0x35,0x2e,0x200,
-0x36,0x2e,0x200,0x37,0x2e,0x200,0x38,0x2e,0x200,0x39,0x2e,0x300,0x31,0x30,0x2e,0x300,
-0x31,0x31,0x2e,0x300,0x31,0x32,0x2e,0x300,0x31,0x33,0x2e,0x300,0x31,0x34,0x2e,0x300,
-0x31,0x35,0x2e,0x300,0x31,0x36,0x2e,0x300,0x31,0x37,0x2e,0x300,0x31,0x38,0x2e,0x300,
-0x31,0x39,0x2e,0x300,0x32,0x30,0x2e,0x300,0x28,0x61,0x29,0x300,0x28,0x62,0x29,0x300,
-0x28,0x63,0x29,0x300,0x28,0x64,0x29,0x300,0x28,0x65,0x29,0x300,0x28,0x66,0x29,0x300,
-0x28,0x67,0x29,0x300,0x28,0x68,0x29,0x300,0x28,0x69,0x29,0x300,0x28,0x6a,0x29,0x300,
-0x28,0x6b,0x29,0x300,0x28,0x6c,0x29,0x300,0x28,0x6d,0x29,0x300,0x28,0x6e,0x29,0x300,
-0x28,0x6f,0x29,0x300,0x28,0x70,0x29,0x300,0x28,0x71,0x29,0x300,0x28,0x72,0x29,0x300,
-0x28,0x73,0x29,0x300,0x28,0x74,0x29,0x300,0x28,0x75,0x29,0x300,0x28,0x76,0x29,0x300,
-0x28,0x77,0x29,0x300,0x28,0x78,0x29,0x300,0x28,0x79,0x29,0x300,0x28,0x7a,0x29,0x100,
+0x3c1,0xff01,0x3c4,0xff01,0x3c6,0xff01,0x3c7,0xff01,0x3c8,0xff01,0x3dd,0x8200,0xf0,0x20,0x345,0x3b2,
+0x100,0x3a5,0x8282,0xe6,0x3d2,0x301,0xe6,0x3a5,0x301,0x8282,0xe6,0x3d2,0x308,0xe6,0x3a5,0x308,
+0x100,0x3c2,0x100,0x3a3,0x100,0x41,0x100,0xc6,0x100,0x42,0x100,0x44,0x100,0x45,0x100,0x18e,
+0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,
+0x100,0x4f,0x100,0x222,0x100,0x50,0x100,0x52,0x100,0x54,0x100,0x55,0x100,0x57,0x200,0x52,
+0x73,0x100,0x43,0x200,0xb0,0x43,0x100,0x190,0x200,0xb0,0x46,0x100,0x48,0x100,0x48,0x100,
+0x48,0x100,0x49,0x100,0x49,0x100,0x4c,0x100,0x4e,0x200,0x4e,0x6f,0x100,0x50,0x100,0x51,
+0x100,0x52,0x100,0x52,0x100,0x52,0x200,0x53,0x4d,0x300,0x54,0x45,0x4c,0x200,0x54,0x4d,
+0x100,0x5a,0x100,0x5a,0x100,0x42,0x100,0x43,0x100,0x45,0x100,0x46,0x100,0x4d,0x300,0x46,
+0x41,0x58,0x100,0x393,0x100,0x3a0,0x100,0x44,0x300,0x50,0x54,0x45,0x200,0x48,0x67,0x200,
+0x65,0x56,0x300,0x4c,0x54,0x44,0x300,0x68,0x50,0x61,0x200,0x41,0x55,0x200,0x6f,0x56,
+0x200,0x49,0x55,0x200,0x70,0x41,0x200,0x6e,0x41,0x200,0x3bc,0x41,0x200,0x6d,0x41,0x200,
+0x6b,0x41,0x200,0x4b,0x42,0x200,0x4d,0x42,0x200,0x47,0x42,0x200,0x70,0x46,0x200,0x6e,
+0x46,0x200,0x3bc,0x46,0x200,0x48,0x7a,0x300,0x6b,0x48,0x7a,0x300,0x4d,0x48,0x7a,0x300,
+0x47,0x48,0x7a,0x300,0x54,0x48,0x7a,0x200,0x50,0x61,0x300,0x6b,0x50,0x61,0x300,0x4d,
+0x50,0x61,0x300,0x47,0x50,0x61,0x200,0x70,0x56,0x200,0x6e,0x56,0x200,0x3bc,0x56,0x200,
+0x6d,0x56,0x200,0x6b,0x56,0x200,0x4d,0x56,0x200,0x70,0x57,0x200,0x6e,0x57,0x200,0x3bc,
+0x57,0x200,0x6d,0x57,0x200,0x6b,0x57,0x200,0x4d,0x57,0x200,0x6b,0x3a9,0x200,0x4d,0x3a9,
+0x200,0x42,0x71,0x400,0x43,0x2215,0x6b,0x67,0x300,0x43,0x6f,0x2e,0x200,0x64,0x42,0x200,
+0x47,0x79,0x200,0x48,0x50,0x200,0x4b,0x4b,0x200,0x4b,0x4d,0x200,0x50,0x48,0x300,0x50,
+0x50,0x4d,0x200,0x50,0x52,0x200,0x53,0x76,0x200,0x57,0x62,0x300,0x56,0x2215,0x6d,0x300,
+0x41,0x2215,0x6d,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,
+0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,
+0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,
+0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,
+0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,
+0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,
+0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,
+0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,
+0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,
+0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,
+0x41,0x100,0x43,0x100,0x44,0x100,0x47,0x100,0x4a,0x100,0x4b,0x100,0x4e,0x100,0x4f,0x100,
+0x50,0x100,0x51,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,
+0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,
+0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,
+0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,
+0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x44,0x100,0x45,0x100,
+0x46,0x100,0x47,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,
+0x50,0x100,0x51,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,
+0x59,0x100,0x41,0x100,0x42,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x49,0x100,
+0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4f,0x100,0x53,0x100,0x54,0x100,0x55,0x100,
+0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,
+0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,
+0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,
+0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,
+0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,
+0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,
+0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,
0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,
0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,
0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,
-0x59,0x100,0x5a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,
-0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,
-0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,
-0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x30,0x400,0x222b,0x222b,0x222b,0x222b,0x300,0x3a,
-0x3a,0x3d,0x200,0x3d,0x3d,0x300,0x3d,0x3d,0x3d,0x100,0x2d61,0x100,0x6bcd,0x100,0x9f9f,0x100,
-0x4e00,0x100,0x4e28,0x100,0x4e36,0x100,0x4e3f,0x100,0x4e59,0x100,0x4e85,0x100,0x4e8c,0x100,0x4ea0,0x100,
-0x4eba,0x100,0x513f,0x100,0x5165,0x100,0x516b,0x100,0x5182,0x100,0x5196,0x100,0x51ab,0x100,0x51e0,0x100,
-0x51f5,0x100,0x5200,0x100,0x529b,0x100,0x52f9,0x100,0x5315,0x100,0x531a,0x100,0x5338,0x100,0x5341,0x100,
-0x535c,0x100,0x5369,0x100,0x5382,0x100,0x53b6,0x100,0x53c8,0x100,0x53e3,0x100,0x56d7,0x100,0x571f,0x100,
-0x58eb,0x100,0x5902,0x100,0x590a,0x100,0x5915,0x100,0x5927,0x100,0x5973,0x100,0x5b50,0x100,0x5b80,0x100,
-0x5bf8,0x100,0x5c0f,0x100,0x5c22,0x100,0x5c38,0x100,0x5c6e,0x100,0x5c71,0x100,0x5ddb,0x100,0x5de5,0x100,
-0x5df1,0x100,0x5dfe,0x100,0x5e72,0x100,0x5e7a,0x100,0x5e7f,0x100,0x5ef4,0x100,0x5efe,0x100,0x5f0b,0x100,
-0x5f13,0x100,0x5f50,0x100,0x5f61,0x100,0x5f73,0x100,0x5fc3,0x100,0x6208,0x100,0x6236,0x100,0x624b,0x100,
-0x652f,0x100,0x6534,0x100,0x6587,0x100,0x6597,0x100,0x65a4,0x100,0x65b9,0x100,0x65e0,0x100,0x65e5,0x100,
-0x66f0,0x100,0x6708,0x100,0x6728,0x100,0x6b20,0x100,0x6b62,0x100,0x6b79,0x100,0x6bb3,0x100,0x6bcb,0x100,
-0x6bd4,0x100,0x6bdb,0x100,0x6c0f,0x100,0x6c14,0x100,0x6c34,0x100,0x706b,0x100,0x722a,0x100,0x7236,0x100,
-0x723b,0x100,0x723f,0x100,0x7247,0x100,0x7259,0x100,0x725b,0x100,0x72ac,0x100,0x7384,0x100,0x7389,0x100,
-0x74dc,0x100,0x74e6,0x100,0x7518,0x100,0x751f,0x100,0x7528,0x100,0x7530,0x100,0x758b,0x100,0x7592,0x100,
-0x7676,0x100,0x767d,0x100,0x76ae,0x100,0x76bf,0x100,0x76ee,0x100,0x77db,0x100,0x77e2,0x100,0x77f3,0x100,
-0x793a,0x100,0x79b8,0x100,0x79be,0x100,0x7a74,0x100,0x7acb,0x100,0x7af9,0x100,0x7c73,0x100,0x7cf8,0x100,
-0x7f36,0x100,0x7f51,0x100,0x7f8a,0x100,0x7fbd,0x100,0x8001,0x100,0x800c,0x100,0x8012,0x100,0x8033,0x100,
-0x807f,0x100,0x8089,0x100,0x81e3,0x100,0x81ea,0x100,0x81f3,0x100,0x81fc,0x100,0x820c,0x100,0x821b,0x100,
-0x821f,0x100,0x826e,0x100,0x8272,0x100,0x8278,0x100,0x864d,0x100,0x866b,0x100,0x8840,0x100,0x884c,0x100,
-0x8863,0x100,0x897e,0x100,0x898b,0x100,0x89d2,0x100,0x8a00,0x100,0x8c37,0x100,0x8c46,0x100,0x8c55,0x100,
-0x8c78,0x100,0x8c9d,0x100,0x8d64,0x100,0x8d70,0x100,0x8db3,0x100,0x8eab,0x100,0x8eca,0x100,0x8f9b,0x100,
-0x8fb0,0x100,0x8fb5,0x100,0x9091,0x100,0x9149,0x100,0x91c6,0x100,0x91cc,0x100,0x91d1,0x100,0x9577,0x100,
-0x9580,0x100,0x961c,0x100,0x96b6,0x100,0x96b9,0x100,0x96e8,0x100,0x9751,0x100,0x975e,0x100,0x9762,0x100,
-0x9769,0x100,0x97cb,0x100,0x97ed,0x100,0x97f3,0x100,0x9801,0x100,0x98a8,0x100,0x98db,0x100,0x98df,0x100,
-0x9996,0x100,0x9999,0x100,0x99ac,0x100,0x9aa8,0x100,0x9ad8,0x100,0x9adf,0x100,0x9b25,0x100,0x9b2f,0x100,
-0x9b32,0x100,0x9b3c,0x100,0x9b5a,0x100,0x9ce5,0x100,0x9e75,0x100,0x9e7f,0x100,0x9ea5,0x100,0x9ebb,0x100,
-0x9ec3,0x100,0x9ecd,0x100,0x9ed1,0x100,0x9ef9,0x100,0x9efd,0x100,0x9f0e,0x100,0x9f13,0x100,0x9f20,0x100,
-0x9f3b,0x100,0x9f4a,0x100,0x9f52,0x100,0x9f8d,0x100,0x9f9c,0x100,0x9fa0,0x100,0x20,0x100,0x3012,0x100,
-0x5341,0x100,0x5344,0x100,0x5345,0x8200,8,0x20,0x3099,0x8200,8,0x20,0x309a,0x200,0x3088,0x308a,
-0x200,0x30b3,0x30c8,0x100,0x1100,0x100,0x1101,0x100,0x11aa,0x100,0x1102,0x100,0x11ac,0x100,0x11ad,0x100,
-0x1103,0x100,0x1104,0x100,0x1105,0x100,0x11b0,0x100,0x11b1,0x100,0x11b2,0x100,0x11b3,0x100,0x11b4,0x100,
-0x11b5,0x100,0x111a,0x100,0x1106,0x100,0x1107,0x100,0x1108,0x100,0x1121,0x100,0x1109,0x100,0x110a,0x100,
-0x110b,0x100,0x110c,0x100,0x110d,0x100,0x110e,0x100,0x110f,0x100,0x1110,0x100,0x1111,0x100,0x1112,0x100,
-0x1161,0x100,0x1162,0x100,0x1163,0x100,0x1164,0x100,0x1165,0x100,0x1166,0x100,0x1167,0x100,0x1168,0x100,
-0x1169,0x100,0x116a,0x100,0x116b,0x100,0x116c,0x100,0x116d,0x100,0x116e,0x100,0x116f,0x100,0x1170,0x100,
-0x1171,0x100,0x1172,0x100,0x1173,0x100,0x1174,0x100,0x1175,0x100,0x1160,0x100,0x1114,0x100,0x1115,0x100,
-0x11c7,0x100,0x11c8,0x100,0x11cc,0x100,0x11ce,0x100,0x11d3,0x100,0x11d7,0x100,0x11d9,0x100,0x111c,0x100,
-0x11dd,0x100,0x11df,0x100,0x111d,0x100,0x111e,0x100,0x1120,0x100,0x1122,0x100,0x1123,0x100,0x1127,0x100,
-0x1129,0x100,0x112b,0x100,0x112c,0x100,0x112d,0x100,0x112e,0x100,0x112f,0x100,0x1132,0x100,0x1136,0x100,
-0x1140,0x100,0x1147,0x100,0x114c,0x100,0x11f1,0x100,0x11f2,0x100,0x1157,0x100,0x1158,0x100,0x1159,0x100,
-0x1184,0x100,0x1185,0x100,0x1188,0x100,0x1191,0x100,0x1192,0x100,0x1194,0x100,0x119e,0x100,0x11a1,0x100,
-0x4e00,0x100,0x4e8c,0x100,0x4e09,0x100,0x56db,0x100,0x4e0a,0x100,0x4e2d,0x100,0x4e0b,0x100,0x7532,0x100,
-0x4e59,0x100,0x4e19,0x100,0x4e01,0x100,0x5929,0x100,0x5730,0x100,0x4eba,0x300,0x28,0x1100,0x29,0x300,
-0x28,0x1102,0x29,0x300,0x28,0x1103,0x29,0x300,0x28,0x1105,0x29,0x300,0x28,0x1106,0x29,0x300,
-0x28,0x1107,0x29,0x300,0x28,0x1109,0x29,0x300,0x28,0x110b,0x29,0x300,0x28,0x110c,0x29,0x300,
-0x28,0x110e,0x29,0x300,0x28,0x110f,0x29,0x300,0x28,0x1110,0x29,0x300,0x28,0x1111,0x29,0x300,
-0x28,0x1112,0x29,0x400,0x28,0x1100,0x1161,0x29,0x400,0x28,0x1102,0x1161,0x29,0x400,0x28,0x1103,
-0x1161,0x29,0x400,0x28,0x1105,0x1161,0x29,0x400,0x28,0x1106,0x1161,0x29,0x400,0x28,0x1107,0x1161,
-0x29,0x400,0x28,0x1109,0x1161,0x29,0x400,0x28,0x110b,0x1161,0x29,0x400,0x28,0x110c,0x1161,0x29,
-0x400,0x28,0x110e,0x1161,0x29,0x400,0x28,0x110f,0x1161,0x29,0x400,0x28,0x1110,0x1161,0x29,0x400,
-0x28,0x1111,0x1161,0x29,0x400,0x28,0x1112,0x1161,0x29,0x400,0x28,0x110c,0x116e,0x29,0x700,0x28,
-0x110b,0x1169,0x110c,0x1165,0x11ab,0x29,0x600,0x28,0x110b,0x1169,0x1112,0x116e,0x29,0x300,0x28,0x4e00,
-0x29,0x300,0x28,0x4e8c,0x29,0x300,0x28,0x4e09,0x29,0x300,0x28,0x56db,0x29,0x300,0x28,0x4e94,
-0x29,0x300,0x28,0x516d,0x29,0x300,0x28,0x4e03,0x29,0x300,0x28,0x516b,0x29,0x300,0x28,0x4e5d,
-0x29,0x300,0x28,0x5341,0x29,0x300,0x28,0x6708,0x29,0x300,0x28,0x706b,0x29,0x300,0x28,0x6c34,
-0x29,0x300,0x28,0x6728,0x29,0x300,0x28,0x91d1,0x29,0x300,0x28,0x571f,0x29,0x300,0x28,0x65e5,
-0x29,0x300,0x28,0x682a,0x29,0x300,0x28,0x6709,0x29,0x300,0x28,0x793e,0x29,0x300,0x28,0x540d,
-0x29,0x300,0x28,0x7279,0x29,0x300,0x28,0x8ca1,0x29,0x300,0x28,0x795d,0x29,0x300,0x28,0x52b4,
-0x29,0x300,0x28,0x4ee3,0x29,0x300,0x28,0x547c,0x29,0x300,0x28,0x5b66,0x29,0x300,0x28,0x76e3,
-0x29,0x300,0x28,0x4f01,0x29,0x300,0x28,0x8cc7,0x29,0x300,0x28,0x5354,0x29,0x300,0x28,0x796d,
-0x29,0x300,0x28,0x4f11,0x29,0x300,0x28,0x81ea,0x29,0x300,0x28,0x81f3,0x29,0x200,0x32,0x31,
-0x200,0x32,0x32,0x200,0x32,0x33,0x200,0x32,0x34,0x200,0x32,0x35,0x200,0x32,0x36,0x200,
-0x32,0x37,0x200,0x32,0x38,0x200,0x32,0x39,0x200,0x33,0x30,0x200,0x33,0x31,0x200,0x33,
-0x32,0x200,0x33,0x33,0x200,0x33,0x34,0x200,0x33,0x35,0x100,0x1100,0x100,0x1102,0x100,0x1103,
-0x100,0x1105,0x100,0x1106,0x100,0x1107,0x100,0x1109,0x100,0x110b,0x100,0x110c,0x100,0x110e,0x100,0x110f,
-0x100,0x1110,0x100,0x1111,0x100,0x1112,0x200,0x1100,0x1161,0x200,0x1102,0x1161,0x200,0x1103,0x1161,0x200,
-0x1105,0x1161,0x200,0x1106,0x1161,0x200,0x1107,0x1161,0x200,0x1109,0x1161,0x200,0x110b,0x1161,0x200,0x110c,
-0x1161,0x200,0x110e,0x1161,0x200,0x110f,0x1161,0x200,0x1110,0x1161,0x200,0x1111,0x1161,0x200,0x1112,0x1161,
-0x500,0x110e,0x1161,0x11b7,0x1100,0x1169,0x400,0x110c,0x116e,0x110b,0x1174,0x200,0x110b,0x116e,0x100,0x4e00,
-0x100,0x4e8c,0x100,0x4e09,0x100,0x56db,0x100,0x4e94,0x100,0x516d,0x100,0x4e03,0x100,0x516b,0x100,0x4e5d,
-0x100,0x5341,0x100,0x6708,0x100,0x706b,0x100,0x6c34,0x100,0x6728,0x100,0x91d1,0x100,0x571f,0x100,0x65e5,
-0x100,0x682a,0x100,0x6709,0x100,0x793e,0x100,0x540d,0x100,0x7279,0x100,0x8ca1,0x100,0x795d,0x100,0x52b4,
-0x100,0x79d8,0x100,0x7537,0x100,0x5973,0x100,0x9069,0x100,0x512a,0x100,0x5370,0x100,0x6ce8,0x100,0x9805,
-0x100,0x4f11,0x100,0x5199,0x100,0x6b63,0x100,0x4e0a,0x100,0x4e2d,0x100,0x4e0b,0x100,0x5de6,0x100,0x53f3,
-0x100,0x533b,0x100,0x5b97,0x100,0x5b66,0x100,0x76e3,0x100,0x4f01,0x100,0x8cc7,0x100,0x5354,0x100,0x591c,
-0x200,0x33,0x36,0x200,0x33,0x37,0x200,0x33,0x38,0x200,0x33,0x39,0x200,0x34,0x30,0x200,
-0x34,0x31,0x200,0x34,0x32,0x200,0x34,0x33,0x200,0x34,0x34,0x200,0x34,0x35,0x200,0x34,
-0x36,0x200,0x34,0x37,0x200,0x34,0x38,0x200,0x34,0x39,0x200,0x35,0x30,0x200,0x31,0x6708,
-0x200,0x32,0x6708,0x200,0x33,0x6708,0x200,0x34,0x6708,0x200,0x35,0x6708,0x200,0x36,0x6708,0x200,
-0x37,0x6708,0x200,0x38,0x6708,0x200,0x39,0x6708,0x300,0x31,0x30,0x6708,0x300,0x31,0x31,0x6708,
-0x300,0x31,0x32,0x6708,0x300,0x65,0x72,0x67,0x100,0x30a2,0x100,0x30a4,0x100,0x30a6,0x100,0x30a8,
-0x100,0x30aa,0x100,0x30ab,0x100,0x30ad,0x100,0x30af,0x100,0x30b1,0x100,0x30b3,0x100,0x30b5,0x100,0x30b7,
-0x100,0x30b9,0x100,0x30bb,0x100,0x30bd,0x100,0x30bf,0x100,0x30c1,0x100,0x30c4,0x100,0x30c6,0x100,0x30c8,
-0x100,0x30ca,0x100,0x30cb,0x100,0x30cc,0x100,0x30cd,0x100,0x30ce,0x100,0x30cf,0x100,0x30d2,0x100,0x30d5,
-0x100,0x30d8,0x100,0x30db,0x100,0x30de,0x100,0x30df,0x100,0x30e0,0x100,0x30e1,0x100,0x30e2,0x100,0x30e4,
-0x100,0x30e6,0x100,0x30e8,0x100,0x30e9,0x100,0x30ea,0x100,0x30eb,0x100,0x30ec,0x100,0x30ed,0x100,0x30ef,
-0x100,0x30f0,0x100,0x30f1,0x100,0x30f2,0x500,0x30a2,0x30cf,0x309a,0x30fc,0x30c8,0x400,0x30a2,0x30eb,0x30d5,
-0x30a1,0x500,0x30a2,0x30f3,0x30d8,0x309a,0x30a2,0x300,0x30a2,0x30fc,0x30eb,0x8500,8,0x30a4,0x30cb,0x30f3,
-0x30af,0x3099,0x300,0x30a4,0x30f3,0x30c1,0x300,0x30a6,0x30a9,0x30f3,0x8600,8,0x30a8,0x30b9,0x30af,0x30fc,
-0x30c8,0x3099,0x400,0x30a8,0x30fc,0x30ab,0x30fc,0x300,0x30aa,0x30f3,0x30b9,0x300,0x30aa,0x30fc,0x30e0,0x300,
-0x30ab,0x30a4,0x30ea,0x400,0x30ab,0x30e9,0x30c3,0x30c8,0x400,0x30ab,0x30ed,0x30ea,0x30fc,0x400,0x30ab,0x3099,
-0x30ed,0x30f3,0x400,0x30ab,0x3099,0x30f3,0x30de,0x8400,8,0x30ad,0x3099,0x30ab,0x3099,0x400,0x30ad,0x3099,
-0x30cb,0x30fc,0x400,0x30ad,0x30e5,0x30ea,0x30fc,0x600,0x30ad,0x3099,0x30eb,0x30bf,0x3099,0x30fc,0x200,0x30ad,
-0x30ed,0x600,0x30ad,0x30ed,0x30af,0x3099,0x30e9,0x30e0,0x600,0x30ad,0x30ed,0x30e1,0x30fc,0x30c8,0x30eb,0x500,
-0x30ad,0x30ed,0x30ef,0x30c3,0x30c8,0x400,0x30af,0x3099,0x30e9,0x30e0,0x600,0x30af,0x3099,0x30e9,0x30e0,0x30c8,
-0x30f3,0x600,0x30af,0x30eb,0x30bb,0x3099,0x30a4,0x30ed,0x400,0x30af,0x30ed,0x30fc,0x30cd,0x300,0x30b1,0x30fc,
-0x30b9,0x300,0x30b3,0x30eb,0x30ca,0x8400,8,0x30b3,0x30fc,0x30db,0x309a,0x400,0x30b5,0x30a4,0x30af,0x30eb,
-0x500,0x30b5,0x30f3,0x30c1,0x30fc,0x30e0,0x8500,8,0x30b7,0x30ea,0x30f3,0x30af,0x3099,0x300,0x30bb,0x30f3,
-0x30c1,0x300,0x30bb,0x30f3,0x30c8,0x400,0x30bf,0x3099,0x30fc,0x30b9,0x300,0x30c6,0x3099,0x30b7,0x300,0x30c8,
-0x3099,0x30eb,0x200,0x30c8,0x30f3,0x200,0x30ca,0x30ce,0x300,0x30ce,0x30c3,0x30c8,0x300,0x30cf,0x30a4,0x30c4,
-0x600,0x30cf,0x309a,0x30fc,0x30bb,0x30f3,0x30c8,0x400,0x30cf,0x309a,0x30fc,0x30c4,0x500,0x30cf,0x3099,0x30fc,
-0x30ec,0x30eb,0x600,0x30d2,0x309a,0x30a2,0x30b9,0x30c8,0x30eb,0x400,0x30d2,0x309a,0x30af,0x30eb,0x300,0x30d2,
-0x309a,0x30b3,0x300,0x30d2,0x3099,0x30eb,0x8600,8,0x30d5,0x30a1,0x30e9,0x30c3,0x30c8,0x3099,0x400,0x30d5,
-0x30a3,0x30fc,0x30c8,0x600,0x30d5,0x3099,0x30c3,0x30b7,0x30a7,0x30eb,0x300,0x30d5,0x30e9,0x30f3,0x500,0x30d8,
-0x30af,0x30bf,0x30fc,0x30eb,0x300,0x30d8,0x309a,0x30bd,0x400,0x30d8,0x309a,0x30cb,0x30d2,0x300,0x30d8,0x30eb,
-0x30c4,0x400,0x30d8,0x309a,0x30f3,0x30b9,0x8500,8,0x30d8,0x309a,0x30fc,0x30b7,0x3099,0x400,0x30d8,0x3099,
-0x30fc,0x30bf,0x500,0x30db,0x309a,0x30a4,0x30f3,0x30c8,0x400,0x30db,0x3099,0x30eb,0x30c8,0x200,0x30db,0x30f3,
-0x8500,8,0x30db,0x309a,0x30f3,0x30c8,0x3099,0x300,0x30db,0x30fc,0x30eb,0x300,0x30db,0x30fc,0x30f3,0x400,
-0x30de,0x30a4,0x30af,0x30ed,0x300,0x30de,0x30a4,0x30eb,0x300,0x30de,0x30c3,0x30cf,0x300,0x30de,0x30eb,0x30af,
-0x500,0x30de,0x30f3,0x30b7,0x30e7,0x30f3,0x400,0x30df,0x30af,0x30ed,0x30f3,0x200,0x30df,0x30ea,0x600,0x30df,
-0x30ea,0x30cf,0x3099,0x30fc,0x30eb,0x8300,8,0x30e1,0x30ab,0x3099,0x500,0x30e1,0x30ab,0x3099,0x30c8,0x30f3,
-0x400,0x30e1,0x30fc,0x30c8,0x30eb,0x8400,8,0x30e4,0x30fc,0x30c8,0x3099,0x300,0x30e4,0x30fc,0x30eb,0x300,
-0x30e6,0x30a2,0x30f3,0x400,0x30ea,0x30c3,0x30c8,0x30eb,0x200,0x30ea,0x30e9,0x400,0x30eb,0x30d2,0x309a,0x30fc,
-0x500,0x30eb,0x30fc,0x30d5,0x3099,0x30eb,0x200,0x30ec,0x30e0,0x600,0x30ec,0x30f3,0x30c8,0x30b1,0x3099,0x30f3,
-0x300,0x30ef,0x30c3,0x30c8,0x200,0x30,0x70b9,0x200,0x31,0x70b9,0x200,0x32,0x70b9,0x200,0x33,0x70b9,
-0x200,0x34,0x70b9,0x200,0x35,0x70b9,0x200,0x36,0x70b9,0x200,0x37,0x70b9,0x200,0x38,0x70b9,0x200,
-0x39,0x70b9,0x300,0x31,0x30,0x70b9,0x300,0x31,0x31,0x70b9,0x300,0x31,0x32,0x70b9,0x300,0x31,
-0x33,0x70b9,0x300,0x31,0x34,0x70b9,0x300,0x31,0x35,0x70b9,0x300,0x31,0x36,0x70b9,0x300,0x31,
-0x37,0x70b9,0x300,0x31,0x38,0x70b9,0x300,0x31,0x39,0x70b9,0x300,0x32,0x30,0x70b9,0x300,0x32,
-0x31,0x70b9,0x300,0x32,0x32,0x70b9,0x300,0x32,0x33,0x70b9,0x300,0x32,0x34,0x70b9,0x200,0x64,
-0x61,0x300,0x62,0x61,0x72,0x200,0x70,0x63,0x200,0x64,0x6d,0x300,0x64,0x6d,0x32,0x300,
-0x64,0x6d,0x33,0x200,0x5e73,0x6210,0x200,0x662d,0x548c,0x200,0x5927,0x6b63,0x200,0x660e,0x6cbb,0x400,
-0x682a,0x5f0f,0x4f1a,0x793e,0x300,0x63,0x61,0x6c,0x400,0x6b,0x63,0x61,0x6c,0x200,0x3bc,0x67,
-0x200,0x6d,0x67,0x200,0x6b,0x67,0x200,0x3bc,0x6c,0x200,0x6d,0x6c,0x200,0x64,0x6c,0x200,
-0x6b,0x6c,0x200,0x66,0x6d,0x200,0x6e,0x6d,0x200,0x3bc,0x6d,0x200,0x6d,0x6d,0x200,0x63,
-0x6d,0x200,0x6b,0x6d,0x300,0x6d,0x6d,0x32,0x300,0x63,0x6d,0x32,0x200,0x6d,0x32,0x300,
-0x6b,0x6d,0x32,0x300,0x6d,0x6d,0x33,0x300,0x63,0x6d,0x33,0x200,0x6d,0x33,0x300,0x6b,
-0x6d,0x33,0x300,0x6d,0x2215,0x73,0x400,0x6d,0x2215,0x73,0x32,0x300,0x72,0x61,0x64,0x500,
-0x72,0x61,0x64,0x2215,0x73,0x600,0x72,0x61,0x64,0x2215,0x73,0x32,0x200,0x70,0x73,0x200,
-0x6e,0x73,0x200,0x3bc,0x73,0x200,0x6d,0x73,0x400,0x61,0x2e,0x6d,0x2e,0x200,0x63,0x63,
-0x200,0x63,0x64,0x200,0x68,0x61,0x200,0x69,0x6e,0x200,0x6b,0x74,0x200,0x6c,0x6d,0x200,
-0x6c,0x6e,0x300,0x6c,0x6f,0x67,0x200,0x6c,0x78,0x200,0x6d,0x62,0x300,0x6d,0x69,0x6c,
-0x300,0x6d,0x6f,0x6c,0x400,0x70,0x2e,0x6d,0x2e,0x200,0x73,0x72,0x200,0x31,0x65e5,0x200,
-0x32,0x65e5,0x200,0x33,0x65e5,0x200,0x34,0x65e5,0x200,0x35,0x65e5,0x200,0x36,0x65e5,0x200,0x37,
-0x65e5,0x200,0x38,0x65e5,0x200,0x39,0x65e5,0x300,0x31,0x30,0x65e5,0x300,0x31,0x31,0x65e5,0x300,
-0x31,0x32,0x65e5,0x300,0x31,0x33,0x65e5,0x300,0x31,0x34,0x65e5,0x300,0x31,0x35,0x65e5,0x300,
-0x31,0x36,0x65e5,0x300,0x31,0x37,0x65e5,0x300,0x31,0x38,0x65e5,0x300,0x31,0x39,0x65e5,0x300,
-0x32,0x30,0x65e5,0x300,0x32,0x31,0x65e5,0x300,0x32,0x32,0x65e5,0x300,0x32,0x33,0x65e5,0x300,
-0x32,0x34,0x65e5,0x300,0x32,0x35,0x65e5,0x300,0x32,0x36,0x65e5,0x300,0x32,0x37,0x65e5,0x300,
-0x32,0x38,0x65e5,0x300,0x32,0x39,0x65e5,0x300,0x33,0x30,0x65e5,0x300,0x33,0x31,0x65e5,0x300,
-0x67,0x61,0x6c,0x200,0x66,0x66,0x200,0x66,0x69,0x200,0x66,0x6c,0x300,0x66,0x66,0x69,
-0x300,0x66,0x66,0x6c,0x200,0x73,0x74,0x200,0x73,0x74,0x200,0x574,0x576,0x200,0x574,0x565,
-0x200,0x574,0x56b,0x200,0x57e,0x576,0x200,0x574,0x56d,0x100,0x5e2,0x100,0x5d0,0x100,0x5d3,0x100,
-0x5d4,0x100,0x5db,0x100,0x5dc,0x100,0x5dd,0x100,0x5e8,0x100,0x5ea,0x100,0x2b,0x200,0x5d0,0x5dc,
-0x100,0x671,0x100,0x671,0x100,0x67b,0x100,0x67b,0x100,0x67b,0x100,0x67b,0x100,0x67e,0x100,0x67e,
-0x100,0x67e,0x100,0x67e,0x100,0x680,0x100,0x680,0x100,0x680,0x100,0x680,0x100,0x67a,0x100,0x67a,
-0x100,0x67a,0x100,0x67a,0x100,0x67f,0x100,0x67f,0x100,0x67f,0x100,0x67f,0x100,0x679,0x100,0x679,
-0x100,0x679,0x100,0x679,0x100,0x6a4,0x100,0x6a4,0x100,0x6a4,0x100,0x6a4,0x100,0x6a6,0x100,0x6a6,
-0x100,0x6a6,0x100,0x6a6,0x100,0x684,0x100,0x684,0x100,0x684,0x100,0x684,0x100,0x683,0x100,0x683,
-0x100,0x683,0x100,0x683,0x100,0x686,0x100,0x686,0x100,0x686,0x100,0x686,0x100,0x687,0x100,0x687,
-0x100,0x687,0x100,0x687,0x100,0x68d,0x100,0x68d,0x100,0x68c,0x100,0x68c,0x100,0x68e,0x100,0x68e,
-0x100,0x688,0x100,0x688,0x100,0x698,0x100,0x698,0x100,0x691,0x100,0x691,0x100,0x6a9,0x100,0x6a9,
-0x100,0x6a9,0x100,0x6a9,0x100,0x6af,0x100,0x6af,0x100,0x6af,0x100,0x6af,0x100,0x6b3,0x100,0x6b3,
-0x100,0x6b3,0x100,0x6b3,0x100,0x6b1,0x100,0x6b1,0x100,0x6b1,0x100,0x6b1,0x100,0x6ba,0x100,0x6ba,
-0x100,0x6bb,0x100,0x6bb,0x100,0x6bb,0x100,0x6bb,0x8200,0xe6,0x6d5,0x654,0x8200,0xe6,0x6d5,0x654,
-0x100,0x6c1,0x100,0x6c1,0x100,0x6c1,0x100,0x6c1,0x100,0x6be,0x100,0x6be,0x100,0x6be,0x100,0x6be,
-0x100,0x6d2,0x100,0x6d2,0x8200,0xe6,0x6d2,0x654,0x8200,0xe6,0x6d2,0x654,0x100,0x6ad,0x100,0x6ad,
-0x100,0x6ad,0x100,0x6ad,0x100,0x6c7,0x100,0x6c7,0x100,0x6c6,0x100,0x6c6,0x100,0x6c8,0x100,0x6c8,
-0x200,0x6c7,0x674,0x100,0x6cb,0x100,0x6cb,0x100,0x6c5,0x100,0x6c5,0x100,0x6c9,0x100,0x6c9,0x100,
-0x6d0,0x100,0x6d0,0x100,0x6d0,0x100,0x6d0,0x100,0x649,0x100,0x649,0x300,0x64a,0x654,0x627,0x300,
-0x64a,0x654,0x627,0x300,0x64a,0x654,0x6d5,0x300,0x64a,0x654,0x6d5,0x300,0x64a,0x654,0x648,0x300,
-0x64a,0x654,0x648,0x300,0x64a,0x654,0x6c7,0x300,0x64a,0x654,0x6c7,0x300,0x64a,0x654,0x6c6,0x300,
-0x64a,0x654,0x6c6,0x300,0x64a,0x654,0x6c8,0x300,0x64a,0x654,0x6c8,0x300,0x64a,0x654,0x6d0,0x300,
-0x64a,0x654,0x6d0,0x300,0x64a,0x654,0x6d0,0x300,0x64a,0x654,0x649,0x300,0x64a,0x654,0x649,0x300,
-0x64a,0x654,0x649,0x100,0x6cc,0x100,0x6cc,0x100,0x6cc,0x100,0x6cc,0x300,0x64a,0x654,0x62c,0x300,
-0x64a,0x654,0x62d,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,0x649,0x300,0x64a,0x654,0x64a,0x200,
-0x628,0x62c,0x200,0x628,0x62d,0x200,0x628,0x62e,0x200,0x628,0x645,0x200,0x628,0x649,0x200,0x628,
-0x64a,0x200,0x62a,0x62c,0x200,0x62a,0x62d,0x200,0x62a,0x62e,0x200,0x62a,0x645,0x200,0x62a,0x649,
-0x200,0x62a,0x64a,0x200,0x62b,0x62c,0x200,0x62b,0x645,0x200,0x62b,0x649,0x200,0x62b,0x64a,0x200,
-0x62c,0x62d,0x200,0x62c,0x645,0x200,0x62d,0x62c,0x200,0x62d,0x645,0x200,0x62e,0x62c,0x200,0x62e,
-0x62d,0x200,0x62e,0x645,0x200,0x633,0x62c,0x200,0x633,0x62d,0x200,0x633,0x62e,0x200,0x633,0x645,
-0x200,0x635,0x62d,0x200,0x635,0x645,0x200,0x636,0x62c,0x200,0x636,0x62d,0x200,0x636,0x62e,0x200,
-0x636,0x645,0x200,0x637,0x62d,0x200,0x637,0x645,0x200,0x638,0x645,0x200,0x639,0x62c,0x200,0x639,
-0x645,0x200,0x63a,0x62c,0x200,0x63a,0x645,0x200,0x641,0x62c,0x200,0x641,0x62d,0x200,0x641,0x62e,
-0x200,0x641,0x645,0x200,0x641,0x649,0x200,0x641,0x64a,0x200,0x642,0x62d,0x200,0x642,0x645,0x200,
-0x642,0x649,0x200,0x642,0x64a,0x200,0x643,0x627,0x200,0x643,0x62c,0x200,0x643,0x62d,0x200,0x643,
-0x62e,0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x643,0x649,0x200,0x643,0x64a,0x200,0x644,0x62c,
-0x200,0x644,0x62d,0x200,0x644,0x62e,0x200,0x644,0x645,0x200,0x644,0x649,0x200,0x644,0x64a,0x200,
-0x645,0x62c,0x200,0x645,0x62d,0x200,0x645,0x62e,0x200,0x645,0x645,0x200,0x645,0x649,0x200,0x645,
-0x64a,0x200,0x646,0x62c,0x200,0x646,0x62d,0x200,0x646,0x62e,0x200,0x646,0x645,0x200,0x646,0x649,
-0x200,0x646,0x64a,0x200,0x647,0x62c,0x200,0x647,0x645,0x200,0x647,0x649,0x200,0x647,0x64a,0x200,
-0x64a,0x62c,0x200,0x64a,0x62d,0x200,0x64a,0x62e,0x200,0x64a,0x645,0x200,0x64a,0x649,0x200,0x64a,
-0x64a,0x8200,0x23,0x630,0x670,0x8200,0x23,0x631,0x670,0x8200,0x23,0x649,0x670,0x8300,0x21,0x20,
-0x64c,0x651,0x8300,0x21,0x20,0x64d,0x651,0x8300,0x21,0x20,0x64e,0x651,0x8300,0x21,0x20,0x64f,
-0x651,0x8300,0x21,0x20,0x650,0x651,0x8300,0x23,0x20,0x651,0x670,0x300,0x64a,0x654,0x631,0x300,
-0x64a,0x654,0x632,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,0x646,0x300,0x64a,0x654,0x649,0x300,
-0x64a,0x654,0x64a,0x200,0x628,0x631,0x200,0x628,0x632,0x200,0x628,0x645,0x200,0x628,0x646,0x200,
-0x628,0x649,0x200,0x628,0x64a,0x200,0x62a,0x631,0x200,0x62a,0x632,0x200,0x62a,0x645,0x200,0x62a,
-0x646,0x200,0x62a,0x649,0x200,0x62a,0x64a,0x200,0x62b,0x631,0x200,0x62b,0x632,0x200,0x62b,0x645,
-0x200,0x62b,0x646,0x200,0x62b,0x649,0x200,0x62b,0x64a,0x200,0x641,0x649,0x200,0x641,0x64a,0x200,
-0x642,0x649,0x200,0x642,0x64a,0x200,0x643,0x627,0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x643,
-0x649,0x200,0x643,0x64a,0x200,0x644,0x645,0x200,0x644,0x649,0x200,0x644,0x64a,0x200,0x645,0x627,
-0x200,0x645,0x645,0x200,0x646,0x631,0x200,0x646,0x632,0x200,0x646,0x645,0x200,0x646,0x646,0x200,
-0x646,0x649,0x200,0x646,0x64a,0x8200,0x23,0x649,0x670,0x200,0x64a,0x631,0x200,0x64a,0x632,0x200,
-0x64a,0x645,0x200,0x64a,0x646,0x200,0x64a,0x649,0x200,0x64a,0x64a,0x300,0x64a,0x654,0x62c,0x300,
-0x64a,0x654,0x62d,0x300,0x64a,0x654,0x62e,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,0x647,0x200,
-0x628,0x62c,0x200,0x628,0x62d,0x200,0x628,0x62e,0x200,0x628,0x645,0x200,0x628,0x647,0x200,0x62a,
-0x62c,0x200,0x62a,0x62d,0x200,0x62a,0x62e,0x200,0x62a,0x645,0x200,0x62a,0x647,0x200,0x62b,0x645,
-0x200,0x62c,0x62d,0x200,0x62c,0x645,0x200,0x62d,0x62c,0x200,0x62d,0x645,0x200,0x62e,0x62c,0x200,
-0x62e,0x645,0x200,0x633,0x62c,0x200,0x633,0x62d,0x200,0x633,0x62e,0x200,0x633,0x645,0x200,0x635,
-0x62d,0x200,0x635,0x62e,0x200,0x635,0x645,0x200,0x636,0x62c,0x200,0x636,0x62d,0x200,0x636,0x62e,
-0x200,0x636,0x645,0x200,0x637,0x62d,0x200,0x638,0x645,0x200,0x639,0x62c,0x200,0x639,0x645,0x200,
-0x63a,0x62c,0x200,0x63a,0x645,0x200,0x641,0x62c,0x200,0x641,0x62d,0x200,0x641,0x62e,0x200,0x641,
-0x645,0x200,0x642,0x62d,0x200,0x642,0x645,0x200,0x643,0x62c,0x200,0x643,0x62d,0x200,0x643,0x62e,
-0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x644,0x62c,0x200,0x644,0x62d,0x200,0x644,0x62e,0x200,
-0x644,0x645,0x200,0x644,0x647,0x200,0x645,0x62c,0x200,0x645,0x62d,0x200,0x645,0x62e,0x200,0x645,
-0x645,0x200,0x646,0x62c,0x200,0x646,0x62d,0x200,0x646,0x62e,0x200,0x646,0x645,0x200,0x646,0x647,
-0x200,0x647,0x62c,0x200,0x647,0x645,0x8200,0x23,0x647,0x670,0x200,0x64a,0x62c,0x200,0x64a,0x62d,
-0x200,0x64a,0x62e,0x200,0x64a,0x645,0x200,0x64a,0x647,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,
-0x647,0x200,0x628,0x645,0x200,0x628,0x647,0x200,0x62a,0x645,0x200,0x62a,0x647,0x200,0x62b,0x645,
-0x200,0x62b,0x647,0x200,0x633,0x645,0x200,0x633,0x647,0x200,0x634,0x645,0x200,0x634,0x647,0x200,
-0x643,0x644,0x200,0x643,0x645,0x200,0x644,0x645,0x200,0x646,0x645,0x200,0x646,0x647,0x200,0x64a,
-0x645,0x200,0x64a,0x647,0x8300,0x21,0x640,0x64e,0x651,0x8300,0x21,0x640,0x64f,0x651,0x8300,0x21,
-0x640,0x650,0x651,0x200,0x637,0x649,0x200,0x637,0x64a,0x200,0x639,0x649,0x200,0x639,0x64a,0x200,
-0x63a,0x649,0x200,0x63a,0x64a,0x200,0x633,0x649,0x200,0x633,0x64a,0x200,0x634,0x649,0x200,0x634,
-0x64a,0x200,0x62d,0x649,0x200,0x62d,0x64a,0x200,0x62c,0x649,0x200,0x62c,0x64a,0x200,0x62e,0x649,
-0x200,0x62e,0x64a,0x200,0x635,0x649,0x200,0x635,0x64a,0x200,0x636,0x649,0x200,0x636,0x64a,0x200,
-0x634,0x62c,0x200,0x634,0x62d,0x200,0x634,0x62e,0x200,0x634,0x645,0x200,0x634,0x631,0x200,0x633,
-0x631,0x200,0x635,0x631,0x200,0x636,0x631,0x200,0x637,0x649,0x200,0x637,0x64a,0x200,0x639,0x649,
-0x200,0x639,0x64a,0x200,0x63a,0x649,0x200,0x63a,0x64a,0x200,0x633,0x649,0x200,0x633,0x64a,0x200,
-0x634,0x649,0x200,0x634,0x64a,0x200,0x62d,0x649,0x200,0x62d,0x64a,0x200,0x62c,0x649,0x200,0x62c,
-0x64a,0x200,0x62e,0x649,0x200,0x62e,0x64a,0x200,0x635,0x649,0x200,0x635,0x64a,0x200,0x636,0x649,
-0x200,0x636,0x64a,0x200,0x634,0x62c,0x200,0x634,0x62d,0x200,0x634,0x62e,0x200,0x634,0x645,0x200,
-0x634,0x631,0x200,0x633,0x631,0x200,0x635,0x631,0x200,0x636,0x631,0x200,0x634,0x62c,0x200,0x634,
-0x62d,0x200,0x634,0x62e,0x200,0x634,0x645,0x200,0x633,0x647,0x200,0x634,0x647,0x200,0x637,0x645,
-0x200,0x633,0x62c,0x200,0x633,0x62d,0x200,0x633,0x62e,0x200,0x634,0x62c,0x200,0x634,0x62d,0x200,
-0x634,0x62e,0x200,0x637,0x645,0x200,0x638,0x645,0x8200,0x1b,0x627,0x64b,0x8200,0x1b,0x627,0x64b,
-0x300,0x62a,0x62c,0x645,0x300,0x62a,0x62d,0x62c,0x300,0x62a,0x62d,0x62c,0x300,0x62a,0x62d,0x645,
-0x300,0x62a,0x62e,0x645,0x300,0x62a,0x645,0x62c,0x300,0x62a,0x645,0x62d,0x300,0x62a,0x645,0x62e,
-0x300,0x62c,0x645,0x62d,0x300,0x62c,0x645,0x62d,0x300,0x62d,0x645,0x64a,0x300,0x62d,0x645,0x649,
-0x300,0x633,0x62d,0x62c,0x300,0x633,0x62c,0x62d,0x300,0x633,0x62c,0x649,0x300,0x633,0x645,0x62d,
-0x300,0x633,0x645,0x62d,0x300,0x633,0x645,0x62c,0x300,0x633,0x645,0x645,0x300,0x633,0x645,0x645,
-0x300,0x635,0x62d,0x62d,0x300,0x635,0x62d,0x62d,0x300,0x635,0x645,0x645,0x300,0x634,0x62d,0x645,
-0x300,0x634,0x62d,0x645,0x300,0x634,0x62c,0x64a,0x300,0x634,0x645,0x62e,0x300,0x634,0x645,0x62e,
-0x300,0x634,0x645,0x645,0x300,0x634,0x645,0x645,0x300,0x636,0x62d,0x649,0x300,0x636,0x62e,0x645,
-0x300,0x636,0x62e,0x645,0x300,0x637,0x645,0x62d,0x300,0x637,0x645,0x62d,0x300,0x637,0x645,0x645,
-0x300,0x637,0x645,0x64a,0x300,0x639,0x62c,0x645,0x300,0x639,0x645,0x645,0x300,0x639,0x645,0x645,
-0x300,0x639,0x645,0x649,0x300,0x63a,0x645,0x645,0x300,0x63a,0x645,0x64a,0x300,0x63a,0x645,0x649,
-0x300,0x641,0x62e,0x645,0x300,0x641,0x62e,0x645,0x300,0x642,0x645,0x62d,0x300,0x642,0x645,0x645,
-0x300,0x644,0x62d,0x645,0x300,0x644,0x62d,0x64a,0x300,0x644,0x62d,0x649,0x300,0x644,0x62c,0x62c,
-0x300,0x644,0x62c,0x62c,0x300,0x644,0x62e,0x645,0x300,0x644,0x62e,0x645,0x300,0x644,0x645,0x62d,
-0x300,0x644,0x645,0x62d,0x300,0x645,0x62d,0x62c,0x300,0x645,0x62d,0x645,0x300,0x645,0x62d,0x64a,
-0x300,0x645,0x62c,0x62d,0x300,0x645,0x62c,0x645,0x300,0x645,0x62e,0x62c,0x300,0x645,0x62e,0x645,
-0x300,0x645,0x62c,0x62e,0x300,0x647,0x645,0x62c,0x300,0x647,0x645,0x645,0x300,0x646,0x62d,0x645,
-0x300,0x646,0x62d,0x649,0x300,0x646,0x62c,0x645,0x300,0x646,0x62c,0x645,0x300,0x646,0x62c,0x649,
-0x300,0x646,0x645,0x64a,0x300,0x646,0x645,0x649,0x300,0x64a,0x645,0x645,0x300,0x64a,0x645,0x645,
-0x300,0x628,0x62e,0x64a,0x300,0x62a,0x62c,0x64a,0x300,0x62a,0x62c,0x649,0x300,0x62a,0x62e,0x64a,
-0x300,0x62a,0x62e,0x649,0x300,0x62a,0x645,0x64a,0x300,0x62a,0x645,0x649,0x300,0x62c,0x645,0x64a,
-0x300,0x62c,0x62d,0x649,0x300,0x62c,0x645,0x649,0x300,0x633,0x62e,0x649,0x300,0x635,0x62d,0x64a,
-0x300,0x634,0x62d,0x64a,0x300,0x636,0x62d,0x64a,0x300,0x644,0x62c,0x64a,0x300,0x644,0x645,0x64a,
-0x300,0x64a,0x62d,0x64a,0x300,0x64a,0x62c,0x64a,0x300,0x64a,0x645,0x64a,0x300,0x645,0x645,0x64a,
-0x300,0x642,0x645,0x64a,0x300,0x646,0x62d,0x64a,0x300,0x642,0x645,0x62d,0x300,0x644,0x62d,0x645,
-0x300,0x639,0x645,0x64a,0x300,0x643,0x645,0x64a,0x300,0x646,0x62c,0x62d,0x300,0x645,0x62e,0x64a,
-0x300,0x644,0x62c,0x645,0x300,0x643,0x645,0x645,0x300,0x644,0x62c,0x645,0x300,0x646,0x62c,0x62d,
-0x300,0x62c,0x62d,0x64a,0x300,0x62d,0x62c,0x64a,0x300,0x645,0x62c,0x64a,0x300,0x641,0x645,0x64a,
-0x300,0x628,0x62d,0x64a,0x300,0x643,0x645,0x645,0x300,0x639,0x62c,0x645,0x300,0x635,0x645,0x645,
-0x300,0x633,0x62e,0x64a,0x300,0x646,0x62c,0x64a,0x300,0x635,0x644,0x6d2,0x300,0x642,0x644,0x6d2,
-0x400,0x627,0x644,0x644,0x647,0x400,0x627,0x643,0x628,0x631,0x400,0x645,0x62d,0x645,0x62f,0x400,
-0x635,0x644,0x639,0x645,0x400,0x631,0x633,0x648,0x644,0x400,0x639,0x644,0x64a,0x647,0x400,0x648,
-0x633,0x644,0x645,0x300,0x635,0x644,0x649,0x1200,0x635,0x644,0x649,0x20,0x627,0x644,0x644,0x647,
-0x20,0x639,0x644,0x64a,0x647,0x20,0x648,0x633,0x644,0x645,0x800,0x62c,0x644,0x20,0x62c,0x644,
-0x627,0x644,0x647,0x400,0x631,0x6cc,0x627,0x644,0x100,0x2c,0x100,0x3001,0x100,0x3002,0x100,0x3a,
-0x100,0x3b,0x100,0x21,0x100,0x3f,0x100,0x3016,0x100,0x3017,0x300,0x2e,0x2e,0x2e,0x200,0x2e,
-0x2e,0x100,0x2014,0x100,0x2013,0x100,0x5f,0x100,0x5f,0x100,0x28,0x100,0x29,0x100,0x7b,0x100,
-0x7d,0x100,0x3014,0x100,0x3015,0x100,0x3010,0x100,0x3011,0x100,0x300a,0x100,0x300b,0x100,0x3008,0x100,
-0x3009,0x100,0x300c,0x100,0x300d,0x100,0x300e,0x100,0x300f,0x100,0x5b,0x100,0x5d,0x8200,0xe6,0x20,
-0x305,0x8200,0xe6,0x20,0x305,0x8200,0xe6,0x20,0x305,0x8200,0xe6,0x20,0x305,0x100,0x5f,0x100,
-0x5f,0x100,0x5f,0x100,0x2c,0x100,0x3001,0x100,0x2e,0x100,0x3b,0x100,0x3a,0x100,0x3f,0x100,
-0x21,0x100,0x2014,0x100,0x28,0x100,0x29,0x100,0x7b,0x100,0x7d,0x100,0x3014,0x100,0x3015,0x100,
-0x23,0x100,0x26,0x100,0x2a,0x100,0x2b,0x100,0x2d,0x100,0x3c,0x100,0x3e,0x100,0x3d,0x100,
-0x5c,0x100,0x24,0x100,0x25,0x100,0x40,0x8200,0x1b,0x20,0x64b,0x8200,0x1b,0x640,0x64b,0x8200,
-0x1c,0x20,0x64c,0x8200,0x1d,0x20,0x64d,0x8200,0x1e,0x20,0x64e,0x8200,0x1e,0x640,0x64e,0x8200,
-0x1f,0x20,0x64f,0x8200,0x1f,0x640,0x64f,0x8200,0x20,0x20,0x650,0x8200,0x20,0x640,0x650,0x8200,
-0x21,0x20,0x651,0x8200,0x21,0x640,0x651,0x8200,0x22,0x20,0x652,0x8200,0x22,0x640,0x652,0x100,
-0x621,0x8200,0xe6,0x627,0x653,0x8200,0xe6,0x627,0x653,0x8200,0xe6,0x627,0x654,0x8200,0xe6,0x627,
-0x654,0x8200,0xe6,0x648,0x654,0x8200,0xe6,0x648,0x654,0x8200,0xdc,0x627,0x655,0x8200,0xdc,0x627,
-0x655,0x8200,0xe6,0x64a,0x654,0x8200,0xe6,0x64a,0x654,0x8200,0xe6,0x64a,0x654,0x8200,0xe6,0x64a,
-0x654,0x100,0x627,0x100,0x627,0x100,0x628,0x100,0x628,0x100,0x628,0x100,0x628,0x100,0x629,0x100,
-0x629,0x100,0x62a,0x100,0x62a,0x100,0x62a,0x100,0x62a,0x100,0x62b,0x100,0x62b,0x100,0x62b,0x100,
-0x62b,0x100,0x62c,0x100,0x62c,0x100,0x62c,0x100,0x62c,0x100,0x62d,0x100,0x62d,0x100,0x62d,0x100,
-0x62d,0x100,0x62e,0x100,0x62e,0x100,0x62e,0x100,0x62e,0x100,0x62f,0x100,0x62f,0x100,0x630,0x100,
-0x630,0x100,0x631,0x100,0x631,0x100,0x632,0x100,0x632,0x100,0x633,0x100,0x633,0x100,0x633,0x100,
-0x633,0x100,0x634,0x100,0x634,0x100,0x634,0x100,0x634,0x100,0x635,0x100,0x635,0x100,0x635,0x100,
-0x635,0x100,0x636,0x100,0x636,0x100,0x636,0x100,0x636,0x100,0x637,0x100,0x637,0x100,0x637,0x100,
-0x637,0x100,0x638,0x100,0x638,0x100,0x638,0x100,0x638,0x100,0x639,0x100,0x639,0x100,0x639,0x100,
-0x639,0x100,0x63a,0x100,0x63a,0x100,0x63a,0x100,0x63a,0x100,0x641,0x100,0x641,0x100,0x641,0x100,
-0x641,0x100,0x642,0x100,0x642,0x100,0x642,0x100,0x642,0x100,0x643,0x100,0x643,0x100,0x643,0x100,
-0x643,0x100,0x644,0x100,0x644,0x100,0x644,0x100,0x644,0x100,0x645,0x100,0x645,0x100,0x645,0x100,
-0x645,0x100,0x646,0x100,0x646,0x100,0x646,0x100,0x646,0x100,0x647,0x100,0x647,0x100,0x647,0x100,
-0x647,0x100,0x648,0x100,0x648,0x100,0x649,0x100,0x649,0x100,0x64a,0x100,0x64a,0x100,0x64a,0x100,
-0x64a,0x8300,0xe6,0x644,0x627,0x653,0x8300,0xe6,0x644,0x627,0x653,0x8300,0xe6,0x644,0x627,0x654,
-0x8300,0xe6,0x644,0x627,0x654,0x8300,0xdc,0x644,0x627,0x655,0x8300,0xdc,0x644,0x627,0x655,0x200,
-0x644,0x627,0x200,0x644,0x627,0x100,0x21,0x100,0x22,0x100,0x23,0x100,0x24,0x100,0x25,0x100,
-0x26,0x100,0x27,0x100,0x28,0x100,0x29,0x100,0x2a,0x100,0x2b,0x100,0x2c,0x100,0x2d,0x100,
-0x2e,0x100,0x2f,0x100,0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,
-0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x3a,0x100,0x3b,0x100,0x3c,0x100,0x3d,0x100,
-0x3e,0x100,0x3f,0x100,0x40,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,
+0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,
+0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,
+0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,
+0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,
+0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,
+0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,
+0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x41,0x100,0x42,0x100,
+0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,
+0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,
+0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,
+0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,
+0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,
+0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,
+0x3a9,0x100,0x3c2,0x100,0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,
+0x397,0x100,0x398,0x100,0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,
+0x39f,0x100,0x3a0,0x100,0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,
+0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,
+0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,
+0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,
+0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,0x391,0x100,0x392,0x100,
+0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,0x399,0x100,0x39a,0x100,
+0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,0x3a1,0x100,0x398,0x100,
+0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,0x3a9,0x100,0x3c2,0x100,
+0x391,0x100,0x392,0x100,0x393,0x100,0x394,0x100,0x395,0x100,0x396,0x100,0x397,0x100,0x398,0x100,
+0x399,0x100,0x39a,0x100,0x39b,0x100,0x39c,0x100,0x39d,0x100,0x39e,0x100,0x39f,0x100,0x3a0,0x100,
+0x3a1,0x100,0x398,0x100,0x3a3,0x100,0x3a4,0x100,0x3a5,0x100,0x3a6,0x100,0x3a7,0x100,0x3a8,0x100,
+0x3a9,0x100,0x3c2,0x100,0x3dc,0x81,0xe6e6,0x300,0x81,0xe6e6,0x301,0x81,0xe6e6,0x313,0x82,0xe6e6,
+0x308,0x301,1,0x2b9,1,0x3b,1,0xb7,0x82,7,0x915,0x93c,0x82,7,0x916,0x93c,
+0x82,7,0x917,0x93c,0x82,7,0x91c,0x93c,0x82,7,0x921,0x93c,0x82,7,0x922,0x93c,
+0x82,7,0x92b,0x93c,0x82,7,0x92f,0x93c,0x82,7,0x9a1,0x9bc,0x82,7,0x9a2,0x9bc,
+0x82,7,0x9af,0x9bc,0x82,7,0xa32,0xa3c,0x82,7,0xa38,0xa3c,0x82,7,0xa16,0xa3c,
+0x82,7,0xa17,0xa3c,0x82,7,0xa1c,0xa3c,0x82,7,0xa2b,0xa3c,0x82,7,0xb21,0xb3c,
+0x82,7,0xb22,0xb3c,2,0xf42,0xfb7,2,0xf4c,0xfb7,2,0xf51,0xfb7,2,0xf56,0xfb7,
+2,0xf5b,0xfb7,2,0xf40,0xfb5,0x82,0x8182,0xf71,0xf72,0x82,0x8184,0xf71,0xf74,0x82,0x82,
+0xfb2,0xf80,0x82,0x82,0xfb3,0xf80,0x82,0x8182,0xf71,0xf80,2,0xf92,0xfb7,2,0xf9c,0xfb7,
+2,0xfa1,0xfb7,2,0xfa6,0xfb7,2,0xfab,0xfb7,2,0xf90,0xfb5,0x82,0xe6,0x3b1,0x301,
+0x82,0xe6,0x3b5,0x301,0x82,0xe6,0x3b7,0x301,0x82,0xe6,0x3b9,0x301,0x82,0xe6,0x3bf,0x301,
+0x82,0xe6,0x3c5,0x301,0x82,0xe6,0x3c9,0x301,0x82,0xe6,0x391,0x301,1,0x3b9,0x82,0xe6,
+0x395,0x301,0x82,0xe6,0x397,0x301,0x83,0xe6,0x3b9,0x308,0x301,0x82,0xe6,0x399,0x301,0x83,
+0xe6,0x3c5,0x308,0x301,0x82,0xe6,0x3a5,0x301,0x8382,0xe6,0xa8,0x301,0xe6,0x20,0x308,0x301,
+1,0x60,0x82,0xe6,0x39f,0x301,0x82,0xe6,0x3a9,0x301,0x8201,0xb4,0xe6,0x20,0x301,0x101,
+0x2002,0x20,0x101,0x2003,0x20,1,0x3a9,1,0x4b,0x82,0xe6,0x41,0x30a,1,0x3008,1,
+0x3009,0x82,1,0x2add,0x338,1,0x8c48,1,0x66f4,1,0x8eca,1,0x8cc8,1,0x6ed1,1,
+0x4e32,1,0x53e5,1,0x9f9c,1,0x9f9c,1,0x5951,1,0x91d1,1,0x5587,1,0x5948,1,
+0x61f6,1,0x7669,1,0x7f85,1,0x863f,1,0x87ba,1,0x88f8,1,0x908f,1,0x6a02,1,
+0x6d1b,1,0x70d9,1,0x73de,1,0x843d,1,0x916a,1,0x99f1,1,0x4e82,1,0x5375,1,
+0x6b04,1,0x721b,1,0x862d,1,0x9e1e,1,0x5d50,1,0x6feb,1,0x85cd,1,0x8964,1,
+0x62c9,1,0x81d8,1,0x881f,1,0x5eca,1,0x6717,1,0x6d6a,1,0x72fc,1,0x90ce,1,
+0x4f86,1,0x51b7,1,0x52de,1,0x64c4,1,0x6ad3,1,0x7210,1,0x76e7,1,0x8001,1,
+0x8606,1,0x865c,1,0x8def,1,0x9732,1,0x9b6f,1,0x9dfa,1,0x788c,1,0x797f,1,
+0x7da0,1,0x83c9,1,0x9304,1,0x9e7f,1,0x8ad6,1,0x58df,1,0x5f04,1,0x7c60,1,
+0x807e,1,0x7262,1,0x78ca,1,0x8cc2,1,0x96f7,1,0x58d8,1,0x5c62,1,0x6a13,1,
+0x6dda,1,0x6f0f,1,0x7d2f,1,0x7e37,1,0x964b,1,0x52d2,1,0x808b,1,0x51dc,1,
+0x51cc,1,0x7a1c,1,0x7dbe,1,0x83f1,1,0x9675,1,0x8b80,1,0x62cf,1,0x6a02,1,
+0x8afe,1,0x4e39,1,0x5be7,1,0x6012,1,0x7387,1,0x7570,1,0x5317,1,0x78fb,1,
+0x4fbf,1,0x5fa9,1,0x4e0d,1,0x6ccc,1,0x6578,1,0x7d22,1,0x53c3,1,0x585e,1,
+0x7701,1,0x8449,1,0x8aaa,1,0x6bba,1,0x8fb0,1,0x6c88,1,0x62fe,1,0x82e5,1,
+0x63a0,1,0x7565,1,0x4eae,1,0x5169,1,0x51c9,1,0x6881,1,0x7ce7,1,0x826f,1,
+0x8ad2,1,0x91cf,1,0x52f5,1,0x5442,1,0x5973,1,0x5eec,1,0x65c5,1,0x6ffe,1,
+0x792a,1,0x95ad,1,0x9a6a,1,0x9e97,1,0x9ece,1,0x529b,1,0x66c6,1,0x6b77,1,
+0x8f62,1,0x5e74,1,0x6190,1,0x6200,1,0x649a,1,0x6f23,1,0x7149,1,0x7489,1,
+0x79ca,1,0x7df4,1,0x806f,1,0x8f26,1,0x84ee,1,0x9023,1,0x934a,1,0x5217,1,
+0x52a3,1,0x54bd,1,0x70c8,1,0x88c2,1,0x8aaa,1,0x5ec9,1,0x5ff5,1,0x637b,1,
+0x6bae,1,0x7c3e,1,0x7375,1,0x4ee4,1,0x56f9,1,0x5be7,1,0x5dba,1,0x601c,1,
+0x73b2,1,0x7469,1,0x7f9a,1,0x8046,1,0x9234,1,0x96f6,1,0x9748,1,0x9818,1,
+0x4f8b,1,0x79ae,1,0x91b4,1,0x96b8,1,0x60e1,1,0x4e86,1,0x50da,1,0x5bee,1,
+0x5c3f,1,0x6599,1,0x6a02,1,0x71ce,1,0x7642,1,0x84fc,1,0x907c,1,0x9f8d,1,
+0x6688,1,0x962e,1,0x5289,1,0x677b,1,0x67f3,1,0x6d41,1,0x6e9c,1,0x7409,1,
+0x7559,1,0x786b,1,0x7d10,1,0x985e,1,0x516d,1,0x622e,1,0x9678,1,0x502b,1,
+0x5d19,1,0x6dea,1,0x8f2a,1,0x5f8b,1,0x6144,1,0x6817,1,0x7387,1,0x9686,1,
+0x5229,1,0x540f,1,0x5c65,1,0x6613,1,0x674e,1,0x68a8,1,0x6ce5,1,0x7406,1,
+0x75e2,1,0x7f79,1,0x88cf,1,0x88e1,1,0x91cc,1,0x96e2,1,0x533f,1,0x6eba,1,
+0x541d,1,0x71d0,1,0x7498,1,0x85fa,1,0x96a3,1,0x9c57,1,0x9e9f,1,0x6797,1,
+0x6dcb,1,0x81e8,1,0x7acb,1,0x7b20,1,0x7c92,1,0x72c0,1,0x7099,1,0x8b58,1,
+0x4ec0,1,0x8336,1,0x523a,1,0x5207,1,0x5ea6,1,0x62d3,1,0x7cd6,1,0x5b85,1,
+0x6d1e,1,0x66b4,1,0x8f3b,1,0x884c,1,0x964d,1,0x898b,1,0x5ed3,1,0x5140,1,
+0x55c0,1,0x585a,1,0x6674,1,0x51de,1,0x732a,1,0x76ca,1,0x793c,1,0x795e,1,
+0x7965,1,0x798f,1,0x9756,1,0x7cbe,1,0x7fbd,1,0x8612,1,0x8af8,1,0x9038,1,
+0x90fd,1,0x98ef,1,0x98fc,1,0x9928,1,0x9db4,1,0x4fae,1,0x50e7,1,0x514d,1,
+0x52c9,1,0x52e4,1,0x5351,1,0x559d,1,0x5606,1,0x5668,1,0x5840,1,0x58a8,1,
+0x5c64,1,0x5c6e,1,0x6094,1,0x6168,1,0x618e,1,0x61f2,1,0x654f,1,0x65e2,1,
+0x6691,1,0x6885,1,0x6d77,1,0x6e1a,1,0x6f22,1,0x716e,1,0x722b,1,0x7422,1,
+0x7891,1,0x793e,1,0x7949,1,0x7948,1,0x7950,1,0x7956,1,0x795d,1,0x798d,1,
+0x798e,1,0x7a40,1,0x7a81,1,0x7bc0,1,0x7df4,1,0x7e09,1,0x7e41,1,0x7f72,1,
+0x8005,1,0x81ed,1,0x8279,1,0x8279,1,0x8457,1,0x8910,1,0x8996,1,0x8b01,1,
+0x8b39,1,0x8cd3,1,0x8d08,1,0x8fb6,1,0x9038,1,0x96e3,1,0x97ff,1,0x983b,1,
+0x4e26,1,0x51b5,1,0x5168,1,0x4f80,1,0x5145,1,0x5180,1,0x52c7,1,0x52fa,1,
+0x559d,1,0x5555,1,0x5599,1,0x55e2,1,0x585a,1,0x58b3,1,0x5944,1,0x5954,1,
+0x5a62,1,0x5b28,1,0x5ed2,1,0x5ed9,1,0x5f69,1,0x5fad,1,0x60d8,1,0x614e,1,
+0x6108,1,0x618e,1,0x6160,1,0x61f2,1,0x6234,1,0x63c4,1,0x641c,1,0x6452,1,
+0x6556,1,0x6674,1,0x6717,1,0x671b,1,0x6756,1,0x6b79,1,0x6bba,1,0x6d41,1,
+0x6edb,1,0x6ecb,1,0x6f22,1,0x701e,1,0x716e,1,0x77a7,1,0x7235,1,0x72af,1,
+0x732a,1,0x7471,1,0x7506,1,0x753b,1,0x761d,1,0x761f,1,0x76ca,1,0x76db,1,
+0x76f4,1,0x774a,1,0x7740,1,0x78cc,1,0x7ab1,1,0x7bc0,1,0x7c7b,1,0x7d5b,1,
+0x7df4,1,0x7f3e,1,0x8005,1,0x8352,1,0x83ef,1,0x8779,1,0x8941,1,0x8986,1,
+0x8996,1,0x8abf,1,0x8af8,1,0x8acb,1,0x8b01,1,0x8afe,1,0x8aed,1,0x8b39,1,
+0x8b8a,1,0x8d08,1,0x8f38,1,0x9072,1,0x9199,1,0x9276,1,0x967c,1,0x96e3,1,
+0x9756,1,0x97db,1,0x97ff,1,0x980b,1,0x983b,1,0x9b12,1,0x9f9c,2,0xd84a,0xdc4a,
+2,0xd84a,0xdc44,2,0xd84c,0xdfd5,1,0x3b9d,1,0x4018,1,0x4039,2,0xd854,0xde49,2,
+0xd857,0xdcd0,2,0xd85f,0xded3,1,0x9f43,1,0x9f8e,0x82,0xe,0x5d9,0x5b4,0x82,0x11,0x5f2,
+0x5b7,0x82,0x18,0x5e9,0x5c1,0x82,0x19,0x5e9,0x5c2,0x83,0x18,0x5e9,0x5bc,0x5c1,0x83,0x19,
+0x5e9,0x5bc,0x5c2,0x82,0x11,0x5d0,0x5b7,0x82,0x12,0x5d0,0x5b8,0x82,0x15,0x5d0,0x5bc,0x82,
+0x15,0x5d1,0x5bc,0x82,0x15,0x5d2,0x5bc,0x82,0x15,0x5d3,0x5bc,0x82,0x15,0x5d4,0x5bc,0x82,
+0x15,0x5d5,0x5bc,0x82,0x15,0x5d6,0x5bc,0x82,0x15,0x5d8,0x5bc,0x82,0x15,0x5d9,0x5bc,0x82,
+0x15,0x5da,0x5bc,0x82,0x15,0x5db,0x5bc,0x82,0x15,0x5dc,0x5bc,0x82,0x15,0x5de,0x5bc,0x82,
+0x15,0x5e0,0x5bc,0x82,0x15,0x5e1,0x5bc,0x82,0x15,0x5e3,0x5bc,0x82,0x15,0x5e4,0x5bc,0x82,
+0x15,0x5e6,0x5bc,0x82,0x15,0x5e7,0x5bc,0x82,0x15,0x5e8,0x5bc,0x82,0x15,0x5e9,0x5bc,0x82,
+0x15,0x5ea,0x5bc,0x82,0x13,0x5d5,0x5b9,0x82,0x17,0x5d1,0x5bf,0x82,0x17,0x5db,0x5bf,0x82,
+0x17,0x5e4,0x5bf,0x84,0xd8,0xd834,0xdd57,0xd834,0xdd65,0x84,0xd8,0xd834,0xdd58,0xd834,0xdd65,0x86,
+0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6e,0x86,0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd6f,0x86,
+0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd70,0x86,0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd71,0x86,
+0xd8,0xd834,0xdd58,0xd834,0xdd65,0xd834,0xdd72,0x84,0xd8,0xd834,0xddb9,0xd834,0xdd65,0x84,0xd8,0xd834,
+0xddba,0xd834,0xdd65,0x86,0xd8,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6e,0x86,0xd8,0xd834,0xddba,0xd834,
+0xdd65,0xd834,0xdd6e,0x86,0xd8,0xd834,0xddb9,0xd834,0xdd65,0xd834,0xdd6f,0x86,0xd8,0xd834,0xddba,0xd834,
+0xdd65,0xd834,0xdd6f,1,0x4e3d,1,0x4e38,1,0x4e41,2,0xd840,0xdd22,1,0x4f60,1,0x4fae,
+1,0x4fbb,1,0x5002,1,0x507a,1,0x5099,1,0x50e7,1,0x50cf,1,0x349e,2,0xd841,
+0xde3a,1,0x514d,1,0x5154,1,0x5164,1,0x5177,2,0xd841,0xdd1c,1,0x34b9,1,0x5167,
+1,0x518d,2,0xd841,0xdd4b,1,0x5197,1,0x51a4,1,0x4ecc,1,0x51ac,1,0x51b5,2,
+0xd864,0xdddf,1,0x51f5,1,0x5203,1,0x34df,1,0x523b,1,0x5246,1,0x5272,1,0x5277,
+1,0x3515,1,0x52c7,1,0x52c9,1,0x52e4,1,0x52fa,1,0x5305,1,0x5306,1,0x5317,
+1,0x5349,1,0x5351,1,0x535a,1,0x5373,1,0x537d,1,0x537f,1,0x537f,1,0x537f,
+2,0xd842,0xde2c,1,0x7070,1,0x53ca,1,0x53df,2,0xd842,0xdf63,1,0x53eb,1,0x53f1,
+1,0x5406,1,0x549e,1,0x5438,1,0x5448,1,0x5468,1,0x54a2,1,0x54f6,1,0x5510,
+1,0x5553,1,0x5563,1,0x5584,1,0x5584,1,0x5599,1,0x55ab,1,0x55b3,1,0x55c2,
+1,0x5716,1,0x5606,1,0x5717,1,0x5651,1,0x5674,1,0x5207,1,0x58ee,1,0x57ce,
+1,0x57f4,1,0x580d,1,0x578b,1,0x5832,1,0x5831,1,0x58ac,2,0xd845,0xdce4,1,
+0x58f2,1,0x58f7,1,0x5906,1,0x591a,1,0x5922,1,0x5962,2,0xd845,0xdea8,2,0xd845,
+0xdeea,1,0x59ec,1,0x5a1b,1,0x5a27,1,0x59d8,1,0x5a66,1,0x36ee,1,0x36fc,1,
+0x5b08,1,0x5b3e,1,0x5b3e,2,0xd846,0xddc8,1,0x5bc3,1,0x5bd8,1,0x5be7,1,0x5bf3,
+2,0xd846,0xdf18,1,0x5bff,1,0x5c06,1,0x5f53,1,0x5c22,1,0x3781,1,0x5c60,1,
+0x5c6e,1,0x5cc0,1,0x5c8d,2,0xd847,0xdde4,1,0x5d43,2,0xd847,0xdde6,1,0x5d6e,1,
+0x5d6b,1,0x5d7c,1,0x5de1,1,0x5de2,1,0x382f,1,0x5dfd,1,0x5e28,1,0x5e3d,1,
+0x5e69,1,0x3862,2,0xd848,0xdd83,1,0x387c,1,0x5eb0,1,0x5eb3,1,0x5eb6,1,0x5eca,
+2,0xd868,0xdf92,1,0x5efe,2,0xd848,0xdf31,2,0xd848,0xdf31,1,0x8201,1,0x5f22,1,
+0x5f22,1,0x38c7,2,0xd84c,0xdeb8,2,0xd858,0xddda,1,0x5f62,1,0x5f6b,1,0x38e3,1,
+0x5f9a,1,0x5fcd,1,0x5fd7,1,0x5ff9,1,0x6081,1,0x393a,1,0x391c,1,0x6094,2,
+0xd849,0xded4,1,0x60c7,1,0x6148,1,0x614c,1,0x614e,1,0x614c,1,0x617a,1,0x618e,
+1,0x61b2,1,0x61a4,1,0x61af,1,0x61de,1,0x61f2,1,0x61f6,1,0x6210,1,0x621b,
+1,0x625d,1,0x62b1,1,0x62d4,1,0x6350,2,0xd84a,0xdf0c,1,0x633d,1,0x62fc,1,
+0x6368,1,0x6383,1,0x63e4,2,0xd84a,0xdff1,1,0x6422,1,0x63c5,1,0x63a9,1,0x3a2e,
+1,0x6469,1,0x647e,1,0x649d,1,0x6477,1,0x3a6c,1,0x654f,1,0x656c,2,0xd84c,
+0xdc0a,1,0x65e3,1,0x66f8,1,0x6649,1,0x3b19,1,0x6691,1,0x3b08,1,0x3ae4,1,
+0x5192,1,0x5195,1,0x6700,1,0x669c,1,0x80ad,1,0x43d9,1,0x6717,1,0x671b,1,
+0x6721,1,0x675e,1,0x6753,2,0xd84c,0xdfc3,1,0x3b49,1,0x67fa,1,0x6785,1,0x6852,
+1,0x6885,2,0xd84d,0xdc6d,1,0x688e,1,0x681f,1,0x6914,1,0x3b9d,1,0x6942,1,
+0x69a3,1,0x69ea,1,0x6aa8,2,0xd84d,0xdea3,1,0x6adb,1,0x3c18,1,0x6b21,2,0xd84e,
+0xdca7,1,0x6b54,1,0x3c4e,1,0x6b72,1,0x6b9f,1,0x6bba,1,0x6bbb,2,0xd84e,0xde8d,
+2,0xd847,0xdd0b,2,0xd84e,0xdefa,1,0x6c4e,2,0xd84f,0xdcbc,1,0x6cbf,1,0x6ccd,1,
+0x6c67,1,0x6d16,1,0x6d3e,1,0x6d77,1,0x6d41,1,0x6d69,1,0x6d78,1,0x6d85,2,
+0xd84f,0xdd1e,1,0x6d34,1,0x6e2f,1,0x6e6e,1,0x3d33,1,0x6ecb,1,0x6ec7,2,0xd84f,
+0xded1,1,0x6df9,1,0x6f6e,2,0xd84f,0xdf5e,2,0xd84f,0xdf8e,1,0x6fc6,1,0x7039,1,
+0x701e,1,0x701b,1,0x3d96,1,0x704a,1,0x707d,1,0x7077,1,0x70ad,2,0xd841,0xdd25,
+1,0x7145,2,0xd850,0xde63,1,0x719c,2,0xd850,0xdfab,1,0x7228,1,0x7235,1,0x7250,
+2,0xd851,0xde08,1,0x7280,1,0x7295,2,0xd851,0xdf35,2,0xd852,0xdc14,1,0x737a,1,
+0x738b,1,0x3eac,1,0x73a5,1,0x3eb8,1,0x3eb8,1,0x7447,1,0x745c,1,0x7471,1,
+0x7485,1,0x74ca,1,0x3f1b,1,0x7524,2,0xd853,0xdc36,1,0x753e,2,0xd853,0xdc92,1,
+0x7570,2,0xd848,0xdd9f,1,0x7610,2,0xd853,0xdfa1,2,0xd853,0xdfb8,2,0xd854,0xdc44,1,
+0x3ffc,1,0x4008,1,0x76f4,2,0xd854,0xdcf3,2,0xd854,0xdcf2,2,0xd854,0xdd19,2,0xd854,
+0xdd33,1,0x771e,1,0x771f,1,0x771f,1,0x774a,1,0x4039,1,0x778b,1,0x4046,1,
+0x4096,2,0xd855,0xdc1d,1,0x784e,1,0x788c,1,0x78cc,1,0x40e3,2,0xd855,0xde26,1,
+0x7956,2,0xd855,0xde9a,2,0xd855,0xdec5,1,0x798f,1,0x79eb,1,0x412f,1,0x7a40,1,
+0x7a4a,1,0x7a4f,2,0xd856,0xdd7c,2,0xd856,0xdea7,2,0xd856,0xdea7,1,0x7aee,1,0x4202,
+2,0xd856,0xdfab,1,0x7bc6,1,0x7bc9,1,0x4227,2,0xd857,0xdc80,1,0x7cd2,1,0x42a0,
+1,0x7ce8,1,0x7ce3,1,0x7d00,2,0xd857,0xdf86,1,0x7d63,1,0x4301,1,0x7dc7,1,
+0x7e02,1,0x7e45,1,0x4334,2,0xd858,0xde28,2,0xd858,0xde47,1,0x4359,2,0xd858,0xded9,
+1,0x7f7a,2,0xd858,0xdf3e,1,0x7f95,1,0x7ffa,1,0x8005,2,0xd859,0xdcda,2,0xd859,
+0xdd23,1,0x8060,2,0xd859,0xdda8,1,0x8070,2,0xd84c,0xdf5f,1,0x43d5,1,0x80b2,1,
+0x8103,1,0x440b,1,0x813e,1,0x5ab5,2,0xd859,0xdfa7,2,0xd859,0xdfb5,2,0xd84c,0xdf93,
+2,0xd84c,0xdf9c,1,0x8201,1,0x8204,1,0x8f9e,1,0x446b,1,0x8291,1,0x828b,1,
+0x829d,1,0x52b3,1,0x82b1,1,0x82b3,1,0x82bd,1,0x82e6,2,0xd85a,0xdf3c,1,0x82e5,
+1,0x831d,1,0x8363,1,0x83ad,1,0x8323,1,0x83bd,1,0x83e7,1,0x8457,1,0x8353,
+1,0x83ca,1,0x83cc,1,0x83dc,2,0xd85b,0xdc36,2,0xd85b,0xdd6b,2,0xd85b,0xdcd5,1,
+0x452b,1,0x84f1,1,0x84f3,1,0x8516,2,0xd85c,0xdfca,1,0x8564,2,0xd85b,0xdf2c,1,
+0x455d,1,0x4561,2,0xd85b,0xdfb1,2,0xd85c,0xdcd2,1,0x456b,1,0x8650,1,0x865c,1,
+0x8667,1,0x8669,1,0x86a9,1,0x8688,1,0x870e,1,0x86e2,1,0x8779,1,0x8728,1,
+0x876b,1,0x8786,1,0x45d7,1,0x87e1,1,0x8801,1,0x45f9,1,0x8860,1,0x8863,2,
+0xd85d,0xde67,1,0x88d7,1,0x88de,1,0x4635,1,0x88fa,1,0x34bb,2,0xd85e,0xdcae,2,
+0xd85e,0xdd66,1,0x46be,1,0x46c7,1,0x8aa0,1,0x8aed,1,0x8b8a,1,0x8c55,2,0xd85f,
+0xdca8,1,0x8cab,1,0x8cc1,1,0x8d1b,1,0x8d77,2,0xd85f,0xdf2f,2,0xd842,0xdc04,1,
+0x8dcb,1,0x8dbc,1,0x8df0,2,0xd842,0xdcde,1,0x8ed4,1,0x8f38,2,0xd861,0xddd2,2,
+0xd861,0xdded,1,0x9094,1,0x90f1,1,0x9111,2,0xd861,0xdf2e,1,0x911b,1,0x9238,1,
+0x92d7,1,0x92d8,1,0x927c,1,0x93f9,1,0x9415,2,0xd862,0xdffa,1,0x958b,1,0x4995,
+1,0x95b7,2,0xd863,0xdd77,1,0x49e6,1,0x96c3,1,0x5db2,1,0x9723,2,0xd864,0xdd45,
+2,0xd864,0xde1a,1,0x4a6e,1,0x4a76,1,0x97e0,2,0xd865,0xdc0a,1,0x4ab2,2,0xd865,
+0xdc96,1,0x980b,1,0x980b,1,0x9829,2,0xd865,0xddb6,1,0x98e2,1,0x4b33,1,0x9929,
+1,0x99a7,1,0x99c2,1,0x99fe,1,0x4bce,2,0xd866,0xdf30,1,0x9b12,1,0x9c40,1,
+0x9cfd,1,0x4cce,1,0x4ced,1,0x9d67,2,0xd868,0xdcce,1,0x4cf8,2,0xd868,0xdd05,2,
+0xd868,0xde0e,2,0xd868,0xde91,1,0x9ebb,1,0x4d56,1,0x9ef9,1,0x9efe,1,0x9f05,1,
+0x9f0f,1,0x9f16,1,0x9f3b,2,0xd869,0xde00,0x82,0xe6,0x41,0x300,0x82,0xe6,0x41,0x301,
+0x4e6,0x82,0xe6,0x41,0x302,0x82,0xe6,0x41,0x303,0x2c8,0x82,0xe6,0x41,0x308,0x2e0,0x82,
+0xe6,0x41,0x30a,0x484,0x82,0xca,0x43,0x327,0x82,0xe6,0x45,0x300,0x82,0xe6,0x45,0x301,
+0x50e,0x82,0xe6,0x45,0x302,0x82,0xe6,0x45,0x308,0x82,0xe6,0x49,0x300,0x82,0xe6,0x49,
+0x301,0x82,0xe6,0x49,0x302,0x498,0x82,0xe6,0x49,0x308,0x82,0xe6,0x4e,0x303,0x82,0xe6,
+0x4f,0x300,0x82,0xe6,0x4f,0x301,0x522,0x82,0xe6,0x4f,0x302,0x2ec,0x82,0xe6,0x4f,0x303,
+0x2e8,0x82,0xe6,0x4f,0x308,0x82,0xe6,0x55,0x300,0x82,0xe6,0x55,0x301,0x82,0xe6,0x55,
+0x302,0x2b8,0x82,0xe6,0x55,0x308,0x82,0xe6,0x59,0x301,0x82,0xe6,0x61,0x300,0x82,0xe6,
+0x61,0x301,0x4ee,0x82,0xe6,0x61,0x302,0x82,0xe6,0x61,0x303,0x2ca,0x82,0xe6,0x61,0x308,
+0x2e2,0x82,0xe6,0x61,0x30a,0x486,0x82,0xca,0x63,0x327,0x82,0xe6,0x65,0x300,0x82,0xe6,
+0x65,0x301,0x516,0x82,0xe6,0x65,0x302,0x82,0xe6,0x65,0x308,0x82,0xe6,0x69,0x300,0x82,
+0xe6,0x69,0x301,0x82,0xe6,0x69,0x302,0x49a,0x82,0xe6,0x69,0x308,0x82,0xe6,0x6e,0x303,
+0x82,0xe6,0x6f,0x300,0x82,0xe6,0x6f,0x301,0x52a,0x82,0xe6,0x6f,0x302,0x2f2,0x82,0xe6,
+0x6f,0x303,0x2ea,0x82,0xe6,0x6f,0x308,0x82,0xe6,0x75,0x300,0x82,0xe6,0x75,0x301,0x82,
+0xe6,0x75,0x302,0x2c0,0x82,0xe6,0x75,0x308,0x82,0xe6,0x79,0x301,0x82,0xe6,0x79,0x308,
+0x82,0xe6,0x41,0x304,0x82,0xe6,0x61,0x304,0x4fe,0x82,0xe6,0x41,0x306,0x506,0x82,0xe6,
+0x61,0x306,0x82,0xca,0x41,0x328,0x82,0xca,0x61,0x328,0x82,0xe6,0x43,0x301,0x82,0xe6,
+0x63,0x301,0x82,0xe6,0x43,0x302,0x82,0xe6,0x63,0x302,0x82,0xe6,0x43,0x307,0x82,0xe6,
+0x63,0x307,0x82,0xe6,0x43,0x30c,0x82,0xe6,0x63,0x30c,0x82,0xe6,0x44,0x30c,0x82,0xe6,
+0x64,0x30c,0x488,0x82,0xe6,0x45,0x304,0x48c,0x82,0xe6,0x65,0x304,0x82,0xe6,0x45,0x306,
+0x82,0xe6,0x65,0x306,0x82,0xe6,0x45,0x307,0x82,0xe6,0x65,0x307,0x82,0xca,0x45,0x328,
+0x82,0xca,0x65,0x328,0x82,0xe6,0x45,0x30c,0x82,0xe6,0x65,0x30c,0x82,0xe6,0x47,0x302,
+0x82,0xe6,0x67,0x302,0x82,0xe6,0x47,0x306,0x82,0xe6,0x67,0x306,0x82,0xe6,0x47,0x307,
+0x82,0xe6,0x67,0x307,0x82,0xca,0x47,0x327,0x82,0xca,0x67,0x327,0x82,0xe6,0x48,0x302,
+0x82,0xe6,0x68,0x302,0x82,0xe6,0x49,0x303,0x82,0xe6,0x69,0x303,0x82,0xe6,0x49,0x304,
+0x82,0xe6,0x69,0x304,0x82,0xe6,0x49,0x306,0x82,0xe6,0x69,0x306,0x82,0xca,0x49,0x328,
+0x82,0xca,0x69,0x328,0x82,0xe6,0x49,0x307,0x82,0xe6,0x4a,0x302,0x82,0xe6,0x6a,0x302,
+0x82,0xca,0x4b,0x327,0x82,0xca,0x6b,0x327,0x82,0xe6,0x4c,0x301,0x82,0xe6,0x6c,0x301,
+0x82,0xca,0x4c,0x327,0x82,0xca,0x6c,0x327,0x82,0xe6,0x4c,0x30c,0x82,0xe6,0x6c,0x30c,
+0x82,0xe6,0x4e,0x301,0x82,0xe6,0x6e,0x301,0x82,0xca,0x4e,0x327,0x82,0xca,0x6e,0x327,
+0x82,0xe6,0x4e,0x30c,0x82,0xe6,0x6e,0x30c,0x4ac,0x82,0xe6,0x4f,0x304,0x4b0,0x82,0xe6,
+0x6f,0x304,0x82,0xe6,0x4f,0x306,0x82,0xe6,0x6f,0x306,0x82,0xe6,0x4f,0x30b,0x82,0xe6,
+0x6f,0x30b,0x82,0xe6,0x52,0x301,0x82,0xe6,0x72,0x301,0x82,0xca,0x52,0x327,0x82,0xca,
+0x72,0x327,0x82,0xe6,0x52,0x30c,0x82,0xe6,0x72,0x30c,0x4c0,0x82,0xe6,0x53,0x301,0x4c2,
+0x82,0xe6,0x73,0x301,0x82,0xe6,0x53,0x302,0x82,0xe6,0x73,0x302,0x82,0xca,0x53,0x327,
+0x82,0xca,0x73,0x327,0x4c4,0x82,0xe6,0x53,0x30c,0x4c6,0x82,0xe6,0x73,0x30c,0x82,0xca,
+0x54,0x327,0x82,0xca,0x74,0x327,0x82,0xe6,0x54,0x30c,0x82,0xe6,0x74,0x30c,0x4cc,0x82,
+0xe6,0x55,0x303,0x4ce,0x82,0xe6,0x75,0x303,0x4d0,0x82,0xe6,0x55,0x304,0x4d2,0x82,0xe6,
+0x75,0x304,0x82,0xe6,0x55,0x306,0x82,0xe6,0x75,0x306,0x82,0xe6,0x55,0x30a,0x82,0xe6,
+0x75,0x30a,0x82,0xe6,0x55,0x30b,0x82,0xe6,0x75,0x30b,0x82,0xca,0x55,0x328,0x82,0xca,
+0x75,0x328,0x82,0xe6,0x57,0x302,0x82,0xe6,0x77,0x302,0x82,0xe6,0x59,0x302,0x82,0xe6,
+0x79,0x302,0x82,0xe6,0x59,0x308,0x82,0xe6,0x5a,0x301,0x82,0xe6,0x7a,0x301,0x82,0xe6,
+0x5a,0x307,0x82,0xe6,0x7a,0x307,0x82,0xe6,0x5a,0x30c,0x82,0xe6,0x7a,0x30c,0x536,0x82,
+0xd8,0x4f,0x31b,0x540,0x82,0xd8,0x6f,0x31b,0x54a,0x82,0xd8,0x55,0x31b,0x554,0x82,0xd8,
+0x75,0x31b,0x82,0xe6,0x41,0x30c,0x82,0xe6,0x61,0x30c,0x82,0xe6,0x49,0x30c,0x82,0xe6,
+0x69,0x30c,0x82,0xe6,0x4f,0x30c,0x82,0xe6,0x6f,0x30c,0x82,0xe6,0x55,0x30c,0x82,0xe6,
+0x75,0x30c,0x83,0xe6,0x55,0x308,0x304,0x83,0xe6,0x75,0x308,0x304,0x83,0xe6,0x55,0x308,
+0x301,0x83,0xe6,0x75,0x308,0x301,0x83,0xe6,0x55,0x308,0x30c,0x83,0xe6,0x75,0x308,0x30c,
+0x83,0xe6,0x55,0x308,0x300,0x83,0xe6,0x75,0x308,0x300,0x83,0xe6,0x41,0x308,0x304,0x83,
+0xe6,0x61,0x308,0x304,0x83,0xe6,0x41,0x307,0x304,0x83,0xe6,0x61,0x307,0x304,0x82,0xe6,
+0xc6,0x304,0x82,0xe6,0xe6,0x304,0x82,0xe6,0x47,0x30c,0x82,0xe6,0x67,0x30c,0x82,0xe6,
+0x4b,0x30c,0x82,0xe6,0x6b,0x30c,0x2d8,0x82,0xca,0x4f,0x328,0x2da,0x82,0xca,0x6f,0x328,
+0x83,0xe6,0x4f,0x328,0x304,0x83,0xe6,0x6f,0x328,0x304,0x82,0xe6,0x1b7,0x30c,0x82,0xe6,
+0x292,0x30c,0x82,0xe6,0x6a,0x30c,0x82,0xe6,0x47,0x301,0x82,0xe6,0x67,0x301,0x82,0xe6,
+0x4e,0x300,0x82,0xe6,0x6e,0x300,0x83,0xe6,0x41,0x30a,0x301,0x83,0xe6,0x61,0x30a,0x301,
+0x82,0xe6,0xc6,0x301,0x82,0xe6,0xe6,0x301,0x82,0xe6,0xd8,0x301,0x82,0xe6,0xf8,0x301,
+0x82,0xe6,0x41,0x30f,0x82,0xe6,0x61,0x30f,0x82,0xe6,0x41,0x311,0x82,0xe6,0x61,0x311,
+0x82,0xe6,0x45,0x30f,0x82,0xe6,0x65,0x30f,0x82,0xe6,0x45,0x311,0x82,0xe6,0x65,0x311,
+0x82,0xe6,0x49,0x30f,0x82,0xe6,0x69,0x30f,0x82,0xe6,0x49,0x311,0x82,0xe6,0x69,0x311,
+0x82,0xe6,0x4f,0x30f,0x82,0xe6,0x6f,0x30f,0x82,0xe6,0x4f,0x311,0x82,0xe6,0x6f,0x311,
+0x82,0xe6,0x52,0x30f,0x82,0xe6,0x72,0x30f,0x82,0xe6,0x52,0x311,0x82,0xe6,0x72,0x311,
+0x82,0xe6,0x55,0x30f,0x82,0xe6,0x75,0x30f,0x82,0xe6,0x55,0x311,0x82,0xe6,0x75,0x311,
+0x82,0xdc,0x53,0x326,0x82,0xdc,0x73,0x326,0x82,0xdc,0x54,0x326,0x82,0xdc,0x74,0x326,
+0x82,0xe6,0x48,0x30c,0x82,0xe6,0x68,0x30c,0x2cc,0x82,0xe6,0x41,0x307,0x2ce,0x82,0xe6,
+0x61,0x307,0x490,0x82,0xca,0x45,0x327,0x492,0x82,0xca,0x65,0x327,0x83,0xe6,0x4f,0x308,
+0x304,0x83,0xe6,0x6f,0x308,0x304,0x83,0xe6,0x4f,0x303,0x304,0x83,0xe6,0x6f,0x303,0x304,
+0x2f8,0x82,0xe6,0x4f,0x307,0x2fa,0x82,0xe6,0x6f,0x307,0x83,0xe6,0x4f,0x307,0x304,0x83,
+0xe6,0x6f,0x307,0x304,0x82,0xe6,0x59,0x304,0x82,0xe6,0x79,0x304,0x8382,0xe6,0xa8,0x301,
+0xe6,0x20,0x308,0x301,0x82,0xe6,0x391,0x301,0x82,0xe6,0x395,0x301,0x82,0xe6,0x397,0x301,
+0x82,0xe6,0x399,0x301,0x82,0xe6,0x39f,0x301,0x82,0xe6,0x3a5,0x301,0x82,0xe6,0x3a9,0x301,
+0x83,0xe6,0x3b9,0x308,0x301,0x82,0xe6,0x399,0x308,0x82,0xe6,0x3a5,0x308,0x652,0x82,0xe6,
+0x3b1,0x301,0x82,0xe6,0x3b5,0x301,0x658,0x82,0xe6,0x3b7,0x301,0x82,0xe6,0x3b9,0x301,0x83,
+0xe6,0x3c5,0x308,0x301,0x34e,0x82,0xe6,0x3b9,0x308,0x388,0x82,0xe6,0x3c5,0x308,0x82,0xe6,
+0x3bf,0x301,0x82,0xe6,0x3c5,0x301,0x670,0x82,0xe6,0x3c9,0x301,0x82,0xe6,0x415,0x300,0x82,
+0xe6,0x415,0x308,0x82,0xe6,0x413,0x301,0x82,0xe6,0x406,0x308,0x82,0xe6,0x41a,0x301,0x82,
+0xe6,0x418,0x300,0x82,0xe6,0x423,0x306,0x82,0xe6,0x418,0x306,0x82,0xe6,0x438,0x306,0x82,
+0xe6,0x435,0x300,0x82,0xe6,0x435,0x308,0x82,0xe6,0x433,0x301,0x82,0xe6,0x456,0x308,0x82,
+0xe6,0x43a,0x301,0x82,0xe6,0x438,0x300,0x82,0xe6,0x443,0x306,0x82,0xe6,0x474,0x30f,0x82,
+0xe6,0x475,0x30f,0x82,0xe6,0x416,0x306,0x82,0xe6,0x436,0x306,0x82,0xe6,0x410,0x306,0x82,
+0xe6,0x430,0x306,0x82,0xe6,0x410,0x308,0x82,0xe6,0x430,0x308,0x82,0xe6,0x415,0x306,0x82,
+0xe6,0x435,0x306,0x82,0xe6,0x4d8,0x308,0x82,0xe6,0x4d9,0x308,0x82,0xe6,0x416,0x308,0x82,
+0xe6,0x436,0x308,0x82,0xe6,0x417,0x308,0x82,0xe6,0x437,0x308,0x82,0xe6,0x418,0x304,0x82,
+0xe6,0x438,0x304,0x82,0xe6,0x418,0x308,0x82,0xe6,0x438,0x308,0x82,0xe6,0x41e,0x308,0x82,
+0xe6,0x43e,0x308,0x82,0xe6,0x4e8,0x308,0x82,0xe6,0x4e9,0x308,0x82,0xe6,0x42d,0x308,0x82,
+0xe6,0x44d,0x308,0x82,0xe6,0x423,0x304,0x82,0xe6,0x443,0x304,0x82,0xe6,0x423,0x308,0x82,
+0xe6,0x443,0x308,0x82,0xe6,0x423,0x30b,0x82,0xe6,0x443,0x30b,0x82,0xe6,0x427,0x308,0x82,
+0xe6,0x447,0x308,0x82,0xe6,0x42b,0x308,0x82,0xe6,0x44b,0x308,0x82,0xe6,0x627,0x653,0x82,
+0xe6,0x627,0x654,0x82,0xe6,0x648,0x654,0x82,0xdc,0x627,0x655,0x82,0xe6,0x64a,0x654,0x82,
+0xe6,0x6d5,0x654,0x82,0xe6,0x6c1,0x654,0x82,0xe6,0x6d2,0x654,0x82,7,0x928,0x93c,0x82,
+7,0x930,0x93c,0x82,7,0x933,0x93c,2,0x9c7,0x9be,2,0x9c7,0x9d7,2,0xb47,0xb56,
+2,0xb47,0xb3e,2,0xb47,0xb57,2,0xb92,0xbd7,2,0xbc6,0xbbe,2,0xbc7,0xbbe,2,
+0xbc6,0xbd7,0x82,0x5b,0xc46,0xc56,2,0xcbf,0xcd5,2,0xcc6,0xcd5,2,0xcc6,0xcd6,0x450,
+2,0xcc6,0xcc2,3,0xcc6,0xcc2,0xcd5,2,0xd46,0xd3e,2,0xd47,0xd3e,2,0xd46,0xd57,
+0x82,9,0xdd9,0xdca,0x45e,2,0xdd9,0xdcf,0x83,9,0xdd9,0xdcf,0xdca,2,0xdd9,0xddf,
+2,0x1025,0x102e,2,0x1b05,0x1b35,2,0x1b07,0x1b35,2,0x1b09,0x1b35,2,0x1b0b,0x1b35,2,
+0x1b0d,0x1b35,2,0x1b11,0x1b35,2,0x1b3a,0x1b35,2,0x1b3c,0x1b35,2,0x1b3e,0x1b35,2,0x1b3f,
+0x1b35,2,0x1b42,0x1b35,0x82,0xdc,0x41,0x325,0x82,0xdc,0x61,0x325,0x82,0xe6,0x42,0x307,
+0x82,0xe6,0x62,0x307,0x82,0xdc,0x42,0x323,0x82,0xdc,0x62,0x323,0x82,0xdc,0x42,0x331,
+0x82,0xdc,0x62,0x331,0x83,0xe6,0x43,0x327,0x301,0x83,0xe6,0x63,0x327,0x301,0x82,0xe6,
+0x44,0x307,0x82,0xe6,0x64,0x307,0x82,0xdc,0x44,0x323,0x82,0xdc,0x64,0x323,0x82,0xdc,
+0x44,0x331,0x82,0xdc,0x64,0x331,0x82,0xca,0x44,0x327,0x82,0xca,0x64,0x327,0x82,0xdc,
+0x44,0x32d,0x82,0xdc,0x64,0x32d,0x83,0xe6,0x45,0x304,0x300,0x83,0xe6,0x65,0x304,0x300,
+0x83,0xe6,0x45,0x304,0x301,0x83,0xe6,0x65,0x304,0x301,0x82,0xdc,0x45,0x32d,0x82,0xdc,
+0x65,0x32d,0x82,0xdc,0x45,0x330,0x82,0xdc,0x65,0x330,0x83,0xe6,0x45,0x327,0x306,0x83,
+0xe6,0x65,0x327,0x306,0x82,0xe6,0x46,0x307,0x82,0xe6,0x66,0x307,0x82,0xe6,0x47,0x304,
+0x82,0xe6,0x67,0x304,0x82,0xe6,0x48,0x307,0x82,0xe6,0x68,0x307,0x82,0xdc,0x48,0x323,
+0x82,0xdc,0x68,0x323,0x82,0xe6,0x48,0x308,0x82,0xe6,0x68,0x308,0x82,0xca,0x48,0x327,
+0x82,0xca,0x68,0x327,0x82,0xdc,0x48,0x32e,0x82,0xdc,0x68,0x32e,0x82,0xdc,0x49,0x330,
+0x82,0xdc,0x69,0x330,0x83,0xe6,0x49,0x308,0x301,0x83,0xe6,0x69,0x308,0x301,0x82,0xe6,
+0x4b,0x301,0x82,0xe6,0x6b,0x301,0x82,0xdc,0x4b,0x323,0x82,0xdc,0x6b,0x323,0x82,0xdc,
+0x4b,0x331,0x82,0xdc,0x6b,0x331,0x49c,0x82,0xdc,0x4c,0x323,0x49e,0x82,0xdc,0x6c,0x323,
+0x83,0xe6,0x4c,0x323,0x304,0x83,0xe6,0x6c,0x323,0x304,0x82,0xdc,0x4c,0x331,0x82,0xdc,
+0x6c,0x331,0x82,0xdc,0x4c,0x32d,0x82,0xdc,0x6c,0x32d,0x82,0xe6,0x4d,0x301,0x82,0xe6,
+0x6d,0x301,0x82,0xe6,0x4d,0x307,0x82,0xe6,0x6d,0x307,0x82,0xdc,0x4d,0x323,0x82,0xdc,
+0x6d,0x323,0x82,0xe6,0x4e,0x307,0x82,0xe6,0x6e,0x307,0x82,0xdc,0x4e,0x323,0x82,0xdc,
+0x6e,0x323,0x82,0xdc,0x4e,0x331,0x82,0xdc,0x6e,0x331,0x82,0xdc,0x4e,0x32d,0x82,0xdc,
+0x6e,0x32d,0x83,0xe6,0x4f,0x303,0x301,0x83,0xe6,0x6f,0x303,0x301,0x83,0xe6,0x4f,0x303,
+0x308,0x83,0xe6,0x6f,0x303,0x308,0x83,0xe6,0x4f,0x304,0x300,0x83,0xe6,0x6f,0x304,0x300,
+0x83,0xe6,0x4f,0x304,0x301,0x83,0xe6,0x6f,0x304,0x301,0x82,0xe6,0x50,0x301,0x82,0xe6,
+0x70,0x301,0x82,0xe6,0x50,0x307,0x82,0xe6,0x70,0x307,0x82,0xe6,0x52,0x307,0x82,0xe6,
+0x72,0x307,0x4bc,0x82,0xdc,0x52,0x323,0x4be,0x82,0xdc,0x72,0x323,0x83,0xe6,0x52,0x323,
+0x304,0x83,0xe6,0x72,0x323,0x304,0x82,0xdc,0x52,0x331,0x82,0xdc,0x72,0x331,0x82,0xe6,
+0x53,0x307,0x82,0xe6,0x73,0x307,0x4c8,0x82,0xdc,0x53,0x323,0x4ca,0x82,0xdc,0x73,0x323,
+0x83,0xe6,0x53,0x301,0x307,0x83,0xe6,0x73,0x301,0x307,0x83,0xe6,0x53,0x30c,0x307,0x83,
+0xe6,0x73,0x30c,0x307,0x83,0xe6,0x53,0x323,0x307,0x83,0xe6,0x73,0x323,0x307,0x82,0xe6,
+0x54,0x307,0x82,0xe6,0x74,0x307,0x82,0xdc,0x54,0x323,0x82,0xdc,0x74,0x323,0x82,0xdc,
+0x54,0x331,0x82,0xdc,0x74,0x331,0x82,0xdc,0x54,0x32d,0x82,0xdc,0x74,0x32d,0x82,0xdc,
+0x55,0x324,0x82,0xdc,0x75,0x324,0x82,0xdc,0x55,0x330,0x82,0xdc,0x75,0x330,0x82,0xdc,
+0x55,0x32d,0x82,0xdc,0x75,0x32d,0x83,0xe6,0x55,0x303,0x301,0x83,0xe6,0x75,0x303,0x301,
+0x83,0xe6,0x55,0x304,0x308,0x83,0xe6,0x75,0x304,0x308,0x82,0xe6,0x56,0x303,0x82,0xe6,
+0x76,0x303,0x82,0xdc,0x56,0x323,0x82,0xdc,0x76,0x323,0x82,0xe6,0x57,0x300,0x82,0xe6,
+0x77,0x300,0x82,0xe6,0x57,0x301,0x82,0xe6,0x77,0x301,0x82,0xe6,0x57,0x308,0x82,0xe6,
+0x77,0x308,0x82,0xe6,0x57,0x307,0x82,0xe6,0x77,0x307,0x82,0xdc,0x57,0x323,0x82,0xdc,
+0x77,0x323,0x82,0xe6,0x58,0x307,0x82,0xe6,0x78,0x307,0x82,0xe6,0x58,0x308,0x82,0xe6,
+0x78,0x308,0x82,0xe6,0x59,0x307,0x82,0xe6,0x79,0x307,0x82,0xe6,0x5a,0x302,0x82,0xe6,
+0x7a,0x302,0x82,0xdc,0x5a,0x323,0x82,0xdc,0x7a,0x323,0x82,0xdc,0x5a,0x331,0x82,0xdc,
+0x7a,0x331,0x82,0xdc,0x68,0x331,0x82,0xe6,0x74,0x308,0x82,0xe6,0x77,0x30a,0x82,0xe6,
+0x79,0x30a,0x8282,0xe6,0x17f,0x307,0xe6,0x73,0x307,0x4f6,0x82,0xdc,0x41,0x323,0x4fa,0x82,
+0xdc,0x61,0x323,0x82,0xe6,0x41,0x309,0x82,0xe6,0x61,0x309,0x83,0xe6,0x41,0x302,0x301,
+0x83,0xe6,0x61,0x302,0x301,0x83,0xe6,0x41,0x302,0x300,0x83,0xe6,0x61,0x302,0x300,0x83,
+0xe6,0x41,0x302,0x309,0x83,0xe6,0x61,0x302,0x309,0x83,0xe6,0x41,0x302,0x303,0x83,0xe6,
+0x61,0x302,0x303,0x83,0xe6,0x41,0x323,0x302,0x83,0xe6,0x61,0x323,0x302,0x83,0xe6,0x41,
+0x306,0x301,0x83,0xe6,0x61,0x306,0x301,0x83,0xe6,0x41,0x306,0x300,0x83,0xe6,0x61,0x306,
+0x300,0x83,0xe6,0x41,0x306,0x309,0x83,0xe6,0x61,0x306,0x309,0x83,0xe6,0x41,0x306,0x303,
+0x83,0xe6,0x61,0x306,0x303,0x83,0xe6,0x41,0x323,0x306,0x83,0xe6,0x61,0x323,0x306,0x51e,
+0x82,0xdc,0x45,0x323,0x520,0x82,0xdc,0x65,0x323,0x82,0xe6,0x45,0x309,0x82,0xe6,0x65,
+0x309,0x82,0xe6,0x45,0x303,0x82,0xe6,0x65,0x303,0x83,0xe6,0x45,0x302,0x301,0x83,0xe6,
+0x65,0x302,0x301,0x83,0xe6,0x45,0x302,0x300,0x83,0xe6,0x65,0x302,0x300,0x83,0xe6,0x45,
+0x302,0x309,0x83,0xe6,0x65,0x302,0x309,0x83,0xe6,0x45,0x302,0x303,0x83,0xe6,0x65,0x302,
+0x303,0x83,0xe6,0x45,0x323,0x302,0x83,0xe6,0x65,0x323,0x302,0x82,0xe6,0x49,0x309,0x82,
+0xe6,0x69,0x309,0x82,0xdc,0x49,0x323,0x82,0xdc,0x69,0x323,0x532,0x82,0xdc,0x4f,0x323,
+0x534,0x82,0xdc,0x6f,0x323,0x82,0xe6,0x4f,0x309,0x82,0xe6,0x6f,0x309,0x83,0xe6,0x4f,
+0x302,0x301,0x83,0xe6,0x6f,0x302,0x301,0x83,0xe6,0x4f,0x302,0x300,0x83,0xe6,0x6f,0x302,
+0x300,0x83,0xe6,0x4f,0x302,0x309,0x83,0xe6,0x6f,0x302,0x309,0x83,0xe6,0x4f,0x302,0x303,
+0x83,0xe6,0x6f,0x302,0x303,0x83,0xe6,0x4f,0x323,0x302,0x83,0xe6,0x6f,0x323,0x302,0x83,
+0xe6,0x4f,0x31b,0x301,0x83,0xe6,0x6f,0x31b,0x301,0x83,0xe6,0x4f,0x31b,0x300,0x83,0xe6,
+0x6f,0x31b,0x300,0x83,0xe6,0x4f,0x31b,0x309,0x83,0xe6,0x6f,0x31b,0x309,0x83,0xe6,0x4f,
+0x31b,0x303,0x83,0xe6,0x6f,0x31b,0x303,0x83,0xdc,0x4f,0x31b,0x323,0x83,0xdc,0x6f,0x31b,
+0x323,0x82,0xdc,0x55,0x323,0x82,0xdc,0x75,0x323,0x82,0xe6,0x55,0x309,0x82,0xe6,0x75,
+0x309,0x83,0xe6,0x55,0x31b,0x301,0x83,0xe6,0x75,0x31b,0x301,0x83,0xe6,0x55,0x31b,0x300,
+0x83,0xe6,0x75,0x31b,0x300,0x83,0xe6,0x55,0x31b,0x309,0x83,0xe6,0x75,0x31b,0x309,0x83,
+0xe6,0x55,0x31b,0x303,0x83,0xe6,0x75,0x31b,0x303,0x83,0xdc,0x55,0x31b,0x323,0x83,0xdc,
+0x75,0x31b,0x323,0x82,0xe6,0x59,0x300,0x82,0xe6,0x79,0x300,0x82,0xdc,0x59,0x323,0x82,
+0xdc,0x79,0x323,0x82,0xe6,0x59,0x309,0x82,0xe6,0x79,0x309,0x82,0xe6,0x59,0x303,0x82,
+0xe6,0x79,0x303,0x55e,0x82,0xe6,0x3b1,0x313,0x566,0x82,0xe6,0x3b1,0x314,0x608,0x83,0xe6,
+0x3b1,0x313,0x300,0x60a,0x83,0xe6,0x3b1,0x314,0x300,0x60c,0x83,0xe6,0x3b1,0x313,0x301,0x60e,
+0x83,0xe6,0x3b1,0x314,0x301,0x610,0x83,0xe6,0x3b1,0x313,0x342,0x612,0x83,0xe6,0x3b1,0x314,
+0x342,0x56e,0x82,0xe6,0x391,0x313,0x576,0x82,0xe6,0x391,0x314,0x614,0x83,0xe6,0x391,0x313,
+0x300,0x616,0x83,0xe6,0x391,0x314,0x300,0x618,0x83,0xe6,0x391,0x313,0x301,0x61a,0x83,0xe6,
+0x391,0x314,0x301,0x61c,0x83,0xe6,0x391,0x313,0x342,0x61e,0x83,0xe6,0x391,0x314,0x342,0x57e,
+0x82,0xe6,0x3b5,0x313,0x582,0x82,0xe6,0x3b5,0x314,0x83,0xe6,0x3b5,0x313,0x300,0x83,0xe6,
+0x3b5,0x314,0x300,0x83,0xe6,0x3b5,0x313,0x301,0x83,0xe6,0x3b5,0x314,0x301,0x586,0x82,0xe6,
+0x395,0x313,0x58a,0x82,0xe6,0x395,0x314,0x83,0xe6,0x395,0x313,0x300,0x83,0xe6,0x395,0x314,
+0x300,0x83,0xe6,0x395,0x313,0x301,0x83,0xe6,0x395,0x314,0x301,0x58e,0x82,0xe6,0x3b7,0x313,
+0x596,0x82,0xe6,0x3b7,0x314,0x620,0x83,0xe6,0x3b7,0x313,0x300,0x622,0x83,0xe6,0x3b7,0x314,
+0x300,0x624,0x83,0xe6,0x3b7,0x313,0x301,0x626,0x83,0xe6,0x3b7,0x314,0x301,0x628,0x83,0xe6,
+0x3b7,0x313,0x342,0x62a,0x83,0xe6,0x3b7,0x314,0x342,0x59e,0x82,0xe6,0x397,0x313,0x5a6,0x82,
+0xe6,0x397,0x314,0x62c,0x83,0xe6,0x397,0x313,0x300,0x62e,0x83,0xe6,0x397,0x314,0x300,0x630,
+0x83,0xe6,0x397,0x313,0x301,0x632,0x83,0xe6,0x397,0x314,0x301,0x634,0x83,0xe6,0x397,0x313,
+0x342,0x636,0x83,0xe6,0x397,0x314,0x342,0x5ae,0x82,0xe6,0x3b9,0x313,0x5b4,0x82,0xe6,0x3b9,
+0x314,0x83,0xe6,0x3b9,0x313,0x300,0x83,0xe6,0x3b9,0x314,0x300,0x83,0xe6,0x3b9,0x313,0x301,
+0x83,0xe6,0x3b9,0x314,0x301,0x83,0xe6,0x3b9,0x313,0x342,0x83,0xe6,0x3b9,0x314,0x342,0x5ba,
+0x82,0xe6,0x399,0x313,0x5c0,0x82,0xe6,0x399,0x314,0x83,0xe6,0x399,0x313,0x300,0x83,0xe6,
+0x399,0x314,0x300,0x83,0xe6,0x399,0x313,0x301,0x83,0xe6,0x399,0x314,0x301,0x83,0xe6,0x399,
+0x313,0x342,0x83,0xe6,0x399,0x314,0x342,0x5c6,0x82,0xe6,0x3bf,0x313,0x5ca,0x82,0xe6,0x3bf,
+0x314,0x83,0xe6,0x3bf,0x313,0x300,0x83,0xe6,0x3bf,0x314,0x300,0x83,0xe6,0x3bf,0x313,0x301,
+0x83,0xe6,0x3bf,0x314,0x301,0x5ce,0x82,0xe6,0x39f,0x313,0x5d2,0x82,0xe6,0x39f,0x314,0x83,
+0xe6,0x39f,0x313,0x300,0x83,0xe6,0x39f,0x314,0x300,0x83,0xe6,0x39f,0x313,0x301,0x83,0xe6,
+0x39f,0x314,0x301,0x5d6,0x82,0xe6,0x3c5,0x313,0x5dc,0x82,0xe6,0x3c5,0x314,0x83,0xe6,0x3c5,
+0x313,0x300,0x83,0xe6,0x3c5,0x314,0x300,0x83,0xe6,0x3c5,0x313,0x301,0x83,0xe6,0x3c5,0x314,
+0x301,0x83,0xe6,0x3c5,0x313,0x342,0x83,0xe6,0x3c5,0x314,0x342,0x5e2,0x82,0xe6,0x3a5,0x314,
+0x83,0xe6,0x3a5,0x314,0x300,0x83,0xe6,0x3a5,0x314,0x301,0x83,0xe6,0x3a5,0x314,0x342,0x5e8,
+0x82,0xe6,0x3c9,0x313,0x5f0,0x82,0xe6,0x3c9,0x314,0x638,0x83,0xe6,0x3c9,0x313,0x300,0x63a,
+0x83,0xe6,0x3c9,0x314,0x300,0x63c,0x83,0xe6,0x3c9,0x313,0x301,0x63e,0x83,0xe6,0x3c9,0x314,
+0x301,0x640,0x83,0xe6,0x3c9,0x313,0x342,0x642,0x83,0xe6,0x3c9,0x314,0x342,0x5f8,0x82,0xe6,
+0x3a9,0x313,0x600,0x82,0xe6,0x3a9,0x314,0x644,0x83,0xe6,0x3a9,0x313,0x300,0x646,0x83,0xe6,
+0x3a9,0x314,0x300,0x648,0x83,0xe6,0x3a9,0x313,0x301,0x64a,0x83,0xe6,0x3a9,0x314,0x301,0x64c,
+0x83,0xe6,0x3a9,0x313,0x342,0x64e,0x83,0xe6,0x3a9,0x314,0x342,0x650,0x82,0xe6,0x3b1,0x300,
+0x82,0xe6,0x3b5,0x300,0x656,0x82,0xe6,0x3b7,0x300,0x82,0xe6,0x3b9,0x300,0x82,0xe6,0x3bf,
+0x300,0x82,0xe6,0x3c5,0x300,0x66e,0x82,0xe6,0x3c9,0x300,0x83,0xf0,0x3b1,0x313,0x345,0x83,
+0xf0,0x3b1,0x314,0x345,0x84,0xf0,0x3b1,0x313,0x300,0x345,0x84,0xf0,0x3b1,0x314,0x300,0x345,
+0x84,0xf0,0x3b1,0x313,0x301,0x345,0x84,0xf0,0x3b1,0x314,0x301,0x345,0x84,0xf0,0x3b1,0x313,
+0x342,0x345,0x84,0xf0,0x3b1,0x314,0x342,0x345,0x83,0xf0,0x391,0x313,0x345,0x83,0xf0,0x391,
+0x314,0x345,0x84,0xf0,0x391,0x313,0x300,0x345,0x84,0xf0,0x391,0x314,0x300,0x345,0x84,0xf0,
+0x391,0x313,0x301,0x345,0x84,0xf0,0x391,0x314,0x301,0x345,0x84,0xf0,0x391,0x313,0x342,0x345,
+0x84,0xf0,0x391,0x314,0x342,0x345,0x83,0xf0,0x3b7,0x313,0x345,0x83,0xf0,0x3b7,0x314,0x345,
+0x84,0xf0,0x3b7,0x313,0x300,0x345,0x84,0xf0,0x3b7,0x314,0x300,0x345,0x84,0xf0,0x3b7,0x313,
+0x301,0x345,0x84,0xf0,0x3b7,0x314,0x301,0x345,0x84,0xf0,0x3b7,0x313,0x342,0x345,0x84,0xf0,
+0x3b7,0x314,0x342,0x345,0x83,0xf0,0x397,0x313,0x345,0x83,0xf0,0x397,0x314,0x345,0x84,0xf0,
+0x397,0x313,0x300,0x345,0x84,0xf0,0x397,0x314,0x300,0x345,0x84,0xf0,0x397,0x313,0x301,0x345,
+0x84,0xf0,0x397,0x314,0x301,0x345,0x84,0xf0,0x397,0x313,0x342,0x345,0x84,0xf0,0x397,0x314,
+0x342,0x345,0x83,0xf0,0x3c9,0x313,0x345,0x83,0xf0,0x3c9,0x314,0x345,0x84,0xf0,0x3c9,0x313,
+0x300,0x345,0x84,0xf0,0x3c9,0x314,0x300,0x345,0x84,0xf0,0x3c9,0x313,0x301,0x345,0x84,0xf0,
+0x3c9,0x314,0x301,0x345,0x84,0xf0,0x3c9,0x313,0x342,0x345,0x84,0xf0,0x3c9,0x314,0x342,0x345,
+0x83,0xf0,0x3a9,0x313,0x345,0x83,0xf0,0x3a9,0x314,0x345,0x84,0xf0,0x3a9,0x313,0x300,0x345,
+0x84,0xf0,0x3a9,0x314,0x300,0x345,0x84,0xf0,0x3a9,0x313,0x301,0x345,0x84,0xf0,0x3a9,0x314,
+0x301,0x345,0x84,0xf0,0x3a9,0x313,0x342,0x345,0x84,0xf0,0x3a9,0x314,0x342,0x345,0x82,0xe6,
+0x3b1,0x306,0x82,0xe6,0x3b1,0x304,0x83,0xf0,0x3b1,0x300,0x345,0x82,0xf0,0x3b1,0x345,0x83,
+0xf0,0x3b1,0x301,0x345,0x654,0x82,0xe6,0x3b1,0x342,0x83,0xf0,0x3b1,0x342,0x345,0x82,0xe6,
+0x391,0x306,0x82,0xe6,0x391,0x304,0x82,0xe6,0x391,0x300,0x82,0xf0,0x391,0x345,0x8382,0xe6,
+0xa8,0x342,0xe6,0x20,0x308,0x342,0x83,0xf0,0x3b7,0x300,0x345,0x82,0xf0,0x3b7,0x345,0x83,
+0xf0,0x3b7,0x301,0x345,0x65a,0x82,0xe6,0x3b7,0x342,0x83,0xf0,0x3b7,0x342,0x345,0x82,0xe6,
+0x395,0x300,0x82,0xe6,0x397,0x300,0x82,0xf0,0x397,0x345,0x8382,0xe6,0x1fbf,0x300,0xe6,0x20,
+0x313,0x300,0x8382,0xe6,0x1fbf,0x301,0xe6,0x20,0x313,0x301,0x8382,0xe6,0x1fbf,0x342,0xe6,0x20,
+0x313,0x342,0x82,0xe6,0x3b9,0x306,0x82,0xe6,0x3b9,0x304,0x83,0xe6,0x3b9,0x308,0x300,0x82,
+0xe6,0x3b9,0x342,0x83,0xe6,0x3b9,0x308,0x342,0x82,0xe6,0x399,0x306,0x82,0xe6,0x399,0x304,
+0x82,0xe6,0x399,0x300,0x8382,0xe6,0x1ffe,0x300,0xe6,0x20,0x314,0x300,0x8382,0xe6,0x1ffe,0x301,
+0xe6,0x20,0x314,0x301,0x8382,0xe6,0x1ffe,0x342,0xe6,0x20,0x314,0x342,0x82,0xe6,0x3c5,0x306,
+0x82,0xe6,0x3c5,0x304,0x83,0xe6,0x3c5,0x308,0x300,0x82,0xe6,0x3c1,0x313,0x82,0xe6,0x3c1,
+0x314,0x82,0xe6,0x3c5,0x342,0x83,0xe6,0x3c5,0x308,0x342,0x82,0xe6,0x3a5,0x306,0x82,0xe6,
+0x3a5,0x304,0x82,0xe6,0x3a5,0x300,0x82,0xe6,0x3a1,0x314,0x8382,0xe6,0xa8,0x300,0xe6,0x20,
+0x308,0x300,0x83,0xf0,0x3c9,0x300,0x345,0x82,0xf0,0x3c9,0x345,0x83,0xf0,0x3c9,0x301,0x345,
+0x672,0x82,0xe6,0x3c9,0x342,0x83,0xf0,0x3c9,0x342,0x345,0x82,0xe6,0x39f,0x300,0x82,0xe6,
+0x3a9,0x300,0x82,0xf0,0x3a9,0x345,0x82,1,0x2190,0x338,0x82,1,0x2192,0x338,0x82,1,
+0x2194,0x338,0x82,1,0x21d0,0x338,0x82,1,0x21d4,0x338,0x82,1,0x21d2,0x338,0x82,1,
+0x2203,0x338,0x82,1,0x2208,0x338,0x82,1,0x220b,0x338,0x82,1,0x2223,0x338,0x82,1,
+0x2225,0x338,0x82,1,0x223c,0x338,0x82,1,0x2243,0x338,0x82,1,0x2245,0x338,0x82,1,
+0x2248,0x338,0x82,1,0x3d,0x338,0x82,1,0x2261,0x338,0x82,1,0x224d,0x338,0x82,1,
+0x3c,0x338,0x82,1,0x3e,0x338,0x82,1,0x2264,0x338,0x82,1,0x2265,0x338,0x82,1,
+0x2272,0x338,0x82,1,0x2273,0x338,0x82,1,0x2276,0x338,0x82,1,0x2277,0x338,0x82,1,
+0x227a,0x338,0x82,1,0x227b,0x338,0x82,1,0x2282,0x338,0x82,1,0x2283,0x338,0x82,1,
+0x2286,0x338,0x82,1,0x2287,0x338,0x82,1,0x22a2,0x338,0x82,1,0x22a8,0x338,0x82,1,
+0x22a9,0x338,0x82,1,0x22ab,0x338,0x82,1,0x227c,0x338,0x82,1,0x227d,0x338,0x82,1,
+0x2291,0x338,0x82,1,0x2292,0x338,0x82,1,0x22b2,0x338,0x82,1,0x22b3,0x338,0x82,1,
+0x22b4,0x338,0x82,1,0x22b5,0x338,0x82,8,0x304b,0x3099,0x82,8,0x304d,0x3099,0x82,8,
+0x304f,0x3099,0x82,8,0x3051,0x3099,0x82,8,0x3053,0x3099,0x82,8,0x3055,0x3099,0x82,8,
+0x3057,0x3099,0x82,8,0x3059,0x3099,0x82,8,0x305b,0x3099,0x82,8,0x305d,0x3099,0x82,8,
+0x305f,0x3099,0x82,8,0x3061,0x3099,0x82,8,0x3064,0x3099,0x82,8,0x3066,0x3099,0x82,8,
+0x3068,0x3099,0x82,8,0x306f,0x3099,0x82,8,0x306f,0x309a,0x82,8,0x3072,0x3099,0x82,8,
+0x3072,0x309a,0x82,8,0x3075,0x3099,0x82,8,0x3075,0x309a,0x82,8,0x3078,0x3099,0x82,8,
+0x3078,0x309a,0x82,8,0x307b,0x3099,0x82,8,0x307b,0x309a,0x82,8,0x3046,0x3099,0x82,8,
+0x309d,0x3099,0x82,8,0x30ab,0x3099,0x82,8,0x30ad,0x3099,0x82,8,0x30af,0x3099,0x82,8,
+0x30b1,0x3099,0x82,8,0x30b3,0x3099,0x82,8,0x30b5,0x3099,0x82,8,0x30b7,0x3099,0x82,8,
+0x30b9,0x3099,0x82,8,0x30bb,0x3099,0x82,8,0x30bd,0x3099,0x82,8,0x30bf,0x3099,0x82,8,
+0x30c1,0x3099,0x82,8,0x30c4,0x3099,0x82,8,0x30c6,0x3099,0x82,8,0x30c8,0x3099,0x82,8,
+0x30cf,0x3099,0x82,8,0x30cf,0x309a,0x82,8,0x30d2,0x3099,0x82,8,0x30d2,0x309a,0x82,8,
+0x30d5,0x3099,0x82,8,0x30d5,0x309a,0x82,8,0x30d8,0x3099,0x82,8,0x30d8,0x309a,0x82,8,
+0x30db,0x3099,0x82,8,0x30db,0x309a,0x82,8,0x30a6,0x3099,0x82,8,0x30ef,0x3099,0x82,8,
+0x30f0,0x3099,0x82,8,0x30f1,0x3099,0x82,8,0x30f2,0x3099,0x82,8,0x30fd,0x3099,0x7a6,0x7a7,
+0x7a8,0x7a9,0x7ad,0x7ae,0x7b0,0x7aa,0x7d4,0x7ab,0x7b2,0x7b1,0x7b4,0x7b5,0x7d5,0x7d6,0x7b3,0x7ce,
+0x7d3,0x7cd,0x7b6,0x7ac,0x7af,0x7d0,0x7d2,0x7d1,0x7cf,0x7d9,0x7d7,0x7d8,0x7b7,0x7b8,0x7b9,0x7ba,
+0x7bb,0x7bc,0x7be,0x7bd,0x7bf,0x7c1,0x7c0,0x7c2,0x7c5,0x7c3,0x7c4,0x7c6,0x7c7,0x7c8,0x7c9,0x7ca,
+0x7cb,0x7cc,0x7da,0x7db,0x100,0x20,0x2fc,0x8200,0xe6,0x20,0x308,0x100,0x61,0x8200,0xe6,0x20,
+0x304,0x100,0x32,0x100,0x33,0x8200,0xe6,0x20,0x301,0x100,0x3bc,0x8200,0xca,0x20,0x327,0x100,
+0x31,0x100,0x6f,0x300,0x31,0x2044,0x34,0x300,0x31,0x2044,0x32,0x300,0x33,0x2044,0x34,0x200,
+0x49,0x4a,0x200,0x69,0x6a,0x200,0x4c,0xb7,0x200,0x6c,0xb7,0x200,0x2bc,0x6e,0x4e4,0x100,
+0x73,0x8300,0xe6,0x44,0x5a,0x30c,0x8300,0xe6,0x44,0x7a,0x30c,0x8300,0xe6,0x64,0x7a,0x30c,
+0x200,0x4c,0x4a,0x200,0x4c,0x6a,0x200,0x6c,0x6a,0x200,0x4e,0x4a,0x200,0x4e,0x6a,0x200,
+0x6e,0x6a,0x200,0x44,0x5a,0x200,0x44,0x7a,0x200,0x64,0x7a,0x100,0x68,0x100,0x266,0x100,
+0x6a,0x100,0x72,0x100,0x279,0x100,0x27b,0x100,0x281,0x100,0x77,0x100,0x79,0x8200,0xe6,0x20,
+0x306,0x8200,0xe6,0x20,0x307,0x8200,0xe6,0x20,0x30a,0x8200,0xca,0x20,0x328,0x8200,0xe6,0x20,
+0x303,0x8200,0xe6,0x20,0x30b,0x100,0x263,0x100,0x6c,0x100,0x73,0x100,0x78,0x100,0x295,0x8200,
+0xe6,0x20,0x301,0x100,0x3b2,0x100,0x3b8,0x100,0x3c6,0x100,0x3c0,0x100,0x3ba,0x100,0x3c1,0x100,
+0x398,0x100,0x3b5,0x200,0x565,0x582,0x200,0x627,0x674,0x200,0x648,0x674,0x200,0x6c7,0x674,0x200,
+0x64a,0x674,0x200,0xe4d,0xe32,0x200,0xecd,0xeb2,0x200,0xeab,0xe99,0x200,0xeab,0xea1,0x100,0xf0b,
+0x8300,0x82,0xfb2,0xf71,0xf80,0x8300,0x82,0xfb3,0xf71,0xf80,0x100,0x10dc,0x100,0x61,0x100,0x250,
+0x100,0x251,0x100,0x1d02,0x100,0x62,0x100,0x64,0x100,0x65,0x100,0x259,0x100,0x25b,0x100,0x25c,
+0x100,0x67,0x100,0x6b,0x100,0x6d,0x100,0x14b,0x100,0x6f,0x100,0x254,0x100,0x1d16,0x100,0x1d17,
+0x100,0x70,0x100,0x74,0x100,0x75,0x100,0x1d1d,0x100,0x26f,0x100,0x76,0x100,0x1d25,0x100,0x3b2,
+0x100,0x3b3,0x100,0x3b4,0x100,0x3c6,0x100,0x3c7,0x100,0x69,0x100,0x72,0x100,0x75,0x100,0x76,
+0x100,0x3b2,0x100,0x3b3,0x100,0x3c1,0x100,0x3c6,0x100,0x3c7,0x100,0x43d,0x100,0x252,0x100,0x63,
+0x100,0x255,0x100,0xf0,0x100,0x25c,0x100,0x66,0x100,0x25f,0x100,0x261,0x100,0x265,0x100,0x268,
+0x100,0x269,0x100,0x26a,0x100,0x1d7b,0x100,0x29d,0x100,0x26d,0x100,0x1d85,0x100,0x29f,0x100,0x271,
+0x100,0x270,0x100,0x272,0x100,0x273,0x100,0x274,0x100,0x275,0x100,0x278,0x100,0x282,0x100,0x283,
+0x100,0x1ab,0x100,0x289,0x100,0x28a,0x100,0x1d1c,0x100,0x28b,0x100,0x28c,0x100,0x7a,0x100,0x290,
+0x100,0x291,0x100,0x292,0x100,0x3b8,0x200,0x61,0x2be,0x8200,0xe6,0x20,0x313,0x65c,0x8200,0xe6,
+0x20,0x313,0x8200,0xe6,0x20,0x342,0x662,0x8200,0xe6,0x20,0x314,0x100,0x20,0x100,0x20,0x100,
+0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x20,0x100,0x2010,0x8200,
+0xdc,0x20,0x333,0x100,0x2e,0x200,0x2e,0x2e,0x300,0x2e,0x2e,0x2e,0x100,0x20,0x200,0x2032,
+0x2032,0x300,0x2032,0x2032,0x2032,0x200,0x2035,0x2035,0x300,0x2035,0x2035,0x2035,0x200,0x21,0x21,0x8200,
+0xe6,0x20,0x305,0x200,0x3f,0x3f,0x200,0x3f,0x21,0x200,0x21,0x3f,0x400,0x2032,0x2032,0x2032,
+0x2032,0x100,0x20,0x100,0x30,0x100,0x69,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,
+0x38,0x100,0x39,0x100,0x2b,0x100,0x2212,0x100,0x3d,0x100,0x28,0x100,0x29,0x100,0x6e,0x100,
+0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,
+0x38,0x100,0x39,0x100,0x2b,0x100,0x2212,0x100,0x3d,0x100,0x28,0x100,0x29,0x100,0x61,0x100,
+0x65,0x100,0x6f,0x100,0x78,0x100,0x259,0x300,0x61,0x2f,0x63,0x300,0x61,0x2f,0x73,0x300,
+0x63,0x2f,0x6f,0x300,0x63,0x2f,0x75,0x100,0x67,0x100,0x68,0x100,0x127,0x100,0x6c,0x100,
+0x65,0x100,0x6f,0x100,0x5d0,0x100,0x5d1,0x100,0x5d2,0x100,0x5d3,0x100,0x69,0x100,0x3c0,0x100,
+0x3b3,0x100,0x2211,0x100,0x64,0x100,0x65,0x100,0x69,0x100,0x6a,0x300,0x31,0x2044,0x33,0x300,
+0x32,0x2044,0x33,0x300,0x31,0x2044,0x35,0x300,0x32,0x2044,0x35,0x300,0x33,0x2044,0x35,0x300,
+0x34,0x2044,0x35,0x300,0x31,0x2044,0x36,0x300,0x35,0x2044,0x36,0x300,0x31,0x2044,0x38,0x300,
+0x33,0x2044,0x38,0x300,0x35,0x2044,0x38,0x300,0x37,0x2044,0x38,0x200,0x31,0x2044,0x100,0x49,
+0x200,0x49,0x49,0x300,0x49,0x49,0x49,0x200,0x49,0x56,0x100,0x56,0x200,0x56,0x49,0x300,
+0x56,0x49,0x49,0x400,0x56,0x49,0x49,0x49,0x200,0x49,0x58,0x100,0x58,0x200,0x58,0x49,
+0x300,0x58,0x49,0x49,0x100,0x4c,0x100,0x43,0x100,0x44,0x100,0x4d,0x100,0x69,0x200,0x69,
+0x69,0x300,0x69,0x69,0x69,0x200,0x69,0x76,0x100,0x76,0x200,0x76,0x69,0x300,0x76,0x69,
+0x69,0x400,0x76,0x69,0x69,0x69,0x200,0x69,0x78,0x100,0x78,0x200,0x78,0x69,0x300,0x78,
+0x69,0x69,0x100,0x6c,0x100,0x63,0x100,0x64,0x100,0x6d,0x200,0x222b,0x222b,0x300,0x222b,0x222b,
+0x222b,0x200,0x222e,0x222e,0x300,0x222e,0x222e,0x222e,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,
+0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x200,0x31,0x30,0x200,0x31,0x31,
+0x200,0x31,0x32,0x200,0x31,0x33,0x200,0x31,0x34,0x200,0x31,0x35,0x200,0x31,0x36,0x200,
+0x31,0x37,0x200,0x31,0x38,0x200,0x31,0x39,0x200,0x32,0x30,0x300,0x28,0x31,0x29,0x300,
+0x28,0x32,0x29,0x300,0x28,0x33,0x29,0x300,0x28,0x34,0x29,0x300,0x28,0x35,0x29,0x300,
+0x28,0x36,0x29,0x300,0x28,0x37,0x29,0x300,0x28,0x38,0x29,0x300,0x28,0x39,0x29,0x400,
+0x28,0x31,0x30,0x29,0x400,0x28,0x31,0x31,0x29,0x400,0x28,0x31,0x32,0x29,0x400,0x28,
+0x31,0x33,0x29,0x400,0x28,0x31,0x34,0x29,0x400,0x28,0x31,0x35,0x29,0x400,0x28,0x31,
+0x36,0x29,0x400,0x28,0x31,0x37,0x29,0x400,0x28,0x31,0x38,0x29,0x400,0x28,0x31,0x39,
+0x29,0x400,0x28,0x32,0x30,0x29,0x200,0x31,0x2e,0x200,0x32,0x2e,0x200,0x33,0x2e,0x200,
+0x34,0x2e,0x200,0x35,0x2e,0x200,0x36,0x2e,0x200,0x37,0x2e,0x200,0x38,0x2e,0x200,0x39,
+0x2e,0x300,0x31,0x30,0x2e,0x300,0x31,0x31,0x2e,0x300,0x31,0x32,0x2e,0x300,0x31,0x33,
+0x2e,0x300,0x31,0x34,0x2e,0x300,0x31,0x35,0x2e,0x300,0x31,0x36,0x2e,0x300,0x31,0x37,
+0x2e,0x300,0x31,0x38,0x2e,0x300,0x31,0x39,0x2e,0x300,0x32,0x30,0x2e,0x300,0x28,0x61,
+0x29,0x300,0x28,0x62,0x29,0x300,0x28,0x63,0x29,0x300,0x28,0x64,0x29,0x300,0x28,0x65,
+0x29,0x300,0x28,0x66,0x29,0x300,0x28,0x67,0x29,0x300,0x28,0x68,0x29,0x300,0x28,0x69,
+0x29,0x300,0x28,0x6a,0x29,0x300,0x28,0x6b,0x29,0x300,0x28,0x6c,0x29,0x300,0x28,0x6d,
+0x29,0x300,0x28,0x6e,0x29,0x300,0x28,0x6f,0x29,0x300,0x28,0x70,0x29,0x300,0x28,0x71,
+0x29,0x300,0x28,0x72,0x29,0x300,0x28,0x73,0x29,0x300,0x28,0x74,0x29,0x300,0x28,0x75,
+0x29,0x300,0x28,0x76,0x29,0x300,0x28,0x77,0x29,0x300,0x28,0x78,0x29,0x300,0x28,0x79,
+0x29,0x300,0x28,0x7a,0x29,0x100,0x41,0x100,0x42,0x100,0x43,0x100,0x44,0x100,0x45,0x100,
0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,0x4b,0x100,0x4c,0x100,0x4d,0x100,
0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,0x53,0x100,0x54,0x100,0x55,0x100,
-0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x5b,0x100,0x5c,0x100,0x5d,0x100,
-0x5e,0x100,0x5f,0x100,0x60,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,
-0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,
-0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,
-0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x7b,0x100,0x7c,0x100,0x7d,0x100,
-0x7e,0x100,0x2985,0x100,0x2986,0x100,0x3002,0x100,0x300c,0x100,0x300d,0x100,0x3001,0x100,0x30fb,0x100,
-0x30f2,0x100,0x30a1,0x100,0x30a3,0x100,0x30a5,0x100,0x30a7,0x100,0x30a9,0x100,0x30e3,0x100,0x30e5,0x100,
-0x30e7,0x100,0x30c3,0x100,0x30fc,0x100,0x30a2,0x100,0x30a4,0x100,0x30a6,0x100,0x30a8,0x100,0x30aa,0x100,
-0x30ab,0x100,0x30ad,0x100,0x30af,0x100,0x30b1,0x100,0x30b3,0x100,0x30b5,0x100,0x30b7,0x100,0x30b9,0x100,
-0x30bb,0x100,0x30bd,0x100,0x30bf,0x100,0x30c1,0x100,0x30c4,0x100,0x30c6,0x100,0x30c8,0x100,0x30ca,0x100,
-0x30cb,0x100,0x30cc,0x100,0x30cd,0x100,0x30ce,0x100,0x30cf,0x100,0x30d2,0x100,0x30d5,0x100,0x30d8,0x100,
-0x30db,0x100,0x30de,0x100,0x30df,0x100,0x30e0,0x100,0x30e1,0x100,0x30e2,0x100,0x30e4,0x100,0x30e6,0x100,
-0x30e8,0x100,0x30e9,0x100,0x30ea,0x100,0x30eb,0x100,0x30ec,0x100,0x30ed,0x100,0x30ef,0x100,0x30f3,0x8100,
-0x808,0x3099,0x8100,0x808,0x309a,0x100,0x1160,0x100,0x1100,0x100,0x1101,0x100,0x11aa,0x100,0x1102,0x100,
-0x11ac,0x100,0x11ad,0x100,0x1103,0x100,0x1104,0x100,0x1105,0x100,0x11b0,0x100,0x11b1,0x100,0x11b2,0x100,
-0x11b3,0x100,0x11b4,0x100,0x11b5,0x100,0x111a,0x100,0x1106,0x100,0x1107,0x100,0x1108,0x100,0x1121,0x100,
-0x1109,0x100,0x110a,0x100,0x110b,0x100,0x110c,0x100,0x110d,0x100,0x110e,0x100,0x110f,0x100,0x1110,0x100,
-0x1111,0x100,0x1112,0x100,0x1161,0x100,0x1162,0x100,0x1163,0x100,0x1164,0x100,0x1165,0x100,0x1166,0x100,
-0x1167,0x100,0x1168,0x100,0x1169,0x100,0x116a,0x100,0x116b,0x100,0x116c,0x100,0x116d,0x100,0x116e,0x100,
-0x116f,0x100,0x1170,0x100,0x1171,0x100,0x1172,0x100,0x1173,0x100,0x1174,0x100,0x1175,0x100,0xa2,0x100,
-0xa3,0x100,0xac,0x8200,0xe6,0x20,0x304,0x100,0xa6,0x100,0xa5,0x100,0x20a9,0x100,0x2502,0x100,
-0x2190,0x100,0x2191,0x100,0x2192,0x100,0x2193,0x100,0x25a0,0x100,0x25cb,0x100,0x61,0x100,0x62,0x100,
+0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,
+0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,
+0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,
+0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x30,0x400,
+0x222b,0x222b,0x222b,0x222b,0x300,0x3a,0x3a,0x3d,0x200,0x3d,0x3d,0x300,0x3d,0x3d,0x3d,0x100,
+0x2d61,0x100,0x6bcd,0x100,0x9f9f,0x100,0x4e00,0x100,0x4e28,0x100,0x4e36,0x100,0x4e3f,0x100,0x4e59,0x100,
+0x4e85,0x100,0x4e8c,0x100,0x4ea0,0x100,0x4eba,0x100,0x513f,0x100,0x5165,0x100,0x516b,0x100,0x5182,0x100,
+0x5196,0x100,0x51ab,0x100,0x51e0,0x100,0x51f5,0x100,0x5200,0x100,0x529b,0x100,0x52f9,0x100,0x5315,0x100,
+0x531a,0x100,0x5338,0x100,0x5341,0x100,0x535c,0x100,0x5369,0x100,0x5382,0x100,0x53b6,0x100,0x53c8,0x100,
+0x53e3,0x100,0x56d7,0x100,0x571f,0x100,0x58eb,0x100,0x5902,0x100,0x590a,0x100,0x5915,0x100,0x5927,0x100,
+0x5973,0x100,0x5b50,0x100,0x5b80,0x100,0x5bf8,0x100,0x5c0f,0x100,0x5c22,0x100,0x5c38,0x100,0x5c6e,0x100,
+0x5c71,0x100,0x5ddb,0x100,0x5de5,0x100,0x5df1,0x100,0x5dfe,0x100,0x5e72,0x100,0x5e7a,0x100,0x5e7f,0x100,
+0x5ef4,0x100,0x5efe,0x100,0x5f0b,0x100,0x5f13,0x100,0x5f50,0x100,0x5f61,0x100,0x5f73,0x100,0x5fc3,0x100,
+0x6208,0x100,0x6236,0x100,0x624b,0x100,0x652f,0x100,0x6534,0x100,0x6587,0x100,0x6597,0x100,0x65a4,0x100,
+0x65b9,0x100,0x65e0,0x100,0x65e5,0x100,0x66f0,0x100,0x6708,0x100,0x6728,0x100,0x6b20,0x100,0x6b62,0x100,
+0x6b79,0x100,0x6bb3,0x100,0x6bcb,0x100,0x6bd4,0x100,0x6bdb,0x100,0x6c0f,0x100,0x6c14,0x100,0x6c34,0x100,
+0x706b,0x100,0x722a,0x100,0x7236,0x100,0x723b,0x100,0x723f,0x100,0x7247,0x100,0x7259,0x100,0x725b,0x100,
+0x72ac,0x100,0x7384,0x100,0x7389,0x100,0x74dc,0x100,0x74e6,0x100,0x7518,0x100,0x751f,0x100,0x7528,0x100,
+0x7530,0x100,0x758b,0x100,0x7592,0x100,0x7676,0x100,0x767d,0x100,0x76ae,0x100,0x76bf,0x100,0x76ee,0x100,
+0x77db,0x100,0x77e2,0x100,0x77f3,0x100,0x793a,0x100,0x79b8,0x100,0x79be,0x100,0x7a74,0x100,0x7acb,0x100,
+0x7af9,0x100,0x7c73,0x100,0x7cf8,0x100,0x7f36,0x100,0x7f51,0x100,0x7f8a,0x100,0x7fbd,0x100,0x8001,0x100,
+0x800c,0x100,0x8012,0x100,0x8033,0x100,0x807f,0x100,0x8089,0x100,0x81e3,0x100,0x81ea,0x100,0x81f3,0x100,
+0x81fc,0x100,0x820c,0x100,0x821b,0x100,0x821f,0x100,0x826e,0x100,0x8272,0x100,0x8278,0x100,0x864d,0x100,
+0x866b,0x100,0x8840,0x100,0x884c,0x100,0x8863,0x100,0x897e,0x100,0x898b,0x100,0x89d2,0x100,0x8a00,0x100,
+0x8c37,0x100,0x8c46,0x100,0x8c55,0x100,0x8c78,0x100,0x8c9d,0x100,0x8d64,0x100,0x8d70,0x100,0x8db3,0x100,
+0x8eab,0x100,0x8eca,0x100,0x8f9b,0x100,0x8fb0,0x100,0x8fb5,0x100,0x9091,0x100,0x9149,0x100,0x91c6,0x100,
+0x91cc,0x100,0x91d1,0x100,0x9577,0x100,0x9580,0x100,0x961c,0x100,0x96b6,0x100,0x96b9,0x100,0x96e8,0x100,
+0x9751,0x100,0x975e,0x100,0x9762,0x100,0x9769,0x100,0x97cb,0x100,0x97ed,0x100,0x97f3,0x100,0x9801,0x100,
+0x98a8,0x100,0x98db,0x100,0x98df,0x100,0x9996,0x100,0x9999,0x100,0x99ac,0x100,0x9aa8,0x100,0x9ad8,0x100,
+0x9adf,0x100,0x9b25,0x100,0x9b2f,0x100,0x9b32,0x100,0x9b3c,0x100,0x9b5a,0x100,0x9ce5,0x100,0x9e75,0x100,
+0x9e7f,0x100,0x9ea5,0x100,0x9ebb,0x100,0x9ec3,0x100,0x9ecd,0x100,0x9ed1,0x100,0x9ef9,0x100,0x9efd,0x100,
+0x9f0e,0x100,0x9f13,0x100,0x9f20,0x100,0x9f3b,0x100,0x9f4a,0x100,0x9f52,0x100,0x9f8d,0x100,0x9f9c,0x100,
+0x9fa0,0x100,0x20,0x100,0x3012,0x100,0x5341,0x100,0x5344,0x100,0x5345,0x8200,8,0x20,0x3099,0x8200,
+8,0x20,0x309a,0x200,0x3088,0x308a,0x200,0x30b3,0x30c8,0x100,0x1100,0x100,0x1101,0x100,0x11aa,0x100,
+0x1102,0x100,0x11ac,0x100,0x11ad,0x100,0x1103,0x100,0x1104,0x100,0x1105,0x100,0x11b0,0x100,0x11b1,0x100,
+0x11b2,0x100,0x11b3,0x100,0x11b4,0x100,0x11b5,0x100,0x111a,0x100,0x1106,0x100,0x1107,0x100,0x1108,0x100,
+0x1121,0x100,0x1109,0x100,0x110a,0x100,0x110b,0x100,0x110c,0x100,0x110d,0x100,0x110e,0x100,0x110f,0x100,
+0x1110,0x100,0x1111,0x100,0x1112,0x100,0x1161,0x100,0x1162,0x100,0x1163,0x100,0x1164,0x100,0x1165,0x100,
+0x1166,0x100,0x1167,0x100,0x1168,0x100,0x1169,0x100,0x116a,0x100,0x116b,0x100,0x116c,0x100,0x116d,0x100,
+0x116e,0x100,0x116f,0x100,0x1170,0x100,0x1171,0x100,0x1172,0x100,0x1173,0x100,0x1174,0x100,0x1175,0x100,
+0x1160,0x100,0x1114,0x100,0x1115,0x100,0x11c7,0x100,0x11c8,0x100,0x11cc,0x100,0x11ce,0x100,0x11d3,0x100,
+0x11d7,0x100,0x11d9,0x100,0x111c,0x100,0x11dd,0x100,0x11df,0x100,0x111d,0x100,0x111e,0x100,0x1120,0x100,
+0x1122,0x100,0x1123,0x100,0x1127,0x100,0x1129,0x100,0x112b,0x100,0x112c,0x100,0x112d,0x100,0x112e,0x100,
+0x112f,0x100,0x1132,0x100,0x1136,0x100,0x1140,0x100,0x1147,0x100,0x114c,0x100,0x11f1,0x100,0x11f2,0x100,
+0x1157,0x100,0x1158,0x100,0x1159,0x100,0x1184,0x100,0x1185,0x100,0x1188,0x100,0x1191,0x100,0x1192,0x100,
+0x1194,0x100,0x119e,0x100,0x11a1,0x100,0x4e00,0x100,0x4e8c,0x100,0x4e09,0x100,0x56db,0x100,0x4e0a,0x100,
+0x4e2d,0x100,0x4e0b,0x100,0x7532,0x100,0x4e59,0x100,0x4e19,0x100,0x4e01,0x100,0x5929,0x100,0x5730,0x100,
+0x4eba,0x300,0x28,0x1100,0x29,0x300,0x28,0x1102,0x29,0x300,0x28,0x1103,0x29,0x300,0x28,0x1105,
+0x29,0x300,0x28,0x1106,0x29,0x300,0x28,0x1107,0x29,0x300,0x28,0x1109,0x29,0x300,0x28,0x110b,
+0x29,0x300,0x28,0x110c,0x29,0x300,0x28,0x110e,0x29,0x300,0x28,0x110f,0x29,0x300,0x28,0x1110,
+0x29,0x300,0x28,0x1111,0x29,0x300,0x28,0x1112,0x29,0x400,0x28,0x1100,0x1161,0x29,0x400,0x28,
+0x1102,0x1161,0x29,0x400,0x28,0x1103,0x1161,0x29,0x400,0x28,0x1105,0x1161,0x29,0x400,0x28,0x1106,
+0x1161,0x29,0x400,0x28,0x1107,0x1161,0x29,0x400,0x28,0x1109,0x1161,0x29,0x400,0x28,0x110b,0x1161,
+0x29,0x400,0x28,0x110c,0x1161,0x29,0x400,0x28,0x110e,0x1161,0x29,0x400,0x28,0x110f,0x1161,0x29,
+0x400,0x28,0x1110,0x1161,0x29,0x400,0x28,0x1111,0x1161,0x29,0x400,0x28,0x1112,0x1161,0x29,0x400,
+0x28,0x110c,0x116e,0x29,0x700,0x28,0x110b,0x1169,0x110c,0x1165,0x11ab,0x29,0x600,0x28,0x110b,0x1169,
+0x1112,0x116e,0x29,0x300,0x28,0x4e00,0x29,0x300,0x28,0x4e8c,0x29,0x300,0x28,0x4e09,0x29,0x300,
+0x28,0x56db,0x29,0x300,0x28,0x4e94,0x29,0x300,0x28,0x516d,0x29,0x300,0x28,0x4e03,0x29,0x300,
+0x28,0x516b,0x29,0x300,0x28,0x4e5d,0x29,0x300,0x28,0x5341,0x29,0x300,0x28,0x6708,0x29,0x300,
+0x28,0x706b,0x29,0x300,0x28,0x6c34,0x29,0x300,0x28,0x6728,0x29,0x300,0x28,0x91d1,0x29,0x300,
+0x28,0x571f,0x29,0x300,0x28,0x65e5,0x29,0x300,0x28,0x682a,0x29,0x300,0x28,0x6709,0x29,0x300,
+0x28,0x793e,0x29,0x300,0x28,0x540d,0x29,0x300,0x28,0x7279,0x29,0x300,0x28,0x8ca1,0x29,0x300,
+0x28,0x795d,0x29,0x300,0x28,0x52b4,0x29,0x300,0x28,0x4ee3,0x29,0x300,0x28,0x547c,0x29,0x300,
+0x28,0x5b66,0x29,0x300,0x28,0x76e3,0x29,0x300,0x28,0x4f01,0x29,0x300,0x28,0x8cc7,0x29,0x300,
+0x28,0x5354,0x29,0x300,0x28,0x796d,0x29,0x300,0x28,0x4f11,0x29,0x300,0x28,0x81ea,0x29,0x300,
+0x28,0x81f3,0x29,0x200,0x32,0x31,0x200,0x32,0x32,0x200,0x32,0x33,0x200,0x32,0x34,0x200,
+0x32,0x35,0x200,0x32,0x36,0x200,0x32,0x37,0x200,0x32,0x38,0x200,0x32,0x39,0x200,0x33,
+0x30,0x200,0x33,0x31,0x200,0x33,0x32,0x200,0x33,0x33,0x200,0x33,0x34,0x200,0x33,0x35,
+0x100,0x1100,0x100,0x1102,0x100,0x1103,0x100,0x1105,0x100,0x1106,0x100,0x1107,0x100,0x1109,0x100,0x110b,
+0x100,0x110c,0x100,0x110e,0x100,0x110f,0x100,0x1110,0x100,0x1111,0x100,0x1112,0x200,0x1100,0x1161,0x200,
+0x1102,0x1161,0x200,0x1103,0x1161,0x200,0x1105,0x1161,0x200,0x1106,0x1161,0x200,0x1107,0x1161,0x200,0x1109,
+0x1161,0x200,0x110b,0x1161,0x200,0x110c,0x1161,0x200,0x110e,0x1161,0x200,0x110f,0x1161,0x200,0x1110,0x1161,
+0x200,0x1111,0x1161,0x200,0x1112,0x1161,0x500,0x110e,0x1161,0x11b7,0x1100,0x1169,0x400,0x110c,0x116e,0x110b,
+0x1174,0x200,0x110b,0x116e,0x100,0x4e00,0x100,0x4e8c,0x100,0x4e09,0x100,0x56db,0x100,0x4e94,0x100,0x516d,
+0x100,0x4e03,0x100,0x516b,0x100,0x4e5d,0x100,0x5341,0x100,0x6708,0x100,0x706b,0x100,0x6c34,0x100,0x6728,
+0x100,0x91d1,0x100,0x571f,0x100,0x65e5,0x100,0x682a,0x100,0x6709,0x100,0x793e,0x100,0x540d,0x100,0x7279,
+0x100,0x8ca1,0x100,0x795d,0x100,0x52b4,0x100,0x79d8,0x100,0x7537,0x100,0x5973,0x100,0x9069,0x100,0x512a,
+0x100,0x5370,0x100,0x6ce8,0x100,0x9805,0x100,0x4f11,0x100,0x5199,0x100,0x6b63,0x100,0x4e0a,0x100,0x4e2d,
+0x100,0x4e0b,0x100,0x5de6,0x100,0x53f3,0x100,0x533b,0x100,0x5b97,0x100,0x5b66,0x100,0x76e3,0x100,0x4f01,
+0x100,0x8cc7,0x100,0x5354,0x100,0x591c,0x200,0x33,0x36,0x200,0x33,0x37,0x200,0x33,0x38,0x200,
+0x33,0x39,0x200,0x34,0x30,0x200,0x34,0x31,0x200,0x34,0x32,0x200,0x34,0x33,0x200,0x34,
+0x34,0x200,0x34,0x35,0x200,0x34,0x36,0x200,0x34,0x37,0x200,0x34,0x38,0x200,0x34,0x39,
+0x200,0x35,0x30,0x200,0x31,0x6708,0x200,0x32,0x6708,0x200,0x33,0x6708,0x200,0x34,0x6708,0x200,
+0x35,0x6708,0x200,0x36,0x6708,0x200,0x37,0x6708,0x200,0x38,0x6708,0x200,0x39,0x6708,0x300,0x31,
+0x30,0x6708,0x300,0x31,0x31,0x6708,0x300,0x31,0x32,0x6708,0x300,0x65,0x72,0x67,0x100,0x30a2,
+0x100,0x30a4,0x100,0x30a6,0x100,0x30a8,0x100,0x30aa,0x100,0x30ab,0x100,0x30ad,0x100,0x30af,0x100,0x30b1,
+0x100,0x30b3,0x100,0x30b5,0x100,0x30b7,0x100,0x30b9,0x100,0x30bb,0x100,0x30bd,0x100,0x30bf,0x100,0x30c1,
+0x100,0x30c4,0x100,0x30c6,0x100,0x30c8,0x100,0x30ca,0x100,0x30cb,0x100,0x30cc,0x100,0x30cd,0x100,0x30ce,
+0x100,0x30cf,0x100,0x30d2,0x100,0x30d5,0x100,0x30d8,0x100,0x30db,0x100,0x30de,0x100,0x30df,0x100,0x30e0,
+0x100,0x30e1,0x100,0x30e2,0x100,0x30e4,0x100,0x30e6,0x100,0x30e8,0x100,0x30e9,0x100,0x30ea,0x100,0x30eb,
+0x100,0x30ec,0x100,0x30ed,0x100,0x30ef,0x100,0x30f0,0x100,0x30f1,0x100,0x30f2,0x500,0x30a2,0x30cf,0x309a,
+0x30fc,0x30c8,0x400,0x30a2,0x30eb,0x30d5,0x30a1,0x500,0x30a2,0x30f3,0x30d8,0x309a,0x30a2,0x300,0x30a2,0x30fc,
+0x30eb,0x8500,8,0x30a4,0x30cb,0x30f3,0x30af,0x3099,0x300,0x30a4,0x30f3,0x30c1,0x300,0x30a6,0x30a9,0x30f3,
+0x8600,8,0x30a8,0x30b9,0x30af,0x30fc,0x30c8,0x3099,0x400,0x30a8,0x30fc,0x30ab,0x30fc,0x300,0x30aa,0x30f3,
+0x30b9,0x300,0x30aa,0x30fc,0x30e0,0x300,0x30ab,0x30a4,0x30ea,0x400,0x30ab,0x30e9,0x30c3,0x30c8,0x400,0x30ab,
+0x30ed,0x30ea,0x30fc,0x400,0x30ab,0x3099,0x30ed,0x30f3,0x400,0x30ab,0x3099,0x30f3,0x30de,0x8400,8,0x30ad,
+0x3099,0x30ab,0x3099,0x400,0x30ad,0x3099,0x30cb,0x30fc,0x400,0x30ad,0x30e5,0x30ea,0x30fc,0x600,0x30ad,0x3099,
+0x30eb,0x30bf,0x3099,0x30fc,0x200,0x30ad,0x30ed,0x600,0x30ad,0x30ed,0x30af,0x3099,0x30e9,0x30e0,0x600,0x30ad,
+0x30ed,0x30e1,0x30fc,0x30c8,0x30eb,0x500,0x30ad,0x30ed,0x30ef,0x30c3,0x30c8,0x400,0x30af,0x3099,0x30e9,0x30e0,
+0x600,0x30af,0x3099,0x30e9,0x30e0,0x30c8,0x30f3,0x600,0x30af,0x30eb,0x30bb,0x3099,0x30a4,0x30ed,0x400,0x30af,
+0x30ed,0x30fc,0x30cd,0x300,0x30b1,0x30fc,0x30b9,0x300,0x30b3,0x30eb,0x30ca,0x8400,8,0x30b3,0x30fc,0x30db,
+0x309a,0x400,0x30b5,0x30a4,0x30af,0x30eb,0x500,0x30b5,0x30f3,0x30c1,0x30fc,0x30e0,0x8500,8,0x30b7,0x30ea,
+0x30f3,0x30af,0x3099,0x300,0x30bb,0x30f3,0x30c1,0x300,0x30bb,0x30f3,0x30c8,0x400,0x30bf,0x3099,0x30fc,0x30b9,
+0x300,0x30c6,0x3099,0x30b7,0x300,0x30c8,0x3099,0x30eb,0x200,0x30c8,0x30f3,0x200,0x30ca,0x30ce,0x300,0x30ce,
+0x30c3,0x30c8,0x300,0x30cf,0x30a4,0x30c4,0x600,0x30cf,0x309a,0x30fc,0x30bb,0x30f3,0x30c8,0x400,0x30cf,0x309a,
+0x30fc,0x30c4,0x500,0x30cf,0x3099,0x30fc,0x30ec,0x30eb,0x600,0x30d2,0x309a,0x30a2,0x30b9,0x30c8,0x30eb,0x400,
+0x30d2,0x309a,0x30af,0x30eb,0x300,0x30d2,0x309a,0x30b3,0x300,0x30d2,0x3099,0x30eb,0x8600,8,0x30d5,0x30a1,
+0x30e9,0x30c3,0x30c8,0x3099,0x400,0x30d5,0x30a3,0x30fc,0x30c8,0x600,0x30d5,0x3099,0x30c3,0x30b7,0x30a7,0x30eb,
+0x300,0x30d5,0x30e9,0x30f3,0x500,0x30d8,0x30af,0x30bf,0x30fc,0x30eb,0x300,0x30d8,0x309a,0x30bd,0x400,0x30d8,
+0x309a,0x30cb,0x30d2,0x300,0x30d8,0x30eb,0x30c4,0x400,0x30d8,0x309a,0x30f3,0x30b9,0x8500,8,0x30d8,0x309a,
+0x30fc,0x30b7,0x3099,0x400,0x30d8,0x3099,0x30fc,0x30bf,0x500,0x30db,0x309a,0x30a4,0x30f3,0x30c8,0x400,0x30db,
+0x3099,0x30eb,0x30c8,0x200,0x30db,0x30f3,0x8500,8,0x30db,0x309a,0x30f3,0x30c8,0x3099,0x300,0x30db,0x30fc,
+0x30eb,0x300,0x30db,0x30fc,0x30f3,0x400,0x30de,0x30a4,0x30af,0x30ed,0x300,0x30de,0x30a4,0x30eb,0x300,0x30de,
+0x30c3,0x30cf,0x300,0x30de,0x30eb,0x30af,0x500,0x30de,0x30f3,0x30b7,0x30e7,0x30f3,0x400,0x30df,0x30af,0x30ed,
+0x30f3,0x200,0x30df,0x30ea,0x600,0x30df,0x30ea,0x30cf,0x3099,0x30fc,0x30eb,0x8300,8,0x30e1,0x30ab,0x3099,
+0x500,0x30e1,0x30ab,0x3099,0x30c8,0x30f3,0x400,0x30e1,0x30fc,0x30c8,0x30eb,0x8400,8,0x30e4,0x30fc,0x30c8,
+0x3099,0x300,0x30e4,0x30fc,0x30eb,0x300,0x30e6,0x30a2,0x30f3,0x400,0x30ea,0x30c3,0x30c8,0x30eb,0x200,0x30ea,
+0x30e9,0x400,0x30eb,0x30d2,0x309a,0x30fc,0x500,0x30eb,0x30fc,0x30d5,0x3099,0x30eb,0x200,0x30ec,0x30e0,0x600,
+0x30ec,0x30f3,0x30c8,0x30b1,0x3099,0x30f3,0x300,0x30ef,0x30c3,0x30c8,0x200,0x30,0x70b9,0x200,0x31,0x70b9,
+0x200,0x32,0x70b9,0x200,0x33,0x70b9,0x200,0x34,0x70b9,0x200,0x35,0x70b9,0x200,0x36,0x70b9,0x200,
+0x37,0x70b9,0x200,0x38,0x70b9,0x200,0x39,0x70b9,0x300,0x31,0x30,0x70b9,0x300,0x31,0x31,0x70b9,
+0x300,0x31,0x32,0x70b9,0x300,0x31,0x33,0x70b9,0x300,0x31,0x34,0x70b9,0x300,0x31,0x35,0x70b9,
+0x300,0x31,0x36,0x70b9,0x300,0x31,0x37,0x70b9,0x300,0x31,0x38,0x70b9,0x300,0x31,0x39,0x70b9,
+0x300,0x32,0x30,0x70b9,0x300,0x32,0x31,0x70b9,0x300,0x32,0x32,0x70b9,0x300,0x32,0x33,0x70b9,
+0x300,0x32,0x34,0x70b9,0x200,0x64,0x61,0x300,0x62,0x61,0x72,0x200,0x70,0x63,0x200,0x64,
+0x6d,0x300,0x64,0x6d,0x32,0x300,0x64,0x6d,0x33,0x200,0x5e73,0x6210,0x200,0x662d,0x548c,0x200,
+0x5927,0x6b63,0x200,0x660e,0x6cbb,0x400,0x682a,0x5f0f,0x4f1a,0x793e,0x300,0x63,0x61,0x6c,0x400,0x6b,
+0x63,0x61,0x6c,0x200,0x3bc,0x67,0x200,0x6d,0x67,0x200,0x6b,0x67,0x200,0x3bc,0x6c,0x200,
+0x6d,0x6c,0x200,0x64,0x6c,0x200,0x6b,0x6c,0x200,0x66,0x6d,0x200,0x6e,0x6d,0x200,0x3bc,
+0x6d,0x200,0x6d,0x6d,0x200,0x63,0x6d,0x200,0x6b,0x6d,0x300,0x6d,0x6d,0x32,0x300,0x63,
+0x6d,0x32,0x200,0x6d,0x32,0x300,0x6b,0x6d,0x32,0x300,0x6d,0x6d,0x33,0x300,0x63,0x6d,
+0x33,0x200,0x6d,0x33,0x300,0x6b,0x6d,0x33,0x300,0x6d,0x2215,0x73,0x400,0x6d,0x2215,0x73,
+0x32,0x300,0x72,0x61,0x64,0x500,0x72,0x61,0x64,0x2215,0x73,0x600,0x72,0x61,0x64,0x2215,
+0x73,0x32,0x200,0x70,0x73,0x200,0x6e,0x73,0x200,0x3bc,0x73,0x200,0x6d,0x73,0x400,0x61,
+0x2e,0x6d,0x2e,0x200,0x63,0x63,0x200,0x63,0x64,0x200,0x68,0x61,0x200,0x69,0x6e,0x200,
+0x6b,0x74,0x200,0x6c,0x6d,0x200,0x6c,0x6e,0x300,0x6c,0x6f,0x67,0x200,0x6c,0x78,0x200,
+0x6d,0x62,0x300,0x6d,0x69,0x6c,0x300,0x6d,0x6f,0x6c,0x400,0x70,0x2e,0x6d,0x2e,0x200,
+0x73,0x72,0x200,0x31,0x65e5,0x200,0x32,0x65e5,0x200,0x33,0x65e5,0x200,0x34,0x65e5,0x200,0x35,
+0x65e5,0x200,0x36,0x65e5,0x200,0x37,0x65e5,0x200,0x38,0x65e5,0x200,0x39,0x65e5,0x300,0x31,0x30,
+0x65e5,0x300,0x31,0x31,0x65e5,0x300,0x31,0x32,0x65e5,0x300,0x31,0x33,0x65e5,0x300,0x31,0x34,
+0x65e5,0x300,0x31,0x35,0x65e5,0x300,0x31,0x36,0x65e5,0x300,0x31,0x37,0x65e5,0x300,0x31,0x38,
+0x65e5,0x300,0x31,0x39,0x65e5,0x300,0x32,0x30,0x65e5,0x300,0x32,0x31,0x65e5,0x300,0x32,0x32,
+0x65e5,0x300,0x32,0x33,0x65e5,0x300,0x32,0x34,0x65e5,0x300,0x32,0x35,0x65e5,0x300,0x32,0x36,
+0x65e5,0x300,0x32,0x37,0x65e5,0x300,0x32,0x38,0x65e5,0x300,0x32,0x39,0x65e5,0x300,0x33,0x30,
+0x65e5,0x300,0x33,0x31,0x65e5,0x300,0x67,0x61,0x6c,0x200,0x66,0x66,0x200,0x66,0x69,0x200,
+0x66,0x6c,0x300,0x66,0x66,0x69,0x300,0x66,0x66,0x6c,0x200,0x73,0x74,0x200,0x73,0x74,
+0x200,0x574,0x576,0x200,0x574,0x565,0x200,0x574,0x56b,0x200,0x57e,0x576,0x200,0x574,0x56d,0x100,
+0x5e2,0x100,0x5d0,0x100,0x5d3,0x100,0x5d4,0x100,0x5db,0x100,0x5dc,0x100,0x5dd,0x100,0x5e8,0x100,
+0x5ea,0x100,0x2b,0x200,0x5d0,0x5dc,0x100,0x671,0x100,0x671,0x100,0x67b,0x100,0x67b,0x100,0x67b,
+0x100,0x67b,0x100,0x67e,0x100,0x67e,0x100,0x67e,0x100,0x67e,0x100,0x680,0x100,0x680,0x100,0x680,
+0x100,0x680,0x100,0x67a,0x100,0x67a,0x100,0x67a,0x100,0x67a,0x100,0x67f,0x100,0x67f,0x100,0x67f,
+0x100,0x67f,0x100,0x679,0x100,0x679,0x100,0x679,0x100,0x679,0x100,0x6a4,0x100,0x6a4,0x100,0x6a4,
+0x100,0x6a4,0x100,0x6a6,0x100,0x6a6,0x100,0x6a6,0x100,0x6a6,0x100,0x684,0x100,0x684,0x100,0x684,
+0x100,0x684,0x100,0x683,0x100,0x683,0x100,0x683,0x100,0x683,0x100,0x686,0x100,0x686,0x100,0x686,
+0x100,0x686,0x100,0x687,0x100,0x687,0x100,0x687,0x100,0x687,0x100,0x68d,0x100,0x68d,0x100,0x68c,
+0x100,0x68c,0x100,0x68e,0x100,0x68e,0x100,0x688,0x100,0x688,0x100,0x698,0x100,0x698,0x100,0x691,
+0x100,0x691,0x100,0x6a9,0x100,0x6a9,0x100,0x6a9,0x100,0x6a9,0x100,0x6af,0x100,0x6af,0x100,0x6af,
+0x100,0x6af,0x100,0x6b3,0x100,0x6b3,0x100,0x6b3,0x100,0x6b3,0x100,0x6b1,0x100,0x6b1,0x100,0x6b1,
+0x100,0x6b1,0x100,0x6ba,0x100,0x6ba,0x100,0x6bb,0x100,0x6bb,0x100,0x6bb,0x100,0x6bb,0x8200,0xe6,
+0x6d5,0x654,0x8200,0xe6,0x6d5,0x654,0x100,0x6c1,0x100,0x6c1,0x100,0x6c1,0x100,0x6c1,0x100,0x6be,
+0x100,0x6be,0x100,0x6be,0x100,0x6be,0x100,0x6d2,0x100,0x6d2,0x8200,0xe6,0x6d2,0x654,0x8200,0xe6,
+0x6d2,0x654,0x100,0x6ad,0x100,0x6ad,0x100,0x6ad,0x100,0x6ad,0x100,0x6c7,0x100,0x6c7,0x100,0x6c6,
+0x100,0x6c6,0x100,0x6c8,0x100,0x6c8,0x200,0x6c7,0x674,0x100,0x6cb,0x100,0x6cb,0x100,0x6c5,0x100,
+0x6c5,0x100,0x6c9,0x100,0x6c9,0x100,0x6d0,0x100,0x6d0,0x100,0x6d0,0x100,0x6d0,0x100,0x649,0x100,
+0x649,0x300,0x64a,0x654,0x627,0x300,0x64a,0x654,0x627,0x300,0x64a,0x654,0x6d5,0x300,0x64a,0x654,
+0x6d5,0x300,0x64a,0x654,0x648,0x300,0x64a,0x654,0x648,0x300,0x64a,0x654,0x6c7,0x300,0x64a,0x654,
+0x6c7,0x300,0x64a,0x654,0x6c6,0x300,0x64a,0x654,0x6c6,0x300,0x64a,0x654,0x6c8,0x300,0x64a,0x654,
+0x6c8,0x300,0x64a,0x654,0x6d0,0x300,0x64a,0x654,0x6d0,0x300,0x64a,0x654,0x6d0,0x300,0x64a,0x654,
+0x649,0x300,0x64a,0x654,0x649,0x300,0x64a,0x654,0x649,0x100,0x6cc,0x100,0x6cc,0x100,0x6cc,0x100,
+0x6cc,0x300,0x64a,0x654,0x62c,0x300,0x64a,0x654,0x62d,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,
+0x649,0x300,0x64a,0x654,0x64a,0x200,0x628,0x62c,0x200,0x628,0x62d,0x200,0x628,0x62e,0x200,0x628,
+0x645,0x200,0x628,0x649,0x200,0x628,0x64a,0x200,0x62a,0x62c,0x200,0x62a,0x62d,0x200,0x62a,0x62e,
+0x200,0x62a,0x645,0x200,0x62a,0x649,0x200,0x62a,0x64a,0x200,0x62b,0x62c,0x200,0x62b,0x645,0x200,
+0x62b,0x649,0x200,0x62b,0x64a,0x200,0x62c,0x62d,0x200,0x62c,0x645,0x200,0x62d,0x62c,0x200,0x62d,
+0x645,0x200,0x62e,0x62c,0x200,0x62e,0x62d,0x200,0x62e,0x645,0x200,0x633,0x62c,0x200,0x633,0x62d,
+0x200,0x633,0x62e,0x200,0x633,0x645,0x200,0x635,0x62d,0x200,0x635,0x645,0x200,0x636,0x62c,0x200,
+0x636,0x62d,0x200,0x636,0x62e,0x200,0x636,0x645,0x200,0x637,0x62d,0x200,0x637,0x645,0x200,0x638,
+0x645,0x200,0x639,0x62c,0x200,0x639,0x645,0x200,0x63a,0x62c,0x200,0x63a,0x645,0x200,0x641,0x62c,
+0x200,0x641,0x62d,0x200,0x641,0x62e,0x200,0x641,0x645,0x200,0x641,0x649,0x200,0x641,0x64a,0x200,
+0x642,0x62d,0x200,0x642,0x645,0x200,0x642,0x649,0x200,0x642,0x64a,0x200,0x643,0x627,0x200,0x643,
+0x62c,0x200,0x643,0x62d,0x200,0x643,0x62e,0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x643,0x649,
+0x200,0x643,0x64a,0x200,0x644,0x62c,0x200,0x644,0x62d,0x200,0x644,0x62e,0x200,0x644,0x645,0x200,
+0x644,0x649,0x200,0x644,0x64a,0x200,0x645,0x62c,0x200,0x645,0x62d,0x200,0x645,0x62e,0x200,0x645,
+0x645,0x200,0x645,0x649,0x200,0x645,0x64a,0x200,0x646,0x62c,0x200,0x646,0x62d,0x200,0x646,0x62e,
+0x200,0x646,0x645,0x200,0x646,0x649,0x200,0x646,0x64a,0x200,0x647,0x62c,0x200,0x647,0x645,0x200,
+0x647,0x649,0x200,0x647,0x64a,0x200,0x64a,0x62c,0x200,0x64a,0x62d,0x200,0x64a,0x62e,0x200,0x64a,
+0x645,0x200,0x64a,0x649,0x200,0x64a,0x64a,0x8200,0x23,0x630,0x670,0x8200,0x23,0x631,0x670,0x8200,
+0x23,0x649,0x670,0x8300,0x21,0x20,0x64c,0x651,0x8300,0x21,0x20,0x64d,0x651,0x8300,0x21,0x20,
+0x64e,0x651,0x8300,0x21,0x20,0x64f,0x651,0x8300,0x21,0x20,0x650,0x651,0x8300,0x23,0x20,0x651,
+0x670,0x300,0x64a,0x654,0x631,0x300,0x64a,0x654,0x632,0x300,0x64a,0x654,0x645,0x300,0x64a,0x654,
+0x646,0x300,0x64a,0x654,0x649,0x300,0x64a,0x654,0x64a,0x200,0x628,0x631,0x200,0x628,0x632,0x200,
+0x628,0x645,0x200,0x628,0x646,0x200,0x628,0x649,0x200,0x628,0x64a,0x200,0x62a,0x631,0x200,0x62a,
+0x632,0x200,0x62a,0x645,0x200,0x62a,0x646,0x200,0x62a,0x649,0x200,0x62a,0x64a,0x200,0x62b,0x631,
+0x200,0x62b,0x632,0x200,0x62b,0x645,0x200,0x62b,0x646,0x200,0x62b,0x649,0x200,0x62b,0x64a,0x200,
+0x641,0x649,0x200,0x641,0x64a,0x200,0x642,0x649,0x200,0x642,0x64a,0x200,0x643,0x627,0x200,0x643,
+0x644,0x200,0x643,0x645,0x200,0x643,0x649,0x200,0x643,0x64a,0x200,0x644,0x645,0x200,0x644,0x649,
+0x200,0x644,0x64a,0x200,0x645,0x627,0x200,0x645,0x645,0x200,0x646,0x631,0x200,0x646,0x632,0x200,
+0x646,0x645,0x200,0x646,0x646,0x200,0x646,0x649,0x200,0x646,0x64a,0x8200,0x23,0x649,0x670,0x200,
+0x64a,0x631,0x200,0x64a,0x632,0x200,0x64a,0x645,0x200,0x64a,0x646,0x200,0x64a,0x649,0x200,0x64a,
+0x64a,0x300,0x64a,0x654,0x62c,0x300,0x64a,0x654,0x62d,0x300,0x64a,0x654,0x62e,0x300,0x64a,0x654,
+0x645,0x300,0x64a,0x654,0x647,0x200,0x628,0x62c,0x200,0x628,0x62d,0x200,0x628,0x62e,0x200,0x628,
+0x645,0x200,0x628,0x647,0x200,0x62a,0x62c,0x200,0x62a,0x62d,0x200,0x62a,0x62e,0x200,0x62a,0x645,
+0x200,0x62a,0x647,0x200,0x62b,0x645,0x200,0x62c,0x62d,0x200,0x62c,0x645,0x200,0x62d,0x62c,0x200,
+0x62d,0x645,0x200,0x62e,0x62c,0x200,0x62e,0x645,0x200,0x633,0x62c,0x200,0x633,0x62d,0x200,0x633,
+0x62e,0x200,0x633,0x645,0x200,0x635,0x62d,0x200,0x635,0x62e,0x200,0x635,0x645,0x200,0x636,0x62c,
+0x200,0x636,0x62d,0x200,0x636,0x62e,0x200,0x636,0x645,0x200,0x637,0x62d,0x200,0x638,0x645,0x200,
+0x639,0x62c,0x200,0x639,0x645,0x200,0x63a,0x62c,0x200,0x63a,0x645,0x200,0x641,0x62c,0x200,0x641,
+0x62d,0x200,0x641,0x62e,0x200,0x641,0x645,0x200,0x642,0x62d,0x200,0x642,0x645,0x200,0x643,0x62c,
+0x200,0x643,0x62d,0x200,0x643,0x62e,0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x644,0x62c,0x200,
+0x644,0x62d,0x200,0x644,0x62e,0x200,0x644,0x645,0x200,0x644,0x647,0x200,0x645,0x62c,0x200,0x645,
+0x62d,0x200,0x645,0x62e,0x200,0x645,0x645,0x200,0x646,0x62c,0x200,0x646,0x62d,0x200,0x646,0x62e,
+0x200,0x646,0x645,0x200,0x646,0x647,0x200,0x647,0x62c,0x200,0x647,0x645,0x8200,0x23,0x647,0x670,
+0x200,0x64a,0x62c,0x200,0x64a,0x62d,0x200,0x64a,0x62e,0x200,0x64a,0x645,0x200,0x64a,0x647,0x300,
+0x64a,0x654,0x645,0x300,0x64a,0x654,0x647,0x200,0x628,0x645,0x200,0x628,0x647,0x200,0x62a,0x645,
+0x200,0x62a,0x647,0x200,0x62b,0x645,0x200,0x62b,0x647,0x200,0x633,0x645,0x200,0x633,0x647,0x200,
+0x634,0x645,0x200,0x634,0x647,0x200,0x643,0x644,0x200,0x643,0x645,0x200,0x644,0x645,0x200,0x646,
+0x645,0x200,0x646,0x647,0x200,0x64a,0x645,0x200,0x64a,0x647,0x8300,0x21,0x640,0x64e,0x651,0x8300,
+0x21,0x640,0x64f,0x651,0x8300,0x21,0x640,0x650,0x651,0x200,0x637,0x649,0x200,0x637,0x64a,0x200,
+0x639,0x649,0x200,0x639,0x64a,0x200,0x63a,0x649,0x200,0x63a,0x64a,0x200,0x633,0x649,0x200,0x633,
+0x64a,0x200,0x634,0x649,0x200,0x634,0x64a,0x200,0x62d,0x649,0x200,0x62d,0x64a,0x200,0x62c,0x649,
+0x200,0x62c,0x64a,0x200,0x62e,0x649,0x200,0x62e,0x64a,0x200,0x635,0x649,0x200,0x635,0x64a,0x200,
+0x636,0x649,0x200,0x636,0x64a,0x200,0x634,0x62c,0x200,0x634,0x62d,0x200,0x634,0x62e,0x200,0x634,
+0x645,0x200,0x634,0x631,0x200,0x633,0x631,0x200,0x635,0x631,0x200,0x636,0x631,0x200,0x637,0x649,
+0x200,0x637,0x64a,0x200,0x639,0x649,0x200,0x639,0x64a,0x200,0x63a,0x649,0x200,0x63a,0x64a,0x200,
+0x633,0x649,0x200,0x633,0x64a,0x200,0x634,0x649,0x200,0x634,0x64a,0x200,0x62d,0x649,0x200,0x62d,
+0x64a,0x200,0x62c,0x649,0x200,0x62c,0x64a,0x200,0x62e,0x649,0x200,0x62e,0x64a,0x200,0x635,0x649,
+0x200,0x635,0x64a,0x200,0x636,0x649,0x200,0x636,0x64a,0x200,0x634,0x62c,0x200,0x634,0x62d,0x200,
+0x634,0x62e,0x200,0x634,0x645,0x200,0x634,0x631,0x200,0x633,0x631,0x200,0x635,0x631,0x200,0x636,
+0x631,0x200,0x634,0x62c,0x200,0x634,0x62d,0x200,0x634,0x62e,0x200,0x634,0x645,0x200,0x633,0x647,
+0x200,0x634,0x647,0x200,0x637,0x645,0x200,0x633,0x62c,0x200,0x633,0x62d,0x200,0x633,0x62e,0x200,
+0x634,0x62c,0x200,0x634,0x62d,0x200,0x634,0x62e,0x200,0x637,0x645,0x200,0x638,0x645,0x8200,0x1b,
+0x627,0x64b,0x8200,0x1b,0x627,0x64b,0x300,0x62a,0x62c,0x645,0x300,0x62a,0x62d,0x62c,0x300,0x62a,
+0x62d,0x62c,0x300,0x62a,0x62d,0x645,0x300,0x62a,0x62e,0x645,0x300,0x62a,0x645,0x62c,0x300,0x62a,
+0x645,0x62d,0x300,0x62a,0x645,0x62e,0x300,0x62c,0x645,0x62d,0x300,0x62c,0x645,0x62d,0x300,0x62d,
+0x645,0x64a,0x300,0x62d,0x645,0x649,0x300,0x633,0x62d,0x62c,0x300,0x633,0x62c,0x62d,0x300,0x633,
+0x62c,0x649,0x300,0x633,0x645,0x62d,0x300,0x633,0x645,0x62d,0x300,0x633,0x645,0x62c,0x300,0x633,
+0x645,0x645,0x300,0x633,0x645,0x645,0x300,0x635,0x62d,0x62d,0x300,0x635,0x62d,0x62d,0x300,0x635,
+0x645,0x645,0x300,0x634,0x62d,0x645,0x300,0x634,0x62d,0x645,0x300,0x634,0x62c,0x64a,0x300,0x634,
+0x645,0x62e,0x300,0x634,0x645,0x62e,0x300,0x634,0x645,0x645,0x300,0x634,0x645,0x645,0x300,0x636,
+0x62d,0x649,0x300,0x636,0x62e,0x645,0x300,0x636,0x62e,0x645,0x300,0x637,0x645,0x62d,0x300,0x637,
+0x645,0x62d,0x300,0x637,0x645,0x645,0x300,0x637,0x645,0x64a,0x300,0x639,0x62c,0x645,0x300,0x639,
+0x645,0x645,0x300,0x639,0x645,0x645,0x300,0x639,0x645,0x649,0x300,0x63a,0x645,0x645,0x300,0x63a,
+0x645,0x64a,0x300,0x63a,0x645,0x649,0x300,0x641,0x62e,0x645,0x300,0x641,0x62e,0x645,0x300,0x642,
+0x645,0x62d,0x300,0x642,0x645,0x645,0x300,0x644,0x62d,0x645,0x300,0x644,0x62d,0x64a,0x300,0x644,
+0x62d,0x649,0x300,0x644,0x62c,0x62c,0x300,0x644,0x62c,0x62c,0x300,0x644,0x62e,0x645,0x300,0x644,
+0x62e,0x645,0x300,0x644,0x645,0x62d,0x300,0x644,0x645,0x62d,0x300,0x645,0x62d,0x62c,0x300,0x645,
+0x62d,0x645,0x300,0x645,0x62d,0x64a,0x300,0x645,0x62c,0x62d,0x300,0x645,0x62c,0x645,0x300,0x645,
+0x62e,0x62c,0x300,0x645,0x62e,0x645,0x300,0x645,0x62c,0x62e,0x300,0x647,0x645,0x62c,0x300,0x647,
+0x645,0x645,0x300,0x646,0x62d,0x645,0x300,0x646,0x62d,0x649,0x300,0x646,0x62c,0x645,0x300,0x646,
+0x62c,0x645,0x300,0x646,0x62c,0x649,0x300,0x646,0x645,0x64a,0x300,0x646,0x645,0x649,0x300,0x64a,
+0x645,0x645,0x300,0x64a,0x645,0x645,0x300,0x628,0x62e,0x64a,0x300,0x62a,0x62c,0x64a,0x300,0x62a,
+0x62c,0x649,0x300,0x62a,0x62e,0x64a,0x300,0x62a,0x62e,0x649,0x300,0x62a,0x645,0x64a,0x300,0x62a,
+0x645,0x649,0x300,0x62c,0x645,0x64a,0x300,0x62c,0x62d,0x649,0x300,0x62c,0x645,0x649,0x300,0x633,
+0x62e,0x649,0x300,0x635,0x62d,0x64a,0x300,0x634,0x62d,0x64a,0x300,0x636,0x62d,0x64a,0x300,0x644,
+0x62c,0x64a,0x300,0x644,0x645,0x64a,0x300,0x64a,0x62d,0x64a,0x300,0x64a,0x62c,0x64a,0x300,0x64a,
+0x645,0x64a,0x300,0x645,0x645,0x64a,0x300,0x642,0x645,0x64a,0x300,0x646,0x62d,0x64a,0x300,0x642,
+0x645,0x62d,0x300,0x644,0x62d,0x645,0x300,0x639,0x645,0x64a,0x300,0x643,0x645,0x64a,0x300,0x646,
+0x62c,0x62d,0x300,0x645,0x62e,0x64a,0x300,0x644,0x62c,0x645,0x300,0x643,0x645,0x645,0x300,0x644,
+0x62c,0x645,0x300,0x646,0x62c,0x62d,0x300,0x62c,0x62d,0x64a,0x300,0x62d,0x62c,0x64a,0x300,0x645,
+0x62c,0x64a,0x300,0x641,0x645,0x64a,0x300,0x628,0x62d,0x64a,0x300,0x643,0x645,0x645,0x300,0x639,
+0x62c,0x645,0x300,0x635,0x645,0x645,0x300,0x633,0x62e,0x64a,0x300,0x646,0x62c,0x64a,0x300,0x635,
+0x644,0x6d2,0x300,0x642,0x644,0x6d2,0x400,0x627,0x644,0x644,0x647,0x400,0x627,0x643,0x628,0x631,
+0x400,0x645,0x62d,0x645,0x62f,0x400,0x635,0x644,0x639,0x645,0x400,0x631,0x633,0x648,0x644,0x400,
+0x639,0x644,0x64a,0x647,0x400,0x648,0x633,0x644,0x645,0x300,0x635,0x644,0x649,0x1200,0x635,0x644,
+0x649,0x20,0x627,0x644,0x644,0x647,0x20,0x639,0x644,0x64a,0x647,0x20,0x648,0x633,0x644,0x645,
+0x800,0x62c,0x644,0x20,0x62c,0x644,0x627,0x644,0x647,0x400,0x631,0x6cc,0x627,0x644,0x100,0x2c,
+0x100,0x3001,0x100,0x3002,0x100,0x3a,0x100,0x3b,0x100,0x21,0x100,0x3f,0x100,0x3016,0x100,0x3017,
+0x300,0x2e,0x2e,0x2e,0x200,0x2e,0x2e,0x100,0x2014,0x100,0x2013,0x100,0x5f,0x100,0x5f,0x100,
+0x28,0x100,0x29,0x100,0x7b,0x100,0x7d,0x100,0x3014,0x100,0x3015,0x100,0x3010,0x100,0x3011,0x100,
+0x300a,0x100,0x300b,0x100,0x3008,0x100,0x3009,0x100,0x300c,0x100,0x300d,0x100,0x300e,0x100,0x300f,0x100,
+0x5b,0x100,0x5d,0x8200,0xe6,0x20,0x305,0x8200,0xe6,0x20,0x305,0x8200,0xe6,0x20,0x305,0x8200,
+0xe6,0x20,0x305,0x100,0x5f,0x100,0x5f,0x100,0x5f,0x100,0x2c,0x100,0x3001,0x100,0x2e,0x100,
+0x3b,0x100,0x3a,0x100,0x3f,0x100,0x21,0x100,0x2014,0x100,0x28,0x100,0x29,0x100,0x7b,0x100,
+0x7d,0x100,0x3014,0x100,0x3015,0x100,0x23,0x100,0x26,0x100,0x2a,0x100,0x2b,0x100,0x2d,0x100,
+0x3c,0x100,0x3e,0x100,0x3d,0x100,0x5c,0x100,0x24,0x100,0x25,0x100,0x40,0x8200,0x1b,0x20,
+0x64b,0x8200,0x1b,0x640,0x64b,0x8200,0x1c,0x20,0x64c,0x8200,0x1d,0x20,0x64d,0x8200,0x1e,0x20,
+0x64e,0x8200,0x1e,0x640,0x64e,0x8200,0x1f,0x20,0x64f,0x8200,0x1f,0x640,0x64f,0x8200,0x20,0x20,
+0x650,0x8200,0x20,0x640,0x650,0x8200,0x21,0x20,0x651,0x8200,0x21,0x640,0x651,0x8200,0x22,0x20,
+0x652,0x8200,0x22,0x640,0x652,0x100,0x621,0x8200,0xe6,0x627,0x653,0x8200,0xe6,0x627,0x653,0x8200,
+0xe6,0x627,0x654,0x8200,0xe6,0x627,0x654,0x8200,0xe6,0x648,0x654,0x8200,0xe6,0x648,0x654,0x8200,
+0xdc,0x627,0x655,0x8200,0xdc,0x627,0x655,0x8200,0xe6,0x64a,0x654,0x8200,0xe6,0x64a,0x654,0x8200,
+0xe6,0x64a,0x654,0x8200,0xe6,0x64a,0x654,0x100,0x627,0x100,0x627,0x100,0x628,0x100,0x628,0x100,
+0x628,0x100,0x628,0x100,0x629,0x100,0x629,0x100,0x62a,0x100,0x62a,0x100,0x62a,0x100,0x62a,0x100,
+0x62b,0x100,0x62b,0x100,0x62b,0x100,0x62b,0x100,0x62c,0x100,0x62c,0x100,0x62c,0x100,0x62c,0x100,
+0x62d,0x100,0x62d,0x100,0x62d,0x100,0x62d,0x100,0x62e,0x100,0x62e,0x100,0x62e,0x100,0x62e,0x100,
+0x62f,0x100,0x62f,0x100,0x630,0x100,0x630,0x100,0x631,0x100,0x631,0x100,0x632,0x100,0x632,0x100,
+0x633,0x100,0x633,0x100,0x633,0x100,0x633,0x100,0x634,0x100,0x634,0x100,0x634,0x100,0x634,0x100,
+0x635,0x100,0x635,0x100,0x635,0x100,0x635,0x100,0x636,0x100,0x636,0x100,0x636,0x100,0x636,0x100,
+0x637,0x100,0x637,0x100,0x637,0x100,0x637,0x100,0x638,0x100,0x638,0x100,0x638,0x100,0x638,0x100,
+0x639,0x100,0x639,0x100,0x639,0x100,0x639,0x100,0x63a,0x100,0x63a,0x100,0x63a,0x100,0x63a,0x100,
+0x641,0x100,0x641,0x100,0x641,0x100,0x641,0x100,0x642,0x100,0x642,0x100,0x642,0x100,0x642,0x100,
+0x643,0x100,0x643,0x100,0x643,0x100,0x643,0x100,0x644,0x100,0x644,0x100,0x644,0x100,0x644,0x100,
+0x645,0x100,0x645,0x100,0x645,0x100,0x645,0x100,0x646,0x100,0x646,0x100,0x646,0x100,0x646,0x100,
+0x647,0x100,0x647,0x100,0x647,0x100,0x647,0x100,0x648,0x100,0x648,0x100,0x649,0x100,0x649,0x100,
+0x64a,0x100,0x64a,0x100,0x64a,0x100,0x64a,0x8300,0xe6,0x644,0x627,0x653,0x8300,0xe6,0x644,0x627,
+0x653,0x8300,0xe6,0x644,0x627,0x654,0x8300,0xe6,0x644,0x627,0x654,0x8300,0xdc,0x644,0x627,0x655,
+0x8300,0xdc,0x644,0x627,0x655,0x200,0x644,0x627,0x200,0x644,0x627,0x100,0x21,0x100,0x22,0x100,
+0x23,0x100,0x24,0x100,0x25,0x100,0x26,0x100,0x27,0x100,0x28,0x100,0x29,0x100,0x2a,0x100,
+0x2b,0x100,0x2c,0x100,0x2d,0x100,0x2e,0x100,0x2f,0x100,0x30,0x100,0x31,0x100,0x32,0x100,
+0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x3a,0x100,
+0x3b,0x100,0x3c,0x100,0x3d,0x100,0x3e,0x100,0x3f,0x100,0x40,0x100,0x41,0x100,0x42,0x100,
+0x43,0x100,0x44,0x100,0x45,0x100,0x46,0x100,0x47,0x100,0x48,0x100,0x49,0x100,0x4a,0x100,
+0x4b,0x100,0x4c,0x100,0x4d,0x100,0x4e,0x100,0x4f,0x100,0x50,0x100,0x51,0x100,0x52,0x100,
+0x53,0x100,0x54,0x100,0x55,0x100,0x56,0x100,0x57,0x100,0x58,0x100,0x59,0x100,0x5a,0x100,
+0x5b,0x100,0x5c,0x100,0x5d,0x100,0x5e,0x100,0x5f,0x100,0x60,0x100,0x61,0x100,0x62,0x100,
0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,
0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,
0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,
-0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x69,0x100,
-0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,
-0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,
-0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,
+0x7b,0x100,0x7c,0x100,0x7d,0x100,0x7e,0x100,0x2985,0x100,0x2986,0x100,0x3002,0x100,0x300c,0x100,
+0x300d,0x100,0x3001,0x100,0x30fb,0x100,0x30f2,0x100,0x30a1,0x100,0x30a3,0x100,0x30a5,0x100,0x30a7,0x100,
+0x30a9,0x100,0x30e3,0x100,0x30e5,0x100,0x30e7,0x100,0x30c3,0x100,0x30fc,0x100,0x30a2,0x100,0x30a4,0x100,
+0x30a6,0x100,0x30a8,0x100,0x30aa,0x100,0x30ab,0x100,0x30ad,0x100,0x30af,0x100,0x30b1,0x100,0x30b3,0x100,
+0x30b5,0x100,0x30b7,0x100,0x30b9,0x100,0x30bb,0x100,0x30bd,0x100,0x30bf,0x100,0x30c1,0x100,0x30c4,0x100,
+0x30c6,0x100,0x30c8,0x100,0x30ca,0x100,0x30cb,0x100,0x30cc,0x100,0x30cd,0x100,0x30ce,0x100,0x30cf,0x100,
+0x30d2,0x100,0x30d5,0x100,0x30d8,0x100,0x30db,0x100,0x30de,0x100,0x30df,0x100,0x30e0,0x100,0x30e1,0x100,
+0x30e2,0x100,0x30e4,0x100,0x30e6,0x100,0x30e8,0x100,0x30e9,0x100,0x30ea,0x100,0x30eb,0x100,0x30ec,0x100,
+0x30ed,0x100,0x30ef,0x100,0x30f3,0x8100,0x808,0x3099,0x8100,0x808,0x309a,0x100,0x1160,0x100,0x1100,0x100,
+0x1101,0x100,0x11aa,0x100,0x1102,0x100,0x11ac,0x100,0x11ad,0x100,0x1103,0x100,0x1104,0x100,0x1105,0x100,
+0x11b0,0x100,0x11b1,0x100,0x11b2,0x100,0x11b3,0x100,0x11b4,0x100,0x11b5,0x100,0x111a,0x100,0x1106,0x100,
+0x1107,0x100,0x1108,0x100,0x1121,0x100,0x1109,0x100,0x110a,0x100,0x110b,0x100,0x110c,0x100,0x110d,0x100,
+0x110e,0x100,0x110f,0x100,0x1110,0x100,0x1111,0x100,0x1112,0x100,0x1161,0x100,0x1162,0x100,0x1163,0x100,
+0x1164,0x100,0x1165,0x100,0x1166,0x100,0x1167,0x100,0x1168,0x100,0x1169,0x100,0x116a,0x100,0x116b,0x100,
+0x116c,0x100,0x116d,0x100,0x116e,0x100,0x116f,0x100,0x1170,0x100,0x1171,0x100,0x1172,0x100,0x1173,0x100,
+0x1174,0x100,0x1175,0x100,0xa2,0x100,0xa3,0x100,0xac,0x8200,0xe6,0x20,0x304,0x100,0xa6,0x100,
+0xa5,0x100,0x20a9,0x100,0x2502,0x100,0x2190,0x100,0x2191,0x100,0x2192,0x100,0x2193,0x100,0x25a0,0x100,
+0x25cb,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,
0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,
0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,
-0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x66,0x100,
-0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x70,0x100,
-0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,
-0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,
-0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,
+0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,
+0x66,0x100,0x67,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,
0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,
0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,
0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,
0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,
0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,
-0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,
-0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,
-0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,
-0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,
-0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,
-0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,
-0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,
-0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,
-0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,
-0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,
-0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,
-0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,
-0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,
-0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,
-0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,
-0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,
-0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,
-0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,
-0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,
-0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,
-0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,
-0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,
-0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x131,0x100,0x237,0x100,0x2207,0x100,0x3b1,0x100,
-0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,
-0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,
-0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,0x3c8,0x100,0x3c9,0x100,0x2202,0x100,
-0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,0x3c0,0x100,0x2207,0x100,0x3b1,0x100,
-0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,
-0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,
-0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,0x3c8,0x100,0x3c9,0x100,0x2202,0x100,
-0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,0x3c0,0x100,0x2207,0x100,0x3b1,0x100,
-0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,
-0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,
-0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,0x3c8,0x100,0x3c9,0x100,0x2202,0x100,
-0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,0x3c0,0x100,0x2207,0x100,0x3b1,0x100,
-0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,
-0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,
-0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,0x3c8,0x100,0x3c9,0x100,0x2202,0x100,
-0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,0x3c0,0x100,0x2207,0x100,0x3b1,0x100,
-0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,
-0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,
-0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,0x3c8,0x100,0x3c9,0x100,0x2202,0x100,
-0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,0x3c0,0x100,0x30,0x100,0x31,0x100,
+0x63,0x100,0x64,0x100,0x66,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,
+0x6d,0x100,0x6e,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,
+0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,
+0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,
+0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,
+0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,
+0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,
+0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,
+0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,
+0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,
+0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,
+0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,
+0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,
+0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,
+0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,
+0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,
+0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,
+0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,
+0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,
+0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,
+0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,
+0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,
+0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,
+0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,
+0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,
+0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,0x64,0x100,0x65,0x100,
+0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,0x6c,0x100,0x6d,0x100,
+0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,0x74,0x100,0x75,0x100,
+0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x61,0x100,0x62,0x100,0x63,0x100,
+0x64,0x100,0x65,0x100,0x66,0x100,0x67,0x100,0x68,0x100,0x69,0x100,0x6a,0x100,0x6b,0x100,
+0x6c,0x100,0x6d,0x100,0x6e,0x100,0x6f,0x100,0x70,0x100,0x71,0x100,0x72,0x100,0x73,0x100,
+0x74,0x100,0x75,0x100,0x76,0x100,0x77,0x100,0x78,0x100,0x79,0x100,0x7a,0x100,0x131,0x100,
+0x237,0x100,0x2207,0x100,0x3b1,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,
+0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,
+0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,
+0x3c8,0x100,0x3c9,0x100,0x2202,0x100,0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,
+0x3c0,0x100,0x2207,0x100,0x3b1,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,
+0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,
+0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,
+0x3c8,0x100,0x3c9,0x100,0x2202,0x100,0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,
+0x3c0,0x100,0x2207,0x100,0x3b1,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,
+0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,
+0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,
+0x3c8,0x100,0x3c9,0x100,0x2202,0x100,0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,
+0x3c0,0x100,0x2207,0x100,0x3b1,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,
+0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,
+0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,
+0x3c8,0x100,0x3c9,0x100,0x2202,0x100,0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,
+0x3c0,0x100,0x2207,0x100,0x3b1,0x100,0x3b2,0x100,0x3b3,0x100,0x3b4,0x100,0x3b5,0x100,0x3b6,0x100,
+0x3b7,0x100,0x3b8,0x100,0x3b9,0x100,0x3ba,0x100,0x3bb,0x100,0x3bc,0x100,0x3bd,0x100,0x3be,0x100,
+0x3bf,0x100,0x3c0,0x100,0x3c1,0x100,0x3c3,0x100,0x3c4,0x100,0x3c5,0x100,0x3c6,0x100,0x3c7,0x100,
+0x3c8,0x100,0x3c9,0x100,0x2202,0x100,0x3b5,0x100,0x3b8,0x100,0x3ba,0x100,0x3c6,0x100,0x3c1,0x100,
+0x3c0,0x100,0x3dd,0x100,0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,
+0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,
+0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x30,0x100,0x31,0x100,
0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,
0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,
0x38,0x100,0x39,0x100,0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,
-0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x30,0x100,0x31,0x100,0x32,0x100,0x33,0x100,
-0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0x100,0x30,0x100,0x31,0x100,
-0x32,0x100,0x33,0x100,0x34,0x100,0x35,0x100,0x36,0x100,0x37,0x100,0x38,0x100,0x39,0,
-0x20,0x2a,0x4c,0x6a,0x7c,0x9c,0xc2,0xd4,0xf4,0xfe,0x120,0x13c,0x14e,0x16e,0x194,0x1a8,
-0x1b4,0x1c0,0x1ce,0x1dc,0x1ea,0x1fa,0x1fc,0x200,0x20a,0x214,0x220,0x22c,0x23c,0x24c,0x25a,0x268,
-0x276,0x286,0x292,0x2a0,0x2ac,0x2d0,0x2d4,0x2dc,0x2de,0x2e4,0x2e6,0x302,0x310,0x318,0x322,0x330,
-0x338,0x344,0x354,0x364,0x36c,0x378,0x38e,0x39e,0x3a6,0x3b6,0x3bc,0x3be,0x3c0,0x3c2,0x3ca,0x3d2,
-0x3da,0x3e0,0x3e2,0x3e4,0x3e6,0x3ee,0x3f0,0x3f2,0x3f6,0x3fa,0x3fe,0x402,0x404,0x406,0x408,0x40a,
-0x40c,0x40e,0x410,0x412,0x414,0x416,0x418,0x41a,0x41c,0x41e,0x424,0x426,0x428,0x42a,0x42c,0x42e,
-0x430,0x432,0x434,0x438,0x43e,0x440,0x444,0x446,0x448,0x44a,0x452,0x456,0x458,0x460,0x462,0x468,
-0x47e,0x480,0x48a,0x490,0x49e,0x4a2,0x4be,0x4c2,0x4c6,0x4ca,0x652,0x656,0x65e,0x661,0x664,0x667,
-0x66a,0x66d,0x670,0x673,0x676,0x679,0x67c,0x67f,0x682,0x685,0x688,0x68b,0x68e,0x691,0x694,0x697,
-0x69a,0x69d,0x6a0,0x6a3,0x6a6,0x6a9,0x6ac,0x6af,0x6b2,0x6b5,0x6b8,0x6bb,0x6be,0x6c1,0x6c4,0x6c7,
-0x6ca,0x6cd,0x6d0,0x6d3,0x6d6,0x6d9,0x6dc,0x6df,0x6e2,0x6e5,0x6e8,0x6eb,0x6ee,0x6f1,0x6f4,0x6f7,
-0x6fa,0x6fd,0x700,0x703,0x706,0x709,0x70c,0x70f,0x715,0x71b,0x721,0x727,0x72d,0x730,0x733,0x736,
-0x739,0x73c,0x73f,0x742,0x745,0x748,0x74b,0x74e,0x751,0x754,0x757,0x75a,0x75d,0x760,0x766,0x76c,
-0x772,0x778,0x77e,0x781,0x784,0x787,0x78a,0x78d
+0x36,0x100,0x37,0x100,0x38,0x100,0x39,0,0x20,0x2a,0x4c,0x6a,0x7c,0x9c,0xc2,0xd4,
+0xf4,0xfe,0x120,0x13c,0x14e,0x16e,0x194,0x1a8,0x1b4,0x1c0,0x1ce,0x1dc,0x1ea,0x1fa,0x1fc,0x200,
+0x20a,0x214,0x220,0x22c,0x23c,0x24c,0x25a,0x268,0x276,0x286,0x292,0x2a0,0x2ac,0x2d0,0x2d4,0x2dc,
+0x2de,0x2e4,0x2e6,0x302,0x310,0x318,0x322,0x330,0x338,0x344,0x354,0x364,0x36c,0x378,0x38e,0x39e,
+0x3a6,0x3b6,0x3bc,0x3be,0x3c0,0x3c2,0x3ca,0x3d2,0x3da,0x3e0,0x3e2,0x3e4,0x3e6,0x3ee,0x3f0,0x3f2,
+0x3f6,0x3fa,0x3fe,0x402,0x404,0x406,0x408,0x40a,0x40c,0x40e,0x410,0x412,0x414,0x416,0x418,0x41a,
+0x41c,0x41e,0x424,0x426,0x428,0x42a,0x42c,0x42e,0x430,0x432,0x434,0x438,0x43e,0x440,0x444,0x446,
+0x448,0x44a,0x452,0x456,0x458,0x460,0x462,0x464,0x466,0x468,0x46a,0x46c,0x46e,0x470,0x472,0x474,
+0x476,0x478,0x47e,0x494,0x496,0x4a0,0x4a6,0x4b4,0x4b8,0x4d4,0x4d8,0x4dc,0x4e0,0x668,0x66c,0x674,
+0x677,0x67a,0x67d,0x680,0x683,0x686,0x689,0x68c,0x68f,0x692,0x695,0x698,0x69b,0x69e,0x6a1,0x6a4,
+0x6a7,0x6aa,0x6ad,0x6b0,0x6b3,0x6b6,0x6b9,0x6bc,0x6bf,0x6c2,0x6c5,0x6c8,0x6cb,0x6ce,0x6d1,0x6d4,
+0x6d7,0x6da,0x6dd,0x6e0,0x6e3,0x6e6,0x6e9,0x6ec,0x6ef,0x6f2,0x6f5,0x6f8,0x6fb,0x6fe,0x701,0x704,
+0x707,0x70a,0x70d,0x710,0x713,0x716,0x719,0x71c,0x71f,0x722,0x725,0x72b,0x731,0x737,0x73d,0x743,
+0x746,0x749,0x74c,0x74f,0x752,0x755,0x758,0x75b,0x75e,0x761,0x764,0x767,0x76a,0x76d,0x770,0x773,
+0x776,0x77c,0x782,0x788,0x78e,0x794,0x797,0x79a,0x79d,0x7a0,0x7a3
};
-static const uint16_t combiningTable[1936]={
-0x790,0xc0,0x791,0xc1,0x792,0x20c2,0x793,0xc3,0x794,0x20c4,0x795,0x20c5,0x797,0x100,0x798,0x2102,
-0x799,0x104,0x79a,0x2226,0x79b,0x1cd,0x79e,0x200,0x79f,0x202,0x7b6,0x1e00,0x7b7,0x3ea0,0x87bd,0x1ea2,
-0x791,0x106,0x792,0x108,0x796,0x20c7,0x79a,0x10a,0x879b,0x10c,0x790,0xc8,0x791,0xc9,0x792,0x20ca,
-0x793,0x1ebc,0x794,0xcb,0x796,0x2228,0x797,0x2112,0x798,0x114,0x799,0x118,0x79a,0x116,0x79b,0x11a,
-0x79e,0x204,0x79f,0x206,0x7b7,0x3eb8,0x7b9,0x1e18,0x7ba,0x1e1a,0x87bd,0x1eba,0x790,0xcc,0x791,0xcd,
-0x792,0xce,0x793,0x128,0x794,0x20cf,0x797,0x12a,0x798,0x12c,0x799,0x12e,0x79a,0x130,0x79b,0x1cf,
-0x79e,0x208,0x79f,0x20a,0x7b7,0x1eca,0x7ba,0x1e2c,0x87bd,0x1ec8,0x790,0x1f8,0x791,0x143,0x793,0xd1,
-0x796,0x145,0x79a,0x1e44,0x79b,0x147,0x7b7,0x1e46,0x7b8,0x1e48,0x87b9,0x1e4a,0x790,0xd2,0x791,0xd3,
-0x792,0x20d4,0x793,0x20d5,0x794,0x20d6,0x797,0x214c,0x798,0x14e,0x799,0x21ea,0x79a,0x222e,0x79b,0x1d1,
-0x79c,0x150,0x79d,0x21a0,0x79e,0x20c,0x79f,0x20e,0x7b7,0x3ecc,0x87bd,0x1ece,0x790,0xd9,0x791,0xda,
-0x792,0xdb,0x793,0x2168,0x794,0x20dc,0x795,0x16e,0x797,0x216a,0x798,0x16c,0x799,0x172,0x79b,0x1d3,
-0x79c,0x170,0x79d,0x21af,0x79e,0x214,0x79f,0x216,0x7b7,0x1ee4,0x7b9,0x1e76,0x7ba,0x1e74,0x7bc,0x1e72,
-0x87bd,0x1ee6,0x790,0x1ef2,0x791,0xdd,0x792,0x176,0x793,0x1ef8,0x794,0x178,0x797,0x232,0x79a,0x1e8e,
-0x7b7,0x1ef4,0x87bd,0x1ef6,0x790,0xe0,0x791,0xe1,0x792,0x20e2,0x793,0xe3,0x794,0x20e4,0x795,0x20e5,
-0x797,0x101,0x798,0x2103,0x799,0x105,0x79a,0x2227,0x79b,0x1ce,0x79e,0x201,0x79f,0x203,0x7b6,0x1e01,
-0x7b7,0x3ea1,0x87bd,0x1ea3,0x791,0x107,0x792,0x109,0x796,0x20e7,0x79a,0x10b,0x879b,0x10d,0x790,0xe8,
-0x791,0xe9,0x792,0x20ea,0x793,0x1ebd,0x794,0xeb,0x796,0x2229,0x797,0x2113,0x798,0x115,0x799,0x119,
-0x79a,0x117,0x79b,0x11b,0x79e,0x205,0x79f,0x207,0x7b7,0x3eb9,0x7b9,0x1e19,0x7ba,0x1e1b,0x87bd,0x1ebb,
-0x790,0xec,0x791,0xed,0x792,0xee,0x793,0x129,0x794,0x20ef,0x797,0x12b,0x798,0x12d,0x799,0x12f,
-0x79b,0x1d0,0x79e,0x209,0x79f,0x20b,0x7b7,0x1ecb,0x7ba,0x1e2d,0x87bd,0x1ec9,0x790,0x1f9,0x791,0x144,
-0x793,0xf1,0x796,0x146,0x79a,0x1e45,0x79b,0x148,0x7b7,0x1e47,0x7b8,0x1e49,0x87b9,0x1e4b,0x790,0xf2,
-0x791,0xf3,0x792,0x20f4,0x793,0x20f5,0x794,0x20f6,0x797,0x214d,0x798,0x14f,0x799,0x21eb,0x79a,0x222f,
-0x79b,0x1d2,0x79c,0x151,0x79d,0x21a1,0x79e,0x20d,0x79f,0x20f,0x7b7,0x3ecd,0x87bd,0x1ecf,0x790,0xf9,
-0x791,0xfa,0x792,0xfb,0x793,0x2169,0x794,0x20fc,0x795,0x16f,0x797,0x216b,0x798,0x16d,0x799,0x173,
-0x79b,0x1d4,0x79c,0x171,0x79d,0x21b0,0x79e,0x215,0x79f,0x217,0x7b7,0x1ee5,0x7b9,0x1e77,0x7ba,0x1e75,
-0x7bc,0x1e73,0x87bd,0x1ee7,0x790,0x1ef3,0x791,0xfd,0x792,0x177,0x793,0x1ef9,0x794,0xff,0x795,0x1e99,
-0x797,0x233,0x79a,0x1e8f,0x7b7,0x1ef5,0x87bd,0x1ef7,0x796,0x1e10,0x79a,0x1e0a,0x79b,0x10e,0x7b7,0x1e0c,
-0x7b8,0x1e0e,0x87b9,0x1e12,0x796,0x1e11,0x79a,0x1e0b,0x79b,0x10f,0x7b7,0x1e0d,0x7b8,0x1e0f,0x87b9,0x1e13,
-0x791,0x1f4,0x792,0x11c,0x796,0x122,0x797,0x1e20,0x798,0x11e,0x79a,0x120,0x879b,0x1e6,0x791,0x1f5,
-0x792,0x11d,0x796,0x123,0x797,0x1e21,0x798,0x11f,0x79a,0x121,0x879b,0x1e7,0x792,0x124,0x794,0x1e26,
-0x796,0x1e28,0x79a,0x1e22,0x79b,0x21e,0x7b7,0x1e24,0x87bb,0x1e2a,0x792,0x125,0x794,0x1e27,0x796,0x1e29,
-0x79a,0x1e23,0x79b,0x21f,0x7b7,0x1e25,0x7b8,0x1e96,0x87bb,0x1e2b,0x8792,0x134,0x792,0x135,0x879b,0x1f0,
-0x791,0x1e30,0x796,0x136,0x79b,0x1e8,0x7b7,0x1e32,0x87b8,0x1e34,0x791,0x1e31,0x796,0x137,0x79b,0x1e9,
-0x7b7,0x1e33,0x87b8,0x1e35,0x791,0x139,0x796,0x13b,0x79b,0x13d,0x7b7,0x3e36,0x7b8,0x1e3a,0x87b9,0x1e3c,
-0x791,0x13a,0x796,0x13c,0x79b,0x13e,0x7b7,0x3e37,0x7b8,0x1e3b,0x87b9,0x1e3d,0x791,0x154,0x796,0x156,
-0x79a,0x1e58,0x79b,0x158,0x79e,0x210,0x79f,0x212,0x7b7,0x3e5a,0x87b8,0x1e5e,0x791,0x155,0x796,0x157,
-0x79a,0x1e59,0x79b,0x159,0x79e,0x211,0x79f,0x213,0x7b7,0x3e5b,0x87b8,0x1e5f,0x791,0x215a,0x792,0x15c,
-0x796,0x15e,0x79a,0x1e60,0x79b,0x2160,0x7a0,0x218,0x87b7,0x3e62,0x791,0x215b,0x792,0x15d,0x796,0x15f,
-0x79a,0x1e61,0x79b,0x2161,0x7a0,0x219,0x87b7,0x3e63,0x796,0x162,0x79a,0x1e6a,0x79b,0x164,0x7a0,0x21a,
-0x7b7,0x1e6c,0x7b8,0x1e6e,0x87b9,0x1e70,0x794,0x1e97,0x796,0x163,0x79a,0x1e6b,0x79b,0x165,0x7a0,0x21b,
-0x7b7,0x1e6d,0x7b8,0x1e6f,0x87b9,0x1e71,0x790,0x1e80,0x791,0x1e82,0x792,0x174,0x794,0x1e84,0x79a,0x1e86,
-0x87b7,0x1e88,0x790,0x1e81,0x791,0x1e83,0x792,0x175,0x794,0x1e85,0x795,0x1e98,0x79a,0x1e87,0x87b7,0x1e89,
-0x791,0x179,0x792,0x1e90,0x79a,0x17b,0x79b,0x17d,0x7b7,0x1e92,0x87b8,0x1e94,0x791,0x17a,0x792,0x1e91,
-0x79a,0x17c,0x79b,0x17e,0x7b7,0x1e93,0x87b8,0x1e95,0x790,0x1db,0x791,0x1d7,0x797,0x1d5,0x879b,0x1d9,
-0x790,0x1dc,0x791,0x1d8,0x797,0x1d6,0x879b,0x1da,0x8797,0x1de,0x8797,0x1df,0x8797,0x1e0,0x8797,0x1e1,
-0x791,0x1fc,0x8797,0x1e2,0x791,0x1fd,0x8797,0x1e3,0x8797,0x1ec,0x8797,0x1ed,0x879b,0x1ee,0x879b,0x1ef,
-0x8791,0x1fa,0x8791,0x1fb,0x8791,0x1fe,0x8791,0x1ff,0x8797,0x22a,0x8797,0x22b,0x791,0x1e4c,0x794,0x1e4e,
-0x8797,0x22c,0x791,0x1e4d,0x794,0x1e4f,0x8797,0x22d,0x8797,0x230,0x8797,0x231,0x790,0x1fed,0x791,0x385,
-0x87c0,0x1fc1,0x790,0x1fba,0x791,0x386,0x797,0x1fb9,0x798,0x1fb8,0x7be,0x3f08,0x7bf,0x3f09,0x87c1,0x1fbc,
-0x790,0x1fc8,0x791,0x388,0x7be,0x3f18,0x87bf,0x3f19,0x790,0x1fca,0x791,0x389,0x7be,0x3f28,0x7bf,0x3f29,
-0x87c1,0x1fcc,0x790,0x1fda,0x791,0x38a,0x794,0x3aa,0x797,0x1fd9,0x798,0x1fd8,0x7be,0x3f38,0x87bf,0x3f39,
-0x790,0x1ff8,0x791,0x38c,0x7be,0x3f48,0x87bf,0x3f49,0x790,0x1fea,0x791,0x38e,0x794,0x3ab,0x797,0x1fe9,
-0x798,0x1fe8,0x87bf,0x3f59,0x790,0x1ffa,0x791,0x38f,0x7be,0x3f68,0x7bf,0x3f69,0x87c1,0x1ffc,0x790,0x1fd2,
-0x791,0x390,0x87c0,0x1fd7,0x790,0x3f70,0x791,0x23ac,0x797,0x1fb1,0x798,0x1fb0,0x7be,0x3f00,0x7bf,0x3f01,
-0x7c0,0x3fb6,0x87c1,0x1fb3,0x790,0x1f72,0x791,0x3ad,0x7be,0x3f10,0x87bf,0x3f11,0x790,0x3f74,0x791,0x23ae,
-0x7be,0x3f20,0x7bf,0x3f21,0x7c0,0x3fc6,0x87c1,0x1fc3,0x790,0x1f76,0x791,0x3af,0x794,0x23ca,0x797,0x1fd1,
-0x798,0x1fd0,0x7be,0x3f30,0x7bf,0x3f31,0x87c0,0x1fd6,0x790,0x1fe2,0x791,0x3b0,0x87c0,0x1fe7,0x790,0x1f7a,
-0x791,0x3cd,0x794,0x23cb,0x797,0x1fe1,0x798,0x1fe0,0x7be,0x3f50,0x7bf,0x3f51,0x87c0,0x1fe6,0x790,0x1f78,
-0x791,0x3cc,0x7be,0x3f40,0x87bf,0x3f41,0x790,0x3f7c,0x791,0x23ce,0x7be,0x3f60,0x7bf,0x3f61,0x7c0,0x3ff6,
-0x87c1,0x1ff3,0x791,0x3d3,0x8794,0x3d4,0x790,0x400,0x794,0x401,0x8798,0x4d6,0x8791,0x403,0x8794,0x407,
-0x8791,0x40c,0x790,0x40d,0x794,0x4e4,0x797,0x4e2,0x8798,0x419,0x794,0x4f0,0x797,0x4ee,0x798,0x40e,
-0x879c,0x4f2,0x790,0x45d,0x794,0x4e5,0x797,0x4e3,0x8798,0x439,0x790,0x450,0x794,0x451,0x8798,0x4d7,
-0x8791,0x453,0x8794,0x457,0x8791,0x45c,0x794,0x4f1,0x797,0x4ef,0x798,0x45e,0x879c,0x4f3,0x879e,0x476,
-0x879e,0x477,0x794,0x4dc,0x8798,0x4c1,0x794,0x4dd,0x8798,0x4c2,0x794,0x4d2,0x8798,0x4d0,0x794,0x4d3,
-0x8798,0x4d1,0x8794,0x4da,0x8794,0x4db,0x8794,0x4de,0x8794,0x4df,0x8794,0x4e6,0x8794,0x4e7,0x8794,0x4ea,
-0x8794,0x4eb,0x8794,0x4ec,0x8794,0x4ed,0x8794,0x4f4,0x8794,0x4f5,0x8794,0x4f8,0x8794,0x4f9,0x7a1,0x622,
-0x7a2,0x623,0x87a3,0x625,0x87a2,0x624,0x87a2,0x626,0x87a2,0x6c0,0x87a2,0x6c2,0x87a2,0x6d3,0x87a4,0x929,
-0x87a4,0x931,0x87a4,0x934,0x7a5,0x9cb,0x87a6,0x9cc,0x7a7,0xb48,0x7a8,0xb4b,0x87a9,0xb4c,0x87aa,0xb94,
-0x7aa,0xbcc,0x87ab,0xbca,0x87ab,0xbcb,0x87ac,0xc48,0x87ad,0xcc0,0x7ad,0xcc7,0x7ae,0xcc8,0x87af,0x2cca,
-0x87ad,0xccb,0x7b0,0xd4a,0x87b1,0xd4c,0x87b0,0xd4b,0x7b2,0xdda,0x7b3,0x2ddc,0x87b4,0xdde,0x87b2,0xddd,
-0x87b5,0x1026,0x79a,0x1e02,0x7b7,0x1e04,0x87b8,0x1e06,0x79a,0x1e03,0x7b7,0x1e05,0x87b8,0x1e07,0x8791,0x1e08,
-0x8791,0x1e09,0x790,0x1e14,0x8791,0x1e16,0x790,0x1e15,0x8791,0x1e17,0x8798,0x1e1c,0x8798,0x1e1d,0x879a,0x1e1e,
-0x879a,0x1e1f,0x8791,0x1e2e,0x8791,0x1e2f,0x8797,0x1e38,0x8797,0x1e39,0x791,0x1e3e,0x79a,0x1e40,0x87b7,0x1e42,
-0x791,0x1e3f,0x79a,0x1e41,0x87b7,0x1e43,0x790,0x1e50,0x8791,0x1e52,0x790,0x1e51,0x8791,0x1e53,0x791,0x1e54,
-0x879a,0x1e56,0x791,0x1e55,0x879a,0x1e57,0x8797,0x1e5c,0x8797,0x1e5d,0x879a,0x1e64,0x879a,0x1e65,0x879a,0x1e66,
-0x879a,0x1e67,0x879a,0x1e68,0x879a,0x1e69,0x8791,0x1e78,0x8791,0x1e79,0x8794,0x1e7a,0x8794,0x1e7b,0x793,0x1e7c,
-0x87b7,0x1e7e,0x793,0x1e7d,0x87b7,0x1e7f,0x794,0x1e8c,0x879a,0x1e8a,0x794,0x1e8d,0x879a,0x1e8b,0x879a,0x1e9b,
-0x790,0x1ea6,0x791,0x1ea4,0x793,0x1eaa,0x87bd,0x1ea8,0x790,0x1ea7,0x791,0x1ea5,0x793,0x1eab,0x87bd,0x1ea9,
-0x792,0x1eac,0x8798,0x1eb6,0x792,0x1ead,0x8798,0x1eb7,0x790,0x1eb0,0x791,0x1eae,0x793,0x1eb4,0x87bd,0x1eb2,
-0x790,0x1eb1,0x791,0x1eaf,0x793,0x1eb5,0x87bd,0x1eb3,0x790,0x1ec0,0x791,0x1ebe,0x793,0x1ec4,0x87bd,0x1ec2,
-0x790,0x1ec1,0x791,0x1ebf,0x793,0x1ec5,0x87bd,0x1ec3,0x8792,0x1ec6,0x8792,0x1ec7,0x790,0x1ed2,0x791,0x1ed0,
-0x793,0x1ed6,0x87bd,0x1ed4,0x790,0x1ed3,0x791,0x1ed1,0x793,0x1ed7,0x87bd,0x1ed5,0x8792,0x1ed8,0x8792,0x1ed9,
-0x790,0x1edc,0x791,0x1eda,0x793,0x1ee0,0x7b7,0x1ee2,0x87bd,0x1ede,0x790,0x1edd,0x791,0x1edb,0x793,0x1ee1,
-0x7b7,0x1ee3,0x87bd,0x1edf,0x790,0x1eea,0x791,0x1ee8,0x793,0x1eee,0x7b7,0x1ef0,0x87bd,0x1eec,0x790,0x1eeb,
-0x791,0x1ee9,0x793,0x1eef,0x7b7,0x1ef1,0x87bd,0x1eed,0x790,0x3f02,0x791,0x3f04,0x7c0,0x3f06,0x87c1,0x1f80,
-0x790,0x3f03,0x791,0x3f05,0x7c0,0x3f07,0x87c1,0x1f81,0x790,0x3f0a,0x791,0x3f0c,0x7c0,0x3f0e,0x87c1,0x1f88,
-0x790,0x3f0b,0x791,0x3f0d,0x7c0,0x3f0f,0x87c1,0x1f89,0x790,0x1f12,0x8791,0x1f14,0x790,0x1f13,0x8791,0x1f15,
-0x790,0x1f1a,0x8791,0x1f1c,0x790,0x1f1b,0x8791,0x1f1d,0x790,0x3f22,0x791,0x3f24,0x7c0,0x3f26,0x87c1,0x1f90,
-0x790,0x3f23,0x791,0x3f25,0x7c0,0x3f27,0x87c1,0x1f91,0x790,0x3f2a,0x791,0x3f2c,0x7c0,0x3f2e,0x87c1,0x1f98,
-0x790,0x3f2b,0x791,0x3f2d,0x7c0,0x3f2f,0x87c1,0x1f99,0x790,0x1f32,0x791,0x1f34,0x87c0,0x1f36,0x790,0x1f33,
-0x791,0x1f35,0x87c0,0x1f37,0x790,0x1f3a,0x791,0x1f3c,0x87c0,0x1f3e,0x790,0x1f3b,0x791,0x1f3d,0x87c0,0x1f3f,
-0x790,0x1f42,0x8791,0x1f44,0x790,0x1f43,0x8791,0x1f45,0x790,0x1f4a,0x8791,0x1f4c,0x790,0x1f4b,0x8791,0x1f4d,
-0x790,0x1f52,0x791,0x1f54,0x87c0,0x1f56,0x790,0x1f53,0x791,0x1f55,0x87c0,0x1f57,0x790,0x1f5b,0x791,0x1f5d,
-0x87c0,0x1f5f,0x790,0x3f62,0x791,0x3f64,0x7c0,0x3f66,0x87c1,0x1fa0,0x790,0x3f63,0x791,0x3f65,0x7c0,0x3f67,
-0x87c1,0x1fa1,0x790,0x3f6a,0x791,0x3f6c,0x7c0,0x3f6e,0x87c1,0x1fa8,0x790,0x3f6b,0x791,0x3f6d,0x7c0,0x3f6f,
-0x87c1,0x1fa9,0x87c1,0x1f82,0x87c1,0x1f83,0x87c1,0x1f84,0x87c1,0x1f85,0x87c1,0x1f86,0x87c1,0x1f87,0x87c1,0x1f8a,
-0x87c1,0x1f8b,0x87c1,0x1f8c,0x87c1,0x1f8d,0x87c1,0x1f8e,0x87c1,0x1f8f,0x87c1,0x1f92,0x87c1,0x1f93,0x87c1,0x1f94,
-0x87c1,0x1f95,0x87c1,0x1f96,0x87c1,0x1f97,0x87c1,0x1f9a,0x87c1,0x1f9b,0x87c1,0x1f9c,0x87c1,0x1f9d,0x87c1,0x1f9e,
-0x87c1,0x1f9f,0x87c1,0x1fa2,0x87c1,0x1fa3,0x87c1,0x1fa4,0x87c1,0x1fa5,0x87c1,0x1fa6,0x87c1,0x1fa7,0x87c1,0x1faa,
-0x87c1,0x1fab,0x87c1,0x1fac,0x87c1,0x1fad,0x87c1,0x1fae,0x87c1,0x1faf,0x87c1,0x1fb2,0x87c1,0x1fb4,0x87c1,0x1fb7,
-0x87c1,0x1fc2,0x87c1,0x1fc4,0x87c1,0x1fc7,0x790,0x1fcd,0x791,0x1fce,0x87c0,0x1fcf,0x790,0x1fdd,0x791,0x1fde,
-0x87c0,0x1fdf,0x7be,0x1fe4,0x87bf,0x1fe5,0x87bf,0x1fec,0x87c1,0x1ff2,0x87c1,0x1ff4,0x87c1,0x1ff7,0x87c2,0x8000,
-0x219a,0x87c2,0x8000,0x219b,0x87c2,0x8000,0x21ae,0x87c2,0x8000,0x21cd,0x87c2,0x8000,0x21ce,0x87c2,0x8000,0x21cf,
-0x87c2,0x8000,0x2204,0x87c2,0x8000,0x2209,0x87c2,0x8000,0x220c,0x87c2,0x8000,0x2224,0x87c2,0x8000,0x2226,0x87c2,
-0x8000,0x2241,0x87c2,0x8000,0x2244,0x87c2,0x8000,0x2247,0x87c2,0x8000,0x2249,0x87c2,0x8000,0x2260,0x87c2,0x8000,
-0x2262,0x87c2,0x8000,0x226d,0x87c2,0x8000,0x226e,0x87c2,0x8000,0x226f,0x87c2,0x8000,0x2270,0x87c2,0x8000,0x2271,
-0x87c2,0x8000,0x2274,0x87c2,0x8000,0x2275,0x87c2,0x8000,0x2278,0x87c2,0x8000,0x2279,0x87c2,0x8000,0x2280,0x87c2,
-0x8000,0x2281,0x87c2,0x8000,0x2284,0x87c2,0x8000,0x2285,0x87c2,0x8000,0x2288,0x87c2,0x8000,0x2289,0x87c2,0x8000,
-0x22ac,0x87c2,0x8000,0x22ad,0x87c2,0x8000,0x22ae,0x87c2,0x8000,0x22af,0x87c2,0x8000,0x22e0,0x87c2,0x8000,0x22e1,
-0x87c2,0x8000,0x22e2,0x87c2,0x8000,0x22e3,0x87c2,0x8000,0x22ea,0x87c2,0x8000,0x22eb,0x87c2,0x8000,0x22ec,0x87c2,
-0x8000,0x22ed,0x87c3,0x8000,0x304c,0x87c3,0x8000,0x304e,0x87c3,0x8000,0x3050,0x87c3,0x8000,0x3052,0x87c3,0x8000,
-0x3054,0x87c3,0x8000,0x3056,0x87c3,0x8000,0x3058,0x87c3,0x8000,0x305a,0x87c3,0x8000,0x305c,0x87c3,0x8000,0x305e,
-0x87c3,0x8000,0x3060,0x87c3,0x8000,0x3062,0x87c3,0x8000,0x3065,0x87c3,0x8000,0x3067,0x87c3,0x8000,0x3069,0x7c3,
-0x8000,0x3070,0x87c4,0x8000,0x3071,0x7c3,0x8000,0x3073,0x87c4,0x8000,0x3074,0x7c3,0x8000,0x3076,0x87c4,0x8000,
-0x3077,0x7c3,0x8000,0x3079,0x87c4,0x8000,0x307a,0x7c3,0x8000,0x307c,0x87c4,0x8000,0x307d,0x87c3,0x8000,0x3094,
-0x87c3,0x8000,0x309e,0x87c3,0x8000,0x30ac,0x87c3,0x8000,0x30ae,0x87c3,0x8000,0x30b0,0x87c3,0x8000,0x30b2,0x87c3,
-0x8000,0x30b4,0x87c3,0x8000,0x30b6,0x87c3,0x8000,0x30b8,0x87c3,0x8000,0x30ba,0x87c3,0x8000,0x30bc,0x87c3,0x8000,
-0x30be,0x87c3,0x8000,0x30c0,0x87c3,0x8000,0x30c2,0x87c3,0x8000,0x30c5,0x87c3,0x8000,0x30c7,0x87c3,0x8000,0x30c9,
-0x7c3,0x8000,0x30d0,0x87c4,0x8000,0x30d1,0x7c3,0x8000,0x30d3,0x87c4,0x8000,0x30d4,0x7c3,0x8000,0x30d6,0x87c4,
-0x8000,0x30d7,0x7c3,0x8000,0x30d9,0x87c4,0x8000,0x30da,0x7c3,0x8000,0x30dc,0x87c4,0x8000,0x30dd,0x87c3,0x8000,
-0x30f4,0x87c3,0x8000,0x30f7,0x87c3,0x8000,0x30f8,0x87c3,0x8000,0x30f9,0x87c3,0x8000,0x30fa,0x87c3,0x8000,0x30fe
+static const uint16_t combiningTable[1959]={
+0x7a6,0xc0,0x7a7,0xc1,0x7a8,0x20c2,0x7a9,0xc3,0x7aa,0x20c4,0x7ab,0x20c5,0x7ad,0x100,0x7ae,0x2102,
+0x7af,0x104,0x7b0,0x2226,0x7b1,0x1cd,0x7b4,0x200,0x7b5,0x202,0x7cd,0x1e00,0x7ce,0x3ea0,0x87d4,0x1ea2,
+0x7a7,0x106,0x7a8,0x108,0x7ac,0x20c7,0x7b0,0x10a,0x87b1,0x10c,0x7a6,0xc8,0x7a7,0xc9,0x7a8,0x20ca,
+0x7a9,0x1ebc,0x7aa,0xcb,0x7ac,0x2228,0x7ad,0x2112,0x7ae,0x114,0x7af,0x118,0x7b0,0x116,0x7b1,0x11a,
+0x7b4,0x204,0x7b5,0x206,0x7ce,0x3eb8,0x7d0,0x1e18,0x7d1,0x1e1a,0x87d4,0x1eba,0x7a6,0xcc,0x7a7,0xcd,
+0x7a8,0xce,0x7a9,0x128,0x7aa,0x20cf,0x7ad,0x12a,0x7ae,0x12c,0x7af,0x12e,0x7b0,0x130,0x7b1,0x1cf,
+0x7b4,0x208,0x7b5,0x20a,0x7ce,0x1eca,0x7d1,0x1e2c,0x87d4,0x1ec8,0x7a6,0x1f8,0x7a7,0x143,0x7a9,0xd1,
+0x7ac,0x145,0x7b0,0x1e44,0x7b1,0x147,0x7ce,0x1e46,0x7cf,0x1e48,0x87d0,0x1e4a,0x7a6,0xd2,0x7a7,0xd3,
+0x7a8,0x20d4,0x7a9,0x20d5,0x7aa,0x20d6,0x7ad,0x214c,0x7ae,0x14e,0x7af,0x21ea,0x7b0,0x222e,0x7b1,0x1d1,
+0x7b2,0x150,0x7b3,0x21a0,0x7b4,0x20c,0x7b5,0x20e,0x7ce,0x3ecc,0x87d4,0x1ece,0x7a6,0xd9,0x7a7,0xda,
+0x7a8,0xdb,0x7a9,0x2168,0x7aa,0x20dc,0x7ab,0x16e,0x7ad,0x216a,0x7ae,0x16c,0x7af,0x172,0x7b1,0x1d3,
+0x7b2,0x170,0x7b3,0x21af,0x7b4,0x214,0x7b5,0x216,0x7ce,0x1ee4,0x7d0,0x1e76,0x7d1,0x1e74,0x7d3,0x1e72,
+0x87d4,0x1ee6,0x7a6,0x1ef2,0x7a7,0xdd,0x7a8,0x176,0x7a9,0x1ef8,0x7aa,0x178,0x7ad,0x232,0x7b0,0x1e8e,
+0x7ce,0x1ef4,0x87d4,0x1ef6,0x7a6,0xe0,0x7a7,0xe1,0x7a8,0x20e2,0x7a9,0xe3,0x7aa,0x20e4,0x7ab,0x20e5,
+0x7ad,0x101,0x7ae,0x2103,0x7af,0x105,0x7b0,0x2227,0x7b1,0x1ce,0x7b4,0x201,0x7b5,0x203,0x7cd,0x1e01,
+0x7ce,0x3ea1,0x87d4,0x1ea3,0x7a7,0x107,0x7a8,0x109,0x7ac,0x20e7,0x7b0,0x10b,0x87b1,0x10d,0x7a6,0xe8,
+0x7a7,0xe9,0x7a8,0x20ea,0x7a9,0x1ebd,0x7aa,0xeb,0x7ac,0x2229,0x7ad,0x2113,0x7ae,0x115,0x7af,0x119,
+0x7b0,0x117,0x7b1,0x11b,0x7b4,0x205,0x7b5,0x207,0x7ce,0x3eb9,0x7d0,0x1e19,0x7d1,0x1e1b,0x87d4,0x1ebb,
+0x7a6,0xec,0x7a7,0xed,0x7a8,0xee,0x7a9,0x129,0x7aa,0x20ef,0x7ad,0x12b,0x7ae,0x12d,0x7af,0x12f,
+0x7b1,0x1d0,0x7b4,0x209,0x7b5,0x20b,0x7ce,0x1ecb,0x7d1,0x1e2d,0x87d4,0x1ec9,0x7a6,0x1f9,0x7a7,0x144,
+0x7a9,0xf1,0x7ac,0x146,0x7b0,0x1e45,0x7b1,0x148,0x7ce,0x1e47,0x7cf,0x1e49,0x87d0,0x1e4b,0x7a6,0xf2,
+0x7a7,0xf3,0x7a8,0x20f4,0x7a9,0x20f5,0x7aa,0x20f6,0x7ad,0x214d,0x7ae,0x14f,0x7af,0x21eb,0x7b0,0x222f,
+0x7b1,0x1d2,0x7b2,0x151,0x7b3,0x21a1,0x7b4,0x20d,0x7b5,0x20f,0x7ce,0x3ecd,0x87d4,0x1ecf,0x7a6,0xf9,
+0x7a7,0xfa,0x7a8,0xfb,0x7a9,0x2169,0x7aa,0x20fc,0x7ab,0x16f,0x7ad,0x216b,0x7ae,0x16d,0x7af,0x173,
+0x7b1,0x1d4,0x7b2,0x171,0x7b3,0x21b0,0x7b4,0x215,0x7b5,0x217,0x7ce,0x1ee5,0x7d0,0x1e77,0x7d1,0x1e75,
+0x7d3,0x1e73,0x87d4,0x1ee7,0x7a6,0x1ef3,0x7a7,0xfd,0x7a8,0x177,0x7a9,0x1ef9,0x7aa,0xff,0x7ab,0x1e99,
+0x7ad,0x233,0x7b0,0x1e8f,0x7ce,0x1ef5,0x87d4,0x1ef7,0x7ac,0x1e10,0x7b0,0x1e0a,0x7b1,0x10e,0x7ce,0x1e0c,
+0x7cf,0x1e0e,0x87d0,0x1e12,0x7ac,0x1e11,0x7b0,0x1e0b,0x7b1,0x10f,0x7ce,0x1e0d,0x7cf,0x1e0f,0x87d0,0x1e13,
+0x7a7,0x1f4,0x7a8,0x11c,0x7ac,0x122,0x7ad,0x1e20,0x7ae,0x11e,0x7b0,0x120,0x87b1,0x1e6,0x7a7,0x1f5,
+0x7a8,0x11d,0x7ac,0x123,0x7ad,0x1e21,0x7ae,0x11f,0x7b0,0x121,0x87b1,0x1e7,0x7a8,0x124,0x7aa,0x1e26,
+0x7ac,0x1e28,0x7b0,0x1e22,0x7b1,0x21e,0x7ce,0x1e24,0x87d2,0x1e2a,0x7a8,0x125,0x7aa,0x1e27,0x7ac,0x1e29,
+0x7b0,0x1e23,0x7b1,0x21f,0x7ce,0x1e25,0x7cf,0x1e96,0x87d2,0x1e2b,0x87a8,0x134,0x7a8,0x135,0x87b1,0x1f0,
+0x7a7,0x1e30,0x7ac,0x136,0x7b1,0x1e8,0x7ce,0x1e32,0x87cf,0x1e34,0x7a7,0x1e31,0x7ac,0x137,0x7b1,0x1e9,
+0x7ce,0x1e33,0x87cf,0x1e35,0x7a7,0x139,0x7ac,0x13b,0x7b1,0x13d,0x7ce,0x3e36,0x7cf,0x1e3a,0x87d0,0x1e3c,
+0x7a7,0x13a,0x7ac,0x13c,0x7b1,0x13e,0x7ce,0x3e37,0x7cf,0x1e3b,0x87d0,0x1e3d,0x7a7,0x154,0x7ac,0x156,
+0x7b0,0x1e58,0x7b1,0x158,0x7b4,0x210,0x7b5,0x212,0x7ce,0x3e5a,0x87cf,0x1e5e,0x7a7,0x155,0x7ac,0x157,
+0x7b0,0x1e59,0x7b1,0x159,0x7b4,0x211,0x7b5,0x213,0x7ce,0x3e5b,0x87cf,0x1e5f,0x7a7,0x215a,0x7a8,0x15c,
+0x7ac,0x15e,0x7b0,0x1e60,0x7b1,0x2160,0x7b6,0x218,0x87ce,0x3e62,0x7a7,0x215b,0x7a8,0x15d,0x7ac,0x15f,
+0x7b0,0x1e61,0x7b1,0x2161,0x7b6,0x219,0x87ce,0x3e63,0x7ac,0x162,0x7b0,0x1e6a,0x7b1,0x164,0x7b6,0x21a,
+0x7ce,0x1e6c,0x7cf,0x1e6e,0x87d0,0x1e70,0x7aa,0x1e97,0x7ac,0x163,0x7b0,0x1e6b,0x7b1,0x165,0x7b6,0x21b,
+0x7ce,0x1e6d,0x7cf,0x1e6f,0x87d0,0x1e71,0x7a6,0x1e80,0x7a7,0x1e82,0x7a8,0x174,0x7aa,0x1e84,0x7b0,0x1e86,
+0x87ce,0x1e88,0x7a6,0x1e81,0x7a7,0x1e83,0x7a8,0x175,0x7aa,0x1e85,0x7ab,0x1e98,0x7b0,0x1e87,0x87ce,0x1e89,
+0x7a7,0x179,0x7a8,0x1e90,0x7b0,0x17b,0x7b1,0x17d,0x7ce,0x1e92,0x87cf,0x1e94,0x7a7,0x17a,0x7a8,0x1e91,
+0x7b0,0x17c,0x7b1,0x17e,0x7ce,0x1e93,0x87cf,0x1e95,0x7a6,0x1db,0x7a7,0x1d7,0x7ad,0x1d5,0x87b1,0x1d9,
+0x7a6,0x1dc,0x7a7,0x1d8,0x7ad,0x1d6,0x87b1,0x1da,0x87ad,0x1de,0x87ad,0x1df,0x87ad,0x1e0,0x87ad,0x1e1,
+0x7a7,0x1fc,0x87ad,0x1e2,0x7a7,0x1fd,0x87ad,0x1e3,0x87ad,0x1ec,0x87ad,0x1ed,0x87b1,0x1ee,0x87b1,0x1ef,
+0x87a7,0x1fa,0x87a7,0x1fb,0x87a7,0x1fe,0x87a7,0x1ff,0x87ad,0x22a,0x87ad,0x22b,0x7a7,0x1e4c,0x7aa,0x1e4e,
+0x87ad,0x22c,0x7a7,0x1e4d,0x7aa,0x1e4f,0x87ad,0x22d,0x87ad,0x230,0x87ad,0x231,0x7a6,0x1fed,0x7a7,0x385,
+0x87d7,0x1fc1,0x7a6,0x1fba,0x7a7,0x386,0x7ad,0x1fb9,0x7ae,0x1fb8,0x7d5,0x3f08,0x7d6,0x3f09,0x87d8,0x1fbc,
+0x7a6,0x1fc8,0x7a7,0x388,0x7d5,0x3f18,0x87d6,0x3f19,0x7a6,0x1fca,0x7a7,0x389,0x7d5,0x3f28,0x7d6,0x3f29,
+0x87d8,0x1fcc,0x7a6,0x1fda,0x7a7,0x38a,0x7aa,0x3aa,0x7ad,0x1fd9,0x7ae,0x1fd8,0x7d5,0x3f38,0x87d6,0x3f39,
+0x7a6,0x1ff8,0x7a7,0x38c,0x7d5,0x3f48,0x87d6,0x3f49,0x7a6,0x1fea,0x7a7,0x38e,0x7aa,0x3ab,0x7ad,0x1fe9,
+0x7ae,0x1fe8,0x87d6,0x3f59,0x7a6,0x1ffa,0x7a7,0x38f,0x7d5,0x3f68,0x7d6,0x3f69,0x87d8,0x1ffc,0x7a6,0x1fd2,
+0x7a7,0x390,0x87d7,0x1fd7,0x7a6,0x3f70,0x7a7,0x23ac,0x7ad,0x1fb1,0x7ae,0x1fb0,0x7d5,0x3f00,0x7d6,0x3f01,
+0x7d7,0x3fb6,0x87d8,0x1fb3,0x7a6,0x1f72,0x7a7,0x3ad,0x7d5,0x3f10,0x87d6,0x3f11,0x7a6,0x3f74,0x7a7,0x23ae,
+0x7d5,0x3f20,0x7d6,0x3f21,0x7d7,0x3fc6,0x87d8,0x1fc3,0x7a6,0x1f76,0x7a7,0x3af,0x7aa,0x23ca,0x7ad,0x1fd1,
+0x7ae,0x1fd0,0x7d5,0x3f30,0x7d6,0x3f31,0x87d7,0x1fd6,0x7a6,0x1fe2,0x7a7,0x3b0,0x87d7,0x1fe7,0x7a6,0x1f7a,
+0x7a7,0x3cd,0x7aa,0x23cb,0x7ad,0x1fe1,0x7ae,0x1fe0,0x7d5,0x3f50,0x7d6,0x3f51,0x87d7,0x1fe6,0x7a6,0x1f78,
+0x7a7,0x3cc,0x7d5,0x3f40,0x87d6,0x3f41,0x7a6,0x3f7c,0x7a7,0x23ce,0x7d5,0x3f60,0x7d6,0x3f61,0x7d7,0x3ff6,
+0x87d8,0x1ff3,0x7a7,0x3d3,0x87aa,0x3d4,0x7a6,0x400,0x7aa,0x401,0x87ae,0x4d6,0x87a7,0x403,0x87aa,0x407,
+0x87a7,0x40c,0x7a6,0x40d,0x7aa,0x4e4,0x7ad,0x4e2,0x87ae,0x419,0x7aa,0x4f0,0x7ad,0x4ee,0x7ae,0x40e,
+0x87b2,0x4f2,0x7a6,0x45d,0x7aa,0x4e5,0x7ad,0x4e3,0x87ae,0x439,0x7a6,0x450,0x7aa,0x451,0x87ae,0x4d7,
+0x87a7,0x453,0x87aa,0x457,0x87a7,0x45c,0x7aa,0x4f1,0x7ad,0x4ef,0x7ae,0x45e,0x87b2,0x4f3,0x87b4,0x476,
+0x87b4,0x477,0x7aa,0x4dc,0x87ae,0x4c1,0x7aa,0x4dd,0x87ae,0x4c2,0x7aa,0x4d2,0x87ae,0x4d0,0x7aa,0x4d3,
+0x87ae,0x4d1,0x87aa,0x4da,0x87aa,0x4db,0x87aa,0x4de,0x87aa,0x4df,0x87aa,0x4e6,0x87aa,0x4e7,0x87aa,0x4ea,
+0x87aa,0x4eb,0x87aa,0x4ec,0x87aa,0x4ed,0x87aa,0x4f4,0x87aa,0x4f5,0x87aa,0x4f8,0x87aa,0x4f9,0x7b7,0x622,
+0x7b8,0x623,0x87b9,0x625,0x87b8,0x624,0x87b8,0x626,0x87b8,0x6c0,0x87b8,0x6c2,0x87b8,0x6d3,0x87ba,0x929,
+0x87ba,0x931,0x87ba,0x934,0x7bb,0x9cb,0x87bc,0x9cc,0x7bd,0xb48,0x7be,0xb4b,0x87bf,0xb4c,0x87c0,0xb94,
+0x7c0,0xbcc,0x87c1,0xbca,0x87c1,0xbcb,0x87c2,0xc48,0x87c3,0xcc0,0x7c3,0xcc7,0x7c4,0xcc8,0x87c5,0x2cca,
+0x87c3,0xccb,0x7c6,0xd4a,0x87c7,0xd4c,0x87c6,0xd4b,0x7c8,0xdda,0x7c9,0x2ddc,0x87ca,0xdde,0x87c8,0xddd,
+0x87cb,0x1026,0x87cc,0x1b06,0x87cc,0x1b08,0x87cc,0x1b0a,0x87cc,0x1b0c,0x87cc,0x1b0e,0x87cc,0x1b12,0x87cc,0x1b3b,
+0x87cc,0x1b3d,0x87cc,0x1b40,0x87cc,0x1b41,0x87cc,0x1b43,0x7b0,0x1e02,0x7ce,0x1e04,0x87cf,0x1e06,0x7b0,0x1e03,
+0x7ce,0x1e05,0x87cf,0x1e07,0x87a7,0x1e08,0x87a7,0x1e09,0x7a6,0x1e14,0x87a7,0x1e16,0x7a6,0x1e15,0x87a7,0x1e17,
+0x87ae,0x1e1c,0x87ae,0x1e1d,0x87b0,0x1e1e,0x87b0,0x1e1f,0x87a7,0x1e2e,0x87a7,0x1e2f,0x87ad,0x1e38,0x87ad,0x1e39,
+0x7a7,0x1e3e,0x7b0,0x1e40,0x87ce,0x1e42,0x7a7,0x1e3f,0x7b0,0x1e41,0x87ce,0x1e43,0x7a6,0x1e50,0x87a7,0x1e52,
+0x7a6,0x1e51,0x87a7,0x1e53,0x7a7,0x1e54,0x87b0,0x1e56,0x7a7,0x1e55,0x87b0,0x1e57,0x87ad,0x1e5c,0x87ad,0x1e5d,
+0x87b0,0x1e64,0x87b0,0x1e65,0x87b0,0x1e66,0x87b0,0x1e67,0x87b0,0x1e68,0x87b0,0x1e69,0x87a7,0x1e78,0x87a7,0x1e79,
+0x87aa,0x1e7a,0x87aa,0x1e7b,0x7a9,0x1e7c,0x87ce,0x1e7e,0x7a9,0x1e7d,0x87ce,0x1e7f,0x7aa,0x1e8c,0x87b0,0x1e8a,
+0x7aa,0x1e8d,0x87b0,0x1e8b,0x87b0,0x1e9b,0x7a6,0x1ea6,0x7a7,0x1ea4,0x7a9,0x1eaa,0x87d4,0x1ea8,0x7a6,0x1ea7,
+0x7a7,0x1ea5,0x7a9,0x1eab,0x87d4,0x1ea9,0x7a8,0x1eac,0x87ae,0x1eb6,0x7a8,0x1ead,0x87ae,0x1eb7,0x7a6,0x1eb0,
+0x7a7,0x1eae,0x7a9,0x1eb4,0x87d4,0x1eb2,0x7a6,0x1eb1,0x7a7,0x1eaf,0x7a9,0x1eb5,0x87d4,0x1eb3,0x7a6,0x1ec0,
+0x7a7,0x1ebe,0x7a9,0x1ec4,0x87d4,0x1ec2,0x7a6,0x1ec1,0x7a7,0x1ebf,0x7a9,0x1ec5,0x87d4,0x1ec3,0x87a8,0x1ec6,
+0x87a8,0x1ec7,0x7a6,0x1ed2,0x7a7,0x1ed0,0x7a9,0x1ed6,0x87d4,0x1ed4,0x7a6,0x1ed3,0x7a7,0x1ed1,0x7a9,0x1ed7,
+0x87d4,0x1ed5,0x87a8,0x1ed8,0x87a8,0x1ed9,0x7a6,0x1edc,0x7a7,0x1eda,0x7a9,0x1ee0,0x7ce,0x1ee2,0x87d4,0x1ede,
+0x7a6,0x1edd,0x7a7,0x1edb,0x7a9,0x1ee1,0x7ce,0x1ee3,0x87d4,0x1edf,0x7a6,0x1eea,0x7a7,0x1ee8,0x7a9,0x1eee,
+0x7ce,0x1ef0,0x87d4,0x1eec,0x7a6,0x1eeb,0x7a7,0x1ee9,0x7a9,0x1eef,0x7ce,0x1ef1,0x87d4,0x1eed,0x7a6,0x3f02,
+0x7a7,0x3f04,0x7d7,0x3f06,0x87d8,0x1f80,0x7a6,0x3f03,0x7a7,0x3f05,0x7d7,0x3f07,0x87d8,0x1f81,0x7a6,0x3f0a,
+0x7a7,0x3f0c,0x7d7,0x3f0e,0x87d8,0x1f88,0x7a6,0x3f0b,0x7a7,0x3f0d,0x7d7,0x3f0f,0x87d8,0x1f89,0x7a6,0x1f12,
+0x87a7,0x1f14,0x7a6,0x1f13,0x87a7,0x1f15,0x7a6,0x1f1a,0x87a7,0x1f1c,0x7a6,0x1f1b,0x87a7,0x1f1d,0x7a6,0x3f22,
+0x7a7,0x3f24,0x7d7,0x3f26,0x87d8,0x1f90,0x7a6,0x3f23,0x7a7,0x3f25,0x7d7,0x3f27,0x87d8,0x1f91,0x7a6,0x3f2a,
+0x7a7,0x3f2c,0x7d7,0x3f2e,0x87d8,0x1f98,0x7a6,0x3f2b,0x7a7,0x3f2d,0x7d7,0x3f2f,0x87d8,0x1f99,0x7a6,0x1f32,
+0x7a7,0x1f34,0x87d7,0x1f36,0x7a6,0x1f33,0x7a7,0x1f35,0x87d7,0x1f37,0x7a6,0x1f3a,0x7a7,0x1f3c,0x87d7,0x1f3e,
+0x7a6,0x1f3b,0x7a7,0x1f3d,0x87d7,0x1f3f,0x7a6,0x1f42,0x87a7,0x1f44,0x7a6,0x1f43,0x87a7,0x1f45,0x7a6,0x1f4a,
+0x87a7,0x1f4c,0x7a6,0x1f4b,0x87a7,0x1f4d,0x7a6,0x1f52,0x7a7,0x1f54,0x87d7,0x1f56,0x7a6,0x1f53,0x7a7,0x1f55,
+0x87d7,0x1f57,0x7a6,0x1f5b,0x7a7,0x1f5d,0x87d7,0x1f5f,0x7a6,0x3f62,0x7a7,0x3f64,0x7d7,0x3f66,0x87d8,0x1fa0,
+0x7a6,0x3f63,0x7a7,0x3f65,0x7d7,0x3f67,0x87d8,0x1fa1,0x7a6,0x3f6a,0x7a7,0x3f6c,0x7d7,0x3f6e,0x87d8,0x1fa8,
+0x7a6,0x3f6b,0x7a7,0x3f6d,0x7d7,0x3f6f,0x87d8,0x1fa9,0x87d8,0x1f82,0x87d8,0x1f83,0x87d8,0x1f84,0x87d8,0x1f85,
+0x87d8,0x1f86,0x87d8,0x1f87,0x87d8,0x1f8a,0x87d8,0x1f8b,0x87d8,0x1f8c,0x87d8,0x1f8d,0x87d8,0x1f8e,0x87d8,0x1f8f,
+0x87d8,0x1f92,0x87d8,0x1f93,0x87d8,0x1f94,0x87d8,0x1f95,0x87d8,0x1f96,0x87d8,0x1f97,0x87d8,0x1f9a,0x87d8,0x1f9b,
+0x87d8,0x1f9c,0x87d8,0x1f9d,0x87d8,0x1f9e,0x87d8,0x1f9f,0x87d8,0x1fa2,0x87d8,0x1fa3,0x87d8,0x1fa4,0x87d8,0x1fa5,
+0x87d8,0x1fa6,0x87d8,0x1fa7,0x87d8,0x1faa,0x87d8,0x1fab,0x87d8,0x1fac,0x87d8,0x1fad,0x87d8,0x1fae,0x87d8,0x1faf,
+0x87d8,0x1fb2,0x87d8,0x1fb4,0x87d8,0x1fb7,0x87d8,0x1fc2,0x87d8,0x1fc4,0x87d8,0x1fc7,0x7a6,0x1fcd,0x7a7,0x1fce,
+0x87d7,0x1fcf,0x7a6,0x1fdd,0x7a7,0x1fde,0x87d7,0x1fdf,0x7d5,0x1fe4,0x87d6,0x1fe5,0x87d6,0x1fec,0x87d8,0x1ff2,
+0x87d8,0x1ff4,0x87d8,0x1ff7,0x87d9,0x8000,0x219a,0x87d9,0x8000,0x219b,0x87d9,0x8000,0x21ae,0x87d9,0x8000,0x21cd,
+0x87d9,0x8000,0x21ce,0x87d9,0x8000,0x21cf,0x87d9,0x8000,0x2204,0x87d9,0x8000,0x2209,0x87d9,0x8000,0x220c,0x87d9,
+0x8000,0x2224,0x87d9,0x8000,0x2226,0x87d9,0x8000,0x2241,0x87d9,0x8000,0x2244,0x87d9,0x8000,0x2247,0x87d9,0x8000,
+0x2249,0x87d9,0x8000,0x2260,0x87d9,0x8000,0x2262,0x87d9,0x8000,0x226d,0x87d9,0x8000,0x226e,0x87d9,0x8000,0x226f,
+0x87d9,0x8000,0x2270,0x87d9,0x8000,0x2271,0x87d9,0x8000,0x2274,0x87d9,0x8000,0x2275,0x87d9,0x8000,0x2278,0x87d9,
+0x8000,0x2279,0x87d9,0x8000,0x2280,0x87d9,0x8000,0x2281,0x87d9,0x8000,0x2284,0x87d9,0x8000,0x2285,0x87d9,0x8000,
+0x2288,0x87d9,0x8000,0x2289,0x87d9,0x8000,0x22ac,0x87d9,0x8000,0x22ad,0x87d9,0x8000,0x22ae,0x87d9,0x8000,0x22af,
+0x87d9,0x8000,0x22e0,0x87d9,0x8000,0x22e1,0x87d9,0x8000,0x22e2,0x87d9,0x8000,0x22e3,0x87d9,0x8000,0x22ea,0x87d9,
+0x8000,0x22eb,0x87d9,0x8000,0x22ec,0x87d9,0x8000,0x22ed,0x87da,0x8000,0x304c,0x87da,0x8000,0x304e,0x87da,0x8000,
+0x3050,0x87da,0x8000,0x3052,0x87da,0x8000,0x3054,0x87da,0x8000,0x3056,0x87da,0x8000,0x3058,0x87da,0x8000,0x305a,
+0x87da,0x8000,0x305c,0x87da,0x8000,0x305e,0x87da,0x8000,0x3060,0x87da,0x8000,0x3062,0x87da,0x8000,0x3065,0x87da,
+0x8000,0x3067,0x87da,0x8000,0x3069,0x7da,0x8000,0x3070,0x87db,0x8000,0x3071,0x7da,0x8000,0x3073,0x87db,0x8000,
+0x3074,0x7da,0x8000,0x3076,0x87db,0x8000,0x3077,0x7da,0x8000,0x3079,0x87db,0x8000,0x307a,0x7da,0x8000,0x307c,
+0x87db,0x8000,0x307d,0x87da,0x8000,0x3094,0x87da,0x8000,0x309e,0x87da,0x8000,0x30ac,0x87da,0x8000,0x30ae,0x87da,
+0x8000,0x30b0,0x87da,0x8000,0x30b2,0x87da,0x8000,0x30b4,0x87da,0x8000,0x30b6,0x87da,0x8000,0x30b8,0x87da,0x8000,
+0x30ba,0x87da,0x8000,0x30bc,0x87da,0x8000,0x30be,0x87da,0x8000,0x30c0,0x87da,0x8000,0x30c2,0x87da,0x8000,0x30c5,
+0x87da,0x8000,0x30c7,0x87da,0x8000,0x30c9,0x7da,0x8000,0x30d0,0x87db,0x8000,0x30d1,0x7da,0x8000,0x30d3,0x87db,
+0x8000,0x30d4,0x7da,0x8000,0x30d6,0x87db,0x8000,0x30d7,0x7da,0x8000,0x30d9,0x87db,0x8000,0x30da,0x7da,0x8000,
+0x30dc,0x87db,0x8000,0x30dd,0x87da,0x8000,0x30f4,0x87da,0x8000,0x30f7,0x87da,0x8000,0x30f8,0x87da,0x8000,0x30f9,
+0x87da,0x8000,0x30fa,0x87da,0x8000,0x30fe,0x1234
};
-static const uint16_t fcdTrie_index[5360]={
+static const uint16_t fcdTrie_index[5496]={
0x218,0x218,0x218,0x218,0x218,0x218,0x2d5,0x2dd,0x2e5,0x2ed,0x2f5,0x2fc,0x218,0x304,0x309,0x311,
-0x317,0x31f,0x218,0x218,0x218,0x218,0x218,0x218,0x448,0x450,0x234,0x220,0x23c,0x325,0x226,0x218,
-0x32d,0x334,0x33b,0x343,0x49d,0x218,0x34b,0x351,0x218,0x218,0x218,0x218,0x468,0x4a5,0x4ad,0x218,
-0x4b1,0x359,0x458,0x470,0x218,0x218,0x361,0x4b9,0x4bd,0x4c2,0x4ca,0x218,0x218,0x218,0x218,0x218,
-0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x369,0x241,0x218,0x218,0x460,0x249,0x218,
-0x218,0x251,0x259,0x218,0x218,0x460,0x371,0x218,0x218,0x460,0x261,0x218,0x218,0x218,0x371,0x218,
-0x218,0x218,0x377,0x218,0x218,0x460,0x371,0x218,0x218,0x218,0x371,0x218,0x218,0x218,0x37d,0x218,
-0x218,0x475,0x4d0,0x218,0x218,0x47c,0x483,0x218,0x486,0x4d3,0x218,0x269,0x271,0x218,0x4da,0x218,
+0x317,0x31f,0x218,0x218,0x218,0x218,0x218,0x218,0x456,0x45e,0x234,0x220,0x23c,0x325,0x226,0x218,
+0x32d,0x334,0x33b,0x343,0x4ab,0x218,0x34b,0x351,0x218,0x218,0x218,0x218,0x476,0x4b3,0x4bb,0x218,
+0x4bf,0x359,0x466,0x47e,0x218,0x218,0x361,0x4c7,0x4cb,0x4d0,0x4d8,0x218,0x218,0x218,0x218,0x4de,
+0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x369,0x241,0x218,0x218,0x46e,0x249,0x218,
+0x218,0x251,0x259,0x218,0x218,0x46e,0x371,0x218,0x218,0x46e,0x261,0x218,0x218,0x218,0x371,0x218,
+0x218,0x218,0x377,0x218,0x218,0x46e,0x371,0x218,0x218,0x218,0x371,0x218,0x218,0x218,0x37d,0x218,
+0x218,0x483,0x4e4,0x218,0x218,0x48a,0x491,0x218,0x494,0x4e7,0x218,0x269,0x271,0x218,0x4ee,0x218,
0x218,0x385,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x496,0x218,0x218,0x218,0x218,0x218,
+0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x4a4,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x4dd,0x4dd,0x218,0x218,0x218,0x218,0x4e3,0x218,
-0x218,0x218,0x218,0x218,0x218,0x4eb,0x218,0x218,0x218,0x4ee,0x218,0x218,0x218,0x218,0x218,0x218,
-0x4f5,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x4fd,0x218,
-0x38d,0x394,0x39c,0x3a3,0x3ab,0x3b3,0x3ba,0x3c2,0x3ca,0x3d2,0x3d9,0x279,0x3e1,0x281,0x289,0x291,
-0x218,0x218,0x218,0x218,0x218,0x218,0x501,0x509,0x218,0x22c,0x218,0x218,0x3e9,0x3f0,0x3f5,0x218,
-0x3fc,0x403,0x40b,0x413,0x417,0x41c,0x218,0x424,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x4f1,0x4f1,0x218,0x218,0x218,0x218,0x4f7,0x218,
+0x218,0x218,0x218,0x218,0x218,0x4ff,0x218,0x218,0x218,0x502,0x218,0x218,0x218,0x218,0x218,0x218,
+0x509,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x38c,0x393,0x510,0x218,0x218,0x218,0x218,
+0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x518,0x51b,
+0x39b,0x3a2,0x3aa,0x3b1,0x3b9,0x3c1,0x3c8,0x3d0,0x3d8,0x3e0,0x3e7,0x279,0x3ef,0x281,0x289,0x291,
+0x218,0x218,0x218,0x218,0x218,0x218,0x523,0x52b,0x218,0x22c,0x218,0x218,0x3f7,0x3fe,0x403,0x218,
+0x40a,0x411,0x419,0x421,0x425,0x42a,0x218,0x432,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x299,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x48d,0x429,0x430,0x438,0x429,0x430,0x440,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x218,0x49b,0x437,0x43e,0x446,0x437,0x43e,0x44e,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
@@ -1943,7 +1959,7 @@ static const uint16_t fcdTrie_index[5360]={
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x510,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x532,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
@@ -1967,7 +1983,7 @@ static const uint16_t fcdTrie_index[5360]={
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x531,0x534,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x553,0x556,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
@@ -1986,13 +2002,13 @@ static const uint16_t fcdTrie_index[5360]={
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x2a1,0x2a9,0x2b1,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x495,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x218,0x4a3,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x515,0x519,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
-0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x2b5,0x2bd,0x521,0x2c5,0x2cd,0x218,
-0x218,0x218,0x529,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x537,0x53b,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
+0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x2b5,0x2bd,0x543,0x2c5,0x2cd,0x218,
+0x218,0x218,0x54b,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,0x218,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0xeaea,0xeaea,0xe9e9,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
@@ -2086,87 +2102,92 @@ static const uint16_t fcdTrie_index[5360]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,
0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0x707,0,0x909,0,0,
-0,0,0,0,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,
-0xdc,0xdc,0xdc,0xdc,0xca,0xca,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,
-0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xca,0xca,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,
-0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,
-0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,
-0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,
-0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0,0xe6,0,0,0,0,0xdc,0xdc,0xe6,0xe6,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x707,0,0,0,0,0,0,0,0,0,0,0,
+0x909,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xdc,0xdc,0xe6,0xe6,
+0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xca,0xca,0xdc,0xdc,
+0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,
+0xca,0xca,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,
+0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,
+0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0,0xe6,
+0,0,0,0,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,
0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xdc,0xdc,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,
-0xe6,0xe6,0,0,0,0,0,0,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xdc,0xdc,0xe6,0xe6,0xdc,0xdc,0xe6,0xe6,0xe6,0xe6,0,0,0,0,0,0,
0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,
-0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0xe6,0,0xe6,
-0,0xe6,0,0xe6,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,0xe6,0xe6,0,0,0xe6,0xe6,0xe6,0xe6,
+0xe6,0xe6,0xe6,0xe6,0,0xe6,0,0xe6,0,0xe6,0,0xe6,0xf0,0xf0,0xf0,0xf0,
0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,
-0xf0,0xf0,0xf0,0xf0,0,0,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,1,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,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,1,0,0,
-1,0,0,1,0,1,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,
-0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,
-1,1,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,1,1,1,1,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,
-8,0,8,0,0,8,0,8,0,8,0,0,0,0,0,0,
-8,8,0,8,8,0,8,8,0,8,8,0,8,8,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,0x808,0x808,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,8,0,0,8,8,8,8,0,0,0,8,0,
-0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
-0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe8e8,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xe8e8,0xd8d8,0xdcdc,0xdcdc,0xdcdc,0xdcdc,
-0xdcdc,0xcaca,0xcaca,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xcaca,0xcaca,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,
-0xdcdc,0xdcdc,0xdcdc,0xdcdc,0x101,0x101,0x101,0x101,0x101,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xe6e6,0xe6e6,0xe6e6,
-0,0,0,0,0,0,0,0,0,0,0,0x1b1b,0x1c1c,0x1d1d,0x1e1e,0x1f1f,
-0x2020,0x2121,0x2222,0xe6e6,0xe6e6,0xdcdc,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x707,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xdede,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x2323,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x6767,0x6767,0x909,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x7676,0x7676,0,0,0,0,0,0,
-0,0,0,0,0x7a7a,0x7a7a,0x7a7a,0x7a7a,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xdcdc,0xdcdc,0,0,0,0,0,0,0,0,0,0,0,0,0xdada,0xe4e4,
-0xe8e8,0xdede,0xe0e0,0xe0e0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0xe6e6,
-0xe6e6,0xdede,0xe4e4,0xe6e6,0xa0a,0xb0b,0xc0c,0xd0d,0xe0e,0xf0f,0x1010,0x1111,0x1212,0x1313,0,0x1414,
-0x1515,0x1616,0,0x1717,0,0x1818,0x1919,0,0xe6e6,0xdcdc,0,0x1212,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0,0,0xe6e6,0xe6e6,0,0xdcdc,0xe6e6,
-0xe6e6,0xdcdc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x2424,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xdcdc,
-0xdcdc,0xdcdc,0xe6e6,0xdcdc,0xdcdc,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xdcdc,0xe6e6,0xdcdc,0xe6e6,
-0xdcdc,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0,0,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,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,
+0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,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,1,0,0,1,0,0,1,0,1,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,0,0,0,0,0,0,0,0,
+0,1,1,1,1,1,0,0,1,1,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,1,1,1,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,
+0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,
+8,0,8,0,8,0,8,0,8,0,8,0,0,8,0,8,
+0,8,0,0,0,0,0,0,8,8,0,8,8,0,8,8,
+0,8,8,0,8,8,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,0x808,0x808,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,8,0,0,8,
+8,8,8,0,0,0,8,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
+0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe8e8,0xdcdc,0xdcdc,
+0xdcdc,0xdcdc,0xe8e8,0xd8d8,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xcaca,0xcaca,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xcaca,
+0xcaca,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0x101,0x101,0x101,0x101,
+0x101,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,
+0,0,0,0x1b1b,0x1c1c,0x1d1d,0x1e1e,0x1f1f,0x2020,0x2121,0x2222,0xe6e6,0xe6e6,0xdcdc,0xdcdc,0xe6e6,
+0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x707,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,
+0xe6e6,0xe6e6,0xdede,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x2323,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x6767,0x6767,0x909,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0x7676,0x7676,0,0,0,0,0,0,0,0,0,0,0x7a7a,0x7a7a,0x7a7a,0x7a7a,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0xdcdc,0xdcdc,0,0,0,0,0,0,
+0,0,0,0,0,0,0xdada,0xe4e4,0xe8e8,0xdede,0xe0e0,0xe0e0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,
+0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,0xdcdc,0xdcdc,
+0xdcdc,0xdcdc,0xdcdc,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xdede,0xe4e4,0xe6e6,0xa0a,0xb0b,0xc0c,0xd0d,
+0xe0e,0xf0f,0x1010,0x1111,0x1212,0x1313,0x1313,0x1414,0x1515,0x1616,0,0x1717,0,0x1818,0x1919,0,
+0xe6e6,0xdcdc,0,0x1212,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,
+0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0xdcdc,
+0xe6e6,0,0,0xe6e6,0xe6e6,0,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x2424,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xdcdc,0xdcdc,0xdcdc,0xe6e6,0xdcdc,0xdcdc,0xe6e6,0xdcdc,0xe6e6,
+0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xdcdc,0xe6e6,0xdcdc,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0,0,0,0,
0,0,0,0,0,0,0,0,0x6b6b,0x6b6b,0x6b6b,0x6b6b,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xdcdc,0,0xdcdc,0,0xd8d8,0,0,0,0,0,0,0,0,0xdcdc,0,
@@ -2178,22 +2199,26 @@ static const uint16_t fcdTrie_index[5360]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0xdede,0xe6e6,0xdcdc,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xdcdc,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0xdcdc,0xe6e6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xe6e6,0xe6e6,0x101,0x101,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0x101,0x101,0x101,0xe6e6,
-0xe6e6,0,0,0,0,0xe6e6,0,0,0,0x101,0x101,0xe6e6,0xdcdc,0xe6e6,0x101,0x101,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x909,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xdcdc,0,0xe6e6,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0x101,0xdcdc,0,
-0,0,0,0x909,0xdcdc,0xdcdc,0xdcdc,0,0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xdcdc,
+0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xe6e6,
+0xe6e6,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,0,0,0,0,0,
+0xe6e6,0xe6e6,0xdcdc,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0xe6e6,0xdcdc,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,0x101,0x101,
+0xe6e6,0xe6e6,0xe6e6,0xe6e6,0x101,0x101,0x101,0xe6e6,0xe6e6,0,0,0,0,0xe6e6,0,0,
+0,0x101,0x101,0xe6e6,0xdcdc,0xe6e6,0x101,0x101,0xdcdc,0xdcdc,0xdcdc,0xdcdc,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x909,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xe6e6,0xe6e6,0xe6e6,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0xdcdc,0,0xe6e6,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x820,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0xe6e6,0x101,0xdcdc,0,0,0,0,0x909,0xdcdc,0xdcdc,0xdcdc,0,
+0,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xe6e6,0xdcdc,0xdcdc,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xe6e6,0xe6e6,
+0xe6e6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x820,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x840,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0x840,0,0,0,
+0,0,0,0,0,0,0,0
};
static const UTrie fcdTrie={
@@ -2201,37 +2226,37 @@ static const UTrie fcdTrie={
NULL,
utrie_defaultGetFoldingOffset,
2144,
- 3216,
+ 3352,
0,
FALSE
};
-static const uint16_t auxTrie_index[5624]={
-0x228,0x228,0x228,0x228,0x228,0x228,0x3e3,0x3eb,0x3f3,0x3fb,0x403,0x40b,0x228,0x228,0x413,0x41b,
-0x423,0x42b,0x228,0x228,0x228,0x228,0x228,0x228,0x4a9,0x4a9,0x30e,0x230,0x316,0x228,0x238,0x23e,
-0x228,0x228,0x228,0x228,0x4fe,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x4d7,0x506,0x50e,0x228,
-0x512,0x433,0x4b1,0x441,0x228,0x228,0x436,0x51a,0x51e,0x22c,0x4b6,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x43e,0x31b,0x228,0x228,0x4b9,0x323,0x228,
-0x228,0x32b,0x333,0x228,0x228,0x43e,0x51f,0x228,0x228,0x4b9,0x33b,0x228,0x228,0x4c1,0x446,0x228,
-0x228,0x228,0x44c,0x228,0x228,0x43e,0x454,0x228,0x228,0x4c1,0x446,0x228,0x228,0x228,0x45a,0x228,
-0x228,0x4df,0x4ed,0x228,0x228,0x4e6,0x4ed,0x228,0x4e6,0x523,0x343,0x34b,0x353,0x35b,0x52a,0x228,
-0x228,0x462,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x4c9,0x228,0x4cf,0x4b8,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x4f7,0x228,0x228,0x228,0x228,0x228,
+static const uint16_t auxTrie_index[5748]={
+0x228,0x228,0x228,0x228,0x228,0x228,0x3ea,0x3f2,0x3fa,0x402,0x40a,0x412,0x228,0x228,0x41a,0x422,
+0x42a,0x432,0x228,0x228,0x228,0x228,0x228,0x228,0x4be,0x4be,0x315,0x230,0x31d,0x228,0x238,0x23e,
+0x228,0x228,0x228,0x228,0x513,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x4ec,0x51b,0x523,0x228,
+0x527,0x43a,0x4c6,0x448,0x228,0x228,0x43d,0x52f,0x533,0x22c,0x4cb,0x228,0x228,0x228,0x228,0x539,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x445,0x322,0x228,0x228,0x4ce,0x32a,0x228,
+0x228,0x332,0x33a,0x228,0x228,0x445,0x53e,0x228,0x228,0x4ce,0x342,0x228,0x228,0x4d6,0x44d,0x228,
+0x228,0x228,0x453,0x228,0x228,0x445,0x45b,0x228,0x228,0x4d6,0x44d,0x228,0x228,0x228,0x461,0x228,
+0x228,0x4f4,0x502,0x228,0x228,0x4fb,0x502,0x228,0x4fb,0x542,0x34a,0x352,0x35a,0x362,0x549,0x228,
+0x228,0x469,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x4de,0x228,0x4e4,0x4cd,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x50c,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x440,0x440,0x228,0x228,0x228,0x228,0x52e,0x228,
-0x228,0x228,0x228,0x228,0x228,0x520,0x228,0x228,0x228,0x536,0x228,0x228,0x228,0x228,0x228,0x228,
-0x53d,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x245,0x24d,0x228,0x228,0x228,0x4f6,0x228,
-0x46a,0x472,0x477,0x47d,0x485,0x48d,0x490,0x494,0x228,0x228,0x228,0x362,0x49a,0x36a,0x372,0x378,
-0x380,0x228,0x228,0x228,0x228,0x253,0x544,0x54c,0x25b,0x263,0x26b,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x386,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x447,0x447,0x228,0x228,0x228,0x228,0x54d,0x228,
+0x228,0x228,0x228,0x228,0x228,0x53f,0x228,0x228,0x228,0x555,0x228,0x228,0x228,0x228,0x228,0x228,
+0x55c,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x470,0x477,0x539,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x245,0x24d,0x228,0x228,0x228,0x4cb,0x43b,
+0x47f,0x487,0x48c,0x492,0x49a,0x4a2,0x4a5,0x4a9,0x228,0x228,0x228,0x369,0x4af,0x371,0x379,0x37f,
+0x387,0x228,0x228,0x228,0x228,0x253,0x563,0x56b,0x25b,0x263,0x26b,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x38d,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x389,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x390,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x4f3,0x228,0x228,0x4a1,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x508,0x228,0x228,0x4b6,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x26f,0x228,0x228,0x228,0x274,0x228,0x228,0x228,0x228,0x278,0x280,0x286,0x28e,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
@@ -2291,7 +2316,7 @@ static const uint16_t auxTrie_index[5624]={
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x52a,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x549,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
@@ -2315,7 +2340,7 @@ static const uint16_t auxTrie_index[5624]={
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x56d,0x570,0x228,0x576,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x58c,0x58f,0x228,0x595,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
@@ -2331,20 +2356,20 @@ static const uint16_t auxTrie_index[5624]={
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,
-0x396,0x39e,0x391,0x3a4,0x391,0x391,0x3a8,0x228,0x3af,0x3b7,0x3bf,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,
+0x39d,0x3a5,0x398,0x3ab,0x398,0x398,0x3af,0x228,0x3b6,0x3be,0x3c6,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x4f6,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x50b,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x551,0x555,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
-0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x3c3,0x3cb,0x55d,0x3d3,0x3db,0x228,
-0x228,0x228,0x565,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x570,0x574,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x3ca,0x3d2,0x57c,0x3da,0x3e2,0x228,
+0x228,0x228,0x584,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0x296,0x29d,0x299,0x2a0,0x2a8,0x2b0,0x29e,0x29a,0x2b7,0x2bf,0x2c7,0x29f,0x2a7,0x296,0x29d,0x299,
-0x2a0,0x2cf,0x297,0x29e,0x29a,0x2d7,0x2df,0x2e7,0x2ee,0x2f6,0x2e2,0x2fe,0x2f1,0x306,0x228,0x228,
-0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,0x391,
-0x392,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
+0x2a0,0x2cf,0x297,0x29e,0x29a,0x2d7,0x2df,0x2e7,0x2ee,0x2f6,0x2e2,0x2fe,0x2f1,0x306,0x30d,0x228,
+0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,
+0x399,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
@@ -2402,163 +2427,171 @@ static const uint16_t auxTrie_index[5624]={
0xb,0x132,5,0x134,0x136,0x138,0xe0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0x130,0x124,0xb,0x132,5,0x134,0x136,0x138,
0xe0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xb,0,0,0,0,0xc00,0xc00,0x800,0xc00,0xc00,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0x400,
+0,0,0,0xb,0,0,0,0,0,0,0,0,0,0,0x139,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x800,0,0,0,0x800,0x800,0x800,
-0x800,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
-0,0,0,0x800,0,0,0,0,0x400,0x400,0,0x400,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x400,
-0,0,0x400,0,0,0,0,0,0x800,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
-0,0,0,0,0,0x400,0x400,0x400,0,0,0x400,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
-0,0,0x800,0x800,0,0,0,0,0x400,0x400,0,0,0,0,0,0x400,
-0,0,0,0,0,0,0,0,0,0x400,0,0,0,0,0x400,0,
-0,0,0,0x400,0,0,0,0,0x400,0,0,0,0,0,0,0,
-0,0,0,0,0,0x400,0,0,0,0,0,0,0,0x800,0x800,0x400,
-0x800,0x400,0x400,0,0x400,0,0x800,0x800,0x800,0x800,0,0,0x800,0x400,0x800,0x800,
-0x800,0,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0x400,
-0,0,0,0,0,0,0,0,0,0x400,0,0,0,0,0x400,0,
-0,0,0,0x400,0,0,0,0,0x400,0,0,0,0,0,0,0,
-0,0x800,0,0x800,0,0x400,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x400,0,0x400,0,0x400,0,0x400,
-0,0x400,0,0x400,0,0x400,0,0,0x1000,0x1000,0,0,0,0,0,0,
-0x1000,0x1000,0,0,0,0,0,0,0,0,0,0x1000,0,0,0,0,
-0,0,0,0x400,0x1000,0,0x400,0,0,0,0,0x1000,0,0,0,0,
-0,0x400,0,0x400,0x1000,0,0,0,0,0,0,0x400,0,0,0,0,
-0,0,0,0x400,0,0,0,0,0,0,0,0x400,0,0,0x400,0x400,
-0,0,0,0x1000,0,0,0,0,0,0x400,0,0x400,0x1000,0x400,0,0,
-0x400,0x400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x400,0x400,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x400,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
+0,0,0,0,0xc00,0xc00,0x800,0xc00,0xc00,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0x400,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x800,0,0,0,0x800,0x800,0x800,0x800,0,0,0,
+0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0x800,
+0,0,0,0,0x400,0x400,0,0x400,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0x400,0,0,0x400,0,
+0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,
+0,0x400,0x400,0x400,0,0,0x400,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0x800,0x800,
+0,0,0,0,0x400,0x400,0,0,0,0,0,0x400,0,0,0,0,
+0,0,0,0,0,0x400,0,0,0,0,0x400,0,0,0,0,0x400,
+0,0,0,0,0x400,0,0,0,0,0,0,0,0,0,0,0,
+0,0x400,0,0,0,0,0,0,0,0x800,0x800,0x400,0x800,0x400,0x400,0,
+0x400,0,0x800,0x800,0x800,0x800,0,0,0x800,0x400,0x800,0x800,0x800,0,0x800,0x800,
+0,0,0,0,0,0,0,0,0,0,0,0x400,0,0,0,0,
+0,0,0,0,0,0x400,0,0,0,0,0x400,0,0,0,0,0x400,
+0,0,0,0,0x400,0,0,0,0,0,0,0,0,0x800,0,0x800,
+0,0x400,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x400,0,0x400,0,0x400,0,0x400,0,0x400,0,0x400,
+0,0x400,0,0,0x1000,0x1000,0,0,0,0,0,0,0x1000,0x1000,0,0,
+0,0,0,0,0,0,0,0x1000,0,0,0,0,0,0,0,0x400,
+0x1000,0,0x400,0,0,0,0,0x1000,0,0,0,0,0,0x400,0,0x400,
+0x1000,0,0,0,0,0,0,0x400,0,0,0,0,0,0,0,0x400,
+0,0,0,0,0,0,0,0x400,0,0,0x400,0x400,0,0,0,0x1000,
+0,0,0,0,0,0x400,0,0x400,0x1000,0x400,0,0,0x400,0x400,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x400,0x400,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x400,0,0,0,
+0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
-0x400,0x400,0x400,0x400,0x400,0x400,0,0,0x400,0,0x400,0,0,0x400,0x400,0x400,
-0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0x400,0,0x400,0,0,0x400,0x400,0,
-0,0,0x400,0x400,0x400,0x400,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
-0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,
+0x400,0x400,0,0,0x400,0,0x400,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
+0x400,0x400,0x400,0,0x400,0,0x400,0,0,0x400,0x400,0,0,0,0x400,0x400,
+0x400,0x400,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
+0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0x400,0x400,0x400,0x400,
0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
-0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x400,0x800,0x400,0,0,0,0,
-0,0,0,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,
-0x400,0x400,0x400,0,0x400,0x400,0x400,0x400,0x400,0,0x400,0,0x400,0x400,0,0x400,
-0x400,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,
-0x400,0x800,0x800,0x800,0x800,0x800,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0,
-0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
-0,0,0,0,0,0,0x800,0x800,0x800,0x800,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1000,0x1000,0,0x1000,
-0,0,0,0,0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,
-0,0,0,0,0,0x1000,0x1000,0x1000,0,0x1000,0,0,0x1000,0x1000,0,0x1000,
-0,0,0,0,0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,
-0,0,0,0,0,0x1000,0x1000,0x1000,0,0x1000,0,0x1000,0x1000,0x1000,0,0,
-0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,
-0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,
-0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0,0,0,
-0,0,0,0,0,0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,0x1000,
-0x1000,0,0,0x1000,0x1000,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,
-0x1000,0x1000,0,0,0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,0,0,
-0x1000,0x1000,0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,
-0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,
-0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0,0,0,0,0,0,
-0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,
+0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x400,0x800,0x400,0,0,0,0,0,0,0,0,
+0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,
+0x400,0x400,0x400,0x400,0x400,0,0x400,0,0x400,0x400,0,0x400,0x400,0,0x400,0x400,
+0x400,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0x400,0x800,0x800,0x800,
+0x800,0x800,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,
+0,0,0,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,
+0,0,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x400,0x400,0x400,0x400,0x400,0x400,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0x1000,0x1000,0,0x1000,0,0,0,0,
+0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0,0,0,0,
+0,0x1000,0x1000,0x1000,0,0x1000,0,0,0x1000,0x1000,0,0x1000,0,0,0,0,
+0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0,0,0,0,
+0,0x1000,0x1000,0x1000,0,0x1000,0,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,
+0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0,0,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0,0,0,0,0,0,0,
+0,0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0,0,0x1000,
+0x1000,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0,0,
+0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,0,0,0x1000,0x1000,0,0,
+0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,
+0x1000,0x1000,0,0,0,0,0,0,0,0,0,0,0x1000,0x1000,0,0,
+0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,
-0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0,0,0,0,0,0,0,0,
+0,0,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x1000,0x1000,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0,0,0x800,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0x800,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0,0,
-0,0,0,0,0,0x800,0x800,0,0,0,0,0,0,0,0,0,
-0,0,0x800,0,0,0,0,0,0,0,0,0,0,0x800,0,0,
-0,0,0,0,0,0x800,0x800,0,0,0,0,0,0,0,0,0,
-0,0,0x800,0,0,0,0,0x800,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0x800,
-0,0x800,0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,
-0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,
-0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0,0,0,0,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0x800,0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
+0,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0x800,0,
+0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
+0,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0x800,0,
+0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x800,0,0,0,0,0,0,0,0,0x800,0,0x800,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0x800,0x800,0,0,0,0,0,0,0,0,0,0,
+0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,
+0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,
0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0,0,
-0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,
-0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0x1000,0x1000,
+0x1000,0x1000,0,0,0,0,0,0,0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
-0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0,0,0,0,0,0,
-0x1000,0x1000,0,0,0,0,0,0,0x1000,0x1000,0,0,0,0,0,0,
-0x1000,0x1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0,
-0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x800,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,
+0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0x1000,0,0,0x1000,0x1000,0x1000,0x1000,0,0,
+0,0,0,0,0x1000,0x1000,0,0,0,0,0,0,0x1000,0x1000,0,0,
+0,0,0,0,0x1000,0x1000,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x800,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,
-0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x800,0x800,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
+0,0x800,0x800,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,
+0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0,
+0,0,0,0,0x800,0,0x800,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0x800,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,
0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
-0x800,0x800,0,0x800,0x800,0x800,0,0x800,0,0x800,0x800,0,0x800,0x800,0,0x800,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0,0,
-0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0,0,0x800,
-0x800,0,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,0,
+0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x800,0,0x800,0,0x800,0,0,0,0,0,0,0,0,0x800,0,
+0,0,0,0,0,0,0,0,0x800,0x800,0x800,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,
+0,0,0,0,0x800,0x800,0,0,0,0,0,0,0,0,0,0,
+0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,
+0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0x800,0,0x800,0x800,0,
+0x800,0x800,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,
+0x800,0x800,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,
+0x800,0,0,0x800,0x800,0,0x800,0x800,0x800,0x800,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0,0,0,0,
0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0,0x800,
+0,0x800,0,0,0,0,0,0,0,0,0x800,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0,0,0,
+0,0,0,0,0,0,0x800,0,0,0,0,0,0,0,0,0,
+0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,
-0,0x800,0,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
+0,0,0,0,0,0,0,0x800,0x800,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0x800,
+0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,0x800,0,0,
+0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0x800,0,0x800,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x800,0,0x800,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x800,0x800,0x800,0,
-0,0,0,0x800,0x800,0x800,0x800,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,
+0,0,0,0,0,0,0,0,0x800,0x800,0x800,0,0,0,0,0x800,
+0x800,0x800,0x800,0,0,0x800,0x800,0x800,0x800,0x800,0x800,0x800,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x800,0x800,0x800,0,0,0,0,0,0,0,
+0,0,0x800,0x800,0x800,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x841,0,0,0,0,0,0,0,0,0,
+0,0,0x841,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xc42,0x43,0,0,0,0,0,0,0,0,0,0,
+0xc42,0x43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x444,0
+0,0,0x444,0
};
static const UTrie auxTrie={
@@ -2566,13 +2599,13 @@ static const UTrie auxTrie={
NULL,
getFoldingAuxOffset,
2208,
- 3416,
+ 3540,
0,
FALSE
};
-static const uint16_t canonStartSets[7702]={
-0x109b,0x898,0x153,0x1a86,0x1a9e,0x1e16,0,0,0,0,0,0,0,0,0,0,
+static const uint16_t canonStartSets[7724]={
+0x109b,0x8ae,0x153,0x1a9c,0x1ab4,0x1e2c,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0x32,0xc0,0xc6,0x100,0x101,0x102,0x103,0x104,0x105,0x1cd,0x1ce,0x1de,0x1df,0x1e0,0x1e1,0x1fa,
0x1fb,0x200,0x201,0x202,0x203,0x226,0x227,0x1e00,0x1e01,0x1ea0,0x1ea1,0x1ea2,0x1ea3,0x1ea4,0x1ea5,0x1ea6,
@@ -2864,195 +2897,196 @@ static const uint16_t canonStartSets[7702]={
0xf5c,0xf71,0x4508,0xf90,0xfb9,0xf92,0xf93,0xf9c,0xf9d,0xfa1,0xfa2,0xfa6,0xfa7,0xfab,0xfac,0xfb2,
0xf76,0xfb3,0xf78,0x1025,0x1026,0x1100,0x450f,0x1101,0x4512,0x1102,0x4515,0x1103,0x4518,0x1104,0x451b,0x1105,
0x451e,0x1106,0x4521,0x1107,0x4524,0x1108,0x4527,0x1109,0x452a,0x110a,0x452d,0x110b,0x4530,0x110c,0x4533,0x110d,
-0x4536,0x110e,0x4539,0x110f,0x453c,0x1110,0x453f,0x1111,0x4542,0x1112,0x4545,0x1fbf,0x4548,0x1ffe,0x454b,0x2002,
-0x2000,0x2003,0x2001,0x2190,0x219a,0x2192,0x219b,0x2194,0x21ae,0x21d0,0x21cd,0x21d2,0x21cf,0x21d4,0x21ce,0x2203,
-0x2204,0x2208,0x2209,0x220b,0x220c,0x2223,0x2224,0x2225,0x2226,0x223c,0x2241,0x2243,0x2244,0x2245,0x2247,0x2248,
-0x2249,0x224d,0x226d,0x2261,0x2262,0x2264,0x2270,0x2265,0x2271,0x2272,0x2274,0x2273,0x2275,0x2276,0x2278,0x2277,
-0x2279,0x227a,0x2280,0x227b,0x2281,0x227c,0x22e0,0x227d,0x22e1,0x2282,0x2284,0x2283,0x2285,0x2286,0x2288,0x2287,
-0x2289,0x2291,0x22e2,0x2292,0x22e3,0x22a2,0x22ac,0x22a8,0x22ad,0x22a9,0x22ae,0x22ab,0x22af,0x22b2,0x22ea,0x22b3,
-0x22eb,0x22b4,0x22ec,0x22b5,0x22ed,0x2add,0x2adc,0x3008,0x2329,0x3009,0x232a,0x3046,0x3094,0x304b,0x304c,0x304d,
-0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,
-0x305e,0x305f,0x3060,0x3061,0x3062,0x3064,0x3065,0x3066,0x3067,0x3068,0x3069,0x306f,0x454e,0x3072,0x4551,0x3075,
-0x4554,0x3078,0x4557,0x307b,0x455a,0x309d,0x309e,0x30a6,0x30f4,0x30ab,0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,
-0x30b2,0x30b3,0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,
-0x30c2,0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30cf,0x455d,0x30d2,0x4560,0x30d5,0x4563,0x30d8,0x4566,0x30db,
-0x4569,0x30ef,0x30f7,0x30f0,0x30f8,0x30f1,0x30f9,0x30f2,0x30fa,0x30fd,0x30fe,0x349e,0x456c,0x34b9,0x4572,0x34bb,
-0x4578,0x34df,0x457e,0x3515,0x4584,0x36ee,0x458a,0x36fc,0x4590,0x3781,0x4596,0x382f,0x459c,0x3862,0x45a2,0x387c,
-0x45a8,0x38c7,0x45ae,0x38e3,0x45b4,0x391c,0x45ba,0x393a,0x45c0,0x3a2e,0x45c6,0x3a6c,0x45cc,0x3ae4,0x45d2,0x3b08,
-0x45d8,0x3b19,0x45de,0x3b49,0x45e4,0x3b9d,0x45ea,0x3c18,0x45f2,0x3c4e,0x45f8,0x3d33,0x45fe,0x3d96,0x4604,0x3eac,
-0x460a,0x3eb8,0x4610,0x3f1b,0x4616,0x3ffc,0x461c,0x4008,0x4622,0x4018,0xfad3,0x4039,0x4628,0x4046,0x4630,0x4096,
-0x4636,0x40e3,0x463c,0x412f,0x4642,0x4202,0x4648,0x4227,0x464e,0x42a0,0x4654,0x4301,0x465a,0x4334,0x4660,0x4359,
-0x4666,0x43d5,0x466c,0x43d9,0x4672,0x440b,0x4678,0x446b,0x467e,0x452b,0x4684,0x455d,0x468a,0x4561,0x4690,0x456b,
-0x4696,0x45d7,0x469c,0x45f9,0x46a2,0x4635,0x46a8,0x46be,0x46ae,0x46c7,0x46b4,0x4995,0x46ba,0x49e6,0x46c0,0x4a6e,
-0x46c6,0x4a76,0x46cc,0x4ab2,0x46d2,0x4b33,0x46d8,0x4bce,0x46de,0x4cce,0x46e4,0x4ced,0x46ea,0x4cf8,0x46f0,0x4d56,
-0x46f6,0x4e0d,0xf967,0x4e26,0xfa70,0x4e32,0xf905,0x4e38,0x46fc,0x4e39,0xf95e,0x4e3d,0x4702,0x4e41,0x4708,0x4e82,
-0xf91b,0x4e86,0xf9ba,0x4eae,0xf977,0x4ec0,0xf9fd,0x4ecc,0x470e,0x4ee4,0xf9a8,0x4f60,0x4714,0x4f80,0xfa73,0x4f86,
-0xf92d,0x4f8b,0xf9b5,0x4fae,0x471a,0x4fbb,0x4722,0x4fbf,0xf965,0x5002,0x4728,0x502b,0xf9d4,0x507a,0x472e,0x5099,
-0x4734,0x50cf,0x473a,0x50da,0xf9bb,0x50e7,0x4740,0x5140,0xfa0c,0x5145,0xfa74,0x514d,0x4748,0x5154,0x4750,0x5164,
-0x4756,0x5167,0x475c,0x5168,0xfa72,0x5169,0xf978,0x516d,0xf9d1,0x5177,0x4762,0x5180,0xfa75,0x518d,0x4768,0x5192,
-0x476e,0x5195,0x4774,0x5197,0x477a,0x51a4,0x4780,0x51ac,0x4786,0x51b5,0x478c,0x51b7,0xf92e,0x51c9,0xf979,0x51cc,
-0xf955,0x51dc,0xf954,0x51de,0xfa15,0x51f5,0x4794,0x5203,0x479a,0x5207,0x47a0,0x5217,0xf99c,0x5229,0xf9dd,0x523a,
-0xf9ff,0x523b,0x47a8,0x5246,0x47ae,0x5272,0x47b4,0x5277,0x47ba,0x5289,0xf9c7,0x529b,0xf98a,0x52a3,0xf99d,0x52b3,
-0x47c0,0x52c7,0x47c6,0x52c9,0x47ce,0x52d2,0xf952,0x52de,0xf92f,0x52e4,0x47d6,0x52f5,0xf97f,0x52fa,0x47de,0x5305,
-0x47e6,0x5306,0x47ec,0x5317,0x47f2,0x533f,0xf9eb,0x5349,0x47fa,0x5351,0x4800,0x535a,0x4808,0x5373,0x480e,0x5375,
-0xf91c,0x537d,0x4814,0x537f,0x481a,0x53c3,0xf96b,0x53ca,0x4820,0x53df,0x4826,0x53e5,0xf906,0x53eb,0x482c,0x53f1,
-0x4832,0x5406,0x4838,0x540f,0xf9de,0x541d,0xf9ed,0x5438,0x483e,0x5442,0xf980,0x5448,0x4844,0x5468,0x484a,0x549e,
-0x4850,0x54a2,0x4856,0x54bd,0xf99e,0x54f6,0x485c,0x5510,0x4862,0x5553,0x4868,0x5555,0xfa79,0x5563,0x486e,0x5584,
-0x4874,0x5587,0xf90b,0x5599,0x487a,0x559d,0x4882,0x55ab,0x4887,0x55b3,0x488d,0x55c0,0xfa0d,0x55c2,0x4893,0x55e2,
-0xfa7b,0x5606,0x4899,0x5651,0x48a1,0x5668,0xfa38,0x5674,0x48a7,0x56f9,0xf9a9,0x5716,0x48ad,0x5717,0x48b3,0x578b,
-0x48b9,0x57ce,0x48bf,0x57f4,0x48c5,0x580d,0x48cb,0x5831,0x48d1,0x5832,0x48d7,0x5840,0xfa39,0x585a,0x48dd,0x585e,
-0xf96c,0x58a8,0xfa3a,0x58ac,0x48e2,0x58b3,0xfa7d,0x58d8,0xf94a,0x58df,0xf942,0x58ee,0x48e8,0x58f2,0x48ee,0x58f7,
-0x48f4,0x5906,0x48fa,0x591a,0x4900,0x5922,0x4906,0x5944,0xfa7e,0x5948,0xf90c,0x5951,0xf909,0x5954,0xfa7f,0x5962,
-0x490c,0x5973,0xf981,0x59d8,0x4912,0x59ec,0x4918,0x5a1b,0x491e,0x5a27,0x4924,0x5a62,0xfa80,0x5a66,0x492a,0x5ab5,
-0x4930,0x5b08,0x4936,0x5b28,0xfa81,0x5b3e,0x493c,0x5b85,0xfa04,0x5bc3,0x4942,0x5bd8,0x4948,0x5be7,0x494e,0x5bee,
-0xf9bc,0x5bf3,0x4958,0x5bff,0x495e,0x5c06,0x4964,0x5c22,0x496a,0x5c3f,0xf9bd,0x5c60,0x4970,0x5c62,0xf94b,0x5c64,
-0xfa3b,0x5c65,0xf9df,0x5c6e,0x4976,0x5c8d,0x497e,0x5cc0,0x4984,0x5d19,0xf9d5,0x5d43,0x498a,0x5d50,0xf921,0x5d6b,
-0x4990,0x5d6e,0x4996,0x5d7c,0x499c,0x5db2,0x49a2,0x5dba,0xf9ab,0x5de1,0x49a8,0x5de2,0x49ae,0x5dfd,0x49b4,0x5e28,
-0x49ba,0x5e3d,0x49c0,0x5e69,0x49c6,0x5e74,0xf98e,0x5ea6,0xfa01,0x5eb0,0x49cc,0x5eb3,0x49d2,0x5eb6,0x49d8,0x5ec9,
-0xf9a2,0x5eca,0x49de,0x5ed2,0xfa82,0x5ed3,0xfa0b,0x5ed9,0xfa83,0x5eec,0xf982,0x5efe,0x49e6,0x5f04,0xf943,0x5f22,
-0x49ec,0x5f53,0x49f2,0x5f62,0x49f8,0x5f69,0xfa84,0x5f6b,0x49fe,0x5f8b,0xf9d8,0x5f9a,0x4a04,0x5fa9,0xf966,0x5fad,
-0xfa85,0x5fcd,0x4a0a,0x5fd7,0x4a10,0x5ff5,0xf9a3,0x5ff9,0x4a16,0x6012,0xf960,0x601c,0xf9ac,0x6081,0x4a1c,0x6094,
-0x4a22,0x60c7,0x4a2a,0x60d8,0xfa86,0x60e1,0xf9b9,0x6108,0xfa88,0x6144,0xf9d9,0x6148,0x4a30,0x614c,0x4a36,0x614e,
-0x4a40,0x6160,0xfa8a,0x6168,0xfa3e,0x617a,0x4a48,0x618e,0x4a4e,0x6190,0xf98f,0x61a4,0x4a58,0x61af,0x4a5e,0x61b2,
-0x4a64,0x61de,0x4a6a,0x61f2,0x4a70,0x61f6,0x4a7a,0x6200,0xf990,0x6210,0x4a82,0x621b,0x4a88,0x622e,0xf9d2,0x6234,
-0xfa8c,0x625d,0x4a8e,0x62b1,0x4a94,0x62c9,0xf925,0x62cf,0xf95b,0x62d3,0xfa02,0x62d4,0x4a9a,0x62fc,0x4aa0,0x62fe,
-0xf973,0x633d,0x4aa6,0x6350,0x4aac,0x6368,0x4ab2,0x637b,0xf9a4,0x6383,0x4ab8,0x63a0,0xf975,0x63a9,0x4abe,0x63c4,
-0xfa8d,0x63c5,0x4ac4,0x63e4,0x4aca,0x641c,0xfa8e,0x6422,0x4ad0,0x6452,0xfa8f,0x6469,0x4ad6,0x6477,0x4adc,0x647e,
-0x4ae2,0x649a,0xf991,0x649d,0x4ae8,0x64c4,0xf930,0x654f,0x4aee,0x6556,0xfa90,0x656c,0x4af6,0x6578,0xf969,0x6599,
-0xf9be,0x65c5,0xf983,0x65e2,0xfa42,0x65e3,0x4afc,0x6613,0xf9e0,0x6649,0x4b02,0x6674,0x4b08,0x6688,0xf9c5,0x6691,
-0x4b0d,0x669c,0x4b15,0x66b4,0xfa06,0x66c6,0xf98b,0x66f4,0xf901,0x66f8,0x4b1b,0x6700,0x4b21,0x6717,0x4b27,0x671b,
-0x4b31,0x6721,0x4b39,0x674e,0xf9e1,0x6753,0x4b3f,0x6756,0xfa94,0x675e,0x4b45,0x677b,0xf9c8,0x6785,0x4b4b,0x6797,
-0xf9f4,0x67f3,0xf9c9,0x67fa,0x4b51,0x6817,0xf9da,0x681f,0x4b57,0x6852,0x4b5d,0x6881,0xf97a,0x6885,0x4b63,0x688e,
-0x4b6b,0x68a8,0xf9e2,0x6914,0x4b71,0x6942,0x4b77,0x69a3,0x4b7d,0x69ea,0x4b83,0x6a02,0x4b89,0x6a13,0xf94c,0x6aa8,
-0x4b90,0x6ad3,0xf931,0x6adb,0x4b96,0x6b04,0xf91d,0x6b21,0x4b9c,0x6b54,0x4ba2,0x6b72,0x4ba8,0x6b77,0xf98c,0x6b79,
-0xfa95,0x6b9f,0x4bae,0x6bae,0xf9a5,0x6bba,0x4bb4,0x6bbb,0x4bbe,0x6c4e,0x4bc4,0x6c67,0x4bca,0x6c88,0xf972,0x6cbf,
-0x4bd0,0x6ccc,0xf968,0x6ccd,0x4bd6,0x6ce5,0xf9e3,0x6d16,0x4bdc,0x6d1b,0xf915,0x6d1e,0xfa05,0x6d34,0x4be2,0x6d3e,
-0x4be8,0x6d41,0x4bee,0x6d69,0x4bf8,0x6d6a,0xf92a,0x6d77,0x4bfe,0x6d78,0x4c06,0x6d85,0x4c0c,0x6dcb,0xf9f5,0x6dda,
-0xf94d,0x6dea,0xf9d6,0x6df9,0x4c12,0x6e1a,0xfa46,0x6e2f,0x4c18,0x6e6e,0x4c1e,0x6e9c,0xf9cb,0x6eba,0xf9ec,0x6ec7,
-0x4c24,0x6ecb,0x4c2a,0x6ed1,0xf904,0x6edb,0xfa98,0x6f0f,0xf94e,0x6f22,0x4c32,0x6f23,0xf992,0x6f6e,0x4c37,0x6fc6,
-0x4c3d,0x6feb,0xf922,0x6ffe,0xf984,0x701b,0x4c43,0x701e,0x4c49,0x7039,0x4c51,0x704a,0x4c57,0x7070,0x4c5d,0x7077,
-0x4c63,0x707d,0x4c69,0x7099,0xf9fb,0x70ad,0x4c6f,0x70c8,0xf99f,0x70d9,0xf916,0x7145,0x4c75,0x7149,0xf993,0x716e,
-0x4c7b,0x719c,0x4c80,0x71ce,0xf9c0,0x71d0,0xf9ee,0x7210,0xf932,0x721b,0xf91e,0x7228,0x4c86,0x722b,0xfa49,0x7235,
-0x4c8c,0x7250,0x4c94,0x7262,0xf946,0x7280,0x4c9a,0x7295,0x4ca0,0x72af,0xfa9f,0x72c0,0xf9fa,0x72fc,0xf92b,0x732a,
-0x4ca6,0x7375,0xf9a7,0x737a,0x4cab,0x7387,0x4cb1,0x738b,0x4cb6,0x73a5,0x4cbc,0x73b2,0xf9ad,0x73de,0xf917,0x7406,
-0xf9e4,0x7409,0xf9cc,0x7422,0xfa4a,0x7447,0x4cc2,0x745c,0x4cc8,0x7469,0xf9ae,0x7471,0x4cce,0x7485,0x4cd6,0x7489,
-0xf994,0x7498,0xf9ef,0x74ca,0x4cdc,0x7506,0xfaa2,0x7524,0x4ce2,0x753b,0xfaa3,0x753e,0x4ce8,0x7559,0xf9cd,0x7565,
-0xf976,0x7570,0x4cee,0x75e2,0xf9e5,0x7610,0x4cf6,0x761d,0xfaa4,0x761f,0xfaa5,0x7642,0xf9c1,0x7669,0xf90e,0x76ca,
-0x4cfc,0x76db,0xfaa7,0x76e7,0xf933,0x76f4,0x4d01,0x7701,0xf96d,0x771e,0x4d09,0x771f,0x4d0f,0x7740,0xfaaa,0x774a,
-0x4d15,0x778b,0x4d1d,0x77a7,0xfa9d,0x784e,0x4d23,0x786b,0xf9ce,0x788c,0x4d29,0x7891,0xfa4b,0x78ca,0xf947,0x78cc,
-0x4d31,0x78fb,0xf964,0x792a,0xf985,0x793c,0xfa18,0x793e,0xfa4c,0x7948,0xfa4e,0x7949,0xfa4d,0x7950,0xfa4f,0x7956,
-0x4d39,0x795d,0xfa51,0x795e,0xfa19,0x7965,0xfa1a,0x797f,0xf93c,0x798d,0xfa52,0x798e,0xfa53,0x798f,0x4d41,0x79ae,
-0xf9b6,0x79ca,0xf995,0x79eb,0x4d49,0x7a1c,0xf956,0x7a40,0x4d4f,0x7a4a,0x4d57,0x7a4f,0x4d5d,0x7a81,0xfa55,0x7ab1,
-0xfaac,0x7acb,0xf9f7,0x7aee,0x4d63,0x7b20,0xf9f8,0x7bc0,0x4d69,0x7bc6,0x4d6e,0x7bc9,0x4d74,0x7c3e,0xf9a6,0x7c60,
-0xf944,0x7c7b,0xfaae,0x7c92,0xf9f9,0x7cbe,0xfa1d,0x7cd2,0x4d7a,0x7cd6,0xfa03,0x7ce3,0x4d80,0x7ce7,0xf97b,0x7ce8,
-0x4d86,0x7d00,0x4d8c,0x7d10,0xf9cf,0x7d22,0xf96a,0x7d2f,0xf94f,0x7d5b,0xfaaf,0x7d63,0x4d92,0x7da0,0xf93d,0x7dbe,
-0xf957,0x7dc7,0x4d98,0x7df4,0x4d9e,0x7e02,0x4da5,0x7e09,0xfa58,0x7e37,0xf950,0x7e41,0xfa59,0x7e45,0x4dab,0x7f3e,
-0xfab1,0x7f72,0xfa5a,0x7f79,0xf9e6,0x7f7a,0x4db1,0x7f85,0xf90f,0x7f95,0x4db7,0x7f9a,0xf9af,0x7fbd,0xfa1e,0x7ffa,
-0x4dbd,0x8001,0xf934,0x8005,0x4dc3,0x8046,0xf9b0,0x8060,0x4dcd,0x806f,0xf997,0x8070,0x4dd3,0x807e,0xf945,0x808b,
-0xf953,0x80ad,0x4dd9,0x80b2,0x4ddf,0x8103,0x4de5,0x813e,0x4deb,0x81d8,0xf926,0x81e8,0xf9f6,0x81ed,0xfa5c,0x8201,
-0x4df1,0x8204,0x4dfb,0x826f,0xf97c,0x8279,0x4e01,0x828b,0x4e04,0x8291,0x4e0a,0x829d,0x4e10,0x82b1,0x4e16,0x82b3,
-0x4e1c,0x82bd,0x4e22,0x82e5,0x4e28,0x82e6,0x4e30,0x831d,0x4e36,0x8323,0x4e3c,0x8336,0xf9fe,0x8352,0xfab3,0x8353,
-0x4e42,0x8363,0x4e48,0x83ad,0x4e4e,0x83bd,0x4e54,0x83c9,0xf93e,0x83ca,0x4e5a,0x83cc,0x4e60,0x83dc,0x4e66,0x83e7,
-0x4e6c,0x83ef,0xfab4,0x83f1,0xf958,0x843d,0xf918,0x8449,0xf96e,0x8457,0x4e72,0x84ee,0xf999,0x84f1,0x4e7a,0x84f3,
-0x4e80,0x84fc,0xf9c2,0x8516,0x4e86,0x8564,0x4e8c,0x85cd,0xf923,0x85fa,0xf9f0,0x8606,0xf935,0x8612,0xfa20,0x862d,
-0xf91f,0x863f,0xf910,0x8650,0x4e92,0x865c,0x4e98,0x8667,0x4ea0,0x8669,0x4ea6,0x8688,0x4eac,0x86a9,0x4eb2,0x86e2,
-0x4eb8,0x870e,0x4ebe,0x8728,0x4ec4,0x876b,0x4eca,0x8779,0x4ed0,0x8786,0x4ed8,0x87ba,0xf911,0x87e1,0x4ede,0x8801,
-0x4ee4,0x881f,0xf927,0x884c,0xfa08,0x8860,0x4eea,0x8863,0x4ef0,0x88c2,0xf9a0,0x88cf,0xf9e7,0x88d7,0x4ef6,0x88de,
-0x4efc,0x88e1,0xf9e8,0x88f8,0xf912,0x88fa,0x4f02,0x8910,0xfa60,0x8941,0xfab6,0x8964,0xf924,0x8986,0xfab7,0x898b,
-0xfa0a,0x8996,0x4f08,0x8aa0,0x4f0d,0x8aaa,0x4f13,0x8abf,0xfab9,0x8acb,0xfabb,0x8ad2,0xf97d,0x8ad6,0xf941,0x8aed,
-0x4f18,0x8af8,0x4f20,0x8afe,0x4f25,0x8b01,0x4f2a,0x8b39,0x4f2f,0x8b58,0xf9fc,0x8b80,0xf95a,0x8b8a,0x4f34,0x8c48,
-0xf900,0x8c55,0x4f3c,0x8cab,0x4f42,0x8cc1,0x4f48,0x8cc2,0xf948,0x8cc8,0xf903,0x8cd3,0xfa64,0x8d08,0x4f4e,0x8d1b,
-0x4f53,0x8d77,0x4f59,0x8dbc,0x4f5f,0x8dcb,0x4f65,0x8def,0xf937,0x8df0,0x4f6b,0x8eca,0xf902,0x8ed4,0x4f71,0x8f26,
-0xf998,0x8f2a,0xf9d7,0x8f38,0x4f77,0x8f3b,0xfa07,0x8f62,0xf98d,0x8f9e,0x4f7f,0x8fb0,0xf971,0x8fb6,0xfa66,0x9023,
-0xf99a,0x9038,0x4f85,0x9072,0xfac3,0x907c,0xf9c3,0x908f,0xf913,0x9094,0x4f8a,0x90ce,0xf92c,0x90f1,0x4f90,0x90fd,
-0xfa26,0x9111,0x4f96,0x911b,0x4f9c,0x916a,0xf919,0x9199,0xfac4,0x91b4,0xf9b7,0x91cc,0xf9e9,0x91cf,0xf97e,0x91d1,
-0xf90a,0x9234,0xf9b1,0x9238,0x4fa2,0x9276,0xfac5,0x927c,0x4fa8,0x92d7,0x4fae,0x92d8,0x4fb4,0x9304,0xf93f,0x934a,
-0xf99b,0x93f9,0x4fba,0x9415,0x4fc0,0x958b,0x4fc6,0x95ad,0xf986,0x95b7,0x4fcc,0x962e,0xf9c6,0x964b,0xf951,0x964d,
-0xfa09,0x9675,0xf959,0x9678,0xf9d3,0x967c,0xfac6,0x9686,0xf9dc,0x96a3,0xf9f1,0x96b8,0xf9b8,0x96c3,0x4fd2,0x96e2,
-0xf9ea,0x96e3,0x4fd8,0x96f6,0xf9b2,0x96f7,0xf949,0x9723,0x4fdd,0x9732,0xf938,0x9748,0xf9b3,0x9756,0x4fe3,0x97db,
-0xfac9,0x97e0,0x4fe8,0x97ff,0x4fee,0x980b,0x4ff3,0x9818,0xf9b4,0x9829,0x4ffb,0x983b,0x5001,0x985e,0xf9d0,0x98e2,
-0x5006,0x98ef,0xfa2a,0x98fc,0xfa2b,0x9928,0xfa2c,0x9929,0x500c,0x99a7,0x5012,0x99c2,0x5018,0x99f1,0xf91a,0x99fe,
-0x501e,0x9a6a,0xf987,0x9b12,0x5024,0x9b6f,0xf939,0x9c40,0x502c,0x9c57,0xf9f2,0x9cfd,0x5032,0x9d67,0x5038,0x9db4,
-0xfa2d,0x9dfa,0xf93a,0x9e1e,0xf920,0x9e7f,0xf940,0x9e97,0xf988,0x9e9f,0xf9f3,0x9ebb,0x503e,0x9ece,0xf989,0x9ef9,
-0x5044,0x9efe,0x504a,0x9f05,0x5050,0x9f0f,0x5056,0x9f16,0x505c,0x9f3b,0x5062,0x9f43,0xfad8,0x9f8d,0xf9c4,0x9f8e,
-0xfad9,0x9f9c,0x5068,0x8101,0xd157,0xd15e,1,0xd158,0x106d,1,0xd1b9,0x1073,1,0xd1ba,0x1081,0x8202,
-0x122,0xf803,0x8202,0x51c,0xf812,0x8202,0x525,0xf91b,0x8202,0x54b,0xf816,0x8202,0x63a,0xf80d,0x8202,0x804,
-0xf9d9,0x8202,0x8de,0xf9dd,0x8202,0xa2c,0xf834,0x8202,0xb63,0xf838,0x8202,0x14e4,0xf859,0x8202,0x16a8,0xf860,
-0x8202,0x16ea,0xf861,0x8202,0x19c8,0xf86c,0x8202,0x1b18,0xf871,0x8202,0x1d0b,0xf8f8,0x8202,0x1de4,0xf87b,0x8202,
-0x1de6,0xf87d,0x8202,0x2183,0xf889,0x8202,0x219f,0xf939,2,0x2331,0x108f,0x8202,0x26d4,0xf8a4,0x8002,0x2844,
-0xfad0,0x8002,0x284a,0xfacf,0x8202,0x2b0c,0xf8b8,0x8202,0x2bf1,0xf8be,0x8202,0x300a,0xf8ca,0x8202,0x32b8,0xf897,
-0x8202,0x335f,0xf980,0x8202,0x3393,0xf989,0x8202,0x339c,0xf98a,0x8202,0x33c3,0xf8dd,0x8002,0x33d5,0xfad1,0x8202,
-0x346d,0xf8e3,0x8202,0x36a3,0xf8ec,0x8202,0x38a7,0xf8f0,0x8202,0x3a8d,0xf8f7,0x8202,0x3afa,0xf8f9,0x8202,0x3cbc,
-0xf8fb,0x8202,0x3d1e,0xf906,0x8202,0x3ed1,0xf90d,0x8202,0x3f5e,0xf910,0x8202,0x3f8e,0xf911,0x8202,0x4263,0xf91d,
-0x8202,0x43ab,0xf91f,0x8202,0x4608,0xf923,0x8202,0x4735,0xf926,0x8202,0x4814,0xf927,0x8202,0x4c36,0xf935,0x8202,
-0x4c92,0xf937,0x8202,0x4fa1,0xf93b,0x8202,0x4fb8,0xf93c,0x8202,0x5044,0xf93d,0x8202,0x50f2,0xf942,0x8202,0x50f3,
-0xf941,0x8202,0x5119,0xf943,0x8202,0x5133,0xf944,0x8002,0x5249,0xfad5,0x8202,0x541d,0xf94d,0x8202,0x5626,0xf952,
-0x8202,0x569a,0xf954,0x8202,0x56c5,0xf955,0x8202,0x597c,0xf95c,2,0x5aa7,0x1095,0x8202,0x5bab,0xf961,0x8202,
-0x5c80,0xf965,0x8002,0x5cd0,0xfad6,0x8202,0x5f86,0xf96b,0x8202,0x61da,0xf898,0x8202,0x6228,0xf972,0x8202,0x6247,
-0xf973,0x8202,0x62d9,0xf975,0x8202,0x633e,0xf977,0x8202,0x64da,0xf97b,0x8202,0x6523,0xf97c,0x8202,0x65a8,0xf97e,
-0x8202,0x67a7,0xf987,0x8202,0x67b5,0xf988,0x8202,0x6b3c,0xf997,0x8202,0x6c36,0xf9a4,0x8202,0x6cd5,0xf9a6,0x8202,
-0x6d6b,0xf9a5,0x8202,0x6f2c,0xf9ad,0x8202,0x6fb1,0xf9b0,0x8202,0x70d2,0xf9b1,0x8202,0x73ca,0xf9ab,0x8202,0x7667,
-0xf9c5,0x8202,0x78ae,0xf9cb,0x8202,0x7966,0xf9cc,0x8202,0x7ca8,0xf9d3,0x8002,0x7ed3,0xfad7,0x8202,0x7f2f,0xf9d8,
-0x8202,0x85d2,0xf9e0,0x8202,0x85ed,0xf9e1,0x8202,0x872e,0xf9e5,0x8202,0x8bfa,0xf9ed,0x8202,0x8d77,0xf9f1,0x8202,
-0x9145,0xf9f6,0x8202,0x91df,0xf81c,0x8202,0x921a,0xf9f7,0x8202,0x940a,0xf9fb,0x8202,0x9496,0xf9fd,0x8202,0x95b6,
-0xfa01,0x8202,0x9b30,0xfa09,0x8202,0xa0ce,0xfa10,0x8202,0xa105,0xfa12,0x8202,0xa20e,0xfa13,0x8202,0xa291,0xfa14,
-0x8202,0xa392,0xf88f,0x8202,0xa600,0xfa1d,0x8016,0x12,0xf900,0xfa0e,0xfa10,0xfa11,0xfa12,0xfa13,0xfa15,0xfa1f,
-0xfa20,0xfa21,0xfa22,0xfa23,0xfa25,0xfa27,0xfa2a,0xfa2e,0xfa70,0xfada,2,0xf800,2,0xfa1e,0x8376,0x2ba,
-0x221,0x222,0x234,0x250,0x2ae,0x2b0,0x2ef,0x300,0x350,0x360,0x370,0x374,0x376,0x37a,0x37b,0x37e,
-0x37f,0x384,0x38b,0x38c,0x38d,0x38e,0x3a2,0x3a3,0x3cf,0x3d0,0x3f7,0x400,0x487,0x488,0x4cf,0x4d0,
-0x4f6,0x4f8,0x4fa,0x500,0x510,0x531,0x557,0x559,0x560,0x561,0x588,0x589,0x58b,0x591,0x5a2,0x5a3,
-0x5ba,0x5bb,0x5c5,0x5d0,0x5eb,0x5f0,0x5f5,0x60c,0x60d,0x61b,0x61c,0x61f,0x620,0x621,0x63b,0x640,
-0x656,0x660,0x6ee,0x6f0,0x6ff,0x700,0x70e,0x70f,0x72d,0x730,0x74b,0x780,0x7b2,0x901,0x904,0x905,
-0x93a,0x93c,0x94e,0x950,0x955,0x958,0x971,0x981,0x984,0x985,0x98d,0x98f,0x991,0x993,0x9a9,0x9aa,
-0x9b1,0x9b2,0x9b3,0x9b6,0x9ba,0x9bc,0x9bd,0x9be,0x9c5,0x9c7,0x9c9,0x9cb,0x9ce,0x9d7,0x9d8,0x9dc,
-0x9de,0x9df,0x9e4,0x9e6,0x9fb,0xa02,0xa03,0xa05,0xa0b,0xa0f,0xa11,0xa13,0xa29,0xa2a,0xa31,0xa32,
-0xa34,0xa35,0xa37,0xa38,0xa3a,0xa3c,0xa3d,0xa3e,0xa43,0xa47,0xa49,0xa4b,0xa4e,0xa59,0xa5d,0xa5e,
-0xa5f,0xa66,0xa75,0xa81,0xa84,0xa85,0xa8c,0xa8d,0xa8e,0xa8f,0xa92,0xa93,0xaa9,0xaaa,0xab1,0xab2,
-0xab4,0xab5,0xaba,0xabc,0xac6,0xac7,0xaca,0xacb,0xace,0xad0,0xad1,0xae0,0xae1,0xae6,0xaf0,0xb01,
-0xb04,0xb05,0xb0d,0xb0f,0xb11,0xb13,0xb29,0xb2a,0xb31,0xb32,0xb34,0xb36,0xb3a,0xb3c,0xb44,0xb47,
-0xb49,0xb4b,0xb4e,0xb56,0xb58,0xb5c,0xb5e,0xb5f,0xb62,0xb66,0xb71,0xb82,0xb84,0xb85,0xb8b,0xb8e,
-0xb91,0xb92,0xb96,0xb99,0xb9b,0xb9c,0xb9d,0xb9e,0xba0,0xba3,0xba5,0xba8,0xbab,0xbae,0xbb6,0xbb7,
-0xbba,0xbbe,0xbc3,0xbc6,0xbc9,0xbca,0xbce,0xbd7,0xbd8,0xbe7,0xbf3,0xc01,0xc04,0xc05,0xc0d,0xc0e,
-0xc11,0xc12,0xc29,0xc2a,0xc34,0xc35,0xc3a,0xc3e,0xc45,0xc46,0xc49,0xc4a,0xc4e,0xc55,0xc57,0xc60,
-0xc62,0xc66,0xc70,0xc82,0xc84,0xc85,0xc8d,0xc8e,0xc91,0xc92,0xca9,0xcaa,0xcb4,0xcb5,0xcba,0xcbe,
-0xcc5,0xcc6,0xcc9,0xcca,0xcce,0xcd5,0xcd7,0xcde,0xcdf,0xce0,0xce2,0xce6,0xcf0,0xd02,0xd04,0xd05,
-0xd0d,0xd0e,0xd11,0xd12,0xd29,0xd2a,0xd3a,0xd3e,0xd44,0xd46,0xd49,0xd4a,0xd4e,0xd57,0xd58,0xd60,
-0xd62,0xd66,0xd70,0xd82,0xd84,0xd85,0xd97,0xd9a,0xdb2,0xdb3,0xdbc,0xdbd,0xdbe,0xdc0,0xdc7,0xdca,
-0xdcb,0xdcf,0xdd5,0xdd6,0xdd7,0xdd8,0xde0,0xdf2,0xdf5,0xe01,0xe3b,0xe3f,0xe5c,0xe81,0xe83,0xe84,
-0xe85,0xe87,0xe89,0xe8a,0xe8b,0xe8d,0xe8e,0xe94,0xe98,0xe99,0xea0,0xea1,0xea4,0xea5,0xea6,0xea7,
-0xea8,0xeaa,0xeac,0xead,0xeba,0xebb,0xebe,0xec0,0xec5,0xec6,0xec7,0xec8,0xece,0xed0,0xeda,0xedc,
-0xede,0xf00,0xf48,0xf49,0xf6b,0xf71,0xf8c,0xf90,0xf98,0xf99,0xfbd,0xfbe,0xfcd,0xfcf,0xfd0,0x1000,
-0x1022,0x1023,0x1028,0x1029,0x102b,0x102c,0x1033,0x1036,0x103a,0x1040,0x105a,0x10a0,0x10c6,0x10d0,0x10f9,0x10fb,
-0x10fc,0x1100,0x115a,0x115f,0x11a3,0x11a8,0x11fa,0x1200,0x1207,0x1208,0x1247,0x1248,0x1249,0x124a,0x124e,0x1250,
-0x1257,0x1258,0x1259,0x125a,0x125e,0x1260,0x1287,0x1288,0x1289,0x128a,0x128e,0x1290,0x12af,0x12b0,0x12b1,0x12b2,
-0x12b6,0x12b8,0x12bf,0x12c0,0x12c1,0x12c2,0x12c6,0x12c8,0x12cf,0x12d0,0x12d7,0x12d8,0x12ef,0x12f0,0x130f,0x1310,
-0x1311,0x1312,0x1316,0x1318,0x131f,0x1320,0x1347,0x1348,0x135b,0x1361,0x137d,0x13a0,0x13f5,0x1401,0x1677,0x1680,
-0x169d,0x16a0,0x16f1,0x1700,0x170d,0x170e,0x1715,0x1720,0x1737,0x1740,0x1754,0x1760,0x176d,0x176e,0x1771,0x1772,
-0x1774,0x1780,0x17dd,0x17e0,0x17ea,0x1800,0x180f,0x1810,0x181a,0x1820,0x1878,0x1880,0x18aa,0x1e00,0x1e9c,0x1ea0,
-0x1efa,0x1f00,0x1f16,0x1f18,0x1f1e,0x1f20,0x1f46,0x1f48,0x1f4e,0x1f50,0x1f58,0x1f59,0x1f5a,0x1f5b,0x1f5c,0x1f5d,
-0x1f5e,0x1f5f,0x1f7e,0x1f80,0x1fb5,0x1fb6,0x1fc5,0x1fc6,0x1fd4,0x1fd6,0x1fdc,0x1fdd,0x1ff0,0x1ff2,0x1ff5,0x1ff6,
-0x1fff,0x2000,0x2053,0x2057,0x2058,0x205f,0x2064,0x206a,0x2072,0x2074,0x208f,0x20a0,0x20b2,0x20d0,0x20eb,0x2100,
-0x213b,0x213d,0x214c,0x2153,0x2184,0x2190,0x23cf,0x2400,0x2427,0x2440,0x244b,0x2460,0x24ff,0x2500,0x2614,0x2616,
-0x2618,0x2619,0x267e,0x2680,0x268a,0x2701,0x2705,0x2706,0x270a,0x270c,0x2728,0x2729,0x274c,0x274d,0x274e,0x274f,
-0x2753,0x2756,0x2757,0x2758,0x275f,0x2761,0x2795,0x2798,0x27b0,0x27b1,0x27bf,0x27d0,0x27ec,0x27f0,0x2b00,0x2e80,
-0x2e9a,0x2e9b,0x2ef4,0x2f00,0x2fd6,0x2ff0,0x2ffc,0x3000,0x3040,0x3041,0x3097,0x3099,0x3100,0x3105,0x312d,0x3131,
-0x318f,0x3190,0x31b8,0x31f0,0x321d,0x3220,0x3244,0x3251,0x327c,0x327f,0x32cc,0x32d0,0x32ff,0x3300,0x3377,0x337b,
-0x33de,0x33e0,0x33ff,0x3400,0x4db6,0x4e00,0x9fa6,0xa000,0xa48d,0xa490,0xa4c7,0xac00,0xd7a4,0xd800,0xfa2e,0xfa30,
-0xfa6b,0xfb00,0xfb07,0xfb13,0xfb18,0xfb1d,0xfb37,0xfb38,0xfb3d,0xfb3e,0xfb3f,0xfb40,0xfb42,0xfb43,0xfb45,0xfb46,
-0xfbb2,0xfbd3,0xfd40,0xfd50,0xfd90,0xfd92,0xfdc8,0xfdd0,0xfdfd,0xfe00,0xfe10,0xfe20,0xfe24,0xfe30,0xfe47,0xfe49,
-0xfe53,0xfe54,0xfe67,0xfe68,0xfe6c,0xfe70,0xfe75,0xfe76,0xfefd,0xfeff,0xff00,0xff01,0xffbf,0xffc2,0xffc8,0xffca,
-0xffd0,0xffd2,0xffd8,0xffda,0xffdd,0xffe0,0xffe7,0xffe8,0xffef,0xfff9,1,0,1,0x300,1,0x31f,
-1,0x320,1,0x324,1,0x330,1,0x34b,1,0x400,1,0x426,1,0x428,1,0x44e,
-1,0xd000,1,0xd0f6,1,0xd100,1,0xd127,1,0xd12a,1,0xd1de,1,0xd400,1,0xd455,
-1,0xd456,1,0xd49d,1,0xd49e,1,0xd4a0,1,0xd4a2,1,0xd4a3,1,0xd4a5,1,0xd4a7,
-1,0xd4a9,1,0xd4ad,1,0xd4ae,1,0xd4ba,1,0xd4bb,1,0xd4bc,1,0xd4bd,1,0xd4c1,
-1,0xd4c2,1,0xd4c4,1,0xd4c5,1,0xd506,1,0xd507,1,0xd50b,1,0xd50d,1,0xd515,
-1,0xd516,1,0xd51d,1,0xd51e,1,0xd53a,1,0xd53b,1,0xd53f,1,0xd540,1,0xd545,
-1,0xd546,1,0xd547,1,0xd54a,1,0xd551,1,0xd552,1,0xd6a4,1,0xd6a8,1,0xd7ca,
-1,0xd7ce,1,0xd800,1,0xfffe,2,0xa6d7,2,0xf800,2,0xfa1e,2,0xfffe,3,0,
-3,0xfffe,4,0,4,0xfffe,5,0,5,0xfffe,6,0,6,0xfffe,7,0,
-7,0xfffe,8,0,8,0xfffe,9,0,9,0xfffe,0xa,0,0xa,0xfffe,0xb,0,
-0xb,0xfffe,0xc,0,0xc,0xfffe,0xd,0,0xd,0xfffe,0xe,0,0xe,1,0xe,2,
-0xe,0x20,0xe,0x80,0xe,0xfffe
+0x4536,0x110e,0x4539,0x110f,0x453c,0x1110,0x453f,0x1111,0x4542,0x1112,0x4545,0x1b05,0x1b06,0x1b07,0x1b08,0x1b09,
+0x1b0a,0x1b0b,0x1b0c,0x1b0d,0x1b0e,0x1b11,0x1b12,0x1b3a,0x1b3b,0x1b3c,0x1b3d,0x1b3e,0x1b40,0x1b3f,0x1b41,0x1b42,
+0x1b43,0x1fbf,0x4548,0x1ffe,0x454b,0x2002,0x2000,0x2003,0x2001,0x2190,0x219a,0x2192,0x219b,0x2194,0x21ae,0x21d0,
+0x21cd,0x21d2,0x21cf,0x21d4,0x21ce,0x2203,0x2204,0x2208,0x2209,0x220b,0x220c,0x2223,0x2224,0x2225,0x2226,0x223c,
+0x2241,0x2243,0x2244,0x2245,0x2247,0x2248,0x2249,0x224d,0x226d,0x2261,0x2262,0x2264,0x2270,0x2265,0x2271,0x2272,
+0x2274,0x2273,0x2275,0x2276,0x2278,0x2277,0x2279,0x227a,0x2280,0x227b,0x2281,0x227c,0x22e0,0x227d,0x22e1,0x2282,
+0x2284,0x2283,0x2285,0x2286,0x2288,0x2287,0x2289,0x2291,0x22e2,0x2292,0x22e3,0x22a2,0x22ac,0x22a8,0x22ad,0x22a9,
+0x22ae,0x22ab,0x22af,0x22b2,0x22ea,0x22b3,0x22eb,0x22b4,0x22ec,0x22b5,0x22ed,0x2add,0x2adc,0x3008,0x2329,0x3009,
+0x232a,0x3046,0x3094,0x304b,0x304c,0x304d,0x304e,0x304f,0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,0x3057,
+0x3058,0x3059,0x305a,0x305b,0x305c,0x305d,0x305e,0x305f,0x3060,0x3061,0x3062,0x3064,0x3065,0x3066,0x3067,0x3068,
+0x3069,0x306f,0x454e,0x3072,0x4551,0x3075,0x4554,0x3078,0x4557,0x307b,0x455a,0x309d,0x309e,0x30a6,0x30f4,0x30ab,
+0x30ac,0x30ad,0x30ae,0x30af,0x30b0,0x30b1,0x30b2,0x30b3,0x30b4,0x30b5,0x30b6,0x30b7,0x30b8,0x30b9,0x30ba,0x30bb,
+0x30bc,0x30bd,0x30be,0x30bf,0x30c0,0x30c1,0x30c2,0x30c4,0x30c5,0x30c6,0x30c7,0x30c8,0x30c9,0x30cf,0x455d,0x30d2,
+0x4560,0x30d5,0x4563,0x30d8,0x4566,0x30db,0x4569,0x30ef,0x30f7,0x30f0,0x30f8,0x30f1,0x30f9,0x30f2,0x30fa,0x30fd,
+0x30fe,0x349e,0x456c,0x34b9,0x4572,0x34bb,0x4578,0x34df,0x457e,0x3515,0x4584,0x36ee,0x458a,0x36fc,0x4590,0x3781,
+0x4596,0x382f,0x459c,0x3862,0x45a2,0x387c,0x45a8,0x38c7,0x45ae,0x38e3,0x45b4,0x391c,0x45ba,0x393a,0x45c0,0x3a2e,
+0x45c6,0x3a6c,0x45cc,0x3ae4,0x45d2,0x3b08,0x45d8,0x3b19,0x45de,0x3b49,0x45e4,0x3b9d,0x45ea,0x3c18,0x45f2,0x3c4e,
+0x45f8,0x3d33,0x45fe,0x3d96,0x4604,0x3eac,0x460a,0x3eb8,0x4610,0x3f1b,0x4616,0x3ffc,0x461c,0x4008,0x4622,0x4018,
+0xfad3,0x4039,0x4628,0x4046,0x4630,0x4096,0x4636,0x40e3,0x463c,0x412f,0x4642,0x4202,0x4648,0x4227,0x464e,0x42a0,
+0x4654,0x4301,0x465a,0x4334,0x4660,0x4359,0x4666,0x43d5,0x466c,0x43d9,0x4672,0x440b,0x4678,0x446b,0x467e,0x452b,
+0x4684,0x455d,0x468a,0x4561,0x4690,0x456b,0x4696,0x45d7,0x469c,0x45f9,0x46a2,0x4635,0x46a8,0x46be,0x46ae,0x46c7,
+0x46b4,0x4995,0x46ba,0x49e6,0x46c0,0x4a6e,0x46c6,0x4a76,0x46cc,0x4ab2,0x46d2,0x4b33,0x46d8,0x4bce,0x46de,0x4cce,
+0x46e4,0x4ced,0x46ea,0x4cf8,0x46f0,0x4d56,0x46f6,0x4e0d,0xf967,0x4e26,0xfa70,0x4e32,0xf905,0x4e38,0x46fc,0x4e39,
+0xf95e,0x4e3d,0x4702,0x4e41,0x4708,0x4e82,0xf91b,0x4e86,0xf9ba,0x4eae,0xf977,0x4ec0,0xf9fd,0x4ecc,0x470e,0x4ee4,
+0xf9a8,0x4f60,0x4714,0x4f80,0xfa73,0x4f86,0xf92d,0x4f8b,0xf9b5,0x4fae,0x471a,0x4fbb,0x4722,0x4fbf,0xf965,0x5002,
+0x4728,0x502b,0xf9d4,0x507a,0x472e,0x5099,0x4734,0x50cf,0x473a,0x50da,0xf9bb,0x50e7,0x4740,0x5140,0xfa0c,0x5145,
+0xfa74,0x514d,0x4748,0x5154,0x4750,0x5164,0x4756,0x5167,0x475c,0x5168,0xfa72,0x5169,0xf978,0x516d,0xf9d1,0x5177,
+0x4762,0x5180,0xfa75,0x518d,0x4768,0x5192,0x476e,0x5195,0x4774,0x5197,0x477a,0x51a4,0x4780,0x51ac,0x4786,0x51b5,
+0x478c,0x51b7,0xf92e,0x51c9,0xf979,0x51cc,0xf955,0x51dc,0xf954,0x51de,0xfa15,0x51f5,0x4794,0x5203,0x479a,0x5207,
+0x47a0,0x5217,0xf99c,0x5229,0xf9dd,0x523a,0xf9ff,0x523b,0x47a8,0x5246,0x47ae,0x5272,0x47b4,0x5277,0x47ba,0x5289,
+0xf9c7,0x529b,0xf98a,0x52a3,0xf99d,0x52b3,0x47c0,0x52c7,0x47c6,0x52c9,0x47ce,0x52d2,0xf952,0x52de,0xf92f,0x52e4,
+0x47d6,0x52f5,0xf97f,0x52fa,0x47de,0x5305,0x47e6,0x5306,0x47ec,0x5317,0x47f2,0x533f,0xf9eb,0x5349,0x47fa,0x5351,
+0x4800,0x535a,0x4808,0x5373,0x480e,0x5375,0xf91c,0x537d,0x4814,0x537f,0x481a,0x53c3,0xf96b,0x53ca,0x4820,0x53df,
+0x4826,0x53e5,0xf906,0x53eb,0x482c,0x53f1,0x4832,0x5406,0x4838,0x540f,0xf9de,0x541d,0xf9ed,0x5438,0x483e,0x5442,
+0xf980,0x5448,0x4844,0x5468,0x484a,0x549e,0x4850,0x54a2,0x4856,0x54bd,0xf99e,0x54f6,0x485c,0x5510,0x4862,0x5553,
+0x4868,0x5555,0xfa79,0x5563,0x486e,0x5584,0x4874,0x5587,0xf90b,0x5599,0x487a,0x559d,0x4882,0x55ab,0x4887,0x55b3,
+0x488d,0x55c0,0xfa0d,0x55c2,0x4893,0x55e2,0xfa7b,0x5606,0x4899,0x5651,0x48a1,0x5668,0xfa38,0x5674,0x48a7,0x56f9,
+0xf9a9,0x5716,0x48ad,0x5717,0x48b3,0x578b,0x48b9,0x57ce,0x48bf,0x57f4,0x48c5,0x580d,0x48cb,0x5831,0x48d1,0x5832,
+0x48d7,0x5840,0xfa39,0x585a,0x48dd,0x585e,0xf96c,0x58a8,0xfa3a,0x58ac,0x48e2,0x58b3,0xfa7d,0x58d8,0xf94a,0x58df,
+0xf942,0x58ee,0x48e8,0x58f2,0x48ee,0x58f7,0x48f4,0x5906,0x48fa,0x591a,0x4900,0x5922,0x4906,0x5944,0xfa7e,0x5948,
+0xf90c,0x5951,0xf909,0x5954,0xfa7f,0x5962,0x490c,0x5973,0xf981,0x59d8,0x4912,0x59ec,0x4918,0x5a1b,0x491e,0x5a27,
+0x4924,0x5a62,0xfa80,0x5a66,0x492a,0x5ab5,0x4930,0x5b08,0x4936,0x5b28,0xfa81,0x5b3e,0x493c,0x5b85,0xfa04,0x5bc3,
+0x4942,0x5bd8,0x4948,0x5be7,0x494e,0x5bee,0xf9bc,0x5bf3,0x4958,0x5bff,0x495e,0x5c06,0x4964,0x5c22,0x496a,0x5c3f,
+0xf9bd,0x5c60,0x4970,0x5c62,0xf94b,0x5c64,0xfa3b,0x5c65,0xf9df,0x5c6e,0x4976,0x5c8d,0x497e,0x5cc0,0x4984,0x5d19,
+0xf9d5,0x5d43,0x498a,0x5d50,0xf921,0x5d6b,0x4990,0x5d6e,0x4996,0x5d7c,0x499c,0x5db2,0x49a2,0x5dba,0xf9ab,0x5de1,
+0x49a8,0x5de2,0x49ae,0x5dfd,0x49b4,0x5e28,0x49ba,0x5e3d,0x49c0,0x5e69,0x49c6,0x5e74,0xf98e,0x5ea6,0xfa01,0x5eb0,
+0x49cc,0x5eb3,0x49d2,0x5eb6,0x49d8,0x5ec9,0xf9a2,0x5eca,0x49de,0x5ed2,0xfa82,0x5ed3,0xfa0b,0x5ed9,0xfa83,0x5eec,
+0xf982,0x5efe,0x49e6,0x5f04,0xf943,0x5f22,0x49ec,0x5f53,0x49f2,0x5f62,0x49f8,0x5f69,0xfa84,0x5f6b,0x49fe,0x5f8b,
+0xf9d8,0x5f9a,0x4a04,0x5fa9,0xf966,0x5fad,0xfa85,0x5fcd,0x4a0a,0x5fd7,0x4a10,0x5ff5,0xf9a3,0x5ff9,0x4a16,0x6012,
+0xf960,0x601c,0xf9ac,0x6081,0x4a1c,0x6094,0x4a22,0x60c7,0x4a2a,0x60d8,0xfa86,0x60e1,0xf9b9,0x6108,0xfa88,0x6144,
+0xf9d9,0x6148,0x4a30,0x614c,0x4a36,0x614e,0x4a40,0x6160,0xfa8a,0x6168,0xfa3e,0x617a,0x4a48,0x618e,0x4a4e,0x6190,
+0xf98f,0x61a4,0x4a58,0x61af,0x4a5e,0x61b2,0x4a64,0x61de,0x4a6a,0x61f2,0x4a70,0x61f6,0x4a7a,0x6200,0xf990,0x6210,
+0x4a82,0x621b,0x4a88,0x622e,0xf9d2,0x6234,0xfa8c,0x625d,0x4a8e,0x62b1,0x4a94,0x62c9,0xf925,0x62cf,0xf95b,0x62d3,
+0xfa02,0x62d4,0x4a9a,0x62fc,0x4aa0,0x62fe,0xf973,0x633d,0x4aa6,0x6350,0x4aac,0x6368,0x4ab2,0x637b,0xf9a4,0x6383,
+0x4ab8,0x63a0,0xf975,0x63a9,0x4abe,0x63c4,0xfa8d,0x63c5,0x4ac4,0x63e4,0x4aca,0x641c,0xfa8e,0x6422,0x4ad0,0x6452,
+0xfa8f,0x6469,0x4ad6,0x6477,0x4adc,0x647e,0x4ae2,0x649a,0xf991,0x649d,0x4ae8,0x64c4,0xf930,0x654f,0x4aee,0x6556,
+0xfa90,0x656c,0x4af6,0x6578,0xf969,0x6599,0xf9be,0x65c5,0xf983,0x65e2,0xfa42,0x65e3,0x4afc,0x6613,0xf9e0,0x6649,
+0x4b02,0x6674,0x4b08,0x6688,0xf9c5,0x6691,0x4b0d,0x669c,0x4b15,0x66b4,0xfa06,0x66c6,0xf98b,0x66f4,0xf901,0x66f8,
+0x4b1b,0x6700,0x4b21,0x6717,0x4b27,0x671b,0x4b31,0x6721,0x4b39,0x674e,0xf9e1,0x6753,0x4b3f,0x6756,0xfa94,0x675e,
+0x4b45,0x677b,0xf9c8,0x6785,0x4b4b,0x6797,0xf9f4,0x67f3,0xf9c9,0x67fa,0x4b51,0x6817,0xf9da,0x681f,0x4b57,0x6852,
+0x4b5d,0x6881,0xf97a,0x6885,0x4b63,0x688e,0x4b6b,0x68a8,0xf9e2,0x6914,0x4b71,0x6942,0x4b77,0x69a3,0x4b7d,0x69ea,
+0x4b83,0x6a02,0x4b89,0x6a13,0xf94c,0x6aa8,0x4b90,0x6ad3,0xf931,0x6adb,0x4b96,0x6b04,0xf91d,0x6b21,0x4b9c,0x6b54,
+0x4ba2,0x6b72,0x4ba8,0x6b77,0xf98c,0x6b79,0xfa95,0x6b9f,0x4bae,0x6bae,0xf9a5,0x6bba,0x4bb4,0x6bbb,0x4bbe,0x6c4e,
+0x4bc4,0x6c67,0x4bca,0x6c88,0xf972,0x6cbf,0x4bd0,0x6ccc,0xf968,0x6ccd,0x4bd6,0x6ce5,0xf9e3,0x6d16,0x4bdc,0x6d1b,
+0xf915,0x6d1e,0xfa05,0x6d34,0x4be2,0x6d3e,0x4be8,0x6d41,0x4bee,0x6d69,0x4bf8,0x6d6a,0xf92a,0x6d77,0x4bfe,0x6d78,
+0x4c06,0x6d85,0x4c0c,0x6dcb,0xf9f5,0x6dda,0xf94d,0x6dea,0xf9d6,0x6df9,0x4c12,0x6e1a,0xfa46,0x6e2f,0x4c18,0x6e6e,
+0x4c1e,0x6e9c,0xf9cb,0x6eba,0xf9ec,0x6ec7,0x4c24,0x6ecb,0x4c2a,0x6ed1,0xf904,0x6edb,0xfa98,0x6f0f,0xf94e,0x6f22,
+0x4c32,0x6f23,0xf992,0x6f6e,0x4c37,0x6fc6,0x4c3d,0x6feb,0xf922,0x6ffe,0xf984,0x701b,0x4c43,0x701e,0x4c49,0x7039,
+0x4c51,0x704a,0x4c57,0x7070,0x4c5d,0x7077,0x4c63,0x707d,0x4c69,0x7099,0xf9fb,0x70ad,0x4c6f,0x70c8,0xf99f,0x70d9,
+0xf916,0x7145,0x4c75,0x7149,0xf993,0x716e,0x4c7b,0x719c,0x4c80,0x71ce,0xf9c0,0x71d0,0xf9ee,0x7210,0xf932,0x721b,
+0xf91e,0x7228,0x4c86,0x722b,0xfa49,0x7235,0x4c8c,0x7250,0x4c94,0x7262,0xf946,0x7280,0x4c9a,0x7295,0x4ca0,0x72af,
+0xfa9f,0x72c0,0xf9fa,0x72fc,0xf92b,0x732a,0x4ca6,0x7375,0xf9a7,0x737a,0x4cab,0x7387,0x4cb1,0x738b,0x4cb6,0x73a5,
+0x4cbc,0x73b2,0xf9ad,0x73de,0xf917,0x7406,0xf9e4,0x7409,0xf9cc,0x7422,0xfa4a,0x7447,0x4cc2,0x745c,0x4cc8,0x7469,
+0xf9ae,0x7471,0x4cce,0x7485,0x4cd6,0x7489,0xf994,0x7498,0xf9ef,0x74ca,0x4cdc,0x7506,0xfaa2,0x7524,0x4ce2,0x753b,
+0xfaa3,0x753e,0x4ce8,0x7559,0xf9cd,0x7565,0xf976,0x7570,0x4cee,0x75e2,0xf9e5,0x7610,0x4cf6,0x761d,0xfaa4,0x761f,
+0xfaa5,0x7642,0xf9c1,0x7669,0xf90e,0x76ca,0x4cfc,0x76db,0xfaa7,0x76e7,0xf933,0x76f4,0x4d01,0x7701,0xf96d,0x771e,
+0x4d09,0x771f,0x4d0f,0x7740,0xfaaa,0x774a,0x4d15,0x778b,0x4d1d,0x77a7,0xfa9d,0x784e,0x4d23,0x786b,0xf9ce,0x788c,
+0x4d29,0x7891,0xfa4b,0x78ca,0xf947,0x78cc,0x4d31,0x78fb,0xf964,0x792a,0xf985,0x793c,0xfa18,0x793e,0xfa4c,0x7948,
+0xfa4e,0x7949,0xfa4d,0x7950,0xfa4f,0x7956,0x4d39,0x795d,0xfa51,0x795e,0xfa19,0x7965,0xfa1a,0x797f,0xf93c,0x798d,
+0xfa52,0x798e,0xfa53,0x798f,0x4d41,0x79ae,0xf9b6,0x79ca,0xf995,0x79eb,0x4d49,0x7a1c,0xf956,0x7a40,0x4d4f,0x7a4a,
+0x4d57,0x7a4f,0x4d5d,0x7a81,0xfa55,0x7ab1,0xfaac,0x7acb,0xf9f7,0x7aee,0x4d63,0x7b20,0xf9f8,0x7bc0,0x4d69,0x7bc6,
+0x4d6e,0x7bc9,0x4d74,0x7c3e,0xf9a6,0x7c60,0xf944,0x7c7b,0xfaae,0x7c92,0xf9f9,0x7cbe,0xfa1d,0x7cd2,0x4d7a,0x7cd6,
+0xfa03,0x7ce3,0x4d80,0x7ce7,0xf97b,0x7ce8,0x4d86,0x7d00,0x4d8c,0x7d10,0xf9cf,0x7d22,0xf96a,0x7d2f,0xf94f,0x7d5b,
+0xfaaf,0x7d63,0x4d92,0x7da0,0xf93d,0x7dbe,0xf957,0x7dc7,0x4d98,0x7df4,0x4d9e,0x7e02,0x4da5,0x7e09,0xfa58,0x7e37,
+0xf950,0x7e41,0xfa59,0x7e45,0x4dab,0x7f3e,0xfab1,0x7f72,0xfa5a,0x7f79,0xf9e6,0x7f7a,0x4db1,0x7f85,0xf90f,0x7f95,
+0x4db7,0x7f9a,0xf9af,0x7fbd,0xfa1e,0x7ffa,0x4dbd,0x8001,0xf934,0x8005,0x4dc3,0x8046,0xf9b0,0x8060,0x4dcd,0x806f,
+0xf997,0x8070,0x4dd3,0x807e,0xf945,0x808b,0xf953,0x80ad,0x4dd9,0x80b2,0x4ddf,0x8103,0x4de5,0x813e,0x4deb,0x81d8,
+0xf926,0x81e8,0xf9f6,0x81ed,0xfa5c,0x8201,0x4df1,0x8204,0x4dfb,0x826f,0xf97c,0x8279,0x4e01,0x828b,0x4e04,0x8291,
+0x4e0a,0x829d,0x4e10,0x82b1,0x4e16,0x82b3,0x4e1c,0x82bd,0x4e22,0x82e5,0x4e28,0x82e6,0x4e30,0x831d,0x4e36,0x8323,
+0x4e3c,0x8336,0xf9fe,0x8352,0xfab3,0x8353,0x4e42,0x8363,0x4e48,0x83ad,0x4e4e,0x83bd,0x4e54,0x83c9,0xf93e,0x83ca,
+0x4e5a,0x83cc,0x4e60,0x83dc,0x4e66,0x83e7,0x4e6c,0x83ef,0xfab4,0x83f1,0xf958,0x843d,0xf918,0x8449,0xf96e,0x8457,
+0x4e72,0x84ee,0xf999,0x84f1,0x4e7a,0x84f3,0x4e80,0x84fc,0xf9c2,0x8516,0x4e86,0x8564,0x4e8c,0x85cd,0xf923,0x85fa,
+0xf9f0,0x8606,0xf935,0x8612,0xfa20,0x862d,0xf91f,0x863f,0xf910,0x8650,0x4e92,0x865c,0x4e98,0x8667,0x4ea0,0x8669,
+0x4ea6,0x8688,0x4eac,0x86a9,0x4eb2,0x86e2,0x4eb8,0x870e,0x4ebe,0x8728,0x4ec4,0x876b,0x4eca,0x8779,0x4ed0,0x8786,
+0x4ed8,0x87ba,0xf911,0x87e1,0x4ede,0x8801,0x4ee4,0x881f,0xf927,0x884c,0xfa08,0x8860,0x4eea,0x8863,0x4ef0,0x88c2,
+0xf9a0,0x88cf,0xf9e7,0x88d7,0x4ef6,0x88de,0x4efc,0x88e1,0xf9e8,0x88f8,0xf912,0x88fa,0x4f02,0x8910,0xfa60,0x8941,
+0xfab6,0x8964,0xf924,0x8986,0xfab7,0x898b,0xfa0a,0x8996,0x4f08,0x8aa0,0x4f0d,0x8aaa,0x4f13,0x8abf,0xfab9,0x8acb,
+0xfabb,0x8ad2,0xf97d,0x8ad6,0xf941,0x8aed,0x4f18,0x8af8,0x4f20,0x8afe,0x4f25,0x8b01,0x4f2a,0x8b39,0x4f2f,0x8b58,
+0xf9fc,0x8b80,0xf95a,0x8b8a,0x4f34,0x8c48,0xf900,0x8c55,0x4f3c,0x8cab,0x4f42,0x8cc1,0x4f48,0x8cc2,0xf948,0x8cc8,
+0xf903,0x8cd3,0xfa64,0x8d08,0x4f4e,0x8d1b,0x4f53,0x8d77,0x4f59,0x8dbc,0x4f5f,0x8dcb,0x4f65,0x8def,0xf937,0x8df0,
+0x4f6b,0x8eca,0xf902,0x8ed4,0x4f71,0x8f26,0xf998,0x8f2a,0xf9d7,0x8f38,0x4f77,0x8f3b,0xfa07,0x8f62,0xf98d,0x8f9e,
+0x4f7f,0x8fb0,0xf971,0x8fb6,0xfa66,0x9023,0xf99a,0x9038,0x4f85,0x9072,0xfac3,0x907c,0xf9c3,0x908f,0xf913,0x9094,
+0x4f8a,0x90ce,0xf92c,0x90f1,0x4f90,0x90fd,0xfa26,0x9111,0x4f96,0x911b,0x4f9c,0x916a,0xf919,0x9199,0xfac4,0x91b4,
+0xf9b7,0x91cc,0xf9e9,0x91cf,0xf97e,0x91d1,0xf90a,0x9234,0xf9b1,0x9238,0x4fa2,0x9276,0xfac5,0x927c,0x4fa8,0x92d7,
+0x4fae,0x92d8,0x4fb4,0x9304,0xf93f,0x934a,0xf99b,0x93f9,0x4fba,0x9415,0x4fc0,0x958b,0x4fc6,0x95ad,0xf986,0x95b7,
+0x4fcc,0x962e,0xf9c6,0x964b,0xf951,0x964d,0xfa09,0x9675,0xf959,0x9678,0xf9d3,0x967c,0xfac6,0x9686,0xf9dc,0x96a3,
+0xf9f1,0x96b8,0xf9b8,0x96c3,0x4fd2,0x96e2,0xf9ea,0x96e3,0x4fd8,0x96f6,0xf9b2,0x96f7,0xf949,0x9723,0x4fdd,0x9732,
+0xf938,0x9748,0xf9b3,0x9756,0x4fe3,0x97db,0xfac9,0x97e0,0x4fe8,0x97ff,0x4fee,0x980b,0x4ff3,0x9818,0xf9b4,0x9829,
+0x4ffb,0x983b,0x5001,0x985e,0xf9d0,0x98e2,0x5006,0x98ef,0xfa2a,0x98fc,0xfa2b,0x9928,0xfa2c,0x9929,0x500c,0x99a7,
+0x5012,0x99c2,0x5018,0x99f1,0xf91a,0x99fe,0x501e,0x9a6a,0xf987,0x9b12,0x5024,0x9b6f,0xf939,0x9c40,0x502c,0x9c57,
+0xf9f2,0x9cfd,0x5032,0x9d67,0x5038,0x9db4,0xfa2d,0x9dfa,0xf93a,0x9e1e,0xf920,0x9e7f,0xf940,0x9e97,0xf988,0x9e9f,
+0xf9f3,0x9ebb,0x503e,0x9ece,0xf989,0x9ef9,0x5044,0x9efe,0x504a,0x9f05,0x5050,0x9f0f,0x5056,0x9f16,0x505c,0x9f3b,
+0x5062,0x9f43,0xfad8,0x9f8d,0xf9c4,0x9f8e,0xfad9,0x9f9c,0x5068,0x8101,0xd157,0xd15e,1,0xd158,0x106d,1,
+0xd1b9,0x1073,1,0xd1ba,0x1081,0x8202,0x122,0xf803,0x8202,0x51c,0xf812,0x8202,0x525,0xf91b,0x8202,0x54b,
+0xf816,0x8202,0x63a,0xf80d,0x8202,0x804,0xf9d9,0x8202,0x8de,0xf9dd,0x8202,0xa2c,0xf834,0x8202,0xb63,0xf838,
+0x8202,0x14e4,0xf859,0x8202,0x16a8,0xf860,0x8202,0x16ea,0xf861,0x8202,0x19c8,0xf86c,0x8202,0x1b18,0xf871,0x8202,
+0x1d0b,0xf8f8,0x8202,0x1de4,0xf87b,0x8202,0x1de6,0xf87d,0x8202,0x2183,0xf889,0x8202,0x219f,0xf939,2,0x2331,
+0x108f,0x8202,0x26d4,0xf8a4,0x8002,0x2844,0xfad0,0x8002,0x284a,0xfacf,0x8202,0x2b0c,0xf8b8,0x8202,0x2bf1,0xf8be,
+0x8202,0x300a,0xf8ca,0x8202,0x32b8,0xf897,0x8202,0x335f,0xf980,0x8202,0x3393,0xf989,0x8202,0x339c,0xf98a,0x8202,
+0x33c3,0xf8dd,0x8002,0x33d5,0xfad1,0x8202,0x346d,0xf8e3,0x8202,0x36a3,0xf8ec,0x8202,0x38a7,0xf8f0,0x8202,0x3a8d,
+0xf8f7,0x8202,0x3afa,0xf8f9,0x8202,0x3cbc,0xf8fb,0x8202,0x3d1e,0xf906,0x8202,0x3ed1,0xf90d,0x8202,0x3f5e,0xf910,
+0x8202,0x3f8e,0xf911,0x8202,0x4263,0xf91d,0x8202,0x43ab,0xf91f,0x8202,0x4608,0xf923,0x8202,0x4735,0xf926,0x8202,
+0x4814,0xf927,0x8202,0x4c36,0xf935,0x8202,0x4c92,0xf937,0x8202,0x4fa1,0xf93b,0x8202,0x4fb8,0xf93c,0x8202,0x5044,
+0xf93d,0x8202,0x50f2,0xf942,0x8202,0x50f3,0xf941,0x8202,0x5119,0xf943,0x8202,0x5133,0xf944,0x8002,0x5249,0xfad5,
+0x8202,0x541d,0xf94d,0x8202,0x5626,0xf952,0x8202,0x569a,0xf954,0x8202,0x56c5,0xf955,0x8202,0x597c,0xf95c,2,
+0x5aa7,0x1095,0x8202,0x5bab,0xf961,0x8202,0x5c80,0xf965,0x8002,0x5cd0,0xfad6,0x8202,0x5f86,0xf96b,0x8202,0x61da,
+0xf898,0x8202,0x6228,0xf972,0x8202,0x6247,0xf973,0x8202,0x62d9,0xf975,0x8202,0x633e,0xf977,0x8202,0x64da,0xf97b,
+0x8202,0x6523,0xf97c,0x8202,0x65a8,0xf97e,0x8202,0x67a7,0xf987,0x8202,0x67b5,0xf988,0x8202,0x6b3c,0xf997,0x8202,
+0x6c36,0xf9a4,0x8202,0x6cd5,0xf9a6,0x8202,0x6d6b,0xf9a5,0x8202,0x6f2c,0xf9ad,0x8202,0x6fb1,0xf9b0,0x8202,0x70d2,
+0xf9b1,0x8202,0x73ca,0xf9ab,0x8202,0x7667,0xf9c5,0x8202,0x78ae,0xf9cb,0x8202,0x7966,0xf9cc,0x8202,0x7ca8,0xf9d3,
+0x8002,0x7ed3,0xfad7,0x8202,0x7f2f,0xf9d8,0x8202,0x85d2,0xf9e0,0x8202,0x85ed,0xf9e1,0x8202,0x872e,0xf9e5,0x8202,
+0x8bfa,0xf9ed,0x8202,0x8d77,0xf9f1,0x8202,0x9145,0xf9f6,0x8202,0x91df,0xf81c,0x8202,0x921a,0xf9f7,0x8202,0x940a,
+0xf9fb,0x8202,0x9496,0xf9fd,0x8202,0x95b6,0xfa01,0x8202,0x9b30,0xfa09,0x8202,0xa0ce,0xfa10,0x8202,0xa105,0xfa12,
+0x8202,0xa20e,0xfa13,0x8202,0xa291,0xfa14,0x8202,0xa392,0xf88f,0x8202,0xa600,0xfa1d,0x8016,0x12,0xf900,0xfa0e,
+0xfa10,0xfa11,0xfa12,0xfa13,0xfa15,0xfa1f,0xfa20,0xfa21,0xfa22,0xfa23,0xfa25,0xfa27,0xfa2a,0xfa2e,0xfa70,0xfada,
+2,0xf800,2,0xfa1e,0x8376,0x2ba,0x221,0x222,0x234,0x250,0x2ae,0x2b0,0x2ef,0x300,0x350,0x360,
+0x370,0x374,0x376,0x37a,0x37b,0x37e,0x37f,0x384,0x38b,0x38c,0x38d,0x38e,0x3a2,0x3a3,0x3cf,0x3d0,
+0x3f7,0x400,0x487,0x488,0x4cf,0x4d0,0x4f6,0x4f8,0x4fa,0x500,0x510,0x531,0x557,0x559,0x560,0x561,
+0x588,0x589,0x58b,0x591,0x5a2,0x5a3,0x5ba,0x5bb,0x5c5,0x5d0,0x5eb,0x5f0,0x5f5,0x60c,0x60d,0x61b,
+0x61c,0x61f,0x620,0x621,0x63b,0x640,0x656,0x660,0x6ee,0x6f0,0x6ff,0x700,0x70e,0x70f,0x72d,0x730,
+0x74b,0x780,0x7b2,0x901,0x904,0x905,0x93a,0x93c,0x94e,0x950,0x955,0x958,0x971,0x981,0x984,0x985,
+0x98d,0x98f,0x991,0x993,0x9a9,0x9aa,0x9b1,0x9b2,0x9b3,0x9b6,0x9ba,0x9bc,0x9bd,0x9be,0x9c5,0x9c7,
+0x9c9,0x9cb,0x9ce,0x9d7,0x9d8,0x9dc,0x9de,0x9df,0x9e4,0x9e6,0x9fb,0xa02,0xa03,0xa05,0xa0b,0xa0f,
+0xa11,0xa13,0xa29,0xa2a,0xa31,0xa32,0xa34,0xa35,0xa37,0xa38,0xa3a,0xa3c,0xa3d,0xa3e,0xa43,0xa47,
+0xa49,0xa4b,0xa4e,0xa59,0xa5d,0xa5e,0xa5f,0xa66,0xa75,0xa81,0xa84,0xa85,0xa8c,0xa8d,0xa8e,0xa8f,
+0xa92,0xa93,0xaa9,0xaaa,0xab1,0xab2,0xab4,0xab5,0xaba,0xabc,0xac6,0xac7,0xaca,0xacb,0xace,0xad0,
+0xad1,0xae0,0xae1,0xae6,0xaf0,0xb01,0xb04,0xb05,0xb0d,0xb0f,0xb11,0xb13,0xb29,0xb2a,0xb31,0xb32,
+0xb34,0xb36,0xb3a,0xb3c,0xb44,0xb47,0xb49,0xb4b,0xb4e,0xb56,0xb58,0xb5c,0xb5e,0xb5f,0xb62,0xb66,
+0xb71,0xb82,0xb84,0xb85,0xb8b,0xb8e,0xb91,0xb92,0xb96,0xb99,0xb9b,0xb9c,0xb9d,0xb9e,0xba0,0xba3,
+0xba5,0xba8,0xbab,0xbae,0xbb6,0xbb7,0xbba,0xbbe,0xbc3,0xbc6,0xbc9,0xbca,0xbce,0xbd7,0xbd8,0xbe7,
+0xbf3,0xc01,0xc04,0xc05,0xc0d,0xc0e,0xc11,0xc12,0xc29,0xc2a,0xc34,0xc35,0xc3a,0xc3e,0xc45,0xc46,
+0xc49,0xc4a,0xc4e,0xc55,0xc57,0xc60,0xc62,0xc66,0xc70,0xc82,0xc84,0xc85,0xc8d,0xc8e,0xc91,0xc92,
+0xca9,0xcaa,0xcb4,0xcb5,0xcba,0xcbe,0xcc5,0xcc6,0xcc9,0xcca,0xcce,0xcd5,0xcd7,0xcde,0xcdf,0xce0,
+0xce2,0xce6,0xcf0,0xd02,0xd04,0xd05,0xd0d,0xd0e,0xd11,0xd12,0xd29,0xd2a,0xd3a,0xd3e,0xd44,0xd46,
+0xd49,0xd4a,0xd4e,0xd57,0xd58,0xd60,0xd62,0xd66,0xd70,0xd82,0xd84,0xd85,0xd97,0xd9a,0xdb2,0xdb3,
+0xdbc,0xdbd,0xdbe,0xdc0,0xdc7,0xdca,0xdcb,0xdcf,0xdd5,0xdd6,0xdd7,0xdd8,0xde0,0xdf2,0xdf5,0xe01,
+0xe3b,0xe3f,0xe5c,0xe81,0xe83,0xe84,0xe85,0xe87,0xe89,0xe8a,0xe8b,0xe8d,0xe8e,0xe94,0xe98,0xe99,
+0xea0,0xea1,0xea4,0xea5,0xea6,0xea7,0xea8,0xeaa,0xeac,0xead,0xeba,0xebb,0xebe,0xec0,0xec5,0xec6,
+0xec7,0xec8,0xece,0xed0,0xeda,0xedc,0xede,0xf00,0xf48,0xf49,0xf6b,0xf71,0xf8c,0xf90,0xf98,0xf99,
+0xfbd,0xfbe,0xfcd,0xfcf,0xfd0,0x1000,0x1022,0x1023,0x1028,0x1029,0x102b,0x102c,0x1033,0x1036,0x103a,0x1040,
+0x105a,0x10a0,0x10c6,0x10d0,0x10f9,0x10fb,0x10fc,0x1100,0x115a,0x115f,0x11a3,0x11a8,0x11fa,0x1200,0x1207,0x1208,
+0x1247,0x1248,0x1249,0x124a,0x124e,0x1250,0x1257,0x1258,0x1259,0x125a,0x125e,0x1260,0x1287,0x1288,0x1289,0x128a,
+0x128e,0x1290,0x12af,0x12b0,0x12b1,0x12b2,0x12b6,0x12b8,0x12bf,0x12c0,0x12c1,0x12c2,0x12c6,0x12c8,0x12cf,0x12d0,
+0x12d7,0x12d8,0x12ef,0x12f0,0x130f,0x1310,0x1311,0x1312,0x1316,0x1318,0x131f,0x1320,0x1347,0x1348,0x135b,0x1361,
+0x137d,0x13a0,0x13f5,0x1401,0x1677,0x1680,0x169d,0x16a0,0x16f1,0x1700,0x170d,0x170e,0x1715,0x1720,0x1737,0x1740,
+0x1754,0x1760,0x176d,0x176e,0x1771,0x1772,0x1774,0x1780,0x17dd,0x17e0,0x17ea,0x1800,0x180f,0x1810,0x181a,0x1820,
+0x1878,0x1880,0x18aa,0x1e00,0x1e9c,0x1ea0,0x1efa,0x1f00,0x1f16,0x1f18,0x1f1e,0x1f20,0x1f46,0x1f48,0x1f4e,0x1f50,
+0x1f58,0x1f59,0x1f5a,0x1f5b,0x1f5c,0x1f5d,0x1f5e,0x1f5f,0x1f7e,0x1f80,0x1fb5,0x1fb6,0x1fc5,0x1fc6,0x1fd4,0x1fd6,
+0x1fdc,0x1fdd,0x1ff0,0x1ff2,0x1ff5,0x1ff6,0x1fff,0x2000,0x2053,0x2057,0x2058,0x205f,0x2064,0x206a,0x2072,0x2074,
+0x208f,0x20a0,0x20b2,0x20d0,0x20eb,0x2100,0x213b,0x213d,0x214c,0x2153,0x2184,0x2190,0x23cf,0x2400,0x2427,0x2440,
+0x244b,0x2460,0x24ff,0x2500,0x2614,0x2616,0x2618,0x2619,0x267e,0x2680,0x268a,0x2701,0x2705,0x2706,0x270a,0x270c,
+0x2728,0x2729,0x274c,0x274d,0x274e,0x274f,0x2753,0x2756,0x2757,0x2758,0x275f,0x2761,0x2795,0x2798,0x27b0,0x27b1,
+0x27bf,0x27d0,0x27ec,0x27f0,0x2b00,0x2e80,0x2e9a,0x2e9b,0x2ef4,0x2f00,0x2fd6,0x2ff0,0x2ffc,0x3000,0x3040,0x3041,
+0x3097,0x3099,0x3100,0x3105,0x312d,0x3131,0x318f,0x3190,0x31b8,0x31f0,0x321d,0x3220,0x3244,0x3251,0x327c,0x327f,
+0x32cc,0x32d0,0x32ff,0x3300,0x3377,0x337b,0x33de,0x33e0,0x33ff,0x3400,0x4db6,0x4e00,0x9fa6,0xa000,0xa48d,0xa490,
+0xa4c7,0xac00,0xd7a4,0xd800,0xfa2e,0xfa30,0xfa6b,0xfb00,0xfb07,0xfb13,0xfb18,0xfb1d,0xfb37,0xfb38,0xfb3d,0xfb3e,
+0xfb3f,0xfb40,0xfb42,0xfb43,0xfb45,0xfb46,0xfbb2,0xfbd3,0xfd40,0xfd50,0xfd90,0xfd92,0xfdc8,0xfdd0,0xfdfd,0xfe00,
+0xfe10,0xfe20,0xfe24,0xfe30,0xfe47,0xfe49,0xfe53,0xfe54,0xfe67,0xfe68,0xfe6c,0xfe70,0xfe75,0xfe76,0xfefd,0xfeff,
+0xff00,0xff01,0xffbf,0xffc2,0xffc8,0xffca,0xffd0,0xffd2,0xffd8,0xffda,0xffdd,0xffe0,0xffe7,0xffe8,0xffef,0xfff9,
+1,0,1,0x300,1,0x31f,1,0x320,1,0x324,1,0x330,1,0x34b,1,0x400,
+1,0x426,1,0x428,1,0x44e,1,0xd000,1,0xd0f6,1,0xd100,1,0xd127,1,0xd12a,
+1,0xd1de,1,0xd400,1,0xd455,1,0xd456,1,0xd49d,1,0xd49e,1,0xd4a0,1,0xd4a2,
+1,0xd4a3,1,0xd4a5,1,0xd4a7,1,0xd4a9,1,0xd4ad,1,0xd4ae,1,0xd4ba,1,0xd4bb,
+1,0xd4bc,1,0xd4bd,1,0xd4c1,1,0xd4c2,1,0xd4c4,1,0xd4c5,1,0xd506,1,0xd507,
+1,0xd50b,1,0xd50d,1,0xd515,1,0xd516,1,0xd51d,1,0xd51e,1,0xd53a,1,0xd53b,
+1,0xd53f,1,0xd540,1,0xd545,1,0xd546,1,0xd547,1,0xd54a,1,0xd551,1,0xd552,
+1,0xd6a4,1,0xd6a8,1,0xd7ca,1,0xd7ce,1,0xd800,1,0xfffe,2,0xa6d7,2,0xf800,
+2,0xfa1e,2,0xfffe,3,0,3,0xfffe,4,0,4,0xfffe,5,0,5,0xfffe,
+6,0,6,0xfffe,7,0,7,0xfffe,8,0,8,0xfffe,9,0,9,0xfffe,
+0xa,0,0xa,0xfffe,0xb,0,0xb,0xfffe,0xc,0,0xc,0xfffe,0xd,0,0xd,0xfffe,
+0xe,0,0xe,1,0xe,2,0xe,0x20,0xe,0x80,0xe,0xfffe
};
diff --git a/Build/source/libs/icu-xetex/common/uprops.c b/Build/source/libs/icu-xetex/common/uprops.c
index 9ae04823959..86464e54e30 100644
--- a/Build/source/libs/icu-xetex/common/uprops.c
+++ b/Build/source/libs/icu-xetex/common/uprops.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -36,115 +36,13 @@
/* cleanup ------------------------------------------------------------------ */
-static const UCaseProps *gCsp=NULL;
static const UBiDiProps *gBdp=NULL;
static UBool U_CALLCONV uprops_cleanup(void) {
- gCsp=NULL;
gBdp=NULL;
return TRUE;
}
-/* case mapping properties API ---------------------------------------------- */
-
-/* get the UCaseProps singleton, or else its dummy, once and for all */
-static const UCaseProps *
-getCaseProps() {
- /*
- * This lazy intialization with double-checked locking (without mutex protection for
- * the initial check) is transiently unsafe under certain circumstances.
- * Check the readme and use u_init() if necessary.
- */
-
- /* the initial check is performed by the GET_CASE_PROPS() macro */
- const UCaseProps *csp;
- UErrorCode errorCode=U_ZERO_ERROR;
-
- csp=ucase_getSingleton(&errorCode);
- if(U_FAILURE(errorCode)) {
- errorCode=U_ZERO_ERROR;
- csp=ucase_getDummy(&errorCode);
- if(U_FAILURE(errorCode)) {
- return NULL;
- }
- }
-
- umtx_lock(NULL);
- if(gCsp==NULL) {
- gCsp=csp;
- csp=NULL;
- ucln_common_registerCleanup(UCLN_COMMON_UPROPS, uprops_cleanup);
- }
- umtx_unlock(NULL);
-
- return gCsp;
-}
-
-/*
- * In ICU 3.0, most Unicode properties were loaded from uprops.icu.
- * ICU 3.2 adds ucase.icu for case mapping properties.
- * ICU 3.4 adds ubidi.icu for bidi/shaping properties and
- * removes case/bidi/shaping properties from uprops.icu.
- *
- * Loading of uprops.icu was never mutex-protected and required u_init()
- * for thread safety.
- * In order to maintain performance for all such properties,
- * ucase.icu and ubidi.icu are loaded lazily, without mutexing.
- * u_init() will try to load them for thread safety,
- * but u_init() will not fail if they are missing.
- *
- * uchar.c maintains a tri-state flag for (not loaded/loaded/failed to load)
- * and an error code for load failure.
- * Instead, here we try to load at most once.
- * If it works, we use the resulting singleton object.
- * If it fails, then we get a dummy object, which always works unless
- * we are seriously out of memory.
- * After the first try, we have a never-changing pointer to either the
- * real singleton or the dummy.
- *
- * This method is used in Unicode properties APIs (uchar.h) that
- * do not have a service object and also do not have an error code parameter.
- * Other API implementations get the singleton themselves
- * (with mutexing), store it in the service object, and report errors.
- */
-#define GET_CASE_PROPS() (gCsp!=NULL ? gCsp : getCaseProps())
-
-/* public API (see uchar.h) */
-
-U_CAPI UBool U_EXPORT2
-u_isULowercase(UChar32 c) {
- return (UBool)(UCASE_LOWER==ucase_getType(GET_CASE_PROPS(), c));
-}
-
-U_CAPI UBool U_EXPORT2
-u_isUUppercase(UChar32 c) {
- return (UBool)(UCASE_UPPER==ucase_getType(GET_CASE_PROPS(), c));
-}
-
-/* Transforms the Unicode character to its lower case equivalent.*/
-U_CAPI UChar32 U_EXPORT2
-u_tolower(UChar32 c) {
- return ucase_tolower(GET_CASE_PROPS(), c);
-}
-
-/* Transforms the Unicode character to its upper case equivalent.*/
-U_CAPI UChar32 U_EXPORT2
-u_toupper(UChar32 c) {
- return ucase_toupper(GET_CASE_PROPS(), c);
-}
-
-/* Transforms the Unicode character to its title case equivalent.*/
-U_CAPI UChar32 U_EXPORT2
-u_totitle(UChar32 c) {
- return ucase_totitle(GET_CASE_PROPS(), c);
-}
-
-/* return the simple case folding mapping for c */
-U_CAPI UChar32 U_EXPORT2
-u_foldCase(UChar32 c, uint32_t options) {
- return ucase_fold(GET_CASE_PROPS(), c, options);
-}
-
/* bidi/shaping properties API ---------------------------------------------- */
/* get the UBiDiProps singleton, or else its dummy, once and for all */
@@ -261,23 +159,7 @@ u_hasBinaryProperty(UChar32 c, UProperty which) {
return (u_getUnicodeProperties(c, column)&mask)!=0;
} else {
if(column==UPROPS_SRC_CASE) {
- /* case mapping properties */
- const UCaseProps *csp=GET_CASE_PROPS();
- if(csp==NULL) {
- return FALSE;
- }
- switch(which) {
- case UCHAR_LOWERCASE:
- return (UBool)(UCASE_LOWER==ucase_getType(csp, c));
- case UCHAR_UPPERCASE:
- return (UBool)(UCASE_UPPER==ucase_getType(csp, c));
- case UCHAR_SOFT_DOTTED:
- return ucase_isSoftDotted(csp, c);
- case UCHAR_CASE_SENSITIVE:
- return ucase_isCaseSensitive(csp, c);
- default:
- break;
- }
+ return ucase_hasBinaryProperty(c, which);
} else if(column==UPROPS_SRC_NORM) {
#if !UCONFIG_NO_NORMALIZATION
/* normalization properties from unorm.icu */
@@ -288,7 +170,7 @@ u_hasBinaryProperty(UChar32 c, UProperty which) {
case UCHAR_NFKD_INERT:
case UCHAR_NFC_INERT:
case UCHAR_NFKC_INERT:
- return unorm_isNFSkippable(c, (UNormalizationMode)(which-UCHAR_NFD_INERT)+UNORM_NFD);
+ return unorm_isNFSkippable(c, (UNormalizationMode)(which-UCHAR_NFD_INERT+UNORM_NFD));
case UCHAR_SEGMENT_STARTER:
return unorm_isCanonSafeStart(c);
default:
@@ -298,19 +180,19 @@ u_hasBinaryProperty(UChar32 c, UProperty which) {
} else if(column==UPROPS_SRC_BIDI) {
/* bidi/shaping properties */
const UBiDiProps *bdp=GET_BIDI_PROPS();
- if(bdp==NULL) {
- return FALSE;
- }
- switch(which) {
- case UCHAR_BIDI_MIRRORED:
- return ubidi_isMirrored(bdp, c);
- case UCHAR_BIDI_CONTROL:
- return ubidi_isBidiControl(bdp, c);
- case UCHAR_JOIN_CONTROL:
- return ubidi_isJoinControl(bdp, c);
- default:
- break;
+ if(bdp!=NULL) {
+ switch(which) {
+ case UCHAR_BIDI_MIRRORED:
+ return ubidi_isMirrored(bdp, c);
+ case UCHAR_BIDI_CONTROL:
+ return ubidi_isBidiControl(bdp, c);
+ case UCHAR_JOIN_CONTROL:
+ return ubidi_isJoinControl(bdp, c);
+ default:
+ break;
+ }
}
+ /* else return FALSE below */
} else if(column==UPROPS_SRC_CHAR) {
switch(which) {
case UCHAR_POSIX_BLANK:
@@ -389,7 +271,7 @@ u_getIntPropertyValue(UChar32 c, UProperty which) {
case UCHAR_NFKD_QUICK_CHECK:
case UCHAR_NFC_QUICK_CHECK:
case UCHAR_NFKC_QUICK_CHECK:
- return (int32_t)unorm_getQuickCheck(c, (UNormalizationMode)(which-UCHAR_NFD_QUICK_CHECK)+UNORM_NFD);
+ return (int32_t)unorm_getQuickCheck(c, (UNormalizationMode)(which-UCHAR_NFD_QUICK_CHECK+UNORM_NFD));
case UCHAR_LEAD_CANONICAL_COMBINING_CLASS:
return unorm_getFCD16FromCodePoint(c)>>8;
case UCHAR_TRAIL_CANONICAL_COMBINING_CLASS:
diff --git a/Build/source/libs/icu-xetex/common/uprops.h b/Build/source/libs/icu-xetex/common/uprops.h
index dec3dd5b119..f8af28c3306 100644
--- a/Build/source/libs/icu-xetex/common/uprops.h
+++ b/Build/source/libs/icu-xetex/common/uprops.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -325,19 +325,6 @@ enum {
U_CAPI int32_t U_EXPORT2
uprv_getMaxCharNameLength(void);
-#if 0
-/*
-Currently not used but left for future use. Probably by UnicodeSet.
-urename.h and unames.c changed accordingly.
-*/
-/**
- * Get the maximum length of an ISO comment.
- * @return 0 if no ISO comments available.
- */
-U_CAPI int32_t U_EXPORT2
-uprv_getMaxISOCommentLength();
-#endif
-
/**
* Fills set with characters that are used in Unicode character names.
* Includes all characters that are used in regular/Unicode 1.0/extended names.
@@ -347,21 +334,6 @@ uprv_getMaxISOCommentLength();
U_CAPI void U_EXPORT2
uprv_getCharNameCharacters(const USetAdder *sa);
-#if 0
-/*
-Currently not used but left for future use. Probably by UnicodeSet.
-urename.h and unames.c changed accordingly.
-*/
-/**
- * Fills set with characters that are used in Unicode character names.
- * Just empties the set if no ISO comments are available.
- * @param sa USetAdder to receive characters.
- */
-U_CAPI void U_EXPORT2
-uprv_getISOCommentCharacters(const USetAdder *sa);
-*/
-#endif
-
/**
* Constants for which data and implementation files provide which properties.
* Used by UnicodeSet for service-specific property enumeration.
diff --git a/Build/source/libs/icu-xetex/common/ures_cnv.c b/Build/source/libs/icu-xetex/common/ures_cnv.c
index c7d94b8af6f..c9729019df6 100644
--- a/Build/source/libs/icu-xetex/common/ures_cnv.c
+++ b/Build/source/libs/icu-xetex/common/ures_cnv.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -54,10 +54,6 @@ ures_openU(const UChar *myPath,
#if !UCONFIG_NO_CONVERSION
/* use the default converter to support variant-character paths */
UConverter *cnv=u_getDefaultConverter(status);
- if(U_FAILURE(*status)) {
- return NULL;
- }
-
length=ucnv_fromUChars(cnv, path, (int32_t)sizeof(pathBuffer), myPath, length, status);
u_releaseDefaultConverter(cnv);
if(U_FAILURE(*status)) {
diff --git a/Build/source/libs/icu-xetex/common/uresbund.c b/Build/source/libs/icu-xetex/common/uresbund.c
index 8b322b7c194..1a99a241138 100644
--- a/Build/source/libs/icu-xetex/common/uresbund.c
+++ b/Build/source/libs/icu-xetex/common/uresbund.c
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
******************************************************************************
*
@@ -214,7 +214,7 @@ static void initCache(UErrorCode *status) {
makeCache = (cache == NULL);
umtx_unlock(&resbMutex);
if(makeCache) {
- UHashtable *newCache = uhash_open(hashEntry, compareEntries, status);
+ UHashtable *newCache = uhash_open(hashEntry, compareEntries, NULL, status);
if (U_FAILURE(*status)) {
return;
}
@@ -257,7 +257,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
const char *myPath = NULL;
char aliasName[100] = { 0 };
int32_t aliasLen = 0;
- UBool isAlias = FALSE;
+ /*UBool isAlias = FALSE;*/
UHashTok hashkey;
if(U_FAILURE(*status)) {
@@ -320,12 +320,10 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
r->fHashKey = hashValue;
r->fParent = NULL;
- r->fData.data = NULL;
- r->fData.pRoot = NULL;
- r->fData.rootRes = 0;
+ uprv_memset(&r->fData, 0, sizeof(ResourceData));
r->fBogus = U_ZERO_ERROR;
- /* this is the acutal loading - returns bool true/false */
+ /* this is the actual loading - returns bool true/false */
result = res_load(&(r->fData), r->fPath, r->fName, status);
if (result == FALSE || U_FAILURE(*status)) {
@@ -342,7 +340,7 @@ static UResourceDataEntry *init_entry(const char *localeID, const char *path, UE
const UChar *alias = res_getString(&(r->fData), aliasres, &aliasLen);
if(alias != NULL && aliasLen > 0) { /* if there is actual alias - unload and load new data */
u_UCharsToChars(alias, aliasName, aliasLen+1);
- isAlias = TRUE;
+ /*isAlias = TRUE;*/
res_unload(&(r->fData));
result = res_load(&(r->fData), r->fPath, aliasName, status);
if (result == FALSE || U_FAILURE(*status)) {
@@ -461,7 +459,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, UEr
if(r != NULL) { /* if there is one real locale, we can look for parents. */
t1 = r;
hasRealData = TRUE;
- while (hasChopped && !isRoot && t1->fParent == NULL) {
+ while (hasChopped && !isRoot && t1->fParent == NULL && !t1->fData.noFallback) {
/* insert regular parents */
t2 = init_entry(name, r->fPath, &parentStatus);
t1->fParent = t2;
@@ -503,7 +501,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, UEr
} else { /* we don't even have the root locale */
*status = U_MISSING_RESOURCE_ERROR;
}
- } else if(!isRoot && uprv_strcmp(t1->fName, kRootLocaleName) != 0 && t1->fParent == NULL) {
+ } else if(!isRoot && uprv_strcmp(t1->fName, kRootLocaleName) != 0 && t1->fParent == NULL && !r->fData.noFallback) {
/* insert root locale */
t2 = init_entry(kRootLocaleName, r->fPath, &parentStatus);
if(!hasRealData) {
@@ -582,6 +580,80 @@ static void entryClose(UResourceDataEntry *resB) {
umtx_unlock(&resbMutex);
}
+/*
+U_CFUNC void ures_setResPath(UResourceBundle *resB, const char* toAdd) {
+ if(resB->fResPath == NULL) {
+ resB->fResPath = resB->fResBuf;
+ *(resB->fResPath) = 0;
+ }
+ resB->fResPathLen = uprv_strlen(toAdd);
+ if(RES_BUFSIZE <= resB->fResPathLen+1) {
+ if(resB->fResPath == resB->fResBuf) {
+ resB->fResPath = (char *)uprv_malloc((resB->fResPathLen+1)*sizeof(char));
+ } else {
+ resB->fResPath = (char *)uprv_realloc(resB->fResPath, (resB->fResPathLen+1)*sizeof(char));
+ }
+ }
+ uprv_strcpy(resB->fResPath, toAdd);
+}
+*/
+static void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t lenToAdd) {
+ int32_t resPathLenOrig = resB->fResPathLen;
+ if(resB->fResPath == NULL) {
+ resB->fResPath = resB->fResBuf;
+ *(resB->fResPath) = 0;
+ resB->fResPathLen = 0;
+ }
+ resB->fResPathLen += lenToAdd;
+ if(RES_BUFSIZE <= resB->fResPathLen+1) {
+ if(resB->fResPath == resB->fResBuf) {
+ resB->fResPath = (char *)uprv_malloc((resB->fResPathLen+1)*sizeof(char));
+ uprv_strcpy(resB->fResPath, resB->fResBuf);
+ } else {
+ resB->fResPath = (char *)uprv_realloc(resB->fResPath, (resB->fResPathLen+1)*sizeof(char));
+ }
+ }
+ uprv_strcpy(resB->fResPath + resPathLenOrig, toAdd);
+}
+
+static void ures_freeResPath(UResourceBundle *resB) {
+ if (resB->fResPath && resB->fResPath != resB->fResBuf) {
+ uprv_free(resB->fResPath);
+ }
+ resB->fResPath = NULL;
+ resB->fResPathLen = 0;
+}
+
+static void
+ures_closeBundle(UResourceBundle* resB, UBool freeBundleObj)
+{
+ if(resB != NULL) {
+ if(resB->fData != NULL) {
+ entryClose(resB->fData);
+ }
+ if(resB->fVersion != NULL) {
+ uprv_free(resB->fVersion);
+ }
+ ures_freeResPath(resB);
+
+ if(ures_isStackObject(resB) == FALSE && freeBundleObj) {
+ uprv_free(resB);
+ }
+#if 0 /*U_DEBUG*/
+ else {
+ /* poison the data */
+ uprv_memset(resB, -1, sizeof(UResourceBundle));
+ }
+#endif
+ }
+}
+
+U_CAPI void U_EXPORT2
+ures_close(UResourceBundle* resB)
+{
+ ures_closeBundle(resB, TRUE);
+}
+
static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r,
const char *key, int32_t index, UResourceDataEntry *realData,
const UResourceBundle *parent, int32_t noAlias,
@@ -821,9 +893,17 @@ static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r,
if(resB->fVersion != NULL) {
uprv_free(resB->fVersion);
}
+ /*
+ weiv: if stack object was passed in, it doesn't really need to be reinited,
+ since the purpose of initing is to remove stack junk. However, at this point
+ we would not do anything to an allocated object, so stack object should be
+ treated the same
+ */
+ /*
if(ures_isStackObject(resB) != FALSE) {
ures_initStackObject(resB);
}
+ */
if(parent != resB) {
ures_freeResPath(resB);
}
@@ -861,9 +941,7 @@ static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r,
resB->fVersion = NULL;
resB->fRes = r;
/*resB->fParent = parent->fRes;*/
- resB->fResData.data = rdata->data;
- resB->fResData.pRoot = rdata->pRoot;
- resB->fResData.rootRes = rdata->rootRes;
+ uprv_memcpy(&resB->fResData, rdata, sizeof(ResourceData));
resB->fSize = res_countArrayItems(&(resB->fResData), resB->fRes);
return resB;
}
@@ -884,18 +962,7 @@ UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *origin
}
} else {
isStackObject = ures_isStackObject(r);
- if(U_FAILURE(*status)) {
- return r;
- }
- ures_close(r);
- if(isStackObject == FALSE) {
- r = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle));
- /* test for NULL */
- if (r == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- }
+ ures_closeBundle(r, FALSE);
}
uprv_memcpy(r, original, sizeof(UResourceBundle));
r->fResPath = NULL;
@@ -907,10 +974,8 @@ UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *origin
if(r->fData != NULL) {
entryIncrease(r->fData);
}
- return r;
- } else {
- return r;
}
+ return r;
}
/**
@@ -943,6 +1008,78 @@ U_CAPI const UChar* U_EXPORT2 ures_getString(const UResourceBundle* resB, int32_
return NULL;
}
+static const char *
+ures_toUTF8String(const UChar *s16, int32_t length16,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status) {
+ int32_t capacity;
+
+ if (U_FAILURE(*status)) {
+ return NULL;
+ }
+ if (pLength != NULL) {
+ capacity = *pLength;
+ } else {
+ capacity = 0;
+ }
+ if (capacity < 0 || (capacity > 0 && dest == NULL)) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ if (length16 == 0) {
+ /* empty string, return as read-only pointer */
+ if (pLength != NULL) {
+ *pLength = 0;
+ }
+ if (forceCopy) {
+ u_terminateChars(dest, capacity, 0, status);
+ return dest;
+ } else {
+ return "";
+ }
+ } else {
+ /* We need to transform the string to the destination buffer. */
+ if (capacity < length16) {
+ /* No chance for the string to fit. Pure preflighting. */
+ return u_strToUTF8(NULL, 0, pLength, s16, length16, status);
+ }
+ if (!forceCopy && (length16 <= 0x2aaaaaaa)) {
+ /*
+ * We know the string will fit into dest because each UChar turns
+ * into at most three UTF-8 bytes. Fill the latter part of dest
+ * so that callers do not expect to use dest as a string pointer,
+ * hopefully leading to more robust code for when resource bundles
+ * may store UTF-8 natively.
+ * (In which case dest would not be used at all.)
+ *
+ * We do not do this if forceCopy=TRUE because then the caller
+ * expects the string to start exactly at dest.
+ *
+ * The test above for <= 0x2aaaaaaa prevents overflows.
+ * The +1 is for the NUL terminator.
+ */
+ int32_t maxLength = 3 * length16 + 1;
+ if (capacity > maxLength) {
+ dest += capacity - maxLength;
+ capacity = maxLength;
+ }
+ }
+ return u_strToUTF8(dest, capacity, pLength, s16, length16, status);
+ }
+}
+
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8String(const UResourceBundle *resB,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status) {
+ int32_t length16;
+ const UChar *s16 = ures_getString(resB, &length16, status);
+ return ures_toUTF8String(s16, length16, dest, pLength, forceCopy, status);
+}
+
U_CAPI const uint8_t* U_EXPORT2 ures_getBinary(const UResourceBundle* resB, int32_t* len,
UErrorCode* status) {
if (status==NULL || U_FAILURE(*status)) {
@@ -1116,7 +1253,6 @@ U_CAPI const UChar* U_EXPORT2 ures_getNextString(UResourceBundle *resB, int32_t*
case URES_INT_VECTOR:
default:
return NULL;
- break;
}
}
@@ -1259,6 +1395,17 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByIndex(const UResourceBundle *resB,
return NULL;
}
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8StringByIndex(const UResourceBundle *resB,
+ int32_t index,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status) {
+ int32_t length16;
+ const UChar *s16 = ures_getStringByIndex(resB, index, &length16, status);
+ return ures_toUTF8String(s16, length16, dest, pLength, forceCopy, status);
+}
+
/*U_CAPI const char *ures_getResPath(UResourceBundle *resB) {
return resB->fResPath;
}*/
@@ -1269,7 +1416,7 @@ ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status)
UResourceBundle *first = NULL;
UResourceBundle *result = fillIn;
char *packageName = NULL;
- char *pathToResource = NULL;
+ char *pathToResource = NULL, *save = NULL;
char *locale = NULL, *localeEnd = NULL;
int32_t length;
@@ -1278,7 +1425,7 @@ ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status)
}
length = (int32_t)(uprv_strlen(path)+1);
- pathToResource = (char *)uprv_malloc(length*sizeof(char));
+ save = pathToResource = (char *)uprv_malloc(length*sizeof(char));
/* test for NULL */
if(pathToResource == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
@@ -1314,7 +1461,7 @@ ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status)
}
ures_close(first);
}
- uprv_free(pathToResource);
+ uprv_free(save);
return result;
}
@@ -1345,6 +1492,20 @@ ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *f
return result;
}
+U_INTERNAL const UChar* U_EXPORT2
+ures_getStringByKeyWithFallback(const UResourceBundle *resB,
+ const char* inKey,
+ int32_t* len,
+ UErrorCode *status) {
+
+ UResourceBundle stack;
+ const UChar* retVal = NULL;
+ ures_initStackObject(&stack);
+ ures_getByKeyWithFallback(resB, inKey, &stack, status);
+ retVal = ures_getString(&stack, len, status);
+ ures_close(&stack);
+ return retVal;
+}
U_CAPI UResourceBundle* U_EXPORT2
ures_getByKeyWithFallback(const UResourceBundle *resB,
@@ -1563,6 +1724,16 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c
return NULL;
}
+U_DRAFT const char * U_EXPORT2
+ures_getUTF8StringByKey(const UResourceBundle *resB,
+ const char *key,
+ char *dest, int32_t *pLength,
+ UBool forceCopy,
+ UErrorCode *status) {
+ int32_t length16;
+ const UChar *s16 = ures_getStringByKey(resB, key, &length16, status);
+ return ures_toUTF8String(s16, length16, dest, pLength, forceCopy, status);
+}
/* TODO: clean from here down */
@@ -1598,13 +1769,10 @@ ures_getLocaleByType(const UResourceBundle* resourceBundle,
switch(type) {
case ULOC_ACTUAL_LOCALE:
return resourceBundle->fData->fName;
- break;
case ULOC_VALID_LOCALE:
return resourceBundle->fTopLevelData->fName;
- break;
case ULOC_REQUESTED_LOCALE:
return NULL;
- break;
default:
*status = U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
@@ -1612,52 +1780,6 @@ ures_getLocaleByType(const UResourceBundle* resourceBundle,
}
}
-
-/*
-U_CFUNC void ures_setResPath(UResourceBundle *resB, const char* toAdd) {
- if(resB->fResPath == NULL) {
- resB->fResPath = resB->fResBuf;
- *(resB->fResPath) = 0;
- }
- resB->fResPathLen = uprv_strlen(toAdd);
- if(RES_BUFSIZE <= resB->fResPathLen+1) {
- if(resB->fResPath == resB->fResBuf) {
- resB->fResPath = (char *)uprv_malloc((resB->fResPathLen+1)*sizeof(char));
- } else {
- resB->fResPath = (char *)uprv_realloc(resB->fResPath, (resB->fResPathLen+1)*sizeof(char));
- }
- }
- uprv_strcpy(resB->fResPath, toAdd);
-}
-*/
-U_CFUNC void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t lenToAdd) {
- int32_t resPathLenOrig = resB->fResPathLen;
- if(resB->fResPath == NULL) {
- resB->fResPath = resB->fResBuf;
- *(resB->fResPath) = 0;
- resB->fResPathLen = 0;
- }
- resB->fResPathLen += lenToAdd;
- if(RES_BUFSIZE <= resB->fResPathLen+1) {
- if(resB->fResPath == resB->fResBuf) {
- resB->fResPath = (char *)uprv_malloc((resB->fResPathLen+1)*sizeof(char));
- uprv_strcpy(resB->fResPath, resB->fResBuf);
- } else {
- resB->fResPath = (char *)uprv_realloc(resB->fResPath, (resB->fResPathLen+1)*sizeof(char));
- }
- }
- uprv_strcpy(resB->fResPath + resPathLenOrig, toAdd);
-}
-
-U_CFUNC void ures_freeResPath(UResourceBundle *resB) {
- if (resB->fResPath && resB->fResPath != resB->fResBuf) {
- uprv_free(resB->fResPath);
- }
- resB->fResPath = NULL;
- resB->fResPathLen = 0;
-}
-
-
U_CFUNC const char* ures_getName(const UResourceBundle* resB) {
if(resB == NULL) {
return NULL;
@@ -1685,37 +1807,31 @@ U_CAPI void U_EXPORT2
ures_openFillIn(UResourceBundle *r, const char* path,
const char* localeID, UErrorCode* status) {
if(r == NULL) {
- *status = U_INTERNAL_PROGRAM_ERROR;
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
} else {
UResourceDataEntry *firstData;
+ UBool isStackObject = ures_isStackObject(r);
+
+ ures_closeBundle(r, FALSE);
+ uprv_memset(r, 0, sizeof(UResourceBundle));
+ ures_setIsStackObject(r, isStackObject);
r->fHasFallback = TRUE;
r->fIsTopLevel = TRUE;
- r->fKey = NULL;
- r->fVersion = NULL;
r->fIndex = -1;
- if(r->fData != NULL) {
- entryClose(r->fData);
- }
- if(r->fVersion != NULL) {
- uprv_free(r->fVersion);
- }
r->fData = entryOpen(path, localeID, status);
+ if(U_FAILURE(*status)) {
+ return;
+ }
/* this is a quick fix to get regular data in bundle - until construction is cleaned up */
firstData = r->fData;
while(firstData->fBogus != U_ZERO_ERROR && firstData->fParent != NULL) {
firstData = firstData->fParent;
}
- r->fResData.data = firstData->fData.data;
- r->fResData.pRoot = firstData->fData.pRoot;
- r->fResData.rootRes = firstData->fData.rootRes;
+ uprv_memcpy(&r->fResData, &firstData->fData, sizeof(ResourceData));
+ r->fHasFallback=(UBool)!r->fResData.noFallback;
r->fRes = r->fResData.rootRes;
r->fSize = res_countArrayItems(&(r->fResData), r->fRes);
- /*r->fParent = RES_BOGUS;*/
- /*r->fResPath = NULL;*/
- r->fParentRes = NULL;
r->fTopLevelData = r->fData;
-
- ures_freeResPath(r);
}
}
@@ -1727,14 +1843,13 @@ ures_open(const char* path,
char canonLocaleID[100];
UResourceDataEntry *hasData = NULL;
UResourceBundle *r;
- int32_t length;
if(status == NULL || U_FAILURE(*status)) {
return NULL;
}
/* first "canonicalize" the locale ID */
- length = uloc_getBaseName(localeID, canonLocaleID, sizeof(canonLocaleID), status);
+ uloc_getBaseName(localeID, canonLocaleID, sizeof(canonLocaleID), status);
if(U_FAILURE(*status) || *status == U_STRING_NOT_TERMINATED_WARNING) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
@@ -1746,18 +1861,16 @@ ures_open(const char* path,
return NULL;
}
+ uprv_memset(r, 0, sizeof(UResourceBundle));
r->fHasFallback = TRUE;
r->fIsTopLevel = TRUE;
ures_setIsStackObject(r, FALSE);
- r->fKey = NULL;
- r->fVersion = NULL;
r->fIndex = -1;
r->fData = entryOpen(path, canonLocaleID, status);
if(U_FAILURE(*status)) {
uprv_free(r);
return NULL;
}
- r->fParentRes = NULL;
r->fTopLevelData = r->fData;
hasData = r->fData;
@@ -1773,14 +1886,10 @@ ures_open(const char* path,
}
}
- r->fResData.data = hasData->fData.data;
- r->fResData.pRoot = hasData->fData.pRoot;
- r->fResData.rootRes = hasData->fData.rootRes;
+ uprv_memcpy(&r->fResData, &hasData->fData, sizeof(ResourceData));
+ r->fHasFallback=(UBool)!r->fResData.noFallback;
r->fRes = r->fResData.rootRes;
- /*r->fParent = RES_BOGUS;*/
r->fSize = res_countArrayItems(&(r->fResData), r->fRes);
- r->fResPath = NULL;
- r->fResPathLen = 0;
/*
if(r->fData->fPath != NULL) {
ures_setResPath(r, r->fData->fPath);
@@ -1835,9 +1944,8 @@ ures_openDirect(const char* path, const char* localeID, UErrorCode* status) {
r->fKey = NULL;
r->fVersion = NULL;
- r->fResData.data = r->fData->fData.data;
- r->fResData.pRoot = r->fData->fData.pRoot;
- r->fResData.rootRes = r->fData->fData.rootRes;
+ uprv_memcpy(&r->fResData, &r->fData->fData, sizeof(ResourceData));
+ /* r->fHasFallback remains FALSE here in ures_openDirect() */
r->fRes = r->fResData.rootRes;
/*r->fParent = RES_BOGUS;*/
r->fSize = res_countArrayItems(&(r->fResData), r->fRes);
@@ -1880,30 +1988,6 @@ ures_countArrayItems(const UResourceBundle* resourceBundle,
}
}
-U_CAPI void U_EXPORT2
-ures_close(UResourceBundle* resB)
-{
- if(resB != NULL) {
- if(resB->fData != NULL) {
- entryClose(resB->fData);
- }
- if(resB->fVersion != NULL) {
- uprv_free(resB->fVersion);
- }
- ures_freeResPath(resB);
-
- if(ures_isStackObject(resB) == FALSE) {
- uprv_free(resB);
- }
- else {
-#if 0 /*U_DEBUG*/
- /* poison the data */
- uprv_memset(resB, -1, sizeof(UResourceBundle));
-#endif
- }
- }
-}
-
U_CAPI const char* U_EXPORT2
ures_getVersionNumber(const UResourceBundle* resourceBundle)
{
@@ -1937,7 +2021,7 @@ ures_getVersionNumber(const UResourceBundle* resourceBundle)
resourceBundle->fVersion[len] = '\0';
}
else {
- uprv_strcpy(resourceBundle->fVersion, kDefaultMinorVersion);
+ uprv_strcpy(resourceBundle->fVersion, kDefaultMinorVersion);
}
}
@@ -2381,8 +2465,8 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
locs = ures_openAvailableLocales(path, status);
if(U_FAILURE(*status)) {
- ures_close(&item);
- ures_close(&subItem);
+ ures_close(&item);
+ ures_close(&subItem);
return NULL;
}
@@ -2418,7 +2502,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
&& U_SUCCESS(subStatus)) {
const char *k;
int32_t i;
- k = ures_getKey(&subItem);
+ k = ures_getKey(subPtr);
#if defined(URES_TREE_DEBUG)
/* fprintf(stderr, "%s | %s | %s | %s\n", path?path:"<ICUDATA>", keyword, locale, k); */
@@ -2461,5 +2545,63 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status)
#endif
return uloc_openKeywordList(valuesBuf, valuesIndex, status);
}
-
+U_INTERNAL UBool U_EXPORT2
+ures_equal(const UResourceBundle* res1, const UResourceBundle* res2){
+ if(res1==NULL || res2==NULL){
+ return res1==res2; /* pointer comparision */
+ }
+ if(res1->fKey==NULL|| res2->fKey==NULL){
+ return (res1->fKey==res2->fKey);
+ }else{
+ if(uprv_strcmp(res1->fKey, res2->fKey)!=0){
+ return FALSE;
+ }
+ }
+ if(uprv_strcmp(res1->fData->fName, res2->fData->fName)!=0){
+ return FALSE;
+ }
+ if(res1->fData->fPath == NULL|| res2->fData->fPath==NULL){
+ return (res1->fData->fPath == res2->fData->fPath);
+ }else{
+ if(uprv_strcmp(res1->fData->fPath, res2->fData->fPath)!=0){
+ return FALSE;
+ }
+ }
+ if(uprv_strcmp(res1->fData->fParent->fName, res2->fData->fParent->fName)!=0){
+ return FALSE;
+ }
+ if(uprv_strcmp(res1->fData->fParent->fPath, res2->fData->fParent->fPath)!=0){
+ return FALSE;
+ }
+ if(uprv_strncmp(res1->fResPath, res2->fResPath, res1->fResPathLen)!=0){
+ return FALSE;
+ }
+ if(res1->fRes != res2->fRes){
+ return FALSE;
+ }
+ return TRUE;
+}
+U_INTERNAL UResourceBundle* U_EXPORT2
+ures_clone(const UResourceBundle* res, UErrorCode* status){
+ UResourceBundle* bundle = NULL;
+ UResourceBundle* ret = NULL;
+ if(U_FAILURE(*status) || res == NULL){
+ return NULL;
+ }
+ bundle = ures_open(res->fData->fPath, res->fData->fName, status);
+ if(res->fResPath!=NULL){
+ ret = ures_findSubResource(bundle, res->fResPath, NULL, status);
+ ures_close(bundle);
+ }else{
+ ret = bundle;
+ }
+ return ret;
+}
+U_INTERNAL const UResourceBundle* U_EXPORT2
+ures_getParentBundle(const UResourceBundle* res){
+ if(res==NULL){
+ return NULL;
+ }
+ return res->fParentRes;
+}
/* eof */
diff --git a/Build/source/libs/icu-xetex/common/uresdata.c b/Build/source/libs/icu-xetex/common/uresdata.c
index c48b1cc0555..4d947f5ba77 100644
--- a/Build/source/libs/icu-xetex/common/uresdata.c
+++ b/Build/source/libs/icu-xetex/common/uresdata.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
* *
-* Copyright (C) 1999-2005, International Business Machines Corporation *
+* Copyright (C) 1999-2006, International Business Machines Corporation *
* and others. All Rights Reserved. *
* *
*******************************************************************************
@@ -200,6 +200,7 @@ static UBool U_CALLCONV
isAcceptable(void *context,
const char *type, const char *name,
const UDataInfo *pInfo) {
+ uprv_memcpy(context, pInfo->formatVersion, 4);
return (UBool)(
pInfo->size>=20 &&
pInfo->isBigEndian==U_IS_BIG_ENDIAN &&
@@ -217,10 +218,11 @@ isAcceptable(void *context,
U_CFUNC UBool
res_load(ResourceData *pResData,
const char *path, const char *name, UErrorCode *errorCode) {
+ UVersionInfo formatVersion;
UResType rootType;
/* load the ResourceBundle file */
- pResData->data=udata_openChoice(path, "res", name, isAcceptable, NULL, errorCode);
+ pResData->data=udata_openChoice(path, "res", name, isAcceptable, formatVersion, errorCode);
if(U_FAILURE(*errorCode)) {
return FALSE;
}
@@ -228,6 +230,7 @@ res_load(ResourceData *pResData,
/* get its memory and root resource */
pResData->pRoot=(Resource *)udata_getMemory(pResData->data);
pResData->rootRes=*pResData->pRoot;
+ pResData->noFallback=FALSE;
/* currently, we accept only resources that have a Table as their roots */
rootType=RES_GET_TYPE(pResData->rootRes);
@@ -238,6 +241,14 @@ res_load(ResourceData *pResData,
return FALSE;
}
+ if(formatVersion[0]>1 || (formatVersion[0]==1 && formatVersion[1]>=1)) {
+ /* bundles with formatVersion 1.1 and later contain an indexes[] array */
+ const int32_t *indexes=(const int32_t *)pResData->pRoot+1;
+ if(indexes[URES_INDEX_LENGTH]>URES_INDEX_ATTRIBUTES) {
+ pResData->noFallback=(UBool)(indexes[URES_INDEX_ATTRIBUTES]&URES_ATT_NO_FALLBACK);
+ }
+ }
+
return TRUE;
}
@@ -251,8 +262,16 @@ res_unload(ResourceData *pResData) {
U_CFUNC const UChar *
res_getString(const ResourceData *pResData, const Resource res, int32_t *pLength) {
+ /*
+ * The data structure is documented as supporting res==0 for empty strings.
+ * Return a fixed pointer in such a case.
+ * This was dropped in uresdata.c 1.17 as part of Jitterbug 1005 work
+ * on code coverage for ICU 2.0.
+ * Re-added for consistency with the design and with other code.
+ */
+ static const int32_t emptyString[2]={ 0, 0 };
if(res!=RES_BOGUS && RES_GET_TYPE(res)==URES_STRING) {
- const int32_t *p=(const int32_t *)RES_GET_POINTER(pResData->pRoot, res);
+ const int32_t *p= res==0 ? emptyString : (const int32_t *)RES_GET_POINTER(pResData->pRoot, res);
if (pLength) {
*pLength=*p;
}
diff --git a/Build/source/libs/icu-xetex/common/uresdata.h b/Build/source/libs/icu-xetex/common/uresdata.h
index 92a8667d6f2..6b8aa8aaede 100644
--- a/Build/source/libs/icu-xetex/common/uresdata.h
+++ b/Build/source/libs/icu-xetex/common/uresdata.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 1999-2003, International Business Machines *
+* Copyright (C) 1999-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -31,7 +31,7 @@ typedef uint32_t Resource;
#define RES_BOGUS 0xffffffff
-#define RES_GET_TYPE(res) ((res)>>28UL)
+#define RES_GET_TYPE(res) ((UResType)((res)>>28UL))
#define RES_GET_OFFSET(res) ((res)&0x0fffffff)
#define RES_GET_POINTER(pRoot, res) ((pRoot)+RES_GET_OFFSET(res))
@@ -48,6 +48,7 @@ enum {
URES_INDEX_BUNDLE_TOP, /* [3] contains the top of the bundle, */
/* in case it were ever different from [2] */
URES_INDEX_MAX_TABLE_LENGTH,/* [4] max. length of any table */
+ URES_INDEX_ATTRIBUTES, /* [5] attributes bit set, see URES_ATT_* (new in formatVersion 1.2) */
URES_INDEX_TOP
};
@@ -57,7 +58,20 @@ enum {
};
/*
- * File format for .res resource bundle files (formatVersion=1.1)
+ * Nofallback attribute, attribute bit 0 in indexes[URES_INDEX_ATTRIBUTES].
+ * New in formatVersion 1.2 (ICU 3.6).
+ *
+ * If set, then this resource bundle is a standalone bundle.
+ * If not set, then the bundle participates in locale fallback, eventually
+ * all the way to the root bundle.
+ * If indexes[] is missing or too short, then the attribute cannot be determined
+ * reliably. Dependency checking should ignore such bundles, and loading should
+ * use fallbacks.
+ */
+#define URES_ATT_NO_FALLBACK 1
+
+/*
+ * File format for .res resource bundle files (formatVersion=1.2)
*
* An ICU4C resource bundle file (.res) is a binary, memory-mappable file
* with nested, hierarchical data structures.
@@ -67,7 +81,7 @@ enum {
* currently, the root item must be a table or table32 resource item
* int32_t indexes[indexes[0]]; -- array of indexes for friendly
* reading and swapping; see URES_INDEX_* above
- * new in formatVersion 1.1
+ * new in formatVersion 1.1 (ICU 2.8)
* char keys[]; -- characters for key strings
* (formatVersion 1.0: up to 65k of characters; 1.1: <2G)
* (minus the space for root and indexes[]),
@@ -156,6 +170,7 @@ typedef struct {
UDataMemory *data;
Resource *pRoot;
Resource rootRes;
+ UBool noFallback; /* see URES_ATT_NO_FALLBACK */
} ResourceData;
/*
diff --git a/Build/source/libs/icu-xetex/common/uresimp.h b/Build/source/libs/icu-xetex/common/uresimp.h
index a0f65e5626f..3e530d9e6d2 100644
--- a/Build/source/libs/icu-xetex/common/uresimp.h
+++ b/Build/source/libs/icu-xetex/common/uresimp.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -84,9 +84,9 @@ U_CAPI void U_EXPORT2 ures_initStackObject(UResourceBundle* resB);
/* Some getters used by the copy constructor */
U_CFUNC const char* ures_getName(const UResourceBundle* resB);
U_CFUNC const char* ures_getPath(const UResourceBundle* resB);
-U_CFUNC void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t lenToAdd);
+/*U_CFUNC void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t lenToAdd);*/
/*U_CFUNC void ures_setResPath(UResourceBundle *resB, const char* toAdd);*/
-U_CFUNC void ures_freeResPath(UResourceBundle *resB);
+/*U_CFUNC void ures_freeResPath(UResourceBundle *resB);*/
/* Candidates for export */
U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *original, UErrorCode *status);
@@ -165,4 +165,77 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity,
U_INTERNAL UEnumeration* U_EXPORT2
ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status);
+/**
+ * Test if 2 resource bundles are equal
+ * @param res1
+ * @param res2
+ * @param status error code
+ * @internal ICU 3.6
+ */
+U_INTERNAL UBool U_EXPORT2
+ures_equal(const UResourceBundle* res1, const UResourceBundle* res2);
+
+/**
+ * Clones the given resource bundle
+ * @param res
+ * @param status error code
+ * @internal ICU 3.6
+ */
+U_INTERNAL UResourceBundle* U_EXPORT2
+ures_clone(const UResourceBundle* res, UErrorCode* status);
+
+/**
+ * Returns the parent bundle. Internal. DONOT close the returned bundle!!!
+ * @param res
+ * @internal ICU 3.6
+ */
+U_INTERNAL const UResourceBundle* U_EXPORT2
+ures_getParentBundle(const UResourceBundle* res);
+
+
+/**
+ * Get a resource with multi-level fallback. Normally only the top level resources will
+ * fallback to its parent. This performs fallback on subresources. For example, when a table
+ * is defined in a resource bundle and a parent resource bundle, normally no fallback occurs
+ * on the sub-resources because the table is defined in the current resource bundle, but this
+ * function can perform fallback on the sub-resources of the table.
+ * @param resB a resource
+ * @param inKey a key associated with the requested resource
+ * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller.
+ * Alternatively, you can supply a struct to be filled by this function.
+ * @param status: fills in the outgoing error code
+ * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
+ * could be a non-failing error
+ * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
+ * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
+ * @internal ICU 3.0
+ */
+U_INTERNAL UResourceBundle* U_EXPORT2
+ures_getByKeyWithFallback(const UResourceBundle *resB,
+ const char* inKey,
+ UResourceBundle *fillIn,
+ UErrorCode *status);
+
+
+/**
+ * Get a String with multi-level fallback. Normally only the top level resources will
+ * fallback to its parent. This performs fallback on subresources. For example, when a table
+ * is defined in a resource bundle and a parent resource bundle, normally no fallback occurs
+ * on the sub-resources because the table is defined in the current resource bundle, but this
+ * function can perform fallback on the sub-resources of the table.
+ * @param resB a resource
+ * @param inKey a key associated with the requested resource
+ * @param status: fills in the outgoing error code
+ * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found
+ * could be a non-failing error
+ * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT>
+ * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it
+ * @internal ICU 3.4
+ * @draft ICU 3.4
+ */
+U_INTERNAL const UChar* U_EXPORT2
+ures_getStringByKeyWithFallback(const UResourceBundle *resB,
+ const char* inKey,
+ int32_t* len,
+ UErrorCode *status);
#endif /*URESIMP_H*/
diff --git a/Build/source/libs/icu-xetex/common/uscript.c b/Build/source/libs/icu-xetex/common/uscript.c
index 546d5f88e6b..47ae56daf00 100644
--- a/Build/source/libs/icu-xetex/common/uscript.c
+++ b/Build/source/libs/icu-xetex/common/uscript.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -22,7 +22,10 @@
#include "cstring.h"
static const char kLocaleScript[] = "LocaleScript";
+static const char kHyphen = '-';
+static const char kUnderscore = '_';
+/* TODO: this is a bad API should be deprecated */
U_CAPI int32_t U_EXPORT2
uscript_getCode(const char* nameOrAbbrOrLocale,
UScriptCode* fillIn,
@@ -41,12 +44,13 @@ uscript_getCode(const char* nameOrAbbrOrLocale,
return numFilled;
}
- /* try long and abbreviated script names first */
- code = (UScriptCode) u_getPropertyValueEnum(UCHAR_SCRIPT, nameOrAbbrOrLocale);
-
- /* we still haven't found it try locale */
+ if(uprv_strchr(nameOrAbbrOrLocale, kHyphen)==NULL && uprv_strchr(nameOrAbbrOrLocale, kUnderscore)==NULL ){
+ /* try long and abbreviated script names first */
+ code = (UScriptCode) u_getPropertyValueEnum(UCHAR_SCRIPT, nameOrAbbrOrLocale);
+
+ }
if(code==(UScriptCode)UCHAR_INVALID_CODE){
- /* Do not propagate error codes from just not finding a locale bundle. */
+ /* Do not propagate error codes from just not finding a locale bundle. */
UErrorCode localErrorCode = U_ZERO_ERROR;
UResourceBundle* resB = ures_open(NULL,nameOrAbbrOrLocale,&localErrorCode);
if(U_SUCCESS(localErrorCode)&& localErrorCode != U_USING_DEFAULT_WARNING){
@@ -72,11 +76,16 @@ uscript_getCode(const char* nameOrAbbrOrLocale,
}
}
}
- ures_close(resD);
-
+ ures_close(resD);
}
ures_close(resB);
- }else{
+ code = USCRIPT_INVALID_CODE;
+ }
+ if(code==(UScriptCode)UCHAR_INVALID_CODE){
+ /* still not found .. try long and abbreviated script names again */
+ code = (UScriptCode) u_getPropertyValueEnum(UCHAR_SCRIPT, nameOrAbbrOrLocale);
+ }
+ if(code!=(UScriptCode)UCHAR_INVALID_CODE){
/* we found it */
if(numFilled<=capacity){
*(fillIn)++=code;
diff --git a/Build/source/libs/icu-xetex/common/uset.cpp b/Build/source/libs/icu-xetex/common/uset.cpp
index e3f94c6d251..8cd25221308 100644
--- a/Build/source/libs/icu-xetex/common/uset.cpp
+++ b/Build/source/libs/icu-xetex/common/uset.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -42,22 +42,22 @@ uset_close(USet* set) {
U_CAPI void U_EXPORT2
uset_set(USet* set,
UChar32 start, UChar32 end) {
- ((UnicodeSet*) set)->set(start, end);
+ ((UnicodeSet*) set)->UnicodeSet::set(start, end);
}
U_CAPI void U_EXPORT2
uset_addAll(USet* set, const USet *additionalSet) {
- ((UnicodeSet*) set)->addAll(*((const UnicodeSet*)additionalSet));
+ ((UnicodeSet*) set)->UnicodeSet::addAll(*((const UnicodeSet*)additionalSet));
}
U_CAPI void U_EXPORT2
uset_add(USet* set, UChar32 c) {
- ((UnicodeSet*) set)->add(c);
+ ((UnicodeSet*) set)->UnicodeSet::add(c);
}
U_CAPI void U_EXPORT2
uset_addRange(USet* set, UChar32 start, UChar32 end) {
- ((UnicodeSet*) set)->add(start, end);
+ ((UnicodeSet*) set)->UnicodeSet::add(start, end);
}
U_CAPI void U_EXPORT2
@@ -68,108 +68,108 @@ uset_addString(USet* set, const UChar* str, int32_t strLen) {
// UnicodeString handles -1 for strLen
UnicodeString s(str, strLen);
- ((UnicodeSet*) set)->add(s);
+ ((UnicodeSet*) set)->UnicodeSet::add(s);
}
U_CAPI void U_EXPORT2
uset_addAllCodePoints(USet* set, const UChar *str, int32_t strLen) {
// UnicodeString handles -1 for strLen
UnicodeString s(str, strLen);
- ((UnicodeSet*) set)->addAll(s);
+ ((UnicodeSet*) set)->UnicodeSet::addAll(s);
}
U_CAPI void U_EXPORT2
uset_remove(USet* set, UChar32 c) {
- ((UnicodeSet*) set)->remove(c);
+ ((UnicodeSet*) set)->UnicodeSet::remove(c);
}
U_CAPI void U_EXPORT2
uset_removeRange(USet* set, UChar32 start, UChar32 end) {
- ((UnicodeSet*) set)->remove(start, end);
+ ((UnicodeSet*) set)->UnicodeSet::remove(start, end);
}
U_CAPI void U_EXPORT2
uset_removeString(USet* set, const UChar* str, int32_t strLen) {
UnicodeString s(strLen==-1, str, strLen);
- ((UnicodeSet*) set)->remove(s);
+ ((UnicodeSet*) set)->UnicodeSet::remove(s);
}
U_CAPI void U_EXPORT2
uset_removeAll(USet* set, const USet* remove) {
- ((UnicodeSet*) set)->removeAll(*(const UnicodeSet*)remove);
+ ((UnicodeSet*) set)->UnicodeSet::removeAll(*(const UnicodeSet*)remove);
}
U_CAPI void U_EXPORT2
uset_retain(USet* set, UChar32 start, UChar32 end) {
- ((UnicodeSet*) set)->retain(start, end);
+ ((UnicodeSet*) set)->UnicodeSet::retain(start, end);
}
U_CAPI void U_EXPORT2
uset_retainAll(USet* set, const USet* retain) {
- ((UnicodeSet*) set)->retainAll(*(const UnicodeSet*)retain);
+ ((UnicodeSet*) set)->UnicodeSet::retainAll(*(const UnicodeSet*)retain);
}
U_CAPI void U_EXPORT2
uset_compact(USet* set) {
- ((UnicodeSet*) set)->compact();
+ ((UnicodeSet*) set)->UnicodeSet::compact();
}
U_CAPI void U_EXPORT2
uset_complement(USet* set) {
- ((UnicodeSet*) set)->complement();
+ ((UnicodeSet*) set)->UnicodeSet::complement();
}
U_CAPI void U_EXPORT2
uset_complementAll(USet* set, const USet* complement) {
- ((UnicodeSet*) set)->complementAll(*(const UnicodeSet*)complement);
+ ((UnicodeSet*) set)->UnicodeSet::complementAll(*(const UnicodeSet*)complement);
}
U_CAPI void U_EXPORT2
uset_clear(USet* set) {
- ((UnicodeSet*) set)->clear();
+ ((UnicodeSet*) set)->UnicodeSet::clear();
}
U_CAPI UBool U_EXPORT2
uset_isEmpty(const USet* set) {
- return ((const UnicodeSet*) set)->isEmpty();
+ return ((const UnicodeSet*) set)->UnicodeSet::isEmpty();
}
U_CAPI UBool U_EXPORT2
uset_contains(const USet* set, UChar32 c) {
- return ((const UnicodeSet*) set)->contains(c);
+ return ((const UnicodeSet*) set)->UnicodeSet::contains(c);
}
U_CAPI UBool U_EXPORT2
uset_containsRange(const USet* set, UChar32 start, UChar32 end) {
- return ((const UnicodeSet*) set)->contains(start, end);
+ return ((const UnicodeSet*) set)->UnicodeSet::contains(start, end);
}
U_CAPI UBool U_EXPORT2
uset_containsString(const USet* set, const UChar* str, int32_t strLen) {
UnicodeString s(strLen==-1, str, strLen);
- return ((const UnicodeSet*) set)->contains(s);
+ return ((const UnicodeSet*) set)->UnicodeSet::contains(s);
}
U_CAPI UBool U_EXPORT2
uset_containsAll(const USet* set1, const USet* set2) {
- return ((const UnicodeSet*) set1)->containsAll(* (const UnicodeSet*) set2);
+ return ((const UnicodeSet*) set1)->UnicodeSet::containsAll(* (const UnicodeSet*) set2);
}
U_CAPI UBool U_EXPORT2
uset_containsAllCodePoints(const USet* set, const UChar *str, int32_t strLen) {
// Create a string alias, since nothing is being added to the set.
UnicodeString s(strLen==-1, str, strLen);
- return ((const UnicodeSet*) set)->containsAll(s);
+ return ((const UnicodeSet*) set)->UnicodeSet::containsAll(s);
}
U_CAPI UBool U_EXPORT2
uset_containsNone(const USet* set1, const USet* set2) {
- return ((const UnicodeSet*) set1)->containsNone(* (const UnicodeSet*) set2);
+ return ((const UnicodeSet*) set1)->UnicodeSet::containsNone(* (const UnicodeSet*) set2);
}
U_CAPI UBool U_EXPORT2
uset_containsSome(const USet* set1, const USet* set2) {
- return ((const UnicodeSet*) set1)->containsSome(* (const UnicodeSet*) set2);
+ return ((const UnicodeSet*) set1)->UnicodeSet::containsSome(* (const UnicodeSet*) set2);
}
U_CAPI UBool U_EXPORT2
@@ -179,17 +179,17 @@ uset_equals(const USet* set1, const USet* set2) {
U_CAPI int32_t U_EXPORT2
uset_indexOf(const USet* set, UChar32 c) {
- return ((UnicodeSet*) set)->indexOf(c);
+ return ((UnicodeSet*) set)->UnicodeSet::indexOf(c);
}
U_CAPI UChar32 U_EXPORT2
uset_charAt(const USet* set, int32_t index) {
- return ((UnicodeSet*) set)->charAt(index);
+ return ((UnicodeSet*) set)->UnicodeSet::charAt(index);
}
U_CAPI int32_t U_EXPORT2
uset_size(const USet* set) {
- return ((const UnicodeSet*) set)->size();
+ return ((const UnicodeSet*) set)->UnicodeSet::size();
}
U_NAMESPACE_BEGIN
@@ -273,7 +273,7 @@ uprv_openRuleWhiteSpaceSet(UErrorCode* ec) {
// create a set with the Pattern_White_Space characters,
// without a pattern for fewer code dependencies
UnicodeSet *set=new UnicodeSet(9, 0xd);
- set->add(0x20).add(0x85).add(0x200e, 0x200f).add(0x2028, 0x2029);
+ set->UnicodeSet::add(0x20).add(0x85).add(0x200e, 0x200f).add(0x2028, 0x2029);
return (USet *)set;
}
@@ -301,7 +301,7 @@ uset_serialize(const USet* set, uint16_t* dest, int32_t destCapacity, UErrorCode
return 0;
}
- return ((const UnicodeSet*) set)->serialize(dest, destCapacity,* ec);
+ return ((const UnicodeSet*) set)->UnicodeSet::serialize(dest, destCapacity,* ec);
}
U_CAPI UBool U_EXPORT2
@@ -382,19 +382,50 @@ uset_serializedContains(const USerializedSet* set, UChar32 c) {
array=set->array;
if(c<=0xffff) {
/* find c in the BMP part */
- int32_t i, bmpLength=set->bmpLength;
- for(i=0; i<bmpLength && (uint16_t)c>=array[i]; ++i) {}
- return (UBool)(i&1);
+ int32_t lo = 0;
+ int32_t hi = set->bmpLength-1;
+ if (c < array[0]) {
+ hi = 0;
+ } else if (c < array[hi]) {
+ for(;;) {
+ int32_t i = (lo + hi) >> 1;
+ if (i == lo) {
+ break; // Done!
+ } else if (c < array[i]) {
+ hi = i;
+ } else {
+ lo = i;
+ }
+ }
+ } else {
+ hi += 1;
+ }
+ return (UBool)(hi&1);
} else {
/* find c in the supplementary part */
- int32_t i, length=set->length;
uint16_t high=(uint16_t)(c>>16), low=(uint16_t)c;
- for(i=set->bmpLength;
- i<length && (high>array[i] || (high==array[i] && low>=array[i+1]));
- i+=2) {}
-
+ int32_t base = set->bmpLength;
+ int32_t lo = 0;
+ int32_t hi = set->length - 2 - base;
+ if (high < array[base] || (high==array[base] && low<array[base+1])) {
+ hi = 0;
+ } else if (high < array[base+hi] || (high==array[base+hi] && low<array[base+hi+1])) {
+ for (;;) {
+ int32_t i = ((lo + hi) >> 1) & ~1; // Guarantee even result
+ int32_t iabs = i + base;
+ if (i == lo) {
+ break; // Done!
+ } else if (high < array[iabs] || (high==array[iabs] && low<array[iabs+1])) {
+ hi = i;
+ } else {
+ lo = i;
+ }
+ }
+ } else {
+ hi += 2;
+ }
/* count pairs of 16-bit units even per BMP and check if the number of pairs is odd */
- return (UBool)(((i+set->bmpLength)&2)!=0);
+ return (UBool)(((hi+(base<<1))&2)!=0);
}
}
diff --git a/Build/source/libs/icu-xetex/common/usetiter.cpp b/Build/source/libs/icu-xetex/common/usetiter.cpp
index 75a75de4cce..44858ed46bd 100644
--- a/Build/source/libs/icu-xetex/common/usetiter.cpp
+++ b/Build/source/libs/icu-xetex/common/usetiter.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2003, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -18,6 +18,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UnicodeSetIterator)
* @param set set to iterate over
*/
UnicodeSetIterator::UnicodeSetIterator(const UnicodeSet& uSet) {
+ cpString = NULL;
reset(uSet);
}
@@ -26,11 +27,12 @@ UnicodeSetIterator::UnicodeSetIterator(const UnicodeSet& uSet) {
*/
UnicodeSetIterator::UnicodeSetIterator() {
this->set = NULL;
+ cpString = NULL;
reset();
}
UnicodeSetIterator::~UnicodeSetIterator() {
- // Nothing to do
+ delete cpString;
}
/**
@@ -45,11 +47,13 @@ UnicodeSetIterator::~UnicodeSetIterator() {
UBool UnicodeSetIterator::next() {
if (nextElement <= endElement) {
codepoint = codepointEnd = nextElement++;
+ string = NULL;
return TRUE;
}
if (range < endRange) {
loadRange(++range);
codepoint = codepointEnd = nextElement++;
+ string = NULL;
return TRUE;
}
@@ -71,6 +75,7 @@ UBool UnicodeSetIterator::next() {
* <br>Note also that the codepointEnd is undefined after calling this method.
*/
UBool UnicodeSetIterator::nextRange() {
+ string = NULL;
if (nextElement <= endElement) {
codepointEnd = endElement;
codepoint = nextElement;
@@ -118,6 +123,7 @@ void UnicodeSetIterator::reset() {
loadRange(range);
}
nextString = 0;
+ string = NULL;
}
void UnicodeSetIterator::loadRange(int32_t iRange) {
@@ -125,6 +131,20 @@ void UnicodeSetIterator::loadRange(int32_t iRange) {
endElement = set->getRangeEnd(iRange);
}
+
+const UnicodeString& UnicodeSetIterator::getString() {
+ if (string==NULL && codepoint!=(UChar32)IS_STRING) {
+ if (cpString == NULL) {
+ cpString = new UnicodeString();
+ }
+ if (cpString != NULL) {
+ cpString->setTo((UChar32)codepoint);
+ }
+ string = cpString;
+ }
+ return *string;
+}
+
U_NAMESPACE_END
//eof
diff --git a/Build/source/libs/icu-xetex/common/ushape.c b/Build/source/libs/icu-xetex/common/ushape.c
index 41a3dbdf887..ad0b449d33a 100644
--- a/Build/source/libs/icu-xetex/common/ushape.c
+++ b/Build/source/libs/icu-xetex/common/ushape.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -314,26 +314,20 @@ invertBuffer(UChar *buffer,int32_t size,uint32_t options,int32_t *spacesCountl,i
* later it'll be converted into the 0xFExx LamAlefs
* in the shaping function.
*/
-static UChar
+static U_INLINE UChar
changeLamAlef(UChar ch) {
switch(ch) {
case 0x0622 :
- return(0x065C);
- break;
+ return 0x065C;
case 0x0623 :
- return(0x065D);
- break;
+ return 0x065D;
case 0x0625 :
- return(0x065E);
- break;
+ return 0x065E;
case 0x0627 :
- return(0x065F);
- break;
- default :
- return(0);
- break;
+ return 0x065F;
}
+ return 0;
}
/*
@@ -348,11 +342,9 @@ specialChar(UChar ch) {
(ch>0x0647 && ch<0x064a)||(ch==0x0629) ) {
return (1);
}
- else
- if( ch>=0x064B && ch<= 0x0652 )
+ else if( ch>=0x064B && ch<= 0x0652 )
return (2);
- else
- if( (ch>=0x0653 && ch<= 0x0655) || ch == 0x0670 ||
+ else if( (ch>=0x0653 && ch<= 0x0655) || ch == 0x0670 ||
(ch>=0xFE70 && ch<= 0xFE7F) )
return (3);
else
@@ -408,39 +400,27 @@ countSpaces(UChar *dest,int32_t size,uint32_t options,int32_t *spacesCountl,int3
*Name : isTashkeelChar
*Function : Returns 1 for Tashkeel characters else return 0
*/
-static int32_t
+static U_INLINE int32_t
isTashkeelChar(UChar ch) {
-
- if( ch>=0x064B && ch<= 0x0652 )
- return (1);
- else
- return (0);
+ return (int32_t)( ch>=0x064B && ch<= 0x0652 );
}
/*
*Name : isAlefChar
*Function : Returns 1 for Alef characters else return 0
*/
-static int32_t
+static U_INLINE int32_t
isAlefChar(UChar ch) {
-
- if( (ch==0x0622)||(ch==0x0623)||(ch==0x0625)||(ch==0x0627) )
- return (1);
- else
- return (0);
+ return (int32_t)( (ch==0x0622)||(ch==0x0623)||(ch==0x0625)||(ch==0x0627) );
}
/*
*Name : isLamAlefChar
*Function : Returns 1 for LamAlef characters else return 0
*/
-static int32_t
+static U_INLINE int32_t
isLamAlefChar(UChar ch) {
-
- if( (ch>=0xFEF5)&&(ch<=0xFEFC) )
- return (1);
- else
- return (0);
+ return (int32_t)( (ch>=0xFEF5)&&(ch<=0xFEFC) );
}
/*
@@ -806,7 +786,7 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
int32_t i, iend;
int32_t step;
- int32_t prevPos, lastPos,Nx, Nw;
+ int32_t lastPos,Nx, Nw;
unsigned int Shape;
int32_t flag;
int32_t lamalef_found = 0;
@@ -840,7 +820,6 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
*/
currLink = getLink(dest[i]);
- prevPos = i;
lastPos = i;
Nx = -2, Nw = 0;
@@ -887,13 +866,14 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
if (flag == 1) {
Shape = (Shape == 1 || Shape == 3) ? 1 : 0;
}
- else
- if(flag == 2) {
+ else if(flag == 2) {
if( (lastLink & LINKL) && (nextLink & LINKR) && (tashkeelFlag == 1) &&
- dest[i] != 0x064C && dest[i] != 0x064D ) {
+ dest[i] != 0x064C && dest[i] != 0x064D )
+ {
Shape = 1;
- if( (nextLink&ALEFTYPE) == ALEFTYPE && (lastLink&LAMTYPE) == LAMTYPE )
+ if( (nextLink&ALEFTYPE) == ALEFTYPE && (lastLink&LAMTYPE) == LAMTYPE ) {
Shape = 0;
+ }
}
else {
Shape = 0;
@@ -911,7 +891,6 @@ shapeUnicode(UChar *dest, int32_t sourceLength,
if ((currLink & IRRELEVANT) == 0) {
prevLink = lastLink;
lastLink = currLink;
- prevPos = lastPos;
lastPos = i;
}
@@ -997,7 +976,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength,
if(sourceLength==-1) {
sourceLength=u_strlen(source);
}
- if(sourceLength==0) {
+ if(sourceLength<=0) {
return u_terminateUChars(dest, destCapacity, 0, pErrorCode);
}
diff --git a/Build/source/libs/icu-xetex/common/usprep.cpp b/Build/source/libs/icu-xetex/common/usprep.cpp
index 389f17abd15..ec98ad01187 100644
--- a/Build/source/libs/icu-xetex/common/usprep.cpp
+++ b/Build/source/libs/icu-xetex/common/usprep.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -197,19 +197,18 @@ initCache(UErrorCode *status) {
makeCache = (SHARED_DATA_HASHTABLE == NULL);
umtx_unlock(&usprepMutex);
if(makeCache) {
- UHashtable *newCache = uhash_open(hashEntry, compareEntries, status);
- if (U_FAILURE(*status)) {
- return;
- }
- umtx_lock(&usprepMutex);
- if(SHARED_DATA_HASHTABLE == NULL) {
- SHARED_DATA_HASHTABLE = newCache;
- ucln_common_registerCleanup(UCLN_COMMON_USPREP, usprep_cleanup);
- newCache = NULL;
- }
- umtx_unlock(&usprepMutex);
- if(newCache != NULL) {
- uhash_close(newCache);
+ UHashtable *newCache = uhash_open(hashEntry, compareEntries, NULL, status);
+ if (U_SUCCESS(*status)) {
+ umtx_lock(&usprepMutex);
+ if(SHARED_DATA_HASHTABLE == NULL) {
+ SHARED_DATA_HASHTABLE = newCache;
+ ucln_common_registerCleanup(UCLN_COMMON_USPREP, usprep_cleanup);
+ newCache = NULL;
+ }
+ umtx_unlock(&usprepMutex);
+ if(newCache != NULL) {
+ uhash_close(newCache);
+ }
}
}
}
@@ -317,7 +316,9 @@ usprep_getProfile(const char* path,
stackKey.path = (char*) path;
/* fetch the data from the cache */
+ umtx_lock(&usprepMutex);
profile = (UStringPrepProfile*) (uhash_get(SHARED_DATA_HASHTABLE,&stackKey));
+ umtx_unlock(&usprepMutex);
if(profile == NULL){
UStringPrepKey* key = (UStringPrepKey*) uprv_malloc(sizeof(UStringPrepKey));
@@ -356,7 +357,7 @@ usprep_getProfile(const char* path,
key->path = (char*) uprv_malloc(uprv_strlen(path)+1);
if(key->path == NULL){
*status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(key->path);
+ uprv_free(key->name);
uprv_free(key);
uprv_free(profile);
return NULL;
@@ -366,6 +367,10 @@ usprep_getProfile(const char* path,
/* load the data */
if(!loadData(profile, path, name, _SPREP_DATA_TYPE, status) || U_FAILURE(*status) ){
+ uprv_free(key->path);
+ uprv_free(key->name);
+ uprv_free(key);
+ uprv_free(profile);
return NULL;
}
@@ -378,6 +383,7 @@ usprep_getProfile(const char* path,
if(U_FAILURE(*status)) {
usprep_unload(profile);
uprv_free(key->path);
+ uprv_free(key->name);
uprv_free(key);
uprv_free(profile);
return NULL;
@@ -411,7 +417,7 @@ usprep_open(const char* path,
usprep_init();
/* initialize the profile struct members */
- return usprep_getProfile(path,name,status);;
+ return usprep_getProfile(path,name,status);
}
U_CAPI void U_EXPORT2
@@ -473,8 +479,12 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){
* the source codepoint is copied to the destination
*/
type = USPREP_TYPE_LIMIT;
+ isIndex =FALSE;
+ value = 0;
}else if(trieWord >= _SPREP_TYPE_THRESHOLD){
type = (UStringPrepType) (trieWord - _SPREP_TYPE_THRESHOLD);
+ isIndex =FALSE;
+ value = 0;
}else{
/* get the type */
type = USPREP_MAP;
@@ -482,12 +492,10 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){
if(trieWord & 0x02){
isIndex = TRUE;
value = trieWord >> 2; //mask off the lower 2 bits and shift
-
}else{
isIndex = FALSE;
value = (int16_t)trieWord;
value = (value >> 2);
-
}
if((trieWord>>2) == _SPREP_MAX_INDEX_VALUE){
@@ -799,7 +807,7 @@ usprep_prepare( const UStringPrepProfile* profile,
return FALSE;
}
}
- if(b2Len <= destCapacity){
+ if(b2Len>0 && b2Len <= destCapacity){
uprv_memmove(dest,b2, b2Len*U_SIZEOF_UCHAR);
}
diff --git a/Build/source/libs/icu-xetex/common/ustr_imp.h b/Build/source/libs/icu-xetex/common/ustr_imp.h
index 00904b6a8f0..bfb851d7a93 100644
--- a/Build/source/libs/icu-xetex/common/ustr_imp.h
+++ b/Build/source/libs/icu-xetex/common/ustr_imp.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: ustr_imp.h
@@ -67,8 +67,8 @@ uprv_haveProperties(UErrorCode *pErrorCode);
* NOT thread safe.
* @internal
*/
-U_CFUNC int8_t
-uprv_loadPropsData(UErrorCode *errorCode);
+/*U_CFUNC int8_t
+uprv_loadPropsData(UErrorCode *errorCode);*/
/**
* Type of a function that may be passed to the internal case mapping functions
diff --git a/Build/source/libs/icu-xetex/common/ustr_wcs.c b/Build/source/libs/icu-xetex/common/ustr_wcs.c
index 4f5008c783e..3b0e4b08452 100644
--- a/Build/source/libs/icu-xetex/common/ustr_wcs.c
+++ b/Build/source/libs/icu-xetex/common/ustr_wcs.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -25,6 +25,12 @@
#include "ustr_imp.h"
#include "ustr_cnv.h"
+#if defined(U_WCHAR_IS_UTF16) || defined(U_WCHAR_IS_UTF32) || !UCONFIG_NO_CONVERSION
+
+#define _STACK_BUFFER_CAPACITY 1000
+#define _BUFFER_CAPACITY_MULTIPLIER 2
+
+#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
static U_INLINE UBool
u_growAnyBufferFromStatic(void *context,
void **pBuffer, int32_t *pCapacity, int32_t reqCapacity,
@@ -49,10 +55,6 @@ u_growAnyBufferFromStatic(void *context,
return (UBool)(newBuffer!=NULL);
}
-#define _STACK_BUFFER_CAPACITY 1000
-#define _BUFFER_CAPACITY_MULTIPLIER 2
-
-#if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32)
/* helper function */
static wchar_t*
_strToWCS(wchar_t *dest,
@@ -62,7 +64,6 @@ _strToWCS(wchar_t *dest,
int32_t srcLength,
UErrorCode *pErrorCode){
-#if !UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION
char stackBuffer [_STACK_BUFFER_CAPACITY];
char* tempBuf = stackBuffer;
int32_t tempBufCapacity = _STACK_BUFFER_CAPACITY;
@@ -215,12 +216,6 @@ cleanup:
u_releaseDefaultConverter(conv);
return dest;
-#else
- if(pErrorCode!=NULL && U_SUCCESS(*pErrorCode)){
- *pErrorCode = U_UNSUPPORTED_ERROR;
- }
- return NULL;
-#endif
}
#endif
@@ -279,9 +274,8 @@ _strFromWCS( UChar *dest,
int32_t *pDestLength,
const wchar_t *src,
int32_t srcLength,
- UErrorCode *pErrorCode){
-
-#if (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION)
+ UErrorCode *pErrorCode)
+{
int32_t retVal =0, count =0 ;
UConverter* conv = NULL;
UChar* pTarget = NULL;
@@ -315,7 +309,7 @@ _strFromWCS( UChar *dest,
if(retVal == -1){
*pErrorCode = U_ILLEGAL_CHAR_FOUND;
goto cleanup;
- }else if(retVal == cStackCap){
+ }else if(retVal >= (cStackCap-1)){
/* Should rarely occur */
u_growAnyBufferFromStatic(cStack,(void**)&pCSrc,&cStackCap,
cStackCap * _BUFFER_CAPACITY_MULTIPLIER, 0, sizeof(char));
@@ -474,12 +468,6 @@ cleanup:
u_releaseDefaultConverter(conv);
return dest;
-#else
- if(pErrorCode!=NULL && U_SUCCESS(*pErrorCode)){
- *pErrorCode = U_UNSUPPORTED_ERROR;
- }
- return NULL;
-#endif
}
#endif
@@ -530,3 +518,5 @@ u_strFromWCS(UChar *dest,
#endif
}
+
+#endif /* #if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32) && !UCONFIG_NO_CONVERSION */
diff --git a/Build/source/libs/icu-xetex/common/ustrcase.c b/Build/source/libs/icu-xetex/common/ustrcase.c
index aedae0a3538..866d7548ceb 100644
--- a/Build/source/libs/icu-xetex/common/ustrcase.c
+++ b/Build/source/libs/icu-xetex/common/ustrcase.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -174,7 +174,7 @@ _toTitle(const UCaseProps *csp,
UErrorCode *pErrorCode) {
const UChar *s;
UChar32 c;
- int32_t prev, index, destIndex;
+ int32_t prev, titleStart, titleLimit, index, destIndex, length;
UBool isFirstIndex;
/* set up local variables */
@@ -195,29 +195,65 @@ _toTitle(const UCaseProps *csp,
index=srcLength;
}
- /* lowercase [prev..index[ */
+ /*
+ * Unicode 4 & 5 section 3.13 Default Case Operations:
+ *
+ * R3 toTitlecase(X): Find the word boundaries based on Unicode Standard Annex
+ * #29, "Text Boundaries." Between each pair of word boundaries, find the first
+ * cased character F. If F exists, map F to default_title(F); then map each
+ * subsequent character C to default_lower(C).
+ *
+ * In this implementation, segment [prev..index[ into 3 parts:
+ * a) uncased characters (copy as-is) [prev..titleStart[
+ * b) first case letter (titlecase) [titleStart..titleLimit[
+ * c) subsequent characters (lowercase) [titleLimit..index[
+ */
if(prev<index) {
- destIndex+=
- _caseMap(
- csp, ucase_toFullLower,
- dest+destIndex, destCapacity-destIndex,
- src, csc,
- prev, index,
- locale, locCache,
- pErrorCode);
- }
+ /* find and copy uncased characters [prev..titleStart[ */
+ titleStart=titleLimit=prev;
+ for(;;) {
+ U16_NEXT(src, titleLimit, srcLength, c);
+ if(UCASE_NONE!=ucase_getType(csp, c)) {
+ break; /* cased letter at [titleStart..titleLimit[ */
+ }
+ titleStart=titleLimit;
+ if(titleLimit==index) {
+ /*
+ * only uncased characters in [prev..index[
+ * stop with titleStart==titleLimit==index
+ */
+ break;
+ }
+ }
+ length=titleStart-prev;
+ if(length>0) {
+ if((destIndex+length)<=destCapacity) {
+ uprv_memcpy(dest+destIndex, src+prev, length*U_SIZEOF_UCHAR);
+ }
+ destIndex+=length;
+ }
- if(index>=srcLength) {
- break;
+ if(titleStart<titleLimit) {
+ /* titlecase c which is from [titleStart..titleLimit[ */
+ csc->cpStart=titleStart;
+ csc->cpLimit=titleLimit;
+ c=ucase_toFullTitle(csp, c, utf16_caseContextIterator, csc, &s, locale, locCache);
+ destIndex=appendResult(dest, destIndex, destCapacity, c, s);
+
+ /* lowercase [titleLimit..index[ */
+ if(titleLimit<index) {
+ destIndex+=
+ _caseMap(
+ csp, ucase_toFullLower,
+ dest+destIndex, destCapacity-destIndex,
+ src, csc,
+ titleLimit, index,
+ locale, locCache,
+ pErrorCode);
+ }
+ }
}
- /* titlecase the character at the found index */
- csc->cpStart=index;
- U16_NEXT(src, index, srcLength, c);
- csc->cpLimit=index;
- c=ucase_toFullTitle(csp, c, utf16_caseContextIterator, csc, &s, locale, locCache);
- destIndex=appendResult(dest, destIndex, destCapacity, c, s);
-
prev=index;
}
diff --git a/Build/source/libs/icu-xetex/common/ustrenum.cpp b/Build/source/libs/icu-xetex/common/ustrenum.cpp
index 22db32b87c1..2a7acf6801e 100644
--- a/Build/source/libs/icu-xetex/common/ustrenum.cpp
+++ b/Build/source/libs/icu-xetex/common/ustrenum.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2004, International Business Machines
+* Copyright (c) 2002-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -111,6 +111,15 @@ StringEnumeration::setChars(const char *s, int32_t length, UErrorCode &status) {
return NULL;
}
+UBool
+StringEnumeration::operator==(const StringEnumeration& that)const {
+ return getDynamicClassID() == that.getDynamicClassID();
+}
+
+UBool
+StringEnumeration::operator!=(const StringEnumeration& that)const {
+ return !operator==(that);
+}
// UStringEnumeration implementation --------------------------------------- ***
@@ -311,3 +320,4 @@ uenum_openCharStringsEnumeration(const char** strings, int32_t count,
return (UEnumeration*) result;
}
+
diff --git a/Build/source/libs/icu-xetex/common/ustrfmt.c b/Build/source/libs/icu-xetex/common/ustrfmt.c
index 81b778c1b0f..5e9fb924f8d 100644
--- a/Build/source/libs/icu-xetex/common/ustrfmt.c
+++ b/Build/source/libs/icu-xetex/common/ustrfmt.c
@@ -1,42 +1,13 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
#include "cstring.h"
#include "ustrfmt.h"
-#include <stdio.h>
-U_CAPI char* U_EXPORT2
-uprv_dtostr(double value, char *buffer, int maximumDigits,UBool fixedPoint)
-{
- char *itrPtr = buffer + 1; /* skip '-' or a number before the decimal */
- char *startPtr;
-
- sprintf(buffer,"%f",value);
-
- /* Find the decimal point.
- Some unusal machines use a comma when the system locale changes
- */
- while (isalnum(*itrPtr)) {
- itrPtr++;
- }
- *itrPtr = '.';
-
- /* truncate trailing zeros, except the one after '.' */
- startPtr = itrPtr + 1;
- itrPtr = uprv_strchr(startPtr, 0);
- while(--itrPtr > startPtr){
- if(*itrPtr == '0'){
- *itrPtr = 0;
- }else{
- break;
- }
- }
- return buffer;
-}
/***
* Fills in a UChar* string with the radix-based representation of a
diff --git a/Build/source/libs/icu-xetex/common/ustrfmt.h b/Build/source/libs/icu-xetex/common/ustrfmt.h
index 814b5373230..f1891bdabf5 100644
--- a/Build/source/libs/icu-xetex/common/ustrfmt.h
+++ b/Build/source/libs/icu-xetex/common/ustrfmt.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -10,8 +10,6 @@
#include "unicode/utypes.h"
-U_CAPI char* U_EXPORT2
-uprv_dtostr(double value, char *buffer, int maximumDigits,UBool fixedPoint);
U_CAPI int32_t U_EXPORT2
uprv_itou (UChar * buffer, int32_t capacity, uint32_t i, uint32_t radix, int32_t minwidth);
diff --git a/Build/source/libs/icu-xetex/common/ustrtrns.c b/Build/source/libs/icu-xetex/common/ustrtrns.c
index e64476996b0..1801d8aeb64 100644
--- a/Build/source/libs/icu-xetex/common/ustrtrns.c
+++ b/Build/source/libs/icu-xetex/common/ustrtrns.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -186,69 +186,687 @@ u_strToUTF32(UChar32 *dest,
return dest;
}
+/* for utf8_nextCharSafeBodyTerminated() */
+static const UChar32
+utf8_minLegal[4]={ 0, 0x80, 0x800, 0x10000 };
+
+/*
+ * Version of utf8_nextCharSafeBody() with the following differences:
+ * - checks for NUL termination instead of length
+ * - works with pointers instead of indexes
+ * - always strict (strict==-1)
+ *
+ * *ps points to after the lead byte and will be moved to after the last trail byte.
+ * c is the lead byte.
+ * @return the code point, or U_SENTINEL
+ */
+static UChar32
+utf8_nextCharSafeBodyTerminated(const uint8_t **ps, UChar32 c) {
+ const uint8_t *s=*ps;
+ uint8_t trail, illegal=0;
+ uint8_t count=UTF8_COUNT_TRAIL_BYTES(c);
+ UTF8_MASK_LEAD_BYTE((c), count);
+ /* count==0 for illegally leading trail bytes and the illegal bytes 0xfe and 0xff */
+ switch(count) {
+ /* each branch falls through to the next one */
+ case 5:
+ case 4:
+ /* count>=4 is always illegal: no more than 3 trail bytes in Unicode's UTF-8 */
+ illegal=1;
+ break;
+ case 3:
+ trail=(uint8_t)(*s++ - 0x80);
+ c=(c<<6)|trail;
+ if(trail>0x3f || c>=0x110) {
+ /* not a trail byte, or code point>0x10ffff (outside Unicode) */
+ illegal=1;
+ break;
+ }
+ case 2:
+ trail=(uint8_t)(*s++ - 0x80);
+ if(trail>0x3f) {
+ /* not a trail byte */
+ illegal=1;
+ break;
+ }
+ c=(c<<6)|trail;
+ case 1:
+ trail=(uint8_t)(*s++ - 0x80);
+ if(trail>0x3f) {
+ /* not a trail byte */
+ illegal=1;
+ }
+ c=(c<<6)|trail;
+ break;
+ case 0:
+ return U_SENTINEL;
+ /* no default branch to optimize switch() - all values are covered */
+ }
+
+ /* correct sequence - all trail bytes have (b7..b6)==(10)? */
+ /* illegal is also set if count>=4 */
+ if(illegal || c<utf8_minLegal[count] || UTF_IS_SURROGATE(c)) {
+ /* error handling */
+ /* don't go beyond this sequence */
+ s=*ps;
+ while(count>0 && UTF8_IS_TRAIL(*s)) {
+ ++s;
+ --count;
+ }
+ c=U_SENTINEL;
+ }
+ *ps=s;
+ return c;
+}
+
+/*
+ * Version of utf8_nextCharSafeBody() with the following differences:
+ * - works with pointers instead of indexes
+ * - always strict (strict==-1)
+ *
+ * *ps points to after the lead byte and will be moved to after the last trail byte.
+ * c is the lead byte.
+ * @return the code point, or U_SENTINEL
+ */
+static UChar32
+utf8_nextCharSafeBodyPointer(const uint8_t **ps, const uint8_t *limit, UChar32 c) {
+ const uint8_t *s=*ps;
+ uint8_t trail, illegal=0;
+ uint8_t count=UTF8_COUNT_TRAIL_BYTES(c);
+ if((limit-s)>=count) {
+ UTF8_MASK_LEAD_BYTE((c), count);
+ /* count==0 for illegally leading trail bytes and the illegal bytes 0xfe and 0xff */
+ switch(count) {
+ /* each branch falls through to the next one */
+ case 5:
+ case 4:
+ /* count>=4 is always illegal: no more than 3 trail bytes in Unicode's UTF-8 */
+ illegal=1;
+ break;
+ case 3:
+ trail=*s++;
+ c=(c<<6)|(trail&0x3f);
+ if(c<0x110) {
+ illegal|=(trail&0xc0)^0x80;
+ } else {
+ /* code point>0x10ffff, outside Unicode */
+ illegal=1;
+ break;
+ }
+ case 2:
+ trail=*s++;
+ c=(c<<6)|(trail&0x3f);
+ illegal|=(trail&0xc0)^0x80;
+ case 1:
+ trail=*s++;
+ c=(c<<6)|(trail&0x3f);
+ illegal|=(trail&0xc0)^0x80;
+ break;
+ case 0:
+ return U_SENTINEL;
+ /* no default branch to optimize switch() - all values are covered */
+ }
+ } else {
+ illegal=1; /* too few bytes left */
+ }
+
+ /* correct sequence - all trail bytes have (b7..b6)==(10)? */
+ /* illegal is also set if count>=4 */
+ if(illegal || c<utf8_minLegal[count] || UTF_IS_SURROGATE(c)) {
+ /* error handling */
+ /* don't go beyond this sequence */
+ s=*ps;
+ while(count>0 && s<limit && UTF8_IS_TRAIL(*s)) {
+ ++s;
+ --count;
+ }
+ c=U_SENTINEL;
+ }
+ *ps=s;
+ return c;
+}
+
U_CAPI UChar* U_EXPORT2
-u_strFromUTF8(UChar *dest,
+u_strFromUTF8WithSub(UChar *dest,
int32_t destCapacity,
int32_t *pDestLength,
- const char* src,
+ const char* src,
int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
UErrorCode *pErrorCode){
UChar *pDest = dest;
UChar *pDestLimit = dest+destCapacity;
- UChar32 ch=0;
- int32_t index = 0;
+ UChar32 ch;
int32_t reqLength = 0;
- uint8_t* pSrc = (uint8_t*) src;
+ const uint8_t* pSrc = (const uint8_t*) src;
+ uint8_t t1, t2; /* trail bytes */
+ int32_t numSubstitutions;
/* args check */
if(pErrorCode==NULL || U_FAILURE(*pErrorCode)){
return NULL;
}
- if((src==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0)){
+ if( (src==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0) ||
+ subchar > 0x10ffff || U_IS_SURROGATE(subchar)
+ ) {
*pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
}
- if(srcLength == -1){
- srcLength = (int32_t)uprv_strlen((char*)pSrc);
- }
-
- while((index < srcLength)&&(pDest<pDestLimit)){
- ch = pSrc[index++];
- if(ch <=0x7f){
- *pDest++=(UChar)ch;
- }else{
- ch=utf8_nextCharSafeBody(pSrc, &index, srcLength, ch, -1);
- if(ch<0){
- *pErrorCode = U_INVALID_CHAR_FOUND;
- return NULL;
- }else if(ch<=0xFFFF){
- *(pDest++)=(UChar)ch;
- }else{
- *(pDest++)=UTF16_LEAD(ch);
- if(pDest<pDestLimit){
- *(pDest++)=UTF16_TRAIL(ch);
+ numSubstitutions=0;
+
+ /*
+ * Inline processing of UTF-8 byte sequences:
+ *
+ * Byte sequences for the most common characters are handled inline in
+ * the conversion loops. In order to reduce the path lengths for those
+ * characters, the tests are arranged in a kind of binary search.
+ * ASCII (<=0x7f) is checked first, followed by the dividing point
+ * between 2- and 3-byte sequences (0xe0).
+ * The 3-byte branch is tested first to speed up CJK text.
+ * The compiler should combine the subtractions for the two tests for 0xe0.
+ * Each branch then tests for the other end of its range.
+ */
+
+ if(srcLength < 0){
+ /*
+ * Transform a NUL-terminated string.
+ * The code explicitly checks for NULs only in the lead byte position.
+ * A NUL byte in the trail byte position fails the trail byte range check anyway.
+ */
+ while(((ch = *pSrc) != 0) && (pDest < pDestLimit)) {
+ if(ch <= 0x7f){
+ *pDest++=(UChar)ch;
+ ++pSrc;
+ } else {
+ if(ch > 0xe0) {
+ if( /* handle U+1000..U+CFFF inline */
+ ch <= 0xec &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f &&
+ (t2 = (uint8_t)(pSrc[2] - 0x80)) <= 0x3f
+ ) {
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ *pDest++ = (UChar)((ch << 12) | (t1 << 6) | t2);
+ pSrc += 3;
+ continue;
+ }
+ } else if(ch < 0xe0) {
+ if( /* handle U+0080..U+07FF inline */
+ ch >= 0xc2 &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f
+ ) {
+ *pDest++ = (UChar)(((ch & 0x1f) << 6) | t1);
+ pSrc += 2;
+ continue;
+ }
+ }
+
+ /* function call for "complicated" and error cases */
+ ++pSrc; /* continue after the lead byte */
+ ch=utf8_nextCharSafeBodyTerminated(&pSrc, ch);
+ if(ch<0 && (++numSubstitutions, ch = subchar) < 0) {
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ } else if(ch<=0xFFFF) {
+ *(pDest++)=(UChar)ch;
+ } else {
+ *(pDest++)=UTF16_LEAD(ch);
+ if(pDest<pDestLimit) {
+ *(pDest++)=UTF16_TRAIL(ch);
+ } else {
+ reqLength++;
+ break;
+ }
+ }
+ }
+ }
+
+ /* Pre-flight the rest of the string. */
+ while((ch = *pSrc) != 0) {
+ if(ch <= 0x7f){
+ ++reqLength;
+ ++pSrc;
+ } else {
+ if(ch > 0xe0) {
+ if( /* handle U+1000..U+CFFF inline */
+ ch <= 0xec &&
+ (uint8_t)(pSrc[1] - 0x80) <= 0x3f &&
+ (uint8_t)(pSrc[2] - 0x80) <= 0x3f
+ ) {
+ ++reqLength;
+ pSrc += 3;
+ continue;
+ }
+ } else if(ch < 0xe0) {
+ if( /* handle U+0080..U+07FF inline */
+ ch >= 0xc2 &&
+ (uint8_t)(pSrc[1] - 0x80) <= 0x3f
+ ) {
+ ++reqLength;
+ pSrc += 2;
+ continue;
+ }
+ }
+
+ /* function call for "complicated" and error cases */
+ ++pSrc; /* continue after the lead byte */
+ ch=utf8_nextCharSafeBodyTerminated(&pSrc, ch);
+ if(ch<0 && (++numSubstitutions, ch = subchar) < 0) {
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ }
+ reqLength += U16_LENGTH(ch);
+ }
+ }
+ } else /* srcLength >= 0 */ {
+ const uint8_t *pSrcLimit = pSrc + srcLength;
+ int32_t count;
+
+ /* Faster loop without ongoing checking for pSrcLimit and pDestLimit. */
+ for(;;) {
+ /*
+ * Each iteration of the inner loop progresses by at most 3 UTF-8
+ * bytes and one UChar, for most characters.
+ * For supplementary code points (4 & 2), which are rare,
+ * there is an additional adjustment.
+ */
+ count = (int32_t)(pDestLimit - pDest);
+ srcLength = (int32_t)((pSrcLimit - pSrc) / 3);
+ if(count > srcLength) {
+ count = srcLength; /* min(remaining dest, remaining src/3) */
+ }
+ if(count < 3) {
+ /*
+ * Too much overhead if we get near the end of the string,
+ * continue with the next loop.
+ */
+ break;
+ }
+
+ do {
+ ch = *pSrc;
+ if(ch <= 0x7f){
+ *pDest++=(UChar)ch;
+ ++pSrc;
+ } else {
+ if(ch > 0xe0) {
+ if( /* handle U+1000..U+CFFF inline */
+ ch <= 0xec &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f &&
+ (t2 = (uint8_t)(pSrc[2] - 0x80)) <= 0x3f
+ ) {
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ *pDest++ = (UChar)((ch << 12) | (t1 << 6) | t2);
+ pSrc += 3;
+ continue;
+ }
+ } else if(ch < 0xe0) {
+ if( /* handle U+0080..U+07FF inline */
+ ch >= 0xc2 &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f
+ ) {
+ *pDest++ = (UChar)(((ch & 0x1f) << 6) | t1);
+ pSrc += 2;
+ continue;
+ }
+ }
+
+ if(ch >= 0xf0 || subchar > 0xffff) {
+ /*
+ * We may read up to six bytes and write up to two UChars,
+ * which we didn't account for with computing count,
+ * so we adjust it here.
+ */
+ if(--count == 0) {
+ break;
+ }
+ }
+
+ /* function call for "complicated" and error cases */
+ ++pSrc; /* continue after the lead byte */
+ ch=utf8_nextCharSafeBodyPointer(&pSrc, pSrcLimit, ch);
+ if(ch<0 && (++numSubstitutions, ch = subchar) < 0){
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ }else if(ch<=0xFFFF){
+ *(pDest++)=(UChar)ch;
+ }else{
+ *(pDest++)=UTF16_LEAD(ch);
+ if(pDest<pDestLimit){
+ *(pDest++)=UTF16_TRAIL(ch);
+ }else{
+ reqLength++;
+ break;
+ }
+ }
+ }
+ } while(--count > 0);
+ }
+
+ while((pSrc<pSrcLimit) && (pDest<pDestLimit)) {
+ ch = *pSrc;
+ if(ch <= 0x7f){
+ *pDest++=(UChar)ch;
+ ++pSrc;
+ } else {
+ if(ch > 0xe0) {
+ if( /* handle U+1000..U+CFFF inline */
+ ch <= 0xec &&
+ ((pSrcLimit - pSrc) >= 3) &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f &&
+ (t2 = (uint8_t)(pSrc[2] - 0x80)) <= 0x3f
+ ) {
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ *pDest++ = (UChar)((ch << 12) | (t1 << 6) | t2);
+ pSrc += 3;
+ continue;
+ }
+ } else if(ch < 0xe0) {
+ if( /* handle U+0080..U+07FF inline */
+ ch >= 0xc2 &&
+ ((pSrcLimit - pSrc) >= 2) &&
+ (t1 = (uint8_t)(pSrc[1] - 0x80)) <= 0x3f
+ ) {
+ *pDest++ = (UChar)(((ch & 0x1f) << 6) | t1);
+ pSrc += 2;
+ continue;
+ }
+ }
+
+ /* function call for "complicated" and error cases */
+ ++pSrc; /* continue after the lead byte */
+ ch=utf8_nextCharSafeBodyPointer(&pSrc, pSrcLimit, ch);
+ if(ch<0 && (++numSubstitutions, ch = subchar) < 0){
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ }else if(ch<=0xFFFF){
+ *(pDest++)=(UChar)ch;
}else{
- reqLength++;
- break;
+ *(pDest++)=UTF16_LEAD(ch);
+ if(pDest<pDestLimit){
+ *(pDest++)=UTF16_TRAIL(ch);
+ }else{
+ reqLength++;
+ break;
+ }
}
}
}
+ /* donot fill the dest buffer just count the UChars needed */
+ while(pSrc < pSrcLimit){
+ ch = *pSrc;
+ if(ch <= 0x7f){
+ reqLength++;
+ ++pSrc;
+ } else {
+ if(ch > 0xe0) {
+ if( /* handle U+1000..U+CFFF inline */
+ ch <= 0xec &&
+ ((pSrcLimit - pSrc) >= 3) &&
+ (uint8_t)(pSrc[1] - 0x80) <= 0x3f &&
+ (uint8_t)(pSrc[2] - 0x80) <= 0x3f
+ ) {
+ reqLength++;
+ pSrc += 3;
+ continue;
+ }
+ } else if(ch < 0xe0) {
+ if( /* handle U+0080..U+07FF inline */
+ ch >= 0xc2 &&
+ ((pSrcLimit - pSrc) >= 2) &&
+ (uint8_t)(pSrc[1] - 0x80) <= 0x3f
+ ) {
+ reqLength++;
+ pSrc += 2;
+ continue;
+ }
+ }
+
+ /* function call for "complicated" and error cases */
+ ++pSrc; /* continue after the lead byte */
+ ch=utf8_nextCharSafeBodyPointer(&pSrc, pSrcLimit, ch);
+ if(ch<0 && (++numSubstitutions, ch = subchar) < 0){
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ }
+ reqLength+=UTF_CHAR_LENGTH(ch);
+ }
+ }
}
- /* donot fill the dest buffer just count the UChars needed */
- while(index < srcLength){
- ch = pSrc[index++];
- if(ch <= 0x7f){
- reqLength++;
- }else{
- ch=utf8_nextCharSafeBody(pSrc, &index, srcLength, ch, -1);
- if(ch<0){
- *pErrorCode = U_INVALID_CHAR_FOUND;
- return NULL;
+
+ reqLength+=(int32_t)(pDest - dest);
+
+ if(pNumSubstitutions!=NULL) {
+ *pNumSubstitutions=numSubstitutions;
+ }
+
+ if(pDestLength){
+ *pDestLength = reqLength;
+ }
+
+ /* Terminate the buffer */
+ u_terminateUChars(dest,destCapacity,reqLength,pErrorCode);
+
+ return dest;
+}
+
+U_CAPI UChar* U_EXPORT2
+u_strFromUTF8(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char* src,
+ int32_t srcLength,
+ UErrorCode *pErrorCode){
+ return u_strFromUTF8WithSub(
+ dest, destCapacity, pDestLength,
+ src, srcLength,
+ U_SENTINEL, NULL,
+ pErrorCode);
+}
+
+U_CAPI UChar * U_EXPORT2
+u_strFromUTF8Lenient(UChar *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const char *src,
+ int32_t srcLength,
+ UErrorCode *pErrorCode) {
+
+ UChar *pDest = dest;
+ UChar32 ch;
+ int32_t reqLength = 0;
+ uint8_t* pSrc = (uint8_t*) src;
+
+ /* args check */
+ if(pErrorCode==NULL || U_FAILURE(*pErrorCode)){
+ return NULL;
+ }
+
+ if((src==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0)) {
+ *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ if(srcLength < 0) {
+ /* Transform a NUL-terminated string. */
+ UChar *pDestLimit = dest+destCapacity;
+ uint8_t t1, t2, t3; /* trail bytes */
+
+ while(((ch = *pSrc) != 0) && (pDest < pDestLimit)) {
+ if(ch < 0xc0) {
+ /*
+ * ASCII, or a trail byte in lead position which is treated like
+ * a single-byte sequence for better character boundary
+ * resynchronization after illegal sequences.
+ */
+ *pDest++=(UChar)ch;
+ ++pSrc;
+ continue;
+ } else if(ch < 0xe0) { /* U+0080..U+07FF */
+ if((t1 = pSrc[1]) != 0) {
+ /* 0x3080 = (0xc0 << 6) + 0x80 */
+ *pDest++ = (UChar)((ch << 6) + t1 - 0x3080);
+ pSrc += 2;
+ continue;
+ }
+ } else if(ch < 0xf0) { /* U+0800..U+FFFF */
+ if((t1 = pSrc[1]) != 0 && (t2 = pSrc[2]) != 0) {
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ /* 0x2080 = (0x80 << 6) + 0x80 */
+ *pDest++ = (UChar)((ch << 12) + (t1 << 6) + t2 - 0x2080);
+ pSrc += 3;
+ continue;
+ }
+ } else /* f0..f4 */ { /* U+10000..U+10FFFF */
+ if((t1 = pSrc[1]) != 0 && (t2 = pSrc[2]) != 0 && (t3 = pSrc[3]) != 0) {
+ pSrc += 4;
+ /* 0x3c82080 = (0xf0 << 18) + (0x80 << 12) + (0x80 << 6) + 0x80 */
+ ch = (ch << 18) + (t1 << 12) + (t2 << 6) + t3 - 0x3c82080;
+ *(pDest++) = U16_LEAD(ch);
+ if(pDest < pDestLimit) {
+ *(pDest++) = U16_TRAIL(ch);
+ } else {
+ reqLength = 1;
+ break;
+ }
+ continue;
+ }
}
- reqLength+=UTF_CHAR_LENGTH(ch);
+
+ /* truncated character at the end */
+ *pDest++ = 0xfffd;
+ while(*++pSrc != 0) {}
+ break;
+ }
+
+ /* Pre-flight the rest of the string. */
+ while((ch = *pSrc) != 0) {
+ if(ch < 0xc0) {
+ /*
+ * ASCII, or a trail byte in lead position which is treated like
+ * a single-byte sequence for better character boundary
+ * resynchronization after illegal sequences.
+ */
+ ++reqLength;
+ ++pSrc;
+ continue;
+ } else if(ch < 0xe0) { /* U+0080..U+07FF */
+ if(pSrc[1] != 0) {
+ ++reqLength;
+ pSrc += 2;
+ continue;
+ }
+ } else if(ch < 0xf0) { /* U+0800..U+FFFF */
+ if(pSrc[1] != 0 && pSrc[2] != 0) {
+ ++reqLength;
+ pSrc += 3;
+ continue;
+ }
+ } else /* f0..f4 */ { /* U+10000..U+10FFFF */
+ if(pSrc[1] != 0 && pSrc[2] != 0 && pSrc[3] != 0) {
+ reqLength += 2;
+ pSrc += 4;
+ continue;
+ }
+ }
+
+ /* truncated character at the end */
+ ++reqLength;
+ break;
+ }
+ } else /* srcLength >= 0 */ {
+ const uint8_t *pSrcLimit = pSrc + srcLength;
+
+ /*
+ * This function requires that if srcLength is given, then it must be
+ * destCapatity >= srcLength so that we need not check for
+ * destination buffer overflow in the loop.
+ */
+ if(destCapacity < srcLength) {
+ if(pDestLength != NULL) {
+ *pDestLength = srcLength; /* this likely overestimates the true destLength! */
+ }
+ *pErrorCode = U_BUFFER_OVERFLOW_ERROR;
+ return NULL;
+ }
+
+ if((pSrcLimit - pSrc) >= 4) {
+ pSrcLimit -= 3; /* temporarily reduce pSrcLimit */
+
+ /* in this loop, we can always access at least 4 bytes, up to pSrc+3 */
+ do {
+ ch = *pSrc++;
+ if(ch < 0xc0) {
+ /*
+ * ASCII, or a trail byte in lead position which is treated like
+ * a single-byte sequence for better character boundary
+ * resynchronization after illegal sequences.
+ */
+ *pDest++=(UChar)ch;
+ } else if(ch < 0xe0) { /* U+0080..U+07FF */
+ /* 0x3080 = (0xc0 << 6) + 0x80 */
+ *pDest++ = (UChar)((ch << 6) + *pSrc++ - 0x3080);
+ } else if(ch < 0xf0) { /* U+0800..U+FFFF */
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ /* 0x2080 = (0x80 << 6) + 0x80 */
+ ch = (ch << 12) + (*pSrc++ << 6);
+ *pDest++ = (UChar)(ch + *pSrc++ - 0x2080);
+ } else /* f0..f4 */ { /* U+10000..U+10FFFF */
+ /* 0x3c82080 = (0xf0 << 18) + (0x80 << 12) + (0x80 << 6) + 0x80 */
+ ch = (ch << 18) + (*pSrc++ << 12);
+ ch += *pSrc++ << 6;
+ ch += *pSrc++ - 0x3c82080;
+ *(pDest++) = U16_LEAD(ch);
+ *(pDest++) = U16_TRAIL(ch);
+ }
+ } while(pSrc < pSrcLimit);
+
+ pSrcLimit += 3; /* restore original pSrcLimit */
+ }
+
+ while(pSrc < pSrcLimit) {
+ ch = *pSrc++;
+ if(ch < 0xc0) {
+ /*
+ * ASCII, or a trail byte in lead position which is treated like
+ * a single-byte sequence for better character boundary
+ * resynchronization after illegal sequences.
+ */
+ *pDest++=(UChar)ch;
+ continue;
+ } else if(ch < 0xe0) { /* U+0080..U+07FF */
+ if(pSrc < pSrcLimit) {
+ /* 0x3080 = (0xc0 << 6) + 0x80 */
+ *pDest++ = (UChar)(((ch & 0x1f) << 6) + *pSrc++ - 0x3080);
+ continue;
+ }
+ } else if(ch < 0xf0) { /* U+0800..U+FFFF */
+ if((pSrcLimit - pSrc) >= 2) {
+ /* no need for (ch & 0xf) because the upper bits are truncated after <<12 in the cast to (UChar) */
+ /* 0x2080 = (0x80 << 6) + 0x80 */
+ ch = (ch << 12) + (*pSrc++ << 6);
+ *pDest++ = (UChar)(ch + *pSrc++ - 0x2080);
+ pSrc += 3;
+ continue;
+ }
+ } else /* f0..f4 */ { /* U+10000..U+10FFFF */
+ if((pSrcLimit - pSrc) >= 3) {
+ /* 0x3c82080 = (0xf0 << 18) + (0x80 << 12) + (0x80 << 6) + 0x80 */
+ ch = (ch << 18) + (*pSrc++ << 12);
+ ch += *pSrc++ << 6;
+ ch += *pSrc++ - 0x3c82080;
+ *(pDest++) = U16_LEAD(ch);
+ *(pDest++) = U16_TRAIL(ch);
+ pSrc += 4;
+ continue;
+ }
+ }
+
+ /* truncated character at the end */
+ *pDest++ = 0xfffd;
+ break;
}
}
@@ -266,11 +884,13 @@ u_strFromUTF8(UChar *dest,
static U_INLINE uint8_t *
_appendUTF8(uint8_t *pDest, UChar32 c) {
- /* c<=0x7f is handled by the caller, here it is 0x80<=c<=0x10ffff */
- if((c)<=0x7ff) {
+ /* it is 0<=c<=0x10ffff and not a surrogate if called by a validating function */
+ if((c)<=0x7f) {
+ *pDest++=(uint8_t)c;
+ } else if(c<=0x7ff) {
*pDest++=(uint8_t)((c>>6)|0xc0);
*pDest++=(uint8_t)((c&0x3f)|0x80);
- } else if((uint32_t)(c)<=0xffff) {
+ } else if(c<=0xffff) {
*pDest++=(uint8_t)((c>>12)|0xe0);
*pDest++=(uint8_t)(((c>>6)&0x3f)|0x80);
*pDest++=(uint8_t)(((c)&0x3f)|0x80);
@@ -285,57 +905,86 @@ _appendUTF8(uint8_t *pDest, UChar32 c) {
U_CAPI char* U_EXPORT2
-u_strToUTF8(char *dest,
+u_strToUTF8WithSub(char *dest,
int32_t destCapacity,
int32_t *pDestLength,
- const UChar *pSrc,
+ const UChar *pSrc,
int32_t srcLength,
+ UChar32 subchar, int32_t *pNumSubstitutions,
UErrorCode *pErrorCode){
int32_t reqLength=0;
- const UChar *pSrcLimit;
uint32_t ch=0,ch2=0;
uint8_t *pDest = (uint8_t *)dest;
uint8_t *pDestLimit = pDest + destCapacity;
-
+ int32_t numSubstitutions;
/* args check */
if(pErrorCode==NULL || U_FAILURE(*pErrorCode)){
return NULL;
}
- if((pSrc==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0)){
+ if( (pSrc==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0) ||
+ subchar > 0x10ffff || U_IS_SURROGATE(subchar)
+ ) {
*pErrorCode = U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
}
+ numSubstitutions=0;
+
if(srcLength==-1) {
- while((ch=*pSrc)!=0 && pDest!=pDestLimit) {
+ while((ch=*pSrc)!=0) {
++pSrc;
if(ch <= 0x7f) {
- *pDest++ = (char)ch;
- ++reqLength;
- continue;
- }
+ if(pDest<pDestLimit) {
+ *pDest++ = (char)ch;
+ } else {
+ reqLength = 1;
+ break;
+ }
+ } else if(ch <= 0x7ff) {
+ if((pDestLimit - pDest) >= 2) {
+ *pDest++=(uint8_t)((ch>>6)|0xc0);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else {
+ reqLength = 2;
+ break;
+ }
+ } else if(ch <= 0xd7ff || ch >= 0xe000) {
+ if((pDestLimit - pDest) >= 3) {
+ *pDest++=(uint8_t)((ch>>12)|0xe0);
+ *pDest++=(uint8_t)(((ch>>6)&0x3f)|0x80);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else {
+ reqLength = 3;
+ break;
+ }
+ } else /* ch is a surrogate */ {
+ int32_t length;
- /*need not check for NUL because NUL fails UTF_IS_TRAIL() anyway*/
- if(UTF_IS_SURROGATE(ch)) {
+ /*need not check for NUL because NUL fails UTF_IS_TRAIL() anyway*/
if(UTF_IS_SURROGATE_FIRST(ch) && UTF_IS_TRAIL(ch2=*pSrc)) {
++pSrc;
ch=UTF16_GET_PAIR_VALUE(ch, ch2);
+ } else if(subchar>=0) {
+ ch=subchar;
+ ++numSubstitutions;
} else {
/* Unicode 3.2 forbids surrogate code points in UTF-8 */
*pErrorCode = U_INVALID_CHAR_FOUND;
return NULL;
}
+
+ length = U8_LENGTH(ch);
+ if((pDestLimit - pDest) >= length) {
+ /* convert and append*/
+ pDest=_appendUTF8(pDest, ch);
+ } else {
+ reqLength = length;
+ break;
+ }
}
- reqLength += UTF8_CHAR_LENGTH(ch);
- /* do we have enough room in destination? */
- if(destCapacity< reqLength){
- break;
- }
- /* convert and append*/
- pDest=_appendUTF8(pDest, ch);
}
while((ch=*pSrc++)!=0) {
if(ch<=0x7f) {
@@ -347,6 +996,9 @@ u_strToUTF8(char *dest,
} else if(UTF_IS_SURROGATE_FIRST(ch) && UTF_IS_TRAIL(ch2=*pSrc)) {
++pSrc;
reqLength+=4;
+ } else if(subchar>=0) {
+ reqLength+=U8_LENGTH(subchar);
+ ++numSubstitutions;
} else {
/* Unicode 3.2 forbids surrogate code points in UTF-8 */
*pErrorCode = U_INVALID_CHAR_FOUND;
@@ -354,32 +1006,127 @@ u_strToUTF8(char *dest,
}
}
} else {
- pSrcLimit = pSrc+srcLength;
- while(pSrc<pSrcLimit && pDest<pDestLimit) {
+ const UChar *pSrcLimit = pSrc+srcLength;
+ int32_t count;
+
+ /* Faster loop without ongoing checking for pSrcLimit and pDestLimit. */
+ for(;;) {
+ /*
+ * Each iteration of the inner loop progresses by at most 3 UTF-8
+ * bytes and one UChar, for most characters.
+ * For supplementary code points (4 & 2), which are rare,
+ * there is an additional adjustment.
+ */
+ count = (int32_t)((pDestLimit - pDest) / 3);
+ srcLength = (int32_t)(pSrcLimit - pSrc);
+ if(count > srcLength) {
+ count = srcLength; /* min(remaining dest/3, remaining src) */
+ }
+ if(count < 3) {
+ /*
+ * Too much overhead if we get near the end of the string,
+ * continue with the next loop.
+ */
+ break;
+ }
+ do {
+ ch=*pSrc++;
+ if(ch <= 0x7f) {
+ *pDest++ = (char)ch;
+ } else if(ch <= 0x7ff) {
+ *pDest++=(uint8_t)((ch>>6)|0xc0);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else if(ch <= 0xd7ff || ch >= 0xe000) {
+ *pDest++=(uint8_t)((ch>>12)|0xe0);
+ *pDest++=(uint8_t)(((ch>>6)&0x3f)|0x80);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else /* ch is a surrogate */ {
+ /*
+ * We will read two UChars and probably output four bytes,
+ * which we didn't account for with computing count,
+ * so we adjust it here.
+ */
+ if(--count == 0) {
+ --pSrc; /* undo ch=*pSrc++ for the lead surrogate */
+ break; /* recompute count */
+ }
+
+ if(UTF_IS_SURROGATE_FIRST(ch) && UTF_IS_TRAIL(ch2=*pSrc)) {
+ ++pSrc;
+ ch=UTF16_GET_PAIR_VALUE(ch, ch2);
+
+ /* writing 4 bytes per 2 UChars is ok */
+ *pDest++=(uint8_t)((ch>>18)|0xf0);
+ *pDest++=(uint8_t)(((ch>>12)&0x3f)|0x80);
+ *pDest++=(uint8_t)(((ch>>6)&0x3f)|0x80);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else {
+ /* Unicode 3.2 forbids surrogate code points in UTF-8 */
+ if(subchar>=0) {
+ ch=subchar;
+ ++numSubstitutions;
+ } else {
+ *pErrorCode = U_INVALID_CHAR_FOUND;
+ return NULL;
+ }
+
+ /* convert and append*/
+ pDest=_appendUTF8(pDest, ch);
+ }
+ }
+ } while(--count > 0);
+ }
+
+ while(pSrc<pSrcLimit) {
ch=*pSrc++;
if(ch <= 0x7f) {
- *pDest++ = (char)ch;
- ++reqLength;
- continue;
- }
+ if(pDest<pDestLimit) {
+ *pDest++ = (char)ch;
+ } else {
+ reqLength = 1;
+ break;
+ }
+ } else if(ch <= 0x7ff) {
+ if((pDestLimit - pDest) >= 2) {
+ *pDest++=(uint8_t)((ch>>6)|0xc0);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else {
+ reqLength = 2;
+ break;
+ }
+ } else if(ch <= 0xd7ff || ch >= 0xe000) {
+ if((pDestLimit - pDest) >= 3) {
+ *pDest++=(uint8_t)((ch>>12)|0xe0);
+ *pDest++=(uint8_t)(((ch>>6)&0x3f)|0x80);
+ *pDest++=(uint8_t)((ch&0x3f)|0x80);
+ } else {
+ reqLength = 3;
+ break;
+ }
+ } else /* ch is a surrogate */ {
+ int32_t length;
- if(UTF_IS_SURROGATE(ch)) {
if(UTF_IS_SURROGATE_FIRST(ch) && pSrc<pSrcLimit && UTF_IS_TRAIL(ch2=*pSrc)) {
++pSrc;
ch=UTF16_GET_PAIR_VALUE(ch, ch2);
+ } else if(subchar>=0) {
+ ch=subchar;
+ ++numSubstitutions;
} else {
/* Unicode 3.2 forbids surrogate code points in UTF-8 */
*pErrorCode = U_INVALID_CHAR_FOUND;
return NULL;
}
+
+ length = U8_LENGTH(ch);
+ if((pDestLimit - pDest) >= length) {
+ /* convert and append*/
+ pDest=_appendUTF8(pDest, ch);
+ } else {
+ reqLength = length;
+ break;
+ }
}
- reqLength += UTF8_CHAR_LENGTH(ch);
- /* do we have enough room in destination? */
- if(destCapacity< reqLength){
- break;
- }
- /* convert and append*/
- pDest=_appendUTF8(pDest, ch);
}
while(pSrc<pSrcLimit) {
ch=*pSrc++;
@@ -392,6 +1139,9 @@ u_strToUTF8(char *dest,
} else if(UTF_IS_SURROGATE_FIRST(ch) && pSrc<pSrcLimit && UTF_IS_TRAIL(ch2=*pSrc)) {
++pSrc;
reqLength+=4;
+ } else if(subchar>=0) {
+ reqLength+=U8_LENGTH(subchar);
+ ++numSubstitutions;
} else {
/* Unicode 3.2 forbids surrogate code points in UTF-8 */
*pErrorCode = U_INVALID_CHAR_FOUND;
@@ -400,6 +1150,12 @@ u_strToUTF8(char *dest,
}
}
+ reqLength+=(int32_t)(pDest - (uint8_t *)dest);
+
+ if(pNumSubstitutions!=NULL) {
+ *pNumSubstitutions=numSubstitutions;
+ }
+
if(pDestLength){
*pDestLength = reqLength;
}
@@ -409,3 +1165,17 @@ u_strToUTF8(char *dest,
return (char*)dest;
}
+
+U_CAPI char* U_EXPORT2
+u_strToUTF8(char *dest,
+ int32_t destCapacity,
+ int32_t *pDestLength,
+ const UChar *pSrc,
+ int32_t srcLength,
+ UErrorCode *pErrorCode){
+ return u_strToUTF8WithSub(
+ dest, destCapacity, pDestLength,
+ pSrc, srcLength,
+ U_SENTINEL, NULL,
+ pErrorCode);
+}
diff --git a/Build/source/libs/icu-xetex/common/utext.cpp b/Build/source/libs/icu-xetex/common/utext.cpp
index 3550fb64c8a..da496cd01b0 100644
--- a/Build/source/libs/icu-xetex/common/utext.cpp
+++ b/Build/source/libs/icu-xetex/common/utext.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2005, International Business Machines
+* Copyright (C) 2005-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -17,6 +17,7 @@
#include "unicode/utypes.h"
#include "unicode/ustring.h"
#include "unicode/unistr.h"
+#include "unicode/chariter.h"
#include "unicode/utext.h"
#include "ustr_imp.h"
#include "cmemory.h"
@@ -28,40 +29,55 @@
static UBool
-utext_access(UText *ut, int32_t index, UBool forward) {
- return ut->access(ut, index, forward, &ut->chunk);
+utext_access(UText *ut, int64_t index, UBool forward) {
+ return ut->pFuncs->access(ut, index, forward);
}
U_DRAFT UBool U_EXPORT2
utext_moveIndex32(UText *ut, int32_t delta) {
- UBool retval = TRUE;
- if(delta>0) {
+ UChar32 c;
+ if (delta > 0) {
do {
- if(ut->chunk.offset>=ut->chunk.length && !utext_access(ut, ut->chunk.nativeLimit, TRUE)) {
- retval = FALSE;
- break;
+ if(ut->chunkOffset>=ut->chunkLength && !utext_access(ut, ut->chunkNativeLimit, TRUE)) {
+ return FALSE;
+ }
+ c = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_SURROGATE(c)) {
+ c = utext_next32(ut);
+ if (c == U_SENTINEL) {
+ return FALSE;
+ }
+ } else {
+ ut->chunkOffset++;
}
- U16_FWD_1(ut->chunk.contents, ut->chunk.offset, ut->chunk.length);
} while(--delta>0);
+
} else if (delta<0) {
do {
- if(ut->chunk.offset<=0 && !utext_access(ut, ut->chunk.nativeStart, FALSE)) {
- retval = FALSE;
- break;
+ if(ut->chunkOffset<=0 && !utext_access(ut, ut->chunkNativeStart, FALSE)) {
+ return FALSE;
+ }
+ c = ut->chunkContents[ut->chunkOffset-1];
+ if (U16_IS_SURROGATE(c)) {
+ c = utext_previous32(ut);
+ if (c == U_SENTINEL) {
+ return FALSE;
+ }
+ } else {
+ ut->chunkOffset--;
}
- U16_BACK_1(ut->chunk.contents, 0, ut->chunk.offset);
} while(++delta<0);
- }
+ }
- return retval;
+ return TRUE;
}
-U_DRAFT int32_t U_EXPORT2
+U_DRAFT int64_t U_EXPORT2
utext_nativeLength(UText *ut) {
- return ut->nativeLength(ut);
+ return ut->pFuncs->nativeLength(ut);
}
@@ -72,36 +88,43 @@ utext_isLengthExpensive(const UText *ut) {
}
-U_DRAFT int32_t U_EXPORT2
-utext_getNativeIndex(UText *ut) {
- if(!ut->chunk.nonUTF16Indexes || ut->chunk.offset==0) {
- return ut->chunk.nativeStart+ut->chunk.offset;
+U_DRAFT int64_t U_EXPORT2
+utext_getNativeIndex(const UText *ut) {
+ if(ut->chunkOffset <= ut->nativeIndexingLimit) {
+ return ut->chunkNativeStart+ut->chunkOffset;
} else {
- return ut->mapOffsetToNative(ut, ut->chunk.offset);
+ return ut->pFuncs->mapOffsetToNative(ut);
}
}
-
U_DRAFT void U_EXPORT2
-utext_setNativeIndex(UText *ut, int32_t index) {
- if(index<ut->chunk.nativeStart || ut->chunk.nativeLimit<index) {
- // The desired position is outside of the current chunk.
+utext_setNativeIndex(UText *ut, int64_t index) {
+ if(index<ut->chunkNativeStart || index>=ut->chunkNativeLimit) {
+ // The desired position is outside of the current chunk.
// Access the new position. Assume a forward iteration from here,
// which will also be optimimum for a single random access.
// Reverse iterations may suffer slightly.
- ut->access(ut, index, TRUE, &ut->chunk);
- } else if(ut->chunk.nonUTF16Indexes) {
- ut->chunk.offset=ut->mapNativeIndexToUTF16(ut, index);
+ ut->pFuncs->access(ut, index, TRUE);
+ } else if((int32_t)(index - ut->chunkNativeStart) <= ut->nativeIndexingLimit) {
+ // utf-16 indexing.
+ ut->chunkOffset=(int32_t)(index-ut->chunkNativeStart);
} else {
- ut->chunk.offset=index-ut->chunk.nativeStart;
- // Our convention is that the index must always be on a code point boundary.
- // If we are somewhere in the middle of a utf-16 buffer, check that new index
- // is not in the middle of a surrogate pair.
- if (index>ut->chunk.nativeStart && index < ut->chunk.nativeLimit) {
- UChar c = ut->chunk.contents[ut->chunk.offset];
- if (U16_TRAIL(c)) {
- utext_current32(ut); // force index to the start of the curent code point.
+ ut->chunkOffset=ut->pFuncs->mapNativeIndexToUTF16(ut, index);
+ }
+ // The convention is that the index must always be on a code point boundary.
+ // Adjust the index position if it is in the middle of a surrogate pair.
+ if (ut->chunkOffset<ut->chunkLength) {
+ UChar c= ut->chunkContents[ut->chunkOffset];
+ if (UTF16_IS_TRAIL(c)) {
+ if (ut->chunkOffset==0) {
+ ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE);
+ }
+ if (ut->chunkOffset>0) {
+ UChar lead = ut->chunkContents[ut->chunkOffset-1];
+ if (UTF16_IS_LEAD(lead)) {
+ ut->chunkOffset--;
+ }
}
}
}
@@ -109,42 +132,123 @@ utext_setNativeIndex(UText *ut, int32_t index) {
-
+U_DRAFT int64_t U_EXPORT2
+utext_getPreviousNativeIndex(UText *ut) {
+ //
+ // Fast-path the common case.
+ // Common means current position is not at the beginning of a chunk
+ // and the preceding character is not supplementary.
+ //
+ int32_t i = ut->chunkOffset - 1;
+ int64_t result;
+ if (i >= 0) {
+ UChar c = ut->chunkContents[i];
+ if (U16_IS_TRAIL(c) == FALSE) {
+ if (i <= ut->nativeIndexingLimit) {
+ result = ut->chunkNativeStart + i;
+ } else {
+ ut->chunkOffset = i;
+ result = ut->pFuncs->mapOffsetToNative(ut);
+ ut->chunkOffset++;
+ }
+ return result;
+ }
+ }
+
+ // If at the start of text, simply return 0.
+ if (ut->chunkOffset==0 && ut->chunkNativeStart==0) {
+ return 0;
+ }
+
+ // Harder, less common cases. We are at a chunk boundary, or on a surrogate.
+ // Keep it simple, use other functions to handle the edges.
+ //
+ utext_previous32(ut);
+ result = UTEXT_GETNATIVEINDEX(ut);
+ utext_next32(ut);
+ return result;
+}
+
+
+//
+// utext_current32. Get the UChar32 at the current position.
+// UText iteration position is always on a code point boundary,
+// never on the trail half of a surrogate pair.
+//
U_DRAFT UChar32 U_EXPORT2
utext_current32(UText *ut) {
- UChar32 c = U_SENTINEL;
- if (ut->chunk.offset==ut->chunk.length) {
+ UChar32 c;
+ if (ut->chunkOffset==ut->chunkLength) {
// Current position is just off the end of the chunk.
- // Can also happen at startup, with a zero length chunk at zero offset.
- ut->access(ut, ut->chunk.nativeLimit, TRUE, &ut->chunk);
+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) {
+ // Off the end of the text.
+ return U_SENTINEL;
+ }
}
- if (ut->chunk.offset < ut->chunk.length) {
- c = ut->chunk.contents[ut->chunk.offset];
- if (U16_IS_SURROGATE(c)) {
- // looking at a surrogate. Could be unpaired, need to be careful.
- // Speed doesn't matter, will be very rare.
- UChar32 char16AtIndex = c;
- U16_GET(ut->chunk.contents, 0, ut->chunk.offset, ut->chunk.length, c);
- if (U16_IS_TRAIL(char16AtIndex) && U_IS_SUPPLEMENTARY(c)) {
- // Incoming position pointed to the trailing part of a supplementary pair.
- // Move offset to point to the lead surrogate. This is needed because utext_current()
- // is used internally to force code point alignment. When called from
- // the outside we should always be pre-aligned, but this check doesn't hurt.
- ut->chunk.offset--;
- }
+
+ c = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_LEAD(c) == FALSE) {
+ // Normal, non-supplementary case.
+ return c;
+ }
+
+ //
+ // Possible supplementary char.
+ //
+ UChar32 trail = 0;
+ UChar32 supplementaryC = c;
+ if ((ut->chunkOffset+1) < ut->chunkLength) {
+ // The trail surrogate is in the same chunk.
+ trail = ut->chunkContents[ut->chunkOffset+1];
+ } else {
+ // The trail surrogate is in a different chunk.
+ // Because we must maintain the iteration position, we need to switch forward
+ // into the new chunk, get the trail surrogate, then revert the chunk back to the
+ // original one.
+ // An edge case to be careful of: the entire text may end with an unpaired
+ // leading surrogate. The attempt to access the trail will fail, but
+ // the original position before the unpaired lead still needs to be restored.
+ int64_t nativePosition = ut->chunkNativeLimit;
+ int32_t originalOffset = ut->chunkOffset;
+ if (ut->pFuncs->access(ut, nativePosition, TRUE)) {
+ trail = ut->chunkContents[ut->chunkOffset];
+ }
+ UBool r = ut->pFuncs->access(ut, nativePosition, FALSE); // reverse iteration flag loads preceding chunk
+ U_ASSERT(r==TRUE);
+ ut->chunkOffset = originalOffset;
+ if(!r) {
+ return U_SENTINEL;
}
}
- return c;
+
+ if (U16_IS_TRAIL(trail)) {
+ supplementaryC = U16_GET_SUPPLEMENTARY(c, trail);
+ }
+ return supplementaryC;
+
}
U_DRAFT UChar32 U_EXPORT2
-utext_char32At(UText *ut, int32_t nativeIndex) {
+utext_char32At(UText *ut, int64_t nativeIndex) {
UChar32 c = U_SENTINEL;
+
+ // Fast path the common case.
+ if (nativeIndex>=ut->chunkNativeStart && nativeIndex < ut->chunkNativeStart + ut->nativeIndexingLimit) {
+ ut->chunkOffset = (int32_t)(nativeIndex - ut->chunkNativeStart);
+ c = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_SURROGATE(c) == FALSE) {
+ return c;
+ }
+ }
+
+
utext_setNativeIndex(ut, nativeIndex);
- if (ut->chunk.offset < ut->chunk.length) {
- c = ut->chunk.contents[ut->chunk.offset];
- if (c >= 0xd800) {
+ if (nativeIndex>=ut->chunkNativeStart && ut->chunkOffset<ut->chunkLength) {
+ c = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_SURROGATE(c)) {
+ // For surrogates, let current32() deal with the complications
+ // of supplementaries that may span chunk boundaries.
c = utext_current32(ut);
}
}
@@ -154,141 +258,196 @@ utext_char32At(UText *ut, int32_t nativeIndex) {
U_DRAFT UChar32 U_EXPORT2
utext_next32(UText *ut) {
- UTextChunk *chunk = &ut->chunk;
- UChar32 c = U_SENTINEL;
+ UChar32 c;
- if (chunk->offset >= chunk->length) {
- if (ut->access(ut, chunk->nativeLimit, TRUE, chunk) == FALSE) {
- goto next32_return;
+ if (ut->chunkOffset >= ut->chunkLength) {
+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) {
+ return U_SENTINEL;
}
}
-
- c = chunk->contents[chunk->offset++];
- if (U16_IS_SURROGATE(c)) {
- // looking at a surrogate. Could be unpaired, need to be careful.
- // Speed doesn't matter, will be very rare.
- chunk->offset--;
- c = utext_current32(ut);
- chunk->offset++;
- if (U_IS_SUPPLEMENTARY(c)) {
- chunk->offset++;
- }
+
+ c = ut->chunkContents[ut->chunkOffset++];
+ if (U16_IS_LEAD(c) == FALSE) {
+ // Normal case, not supplementary.
+ // (A trail surrogate seen here is just returned as is, as a surrogate value.
+ // It cannot be part of a pair.)
+ return c;
}
-next32_return:
- return c;
-}
+ if (ut->chunkOffset >= ut->chunkLength) {
+ if (ut->pFuncs->access(ut, ut->chunkNativeLimit, TRUE) == FALSE) {
+ // c is an unpaired lead surrogate at the end of the text.
+ // return it as it is.
+ return c;
+ }
+ }
+ UChar32 trail = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_TRAIL(trail) == FALSE) {
+ // c was an unpaired lead surrogate, not at the end of the text.
+ // return it as it is (unpaired). Iteration position is on the
+ // following character, possibly in the next chunk, where the
+ // trail surrogate would have been if it had existed.
+ return c;
+ }
+ UChar32 supplementary = U16_GET_SUPPLEMENTARY(c, trail);
+ ut->chunkOffset++; // move iteration position over the trail surrogate.
+ return supplementary;
+ }
U_DRAFT UChar32 U_EXPORT2
utext_previous32(UText *ut) {
- UTextChunk *chunk = &ut->chunk;
- int32_t offset = chunk->offset;
- UChar32 c = U_SENTINEL;
+ UChar32 c;
- if (offset <= 0) {
- if (ut->access(ut, chunk->nativeStart, FALSE, chunk) == FALSE) {
- goto prev32_return;
+ if (ut->chunkOffset <= 0) {
+ if (ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE) == FALSE) {
+ return U_SENTINEL;
}
- offset = chunk->offset;
}
-
- c = chunk->contents[--offset];
- chunk->offset = offset;
- if (U16_IS_SURROGATE(c)) {
- // Note that utext_current() will move the chunk offset to the lead surrogate
- // if we come in referring to trail half of a surrogate pair.
- c = utext_current32(ut);
- }
+ ut->chunkOffset--;
+ c = ut->chunkContents[ut->chunkOffset];
+ if (U16_IS_TRAIL(c) == FALSE) {
+ // Normal case, not supplementary.
+ // (A lead surrogate seen here is just returned as is, as a surrogate value.
+ // It cannot be part of a pair.)
+ return c;
+ }
-prev32_return:
- return c;
+ if (ut->chunkOffset <= 0) {
+ if (ut->pFuncs->access(ut, ut->chunkNativeStart, FALSE) == FALSE) {
+ // c is an unpaired trail surrogate at the start of the text.
+ // return it as it is.
+ return c;
+ }
+ }
+
+ UChar32 lead = ut->chunkContents[ut->chunkOffset-1];
+ if (U16_IS_LEAD(lead) == FALSE) {
+ // c was an unpaired trail surrogate, not at the end of the text.
+ // return it as it is (unpaired). Iteration position is at c
+ return c;
+ }
+
+ UChar32 supplementary = U16_GET_SUPPLEMENTARY(lead, c);
+ ut->chunkOffset--; // move iteration position over the lead surrogate.
+ return supplementary;
}
U_DRAFT UChar32 U_EXPORT2
-utext_next32From(UText *ut, int32_t index) {
- UTextChunk *chunk = &ut->chunk;
+utext_next32From(UText *ut, int64_t index) {
UChar32 c = U_SENTINEL;
- if(index<chunk->nativeStart || index>=chunk->nativeLimit) {
- if(!ut->access(ut, index, TRUE, chunk)) {
+ if(index<ut->chunkNativeStart || index>=ut->chunkNativeLimit) {
+ // Desired position is outside of the current chunk.
+ if(!ut->pFuncs->access(ut, index, TRUE)) {
// no chunk available here
- goto next32return;
+ return U_SENTINEL;
}
- } else if(chunk->nonUTF16Indexes) {
- chunk->offset = ut->mapNativeIndexToUTF16(ut, index);
+ } else if (index - ut->chunkNativeStart <= (int64_t)ut->nativeIndexingLimit) {
+ // Desired position is in chunk, with direct 1:1 native to UTF16 indexing
+ ut->chunkOffset = (int32_t)(index - ut->chunkNativeStart);
} else {
- chunk->offset = index - chunk->nativeStart;
+ // Desired position is in chunk, with non-UTF16 indexing.
+ ut->chunkOffset = ut->pFuncs->mapNativeIndexToUTF16(ut, index);
}
- c = chunk->contents[chunk->offset++];
+ c = ut->chunkContents[ut->chunkOffset++];
if (U16_IS_SURROGATE(c)) {
- // Surrogate code unit. Speed doesn't matter, let plain next32() do the work.
- chunk->offset--; // undo the ++, above.
- c = utext_next32(ut);
+ // Surrogates. Many edge cases. Use other functions that already
+ // deal with the problems.
+ utext_setNativeIndex(ut, index);
+ c = utext_next32(ut);
}
-next32return:
return c;
}
U_DRAFT UChar32 U_EXPORT2
-utext_previous32From(UText *ut, int32_t index) {
- UTextChunk *chunk = &ut->chunk;
- UChar32 c = U_SENTINEL;
-
- if(index<=chunk->nativeStart || index>chunk->nativeLimit) {
+utext_previous32From(UText *ut, int64_t index) {
+ //
+ // Return the character preceding the specified index.
+ // Leave the iteration position at the start of the character that was returned.
+ //
+ UChar32 cPrev; // The character preceding cCurr, which is what we will return.
+
+ // Address the chunk containg the position preceding the incoming index
+ // A tricky edge case:
+ // We try to test the requested native index against the chunkNativeStart to determine
+ // whether the character preceding the one at the index is in the current chunk.
+ // BUT, this test can fail with UTF-8 (or any other multibyte encoding), when the
+ // requested index is on something other than the first position of the first char.
+ //
+ if(index<=ut->chunkNativeStart || index>ut->chunkNativeLimit) {
// Requested native index is outside of the current chunk.
- if(!ut->access(ut, index, FALSE, chunk)) {
+ if(!ut->pFuncs->access(ut, index, FALSE)) {
// no chunk available here
- goto prev32return;
+ return U_SENTINEL;
}
- } else if(chunk->nonUTF16Indexes) {
- chunk->offset=ut->mapNativeIndexToUTF16(ut, index);
+ } else if(index - ut->chunkNativeStart <= (int64_t)ut->nativeIndexingLimit) {
+ // Direct UTF-16 indexing.
+ ut->chunkOffset = (int32_t)(index - ut->chunkNativeStart);
} else {
- // This chunk uses UTF-16 indexing. Index into it.
- chunk->offset = index - chunk->nativeStart;
- // put offset onto a code point boundary if it isn't there already.
- if (index>ut->chunk.nativeStart && index < ut->chunk.nativeLimit) {
- c = chunk->contents[chunk->offset];
- if (U16_TRAIL(c)) {
- utext_current32(ut); // force index to the start of the curent code point.
- }
+ ut->chunkOffset=ut->pFuncs->mapNativeIndexToUTF16(ut, index);
+ if (ut->chunkOffset==0 && !ut->pFuncs->access(ut, index, FALSE)) {
+ // no chunk available here
+ return U_SENTINEL;
}
}
- if (chunk->offset<=0) {
- // already at the start of text. Return U_SENTINEL.
- goto prev32return;
- }
-
- // Do the operation assuming that there are no surrogates involved. Fast, common case.
- chunk->offset--;
- c = chunk->contents[chunk->offset];
+ //
+ // Simple case with no surrogates.
+ //
+ ut->chunkOffset--;
+ cPrev = ut->chunkContents[ut->chunkOffset];
- // Check for the char being a surrogate, get the whole char if it is.
- if (U16_IS_SURROGATE(c)) {
- c = utext_current32(ut);
+ if (U16_IS_SURROGATE(cPrev)) {
+ // Possible supplementary. Many edge cases.
+ // Let other functions do the heavy lifting.
+ utext_setNativeIndex(ut, index);
+ cPrev = utext_previous32(ut);
}
-
-prev32return:
- return c;
+ return cPrev;
}
U_DRAFT int32_t U_EXPORT2
utext_extract(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
UChar *dest, int32_t destCapacity,
UErrorCode *status) {
- return ut->extract(ut, start, limit, dest, destCapacity, status);
+ return ut->pFuncs->extract(ut, start, limit, dest, destCapacity, status);
}
+U_DRAFT UBool U_EXPORT2
+utext_equals(const UText *a, const UText *b) {
+ if (a==NULL || b==NULL ||
+ a->magic != UTEXT_MAGIC ||
+ b->magic != UTEXT_MAGIC) {
+ // Null or invalid arguments don't compare equal to anything.
+ return FALSE;
+ }
+
+ if (a->pFuncs != b->pFuncs) {
+ // Different types of text providers.
+ return FALSE;
+ }
+
+ if (a->context != b->context) {
+ // Different sources (different strings)
+ return FALSE;
+ }
+ if (utext_getNativeIndex(a) != utext_getNativeIndex(b)) {
+ // Different current position in the string.
+ return FALSE;
+ }
+
+ return TRUE;
+}
U_DRAFT UBool U_EXPORT2
utext_isWritable(const UText *ut)
@@ -298,6 +457,13 @@ utext_isWritable(const UText *ut)
}
+U_DRAFT void U_EXPORT2
+utext_freeze(UText *ut) {
+ // Zero out the WRITABLE flag.
+ ut->providerProperties &= ~(I32_FLAG(UTEXT_PROVIDER_WRITABLE));
+}
+
+
U_DRAFT UBool U_EXPORT2
utext_hasMetaData(const UText *ut)
{
@@ -309,9 +475,9 @@ utext_hasMetaData(const UText *ut)
U_DRAFT int32_t U_EXPORT2
utext_replace(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
+ int64_t nativeStart, int64_t nativeLimit,
const UChar *replacementText, int32_t replacementLength,
- UErrorCode *status)
+ UErrorCode *status)
{
if (U_FAILURE(*status)) {
return 0;
@@ -320,14 +486,14 @@ utext_replace(UText *ut,
*status = U_NO_WRITE_PERMISSION;
return 0;
}
- int32_t i = ut->replace(ut, nativeStart, nativeLimit, replacementText, replacementLength, status);
+ int32_t i = ut->pFuncs->replace(ut, nativeStart, nativeLimit, replacementText, replacementLength, status);
return i;
}
U_DRAFT void U_EXPORT2
utext_copy(UText *ut,
- int32_t nativeStart, int32_t nativeLimit,
- int32_t destIndex,
+ int64_t nativeStart, int64_t nativeLimit,
+ int64_t destIndex,
UBool move,
UErrorCode *status)
{
@@ -338,14 +504,19 @@ utext_copy(UText *ut,
*status = U_NO_WRITE_PERMISSION;
return;
}
- ut->copy(ut, nativeStart, nativeLimit, destIndex, move, status);
+ ut->pFuncs->copy(ut, nativeStart, nativeLimit, destIndex, move, status);
}
U_DRAFT UText * U_EXPORT2
-utext_clone(UText *dest, const UText *src, UBool deep, UErrorCode *status) {
- return src->clone(dest, src, deep, status);
+utext_clone(UText *dest, const UText *src, UBool deep, UBool readOnly, UErrorCode *status) {
+ UText *result;
+ result = src->pFuncs->clone(dest, src, deep, status);
+ if (readOnly) {
+ utext_freeze(result);
+ }
+ return result;
}
@@ -419,8 +590,8 @@ utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status) {
}
// If the ut is already open and there's a provider supplied close
// function, call it.
- if ((ut->flags & UTEXT_OPEN) && ut->close != NULL) {
- ut->close(ut);
+ if ((ut->flags & UTEXT_OPEN) && ut->pFuncs->close != NULL) {
+ ut->pFuncs->close(ut);
}
ut->flags &= ~UTEXT_OPEN;
@@ -445,6 +616,27 @@ utext_setup(UText *ut, int32_t extraSpace, UErrorCode *status) {
}
if (U_SUCCESS(*status)) {
ut->flags |= UTEXT_OPEN;
+
+ // Initialize all remaining fields of the UText.
+ //
+ ut->context = NULL;
+ ut->chunkContents = NULL;
+ ut->p = NULL;
+ ut->q = NULL;
+ ut->r = NULL;
+ ut->a = 0;
+ ut->b = 0;
+ ut->c = 0;
+ ut->chunkOffset = 0;
+ ut->chunkLength = 0;
+ ut->chunkNativeStart = 0;
+ ut->chunkNativeLimit = 0;
+ ut->nativeIndexingLimit = 0;
+ ut->providerProperties = 0;
+ ut->privA = 0;
+ ut->privB = 0;
+ ut->privC = 0;
+ ut->privP = NULL;
}
return ut;
}
@@ -463,8 +655,8 @@ utext_close(UText *ut) {
// If the provider gave us a close function, call it now.
// This will clean up anything allocated specifically by the provider.
- if (ut->close != NULL) {
- ut->close(ut);
+ if (ut->pFuncs->close != NULL) {
+ ut->pFuncs->close(ut);
}
ut->flags &= ~UTEXT_OPEN;
@@ -473,7 +665,15 @@ utext_close(UText *ut) {
if (ut->flags & UTEXT_EXTRA_HEAP_ALLOCATED) {
uprv_free(ut->pExtra);
ut->pExtra = NULL;
+ ut->flags &= ~UTEXT_EXTRA_HEAP_ALLOCATED;
+ ut->extraSize = 0;
}
+
+ // Zero out function table of the closed UText. This is a defensive move,
+ // inteded to cause applications that inadvertantly use a closed
+ // utext to crash with null pointer errors.
+ ut->pFuncs = NULL;
+
if (ut->flags & UTEXT_HEAP_ALLOCATED) {
// This UText was allocated by UText setup. We need to free it.
// Clear magic, so we can detect if the user messes up and immediately
@@ -487,51 +687,68 @@ utext_close(UText *ut) {
-//
-// resetChunk When an access fails for attempting to get text that is out-of-range
-// this function puts the chunk into a benign state with the index at the
-// at the requested position.
-//
-// If there is a pre-existing chunk that is adjacent to the index
-// preserve the chunk, otherwise set up a dummy zero length chunk.
-//
-static void
-resetChunk(UTextChunk *chunk, int32_t index) {
- if (index==chunk->nativeLimit) {
- chunk->offset = chunk->length;
- } else if (index==chunk->nativeStart) {
- chunk->offset = 0;
- } else {
- chunk->length = 0;
- chunk->nativeStart = index;
- chunk->nativeLimit = index;
- chunk->offset = 0;
- }
-}
-
//
// invalidateChunk Reset a chunk to have no contents, so that the next call
-// to access will new data to load.
+// to access will cause new data to load.
// This is needed when copy/move/replace operate directly on the
// backing text, potentially putting it out of sync with the
// contents in the chunk.
//
static void
-invalidateChunk(UTextChunk *chunk) {
- chunk->length = 0;
- chunk->nativeLimit = 0;
- chunk->nativeStart = 0;
- chunk->offset = 0;
+invalidateChunk(UText *ut) {
+ ut->chunkLength = 0;
+ ut->chunkNativeLimit = 0;
+ ut->chunkNativeStart = 0;
+ ut->chunkOffset = 0;
+ ut->nativeIndexingLimit = 0;
+}
+
+//
+// pinIndex Do range pinning on a native index parameter.
+// 64 bit pinning is done in place.
+// 32 bit truncated result is returned as a convenience for
+// use in providers that don't need 64 bits.
+static int32_t
+pinIndex(int64_t &index, int64_t limit) {
+ if (index<0) {
+ index = 0;
+ } else if (index > limit) {
+ index = limit;
+ }
+ return (int32_t)index;
}
-
U_CDECL_BEGIN
//
+// Pointer relocation function,
+// a utility used by shallow clone.
+// Adjust a pointer that refers to something within one UText (the source)
+// to refer to the same relative offset within a another UText (the target)
+//
+static void adjustPointer(UText *dest, const void **destPtr, const UText *src) {
+ // convert all pointers to (char *) so that byte address arithmetic will work.
+ char *dptr = (char *)*destPtr;
+ char *dUText = (char *)dest;
+ char *sUText = (char *)src;
+
+ if (dptr >= (char *)src->pExtra && dptr < ((char*)src->pExtra)+src->extraSize) {
+ // target ptr was to something within the src UText's pExtra storage.
+ // relocate it into the target UText's pExtra region.
+ *destPtr = ((char *)dest->pExtra) + (dptr - (char *)src->pExtra);
+ } else if (dptr>=sUText && dptr < sUText+src->sizeOfStruct) {
+ // target ptr was pointing to somewhere within the source UText itself.
+ // Move it to the same offset within the target UText.
+ *destPtr = dUText + (dptr-sUText);
+ }
+}
+
+
+//
// Clone. This is a generic copy-the-utext-by-value clone function that can be
-// used as-is with some utext types, and as helper by other clones.
+// used as-is with some utext types, and as a helper by other clones.
//
static UText * U_CALLCONV
shallowTextClone(UText * dest, const UText * src, UErrorCode * status) {
@@ -573,6 +790,15 @@ shallowTextClone(UText * dest, const UText * src, UErrorCode * status) {
uprv_memcpy(dest->pExtra, src->pExtra, srcExtraSize);
}
+ //
+ // Relocate any pointers in the target that refer to the UText itself
+ // to point to the cloned copy rather than the original source.
+ //
+ adjustPointer(dest, &dest->context, src);
+ adjustPointer(dest, &dest->p, src);
+ adjustPointer(dest, &dest->q, src);
+ adjustPointer(dest, &dest->r, src);
+
return dest;
}
@@ -583,190 +809,587 @@ U_CDECL_END
//------------------------------------------------------------------------------
//
-// UText implementation for UTF-8 strings (read-only)
+// UText implementation for UTF-8 char * strings (read-only)
+// Limitation: string length must be <= 0x7fffffff in length.
+// (length must for in an int32_t variable)
//
// Use of UText data members:
// context pointer to UTF-8 string
-// utext.b is the input string length (bytes).
-// utext.p pointer to allocated utf-8 string if owned by this utext (after a clone)
-// utext.q pointer to the filled part of the Map array.
-//
-// TODO: make creation of the index mapping array lazy.
-// Create it for a chunk the first time the user asks for an index.
+// utext.b is the input string length (bytes).
+// utext.c Length scanned so far in string
+// (for optimizing finding length of zero terminated strings.)
+// utext.p pointer to the current buffer
+// utext.q pointer to the other buffer.
//
//------------------------------------------------------------------------------
-enum { UTF8_TEXT_CHUNK_SIZE=10 };
-
-struct UTF8Extra {
- /*
- * Chunk UChars.
- * +1 to simplify filling with surrogate pair at the end.
- */
- UChar s[UTF8_TEXT_CHUNK_SIZE+1];
- /*
- * Index map, from UTF-16 indexes into s back to native indexes.
- * +2: length of s[] + one more for chunk limit index.
- *
- * When accessing preceding text, chunk.contents may point into the middle
- * of s[].
- */
- int32_t map[UTF8_TEXT_CHUNK_SIZE+2];
-};
+// Chunk size.
+// Must be less than 85, because of byte mapping from UChar indexes to native indexes.
+// Worst case is three native bytes to one UChar. (Supplemenaries are 4 native bytes
+// to two UChars.)
+//
+enum { UTF8_TEXT_CHUNK_SIZE=32 };
+//
+// UTF8Buf Two of these structs will be set up in the UText's extra allocated space.
+// Each contains the UChar chunk buffer, the to and from native maps, and
+// header info.
+//
// because backwards iteration fills the buffers starting at the end and
// working towards the front, the filled part of the buffers may not begin
// at the start of the available storage for the buffers.
+//
+// Buffer size is one bigger than the specified UTF8_TEXT_CHUNK_SIZE to allow for
+// the last character added being a supplementary, and thus requiring a surrogate
+// pair. Doing this is simpler than checking for the edge case.
+//
-U_CDECL_BEGIN
+struct UTF8Buf {
+ int32_t bufNativeStart; // Native index of first char in UChar buf
+ int32_t bufNativeLimit; // Native index following last char in buf.
+ int32_t bufStartIdx; // First filled position in buf.
+ int32_t bufLimitIdx; // Limit of filled range in buf.
+ int32_t bufNILimit; // Limit of native indexing part of buf
+ int32_t toUCharsMapStart; // Native index corresponding to
+ // mapToUChars[0].
+ // Set to bufNativeStart when filling forwards.
+ // Set to computed value when filling backwards.
+
+ UChar buf[UTF8_TEXT_CHUNK_SIZE+4]; // The UChar buffer. Requires one extra position beyond the
+ // the chunk size, to allow for surrogate at the end.
+ // Length must be identical to mapToNative array, below,
+ // because of the way indexing works when the array is
+ // filled backwards during a reverse iteration. Thus,
+ // the additional extra size.
+ uint8_t mapToNative[UTF8_TEXT_CHUNK_SIZE+4]; // map UChar index in buf to
+ // native offset from bufNativeStart.
+ // Requires two extra slots,
+ // one for a supplementary starting in the last normal position,
+ // and one for an entry for the buffer limit position.
+ uint8_t mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to
+ // correspoding offset in filled part of buf.
+ int32_t align;
+};
+U_CDECL_BEGIN
-static int32_t U_CALLCONV
+//
+// utf8TextLength
+//
+// Get the length of the string. If we don't already know it,
+// we'll need to scan for the trailing nul.
+//
+static int64_t U_CALLCONV
utf8TextLength(UText *ut) {
+ if (ut->b < 0) {
+ // Zero terminated string, and we haven't scanned to the end yet.
+ // Scan it now.
+ const char *r = (const char *)ut->context + ut->c;
+ while (*r != 0) {
+ r++;
+ }
+ if ((r - (const char *)ut->context) < 0x7fffffff) {
+ ut->b = (int32_t)(r - (const char *)ut->context);
+ } else {
+ // Actual string was bigger (more than 2 gig) than we
+ // can handle. Clip it to 2 GB.
+ ut->b = 0x7fffffff;
+ }
+ ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
+ }
return ut->b;
}
-
-
-static UBool U_CALLCONV
-utf8TextAccess(UText *ut, int32_t index, UBool forward, UTextChunk *chunk) {
- const uint8_t *s8=(const uint8_t *)ut->context;
- UChar32 c;
- int32_t i;
- int32_t length = ut->b; // Length of original utf-8
- UTF8Extra *ut8e = (UTF8Extra *)ut->pExtra;
- UChar *u16buf = ut8e->s;
- int32_t *map = ut8e->map;
+
+
+static UBool U_CALLCONV
+utf8TextAccess(UText *ut, int64_t index, UBool forward) {
+ //
+ // Apologies to those who are allergic to goto statements.
+ // Consider each goto to a labelled block to be the equivalent of
+ // call the named block as if it were a function();
+ // return;
+ //
+ const uint8_t *s8=(const uint8_t *)ut->context;
+ UTF8Buf *u8b = NULL;
+ int32_t length = ut->b; // Length of original utf-8
+ int32_t ix= (int32_t)index; // Requested index, trimmed to 32 bits.
+ int32_t mapIndex = 0;
if (index<0) {
- index = 0;
- } else if (index>length) {
- index = length;
+ ix=0;
+ } else if (index > 0x7fffffff) {
+ // Strings with 64 bit lengths not supported by this UTF-8 provider.
+ ix = 0x7fffffff;
+ }
+
+ // Pin requested index to the string length.
+ if (ix>length) {
+ if (length>=0) {
+ ix=length;
+ } else if (ix>ut->c) {
+ // Zero terminated string, and requested index is beyond
+ // the region that has already been scanned.
+ // Scan up to either the end of the string or to the
+ // requested position, whichever comes first.
+ while (ut->c<ix && s8[ut->c]!=0) {
+ ut->c++;
+ }
+ // TODO: support for null terminated string length > 32 bits.
+ if (s8[ut->c] == 0) {
+ // We just found the actual length of the string.
+ // Trim the requested index back to that.
+ ix = ut->c;
+ ut->b = ut->c;
+ length = ut->c;
+ ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
+ }
+ }
}
- if(forward) {
- if(index >= length) {
- resetChunk(chunk, length);
- return FALSE;
+ //
+ // Dispatch to the appropriate action for a forward iteration request.
+ //
+ if (forward) {
+ if (ix==ut->chunkNativeLimit) {
+ // Check for normal sequential iteration cases first.
+ if (ix==length) {
+ // Just reached end of string
+ // Don't swap buffers, but do set the
+ // current buffer position.
+ ut->chunkOffset = ut->chunkLength;
+ return FALSE;
+ } else {
+ // End of current buffer.
+ // check whether other buffer already has what we need.
+ UTF8Buf *altB = (UTF8Buf *)ut->q;
+ if (ix>=altB->bufNativeStart && ix<altB->bufNativeLimit) {
+ goto swapBuffers;
+ }
+ }
}
- c=s8[index];
- if(c<=0x7f) {
- // get a run of ASCII characters.
- // Even if we don't fill the buffer, we will stop with the first
- // non-ascii char, so that the buffer can use utf-16 indexing.
- chunk->nativeStart=index;
- u16buf[0]=(UChar)c;
- for(i=1, ++index;
- i<UTF8_TEXT_CHUNK_SIZE && index<length && (c=s8[index])<=0x7f;
- ++i, ++index
- ) {
- u16buf[i]=(UChar)c;
+ // A random access. Desired index could be in either or niether buf.
+ // For optimizing the order of testing, first check for the index
+ // being in the other buffer. This will be the case for uses that
+ // move back and forth over a fairly limited range
+ {
+ u8b = (UTF8Buf *)ut->q; // the alternate buffer
+ if (ix>=u8b->bufNativeStart && ix<u8b->bufNativeLimit) {
+ // Requested index is in the other buffer.
+ goto swapBuffers;
}
- chunk->nonUTF16Indexes=FALSE;
- } else {
- // get a chunk of characters starting with a non-ASCII one
- U8_SET_CP_START(s8, 0, index); // put utf-8 index at first byte of char, if not there already.
- chunk->nativeStart=index;
- for(i=0; i<UTF8_TEXT_CHUNK_SIZE && index<length; ) {
- // i is utf-16 index into chunk buffer.
- // index is utf-8 index into original string
- map[i]=index;
- map[i+1]=index; // in case there is a trail surrogate
- U8_NEXT(s8, index, length, c);
- if(c<0) {
- c=0xfffd; // use SUB for illegal sequences
+ if (ix == length) {
+ // Requested index is end-of-string.
+ // (this is the case of randomly seeking to the end.
+ // The case of iterating off the end is handled earlier.)
+ if (ix == ut->chunkNativeLimit) {
+ // Current buffer extends up to the end of the string.
+ // Leave it as the current buffer.
+ ut->chunkOffset = ut->chunkLength;
+ return FALSE;
}
- U16_APPEND_UNSAFE(u16buf, i, c); // post-increments i.
+ if (ix == u8b->bufNativeLimit) {
+ // Alternate buffer extends to the end of string.
+ // Swap it in as the current buffer.
+ goto swapBuffersAndFail;
+ }
+
+ // Neither existing buffer extends to the end of the string.
+ goto makeStubBuffer;
}
- map[i]=index;
- chunk->nonUTF16Indexes=TRUE;
+
+ if (ix<ut->chunkNativeStart || ix>=ut->chunkNativeLimit) {
+ // Requested index is in neither buffer.
+ goto fillForward;
+ }
+
+ // Requested index is in this buffer.
+ u8b = (UTF8Buf *)ut->p; // the current buffer
+ mapIndex = ix - u8b->toUCharsMapStart;
+ ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
+ return TRUE;
+
}
- chunk->contents = u16buf;
- chunk->length = i;
- chunk->nativeLimit = index;
- ut->q = map;
- chunk->offset = 0; // chunkOffset corresponding to index
- return TRUE;
- } else {
- // Reverse Access. The chunk buffer must be filled so as to contain the
- // character preceding the specified index.
- if(index<=0) {
- resetChunk(chunk, 0);
+ }
+
+
+ //
+ // Dispatch to the appropriate action for a
+ // Backwards Diretion iteration request.
+ //
+ if (ix==ut->chunkNativeStart) {
+ // Check for normal sequential iteration cases first.
+ if (ix==0) {
+ // Just reached the start of string
+ // Don't swap buffers, but do set the
+ // current buffer position.
+ ut->chunkOffset = 0;
return FALSE;
+ } else {
+ // Start of current buffer.
+ // check whether other buffer already has what we need.
+ UTF8Buf *altB = (UTF8Buf *)ut->q;
+ if (ix>altB->bufNativeStart && ix<=altB->bufNativeLimit) {
+ goto swapBuffers;
+ }
}
+ }
- c=s8[index-1];
- if(c<=0x7f) {
- // get a chunk of ASCII characters. Don't build the index map
- chunk->nativeLimit=index;
- i=UTF8_TEXT_CHUNK_SIZE;
- do {
- u16buf[--i]=(UChar)c;
- --index;
- } while(i>0 && index>0 && (c=s8[index-1])<=0x7f);
- chunk->nonUTF16Indexes=FALSE;
+ // A random access. Desired index could be in either or niether buf.
+ // For optimizing the order of testing,
+ // Most likely case: in the other buffer.
+ // Second most likely: in neither buffer.
+ // Unlikely, but must work: in the current buffer.
+ u8b = (UTF8Buf *)ut->q; // the alternate buffer
+ if (ix>u8b->bufNativeStart && ix<=u8b->bufNativeLimit) {
+ // Requested index is in the other buffer.
+ goto swapBuffers;
+ }
+ // Requested index is start-of-string.
+ // (this is the case of randomly seeking to the start.
+ // The case of iterating off the start is handled earlier.)
+ if (ix==0) {
+ if (u8b->bufNativeStart==0) {
+ // Alternate buffer contains the data for the start string.
+ // Make it be the current buffer.
+ goto swapBuffersAndFail;
} else {
- // get a chunk of characters starting with a non-ASCII one
- if(index<length) {
- U8_SET_CP_START(s8, 0, index);
+ // Request for data before the start of string,
+ // neither buffer is usable.
+ // set up a zero-length buffer.
+ goto makeStubBuffer;
+ }
+ }
+
+ if (ix<=ut->chunkNativeStart || ix>ut->chunkNativeLimit) {
+ // Requested index is in neither buffer.
+ goto fillReverse;
+ }
+
+ // Requested index is in this buffer.
+ // Set the utf16 buffer index.
+ u8b = (UTF8Buf *)ut->p;
+ mapIndex = ix - u8b->toUCharsMapStart;
+ ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
+ if (ut->chunkOffset==0) {
+ // This occurs when the first character in the text is
+ // a multi-byte UTF-8 char, and the requested index is to
+ // one of the trailing bytes. Because there is no preceding ,
+ // character, this access fails. We can't pick up on the
+ // situation sooner because the requested index is not zero.
+ return FALSE;
+ } else {
+ return TRUE;
+ }
+
+
+
+swapBuffers:
+ // The alternate buffer (ut->q) has the string data that was requested.
+ // Swap the primary and alternate buffers, and set the
+ // chunk index into the new primary buffer.
+ {
+ u8b = (UTF8Buf *)ut->q;
+ ut->q = ut->p;
+ ut->p = u8b;
+ ut->chunkContents = &u8b->buf[u8b->bufStartIdx];
+ ut->chunkLength = u8b->bufLimitIdx - u8b->bufStartIdx;
+ ut->chunkNativeStart = u8b->bufNativeStart;
+ ut->chunkNativeLimit = u8b->bufNativeLimit;
+ ut->nativeIndexingLimit = u8b->bufNILimit;
+
+ // Index into the (now current) chunk
+ // Use the map to set the chunk index. It's more trouble than it's worth
+ // to check whether native indexing can be used.
+ U_ASSERT(ix>=u8b->bufNativeStart);
+ U_ASSERT(ix<=u8b->bufNativeLimit);
+ mapIndex = ix - u8b->toUCharsMapStart;
+ U_ASSERT(mapIndex>=0);
+ U_ASSERT(mapIndex<(int32_t)sizeof(u8b->mapToUChars));
+ ut->chunkOffset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
+
+ return TRUE;
+ }
+
+
+ swapBuffersAndFail:
+ // We got a request for either the start or end of the string,
+ // with iteration continuing in the out-of-bounds direction.
+ // The alternate buffer already contains the data up to the
+ // start/end.
+ // Swap the buffers, then return failure, indicating that we couldn't
+ // make things correct for continuing the iteration in the requested
+ // direction. The position & buffer are correct should the
+ // user decide to iterate in the opposite direction.
+ u8b = (UTF8Buf *)ut->q;
+ ut->q = ut->p;
+ ut->p = u8b;
+ ut->chunkContents = &u8b->buf[u8b->bufStartIdx];
+ ut->chunkLength = u8b->bufLimitIdx - u8b->bufStartIdx;
+ ut->chunkNativeStart = u8b->bufNativeStart;
+ ut->chunkNativeLimit = u8b->bufNativeLimit;
+ ut->nativeIndexingLimit = u8b->bufNILimit;
+
+ // Index into the (now current) chunk
+ // For this function (swapBuffersAndFail), the requested index
+ // will always be at either the start or end of the chunk.
+ if (ix==u8b->bufNativeLimit) {
+ ut->chunkOffset = ut->chunkLength;
+ } else {
+ ut->chunkOffset = 0;
+ U_ASSERT(ix == u8b->bufNativeStart);
+ }
+ return FALSE;
+
+makeStubBuffer:
+ // The user has done a seek/access past the start or end
+ // of the string. Rather than loading data that is likely
+ // to never be used, just set up a zero-length buffer at
+ // the position.
+ u8b = (UTF8Buf *)ut->q;
+ u8b->bufNativeStart = ix;
+ u8b->bufNativeLimit = ix;
+ u8b->bufStartIdx = 0;
+ u8b->bufLimitIdx = 0;
+ u8b->bufNILimit = 0;
+ u8b->toUCharsMapStart = ix;
+ u8b->mapToNative[0] = 0;
+ u8b->mapToUChars[0] = 0;
+ goto swapBuffersAndFail;
+
+
+
+fillForward:
+ {
+ // Move the incoming index to a code point boundary.
+ U8_SET_CP_START(s8, 0, ix);
+
+ // 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;
+ ut->q = ut->p;
+ ut->p = u8b;
+
+ int32_t strLen = ut->b;
+ UBool nulTerminated = FALSE;
+ if (strLen < 0) {
+ strLen = 0x7fffffff;
+ nulTerminated = TRUE;
+ }
+
+ UChar *buf = u8b->buf;
+ uint8_t *mapToNative = u8b->mapToNative;
+ uint8_t *mapToUChars = u8b->mapToUChars;
+ int32_t destIx = 0;
+ int32_t srcIx = ix;
+ UBool seenNonAscii = FALSE;
+ UChar32 c;
+
+ // Fill the chunk buffer and mapping arrays.
+ while (destIx<UTF8_TEXT_CHUNK_SIZE) {
+ c = s8[srcIx];
+ if (c>0 && c<0x80) {
+ // Special case ASCII range for speed.
+ // zero is excluded to simplify bounds checking.
+ buf[destIx] = c;
+ mapToNative[destIx] = srcIx - ix;
+ mapToUChars[srcIx-ix] = destIx;
+ srcIx++;
+ destIx++;
+ } else {
+ // General case, handle everything.
+ if (seenNonAscii == FALSE) {
+ seenNonAscii = TRUE;
+ u8b->bufNILimit = destIx;
+ }
+
+ int32_t cIx = srcIx;
+ int32_t dIx = destIx;
+ int32_t dIxSaved = destIx;
+ U8_NEXT(s8, srcIx, strLen, c);
+ if (c==0 && nulTerminated) {
+ srcIx--;
+ break;
+ }
+ if (c<0) {
+ // Illegal UTF-8. Replace with sub character.
+ c = 0x0fffd;
+ }
+
+ U16_APPEND_UNSAFE(buf, destIx, c);
+ do {
+ mapToNative[dIx++] = cIx - ix;
+ } while (dIx < destIx);
+
+ do {
+ mapToUChars[cIx++ - ix] = dIxSaved;
+ } while (cIx < srcIx);
+ }
+ if (srcIx>=strLen) {
+ break;
+ }
+
+ }
+
+ // store Native <--> Chunk Map entries for the end of the buffer.
+ // There is no actual character here, but the index position is valid.
+ mapToNative[destIx] = srcIx - ix;
+ mapToUChars[srcIx - ix] = destIx;
+
+ // fill in Buffer descriptor
+ u8b->bufNativeStart = ix;
+ u8b->bufNativeLimit = srcIx;
+ u8b->bufStartIdx = 0;
+ u8b->bufLimitIdx = destIx;
+ if (seenNonAscii == FALSE) {
+ u8b->bufNILimit = destIx;
+ }
+ u8b->toUCharsMapStart = u8b->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;
+
+ // For zero terminated strings, keep track of the maximum point
+ // scanned so far.
+ if (nulTerminated && srcIx>ut->c) {
+ ut->c = srcIx;
+ if (c==0) {
+ // We scanned to the end.
+ // Remember the actual length.
+ ut->b = srcIx;
+ ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
}
- chunk->nativeLimit=index;
- i=UTF8_TEXT_CHUNK_SIZE;
- map[i]=index; // map position for char following the last one in the buffer.
- do {
- // i is utf-16 index into chunk buffer.
- // index is utf-8 index into original string
- U8_PREV(s8, 0, index, c);
- if(c<0) {
- c=0xfffd; // use SUB for illegal sequences
+ }
+ return TRUE;
+ }
+
+
+fillReverse:
+ {
+ // Move the incoming index to a code point boundary.
+ // Can only do this if the incoming index is somewhere in the interior of the string.
+ // If index is at the end, there is no character there to look at.
+ if (ix != ut->b) {
+ U8_SET_CP_START(s8, 0, ix);
+ }
+
+ // 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;
+ ut->q = ut->p;
+ ut->p = u8b;
+
+ UChar *buf = u8b->buf;
+ uint8_t *mapToNative = u8b->mapToNative;
+ uint8_t *mapToUChars = u8b->mapToUChars;
+ int32_t toUCharsMapStart = ix - (UTF8_TEXT_CHUNK_SIZE*3 + 1);
+ int32_t destIx = UTF8_TEXT_CHUNK_SIZE+2; // Start in the overflow region
+ // at end of buffer to leave room
+ // for a surrogate pair at the
+ // buffer start.
+ int32_t srcIx = ix;
+ int32_t bufNILimit = destIx;
+ UChar32 c;
+
+ // Map to/from Native Indexes, fill in for the position at the end of
+ // the buffer.
+ //
+ mapToNative[destIx] = srcIx - toUCharsMapStart;
+ mapToUChars[srcIx - toUCharsMapStart] = destIx;
+
+ // Fill the chunk buffer
+ // Work backwards, filling from the end of the buffer towards the front.
+ //
+ while (destIx>2 && (srcIx - toUCharsMapStart > 5) && (srcIx > 0)) {
+ srcIx--;
+ destIx--;
+
+ // Get last byte of the UTF-8 character
+ c = s8[srcIx];
+ if (c<0x80) {
+ // Special case ASCII range for speed.
+ buf[destIx] = c;
+ mapToUChars[srcIx - toUCharsMapStart] = destIx;
+ mapToNative[destIx] = srcIx - toUCharsMapStart;
+ } else {
+ // General case, handle everything non-ASCII.
+
+ int32_t sIx = srcIx; // ix of last byte of multi-byte u8 char
+
+ // Get the full character from the UTF8 string.
+ // use code derived from tbe macros in utf.8
+ // Leaves srcIx pointing at the first byte of the UTF-8 char.
+ //
+ if (c<=0xbf) {
+ c=utf8_prevCharSafeBody(s8, 0, &srcIx, c, -1);
+ // leaves srcIx at first byte of the multi-byte char.
+ } else {
+ c=0x0fffd;
}
- if(c<=0xffff) {
- u16buf[--i]=(UChar)c;
- map[i]=index;
+
+ // Store the character in UTF-16 buffer.
+ if (c<0x10000) {
+ buf[destIx] = c;
+ mapToNative[destIx] = srcIx - toUCharsMapStart;
} else {
- // We've got a supplementary char
- if (i<2) {
- // Both halves of the surrogate pair wont fit in the chunk buffer.
- // Stop without putting either half in.
- U8_NEXT(s8, index, length, c); // restore index.
- break;
- }
- u16buf[--i]=U16_TRAIL(c);
- map[i]=index;
- u16buf[--i]=U16_LEAD(c);
- map[i]=index;
+ buf[destIx] = U16_TRAIL(c);
+ mapToNative[destIx] = srcIx - toUCharsMapStart;
+ buf[--destIx] = U16_LEAD(c);
+ mapToNative[destIx] = srcIx - toUCharsMapStart;
}
- } while(i>0 && index>0);
- // Because we have filled the map & chunk buffers from back to front,
- // the start position for accesses may not be at the start of the
- // available storage.
- ut->q = map+i;
- chunk->nonUTF16Indexes=TRUE;
+ // Fill in the map from native indexes to UChars buf index.
+ do {
+ mapToUChars[sIx-- - toUCharsMapStart] = destIx;
+ } while (sIx >= srcIx);
+
+ // Set native indexing limit to be the current position.
+ // We are processing a non-ascii, non-native-indexing char now;
+ // the limit will be here if the rest of the chars to be
+ // added to this buffer are ascii.
+ bufNILimit = destIx;
+ }
}
- // Common reverse iteration, for both UTF16 and non-UTIF16 indexes.
- chunk->contents = u16buf+i;
- chunk->length = (UTF8_TEXT_CHUNK_SIZE)-i;
- chunk->nativeStart = index;
- chunk->offset = chunk->length; // chunkOffset corresponding to index
+ 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;
+ ut->chunkOffset = ut->chunkLength;
+ ut->chunkNativeStart = u8b->bufNativeStart;
+ ut->chunkNativeLimit = u8b->bufNativeLimit;
+ ut->nativeIndexingLimit = u8b->bufNILimit;
return TRUE;
}
+
}
+
//
// This is a slightly modified copy of u_strFromUTF8,
// Inserts a Replacement Char rather than failing on invalid UTF-8
// Removes unnecessary features.
//
-static UChar*
-utext_strFromUTF8(UChar *dest,
+static UChar*
+utext_strFromUTF8(UChar *dest,
int32_t destCapacity,
int32_t *pDestLength,
- const char* src,
+ const char* src,
int32_t srcLength, // required. NUL terminated not supported.
UErrorCode *pErrorCode
)
@@ -779,7 +1402,7 @@ utext_strFromUTF8(UChar *dest,
int32_t reqLength = 0;
uint8_t* pSrc = (uint8_t*) src;
-
+
while((index < srcLength)&&(pDest<pDestLimit)){
ch = pSrc[index++];
if(ch <=0x7f){
@@ -832,7 +1455,7 @@ utext_strFromUTF8(UChar *dest,
static int32_t U_CALLCONV
utf8TextExtract(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
UChar *dest, int32_t destCapacity,
UErrorCode *pErrorCode) {
if(U_FAILURE(*pErrorCode)) {
@@ -842,103 +1465,101 @@ utf8TextExtract(UText *ut,
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
- if(start<0 || start>limit) {
+ int32_t length = ut->b;
+ int32_t start32 = pinIndex(start, length);
+ int32_t limit32 = pinIndex(limit, length);
+
+ if(start32>limit32) {
*pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
}
- if (limit>ut->b) {
- limit = ut->b;
- }
- if (start>ut->b) {
- start = ut->b;
- }
+
// adjust the incoming indexes to land on code point boundaries if needed.
// adjust by no more than three, because that is the largest number of trail bytes
// in a well formed UTF8 character.
const uint8_t *buf = (const uint8_t *)ut->context;
int i;
- if (start < ut->chunk.nativeLimit) {
+ if (start32 < ut->chunkNativeLimit) {
for (i=0; i<3; i++) {
- if (U8_IS_LEAD(buf[start]) || start==0) {
+ if (U8_IS_LEAD(buf[start32]) || start32==0) {
break;
}
- start--;
+ start32--;
}
}
- if (limit < ut->chunk.nativeLimit) {
+ if (limit32 < ut->chunkNativeLimit) {
for (i=0; i<3; i++) {
- if (U8_IS_LEAD(buf[limit]) || limit==0) {
+ if (U8_IS_LEAD(buf[limit32]) || limit32==0) {
break;
}
- limit--;
+ limit32--;
}
}
// Do the actual extract.
int32_t destLength=0;
utext_strFromUTF8(dest, destCapacity, &destLength,
- (const char *)ut->context+start, limit-start,
+ (const char *)ut->context+start32, limit32-start32,
pErrorCode);
return destLength;
}
-// Assume nonUTF16Indexes and 0<=offset<=chunk->length
-static int32_t U_CALLCONV
-utf8TextMapOffsetToNative(UText *ut, int32_t offset) {
- // UText.q points to the index mapping array that is allocated in the extra storage area.
- U_ASSERT(offset>=0 && offset<=ut->chunk.length);
- int32_t *map=(int32_t *)(ut->q);
- return map[offset];
+//
+// utf8TextMapOffsetToNative
+//
+// Map a chunk (UTF-16) offset to a native index.
+static int64_t U_CALLCONV
+utf8TextMapOffsetToNative(const UText *ut) {
+ //
+ UTF8Buf *u8b = (UTF8Buf *)ut->p;
+ U_ASSERT(ut->chunkOffset>ut->nativeIndexingLimit && ut->chunkOffset<=ut->chunkLength);
+ int32_t nativeOffset = u8b->mapToNative[ut->chunkOffset + u8b->bufStartIdx] + u8b->toUCharsMapStart;
+ U_ASSERT(nativeOffset >= ut->chunkNativeStart && nativeOffset <= ut->chunkNativeLimit);
+ return nativeOffset;
}
-// Assume nonUTF16Indexes and chunk->start<=index<=chunk->limit
+//
+// Map a native index to the corrsponding chunk offset
+//
static int32_t U_CALLCONV
-utf8TextMapIndexToUTF16(UText *ut, int32_t index) {
- int32_t *map=(int32_t *)(ut->q);
- int32_t offset=0;
-
- U_ASSERT(index>=ut->chunk.nativeStart && index<=ut->chunk.nativeLimit);
- while(index>map[offset]) {
- ++offset;
- }
- if (index<map[offset]) {
- // index was to a trail byte of a multi-byte utf-8 char.
- // The loop above advanced offset to the start of the following char, now
- // offset must be backed up to the start of the utf-16 char into which
- // the utf-8 index pointed.
- offset--;
- if (offset>0 && map[offset] == map[offset-1]) {
- // index was to a utf-8 trail byte of a supplemenary char.
- // Offset now points to the trail surrogate (one in back of the following char)
- // Back offset up one more time to get to the utf-16 lead surrogate.
- offset--;
- }
- }
+utf8TextMapIndexToUTF16(const UText *ut, int64_t index64) {
+ U_ASSERT(index64 <= 0x7fffffff);
+ int32_t index = (int32_t)index64;
+ UTF8Buf *u8b = (UTF8Buf *)ut->p;
+ U_ASSERT(index>=ut->chunkNativeStart+ut->nativeIndexingLimit);
+ U_ASSERT(index<=ut->chunkNativeLimit);
+ int32_t mapIndex = index - u8b->toUCharsMapStart;
+ int32_t offset = u8b->mapToUChars[mapIndex] - u8b->bufStartIdx;
+ U_ASSERT(offset>=0 && offset<=ut->chunkLength);
return offset;
}
static UText * U_CALLCONV
-utf8TextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status)
+utf8TextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status)
{
// First do a generic shallow clone. Does everything needed for the UText struct itself.
dest = shallowTextClone(dest, src, status);
// For deep clones, make a copy of the string.
// The copied storage is owned by the newly created clone.
- // A non-NULL pointer in UText.p is the signal to the close() function to delete
- // it.
+ //
+ // TODO: There is an isssue with using utext_nativeLength().
+ // That function is non-const in cases where the input was NUL terminated
+ // and the length has not yet been determined.
+ // This function (clone()) is const.
+ // There potentially a thread safety issue lurking here.
//
if (deep && U_SUCCESS(*status)) {
- int32_t len = src->b;
+ int32_t len = (int32_t)utext_nativeLength((UText *)src);
char *copyStr = (char *)uprv_malloc(len+1);
if (copyStr == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
} else {
uprv_memcpy(copyStr, src->context, len+1);
dest->context = copyStr;
- dest->p = copyStr;
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT);
}
}
return dest;
@@ -950,50 +1571,65 @@ utf8TextClose(UText *ut) {
// Most of the work of close is done by the generic UText framework close.
// All that needs to be done here is to delete the UTF8 string if the UText
// owns it. This occurs if the UText was created by cloning.
- char *s = (char *)ut->p;
- uprv_free(s);
- ut->p = NULL;
+ if (ut->providerProperties & I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT)) {
+ char *s = (char *)ut->context;
+ uprv_free(s);
+ ut->context = NULL;
+ }
}
+U_CDECL_END
+static struct UTextFuncs utf8Funcs =
+{
+ sizeof(UTextFuncs),
+ 0, 0, 0, // Reserved alignment padding
+ utf8TextClone,
+ utf8TextLength,
+ utf8TextAccess,
+ utf8TextExtract,
+ NULL, /* replace*/
+ NULL, /* copy */
+ utf8TextMapOffsetToNative,
+ utf8TextMapIndexToUTF16,
+ utf8TextClose,
+ NULL, // spare 1
+ NULL, // spare 2
+ NULL // spare 3
+};
+
U_DRAFT UText * U_EXPORT2
-utext_openUTF8(UText *ut, const char *s, int32_t length, UErrorCode *status) {
+utext_openUTF8(UText *ut, const char *s, int64_t length, UErrorCode *status) {
if(U_FAILURE(*status)) {
return NULL;
}
- if(s==NULL || length<-1) {
+ if(s==NULL || length<-1 || length>INT32_MAX) {
*status=U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
}
- ut = utext_setup(ut, sizeof(UTF8Extra), status);
+ ut = utext_setup(ut, sizeof(UTF8Buf) * 2, status);
if (U_FAILURE(*status)) {
return ut;
}
- ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_NON_UTF16_INDEXES);
-
- ut->clone = utf8TextClone;
- ut->nativeLength = utf8TextLength;
- ut->access = utf8TextAccess;
- ut->extract = utf8TextExtract;
- ut->mapOffsetToNative = utf8TextMapOffsetToNative;
- ut->mapNativeIndexToUTF16 = utf8TextMapIndexToUTF16;
- ut->close = utf8TextClose;
- ut->context=s;
- if(length>=0) {
- ut->b=length;
- } else {
- // TODO: really undesirable to do this scan upfront.
- ut->b=(int32_t)uprv_strlen(s);
+ ut->pFuncs = &utf8Funcs;
+ ut->context = s;
+ ut->b = (int32_t)length;
+ ut->c = (int32_t)length;
+ if (ut->c < 0) {
+ ut->c = 0;
+ ut->providerProperties |= I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
}
-
+ ut->p = ut->pExtra;
+ ut->q = (char *)ut->pExtra + sizeof(UTF8Buf);
return ut;
+
}
-U_CDECL_END
+
@@ -1002,7 +1638,7 @@ U_CDECL_END
//------------------------------------------------------------------------------
//
-// UText implementation wrapper for Replaceable (read/write)
+// UText implementation wrapper for Replaceable (read/write)
//
// Use of UText data members:
// context pointer to Replaceable.
@@ -1040,7 +1676,10 @@ repTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status) {
if (deep && U_SUCCESS(*status)) {
const Replaceable *replSrc = (const Replaceable *)src->context;
dest->context = replSrc->clone();
- dest->p = dest->context;
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT);
+
+ // with deep clone, the copy is writable, even when the source is not.
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_WRITABLE);
}
return dest;
}
@@ -1051,13 +1690,15 @@ repTextClose(UText *ut) {
// Most of the work of close is done by the generic UText framework close.
// All that needs to be done here is delete the Replaceable if the UText
// owns it. This occurs if the UText was created by cloning.
- Replaceable *rep = (Replaceable *)ut->p;
- delete rep;
- ut->p = NULL;
+ if (ut->providerProperties & I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT)) {
+ Replaceable *rep = (Replaceable *)ut->context;
+ delete rep;
+ ut->context = NULL;
+ }
}
-static int32_t U_CALLCONV
+static int64_t U_CALLCONV
repTextLength(UText *ut) {
const Replaceable *replSrc = (const Replaceable *)ut->context;
int32_t len = replSrc->length();
@@ -1066,17 +1707,13 @@ repTextLength(UText *ut) {
static UBool U_CALLCONV
-repTextAccess(UText *ut, int32_t index, UBool forward, UTextChunk* /* chunk*/ ) {
+repTextAccess(UText *ut, int64_t index, UBool forward) {
const Replaceable *rep=(const Replaceable *)ut->context;
int32_t length=rep->length(); // Full length of the input text (bigger than a chunk)
// clip the requested index to the limits of the text.
- if (index<0) {
- index = 0;
- }
- if (index>length) {
- index = length;
- }
+ int32_t index32 = pinIndex(index, length);
+ U_ASSERT(index<=INT32_MAX);
/*
@@ -1089,103 +1726,106 @@ repTextAccess(UText *ut, int32_t index, UBool forward, UTextChunk* /* chunk*/ )
*/
if(forward) {
- if (index>=ut->chunk.nativeStart && index<ut->chunk.nativeLimit) {
+ if (index32>=ut->chunkNativeStart && index32<ut->chunkNativeLimit) {
// Buffer already contains the requested position.
- ut->chunk.offset = index - ut->chunk.nativeStart;
+ ut->chunkOffset = (int32_t)(index - ut->chunkNativeStart);
return TRUE;
}
- if (index>=length && ut->chunk.nativeLimit==length) {
+ if (index32>=length && ut->chunkNativeLimit==length) {
// Request for end of string, and buffer already extends up to it.
// Can't get the data, but don't change the buffer.
- ut->chunk.offset = length - ut->chunk.nativeStart;
+ ut->chunkOffset = length - (int32_t)ut->chunkNativeStart;
return FALSE;
}
- ut->chunk.nativeLimit = index + REP_TEXT_CHUNK_SIZE - 1;
+ ut->chunkNativeLimit = index + REP_TEXT_CHUNK_SIZE - 1;
// Going forward, so we want to have the buffer with stuff at and beyond
// the requested index. The -1 gets us one code point before the
// requested index also, to handle the case of the index being on
// a trail surrogate of a surrogate pair.
- if(ut->chunk.nativeLimit > length) {
- ut->chunk.nativeLimit = length;
+ if(ut->chunkNativeLimit > length) {
+ ut->chunkNativeLimit = length;
}
// unless buffer ran off end, start is index-1.
- ut->chunk.nativeStart = ut->chunk.nativeLimit - REP_TEXT_CHUNK_SIZE;
- if(ut->chunk.nativeStart < 0) {
- ut->chunk.nativeStart = 0;
+ ut->chunkNativeStart = ut->chunkNativeLimit - REP_TEXT_CHUNK_SIZE;
+ if(ut->chunkNativeStart < 0) {
+ ut->chunkNativeStart = 0;
}
} else {
// Reverse iteration. Fill buffer with data preceding the requested index.
- if (index>ut->chunk.nativeStart && index<=ut->chunk.nativeLimit) {
+ if (index32>ut->chunkNativeStart && index32<=ut->chunkNativeLimit) {
// Requested position already in buffer.
- ut->chunk.offset = index - ut->chunk.nativeStart;
+ ut->chunkOffset = index32 - (int32_t)ut->chunkNativeStart;
return TRUE;
}
- if (index==0 && ut->chunk.nativeStart==0) {
+ if (index32==0 && ut->chunkNativeStart==0) {
// Request for start, buffer already begins at start.
// No data, but keep the buffer as is.
- ut->chunk.offset = 0;
+ ut->chunkOffset = 0;
return FALSE;
}
// Figure out the bounds of the chunk to extract for reverse iteration.
- // Need to worry about chunk not splitting surrogate pairs, and while still
+ // Need to worry about chunk not splitting surrogate pairs, and while still
// containing the data we need.
// Fix by requesting a chunk that includes an extra UChar at the end.
// If this turns out to be a lead surrogate, we can lop it off and still have
// the data we wanted.
- ut->chunk.nativeStart = index + 1 - REP_TEXT_CHUNK_SIZE;
- if (ut->chunk.nativeStart < 0) {
- ut->chunk.nativeStart = 0;
+ ut->chunkNativeStart = index32 + 1 - REP_TEXT_CHUNK_SIZE;
+ if (ut->chunkNativeStart < 0) {
+ ut->chunkNativeStart = 0;
}
- ut->chunk.nativeLimit = index + 1;
- if (ut->chunk.nativeLimit > length) {
- ut->chunk.nativeLimit = length;
+ ut->chunkNativeLimit = index32 + 1;
+ if (ut->chunkNativeLimit > length) {
+ ut->chunkNativeLimit = length;
}
}
// Extract the new chunk of text from the Replaceable source.
ReplExtra *ex = (ReplExtra *)ut->pExtra;
// UnicodeString with its buffer a writable alias to the chunk buffer
- UnicodeString buffer(ex->s, 0 /*buffer length*/, REP_TEXT_CHUNK_SIZE /*buffer capacity*/);
- rep->extractBetween(ut->chunk.nativeStart, ut->chunk.nativeLimit, buffer);
+ UnicodeString buffer(ex->s, 0 /*buffer length*/, REP_TEXT_CHUNK_SIZE /*buffer capacity*/);
+ rep->extractBetween((int32_t)ut->chunkNativeStart, (int32_t)ut->chunkNativeLimit, buffer);
- ut->chunk.contents = ex->s;
- ut->chunk.length = ut->chunk.nativeLimit - ut->chunk.nativeStart;
- ut->chunk.offset = index - ut->chunk.nativeStart;
+ ut->chunkContents = ex->s;
+ ut->chunkLength = (int32_t)(ut->chunkNativeLimit - ut->chunkNativeStart);
+ ut->chunkOffset = (int32_t)(index32 - ut->chunkNativeStart);
// Surrogate pairs from the input text must not span chunk boundaries.
// If end of chunk could be the start of a surrogate, trim it off.
- if (ut->chunk.nativeLimit < length &&
- U16_IS_LEAD(ex->s[ut->chunk.length-1])) {
- ut->chunk.length--;
- ut->chunk.nativeLimit--;
- if (ut->chunk.offset > ut->chunk.length) {
- ut->chunk.offset = ut->chunk.length;
+ if (ut->chunkNativeLimit < length &&
+ U16_IS_LEAD(ex->s[ut->chunkLength-1])) {
+ ut->chunkLength--;
+ ut->chunkNativeLimit--;
+ if (ut->chunkOffset > ut->chunkLength) {
+ ut->chunkOffset = ut->chunkLength;
}
}
// if the first UChar in the chunk could be the trailing half of a surrogate pair,
// trim it off.
- if(ut->chunk.nativeStart>0 && U16_IS_TRAIL(ex->s[0])) {
- ++(ut->chunk.contents);
- ++(ut->chunk.nativeStart);
- --(ut->chunk.length);
- --(ut->chunk.offset);
+ if(ut->chunkNativeStart>0 && U16_IS_TRAIL(ex->s[0])) {
+ ++(ut->chunkContents);
+ ++(ut->chunkNativeStart);
+ --(ut->chunkLength);
+ --(ut->chunkOffset);
}
// adjust the index/chunkOffset to a code point boundary
- U16_SET_CP_START(ut->chunk.contents, 0, ut->chunk.offset);
+ U16_SET_CP_START(ut->chunkContents, 0, ut->chunkOffset);
+
+ // Use fast indexing for get/setNativeIndex()
+ ut->nativeIndexingLimit = ut->chunkLength;
- return TRUE;
+ return TRUE;
}
static int32_t U_CALLCONV
repTextExtract(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
UChar *dest, int32_t destCapacity,
UErrorCode *status) {
const Replaceable *rep=(const Replaceable *)ut->context;
@@ -1197,39 +1837,36 @@ repTextExtract(UText *ut,
if(destCapacity<0 || (dest==NULL && destCapacity>0)) {
*status=U_ILLEGAL_ARGUMENT_ERROR;
}
- if(start<0 || start>limit) {
+ if(start>limit) {
*status=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
}
- if (start>length) {
- start=length;
- }
- if (limit>length) {
- limit=length;
- }
+
+ int32_t start32 = pinIndex(start, length);
+ int32_t limit32 = pinIndex(limit, length);
// adjust start, limit if they point to trail half of surrogates
- if (start<length && U16_IS_TRAIL(rep->charAt(start)) &&
- U_IS_SUPPLEMENTARY(rep->char32At(start))){
- start--;
+ if (start32<length && U16_IS_TRAIL(rep->charAt(start32)) &&
+ U_IS_SUPPLEMENTARY(rep->char32At(start32))){
+ start32--;
}
- if (limit<length && U16_IS_TRAIL(rep->charAt(limit)) &&
- U_IS_SUPPLEMENTARY(rep->char32At(limit))){
- limit--;
+ if (limit32<length && U16_IS_TRAIL(rep->charAt(limit32)) &&
+ U_IS_SUPPLEMENTARY(rep->char32At(limit32))){
+ limit32--;
}
- length=limit-start;
+ length=limit32-start32;
if(length>destCapacity) {
- limit = start + destCapacity;
+ limit32 = start32 + destCapacity;
}
UnicodeString buffer(dest, 0, destCapacity); // writable alias
- rep->extractBetween(start, limit, buffer);
+ rep->extractBetween(start32, limit32, buffer);
return u_terminateUChars(dest, destCapacity, length, status);
}
static int32_t U_CALLCONV
repTextReplace(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
const UChar *src, int32_t length,
UErrorCode *status) {
Replaceable *rep=(Replaceable *)ut->context;
@@ -1243,34 +1880,42 @@ repTextReplace(UText *ut,
return 0;
}
oldLength=rep->length(); // will subtract from new length
- if(start<0 || start>limit ) {
+ if(start>limit ) {
*status=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
}
- if (start > oldLength) {
- start = oldLength;
+ int32_t start32 = pinIndex(start, oldLength);
+ int32_t limit32 = pinIndex(limit, oldLength);
+
+ // Snap start & limit to code point boundaries.
+ if (start32<oldLength && U16_IS_TRAIL(rep->charAt(start32)) &&
+ start32>0 && U16_IS_LEAD(rep->charAt(start32-1)))
+ {
+ start32--;
}
- if (limit > oldLength) {
- limit = oldLength;
+ if (limit32<oldLength && U16_IS_LEAD(rep->charAt(limit32-1)) &&
+ U16_IS_TRAIL(rep->charAt(limit32)))
+ {
+ limit32++;
}
// Do the actual replace operation using methods of the Replaceable class
UnicodeString replStr((UBool)(length<0), src, length); // read-only alias
- rep->handleReplaceBetween(start, limit, replStr);
+ rep->handleReplaceBetween(start32, limit32, replStr);
int32_t newLength = rep->length();
int32_t lengthDelta = newLength - oldLength;
// Is the UText chunk buffer OK?
- if (ut->chunk.nativeLimit > start) {
+ if (ut->chunkNativeLimit > start32) {
// this replace operation may have impacted the current chunk.
// invalidate it, which will force a reload on the next access.
- invalidateChunk(&ut->chunk);
+ invalidateChunk(ut);
}
// set the iteration position to the end of the newly inserted replacement text.
- int32_t newIndexPos = limit + lengthDelta;
- repTextAccess(ut, newIndexPos, TRUE, &ut->chunk);
+ int32_t newIndexPos = limit32 + lengthDelta;
+ repTextAccess(ut, newIndexPos, TRUE);
return lengthDelta;
}
@@ -1278,10 +1923,10 @@ repTextReplace(UText *ut,
static void U_CALLCONV
repTextCopy(UText *ut,
- int32_t start, int32_t limit,
- int32_t destIndex,
+ int64_t start, int64_t limit,
+ int64_t destIndex,
UBool move,
- UErrorCode *status)
+ UErrorCode *status)
{
Replaceable *rep=(Replaceable *)ut->context;
int32_t length=rep->length();
@@ -1289,64 +1934,75 @@ repTextCopy(UText *ut,
if(U_FAILURE(*status)) {
return;
}
- if( start<0 || start>limit || destIndex<0 ||
- (start<destIndex && destIndex<limit) )
+ if (start>limit || (start<destIndex && destIndex<limit))
{
*status=U_INDEX_OUTOFBOUNDS_ERROR;
return;
}
- if (destIndex > length) {
- destIndex = length;
- }
- if (limit > length) {
- limit = length;
- }
- if (start > length) {
- start = length;
- }
+
+ int32_t start32 = pinIndex(start, length);
+ int32_t limit32 = pinIndex(limit, length);
+ int32_t destIndex32 = pinIndex(destIndex, length);
+
+ // TODO: snap input parameters to code point boundaries.
+
if(move) {
// move: copy to destIndex, then replace original with nothing
- int32_t segLength=limit-start;
- rep->copy(start, limit, destIndex);
- if(destIndex<start) {
- start+=segLength;
- limit+=segLength;
+ int32_t segLength=limit32-start32;
+ rep->copy(start32, limit32, destIndex32);
+ if(destIndex32<start32) {
+ start32+=segLength;
+ limit32+=segLength;
}
- rep->handleReplaceBetween(start, limit, UnicodeString());
+ rep->handleReplaceBetween(start32, limit32, UnicodeString());
} else {
// copy
- rep->copy(start, limit, destIndex);
+ rep->copy(start32, limit32, destIndex32);
}
// If the change to the text touched the region in the chunk buffer,
// invalidate the buffer.
- int32_t firstAffectedIndex = destIndex;
- if (move && start<firstAffectedIndex) {
- firstAffectedIndex = start;
+ int32_t firstAffectedIndex = destIndex32;
+ if (move && start32<firstAffectedIndex) {
+ firstAffectedIndex = start32;
}
- if (firstAffectedIndex < ut->chunk.nativeLimit) {
+ if (firstAffectedIndex < ut->chunkNativeLimit) {
// changes may have affected range covered by the chunk
- invalidateChunk(&ut->chunk);
+ invalidateChunk(ut);
}
// Put iteration position at the newly inserted (moved) block,
- int32_t nativeIterIndex = destIndex + limit - start;
- if (move && destIndex>start) {
+ int32_t nativeIterIndex = destIndex32 + limit32 - start32;
+ if (move && destIndex32>start32) {
// moved a block of text towards the end of the string.
- nativeIterIndex = destIndex;
+ nativeIterIndex = destIndex32;
}
// Set position, reload chunk if needed.
- repTextAccess(ut, nativeIterIndex, TRUE, &ut->chunk);
+ repTextAccess(ut, nativeIterIndex, TRUE);
}
-
-
-
+static struct UTextFuncs repFuncs =
+{
+ sizeof(UTextFuncs),
+ 0, 0, 0, // Reserved alignment padding
+ repTextClone,
+ repTextLength,
+ repTextAccess,
+ repTextExtract,
+ repTextReplace,
+ repTextCopy,
+ NULL, // MapOffsetToNative,
+ NULL, // MapIndexToUTF16,
+ repTextClose,
+ NULL, // spare 1
+ NULL, // spare 2
+ NULL // spare 3
+};
U_DRAFT UText * U_EXPORT2
-utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status)
+utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status)
{
if(U_FAILURE(*status)) {
return NULL;
@@ -1356,21 +2012,14 @@ utext_openReplaceable(UText *ut, Replaceable *rep, UErrorCode *status)
return NULL;
}
ut = utext_setup(ut, sizeof(ReplExtra), status);
-
+
ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_WRITABLE);
if(rep->hasMetaData()) {
ut->providerProperties |=I32_FLAG(UTEXT_PROVIDER_HAS_META_DATA);
}
- ut->clone = repTextClone;
- ut->nativeLength = repTextLength;
- ut->access = repTextAccess;
- ut->extract = repTextExtract;
- ut->replace = repTextReplace;
- ut->copy = repTextCopy;
- ut->close = repTextClose;
-
- ut->context=rep;
+ ut->pFuncs = &repFuncs;
+ ut->context = rep;
return ut;
}
@@ -1412,62 +2061,48 @@ unistrTextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status) {
if (deep && U_SUCCESS(*status)) {
const UnicodeString *srcString = (const UnicodeString *)src->context;
dest->context = new UnicodeString(*srcString);
- dest->p = dest->context;
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT);
+
+ // with deep clone, the copy is writable, even when the source is not.
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_WRITABLE);
}
return dest;
}
-
+
static void U_CALLCONV
unistrTextClose(UText *ut) {
// Most of the work of close is done by the generic UText framework close.
// All that needs to be done here is delete the UnicodeString if the UText
// owns it. This occurs if the UText was created by cloning.
- UnicodeString *str = (UnicodeString *)ut->p;
- delete str;
- ut->p = NULL;
+ if (ut->providerProperties & I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT)) {
+ UnicodeString *str = (UnicodeString *)ut->context;
+ delete str;
+ ut->context = NULL;
+ }
}
-static int32_t U_CALLCONV
+static int64_t U_CALLCONV
unistrTextLength(UText *t) {
return ((const UnicodeString *)t->context)->length();
}
static UBool U_CALLCONV
-unistrTextAccess(UText *ut, int32_t index, UBool forward, UTextChunk *chunk) {
- const UnicodeString *us = (const UnicodeString *)ut->context;
- int32_t length = us->length();
-
- if (chunk->nativeLimit != length) {
- // This chunk is not yet set up. Do it now.
- // TODO: probably simplify things to move this into the open operation.
- chunk->contents = us->getBuffer();
- chunk->length = length;
- chunk->nativeStart = 0;
- chunk->nativeLimit = length;
- chunk->nonUTF16Indexes = FALSE;
- }
-
- // pin the requested index to the bounds of the string,
- // and set current iteration position.
- if (index<0) {
- index = 0;
- } else if (index>length) {
- index = length;
- }
- chunk->offset = index;
+unistrTextAccess(UText *ut, int64_t index, UBool forward) {
+ int32_t length = ut->chunkLength;
+ ut->chunkOffset = pinIndex(index, length);
// Check whether request is at the start or end
UBool retVal = (forward && index<length) || (!forward && index>0);
- return retVal;
+ return retVal;
}
static int32_t U_CALLCONV
unistrTextExtract(UText *t,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
UChar *dest, int32_t destCapacity,
UErrorCode *pErrorCode) {
const UnicodeString *us=(const UnicodeString *)t->context;
@@ -1484,16 +2119,16 @@ unistrTextExtract(UText *t,
return 0;
}
- start = start<length ? us->getChar32Start(start) : length;
- limit = limit<length ? us->getChar32Start(limit) : length;
+ int32_t start32 = start<length ? us->getChar32Start((int32_t)start) : length;
+ int32_t limit32 = limit<length ? us->getChar32Start((int32_t)limit) : length;
- length=limit-start;
+ length=limit32-start32;
if (destCapacity>0 && dest!=NULL) {
int32_t trimmedLength = length;
if(trimmedLength>destCapacity) {
trimmedLength=destCapacity;
}
- us->extract(start, trimmedLength, dest);
+ us->extract(start32, trimmedLength, dest);
}
u_terminateUChars(dest, destCapacity, length, pErrorCode);
return length;
@@ -1501,7 +2136,7 @@ unistrTextExtract(UText *t,
static int32_t U_CALLCONV
unistrTextReplace(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
const UChar *src, int32_t length,
UErrorCode *pErrorCode) {
UnicodeString *us=(UnicodeString *)ut->context;
@@ -1513,35 +2148,41 @@ unistrTextReplace(UText *ut,
if(src==NULL && length!=0) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
}
- oldLength=us->length(); // will subtract from new length
- if(start<0 || start>limit) {
+ if(start>limit) {
*pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
}
-
- start = start<oldLength ? us->getChar32Start(start) : oldLength;
- limit = limit<oldLength ? us->getChar32Start(limit) : oldLength;
+ oldLength=us->length();
+ int32_t start32 = pinIndex(start, oldLength);
+ int32_t limit32 = pinIndex(limit, oldLength);
+ if (start32 < oldLength) {
+ start32 = us->getChar32Start(start32);
+ }
+ if (limit32 < oldLength) {
+ limit32 = us->getChar32Start(limit32);
+ }
// replace
- us->replace(start, limit-start, src, length);
+ us->replace(start32, limit32-start32, src, length);
int32_t newLength = us->length();
// Update the chunk description.
- ut->chunk.contents = us->getBuffer();
- ut->chunk.length = newLength;
- ut->chunk.nativeLimit = newLength;
+ ut->chunkContents = us->getBuffer();
+ ut->chunkLength = newLength;
+ ut->chunkNativeLimit = newLength;
+ ut->nativeIndexingLimit = newLength;
// Set iteration position to the point just following the newly inserted text.
int32_t lengthDelta = newLength - oldLength;
- ut->chunk.offset = limit + lengthDelta;
+ ut->chunkOffset = limit32 + lengthDelta;
return lengthDelta;
}
static void U_CALLCONV
unistrTextCopy(UText *ut,
- int32_t start, int32_t limit,
- int32_t destIndex,
+ int64_t start, int64_t limit,
+ int64_t destIndex,
UBool move,
UErrorCode *pErrorCode) {
UnicodeString *us=(UnicodeString *)ut->context;
@@ -1550,65 +2191,84 @@ unistrTextCopy(UText *ut,
if(U_FAILURE(*pErrorCode)) {
return;
}
- if( start<0 || start>limit || destIndex<0 ||
- (start<destIndex && destIndex<limit)
- ) {
+ int32_t start32 = pinIndex(start, length);
+ int32_t limit32 = pinIndex(limit, length);
+ int32_t destIndex32 = pinIndex(destIndex, length);
+
+ if( start32>limit32 || (start32<destIndex32 && destIndex32<limit32)) {
*pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
return;
}
- if (limit>length) {
- limit = length;
- }
- if (destIndex>length) {
- destIndex = length;
- }
+
if(move) {
// move: copy to destIndex, then replace original with nothing
- int32_t segLength=limit-start;
- us->copy(start, limit, destIndex);
- if(destIndex<start) {
- start+=segLength;
+ int32_t segLength=limit32-start32;
+ us->copy(start32, limit32, destIndex32);
+ if(destIndex32<start32) {
+ start32+=segLength;
}
- us->replace(start, segLength, NULL, 0);
+ us->replace(start32, segLength, NULL, 0);
} else {
// copy
- us->copy(start, limit, destIndex);
+ us->copy(start32, limit32, destIndex32);
}
-
+
// update chunk description, set iteration position.
- ut->chunk.contents = us->getBuffer();
+ ut->chunkContents = us->getBuffer();
if (move==FALSE) {
// copy operation, string length grows
- ut->chunk.length += limit-start;
- ut->chunk.nativeLimit = ut->chunk.length;
+ ut->chunkLength += limit32-start32;
+ ut->chunkNativeLimit = ut->chunkLength;
+ ut->nativeIndexingLimit = ut->chunkLength;
}
// Iteration position to end of the newly inserted text.
- ut->chunk.offset = destIndex+limit-start;
- if (move && destIndex>start) { //TODO: backwards? check.
- ut->chunk.offset = destIndex;
+ ut->chunkOffset = destIndex32+limit32-start32;
+ if (move && destIndex32>start32) {
+ ut->chunkOffset = destIndex32;
}
}
+static struct UTextFuncs unistrFuncs =
+{
+ sizeof(UTextFuncs),
+ 0, 0, 0, // Reserved alignment padding
+ unistrTextClone,
+ unistrTextLength,
+ unistrTextAccess,
+ unistrTextExtract,
+ unistrTextReplace,
+ unistrTextCopy,
+ NULL, // MapOffsetToNative,
+ NULL, // MapIndexToUTF16,
+ unistrTextClose,
+ NULL, // spare 1
+ NULL, // spare 2
+ NULL // spare 3
+};
+
+
+
U_CDECL_END
U_DRAFT UText * U_EXPORT2
utext_openUnicodeString(UText *ut, UnicodeString *s, UErrorCode *status) {
+ // TODO: use openConstUnicodeString, then add in the differences.
+ //
ut = utext_setup(ut, 0, status);
if (U_SUCCESS(*status)) {
- ut->clone = unistrTextClone;
- ut->nativeLength = unistrTextLength;
- ut->access = unistrTextAccess;
- ut->extract = unistrTextExtract;
- ut->replace = unistrTextReplace;
- ut->copy = unistrTextCopy;
- ut->close = unistrTextClose;
-
- ut->context = s;
- ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS)|
- I32_FLAG(UTEXT_PROVIDER_WRITABLE);
+ ut->pFuncs = &unistrFuncs;
+ ut->context = s;
+ ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS)|
+ I32_FLAG(UTEXT_PROVIDER_WRITABLE);
+
+ ut->chunkContents = s->getBuffer();
+ ut->chunkLength = s->length();
+ ut->chunkNativeStart = 0;
+ ut->chunkNativeLimit = ut->chunkLength;
+ ut->nativeIndexingLimit = ut->chunkLength;
}
return ut;
}
@@ -1618,27 +2278,32 @@ utext_openUnicodeString(UText *ut, UnicodeString *s, UErrorCode *status) {
U_DRAFT UText * U_EXPORT2
utext_openConstUnicodeString(UText *ut, const UnicodeString *s, UErrorCode *status) {
ut = utext_setup(ut, 0, status);
+ // note: use the standard (writable) function table for UnicodeString.
+ // The flag settings disable writing, so having the functions in
+ // the table is harmless.
if (U_SUCCESS(*status)) {
- ut->clone = unistrTextClone;
- ut->nativeLength = unistrTextLength;
- ut->access = unistrTextAccess;
- ut->extract = unistrTextExtract;
- ut->close = unistrTextClose;
-
- ut->context = s;
- ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS);
+ ut->pFuncs = &unistrFuncs;
+ ut->context = s;
+ ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS);
+ ut->chunkContents = s->getBuffer();
+ ut->chunkLength = s->length();
+ ut->chunkNativeStart = 0;
+ ut->chunkNativeLimit = ut->chunkLength;
+ ut->nativeIndexingLimit = ut->chunkLength;
}
return ut;
}
//------------------------------------------------------------------------------
//
-// UText implementation for const UChar * strings
+// UText implementation for const UChar * strings
//
// Use of UText data members:
// context pointer to UnicodeString
// a length. -1 if not yet known.
//
+// TODO: support 64 bit lengths.
+//
//------------------------------------------------------------------------------
U_CDECL_BEGIN
@@ -1646,7 +2311,7 @@ U_CDECL_BEGIN
static UText * U_CALLCONV
ucstrTextClone(UText *dest, const UText * src, UBool deep, UErrorCode * status) {
- // First do a generic shallow clone.
+ // First do a generic shallow clone.
dest = shallowTextClone(dest, src, status);
// For deep clones, make a copy of the string.
@@ -1655,21 +2320,22 @@ ucstrTextClone(UText *dest, const UText * src, UBool deep, UErrorCode * status)
// it.
//
if (deep && U_SUCCESS(*status)) {
- int32_t len = utext_nativeLength(dest);
+ U_ASSERT(utext_nativeLength(dest) < INT32_MAX);
+ int32_t len = (int32_t)utext_nativeLength(dest);
- // The cloned string IS going to be NUL terminated, whether or not the orginal was.
+ // The cloned string IS going to be NUL terminated, whether or not the original was.
const UChar *srcStr = (const UChar *)src->context;
UChar *copyStr = (UChar *)uprv_malloc((len+1) * sizeof(UChar));
if (copyStr == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
} else {
- int i;
+ int64_t i;
for (i=0; i<len; i++) {
copyStr[i] = srcStr[i];
}
copyStr[len] = 0;
dest->context = copyStr;
- dest->p = copyStr;
+ dest->providerProperties |= I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT);
}
}
return dest;
@@ -1679,30 +2345,33 @@ ucstrTextClone(UText *dest, const UText * src, UBool deep, UErrorCode * status)
static void U_CALLCONV
ucstrTextClose(UText *ut) {
// Most of the work of close is done by the generic UText framework close.
- // All that needs to be done here is delete the Replaceable if the UText
+ // All that needs to be done here is delete the string if the UText
// owns it. This occurs if the UText was created by cloning.
- UChar *s = (UChar *)ut->p;
- uprv_free(s);
- ut->p = NULL;
+ if (ut->providerProperties & I32_FLAG(UTEXT_PROVIDER_OWNS_TEXT)) {
+ UChar *s = (UChar *)ut->context;
+ uprv_free(s);
+ ut->context = NULL;
+ }
}
-static int32_t U_CALLCONV
+static int64_t U_CALLCONV
ucstrTextLength(UText *ut) {
if (ut->a < 0) {
// null terminated, we don't yet know the length. Scan for it.
- // Access is not convenient for doing this
+ // Access is not convenient for doing this
// because the current interation postion can't be changed.
const UChar *str = (const UChar *)ut->context;
for (;;) {
- if (str[ut->chunk.nativeLimit] == 0) {
+ if (str[ut->chunkNativeLimit] == 0) {
break;
}
- ut->chunk.nativeLimit++;
+ ut->chunkNativeLimit++;
}
- ut->a = ut->chunk.nativeLimit;
- ut->chunk.length = ut->chunk.nativeLimit;
+ ut->a = ut->chunkNativeLimit;
+ ut->chunkLength = (int32_t)ut->chunkNativeLimit;
+ ut->nativeIndexingLimit = ut->chunkLength;
ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
}
return ut->a;
@@ -1710,103 +2379,131 @@ ucstrTextLength(UText *ut) {
static UBool U_CALLCONV
-ucstrTextAccess(UText *ut, int32_t index, UBool forward, UTextChunk *chunk) {
+ucstrTextAccess(UText *ut, int64_t index, UBool forward) {
const UChar *str = (const UChar *)ut->context;
-
+
// pin the requested index to the bounds of the string,
// and set current iteration position.
if (index<0) {
index = 0;
- } else if (index < ut->chunk.nativeLimit) {
+ } else if (index < ut->chunkNativeLimit) {
// The request data is within the chunk as it is known so far.
- // There is nothing more that needs to be done within this access function.
+ // Put index on a code point boundary.
+ U16_SET_CP_START(str, 0, index);
} else if (ut->a >= 0) {
// We know the length of this string, and the user is requesting something
- // at or beyond the length. Trim the requested index to the length.
- index = ut->a;
+ // at or beyond the length. Pin the requested index to the length.
+ index = ut->a;
} else {
- // Null terminated string, length not yet known.
- // Scan down another 32 UChars or to the requested index, whichever is further
- int scanLimit = ut->chunk.nativeLimit + 32;
- if (scanLimit <= index) {
- scanLimit = index+1; // TODO: beware int overflow
+ // Null terminated string, length not yet known, and the requested index
+ // is beyond where we have scanned so far.
+ // Scan to 32 UChars beyond the requested index. The strategy here is
+ // to avoid fully scanning a long string when the caller only wants to
+ // see a few characters at its beginning.
+ int32_t scanLimit = (int32_t)index + 32;
+ if ((index + 32)>INT32_MAX || (index + 32)<0 ) { // note: int64 expression
+ scanLimit = INT32_MAX;
}
- for (; ut->chunk.nativeLimit<scanLimit; ut->chunk.nativeLimit++) {
- if (str[ut->chunk.nativeLimit] == 0) {
- // We found the end of the string. Remember it, trim the index to it,
+
+ int32_t chunkLimit = (int32_t)ut->chunkNativeLimit;
+ for (; chunkLimit<scanLimit; chunkLimit++) {
+ if (str[chunkLimit] == 0) {
+ // We found the end of the string. Remember it, pin the requested index to it,
// and bail out of here.
- ut->a = ut->chunk.nativeLimit;
- ut->chunk.length = ut->chunk.nativeLimit;
- if (index > ut->chunk.nativeLimit) {
- index = ut->chunk.nativeLimit;
+ ut->a = chunkLimit;
+ ut->chunkLength = chunkLimit;
+ ut->nativeIndexingLimit = chunkLimit;
+ if (index >= chunkLimit) {
+ index = chunkLimit;
+ } else {
+ U16_SET_CP_START(str, 0, index);
}
+
+ ut->chunkNativeLimit = chunkLimit;
ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
goto breakout;
}
}
// We scanned through the next batch of UChars without finding the end.
- // The endpoint of a chunk must not be left in the middle of a surrogate pair.
- // If the current end is on a lead surrogate, back the end up by one.
- // It doesn't matter if the end char happens to be an unpaired surrogate,
- // and it's simpler not to worry about it.
- if (U16_IS_LEAD(str[ut->chunk.nativeLimit-1])) {
- --ut->chunk.nativeLimit;
+ U16_SET_CP_START(str, 0, index);
+ if (chunkLimit == INT32_MAX) {
+ // Scanned to the limit of a 32 bit length.
+ // Forceably trim the overlength string back so length fits in int32
+ // TODO: add support for 64 bit strings.
+ ut->a = chunkLimit;
+ ut->chunkLength = chunkLimit;
+ ut->nativeIndexingLimit = chunkLimit;
+ if (index > chunkLimit) {
+ index = chunkLimit;
+ }
+ ut->chunkNativeLimit = chunkLimit;
+ ut->providerProperties &= ~I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
+ } else {
+ // The endpoint of a chunk must not be left in the middle of a surrogate pair.
+ // If the current end is on a lead surrogate, back the end up by one.
+ // It doesn't matter if the end char happens to be an unpaired surrogate,
+ // and it's simpler not to worry about it.
+ if (U16_IS_LEAD(str[chunkLimit-1])) {
+ --chunkLimit;
+ }
+ ut->chunkNativeLimit = chunkLimit;
}
+
}
breakout:
- chunk->offset = index;
+ U_ASSERT(index<=INT32_MAX);
+ ut->chunkOffset = (int32_t)index;
// Check whether request is at the start or end
- UBool retVal = (forward && index<ut->chunk.nativeLimit) || (!forward && index>0);
- return retVal;
+ UBool retVal = (forward && index<ut->chunkNativeLimit) || (!forward && index>0);
+ return retVal;
}
static int32_t U_CALLCONV
ucstrTextExtract(UText *ut,
- int32_t start, int32_t limit,
+ int64_t start, int64_t limit,
UChar *dest, int32_t destCapacity,
- UErrorCode *pErrorCode) {
-
-
+ UErrorCode *pErrorCode)
+{
if(U_FAILURE(*pErrorCode)) {
return 0;
}
- if(destCapacity<0 || (dest==NULL && destCapacity>0)) {
+ if(destCapacity<0 || (dest==NULL && destCapacity>0) || start>limit) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
const UChar *s=(const UChar *)ut->context;
- int32_t strLength=ut->a;
int32_t si, di;
- // If text is null terminated and we haven't yet scanned down as far as the starting
- // position of the extract, do it now.
- if (strLength<0 && limit>=ut->chunk.nativeLimit) {
- ucstrTextAccess(ut, start, TRUE, &ut->chunk);
- }
+ int32_t start32;
+ int32_t limit32;
- // Raise an error if starting position is outside of the string.
- if(start<0 || start>limit) {
- *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
- return 0;
- }
+ // Access the start. Does two things we need:
+ // Pins 'start' to the length of the string, if it came in out-of-bounds.
+ // Snaps 'start' to the beginning of a code point.
+ ucstrTextAccess(ut, start, TRUE);
+ U_ASSERT(start <= INT32_MAX);
+ start32 = (int32_t)start;
- if (strLength >= 0 && limit > strLength) {
- // String length is known. Trim requested limit to be no more than the length
- limit = strLength;
+ int32_t strLength=(int32_t)ut->a;
+ if (strLength >= 0) {
+ limit32 = pinIndex(limit, strLength);
+ } else {
+ limit32 = pinIndex(limit, INT32_MAX);
}
di = 0;
- for (si=start; si<limit; si++) {
+ for (si=start32; si<limit32; si++) {
if (strLength<0 && s[si]==0) {
// Just hit the end of a null-terminated string.
ut->a = si; // set string length for this UText
- ut->chunk.nativeLimit = si;
- ut->chunk.length = si;
- //
+ ut->chunkNativeLimit = si;
+ ut->chunkLength = si;
+ ut->nativeIndexingLimit = si;
+ strLength = si;
break;
}
if (di<destCapacity) {
@@ -1814,56 +2511,310 @@ ucstrTextExtract(UText *ut,
dest[di] = s[si];
} else {
if (strLength>=0) {
- // We have filled the destination buffer, and the string is known.
+ // We have filled the destination buffer, and the string length is known.
// Cut the loop short. There is no need to scan string termination.
di = strLength;
+ si = limit32;
break;
}
}
di++;
}
+ // If the limit index points to a lead surrogate of a pair,
+ // add the corresponding trail surrogate to the destination.
+ if (si>0 && U16_IS_LEAD(s[si-1]) &&
+ ((si<strLength || strLength<0) && U16_IS_TRAIL(s[si])))
+ {
+ if (di<destCapacity) {
+ // store only if there is space in the output buffer.
+ dest[di++] = s[si++];
+ }
+ }
+
+ // Put iteration position at the point just following the extracted text
+ ut->chunkOffset = si;
+
+ // Add a terminating NUL if space in the buffer permits,
+ // and set the error status as required.
u_terminateUChars(dest, destCapacity, di, pErrorCode);
return di;
- }
-
+}
+static struct UTextFuncs ucstrFuncs =
+{
+ sizeof(UTextFuncs),
+ 0, 0, 0, // Reserved alignment padding
+ ucstrTextClone,
+ ucstrTextLength,
+ ucstrTextAccess,
+ ucstrTextExtract,
+ NULL, // Replace
+ NULL, // Copy
+ NULL, // MapOffsetToNative,
+ NULL, // MapIndexToUTF16,
+ ucstrTextClose,
+ NULL, // spare 1
+ NULL, // spare 2
+ NULL, // spare 3
+};
U_CDECL_END
U_DRAFT UText * U_EXPORT2
-utext_openUChars(UText *ut, const UChar *s, int32_t length, UErrorCode *status) {
+utext_openUChars(UText *ut, const UChar *s, int64_t length, UErrorCode *status) {
if (U_FAILURE(*status)) {
return NULL;
}
- if (length < -1) {
+ if (length < -1 || length>INT32_MAX) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return NULL;
}
ut = utext_setup(ut, 0, status);
if (U_SUCCESS(*status)) {
- ut->clone = ucstrTextClone;
- ut->nativeLength = ucstrTextLength;
- ut->access = ucstrTextAccess;
- ut->extract = ucstrTextExtract;
- ut->replace = NULL;
- ut->copy = NULL;
- ut->close = ucstrTextClose;
-
- ut->context = s;
- ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS);
+ ut->pFuncs = &ucstrFuncs;
+ ut->context = s;
+ ut->providerProperties = I32_FLAG(UTEXT_PROVIDER_STABLE_CHUNKS);
if (length==-1) {
ut->providerProperties |= I32_FLAG(UTEXT_PROVIDER_LENGTH_IS_EXPENSIVE);
}
- ut->a = length;
- ut->chunk.contents = s;
- ut->chunk.nativeStart = 0;
- ut->chunk.nativeLimit = length>=0? length : 0;
- ut->chunk.length = ut->chunk.nativeLimit;
- ut->chunk.nonUTF16Indexes = FALSE;
+ ut->a = length;
+ ut->chunkContents = s;
+ ut->chunkNativeStart = 0;
+ ut->chunkNativeLimit = length>=0? length : 0;
+ ut->chunkLength = (int32_t)ut->chunkNativeLimit;
+ ut->chunkOffset = 0;
+ ut->nativeIndexingLimit = ut->chunkLength;
}
return ut;
}
+//------------------------------------------------------------------------------
+//
+// UText implementation for text from ICU CharacterIterators
+//
+// Use of UText data members:
+// context pointer to the CharacterIterator
+// a length of the full text.
+// p pointer to buffer 1
+// b start index of local buffer 1 contents
+// q pointer to buffer 2
+// c start index of local buffer 2 contents
+// r pointer to the character iterator if the UText owns it.
+// Null otherwise.
+//
+//------------------------------------------------------------------------------
+#define CIBufSize 16
+
+U_CDECL_BEGIN
+static void U_CALLCONV
+charIterTextClose(UText *ut) {
+ // Most of the work of close is done by the generic UText framework close.
+ // All that needs to be done here is delete the CharacterIterator if the UText
+ // owns it. This occurs if the UText was created by cloning.
+ CharacterIterator *ci = (CharacterIterator *)ut->r;
+ delete ci;
+ ut->r = NULL;
+}
+
+static int64_t U_CALLCONV
+charIterTextLength(UText *ut) {
+ return (int32_t)ut->a;
+}
+
+static UBool U_CALLCONV
+charIterTextAccess(UText *ut, int64_t index, UBool forward) {
+ CharacterIterator *ci = (CharacterIterator *)ut->context;
+
+ int32_t clippedIndex = (int32_t)index;
+ if (clippedIndex<0) {
+ clippedIndex=0;
+ } else if (clippedIndex>=ut->a) {
+ clippedIndex=(int32_t)ut->a;
+ }
+ int32_t neededIndex = clippedIndex;
+ if (!forward && neededIndex>0) {
+ // reverse iteration, want the position just before what was asked for.
+ neededIndex--;
+ } else if (forward && neededIndex==ut->a && neededIndex>0) {
+ // Forward iteration, don't ask for something past the end of the text.
+ neededIndex--;
+ }
+
+ // Find the native index of the start of the buffer containing what we want.
+ neededIndex -= neededIndex % CIBufSize;
+
+ UChar *buf = NULL;
+ UBool needChunkSetup = TRUE;
+ int i;
+ if (ut->chunkNativeStart == neededIndex) {
+ // The buffer we want is already the current chunk.
+ needChunkSetup = FALSE;
+ } else if (ut->b == neededIndex) {
+ // The first buffer (buffer p) has what we need.
+ buf = (UChar *)ut->p;
+ } else if (ut->c == neededIndex) {
+ // The second buffer (buffer q) has what we need.
+ buf = (UChar *)ut->q;
+ } else {
+ // Neither buffer already has what we need.
+ // Load new data from the character iterator.
+ // Use the buf that is not the current buffer.
+ buf = (UChar *)ut->p;
+ if (ut->p == ut->chunkContents) {
+ buf = (UChar *)ut->q;
+ }
+ ci->setIndex(neededIndex);
+ for (i=0; i<CIBufSize; i++) {
+ buf[i] = ci->nextPostInc();
+ if (i+neededIndex > ut->a) {
+ break;
+ }
+ }
+ }
+
+ // We have a buffer with the data we need.
+ // Set it up as the current chunk, if it wasn't already.
+ if (needChunkSetup) {
+ ut->chunkContents = buf;
+ ut->chunkLength = CIBufSize;
+ ut->chunkNativeStart = neededIndex;
+ ut->chunkNativeLimit = neededIndex + CIBufSize;
+ if (ut->chunkNativeLimit > ut->a) {
+ ut->chunkNativeLimit = ut->a;
+ ut->chunkLength = (int32_t)(ut->chunkNativeLimit)-(int32_t)(ut->chunkNativeStart);
+ }
+ ut->nativeIndexingLimit = ut->chunkLength;
+ U_ASSERT(ut->chunkOffset>=0 && ut->chunkOffset<=CIBufSize);
+ }
+ ut->chunkOffset = clippedIndex - (int32_t)ut->chunkNativeStart;
+ UBool success = (forward? ut->chunkOffset<ut->chunkLength : ut->chunkOffset>0);
+ return success;
+}
+
+static UText * U_CALLCONV
+charIterTextClone(UText *dest, const UText *src, UBool deep, UErrorCode * status) {
+ if (U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (deep) {
+ // There is no CharacterIterator API for cloning the underlying text storage.
+ *status = U_UNSUPPORTED_ERROR;
+ return NULL;
+ } else {
+ CharacterIterator *srcCI =(CharacterIterator *)src->context;
+ srcCI = srcCI->clone();
+ dest = utext_openCharacterIterator(dest, srcCI, status);
+ // cast off const on getNativeIndex.
+ // For CharacterIterator based UTexts, this is safe, the operation is const.
+ int64_t ix = utext_getNativeIndex((UText *)src);
+ utext_setNativeIndex(dest, ix);
+ dest->r = srcCI; // flags that this UText owns the CharacterIterator
+ }
+ return dest;
+}
+
+static int32_t U_CALLCONV
+charIterTextExtract(UText *ut,
+ int64_t start, int64_t limit,
+ UChar *dest, int32_t destCapacity,
+ UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return 0;
+ }
+ if(destCapacity<0 || (dest==NULL && destCapacity>0) || start>limit) {
+ *status=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+ int32_t length = (int32_t)ut->a;
+ int32_t start32 = pinIndex(start, length);
+ int32_t limit32 = pinIndex(limit, length);
+ int32_t desti = 0;
+ int32_t srci;
+
+ CharacterIterator *ci = (CharacterIterator *)ut->context;
+ ci->setIndex32(start32); // Moves ix to lead of surrogate pair, if needed.
+ srci = ci->getIndex();
+ while (srci<limit32) {
+ UChar32 c = ci->next32PostInc();
+ int32_t len = U16_LENGTH(c);
+ if (desti+len <= destCapacity) {
+ U16_APPEND_UNSAFE(dest, desti, c);
+ } else {
+ desti += len;
+ *status = U_BUFFER_OVERFLOW_ERROR;
+ }
+ srci += len;
+ }
+
+ u_terminateUChars(dest, destCapacity, desti, status);
+ return desti;
+}
+
+static struct UTextFuncs charIterFuncs =
+{
+ sizeof(UTextFuncs),
+ 0, 0, 0, // Reserved alignment padding
+ charIterTextClone,
+ charIterTextLength,
+ charIterTextAccess,
+ charIterTextExtract,
+ NULL, // Replace
+ NULL, // Copy
+ NULL, // MapOffsetToNative,
+ NULL, // MapIndexToUTF16,
+ charIterTextClose,
+ NULL, // spare 1
+ NULL, // spare 2
+ NULL // spare 3
+};
+U_CDECL_END
+
+
+U_DRAFT UText * U_EXPORT2
+utext_openCharacterIterator(UText *ut, CharacterIterator *ci, UErrorCode *status) {
+ if (U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (ci->startIndex() > 0) {
+ // No support for CharacterIterators that do not start indexing from zero.
+ *status = U_UNSUPPORTED_ERROR;
+ return NULL;
+ }
+
+ // Extra space in UText for 2 buffers of CIBufSize UChars each.
+ int32_t extraSpace = 2 * CIBufSize * sizeof(UChar);
+ ut = utext_setup(ut, extraSpace, status);
+ if (U_SUCCESS(*status)) {
+ ut->pFuncs = &charIterFuncs;
+ ut->context = ci;
+ ut->providerProperties = 0;
+ ut->a = ci->endIndex(); // Length of text
+ ut->p = ut->pExtra; // First buffer
+ ut->b = -1; // Native index of first buffer contents
+ ut->q = (UChar*)ut->pExtra+CIBufSize; // Second buffer
+ ut->c = -1; // Native index of second buffer contents
+
+ // Initialize current chunk contents to be empty.
+ // First access will fault something in.
+ // Note: The initial nativeStart and chunkOffset must sum to zero
+ // so that getNativeIndex() will correctly compute to zero
+ // if no call to Access() has ever been made. They can't be both
+ // zero without Access() thinking that the chunk is valid.
+ ut->chunkContents = (UChar *)ut->p;
+ ut->chunkNativeStart = -1;
+ ut->chunkOffset = 1;
+ ut->chunkNativeLimit = 0;
+ ut->chunkLength = 0;
+ ut->nativeIndexingLimit = ut->chunkOffset; // enables native indexing
+ }
+ return ut;
+}
+
+
+
diff --git a/Build/source/libs/icu-xetex/common/utf_impl.c b/Build/source/libs/icu-xetex/common/utf_impl.c
index 431b0eb5dad..8f45546bb76 100644
--- a/Build/source/libs/icu-xetex/common/utf_impl.c
+++ b/Build/source/libs/icu-xetex/common/utf_impl.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1999-2003, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -82,6 +82,28 @@ utf8_errorValue[6]={
0x3ffffff, 0x7fffffff
};
+/*
+ * Handle the non-inline part of the U8_NEXT() macro and its obsolete sibling
+ * UTF8_NEXT_CHAR_SAFE().
+ *
+ * The "strict" parameter controls the error behavior:
+ * <0 "Safe" behavior of U8_NEXT(): All illegal byte sequences yield a negative
+ * code point result.
+ * 0 Obsolete "safe" behavior of UTF8_NEXT_CHAR_SAFE(..., FALSE):
+ * All illegal byte sequences yield a positive code point such that this
+ * result code point would be encoded with the same number of bytes as
+ * the illegal sequence.
+ * >0 Obsolete "strict" behavior of UTF8_NEXT_CHAR_SAFE(..., TRUE):
+ * Same as the obsolete "safe" behavior, but non-characters are also treated
+ * like illegal sequences.
+ *
+ * The special negative (<0) value -2 is used for lenient treatment of surrogate
+ * code points as legal. Some implementations use this for roundtripping of
+ * Unicode 16-bit strings that are not well-formed UTF-16, that is, they
+ * contain unpaired surrogates.
+ *
+ * Note that a UBool is the same as an int8_t.
+ */
U_CAPI UChar32 U_EXPORT2
utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c, UBool strict) {
int32_t i=*pi;
@@ -139,7 +161,7 @@ utf8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c,
/* correct sequence - all trail bytes have (b7..b6)==(10)? */
/* illegal is also set if count>=4 */
- if(illegal || (c)<utf8_minLegal[count] || UTF_IS_SURROGATE(c)) {
+ if(illegal || (c)<utf8_minLegal[count] || (UTF_IS_SURROGATE(c) && strict!=-2)) {
/* error handling */
uint8_t errorCount=count;
/* don't go beyond this sequence */
@@ -235,7 +257,7 @@ utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, U
} else {
return U_SENTINEL;
}
- break;
+ /*break;*/
}
/* read another previous byte */
@@ -250,7 +272,7 @@ utf8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c, U
*pi=i;
UTF8_MASK_LEAD_BYTE(b, count);
c|=(UChar32)b<<shift;
- if(count>=4 || c>0x10ffff || c<utf8_minLegal[count] || UTF_IS_SURROGATE(c) || (strict>0 && UTF_IS_UNICODE_NONCHAR(c))) {
+ if(count>=4 || c>0x10ffff || c<utf8_minLegal[count] || (UTF_IS_SURROGATE(c) && strict!=-2) || (strict>0 && UTF_IS_UNICODE_NONCHAR(c))) {
/* illegal sequence or (strict and non-character) */
if(count>=4) {
count=3;
diff --git a/Build/source/libs/icu-xetex/common/util.cpp b/Build/source/libs/icu-xetex/common/util.cpp
index 450dca1556f..7a588b5ae63 100644
--- a/Build/source/libs/icu-xetex/common/util.cpp
+++ b/Build/source/libs/icu-xetex/common/util.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2005, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -9,9 +9,7 @@
*/
#include "util.h"
-#include "unicode/uchar.h"
#include "unicode/unimatch.h"
-#include "uprops.h"
// Define UChar constants using hex for EBCDIC compatibility
@@ -29,6 +27,8 @@ static const UChar DIGITS[] = {
85,86,87,88,89,90
};
+U_NAMESPACE_BEGIN
+
UnicodeString& ICU_Utility::appendNumber(UnicodeString& result, int32_t n,
int32_t radix, int32_t minDigits) {
if (radix < 2 || radix > 36) {
@@ -215,69 +215,6 @@ UBool ICU_Utility::parseChar(const UnicodeString& id, int32_t& pos, UChar ch) {
}
/**
- * Parse a pattern string starting at offset pos. Keywords are
- * matched case-insensitively. Spaces may be skipped and may be
- * optional or required. Integer values may be parsed, and if
- * they are, they will be returned in the given array. If
- * successful, the offset of the next non-space character is
- * returned. On failure, -1 is returned.
- * @param pattern must only contain lowercase characters, which
- * will match their uppercase equivalents as well. A space
- * character matches one or more required spaces. A '~' character
- * matches zero or more optional spaces. A '#' character matches
- * an integer and stores it in parsedInts, which the caller must
- * ensure has enough capacity.
- * @param parsedInts array to receive parsed integers. Caller
- * must ensure that parsedInts.length is >= the number of '#'
- * signs in 'pattern'.
- * @return the position after the last character parsed, or -1 if
- * the parse failed
- */
-int32_t ICU_Utility::parsePattern(const UnicodeString& rule, int32_t pos, int32_t limit,
- const UnicodeString& pattern, int32_t* parsedInts) {
- // TODO Update this to handle surrogates
- int32_t p;
- int32_t intCount = 0; // number of integers parsed
- for (int32_t i=0; i<pattern.length(); ++i) {
- UChar cpat = pattern.charAt(i);
- UChar c;
- switch (cpat) {
- case 32 /*' '*/:
- if (pos >= limit) {
- return -1;
- }
- c = rule.charAt(pos++);
- if (!uprv_isRuleWhiteSpace(c)) {
- return -1;
- }
- // FALL THROUGH to skipWhitespace
- case 126 /*'~'*/:
- pos = skipWhitespace(rule, pos);
- break;
- case 35 /*'#'*/:
- p = pos;
- parsedInts[intCount++] = parseInteger(rule, p, limit);
- if (p == pos) {
- // Syntax error; failed to parse integer
- return -1;
- }
- pos = p;
- break;
- default:
- if (pos >= limit) {
- return -1;
- }
- c = (UChar) u_tolower(rule.charAt(pos++));
- if (c != cpat) {
- return -1;
- }
- break;
- }
- }
- return pos;
-}
-
-/**
* Parse a pattern string within the given Replaceable and a parsing
* pattern. Characters are matched literally and case-sensitively
* except for the following special characters:
@@ -344,140 +281,6 @@ int32_t ICU_Utility::parsePattern(const UnicodeString& pat,
}
/**
- * Parse an integer at pos, either of the form \d+ or of the form
- * 0x[0-9A-Fa-f]+ or 0[0-7]+, that is, in standard decimal, hex,
- * or octal format.
- * @param pos INPUT-OUTPUT parameter. On input, the first
- * character to parse. On output, the character after the last
- * parsed character.
- */
-int32_t ICU_Utility::parseInteger(const UnicodeString& rule, int32_t& pos, int32_t limit) {
- int32_t count = 0;
- int32_t value = 0;
- int32_t p = pos;
- int8_t radix = 10;
-
- if (p < limit && rule.charAt(p) == 48 /*0*/) {
- if (p+1 < limit && (rule.charAt(p+1) == 0x78 /*x*/ || rule.charAt(p+1) == 0x58 /*X*/)) {
- p += 2;
- radix = 16;
- }
- else {
- p++;
- count = 1;
- radix = 8;
- }
- }
-
- while (p < limit) {
- int32_t d = u_digit(rule.charAt(p++), radix);
- if (d < 0) {
- --p;
- break;
- }
- ++count;
- int32_t v = (value * radix) + d;
- if (v <= value) {
- // If there are too many input digits, at some point
- // the value will go negative, e.g., if we have seen
- // "0x8000000" already and there is another '0', when
- // we parse the next 0 the value will go negative.
- return 0;
- }
- value = v;
- }
- if (count > 0) {
- pos = p;
- }
- return value;
-}
-
-/**
- * Parse a Unicode identifier from the given string at the given
- * position. Return the identifier, or an empty string if there
- * is no identifier.
- * @param str the string to parse
- * @param pos INPUT-OUPUT parameter. On INPUT, pos is the
- * first character to examine. It must be less than str.length(),
- * and it must not point to a whitespace character. That is, must
- * have pos < str.length() and
- * !uprv_isRuleWhiteSpace(str.char32At(pos)). On
- * OUTPUT, the position after the last parsed character.
- * @return the Unicode identifier, or an empty string if there is
- * no valid identifier at pos.
- */
-UnicodeString ICU_Utility::parseUnicodeIdentifier(const UnicodeString& str, int32_t& pos) {
- // assert(pos < str.length());
- // assert(!uprv_isRuleWhiteSpace(str.char32At(pos)));
- UnicodeString buf;
- int p = pos;
- while (p < str.length()) {
- UChar32 ch = str.char32At(p);
- if (buf.length() == 0) {
- if (u_isIDStart(ch)) {
- buf.append(ch);
- } else {
- buf.truncate(0);
- return buf;
- }
- } else {
- if (u_isIDPart(ch)) {
- buf.append(ch);
- } else {
- break;
- }
- }
- p += UTF_CHAR_LENGTH(ch);
- }
- pos = p;
- return buf;
-}
-
-/**
- * Parse an unsigned 31-bit integer at the given offset. Use
- * UCharacter.digit() to parse individual characters into digits.
- * @param text the text to be parsed
- * @param pos INPUT-OUTPUT parameter. On entry, pos[0] is the
- * offset within text at which to start parsing; it should point
- * to a valid digit. On exit, pos[0] is the offset after the last
- * parsed character. If the parse failed, it will be unchanged on
- * exit. Must be >= 0 on entry.
- * @param radix the radix in which to parse; must be >= 2 and <=
- * 36.
- * @return a non-negative parsed number, or -1 upon parse failure.
- * Parse fails if there are no digits, that is, if pos[0] does not
- * point to a valid digit on entry, or if the number to be parsed
- * does not fit into a 31-bit unsigned integer.
- */
-int32_t ICU_Utility::parseNumber(const UnicodeString& text,
- int32_t& pos, int8_t radix) {
- // assert(pos[0] >= 0);
- // assert(radix >= 2);
- // assert(radix <= 36);
- int32_t n = 0;
- int32_t p = pos;
- while (p < text.length()) {
- UChar32 ch = text.char32At(p);
- int32_t d = u_digit(ch, radix);
- if (d < 0) {
- break;
- }
- n = radix*n + d;
- // ASSUME that when a 32-bit integer overflows it becomes
- // negative. E.g., 214748364 * 10 + 8 => negative value.
- if (n < 0) {
- return -1;
- }
- ++p;
- }
- if (p == pos) {
- return -1;
- }
- pos = p;
- return n;
-}
-
-/**
* Append a character to a rule that is being built up. To flush
* the quoteBuf to rule, make one final call with isLiteral == TRUE.
* If there is no final character, pass in (UChar32)-1 as c.
@@ -609,6 +412,8 @@ void ICU_Utility::appendToRule(UnicodeString& rule,
}
}
+U_NAMESPACE_END
+
U_CAPI UBool U_EXPORT2
uprv_isRuleWhiteSpace(UChar32 c) {
/* "white space" in the sense of ICU rule parsers
diff --git a/Build/source/libs/icu-xetex/common/util_props.cpp b/Build/source/libs/icu-xetex/common/util_props.cpp
new file mode 100644
index 00000000000..f91666b4f23
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/util_props.cpp
@@ -0,0 +1,214 @@
+/*
+**********************************************************************
+* Copyright (c) 2001-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+* Date Name Description
+* 11/19/2001 aliu Creation.
+**********************************************************************
+*/
+
+#include "util.h"
+#include "unicode/uchar.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * Parse an integer at pos, either of the form \d+ or of the form
+ * 0x[0-9A-Fa-f]+ or 0[0-7]+, that is, in standard decimal, hex,
+ * or octal format.
+ * @param pos INPUT-OUTPUT parameter. On input, the first
+ * character to parse. On output, the character after the last
+ * parsed character.
+ */
+int32_t ICU_Utility::parseInteger(const UnicodeString& rule, int32_t& pos, int32_t limit) {
+ int32_t count = 0;
+ int32_t value = 0;
+ int32_t p = pos;
+ int8_t radix = 10;
+
+ if (p < limit && rule.charAt(p) == 48 /*0*/) {
+ if (p+1 < limit && (rule.charAt(p+1) == 0x78 /*x*/ || rule.charAt(p+1) == 0x58 /*X*/)) {
+ p += 2;
+ radix = 16;
+ }
+ else {
+ p++;
+ count = 1;
+ radix = 8;
+ }
+ }
+
+ while (p < limit) {
+ int32_t d = u_digit(rule.charAt(p++), radix);
+ if (d < 0) {
+ --p;
+ break;
+ }
+ ++count;
+ int32_t v = (value * radix) + d;
+ if (v <= value) {
+ // If there are too many input digits, at some point
+ // the value will go negative, e.g., if we have seen
+ // "0x8000000" already and there is another '0', when
+ // we parse the next 0 the value will go negative.
+ return 0;
+ }
+ value = v;
+ }
+ if (count > 0) {
+ pos = p;
+ }
+ return value;
+}
+
+/**
+ * Parse a pattern string starting at offset pos. Keywords are
+ * matched case-insensitively. Spaces may be skipped and may be
+ * optional or required. Integer values may be parsed, and if
+ * they are, they will be returned in the given array. If
+ * successful, the offset of the next non-space character is
+ * returned. On failure, -1 is returned.
+ * @param pattern must only contain lowercase characters, which
+ * will match their uppercase equivalents as well. A space
+ * character matches one or more required spaces. A '~' character
+ * matches zero or more optional spaces. A '#' character matches
+ * an integer and stores it in parsedInts, which the caller must
+ * ensure has enough capacity.
+ * @param parsedInts array to receive parsed integers. Caller
+ * must ensure that parsedInts.length is >= the number of '#'
+ * signs in 'pattern'.
+ * @return the position after the last character parsed, or -1 if
+ * the parse failed
+ */
+int32_t ICU_Utility::parsePattern(const UnicodeString& rule, int32_t pos, int32_t limit,
+ const UnicodeString& pattern, int32_t* parsedInts) {
+ // TODO Update this to handle surrogates
+ int32_t p;
+ int32_t intCount = 0; // number of integers parsed
+ for (int32_t i=0; i<pattern.length(); ++i) {
+ UChar cpat = pattern.charAt(i);
+ UChar c;
+ switch (cpat) {
+ case 32 /*' '*/:
+ if (pos >= limit) {
+ return -1;
+ }
+ c = rule.charAt(pos++);
+ if (!uprv_isRuleWhiteSpace(c)) {
+ return -1;
+ }
+ // FALL THROUGH to skipWhitespace
+ case 126 /*'~'*/:
+ pos = skipWhitespace(rule, pos);
+ break;
+ case 35 /*'#'*/:
+ p = pos;
+ parsedInts[intCount++] = parseInteger(rule, p, limit);
+ if (p == pos) {
+ // Syntax error; failed to parse integer
+ return -1;
+ }
+ pos = p;
+ break;
+ default:
+ if (pos >= limit) {
+ return -1;
+ }
+ c = (UChar) u_tolower(rule.charAt(pos++));
+ if (c != cpat) {
+ return -1;
+ }
+ break;
+ }
+ }
+ return pos;
+}
+
+/**
+ * Parse a Unicode identifier from the given string at the given
+ * position. Return the identifier, or an empty string if there
+ * is no identifier.
+ * @param str the string to parse
+ * @param pos INPUT-OUPUT parameter. On INPUT, pos is the
+ * first character to examine. It must be less than str.length(),
+ * and it must not point to a whitespace character. That is, must
+ * have pos < str.length() and
+ * !uprv_isRuleWhiteSpace(str.char32At(pos)). On
+ * OUTPUT, the position after the last parsed character.
+ * @return the Unicode identifier, or an empty string if there is
+ * no valid identifier at pos.
+ */
+UnicodeString ICU_Utility::parseUnicodeIdentifier(const UnicodeString& str, int32_t& pos) {
+ // assert(pos < str.length());
+ // assert(!uprv_isRuleWhiteSpace(str.char32At(pos)));
+ UnicodeString buf;
+ int p = pos;
+ while (p < str.length()) {
+ UChar32 ch = str.char32At(p);
+ if (buf.length() == 0) {
+ if (u_isIDStart(ch)) {
+ buf.append(ch);
+ } else {
+ buf.truncate(0);
+ return buf;
+ }
+ } else {
+ if (u_isIDPart(ch)) {
+ buf.append(ch);
+ } else {
+ break;
+ }
+ }
+ p += UTF_CHAR_LENGTH(ch);
+ }
+ pos = p;
+ return buf;
+}
+
+/**
+ * Parse an unsigned 31-bit integer at the given offset. Use
+ * UCharacter.digit() to parse individual characters into digits.
+ * @param text the text to be parsed
+ * @param pos INPUT-OUTPUT parameter. On entry, pos[0] is the
+ * offset within text at which to start parsing; it should point
+ * to a valid digit. On exit, pos[0] is the offset after the last
+ * parsed character. If the parse failed, it will be unchanged on
+ * exit. Must be >= 0 on entry.
+ * @param radix the radix in which to parse; must be >= 2 and <=
+ * 36.
+ * @return a non-negative parsed number, or -1 upon parse failure.
+ * Parse fails if there are no digits, that is, if pos[0] does not
+ * point to a valid digit on entry, or if the number to be parsed
+ * does not fit into a 31-bit unsigned integer.
+ */
+int32_t ICU_Utility::parseNumber(const UnicodeString& text,
+ int32_t& pos, int8_t radix) {
+ // assert(pos[0] >= 0);
+ // assert(radix >= 2);
+ // assert(radix <= 36);
+ int32_t n = 0;
+ int32_t p = pos;
+ while (p < text.length()) {
+ UChar32 ch = text.char32At(p);
+ int32_t d = u_digit(ch, radix);
+ if (d < 0) {
+ break;
+ }
+ n = radix*n + d;
+ // ASSUME that when a 32-bit integer overflows it becomes
+ // negative. E.g., 214748364 * 10 + 8 => negative value.
+ if (n < 0) {
+ return -1;
+ }
+ ++p;
+ }
+ if (p == pos) {
+ return -1;
+ }
+ pos = p;
+ return n;
+}
+
+U_NAMESPACE_END
+
diff --git a/Build/source/libs/icu-xetex/common/utrie.c b/Build/source/libs/icu-xetex/common/utrie.c
index 60e446a7106..812c89db567 100644
--- a/Build/source/libs/icu-xetex/common/utrie.c
+++ b/Build/source/libs/icu-xetex/common/utrie.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -23,7 +23,6 @@
#endif
#include "unicode/utypes.h"
-#include "udataswp.h"
#include "cmemory.h"
#include "utrie.h"
@@ -686,55 +685,6 @@ utrie_compact(UNewTrie *trie, UBool overlap, UErrorCode *pErrorCode) {
/* serialization ------------------------------------------------------------ */
-/**
- * Trie data structure in serialized form:
- *
- * UTrieHeader header;
- * uint16_t index[header.indexLength];
- * uint16_t data[header.dataLength];
- */
-struct UTrieHeader {
- /** "Trie" in big-endian US-ASCII (0x54726965) */
- uint32_t signature;
-
- /**
- * options bit field:
- * 9 1=Latin-1 data is stored linearly at data+UTRIE_DATA_BLOCK_LENGTH
- * 8 0=16-bit data, 1=32-bit data
- * 7..4 UTRIE_INDEX_SHIFT // 0..UTRIE_SHIFT
- * 3..0 UTRIE_SHIFT // 1..9
- */
- uint32_t options;
-
- /** indexLength is a multiple of UTRIE_SURROGATE_BLOCK_COUNT */
- int32_t indexLength;
-
- /** dataLength>=UTRIE_DATA_BLOCK_LENGTH */
- int32_t dataLength;
-};
-
-typedef struct UTrieHeader UTrieHeader;
-
-/**
- * Constants for use with UTrieHeader.options.
- */
-enum {
- /** Mask to get the UTRIE_SHIFT value from options. */
- UTRIE_OPTIONS_SHIFT_MASK=0xf,
-
- /** Shift options right this much to get the UTRIE_INDEX_SHIFT value. */
- UTRIE_OPTIONS_INDEX_SHIFT=4,
-
- /** If set, then the data (stage 2) array is 32 bits wide. */
- UTRIE_OPTIONS_DATA_IS_32_BIT=0x100,
-
- /**
- * If set, then Latin-1 data (for U+0000..U+00ff) is stored in the data (stage 2) array
- * as a simple, linear array at data+UTRIE_DATA_BLOCK_LENGTH.
- */
- UTRIE_OPTIONS_LATIN1_IS_LINEAR=0x200
-};
-
/*
* Default function for the folding value:
* Just store the offset (16 bits) if there is any non-initial-value entry.
@@ -1077,79 +1027,6 @@ utrie_unserializeDummy(UTrie *trie,
return actualLength;
}
-/* swapping ----------------------------------------------------------------- */
-
-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 && 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;
-}
-
/* enumeration -------------------------------------------------------------- */
/* default UTrieEnumValue() returns the input value itself */
diff --git a/Build/source/libs/icu-xetex/common/utrie.h b/Build/source/libs/icu-xetex/common/utrie.h
index a23d11a8e43..d8d77ac4cbb 100644
--- a/Build/source/libs/icu-xetex/common/utrie.h
+++ b/Build/source/libs/icu-xetex/common/utrie.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -736,6 +736,57 @@ utrie_swap(const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode);
+/* serialization ------------------------------------------------------------ */
+
+/**
+ * Trie data structure in serialized form:
+ *
+ * UTrieHeader header;
+ * uint16_t index[header.indexLength];
+ * uint16_t data[header.dataLength];
+ * @internal
+ */
+typedef struct UTrieHeader {
+ /** "Trie" in big-endian US-ASCII (0x54726965) */
+ uint32_t signature;
+
+ /**
+ * options bit field:
+ * 9 1=Latin-1 data is stored linearly at data+UTRIE_DATA_BLOCK_LENGTH
+ * 8 0=16-bit data, 1=32-bit data
+ * 7..4 UTRIE_INDEX_SHIFT // 0..UTRIE_SHIFT
+ * 3..0 UTRIE_SHIFT // 1..9
+ */
+ uint32_t options;
+
+ /** indexLength is a multiple of UTRIE_SURROGATE_BLOCK_COUNT */
+ int32_t indexLength;
+
+ /** dataLength>=UTRIE_DATA_BLOCK_LENGTH */
+ int32_t dataLength;
+} UTrieHeader;
+
+/**
+ * Constants for use with UTrieHeader.options.
+ * @internal
+ */
+enum {
+ /** Mask to get the UTRIE_SHIFT value from options. */
+ UTRIE_OPTIONS_SHIFT_MASK=0xf,
+
+ /** Shift options right this much to get the UTRIE_INDEX_SHIFT value. */
+ UTRIE_OPTIONS_INDEX_SHIFT=4,
+
+ /** If set, then the data (stage 2) array is 32 bits wide. */
+ UTRIE_OPTIONS_DATA_IS_32_BIT=0x100,
+
+ /**
+ * If set, then Latin-1 data (for U+0000..U+00ff) is stored in the data (stage 2) array
+ * as a simple, linear array at data+UTRIE_DATA_BLOCK_LENGTH.
+ */
+ UTRIE_OPTIONS_LATIN1_IS_LINEAR=0x200
+};
+
U_CDECL_END
#endif
diff --git a/Build/source/libs/icu-xetex/common/utypes.c b/Build/source/libs/icu-xetex/common/utypes.c
index 5ac8e956999..2255b0c1b73 100644
--- a/Build/source/libs/icu-xetex/common/utypes.c
+++ b/Build/source/libs/icu-xetex/common/utypes.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -121,7 +121,6 @@ _uFmtErrorName[U_FMT_PARSE_ERROR_LIMIT - U_FMT_PARSE_ERROR_START] = {
static const char * const
_uBrkErrorName[U_BRK_ERROR_LIMIT - U_BRK_ERROR_START] = {
- "U_BRK_ERROR_START",
"U_BRK_INTERNAL_ERROR",
"U_BRK_HEX_DIGITS_EXPECTED",
"U_BRK_SEMICOLON_EXPECTED",
@@ -140,7 +139,6 @@ _uBrkErrorName[U_BRK_ERROR_LIMIT - U_BRK_ERROR_START] = {
static const char * const
_uRegexErrorName[U_REGEX_ERROR_LIMIT - U_REGEX_ERROR_START] = {
- "U_REGEX_ERROR_START",
"U_REGEX_INTERNAL_ERROR",
"U_REGEX_RULE_SYNTAX",
"U_REGEX_INVALID_STATE",
@@ -156,12 +154,9 @@ _uRegexErrorName[U_REGEX_ERROR_LIMIT - U_REGEX_ERROR_START] = {
"U_REGEX_LOOK_BEHIND_LIMIT",
"U_REGEX_SET_CONTAINS_STRING"
};
-/* TODO: replace the definition with _uIDNAErrorName[U_IDNA_ERROR_LIMIT - U_IDNA_ERROR_START ]
- * in ICU 3.6
- */
+
static const char * const
-_uIDNAErrorName[U_IDNA_ERROR_LIMIT - U_IDNA_ERROR_START + 1] = {
- "U_IDNA_ERROR_START",
+_uIDNAErrorName[U_IDNA_ERROR_LIMIT - U_IDNA_ERROR_START] = {
"U_STRINGPREP_PROHIBITED_ERROR",
"U_STRINGPREP_UNASSIGNED_ERROR",
"U_STRINGPREP_CHECK_BIDI_ERROR",
@@ -186,7 +181,7 @@ u_errorName(UErrorCode code) {
return _uBrkErrorName[code - U_BRK_ERROR_START];
} else if (U_REGEX_ERROR_START <= code && code < U_REGEX_ERROR_LIMIT) {
return _uRegexErrorName[code - U_REGEX_ERROR_START];
- } else if( U_IDNA_ERROR_START <= code && code <= U_IDNA_ERROR_LIMIT) {
+ } else if(U_IDNA_ERROR_START <= code && code < U_IDNA_ERROR_LIMIT) {
return _uIDNAErrorName[code - U_IDNA_ERROR_START];
} else {
return "[BOGUS UErrorCode]";
diff --git a/Build/source/libs/icu-xetex/common/uvector.h b/Build/source/libs/icu-xetex/common/uvector.h
index 3aef964c054..710f0dbcc97 100644
--- a/Build/source/libs/icu-xetex/common/uvector.h
+++ b/Build/source/libs/icu-xetex/common/uvector.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -247,15 +247,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
@@ -328,15 +324,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
diff --git a/Build/source/libs/icu-xetex/common/uvectr32.h b/Build/source/libs/icu-xetex/common/uvectr32.h
index 5e50124d04a..68a3ee2e2fe 100644
--- a/Build/source/libs/icu-xetex/common/uvectr32.h
+++ b/Build/source/libs/icu-xetex/common/uvectr32.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -163,15 +163,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
diff --git a/Build/source/libs/icu-xetex/common/wintz.c b/Build/source/libs/icu-xetex/common/wintz.c
new file mode 100644
index 00000000000..136eba9e287
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/wintz.c
@@ -0,0 +1,581 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINTZ.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#include "wintz.h"
+
+#include "cmemory.h"
+#include "cstring.h"
+
+#include "unicode/ustring.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+#include <windows.h>
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+#define ICUID_STACK_BUFFER_SIZE 32
+
+/* 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;
+
+typedef struct
+{
+ const char *icuid;
+ const char *winid;
+} WindowsICUMap;
+
+typedef struct {
+ const char* winid;
+ const char* altwinid;
+} WindowsZoneRemap;
+
+/**
+ * Various registry keys and key fragments.
+ */
+static const char CURRENT_ZONE_REGKEY[] = "SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\";
+static const char STANDARD_NAME_REGKEY[] = "StandardName";
+static const char STANDARD_TIME_REGKEY[] = " Standard Time";
+static const char TZI_REGKEY[] = "TZI";
+static const char STD_REGKEY[] = "Std";
+
+/**
+ * HKLM subkeys used to probe for the flavor of Windows. Note that we
+ * specifically check for the "GMT" zone subkey; this is present on
+ * NT, but on XP has become "GMT Standard Time". We need to
+ * discriminate between these cases.
+ */
+static const char* const WIN_TYPE_PROBE_REGKEY[] = {
+ /* WIN_9X_ME_TYPE */
+ "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones",
+
+ /* WIN_NT_TYPE */
+ "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\GMT"
+
+ /* otherwise: WIN_2K_XP_TYPE */
+};
+
+/**
+ * The time zone root subkeys (under HKLM) for different flavors of
+ * Windows.
+ */
+static const char* const TZ_REGKEY[] = {
+ /* WIN_9X_ME_TYPE */
+ "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Time Zones\\",
+
+ /* WIN_NT_TYPE | WIN_2K_XP_TYPE */
+ "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Time Zones\\"
+};
+
+/**
+ * Flavor of Windows, from our perspective. Not a real OS version,
+ * but rather the flavor of the layout of the time zone information in
+ * the registry.
+ */
+enum {
+ WIN_9X_ME_TYPE = 0,
+ WIN_NT_TYPE = 1,
+ WIN_2K_XP_TYPE = 2
+};
+
+/*
+ * TODO: Sort on ICU ID?
+ * TODO: This data should come from ICU/CLDR...
+ */
+static const WindowsICUMap ZONE_MAP[] = {
+ {"Etc/GMT+12", "Dateline"}, /* S (GMT-12:00) International Date Line West */
+
+ {"Pacific/Apia", "Samoa"}, /* S (GMT-11:00) Midway Island, Samoa */
+
+ {"Pacific/Honolulu", "Hawaiian"}, /* S (GMT-10:00) Hawaii */
+
+ {"America/Anchorage", "Alaskan"}, /* D (GMT-09:00) Alaska */
+
+ {"America/Los_Angeles", "Pacific"}, /* D (GMT-08:00) Pacific Time (US & Canada); Tijuana */
+
+ {"America/Phoenix", "US Mountain"}, /* S (GMT-07:00) Arizona */
+ {"America/Denver", "Mountain"}, /* D (GMT-07:00) Mountain Time (US & Canada) */
+ {"America/Chihuahua", "Mexico Standard Time 2"}, /* D (GMT-07:00) Chihuahua, La Paz, Mazatlan */
+
+ {"America/Managua", "Central America"}, /* S (GMT-06:00) Central America */
+ {"America/Regina", "Canada Central"}, /* S (GMT-06:00) Saskatchewan */
+ {"America/Mexico_City", "Mexico"}, /* D (GMT-06:00) Guadalajara, Mexico City, Monterrey */
+ {"America/Chicago", "Central"}, /* D (GMT-06:00) Central Time (US & Canada) */
+
+ {"America/Indianapolis", "US Eastern"}, /* S (GMT-05:00) Indiana (East) */
+ {"America/Bogota", "SA Pacific"}, /* S (GMT-05:00) Bogota, Lima, Quito */
+ {"America/New_York", "Eastern"}, /* D (GMT-05:00) Eastern Time (US & Canada) */
+
+ {"America/Caracas", "SA Western"}, /* S (GMT-04:00) Caracas, La Paz */
+ {"America/Santiago", "Pacific SA"}, /* D (GMT-04:00) Santiago */
+ {"America/Halifax", "Atlantic"}, /* D (GMT-04:00) Atlantic Time (Canada) */
+
+ {"America/St_Johns", "Newfoundland"}, /* D (GMT-03:30) Newfoundland */
+
+ {"America/Buenos_Aires", "SA Eastern"}, /* S (GMT-03:00) Buenos Aires, Georgetown */
+ {"America/Godthab", "Greenland"}, /* D (GMT-03:00) Greenland */
+ {"America/Sao_Paulo", "E. South America"}, /* D (GMT-03:00) Brasilia */
+
+ {"America/Noronha", "Mid-Atlantic"}, /* D (GMT-02:00) Mid-Atlantic */
+
+ {"Atlantic/Cape_Verde", "Cape Verde"}, /* S (GMT-01:00) Cape Verde Is. */
+ {"Atlantic/Azores", "Azores"}, /* D (GMT-01:00) Azores */
+
+ {"Africa/Casablanca", "Greenwich"}, /* S (GMT) Casablanca, Monrovia */
+ {"Europe/London", "GMT"}, /* D (GMT) Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London */
+
+ {"Africa/Lagos", "W. Central Africa"}, /* S (GMT+01:00) West Central Africa */
+ {"Europe/Berlin", "W. Europe"}, /* D (GMT+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna */
+ {"Europe/Paris", "Romance"}, /* D (GMT+01:00) Brussels, Copenhagen, Madrid, Paris */
+ {"Europe/Sarajevo", "Central European"}, /* D (GMT+01:00) Sarajevo, Skopje, Warsaw, Zagreb */
+ {"Europe/Belgrade", "Central Europe"}, /* D (GMT+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague */
+
+ {"Africa/Johannesburg", "South Africa"}, /* S (GMT+02:00) Harare, Pretoria */
+ {"Asia/Jerusalem", "Israel"}, /* S (GMT+02:00) Jerusalem */
+ {"Europe/Istanbul", "GTB"}, /* D (GMT+02:00) Athens, Istanbul, Minsk */
+ {"Europe/Helsinki", "FLE"}, /* D (GMT+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius */
+ {"Africa/Cairo", "Egypt"}, /* D (GMT+02:00) Cairo */
+ {"Europe/Bucharest", "E. Europe"}, /* D (GMT+02:00) Bucharest */
+
+ {"Africa/Nairobi", "E. Africa"}, /* S (GMT+03:00) Nairobi */
+ {"Asia/Riyadh", "Arab"}, /* S (GMT+03:00) Kuwait, Riyadh */
+ {"Europe/Moscow", "Russian"}, /* D (GMT+03:00) Moscow, St. Petersburg, Volgograd */
+ {"Asia/Baghdad", "Arabic"}, /* D (GMT+03:00) Baghdad */
+
+ {"Asia/Tehran", "Iran"}, /* D (GMT+03:30) Tehran */
+
+ {"Asia/Muscat", "Arabian"}, /* S (GMT+04:00) Abu Dhabi, Muscat */
+ {"Asia/Tbilisi", "Caucasus"}, /* D (GMT+04:00) Baku, Tbilisi, Yerevan */
+
+ {"Asia/Kabul", "Afghanistan"}, /* S (GMT+04:30) Kabul */
+
+ {"Asia/Karachi", "West Asia"}, /* S (GMT+05:00) Islamabad, Karachi, Tashkent */
+ {"Asia/Yekaterinburg", "Ekaterinburg"}, /* D (GMT+05:00) Ekaterinburg */
+
+ {"Asia/Calcutta", "India"}, /* S (GMT+05:30) Chennai, Kolkata, Mumbai, New Delhi */
+
+ {"Asia/Katmandu", "Nepal"}, /* S (GMT+05:45) Kathmandu */
+
+ {"Asia/Colombo", "Sri Lanka"}, /* S (GMT+06:00) Sri Jayawardenepura */
+ {"Asia/Dhaka", "Central Asia"}, /* S (GMT+06:00) Astana, Dhaka */
+ {"Asia/Novosibirsk", "N. Central Asia"}, /* D (GMT+06:00) Almaty, Novosibirsk */
+
+ {"Asia/Rangoon", "Myanmar"}, /* S (GMT+06:30) Rangoon */
+
+ {"Asia/Bangkok", "SE Asia"}, /* S (GMT+07:00) Bangkok, Hanoi, Jakarta */
+ {"Asia/Krasnoyarsk", "North Asia"}, /* D (GMT+07:00) Krasnoyarsk */
+
+ {"Australia/Perth", "W. Australia"}, /* S (GMT+08:00) Perth */
+ {"Asia/Taipei", "Taipei"}, /* S (GMT+08:00) Taipei */
+ {"Asia/Singapore", "Singapore"}, /* S (GMT+08:00) Kuala Lumpur, Singapore */
+ {"Asia/Hong_Kong", "China"}, /* S (GMT+08:00) Beijing, Chongqing, Hong Kong, Urumqi */
+ {"Asia/Irkutsk", "North Asia East"}, /* D (GMT+08:00) Irkutsk, Ulaan Bataar */
+
+ {"Asia/Tokyo", "Tokyo"}, /* S (GMT+09:00) Osaka, Sapporo, Tokyo */
+ {"Asia/Seoul", "Korea"}, /* S (GMT+09:00) Seoul */
+ {"Asia/Yakutsk", "Yakutsk"}, /* D (GMT+09:00) Yakutsk */
+
+ {"Australia/Darwin", "AUS Central"}, /* S (GMT+09:30) Darwin */
+ {"Australia/Adelaide", "Cen. Australia"}, /* D (GMT+09:30) Adelaide */
+
+ {"Pacific/Guam", "West Pacific"}, /* S (GMT+10:00) Guam, Port Moresby */
+ {"Australia/Brisbane", "E. Australia"}, /* S (GMT+10:00) Brisbane */
+ {"Asia/Vladivostok", "Vladivostok"}, /* D (GMT+10:00) Vladivostok */
+ {"Australia/Hobart", "Tasmania"}, /* D (GMT+10:00) Hobart */
+ {"Australia/Sydney", "AUS Eastern"}, /* D (GMT+10:00) Canberra, Melbourne, Sydney */
+
+ {"Asia/Magadan", "Central Pacific"}, /* S (GMT+11:00) Magadan, Solomon Is., New Caledonia */
+
+ {"Pacific/Fiji", "Fiji"}, /* S (GMT+12:00) Fiji, Kamchatka, Marshall Is. */
+ {"Pacific/Auckland", "New Zealand"}, /* D (GMT+12:00) Auckland, Wellington */
+
+ {"Pacific/Tongatapu", "Tonga"}, /* S (GMT+13:00) Nuku'alofa */
+ NULL, NULL
+};
+
+/**
+ * If a lookup fails, we attempt to remap certain Windows ids to
+ * alternate Windows ids. If the alternate listed here begins with
+ * '-', we use it as is (without the '-'). If it begins with '+', we
+ * append a " Standard Time" if appropriate.
+ */
+static const WindowsZoneRemap ZONE_REMAP[] = {
+ "Central European", "-Warsaw",
+ "Central Europe", "-Prague Bratislava",
+ "China", "-Beijing",
+
+ "Greenwich", "+GMT",
+ "GTB", "+GFT",
+ "Arab", "+Saudi Arabia",
+ "SE Asia", "+Bangkok",
+ "AUS Eastern", "+Sydney",
+ NULL, NULL,
+};
+
+static int32_t fWinType = -1;
+
+static int32_t detectWindowsType()
+{
+ int32_t winType;
+ LONG result;
+ HKEY hkey;
+
+ /* Detect the version of windows by trying to open a sequence of
+ probe keys. We don't use the OS version API because what we
+ really want to know is how the registry is laid out.
+ Specifically, is it 9x/Me or not, and is it "GMT" or "GMT
+ Standard Time". */
+ for (winType = 0; winType < 2; winType += 1) {
+ result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+ WIN_TYPE_PROBE_REGKEY[winType],
+ 0,
+ KEY_QUERY_VALUE,
+ &hkey);
+ RegCloseKey(hkey);
+
+ if (result == ERROR_SUCCESS) {
+ break;
+ }
+ }
+
+ return winType;
+}
+
+/*
+ * TODO: Binary search sorted ZONE_MAP...
+ * (u_detectWindowsTimeZone() needs them sorted by offset...)
+ */
+static const char *findWindowsZoneID(const UChar *icuid, int32_t length)
+{
+ char stackBuffer[ICUID_STACK_BUFFER_SIZE];
+ char *buffer = stackBuffer;
+ const char *result = NULL;
+ int i;
+
+ /*
+ * NOTE: >= because length doesn't include
+ * trailing null.
+ */
+ if (length >= ICUID_STACK_BUFFER_SIZE) {
+ buffer = NEW_ARRAY(char, length + 1);
+ }
+
+ u_UCharsToChars(icuid, buffer, length);
+ buffer[length] = '\0';
+
+ for (i = 0; ZONE_MAP[i].icuid != NULL; i += 1) {
+ if (uprv_strcmp(buffer, ZONE_MAP[i].icuid) == 0) {
+ result = ZONE_MAP[i].winid;
+ break;
+ }
+ }
+
+ if (buffer != stackBuffer) {
+ DELETE_ARRAY(buffer);
+ }
+
+ return result;
+}
+
+static LONG openTZRegKey(HKEY *hkey, const char *winid)
+{
+ char subKeyName[96]; /* TODO: why 96?? */
+ char *name;
+ LONG result;
+
+ /* TODO: This isn't thread safe, but it's probably good enough. */
+ if (fWinType < 0) {
+ fWinType = detectWindowsType();
+ }
+
+ uprv_strcpy(subKeyName, TZ_REGKEY[(fWinType == WIN_9X_ME_TYPE) ? 0 : 1]);
+ name = &subKeyName[strlen(subKeyName)];
+ uprv_strcat(subKeyName, winid);
+
+ if (fWinType != WIN_9X_ME_TYPE &&
+ (winid[strlen(winid) - 1] != '2') &&
+ !(fWinType == WIN_NT_TYPE && strcmp(winid, "GMT") == 0)) {
+ uprv_strcat(subKeyName, STANDARD_TIME_REGKEY);
+ }
+
+ result = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+ subKeyName,
+ 0,
+ KEY_QUERY_VALUE,
+ hkey);
+
+ if (result != ERROR_SUCCESS) {
+ int i;
+
+ /* If the primary lookup fails, try to remap the Windows zone
+ ID, according to the remapping table. */
+ for (i=0; ZONE_REMAP[i].winid; i++) {
+ if (uprv_strcmp(winid, ZONE_REMAP[i].winid) == 0) {
+ uprv_strcpy(name, ZONE_REMAP[i].altwinid + 1);
+ if (*(ZONE_REMAP[i].altwinid) == '+' && fWinType != WIN_9X_ME_TYPE) {
+ uprv_strcat(subKeyName, STANDARD_TIME_REGKEY);
+ }
+ return RegOpenKeyEx(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 = RegQueryValueEx(hkey,
+ TZI_REGKEY,
+ NULL,
+ NULL,
+ (LPBYTE)tzi,
+ &cbData);
+
+ }
+
+ RegCloseKey(hkey);
+
+ return result;
+}
+
+U_CAPI UBool U_EXPORT2
+uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length)
+{
+ const char *winid;
+ TZI tzi;
+ LONG result;
+
+ winid = findWindowsZoneID(icuid, length);
+
+ if (winid != NULL) {
+ result = getTZI(winid, &tzi);
+
+ if (result == ERROR_SUCCESS) {
+ zoneInfo->Bias = tzi.bias;
+ zoneInfo->DaylightBias = tzi.daylightBias;
+ zoneInfo->StandardBias = tzi.standardBias;
+ zoneInfo->DaylightDate = tzi.daylightDate;
+ zoneInfo->StandardDate = tzi.standardDate;
+
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+/*
+ This code attempts to detect the Windows time zone, as set in the
+ Windows Date and Time control panel. It attempts to work on
+ multiple flavors of Windows (9x, Me, NT, 2000, XP) 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 one of two keys (depending on
+ the flavor of Windows):
+
+ HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones\
+ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\
+
+ Under this key are several subkeys, one for each time zone. These
+ subkeys are named "Pacific" on Win9x/Me and "Pacific Standard Time"
+ on WinNT/2k/XP. 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, translated to an ICU time zone, or NULL upon failure.
+ */
+U_CAPI const char* U_EXPORT2
+uprv_detectWindowsTimeZone() {
+ LONG result;
+ HKEY hkey;
+ TZI tziKey;
+ TZI tziReg;
+ TIME_ZONE_INFORMATION apiTZI;
+ int firstMatch, lastMatch;
+ int j;
+
+ /* 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));
+
+ /* For each zone that can be identified by Offset+Rules, see if we
+ have a match. Continue scanning after finding a match,
+ recording the index of the first and the last match. We have
+ to do this because some zones are not unique under
+ Offset+Rules. */
+ firstMatch = -1;
+ lastMatch = -1;
+ for (j=0; ZONE_MAP[j].icuid; j++) {
+ result = getTZI(ZONE_MAP[j].winid, &tziReg);
+
+ if (result == ERROR_SUCCESS) {
+ /* Assume that offsets are grouped together, and bail out
+ when we've scanned everything with a matching
+ offset. */
+ if (firstMatch >= 0 && tziKey.bias != tziReg.bias) {
+ break;
+ }
+
+ /* 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) {
+ if (firstMatch < 0) {
+ firstMatch = j;
+ }
+
+ lastMatch = j;
+ }
+ }
+ }
+
+ /* This should never happen; if it does it means our table doesn't
+ match Windows AT ALL, perhaps because this is post-XP? */
+ if (firstMatch < 0) {
+ return NULL;
+ }
+
+ if (firstMatch != lastMatch) {
+ char stdName[32];
+ DWORD stdNameSize;
+ char stdRegName[64];
+ DWORD stdRegNameSize;
+
+ /* Offset+Rules lookup yielded >= 2 matches. Try to match the
+ localized display name. Get the name from the registry
+ (not the API). This avoids conversion issues. Use the
+ standard name, since Windows modifies the daylight name to
+ match the standard name if there is no DST. */
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
+ CURRENT_ZONE_REGKEY,
+ 0,
+ KEY_QUERY_VALUE,
+ &hkey) == ERROR_SUCCESS)
+ {
+ stdNameSize = sizeof(stdName);
+ result = RegQueryValueEx(hkey,
+ (LPTSTR)STANDARD_NAME_REGKEY,
+ NULL,
+ NULL,
+ (LPBYTE)stdName,
+ &stdNameSize);
+ RegCloseKey(hkey);
+
+ /*
+ * Scan through the Windows time zone data in the registry
+ * again (just the range of zones with matching TZIs) and
+ * look for a standard display name match.
+ */
+ for (j = firstMatch; j <= lastMatch; j += 1) {
+ stdRegNameSize = sizeof(stdRegName);
+ result = openTZRegKey(&hkey, ZONE_MAP[j].winid);
+
+ if (result == ERROR_SUCCESS) {
+ result = RegQueryValueEx(hkey,
+ (LPTSTR)STD_REGKEY,
+ NULL,
+ NULL,
+ (LPBYTE)stdRegName,
+ &stdRegNameSize);
+ }
+
+ RegCloseKey(hkey);
+
+ if (result == ERROR_SUCCESS &&
+ stdRegNameSize == stdNameSize &&
+ uprv_memcmp(stdName, stdRegName, stdNameSize) == 0)
+ {
+ firstMatch = j; /* record the match */
+ break;
+ }
+ }
+ } else {
+ RegCloseKey(hkey); /* should never get here */
+ }
+ }
+
+ return ZONE_MAP[firstMatch].icuid;
+}
+
+#endif /* #ifdef U_WINDOWS */
diff --git a/Build/source/libs/icu-xetex/common/wintz.h b/Build/source/libs/icu-xetex/common/wintz.h
new file mode 100644
index 00000000000..b8af862f38b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/common/wintz.h
@@ -0,0 +1,37 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINTZ.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINTZ
+#define __WINTZ
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+/**
+ * \file
+ * \brief C API: Utilities for dealing w/ Windows time zones.
+ */
+
+U_CDECL_BEGIN
+/* Forward declarations for Windows types... */
+typedef struct _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION;
+U_CDECL_END
+
+U_CAPI UBool U_EXPORT2
+uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length);
+
+U_CAPI const char* U_EXPORT2
+uprv_detectWindowsTimeZone();
+
+#endif /* #ifdef U_WINDOWS */
+
+#endif /* __WINTZ */
diff --git a/Build/source/libs/icu-xetex/config.guess b/Build/source/libs/icu-xetex/config.guess
index 6cc26cd3df1..7924ac077df 100644
--- a/Build/source/libs/icu-xetex/config.guess
+++ b/Build/source/libs/icu-xetex/config.guess
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2007-01-15'
+timestamp='2006-06-06'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -161,7 +161,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
- sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
@@ -212,7 +211,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
exit ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
@@ -781,7 +780,7 @@ EOF
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
- *:MINGW*:*)
+ i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
@@ -791,10 +790,10 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[3456]*)
+ x86:Interix*:[345]*)
echo i586-pc-interix${UNAME_RELEASE}
exit ;;
- EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*)
+ EM64T:Interix*:[345]*)
echo x86_64-unknown-interix${UNAME_RELEASE}
exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
@@ -951,9 +950,6 @@ EOF
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit ;;
- xtensa:Linux:*:*)
- echo xtensa-unknown-linux-gnu
- exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@@ -1212,15 +1208,6 @@ EOF
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
- SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
- SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
diff --git a/Build/source/libs/icu-xetex/config.sub b/Build/source/libs/icu-xetex/config.sub
index 5defff65a6e..70584b007e2 100644
--- a/Build/source/libs/icu-xetex/config.sub
+++ b/Build/source/libs/icu-xetex/config.sub
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2007-01-18'
+timestamp='2006-06-06'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -245,12 +245,12 @@ case $basic_machine in
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
- | fido | fr30 | frv \
+ | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep \
+ | maxq | mb | microblaze | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -276,7 +276,6 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | score \
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
@@ -285,7 +284,7 @@ case $basic_machine in
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
@@ -324,7 +323,7 @@ case $basic_machine in
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
@@ -368,7 +367,7 @@ case $basic_machine in
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
| xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
@@ -910,10 +909,6 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
- ;;
sei)
basic_machine=mips-sei
os=-seiux
@@ -925,9 +920,6 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
- sh5el)
- basic_machine=sh5le-unknown
- ;;
sh64)
basic_machine=sh64-unknown
;;
@@ -1222,7 +1214,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
+ | -skyos* | -haiku* | -rdos*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1374,9 +1366,6 @@ else
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
- os=-elf
- ;;
spu-*)
os=-elf
;;
@@ -1417,9 +1406,6 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
- mep-*)
- os=-elf
- ;;
mips*-cisco)
os=-elf
;;
diff --git a/Build/source/libs/icu-xetex/config/Makefile.inc.in b/Build/source/libs/icu-xetex/config/Makefile.inc.in
index 52e175cd70a..172ff20e6e2 100644
--- a/Build/source/libs/icu-xetex/config/Makefile.inc.in
+++ b/Build/source/libs/icu-xetex/config/Makefile.inc.in
@@ -79,6 +79,18 @@ endif
#SH# ;;
#SH#esac
+# Name flexibility for the library naming scheme. Any modifications should
+# be made in the mh- file for the specific platform.
+DATA_STUBNAME = data
+COMMON_STUBNAME = uc
+I18N_STUBNAME = i18n
+LAYOUT_STUBNAME = le
+LAYOUTEX_STUBNAME = lx
+IO_STUBNAME = io
+TOOLUTIL_STUBNAME = tu
+CTESTFW_STUBNAME = test
+
+
### To link your application with ICU:
# 1. use LDFLAGS, CFLAGS, etc from above
@@ -89,8 +101,8 @@ endif
# - $(ICULIBS_ICUIO) - ICU stdio equivalent library
ICULIBS_COMMON = -l$(ICUPREFIX)uc$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_DATA = -l$(ICUPREFIX)data$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
-ICULIBS_I18N = -l$(ICUPREFIX)i18n$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
+ICULIBS_DATA = -l$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
+ICULIBS_I18N = -l$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
ICULIBS_TOOLUTIL = -l$(ICUPREFIX)tu$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
ICULIBS_CTESTFW = -l$(ICUPREFIX)ctestfw$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
ICULIBS_ICUIO = -l$(ICUPREFIX)io$(ICULIBSUFFIX)$(ICULIBSUFFIX_VERSION)
diff --git a/Build/source/libs/icu-xetex/config/icu-config-bottom b/Build/source/libs/icu-xetex/config/icu-config-bottom
index 2f88eab0560..fa1dcd54b95 100644
--- a/Build/source/libs/icu-xetex/config/icu-config-bottom
+++ b/Build/source/libs/icu-xetex/config/icu-config-bottom
@@ -1,6 +1,6 @@
## -*-sh-*-
## BEGIN of icu-config-bottom.
-## Copyright (c) 2002-2004, International Business Machines Corporation and
+## Copyright (c) 2002-2005, International Business Machines Corporation and
## others. All Rights Reserved.
ICUUC_FILE=${libdir}/${ICULIBS_COMMON_LIB_NAME}
@@ -14,7 +14,7 @@ fi
## The actual code of icu-config goes here.
-ME=`basename $0`
+ME=`basename "$0"`
allflags()
{
diff --git a/Build/source/libs/icu-xetex/config/make2sh.sed b/Build/source/libs/icu-xetex/config/make2sh.sed
index 92a9a83380f..b9cd370b257 100644
--- a/Build/source/libs/icu-xetex/config/make2sh.sed
+++ b/Build/source/libs/icu-xetex/config/make2sh.sed
@@ -1,6 +1,7 @@
-# Copyright (C) 1999-2004, International Business Machines Corporation and others. All Rights Reserved.
+# Copyright (C) 1999-2006, International Business Machines Corporation and others. All Rights Reserved.
s%^\([a-zA-Z\._-]*\)[ ]*+=%\1=$(\1) %
s%^[A-Z]*_SO_TARG*%## &%
+s%^SHARED_OBJECT.*%## &%
s%^LD_SONAME.*%## &%
s%$(\([^\)]*\))%${\1}%g
s%^ %#M# %
diff --git a/Build/source/libs/icu-xetex/config/mh-aix b/Build/source/libs/icu-xetex/config/mh-aix
index c09e2082b62..755a8a530ca 100644
--- a/Build/source/libs/icu-xetex/config/mh-aix
+++ b/Build/source/libs/icu-xetex/config/mh-aix
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Aix-specific setup (for xlC)
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
##
## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability).
@@ -109,7 +109,6 @@ STATIC_O = o
## BIR - bind with internal references [so app data and icu data doesn't collide]
BIR_LDFLAGS= -E$(NAME).map -bnoexpall
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
BIR_DEPS= $(NAME).map
diff --git a/Build/source/libs/icu-xetex/config/mh-aix-gcc b/Build/source/libs/icu-xetex/config/mh-aix-gcc
index 54274da27cb..79e68072a05 100644
--- a/Build/source/libs/icu-xetex/config/mh-aix-gcc
+++ b/Build/source/libs/icu-xetex/config/mh-aix-gcc
@@ -1,5 +1,5 @@
## -*-makefile-*-
-## Copyright (c) 2003-2005 IBM, Ken Foskey, and others. All rights reserved.
+## Copyright (c) 2003-2006 IBM, Ken Foskey, and others. All rights reserved.
##
## Aix-specific setup (for gcc)
##
@@ -114,9 +114,6 @@ STATIC_O = o
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-bE:$(NAME).map,-bnoexpall
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS= $(NAME).map
diff --git a/Build/source/libs/icu-xetex/config/mh-aix-va b/Build/source/libs/icu-xetex/config/mh-aix-va
index c39ccee94ad..39faf459a0b 100644
--- a/Build/source/libs/icu-xetex/config/mh-aix-va
+++ b/Build/source/libs/icu-xetex/config/mh-aix-va
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Aix-specific setup (for Visual Age 5+)
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2005, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -43,10 +43,6 @@ LD_RPATH_PRE=
## Environment variable to set a runtime search path
LDLIBRARYPATH_ENVVAR = LIBPATH
-## Override Versioned target for a shared library.
-FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
-MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
-
# The following is for Makefile.inc's use.
ICULIBSUFFIX_VERSION = $(LIB_VERSION_MAJOR)
@@ -61,15 +57,22 @@ LD_SONAME =
GENCCODE_ASSEMBLY=-a xlc
## Shared object suffix
-#SO= so
+SOBJ= so
# without the -brtl option, the library names use .a. AIX is funny that way.
SO= a
## Non-shared intermediate object suffix
STATIC_O = o
+## Override Versioned target for a shared library.
+FINAL_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION).$(SO)
+MIDDLE_SO_TARGET= $(basename $(SO_TARGET))$(SO_TARGET_VERSION_MAJOR).$(SO)
+SHARED_OBJECT = $(notdir $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)))
+
## Build archive from shared object
%.a : %.so
$(AR) $(ARFLAGS) $@ $<
+$(LIBDIR)/%.a : %.so
+ $(AR) $(ARFLAGS) $@ $<
## Build import list from export list
%.e : %.exp
diff --git a/Build/source/libs/icu-xetex/config/mh-alpha-linux-cc b/Build/source/libs/icu-xetex/config/mh-alpha-linux-cc
index 5020add61a8..f05632edbbd 100644
--- a/Build/source/libs/icu-xetex/config/mh-alpha-linux-cc
+++ b/Build/source/libs/icu-xetex/config/mh-alpha-linux-cc
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Alpha-Linux-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -13,8 +13,8 @@ SHAREDLIBCXXFLAGS = -fPIC
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
# The tests need complete IEEE floating point support
CFLAGS += -ieee
@@ -78,9 +78,6 @@ STATIC_O = ao
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-alpha-linux-gcc b/Build/source/libs/icu-xetex/config/mh-alpha-linux-gcc
index b21331031ee..ee5f9094c04 100644
--- a/Build/source/libs/icu-xetex/config/mh-alpha-linux-gcc
+++ b/Build/source/libs/icu-xetex/config/mh-alpha-linux-gcc
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Linux-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -13,8 +13,8 @@ SHAREDLIBCXXFLAGS = -fPIC
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
# The tests need complete IEEE floating point support
CFLAGS += -mieee
@@ -72,9 +72,6 @@ GENCCODE_ASSEMBLY=-a gcc
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-alpha-osf b/Build/source/libs/icu-xetex/config/mh-alpha-osf
index 5ec4c83c6ac..bf63259130f 100644
--- a/Build/source/libs/icu-xetex/config/mh-alpha-osf
+++ b/Build/source/libs/icu-xetex/config/mh-alpha-osf
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Alpha-OSF-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -13,8 +13,8 @@ SHAREDLIBCXXFLAGS =
SHAREDLIBCPPFLAGS =
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT -pthread
+LIBCPPFLAGS =
# The tests need complete IEEE floating point support
CFLAGS += -ieee
@@ -78,9 +78,6 @@ STATIC_O = ao
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-beos b/Build/source/libs/icu-xetex/config/mh-beos
index b32e2b3b458..0e5691be15e 100644
--- a/Build/source/libs/icu-xetex/config/mh-beos
+++ b/Build/source/libs/icu-xetex/config/mh-beos
@@ -1,6 +1,6 @@
## -*-makefile-*-
## BeOS-specific setup
-## Copyright (c) 2003-2004, International Business Machines Corporation and
+## Copyright (c) 2003-2006, International Business Machines Corporation and
## others. All Rights Reserved.
##
## Original author: Andrew Bachmann
@@ -96,9 +96,6 @@ STATIC_O = ao
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-bsd-gcc b/Build/source/libs/icu-xetex/config/mh-bsd-gcc
index 10e5587060d..8745b115389 100644
--- a/Build/source/libs/icu-xetex/config/mh-bsd-gcc
+++ b/Build/source/libs/icu-xetex/config/mh-bsd-gcc
@@ -1,6 +1,6 @@
## -*-makefile-*-
-## FreeBSD-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## BSD-specific setup (FreeBSD, OpenBSD, NetBSD, *BSD)
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -12,6 +12,10 @@ SHAREDLIBCFLAGS = -fPIC
SHAREDLIBCXXFLAGS = -fPIC
SHAREDLIBCPPFLAGS = -DPIC
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
+
## Compiler switch to embed a runtime search path
LD_RPATH=
LD_RPATH_PRE= -Wl,-rpath,
diff --git a/Build/source/libs/icu-xetex/config/mh-cygwin b/Build/source/libs/icu-xetex/config/mh-cygwin
index 202492c925f..aa58e0e9611 100644
--- a/Build/source/libs/icu-xetex/config/mh-cygwin
+++ b/Build/source/libs/icu-xetex/config/mh-cygwin
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Cygwin-specific setup
-## Copyright (c) 2001-2005, International Business Machines Corporation and
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -22,8 +22,8 @@ SHAREDLIBCXXFLAGS =
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
@@ -98,9 +98,6 @@ INSTALL-L=$(INSTALL_PROGRAM)
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
@@ -110,5 +107,24 @@ LDLIBRARYPATH_ENVVAR = PATH
# The type of assembly to write for generating an object file
GENCCODE_ASSEMBLY=-a gcc-cygwin
+# put this here again so it gets cyguc...
+
+#SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
+
+# for icu-config
+
+#SH### copied from Makefile.inc
+#SH#ICULIBS_COMMON="-l${LIBICU}uc${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_DATA="-l${LIBICU}${DATA_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_I18N="-l${LIBICU}${I18N_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_TOOLUTIL="-l${LIBICU}tu${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_CTESTFW="-l${LIBICU}ctestfw${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_ICUIO="-l${LIBICU}io${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_OBSOLETE="-l${LIBICU}obsolete${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUT="-l${LIBICU}le${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_LAYOUTEX="-l${LIBICU}lx${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}"
+#SH#ICULIBS_BASE="${LIBS} -L${libdir}"
+#SH#ICULIBS="${ICULIBS_BASE} ${ICULIBS_I18N} ${ICULIBS_COMMON} ${ICULIBS_DATA}"
+
## End Cygwin-specific setup
diff --git a/Build/source/libs/icu-xetex/config/mh-cygwin-msvc b/Build/source/libs/icu-xetex/config/mh-cygwin-msvc
index 6b978a4fdb3..9393a53ac3a 100644
--- a/Build/source/libs/icu-xetex/config/mh-cygwin-msvc
+++ b/Build/source/libs/icu-xetex/config/mh-cygwin-msvc
@@ -1,5 +1,5 @@
-## Cygwin-specific setup
-## Copyright (c) 2001-2005, International Business Machines Corporation and
+## Cygwin with Microsoft Visual C++ compiler specific setup
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
# We install sbin tools into the same bin directory because
@@ -16,7 +16,7 @@ GEN_DEPS.cc= :
## Flags to create/use a static library
ifneq ($(ENABLE_SHARED),YES)
## Make sure that the static libraries can be built and used
-CPPFLAGS += -DU_STATIC_IMPLEMENTATION
+CPPFLAGS += -DU_STATIC_IMPLEMENTATION#M#
else
## Make sure that the static libraries can be built
STATICCPPFLAGS = -DU_STATIC_IMPLEMENTATION
@@ -30,29 +30,16 @@ SHAREDLIBCPPFLAGS =
## Additional flags when building libraries and with threads
LIBCPPFLAGS =
-ifeq ($(ENABLE_DEBUG),1)
-# /MDd means 'compiles and links a debugable multithreaded program with DLL'
-THREADSCFLAGS += /MDd
-THREADSCXXFLAGS += /MDd
-# The debug flags are defined here because configure can't handle them.
-CFLAGS+=/Zi
-CXXFLAGS+=/Zi
-LDFLAGS+=/DEBUG
-else
-# /MD means 'compiles and links a multithreaded program with DLL'
-THREADSCFLAGS += /MD
-THREADSCXXFLAGS += /MD
-endif
-
ifeq ($(ENABLE_RELEASE),1)
# Make sure that assertions are disabled
CPPFLAGS+=-DU_RELEASE=1
endif
# /GF pools strings and places them into read-only memory
-# /GX enables exception handling
-CFLAGS += /GF
-CXXFLAGS += /GF /GX
+# /EHsc enables exception handling
+# /Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility.
+CFLAGS+=/GF
+CXXFLAGS+=/GF /EHsc /Zc:wchar_t
CPPFLAGS+=/nologo
DEFS+=-DWIN32
LDFLAGS+=/nologo
diff --git a/Build/source/libs/icu-xetex/config/mh-darwin b/Build/source/libs/icu-xetex/config/mh-darwin
index e536afc8686..81b80225ade 100644
--- a/Build/source/libs/icu-xetex/config/mh-darwin
+++ b/Build/source/libs/icu-xetex/config/mh-darwin
@@ -1,7 +1,7 @@
## -*-makefile-*-
## Darwin-specific setup (Darwin is the Mac OS X developer preview, successor
## to Rhapsody, aka Mac OS X Server)
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006 International Business Machines Corporation and
## others. All Rights Reserved.
## Flags for position independent code
@@ -58,7 +58,7 @@ STATIC_O = ao
@echo "generating dependency information for $<"
@$(GEN_DEPS.c) $< > /dev/null
@mv $@ $@~
- @echo -n "$@ " > $@
+ @printf "%s" "$@ " > $@
@cat < $@~ >> $@
@-rm $@~
@@ -66,7 +66,7 @@ STATIC_O = ao
@echo "generating dependency information for $<"
@$(GEN_DEPS.cc) $< >/dev/null
@mv $@ $@~
- @echo -n "$@ " > $@
+ @printf "%s" "$@ " > $@
@cat < $@~ >> $@
@-rm $@~
diff --git a/Build/source/libs/icu-xetex/config/mh-hpux-acc b/Build/source/libs/icu-xetex/config/mh-hpux-acc
index f4c3e02c9bb..a29616022a2 100644
--- a/Build/source/libs/icu-xetex/config/mh-hpux-acc
+++ b/Build/source/libs/icu-xetex/config/mh-hpux-acc
@@ -1,6 +1,6 @@
## -*-makefile-*-
## HP/UX-specific setup using aCC
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -34,7 +34,7 @@ COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
## Common 'default' path to ensure the sanity of users. Search the current
## directory, at least.
-LD_DEFAULTPATH= -Wl,+b,.:'$$'ORIGIN/
+LD_DEFAULTPATH= -Wl,+b,'$$'ORIGIN/
# Use SHLIB_PATH and LD_LIBRARY_PATH to locate shared libraries
LDFLAGS += -Wl,+s $(LD_DEFAULTPATH)
diff --git a/Build/source/libs/icu-xetex/config/mh-irix b/Build/source/libs/icu-xetex/config/mh-irix
index dff288c931d..59d4aaf680e 100644
--- a/Build/source/libs/icu-xetex/config/mh-irix
+++ b/Build/source/libs/icu-xetex/config/mh-irix
@@ -1,6 +1,6 @@
## -*-makefile-*-
## IRIX-specific setup (for CC)
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Flags for position independent code
@@ -24,8 +24,8 @@ SHLIB.c= $(CC) -shared $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)
SHLIB.cc= $(CXX) -shared $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS)
## Additional flags when building libraries with thread safety
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT -D_PTHREADS
+LIBCPPFLAGS =
## Compiler switch to embed a runtime search path
LD_RPATH=
diff --git a/Build/source/libs/icu-xetex/config/mh-linux b/Build/source/libs/icu-xetex/config/mh-linux
index 8f999674df0..056789eb235 100644
--- a/Build/source/libs/icu-xetex/config/mh-linux
+++ b/Build/source/libs/icu-xetex/config/mh-linux
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Linux-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -13,8 +13,8 @@ SHAREDLIBCXXFLAGS = -fPIC
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
## Compiler switch to embed a runtime search path
LD_RPATH=
@@ -71,9 +71,6 @@ STATIC_O = ao
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-linux-va b/Build/source/libs/icu-xetex/config/mh-linux-va
index 6d954c276d1..5d0730cbfc6 100644
--- a/Build/source/libs/icu-xetex/config/mh-linux-va
+++ b/Build/source/libs/icu-xetex/config/mh-linux-va
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Linux-specific setup for Visual Age
-## Copyright (c) 2003-2004, International Business Machines Corporation and
+## Copyright (c) 2003-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Commands to generate dependency files
@@ -20,14 +20,18 @@ SHAREDLIBCXXFLAGS = -qpic=large
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
THREADSCPPFLAGS = -D_REENTRANT
+LIBCPPFLAGS =
## Compiler switch to embed a runtime search path
LD_RPATH= -I
#LD_RPATH_PRE = -Wl,-rpath,
-#LD_SONAME =
+## Compiler switch to embed a library name
+# The initial tab in the next line is to prevent icu-config from reading it.
+ LD_SONAME = -Wl,-soname -Wl,$(notdir $(MIDDLE_SO_TARGET))
+#SH# # We can't depend on MIDDLE_SO_TARGET being set.
+#SH# LD_SONAME=
## The type of assembly needed when pkgdata is used for generating shared libraries.
GENCCODE_ASSEMBLY=-a gcc
diff --git a/Build/source/libs/icu-xetex/config/mh-mingw b/Build/source/libs/icu-xetex/config/mh-mingw
index 4f37994f292..18937e0e48d 100644
--- a/Build/source/libs/icu-xetex/config/mh-mingw
+++ b/Build/source/libs/icu-xetex/config/mh-mingw
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Cygwin/MinGW specific setup
-## Copyright (c) 2001-2005, International Business Machines Corporation and
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
# TODO: Finish the rest of this port. This platform port is incomplete.
@@ -29,8 +29,9 @@ SHAREDLIBCXXFLAGS =
SHAREDLIBCPPFLAGS = -DPIC
## Additional flags when building libraries and with threads
-LIBCPPFLAGS = -D_REENTRANT
-THREADSCPPFLAGS = -D_REENTRANT
+THREADSCFLAGS = -mthreads
+THREADSCXXFLAGS = -mthreads
+LIBCPPFLAGS =
# Commands to link. Link with C++ in case static libraries are used.
LINK.c= $(CXX) $(CXXFLAGS) $(LDFLAGS)
diff --git a/Build/source/libs/icu-xetex/config/mh-os390 b/Build/source/libs/icu-xetex/config/mh-os390
index 98ae0848f53..201e22e79da 100644
--- a/Build/source/libs/icu-xetex/config/mh-os390
+++ b/Build/source/libs/icu-xetex/config/mh-os390
@@ -1,6 +1,6 @@
## -*-makefile-*-
-## 390-specific setup
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## os/390, z/OS specific setup
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
###################################################################
@@ -30,43 +30,53 @@
# #
###################################################################
+# TODO: Fix this configuration so that icu-config will work!
+# If statements don't work well when icu-config is generated.
ifeq (${IEEE390},)
-IEEE390=1
+IEEE390=1#M#
endif
ifeq (${IEEE390}, 1)
-ICU_IEEE = -Wc,"float(ieee)" -DIEEE_754=1
+ICU_IEEE = -Wc,'float(ieee)'
else
-ICU_IEEE = -DIEEE_754=0
+ICU_IEEE = -DIEEE_754=0#M#
endif
+# For a dynamically called DLL module to share access to the POSIX external
+# variables, with its caller, the DLL module must define these _SHR_* macros.
+SHAREDLIBCPPFLAGS = -D_SHR_TZNAME -D_SHR_TIMEZONE
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_OPEN_THREADS
+
+# -Wc,expo is used to export all functions
+SHAREDLIBCFLAGS = -Wc,expo
+SHAREDLIBCXXFLAGS = -Wc,expo
+
# TODO: Consider using -Wc,roc,ros for making the data and strings readonly
# -Wc,"ros" seems to work, but not the "roc"
-CFLAGS += -Wc,"langlvl(extended),spill(2000)" -Wc,"ros" $(ICU_BUILD_OPTIONS) $(ICU_IEEE) -Wc,dll,expo
-CXXFLAGS += -Wc,"langlvl(extended),spill(2000)" -Wc,"ros" $(ICU_BUILD_OPTIONS) $(ICU_IEEE) -Wc,dll,expo
-DEFS += -D_OPEN_THREADS -D_XOPEN_SOURCE_EXTENDED -D_MSE_PROTOS -D_SHR_TZNAME -D_SHR_TIMEZONE -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\"
+# -+ means accept any file extension as a C++ file. By default only .C is accepted.
+CFLAGS += -Wc,'langlvl(extended),spill(2000),ros,dll' $(ICU_IEEE)
+CXXFLAGS += -Wc,'langlvl(extended),spill(2000),ros,dll' $(ICU_IEEE) -+
+DEFS += -D_XOPEN_SOURCE_EXTENDED -D_MSE_PROTOS
ARFLAGS = -cr
-# TODO: Fix this configuration so that icu-config will work!
-# This means we shouldn't be using so many of these special case defines.
ifeq (${OS390_XPLINK}, 1)
+#SH# if [ "x$OS390_XPLINK" = "x1" ]; then
# Note: The following options require the PTF for PQ69418 on z/OS 1.2
# and later.
# These lines must be the last options specified.
-ICU_XPLINK_C = -Wc,"xplink(backchain,storeargs)" -Wc,"GOFF,NOCSECT,RENT,SSCOMM" -Wc,"inline(auto,noreport,500,2500)"
-ICU_XPLINK_CPP = -Wc,"xplink(backchain,storeargs)" -Wc,"GOFF,NOCSECT,NOTEMPINC" -Wc,"inline(auto,noreport,300,2500)"
+ICU_XPLINK_C = -Wc,'xplink(backchain,storeargs)' -Wc,'GOFF,NOCSECT,RENT'
+ICU_XPLINK_CPP = -Wc,'xplink(backchain,storeargs)' -Wc,'GOFF,NOCSECT,NOTEMPINC'
ICU_XPLINK_L = -Wl,dll,xplink -Wl,EDIT=NO
+#SH# fi
endif
## OS390BATCH
ifeq (${OS390BATCH},1)
-DEFS += -DOS390BATCH
+DEFS += -DOS390BATCH#M#
endif
-# Uncomment this line or do "gmake OS390_STUBDATA=1" to enable dual common library support
-#OS390_STUBDATA=1
-
-
## Commands to generate dependency files
GEN_DEPS.c= makedep
GEN_DEPS.cc= makedep
@@ -75,7 +85,7 @@ GEN_DEPS.cc= makedep
# _CXX_STEPS="-1" is a prelink step when compiling C and C++, and
# it's only needed for long function names
COMPILE.c = $(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(ICU_XPLINK_C) -c
-COMPILE.cc = _CXX_CXXSUFFIX="cpp" $(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(ICU_XPLINK_CPP) -c
+COMPILE.cc = $(COMPILE_LINK_ENVVAR) $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(ICU_XPLINK_CPP) -c
# Commands to link
LINK.c= $(COMPILE_LINK_ENVVAR) $(CC) $(CFLAGS) -Wl,dll $(LDFLAGS) $(ICU_XPLINK_L)
@@ -108,8 +118,8 @@ STATIC_O = o
ifeq ($(OS390_STUBDATA),1)
## Suffix of the subset data library for dual common library support
-STUB_SUFFIX=_stub
-DEFS += -DOS390_STUBDATA
+STUB_SUFFIX=_stub#M#
+DEFS += -DOS390_STUBDATA -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\"#M#
endif
ifeq ($(OS390BATCH),1)
@@ -119,6 +129,7 @@ BATCH_LIBICUDT= "//'${LOADEXP}(IXMI${SO_TARGET_VERSION_MAJOR}D1)'"
else
BATCH_STUB_TARGET= "//'${LOADMOD}(IXMI${SO_TARGET_VERSION_MAJOR}DA)'"
BATCH_LIBICUDT= "//'${LOADEXP}(IXMI${SO_TARGET_VERSION_MAJOR}DA)'"
+PKGDATA_DEFS += -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\"
endif
BATCH_COMMON_TARGET="//'${LOADMOD}(IXMI${SO_TARGET_VERSION_MAJOR}UC)'"
@@ -145,15 +156,18 @@ LIBCTESTFW= $(top_builddir)/tools/ctestfw/$(LIBICU)test$(ICULIBSUFFIX)$(SO_TARGE
LIBICUTOOLUTIL= $(top_builddir)/tools/toolutil/$(LIBICU)tu$(ICULIBSUFFIX)$(SO_TARGET_VERSION).x
ifneq (${ICUDATA_CHAR},e)
+#SH# if [ "$ICUDATA_CHAR" != "e" ]; then
## We're in ASCII mode.
-CFLAGS += -Wc,"ascii"
-CXXFLAGS += -Wc,"ascii"
+CFLAGS += -Wc,'ascii'
+CXXFLAGS += -Wc,'ascii'
SO = so
else
+#SH# else
## We're in EBCDIC mode.
## Shared object suffix
SO = dll
endif
+#SH# fi
## Special 390 rules
diff --git a/Build/source/libs/icu-xetex/config/mh-ptx b/Build/source/libs/icu-xetex/config/mh-ptx
deleted file mode 100644
index 0cba7dd64a9..00000000000
--- a/Build/source/libs/icu-xetex/config/mh-ptx
+++ /dev/null
@@ -1,65 +0,0 @@
-## -*-makefile-*-
-## PTX-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
-## others. All Rights Reserved.
-
-## Flags for position independent code
-SHAREDLIBCFLAGS = -KPIC
-SHAREDLIBCXXFLAGS = -KPIC
-SHAREDLIBCPPFLAGS = -DPIC
-
-## Commands to generate dependency files
-GEN_DEPS.c= $(CC) -Kthread -DPTX -c $(DEFS) $(CPPFLAGS)
-GEN_DEPS.cc= $(CXX) -M -DPTX $(DEFS) $(CPPFLAGS)
-
-## Commands to compile
-COMPILE.c= $(CC) -Kthread -DPTX $(DEFS) $(CPPFLAGS) $(CFLAGS) -c
-COMPILE.cc= $(CXX) -Kthread -DPTX $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c
-
-## Commands to link
-#LINK.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS)
-LINK.c= $(CXX) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -lm -lgen
-LINK.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -lm -lgen
-
-## Commands to make a shared library
-SHLIB.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DPTX -G
-SHLIB.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -DPTX -G
-
-## Compiler switch to embed a runtime search path
-LD_RPATH= -R
-LD_RPATH_PRE=
-
-## Versioned target for a shared library.
-FINAL_SO_TARGET = $(SO_TARGET)
-MIDDLE_SO_TARGET =
-
-## Shared object suffix
-SO= so
-## Non-shared intermediate object suffix
-STATIC_O = ao
-
-## Compilation rules
-%.$(STATIC_O): $(srcdir)/%.c
- $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $<
-%.o: $(srcdir)/%.c
- $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $<
-
-%.$(STATIC_O): $(srcdir)/%.cpp
- $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $<
-%.o: $(srcdir)/%.cpp
- $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
-
-## Dependency rules
-%.d : $(srcdir)/%.c
- @echo "generating dependency information for $<"
- @$(SHELL) -ec '$(GEN_DEPS.c) $< \
- | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
- [ -s $@ ] || rm -f $@'
-
-%.d : $(srcdir)/%.cpp
- @echo "generating dependency information for $<"
- @$(SHELL) -ec '$(GEN_DEPS.cc) -o $@ $< \
- | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
- [ -s $@ ] || rm -f $@'
-
-## End Ptx-specific setup
diff --git a/Build/source/libs/icu-xetex/config/mh-qnx b/Build/source/libs/icu-xetex/config/mh-qnx
index 213f9d25b66..3d2b350d8ef 100644
--- a/Build/source/libs/icu-xetex/config/mh-qnx
+++ b/Build/source/libs/icu-xetex/config/mh-qnx
@@ -1,6 +1,6 @@
## -*-makefile-*-
## QNX-specific setup
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
##
## Provided By: Chris McKillop <cdm@qnx.com>
@@ -85,9 +85,6 @@ FINAL_SO_TARGET = $(MIDDLE_SO_TARGET)
# LDflags that pkgdata will use
BIR_LDFLAGS= -Wl,-Bsymbolic
-# CPPflags for genccode/gencmn
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
-
# Dependencies [i.e. map files] for the final library
BIR_DEPS=
diff --git a/Build/source/libs/icu-xetex/config/mh-solaris b/Build/source/libs/icu-xetex/config/mh-solaris
index 3ae7f48baa0..25bd8214327 100644
--- a/Build/source/libs/icu-xetex/config/mh-solaris
+++ b/Build/source/libs/icu-xetex/config/mh-solaris
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Solaris-specific setup using Sun's compilers
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Flags for position independent code
@@ -70,7 +70,6 @@ STATIC_O = o
#
ifeq (strip $(GENCCODE_ASSEMBLY),)
BIR_LDFLAGS= -Wl,-M,$(NAME).map -Wl,-B,symbolic -Wl,-B,eliminate
-BIR_CPPFLAGS= -DU_HAVE_BIND_INTERNAL_REFERENCES
BIR_DEPS= $(NAME).map
endif
diff --git a/Build/source/libs/icu-xetex/config/mh-solaris-gcc b/Build/source/libs/icu-xetex/config/mh-solaris-gcc
index 726efb2e639..e59e5c58be7 100644
--- a/Build/source/libs/icu-xetex/config/mh-solaris-gcc
+++ b/Build/source/libs/icu-xetex/config/mh-solaris-gcc
@@ -1,6 +1,6 @@
## -*-makefile-*-
## Solaris-specific setup using gcc
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Flags for position independent code
@@ -12,6 +12,12 @@ SHAREDLIBCPPFLAGS = -DPIC
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
+## These are the library specific LDFLAGS
+LDFLAGSICUDT=-nodefaultlibs -nostdlib
+
+## Additional flags when building libraries and with threads
+THREADSCPPFLAGS = -D_REENTRANT
+
## Compiler switch to embed a runtime search path
LD_RPATH= -R
LD_RPATH_PRE=
diff --git a/Build/source/libs/icu-xetex/configure b/Build/source/libs/icu-xetex/configure
index 43ce71b5fee..058d53a64b1 100755
--- a/Build/source/libs/icu-xetex/configure
+++ b/Build/source/libs/icu-xetex/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION LIB_VERSION LIB_VERSION_MAJOR UNICODE_VERSION CPPFLAGS CC CFLAGS LDFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA STRIP U_MAKE DOXYGEN build build_cpu build_vendor build_os host host_cpu host_vendor host_os ARFLAGS COMPILE_LINK_ENVVAR LIB_M ENABLE_SHARED ENABLE_STATIC ENABLE_DEBUG ENABLE_RELEASE U_DEFAULT_SHOW_DRAFT RANLIB ac_ct_RANLIB AR U_DISABLE_RENAMING U_ENABLE_TRACING ENABLE_RPATH U_INLINE THREADS_TRUE ICU_USE_THREADS HAVE_MMAP GENCCODE_ASSEMBLY CPP EGREP U_HAVE_INTTYPES_H CXXCPP U_IOSTREAM_SOURCE U_IS_BIG_ENDIAN U_HAVE_NL_LANGINFO U_HAVE_NL_LANGINFO_CODESET U_NL_LANGINFO_CODESET U_HAVE_NAMESPACE U_OVERRIDE_CXX_ALLOCATION U_HAVE_PLACEMENT_NEW U_HAVE_POPEN U_HAVE_TZSET U_TZSET U_HAVE_TZNAME U_TZNAME U_HAVE_TIMEZONE U_TIMEZONE HAVE_INT8_T HAVE_UINT8_T HAVE_INT16_T HAVE_UINT16_T HAVE_INT32_T HAVE_UINT32_T HAVE_INT64_T HAVE_UINT64_T U_HAVE_WCHAR_H U_HAVE_WCSCPY U_SIZEOF_WCHAR_T EXTRAS_TRUE ICUIO_TRUE LAYOUT_TRUE thesysconfdir thedatadir thelibdir pkgicudatadir thepkgicudatadir DATA_PACKAGING_CPPFLAGS DATA_PACKAGING_MODE ICULIBSUFFIX U_HAVE_LIB_SUFFIX ICULIBSUFFIXCNAME TESTS_TRUE SAMPLES_TRUE ICUDATA_CHAR platform platform_make_fragment_name platform_make_fragment ld_rpath_suf AIX_SHLIB LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PACKAGE VERSION LIB_VERSION LIB_VERSION_MAJOR UNICODE_VERSION build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPPFLAGS CC CFLAGS LDFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA U_MAKE DOXYGEN ARFLAGS COMPILE_LINK_ENVVAR LIB_M ENABLE_SHARED ENABLE_STATIC ENABLE_DEBUG ENABLE_RELEASE U_DEFAULT_SHOW_DRAFT RANLIB ac_ct_RANLIB AR U_DISABLE_RENAMING U_ENABLE_TRACING ENABLE_RPATH U_INLINE THREADS_TRUE ICU_USE_THREADS HAVE_MMAP GENCCODE_ASSEMBLY CPP EGREP U_HAVE_INTTYPES_H U_IOSTREAM_SOURCE U_IS_BIG_ENDIAN U_HAVE_NL_LANGINFO U_HAVE_NL_LANGINFO_CODESET U_NL_LANGINFO_CODESET U_HAVE_NAMESPACE U_OVERRIDE_CXX_ALLOCATION U_HAVE_PLACEMENT_NEW U_HAVE_POPEN U_HAVE_TZSET U_TZSET U_HAVE_TZNAME U_TZNAME U_HAVE_TIMEZONE U_TIMEZONE HAVE_INT8_T HAVE_UINT8_T HAVE_INT16_T HAVE_UINT16_T HAVE_INT32_T HAVE_UINT32_T HAVE_INT64_T HAVE_UINT64_T U_HAVE_WCHAR_H U_HAVE_WCSCPY U_SIZEOF_WCHAR_T EXTRAS_TRUE ICUIO_TRUE LAYOUT_TRUE thedatadir pkgicudatadir thepkgicudatadir DATA_PACKAGING_MODE ICULIBSUFFIX U_HAVE_LIB_SUFFIX ICULIBSUFFIXCNAME TESTS_TRUE SAMPLES_TRUE ICUDATA_CHAR platform platform_make_fragment_name platform_make_fragment ld_rpath_suf AIX_SHLIB LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -778,10 +778,6 @@ ac_env_CPP_set=${CPP+set}
ac_env_CPP_value=$CPP
ac_cv_env_CPP_set=${CPP+set}
ac_cv_env_CPP_value=$CPP
-ac_env_CXXCPP_set=${CXXCPP+set}
-ac_env_CXXCPP_value=$CXXCPP
-ac_cv_env_CXXCPP_set=${CXXCPP+set}
-ac_cv_env_CXXCPP_value=$CXXCPP
#
# Report the --help message.
@@ -870,7 +866,6 @@ Optional Features:
--enable-extras build ICU extras default=yes
--enable-icuio build ICU's icuio library default=yes
--enable-layout build ICU's layout library default=yes
-
--enable-tests build ICU tests default=yes
--enable-samples build ICU samples default=yes
Additionally, the variable FORCE_LIBS may be set before calling configure. If set, it will REPLACE any automatic list of libraries.
@@ -892,7 +887,6 @@ Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CPP C preprocessor
- CXXCPP C++ preprocessor
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -1361,12 +1355,93 @@ LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
echo "$as_me:$LINENO: result: release $VERSION, library $LIB_VERSION" >&5
echo "${ECHO_T}release $VERSION, library $LIB_VERSION" >&6
-UNICODE_VERSION="4.1"
+UNICODE_VERSION="5.0"
+
+
+ac_aux_dir=
+for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+ if test -f $ac_dir/install-sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f $ac_dir/install.sh; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f $ac_dir/shtool; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+ { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+ { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+ ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+ { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+ { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+ ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+ { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+ { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
-#AC_SUBST(CINTLTST_CPPFLAGS)
+_CXX_CXXSUFFIX=cc
+export _CXX_CXXSUFFIX
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2652,31 +2727,6 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- elif test -f $ac_dir/shtool; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
- { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
# Find a good install program. We prefer a C program (faster),
# so one script is as good as another. But avoid the broken or
# incompatible versions:
@@ -2766,42 +2816,7 @@ if test "$srcdir" = "."; then
fi
#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
-# Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # 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_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP="true"
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
+#AC_CHECK_PROG(STRIP, strip, strip, true)
for ac_prog in gmake gnumake
do
@@ -2891,60 +2906,18 @@ echo "${ECHO_T}no" >&6
fi
-# Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
- { (exit 1); exit 1; }; }
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
-if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
- ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
-build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
-if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
- ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+case "${host}" in
+ *-*-cygwin*|*-*-mingw*)
+ if test "$GCC" != yes && test -n "`link --version 2>&1 | grep 'GNU coreutils'`"; then
+ { { echo "$as_me:$LINENO: error: link.exe is not a valid linker. Your PATH is incorrect.
+ Please follow the directions in ICU's readme." >&5
+echo "$as_me: error: link.exe is not a valid linker. Your PATH is incorrect.
+ Please follow the directions in ICU's readme." >&2;}
{ (exit 1); exit 1; }; }
-
-fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
-host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-
+ fi;;
+ *);;
+esac
echo "$as_me:$LINENO: checking checking for executable suffix" >&5
echo $ECHO_N "checking checking for executable suffix... $ECHO_C" >&6
@@ -2981,7 +2954,7 @@ echo "${ECHO_T}$ac_use_strict_options" >&6
then
if test "$GCC" = yes
then
- CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long -fno-strict-aliasing"
+ CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Wno-long-long"
case "${host}" in
*-*-solaris*)
CFLAGS="$CFLAGS -D__STDC__=0";;
@@ -2997,7 +2970,7 @@ echo "${ECHO_T}$ac_use_strict_options" >&6
fi
if test "$GXX" = yes
then
- CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Winline -Wno-long-long"
+ CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Wno-long-long"
case "${host}" in
*-*-solaris*)
CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
@@ -3079,6 +3052,58 @@ echo $ECHO_N "checking for 64-bit executable support... $ECHO_C" >&6
ENABLE_64BIT_LIBS=no
fi
;;
+ x86_64-*-cygwin)
+ if test "$GCC" = yes; then
+ if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+ ENABLE_64BIT_LIBS=yes
+ else
+ ENABLE_64BIT_LIBS=no
+ fi
+ else
+ ENABLE_64BIT_LIBS=no
+ OLD_CPPFLAGS="${CPPFLAGS}"
+ OLD_LDFLAGS="${LDFLAGS}"
+ CPPFLAGS="${CPPFLAGS} /DWIN64"
+ LDFLAGS="${LDFLAGS} /MACHINE:AMD64"
+ if test "$cross_compiling" = yes; then
+ ENABLE_64BIT_LIBS=no
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ENABLE_64BIT_LIBS=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ENABLE_64BIT_LIBS=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ if test "$ENABLE_64BIT_LIBS" = no; then
+ CPPFLAGS="${OLD_CPPFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+ fi
+ fi
+ ;;
*-*-aix*|powerpc64-*-linux*)
if test "$ac_cv_c_compiler_gnu" = no; then
# Note: Have not tested 64-bitness with gcc.
@@ -3217,25 +3242,100 @@ fi
fi
fi
;;
-# *-*ibm-openedition*|*-*-os390*)
-# OLD_CFLAGS="${CFLAGS}"
-# OLD_CXXFLAGS="${CXXFLAGS}"
-# OLD_LDFLAGS="${LDFLAGS}"
-# CFLAGS="${CFLAGS} -Wc,lp64,expo"
-# CXXFLAGS="${CXXFLAGS} -Wc,lp64,expo"
-# LDFLAGS="${LDFLAGS} -Wl,lp64"
-# AC_TRY_RUN(int main(void) {return 0;},
-# ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
-# if test "$ENABLE_64BIT_LIBS" = no; then
-# CFLAGS="${OLD_CFLAGS}"
-# CXXFLAGS="${OLD_CXXFLAGS}"
-# LDFLAGS="${OLD_LDFLAGS}"
-# fi
-# ;;
+ *-*ibm-openedition*|*-*-os390*)
+ OLD_CFLAGS="${CFLAGS}"
+ OLD_CXXFLAGS="${CXXFLAGS}"
+ OLD_LDFLAGS="${LDFLAGS}"
+ CFLAGS="${CFLAGS} -Wc,lp64"
+ CXXFLAGS="${CXXFLAGS} -Wc,lp64"
+ LDFLAGS="${LDFLAGS} -Wl,lp64"
+ if test "$cross_compiling" = yes; then
+ ENABLE_64BIT_LIBS=no
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ENABLE_64BIT_LIBS=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ENABLE_64BIT_LIBS=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ if test "$ENABLE_64BIT_LIBS" = no; then
+ CFLAGS="${OLD_CFLAGS}"
+ CXXFLAGS="${OLD_CXXFLAGS}"
+ LDFLAGS="${OLD_LDFLAGS}"
+ fi
+ ;;
*)
ENABLE_64BIT_LIBS=no
;;
esac
+ else
+ if test "$GCC" = yes; then
+ OLD_CFLAGS="${CFLAGS}"
+ OLD_CXXFLAGS="${CXXFLAGS}"
+ CFLAGS="${CFLAGS} -m32"
+ CXXFLAGS="${CXXFLAGS} -m32"
+ if test "$cross_compiling" = yes; then
+ ENABLE_64BIT_LIBS=yes
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+int main(void) {return 0;}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ENABLE_64BIT_LIBS=no
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ENABLE_64BIT_LIBS=yes
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ if test "$ENABLE_64BIT_LIBS" = yes; then
+ CFLAGS="${OLD_CFLAGS}"
+ CXXFLAGS="${OLD_CXXFLAGS}"
+ fi
+ fi
fi
echo "$as_me:$LINENO: result: $ENABLE_64BIT_LIBS" >&5
echo "${ECHO_T}$ENABLE_64BIT_LIBS" >&6
@@ -3282,7 +3382,7 @@ powerpc*-*-linux*)
else
icu_cv_host_frag=mh-cygwin-msvc
fi ;;
-*-*-*bsd*) icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-*bsd*|*-*-dragonfly*) icu_cv_host_frag=mh-bsd-gcc ;;
*-*-aix*)
if test "$GCC" = yes; then
icu_cv_host_frag=mh-aix-gcc
@@ -3311,7 +3411,6 @@ powerpc*-*-linux*)
*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
*-*-nto*) icu_cv_host_frag=mh-qnx ;;
*-ncr-*) icu_cv_host_frag=mh-mpras ;;
-*-sequent-*) icu_cv_host_frag=mh-ptx ;;
*) icu_cv_host_frag=mh-unknown ;;
esac
@@ -4202,8 +4301,16 @@ echo "${ECHO_T}$ac_cv_func_pthread_mutex_lock" >&6
fi
case "${host}" in
*-pc-cygwin*|*-pc-mingw*)
+ ICU_USE_THREADS=1
if test "$ac_cv_c_compiler_gnu" = no; then
ICU_USE_THREADS=1
+ if test $ENABLE_DEBUG = 1; then
+ CFLAGS="${CFLAGS} /MDd"
+ CXXFLAGS="${CXXFLAGS} /MDd"
+ else
+ CFLAGS="${CFLAGS} /MD"
+ CXXFLAGS="${CXXFLAGS} /MD"
+ fi
fi ;;
*-*-hpux*)
case "${icu_cv_host_frag}" in
@@ -4991,8 +5098,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
CXXFLAGS="${CXXFLAGS} -AA"
;;
esac
- echo "$as_me:$LINENO: checking iostream usability" >&5
-echo $ECHO_N "checking iostream usability... $ECHO_C" >&6
+ echo "$as_me:$LINENO: checking for iostream usability" >&5
+echo $ECHO_N "checking for iostream usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@@ -5050,380 +5157,9 @@ echo "${ECHO_T}$ac_cv_header_iostream" >&6
U_IOSTREAM_SOURCE=199711
else
CXXFLAGS="${OLD_CXXFLAGS}"
- ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
-if test -z "$CXXCPP"; then
- if test "${ac_cv_prog_CXXCPP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
-fi
-echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- :
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether non-existent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- # Broken: success on invalid input.
-continue
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
- :
-else
- { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details." >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-ac_ext=cc
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-if test "${ac_cv_header_iostream_h+set}" = set; then
- echo "$as_me:$LINENO: checking for iostream.h" >&5
-echo $ECHO_N "checking for iostream.h... $ECHO_C" >&6
-if test "${ac_cv_header_iostream_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_iostream_h" >&5
-echo "${ECHO_T}$ac_cv_header_iostream_h" >&6
-else
- # Is the header compilable?
-echo "$as_me:$LINENO: checking iostream.h usability" >&5
-echo $ECHO_N "checking iostream.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <iostream.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -z "$ac_cxx_werror_flag"
- || test ! -s conftest.err'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_header_compiler=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking iostream.h presence" >&5
-echo $ECHO_N "checking iostream.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <iostream.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null; then
- if test -s conftest.err; then
- ac_cpp_err=$ac_cxx_preproc_warn_flag
- ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
- else
- ac_cpp_err=
- fi
-else
- ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
- ac_header_preproc=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
- yes:no: )
- { echo "$as_me:$LINENO: WARNING: iostream.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: iostream.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: iostream.h: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { echo "$as_me:$LINENO: WARNING: iostream.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: iostream.h: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: iostream.h: check for missing prerequisite headers?" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: iostream.h: see the Autoconf documentation" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: iostream.h: section \"Present But Cannot Be Compiled\"" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: iostream.h: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: iostream.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: iostream.h: in the future, the compiler will take precedence" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists. ##
-## ------------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-echo "$as_me:$LINENO: checking for iostream.h" >&5
-echo $ECHO_N "checking for iostream.h... $ECHO_C" >&6
-if test "${ac_cv_header_iostream_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_cv_header_iostream_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_iostream_h" >&5
-echo "${ECHO_T}$ac_cv_header_iostream_h" >&6
-
-fi
-
-
- if test $ac_cv_header_iostream_h = yes; then
- echo "$as_me:$LINENO: checking whether ostream is really defined" >&5
-echo $ECHO_N "checking whether ostream is really defined... $ECHO_C" >&6
- if test "${ac_cv_iostream_ok+set}" = set; then
+ echo "$as_me:$LINENO: checking whether ostream in iostream.h is really defined" >&5
+echo $ECHO_N "checking whether ostream in iostream.h is really defined... $ECHO_C" >&6
+ if test "${ac_cv_iostream_ok+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
@@ -5474,12 +5210,11 @@ rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
fi
- echo "$as_me:$LINENO: result: $ac_cv_iostream_ok" >&5
+ echo "$as_me:$LINENO: result: $ac_cv_iostream_ok" >&5
echo "${ECHO_T}$ac_cv_iostream_ok" >&6
- if test $ac_cv_iostream_ok = yes
- then
- U_IOSTREAM_SOURCE=198506
- fi
+ if test $ac_cv_iostream_ok = yes
+ then
+ U_IOSTREAM_SOURCE=198506
fi
fi
if test x$streams != x
@@ -5930,7 +5665,7 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
- namespace x_version {void f(){}};
+ namespace x_version {void f(){}}
namespace x = x_version;
using namespace x_version;
@@ -7634,6 +7369,7 @@ cat >>conftest.$ac_ext <<_ACEOF
#if STDC_HEADERS
#include <stddef.h>
#endif
+#include <stdlib.h>
#if HAVE_WCHAR_H
#include <string.h>
#include <wchar.h>
@@ -7712,9 +7448,9 @@ if test "$extras" = true; then
else
EXTRAS_TRUE='#'
fi
-# Check whether --enable-extras or --disable-extras was given.
-if test "${enable_extras+set}" = set; then
- enableval="$enable_extras"
+# Check whether --enable-icuio or --disable-icuio was given.
+if test "${enable_icuio+set}" = set; then
+ enableval="$enable_icuio"
case "${enableval}" in
yes) icuio=true ;;
no) icuio=false ;;
@@ -7770,72 +7506,35 @@ else
datapackaging=
fi;
-thesysconfdir=`eval echo $sysconfdir`
-
+#thesysconfdir=`eval echo $sysconfdir`
+#AC_SUBST(thesysconfdir)
+#thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
+#AC_SUBST(thelibdir)
thedatadir=`eval echo $datadir`
-thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
-
pkgicudatadir=$datadir
thepkgicudatadir=$thedatadir
-# Check whether --enable-mapped or --disable-mapped was given.
-if test "${enable_mapped+set}" = set; then
- enableval="$enable_mapped"
- case "${enableval}" in
- yes) mapped=archive ;;
- no) mapped=library ;;
- *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-mapped; use --with-data-packaging now" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-mapped; use --with-data-packaging now" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
-else
- mapped=
-fi;
-
-if test x"$mapped" != x; then
- case $mapped in
- archive)
- { echo "$as_me:$LINENO: WARNING: use --with-data-packaging=archive instead of --enable-mapped" >&5
-echo "$as_me: WARNING: use --with-data-packaging=archive instead of --enable-mapped" >&2;}
- ;;
- library)
- { echo "$as_me:$LINENO: WARNING: use --with-data-packaging=library instead of --disable-mapped" >&5
-echo "$as_me: WARNING: use --with-data-packaging=library instead of --disable-mapped" >&2;}
- ;;
- esac
- if test x"$datapackaging" != x -a x"$mapped" != x"$datapackaging"; then
- { { echo "$as_me:$LINENO: error: conflicting values used for --with-data-packaging and deprecated --enable-mapped" >&5
-echo "$as_me: error: conflicting values used for --with-data-packaging and deprecated --enable-mapped" >&2;}
- { (exit 1); exit 1; }; }
- fi
- datapackaging=$mapped
-fi
-
if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
datapackaging=library
fi
case "$datapackaging" in
files)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_FILES
DATA_PACKAGING_MODE=files
;;
archive)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_MAP
DATA_PACKAGING_MODE=common
;;
library)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_DLL
DATA_PACKAGING_MODE=dll
;;
esac
-
echo "$as_me:$LINENO: checking for a library suffix to use" >&5
echo $ECHO_N "checking for a library suffix to use... $ECHO_C" >&6
@@ -7908,7 +7607,7 @@ ICUDATA_CHAR=$U_ENDIAN_CHAR
case "${host}" in
*-*-solaris*) platform=U_SOLARIS ;;
*-*-linux*) platform=U_LINUX ;;
- *-*-*bsd*) platform=U_BSD ;;
+ *-*-*bsd*|*-*-dragonfly*) platform=U_BSD ;;
*-*-aix*) platform=U_AIX ;;
*-*-hpux*) platform=U_HPUX ;;
*-apple-darwin*|*-apple-rhapsody*) platform=U_DARWIN ;;
@@ -7926,7 +7625,6 @@ case "${host}" in
*-*-beos) platform=U_BEOS ;;
*-*-irix*) platform=U_IRIX ;;
*-ncr-*) platform=U_MPRAS ;;
- *-sequent-*) platform=PTX ;;
*) platform=U_UNKNOWN_PLATFORM ;;
esac
@@ -7939,12 +7637,11 @@ platform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name"
case "${host}" in
*-*-solaris*) ld_rpath_suf=":" ;;
*-*-linux*) ld_rpath_suf=" " ;;
- *-*-*bsd*) ld_rpath_suf=" " ;;
+ *-*-*bsd*|*-*-dragonfly*) ld_rpath_suf=" " ;;
*-*-aix*) ld_rpath_suf="" ;;
*-*-hpux*) ld_rpath_suf=":" ;;
*-*ibm-openedition*|*-*-os390*) ld_rpath_suf="" ;;
*-*-os400*) ld_rpath_suf=" " ;;
- *-sequent-*) ld_rpath_suf="" ;;
*-*-irix*) ld_rpath_suf=" " ;;
*) ld_rpath_suf="" ;;
esac
@@ -7998,7 +7695,7 @@ then
CXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS)"
fi
- ac_config_files="$ac_config_files icudefs.mk Makefile data/icupkg.inc config/Makefile.inc data/Makefile stubdata/Makefile common/Makefile i18n/Makefile layout/Makefile layoutex/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genuca/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/gennames/Makefile tools/gentest/Makefile tools/gennorm/Makefile tools/genprops/Makefile tools/gencase/Makefile tools/genbidi/Makefile tools/genpname/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/toolutil/Makefile tools/dumpce/Makefile test/Makefile test/testdata/Makefile test/testdata/pkgdata.inc test/hdrtst/Makefile test/intltest/Makefile test/cintltst/Makefile test/iotest/Makefile test/thaitest/Makefile test/testmap/Makefile test/letest/Makefile test/threadtest/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/layout/Makefile common/unicode/platform.h"
+ ac_config_files="$ac_config_files icudefs.mk Makefile data/icupkg.inc config/Makefile.inc data/Makefile stubdata/Makefile common/Makefile i18n/Makefile layout/Makefile layoutex/Makefile io/Makefile extra/Makefile extra/uconv/Makefile extra/scrptrun/Makefile tools/Makefile tools/ctestfw/Makefile tools/toolutil/Makefile tools/makeconv/Makefile tools/genrb/Makefile tools/genuca/Makefile tools/genccode/Makefile tools/gencmn/Makefile tools/gencnval/Makefile tools/genctd/Makefile tools/gennames/Makefile tools/gentest/Makefile tools/gennorm/Makefile tools/genprops/Makefile tools/gencase/Makefile tools/genbidi/Makefile tools/genpname/Makefile tools/genbrk/Makefile tools/gensprep/Makefile tools/icupkg/Makefile tools/icuswap/Makefile tools/pkgdata/Makefile tools/dumpce/Makefile tools/tzcode/Makefile test/Makefile test/testdata/Makefile test/testdata/pkgdata.inc test/hdrtst/Makefile test/intltest/Makefile test/cintltst/Makefile test/iotest/Makefile test/thaitest/Makefile test/testmap/Makefile test/letest/Makefile test/threadtest/Makefile samples/Makefile samples/date/Makefile samples/cal/Makefile samples/csdet/Makefile samples/layout/Makefile common/unicode/platform.h"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -8540,12 +8237,14 @@ do
"extra/scrptrun/Makefile" ) CONFIG_FILES="$CONFIG_FILES extra/scrptrun/Makefile" ;;
"tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
"tools/ctestfw/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/ctestfw/Makefile" ;;
+ "tools/toolutil/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/toolutil/Makefile" ;;
"tools/makeconv/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/makeconv/Makefile" ;;
"tools/genrb/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genrb/Makefile" ;;
"tools/genuca/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genuca/Makefile" ;;
"tools/genccode/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genccode/Makefile" ;;
"tools/gencmn/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gencmn/Makefile" ;;
"tools/gencnval/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gencnval/Makefile" ;;
+ "tools/genctd/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genctd/Makefile" ;;
"tools/gennames/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gennames/Makefile" ;;
"tools/gentest/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gentest/Makefile" ;;
"tools/gennorm/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gennorm/Makefile" ;;
@@ -8555,10 +8254,11 @@ do
"tools/genpname/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genpname/Makefile" ;;
"tools/genbrk/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/genbrk/Makefile" ;;
"tools/gensprep/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/gensprep/Makefile" ;;
+ "tools/icupkg/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/icupkg/Makefile" ;;
"tools/icuswap/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/icuswap/Makefile" ;;
"tools/pkgdata/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/pkgdata/Makefile" ;;
- "tools/toolutil/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/toolutil/Makefile" ;;
"tools/dumpce/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/dumpce/Makefile" ;;
+ "tools/tzcode/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/tzcode/Makefile" ;;
"test/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/Makefile" ;;
"test/testdata/Makefile" ) CONFIG_FILES="$CONFIG_FILES test/testdata/Makefile" ;;
"test/testdata/pkgdata.inc" ) CONFIG_FILES="$CONFIG_FILES test/testdata/pkgdata.inc" ;;
@@ -8573,6 +8273,7 @@ do
"samples/Makefile" ) CONFIG_FILES="$CONFIG_FILES samples/Makefile" ;;
"samples/date/Makefile" ) CONFIG_FILES="$CONFIG_FILES samples/date/Makefile" ;;
"samples/cal/Makefile" ) CONFIG_FILES="$CONFIG_FILES samples/cal/Makefile" ;;
+ "samples/csdet/Makefile" ) CONFIG_FILES="$CONFIG_FILES samples/csdet/Makefile" ;;
"samples/layout/Makefile" ) CONFIG_FILES="$CONFIG_FILES samples/layout/Makefile" ;;
"common/unicode/platform.h" ) CONFIG_FILES="$CONFIG_FILES common/unicode/platform.h" ;;
"common/icucfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS common/icucfg.h" ;;
@@ -8665,6 +8366,14 @@ s,@VERSION@,$VERSION,;t t
s,@LIB_VERSION@,$LIB_VERSION,;t t
s,@LIB_VERSION_MAJOR@,$LIB_VERSION_MAJOR,;t t
s,@UNICODE_VERSION@,$UNICODE_VERSION,;t t
+s,@build@,$build,;t t
+s,@build_cpu@,$build_cpu,;t t
+s,@build_vendor@,$build_vendor,;t t
+s,@build_os@,$build_os,;t t
+s,@host@,$host,;t t
+s,@host_cpu@,$host_cpu,;t t
+s,@host_vendor@,$host_vendor,;t t
+s,@host_os@,$host_os,;t t
s,@CPPFLAGS@,$CPPFLAGS,;t t
s,@CC@,$CC,;t t
s,@CFLAGS@,$CFLAGS,;t t
@@ -8678,17 +8387,8 @@ s,@ac_ct_CXX@,$ac_ct_CXX,;t t
s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-s,@STRIP@,$STRIP,;t t
s,@U_MAKE@,$U_MAKE,;t t
s,@DOXYGEN@,$DOXYGEN,;t t
-s,@build@,$build,;t t
-s,@build_cpu@,$build_cpu,;t t
-s,@build_vendor@,$build_vendor,;t t
-s,@build_os@,$build_os,;t t
-s,@host@,$host,;t t
-s,@host_cpu@,$host_cpu,;t t
-s,@host_vendor@,$host_vendor,;t t
-s,@host_os@,$host_os,;t t
s,@ARFLAGS@,$ARFLAGS,;t t
s,@COMPILE_LINK_ENVVAR@,$COMPILE_LINK_ENVVAR,;t t
s,@LIB_M@,$LIB_M,;t t
@@ -8711,7 +8411,6 @@ s,@GENCCODE_ASSEMBLY@,$GENCCODE_ASSEMBLY,;t t
s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t
s,@U_HAVE_INTTYPES_H@,$U_HAVE_INTTYPES_H,;t t
-s,@CXXCPP@,$CXXCPP,;t t
s,@U_IOSTREAM_SOURCE@,$U_IOSTREAM_SOURCE,;t t
s,@U_IS_BIG_ENDIAN@,$U_IS_BIG_ENDIAN,;t t
s,@U_HAVE_NL_LANGINFO@,$U_HAVE_NL_LANGINFO,;t t
@@ -8741,12 +8440,9 @@ s,@U_SIZEOF_WCHAR_T@,$U_SIZEOF_WCHAR_T,;t t
s,@EXTRAS_TRUE@,$EXTRAS_TRUE,;t t
s,@ICUIO_TRUE@,$ICUIO_TRUE,;t t
s,@LAYOUT_TRUE@,$LAYOUT_TRUE,;t t
-s,@thesysconfdir@,$thesysconfdir,;t t
s,@thedatadir@,$thedatadir,;t t
-s,@thelibdir@,$thelibdir,;t t
s,@pkgicudatadir@,$pkgicudatadir,;t t
s,@thepkgicudatadir@,$thepkgicudatadir,;t t
-s,@DATA_PACKAGING_CPPFLAGS@,$DATA_PACKAGING_CPPFLAGS,;t t
s,@DATA_PACKAGING_MODE@,$DATA_PACKAGING_MODE,;t t
s,@ICULIBSUFFIX@,$ICULIBSUFFIX,;t t
s,@U_HAVE_LIB_SUFFIX@,$U_HAVE_LIB_SUFFIX,;t t
@@ -9257,4 +8953,12 @@ if test $ICU_USE_THREADS = 0; then
echo " *** Note: configuring the ICU without pthread support or testing. If this isn't what you want, then run configure with --enable-threads=yes or check the messages above to see why we couldn't find pthread_create()" 1>&6
fi
+if test -n "`$U_MAKE -v 2>&1 | grep '^GNU Make'`"; then
echo "You must use $U_MAKE to build ICU."
+else
+echo "WARNING: $U_MAKE may not be GNU make."
+echo "This may cause ICU to fail to build. Please make sure that GNU make"
+echo "is in your PATH so that this configure script can detect its location."
+fi
+
+$as_unset _CXX_CXXSUFFIX
diff --git a/Build/source/libs/icu-xetex/configure.in b/Build/source/libs/icu-xetex/configure.in
index 8e93ef456a0..9dd94e932ba 100644
--- a/Build/source/libs/icu-xetex/configure.in
+++ b/Build/source/libs/icu-xetex/configure.in
@@ -1,6 +1,6 @@
dnl -*-m4-*-
dnl configure.in for ICU
-dnl Copyright (c) 1999-2005, International Business Machines Corporation and
+dnl Copyright (c) 1999-2006, International Business Machines Corporation and
dnl others. All Rights Reserved.
dnl Stephen F. Booth, heavily modified by Yves and others
@@ -34,12 +34,17 @@ AC_SUBST(LIB_VERSION)
AC_SUBST(LIB_VERSION_MAJOR)
AC_MSG_RESULT([release $VERSION, library $LIB_VERSION])
-UNICODE_VERSION="4.1"
+UNICODE_VERSION="5.0"
AC_SUBST(UNICODE_VERSION)
+dnl Determine the host system
+AC_CANONICAL_HOST
+
AC_SUBST(CPPFLAGS)
-#AC_SUBST(CINTLTST_CPPFLAGS)
+dnl This variable is needed on z/OS because the C++ compiler only recognizes .C
+_CXX_CXXSUFFIX=cc
+export _CXX_CXXSUFFIX
dnl Checks for programs
AC_PROG_CC
AC_PROG_CXX
@@ -54,7 +59,7 @@ if test "$srcdir" = "."; then
fi
#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
-AC_CHECK_PROG(STRIP, strip, strip, true)
+#AC_CHECK_PROG(STRIP, strip, strip, true)
dnl Check for the platform make
AC_PATH_PROGS(U_MAKE, gmake gnumake, make)
@@ -63,8 +68,8 @@ AC_SUBST(U_MAKE)
dnl Check for doxygen to generate documentation
AC_PATH_PROG(DOXYGEN,doxygen,,$PATH:/usr/local/bin:/usr/bin)
-dnl Determine the host system and Makefile fragment
-AC_CANONICAL_HOST
+dnl Check that the linker is usable
+ICU_PROG_LINK
dnl Determine the executable suffix
dnl We don't use AC_EXEEXT because some compilers output separate debugging
@@ -86,6 +91,7 @@ AC_CHECK_64BIT_LIBS
AC_SUBST(ARFLAGS)
AC_SUBST(COMPILE_LINK_ENVVAR)
+dnl Determine the Makefile fragment
ICU_CHECK_MH_FRAG
dnl Checks for libraries and other host specific stuff
@@ -287,9 +293,20 @@ if test $threads = true; then
dnl Check to see if we are using CygWin with MSVC
case "${host}" in
*-pc-cygwin*|*-pc-mingw*)
+ dnl For gcc, the thread options are set by mh-mingw/mh-cygwin
+ ICU_USE_THREADS=1
if test "$ac_cv_prog_gcc" = no; then
dnl We're using normal windows compilers. Threading is available.
ICU_USE_THREADS=1
+ if test $ENABLE_DEBUG = 1; then
+ dnl /MDd means 'compiles and links a debugable multithreaded program with DLL'
+ CFLAGS="${CFLAGS} /MDd"
+ CXXFLAGS="${CXXFLAGS} /MDd"
+ else
+ dnl /MD means 'compiles and links a multithreaded program with DLL'
+ CFLAGS="${CFLAGS} /MD"
+ CXXFLAGS="${CXXFLAGS} /MD"
+ fi
fi ;;
*-*-hpux*)
dnl Add -mt because it does several nice things on newer compilers.
@@ -387,7 +404,7 @@ then
CXXFLAGS="${CXXFLAGS} -AA"
;;
esac
- AC_MSG_CHECKING([iostream usability])
+ AC_MSG_CHECKING([for iostream usability])
AC_TRY_COMPILE([#include <iostream>],[],
[ac_cv_header_iostream=yes],[ac_cv_header_iostream=no])
if test $icu_cv_host_frag = mh-cygwin-msvc
@@ -403,16 +420,13 @@ then
U_IOSTREAM_SOURCE=199711
else
CXXFLAGS="${OLD_CXXFLAGS}"
- AC_CHECK_HEADER(iostream.h)
- if test $ac_cv_header_iostream_h = yes; then
- AC_MSG_CHECKING([whether ostream is really defined])
- AC_CACHE_VAL(ac_cv_iostream_ok,
- AC_TRY_LINK([#include <iostream.h>],[ostream &testout = cout; testout << "test" << endl;],ac_cv_iostream_ok=yes,ac_cv_iostream_ok=no))
- AC_MSG_RESULT($ac_cv_iostream_ok)
- if test $ac_cv_iostream_ok = yes
- then
- U_IOSTREAM_SOURCE=198506
- fi
+ AC_MSG_CHECKING([whether ostream in iostream.h is really defined])
+ AC_CACHE_VAL(ac_cv_iostream_ok,
+ AC_TRY_LINK([#include <iostream.h>],[ostream &testout = cout; testout << "test" << endl;],ac_cv_iostream_ok=yes,ac_cv_iostream_ok=no))
+ AC_MSG_RESULT($ac_cv_iostream_ok)
+ if test $ac_cv_iostream_ok = yes
+ then
+ U_IOSTREAM_SOURCE=198506
fi
fi
if test x$streams != x
@@ -473,7 +487,7 @@ AC_MSG_CHECKING([for namespace support])
AC_CACHE_VAL(ac_cv_namespace_ok,
[AC_TRY_LINK(
changequote(<<, >>)dnl
- <<namespace x_version {void f(){}};
+ <<namespace x_version {void f(){}}
namespace x = x_version;
using namespace x_version;
>>,
@@ -732,6 +746,7 @@ AC_DO_CHECK_SIZEOF(wchar_t,$ac_default_sizeof_wchar_t,[
#if STDC_HEADERS
#include <stddef.h>
#endif
+#include <stdlib.h>
#if HAVE_WCHAR_H
#include <string.h>
#include <wchar.h>
@@ -763,7 +778,7 @@ AC_ARG_ENABLE(extras,
esac],
extras=true)
ICU_CONDITIONAL(EXTRAS, test "$extras" = true)
-AC_ARG_ENABLE(extras,
+AC_ARG_ENABLE(icuio,
[ --enable-icuio build ICU's icuio library [default=yes]],
[case "${enableval}" in
yes) icuio=true ;;
@@ -797,12 +812,12 @@ AC_ARG_WITH(data-packaging,
[datapackaging=])
dnl Note: 'thesysconfdir' is an evaluated version, for Man pages, so also for thedatadir, thelibdir, etc..
-thesysconfdir=`eval echo $sysconfdir`
-AC_SUBST(thesysconfdir)
+#thesysconfdir=`eval echo $sysconfdir`
+#AC_SUBST(thesysconfdir)
+#thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
+#AC_SUBST(thelibdir)
thedatadir=`eval echo $datadir`
AC_SUBST(thedatadir)
-thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
-AC_SUBST(thelibdir)
dnl Always put raw data files in share/icu/{version}, etc. Never use lib/icu/{version} for data files.. Actual shared libraries will go in {libdir}.
pkgicudatadir=$datadir
thepkgicudatadir=$thedatadir
@@ -810,30 +825,6 @@ AC_SUBST(pkgicudatadir)
AC_SUBST(thepkgicudatadir)
dnl Shouldn't need the AC_SUBST
-dnl Deprecated support for --enable-mapped
-
-AC_ARG_ENABLE(mapped,,
- [case "${enableval}" in
- yes) mapped=archive ;;
- no) mapped=library ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-mapped; use --with-data-packaging now) ;;
- esac],
- [mapped=])
-
-if test x"$mapped" != x; then
- case $mapped in
- archive)
- AC_MSG_WARN(use --with-data-packaging=archive instead of --enable-mapped)
- ;;
- library)
- AC_MSG_WARN(use --with-data-packaging=library instead of --disable-mapped)
- ;;
- esac
- if test x"$datapackaging" != x -a x"$mapped" != x"$datapackaging"; then
- AC_MSG_ERROR(conflicting values used for --with-data-packaging and deprecated --enable-mapped)
- fi
- datapackaging=$mapped
-fi
if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
datapackaging=library
@@ -841,19 +832,15 @@ fi
case "$datapackaging" in
files)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_FILES
DATA_PACKAGING_MODE=files
;;
archive)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_MAP
DATA_PACKAGING_MODE=common
;;
library)
- DATA_PACKAGING_CPPFLAGS=-DUDATA_DLL
DATA_PACKAGING_MODE=dll
;;
esac
-AC_SUBST(DATA_PACKAGING_CPPFLAGS)
AC_SUBST(DATA_PACKAGING_MODE)
dnl Sets a library suffix
@@ -910,7 +897,7 @@ dnl set ICUDATA_CHAR to 'e' for any EBCDIC (which should be big endian) platform
case "${host}" in
*-*-solaris*) platform=U_SOLARIS ;;
*-*-linux*) platform=U_LINUX ;;
- *-*-*bsd*) platform=U_BSD ;;
+ *-*-*bsd*|*-*-dragonfly*) platform=U_BSD ;;
*-*-aix*) platform=U_AIX ;;
*-*-hpux*) platform=U_HPUX ;;
*-apple-darwin*|*-apple-rhapsody*) platform=U_DARWIN ;;
@@ -928,7 +915,6 @@ case "${host}" in
*-*-beos) platform=U_BEOS ;;
*-*-irix*) platform=U_IRIX ;;
*-ncr-*) platform=U_MPRAS ;;
- *-sequent-*) platform=PTX ;;
*) platform=U_UNKNOWN_PLATFORM ;;
esac
AC_SUBST(ICUDATA_CHAR)
@@ -942,12 +928,11 @@ dnl Handle -rpath options for shared library paths
case "${host}" in
*-*-solaris*) ld_rpath_suf=":" ;;
*-*-linux*) ld_rpath_suf=" " ;;
- *-*-*bsd*) ld_rpath_suf=" " ;;
+ *-*-*bsd*|*-*-dragonfly*) ld_rpath_suf=" " ;;
*-*-aix*) ld_rpath_suf="" ;;
*-*-hpux*) ld_rpath_suf=":" ;;
*-*ibm-openedition*|*-*-os390*) ld_rpath_suf="" ;;
*-*-os400*) ld_rpath_suf=" " ;;
- *-sequent-*) ld_rpath_suf="" ;;
*-*-irix*) ld_rpath_suf=" " ;;
*) ld_rpath_suf="" ;;
esac
@@ -1019,14 +1004,18 @@ AC_OUTPUT([icudefs.mk \
layoutex/Makefile \
io/Makefile \
extra/Makefile \
- extra/uconv/Makefile extra/scrptrun/Makefile \
- tools/Makefile tools/ctestfw/Makefile \
+ extra/uconv/Makefile \
+ extra/scrptrun/Makefile \
+ tools/Makefile \
+ tools/ctestfw/Makefile \
+ tools/toolutil/Makefile \
tools/makeconv/Makefile \
tools/genrb/Makefile \
tools/genuca/Makefile \
tools/genccode/Makefile \
tools/gencmn/Makefile \
tools/gencnval/Makefile \
+ tools/genctd/Makefile \
tools/gennames/Makefile \
tools/gentest/Makefile \
tools/gennorm/Makefile \
@@ -1036,10 +1025,11 @@ AC_OUTPUT([icudefs.mk \
tools/genpname/Makefile \
tools/genbrk/Makefile \
tools/gensprep/Makefile \
+ tools/icupkg/Makefile \
tools/icuswap/Makefile \
tools/pkgdata/Makefile \
- tools/toolutil/Makefile \
tools/dumpce/Makefile \
+ tools/tzcode/Makefile \
test/Makefile \
test/testdata/Makefile \
test/testdata/pkgdata.inc \
@@ -1052,11 +1042,19 @@ AC_OUTPUT([icudefs.mk \
test/letest/Makefile \
test/threadtest/Makefile \
samples/Makefile samples/date/Makefile \
- samples/cal/Makefile samples/layout/Makefile \
+ samples/cal/Makefile samples/csdet/Makefile samples/layout/Makefile \
common/unicode/platform.h])
if test $ICU_USE_THREADS = 0; then
echo " *** Note: configuring the ICU without pthread support or testing. If this isn't what you want, then run configure with --enable-threads=yes or check the messages [above] to see why we couldn't find pthread_create()" 1>&6
fi
+if test -n "`$U_MAKE -v 2>&1 | grep '^GNU Make'`"; then
echo "You must use $U_MAKE to build ICU."
+else
+echo "WARNING: $U_MAKE may not be GNU make."
+echo "This may cause ICU to fail to build. Please make sure that GNU make"
+echo "is in your PATH so that this configure script can detect its location."
+fi
+
+$as_unset _CXX_CXXSUFFIX
diff --git a/Build/source/libs/icu-xetex/data/Makefile.in b/Build/source/libs/icu-xetex/data/Makefile.in
index bcc65dc6a47..5285e8454a3 100644
--- a/Build/source/libs/icu-xetex/data/Makefile.in
+++ b/Build/source/libs/icu-xetex/data/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU data
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -73,11 +73,12 @@ TRANSLITSRCDIR=$(SRCDATADIR)/translit
TRANSLITBLDDIR=$(BUILDDIR)/translit
MISCSRCDIR=$(SRCDATADIR)/misc
BRKSRCDIR=$(SRCDATADIR)/brkitr
+BRKBLDDIR=$(BUILDDIR)/brkitr
MISCSRCDIR=$(SRCDATADIR)/misc
UCMSRCDIR=$(SRCDATADIR)/mappings
COMINCDIR=$(top_srcdir)/common/unicode
SRCLISTDEPS=Makefile $(srcdir)/Makefile.in
-BUILD_DIRS=$(OUTDIR) $(BUILDDIR) $(COLBLDDIR) $(RBNFBLDDIR) $(TRANSLITBLDDIR) $(TESTOUTDIR) $(TESTBUILDDIR) $(OUTTMPDIR) $(OUTTMPDIR_390STUB) $(OUTTMPDIR)/$(COLLATION_TREE) $(OUTTMPDIR)/$(RBNF_TREE) $(OUTTMPDIR)/$(TRANSLIT_TREE)
+BUILD_DIRS=$(OUTDIR) $(BUILDDIR) $(BRKBLDDIR) $(COLBLDDIR) $(RBNFBLDDIR) $(TRANSLITBLDDIR) $(TESTOUTDIR) $(TESTBUILDDIR) $(OUTTMPDIR) $(OUTTMPDIR_390STUB) $(OUTTMPDIR)/$(COLLATION_TREE) $(OUTTMPDIR)/$(RBNF_TREE) $(OUTTMPDIR)/$(TRANSLIT_TREE) $(OUTTMPDIR)/$(BREAK_TREE)
# relative lib links from pkgdata are the same as for tmp
TOOLDIR=$(top_builddir)/tools
@@ -141,15 +142,17 @@ ICUDATA_ARCHIVE = $(firstword $(wildcard $(srcdir)/in/$(ICUDATA_BASENAME_VERSION
ifneq ($(ICUDATA_ARCHIVE),)
ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
- $(INVOKE) $(BINDIR)/icuswap -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
+ $(INVOKE) $(BINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
endif
else
+ifneq ($(ENABLE_STATIC),YES)
ifeq ($(PKGDATA_MODE),common)
# We have a source data common archive in the native endianess,
# and it's what we want to build. Try to not run any of ICU's tools.
ICUDATA_SOURCE_IS_NATIVE_TARGET=YES
endif
endif
+endif
# During this INVOKE we only want to use stubdata.
# We don't want to try to write over files that we are using.
@@ -207,11 +210,22 @@ DAT_FILES_SHORT=pnames.icu unames.icu cnvalias.icu ucadata.icu invuca.icu uidna.
DAT_FILES=$(DAT_FILES_SHORT:%=$(BUILDDIR)/%)
## BRK files
+BREAK_TREE=brkitr
-include $(BRKSRCDIR)/brkfiles.mk
-include $(BRKSRCDIR)/brklocal.mk
-ALL_BRK_SOURCE=char.txt title.txt word.txt $(BRK_SOURCE) $(BRK_SOURCE_LOCAL)
-BRK_FILES_SHORT=$(ALL_BRK_SOURCE:%.txt=%.brk)
-BRK_FILES=$(BRK_FILES_SHORT:%=$(BUILDDIR)/%)
+ALL_BRK_SOURCE= $(BRK_SOURCE) $(BRK_SOURCE_LOCAL)
+BRK_FILES_SHORT=$(ALL_BRK_SOURCE:%.txt=$(BREAK_TREE)/%.brk)
+BRK_FILES=$(ALL_BRK_SOURCE:%.txt=$(BRKBLDDIR)/%.brk)
+ifdef BRK_CTD_SOURCE
+ALL_CTD_SOURCE=$(BRK_CTD_SOURCE) $(BRK_CTD_SOURCE_LOCAL)
+CTD_FILES_SHORT=$(ALL_CTD_SOURCE:%.txt=$(BREAK_TREE)/%.ctd)
+CTD_FILES=$(ALL_CTD_SOURCE:%.txt=$(BRKBLDDIR)/%.ctd)
+endif
+ifdef BRK_RES_SOURCE
+BRS_SRC= root.txt $(BRK_RES_SOURCE) $(BRK_RES_SOURCE_LOCAL)
+BRS_SRC_FILES = $(BRS_SRC:%=$(BRKSRCDIR)/%)
+INSTALLED_BRS_FILES = $(BRK_RES_SOURCE:%.txt=%) $(BRK_RES_SOURCE_LOCAL:%.txt=%)
+endif
## UCM files
-include $(UCMSRCDIR)/ucmcore.mk
@@ -230,6 +244,7 @@ CNV_FILES_SHORT = $(ALL_UCM_SOURCE:%.ucm=%.cnv)
-include $(TRANSLITSRCDIR)/trnsfiles.mk
-include $(LOCSRCDIR)/reslocal.mk
-include $(COLSRCDIR)/collocal.mk
+-include $(BRKSRCDIR)/brslocal.mk
-include $(RBNFSRCDIR)/rbnflocal.mk
-include $(TRANSLITSRCDIR)/trnslocal.mk
ifdef GENRB_SOURCE
@@ -284,6 +299,12 @@ COLLATION_INDEX_RES_SHORT=$(COLLATION_TREE)/$(INDEX_NAME).res
COLLATION_FILES = $(COL_SRC:%.txt=$(COLBLDDIR)/%.res) $(COLLATION_INDEX_RES)
COLLATION_FILES_SHORT = $(COL_SRC:%.txt=$(COLLATION_TREE)/%.res)
+BRK_RES_INDEX_FILE=$(OUTTMPDIR)/$(BREAK_TREE)/$(INDEX_NAME).txt
+BRK_RES_INDEX_RES=$(BRKBLDDIR)/$(INDEX_NAME).res
+BRK_RES_INDEX_RES_SHORT=$(BREAK_TREE)/$(INDEX_NAME).res
+BRK_RES_FILES = $(BRS_SRC:%.txt=$(BRKBLDDIR)/%.res) $(BRK_RES_INDEX_RES)
+BRK_RES_FILES_SHORT = $(BRS_SRC:%.txt=$(BREAK_TREE)/%.res)
+
RBNF_TREE=rbnf
RBNF_INDEX_FILE=$(OUTTMPDIR)/$(RBNF_TREE)/$(INDEX_NAME).txt
RBNF_INDEX_RES=$(RBNFBLDDIR)/$(INDEX_NAME).res
@@ -299,9 +320,9 @@ TRANSLIT_FILES = $(TRANSLIT_SRC:%.txt=$(TRANSLITBLDDIR)/%.res)
TRANSLIT_FILES_SHORT = $(TRANSLIT_SRC:%.txt=$(TRANSLIT_TREE)/%.res)
## All generated files
-ALL_FILES = $(DAT_FILES) $(CNV_FILES) $(BRK_FILES) $(RES_FILES) $(INDEX_RES_FILE) $(COLLATION_FILES) $(RBNF_FILES) $(TRANSLIT_FILES)
+ALL_FILES = $(DAT_FILES) $(CNV_FILES) $(BRK_FILES) $(CTD_FILES) $(RES_FILES) $(INDEX_RES_FILE) $(COLLATION_FILES) $(BRK_RES_FILES) $(RBNF_FILES) $(TRANSLIT_FILES)
# a list to use in the .lst files (package-relative)
-ALL_FILES_LIST = $(DAT_FILES_SHORT) $(CNV_FILES_SHORT) $(BRK_FILES_SHORT) $(RES_FILES_SHORT) $(INDEX_RES_FILE_SHORT) $(COLLATION_FILES_SHORT) $(COLLATION_INDEX_RES_SHORT) $(RBNF_FILES_SHORT) $(RBNF_INDEX_RES_SHORT) $(TRANSLIT_FILES_SHORT)
+ALL_FILES_LIST = $(DAT_FILES_SHORT) $(CNV_FILES_SHORT) $(BRK_FILES_SHORT) $(CTD_FILES_SHORT) $(RES_FILES_SHORT) $(INDEX_RES_FILE_SHORT) $(COLLATION_FILES_SHORT) $(COLLATION_INDEX_RES_SHORT) $(BRK_RES_FILES_SHORT) $(BRK_RES_INDEX_RES_SHORT) $(RBNF_FILES_SHORT) $(RBNF_INDEX_RES_SHORT) $(TRANSLIT_FILES_SHORT)
#####################################################
# General data build rules
@@ -323,7 +344,7 @@ $(OUTTMPDIR)/icudata.lst: $(SRCLISTDEPS) $(ICUDATA_SOURCE_ARCHIVE) $(MAINBUILDDI
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
@echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)"
@-$(RMV) $@
- $(INVOKE) $(BINDIR)/decmn -d $(MAINBUILDDIR) --pkgdata $(ICUDATA_SOURCE_ARCHIVE) > $@
+ $(INVOKE) $(BINDIR)/icupkg -d $(BUILDDIR) --list -x \* $(ICUDATA_SOURCE_ARCHIVE) > $@
else
@echo "$@" > $@
endif
@@ -385,12 +406,18 @@ $(BUILDDIR)/uidna.spp: $(MISCSRCDIR)/NamePrepProfile.txt $(BINDIR)/gensprep$(EXE
#################################################### BRK
# BRK FILES
-thaidict.brk: $(SRCDATADIR)/thaidict.brk
- $(RMV) $@ && ln -s $(BUILDDIR) $@
+#thaidict.brk: $(SRCDATADIR)/thaidict.brk
+# $(RMV) $@ && ln -s $(BUILDDIR) $@
-$(BUILDDIR)/%.brk: $(BRKSRCDIR)/%.txt $(BINDIR)/genbrk$(EXEEXT) $(DAT_FILES)
+$(BRKBLDDIR)/%.brk: $(BRKSRCDIR)/%.txt $(BINDIR)/genbrk$(EXEEXT) $(DAT_FILES)
$(INVOKE) $(BINDIR)/genbrk -c -i $(BUILDDIR) -r $< -o $@
+#################################################### CTD
+# CTD FILES
+
+$(BRKBLDDIR)/%.ctd: $(BRKSRCDIR)/%.txt $(BINDIR)/genctd$(EXEEXT) $(DAT_FILES)
+ $(INVOKE) $(BINDIR)/genctd -c -i $(BUILDDIR) -o $@ $<
+
#################################################### CNV
# CNV FILES
$(BUILDDIR)/%.cnv: $(UCMSRCDIR)/%.ucm $(BINDIR)/makeconv$(EXEEXT)
@@ -410,7 +437,7 @@ $(OUTTMPDIR)/$(COLLATION_TREE)/$(INDEX_NAME).txt: $(SRCLISTDEPS)
@echo "generating $@ (list of installed collation locales)"; \
$(RMV) $@; \
echo "// Warning this file is automatically generated" > $@; \
- echo "$(INDEX_NAME) {" >> $@; \
+ echo "$(INDEX_NAME):table(nofallback) {" >> $@; \
echo " InstalledLocales {" >> $@; \
for file in $(INSTALLED_COL_FILES); do \
echo " $$file {\"\"}" >> $@; \
@@ -418,6 +445,25 @@ $(OUTTMPDIR)/$(COLLATION_TREE)/$(INDEX_NAME).txt: $(SRCLISTDEPS)
echo " }" >> $@; \
echo "}" >> $@;
+### brk res
+$(BRKBLDDIR)/%.res: $(BRKSRCDIR)/%.txt $(BINDIR)/genrb$(EXEEXT) $(DAT_FILES)
+ $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -i $(BUILDDIR) -s $(BRKSRCDIR) -d $(BRKBLDDIR) $(<F)
+
+$(BRKBLDDIR)/$(INDEX_NAME).res: $(OUTTMPDIR)/$(BREAK_TREE)/$(INDEX_NAME).txt $(BINDIR)/genrb$(EXEEXT)
+ $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -i $(BUILDDIR) -s $(OUTTMPDIR)/$(BREAK_TREE) -d $(BRKBLDDIR) $(INDEX_NAME).txt
+
+$(OUTTMPDIR)/$(BREAK_TREE)/$(INDEX_NAME).txt: $(SRCLISTDEPS)
+ @echo "generating $@ (list of installed break locales)"; \
+ $(RMV) $@; \
+ echo "// Warning this file is automatically generated" > $@; \
+ echo "$(INDEX_NAME):table(nofallback) {" >> $@; \
+ echo " InstalledLocales {" >> $@; \
+ for file in $(INSTALLED_BRS_FILES); do \
+ echo " $$file {\"\"}" >> $@; \
+ done; \
+ echo " }" >> $@; \
+ echo "}" >> $@;
+
### RBNF res
$(RBNFBLDDIR)/%.res: $(RBNFSRCDIR)/%.txt $(BINDIR)/genrb$(EXEEXT) $(DAT_FILES)
$(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -i $(BUILDDIR) -s $(RBNFSRCDIR) -d $(RBNFBLDDIR) $(<F)
@@ -429,7 +475,7 @@ $(OUTTMPDIR)/$(RBNF_TREE)/$(INDEX_NAME).txt: $(SRCLISTDEPS)
@echo "generating $@ (list of installed RBNF locales)"; \
$(RMV) $@; \
echo "// Warning this file is automatically generated" > $@; \
- echo "$(INDEX_NAME) {" >> $@; \
+ echo "$(INDEX_NAME):table(nofallback) {" >> $@; \
echo " InstalledLocales {" >> $@; \
for file in $(INSTALLED_RBNF_FILES); do \
echo " $$file {\"\"}" >> $@; \
@@ -447,15 +493,39 @@ all-RES: $(RES_FILES)
$(BUILDDIR)/%.res: $(LOCSRCDIR)/%.txt $(BINDIR)/genrb$(EXEEXT) $(DAT_FILES)
$(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -i $(BUILDDIR) -s $(LOCSRCDIR) -d $(BUILDDIR) $(<F)
+# if the tzcode directory contains a new tzdata*.tar.gz file, use it for zoneinfo.txt
+TZDATA = $(firstword $(wildcard $(top_builddir)/tools/tzcode/tzdata*.tar.gz) $(wildcard $(top_srcdir)/tools/tzcode/tzdata*.tar.gz))
+
+ifneq ($(TZDATA),)
+
+TZCODE_DIR=$(top_builddir)/tools/tzcode
+ZONEINFO=$(TZCODE_DIR)/zoneinfo.txt
+
+# Override the normal genrb for zoneinfo.txt to always pull from
+# icu/source/tools/tzcode/zoneinfo.txt
+$(BUILDDIR)/zoneinfo.res: $(ZONEINFO) $(BINDIR)/genrb$(EXEEXT)
+ @echo Note: $(MISCSRCDIR)/zoneinfo.txt is IGNORED because $(TZDATA) is present.
+ $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -q -i $(BUILDDIR) -d $(BUILDDIR) $(ZONEINFO)
+
+# Create the tzcode tool and zoneinfo.txt as needed.
+$(ZONEINFO): $(TZDATA)
+ @echo "$(MAKE)[$(MAKELEVEL)]: Making \`$(ZONEINFO)' in \`$(TZCODE_DIR)'"; \
+ (cd $(TZCODE_DIR) && $(MAKE)) || exit; \
+
+# end of zoneinfo.txt-generation
+endif
+
# zoneinfo has some issues. Ignore some warnings with -q
$(BUILDDIR)/%.res: $(MISCSRCDIR)/%.txt $(BINDIR)/genrb$(EXEEXT)
$(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -q -i $(BUILDDIR) -s $(MISCSRCDIR) -d $(BUILDDIR) $(<F)
+
+
$(OUTTMPDIR)/$(INDEX_NAME).txt: $(SRCLISTDEPS)
@echo "generating $@ (list of installed locales)"; \
$(RMV) $@; \
echo "// Warning this file is automatically generated" > $@; \
- echo "$(INDEX_NAME) {" >> $@; \
+ echo "$(INDEX_NAME):table(nofallback) {" >> $@; \
echo " InstalledLocales {" >> $@; \
for file in $(INSTALLED_RB_FILES); do \
echo " $$file {\"\"}" >> $@; \
diff --git a/Build/source/libs/icu-xetex/data/brkitr/brkfiles.mk b/Build/source/libs/icu-xetex/data/brkitr/brkfiles.mk
index 84863aec53f..06f3600230d 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/brkfiles.mk
+++ b/Build/source/libs/icu-xetex/data/brkitr/brkfiles.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1997-2004, International Business Machines
+# * Copyright (C) 1998-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -14,18 +14,32 @@
#
# * To add an additional locale to the list:
# _____________________________________________________
-# | BRK_SOURCE_LOCAL = myLocale.txt ...
+# | BRK_RES_SOURCE_LOCAL = myLocale.txt ...
#
# * To REPLACE the default list and only build with a few
# locale:
# _____________________________________________________
-# | BRK_SOURCE = ar.txt ar_AE.txt en.txt de.txt zh.txt
+# | BRK_RES_SOURCE = ar.txt ar_AE.txt en.txt de.txt zh.txt
#
#
+# Generated by LDML2ICUConverter, from LDML source files.
+# Aliases which do not have a corresponding xx.xml file (see icu-config.xml & build.xml)
+BRK_RES_SYNTHETIC_ALIAS =
+
+
+# All aliases (to not be included under 'installed'), but not including root.
+BRK_RES_ALIAS_SOURCE = $(BRK_RES_SYNTHETIC_ALIAS)
+
+
+# List of compact trie dictionary files (ctd).
+BRK_CTD_SOURCE = thaidict.txt
+
+
+# List of break iterator files (brk).
+BRK_SOURCE = word_POSIX.txt word_ja.txt char.txt word.txt line.txt sent.txt title.txt
+
+
+# Ordinary resources
+BRK_RES_SOURCE = en.txt en_US.txt en_US_POSIX.txt ja.txt
-# don't include thaidict.brk - it goes into a resource bundle - plus it isn't deleted.
-# char.txt, title.txt and word.txt are not included so that more tests pass by default,
-# and so that the makefile rules are simplier.
-BRK_SOURCE = \
-line.txt sent.txt line_th.txt word_th.txt word_ja.txt word_POSIX.txt
diff --git a/Build/source/libs/icu-xetex/data/brkitr/brklocal.mk b/Build/source/libs/icu-xetex/data/brkitr/brklocal.mk
deleted file mode 100644
index 88e1c4af866..00000000000
--- a/Build/source/libs/icu-xetex/data/brkitr/brklocal.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# * Copyright (C) 1997-2004, International Business Machines
-# * Corporation and others. All Rights Reserved.
-# A list of txt's to build
-# Note:
-#
-# If you are thinking of modifying this file, READ THIS.
-#
-# Instead of changing this file [unless you want to check it back in],
-# you should consider creating a 'brklocal.mk' file in this same directory.
-# Then, you can have your local changes remain even if you upgrade or
-# reconfigure ICU.
-#
-# Example 'brklocal.mk' files:
-#
-# * To add an additional locale to the list:
-# _____________________________________________________
-# | BRK_SOURCE_LOCAL = myLocale.txt ...
-#
-# * To REPLACE the default list and only build with a few
-# locale:
-# _____________________________________________________
-# | BRK_SOURCE = ar.txt ar_AE.txt en.txt de.txt zh.txt
-#
-#
-
-
-# don't include thaidict.brk - it goes into a resource bundle - plus it isn't deleted.
-# char.txt, title.txt and word.txt are not included so that more tests pass by default,
-# and so that the makefile rules are simplier.
-BRK_SOURCE = \
-line.txt line_th.txt
diff --git a/Build/source/libs/icu-xetex/data/brkitr/char.txt b/Build/source/libs/icu-xetex/data/brkitr/char.txt
index 5e479f9f5bb..58170ddf698 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/char.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/char.txt
@@ -1,12 +1,14 @@
#
-# Copyright (C) 2002-2005, International Business Machines Corporation and others.
+# Copyright (C) 2002-2006, International Business Machines Corporation and others.
# All Rights Reserved.
#
# file: char.txt
#
# ICU Character Break Rules, also known as Grapheme Cluster Boundaries
# See Unicode Standard Annex #29.
-# These rules are based on TR29 Version 4.0.0
+# These rules are based on TR29 Version 5.0.0
+# Includes post-5.0 change to treat Japanese half width voicing marks
+# as Grapheme Extend.
#
#
@@ -15,7 +17,10 @@
$CR = [\p{Grapheme_Cluster_Break = CR}];
$LF = [\p{Grapheme_Cluster_Break = LF}];
$Control = [\p{Grapheme_Cluster_Break = Control}];
-$Extend = [\p{Grapheme_Cluster_Break = Extend}];
+
+# add Japanese Half Width voicing marks to $Extend
+$VoiceMarks = [\uff9e\uff9f];
+$Extend = [\p{Grapheme_Cluster_Break = Extend} $VoiceMarks];
#
# Korean Syllable Definitions
diff --git a/Build/source/libs/icu-xetex/data/brkitr/en.txt b/Build/source/libs/icu-xetex/data/brkitr/en.txt
new file mode 100644
index 00000000000..6b7b82a2886
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/en.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/xml/brkitr/en.xml
+// *
+// ***************************************************************************
+en{
+ Version{"1.1"}
+}
diff --git a/Build/source/libs/icu-xetex/data/brkitr/en_US.txt b/Build/source/libs/icu-xetex/data/brkitr/en_US.txt
new file mode 100644
index 00000000000..ea1504f5d7c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/en_US.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/xml/brkitr/en_US.xml
+// *
+// ***************************************************************************
+en_US{
+ Version{"1.1"}
+}
diff --git a/Build/source/libs/icu-xetex/data/brkitr/en_US_POSIX.txt b/Build/source/libs/icu-xetex/data/brkitr/en_US_POSIX.txt
new file mode 100644
index 00000000000..6f5ebe8a077
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/en_US_POSIX.txt
@@ -0,0 +1,14 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/xml/brkitr/en_US_POSIX.xml
+// *
+// ***************************************************************************
+en_US_POSIX{
+ Version{"1.1"}
+ boundaries{
+ word:process(dependency){"word_POSIX.brk"}
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/brkitr/ja.txt b/Build/source/libs/icu-xetex/data/brkitr/ja.txt
new file mode 100644
index 00000000000..690f13d4c59
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/ja.txt
@@ -0,0 +1,14 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/xml/brkitr/ja.xml
+// *
+// ***************************************************************************
+ja{
+ Version{"1.1"}
+ boundaries{
+ word:process(dependency){"word_ja.brk"}
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/brkitr/line.txt b/Build/source/libs/icu-xetex/data/brkitr/line.txt
index 515c52a36d5..31344ceb1b6 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/line.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/line.txt
@@ -1,11 +1,12 @@
-# Copyright (c) 2002-2005 International Business Machines Corporation and
+# Copyright (c) 2002-2006 International Business Machines Corporation and
# others. All Rights Reserved.
#
# file: line.txt
#
# Line Breaking Rules
-# Implement default line breaking as defined by Unicode TR 14.
-#
+# Implement default line breaking as defined by Unicode Standard Annex #14 version 5.0.0
+# http://www.unicode.org/reports/tr14/
+
#
@@ -21,7 +22,7 @@
# !!lookAheadHardBreak Described here because it is (as yet) undocumented elsewhere
# and only used for the line break rules.
#
-# It is used in the implementation of the incredibly annoying rule LB 7c
+# It is used in the implementation of the incredibly annoying rule LB 10
# which says to treat any combining mark that is not attached to a base
# character as if it were of class AL (alphabetic).
#
@@ -37,8 +38,8 @@
# is now unattached, becomes an alpha, and joins in with the other
# alphas.
#
-# When interating forwards, these sequences do not present any problems
-# When interating backwards, we need to look ahead when encountering
+# When iterating forwards, these sequences do not present any problems
+# When iterating backwards, we need to look ahead when encountering
# a CM to see whether it attaches to something further on or not.
# (Look-ahead in a reverse rule is looking towards the start)
#
@@ -89,14 +90,21 @@ $WJ = [:LineBreak = Word_Joiner:];
$XX = [:LineBreak = Unknown:];
$ZW = [:LineBreak = ZWSpace:];
+# Dictionary character set, for triggering language-based break engines. Currently
+# limited to LineBreak=Complex_Context. Note that this set only works in Unicode
+# 5.0 or later as the definition of Complex_Context was corrected to include all
+# characters requiring dictionary break.
+
+$dictionary = [:LineBreak = Complex_Context:];
#
# Rule LB1. By default, treat AI (characters with ambiguous east Asian width),
# SA (South East Asian: Thai, Lao, Khmer)
+# SG (Unpaired Surrogates)
# XX (Unknown, unassigned)
# as $AL (Alphabetic)
#
-$ALPlus = [$AL $AI $SA $XX];
+$ALPlus = [$AL $AI $SA $SG $XX];
#
# Combining Marks. X $CM* behaves as if it were X. Rule LB6.
@@ -166,8 +174,8 @@ $WJ $CM+;
# Note that $CM itself is left out of this set. If CM is needed as a base
# it must be listed separately in the rule.
#
-$CAN_CM = [^$BK $CR $LF $NL $ZW $SP $CM]; # Bases that can take CMs
-$CANT_CM = [ $BK $CR $LF $NL $ZW $SP $CM]; # Bases that can't take CMs
+$CAN_CM = [^$SP $BK $CR $LF $NL $ZW $CM]; # Bases that can take CMs
+$CANT_CM = [ $SP $BK $CR $LF $NL $ZW $CM]; # Bases that can't take CMs
#
# AL_FOLLOW set of chars that can unconditionally follow an AL
@@ -176,164 +184,197 @@ $CANT_CM = [ $BK $CR $LF $NL $ZW $SP $CM]; # Bases that can't take CMs
# so for this one case we need to manually list out longer sequences.
#
$AL_FOLLOW_NOCM = [$BK $CR $LF $NL $ZW $SP];
-$AL_FOLLOW_CM = [$CL $EX $IS $SY $WJ $GL $QU $BA $HY $NS $IN $NU $ALPlus];
+$AL_FOLLOW_CM = [$CL $EX $IS $SY $WJ $GL $QU $BA $HY $NS $IN $NU $ALPlus $OP];
$AL_FOLLOW = [$AL_FOLLOW_NOCM $AL_FOLLOW_CM];
#
-# Rule LB 3 Mandatory (Hard) breaks.
+# Rule LB 4, 5 Mandatory (Hard) breaks.
#
-$LB3Breaks = [$BK $CR $LF $NL];
-$LB3NonBreaks = [^$BK $CR $LF $NL];
-
-$LB3NonBreaks? $LB3Breaks {100}; # LB 3c do not break before hard breaks.
-$CAN_CM $CM* $LB3Breaks {100};
-$CM+ $LB3Breaks {100};
+$LB4Breaks = [$BK $CR $LF $NL];
+$LB4NonBreaks = [^$BK $CR $LF $NL];
$CR $LF {100};
-# LB 4 x SP
+#
+# LB 6 Do not break before hard line breaks.
+#
+$LB4NonBreaks? $LB4Breaks {100}; # LB 5 do not break before hard breaks.
+$CAN_CM $CM* $LB4Breaks {100};
+$CM+ $LB4Breaks {100};
+
+# LB 7 x SP
# x ZW
-$LB3NonBreaks [$SP $ZW];
+$LB4NonBreaks [$SP $ZW];
$CAN_CM $CM* [$SP $ZW];
$CM+ [$SP $ZW];
-# LB 5 Break after zero width space
-$LB5Breaks = [$LB3Breaks $ZW];
-$LB5NonBreaks = [[$LB3NonBreaks] - [$ZW]];
+#
+# LB 8 Break after zero width space
+#
+$LB8Breaks = [$LB4Breaks $ZW];
+$LB8NonBreaks = [[$LB4NonBreaks] - [$ZW]];
-# LB 7 Combining marks. X $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL
+# LB 9 Combining marks. X $CM needs to behave like X, where X is not $SP, $BK $CR $LF $NL
# $CM not covered by the above needs to behave like $AL
# See definition of $CAN_CM.
-$CAN_CM $CM+; # Stick together any combining sequences that don't match other rules.
+$CAN_CM $CM+; # Stick together any combining sequences that don't match other rules.
$CM+;
#
-# LB 8
+# LB 11 Do not break before or after WORD JOINER & related characters.
+#
+$CAN_CM $CM* $WJcm;
+$LB8NonBreaks $WJcm;
+$CM+ $WJcm;
+
+$WJcm [^$CAN_CM];
+$WJcm $CAN_CM $CM*;
+
+#
+# LB 12 Do not break before or after NBSP and related characters.
+#
+# (!SP) x GL
+[$LB8NonBreaks-$SP] $CM* $GLcm;
+$CM+ $GLcm;
+
+# GL x
+$GLcm ($LB8Breaks | $SP);
+$GLcm [$LB8NonBreaks-$SP] $CM*; # Don't let a combining mark go onto $CR, $BK, etc.
+ # TODO: I don't think we need this rule.
+ # All but $CM will chain off of preceding rule.
+ # $GLcm will pick up the CM case by itself.
+
+
+
+
+#
+# LB 13 Don't break before ']' or '!' or ';' or '/', even after spaces.
#
-$LB5NonBreaks $CL;
+$LB8NonBreaks $CL;
$CAN_CM $CM* $CL;
-$CM+ $CL; # by rule 7c, stand-alone CM behaves as AL
+$CM+ $CL; # by rule 10, stand-alone CM behaves as AL
-$LB5NonBreaks $EX;
+$LB8NonBreaks $EX;
$CAN_CM $CM* $EX;
-$CM+ $EX; # by rule 7c, stand-alone CM behaves as AL
+$CM+ $EX; # by rule 10, stand-alone CM behaves as AL
-$LB5NonBreaks $IS;
+$LB8NonBreaks $IS;
$CAN_CM $CM* $IS;
-$CM+ $IS; # by rule 7c, stand-alone CM behaves as AL
+$CM+ $IS; # by rule 10, stand-alone CM behaves as AL
-$LB5NonBreaks $SY;
+$LB8NonBreaks $SY;
$CAN_CM $CM* $SY;
-$CM+ $SY; # by rule 7c, stand-alone CM behaves as AL
+$CM+ $SY; # by rule 10, stand-alone CM behaves as AL
#
-# LB 9
+# LB 14 Do not break after OP, even after spaced
#
$OPcm $SP* $CAN_CM $CM*;
$OPcm $SP* $CANT_CM;
-$OPcm $SP+ $CM+ $AL_FOLLOW?; # by rule 7c, stand-alone CM behaves as AL
+$OPcm $SP+ $CM+ $AL_FOLLOW?; # by rule 10, stand-alone CM behaves as AL
-# LB 10
+# LB 15
$QUcm $SP* $OPcm;
-# LB 11
+# LB 16
$CLcm $SP* $NScm;
-# LB 11a
+# LB 17
$B2cm $SP* $B2cm;
-# LB 11b Word Joiner
#
-$CAN_CM $CM* $WJcm;
-$LB5NonBreaks $WJcm;
-$CM+ $WJcm;
-
-$WJcm [^$CAN_CM];
-$WJcm $CAN_CM $CM*;
-
-# LB 12
-$LB12NonBreaks = [$LB5NonBreaks - [$SP]];
-$LB12Breaks = [$LB5Breaks $SP];
-
-# LB 13
-# x GL
-$LB12NonBreaks $CM* $GLcm;
-$CM+ $GLcm;
-
-
-# GL x
+# LB 18 Break after spaces.
#
-$GLcm $LB12Breaks;
-$GLcm $LB12NonBreaks $CM*; # Don't let a combining mark go onto $CR, $BK, etc.
- # TODO: I don't think we need this rule.
- # All but $CM will chain off of preceding rule.
- # $GLcm will pick up the CM case by itself.
+$LB18NonBreaks = [$LB8NonBreaks - [$SP]];
+$LB18Breaks = [$LB8Breaks $SP];
+
-# LB 14
+# LB 19
# x QU
-$LB12NonBreaks $CM* $QUcm;
+$LB18NonBreaks $CM* $QUcm;
$CM+ $QUcm;
# QU x
$QUcm .?;
-$QUcm $LB12NonBreaks $CM*; # Don't let a combining mark go onto $CR, $BK, etc.
+$QUcm $LB18NonBreaks $CM*; # Don't let a combining mark go onto $CR, $BK, etc.
# TODO: I don't think this rule is needed.
-# LB 14a
+# LB 20
# <break> $CB
# $CB <break>
-$LB14NonBreaks = [$LB12NonBreaks - $CB];
+$LB20NonBreaks = [$LB18NonBreaks - $CB];
-# LB 15
-$LB14NonBreaks $CM* ($BAcm | $HYcm | $NScm);
+# LB 21 x (BA | HY | NS)
+# BB x
+#
+$LB20NonBreaks $CM* ($BAcm | $HYcm | $NScm);
$BBcm [^$CB]; # $BB x
-$BBcm $LB14NonBreaks $CM*;
+$BBcm $LB20NonBreaks $CM*;
-# LB 16
+# LB 22
$ALcm $INcm;
-$CM+ $INcm; # by rule 7c, any otherwise unattached CM behaves as AL
+$CM+ $INcm; # by rule 10, any otherwise unattached CM behaves as AL
$IDcm $INcm;
$INcm $INcm;
$NUcm $INcm;
-# $LB 17
+# $LB 23
$IDcm $POcm;
$ALcm $NUcm; # includes $LB19
-$CM+ $NUcm; # Rule 7c, any otherwise unattached CM behaves as AL
+$CM+ $NUcm; # Rule 10, any otherwise unattached CM behaves as AL
$NUcm $ALcm;
-# LB 18
-$PRcm? ($OPcm | $HYcm)? $NUcm ($NUcm | $SYcm | $IScm)* $CLcm? $POcm?;
-$PRcm $ALcm;
+#
+# LB 24
+#
$PRcm $IDcm;
+$PRcm $ALcm;
+$POcm $ALcm;
-# LB 18b Do not break a Korean syllable
+#
+# LB 25 Numbers.
+#
+($PRcm | $POcm)? ($OPcm | $HYcm)? $NUcm ($NUcm | $SYcm | $IScm)* $CLcm? ($PRcm | $POcm)?;
+
+# LB 26 Do not break a Korean syllable
+#
$JLcm ($JLcm | $JVcm | $H2cm | $H3cm);
($JVcm | $H2cm) ($JVcm | $JTcm);
($JTcm | $H3cm) $JTcm;
-# LB 18c Treat korean Syllable Block the same as ID (don't break it)
+# LB 27 Treat korean Syllable Block the same as ID (don't break it)
($JLcm | $JVcm | $JTcm | $H2cm | $H3cm) $INcm;
($JLcm | $JVcm | $JTcm | $H2cm | $H3cm) $POcm;
$PRcm ($JLcm | $JVcm | $JTcm | $H2cm | $H3cm);
-# LB 19
+# LB 28 Do not break between alphabetics
+#
$ALcm $ALcm;
-$CM+ $ALcm; # The $CM+ is from rule 7C, and unattached CM is treated as AL
+$CM+ $ALcm; # The $CM+ is from rule 10, and unattached CM is treated as AL
-# LB 19b
+# LB 29
$IScm $ALcm;
#
+# Rule 30 Do not break between letters, numbers or ordinary symbols
+# and opening or closing punctuation
+#
+($ALcm | $NUcm) $OPcm;
+$CM+ $OPcm;
+$CLcm ($ALcm | $NUcm);
+
+
+
+#
# Reverse Rules.
#
## -------------------------------------------------
@@ -365,7 +406,7 @@ $CM+ $QU;
$CM+ $SY;
$CM+ $WJ;
$CM+;
-
+
#
# Sequences of the form (shown forwards)
@@ -375,8 +416,8 @@ $CM+;
$AL_FOLLOW $CM+ / (
[$BK $CR $LF $NL $ZW {eof}] |
$SP+ $CM+ $SP |
- $SP+ $CM* ([^$OP $CM $SP] | [$AL {eof}])); # if LB9 will match, need to surpress this break.
- # LB9 says OP SP* x .
+ $SP+ $CM* ([^$OP $CM $SP] | [$AL {eof}])); # if LB 14 will match, need to surpress this break.
+ # LB14 says OP SP* x .
# becomes OP SP* x AL
# becomes OP SP* x CM+ AL_FOLLOW
#
@@ -390,142 +431,158 @@ $AL_FOLLOW $CM+ / (
# The CM needs to behave as an AL
# This rule is concerned about getting the second of the two <breaks> in place.
#
+
[$PR ] / $CM+ [$BK $CR $LF $NL $ZW $SP {eof}];
-# LB 3
+# LB 4, 5, 5
-$LB3Breaks [$LB3NonBreaks-$CM];
-$LB3Breaks $CM+ $CAN_CM;
+$LB4Breaks [$LB4NonBreaks-$CM];
+$LB4Breaks $CM+ $CAN_CM;
$LF $CR;
-# LB 4 x SP
+# LB 7 x SP
# x ZW
-[$SP $ZW] [$LB3NonBreaks-$CM];
+[$SP $ZW] [$LB4NonBreaks-$CM];
[$SP $ZW] $CM+ $CAN_CM;
-# LB 5 Break after zero width space
+# LB 8 Break after zero width space
-# LB 7 Combining marks.
+# LB 9,10 Combining marks.
# X $CM needs to behave like X, where X is not $SP or controls.
# $CM not covered by the above needs to behave like $AL
# Stick together any combining sequences that don't match other rules.
$CM+ $CAN_CM;
-# LB 8
+
+# LB 11
+$CM* $WJ $CM* $CAN_CM;
+$CM* $WJ [$LB8NonBreaks-$CM];
+
+ $CANT_CM $CM* $WJ;
+$CM* $CAN_CM $CM* $WJ;
+
+# LB 12
+# x GL
+#
+$CM* $GL $CM* [$LB8NonBreaks-$CM-$SP];
+
+#
+# GL x
+#
+$CANT_CM $CM* $GL;
+$CM* $CAN_CM $CM* $GL;
+
+
+# LB 13
$CL $CM+ $CAN_CM;
$EX $CM+ $CAN_CM;
$IS $CM+ $CAN_CM;
$SY $CM+ $CAN_CM;
-$CL [$LB5NonBreaks-$CM];
-$EX [$LB5NonBreaks-$CM];
-$IS [$LB5NonBreaks-$CM];
-$SY [$LB5NonBreaks-$CM];
+$CL [$LB8NonBreaks-$CM];
+$EX [$LB8NonBreaks-$CM];
+$IS [$LB8NonBreaks-$CM];
+$SY [$LB8NonBreaks-$CM];
-# Rule 9 & 8 together.
+# Rule 13 & 14 taken together for an edge case.
+# Match this, shown forward
+# OP SP+ ($CM+ behaving as $AL) (CL | EX | IS | IY)
# This really wants to chain at the $CM+ (which is acting as an $AL)
# except for $CM chaining being disabled.
[$CL $EX $IS $SY] $CM+ $SP+ $CM* $OP;
-# LB 9 OP SP* x
+# LB 14 OP SP* x
#
$CM* $CAN_CM $SP* $CM* $OP;
$CANT_CM $SP* $CM* $OP;
-$AL_FOLLOW? $CM+ $SP $SP* $CM* $OP; # by LB 7, behaves like $AL_FOLLOW? $AL $SP* $CM* $OP
+$AL_FOLLOW? $CM+ $SP $SP* $CM* $OP; # by LB 10, behaves like $AL_FOLLOW? $AL $SP* $CM* $OP
$AL_FOLLOW_NOCM $CM+ $SP+ $CM* $OP;
$CM* $AL_FOLLOW_CM $CM+ $SP+ $CM* $OP;
-$SY $CM $SP+ $OP; # Experiment. Remove.
+$SY $CM $SP+ $OP; # TODO: Experiment. Remove.
-# LB 10
+# LB 15
$CM* $OP $SP* $CM* $QU;
-# LB 11
+# LB 16
$CM* $NS $SP* $CM* $CL;
-# LB 11a
+# LB 17
$CM* $B2 $SP* $CM* $B2;
-# LB 11b
-$CM* $WJ $CM* $CAN_CM;
-$CM* $WJ [$LB5NonBreaks-$CM];
-
- $CANT_CM $CM* $WJ;
-$CM* $CAN_CM $CM* $WJ;
+# LB 18 break after spaces
+# Nothing explicit needed here.
-# LB 12
-
-# LB 13
-# x GL
-#
-$CM* $GL $CM* [$LB12NonBreaks-$CM];
#
-# GL x
-#
-$CANT_CM $CM* $GL;
-$CM* $CAN_CM $CM* $GL;
-
-
-
-#
-# LB 14
+# LB 19
#
$CM* $QU $CM* $CAN_CM; # . x QU
-$CM* $QU $LB12NonBreaks;
+$CM* $QU $LB18NonBreaks;
$CM* $CAN_CM $CM* $QU; # QU x .
$CANT_CM $CM* $QU;
+
+#
+# LB 20 Break before and after CB.
+# nothing needed here.
+#
-# LB 15
-$CM* ($BA | $HY | $NS) $CM* [$LB14NonBreaks-$CM]; # . x (BA | HY | NS)
+# LB 21
+$CM* ($BA | $HY | $NS) $CM* [$LB20NonBreaks-$CM]; # . x (BA | HY | NS)
-$CM* [$LB14NonBreaks-$CM] $CM* $BB; # BB x .
+$CM* [$LB20NonBreaks-$CM] $CM* $BB; # BB x .
[^$CB] $CM* $BB; #
-# LB 16
+# LB 22
$CM* $IN $CM* $ALPlus;
$CM* $IN $CM* $ID;
$CM* $IN $CM* $IN;
$CM* $IN $CM* $NU;
-# $LB 17
+# LB 23
$CM* $PO $CM* $ID;
$CM* $NU $CM* $ALPlus;
$CM* $ALPlus $CM* $NU;
-# LB 18
-($CM* $PO)? ($CM* $CL)? ($CM* ($NU | $IS | $SY))* $CM* $NU ($CM* ($OP | $HY))? ($CM* $PR)?;
-$CM* $ALPlus $CM* $PR;
+# LB 24
$CM* $ID $CM* $PR;
+$CM* $ALPlus $CM* $PR;
+$CM* $ALPlus $CM* $PO;
+
+
+# LB 25
+($CM* ($PR | $PO))? ($CM* $CL)? ($CM* ($NU | $IS | $SY))* $CM* $NU ($CM* ($OP | $HY))? ($CM* ($PR | $PO))?;
-# LB 18b
+# LB 26
$CM* ($H3 | $H2 | $JV | $JL) $CM* $JL;
$CM* ($JT | $JV) $CM* ($H2 | $JV);
$CM* $JT $CM* ($H3 | $JT);
-# LB 18c
+# LB 27
$CM* $IN $CM* ($H3 | $H2 | $JT | $JV | $JL);
$CM* $PO $CM* ($H3 | $H2 | $JT | $JV | $JL);
$CM* ($H3 | $H2 | $JT | $JV | $JL) $CM* $PR;
-# LB 19
+# LB 28
$CM* $ALPlus $CM* $ALPlus;
-# LB 19b
+# LB 29
$CM* $ALPlus $CM* $IS;
-
+# LB 30
+$CM* $OP $CM* ($NU | $ALPlus);
+$CM* ($NU | $ALPlus) $CM* $CL;
## -------------------------------------------------
@@ -550,6 +607,9 @@ $SP+ $CM* $B2;
($CM* ($IS | $SY))+ $CM* $NU;
$CL $CM* ($NU | $IS | $SY);
+# For dictionary-based break
+$dictionary $dictionary;
+
## -------------------------------------------------
!!safe_forward;
@@ -563,5 +623,6 @@ $CL $CM* ($NU | $IS | $SY);
# turn off rule chaining. We don't want to move more
# than necessary.
#
-[$CM $OP $QU $CL $B2 $PR $HY $SP]+ [^$CM $OP $QU $CL $B2 $PR $HY];
+[$CM $OP $QU $CL $B2 $PR $HY $SP $dictionary]+ [^$CM $OP $QU $CL $B2 $PR $HY $dictionary];
+$dictionary $dictionary;
diff --git a/Build/source/libs/icu-xetex/data/brkitr/line_th.txt b/Build/source/libs/icu-xetex/data/brkitr/line_th.txt
deleted file mode 100644
index d89498bfd83..00000000000
--- a/Build/source/libs/icu-xetex/data/brkitr/line_th.txt
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright (c) 2002-2005, International Business Machines Corporation and
-# others. All Rights Reserved.
-#
-# file: line.txt
-#
-# Line Breaking Rules for ICU rules based break iteration.
-# Implement default line breaking as defined by Unicode TR 14.
-#
-# TODO: Rework the rules not pertaining to Thai to be based on the
-# default line break rules. Not done yet because of interactions
-# between exact reverse rules and the Dictionary code.
-#
-# These rules, in their current form, do not conform to TR-14 for
-# non-Thai breaks.
-#
-
-$LF = [\p{LineBreak = LF}];
-$IN = [\p{LineBreak = IN}];
-$SY = [\p{LineBreak = SY}];
-$EX = [\p{LineBreak = EX}];
-$BA = [\p{LineBreak = BA}];
-$IS = [\p{LineBreak = IS}];
-$BB = [\p{LineBreak = BB}];
-$SA = [\p{LineBreak = SA}];
-$CB = [\p{LineBreak = CB}];
-$XX = [\p{LineBreak = XX}];
-$HY = [\p{LineBreak = HY}];
-$AI = [\p{LineBreak = AI}];
-$ZW = [\p{LineBreak = ZW}];
-$SG = [\p{LineBreak = SG}];
-$AL = [\p{LineBreak = AL}];
-$OP = [\p{LineBreak = OP}];
-$BK = [\p{LineBreak = BK}];
-$PO = [\p{LineBreak = PO}];
-$NS = [\p{LineBreak = NS}];
-$CL = [\p{LineBreak = CL}];
-$NU = [\p{LineBreak = NU}];
-$CM = [\p{LineBreak = CM}];
-$PR = [\p{LineBreak = PR}];
-$B2 = [\p{LineBreak = B2}];
-$ID = [\p{LineBreak = ID}];
-$SP = [\p{LineBreak = SP}];
-$QU = [\p{LineBreak = QU}];
-$CR = [\p{LineBreak = CR}];
-$GL = [\p{LineBreak = GL}];
-
-$JL = [\p{LineBreak = JL}];
-$JV = [\p{LineBreak = JV}];
-$JT = [\p{LineBreak = JT}];
-$H2 = [\p{LineBreak = H2}];
-$H3 = [\p{LineBreak = H3}];
-
-
-$Extend = [\{p{Grapheme_Cluster_Break = Extend}];
-
-
-#
-# Thai Dictionary related definitions and rules
-#
-
-$dictionary = [\u0e01-\u0e2e \u0e30-\u0e3a \u0e40-\u0e44 \u0e47-\u0e4e]; # this rule breaks the iterator with mixed Thai and English
-$paiyannoi = [\u0e2f];
-$maiyamok = [\u0e46];
-$thai_etc = $paiyannoi \u0e25 $paiyannoi;
-
-
-
-#
-# Rule LB1. By default, treat AI (characters with ambiguous east Asian width) and
-# SA (South East Asian: Thai, Lao, Khmer) as $AL (Alphabetic)
-#
-$ALPlus = $AL | $AI | [$SA - $dictionary];
-
-#
-# Combining Marks. X $CM* behaves as if it were X. Rule LB6.
-# TODO: This is going to produce some odd results, because of the non-combining
-# chars that are included in $CM. Use $Extend instead, where possible.
-#
-$ALcm = $ALPlus $CM*;
-$IDcm = $ID $CM*;
-$NUcm = $NU $Extend*;
-$HYcm = $HY $Extend*;
-$SPcm = $SP $Extend*;
-$QUcm = $QU $Extend*;
-$POcm = $PO $Extend*;
-$OPcm = $OP $Extend*;
-$BAcm = $BA $Extend*;
-$BBcm = $BB $Extend*;
-$NScm = $NS $Extend*;
-$GLcm = $GL $Extend*;
-$B2cm = $B2 $Extend*;
-$INcm = $IN $Extend*;
-
-
-# New Lines. Always break after, never break before.
-# Rule LB 3
-#
-# Endings. NewLine or Zero Width Space, or both. Rules 4, 5
-# Because we never break before these things, $Endings
-# appears at the end of line break rule.
-#
-$NLF = $BK | $CR | $LF | $CR $LF;
-$Endings = $SPcm* $ZW* $NLF?;
-$EndingsMandatory = $SPcm* $NLF | $SPcm* $ZW $NLF?;
-
-
-#
-# Openings Sequences that can precede Words, and that should not be separated from them.
-# Rules LB 9, 10
-#
-$Openings = (($QUcm $SPcm*)? $OPcm $SPcm*)*;
-
-#
-# Closings Seqences that follow words, and that should not be separated from them,
-# Rule LB 8, 11, 15
-$Closings = ($SPcm*( ($CL ($SPcm* $NScm)? | $EX | $IS | $SY) $Extend*) | $BAcm | $HYcm | $NScm | $maiyamok)*;
-
-#
-# Words. Includes mixed Alpha-numerics.
-# Rules 11a, 16, 17, 19, more or less.
-#
-$NumberInterior = $IDcm | ($NUcm | $ALcm | $IS $NUcm)+;
-$Number = $PR? ($OPcm | $HYcm)? $NumberInterior $CL? $POcm?; # Fancy Number 18
-$Word = (($IDcm | ($ALcm | $NUcm)+) ($POcm? | $INcm?)); # Alpha-numeric. 16, 17
-$Dashes = (($B2cm $SPcm*)*); # Dashes 11a
-$ThaiRange = $dictionary+ | $thai_etc;
-$WordLikeThing = $Number | $Word | $Dashes | $ThaiRange;
-
-
-
-
-$Word15 = ($BBcm* ($WordLikeThing)? ($BAcm | $HYcm | $NScm)*) | # Rule 15. Stuff sticks around words.
- [^[:Cc:] $BK $CR $LF $ZW $SP $GL] $Extend* | # Allow characters that don't meet the
- [^$BK $CR $LF $ZW $SP $GL ]; # more elaborate definitions for WORD to be glued.
-
-
-$GluedWord = ($GLcm | $QUcm)? $Word15 (($GLcm | $QUcm) $Word15)*; # "Glue" will stick anything below it together.
- # Rules 13, 14
-
-#
-# The actual rules, a combination of everything defined above.
-#
-$Openings $GluedWord $Closings $paiyannoi? $EndingsMandatory;
-$Openings $GluedWord $Closings $Endings;
-
-$Openings $GluedWord $Closings $paiyannoi /
- ([^\u0e25 $Extend] | \u0e25[^$paiyannoi $Extend]);
-
-
- #"$word($nbsp+$word)*$paiyannoi/([^[\u0e25$_ignore_]]|"
- # + "\u0e25[^$paiyannoi$_ignore_]);"
-
-#
-# LB 18b. Do not break a Korean syllable
-#
-$JL+ $JV* $JT* $Extend*;
-$JV+ $JT* $Extend*;
-$JT+ $Extend*;
-$H2 $JV* $JT* $Extend*;
-$H3 $JT* $Extend*;
-
-#
-# Reverse Rules.
-#
-# Back up to a hard break or a space that will cause a boundary.
-# Not all spaces cause line breaks. $SpaceGlue represents a sequence
-# containing a space that may inhibit a break from occuring.
-#
-$SpaceGlue = ([$ZW $CL $IS $NS $OP] ($Extend* $SP)) | (($Extend* $SP)+ $OP);
-$ClumpingChars = [^$SP $BK $CR $LF];
-
-!. . $ClumpingChars* ($SpaceGlue $ClumpingChars*)* (. | $LF $CR);
-
diff --git a/Build/source/libs/icu-xetex/data/brkitr/root.txt b/Build/source/libs/icu-xetex/data/brkitr/root.txt
new file mode 100644
index 00000000000..817280e816f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/root.txt
@@ -0,0 +1,21 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/xml/brkitr/root.xml
+// *
+// ***************************************************************************
+root{
+ Version{"1.1"}
+ boundaries{
+ grapheme:process(dependency){"char.brk"}
+ line:process(dependency){"line.brk"}
+ sentence:process(dependency){"sent.brk"}
+ title:process(dependency){"title.brk"}
+ word:process(dependency){"word.brk"}
+ }
+ dictionaries{
+ Thai:process(dependency){"thaidict.ctd"}
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/brkitr/sent.txt b/Build/source/libs/icu-xetex/data/brkitr/sent.txt
index 1fe15764bd1..0680525efd1 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/sent.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/sent.txt
@@ -1,15 +1,19 @@
#
-# Copyright (C) 2002-2005, International Business Machines Corporation and others.
+# Copyright (C) 2002-2006, International Business Machines Corporation and others.
# All Rights Reserved.
#
# file: sent.txt
#
# ICU Sentence Break Rules
# See Unicode Standard Annex #29.
-# These rules are based on TR 29 version 4.0.0
+# These rules are based on SA 29 version 5.0.0
+# Includes post 5.0 changes to treat Japanese half width voicing marks
+# as Grapheme Extend.
#
+$VoiceMarks = [\uff9e\uff9f];
+
#
# Character categories as defined in TR 29
#
@@ -18,130 +22,103 @@ $Format = [\p{Sentence_Break = Format}];
$Sp = [\p{Sentence_Break = Sp}];
$Lower = [\p{Sentence_Break = Lower}];
$Upper = [\p{Sentence_Break = Upper}];
-$OLetter = [\p{Sentence_Break = OLetter}];
+$OLetter = [\p{Sentence_Break = OLetter}-$VoiceMarks];
$Numeric = [\p{Sentence_Break = Numeric}];
$ATerm = [\p{Sentence_Break = ATerm}];
-$Term = [\p{Sentence_Break = STerm}];
+$STerm = [\p{Sentence_Break = STerm}];
$Close = [\p{Sentence_Break = Close}];
#
# Define extended forms of the character classes,
# incorporate grapheme cluster + format chars.
+# Rules 4 and 5.
-$Extend = [[:Grapheme_Extend = TRUE:]];
-$ATermEx = $ATerm $Extend* $Format*;
-$NumericEx = $Numeric $Extend* $Format*;
-$UpperEx = $Upper $Extend* $Format*;
-$TermEx = $Term $Extend* $Format*;
-
-#
-# $SepSeq keeps together CRLF as a separator. (CRLF is a grapheme cluster)
-#
-$SepSeq = $Sep | \u000d\u000a;
-
-# $InteriorChars are those that never trigger a following break.
-$InteriorChars = [^$Term $ATerm $Sep]; #Note: includes Extend and Format chars
-
-## -------------------------------------------------
-
-!!forward;
-
-# Rule 6. Match an ATerm (.) that does not cause a break because a number immediately follows it.
-$NumberFollows = $InteriorChars* $ATermEx $NumericEx;
-
-
-# Rule 7. $UppersSurround Match a no-break sentence fragment containing a . surrounded by Uppers
-$UppersSurround = $InteriorChars* $UpperEx $ATermEx $UpperEx;
-# Rule 8 Matches a sentence fragment containing "." that should not cause a sentence break,
-# because a lower case word follows the period.
-$LowerWordFollows = $InteriorChars* $ATermEx $Close* $Sp* [^$OLetter $Upper $Lower $Sep]* $Lower;
+$CR = \u000d;
+$LF = \u000a;
+$Extend = [[:Grapheme_Extend = TRUE:]$VoiceMarks];
-# Rules 3, 9, 10, 11
-# Matches a simple sentence, or the trailing part of a complex sentence,
-# where a simple sentence contains no interior "."s.
-$TermEndSequence = $InteriorChars* ($TermEx | $ATermEx) $Close* $Sp* $SepSeq?;
-$EndSequence = $InteriorChars* $SepSeq?;
+$SpEx = $Sp ($Extend | $Format)*;
+$LowerEx = $Lower ($Extend | $Format)*;
+$UpperEx = $Upper ($Extend | $Format)*;
+$OLetterEx = $OLetter ($Extend | $Format)*;
+$NumericEx = $Numeric ($Extend | $Format)*;
+$ATermEx = $ATerm ($Extend | $Format)*;
+$STermEx = $STerm ($Extend | $Format)*;
+$CloseEx = $Close ($Extend | $Format)*;
-# Put them all together.
-($NumberFollows | $UppersSurround | $LowerWordFollows)* $TermEndSequence{0}; # status = UBRK_SENTENCE_TERM
-($NumberFollows | $UppersSurround | $LowerWordFollows)* $EndSequence{100}; # status = UBRK_SENTENCE_SEP
## -------------------------------------------------
-!!reverse;
-
-# rule 6
-
-$RULE6 = $Numeric $Format* $Extend* $ATerm;
-
-# rule 7
-
-$RULE7 = $Upper $Format* $Extend* $ATerm $Format* $Extend* $Upper;
-
-# rule 8
-
-$RULE8 = $Lower ($Format* $Extend* [^$OLetter $Upper $Lower $Sep])*
- ($Format* $Extend* $Sp)* ($Format* $Extend* $Close)*
- $Format* $Extend* $ATerm;
-
-# rule 9, 10, 11
-
-# $CR $LF
-$End = $Sep | \u000a\u000d
- | $Format* $Extend* $Sp* $Format* $Extend* $Close* $Format*
- $Extend* ($Term | $ATerm)
- | $Sep $Format* $Extend* $Sp* $Format* $Extend* $Close* $Format*
- $Extend* ($Term | $ATerm);
-
-# rule 12
-
-$RULE12 = [^$Sep $Term $ATerm];
-
-$Join = ($RULE6 | $RULE7 | $RULE8 | $RULE12)*;
+!!chain;
+!!forward;
-$End;
+# Rule 3 - break after separators. Keep CR/LF together.
+#
+$CR $LF;
-$End? $Join [$RULE12 - $Sp - $Close];
-# forces a break at the beginning of text "$Sp blah blah blah"
-# remember the break iterators takes the longest match
-$NOT_T_A_S_C = [^$Term $ATerm $Sp $Close];
-$End? $Join $Sp / [$NOT_T_A_S_C {eof}];
+# Rule 4 - Break after $Sep.
+# Rule 5 - Ignore $Format and $Extend
+#
+[^$Sep]? ($Extend | $Format)*;
-# forces a break at the beginning of text "$Close blah blah blah"
-$NOT_T_A_C = [^$Term $ATerm $Close];
-$End? $Join $Close / [$NOT_T_A_C {eof}];
-## -------------------------------------------------
+# Rule 6
+$ATermEx $NumericEx;
-!!safe_reverse;
+# Rule 7
+$UpperEx $ATermEx $UpperEx;
-# rule 4
-$Extend+ [^$Extend];
+#Rule 8
+# Note: follows errata for Unicode 5.0 boundary rules.
+$NotLettersEx = [^$OLetter $Upper $Lower $Sep $ATerm $STerm] ($Extend | $Format)*;
+$ATermEx $CloseEx* $SpEx* $NotLettersEx* $Lower;
-# rule 7
-$Extend* $ATerm $Format* $Extend* $Upper;
+# Rule 8a
+($STermEx | $ATermEx) $CloseEx* $SpEx* ($STermEx | $ATermEx);
-# rule 8
-($Extend* $Term)+ ($Extend* $Sp $Format*)* ($Extend* $Close $Format*)* $Extend* $ATerm;
+#Rule 9, 10, 11
+($STermEx | $ATermEx) $CloseEx* $SpEx* $Sep?;
-# rule 11
-($Extend* $Sp $Format*)* ($Extend* $Close $Format*)*;
-($Extend* $Sp $Format*)* ($Extend* $Close $Format*)* $Extend* ($Term | $ATerm);
+#Rule 12
+[[^$STerm $ATerm $Close $Sp $Sep $Format $Extend]{bof}] ($Extend | $Format | $Close | $Sp)* .;
+[[^$STerm $ATerm $Close $Sp $Sep $Format $Extend]{bof}] ($Extend | $Format | $Close | $Sp)* ([$Sep{eof}] | $CR $LF){100};
## -------------------------------------------------
-!!safe_forward;
-
-# rule 7
-
-$ATerm $Extend* $Format* $Upper;
+!!reverse;
-# rule 8
+$SpEx_R = ($Extend | $Format)* $Sp;
+$ATermEx_R = ($Extend | $Format)* $ATerm;
+$STermEx_R = ($Extend | $Format)* $STerm;
+$CloseEx_R = ($Extend | $Format)* $Close;
-$Lower .;
+#
+# Reverse rules.
+# For now, use the old style inexact reverse rules, which are easier
+# to write, but less efficient.
+# TODO: exact reverse rules. It appears that exact reverse rules
+# may require improving support for look-ahead breaks in the
+# builder. Needs more investigation.
+#
-# rule 11
+[{bof}] (.? | $LF $CR) [^$Sep]* [$Sep {eof}] ($SpEx_R* $CloseEx_R* ($STermEx_R | $ATermEx_R))*;
+#.*;
-($Close $Extend* $Format*)* ($Sp $Extend* $Format*)*; \ No newline at end of file
+# Explanation for this rule:
+#
+# It needs to back over
+# The $Sep at which we probably begin
+# All of the non $Sep chars leading to the preceding $Sep
+# The preceding $Sep, which will be the second one that the rule matches.
+# Any immediately preceding STerm or ATerm sequences. We need to see these
+# to get the correct rule status when moving forwards again.
+#
+# [{bof}] inhibit rule chaining. Without this, rule would loop on itself and match
+# the entire string.
+#
+# (.? | $LF $CR) Match one $Sep instance. Use .? rather than $Sep because position might be
+# at the beginning of the string at this point, and we don't want to fail.
+# Can only use {eof} once, and it is used later.
+#
diff --git a/Build/source/libs/icu-xetex/data/brkitr/thaidict.brk b/Build/source/libs/icu-xetex/data/brkitr/thaidict.brk
deleted file mode 100644
index 47048efa362..00000000000
--- a/Build/source/libs/icu-xetex/data/brkitr/thaidict.brk
+++ /dev/null
Binary files differ
diff --git a/Build/source/libs/icu-xetex/data/brkitr/thaidict.txt b/Build/source/libs/icu-xetex/data/brkitr/thaidict.txt
new file mode 100644
index 00000000000..a53125f04a9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/brkitr/thaidict.txt
@@ -0,0 +1,26359 @@
+ Copyright (c) 2006 International Business Machines Corporation,
+ Apple Computer, Inc., and others. All Rights Reserved.
+à¸à¸
+à¸à¸à¸‚นาà¸
+à¸à¸à¸Šà¹‰à¸²à¸‡
+à¸à¸à¸˜à¸¹à¸›
+à¸à¸à¸«à¸¹
+à¸à¸à¸¸à¸˜à¸ à¸±à¸“ฑ์
+à¸à¸‡
+à¸à¸‡à¸à¸­à¸™
+à¸à¸‡à¸à¸²à¸‡
+à¸à¸‡à¸à¸²à¸£
+à¸à¸‡à¸„้าง
+à¸à¸‡à¸ˆà¸±à¸à¸£
+à¸à¸‡à¸‰à¸²à¸
+à¸à¸‡à¸žà¸±à¸”
+à¸à¸‡à¸¥à¹‰à¸­
+à¸à¸‡à¸§à¸²à¸™
+à¸à¸‡à¸ªà¸µ
+à¸à¸‡à¸ªà¸¸à¸¥
+à¸à¸‡à¸«à¸£à¸²
+à¸à¸‡à¹€à¸à¸§à¸µà¸¢à¸™
+à¸à¸‡à¹€à¸•à¹‡à¸
+à¸à¸‡à¹€à¸•à¹Šà¸
+à¸à¸‡à¹‚à¸à¹‰
+à¸à¸‡à¹„à¸à¸£à¸¥à¸²à¸¨
+à¸à¸‡à¹„ฉ่
+à¸à¸Š
+à¸à¸Šà¸à¸£
+à¸à¸Ž
+à¸à¸Žà¸šà¸±à¸•à¸£
+à¸à¸Žà¸«à¸¡à¸²à¸¢
+à¸à¸Žà¸«à¸¡à¸¹à¹ˆ
+à¸à¸Žà¸¸à¸¡à¸žà¸µ
+à¸à¸à¸´
+à¸à¸à¸¸à¸
+à¸à¸à¸¸à¸à¸œà¸¥
+à¸à¸à¸´à¸™
+à¸à¸à¸´à¸™à¸™à¸±à¸•à¸–า
+à¸à¸“ิà¸à¸²à¸£à¹Œ
+à¸à¸”
+à¸à¸”ขี่
+à¸à¸”ดัน
+à¸à¸”หัว
+à¸à¸”เหลือง
+à¸à¸•à¸±à¸à¸Šà¸¥à¸µ
+à¸à¸•à¸±à¸à¸à¸¸à¸•à¸²
+à¸à¸•à¸±à¸à¸à¸¹
+à¸à¸•à¸±à¸à¸à¸¹à¸•à¸²
+à¸à¸•à¸²à¸˜à¸´à¸à¸²à¸£
+à¸à¸•à¸²à¸ à¸´à¸™à¸´à¸«à¸²à¸£
+à¸à¸•à¸´à¸à¸²
+à¸à¸•à¸´à¸à¸²à¸ªà¸±à¸à¸à¸²
+à¸à¸•à¹€à¸§à¸—ิตา
+à¸à¸•à¹€à¸§à¸—ี
+à¸à¸•à¹€à¸§à¸—ีตา
+à¸à¸–า
+à¸à¸–ามัค
+à¸à¸–ามัคเทสนา
+à¸à¸–ามุข
+à¸à¸—ลี
+à¸à¸™
+à¸à¸™à¸
+à¸à¸™à¸´à¸©à¸
+à¸à¸™à¸´à¸©à¸à¸ à¸²à¸”า
+à¸à¸™à¸´à¸©à¸à¸²
+à¸à¸š
+à¸à¸šà¸Ž
+à¸à¸šà¸
+à¸à¸šà¸”าน
+à¸à¸šà¸—ู
+à¸à¸šà¸²à¸¥
+à¸à¸šà¸´à¸™à¸—ร์
+à¸à¸šà¸´à¸™à¸—ร์บุรี
+à¸à¸šà¸´à¸¥
+à¸à¸šà¸µà¹ˆ
+à¸à¸šà¸¹à¸£
+à¸à¸›à¸´à¸•à¸±à¸™
+à¸à¸¡
+à¸à¸¡à¸“ฑโลทà¸
+à¸à¸¡à¸¥
+à¸à¸¡à¸¥à¸²
+à¸à¸¡à¸¥à¸²à¸¨
+à¸à¸¡à¸¸à¸—
+à¸à¸¡à¹€à¸¥à¸¨
+à¸à¸£
+à¸à¸£à¸à¸Š
+à¸à¸£à¸à¸Ž
+à¸à¸£à¸à¸Žà¸²à¸„ม
+à¸à¸£à¸à¸
+à¸à¸£à¸‡
+à¸à¸£à¸‡à¸‚ัง
+à¸à¸£à¸Šà¸à¸²à¸¢
+à¸à¸£à¸“ฑ์
+à¸à¸£à¸“ิà¸à¸²à¸£à¹Œ
+à¸à¸£à¸“ี
+à¸à¸£à¸“ีย
+à¸à¸£à¸“ียà¸à¸´à¸ˆ
+à¸à¸£à¸“ีย์
+à¸à¸£à¸”
+à¸à¸£à¸”เà¸à¸¥à¸·à¸­
+à¸à¸£à¸”à¹à¸à¹ˆ
+à¸à¸£à¸™
+à¸à¸£à¸™à¸—า
+à¸à¸£à¸š
+à¸à¸£à¸šà¸¹à¸£
+à¸à¸£à¸žà¸±à¸™à¸˜à¹Œ
+à¸à¸£à¸žà¸´à¸™à¸˜à¸¸à¹Œ
+à¸à¸£à¸ à¸¸à¸¡
+à¸à¸£à¸¡
+à¸à¸£à¸¡à¸Šà¸¥à¸›à¸£à¸°à¸—าน
+à¸à¸£à¸¡à¸—่า
+à¸à¸£à¸¡à¸˜à¸£à¸£à¸¡à¹Œ
+à¸à¸£à¸¡à¸™à¸²
+à¸à¸£à¸¡à¸§à¸±à¸‡
+à¸à¸£à¸£
+à¸à¸£à¸£à¸à¸‡
+à¸à¸£à¸£à¸à¸Ž
+à¸à¸£à¸£à¸à¸¨
+à¸à¸£à¸£à¸Šà¸´à¸‡
+à¸à¸£à¸£à¸Šà¸´à¸”
+à¸à¸£à¸£à¸à¸²
+à¸à¸£à¸£à¸à¹Œ
+à¸à¸£à¸£à¸“
+à¸à¸£à¸£à¸“ยุคล
+à¸à¸£à¸£à¸“า
+à¸à¸£à¸£à¸“ิà¸à¸²
+à¸à¸£à¸£à¸“ิà¸à¸²à¸£à¹Œ
+à¸à¸£à¸£à¸•à¸¸
+à¸à¸£à¸£à¸šà¸²à¸ªà¸´à¸
+à¸à¸£à¸£à¸šà¸´à¸”
+à¸à¸£à¸£à¸šà¸¹à¸£
+à¸à¸£à¸£à¸›à¸¸à¸£
+à¸à¸£à¸£à¸›à¸¸à¸£à¸°
+à¸à¸£à¸£à¸žà¸¸à¸¡
+à¸à¸£à¸£à¸¡
+à¸à¸£à¸£à¸¡à¸à¸£
+à¸à¸£à¸£à¸¡à¸à¸£à¸“์
+à¸à¸£à¸£à¸¡à¸à¸²à¸£
+à¸à¸£à¸£à¸¡à¸Šà¸§à¸²à¸•
+à¸à¸£à¸£à¸¡à¸à¸²à¸™
+à¸à¸£à¸£à¸¡à¸šà¸–
+à¸à¸£à¸£à¸¡à¸žà¸±à¸™à¸˜à¸¸à¹Œ
+à¸à¸£à¸£à¸¡à¸§à¸´à¸˜à¸µ
+à¸à¸£à¸£à¸¡à¸ªà¸´à¸—ธิ์
+à¸à¸£à¸£à¸¡à¸²à¸Šà¸µà¸ž
+à¸à¸£à¸£à¸¡à¸²à¸˜à¸´à¸à¸²à¸£
+à¸à¸£à¸£à¸¡à¸²à¸£
+à¸à¸£à¸£à¸¡à¹€à¸§à¸£
+à¸à¸£à¸£à¸¥à¸µ
+à¸à¸£à¸£à¸¥à¸¶à¸‡
+à¸à¸£à¸£à¸ªà¸°
+à¸à¸£à¸£à¸«à¸²à¸¢
+à¸à¸£à¸£à¹€à¸à¸”
+à¸à¸£à¸£à¹€à¸ˆà¸µà¸¢à¸
+à¸à¸£à¸£à¹€à¸Šà¸­
+à¸à¸£à¸£à¹€à¸Šà¸µà¸¢à¸‡
+à¸à¸£à¸£à¹€à¸­à¸²
+à¸à¸£à¸£à¹à¸‹à¸‡
+à¸à¸£à¸£à¹à¸—à¸
+à¸à¸£à¸£à¹à¸—รà¸
+à¸à¸£à¸£à¹à¸ªà¸‡
+à¸à¸£à¸£à¹‚ชà¸
+à¸à¸£à¸£à¹‚หย
+à¸à¸£à¸£à¹„à¸à¸£
+à¸à¸£à¸£à¹„ตร
+à¸à¸£à¸§à¸”
+à¸à¸£à¸§à¸™
+à¸à¸£à¸§à¸š
+à¸à¸£à¸§à¸¡
+à¸à¸£à¸§à¸¢
+à¸à¸£à¸§à¸¢à¸šà¹‰à¸²à¸™
+à¸à¸£à¸§à¸¢à¹€à¸Šà¸´à¸‡
+à¸à¸£à¸§à¸´à¸
+à¸à¸£à¸ªà¸¸à¸—ธิ์
+à¸à¸£à¸­
+à¸à¸£à¸­à¸
+à¸à¸£à¸­à¸à¹à¸à¸£à¸
+à¸à¸£à¸­à¸‡
+à¸à¸£à¸­à¸‡à¸à¸£à¸­à¸¢
+à¸à¸£à¸­à¸”
+à¸à¸£à¸­à¸š
+à¸à¸£à¸­à¸šà¹à¸à¸£à¸š
+à¸à¸£à¸­à¸¡
+à¸à¸£à¸­à¸ªà¸‹à¸¹à¸¥à¸²à¹„รต์
+à¸à¸£à¸°
+à¸à¸£à¸°à¸à¸£
+à¸à¸£à¸°à¸à¸£à¸µà¹Šà¸”
+à¸à¸£à¸°à¸à¸£à¸¸à¹ˆà¸™
+à¸à¸£à¸°à¸à¸§à¸”
+à¸à¸£à¸°à¸à¸­à¸‡
+à¸à¸£à¸°à¸à¸±à¸”
+à¸à¸£à¸°à¸à¸µà¹‰
+à¸à¸£à¸°à¸à¸¹à¸¥
+à¸à¸£à¸°à¸„น
+à¸à¸£à¸°à¸„าย
+à¸à¸£à¸°à¸„ุà¸
+à¸à¸£à¸°à¸‡à¸à¸à¸£à¸°à¹€à¸‡à¸´à¹ˆà¸™
+à¸à¸£à¸°à¸‡à¸­à¸”
+à¸à¸£à¸°à¸‡à¹ˆà¸­à¸‡à¸à¸£à¸°à¹à¸‡à¹ˆà¸‡
+à¸à¸£à¸°à¸‡à¹ˆà¸­à¸™à¸à¸£à¸°à¹à¸‡à¹ˆà¸™
+à¸à¸£à¸°à¸ˆà¸
+à¸à¸£à¸°à¸ˆà¸à¸•à¸²
+à¸à¸£à¸°à¸ˆà¸à¸™à¸¹à¸™
+à¸à¸£à¸°à¸ˆà¸à¹€à¸‡à¸²
+à¸à¸£à¸°à¸ˆà¸à¹€à¸§à¹‰à¸²
+à¸à¸£à¸°à¸ˆà¸‡
+à¸à¸£à¸°à¸ˆà¸£
+à¸à¸£à¸°à¸ˆà¸­
+à¸à¸£à¸°à¸ˆà¸­à¸
+à¸à¸£à¸°à¸ˆà¸­à¸‡à¸­à¹à¸‡
+à¸à¸£à¸°à¸ˆà¸­à¸™à¸«à¸¹
+à¸à¸£à¸°à¸ˆà¸°
+à¸à¸£à¸°à¸ˆà¸±à¸
+à¸à¸£à¸°à¸ˆà¸±à¸‡
+à¸à¸£à¸°à¸ˆà¸±à¸”
+à¸à¸£à¸°à¸ˆà¸±à¸”à¸à¸£à¸°à¸ˆà¸²à¸¢
+à¸à¸£à¸°à¸ˆà¸±à¸š
+à¸à¸£à¸°à¸ˆà¸±à¸šà¸šà¸
+à¸à¸£à¸°à¸ˆà¸±à¸šà¸›à¸´à¹‰à¸‡
+à¸à¸£à¸°à¸ˆà¸±à¸šà¸›à¸µà¹ˆ
+à¸à¸£à¸°à¸ˆà¸²à¸”
+à¸à¸£à¸°à¸ˆà¸²à¸™
+à¸à¸£à¸°à¸ˆà¸²à¸š
+à¸à¸£à¸°à¸ˆà¸²à¸¡
+à¸à¸£à¸°à¸ˆà¸²à¸¢
+à¸à¸£à¸°à¸ˆà¸²à¸§
+à¸à¸£à¸°à¸ˆà¸´à¸
+à¸à¸£à¸°à¸ˆà¸´à¸”
+à¸à¸£à¸°à¸ˆà¸´à¸š
+à¸à¸£à¸°à¸ˆà¸´à¸£à¸´à¸”
+à¸à¸£à¸°à¸ˆà¸´à¹‹à¸§
+à¸à¸£à¸°à¸ˆà¸µà¹‰
+à¸à¸£à¸°à¸ˆà¸µà¹‹
+à¸à¸£à¸°à¸ˆà¸¸à¸
+à¸à¸£à¸°à¸ˆà¸¸à¸š
+à¸à¸£à¸°à¸ˆà¸¸à¸šà¸à¸£à¸°à¸ˆà¸´à¸š
+à¸à¸£à¸°à¸ˆà¸¸à¸¢
+à¸à¸£à¸°à¸ˆà¸¸à¹‹à¸‡à¸à¸£à¸°à¸ˆà¸´à¹‹à¸‡
+à¸à¸£à¸°à¸ˆà¸¸à¹‹à¸¡à¸à¸£à¸°à¸ˆà¸´à¹‹à¸¡
+à¸à¸£à¸°à¸ˆà¸¹à¸”
+à¸à¸£à¸°à¸ˆà¸¹à¹‰
+à¸à¸£à¸°à¸ˆà¸¹à¹‹à¸à¸£à¸°à¸ˆà¸µà¹‹
+à¸à¸£à¸°à¸ˆà¹ˆà¸²
+à¸à¸£à¸°à¸ˆà¹ˆà¸²à¸‡
+à¸à¸£à¸°à¸ˆà¹‰à¸­à¸™
+à¸à¸£à¸°à¸‰à¸‡
+à¸à¸£à¸°à¸‰à¸­à¸
+à¸à¸£à¸°à¸‰à¸±à¸šà¸à¸£à¸°à¹€à¸‰à¸‡
+à¸à¸£à¸°à¸‰à¸µà¸
+à¸à¸£à¸°à¸‰à¸¹à¸”
+à¸à¸£à¸°à¸‰à¹ˆà¸­à¸™
+à¸à¸£à¸°à¸Šà¸‡
+à¸à¸£à¸°à¸Šà¸§à¸¢
+à¸à¸£à¸°à¸Šà¸­à¸
+à¸à¸£à¸°à¸Šà¸­à¸™
+à¸à¸£à¸°à¸Šà¸­à¸¡
+à¸à¸£à¸°à¸Šà¸±à¸‡
+à¸à¸£à¸°à¸Šà¸±à¸š
+à¸à¸£à¸°à¸Šà¸±à¹‰à¸™
+à¸à¸£à¸°à¸Šà¸²à¸
+à¸à¸£à¸°à¸Šà¸²à¸¢
+à¸à¸£à¸°à¸Šà¸´à¸‡
+à¸à¸£à¸°à¸Šà¸´à¸”
+à¸à¸£à¸°à¸Šà¸¸
+à¸à¸£à¸°à¸Šà¸¸à¸
+à¸à¸£à¸°à¸Šà¸¸à¹ˆà¸¡à¸à¸£à¸°à¸Šà¸§à¸¢
+à¸à¸£à¸°à¸‹à¸§à¸¢
+à¸à¸£à¸°à¸‹à¸±à¸š
+à¸à¸£à¸°à¸‹à¸²à¸š
+à¸à¸£à¸°à¸‹à¸´à¸
+à¸à¸£à¸°à¸‹à¸´à¸š
+à¸à¸£à¸°à¸‹à¸µà¹‰
+à¸à¸£à¸°à¸‹à¸¸à¸‡
+à¸à¸£à¸°à¸‹à¸¸à¸šà¸à¸£à¸°à¸‹à¸´à¸š
+à¸à¸£à¸°à¸‹à¸¹à¹ˆ
+à¸à¸£à¸°à¸‹à¹‰à¸­
+à¸à¸£à¸°à¸Žà¸µ
+à¸à¸£à¸°à¸Žà¸¸à¸¡à¸žà¸µ
+à¸à¸£à¸°à¸”à¸
+à¸à¸£à¸°à¸”วง
+à¸à¸£à¸°à¸”วน
+à¸à¸£à¸°à¸”อ
+à¸à¸£à¸°à¸”อง
+à¸à¸£à¸°à¸”อน
+à¸à¸£à¸°à¸”อม
+à¸à¸£à¸°à¸”ังงา
+à¸à¸£à¸°à¸”าà¸
+à¸à¸£à¸°à¸”างลาง
+à¸à¸£à¸°à¸”าด
+à¸à¸£à¸°à¸”าน
+à¸à¸£à¸°à¸”านพน
+à¸à¸£à¸°à¸”านโต้คลื่น
+à¸à¸£à¸°à¸”าษ
+à¸à¸£à¸°à¸”ิà¸
+à¸à¸£à¸°à¸”ิบ
+à¸à¸£à¸°à¸”ิ่ง
+à¸à¸£à¸°à¸”ี่
+à¸à¸£à¸°à¸”ึง
+à¸à¸£à¸°à¸”ืบ
+à¸à¸£à¸°à¸”ุ
+à¸à¸£à¸°à¸”ุà¸à¸à¸£à¸°à¸”ิà¸
+à¸à¸£à¸°à¸”ุบ
+à¸à¸£à¸°à¸”ุม
+à¸à¸£à¸°à¸”ูà¸
+à¸à¸£à¸°à¸”ูà¸à¸à¸š
+à¸à¸£à¸°à¸”ูà¸à¸”ำ
+à¸à¸£à¸°à¸”้ง
+à¸à¸£à¸°à¸”้าง
+à¸à¸£à¸°à¸•à¸£à¸³
+à¸à¸£à¸°à¸•à¸±à¸
+à¸à¸£à¸°à¸•à¸±à¹‰à¸§
+à¸à¸£à¸°à¸•à¸²à¸
+à¸à¸£à¸°à¸•à¸´à¸
+à¸à¸£à¸°à¸•à¸´à¸š
+à¸à¸£à¸°à¸•à¸´à¹Šà¸”
+à¸à¸£à¸°à¸•à¸·à¸­à¸£à¸·à¸­à¸£à¹‰à¸™
+à¸à¸£à¸°à¸•à¸¸à¸
+à¸à¸£à¸°à¸•à¸¸à¹‰à¸‡à¸à¸£à¸°à¸•à¸´à¹‰à¸‡
+à¸à¸£à¸°à¸•à¸¸à¹‰à¸™
+à¸à¸£à¸°à¸•à¸¹à¸š
+à¸à¸£à¸°à¸•à¹ˆà¸­à¸‡à¸à¸£à¸°à¹à¸•à¹ˆà¸‡
+à¸à¸£à¸°à¸•à¹ˆà¸²à¸¢
+à¸à¸£à¸°à¸•à¹‰à¸§à¸¡à¸à¸£à¸°à¹€à¸•à¸µà¹‰à¸¢à¸¡
+à¸à¸£à¸°à¸•à¹‰à¸­
+à¸à¸£à¸°à¸•à¹Šà¸­à¸š
+à¸à¸£à¸°à¸–ด
+à¸à¸£à¸°à¸–อบ
+à¸à¸£à¸°à¸–าง
+à¸à¸£à¸°à¸–ิà¸
+à¸à¸£à¸°à¸–ิน
+à¸à¸£à¸°à¸—à¸
+à¸à¸£à¸°à¸—ง
+à¸à¸£à¸°à¸—งลาย
+à¸à¸£à¸°à¸—ด
+à¸à¸£à¸°à¸—บ
+à¸à¸£à¸°à¸—รวง
+à¸à¸£à¸°à¸—วย
+à¸à¸£à¸°à¸—อà¸
+à¸à¸£à¸°à¸—ะ
+à¸à¸£à¸°à¸—ัน
+à¸à¸£à¸°à¸—ั่ง
+à¸à¸£à¸°à¸—า
+à¸à¸£à¸°à¸—าชาย
+à¸à¸£à¸°à¸—าย
+à¸à¸£à¸°à¸—ายสี
+à¸à¸£à¸°à¸—าหอง
+à¸à¸£à¸°à¸—ำ
+à¸à¸£à¸°à¸—ิง
+à¸à¸£à¸°à¸—ึง
+à¸à¸£à¸°à¸—ืบ
+à¸à¸£à¸°à¸—ุ
+à¸à¸£à¸°à¸—ุง
+à¸à¸£à¸°à¸—ุ่มเสือปลา
+à¸à¸£à¸°à¸—ุ่มà¹à¸šà¸™
+à¸à¸£à¸°à¸—ุ้ง
+à¸à¸£à¸°à¸—ู้
+à¸à¸£à¸°à¸—่อม
+à¸à¸£à¸°à¸—้อน
+à¸à¸£à¸°à¸—้อมà¸à¸£à¸°à¹à¸—้ม
+à¸à¸£à¸°à¸™à¸
+à¸à¸£à¸°à¸™à¸§à¸™
+à¸à¸£à¸°à¸™à¸±à¹‰à¸™
+à¸à¸£à¸°à¸™à¸µà¹‰
+à¸à¸£à¸°à¸šà¸
+à¸à¸£à¸°à¸šà¸à¸„าย
+à¸à¸£à¸°à¸šà¸–
+à¸à¸£à¸°à¸šà¸§à¸™
+à¸à¸£à¸°à¸šà¸§à¸™à¸à¸²à¸£
+à¸à¸£à¸°à¸šà¸§à¸¢
+à¸à¸£à¸°à¸šà¸§à¸£
+à¸à¸£à¸°à¸šà¸­à¸
+à¸à¸£à¸°à¸šà¸­à¸‡
+à¸à¸£à¸°à¸šà¸°
+à¸à¸£à¸°à¸šà¸±à¸”
+à¸à¸£à¸°à¸šà¸±à¸—
+à¸à¸£à¸°à¸šà¸²à¸
+à¸à¸£à¸°à¸šà¸²à¸¢
+à¸à¸£à¸°à¸šà¸²à¸¥
+à¸à¸£à¸°à¸šà¸´
+à¸à¸£à¸°à¸šà¸´à¸”
+à¸à¸£à¸°à¸šà¸´à¸¥
+à¸à¸£à¸°à¸šà¸µà¹ˆ
+à¸à¸£à¸°à¸šà¸·à¸­
+à¸à¸£à¸°à¸šà¸¸à¸‡
+à¸à¸£à¸°à¸šà¸¸à¸¡
+à¸à¸£à¸°à¸šà¸¸à¸£à¸µ
+à¸à¸£à¸°à¸šà¸¹à¸™
+à¸à¸£à¸°à¸šà¸¹à¸£
+à¸à¸£à¸°à¸šà¹ˆà¸²
+à¸à¸£à¸°à¸›à¸£à¸µà¹‰à¸à¸£à¸°à¹€à¸›à¸£à¹ˆà¸²
+à¸à¸£à¸°à¸›à¸±à¹‰à¸§à¸à¸£à¸°à¹€à¸›à¸µà¹‰à¸¢
+à¸à¸£à¸°à¸›à¸³
+à¸à¸£à¸°à¸›à¸¸à¸
+à¸à¸£à¸°à¸›à¹ˆà¸³
+à¸à¸£à¸°à¸›à¹‰à¸­à¸à¸£à¸°à¹à¸›à¹‰
+à¸à¸£à¸°à¸›à¹‹à¸­à¸‡
+à¸à¸£à¸°à¸œà¸¡
+à¸à¸£à¸°à¸œà¸¥à¸µà¸à¸£à¸°à¸œà¸¥à¸²à¸¡
+à¸à¸£à¸°à¸œà¸²à¸™
+à¸à¸£à¸°à¸œà¸µà¸
+à¸à¸£à¸°à¸žà¸£à¸§à¸™
+à¸à¸£à¸°à¸žà¸£à¸´à¹‰à¸¡
+à¸à¸£à¸°à¸žà¸­à¸
+à¸à¸£à¸°à¸žà¸­à¸‡
+à¸à¸£à¸°à¸žà¸±à¸
+à¸à¸£à¸°à¸žà¸±à¸‡
+à¸à¸£à¸°à¸žà¸±à¸‡à¹‚หม
+à¸à¸£à¸°à¸žà¸±à¸”
+à¸à¸£à¸°à¸žà¸±à¸™
+à¸à¸£à¸°à¸žà¸²
+à¸à¸£à¸°à¸žà¸²à¸
+à¸à¸£à¸°à¸žà¸µà¹‰
+à¸à¸£à¸°à¸žà¸·à¸­
+à¸à¸£à¸°à¸žà¸¸à¹ˆà¸¡
+à¸à¸£à¸°à¸žà¸¸à¹‰à¸‡
+à¸à¸£à¸°à¸Ÿà¸±à¸”à¸à¸£à¸°à¹€à¸Ÿà¸µà¸¢à¸”
+à¸à¸£à¸°à¸Ÿà¸²à¸¢
+à¸à¸£à¸°à¸Ÿà¸¹à¸¡à¸à¸£à¸°à¸Ÿà¸²à¸¢
+à¸à¸£à¸°à¸¡à¸¥
+à¸à¸£à¸°à¸¡à¸­à¸š
+à¸à¸£à¸°à¸¡à¸­à¸¡à¸à¸£à¸°à¹à¸¡à¸¡
+à¸à¸£à¸°à¸¡à¸±à¸‡
+à¸à¸£à¸°à¸¡à¸±à¸™
+à¸à¸£à¸°à¸¡à¸¶à¸™
+à¸à¸£à¸°à¸¡à¸¸à¸—
+à¸à¸£à¸°à¸¢à¸²
+à¸à¸£à¸°à¸¢à¸²à¸‡
+à¸à¸£à¸°à¸¢à¸²à¸”
+à¸à¸£à¸°à¸¢à¸²à¸«à¸‡à¸±à¸™
+à¸à¸£à¸°à¸¢à¸²à¸«à¸²à¸£
+à¸à¸£à¸°à¸¢à¸²à¹€à¸ªà¸§à¸¢
+à¸à¸£à¸°à¸¢à¸´à¸
+à¸à¸£à¸°à¸¢à¸¶à¸à¸à¸£à¸°à¸¢à¸·à¸­
+à¸à¸£à¸°à¸¢à¹ˆà¸­à¸‡
+à¸à¸£à¸°à¸¢à¹ˆà¸­à¸™
+à¸à¸£à¸°à¸£à¸­à¸
+à¸à¸£à¸°à¸¥à¸”
+à¸à¸£à¸°à¸¥à¸š
+à¸à¸£à¸°à¸¥à¸­à¸
+à¸à¸£à¸°à¸¥à¸­à¸¡
+à¸à¸£à¸°à¸¥à¸±à¸”
+à¸à¸£à¸°à¸¥à¸±à¸š
+à¸à¸£à¸°à¸¥à¸±à¸¡à¸žà¸£
+à¸à¸£à¸°à¸¥à¸²
+à¸à¸£à¸°à¸¥à¸²à¸à¸²à¸£
+à¸à¸£à¸°à¸¥à¸³
+à¸à¸£à¸°à¸¥à¸³à¸žà¸±à¸
+à¸à¸£à¸°à¸¥à¸³à¸žà¸¸à¸
+à¸à¸£à¸°à¸¥à¸´à¸‡
+à¸à¸£à¸°à¸¥à¸µ
+à¸à¸£à¸°à¸¥à¸¶à¸‡
+à¸à¸£à¸°à¸¥à¸¸à¸¡à¸žà¸¹
+à¸à¸£à¸°à¸¥à¸¹à¸™
+à¸à¸£à¸°à¸¥à¸¹à¹ˆà¸™à¹Œ
+à¸à¸£à¸°à¸§à¸™
+à¸à¸£à¸°à¸§à¸™à¸à¸£à¸°à¸§à¸²à¸¢
+à¸à¸£à¸°à¸§à¸±à¸”
+à¸à¸£à¸°à¸§à¸²à¸”
+à¸à¸£à¸°à¸§à¸²à¸™
+à¸à¸£à¸°à¸§à¸²à¸¢
+à¸à¸£à¸°à¸§à¸´à¸™
+à¸à¸£à¸°à¸§à¸µ
+à¸à¸£à¸°à¸§à¸µà¸à¸£à¸°à¸§à¸²à¸”
+à¸à¸£à¸°à¸§à¹ˆà¸²
+à¸à¸£à¸°à¸¨à¸
+à¸à¸£à¸°à¸¨à¸±à¸¢
+à¸à¸£à¸°à¸©à¸±à¸•à¸£à¸µ
+à¸à¸£à¸°à¸©à¸±à¸¢
+à¸à¸£à¸°à¸©à¸²à¸›à¸“์
+à¸à¸£à¸°à¸©à¸´à¸£
+à¸à¸£à¸°à¸ªà¸‡
+à¸à¸£à¸°à¸ªà¸™
+à¸à¸£à¸°à¸ªà¸š
+à¸à¸£à¸°à¸ªà¸¡
+à¸à¸£à¸°à¸ªà¸£à¹‰à¸­à¸¢
+à¸à¸£à¸°à¸ªà¸§à¸™
+à¸à¸£à¸°à¸ªà¸§à¸¢
+à¸à¸£à¸°à¸ªà¸­à¸š
+à¸à¸£à¸°à¸ªà¸°
+à¸à¸£à¸°à¸ªà¸±à¸‡
+à¸à¸£à¸°à¸ªà¸±à¸™
+à¸à¸£à¸°à¸ªà¸²
+à¸à¸£à¸°à¸ªà¸²à¸™à¸•à¸´à¹Œ
+à¸à¸£à¸°à¸ªà¸²à¸š
+à¸à¸£à¸°à¸ªà¸²à¸¢
+à¸à¸£à¸°à¸ªà¸´à¸™à¸˜à¸¸
+à¸à¸£à¸°à¸ªà¸·à¸­
+à¸à¸£à¸°à¸ªà¸¸à¸‡à¸à¸£à¸°à¸ªà¸´à¸‡
+à¸à¸£à¸°à¸ªà¸¸à¸™
+à¸à¸£à¸°à¸ªà¸¹à¸š
+à¸à¸£à¸°à¸ªà¹ˆà¸²à¸¢
+à¸à¸£à¸°à¸«à¸‡à¹ˆà¸­à¸‡
+à¸à¸£à¸°à¸«à¸™
+à¸à¸£à¸°à¸«à¸™à¸
+à¸à¸£à¸°à¸«à¸™à¸²à¸š
+à¸à¸£à¸°à¸«à¸™à¹ˆà¸­à¸‡
+à¸à¸£à¸°à¸«à¸™à¹ˆà¸³
+à¸à¸£à¸°à¸«à¸¡à¸±à¹ˆà¸‡
+à¸à¸£à¸°à¸«à¸¡à¸´à¸š
+à¸à¸£à¸°à¸«à¸¡à¸¸à¹ˆà¸™
+à¸à¸£à¸°à¸«à¸¡à¹ˆà¸­à¸¡
+à¸à¸£à¸°à¸«à¸¢à¸”
+à¸à¸£à¸°à¸«à¸¢à¸š
+à¸à¸£à¸°à¸«à¸¢à¸°
+à¸à¸£à¸°à¸«à¸¢à¸´à¹ˆà¸¡
+à¸à¸£à¸°à¸«à¸¢à¹ˆà¸­à¸™
+à¸à¸£à¸°à¸«à¸¢à¹ˆà¸­à¸¡
+à¸à¸£à¸°à¸«à¸£à¸´à¹ˆà¸‡
+à¸à¸£à¸°à¸«à¸£à¸´à¹ˆà¸¡
+à¸à¸£à¸°à¸«à¸§à¸™
+à¸à¸£à¸°à¸«à¸­à¸‡
+à¸à¸£à¸°à¸«à¸±à¸‡
+à¸à¸£à¸°à¸«à¸±à¸”
+à¸à¸£à¸°à¸«à¸²à¸‡
+à¸à¸£à¸°à¸«à¸²à¸¢
+à¸à¸£à¸°à¸«à¸¶à¸¡
+à¸à¸£à¸°à¸«à¸¶à¹ˆà¸¡
+à¸à¸£à¸°à¸­à¸§à¸¥
+à¸à¸£à¸°à¸­à¸­à¸š
+à¸à¸£à¸°à¸­à¸­à¸¡
+à¸à¸£à¸°à¸­à¸±à¸
+à¸à¸£à¸°à¸­à¸±à¸à¸à¸£à¸°à¸­à¹ˆà¸§à¸™
+à¸à¸£à¸°à¸­à¸²à¸™
+à¸à¸£à¸°à¸­à¸´à¸”
+à¸à¸£à¸°à¸­à¸¶à¸
+à¸à¸£à¸°à¸­à¸¶à¸”
+à¸à¸£à¸°à¸­à¸·à¸”
+à¸à¸£à¸°à¸­à¸¸
+à¸à¸£à¸°à¸­à¸¸à¸
+à¸à¸£à¸°à¸­à¹‰à¸²
+à¸à¸£à¸°à¹€à¸à¸£à¸´à¸
+à¸à¸£à¸°à¹€à¸‡à¹‰à¸²à¸à¸£à¸°à¸‡à¸­à¸”
+à¸à¸£à¸°à¹€à¸ˆà¸²
+à¸à¸£à¸°à¹€à¸ˆà¸´à¸‡
+à¸à¸£à¸°à¹€à¸ˆà¸´à¸”à¸à¸£à¸°à¹€à¸ˆà¸´à¸‡
+à¸à¸£à¸°à¹€à¸ˆà¸µà¸¢à¸§
+à¸à¸£à¸°à¹€à¸ˆà¸µà¹Šà¸¢à¸š
+à¸à¸£à¸°à¹€à¸ˆà¸µà¹Šà¸¢à¸§
+à¸à¸£à¸°à¹€à¸ˆà¹ˆà¸²
+à¸à¸£à¸°à¹€à¸‰à¸
+à¸à¸£à¸°à¹€à¸‰à¸‡
+à¸à¸£à¸°à¹€à¸‰à¸”
+à¸à¸£à¸°à¹€à¸Šà¸­
+à¸à¸£à¸°à¹€à¸Šà¸²
+à¸à¸£à¸°à¹€à¸Šà¸µà¸¢à¸‡
+à¸à¸£à¸°à¹€à¸Šà¹‰à¸²
+à¸à¸£à¸°à¹€à¸‹
+à¸à¸£à¸°à¹€à¸‹à¸­
+à¸à¸£à¸°à¹€à¸‹à¸´à¸‡
+à¸à¸£à¸°à¹€à¸‹à¹‡à¸™
+à¸à¸£à¸°à¹€à¸‹à¹‰à¸²
+à¸à¸£à¸°à¹€à¸”à¸
+à¸à¸£à¸°à¹€à¸”ิด
+à¸à¸£à¸°à¹€à¸”ียด
+à¸à¸£à¸°à¹€à¸”ียม
+à¸à¸£à¸°à¹€à¸”ี้ย
+à¸à¸£à¸°à¹€à¸”ือà¸
+à¸à¸£à¸°à¹€à¸”ื่อง
+à¸à¸£à¸°à¹€à¸”็น
+à¸à¸£à¸°à¹€à¸”้ง
+à¸à¸£à¸°à¹€à¸”้า
+à¸à¸£à¸°à¹€à¸•à¸‡
+à¸à¸£à¸°à¹€à¸•à¸²à¸°
+à¸à¸£à¸°à¹€à¸•à¸·à¹‰à¸­à¸‡
+à¸à¸£à¸°à¹€à¸•à¹‡à¸™
+à¸à¸£à¸°à¹€à¸–ิบ
+à¸à¸£à¸°à¹€à¸—ียบ
+à¸à¸£à¸°à¹€à¸—ียม
+à¸à¸£à¸°à¹€à¸—ือน
+à¸à¸£à¸°à¹€à¸—่
+à¸à¸£à¸°à¹€à¸šà¸‡
+à¸à¸£à¸°à¹€à¸šà¸
+à¸à¸£à¸°à¹€à¸šà¸™
+à¸à¸£à¸°à¹€à¸šà¸²
+à¸à¸£à¸°à¹€à¸šà¸µà¸¢à¸”
+à¸à¸£à¸°à¹€à¸šà¸µà¸¢à¸™
+à¸à¸£à¸°à¹€à¸šà¸µà¹‰à¸¢
+à¸à¸£à¸°à¹€à¸šà¸·à¹‰à¸­à¸‡
+à¸à¸£à¸°à¹€à¸›à¸²
+à¸à¸£à¸°à¹€à¸›à¸²à¸°
+à¸à¸£à¸°à¹€à¸›à¸µà¹‰à¸¢
+à¸à¸£à¸°à¹€à¸›à¹‹à¸²
+à¸à¸£à¸°à¹€à¸žà¸¥à¸´à¸¨
+à¸à¸£à¸°à¹€à¸žà¸²à¸°
+à¸à¸£à¸°à¹€à¸žà¸·à¹ˆà¸­à¸¡
+à¸à¸£à¸°à¹€à¸Ÿà¸µà¸¢à¸”
+à¸à¸£à¸°à¹€à¸¢à¹‰à¸­à¸à¸£à¸°à¹à¸«à¸¢à¹ˆà¸‡
+à¸à¸£à¸°à¹€à¸£à¸µà¸¢à¸™
+à¸à¸£à¸°à¹€à¸¥à¸µà¸¢à¸”
+à¸à¸£à¸°à¹€à¸¥à¸·à¸­à¸
+à¸à¸£à¸°à¹€à¸§à¸™
+à¸à¸£à¸°à¹€à¸©à¸¡
+à¸à¸£à¸°à¹€à¸©à¸¡à¸ªà¸²à¸™à¸•à¹Œ
+à¸à¸£à¸°à¹€à¸©à¸µà¸¢à¸£
+à¸à¸£à¸°à¹€à¸ªà¸”
+à¸à¸£à¸°à¹€à¸ªà¸µà¸¢à¸™
+à¸à¸£à¸°à¹€à¸ªà¸µà¸¢à¸£
+à¸à¸£à¸°à¹€à¸ªà¸·à¸­à¸
+à¸à¸£à¸°à¹€à¸ªà¹‡à¸™à¸à¸£à¸°à¸ªà¸²à¸¢
+à¸à¸£à¸°à¹€à¸ªà¹ˆà¸²
+à¸à¸£à¸°à¹€à¸«à¸™à¹‡à¸ˆ
+à¸à¸£à¸°à¹€à¸«à¸¡à¹‡à¸”à¸à¸£à¸°à¹à¸«à¸¡à¹ˆ
+à¸à¸£à¸°à¹€à¸«à¸¡à¹ˆà¸™
+à¸à¸£à¸°à¹€à¸«à¸¡à¹ˆà¸²
+à¸à¸£à¸°à¹€à¸«à¸§à¹ˆà¸²
+à¸à¸£à¸°à¹€à¸­à¸š
+à¸à¸£à¸°à¹€à¸­à¸²
+à¸à¸£à¸°à¹à¸ˆà¸°
+à¸à¸£à¸°à¹à¸‰à¸
+à¸à¸£à¸°à¹à¸Šà¸‡
+à¸à¸£à¸°à¹à¸Šà¸°
+à¸à¸£à¸°à¹à¸‹
+à¸à¸£à¸°à¹à¸‹à¸°
+à¸à¸£à¸°à¹à¸”ะ
+à¸à¸£à¸°à¹à¸•
+à¸à¸£à¸°à¹à¸•à¸§à¸±à¸š
+à¸à¸£à¸°à¹à¸•à¸°
+à¸à¸£à¸°à¹à¸—à¸
+à¸à¸£à¸°à¹à¸—ะ
+à¸à¸£à¸°à¹à¸šà¸
+à¸à¸£à¸°à¹à¸šà¸à¸‡à¸²
+à¸à¸£à¸°à¹à¸šà¸°
+à¸à¸£à¸°à¹à¸šà¹ˆ
+à¸à¸£à¸°à¹à¸›à¸”
+à¸à¸£à¸°à¹à¸›à¹‰
+à¸à¸£à¸°à¹à¸žà¸‡
+à¸à¸£à¸°à¹à¸¡à¸¡
+à¸à¸£à¸°à¹à¸§à¸™
+à¸à¸£à¸°à¹à¸ª
+à¸à¸£à¸°à¹à¸ªà¸‡
+à¸à¸£à¸°à¹à¸ªà¸•à¸£à¸‡
+à¸à¸£à¸°à¹à¸ªà¸ªà¸¥à¸±à¸š
+à¸à¸£à¸°à¹à¸ªà¸°
+à¸à¸£à¸°à¹à¸«
+à¸à¸£à¸°à¹à¸«à¸™
+à¸à¸£à¸°à¹à¸«à¸¢à¹ˆà¸‡
+à¸à¸£à¸°à¹à¸«à¸£à¹ˆà¸¡
+à¸à¸£à¸°à¹à¸«à¸¥à¹ˆà¸‡
+à¸à¸£à¸°à¹à¸­à¸
+à¸à¸£à¸°à¹à¸­à¸”
+à¸à¸£à¸°à¹à¸­à¸š
+à¸à¸£à¸°à¹à¸­à¸¡
+à¸à¸£à¸°à¹à¸­à¹‰
+à¸à¸£à¸°à¹‚งà¸
+à¸à¸£à¸°à¹‚จน
+à¸à¸£à¸°à¹‚จม
+à¸à¸£à¸°à¹‚จมทอง
+à¸à¸£à¸°à¹‚จมอà¸
+à¸à¸£à¸°à¹‚ฉà¸à¸à¸£à¸°à¹€à¸‰à¸
+à¸à¸£à¸°à¹‚ฉม
+à¸à¸£à¸°à¹‚ชà¸
+à¸à¸£à¸°à¹‚ดà¸
+à¸à¸£à¸°à¹‚ดà¸à¸à¸£à¸°à¹€à¸”à¸
+à¸à¸£à¸°à¹‚ดง
+à¸à¸£à¸°à¹‚ดด
+à¸à¸£à¸°à¹‚ดน
+à¸à¸£à¸°à¹‚ตน
+à¸à¸£à¸°à¹‚ถน
+à¸à¸£à¸°à¹‚บม
+à¸à¸£à¸°à¹‚ปà¸
+à¸à¸£à¸°à¹‚ปรง
+à¸à¸£à¸°à¹‚รà¸
+à¸à¸£à¸°à¹‚ลง
+à¸à¸£à¸°à¹‚สง
+à¸à¸£à¸°à¹‚หม
+à¸à¸£à¸°à¹‚หย
+à¸à¸£à¸°à¹‚หย่ง
+à¸à¸£à¸°à¹‚ห้
+à¸à¸£à¸°à¹ƒà¸”
+à¸à¸£à¸°à¹„ด
+à¸à¸£à¸°à¹„ดลิง
+à¸à¸£à¸°à¹„ตร
+à¸à¸£à¸°à¹„ทชาย
+à¸à¸£à¸°à¹„น
+à¸à¸£à¸°à¹„ร
+à¸à¸£à¸°à¹„ส
+à¸à¸£à¸°à¹„อ
+à¸à¸£à¸±à¸
+à¸à¸£à¸±à¸à¸‚ี
+à¸à¸£à¸±à¸‡
+à¸à¸£à¸±à¸“ฑ
+à¸à¸£à¸±à¸“ฑ์
+à¸à¸£à¸±à¸“ย์
+à¸à¸£à¸±à¸™
+à¸à¸£à¸±à¸š
+à¸à¸£à¸±à¸¡
+à¸à¸£à¸²à¸
+à¸à¸£à¸²à¸‡
+à¸à¸£à¸²à¸”
+à¸à¸£à¸²à¸™
+à¸à¸£à¸²à¸š
+à¸à¸£à¸²à¸šà¸—ูล
+à¸à¸£à¸²à¸Ÿ
+à¸à¸£à¸²à¸Ÿà¸Ÿà¸´à¸
+à¸à¸£à¸²à¸Ÿà¸´à¸
+à¸à¸£à¸²à¸Ÿà¸´à¸„
+à¸à¸£à¸²à¸¡
+à¸à¸£à¸²à¸¡à¸Šà¹‰à¸²à¸‡
+à¸à¸£à¸²à¸¢
+à¸à¸£à¸²à¸¥
+à¸à¸£à¸²à¸§
+à¸à¸£à¸²à¸§à¸”่าง
+à¸à¸£à¸²à¸ªà¸´à¸
+à¸à¸£à¸³
+à¸à¸£à¸´à¸
+à¸à¸£à¸´à¸à¸à¸£à¸´à¸§
+à¸à¸£à¸´à¸‡à¸à¸£à¸´à¸§
+à¸à¸£à¸´à¸Š
+à¸à¸£à¸´à¸“ี
+à¸à¸£à¸´à¸”
+à¸à¸£à¸´à¸•à¸¢
+à¸à¸£à¸´à¸™
+à¸à¸£à¸´à¸™à¸µ
+à¸à¸£à¸´à¸š
+à¸à¸£à¸´à¸¡
+à¸à¸£à¸´à¸¢à¸²
+à¸à¸£à¸´à¸§
+à¸à¸£à¸´à¹ˆà¸‡
+à¸à¸£à¸´à¹ˆà¸¡
+à¸à¸£à¸´à¹‰à¸§
+à¸à¸£à¸´à¹Šà¸
+à¸à¸£à¸´à¹Šà¸‡
+à¸à¸£à¸µ
+à¸à¸£à¸µà¸
+à¸à¸£à¸µà¸‹
+à¸à¸£à¸µà¸‘า
+à¸à¸£à¸µà¸”
+à¸à¸£à¸µà¸”à¸à¸£à¸²à¸”
+à¸à¸£à¸µà¸”à¸à¸£à¸²à¸¢
+à¸à¸£à¸µà¸˜à¸²
+à¸à¸£à¸µà¸™à¹à¸¥à¸™à¸”์
+à¸à¸£à¸µà¸©
+à¸à¸£à¸µà¸ª
+à¸à¸£à¸µà¹Šà¸”
+à¸à¸£à¸¶à¸‡
+à¸à¸£à¸¸
+à¸à¸£à¸¸à¸
+à¸à¸£à¸¸à¸à¸à¸£à¸¹à¹Š
+à¸à¸£à¸¸à¸‡
+à¸à¸£à¸¸à¸‡à¸˜à¸™
+à¸à¸£à¸¸à¸‡à¸˜à¸™à¸šà¸¸à¸£à¸µ
+à¸à¸£à¸¸à¸‡à¸žà¸²à¸¥à¸µ
+à¸à¸£à¸¸à¸‡à¹€à¸à¸©à¸¡
+à¸à¸£à¸¸à¸‡à¹€à¸‚มา
+à¸à¸£à¸¸à¸‡à¹€à¸—พ
+à¸à¸£à¸¸à¸‡à¹€à¸—พà¸à¸£à¸µà¸‘า
+à¸à¸£à¸¸à¸‡à¹€à¸—พคริสเตียน
+à¸à¸£à¸¸à¸‡à¹€à¸—พมหานคร
+à¸à¸£à¸¸à¸‡à¹€à¸—พวิลเลจ
+à¸à¸£à¸¸à¸‡à¹€à¸—พฯ
+à¸à¸£à¸¸à¸“
+à¸à¸£à¸¸à¸“า
+à¸à¸£à¸¸à¸“าธิคุณ
+à¸à¸£à¸¸à¸“าพิทัà¸à¸©à¹Œ
+à¸à¸£à¸¸à¸™
+à¸à¸£à¸¸à¸š
+à¸à¸£à¸¸à¸šà¸à¸£à¸´à¸š
+à¸à¸£à¸¸à¸¢
+à¸à¸£à¸¸à¹ˆà¸™
+à¸à¸£à¸¸à¹ˆà¸¡
+à¸à¸£à¸¸à¹‰à¸¡à¸à¸£à¸´à¹ˆà¸¡
+à¸à¸£à¸¸à¹Šà¸›
+à¸à¸£à¸¹
+à¸à¸£à¸¹à¸”
+à¸à¸£à¸¹à¸¡
+à¸à¸£à¸¹à¹ˆà¸¡
+à¸à¸£à¹€à¸à¸©à¸¡
+à¸à¸£à¹‡à¸­à¸à¸à¸£à¹‹à¸­à¸¢
+à¸à¸£à¹ˆà¸­à¸™
+à¸à¸£à¹ˆà¸­à¸¡
+à¸à¸£à¹ˆà¸­à¸¢
+à¸à¸£à¹ˆà¸²à¸‡
+à¸à¸£à¹ˆà¸²à¸¢
+à¸à¸£à¹ˆà¸³
+à¸à¸£à¹‰à¸§à¸¡
+à¸à¸£à¹‰à¸­
+à¸à¸£à¹‰à¸²à¸™
+à¸à¸£à¹‰à¸²à¸§
+à¸à¸¤à¸Š
+à¸à¸¤à¸”
+à¸à¸¤à¸”า
+à¸à¸¤à¸”าธ
+à¸à¸¤à¸”ิ
+à¸à¸¤à¸”ีà¸à¸²
+à¸à¸¤à¸•à¸à¸²
+à¸à¸¤à¸•à¸¢
+à¸à¸¤à¸•à¸¢à¸²
+à¸à¸¤à¸•à¸´à¸à¸²
+à¸à¸¤à¸©à¸Žà¸²
+à¸à¸¤à¸©à¸Žà¸²à¸˜à¸²à¸£
+à¸à¸¤à¸©à¸Žà¸µ
+à¸à¸¤à¸©à¸Žà¸µà¸à¸²
+à¸à¸¤à¸©à¸à¸µ
+à¸à¸¤à¸©à¸“ะวิทยา
+à¸à¸¤à¸©à¸“า
+à¸à¸¥
+à¸à¸¥à¸”
+à¸à¸¥à¸š
+à¸à¸¥à¸¡
+à¸à¸¥à¸¡à¸à¸¥à¸·à¸™
+à¸à¸¥à¸¡à¸à¸¥à¹ˆà¸­à¸¡
+à¸à¸¥à¸¡à¸”ิà¸
+à¸à¸¥à¸¢à¸¸à¸—ธ์
+à¸à¸¥à¸§à¸‡
+à¸à¸¥à¸§à¸¡
+à¸à¸¥à¸§à¸´à¸˜à¸µ
+à¸à¸¥à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+à¸à¸¥à¸«à¸²à¸¢
+à¸à¸¥à¸­à¸
+à¸à¸¥à¸­à¸‡
+à¸à¸¥à¸­à¸™
+à¸à¸¥à¸­à¸¢
+à¸à¸¥à¸­à¸¸à¸›à¸à¸£à¸“์
+à¸à¸¥à¸­à¹‚คดอต
+à¸à¸¥à¸­à¹‚คเฟน
+à¸à¸¥à¸­à¹‚คไนต์
+à¸à¸¥à¸±à¸
+à¸à¸¥à¸±à¸‡
+à¸à¸¥à¸±à¸”
+à¸à¸¥à¸±à¸”à¸à¸¥à¸¸à¹‰à¸¡
+à¸à¸¥à¸±à¸™à¸•à¸±à¸™
+à¸à¸¥à¸±à¸™à¸—
+à¸à¸¥à¸±à¸š
+à¸à¸¥à¸±à¸šà¸à¸¥à¸­à¸
+à¸à¸¥à¸±à¸šà¸§à¸´à¸—ย์
+à¸à¸¥à¸±à¸¡à¸žà¸
+à¸à¸¥à¸±à¸¡à¸žà¸£
+à¸à¸¥à¸±à¸§
+à¸à¸¥à¸±à¹ˆà¸™
+à¸à¸¥à¸±à¹‰à¸™
+à¸à¸¥à¸±à¹‰à¸§
+à¸à¸¥à¸²à¸
+à¸à¸¥à¸²à¸‡
+à¸à¸¥à¸²à¸”
+à¸à¸¥à¸²à¸”เà¸à¸¥à¸·à¹ˆà¸­à¸™
+à¸à¸¥à¸²à¸šà¸²à¸•
+à¸à¸¥à¸²à¸›
+à¸à¸¥à¸²à¸¢
+à¸à¸¥à¸²à¸¢à¸à¸¥à¸­à¸
+à¸à¸¥à¸²à¹‚หม
+à¸à¸¥à¸´à¸‡à¸„์
+à¸à¸¥à¸´à¹ˆà¸‡
+à¸à¸¥à¸´à¹ˆà¸™
+à¸à¸¥à¸´à¹‰à¸‡
+à¸à¸¥à¸´à¹‰à¸‡à¸à¸¥à¸­à¸
+à¸à¸¥à¸´à¹‰à¸‡à¹€à¸à¸¥à¸·à¸­à¸
+à¸à¸¥à¸´à¹‰à¸¡
+à¸à¸¥à¸µ
+à¸à¸¥à¸µà¸š
+à¸à¸¥à¸µà¸¢à¸¸à¸„
+à¸à¸¥à¸µà¹ˆ
+à¸à¸¥à¸¶à¸‡
+à¸à¸¥à¸¶à¸‡à¸„์
+à¸à¸¥à¸¶à¹‰à¸‡
+à¸à¸¥à¸·à¸™
+à¸à¸¥à¸¸à¹ˆà¸¡
+à¸à¸¥à¸¸à¹‰à¸¡
+à¸à¸¥à¸¸à¹‰à¸¡à¸£à¸¸à¸¡
+à¸à¸¥à¸¹à¸—าเมต
+à¸à¸¥à¸¹à¸™
+à¸à¸¥à¸¹à¹‚คส
+à¸à¸¥à¸¹à¹ˆ
+à¸à¸¥à¹€à¸¡à¹‡à¸”
+à¸à¸¥à¹€à¸«à¸¢
+à¸à¸¥à¹„à¸
+à¸à¸¥à¹ˆà¸™
+à¸à¸¥à¹ˆà¸­à¸‡
+à¸à¸¥à¹ˆà¸­à¸™
+à¸à¸¥à¹ˆà¸­à¸¡
+à¸à¸¥à¹ˆà¸­à¸¡à¸ˆà¸´à¸•à¸•à¹Œ
+à¸à¸¥à¹ˆà¸²à¸§
+à¸à¸¥à¹ˆà¸³
+à¸à¸¥à¹‰à¸§à¸¢
+à¸à¸¥à¹‰à¸§à¸¢à¸™à¹‰à¸³à¹„ท
+à¸à¸¥à¹‰à¸§à¸¢à¹„ม้
+à¸à¸¥à¹‰à¸­
+à¸à¸¥à¹‰à¸­à¸‡
+à¸à¸¥à¹‰à¸­à¸‡à¸ˆà¸¸à¸¥à¸—รรศน์
+à¸à¸¥à¹‰à¸­à¸‡à¸£à¸°à¸”ับ
+à¸à¸¥à¹‰à¸­à¸‡à¸§à¸±à¸”มุม
+à¸à¸¥à¹‰à¸­à¸‡à¸ªà¸³à¸£à¸§à¸ˆ
+à¸à¸¥à¹‰à¸­à¸‡à¹‚ทรทรรศน์
+à¸à¸¥à¹‰à¸­à¸™
+à¸à¸¥à¹‰à¸­à¸¡à¹à¸à¸¥à¹‰à¸¡
+à¸à¸¥à¹‰à¸²
+à¸à¸¥à¹‰à¸²à¸¡
+à¸à¸¥à¹‰à¸²à¸¢
+à¸à¸¥à¹‰à¸³
+à¸à¸¥à¹‰à¸³à¸à¸£à¸²à¸¢
+à¸à¸¥à¹‰à¸³à¸à¸¥à¸·à¸™
+à¸à¸§à¸”
+à¸à¸§à¸”ขัน
+à¸à¸§à¸™
+à¸à¸§à¸™à¸­à¸¹
+à¸à¸§à¸¡
+à¸à¸§à¸¢
+à¸à¸§à¸¢à¸ˆà¸±à¹Šà¸š
+à¸à¸§à¸¢à¸ˆà¸µà¹Š
+à¸à¸§à¸°
+à¸à¸§à¸°à¹à¸à¸§à¹ˆà¸‡
+à¸à¸§à¸±à¸
+à¸à¸§à¸±à¸”
+à¸à¸§à¸²
+à¸à¸§à¸²à¸‡
+à¸à¸§à¸²à¸‡à¸Šà¸°à¸¡à¸”
+à¸à¸§à¸²à¸‡à¸•à¸¸à¹‰à¸‡
+à¸à¸§à¸²à¸‡à¸œà¸²
+à¸à¸§à¸²à¸”
+à¸à¸§à¸²à¸”ตา
+à¸à¸§à¸²à¸”ต้อน
+à¸à¸§à¸²à¸”ล้าง
+à¸à¸§à¸²à¸™
+à¸à¸§à¸²à¸§à¹€à¸„รือ
+à¸à¸§à¸´à¸™
+à¸à¸§à¸µ
+à¸à¸§à¹ˆà¸²
+à¸à¸§à¹ˆà¸²à¸‡
+à¸à¸§à¹‰à¸²
+à¸à¸§à¹‰à¸²à¸‡
+à¸à¸§à¹‰à¸²à¸™
+à¸à¸§à¹‰à¸²à¸§
+à¸à¸§à¹Šà¸²à¸™
+à¸à¸©à¸“ะ
+à¸à¸©à¸¡à¸²
+à¸à¸©à¸±à¸•à¸£
+à¸à¸©à¸±à¸•à¸£à¸²
+à¸à¸©à¸±à¸•à¸£à¸´à¸¢à¹Œ
+à¸à¸©à¸±à¸•à¸£à¸µ
+à¸à¸©à¸±à¸•à¸£à¸µà¸¢à¹Œ
+à¸à¸©à¸±à¸¢
+à¸à¸©à¸±à¸¢à¸à¸²à¸£
+à¸à¸©à¸²à¸›à¸“์
+à¸à¸©à¸´à¸”ิ
+à¸à¸©à¸µà¸“าศรพ
+à¸à¸©à¸µà¸£
+à¸à¸©à¸µà¸£à¸˜à¸²à¸£à¸²
+à¸à¸©à¸µà¸£à¸°
+à¸à¸©à¸µà¸£à¸²à¸¡à¸žà¸¸
+à¸à¸©à¸µà¸£à¸²à¸£à¸“พ
+à¸à¸ªà¸²à¸™à¸•à¸´à¹Œ
+à¸à¸ªà¸´
+à¸à¸ªà¸´à¸à¸£
+à¸à¸ªà¸´à¸à¸£à¸£à¸¡
+à¸à¸ªà¸´à¸“
+à¸à¸«à¸±à¸‡à¸›à¸²à¸¢à¸²
+à¸à¸«à¸²à¸›à¸“ะ
+à¸à¸­
+à¸à¸­à¸
+à¸à¸­à¸‡
+à¸à¸­à¸‡à¸à¸­à¸¢
+à¸à¸­à¸‡à¸—ัพ
+à¸à¸­à¸‡à¸—ุน
+à¸à¸­à¸‡à¸žà¸¥
+à¸à¸­à¸‡à¸žà¸±à¸™
+à¸à¸­à¸‡à¹à¸à¹‰à¸§
+à¸à¸­à¸‹
+à¸à¸­à¸”
+à¸à¸­à¸”หอบ
+à¸à¸­à¸”อà¸
+à¸à¸­à¸•à¹à¸¥à¸™à¸”์
+à¸à¸­à¸š
+à¸à¸­à¸šà¸™à¸²à¸‡
+à¸à¸­à¸šà¹‚à¸à¸¢
+à¸à¸­à¸›à¸£
+à¸à¸­à¸¡à¸à¹‰à¸­
+à¸à¸­à¸¢
+à¸à¸­à¸£à¸´à¸¥à¸¥à¸²
+à¸à¸­à¸¥à¹Œà¸Ÿ
+à¸à¸­à¹€à¸­à¸µà¹Šà¸¢à¸°
+à¸à¸­à¹à¸
+à¸à¸­à¹à¸«à¸¥à¸°
+à¸à¸°
+à¸à¸°à¸à¸±à¸‡
+à¸à¸°à¸à¸¶à¸
+à¸à¸°à¸à¹ˆà¸­à¸‡
+à¸à¸°à¸ˆà¸±à¸‡
+à¸à¸°à¸Šà¸°
+à¸à¸°à¸Šà¸±à¸‡
+à¸à¸°à¸Šà¸´à¸‡
+à¸à¸°à¸Šà¸¶à¹ˆà¸à¸à¸°à¸Šà¸±à¹ˆà¸
+à¸à¸°à¸‹à¸§à¸
+à¸à¸°à¸‹à¸µà¹ˆ
+à¸à¸°à¸‹à¹‰à¸²à¸«à¸­à¸¢
+à¸à¸°à¸”à¸
+à¸à¸°à¸”ง
+à¸à¸°à¸”อà¸
+à¸à¸°à¸”ะ
+à¸à¸°à¸”ังบาย
+à¸à¸°à¸”ัด
+à¸à¸°à¸”ี
+à¸à¸°à¸”ี่
+à¸à¸°à¸”ุ้ง
+à¸à¸°à¸”้าง
+à¸à¸°à¸•à¸£à¸¸à¸”
+à¸à¸°à¸•à¸­à¸
+à¸à¸°à¸•à¸±à¸
+à¸à¸°à¸•à¸±à¸‡
+à¸à¸°à¸•à¸µà¸š
+à¸à¸°à¸•à¸¸à¸”
+à¸à¸°à¸•à¸¸à¸¡à¸¹
+à¸à¸°à¸•à¸¸à¹Šà¸
+à¸à¸°à¸•à¹ˆà¸­à¸¢
+à¸à¸°à¸•à¹ˆà¸²
+à¸à¸°à¸•à¹‰à¸³
+à¸à¸°à¸•à¹Šà¸²à¸
+à¸à¸°à¸–ัว
+à¸à¸°à¸—à¸à¸£à¸
+à¸à¸°à¸—อ
+à¸à¸°à¸—ัง
+à¸à¸°à¸—ังหัน
+à¸à¸°à¸—ัดรัด
+à¸à¸°à¸—ัน
+à¸à¸°à¸—ันหัน
+à¸à¸°à¸—ับ
+à¸à¸°à¸—ำ
+à¸à¸°à¸—ิ
+à¸à¸°à¸—ือ
+à¸à¸°à¸—ุน
+à¸à¸°à¸—ู้
+à¸à¸°à¸™à¸§à¸¥
+à¸à¸°à¸™à¸±à¸”
+à¸à¸°à¸šà¸°
+à¸à¸°à¸šà¸±à¸‡
+à¸à¸°à¸šà¸±à¸‡à¸¥à¸¡
+à¸à¸°à¸šà¸±à¹‰à¸‡
+à¸à¸°à¸šà¸´
+à¸à¸°à¸šà¸´à¸¥
+à¸à¸°à¸šà¸´à¹‰à¸‡
+à¸à¸°à¸šà¸¸à¸”
+à¸à¸°à¸›à¸‡
+à¸à¸°à¸›à¸£à¸´à¸”à¸à¸°à¸›à¸£à¸­à¸¢
+à¸à¸°à¸›à¸£à¸´à¸š
+à¸à¸°à¸›à¸§à¸à¸à¸°à¹€à¸›à¸µà¸¢à¸
+à¸à¸°à¸›à¸­à¸¡
+à¸à¸°à¸›à¸­à¸¡à¸‚าง
+à¸à¸°à¸›à¸°
+à¸à¸°à¸›à¸±à¹ˆà¸™
+à¸à¸°à¸›à¸´
+à¸à¸°à¸›à¸´à¸•à¸±à¸™
+à¸à¸°à¸›à¸¹
+à¸à¸°à¸›à¸¹à¸”
+à¸à¸°à¸žà¸‡
+à¸à¸°à¸žà¸£à¸´à¸š
+à¸à¸°à¸žà¸£à¸¸à¸™
+à¸à¸°à¸žà¸¥à¹ˆà¸­à¸‡à¸à¸°à¹à¸žà¸¥à¹ˆà¸‡
+à¸à¸°à¸žà¸¥à¹‰à¸­
+à¸à¸°à¸žà¸±à¸™
+à¸à¸°à¸žà¹‰à¸­
+à¸à¸°à¸£à¸°à¸•à¸°
+à¸à¸°à¸£à¸±à¸‡
+à¸à¸°à¸£à¸±à¸•
+à¸à¸°à¸£à¸²à¸‡
+à¸à¸°à¸£à¸´à¸‡
+à¸à¸°à¸£à¸¸à¸™
+à¸à¸°à¸£à¸¸à¹ˆà¸‡à¸à¸°à¸£à¸´à¹ˆà¸‡
+à¸à¸°à¸¥à¸§à¸¢
+à¸à¸°à¸¥à¸­
+à¸à¸°à¸¥à¸°à¸›à¸±à¸‡à¸«à¸²
+à¸à¸°à¸¥à¸°à¸¡à¸±à¸‡
+à¸à¸°à¸¥à¸°à¸­à¸­à¸¡
+à¸à¸°à¸¥à¸°à¹à¸¡
+à¸à¸°à¸¥à¸±à¸™
+à¸à¸°à¸¥à¸²
+à¸à¸°à¸¥à¸²à¸‹à¸­
+à¸à¸°à¸¥à¸²à¸ªà¸µ
+à¸à¸°à¸¥à¸³à¸žà¸­
+à¸à¸°à¸¥à¸´à¸‡
+à¸à¸°à¸¥à¸´à¸­à¹ˆà¸­à¸‡
+à¸à¸°à¸¥à¸´à¹‰à¸¡à¸à¸°à¹€à¸«à¸¥à¸µà¹ˆà¸¢
+à¸à¸°à¸¥à¹ˆà¸­à¸™
+à¸à¸°à¸¥à¹ˆà¸­à¸¡à¸à¸°à¹à¸¥à¹ˆà¸¡
+à¸à¸°à¸¥à¹ˆà¸­à¸¢à¸à¸°à¸«à¸¥à¸´à¸š
+à¸à¸°à¸§à¸°
+à¸à¸°à¸ªà¹‰à¸²à¸«à¸­à¸¢
+à¸à¸°à¸«à¸™à¸°
+à¸à¸°à¸«à¸™à¸¸à¸‡à¸à¸°à¸«à¸™à¸´à¸‡
+à¸à¸°à¸«à¸™à¹‡à¸­à¸‡à¸à¸°à¹à¸«à¸™à¹‡à¸‡
+à¸à¸°à¸«à¸¡à¸­à¸
+à¸à¸°à¸«à¸£à¸­à¸”
+à¸à¸°à¸«à¸£à¸²à¸™
+à¸à¸°à¸«à¸£à¸µà¹ˆ
+à¸à¸°à¸«à¸£à¹‡à¸­à¸¡à¸à¸°à¹à¸«à¸£à¹‡à¸¡
+à¸à¸°à¸«à¸£à¹ˆà¸­à¸‡
+à¸à¸°à¸«à¸¥à¸²à¸›à¹‹à¸²
+à¸à¸°à¸«à¸¥à¸µà¹ˆ
+à¸à¸°à¸«à¸¥à¸¸à¸à¸à¸°à¸«à¸¥à¸´à¸
+à¸à¸°à¸«à¸¥à¹ˆà¸³
+à¸à¸°à¸«à¸³
+à¸à¸°à¸«à¸·à¸­
+à¸à¸°à¸«à¸¹à¸”
+à¸à¸°à¸­à¸§à¸¡
+à¸à¸°à¸­à¸­à¸¡
+à¸à¸°à¸­à¸²à¸™
+à¸à¸°à¸­à¸²à¸¡
+à¸à¸°à¸­à¸´à¸”
+à¸à¸°à¸­à¸¸à¸š
+à¸à¸°à¹€à¸à¸²à¸°
+à¸à¸°à¹€à¸”à¸
+à¸à¸°à¹€à¸”ี๋ยว
+à¸à¸°à¹€à¸•à¸
+à¸à¸°à¹€à¸•à¸‡
+à¸à¸°à¹€à¸•à¸‡à¹€
+à¸à¸°à¹€à¸•à¸‡à¹€à¸£à¸‡
+à¸à¸°à¹€à¸—ย
+à¸à¸°à¹€à¸—าะ
+à¸à¸°à¹€à¸šà¸·à¸­
+à¸à¸°à¹€à¸šà¹‰à¸­
+à¸à¸°à¹€à¸›à¸­à¸£à¹Œ
+à¸à¸°à¹€à¸›à¸°
+à¸à¸°à¹€à¸›à¸´à¹Šà¸šà¸à¸°à¸›à¹Šà¸²à¸š
+à¸à¸°à¹€à¸œà¸¥à¸
+à¸à¸°à¹€à¸œà¹ˆà¸™
+à¸à¸°à¹€à¸žà¸£à¸²
+à¸à¸°à¹€à¸¡à¸µà¸¢
+à¸à¸°à¹€à¸¡à¹‡à¸‡
+à¸à¸°à¹€à¸£
+à¸à¸°à¹€à¸£à¸µà¹ˆà¸¢à¸à¸°à¸£à¸²à¸”
+à¸à¸°à¹€à¸£à¹ˆà¸­
+à¸à¸°à¹€à¸¥à¸´à¸”
+à¸à¸°à¹€à¸¥à¹‡à¸‡
+à¸à¸°à¹€à¸¥à¹ˆà¸­à¸à¸°à¸¥à¹ˆà¸²
+à¸à¸°à¹€à¸«à¸£à¸µà¹ˆà¸¢à¸‡
+à¸à¸°à¹€à¸«à¸¥à¸²à¸°à¹€à¸›à¸²à¸°
+à¸à¸°à¹€à¸­à¸§
+à¸à¸°à¹à¸ˆà¸°
+à¸à¸°à¹à¸Šà¹ˆ
+à¸à¸°à¹à¸•à¸§
+à¸à¸°à¹à¸•à¹ˆà¸§
+à¸à¸°à¹à¸—น
+à¸à¸°à¹à¸—่ง
+à¸à¸°à¹à¸—้
+à¸à¸°à¹à¸›à¸°
+à¸à¸°à¹à¸›à¹‰à¸™
+à¸à¸°à¹à¸¥
+à¸à¸°à¹à¸«à¸¢à¸
+à¸à¸°à¹à¸«à¸°
+à¸à¸°à¹à¸­
+à¸à¸°à¹à¸­à¸™
+à¸à¸°à¹‚à¸à¸£à¸°
+à¸à¸°à¹‚ซ่
+à¸à¸°à¹‚ซ้
+à¸à¸°à¹‚ตงà¸à¸°à¹€à¸•à¸‡
+à¸à¸°à¹‚ต้งโห่ง
+à¸à¸°à¹‚ต๊à¸
+à¸à¸°à¹‚บโล
+à¸à¸°à¹‚ปรง
+à¸à¸°à¹‚ปโล
+à¸à¸°à¹‚ผลà¸à¸à¸°à¹€à¸œà¸¥à¸
+à¸à¸°à¹‚รà¸à¸°à¹€à¸£
+à¸à¸°à¹‚ลง
+à¸à¸°à¹‚ล่
+à¸à¸°à¹‚หลà¸
+à¸à¸°à¹‚ห้
+à¸à¸°à¹„ด
+à¸à¸°à¹„หล่
+à¸à¸±à¸
+à¸à¸±à¸à¸à¸£à¸²
+à¸à¸±à¸à¸à¸±à¸™
+à¸à¸±à¸à¸‚ฬะ
+à¸à¸±à¸à¸‚ัง
+à¸à¸±à¸à¸•à¸±à¸§
+à¸à¸±à¸à¸•à¸¸à¸™
+à¸à¸±à¸‡
+à¸à¸±à¸‡à¸à¹‰à¸²
+à¸à¸±à¸‡à¸‚า
+à¸à¸±à¸‡à¸‰à¸´à¸™
+à¸à¸±à¸‡à¸•à¹‡à¸­à¸
+à¸à¸±à¸‡à¸Ÿà¸¹
+à¸à¸±à¸‡à¸§à¸¥
+à¸à¸±à¸‡à¸§à¸²à¸™
+à¸à¸±à¸‡à¸§à¸²à¸¥
+à¸à¸±à¸‡à¸ªà¸”าล
+à¸à¸±à¸‡à¸«à¸±à¸™
+à¸à¸±à¸‡à¹€à¸à¸µà¸¢à¸‡
+à¸à¸±à¸‡à¹€à¸‰à¸´à¸™
+à¸à¸±à¸‡à¹€à¸§à¸µà¸¢à¸™
+à¸à¸±à¸‡à¹„ส
+à¸à¸±à¸ˆà¸‰à¸›à¸°
+à¸à¸±à¸ˆà¸‰à¸°
+à¸à¸±à¸ˆà¸‰à¸²
+à¸à¸±à¸
+à¸à¸±à¸à¸ˆà¸¸à¸
+à¸à¸±à¸à¸ˆà¸¸à¸à¸°
+à¸à¸±à¸à¸Šà¸²
+à¸à¸±à¸à¸à¸²
+à¸à¸±à¸
+à¸à¸±à¸“à¸à¸à¸°
+à¸à¸±à¸“à¸
+à¸à¸±à¸“à¸à¸
+à¸à¸±à¸“à¸à¸Šà¸°
+à¸à¸±à¸“à¸à¸°
+à¸à¸±à¸“à¸à¸±à¸¨
+à¸à¸±à¸“à¸à¸²
+à¸à¸±à¸“à¸à¸µ
+à¸à¸±à¸“à¸à¹Œ
+à¸à¸±à¸“ฑ์
+à¸à¸±à¸“ณ์
+à¸à¸±à¸“ห
+à¸à¸±à¸“หธรรม
+à¸à¸±à¸”
+à¸à¸±à¸”à¸à¸£à¹ˆà¸­à¸™
+à¸à¸±à¸”ฟัน
+à¸à¸±à¸”มันไดต์
+à¸à¸±à¸•à¸•à¸´à¸à¸¡à¸²à¸ª
+à¸à¸±à¸•à¸•à¸¸
+à¸à¸±à¸•à¸•à¸¸à¸§à¸²à¸ˆà¸
+à¸à¸±à¸•à¸•à¸¸à¸ªà¸±à¸à¸à¸²
+à¸à¸±à¸•à¸£à¸²
+à¸à¸±à¸—ลี
+à¸à¸±à¸™
+à¸à¸±à¸™à¸à¸‡
+à¸à¸±à¸™à¸à¸²à¸£à¹Œ
+à¸à¸±à¸™à¸Šà¸™
+à¸à¸±à¸™à¸Šà¸´à¸‡
+à¸à¸±à¸™à¸Šà¸µà¸ž
+à¸à¸±à¸™à¸”อง
+à¸à¸±à¸™à¸”าร
+à¸à¸±à¸™à¸”าล
+à¸à¸±à¸™à¸•à¸°à¸¢à¸²à¸£à¸²à¸¡
+à¸à¸±à¸™à¸•à¸±à¸‡
+à¸à¸±à¸™à¸•à¸±à¸§
+à¸à¸±à¸™à¸•à¹Œ
+à¸à¸±à¸™à¸—ร
+à¸à¸±à¸™à¸—รลัà¸à¸©à¹Œ
+à¸à¸±à¸™à¸—รวิชัย
+à¸à¸±à¸™à¸—ราà¸à¸£
+à¸à¸±à¸™à¸—รารมย์
+à¸à¸±à¸™à¸—ะ
+à¸à¸±à¸™à¸—่า
+à¸à¸±à¸™à¸žà¸´à¸£à¸¸à¸“
+à¸à¸±à¸™à¸ à¸±à¸¢
+à¸à¸±à¸™à¸¢à¸²
+à¸à¸±à¸™à¸¢à¸²à¸¢à¸™
+à¸à¸±à¸™à¸¢à¹Œ
+à¸à¸±à¸™à¸¥à¸‡
+à¸à¸±à¸™à¸¥à¸­à¸‡
+à¸à¸±à¸™à¸¥à¸¶à¸‡
+à¸à¸±à¸™à¸ªà¸²à¸”
+à¸à¸±à¸™à¹€à¸Šà¸­
+à¸à¸±à¸™à¹€à¸¡à¸µà¸¢à¸‡
+à¸à¸±à¸™à¹€à¸­à¸‡
+à¸à¸±à¸™à¹€à¸­à¸²
+à¸à¸±à¸™à¹à¸‹à¸‡
+à¸à¸±à¸™à¹à¸”ด
+à¸à¸±à¸™à¹à¸ªà¸‡
+à¸à¸±à¸™à¹„à¸à¸£
+à¸à¸±à¸™à¹„ด
+à¸à¸±à¸™à¹„ตร
+à¸à¸±à¸š
+à¸à¸±à¸šà¸‚้าว
+à¸à¸±à¸šà¸šà¸¸à¹€à¸£à¸¨
+à¸à¸±à¸šà¹à¸à¸¥à¹‰à¸¡
+à¸à¸±à¸šà¹à¸à¹‰
+à¸à¸±à¸›
+à¸à¸±à¸›à¸•à¸±à¸™
+à¸à¸±à¸›à¸™à¸
+à¸à¸±à¸›à¸šà¸²à¸ªà¸´à¸
+à¸à¸±à¸›à¸›à¸£à¸°
+à¸à¸±à¸›à¸›à¸°à¸£à¸°
+à¸à¸±à¸›à¸›à¸²à¸ªà¸´à¸
+à¸à¸±à¸›à¸›à¸´à¸¢
+à¸à¸±à¸›à¸›à¸´à¸¢à¸à¸±à¸“ฑ์
+à¸à¸±à¸›à¸›à¸´à¸¢à¸à¸²à¸£à¸
+à¸à¸±à¸¡à¸šà¸™
+à¸à¸±à¸¡à¸›à¸™à¸°
+à¸à¸±à¸¡à¸›à¸™à¸²à¸à¸²à¸£
+à¸à¸±à¸¡à¸›à¸™à¸²à¸—
+à¸à¸±à¸¡à¸›à¸£à¸°à¹‚ด
+à¸à¸±à¸¡à¸›à¸µ
+à¸à¸±à¸¡à¸žà¸¥
+à¸à¸±à¸¡à¸žà¸¸à¸Š
+à¸à¸±à¸¡à¸žà¸¸à¸¡
+à¸à¸±à¸¡à¸žà¸¹
+à¸à¸±à¸¡à¸žà¸¹à¸Šà¸²
+à¸à¸±à¸¡à¸¡à¸±à¸Šà¸§à¸²à¸•
+à¸à¸±à¸¡à¸¡à¸±à¸™à¸•à¸ à¸²à¸žà¸£à¸±à¸‡à¸ªà¸µ
+à¸à¸±à¸¡à¸¡à¸±à¸™à¸•à¸£à¸±à¸‡à¸ªà¸µ
+à¸à¸±à¸¡à¸¡à¸²à¸£
+à¸à¸±à¸¡à¸¥à¸²à¸¨
+à¸à¸±à¸¡à¹‚พช
+à¸à¸±à¸¢à¸§à¸´à¸à¸±à¸¢
+à¸à¸±à¸¥à¸Šà¸²à¸
+à¸à¸±à¸¥à¸šà¸
+à¸à¸±à¸¥à¸›
+à¸à¸±à¸¥à¸›à¸™à¸²
+à¸à¸±à¸¥à¸›à¸žà¸¤à¸à¸©à¹Œ
+à¸à¸±à¸¥à¸›à¸±à¸‡à¸«à¸²
+à¸à¸±à¸¥à¸›à¸²à¸§à¸ªà¸²à¸™
+à¸à¸±à¸¥à¸›à¸´à¸•
+à¸à¸±à¸¥à¸›à¹Œ
+à¸à¸±à¸¥à¸¢à¸²
+à¸à¸±à¸¥à¸¢à¸²à¸“
+à¸à¸±à¸¥à¸¢à¸²à¸“มิตร
+à¸à¸±à¸¥à¸¢à¸²à¸“ี
+à¸à¸±à¸¥à¸¢à¸²à¸“ไมตรี
+à¸à¸±à¸¥à¸«à¸²à¸¢
+à¸à¸±à¸¥à¸­à¸­à¸¡
+à¸à¸±à¸¥à¹€à¸­à¸²
+à¸à¸±à¸¥à¹‚ช
+à¸à¸±à¸¥à¹‚หย
+à¸à¸±à¸§à¸”ัลคะà¹à¸™à¸¥
+à¸à¸±à¸§à¸¥à¸²à¸¥à¸±à¸¡à¹€à¸›à¸­à¸£à¹Œ
+à¸à¸±à¸§à¹€à¸”อลูป
+à¸à¸±à¸§à¹€à¸•à¸¡à¸²à¸¥à¸²
+à¸à¸±à¸§à¹€à¸•à¸¡à¸²à¸¥à¸²à¸‹à¸´à¸•à¸µ
+à¸à¸±à¸¨à¸¡à¸¥
+à¸à¸±à¸ªà¸ªà¸°
+à¸à¸±à¹ˆà¸™
+à¸à¸±à¹‰à¸‡
+à¸à¸±à¹‰à¸™
+à¸à¸±à¹‰à¸™à¸«à¸¢à¸±à¹ˆà¸™
+à¸à¸±à¹Šà¸
+à¸à¸²
+à¸à¸²à¸
+à¸à¸²à¸à¸“ีà¸
+à¸à¸²à¸à¸šà¸²à¸—
+à¸à¸²à¸à¸°à¹€à¸¢à¸µà¸¢
+à¸à¸²à¸à¸µ
+à¸à¸²à¸‡
+à¸à¸²à¸‡à¸‚อง
+à¸à¸²à¸‡à¹€à¸à¸‡
+à¸à¸²à¸‡à¹€à¸à¸µà¸¢à¸‡
+à¸à¸²à¸‡à¹€à¸‚น
+à¸à¸²à¸‡à¹€à¸§à¸µà¸¢à¸™
+à¸à¸²à¸Šà¸²à¸”
+à¸à¸²à¸‹à¸°à¸¥à¸­à¸‡
+à¸à¸²à¸‹à¸±à¸™à¹€à¸£à¸•à¹‚ต
+à¸à¸²à¸à¸ˆà¸™à¸”ิษà¸à¹Œ
+à¸à¸²à¸à¸ˆà¸™à¸šà¸¸à¸£à¸µ
+à¸à¸²à¸à¸ˆà¸™à¸²
+à¸à¸²à¸à¸ˆà¸™à¸²à¸„ม
+à¸à¸²à¸
+à¸à¸²à¸à¸¡à¸±à¸“ฑุ
+à¸à¸²à¸”
+à¸à¸²à¸•à¸¡à¸²à¸™à¸”ุ
+à¸à¸²à¸™
+à¸à¸²à¸™à¸”า
+à¸à¸²à¸™à¸•à¹Œ
+à¸à¸²à¸™à¸—์
+à¸à¸²à¸™à¸™
+à¸à¸²à¸™à¸žà¸¥à¸¹
+à¸à¸²à¸™à¸²
+à¸à¸²à¸™à¹‰à¸²
+à¸à¸²à¸™à¹‰à¸³
+à¸à¸²à¸š
+à¸à¸²à¸šà¸à¸µà¹‰
+à¸à¸²à¸šà¸šà¸±à¸§
+à¸à¸²à¸šà¸«à¸­à¸¢
+à¸à¸²à¸šà¸­à¸‡
+à¸à¸²à¸šà¸°
+à¸à¸²à¸šà¸¹
+à¸à¸²à¸šà¸¹à¸£
+à¸à¸²à¸šà¹€à¸Šà¸´à¸‡
+à¸à¸²à¸šà¹€à¸”ียว
+à¸à¸²à¸›à¸¸à¸£à¸´à¸ª
+à¸à¸²à¸à¸²à¸
+à¸à¸²à¸žà¸¢à¹Œ
+à¸à¸²à¸¡
+à¸à¸²à¸¡à¸„ุณ
+à¸à¸²à¸¡à¸•à¸±à¸“หา
+à¸à¸²à¸¡à¸™
+à¸à¸²à¸¡à¸ à¸ž
+à¸à¸²à¸¡à¸£à¸²à¸„
+à¸à¸²à¸¡à¸§à¸´à¸•à¸
+à¸à¸²à¸¡à¸§à¸´à¸•à¸–าร
+à¸à¸²à¸¡à¸±à¸Š
+à¸à¸²à¸¡à¸²
+à¸à¸²à¸¡à¸²à¸—ีนพ
+à¸à¸²à¸¡à¸²à¸žà¸ˆà¸£
+à¸à¸²à¸¡à¸²à¸£à¸¡à¸“์
+à¸à¸²à¸¡à¸´à¸™à¸µ
+à¸à¸²à¸¡à¸´à¸¨
+à¸à¸²à¸¡à¹€à¸—พ
+à¸à¸²à¸¡à¹‚รค
+à¸à¸²à¸¢
+à¸à¸²à¸¢à¸à¸£à¸£à¸¡
+à¸à¸²à¸¢à¸—วาร
+à¸à¸²à¸¢à¸žà¸±à¸™à¸˜à¸™à¹Œ
+à¸à¸²à¸¢à¸ à¸²à¸ž
+à¸à¸²à¸¢à¸ à¸²à¸žà¸šà¸³à¸šà¸±à¸”
+à¸à¸²à¸¢à¸§à¸´à¸ à¸²à¸„
+à¸à¸²à¸¢à¸§à¸´à¸ à¸²à¸„ศาสตร์
+à¸à¸²à¸¢à¸ªà¸´à¸—ธิ์
+à¸à¸²à¸¢à¸²à¸žà¸¢à¸ž
+à¸à¸²à¸£
+à¸à¸²à¸£à¸
+à¸à¸²à¸£à¸à¸¥à¸±à¹ˆà¸™à¸—ำลาย
+à¸à¸²à¸£à¸‚นส่งมวลชน
+à¸à¸²à¸£à¸“์
+à¸à¸²à¸£à¸™à¸³
+à¸à¸²à¸£à¸šà¸´à¸™à¹„ทย
+à¸à¸²à¸£à¸šà¸¹à¸£
+à¸à¸²à¸£à¸šà¹‰à¸²à¸™
+à¸à¸²à¸£à¸žà¸²
+à¸à¸²à¸£à¸¢à¹Œ
+à¸à¸²à¸£à¸§à¸´à¸
+à¸à¸²à¸£à¸°à¸šà¸¸à¸«à¸™à¸´à¸‡
+à¸à¸²à¸£à¸°à¹€à¸à¸”
+à¸à¸²à¸£à¸±à¸à¸¨à¸¶à¸à¸©à¸²
+à¸à¸²à¸£à¸±à¸“ย์
+à¸à¸²à¸£à¸±à¸™à¸•à¹Œ
+à¸à¸²à¸£à¸²à¸ˆ
+à¸à¸²à¸£à¸¸à¸
+à¸à¸²à¸£à¸¸à¸“ย์
+à¸à¸²à¸£à¹€à¸à¸©à¸•à¸£
+à¸à¸²à¸£à¹€à¸•
+à¸à¸²à¸£à¹€à¸›à¸£à¸µà¸¢à¸
+à¸à¸²à¸£à¹€à¸¡à¸·à¸­à¸‡
+à¸à¸²à¸£à¹€à¸£à¸·à¸­à¸™
+à¸à¸²à¸£à¹€à¸§à¸
+à¸à¸²à¸£à¹à¸œà¹ˆà¸£à¸±à¸‡à¸ªà¸µ
+à¸à¸²à¸£à¹‚น้มถ่วง
+à¸à¸²à¸£à¹Œà¸”
+à¸à¸²à¸£à¹Œà¸”ีเนีย
+à¸à¸²à¸£à¹Œà¸•à¸¹à¸™
+à¸à¸²à¸£à¹Œà¹€à¸”น
+à¸à¸²à¸£à¹Œà¹€à¸™à¸•
+à¸à¸²à¸£à¹Œà¹€à¸™à¸µà¸¢à¹„รต์
+à¸à¸²à¸£à¹Œà¹€à¸¡à¸™à¸—์
+à¸à¸²à¸¥
+à¸à¸²à¸¥à¸à¸£à¸£à¸“ี
+à¸à¸²à¸¥à¸à¸´à¸“ี
+à¸à¸²à¸¥à¸à¸´à¸£à¸´à¸¢à¸²
+à¸à¸²à¸¥à¸°à¸¡à¸±à¸‡
+à¸à¸²à¸¥à¸°à¹à¸¡
+à¸à¸²à¸¥à¸±à¸à¸™à¹‰à¸³
+à¸à¸²à¸¥à¸±à¸à¸à¸¸à¸•à¸²
+à¸à¸²à¸¥à¸±à¸à¸à¸¹
+à¸à¸²à¸¥à¸±à¸”
+à¸à¸²à¸¥à¸²
+à¸à¸²à¸¥à¸²à¸›à¸±à¸™
+à¸à¸²à¸¥à¸²à¸›à¸²à¸à¸­à¸ª
+à¸à¸²à¸¥à¸´à¸
+à¸à¸²à¸¥à¸µ
+à¸à¸²à¸¥à¸µà¸™à¸²
+à¸à¸²à¸¥à¹€à¸—ศะ
+à¸à¸²à¸¥à¹‚ยค
+à¸à¸²à¸§
+à¸à¸²à¸§à¸§à¸²à¸§
+à¸à¸²à¸§à¸²à¸‡
+à¸à¸²à¸¨à¸´à¸
+à¸à¸²à¸©à¸à¸°
+à¸à¸²à¸©à¸²
+à¸à¸²à¸ªà¸£
+à¸à¸²à¸ªà¸ªà¸±à¸—โท
+à¸à¸²à¸ªà¸°
+à¸à¸²à¸ªà¸±à¸
+à¸à¸²à¸ªà¸±à¸—โท
+à¸à¸²à¸ªà¸²
+à¸à¸²à¸ªà¸²à¸¡à¸›à¸µà¸
+à¸à¸²à¸ªà¸²à¸£
+à¸à¸²à¸ªà¸²à¸§
+à¸à¸²à¸ªà¸²à¸§à¸žà¸±à¸ªà¸•à¸£à¹Œ
+à¸à¸²à¸ªà¸´à¹‚น
+à¸à¸²à¸«à¸¢à¸¹
+à¸à¸²à¸«à¸¥
+à¸à¸²à¸«à¸¥à¸‡
+à¸à¸²à¸«à¸¥à¸±à¸‡
+à¸à¸²à¸«à¸¥à¸²
+à¸à¸²à¸«à¸¥à¸´à¸š
+à¸à¸²à¸«à¸±à¸
+à¸à¸²à¸«à¹Œà¹„นต์
+à¸à¸²à¸¬
+à¸à¸²à¸¬à¸žà¸¤à¸à¸©à¹Œ
+à¸à¸²à¸¬à¸ªà¸´à¸™à¸˜à¸¸à¹Œ
+à¸à¸²à¸¬à¸²à¸§à¸
+à¸à¸²à¸¬à¹‚รค
+à¸à¸²à¸®à¸±à¸‡
+à¸à¸²à¹€à¸›à¸µà¹‰à¸¢à¸”
+à¸à¸²à¹€à¸Ÿà¸­à¸µà¸™
+à¸à¸²à¹€à¸¡à¸¨
+à¸à¸²à¹€à¸¡à¸ªà¸¸à¸¡à¸´à¸ˆà¸‰à¸²à¸ˆà¸²à¸£
+à¸à¸²à¹€à¸¢à¸™
+à¸à¸²à¹€à¸«à¸§à¹ˆà¸²
+à¸à¸²à¹à¸Ÿ
+à¸à¸²à¹à¸¥à¸à¹„ซต์
+à¸à¸²à¹à¸¥à¹‡à¸à¸‹à¸µ
+à¸à¸²à¹à¸¥à¹‡à¸à¹‚ทส
+à¸à¸²à¹à¸§à¸™
+à¸à¸²à¹‚มทย
+à¸à¸²à¹„หล่
+à¸à¸³
+à¸à¸³à¸à¸§à¸¡
+à¸à¸³à¸à¸±à¸”
+à¸à¸³à¸à¸±à¸š
+à¸à¸³à¸à¸¹à¸™
+à¸à¸³à¸„ูน
+à¸à¸³à¸ˆà¸£
+à¸à¸³à¸ˆà¸±à¸”
+à¸à¸³à¸ˆà¸²à¸¢
+à¸à¸³à¸Šà¸±à¸š
+à¸à¸³à¸Šà¸³
+à¸à¸³à¸‹à¸²à¸š
+à¸à¸³à¸‹à¸³
+à¸à¸³à¸”ัด
+à¸à¸³à¸”าล
+à¸à¸³à¸”้น
+à¸à¸³à¸•à¸±à¸”
+à¸à¸³à¸•à¸²à¸
+à¸à¸³à¸–ั่ว
+à¸à¸³à¸—วน
+à¸à¸³à¸˜à¸£
+à¸à¸³à¸™à¸¥
+à¸à¸³à¸™à¸±à¸”
+à¸à¸³à¸™à¸±à¸™
+à¸à¸³à¸™à¸±à¸¥
+à¸à¸³à¸šà¸”
+à¸à¸³à¸šà¸™
+à¸à¸³à¸šà¸±à¸‡
+à¸à¸³à¸šà¸±à¸”
+à¸à¸³à¸šà¸´à¸”
+à¸à¸³à¸›à¸­
+à¸à¸³à¸›à¸±à¹ˆà¸™
+à¸à¸³à¸›à¸±à¹‰à¸™
+à¸à¸³à¸œà¸¥à¸²
+à¸à¸³à¸žà¸‡
+à¸à¸³à¸žà¸”
+à¸à¸³à¸žà¸•
+à¸à¸³à¸žà¸£à¸²à¸
+à¸à¸³à¸žà¸£à¹‰à¸²
+à¸à¸³à¸žà¸§à¸”
+à¸à¸³à¸žà¸­à¸‡
+à¸à¸³à¸žà¸·à¸”
+à¸à¸³à¸žà¸¹
+à¸à¸³à¸ à¸¹
+à¸à¸³à¸¡à¸žà¸¤à¸à¸©à¹Œ
+à¸à¸³à¸¡à¸¥à¸²à¸¨à¸™à¹Œ
+à¸à¸³à¸¡à¸°à¸–ัน
+à¸à¸³à¸¡à¸°à¸¥à¸­
+à¸à¸³à¸¡à¸°à¸«à¸¢à¸µà¹ˆ
+à¸à¸³à¸¡à¸°à¸«à¸£à¸´à¸”
+à¸à¸³à¸¡à¸±à¸‡à¸¥à¸°à¸à¸²à¸£
+à¸à¸³à¸¡à¸±à¸‡à¸§à¸´à¸¥à¸´à¸•
+à¸à¸³à¸¡à¸²
+à¸à¸³à¸¡à¹€à¸¥à¸¨
+à¸à¸³à¸¢à¸²à¸™
+à¸à¸³à¸¢à¸³
+à¸à¸³à¸£à¸­
+à¸à¸³à¸£à¸²à¸
+à¸à¸³à¸£à¸²à¸š
+à¸à¸³à¸£à¸²à¸¥
+à¸à¸³à¸£à¸¹
+à¸à¸³à¸¥à¸­à¸‡
+à¸à¸³à¸¥à¸±à¸‡
+à¸à¸³à¸¥à¸±à¸‡à¸§à¸±à¸‡à¸Šà¸²
+à¸à¸³à¸¥à¸±à¸‡à¹€à¸—ียน
+à¸à¸³à¸¥à¸¸à¸‡
+à¸à¸³à¸¥à¸¹à¸™
+à¸à¸³à¸ªà¸£à¸”
+à¸à¸³à¸ªà¸£à¸§à¸¥
+à¸à¸³à¸«à¸™à¸”
+à¸à¸³à¸«à¸™à¸”à¸à¸²à¸£
+à¸à¸³à¸«à¸™à¸±à¸”
+à¸à¸³à¹€à¸à¸£à¸µà¸¢à¸
+à¸à¸³à¹€à¸”า
+à¸à¸³à¹€à¸”าะ
+à¸à¸³à¹€à¸™à¸´à¸”
+à¸à¸³à¹€à¸šà¹‰à¸­
+à¸à¸³à¹€à¸£à¸´à¸š
+à¸à¸³à¹€à¸¥à¸²
+à¸à¸³à¹€à¸¥à¸²à¸°
+à¸à¸³à¹€à¸ªà¸²à¸°
+à¸à¸³à¹€à¸«à¸™à¹‡à¸ˆ
+à¸à¸³à¹€à¸«à¸¥à¸´à¸‡
+à¸à¸³à¹à¸žà¸‡
+à¸à¸³à¹à¸žà¸‡à¸‚าว
+à¸à¸³à¹à¸žà¸‡à¹€à¸žà¸Šà¸£
+à¸à¸³à¹à¸žà¸‡à¹à¸ªà¸™
+à¸à¸³à¹à¸ªà¸‡
+à¸à¸³à¹à¸«à¸‡
+à¸à¸³à¹‚ชà¸
+à¸à¸³à¹‚บล
+à¸à¸³à¹„ร
+à¸à¸³à¹„ล
+à¸à¸´à¸
+à¸à¸´à¸à¸°
+à¸à¸´à¸à¸°à¹„บต์
+à¸à¸´à¸à¹„คต์
+à¸à¸´à¸‡à¸šà¸¸à¸£à¸¸à¸©
+à¸à¸´à¸ˆ
+à¸à¸´à¸ˆà¸à¸£à¸£à¸¡
+à¸à¸´à¸ˆà¸à¸²à¸£
+à¸à¸´à¸ˆà¸ˆà¸°
+à¸à¸´à¸ˆà¸ˆà¸°à¸¥à¸±à¸à¸©à¸“ะ
+à¸à¸´à¸ˆà¸ˆà¸²
+à¸à¸´à¸ˆà¸ˆà¸²à¸™à¸¸à¸à¸´à¸ˆ
+à¸à¸´à¸ˆà¸§à¸±à¸•à¸£
+à¸à¸´à¸ˆà¸ªà¸±à¸‡à¸„ม
+à¸à¸´à¸”าหยัน
+à¸à¸´à¸•à¸•à¸´
+à¸à¸´à¸•à¸•à¸´à¸à¸£à¸£à¸¡à¸›à¸£à¸°à¸à¸²à¸¨
+à¸à¸´à¸•à¸•à¸´à¸„ุณ
+à¸à¸´à¸•à¸•à¸´à¸¡à¸¨à¸±à¸à¸”ิ์
+à¸à¸´à¸•à¸•à¸´à¸§à¸²à¸™à¸´à¸Š
+à¸à¸´à¸•à¸•à¸´à¸¨à¸±à¸žà¸—์
+à¸à¸´à¸•à¸´à¸‚จร
+à¸à¸´à¸•à¸´à¸žà¸²à¸“ิชย์
+à¸à¸´à¸™
+à¸à¸´à¸™à¸Šà¸±à¸™
+à¸à¸´à¸™à¸”ิบ
+à¸à¸´à¸™à¸™à¸£
+à¸à¸´à¸™à¸›à¸¥à¸µ
+à¸à¸´à¸™à¸£à¸´à¸™
+à¸à¸´à¸™à¸£à¸µ
+à¸à¸´à¸™à¸µ
+à¸à¸´à¸šà¸šà¹Œà¹„ซต์
+à¸à¸´à¸Ÿà¸—์
+à¸à¸´à¸¡à¸´à¸Šà¸²à¸•à¸´
+à¸à¸´à¸¡à¸´à¸§à¸´à¸—ยา
+à¸à¸´à¸£à¸´à¸“ี
+à¸à¸´à¸£à¸´à¸¢à¸²
+à¸à¸´à¸¥à¹€à¸”อร์
+à¸à¸´à¸¥à¹€à¸šà¸­à¸£à¹Œà¸•
+à¸à¸´à¸­à¸²à¸™à¸²
+à¸à¸´à¹€à¸¥à¸™
+à¸à¸´à¹€à¸¥à¸ª
+à¸à¸´à¹€à¸¥à¸ªà¸¡à¸²à¸£
+à¸à¸´à¹‚ซ
+à¸à¸´à¹‚มโน
+à¸à¸´à¹‚ยตีน
+à¸à¸´à¹‚ล
+à¸à¸´à¹‚ลà¸à¸£à¸±à¸¡
+à¸à¸´à¹‚ลมà¸à¸°
+à¸à¸´à¹‚ลลิตร
+à¸à¸´à¹‚ลเมตร
+à¸à¸´à¹‚ลเฮิรตซ์
+à¸à¸´à¹‚ลไซเà¸à¸´à¸¥
+à¸à¸´à¹ˆà¸‡
+à¸à¸´à¹ˆà¸‡à¸à¹‰à¸­à¸¢
+à¸à¸´à¹ˆà¸‡à¸ˆà¸±à¸™à¸—ร์
+à¸à¸´à¹ˆà¸‡à¹€à¸žà¸Šà¸£
+à¸à¸´à¹ˆà¸§
+à¸à¸´à¹‰à¸‡à¸à¸·à¸­
+à¸à¸´à¹‰à¸‡à¸à¹ˆà¸²
+à¸à¸´à¹‰à¸‡à¹‚ครง
+à¸à¸´à¹Šà¸
+à¸à¸´à¹Šà¸š
+à¸à¸´à¹‹à¸§
+à¸à¸´à¹‹à¸§à¹†
+à¸à¸µà¸Žà¸§à¸´à¸—ยา
+à¸à¸µà¸
+à¸à¸µà¸à¸§à¸´à¸—ยา
+à¸à¸µà¸”
+à¸à¸µà¸”à¸à¸±à¸™
+à¸à¸µà¸”à¸à¸±à¹‰à¸™
+à¸à¸µà¸”ขวาง
+à¸à¸µà¸•à¸²à¸£à¹Œ
+à¸à¸µà¸™à¸µà¸šà¸´à¸ªà¸‹à¸¹
+à¸à¸µà¸š
+à¸à¸µà¸šà¹à¸£à¸”
+à¸à¸µà¸£à¸•à¸´
+à¸à¸µà¸§à¸µ
+à¸à¸µà¸¬à¸²
+à¸à¸µà¹ˆ
+à¸à¸µà¹‰
+à¸à¸µà¹‹
+à¸à¸¶à¸
+à¸à¸¶à¸à¸à¸±à¸
+à¸à¸¶à¸à¸à¸·à¸­
+à¸à¸¶à¸à¸à¹‰à¸­à¸‡
+à¸à¸¶à¸à¸–อง
+à¸à¸¶à¸‡
+à¸à¸¶à¸‡à¸à¸±à¸‡
+à¸à¸¶à¹ˆà¸‡
+à¸à¸¶à¹ˆà¸‡à¸à¸¥à¸²à¸‡
+à¸à¸¶à¹‹à¸™
+à¸à¸¸
+à¸à¸¸à¸
+à¸à¸¸à¸à¸à¸±à¸
+à¸à¸¸à¸à¸à¸¸à¸
+à¸à¸¸à¸à¸à¸¸à¸£
+à¸à¸¸à¸à¸£à¸£à¸¡
+à¸à¸¸à¸à¸°
+à¸à¸¸à¸à¹ˆà¸­à¸‡
+à¸à¸¸à¸‡à¸­à¸™
+à¸à¸¸à¸‡à¸²à¸™
+à¸à¸¸à¸ˆà¸µ
+à¸à¸¸à¸‰à¸´à¸™à¸²à¸£à¸²à¸¢à¸™à¹Œ
+à¸à¸¸à¸à¸Šà¸£
+à¸à¸¸à¸à¸˜à¸£
+à¸à¸¸à¸à¹à¸ˆ
+à¸à¸¸à¸à¹à¸ˆà¸›à¸£à¸°à¸ˆà¸³à¸«à¸¥à¸±à¸
+à¸à¸¸à¸à¹à¸ˆà¸¡à¸·à¸­
+à¸à¸¸à¸à¹à¸ˆà¹€à¸ªà¸µà¸¢à¸‡
+à¸à¸¸à¸Ž
+à¸à¸¸à¸Žà¸´à¹€à¸ˆà¸£à¸´à¸à¸žà¸²à¸ªà¸™à¹Œ
+à¸à¸¸à¸Žà¸µ
+à¸à¸¸à¸Žà¸¸à¸¡à¸žà¸µ
+à¸à¸¸à¸à¸à¸±à¸‡
+à¸à¸¸à¸à¸£à¸±à¸‡
+à¸à¸¸à¸à¸´
+à¸à¸¸à¸à¹„ต
+à¸à¸¸à¸“ฑล
+à¸à¸¸à¸“ฑี
+à¸à¸¸à¸“ฑ์
+à¸à¸¸à¸“าล
+à¸à¸¸à¸“ิ
+à¸à¸¸à¸“โฑ
+à¸à¸¸à¸”
+à¸à¸¸à¸”ข้าวปุ้น
+à¸à¸¸à¸”จับ
+à¸à¸¸à¸”ชุม
+à¸à¸¸à¸”บาà¸
+à¸à¸¸à¸”ัง
+à¸à¸¸à¸”ั่น
+à¸à¸¸à¸”า
+à¸à¸¸à¸™
+à¸à¸¸à¸™à¸‹à¸·à¸­
+à¸à¸¸à¸™à¸—ี
+à¸à¸¸à¸™à¹€à¸Šà¸µà¸¢à¸‡
+à¸à¸¸à¸š
+à¸à¸¸à¸šà¸à¸±à¸š
+à¸à¸¸à¸¡
+à¸à¸¸à¸¡à¸à¸­à¸¢
+à¸à¸¸à¸¡à¸ 
+à¸à¸¸à¸¡à¸ à¸à¸²à¸£
+à¸à¸¸à¸¡à¸ à¸™à¸´à¸¢à¸²
+à¸à¸¸à¸¡à¸ à¸§à¸²à¸›à¸µ
+à¸à¸¸à¸¡à¸ à¸±à¸“ฑ์
+à¸à¸¸à¸¡à¸ à¸²
+à¸à¸¸à¸¡à¸ à¸²à¸žà¸±à¸™à¸˜à¹Œ
+à¸à¸¸à¸¡à¸ à¸´à¸¥
+à¸à¸¸à¸¡à¸ à¸µà¸¥à¹Œ
+à¸à¸¸à¸¡à¸ à¹Œ
+à¸à¸¸à¸¡à¸¥à¸±à¸„น์
+à¸à¸¸à¸¡à¸²à¸£
+à¸à¸¸à¸¡à¸²à¸£à¸²
+à¸à¸¸à¸¡à¸²à¸£à¸µ
+à¸à¸¸à¸¡à¸¸à¸—
+à¸à¸¸à¸¡à¹€à¸«à¸‡
+à¸à¸¸à¸¢
+à¸à¸¸à¸¢à¸Šà¹ˆà¸²à¸¢
+à¸à¸¸à¸¢à¸šà¸¸à¸£à¸µ
+à¸à¸¸à¸¢à¹€à¸®à¸‡
+à¸à¸¸à¸£à¸°
+à¸à¸¸à¸£à¸¸à¸‡
+à¸à¸¸à¸£à¸¸à¸žà¸´à¸™à¸—์
+à¸à¸¸à¸¥
+à¸à¸¸à¸¥à¸˜à¸´à¸”า
+à¸à¸¸à¸¥à¸šà¸”ี
+à¸à¸¸à¸¥à¸šà¸¸à¸•à¸£
+à¸à¸¸à¸¥à¸ªà¸•à¸£à¸µ
+à¸à¸¸à¸¥à¸²
+à¸à¸¸à¸¥à¸²à¸”ำ
+à¸à¸¸à¸¥à¸²à¸•à¸µà¸­à¸
+à¸à¸¸à¸¥à¸²à¸«à¸¥
+à¸à¸¸à¸¥à¸µ
+à¸à¸¸à¸¥à¸µà¸
+à¸à¸¸à¸¥à¸µà¸à¸¸à¸ˆà¸­
+à¸à¸¸à¸¨à¸£à¸²à¸Š
+à¸à¸¸à¸¨à¸¥
+à¸à¸¸à¸¨à¸¥à¸´à¸™
+à¸à¸¸à¸¨à¹‚ลบาย
+à¸à¸¸à¸ªà¸¥
+à¸à¸¸à¸ªà¸¸à¸¡
+à¸à¸¸à¸ªà¸¸à¸¡à¸²
+à¸à¸¸à¸ªà¸¸à¸¡à¸²à¸¥à¸¢à¹Œ
+à¸à¸¸à¸«à¸™à¸µ
+à¸à¸¸à¸«à¸™à¸¸à¸‡
+à¸à¸¸à¸«à¸£à¹ˆà¸²
+à¸à¸¸à¸«à¸¥à¸²à¸š
+à¸à¸¸à¸«à¸¥à¹ˆà¸²
+à¸à¸¸à¹€à¸£à¸›à¸±à¸™
+à¸à¸¸à¹€à¸£à¸²
+à¸à¸¸à¹€à¸¥à¸²
+à¸à¸¸à¹€à¸§à¸£
+à¸à¸¸à¹à¸¥
+à¸à¸¸à¹à¸«à¸¥à¸°
+à¸à¸¸à¹‚งà¸
+à¸à¸¸à¹‚นà¸à¸²à¸¡à¸­
+à¸à¸¸à¹„ล
+à¸à¸¸à¹ˆà¸¡
+à¸à¸¸à¹‰à¸‡
+à¸à¸¸à¹‰à¸‡à¸«à¸¥à¸§à¸‡
+à¸à¸¸à¹‰à¸‡à¹€à¸•à¹‰à¸™
+à¸à¸¸à¹‰à¸‡à¹à¸«
+à¸à¸¸à¹‰à¸‡à¹à¸«à¹‰à¸‡
+à¸à¸¸à¹Šà¸
+à¸à¸¸à¹Šà¸à¸à¸´à¹Šà¸
+à¸à¸¸à¹Šà¸™
+à¸à¸¸à¹Šà¸¢
+à¸à¸¸à¹‹à¸¢
+à¸à¸¹
+à¸à¸¹à¸à¸§à¸™
+à¸à¸¹à¸Ž
+à¸à¸¹à¸Žà¸²
+à¸à¸¹à¸
+à¸à¸¹à¸“ฑ์
+à¸à¸¹à¸”
+à¸à¸¹à¸™
+à¸à¸¹à¸š
+à¸à¸¹à¸›à¸£à¸µ
+à¸à¸¹à¸£à¸¡
+à¸à¸¹à¸£à¸³
+à¸à¸¹à¸¥
+à¸à¸¹à¹ˆ
+à¸à¸¹à¹‰
+à¸à¸¹à¹‰à¸ à¸±à¸¢
+à¸à¸¹à¹Šà¸
+à¸à¹€à¸šà¸™à¸—ร์
+à¸à¹€à¸£à¸“ุ
+à¸à¹€à¸£à¸“ุà¸à¸²
+à¸à¹€à¸£à¸™à¸—ร
+à¸à¹€à¸¥à¸§à¸£à¸°
+à¸à¹€à¸¬à¸§à¸£à¸²à¸
+à¸à¹‚บร
+à¸à¹‚บระ
+à¸à¹‚บล
+à¸à¹‡
+à¸à¹‡à¸•à¸²à¸¡
+à¸à¹‡à¸­à¸›à¸›à¸µà¹‰
+à¸à¹‡à¹„ด้
+à¸à¹ˆà¸‡
+à¸à¹ˆà¸™
+à¸à¹ˆà¸­
+à¸à¹ˆà¸­à¸à¸§à¸™
+à¸à¹ˆà¸­à¸à¸²à¸£
+à¸à¹ˆà¸­à¸‡
+à¸à¹ˆà¸­à¸™
+à¸à¹ˆà¸­à¸ªà¸£à¹‰à¸²à¸‡
+à¸à¹ˆà¸²à¸™
+à¸à¹ˆà¸²à¸¢
+à¸à¹ˆà¸³
+à¸à¹ˆà¸³à¸•à¹‰à¸™
+à¸à¹‰à¸‡
+à¸à¹‰à¸‡à¹‚ค้ง
+à¸à¹‰à¸™
+à¸à¹‰à¸™à¸à¸š
+à¸à¹‰à¸™à¸‚บ
+à¸à¹‰à¸™à¸›à¸¥à¹ˆà¸­à¸‡
+à¸à¹‰à¸™à¸«à¸­à¸¢
+à¸à¹‰à¸¡
+à¸à¹‰à¸­
+à¸à¹‰à¸­à¸‡
+à¸à¹‰à¸­à¸™
+à¸à¹‰à¸­à¸¡
+à¸à¹‰à¸­à¸¢
+à¸à¹‰à¸­à¸£à¹ˆà¸­
+à¸à¹‰à¸­à¸£à¹ˆà¸­à¸à¹‰à¸­à¸•à¸´à¸
+à¸à¹‰à¸²à¸‡
+à¸à¹‰à¸²à¸™
+à¸à¹‰à¸²à¸™à¸„อ
+à¸à¹‰à¸²à¸š
+à¸à¹‰à¸²à¸šà¹†
+à¸à¹‰à¸²à¸¡
+à¸à¹‰à¸²à¸¡à¸à¸£à¸²à¸¡
+à¸à¹‰à¸²à¸¡à¸à¸¸à¹‰à¸‡
+à¸à¹‰à¸²à¸¡à¸›à¸¹
+à¸à¹‰à¸²à¸§
+à¸à¹‰à¸²à¸§à¸à¹ˆà¸²à¸¢
+à¸à¹‰à¸²à¸§à¸£à¹‰à¸²à¸§
+à¸à¹‰à¸²à¸§à¸«à¸™à¹‰à¸²
+à¸à¹‰à¸³
+à¸à¹‰à¸³à¸à¸¶à¹ˆà¸‡
+à¸à¹‰à¸³à¹€à¸à¸´à¸™
+à¸à¹Šà¸
+à¸à¹Šà¸‡
+à¸à¹Šà¸­
+à¸à¹Šà¸­à¸
+à¸à¹Šà¸­à¸šà¸›à¸µà¹‰
+à¸à¹Šà¸­à¸›à¸›à¸µà¹‰
+à¸à¹Šà¸²à¸Š
+à¸à¹Šà¸²à¸‹
+à¸à¹Šà¸²à¸‹à¸™à¹‰à¸³à¸•à¸²
+à¸à¹Šà¸²à¸‹à¹€à¸‰à¸·à¹ˆà¸­à¸¢
+à¸à¹Šà¸²à¸‹à¹„ข่เน่า
+à¸à¹Šà¸²à¸”
+à¸à¹Šà¸²à¸™
+à¸à¹‹à¸‡
+à¸à¹‹à¸§à¸¢à¹€à¸•à¸µà¹‹à¸¢à¸§
+à¸à¹‹à¸­à¸¢
+à¸à¹‹à¸²
+à¸à¹‹à¸²à¸à¸±à¹ˆà¸™
+à¸à¹‹à¸²à¸§
+ขง
+ขงจื๊อ
+ขงเบ้ง
+ขจร
+ขจรจบ
+ขจรศึà¸à¸©à¸²
+ขจอà¸
+ขจัด
+ขจัดขจาย
+ขจาย
+ขจาว
+ขจิต
+ขจิริด
+ขจี
+ขจุย
+ขจ่าง
+ขณะ
+ขด
+ขดถวาย
+ขดาน
+ขทิง
+ขทึง
+ขน
+ขนง
+ขนงเนื้อ
+ขนด
+ขนตา
+ขนน
+ขนบ
+ขนบธรรมเนียม
+ขนบประเพณี
+ขนม
+ขนมครà¸
+ขนมจีน
+ขนมปัง
+ขนมอบ
+ขนมเปี๊ยะ
+ขนลุà¸
+ขนส่ง
+ขนหนู
+ขนหยอง
+ขนอง
+ขนอน
+ขนอบ
+ขนอม
+ขนอุย
+ขนัด
+ขนัน
+ขนาà¸
+ขนาง
+ขนาด
+ขนาน
+ขนานยนต์
+ขนาบ
+ขนาย
+ขนำ
+ขนิษà¸
+ขนิษà¸à¸ à¸„ินี
+ขนิษà¸à¸ à¸²à¸•à¸²
+ขนิษà¸à¸²
+ขนิษà¸à¸²à¸˜à¸´à¸£à¸²à¸Š
+ขนุน
+ขนุนนà¸
+ขนเพชร
+ขนà¹à¸¡à¸§
+ขบ
+ขบขัน
+ขบคิด
+ขบฉัน
+ขบถ
+ขบวน
+ขบวนà¸à¸²à¸£
+ขบูร
+ขบเคี้ยว
+ขบเผาะ
+ขม
+ขมขื่น
+ขมวด
+ขมวดยา
+ขมวน
+ขมหิน
+ขมอง
+ขมอย
+ขมัง
+ขมับ
+ขมา
+ขมิบ
+ขมิ้น
+ขมิ้นขาว
+ขมีขมัน
+ขมึง
+ขมึงทึง
+ขมุ
+ขมุà¸à¸‚มอม
+ขมุà¸à¸‚มัว
+ขมุบ
+ขมุบขมิบ
+ขมุม
+ขม่อม
+ขม้ำ
+ขยด
+ขยอà¸
+ขยอง
+ขยะ
+ขยะà¹à¸‚ยง
+ขยัà¸
+ขยัà¸à¸‚ย้อน
+ขยัน
+ขยับ
+ขยับเขยื้อน
+ขยั้น
+ขยาด
+ขยาบ
+ขยาย
+ขยำ
+ขยิà¸
+ขยิบ
+ขยิ่ม
+ขยี้
+ขยุà¸à¸‚ยิà¸
+ขยุà¸à¸‚ยุย
+ขยุบ
+ขยุบขยิบ
+ขยุม
+ขยุย
+ขยุ้ม
+ขย่ม
+ขย่อน
+ขย้อน
+ขย้ำ
+ขรม
+ขรรค
+ขรรค์
+ขรัว
+ขริบ
+ขรี
+ขรึม
+ขรุขระ
+ขลบ
+ขลม
+ขลวน
+ขลัง
+ขลับ
+ขลา
+ขลาด
+ขลาย
+ขลิบ
+ขลึง
+ขลุà¸
+ขลุà¸à¸‚ลัà¸
+ขลุà¸à¸‚ลิà¸
+ขลุง
+ขลุบ
+ขลุม
+ขลุ่ย
+ขลู
+ขลู่
+ขล้ง
+ขวง
+ขวด
+ขวดโหล
+ขวน
+ขวนขวาย
+ขวนใจ
+ขวบ
+ขวย
+ขวยเขิน
+ขวยใจ
+ขวัà¸à¹„ขว่
+ขวัà¸
+ขวัà¸à¸”ี
+ขวัà¸à¸•à¸²
+ขวัà¸à¸—ิพย์
+ขวัà¸à¹ƒà¸ˆ
+ขวัด
+ขวับ
+ขวับเขวียว
+ขวั้น
+ขวา
+ขวาà¸
+ขวาง
+ขวาด
+ขวาน
+ขวายขวน
+ขวาว
+ขวิด
+ขว้าง
+ขว้าว
+ขษณะ
+ขษัย
+ขษีร
+ขอ
+ขอà¸
+ของ
+ของà¸à¸­à¸‡
+ของà¸à¸´à¸™
+ของคาว
+ของชำ
+ของดี
+ของนอà¸
+ของลับ
+ของวัด
+ของสด
+ของเหลว
+ของà¹à¸‚็ง
+ของโจร
+ของใช้
+ของไหล
+ของ้อ
+ของ้าว
+ขอฉาย
+ขอช้าง
+ขอด
+ขอตัว
+ขอทอง
+ขอทาน
+ขอที
+ขอน
+ขอนดอà¸
+ขอนสัà¸
+ขอนà¹à¸à¹ˆà¸™
+ขอบ
+ขอบข่าย
+ขอบคุณ
+ขอบพระคุณ
+ขอบพระทัย
+ขอบเขต
+ขอบใจ
+ขอบไร
+ขอม
+ขอยืม
+ขอรับ
+ขอร้อง
+ขอสับ
+ขออภัย
+ขอเดชะ
+ขอเà¸à¹‰à¸²
+ขอà¹à¸à¸§
+ขอà¹à¸£à¸‡
+ขอโทษ
+ขะข่ำ
+ขะนาน
+ขะมอมขะà¹à¸¡à¸¡
+ขะมัà¸à¹€à¸‚ม้น
+ขะมุà¸à¸‚ะมอม
+ขะยิà¸
+ขะยุà¸
+ขะเน็ด
+ขะเย้อà¹à¸‚ย่ง
+ขะà¹à¸‚่น
+ขะà¹à¸ˆà¸°
+ขะà¹à¸–à¸
+ขะà¹à¸¡à¸‹à¸­
+ขะà¹à¸¡à¸˜à¸¡
+ขะà¹à¸¢à¸°
+ขัค
+ขัง
+ขังขอà¸
+ขังข้อ
+ขัช
+ขัชà¸à¸°
+ขัณฑ
+ขัณฑสà¸à¸£
+ขัณฑสีมา
+ขัด
+ขัดขืน
+ขัดข้อง
+ขัดคอ
+ขัดจังหวะ
+ขัดดอà¸
+ขัดตา
+ขัดบท
+ขัดมอน
+ขัดยอà¸
+ขัดลาภ
+ขัดสน
+ขัดหู
+ขัดเà¸à¸¥à¸²
+ขัดเคือง
+ขัดเบา
+ขัดà¹à¸•à¸°
+ขัดใจ
+ขัตติย
+ขัตติยมานะ
+ขัตติยะ
+ขัน
+ขันชะเนาะ
+ขันติ
+ขันต่อ
+ขันทอง
+ขันที
+ขันธสิทธิ์
+ขันธ์
+ขันสมอ
+ขันสู้
+ขันหมาà¸
+ขันเหม
+ขันโตà¸
+ขับ
+ขับขัน
+ขับขี่
+ขับซอ
+ขับพล
+ขับเคี่ยว
+ขับไม้
+ขัย
+ขัว
+ขั้น
+ขั้ว
+ขั้วลบ
+ขา
+ขาà¸
+ขาà¸à¸š
+ขาà¸à¸­à¸¡
+ขาà¸à¹Šà¸§à¸¢
+ขาง
+ขางดัง
+ขางà¹à¸”ง
+ขาจร
+ขาณุ
+ขาณุวรลัà¸à¸©à¸šà¸¸à¸£à¸µ
+ขาด
+ขาดà¸à¸±à¸™
+ขาดคำ
+ขาดค่า
+ขาดตอน
+ขาดตัว
+ขาดทุน
+ขาดปาà¸
+ขาดมือ
+ขาดลอย
+ขาดà¹à¸„ลน
+ขาดใจ
+ขาทนียะ
+ขาทราย
+ขาน
+ขานนาค
+ขานรับ
+ขานาง
+ขานไข
+ขาบ
+ขาพับ
+ขาม
+ขามทะเลสอ
+ขามสะà¹à¸à¹à¸ªà¸‡
+ขาม้า
+ขาย
+ขายขาด
+ขายตัว
+ขายส่ง
+ขาล
+ขาว
+ขาวจีบ
+ขาวพวง
+ขาวม้า
+ขาหมา
+ขาหยั่ง
+ขาอ่อน
+ขาไà¸à¹ˆ
+ขำ
+ขิà¸
+ขิà¸à¹†
+ขิง
+ขิณ
+ขิปสัทโท
+ขิม
+ขิ่ง
+ขีณะ
+ขีณาสพ
+ขีด
+ขีปนาวุธ
+ขีปนาวุธนำวิถี
+ขีร
+ขี่
+ขี้
+ขี้à¸à¸š
+ขี้à¸à¸²
+ขี้ขม
+ขี้ขวง
+ขี้ขุย
+ขี้ข้า
+ขี้คุà¸
+ขี้จาบ
+ขี้ตด
+ขี้ตืด
+ขี้ถัง
+ขี้ทา
+ขี้ทูด
+ขี้นà¸
+ขี้ปาà¸
+ขี้ผง
+ขี้มอด
+ขี้มูà¸
+ขี้ม้า
+ขี้ยอà¸
+ขี้ยา
+ขี้ลม
+ขี้ลอà¸
+ขี้ลีบ
+ขี้สูด
+ขี้หนู
+ขี้หมา
+ขี้อ้น
+ขี้เซา
+ขี้เทา
+ขี้เป้
+ขี้เมฆ
+ขี้เสือใหà¸à¹ˆ
+ขี้เหร่
+ขี้à¹à¸•à¹‰
+ขี้à¹à¸¡à¸§
+ขี้à¹à¸¢
+ขี้à¹à¸£à¸”
+ขี้โล้
+ขี้ไซ้
+ขี้ไต้
+ขี้ไถ
+ขึง
+ขึงขัง
+ขึงตา
+ขึงตึง
+ขึงพืด
+ขึงอูด
+ขึ้ง
+ขึ้น
+ขึ้นฉ่าย
+ขึ้นหา
+ขึ้นใจ
+ขืน
+ขืนใจ
+ขื่น
+ขื่นขม
+ขื่อ
+ขื่อผี
+ขุà¸
+ขุขันธ์
+ขุด
+ขุน
+ขุนทอง
+ขุนนาง
+ขุนน้ำ
+ขุนบาล
+ขุนพล
+ขุนยวม
+ขุนวิจิตร
+ขุนศาล
+ขุนศึà¸
+ขุนหาà¸
+ขุนเขา
+ขุนà¹à¸œà¸™
+ขุม
+ขุมทรัพย์
+ขุมนรà¸
+ขุย
+ขุยอินทรีย์
+ขุยไผ่
+ขุหนุง
+ขุ่น
+ขุ่นใจ
+ขู
+ขูด
+ขูดรีด
+ขู่
+ขู่เข็à¸
+ขเจา
+ขโมย
+ข่ม
+ข่มขี่
+ข่มขืน
+ข่มขู่
+ข่มนาม
+ข่มหมู
+ข่มเหง
+ข่วง
+ข่วน
+ข่อ
+ข่อน
+ข่อย
+ข่อยห
+ข่า
+ข่าง
+ข่าต้น
+ข่าน
+ข่าม
+ข่าย
+ข่ายงาน
+ข่าว
+ข่าวดี
+ข่าวสด
+ข่าวสาร
+ข่าà¹à¸”ง
+ข้น
+ข้อ
+ข้อขอด
+ข้อความ
+ข้อคัดย่อ
+ข้อคิด
+ข้อง
+ข้องใจ
+ข้อดี
+ข้อน
+ข้อมูล
+ข้อย
+ข้อศอà¸
+ข้อสอบ
+ข้อหา
+ข้อเสือ
+ข้อà¹à¸¡à¹‰
+ข้อไข
+ข้า
+ข้าง
+ข้างตà¸
+ข้างๆ
+ข้าพเจ้า
+ข้าม
+ข้าราชà¸à¸²à¸£
+ข้าว
+ข้าวคำ
+ข้าวตู
+ข้าวต้ม
+ข้าวนà¸
+ข้าวยำ
+ข้าวสาร
+ข้าวหลาม
+ข้าวเม่า
+ข้าวโพด
+ข้าศึà¸
+ข้าหลวง
+ข้าà¹à¸œà¹ˆà¸™à¸”ิน
+ข้าไท
+คคนัมพร
+คคนางค์
+คคนานต์
+คง
+คงà¸à¸£à¸°à¸žà¸±à¸™
+คงขาด
+คงคลัง
+คงคา
+คงจะ
+คงตัว
+คงทน
+คงที่
+คงไคย
+คช
+คชà¸à¸£à¸£à¸¡
+คชธาร
+คชนาม
+คชราช
+คชสาร
+คชสีห์
+คชส่าน
+คชา
+คชาชาติ
+คชาชีพ
+คชาธาร
+คชาภรณ์
+คณนา
+คณบดี
+คณะ
+คณาจารย์
+คณาธิà¸à¸²à¸£
+คณาธิปไตย
+คณิà¸à¸²
+คณิต
+คณิตศาสตร์
+คด
+คดà¸à¸£à¸´à¸Š
+คดงอ
+คดซ่าง
+คดี
+คดีดำ
+คดีà¹à¸”ง
+คดโà¸à¸‡
+คติ
+คติชน
+คติชาวบ้าน
+คติธรรม
+คตินิยม
+คติพจน์
+คทา
+คธา
+คน
+คนà¸à¸¥à¸²à¸‡
+คนจน
+คนจร
+คนจริง
+คนทรง
+คนทา
+คนทิสอ
+คนที
+คนทีสอ
+คนธรรพ
+คนธรรพ์
+คนธ์
+คนนอà¸
+คนรวย
+คนร้าย
+คนละ
+คนสวน
+คนโท
+คนใช้
+คนใน
+คนไข้
+คบ
+คบคิด
+คบค้า
+คบชู้
+คบหา
+คบไฟ
+คม
+คมà¸à¸£à¸´à¸š
+คมขำ
+คมคาย
+คมน
+คมนาà¸à¸²à¸£
+คมนาคม
+คมบาง
+คมสัน
+ครà¸
+ครบ
+ครบมือ
+ครบุรี
+ครรชิต
+ครรภ
+ครรภมล
+ครรภ์
+ครรลอง
+ครรหิต
+ครรโลง
+ครรไล
+ครวà¸
+ครวà¸à¸«à¸²
+ครวัà¸
+ครวี
+ครหา
+ครอà¸
+ครอง
+ครองà¹à¸„รง
+ครอบ
+ครอบครัว
+ครอบคลุม
+ครอบงำ
+คระ
+คระหน
+คระหวน
+คระหาย
+คระหิว
+คระà¹à¸¥à¸‡
+คระà¹à¸§à¸‡
+คระโหย
+คระไล
+ครัดเคร่ง
+ครัน
+ครับ
+ครัว
+ครัวซองท์
+ครัวไฟ
+ครั่ง
+ครั่น
+ครั้ง
+ครั้น
+ครา
+คราà¸
+คราง
+คราà¸
+คราด
+คราบ
+คราฟท์
+คราม
+คราว
+คราส
+ครำ
+คริà¸à¹€à¸à¹‡à¸—
+คริปทอน
+คริสตà¸à¸²à¸¥
+คริสตัง
+คริสตัล
+คริสต์
+คริสต์มาส
+คริสเตียน
+คริสโทบาไลต์
+คริโซเบริล
+คริโซเพรส
+คริโซไทล์
+คริโวคอลลา
+ครีครอ
+ครีต
+ครีบ
+ครีม
+ครีษมายัน
+ครีเอทีฟ
+ครี้
+ครึ
+ครึà¸à¸„รื้น
+ครึà¸à¹‚ครม
+ครึน
+ครึม
+ครึ่ง
+ครึ้ม
+ครืด
+ครืน
+ครือ
+ครื้น
+ครื้นครึà¸
+ครื้นเครง
+ครุ
+ครุà¸
+ครุคระ
+ครุฑ
+ครุฑà¸
+ครุฑจัดสรร
+ครุฑย
+ครุฑ่น
+ครุภัณฑ์
+ครุมเครือ
+ครุย
+ครุวนา
+ครุวาร
+ครุศาสตร์
+ครุ่น
+ครุ่นคิด
+ครู
+ครูด
+ครูบา
+ครูไทย
+ครู่
+คร่ง
+คร่อม
+คร่า
+คร่าว
+คร่าวๆ
+คร่ำ
+คร่ำครวà¸
+คร้าน
+คร้าม
+คฤห
+คฤหบดี
+คฤหัสถ์
+คฤหา
+คฤหาสน์
+คฤโฆษ
+คลวง
+คลอ
+คลอà¸
+คลอง
+คลองขลุง
+คลองจั่น
+คลองตัน
+คลองทรงà¸à¸£à¸°à¹€à¸—ียม
+คลองท่อม
+คลองภูมิ
+คลองลาน
+คลองลำปัà¸
+คลองลำเจียà¸
+คลองสาน
+คลองหลวง
+คลองเตย
+คลองเตยวิทยา
+คลองเตยใน
+คลองเสือน้อย
+คลองใหà¸à¹ˆ
+คลองใหม่
+คลอด
+คลอน
+คลอนà¹à¸„ลน
+คลอริทอยด์
+คลอรีน
+คลอเคลีย
+คลอà¹à¸„ล
+คลอà¹à¸­à¸™à¹„ทต์
+คลอโรฟอร์ม
+คลอโรฟีลล์
+คลอไรต์
+คละ
+คละคล่ำ
+คละปน
+คลัà¸
+คลัง
+คลังมนตรี
+คลังเลือด
+คลัตช์
+คลับ
+คลัสเตอร์
+คลั่à¸
+คลั่ง
+คลา
+คลางà¹à¸„ลง
+คลาด
+คลาน
+คลาย
+คลาศ
+คลาส
+คลาสสิค
+คลาไคล
+คลำ
+คลิà¸
+คลิง
+คลิด
+คลินิà¸
+คลิป
+คลิปบอร์ด
+คลิปเปอร์ตัน
+คลิ้à¸
+คลี
+คลีนิค
+คลีฟà¹à¸¥à¸™à¹„ดต์
+คลี่
+คลี่คลาย
+คลึง
+คลื่น
+คลื่นปานà¸à¸¥à¸²à¸‡
+คลื่นยาว
+คลื่นวิทยุ
+คลื่นสั้น
+คลื่นเหียน
+คลื่นà¹à¸¡à¹ˆà¹€à¸«à¸¥à¹‡à¸à¹„ฟฟ้า
+คลื่นใต้น้ำ
+คลื่นไส้
+คลุà¸
+คลุà¸à¸„ลี
+คลุบ
+คลุม
+คลุมเครือ
+คลุมโปง
+คลุ่ม
+คลุ้ง
+คลุ้ม
+คลุ้มคลั่ง
+คล่อง
+คล่องà¹à¸„ล่ว
+คล่าว
+คล่ำ
+คล้อง
+คล้องจอง
+คล้อย
+คล้อยอุทิศ
+คล้า
+คล้าย
+คล้ายคลึง
+คล้ายà¹à¸à¹‰à¸§
+คล้ำ
+ควง
+ควงà¹à¸‚น
+ควน
+ควนà¸à¸²à¸«à¸¥à¸‡
+ควนขนุน
+ควนโดน
+ควบ
+ควบคุม
+ควบคู่
+ควบà¹à¸™à¹ˆà¸™
+ควย
+ควร
+ควอตซ์
+ควอท
+ควอรัม
+ควอลิตี้
+ควอเตอร์
+ควัà¸
+ควัน
+ควันตัม
+ควันติตี้
+ควั่น
+ควาà¸
+ควาà¸
+ควาน
+ความ
+ความคลาด
+ความชื้น
+ความชื้นสัมบูรณ์
+ความชื้นสัมพัทธ์
+ความถี่
+ความถี่วิทยุ
+ความถ่วง
+ความถ่วงจำเพาะ
+ความยาวคลื่น
+ความรู้สึà¸à¸”้อย
+ความรู้สึà¸à¹€à¸‚ื่อง
+ความรู้สึà¸à¹€à¸”่น
+ความหน่วง
+ความเครียด
+ความเค้น
+ความเฉื่อย
+ความเร็ว
+ความเร่ง
+ควาย
+ควินิน
+ควิวๆ
+ควิโต
+ควีน
+ควีนชาร์ล็อต
+ควีนสà¹à¸¥à¸™à¸”์
+คว่าว
+คว่ำ
+คว้า
+คว้าง
+คว้างๆ
+คว้าน
+คห
+คหà¸à¸£à¸£à¸¡
+คหà¸à¸£à¸£à¸¡à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+คหบดี
+คหปตานี
+คหัà¸
+คอ
+คอà¸
+คอà¸à¸¥à¸¡
+คอคอด
+คองคอร์ด
+คองเà¸à¸£à¸ª
+คองโà¸
+คอซอง
+คอด
+คอตà¸
+คอตตอน
+คอตั้ง
+คอตีบ
+คอต่อ
+คอถ่วง
+คอน
+คอนà¸à¸£à¸µà¸•
+คอนà¸à¸£à¸µà¸•à¸­à¸±à¸”à¹à¸£à¸‡
+คอนà¸à¸£à¸µà¸•à¹€à¸ªà¸£à¸´à¸¡à¹€à¸«à¸¥à¹‡à¸
+คอนจังชัน
+คอนซูมเมอร์
+คอนดัà¸à¹€à¸•à¸­à¸£à¹Œ
+คอนดิชัน
+คอนทรา
+คอนทราสท์
+คอนฟลิคท์
+คอนฟิà¸
+คอนฟิà¸à¸¹à¹€à¸£à¸Šà¸±à¸™
+คอนยัค
+คอนวอย
+คอนสวรรค์
+คอนสาน
+คอนาค
+คอนเซ็ปท์
+คอนเดนเซอร์
+คอนเทนเนอร์
+คอนเทสท์
+คอนเนà¸à¸•à¸´à¸à¸±à¸•
+คอนเนอร์
+คอนเฟิร์ม
+คอนเวนชัน
+คอนเวิร์ท
+คอนเวิร์ส
+คอนเสิร์ต
+คอนà¹à¸—ค
+คอนà¹à¸—คเลนส์
+คอนà¹à¸—รค
+คอนà¹à¸§à¸™à¸•à¹Œ
+คอนโซล
+คอนโดมิเนียม
+คอนโดรไดต์
+คอนโทรล
+คอนโทรลเลอร์
+คอบ
+คอบัว
+คอปาด
+คอปเปอร์
+คอพอà¸
+คอพับ
+คอม
+คอมปาวด์
+คอมพลิเมนท์
+คอมพลีท
+คอมพิวเตอร์
+คอมฟอร์ท
+คอมมอนเซนส์
+คอมมา
+คอมมาน
+คอมมานเดอร์
+คอมมานโด
+คอมมิชชั่น
+คอมมิดิ
+คอมมิดี้
+คอมมิวนิสต์
+คอมมูน
+คอมเพรสเซอร์
+คอมเพล็à¸à¸‹à¹Œ
+คอมเมนท์
+คอมเมอร์ซ
+คอมเมิซ
+คอมà¹à¸šà¹‡à¸—
+คอมà¹à¸žà¸„
+คอมà¹à¸žà¸¥à¸™
+คอมโบ
+คอมโพรไมส์
+คอมโพเนนต์
+คอมโพเนนท์
+คอม้า
+คอย
+คอยท่า
+คอยล์
+คอยส์
+คอรันดัม
+คอรัปชั่น
+คอรัล
+คอรัส
+คอร์ซิà¸à¸²
+คอร์ด
+คอร์ต
+คอร์น
+คอร์ปอเรชั่น
+คอร์ฟู
+คอร์รัปชัน
+คอร์ส
+คอร์เดียไรต์
+คอลลอยด์
+คอลัมน์
+คอลเลคชัน
+คอลเลจ
+คอลเล็à¸à¸Šà¸±à¸™
+คอลโลเฟน
+คอส
+คอสตาริà¸à¸²
+คอสติà¸à¹‚ซดา
+คอสท์
+คอสมิà¸
+คอสอง
+คอสูง
+คอสเมติà¸
+คอหอย
+คอห่าน
+คออ่อน
+คอเคซอยด์
+คอเลสเตอรอล
+คอà¹à¸‚็ง
+คอà¹à¸”ง
+คอà¹à¸šà¸°
+คอà¹à¸£à¹‰à¸‡
+คอà¹à¸¥à¸™
+คอà¹à¸«à¸¥à¸¡
+คอà¹à¸«à¹‰à¸‡
+คอไฟ
+คะ
+คะคาน
+คะคึง
+คะนอง
+คะนึง
+คะน้า
+คะมำ
+คะมึà¸
+คะยั้นคะยอ
+คะเน
+คะเน็ด
+คะเยอ
+คะà¹à¸™à¸™
+คะไขว่
+คัà¸
+คัคนัมพร
+คัคนางค์
+คัคนานต์
+คัคมัมพร
+คังไคย
+คัณฑสูตร
+คัด
+คัดค้าน
+คัดฉาà¸
+คัดชุน
+คัดมอน
+คัทลียา
+คัน
+คันขา
+คันจาม
+คันฉาย
+คันชัà¸
+คันชีพ
+คันถ
+คันทรง
+คันธ
+คันธà¸à¸¸à¸Žà¸µ
+คันธ์
+คันนา
+คันนายาว
+คันบวย
+คันโดง
+คันโพง
+คับ
+คับขัน
+คับคั่ง
+คับคา
+คับà¹à¸„
+คับใจ
+คัพภ
+คัมปาลา
+คัมภีร
+คัมภีรภาพ
+คัมภีร์
+คัมมินโทไนต์
+คัล
+คัว
+คั่à¸
+คั่ง
+คั่น
+คั่ว
+คั้น
+คา
+คาà¸à¸£à¸­à¸‡
+คาง
+คางคà¸
+คางทูม
+คางหมู
+คางโทน
+คาซาคสถาน
+คาด
+คาดค่า
+คาถา
+คาทอลิà¸
+คาธ
+คาน
+คานหาม
+คานารี
+คาน้า
+คาบ
+คาบชุด
+คาบสมุทร
+คาบาร์เรต์
+คาบูล
+คาปรี
+คาพยุต
+คาม
+คามณี
+คามณีย์
+คามภีร์
+คามวาสี
+คามิคาเซ่
+คามิลเลียน
+คามี
+คาย
+คายà¸
+คายัน
+คารพ
+คารม
+คารวะ
+คารา
+คาราà¸à¸±à¸ª
+คาราวาน
+คาราเต้
+คาราโอเà¸à¸°
+คาริบบีส์
+คาร์ดินัล
+คาร์ดิฟ
+คาร์ทูม
+คาร์นัลไลต์
+คาร์นิวัล
+คาร์บอน
+คาร์บอนมอนอà¸à¹„ซด์
+คาร์บอนไดออà¸à¹„ซด์
+คาร์บอลิà¸
+คาร์บอเนต
+คาร์บูเรเตอร์
+คาร์พ
+คาร์สันซิตี
+คาร์เนชั่น
+คาร์เนเลียน
+คาร์เพ็ท
+คาร์เวียร์
+คาร์โà¸
+คาร์โบรันดัม
+คาร์โบไฮเดรต
+คาลซิโดนี
+คาลาไมน์
+คาลิมนอส
+คาลีไบต์
+คาลà¹à¸„นไทต์
+คาลโคโซต์
+คาลโคไพไรต์
+คาว
+คาวตอง
+คาวบอย
+คาวปลา
+คาวี
+คาวุต
+คาส
+คาฮูลาเว
+คาเดท
+คาเธย์
+คาเบรรา
+คาเฟ
+คาเฟททีเรีย
+คาเฟ่
+คาà¹à¸£à¸„เตอร์
+คาโรไลน์
+คาโลเมล
+คำ
+คำขวัà¸
+คำขอ
+คำขาด
+คำคม
+คำชะอี
+คำตั้ง
+คำตาà¸à¸¥à¹‰à¸²
+คำตาย
+คำถาม
+คำทาย
+คำนวณ
+คำนวร
+คำนับ
+คำนัล
+คำนำ
+คำนึง
+คำนูณ
+คำà¸à¸­à¸¢
+คำฟ้อง
+คำมั่น
+คำมูล
+คำม่วง
+คำรน
+คำรบ
+คำราม
+คำร้อง
+คำหลวง
+คำเขื่อนà¹à¸à¹‰à¸§
+คำเติม
+คำเปรม
+คำเป็น
+คำà¹à¸–ลง
+คำà¹à¸ªà¸”
+คำà¹à¸«à¸‡
+คำโดด
+คำโบล
+คำโอง
+คำใต้
+คิà¸
+คิà¸à¸²à¸¥à¸µ
+คิà¸à¹†
+คิง
+คิงสตัน
+คิด
+คิดคด
+คิดค้น
+คิดตà¸
+คิดถึง
+คิดมาà¸
+คิทนอส
+คิมห
+คิมหันต์
+คิริ
+คิลาน
+คิลานปัจจัย
+คิว
+คิวชู
+คิวบา
+คิวบาไนต์
+คิวปิด
+คิวไพรต์
+คิ้ว
+คี
+คีต
+คีตศาสตร์
+คีตาจารย์
+คีนยา
+คีบ
+คีม
+คีย์
+คีย์บอร์ด
+คีย์เวิร์ด
+คีรี
+คีรีบูน
+คีรีมาศ
+คีรีรัà¸à¸™à¸´à¸„ม
+คีลลิง
+คีเอฟ
+คี่
+คึà¸
+คึà¸à¸„ัà¸
+คึà¸à¸„าม
+คึ่à¸
+คืน
+คืนคำ
+คืนชีพ
+คืนดี
+คืนตัว
+คืนให้
+คืบ
+คือ
+คุ
+คุà¸
+คุà¸à¸à¸µà¹‰
+คุà¸à¸„าม
+คุà¸à¹€à¸‚่า
+คุคะ
+คุง
+คุณ
+คุณครู
+คุณค่า
+คุณชาย
+คุณธรรม
+คุณนาม
+คุณนาย
+คุณบท
+คุณภาพ
+คุณย่า
+คุณลัà¸à¸©à¸“ะ
+คุณวุฒิ
+คุณศัพท์
+คุณสมบัติ
+คุณา
+คุณาà¸à¸£
+คุณูปà¸à¸²à¸£
+คุณโทษ
+คุด
+คุดคู้
+คุดทะราด
+คุต
+คุตติ
+คุนไซต์
+คุป
+คุปติ
+คุปต์
+คุม
+คุมนุม
+คุมà¸à¸­à¸¢
+คุย
+คุยห
+คุยหà¸à¸²à¸™
+คุยหประเทศ
+คุระบุรี
+คุรุ
+คุลา
+คุหา
+คุโณปà¸à¸²à¸£
+คุ่น
+คุ่ม
+คุ้ง
+คุ้น
+คุ้ม
+คุ้มครอง
+คุ้ย
+คุ๊à¸à¸à¸µà¹‰
+คู
+คูซิง
+คูณ
+คูณร่วมน้อย
+คูน
+คูปอง
+คูราเซา
+คูริล
+คูหา
+คูหาสวรรค์
+คูเมือง
+คูเรียม
+คูเรียมูเรีย
+คูเวต
+คูไซเอ
+คู่
+คู่ขา
+คู่ควร
+คู่คิด
+คู่คี่
+คู่ฉีà¸
+คู่ชัà¸
+คู่ชีพ
+คู่บุà¸
+คู่ผสม
+คู่มือ
+คู่ยาà¸
+คู่รัà¸
+คู่สวด
+คู่หู
+คู่อริ
+คู่à¹à¸«à¹ˆ
+คู่โค
+คู่ใจ
+คู้
+คู้บอน
+คเณศ
+คเนจร
+ค็อà¸à¸„ัส
+ค็อà¸à¹€à¸—ล
+ค็อฟฟี
+ค่อน
+ค่อนขอด
+ค่อนà¹à¸„ะ
+ค่อม
+ค่อย
+ค่ะ
+ค่า
+ค่าคบ
+ค่าง
+ค่าตัว
+ค่าที่
+ค่าน้ำ
+ค่าย
+ค่ายบางระจัน
+ค่าว
+ค่าสัมบูรณ์
+ค่าหด
+ค่าหัว
+ค่าเผา
+ค่าเสมอภาค
+ค่าà¹à¸£à¸‡
+ค่ำ
+ค่ำคืน
+ค้น
+ค้นคว้า
+ค้นหา
+ค้นหูà¸
+ค้อ
+ค้อน
+ค้อม
+ค้อย
+ค้อวัง
+ค้า
+ค้าขาย
+ค้าง
+ค้างคาว
+ค้างปี
+ค้างเติ่ง
+ค้าน
+ค้าว
+ค้ำ
+ค้ำคอ
+ค้ำจุน
+ค้ำชู
+ค้ำฟ้า
+ค้ำหัว
+ฆราวาส
+ฆาà¸
+ฆาต
+ฆาตà¸à¸£
+ฆาตà¸à¸£à¸£à¸¡
+ฆาน
+ฆ่า
+ฆ้อง
+ฆ้องวง
+งà¸
+งง
+งงงวย
+งงงัน
+งงิด
+งด
+งดงาม
+งบ
+งบดุล
+งม
+งมงาย
+งมโข่ง
+งวง
+งวด
+งวยงง
+งอ
+งอà¸
+งอà¸à¸‡à¸²à¸¡
+งอà¸à¹€à¸‡à¸¢
+งอà¸à¹à¸‡à¸
+งอด
+งอดà¹à¸‡à¸”
+งอน
+งอนง้อ
+งอนหง่อ
+งอนไถ
+งอบ
+งอม
+งอมà¹à¸‡à¸¡
+งอย
+งอหาย
+งอà¹à¸‡
+งะ
+งัà¸
+งัà¸à¹†
+งังๆ
+งัด
+งัดข้อ
+งัน
+งันงà¸
+งับ
+งับà¹à¸‡
+งัว
+งัวซัง
+งัวเงีย
+งั่à¸
+งั่ง
+งั่ว
+งั้น
+งา
+งาช้าง
+งาตัด
+งาน
+งานà¸à¸²à¸£
+งาบ
+งาบๆ
+งาม
+งามงอน
+งามดูพลี
+งามมานะ
+งามวงศ์วาน
+งาย
+งาลั่ว
+งาว
+งาสาน
+งาà¹à¸‹à¸‡
+งาไซ
+งำ
+งิ้ว
+งิ้ำ
+งีบ
+งึà¸
+งึà¸à¹†
+งึน
+งึม
+งึมงำ
+งุด
+งุนงง
+งุบ
+งุบงิบ
+งุย
+งุ่นง่าน
+งุ่มง่าม
+งุ้ม
+งู
+งูบ
+งูสวัด
+งูเห่า
+งู่หนี
+ง่วง
+ง่วงงุน
+ง่วงเหงา
+ง่วน
+ง่อง
+ง่อน
+ง่อย
+ง่า
+ง่าน
+ง่าม
+ง่าย
+ง่ายดาย
+ง่ายๆ
+ง่าเงย
+ง่ำ
+ง้วน
+ง้อ
+ง้องอน
+ง้อม
+ง้าง
+ง้าว
+ง้ำ
+จà¸
+จง
+จงà¸à¸£à¸¡
+จงà¸à¸¥
+จงà¸à¸¥à¸™à¸µ
+จงดี
+จงถนอม
+จงรัà¸
+จงสุข
+จงอร
+จงอาง
+จงเจริà¸
+จงใจ
+จด
+จดจำ
+จดจ่อ
+จดจ้อง
+จดหมัด
+จดหมาย
+จดหมายเหตุ
+จดุร
+จดูร
+จตุ
+จตุจัà¸à¸£
+จตุตถ
+จตุบท
+จตุปัจจัย
+จตุปาริสิทธิศีล
+จตุร
+จตุรงค์
+จตุรถ
+จตุรพัà¸à¸•à¸£à¹Œ
+จตุรพัà¸à¸•à¸£à¹Œà¸žà¸´à¸¡à¸²à¸™
+จตุรพิธ
+จตุรภุช
+จตุรภูมิ
+จตุรมิตร
+จตุสดมภ์
+จทึง
+จน
+จนà¸à¸§à¹ˆà¸²
+จนชั้น
+จนถึง
+จบ
+จบเห่
+จม
+จมปลัà¸
+จมร
+จมรี
+จมูà¸
+จมูà¸à¸¡à¸”
+จมเบ้า
+จยุติ
+จร
+จรà¸
+จรà¸à¸¥à¸¹à¹ˆ
+จรคั่ง
+จรจรัล
+จรจัด
+จรณะ
+จรด
+จรดล
+จรบน
+จรบัน
+จรบาท
+จรมัน
+จรมูà¸
+จรรจา
+จรรม
+จรรยา
+จรรโจษ
+จรรโลง
+จรลวง
+จรลาด
+จรลาย
+จรลิ่ว
+จรลี
+จรลู่
+จรล่วง
+จรล่ำ
+จรวจ
+จรวด
+จรวดนำวิถี
+จรวัà¸
+จรส
+จรอà¸
+จระขาบ
+จระทà¸
+จระนำ
+จระบาน
+จระบี
+จระเข้
+จระà¹à¸„ง
+จรัà¸à¸ªà¸™à¸´à¸—วงศ์
+จรัล
+จรัส
+จรัสเมือง
+จราà¸
+จราง
+จราจร
+จราà¸
+จราย
+จราว
+จราส
+จริà¸
+จริง
+จริงจัง
+จริงใจ
+จริต
+จริม
+จริย
+จริยธรรม
+จริยวัตร
+จริยศาสตร์
+จริยศึà¸à¸©à¸²
+จริยา
+จริว
+จรี
+จรึง
+จรุà¸
+จรุง
+จรูà¸
+จรูส
+จล
+จลนพลศาสตร์
+จลนศาสตร์
+จลนี
+จลา
+จลาจล
+จวà¸
+จวง
+จวด
+จวดลาà¸
+จวน
+จวนตัว
+จวนà¹à¸ˆ
+จวบ
+จวบจวน
+จวัà¸
+จอ
+จอà¸
+จอà¸à¹à¸«à¸™
+จอง
+จองคช
+จองจำ
+จองหอง
+จอด
+จอน
+จอนจ่อ
+จอบ
+จอภาพ
+จอม
+จอมทอง
+จอมทัพ
+จอมบึง
+จอมพระ
+จอมพล
+จอมใจ
+จอมไตร
+จอร์เจีย
+จอร์à¹à¸”น
+จอà¹à¸ˆ
+จอà¹à¸ª
+จะ
+จะà¸à¸£à¸¸à¸™
+จะà¸à¸¥à¸°
+จะà¸à¸¥à¸²à¸¡
+จะà¸à¸§à¸”
+จะà¸à¸¹à¸”
+จะขาบ
+จะงอย
+จะจะ
+จะจ้า
+จะนะ
+จะบัน
+จะปิ้ง
+จะละหวั่น
+จะละเม็ด
+จะเà¸à¸£à¹‡à¸‡
+จะเข็บ
+จะเข้
+จะà¹à¸ˆà¹ˆà¸¡
+จะà¹à¸ˆà¹‰à¸‡
+จะไจ้
+จัà¸
+จัà¸à¸à¸²à¸¢
+จัà¸à¸‚ุ
+จัà¸à¸ˆà¸±à¹ˆà¸™
+จัà¸à¸ˆà¸µà¹‰
+จัà¸à¸—รà¸à¸²à¸™à¸•à¹Œ
+จัà¸à¸£
+จัà¸à¸£à¸žà¸‡à¸©à¹Œ
+จัà¸à¸£à¸žà¸£à¸£à¸”ิ
+จัà¸à¸£à¸žà¸±à¸™à¸˜à¹Œ
+จัà¸à¸£à¸ à¸ž
+จัà¸à¸£à¸¢à¸²à¸™
+จัà¸à¸£à¸¢à¸²à¸™à¸¢à¸™à¸•à¹Œ
+จัà¸à¸£à¸£à¸²à¸¨à¸µ
+จัà¸à¸£à¸§à¸£à¸£à¸”ิ
+จัà¸à¸£à¸§à¸£à¸£à¸”ินิยม
+จัà¸à¸£à¸§à¸£à¸£à¸”ิ์
+จัà¸à¸£à¸§à¸²à¸¥
+จัà¸à¸£à¸²
+จัà¸à¸£à¸²à¸Š
+จัà¸à¸£à¸´à¸™
+จัà¸à¸£à¸µ
+จัà¸à¸£à¹€à¸žà¸Šà¸£
+จัà¸à¸©à¸¸
+จัà¸à¸ªà¸²à¸™
+จัà¸à¹à¸«à¸¥à¹ˆà¸™
+จัง
+จังà¸à¸§à¸”
+จังà¸à¸­à¸š
+จังà¸à¸²
+จังà¸à¸¹à¸”
+จังà¸à¹‰à¸²
+จังงัง
+จังมัง
+จังลอน
+จังหวะ
+จังหวัด
+จังหัน
+จังออน
+จังเà¸
+จังไร
+จัà¸à¹„ร
+จัณฑ
+จัณฑาล
+จัณฑ์
+จัด
+จัดà¸à¸²à¸£
+จัดจอง
+จัดจ้า
+จัดสรร
+จัดหา
+จัดเจน
+จัดà¹à¸ˆà¸‡
+จัตวา
+จัตุ
+จัตุร
+จัตุรัส
+จัตุสดมภ์
+จัน
+จันà¸à¸¥à¸´à¹ˆà¸™
+จันทนา
+จันทน์
+จันทน์เà¸à¹ˆà¸²
+จันทบุรี
+จันทร
+จันทรคติ
+จันทรคราส
+จันทรัคคะ
+จันทรา
+จันทราราม
+จันทรุปราคา
+จันทร์
+จันทร์พริ้ง
+จันทร์ม่วง
+จันทร์ลอย
+จันทร์สถิตย์
+จันทร์สุข
+จันทร์หุ่นบำเพ็à¸
+จันทร์เà¸à¸©à¸¡
+จันทร์เรือง
+จันทร์เศรษà¸à¸µ
+จันทัน
+จันทิมา
+จันทิรา
+จันท์
+จันลอง
+จันอับ
+จันเลา
+จันโจษ
+จับ
+จับà¸à¸±à¸‡
+จับà¸à¸¸à¸¡
+จับจด
+จับจอง
+จับจิต
+จับฉ่าย
+จับตา
+จับตาย
+จับบà¸
+จับปิ้ง
+จับผิด
+จับยาม
+จับยี่à¸à¸µ
+จับสั่น
+จับเจี๋ยว
+จับเจ่า
+จับโปง
+จับใจ
+จับไข้
+จัมà¸à¸¸à¸¡
+จัมมะ
+จั่น
+จั่ว
+จั้ง
+จั๊à¸à¸ˆà¸µà¹‰
+จั๊à¸à¹€à¸”ียม
+จั๊à¸à¹†
+จั๊บ
+จั๊วะ
+จั๋ง
+จา
+จาà¸
+จาà¸à¸²à¸£à¹Œà¸•à¸²
+จาà¸à¹à¸”ง
+จาคอปไซต์
+จาคี
+จาง
+จางวาง
+จาซินท์
+จาด
+จาดตะà¸à¸±à¹ˆà¸§
+จาตุ
+จาตุà¸à¸£à¸“ีย์
+จาตุทสี
+จาตุมหาราช
+จาตุร
+จาตุรงคสันนิบาต
+จาตุรันต์
+จาน
+จานบิน
+จานผี
+จานเสียง
+จาบ
+จาบัล
+จาบัลย์
+จาป
+จาม
+จามจุรี
+จามร
+จามรี
+จามิà¸à¸£
+จามีà¸à¸£
+จาร
+จารวาà¸
+จาระบี
+จาระไน
+จาริà¸
+จาริพิบูลย์
+จารี
+จารีต
+จารึà¸
+จารุ
+จารุà¸à¸¥à¸±à¸ª
+จารุเมือง
+จาว
+จาวา
+จาเมà¸à¸²
+จาเมนา
+จำ
+จำà¸à¸§à¹ˆà¸²
+จำà¸à¸±à¸”
+จำขื่อ
+จำครบ
+จำคา
+จำงาย
+จำจอง
+จำทน
+จำทวย
+จำทับ
+จำทาบ
+จำนง
+จำนงค์
+จำนน
+จำนรรจา
+จำนรรจ์
+จำนวน
+จำนวนจริง
+จำนวนจินตภาพ
+จำนวนตรรà¸à¸¢à¸°
+จำนวนนับ
+จำนวนอตรรà¸à¸¢à¸°
+จำนวนเชิงซ้อน
+จำนวนเต็ม
+จำนอง
+จำนับ
+จำนัล
+จำนำ
+จำบัง
+จำบับ
+จำบ่ม
+จำปา
+จำปาดะ
+จำปี
+จำปูน
+จำพวà¸
+จำยอม
+จำรด
+จำรัส
+จำราà¸
+จำราย
+จำรูà¸
+จำลอง
+จำลาย
+จำวัด
+จำศีล
+จำหนับ
+จำหน่าย
+จำหระ
+จำหลอà¸
+จำหลัà¸
+จำหล่อ
+จำหัน
+จำหาย
+จำหุด
+จำอวด
+จำอื่น
+จำเจ
+จำเดิม
+จำเทิด
+จำเนียร
+จำเนียรสุข
+จำเนียรเสริม
+จำเบศ
+จำเป็น
+จำเพาะ
+จำเริà¸
+จำเรียง
+จำเลย
+จำเลาะ
+จำà¹à¸—ง
+จำà¹à¸™à¸
+จำà¹à¸š
+จำà¹à¸žà¸£à¸
+จำà¹à¸¥à¸‡
+จำà¹à¸¥à¹ˆà¸™
+จิ
+จิà¸
+จิà¸à¸›à¸µà¸
+จิà¸à¸«à¸±à¸§
+จิงจัง
+จิงจ้อ
+จิงโจ้
+จิต
+จิตà¸à¸¶à¹ˆà¸‡à¸ªà¸³à¸™à¸¶à¸
+จิตต
+จิตตภาวนา
+จิตต์
+จิตต์ภัà¸à¸”ี
+จิตต์ร่วม
+จิตนิยม
+จิตบำบัด
+จิตประไพวิทยา
+จิตภาพ
+จิตร
+จิตรà¸à¸£
+จิตรà¸à¸£à¸£à¸¡
+จิตรจุล
+จิตรลดา
+จิตรวารี
+จิตรา
+จิตวิทยา
+จิตวิสัย
+จิตสำนึà¸
+จิตเวช
+จิตเวชศาสตร์
+จิตà¹à¸žà¸—ย์
+จิตใจ
+จิตใต้สำนึà¸
+จิตไร้สำนึà¸
+จินดา
+จินดามณี
+จินดาหรา
+จินต
+จินตà¸à¸§à¸µ
+จินตนา
+จินตนาà¸à¸²à¸£
+จินตภาพ
+จินต์
+จินต์จล
+จินเจา
+จิบ
+จิปดำริห์
+จิปาถะ
+จิร
+จิรà¸à¸²à¸¥
+จิรัà¸à¸´à¸•à¸´à¸à¸²à¸¥
+จิลโย
+จิ่ง
+จิ่ม
+จิ้งจà¸
+จิ้งจอà¸
+จิ้งจัง
+จิ้งหรีด
+จิ้งเหลน
+จิ้ม
+จิ้มà¸à¹‰à¸­à¸‡
+จิ้มลิ้ม
+จิ๊ป
+จิ๋ว
+จี
+จีน
+จีนัส
+จีนà¹à¸ª
+จีบ
+จีบพลู
+จีบูติ
+จีบูตี
+จีพร
+จีม
+จีรัง
+จีวร
+จีออà¸à¸£à¸²à¸Ÿà¸µ
+จีออเมทรี
+จีเนียส
+จีเอ็มโอ
+จีà¹à¸ˆà¹Šà¸›
+จีโนไทป์
+จีโบ
+จี่
+จี้
+จี๊
+จี๊จู้
+จี๊ด
+จี๋
+จี๋จ้อ
+จึง
+จึ่ง
+จึ้ง
+จืด
+จืดจาง
+จืดชืด
+จืดตา
+จุ
+จุà¸
+จุà¸à¸ˆà¸´à¸
+จุà¸à¸Šà¸µ
+จุà¸à¸œà¸²à¸¡
+จุà¸à¸¢à¸²
+จุฑา
+จุฑามณี
+จุฑามาศ
+จุณ
+จุณณียบท
+จุด
+จุดจบ
+จุดทศนิยม
+จุดน้ำค้าง
+จุดบอด
+จุดยืน
+จุดรวม
+จุดศูนย์à¸à¸¥à¸²à¸‡
+จุดศูนย์ถ่วง
+จุดสัมผัส
+จุดหลอมเหลว
+จุดอิ่มตัว
+จุดเดือด
+จุดเยือà¸à¹à¸‚็ง
+จุดเหี่ยวเฉา
+จุติ
+จุตูปปาตà¸à¸²à¸“
+จุทส
+จุน
+จุนจู๋
+จุนสี
+จุนเจือ
+จุบ
+จุบจิบ
+จุปาà¸
+จุมพà¸
+จุมพล
+จุมพิต
+จุรณ
+จุรี
+จุล
+จุลจอม
+จุลจอมเà¸à¸¥à¹‰à¸²
+จุลชีพ
+จุลชีวัน
+จุลชีวิน
+จุลทรรศน์
+จุลภาค
+จุลภาพ
+จุลวรรค
+จุลศัà¸à¸£à¸²à¸Š
+จุลสาร
+จุลินทรีย์
+จุฬา
+จุฬาราชมนตรี
+จุฬาลงà¸à¸£à¸“์
+จุฬาสัมพันธ์
+จุฬาเà¸à¸©à¸¡
+จุใจ
+จุไร
+จุ่ง
+จุ่น
+จุ่ม
+จุ้น
+จุ้นจู๊
+จุ้ม
+จุ้ย
+จุ๊à¸à¸à¸£à¸¹à¹Š
+จุ๊บ
+จุ๊บà¹à¸ˆà¸‡
+จุ๋งจิ๋ง
+จุ๋มจิ๋ม
+จู
+จูง
+จูงมือ
+จูงใจ
+จูบ
+จูโน
+จู่
+จู่ลู่
+จู่โจม
+จู่ๆ
+จู้
+จู้จี้
+จู๊ด
+จู๋
+จู๋จี๋
+จเร
+จà¹à¸ˆà¹‰à¸™
+จ็อบ
+จ่ง
+จ่ม
+จ่อ
+จ่อง
+จ่อม
+จ่อย
+จ่า
+จ่าง
+จ่าปี่
+จ่าย
+จ่ารง
+จ่าว
+จ้น
+จ้วง
+จ้อ
+จ้อà¸
+จ้อà¸à¹à¸ˆà¹‰à¸
+จ้อง
+จ้องเต
+จ้อน
+จ้อย
+จ้ะ
+จ้า
+จ้าง
+จ้าน
+จ้าละหวั่น
+จ้าว
+จ้ำ
+จ้ำจี้
+จ้ำบ๊ะ
+จ้ำม่ำ
+จ้ำเบ้า
+จ๊วà¸
+จ๊อà¸
+จ๊อà¸à¹à¸ˆà¹Šà¸
+จ๊อà¸à¹†
+จ๊ะ
+จ๊ะเอ๋
+จ๋ง
+จ๋วง
+จ๋อ
+จ๋อง
+จ๋อย
+จ๋อà¹à¸ˆà¹‹
+จ๋ะ
+จ๋า
+ฉà¸
+ฉà¸à¸ˆà¸§à¸±à¸
+ฉà¸à¸‰à¸§à¸¢
+ฉà¸à¸Šà¸´à¸‡
+ฉà¸à¸£à¸£à¸ˆà¹Œ
+ฉà¸à¸©à¸±à¸•à¸£à¸´à¸¢à¹Œ
+ฉà¸à¸²à¸ˆ
+ฉà¸à¸²à¸¡à¸²à¸žà¸ˆà¸£
+ฉงน
+ฉงาย
+ฉทวาร
+ฉทึง
+ฉนวน
+ฉนัง
+ฉนาà¸
+ฉนำ
+ฉบัง
+ฉบัด
+ฉบับ
+ฉบำ
+ฉม
+ฉมวà¸
+ฉมวย
+ฉมัง
+ฉมัน
+ฉมา
+ฉมำ
+ฉล
+ฉลวย
+ฉลอง
+ฉลอม
+ฉลัà¸
+ฉลับ
+ฉลาà¸
+ฉลาง
+ฉลาด
+ฉลาม
+ฉลาย
+ฉลิว
+ฉลีà¸
+ฉลุ
+ฉลุà¸à¸‰à¸¥à¸§à¸¢
+ฉลุลาย
+ฉลู
+ฉวย
+ฉวยฉาบ
+ฉวะ
+ฉวัดเฉวียน
+ฉวาง
+ฉวี
+ฉวีวรรณ
+ฉศà¸
+ฉอà¸
+ฉองได
+ฉอด
+ฉอดๆ
+ฉอเลาะ
+ฉะ
+ฉะà¸à¸°
+ฉะฉาด
+ฉะฉาน
+ฉะฉี่
+ฉะฉ่ำ
+ฉะต้า
+ฉะนั้น
+ฉะนี้
+ฉะอ้อน
+ฉะเชิงเทรา
+ฉัà¸à¸à¸°
+ฉัà¸
+ฉัด
+ฉัตร
+ฉัตรมงคล
+ฉัตรเสรี
+ฉัตรà¹à¸à¹‰à¸§
+ฉัททันต์
+ฉัน
+ฉันท
+ฉันทลัà¸à¸©à¸“์
+ฉันทะ
+ฉันทา
+ฉันทาคติ
+ฉันทานุมัติ
+ฉันท์
+ฉันใด
+ฉับ
+ฉับไว
+ฉัยยา
+ฉาà¸
+ฉาง
+ฉาด
+ฉาดฉาน
+ฉาตà¸à¸ à¸±à¸¢
+ฉาทน
+ฉาน
+ฉาบ
+ฉาบฉวย
+ฉาป
+ฉาย
+ฉายา
+ฉายาลัà¸à¸©à¸“์
+ฉาว
+ฉาวโฉ่
+ฉำฉา
+ฉำเฉง
+ฉำà¹à¸‰à¸°
+ฉิน
+ฉินท
+ฉินท์
+ฉิบ
+ฉิบหาย
+ฉิมทายิà¸à¸²à¸§à¸²à¸ª
+ฉิมพลี
+ฉิว
+ฉิ่ง
+ฉีà¸
+ฉีด
+ฉีดยา
+ฉี่
+ฉุ
+ฉุà¸
+ฉุà¸à¸„ิด
+ฉุà¸à¹€à¸‰à¸´à¸™
+ฉุà¸à¹ƒà¸ˆ
+ฉุด
+ฉุน
+ฉุนเฉียว
+ฉุป
+ฉุย
+ฉุยฉาย
+ฉูด
+ฉูดฉาด
+ฉู่
+ฉู่ฉี่
+ฉ่อง
+ฉ่อย
+ฉ่า
+ฉ่าง
+ฉ่าฉาว
+ฉ่ำ
+ฉ้อ
+ฉ้อฉล
+ฉ้อโà¸à¸‡
+ชà¸
+ชà¸à¸¡à¸§à¸¢
+ชà¸à¸²
+ชคดี
+ชง
+ชงคา
+ชงฆ
+ชงฆ์
+ชงโค
+ชงโลง
+ชฎา
+ชฎาพอà¸
+ชฎิล
+ชà¸à¸²à¸˜à¸²à¸£
+ชด
+ชดช้อย
+ชดเชย
+ชดใช้
+ชทึง
+ชน
+ชนà¸
+ชนชั้น
+ชนชาติ
+ชนช้าง
+ชนนี
+ชนบท
+ชนมพรรษา
+ชนมายุ
+ชนม์
+ชนวน
+ชนหมู่น้อย
+ชนะ
+ชนะสงคราม
+ชนัà¸
+ชนา
+ชนาง
+ชนิด
+ชนà¹à¸”น
+ชบา
+ชบาหนู
+ชปโยค
+ชม
+ชมชัว
+ชมชาà¸
+ชมชื่น
+ชมดชม้อย
+ชมนาด
+ชมพู
+ชมพูนท
+ชมพูนุท
+ชมพู่
+ชมภูเวà¸
+ชมรม
+ชมัน
+ชมา
+ชมเชย
+ชมเปาะ
+ชมเลาะ
+ชมไช
+ชม้อย
+ชม้าย
+ชย
+ชยา
+ชร
+ชรทึง
+ชรราง
+ชรริน
+ชรออบ
+ชรอัด
+ชรอื้อ
+ชรอุ่ม
+ชรอ่ำ
+ชระ
+ชระงม
+ชระงำ
+ชระดัด
+ชระบอบ
+ชระบาบ
+ชระมด
+ชระมัว
+ชระลอ
+ชระลอง
+ชระลัด
+ชระลุ
+ชระล้ำ
+ชระอับ
+ชระอาบ
+ชระเอม
+ชระà¹à¸¥à¸‡
+ชรัด
+ชรัว
+ชรา
+ชราบ
+ชราภาพ
+ชรายุ
+ชริน
+ชรุà¸
+ชรูบ
+ชรà¹à¸£à¸‡
+ชรà¹à¸£à¹ˆà¸‡
+ชรโมล
+ชรโลง
+ชรไม
+ชล
+ชลจร
+ชลชาติ
+ชลธาร
+ชลธารà¸
+ชลธิศ
+ชลธี
+ชลนา
+ชลบุรี
+ชลประทาน
+ชลมารค
+ชลสถาน
+ชลัมพุ
+ชลาธาร
+ชลาพุช
+ชลามพุช
+ชลาลัย
+ชลาศัย
+ชลี
+ชลูà¸à¸²
+ชลเนตร
+ชว
+ชวด
+ชวน
+ชวนชม
+ชวนหัว
+ชวย
+ชวร
+ชวลิต
+ชวัà¸
+ชวา
+ชวาล
+ชวาลา
+ชอà¸
+ชอà¸à¸Šà¹‰à¸³
+ชอง
+ชอน
+ชอบ
+ชอบà¸à¸¥
+ชอบพอ
+ชอบใจ
+ชอป
+ชอปปิ้ง
+ชอม
+ชอร์ไลต์
+ชอล์à¸
+ชอื้อ
+ชอุ่ม
+ชอ่ำ
+ชะ
+ชะคราม
+ชะงอà¸
+ชะงัà¸
+ชะงัด
+ชะงาบ
+ชะงุ้ม
+ชะง่อน
+ชะง้ำ
+ชะฉ่า
+ชะชิด
+ชะช่อง
+ชะช้า
+ชะตา
+ชะต้า
+ชะนี
+ชะนุง
+ชะพลู
+ชะมด
+ชะมบ
+ชะมวง
+ชะมัง
+ชะมัด
+ชะรอย
+ชะลอ
+ชะลอม
+ชะลาน
+ชะลิน
+ชะลูด
+ชะล่า
+ชะล้าง
+ชะวัง
+ชะวาà¸
+ชะวาà¸à¸—ะเล
+ชะวาด
+ชะวุ้ง
+ชะอม
+ชะอวด
+ชะอำ
+ชะอ้อน
+ชะเง้อ
+ชะเนาะ
+ชะเลง
+ชะเลย
+ชะเอม
+ชะà¹à¸‡à¹‰
+ชะà¹à¸¡à¹ˆ
+ชะà¹à¸¥à¸‡
+ชะà¹à¸¥à¹‡à¸
+ชะà¹à¸§à¸‡
+ชะโงà¸
+ชะโงà¸à¸œà¸²
+ชะโด
+ชะโอน
+ชัà¸
+ชัà¸à¸ˆà¸¹à¸‡
+ชัà¸à¸Šà¸§à¸™
+ชัà¸à¸Šà¹‰à¸²
+ชัà¸à¸™à¸³
+ชัà¸à¸žà¸£à¸°
+ชัà¸à¸¨à¸ž
+ชัà¸à¹€à¸‡à¸²
+ชัà¸à¹€à¸¢à¹ˆà¸­
+ชัà¸à¹‚ครà¸
+ชัà¸à¹ƒà¸¢
+ชัค
+ชัง
+ชังคา
+ชังฆ
+ชัชวาล
+ชัà¸
+ชัด
+ชัดช้า
+ชัดเจน
+ชัตเตอร์
+ชัน
+ชันà¸à¸²à¸”
+ชันคอ
+ชันชี
+ชันตุ
+ชันนะตุ
+ชันนุ
+ชันพอน
+ชันษา
+ชันสน
+ชันสูตร
+ชันโรง
+ชัปน
+ชัพ
+ชัย
+ชัยชนะ
+ชัยณรงค์
+ชัยนาท
+ชัยบาดาล
+ชัยบาน
+ชัยพฤà¸à¸©à¹Œ
+ชัยภูมิ
+ชัยมงคล
+ชัยวัฒน์
+ชัยวิวัฒน์
+ชัยศรี
+ชัยสมรภูมิ
+ชัลลุà¸à¸°
+ชัวชม
+ชัวร์
+ชั่ง
+ชั่งใจ
+ชั่ว
+ชั่วคน
+ชั่วคราว
+ชั่วโมง
+ชั้น
+ชั้ว
+ชา
+ชาà¸à¸­à¸ª
+ชาคร
+ชาคริต
+ชาà¸
+ชาà¸à¸§à¸´à¸—ย์วิทยา
+ชาด
+ชาดà¸
+ชาต
+ชาตรี
+ชาตรูป
+ชาตสระ
+ชาตะ
+ชาตา
+ชาติ
+ชาติตระà¸à¸²à¸£
+ชาตินิยม
+ชาติพันธุ์
+ชาติพันธุ์วรรณนา
+ชาติพันธุ์วิทยา
+ชาติรส
+ชาติรูป
+ชาติสงเคราะห์
+ชาน
+ชานุ
+ชานุà¸à¸°
+ชานุมณฑล
+ชานุมาน
+ชานเมือง
+ชาม
+ชามาดร
+ชามาดา
+ชามาตุ
+ชาย
+ชายคา
+ชายตา
+ชายทะเล
+ชายธง
+ชายà¸à¸±à¹ˆà¸‡
+ชายหาด
+ชายา
+ชายà¹à¸”น
+ชายไหว
+ชารี
+ชาร์จ
+ชาร์ท
+ชาร์ป
+ชาร์ลสตัน
+ชาร์ล็อตอามาลี
+ชาล
+ชาลา
+ชาลินี
+ชาว
+ชาวนอà¸
+ชาวนา
+ชาวน้ำ
+ชาววัง
+ชาวสวน
+ชาวี
+ชาวเล
+ชาวไร่
+ชาห์
+ชาเยศ
+ชำ
+ชำงัด
+ชำงาย
+ชำงือ
+ชำนน
+ชำนรร
+ชำนะ
+ชำนัà¸
+ชำนัน
+ชำนาà¸
+ชำนิ
+ชำมะนาด
+ชำมะเลียง
+ชำระ
+ชำรุด
+ชำร่วย
+ชำลา
+ชำเนียน
+ชำเนียร
+ชำเรา
+ชำเลือง
+ชำà¹à¸£à¸
+ชำà¹à¸£à¸°
+ชำà¹à¸«à¸¥à¸°
+ชิ
+ชิคาโà¸
+ชิง
+ชิงคม
+ชิงชัง
+ชิงชัน
+ชิงชัย
+ชิงชี่
+ชิงช้า
+ชิงดวง
+ชิงพลบ
+ชิณณะ
+ชิด
+ชิดชน
+ชิดลม
+ชิต
+ชิตินทรีย์
+ชิน
+ชินเขต
+ชินโต
+ชิป
+ชิพ
+ชิม
+ชิมลาง
+ชิมà¹à¸›à¸™à¸‹à¸µ
+ชิยา
+ชิรณ
+ชิระ
+ชิลลิ่ง
+ชิลี
+ชิวหา
+ชิสา
+ชิโà¸à¸à¸¸
+ชิโนรส
+ชิ่ง
+ชิ่น
+ชิ้น
+ชี
+ชีค
+ชีช้ำ
+ชีต้น
+ชีท
+ชีปะขาว
+ชีป่า
+ชีพ
+ชีพจร
+ชีพิต
+ชีพิตัà¸à¸©à¸±à¸¢
+ชีพุà¸
+ชีฟ
+ชีฟอง
+ชีมืด
+ชีรณ
+ชีระ
+ชีลา
+ชีลาว
+ชีล้อม
+ชีว
+ชีวงคต
+ชีวประวัติ
+ชีวภาพ
+ชีววิทยา
+ชีวะ
+ชีวัน
+ชีวา
+ชีวาตม์
+ชีวาลัย
+ชีวิต
+ชีวิตัà¸à¸©à¸±à¸¢
+ชีวิน
+ชีวี
+ชีวเคมี
+ชีวโลà¸
+ชีส
+ชีอะห์
+ชีไลต์
+ชี่
+ชี้
+ชี้ขาด
+ชี้ตัว
+ชี้นำ
+ชี้ฟ้า
+ชี้à¹à¸ˆà¸‡
+ชี้à¹à¸™à¸°
+ชืด
+ชื่น
+ชื่นชม
+ชื่นบาน
+ชื่นมื่น
+ชื่นฤดี
+ชื่นวัฒนา
+ชื่อ
+ชื้น
+ชื้อ
+ชุ
+ชุà¸
+ชุà¸à¸Šà¸µ
+ชุà¸à¸Šà¸¸à¸¡
+ชุณห
+ชุด
+ชุติ
+ชุติมา
+ชุน
+ชุบ
+ชุบชู
+ชุบตัว
+ชุบสรง
+ชุบอาบ
+ชุม
+ชุมชน
+ชุมนุม
+ชุมพร
+ชุมพล
+ชุมพลบุรี
+ชุมพวง
+ชุมพา
+ชุมรุม
+ชุมสาย
+ชุมà¹à¸ž
+ชุมà¹à¸ªà¸‡
+ชุลมุน
+ชุลี
+ชุลีพร
+ชุษณ
+ชุ่ง
+ชุ่ม
+ชุ่มใจ
+ชุ่ย
+ชุ้ง
+ชู
+ชูชาติ
+ชูชีพ
+ชูท
+ชูรส
+ชูส
+ชูโรง
+ชูใจ
+ชู้
+ชู้รัà¸
+ชู้สาว
+ชเนตตี
+ชเล
+ชโย
+ชโลง
+ชโลทร
+ชโลม
+ชไม
+ช็อà¸
+ช็อà¸à¹€à¸à¸­à¸£à¹Œ
+ช็อà¸à¹‚à¸à¹€à¸¥à¸•
+ช็อà¸à¹‚à¸à¹à¸¥à¸•
+ช็อค
+ช็อคอัป
+ช็อท
+ช็อป
+ช็อยซ์
+ช็อร์ท
+ช่วง
+ช่วย
+ช่อ
+ช่อง
+ช่องนนทรีย์
+ช่องลม
+ช่องเขา
+ช่องà¹à¸„บ
+ช่องไฟ
+ช่อน
+ช่อฟ้า
+ช่อย
+ช่าง
+ช่างà¸à¸¥à¸›à¸—ุมวัน
+ช่างà¸à¸µà¸¡à¸·à¸­à¸—หาร
+ช่างอาà¸à¸²à¸¨à¸šà¸³à¸£à¸¸à¸‡
+ช่างเหล็à¸
+ช่างไฟ
+ช่างไม้
+ช่ำ
+ช่ำชอง
+ช่ำช่า
+ช่ำปอด
+ช่ำใจ
+ช้อง
+ช้อน
+ช้อย
+ช้อยชด
+ช้า
+ช้าง
+ช้างต้น
+ช้าปี่
+ช้าพลู
+ช้ำ
+ช้ำชอà¸
+ช้ำใจ
+ซà¸
+ซงดำ
+ซง้า
+ซด
+ซน
+ซบ
+ซบเซา
+ซม
+ซมซาน
+ซวด
+ซวดทรง
+ซวดเซ
+ซวน
+ซวนเซ
+ซวย
+ซอ
+ซอà¸
+ซอà¸à¸‹à¸­à¸™
+ซอà¸à¸‹à¸±à¸‡
+ซอà¸à¹à¸‹à¸
+ซอง
+ซองพลู
+ซองมือ
+ซองหาง
+ซองà¹à¸¡à¸§
+ซอน
+ซอฟต์à¹à¸§à¸£à¹Œ
+ซอม
+ซอมซ่อ
+ซอมบา
+ซอมบี้
+ซอย
+ซอยผม
+ซอยไซต์
+ซอร์ส
+ซอร์สโค้ด
+ซอลต์เลà¸à¸‹à¸´à¸•à¸µ
+ซอส
+ซอสซูไรต์
+ซอสเบอรี
+ซอà¹à¸‹
+ซะ
+ซะซิบ
+ซะซ่อง
+ซะเซาะ
+ซัà¸
+ซัà¸à¸Ÿà¸­à¸
+ซัà¸à¸£à¸µà¸”
+ซัà¸à¹à¸«à¹‰à¸‡
+ซัà¸à¹„ซ้
+ซัคชัน
+ซัง
+ซังà¹à¸‹à¸§
+ซัด
+ซัดทอด
+ซัดน้ำ
+ซัดยา
+ซัดเซ
+ซัน
+ซันคริสโตวัล
+ซันซัลวาดอร์
+ซันตาคลอส
+ซันตามอรา
+ซันตาเฟ
+ซันติอาโà¸
+ซันนี
+ซันนี่
+ซันมาริโน
+ซันมารีโน
+ซันฮวน
+ซันโตโดมิงโà¸
+ซันโฮเซ
+ซับ
+ซับซาบ
+ซับซี่
+ซับเวย์
+ซับใน
+ซัปพลิเมนท์
+ซัพพลาย
+ซัพพอร์ต
+ซัพเปอร์
+ซัฟฟิà¸à¸‹à¹Œ
+ซัม
+ซัมมิท
+ซัมเมอร์
+ซัมเมอร์เซต
+ซัลฟา
+ซัลเฟต
+ซัลเฟอร์
+ซัลโว
+ซั้ง
+ซั้น
+ซั้ว
+ซา
+ซาà¸
+ซาà¸à¸”ึà¸à¸”ำบรรพ์
+ซาà¸à¸¨à¸ž
+ซาà¸à¸¸à¸£à¸°
+ซาง
+ซาด
+ซาดิสม์
+ซาตาน
+ซาติน
+ซาทินสปาร์
+ซาน
+ซานตาคลอส
+ซานา
+ซานิดีน
+ซาบ
+ซาบซึ้ง
+ซาบซ่าน
+ซาฟารี
+ซามอส
+ซามัว
+ซามาร์
+ซามาร์สไà¸à¸•à¹Œ
+ซามูไร
+ซาราวัà¸
+ซาราเยโว
+ซาร์
+ซาร์ด
+ซาร์ดิเนีย
+ซาร์ส
+ซาร์โดนิà¸à¸‹à¹Œ
+ซาละวาตี
+ซาลาม
+ซาลาเปา
+ซาลินา
+ซาลูน
+ซาว
+ซาวด์
+ซาวน้ำ
+ซาวน์ด
+ซาวน์ดà¹à¸—็รà¸
+ซาอีร์
+ซาอุดิอาระเบีย
+ซาอุดีอาระเบีย
+ซาเà¸à¸£à¸š
+ซาà¹à¸¡à¹€à¸£à¸µà¸¢à¸¡
+ซาโพไนต์
+ซาโยนาระ
+ซาโว
+ซาไà¸
+ซาไลต์
+ซิ
+ซิà¸
+ซิà¸à¸‚์วิทยาลัย
+ซิà¸à¸‹à¸µà¹‰
+ซิà¸à¸™à¹Œ
+ซิà¸à¸²à¸£à¹Œ
+ซิà¸à¸²à¸£à¹Œà¹€à¸£à¸—
+ซิà¸à¹à¸‹à¹‡à¸
+ซิà¸à¹à¸™à¸¥
+ซิงà¸à¸¹à¸¥à¹ˆà¸²à¸£à¹Œ
+ซิงค์
+ซิงเà¸à¸›
+ซิงเà¸à¸´à¸¥
+ซิงโคนา
+ซิงไคต์
+ซิซิลี
+ซิซิเลียน
+ซิดนีย์
+ซิติเซน
+ซิตี้
+ซิทริน
+ซินนาบาร์
+ซินนามิà¸
+ซินยอร์
+ซินเà¸à¸µà¸¢à¸‡
+ซินเซียร์
+ซินà¹à¸—็ค
+ซินà¹à¸ª
+ซินโนนิม
+ซิบ
+ซิบซับ
+ซิป
+ซิฟนอส
+ซิฟิลิส
+ซิมบับเว
+ซิมมิททรี
+ซิมโบล
+ซิมโพเซียม
+ซิมโฟนี
+ซิมโฟนี่
+ซิลค์
+ซิลลิมาไนต์
+ซิลวาไนต์
+ซิลิà¸à¸²
+ซิลิคอน
+ซิลเวอร์
+ซิลไวต์
+ซิว
+ซิวิค
+ซิสเตม
+ซิสเต็ม
+ซิเดอไรต์
+ซิ่ง
+ซิ่น
+ซิ้งค์
+ซิ้ม
+ซี
+ซีà¸
+ซีคอนสà¹à¸„วร์
+ซีด
+ซีดี
+ซีดเซียว
+ซีน
+ซีนอน
+ซีป่าย
+ซีพิโอไลต์
+ซีพียู
+ซีรอà¸à¸‹à¹Œ
+ซีรี่ส์
+ซีล
+ซีลีเนียม
+ซีอิ๊ว
+ซีเà¸à¸¡à¸ªà¹Œ
+ซีเคร็ท
+ซีเซียม
+ซีเนท
+ซีเนียร์
+ซีเมนต์
+ซีเมนต์ไทย
+ซีเรีย
+ซีเรียม
+ซีเรียส
+ซีเลคชัน
+ซีà¹à¸¥à¸™à¸”์
+ซีโนไทม์
+ซีโอไลต์
+ซี่
+ซี่โครง
+ซี้
+ซี้ซอน
+ซี้ซั้ว
+ซี้บ้องเซ็à¸
+ซึà¸
+ซึง
+ซึม
+ซึมซับ
+ซึมซาบ
+ซึมเซา
+ซึ่ง
+ซึ้ง
+ซื่อ
+ซื่อตรง
+ซื่อสัตย์
+ซื้อ
+ซุà¸
+ซุà¸à¸‹à¸™
+ซุà¸à¸‹à¸´à¸
+ซุà¸à¸‹à¹ˆà¸­à¸™
+ซุง
+ซุน
+ซุนดาน้อย
+ซุนดาใหà¸à¹ˆ
+ซุบ
+ซุบซิบ
+ซุบซู่
+ซุป
+ซุปเปอร์
+ซุปเปอร์มาร์เà¸à¹‡à¸•
+ซุปเปอร์ไวเซอร์
+ซุมบา
+ซุมบาวา
+ซุมà¹à¸‹à¸§
+ซุย
+ซุ่ม
+ซุ่มคม
+ซุ่มซ่าม
+ซุ่มเสียง
+ซุ้ม
+ซู
+ซูชิ
+ซูซูà¸à¸´
+ซูด
+ซูดซาด
+ซูดาน
+ซูบ
+ซูบซีด
+ซูม
+ซูลู
+ซูวา
+ซูเปอร์มาเà¸à¹‡à¸•
+ซูเอี๋ย
+ซูโครส
+ซูโม
+ซูโม่
+ซู่
+ซู่ซ่า
+ซู้ด
+ซ่à¸
+ซ่น
+ซ่อง
+ซ่องสุม
+ซ่องโจร
+ซ่อน
+ซ่อนà¸à¸¥à¸´à¹ˆà¸™
+ซ่อนงำ
+ซ่อนหา
+ซ่อม
+ซ่อมà¹à¸‹à¸¡
+ซ่า
+ซ่าง
+ซ่าน
+ซ่าหริ่ม
+ซ่าโบะ
+ซ้น
+ซ้อ
+ซ้อง
+ซ้อน
+ซ้อนà¸à¸¥
+ซ้อม
+ซ้อส
+ซ้อà¹à¸‹à¹‰
+ซ้าย
+ซ้ำ
+ซ้ำซาà¸
+ซ้ำสาม
+ฌาน
+ฌาปน
+ฌาปนà¸à¸´à¸ˆ
+ฌาปนสถาน
+à¸à¸à¹ˆà¸²à¸¢
+à¸à¸§à¸™
+à¸à¸±à¸•à¸•à¸´
+à¸à¸±à¸•à¸•à¸´à¸à¸£à¸£à¸¡
+à¸à¸²à¸“
+à¸à¸²à¸“วิทยา
+à¸à¸²à¸“ี
+à¸à¸²à¸•à¸´
+à¸à¸²à¸•à¸´à¸à¸²
+à¸à¸²à¸•à¸´à¸¡à¸´à¸•à¸£
+à¸à¸²à¸•à¸´à¹€à¸ à¸—
+à¸à¸²à¸•à¸´à¹‚ยม
+à¸à¸´à¸š
+à¸à¸µà¹ˆ
+à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™
+ฎีà¸à¸²
+à¸à¸à¸±à¸”
+à¸à¸²à¸à¸¹à¸£
+à¸à¸²à¸™
+à¸à¸²à¸™à¸—ัพ
+à¸à¸²à¸™à¸™à¸´à¸¢à¸¡
+à¸à¸²à¸™à¸£à¸²à¸
+à¸à¸²à¸™à¸°
+à¸à¸²à¸™à¸±à¸™à¸”ร
+à¸à¸²à¸™à¸²à¸™à¸¸à¸à¸£à¸¡
+à¸à¸²à¸™à¸²à¸™à¸¸à¸£à¸¹à¸›
+à¸à¸²à¸™à¸µà¸¢
+à¸à¸²à¸™à¸µà¸¢à¸°
+à¸à¸²à¸›à¸™
+à¸à¸²à¸›à¸™à¸²
+à¸à¸²à¸¢à¸µ
+à¸à¸´à¸•
+à¸à¸´à¸•à¸´
+ฑังส
+ฑังสะ
+ฑาà¸
+ฑาà¸à¸´à¸à¸°
+ฑาฒิà¸à¸°
+ฑาหà¸
+ฑาหะ
+ณรงค์
+ณรงค์à¸à¸´à¸ˆ
+ดà¸
+ดà¸à¸”ื่น
+ดง
+ดงดาน
+ดงดิบ
+ดงดึà¸
+ดงมูลเหล็à¸
+ดงวาย
+ดงหลวง
+ดนตรี
+ดนัย
+ดนุ
+ดนุช
+ดนู
+ดนโด่
+ดม
+ดมดอม
+ดมไร
+ดยุ๊ค
+ดร
+ดรงค์
+ดรณี
+ดรธาน
+ดรรชนี
+ดรรชนีหัà¸à¹€à¸«
+ดรัà¸
+ดราà¸à¸­à¸™
+ดราฟต์
+ดราไวต์
+ดริ้งค์
+ดรุ
+ดรุณ
+ดรุณพิทยา
+ดรุณศาสตร์
+ดรุณา
+ดรุณี
+ดร็อป
+ดฤถี
+ดล
+ดลภาค
+ดลศิริ
+ดลใจ
+ดวง
+ดวงดาว
+ดวงตะวัน
+ดวงตา
+ดวงมณี
+ดวงสมร
+ดวงà¹à¸‚
+ดวงใจ
+ดวจ
+ดวด
+ดวล
+ดอà¸
+ดอà¸à¸„ำใต้
+ดอà¸à¸ˆà¸­à¸
+ดอà¸à¸ˆà¸±à¸™
+ดอà¸à¸ˆà¸´à¸
+ดอà¸à¸”ิน
+ดอà¸à¸—อง
+ดอà¸à¸šà¸±à¸§
+ดอà¸à¸šà¸¸à¸
+ดอà¸à¸Ÿà¹‰à¸²
+ดอà¸à¸£à¸±à¸
+ดอà¸à¸«à¸´à¸™
+ดอà¸à¸­à¸²à¸§
+ดอà¸à¹€à¸•à¸­à¸£à¹Œ
+ดอà¸à¹€à¸šà¸µà¹‰à¸¢
+ดอà¸à¹„ม้
+ดอง
+ดองฉาย
+ดองดึง
+ดองยา
+ดอด
+ดอน
+ดอนตาล
+ดอนตูม
+ดอนพุด
+ดอนสัà¸
+ดอนเจดีย์
+ดอนเมือง
+ดอม
+ดอมดม
+ดอย
+ดอยช์
+ดอยลี่
+ดอยสะเà¸à¹‡à¸”
+ดอยเต่า
+ดอลดรัมส์
+ดอลลาร์
+ดอส
+ดะ
+ดะหมัง
+ดัà¸
+ดัà¸à¸„อ
+ดัà¸à¸„ิวเมนท์
+ดัà¸à¸”น
+ดัà¸à¸”าน
+ดัà¸à¸—ริน
+ดัà¸à¸Ÿà¸±à¸‡
+ดัà¸à¸¥à¸²à¸ª
+ดัà¸à¸©à¸
+ดัà¸à¸©à¸“
+ดัà¸à¸©à¸“ี
+ดัà¸à¸©à¸±à¸™
+ดัà¸à¹à¸”้
+ดัง
+ดังนี้
+ดังรือ
+ดังฤา
+ดังฤๅ
+ดัชนี
+ดัด
+ดัดจริต
+ดัดตน
+ดัดสันดาน
+ดัดà¹à¸›à¸¥à¸‡
+ดัตช์
+ดัตซ์
+ดัน
+ดันทุรัง
+ดับ
+ดับจิต
+ดับชีพ
+ดับลม
+ดับลิน
+ดับเบิล
+ดับเบิ้ล
+ดัมพ์
+ดัสà¸à¸£
+ดัสà¸à¸£à¸µ
+ดั่ง
+ดั้ง
+ดั้งเดิม
+ดั้น
+ดา
+ดาà¸
+ดาà¸à¸²à¸£à¹Œ
+ดาด
+ดาดฟ้า
+ดาดาษ
+ดาดำ
+ดาต้า
+ดาน
+ดานซ์เซอร์
+ดาบ
+ดาบลาว
+ดาบส
+ดาม
+ดามพ
+ดามพ์
+ดามร
+ดามัสà¸à¸±à¸ª
+ดาย
+ดายน์
+ดาร
+ดารà¸
+ดารณี
+ดารดาษ
+ดารา
+ดาราบถ
+ดาราศาสตร์
+ดาร์
+ดาร์ลิง
+ดาร์เอสซาลาม
+ดาล
+ดาลัด
+ดาลุ
+ดาลุช
+ดาว
+ดาวคะนอง
+ดาวดึงษาราม
+ดาวดึงส์
+ดาวตà¸
+ดาวตลà¸
+ดาวน์
+ดาวน์โหลด
+ดาวบส
+ดาวฤà¸à¸©à¹Œ
+ดาวหาง
+ดาวเทียม
+ดาวโจนส์
+ดาษ
+ดาษดา
+ดาษดื่น
+ดาหงัน
+ดาหลัง
+ดาหา
+ดาฬ
+ดาโà¸à¸•à¸²
+ดาโà¸à¸•à¸²à¹€à¸«à¸™à¸·à¸­
+ดาโà¸à¸•à¸²à¹ƒà¸•à¹‰
+ดาโฮเม
+ดำ
+ดำà¸à¸¥
+ดำดง
+ดำดิน
+ดำนา
+ดำนาณ
+ดำนาน
+ดำนู
+ดำบล
+ดำปืน
+ดำพอง
+ดำรง
+ดำรงค์
+ดำรงรัà¸à¸©à¹Œ
+ดำรวจ
+ดำรัส
+ดำริ
+ดำรี
+ดำรู
+ดำฤษณา
+ดำหนัà¸
+ดำหนิ
+ดำหัว
+ดำอวด
+ดำเà¸à¸´à¸‡
+ดำเนิน
+ดำเนินสะดวà¸
+ดำเลิง
+ดำà¹à¸„ง
+ดำà¹à¸”ง
+ดำà¹à¸¥à¸‡
+ดำไร
+ดิà¸
+ดิà¸à¹†
+ดิง
+ดิจิตอล
+ดิจิทัล
+ดิฉัน
+ดิà¸
+ดิตถ์
+ดิถี
+ดิน
+ดินà¸à¸£à¸”
+ดินขาว
+ดินดอน
+ดินดอนสามเหลี่ยม
+ดินดาน
+ดินดำ
+ดินนวล
+ดินปืน
+ดินสอ
+ดินส้ม
+ดินหู
+ดินเนอร์
+ดินเบ
+ดินà¹à¸”ง
+ดิบ
+ดิบดี
+ดิพโพลม่า
+ดิรัจฉาน
+ดิลà¸
+ดิวิชั่น
+ดิษà¸à¹Œ
+ดิษเย็น
+ดิสà¸à¹Œ
+ดิสคอฟเวอร์
+ดิสคัส
+ดิสค์
+ดิสซ์
+ดิสนีย์
+ดิสเพลย์
+ดิสโพรเซียม
+ดิเรà¸
+ดิ่ง
+ดิ่ว
+ดิ้น
+ดิ้นรน
+ดิ้ว
+ดี
+ดี.ซี.
+ดีà¸à¸£à¸µ
+ดีงู
+ดีฉัน
+ดีซ่าน
+ดีด
+ดีดขัน
+ดีดวด
+ดีดัà¸
+ดีดีที
+ดีบัà¸
+ดีบัว
+ดีบุà¸
+ดีปลี
+ดีผา
+ดีà¸à¹ˆà¸­
+ดีพร
+ดีพาร์ทเมนท์สโตร์
+ดีฟอลต์
+ดีฟอลท์
+ดีฟิวส์
+ดีม
+ดีมอนสเตรท
+ดีมันทอยด์
+ดีมานด์
+ดียา
+ดีรัà¸à¸©à¸²
+ดีร้าย
+ดีละ
+ดีลีท
+ดีวีดี
+ดีหมี
+ดีหลี
+ดีเà¸à¸¥à¸·à¸­à¸à¸£à¸±à¹ˆà¸‡
+ดีเซมเบอร์
+ดีเซล
+ดีเทล
+ดีเปรสชัน
+ดีเปรสชั่น
+ดีเลย์
+ดีเอ็นเอ
+ดีà¹à¸•à¸
+ดีà¹à¸¥à¹‰à¸§
+ดีโมเครซี
+ดีใจ
+ดีไซน์
+ดีไซเนอร์
+ดีๆ
+ดี้
+ดึà¸
+ดึà¸à¸”ำบรรพ์
+ดึà¸à¸”ื่น
+ดึง
+ดึงดัน
+ดึงดูด
+ดึงส
+ดึงสะ
+ดึ่ง
+ดึ่ม
+ดือ
+ดื่น
+ดื่นดาษ
+ดื่ม
+ดื่มด่ำ
+ดื้อ
+ดื้อยา
+ดุ
+ดุà¸
+ดุà¸à¸”ิà¸
+ดุจ
+ดุจดัง
+ดุชชานเบ
+ดุด
+ดุดัน
+ดุน
+ดุบ
+ดุบๆ
+ดุม
+ดุรค
+ดุรงคี
+ดุรงค์
+ดุริย
+ดุริยะ
+ดุริยางคศาสตร์
+ดุริยางคศิลป์
+ดุริยางค์
+ดุร้าย
+ดุล
+ดุลà¸à¸²à¸£à¸„้า
+ดุลà¸à¸²à¸£à¸Šà¸³à¸£à¸°à¹€à¸‡à¸´à¸™
+ดุลพินิจ
+ดุลภาค
+ดุลย
+ดุลยพินิจ
+ดุลยภาพ
+ดุลอำนาจ
+ดุษฎี
+ดุษฎีนิพนธ์
+ดุษฎีบันฑิต
+ดุษณี
+ดุษิต
+ดุสิต
+ดุสิตาราม
+ดุเหว่า
+ดุ่ม
+ดุ่ย
+ดุ้ง
+ดุ้งดิ้ง
+ดุ้น
+ดู
+ดูà¸à¸£
+ดูด
+ดูดดึง
+ดูดาย
+ดูดู๋
+ดูถูà¸
+ดูพลิเคท
+ดูรา
+ดูรึ
+ดูหรู
+ดูเถอะ
+ดูเถิด
+ดูเบา
+ดูà¹à¸„ลน
+ดูà¹à¸¥
+ดูใจ
+ด็อท
+ด่วน
+ด่องๆ
+ด่อน
+ด่อม
+ด่า
+ด่าง
+ด่าทอ
+ด่าน
+ด่านขุนทด
+ด่านช้าง
+ด่านซ้าย
+ด่านสำโรง
+ด่าว
+ด่ำ
+ด้ง
+ด้น
+ด้วง
+ด้วน
+ด้วย
+ด้อง
+ด้อม
+ด้อย
+ด้าง
+ด้าน
+ด้าม
+ด้าย
+ด้าว
+ด้ำ
+ตà¸
+ตà¸à¸à¸£à¸°
+ตà¸à¸‚อบ
+ตà¸à¸‚าว
+ตà¸à¸‚ุย
+ตà¸à¸‚้าว
+ตà¸à¸„ลัà¸
+ตà¸à¸„้าง
+ตà¸à¸‡à¸²à¸™
+ตà¸à¸ˆà¸±à¹ˆà¸™
+ตà¸à¸”ิน
+ตà¸à¸•à¹ˆà¸³
+ตà¸à¸—อด
+ตà¸à¸›à¸¥à¸­à¸
+ตà¸à¸›à¸¥à¸±à¸
+ตà¸à¸œà¸¥à¸¶à¸
+ตà¸à¸Ÿà¸²à¸
+ตà¸à¸¡à¸±à¸™
+ตà¸à¸¡à¸¹à¸
+ตà¸à¸¢à¸²à¸
+ตà¸à¸¥à¸‡
+ตà¸à¸¥à¸¹à¸
+ตà¸à¸§à¹ˆà¸²
+ตà¸à¸ªà¸™à¸±à¸š
+ตà¸à¸«à¸™à¸±à¸
+ตà¸à¸«à¸¡à¸
+ตà¸à¸«à¸¥à¸¸à¸¡
+ตà¸à¸«à¸¥à¹ˆà¸™
+ตà¸à¸­à¸±à¸š
+ตà¸à¹€à¸šà¸´à¸
+ตà¸à¹€à¸šà¹‡à¸”
+ตà¸à¹à¸•à¹ˆà¸‡
+ตà¸à¹à¸ªà¸
+ตà¸à¹ƒà¸ˆ
+ตà¸à¹ƒà¸™
+ตง
+ตงฉิน
+ตงิด
+ตงุ่น
+ตจสาร
+ตจะ
+ตจะเนตร
+ตด
+ตติย
+ตถาคต
+ตน
+ตนัย
+ตนุ
+ตนเอง
+ตบ
+ตบตา
+ตบมือ
+ตบยุง
+ตบะ
+ตบเท้า
+ตบà¹à¸•à¹ˆà¸‡
+ตบà¹à¸œà¸¥à¸°
+ตปนียะ
+ตม
+ตมูà¸
+ตยาค
+ตยาคี
+ตยุติ
+ตรง
+ตรณี
+ตรม
+ตรมตรอม
+ตรมวล
+ตรรà¸
+ตรรà¸à¸§à¸´à¸—ยา
+ตรรà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+ตรรà¸à¸°
+ตรลบ
+ตรลอด
+ตรละ
+ตรลา
+ตรลาด
+ตรวจ
+ตรวจà¸à¸²à¸£à¸“์
+ตรวด
+ตรวน
+ตรวย
+ตรอà¸
+ตรอง
+ตรอน
+ตรอม
+ตรอมตรม
+ตรอมใจ
+ตระ
+ตระà¸à¸£à¸™
+ตระà¸à¸£à¹‰à¸­
+ตระà¸à¸¥
+ตระà¸à¸§à¸™
+ตระà¸à¸­à¸‡
+ตระà¸à¸±à¸”
+ตระà¸à¸²à¸£
+ตระà¸à¸²à¸£à¸žà¸·à¸Šà¸œà¸¥
+ตระà¸à¸¹à¸¥
+ตระคัร
+ตระจัà¸
+ตระชัà¸
+ตระดà¸
+ตระดาษ
+ตระนาว
+ตระบà¸
+ตระบอà¸
+ตระบอง
+ตระบะ
+ตระบัด
+ตระบัน
+ตระพอง
+ตระพัง
+ตระวัน
+ตระสัà¸
+ตระหง่าน
+ตระหนà¸
+ตระหนัà¸
+ตระหนี่
+ตระหลบ
+ตระอร
+ตระอาล
+ตระเบ็ง
+ตระเวน
+ตระà¹à¸šà¸
+ตระà¹à¸šà¸‡
+ตระà¹à¸šà¸™
+ตระà¹à¸šà¹ˆ
+ตระโบม
+ตระโมจ
+ตระโอม
+ตระไน
+ตรัง
+ตรังค
+ตรับ
+ตรัย
+ตรัยตรึงส์
+ตรัส
+ตรัสรู้
+ตรัสสา
+ตรา
+ตราà¸à¸•à¸£à¸³
+ตราจอง
+ตราชู
+ตราด
+ตราบ
+ตราบาป
+ตรายาง
+ตราสัง
+ตราสาร
+ตราสิน
+ตราà¹à¸”ง
+ตรำ
+ตริ
+ตริตรอง
+ตรินิà¹à¸”ด
+ตริว
+ตริสตานดาคุนยา
+ตริโà¸à¸“มิติ
+ตริโปลี
+ตรี
+ตรีà¸à¸²à¸¥
+ตรีà¸à¸¹à¸
+ตรีคูณ
+ตรีชาต
+ตรีทศ
+ตรีทิพ
+ตรีทูต
+ตรีบถ
+ตรีบูร
+ตรีปวาย
+ตรีปิฎà¸
+ตรีผลา
+ตรีภพ
+ตรีภูว
+ตรีมิตร
+ตรียมà¸
+ตรียัมปวาย
+ตรีศà¸
+ตรีศูล
+ตรีสมอ
+ตรีสาร
+ตรีเนตร
+ตรีเพชร
+ตรีโà¸à¸“
+ตรีโà¸à¸“มิติ
+ตรีโทษ
+ตรีโลà¸
+ตรึà¸
+ตรึง
+ตรึงตรา
+ตรึงศ
+ตรุ
+ตรุณ
+ตรุย
+ตรุษ
+ตรุษจ
+ตรู
+ตรู่
+ตรเลิด
+ตร่ำ
+ตฤณ
+ตฤณชาติ
+ตฤณมัย
+ตฤตีย
+ตฤท
+ตฤป
+ตฤษณา
+ตฤา
+ตฤๅ
+ตล
+ตลà¸
+ตลบ
+ตลบตะà¹à¸¥à¸‡
+ตลบนà¸
+ตลบà¹à¸•à¸¥à¸‡
+ตลอด
+ตละ
+ตละà¹à¸¡à¹ˆ
+ตลับ
+ตลาด
+ตลาดพลู
+ตลาดสด
+ตลาดหลัà¸à¸—รัพย์
+ตลิ่ง
+ตลิ่งชัน
+ตลึง
+ตวง
+ตวัà¸
+ตวัด
+ตวาด
+ตอ
+ตอà¸
+ตอà¸à¸¢à¹‰à¸³
+ตอง
+ตองà¸à¸²
+ตองตอย
+ตองà¹à¸•à¸
+ตอด
+ตอดต่อ
+ตอน
+ตอบ
+ตอบà¹à¸—น
+ตอบโต้
+ตอม
+ตอม่อ
+ตอร์ปิโด
+ตอเบา
+ตอà¹à¸¢
+ตอà¹à¸«à¸¥
+ตะ
+ตะà¸à¸‡
+ตะà¸à¸£à¸™
+ตะà¸à¸£à¸§à¸¢
+ตะà¸à¸£à¸±à¸™
+ตะà¸à¸£à¸±à¸š
+ตะà¸à¸£à¸²à¸¡
+ตะà¸à¸£à¸¸à¸”
+ตะà¸à¸£à¸¸à¸¡
+ตะà¸à¸£à¹‰à¸­
+ตะà¸à¸£à¹‰à¸²
+ตะà¸à¸¥à¸°
+ตะà¸à¸¥à¸²à¸¡
+ตะà¸à¸¥à¹ˆà¸³
+ตะà¸à¸§à¸”
+ตะà¸à¸­
+ตะà¸à¸­à¸™
+ตะà¸à¸±à¸‡
+ตะà¸à¸±à¹ˆà¸§
+ตะà¸à¸±à¹ˆà¸§à¸—ุ่ง
+ตะà¸à¸±à¹ˆà¸§à¸›à¹ˆà¸²
+ตะà¸à¸±à¹ˆà¸§à¹à¸”ง
+ตะà¸à¸²à¸‡
+ตะà¸à¸²à¸”
+ตะà¸à¸²à¸¢
+ตะà¸à¸²à¸§
+ตะà¸à¸µà¹‰
+ตะà¸à¸¸à¸à¸•à¸°à¸à¸±à¸
+ตะà¸à¸¸à¸¢
+ตะà¸à¸¹
+ตะà¸à¸¹à¸”
+ตะขบ
+ตะขอ
+ตะขาบ
+ตะขิดตะขวง
+ตะครอง
+ตะคริว
+ตะครุบ
+ตะคร้อ
+ตะคร้ำ
+ตะคอà¸
+ตะคัน
+ตะคาà¸
+ตะคาง
+ตะคุ่ม
+ตะค้า
+ตะค้าน
+ตะติน
+ตะนอย
+ตะนาว
+ตะบม
+ตะบอง
+ตะบอย
+ตะบัน
+ตะบิด
+ตะบิ้ง
+ตะบึง
+ตะบุ้ย
+ตะบูน
+ตะปบ
+ตะปลิง
+ตะปิ้ง
+ตะปุ่มตะป่ำ
+ตะปู
+ตะพง
+ตะพด
+ตะพอง
+ตะพัà¸
+ตะพัง
+ตะพัด
+ตะพั้น
+ตะพาà¸
+ตะพาน
+ตะพานหิน
+ตะพาบ
+ตะพาบน้ำ
+ตะพาย
+ตะพึด
+ตะพึดตะพือ
+ตะพุ่น
+ตะมอย
+ตะม่อ
+ตะรัง
+ตะราง
+ตะลอง
+ตะลอน
+ตะละ
+ตะลาน
+ตะลิบ
+ตะลีตะลาน
+ตะลีตาเหลือà¸
+ตะลึง
+ตะลุง
+ตะลุม
+ตะลุมบอน
+ตะลุมพุà¸
+ตะลุย
+ตะลุ่ม
+ตะล่อม
+ตะวัน
+ตะวันออà¸à¸à¸¥à¸²à¸‡
+ตะวันออà¸à¹ƒà¸à¸¥à¹‰
+ตะวันออà¸à¹„à¸à¸¥
+ตะวาง
+ตะหงิด
+ตะหลิว
+ตะหลุà¸
+ตะหลุง
+ตะเà¸à¸µà¸¢à¸à¸•à¸°à¸à¸²à¸¢
+ตะเà¸à¸µà¸¢à¸‡
+ตะเà¸à¸µà¸¢à¸š
+ตะเขิง
+ตะเข็บ
+ตะเข้
+ตะเคียน
+ตะเคียว
+ตะเฆ่
+ตะเบ็ง
+ตะเบ๊ะ
+ตะเพรา
+ตะเพิง
+ตะเพิด
+ตะเพิ่น
+ตะเพียน
+ตะเภา
+ตะเลง
+ตะเวน
+ตะà¹à¸
+ตะà¹à¸à¸£à¸‡
+ตะà¹à¸„ง
+ตะà¹à¸‡à¹‰
+ตะà¹à¸šà¸
+ตะà¹à¸šà¸‡
+ตะโà¸
+ตะโà¸à¸
+ตะโà¸à¸”ำ
+ตะโà¸à¸™
+ตะโà¸à¸£à¸‡
+ตะโà¸à¸£à¸¡
+ตะโà¸à¹‰
+ตะโขง
+ตะโบม
+ตะโพà¸
+ตะโพง
+ตะโพน
+ตะโหงà¸
+ตะใภ้
+ตะไà¸à¸£
+ตะไคร่
+ตะไคร้
+ตะไบ
+ตะไล
+ตัà¸
+ตัà¸à¸à¸°
+ตัà¸à¸•à¸§à¸‡
+ตัà¸à¸šà¸²à¸•à¸£
+ตัà¸à¸©à¸“
+ตัà¸à¸©à¸“ี
+ตัà¸à¸©à¸±à¸¢
+ตัง
+ตังค์
+ตังฉ่าย
+ตังติด
+ตังวาย
+ตังสิว
+ตังเà¸
+ตังเม
+ตังโอ๋
+ตัจฉà¸
+ตัจฉนี
+ตัณฑุล
+ตัณหา
+ตัด
+ตัดขาด
+ตัดตอน
+ตัดถนน
+ตัดทาง
+ตัดบท
+ตัดผม
+ตัดพ้อ
+ตัดรอน
+ตัดสิน
+ตัดใจ
+ตัดไพ่
+ตัตว
+ตัถย์
+ตัน
+ตันตระ
+ตันติ
+ตันหยง
+ตับ
+ตัว
+ตัวà¸à¸¥à¸²à¸‡
+ตัวà¸à¸²à¸£
+ตัวดี
+ตัวตืด
+ตัวนาง
+ตัวนำ
+ตัวประà¸à¸­à¸š
+ตัวผู้
+ตัวพระ
+ตัวยง
+ตัวยืน
+ตัวลีน
+ตัวอย่าง
+ตัวเลข
+ตัวเอà¸
+ตัวà¹à¸—น
+ตัวà¹à¸›à¸£
+ตัวไม้
+ตั่ง
+ตั้ง
+ตั้งฉ่าย
+ตั้งอิ้ว
+ตั้งà¹à¸•à¹ˆ
+ตั้งใจ
+ตั้วเฮีย
+ตั้วโผ
+ตั๊à¸à¹à¸•à¸™
+ตั๋ว
+ตา
+ตาà¸
+ตาà¸à¸•à¸™
+ตาà¸à¸š
+ตาà¸à¸Ÿà¹‰à¸²
+ตาà¸à¸¥à¸¡
+ตาà¸à¸¥à¸±à¸š
+ตาà¸à¸¥à¸´à¹‰à¸‡
+ตาà¸à¸¥à¹‰à¸²
+ตาà¸à¸§à¸²à¸‡
+ตาà¸à¸ªà¸´à¸™
+ตาà¸à¸¸à¹‰à¸‡
+ตาà¸à¹ƒà¸š
+ตาขวาง
+ตาขอ
+ตาขาว
+ตาข่าย
+ตาคม
+ตาคลี
+ตาค้าง
+ตาง
+ตางัว
+ตาชั่ง
+ตาช้าง
+ตาด
+ตาตั้ง
+ตาตี่
+ตาตุ่ม
+ตาถั่ว
+ตาทวด
+ตาทัพ
+ตาน
+ตานหà¸
+ตานี
+ตาน้ำ
+ตาบ
+ตาบทับ
+ตาบทิศ
+ตาบอด
+ตาปลา
+ตาปี
+ตาปู
+ตาà¸à¸±à¹ˆà¸‡
+ตาà¸à¸²à¸”
+ตาพระยา
+ตาพร่า
+ตาพอง
+ตาม
+ตามที
+ตามพ
+ตามพะ
+ตามะà¹à¸™
+ตามิน
+ตามใจ
+ตาย
+ตายขาน
+ตายขุย
+ตายซาà¸
+ตายตัว
+ตายà¸à¸­à¸¢
+ตายราบ
+ตายลาภ
+ตายห่า
+ตายโคม
+ตายโหง
+ตายใจ
+ตาราง
+ตาราวา
+ตาราไต
+ตาริ้ว
+ตาร้าย
+ตาร์ท
+ตาล
+ตาลปัตร
+ตาลม
+ตาลอ
+ตาลอย
+ตาลาน
+ตาลาย
+ตาลีตาลาน
+ตาลีตาเหลือà¸
+ตาลุ
+ตาลุà¸
+ตาลุช
+ตาว
+ตาส่อน
+ตาหนา
+ตาหนู
+ตาหยี
+ตาหวาน
+ตาฬ
+ตาอ้อย
+ตาฮิตี
+ตาเข
+ตาเต็ง
+ตาเรือ
+ตาเสือ
+ตาเหลว
+ตาเหลือà¸
+ตาเหล่
+ตาเอà¸
+ตาà¹à¸‚็ง
+ตาà¹à¸”ง
+ตาโà¸à¹‰à¸‡
+ตาโต
+ตาโป่ง
+ตาไà¸à¹ˆ
+ตำ
+ตำตา
+ตำนาน
+ตำบล
+ตำรวจ
+ตำรวจนครบาล
+ตำรับ
+ตำรา
+ตำรุ
+ตำลึง
+ตำส้ม
+ตำหนัà¸
+ตำหนัà¸à¹ƒà¸•à¹‰
+ตำหนิ
+ตำหระ
+ตำหรับ
+ตำเนิน
+ตำเสา
+ตำà¹à¸š
+ตำà¹à¸¢
+ตำà¹à¸¢à¹
+ตำà¹à¸«à¸™à¹ˆà¸‡
+ตำà¹à¸«à¸™à¹ˆà¸‡à¸—ี่ตั้ง
+ติ
+ติà¸
+ติà¸à¸²à¸«à¸£à¸±à¸‡
+ติà¸à¸²à¸«à¸¥à¸±à¸‡
+ติง
+ติงส
+ติฉิน
+ติณ
+ติด
+ติดขัด
+ติดตลà¸
+ติดตัว
+ติดตา
+ติดตาม
+ติดต่อ
+ติดบวà¸
+ติดปาà¸
+ติดพัน
+ติดมือ
+ติดลบ
+ติดลม
+ติดสัด
+ติดใจ
+ติดไฟ
+ติดๆ
+ติตติà¸
+ติตติร
+ติตถ
+ติตรอง
+ติถี
+ตินอส
+ติปา
+ติปาถะ
+ติมอร์
+ติมิ
+ติรัจฉาน
+ติรานา
+ติร์เรเนียน
+ติล
+ติลà¸
+ติลอส
+ติว
+ติวานนท์
+ติวเตอร์
+ติเนียน
+ติ่ง
+ติ่งหู
+ติ้ง
+ติ้ว
+ติ๊à¸
+ติ๋ง
+ตี
+ตีà¸à¸²à¸
+ตีà¸à¸´à¸™
+ตีขนาบ
+ตีขลุม
+ตีความ
+ตีคอ
+ตีคู่
+ตีจาà¸
+ตีชิง
+ตีตรวน
+ตีตั๋ว
+ตีตื้น
+ตีต่าง
+ตีทอง
+ตีน
+ตีนà¸à¸²
+ตีนคู้
+ตีนจà¸
+ตีนจ้ำ
+ตีนนà¸
+ตีนผี
+ตีนà¹à¸£à¸”
+ตีบ
+ตีปีà¸
+ตีผี
+ตีผึ้ง
+ตีมอง
+ตีรถะ
+ตีระ
+ตีรั้ง
+ตีวง
+ตีสนิท
+ตีหน้า
+ตีห่าง
+ตีอวน
+ตีเสมอ
+ตีเส้น
+ตีà¹à¸•à¸°
+ตีà¹à¸›à¸¥à¸‡
+ตีà¹à¸œà¹ˆ
+ตีโต้
+ตีไà¸à¹ˆ
+ตี่
+ตี่ใบ้
+ตี๋
+ตึ
+ตึà¸
+ตึà¸à¸£à¸°à¸Ÿà¹‰à¸²
+ตึà¸à¹à¸–ว
+ตึà¸à¹†
+ตึง
+ตึงตัง
+ตึงตัว
+ตึงเครียด
+ตึดตื๋อ
+ตึตัง
+ตึ้à¸
+ตึ้à¸à¸•à¸±à¹‰à¸
+ตึ้ง
+ตึ๊à¸
+ตึ๊ดตื๋อ
+ตืด
+ตือ
+ตือฮวน
+ตื่น
+ตื้น
+ตื้อ
+ตื๊อ
+ตื๋อ
+ตุ
+ตุà¸à¸•à¸´à¸
+ตุง
+ตุงไฮ
+ตุตัง
+ตุน
+ตุนาหงัน
+ตุบ
+ตุบๆ
+ตุปัดตุป่อง
+ตุมà¸à¸²
+ตุมตัง
+ตุมพ
+ตุรà¸à¸µ
+ตุรค
+ตุรงค
+ตุลสิ
+ตุลา
+ตุลาà¸à¸²à¸£
+ตุลาคม
+ตุหรัดตุเหร่
+ตุ่น
+ตุ่ม
+ตุ่ย
+ตุ่ยๆ
+ตุ้ง
+ตุ้งà¸à¹ˆà¸²
+ตุ้งติ้ง
+ตุ้บ
+ตุ้บตั้บ
+ตุ้ม
+ตุ้มหู
+ตุ้ย
+ตุ้ยนุ้ย
+ตุ๊
+ตุ๊à¸
+ตุ๊à¸à¸•à¸²
+ตุ๊à¸à¸•à¸¸à¹ˆà¸™
+ตุ๊à¸à¸•à¸¸à¹‹à¸¢
+ตุ๊à¸à¹à¸
+ตุ๊ด
+ตุ๊ดตู่
+ตุ๊ต๊ะ
+ตุ๊บป่อง
+ตุ๊ย
+ตุ๋น
+ตุ๋ม
+ตุ๋ยตุ่ย
+ตู
+ตูà¸
+ตูข้า
+ตูด
+ตูดงอน
+ตูนิส
+ตูนิเซีย
+ตูบ
+ตูม
+ตูมตาม
+ตูหนา
+ตูอาโมตู
+ตู่
+ตู่ตัว
+ตู้
+ตู้จดหมาย
+ตโมนุท
+ตโมหร
+ตโมฬาร
+ต่วน
+ต่อ
+ต่อà¸à¸£
+ต่อง
+ต่องà¹à¸•à¹ˆà¸‡
+ต่อตา
+ต่อตาม
+ต่อตี
+ต่อม
+ต่อย
+ต่อว่า
+ต่อสู้
+ต่อไส้
+ต่าง
+ต่างด้าว
+ต่างๆ
+ต่าน
+ต่ำ
+ต่ำช้า
+ต่ำตน
+ต่ำต้อย
+ต่ำใจ
+ต้น
+ต้นà¸à¸¥
+ต้นคอ
+ต้นคิด
+ต้นฉบับ
+ต้นตอ
+ต้นตาล
+ต้นทาง
+ต้นทุน
+ต้นน้ำ
+ต้นบท
+ต้นมะขาม
+ต้นมือ
+ต้นสน
+ต้นหน
+ต้นà¹à¸—น
+ต้นà¹à¸šà¸š
+ต้นไทร
+ต้นไม้
+ต้ม
+ต้มข่า
+ต้มยำ
+ต้มสุà¸
+ต้มส้ม
+ต้วม
+ต้วมเตี้ยม
+ต้อ
+ต้อà¸à¸£à¸°à¸ˆà¸
+ต้อง
+ต้องà¸à¸²à¸£
+ต้องตา
+ต้องหา
+ต้องเต
+ต้องใจ
+ต้อน
+ต้อนรับ
+ต้อย
+ต้อยติ่ง
+ต้อยตีวิด
+ต้อลำไย
+ต้อลิ้นหมา
+ต้อหิน
+ต้อเนื้อ
+ต้าน
+ต้านทาน
+ต้าย
+ต้ำปุà¸
+ต้ำผาง
+ต๊à¸à¹‚ต
+ต๊อà¸
+ต๊อà¸à¸•à¹‹à¸­à¸¢
+ต๋ง
+ต๋อม
+ต๋อมà¹à¸•à¹‹à¸¡
+ถà¸
+ถà¸à¸¥
+ถà¸à¹€à¸‚มร
+ถงัน
+ถงาด
+ถด
+ถดถอย
+ถนน
+ถนอม
+ถนอมมิตร
+ถนัด
+ถนัดถนี่
+ถนัดใจ
+ถนัน
+ถนำ
+ถนำทึà¸
+ถนิม
+ถบดี
+ถม
+ถมถืด
+ถมทอง
+ถมปัด
+ถมอ
+ถมึง
+ถมึงทึง
+ถมเงิน
+ถมเถ
+ถมไป
+ถล
+ถลà¸
+ถลน
+ถลม
+ถลอà¸
+ถลัน
+ถลา
+ถลาà¸
+ถลาง
+ถลาย
+ถลำ
+ถลำตัว
+ถลำใจ
+ถลีถลำ
+ถลึง
+ถลึงตา
+ถลุง
+ถลุน
+ถล่ม
+ถวัด
+ถวัล
+ถวัลย์
+ถวัลย์ศัà¸à¸”ิ์
+ถวาย
+ถวายà¸à¸£
+ถวิน
+ถวิล
+ถวิลหา
+ถอà¸
+ถอง
+ถอด
+ถอดถอน
+ถอดรหัส
+ถอดรูป
+ถอดสี
+ถอดไพ่
+ถอน
+ถอนทุน
+ถอนพิษ
+ถอนยวง
+ถอนสมอ
+ถอบ
+ถอบà¹à¸–บ
+ถอย
+ถอยฉะ
+ถอยฉาà¸
+ถอยถด
+ถอยทด
+ถอยทัพ
+ถะ
+ถะà¸à¸±à¸”
+ถะถับ
+ถะถั่น
+ถะเà¸à¸´à¸™
+ถะโà¸à¸™
+ถัà¸
+ถัง
+ถังซำจั๋ง
+ถัณฑิล
+ถัด
+ถัทธ
+ถัน
+ถับ
+ถัมถ์
+ถัมภ์
+ถัว
+ถั่ง
+ถั่น
+ถั่นๆ
+ถั่ว
+ถั่วข
+ถั่วงอà¸
+ถั่วดำ
+ถั่วนา
+ถั่วà¸à¸±à¸à¸¢à¸²à¸§
+ถั่วพู
+ถั่วเพาะ
+ถา
+ถาà¸
+ถาà¸à¸–าง
+ถาง
+ถาด
+ถาน
+ถาบ
+ถาม
+ถามติง
+ถามะ
+ถามไถ่
+ถาวร
+ถาวรธวัช
+ถาวรวัตถุ
+ถาโถม
+ถิร
+ถิ่น
+ถิ่นà¸à¸²à¸™
+ถีน
+ถีบ
+ถีบฉัด
+ถีบตัว
+ถีบทาง
+ถีบรถ
+ถี่
+ถี่ถ้วน
+ถี่ยิบ
+ถึà¸
+ถึง
+ถึงà¸à¸±à¸™
+ถึงฆาต
+ถึงที่
+ถึงผ้า
+ถึงว่า
+ถึงà¹à¸à¹ˆ
+ถึงใจ
+ถือ
+ถือดี
+ถือตัว
+ถือบวช
+ถือปูน
+ถือผิว
+ถือพล
+ถือยศ
+ถือว่า
+ถือศีล
+ถือสา
+ถือหาง
+ถือใจ
+ถุง
+ถุงมือ
+ถุงเท้า
+ถุน
+ถุย
+ถุล
+ถู
+ถูà¸
+ถูà¸à¸à¸±à¸™
+ถูà¸à¸‚า
+ถูà¸à¸„อ
+ถูà¸à¸„ู่
+ถูà¸à¸•à¸²
+ถูà¸à¸›à¸²à¸
+ถูà¸à¹ƒà¸ˆ
+ถูป
+ถูล
+ถูไถ
+ถ่ม
+ถ่วง
+ถ่อ
+ถ่อง
+ถ่องà¹à¸—้
+ถ่อม
+ถ่อย
+ถ่าง
+ถ่างตา
+ถ่าน
+ถ่านหิน
+ถ่านโค้à¸
+ถ่าย
+ถ่ายทอด
+ถ่ายยา
+ถ่ายเท
+ถ่าว
+ถ้วน
+ถ้วย
+ถ้อ
+ถ้อง
+ถ้อถอย
+ถ้อย
+ถ้อยคำ
+ถ้อยà¹à¸–ลง
+ถ้า
+ถ้าว่า
+ถ้ำ
+ถ้ำชา
+ถ้ำมอง
+ทà¸
+ทà¸à¸¥à¹‰à¸²
+ทงัน
+ทชี
+ทà¸à¸´à¸à¸°
+ทด
+ทดถอย
+ทดรอง
+ทดลอง
+ทดสอบ
+ทดเลข
+ทดà¹à¸—น
+ทธิ
+ทน
+ทนดี
+ทนตà¸à¸²à¸©
+ทนต์
+ทนทาน
+ทนาย
+ทนายความ
+ทนโท่
+ทบ
+ทบทวน
+ทบวง
+ทม
+ทมิฬ
+ทยอย
+ทยา
+ทยาลุ
+ทยาลุà¸
+ทร
+ทรà¸à¸£à¸£à¸¡
+ทรง
+ทรงà¸à¸¥à¸”
+ทรงตัà¸
+ทรงตัว
+ทรงธรรม
+ทรงมัน
+ทรงวาด
+ทรงสะอาดนิเวศน์
+ทรชน
+ทรชาติ
+ทรทึง
+ทรธึà¸
+ทรพล
+ทรพิษ
+ทรพี
+ทรมาน
+ทรมุà¸
+ทรยศ
+ทรยุค
+ทรรทึง
+ทรรป
+ทรรปณ์
+ทรรศนะ
+ทรรศนาà¸à¸²à¸£
+ทรราช
+ทรลัà¸à¸©à¸“์
+ทรวง
+ทรวงอà¸
+ทรวด
+ทรวดทรง
+ทรวาร
+ทรสาย
+ทรสุม
+ทรหด
+ทรหน
+ทรหวล
+ทรหึง
+ทรหู
+ทรอ
+ทรอมโบน
+ทรอึง
+ทรอุ้ม
+ทระนง
+ทระนาว
+ทรัพย
+ทรัพยาà¸à¸£
+ทรัพยาà¸à¸£à¸˜à¸£à¸“ี
+ทรัพยาà¸à¸£à¸˜à¸£à¸£à¸¡à¸Šà¸²à¸•à¸´
+ทรัพย์
+ทรัพย์สิน
+ทรัมเปต
+ทรัมเป็ต
+ทรัสต์
+ทรานซิสเตอร์
+ทรานสปอร์ต
+ทรานสฟอร์เมอร์
+ทรานสเฟอร์
+ทรานสเลต
+ทราบ
+ทราม
+ทรามชม
+ทรามวัย
+ทราย
+ทรายมูล
+ทริค
+ทริทร
+ทรีทเมนท์
+ทรุด
+ทรุม
+ทรู่
+ทรเหล
+ทฤฆ
+ทฤษฎี
+ทฤษฎีบท
+ทล
+ทลาย
+ทวง
+ทวงถาม
+ทวด
+ทวน
+ทวนทบ
+ทวนสบถ
+ทวย
+ทวยะ
+ทวยโถง
+ทวอย
+ทวัย
+ทวา
+ทวาทศ
+ทวาทศม
+ทวาทศี
+ทวาบร
+ทวาย
+ทวาร
+ทวารบถ
+ทวาเรศ
+ทวิ
+ทวิช
+ทวิชาติ
+ทวิตีย
+ทวิบถ
+ทวิบท
+ทวิบาท
+ทวิป
+ทวิภาค
+ทวิภาคี
+ทวิร
+ทวี
+ทวีคูณ
+ทวีธาภิเษà¸
+ทวีป
+ทวีปี
+ทวีมิตร
+ทวีสิทธิ์
+ทวีเชิดชู
+ทว่า
+ทศ
+ทศชาติ
+ทศทิศ
+ทศนิยม
+ทศพร
+ทศพล
+ทศมาส
+ทศมี
+ทศวรรษ
+ทศางค์
+ทสา
+ทหาร
+ทหารผ่านศึà¸
+ทหารไทย
+ทอ
+ทอà¸
+ทอง
+ทองà¸à¸£
+ทองà¸à¸§à¸²à¸§
+ทองขาว
+ทองคำ
+ทองคำขาว
+ทองชุบ
+ทองดำ
+ทองทศ
+ทองทึบ
+ทองนพคุณ
+ทองนาปรัง
+ทองบน
+ทองบรอนซ์
+ทองผาภูมิ
+ทองพลุ
+ทองพิศ
+ทองภู
+ทองลิน
+ทองศาลางาม
+ทองสุทธาราม
+ทองหลาง
+ทองหล่อ
+ทองอุไร
+ทองเà¸à¸©à¸£
+ทองเค
+ทองเพลง
+ทองเสน
+ทองเอà¸
+ทองà¹à¸”ง
+ทองà¹à¸›
+ทองใน
+ทองใบ
+ทอด
+ทอดตัว
+ทอดตา
+ทอดที่
+ทอดน้ำ
+ทอดมัน
+ทอดยอด
+ทอดรวง
+ทอดสà¸à¸²
+ทอดสมอ
+ทอดà¹à¸«
+ทอน
+ทอนซิล
+ทอฟฟี่
+ทอม
+ทอมซอไนต์
+ทอย
+ทอยà¸à¸­à¸‡
+ทอร์นาโด
+ทอร์เบอร์ไนต์
+ทอล์ค
+ทอหูà¸
+ทอเรียม
+ทอเรียไนต์
+ทอà¹à¸ªà¸‡
+ทอไรต์
+ทะ
+ทะงัน
+ทะทัด
+ทะทา
+ทะทาย
+ทะทึà¸
+ทะท่าว
+ทะท้าว
+ทะนง
+ทะนงศัà¸à¸”ิ์
+ทะนน
+ทะนะ
+ทะนาน
+ทะนุ
+ทะนุà¸
+ทะนุถนอม
+ทะนุบำรุง
+ทะบู
+ทะมัดทะà¹à¸¡à¸‡
+ทะมึน
+ทะมื่น
+ทะยาน
+ทะลวง
+ทะลอà¸
+ทะลัà¸
+ทะลาย
+ทะลิ่น
+ทะลึ่ง
+ทะลุ
+ทะวาย
+ทะเบียน
+ทะเยอทะยาน
+ทะเล
+ทะเลขาว
+ทะเลจีน
+ทะเลจีนใต้
+ทะเลà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™
+ทะเลดำ
+ทะเลภายใน
+ทะเลสาบ
+ทะเลหลวง
+ทะเลอาณาเขต
+ทะเลาะ
+ทะเลเหนือ
+ทะเลเหลือง
+ทะเลà¹à¸”ง
+ทะเลใน
+ทะเลไหล่ทวีป
+ทะเล่อทะล่า
+ทะเล้น
+ทะเวน
+ทะà¹à¸¡à¹ˆà¸‡
+ทะà¹à¸¡à¹ˆà¸‡à¹†
+ทะà¹à¸¢
+ทัà¸
+ทัà¸à¸‚ิà¸
+ทัà¸à¸‚ิณ
+ทัà¸à¸‚ิณา
+ทัà¸à¸‚ิณาวัà¸
+ทัà¸à¸‚ิโณทà¸
+ทัà¸à¸‚ิไณยบุคคล
+ทัà¸à¸‚์
+ทัà¸à¸‹à¸´à¹‚ด
+ทัà¸à¸—าย
+ทัà¸à¸—ิน
+ทัà¸à¸—้วง
+ทัà¸à¸©
+ทัà¸à¸©à¸°
+ทัà¸à¸©à¸²
+ทัà¸à¸©à¸´à¸“
+ทัà¸à¸©à¸´à¸“า
+ทัà¸à¸©à¸´à¸“าวรรต
+ทัà¸à¸©à¸´à¹‚ณทà¸
+ทัคธ์
+ทัง
+ทังวล
+ทังสเตน
+ทัช
+ทัณฑ
+ทัณฑà¸à¸£à¸£à¸¡
+ทัณฑฆาต
+ทัณฑนิคม
+ทัณฑวิทยา
+ทัณฑสถาน
+ทัณฑะ
+ทัณฑ์
+ทัณฑ์บน
+ทัด
+ทัดทา
+ทัดทาน
+ทัดเทียม
+ทัต
+ทัน
+ทันà¸à¸´à¸™
+ทันต
+ทันตชะ
+ทันตา
+ทันติน
+ทันตà¹à¸žà¸—ย์
+ทันต์
+ทันที
+ทันธ์
+ทันน้ำ
+ทันใจ
+ทันใด
+ทับ
+ทับถม
+ทับทรวง
+ทับทอง
+ทับทาง
+ทับทิม
+ทับที่
+ทับปุด
+ทับสมิงคลา
+ทับสะà¹à¸
+ทับเจริà¸
+ทับà¹à¸à¹‰à¸§
+ทับà¹à¸ž
+ทัป
+ทัปน
+ทัพ
+ทัพทัน
+ทัพพะ
+ทัพพี
+ทัลà¸à¹Œ
+ทัวร์
+ทัวร์มาลีน
+ทัศ
+ทัศน
+ทัศนคติ
+ทัศนวิสัย
+ทัศนศาสตร์
+ทัศนศึà¸à¸©à¸²
+ทัศนะ
+ทัศนา
+ทัศนาà¸à¸²à¸£
+ทัศนาจร
+ทัศนีย
+ทัศนียภาพ
+ทัศนีย์
+ทัศนูปà¸à¸£à¸“์
+ทัศน์
+ทัศไนย
+ทัฬห
+ทั่ง
+ทั่ว
+ทั่วไป
+ทั้ง
+ทั้งคน
+ทั้งที
+ทั้งนี้
+ทั้งหมด
+ทั้งเพ
+ทา
+ทาà¸
+ทาง
+ทางà¸à¸²à¸£
+ทางด่วน
+ทางม้าลาย
+ทางรถไฟเà¸à¹ˆà¸²
+ทางหลวง
+ทางออà¸
+ทางเท้า
+ทางเอà¸
+ทางโท
+ทางใน
+ทาจิà¸à¸µà¸ªà¸–าน
+ทาซอส
+ทาà¸à¸°
+ทาà¸à¸´à¸à¸°
+ทาฒะ
+ทาฒิà¸à¸°
+ทาน
+ทานตะวัน
+ทานต์
+ทานบดี
+ทานบน
+ทานบารมี
+ทานพ
+ทานมัย
+ทานศีล
+ทานสัมฤทธิ์พัฒนา
+ทานาธิบดี
+ทานานารีฟ
+ทาบ
+ทาบทาม
+ทาม
+ทาย
+ทายà¸
+ทายัช
+ทายา
+ทายาด
+ทายาท
+ทายิà¸à¸²
+ทาร
+ทารà¸
+ทารพี
+ทาริà¸à¸²
+ทารุ
+ทารุณ
+ทาร์ซาน
+ทาร์เà¸à¸—
+ทาลลิน
+ทาว
+ทาวน์
+ทาวเวอร์
+ทาษ
+ทาส
+ทาสทาน
+ทาสปัà¸à¸à¸²
+ทาสี
+ทำ
+ทำà¸à¸£à¸£à¸¡
+ทำà¸à¸²à¸£
+ทำขวัà¸
+ทำครัว
+ทำคลอด
+ทำความ
+ทำคุณ
+ทำงน
+ทำงาน
+ทำตัว
+ทำตา
+ทำท่า
+ทำนบ
+ทำนวย
+ทำนอง
+ทำนาย
+ทำนุ
+ทำนูล
+ทำบาป
+ทำบุà¸
+ทำพิษ
+ทำฟัน
+ทำมัง
+ทำร้าย
+ทำลาย
+ทำลิง
+ทำวน
+ทำวัตร
+ทำสาว
+ทำหมัน
+ทำเจ็บ
+ทำเนา
+ทำเนียบ
+ทำเนียม
+ทำเล
+ทำเวร
+ทำเวลา
+ทำเหตุ
+ทำเอา
+ทำà¹à¸—้ง
+ทำโทษ
+ทำใจ
+ทำให้
+ทำได้
+ทำไพ่
+ทำไฟ
+ทำไม
+ทิคัมพร
+ทิฆัมพร
+ทิงเจอร์
+ทิช
+ทิชชู
+ทิชาà¸à¸£
+ทิà¸à¸à¸°
+ทิà¸à¸à¸´
+ทิà¸
+ทิà¸à¸˜à¸£à¸£à¸¡
+ทิà¸à¸´
+ทิด
+ทิดอร์
+ทิต
+ทิน
+ทินà¸à¸£
+ทินาท
+ทิป
+ทิพ
+ทิพย
+ทิพยจัà¸à¸©à¸¸
+ทิพยà¸à¸²à¸“
+ทิพยรส
+ทิพยเนตร
+ทิพย์
+ทิพวัลย์
+ทิพา
+ทิพาà¸à¸£
+ทิพโสต
+ทิม
+ทิมดาบ
+ทิมทอง
+ทิมฟู
+ทิมà¹à¸¥à¸™à¸”์
+ทิว
+ทิวà¸à¸²à¸¥
+ทิวงคต
+ทิวทัศน์
+ทิวส
+ทิวา
+ทิวาà¸à¸£
+ทิวาทิพย์
+ทิศ
+ทิศทาง
+ทิศา
+ทิศาดร
+ทิศานุทิศ
+ทิเบต
+ทิ่ม
+ทิ่มตำ
+ทิ้ง
+ที
+ทีฆ
+ทีฆชาติ
+ทีฆายุ
+ทีท่า
+ทีนี้
+ทีนเอจ
+ทีป
+ทีม
+ทีรฆ
+ทีวี
+ทีหลัง
+ทีเด็ด
+ทีเอนที
+ที่
+ที่ดิน
+ที่ทาง
+ที่ทำà¸à¸²à¸£
+ที่นอน
+ที่พัà¸
+ที่มา
+ที่รัà¸
+ที่ราบ
+ที่ราบสูง
+ที่สุด
+ที่à¹à¸—้
+ที่ไหน
+ทึà¸
+ทึà¸à¸—ัà¸
+ทึดทือ
+ทึนทึà¸
+ทึบ
+ทึม
+ทึ่ง
+ทึ่ม
+ทึ้ง
+ทื่อ
+ทุ
+ทุà¸
+ทุà¸à¸‚
+ทุà¸à¸‚นิโรธ
+ทุà¸à¸‚ลาภ
+ทุà¸à¸‚สมุทัย
+ทุà¸à¸‚ารมณ์
+ทุà¸à¸‚เวทนา
+ทุà¸à¸‚์
+ทุà¸à¸Ž
+ทุà¸à¸—ี
+ทุà¸à¸™à¸´à¸šà¸²à¸•
+ทุà¸à¸žà¸²à¸¢
+ทุà¸à¸£
+ทุà¸à¸£à¸à¸´à¸£à¸´à¸¢à¸²
+ทุà¸à¸©à¸”ร
+ทุà¸à¸«à¸™
+ทุà¸à¸±à¸‡
+ทุà¸à¸¹à¸¥
+ทุคตะ
+ทุคติ
+ทุงเทง
+ทุจริต
+ทุด
+ทุติย
+ทุทรรศนนิยม
+ทุน
+ทุนนอน
+ทุนนิมิต
+ทุนนิยม
+ทุนรอน
+ทุนสำรอง
+ทุนสำรองเงินตรา
+ทุนหมุนเวียน
+ทุนิยม
+ทุบ
+ทุบตี
+ทุบทู
+ทุพพล
+ทุพพลภาพ
+ทุพภิà¸à¸‚ภัย
+ทุม
+ทุมโน
+ทุย
+ทุร
+ทุรà¸à¸±à¸™à¸”าร
+ทุรคม
+ทุรชน
+ทุรชาติ
+ทุรน
+ทุรนทุราย
+ทุรพล
+ทุรัศ
+ทุราคม
+ทุลัà¸à¸—ุเล
+ทุวิธ
+ทุศีล
+ทุษà¸
+ทุส
+ทุสสีล
+ทุเรศ
+ทุเรียน
+ทุเลา
+ทุ่ง
+ทุ่งช้าง
+ทุ่งตะโà¸
+ทุ่งà¸à¸™
+ทุ่งมหาเมฆ
+ทุ่งยางà¹à¸”ง
+ทุ่งลานนา
+ทุ่งสง
+ทุ่งสองห้อง
+ทุ่งหว้า
+ทุ่งหัวช้าง
+ทุ่งเสรี
+ทุ่งเสลี่ยม
+ทุ่งใหà¸à¹ˆ
+ทุ่น
+ทุ่ม
+ทุ่มเท
+ทุ้ง
+ทุ้ม
+ทุ้ย
+ทู
+ทูà¸à¸±à¸‡
+ทูต
+ทูตานุทูต
+ทูน
+ทูนหัว
+ทูน่า
+ทูบ
+ทูม
+ทูมทาม
+ทูร
+ทูล
+ทูลเà¸à¸¥à¹‰à¸²à¸¯
+ทูษà¸
+ทูเลียม
+ทูโม่ง
+ทูไลต์
+ทู่
+ทู่ซี้
+ทู้
+ทเมิน
+ทà¹à¸à¸¥à¹‰à¸§
+ทà¹à¸¢à¸‡
+ทโมน
+ทไวไลท์
+ท็อà¸à¸‹à¸´à¸™
+ท็อยเล็ท
+ท่ง
+ท่วง
+ท่วงทำนอง
+ท่วงที
+ท่วงท่า
+ท่วม
+ท่วมท้น
+ท่วย
+ท่อ
+ท่อง
+ท่องจำ
+ท่องสือ
+ท่อน
+ท่อม
+ท่อมๆ
+ท่า
+ท่าคันโท
+ท่าฉาง
+ท่าชนะ
+ท่าช้าง
+ท่าดินà¹à¸”ง
+ท่าตะโà¸
+ท่าตูม
+ท่าทราย
+ท่าทาง
+ท่าที
+ท่าน
+ท่านผู้หà¸à¸´à¸‡
+ท่าน้ำ
+ท่าน้ำนนทบุรี
+ท่าบ่อ
+ท่าปลา
+ท่าพระ
+ท่ามà¸à¸¥à¸²à¸‡
+ท่ามะà¸à¸²
+ท่าม่วง
+ท่ายาง
+ท่าลี่
+ท่าว
+ท่าวังผา
+ท่าวุ้ง
+ท่าศาลา
+ท่าสองยาง
+ท่าอุเทน
+ท่าเรือ
+ท่าเรือวิทยา
+ท่าà¹à¸Šà¸°
+ท่าà¹à¸ž
+ท่าใหม่
+ท้น
+ท้วง
+ท้วน
+ท้วม
+ท้วย
+ท้อ
+ท้อง
+ท้องคุ้ง
+ท้องฟ้า
+ท้อถอย
+ท้อà¹à¸—้
+ท้อใจ
+ท้า
+ท้าง
+ท้าทาย
+ท้าย
+ท้ายทอย
+ท้ายà¸à¸™
+ท้ายวัง
+ท้ายเมือง
+ท้ายเหมือง
+ท้าว
+ธง
+ธงà¸à¹Œ
+ธงฉาน
+ธงชัย
+ธงชาติ
+ธงชาย
+ธชี
+ธตรà¸
+ธน
+ธนธานี
+ธนบดี
+ธนบัตร
+ธนบุรี
+ธนบุรีวรเทพีพลารัà¸à¸©à¹Œ
+ธนสมบัติ
+ธนสาร
+ธนัง
+ธนาà¸à¸£
+ธนาคม
+ธนาคาร
+ธนาคารโลà¸
+ธนาณัติ
+ธนารัà¸à¸©à¹Œ
+ธนิต
+ธนิยะ
+ธนิษà¸à¸²
+ธนุ
+ธนู
+ธนูทัย
+ธม
+ธร
+ธรณิน
+ธรณิศ
+ธรณี
+ธรณีนิคม
+ธรณีวิทยา
+ธรณีส
+ธรมาน
+ธรรม
+ธรรมà¸à¸–า
+ธรรมà¸à¸²à¸¢
+ธรรมà¸à¸²à¸£
+ธรรมจรรยา
+ธรรมจัà¸à¸£
+ธรรมจารี
+ธรรมชาติ
+ธรรมดา
+ธรรมธาตุ
+ธรรมนูà¸
+ธรรมบท
+ธรรมบาล
+ธรรมมงคล
+ธรรมมาราม
+ธรรมวัตร
+ธรรมศาสตร์
+ธรรมสภา
+ธรรมสาโรช
+ธรรมะ
+ธรรมะธัมโม
+ธรรมาทิตย์
+ธรรมาธรรม
+ธรรมาธิปไตย
+ธรรมาธิษà¸à¸²à¸™
+ธรรมานุสาน
+ธรรมาภิมุข
+ธรรมาภิสมัย
+ธรรมายตนะ
+ธรรมารมณ์
+ธรรมาสน์
+ธรรมิà¸
+ธรรมเนียม
+ธรา
+ธราดล
+ธราธร
+ธราธาร
+ธราธิบดี
+ธราธิป
+ธวัช
+ธวัชบุรี
+ธังà¸
+ธัช
+ธัà¸
+ธัà¸à¸à¸²à¸«à¸²à¸£
+ธัà¸à¸”ัจ
+ธัà¸à¸šà¸¸à¸£à¸µ
+ธัà¸à¸žà¸·à¸Š
+ธัà¸à¸¡à¸²à¸ª
+ธัà¸à¹€à¸‚ต
+ธัà¸à¹‚à¸à¸¨
+ธันยา
+ธันวา
+ธันวาคม
+ธันเดอร์
+ธัมมะ
+ธาà¸à¸²
+ธาดา
+ธาตรี
+ธาตวาà¸à¸£
+ธาตุ
+ธาตุทอง
+ธาตุพนม
+ธานิน
+ธานินทร์
+ธานี
+ธาร
+ธารà¸à¸³à¸™à¸±à¸¥
+ธารณ
+ธารณะ
+ธารณา
+ธารณามัย
+ธารา
+ธารโต
+ธาษตรี
+ธาษัตรี
+ธำมรงค์
+ธำรง
+ธิดา
+ธิติ
+ธิเบต
+ธีซิส
+ธีม
+ธีร
+ธีรภาพ
+ธีรราช
+ธุช
+ธุดงค
+ธุดงค์
+ธุต
+ธุม
+ธุมชาล
+ธุมา
+ธุรà¸à¸£à¸£à¸¡
+ธุรà¸à¸²à¸£
+ธุรà¸à¸´à¸ˆ
+ธุรà¸à¸´à¸ˆà¸šà¸±à¸“ฑิต
+ธุระ
+ธุรำ
+ธุลี
+ธุวดารา
+ธุวภาค
+ธุวมณฑล
+ธูป
+ธเนศ
+ธเนศวร
+ธเรศ
+นà¸
+นà¸à¸„ุ่ม
+นà¸à¸ˆà¸²à¸
+นà¸à¸•à¹ˆà¸­
+นà¸à¸£à¸¹à¹‰
+นà¸à¸«à¸
+นà¸à¸«à¸§à¸µà¸”
+นà¸à¸¸à¸¥
+นà¸à¹€à¸‚า
+นà¸à¹€à¸„้าà¹à¸¡à¸§
+นà¸à¹à¸à¹‰à¸§à¸™à¹‰à¸­à¸¢
+นข
+นขา
+นขเลขา
+นคร
+นครà¸à¸²à¸£à¸¨à¸¶à¸à¸©à¸²
+นครชัยศรี
+นครนายà¸
+นครบาล
+นครปà¸à¸¡
+นครป่าหมาà¸
+นครพนม
+นครรัà¸
+นครรัà¸à¸§à¸²à¸•à¸´à¸à¸±à¸™
+นครราชสีมา
+นครวาสี
+นครศรีธรรมราช
+นครสวรรค์
+นครหลวง
+นคราทร
+นครินทร์
+นครเขื่อนขันธ์
+นครไชยศรี
+นครไทย
+นคสินธุ์
+นคินทร
+นคเรศ
+นง
+นงคราà¸
+นงคุà¸
+นงนุช
+นงพะงา
+นงพาล
+นงพุธ
+นงราม
+นงลัà¸à¸©à¸“์
+นงเยาว์
+นงโพธ
+นท
+นที
+นทีทิพย์
+นทีรัย
+นนตรา
+นนทบุรี
+นนทรี
+นนทรีวิทยา
+นนทลี
+นนทิ
+นนทเวช
+นนท์
+นบ
+นบนอบ
+นพ
+นพà¸à¸°
+นพคุณ
+นพนิต
+นพปฎล
+นพพล
+นพพวง
+นพพัน
+นพมาศ
+นพรัตน์
+นพรัตน์ราชธานี
+นพศà¸
+นพศูล
+นพเà¸à¹‰à¸²
+นภ
+นภจร
+นภดล
+นภมณฑล
+นภวิถี
+นภศูล
+นภา
+นภาà¸à¸²à¸¨
+นภาลัย
+นภาศัพท์
+นม
+นมข้น
+นมควาย
+นมชะนี
+นมช้าง
+นมนาง
+นมนาน
+นมบอด
+นมผง
+นมผา
+นมพวง
+นมวัว
+นมสาว
+นมหนู
+นมัสà¸à¸²à¸£
+นมาซ
+นมà¹à¸¡à¸§
+นมไม้
+นยนะ
+นยัà¸à¸©à¹Œ
+นร
+นรà¸
+นรà¸à¸²à¸™à¸•à¹Œ
+นรà¸à¸²à¸£
+นรนาถ
+นรนายà¸
+นรบดี
+นรบาล
+นรพยัคฆ์
+นรราช
+นรสิงห์
+นรสีห์
+นรา
+นราà¸à¸£
+นราทร
+นราธิป
+นราธิวาส
+นรินทร์
+นริย
+นริศ
+นริศร
+นริศวร
+นรี
+นรีเวช
+นรีเวชวิทยา
+นรีà¹à¸žà¸—ย์
+นรเทพ
+นฤคหิต
+นฤดม
+นฤตย
+นฤตย์
+นฤนาท
+นฤบดี
+นฤบาล
+นฤป
+นฤพาน
+นฤมล
+นฤมาณ
+นฤมิต
+นฤเทพ
+นฤเบศ
+นฤโฆษ
+นลาà¸
+นลิน
+นลินี
+นว
+นวà¸
+นวà¸à¸£à¸£à¸¡
+นวà¸à¸°
+นวà¸à¸²à¸£
+นวà¸à¸´à¸ˆ
+นวครหะ
+นวคุณ
+นวชาต
+นวด
+นวทวาร
+นวนิต
+นวนิยาย
+นวปฎล
+นวพธู
+นวม
+นวมินทราชูทิศ
+นวมี
+นวมุข
+นวย
+นวยนาด
+นวรัตน์
+นวล
+นวลจันทร์
+นวลทอง
+นวลนรดิศ
+นวลลออ
+นวลละออง
+นวลหง
+นววิธ
+นวัตà¸à¸£à¸£à¸¡
+นวาระ
+นวโà¸à¸§à¸²à¸—
+นวโลหะ
+นหาดà¸
+นหาน
+นหารุ
+นหุต
+นฬà¸à¸²à¸£
+นฬป
+นอ
+นอà¸
+นอà¸à¸„รู
+นอà¸à¸„อà¸
+นอà¸à¸ˆà¸²à¸
+นอà¸à¸Šà¸²à¸™
+นอà¸à¸–นน
+นอà¸à¸£à¸µà¸•
+นอà¸à¹ƒà¸ˆ
+นอง
+นอต
+นอน
+นอนà¸à¸´à¸™
+นอนà¸à¹‰à¸™
+นอนนà¸
+นอนวัน
+นอนเวร
+นอนโทรไนต์
+นอนโรง
+นอนใจ
+นอบ
+นอบนบ
+นอบน้อม
+นอร์ม
+นอร์มอล
+นอร์รู
+นอร์วีเจียน
+นอร์เว
+นอร์เวย์
+นะ
+นะà¹à¸™à¹ˆà¸‡
+นะโปเลียน
+นัà¸
+นัà¸à¸à¸°
+นัà¸à¸à¸²à¸£
+นัà¸à¸à¸µà¸¬à¸²
+นัà¸à¸‚ัต
+นัà¸à¸‡à¸²à¸™
+นัà¸à¸•à¸°
+นัà¸à¸šà¸§à¸Š
+นัà¸à¸šà¸´à¸™
+นัà¸à¸šà¸¸à¸
+นัà¸à¸žà¸£à¸•
+นัà¸à¸£
+นัà¸à¸£à¸š
+นัà¸à¸¨à¸¶à¸à¸©à¸²
+นัà¸à¸©à¸±à¸•à¸£
+นัà¸à¸ªà¸™à¸¡
+นัà¸à¸ªà¸§à¸”
+นัà¸à¸ªà¸·à¸š
+นัà¸à¸«à¸™à¸²
+นัà¸à¹€à¸—ศ
+นัà¸à¹€à¸£à¸µà¸¢à¸™
+นัà¸à¹€à¸¥à¸‡
+นัà¸à¹‚ทษ
+นัข
+นัค
+นังคัล
+นัจ
+นัà¸
+นัฑ
+นัด
+นัดดา
+นัดà¹à¸™à¸°
+นัตถุ์
+นัตถ์
+นันท
+นันทนาà¸à¸²à¸£
+นันทน์
+นันทา
+นันทิ
+นับ
+นับถือ
+นัมเบอร์
+นัย
+นัยนา
+นัยน์
+นัยน์ตา
+นัยว่า
+นัว
+นัวเนีย
+นัสซอ
+นั่ง
+นั่น
+นั่นซี
+นั่นเอง
+นั้น
+นั้นà¹à¸¥
+นา
+นาà¸
+นาà¸à¸šà¸¸à¸”
+นาà¸à¸¥à¸²à¸‡
+นาà¸à¸²à¸ªà¸²à¸«à¸£à¸µ
+นาค
+นาคนิวาส
+นาคบาศ
+นาคปรà¸
+นาคปัà¸
+นาคร
+นาครวย
+นาคราช
+นาครุ่งโรจน์
+นาคลดา
+นาคสุวรรณ
+นาคา
+นาคาว
+นาคี
+นาคเจริà¸
+นาง
+นางงาม
+นางจุม
+นางชี
+นางดำ
+นางนวล
+นางนอง
+นางนูน
+นางน้ำชน
+นางพà¸à¸²
+นางฟ้า
+นางรม
+นางรอง
+นางรำ
+นางลอย
+นางสาว
+นางหงษ์
+นางอาย
+นางเลิ้ง
+นางเอà¸
+นางà¹à¸™à¸š
+นางà¹à¸­
+นางà¹à¸­à¹ˆà¸™
+นางใน
+นางไม้
+นาจะหลวย
+นาซา
+นาซี
+นาà¸
+นาà¸à¸
+นาà¸à¸à¸£à¸£à¸¡
+นาà¸à¸¢
+นาà¸à¸¨à¸´à¸¥à¸›à¹Œ
+นาฑิà¸à¸²
+นาด
+นาดำ
+นาดี
+นาดูน
+นาด้วง
+นาตูนา
+นาถ
+นาท
+นาทวี
+นาทอง
+นาที
+นาน
+นานนม
+นานัตว
+นานัปà¸à¸²à¸£
+นานา
+นานาชาติ
+นานาพรรณ
+นานไฮ
+นาน้อย
+นาบ
+นาบอน
+นาปรัง
+นาปี
+นาภิ
+นาภี
+นาม
+นามà¸à¸£
+นามธรรม
+นามน
+นามบัตร
+นามปาà¸à¸à¸²
+นามสà¸à¸¸à¸¥
+นามสงเคราะห์
+นามานุà¸à¸£à¸¡
+นามาภิไธย
+นามà¹à¸à¸‡
+นามไธย
+นาย
+นายà¸
+นายงาน
+นายจ้าง
+นายทุน
+นายท่า
+นายธง
+นายิà¸à¸²
+นายเวร
+นายโรง
+นารา
+นารายณ์
+นารายณ์ภัณฑ์
+นารี
+นารีผล
+นาลี
+นาว
+นาวา
+นาวิà¸
+นาวิน
+นาวี
+นาศ
+นาสวน
+นาสา
+นาสิà¸
+นาหว้า
+นาฬิà¸à¸²
+นาฬิเà¸
+นาฬี
+นาอูรู
+นาเชือà¸
+นาเนà¸
+นาเรศ
+นาเวศ
+นาà¹à¸
+นาà¹à¸«à¹‰à¸§
+นาโน
+นำ
+นำจับ
+นำทาง
+นำพา
+นำร่อง
+นำสมัย
+นำสืบ
+นำà¹à¸ªà¸”ง
+นำไทย
+นิ
+นิà¸à¸‚ะ
+นิà¸à¸£
+นิà¸à¸£à¸­à¸¢à¸”์
+นิà¸à¸²à¸¢
+นิà¸à¸²à¸£à¸²à¸à¸±à¸§
+นิà¸à¸²à¹€à¸£à¸µà¸¢
+นิà¸à¹€à¸à¸´à¸¥
+นิà¸à¹‚คไลต์
+นิคม
+นิคมคำสร้อย
+นิคมที่ดิน
+นิคมน้ำอูน
+นิคมรถไฟ
+นิคมสร้างตนเอง
+นิครนถ์
+นิคส์
+นิคห
+นิคหะ
+นิคหิต
+นิคาหà¸
+นิง
+นิจ
+นิจจานุเคราะห์
+นิจศีล
+นิซิรอส
+นิด
+นิด้า
+นิต
+นิตย
+นิตยทาน
+นิตยสาร
+นิตย์
+นิติ
+นิติà¸à¸£
+นิติà¸à¸£à¸“์
+นิติà¸à¸£à¸£à¸¡
+นิติà¸à¸²à¸£à¸“์
+นิติธรรม
+นิตินัย
+นิติบัà¸à¸à¸±à¸•à¸´
+นิติบุคคล
+นิติภาวะ
+นิติวิทยาศาสตร์
+นิติศาสตร์
+นิติเวชศาสตร์
+นิทร
+นิทรรศ
+นิทรรศà¸à¸²à¸£
+นิทรา
+นิทัศน์
+นิทาฆ
+นิทาน
+นิธาน
+นิธิ
+นินจา
+นินทา
+นินนะ
+นินนาท
+นินหุต
+นิบาต
+นิปปอน
+นิพจน์
+นิพนธ์
+นิพพาน
+นิพัทธ
+นิพัทธ์วิทยา
+นิพิท
+นิภา
+นิมนต์
+นิมมาน
+นิมมานรดี
+นิมิต
+นิมิตร
+นิยต
+นิยม
+นิยยาน
+นิยัตินิยม
+นิยาม
+นิยาย
+นิยุต
+นิรคุณ
+นิรชร
+นิรชรา
+นิรทุà¸à¸‚์
+นิรนัย
+นิรนาม
+นิรภัย
+นิรมล
+นิรมาณ
+นิรมาน
+นิรมิต
+นิรันดร
+นิรา
+นิรามัย
+นิราศ
+นิราศร
+นิรุà¸à¸•à¸´à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+นิรุตติ
+นิรุทà¸
+นิรุทธ์
+นิรเทศ
+นิรโฆษ
+นิรโทษ
+นิล
+นิลุบล
+นิวà¸à¸´à¸™à¸µ
+นิวคลิอิà¸
+นิวคาลิโดเนีย
+นิวจอร์เจีย
+นิวซีà¹à¸¥à¸™à¸”์
+นิวตรอน
+นิวบริเตน
+นิวฟันด์à¹à¸¥à¸™à¸”์
+นิวมอเนีย
+นิวยอร์à¸
+นิวยอร์ค
+นิวรณ์
+นิวัต
+นิวัตน์
+นิวาต
+นิวาส
+นิวเคลียร์
+นิวเคลียส
+นิวเจอร์ซี
+นิวเซาท์เวลส์
+นิวเดลฮี
+นิวเมติค
+นิวเม็à¸à¸‹à¸´à¹‚à¸
+นิวเวิลด์
+นิวà¹à¸®à¸¡à¸›à¹Œà¹€à¸Šà¸µà¸¢à¸£à¹Œ
+นิวà¹à¸®à¹‚นเวอร์
+นิวไซบีเรียน
+นิวไอร์à¹à¸¥à¸™à¸”์
+นิศา
+นิศาà¸à¸£
+นิศาคม
+นิศาชล
+นิศาทิ
+นิษà¸à¸£à¸¡
+นิษาท
+นิสภ
+นิสัช
+นิสัย
+นิสาท
+นิสิต
+นิสีทน
+นิเคราะห์
+นิเทศ
+นิเทศศาสตร์
+นิเพท
+นิเวศ
+นิเวศน์
+นิเวศวิทยา
+นิเสธ
+นิโà¸à¸£
+นิโà¸à¹€à¸‹à¸µà¸¢
+นิโคติน
+นิโคบาร์
+นิโครธ
+นิโครม
+นิโรช
+นิโรธ
+นิโลตบล
+นิโลบล
+นิโอ
+นิ่ง
+นิ่ม
+นิ่ว
+นิ้ม
+นิ้ว
+นี
+นีติ
+นีรจร
+นีรช
+นีรนาท
+นีออน
+นีอาเม
+นีอีฮาอู
+นีโอดิเนียม
+นีโอดิเมียม
+นีโอดีเมียม
+นี่
+นี่นัน
+นี่เอง
+นี้
+นึà¸
+นึà¸à¸„ิด
+นึà¸à¸”ู
+นึà¸à¸–ึง
+นึà¸à¸­à¸­à¸
+นึง
+นึ่ง
+นุ
+นุง
+นุงถุง
+นุงนัง
+นุช
+นุชเนตร
+นุด
+นุต
+นุ่ง
+นุ่น
+นุ่ม
+นุ้ย
+นูà¸à¸±à¸§à¹‚ลฟา
+นูน
+นูà¹à¸­à¸à¸Šà¸­à¸•
+นู่น
+นู้น
+นเคศวร
+นเรศ
+นเรศวร
+นเรศูร
+นโคทร
+นโยบาย
+นโรดม
+น็อค
+น็อต
+น่วม
+น่อง
+น่า
+น่าชัง
+น่าน
+น่านน้ำอาณาเขต
+น่าย
+น้อง
+น้องๆ
+น้อม
+น้อมจิตร
+น้อมนำ
+น้อมเà¸à¸¥à¹‰à¸²à¸¯
+น้อย
+น้อยนพคุณ
+น้อยห
+น้อยหน่า
+น้อยโหน่ง
+น้อยใจ
+น้า
+น้าว
+น้ำ
+น้ำà¸à¸£à¸”
+น้ำà¸à¸²à¸¡
+น้ำขาว
+น้ำครำ
+น้ำคำ
+น้ำค้าง
+น้ำค้างà¹à¸‚็ง
+น้ำชน
+น้ำชุบ
+น้ำซับ
+น้ำซึม
+น้ำดิบ
+น้ำดี
+น้ำตà¸
+น้ำตับ
+น้ำตา
+น้ำตาย
+น้ำตาล
+น้ำทรง
+น้ำท่า
+น้ำนม
+น้ำนวล
+น้ำนอง
+น้ำปลา
+น้ำปาด
+น้ำป่า
+น้ำพอง
+น้ำพุ
+น้ำมนตร์
+น้ำมนต์
+น้ำมัน
+น้ำมือ
+น้ำมูà¸
+น้ำยา
+น้ำยืน
+น้ำรัà¸
+น้ำลง
+น้ำลาย
+น้ำวน
+น้ำว้า
+น้ำสุà¸
+น้ำส้ม
+น้ำหอม
+น้ำอบ
+น้ำเคย
+น้ำเงิน
+น้ำเมา
+น้ำà¹à¸‚็งà¹à¸«à¹‰à¸‡
+น้ำà¹à¸£à¹ˆ
+น้ำโบย
+น้ำโสม
+น้ำใจ
+น้ำไทย
+น้ำไว
+บà¸
+บà¸à¸žà¸£à¹ˆà¸­à¸‡
+บง
+บงà¸à¸Š
+บงà¸à¸Šà¸à¸£
+บงà¸à¸²à¸£
+บงà¸à¹Œ
+บงสุ
+บงสุ์
+บด
+บดขยี้
+บดบัง
+บดินทรเดชา
+บดินทร์
+บดินทร์เดชา
+บดี
+บดีพรต
+บดีศร
+บท
+บทà¸à¸¥à¸­à¸™
+บทความ
+บทคัดย่อ
+บทจร
+บทนำ
+บทบงà¸à¸Š
+บทบรรณาธิà¸à¸²à¸£
+บทบัà¸à¸à¸±à¸•à¸´
+บทบาท
+บทรัช
+บทร้อง
+บทวาร
+บทวเรศ
+บทศรี
+บทเฉพาะà¸à¸²à¸¥
+บทเพลง
+บทเรศ
+บน
+บนบาน
+บนม
+บพิตร
+บพิตรพิทยา
+บพิตรพิมุข
+บพิธ
+บมิ
+บร
+บรทาร
+บรบือ
+บรม
+บรมธาตุ
+บรมอัà¸à¸´
+บรมัตถ์
+บรรà¸à¸§à¸”
+บรรจง
+บรรจถรณ์
+บรรจบ
+บรรจวบ
+บรรจุ
+บรรณ
+บรรณาà¸à¸²à¸£
+บรรณาคม
+บรรณาธิà¸à¸²à¸£
+บรรณานุà¸à¸£à¸¡
+บรรณารัà¸à¸©à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+บรรณารัà¸à¸©à¹Œ
+บรรดา
+บรรดาà¸
+บรรดาศัà¸à¸”ิ์
+บรรถร
+บรรทม
+บรรทัด
+บรรทัดà¸à¸²à¸™
+บรรทัดทอง
+บรรทับ
+บรรทาน
+บรรทุà¸
+บรรพ
+บรรพชา
+บรรพชิต
+บรรพต
+บรรพตพิสัย
+บรรพบุรุษ
+บรรพเภท
+บรรพ์
+บรรยง
+บรรยงà¸à¹Œ
+บรรยาà¸à¸²à¸¨
+บรรยาย
+บรรลัย
+บรรลัยà¸à¸±à¸¥à¸›à¹Œ
+บรรลาย
+บรรลุ
+บรรษัท
+บรรสบ
+บรรสพ
+บรรสม
+บรรสาน
+บรรสาร
+บรรหาน
+บรรหาร
+บรรเจิด
+บรรเทา
+บรรเลง
+บรรโลม
+บรอคเคอลิ
+บรอดà¹à¸šà¸™à¸”์
+บรอนซ์
+บรอนไซต์
+บรัด
+บรัศว์
+บรัสเซลส์
+บรั่นดี
+บรา
+บราà¸à¸£à¸¡
+บราง
+บราซิล
+บราซิเลีย
+บราลี
+บราวอยต์
+บราวเซอร์
+บริà¸à¸£à¸¡
+บริà¸à¸£à¸£à¸¡
+บริà¸à¸±à¸›
+บริà¸à¸²à¸£
+บริขา
+บริขาร
+บริคณห์
+บริคณห์สนธิ
+บริจาค
+บริจารà¸
+บริจาริà¸à¸²
+บริชน
+บริดจ์
+บริดช์เทาน์
+บริติช
+บริตเทิลไมà¸à¸²
+บริบท
+บริบาล
+บริบูรณ์
+บริพนธ์
+บริพัตร
+บริพันธ์
+บริพาร
+บริภัณฑ์
+บริภาษ
+บริมาส
+บริยาย
+บริรม
+บริรัà¸à¸©à¹Œ
+บริราช
+บริวรรต
+บริวาร
+บริวาส
+บริษัท
+บริสชน
+บริสุทธิ์
+บริสเบน
+บริหาร
+บริหารธุรà¸à¸´à¸ˆ
+บริหาส
+บริเฉท
+บริเตน
+บริเตนใหà¸à¹ˆ
+บริเวณ
+บริโภค
+บรื๋อ
+บรูไซต์
+บรูไน
+บฤงคพ
+บลัฟฟ์
+บลูเบอร์รี
+บล็อà¸
+บล็อค
+บวà¸
+บวง
+บวงสรวง
+บวช
+บวชชี
+บวน
+บวบ
+บวบขม
+บวม
+บวร
+บวรนิเวศน์
+บวรมงคล
+บหลิ่ม
+บอ
+บอà¸
+บอà¸à¸šà¸—
+บอà¸à¸šà¸¸à¸
+บอà¸à¸›à¸±à¸”
+บอà¸à¹à¸‚à¸
+บอà¸à¹ƒà¸šà¹‰
+บอà¸à¹„ซต์
+บอง
+บองหลา
+บอด
+บอดสี
+บอดี้
+บอน
+บอนด์
+บอนน์
+บอบ
+บอบช้ำ
+บอบบาง
+บอบà¹à¸šà¸š
+บอมบ์
+บอยคอท
+บอยซี
+บอร์ด
+บอร์นโฮล์ม
+บอร์เนียว
+บอร์โนไนต์
+บอร์ไนต์
+บอล
+บอลติà¸
+บอลลูน
+บอส
+บอสตัน
+บอสเนีย
+บอà¹à¸£à¸à¸‹à¹Œ
+บอà¹à¸£à¹‡à¸à¸‹à¹Œ
+บะฉ่อ
+บะหมี่
+บัà¸
+บัà¸à¸­à¸²à¸™
+บัà¸à¹‚à¸à¸£à¸
+บัคเตรี
+บัง
+บังà¸à¸¥à¸²à¹€à¸—ศ
+บังà¸à¸°à¹‚ล
+บังà¸à¸±à¸”
+บังà¸à¸²
+บังà¸à¸µ
+บังคน
+บังคนหนัà¸
+บังคนเบา
+บังคม
+บังคล
+บังควร
+บังความ
+บังคับ
+บังคับà¸à¸²à¸£
+บังคัล
+บังตา
+บังฟัน
+บังมืด
+บังลังà¸à¹Œ
+บังวาย
+บังสาด
+บังสุà¸à¸¸à¸¥
+บังสุà¸à¸¹à¸¥
+บังสูรย์
+บังหน้า
+บังอร
+บังอวจ
+บังอาจ
+บังอิง
+บังอูร
+บังเà¸à¸­à¸£à¹Œ
+บังเà¸à¸´à¸”
+บังเงา
+บังเวียน
+บังเหิน
+บังเหียน
+บังเอิà¸
+บังà¹à¸—รà¸
+บังโà¸à¸¥à¸™
+บังโคลน
+บังใบ
+บังไพร
+บัà¸à¸ˆà¸
+บัà¸à¸ˆà¸£à¸‡à¸„์
+บัà¸à¸Šà¸£
+บัà¸à¸Šà¸²
+บัà¸à¸Šà¸²à¸à¸²à¸£
+บัà¸à¸Šà¸µ
+บัà¸à¸à¸±à¸•à¸´
+บัà¸à¸à¸±à¸•à¸´à¹„ตรยางศ์
+บัà¸à¸‘ิต
+บัà¸à¸«à¸²
+บัà¸
+บัณฑร
+บัณฑิต
+บัณฑิตย์
+บัณฑุ
+บัณฑูร
+บัณณาส
+บัณรส
+บัณรสี
+บัณเฑาะà¸à¹Œ
+บัณเฑาะว์
+บัด
+บัดà¸à¸£à¸µ
+บัดซบ
+บัดดล
+บัดดี้
+บัดนั้น
+บัดนี้
+บัดบง
+บัดสี
+บัดเà¸à¹‡à¸•
+บัตชาน
+บัตร
+บัทม์
+บัน
+บันà¸à¸§à¸”
+บันจวบ
+บันจอย
+บันดล
+บันดา
+บันดาล
+บันทึà¸
+บันทึง
+บันนังสตา
+บันยะบันยัง
+บันลือ
+บันเทิง
+บันเบา
+บันà¹à¸–ลง
+บันโดย
+บันได
+บัปผาสะ
+บัพ
+บัพชา
+บัพชิต
+บัพพาช
+บัฟเฟอร์
+บัฟเฟอร์สเตท
+บัมพ์
+บัมเพอร์
+บัล
+บัลà¸à¸²à¹€à¸£à¸µà¸¢
+บัลตา
+บัลลพ
+บัลลังà¸à¹Œ
+บัลลูน
+บัลเลท์
+บัลà¹à¸à¹€à¸£à¸µà¸¢
+บัว
+บัวขวัà¸
+บัวขาบ
+บัวขาว
+บัวตูม
+บัวถลา
+บัวนาง
+บัวบà¸
+บัวบาท
+บัวผึ้งพัฒนา
+บัวผุด
+บัวลอย
+บัวโนสไอเรส
+บัวโรย
+บัวใหà¸à¹ˆ
+บัส
+บัสเลน
+บัสà¹à¸•à¸£à¹Œ
+บัสไทต์
+บั่น
+บั่นทอน
+บั้ง
+บั้งไฟ
+บั้น
+บั้นท้าย
+บั้นปลาย
+บั้นเอว
+บั๊à¸
+บา
+บาà¸
+บาà¸à¸—่า
+บาง
+บางà¸à¸£à¸§à¸¢
+บางà¸à¸£à¸°à¸—ุ่ม
+บางà¸à¸£à¸°à¸ªà¸­à¸š
+บางà¸à¸£à¸°à¹€à¸ˆà¹‰à¸²
+บางà¸à¸­à¸
+บางà¸à¸­à¸à¸™à¹‰à¸­à¸¢
+บางà¸à¸­à¸à¹ƒà¸«à¸à¹ˆ
+บางà¸à¸­à¸šà¸±à¸§
+บางà¸à¸°à¸›à¸´
+บางขมิ้น
+บางขุนนนท์
+บางขุนเทียน
+บางคนที
+บางคล้า
+บางคอà¹à¸«à¸¥à¸¡
+บางจาà¸
+บางชัน
+บางซื่อ
+บางซ้าย
+บางตา
+บางที
+บางนา
+บางน้ำชน
+บางน้ำผึ้ง
+บางน้ำเปรี้ยว
+บางบัว
+บางบัวทอง
+บางบาล
+บางบำหรุ
+บางบ่อ
+บางปลาม้า
+บางปะà¸à¸‡
+บางปะหัน
+บางปะอิน
+บางปู
+บางพลัด
+บางพลี
+บางพึ่ง
+บางมด
+บางมูลนาà¸
+บางยี่ขัน
+บางยี่เรือ
+บางระà¸à¸³
+บางระจัน
+บางรัà¸
+บางละมุง
+บางลำภู
+บางวัว
+บางศรีเมือง
+บางสะพาน
+บางสะà¹à¸
+บางสุ
+บางหà¸à¹‰à¸²à¹à¸žà¸£à¸
+บางอ้อ
+บางอ้อศึà¸à¸©à¸²
+บางเขน
+บางเตย
+บางเบา
+บางเลน
+บางเสาธง
+บางà¹à¸à¹‰à¸§
+บางà¹à¸„
+บางà¹à¸ž
+บางà¹à¸žà¸£à¸
+บางโพ
+บางโพงพาง
+บางใหà¸à¹ˆ
+บางไทร
+บางไผ่
+บางไส้ไà¸à¹ˆ
+บาจà¸
+บาจิà¸à¸²
+บาซาร์
+บาซิลลัส
+บาซิลัน
+บาซูà¸à¸²
+บาด
+บาดคอ
+บาดตา
+บาดทะยัà¸
+บาดหมาง
+บาดหู
+บาดาล
+บาดà¹à¸œà¸¥
+บาดใจ
+บาดไหม
+บาต
+บาตร
+บาท
+บาทบ
+บาทบงà¸à¸Š
+บาทบงสุ์
+บาทบริจาริà¸à¸²
+บาทภัà¸
+บาทภาค
+บาทมูล
+บาทยุคล
+บาทรช
+บาทรัช
+บาทหลวง
+บาทา
+บาทาธึà¸
+บาทุà¸à¸²
+บาธรรม
+บาน
+บานà¸à¸š
+บานชื่น
+บานบุรี
+บานพับ
+บานียะ
+บานเà¸à¸¥à¹‡à¸”
+บานเช้า
+บานเย็น
+บานà¹à¸šà¸°
+บาบาร์
+บาบิโลเนีย
+บาบี
+บาบูน
+บาป
+บาปà¸à¸£à¸£à¸¡
+บาปหนา
+บาปี
+บาพà¸
+บามาโà¸
+บาย
+บายพาส
+บายศรี
+บายโปรดัà¸à¸‹à¹Œ
+บารนี
+บารมี
+บารอน
+บารอมิเตอร์
+บาร์
+บาร์คีวิไคต์
+บาร์บีคิว
+บาร์บูดา
+บาร์เ
+บาร์เบล
+บาร์เบอร์
+บาร์เบโดส
+บาร์เรน
+บาร์เรล
+บาร์เลย์
+บาร์à¹à¸šà¹€à¸£à¸µà¸¢à¸™
+บาล
+บาลานซ์
+บาลี
+บาศ
+บาศà¸à¹Œ
+บาสติล
+บาสเà¸à¸•à¸šà¸­à¸¥
+บาหลี
+บาห์เรน
+บาฮามาส
+บาเจาะ
+บาà¹à¸”ง
+บาโบส
+บำนาà¸
+บำบวง
+บำบัด
+บำราบ
+บำราศ
+บำราศนราดูร
+บำรุง
+บำรุงราษฎร์
+บำรุงวิชา
+บำรุงศิลป์
+บำรุงสุข
+บำรุงเมือง
+บำรู
+บำหยัด
+บำเทิง
+บำเพ็à¸
+บำเรอ
+บำเหน็จ
+บำเหน็จณรงค์
+บำโบ
+บิ
+บิà¸à¸´à¸™à¸µ
+บิà¸à¸¹
+บิงโà¸
+บิชอป
+บิซิเนส
+บิà¸
+บิณฑ
+บิณฑบาต
+บิด
+บิดขวา
+บิดพลิ้ว
+บิดร
+บิดา
+บิดเบือน
+บิดไส้
+บิต
+บิตุ
+บิตุจฉา
+บิตุรงค์
+บิตุล
+บิตุลา
+บิตุเรศ
+บิท
+บิน
+บินตัน
+บินยา
+บิล
+บิลลิตัน
+บิลิซี
+บิลเลียด
+บิวตี้
+บิวเรตต์
+บิศาจ
+บิสคิต
+บิสซู
+บิสมัท
+บิสมัทอิไนต์
+บิสมาร์à¸
+บิสเคค
+บิ่น
+บีฑา
+บีตา
+บีน
+บีบ
+บีบรัด
+บีเยศ
+บี้
+บี้à¹à¸šà¸™
+บึà¸
+บึà¸à¸šà¸¶à¸™
+บึง
+บึงà¸à¸²à¸¬
+บึงà¸à¸¸à¹ˆà¸¡
+บึงทองหลาง
+บึงบาง
+บึงสามพัน
+บึ่ง
+บึ้ง
+บื่อ
+บุ
+บุà¸
+บุà¸à¸šà¸±à¸™
+บุà¸à¸šà¸±à¹ˆà¸™
+บุà¸à¸£à¸¸à¸
+บุà¸à¹€à¸šà¸´à¸
+บุคคล
+บุคคโล
+บุคลาà¸à¸£
+บุคลาธิษà¸à¸²à¸™
+บุคลิà¸
+บุคลิà¸à¸ à¸²à¸ž
+บุคลิà¸à¸¥à¸±à¸à¸©à¸“ะ
+บุง
+บุà¸
+บุà¸à¸Šà¸¹à¸¨à¸£à¸µ
+บุà¸à¸Šà¹ˆà¸§à¸¢
+บุà¸à¸à¸²à¸™à¸¸à¸ à¸²à¸ž
+บุà¸à¸à¸²à¸ à¸´à¸™à¸´à¸«à¸²à¸£
+บุà¸à¸à¸²à¸ à¸´à¸ªà¸±à¸‡à¸‚าร
+บุà¸à¸•à¸²à¸„
+บุà¸à¸•à¸²à¹€à¸ªà¸™à¸²à¸°
+บุà¸à¸–นอม
+บุà¸à¸—าย
+บุà¸à¸˜à¸£à¸£à¸¡
+บุà¸à¸™à¸²à¸„
+บุà¸à¸™à¹‰à¸­à¸¡
+บุà¸à¸žà¸‡à¸©à¸²
+บุà¸à¸£à¸­à¸”
+บุà¸à¸¥à¹‰à¸­à¸¡
+บุà¸à¸¨à¸´à¸£à¸´
+บุà¸à¸ªà¸¡
+บุà¸à¸ªà¹ˆà¸‡
+บุà¸à¹€à¸‚ต
+บุณฑริà¸
+บุณมี
+บุณย์
+บุตร
+บุตรธรรม
+บุตรา
+บุตรี
+บุตรีตระสุม
+บุถุชน
+บุทคล
+บุนนาค
+บุบ
+บุบบิบ
+บุปผ
+บุปผชาติ
+บุปผา
+บุปผาราม
+บุผิว
+บุพ
+บุพà¸à¸£à¸£à¸¡
+บุพà¸à¸²à¸£à¸µ
+บุพà¸à¸´à¸ˆ
+บุพชาติ
+บุพทัà¸à¸©à¸´à¸“
+บุพนิมิต
+บุพบท
+บุพพาจารย์
+บุพภาค
+บุพเพสันนิวาส
+บุพโพ
+บุฟเฟต์
+บุฟเฟท์
+บุฟเฟ่ต์
+บุรณะ
+บุรพ
+บุรพทิศ
+บุรพบท
+บุรพาจารย์
+บุระ
+บุราณ
+บุริมทิศ
+บุริมพรรษา
+บุริมสิทธิ
+บุรี
+บุรีรัมย์
+บุรุนดี
+บุรุษ
+บุษà¸à¸£
+บุษบ
+บุษบà¸
+บุษบง
+บุษบัน
+บุษบา
+บุษบามินตรา
+บุษป
+บุษย
+บุษยมาส
+บุษราคัม
+บุหงง
+บุหงัน
+บุหงา
+บุหงาประหงัน
+บุหงารำไป
+บุหรง
+บุหรี่
+บุหลัน
+บุโรทั่ง
+บุ่ง
+บุ่มบ่าม
+บุ้ง
+บุ้ย
+บุ๊ค
+บุ๊คà¸à¸´à¹‰à¸‡
+บุ๊คมาร์à¸
+บุ๊คเซ็นเตอร์
+บุ๋น
+บุ๋ม
+บูà¸à¸²
+บูคาเรสต์
+บูชนีย
+บูชา
+บูชายัà¸
+บูชิต
+บูชิโด
+บูซท์
+บูด
+บูดาเปสต์
+บูดู
+บูต
+บูติค
+บูตุง
+บูท
+บูธ
+บูม
+บูร
+บูรณ
+บูรณภาพ
+บูรณมี
+บูรณะ
+บูรณะศึà¸à¸©à¸²
+บูรณาà¸à¸²à¸£à¸£à¸§à¸¡à¸«à¸™à¹ˆà¸§à¸¢
+บูรพ
+บูรพา
+บูรพาจารย์
+บูรไน
+บูเà¸à¸•à¹Œ
+บูเช่
+บูเวต์
+บูà¹à¸¥à¸™à¹€à¸ˆà¸­à¹„รต์
+บู่
+บู้
+บู้บี้
+บู๊
+บู๊ต
+บ็อบ
+บ่
+บ่ง
+บ่น
+บ่นถึง
+บ่ม
+บ่มผิว
+บ่มมัน
+บ่วง
+บ่วน
+บ่อ
+บ่อง
+บ่อน
+บ่อน้ำ
+บ่อพลอย
+บ่อย
+บ่อà¹à¸£à¹ˆ
+บ่อไร่
+บ่ฮู้
+บ่า
+บ่าง
+บ่านี่
+บ่าย
+บ่าว
+บ้วน
+บ้อ
+บ้อง
+บ้องหู
+บ้องà¹à¸šà¹Šà¸§
+บ้องไฟ
+บ้อม
+บ้า
+บ้าง
+บ้าจี้
+บ้าน
+บ้านà¸à¸£à¸§à¸”
+บ้านค่าย
+บ้านจ
+บ้านฉาง
+บ้านดิศพงษ์
+บ้านดุง
+บ้านด่านลานหอย
+บ้านตาà¸
+บ้านตาขุน
+บ้านทรงไทย
+บ้านนา
+บ้านนาสาร
+บ้านนาเดิม
+บ้านบัวมล
+บ้านบางà¸à¸°à¸›à¸´
+บ้านบาตร
+บ้านบึง
+บ้านผื่อ
+บ้านà¸à¸²à¸‡
+บ้านม่วง
+บ้านลาด
+บ้านสมเด็จ
+บ้านสร้าง
+บ้านหนองระà¹à¸«à¸‡
+บ้านหนู
+บ้านหมอ
+บ้านหมี่
+บ้านหม้อ
+บ้านหลวง
+บ้านเขว้า
+บ้านเหลื่อม
+บ้านà¹à¸—่น
+บ้านà¹à¸žà¸‡
+บ้านà¹à¸žà¸£à¸
+บ้านà¹à¸žà¹‰à¸§
+บ้านà¹à¸«à¸¥à¸¡
+บ้านโป่ง
+บ้านโพธิ์
+บ้านโฮ่ง
+บ้านไผ่
+บ้านไร่
+บ้าบ่น
+บ้าบ๋า
+บ้าย
+บ้าระห่ำ
+บ้าหมู
+บ้าๆ
+บ๊งเบ๊ง
+บ๊วย
+บ๊อà¸à¸‹à¹Œ
+บ๊อง
+บ๊ะ
+บ๊าย
+บ๋อม
+บ๋อย
+บ๋ำ
+ปà¸
+ปà¸à¸à¸£à¸°à¸«à¸¡à¹ˆà¸­à¸¡
+ปà¸à¸„รอง
+ปà¸à¸„ลุม
+ปà¸à¸•à¸´
+ปà¸à¸›à¸´à¸”
+ปà¸à¸›à¹‰à¸­à¸‡
+ปà¸à¸£à¸“ัม
+ปà¸à¸£à¸“์
+ปà¸à¸²à¸£
+ปà¸à¸´à¸“à¸à¸°
+ปà¸à¹€à¸à¸¥à¹‰à¸²
+ปà¸à¹€à¸à¸¨
+ปง
+ปงช้าง
+ปฎล
+ปฎิà¸à¸²à¸™
+ปà¸à¸±à¸
+ปà¸à¸´
+ปà¸à¸´à¸à¸£à¸“์
+ปà¸à¸´à¸à¸£à¸£à¸¡
+ปà¸à¸´à¸à¸£à¸£à¸¡à¸ªà¸‡à¸„ราม
+ปà¸à¸´à¸à¸²à¸£
+ปà¸à¸´à¸à¸´à¸£à¸´à¸¢à¸²
+ปà¸à¸´à¸à¸¹à¸¥
+ปà¸à¸´à¸„ม
+ปà¸à¸´à¸†à¸°
+ปà¸à¸´à¸Šà¸µà¸§à¸™à¸°
+ปà¸à¸´à¸à¸à¸²
+ปà¸à¸´à¸à¸²à¸“
+ปà¸à¸´à¸—ิน
+ปà¸à¸´à¸šà¸–
+ปà¸à¸´à¸šà¸±à¸•à¸´
+ปà¸à¸´à¸šà¸±à¸ž
+ปà¸à¸´à¸›à¸—า
+ปà¸à¸´à¸›à¸±à¸à¸©à¹Œ
+ปà¸à¸´à¸›à¸±à¸™
+ปà¸à¸´à¸žà¸±à¸—ธ์
+ปà¸à¸´à¸žà¸²à¸à¸¢à¹Œ
+ปà¸à¸´à¸ à¸²à¸„
+ปà¸à¸´à¸ à¸²à¸“
+ปà¸à¸´à¸¡à¸²
+ปà¸à¸´à¸¡à¸²à¸à¸£
+ปà¸à¸´à¸¢à¸¸à¸—ธ์
+ปà¸à¸´à¸£à¸ž
+ปà¸à¸´à¸£à¸¹à¸›
+ปà¸à¸´à¸§à¸±à¸•à¸´
+ปà¸à¸´à¸§à¸²à¸•
+ปà¸à¸´à¸§à¸²à¸—
+ปà¸à¸´à¸§à¸´à¸•à¸´
+ปà¸à¸´à¸ªà¸™à¸˜à¸´
+ปà¸à¸´à¸ªà¸§à¸°
+ปà¸à¸´à¸ªà¸±à¸‡à¸‚รณ์
+ปà¸à¸´à¸ªà¸±à¸™à¸–าร
+ปà¸à¸´à¸ªà¸±à¸™à¸–าวร
+ปà¸à¸´à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œ
+ปà¸à¸´à¸«à¸²à¸£à¸´à¸¢à¹Œ
+ปà¸à¸´à¹€à¸§à¸˜
+ปà¸à¸´à¹€à¸ªà¸˜
+ปà¸à¸´à¹‚ลม
+ปà¸à¸žà¸µ
+ปà¸à¸žà¸µà¸§à¸´à¸—ยา
+ปà¸à¸¡
+ปà¸à¸¡à¸Œà¸²à¸™
+ปà¸à¸¡à¸—ัศน์
+ปà¸à¸¡à¸™à¸´à¹€à¸—ศ
+ปà¸à¸¡à¸žà¸¢à¸²à¸šà¸²à¸¥
+ปà¸à¸¡à¸¢à¸²à¸¡
+ปà¸à¸¡à¸¤à¸à¸©à¹Œ
+ปà¸à¸¡à¸§à¸±à¸¢
+ปà¸à¸¡à¸ªà¸¡à¹‚พธิ
+ปà¸à¸¡à¹€à¸—ศนา
+ปà¸à¸¡à¹‚พธิà¸à¸²à¸¥
+ปà¸à¸§à¸µ
+ปณต
+ปณาม
+ปณิธาน
+ปณิธิ
+ปณีต
+ปด
+ปติ
+ปติยัต
+ปถพี
+ปถมัง
+ปถวี
+ปทานุà¸à¸£à¸¡
+ปทีป
+ปทุม
+ปทุมทิพย์
+ปทุมธานี
+ปทุมรัตต์
+ปทุมวัน
+ปน
+ปนัดดา
+ปนาค
+ปนเป
+ปบ
+ปปัà¸à¸ˆ
+ปภัสสร
+ปม
+ปมจิต
+ปมด้อย
+ปมเขื่อง
+ปมเด่น
+ปมเปา
+ปร
+ปรà¸
+ปรà¸à¸•à¸´
+ปรง
+ปรด
+ปรตยาค
+ปรตเยà¸
+ปรน
+ปรนนิบัติ
+ปรนัย
+ปรบ
+ปรบไà¸à¹ˆ
+ปรปัà¸à¸©à¹Œ
+ปรม
+ปรมัตถ์
+ปรมาจารย์
+ปรมาณู
+ปรมาภิเษà¸
+ปรมาภิไธย
+ปรวด
+ปรวนà¹à¸›à¸£
+ปรวาที
+ปรศุ
+ปรสิต
+ปรสิตวิทยา
+ปรองดอง
+ปรอด
+ปรอดๆ
+ปรอท
+ปรอย
+ประ
+ประà¸à¸š
+ประà¸à¸¤à¸•
+ประà¸à¸¥
+ประà¸à¸§à¸”
+ประà¸à¸­à¸š
+ประà¸à¸±à¸™
+ประà¸à¸±à¸š
+ประà¸à¸²à¸¢
+ประà¸à¸²à¸¢à¸žà¸£à¸¶à¸
+ประà¸à¸²à¸£
+ประà¸à¸²à¸¨
+ประà¸à¸²à¸¨à¸™à¸µà¸¢à¸šà¸±à¸•à¸£
+ประà¸à¸²à¸¨à¸´à¸•
+ประà¸à¸³
+ประà¸à¸´à¸”
+ประà¸à¸´à¸•
+ประคด
+ประคบ
+ประคบประหงม
+ประคอง
+ประคำ
+ประคุณ
+ประจง
+ประจà¸
+ประจบ
+ประจวบ
+ประจวบคีรีขันธ์
+ประจัà¸à¸©à¹Œ
+ประจัà¸à¸©à¹Œà¸§à¸´à¸—ยา
+ประจัà¸à¸©à¹Œà¸¨à¸´à¸¥à¸›à¹Œ
+ประจัà¸
+ประจัà¸à¸šà¸²à¸™
+ประจัน
+ประจันตคาม
+ประจาà¸
+ประจาค
+ประจาน
+ประจำ
+ประจิม
+ประจุ
+ประจุไฟฟ้า
+ประจ๋อประà¹à¸ˆà¹‹
+ประชด
+ประชน
+ประชวม
+ประชวร
+ประชัน
+ประชา
+ประชาà¸à¸£
+ประชาà¸à¸£à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+ประชาคม
+ประชาชน
+ประชาชาติ
+ประชาชื่น
+ประชาทัณฑ์
+ประชาธิปà¸
+ประชาธิปัตย์
+ประชาธิปไตย
+ประชานฤมิตร
+ประชานาถ
+ประชาบดี
+ประชาบาล
+ประชาภิบาล
+ประชามติ
+ประชาระบือธรรม
+ประชาราษฎร์
+ประชาราษฎร์อุปถัมภ์
+ประชาสงเคราะห์
+ประชาสรรค์
+ประชาสัมพันธ์
+ประชาสุข
+ประชาอุทิศ
+ประชิด
+ประชี
+ประชุม
+ประชุมสุดยอด
+ประณต
+ประณม
+ประณาม
+ประณิธาน
+ประณิธิ
+ประณีต
+ประณุท
+ประดง
+ประดน
+ประดวน
+ประดอน
+ประดอย
+ประดัà¸
+ประดัà¸à¸›à¸£à¸°à¹€à¸”ิด
+ประดัง
+ประดับ
+ประดา
+ประดาà¸
+ประดาป
+ประดาษ
+ประดิ
+ประดิดประดอย
+ประดิทิน
+ประดิพัทธ์
+ประดิษà¸à¸à¸£à¸£à¸¡
+ประดิษà¸à¸²à¸™
+ประดิษà¸à¹Œ
+ประดุง
+ประดุจ
+ประดู่
+ประดู่ลาย
+ประตง
+ประตัà¸
+ประติ
+ประติมาà¸à¸£à¸£à¸¡
+ประตู
+ประถม
+ประทม
+ประทยด
+ประทวน
+ประทวนสินค้า
+ประทัà¸à¸©à¹Œ
+ประทัง
+ประทัด
+ประทับ
+ประทาน
+ประทานโทษ
+ประทาย
+ประทิน
+ประทิ่น
+ประทีป
+ประทุà¸
+ประทุà¸
+ประทุน
+ประทุม
+ประทุษ
+ประทุษร้าย
+ประท่า
+ประท้วง
+ประธาน
+ประธานาธิบดี
+ประนม
+ประนอ
+ประนอม
+ประนัง
+ประนาม
+ประนีประนอม
+ประนี้
+ประบัด
+ประบาต
+ประปราย
+ประปา
+ประพจน์
+ประพนธ์
+ประพรม
+ประพฤติ
+ประพัด
+ประพัทธ์
+ประพันธ์
+ประพันธ์ศัà¸à¸”ิ์
+ประพาต
+ประพาส
+ประพาฬ
+ประพิณ
+ประพุทธ์
+ประภพ
+ประภัสสร
+ประภา
+ประภาà¸à¸£
+ประภาคาร
+ประภาพ
+ประภามนตรี
+ประภาษ
+ประภาส
+ประมง
+ประมวà¸
+ประมวล
+ประมาณ
+ประมาท
+ประมุข
+ประมุท
+ประมูล
+ประยงค์
+ประยุà¸à¸•à¹Œ
+ประยุทธ์
+ประยุร
+ประยูร
+ประลมพ์
+ประลอง
+ประลัย
+ประลาต
+ประลาย
+ประลึง
+ประลุ
+ประลุง
+ประวรรต
+ประวรรตน์
+ประวัติ
+ประวัติà¸à¸²à¸£
+ประวัติà¸à¸²à¸£à¸“์
+ประวัติà¸à¸²à¸¥
+ประวัติศาสตร์
+ประวาต
+ประวาล
+ประวาส
+ประวิง
+ประวิช
+ประวิตร
+ประวิทย์
+ประวีณ
+ประศม
+ประศาสน์
+ประศุ
+ประสà¸
+ประสงค์
+ประสบ
+ประสบà¸à¸²à¸£à¸“์
+ประสบà¸à¸²à¸£à¸“์นิยม
+ประสพ
+ประสพสุข
+ประสม
+ประสะ
+ประสัà¸
+ประสา
+ประสาท
+ประสาทพร
+ประสาทหลอน
+ประสาน
+ประสานมิตร
+ประสาร
+ประสิทธิผล
+ประสิทธิภาพ
+ประสิทธิ์
+ประสูต
+ประสูติ
+ประหนึ่ง
+ประหมันอาหยี
+ประหม่า
+ประหยัด
+ประหลาด
+ประหล่ำ
+ประหวัด
+ประหวั่น
+ประหัด
+ประหัต
+ประหาณ
+ประหาร
+ประหาส
+ประอบ
+ประอร
+ประอึง
+ประอุà¸
+ประฮาม
+ประเคน
+ประเจà¸
+ประเจิด
+ประเจิดประเจ้อ
+ประเจียด
+ประเชิà¸
+ประเด
+ประเดิม
+ประเดิมพร
+ประเดียง
+ประเดี๋ยว
+ประเดี๋ยวประด๋าว
+ประเด็น
+ประเทศ
+ประเทศà¸à¸±à¸™à¸Šà¸™
+ประเทศราช
+ประเทศไทย
+ประเทา
+ประเทียบ
+ประเทือง
+ประเปรียว
+ประเพณี
+ประเพ้อ
+ประเภท
+ประเมิน
+ประเวณี
+ประเวศ
+ประเวศน์
+ประเสริà¸
+ประเสริà¸à¸Šà¸±à¸¢
+ประเสริà¸à¸­à¸´à¸ªà¸¥à¸²à¸¡
+ประเสหรันอาà¸à¸‡
+ประเหล
+ประเหส
+ประà¹à¸à¸
+ประà¹à¸ˆ
+ประà¹à¸”ง
+ประà¹à¸”ะ
+ประà¹à¸­à¸
+ประโคน
+ประโคนชัน
+ประโคม
+ประโดย
+ประโพธ
+ประโมง
+ประโมทย์
+ประโยค
+ประโยชน์
+ประโลม
+ประไพ
+ปรัà¸
+ปรัà¸à¸›à¸£à¸³
+ปรัà¸à¸¡à¸°
+ปรัง
+ปรัชà¸à¸²
+ปรัด
+ปรัตยุตบัน
+ปรัตยุบัน
+ปรัน
+ปรับ
+ปรับปรุง
+ปรัมปรา
+ปรัศนา
+ปรัศนี
+ปรัศว์
+ปรั่น
+ปราà¸
+ปราà¸à¸
+ปราà¸à¸à¸à¸²à¸£à¸“์
+ปราà¸à¸£à¸¡
+ปราà¸à¸¤à¸•
+ปราà¸à¸²à¸£
+ปราคภาร
+ปราคาร
+ปราง
+ปรางค์
+ปรางค์à¸à¸¹à¹ˆ
+ปราจีน
+ปราจีนบุรี
+ปราชà¸à¸²
+ปราชà¸à¹Œ
+ปราชัย
+ปราชิต
+ปราณ
+ปราณบุรี
+ปราณี
+ปราด
+ปราน
+ปรานี
+ปรานีปราศรัย
+ปราบ
+ปราบดาภิเษà¸
+ปราปต์
+ปราภพ
+ปราม
+ปรามาส
+ปราย
+ปรารถ
+ปรารถนา
+ปรารภ
+ปรารมภ์
+ปราศ
+ปราศจาà¸
+ปราศรัย
+ปราษณี
+ปราษาณ
+ปราสัย
+ปราสาท
+ปราโมช
+ปราโมทย์
+ปราโมทย์วิทยา
+ปรำ
+ปริ
+ปริà¸
+ปริà¸à¸£à¸£à¸¡
+ปริà¸à¸±à¸›
+ปริขา
+ปริคณห์
+ปริจาค
+ปริจาริà¸à¸²
+ปริชน
+ปริซึม
+ปริà¸à¸à¸²
+ปริณาม
+ปริณายà¸
+ปริต
+ปริตตะ
+ปริตร
+ปริตอเรีย
+ปริทรรศน์
+ปริทัศน์
+ปรินส์ออฟเวลส์
+ปรินายà¸
+ปรินิพพาน
+ปริบ
+ปริปาà¸
+ปริพัตร
+ปริภาษ
+ปริภูมิ
+ปริมณฑล
+ปริมัท
+ปริมาณ
+ปริมาตร
+ปริย
+ปริยรณ
+ปริยัติ
+ปริยาย
+ปริวรรต
+ปริวรรตà¸à¸£à¸£à¸¡
+ปริวัตร
+ปริวาร
+ปริวาส
+ปริศนา
+ปริศนาอัà¸à¸©à¸£à¹„ขว้
+ปริษัท
+ปริหาน
+ปริหาร
+ปริหาส
+ปริเฉท
+ปริเทพ
+ปริเยศ
+ปริเวณ
+ปริโภค
+ปริ่ม
+ปริ้นส์
+ปริ้นเตอร์
+ปรีชà¸à¸²
+ปรีชา
+ปรีดา
+ปรีดิ
+ปรีดิ์
+ปรีดี
+ปรีติ
+ปรีย
+ปรียา
+ปรี่
+ปรี๊ด
+ปรึà¸
+ปรึà¸à¸©à¸²
+ปรึง
+ปรือ
+ปรื๋อ
+ปรุ
+ปรุง
+ปรุโปร่ง
+ปรู
+ปรูด
+ปรู๊ดปร๊าด
+ปรู๊ฟ
+ปรู๋
+ปรเมนทร์
+ปรเมษà¸à¹Œ
+ปรเมหะ
+ปรโลà¸
+ปร่า
+ปร๋อ
+ปฤงคพ
+ปฤจฉา
+ปฤษฎางค์
+ปฤษà¸à¹Œ
+ปฤษà¸
+ปลà¸
+ปลง
+ปลงตà¸
+ปลงผม
+ปลงศพ
+ปลงใจ
+ปลด
+ปลดปลง
+ปลดอาวุธ
+ปลดเปลื้อง
+ปลดà¹à¸­à¸
+ปลวà¸
+ปลวà¸à¹à¸”ง
+ปลวังค
+ปลอà¸
+ปลอà¸à¸„อ
+ปลอà¸à¸«à¸¡à¸­à¸™
+ปลอด
+ปลอดทหาร
+ปลอดภัย
+ปลอบ
+ปลอบโยน
+ปลอม
+ปลอมปน
+ปละ
+ปลัà¸
+ปลัง
+ปลัด
+ปลัดขิà¸
+ปลัดเปรียง
+ปลัสมา
+ปลั่ง
+ปลั๊à¸
+ปลั๊à¸à¸­à¸´à¸™
+ปลา
+ปลาà¸
+ปลาจีน
+ปลาชา
+ปลาด
+ปลาดาว
+ปลาต
+ปลาตู้
+ปลาทอง
+ปลาบ
+ปลาบปลื้ม
+ปลาปาà¸
+ปลาà¸à¸²
+ปลาม้ำ
+ปลาย
+ปลายข
+ปลายนา
+ปลายพระยา
+ปลายมาศ
+ปลาร้า
+ปลาวาฬ
+ปลาสนาà¸à¸²à¸£
+ปลาสมา
+ปลาสเตอร์
+ปลาส้ม
+ปลาหมึà¸
+ปลาเค้า
+ปลาà¹à¸”à¸
+ปลาà¹à¸”ง
+ปลาà¹à¸™à¸¡
+ปลิง
+ปลิด
+ปลิม
+ปลิว
+ปลิโพธ
+ปลิ่ม
+ปลิ้น
+ปลิ้นปลอà¸
+ปลิ้นปล้อน
+ปลี
+ปลีà¸
+ปลื้ม
+ปลื้มมณี
+ปลุà¸
+ปลุà¸à¸›à¸¥à¹‰à¸³
+ปลุà¸à¸œà¸µ
+ปลุà¸à¹ƒà¸ˆ
+ปลูà¸
+ปลูà¸à¸ˆà¸´à¸•
+ปลูà¸à¸ˆà¸´à¸•à¸£
+ปลูà¸à¸à¸µ
+ปล่ง
+ปล่อง
+ปล่อย
+ปล้น
+ปล้อง
+ปล้อน
+ปล้ำ
+ปวà¸à¹€à¸›à¸µà¸¢à¸
+ปวง
+ปวด
+ปวดมวน
+ปวัตน
+ปวารณา
+ปวาล
+ปวาส
+ปวาฬ
+ปวิช
+ปวิตร
+ปวิธ
+ปวิเวà¸
+ปวีณ
+ปวุติ
+ปศุ
+ปศุสัตว์
+ปสพ
+ปสันน
+ปสัยห
+ปสาท
+ปสาน
+ปสาสน์
+ปสุ
+ปสุต
+ปสูติ
+ปหังส
+ปหาน
+ปหาร
+ปหาส
+ปอ
+ปอà¸
+ปอà¸à¸¥à¸­à¸
+ปอง
+ปองรัà¸
+ปอด
+ปอดบวม
+ปอดลอย
+ปอดà¹à¸›à¸”
+ปอดà¹à¸«à¸
+ปอน
+ปอนซิน
+ปอนด์
+ปอบ
+ปอม
+ปอมเปอี
+ปอย
+ปอร์ต
+ปอร์ตหลุยส์
+ปอร์โตà¹à¸›à¸£à¸‡à¸‹à¹Œ
+ปอร์โตโนโว
+ปอเนาะ
+ปะ
+ปะà¸à¸™
+ปะà¸à¸š
+ปะà¸à¸±à¸‡
+ปะà¸à¸²à¸£à¸±à¸‡
+ปะà¸à¸³
+ปะขาว
+ปะตาปา
+ปะตาระà¸à¸²à¸«à¸£à¸²
+ปะทะ
+ปะทิว
+ปะทุ
+ปะทุน
+ปะนาเระ
+ปะบุà¸
+ปะปน
+ปะปัง
+ปะป๋า
+ปะมง
+ปะราลี
+ปะรำ
+ปะลอม
+ปะลิส
+ปะว่า
+ปะหงับ
+ปะหนัน
+ปะหัง
+ปะเตะ
+ปะเลง
+ปะเหลาะ
+ปะเหลียน
+ปะà¹à¸¥à¹ˆà¸¡
+ปะโลง
+ปัà¸
+ปัà¸à¸à¸´à¹ˆà¸‡
+ปัà¸à¸‚
+ปัà¸à¸˜à¸‡à¸Šà¸±à¸¢
+ปัà¸à¸›à¸±à¸™
+ปัà¸à¸›à¸³
+ปัà¸à¸©
+ปัà¸à¸©à¸à¸©à¸±à¸¢
+ปัà¸à¸©à¸„ม
+ปัà¸à¸©à¸˜à¸£
+ปัà¸à¸©à¸²
+ปัà¸à¸©à¸²à¸§à¸ªà¸²à¸™
+ปัà¸à¸©à¸´à¸™
+ปัà¸à¸©à¸µ
+ปัà¸à¸©à¹Œ
+ปัà¸à¹€à¸›à¹‰à¸²
+ปัà¸à¹ƒà¸ˆ
+ปัคหะ
+ปัง
+ปังตอ
+ปังสุà¸à¸¸à¸¥
+ปังสุ์
+ปัจจฉิม
+ปัจจันตคาม
+ปัจจันตชนบท
+ปัจจันตประเทศ
+ปัจจันต์
+ปัจจัย
+ปัจจามิตร
+ปัจจุบัน
+ปัจจุส
+ปัจจุสมัย
+ปัจฉา
+ปัจฉิม
+ปัจฉิมลิขิต
+ปัจฉิมวาจา
+ปัจนึà¸
+ปัจเจà¸
+ปัจเจà¸à¸šà¸¸à¸„คล
+ปัชชร
+ปัชชุน
+ปัà¸à¸ˆ
+ปัà¸à¸ˆà¸
+ปัà¸à¸ˆà¸—รัพย์
+ปัà¸à¸ˆà¸¡
+ปัà¸à¸ˆà¸¡à¸´à¸•à¸£
+ปัà¸à¸ˆà¸¡à¸µ
+ปัà¸à¸ˆà¸§à¸±à¸„คีย์
+ปัà¸à¸Šà¸²
+ปัà¸à¸à¸²
+ปัà¸à¸à¸²à¸§à¸¸à¸’ิà¸à¸£
+ปัà¸à¸à¸²à¸ª
+ปัà¸à¸à¸²à¸­à¸´à¸™à¸—รา
+ปัà¸à¸à¸²à¸­à¹ˆà¸­à¸™
+ปัà¸à¸«à¸²
+ปัà¸
+ปัà¸à¸™à¸°
+ปัà¸à¸§à¸´à¸à¸£à¸“์
+ปัณณะ
+ปัณณาส
+ปัณรส
+ปัณรสม
+ปัณรสี
+ปัณหิ
+ปัด
+ปัดขา
+ปัดสวะ
+ปัดเศษ
+ปัดไถม
+ปัดๆ
+ปัตคาด
+ปัตตะ
+ปัตตานี
+ปัตตาเวีย
+ปัตติ
+ปัตติà¸
+ปัตถร
+ปัตถะ
+ปัตนิ
+ปัตมอส
+ปัตยัย
+ปัถพี
+ปัถวี
+ปัทม
+ปัทมะ
+ปัทมา
+ปัทม์
+ปัน
+ปันจุเหร็จ
+ปันตาร์
+ปันผล
+ปันหยี
+ปับ
+ปัปผาสะ
+ปัยà¸à¸°
+ปัยà¸à¸²
+ปัยยิà¸à¸²
+ปัว
+ปัศจิม
+ปัศตัน
+ปัศตู
+ปัสสาวะ
+ปัสสาสะ
+ปั่น
+ปั่นไฟ
+ปั่ว
+ปั้น
+ปั้นจั่น
+ปั้นยศ
+ปั้นลม
+ปั้นเหน่ง
+ปั้นà¹à¸¡à¹‰à¸™
+ปั๊บ
+ปั๊ม
+ปั๋ง
+ปา
+ปาà¸
+ปาà¸à¸à¸š
+ปาà¸à¸à¸²
+ปาà¸à¸‚ม
+ปาà¸à¸‚อ
+ปาà¸à¸„ม
+ปาà¸à¸„ลองสาน
+ปาà¸à¸„อà¸
+ปาà¸à¸„ัน
+ปาà¸à¸„ำ
+ปาà¸à¸„ีบ
+ปาà¸à¸ˆà¸­à¸š
+ปาà¸à¸ˆà¸±à¸”
+ปาà¸à¸Šà¸¡
+ปาà¸à¸Šà¹ˆà¸­à¸‡
+ปาà¸à¸—่อ
+ปาà¸à¸™à¸
+ปาà¸à¸™à¹‰à¸³
+ปาà¸à¸™à¹‰à¸³à¸§à¸´à¸—ยาคม
+ปาà¸à¸šà¸­à¸™
+ปาà¸à¸šà¹ˆà¸­
+ปาà¸à¸›à¸¥à¸²
+ปาà¸à¸žà¸™à¸±à¸‡
+ปาà¸à¸žà¸¥à¸µ
+ปาà¸à¸žà¸°à¸¢à¸¹à¸™
+ปาà¸à¸¡à¸²à¸
+ปาà¸à¸£à¸²à¸
+ปาà¸à¸§à¸°
+ปาà¸à¸±à¸™
+ปาà¸à¸µà¸ªà¸–าน
+ปาà¸à¹€à¸à¸£à¹‡à¸”
+ปาà¸à¹€à¸šà¸²
+ปาà¸à¹à¸•à¸£
+ปาà¸à¹à¸šà¸°
+ปาà¸à¹ƒà¸•à¹‰
+ปาà¸à¹„à¸à¹ˆ
+ปาà¸à¹„ม้
+ปาง
+ปาจนะ
+ปาจิตตีย์
+ปาจีน
+ปาà¸à¸¥à¸´
+ปาà¸à¸´à¸šà¸—
+ปาà¸à¸´à¸«à¸²à¸£à¸´à¸¢à¹Œ
+ปาà¸
+ปาà¸à¸
+ปาà¸à¸à¸–า
+ปาณ
+ปาณà¸
+ปาณà¸à¸Šà¸²à¸•à¸´
+ปาณนาศ
+ปาณภูต
+ปาณสาร
+ปาณะ
+ปาณา
+ปาณาติบาต
+ปาณิ
+ปาณิดล
+ปาณี
+ปาด
+ปาดหาว
+ปาติโมà¸à¸‚์
+ปาตี
+ปาท
+ปาทป
+ปาทังà¸à¸²
+ปาทาน
+ปาทุà¸à¸²
+ปาท่องโà¸à¹‹
+ปาน
+ปานจิตต์อุทิศ
+ปานดง
+ปานทิพย์
+ปานนี้
+ปานะ
+ปานามา
+ปานามาซิตี
+ปานิเยน
+ปานีย
+ปาป
+ปาปมุต
+ปาปอหยีสังฆาตา
+ปาปัว
+ปาปิรุส
+ปาปีติ
+ปาพจน์
+ปาม
+ปาย
+ปายาส
+ปาร
+ปารคู
+ปารมี
+ปารษมี
+ปารอส
+ปาราà¸à¸§à¸±à¸¢
+ปาราชิà¸
+ปารามาริโบ
+ปาริฉัตร
+ปาริชาต
+ปาริชาติ
+ปารีส
+ปารเมศ
+ปาร์ค
+ปาร์ตี้
+ปาร์รี
+ปาร์เà¸à¸•à¹Œ
+ปาล
+ปาลาวัน
+ปาลิไลยà¸à¹Œ
+ปาลี
+ปาล์ม
+ปาว
+ปาวà¸
+ปาวจนะ
+ปาวาร
+ปาวๆ
+ปาษาณ
+ปาส
+ปาสาณ
+ปาหนัน
+ปาหี่
+ปาหุณ
+ปาเà¸à¹‰
+ปาเต๊ะ
+ปาเลสไตน์
+ปาเสลไตน์
+ปาโมà¸à¸‚์
+ปาไน
+ปำ
+ปิà¸à¸™à¸´à¸
+ปิà¸à¸¡à¸µà¹ˆ
+ปิà¸à¸­à¸±à¸ž
+ปิคนิค
+ปิคอัพ
+ปิงคล
+ปิงปอง
+ปิฎà¸
+ปิà¸à¸
+ปิà¸à¸à¸°
+ปิà¸à¸´
+ปิณฑะ
+ปิด
+ปิดฉาà¸
+ปิดตาย
+ปิดบัง
+ปิดปาà¸
+ปิดเบา
+ปิตตะ
+ปิตา
+ปิตามหัยà¸à¸²
+ปิติ
+ปิตุ
+ปิตุฆาต
+ปิตุจฉา
+ปิตุภูมิ
+ปิตุล
+ปิตุลา
+ปินาสะ
+ปิปผลี
+ปิย
+ปิยมิตร
+ปิยะ
+ปิยังคุ
+ปิลันธน์
+ปิศาจ
+ปิสัง
+ปิหà¸
+ปิหà¸à¸°
+ปิà¹à¸­à¸£à¹Œ
+ปิโตรเคมี
+ปิโตรเลียม
+ปิโยรส
+ปิไส
+ปิ่น
+ปิ่นตอ
+ปิ่นประภาคม
+ปิ่นโต
+ปิ่ม
+ปิ้ง
+ปิ้ม
+ปิ๋ว
+ปี
+ปีà¸
+ปีà¸à¸à¸²
+ปีà¸à¸™à¸
+ปีà¸à¸¥à¸²à¸¢
+ปีà¸à¸«à¸±à¸
+ปีà¸à¹„ม้
+ปีงบประมาณ
+ปีà¸à¸°
+ปีติ
+ปีน
+ปีนัง
+ปีบ
+ปีปà¸à¸´à¸—ิน
+ปีมะโว้
+ปีลà¸à¸°
+ปีศาจ
+ปีฬ
+ปีฬà¸
+ปีฬà¸à¸°
+ปีฬà¸à¸²
+ปีà¹à¸ªà¸‡
+ปี่
+ปี่ไฉน
+ปี้
+ปี๊ด
+ปี๊บ
+ปี๋
+ปึà¸
+ปึง
+ปึงปัง
+ปึ่ง
+ปึ่งชา
+ปึ้ด
+ปึ๋ง
+ปืดปึง
+ปืน
+ปืนยา
+ปือ
+ปื้น
+ปื้อ
+ปื๋อ
+ปุ
+ปุà¸
+ปุà¸à¸›à¸¸à¸¢
+ปุคละ
+ปุงคพ
+ปุจฉา
+ปุชฉา
+ปุà¸
+ปุณฑริà¸
+ปุด
+ปุตตะ
+ปุถุชน
+ปุนนาค
+ปุนภพ
+ปุบ
+ปุบปับ
+ปุปผะ
+ปุปะ
+ปุพพะ
+ปุม
+ปุย
+ปุร
+ปุรณะ
+ปุรพ
+ปุราณ
+ปุราณะ
+ปุลู
+ปุฬวะ
+ปุà¹à¸«à¸¥à¸°
+ปุโรหิต
+ปุ่ม
+ปุ้งà¸à¸µà¹‹
+ปุ้ม
+ปุ้ย
+ปุ๊
+ปุ๊บ
+ปุ๋ม
+ปุ๋ย
+ปู
+ปูขน
+ปูจ๋า
+ปูชà¸à¸°
+ปูชนีย
+ปูชนียบุคคล
+ปูชนียวัตถุ
+ปูชา
+ปูชิต
+ปูด
+ปูดาว
+ปูติ
+ปูน
+ปูนซีเมนต์
+ปูนปลาสเตอร์
+ปูนา
+ปูนเปียà¸
+ปูม
+ปูม้า
+ปูระ
+ปูลาย
+ปูลู
+ปูลูà¸à¸­à¸‡à¸”อร์
+ปูวา
+ปูเล
+ปู่
+ปู่ครู
+ปู่ทวด
+ปู่ทองใบ
+ปู่ย่า
+ปู่เจ้าสมิงพราย
+ปู้ยี่ปู้ยำ
+ปู้ยี้ปู้ยำ
+ปเวณี
+ปเวส
+ปโà¸à¸à¸´
+ปโย
+ปโยธร
+ปโยธรา
+ปโยราศ
+ป็อป
+ป็อปคอร์น
+ป่ง
+ป่น
+ป่นปี้
+ป่วง
+ป่วน
+ป่วนปั่น
+ป่วย
+ป่อง
+ป่า
+ป่าง
+ป่าช้า
+ป่าซาง
+ป่าดง
+ป่าดิบ
+ป่าติ้ว
+ป่าน
+ป่านคม
+ป่าป่ง
+ป่าย
+ป่าว
+ป่าสูง
+ป่าเà¸à¸”
+ป่าà¹à¸”ง
+ป่าà¹à¸”ด
+ป่าà¹à¸žà¸°
+ป่าโมà¸
+ป่าใส
+ป้วน
+ป้วนเปี้ยน
+ป้อ
+ป้อง
+ป้องà¸à¸±à¸™
+ป้อน
+ป้อม
+ป้อมปราบ
+ป้อมปราบศัตรูพ่าย
+ป้อย
+ป้อยอ
+ป้อà¹à¸›à¹‰
+ป้า
+ป้าง
+ป้าน
+ป้านบ
+ป้านย
+ป้านล
+ป้านลม
+ป้าบ
+ป้าย
+ป้ายสี
+ป้ำ
+ป๊อà¸
+ป๊อà¸à¸à¸µà¹‰
+ป๊อปปี้
+ป๊ะป๋า
+ป๊าบ
+ป๊าว
+ป๋อ
+ป๋อม
+ป๋า
+ผà¸
+ผà¸à¸œà¸‡à¸
+ผà¸à¸œà¸±à¸™
+ผà¸à¸œà¸´à¸™
+ผà¸à¸²
+ผà¸à¸²à¸¢
+ผà¸à¸²à¸£à¸²à¸¢
+ผง
+ผงà¸
+ผงขาว
+ผงคลี
+ผงชูรส
+ผงฟู
+ผงอบ
+ผงะ
+ผงาด
+ผง่าน
+ผจง
+ผจà¸
+ผจัà¸
+ผจาน
+ผชุม
+ผณิน
+ผณินทร
+ผณิศวร
+ผด
+ผดุง
+ผดุงครรภ์
+ผทม
+ผนวà¸
+ผนวช
+ผนัง
+ผนิด
+ผนึà¸
+ผม
+ผมซิงเà¸à¸´à¸¥
+ผมทัด
+ผมนาง
+ผมบ๊อบ
+ผมปีà¸
+ผมม้า
+ผมเป๋
+ผมโป่ง
+ผมไฟ
+ผยอง
+ผรณ
+ผรสุ
+ผริต
+ผรุพà¸
+ผรุส
+ผรุสวาท
+ผล
+ผลà¸
+ผลคุน
+ผลคุนี
+ผลง
+ผลผลิต
+ผลพลอยได้
+ผลพัฒนา
+ผลลัพธ์
+ผลอ
+ผละ
+ผลัà¸
+ผลัà¸à¹„ส
+ผลัด
+ผลับ
+ผลัวะ
+ผลา
+ผลาà¸
+ผลานิสงส์
+ผลาผล
+ผลาหาร
+ผลิ
+ผลิà¸
+ผลิต
+ผลิตà¸à¸£à¸£à¸¡
+ผลิตผล
+ผลิตภัณฑ์
+ผลิน
+ผลี
+ผลีผลาม
+ผลึà¸
+ผลึ่ง
+ผลือ
+ผลุ
+ผลุง
+ผลุด
+ผลุน
+ผลุบ
+ผลุย
+ผลู
+ผลูบด
+ผลูà¹à¸šà¸
+ผล็อง
+ผล็อย
+ผวน
+ผวนผัน
+ผวย
+ผวา
+ผวาà¸à¸­à¸”
+ผสม
+ผสมผเส
+ผสมสุขราษฎร
+ผสมเทียม
+ผสมโรง
+ผสาน
+ผสาย
+ผสาร
+ผอà¸
+ผอง
+ผอด
+ผอบ
+ผอม
+ผอมโซ
+ผอวด
+ผอูน
+ผะ
+ผะดา
+ผะสา
+ผะออบ
+ผะà¹à¸„ง
+ผัà¸
+ผัà¸à¸‚วง
+ผัà¸à¸Šà¸µ
+ผัà¸à¸ªà¸²à¸š
+ผัà¸à¹‚ฉม
+ผัà¸à¹„à¸
+ผัà¸à¹„ผ่
+ผัà¸à¹„หม
+ผัà¸à¹„ห่
+ผัคคุณ
+ผัง
+ผังเมือง
+ผัด
+ผัดผัน
+ผัดผ่อน
+ผัน
+ผันผวน
+ผันผาด
+ผันผาย
+ผันวิชาà¸
+ผันà¹à¸›à¸£
+ผับ
+ผัว
+ผัวะ
+ผัสส
+ผา
+ผาà¸
+ผาง
+ผาณิต
+ผาด
+ผาดผัง
+ผาดำ
+ผาดโผน
+ผาติ
+ผาม
+ผาย
+ผายปอด
+ผายผัง
+ผายผัน
+ผายลม
+ผาล
+ผาลคุน
+ผาลา
+ผาสุà¸
+ผาสุข
+ผาหอม
+ผำ
+ผิ
+ผิง
+ผิด
+ผิดà¸
+ผิดตา
+ผิดท่า
+ผิดนัà¸
+ผิดนัด
+ผิดน้ำ
+ผิดผี
+ผิดหู
+ผิดà¹à¸œà¸
+ผิดใจ
+ผิต
+ผิน
+ผิว
+ผิวน้ำ
+ผิวบาง
+ผิวปาà¸
+ผิวหนัง
+ผิว่า
+ผี
+ผีดิบ
+ผีต
+ผีบุà¸
+ผีฟ้า
+ผีหลอà¸
+ผีอำ
+ผีเสื้อ
+ผี้ว์
+ผึง
+ผึ่ง
+ผึ่งผาย
+ผึ้ง
+ผืน
+ผื่น
+ผุ
+ผุด
+ผุดผาด
+ผุดผาย
+ผุดผ่อง
+ผุยผง
+ผูà¸
+ผูà¸à¸‚าด
+ผูà¸à¸”วง
+ผูà¸à¸”อà¸
+ผูà¸à¸žà¸±à¸™
+ผูà¸à¸¡à¸±à¸”
+ผูà¸à¸«à¸¹
+ผู้
+ผู้คน
+ผู้ชาย
+ผู้à¸à¸²à¸“
+ผู้ดี
+ผู้ทรง
+ผู้นำ
+ผู้รับ
+ผู้ร้าย
+ผู้ใหà¸à¹ˆ
+ผู้ไทย
+ผเดิน
+ผ็อย
+ผ่อง
+ผ่องพรรณ
+ผ่องพลอย
+ผ่องà¹à¸œà¹‰à¸§
+ผ่องใส
+ผ่อน
+ผ่อย
+ผ่า
+ผ่าตัด
+ผ่าน
+ผ่าย
+ผ่ายผอม
+ผ่าว
+ผ่าเผย
+ผ่าà¹à¸›à¸”
+ผ้อวโสภา
+ผ้า
+ผ้าดำ
+ผ้าดิบ
+ผ้าตา
+ผ้าถุง
+ผ้าปูที่นอน
+ผ้าป่า
+ผ้าผวย
+ผ้าย
+ผ้ายาง
+ผ้าลาย
+ผ้าห่ม
+ผ้าอาบ
+ผ้าฮาด
+ผ้าเช็ดตัว
+ผ้าเช็ดหน้า
+ผ้าเทศ
+ผ้าà¹à¸”ง
+ผ้าà¹à¸–บ
+ผ้าà¹à¸à¸‡
+ผ้าใบ
+ผ้ำๆ
+à¸à¸™
+à¸à¸™à¸‹à¸¹à¹ˆ
+à¸à¸™à¸—อง
+à¸à¸™à¸—องนิเวศน์
+à¸à¸™à¹€à¸—ียม
+à¸à¸£à¸±à¹ˆà¸‡
+à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª
+à¸à¸£à¸±à¹ˆà¸™
+à¸à¸­à¸¢
+à¸à¸­à¸¢à¸—อง
+à¸à¸±à¸
+à¸à¸±à¸à¸šà¸±à¸§
+à¸à¸±à¸à¸¢à¸²à¸§
+à¸à¸±à¸à¹à¸„
+à¸à¸±à¸à¹ƒà¸à¹ˆ
+à¸à¸±à¸‡
+à¸à¸±à¸‡à¸£à¸­à¸¢
+à¸à¸±à¸‡à¸£à¸¹à¸›
+à¸à¸±à¸‡à¸«à¸±à¸§
+à¸à¸±à¸‡à¹ƒà¸ˆ
+à¸à¸±à¸”
+à¸à¸±à¸™
+à¸à¸±à¹ˆà¸‡
+à¸à¸±à¹ˆà¸‡à¸à¸²
+à¸à¸±à¹ˆà¸‡à¹ƒà¸•à¹‰
+à¸à¸²
+à¸à¸²à¸
+à¸à¸²à¸à¸à¸­à¸‡
+à¸à¸²à¸à¸à¸²à¸¢
+à¸à¸²à¸à¸•à¸±à¸§
+à¸à¸²à¸à¸œà¸µ
+à¸à¸²à¸à¸à¸±à¸‡
+à¸à¸²à¸à¸ªà¸¹à¹ˆ
+à¸à¸²à¸à¹„ข้
+à¸à¸²à¸‡
+à¸à¸²à¸Šà¸µ
+à¸à¸²à¸”
+à¸à¸²à¸™
+à¸à¸²à¸¢
+à¸à¸²à¸¥à¸°à¸¡à¸µ
+à¸à¸²à¹à¸à¸”
+à¸à¸²à¹„หล
+à¸à¸´à¹ˆà¸™
+à¸à¸µ
+à¸à¸µà¸
+à¸à¸µà¸à¸²à¸¬
+à¸à¸µà¸ˆà¸±à¸à¸£
+à¸à¸µà¸”าษ
+à¸à¸µà¸”ิบ
+à¸à¸µà¸›à¸²à¸
+à¸à¸µà¸žà¸²à¸¢
+à¸à¸µà¸¡à¸·à¸­
+à¸à¸µà¸«à¸¡à¸­à¸š
+à¸à¸µà¹€à¸—้า
+à¸à¸µà¹€à¸¢à¹‡à¸š
+à¸à¸µà¹ˆ
+à¸à¸¶à¸
+à¸à¸¶à¸à¸‡à¸²à¸™
+à¸à¸¶à¸à¸à¸™
+à¸à¸¶à¸à¸ªà¸­à¸™
+à¸à¸¶à¸à¸«à¸±à¸”
+à¸à¸·à¸”
+à¸à¸·à¸™
+à¸à¸¸à¹ˆà¸™
+à¸à¸¹à¸‡
+à¸à¸¹à¸‡à¸šà¸´à¸™
+à¸à¹ˆà¸­
+à¸à¹ˆà¸²
+à¸à¹ˆà¸²à¸à¸·à¸™
+à¸à¹ˆà¸²à¸Ÿà¸±à¸™
+à¸à¹ˆà¸²à¸¡à¸·à¸­
+à¸à¹ˆà¸²à¸¢
+à¸à¹ˆà¸²à¸¢à¹ƒà¸™
+à¸à¹ˆà¸²à¹€à¸—้า
+à¸à¹‰à¸²
+à¸à¹‰à¸²à¸¢
+à¸à¹‰à¸²à¸¢à¸„ำ
+à¸à¹‰à¸²à¸¢à¸œà¸µ
+พà¸
+พà¸à¸ˆà¸£
+พà¸à¸™à¸¸à¹ˆà¸™
+พà¸à¸žà¹ˆà¸²à¸¢
+พà¸à¸¥à¸¡
+พà¸à¸«à¸´à¸™
+พà¸à¸²
+พà¸à¸¸à¸£à¸°
+พà¸à¸¸à¸¥
+พง
+พงพวย
+พงพี
+พงศ
+พงศà¸à¸£
+พงศธร
+พงศา
+พงศาวดาร
+พงศ์
+พงษ์สวัสดิ์
+พงษ์สังข์
+พงษ์เขต
+พงษ์เพชรดำเนิน
+พงษ์เพชรนิเวศน์
+พงษ์เวช
+พงษ์เวชอนุสรณ์
+พงไพร
+พจน
+พจนา
+พจนานุà¸à¸£à¸¡
+พจนารถ
+พจนีย์
+พจน์
+พจมาน
+พจี
+พชระ
+พà¸à¸²
+พà¸à¸²à¸“
+พà¸à¸²à¸™à¸²à¸„
+พà¸à¸²à¸¢à¸²
+พà¸à¸²à¸¥à¸­
+พà¸à¸²à¹‚ศà¸
+พà¸à¸²à¹„ท
+พà¸à¸²à¹„ทย
+พà¸à¸²à¹„ฟ
+พà¸à¸²à¹„ม้
+พณิช
+พณิชยà¸à¸²à¸£
+พณิชย์
+พด
+พดà¸à¸£à¸´à¸Š
+พดด้วง
+พธู
+พน
+พนจร
+พนจรà¸
+พนชีวี
+พนธารา
+พนม
+พนมทวน
+พนมศà¸
+พนมศพ
+พนมสารคาม
+พนมเปà¸
+พนมไทร
+พนวาสี
+พนสณฑ์
+พนอง
+พนอม
+พนัà¸
+พนัà¸à¸‡à¸²à¸™
+พนัง
+พนัน
+พนันดร
+พนัส
+พนัสดม
+พนัสนิคม
+พนา
+พนาด
+พนาดร
+พนาดอน
+พนาธวา
+พนานดร
+พนาย
+พนาราม
+พนาลัย
+พนาลี
+พนาวา
+พนาวาส
+พนาศรม
+พนาเวศ
+พนิดา
+พนิต
+พนียà¸
+พนโคจร
+พบ
+พบปะ
+พบพระ
+พบพาน
+พบู
+พบเห็น
+พม่า
+พยช
+พยชน์
+พยนต์
+พยศ
+พยัà¸
+พยัà¸à¸žà¹€à¸¢à¸´à¸”
+พยัคฆ
+พยัคฆภูมิพิสัย
+พยัคฆา
+พยัคฆิน
+พยัคฆินทร์
+พยัคฆี
+พยัคฆ์
+พยัชน์
+พยัà¸à¸Šà¸™à¸°
+พยัต
+พยับ
+พยับà¸à¸™
+พยาà¸à¸£à¸“์
+พยาฆร์
+พยางค์
+พยาธิ
+พยาน
+พยาบาท
+พยาบาล
+พยาม
+พยายาม
+พยาล
+พยุ
+พยุง
+พยุห
+พยุหบาตร
+พยุหยาตรา
+พยุหร
+พยุหะ
+พยุหะคีรี
+พยุหเสนา
+พยุหà¹à¸ªà¸™à¸¢à¸²à¸à¸£
+พยุหโยธา
+พยู่ห์
+พร
+พรà¸
+พรต
+พรพัฒนา
+พรพิพัฒน์
+พรม
+พรมคด
+พรมà¹à¸”น
+พรรค
+พรรคà¸à¸²à¸£à¹€à¸¡à¸·à¸­à¸‡
+พรรค์
+พรรณ
+พรรณนา
+พรรณา
+พรรณานิคม
+พรรณี
+พรรดึà¸
+พรรลาย
+พรรษ
+พรรษา
+พรรเหา
+พรวด
+พรวดพราด
+พรวน
+พรสวรรค์
+พรหม
+พรหมคีรี
+พรหมจรรย์
+พรหมจัà¸à¸£
+พรหมจาริณี
+พรหมจารี
+พรหมบถ
+พรหมบท
+พรหมบุรี
+พรหมพิราม
+พรหมศร
+พรหมา
+พรอà¸
+พรอด
+พระ
+พระà¸à¸£
+พระà¸à¸¥à¸”
+พระà¸à¸±à¸ˆà¸‰à¸°
+พระà¸à¸³à¹‚บล
+พระครู
+พระคุณ
+พระจอมเà¸à¸¥à¹‰à¸²
+พระจันทร์
+พระฉาย
+พระชงฆ์
+พระชนมพรรษา
+พระชนม์
+พระชานุ
+พระฑาà¸à¸°
+พระฑาฒะ
+พระทอง
+พระทัย
+พระที่นั่ง
+พระนคร
+พระนครศรีอยุธยา
+พระนครเหนือ
+พระนม
+พระนอม
+พระนาง
+พระนาด
+พระนาม
+พระนาย
+พระนาสิà¸
+พระบà¸
+พระบท
+พระบรม
+พระบาท
+พระประà¹à¸”ง
+พระปั้นเหน่ง
+พระปิ่น
+พระปีลà¸à¸°
+พระพร
+พระพาหา
+พระพาหุ
+พระพิพิธ
+พระพิโรธ
+พระพุทธ
+พระพุทธบาท
+พระพุทธเจ้า
+พระภูมิ
+พระมงà¸à¸¸à¸Žà¹€à¸à¸¥à¹‰à¸²
+พระมารดา
+พระมุà¸à¸´
+พระยา
+พระยาทำ
+พระยาสุเรนทร์
+พระยืน
+พระรอง
+พระราชดำเนิน
+พระราชทาน
+พระราชวัง
+พระราชวิริยาภรณ์
+พระราม
+พระรูป
+พระร่วง
+พระร่วงประสิทธิ์
+พระลบ
+พระลือ
+พระล่วม
+พระสุเมรุ
+พระหนุ
+พระหฤทัย
+พระหัตถ์
+พระหา
+พระหาม
+พระหิด
+พระองค์
+พระอังคาร
+พระอัà¸à¸´
+พระอาทิตย์
+พระอินทร์
+พระอูรุ
+พระเจ้า
+พระเจ้าตาà¸à¸ªà¸´à¸™
+พระเจ้าอยู่หัว
+พระเชตุพน
+พระเนตร
+พระเพลา
+พระเมโท
+พระเวท
+พระเอà¸
+พระà¹à¸—่น
+พระà¹à¸œà¸‡
+พระà¹à¸¡à¹ˆà¸¡à¸²à¸£à¸µ
+พระà¹à¸¡à¹ˆà¸ªà¸‡à¹€à¸„ราะห์
+พระà¹à¸§à¸§
+พระà¹à¸ªà¸‡
+พระโขนง
+พระโสต
+พระโอษà¸à¹Œ
+พรัà¸à¸žà¸£à¹‰à¸­à¸¡
+พรังà¸à¹Œ
+พรัด
+พรับ
+พรั่ง
+พรั่น
+พราà¸
+พราง
+พราด
+พราน
+พรานà¸à¸£à¸°à¸•à¹ˆà¸²à¸¢
+พรานนà¸
+พราย
+พราว
+พราหมณ์
+พราหมี
+พรำ
+พริà¸
+พรินเตอร์
+พริบ
+พริบิลอฟ
+พริ้ง
+พริ้ม
+พริ้ว
+พรีฟิà¸à¸‹à¹Œ
+พรีห์ไนต์
+พรีเซ็นเตอร์
+พรีเซ้นท์
+พรีเพด
+พรีเมียม
+พรีเมียร์
+พรีà¹à¸žà¸£
+พรีโหลด
+พรึง
+พรึน
+พรึบ
+พรืด
+พรุ
+พรุà¸
+พรุน
+พรุ่ง
+พรู
+พรูด
+พรูสไทต์
+พรเจริà¸
+พร็อบเบล็ม
+พร็อมมิส
+พร่อง
+พร่อมพร้อ
+พร่อย
+พร่า
+พร่าง
+พร่ำ
+พร่ำเพรื่อ
+พร่ำเพ้อ
+พร้อง
+พร้อม
+พร้อมพรรณ
+พร้อมพรัà¸
+พร้อมมิตร
+พร้อมใจ
+พร้อย
+พร้า
+พร้าว
+พร้ำ
+พฤà¸à¸©
+พฤà¸à¸©à¸Šà¸²à¸•à¸´
+พฤà¸à¸©à¸—ล
+พฤà¸à¸©à¸£à¸²à¸Š
+พฤà¸à¸©à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+พฤà¸à¸©à¸²
+พฤà¸à¸©à¹€à¸—วดา
+พฤà¸à¸©à¹Œ
+พฤฒ
+พฤฒา
+พฤฒาจารย์
+พฤฒิ
+พฤต
+พฤติ
+พฤติà¸à¸£à¸£à¸¡
+พฤติà¸à¸²à¸£à¸“์
+พฤตินัย
+พฤทธิ์
+พฤทธ์
+พฤนต์
+พฤนท์
+พฤภูษณ
+พฤศจิà¸
+พฤศจิà¸à¸²à¸¢à¸™
+พฤษภ
+พฤษภา
+พฤษภาคม
+พฤหัส
+พฤหัสบดี
+พล
+พลà¸à¸²à¸¢
+พลà¸à¸²à¸£
+พลความ
+พลบ
+พลบค่ำ
+พลพรรค
+พลร่ม
+พลว
+พลวà¸
+พลวง
+พลวัต
+พลวัตร
+พลวัติ
+พลศาสตร์
+พลศึà¸à¸©à¸²
+พลอ
+พลอง
+พลอด
+พลอน
+พลอมà¹à¸žà¸¥à¸¡
+พลอย
+พละ
+พละพลา
+พลัง
+พลังงาน
+พลังงานจลน์
+พลังจิต
+พลัด
+พลัดพราà¸
+พลัน
+พลับ
+พลับพลา
+พลับพลาไชย
+พลับพลึง
+พลัส
+พลั่à¸
+พลั่ง
+พลั่ว
+พลั้ง
+พลาà¸à¸£
+พลาง
+พลาซ่า
+พลาà¸
+พลาด
+พลาธิà¸à¸²à¸£
+พลานามัย
+พลานึà¸
+พลาม
+พลาย
+พลายวู้ด
+พลาสติà¸
+พลาสมา
+พลาหà¸
+พลำ
+พลำภัง
+พลิ
+พลิà¸
+พลิà¸à¸¨à¸ž
+พลิพัท
+พลิ้ว
+พลี
+พลีท
+พลีมุข
+พลีส
+พลีโอนาสต์
+พลุ
+พลุà¸
+พลุà¸à¸žà¸¥à¹ˆà¸²à¸™
+พลุ่à¸
+พลุ่ง
+พลุ่ย
+พลุ้น
+พลุ้ย
+พลู
+พลูคาว
+พลูต้น
+พลูà¹à¸
+พลูโต
+พลูโทเนียม
+พลเทพ
+พลเมือง
+พลเรือน
+พลโลà¸
+พล่อย
+พล่า
+พล่าน
+พล่าม
+พล้อ
+พล้อต
+พล้ำ
+พวà¸
+พวง
+พวงทอง
+พวงหยà¸
+พวงหรีด
+พวงà¹à¸ªà¸”
+พวน
+พวย
+พวยน้ำ
+พสà¸
+พสุ
+พสุธา
+พสุมดี
+พหล
+พหลฯ
+พหลโยธิน
+พหุ
+พหุคูณ
+พหุภาคี
+พหุล
+พหู
+พหูพจน์
+พหูสูต
+พอ
+พอà¸
+พอà¸à¸žà¸¹à¸™
+พอà¸à¸±à¸™
+พอà¸à¸²à¸£
+พอควร
+พอคเà¸à¸•à¸šà¸¸à¹Šà¸„
+พอคเà¸à¸•à¸¡à¸±à¸™à¸™à¸µ
+พอง
+พอดี
+พอดู
+พอตัว
+พอที
+พอที่
+พอน
+พอฟัด
+พอยท์
+พอร์ต
+พอร์ตเล็ต
+พอร์ตà¹à¸¥à¸™à¹„ดต์
+พอร์ทัล
+พอà¹à¸£à¸‡
+พอà¹à¸¥à¹‰à¸§
+พอโลเนียม
+พอใจ
+พอใช้
+พอได้
+พะ
+พะงา
+พะงาบ
+พะจง
+พะนอ
+พะพาน
+พะพิง
+พะยอม
+พะยูง
+พะยูน
+พะรุงพะรัง
+พะวง
+พะวัà¸à¸žà¸°à¸§à¸™
+พะวา
+พะว้าพะวัง
+พะอง
+พะอืดพะอม
+พะเนิน
+พะเนียง
+พะเนียด
+พะเน้าพะนอ
+พะเพิง
+พะเยา
+พะเยิบ
+พะเยิบพะยาบ
+พะเลย
+พะà¹à¸™à¸‡
+พะโต๊ะ
+พะโล้
+พะไล
+พัà¸
+พัà¸à¸•à¸£
+พัà¸à¸•à¸£à¸²
+พัà¸à¸•à¸£à¹Œ
+พัà¸à¸•à¸²
+พัà¸à¸žà¸´à¸‡
+พัà¸à¸£
+พัà¸à¹à¸žà¸§
+พัง
+พังà¸à¸°
+พังà¸à¸²
+พังคา
+พังงา
+พังผืด
+พังพวย
+พังพอน
+พังพาน
+พังพาบ
+พังเพย
+พังโคน
+พัช
+พัชนี
+พัชร
+พัชรา
+พัà¸à¸ˆà¸
+พัà¸à¸ˆà¸™à¹Œ
+พัฒà¸à¸µ
+พัฒน
+พัฒนบริหารศาสตร์
+พัฒนะ
+พัฒนา
+พัฒนาà¸à¸£
+พัฒนาà¸à¸²à¸£
+พัฒนาที่ดิน
+พัฒนานิคม
+พัฒนาวิถี
+พัฒนเวช
+พัฒนเวศม์
+พัฒน์
+พัด
+พัดชัà¸
+พัดชา
+พัดยศ
+พัดลม
+พัดà¹à¸žà¸§
+พัดโบà¸
+พัต
+พัตร
+พัทธ
+พัทธยา
+พัทธสีมา
+พัทยา
+พัทร
+พัทลุง
+พัน
+พันงู
+พันจำ
+พันจ่า
+พันซาด
+พันตัน
+พันตา
+พันตู
+พันทาง
+พันธ
+พันธà¸à¸£à¸“ี
+พันธทิพย์
+พันธน
+พันธนาà¸à¸²à¸£
+พันธนาคาร
+พันธนำ
+พันธบัตร
+พันธมิตร
+พันธะ
+พันธุ
+พันธุà¸à¸£à¸£à¸¡
+พันธุ์
+พันธ์
+พันธ์ทิพย์
+พันปี
+พันพัว
+พันลอà¸
+พันลาย
+พันลำ
+พันลึà¸
+พันลือ
+พันเอà¸à¸«à¸²à¸
+พันà¹à¸ªà¸‡
+พันไฉน
+พับ
+พับà¸à¸²à¸™
+พับผ่า
+พับผ้า
+พับลิà¸
+พับลิช
+พับลิเชอร์
+พัพพี
+พัฟ
+พัลลภ
+พัลวัน
+พัลโมนารี
+พัว
+พัวพัน
+พัวะ
+พัศดี
+พัสดุ
+พัสดุภัณฑ์
+พัสดุไปรษณีย์
+พัสตร์
+พัสถาน
+พัสวี
+พัสเดา
+พั้นช์
+พา
+พาà¸
+พาà¸à¸¢à¹Œ
+พาà¸à¹€à¸žà¸µà¸¢à¸£
+พาง
+พาชี
+พาซื่อ
+พาณ
+พาณวาร
+พาณิช
+พาณิชยà¸à¸²à¸£
+พาณิชย์
+พาณินี
+พาณี
+พาด
+พาดพิง
+พาดไฉน
+พาต
+พาต้า
+พาท
+พาทย์
+พาธ
+พาธา
+พาน
+พานทอง
+พานร
+พานอรามา
+พานิชà¸à¸¸à¸¥
+พานิชอนันต์
+พานเรศ
+พาพย์
+พาม
+พาย
+พายม้า
+พายัพ
+พายุ
+พายà¹à¸­à¸›à¹€à¸›à¸´à¸¥
+พารณ
+พารา
+พาราà¸à¸£à¸²à¸Ÿ
+พาราฟิน
+พารามิเตอร์
+พาราเซตามอล
+พาราเมาท์
+พาราโà¸à¹„นต์
+พาราโบลา
+พาราไดซ์
+พาราไดส์
+พาราไทออน
+พาร์
+พาร์ตเนอร์
+พาร์ทไทม์
+พาร์เซà¸
+พาล
+พาลี
+พาลุà¸
+พาวิเลียน
+พาส
+พาสนา
+พาสน์
+พาสุà¸à¸£à¸µ
+พาสเซนเจอร์
+พาสเวิร์ด
+พาสไทม์
+พาห
+พาหนะ
+พาหะ
+พาหา
+พาหุ
+พาหุรัด
+พาฬ
+พาฬมฤค
+พาฬหะ
+พาเนล
+พาเรด
+พาเรียเม้นท์
+พาเหรด
+พาเหียร
+พาโล
+พาไล
+พำ
+พำนัà¸
+พำพวà¸
+พำพึม
+พำลา
+พิà¸à¸¥
+พิà¸à¸ªà¸´à¸•
+พิà¸à¸±à¸”
+พิà¸à¸±à¸•à¸´
+พิà¸à¸±à¸™
+พิà¸à¸²à¸£
+พิà¸à¸¸à¸¥
+พิà¸à¹€à¸‰à¸¢
+พิà¸à¹€à¸‹à¸¥
+พิà¸à¹€à¸¡à¸™à¸—์
+พิคเชอร์
+พิคโคโล
+พิฆน์
+พิฆาต
+พิฆเนศ
+พิง
+พิงค์
+พิจย
+พิจล
+พิจัย
+พิจาร
+พิจารณา
+พิจารณ์
+พิจิà¸
+พิจิต
+พิจิตร
+พิจิโอไนต์
+พิชà¸à¹Œ
+พิชย
+พิชัย
+พิชัยà¸à¸²à¸•à¸´
+พิชาน
+พิชิต
+พิซซ่า
+พิณ
+พิดทูล
+พิดมอนไทต์
+พิดรà¸
+พิดาน
+พิตช์เบลนด์
+พิตร
+พิถย
+พิถี
+พิถีพิถัน
+พิทย
+พิทยา
+พิทยาคม
+พิทยาคาร
+พิทยาลัย
+พิทย์
+พิทัà¸à¸©à¹Œ
+พิทัà¸à¸©à¹Œà¸˜à¸£à¸£à¸¡
+พิทัà¸à¸©à¹Œà¸›à¸´à¹ˆà¸™à¸ªà¸¸à¸‚
+พิทูร
+พิธาน
+พิธี
+พิธีà¸à¸£
+พิธีà¸à¸£à¸£à¸¡
+พิธีà¸à¸²à¸£
+พิธีธรรม
+พิธีรีตอง
+พิธีสาร
+พิธุ
+พิธุร
+พินทุ
+พินพง
+พินอบพิเทา
+พินัย
+พินัยà¸à¸£à¸£à¸¡
+พินาศ
+พินิจ
+พินิต
+พินิศ
+พิบัติ
+พิบาà¸
+พิบุล
+พิบูล
+พิบูลมังสาหาร
+พิบูลย์
+พิบูลย์สงคราม
+พิปริต
+พิปลาส
+พิปัสสนา
+พิปูน
+พิพรรธ
+พิพัà¸à¸žà¸´à¸žà¹ˆà¸§à¸™
+พิพัฒ
+พิพัฒนาà¸à¸£
+พิพัฒน์
+พิพาà¸à¸©à¸²
+พิพาà¸à¸©à¹Œ
+พิพาท
+พิพิธ
+พิพิธภัณฑสถาน
+พิพิธภัณฑ์
+พิภพ
+พิภัช
+พิภาค
+พิมพา
+พิมพ์
+พิมพ์เขียว
+พิมล
+พิมาน
+พิมาย
+พิมุข
+พิมเสน
+พิร
+พิรอด
+พิราà¸à¸¥
+พิราบ
+พิราม
+พิราลัย
+พิริย
+พิริยะ
+พิรี้พิไร
+พิรุณ
+พิรุธ
+พิร์โรไทต์
+พิลาป
+พิลาลส
+พิลาส
+พิลึà¸
+พิลึà¸à¸à¸¶à¸à¸à¸·à¸­
+พิลึà¸à¸žà¸´à¸¥à¸±à¹ˆà¸™
+พิศ
+พิศวง
+พิศวาส
+พิศาล
+พิศาลสงคราม
+พิศุทธิ์
+พิศุทธ์
+พิษ
+พิษà¸à¸²à¸™
+พิษณุโลà¸
+พิษสง
+พิสดาร
+พิสมร
+พิสมัย
+พิสัง
+พิสัช
+พิสัย
+พิสิà¸
+พิสิษà¸à¹Œà¸šà¸£à¸£à¸“à¸à¸£
+พิสุทธิ์
+พิสูจน์
+พิหค
+พิหาร
+พิฬาร
+พิเคราะห์
+พิเชà¸
+พิเทศ
+พิเนต
+พิเภà¸
+พิเรนทร์
+พิเราะ
+พิเศษ
+พิโคไทต์
+พิโดร
+พิโมà¸à¸‚์
+พิโยà¸à¸žà¸´à¹€à¸à¸™
+พิโยค
+พิโรธ
+พิโลน
+พิโลล
+พิไร
+พิไล
+พี
+พีช
+พีชคณิต
+พีซ
+พีซี
+พีร
+พีระมิด
+พีรามิด
+พีลิà¹à¸à¸™
+พีเจียน
+พีเพิล
+พีเรียด
+พี่
+พี้
+พี้โพ้
+พึง
+พึงตา
+พึงใจ
+พึม
+พึมพำ
+พึ่ง
+พึ่งบุà¸
+พึ่งพา
+พึ่บ
+พืช
+พืชคาม
+พืชชั้นต่ำ
+พืชชั้นสูง
+พืชพันธุ์
+พืด
+พื้น
+พื้นดี
+พื้นที่
+พื้นเพ
+พื้นๆ
+พุ
+พุà¸
+พุà¸à¸²à¸¡
+พุง
+พุงจง
+พุงดอ
+พุงปลา
+พุงพวง
+พุงà¹à¸
+พุงโร
+พุซซี่
+พุฒ
+พุฒิ
+พุฒิโพธิ์
+พุด
+พุดจีบ
+พุดดิ้ง
+พุดตาน
+พุทธ
+พุทธà¸à¸²à¸¥
+พุทธคุณ
+พุทธจัà¸à¸£
+พุทธชาด
+พุทธปà¸à¸´à¸¡à¸²
+พุทธมามà¸à¸°
+พุทธรัà¸à¸©à¸²
+พุทธศัà¸à¸£à¸²à¸Š
+พุทธศาสนิà¸à¸Šà¸™
+พุทธสถาน
+พุทธสมัย
+พุทธะ
+พุทธาวาส
+พุทธิ
+พุทธเจดีย์
+พุทธโอสถ
+พุทรา
+พุทโธ่
+พุทไธสง
+พุธ
+พุนพิน
+พุพอง
+พุมเรียง
+พุ่ง
+พุ่งหลาว
+พุ่ม
+พุ่มดอà¸à¹„ม้
+พุ่มพวง
+พุ่มอุไร
+พุ่มโพธิ์
+พุ้ย
+พู
+พูà¸à¸²à¸¡
+พูด
+พูดจา
+พูน
+พูนทรัพย์สิน
+พูนสุข
+พูพอน
+พูล
+พูลิทเซอร์
+พู่
+พู่à¸à¸±à¸™
+พู่ระหง
+พู้น
+พเนà¸
+พเนจร
+พเยีย
+พ่น
+พ่วง
+พ่วงทรัพย์
+พ่วงพี
+พ่อ
+พ่อขุน
+พ่อคุณ
+พ่อค้า
+พ่อตา
+พ่ะ
+พ่าง
+พ่าน
+พ่าย
+พ่าห์
+พ้น
+พ้อ
+พ้อง
+พ้องพาน
+พ้อม
+ฟà¸
+ฟà¸à¸Šà¹‰à¸³
+ฟรอซ
+ฟรอสท์
+ฟรัà¸à¹‚ทส
+ฟริเซียน
+ฟรี
+ฟรีบาร์
+ฟรีส
+ฟรีออน
+ฟรีเà¸à¸•
+ฟรีเทาน์
+ฟรุ้ต
+ฟร้อนท์
+ฟลอปปีดิสà¸à¹Œ
+ฟลอราเทป
+ฟลอริดา
+ฟลอริสท์
+ฟลอร์
+ฟลอร์โชว์
+ฟลอเรนซ์
+ฟลอเรส
+ฟลาย
+ฟลินต์
+ฟลุ้ค
+ฟลุ๊ค
+ฟลูออรีน
+ฟลูออไรต์
+ฟล็อปปี้ดิสà¸à¹Œ
+ฟอà¸
+ฟอà¸à¸‹à¸±à¸
+ฟอà¸à¸‹à¹Œà¸—ร็อต
+ฟอà¸à¸œà¹‰à¸²
+ฟอง
+ฟองà¸à¸²à¸¡
+ฟองน้ำ
+ฟองมัน
+ฟอด
+ฟอดà¹à¸Ÿà¸”
+ฟอน
+ฟอนต์
+ฟอยล์
+ฟอร์จูน
+ฟอร์ม
+ฟอร์มาลดีไฮด์
+ฟอร์มาลิน
+ฟอร์มูล่า
+ฟอร์สเตอไรต์
+ฟอร์เวิร์ด
+ฟอร์เอเวอร์
+ฟอร์à¹à¸¡à¸•
+ฟอร์à¹à¸¡à¸™à¹€à¸•à¸£à¸²
+ฟอร์โมซา
+ฟอล์คà¹à¸¥à¸™à¸”์
+ฟอสซิล
+ฟอสฟอรัส
+ฟอสฟอไรต์
+ฟอสเฟต
+ฟะฟัด
+ฟะฟั่น
+ฟะฟ่าย
+ฟัà¸
+ฟัà¸à¸‚้าว
+ฟัà¸à¸•à¸±à¸§
+ฟัà¸à¸—อง
+ฟัà¸à¸Ÿà¸¹à¸¡
+ฟัง
+ฟังà¸à¹Œà¸Šà¸±à¸™
+ฟังชั่น
+ฟังออà¸
+ฟังได้
+ฟัด
+ฟัน
+ฟันดาบ
+ฟันปลา
+ฟันà¸à¹ˆà¸²
+ฟันม้า
+ฟันหนู
+ฟันà¹à¸—้
+ฟัลครัม
+ฟัลคอน
+ฟั่น
+ฟั้น
+ฟาà¸
+ฟาà¸à¸—่า
+ฟาง
+ฟางลอย
+ฟาด
+ฟาดหัว
+ฟาทอม
+ฟาน
+ฟาย
+ฟายมือ
+ฟายาไลต์
+ฟาริงซ์
+ฟาร์ม
+ฟาร์มวัฒนา
+ฟาวล์
+ฟาสซิสต์
+ฟาสฟู้ด
+ฟาเรนไฮต์
+ฟาโรห์
+ฟิà¸
+ฟิà¸à¸‹à¹Œ
+ฟิจิ
+ฟิชชั่น
+ฟิด
+ฟิดà¹à¸šà¸„
+ฟิต
+ฟิตเนส
+ฟินิà¸à¸‹à¹Œ
+ฟินà¹à¸¥à¸™à¸”์
+ฟิบ
+ฟิลด์
+ฟิลิปปินส์
+ฟิล์ม
+ฟิวส์
+ฟิสิà¸à¸ªà¹Œ
+ฟิโลโซพี
+ฟีตัส
+ฟีนิà¸à¸‹à¹Œ
+ฟีฟ่า
+ฟีลิ่ง
+ฟีลเตอร์
+ฟีเจอร์
+ฟีเมล
+ฟีเวอร์
+ฟี่
+ฟี้
+ฟืน
+ฟืม
+ฟื้น
+ฟื้นฟู
+ฟุ
+ฟุต
+ฟุตบอล
+ฟุตบาท
+ฟุตโน้ต
+ฟุน
+ฟุบ
+ฟุฟะ
+ฟุลสà¹à¸à¹Šà¸›
+ฟุ่บ
+ฟุ่มเฟือย
+ฟุ้ง
+ฟุ้งซ่าน
+ฟุ้งเฟื่อง
+ฟุ้งเฟ้อ
+ฟู
+ฟูà¸
+ฟูจิ
+ฟูด
+ฟูดฟาด
+ฟูฟ่อง
+ฟูม
+ฟูมน้ำ
+ฟูมฟัà¸
+ฟูมฟาย
+ฟูà¹à¸­à¸£à¹Œà¹€à¸•à¹€à¸§à¸™à¸•à¸¸à¸£à¸²
+ฟู่
+ฟู่ฟ่า
+ฟ่อ
+ฟ่อง
+ฟ่องฟู
+ฟ่อน
+ฟ่าง
+ฟ่าม
+ฟ้ง
+ฟ้อ
+ฟ้อง
+ฟ้อน
+ฟ้า
+ฟ้าผ่า
+ฟ้าà¸à¹ˆà¸­
+ฟ้าร้อง
+ฟ้าหลัว
+ฟ้าà¹à¸¥à¸š
+ภควดี
+ภควัต
+ภควันต์
+ภควัม
+ภควา
+ภคันทลา
+ภคินี
+ภณิดา
+ภพ
+ภมà¸à¸²à¸£
+ภมร
+ภมริน
+ภมรี
+ภมุ
+ภมู
+ภยันตราย
+ภยาคติ
+ภรณี
+ภรณีภู
+ภรต
+ภรรดร
+ภรรดา
+ภรรยา
+ภระมร
+ภระมรี
+ภราดร
+ภราดรภ
+ภราดรภาพ
+ภราดา
+ภราตรภ
+ภริยา
+ภรู
+ภฤงคาร
+ภฤดà¸
+ภฤดี
+ภฤตย์
+ภฤศ
+ภฤษà¸à¹Œ
+ภวà¸à¸©à¸±à¸¢
+ภวตัณหา
+ภวนะ
+ภวปาระ
+ภวัคร
+ภวังค
+ภวังคจิต
+ภวังค์
+ภวันดร
+ภวาภพ
+ภัà¸à¸‚ะ
+ภัà¸à¸”ี
+ภัà¸à¸”ีà¸à¸¸à¸¥
+ภัà¸à¸•
+ภัà¸à¸•à¸´
+ภัà¸à¸©
+ภัà¸à¸©à¸²
+ภัà¸à¸©à¸²à¸«à¸²à¸£
+ภัค
+ภัคน์
+ภังค
+ภังคี
+ภัจ
+ภัà¸à¸Šà¸°
+ภัณฑ
+ภัณฑนะ
+ภัณฑาคาร
+ภัณฑู
+ภัณฑ์
+ภัต
+ภัตà¸à¸´à¸ˆ
+ภัตตาคาร
+ภัตตาหาร
+ภัทร
+ภัทรบท
+ภัทรบิà¸
+ภัพ
+ภัย
+ภัสดา
+ภัสตรา
+ภัสมะ
+ภัสสร
+ภา
+ภาà¸à¸£
+ภาค
+ภาคตัดà¸à¸£à¸§à¸¢
+ภาคทัณฑ์
+ภาคนิพนธ์
+ภาคยานุวัติ
+ภาคย์
+ภาคินี
+ภาคิไนย
+ภาคี
+ภาคียะ
+ภาคเสธ
+ภาชนะ
+ภาชนีย
+ภาชน์
+ภาชี
+ภาณ
+ภาณà¸
+ภาณวาร
+ภาณี
+ภาณุ
+ภาณุมาศ
+ภาณุรังษี
+ภาดร
+ภาดา
+ภาตร
+ภาตา
+ภาติà¸à¸°
+ภาติà¸à¸²
+ภาติยะ
+ภาตุ
+ภาพ
+ภาพà¸à¸²à¸
+ภาพจริง
+ภาพถ่าย
+ภาพพจน์
+ภาพยนตร์
+ภาพยนต์
+ภาพย์
+ภาพลวงตา
+ภาพเสมือน
+ภาม
+ภาย
+ภายนอà¸
+ภายใน
+ภาร
+ภารà¸à¸´à¸ˆ
+ภารดี
+ภารต
+ภารตี
+ภารยา
+ภาระ
+ภารา
+ภารโรง
+ภาว
+ภาวนา
+ภาวะ
+ภาวะฉุà¸à¹€à¸‰à¸´à¸™
+ภาษ
+ภาษà¸
+ภาษณ์
+ภาษา
+ภาษาศาสตร์
+ภาษิต
+ภาษี
+ภาษีเจริà¸
+ภาส
+ภาสà¸à¸£
+ภาสน์
+ภาสวร
+ภาสา
+ภาสุร
+ภิà¸à¸‚า
+ภิà¸à¸‚าจาร
+ภิà¸à¸‚ุ
+ภิà¸à¸‚ุณี
+ภิà¸à¸‚ุนี
+ภิà¸à¸©à¸²
+ภิà¸à¸©à¸²à¸ˆà¸²à¸£
+ภิà¸à¸©à¸²à¸«à¸²à¸£
+ภิà¸à¸©à¸¸
+ภิà¸à¸©à¸¸à¸“ี
+ภิงคาร
+ภิงส
+ภิงสนะ
+ภิà¸à¹‚à¸
+ภิà¸à¹‚à¸à¸ à¸²à¸ž
+ภิตติ
+ภิท
+ภิน
+ภินชาติ
+ภินทน
+ภินทนาà¸à¸²à¸£
+ภินท์
+ภิยโย
+ภิรมย์
+ภิษัช
+ภิส
+ภิสัà¸
+ภีตะ
+ภีม
+ภีรุ
+ภุà¸à¸•
+ภุขัน
+ภุช
+ภุชค
+ภุชงคม
+ภุชงค์
+ภุชา
+ภุà¸à¸Š
+ภุต
+ภุม
+ภุมระ
+ภุมรา
+ภุมริน
+ภุมรี
+ภุมวาร
+ภุมเรศ
+ภุส
+ภู
+ภูà¸à¸£à¸°à¸”ึง
+ภูà¸à¸²à¸™
+ภูà¸à¸²à¸™
+ภูดล
+ภูดาด
+ภูต
+ภูตคาม
+ภูตบดี
+ภูตผี
+ภูตรูป
+ภูติ
+ภูตี
+ภูธร
+ภูธเรศ
+ภูนาถ
+ภูนายà¸
+ภูบดี
+ภูบาล
+ภูป
+ภูผา
+ภูภุช
+ภูม
+ภูมิ
+ภูมิคุ้มà¸à¸±à¸™
+ภูมิà¸à¸²à¸™
+ภูมิธร
+ภูมิธรรม
+ภูมินทร์
+ภูมิบาล
+ภูมิประเทศ
+ภูมิปัà¸à¸à¸²
+ภูมิพล
+ภูมิภาค
+ภูมิรัà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+ภูมิลำเนา
+ภูมิศาสตร์
+ภูมิศาสตร์à¸à¸²à¸¢à¸ à¸²à¸ž
+ภูมิศาสตร์à¸à¸²à¸£à¹€à¸à¸©à¸•à¸£
+ภูมิศาสตร์à¸à¸²à¸£à¹€à¸¡à¸·à¸­à¸‡
+ภูมิศาสตร์ประชาà¸à¸£
+ภูมิศาสตร์เศรษà¸à¸à¸´à¸ˆ
+ภูมิเวท
+ภูมิà¹à¸žà¹‰
+ภูมิใจ
+ภูมี
+ภูริ
+ภูรี
+ภูรโลà¸
+ภูว
+ภูวดล
+ภูวน
+ภูวนาถ
+ภูวเนตร
+ภูวไนย
+ภูษณ
+ภูษนะ
+ภูษา
+ภูษามาลา
+ภูษิต
+ภูเà¸à¹‡à¸•
+ภูเขา
+ภูเขาทอง
+ภูเขาน้ำà¹à¸‚็ง
+ภูเขาไฟ
+ภูเขียว
+ภูเนตุ
+ภูเบศ
+ภูเรือ
+ภูเวียง
+ภูโช
+ภู่
+ภู่สุวรรณ
+มà¸
+มà¸à¸£
+มà¸à¸£à¸²à¸„ม
+มà¸à¸ª
+มà¸à¸¸à¸Ž
+มà¸à¸¸à¸¥
+มคธ
+มฆวัน
+มงà¸à¸¸à¸Ž
+มงคล
+มงคลทรัพย์
+มงคลวราราม
+มงโà¸à¸£à¸¢
+มณฑà¸
+มณฑนะ
+มณฑป
+มณฑล
+มณฑา
+มณฑารพ
+มณฑิร
+มณฑ์
+มณี
+มณีà¸à¸²à¸£
+มณีพืช
+มณีราค
+มณเฑียร
+มด
+มดดำ
+มดยอบ
+มดลูà¸
+มดาย
+มดี
+มดเท็จ
+มดà¹à¸”ง
+มตà¸
+มตà¸à¸ à¸±à¸•
+มตà¸à¸ à¸±à¸¢
+มติ
+มติมหาชน
+มทนะ
+มทนียะ
+มธุ
+มธุà¸à¸£
+มธุà¸à¸£à¸µ
+มธุตฤณ
+มธุป
+มธุปฎล
+มธุพรต
+มธุร
+มธุรส
+มธุสร
+มธุเศษ
+มธุโà¸à¸¨
+มน
+มนตรี
+มนตร์
+มนต์
+มนท
+มนทาทร
+มนทิร
+มนสิà¸à¸²à¸£
+มนัส
+มนัสวี
+มนิมนา
+มนิลา
+มนุ
+มนุช
+มนุà¸
+มนุษย
+มนุษยชาติ
+มนุษยธรรม
+มนุษยศาสตร์
+มนุษยสัมพันธ์
+มนุษยเทพ
+มนุษยโลà¸
+มนุษย์
+มนุษย์อวà¸à¸²à¸¨
+มนุสาร
+มนู
+มนูสาร
+มนเทียร
+มมังà¸à¸²à¸£
+มมาà¸
+มยุร
+มยุรฉัตร
+มยุระ
+มยุรา
+มยุรี
+มยุเรศ
+มยูข
+มยูร
+มร
+มรà¸à¸•
+มรคา
+มรฑป
+มรณ
+มรณà¸à¸£à¸£à¸¡
+มรณธรรม
+มรณบัตร
+มรณภัย
+มรณภาพ
+มรณะ
+มรณ์
+มรดà¸
+มรรค
+มรรคนายà¸
+มรรคผล
+มรรคา
+มรรตย
+มรรทน
+มรรยา
+มรรยาท
+มรรษ
+มรสุม
+มริจ
+มริยาท
+มรีจิ
+มรุ
+มรุต
+มฤค
+มฤคทายวัน
+มฤคย์
+มฤคราช
+มฤควัน
+มฤคศิร
+มฤจฉา
+มฤดà¸
+มฤต
+มฤตà¸
+มฤตยู
+มฤทุ
+มฤทุà¸à¸°
+มฤธุ
+มฤษา
+มล
+มลทิน
+มลน
+มลพิษ
+มลภาวะ
+มลรัà¸
+มลละมั่ง
+มลวà¸
+มละ
+มลัà¸
+มลาà¸
+มลาซอ
+มลาน
+มลาย
+มลายา
+มลายู
+มลาว
+มลาไสย
+มลิน
+มลิ้น
+มลื่น
+มลโค
+มล่อน
+มล่อย
+มล่าน
+มล้า
+มล้าง
+มวà¸
+มวà¸à¸œà¸²
+มวน
+มวย
+มวยล้ม
+มวยวัด
+มวยไทย
+มวล
+มวลชน
+มวลสาร
+มวลอาà¸à¸²à¸¨
+มสาร
+มสิ
+มหà¸à¸£à¸£à¸¡
+มหภาค
+มหภาพ
+มหรณพ
+มหรรฆ
+มหรรณพ
+มหรสพ
+มหัคฆ
+มหัณณพ
+มหัต
+มหันต
+มหันตภัย
+มหันตโทษ
+มหันต์
+มหัยà¸à¸²
+มหัล
+มหัศจรรย์
+มหา
+มหาà¸à¸£à¸¸à¸“าธิคุณ
+มหาà¸à¸²à¸¬
+มหาจัà¸à¸£
+มหาชน
+มหาชนะชัย
+มหาชัย
+มหาชาติ
+มหาดเล็à¸
+มหาดเล็à¸à¸«à¸¥à¸§à¸‡
+มหาดไทย
+มหาตมะ
+มหาทุน
+มหาธาตุ
+มหานคร
+มหานครนิเวศน์
+มหานสะ
+มหานาค
+มหานิล
+มหาบพิตร
+มหาบุศย์
+มหาพน
+มหาพรหม
+มหาพฤฒาราม
+มหาภูต
+มหามงà¸à¸¸à¸Ž
+มหายาน
+มหายุค
+มหาราช
+มหาลาภ
+มหาวงศ์
+มหาวรรค
+มหาวิทยาลัย
+มหาศาล
+มหาสดำ
+มหาสมุทร
+มหาสารคาม
+มหาสิน
+มหาหงส์
+มหาหิงคุ์
+มหาอำนาจ
+มหาอุจ
+มหาอุด
+มหาอุปราà¸à¸£
+มหาเทพ
+มหาเมฆ
+มหาไชย
+มหาไถ่
+มหิ
+มหิงส์
+มหิดล
+มหิทธิ
+มหิธร
+มหินท์
+มหิบ
+มหิมา
+มหิศร
+มหิศวร
+มหิษ
+มหิษี
+มหึมา
+มหุรดี
+มหู
+มอ
+มอคราม
+มอง
+มองคร่อ
+มองซิเออร์
+มองต์บลังค์
+มองโà¸à¸¥
+มองโà¸à¸¥à¸­à¸¢à¸”์
+มองโà¸à¹€à¸¥à¸µà¸¢
+มอซอ
+มอà¸
+มอด
+มอดม้วย
+มอทโต
+มอน
+มอนตานา
+มอนตโà¸à¹€à¸¡à¸­à¸£à¸´
+มอนต์มอริลโลไนต์
+มอนต์เปเลียร์
+มอนิเตอร์
+มอนไข่
+มอบ
+มอบตัว
+มอม
+มอมยา
+มอมเมา
+มอมà¹à¸¡à¸¡
+มอริเชียส
+มอริเตเนีย
+มอร์ฟีน
+มอร์มอน
+มอร์à¹à¸à¹„นต์
+มอลตา
+มอลล์
+มอลเดเวีย
+มอลโทส
+มอสโคว์
+มอหมึà¸
+มอเตอร์
+มอเตอร์เวย์
+มอเตอร์ไซค์
+มอโรไต
+มะ
+มะà¸à¸£à¸¹à¸”
+มะà¸à¸¥à¹ˆà¸³
+มะà¸à¸­à¸
+มะà¸à¸°à¹‚รนี
+มะà¸à¸²
+มะà¸à¸¹à¸”
+มะà¸à¹ˆà¸­à¸‡
+มะขวิด
+มะขาม
+มะข่วง
+มะคะ
+มะค่า
+มะงัน
+มะงั่ว
+มะงุมมะงาหรา
+มะซัà¸
+มะซาง
+มะซ่าน
+มะดัน
+มะดา
+มะดูà¸
+มะตอย
+มะตะบะ
+มะตา
+มะตาด
+มะตาหะรี
+มะตี
+มะตึ่ง
+มะตื๋น
+มะตูม
+มะต้อง
+มะนาว
+มะนิลา
+มะปราง
+มะปริง
+มะป่อง
+มะà¸à¹ˆà¸­
+มะพร้าว
+มะพลับ
+มะพูด
+มะมี่
+มะมื่น
+มะมุด
+มะม่วง
+มะม่วงหิมพานต์
+มะม่าว
+มะยง
+มะยม
+มะระ
+มะริด
+มะรืน
+มะรุม
+มะละà¸à¸­
+มะละà¸à¸²
+มะลารอà¸à¸±à¸™
+มะลำ
+มะลิ
+มะลิน
+มะลิ่ม
+มะลื่น
+มะลุลี
+มะวาร
+มะสัง
+มะหลิ่ม
+มะหวด
+มะหะหมัด
+มะหัล
+มะหาด
+มะหิ่ง
+มะอึà¸
+มะฮอà¸à¸à¸²à¸™à¸µ
+มะเà¸à¸¥à¸·à¸­
+มะเขือ
+มะเดหวี
+มะเดื่อ
+มะเฟือง
+มะเมอ
+มะเมีย
+มะเร็ง
+มะเส็ง
+มะเหงà¸
+มะà¹à¸‚่น
+มะà¹à¸•à¸
+มะà¹à¸žà¸™
+มะà¹à¸Ÿà¸™
+มะà¹à¸¡
+มะà¹à¸§à¹‰à¸‡
+มะโรง
+มะโว้
+มะไฟ
+มัà¸
+มัà¸à¸à¸°
+มัà¸à¸à¸°à¸ªà¸±à¸™
+มัà¸à¸‚ะ
+มัà¸à¸‚ิà¸à¸²
+มัà¸à¸à¸à¸°
+มัà¸à¸à¸°
+มัà¸à¸¡à¸²à¸
+มัà¸à¹„ด้
+มัค
+มัคคะ
+มัคคุเทศà¸à¹Œ
+มัคนา
+มัคนายà¸
+มัฆวา
+มัฆวาน
+มังà¸à¸‡
+มังà¸à¸£
+มังà¸à¸¸
+มังคละ
+มังคละศึà¸à¸©à¸²
+มังคลาราม
+มังคุด
+มังค่า
+มังตาน
+มังส
+มังสวิรัติ
+มังสะ
+มังสา
+มังสี
+มัจจะ
+มัจจุ
+มัจจุราช
+มัจฉระ
+มัจฉริยะ
+มัจฉรี
+มัจฉะ
+มัจฉา
+มัจฉาชาติ
+มัจฉานุ
+มัช
+มัชชาร
+มัชชาร์
+มัชฌ
+มัชฌิม
+มัชฌิมยาม
+มัชฌิมวัย
+มัชฌิมา
+มัชณิมา
+มัà¸à¸ˆà¸
+มัà¸à¸ˆà¸²à¸„ีรี
+มัà¸à¸Šà¸µà¸£
+มัà¸à¸Šà¸¸
+มัà¸à¸à¸°
+มัณฑ
+มัณฑน
+มัณฑนศิลป์
+มัณฑนา
+มัณฑุà¸
+มัด
+มัดจำ
+มัดหมู
+มัตตะ
+มัตตา
+มัตถà¸
+มัตถลงค์
+มัตถลุงค์
+มัตสยะ
+มัตสยา
+มัตสร
+มัทนะ
+มัทนา
+มัทนียะ
+มัทยะ
+มัธย
+มัธยà¸à¸²à¸™
+มัธยม
+มัธยมศึà¸à¸©à¸²
+มัธยมา
+มัธยัสถ์
+มัน
+มันดี
+มันตา
+มันถะ
+มันทิร
+มันนà¸
+มันปลา
+มันปู
+มันส์
+มันเทศ
+มันเสา
+มันà¹à¸à¸§
+มันโรเวีย
+มันไส้
+มับ
+มับๆ
+มัมมี่
+มัย
+มัยลาภ
+มัลà¸
+มัลดิฟ
+มัลดีฟ
+มัลติ
+มัลติมีเดีย
+มัลละ
+มัลลิà¸à¸²
+มัว
+มัวซัว
+มัวมอม
+มัวเมา
+มัศยา
+มัสดà¸
+มัสดุ
+มัสตาร์ด
+มัสตาร์ดà¹à¸à¹Šà¸ª
+มัสมั่น
+มัสยา
+มัสยิด
+มัสรู่
+มัสลิน
+มัสสุ
+มัสà¹à¸à¸•
+มัสโคไวต์
+มั่ง
+มั่งคั่ง
+มั่งมี
+มั่น
+มั่นคง
+มั่นสิน
+มั่นใจ
+มั่ว
+มั่วสุม
+มั้ม
+มา
+มาà¸
+มาà¸à¸à¸§à¹ˆà¸²
+มาà¸à¸¡à¸²à¸¢
+มาà¸à¸§à¹ˆà¸²
+มาคสิร
+มาคิน
+มาฆ
+มาฆบูชา
+มาฆะ
+มางสะ
+มาจอร์à¸à¸²
+มาณพ
+มาณวิà¸à¸²
+มาด
+มาดมัวเสล
+มาดริด
+มาดอนนา
+มาดา
+มาดาà¸à¸±à¸ªà¸à¸²à¸£à¹Œ
+มาดาม
+มาดูรา
+มาตงค์
+มาตร
+มาตรà¸à¸²à¸£
+มาตรà¸à¸²à¸™
+มาตรา
+มาตราส่วน
+มาตฤ
+มาตฤà¸à¸°
+มาตังค
+มาตา
+มาตานุสรณ์
+มาตามไหยà¸à¸²
+มาติà¸
+มาติà¸à¸²
+มาตี
+มาตุ
+มาตุคาม
+มาตุจฉา
+มาตุภูมิ
+มาตุรงค์
+มาตุราช
+มาตุละ
+มาตุลา
+มาตุลานี
+มาตุเรศ
+มาท
+มาทาดอร์
+มาธุร
+มาธุสร
+มาน
+มานพ
+มานะ
+มานัต
+มานัส
+มานาà¸à¸±à¸§
+มานามา
+มานิต
+มานี
+มานุษ
+มานุษยวิทยา
+มาบ
+มาบตาพุด
+มาบุà¸à¸„รอง
+มาปà¸
+มาพูโต
+มาภา
+มาย
+มายด์
+มายอ
+มายัง
+มายา
+มายาà¸à¸£
+มายาà¸à¸¥
+มายาวี
+มาร
+มารค
+มารชิ
+มารชิต
+มารดร
+มารดา
+มารผจà¸
+มารยา
+มารยาท
+มารศรี
+มารษา
+มาระ
+มาราธอน
+มาริ
+มาริต
+มารินา
+มารุต
+มาร์à¸à¸­à¸±à¸ž
+มาร์à¸à¸²à¸£à¸µà¸™
+มาร์ค
+มาร์ควิส
+มาร์คัส
+มาร์คาไซต์
+มาร์คเà¸à¸­à¸£à¹Œ
+มาร์จิน
+มาร์ช
+มาร์ดิà¸à¸£à¸²à¸ªà¹Œ
+มาร์ตินิà¸
+มาร์ตินี
+มาร์ล
+มาร์เà¸à¹‡à¸•
+มาร์เคซัส
+มาร์à¹à¸Šà¸¥
+มาร์ไทต์
+มาลย์
+มาลัย
+มาลา
+มาลาà¸à¸²à¸‹à¸µ
+มาลาตี
+มาลาวี
+มาลาเรีย
+มาลาไคต์
+มาลินี
+มาลี
+มาลีนุสรณ์
+มาลุต
+มาศ
+มาส
+มาสà¸
+มาสคารา
+มาสบาเต
+มาสเตอร์
+มาหิส
+มาห์
+มาฬà¸
+มาเจสติค
+มาเจสตี
+มาเดียรา
+มาเฟีย
+มาเรียนา
+มาเรียน่าส์
+มาเล
+มาเลตา
+มาเลเซีย
+มาà¹à¸‚à¸
+มาโคร
+มาโนชà¸à¹Œ
+มาโปรด
+มำเลือง
+มิ
+มิà¸à¸‹à¹Œ
+มิค
+มิคลุท
+มิคสัà¸à¸à¸µ
+มิคสิร
+มิคี
+มิงโค
+มิจฉา
+มิจฉาชีพ
+มิจฉาทิà¸à¸´
+มิจฉาบถ
+มิชชั่น
+มิชิà¹à¸à¸™
+มิà¸à¸Š
+มิด
+มิดชิด
+มิดฟิลด์
+มิดหมี
+มิดเดย์
+มิดเดิลà¹à¸§à¸£à¹Œ
+มิดเทอม
+มิดเมี้ยน
+มิดเยียร์
+มิดเว
+มิดไนท์
+มิต
+มิตร
+มิตรบำรุง
+มิตรประชา
+มิตรพันธ์
+มิตรภาพ
+มิตรวิถี
+มิตรอนันต์
+มิตรอุดม
+มิตรเด็à¸
+มิตรà¹à¸—้
+มิตรไมตรี
+มิติ
+มิถยา
+มิถุน
+มิถุนายน
+มิทธะ
+มิทธี
+มินดาเนา
+มินตรา
+มินตา
+มินท์
+มินนิโซตา
+มินสà¸à¹Œ
+มินอร์à¸à¸²
+มินิมัม
+มินิสเà¸à¸´à¸£à¹Œà¸•
+มินิสเตอร์
+มินเนอรัล
+มินโดโร
+มิน่า
+มิยา
+มิรันตี
+มิราจ
+มิลติ
+มิลลิ
+มิลลิà¸à¸£à¸±à¸¡
+มิลลิบาร์
+มิลลิลิตร
+มิลลิเมตร
+มิลอส
+มิลาต
+มิวสิค
+มิวสิควีดีโอ
+มิวเซียม
+มิศร
+มิส
+มิสà¸à¸£à¸µ
+มิสชันมารี
+มิสชั่น
+มิสซา
+มิสซิส
+มิสซิสซิปปี
+มิสซูรี
+มิสเตอร์
+มิเตอร์
+มิโซล
+มิใช่
+มิได้
+มิไย
+มิ่ง
+มิ่งขวัà¸
+มิ่งมิตร
+มิ้งค์
+มิ้ม
+มี
+มีชื่อ
+มีชู้
+มีด
+มีดตอà¸
+มีดพร้า
+มีดยับ
+มีดหมอ
+มีดโà¸à¸™
+มีทติ้ง
+มีน
+มีนนิ่ง
+มีนบุรี
+มีนาคม
+มีสุวรรณ
+มีหน้า
+มีฬห
+มีอายุ
+มีเดีย
+มีเดียม
+มีเทน
+มีเพียร
+มี่
+มี่ฉาว
+มี่สั้ว
+มึà¸
+มึà¸à¸¡à¸§à¸¢
+มึง
+มึน
+มึนงง
+มึนชา
+มึนซึม
+มึนตึง
+มึนเมา
+มืด
+มืดค่ำ
+มืดมน
+มืดมัว
+มืน
+มือ
+มือà¸à¸²à¸§
+มือขวา
+มือดี
+มือตà¸
+มือบอน
+มือปืน
+มือผี
+มือมืด
+มือลิง
+มือสี
+มือเบา
+มือไว
+มื่น
+มื้อ
+มุ
+มุà¸
+มุà¸à¸”า
+มุà¸à¸”าหาร
+มุà¸à¸¸à¸£
+มุà¸à¸¸à¸¥
+มุà¸à¹€à¸”น
+มุข
+มุขบาà¸
+มุขย
+มุขลด
+มุคคะ
+มุคธ์
+มุคร
+มุง
+มุจฉา
+มุจน
+มุจลินท์
+มุà¸à¸ˆà¸™à¸°
+มุà¸à¸Š
+มุà¸
+มุà¸à¸´
+มุณฑ
+มุด
+มุดหัว
+มุต
+มุตà¸à¸´à¸”
+มุตฆาต
+มุตตะ
+มุตตา
+มุตติ
+มุติ
+มุติงค์
+มุทค
+มุทคร
+มุททา
+มุทธชะ
+มุทธา
+มุทรา
+มุทะลุ
+มุทา
+มุทิà¸à¸²
+มุทิตา
+มุทิน
+มุทุ
+มุทุตา
+มุนิ
+มุนินทร์
+มุนี
+มุบ
+มุบมิบ
+มุบๆ
+มุม
+มุมà¸à¹‰à¸¡
+มุมฉาà¸
+มุมตรง
+มุมมืด
+มุมานะ
+มุมเงย
+มุมเท
+มุมเห
+มุรช
+มุรธา
+มุลุต
+มุลู
+มุลไลต์
+มุสละ
+มุสลิม
+มุสะ
+มุสา
+มุสิà¸
+มุหงิด
+มุหุต
+มุ่ง
+มุ่งมาด
+มุ่น
+มุ่นใจ
+มุ่ม
+มุ่ย
+มุ้ง
+มุ้ม
+มูà¸
+มูà¸à¸¡à¸±à¸™
+มูค
+มูซัง
+มูตร
+มูน
+มูนมอง
+มูนสโตน
+มูนา
+มูฟ
+มูมมาม
+มูรดี
+มูรธ
+มูรธาภิเษà¸
+มูล
+มูลค่า
+มูลจิต
+มูลà¸à¸²à¸™
+มูลนาย
+มูลนิธิ
+มูลà¸à¸­à¸¢
+มูลภัณฑ์à¸à¸±à¸™à¸Šà¸™
+มูลา
+มูลโค
+มูลไถ
+มูวี่
+มูสัง
+มูสิà¸
+มูฬห
+มูเซอ
+มูเล่
+มู่ทู่
+มู่ลี่
+มู้ด
+มู้ดดี้
+มเหศ
+มเหศวร
+มเหสัà¸à¸‚์
+มเหสิ
+มเหสี
+มเหาษธ
+มเหาฬาร
+มโน
+มโนà¸à¸£à¸£à¸¡
+มโนคติ
+มโนช
+มโนชà¸à¹Œ
+มโนธรรม
+มโนภาพ
+มโนมัย
+มโนรถ
+มโนรม
+มโนรมย์
+มโนราห์
+มโนสาเร่
+มโนหร
+มโหฆ
+มโหรสพ
+มโหระทึà¸
+มโหรี
+มโหษธ
+มโหฬาร
+มไหสวรรค์
+ม็อบ
+ม็อยซ์เจอร์
+ม่ง
+ม่น
+ม่วง
+ม่วงสามสิบ
+ม่วงà¹à¸„
+ม่วน
+ม่วย
+ม่อง
+ม่อต้อ
+ม่อน
+ม่อม
+ม่อย
+ม่อฮ่อม
+ม่าน
+ม่านตา
+ม่าย
+ม้วน
+ม้วย
+ม้า
+ม้าง
+ม้าต้น
+ม้าน
+ม้าน้ำ
+ม้าม
+ม้ามืด
+ม้ารำ
+ม้าลาย
+ม้าล่อ
+ม้าเทศ
+ม้าใช้
+ยà¸
+ยà¸à¸„รู
+ยà¸à¸—รง
+ยà¸à¸™
+ยà¸à¸™à¸°
+ยà¸à¸™à¸´à¹‰à¸§
+ยà¸à¸žà¸·à¹‰à¸™
+ยà¸à¸Ÿà¹‰à¸­à¸‡
+ยà¸à¸¡à¸·à¸­
+ยà¸à¸¢à¸­
+ยà¸à¸¢à¸­à¸”
+ยà¸à¸¢à¹ˆà¸­à¸‡
+ยà¸à¹€à¸„้า
+ยà¸à¹€à¸¡à¸†
+ยà¸à¹€à¸¥à¸´à¸
+ยà¸à¹€à¸§à¹‰à¸™
+ยà¸à¹ƒà¸«à¸à¹ˆ
+ยà¸à¹„ว้
+ยง
+ยงโย่
+ยติ
+ยติภังค์
+ยถา
+ยถาà¸à¸£à¸£à¸¡
+ยนตร์
+ยนต์
+ยม
+ยมà¸
+ยมทูต
+ยมนา
+ยมบาล
+ยมราช
+ยมล
+ยมโดย
+ยมโลà¸
+ยรรยง
+ยล
+ยวง
+ยวด
+ยวดยง
+ยวดยาน
+ยวดยิ่ง
+ยวน
+ยวนยี
+ยวบ
+ยวบยาบ
+ยวบๆ
+ยวาคุ
+ยศ
+ยศเส
+ยอ
+ยอà¸
+ยอง
+ยองใย
+ยองไย่
+ยอชต์
+ยอด
+ยอดจาà¸
+ยอดดี
+ยอดน้ำ
+ยอน
+ยอบ
+ยอบà¹à¸¢à¸š
+ยอม
+ยอมรับ
+ยอร์ชเทาน์
+ยอà¹à¸ªà¸‡
+ยะ
+ยะยอบ
+ยะยัน
+ยะยับ
+ยะยาน
+ยะย้าย
+ยะย้าว
+ยะรัง
+ยะลา
+ยะหริ่ง
+ยะหา
+ยะหิทา
+ยะà¹à¸¢à¹‰à¸‡
+ยะโฮร์
+ยะโฮร์บารู
+ยัà¸
+ยัà¸à¸‚ินี
+ยัà¸à¸‚์
+ยัà¸à¸—่า
+ยัà¸à¸¢à¸­à¸
+ยัà¸à¸¢à¹‰à¸²à¸¢
+ยัà¸à¸©à¸´à¸“ี
+ยัà¸à¸©à¸µ
+ยัà¸à¸©à¹Œ
+ยัà¸à¸«à¸¢à¸²à¸§
+ยัà¸à¹€à¸¢à¸·à¹‰à¸­à¸‡
+ยัง
+ยังชีพ
+ยัชน
+ยัชมาน
+ยัà¸
+ยัà¸à¸´
+ยัด
+ยัดเยียด
+ยัติภังค์
+ยัน
+ยันตร
+ยันตรà¸à¸£à¸£à¸¡
+ยันตร์
+ยันต์
+ยับ
+ยับยง
+ยับยั้ง
+ยับยาน
+ยับยาบ
+ยัวร์
+ยัษฎิ
+ยั่งยืน
+ยั่น
+ยั่ว
+ยั่วยวน
+ยั่วเย้า
+ยั้ง
+ยั้ว
+ยั้วเยี้ย
+ยา
+ยาà¸
+ยาà¸à¸ˆà¸™
+ยาà¸à¸™à¸²à¸™
+ยาà¸à¹„ร้
+ยาค
+ยาคุ
+ยาง
+ยางชุมน้อย
+ยางตลาด
+ยางบอน
+ยางพารา
+ยางลบ
+ยางสน
+ยางอาย
+ยาจà¸
+ยาจน
+ยาจืด
+ยาฉุน
+ยาชà¸
+ยาด
+ยาดา
+ยาดำ
+ยาตนา
+ยาตร
+ยาตรา
+ยาตั้ง
+ยาธาตุ
+ยาน
+ยานà¸
+ยานคาง
+ยานนาวา
+ยานมาศ
+ยานัตถุ์
+ยานาวา
+ยานี
+ยาบ
+ยาบ้า
+ยาปน
+ยาà¸à¸­à¸¢
+ยาม
+ยามà¸à¸²à¸¥à¸´à¸
+ยามพาด
+ยามัà¸à¸à¸²à¸£
+ยามิà¸
+ยามเà¸à¸²
+ยามโยค
+ยาย
+ยายทวด
+ยายนุ้ย
+ยายร่ม
+ยายี
+ยายà¹à¸›à¹‰à¸™
+ยาร์ด
+ยาว
+ยาวนาน
+ยาวรี
+ยาวัส
+ยาสลบ
+ยาสั่ง
+ยาสีฟัน
+ยาสูบ
+ยาหมู่
+ยาหยัง
+ยาหยี
+ยาหัด
+ยาอุนเด
+ยาเยีย
+ยาเส้น
+ยาà¹à¸”ง
+ยาà¹à¸à¸”
+ยาใจ
+ยาไฉน
+ยาไส้
+ยำ
+ยำยาม
+ยำเà¸à¸£à¸‡
+ยำเยง
+ยำเยีย
+ยิà¸
+ยิง
+ยิงฟัน
+ยิà¸à¸à¸°
+ยิน
+ยินดี
+ยินยอม
+ยินร้าย
+ยินà¹à¸„ลน
+ยินใจ
+ยิบ
+ยิบๆ
+ยิปซัม
+ยิปซี
+ยิม
+ยิมนาสติà¸
+ยิมเนเซียม
+ยิว
+ยิวยิตสู
+ยิหวา
+ยิ่ง
+ยิ่งยวด
+ยิ่งอำนวย
+ยิ้ม
+ยิ้มประà¸à¸­à¸š
+ยิ้มประยูร
+ยิ้มสยาม
+ยี
+ยีด
+ยีน
+ยียวน
+ยีราฟ
+ยีสต์
+ยี่
+ยี่à¸à¹ˆà¸²
+ยี่งอ
+ยี่ภู่
+ยี่สà¸
+ยี่สง
+ยี่สน
+ยี่สาน
+ยี่สาย
+ยี่สิบ
+ยี่สุ่น
+ยี่ส่าน
+ยี่หระ
+ยี่หร่า
+ยี่หุบ
+ยี่ห้อ
+ยี่เà¸
+ยี่เข่ง
+ยี่โถ
+ยี่โป้
+ยี้
+ยึà¸à¸¢à¸·à¸­
+ยึด
+ยึดต่อ
+ยึดถือ
+ยืด
+ยืดยาด
+ยืดหยุ่น
+ยืน
+ยืนต้น
+ยืนนาน
+ยืนยง
+ยืนยัน
+ยืนยาม
+ยืนยาว
+ยืนโรง
+ยืม
+ยื่น
+ยื้อ
+ยื้อยุด
+ยุ
+ยุà¸à¸”ิ
+ยุà¸à¸•à¹Œ
+ยุค
+ยุคนธร
+ยุคล
+ยุคลบาท
+ยุคันต
+ยุคันต์
+ยุง
+ยุงปัด
+ยุด
+ยุต
+ยุตติ
+ยุติ
+ยุติธรรม
+ยุทธ
+ยุทธà¸à¸²à¸£
+ยุทธนา
+ยุทธนาà¸à¸²à¸£
+ยุทธภัณฑ์
+ยุทธภูมิ
+ยุทธวิธี
+ยุทธศาสตร์
+ยุทธหัตถี
+ยุทธโยธา
+ยุทธ์
+ยุทโธปà¸à¸£à¸“์
+ยุบ
+ยุบยอบ
+ยุบยับ
+ยุบยิบ
+ยุบล
+ยุพ
+ยุพดี
+ยุพยง
+ยุพราช
+ยุพา
+ยุพาน
+ยุพเยาว์
+ยุพเรศ
+ยุยง
+ยุรยาตร
+ยุว
+ยุวà¸à¸™à¸´à¸©à¸
+ยุวชน
+ยุวดี
+ยุวราช
+ยุวา
+ยุวาน
+ยุà¹à¸¢à¸‡
+ยุà¹à¸«à¸¢à¹ˆ
+ยุโรป
+ยุ่ง
+ยุ่งเหยิง
+ยุ่งใจ
+ยุ่มย่าม
+ยุ่ย
+ยุ้ง
+ยุ้ย
+ยู
+ยูà¸à¸±à¸™à¸”า
+ยูง
+ยูซิส
+ยูตาห์
+ยูถะ
+ยูถิà¸à¸²
+ยูทิลิตี
+ยูนิà¸à¸‹à¹Œ
+ยูนิค
+ยูนิคอน
+ยูนิต
+ยูนิตี้
+ยูนิฟอร์ม
+ยูนิเซฟ
+ยูนิเวอร์ซิตี้
+ยูนิเวิร์ส
+ยูนิโค้ด
+ยูปะ
+ยูรยาตร
+ยูริà¸
+ยูลิซิส
+ยูษะ
+ยูสเซอร์
+ยูเครน
+ยูเคลส
+ยูเซด
+ยูเนียน
+ยูเนียนà¹à¸ˆà¹‡à¸„
+ยูเรนัส
+ยูเรนิไนต์
+ยูเรเนียม
+ยูเอส
+ยูเอ็น
+ยูโà¸à¸ªà¸¥à¸²à¹€à¸§à¸µà¸¢
+ยูโด
+ยูโทเปีย
+ยูโน
+ยูโร
+ยูโรเพียม
+ยูไนเตด
+ยูไนเต็ด
+ยู่
+ยู่ยี่
+ยโส
+ยโสธร
+ย่น
+ย่นย่อ
+ย่อ
+ย่อง
+ย่องà¸à¸£à¸´à¸š
+ย่องà¹à¸¢à¹ˆà¸‡
+ย่อท้อ
+ย่อพล
+ย่อม
+ย่อมเยา
+ย่อย
+ย่อยยับ
+ย่อย่น
+ย่อหน้า
+ย่อหย่อน
+ย่อà¹à¸¢à¹ˆ
+ย่อà¹à¸«à¸¢à¸‡
+ย่ะ
+ย่า
+ย่าง
+ย่างà¸à¸¸à¹‰à¸‡
+ย่าทวด
+ย่าน
+ย่านตาขาว
+ย่านลิเภา
+ย่านาง
+ย่าม
+ย่ามใจ
+ย่าหยา
+ย่ำ
+ย่ำยี
+ย่ำเทือà¸
+ย่ำà¹à¸¢à¹ˆ
+ย้วย
+ย้อง
+ย้อน
+ย้อนยอà¸
+ย้อม
+ย้อมใจ
+ย้อย
+ย้อà¹à¸¢à¹‰
+ย้าย
+ย้าว
+ย้ำ
+รà¸
+รà¸à¸Šà¸±à¸
+รà¸à¸Šà¹‰à¸²à¸‡
+รà¸à¸šà¸´à¸™
+รà¸à¸Ÿà¹‰à¸²
+รà¸à¸£à¸²à¸
+รà¸à¸£à¹‰à¸²à¸‡
+รง
+รงà¸à¸¸à¹Œ
+รงควัตถุ
+รงค์
+รงรอง
+รจนา
+รจิต
+รจเรข
+รจเลข
+รชà¸à¸°
+รชตะ
+รชนิ
+รชนีà¸à¸£
+รชะ
+รณ
+รณชัย
+รณภู
+รณภูมิ
+รณรงค์
+รณสถาน
+รณสิทธิ์พิชัย
+รณัà¸
+รด
+รดน้ำ
+รดี
+รตน
+รตนะ
+รตะ
+รติ
+รถ
+รถยนต์
+รถยา
+รถเมล์
+รถไฟ
+รถไฟฟ้า
+รน
+รบ
+รบà¸à¸§à¸™
+รบาà¸
+รบเร้า
+รพ
+รพิ
+รพี
+รม
+รมณี
+รมณีย
+รมณีย์
+รมย์
+รมเยศ
+รยะ
+รยางค์
+รวà¸
+รวง
+รวด
+รวดเร
+รวดเร็ว
+รวน
+รวนเร
+รวบ
+รวบรวม
+รวบรัด
+รวม
+รวมหัว
+รวมโชค
+รวมใจ
+รวย
+รวยริน
+รวยลม
+รวะ
+รวันดา
+รวิ
+รวิวาร
+รวี
+รศนา
+รส
+รสชาติ
+รสนา
+รสนิยม
+รสายนเวท
+รสิà¸
+รหัท
+รหัส
+รหิต
+รอ
+รอà¸
+รอง
+รองคอ
+รองช้ำ
+รองทรง
+รองทุน
+รองรัง
+รองรับ
+รองเง็ง
+รองเท้า
+รองเมือง
+รอด
+รอดตัว
+รอดพ้น
+รอน
+รอนà¹à¸£à¸¡
+รอนๆ
+รอบ
+รอบคอบ
+รอบรู้
+รอม
+รอมชอม
+รอมร่อ
+รอย
+รอยัล
+รอลี
+รอสซี
+ระ
+ระà¸à¸°
+ระà¸à¸²
+ระà¸à¸³
+ระà¸à¸³à¸™à¸²
+ระคน
+ระคาง
+ระคาย
+ระฆัง
+ระงม
+ระงับ
+ระงี่
+ระชวย
+ระดม
+ระดะ
+ระดับ
+ระดับทะเล
+ระดับทะเลปานà¸à¸¥à¸²à¸‡
+ระดู
+ระด่าว
+ระตู
+ระทà¸
+ระทด
+ระทม
+ระทวย
+ระทอด
+ระทา
+ระทึà¸
+ระทึง
+ระท้อ
+ระนอง
+ระนัม
+ระนาด
+ระนาบ
+ระนาบเอียง
+ระนาม
+ระนาว
+ระบบ
+ระบม
+ระบอบ
+ระบัด
+ระบับ
+ระบาà¸
+ระบาด
+ระบานี
+ระบาย
+ระบำ
+ระบิ
+ระบิล
+ระบือ
+ระบุ
+ระฟ้า
+ระมัดระวัง
+ระมา
+ระมาด
+ระยอง
+ระยะ
+ระยัง
+ระยัด
+ระยับ
+ระยั้ง
+ระยาน
+ระยาบ
+ระยำ
+ระยิบ
+ระย่อ
+ระย่อม
+ระย้า
+ระรวย
+ระรอง
+ระรัว
+ระราน
+ระราว
+ระริà¸
+ระรี่
+ระรึง
+ระรื่น
+ระร่อน
+ระร่าย
+ระลง
+ระลวง
+ระลอà¸
+ระลอง
+ระลัด
+ระลึà¸
+ระลุà¸
+ระลุง
+ระวัง
+ระวาง
+ระวาม
+ระวาย
+ระวิง
+ระสาย
+ระสี
+ระส่ำระสาย
+ระหง
+ระหวย
+ระหว่าง
+ระหอบ
+ระหัด
+ระหาย
+ระหุย
+ระห่ำ
+ระอา
+ระอุ
+ระเด่น
+ระเนน
+ระเนระนาด
+ระเนียด
+ระเบง
+ระเบิด
+ระเบิดไฮโดรเจน
+ระเบียง
+ระเบียน
+ระเบียบ
+ระเบียบวาระ
+ระเบ็ง
+ระเมียร
+ระเร
+ระเริง
+ระเร็ว
+ระเร้ง
+ระเลิง
+ระเหย
+ระเหิด
+ระเห็จ
+ระà¹à¸„ะ
+ระà¹à¸‡à¸°
+ระà¹à¸‡à¹‰
+ระà¹à¸”
+ระà¹à¸—ะ
+ระà¹à¸™à¸‡
+ระà¹à¸™à¸°
+ระà¹à¸šà¸š
+ระà¹à¸£à¸‡
+ระà¹à¸£à¹ˆ
+ระà¹à¸§à¸‡
+ระà¹à¸«à¸
+ระà¹à¸«à¸‡
+ระโนด
+ระโยง
+ระโหย
+ระใบ
+ระไว
+รัà¸
+รัà¸à¸‚สะ
+รัà¸à¸‚า
+รัà¸à¸‚ิต
+รัà¸à¸‚์
+รัà¸à¸”ป
+รัà¸à¸”ะ
+รัà¸à¸šà¸µà¹‰
+รัà¸à¸¢à¸¡
+รัà¸à¸©à¸²
+รัà¸à¸©à¹Œ
+รัà¸à¸©à¹Œà¸™à¸²à¹€à¸§à¸¨à¸™à¹Œ
+รัà¸à¸«à¸¡à¸¹
+รัà¸à¹€à¸£à¹ˆ
+รัà¸à¹à¸£à¹‰
+รัง
+รังà¸à¸²
+รังควาน
+รังค์
+รังดุม
+รังนà¸
+รังนาน
+รังบวบ
+รังมด
+รังรอง
+รังวัด
+รังสรร
+รังสรรค์
+รังสฤษฎ์
+รังสิ
+รังสิต
+รังสิมา
+รังสี
+รังสีคอสมิà¸
+รังสีวิทยา
+รังสีà¹à¸žà¸—ย์
+รังเà¸à¸µà¸¢à¸ˆ
+รังเพลิง
+รังเรข
+รังà¹à¸
+รังà¹à¸„
+รังà¹à¸•à¸™
+รังà¹à¸£à¸
+รังไข่
+รัจฉา
+รัช
+รัชà¸à¸°
+รัชà¸à¸²à¸¥
+รัชชุ
+รัชฎาภิเษà¸
+รัชด
+รัชดาภิเษà¸
+รัชทายาท
+รัชน
+รัชนะ
+รัชนี
+รัà¸à¸ˆà¸§à¸™
+รัà¸
+รัà¸à¸à¸£à¸“์
+รัà¸à¸—ูต
+รัà¸à¸˜à¸£à¸£à¸¡à¸™à¸¹à¸
+รัà¸à¸šà¸²à¸¥
+รัà¸à¸šà¸¸à¸£à¸¸à¸©
+รัà¸à¸›à¸£à¸°à¸¨à¸²à¸ªà¸™à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+รัà¸à¸›à¸£à¸°à¸¨à¸²à¸ªà¸™à¸¨à¸²à¸ªà¸™à¹Œ
+รัà¸à¸›à¸£à¸°à¸¨à¸²à¸ªà¸™à¹Œ
+รัà¸à¸›à¸£à¸°à¸«à¸²à¸£
+รัà¸à¸¡à¸™à¸•à¸£à¸µ
+รัà¸à¸§à¸´à¸ªà¸²à¸«à¸à¸´à¸ˆ
+รัà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+รัà¸à¸ªà¸ à¸²
+รัด
+รัดà¸à¸¸à¸¡
+รัดตัว
+รัดทึบ
+รัดรึง
+รัดรูป
+รัดเà¸à¸¥à¹‰à¸²
+รัต
+รัตà¸à¸±à¸¡à¸žà¸¥
+รัตคน
+รัตจันทน์
+รัตติ
+รัตติà¸à¸²à¸¥
+รัตน
+รัตนà¸à¸£à¸±à¸“ฑ์
+รัตนà¸à¸§à¸µ
+รัตนตรัย
+รัตนบัลลังà¸à¹Œ
+รัตนบุรี
+รัตนมณี
+รัตนะ
+รัตนา
+รัตนาà¸à¸£
+รัตนาธิเบศร์
+รัตนาราม
+รัตนโà¸à¸ªà¸´à¸™à¸—ร์
+รัตนโà¸à¸ªà¸´à¸™à¸—ร์สมโภช
+รัตน์
+รัตพัสตร์
+รัตภูมิ
+รัตมณี
+รัตมา
+รัถ
+รัถยา
+รัทเทอร์ฟอร์ด
+รัทเทอร์ฟอร์เดียม
+รัน
+รันทด
+รันทวย
+รันทำ
+รันธะ
+รันนิงนัมเบอร์
+รันอิน
+รันเวย์
+รันà¹à¸—ะ
+รันไทม์
+รับ
+รับคำ
+รับจ้าง
+รับปาà¸
+รับมือ
+รับรอง
+รับสั่ง
+รับà¹à¸‚à¸
+รัม
+รัมà¸
+รัมณีย
+รัมภา
+รัมมี่
+รัมย์
+รัย
+รัว
+รัศมิมัต
+รัศมิมาน
+รัศมี
+รัษฎาà¸à¸£
+รัส
+รัสสระ
+รัสสะ
+รัสเซลส์
+รัสเซีย
+รั่ว
+รั้ง
+รั้งรอ
+รั้น
+รั้ว
+รา
+ราà¸
+ราà¸à¸à¸²à¸™
+ราà¸à¸”ิน
+ราà¸à¸à¸­à¸¢
+ราà¸à¸Ÿà¸±à¸™
+ราà¸à¸©à¸ª
+ราà¸à¸ªà¸²à¸”
+ราà¸à¹‚ษส
+ราข้อ
+ราค
+ราคะ
+ราคา
+ราคิน
+ราคี
+ราง
+รางจืด
+รางชาง
+รางดำ
+รางนาน
+รางน้ำ
+รางวัล
+รางà¹à¸”ง
+ราช
+ราชà¸à¸£à¸µà¸‘า
+ราชà¸à¸²à¸£
+ราชà¸à¸´à¸ˆà¸ˆà¸²
+ราชครู
+ราชคฤห์
+ราชà¸à¸µ
+ราชà¸à¸²à¸™
+ราชดัด
+ราชดำริ
+ราชดำเนิน
+ราชดำเนินà¸à¸¥à¸²à¸‡
+ราชดำเนินนอà¸
+ราชดำเนินใน
+ราชตฤณมัย
+ราชติณมัย
+ราชทัณฑ์
+ราชทินนาม
+ราชทูต
+ราชธรรม
+ราชธานี
+ราชนิà¸à¸¸à¸¥
+ราชบพิธ
+ราชบัณฑิตยสถาน
+ราชบุตร
+ราชบุรี
+ราชบุรุษ
+ราชปรารภ
+ราชปะà¹à¸•à¸™
+ราชพฤà¸à¸©à¹Œ
+ราชพลี
+ราชภัà¸à¸”ี
+ราชภัฎ
+ราชภัà¸
+ราชมัล
+ราชมาษ
+ราชมาส
+ราชยาน
+ราชย์
+ราชลัà¸à¸ˆà¸à¸£
+ราชวงศ์
+ราชวรวิหาร
+ราชวราราม
+ราชวัง
+ราชวัติ
+ราชวิถี
+ราชวินิต
+ราชวโรงà¸à¸²à¸£
+ราชสà¸à¸¸à¸¥
+ราชสาสน์
+ราชสิงขร
+ราชสีมา
+ราชสีห์
+ราชะ
+ราชัน
+ราชันย์
+ราชัย
+ราชา
+ราชาธิบดี
+ราชาธิบาย
+ราชาธิราช
+ราชานุà¸à¸¹à¸¥
+ราชาภิเษà¸
+ราชาวดี
+ราชาวลี
+ราชาศัพท์
+ราชิ
+ราชินิà¸à¸¸à¸¥
+ราชินี
+ราชินีนาถ
+ราชินูปถัมภ์
+ราชูปถัมภ์
+ราชูปโภค
+ราชเทวี
+ราชโยค
+ราชโองà¸à¸²à¸£
+ราชโอรส
+ราà¸
+ราà¸à¸£à¸­à¸™
+ราด
+ราต
+ราตร
+ราตรี
+ราน
+ราบ
+ราบคาบ
+ราบาต
+ราปีà¸
+ราพณาสูร
+ราพณ์
+ราม
+รามคำà¹à¸«à¸‡
+รามบุตรี
+รามสูร
+รามอินทรา
+รามัà¸
+รามัน
+รามา
+รามาธิบดี
+รามเà¸à¸µà¸¢à¸£à¸•à¸´à¹Œ
+ราย
+รายà¸à¸²à¸£
+รายงาน
+รายทาง
+รายรับ
+รายวิชา
+ราว
+ราวà¸à¸°
+ราวà¸à¸±à¸š
+ราวป่า
+ราวี
+ราศี
+ราษฎร
+ราษฎร์
+ราษฎร์บูรณะ
+ราษฎร์พัฒนา
+ราษฎร์รังสรรค์
+ราษฎร์ศรัทธา
+ราษฎร์อุทิศ
+ราษตรี
+ราษีไศล
+ราสี
+ราหุ
+ราหู
+ราเชน
+ราเชนทร์
+ราเริด
+ราà¹à¸£à¸¡
+ราโชบาย
+ราโชปถัมภ์
+ราโชวาท
+ราโท
+ราโรตองà¸à¸²
+รำ
+รำคาà¸
+รำงับ
+รำจวน
+รำซุย
+รำบาà¸
+รำผี
+รำพัด
+รำพัน
+รำพาย
+รำพึง
+รำมะนา
+รำมะà¹à¸‚
+รำยวน
+รำย้อย
+รำรงค์
+รำราà¸
+รำรำ
+รำลึà¸
+รำวง
+รำหัด
+รำหัส
+รำเขนง
+รำเท้า
+รำเพย
+รำเร
+รำà¹à¸žà¸™
+รำà¹à¸¢à¹‰
+รำโคม
+รำไพ
+รำไร
+ริ
+ริà¸
+ริà¸à¸²
+ริงโทน
+ริชมอนด์
+ริดสีดวง
+ริดเดอร์ไดเจสท์
+ริทัม
+ริน
+ริบ
+ริบบิ้น
+ริบรี่
+ริปอง
+ริปุ
+ริม
+ริยาด
+ริวà¸à¸´à¸§
+ริษยา
+ริอ่าน
+ริเริ่ม
+ริเว็ท
+ริ้น
+ริ้ว
+รี
+รีà¸à¸´à¸ªà¹€à¸•à¸­à¸£à¹Œ
+รีคอล
+รีจอยซ์
+รีจิสทรี
+รีซอร์ส
+รีซิสเตอร์
+รีซีพท์
+รีซีฟ
+รีด
+รีดลูà¸
+รีดัà¸à¸Šà¸±à¸™
+รีดิวซ์
+รีต
+รีบ
+รีบรุด
+รีพอร์ต
+รีพับลิà¸
+รีพีท
+รีฟิลล์
+รีฟิวส์
+รีม
+รีมาร์ค
+รีมิท
+รีรอ
+รีรีด
+รีล
+รีลีซ
+รีวอร์ด
+รีวิว
+รีสอร์ท
+รีอัลà¸à¸²à¸£à¹Œ
+รีเควซท์
+รีเจคชัน
+รีเจคท์
+รีเจนซี
+รีเจนท์
+รีเซพชัน
+รีเซ็ต
+รีเทล
+รีเทอร์น
+รีเนียม
+รีเบà¸à¹„คต์
+รีเฟรช
+รีเฟลà¸à¸‹à¹Œ
+รีเฟลคท์
+รีเฟอร์
+รีเมมเบอร์
+รีเลย์
+รีเวอร์ส
+รีเสิร์ช
+รีเสิร์ท
+รีà¹à¸žà¸£à¹Œ
+รีà¹à¸¥à¸à¸‹à¹Œ
+รีà¹à¸­à¸„ชั่น
+รีโมต
+รีโมท
+รีโมทคอนโทรล
+รีไซเคิล
+รีไทร์
+รีไวส์
+รี่
+รี้
+รี้พล
+รี้ริà¸
+รึà¸à¸•à¹Œ
+รึง
+รึ้ง
+รือ
+รือเสาะ
+รื่น
+รื่นรมย์
+รื่นเริง
+รื้น
+รื้อ
+รื้อฟื้น
+รุ
+รุà¸
+รุà¸à¸‚
+รุà¸à¸‚à¸à¸°
+รุà¸à¸‚ชาติ
+รุà¸à¸‚มูล
+รุà¸à¸‚า
+รุà¸à¸‚เทวดา
+รุà¸à¸‚์
+รุà¸à¸†à¸²à¸•
+รุà¸à¸£à¸²à¸™
+รุà¸à¸£à¸´à¸
+รุà¸à¸£à¸¸à¸¢
+รุà¸à¸£à¹‰à¸™
+รุà¸à¸©à¸°
+รุข้าว
+รุงรัง
+รุจ
+รุจน
+รุจน์
+รุจา
+รุจิ
+รุจิระ
+รุจิรา
+รุจิเสรี
+รุจี
+รุชา
+รุด
+รุต
+รุทธ์
+รุทร
+รุธิร
+รุน
+รุนà¹à¸£à¸‡
+รุบรู่
+รุม
+รุมไข้
+รุมไฟ
+รุย
+รุรุ
+รุษà¸à¹Œ
+รุหะ
+รุหาà¸
+รุ่ง
+รุ่งประชา
+รุ่งอรุณ
+รุ่งเรือง
+รุ่งโรจน์
+รุ่น
+รุ่ม
+รุ่มร่าม
+รุ่ย
+รุ่ยร่าย
+รุ้ง
+รุ้งà¸à¸´à¸™à¸™à¹‰à¸³
+รู
+รูจ
+รูจี
+รูด
+รูท
+รูทีเนียม
+รูทเบียร์
+รูบิเดียม
+รูบี
+รูป
+รูปà¸à¸²à¸£
+รูปชี
+รูปภาพ
+รูปลอà¸
+รูปิยะ
+รูปี
+รูสโซ
+รูเบลไลต์
+รูเบีย
+รูเมเนีย
+รูเล็ตต์
+รูไทล์
+รู่
+รู้
+รู้คิด
+รู้คุณ
+รู้จัà¸
+รู้ตัว
+รู้ทัน
+รู้ที
+รู้มาà¸
+รู้สึà¸
+รู้ไส้
+รเถสภะ
+รโห
+รโหคต
+รโหà¸à¸²à¸™
+ร็อà¸à¸‹à¸­à¸¥à¸—็
+ร่น
+ร่ม
+ร่มธง
+ร่มผ้า
+ร่มรื่น
+ร่มเà¸à¸¨
+ร่มเย็น
+ร่มโพธิ์
+ร่วง
+ร่วน
+ร่วม
+ร่วมจิตต์
+ร่วมจิตร
+ร่วมน้ำใจ
+ร่วมพัฒนา
+ร่วมมิตร
+ร่วมฤดี
+ร่วมวงศ์พัฒนา
+ร่วมศิริมิตร
+ร่วมสันติ
+ร่วมสามัคคี
+ร่วมใจ
+ร่วมใจสามัคคี
+ร่อ
+ร่อง
+ร่องคำ
+ร่องมด
+ร่อน
+ร่อนพิบูลย์
+ร่อย
+ร่อà¹à¸£à¹ˆ
+ร่า
+ร่าง
+ร่างà¸à¸²à¸¢
+ร่างà¹à¸«
+ร่าน
+ร่าย
+ร่าเริง
+ร่ำ
+ร่ำรวย
+ร่ำเรียน
+ร่ำไป
+ร่ำไร
+ร่ำไห้
+ร้น
+ร้อง
+ร้องà¸à¸§à¸²à¸‡
+ร้องขอ
+ร้องไห้
+ร้อน
+ร้อนต
+ร้อนรน
+ร้อย
+ร้อยเอ็ด
+ร้า
+ร้าง
+ร้าน
+ร้าย
+ร้ายà¸
+ร้ายà¸à¸²à¸ˆ
+ร้าว
+ร้าวราน
+ฤà¸à¸©à¸“ะ
+ฤà¸à¸©à¹Œ
+ฤà¸à¸©à¹Œà¸šà¸™
+ฤคเวท
+ฤชา
+ฤชาà¸à¸£
+ฤชุ
+ฤณ
+ฤดี
+ฤดียา
+ฤดู
+ฤดูà¸à¸²à¸¥
+ฤต
+ฤทธา
+ฤทธิณรงค์รอน
+ฤทธิไà¸à¸£
+ฤทธิ์
+ฤทัย
+ฤษภ
+ฤษยา
+ฤษี
+ฤา
+ฤาชุ
+ฤาชุตา
+ฤาดี
+ฤาทัย
+ฤาษี
+ฤาสาย
+ฤาเยา
+ฤๅ
+ฤๅชุ
+ฤๅชุตา
+ฤๅดี
+ฤๅทัย
+ฤๅษี
+ฤๅสาย
+ฤๅเยา
+ลà¸à¸²à¸£
+ลà¸à¸¸à¸ˆ
+ลคุฑ
+ลฆุ
+ลฆุจิต
+ลฆุภาพ
+ลง
+ลงà¸à¸¥à¸­à¸™
+ลงà¸à¸²
+ลงขัน
+ลงข่าว
+ลงคอ
+ลงชื่อ
+ลงตัว
+ลงทอง
+ลงทุน
+ลงท่า
+ลงท้อง
+ลงท้าย
+ลงนา
+ลงผี
+ลงà¸à¸±à¸
+ลงพื้น
+ลงพุง
+ลงมีด
+ลงมือ
+ลงยา
+ลงรัà¸
+ลงราà¸
+ลงสรง
+ลงหิน
+ลงอาà¸à¸²
+ลงเงิน
+ลงเอย
+ลงà¹à¸‚à¸
+ลงà¹à¸”ง
+ลงà¹à¸›à¹‰à¸‡
+ลงà¹à¸£à¸‡
+ลงโทษ
+ลงโรง
+ลด
+ลดละ
+ลดา
+ลดาวัลย์
+ลน
+ลนควัน
+ลนลาน
+ลบ
+ลบม
+ลบรอย
+ลบล้าง
+ลบหลู่
+ลบอง
+ลบโลà¸
+ลปà¸
+ลปน
+ลพบุรี
+ลพุช
+ลม
+ลมà¸à¸£à¸”
+ลมขึ้น
+ลมค้า
+ลมงวง
+ลมจับ
+ลมทวนลมค้า
+ลมทะเล
+ลมบà¸
+ลมปราณ
+ลมปาà¸
+ลมพิษ
+ลมล่อง
+ลมว่าว
+ลมาด
+ลมเสีย
+ลมà¹à¸”ง
+ลมà¹à¸¥à¹‰à¸‡
+ลมๆ
+ลรรลุง
+ลลนา
+ลลาฎ
+ลลาà¸
+ลลิต
+ลวà¸
+ลวง
+ลวงค์
+ลวงตา
+ลวณะ
+ลวด
+ลวดลาย
+ลวนลาม
+ลวนะ
+ลวะ
+ลวิตร
+ลสิà¸à¸²
+ลหุ
+ลหุà¸
+ลหุโทษ
+ลอà¸
+ลอà¸à¸¥à¸²à¸¢
+ลอà¸à¸²à¸£à¸´à¸—ึม
+ลอà¸à¹€à¸¥à¸™
+ลอà¸à¹à¸¥à¸
+ลอง
+ลองà¸à¸­à¸‡
+ลองจิจูด
+ลองดี
+ลองเพลย์
+ลองใจ
+ลองใน
+ลองไน
+ลอจิค
+ลอด
+ลอด์จ
+ลอตเตอรี่
+ลอน
+ลอนดริ
+ลอนดอน
+ลอนทอง
+ลอนเทนนิส
+ลอบ
+ลอบà¸à¸±à¸”
+ลอม
+ลอมชอม
+ลอมบอà¸
+ลอมพอà¸
+ลอมเบลน
+ลอย
+ลอยคอ
+ลอยชาย
+ลอยดอà¸
+ลอยตัว
+ลอยนวล
+ลอยบาป
+ลอยฟ้า
+ลอยลำ
+ลอยสาย
+ลอยเมฆ
+ลอยà¹à¸ž
+ลอยๆ
+ลอร์ด
+ลอร์เรนเซียม
+ลอว์ซอไนต์
+ลอว์เรนเซียม
+ลออ
+ลอà¹à¸¥à¸™à¸”์
+ละ
+ละà¸à¸¥
+ละคร
+ละครยà¸
+ละคิ
+ละคึà¸
+ละงาด
+ละงิด
+ละงู
+ละติจูด
+ละติน
+ละทิ้ง
+ละบม
+ละบอง
+ละบัด
+ละบือ
+ละพยศ
+ละมั่ง
+ละมา
+ละมาน
+ละมือ
+ละมุ
+ละมุด
+ละมุน
+ละม่อม
+ละม้าย
+ละรี
+ละลด
+ละลวย
+ละลอà¸
+ละลัง
+ละลัด
+ละลาน
+ละลาบ
+ละลาย
+ละลิบ
+ละลุง
+ละลุม
+ละล้วง
+ละล้า
+ละล้าว
+ละวล
+ละวาง
+ละวาด
+ละว้อ
+ละว้า
+ละหมาด
+ละหลัด
+ละหาน
+ละหานทราย
+ละหุ่ง
+ละห้อย
+ละอง
+ละออง
+ละอาย
+ละอุ่น
+ละเบ็ง
+ละเมอ
+ละเมาะ
+ละเมิด
+ละเมิน
+ละเมียด
+ละเม็ด
+ละเลง
+ละเลย
+ละเลาะ
+ละเลิง
+ละเลียด
+ละเล้า
+ละเวง
+ละเว้น
+ละเหย
+ละเหี่ย
+ละเอียด
+ละà¹à¸¡
+ละà¹à¸¡à¸°
+ละà¹à¸§à¸
+ละà¹à¸­à¸™
+ละโบม
+ละโมà¸
+ละโมบ
+ละโว้
+ละไม
+ละไล้
+ละไว้
+ลัà¸
+ลัà¸à¸à¸²à¸”ิฟ
+ลัà¸à¸‚ณะ
+ลัà¸à¸‚ณา
+ลัà¸à¸‚ะ
+ลัà¸à¸‚ี
+ลัà¸à¸žà¸²
+ลัà¸à¸¥à¸­à¸š
+ลัà¸à¸¥à¸²à¸¢
+ลัà¸à¸¨à¸ž
+ลัà¸à¸©à¸“ะ
+ลัà¸à¸©à¸“ะเà¸à¸µà¸¢à¸£à¸•à¸´
+ลัà¸à¸©à¸“์
+ลัà¸à¸©à¸¡à¸µ
+ลัà¸à¸©à¸°
+ลัà¸à¸ªà¸µ
+ลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸­à¸£à¹Œà¸
+ลัà¸à¹€à¸žà¸¨
+ลัà¸à¹„à¸à¹ˆ
+ลัคà¸à¸µà¹‰
+ลัคคะ
+ลัคน
+ลัคนา
+ลัคน์
+ลัง
+ลังà¸à¸²
+ลังคิ
+ลังถึง
+ลังลอง
+ลังสาด
+ลังเà¸à¹à¸¥à¸™à¸”์
+ลังเล
+ลัชชา
+ลัชชี
+ลัà¸à¸ˆà¸à¸£
+ลัà¸à¸ˆà¹Œ
+ลัà¸à¸‰
+ลัà¸à¸‰à¸à¸£
+ลัà¸à¸‰à¸™à¹Œ
+ลัà¸à¸‰à¹Œ
+ลัà¸à¸´
+ลัด
+ลัดคิว
+ลัดวงจร
+ลัดา
+ลัดà¹à¸¥à¸‡
+ลัทธิ
+ลัทธ์
+ลัน
+ลันช์
+ลันซาโรเต
+ลันดา
+ลันทวย
+ลันเต
+ลันเตา
+ลันโทม
+ลันไต
+ลับ
+ลับตา
+ลับปาà¸
+ลับลี้
+ลับล่อ
+ลับหู
+ลับà¹à¸¥
+ลัพธิ
+ลัพธ์
+ลัภนะ
+ลัภย์
+ลัมพ์
+ลัย
+ลัยà¸à¸²à¸¥
+ลัยคต
+ลั่ง
+ลั่น
+ลั่นทม
+ลั่นนà¸
+ลั่นไà¸
+ลา
+ลาà¸
+ลาà¸à¸¥à¸±à¸š
+ลาà¸à¸©à¸²
+ลาà¸à¸­à¸ª
+ลาขา
+ลาง
+ลางคัล
+ลางงิด
+ลางที
+ลางลิง
+ลางสาด
+ลางาด
+ลาช
+ลาซา
+ลาซาล
+ลาซูไรต์
+ลาซูไลต์
+ลาà¸
+ลาà¸à¸—ัà¸
+ลาด
+ลาดà¸à¸£à¸°à¸šà¸±à¸‡
+ลาดทวีป
+ลาดบัวหลวง
+ลาดพร้าว
+ลาดยาง
+ลาดยาว
+ลาดหลุมà¹à¸à¹‰à¸§
+ลาดเท
+ลาดเลา
+ลาตาย
+ลาน
+ลานนาบุà¸
+ลานสะà¸à¸²
+ลานสัà¸
+ลาบ
+ลาบวน
+ลาป
+ลาปาซ
+ลาพอน
+ลาพิสลาซูลี
+ลาพุ
+ลาภ
+ลาม
+ลามà¸
+ลามปาม
+ลามลวน
+ลามะ
+ลาย
+ลายขัด
+ลายตา
+ลายน้ำ
+ลายมือ
+ลายสอ
+ลายสอง
+ลายสาบ
+ลายสือ
+ลายฮ่อ
+ลายเทศ
+ลายเท้า
+ลายà¹à¸—ง
+ลายไม้
+ลาลนะ
+ลาลส
+ลาลา
+ลาว
+ลาวà¸
+ลาวัณย์
+ลาวา
+ลาสนะ
+ลาเง็ด
+ลาเท็à¸à¸‹à¹Œ
+ลาเพ
+ลาเวนเดอร์
+ลาโนลิน
+ลาโรง
+ลาโลà¸
+ลาไน
+ลำ
+ลำคลอง
+ลำงาด
+ลำดวน
+ลำดับ
+ลำตัด
+ลำต้น
+ลำธาร
+ลำนัà¸
+ลำนำ
+ลำน้ำ
+ลำบอง
+ลำบาà¸
+ลำบุ
+ลำปาง
+ลำปำ
+ลำพวน
+ลำพอง
+ลำพัง
+ลำพู
+ลำพูน
+ลำภุขัน
+ลำมาด
+ลำมาบ
+ลำยอง
+ลำยา
+ลำลอง
+ลำลาบ
+ลำลำ
+ลำลึà¸
+ลำลูà¸à¸à¸²
+ลำสาลี
+ลำหนัà¸
+ลำหิน
+ลำห้วย
+ลำอุด
+ลำเข็à¸
+ลำเค็à¸
+ลำเจียà¸
+ลำเจียà¸à¸šà¸¸à¸à¸Šà¹ˆà¸§à¸¢
+ลำเนา
+ลำเพา
+ลำเพ็à¸
+ลำเมาะ
+ลำเลาะ
+ลำเลิà¸
+ลำเลียง
+ลำเสา
+ลำเอียง
+ลำà¹à¸‚
+ลำà¹à¸‚น
+ลำà¹à¸‚็ง
+ลำà¹à¸‚้ง
+ลำà¹à¸žà¸‡
+ลำà¹à¸žà¸™
+ลำà¹à¸ªà¸‡
+ลำโพง
+ลำโอง
+ลำไพ่
+ลำไย
+ลำไส้
+ลำไส้เล็à¸
+ลำไส้ใหà¸à¹ˆ
+ลิ
+ลิà¸à¸‚า
+ลิà¸à¸©à¸²
+ลิà¸à¸¸à¸ˆ
+ลิà¸à¸¹à¹€à¸£à¸µà¸¢à¸™
+ลิà¸à¹„นต์
+ลิขนะ
+ลิขสิทธิ์
+ลิขิต
+ลิควิด
+ลิคเตนสไตน์
+ลิง
+ลิงà¸à¸²à¸£
+ลิงà¸à¹Œ
+ลิงค์
+ลิงปิ้ง
+ลิงลม
+ลิงโลด
+ลิด
+ลิดรอน
+ลิต
+ลิตมัส
+ลิตร
+ลิตเติลร็อà¸
+ลิธัวเนีย
+ลินคอล์น
+ลินจง
+ลินลา
+ลินสีด
+ลินิà¸à¸‹à¹Œ
+ลินิน
+ลิบ
+ลิบลับ
+ลิปซิง
+ลิปดา
+ลิปต์
+ลิปสติà¸
+ลิปิ
+ลิปิà¸à¸£
+ลิปโซ
+ลิฟต์
+ลิฟท์à¹à¸šà¹‡à¸„
+ลิมปนะ
+ลิมป์
+ลิมา
+ลิมิท
+ลิมิเตด
+ลิลลี่
+ลิลิต
+ลิว
+ลิวà¹à¸„ส
+ลิสง
+ลิสท์
+ลิสบอน
+ลิเà¸
+ลิเทอร์เรเจอร์
+ลิเทียม
+ลิเบรอะวิล
+ลิเบอรัล
+ลิเบอร์ตี้
+ลิเบีย
+ลิเภา
+ลิเวอร์พูล
+ลิโนซา
+ลิโมซีน
+ลิ่น
+ลิ่ม
+ลิ่ว
+ลิ้น
+ลิ้นจี่
+ลิ้นลม
+ลิ้ม
+ลี
+ลีà¸
+ลีซอ
+ลีดเดอร์
+ลีนุà¸à¸‹à¹Œ
+ลีบ
+ลีลา
+ลีลาศ
+ลีลาส
+ลีวาร์ด
+ลีฬหา
+ลี่
+ลี้
+ลี้ลับ
+ลึà¸
+ลึà¸à¸¥à¸±à¸š
+ลึà¸à¸¥à¹‰à¸³
+ลึงค์
+ลืด
+ลืบ
+ลืม
+ลืมตน
+ลืมตัว
+ลืมตา
+ลืมต้น
+ลือ
+ลือชา
+ลือนาม
+ลือสาย
+ลื่น
+ลื่อ
+ลื้น
+ลื้อ
+ลุ
+ลุà¸
+ลุà¸à¸¥à¸™
+ลุà¸à¸¥à¸²à¸¡
+ลุà¸à¸®à¸·à¸­
+ลุง
+ลุงพัง
+ลุดวิไà¸à¸•à¹Œ
+ลุต
+ลุท
+ลุทà¸à¸°
+ลุทธ์
+ลุปต์
+ลุพธà¸à¸°
+ลุพธ์
+ลุมป์
+ลุมพี
+ลุมพู
+ลุย
+ลุยเซียนา
+ลุลาย
+ลุล่วง
+ลุสา
+ลุสิà¸à¸²
+ลุ่น
+ลุ่นๆ
+ลุ่ม
+ลุ่มพัฒนา
+ลุ่ย
+ลุ่ยหู
+ลุ้ง
+ลุ้น
+ลุ้ย
+ลูà¸
+ลูà¸à¸à¸
+ลูà¸à¸à¸£à¸‡
+ลูà¸à¸à¸¸à¸à¹à¸ˆ
+ลูà¸à¸‚ัด
+ลูà¸à¸‚ุน
+ลูà¸à¸„อ
+ลูà¸à¸„อà¸
+ลูà¸à¸„ัน
+ลูà¸à¸„ำ
+ลูà¸à¸„ิด
+ลูà¸à¸„ู่
+ลูà¸à¸„้า
+ลูà¸à¸ˆà¹‰à¸²à¸‡
+ลูà¸à¸Šà¸²à¸¢
+ลูà¸à¸Šà¸´à¸”
+ลูà¸à¸‹à¸­à¸‡
+ลูà¸à¸”อà¸
+ลูà¸à¸—อย
+ลูà¸à¸™à¸²
+ลูà¸à¸™à¹‰à¸³
+ลูà¸à¸šà¸—
+ลูà¸à¸šà¸§à¸š
+ลูà¸à¸šà¸­à¸¥
+ลูà¸à¸šà¸²à¸¨à¸à¹Œ
+ลูà¸à¸šà¸´à¸”
+ลูà¸à¸›à¸¥à¸°
+ลูà¸à¸›à¸¥à¸²
+ลูà¸à¸›à¸±à¸”
+ลูà¸à¸›à¸²
+ลูà¸à¸›à¸·à¸™
+ลูà¸à¸›à¹ˆà¸²
+ลูà¸à¸œà¸ªà¸¡
+ลูà¸à¸žà¸¥à¸¹
+ลูà¸à¸žà¸µà¹ˆ
+ลูà¸à¸Ÿà¸±à¸
+ลูà¸à¸Ÿà¸¹à¸
+ลูà¸à¸¡à¸·à¸­
+ลูà¸à¸¢à¸­
+ลูà¸à¸£à¸­à¸
+ลูà¸à¸£à¸±à¸‡
+ลูà¸à¸¥à¸¡
+ลูà¸à¸¥à¸­à¸¢
+ลูà¸à¸¥à¹ˆà¸²
+ลูà¸à¸¥à¹‰à¸­
+ลูà¸à¸§à¸‡
+ลูà¸à¸§à¸±à¸”
+ลูà¸à¸§à¸±à¸§
+ลูà¸à¸ªà¸²à¸§
+ลูà¸à¸ªà¸¹à¸š
+ลูà¸à¸«à¸™à¸¹
+ลูà¸à¸«à¸¡à¸”
+ลูà¸à¸«à¸¢à¸µ
+ลูà¸à¸«à¸¥à¸‡
+ลูà¸à¸«à¸¥à¸§à¸‡
+ลูà¸à¸«à¸²à¸š
+ลูà¸à¸«à¸´à¸™
+ลูà¸à¸«à¸µà¸š
+ลูà¸à¸­à¸¡
+ลูà¸à¹€à¸à¸”
+ลูà¸à¹€à¸‚ย
+ลูà¸à¹€à¸•à¹‹à¸²
+ลูà¸à¹€à¸˜à¸­
+ลูà¸à¹€à¸«à¹‡à¸š
+ลูà¸à¹à¸•à¸
+ลูà¸à¹à¸–ว
+ลูà¸à¹à¸›
+ลูà¸à¹à¸«
+ลูà¸à¹‚ซ่
+ลูà¸à¹‚ดด
+ลูà¸à¹‚ป่ง
+ลูà¸à¹‚ม่
+ลูà¸à¹‚ยน
+ลูà¸à¹‚ลà¸
+ลูà¸à¹„à¸à¹ˆ
+ลูà¸à¹„ผ่
+ลูà¸à¹„ฟ
+ลูà¸à¹„ม้
+ลูà¸à¹„ล่
+ลูขะ
+ลูชู
+ลูซอน
+ลูซาà¸à¸²
+ลูตา
+ลูทิเซียม
+ลูทีเชียม
+ลูนะ
+ลูน่าร์
+ลูบ
+ลูบคม
+ลูบคลำ
+ลูบตัว
+ลูบไล้
+ลูอันดา
+ลูเธอร์รัน
+ลูโคซีน
+ลูไซต์
+ลู่
+ลู่ทาง
+ล็อà¸
+ล็อà¸à¸­à¸´à¸™
+ล็อà¸à¹€à¸à¸•
+ล็อค
+ล็อคเà¸à¸­à¸£à¹Œ
+ล็อบบี้
+ล็อบสเตอร์
+ล่ง
+ล่น
+ล่ม
+ล่มจม
+ล่มฟ้า
+ล่วง
+ล่วงคำ
+ล่วงà¹à¸›
+ล่วม
+ล่อ
+ล่อง
+ล่องหน
+ล่อน
+ล่อนจ้อน
+ล่อยๆ
+ล่อลวง
+ล่อà¹à¸¥à¹ˆ
+ล่ะ
+ล่า
+ล่าง
+ล่าช้า
+ล่าน
+ล่าม
+ล่าสุด
+ล่ำ
+ล่ำลา
+ล่ำสัน
+ล้งเล้ง
+ล้น
+ล้นพ้น
+ล้นหลาม
+ล้นเà¸à¸¥à¹‰à¸²à¸¯
+ล้ม
+ล้มลุà¸
+ล้วง
+ล้วน
+ล้วนๆ
+ล้อ
+ล้อม
+ล้อมป
+ล้อมวง
+ล้า
+ล้าง
+ล้างสมอง
+ล้าต้า
+ล้าน
+ล้าย
+ล้ำ
+ล้ำค่า
+ล้ำยุค
+ล้ำà¹à¸”น
+วà¸
+วà¸à¸°
+วà¸à¸¸à¸¥
+วง
+วงà¸à¸•
+วงà¸à¸š
+วงà¸à¸¥à¸¡
+วงà¸à¸²à¸£
+วงà¸à¹Œ
+วงจร
+วงจรปิด
+วงจรเปิด
+วงนอà¸
+วงพาด
+วงรี
+วงล้อม
+วงวัง
+วงศà¸à¸£
+วงศา
+วงศ์
+วงศ์สว่าง
+วงษ์
+วงษ์ขวัà¸à¸­à¸™à¸¸à¸ªà¸£à¸“์
+วงเงิน
+วงเล็บ
+วงà¹à¸«à¸§à¸™
+วงใน
+วจนะ
+วจะ
+วจี
+วจีเภท
+วชะ
+วชิร
+วชิรธรรม
+วชิระ
+วชิราวุธ
+วฎะ
+วฎาà¸à¸£
+วฎุมะ
+วณบัตร
+วณพันธน์
+วณะ
+วณิช
+วณิชชา
+วณิชยา
+วณิชย์
+วณิพà¸
+วดี
+วตะ
+วทนะ
+วทะ
+วทัà¸à¸à¸¸à¸•à¸²
+วทัà¸à¸à¸¹
+วทานิย
+วธุà¸à¸²
+วธู
+วน
+วนจร
+วนจรà¸
+วนภู
+วนภูมิ
+วนศาสตร์
+วนสณฑ์
+วนอุทยาน
+วนัปติ
+วนัส
+วนา
+วนาดอน
+วนานต์
+วนาราม
+วนาลัย
+วนาลี
+วนาวาส
+วนาศรม
+วนิดา
+วนิพà¸
+วปนะ
+วปุ
+วยัคฆ์
+วยัมหะ
+วยัสย์
+วยาฆร์
+วยาธิ
+วรà¸à¸²à¸¢
+วรงค์
+วรจัà¸à¸£
+วรณะ
+วรดนู
+วรทาน
+วรพิม
+วรมหาวิหาร
+วรรค
+วรรคย์
+วรรช
+วรรชย์
+วรรณ
+วรรณà¸à¸£à¸£à¸¡
+วรรณคดี
+วรรณนา
+วรรณพฤติ
+วรรณยุà¸à¸•à¹Œ
+วรรณยุต
+วรรณศิลป์
+วรรณะ
+วรรณี
+วรรณึà¸
+วรรธ
+วรรธà¸
+วรรธนะ
+วรรษ
+วรรษา
+วรวิหาร
+วรัà¸à¸à¸¹
+วราà¸à¸°
+วราหะ
+วราห์
+วรุณ
+วรุตดม
+วรุตมะ
+วรูถ
+วฤà¸
+วฤษภ
+วฤษล
+วลัช
+วลัà¸à¸Šà¸™à¹Œ
+วลัà¸à¸Šà¹Œ
+วลัย
+วลาหà¸
+วลี
+วศะ
+วศิน
+วสนะ
+วสภ
+วสภะ
+วสละ
+วสลี
+วสวัตตี
+วสะ
+วสันตดิลà¸
+วสันตวิษุวัต
+วสันต์
+วสา
+วสี
+วสุ
+วสุธา
+วสุนธรา
+วสุมดี
+วหะ
+วหา
+วอ
+วอà¸
+วอà¸à¹à¸§à¸
+วอชิงตัน
+วอด
+วอดวาย
+วอน
+วอฟเฟิล
+วอยซ์
+วอรี่
+วอร์ซอ
+วอร์ม
+วอร์มซี
+วอร์มอัพ
+วอร์à¹à¸£à¸™à¸—์
+วอลตา
+วอลทซ์
+วอลล์สตรีท
+วอลสตรีท
+วอลุ่ม
+วอลเปเปอร์
+วอลเลย์
+วอลเลย์บอล
+วอล์คเอาท์
+วอเตอร์พรู๊ฟ
+วอà¹à¸§
+วะ
+วัà¸
+วัà¸à¸à¸°
+วัค
+วัคคิย
+วัคคีย์
+วัคคุ
+วัคซีน
+วัง
+วังà¸à¹Œ
+วังชา
+วังชิน
+วังทรายพูน
+วังทอง
+วังทองหลาง
+วังน้อย
+วังน้ำเย็น
+วังวน
+วังศะ
+วังสะพุง
+วังสามหมอ
+วังเดิม
+วังเวง
+วังเหนือ
+วังใหà¸à¹ˆ
+วังไผ่
+วัจจะ
+วัจฉà¸
+วัจฉละ
+วัจฉ์
+วัจนะ
+วัจน์
+วัช
+วัชชะ
+วัชฌ์
+วัชพืช
+วัชร
+วัชรพล
+วัชระ
+วัชรินทร์
+วัชรี
+วัà¸à¸ˆà¸
+วัà¸à¸ˆà¸™à¸°
+วัà¸à¸Œà¹Œ
+วัฎ
+วัฎà¸à¸°
+วัฎฎิ
+วัà¸à¸ˆà¸±à¸à¸£
+วัà¸à¸à¸´
+วัà¸à¸ªà¸‡à¸ªà¸²à¸£
+วัฒà¸à¸°
+วัฒà¸à¸µ
+วัฒน
+วัฒนธรรม
+วัฒนวงศ์
+วัฒนะ
+วัฒนะสุข
+วัฒนา
+วัฒนานคร
+วัณ
+วัณà¸à¹Œ
+วัณณะ
+วัณนา
+วัณโรค
+วัด
+วัดà¸à¸¥à¸²à¸‡
+วัดà¸à¸¥à¹‰à¸§à¸¢
+วัดà¸à¸±à¸™à¸•à¸¢à¸²à¸£à¸²à¸¡
+วัดà¸à¸³à¹à¸žà¸‡
+วัดครุฑ
+วัดคฤหบดี
+วัดจาà¸à¹à¸”ง
+วัดชมภูเวà¸
+วัดด่าน
+วัดตะพาน
+วัดทองนาปรัง
+วัดทางหลวง
+วัดทุ่งลานนา
+วัดนครอินทร์
+วัดน้อยนอà¸
+วัดบางà¸à¸£à¸°à¸ªà¸­à¸š
+วัดบางน้ำผึ้งนอà¸
+วัดบางวัว
+วัดบางสะà¹à¸
+วัดบางหà¸à¹‰à¸²à¹à¸žà¸£à¸
+วัดบึงทองหลาง
+วัดบุà¸à¸£à¸­à¸”
+วัดปรà¸
+วัดปาà¸à¸—่อ
+วัดผล
+วัดพระร่วงประสิทธิ์
+วัดมัชฌันติà¸à¸²à¸£à¸²à¸¡
+วัดยาง
+วัดรวà¸
+วัดลาดปลาเค้า
+วัดลาดพร้าว
+วัดลานนาบุà¸
+วัดวา
+วัดสมรโà¸à¸Žà¸´
+วัดสังข์à¸à¸£à¸°à¸ˆà¸²à¸¢
+วัดสังฆทาน
+วัดสารอด
+วัดสิงห์
+วัดสีสุà¸
+วัดหนัง
+วัดหลวง
+วัดเฉลิม
+วัดเชิงหวาย
+วัดเทวสุนทร
+วัดเพลง
+วัดà¹à¸”ด
+วัดโบสถ์
+วัดโปรดเà¸à¸¨
+วัดใต้
+วัต
+วัตตา
+วัตต์
+วัตถุ
+วัตถุดิบ
+วัตถุนิยม
+วัตถุประสงค์
+วัตถุวิสัย
+วัตถ์
+วัตนะ
+วัตร
+วัตสดร
+วัตสะ
+วัติ
+วัทน์
+วัน
+วันครู
+วันจม
+วันดับ
+วันดัล
+วันตัว
+วันต์
+วันทน
+วันทนา
+วันทนีย์
+วันทย
+วันทยหัตถ์
+วันทยาวุธ
+วันทา
+วันทิ
+วันพระ
+วันฟู
+วันลอย
+วันเดอฟุล
+วันเนา
+วันโà¸à¸™
+วับ
+วับๆ
+วัปปะ
+วัมมิà¸
+วัย
+วัลà¸à¹Œ
+วัลคุ
+วัลย์
+วัลลภ
+วัลลี
+วัลเล็ตตา
+วัว
+วัส
+วัสดุ
+วัสตร์
+วัสนะ
+วัสน์
+วัสสะ
+วัสสานะ
+วัสโสทà¸
+วา
+วาà¸
+วาà¸à¸¢
+วาà¸à¸¢à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œ
+วาà¸à¸¢à¸°
+วาà¸à¸£à¸²
+วาง
+วางข้อ
+วางตัว
+วางตา
+วางท่า
+วางมวย
+วางมาด
+วางมือ
+วางยา
+วางวาย
+วางà¹à¸œà¸™
+วางโต
+วางใจ
+วางไข่
+วาจà¸
+วาจา
+วาจาล
+วาจาไ
+วาฎà¸à¸°
+วาณิช
+วาณิชย์
+วาณี
+วาด
+วาดุซ
+วาต
+วาตภัย
+วาตะ
+วาตา
+วาติà¸à¸±à¸™
+วาท
+วาทà¸
+วาทน
+วาทย
+วาทยà¸à¸£
+วาทย์
+วาทศาสตร์
+วาทศิลป์
+วาทิต
+วาทิน
+วาที
+วาน
+วานซืน
+วานร
+วานรนิวาส
+วานรินทร์
+วานาดิไนต์
+วานิช
+วานิลา
+วาบ
+วาบหวาม
+วาบà¹à¸§à¸š
+วาปะ
+วาปิตะ
+วาปี
+วาปีปทุม
+วาม
+วามน
+วามะ
+วามà¹à¸§à¸¡
+วาย
+วายวอด
+วายสะ
+วายะ
+วายามะ
+วายุ
+วาร
+วารณ
+วารณà¸à¸£
+วารสาร
+วารสารศาสตร์
+วาระ
+วาริ
+วาริจร
+วาริช
+วาริชภูมิ
+วาริท
+วาริธร
+วารินชำราบ
+วารี
+วารีช
+วารุณ
+วารุณประภา
+วารุณี
+วาล
+วาลธิ
+วาลวีชนี
+วาลิà¸à¸²
+วาลุà¸à¸²
+วาล์ว
+วาว
+วาววับ
+วาววาม
+วาวà¹à¸§à¸§
+วาสนะ
+วาสนา
+วาสพ
+วาสะ
+วาสิน
+วาสี
+วาหนะ
+วาหะ
+วาหินี
+วาฬ
+วาฬมิค
+วาเนเดียม
+วาเลนไทน์
+วาโมร
+วาโย
+วิ
+วิà¸
+วิà¸à¸ˆà¸°
+วิà¸à¸•à¸­à¸£à¸µà¹ˆ
+วิà¸à¸•à¸­à¹€à¸£à¸µà¸¢
+วิà¸à¸£à¸¡
+วิà¸à¸£à¸±à¸¢
+วิà¸à¸¤à¸•
+วิà¸à¸¤à¸•à¸à¸²à¸£à¸“์
+วิà¸à¸¤à¸•à¸à¸²à¸¥
+วิà¸à¸¤à¸•à¸´
+วิà¸à¸¤à¸•à¸´à¸à¸²à¸£à¸“์
+วิà¸à¸¤à¸•à¸´à¸à¸²à¸¥
+วิà¸à¸¥
+วิà¸à¸¥à¸ˆà¸£à¸´à¸•
+วิà¸à¸ªà¸´à¸•
+วิà¸à¸±à¸•
+วิà¸à¸±à¸•à¸´
+วิà¸à¸±à¸›
+วิà¸à¸±à¸¢
+วิà¸à¸²à¸£
+วิà¸à¸²à¸¥
+วิà¸à¹€à¸‚ป
+วิคตอเรีย
+วิคหะ
+วิฆนะ
+วิฆาต
+วิฆาส
+วิฆเนศ
+วิง
+วิงวอน
+วิจฉิà¸à¸°
+วิจตร
+วิจยุต
+วิจรณ
+วิจรณะ
+วิจล
+วิจัà¸à¸‚ณ์
+วิจัà¸à¸©à¸“์
+วิจัย
+วิจาร
+วิจารณà¸à¸²à¸“
+วิจารณ์
+วิจิ
+วิจิà¸à¸´à¸ˆà¸‰à¸²
+วิจิต
+วิจิตร
+วิจิตรà¸à¸²à¸£
+วิจิตรชัย
+วิจิน
+วิจุณ
+วิจุรณ
+วิชชา
+วิชชุ
+วิชชุดา
+วิชชุลดา
+วิชà¸à¸°
+วิชน
+วิชนี
+วิชย
+วิชัย
+วิชั่น
+วิชา
+วิชาà¸à¸²à¸£
+วิชาชีพ
+วิชาธร
+วิชานนะ
+วิชาโท
+วิชิต
+วิà¸à¸à¸±à¸•à¸´
+วิà¸à¸à¸²à¸“
+วิà¸à¸à¸¹
+วิà¸à¸à¸¹à¸Šà¸™
+วิฑูรย์
+วิณหุ
+วิด
+วิดีโอ
+วิตà¸
+วิตถาร
+วิตามิน
+วิถี
+วิทธะ
+วิทย
+วิทยà¸à¸²à¸™à¸°
+วิทยะ
+วิทยา
+วิทยาà¸à¸£
+วิทยาà¸à¸¥
+วิทยาà¸à¸²à¸£
+วิทยาคม
+วิทยาคาร
+วิทยาทาน
+วิทยานิพนธ์
+วิทยาลัย
+วิทยาศาสตร์
+วิทยาศาสตร์à¸à¸²à¸¢à¸ à¸²à¸ž
+วิทยาศาสตร์ชีวภาพ
+วิทยาศาสตร์ประยุà¸à¸•à¹Œ
+วิทยาสรรค์
+วิทยาเขต
+วิทยุ
+วิทยุต
+วิทย์
+วิทวัส
+วิทารณ์
+วิทาลน์
+วิทิต
+วิทู
+วิทูร
+วิธ
+วิธวา
+วิธา
+วิธาน
+วิธี
+วิธุระ
+วิธู
+วิธูปนะ
+วิน
+วินด์วาร์ด
+วินย
+วินันตู
+วินัย
+วินาที
+วินายà¸
+วินาศ
+วินาศà¸à¸£à¸£à¸¡
+วินาศภัย
+วินิจ
+วินิจฉัย
+วินิจนยภาค
+วินิต
+วินิบาต
+วินิปาติà¸
+วินเนอร์
+วินโดวส์
+วินโดว์
+วินโดว์ส
+วิบัติ
+วิบาà¸
+วิบุล
+วิบุลย์
+วิบูล
+วิบูลย์
+วิปà¸à¸²à¸£
+วิปà¸à¸´à¸ªà¸²à¸£
+วิประà¸à¸²à¸£
+วิประติสาร
+วิประลาป
+วิประวาส
+วิปริต
+วิปลาป
+วิปลาส
+วิปวาส
+วิปัà¸à¸©à¹Œ
+วิปัสสà¸
+วิปัสสà¸à¸°
+วิปัสสนา
+วิปโยค
+วิพาà¸à¸©à¹Œ
+วิพิธทัศนา
+วิพุธ
+วิภว
+วิภวตัณหา
+วิภังค์
+วิภัช
+วิภัตติ
+วิภา
+วิภาค
+วิภาช
+วิภาดา
+วิภาวดี
+วิภาวดีรังสิต
+วิภาวี
+วิภาษ
+วิภาส
+วิภู
+วิภูษา
+วิมน
+วิมล
+วิมลัà¸
+วิมลาà¸
+วิมังสา
+วิมัติ
+วิมาน
+วิมานสุข
+วิมุข
+วิมุต
+วิมุตติ
+วิมุตยาราม
+วิมเบิลดัน
+วิร
+วิรตะ
+วิรมณะ
+วิรวะ
+วิรัช
+วิรัต
+วิรัติ
+วิราคะ
+วิราม
+วิริยภาพ
+วิริยะ
+วิรุธ
+วิรุฬหà¸
+วิรุฬห์
+วิรูป
+วิลนิอัส
+วิลย
+วิลลา
+วิลล่า
+วิลันดา
+วิลัย
+วิลาด
+วิลาป
+วิลาวัณย์
+วิลาศ
+วิลาส
+วิลาสินี
+วิลเลไมต์
+วิลเล็จ
+วิว
+วิวรณ์
+วิวระ
+วิวัà¸
+วิวัฒน
+วิวัฒนาà¸à¸²à¸£
+วิวัฒน์
+วิวัน
+วิวาท
+วิวาห
+วิวาหมงคล
+วิวาหะ
+วิวาห์
+วิวิจ
+วิวิต
+วิวิธ
+วิศรุต
+วิศว
+วิศวà¸à¸£
+วิศวà¸à¸£à¸£à¸¡
+วิศวà¸à¸£à¸£à¸¡à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+วิศวะ
+วิศวาส
+วิศัลย์
+วิศาข
+วิศาขะ
+วิศาขา
+วิศางค์
+วิศาล
+วิศุทธิ์
+วิศุทธ์
+วิษณุ
+วิษธร
+วิษัà¸à¸•à¹Œ
+วิษัย
+วิษาณ
+วิษุวัต
+วิสà¸à¸µà¹‰
+วิสคอนซิน
+วิสดอม
+วิสดาร
+วิสม
+วิสย
+วิสรรชนีย์
+วิสฤต
+วิสสุà¸à¸£à¸£à¸¡
+วิสัชนา
+วิสัà¸à¸à¸µ
+วิสัà¸à¸à¸µà¸§à¸´à¸—ยา
+วิสัà¸à¸à¸µà¹à¸žà¸—ย์
+วิสัย
+วิสาข
+วิสาขบูชา
+วิสาขะ
+วิสาขา
+วิสามัà¸
+วิสามานยนาม
+วิสายัน
+วิสาร
+วิสารท
+วิสาล
+วิสาสะ
+วิสาหà¸à¸´à¸ˆ
+วิสิà¸
+วิสุงคามสีมา
+วิสุทธิจิต
+วิสุทธิ์
+วิสุทธ์
+วิสุทธ์à¸à¸©à¸±à¸•à¸£à¸´à¸¢à¹Œ
+วิสูตร
+วิหค
+วิหงค์
+วิหลั่น
+วิหายสะ
+วิหาร
+วิหารà¹à¸”ง
+วิหิงสะ
+วิหิงสา
+วิฬังค์
+วิฬาร
+วิฬาร์
+วิเคราะห์
+วิเชียร
+วิเชียรบุรี
+วิเทวษ
+วิเทศ
+วิเทศสัมพันธ์
+วิเทอไรต์
+วิเทโศบาย
+วิเนต
+วิเยน
+วิเรนทร์
+วิเลป
+วิเวà¸
+วิเวียไนต์
+วิเศษ
+วิเศษà¸à¸²à¸£
+วิเศษชัยชาà¸
+วิเศษณ์
+วิเสท
+วิเหสา
+วิโนทà¸
+วิโมà¸à¸‚์
+วิโยค
+วิโรค
+วิโรจ
+วิโรจน์
+วิโรฒ
+วิโรธ
+วิโรธน์
+วิโลà¸
+วิโลจนะ
+วิโลม
+วิไล
+วิ่ง
+วิ่งเปี้ยว
+วิ่น
+วี
+วี.ดี.
+วี.ไอ.พี.
+วีค
+วีจิ
+วีชนี
+วีซูเวียไนต์
+วีซ่า
+วีณา
+วีดีทัศน์
+วีดีโอ
+วีต
+วีนัส
+วีร
+วีรà¸à¸£à¸£à¸¡
+วีรชน
+วีรบุรุษ
+วีรสตรี
+วีระ
+วีสะ
+วีโต้
+วี่วัน
+วี่à¹à¸§à¸§
+วี้ด
+วุà¸à¸´
+วุฒ
+วุฒาà¸à¸²à¸¨
+วุฒิ
+วุฒิบัตร
+วุฒิสภา
+วุฒิสมาชิà¸
+วุด
+วุบ
+วุลคาโน
+วุลฟีไนต์
+วุลà¹à¸Ÿà¸£à¸¡
+วุลà¹à¸Ÿà¸£à¹„มต์
+วุ่น
+วุ่นวาย
+วุ้ง
+วุ้น
+วุ้นชา
+วุ้ย
+วูดวาด
+วูบ
+วูบวาบ
+วูสไทต์
+วู่วาม
+วู้
+วเนจร
+วโนทยาน
+วโรà¸à¸²à¸ª
+วโรดม
+วโรตมะ
+ว่อง
+ว่องไว
+ว่อน
+ว่า
+ว่าà¸à¸²à¸£
+ว่าขาน
+ว่าง
+ว่าที่
+ว่าน
+ว่าย
+ว่ายตา
+ว่ายาà¸
+ว่าว
+ว่าวอน
+ว้า
+ว้าง
+ว้าย
+ว้าวุ่น
+ว้าเหว่
+ศà¸
+ศà¸à¸à¸±à¸™à¸•à¹Œ
+ศà¸à¸
+ศà¸à¸¥
+ศà¸à¸¸à¸™
+ศà¸à¸¸à¸™à¸•à¹Œ
+ศà¸à¸¸à¸™à¸´
+ศà¸à¸¸à¸™à¸µ
+ศงà¸à¸²
+ศจี
+ศดà¸
+ศต
+ศตà¸
+ศตบาท
+ศตปที
+ศตพรรษ
+ศตวรรษ
+ศตัฆนี
+ศนิ
+ศนิวาร
+ศพ
+ศยนะ
+ศยาม
+ศยามล
+ศร
+ศรภ
+ศรมณะ
+ศรรà¸à¸£à¸²
+ศรวณะ
+ศรัณยู
+ศรัณย์
+ศรัถนะ
+ศรัท
+ศรัทธา
+ศรันย์
+ศรัย
+ศราทธ
+ศราพ
+ศราพà¸
+ศรายุทธ
+ศรายุธ
+ศราวณะ
+ศราสน์
+ศรี
+ศรีจันทร์
+ศรีตรัง
+ศรีธัà¸à¸à¸²
+ศรีธาตุ
+ศรีนคร
+ศรีนครพัฒนา
+ศรีนครินทรวิโรฒ
+ศรีนครินทร์
+ศรีนวล
+ศรีบุà¸à¸¢à¸·à¸™
+ศรีบุà¸à¹€à¸£à¸·à¸­à¸‡
+ศรีปทุม
+ศรีประจัà¸à¸©à¹Œ
+ศรีประจันต์
+ศรีพรสวรรค์
+ศรีพิชัย
+ศรีมหาธาตุ
+ศรีมหาโพธิ์
+ศรีรัตนศาสดาราม
+ศรีราชา
+ศรีวรา
+ศรีวิจารณ์
+ศรีวิไล
+ศรีศุภโชค
+ศรีษะ
+ศรีษะเà¸à¸©
+ศรีสงคราม
+ศรีสร้อยทอง
+ศรีสวัสดิ์
+ศรีสะเà¸à¸©
+ศรีสัชนาลัย
+ศรีสาคร
+ศรีสำโรง
+ศรีสุข
+ศรีสุดาราม
+ศรีสุพรรณ
+ศรีอยุธยา
+ศรีอัà¸à¸©à¸£
+ศรีอัมพร
+ศรีเชียงใหม่
+ศรีเทพ
+ศรีเมืองวัฒน์
+ศรีเอี่ยม
+ศรุต
+ศรุติ
+ศฤคาล
+ศฤงคาร
+ศฤงค์
+ศลภ
+ศลัถ
+ศลิษฎ์
+ศลิษา
+ศว
+ศวศุร
+ศวัส
+ศวัสน
+ศวา
+ศวาส
+ศศธร
+ศศิ
+ศศิธร
+ศศิน
+ศสา
+ศอ
+ศอà¸
+ศอà¸à¸à¸³
+ศอà¸à¸„ู้
+ศัà¸à¸”า
+ศัà¸à¸”านุภาพ
+ศัà¸à¸”ิ
+ศัà¸à¸”ินา
+ศัà¸à¸”ิ์
+ศัà¸à¸”ิ์ศรี
+ศัà¸à¸”ิ์สิทธิ์
+ศัà¸à¸•à¸´
+ศัà¸à¸¢
+ศัà¸à¸¢à¸ à¸²à¸ž
+ศัà¸à¸¢à¸°
+ศัà¸à¸¢à¹Œ
+ศัà¸à¸£
+ศัà¸à¸£à¸²à¸Š
+ศังà¸à¸£
+ศังà¸à¸²
+ศังà¸à¸¸
+ศัตรู
+ศัทธนะ
+ศันสนะ
+ศันสนีย์
+ศัพทมูลวิทยา
+ศัพท์
+ศัยยา
+ศัล
+ศัลà¸à¸µ
+ศัลย
+ศัลยà¸à¸£à¸£à¸¡
+ศัลยศาสตร์
+ศัลยà¹à¸žà¸—ย์
+ศัสดร
+ศัสตร
+ศัสตรา
+ศาà¸
+ศาà¸à¸•à¸°
+ศาà¸à¸¢
+ศาà¸à¸¢à¸žà¸¸à¸—ธ
+ศาà¸à¸¢à¸¡à¸¸à¸™à¸µ
+ศาà¸à¸¢à¸°
+ศาฎà¸
+ศาà¸à¸¢à¸°
+ศาณ
+ศาต
+ศาตราจารย์
+ศานต
+ศานตรส
+ศานติ
+ศานติà¸
+ศานต์
+ศาป
+ศาพร
+ศารท
+ศารทวิษะวัต
+ศารทูล
+ศาริà¸à¸²
+ศาล
+ศาลสูง
+ศาลหลัà¸à¹€à¸¡à¸·à¸­à¸‡
+ศาลอุธรณ์
+ศาลา
+ศาลาลอย
+ศาลาà¹à¸”ง
+ศาลเจ้าà¹à¸›à¹Šà¸°à¸à¸‡
+ศาลโลà¸
+ศาศวัต
+ศาสà¸
+ศาสดา
+ศาสดาจารย์
+ศาสตร
+ศาสตรา
+ศาสตราจารย์
+ศาสตร์
+ศาสน
+ศาสนจัà¸à¸£
+ศาสนะ
+ศาสนา
+ศาสนาจารย์
+ศาสนีย
+ศาสนูปถัมภà¸
+ศาสน์
+ศาส์น
+ศิà¸à¸©à¸
+ศิà¸à¸²à¸£
+ศิขร
+ศิขริน
+ศิขรี
+ศิขา
+ศิคาล
+ศิงขร
+ศิต
+ศิถี
+ศิพิระ
+ศิร
+ศิระ
+ศิรา
+ศิริ
+ศิริชัย
+ศิริถาวร
+ศิรินันท์
+ศิริพงษ์
+ศิริพงษ์ธรรมนิมิตร
+ศิริมงคล
+ศิริราช
+ศิริวัฒน์
+ศิริสัมพันธ์
+ศิริอัà¸à¸©à¸£
+ศิริโชติ
+ศิลป
+ศิลปà¸à¸£
+ศิลปà¸à¸£à¸£à¸¡
+ศิลปà¸à¸²à¸£
+ศิลปà¸à¸´à¸ˆ
+ศิลปวิทยา
+ศิลปศาสตร์
+ศิลปศึà¸à¸©à¸²
+ศิลปะ
+ศิลปาà¸à¸£
+ศิลปิน
+ศิลปี
+ศิลป์
+ศิลา
+ศิลานนท์
+ศิว
+ศิวลึงค์
+ศิวะ
+ศิวิไลซ์
+ศิวเวท
+ศิวโมà¸à¸‚์
+ศิศีระ
+ศิศุ
+ศิษฎิ
+ศิษà¸à¹Œ
+ศิษยานุศิษย์
+ศิษย์
+ศิโรราบ
+ศีขร
+ศีขรภูมิ
+ศีขริน
+ศีขรี
+ศีต
+ศีตà¸à¸²à¸¥
+ศีตล
+ศีรษะ
+ศีล
+ศีลวัต
+ศีลอด
+ศึà¸
+ศึà¸à¸©à¸²
+ศึà¸à¸©à¸²à¸˜à¸´à¸à¸²à¸£
+ศึà¸à¸©à¸²à¸™à¸´à¹€à¸—ศà¸à¹Œ
+ศึà¸à¸©à¸²à¸ à¸±à¸“ฑ์
+ศึà¸à¸©à¸²à¸§à¸´à¸—ยา
+ศึà¸à¸©à¸²à¸ªà¸‡à¹€à¸„ราะห์
+ศุà¸à¸£
+ศุà¸à¸£à¹Œ
+ศุà¸à¸¥
+ศุà¸à¸¥à¸±à¸¡
+ศุà¸à¸°
+ศุจิ
+ศุทธ
+ศุน
+ศุภ
+ศุภà¸à¸£
+ศุภนิมิต
+ศุภมงคล
+ศุภมัสดุ
+ศุภมาตรา
+ศุภมาส
+ศุภมิตร
+ศุภร
+ศุภวิทยา
+ศุภอัà¸à¸©à¸£
+ศุภางค์
+ศุภเคราะห์
+ศุลà¸
+ศุลà¸à¸²à¸à¸£
+ศุลà¸à¸²à¸£à¸±à¸à¸©à¹Œ
+ศุลี
+ศุษิร
+ศูà¸à¸£
+ศูทร
+ศูนย
+ศูนย์
+ศูนย์à¸à¸¥à¸²à¸‡
+ศูนย์à¸à¸²à¸£à¸„้า
+ศูนย์ชุมชน
+ศูนย์วิจัย
+ศูนย์สัมบูรณ์
+ศูนย์สูตร
+ศูนย์เยาวชน
+ศูล
+ศูลิน
+ษมา
+ษัฎà¸à¸°
+ษัà¸
+ษัฑ
+ษัณ
+ษัษ
+ษัษà¸à¸µ
+ษัษà¸
+ษัษà¸à¸µ
+ษิโณทà¸
+ส.ธรนินทร์
+ส.ธรรมภัà¸à¸”ี
+ส.นิยม
+สà¸
+สà¸à¸
+สà¸à¸à¸ à¸²à¸£
+สà¸à¸™à¸˜à¹Œ
+สà¸à¸›à¸£à¸
+สà¸à¸£à¸£à¸ˆà¹Œ
+สà¸à¸£à¸±à¸¡
+สà¸à¸£à¸´à¸›à¸—์
+สà¸à¸£à¸µà¸™
+สà¸à¸¥
+สà¸à¸¥à¸™à¸„ร
+สà¸à¸¥à¹‚ลà¸
+สà¸à¸§à¸²à¸—ี
+สà¸à¸­à¸•à¹à¸¥à¸™à¸”์
+สà¸à¸­à¸£à¹Œ
+สà¸à¸­à¸£à¹Œà¹€à¸›à¸µà¸¢à¸™
+สà¸à¸±à¸‡à¸„์
+สà¸à¸±à¸”
+สà¸à¸²
+สà¸à¸²à¸§
+สà¸à¸´à¸™
+สà¸à¸´à¸£à¸­à¸ª
+สà¸à¸µ
+สà¸à¸µà¸™à¹‰à¸³
+สà¸à¸¸à¸“
+สà¸à¸¸à¸“า
+สà¸à¸¸à¸“ี
+สà¸à¸¸à¸•à¹€à¸—อรูไดต์
+สà¸à¸¸à¸™
+สà¸à¸¸à¸™à¸•à¹Œ
+สà¸à¸¸à¸¥
+สà¸à¸¸à¸¥à¸Šà¸±à¸¢
+สà¸à¸¹à¹‰à¸•à¹€à¸•à¸­à¸£à¹Œ
+สà¸à¸¹à¹Šà¸•à¹€à¸•à¸­à¸£à¹Œ
+สà¸à¸¹à¹Šà¸›
+สà¸à¹Šà¸­à¸•
+สขะ
+สคริปต์
+สคอโรโดต์
+สคูล
+สง
+สงà¸à¸£
+สงà¸à¸£à¸²à¸™à¸•à¹Œ
+สงà¸à¸²
+สงขลา
+สงคร
+สงคราม
+สงครามà¸à¸¥à¸²à¸‡à¹€à¸¡à¸·à¸­à¸‡
+สงครามโลà¸
+สงค์
+สงฆ์
+สงบ
+สงบเสงี่ยม
+สงวน
+สงวนสุข
+สงสัย
+สงสาร
+สงสารวัà¸
+สงัด
+สงเคราะห์
+สงเษป
+สงโà¸à¸ˆ
+สง่า
+สจ๊วต
+สณฑ์
+สด
+สดà¸
+สดคาว
+สดชื่น
+สดน
+สดมภ์
+สดับ
+สดับปà¸à¸£à¸“์
+สดำ
+สดี
+สดุดี
+สดูป
+สดใส
+สตมาหะ
+สตรอนเชียม
+สตริà¸à¸™à¸´à¸™
+สตริง
+สตรี
+สตรีจำนงค์
+สตรีวิทยา
+สตอà¸
+สตอà¸à¹‚ฮล์ม
+สตอเรจ
+สตอโรไลต์
+สตันท์à¹à¸¡à¸™
+สตันย์
+สตัพธ์
+สตัฟฟ์
+สตัมภ์
+สตางค์
+สตาฟฟ์
+สตาร์ท
+สติ
+สติบิโคไนต์
+สติบไนต์
+สติลไบต์
+สติสัมปชัà¸à¸à¸°
+สติ๊à¸
+สติ๊à¸à¹€à¸à¸­à¸£à¹Œ
+สตี
+สตีม
+สตีเฟไนต์
+สตีไทต์
+สตึà¸
+สตู
+สตูป
+สตูล
+สต็อค
+สต๊อà¸
+สถน
+สถบ
+สถบดี
+สถล
+สถลทิน
+สถลบถ
+สถลมารค
+สถวิร
+สถาน
+สถานà¸à¸²à¸£à¸“์
+สถานภาพ
+สถานะ
+สถานี
+สถานเสาวภา
+สถาบà¸
+สถาบัน
+สถาบันวิจัย
+สถาปนา
+สถาปนิà¸
+สถาปัตยà¸à¸£à¸£à¸¡
+สถาปัตยà¸à¸£à¸£à¸¡à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+สถาพร
+สถาล
+สถาวร
+สถาวะ
+สถิต
+สถิตยศาสตร์
+สถิตยุทธà¸à¸²à¸£
+สถิตย์
+สถิตย์พร
+สถิติ
+สถิติศาสตร์
+สถิร
+สถุล
+สถูป
+สทิงพระ
+สทึง
+สทุม
+สธน
+สธุสะ
+สน
+สนà¸à¸£à¸°
+สนทนา
+สนทรรศ
+สนทิศ
+สนธยา
+สนธิ
+สนนราคา
+สนม
+สนมเอà¸
+สนวน
+สนอง
+สนองไข
+สนองได
+สนอบ
+สนอม
+สนะ
+สนัด
+สนัดใจ
+สนับ
+สนับงา
+สนับสนุน
+สนับเพล
+สนั่น
+สนาดà¸
+สนาน
+สนาบà¸
+สนาบัน
+สนาม
+สนามชัยเขต
+สนามบินน้ำ
+สนามยิงปืน
+สนามรบ
+สนามศุภชลาสัย
+สนามไชย
+สนายุ
+สนิà¸
+สนิท
+สนิธ
+สนิม
+สนุà¸
+สนุà¸à¸ªà¸™à¸²à¸™
+สนุà¸à¹€à¸à¸­à¸£à¹Œ
+สนุข
+สนุต
+สนุ่น
+สนเดà¸
+สนเทศ
+สนเท่ห์
+สนà¹à¸œà¸‡
+สนใจ
+สบ
+สบง
+สบจ
+สบตา
+สบถ
+สบปราบ
+สบัน
+สบาย
+สบายใจ
+สบู่
+สบเสีย
+สปริง
+สปริงฟิลด์
+สปอดูมีน
+สปอราดัส
+สปอร์ต
+สปาย
+สปาเà¸à¸•à¸•à¸µ
+สปิตสเบอร์เà¸à¸™
+สปิริต
+สปิเนล
+สปีช
+สพัà¸
+สพั้น
+สพาบ
+สฟาเลอไรต์
+สฟีน
+สภา
+สภาà¸à¸²à¸Šà¸²à¸”ไทย
+สภาค
+สภาจาร
+สภาบดี
+สภาพ
+สภาพัฒน์
+สภาว
+สภาวà¸à¸²à¸£à¸“์
+สภาวะ
+สม
+สมà¸à¸²à¸£
+สมà¸à¸²à¸£à¹€à¸„มี
+สมคบ
+สมควร
+สมคะเน
+สมคิด
+สมจร
+สมจริง
+สมจารี
+สมจิต
+สมชาย
+สมà¸à¸²
+สมณ
+สมณศัà¸à¸”ิ์
+สมณะ
+สมดุล
+สมถ
+สมถะ
+สมทบ
+สมนอà¸
+สมนัย
+สมนาคุณ
+สมบัติ
+สมบุà¸
+สมบูรณาà¸à¸²à¸ªà¸´à¸—ธิราชย์
+สมบูรณ์
+สมบูรณ์สุข
+สมประดี
+สมปรารถนา
+สมปฤดี
+สมปอง
+สมปัà¸
+สมผุส
+สมพง
+สมพงศ์
+สมพล
+สมพาส
+สมภพ
+สมภาร
+สมมต
+สมมติ
+สมมติà¸à¸²à¸™
+สมมาตร
+สมมุติ
+สมมุติà¸à¸²à¸™
+สมมูล
+สมมูลเคมี
+สมยศ
+สมยอม
+สมร
+สมรด
+สมรภูมิ
+สมรรถ
+สมรรถนะ
+สมรรถภาพ
+สมรส
+สมรู้
+สมฤดี
+สมฤติ
+สมฤทัย
+สมวัย
+สมวายะ
+สมวิภา
+สมศรี
+สมสัà¸
+สมสุข
+สมสู่
+สมส่วน
+สมหวัง
+สมอ
+สมอง
+สมอจีน
+สมอลไทต์
+สมอ้าง
+สมัค
+สมัคร
+สมังคี
+สมัช
+สมัชชา
+สมัà¸à¸à¸²
+สมัต
+สมัน
+สมันต์
+สมัย
+สมา
+สมาคม
+สมาจาร
+สมาชิà¸
+สมาทาน
+สมาธิ
+สมาน
+สมานคติ
+สมานฉันท์
+สมาบัติ
+สมาพันธรัà¸
+สมาส
+สมิง
+สมิต
+สมิตสันต์
+สมิติ
+สมิติเวช
+สมิทซอไนต์
+สมิทธิโชติ
+สมิทธิ์
+สมิทธ์
+สมี
+สมีป
+สมีร
+สมุà¸
+สมุà¸à¸à¸²à¸™
+สมุด
+สมุทร
+สมุทรปราà¸à¸²à¸£
+สมุทรศาสตร์
+สมุทรสงคราม
+สมุทรสาคร
+สมุทัย
+สมุน
+สมุนไพร
+สมุห
+สมุหนาม
+สมุหนายà¸
+สมุห์
+สมเà¸à¸¨
+สมเด็จ
+สมเด็จพระปิ่นเà¸à¸¥à¹‰à¸²
+สมเด็จเจ้าพระยา
+สมเพช
+สมเสร็จ
+สมโพธน์
+สมโพธิ
+สมโภค
+สมโภช
+สมโภชน์
+สมโมท
+สมโยค
+สมใจ
+สมใน
+สม่ำเสมอ
+สยด
+สยดสยอง
+สยนะ
+สยบ
+สยมพร
+สยมภู
+สยอง
+สยอน
+สยัมพร
+สยาม
+สยามจัสโà¸à¹‰
+สยามฟิชชิ่ง
+สยามสà¹à¸„วร์
+สยามเซ็นเตอร์
+สยาย
+สยิว
+สยิ้ว
+สยุมพร
+สยุมภู
+สยุ่น
+สรà¸
+สรง
+สรà¸à¸°
+สรณ
+สรณคมน์
+สรณตรัย
+สรณะ
+สรณาคมน์
+สรดัà¸
+สรดึ่น
+สรดื่น
+สรตะ
+สรตัà¸
+สรทะ
+สรทึง
+สรนุà¸
+สรบบ
+สรภะ
+สรภัà¸à¸à¸°
+สรภู
+สรร
+สรรคบุรี
+สรรค์
+สรรพ
+สรรพคุณ
+สรรพนาม
+สรรพยา
+สรรพสามิตร
+สรรพาà¸à¸£
+สรรพางค์
+สรรพาวุธ
+สรรวง
+สรรหา
+สรรเพชà¸
+สรรเสริà¸
+สรลน
+สรลม
+สรลอด
+สรลอน
+สรละ
+สรลิด
+สรล้าย
+สรวง
+สรวงเส
+สรวป
+สรวม
+สรวล
+สรวลเส
+สระ
+สระà¸à¸­
+สระดะ
+สระบุรี
+สระอาด
+สระà¹à¸à¹‰à¸§
+สรั่ง
+สราà¸
+สริต
+สรีร
+สรีรà¸à¸´à¸ˆ
+สรีรธาตุ
+สรีรวิทยา
+สรีรศาสตร์
+สรีระ
+สรีสฤบ
+สรี้
+สรุà¸
+สรุง
+สรุป
+สรุสระ
+สรุโนà¸
+สรเนาะ
+สรเพชà¸
+สรเลข
+สรà¹à¸—บ
+สรไน
+สร่ง
+สร่าง
+สร้อย
+สร้อยทอง
+สร้าง
+สร้างคอม
+สร้างสรรค์
+สร้างสรรพ์
+สร้าวเสียว
+สฤà¸
+สฤคาล
+สฤต
+สฤษฎี
+สฤษà¸à¹Œ
+สล
+สลด
+สลบ
+สลบไสล
+สลวน
+สลวย
+สลอด
+สลอน
+สลอย
+สละ
+สลัà¸
+สลัà¸à¹€à¸à¸¥à¸µà¸¢à¸§
+สลัà¸à¹€à¸•à¹‰
+สลัด
+สลัดได
+สลับ
+สลัม
+สลัว
+สลา
+สลาà¸
+สลาง
+สลาด
+สลาตัน
+สลาบ
+สลาย
+สลิง
+สลิด
+สลิป
+สลิม
+สลิล
+สลึà¸
+สลึง
+สลุด
+สลุต
+สลุบ
+สลุมพร
+สล็อต
+สล้าง
+สวà¸
+สวà¸à¸£à¸£à¸¡
+สวด
+สวน
+สวนจตุจัà¸à¸£
+สวนดุสิต
+สวนบัว
+สวนผึ้ง
+สวนพลู
+สวนมะลิ
+สวนรัà¸
+สวนลุมพินี
+สวนสยาม
+สวนสราà¸à¸£à¸¡à¸¢à¹Œ
+สวนสัตว์ดุสิต
+สวนสุนันทา
+สวนหลวง
+สวนะ
+สวนาà¸à¸²à¸£
+สวนิต
+สวนีย
+สวนีย์
+สวนเงิน
+สวนà¹à¸—ง
+สวนà¹à¸«à¸¥à¸¡à¸—อง
+สวบ
+สวภาพ
+สวม
+สวมà¸à¸­à¸”
+สวมรอย
+สวมเขา
+สวย
+สวยงาม
+สวยม
+สวยมพร
+สวยมภู
+สวร
+สวรรค
+สวรรคต
+สวรรคาลัย
+สวรรคโลà¸
+สวรรค์
+สวรรยา
+สวอป
+สวะ
+สวัสดิà¸à¸²à¸£
+สวัสดิà¸à¸²à¸£à¸—หาร
+สวัสดิภาพ
+สวัสดิ์
+สวัสดิ์อำนวยเวทย์
+สวัสดี
+สวัสติà¸à¸°
+สวา
+สวาคต
+สวาง
+สวาซิà¹à¸¥à¸™à¸”์
+สวาด
+สวาดิ
+สวาท
+สวาบ
+สวาปาม
+สวามิ
+สวามิภัà¸à¸”ิ์
+สวามี
+สวาย
+สวายสอ
+สวาสดิ์
+สวาหะ
+สวิง
+สวิตช์
+สวิตซ์
+สวิสเซอร์à¹à¸¥à¸™à¸”์
+สวี
+สวีเดน
+สว่าง
+สว่างอารมณ์
+สว่างà¹à¸”นดิน
+สว่างไสว
+สว่าน
+สว้าน
+สสาร
+สสารนิยม
+สสุระ
+สสุรี
+สห
+สหà¸à¸£à¸“์
+สหà¸à¸²à¸£
+สหจร
+สหชาต
+สหชาติ
+สหธรรม
+สหบาน
+สหประชาชาติ
+สหพันธรัà¸
+สหพันธ์
+สหภาพ
+สหภาพà¹à¸£à¸‡à¸‡à¸²à¸™
+สหมิตร
+สหรัà¸
+สหรัà¸à¸­à¹€à¸¡à¸£à¸´à¸à¸²
+สหรัà¸à¸¯
+สหวิริยา
+สหศึà¸à¸©à¸²
+สหัช
+สหัมบดี
+สหัส
+สหัสขันธ์
+สหัสนัยน์
+สหัสวรรษ
+สหัสสะ
+สหัสา
+สหาย
+สอ
+สอง
+สองผม
+สองพระ
+สองพี่น้อง
+สองฤดู
+สองใจ
+สองไม้
+สอด
+สอดคล้อง
+สอดรู้
+สอดà¹à¸™à¸¡
+สอดใส่
+สอดไส้
+สอน
+สอบ
+สอบถาม
+สอบสวน
+สอบไล่
+สอพลอ
+สอย
+สอยดาว
+สอยผม
+สะ
+สะà¸à¸”
+สะà¸à¸­
+สะà¸à¸²
+สะà¸à¸²à¸‡
+สะà¸à¸²à¸£à¸°
+สะà¸à¸´à¸”
+สะคราà¸
+สะคร้อ
+สะค้าน
+สะดม
+สะดวà¸
+สะดัà¸
+สะดิ้ง
+สะดึง
+สะดือ
+สะดุด
+สะดุ้ง
+สะตอ
+สะตึ
+สะตือ
+สะตุ
+สะทà¸
+สะทน
+สะทึà¸
+สะทึน
+สะท้อน
+สะท้าน
+สะบะ
+สะบัà¸
+สะบัà¸à¸ªà¸°à¸šà¸­à¸¡
+สะบัด
+สะบัดสะบิ้ง
+สะบั้น
+สะบิ้ง
+สะบู
+สะบ้า
+สะบ้าย้อย
+สะพรัà¸
+สะพรั่ง
+สะพรึบ
+สะพัà¸
+สะพัง
+สะพัด
+สะพั้น
+สะพาน
+สะพานควาย
+สะพานคู่
+สะพาย
+สะระตะ
+สะระà¹à¸«à¸™à¹ˆ
+สะลาง
+สะลึมสะลือ
+สะล้อ
+สะวี้ดสะว้าด
+สะสม
+สะสวย
+สะสาง
+สะอาง
+สะอาด
+สะอิดสะเอียน
+สะอิ้ง
+สะอึà¸
+สะอื้น
+สะอ้าน
+สะเà¸à¸°
+สะเà¸à¹‡à¸”
+สะเดา
+สะเดาะ
+สะเด็ด
+สะเต๊ะ
+สะเทิน
+สะเทิ้น
+สะเทือน
+สะเทื้อน
+สะเพร่า
+สะเภา
+สะเมิง
+สะเอว
+สะเออะ
+สะเอ้ง
+สะà¹à¸
+สะà¹à¸šà¸‡
+สะà¹à¸¥à¸°à¸™à¹‰à¸­à¸¢
+สะโตà¸
+สะโพà¸
+สะโมง
+สะโอดสะอง
+สะใจ
+สะใภ้
+สะไบ
+สะไอ
+สัà¸
+สัà¸à¸à¸°
+สัà¸à¸à¸²à¸¢
+สัà¸à¸à¸²à¸£
+สัà¸à¸‚รา
+สัà¸à¸‚ี
+สัà¸à¸à¸°
+สัà¸à¸§à¸²
+สัà¸à¸§à¹ˆà¸²
+สัà¸à¸«à¸¥à¸²à¸”
+สัขยะ
+สัค
+สังà¸à¸¡à¸—รัพย์
+สังà¸à¸£
+สังà¸à¸£à¸“ี
+สังà¸à¸°à¸•à¸±à¸‡
+สังà¸à¸°à¸ªà¸µ
+สังà¸à¸±à¸”
+สังà¸à¸±à¸›à¸›à¸°
+สังà¸à¸²
+สังà¸à¸²à¸£
+สังà¸à¸²à¸¨
+สังข
+สังขà¸à¸£
+สังขต
+สังขยา
+สังขละบุรี
+สังขลิà¸
+สังขวัฒนะ
+สังขะ
+สังขาร
+สังข์
+สังข์à¸à¸£à¸°à¸ˆà¸²à¸¢
+สังค
+สังคà¸à¸²à¸•à¸´
+สังคม
+สังคมนิยม
+สังคมวิทยา
+สังคมศาสตร์
+สังคมศึà¸à¸©à¸²
+สังคมสงเคราะห์
+สังคห
+สังคหะ
+สังคัง
+สังคาตา
+สังคายนา
+สังคายนาย
+สังคีต
+สังคีติ
+สังค์
+สังฆ
+สังฆà¸à¸£à¸£à¸¡
+สังฆทาน
+สังฆนายà¸
+สังฆปาโมà¸à¸‚์
+สังฆมณฑล
+สังฆมนตรี
+สังฆราช
+สังฆสภา
+สังฆาà¸à¸´
+สังฆาทิเลส
+สังฆานุสติ
+สังฆาวาส
+สังฆเถระ
+สังฆเภท
+สังวร
+สังวัธยาย
+สังวาล
+สังวาส
+สังสดมภ์
+สังสนทนา
+สังสรรค์
+สังสาร
+สังสารวัà¸
+สังสิทธิ์
+สังหร
+สังหรณ์
+สังหาร
+สังหาริมทรัพย์
+สังหิต
+สังเà¸à¸•
+สังเà¸à¸•à¸à¸²à¸£à¸“์
+สังเขป
+สังเคราะห์
+สังเวคะ
+สังเวช
+สังเวย
+สังเวียน
+สังโขภ
+สังโยค
+สังโยชน์
+สัจ
+สัจà¸à¸´à¸£à¸´à¸¢à¸²
+สัจจะ
+สัจà¸à¸²à¸“
+สัจธรรม
+สัจนิยม
+สัจพจน์
+สัชฌ
+สัชฌà¸à¸£
+สัชฌุ
+สัà¸à¸ˆà¸£
+สัà¸à¸ˆà¸²à¸£
+สัà¸à¸Šà¸²à¸•
+สัà¸à¸Šà¸²à¸•à¸à¸²à¸“
+สัà¸à¸Šà¸²à¸•à¸´
+สัà¸à¸Œà¸²
+สัà¸à¸à¸²
+สัà¸à¸à¸²à¸“
+สัà¸à¸à¸µ
+สัà¸à¸›à¸£à¸°à¸à¸²à¸¨
+สัà¸à¸¥à¸±à¸à¸©à¸“์
+สัà¸à¹€à¸ˆà¸•à¸™à¸²
+สัà¸à¹‚ยค
+สัà¸à¸´
+สัณà¸à¸²à¸™
+สัณฑ์
+สัณห์
+สัด
+สัดจอง
+สัดส่วน
+สัต
+สัตà¸à¸²à¸£
+สัตตบงà¸à¸Š
+สัตตบรรณ
+สัตตะ
+สัตตาห
+สัตตู
+สัตถ
+สัตถา
+สัตถิ
+สัตถุ
+สัตบถ
+สัตบรรณ
+สัตบุรุษ
+สัตม
+สัตมะ
+สัตย
+สัตยวาที
+สัตยาธิษà¸à¸²à¸™
+สัตยาบัน
+สัตย์
+สัตว
+สัตวบาล
+สัตววิทยา
+สัตวา
+สัตวาร
+สัตวà¹à¸žà¸—ย์
+สัตวโลà¸
+สัตว์
+สัตสดà¸
+สัตหีบ
+สัทธรรม
+สัทธา
+สัทศาสตร์
+สัน
+สันà¸à¸³à¹à¸žà¸‡
+สันดอน
+สันดาน
+สันดาป
+สันตติ
+สันตะปาปา
+สันติ
+สันติภาพ
+สันติภูมิ
+สันติราษฎร์
+สันติสุข
+สันติอโศà¸
+สันต์
+สันถระ
+สันถว
+สันถวะ
+สันถวไมตรี
+สันถัต
+สันถาร
+สันทนะ
+สันทนาà¸à¸²à¸£
+สันทราย
+สันทะ
+สันทัด
+สันทาน
+สันทิส
+สันธาน
+สันนิบาต
+สันนิวาส
+สันนิษà¸à¸²à¸™
+สันนิเวส
+สันป่าตอง
+สันรวง
+สันลึà¸
+สันสà¸à¸¤à¸•
+สันเขา
+สันเดà¸
+สันเทส
+สันเทห
+สันโดษ
+สับ
+สับนà¸
+สับปลับ
+สับปะรด
+สับสน
+สับเงา
+สับโขà¸
+สัปคับ
+สัปด
+สัปดน
+สัปดาห์
+สัปต
+สัปตศà¸
+สัปทน
+สัปปะ
+สัปปิ
+สัประยุทธ์
+สัปหงà¸
+สัปเหร่อ
+สัพ
+สัพพะ
+สัพพัà¸à¸à¸¹
+สัพยอà¸
+สัพเพเหระ
+สัมบูรณ์
+สัมปชัà¸à¸à¸°
+สัมปทา
+สัมปทาน
+สัมปยุต
+สัมประสิทธิ์
+สัมประหาร
+สัมปรายภพ
+สัมปรายิà¸à¸ à¸ž
+สัมปัà¸à¸à¸²à¸§à¸²à¸ª
+สัมปโยค
+สัมผัส
+สัมพล
+สัมพัทธ์
+สัมพันธน์
+สัมพันธภาพ
+สัมพันธมิตร
+สัมพันธวงศ์
+สัมพันธไมตรี
+สัมพันธ์
+สัมพาธะ
+สัมพุทธะ
+สัมภวะ
+สัมภัต
+สัมภาร
+สัมภาระ
+สัมภาษณ์
+สัมมนา
+สัมมัปธาน
+สัมมา
+สัมมาชีพ
+สัมฤทธิ์
+สัมโพธิ
+สัมโมทนียà¸à¸–า
+สัยน์
+สัลลาป
+สัลเลข
+สัสดี
+สัสต
+สัสสะ
+สัสสุ
+สัสสุระ
+สั่ง
+สั่งสม
+สั่น
+สั้น
+สา
+สาà¸
+สาà¸à¸£à¸£à¸ˆà¹Œ
+สาà¸à¸¥
+สาà¸à¸¥à¹à¸¥à¸™à¸”์
+สาà¸à¸©à¸´à¸™
+สาà¸à¸±à¸ˆà¸‰à¸²
+สาà¸à¸´à¸¢
+สาขา
+สาคร
+สาคู
+สาคเรศ
+สาง
+สางห่า
+สาฎà¸
+สาà¸à¸´à¸
+สาณ
+สาณี
+สาด
+สาต
+สาตรา
+สาทร
+สาทิส
+สาทิสลัà¸à¸©à¸“์
+สาทุ
+สาธà¸
+สาธยา
+สาธยาย
+สาธร
+สาธารณ
+สาธารณชน
+สาธารณประโยชน์
+สาธารณภัย
+สาธารณรัà¸
+สาธารณสุข
+สาธารณะ
+สาธารณูปà¸à¸²à¸£
+สาธารณูปโภค
+สาธิต
+สาธุ
+สาธุà¸à¸²à¸£
+สาธุชน
+สาธุประดิษà¸à¹Œ
+สาน
+สานตวะ
+สานุ
+สานุศิษย์
+สาบ
+สาบสูà¸
+สาบาน
+สาป
+สาปไตย
+สาม
+สามขา
+สามขุม
+สามคาน
+สามง่าม
+สามชุà¸
+สามตา
+สามทหาร
+สามนต
+สามนต์
+สามพระยา
+สามพราน
+สามพี่น้อง
+สามรส
+สามล
+สามล้อ
+สามสà¸à¸¸à¸¥
+สามสิบ
+สามหลัง
+สามหาบ
+สามหาว
+สามัคคี
+สามัคคีธรรม
+สามัà¸
+สามัà¸à¸ªà¸³à¸™à¸¶à¸
+สามานย
+สามานย์
+สามารถ
+สามิà¸
+สามิต
+สามินี
+สามิภัà¸à¸”ิ์
+สามี
+สามเงา
+สามเณร
+สามเมา
+สามเวท
+สามเสน
+สามเหลี่ยม
+สามà¹à¸‹à¹ˆ
+สามโà¸à¹‰
+สามโคà¸
+สามไชย
+สาย
+สายชู
+สายซุง
+สายดิน
+สายตัว
+สายตา
+สายน้ำ
+สายน้ำผึ้ง
+สายบัว
+สายบุรี
+สายปาà¸à¸™à¹‰à¸³
+สายพาน
+สายฟ้า
+สายยู
+สายรุ้ง
+สายลม
+สายลับ
+สายสมร
+สายสินบน
+สายส่ง
+สายอัà¸à¸©à¸£
+สายัà¸
+สายัà¸à¸«à¹Œ
+สายัณห์
+สายเนตร
+สายเหา
+สายเอà¸
+สายโยà¸
+สายใจ
+สายใย
+สายไหม
+สาร
+สารคดี
+สารตรา
+สารถี
+สารท
+สารทา
+สารทิศ
+สารนิเทศ
+สารบบ
+สารบรรณ
+สารบัà¸
+สารบับ
+สารบาà¸
+สารประà¸à¸­à¸š
+สารพัด
+สารพัดช่าง
+สารพัน
+สารพางค์
+สารภาพ
+สารภี
+สารละลาย
+สารวัด
+สารวัตร
+สารสนเทศ
+สารสัม
+สารสาสน์
+สารสิน
+สารส้ม
+สารหนู
+สารอด
+สาระ
+สาระพา
+สาระà¹à¸™
+สารัตถ
+สารัตถสำคัà¸
+สารัตถะ
+สารัทธ์
+สารัมภ์
+สาราณีย
+สาราณียà¸à¸£
+สารานุà¸à¸£à¸¡
+สารีริà¸à¸˜à¸²à¸•à¸¸
+สารูป
+สารเลว
+สารไมย
+สาร์à¸
+สาละ
+สาละวน
+สาลิ
+สาลิà¸à¸²
+สาลินี
+สาลี
+สาลี่
+สาลู
+สาว
+สาวà¸
+สาวนะ
+สาวรส
+สาวิà¸à¸²
+สาวิตร
+สาวิตรี
+สาวà¹à¸à¹ˆ
+สาวà¹à¸ªà¹‰
+สาวไส้
+สาสนา
+สาสน์
+สาสม
+สาส์น
+สาหรี
+สาหร่าย
+สาหัตถ
+สาหัส
+สาฬุระ
+สาเà¸
+สาเหตุ
+สาà¹à¸«à¸£à¸
+สาโท
+สาโรช
+สาไถย
+สำ
+สำคัà¸
+สำซ่าง
+สำทับ
+สำนวด
+สำนวน
+สำนอง
+สำนัà¸
+สำนัà¸à¸‡à¸²à¸™
+สำนัà¸à¸ªà¸‡à¸†à¹Œ
+สำนาน
+สำนึà¸
+สำนึง
+สำบอà¸
+สำบัดสำนวน
+สำปะลอ
+สำปะหลัง
+สำปั้น
+สำมะงา
+สำมะลอ
+สำมะหา
+สำมะเลเทเมา
+สำมะโน
+สำมะโนครัว
+สำรด
+สำรวจ
+สำรวม
+สำรวย
+สำรวล
+สำรอà¸
+สำรอง
+สำรับ
+สำราà¸
+สำราà¸
+สำราà¸à¸”ีศรีตะ
+สำราà¸à¸£à¸²à¸©à¸Žà¸£à¹Œ
+สำริด
+สำลัà¸
+สำลาน
+สำลี
+สำสา
+สำส่อน
+สำหรวด
+สำหรับ
+สำหา
+สำออย
+สำอาง
+สำเนา
+สำเนียง
+สำเภา
+สำเรา
+สำเริง
+สำเร็จ
+สำเร็จรูป
+สำเส็ด
+สำเหนียà¸
+สำเหร่
+สำà¹à¸”ง
+สำà¹à¸¥à¸‡
+สำโรง
+สำโรงทาบ
+สิ
+สิà¸à¸‚า
+สิà¸à¸‚าบท
+สิà¸à¸‚ิม
+สิà¸à¸‚์
+สิขร
+สิขรี
+สิขา
+สิขานล
+สิขี
+สิขเรศ
+สิคาล
+สิง
+สิงขร
+สิงคลี
+สิงคาร
+สิงคาล
+สิงคี
+สิงคโปร์
+สิงค์
+สิงสาราสัตว์
+สิงสู่
+สิงห
+สิงหนาท
+สิงหบัà¸à¸Šà¸£
+สิงหรา
+สิงหราช
+สิงหล
+สิงหลà¸
+สิงหาคม
+สิงหาสน์
+สิงห์
+สิงห์บุรี
+สิงโต
+สิชล
+สิà¸à¸ˆ
+สิà¸à¸ˆà¸™à¹Œ
+สิà¸à¸ˆà¹Œ
+สิต
+สิถิล
+สิทธ
+สิทธา
+สิทธารถ
+สิทธาราม
+สิทธิ
+สิทธิชัย
+สิทธิสภาพนอà¸à¸­à¸²à¸“าเขต
+สิทธิ์
+สิธยะ
+สิน
+สินค้า
+สินทรัพย์
+สินทวี
+สินธพ
+สินธุ
+สินธุร
+สินบน
+สินสอด
+สินสุข
+สินะ
+สินาด
+สินี
+สินเทา
+สินเธาว์
+สินเหลือ
+สินà¹à¸£à¹ˆ
+สินใช้
+สินไถ่
+สินไหน
+สินไหม
+สิบ
+สิปปะ
+สิพนะ
+สิมพลี
+สิร
+สิระ
+สิริ
+สิริà¸
+สิริเทพ
+สิลา
+สิว
+สิวิà¸à¸²
+สิหนา
+สิเà¸à¸²
+สิเนรุ
+สิเนหà¸
+สิเนหะ
+สิเนหา
+สิเน่หา
+สิโรดม
+สิโลà¸
+สิ่ง
+สิ่งของ
+สิ่ว
+สิ้น
+สิ้นชีพ
+สิ้นชีพิตัà¸à¸©à¸±à¸¢
+สิ้นพระชนม์
+สิ้นลม
+สิ้นใจ
+สี
+สีà¸à¸£à¸¸à¸”
+สีà¸à¸±à¸™
+สีà¸à¸²
+สีà¸à¸¸à¸™
+สีข้าง
+สีคิ้ว
+สีฆ
+สีจัà¸
+สีชมพู
+สีด
+สีดอ
+สีต
+สีตล
+สีต้น
+สีน้ำเงิน
+สีผึ้ง
+สีà¸à¸±à¸”
+สีมา
+สีลม
+สีวิà¸à¸²
+สีสอ
+สีสะ
+สีสัน
+สีสา
+สีสุà¸
+สีห
+สีหนาท
+สีหน้า
+สีหราช
+สีห์
+สีโตทà¸
+สีไฟ
+สี่
+สี่บท
+สี่พระยา
+สี่เหลี่ยม
+สี่ไชยทอง
+สี้
+สึà¸
+สึà¸à¸«à¸£à¸­
+สึง
+สืบ
+สืบค้น
+สืบทอด
+สืบพันธุ์
+สืบสวน
+สืบสาน
+สืบสาย
+สืบหา
+สืบหูà¸
+สืบไป
+สื่อ
+สื่อมวลชน
+สื่อสาร
+สุ
+สุà¸
+สุà¸à¸‚์
+สุà¸à¸‡à¸­à¸¡
+สุà¸à¸”ิบ
+สุà¸à¸£
+สุà¸à¸£à¸¡
+สุà¸à¸±à¸à¸à¸à¸´à¸ˆ
+สุà¸à¸³
+สุà¸à¸µà¹‰à¸¢à¸²à¸à¸µà¹‰
+สุà¸à¹à¸”ด
+สุà¸à¹ƒà¸ª
+สุข
+สุขตา
+สุขนาà¸à¸à¸£à¸£à¸¡
+สุขนิเวศน์
+สุขภัณฑ์
+สุขภาพ
+สุขร่วมà¸à¸±à¸™
+สุขลัà¸à¸©à¸“ะ
+สุขวิทยา
+สุขศึà¸à¸©à¸²
+สุขสม
+สุขสวัสดิ์
+สุขสันต์
+สุขสาคร
+สุขา
+สุขาภิบาล
+สุขารมณ์
+สุขาวดี
+สุขิน
+สุขี
+สุขุม
+สุขุมวิท
+สุขุมาล
+สุขใจ
+สุคต
+สุคติ
+สุคนธ
+สุคนธรส
+สุคนธสวัสดิ์
+สุคนธ์
+สุคันธาราม
+สุคันธ์
+สุคิริน
+สุงà¸
+สุงà¸à¸²à¸à¸£
+สุงสิง
+สุจริต
+สุจหนี่
+สุจะ
+สุจิ
+สุจิต
+สุจิตร
+สุชน
+สุชา
+สุชาดา
+สุà¸
+สุà¸à¸à¸²à¸à¸²à¸¨
+สุà¸à¸•à¸²
+สุà¸à¸™à¸´à¸¢à¸¡
+สุณ
+สุณหา
+สุณิสา
+สุด
+สุดà¸à¸¹à¹ˆ
+สุดขีด
+สุดคน
+สุดคิด
+สุดจิต
+สุดท้าย
+สุดนรี
+สุดประเสริà¸
+สุดภัà¸à¸”ี
+สุดวิสัย
+สุดสาคร
+สุดา
+สุดà¹à¸•à¹ˆ
+สุดใจ
+สุต
+สุตà¸à¸§à¸µ
+สุตตะ
+สุตา
+สุติ
+สุทธ
+สุทธาราม
+สุทธาวาส
+สุทธิ
+สุทธิพร
+สุทธิวราราม
+สุทธิสาร
+สุทธิสารวินิจฉัย
+สุทธ์
+สุทัศน์
+สุธา
+สุธารส
+สุธารสชา
+สุธาวาส
+สุธาสี
+สุธี
+สุนทร
+สุนทรพจน์
+สุนทรศิริ
+สุนทรี
+สุนทรีย
+สุนทรียภาพ
+สุนทรียศาสตร์
+สุนทรโà¸à¸©à¸²
+สุนัข
+สุนันท์
+สุนิภา
+สุบดี
+สุบรรณ
+สุบิน
+สุปาณี
+สุพพัต
+สุพรรณ
+สุพรรณบัà¸
+สุพรรณบุรี
+สุพรรณภาชน์
+สุพรรณราช
+สุพรรณศรี
+สุพิตร
+สุพิศมร
+สุภ
+สุภร
+สุภัค
+สุภา
+สุภาพ
+สุภาพงษ์
+สุภาร่วม
+สุภาษิต
+สุม
+สุมขอน
+สุมทุม
+สุมน
+สุมนะ
+สุมนัส
+สุมนา
+สุมยุง
+สุมหัว
+สุมะ
+สุมาตรา
+สุมาลี
+สุร
+สุรคต
+สุรงค์
+สุรบดี
+สุรบถ
+สุรภาพ
+สุรภี
+สุรวงศ์
+สุรศัà¸à¸”ิ์
+สุรสีหนาท
+สุรัติ
+สุรัสวดี
+สุรา
+สุรางคนา
+สุรางคนางค์
+สุรารัà¸à¸©à¹Œ
+สุราลัย
+สุราษฎร์ธานี
+สุรินทร์
+สุรินัม
+สุริย
+สุริยà¸à¸²à¸£
+สุริยà¸à¸²à¸¥
+สุริยคติ
+สุริยคราส
+สุริยง
+สุริยน
+สุริยมณฑล
+สุริยะ
+สุริยัน
+สุริยา
+สุริยุปราคา
+สุริยเคราะห์
+สุริเยนทร์
+สุริเยศ
+สุริโย
+สุรีย์
+สุรุ่ยสุร่าย
+สุรเสียง
+สุรโลà¸
+สุลต่าน
+สุว
+สุวภาพ
+สุวรรณ
+สุวรรณคีรี
+สุวรรณคูหา
+สุวรรณประสิทธิ์
+สุวรรณพฤà¸à¸©à¹Œ
+สุวรรณภิงคาร
+สุวรรณภูมิ
+สุวรรณมณี
+สุวรรณวาจà¸
+สุวรรณสวัสดิ์
+สุวรรณาราม
+สุวาน
+สุวิชา
+สุวิชานดำริห์
+สุวินัย
+สุวิมล
+สุษิร
+สุสาน
+สุหนัต
+สุหนี่
+สุหร่ง
+สุหร่าย
+สุหฤท
+สุเมธ
+สุเมรุ
+สุเรนทร์
+สุเหร่า
+สุเหร่าวังใหà¸à¹ˆ
+สุโขทัย
+สุโนà¸
+สุไหงปาดี
+สุไหงโà¸à¸¥à¸
+สุ่ม
+สู
+สูà¸à¸©à¸¡
+สูง
+สูงค่า
+สูงสุด
+สูงส่ง
+สูงเนิน
+สูงเม่น
+สูจà¸à¸°
+สูจนะ
+สูจิ
+สูจิบัตร
+สูà¸
+สูà¸à¸«à¸²à¸¢
+สูด
+สูต
+สูตร
+สูตรเคมี
+สูติ
+สูติà¸à¸£à¸£à¸¡
+สูติบัตร
+สูติศาสตร์
+สูติà¹à¸žà¸—ย์
+สูท
+สูน
+สูนุ
+สูบ
+สูป
+สูปà¸à¸²à¸£
+สูร
+สูรย
+สูรย์
+สูริ
+สูสี
+สูเจ้า
+สู่
+สู่ขอ
+สู่รู้
+สู่สม
+สู่หา
+สู้
+สเà¸à¸•
+สเà¸à¸•à¸™à¹‰à¸³à¹à¸‚็ง
+สเà¸à¸¥
+สเตย์
+สเตอริโอ
+สเต็à¸
+สเปà¸
+สเปà¸à¸•à¸£à¸±à¸¡
+สเปà¸à¹‚ทรสโคป
+สเปน
+สเปรดชีต
+สเปสซาร์ไทต์
+สà¹à¸à¸™
+สà¹à¸à¸™à¹€à¸”ียม
+สà¹à¸„โพไลต์
+สà¹à¸•à¸™à¸”าร์ด
+สà¹à¸•à¸™à¸”์
+สà¹à¸•à¸™à¸¥à¸µà¸¢à¹Œ
+สà¹à¸•à¸™à¹„นต์
+สà¹à¸›à¸¡
+สà¹à¸¥à¸‡
+สโà¸à¸›à¸´à¸¥à¸­à¸ª
+สโคป
+สโตรค
+สโตร์
+สโมธาน
+สโมสร
+สโรช
+สโลเวเนีย
+สโลà¹à¸à¸™
+สไตล์
+สไตล์ชีต
+สไบ
+สไปริลลัม
+สไลด์
+ส่ง
+ส่งดอà¸
+ส่งตัว
+ส่งลำ
+ส่งเดช
+ส่วน
+ส่วนลด
+ส่วนสัด
+ส่วย
+ส่อ
+ส่อง
+ส่องดาว
+ส่อน
+ส่อà¹à¸§à¸§
+ส่า
+ส่าน
+ส่าย
+ส่าหรี
+ส่าเหล้า
+ส่าไข้
+ส่ำ
+ส้น
+ส้นตีน
+ส้ม
+ส้มตำ
+ส้มทับ
+ส้มป่อย
+ส้มฟัà¸
+ส้วง
+ส้วม
+ส้วย
+ส้อง
+ส้อม
+ส้าง
+ส้าย
+หà¸
+หà¸à¸„ว่ำ
+หà¸à¸šà¸—
+หà¸à¸¥à¹‰à¸¡
+หà¸à¸«à¸±à¸™
+หà¸à¹‚ล่
+หง
+หงà¸
+หงà¸à¹†
+หงษ์อ่อน
+หงส
+หงสคติ
+หงสบาท
+หงสรถ
+หงสราช
+หงส์
+หงอ
+หงอà¸
+หงอด
+หงอน
+หงอย
+หงอยเหงา
+หงัà¸
+หงัà¸à¹†
+หงับๆ
+หงาย
+หงำ
+หงิà¸
+หงิง
+หงิงๆ
+หงิม
+หงึà¸
+หงึà¸à¹†
+หงุงหงิง
+หงุดหงิด
+หงุบ
+หงุ่ย
+หง่องๆ
+หง่อม
+หง่อย
+หง่าง
+หง่าว
+หà¸à¸´à¸‡
+หà¸à¸´à¸š
+หà¸à¹‰à¸²
+หà¸à¹‰à¸²à¸à¸£à¸±à¹ˆà¸™
+หด
+หดหาย
+หดหู่
+หตะ
+หทย
+หทัย
+หน
+หนทาง
+หนวà¸
+หนวà¸à¸«à¸¹
+หนวด
+หนอ
+หนอà¸
+หนอง
+หนองà¸à¸µà¹ˆ
+หนองà¸à¸¸à¸‡à¸¨à¸£à¸µ
+หนองขาหย่าง
+หนองคาย
+หนองจอà¸
+หนองจิà¸
+หนองฉาง
+หนองบัว
+หนองบัวลำภู
+หนองบัวà¹à¸”ง
+หนองพอà¸
+หนองวัวซอ
+หนองสองห้อง
+หนองหà¸à¹‰à¸²à¸›à¸¥à¹‰à¸­à¸‡
+หนองหาน
+หนองเรือ
+หนองเสือ
+หนองà¹à¸‚ม
+หนองà¹à¸„
+หนองà¹à¸‹à¸‡
+หนองโดน
+หนองใน
+หนองใหà¸à¹ˆ
+หนองไผ่
+หนอน
+หนอนà¸à¸­
+หนัà¸
+หนัà¸à¸­à¸
+หนัà¸à¹ƒà¸ˆ
+หนัง
+หนังสือ
+หนังสือพิมพ์
+หนังสือเดินทาง
+หนับ
+หนั่น
+หนา
+หนาด
+หนาตา
+หนาน
+หนาบ
+หนาม
+หนาว
+หนาวใจ
+หนาหู
+หนำ
+หนำซ้ำ
+หนำเลี้ยบ
+หนำใจ
+หนี
+หนีบ
+หนี้
+หนึà¸
+หนึบ
+หนึ่ง
+หนืด
+หนุ
+หนุน
+หนุบ
+หนุมาน
+หนุ่ม
+หนุ่ย
+หนู
+หนูผี
+หน็อยà¹à¸™à¹ˆ
+หน่วง
+หน่วย
+หน่วยà¸à¸´à¸•
+หน่วยดาราศาสตร์
+หน่อ
+หน่อย
+หน่าง
+หน่าย
+หน้า
+หน้าà¸à¸²à¸
+หน้าขา
+หน้างอ
+หน้าตา
+หน้าต่าง
+หน้าที่
+หน้าผา
+หน้าพระลาน
+หน้าอà¸
+หน้าà¹à¸‡
+หน้าไฟ
+หมà¸
+หมà¸à¸¡à¸¸à¹ˆà¸™
+หมด
+หมดà¸à¸±à¸™
+หมดจด
+หมดตัว
+หมดตูด
+หมดบุà¸
+หมดพà¸
+หมดพุง
+หมดรูป
+หมดอาลัย
+หมดเขต
+หมวà¸
+หมวà¸à¹€à¸«à¸¥à¹‡à¸
+หมวด
+หมอ
+หมอà¸
+หมอง
+หมองหมาง
+หมองใจ
+หมอชิต
+หมอดู
+หมอตาล
+หมอน
+หมอนข
+หมอนข้าง
+หมอบ
+หมอผี
+หมอย
+หมอลำ
+หมอเทศ
+หมอเหล็ง
+หมอไทย
+หมัà¸
+หมัà¸à¸«à¸¡à¸¡
+หมัด
+หมัน
+หมับ
+หมั่น
+หมั้น
+หมา
+หมาà¸
+หมาà¸à¸ªà¸‡
+หมาà¸à¸®à¸­à¸ª
+หมาง
+หมางใจ
+หมาจิ้งจอà¸
+หมาด
+หมาบ้า
+หมาป่า
+หมาย
+หมายà¸
+หมายความ
+หมายตา
+หมายยา
+หมายเลข
+หมายเหตุ
+หมายใจ
+หมาร่า
+หมาใน
+หมาไม้
+หมิ่น
+หมิ่นเหม่
+หมี
+หมี่
+หมึà¸
+หมืน
+หมื่น
+หมุด
+หมุน
+หมุนเวียน
+หมุบ
+หมุบหมิบ
+หมุ่ย
+หมู
+หมูน้ำ
+หมูป่า
+หมูยอ
+หมูสัง
+หมูสี
+หมูหยอง
+หมูหัน
+หมูà¹à¸”ง
+หมูà¹à¸™à¸¡
+หมูà¹à¸®à¸¡
+หมู่
+หมู่บ้าน
+หม่น
+หม่นหมอง
+หม่อ
+หม่อง
+หม่อน
+หม่อม
+หม่อมà¹à¸œà¹‰à¸§
+หม่า
+หม่ำ
+หม้อ
+หม้อà¹à¸›à¸¥à¸‡
+หม้อà¹à¸›à¸¥à¸‡à¹„ฟ
+หม้า
+หม้าย
+หยà¸
+หยà¸à¹†
+หยด
+หยวà¸
+หยวน
+หยวนโล้
+หยวบ
+หยอà¸
+หยอà¸à¹€à¸­à¸´à¸™
+หยอง
+หยอด
+หยอน
+หยอย
+หยัà¸
+หยัà¸à¸¨à¸
+หยัง
+หยัด
+หยัน
+หยับ
+หยั่ง
+หยาà¸à¹„ย่
+หยาง
+หยาด
+หยาดน้ำฟ้า
+หยาบ
+หยาม
+หยาว
+หยำเป
+หยิà¸
+หยิน
+หยิบ
+หยิบยà¸
+หยิม
+หยิมๆ
+หยิ่ง
+หยี
+หยี่
+หยุ
+หยุà¸à¸«à¸¢à¸´à¸
+หยุด
+หยุบ
+หยุบๆ
+หยุมหยิม
+หยุ่น
+หยูà¸à¸¢à¸²
+หย็องà¹à¸«à¸¢à¹‡à¸‡
+หย่ง
+หย่วน
+หย่อง
+หย่องๆ
+หย่อน
+หย่อม
+หย่อย
+หย่า
+หย่านม
+หย้าว
+หรคุณ
+หรณ
+หรดาล
+หรดี
+หรบๆ
+หรรษา
+หรอ
+หรอà¸
+หรอยๆ
+หรับๆ
+หรัสว
+หรา
+หริ
+หริณะ
+หริต
+หริตà¸à¸µ
+หริ่ง
+หริ่งๆ
+หรีด
+หรี่
+หรือ
+หรุบรู่
+หรุบหรู่
+หรุบๆ
+หรุ่ม
+หรู
+หรูหรา
+หร็อมà¹à¸«à¸£à¹‡à¸¡
+หฤทย
+หฤทย์
+หฤทัย
+หฤษà¸à¹Œ
+หฤหรรษ์
+หฤโหด
+หล
+หลง
+หลงà¸à¸¥
+หลงตา
+หลงลม
+หลงลืม
+หลงใหล
+หลด
+หลน
+หลบ
+หลบตา
+หลบà¸à¸²à¸
+หลบมุม
+หลวง
+หลวม
+หลอ
+หลอà¸
+หลอด
+หลอดลม
+หลอดอาหาร
+หลอน
+หลอม
+หลอมละลาย
+หลอมเหลว
+หละ
+หลัà¸
+หลัà¸à¸•à¸­
+หลัà¸à¸ªà¸µà¹ˆ
+หลัà¸à¸ªà¸µà¹ˆà¸žà¸¥à¸²à¸‹à¹ˆà¸²
+หลัà¸à¸ªà¸¹à¸•à¸£
+หลัà¸à¹€à¸¡à¸·à¸­à¸‡
+หลัง
+หลังค
+หลังคา
+หลังสวน
+หลัด
+หลัดๆ
+หลับ
+หลับต
+หลับตา
+หลับนà¸
+หลับใน
+หลัว
+หลั่ง
+หลั่น
+หลา
+หลาà¸
+หลาà¸à¹ƒà¸ˆ
+หลาท
+หลาน
+หลานหลวง
+หลาบ
+หลาบจำ
+หลาม
+หลาย
+หลาว
+หลาหล
+หลิà¸
+หลิท
+หลิน
+หลิม
+หลิว
+หลิ่ง
+หลิ่ว
+หลี
+หลีà¸
+หลีบ
+หลีฮื้อ
+หลีโà¸
+หลืบ
+หลุà¸à¸«à¸¥à¸´à¸
+หลุด
+หลุนๆ
+หลุบ
+หลุม
+หลุมพอ
+หลุมพี
+หลู่
+หล็อน
+หล่น
+หล่ม
+หล่มสัà¸
+หล่มเà¸à¹ˆà¸²
+หล่อ
+หล่อน
+หล้า
+หวง
+หวงà¹à¸«à¸™
+หวด
+หวน
+หวย
+หวอ
+หวอด
+หวะ
+หวัง
+หวัด
+หวัว
+หวัวร่อ
+หวั่น
+หวา
+หวาà¸
+หวาด
+หวาดระà¹à¸§à¸‡
+หวาดหวั่น
+หวาดเสียว
+หวาดไหว
+หวาน
+หวาม
+หวาย
+หวำ
+หวิด
+หวิว
+หวี
+หวีด
+หวี่
+หวือ
+หวุดหวิด
+หวุม
+หวูด
+หว็อย
+หว็อยๆ
+หว่า
+หว่าง
+หว่าน
+หว้า
+หสน
+หอ
+หอà¸
+หอà¸à¸‹à¸±à¸”
+หอà¸à¸²à¸£à¸„้า
+หอà¸à¸²à¸£à¸„้าไทย
+หอคอย
+หอคำ
+หอง
+หอน
+หอบ
+หอพัà¸
+หอม
+หอมขาว
+หอมยับ
+หอมหวน
+หอมà¹à¸”ง
+หอย
+หอวัง
+หอสมุดà¹à¸«à¹ˆà¸‡à¸Šà¸²à¸•à¸´
+หอสุมด
+หอไตร
+หะ
+หะยี
+หะหาย
+หะà¹à¸£à¸
+หะà¹à¸«à¹‰à¸™
+หัà¸
+หัà¸à¸„อ
+หัà¸à¸¡à¸¸à¸
+หัà¸à¸¥à¸³
+หัà¸à¸«à¸²à¸
+หัà¸à¸­à¸
+หัà¸à¹€à¸«
+หัà¸à¹à¸£à¸‡
+หัà¸à¹‚หม
+หัà¸à¹ƒà¸ˆ
+หังส
+หัจà¸à¸µ
+หัจà¸à¹Œ
+หัช
+หัà¸à¸à¸°
+หัด
+หัต
+หัตถ
+หัตถà¸à¸£à¸£à¸¡
+หัตถà¸à¸²à¸£
+หัตถà¸à¸´à¸ˆ
+หัตถบาส
+หัตถพันธ์
+หัตถศิลป์
+หัตถศึà¸à¸©à¸²
+หัตถาจารย์
+หัตถาภรณ์
+หัตถาลังà¸à¸²à¸£
+หัตถินี
+หัตถี
+หัตถเลขา
+หัตถ์
+หัน
+หันคา
+หันตรา
+หันตา
+หันเห
+หับ
+หับเผย
+หัย
+หัว
+หัวขาด
+หัวข้อ
+หัวคิด
+หัวค่ำ
+หัวงอน
+หัวงาน
+หัวซุน
+หัวตะพาน
+หัวต่อ
+หัวถอà¸
+หัวที
+หัวนม
+หัวนอà¸
+หัวนอน
+หัวน้ำ
+หัวบัว
+หัวบุà¸
+หัวปลี
+หัวปาà¸
+หัวปี
+หัวป่า
+หัวพัน
+หัวมัน
+หัวรอ
+หัวร่อ
+หัวลม
+หัวลำโพง
+หัวลิง
+หัวสูง
+หัวหด
+หัวหน้า
+หัวหมอ
+หัวหมาà¸
+หัวหมู
+หัวหาด
+หัวหิน
+หัวอà¸
+หัวออà¸
+หัวเฉียว
+หัวเราะ
+หัวà¹à¸£à¸‡
+หัวโขน
+หัวโจà¸
+หัวใจ
+หัวไทร
+หัวไม้
+หัวไส้
+หัส
+หัสดิน
+หัสดินทร์
+หัสดิเสวี
+หัสดี
+หัสตะ
+หัสต์
+หั่น
+หั้น
+หา
+หาà¸
+หาà¸à¸§à¹ˆà¸²
+หาà¸à¸´à¸™
+หาความ
+หาง
+หางขอด
+หางค้อ
+หางดง
+หางนาค
+หางปลา
+หางยาม
+หางยาว
+หางหนู
+หางเลข
+หางà¹à¸–ว
+หางà¹à¸žà¸™
+หางไà¸à¹ˆ
+หางไหล
+หาà¸
+หาด
+หาดà¸
+หาดใหà¸à¹ˆ
+หาน
+หาบ
+หาบเร่
+หาม
+หามรอà¸
+หามิได้
+หาย
+หายà¸à¸±à¸™
+หายขาด
+หายตัว
+หายนะ
+หายหัว
+หายใจ
+หาร
+หารร่วมมาà¸
+หาริ
+หาริน
+หารือ
+หาลิท
+หาว
+หาวนอน
+หาส
+หาสà¸
+หาสยะ
+หาสู่
+หาเงิน
+หาเหตุ
+หาไม่
+หำ
+หิงคุ
+หิงสา
+หิงห้อย
+หิด
+หิต
+หิตà¸à¸£
+หิน
+หินงอà¸
+หินชนวน
+หินชั้น
+หินดินดาน
+หินตะà¸à¸­à¸™
+หินทราย
+หินน้ำมัน
+หินปูน
+หินยาน
+หินย้อย
+หินสบู่
+หินหนืด
+หินอัคนี
+หินเหล็à¸à¹„ฟ
+หินà¹à¸›à¸£
+หินà¹à¸¥à¸‡
+หิม
+หิมพาน
+หิมพานต์
+หิมวัต
+หิมวา
+หิมวาต
+หิมวาน
+หิมวาส
+หิมะ
+หิมาลัย
+หิมเวศ
+หิรัà¸
+หิรัà¸à¸šà¸±à¸
+หิริ
+หิว
+หิวโหย
+หิ่งห้อย
+หิ้ง
+หิ้ว
+หี
+หีด
+หีตา
+หีน
+หีนยาน
+หีบ
+หีบชัà¸
+หีบสไบ
+หีบห่อ
+หีเต่า
+หึ
+หึง
+หึงส
+หึ่ง
+หืด
+หืน
+หือ
+หื่น
+หื้อ
+หุง
+หุต
+หุตายน
+หุน
+หุนหัน
+หุบ
+หุบปาà¸
+หุบผา
+หุบเขา
+หุบเหว
+หุยฮา
+หุรัม
+หุ่น
+หุ้น
+หุ้นลม
+หุ้ม
+หู
+หูà¸
+หูà¸à¸§à¸²à¸‡
+หูฉลาม
+หูฉี่
+หูชอง
+หูช้าง
+หูด
+หูติ
+หูตึง
+หูตูบ
+หูผึ่ง
+หูรูด
+หูหนู
+หูเบา
+หูเสือ
+หูไว
+หูไห
+หู่
+หู่หี่
+หโยดม
+ห่ม
+ห่มดอง
+ห่วง
+ห่วงใย
+ห่วย
+ห่อ
+ห่อตัว
+ห่อน
+ห่อหมà¸
+ห่อà¹à¸«
+ห่า
+ห่าà¸à¸´à¸™
+ห่าง
+ห่างเห
+ห่าน
+ห่าม
+ห่าลง
+ห้วง
+ห้วน
+ห้วนๆ
+ห้วย
+ห้วยขวาง
+ห้วยทับทัน
+ห้วยยอด
+ห้วยเม็à¸
+ห้วยà¹à¸–ลง
+ห้อ
+ห้อง
+ห้องน้ำ
+ห้องเรียน
+ห้อม
+ห้อมล้อม
+ห้อย
+ห้า
+ห้าง
+ห้างฉัตร
+ห้าม
+ห้าว
+ห้าวหาà¸
+ห้ำ
+ห้ำหัà¸
+อà¸
+อà¸à¸„ราà¸
+อà¸à¸•à¸±à¸à¸à¸¸à¸•à¸²
+อà¸à¸•à¸±à¸à¸à¸¹
+อà¸à¸•à¸±à¹‰à¸‡
+อà¸à¸—ะเล
+อà¸à¸™à¸´à¸©à¸à¹Œ
+อà¸à¸£à¸“ีย์
+อà¸à¸£à¸£à¸¡à¸à¸£à¸´à¸¢à¸²
+อà¸à¸£à¸§à¸š
+อà¸à¸£à¹ˆà¸­à¸‡
+อà¸à¸«à¸±à¸
+อà¸à¸±à¸›à¸›à¸´à¸¢à¸°
+อà¸à¸¸à¸¨à¸¥
+อà¸à¹€à¸•à¹ˆà¸²
+อà¸à¹€à¸¥à¸²
+อà¸à¹à¸•à¸
+อà¸à¹‚รย
+อà¸à¹„à¸à¹ˆ
+อคติ
+อคาธ
+อคาร
+อง
+องà¸à¹Œ
+องค
+องคชาต
+องคชาติ
+องคพยพ
+องคมนตรี
+องคมรรษ
+องครัà¸à¸©à¹Œ
+องควิทยา
+องคาพยพ
+องคุล
+องคุลี
+องคุลีบาท
+องค์
+องค์à¸à¸£
+องค์à¸à¸²à¸£
+องศา
+องศ์
+องอาจ
+องุ่น
+อจร
+อจล
+อจลา
+อจิตติ
+อจินตา
+อจินไตย
+อจิร
+อจิระ
+อช
+อชา
+อชิน
+อชินี
+อชิร
+อà¸à¸§à¸µ
+อณิ
+อณุ
+อณู
+อด
+อดทน
+อดนม
+อดสู
+อดอยาà¸
+อดออม
+อดิ
+อดิถี
+อดิศร
+อดิศวร
+อดิศัย
+อดิเทพ
+อดิเรà¸
+อดีต
+อดีตà¸à¸²à¸¥
+อดีตภพ
+อดุล
+อดุลย
+อดุลย์
+อดใจ
+อติ
+อติชาต
+อติมานะ
+อติราช
+อติสาร
+อติเรà¸
+อทินนาทาน
+อธรรม
+อธิ
+อธิà¸
+อธิà¸à¸¡à¸²à¸ª
+อธิà¸à¸£à¸“์
+อธิà¸à¸§à¸²à¸£
+อธิà¸à¸ªà¸¸à¸£à¸—ิน
+อธิà¸à¸²à¸£
+อธิà¸à¸²à¸£à¸šà¸”ี
+อธิคน
+อธิคม
+อธิà¸à¸à¸²à¸™
+อธิบดี
+อธิบาย
+อธิป
+อธิปไตย
+อธิมาตร
+อธิมุตติ
+อธิราช
+อธิวาส
+อธิศีล
+อธิษà¸à¸²à¸™
+อธึà¸
+อนงคณะ
+อนงคเลขา
+อนงค์
+อนธà¸à¸²à¸£
+อนยะ
+อนรรฆ
+อนรรถ
+อนล
+อนวัช
+อนัà¸
+อนัตตา
+อนัตถ
+อนันต
+อนันตนาค
+อนันตร
+อนันต์
+อนันต์สุขสันต์
+อนัม
+อนาà¸à¸¹à¸¥
+อนาคต
+อนาคตà¸à¸²à¸¥
+อนาคามี
+อนาจาร
+อนาถ
+อนาถา
+อนาทร
+อนาธิปไตย
+อนามัย
+อนามิà¸à¸²
+อนารย
+อนารยชน
+อนารยธรรม
+อนารยะ
+อนาลัย
+อนาล็อà¸
+อนำ
+อนิจ
+อนิจà¸à¸£à¸£à¸¡
+อนิจจัง
+อนิจจา
+อนิยต
+อนิยม
+อนิล
+อนิลบถ
+อนิวรรต
+อนิษà¸à¹Œ
+อนีà¸
+อนีà¸à¸±à¸
+อนีจ
+อนึà¸
+อนึ่ง
+อนุ
+อนุà¸à¸£
+อนุà¸à¸£à¸¡
+อนุà¸à¸£à¸£à¸¡à¸à¸²à¸£
+อนุà¸à¸²à¸Šà¸²à¸”
+อนุà¸à¸²à¸£
+อนุà¸à¸¹à¸¥
+อนุจร
+อนุช
+อนุชน
+อนุชา
+อนุชาต
+อนุชิต
+อนุà¸à¸²à¸•
+อนุà¸à¸²à¹‚ตตุลาà¸à¸²à¸£
+อนุตร
+อนุทิน
+อนุบท
+อนุบาล
+อนุปริà¸à¸à¸²
+อนุพงศ์
+อนุพันธ์
+อนุภรรยา
+อนุภริยา
+อนุภาค
+อนุภาพ
+อนุภาษ
+อนุมัติ
+อนุมาตรา
+อนุมาน
+อนุมานราชธน
+อนุมูล
+อนุมูลà¸à¸£à¸”
+อนุรัà¸à¸©à¸™à¸´à¸¢à¸¡
+อนุรัà¸à¸©à¹Œ
+อนุราช
+อนุรูป
+อนุวงศ์
+อนุวงษ์
+อนุวัต
+อนุวาต
+อนุศาสà¸
+อนุศาสตราจารย์
+อนุศาสน์
+อนุศิษà¸à¹Œ
+อนุสติ
+อนุสนธิ
+อนุสร
+อนุสรณ์
+อนุสัà¸à¸à¸²
+อนุสัย
+อนุสาวรีย์
+อนุสาสนี
+อนุเคราะห์
+อนุเถระ
+อนุโพธ
+อนุโมทนา
+อนุโยค
+อนุโลม
+อบ
+อบรม
+อบอวล
+อบอุ่น
+อบอ้าว
+อบาย
+อบายภูมิ
+อบายมุข
+อบเชย
+อปà¸à¸²à¸£
+อปจายน
+อปมงคล
+อปมาน
+อปยศ
+อปร
+อปรภาค
+อปรมาณ
+อปรัณ
+อปรา
+อปราธ
+อปวาท
+อปหาร
+อปาจี
+อปาจีน
+อปิสซิเนีย
+อพพะ
+อพยพ
+อพาร์ตเมนต์
+อภว
+อภัพ
+อภัพผล
+อภัย
+อภัยทาน
+อภัยโทษ
+อภิ
+อภิฆาต
+อภิจฉา
+อภิชน
+อภิชัย
+อภิชัยสงคราม
+อภิชาต
+อภิชิต
+อภิà¸à¸à¸²
+อภิณห
+อภิธรรม
+อภิธาน
+อภินันทนาà¸à¸²à¸£
+อภินันท์
+อภินัย
+อภินิหาร
+อภิบาล
+อภิปรัชà¸à¸²
+อภิปราย
+อภิมหาอำนาจ
+อภิมานะ
+อภิมุข
+อภิรดี
+อภิรมย์
+อภิรัà¸à¸©à¹Œ
+อภิราม
+อภิรุต
+อภิรุม
+อภิรูป
+อภิลัà¸à¸‚ิตสมัย
+อภิวันท์
+อภิวาท
+อภิวาทน์
+อภิสมัย
+อภิสมาจาร
+อภิสมโพธิ
+อภิสัมโพธิ
+อภิสิต
+อภิสิทธิ์
+อภิเนษà¸à¸£à¸£à¸¡
+อภิเลปน์
+อภิเษà¸
+อภิไธย
+อภูต
+อม
+อมà¸à¹‹à¸­à¸¢
+อมความ
+อมต
+อมตบท
+อมตะ
+อมนุษย์
+อมปาà¸
+อมพะนำ
+อมภูมิ
+อมมือ
+อมยิ้ม
+อมร
+อมรบดี
+อมรพันธ์
+อมรรัตน์
+อมรราช
+อมรวิวัฒน์
+อมรา
+อมราวดี
+อมรินทร์
+อมฤต
+อมฤตบท
+อมฤตยู
+อมฤตรส
+อมหนอง
+อมัจจะ
+อมัตร
+อมาตย์
+อมาวสี
+อมิตร
+อมีบา
+อมเรศ
+อมโรค
+อยาà¸
+อยุทธ์
+อยุธยา
+อยู่
+อยู่คง
+อยู่ดี
+อยู่เจริà¸
+อยู่เย็น
+อยู่ไฟ
+อย่า
+อย่าง
+อย่างไร
+อร
+อรช
+อรชร
+อรชุน
+อรณ
+อรดี
+อรธาน
+อรนุช
+อรพิน
+อรพิม
+อรรค
+อรรฆ
+อรรฆย์
+อรรจน์
+อรรณพ
+อรรถ
+อรรถà¸à¸£
+อรรถà¸à¸£à¸°à¸§à¸µ
+อรรถà¸à¸²à¸£à¸›à¸£à¸°à¸ªà¸´à¸—ธิ์
+อรรถนพนฤมิตร
+อรรถบท
+อรรถประโยชน์
+อรรถมิตร
+อรรถรส
+อรรถวิภัชน์
+อรรถาธิบาย
+อรรธ
+อรรธบท
+อรสุม
+อรหะ
+อรหัง
+อรหัต
+อรหัน
+อรหันต
+อรหันต์
+อรัà¸
+อรัà¸à¸›à¸£à¸°à¹€à¸—ศ
+อรัณย์
+อราดี
+อริ
+อริน
+อริย
+อริยà¸à¸°
+อริยบุคคล
+อริยผล
+อริยมรรค
+อริยสัจ
+อริยะ
+อริสโตเติล
+อริเดียม
+อรุ
+อรุณ
+อรุณอัมรินทร์
+อรุโณทัย
+อรุ่ม
+อรูป
+อรไท
+อร่อย
+อร่าม
+อร่ามดวงอุทิศ
+อลงà¸à¸•
+อลงà¸à¸£à¸“์
+อลงà¸à¸²à¸£
+อลวน
+อลหม่าน
+อลอร์สตาร์
+อลังà¸à¸²à¸£
+อลัชชี
+อลิงค์
+อลึ่งฉึ่ง
+อลเวง
+อล่องฉ่อง
+อล่างฉ่าง
+อวà¸
+อวà¸à¸²à¸¨
+อวจร
+อวชัย
+อวชาต
+อวด
+อวดดี
+อวตาร
+อวน
+อวนลอย
+อวนลาà¸
+อวบ
+อวมงคล
+อวมอำ
+อวย
+อวยพร
+อวยวะ
+อวล
+อวสาน
+อวหาร
+อวัยวะ
+อวัสดา
+อวาจี
+อวิจี
+อวิชชา
+อวิà¸à¸à¸¹
+อวีจิ
+อสงไขย
+อสนีบาต
+อสภ
+อสมà¸à¸²à¸£
+อสมมตร
+อสมมาตร
+อสรพิษ
+อสังà¸à¸¡à¸—รัพย์
+อสังหาริมทรัพย์
+อสัà¸
+อสัà¸à¸à¸£à¸£à¸¡
+อสัà¸à¸à¸µ
+อสัà¸à¹à¸”หวา
+อสัตย์
+อสา
+อสาธร
+อสาธุ
+อสิ
+อสิต
+อสีต
+อสีติ
+อสุ
+อสุจิ
+อสุนี
+อสุนีบาต
+อสุภ
+อสุร
+อสุรà¸à¸²à¸¢
+อสุรี
+อสุเรศ
+อสูà¸
+อสูร
+อหังà¸à¸²à¸£
+อหิ
+อหิงสา
+อหิวา
+อหิวาตà¸à¹‚รค
+ออ
+ออà¸
+ออà¸à¸‡à¸²à¸™
+ออà¸à¸‹à¸´à¹€à¸ˆà¸™
+ออà¸à¸‹à¸´à¹€à¸”ชัน
+ออà¸à¸à¸²
+ออà¸à¸”อà¸
+ออà¸à¸”ิบ
+ออà¸à¸•à¸±à¸§
+ออà¸à¸—ุน
+ออà¸à¸—่า
+ออà¸à¸šà¸§à¸Š
+ออà¸à¸›à¸²à¸
+ออà¸à¸à¸µ
+ออà¸à¸£à¸ª
+ออà¸à¸£à¸±à¸š
+ออà¸à¸¥à¸²à¸¢
+ออà¸à¸¥à¸¹à¸
+ออà¸à¸§à¸±à¸‡
+ออà¸à¸±à¸ªà¸•à¸²
+ออà¸à¹à¸‚à¸
+ออà¸à¹à¸šà¸š
+ออà¸à¹à¸£à¸‡
+ออà¸à¹‚ขน
+ออà¸à¹‚รง
+ออà¸à¹„ซด์
+ออà¸à¹„ฟ
+ออด
+ออดิโอ
+ออดà¹à¸­à¸”
+ออดๆ
+ออตตาวา
+ออตเทรไลต์
+ออนชอร์
+ออนซอน
+ออนซ์
+ออนดีมานด์
+ออนไลน์
+ออปชัน
+ออปติคัล
+ออปเจ็à¸à¸•à¹Œ
+ออฟ
+ออฟชอร์
+ออฟฟิศ
+ออม
+ออมชอม
+ออมซอม
+ออมฟาไซต์
+ออมสิน
+ออมอด
+ออมไบ
+ออราเคิล
+ออร์à¸à¸™à¸µ
+ออร์พิเมนต์
+ออร์เซไลต์
+ออร์à¹à¸à¸™
+ออร์โทเคลส
+ออร์ไทต์
+ออลบานี
+ออสซี่
+ออสตราล
+ออสติน
+ออสเตรีย
+ออสเตรเลีย
+ออสเมียม
+ออสโล
+ออเงิน
+ออเซาะ
+ออไจต์
+อะคร้าว
+อะความารีน
+อะจีน
+อะซอร์ส
+อะซุนซิโอน
+อะซูไรต์
+อะดรีนาลิน
+อะดัà¸
+อะดุง
+อะดูลาเรีย
+อะตอม
+อะทาคาไมต์
+อะนอร์โทเคลส
+อะนอร์ไทต์
+อะนะ
+อะนั้น
+อะนาลไซต์
+อะนาลไซม์
+อะนาเทส
+อะนี้
+อะพาไทต์
+อะมอร์à¸à¸­à¸ª
+อะมีบา
+อะราโà¸à¹„นต์
+อะร้าอร่าม
+อะลอร์
+อะลัม
+อะลาบาสเทอร์
+อะลาà¹à¸šà¸™à¹„ดต์
+อะลุ่มอล่วย
+อะลุ้มอล่วย
+อะลูมินัม
+อะลูมิเนียม
+อะลูไนต์
+อะสา
+อะหม
+อะอื้อ
+อะเà¸à¸•
+อะเคื้อ
+อะเซทิลีน
+อะเธนส์
+อะเมริเซียม
+อะเลà¸à¸‹à¸²à¸™à¹„ดรต์
+อะเล็à¸à¸‹à¸²à¸™à¹€à¸”อร์
+อะเวนจูรีน
+อะà¹à¸ˆ
+อะà¹à¸¥à¸ªà¸à¸²
+อะไร
+อะไหล่
+อัà¸
+อัà¸à¸à¸°
+อัà¸à¸‚
+อัà¸à¸‚ร
+อัà¸à¸‚รวิธี
+อัà¸à¸‚รวิบัติ
+อัà¸à¸‚รสมัย
+อัà¸à¸‚ระ
+อัà¸à¸©à¸£
+อัà¸à¸©à¸£à¹‚สภณ
+อัà¸à¸©à¸°
+อัà¸à¸­à¹ˆà¸§à¸™
+อัà¸à¹€à¸ªà¸š
+อัà¸à¹‚ข
+อัà¸à¹‚ขภ
+อัคคะ
+อัคคิ
+อัคคี
+อัคนิ
+อัคนี
+อัคร
+อัครชายา
+อัครมเหสี
+อัครราชทูต
+อัครสมณทูต
+อัง
+อังà¸à¸™à¸°
+อังà¸à¸¤à¸©
+อังà¸à¸§à¸”
+อังà¸à¸°à¸¥à¸¸à¸‡
+อังà¸à¸²
+อังà¸à¸²à¸š
+อังà¸à¸²à¸£à¸²
+อังà¸à¸¸à¸£
+อังà¸à¸¸à¸¨
+อังà¸à¸¹à¸£
+อังà¸à¹Œ
+อังคณะ
+อังคณา
+อังคาร
+อังคาส
+อังคุà¸
+อังฆาต
+อังทราย
+อังน้ำ
+อังรีดูนังต์
+อังรึง
+อังศุ
+อังศุà¸
+อังส
+อังสà¸à¸¸à¸
+อังสตรอม
+อังสนา
+อังสา
+อังโà¸à¸¥à¸²
+อัจà¸à¸¥à¸±à¸š
+อัจจันต์
+อัจจัย
+อัจจิ
+อัจจุต
+อัจฉรา
+อัจฉริยบุคคล
+อัจฉริยะ
+อัจนา
+อัชฌา
+อัชฌาสัย
+อัà¸
+อัà¸à¸‚ยม
+อัà¸à¸Šà¸™à¸°
+อัà¸à¸Šà¸¥à¸µ
+อัà¸à¸Šà¸±à¸™
+อัà¸à¸à¸°
+อัà¸à¸›à¸£à¸°à¸à¸²à¸¨
+อัà¸à¸¡à¸“ี
+อัà¸à¸£à¸¹à¸›
+อัà¸à¹€à¸Šà¸´à¸
+อัà¸
+อัà¸à¸
+อัà¸à¸à¸°
+อัà¸à¸™à¸²
+อัà¸
+อัà¸à¸—ิศ
+อัà¸à¸¡
+อัà¸à¸¨à¸
+อัà¸à¸¬à¸ª
+อัà¸à¸´
+อัà¸à¸´à¸¡à¸´à¸à¸Šà¸°
+อัฒ
+อัฒจันทร์
+อัฒภาค
+อัฒมณฑล
+อัฒมาส
+อัฒรัตติ
+อัณฑ
+อัณฑชะ
+อัณฑะ
+อัณฑาà¸à¸²à¸£
+อัณณพ
+อัด
+อัดฉีด
+อัดรูป
+อัดลม
+อัดà¹à¸ˆ
+อัดà¹à¸­
+อัต
+อัตคัด
+อัตชีวประวัติ
+อัตตชีวประวัติ
+อัตตะ
+อัตตา
+อัตตาธิปไตย
+อัตถะ
+อัตถ์
+อัตนัย
+อัตภาพ
+อัตรชะ
+อัตรา
+อัตราส่วน
+อัตราเร็ว
+อัตลัด
+อัตวินิบาตà¸à¸£à¸£à¸¡
+อัตหิต
+อัตโนมัติ
+อัททา
+อัทธ
+อัทธคต
+อัทธคู
+อัธยาย
+อัธยาศัย
+อัน
+อันดà¸
+อันดร
+อันดรอส
+อันดอร์รา
+อันดับ
+อันดามัน
+อันต
+อันตà¸
+อันตà¸à¸£
+อันตà¸à¸²à¸¥
+อันตà¸à¸´à¸£à¸´à¸¢à¸²
+อันตคุณ
+อันตคุณะ
+อันตคู
+อันตร
+อันตรธาน
+อันตรภาค
+อันตรา
+อันตราย
+อันตะ
+อันติà¸
+อันติมะ
+อันทุ
+อันธ
+อันธà¸à¸²à¸£
+อันธพาล
+อันนะ
+อันนา
+อันวย
+อันว่า
+อันเดอร์
+อันเต
+อันเวส
+อันโทล
+อับ
+อับจน
+อับปาง
+อับอาย
+อับเฉา
+อัป
+อัปà¸à¸°
+อัปà¸à¸²à¸£
+อัปปะ
+อัปภาคย์
+อัปมงคล
+อัปยศ
+อัประมาณ
+อัปราชัย
+อัปรีย์
+อัปลัà¸à¸©à¸“์
+อัปสร
+อัปสรสวรรค์
+อัปเปหิ
+อัปเปอร์
+อัปเปอร์วอลตา
+อัพพุท
+อัพภาน
+อัพภาส
+อัพเà¸à¸£à¸”
+อัพเดต
+อัพเดท
+อัพโหลด
+อัฟà¸à¸²à¸™à¸´à¸ªà¸–าน
+อัม
+อัมพ
+อัมพร
+อัมพฤà¸à¸©à¹Œ
+อัมพวัน
+อัมพวา
+อัมพา
+อัมพาต
+อัมพิล
+อัมพุ
+อัมพุช
+อัมพุท
+อัมมัน
+อัมสเตอร์ดัม
+อัยà¸à¸°
+อัยà¸à¸²
+อัยà¸à¸²à¸£
+อัยà¸à¸µ
+อัยยะ
+อัยยิà¸à¸²
+อัลจีเรีย
+อัลตรา
+อัลตราไวโอเลต
+อัลบั้ม
+อัลบาเนีย
+อัลมาอาตา
+อัลลอย
+อัศจรรย์
+อัศดร
+อัศว
+อัศวนึà¸
+อัศวิน
+อัศวินี
+อัศเจรีย์
+อัษฎ
+อัษฎมะ
+อัษฎางค์
+อัษฎาวุธ
+อัส
+อัสชัมชัà¸
+อัสดง
+อัสดงคต
+อัสดร
+อัสนี
+อัสสะ
+อัสสาสะ
+อัสสุ
+อัสสุชล
+อัสสุธารา
+อัสเซนชัน
+อั่ว
+อั้à¸
+อั้งยี่
+อั้งโล่
+อั้น
+อั๊à¸
+อั๊ว
+อั๋น
+อา
+อาà¸à¸£
+อาà¸à¸£à¸µà¸®à¸±à¸™
+อาà¸à¸±à¸›
+อาà¸à¸±à¸›à¸à¸´à¸£à¸´à¸¢à¸²
+อาà¸à¸²à¸£
+อาà¸à¸²à¸¨
+อาà¸à¸²à¸¨à¸¢à¸²à¸™
+อาà¸à¸²à¸¨à¸­à¸³à¸™à¸§à¸¢
+อาà¸à¸¹à¸¥
+อาà¸à¹‰à¸²
+อาขยาต
+อาขยาน
+อาคม
+อาคันตุà¸à¸°
+อาคาร
+อาคารสงเคราะห์
+อาคเนย์
+อาฆาต
+อางขนาง
+อาจ
+อาจà¸à¸¥à¹ˆà¸­à¸¡
+อาจณรงค์
+อาจม
+อาจมน
+อาจริย
+อาจริยวัตร
+อาจสามารถ
+อาจหาà¸
+อาจอง
+อาจาด
+อาจาร
+อาจารย์
+อาจารี
+อาจิณ
+อาชà¸à¸²
+อาชà¸à¸²à¸à¸£
+อาชà¸à¸²à¸à¸£à¸£à¸¡
+อาชà¸à¸²à¸à¸£à¸ªà¸‡à¸„ราม
+อาชà¸à¸²à¸¨à¸¶à¸
+อาชà¸à¸²à¸ªà¸´à¸—ธิ์
+อาชวะ
+อาชา
+อาชาน
+อาชาไนย
+อาชีพ
+อาชีว
+อาชีวà¸
+อาชีวศึà¸à¸©à¸²
+อาชีวะ
+อาซอฟ
+อาà¸à¸²
+อาà¸à¸²à¸ªà¸´à¸—ธิ์
+อาà¸à¸²à¸™à¸²
+อาณัติ
+อาณัติสัà¸à¸à¸²à¸“
+อาณา
+อาณาจัà¸à¸£
+อาณานิคม
+อาณาประโยชน์
+อาณาเขต
+อาด
+อาดุร
+อาดุลย์
+อาดูร
+อาตม
+อาตมภาพ
+อาตมัน
+อาตมา
+อาถรรพณ์
+อาถรรพ์
+อาทร
+อาทรอุปถัมภ์
+อาทาตา
+อาทาน
+อาทิ
+อาทิตย
+อาทิตย์
+อาทีนพ
+อาทึà¸
+อาธรรม
+อาธาน
+อาธาร
+อาน
+อานà¸
+อานน
+อานนท์
+อานะ
+อานันท์
+อานัม
+อานำ
+อานิสงส์
+อานุภาพ
+อาบ
+อาบัติ
+อาบัน
+อาบิดจัน
+อาบà¹à¸”ด
+อาปณà¸à¸°
+อาปณะ
+อาปะ
+อาปาน
+อาพัด
+อาพาธ
+อาพิล
+อาฟà¸à¸²à¸™à¸´à¸ªà¸–าน
+อาฟต้า
+อาฟริà¸à¸²
+อาภรณ์
+อาภัพ
+อาภา
+อาภาà¸à¸£
+อาภาภิรมย์
+อาภาส
+อาม
+อามลà¸
+อามัย
+อามิษ
+อามิส
+อาย
+อายต
+อายตนะ
+อายน
+อายัด
+อายัต
+อายัน
+อายาน
+อายุ
+อายุขัย
+อายุธ
+อายุร
+อายุรศาสตร์
+อายุรเวช
+อายุรเวท
+อายุรà¹à¸žà¸—ย์
+อารดี
+อารทรา
+อารบิค
+อารมณ์
+อารย
+อารยชน
+อารยชาติ
+อารยธรรม
+อารยประเทศ
+อารยะ
+อารยะชาติ
+อารยัน
+อาระ
+อารัà¸à¸‚า
+อารัà¸à¸©à¹Œ
+อารัà¸
+อารัติ
+อารัมภ
+อารัมภà¸à¸–า
+อารัมภบท
+อารัล
+อาราธนา
+อาราม
+อารามิà¸
+อาราเบีย
+อารี
+อารีย์
+อารีย์สัมพันธ์
+อารุม
+อารู
+อาร์à¸à¸•à¸´à¸
+อาร์à¸à¸­à¸™
+อาร์à¸à¸´à¸§à¹€à¸¡à¸™à¸•à¹Œ
+อาร์คติà¸
+อาร์คันซอ
+อาร์ต
+อาร์ฟเวดโซไนต์
+อาร์ม
+อาร์เจนตินา
+อาร์เจนโทไพไรต์
+อาร์เจนไทต์
+อาร์เซนอล
+อาร์เซนิà¸
+อาร์เซนิค
+อาร์เซโนไพไรต์
+อาร์เซโนไลต์
+อาร์เรย์
+อาลปนะ
+อาลปน์
+อาละวาด
+อาลัà¸à¸©à¸“์
+อาลัย
+อาลัว
+อาลิ
+อาลิวเชียน
+อาว
+อาวรณ์
+อาวาส
+อาวาหะ
+อาวุต
+อาวุธ
+อาวุโส
+อาศรม
+อาศรมบท
+อาศัย
+อาศิร
+อาศิรวาท
+อาศุ
+อาษา
+อาษาฒ
+อาสน
+อาสนะ
+อาสน์
+อาสัà¸
+อาสา
+อาสาฬห
+อาสาฬหบูชา
+อาสาฬห์
+อาสิน
+อาสูร
+อาหนี
+อาหนู
+อาหม
+อาหร
+อาหรับ
+อาหล่า
+อาหาร
+อาหุดี
+อาฬหà¸
+อาเขต
+อาเขย
+อาเจียน
+อาเชี่ยน
+อาเซียน
+อาเด๊ะ
+อาเทศ
+อาเพศ
+อาเมน
+อาเวค
+อาเวศ
+อาเศียร
+อาเศียรวาท
+อาเหต
+อาà¹à¸„นไทต์
+อาà¹à¸ªà¸°
+อาโลà¸
+อาไบอาง
+อำ
+อำนด
+อำนนต์
+อำนรรฆ
+อำนวนสงคราม
+อำนวย
+อำนวยผล
+อำนวยวิทย์
+อำนวยศิลป์
+อำนาจ
+อำนาจเจริà¸
+อำนาถ
+อำนิà¸
+อำปลัง
+อำพน
+อำพราง
+อำพะนำ
+อำพัน
+อำมร
+อำมฤต
+อำมหิต
+อำมาตย์
+อำยวน
+อำรุง
+อำลา
+อำอวม
+อำเภอ
+อำà¹à¸”ง
+อำไพ
+อิà¸
+อิง
+อิงค์
+อิงค์เจ็ต
+อิงอร
+อิงà¹à¸­à¸š
+อิจฉริย
+อิจฉา
+อิฉัน
+อิชยา
+อิà¸à¸
+อิà¸à¸à¸²à¸£à¸¡à¸“์
+อิà¸
+อิà¸à¸œà¸¥
+อิณ
+อิด
+อิดดิงไซต์
+อิดออด
+อิดโรย
+อิตถี
+อิตาลี
+อิตาเลียน
+อิตเทรียม
+อิตเทอร์เบียม
+อิทธิ
+อิทธิพล
+อิทธิฤทธิ์
+อิทะà¸à¸°
+อิน
+อินซูลิน
+อินดิโคไลต์
+อินทนิล
+อินทผลัม
+อินทร
+อินทรธนู
+อินทรพิทัà¸à¸©à¹Œ
+อินทรวงศ์
+อินทรวิหาร
+อินทรวิเชียร
+อินทรา
+อินทราราม
+อินทราเน็ต
+อินทรี
+อินทรียสังวร
+อินทรีย์
+อินทร์
+อินทร์บุรี
+อินทามระ
+อินทุ
+อินท์
+อินธน์
+อินน์
+อินพุต
+อินฟราเรด
+อินฟอร์มิà¸
+อินัง
+อินเดีย
+อินเดียนา
+อินเดียนาโปลิส
+อินเดียนà¹à¸”ง
+อินเดียม
+อินเตอร์
+อินเตอร์เน็ต
+อินเตอร์เฟส
+อินเทล
+อินเทอร์เน็ต
+อินเทอร์เบียม
+อินเทอร์เฟส
+อินโดนีเซีย
+อิมบรอส
+อิมพอร์ต
+อิมพีเรียล
+อิมัลชัน
+อิมเมจ
+อิยิปต์
+อิรัà¸
+อิริยา
+อิริยาบถ
+อิริเดียม
+อิลลินอยส์
+อิลู
+อิลเมไนต์
+อิลไลต์
+อิวีซา
+อิศร
+อิศวร
+อิษà¸à¸µ
+อิษà¸à¹Œ
+อิส
+อิสตรี
+อิสร
+อิสรภาพ
+อิสระ
+อิสราเอล
+อิสริย
+อิสริยยศ
+อิสริยะ
+อิสริยาภรณ์
+อิสลาม
+อิสลามาบัด
+อิสสา
+อิสิ
+อิสี
+อิสเà¸à¸µà¸¢
+อิหม่าม
+อิหร่าน
+อิหลัà¸à¸­à¸´à¹€à¸«à¸¥à¸·à¹ˆà¸­
+อิเซตัน
+อิเทอร์
+อิเล็à¸à¸•à¸£à¸­à¸™
+อิเล็à¸à¸—รอนิà¸à¸ªà¹Œ
+อิเล็à¸à¹‚ทน
+อิเหนา
+อิ่ม
+อิ่มใจ
+อี
+อีà¸
+อีà¸à¸Šà¸¸à¸
+อีà¸à¸²
+อีà¸à¹‰à¸­
+อีà¸à¹‹à¸­à¸¢
+อีà¸à¹‹à¸²
+อีคอมเมิร์ซ
+อีจิไรต์
+อีจู้
+อีฉัน
+อีตาล
+อีถ่าง
+อีทุà¸
+อีนาร์ไจต์
+อีนุงตุงนัง
+อีนูน
+อีบึ้ง
+อีมู
+อียิปต์
+อีรม
+อีริไทรต์
+อีรุ้ง
+อีลอง
+อีลิวเธอรา
+อีลุ่ยฉุยà¹à¸‰à¸
+อีลุ้ม
+อีศ
+อีศวร
+อีส
+อีสป
+อีสา
+อีสาน
+อีสุà¸à¸­à¸µà¹ƒà¸ª
+อีหรอบ
+อีหลี
+อีเà¸à¹‰à¸‡
+อีเจียน
+อีเดไนต์
+อีเต้อ
+อีเทอร์
+อีเป็ด
+อีเป้า
+อีเพา
+อีเมล
+อีเมล์
+อีเลà¸à¸—รัม
+อีเหละเขะขะ
+อีเห็น
+อีà¹à¸
+อีà¹à¸à¹ˆ
+อีà¹à¸à¹‰
+อีà¹à¸›à¸°
+อีà¹à¸¥à¹ˆà¸‡
+อีà¹à¸­à¹ˆà¸™
+อีโà¸à¹‰à¸‡
+อีโà¸à¹Šà¸°
+อีโต้
+อีโน
+อีโปง
+อีโลง
+อีโหลà¸à¹‚ขลà¸à¹€à¸‚ลà¸
+อี่
+อี้
+อี๊ด
+อี๋
+อี๋อ๋อ
+อึ
+อึà¸
+อึà¸à¸—ึà¸
+อึà¸à¸­à¸±à¸
+อึง
+อึงมี่
+อึงรึง
+อึงอล
+อึด
+อึดอัด
+อึดใจ
+อึน
+อึมบาบาน
+อึ่ง
+อึ้ง
+อึ้ดทึ่ด
+อึ๊à¸
+อืด
+อืดอาด
+อือ
+อือออ
+อื่น
+อื้น
+อื้อ
+อุ
+อุà¸
+อุà¸à¸à¸²
+อุà¸à¸à¸²à¸šà¸²à¸•
+อุà¸à¸‰à¸à¸£à¸£à¸ˆà¹Œ
+อุà¸à¸¤à¸©à¸à¹Œ
+อุà¸à¸¥à¸²
+อุà¸à¸­à¸²à¸ˆ
+อุค
+อุคห
+อุจ
+อุจจาร
+อุจจาระ
+อุจฉุ
+อุจาด
+อุจเฉท
+อุชุ
+อุซุมบูรา
+อุซเบà¸à¸µà¸ªà¸–าน
+อุฌาà¸à¸£à¸£à¸“
+อุà¸à¸à¸²à¸à¸²à¸£
+อุณห
+อุณหภูมิ
+อุณหะ
+อุณหาà¸à¸²à¸£
+อุณหิส
+อุณา
+อุณาโลม
+อุด
+อุดม
+อุดมà¸à¸²à¸£à¸“์
+อุดมคติ
+อุดมยศ
+อุดมศึà¸à¸©à¸²
+อุดมสุข
+อุดมเà¸à¸µà¸¢à¸£à¸•à¸´
+อุดร
+อุดรธานี
+อุดหนุน
+อุดอู้
+อุดเตา
+อุตดม
+อุตดร
+อุตตมะ
+อุตบล
+อุตพิด
+อุตรดิตถ์
+อุตรา
+อุตริ
+อุตลุด
+อุตสาห
+อุตสาหà¸à¸£à¸£à¸¡
+อุตสาหà¸à¸£à¸£à¸¡à¸¨à¸´à¸¥à¸›à¹Œ
+อุตสาหะ
+อุตส่าห์
+อุตุ
+อุตุนิยมวิทยา
+อุท
+อุทà¸
+อุทà¸à¸ à¸±à¸¢
+อุทà¸à¸§à¸´à¸—ยา
+อุทà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+อุททาม
+อุทธรณ์
+อุทธัจ
+อุทบาตร
+อุทบาน
+อุทยาน
+อุทร
+อุทลุม
+อุทัช
+อุทัย
+อุทัยธานี
+อุทัยธาราม
+อุทัยรัตน์
+อุทาน
+อุทาร
+อุทาหรณ์
+อุทิศ
+อุทุมพร
+อุทุมพรพิสัย
+อุธัจ
+อุบ
+อุบล
+อุบลรัตน์
+อุบลราชธานี
+อุบอิบ
+อุบะ
+อุบัติ
+อุบัติภัย
+อุบัติเหตุ
+อุบาท
+อุบาทว์
+อุบาย
+อุบาสà¸
+อุบาสิà¸à¸²
+อุบ๊ะ
+อุป
+อุปà¸à¸£à¸“์
+อุปà¸à¸£à¸¡
+อุปà¸à¸²à¸£
+อุปà¸à¸²à¸£à¸°
+อุปà¸à¸²à¸£à¸µ
+อุปà¸à¸´à¹€à¸¥à¸ª
+อุปจาร
+อุปถัมภà¸
+อุปถัมภ์
+อุปทม
+อุปทาน
+อุปทูต
+อุปธิ
+อุปนัย
+อุปนายà¸
+อุปนิสัย
+อุปบล
+อุปมัย
+อุปมา
+อุปมาน
+อุปราà¸à¸£
+อุปราช
+อุปริ
+อุปริม
+อุปสงค์
+อุปสมบท
+อุปสรรค
+อุปสัมปทา
+อุปฮาด
+อุปัชฌายะ
+อุปัชฌาย์
+อุปัà¸à¸à¸²à¸
+อุปัà¸à¸à¸²à¸™à¸°
+อุปัทว
+อุปัทวันตราย
+อุปาณ
+อุปาทาน
+อุปเทศ
+อุปโภค
+อุปโยค
+อุปโลà¸à¸™à¹Œ
+อุปไมย
+อุภัย
+อุมงค์
+อุย
+อุยยาน
+อุยยาม
+อุยโยค
+อุร
+อุรค
+อุรณ
+อุรพี
+อุรส
+อุระ
+อุรังอุตัง
+อุรา
+อุรุ
+อุลป
+อุลปนะ
+อุลามà¸
+อุลิด
+อุลูà¸
+อุลโลจ
+อุวะ
+อุษณ
+อุษณà¸à¸£
+อุษณีย์
+อุษม
+อุษา
+อุสภ
+อุสวะ
+อุสา
+อุสุ
+อุสุภ
+อุสุม
+อุหรับ
+อุหลบ
+อุฬาร
+อุเทà¸à¸°
+อุเทศ
+อุเบà¸à¸‚า
+อุเหตุ
+อุเหม่
+อุà¹à¸§à¹‰
+อุโฆษ
+อุโบสถ
+อุโมงค์
+อุโลà¸
+อุไร
+อุไรศิลป์
+อุ่น
+อุ่นอนุสรณ์
+อุ่ย
+อุ้ง
+อุ้งมือ
+อุ้งเท้า
+อุ้ม
+อุ้มชู
+อุ้มผาง
+อุ้มสม
+อุ้ย
+อุ้ยอ้าย
+อุ๊ย
+อู
+อูà¸
+อูด
+อูนนิลควอเดียม
+อูนนิลอูเนียม
+อูนนิลเทรียม
+อูนนิลเบียม
+อูนนิลเพนเทียม
+อูนนิลเฮà¸à¹€à¸‹à¸µà¸¢à¸¡
+อูม
+อูย
+อูราไลต์
+อูรุ
+อูลานบาตอร์
+อูวาโรไวต์
+อูอาà¸à¸²à¸”ูà¸à¸¹
+อู่
+อู่ทอง
+อู่ทองนอà¸
+อู่ทองใน
+อู่น้ำ
+อู่ลอย
+อู้
+อู้อี้
+อู๋อี๋
+อเจลà¸
+อเจละ
+อเนà¸
+อเนà¸à¸„ุณ
+อเนà¸à¸›à¸£à¸°à¸ªà¸‡à¸„์
+อเนจอนาถ
+อเปหิ
+อเมริà¸à¸±à¸™
+อเมริà¸à¸²
+อเมริà¸à¸²à¹€à¸«à¸™à¸·à¸­
+อเมริà¸à¸²à¹ƒà¸•à¹‰
+อเวจี
+อเส
+อเสà¸à¸‚
+อเสà¸à¸‚ะ
+อเสข
+อà¹à¸”ปเตอร์
+อโฆษะ
+อโณทัย
+อโนชา
+อโนดาต
+อโลภะ
+อโลหะ
+อโศà¸
+อโหสิ
+อโหสิà¸à¸£à¸£à¸¡
+อ็อบเจ็à¸à¸•à¹Œ
+อ็อพชัน
+อ่วม
+อ่อง
+อ่อน
+อ่อนข
+อ่อนนุช
+อ่อนน้อม
+อ่อนหัด
+อ่อนหู
+อ่อนอนุโลม
+อ่อนเพลีย
+อ่อนà¹à¸­
+อ่อนใจ
+อ่อม
+อ่อย
+อ่า
+อ่าง
+อ่างทอง
+อ่างล้างหน้า
+อ่างอาบน้ำ
+อ่าน
+อ่าว
+อ่าวลึà¸
+อ่ำ
+อ้น
+อ้ม
+อ้วà¸
+อ้วน
+อ้วนพี
+อ้อ
+อ้อน
+อ้อนวอน
+อ้อนออด
+อ้อนà¹à¸­à¹‰à¸™
+อ้อม
+อ้อมค้อม
+อ้อมอà¸
+อ้อย
+อ้อยส้อย
+อ้อยอิ่ง
+อ้อà¹à¸­à¹‰
+อ้า
+อ้าง
+อ้างว้าง
+อ้างอิง
+อ้าซ่า
+อ้าย
+อ้าว
+อ้ำอึ้ง
+อ๊อด
+อ๊ะ
+อ๋อ
+อ๋อง
+อ๋อย
+ฮà¸à¹€à¸à¸µà¹‰à¸¢à¸™
+ฮวงซุ้ย
+ฮวงโห
+ฮวงไฮ
+ฮวน
+ฮวนนั้ง
+ฮวนเฟอร์นันเดซ
+ฮวบ
+ฮวบฮาบ
+ฮอà¸à¸à¸µà¹‰
+ฮอà¸à¹„à¸à¹‚ด
+ฮองเฮา
+ฮอด
+ฮอต
+ฮอตดอà¸
+ฮอนชู
+ฮอนดูรัส
+ฮอนโด
+ฮอนโนลูลู
+ฮอยน์
+ฮอยไนต์
+ฮอร์นเบลนด์
+ฮอร์โมน
+ฮอลลีวู้ด
+ฮอลันดา
+ฮอลิวีน
+ฮอลà¹à¸¥à¸™à¸”์
+ฮอส
+ฮะ
+ฮะฮ้าย
+ฮะไฮ้
+ฮัà¸
+ฮังà¸à¸²à¸£à¸µ
+ฮังเล
+ฮัม
+ฮัลโล่
+ฮั่น
+ฮั่นà¹
+ฮั้ว
+ฮา
+ฮานอย
+ฮาป่า
+ฮาม
+ฮาราคิรี
+ฮาราเร
+ฮาร์ด
+ฮาร์ดดิสà¸à¹Œ
+ฮาร์ดดิสค์
+ฮาร์ดà¹à¸§à¸£à¹Œ
+ฮาร์ตฟอร์ด
+ฮาลลอยไซต์
+ฮาล์ฟ
+ฮาวานา
+ฮาวาย
+ฮาห์เนียม
+ฮาเร็ม
+ฮาโลวีน
+ฮิ
+ฮิดเดไนต์
+ฮิต
+ฮินดู
+ฮิปปี้
+ฮิปโป
+ฮิปโปโปเตมัส
+ฮิวมัส
+ฮิวà¹à¸¥à¸™à¹„ดต์
+ฮิสทีเรีย
+ฮิสà¹à¸›à¸™à¸´à¹‚อลา
+ฮีบรู
+ฮีมาไทต์
+ฮีลิโอโทรป
+ฮีเลียม
+ฮีโร่
+ฮึ
+ฮึà¸
+ฮึà¸à¸«à¸²à¸
+ฮึà¸à¸«à¹‰à¸²à¸§
+ฮึà¸à¸®à¸±à¸
+ฮึà¸à¹€à¸«à¸´à¸¡
+ฮึà¸à¹‚หม
+ฮึด
+ฮึดฮัด
+ฮึม
+ฮึย
+ฮึ่ม
+ฮึ่ย
+ฮืด
+ฮืดฮาด
+ฮือ
+ฮื่อ
+ฮื้อ
+ฮุด
+ฮุบ
+ฮุยเลฮุย
+ฮูà¸
+ฮูม
+ฮูลา
+ฮู้
+ฮ่วย
+ฮ่อ
+ฮ่องà¸à¸‡
+ฮ่องเต้
+ฮ่อม
+ฮ่อมดง
+ฮ่ะฮ่า
+ฮ่า
+ฮ้อ
+ฮ้า
+ฮ้าไฮ้
+ฯพณฯ
+ฯลฯ
+เà¸
+เà¸à¸
+เà¸à¸à¸¡à¸°à¹€à¸«à¸£à¸
+เà¸à¸‡à¸à¸­à¸¢
+เà¸à¸‡à¹€à¸‚ง
+เà¸à¸ˆà¸´
+เà¸à¸ˆà¸´à¸­à¸²à¸ˆà¸²à¸£à¸¢à¹Œ
+เà¸à¸ˆà¹Œ
+เà¸à¸Šà¸²
+เà¸à¸“ฑ์
+เà¸à¸”
+เà¸à¸•à¸¸
+เà¸à¸•à¸¸à¸™à¸¸à¸•à¸´
+เà¸à¸•à¹€à¸§à¸¢à¹Œ
+เà¸à¸—ับ
+เà¸à¸™
+เà¸à¸™à¹†
+เà¸à¸¡
+เà¸à¸¡à¸ªà¹Œ
+เà¸à¸¢
+เà¸à¸¢à¸¥à¸²
+เà¸à¸¢à¸¹à¸£
+เà¸à¸¢à¹Œ
+เà¸à¸£à¸‡
+เà¸à¸£à¸‡à¹ƒà¸ˆ
+เà¸à¸£à¸”
+เà¸à¸£à¸™
+เà¸à¸£à¸™à¸²à¸”า
+เà¸à¸£à¸­à¸°
+เà¸à¸£à¸²à¸°
+เà¸à¸£à¸´à¸
+เà¸à¸£à¸´à¸™
+เà¸à¸£à¸´à¹ˆà¸™
+เà¸à¸£à¸µà¸¢à¸
+เà¸à¸£à¸µà¸¢à¸‡
+เà¸à¸£à¸µà¸¢à¸‡à¸¨à¸±à¸à¸”ิ์
+เà¸à¸£à¸µà¸¢à¸”
+เà¸à¸£à¸µà¸¢à¸™
+เà¸à¸£à¸µà¸¢à¸š
+เà¸à¸£à¸µà¸¢à¸¡
+เà¸à¸£à¸µà¸¢à¸§
+เà¸à¸£à¸µà¹‰à¸¢à¸§
+เà¸à¸£à¹€à¸®à¸²à¸™à¸”์
+เà¸à¸£à¹‡à¸‡
+เà¸à¸£à¹‡à¸”
+เà¸à¸£à¹ˆà¸­
+เà¸à¸¥à¸¨
+เà¸à¸¥à¸­
+เà¸à¸¥à¸²
+เà¸à¸¥à¸²à¸°
+เà¸à¸¥à¸µà¸¢à¸‡
+เà¸à¸¥à¸µà¸¢à¸”
+เà¸à¸¥à¸µà¸¢à¸§
+เà¸à¸¥à¸µà¹ˆà¸¢
+เà¸à¸¥à¸µà¹‰à¸¢
+เà¸à¸¥à¸µà¹‰à¸¢à¸‡
+เà¸à¸¥à¸·à¸­
+เà¸à¸¥à¸·à¸­à¸
+เà¸à¸¥à¸·à¸­à¸à¸£à¸”
+เà¸à¸¥à¸·à¸­à¸ˆà¸·à¸”
+เà¸à¸¥à¸·à¸­à¸”่าง
+เà¸à¸¥à¸·à¸­à¸›à¸£à¸à¸•à¸´
+เà¸à¸¥à¸·à¸­à¸«à¸´à¸™
+เà¸à¸¥à¸·à¸­à¹€à¸‡à¸´à¸™
+เà¸à¸¥à¸·à¸­à¹€à¸šà¸ªà¸´à¸
+เà¸à¸¥à¸·à¸­à¹à¸à¸‡
+เà¸à¸¥à¸·à¹ˆà¸­à¸™
+เà¸à¸¥à¸·à¹‰à¸­
+เà¸à¸¥à¸·à¹‰à¸­à¸™
+เà¸à¸¥à¹‡à¸”
+เà¸à¸¥à¹‰à¸²
+เà¸à¸¥à¹‰à¸²à¸à¸£à¸°à¸œà¸¡
+เà¸à¸¥à¹‰à¸²à¸¯
+เà¸à¸§à¸±à¸Ž
+เà¸à¸§à¸µà¸¢à¸™
+เà¸à¸¨
+เà¸à¸¨à¸ž
+เà¸à¸¨à¸£à¸´à¸™
+เà¸à¸¨à¸²
+เà¸à¸¨à¸²à¸à¸±à¸™à¸•à¹Œ
+เà¸à¸¨à¸´à¸™à¸´
+เà¸à¸¨à¸´à¸™à¸µ
+เà¸à¸¨à¸µ
+เà¸à¸©à¸•à¸£
+เà¸à¸©à¸•à¸£à¸à¸£
+เà¸à¸©à¸•à¸£à¸à¸£à¸£à¸¡
+เà¸à¸©à¸•à¸£à¸§à¸´à¸ªà¸±à¸¢
+เà¸à¸©à¸•à¸£à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+เà¸à¸©à¸•à¸£à¸ªà¸¡à¸šà¸¹à¸£à¸“์
+เà¸à¸©à¸¡
+เà¸à¸©à¸¡à¸¨à¸²à¸™à¸•à¹Œ
+เà¸à¸©à¸¡à¸ªà¸±à¸™à¸•à¹Œ
+เà¸à¸©à¸²
+เà¸à¸©à¸µ
+เà¸à¸©à¸µà¸¢à¸“
+เà¸à¸©à¸µà¸¢à¸™
+เà¸à¸©à¸µà¸¢à¸£
+เà¸à¸ª
+เà¸à¸ªà¸£
+เà¸à¸ªà¸£à¸µ
+เà¸à¸ªà¸²
+เà¸à¸ªà¸µ
+เà¸à¸­à¸£à¹Œ
+เà¸à¸­à¸£à¹Œà¸™à¸‹à¸µ
+เà¸à¸­à¸´à¸Šà¸²
+เà¸à¸­à¹„ทต์
+เà¸à¸°
+เà¸à¸°à¸à¸°
+เà¸à¸²
+เà¸à¸²à¸•à¹Œ
+เà¸à¸²à¸—ัณฑ์
+เà¸à¸²à¸šà¸´à¸™
+เà¸à¸²à¸šà¸´à¸¥
+เà¸à¸²à¸¡à¸²à¸£
+เà¸à¸²à¸¥à¸±à¸”
+เà¸à¸²à¸¥à¸´à¸™
+เà¸à¸²à¸«à¸¥à¸µ
+เà¸à¸²à¸«à¸¥à¸µà¹€à¸«à¸™à¸·à¸­
+เà¸à¸²à¸«à¸¥à¸µà¹ƒà¸•à¹‰
+เà¸à¸²à¸°
+เà¸à¸²à¸°à¸„า
+เà¸à¸²à¸°à¸•à¸°
+เà¸à¸²à¸°à¸žà¸°à¸‡à¸±à¸™
+เà¸à¸²à¸°à¸¢à¸²à¸§
+เà¸à¸²à¸°à¸¥à¸±à¸™à¸•à¸²
+เà¸à¸²à¸°à¸ªà¸¡à¸¸à¸¢
+เà¸à¸²à¸°à¸ªà¸µà¸Šà¸±à¸‡
+เà¸à¸²à¹€à¸«à¸¥à¸²
+เà¸à¸²à¹„ศย
+เà¸à¸´à¸‡
+เà¸à¸´à¸”
+เà¸à¸´à¸”สุข
+เà¸à¸´à¸™
+เà¸à¸´à¸š
+เà¸à¸´à¹‰à¸‡
+เà¸à¸µà¸¢
+เà¸à¸µà¸¢à¸‡
+เà¸à¸µà¸¢à¸ˆ
+เà¸à¸µà¸¢à¸ˆà¸„ร้าน
+เà¸à¸µà¸¢à¸”
+เà¸à¸µà¸¢à¸™
+เà¸à¸µà¸¢à¸£à¸•à¸´
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸„ุณ
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸Šà¸±à¸¢
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸™à¸´à¸¢à¸¡
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸›à¸£à¸°à¸§à¸±à¸•à¸´
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸ à¸¹à¸¡à¸´
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸¢à¸¨
+เà¸à¸µà¸¢à¸£à¸•à¸´à¸¨à¸±à¸à¸”ิ์
+เà¸à¸µà¸¢à¸£à¸•à¸´à¹Œ
+เà¸à¸µà¸¢à¸£à¹Œ
+เà¸à¸µà¹ˆà¸¢à¸‡
+เà¸à¸µà¹ˆà¸¢à¸§
+เà¸à¸µà¹ˆà¸¢à¸§à¸‚้อง
+เà¸à¸µà¹‰à¸¢à¸¡à¸­à¸µà¹‹
+เà¸à¸µà¹‰à¸¢à¸¡à¹„ฉ่
+เà¸à¸µà¹‰à¸¢à¸§
+เà¸à¸µà¹Šà¸¢à¸§
+เà¸à¸µà¹Šà¸¢à¸°
+เà¸à¸µà¹‹à¸¢à¸‡
+เà¸à¸·à¸­à¸
+เà¸à¸·à¸­à¸š
+เà¸à¸·à¹‰à¸­
+เà¸à¸·à¹‰à¸­à¸à¸¹à¸¥
+เà¸à¸¸à¸•
+เà¸à¹€à¸£
+เà¸à¹„ล
+เà¸à¹‡à¸‡
+เà¸à¹‡à¸‡à¸Šà¸§à¸™
+เà¸à¹‡à¸ˆ
+เà¸à¹‡à¸”
+เà¸à¹‡à¸š
+เà¸à¹‡à¸šà¸‡à¸³
+เà¸à¹‡à¸šà¸•à¸
+เà¸à¹ˆ
+เà¸à¹ˆà¸‡
+เà¸à¹ˆà¸‡à¸à¸²à¸ˆ
+เà¸à¹ˆà¸™
+เà¸à¹ˆà¸²
+เà¸à¹‰à¸à¸±à¸‡
+เà¸à¹‰à¸‡
+เà¸à¹‰à¸‡à¸à¹‰à¸²à¸‡
+เà¸à¹‰à¸­
+เà¸à¹‰à¸²
+เà¸à¹‰à¸²à¸­à¸µà¹‰
+เà¸à¹‰à¸²à¹€à¸¥à¸µà¹‰à¸¢à¸§
+เà¸à¹Š
+เà¸à¹Šà¸
+เà¸à¹Šà¸à¸®à¸§à¸¢
+เà¸à¹Šà¸²à¸—์
+เà¸à¹‹
+เà¸à¹‹à¸‡
+เà¸à¹‹à¸²
+เข
+เขà¸
+เขจร
+เขดา
+เขต
+เขตà¹à¸”น
+เขน
+เขนง
+เขนย
+เขน็ด
+เขบ็จขบวน
+เขบ็ต
+เขม
+เขมทัต
+เขมร
+เขมราà¸
+เขมะสิริอนุสรณ์
+เขมา
+เขมือบ
+เขม็ง
+เขม็ดà¹à¸‚ม่
+เขม่น
+เขม่า
+เขม้น
+เขย
+เขยà¸
+เขยตาย
+เขยิน
+เขยิบ
+เขยื้อน
+เขย่ง
+เขย่า
+เขย้อà¹à¸‚ย่ง
+เขรอะ
+เขลง
+เขลอะ
+เขละ
+เขลา
+เขลาะ
+เขว
+เขษตร
+เขษม
+เขษียร
+เขฬะ
+เขะขะ
+เขา
+เขาชัยสน
+เขาดินวนา
+เขาพนม
+เขามอ
+เขาย้อย
+เขาวง
+เขาสมิง
+เขิน
+เขียง
+เขียด
+เขียน
+เขียม
+เขียว
+เขียวไข่à¸à¸²
+เขี่ย
+เขี้ยว
+เขี้ยวหนุมาน
+เขือ
+เขื่อง
+เขื่องใน
+เขื่อน
+เข็ง
+เข็à¸
+เข็à¸à¹ƒà¸ˆ
+เข็ด
+เข็น
+เข็ม
+เข็มขัด
+เข่ง
+เข่น
+เข่า
+เข่าลา
+เข้
+เข้ม
+เข้า
+เข้าขา
+เข้าคอ
+เข้าที
+เข้าปà¸
+เข้าผี
+เข้ายา
+เข้าหา
+เข้าหู
+เข้าใจ
+เข้าไป
+เคคอส
+เคจฉ
+เคณฑะ
+เคด
+เคน
+เคนทัà¸à¸à¸µ
+เคนยา
+เคบิน
+เคปเทาน์
+เคปเบรตัน
+เคปเวอร์ด
+เคมิคอล
+เคมี
+เคมีนินทรีย์
+เคมีภัณฑ์
+เคมีอินทรีย์
+เคย
+เคยชิน
+เคยตัว
+เคยปาà¸
+เคยมือ
+เครง
+เครดิต
+เครดิตฟองซิเอร์
+เครน
+เครา
+เคราหณี
+เคราะห์
+เครียด
+เครียว
+เครือ
+เครือจัà¸à¸£à¸ à¸ž
+เครือรัà¸
+เครือวัลย์
+เครื่อง
+เครื่องà¸à¸¥
+เครื่องควบà¹à¸™à¹ˆà¸™
+เครื่องจัà¸à¸£
+เครื่องตั้ง
+เครื่องต้น
+เครื่องปั้นดินเผา
+เครื่องพิมพ์
+เครื่องยนต์
+เครื่องราง
+เครื่องร่อน
+เครื่องหมาย
+เครื่องหมายà¸à¸²à¸£à¸„้า
+เครื่องเครา
+เคร่ง
+เคร่งขรึม
+เคร่งครัด
+เคร่งเครียด
+เคร่า
+เคลม
+เคลิบเคลิ้ม
+เคลิ้ม
+เคลีย
+เคลียร์
+เคลือบ
+เคลือบฟัน
+เคลื่อน
+เคลื่อนที่
+เคลื่อนไหว
+เคล็ด
+เคล้ง
+เคล้น
+เคล้า
+เคว้ง
+เคว้งคว้าง
+เคส
+เคห
+เคหวิตถ์
+เคหศาสตร์
+เคหสถาน
+เคหะ
+เคหะสถาน
+เคหา
+เคหเศรษà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+เคอร์à¸à¸´à¸ªà¸–าน
+เคอร์ซูไทต์
+เคอร์ฟิว
+เคอร์เคนนา
+เคอร์เซอร์
+เคอร์เนล
+เคอะ
+เคอะเ
+เคอะเขิน
+เคา
+เคาน์เตอร์
+เคารพ
+เคาะ
+เคาไอ
+เคิร์ฟ
+เคียง
+เคียด
+เคียดà¹à¸„้น
+เคียน
+เคียนชา
+เคียม
+เคียร
+เคียว
+เคียวรี
+เคี่ยม
+เคี่ยว
+เคี่ยวเข็à¸
+เคี้ย
+เคี้ยว
+เคือง
+เคื้อ
+เคเบิล
+เคโอลิน
+เคโอลิไนต์
+เค็นโด้
+เค็ม
+เค้à¸
+เค้ง
+เค้น
+เค้า
+เค้าโครง
+เค้เà¸à¹‰
+เฆี่ยน
+เงà¸
+เงย
+เงอะ
+เงอะงะ
+เงา
+เงามัว
+เงามืด
+เงาะ
+เงาๆ
+เงิน
+เงินปันผล
+เงินปี
+เงินผ่อน
+เงินà¸à¸·à¸”
+เงินสด
+เงินสเตอร์ลิง
+เงินเฟ้อ
+เงินเยอรมัน
+เงินà¹à¸›
+เงินได้à¸à¸³à¸šà¸±à¸‡
+เงียบ
+เงียบà¸à¸£à¸´à¸š
+เงียบเชียบ
+เงียบเหงา
+เงี่ย
+เงี่ยง
+เงี่ยน
+เงี่ยหู
+เงี้ยว
+เงือà¸
+เงือด
+เงือน
+เงือบ
+เงื่อง
+เงื่อน
+เงื่อนงำ
+เงื่อนไข
+เงื้อ
+เงื้อม
+เง็น
+เง่า
+เง้
+เง้า
+เจ
+เจด
+เจดียสถาน
+เจดีย์
+เจต
+เจตคติ
+เจตจำนง
+เจตนา
+เจตนารมณ์
+เจตภูต
+เจตสิà¸
+เจติย
+เจน
+เจนจบ
+เจนจัด
+เจนเติลà¹à¸¡à¸™
+เจนเนอราล
+เจนใจ
+เจฟเฟอร์สันซิตี
+เจม
+เจมซอไนต์
+เจมส์
+เจรจา
+เจราจา
+เจริà¸
+เจริà¸à¸à¸£à¸¸à¸‡
+เจริà¸à¸à¸£à¸¸à¸‡à¸›à¸£à¸°à¸Šà¸²à¸£à¸±à¸à¸©à¹Œ
+เจริà¸à¸—รัพย์
+เจริà¸à¸™à¸„ร
+เจริà¸à¸œà¸¥
+เจริà¸à¸žà¸£
+เจริà¸à¸žà¸±à¸’นา
+เจริà¸à¸£à¸±à¸–
+เจริà¸à¸§à¸±à¸¢
+เจริà¸à¸¨à¸´à¸¥à¸›à¹Œ
+เจริà¸à¸ªà¸¸à¸‚
+เจริà¸à¹€à¸¡à¸·à¸­à¸‡
+เจริà¸à¹ƒà¸ˆ
+เจริด
+เจรียง
+เจลียง
+เจว็ด
+เจษฎา
+เจอ
+เจอรัลด์
+เจอร์
+เจอร์ซี
+เจอร์เมเนียม
+เจอร์เรเนียม
+เจอะ
+เจา
+เจาะ
+เจาะจง
+เจิด
+เจิม
+เจิร์ม
+เจิ่ง
+เจิ่น
+เจียง
+เจียด
+เจียน
+เจียม
+เจียร
+เจียระไน
+เจียว
+เจี๊ยบ
+เจี๊ยว
+เจี๊ยวจ๊าว
+เจี๋ยน
+เจี๋ยมเจี้ยม
+เจือ
+เจือปน
+เจือสม
+เจื่อน
+เจื้อย
+เจไดต์
+เจ็ด
+เจ็บ
+เจ็บใจ
+เจ่ง
+เจ่อ
+เจ่า
+เจ้า
+เจ้าà¸à¸¹
+เจ้าของ
+เจ้าขา
+เจ้าข้า
+เจ้าค่ะ
+เจ้าชู้
+เจ้าพระยา
+เจ้าพระยาวิทยาคม
+เจ้าพระยาสยาม
+เจ้ามูล
+เจ้ายศ
+เจ้าอาม
+เจ๊
+เจ๊à¸
+เจ๊ง
+เจ๊ต
+เจ๊สัว
+เจ๊า
+เจ๋ง
+เจ๋อ
+เฉ
+เฉà¸
+เฉด
+เฉท
+เฉนียน
+เฉพาะ
+เฉย
+เฉยชา
+เฉยพ่วง
+เฉยเมย
+เฉยๆ
+เฉลย
+เฉลว
+เฉลา
+เฉลิม
+เฉลิมพระเà¸à¸µà¸¢à¸£à¸•à¸´
+เฉลียง
+เฉลียบ
+เฉลียว
+เฉลี่ย
+เฉวียง
+เฉวียน
+เฉอะ
+เฉอะà¹à¸‰à¸°
+เฉา
+เฉาà¸à¹Šà¸§à¸¢
+เฉาะ
+เฉาะๆ
+เฉาโฉด
+เฉิด
+เฉิบ
+เฉิ่ม
+เฉียง
+เฉียด
+เฉียบ
+เฉียบพลัน
+เฉียว
+เฉียวฉุน
+เฉี่ยว
+เฉือน
+เฉื่อย
+เฉื่อยๆ
+เฉโà¸
+เฉไฉ
+เฉ่ง
+เชงเลง
+เชด
+เชตà¹à¸¥à¸™à¸”์
+เชน
+เชฟ
+เชย
+เชยชม
+เชรา
+เชราะ
+เชริด
+เชลง
+เชลฟ์
+เชลย
+เชลล์
+เชลียง
+เชลà¹à¸¥à¹‡à¸
+เชวง
+เชษà¸
+เชษà¸à¸™à¸µ
+เชษà¸à¸ à¸„ินี
+เชษà¸à¸ à¸²à¸•à¸²
+เชษà¸à¸£à¸²à¸Š
+เชษà¸à¸²
+เชสซิไลต์
+เชอ
+เชอราตัน
+เชอร์บา
+เชอร์มาไคต์
+เชอร์เบท
+เชาวน์
+เชาวน์ดี
+เชาว์
+เชิง
+เชิงà¸à¸£à¸²à¸™
+เชิงà¸à¸¥
+เชิงซ้อน
+เชิงมุม
+เชิงอรรถ
+เชิงเดียว
+เชิงเดี่ยว
+เชิงไพเราะ
+เชิà¸
+เชิด
+เชิดชู
+เชิร์ต
+เชิ้ต
+เชีย
+เชียง
+เชียงà¸à¸¥à¸²à¸‡
+เชียงของ
+เชียงคาน
+เชียงคำ
+เชียงดาว
+เชียงม่วน
+เชียงยืน
+เชียงราย
+เชียงà¹à¸ªà¸™
+เชียงใหม่
+เชียบ
+เชียร
+เชียรใหà¸à¹ˆ
+เชียร์
+เชียว
+เชี่ยน
+เชี่ยม
+เชี่ยว
+เชี่ยวชาà¸
+เชี้ย
+เชือà¸
+เชือด
+เชือน
+เชื่อ
+เชื่อง
+เชื่อม
+เชื่อมสัมพันธ์
+เชื่อเพลิง
+เชื้อ
+เชื้อหมัà¸
+เช็à¸à¹‚à¸à¸ªà¹‚ลวะเà¸à¸µà¸¢
+เช็ค
+เช็ด
+เช่น
+เช่า
+เช้ง
+เช้งวับ
+เช้า
+เซ
+เซà¸à¸Šà¸±à¸™
+เซà¸à¸‹à¸µà¹ˆ
+เซà¸à¸‹à¹Œ
+เซà¸à¸²
+เซà¸à¹€à¸¡à¸™à¸—์
+เซงหลี
+เซซัง
+เซด
+เซต
+เซน
+เซนจูรี
+เซนติà¸à¸£à¸±à¸¡
+เซนติลิตร
+เซนติเà¸à¸£à¸”
+เซนติเมตร
+เซนต์
+เซนต์คริสโตเฟอร์
+เซนต์คาเบรียล
+เซนต์จอห์น
+เซนต์พอล
+เซนต์ลูเซีย
+เซนต์วินเซนต์
+เซนต์หลุยส์
+เซนต์เฮเลนา
+เซนต์เฮเลียร์
+เซนต์à¹à¸¡à¸•à¸˜à¸´à¸§
+เซนต์โธมัส
+เซนต์โยเซฟ
+เซนทรัล
+เซนท์
+เซนสิทิฟ
+เซนส์
+เซนเซอร์
+เซนเตอร์
+เซนเตอร์ฮาล์ฟ
+เซบู
+เซปัà¸
+เซปัà¸à¸•à¸£à¸°à¸à¸£à¹‰à¸­
+เซฟ
+เซฟตี้
+เซมิโคลอน
+เซมิไฟนอล
+เซรัสไซต์
+เซรา
+เซรามิค
+เซราร์จีไรต์
+เซราะ
+เซริฟอส
+เซรุ่ม
+เซล
+เซลลูลอยด์
+เซลลูโลส
+เซลล์
+เซลล์ทุติยภูมิ
+เซลล์ปà¸à¸¡à¸ à¸¹à¸¡à¸´
+เซลส์
+เซลีเบส
+เซลเซียส
+เซสชัน
+เซอ
+เซอร์
+เซอร์คอน
+เซอร์คิท
+เซอร์ติฟิเà¸à¸—
+เซอร์ราวนด์
+เซอร์วิส
+เซอร์เพนทีน
+เซอร์เวย์
+เซอร์โคเนียม
+เซอร์ไพรส์
+เซอะ
+เซอะซะ
+เซอูล
+เซา
+เซาวนา
+เซาะ
+เซาà¹à¸˜à¸¡à¸›à¹Œà¸•à¸±à¸™
+เซิง
+เซิร์ฟเล็ต
+เซิร์ฟเวอร์
+เซิ้ง
+เซียน
+เซียบ
+เซียมซี
+เซียราเลโอน
+เซียว
+เซี่ยงไฮ้
+เซี่ยน
+เซี่ยว
+เซื่อง
+เซเชลส์
+เซเนà¸à¸±à¸¥
+เซเบิล
+เซเลสไทต์
+เซเลไนต์
+เซà¹à¸„นต์
+เซ็à¸
+เซ็à¸à¸‹à¸µà¹ˆ
+เซ็à¸à¸‹à¹Œ
+เซ็à¸à¹€à¸¡à¸™à¸•à¹Œ
+เซ็ง
+เซ็งลี้
+เซ็น
+เซ็นต์ยอร์ช
+เซ็นทรัล
+เซ็นเซอร์
+เซ็นเตอร์
+เซ่ง
+เซ่งจี๊
+เซ่น
+เซ่อ
+เซ้ง
+เซ้าซี้
+เฌอ
+เฌอเอม
+เฒ่า
+เณร
+เดà¸
+เดà¸à¸‹à¹Œà¹‚ทรส
+เดคคอร์
+เดคา
+เดคาà¸à¸£à¸±à¸¡
+เดคาลิตร
+เดคาเมตร
+เดคเคอร์เรท
+เดช
+เดชน์
+เดชอุดม
+เดชะ
+เดชา
+เดชานุภาพ
+เดซิ
+เดซิà¸à¸£à¸±à¸¡
+เดซิลิตร
+เดซิเมตร
+เดด
+เดดซี
+เดดไลน์
+เดต้า
+เดท
+เดน
+เดนตาย
+เดนทอล
+เดนทิสต์
+เดนมาร์à¸
+เดนมาร์ค
+เดนเวอร์
+เดบิต
+เดมอยน์
+เดย์
+เดรน
+เดรัจฉาน
+เดลต้า
+เดลล์
+เดลาà¹à¸§à¸£à¹Œ
+เดลิ
+เดวิด
+เดสà¸à¹Œà¸—อป
+เดอะ
+เดอะมอลล์
+เดา
+เดาสวด
+เดาะ
+เดิน
+เดินนา
+เดินรถ
+เดินหน
+เดิม
+เดิมท
+เดิมที
+เดิมบางนางบวช
+เดิ่น
+เดีย
+เดียง
+เดียด
+เดียร
+เดียรดาษ
+เดียรถีย์
+เดียรถ์
+เดียรัจฉาน
+เดียว
+เดียวà¸à¸±à¸™
+เดียะ
+เดี่ยว
+เดี้ย
+เดี๋ยว
+เดือà¸
+เดือด
+เดือดดาล
+เดือน
+เดือย
+เดื่อ
+เดื่อง
+เดโช
+เดโชชัย
+เดโชพล
+เด็à¸
+เด็à¸à¸Šà¸²
+เด็จ
+เด็ด
+เด่
+เด่น
+เด่นชัย
+เด่า
+เด้ง
+เด้า
+เด้าลม
+เด๋อ
+เด๋อด๋า
+เต
+เตà¸
+เตà¸à¸¹à¸‹à¸´à¸à¸±à¸¥à¸›à¸²
+เตช
+เตชะวณิช
+เตตรา
+เตนิมบาร์
+เตย
+เตรน
+เตรนตัน
+เตริง
+เตรียด
+เตรียบ
+เตรียม
+เตรียมทหาร
+เตร็ด
+เตร่
+เตละ
+เตลิด
+เตว็ด
+เตหะราน
+เตอร์
+เตอร์à¸à¸µ
+เตอร์à¸à¹€à¸¡à¸™à¸´à¸ªà¸–าน
+เตอะ
+เตะ
+เตะฉาà¸
+เตะตา
+เตา
+เตาปูน
+เตาผิง
+เตาฟู่
+เตารีด
+เตาสูบ
+เตาะà¹à¸•à¸°
+เตาไฟ
+เติบ
+เติบโต
+เติม
+เติร์à¸
+เติ่ง
+เตียง
+เตียน
+เตียบ
+เตียว
+เตี่ย
+เตี่ยว
+เตี้ย
+เตี้ยม
+เตี๊ยม
+เตี๋ยม
+เตือน
+เตื้อ
+เตเนรีฟ
+เตโชธาตุ
+เต็ง
+เต็นท์
+เต็ม
+เต็มตา
+เต็มที
+เต็มบาท
+เต็มยศ
+เต็มหู
+เต็มอà¸
+เต็มใจ
+เต่ง
+เต่อ
+เต่า
+เต่าดำ
+เต่านา
+เต่าหà¸
+เต้น
+เต้นรำ
+เต้า
+เต้าทึง
+เต้ารับ
+เต้าส่วน
+เต้าหู้
+เต้าหู้ยี้
+เต้าฮวย
+เต้าเจี้ยว
+เต้าเสียบ
+เต๊à¸
+เต๊ะ
+เต๊าะ
+เต๋า
+เถà¸à¸´à¸‡
+เถน
+เถมิน
+เถย
+เถยจิต
+เถยยะ
+เถยสังวาส
+เถร
+เถรตรง
+เถรวาท
+เถระ
+เถรานุเถระ
+เถรี
+เถล
+เถลิà¸
+เถลิง
+เถลิงฉัตร
+เถลือà¸à¸–ลน
+เถลไถล
+เถอะ
+เถะๆ
+เถา
+เถาคัน
+เถาดาน
+เถามวà¸
+เถามุ้ย
+เถาวัลย์
+เถาวัลลิ์
+เถาะ
+เถิà¸
+เถิง
+เถิด
+เถิดเทิง
+เถิน
+เถียง
+เถียร
+เถือ
+เถือà¸
+เถื่อน
+เถ่อ
+เถ้า
+เถ้าà¹à¸à¹ˆ
+เท
+เทà¸à¸‹à¸±à¸ª
+เทà¸à¸‹à¹Œ
+เทคนิค
+เทคนิคà¸à¸£à¸¸à¸‡à¹€à¸—พ
+เทคนิควิทยา
+เทคนิคสัจจะวัฒน์
+เทคนิคไทยสุริยะ
+เทคนีเชียม
+เทคนีเซียม
+เทครัว
+เทคโนฯ
+เทคโนโลยี
+เทคโอเวอร์
+เทง
+เททราฮิไดรต์
+เทนนิส
+เทนส์
+เทนอไรต์
+เทนเนสซี
+เทนà¹à¸™à¸™à¹„ทต์
+เทป
+เทปูน
+เทพ
+เทพดา
+เทพทวี
+เทพธารินทร์
+เทพธิดา
+เทพนม
+เทพนารี
+เทพนิยม
+เทพนิยาย
+เทพนิยายวิทยา
+เทพบดี
+เทพประทาน
+เทพพนม
+เทพพนา
+เทพพยาà¸à¸£à¸“์
+เทพย
+เทพยดา
+เทพยเจ้า
+เทพลีลา
+เทพวิทยา
+เทพศิรินทร์
+เทพสถิต
+เทพหัสดิน
+เทพา
+เทพาà¸à¸£
+เทพารัà¸à¸©à¹Œ
+เทพิน
+เทพินทร์
+เทพี
+เทพเจ้า
+เทพเสนานุสรณ์
+เทพไพเราะนิมิต
+เทมปุระ
+เทมเพลต
+เทมเพลท
+เทมโป
+เทมโป้
+เทรด
+เทรดจิดี้
+เทรดดิชัน
+เทรดมาร์ค
+เทรดเดอร์
+เทรน
+เทรนเนอร์
+เทริด
+เทรโมไลต์
+เทลคอม
+เทลลูเรียม
+เทว
+เทวดา
+เทวทัณฑ์
+เทวทูต
+เทวธรรม
+เทวธิดา
+เทวนะ
+เทวนิยม
+เทวระ
+เทวรัตน์
+เทวรูป
+เทววิทยา
+เทวศ
+เทวษ
+เทวสถาน
+เทวสุนทร
+เทวอ
+เทวะ
+เทวัà¸
+เทวัน
+เทวารัณย์
+เทวาลัย
+เทวี
+เทวโลà¸
+เทศ
+เทศà¸
+เทศà¸à¸²à¸¥
+เทศนา
+เทศน์
+เทศบัà¸à¸à¸±à¸•à¸´
+เทศบาล
+เทศมนตรี
+เทศะ
+เทศาภิบาล
+เทสต์
+เทสท์
+เทห
+เทหวัตถุ
+เทห์
+เทห์ฟาà¸à¸Ÿà¹‰à¸²
+เทอà¸
+เทอดไทย
+เทอม
+เทอร์คอยส์
+เทอร์เนต
+เทอร์เบียม
+เทอร์เรส
+เทอร์โบ
+เทอร์โมมิเตอร์
+เทอะทะ
+เทา
+เทาน์
+เทาะห์
+เทาเวอร์
+เทิà¸
+เทิง
+เทิด
+เทิดทูน
+เทิน
+เทิบ
+เทิ่ง
+เทิ้ม
+เทียง
+เทียน
+เทียนถวิล
+เทียนฟ้ามูลนิธิ
+เทียนเซี้ยง
+เทียนไข
+เทียบ
+เทียม
+เทียมร่วมมิตร
+เทียร
+เทียรฆ
+เทียว
+เที่ยง
+เที่ยว
+เที้ยน
+เทือ
+เทือà¸
+เทือน
+เทื่อ
+เทื้อ
+เทเบิล
+เทเลà¸à¸£à¸²à¸Ÿ
+เทเลคอม
+เทเลวิชัน
+เทเลสโคป
+เทเลโฟน
+เทเวศ
+เทเวศร์
+เทเวศวร์
+เทโพ
+เท็à¸à¸‹à¹Œ
+เท็จ
+เท่
+เท่ห์
+เท่อ
+เท่า
+เท่าà¸à¸±à¸š
+เท่านั้น
+เท่าใด
+เท่าไร
+เท้ง
+เท้งเต้ง
+เท้อ
+เท้า
+เธนุ
+เธรด
+เธอ
+เธียร
+เธียรสวนนิเวศน์
+เธียเตอร์
+เนà¸à¸‚ะ
+เนà¸à¸‚ัม
+เนà¸à¸£à¸­à¸ª
+เนà¸à¸²à¸—ีฟ
+เนคไท
+เนชั่นà¹à¸™à¸¥
+เนต
+เนตบอล
+เนตร
+เนตสเคป
+เนติ
+เนติศึà¸à¸©à¸²
+เนตเวอร์ค
+เนบิวลา
+เนปจูน
+เนปทูเนียม
+เนปาล
+เนฟิลีน
+เนมิ
+เนมิตà¸
+เนมิตà¸à¸°
+เนย
+เนยใส
+เนรคุณ
+เนรนาด
+เนรนาถ
+เนรมิต
+เนรมิตร
+เนรเทศ
+เนวาดา
+เนษาท
+เนสท์เล่
+เนอ
+เนา
+เนาว
+เนิน
+เนินมะปราง
+เนิบ
+เนิบๆ
+เนิ่น
+เนีย
+เนียง
+เนียน
+เนียม
+เนียมยันต์
+เนียร
+เนือง
+เนือย
+เนื่อง
+เนื่องจาà¸
+เนื้อ
+เนื้อที่
+เนื้อหา
+เนื้อเยื่อ
+เนื้อเยื่อà¸à¸¥à¹‰à¸²à¸¡à¹€à¸™à¸·à¹‰à¸­
+เนื้อเยื่อบุผิว
+เนื้อเยื่อประสาท
+เนื้อเยื่อยืดต่อ
+เนเจอร์
+เนเธอร์à¹à¸¥à¸™à¸”์
+เนà¹à¸šà¸£à¸ªà¸à¸²
+เนโทรไลต์
+เนไฟรต์
+เน็ต
+เน็ตเวิร์à¸
+เน็ตเวิร์ค
+เน่ง
+เน่า
+เน่าไฟ
+เน้น
+เน้อ
+เบคà¸à¸´à¹‰à¸‡à¹‚ซดา
+เบคอน
+เบงà¸à¸­à¸¥
+เบà¸à¸ˆ
+เบà¸à¸ˆà¸
+เบà¸à¸ˆà¸à¸±à¸¥à¸¢à¸²à¸“ี
+เบà¸à¸ˆà¸à¸²à¸¡à¸„ุณ
+เบà¸à¸ˆà¸„ัพย์
+เบà¸à¸ˆà¸˜à¸£à¸£à¸¡
+เบà¸à¸ˆà¸šà¸£à¸£à¸žà¸•
+เบà¸à¸ˆà¸žà¸£à¸£à¸“
+เบà¸à¸ˆà¸žà¸¥
+เบà¸à¸ˆà¸¡
+เบà¸à¸ˆà¸¡à¸šà¸žà¸´à¸•à¸£
+เบà¸à¸ˆà¸¡à¸£à¸²à¸Šà¸²à¸™à¸¸à¸ªà¸£à¸“์
+เบà¸à¸ˆà¸¡à¸²à¸¨
+เบà¸à¸ˆà¸¡à¸´à¸•à¸£
+เบà¸à¸ˆà¸¡à¸´à¸™à¸—ร์
+เบà¸à¸ˆà¸£à¸‡à¸„์
+เบà¸à¸ˆà¸£à¸²à¸Š
+เบà¸à¸ˆà¸§à¸£à¸£à¸“
+เบà¸à¸ˆà¸¨à¸
+เบà¸à¸ˆà¸¨à¸µà¸¥
+เบà¸à¸ˆà¸²
+เบà¸à¸ˆà¸²à¸‡à¸„ประดิษà¸à¹Œ
+เบà¸à¸ˆà¸²à¸‡à¸„์
+เบà¸à¸ˆà¹€à¸žà¸ª
+เบà¸à¸à¸²
+เบà¸à¸žà¸²à¸”
+เบà¸à¸§à¸²à¸™à¸µ
+เบณจ
+เบตง
+เบตา
+เบต้า
+เบน
+เบนซิน
+เบนซ์
+เบนทอไนต์
+เบบี้
+เบรà¸
+เบรค
+เบรลล์
+เบริง
+เบริล
+เบริลเลียม
+เบรียน
+เบรุต
+เบลฟัสต์
+เบลอ
+เบลิซ
+เบลเà¸à¸£à¸”
+เบลเยียม
+เบลเยี่ยม
+เบล็ม
+เบส
+เบสบอล
+เบสิค
+เบอร์
+เบอร์à¸à¸²à¸¡à¸­à¸—
+เบอร์คีเลียม
+เบอร์น
+เบอร์มูดาส์
+เบอร์ลิน
+เบอห์ไมต์
+เบอะ
+เบอะบะ
+เบะ
+เบา
+เบาตัว
+เบาบาง
+เบามือ
+เบาราณ
+เบาะ
+เบาะล
+เบาะลม
+เบาะà¹à¸ª
+เบาà¹à¸£à¸‡
+เบาใจ
+เบาไม้
+เบิà¸
+เบิà¸à¹‚ลง
+เบิร์à¸
+เบิร์ธเดย์
+เบิ่ง
+เบิ้ม
+เบียà¸
+เบียด
+เบียดเบียน
+เบียน
+เบียร์
+เบี่ยง
+เบี้ย
+เบี้ยว
+เบือ
+เบือน
+เบื่อ
+เบื้อ
+เบื้อง
+เบโลรุสเซีย
+เบ็ด
+เบ็ดเตล็ด
+เบ็ดเสร็จ
+เบ่ง
+เบ้
+เบ้อ
+เบ้อเริ่ม
+เบ้อเริ่มเทิ่ม
+เบ้อเร่อ
+เบ้อเร่อเท่อ
+เบ้า
+เบ้าตา
+เบ๊จี๋
+เปà¸
+เปà¸à¸‚์
+เปต
+เปตพลี
+เปตอง
+เปตา
+เปตามไหยà¸à¸²
+เปยยาล
+เปยี
+เปย์
+เปร
+เปรต
+เปรม
+เปรมฤดีศึà¸à¸©à¸²
+เปรมฤทัย
+เปรมสันต์
+เปรย
+เปรอ
+เปรอะ
+เปรา
+เปราะ
+เปรียง
+เปรียà¸
+เปรียบ
+เปรียว
+เปรียะ
+เปรี้ยง
+เปรี้ยว
+เปรี๊ยะ
+เปรื่อง
+เปรื้อย
+เปรู
+เปร็ง
+เปร่า
+เปล
+เปลà¸à¸§à¸™
+เปลว
+เปลา
+เปลาะ
+เปลี่ยน
+เปลี่ยนà¹à¸›à¸¥à¸‡
+เปลี่ยว
+เปลี้ย
+เปลือà¸
+เปลือง
+เปลือย
+เปลื้อง
+เปล่ง
+เปล่งปลั่ง
+เปล่า
+เปล้า
+เปศ
+เปศล
+เปศัส
+เปสà¸à¸²à¸£
+เปสล
+เปสุà¸
+เปอร์
+เปอร์เซนต์
+เปอร์เซีย
+เปอร์เซ็นต์
+เปอร์โตริโà¸
+เปะ
+เปะปะ
+เปา
+เปาะ
+เปาะเปี๊ยะ
+เปาเปา
+เปาโรหิตย์
+เปาโล
+เปิà¸
+เปิง
+เปิงๆ
+เปิด
+เปิดอà¸
+เปิดโปง
+เปิบ
+เปิ่น
+เปิ๊บ
+เปีย
+เปียà¸
+เปียงยาง
+เปียนโน
+เปียว
+เปียะ
+เปี่ยม
+เปี้ยว
+เปี๊ยà¸
+เปี๊ยะ
+เปือà¸
+เปือยน้อย
+เปื่อย
+เปื้อน
+เปเปอร์
+เป็ด
+เป็ดถบ
+เป็ดผี
+เป็น
+เป็นà¸
+เป็นà¸à¸²à¸£
+เป็นต้น
+เป็นสุข
+เป็นใจ
+เป็นใด
+เป็นไร
+เป่ง
+เป่า
+เป่าà¸
+เป่าà¸à¸š
+เป่าหู
+เป้
+เป้ง
+เป้า
+เป้าประสงค์
+เป๊à¸
+เป๊า
+เป๋
+เป๋ง
+เป๋อ
+เป๋อเหลอ
+เป๋า
+เป๋าฮื้อ
+เผ
+เผง
+เผชิà¸
+เผดิม
+เผดียง
+เผด็จ
+เผด็จà¸à¸²à¸£
+เผน
+เผนิà¸
+เผย
+เผยอ
+เผยิบ
+เผยà¹à¸œà¹ˆ
+เผล
+เผลอ
+เผลอไผล
+เผละ
+เผลาะ
+เผลียง
+เผล็ด
+เผล่
+เผล้
+เผอิà¸
+เผอิล
+เผอเรอ
+เผะ
+เผา
+เผาขน
+เผาหัว
+เผาะ
+เผิน
+เผิ้ง
+เผียน
+เผือ
+เผือà¸
+เผือà¸à¸ˆà¸´à¸•à¸£
+เผือà¸à¸™à¹‰à¸­à¸¢
+เผือด
+เผือน
+เผื่อ
+เผื่อน
+เผ็ด
+เผ่น
+เผ่า
+เผ้า
+เผ้าผง
+เà¸à¸·à¸­
+เà¸à¸·à¸­à¸
+เà¸à¸·à¸­à¸‡
+เà¸à¸·à¹ˆà¸­à¸™
+เà¸à¹‰à¸²
+เพ
+เพà¸à¸²
+เพคะ
+เพจ
+เพชฌฆาต
+เพชร
+เพชรคล้าย
+เพชรดา
+เพชรบุรี
+เพชรบูรณ์
+เพชรรัตน์
+เพชรหึงษ์
+เพชรานันท์
+เพชรายุธ
+เพชรเà¸à¸©à¸¡
+เพชรเวช
+เพณี
+เพดาน
+เพตร
+เพท
+เพทนา
+เพทาย
+เพทุบาย
+เพนà¸à¸§à¸´à¸™
+เพนซิลวาเนีย
+เพนต์à¹à¸¥à¸™à¹„ดต์
+เพนนิซิลลิน
+เพนนินซูล่า
+เพนนิไนต์
+เพนนี
+เพนียด
+เพนเทียม
+เพนเฟร็นด์
+เพรง
+เพรซีโอดิเมียม
+เพรส
+เพรสทิจ
+เพรสสิเดนท์
+เพรสิเดียม
+เพรา
+เพราะ
+เพริด
+เพริดอต
+เพริศ
+เพริเคลส
+เพรียà¸
+เพรียง
+เพรียบ
+เพรียว
+เพรือง
+เพรื่อ
+เพล
+เพลง
+เพลท
+เพลม
+เพลย์บอย
+เพลส
+เพลา
+เพลาะ
+เพลิง
+เพลิด
+เพลิดเพลิน
+เพลิน
+เพลินจิต
+เพลีย
+เพลี่ยง
+เพลี้ย
+เพล็ด
+เพศ
+เพส
+เพสลาด
+เพอรอฟสไà¸à¸•à¹Œ
+เพอร์ฟูม
+เพอร์มาเน้นท์
+เพอร์ริสโคป
+เพอร์สเปคทีฟ
+เพอร์เฟà¸à¸—์
+เพอร์โซà¹à¸™à¸¥à¸¥à¸´à¸•à¸µà¹‰
+เพอร์ไทต์
+เพอิà¸
+เพะ
+เพา
+เพาพาล
+เพาวเวอร์
+เพาะ
+เพาเวลไลต์
+เพิà¸
+เพิง
+เพิล
+เพิ่ง
+เพิ่ม
+เพิ่มทรัพย์
+เพิ่มปาน
+เพิ่มพูน
+เพิ่มสิน
+เพียง
+เพียน
+เพียบ
+เพียร
+เพียว
+เพี้ย
+เพี้ยง
+เพี้ยน
+เพื่อ
+เพื่อน
+เพโท
+เพไนย
+เพ็à¸
+เพ็ง
+เพ็จ
+เพ็à¸
+เพ็ดทูล
+เพ่ง
+เพ่นพ่าน
+เพ่อ
+เพ้นท์
+เพ้ย
+เพ้อ
+เฟด
+เฟดเดอรัล
+เฟมัส
+เฟรช
+เฟรนด์ชิพ
+เฟรม
+เฟรส
+เฟร็นซ์ฟราย
+เฟล
+เฟลด์สปาทอยด์
+เฟลด์สปาร์
+เฟส
+เฟสติวัล
+เฟห์มาร์น
+เฟอร์
+เฟอร์นันโดโป
+เฟอร์นิเจอร์
+เฟอร์รี่
+เฟอร์เบอไรต์
+เฟอร์เมียม
+เฟอะ
+เฟอะฟะ
+เฟะ
+เฟะฟะ
+เฟาว์เดชัน
+เฟิน
+เฟิร์น
+เฟียด
+เฟี้ยม
+เฟี้ยว
+เฟือ
+เฟือง
+เฟือน
+เฟือย
+เฟื่อ
+เฟื่อง
+เฟื่องนคร
+เฟื้อ
+เฟื้อง
+เฟื้อย
+เฟเวอร์ริท
+เฟ็ด
+เฟ้น
+เฟ้ย
+เฟ้อ
+เภà¸à¸°
+เภตรา
+เภท
+เภทภัย
+เภทุบาย
+เภรว
+เภริ
+เภรี
+เภสัช
+เภสัชà¸à¸£
+เภสัชà¸à¸£à¸£à¸¡
+เภสัชพฤà¸à¸©à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+เภสัชวิทยา
+เภสัชศาสตร์
+เภสัชอุตสาหà¸à¸£à¸£à¸¡
+เภสัชเคมี
+เภสัชเวช
+เม
+เมà¸à¸à¸°
+เมà¸à¸°
+เมà¸à¸°à¹€à¸®à¸´à¸£à¸•à¸‹à¹Œ
+เมà¸à¸°à¹€à¸®à¸´à¸£à¸•à¹Œ
+เมà¸à¸°à¹„บต์
+เมขลา
+เมค
+เมคคานิค
+เมคอัพ
+เมฆ
+เมฆฉาย
+เมฆพัด
+เมฆมาà¸
+เมฆสวัสดิ์
+เมฆา
+เมฆินทร์
+เมฆี
+เมจิà¸
+เมชัวร์
+เมด
+เมดิเตอร์เรเนียน
+เมดเลย์
+เมตตา
+เมตร
+เมตริà¸
+เมตริà¸à¸•à¸±à¸™
+เมถุน
+เมท
+เมทนี
+เมทินี
+เมทิล
+เมทิลà¹à¸­à¸¥à¸à¸­à¸®à¸­à¸¥à¹Œ
+เมธ
+เมธอด
+เมธา
+เมธาวี
+เมธี
+เมน
+เมนทอล
+เมนบอร์ด
+เมนส์
+เมนู
+เมนเดลีเวียม
+เมนเฟรม
+เมมเบอร์
+เมมเบอร์คลับ
+เมมโมรี
+เมมโมเรียล
+เมย
+เมรย
+เมรัย
+เมรุ
+เมรุมาศ
+เมล
+เมลà¸
+เมลวิล
+เมลาไนต์
+เมลือง
+เมลื่อย
+เมลื้อย
+เมลเบอร์น
+เมล็ด
+เมล์
+เมษ
+เมษายน
+เมสเซ็นเจอร์
+เมห
+เมหน
+เมอริท
+เมอริเดียน
+เมอร์คิวรี
+เมอร์รี่คิงส์
+เมอร์ลิน
+เมอร์เมด
+เมอà¹à¸£à¸‡
+เมะ
+เมา
+เมาดิบ
+เมาท์ออร์à¹à¸à¸™
+เมามัน
+เมามัว
+เมามาย
+เมายศ
+เมารี
+เมาลี
+เมาส์
+เมาห์
+เมาอี
+เมาะ
+เมิง
+เมิน
+เมิล
+เมีย
+เมียง
+เมียงมอง
+เมียร์ม่าร์
+เมี่ยง
+เมี้ยน
+เมือ
+เมือà¸
+เมือง
+เมืองทอง
+เมืองท่าปลอดภาษี
+เมืองนนทบุรี
+เมืองสรวง
+เมืองà¹à¸à¹‰à¸§
+เมือบ
+เมื่อ
+เมื่อย
+เมื่อไร
+เมเจอร์
+เมโท
+เมโทร
+เมโทรโปลิส
+เมโย
+เมโลดี้
+เม็à¸
+เม็à¸à¸‹à¸´à¹‚à¸
+เม็à¸à¸‹à¸´à¹‚à¸à¸‹à¸´à¸•à¸µ
+เม็ง
+เม็ด
+เม็ดด
+เม็ดดี
+เม่น
+เม่า
+เม้น
+เม้ม
+เม้า
+เม้าท์
+เม้าส์
+เยง
+เยซู
+เยน
+เยภุย
+เยรูซาเล็ม
+เยล
+เยลโล่สโตน
+เยส
+เยสเตอร์เดย์
+เยอ
+เยอรมนี
+เยอรมัน
+เยอรมันนี
+เยอว
+เยอะ
+เยา
+เยาว
+เยาวชน
+เยาวน
+เยาวพา
+เยาวพาน
+เยาวพานิช
+เยาวมาลย์
+เยาวยอด
+เยาวรัà¸à¸©à¹Œ
+เยาวราช
+เยาวลัà¸à¸©à¸“์
+เยาวเรศ
+เยาว์
+เยาฮัน
+เยาะ
+เยิง
+เยิน
+เยินยอ
+เยิบ
+เยิบๆ
+เยิ่น
+เยิ่นเย้อ
+เยิ้ม
+เยีย
+เยียน
+เยียบ
+เยียว
+เยียวยา
+เยียใด
+เยี่ยง
+เยี่ยม
+เยี่ยมนุช
+เยี่ยมเยียน
+เยี่ยว
+เยือ
+เยือà¸
+เยือง
+เยือน
+เยื่อ
+เยื่อง
+เยื้อ
+เยื้อง
+เยื้องà¸à¸£à¸²à¸¢
+เยื้อน
+เยเมน
+เยๆ
+เย็ด
+เย็น
+เย็นจิตร
+เย็นตา
+เย็นตาโฟ
+เย็นหู
+เย็นอาà¸à¸²à¸¨
+เย็นใจ
+เย็บ
+เย็บอà¸
+เย่อ
+เย้
+เย้ย
+เย้า
+เรข
+เรขา
+เรขาคณิต
+เรขาคณิตบริสุทธิ์
+เรขาคณิตวิเคราะห์
+เรคคอร์ด
+เรซิน
+เรณุ
+เรณุà¸
+เรณู
+เรณูนคร
+เรดดิ
+เรดอน
+เรดาร์
+เรด้าร์
+เรตินา
+เรท
+เรทติ้ง
+เรนโบว์
+เรฟเฟอร์เร้นซ์
+เรยอง
+เรรวน
+เรวดี
+เรวัติ
+เรสเตอรองà¸à¹Œ
+เรสเตอร์รองต์
+เรอ
+เรอุนยอง
+เรา
+เราะ
+เริง
+เริงทนา
+เริงร่า
+เริด
+เริม
+เริ่ม
+เริ้ม
+เรียà¸
+เรียง
+เรียงๆ
+เรียด
+เรียน
+เรียบ
+เรียบร้อย
+เรียบวุธ
+เรียบๆ
+เรียม
+เรียลลิ
+เรียลลิซึม
+เรียลลิตี้
+เรียลลิสติค
+เรียลลิสต์
+เรียว
+เรี่ย
+เรี่ยม
+เรี่ยราด
+เรี่ยว
+เรี่ยวà¹à¸£à¸‡
+เรี้ยวรà¸
+เรี้ยๆ
+เรือ
+เรือà¸
+เรือง
+เรืองยศ
+เรืองอุไร
+เรือด
+เรือน
+เรือนà¹à¸à¹‰à¸§
+เรือนไทย
+เรือรบ
+เรื่อ
+เรื่อง
+เรื่อย
+เรื้อ
+เรื้อง
+เรื้อน
+เรื้อย
+เรื้อรัง
+เรเดียน
+เรเดียม
+เรเดียล
+เรโช
+เรไร
+เร็à¸à¸„อร์ด
+เร็ง
+เร็ว
+เร่
+เร่ง
+เร่งรัด
+เร่งร่าย
+เร่งเร้า
+เร่ร่อน
+เร่ว
+เร่อ
+เร่า
+เร่าร้อน
+เร้ง
+เร้น
+เร้นท์
+เร้อ
+เร้า
+เร้าใจ
+เลà¸
+เลà¸à¸§à¸±à¸”
+เลข
+เลขà¸à¸°
+เลขคณิต
+เลขจำนวน
+เลขชี้à¸à¸³à¸¥à¸±à¸‡
+เลขนะ
+เลขผา
+เลขยะ
+เลขลำดับ
+เลขา
+เลขาธิà¸à¸²à¸£
+เลขาธิà¸à¸²à¸£à¸µ
+เลขานข
+เลขานุà¸à¸²à¸£
+เลขโดด
+เลคเชอร์
+เลฑฑุ
+เลณ
+เลณฑุ
+เลด
+เลดี้
+เลต
+เลตี
+เลท
+เลน
+เลนจง
+เลนซ์
+เลนส์
+เลนส์นูน
+เลนส์สัมผัส
+เลนส์เว้า
+เลบง
+เลบานอน
+เลป
+เลปà¸à¸£
+เลปน์
+เลพิโดโครไซต์
+เลพิโดไลต์
+เลมนอส
+เลมอน
+เลย
+เลย์เอาท์
+เลรอส
+เลว
+เลวง
+เลวูโลส
+เลศ
+เลศนัย
+เลษà¸à¸¸
+เลหยะ
+เลหลัง
+เลหลา
+เลหะ
+เลอ
+เลอชาเทเลียไรต์
+เลอมาน
+เลอะ
+เลอะเทอะ
+เลอโฉม
+เละ
+เละเทะ
+เลา
+เลาà¸à¸±à¸¢
+เลาขวัà¸
+เลาน์จ
+เลาะ
+เลาๆ
+เลิà¸
+เลิà¸à¸£à¸²
+เลิงนà¸à¸—า
+เลินเล่อ
+เลิลลิงไà¸à¸•à¹Œ
+เลิศ
+เลิศปัà¸à¸à¸²
+เลิศพัฒนา
+เลิศอุบล
+เลิ้ง
+เลีย
+เลียง
+เลียงผา
+เลียน
+เลียบ
+เลียบคลอง
+เลียบเคียง
+เลียบà¹à¸¡à¹ˆà¸™à¹‰à¸³
+เลียม
+เลียว
+เลี่ยง
+เลี่ยน
+เลี่ยม
+เลี้ยง
+เลี้ยว
+เลือà¸
+เลือà¸à¸ªà¸£à¸£
+เลือง
+เลือด
+เลือน
+เลื่อง
+เลื่อน
+เลื่อนลอย
+เลื่อม
+เลื่อมใส
+เลื่อย
+เลื้อย
+เลเซอ
+เลเซอร์
+เลเต
+เลเบล
+เลเบอร์
+เลเบิล
+เลเป
+เลเพ
+เลเยอร์
+เลโซโธ
+เลโอ
+เลโอโปลด์วิล
+เล็à¸
+เล็à¸à¸”า
+เล็ง
+เล็ด
+เล็ดลอด
+เล็น
+เล็บ
+เล็ม
+เล่น
+เล่นà¸à¸¥
+เล่นคำ
+เล่นชู
+เล่ม
+เล่ห์
+เล่ห์เหลี่ยม
+เล่อ
+เล่า
+เล่าล
+เล้ง
+เล้า
+เล้าโลม
+เวà¸
+เวค
+เวคิน
+เวคี
+เวคเตอร์
+เวจ
+เวจมรรค
+เวช
+เวชà¸à¸£à¸£à¸¡
+เวชภัณฑ์
+เวชศาสตร์
+เวà¸à¸™à¸°
+เวà¸à¸™à¹Œ
+เวà¸à¸´à¸•à¸°
+เวณะ
+เวณิ
+เวณิà¸
+เวณุ
+เวตน์
+เวตร
+เวตาร์
+เวตาล
+เวท
+เวทคู
+เวทนา
+เวทมนตร์
+เวทย์
+เวทางคศาสตร์
+เวทางค์
+เวทานตะ
+เวทานต์
+เวทิ
+เวที
+เวธะ
+เวน
+เวนคืน
+เวนิส
+เวนไตย
+เวบสเตอร์
+เวฟ
+เวมะ
+เวมัต
+เวมาติà¸
+เวร
+เวรมณี
+เวรี
+เวลลิงตัน
+เวลส์
+เวลา
+เวลเตอร์เวท
+เวลโà¸
+เววัณ
+เวศม์
+เวศยา
+เวศย์
+เวสน์
+เวสภู
+เวสมะ
+เวสม์
+เวสวัณ
+เวสสะ
+เวสสันดร
+เวสสุà¸à¸£à¸£à¸¡
+เวสสุวัณ
+เวสารัช
+เวสิ
+เวสิยา
+เวหน
+เวหะ
+เวหังค์
+เวหัปติ
+เวหา
+เวหาย
+เวหายส
+เวหายสมารค
+เวหาส
+เวฬุ
+เวอร์
+เวอร์จิน
+เวอร์จิล
+เวอร์จิเนีย
+เวอร์จิเนียตะวันตà¸
+เวอร์ชัน
+เวอร์ชั่น
+เวอร์ติคอล
+เวอร์มอนต์
+เวอร์มิคิวไลต์
+เวอร์เนียร์
+เวิà¸
+เวิร์à¸à¸ªà¹€à¸•à¸Šà¸±à¸™
+เวิร์à¸à¹‚ฟลว์
+เวิร์ค
+เวิร์ด
+เวิร์ตไซต์
+เวิร์บ
+เวิลด์
+เวิลด์เทรด
+เวิ้ง
+เวิ้งว้าง
+เวียง
+เวียงจันทน์
+เวียงชัย
+เวียงป่าเป้า
+เวียงสระ
+เวียงเà¸à¸•à¸¸
+เวียดนาม
+เวียดนามเหนือ
+เวียดนามใต้
+เวียน
+เวียนนา
+เวียร
+เวี่ย
+เวี่ยว
+เวเนซุเอลา
+เวเนเดียม
+เวเฟอร์
+เวเลนซี
+เวโรจน์
+เวโลโดรม
+เวไนย
+เว็บ
+เว็บเซอร์วิส
+เว็บเพจ
+เว็บไซต์
+เว่อ
+เว้
+เว้น
+เว้ย
+เว้า
+เศรณี
+เศรษà¸
+เศรษà¸à¸à¸£
+เศรษà¸à¸à¸²à¸£
+เศรษà¸à¸à¸´à¸ˆ
+เศรษà¸à¸¨à¸²à¸ªà¸•à¸£à¹Œ
+เศรษà¸à¸¨à¸´à¸£à¸´
+เศรษà¸à¸µ
+เศรษà¸à¸µà¸™à¸µ
+เศรษà¸à¹Œ
+เศร้า
+เศลษ
+เศวดีภ
+เศวต
+เศวตง
+เศวตฉัตร
+เศวตร
+เศวติภ
+เศวตีภ
+เศวาล
+เศวเตภ
+เศษ
+เศษสิบ
+เศษส่วน
+เศาจ
+เศารยะ
+เศาร์
+เศาไจย
+เศิà¸
+เศียร
+เส
+เสà¸
+เสà¸à¸‚
+เสà¸à¸ªà¸£à¸£
+เสข
+เสความ
+เสงี่ยม
+เสฉวน
+เสà¸à¸à¸µ
+เสณี
+เสด
+เสด็จ
+เสต
+เสตุ
+เสถียร
+เสถียรภาพ
+เสท
+เสน
+เสนง
+เสนห
+เสนหา
+เสนอ
+เสนะ
+เสนา
+เสนางคนิคม
+เสนาจันทร์
+เสนาทิพย์
+เสนาธิà¸à¸²à¸£
+เสนานิคม
+เสนานี
+เสนาบดี
+เสนารัà¸à¸©à¹Œ
+เสนาร่วม
+เสนาสนะ
+เสนาสฤษดิ์เดช
+เสนาสัมพันธ์
+เสนาะ
+เสนี
+เสนียด
+เสนีย์
+เสน่ง
+เสน่หา
+เสน่ห์
+เสน่า
+เสบย
+เสบียง
+เสพ
+เสพย์
+เสภา
+เสมหะ
+เสมอ
+เสมอใจ
+เสมา
+เสมียน
+เสมียนนารี
+เสมือน
+เสมือนà¸à¸²à¸•à¸´
+เสม็ด
+เสย
+เสริด
+เสริฟ
+เสริฟ์
+เสริม
+เสริมงาม
+เสริมมิตร
+เสริมสุข
+เสรี
+เสรีนิยม
+เสรีภาพ
+เสรีเซ็นเตอร์
+เสร็จ
+เสล
+เสลด
+เสลภูมิ
+เสลา
+เสลี่ยง
+เสลือà¸à¸ªà¸¥à¸™
+เสวà¸
+เสวà¸à¸²à¸¡à¸²à¸•à¸¢à¹Œ
+เสวตรเนตร
+เสวนะ
+เสวนา
+เสวย
+เสวยพ
+เสวียน
+เสสรวง
+เสสรวล
+เสสะเวช
+เสา
+เสาชี้
+เสารภย์
+เสารี
+เสาร์
+เสาว
+เสาวคนธ์
+เสาวณิต
+เสาวณีย์
+เสาวนะ
+เสาวนา
+เสาวนีย์
+เสาวภา
+เสาวภาคย์
+เสาวภาพ
+เสาวรส
+เสาวลัà¸à¸©à¸“์
+เสาหมอ
+เสาหฤท
+เสาหาน
+เสาะ
+เสาเอà¸
+เสาไห้
+เสิงสาง
+เสิร์จ
+เสิร์ฟ
+เสิศสิน
+เสีย
+เสียà¸à¸¥
+เสียคน
+เสียง
+เสียจริต
+เสียด
+เสียดสี
+เสียดาย
+เสียที
+เสียบ
+เสียบน
+เสียผี
+เสียม
+เสียว
+เสียใจ
+เสี่ย
+เสี่ยง
+เสี่ยงทาย
+เสี่ยม
+เสี่ยว
+เสี้ยน
+เสี้ยม
+เสี้ยมสอน
+เสี้ยว
+เสือ
+เสือà¸
+เสือà¸à¸£à¸°à¸”าษ
+เสือà¸à¹„ส
+เสือดำ
+เสือป่า
+เสือใหà¸à¹ˆ
+เสือไฟ
+เสื่อ
+เสื่อม
+เสื่อมทราม
+เสื่อมโทรม
+เสื้อ
+เสื้อผ้า
+เสเพล
+เสโท
+เสโล
+เส็ง
+เส็งเคร็ง
+เส็น
+เส้ง
+เส้น
+เส้นผม
+เส้นวันที่
+เส้นศูนย์สูตร
+เส้นเลือด
+เส้นใย
+เส้นใยà¹à¸à¹‰à¸§
+เส้า
+เห
+เหง
+เหงา
+เหงือà¸
+เหงื่อ
+เหง่ง
+เหง้า
+เหติ
+เหตุ
+เหตุà¸
+เหตุà¸à¸²à¸£à¸“์
+เหตุผล
+เหตุสุดวิสัย
+เหนอะ
+เหนอะหนะ
+เหนาะ
+เหนาะๆ
+เหนียง
+เหนียม
+เหนียว
+เหนี่ยว
+เหนือ
+เหนื่อย
+เหน็ด
+เหน็ดเหนื่อย
+เหน็บ
+เหน็บà¹à¸™à¸¡
+เหน่ง
+เหน่อ
+เหน้า
+เหม
+เหมวดี
+เหมันต
+เหมันต์
+เหมา
+เหมายัน
+เหมาะ
+เหมียว
+เหมี่ยว
+เหมือง
+เหมือด
+เหมือน
+เหม็ง
+เหม็น
+เหม่
+เหม่ง
+เหม่อ
+เหย
+เหยง
+เหยา
+เหยาะ
+เหยาะๆ
+เหยิง
+เหยิน
+เหยิบ
+เหยิบๆ
+เหยียด
+เหยียบ
+เหยี่ยว
+เหยือà¸
+เหยื่อ
+เหยเà¸
+เหย่อย
+เหย่า
+เหย้า
+เหรัà¸à¸à¸´à¸
+เหรา
+เหราะๆ
+เหรียà¸
+เหลน
+เหลว
+เหลวà¹à¸«à¸¥à¸
+เหลอ
+เหลา
+เหลาะ
+เหลาะà¹à¸«à¸¥à¸°
+เหลิง
+เหลียน
+เหลียว
+เหลี่ยม
+เหลือ
+เหลือà¸
+เหลือง
+เหลือบ
+เหลือม
+เหลือเข็น
+เหลือเฟือ
+เหลือà¹à¸«à¸¥à¹ˆ
+เหลื่อม
+เหล็à¸
+เหล็à¸à¸à¸¥à¹‰à¸²
+เหล็à¸à¸à¸¥à¹‰à¸²à¹„ม่เป็นสนิม
+เหล็à¸à¸žà¸·à¸”
+เหล่
+เหล่า
+เหล่าà¸à¸­
+เหล่าลดา
+เหล้า
+เหว
+เหวง
+เหวทะเล
+เหวย
+เหวอะ
+เหวอะหวะ
+เหวี่ยง
+เหว่
+เหอะ
+เหะ
+เหา
+เหาน้ำ
+เหาะ
+เหาไม้
+เหิน
+เหิม
+เหิมหาà¸
+เหียง
+เหียน
+เหี่ยว
+เหี่ยวà¹à¸«à¹‰à¸‡
+เหี้ย
+เหี้ยน
+เหี้ยม
+เหี้ยมโหด
+เหือด
+เหือดà¹à¸«à¹‰à¸‡
+เหื่อ
+เห็จ
+เห็ด
+เห็ดน
+เห็ดบ
+เห็ดโ
+เห็น
+เห็นจะ
+เห็นดี
+เห็นใจ
+เห็บ
+เห่
+เห่อ
+เห่อเหิม
+เห่า
+เห้งเจีย
+เอ
+เอ.ยู.เอ.
+เอà¸
+เอà¸à¸ˆà¸´à¸•
+เอà¸à¸‰à¸±à¸™à¸—์
+เอà¸à¸Šà¸™
+เอà¸à¸Šà¸±à¸¢
+เอà¸à¸‹à¹€à¸£à¸¢à¹Œ
+เอà¸à¸™à¸±à¸¢
+เอà¸à¸žà¸ˆà¸™à¹Œ
+เอà¸à¸ à¸ž
+เอà¸à¸ à¸²à¸„ี
+เอà¸à¸ à¸²à¸ž
+เอà¸à¸¡
+เอà¸à¸¡à¸±à¸¢
+เอà¸à¸£à¸£à¸–ประโยค
+เอà¸à¸£à¸ª
+เอà¸à¸£à¸°
+เอà¸à¸£à¸²à¸Š
+เอà¸à¸£à¸¹à¸›
+เอà¸à¸¥à¸±à¸à¸©à¸“์
+เอà¸à¸§à¸²à¸”อร์
+เอà¸à¸¨à¸
+เอà¸à¸ª
+เอà¸à¸ªà¸²à¸£
+เอà¸à¸ªà¸´à¸—ธิ์
+เอà¸à¸­à¸±à¸„รราชทูต
+เอà¸à¸­à¸±à¸„รสมณทูต
+เอà¸à¸­à¸¸
+เอà¸à¸±à¸„ตา
+เอà¸à¸²
+เอà¸à¸²à¸˜à¸´à¸›à¹„ตย
+เอà¸à¹€à¸‚นà¸
+เอà¸à¹€à¸—ศ
+เอà¸à¹‚ทษ
+เอง
+เอชพี
+เอดส์
+เอดิชัน
+เอดินบะระ
+เอดิเตอร์
+เอตทัคคะ
+เอทิล
+เอทิลà¹à¸­à¸¥à¸à¸­à¸®à¸­à¸¥à¹Œ
+เอทีเอ็ม
+เอธิโอเปีย
+เอน
+เอนà¸
+เอนà¸à¸›à¸£à¸°à¸ªà¸‡à¸„์
+เอนà¸à¸²à¸¢
+เอนตัว
+เอนทรานซ์
+เอนสตาไทต์
+เอนไซม์
+เอปซอไมต์
+เอปสัน
+เอพิโดต
+เอม
+เอมอร
+เอมโบไลต์
+เอมโอช
+เอย
+เอราวัณ
+เอร็ดอร่อย
+เอลซัลวาดอร์
+เอลบา
+เอลลิซ
+เอลสเมียร์
+เอลา
+เอว
+เอวัง
+เอฬà¸
+เอฬา
+เออ
+เออน่ะ
+เออร์เบียม
+เอออวย
+เออออ
+เออà¹à¸¥à¸™à¸”์
+เอะอะ
+เอะใจ
+เอา
+เอาà¸à¸²à¸£
+เอางาน
+เอาชนะ
+เอาชัย
+เอาตาย
+เอาต์ซอร์ส
+เอาต์พุต
+เอาทาร
+เอาท์พุต
+เอาผิด
+เอารส
+เอาละ
+เอาฬาร
+เอาเลย
+เอาà¹à¸•à¹ˆ
+เอาใจ
+เอาใช้
+เอิà¸
+เอิà¸à¹€à¸à¸£à¸´à¸
+เอิบ
+เอิ้น
+เอียง
+เอียด
+เอียน
+เอี่ยน
+เอี่ยม
+เอี่ยมพานิช
+เอี่ยว
+เอี้ยง
+เอี้ยมจุ๊น
+เอี้ยมเฟี้ยม
+เอี้ยว
+เอี๊ยด
+เอี๊ยม
+เอี๊ยมจุ๊น
+เอือด
+เอือน
+เอือม
+เอื่อย
+เอื้อ
+เอื้อง
+เอื้อน
+เอื้อม
+เอื้อย
+เอื้อสุข
+เอื้อเฟื้อ
+เอื๊อà¸
+เอเคอร์
+เอเชีย
+เอเชี่ยนเà¸à¸¡à¸ªà¹Œ
+เอเซีย
+เอเดน
+เอเดรียติà¸
+เอเธนส์
+เอเมอรัลด์
+เอเมอรี
+เอเย่นต์
+เอà¹à¸šà¸„
+เอ็à¸à¸‹à¹Œ
+เอ็à¸à¸‹à¹Œà¸žà¸¥à¸­à¹€à¸£à¸­à¸£à¹Œ
+เอ็à¸à¸‹à¹Œà¸žà¸­à¸£à¹Œà¸•
+เอ็à¸à¸‹à¹Œà¹€à¸žà¸£à¸ª
+เอ็ง
+เอ็ด
+เอ็ดตะโร
+เอ็ดอึง
+เอ็น
+เอ็นดู
+เอ็นเตอร์เทน
+เอ็นเตอร์ไพรซ์
+เอ็มบริโอ
+เอ่ย
+เอ่อ
+เอ้
+เอ้à¸à¸²
+เอ้อ
+เอ้อระเหย
+เอ้อเฮอ
+เอ้เต
+เอ๊à¸
+เอ๊ย
+เอ๊ว
+เอ๊ะ
+เอ๋
+เอ๋ง
+เอ๋ย
+เฮ
+เฮà¸à¸•à¸²à¸£à¹Œ
+เฮà¸à¹‚ตà¸à¸£à¸±à¸¡
+เฮà¸à¹‚ตลิตร
+เฮà¸à¹‚ตเมตร
+เฮง
+เฮงซวย
+เฮมีมอร์ไฟต์
+เฮย
+เฮลซิงà¸à¸´
+เฮลิคอปเตอร์
+เฮสทิงไซต์
+เฮอ
+เฮอร์ซิไนต์
+เฮอร์เซโà¸à¸§à¸´à¸™à¸²
+เฮอร์โมโปลิส
+เฮฮา
+เฮา
+เฮิบเนอไรต์
+เฮิรตซ์
+เฮีย
+เฮี้ยน
+เฮี้ยบ
+เฮี้ยว
+เฮือà¸
+เฮือน
+เฮเดนเบอร์ไà¸à¸•à¹Œ
+เฮเลนา
+เฮโมโà¸à¸¥à¸šà¸´à¸™
+เฮโรอีน
+เฮโล
+เฮไลต์
+เฮ้ย
+เฮ้ว
+เฮ้อ
+à¹à¸
+à¹à¸à¸‡
+à¹à¸à¸‡à¸‚ม
+à¹à¸à¸‡à¸ˆà¸·à¸”
+à¹à¸à¸‡à¸šà¸§à¸”
+à¹à¸à¸‡à¸ªà¹‰à¸¡
+à¹à¸à¸‡à¹à¸™à¸‡
+à¹à¸à¸‡à¹„ด
+à¹à¸à¸”ำ
+à¹à¸à¸™
+à¹à¸à¸™à¸°
+à¹à¸à¸¡
+à¹à¸à¸¡à¸¡à¸²
+à¹à¸à¸¡à¹€à¸šà¸µà¸¢
+à¹à¸à¸£à¸
+à¹à¸à¸£à¸™à¸”์คานารี
+à¹à¸à¸£à¸™à¸”์บาฮามา
+à¹à¸à¸£à¸™à¸´à¸•
+à¹à¸à¸£à¸š
+à¹à¸à¸£à¸¡à¸¡à¸²
+à¹à¸à¸£à¸°
+à¹à¸à¸£à¹„ฟต์
+à¹à¸à¸£à¹‡à¸™
+à¹à¸à¸£à¹ˆà¸‡
+à¹à¸à¸£à¹ˆà¸§
+à¹à¸à¸¥
+à¹à¸à¸¥à¸‡
+à¹à¸à¸¥à¸™
+à¹à¸à¸¥à¸š
+à¹à¸à¸¥à¸¥à¸­à¸™
+à¹à¸à¸¥à¸°
+à¹à¸à¸¥à¸´à¸¥à¸µ
+à¹à¸à¸¥à¹€à¸¥à¸µà¸¢à¸¡
+à¹à¸à¸¥à¹ˆ
+à¹à¸à¸¥à¹‰à¸‡
+à¹à¸à¸¥à¹‰à¸¡
+à¹à¸à¸¥à¹‰à¸§
+à¹à¸à¸§
+à¹à¸à¸§à¹ˆà¸‡
+à¹à¸à¸§à¹ˆà¸™
+à¹à¸à¸°
+à¹à¸à¸°à¸”ำ
+à¹à¸à¸°à¸£à¸­à¸¢
+à¹à¸à¹à¸™
+à¹à¸à¹à¸¥
+à¹à¸à¹‚ดลิเนียม
+à¹à¸à¹‡à¸•
+à¹à¸à¹ˆ
+à¹à¸à¹ˆà¸‡
+à¹à¸à¹ˆà¸‡à¸„อย
+à¹à¸à¹ˆà¸‡à¹à¸¢à¹ˆà¸‡
+à¹à¸à¹ˆà¸™
+à¹à¸à¹ˆà¸™à¸ˆà¸±à¸™à¸—น์
+à¹à¸à¹ˆà¸™à¸—องอุปถัมภ์
+à¹à¸à¹ˆà¸™à¹à¸à¹‰à¸§
+à¹à¸à¹ˆà¹à¸”ด
+à¹à¸à¹‰
+à¹à¸à¹‰à¸‚ัด
+à¹à¸à¹‰à¸‡
+à¹à¸à¹‰à¸‡à¸„ล้อ
+à¹à¸à¹‰à¸•à¸±à¸§
+à¹à¸à¹‰à¸šà¸™
+à¹à¸à¹‰à¸à¸±à¸™
+à¹à¸à¹‰à¸¡
+à¹à¸à¹‰à¸¡à¸·à¸­
+à¹à¸à¹‰à¸¥à¸³
+à¹à¸à¹‰à¸§
+à¹à¸à¹‰à¸§à¸•à¸²
+à¹à¸à¹‰à¸§à¸™à¸žà¹€à¸à¸¥à¹‰à¸²
+à¹à¸à¹‰à¸§à¸œà¸¥à¸¶à¸
+à¹à¸à¹‰à¸§à¸¡à¸±à¸‡à¸à¸£
+à¹à¸à¹‰à¸§à¸«à¸¹
+à¹à¸à¹‰à¹„ข
+à¹à¸à¹Šà¸‡
+à¹à¸à¹Šà¸›
+à¹à¸à¹Šà¸ª
+à¹à¸à¹Šà¸ªà¸™à¹‰à¸³à¸•à¸²
+à¹à¸à¹Šà¸ªà¹€à¸‰à¸·à¹ˆà¸­à¸¢
+à¹à¸à¹Šà¸ªà¹„ข่เน่า
+à¹à¸‚
+à¹à¸‚à¸
+à¹à¸‚น
+à¹à¸‚นง
+à¹à¸‚ม
+à¹à¸‚ม็บ
+à¹à¸‚ม่ว
+à¹à¸‚ยง
+à¹à¸‚ย่ง
+à¹à¸‚ลร์
+à¹à¸‚วà¸
+à¹à¸‚วง
+à¹à¸‚วน
+à¹à¸‚วนลอย
+à¹à¸‚วะ
+à¹à¸‚็ง
+à¹à¸‚็งà¸à¸£à¹‰à¸²à¸§
+à¹à¸‚็งà¹à¸à¸£à¹ˆà¸‡
+à¹à¸‚่ง
+à¹à¸‚่งขัน
+à¹à¸‚้ง
+à¹à¸‚้น
+à¹à¸„
+à¹à¸„ช
+à¹à¸„ชเชียร์
+à¹à¸„ชเมียร์
+à¹à¸„ดเมียม
+à¹à¸„น
+à¹à¸„นซัส
+à¹à¸„นอà¸
+à¹à¸„นาดา
+à¹à¸„นเซิล
+à¹à¸„นเบอร์รา
+à¹à¸„บ
+à¹à¸„บหมู
+à¹à¸„บาไซต์
+à¹à¸„ปซูล
+à¹à¸„ปปิตอล
+à¹à¸„à¸à¸­à¸¢
+à¹à¸„ม
+à¹à¸„มปัส
+à¹à¸„มเปà¸
+à¹à¸„มเปน
+à¹à¸„รà¸
+à¹à¸„รง
+à¹à¸„รอท
+à¹à¸„ระ
+à¹à¸„ริบเบียน
+à¹à¸„ร็à¸
+à¹à¸„ร่
+à¹à¸„ร์
+à¹à¸„ลคูรัส
+à¹à¸„ลคูลัส
+à¹à¸„ลง
+à¹à¸„ลงใจ
+à¹à¸„ลน
+à¹à¸„ลริเนท
+à¹à¸„ลอรี
+à¹à¸„ลิฟอร์เนีย
+à¹à¸„ลิฟอร์เนียม
+à¹à¸„ลเซียม
+à¹à¸„ลเซียมคาร์ไบด์
+à¹à¸„ลเซียมไซคลาเมต
+à¹à¸„ลไซต์
+à¹à¸„ล่วคล่อง
+à¹à¸„ล้ว
+à¹à¸„ล้วคลาด
+à¹à¸„ว
+à¹à¸„วà¸
+à¹à¸„ว้ง
+à¹à¸„ว้น
+à¹à¸„สซิเทอร์ไรต์
+à¹à¸„สเปียน
+à¹à¸„ะ
+à¹à¸„ะไค้
+à¹à¸„เมอรูน
+à¹à¸„à¹à¸à¸¥
+à¹à¸„à¹à¸•à¸£
+à¹à¸„à¹à¸ªà¸”
+à¹à¸„โทด
+à¹à¸„โรไลนา
+à¹à¸„โรไลนาเหนือ
+à¹à¸„โรไลนาใต้
+à¹à¸„่
+à¹à¸„่น
+à¹à¸„้
+à¹à¸„้น
+à¹à¸„้นคอ
+à¹à¸„้มป์
+à¹à¸„้มป์ไฟ
+à¹à¸‡
+à¹à¸‡à¸°
+à¹à¸‡à¹ˆ
+à¹à¸‡à¹ˆà¸‡
+à¹à¸‡à¹ˆà¸‡à¸­à¸™
+à¹à¸‡à¹ˆà¸™
+à¹à¸‡à¹ˆà¸™à¹†
+à¹à¸‡à¹‰à¸¡
+à¹à¸ˆ
+à¹à¸ˆà¸
+à¹à¸ˆà¸à¸±à¸™
+à¹à¸ˆà¸à¹à¸ˆà¸‡
+à¹à¸ˆà¸‡
+à¹à¸ˆà¸‡à¸£à¸¹à¸›
+à¹à¸ˆà¸‡à¸£à¹‰à¸­à¸™
+à¹à¸ˆà¸‡à¸£à¹‰à¸­à¸™à¸§à¸´à¸—ยา
+à¹à¸ˆà¸‡à¸¥à¸­à¸™
+à¹à¸ˆà¸ˆà¸™
+à¹à¸ˆà¸ˆà¸±à¸™
+à¹à¸ˆà¸”à¹à¸ˆà¹‰
+à¹à¸ˆà¸•à¸£
+à¹à¸ˆà¸š
+à¹à¸ˆà¸£
+à¹à¸ˆà¸£à¸
+à¹à¸ˆà¸£à¸‡
+à¹à¸ˆà¸¥à¸¹à¸­à¸´à¸•
+à¹à¸ˆà¸§
+à¹à¸ˆà¸ªà¹€à¸žà¸­à¸£à¹Œ
+à¹à¸ˆà¸°
+à¹à¸ˆà¹‡à¸à¸ªà¸±à¸™
+à¹à¸ˆà¹ˆà¸¡
+à¹à¸ˆà¹ˆà¸¡à¸ˆà¸±à¸™à¸—ร์
+à¹à¸ˆà¹ˆà¸¡à¸šà¸¸à¸•à¸£
+à¹à¸ˆà¹ˆà¸¡à¹ƒà¸ª
+à¹à¸ˆà¹ˆà¸§
+à¹à¸ˆà¹‰
+à¹à¸ˆà¹‰à¸‡
+à¹à¸ˆà¹‰à¸‡à¸§à¸±à¸’นะ
+à¹à¸ˆà¹‰à¸‡à¸¨à¸´à¸£à¸´à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œ
+à¹à¸ˆà¹‰à¸™
+à¹à¸ˆà¹‰à¸§
+à¹à¸ˆà¹‰à¸«à¹ˆà¸¡
+à¹à¸ˆà¹Šà¸”
+à¹à¸ˆà¹‹
+à¹à¸ˆà¹‹à¸§
+à¹à¸ˆà¹‹à¸§à¹à¸«à¸§à¸§
+à¹à¸‰
+à¹à¸‰à¸
+à¹à¸‰à¸‡
+à¹à¸‰à¸šà¸¥
+à¹à¸‰à¸¥à¸š
+à¹à¸‰à¸¥à¸°
+à¹à¸‰à¸¥à¹‰à¸¡
+à¹à¸‰à¸¥à¹‰à¸¡à¸™à¸´à¸¡à¸´à¸•à¸£
+à¹à¸‰à¸§
+à¹à¸‰à¸°
+à¹à¸‰à¸°à¹à¸šà¸°
+à¹à¸‰à¹‚พย
+à¹à¸‰à¹ˆ
+à¹à¸‰à¹ˆà¸‡
+à¹à¸Š
+à¹à¸Šà¸‡à¸à¸£à¸µà¸¥à¹ˆà¸²
+à¹à¸Šà¸‡à¸¡à¸²
+à¹à¸Šà¸™à¹à¸™à¸¥
+à¹à¸Šà¸šà¹Šà¸§à¸¢
+à¹à¸Šà¸¡à¸›à¹Œ
+à¹à¸Šà¸¡à¸žà¸¹
+à¹à¸Šà¸¡à¸ à¸¹
+à¹à¸Šà¸¡à¹€à¸›à¸
+à¹à¸Šà¸¡à¹€à¸›à¸µà¹‰à¸¢à¸™
+à¹à¸Šà¸£à¸‡
+à¹à¸Šà¸£à¹Œ
+à¹à¸Šà¸¥à¹€à¸™à¸¥
+à¹à¸Šà¸¥à¹ˆà¸¡
+à¹à¸Šà¸ªà¸‹à¸µà¸ªà¹Œ
+à¹à¸Šà¸°
+à¹à¸Šà¹à¸˜à¸¡
+à¹à¸Šà¹ˆ
+à¹à¸Šà¹ˆà¸‡
+à¹à¸Šà¹ˆà¸¡
+à¹à¸Šà¹ˆà¸¡à¸ˆà¸´à¸•
+à¹à¸‹
+à¹à¸‹à¸„ราเมนโต
+à¹à¸‹à¸„าลีน
+à¹à¸‹à¸‡
+à¹à¸‹à¸‡à¸Šà¸±à¸™
+à¹à¸‹à¸‡à¸•à¹Œà¹€à¸”อนีส์
+à¹à¸‹à¸‡à¹à¸‹à¸§
+à¹à¸‹à¸”
+à¹à¸‹à¸”ๆ
+à¹à¸‹à¸—เทิน
+à¹à¸‹à¸™à¸‹à¸µà¸šà¸²à¸£à¹Œ
+à¹à¸‹à¸™à¸”์วิช
+à¹à¸‹à¸™à¸•à¸²à¸„รูซ
+à¹à¸‹à¸™à¹‚ตริน
+à¹à¸‹à¸š
+à¹à¸‹à¸›à¹„ฟร์
+à¹à¸‹à¸Ÿà¹„ฟร์
+à¹à¸‹à¸¡
+à¹à¸‹à¸¡à¹€à¸šà¸µà¸¢
+à¹à¸‹à¸¡à¹€à¸›à¸´à¸¥
+à¹à¸‹à¸¢à¸´à¸”
+à¹à¸‹à¸¥à¸¡à¸­à¸™
+à¹à¸‹à¸§
+à¹à¸‹à¸°
+à¹à¸‹à¹‡à¸à¸„าริน
+à¹à¸‹à¹‡à¸à¸„ารินโซเดียม
+à¹à¸‹à¹ˆ
+à¹à¸‹à¹ˆà¸§
+à¹à¸”
+à¹à¸”à¸
+à¹à¸”à¸à¸‡à¸²
+à¹à¸”à¸à¸”ัน
+à¹à¸”à¸à¸«à¹ˆà¸²
+à¹à¸”à¸à¹à¸”้
+à¹à¸”ง
+à¹à¸”งน้ำ
+à¹à¸”ด
+à¹à¸”ดาล
+à¹à¸”ดิ้น
+à¹à¸”น
+à¹à¸”นตะวัน
+à¹à¸”นเนรมิต
+à¹à¸”นไตร
+à¹à¸”ยัน
+à¹à¸”หวา
+à¹à¸”ะ
+à¹à¸”ะà¹à¸”๋
+à¹à¸”็à¸à¹†
+à¹à¸”่
+à¹à¸”่น
+à¹à¸”่ว
+à¹à¸”่วๆ
+à¹à¸•à¸
+à¹à¸•à¸à¸„อ
+à¹à¸•à¸à¸‰à¸²à¸™
+à¹à¸•à¸à¸”ับ
+à¹à¸•à¸à¸—ัพ
+à¹à¸•à¸à¸à¸¹à¸‡
+à¹à¸•à¸à¸žà¸²à¸™
+à¹à¸•à¸à¸¡à¸±à¸™
+à¹à¸•à¸à¸«à¸±à¸
+à¹à¸•à¸à¹à¸•à¸™
+à¹à¸•à¸à¹à¸¢à¸
+à¹à¸•à¸‡
+à¹à¸•à¸‡à¸à¸§à¸²
+à¹à¸•à¸‡à¹€à¸¡
+à¹à¸•à¸‡à¹‚ม
+à¹à¸•à¸‡à¹„ทย
+à¹à¸•à¸”
+à¹à¸•à¸™
+à¹à¸•à¸£
+à¹à¸•à¸£à¸‡à¸­à¸™
+à¹à¸•à¸£à¸§à¸‡
+à¹à¸•à¸£à¸°
+à¹à¸•à¸¥à¸¥à¸²à¹à¸®à¸ªà¸‹à¸µ
+à¹à¸•à¸¥à¸¥à¸´à¸™
+à¹à¸•à¸°
+à¹à¸•à¹ˆ
+à¹à¸•à¹ˆà¸‡
+à¹à¸•à¹ˆà¸‡à¸‡à¸²à¸™
+à¹à¸•à¹ˆà¸¥à¸°
+à¹à¸•à¹ˆà¹†
+à¹à¸•à¹‰
+à¹à¸•à¹‰à¸ˆà¸´à¹‹à¸§
+à¹à¸•à¹‰à¸¡
+à¹à¸•à¹‰à¸¡à¸„ู
+à¹à¸•à¹‰à¸§
+à¹à¸•à¹Šà¸”à¹à¸•à¹‹
+à¹à¸•à¹Šà¸°à¹€à¸­à¸µà¸¢
+à¹à¸–
+à¹à¸–à¸
+à¹à¸–ง
+à¹à¸–น
+à¹à¸–บ
+à¹à¸–บบันทึà¸à¸ à¸²à¸ž
+à¹à¸–บบันทึà¸à¹€à¸ªà¸µà¸¢à¸‡
+à¹à¸–ม
+à¹à¸–มพà¸
+à¹à¸–ลง
+à¹à¸–ลงà¸à¸²à¸£à¸“์
+à¹à¸–ลงà¸à¸²à¸£à¸“์ร่วม
+à¹à¸–ลงไข
+à¹à¸–ลบ
+à¹à¸–ว
+à¹à¸—คติà¸
+à¹à¸—คติคส์
+à¹à¸—ง
+à¹à¸—งทวย
+à¹à¸—งโà¸
+à¹à¸—งใจ
+à¹à¸—ชเคนต์
+à¹à¸—ตย์
+à¹à¸—น
+à¹à¸—นคุณ
+à¹à¸—นซาเนีย
+à¹à¸—นทาลัม
+à¹à¸—นทาไลต์
+à¹à¸—นที่
+à¹à¸—นเจนต์
+à¹à¸—บ
+à¹à¸—รà¸
+à¹à¸—รà¸à¸‹à¸­à¸™
+à¹à¸—รà¸à¸‹à¸¶à¸¡
+à¹à¸—รà¸à¸‹à¹‰à¸­à¸™
+à¹à¸—รà¸à¹€à¸•à¸­à¸£à¹Œ
+à¹à¸—รà¸à¹à¸‹à¸‡
+à¹à¸—รเวล
+à¹à¸—ลเลียม
+à¹à¸—สมัน
+à¹à¸—สเมเนีย
+à¹à¸—ะ
+à¹à¸—ะโลม
+à¹à¸—็à¸à¸‹à¸µà¹ˆ
+à¹à¸—็à¸à¸‹à¹Œ
+à¹à¸—็งà¸à¹Œà¸™à¹‰à¸³
+à¹à¸—็งค์
+à¹à¸—่
+à¹à¸—่ง
+à¹à¸—่น
+à¹à¸—่นลา
+à¹à¸—้
+à¹à¸—้ง
+à¹à¸—้จริง
+à¹à¸—้ๆ
+à¹à¸™à¸à¸‹à¸­à¸ª
+à¹à¸™à¸Šà¸§à¸´à¸¥
+à¹à¸™à¸š
+à¹à¸™à¸¡
+à¹à¸™à¸§
+à¹à¸™à¸§à¸„ิด
+à¹à¸™à¸§à¸—าง
+à¹à¸™à¸§à¸—ี่ห้า
+à¹à¸™à¸§à¸›à¹ˆà¸²
+à¹à¸™à¸§à¸£à¸š
+à¹à¸™à¸°
+à¹à¸™à¸°à¸™à¸±à¸”
+à¹à¸™à¸°à¸™à¸³
+à¹à¸™à¸°à¹à¸™à¸§
+à¹à¸™à¸°à¹à¸«à¸™
+à¹à¸™à¹ˆ
+à¹à¸™à¹ˆà¸‡
+à¹à¸™à¹ˆà¸Šà¸±à¸”
+à¹à¸™à¹ˆà¸™
+à¹à¸™à¹ˆà¸™à¸‚นัด
+à¹à¸™à¹ˆà¸™à¸­à¸™
+à¹à¸™à¹ˆà¸™à¹à¸Ÿà¹‰à¸™
+à¹à¸™à¹ˆà¸§
+à¹à¸™à¹ˆà¸°
+à¹à¸™à¹ˆà¹à¸—้
+à¹à¸™à¹ˆà¹ƒà¸ˆ
+à¹à¸š
+à¹à¸šà¸
+à¹à¸šà¸à¹à¸”ด
+à¹à¸šà¸„
+à¹à¸šà¸„à¸à¸£à¸²à¸§à¸™à¸”์
+à¹à¸šà¸„ทีเรีย
+à¹à¸šà¸„อัพ
+à¹à¸šà¸„à¹à¸®à¸™à¸”์
+à¹à¸šà¸„ไลท์
+à¹à¸šà¸‡à¸à¹Œ
+à¹à¸šà¸‡à¸„์
+à¹à¸šà¸”มินตัน
+à¹à¸šà¸•à¸±à¸™à¸£à¸¹à¸Š
+à¹à¸šà¸•à¹€à¸•à¸­à¸£à¸µà¹ˆ
+à¹à¸šà¸™
+à¹à¸šà¸™à¸”์วิธ
+à¹à¸šà¸™à¹€à¸™à¸­à¸£à¹Œ
+à¹à¸šà¸™à¹‚จ
+à¹à¸šà¸š
+à¹à¸šà¸šà¸‚้อคำถาม
+à¹à¸šà¸šà¸šà¸²à¸‡
+à¹à¸šà¸šà¸ªà¸­à¸šà¸–าม
+à¹à¸šà¸šà¹à¸œà¸™
+à¹à¸šà¸Ÿà¸Ÿà¸´à¸™
+à¹à¸šà¸¡à¸·à¸­
+à¹à¸šà¸£à¸
+à¹à¸šà¸£à¸™à¸”์
+à¹à¸šà¸£à¹Œ
+à¹à¸šà¸£à¹Œà¸Ÿà¸¸à¸•
+à¹à¸šà¸£à¹Œà¸£à¸´à¸‡
+à¹à¸šà¸¥à¹‡à¸„เมล์
+à¹à¸šà¸«à¸¥à¸²
+à¹à¸šà¸°
+à¹à¸šà¸°à¸—่า
+à¹à¸šà¸°à¸›à¸²à¸
+à¹à¸šà¸°à¸­à¸
+à¹à¸šà¸°à¹à¸‰à¸°
+à¹à¸šà¹€à¸˜à¸­à¸£à¹Œà¸ªà¸•à¹Œ
+à¹à¸šà¹€à¸šà¸²à¸°
+à¹à¸šà¹€à¸£à¸µà¸¢à¸¡
+à¹à¸šà¹à¸£à¸™à¸•à¹Œà¸ª
+à¹à¸šà¹„ต๋
+à¹à¸šà¹„รต์
+à¹à¸šà¹‡à¸š
+à¹à¸šà¹‡à¸žà¸•à¸´à¸ª
+à¹à¸šà¹ˆà¸‡
+à¹à¸šà¹‰
+à¹à¸›
+à¹à¸›à¸‹à¸´à¸Ÿà¸´à¸
+à¹à¸›à¸‹à¸´à¸Ÿà¸´à¸„
+à¹à¸›à¸”
+à¹à¸›à¸”บท
+à¹à¸›à¸”ปน
+à¹à¸›à¸”ริ้ว
+à¹à¸›à¸—ู
+à¹à¸›à¸š
+à¹à¸›à¸¡
+à¹à¸›à¸£
+à¹à¸›à¸£à¸
+à¹à¸›à¸£à¸‡
+à¹à¸›à¸£à¸‡à¸¥
+à¹à¸›à¸£à¸‡à¸ªà¸µà¸Ÿà¸±à¸™
+à¹à¸›à¸£à¸‡à¸°
+à¹à¸›à¸£à¸‡à¹ˆà¸‡
+à¹à¸›à¸£à¸‡à¹Šà¸”
+à¹à¸›à¸£à¸‡à¹‹
+à¹à¸›à¸£à¸›à¸£à¸§à¸™
+à¹à¸›à¸£à¸œà¸±à¸™
+à¹à¸›à¸£à¸œà¸±à¸™à¹à¸šà¸šà¸œà¸à¸œà¸±à¸™
+à¹à¸›à¸£à¸œà¸±à¸™à¹‚ดยตรง
+à¹à¸›à¸£à¸£à¸¹à¸›
+à¹à¸›à¸£à¸°
+à¹à¸›à¸£à¹„ข้
+à¹à¸›à¸£à¹ˆà¸‡
+à¹à¸›à¸£à¹‰à¸™
+à¹à¸›à¸£à¹Šà¸”
+à¹à¸›à¸£à¹‹
+à¹à¸›à¸¥
+à¹à¸›à¸¥à¸
+à¹à¸›à¸¥à¸‡
+à¹à¸›à¸¥à¸‡à¸™à¸²à¸¡
+à¹à¸›à¸¥à¸‡à¸œà¸µ
+à¹à¸›à¸¥à¸™
+à¹à¸›à¸¥à¸š
+à¹à¸›à¸¥à¹‰
+à¹à¸›à¸°
+à¹à¸›à¹‰à¸‡
+à¹à¸›à¹‰à¸‡à¸ªà¸”
+à¹à¸›à¹‰à¸™
+à¹à¸›à¹‰à¸§
+à¹à¸›à¹Šà¸”
+à¹à¸›à¹Šà¸š
+à¹à¸›à¹Šà¸§
+à¹à¸›à¹Šà¸°
+à¹à¸›à¹Šà¸°à¸à¸¸à¹ˆà¸¢
+à¹à¸›à¹Šà¸°à¸‹à¸°
+à¹à¸›à¹Šà¸°à¹€à¸ˆà¸µà¹Šà¸¢à¸°
+à¹à¸›à¹‹à¸‡
+à¹à¸›à¹‹à¸§
+à¹à¸œà¸
+à¹à¸œà¸‡
+à¹à¸œà¸‡à¸„อ
+à¹à¸œà¸‡à¸¥à¸­à¸¢
+à¹à¸œà¸”
+à¹à¸œà¸™
+à¹à¸œà¸™à¸
+à¹à¸œà¸™à¸à¸²à¸£
+à¹à¸œà¸™à¸—ี่
+à¹à¸œà¸™à¸œà¸±à¸‡
+à¹à¸œà¸™à¸ à¸²à¸ž
+à¹à¸œà¸™à¸ à¸¹à¸¡à¸´
+à¹à¸œà¸¥
+à¹à¸œà¸¥à¸‡
+à¹à¸œà¸¥à¸‡à¸¨à¸£
+à¹à¸œà¸¥à¸°
+à¹à¸œà¸¥à¹‡à¸š
+à¹à¸œà¸¥à¹‡à¸§
+à¹à¸œà¹ˆ
+à¹à¸œà¹ˆà¸•à¸™
+à¹à¸œà¹ˆà¸™
+à¹à¸œà¹ˆà¸™à¸”
+à¹à¸œà¹ˆà¸™à¸”ินทอง
+à¹à¸œà¹ˆà¸™à¸žà¸
+à¹à¸œà¹ˆà¸™à¸ à¸ž
+à¹à¸œà¹ˆà¸§
+à¹à¸œà¹ˆà¸«à¸¥à¸²
+à¹à¸œà¹ˆà¹à¸‡à¹ˆ
+à¹à¸œà¹‰à¸§
+à¹à¸œà¹‰à¸§à¸žà¸²à¸™
+à¹à¸à¸
+à¹à¸à¸à¸«à¸­à¸¡
+à¹à¸à¸‡
+à¹à¸à¸”
+à¹à¸à¸”น้ำ
+à¹à¸ž
+à¹à¸žà¸„
+à¹à¸žà¸„à¸à¸´à¹‰à¸‡
+à¹à¸žà¸‡
+à¹à¸žà¸‡à¸žà¸§à¸¢
+à¹à¸žà¸—ย
+à¹à¸žà¸—ยศาสตร์
+à¹à¸žà¸—ยสภา
+à¹à¸žà¸—ยา
+à¹à¸žà¸—ย์
+à¹à¸žà¸—ย์ปัà¸à¸à¸²
+à¹à¸žà¸—ย์ศาสตร์
+à¹à¸žà¸—เทิร์น
+à¹à¸žà¸™
+à¹à¸žà¸™à¸
+à¹à¸žà¸™à¸‡à¹€à¸Šà¸´à¸‡
+à¹à¸žà¸™à¸‡à¹€à¸Šà¸´à¸
+à¹à¸žà¸™à¸‹à¸µà¹ˆ
+à¹à¸žà¸™à¸”้า
+à¹à¸žà¸™à¸—รี
+à¹à¸žà¸™à¹€à¸„็à¸
+à¹à¸žà¸™à¹€à¸•à¸­à¸£à¹Œ
+à¹à¸žà¸£
+à¹à¸žà¸£à¸
+à¹à¸žà¸£à¸„ทิซ
+à¹à¸žà¸£à¸§
+à¹à¸žà¸£à¸§à¸žà¸£à¸²à¸§
+à¹à¸žà¸£à¹ˆ
+à¹à¸žà¸£à¹ˆà¸‡
+à¹à¸žà¸£à¹ˆà¸‡à¸žà¸£à¸²à¸¢
+à¹à¸žà¸£à¹ˆà¸‡à¸ªà¸£à¸£à¸žà¸¨à¸²à¸ªà¸•à¸£à¹Œ
+à¹à¸žà¸£à¹‰à¸§
+à¹à¸žà¸£à¹Œ
+à¹à¸žà¸¥à¸‡
+à¹à¸žà¸¥à¸ˆà¸´à¹‚อเคลส
+à¹à¸žà¸¥à¸•à¸Ÿà¸­à¸£à¹Œà¸¡
+à¹à¸žà¸¥à¸—ินัม
+à¹à¸žà¸¥à¸™à¸™à¸´à¸‡
+à¹à¸žà¸¥à¸¡
+à¹à¸žà¸¥à¸°
+à¹à¸žà¸¥à¹€à¸¥à¹€à¸”ียม
+à¹à¸žà¸§
+à¹à¸žà¸¨à¸¢à¸²
+à¹à¸žà¸¨à¸¢à¹Œ
+à¹à¸žà¸°
+à¹à¸žà¸°à¹‚ลม
+à¹à¸žà¹à¸•à¸
+à¹à¸žà¹‡à¸
+à¹à¸žà¹‡à¸„เà¸à¸ˆ
+à¹à¸žà¹ˆà¸‡
+à¹à¸žà¹ˆà¸™
+à¹à¸žà¹‰
+à¹à¸žà¹‰à¸œà¸¡
+à¹à¸žà¹‰à¸œà¸±à¸§
+à¹à¸žà¹‰à¸Ÿà¸±à¸™
+à¹à¸žà¹‰à¸£à¸¹à¹‰
+à¹à¸žà¹‰à¸§
+à¹à¸žà¹‰à¹à¸£à¸‡
+à¹à¸Ÿà¸à¸‹à¹Œ
+à¹à¸Ÿà¸à¸—์
+à¹à¸Ÿà¸à¹€à¸•à¸­à¸£à¹Œ
+à¹à¸Ÿà¸à¹‚ทรี
+à¹à¸Ÿà¸‡
+à¹à¸Ÿà¸Šà¸±à¹ˆà¸™
+à¹à¸Ÿà¸™
+à¹à¸Ÿà¸™à¸‹à¸µ
+à¹à¸Ÿà¸™à¸•à¸²à¸‹à¸µ
+à¹à¸Ÿà¸™à¸™à¸´à¸‡
+à¹à¸Ÿà¸š
+à¹à¸Ÿà¸¡à¸´à¹€à¸¥à¸µà¸¢à¸£à¹Œ
+à¹à¸Ÿà¸£à¸‡à¸à¹Œà¸Ÿà¸­à¸£à¹Œà¸•
+à¹à¸Ÿà¸£à¸‡à¸„ลิไนต์
+à¹à¸Ÿà¸£à¸‡à¸„์
+à¹à¸Ÿà¸£à¸™à¹€à¸‹à¸µà¸¢à¸¡
+à¹à¸Ÿà¸£à¹Œ
+à¹à¸Ÿà¸¥à¸à¸‹à¹Œ
+à¹à¸Ÿà¸¥à¸Š
+à¹à¸Ÿà¸¥à¸Šà¹„ดร์ฟ
+à¹à¸Ÿà¸¥à¸•
+à¹à¸Ÿà¸¥à¸£à¹Œ
+à¹à¸Ÿà¸°
+à¹à¸Ÿà¹ˆ
+à¹à¸Ÿà¹‰à¸¡
+à¹à¸¡à¸
+à¹à¸¡à¸à¸à¸²à¸‹à¸µà¸™
+à¹à¸¡à¸à¸™à¸±à¸¡
+à¹à¸¡à¸à¸™à¸µà¹€à¸‹à¸µà¸¢à¸¡
+à¹à¸¡à¸à¸™à¸µà¹„ซต์
+à¹à¸¡à¸à¸™à¸µà¹„ทต์
+à¹à¸¡à¸à¸®à¸´à¹„มต์
+à¹à¸¡à¸„อินทอช
+à¹à¸¡à¸„เคอเรล
+à¹à¸¡à¸„โคร
+à¹à¸¡à¸‡
+à¹à¸¡à¸‡à¸à¸°à¸žà¸£à¸¸à¸™
+à¹à¸¡à¸‡à¸à¸²à¸™à¸´à¸™
+à¹à¸¡à¸‡à¸à¸²à¸™à¸µà¸ª
+à¹à¸¡à¸‡à¸à¸²à¹‚นไซต์
+à¹à¸¡à¸‡à¸à¸²à¹„นต์
+à¹à¸¡à¸‡à¸”า
+à¹à¸¡à¸‡à¸›à¹ˆà¸­à¸‡
+à¹à¸¡à¸‡à¸¡à¸¸à¸¡
+à¹à¸¡à¸‡à¸¥à¸±à¸
+à¹à¸¡à¸Šà¸Šà¸µà¸™
+à¹à¸¡à¸”ิสัน
+à¹à¸¡à¸•à¸‹à¹Œ
+à¹à¸¡à¸—ช์
+à¹à¸¡à¸—ส์
+à¹à¸¡à¸—เธอร์à¹à¸¡à¸•à¸´à¸„
+à¹à¸¡à¸™
+à¹à¸¡à¸™à¸ˆà¸¹à¹€à¸£à¸µà¸¢
+à¹à¸¡à¸™à¸Šà¸±à¹ˆà¸™
+à¹à¸¡à¸™à¸§à¸¥
+à¹à¸¡à¸™à¸¹à¹à¸Ÿà¸„เจอร์
+à¹à¸¡à¸™à¹€à¸™à¸ˆà¹€à¸¡à¹‰à¸™à¸—์
+à¹à¸¡à¸™à¹€à¸™à¸­à¸£à¹Œ
+à¹à¸¡à¸£
+à¹à¸¡à¸£à¸´à¹à¸¥à¸™à¸”์
+à¹à¸¡à¸¥à¸‡
+à¹à¸¡à¸¥à¸‡à¸”ำ
+à¹à¸¡à¸¥à¸‡à¸›à¸­
+à¹à¸¡à¸¥à¸‡à¸§à¸±à¸™
+à¹à¸¡à¸¥à¸‡à¸§à¸±à¸™à¸ªà¹€à¸›à¸™
+à¹à¸¡à¸¥à¸‡à¸ªà¸²à¸š
+à¹à¸¡à¸¥à¸š
+à¹à¸¡à¸§
+à¹à¸¡à¸§à¸”าว
+à¹à¸¡à¸§à¸™à¹‰à¸³
+à¹à¸¡à¸§à¸›à¹ˆà¸²
+à¹à¸¡à¸§à¸¡à¸­à¸‡
+à¹à¸¡à¸§à¹€à¸‹à¸²
+à¹à¸¡à¸ª
+à¹à¸¡à¸ªà¸‹à¸²à¸‹à¸¹à¹€à¸‹à¸•à¸ªà¹Œ
+à¹à¸¡à¸°
+à¹à¸¡à¹‚คร
+à¹à¸¡à¹‡à¸à¸‹à¸´à¸¡à¸±à¸¡
+à¹à¸¡à¹‡à¸„โคร
+à¹à¸¡à¹ˆ
+à¹à¸¡à¹ˆà¸à¸­à¸‡
+à¹à¸¡à¹ˆà¸à¸¸à¸à¹à¸ˆ
+à¹à¸¡à¹ˆà¸„ุณ
+à¹à¸¡à¹ˆà¸„ู่
+à¹à¸¡à¹ˆà¸„้า
+à¹à¸¡à¹ˆà¸‡à¸²à¸™
+à¹à¸¡à¹ˆà¸ˆà¸£à¸´à¸¡
+à¹à¸¡à¹ˆà¸ˆà¸±à¸™
+à¹à¸¡à¹ˆà¸•à¸²à¸¢
+à¹à¸¡à¹ˆà¸—ะ
+à¹à¸¡à¹ˆà¸—ัพ
+à¹à¸¡à¹ˆà¸—า
+à¹à¸¡à¹ˆà¸—่า
+à¹à¸¡à¹ˆà¸™
+à¹à¸¡à¹ˆà¸™à¸¡
+à¹à¸¡à¹ˆà¸™à¸¢à¸³
+à¹à¸¡à¹ˆà¸™à¹‰à¸³
+à¹à¸¡à¹ˆà¸šà¸—
+à¹à¸¡à¹ˆà¸›à¸°
+à¹à¸¡à¹ˆà¸žà¸£à¸°à¸Ÿà¸²à¸•à¸´à¸¡à¸²
+à¹à¸¡à¹ˆà¸žà¸£à¸´à¸
+à¹à¸¡à¹ˆà¸¡à¸”
+à¹à¸¡à¹ˆà¸¢à¸²à¸¢
+à¹à¸¡à¹ˆà¸£à¸°à¸¡à¸²à¸”
+à¹à¸¡à¹ˆà¸£à¸´à¸¡
+à¹à¸¡à¹ˆà¸£à¹‰à¸²
+à¹à¸¡à¹ˆà¸¥à¸²à¸™à¹‰à¸­à¸¢
+à¹à¸¡à¹ˆà¸¥à¸²à¸¢
+à¹à¸¡à¹ˆà¸§à¸µ
+à¹à¸¡à¹ˆà¸ªà¸£à¸§à¸¢
+à¹à¸¡à¹ˆà¸ªà¸­à¸”
+à¹à¸¡à¹ˆà¸ªà¸°à¹€à¸£à¸µà¸¢à¸‡
+à¹à¸¡à¹ˆà¸ªà¸²à¸¢
+à¹à¸¡à¹ˆà¸ªà¸µ
+à¹à¸¡à¹ˆà¸«à¸¡à¹‰à¸²à¸¢
+à¹à¸¡à¹ˆà¸­à¸²à¸¢
+à¹à¸¡à¹ˆà¸®à¹ˆà¸­à¸‡à¸ªà¸­à¸™
+à¹à¸¡à¹ˆà¹€à¸™à¸µà¹‰à¸¢à¸§
+à¹à¸¡à¹ˆà¹€à¸¡à¸²à¸°
+à¹à¸¡à¹ˆà¹à¸ˆà¹ˆà¸¡
+à¹à¸¡à¹ˆà¹à¸•à¸‡
+à¹à¸¡à¹ˆà¹à¸£à¸‡
+à¹à¸¡à¹ˆà¹ƒà¸ˆ
+à¹à¸¡à¹‰
+à¹à¸¡à¹‰à¸™
+à¹à¸¡à¹‰à¸§
+à¹à¸¡à¹‰à¸§à¹ˆà¸²
+à¹à¸¡à¹‰à¹à¸•à¹ˆ
+à¹à¸¢à¸
+à¹à¸¢à¸à¹à¸¢à¸°
+à¹à¸¢à¸‡
+à¹à¸¢à¸‡à¸¢à¸¥
+à¹à¸¢à¸‡à¹à¸¢à¹ˆ
+à¹à¸¢à¸‡à¹à¸¢à¹‰
+à¹à¸¢à¸š
+à¹à¸¢à¸šà¸„าย
+à¹à¸¢à¸šà¸¢à¸¥
+à¹à¸¢à¸¡
+à¹à¸¢à¸°
+à¹à¸¢à¹à¸ª
+à¹à¸¢à¹‡à¸š
+à¹à¸¢à¹ˆ
+à¹à¸¢à¹ˆà¸‡
+à¹à¸¢à¹ˆà¹à¸•à¹‰
+à¹à¸¢à¹‰
+à¹à¸¢à¹‰à¸‡
+à¹à¸¢à¹‰à¸¡
+à¹à¸¢à¹‰à¸¡à¸ˆà¸²à¸”วิทยา
+à¹à¸¢à¹‰à¸¡à¸ž
+à¹à¸¢à¹‰à¸¡à¸žà¸£à¸²à¸¢
+à¹à¸£
+à¹à¸£à¸
+à¹à¸£à¸à¸™à¸²
+à¹à¸£à¸„คูน
+à¹à¸£à¸‡
+à¹à¸£à¸‡à¸‡à¸²à¸™
+à¹à¸£à¸‡à¸‡à¸²à¸™à¸ªà¸±à¸¡à¸žà¸±à¸™à¸˜à¹Œ
+à¹à¸£à¸‡à¸”ึงดูด
+à¹à¸£à¸‡à¸¡à¹‰à¸²
+à¹à¸£à¸‡à¸ªà¸¹à¹ˆà¸¨à¸¹à¸™à¸¢à¹Œà¸à¸¥à¸²à¸‡
+à¹à¸£à¸‡à¹€à¸—ียน
+à¹à¸£à¸‹à¸´à¹ˆà¸‡
+à¹à¸£à¸”
+à¹à¸£à¸Ÿà¹€à¸Ÿà¸´à¸¥
+à¹à¸£à¸¡
+à¹à¸£à¸¡à¸£à¸­à¸™
+à¹à¸£à¸¡à¸£à¸²
+à¹à¸£à¸¡à¹€à¸¡à¸¥à¸ªà¹Œà¹€à¸šà¸­à¸£à¹Œà¹„à¸à¸•à¹Œ
+à¹à¸£à¸¡à¹‚รย
+à¹à¸£à¸¥à¸¥à¸µ
+à¹à¸£à¸°
+à¹à¸£à¹€à¸‡à¸²
+à¹à¸£à¹‡à¸à¹€à¸à¸•
+à¹à¸£à¹ˆ
+à¹à¸£à¹ˆà¸à¸¥à¸µà¸šà¸«à¸´à¸™
+à¹à¸£à¹ˆà¸à¸¥à¸µà¸šà¸«à¸´à¸™à¸‚าว
+à¹à¸£à¹ˆà¸‡
+à¹à¸£à¹ˆà¸”ินขาว
+à¹à¸£à¹ˆà¸”ินสอดำ
+à¹à¸£à¹ˆà¸”ีบุà¸
+à¹à¸£à¹ˆà¸žà¸¥à¸­à¸¢à¸­à¹ˆà¸­à¸™
+à¹à¸£à¹ˆà¸Ÿà¸±à¸™à¸¡à¹‰à¸²
+à¹à¸£à¹ˆà¹€à¸à¸¥à¸·à¸­à¸ˆà¸·à¸”
+à¹à¸£à¹ˆà¹€à¸‚ี้ยวหนุมาน
+à¹à¸£à¹ˆà¹ƒà¸¢à¸«à¸´à¸™
+à¹à¸£à¹‰à¸‡
+à¹à¸£à¹‰à¸™à¹à¸„้น
+à¹à¸£à¹‰à¸§
+à¹à¸¥
+à¹à¸¥à¸
+à¹à¸¥à¸à¸§à¸²à¸”
+à¹à¸¥à¸à¹‚ทส
+à¹à¸¥à¸„เà¸à¸­à¸£à¹Œ
+à¹à¸¥à¸‡
+à¹à¸¥à¸•à¹€à¸§à¸µà¸¢
+à¹à¸¥à¸™
+à¹à¸¥à¸™à¸‹à¸´à¸‡
+à¹à¸¥à¸™à¸”์
+à¹à¸¥à¸™à¸—านัม
+à¹à¸¥à¸š
+à¹à¸¥à¸šà¸£à¸²à¹‚ดไรต์
+à¹à¸¥à¸¡à¹‚พรโบไลต์
+à¹à¸¥à¸°
+à¹à¸¥à¹‡à¸à¹‚ทส
+à¹à¸¥à¹‡à¸š
+à¹à¸¥à¹ˆ
+à¹à¸¥à¹ˆà¸‡
+à¹à¸¥à¹ˆà¸™
+à¹à¸¥à¹‰
+à¹à¸¥à¹‰à¸‡
+à¹à¸¥à¹‰à¸§
+à¹à¸¥à¹‰à¸§à¸
+à¹à¸¥à¹‰à¸§à¹„ป
+à¹à¸§à¸à¸à¸­à¸™
+à¹à¸§à¸„คัม
+à¹à¸§à¸‡
+à¹à¸§à¸‡à¸™à¹‰à¸­à¸¢
+à¹à¸§à¸‡à¹ƒà¸«à¸à¹ˆ
+à¹à¸§à¸”
+à¹à¸§à¸”ล้อม
+à¹à¸§à¸”วง
+à¹à¸§à¸•à¸£
+à¹à¸§à¸™
+à¹à¸§à¸™à¸„ูเวอร์
+à¹à¸§à¸™à¸”า
+à¹à¸§à¸™à¹‚à¸à¹Šà¸°à¸«à¹Œ
+à¹à¸§à¸š
+à¹à¸§à¸šà¸§à¸±à¸š
+à¹à¸§à¸¡
+à¹à¸§à¸¡à¹„พร์
+à¹à¸§à¸¥à¸¹
+à¹à¸§à¸§
+à¹à¸§à¸§à¸§à¸±à¸š
+à¹à¸§à¸§à¸§à¸²à¸¡
+à¹à¸§à¸§à¸§à¸²à¸§
+à¹à¸§à¸°
+à¹à¸§à¹€à¸¥à¸µà¸¢à¸™à¸—์
+à¹à¸§à¹ˆà¸™
+à¹à¸§à¹ˆà¸™à¸•à¸²
+à¹à¸§à¹ˆà¸™à¹„ว
+à¹à¸§à¹ˆà¸§
+à¹à¸§à¹‰
+à¹à¸§à¹‰à¸‡
+à¹à¸ª
+à¹à¸ªà¸
+à¹à¸ªà¸‡
+à¹à¸ªà¸‡à¸ˆà¸±à¸™à¸—ร์
+à¹à¸ªà¸‡à¸”าบ
+à¹à¸ªà¸‡à¸—อง
+à¹à¸ªà¸‡à¸¡à¸±à¹ˆà¸‡à¸¡à¸µ
+à¹à¸ªà¸‡à¸¨à¸£à¸µ
+à¹à¸ªà¸‡à¸¨à¸¶à¸à¸©à¸²
+à¹à¸ªà¸‡à¸­à¸£à¸¸à¸“
+à¹à¸ªà¸‡à¸­à¸¸à¸—ัย
+à¹à¸ªà¸‡à¹à¸”ด
+à¹à¸ªà¸”
+à¹à¸ªà¸”ง
+à¹à¸ªà¸”งออà¸
+à¹à¸ªà¸•à¸¡à¸›à¹Œ
+à¹à¸ªà¸™
+à¹à¸ªà¸™à¸à¸¥
+à¹à¸ªà¸™à¸‡
+à¹à¸ªà¸™à¸‡à¸­à¸™
+à¹à¸ªà¸™à¸¢
+à¹à¸ªà¸™à¸¢à¸²à¸à¸£
+à¹à¸ªà¸™à¸¢à¸²à¸™à¸¸à¸ à¸²à¸ž
+à¹à¸ªà¸™à¸¢à¹Œ
+à¹à¸ªà¸™à¸£à¸¹à¹‰
+à¹à¸ªà¸™à¸ªà¸¸à¸‚
+à¹à¸ªà¸™à¸²
+à¹à¸ªà¸š
+à¹à¸ªà¸šà¸
+à¹à¸ªà¸¡
+à¹à¸ªà¸¡à¸”ำ
+à¹à¸ªà¸¡à¸ªà¸²à¸£
+à¹à¸ªà¸¢à¸
+à¹à¸ªà¸¢à¸‡
+à¹à¸ªà¸¢à¸‡à¸‚น
+à¹à¸ªà¸¢à¸°
+à¹à¸ªà¸£à¸
+à¹à¸ªà¸£à¹‰à¸‡
+à¹à¸ªà¸¥à¸‡
+à¹à¸ªà¸¥à¸‡à¹ƒà¸ˆ
+à¹à¸ªà¸§à¸‡
+à¹à¸ªà¸§à¸‡à¸«à¸²
+à¹à¸ªà¸­à¸
+à¹à¸ªà¸°
+à¹à¸ªà¹ˆ
+à¹à¸ªà¹‰
+à¹à¸ªà¹‰à¸¡à¹‰à¸²
+à¹à¸«
+à¹à¸«à¸
+à¹à¸«à¸à¸„อà¸
+à¹à¸«à¸à¸›à¸²à¸
+à¹à¸«à¸‡
+à¹à¸«à¸‡à¸™
+à¹à¸«à¸‡à¹à¸à¹‹
+à¹à¸«à¸‡à¹ˆ
+à¹à¸«à¸‡à¹ˆà¸‡
+à¹à¸«à¸™
+à¹à¸«à¸™à¸‡
+à¹à¸«à¸™à¸‡à¹ƒà¸ˆ
+à¹à¸«à¸™à¸š
+à¹à¸«à¸™à¸¡
+à¹à¸«à¸š
+à¹à¸«à¸¡
+à¹à¸«à¸¡à¸°
+à¹à¸«à¸¡à¹ˆ
+à¹à¸«à¸¡à¹ˆà¸¡
+à¹à¸«à¸¢
+à¹à¸«à¸¢à¸‡
+à¹à¸«à¸¢à¸¡
+à¹à¸«à¸¢à¸°
+à¹à¸«à¸¢à¹ˆ
+à¹à¸«à¸¢à¹ˆà¸‡
+à¹à¸«à¸¥
+à¹à¸«à¸¥à¸
+à¹à¸«à¸¥à¸à¸¥à¸²à¸
+à¹à¸«à¸¥à¸‡à¸ªà¸´à¸‡à¸«à¹Œ
+à¹à¸«à¸¥à¸™
+à¹à¸«à¸¥à¸¡
+à¹à¸«à¸¥à¸¡à¸„ม
+à¹à¸«à¸¥à¸¡à¸‡à¸­à¸š
+à¹à¸«à¸¥à¸¡à¸—อง
+à¹à¸«à¸¥à¸°
+à¹à¸«à¸¥à¹ˆ
+à¹à¸«à¸¥à¹ˆà¸‡
+à¹à¸«à¸¥à¹ˆà¸‡à¹€à¸ªà¸·à¹ˆà¸­à¸¡à¹‚ทรม
+à¹à¸«à¸¥à¹ˆà¹ƒà¸™
+à¹à¸«à¸§
+à¹à¸«à¸§à¸
+à¹à¸«à¸§à¸”
+à¹à¸«à¸§à¸™
+à¹à¸«à¸§à¸°
+à¹à¸«à¸§à¹ˆà¸‡
+à¹à¸«à¸°
+à¹à¸«à¹ˆ
+à¹à¸«à¹ˆà¸‡
+à¹à¸«à¹ˆà¹à¸«à¸™
+à¹à¸«à¹‰
+à¹à¸«à¹‰à¸‡
+à¹à¸«à¹‰à¸™
+à¹à¸«à¹‰à¸§
+à¹à¸­
+à¹à¸­à¸
+à¹à¸­à¸à¸‹à¸´à¹„นต์
+à¹à¸­à¸à¸—ิเนียม
+à¹à¸­à¸à¸—ิโนไลต์
+à¹à¸­à¸à¹„มต์
+à¹à¸­à¸‡à¸à¸¥à¸µà¹„ซต์
+à¹à¸­à¸‡à¹€à¸à¸´à¸¥à¸‹à¸µ
+à¹à¸­à¸‡à¹€à¸„อไรต์
+à¹à¸­à¸Šà¸à¸²à¹à¸šà¸”
+à¹à¸­à¸”
+à¹à¸­à¸”ดิสอาบาบา
+à¹à¸­à¸”มิรัลตี
+à¹à¸­à¸”วานซ์
+à¹à¸­à¸”เดรส
+à¹à¸­à¸”ๆ
+à¹à¸­à¸•à¸—ริบิวต์
+à¹à¸­à¸•à¹à¸¥à¸™à¸•à¸²
+à¹à¸­à¸•à¹à¸¥à¸™à¸•à¸´à¸
+à¹à¸­à¸™à¸”รอส
+à¹à¸­à¸™à¸”ราไดต์
+à¹à¸­à¸™à¸”าลูไซต์
+à¹à¸­à¸™à¸”ีซีน
+à¹à¸­à¸™à¸”์
+à¹à¸­à¸™à¸•à¸²à¸£à¹Œà¸à¸•à¸´à¸
+à¹à¸­à¸™à¸•à¸²à¸£à¹Œà¸à¸•à¸´à¸à¸²
+à¹à¸­à¸™à¸•à¸´à¸šà¸­à¸”ี
+à¹à¸­à¸™à¸•à¸´à¸›à¸²à¸£à¸­à¸ª
+à¹à¸­à¸™à¸•à¸´à¸¥à¸¥à¸´à¸ªà¸™à¹‰à¸­à¸¢
+à¹à¸­à¸™à¸•à¸´à¸¥à¸¥à¸´à¸ªà¹ƒà¸«à¸à¹ˆ
+à¹à¸­à¸™à¸•à¸´à¸­à¸´à¹€à¸¥à¹‡à¸à¸•à¸£à¸­à¸™
+à¹à¸­à¸™à¸•à¸´à¹€à¸ˆà¸™
+à¹à¸­à¸™à¸•à¸´à¹‚มนี
+à¹à¸­à¸™à¸•à¸µà¸à¸±à¸§
+à¹à¸­à¸™à¸•à¸µà¹‰
+à¹à¸­à¸™à¸—ิโà¸à¹„รต์
+à¹à¸­à¸™à¸—ิโมนี
+à¹à¸­à¸™à¸´à¹€à¸¡à¸Šà¸±à¸™
+à¹à¸­à¸™à¹à¸™à¹‚ปลิส
+à¹à¸­à¸™à¹‚ทฟิลไลต์
+à¹à¸­à¸™à¹„ฮไดรต์
+à¹à¸­à¸š
+à¹à¸­à¸šà¸­à¸´à¸‡
+à¹à¸­à¸šà¸²à¹‚à¸
+à¹à¸­à¸šà¹à¸à¸‡
+à¹à¸­à¸›à¹€à¸›à¸´à¸¥
+à¹à¸­à¸žà¸žà¸¥à¸´à¹€à¸„ชัน
+à¹à¸­à¸žà¹€à¸žà¸¥à¹‡à¸•
+à¹à¸­à¸Ÿà¸£à¸´à¸à¸²
+à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡
+à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰
+à¹à¸­à¸¡à¸šà¸¥à¸´à¹‚à¸à¹„นต์
+à¹à¸­à¸¡à¸Ÿà¸´à¹‚บล
+à¹à¸­à¸¡à¸¡à¸´à¹€à¸•à¸­à¸£à¹Œ
+à¹à¸­à¸¡à¸°à¸‹à¸­à¸™à¸ªà¹‚ตน
+à¹à¸­à¸¡à¸°à¸‹à¸­à¸™à¹„นต์
+à¹à¸­à¸¡à¸´à¹à¸£à¸™à¸•à¹Œ
+à¹à¸­à¸¡à¹à¸›à¸£à¹Œ
+à¹à¸­à¸¡à¹‚มเนีย
+à¹à¸­à¸£à¸´à¹‚ซนา
+à¹à¸­à¸£à¹ˆà¸¡
+à¹à¸­à¸£à¹Œ
+à¹à¸­à¸¥à¸à¸­à¸®à¸­à¸¥à¹Œ
+à¹à¸­à¸¥à¸ˆà¸µà¹€à¸£à¸µà¸¢
+à¹à¸­à¸¥à¸Ÿà¸²
+à¹à¸­à¸¥à¸¡à¸±à¸™à¹„ดต์
+à¹à¸­à¸¥à¸¥à¸²à¹„นต์
+à¹à¸­à¸¥à¸°à¹à¸šà¸¡à¸²
+à¹à¸­à¸¥à¹€à¸ˆà¸µà¸¢à¸£à¹Œ
+à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢
+à¹à¸­à¸¥à¹‚ลเฟน
+à¹à¸­à¸¥à¹„บต์
+à¹à¸­à¸§
+à¹à¸­à¸ªà¸—าทีน
+à¹à¸­à¸ªà¸Ÿà¸±à¸¥à¸•à¹Œ
+à¹à¸­à¸ªà¹€à¸šà¸ªà¸—อส
+à¹à¸­à¸ªà¹„พริน
+à¹à¸­à¸«à¸™à¸±à¸‡
+à¹à¸­à¸­à¸§à¸¢
+à¹à¸­à¸­à¸±à¸”
+à¹à¸­à¹€à¸¡à¸—ิสต์
+à¹à¸­à¹€à¸£à¸­
+à¹à¸­à¹‚นด
+à¹à¸­à¹‚รบิค
+à¹à¸­à¹‡à¸à¹€à¸‹à¸¥à¹„ฮเบอร์à¸
+à¹à¸­à¹‡à¸„ทีฟ
+à¹à¸­à¹‡à¸”à¹à¸§à¸™à¸•à¸´à¸ª
+à¹à¸­à¹ˆà¸‡
+à¹à¸­à¹ˆà¸™
+à¹à¸­à¹ˆà¸™à¸¥à¸¡
+à¹à¸­à¹ˆà¸§
+à¹à¸­à¹‰
+à¹à¸­à¹‰à¸‡à¹à¸¡à¹‰à¸‡
+à¹à¸­à¹‰à¸”
+à¹à¸­à¹‰à¸¡
+à¹à¸­à¹Šà¸„ชั่น
+à¹à¸­à¹Šà¸”
+à¹à¸­à¹‹
+à¹à¸®
+à¹à¸®à¸à¹€à¸à¸­à¸£à¹Œ
+à¹à¸®à¸™à¸”์
+à¹à¸®à¸™à¸”์บอล
+à¹à¸®à¸›à¸›à¸µà¹‰
+à¹à¸®à¸›à¸›à¸µà¹‰à¹à¸¥à¸™à¸”์
+à¹à¸®à¸Ÿà¹€à¸™à¸µà¸¢à¸¡
+à¹à¸®à¸¡
+à¹à¸®à¸¡à¹€à¸šà¸­à¸£à¹Œà¹€à¸à¸­à¸£à¹Œ
+à¹à¸®à¸£à¹Œà¸£à¸´à¸ªà¹€à¸šà¸­à¸£à¹Œà¸
+à¹à¸®à¸°
+à¹à¸®à¹ˆ
+à¹à¸®à¹ˆà¸
+à¹à¸®à¹ˆà¸à¸¶à¹Šà¸™
+โà¸
+โà¸à¸
+โà¸à¸à¸™à¸¸à¸—
+โà¸à¸à¸´à¸¥
+โà¸à¸à¸´à¸¥à¸²
+โà¸à¸à¹€à¸à¸
+โà¸à¸‡
+โà¸à¸‡à¸à¸²à¸‡
+โà¸à¸‡à¸à¸´à¸™
+โà¸à¸‡à¹‚à¸à¹‰
+โà¸à¸à¸ˆ
+โà¸à¸à¸ˆà¸™
+โà¸à¸à¸ˆà¸²
+โà¸à¸à¸´
+โà¸à¸
+โà¸à¸à¸ªà¸­
+โà¸à¸à¸«à¸­à¸¡
+โà¸à¸à¸²à¸ª
+โà¸à¸“
+โà¸à¸”ัง
+โà¸à¸•à¸²à¸šà¸²à¸£à¸¹
+โà¸à¸•à¹„ต
+โà¸à¸—ัณฑ์
+โà¸à¸˜à¸´à¸„
+โà¸à¸™
+โà¸à¸›à¸´à¸™à¸³
+โà¸à¸¡à¸¥
+โà¸à¸¡à¸¸à¸—
+โà¸à¸¢
+โà¸à¸£à¸
+โà¸à¸£à¸à¸˜à¸²à¸£
+โà¸à¸£à¸à¸žà¸£à¸°
+โà¸à¸£à¸‡
+โà¸à¸£à¸à¸ˆ
+โà¸à¸£à¸”
+โà¸à¸£à¸•à¹‹à¸™
+โà¸à¸£à¸˜
+โà¸à¸£à¸˜à¸‚
+โà¸à¸£à¸˜à¸²
+โà¸à¸£à¸ž
+โà¸à¸£à¸¡
+โà¸à¸£à¸¢
+โà¸à¸£à¸¨
+โà¸à¸£à¹ˆà¸‡
+โà¸à¸£à¹‰
+โà¸à¸£à¹‹à¸™
+โà¸à¸¥à¸‡
+โà¸à¸¥à¸”์
+โà¸à¸¥à¸™
+โà¸à¸¥à¸šà¸­à¸¥
+โà¸à¸¥à¸²à¸«à¸¥
+โà¸à¸¥à¹Œ
+โà¸à¸§à¸´à¸—
+โà¸à¸¨
+โà¸à¸¨à¸¥
+โà¸à¸¨à¸¥à¸§à¸´à¸—ยา
+โà¸à¸©
+โà¸à¸©à¸¡
+โà¸à¸©à¸¢
+โà¸à¸©à¸µà¸¢à¹Œ
+โà¸à¸ª
+โà¸à¸ªà¸™
+โà¸à¸ªà¸±à¸Š
+โà¸à¸ªà¸´à¸™à¸—ร์
+โà¸à¸ªà¸µà¸¢à¹Œ
+โà¸à¸ªà¸¸à¸¡
+โà¸à¸ªà¸¸à¸¡à¸žà¸´à¸ªà¸±à¸¢
+โà¸à¸«à¸
+โà¸à¸«à¸£à¹ˆà¸²à¸™
+โà¸à¸«à¸§à¸²
+โà¸à¹€à¸¡à¸™
+โà¸à¹€à¸¡à¸£à¸²
+โà¸à¹€à¸¡à¸¨
+โà¸à¹‚à¸à¹‰
+โà¸à¹‚ซ
+โà¸à¹‚รโà¸à¹‚ส
+โà¸à¹„ดà¹à¸­à¸
+โà¸à¹„ล
+โà¸à¹„สย
+โà¸à¹ˆ
+โà¸à¹ˆà¸‡
+โà¸à¹ˆà¸™
+โà¸à¹‰
+โà¸à¹‰à¸‡à¹‚ค้ง
+โà¸à¹‰à¹€à¸à¹‹
+โà¸à¹‹
+โà¸à¹‹à¸™
+โข
+โขà¸
+โขง
+โขงเจียม
+โขด
+โขน
+โขนง
+โขม
+โขมง
+โขมด
+โขยà¸
+โขยง
+โขยด
+โขย่ง
+โขลà¸
+โขลง
+โขลน
+โข่ง
+โค
+โคà¸
+โคà¸à¸›à¸µà¸š
+โคà¸à¸¡à¹‰à¸²
+โคà¸à¸ªà¸³à¹‚รง
+โคà¸à¹‚พธิ์
+โคคลาน
+โคจร
+โคช
+โคซี่
+โคด
+โคตร
+โคตรภู
+โคธา
+โคน
+โคนม
+โคนสมอ
+โคนอน
+โคนาà¸à¸£à¸µ
+โคบอลต์
+โคบอลไทต์
+โคบาล
+โคบุตร
+โคปผà¸à¸°
+โคม
+โคมลอย
+โคมัย
+โคมูตร
+โคม่า
+โครà¸
+โครคอยต์
+โครง
+โครงà¸à¸²à¸£
+โครงสร้าง
+โครซิโดไลต์
+โครม
+โครส
+โครันดัม
+โคราช
+โครำ
+โครเชท์
+โครเมียม
+โครเอเชีย
+โครโมโซม
+โครไมต์
+โคร่ง
+โคล
+โคลง
+โคลงเคลง
+โคลน
+โคลนนิ่ง
+โคลอน
+โคลอมเบีย
+โคลัมบัส
+โคลัมเบีย
+โคลัมโบ
+โคลัมไบต์
+โควตา
+โควิถี
+โคออพเพอร์เรชัน
+โคออร์ดิเนต
+โคเคน
+โคเซà¹à¸„นต์
+โคเปนเฮเà¸à¸™
+โคเลสเตอรอล
+โคเวลไลต์
+โคà¹à¸—นเจนต์
+โคà¹à¸—นเจอร์
+โคโà¸à¸ª
+โคโมโร
+โคโรค
+โคโรนา
+โคโลราโด
+โคไซน์
+โคไพร
+โค่ง
+โค่น
+โค้à¸
+โค้ง
+โค้ช
+โค้ด
+โฆรวิส
+โฆษ
+โฆษà¸
+โฆษณา
+โฆษณาชวนเชื่อ
+โฆษะ
+โฆษิต
+โฆษิตาราม
+โง
+โงà¸
+โงà¸à¹€à¸‡à¸
+โงง
+โงงเงง
+โงน
+โงนเงน
+โงเง
+โง่
+โง่งเง่ง
+โง่งๆ
+โง้ง
+โจ
+โจà¸
+โจง
+โจงโคร่ง
+โจท
+โจทà¸à¹Œ
+โจทนา
+โจทน์
+โจทย์
+โจน
+โจนร่ม
+โจม
+โจมตี
+โจมทัพ
+โจร
+โจรà¸à¸£à¸£à¸¡
+โจล
+โจษ
+โจษจน
+โจษจัน
+โจษà¹à¸ˆ
+โจ่งครึ่ม
+โจ่งà¹à¸ˆà¹‰à¸‡
+โจ๊à¸
+โจ๋งครึ่ม
+โฉ
+โฉงเฉง
+โฉด
+โฉดเฉา
+โฉนด
+โฉบ
+โฉม
+โฉมงาม
+โฉมฉาย
+โฉมตรู
+โฉมยง
+โฉมศรี
+โฉมหน้า
+โฉลà¸
+โฉเà¸
+โฉเบ๊
+โฉ่
+โฉ่งฉ่าง
+โฉ่ฉาว
+โชà¸
+โชà¸à¸¸à¸™
+โชà¸à¹‚ชน
+โชค
+โชคชัย
+โชคชัยจงจำเริà¸
+โชคชัยร่วมมิตร
+โชคลาง
+โชงโลง
+โชดà¸
+โชดึà¸
+โชต
+โชตà¸
+โชติ
+โชติà¸
+โชติà¸à¸²à¸£
+โชติà¸à¸²à¸£à¸²à¸¡
+โชติรส
+โชติวัฒน์
+โชติสหาย
+โชน
+โชบองต์
+โชมโรม
+โชย
+โชยติส
+โชรม
+โชว์
+โชว์รูม
+โชเฟอร์
+โช้ค
+โซ
+โซà¸
+โซดา
+โซดาà¹à¸œà¸”เผา
+โซดาไฟ
+โซดาไลต์
+โซน
+โซนา
+โซนาร์
+โซนิค
+โซนี่
+โซปราโน
+โซปสโตน
+โซฟา
+โซม
+โซมาลิà¹à¸¥à¸™à¸”์
+โซมาเลีย
+โซรม
+โซล
+โซลา
+โซลูชัน
+โซลูชั่น
+โซเซ
+โซเดียม
+โซเดียมคาร์บอเนต
+โซเดียมซัลเฟต
+โซเดียมไซคลาเมต
+โซเฟีย
+โซเวียต
+โซโà¸à¸•à¸£à¸²
+โซโà¸à¹‰
+โซโลมอน
+โซโล่
+โซไซเอตี
+โซ่
+โซ่ง
+โซ่พิสัย
+โด
+โดà¸à¹€à¸”à¸
+โดด
+โดดร่ม
+โดน
+โดนดี
+โดนัต
+โดนัท
+โดป
+โดม
+โดมร
+โดมินิà¸à¸±à¸™
+โดมินิà¸à¸²
+โดมิโน
+โดมไพร
+โดย
+โดยตรง
+โดยที่
+โดยสาร
+โดรณ
+โดเมน
+โดเวอร์
+โดโลไมต์
+โด่
+โด่ง
+โด่เด่
+โด๊ป
+โต
+โตà¸
+โตงเตง
+โตจันทร์
+โตฎà¸
+โตน
+โตนด
+โตปิà¸à¸²
+โตมร
+โตมรธร
+โตย
+โตรà¸
+โตรด
+โตเà¸à¸µà¸¢à¸§
+โตเà¸à¹€à¸¥à¸²
+โตเบโà¸
+โตโà¸
+โต่ง
+โต้
+โต้ง
+โต้งๆ
+โต้ตอบ
+โต้วาที
+โต้หลง
+โต้โผ
+โต๊ด
+โต๊ะ
+โต๊ะอิหม่าม
+โต๋เต๋
+โถ
+โถง
+โถงเถง
+โถบ
+โถปริà¸
+โถม
+โถมนาà¸à¸²à¸£
+โถส้วม
+โท
+โทà¸à¹€à¸—à¸
+โทง
+โทงเทง
+โทงๆ
+โทณะ
+โททอล
+โทธà¸
+โทน
+โทนิค
+โทนเนอร์
+โทนโท่
+โทปาส
+โทมนัส
+โทร
+โทรคมนาคม
+โทรทรรศน์
+โทรทัศน์
+โทรพิมพ์
+โทรภาพ
+โทรม
+โทรศัพท์
+โทรสาร
+โทรเลข
+โทลา
+โทศà¸
+โทษ
+โทษจำ
+โทษทัณฑ์
+โทษา
+โทษาà¸à¸£
+โทษานุโทษ
+โทษารมณ์
+โทษโพย
+โทส
+โทสะ
+โทสาคติ
+โทหฬะ
+โทà¹à¸žà¸‹
+โทโทษ
+โทโส
+โท่
+โธรน
+โธวน
+โธ่
+โน
+โนซีไลต์
+โนน
+โนนสะอาด
+โนนสัง
+โนนสูง
+โนนไทย
+โนมพรรณ
+โนรา
+โนรี
+โนวายาซิมลียา
+โนเà¸à¸µà¸¢
+โนเน
+โนเบเลียม
+โน่น
+โน้ต
+โน้ตบุ๊à¸
+โน้ตบุ๊ค
+โน้ตส์
+โน้น
+โน้ม
+โบ
+โบà¸
+โบà¸à¸‚ร
+โบà¸à¸‚รณี
+โบà¸à¸¡à¸·à¸­
+โบà¸à¸µà¹‰
+โบชุà¸
+โบดà¸
+โบต
+โบตั๋น
+โบนัส
+โบนิน
+โบฟอร์ต
+โบย
+โบยบิน
+โบรà¸à¹€à¸à¸­à¸£à¹Œ
+โบรมีน
+โบรอน
+โบราณ
+โบราณà¸à¸²à¸¥
+โบราณคดี
+โบลิเวีย
+โบล็คเà¸à¸­à¸£à¹Œ
+โบว์
+โบว์ชัวร์
+โบว์ลินไจต์
+โบว์ลิ่ง
+โบสถ์
+โบà¹à¸”ง
+โบโà¸à¸•à¸²
+โบโฮล
+โบ้
+โบ๊เบ๊
+โบ๋
+โป
+โปà¸
+โปà¸à¸‚ร
+โปà¸à¸‚รณี
+โปà¸à¸®à¸²
+โปà¸à¸³
+โปง
+โปงลาง
+โปà¸à¸›à¸—
+โปดà¸
+โปตถà¸à¸°
+โปน
+โปร
+โปรง
+โปรด
+โปรดปราน
+โปรดัà¸à¸‹à¹Œ
+โปรดัà¸à¸‹à¹Œà¸Šà¸±à¸™
+โปรดิวเซอร์
+โปรตอน
+โปรตีน
+โปรตุเà¸à¸ª
+โปรย
+โปรยปราย
+โปรวิเดนซ์
+โปรเà¸à¸£à¸ª
+โปรเจคท์
+โปรเจคเตอร์
+โปรเซสเซอร์
+โปรเตสà¹à¸•à¸™à¸•à¹Œ
+โปรà¹à¸à¸£à¸¡
+โปรà¹à¸à¸£à¸¡à¹€à¸¡à¸­à¸£à¹Œ
+โปรโตคอล
+โปรโฟสเซอร์
+โปรโมชัน
+โปรโมต
+โปรโมท
+โปรโมเตอร์
+โปรไฟล์
+โปร่ง
+โปร่งà¹à¸ªà¸‡
+โปร่งใส
+โปลิส
+โปลิโอ
+โปลี
+โปลีเทคนิค
+โปล่ง
+โปสà¸à¸²à¸£à¹Œà¸”
+โปสเตอร์
+โปะ
+โปเà¸
+โปà¹à¸¥à¸™à¸”์
+โปโล
+โป่
+โป่ง
+โป่งข่าม
+โป่งน้ำร้อน
+โป้
+โป้ง
+โป้ปด
+โป๊
+โป๊à¸
+โป๊à¸à¹€à¸à¸­à¸£à¹Œ
+โป๊ป
+โป๊ยเซียน
+โป๊ะ
+โผ
+โผง
+โผงผาง
+โผงเผง
+โผà¸à¸à¸±à¸ž
+โผà¸à¸à¸±à¸žà¸žà¸°
+โผà¸à¸±à¸žà¸žà¸°
+โผน
+โผผิน
+โผย
+โผลà¸à¹€à¸œà¸¥à¸
+โผลง
+โผลน
+โผละ
+โผล่
+โผอน
+โผะ
+โผเผ
+โพ
+โพà¸
+โพà¸à¸žà¸²à¸¢
+โพง
+โพงพาง
+โพชฌงค์
+โพซิตรอน
+โพด
+โพทะเล
+โพธ
+โพธาราม
+โพธิ
+โพธิà¸à¸²à¸“
+โพธิบัลลังà¸à¹Œ
+โพธิสมภาร
+โพธิสัตว์
+โพธิ์
+โพธิ์ชัย
+โพธิ์ทอง
+โพธิ์นิมิตร
+โพธิ์ประทับช้าง
+โพธิ์ปั้น
+โพธิ์สามต้น
+โพธิ์หิรัà¸à¸­à¸¸à¸—ิศ
+โพธิ์à¹à¸à¹‰à¸§
+โพน
+โพนทราย
+โพนทอง
+โพนทะนา
+โพนพิสัย
+โพนเพน
+โพบาย
+โพผัน
+โพย
+โพยà¸à¹Šà¸§à¸™
+โพยม
+โพยมัน
+โพรà¸
+โพรง
+โพรซีเดอร์
+โพรมีเทียม
+โพระ
+โพระดà¸
+โพรเซสเซอร์
+โพรà¹à¸—à¸à¸—ิเนียม
+โพรโตคอล
+โพรโทà¹à¸­à¸à¸—ิเนียม
+โพลง
+โพลน
+โพลล์
+โพละ
+โพลาริส
+โพลาลอยด์
+โพลิเมอร์
+โพลีซี
+โพลีเอสเตอร์
+โพลีเฮไลต์
+โพล่
+โพล่ง
+โพล้ง
+โพล้เพล้
+โพสท์
+โพสพ
+โพสสิเบิล
+โพสิทิฟ
+โพà¹à¸—ช
+โพà¹à¸—สเซียม
+โพ้น
+โฟà¸à¸±à¸ª
+โฟน
+โฟม
+โฟร์à¹à¸¡à¸™
+โฟร์à¹à¸®à¸™à¸”์
+โฟร์โมสท์
+โฟลทติ้งมาร์เà¸à¹‡à¸•
+โฟลเดอร์
+โฟลโà¸à¹„พต์
+โฟล์ค
+โฟล์คซอง
+โฟล์คลอร์
+โฟล์เดอร์
+โฟเนติค
+โฟโต้
+โฟโทà¸à¸£à¸²à¸Ÿ
+โภค
+โภคทรัพย์
+โภคภัณฑ์
+โภคยทรัพย์
+โภคิน
+โภคี
+โภชà¸
+โภชน
+โภชนะ
+โภชนา
+โภชนาà¸à¸£
+โภชนาà¸à¸²à¸£
+โภชนาหาร
+โภชน์
+โภไคย
+โม
+โมà¸
+โมà¸à¸‚์
+โมà¸à¸¡à¸±à¸™
+โมà¸à¸²à¸”ิสชู
+โมà¸à¹‚คà¸
+โมฆ
+โมฆà¸à¸£à¸£à¸¡
+โมฆะ
+โมฆีย
+โมฆียà¸à¸£à¸£à¸¡
+โมฆียะ
+โมง
+โมงครุ่ม
+โมจน
+โมซัมบิà¸
+โมดิไฟ
+โมดูล
+โมดูลา
+โมทนา
+โมนลิซ่า
+โมนาโà¸
+โมนาไซต์
+โมบาย
+โมบิล
+โมมูห์
+โมรา
+โมรี
+โมร็อà¸à¹‚à¸
+โมลด์
+โมลิบดีนัม
+โมลิบดีไนต์
+โมลี
+โมลุà¸à¸à¸°
+โมสาร์ท
+โมหะ
+โมหันธ์
+โมหาคติ
+โมฬี
+โมฮัมหมัด
+โมฮ็อว์ค
+โมเดล
+โมเดิล
+โมเด็ม
+โมเตล
+โมเต็ล
+โมเม
+โมเมนตัม
+โมเมนต์
+โมเรส
+โมเลà¸à¸¸à¸¥
+โมเสà¸
+โมเสส
+โมโน
+โมโนà¹à¸‹à¹‡à¸à¸„าไรด์
+โมโนโครม
+โมโนโพลิ
+โมโลไค
+โมโห
+โมโหโ
+โมโหโทโส
+โมไนย
+โมไบล์
+โม่
+โม่ง
+โม่ห์
+โม้
+โย
+โยà¸
+โยà¸à¸•à¸£à¹Œ
+โยà¸à¹€à¸¢à¸
+โยà¸à¹‚ย้
+โยค
+โยคยะ
+โยคะ
+โยคิน
+โยคี
+โยง
+โยงโย่
+โยงใย
+โยชà¸
+โยชนา
+โยชน์
+โยถิà¸à¸°
+โยทะà¸à¸²
+โยธรา
+โยธา
+โยธิน
+โยธินบูรณะ
+โยธี
+โยน
+โยนà¸
+โยนยาว
+โยนิโส
+โยนี
+โยพนะ
+โยม
+โยเย
+โยโส
+โย่ง
+โย่งๆ
+โย้
+โย้เย้
+โร
+โรค
+โรคจิต
+โรคจิตเภท
+โรคประสาท
+โรคระบบประสาท
+โรคา
+โรคาพาธ
+โรง
+โรงà¸à¸°à¸›à¸´
+โรงคัล
+โรงงาน
+โรงงานยาสูบ
+โรงถ่าน
+โรงธาร
+โรงนา
+โรงน้ำà¹à¸‚็ง
+โรงรถ
+โรงหมู
+โรงเตี๊ยม
+โรงเรียน
+โรงเรียนสาธิต
+โรงà¹à¸£à¸¡
+โรงà¹à¸ªà¸‡
+โรจ
+โรจน์
+โรดส์
+โรดิเซีย
+โรดโชว์
+โรดไอà¹à¸¥à¸™à¸”์
+โรตา
+โรตารี่
+โรตี
+โรท
+โรทนะ
+โรธ
+โรธร
+โรบอต
+โรบินสัน
+โรปนะ
+โรม
+โรมมัย
+โรมรัน
+โรมัน
+โรมันคาทอลิà¸
+โรมานซ์
+โรมาเนีย
+โรย
+โรยรา
+โรล
+โรษ
+โรษณะ
+โรส
+โรหิณี
+โรหิต
+โรหิตสุข
+โรเดียม
+โรเตอร์
+โรเนียว
+โรเมอร์
+โรเร
+โรà¹à¸¡à¸™à¸•à¸´à¸„
+โรโà¸à¹„นต์
+โรโดโครไซต์
+โรโดไลต์
+โร่
+โลà¸
+โลà¸à¸—ะเล
+โลà¸à¸˜à¸£à¸£à¸¡
+โลà¸à¸™à¸²à¸–
+โลà¸à¸šà¸²à¸¥
+โลà¸à¸¢à¸°
+โลà¸à¸¢à¹Œ
+โลà¸à¸§à¸´à¸—ู
+โลà¸à¸±à¸™à¸•à¸£à¹Œ
+โลà¸à¸±à¸¢
+โลà¸à¸²
+โลà¸à¸²à¸˜à¸´à¸šà¸”ี
+โลà¸à¸²à¸˜à¸´à¸›à¹„ตย
+โลà¸à¸²à¸™à¸¸à¸§à¸±à¸•à¸£
+โลà¸à¸²à¸ à¸´à¸§à¸±à¸’น์
+โลà¸à¸²à¸¡à¸´à¸ª
+โลà¸à¸²à¸§à¸´à¸™à¸²à¸¨
+โลà¸à¸´à¸¢à¸°
+โลà¸à¸µà¸¢
+โลà¸à¸µà¸¢à¸§à¸±à¸•à¸£
+โลà¸à¸µà¸¢à¹Œ
+โลà¸à¸¸à¸•à¸£à¸˜à¸£à¸£à¸¡
+โลà¸à¸¸à¸•à¸£à¸°
+โลà¸à¹€à¸à¸¨
+โลคัล
+โลง
+โลจนะ
+โลชั่น
+โลณะ
+โลด
+โลดโผน
+โลตัส
+โลน
+โลนลิ
+โลปะ
+โลภ
+โลม
+โลมะ
+โลมา
+โลมเล้า
+โลลุป
+โลว์
+โลหà¸à¸²à¸£
+โลหà¸à¸´à¸ˆ
+โลหะ
+โลหะเจือ
+โลหัช
+โลหิต
+โละ
+โลเà¸à¸¨
+โลเคชั่น
+โลเม
+โลเล
+โลโà¸à¹‰
+โลโต
+โลโฟเตน
+โลโล
+โล่
+โล่ง
+โล้
+โล้ง
+โล้น
+โล้เล้
+โว
+โวà¸à¸²à¸£
+โวค
+โวทาน
+โวย
+โวยวาย
+โวลà¸à¹‰à¸²
+โวลท์
+โวลลาสโทไนต์
+โวลุม
+โวลเคโน
+โวสาน
+โวหาร
+โว่
+โว่ง
+โว้ย
+โว้เว้
+โศà¸
+โศà¸à¸™à¸²à¸à¸à¸£à¸£à¸¡
+โศà¸à¸¨à¸±à¸¥à¸¢à¹Œ
+โศà¸à¸²
+โศà¸à¸²à¸”ูร
+โศà¸à¸²à¸¥à¸±à¸¢
+โศà¸à¸µ
+โศจนะ
+โศจิ
+โศถะ
+โศธนะ
+โศผะ
+โศภ
+โศภา
+โศภิต
+โศภิน
+โศรณิ
+โศรดา
+โศรตร
+โศลà¸
+โษฑศ
+โษฑศัน
+โสà¸
+โสà¸à¸±à¸™à¸•à¹Œ
+โสà¸à¹‚ดà¸
+โสณ
+โสณฑ์
+โสณมัย
+โสณิ
+โสณี
+โสด
+โสดà¸
+โสดม
+โสดา
+โสดาบัน
+โสต
+โสตถิ
+โสตทัศนอุปà¸à¸£à¸“์
+โสทà¸
+โสทร
+โสธà¸
+โสธนะ
+โสน
+โสพิศ
+โสภ
+โสภณ
+โสภา
+โสภิณี
+โสภี
+โสม
+โสมนัส
+โสมม
+โสมย์
+โสมาภาณุสรณ์
+โสรจ
+โสร่ง
+โสวรรณ
+โสหุ้ย
+โสฬส
+โสเภณี
+โสโครà¸
+โหง
+โหด
+โหน
+โหนà¸
+โหนด
+โหน่ง
+โหม
+โหมด
+โหมหัà¸
+โหมฮึà¸
+โหมโรง
+โหม่
+โหม่ง
+โหย
+โหยà¸à¹€à¸«à¸¢à¸
+โหยง
+โหยหวน
+โหยไห้
+โหย่ง
+โหร
+โหรงเหรง
+โหระพา
+โหรา
+โหราจารย์
+โหราศาสตร์
+โหล
+โหลงโจ้ง
+โหลด
+โหลน
+โหล่
+โหว
+โหวà¸à¹€à¸«à¸§à¸
+โหวง
+โหวด
+โหวต
+โหว่
+โหว้
+โห่
+โอ
+โอà¸
+โอà¸à¸¥à¸²à¹‚ฮมา
+โอà¸à¸¥à¸²à¹‚ฮมาซิตี
+โอà¸à¸²à¸ª
+โอà¸à¸´à¸™à¸²à¸§à¸²
+โอคอตสà¸à¹Œ
+โอฆ
+โอฆชล
+โองà¸à¸²à¸£
+โองโขดง
+โอชะ
+โอชา
+โอà¸
+โอด
+โอดโอย
+โอตตัปปะ
+โอน
+โอนิà¸à¸‹à¹Œ
+โอนเอน
+โอบ
+โอบี
+โอปอ
+โอพอล
+โอภา
+โอภาส
+โอม
+โอมาน
+โอย
+โอรส
+โอรสา
+โอละพ่อ
+โอลิมปิà¸
+โอลิมปิค
+โอลิมเปีย
+โอลิโà¸à¹€à¸„ลส
+โอวาท
+โอษà¸
+โอษà¸à¸Šà¸°
+โอษà¸à¸ à¸±à¸¢
+โอษà¸à¹Œ
+โอสถ
+โอสถรูป
+โอสาน
+โอหนอ
+โอหัง
+โอห์ม
+โอห์มมิเตอร์
+โอฬาร
+โอฬาริà¸
+โอฬารึà¸
+โออาฮู
+โอเปà¸
+โอเปค
+โอเพ่น
+โอเพ่นซอร์ส
+โอเลี้ยง
+โอเวอร์
+โอเอซิส
+โอเอส
+โอโซน
+โอไฮโอ
+โอ่
+โอ่ง
+โอ่อวด
+โอ่อ่า
+โอ่โถง
+โอ้
+โอ้à¸
+โอ้อวด
+โอ้เอ้
+โอ้โถง
+โอ้โลม
+โอ้โฮ
+โอ๊à¸
+โอ๊ย
+โอ๋
+โฮ
+โฮà¸
+โฮà¸à¸­à¸·à¸­
+โฮà¸à¸®à¸²à¸
+โฮบาร์ต
+โฮม
+โฮมเพจ
+โฮลเมียม
+โฮสต์
+โฮสเตส
+โฮะ
+โฮเต็ล
+โฮโนลูลู
+ใà¸à¸¥à¹‰
+ใคร
+ใคร่
+ใคร่ครวà¸
+ใจ
+ใจà¸à¸¥à¸²à¸‡
+ใจขุ่น
+ใจความ
+ใจคอ
+ใจง่าย
+ใจจืด
+ใจชื้น
+ใจดำ
+ใจดี
+ใจต่ำ
+ใจถึง
+ใจน้อย
+ใจบาน
+ใจบุà¸
+ใจป้ำ
+ใจà¸à¹ˆà¸­
+ใจมา
+ใจมือ
+ใจร้อน
+ใจร้าย
+ใจลอย
+ใจสูง
+ใจหาย
+ใจอ่อน
+ใจเด็ด
+ใจเติบ
+ใจเบา
+ใจเพชร
+ใจเย็น
+ใจเร็ว
+ใจเสาะ
+ใจเสีย
+ใจà¹à¸‚็ง
+ใจà¹à¸„บ
+ใจà¹à¸•à¸
+ใจà¹à¸›à¹‰à¸§
+ใจโต
+ใช่
+ใช้
+ใช้บน
+ใช้สอย
+ใช้ใบ
+ใช้ได้
+ใด
+ใต้
+ใต้ดิน
+ใต้ถุน
+ใต้เท้า
+ใน
+ในà¸à¸£à¸¡
+ในหลวง
+ในไส้
+ใบ
+ใบขน
+ใบขนุน
+ใบจอง
+ใบฎีà¸à¸²
+ใบดาล
+ใบดำ
+ใบตราส่ง
+ใบตอง
+ใบตาล
+ใบทอง
+ใบนาà¸
+ใบบอà¸
+ใบบุà¸
+ใบปà¸
+ใบปรือ
+ใบปลิว
+ใบพัด
+ใบระà¸à¸²
+ใบรับ
+ใบลา
+ใบสอ
+ใบสัจ
+ใบสั่ง
+ใบหน้า
+ใบหุ้น
+ใบเงิน
+ใบเบิà¸
+ใบà¹à¸‚็ง
+ใบà¹à¸”ง
+ใบà¹à¸—รà¸
+ใบโพ
+ใบไม้
+ใบ้
+ใà¸à¹ˆ
+ใà¸à¹ˆà¸•à¹ˆà¸³
+ใà¸à¹ˆà¸à¸±à¸™
+ใà¸à¹ˆà¸ªà¸¹à¸‡
+ใà¸à¹ˆà¹ƒà¸ˆ
+ใย
+ใยฟ้า
+ใยยอง
+ใยหิน
+ใส
+ใส่
+ใส่ยา
+ใส่ใจ
+ใส่ไฟ
+ใส่ไส้
+ใหà¸à¹ˆ
+ใหม่
+ใหลตาย
+ให้
+ให้à¸à¸²à¸£
+ให้ท่า
+ให้หา
+ไà¸
+ไà¸à¸”์
+ไà¸à¸žà¸±à¸¥
+ไà¸à¸£
+ไà¸à¸£à¸ž
+ไà¸à¸£à¸¥à¸²à¸ª
+ไà¸à¸£à¸¨à¸£
+ไà¸à¸£à¸¨à¸£à¸µ
+ไà¸à¸£à¸ªà¸£
+ไà¸à¸¥
+ไà¸à¸¥à¹‚คเจน
+ไà¸à¸¥à¹ˆ
+ไà¸à¸§
+ไà¸à¸§à¸±à¸¥
+ไà¸à¹€à¸à¸­à¸£à¹Œà¹€à¸„าน์เตอร์
+ไà¸à¹ˆ
+ไà¸à¹ˆà¸à¸­à¸¡
+ไà¸à¹ˆà¸Šà¸™
+ไà¸à¹ˆà¸™à¸²
+ไà¸à¹ˆà¸›à¹ˆà¸²
+ไà¸à¹ˆà¸Ÿà¹‰à¸²
+ไà¸à¹ˆà¹‚ห่
+ไà¸à¹ˆà¹„ห้
+ไà¸à¹‰
+ไà¸à¹Š
+ไà¸à¹Šà¸”์
+ไà¸à¹‹
+ไà¸à¹‹à¹à¸”ง
+ไข
+ไขà¸à¸£à¸°à¸”ูà¸
+ไขข้อ
+ไขควง
+ไขรา
+ไขว่
+ไขว้
+ไขว้เ
+ไขษย
+ไขสันหลัง
+ไขสือ
+ไขหู
+ไข่
+ไข่ดัน
+ไข่น้ำ
+ไข่ปลา
+ไข่มุà¸
+ไข่หิน
+ไข่à¹à¸«à¸™
+ไข้
+ไข้à¸à¸²à¸¬
+ไข้ปอดบวม
+ไข้ป่า
+ไข้พิษ
+ไข้หัว
+ไข้à¹à¸”ด
+ไข้ใจ
+ไค
+ไคยาไนต์
+ไครโอไลต์
+ไคร้
+ไคล
+ไคลคลา
+ไคลเอ็นต์
+ไคลà¹à¸¡à¸à¸‹à¹Œ
+ไคลโนคลอร์
+ไคลโนซอยไซต์
+ไคลโนà¹à¸­à¸™à¸ªà¸•à¸²à¹„ทต์
+ไคล้
+ไควรี่
+ไคà¹à¸­à¸ªà¹‚ทไลต์
+ไคโร
+ไค้
+ไง
+ไง้
+ไจ
+ไจร
+ไจ้
+ไจ้ๆ
+ไฉน
+ไฉเฉ
+ไฉไล
+ไช
+ไชนะ
+ไชย
+ไชยทิศ
+ไชยวาน
+ไชยา
+ไชยเภท
+ไชเอน
+ไชโย
+ไซ
+ไซคลาดิส
+ไซชู
+ไซต์
+ไซนัส
+ไซนาไนต์
+ไซน์
+ไซบีเรีย
+ไซปรัส
+ไซปัน
+ไซยาไนด์
+ไซรอส
+ไซรัป
+ไซร้
+ไซส์
+ไซเà¸à¸´à¸¥
+ไซเบอร์
+ไซเรน
+ไซโค
+ไซโคลน
+ไซโล
+ไซโลมิเลน
+ไซ่ง่อน
+ไซ้
+ได
+ไดนามิà¸
+ไดนาโม
+ไดนาไมต์
+ไดมอนด์
+ไดรว์
+ไดรเวอร์
+ไดร์ฟ
+ไดออปเทส
+ไดออปไซด์
+ไดอะทอไมต์
+ไดอะล็อà¸
+ไดอะล็อà¸à¸šà¹‡à¸­à¸à¸‹à¹Œ
+ไดอะล็อค
+ไดอะà¹à¸à¸£à¸¡
+ไดอัล
+ไดอาน่า
+ไดอารี
+ไดอารี่
+ไดเจสท์
+ไดเรà¸à¸•à¸£à¸´à¸à¸‹à¹Œ
+ไดเรà¸à¸—อรี
+ไดเรà¸à¸—อรี่
+ไดเร็à¸à¸—อรี
+ไดเร็คเตอร์
+ไดเร็คโทรี
+ไดเอ็ท
+ไดà¹à¸‹à¹‡à¸à¸„าไรด์
+ไดà¹à¸­à¸¥à¹€à¸¥à¸ˆ
+ไดà¹à¸­à¸ªà¸žà¸­à¸£à¹Œ
+ไดโนเสาร์
+ได้
+ได้à¸à¸²à¸£
+ได้ที
+ได้ที่
+ได้ท่า
+ได้ยิน
+ได้สติ
+ได้à¹à¸à¹ˆ
+ได้ใจ
+ไต
+ไตปลา
+ไตร
+ไตรà¸à¸¥à¸µà¹€à¸‹à¸­à¹„รด์
+ไตรตรา
+ไตรทศ
+ไตรทิพ
+ไตรปิฎà¸
+ไตรภพ
+ไตรภาคี
+ไตรภูมิ
+ไตรมาส
+ไตรมิตร
+ไตรย
+ไตรรงค์
+ไตรรัตน์
+ไตรรัตน์นาราม
+ไตรลัà¸à¸©à¸“์
+ไตรวัà¸
+ไตรสิà¸à¸‚า
+ไตรเพท
+ไตรโลà¸
+ไตร่ตรอง
+ไตเติล
+ไต่
+ไต่คู้
+ไต่ถาม
+ไต่ลวด
+ไต่สวน
+ไต่ไม้
+ไต้
+ไต้à¸à¹‹à¸‡
+ไต้à¸à¸¸à¹ˆà¸™
+ไต้หวัน
+ไต้ไฟ
+ไต๋
+ไถ
+ไถà¸à¸¥à¸š
+ไถง
+ไถดะ
+ไถนา
+ไถย
+ไถล
+ไถà¹à¸›à¸£
+ไถ่
+ไถ่ถอน
+ไถ่บาป
+ไถ้
+ไถ้à¸à¹‹à¸‡
+ไท
+ไทà¸à¸­
+ไททะโนà¹à¸¡à¸à¸™à¸µà¹„ทต์
+ไททะไนต์
+ไททันออไจต์
+ไทฟอยด์
+ไทย
+ไทยดำ
+ไทยทาน
+ไทยธรรม
+ไทยยานนท์
+ไทยรัà¸à¹„ทย
+ไทยรัà¸
+ไทยร่มเย็น
+ไทยวิจิตรศิลป์
+ไทยหลง
+ไทยไดมารู
+ไทร
+ไทรงาม
+ไทรดิไมต์
+ไทรทอง
+ไทรน้อย
+ไทรบุรี
+ไทรอยด์
+ไทรอัมฟ์
+ไทรโยค
+ไทร์
+ไทวะ
+ไทเทรต
+ไทเทเนียม
+ไทเป
+ไทà¹à¸£à¸™à¸—์
+ไท้
+ไน
+ไนจีเรีย
+ไนต์คลับ
+ไนลอน
+ไนล์
+ไนเจอร์
+ไนโตรเจน
+ไนโรบี
+ไนโอเบียม
+ไบต์
+ไบนารี
+ไบรท์
+ไบออส
+ไบเซà¸à¸‹à¹Œà¸Šà¸±à¸§à¸¥à¹Œ
+ไบเซคชัน
+ไบเบิล
+ไบโทว์ไนต์
+ไบโอไทต์
+ไบ่ๆ
+ไป
+ไปทุ่ง
+ไปป์
+ไปย
+ไปยà¸à¸²
+ไปยาล
+ไปยิà¸à¸²
+ไปรษณียบรรณ
+ไปรษณียบัตร
+ไปรษณียภัณฑ์
+ไปรษณียวัตถุ
+ไปรษณียาà¸à¸£
+ไปรษณีย์
+ไปรอา
+ไปรเวท
+ไปลาด
+ไปล่
+ไปศาจ
+ไปศาจี
+ไป่
+ไป๋
+ไผ
+ไผท
+ไผทอุดมศึà¸à¸©à¸²
+ไผ่
+ไผ่ผัง
+ไผ่สิงห์โต
+ไผ่เงิน
+ไà¸
+ไพ
+ไพà¸à¹‰à¸²
+ไพคา
+ไพจิตร
+ไพชน
+ไพฑูรย์
+ไพที
+ไพนท์
+ไพบูลย์
+ไพป๊อà¸
+ไพพรรณ
+ไพมอà¸
+ไพม้า
+ไพร
+ไพรจิตร
+ไพรชน
+ไพรฑูรย์
+ไพรที
+ไพรบึง
+ไพรมารี่
+ไพรวัน
+ไพรสัณฑ์
+ไพรส์
+ไพรอà¸à¸‹à¸µà¸™
+ไพรัช
+ไพราร์จีไรต์
+ไพรำ
+ไพริน
+ไพรี
+ไพรู
+ไพรเวต
+ไพร่
+ไพร่พล
+ไพร่สม
+ไพล
+ไพลอต
+ไพลิน
+ไพลินสนธิ
+ไพล่
+ไพศาข
+ไพศาล
+ไพศาลี
+ไพสพ
+ไพสิà¸
+ไพหาร
+ไพเพิด
+ไพเรทรัม
+ไพเราะ
+ไพเศษ
+ไพโดร
+ไพโรคลอร์
+ไพโรจน์
+ไพโรป
+ไพโรฟิลไลต์
+ไพโรมอร์ไฟต์
+ไพโรลูไซต์
+ไพไรต์
+ไพ่
+ไพ่ป๊อà¸
+ไพ่ไฟ
+ไฟ
+ไฟฉาย
+ไฟท์
+ไฟธาตุ
+ไฟนัล
+ไฟฟ้า
+ไฟฟ้าà¸à¸£à¸°à¹à¸ª
+ไฟฟ้าสถิต
+ไฟร์วอลล์
+ไฟลท์
+ไฟล์
+ไฟเบอร์
+ไฟà¹à¸Šà¹‡à¸
+ไฟà¹à¸™à¸™à¸‹à¹Œ
+ไฟโบรไลต์
+ไภริน
+ไมà¸à¸²
+ไมครอน
+ไมตรี
+ไมตรีจิต
+ไมตรีภาพ
+ไมยราบ
+ไมลิบดีนัม
+ไมล์
+ไมเà¸à¸£à¸™
+ไมเนอร์
+ไมโà¸à¸™à¸­à¸ª
+ไมโคร
+ไมโครà¸à¸£à¸±à¸¡
+ไมโครซอฟต์
+ไมโครฟิล์ม
+ไมโครมิเตอร์
+ไมโครลิตร
+ไมโครเพอร์ไทต์
+ไมโครเมตร
+ไมโครเวฟ
+ไมโครโฟน
+ไมโครไคลน์
+ไมโครไลต์
+ไม่
+ไม่ทัน
+ไม่มี
+ไม่รู้
+ไม่สู้
+ไม่ใช่
+ไม้
+ไม้à¸à¸‡
+ไม้à¸à¸§à¸²à¸”
+ไม้ดัด
+ไม้ดำ
+ไม้ตรี
+ไม้ตาย
+ไม้นวม
+ไม้บรรทัด
+ไม้ผัด
+ไม้มืด
+ไม้มือ
+ไม้ยมà¸
+ไม้ยาว
+ไม้ลอย
+ไม้วา
+ไม้สอย
+ไม้สูง
+ไม้อัด
+ไม้เอà¸
+ไม้à¹à¸à¹ˆà¸™
+ไม้à¹à¸”ง
+ไม้โท
+ไม้โพ
+ไม้โอ
+ไม้ไผ่
+ไม้ไล่
+ไย
+ไยดี
+ไยไพ
+ไยไย
+ไย่
+ไร
+ไรฟัน
+ไรย์
+ไรเฟิล
+ไร่
+ไร้
+ไลท์เตอร์
+ไลท์เวท
+ไลน์
+ไลน์เฮฟวี่เวท
+ไลน์à¹à¸¡à¸™
+ไลบรารี
+ไลบีเรีย
+ไลฟ์
+ไลมอไนต์
+ไลย
+ไลลา
+ไลออน
+ไลเซนส์
+ไลเบรริ
+ไลเลย
+ไลà¹à¸¥à¸„
+ไลไล้
+ไล่
+ไล่à¸à¸§à¸”
+ไล่น้ำ
+ไล่เลียง
+ไล่เลี่ย
+ไล้
+ไว
+ไวà¸à¸´à¸‡
+ไวà¸à¸¹à¸“à¸à¹Œ
+ไวฑูรย์
+ไวทย
+ไวทย์
+ไวท์
+ไวนเตย
+ไวน์
+ไวพจน์
+ไวยาà¸à¸£à¸“์
+ไวยาวัจà¸à¸£
+ไวยาวัจมัย
+ไวรัส
+ไววรรณ
+ไวศย
+ไวษณพ
+ไวเบรชั่น
+ไวโอมิง
+ไวโอลิน
+ไวโอเล็ต
+ไวไฟ
+ไว้
+ไว้ตัว
+ไว้ยศ
+ไว้ลาย
+ไว้อาลัย
+ไว้ใจ
+ไศล
+ไศวะ
+ไส
+ไสย
+ไสยศาสตร์
+ไสยา
+ไสยาสน์
+ไสยเวท
+ไสร้
+ไสว
+ไสวตาà¹à¸•à¸‡
+ไสวสุขสม
+ไสวสุวรรณ
+ไสหัว
+ไส้
+ไส้à¸à¸£à¸­à¸
+ไส้ตัน
+ไส้ติ่ง
+ไส้ศึà¸
+ไส้อั่ว
+ไส้เดือน
+ไส้ไà¸à¹ˆ
+ไห
+ไหซอง
+ไหน
+ไหปลาร้า
+ไหม
+ไหมทอง
+ไหม้
+ไหรณย์
+ไหรัณย์
+ไหร่
+ไหล
+ไหลน้ำ
+ไหล่
+ไหล่ทวีป
+ไหว
+ไหว้
+ไหหลำ
+ไห่
+ไห้
+ไอ
+ไอคอน
+ไอซà¹à¸¥à¸™à¸”์
+ไอดาโฮ
+ไอที
+ไอน์สไตเนียม
+ไอบีเอ็ม
+ไอพ่น
+ไอยรา
+ไอยเรศ
+ไอรอน
+ไอราวัณ
+ไอริช
+ไอร์à¹à¸¥à¸™à¸”์
+ไอร์à¹à¸¥à¸™à¸”์เหนือ
+ไอร์à¹à¸¥à¸™à¸”์ใต้
+ไอวอรีโคสต์
+ไอศà¸à¸£à¸µà¸¡
+ไอศวรรย์
+ไอศูรย์
+ไอษสวรรค์
+ไอออน
+ไอออส
+ไอโซโทป
+ไอโดเครส
+ไอโอดีน
+ไอโอวา
+ไอโอเนียน
+ไอ้
+ไฮดรา
+ไฮตี
+ไฮยาซินท์
+ไฮยาไลต์
+ไฮเทค
+ไฮเพอร์สทีน
+ไฮโà¸à¸£à¸¡à¸´à¹€à¸•à¸­à¸£à¹Œ
+ไฮโดรคาร์บอน
+ไฮโดรซินไคต์
+ไฮโดรมิเตอร์
+ไฮโดรเจน
+ไฮโดรเจนซัลไฟด์
+ไฮโดรเจนเพอร์ออà¸à¹„ซด์
+ไฮโล
+ไฮไฟ
diff --git a/Build/source/libs/icu-xetex/data/brkitr/word.txt b/Build/source/libs/icu-xetex/data/brkitr/word.txt
index 57c3aced82d..7257f94a99f 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/word.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/word.txt
@@ -1,12 +1,14 @@
#
-# Copyright (C) 2002-2005, International Business Machines Corporation
+# Copyright (C) 2002-2006, International Business Machines Corporation
# and others. All Rights Reserved.
#
# file: word.txt
#
# ICU Word Break Rules
# See Unicode Standard Annex #29.
-# These rules are based on Unicode Version 4.1
+# These rules are based on Unicode Version 5.0 0
+# Includes post Unicode 5.0 change to treat Japanese half width voicing marks
+# as Extend
#
# Note: Updates to word.txt will usually need to be merged into
# word_POSIX.txt and word_ja.txt also.
@@ -24,8 +26,9 @@
# Character Class Definitions.
#
+$VoiceMarks = [\uff9e\uff9f];
$Format = [\p{Word_Break = Format}];
-$Katakana = [\p{Word_Break = Katakana}];
+$Katakana = [\p{Word_Break = Katakana}-$VoiceMarks];
$ALetter = [\p{Word_Break = ALetter}];
$MidLetter = [\p{Word_Break = MidLetter}];
$MidNum = [\p{Word_Break = MidNum}];
@@ -35,31 +38,52 @@ $ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
$CR = \u000d;
$LF = \u000a;
-$Extend = [\p{Grapheme_Cluster_Break = Extend}];
+$Extend = [\p{Grapheme_Cluster_Break = Extend}$VoiceMarks];
$Control = [\p{Grapheme_Cluster_Break = Control}];
-$KatakanaEx = $Katakana $Extend*;
-$ALetterEx = $ALetter $Extend*;
-$MidLetterEx = $MidLetter $Extend*;
-$MidNumEx = $MidNum $Extend*;
-$NumericEx = $Numeric $Extend*;
-$ExtendNumLetEx = $ExtendNumLet $Extend*;
+# Dictionary character set, for triggering language-based break engines. Currently
+# limited to LineBreak=Complex_Context. Note that this set only works in Unicode
+# 5.0 or later as the definition of Complex_Context was corrected to include all
+# characters requiring dictionary break.
+
+$dictionary = [:LineBreak = Complex_Context:];
+$ALetterPlus = [$ALetter [$dictionary-$Extend-$Control]];
+
+
+#
+# Rules 3 Grapheme Clusters behave like their first char.
+# Rule 4 Ignore trailing Format characters (Also see note in TR 29)
+#
+$KatakanaEx = $Katakana ($Extend | $Format)*;
+$ALetterEx = $ALetterPlus ($Extend | $Format)*;
+$MidLetterEx = $MidLetter ($Extend | $Format)*;
+$MidNumEx = $MidNum ($Extend | $Format)*;
+$NumericEx = $Numeric ($Extend | $Format)*;
+$ExtendNumLetEx = $ExtendNumLet ($Extend | $Format)*;
$Hiragana = [:Hiragana:];
$Ideographic = [:IDEOGRAPHIC:];
-$HiraganaEx = $Hiragana $Extend*;
-$IdeographicEx = $Ideographic $Extend*;
+$HiraganaEx = $Hiragana ($Extend | $Format)*;
+$IdeographicEx = $Ideographic ($Extend | $Format)*;
## -------------------------------------------------
!!forward;
-# Rule 3 - don't break grapheme clusters.
+# Rule 3 - CR x LF
# see character breaks.
-$CR $LF;
-[^$Control $CR $LF] $Extend+;
+$CR $LF ($Extend | $Format)*;
+
+# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
+# of a region of Text. The rule here comes into play when the start of text
+# begins with a group of Format chars, or with a "word" consisting of a single
+# char that is not in any of the listed word break categories followed by
+# format char(s).
+.? ($Extend | $Format)+;
+
+
$NumericEx {100};
$ALetterEx {200};
$KatakanaEx {300};
@@ -68,14 +92,14 @@ $IdeographicEx {400};
# rule 5
-$ALetterEx $Format* $ALetterEx {200};
+$ALetterEx $ALetterEx {200};
# rule 6 and 7
-$ALetterEx $Format* $MidLetterEx $Format* $ALetterEx {200};
+$ALetterEx $MidLetterEx $ALetterEx {200};
# rule 8
-$NumericEx $Format* $NumericEx {100};
+$NumericEx $NumericEx {100};
# rule 9
@@ -83,26 +107,26 @@ $ALetterEx $Format* $NumericEx {200};
# rule 10
-$NumericEx $Format* $ALetterEx {200};
+$NumericEx $ALetterEx {200};
# rule 11 and 12
-$NumericEx $Format* $MidNumEx $Format* $NumericEx {100};
+$NumericEx $MidNumEx $NumericEx {100};
# rule 13
-$KatakanaEx $Format* $KatakanaEx {300};
+$KatakanaEx $KatakanaEx {300};
# rule 13a/b
-$ALetterEx $Format* $ExtendNumLetEx {200}; # (13a)
-$NumericEx $Format* $ExtendNumLetEx {100}; # (13a)
-$KatakanaEx $Format* $ExtendNumLetEx {300}; # (13a)
-$ExtendNumLetEx $Format* $ExtendNumLetEx{200}; # (13a)
+$ALetterEx $ExtendNumLetEx {200}; # (13a)
+$NumericEx $ExtendNumLetEx {100}; # (13a)
+$KatakanaEx $ExtendNumLetEx {300}; # (13a)
+$ExtendNumLetEx $ExtendNumLetEx{200}; # (13a)
-$ExtendNumLetEx $Format* $ALetterEx {200}; # (13b)
-$ExtendNumLetEx $Format* $NumericEx {100}; # (13b)
-$ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
+$ExtendNumLetEx $ALetterEx {200}; # (13b)
+$ExtendNumLetEx $NumericEx {100}; # (13b)
+$ExtendNumLetEx $KatakanaEx {300}; # (13b)
@@ -110,101 +134,81 @@ $ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
!!reverse;
-$BackALetterEx = $Extend* $ALetter;
-$BackNumericEx = $Extend* $Numeric;
-$BackMidNumEx = $Extend* $MidNum;
-$BackMidLetterEx = $Extend* $MidLetter;
-$BackKatakanaEx = $Extend* $Katakana;
-$BackExtendNumLetEx= $Extend* $ExtendNumLet;
-
-$LF $CR;
+$BackALetterEx = ($Format | $Extend)* $ALetterPlus;
+$BackNumericEx = ($Format | $Extend)* $Numeric;
+$BackMidNumEx = ($Format | $Extend)* $MidNum;
+$BackMidLetterEx = ($Format | $Extend)* $MidLetter;
+$BackKatakanaEx = ($Format | $Extend)* $Katakana;
+$BackExtendNumLetEx= ($Format | $Extend)* $ExtendNumLet;
-# see character breaks
+# rule 3
+($Format | $Extend)* $LF $CR;
-$Extend* [^$Control $CR $LF];
+# rule 4
+($Format | $Extend)* .?;
# rule 5
-$BackALetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackALetterEx;
# rule 6 and 7
-$BackALetterEx $Format* $BackMidLetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackMidLetterEx $BackALetterEx;
# rule 8
-$BackNumericEx $Format* $BackNumericEx;
+$BackNumericEx $BackNumericEx;
# rule 9
-$BackNumericEx $Format* $BackALetterEx;
+$BackNumericEx $BackALetterEx;
# rule 10
-$BackALetterEx $Format* $BackNumericEx;
+$BackALetterEx $BackNumericEx;
# rule 11 and 12
-$BackNumericEx $Format* $BackMidNumEx $Format* $BackNumericEx;
+$BackNumericEx $BackMidNumEx $BackNumericEx;
# rule 13
-$BackKatakanaEx $Format* $BackKatakanaEx;
+$BackKatakanaEx $BackKatakanaEx;
# rules 13 a/b
#
-($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $Format* $BackExtendNumLetEx;
-$BackExtendNumLetEx $Format* ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
+($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $BackExtendNumLetEx;
+$BackExtendNumLetEx ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
## -------------------------------------------------
!!safe_reverse;
# rule 3
-$Extend+ [^$Extend];
-$Extend+; # comes into play when buffer _begins_ with an $Extend+.
-
-# rule 4
-$Format+ $BackALetterEx;
-$Format+ $BackNumericEx;
-$Format+ $BackMidLetterEx;
-$Format+ $BackMidNumEx;
-$Format+ $BackKatakanaEx;
-$Format+ $BackExtendNumLetEx;
-
+($Extend | $Format)+ .?;
# rule 6
-$MidLetter $Format* $BackALetterEx;
+$MidLetter $BackALetterEx;
# rule 11
-$MidNum $Format* $BackNumericEx;
+$MidNum $BackNumericEx;
+
+# For dictionary-based break
+$dictionary $dictionary;
## -------------------------------------------------
!!safe_forward;
-# rule 3
-$Extend+;
-
# rule 4
-$Extend* $Format+ $ALetterEx;
-$Extend* $Format+ $NumericEx;
-$Extend* $Format+ $MidLetterEx;
-$Extend* $Format+ $MidNumEx;
-$Extend* $Format+ $KatakanaEx;
-$Extend* $Format+ $ExtendNumLetEx;
-
-$Extend+ $Format* $ALetterEx;
-$Extend+ $Format* $NumericEx;
-$Extend+ $Format* $MidLetterEx;
-$Extend+ $Format* $MidNumEx;
-$Extend+ $Format* $KatakanaEx;
-$Extend+ $Format* $ExtendNumLetEx;
+($Extend | $Format)+ .?;
# rule 6
-$MidLetterEx $Format* $ALetterEx;
+$MidLetterEx $ALetterEx;
# rule 11
-$MidNumEx $Format* $NumericEx;
+$MidNumEx $NumericEx;
+# For dictionary-based break
+$dictionary $dictionary;
diff --git a/Build/source/libs/icu-xetex/data/brkitr/word_POSIX.txt b/Build/source/libs/icu-xetex/data/brkitr/word_POSIX.txt
index 9ee49c7858e..c62ce5c975a 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/word_POSIX.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/word_POSIX.txt
@@ -1,14 +1,17 @@
#
-# Copyright (C) 2002-2005, International Business Machines Corporation
+# Copyright (C) 2002-2006, International Business Machines Corporation
# and others. All Rights Reserved.
#
# file: word.txt
#
# ICU Word Break Rules, POSIX locale.
# See Unicode Standard Annex #29.
-# These rules are based on Unicode Version 4.1, with
-# the modification that the ':' character is removed from the MidLetter category.
+# These rules are based on Unicode Version 5.0 0
+# Includes post Unicode 5.0 change to treat Japanese half width voicing marks
+# as Extend
#
+# Note: Updates to word.txt will usually need to be merged into
+# word_POSIX.txt and word_ja.txt also.
##############################################################################
#
@@ -23,8 +26,9 @@
# Character Class Definitions.
#
+$VoiceMarks = [\uff9e\uff9f];
$Format = [\p{Word_Break = Format}];
-$Katakana = [\p{Word_Break = Katakana}];
+$Katakana = [\p{Word_Break = Katakana}-$VoiceMarks];
$ALetter = [\p{Word_Break = ALetter}];
$MidLetter = [\p{Word_Break = MidLetter} - [ \:]];
$MidNum = [\p{Word_Break = MidNum}];
@@ -34,31 +38,52 @@ $ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
$CR = \u000d;
$LF = \u000a;
-$Extend = [\p{Grapheme_Cluster_Break = Extend}];
+$Extend = [\p{Grapheme_Cluster_Break = Extend}$VoiceMarks];
$Control = [\p{Grapheme_Cluster_Break = Control}];
-$KatakanaEx = $Katakana $Extend*;
-$ALetterEx = $ALetter $Extend*;
-$MidLetterEx = $MidLetter $Extend*;
-$MidNumEx = $MidNum $Extend*;
-$NumericEx = $Numeric $Extend*;
-$ExtendNumLetEx = $ExtendNumLet $Extend*;
+# Dictionary character set, for triggering language-based break engines. Currently
+# limited to LineBreak=Complex_Context. Note that this set only works in Unicode
+# 5.0 or later as the definition of Complex_Context was corrected to include all
+# characters requiring dictionary break.
+
+$dictionary = [:LineBreak = Complex_Context:];
+$ALetterPlus = [$ALetter [$dictionary-$Extend-$Control]];
+
+
+#
+# Rules 3 Grapheme Clusters behave like their first char.
+# Rule 4 Ignore trailing Format characters (Also see note in TR 29)
+#
+$KatakanaEx = $Katakana ($Extend | $Format)*;
+$ALetterEx = $ALetterPlus ($Extend | $Format)*;
+$MidLetterEx = $MidLetter ($Extend | $Format)*;
+$MidNumEx = $MidNum ($Extend | $Format)*;
+$NumericEx = $Numeric ($Extend | $Format)*;
+$ExtendNumLetEx = $ExtendNumLet ($Extend | $Format)*;
$Hiragana = [:Hiragana:];
$Ideographic = [:IDEOGRAPHIC:];
-$HiraganaEx = $Hiragana $Extend*;
-$IdeographicEx = $Ideographic $Extend*;
+$HiraganaEx = $Hiragana ($Extend | $Format)*;
+$IdeographicEx = $Ideographic ($Extend | $Format)*;
## -------------------------------------------------
!!forward;
-# Rule 3 - don't break grapheme clusters.
+# Rule 3 - CR x LF
# see character breaks.
-$CR $LF;
-[^$Control $CR $LF] $Extend+;
+$CR $LF ($Extend | $Format)*;
+
+# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
+# of a region of Text. The rule here comes into play when the start of text
+# begins with a group of Format chars, or with a "word" consisting of a single
+# char that is not in any of the listed word break categories followed by
+# format char(s).
+.? ($Extend | $Format)+;
+
+
$NumericEx {100};
$ALetterEx {200};
$KatakanaEx {300};
@@ -67,14 +92,14 @@ $IdeographicEx {400};
# rule 5
-$ALetterEx $Format* $ALetterEx {200};
+$ALetterEx $ALetterEx {200};
# rule 6 and 7
-$ALetterEx $Format* $MidLetterEx $Format* $ALetterEx {200};
+$ALetterEx $MidLetterEx $ALetterEx {200};
# rule 8
-$NumericEx $Format* $NumericEx {100};
+$NumericEx $NumericEx {100};
# rule 9
@@ -82,26 +107,26 @@ $ALetterEx $Format* $NumericEx {200};
# rule 10
-$NumericEx $Format* $ALetterEx {200};
+$NumericEx $ALetterEx {200};
# rule 11 and 12
-$NumericEx $Format* $MidNumEx $Format* $NumericEx {100};
+$NumericEx $MidNumEx $NumericEx {100};
# rule 13
-$KatakanaEx $Format* $KatakanaEx {300};
+$KatakanaEx $KatakanaEx {300};
# rule 13a/b
-$ALetterEx $Format* $ExtendNumLetEx {200}; # (13a)
-$NumericEx $Format* $ExtendNumLetEx {100}; # (13a)
-$KatakanaEx $Format* $ExtendNumLetEx {300}; # (13a)
-$ExtendNumLetEx $Format* $ExtendNumLetEx{200}; # (13a)
+$ALetterEx $ExtendNumLetEx {200}; # (13a)
+$NumericEx $ExtendNumLetEx {100}; # (13a)
+$KatakanaEx $ExtendNumLetEx {300}; # (13a)
+$ExtendNumLetEx $ExtendNumLetEx{200}; # (13a)
-$ExtendNumLetEx $Format* $ALetterEx {200}; # (13b)
-$ExtendNumLetEx $Format* $NumericEx {100}; # (13b)
-$ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
+$ExtendNumLetEx $ALetterEx {200}; # (13b)
+$ExtendNumLetEx $NumericEx {100}; # (13b)
+$ExtendNumLetEx $KatakanaEx {300}; # (13b)
@@ -109,101 +134,81 @@ $ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
!!reverse;
-$BackALetterEx = $Extend* $ALetter;
-$BackNumericEx = $Extend* $Numeric;
-$BackMidNumEx = $Extend* $MidNum;
-$BackMidLetterEx = $Extend* $MidLetter;
-$BackKatakanaEx = $Extend* $Katakana;
-$BackExtendNumLetEx= $Extend* $ExtendNumLet;
-
-$LF $CR;
+$BackALetterEx = ($Format | $Extend)* $ALetterPlus;
+$BackNumericEx = ($Format | $Extend)* $Numeric;
+$BackMidNumEx = ($Format | $Extend)* $MidNum;
+$BackMidLetterEx = ($Format | $Extend)* $MidLetter;
+$BackKatakanaEx = ($Format | $Extend)* $Katakana;
+$BackExtendNumLetEx= ($Format | $Extend)* $ExtendNumLet;
-# see character breaks
+# rule 3
+($Format | $Extend)* $LF $CR;
-$Extend* [^$Control $CR $LF];
+# rule 4
+($Format | $Extend)* .?;
# rule 5
-$BackALetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackALetterEx;
# rule 6 and 7
-$BackALetterEx $Format* $BackMidLetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackMidLetterEx $BackALetterEx;
# rule 8
-$BackNumericEx $Format* $BackNumericEx;
+$BackNumericEx $BackNumericEx;
# rule 9
-$BackNumericEx $Format* $BackALetterEx;
+$BackNumericEx $BackALetterEx;
# rule 10
-$BackALetterEx $Format* $BackNumericEx;
+$BackALetterEx $BackNumericEx;
# rule 11 and 12
-$BackNumericEx $Format* $BackMidNumEx $Format* $BackNumericEx;
+$BackNumericEx $BackMidNumEx $BackNumericEx;
# rule 13
-$BackKatakanaEx $Format* $BackKatakanaEx;
+$BackKatakanaEx $BackKatakanaEx;
# rules 13 a/b
#
-($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $Format* $BackExtendNumLetEx;
-$BackExtendNumLetEx $Format* ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
+($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $BackExtendNumLetEx;
+$BackExtendNumLetEx ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
## -------------------------------------------------
!!safe_reverse;
# rule 3
-$Extend+ [^$Extend];
-$Extend+; # comes into play when buffer _begins_ with an $Extend+.
-
-# rule 4
-$Format+ $BackALetterEx;
-$Format+ $BackNumericEx;
-$Format+ $BackMidLetterEx;
-$Format+ $BackMidNumEx;
-$Format+ $BackKatakanaEx;
-$Format+ $BackExtendNumLetEx;
-
+($Extend | $Format)+ .?;
# rule 6
-$MidLetter $Format* $BackALetterEx;
+$MidLetter $BackALetterEx;
# rule 11
-$MidNum $Format* $BackNumericEx;
+$MidNum $BackNumericEx;
+
+# For dictionary-based break
+$dictionary $dictionary;
## -------------------------------------------------
!!safe_forward;
-# rule 3
-$Extend+;
-
# rule 4
-$Extend* $Format+ $ALetterEx;
-$Extend* $Format+ $NumericEx;
-$Extend* $Format+ $MidLetterEx;
-$Extend* $Format+ $MidNumEx;
-$Extend* $Format+ $KatakanaEx;
-$Extend* $Format+ $ExtendNumLetEx;
-
-$Extend+ $Format* $ALetterEx;
-$Extend+ $Format* $NumericEx;
-$Extend+ $Format* $MidLetterEx;
-$Extend+ $Format* $MidNumEx;
-$Extend+ $Format* $KatakanaEx;
-$Extend+ $Format* $ExtendNumLetEx;
+($Extend | $Format)+ .?;
# rule 6
-$MidLetterEx $Format* $ALetterEx;
+$MidLetterEx $ALetterEx;
# rule 11
-$MidNumEx $Format* $NumericEx;
+$MidNumEx $NumericEx;
+# For dictionary-based break
+$dictionary $dictionary;
diff --git a/Build/source/libs/icu-xetex/data/brkitr/word_ja.txt b/Build/source/libs/icu-xetex/data/brkitr/word_ja.txt
index 7d80446d0c9..a8bafa35ce0 100644
--- a/Build/source/libs/icu-xetex/data/brkitr/word_ja.txt
+++ b/Build/source/libs/icu-xetex/data/brkitr/word_ja.txt
@@ -1,15 +1,17 @@
#
-# Copyright (C) 2002-2005, International Business Machines Corporation
+# Copyright (C) 2002-2006, International Business Machines Corporation
# and others. All Rights Reserved.
#
# file: word_ja.txt
#
# ICU Word Break Rules
# See Unicode Standard Annex #29.
-# These rules are based on Unicode Version 4.1
+# These rules are based on Unicode Version 5.0 0
+# Includes post Unicode 5.0 change to treat Japanese half width voicing marks
+# as Extend
#
# Note: Updates to word.txt will usually need to be merged into
-# word_POSIX.txt and word+ja.txt also.
+# word_POSIX.txt and word_ja.txt also.
##############################################################################
#
@@ -24,8 +26,9 @@
# Character Class Definitions.
#
+$VoiceMarks = [\uff9e\uff9f];
$Format = [\p{Word_Break = Format}];
-$Katakana = [\p{Word_Break = Katakana}];
+$Katakana = [\p{Word_Break = Katakana}-$VoiceMarks];
$ALetter = [\p{Word_Break = ALetter}];
$MidLetter = [\p{Word_Break = MidLetter}];
$MidNum = [\p{Word_Break = MidNum}];
@@ -35,31 +38,52 @@ $ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
$CR = \u000d;
$LF = \u000a;
-$Extend = [\p{Grapheme_Cluster_Break = Extend}];
+$Extend = [\p{Grapheme_Cluster_Break = Extend}$VoiceMarks];
$Control = [\p{Grapheme_Cluster_Break = Control}];
-$KatakanaEx = $Katakana $Extend*;
-$ALetterEx = $ALetter $Extend*;
-$MidLetterEx = $MidLetter $Extend*;
-$MidNumEx = $MidNum $Extend*;
-$NumericEx = $Numeric $Extend*;
-$ExtendNumLetEx = $ExtendNumLet $Extend*;
+# Dictionary character set, for triggering language-based break engines. Currently
+# limited to LineBreak=Complex_Context. Note that this set only works in Unicode
+# 5.0 or later as the definition of Complex_Context was corrected to include all
+# characters requiring dictionary break.
+
+$dictionary = [:LineBreak = Complex_Context:];
+$ALetterPlus = [$ALetter [$dictionary-$Extend-$Control]];
+
+
+#
+# Rules 3 Grapheme Clusters behave like their first char.
+# Rule 4 Ignore trailing Format characters (Also see note in TR 29)
+#
+$KatakanaEx = $Katakana ($Extend | $Format)*;
+$ALetterEx = $ALetterPlus ($Extend | $Format)*;
+$MidLetterEx = $MidLetter ($Extend | $Format)*;
+$MidNumEx = $MidNum ($Extend | $Format)*;
+$NumericEx = $Numeric ($Extend | $Format)*;
+$ExtendNumLetEx = $ExtendNumLet ($Extend | $Format)*;
$Hiragana = [:Hiragana:];
$Ideographic = [:IDEOGRAPHIC:];
-$HiraganaEx = $Hiragana $Extend*;
-$IdeographicEx = $Ideographic $Extend*;
+$HiraganaEx = $Hiragana ($Extend | $Format)*;
+$IdeographicEx = $Ideographic ($Extend | $Format)*;
## -------------------------------------------------
!!forward;
-# Rule 3 - don't break grapheme clusters.
+# Rule 3 - CR x LF
# see character breaks.
-$CR $LF;
-[^$Control $CR $LF] $Extend+;
+$CR $LF ($Extend | $Format)*;
+
+# Rule 4 - ignore Format and Extend characters, except when they appear at the beginning
+# of a region of Text. The rule here comes into play when the start of text
+# begins with a group of Format chars, or with a "word" consisting of a single
+# char that is not in any of the listed word break categories followed by
+# format char(s).
+.? ($Extend | $Format)+;
+
+
$NumericEx {100};
$ALetterEx {200};
$KatakanaEx {300};
@@ -68,14 +92,14 @@ $IdeographicEx {400};
# rule 5
-$ALetterEx $Format* $ALetterEx {200};
+$ALetterEx $ALetterEx {200};
# rule 6 and 7
-$ALetterEx $Format* $MidLetterEx $Format* $ALetterEx {200};
+$ALetterEx $MidLetterEx $ALetterEx {200};
# rule 8
-$NumericEx $Format* $NumericEx {100};
+$NumericEx $NumericEx {100};
# rule 9
@@ -83,28 +107,28 @@ $ALetterEx $Format* $NumericEx {200};
# rule 10
-$NumericEx $Format* $ALetterEx {200};
+$NumericEx $ALetterEx {200};
# rule 11 and 12
-$NumericEx $Format* $MidNumEx $Format* $NumericEx {100};
+$NumericEx $MidNumEx $NumericEx {100};
# rule 13
-$KatakanaEx $Format* $KatakanaEx {300};
-$HiraganaEx $Format* $HiraganaEx {300};
-$IdeographicEx $Format* $IdeographicEx {400};
+$KatakanaEx $KatakanaEx {300};
+$HiraganaEx $HiraganaEx {300};
+$IdeographicEx $IdeographicEx {400};
# rule 13a/b
-$ALetterEx $Format* $ExtendNumLetEx {200}; # (13a)
-$NumericEx $Format* $ExtendNumLetEx {100}; # (13a)
-$KatakanaEx $Format* $ExtendNumLetEx {300}; # (13a)
-$ExtendNumLetEx $Format* $ExtendNumLetEx{200}; # (13a)
+$ALetterEx $ExtendNumLetEx {200}; # (13a)
+$NumericEx $ExtendNumLetEx {100}; # (13a)
+$KatakanaEx $ExtendNumLetEx {300}; # (13a)
+$ExtendNumLetEx $ExtendNumLetEx{200}; # (13a)
-$ExtendNumLetEx $Format* $ALetterEx {200}; # (13b)
-$ExtendNumLetEx $Format* $NumericEx {100}; # (13b)
-$ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
+$ExtendNumLetEx $ALetterEx {200}; # (13b)
+$ExtendNumLetEx $NumericEx {100}; # (13b)
+$ExtendNumLetEx $KatakanaEx {300}; # (13b)
@@ -112,111 +136,85 @@ $ExtendNumLetEx $Format* $KatakanaEx {300}; # (13b)
!!reverse;
-$BackALetterEx = $Extend* $ALetter;
-$BackNumericEx = $Extend* $Numeric;
-$BackMidNumEx = $Extend* $MidNum;
-$BackMidLetterEx = $Extend* $MidLetter;
-$BackKatakanaEx = $Extend* $Katakana;
-$BackHiraganaEx = $Extend* $Hiragana;
-$BackIdeographicEx = $Extend* $Ideographic;
-$BackExtendNumLetEx= $Extend* $ExtendNumLet;
-
-$LF $CR;
+$BackALetterEx = ($Format | $Extend)* $ALetterPlus;
+$BackNumericEx = ($Format | $Extend)* $Numeric;
+$BackMidNumEx = ($Format | $Extend)* $MidNum;
+$BackMidLetterEx = ($Format | $Extend)* $MidLetter;
+$BackKatakanaEx = ($Format | $Extend)* $Katakana;
+$BackHiraganaEx = ($Format | $Extend)* $Hiragana;
+$BackIdeographicEx = ($Format | $Extend)* $Ideographic;
+$BackExtendNumLetEx= ($Format | $Extend)* $ExtendNumLet;
-# see character breaks
+# rule 3
+($Format | $Extend)* $LF $CR;
-$Extend* [^$Control $CR $LF];
+# rule 4
+($Format | $Extend)* .?;
# rule 5
-$BackALetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackALetterEx;
# rule 6 and 7
-$BackALetterEx $Format* $BackMidLetterEx $Format* $BackALetterEx;
+$BackALetterEx $BackMidLetterEx $BackALetterEx;
# rule 8
-$BackNumericEx $Format* $BackNumericEx;
+$BackNumericEx $BackNumericEx;
# rule 9
-$BackNumericEx $Format* $BackALetterEx;
+$BackNumericEx $BackALetterEx;
# rule 10
-$BackALetterEx $Format* $BackNumericEx;
+$BackALetterEx $BackNumericEx;
# rule 11 and 12
-$BackNumericEx $Format* $BackMidNumEx $Format* $BackNumericEx;
+$BackNumericEx $BackMidNumEx $BackNumericEx;
# rule 13
-$BackKatakanaEx $Format* $BackKatakanaEx;
-$BackHiraganaEx $Format* $BackHiraganaEx;
-$BackIdeographicEx $Format* $BackIdeographicEx;
+$BackKatakanaEx $BackKatakanaEx;
+$BackHiraganaEx $BackHiraganaEx;
+$BackIdeographicEx $BackIdeographicEx;
# rules 13 a/b
#
-($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $Format* $BackExtendNumLetEx;
-$BackExtendNumLetEx $Format* ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
+($BackALetterEx | $BackNumericEx | $BackKatakanaEx | $BackExtendNumLetEx) $BackExtendNumLetEx;
+$BackExtendNumLetEx ($BackALetterEx | $BackNumericEx | $BackKatakanaEx);
## -------------------------------------------------
!!safe_reverse;
# rule 3
-$Extend+ [^$Extend];
-$Extend+; # comes into play when buffer _begins_ with an $Extend+.
-
-# rule 4
-$Format+ $BackALetterEx;
-$Format+ $BackNumericEx;
-$Format+ $BackMidLetterEx;
-$Format+ $BackMidNumEx;
-$Format+ $BackKatakanaEx;
-$Format+ $BackHiraganaEx;
-$Format+ $BackIdeographicEx;
-$Format+ $BackExtendNumLetEx;
-
+($Extend | $Format)+ .?;
# rule 6
-$MidLetter $Format* $BackALetterEx;
+$MidLetter $BackALetterEx;
# rule 11
-$MidNum $Format* $BackNumericEx;
+$MidNum $BackNumericEx;
+
+# For dictionary-based break
+$dictionary $dictionary;
## -------------------------------------------------
!!safe_forward;
-# rule 3
-$Extend+;
-
# rule 4
-$Extend* $Format+ $ALetterEx;
-$Extend* $Format+ $NumericEx;
-$Extend* $Format+ $MidLetterEx;
-$Extend* $Format+ $MidNumEx;
-$Extend* $Format+ $KatakanaEx;
-$Extend* $Format+ $HiraganaEx;
-$Extend* $Format+ $IdeographicEx;
-$Extend* $Format+ $ExtendNumLetEx;
-
-$Extend+ $Format* $ALetterEx;
-$Extend+ $Format* $NumericEx;
-$Extend+ $Format* $MidLetterEx;
-$Extend+ $Format* $MidNumEx;
-$Extend+ $Format* $KatakanaEx;
-$Extend+ $Format* $HiraganaEx;
-$Extend+ $Format* $IdeographicEx;
-$Extend+ $Format* $ExtendNumLetEx;
+($Extend | $Format)+ .?;
# rule 6
-$MidLetterEx $Format* $ALetterEx;
+$MidLetterEx $ALetterEx;
# rule 11
-$MidNumEx $Format* $NumericEx;
+$MidNumEx $NumericEx;
+# For dictionary-based break
+$dictionary $dictionary;
diff --git a/Build/source/libs/icu-xetex/data/brkitr/word_th.txt b/Build/source/libs/icu-xetex/data/brkitr/word_th.txt
deleted file mode 100644
index b33f6e72dbc..00000000000
--- a/Build/source/libs/icu-xetex/data/brkitr/word_th.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2002-2005, International Business Machines Corporation and
-# others. All Rights Reserved.
-#
-# word.txt Word Breaking Rules for ICU Rules Based Break Iterator.
-#
-# TODO: Shift this over to being based on the current default (non-Thai)
-# word rules, including exact reverse rules. Postponed
-# because of interactions with dictionary implementation.
-
-
-$Katakana = [\p{Word_Break = Katakana}];
-$ALetter = [\p{Word_Break = ALetter}];
-$MidLetter = [\p{Word_Break = MidLetter}];
-$Numeric = [\p{Line_Break = Numeric}];
-$MidNum = [\p{Word_Break = MidNum}];
-$ExtendNumLet = [\p{Word_Break = ExtendNumLet}];
-
-$Hiragana = [\p{Hiragana}];
-
-$Control = [^\p{Grapheme_Cluster_Break = Control}];
-$Extend = [\p{Grapheme_Cluster_Break = Extend}];
-$ALetterEx = $ALetter $Extend*;
-$NumericEx = $Numeric $Extend*;
-$MidLetterEx = $MidLetter $Extend*;
-$MidNumEx = $MidNum $Extend*;
-$ExtendNumLetEx = $ExtendNumLet $Extend*;
-
-
-
-#
-# Thai Dictionary Related Rules. Identify runs that will be subdivided into words
-# using the dictionary.
-#
-$dictionary = [\u0e01-\u0e2e \u0e30-\u0e3a \u0e40-\u0e44 \u0e47-\u0e4e]; # this rule breaks the iterator with mixed Thai and English
-$paiyannoi = [\u0e2f];
-$maiyamok = [\u0e46];
-$thai_etc = $paiyannoi \u0e25 $paiyannoi;
-
-
-$dictionary+ ($paiyannoi? $maiyamok)?;
-$dictionary+ $paiyannoi / ([^\u0e25 $maiyamok $Extend] | \u0e25[^$paiyannoi $Extend]);
-$thai_etc;
-
-
-#
-# The Big Rule. Gloms Non-Thai words together.
-#
-$NumericClump = $NumericEx ($MidNumEx? $NumericEx)*;
-$AlphaClump = $ALetterEx ($MidLetterEx? $ALetterEx)*;
-($AlphaClump | $NumericClump | $ExtendNumLetEx)+;
-
-#
-# Lesser rules
-#
-($Hiragana $Extend*)*;
-($Katakana $Extend*)*;
-[^$Control] $Extend*;
-\r\n;
-.;
-
-#
-# Reverse Rules. Back up over any of the chars that can group together.
-# (Reverse rules do not need to be exact; they can back up a bit too far,
-# but must back up at least enough.)
-#
-! ( $ALetter | $MidLetter | $Numeric | $ExtendNumLet | $MidNum | $Extend )*;
-! ($Hiragana | $Extend)*;
-! ($Katakana | $Extend)*;
-! $Extend* .;
-! \n\r;
-
-! ($dictionary | $paiyannoi | $maiyamok | \u0e25)*;
diff --git a/Build/source/libs/icu-xetex/data/build.xml b/Build/source/libs/icu-xetex/data/build.xml
new file mode 100644
index 00000000000..8677deb9f65
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/build.xml
@@ -0,0 +1,283 @@
+<!DOCTYPE project [
+ <!ENTITY icu-config SYSTEM "file:./icu-config.xml">
+]>
+<!--
+/*
+*******************************************************************************
+* Copyright (C) 2005-2006, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+-->
+<project name="icu-build" default="all" basedir=".">
+ <target name="init">
+ <tstamp/>
+
+ <!-- Load environment variables -->
+ <property environment="env"/>
+
+ <condition property="is.icu4j.classes.set" >
+ <or>
+ <isset property="env.ICU4J_CLASSES" />
+ <isset property="env.ICU4J_JAR" />
+ </or>
+ </condition >
+ <fail unless="is.icu4j.classes.set" message="Please set the ICU4J_CLASSES or ICU4J_JAR environment variable."/>
+
+ <condition property="is.icu4c.dir.set" >
+ <isset property="env.ICU4C_DIR" />
+ </condition >
+ <fail unless="is.icu4c.dir.set" message="Please set the ICU4C_DIR environment variable."/>
+
+ <condition property="is.cldr.dir.set" >
+ <isset property="env.CLDR_DIR" />
+ </condition >
+ <fail unless="is.cldr.dir.set" message="Please set the CLDR_DIR environment variable."/>
+
+ <condition property="is.cldr.classes.set" >
+ <or>
+ <isset property="env.CLDR_CLASSES" />
+ <isset property="env.CLDR_JAR" />
+ </or>
+ </condition >
+ <fail unless="is.cldr.classes.set" message="Please set the CLDR_CLASSES or CLDR_JAR environment variable."/>
+
+ <condition property="is.utilities.classes.set" >
+ <or>
+ <isset property="env.ICU4J_CLASSES" />
+ <isset property="env.UTILITIES_JAR" />
+ </or>
+ </condition >
+ <fail unless="is.utilities.classes.set" message="Please set the ICU4J_CLASSES or UTILITIES_JAR environment variable."/>
+
+ <echo message="java home: ${java.home}"/>
+ <echo message="java version: ${java.version}"/>
+ <echo message="ant java version: ${ant.java.version}"/>
+ <echo message="${ant.version}"/>
+ </target>
+ <target name="setup">
+
+ <echo message="${env.CLDR_CLASSES}"/>
+ <taskdef name="cldr-build" classname="org.unicode.cldr.ant.CLDRBuild">
+ <classpath>
+ <pathelement path="${java.class.path}/"/>
+ <pathelement path="${env.ICU4J_CLASSES}"/>
+ <pathelement path="${env.CLDR_CLASSES}"/>
+ <pathelement location="${env.ICU4J_JAR}"/>
+ <pathelement location="${env.CLDR_JAR}"/>
+ <pathelement location="${env.UTILITIES_JAR}"/>
+ </classpath>
+ </taskdef>
+ </target>
+ <!-- target for generating ICU data -->
+ <target name="all" depends="locales, resfiles, collation, colfiles, supplementalData, brkitr, brkfiles" />
+
+ <target name="locales" depends="init,setup" description="builds locale files in ICU text format">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="--sourcedir" value="${env.CLDR_DIR}/common/main" />
+ <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/locales"/>
+ <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/main"/>
+ <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />
+ </args>
+ <!-- http://ant.apache.org/faq.html#xml-entity-include -->
+ &icu-config;
+ </run>
+ </cldr-build>
+ </target>
+ <target name="resfiles" depends="init,setup" description="builds resfiles.mk">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="resfiles.mk" noArgs="true">
+ <run>
+ <args>
+ <arg name="-s" value="${env.CLDR_DIR}/common/main" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/locales"/>
+ <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/main"/>
+ <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-w" value="${env.CLDR_DIR}/common/main" />
+ </args>
+ <!-- locale aliases (main) -->
+ <deprecates>
+ <alias from="in" to="id" />
+ <alias from="in_ID" to="id_ID" />
+ <alias from="iw" to="he" />
+ <alias from="iw_IL" to="he_IL" />
+ <alias from="ja_JP_TRADITIONAL" to="ja_JP@calendar=japanese" xpath="//ldml/dates/calendars/default[@type='japanese']"/>
+ <alias from="ji" to="yi" />
+ <alias from="jw" to="jv"/>
+ <alias from="no" to="nb"/>
+ <alias from="no_NO" to="nb_NO"/>
+ <alias from="no_NO_NY" to="nn_NO" />
+ <alias from="en_RH" to="en_ZW" />
+ <alias from="th_TH_TRADITIONAL" to="th_TH@calendar=buddhist" xpath="//ldml/dates/calendars/default[@type='buddhist']" />
+ <aliasLocale locale="az_AZ" />
+ <aliasLocale locale="sh" />
+ <aliasLocale locale="sh_BA" />
+ <aliasLocale locale="sh_CS" />
+ <aliasLocale locale="sh_YU" />
+ <aliasLocale locale="sr_BA" />
+ <aliasLocale locale="sr_CS" />
+ <aliasLocale locale="sr_YU" />
+ <aliasLocale locale="sr_Cyrl_YU" />
+ <aliasLocale locale="sr_Latn_YU" />
+ <aliasLocale locale="uz_AF" />
+ <aliasLocale locale="uz_UZ" />
+ <aliasLocale locale="zh_CN" />
+ <aliasLocale locale="zh_HK" />
+ <aliasLocale locale="zh_MO" />
+ <aliasLocale locale="zh_SG" />
+ <aliasLocale locale="zh_TW" />
+ </deprecates>
+ </run>
+ </cldr-build>
+ </target>
+ <target name="collation" depends="init,setup" description="builds collation files in ICU text format">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
+ <run>
+ <args>
+ <arg name="--sourcedir" value="${env.CLDR_DIR}/common/collation" />
+ <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/coll"/>
+ <arg name="--specialsdir" value="${env.ICU4C_DIR}/source/data/xml/collation"/>
+ <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />
+ </args>
+ <!-- http://ant.apache.org/faq.html#xml-entity-include -->
+ &icu-config;
+ </run>
+ </cldr-build>
+ </target>
+ <target name="colfiles" depends="init, setup" description="builds colfiles.mk">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="colfiles.mk" noArgs="true">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="-s" value="${env.CLDR_DIR}/common/collation" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/coll"/>
+ <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/collation"/>
+ <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-w" value="${env.CLDR_DIR}/common/collation" />
+ </args>
+ <deprecates>
+ <alias from="de__PHONEBOOK" to="de@collation=phonebook" xpath="//ldml/collations/default[@type='phonebook']"/>
+ <alias from="es__TRADITIONAL" to="es@collation=traditional" xpath="//ldml/collations/default[@type='traditional']"/>
+ <alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/>
+ <alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/>
+ <alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/>
+ <alias from="in" to="id" />
+ <alias from="in_ID" to="id_ID" />
+ <alias from="iw" to="he" />
+ <alias from="iw_IL" to="he_IL" />
+ <emptyLocale locale="de_" />
+ <emptyLocale locale="es_" />
+ <emptyLocale locale="hi_" />
+ <emptyLocale locale="zh_" />
+ </deprecates>
+ </run>
+ </cldr-build>
+ </target>
+ <target name="supplementalData" depends="init,setup" description="builds supplementalData.txt from supplementalData.xml">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="supplementalData.txt" noArgs="true">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="-s" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/misc"/>
+ <arg name="-l"/>
+ <arg name="-f"/>
+ <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
+ </args>
+ </run>
+ </cldr-build>
+ </target>
+ <target name="brkitr" depends="init,setup" description="builds break iterator files in ICU text format">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" srcFile=".*xml" destFile=".*txt">
+ <run>
+ <args>
+ <arg name="--sourcedir" value="${env.ICU4C_DIR}/source/data/xml/brkitr"/>
+ <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/brkitr"/>
+ <arg name="--supplementaldir" value="${env.CLDR_DIR}/common/supplemental" />
+ </args>
+ <!-- The entity include is not required for this target -->
+ <!-- http://ant.apache.org/faq.html#xml-entity-include
+ &icu-config;
+ -->
+ </run>
+ </cldr-build>
+ </target>
+ <target name="brkfiles" depends="init, setup" description="builds brkfiles.mk">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="brkfiles.mk" noArgs="true">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="-s" value="${env.ICU4C_DIR}/source/data/xml/brkitr" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/brkitr"/>
+ <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-w" value="${env.ICU4C_DIR}/source/data/xml/brkitr" />
+ </args>
+ </run>
+ </cldr-build>
+ </target>
+ <target name="translit" depends="init,setup" description="builds collation files in ICU text format">
+ <cldr-build toolName="org.unicode.cldr.icu.ConvertTransforms" srcFile=".*xml" destFile=".*txt">
+ <run>
+ <args>
+ <arg name="--sourcedir" value="${env.CLDR_DIR}/common/transforms" />
+ <arg name="--destdir" value="${env.ICU4C_DIR}/source/data/translit"/>
+ <arg name="--commentSkip"/>
+ </args>
+ <!-- http://ant.apache.org/faq.html#xml-entity-include -->
+
+ </run>
+ </cldr-build>
+ </target>
+ <target name="trnsfiles" depends="init, setup" description="builds colfiles.mk">
+ <cldr-build toolName="org.unicode.cldr.icu.LDML2ICUConverter" destFile="colfiles.mk" noArgs="true">
+ <!-- launch the tool and generate the data after reading the config file -->
+ <run>
+ <args>
+ <arg name="-s" value="${env.CLDR_DIR}/common/collation" />
+ <arg name="-d" value="${env.ICU4C_DIR}/source/data/coll"/>
+ <arg name="-p" value="${env.ICU4C_DIR}/source/data/xml/collation"/>
+ <arg name="-m" value="${env.CLDR_DIR}/common/supplemental" />
+ <arg name="-w" value="${env.CLDR_DIR}/common/collation" />
+ </args>
+ <deprecates>
+ <alias from="de__PHONEBOOK" to="de@collation=phonebook" xpath="//ldml/collations/default[@type='phonebook']"/>
+ <alias from="es__TRADITIONAL" to="es@collation=traditional" xpath="//ldml/collations/default[@type='traditional']"/>
+ <alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/>
+ <alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/>
+ <alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/>
+ <alias from="in" to="id" />
+ <alias from="in_ID" to="id_ID" />
+ <alias from="iw" to="he" />
+ <alias from="iw_IL" to="he_IL" />
+ <emptyLocale locale="de_" />
+ <emptyLocale locale="es_" />
+ <emptyLocale locale="hi_" />
+ <emptyLocale locale="zh_" />
+ </deprecates>
+ </run>
+ </cldr-build>
+ </target>
+ <target name="clean" depends="init, setup" description="deletes all txt files and mk files from coll and locales directories">
+ <delete>
+ <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/locales">
+ <include name="*.txt" />
+ <include name="resfiles.mk" />
+ </fileset>
+ <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/coll">
+ <include name="*.txt" />
+ <include name="colfiles.mk" />
+ </fileset>
+ <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/brkitr">
+ <!-- brkitr directory contains bunch of txt files that are not produced by LDML2ICUConverter.
+ So can't clean up everything. This needs to be updated when new files are added to xml/brkitr directory -->
+ <include name="root.txt, en.txt, en_US.txt, en_US_POSIX.txt, ja.txt" />
+ <include name="brkfiles.mk" />
+ </fileset>
+ <fileset id="locales" dir="${env.ICU4C_DIR}/source/data/misc">
+ <include name="CurrencyData.txt" />
+ </fileset>
+ </delete>
+ </target>
+</project> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/data/cldr-icu-readme.txt b/Build/source/libs/icu-xetex/data/cldr-icu-readme.txt
new file mode 100644
index 00000000000..f80107f29be
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/cldr-icu-readme.txt
@@ -0,0 +1,58 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2005, International Business Machines
+# * Corporation and others. All Rights Reserved.
+# *
+# ***************************************************************************
+
+Steps for building ICU data from CLDR:
+
+Users of CLDR:
+1. Download cldrtools.zip from the CLDR website (http://www.unicode.org/cldr/repository_access.html) and unzip in a directory
+2. Download cldr.zip from the CLDR website (same as above) and unzip in cldr directory
+3. Check out ICU from ICU CVS repository http://www.ibm.com/software/globalization/icu/repository.jsp
+4. Set the required environment variables
+ export JAVA_HOME=<path>/java
+ export ANT_OPTS="-DCLDR_DTD_CACHE=<path>/temp/cldrdtd"
+ export CLDR_DIR=<path>/cldr
+ export CLDR_JAR=<path>/cldr.jar
+ export ICU4C_DIR=<path>/icu
+ export ICU4J_JAR=<path>/icu4j.jar
+ export UTILITIES_JAR=<path>/utilities.jar
+5. Change directory to <path>/icu/source/data/
+6. Enter command
+ <path>/ant/bin/ant clean all
+
+Developers of CLDR:
+1. Check out CLDR from the CVS repository http://www.unicode.org/cldr/repository_access.html and build the tools.
+2. Check out ICU from ICU CVS repository http://www.ibm.com/software/globalization/icu/repository.jsp and build it.
+3. Check out ICU4J from ICU CVS repository http://www.ibm.com/software/globalization/icu/repository.jsp and build it.
+4. Set the required environment variables
+ export JAVA_HOME=<path>/java
+ export ANT_OPTS="-DCLDR_DTD_CACHE=<path>/temp/cldrdtd"
+ export CLDR_DIR=<path>/cldr
+ export CLDR_CLASSES=<path>/cldr/tools/java/classes
+ export ICU4C_DIR=<path>/icu
+ export ICU4J_CLASSES=<path>/icu4j/classes
+5. Change directory to <path>/icu/source/data/
+6. Enter command
+ <path>/ant/bin/ant clean all
+
+Debugging in Eclipse:
+1. From Eclipse select Run > Run from toolbar
+2. Click New button
+3. Go to Main tab and enter
+ Name: Ant_Launcher
+ Project: cldr
+ Main class: org.apache.tools.ant.launch.Launcher
+4. Go to Arguments tab and enter
+ Program Arguments: -buildfile c:\work\cldr\tools\java\build.xml icu4c
+ VM Arguments: -classpath C:\work\apache-ant-1.6.1\lib\ant-launcher.jar
+ -Dant.home=C:\work\apache-ant-1.6.1
+ -DCLDR_DTD_CACHE=/work/temp/cldrdtd/
+5. Go to Environment tag and create new variables
+ CLDR_DIR=<path>/cldr
+ CLDR_CLASSES=<path>/cldr/tools/java/classes
+ ICU4C_DIR=/work/icu
+ ICU4J_CLASSES=<path>/icu4j/classes
+6. Set a break point in CLDRBuild or the tool class that needs to be debugged.
diff --git a/Build/source/libs/icu-xetex/data/coll/ar.txt b/Build/source/libs/icu-xetex/data/coll/ar.txt
index 10e12b8e298..4de339bd81c 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ar.xml
+// * Source File:<path>/common/collation/ar.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ar.xml
+ * ICU <specials> source: <path>/xml/collation/ar.xml
*/
ar{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{"&ة=ت"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_AE.txt b/Build/source/libs/icu-xetex/data/coll/ar_AE.txt
index 6de969ef7b1..f8c2b7e1abd 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_AE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_AE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_BH.txt b/Build/source/libs/icu-xetex/data/coll/ar_BH.txt
index 5873c53e2b2..e02ed7df4ec 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_BH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_BH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_DZ.txt b/Build/source/libs/icu-xetex/data/coll/ar_DZ.txt
index bd88c291a8e..fb4fa467a5f 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_DZ.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_DZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_EG.txt b/Build/source/libs/icu-xetex/data/coll/ar_EG.txt
index 7ac6c53da57..e9f1f6c0d71 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_EG.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_EG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_IQ.txt b/Build/source/libs/icu-xetex/data/coll/ar_IQ.txt
index ad8a750a9c8..9f87fa488b6 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_IQ.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_IQ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_JO.txt b/Build/source/libs/icu-xetex/data/coll/ar_JO.txt
index 8a738af28b1..631e859aab1 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_JO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_JO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_KW.txt b/Build/source/libs/icu-xetex/data/coll/ar_KW.txt
index 205f031ac6a..d62e63c4b3b 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_KW.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_KW.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_LB.txt b/Build/source/libs/icu-xetex/data/coll/ar_LB.txt
index b4093aabd32..15cda346199 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_LB.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_LB.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_LY.txt b/Build/source/libs/icu-xetex/data/coll/ar_LY.txt
index 6d547b569d5..260379a8b95 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_LY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_LY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_MA.txt b/Build/source/libs/icu-xetex/data/coll/ar_MA.txt
index 0447242f084..44aed593b99 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_MA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_MA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_OM.txt b/Build/source/libs/icu-xetex/data/coll/ar_OM.txt
index f654074c889..3c2df553e5e 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_OM.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_OM.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_QA.txt b/Build/source/libs/icu-xetex/data/coll/ar_QA.txt
index 84bd1327d7a..a07f775fd82 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_QA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_QA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_SA.txt b/Build/source/libs/icu-xetex/data/coll/ar_SA.txt
index b7faac04e23..3dd8b4ea7b2 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_SA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_SA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_SD.txt b/Build/source/libs/icu-xetex/data/coll/ar_SD.txt
index ec304f6c5be..3c90790b1bd 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_SD.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_SD.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_SY.txt b/Build/source/libs/icu-xetex/data/coll/ar_SY.txt
index 4aae7b5a02c..c335571f8c9 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_SY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_SY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_TN.txt b/Build/source/libs/icu-xetex/data/coll/ar_TN.txt
index 3a8b8172118..59db861448b 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_TN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_TN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_YE.txt b/Build/source/libs/icu-xetex/data/coll/ar_YE.txt
index ed49c83fda7..1e7a7edefab 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_YE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ar_YE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/as.txt b/Build/source/libs/icu-xetex/data/coll/as.txt
new file mode 100644
index 00000000000..a10628c7781
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/as.txt
@@ -0,0 +1,17 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/collation/as.xml
+// *
+// ***************************************************************************
+as{
+ Version{"1.1"}
+ collations{
+ standard{
+ Sequence{" [normalization on ]&ঔ<ং<à¦<ঃ&[before 1]ত<তà§'\u200D'&হ<কà§à¦·"}
+ Version{"1.4"}
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/ar_IN.txt b/Build/source/libs/icu-xetex/data/coll/as_IN.txt
index c4bc8921dc0..ddf7534cfe8 100644
--- a/Build/source/libs/icu-xetex/data/coll/ar_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/as_IN.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
- * validSubLocale of "ar"
+ * validSubLocale of "as"
*/
-ar_IN{
+as_IN{
/**
* so genrb doesn't issue warnings
*/
diff --git a/Build/source/libs/icu-xetex/data/coll/be.txt b/Build/source/libs/icu-xetex/data/coll/be.txt
index 764ccbff01f..2eb255f3dda 100644
--- a/Build/source/libs/icu-xetex/data/coll/be.txt
+++ b/Build/source/libs/icu-xetex/data/coll/be.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/be.xml
+// * Source File:<path>/common/collation/be.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/be.xml
+ * ICU <specials> source: <path>/xml/collation/be.xml
*/
be{
- Version{"1.15"}
+ Version{"1.16"}
collations:alias{"ru/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/be_BY.txt b/Build/source/libs/icu-xetex/data/coll/be_BY.txt
index 0e6fae326aa..fa8216ff2af 100644
--- a/Build/source/libs/icu-xetex/data/coll/be_BY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/be_BY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/bg.txt b/Build/source/libs/icu-xetex/data/coll/bg.txt
index ce0b544b8c3..e5d4a35723c 100644
--- a/Build/source/libs/icu-xetex/data/coll/bg.txt
+++ b/Build/source/libs/icu-xetex/data/coll/bg.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/bg.xml
+// * Source File:<path>/common/collation/bg.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/bg.xml
+ * ICU <specials> source: <path>/xml/collation/bg.xml
*/
bg{
- Version{"1.15"}
+ Version{"1.16"}
collations:alias{"ru/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/bg_BG.txt b/Build/source/libs/icu-xetex/data/coll/bg_BG.txt
index 27bbb1e79c8..f8dcf783676 100644
--- a/Build/source/libs/icu-xetex/data/coll/bg_BG.txt
+++ b/Build/source/libs/icu-xetex/data/coll/bg_BG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/bn.txt b/Build/source/libs/icu-xetex/data/coll/bn.txt
new file mode 100644
index 00000000000..c6d01c55452
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/bn.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/collation/bn.xml
+// *
+// ***************************************************************************
+bn{
+ Version{"1.1"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/ca.txt b/Build/source/libs/icu-xetex/data/coll/ca.txt
index 6c54191b2f9..c415045ea8d 100644
--- a/Build/source/libs/icu-xetex/data/coll/ca.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ca.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ca.xml
+// * Source File:<path>/common/collation/ca.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ca.xml
+ * ICU <specials> source: <path>/xml/collation/ca.xml
*/
ca{
- Version{"1.18"}
+ Version{"1.21"}
collations{
standard{
Sequence{" [backwards 2]&C<ch<<<Ch<<<CH&L<ll<<<l·l<<<Ll<<<L·l<<<LL<<<L·L"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ca_ES.txt b/Build/source/libs/icu-xetex/data/coll/ca_ES.txt
index c8430fc807b..47db4feab56 100644
--- a/Build/source/libs/icu-xetex/data/coll/ca_ES.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ca_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/colfiles.mk b/Build/source/libs/icu-xetex/data/coll/colfiles.mk
index 8c391786352..dd984530fcc 100644
--- a/Build/source/libs/icu-xetex/data/coll/colfiles.mk
+++ b/Build/source/libs/icu-xetex/data/coll/colfiles.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1998-2005, International Business Machines
+# * Copyright (C) 1998-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -24,9 +24,10 @@
#
# Generated by LDML2ICUConverter, from LDML source files.
-# Aliases which do not have a corresponding xx.xml file (see deprecatedList.xml)
-COLLATION_SYNTHETIC_ALIAS = de__PHONEBOOK.txt es__TRADITIONAL.txt hi__DIRECT.txt zh_TW_STROKE.txt\
- zh__PINYIN.txt
+# Aliases which do not have a corresponding xx.xml file (see icu-config.xml & build.xml)
+COLLATION_SYNTHETIC_ALIAS = de_.txt de__PHONEBOOK.txt es_.txt es__TRADITIONAL.txt\
+ hi_.txt hi__DIRECT.txt in.txt in_ID.txt iw.txt\
+ iw_IL.txt zh_.txt zh_TW_STROKE.txt zh__PINYIN.txt
# All aliases (to not be included under 'installed'), but not including root.
@@ -35,9 +36,9 @@ COLLATION_ALIAS_SOURCE = $(COLLATION_SYNTHETIC_ALIAS)
# Empty locales, used for validSubLocale fallback.
COLLATION_EMPTY_SOURCE = ar_AE.txt ar_BH.txt ar_DZ.txt ar_EG.txt\
- ar_IN.txt ar_IQ.txt ar_JO.txt ar_KW.txt ar_LB.txt\
- ar_LY.txt ar_MA.txt ar_OM.txt ar_QA.txt ar_SA.txt\
- ar_SD.txt ar_SY.txt ar_TN.txt ar_YE.txt be_BY.txt\
+ ar_IQ.txt ar_JO.txt ar_KW.txt ar_LB.txt ar_LY.txt\
+ ar_MA.txt ar_OM.txt ar_QA.txt ar_SA.txt ar_SD.txt\
+ ar_SY.txt ar_TN.txt ar_YE.txt as_IN.txt be_BY.txt\
bg_BG.txt ca_ES.txt cs_CZ.txt da_DK.txt de_AT.txt\
de_BE.txt de_CH.txt de_DE.txt de_LU.txt el_GR.txt\
en_AU.txt en_BW.txt en_CA.txt en_GB.txt en_HK.txt\
@@ -65,17 +66,18 @@ COLLATION_EMPTY_SOURCE = ar_AE.txt ar_BH.txt ar_DZ.txt ar_EG.txt\
# Ordinary resources
-COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) ar.txt be.txt bg.txt ca.txt\
- cs.txt da.txt de.txt el.txt en.txt\
- en_BE.txt eo.txt es.txt et.txt fa.txt\
- fa_AF.txt fi.txt fo.txt fr.txt gu.txt\
- he.txt hi.txt hr.txt hu.txt is.txt\
- it.txt ja.txt kk.txt kl.txt kn.txt\
- ko.txt lt.txt lv.txt mk.txt ml.txt\
- mr.txt mt.txt nb.txt nn.txt om.txt\
- or.txt pa.txt pl.txt ps.txt ro.txt\
- ru.txt sh.txt sk.txt sl.txt sq.txt\
- sr.txt sv.txt ta.txt te.txt th.txt\
- tr.txt uk.txt vi.txt zh.txt zh_HK.txt\
- zh_Hant.txt zh_MO.txt zh_TW.txt
+COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) ar.txt as.txt be.txt bg.txt\
+ bn.txt ca.txt cs.txt da.txt de.txt\
+ el.txt en.txt en_BE.txt eo.txt es.txt\
+ et.txt fa.txt fa_AF.txt fi.txt fo.txt\
+ fr.txt gu.txt haw.txt he.txt hi.txt\
+ hr.txt hu.txt is.txt it.txt ja.txt\
+ kk.txt kl.txt kn.txt ko.txt kok.txt\
+ lt.txt lv.txt mk.txt ml.txt mr.txt\
+ mt.txt nb.txt nn.txt om.txt or.txt\
+ pa.txt pl.txt ps.txt ro.txt ru.txt\
+ sh.txt sk.txt sl.txt sq.txt sr.txt\
+ sv.txt ta.txt te.txt th.txt tr.txt\
+ uk.txt vi.txt zh.txt zh_HK.txt zh_Hant.txt\
+ zh_MO.txt zh_TW.txt
diff --git a/Build/source/libs/icu-xetex/data/coll/collocal.mk b/Build/source/libs/icu-xetex/data/coll/collocal.mk
index be0bf6693e9..a616641f75a 100644
--- a/Build/source/libs/icu-xetex/data/coll/collocal.mk
+++ b/Build/source/libs/icu-xetex/data/coll/collocal.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1998-2005, International Business Machines
+# * Copyright (C) 1998-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -24,7 +24,7 @@
#
# Generated by LDML2ICUConverter, from LDML source files.
-# Aliases which do not have a corresponding xx.xml file (see deprecatedList.xml)
+# Aliases which do not have a corresponding xx.xml file (see icu-config.xml & build.xml)
COLLATION_SYNTHETIC_ALIAS =
@@ -37,6 +37,5 @@ COLLATION_EMPTY_SOURCE =
# Ordinary resources
-COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) \
- en.txt # not needed for xetex, but MinGW can't handle empty list
+COLLATION_SOURCE = $(COLLATION_EMPTY_SOURCE) # en.txt
diff --git a/Build/source/libs/icu-xetex/data/coll/cs.txt b/Build/source/libs/icu-xetex/data/coll/cs.txt
index e77052ded5b..4bd9bf45e62 100644
--- a/Build/source/libs/icu-xetex/data/coll/cs.txt
+++ b/Build/source/libs/icu-xetex/data/coll/cs.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/cs.xml
+// * Source File:<path>/common/collation/cs.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/cs.xml
+ * ICU <specials> source: <path>/xml/collation/cs.xml
*/
cs{
- Version{"1.20"}
+ Version{"1.21"}
collations{
standard{
Sequence{"&C<Ä<<<ÄŒ&H<ch<<<cH<<<Ch<<<CH&R<Å™<<<Ř&S<Å¡<<<Å &Z<ž<<<Ž"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/cs_CZ.txt b/Build/source/libs/icu-xetex/data/coll/cs_CZ.txt
index 070f14e26c2..1f4daa38275 100644
--- a/Build/source/libs/icu-xetex/data/coll/cs_CZ.txt
+++ b/Build/source/libs/icu-xetex/data/coll/cs_CZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/da.txt b/Build/source/libs/icu-xetex/data/coll/da.txt
index e128bb452cb..1448a708c67 100644
--- a/Build/source/libs/icu-xetex/data/coll/da.txt
+++ b/Build/source/libs/icu-xetex/data/coll/da.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/da.xml
+// * Source File:<path>/common/collation/da.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/da.xml
+ * ICU <specials> source: <path>/xml/collation/da.xml
*/
da{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -22,7 +22,7 @@ da{
"&[before 1]Ê’<æ<<<Æ<<ä<<<Ä<<Ä™<<<Ę<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<<Å“<<<Å’<Ã¥<<<Ã…<<<"
"aa<<<Aa<<<AA"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/da_DK.txt b/Build/source/libs/icu-xetex/data/coll/da_DK.txt
index d81bb5359c5..38558801416 100644
--- a/Build/source/libs/icu-xetex/data/coll/da_DK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/da_DK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de.txt b/Build/source/libs/icu-xetex/data/coll/de.txt
index 5830c74be62..9472fb3fff5 100644
--- a/Build/source/libs/icu-xetex/data/coll/de.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de.txt
@@ -1,24 +1,24 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/de.xml
+// * Source File:<path>/common/collation/de.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/de.xml
+ * ICU <specials> source: <path>/xml/collation/de.xml
*/
de{
- Version{"1.21"}
+ Version{"1.22"}
collations{
phonebook{
Sequence{"&a<<æ/e<<ä/e&A<<Æ/E<<Ä/E&œ<<ö/e&Œ<<Ö/E&u<<ü/e&U<<Ü/E"}
- Version{"1.3"}
+ Version{"1.4"}
}
standard{
Sequence{"&ae<<æ<<<Æ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/de_.txt b/Build/source/libs/icu-xetex/data/coll/de_.txt
new file mode 100644
index 00000000000..b8f4ec07c75
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/de_.txt
@@ -0,0 +1,17 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+/**
+ * empty locale file for dependency checking
+ */
+de_{
+ /**
+ * so genrb doesn't issue warnings
+ */
+ ___{""}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/de_AT.txt b/Build/source/libs/icu-xetex/data/coll/de_AT.txt
index b10f7b6b7d0..6fb6c620df5 100644
--- a/Build/source/libs/icu-xetex/data/coll/de_AT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de_AT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de_BE.txt b/Build/source/libs/icu-xetex/data/coll/de_BE.txt
index 65c20fe3d1a..9dda8ab4cae 100644
--- a/Build/source/libs/icu-xetex/data/coll/de_BE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de_CH.txt b/Build/source/libs/icu-xetex/data/coll/de_CH.txt
index 5a069e13594..4f1700a2d58 100644
--- a/Build/source/libs/icu-xetex/data/coll/de_CH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de_DE.txt b/Build/source/libs/icu-xetex/data/coll/de_DE.txt
index bd9600dee7d..4bf93d858ad 100644
--- a/Build/source/libs/icu-xetex/data/coll/de_DE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de_DE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de_LU.txt b/Build/source/libs/icu-xetex/data/coll/de_LU.txt
index 5bc75376bd8..bf74544a5f7 100644
--- a/Build/source/libs/icu-xetex/data/coll/de_LU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de_LU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/de__PHONEBOOK.txt b/Build/source/libs/icu-xetex/data/coll/de__PHONEBOOK.txt
index 6c7c0e2765e..ad8debcebd1 100644
--- a/Build/source/libs/icu-xetex/data/coll/de__PHONEBOOK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/de__PHONEBOOK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
de__PHONEBOOK{
diff --git a/Build/source/libs/icu-xetex/data/coll/el.txt b/Build/source/libs/icu-xetex/data/coll/el.txt
index 74b39302117..68e9cd658a6 100644
--- a/Build/source/libs/icu-xetex/data/coll/el.txt
+++ b/Build/source/libs/icu-xetex/data/coll/el.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/el.xml
+// * Source File:<path>/common/collation/el.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/el.xml
+ * ICU <specials> source: <path>/xml/collation/el.xml
*/
el{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/el_GR.txt b/Build/source/libs/icu-xetex/data/coll/el_GR.txt
index 74cdcaff627..19b8b7c7383 100644
--- a/Build/source/libs/icu-xetex/data/coll/el_GR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/el_GR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en.txt b/Build/source/libs/icu-xetex/data/coll/en.txt
index 72bddedade5..7f2bc6694f9 100644
--- a/Build/source/libs/icu-xetex/data/coll/en.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/en.xml
+// * Source File:<path>/common/collation/en.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/en.xml
+ * ICU <specials> source: <path>/xml/collation/en.xml
*/
en{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{"&ae<<æ<<<Æ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/en_AU.txt b/Build/source/libs/icu-xetex/data/coll/en_AU.txt
index 88452b69819..f73251ff788 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_AU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_AU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_BE.txt b/Build/source/libs/icu-xetex/data/coll/en_BE.txt
index ef45e7bfc3a..93a44ba46ca 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_BE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_BE.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/en_BE.xml
+// * Source File:<path>/common/collation/en_BE.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/en_BE.xml
+ * ICU <specials> source: <path>/xml/collation/en_BE.xml
*/
en_BE{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{" [backwards 2]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/en_BW.txt b/Build/source/libs/icu-xetex/data/coll/en_BW.txt
index d10388f03ea..e82b34ae789 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_BW.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_BW.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_CA.txt b/Build/source/libs/icu-xetex/data/coll/en_CA.txt
index ae09450c6a7..ae18611a9eb 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_CA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_CA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_GB.txt b/Build/source/libs/icu-xetex/data/coll/en_GB.txt
index c28ef1dc48f..4b07b65b1e7 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_GB.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_GB.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_HK.txt b/Build/source/libs/icu-xetex/data/coll/en_HK.txt
index 682ae6e029e..b8f22821157 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_HK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_HK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_IE.txt b/Build/source/libs/icu-xetex/data/coll/en_IE.txt
index d9e2cfa652e..131538a20ce 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_IE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_IE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_IN.txt b/Build/source/libs/icu-xetex/data/coll/en_IN.txt
index 5d53765b9b9..35d69e2471a 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_MT.txt b/Build/source/libs/icu-xetex/data/coll/en_MT.txt
index 6e74ebefebc..4def85027c6 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_MT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_MT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_NZ.txt b/Build/source/libs/icu-xetex/data/coll/en_NZ.txt
index f48f155e6de..6ce1ae44837 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_NZ.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_NZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_PH.txt b/Build/source/libs/icu-xetex/data/coll/en_PH.txt
index 0f5f15ffc70..204c8dc8be4 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_PH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_PH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_SG.txt b/Build/source/libs/icu-xetex/data/coll/en_SG.txt
index 690c6913ee9..b2c9597a925 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_SG.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_SG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_US.txt b/Build/source/libs/icu-xetex/data/coll/en_US.txt
index 32487b1b9df..7118d76f32c 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_US.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_US.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_US_POSIX.txt b/Build/source/libs/icu-xetex/data/coll/en_US_POSIX.txt
index 331e8818f5f..c4ddaa798e7 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_US_POSIX.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_US_POSIX.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_VI.txt b/Build/source/libs/icu-xetex/data/coll/en_VI.txt
index e8ec0895571..0f4344b00d5 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_VI.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_VI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_ZA.txt b/Build/source/libs/icu-xetex/data/coll/en_ZA.txt
index 40da94a4a2f..6617b49a086 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_ZA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_ZA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/en_ZW.txt b/Build/source/libs/icu-xetex/data/coll/en_ZW.txt
index e281589c633..eaa411cead9 100644
--- a/Build/source/libs/icu-xetex/data/coll/en_ZW.txt
+++ b/Build/source/libs/icu-xetex/data/coll/en_ZW.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/eo.txt b/Build/source/libs/icu-xetex/data/coll/eo.txt
index 5c4e9c53593..8ea360f99e2 100644
--- a/Build/source/libs/icu-xetex/data/coll/eo.txt
+++ b/Build/source/libs/icu-xetex/data/coll/eo.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/eo.xml
+// * Source File:<path>/common/collation/eo.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/eo.xml
+ * ICU <specials> source: <path>/xml/collation/eo.xml
*/
eo{
- Version{"1.17"}
+ Version{"1.18"}
collations{
standard{
Sequence{"&C<ĉ<<<Ĉ&G<Ä<<<Äœ&H<Ä¥<<<Ĥ&J<ĵ<<<Ä´&S<Å<<<Åœ&U<Å­<<<Ŭ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/es.txt b/Build/source/libs/icu-xetex/data/coll/es.txt
index 316d22f6676..aabc4e87978 100644
--- a/Build/source/libs/icu-xetex/data/coll/es.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es.txt
@@ -1,24 +1,24 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/es.xml
+// * Source File:<path>/common/collation/es.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/es.xml
+ * ICU <specials> source: <path>/xml/collation/es.xml
*/
es{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{"&N<ñ<<<Ñ&ae<<æ<<<Æ"}
- Version{"1.3"}
+ Version{"1.4"}
}
traditional{
Sequence{"&N<ñ<<<Ñ&C<ch<<<Ch<<<CH&l<ll<<<Ll<<<LL"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/es_.txt b/Build/source/libs/icu-xetex/data/coll/es_.txt
new file mode 100644
index 00000000000..d6ab2150f81
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/es_.txt
@@ -0,0 +1,17 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+/**
+ * empty locale file for dependency checking
+ */
+es_{
+ /**
+ * so genrb doesn't issue warnings
+ */
+ ___{""}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/es_AR.txt b/Build/source/libs/icu-xetex/data/coll/es_AR.txt
index da73a8e3511..4e8d0efa20a 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_AR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_AR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_BO.txt b/Build/source/libs/icu-xetex/data/coll/es_BO.txt
index 6500ac2b7e5..3774bf06b57 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_BO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_BO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_CL.txt b/Build/source/libs/icu-xetex/data/coll/es_CL.txt
index 2138c982b55..17045fe80d0 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_CL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_CL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_CO.txt b/Build/source/libs/icu-xetex/data/coll/es_CO.txt
index 3a5f242a898..2031298619a 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_CO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_CO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_CR.txt b/Build/source/libs/icu-xetex/data/coll/es_CR.txt
index 4e24fedafcd..d90ab53e706 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_CR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_CR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_DO.txt b/Build/source/libs/icu-xetex/data/coll/es_DO.txt
index 206de6afb0e..56824862162 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_DO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_DO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_EC.txt b/Build/source/libs/icu-xetex/data/coll/es_EC.txt
index ccee1a26f08..1330e4a9712 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_EC.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_EC.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_ES.txt b/Build/source/libs/icu-xetex/data/coll/es_ES.txt
index 09c3b7f7688..4a77c73653e 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_ES.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_GT.txt b/Build/source/libs/icu-xetex/data/coll/es_GT.txt
index dee713b900a..67193d9405d 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_GT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_GT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_HN.txt b/Build/source/libs/icu-xetex/data/coll/es_HN.txt
index a1c3da92b41..a3318f1a2e6 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_HN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_HN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_MX.txt b/Build/source/libs/icu-xetex/data/coll/es_MX.txt
index f4fb7bdf245..0a066c267bc 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_MX.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_MX.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_NI.txt b/Build/source/libs/icu-xetex/data/coll/es_NI.txt
index 0190853de06..d32dca87b8d 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_NI.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_NI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_PA.txt b/Build/source/libs/icu-xetex/data/coll/es_PA.txt
index 509a2221f11..aab513915fd 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_PA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_PA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_PE.txt b/Build/source/libs/icu-xetex/data/coll/es_PE.txt
index 3d49927a1a6..149cb972e1a 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_PE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_PE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_PR.txt b/Build/source/libs/icu-xetex/data/coll/es_PR.txt
index 00e4e94673e..56fa252b1ff 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_PR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_PR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_PY.txt b/Build/source/libs/icu-xetex/data/coll/es_PY.txt
index db78af2a8be..5c5e09887c1 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_PY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_PY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_SV.txt b/Build/source/libs/icu-xetex/data/coll/es_SV.txt
index e1032611235..3fa651447ac 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_SV.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_SV.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_US.txt b/Build/source/libs/icu-xetex/data/coll/es_US.txt
index abf79b84b34..0890317681d 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_US.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_US.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_UY.txt b/Build/source/libs/icu-xetex/data/coll/es_UY.txt
index 57086622e94..5173daa9e0f 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_UY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_UY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es_VE.txt b/Build/source/libs/icu-xetex/data/coll/es_VE.txt
index 9a605f356b0..c90e67463af 100644
--- a/Build/source/libs/icu-xetex/data/coll/es_VE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es_VE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/es__TRADITIONAL.txt b/Build/source/libs/icu-xetex/data/coll/es__TRADITIONAL.txt
index d74687ba887..a624d063158 100644
--- a/Build/source/libs/icu-xetex/data/coll/es__TRADITIONAL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/es__TRADITIONAL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
es__TRADITIONAL{
diff --git a/Build/source/libs/icu-xetex/data/coll/et.txt b/Build/source/libs/icu-xetex/data/coll/et.txt
index b45b95c328d..aa6c530fe48 100644
--- a/Build/source/libs/icu-xetex/data/coll/et.txt
+++ b/Build/source/libs/icu-xetex/data/coll/et.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/et.xml
+// * Source File:<path>/common/collation/et.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/et.xml
+ * ICU <specials> source: <path>/xml/collation/et.xml
*/
et{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -18,7 +18,7 @@ et{
"&v<<w<<<W"
"&[before 1]X<õ<<<Õ<ä<<<Ä<ö<<<Ö<ü<<<Ü"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/et_EE.txt b/Build/source/libs/icu-xetex/data/coll/et_EE.txt
index ed7887a3c48..38ffba7cb2f 100644
--- a/Build/source/libs/icu-xetex/data/coll/et_EE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/et_EE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fa.txt b/Build/source/libs/icu-xetex/data/coll/fa.txt
index 2289d548b25..15c963fa4fd 100644
--- a/Build/source/libs/icu-xetex/data/coll/fa.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fa.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/fa.xml
+// * Source File:<path>/common/collation/fa.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/fa.xml
+ * ICU <specials> source: <path>/xml/collation/fa.xml
*/
fa{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -22,7 +22,7 @@ fa{
"&Û<Ù‡<<Û•<<Û<<Ø©<<Ûƒ<<Û€<<Ú¾"
"&ÛŒ<<Ù‰<<Û’<<ÙŠ<<Û<<Û‘<<Û<<ÛŽ"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/fa_AF.txt b/Build/source/libs/icu-xetex/data/coll/fa_AF.txt
index 9c734423e80..20923cd1422 100644
--- a/Build/source/libs/icu-xetex/data/coll/fa_AF.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fa_AF.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/fa_AF.xml
+// * Source File:<path>/common/collation/fa_AF.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/fa_AF.xml
+ * ICU <specials> source: <path>/xml/collation/fa_AF.xml
*/
fa_AF{
- Version{"1.14"}
+ Version{"1.15"}
collations:alias{"ps/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/fa_IR.txt b/Build/source/libs/icu-xetex/data/coll/fa_IR.txt
index 20b44558d32..61a4a84aa38 100644
--- a/Build/source/libs/icu-xetex/data/coll/fa_IR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fa_IR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fi.txt b/Build/source/libs/icu-xetex/data/coll/fi.txt
index 22644d48943..2b2cff2d54a 100644
--- a/Build/source/libs/icu-xetex/data/coll/fi.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fi.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/fi.xml
+// * Source File:<path>/common/collation/fi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/fi.xml
+ * ICU <specials> source: <path>/xml/collation/fi.xml
*/
fi{
- Version{"1.20"}
+ Version{"1.21"}
collations{
standard{
Sequence{
@@ -21,7 +21,7 @@ fi{
"&Y<<ü<<<Ü<<ű<<<Ű"
"&[before 1]Ê’<Ã¥<<<Ã…<ä<<<Ä<<æ<<<Æ<ö<<<Ö<<ø<<<Ø<<Å‘<<<Å<<õ<<<Õ<<Å“<<<Å’"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/fi_FI.txt b/Build/source/libs/icu-xetex/data/coll/fi_FI.txt
index 78a184710c3..c1e92591ef0 100644
--- a/Build/source/libs/icu-xetex/data/coll/fi_FI.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fi_FI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fo.txt b/Build/source/libs/icu-xetex/data/coll/fo.txt
index 7430e4bb773..0e73b3bf834 100644
--- a/Build/source/libs/icu-xetex/data/coll/fo.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fo.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/fo.xml
+// * Source File:<path>/common/collation/fo.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/fo.xml
+ * ICU <specials> source: <path>/xml/collation/fo.xml
*/
fo{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -21,7 +21,7 @@ fo{
"&[before 1]Ê’<æ<<<Æ<<ä<<<Ä<<Ä™<<<Ę<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<<Å“<<<Å’<Ã¥<<<Ã…<<<"
"aa<<<Aa<<<AA"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/fo_FO.txt b/Build/source/libs/icu-xetex/data/coll/fo_FO.txt
index 060bb13df7a..ec620157217 100644
--- a/Build/source/libs/icu-xetex/data/coll/fo_FO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fo_FO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fr.txt b/Build/source/libs/icu-xetex/data/coll/fr.txt
index eb02bdf8a04..886b23c9e97 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/fr.xml
+// * Source File:<path>/common/collation/fr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/fr.xml
+ * ICU <specials> source: <path>/xml/collation/fr.xml
*/
fr{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{" [backwards 2]&ae<<æ<<<Æ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/fr_BE.txt b/Build/source/libs/icu-xetex/data/coll/fr_BE.txt
index aef018ec1e9..5ce5e9a45be 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr_BE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fr_CA.txt b/Build/source/libs/icu-xetex/data/coll/fr_CA.txt
index 4b1988f3c62..ea0e5b96553 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr_CA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr_CA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fr_CH.txt b/Build/source/libs/icu-xetex/data/coll/fr_CH.txt
index 63cb4695faf..b6f881fcd24 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr_CH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fr_FR.txt b/Build/source/libs/icu-xetex/data/coll/fr_FR.txt
index 4bb4050c20e..f36af69b3f1 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr_FR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr_FR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/fr_LU.txt b/Build/source/libs/icu-xetex/data/coll/fr_LU.txt
index c2928ab2afe..5147af72e5b 100644
--- a/Build/source/libs/icu-xetex/data/coll/fr_LU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/fr_LU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ga.txt b/Build/source/libs/icu-xetex/data/coll/ga.txt
index ff4335503bd..2234c95a8d4 100644
--- a/Build/source/libs/icu-xetex/data/coll/ga.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ga.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ga_IE.txt b/Build/source/libs/icu-xetex/data/coll/ga_IE.txt
index 6afde7eb4f2..18bbb1ac6ea 100644
--- a/Build/source/libs/icu-xetex/data/coll/ga_IE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ga_IE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/gu.txt b/Build/source/libs/icu-xetex/data/coll/gu.txt
index 96a484df7dd..7e2c3965ade 100644
--- a/Build/source/libs/icu-xetex/data/coll/gu.txt
+++ b/Build/source/libs/icu-xetex/data/coll/gu.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/gu.xml
+// * Source File:<path>/common/collation/gu.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/gu.xml
+ * ICU <specials> source: <path>/xml/collation/gu.xml
*/
gu{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{" [normalization on ]&હ<઼<àª<ં<ઃ&ઽ<à«"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/gu_IN.txt b/Build/source/libs/icu-xetex/data/coll/gu_IN.txt
index 588958f9ded..28375ac891e 100644
--- a/Build/source/libs/icu-xetex/data/coll/gu_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/gu_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/haw.txt b/Build/source/libs/icu-xetex/data/coll/haw.txt
new file mode 100644
index 00000000000..b80c52384a3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/haw.txt
@@ -0,0 +1,31 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/collation/haw.xml
+// *
+// ***************************************************************************
+haw{
+ Version{"1.4"}
+ collations{
+ standard{
+ Sequence{
+ "&a<e<i<o<u<h<k<l<m<n<p<w<Ê»"
+ "&a<<<A"
+ "&e<<<E"
+ "&i<<<I"
+ "&o<<<O"
+ "&u<<<U"
+ "&h<<<H"
+ "&k<<<K"
+ "&l<<<L"
+ "&m<<<M"
+ "&n<<<N"
+ "&p<<<P"
+ "&w<<<W"
+ }
+ Version{"1.4"}
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/he.txt b/Build/source/libs/icu-xetex/data/coll/he.txt
index 2dd4637d5b9..6c9fccec778 100644
--- a/Build/source/libs/icu-xetex/data/coll/he.txt
+++ b/Build/source/libs/icu-xetex/data/coll/he.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/he.xml
+// * Source File:<path>/common/collation/he.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/he.xml
+ * ICU <specials> source: <path>/xml/collation/he.xml
*/
he{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/he_IL.txt b/Build/source/libs/icu-xetex/data/coll/he_IL.txt
index 4dfda16b6d7..447ee7289be 100644
--- a/Build/source/libs/icu-xetex/data/coll/he_IL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/he_IL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/hi.txt b/Build/source/libs/icu-xetex/data/coll/hi.txt
index 917396b9f02..2b58187a19e 100644
--- a/Build/source/libs/icu-xetex/data/coll/hi.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hi.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/hi.xml
+// * Source File:<path>/common/collation/hi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/hi.xml
+ * ICU <specials> source: <path>/xml/collation/hi.xml
*/
hi{
- Version{"1.19"}
+ Version{"1.21"}
collations{
direct{
Sequence{
@@ -19,11 +19,11 @@ hi{
"<ी<à¥<ू<ृ<ॄ<ॅ<ॆ<े<ै<ॉ<ॊ<ो<ौ<à¥<à¥<॑<॒<॓<॔<क़<ख़<ग़<ज़<ड़<ढ़<फ़<य़<ॠ<ॡ<ॢ"
"<ॣ<।<॥<०<१<२<३<४<५<६<७<८<९<॰"
}
- Version{"1.3"}
+ Version{"1.4"}
}
standard{
Sequence{" [normalization on ]&[before 1]0<à¥<।<॥<॰&ह<़<à¤<ं<ः<॑<॒<॓<॔&ऽ<à¥"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/hi_.txt b/Build/source/libs/icu-xetex/data/coll/hi_.txt
new file mode 100644
index 00000000000..37afc8d81dd
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/hi_.txt
@@ -0,0 +1,17 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+/**
+ * empty locale file for dependency checking
+ */
+hi_{
+ /**
+ * so genrb doesn't issue warnings
+ */
+ ___{""}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/hi_IN.txt b/Build/source/libs/icu-xetex/data/coll/hi_IN.txt
index 4c196e22ea6..56e8a10d55f 100644
--- a/Build/source/libs/icu-xetex/data/coll/hi_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hi_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/hi__DIRECT.txt b/Build/source/libs/icu-xetex/data/coll/hi__DIRECT.txt
index 7b2870a9d82..0175139fb9d 100644
--- a/Build/source/libs/icu-xetex/data/coll/hi__DIRECT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hi__DIRECT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
hi__DIRECT{
diff --git a/Build/source/libs/icu-xetex/data/coll/hr.txt b/Build/source/libs/icu-xetex/data/coll/hr.txt
index 01a04850832..2d2e58d67db 100644
--- a/Build/source/libs/icu-xetex/data/coll/hr.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hr.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/hr.xml
+// * Source File:<path>/common/collation/hr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/hr.xml
+ * ICU <specials> source: <path>/xml/collation/hr.xml
*/
hr{
- Version{"1.18"}
+ Version{"1.21"}
collations{
standard{
Sequence{
@@ -21,7 +21,7 @@ hr{
"&S<Å¡<<<Å "
"&Z<ž<<<Ž"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/hr_HR.txt b/Build/source/libs/icu-xetex/data/coll/hr_HR.txt
index 456dff0b55a..5437e37db26 100644
--- a/Build/source/libs/icu-xetex/data/coll/hr_HR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hr_HR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/hu.txt b/Build/source/libs/icu-xetex/data/coll/hu.txt
index cf148109c79..793ba2a0e68 100644
--- a/Build/source/libs/icu-xetex/data/coll/hu.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hu.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/hu.xml
+// * Source File:<path>/common/collation/hu.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/hu.xml
+ * ICU <specials> source: <path>/xml/collation/hu.xml
*/
hu{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -53,7 +53,7 @@ hu{
"&Zs<<<Zzs/zs"
"&ZS<<<ZZS/ZS"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/hu_HU.txt b/Build/source/libs/icu-xetex/data/coll/hu_HU.txt
index d43f2232081..8d550464502 100644
--- a/Build/source/libs/icu-xetex/data/coll/hu_HU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/hu_HU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/id.txt b/Build/source/libs/icu-xetex/data/coll/id.txt
index 51623126d52..7de6a1455e2 100644
--- a/Build/source/libs/icu-xetex/data/coll/id.txt
+++ b/Build/source/libs/icu-xetex/data/coll/id.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/id_ID.txt b/Build/source/libs/icu-xetex/data/coll/id_ID.txt
index aabb71ff540..770c0fb69b1 100644
--- a/Build/source/libs/icu-xetex/data/coll/id_ID.txt
+++ b/Build/source/libs/icu-xetex/data/coll/id_ID.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/in.txt b/Build/source/libs/icu-xetex/data/coll/in.txt
new file mode 100644
index 00000000000..bd68a6337a2
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/in.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+in{
+ "%%ALIAS"{"id"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/in_ID.txt b/Build/source/libs/icu-xetex/data/coll/in_ID.txt
new file mode 100644
index 00000000000..982d684d1a9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/in_ID.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+in_ID{
+ "%%ALIAS"{"id_ID"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/is.txt b/Build/source/libs/icu-xetex/data/coll/is.txt
index 7457d161824..466b34878f5 100644
--- a/Build/source/libs/icu-xetex/data/coll/is.txt
+++ b/Build/source/libs/icu-xetex/data/coll/is.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/is.xml
+// * Source File:<path>/common/collation/is.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/is.xml
+ * ICU <specials> source: <path>/xml/collation/is.xml
*/
is{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -23,7 +23,7 @@ is{
"&[before 1]z<ý<<<Ã"
"&[before 1]ʒ<þ<<<Þ<æ<<<Æ<<ä<<<Ä<ö<<<Ö<<ø<<<Ø<å<<<Å"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/is_IS.txt b/Build/source/libs/icu-xetex/data/coll/is_IS.txt
index 9e9ad4d96fb..0af8e990a39 100644
--- a/Build/source/libs/icu-xetex/data/coll/is_IS.txt
+++ b/Build/source/libs/icu-xetex/data/coll/is_IS.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/it.txt b/Build/source/libs/icu-xetex/data/coll/it.txt
index 73e06c799a6..aee8c17be20 100644
--- a/Build/source/libs/icu-xetex/data/coll/it.txt
+++ b/Build/source/libs/icu-xetex/data/coll/it.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/it.xml
+// * Source File:<path>/common/collation/it.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/it.xml
+ * ICU <specials> source: <path>/xml/collation/it.xml
*/
it{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{"&ae<<æ<<<Æ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/it_CH.txt b/Build/source/libs/icu-xetex/data/coll/it_CH.txt
index 7cdaffbb97c..64e76dbf02b 100644
--- a/Build/source/libs/icu-xetex/data/coll/it_CH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/it_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/it_IT.txt b/Build/source/libs/icu-xetex/data/coll/it_IT.txt
index a3fb4db99bd..e34b0f73c1e 100644
--- a/Build/source/libs/icu-xetex/data/coll/it_IT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/it_IT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/iw.txt b/Build/source/libs/icu-xetex/data/coll/iw.txt
new file mode 100644
index 00000000000..0bbe22a3b4d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/iw.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+iw{
+ "%%ALIAS"{"he"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/iw_IL.txt b/Build/source/libs/icu-xetex/data/coll/iw_IL.txt
new file mode 100644
index 00000000000..4ebf97e64c0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/iw_IL.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+iw_IL{
+ "%%ALIAS"{"he_IL"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/ja.txt b/Build/source/libs/icu-xetex/data/coll/ja.txt
index 9017b796593..e83543e3542 100644
--- a/Build/source/libs/icu-xetex/data/coll/ja.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ja.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ja.xml
+// * Source File:<path>/common/collation/ja.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ja.xml
+ * ICU <specials> source: <path>/xml/collation/ja.xml
*/
ja{
- Version{"1.20"}
+ Version{"1.21"}
collations{
standard{
Sequence{
@@ -507,7 +507,7 @@ ja{
"<黨<黯<黴<黶<黷<黹<黻<黼<黽<鼇<鼈<皷<鼕<鼡<鼬<鼾<齊<齒<齔<齣<齟<齠<齡<齦<齧<齬<齪<齷<齲<齶<龕<龜<龠<堯"
"<槇<é™<瑤<凜<熙"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ja_JP.txt b/Build/source/libs/icu-xetex/data/coll/ja_JP.txt
index 9e64d490ef4..576cc91baec 100644
--- a/Build/source/libs/icu-xetex/data/coll/ja_JP.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ja_JP.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/kk.txt b/Build/source/libs/icu-xetex/data/coll/kk.txt
index a82a804828c..8aadba9257f 100644
--- a/Build/source/libs/icu-xetex/data/coll/kk.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kk.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/kk.xml
+// * Source File:<path>/common/collation/kk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/kk.xml
+ * ICU <specials> source: <path>/xml/collation/kk.xml
*/
kk{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{" [normalization on ][suppressContractions [Ѐ-џ] ]&[before 1]ү<ұ<<<Ұ"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/kk_KZ.txt b/Build/source/libs/icu-xetex/data/coll/kk_KZ.txt
index 74375bd76b4..29d3763d28d 100644
--- a/Build/source/libs/icu-xetex/data/coll/kk_KZ.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kk_KZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/kl.txt b/Build/source/libs/icu-xetex/data/coll/kl.txt
index f902086bddf..97f5f032d96 100644
--- a/Build/source/libs/icu-xetex/data/coll/kl.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kl.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/kl.xml
+// * Source File:<path>/common/collation/kl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/kl.xml
+ * ICU <specials> source: <path>/xml/collation/kl.xml
*/
kl{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -20,7 +20,7 @@ kl{
"&Y<<ü<<<Ü<<ű<<<Ű"
"&[before 1]Ê’<æ<<<Æ<<ä<<<Ä<<Ä™<<<Ę<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<<Å“<<<Å’<Ã¥<<<Ã…"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/kl_GL.txt b/Build/source/libs/icu-xetex/data/coll/kl_GL.txt
index 8de737501cd..51a3eb90e0b 100644
--- a/Build/source/libs/icu-xetex/data/coll/kl_GL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kl_GL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/kn.txt b/Build/source/libs/icu-xetex/data/coll/kn.txt
index 4dda0df8a55..402e4d58f25 100644
--- a/Build/source/libs/icu-xetex/data/coll/kn.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kn.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/kn.xml
+// * Source File:<path>/common/collation/kn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/kn.xml
+ * ICU <specials> source: <path>/xml/collation/kn.xml
*/
kn{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/kn_IN.txt b/Build/source/libs/icu-xetex/data/coll/kn_IN.txt
index 74c9e9a1687..776fb0d3377 100644
--- a/Build/source/libs/icu-xetex/data/coll/kn_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/kn_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ko.txt b/Build/source/libs/icu-xetex/data/coll/ko.txt
index 78f21ac4be8..c26b4765afa 100644
--- a/Build/source/libs/icu-xetex/data/coll/ko.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ko.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ko.xml
+// * Source File:<path>/common/collation/ko.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ko.xml
+ * ICU <specials> source: <path>/xml/collation/ko.xml
*/
ko{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -681,7 +681,7 @@ ko{
"<<嘻<<悕<<戲<<暿<<欷<<燹<<爔<<豨<<餼"
"&íž<<è©°<<犵<<纈<<襭<<é ¡<<é» "
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ko_KR.txt b/Build/source/libs/icu-xetex/data/coll/ko_KR.txt
index 900f4c86b55..bc986bbfabc 100644
--- a/Build/source/libs/icu-xetex/data/coll/ko_KR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ko_KR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/kok.txt b/Build/source/libs/icu-xetex/data/coll/kok.txt
new file mode 100644
index 00000000000..914a116f84a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/kok.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/collation/kok.xml
+// *
+// ***************************************************************************
+kok{
+ Version{"1.1"}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/lt.txt b/Build/source/libs/icu-xetex/data/coll/lt.txt
index 76e5c73dd35..e14dd25cfb9 100644
--- a/Build/source/libs/icu-xetex/data/coll/lt.txt
+++ b/Build/source/libs/icu-xetex/data/coll/lt.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/lt.xml
+// * Source File:<path>/common/collation/lt.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/lt.xml
+ * ICU <specials> source: <path>/xml/collation/lt.xml
*/
lt{
- Version{"1.18"}
+ Version{"1.21"}
collations{
standard{
Sequence{
@@ -20,7 +20,7 @@ lt{
"&[before 1]T<Å¡<<<Å "
"&[before 1]Ʒ<ž<<<Ž"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/lt_LT.txt b/Build/source/libs/icu-xetex/data/coll/lt_LT.txt
index 9e57d4484a5..67958a46c73 100644
--- a/Build/source/libs/icu-xetex/data/coll/lt_LT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/lt_LT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/lv.txt b/Build/source/libs/icu-xetex/data/coll/lv.txt
index 3628b01a68f..86a49f42205 100644
--- a/Build/source/libs/icu-xetex/data/coll/lv.txt
+++ b/Build/source/libs/icu-xetex/data/coll/lv.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/lv.xml
+// * Source File:<path>/common/collation/lv.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/lv.xml
+ * ICU <specials> source: <path>/xml/collation/lv.xml
*/
lv{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -24,7 +24,7 @@ lv{
"&[before 1]T<Å¡<<<Å "
"&[before 1]Ʒ<ž<<<Ž"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/lv_LV.txt b/Build/source/libs/icu-xetex/data/coll/lv_LV.txt
index b0bee937346..f4532d7e22e 100644
--- a/Build/source/libs/icu-xetex/data/coll/lv_LV.txt
+++ b/Build/source/libs/icu-xetex/data/coll/lv_LV.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/mk.txt b/Build/source/libs/icu-xetex/data/coll/mk.txt
index b8701118cbb..a53f319234e 100644
--- a/Build/source/libs/icu-xetex/data/coll/mk.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mk.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/mk.xml
+// * Source File:<path>/common/collation/mk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/mk.xml
+ * ICU <specials> source: <path>/xml/collation/mk.xml
*/
mk{
- Version{"1.15"}
+ Version{"1.16"}
collations:alias{"ru/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/mk_MK.txt b/Build/source/libs/icu-xetex/data/coll/mk_MK.txt
index bf9a7915ad5..bfdafe70b11 100644
--- a/Build/source/libs/icu-xetex/data/coll/mk_MK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mk_MK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ml.txt b/Build/source/libs/icu-xetex/data/coll/ml.txt
index 2af6ecf4fa6..2510718a771 100644
--- a/Build/source/libs/icu-xetex/data/coll/ml.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ml.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ml.xml
+// * Source File:<path>/common/collation/ml.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/collation/ml.xml
+ */
ml{
- /**
- * Draft
- */
- Version{"1.5"}
+ Version{"1.7"}
collations{
standard{
Sequence{" [normalization on ]&à´²<à´µ&à´´<à´±&à´¹<à´ƒ<à´‚"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/mr.txt b/Build/source/libs/icu-xetex/data/coll/mr.txt
index 81821928446..d93cdc88897 100644
--- a/Build/source/libs/icu-xetex/data/coll/mr.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mr.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/mr.xml
+// * Source File:<path>/common/collation/mr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/mr.xml
+ * ICU <specials> source: <path>/xml/collation/mr.xml
*/
mr{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/mr_IN.txt b/Build/source/libs/icu-xetex/data/coll/mr_IN.txt
index 775e6aae348..dc468fb7ccc 100644
--- a/Build/source/libs/icu-xetex/data/coll/mr_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mr_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ms.txt b/Build/source/libs/icu-xetex/data/coll/ms.txt
index 537d3357fcb..6309a99a272 100644
--- a/Build/source/libs/icu-xetex/data/coll/ms.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ms.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ms_BN.txt b/Build/source/libs/icu-xetex/data/coll/ms_BN.txt
index 2ee27bb4664..6153a32cb70 100644
--- a/Build/source/libs/icu-xetex/data/coll/ms_BN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ms_BN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ms_MY.txt b/Build/source/libs/icu-xetex/data/coll/ms_MY.txt
index b51135dd67b..e3ded76635b 100644
--- a/Build/source/libs/icu-xetex/data/coll/ms_MY.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ms_MY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/mt.txt b/Build/source/libs/icu-xetex/data/coll/mt.txt
index 9987781f1c2..7784d4ccbcf 100644
--- a/Build/source/libs/icu-xetex/data/coll/mt.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mt.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/mt.xml
+// * Source File:<path>/common/collation/mt.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/mt.xml
+ * ICU <specials> source: <path>/xml/collation/mt.xml
*/
mt{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -21,7 +21,7 @@ mt{
"&[before 1]i<Ħ<<<ħ"
"&[before 1]z<Ż<<<ż"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/mt_MT.txt b/Build/source/libs/icu-xetex/data/coll/mt_MT.txt
index 45abe875a05..3563f0a9586 100644
--- a/Build/source/libs/icu-xetex/data/coll/mt_MT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/mt_MT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/nb.txt b/Build/source/libs/icu-xetex/data/coll/nb.txt
index 71db9712ec5..5fbcf5890d4 100644
--- a/Build/source/libs/icu-xetex/data/coll/nb.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nb.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/nb.xml
+// * Source File:<path>/common/collation/nb.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/nb.xml
+ * ICU <specials> source: <path>/xml/collation/nb.xml
*/
nb{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -20,7 +20,7 @@ nb{
"&Y<<ü<<<Ü<<ű<<<Ű"
"&[before 1]Ê’<æ<<<Æ<<ä<<<Ä<<Ä™<<<Ę<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<<Å“<<<Å’<Ã¥<<<Ã…"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/nb_NO.txt b/Build/source/libs/icu-xetex/data/coll/nb_NO.txt
index f6c67b6254f..6eacabfa76b 100644
--- a/Build/source/libs/icu-xetex/data/coll/nb_NO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nb_NO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/nl.txt b/Build/source/libs/icu-xetex/data/coll/nl.txt
index 447195a0a3b..db2f7d06974 100644
--- a/Build/source/libs/icu-xetex/data/coll/nl.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nl.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/nl_BE.txt b/Build/source/libs/icu-xetex/data/coll/nl_BE.txt
index 86a8f148006..41de8ae7627 100644
--- a/Build/source/libs/icu-xetex/data/coll/nl_BE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nl_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/nl_NL.txt b/Build/source/libs/icu-xetex/data/coll/nl_NL.txt
index e8f376c7cc2..78ac690d389 100644
--- a/Build/source/libs/icu-xetex/data/coll/nl_NL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nl_NL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/nn.txt b/Build/source/libs/icu-xetex/data/coll/nn.txt
index 872487e7e98..3237d0abd09 100644
--- a/Build/source/libs/icu-xetex/data/coll/nn.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nn.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/nn.xml
+// * Source File:<path>/common/collation/nn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/nn.xml
+ * ICU <specials> source: <path>/xml/collation/nn.xml
*/
nn{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -20,7 +20,7 @@ nn{
"&Y<<ü<<<Ü<<ű<<<Ű"
"&[before 1]Ê’<æ<<<Æ<<ä<<<Ä<<Ä™<<<Ę<ø<<<Ø<<ö<<<Ö<<Å‘<<<Å<<Å“<<<Å’<Ã¥<<<Ã…"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/nn_NO.txt b/Build/source/libs/icu-xetex/data/coll/nn_NO.txt
index c09d9af4b07..40f1cc7f137 100644
--- a/Build/source/libs/icu-xetex/data/coll/nn_NO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/nn_NO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/om.txt b/Build/source/libs/icu-xetex/data/coll/om.txt
index 3c77fea4920..251d4283d66 100644
--- a/Build/source/libs/icu-xetex/data/coll/om.txt
+++ b/Build/source/libs/icu-xetex/data/coll/om.txt
@@ -1,23 +1,23 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/om.xml
+// * Source File:<path>/common/collation/om.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/om.xml
+ * ICU <specials> source: <path>/xml/collation/om.xml
*/
om{
- Version{"1.11"}
+ Version{"1.12"}
collations{
standard{
Sequence{
"&Z<ch<<<Ch<<<CH<dh<<<Dh<<<DH<kh<<<Kh<<<KH<ny<<<Ny<<<NY<ph<<<Ph<<<PH<"
"sh<<<Sh"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/om_ET.txt b/Build/source/libs/icu-xetex/data/coll/om_ET.txt
index bf48efef5f0..a6f83875c03 100644
--- a/Build/source/libs/icu-xetex/data/coll/om_ET.txt
+++ b/Build/source/libs/icu-xetex/data/coll/om_ET.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/om_KE.txt b/Build/source/libs/icu-xetex/data/coll/om_KE.txt
index 69677378800..e9dc5a5b279 100644
--- a/Build/source/libs/icu-xetex/data/coll/om_KE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/om_KE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/or.txt b/Build/source/libs/icu-xetex/data/coll/or.txt
index c9eccc11898..1d39448ded3 100644
--- a/Build/source/libs/icu-xetex/data/coll/or.txt
+++ b/Build/source/libs/icu-xetex/data/coll/or.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/or.xml
+// * Source File:<path>/common/collation/or.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/collation/or.xml
+ */
or{
- /**
- * Draft
- */
- Version{"1.5"}
+ Version{"1.7"}
collations{
standard{
Sequence{" [normalization on ]&ହ<କà­à¬·<ଡ଼<ଢ଼<à­Ÿ<à­±<ଵ<ଂ<ଃ<à¬<à­<଼"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/pa.txt b/Build/source/libs/icu-xetex/data/coll/pa.txt
index 30c8555af8d..99a8995f6c7 100644
--- a/Build/source/libs/icu-xetex/data/coll/pa.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pa.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/pa.xml
+// * Source File:<path>/common/collation/pa.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/pa.xml
+ * ICU <specials> source: <path>/xml/collation/pa.xml
*/
pa{
- Version{"1.19"}
+ Version{"1.22"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/pa_IN.txt b/Build/source/libs/icu-xetex/data/coll/pa_IN.txt
index ff5dde38eee..5575c9debdb 100644
--- a/Build/source/libs/icu-xetex/data/coll/pa_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pa_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/pl.txt b/Build/source/libs/icu-xetex/data/coll/pl.txt
index 3593c1f9844..c018b34ed31 100644
--- a/Build/source/libs/icu-xetex/data/coll/pl.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pl.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/pl.xml
+// * Source File:<path>/common/collation/pl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/pl.xml
+ * ICU <specials> source: <path>/xml/collation/pl.xml
*/
pl{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -23,7 +23,7 @@ pl{
"&S<Å›<<<Åš"
"&Z<ź<<<Ź<ż<<<Ż"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/pl_PL.txt b/Build/source/libs/icu-xetex/data/coll/pl_PL.txt
index 6c620fa33c3..352a77fa7b2 100644
--- a/Build/source/libs/icu-xetex/data/coll/pl_PL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pl_PL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ps.txt b/Build/source/libs/icu-xetex/data/coll/ps.txt
index 01a047a38fe..8948d24a7a3 100644
--- a/Build/source/libs/icu-xetex/data/coll/ps.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ps.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ps.xml
+// * Source File:<path>/common/collation/ps.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ps.xml
+ * ICU <specials> source: <path>/xml/collation/ps.xml
*/
ps{
- Version{"1.19"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -32,7 +32,7 @@ ps{
"&ÛŒ<<Ù‰<<Û’<<ÙŠ<<Û<<Û<<یٔ<<<Ù‰Ù”<<<ئ"
"&'\u00A0'<<'\u200C'<<'\u200D'"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ps_AF.txt b/Build/source/libs/icu-xetex/data/coll/ps_AF.txt
index f186ffc1a97..302e711758b 100644
--- a/Build/source/libs/icu-xetex/data/coll/ps_AF.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ps_AF.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/pt.txt b/Build/source/libs/icu-xetex/data/coll/pt.txt
index 94e3be6c35d..1d8dd93a4be 100644
--- a/Build/source/libs/icu-xetex/data/coll/pt.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pt.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/pt_BR.txt b/Build/source/libs/icu-xetex/data/coll/pt_BR.txt
index d0215cc06c0..6eba47cd4a0 100644
--- a/Build/source/libs/icu-xetex/data/coll/pt_BR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pt_BR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/pt_PT.txt b/Build/source/libs/icu-xetex/data/coll/pt_PT.txt
index bbb7c1495c4..d335c676a38 100644
--- a/Build/source/libs/icu-xetex/data/coll/pt_PT.txt
+++ b/Build/source/libs/icu-xetex/data/coll/pt_PT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ro.txt b/Build/source/libs/icu-xetex/data/coll/ro.txt
index 9546aea040c..2c04f794f6d 100644
--- a/Build/source/libs/icu-xetex/data/coll/ro.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ro.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ro.xml
+// * Source File:<path>/common/collation/ro.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ro.xml
+ * ICU <specials> source: <path>/xml/collation/ro.xml
*/
ro{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{"&A<ă<<<Ä‚<â<<<Â&D<Ä‘<<<Ä&I<î<<<ÃŽ&S<ÅŸ=È™<<<Åž=Ș&T<Å£=È›<<<Å¢=Èš&Z<ż<<<Å»"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ro_RO.txt b/Build/source/libs/icu-xetex/data/coll/ro_RO.txt
index 8295b90817b..9bcacf87872 100644
--- a/Build/source/libs/icu-xetex/data/coll/ro_RO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ro_RO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/root.txt b/Build/source/libs/icu-xetex/data/coll/root.txt
index 77413606f01..2d7dae430bb 100644
--- a/Build/source/libs/icu-xetex/data/coll/root.txt
+++ b/Build/source/libs/icu-xetex/data/coll/root.txt
@@ -1,22 +1,2772 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/root.xml
+// * Source File:<path>/common/collation/root.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/root.xml
+ * ICU <specials> source: <path>/xml/collation/root.xml
*/
root{
UCARules:process(uca_rules){"../unidata/UCARules.txt"}
- Version{"1.22"}
+ Version{"1.24"}
collations{
default{"standard"}
standard{
Sequence{""}
- Version{"1.3"}
+ Version{"1.4"}
+ }
+ unihan{
+ Sequence{
+ "&[before 2]a<<Ä<<<Ä€<<á<<<Ã<<ÇŽ<<<Ç<<à<<<À"
+ "&[before 2]e<<ē<<<Ē<<é<<<É<<ě<<<Ě<<è<<<È"
+ "&e<<ê̄<<<Ê̄<<ế<<<Ế<<ê̌<<<Ê̌<<á»<<<Ề"
+ "&[before 2]i<<Ä«<<<Ī<<í<<<Ã<<Ç<<<Ç<<ì<<<ÃŒ"
+ "&[before 2]m<<m̄<<<M̄<<ḿ<<<Ḿ<<m̌<<<M̌<<m̀<<<M̀"
+ "&[before 2]n<<n̄<<<N̄<<ń<<<Ń<<ň<<<Ň<<ǹ<<<Ǹ"
+ "&[before 2]o<<Å<<<ÅŒ<<ó<<<Ó<<Ç’<<<Ç‘<<ò<<<Ã’"
+ "&[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù"
+ "&U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü"
+ "&[last regular ]<一<ä¸<丂<七<丄<丅<丆<ð €€<ð €<𠀂<万<丈<三<上<下<丌<äº<å„<𠀃<𠀄<ð €…<𠀆<"
+ "ä¸<与<ä¸<ä¸<丑<丒<专<丗<𠀇<𠀈<𠀉<𠀊<𠀋<𠀌<ä¸<且<丕<世<丘<丙<业<丛<东<ä¸<ã€<ð €<𠀎<ð €<ð €<"
+ "𠀑<ð €’<𠀓<ð €”<𠀕<ð €–<ð €—<丞<丟<丠<両<丢<ã<ã‚<𠀘<ð €™<𠀚<𠀜<𠀞<𠀟<ð € <丣<两<严<丽<𠀡<"
+ "𠀢<𠀣<𠀤<𠀦<𠀧<𠀨<𠀪<𠀫<丽<並<丧<𠀬<𠀭<𠀮<𠀰<𠀱<𠀲<𠀳<𠀴<並<𠀵<𠀶<𠀸<𠀺<"
+ "ð €»<ð €½<ð €¾<𠀿<ð €<𠤢<ð <ð ‚<ð ƒ<ð „<ð …<ð †<ð ‡<ð ˆ<ð Š<ð ‹<ð Œ<ð <ð Ž<ð <ð <ð ‘<ð ’"
+ "<ð “<ð ”<ð •<ð —<ð ˜<ð ™<ð š<ð ›<ð <ð¤³<ð –<ð Ÿ<ð  <丨<丩<ð ¡<ð ¢<个<丫<ãƒ<ã„<中<丮<丯<丰<ð £"
+ "<丱<ð ¥<ð ¦<串<ð §<ð ¨<串<丳<ð ©<ð ª<ð «<ð ¬<临<ð ­<ð ®<ð ¯<丵<ð °<ð ±<ð ³<ð ´<ð µ<ð ¶<ð ¸<"
+ "ð ¹<ð º<ð »<丶<丷<丸<义<ð ¼<ð ½<丸<丹<为<ð ¿<丹<主<丼<ð ‚€<ð ‚<ð ‚‚<举<𠂃<ð ‚„<ð ‚…<丿<ä¹€<ä¹<ä¹<乂<"
+ "乃<乄<ã…<𠂆<𠂇<𠂈<𠂉<ð ‚Š<ä¹…<乆<乇<么<乊<ð ‚‹<ð ‚Œ<ð ‚<ð ‚Ž<之<乌<å°¹<ð ‚<ð ‚<ð ‚‘<ð ‚’<ð ‚“<ä¹<乎<"
+ "ä¹<ä¹<ð ‚”<ð ‚•<ð ‚–<ð ‚—<𠂘<ð ‚™<ð ‚š<ð ‚›<ð ‚œ<ð ‚<ð ‚ž<ð ‚Ÿ<ð ‚ <ð ‚¡<乑<ä¹’<乓<ä¹”<ã†<ð ‚¢<ð ‚£<𠂤<ð ‚¥<"
+ "𠂦<𠂧<𠂩<𠂪<𠂫<𠂭<乕<𠂯<乖<𠂲<𠂳<𠂶<乗<𠂴<𠂷<乘<𠂹<𠂺<𠂻<𠂼<𠂽<𠂾<𠂿<𠃀<"
+ "ð ƒ<𠃂<𠃃<𠃄<𠃆<ð ƒ…<𠃇<𠃈<ä¹™<乚<ä¹›<𠃉<𠃊<𠃋<𠃌<ð ƒ<𠃎<𠃑<乜<ä¹<é¾´<ð ƒ<ð ƒ<乞<也<ä¹ "
+ "<ã‡<ãˆ<ã‰<ð ƒ’<𠃓<𠃔<ä¹£<乤<ä¹¥<书<ãŠ<ã‹<ð ¾<𠃕<ð ƒ–<ð ƒ—<𠃘<𠃙<𠃚<𠃛<𠃜<ð ƒ<乧<ãŒ<ã<ãŽ<ã<"
+ "𠃞<𠃟<ð ƒ <𠃡<𠃢<𠃣<乨<乩<乪<乫<乬<ä¹­<ä¹®<乯<ä¹°<ã<ã‘<ã’<ã“<ã”<ã•<𠃤<𠃥<𠃦<𠃧<𠃨<ä¹±<ä¹²<ã–"
+ "<ã—<ã˜<𠃩<𠃪<𠃬<ð §<ä¹³<ä¹´<ä¹µ<乶<ä¹·<乸<ã™<ãš<ã›<ð ƒ­<𠃮<𠃯<ä¹¹<乺<ä¹»<ä¹¼<ãœ<ã<ãž<ãŸ<ã <𠂸<𠃲<"
+ "𠃳<ð ƒ´<𠃵<𠃶<ð ƒ·<ä¹½<𠃸<𠃹<𠃺<𠃻<𤱡<ä¹¾<乿<亀<ã¡<ã¢<ã£<𠃼<𠃽<𠃾<𠃿<ð „€<ð „<ð „‚<äº<ã¤"
+ "<ð¥€<亂<亃<亄<𠄃<ð „„<亂<ð „…<𠄆<𠄇<𠄈<𢆡<ã¥<𠄉<ã¦<ð „Š<ð „‹<亅<ð „Œ<了<ð „<ð „Ž<ð „<ð „<了<亇"
+ "<ð „‘<予<ã§<ð „’<ð „“<ð „”<争<𠀩<ð „•<亊<ð „–<ð „—<𠄘<事<ã¨<ð „™<ð „š<ð „›<ð „œ<ð „<二<ð „ž<ð „Ÿ<ð „ <äº<"
+ "于<äº<云<互<亓<五<井<亖<ð „¡<亗<亘<亙<亚<ð „¢<ð „£<𠄤<ð „¥<𠄦<𠄧<ð „¢<些<亜<ð €¥<𠄨<ð „©<𠄪<äº<亞<"
+ "亟<ã©<ð „«<𠄬<ð „­<ð „®<𠄯<ð „°<ð „±<ð „²<ð „³<ð „µ<𠄶<ð „·<𠄸<ð „¹<𠄺<ð „»<ð „¼<ð „½<ð „¾<ð „¿<ð …€<亠"
+ "<亡<亢<亣<ð …<ð …‚<交<亥<亦<产<ãª<ã«<ð …ƒ<ð …„<ð ……<ð …†<ð …‡<亨<亩<亪<ã¬<ð …ˆ<ð …‰<ð …Š<ð …‹<享<京<ã­<ð …Œ"
+ "<ð …<ð …Ž<ð …<ð …<ð …‘<ð …’<亭<亮<亯<亰<亱<亲<ð …“<ð …”<ð …•<亮<亳<ð …–<ð …˜<ð …™<ð …š<ð …›<ð …œ<ð …<ð …ž<"
+ "ð …Ÿ<ð … <ð …¡<ð …¢<ð …£<ð …¤<ð …¥<ð …¦<ð …§<亴<亵<ð …¨<ð …©<ð …ª<ð …«<ð …¬<ð …­<ð …®<ð …¯<ð …²<亶<亷<ã®<ð …³<"
+ "ð …´<ð …µ<ð …¶<ð …·<ð …¸<ð …º<ð …»<ð …¼<𠆀<ð …¾<ð …¿<ð †<𠆂<𠆃<𠆄<ð †…<𠆆<𠆇<𠆈<𠆉<亸<𠆋<𠆌<"
+ "ð †<𠆎<ð †<ð †<𠆑<ð †’<𠆔<ð †–<ð †—<𠆘<ã¯<𠆚<ð †<亹<𠆞<𠆟<ð † <𠆡<人<亻<𠆢<亼<亽<亾<亿<"
+ "𠆣<𠆤<𠆥<什<ä»<仂<仃<仄<ä»…<仆<仇<仈<仉<今<介<仌<ä»<从<ä»<ä»<仑<ä»’<仓<𠆦<𠆧<𠆨<什<仌<ä»”<仕<ä»–<"
+ "ä»—<付<ä»™<仚<ä»›<仜<ä»<仞<仟<ä» <仡<仢<代<令<以<仦<仧<仨<仩<仪<仫<们<ä»­<ã°<ã±<ã²<ã³<ã´<ãµ<ã¶<ã·<𠆩<𠆪<"
+ "𠆫<𠆬<ð †­<𠆯<ð †°<𠆳<令<ä»®<仯<ä»°<ä»±<仲<仳<ä»´<仵<件<ä»·<仸<仹<仺<ä»»<仼<份<仾<仿<ä¼€<ä¼<伂<伃<伄<ä¼…<"
+ "伆<伇<伈<伉<伊<伋<伌<ä¼<伎<ä¼<ä¼<休<ä¼’<伓<ä¼”<伕<ä¼–<ä¼—<优<ä¼™<会<ä¼›<伜<ä¼<伞<伟<ä¼ <伡<ä¼¢<ä¼£<伤<ä¼¥<伦<伧<"
+ "伨<伩<伪<伫<伬<佤<ã¸<ã¹<ãº<ã»<ã¼<ã½<ã¾<ã¿<ã‘€<ð †´<𠆵<𠆶<ð †·<𠆸<𠆹<𠆺<𠆻<𠆼<𠆽<𠆾<𠆿<𠇀"
+ "<ð ‡<𠇂<𠇃<𠇄<ð ‡…<𠇆<𠇇<𠇈<𠇉<𠇊<𠇋<𠇌<ð ‡<𠇎<ð ‡<ð ‡<𠇑<𠇓<𠇔<𠇕<ä¼­<ä¼®<伯<ä¼°"
+ "<ä¼±<ä¼²<ä¼³<ä¼´<ä¼µ<伶<ä¼·<伸<ä¼¹<伺<ä¼»<ä¼¼<ä¼½<ä¼¾<伿<ä½€<ä½<佂<佃<佄<ä½…<但<佇<佈<佉<佊<佋<佌<ä½<低<ä½<ä½<佑<ä½’"
+ "<体<ä½”<何<ä½–<ä½—<佘<ä½™<佚<ä½›<作<ä½<佞<佟<ä½ <佡<ä½¢<ä½£<ä½¥<佦<佧<佨<ã‘<ã‘‚<㑃<ã‘„<ã‘…<㑆<㑇<㑈<ð ‡–<ð ‡—<𠇘<"
+ "𠇙<𠇚<𠇛<𠇜<ð ‡<𠇞<𠇟<ð ‡ <𠇡<𠇢<𠇣<𠇤<𠇥<𠇦<𠇧<𠇨<𠇩<𠇪<𠇫<𠇬<ð ‡­<𠇮<𠇯"
+ "<ð ‡°<𠇱<𠇲<𠇳<ð ‡´<𠇵<𠇶<ð ‡·<𠇸<𠇹<𠇺<𠇻<𠇼<𠇽<𠇾<𠇿<𠈀<ð ˆ<ä½ <佩<佪<佫<佬<ä½­<ä½®"
+ "<佯<ä½°<ä½±<ä½²<ä½³<ä½´<ä½µ<佶<ä½·<佸<ä½¹<佺<ä½»<ä½¼<ä½½<ä½¾<使<ä¾€<ä¾<侂<侃<侄<ä¾…<來<侇<侈<侉<侊<例<侌<ä¾<侎<ä¾<ä¾"
+ "<侑<ä¾’<侓<ä¾”<侕<ä¾–<ä¾—<侘<ä¾™<侚<ä¾›<侜<ä¾<侞<侟<ä¾ <価<ä¾¢<ä¾£<侤<ä¾¥<侦<侧<侨<侩<侪<侫<侬<ä¾­<㑉<ã‘Š<ã‘‹<ã‘Œ<ã‘"
+ "<ã‘Ž<ã‘<ã‘<ã‘‘<ã‘’<ã‘“<ã‘”<ã‘•<ã‘–<𠈃<𠈄<ð ˆ…<𠈆<𠈇<𠈈<𠈉<𠈊<𠈋<𠈌<ð ˆ<𠈎<ð ˆ<ð ˆ<𠈑<ð ˆ’<"
+ "𠈓<𠈔<𠈕<ð ˆ–<ð ˆ—<𠈘<𠈙<𠈚<𠈛<𠈜<ð ˆ<𠈞<𠈟<ð ˆ <𠈡<𠈢<𠈣<𠈥<𠈦<𠈧<𠈨<𠈩<𠈪"
+ "<𠈫<𠈬<來<例<ä¾€<ä¾®<侯<ä¾°<ä¾±<ä¾²<ä¾³<ä¾´<ä¾µ<侶<ä¾·<侸<ä¾¹<侺<ä¾»<ä¾¼<ä¾½<ä¾¾<便<ä¿€<ä¿<ä¿‚<促<ä¿„<ä¿…<俆<俇<俈<俉"
+ "<ä¿Š<ä¿‹<ä¿Œ<ä¿<ä¿Ž<ä¿<ä¿<ä¿‘<ä¿’<ä¿“<ä¿”<ä¿•<ä¿–<ä¿—<俘<ä¿™<ä¿š<ä¿›<ä¿œ<ä¿<ä¿ž<ä¿Ÿ<ä¿ <ä¿¡<ä¿¢<ä¿£<俤<ä¿¥<俦<俧<俨<ä¿©<俪<ä¿«"
+ "<俬<ä¿­<ã‘—<㑘<ã‘™<ã‘š<ã‘›<ã‘œ<ã‘<ã‘ž<ã‘Ÿ<ã‘ <ã‘¡<ã‘¢<ð ˆ­<𠈮<𠈯<ð ˆ°<𠈱<𠈲<𠈳<ð ˆ´<𠈵<𠈶<ð ˆ·<𠈸<𠈹<"
+ "𠈺<𠈻<𠈼<𠈽<𠈾<𠈿<𠉀<ð ‰<𠉂<𠉃<𠉄<ð ‰…<𠉆<𠉇<𠉈<𠉉<𠉊<𠉋<𠉌<ð ‰<𠉎<ð ‰<ð ‰"
+ "<𠉑<ð ‰’<𠉓<𠉔<𠉕<ð ‰–<ð ‰—<𠉘<𠉙<𠉚<𠉛<𠉜<ð ‰<𠉞<𠉟<ð ‰ <𠉡<𠉢<便<ä¾®<ä¾®<ä¾»<ä¿®<俯<ä¿°"
+ "<俱<俲<俳<ä¿´<俵<俶<ä¿·<俸<俹<俺<ä¿»<俼<俽<俾<ä¿¿<倀<å€<倂<倃<倄<倅<倆<倇<倈<倉<倊<個<倌<å€<倎<å€<å€<們<倒"
+ "<倓<倔<倕<倖<倗<倘<候<倚<倛<倜<å€<倞<借<倠<倡<倢<倣<値<倥<倦<倧<倨<倩<倪<倫<倬<倭<倮<倯<倰<倱<倲<倳<倴"
+ "<倵<倶<倷<倸<倹<债<倻<值<倽<倾<倿<㑣<㑥<㑦<㑧<㑨<㑩<㑪<㑫<㑬<㑭<𠉣<𠉤<𠉥<𠉦<𠉧<𠉨<𠉩<𠉪<"
+ "𠉫<𠉬<ð ‰­<𠉮<𠉯<ð ‰°<𠉱<𠉲<𠉳<ð ‰´<𠉵<𠉶<ð ‰·<𠉸<𠉹<𠉺<𠉻<𠉼<𠉽<𠉾<𠉿<𠊀<ð Š"
+ "<ð Š‚<𠊃<ð Š„<ð Š…<𠊆<𠊇<𠊈<𠊉<ð ŠŠ<ð Š‹<ð ŠŒ<ð Š<ð ŠŽ<ð Š<ð Š<ð Š‘<ð Š’<ð Š“<ð Š”<ð Š•<ð Š–<ð Š—<"
+ "𠊘<ð Š™<ð Šš<ð Š›<ð Šœ<ð Š<ð Šž<ð ŠŸ<ð Š <ð Š¡<𠊢<𠊣<𠊤<𠊥<𠊦<ð ‹Ÿ<倫<倂<å€<å<å‚<åƒ<å„<å…<å†<å‡<"
+ "åˆ<å‰<åŠ<å‹<åŒ<å<åŽ<å<å<å‘<å’<å“<å”<å•<å–<å—<å˜<å™<åš<å›<åœ<å<åž<åŸ<å <å¡<å¢<å£<å¤<å¥<å¦<å§<å¨<å©<"
+ "åª<å«<å¬<å­<å®<å¯<å°<å±<å²<å³<å´<åµ<å¶<å·<å¸<å¹<åº<å»<å¼<å½<å¾<å¿<㑤<ã‘®<㑯<ã‘°<㑱<㑲<𠊧<𠊨<ð Š©<𠊪<"
+ "ð Š«<𠊬<ð Š­<ð Š®<𠊯<ð Š°<𠊱<𠊲<𠊳<ð Š´<𠊵<𠊶<ð Š·<𠊸<𠊹<𠊺<ð Š»<𠊼<𠊽<𠊾<ð Š¿<ð ‹€<ð ‹"
+ "<ð ‹‚<𠋃<ð ‹„<ð ‹…<𠋆<𠋇<𠋈<𠋉<ð ‹Š<ð ‹‹<ð ‹Œ<ð ‹<ð ‹Ž<ð ‹<ð ‹<ð ‹’<ð ‹“<ð ‹”<ð ‹•<ð ‹–<ð ‹—<𠋘<"
+ "ð ‹™<ð ‹š<ð ‹›<ð ‹œ<ð ‹<ð ‹ž<ð ‹ <ð ‹¡<ð ‹¢<ð ‹£<𠋤<ð ‹¥<𠋦<𠋧<𠋨<ð ‹©<𠋪<ð ‹«<𠋬<åº<å‚€<å‚<å‚‚<傃<å‚„"
+ "<å‚…<傆<傇<傈<傉<å‚Š<å‚‹<å‚Œ<å‚<å‚Ž<å‚<å‚<å‚‘<å‚’<å‚“<å‚”<å‚•<å‚–<å‚—<傘<å‚™<å‚š<å‚›<å‚œ<å‚<å‚ž<å‚Ÿ<å‚ <å‚¡<å‚¢<å‚£<傤<å‚¥<傦"
+ "<傧<储<傩<㑳<㑴<㑵<㑶<㑷<㑸<㑹<㑺<𠋭<𠋮<𠋯<𠋰<𠋱<𠋲<𠋳<𠋴<𠋵<𠋶<𠋷<𠋸<𠋹<𠋺<𠋻<"
+ "ð ‹¼<ð ‹½<ð ‹¾<ð ‹¿<𠌀<ð Œ<𠌂<𠌃<𠌄<𠌅<𠌇<𠌈<𠌉<𠌊<𠌋<𠌌<ð Œ<𠌎<ð Œ<ð Œ<𠌑<𠌒<𠌓"
+ "<𠌔<𠌕<𠌖<𠌗<𠌘<𠌙<𠌚<𠌛<𠌜<ð Œ<𠌠<𠌡<𠌢<𠌣<𠌤<𠌥<𠌦<𠌧<𠌨<𠌩<å‚™<傪<å‚«<催"
+ "<å‚­<å‚®<傯<å‚°<傱<傲<傳<å‚´<債<傶<å‚·<傸<傹<傺<å‚»<傼<傽<傾<å‚¿<僀<åƒ<僂<僃<僄<僅<僆<僇<僈<僉<僊<僋<僌<åƒ<ã‘»"
+ "<㑼<㑽<㑾<ã‘¿<ã’€<ã’<𠌫<𠌬<𠌭<𠌮<𠌯<𠌰<𠌱<𠌲<𠌳<𠌴<𠌵<𠌶<𠌷<𠌸<𠌹<𠌺<𠌻<𠌼<"
+ "𠌽<𠌾<𠌿<ð €<ð <ð ‚<ð ƒ<ð „<ð …<ð †<ð ‡<ð ˆ<ð ‰<ð Š<ð ‹<ð Œ<ð <ð Ž<ð <ð <ð ‘<ð ’<ð “"
+ "<ð ”<ð •<ð –<ð —<ð ˜<ð ™<ð š<ð ›<ð œ<ð <ð ž<ð Ÿ<ð  <ð ¡<ð £<ð ¤<ð ¦<ð §<ð ¨<ð ©<ð ª<ð «<"
+ "ð ¬<𠎵<僎<åƒ<åƒ<僑<僒<僓<僔<僕<僖<僗<僘<僙<僚<僛<僜<åƒ<僞<僟<僠<僡<僢<僣<僤<僥<僦<僧<僨<僩<僪<僫<僬<"
+ "僭<僮<僯<僰<僱<僳<僴<僷<ã’‚<ã’ƒ<ã’„<ã’…<ã’†<ã’‡<ã’ˆ<ã’‰<ã’Š<ã’‹<ã’Œ<ã’<ã’Ž<ã’<ã’<ð ¥<ð ­<ð ®<ð ¯<ð °<ð ±<ð ²<"
+ "ð ³<ð ´<ð µ<ð ¶<ð ·<ð ¸<ð ¹<ð º<ð »<ð ¼<ð ½<ð ¾<ð ¿<𠎀<ð Ž<ð Ž‚<𠎃<ð Ž„<ð Ž…<𠎆<𠎇<𠎈<𠎉"
+ "<ð ŽŠ<ð Ž‹<ð ŽŒ<ð Ž<ð ŽŽ<ð Ž<ð Ž<ð Ž‘<ð Ž’<ð Ž“<ð Ž”<ð Ž•<ð Ž–<ð Ž—<ð Ž™<ð Žš<ð Ž<ð Žž<ð ŽŸ<ð Ž <ð Ž¡<𠎢<"
+ "𠎣<𠎤<𠎥<𠎦<𠎧<𠎨<ð Ž©<𠎪<ð Ž«<𠎬<ð Ž­<ð Ž®<𠎯<ð Ž°<𠎱<𠎲<𠎳<ð Ž´<ð <僚<僧<僧<åƒ<僲<僵"
+ "<僶<僸<價<僺<僻<僼<僽<僾<僿<å„€<å„<å„‚<儃<å„„<å„…<儆<儇<儈<儉<å„Š<å„‹<å„Œ<å„<å„Ž<å„<ã’‘<ã’’<ã’“<ã’”<ã’•<ã’–<ã’—<ã’˜<"
+ "ð Ž·<𠎸<𠎹<𠎺<ð Ž»<𠎼<𠎽<𠎾<ð Ž¿<ð €<ð <ð ‚<ð ƒ<ð „<ð …<ð †<ð ‡<ð ˆ<ð ‰<ð Š<ð ‹<ð Œ<ð "
+ "<ð Ž<ð <ð ‘<ð ”<ð •<ð –<ð —<ð ˜<ð ™<ð š<ð ›<ð œ<ð <ð ž<ð Ÿ<ð  <ð ¡<ð ¢<ð £<ð ¤<ð ¥<ð ¦<å„"
+ "<å„‘<å„’<å„“<å„”<å„•<å„–<å„—<儘<å„™<å„š<å„›<å„œ<å„<å„ž<å„«<ã’™<ã’š<ã’›<ã’œ<ð ’<ð ¨<ð ©<ð ª<ð «<ð ¬<ð ­<ð ®<ð ¯<ð °"
+ "<ð ±<ð ²<ð ³<ð ´<ð µ<ð ¶<ð ·<ð ¸<ð ¹<ð º<ð »<ð ¼<ð ½<ð ¾<ð ¿<ð €<ð <ð ‚<ð ƒ<ð „<ð …<ð †<"
+ "ð ‡<å„Ÿ<å„ <å„¡<å„¢<å„£<儤<å„¥<儦<儧<儨<å„©<優<儬<ã’<ã’ž<ð ˆ<ð ‰<ð Š<ð ‹<ð Œ<ð <ð Ž<ð <ð <ð ‘<ð ’<ð “"
+ "<ð ”<ð •<ð –<ð —<ð ˜<ð ™<ð š<ð ›<ð <ð ž<ð Ÿ<ð  <ð ¡<ð ¢<ã’ž<å„­<å„®<儯<å„°<儱<儲<ã’Ÿ<ã’ <ð £<ð ¤<"
+ "ð ¥<ð ¦<ð §<ð ¨<ð ©<ð ª<ð «<ð ¬<ð ­<ð ®<ð ¯<ð °<ð ±<ð ²<ð ³<ð ´<ð µ<ð ¶<ð ·<ð ¸<ð ¹<ð º<儳<"
+ "å„´<儵<ã’¡<ã’¢<ã’£<ð »<ð ¼<ð ½<ð ¾<ð ¿<ð ‘€<ð ‘<𠑃<ð ‘„<ð ‘…<𠑆<𠑇<𠑈<𠑉<ð ‘Š<ð ‘‹<ð ‘Œ<儶<ã’¤<ã’¥<ã’¦"
+ "<ð ‘<ð ‘Ž<ð ‘<ð ‘<ð ‘‘<ð ‘’<ð ‘“<ð ‘”<ð ‘•<ð ‘–<ð ‘ž<å„·<儸<儹<儺<ã’§<ã’¨<ð ‘—<𠑘<ð ‘™<ð ‘š<ð ‘›<ð ‘œ<ð ‘<"
+ "𠑟<𠑠<𠑡<𠑢<𠑣<儻<儼<𠑤<𠑥<𠑦<𠑧<𠑨<𠑩<儽<㒩<𠑪<𠑫<𠑬<𠑭<𠑮<𠑯<儾<𠑰<㒪<𠑲"
+ "<ð ‘³<ð ‘µ<å„¿<å…€<å…€<å…<å…‚<å…ƒ<𠑶<å…„<ð ‘·<𠑸<å……<å…†<å…‡<å…ˆ<å…‰<å…Š<ã’«<ð ‘¹<𠑺<ð ‘»<ð ‘¼<å……<å…‹<å…Œ<å…<å…Ž<å…<"
+ "å…<å…‘<ð ‘½<ð ‘¾<ð ‘¿<ð ’€<ð ’<ð ’‚<å…’<å…“<å…”<å…•<å…–<ã’¬<ð ’ƒ<ð ’„<ð ’…<ð ’†<ð ’‡<ð ’ˆ<ð ’‰<ð ’Š<ð ’‹<å…<å…<å…”<å…—"
+ "<å…˜<å…™<ð ’Œ<ð ’<ð ’Ž<ð ’<å…š<å…›<ã’­<ð ’<ð ’‘<ð ’’<ð ’“<ð ’”<ð ’•<ð ’–<å…œ<å…<å…ž<ã’®<ð ’—<ð ’˜<ð ’™<ð ’š<ð ’›<"
+ "ð ’œ<ð ’<å…Ÿ<å… <ð ’ž<ð ’Ÿ<ð ’ <ð ’¡<ð ’¢<ð ’£<å…¡<ð ’¤<ð ’¥<ð ’¦<å…¢<ð ’§<ð ’¨<ð ’©<ð ’ª<ð ’«<ð ’¬<ð ’­<ð ’®<ð ’¯<"
+ "ð ’°<ð ’±<ð ’²<ð ’´<ð ’µ<ð ’¶<ð ’·<å…£<ð ’³<ð ’¸<ð ’¹<ð ’º<ð ’»<ð ’¼<ð ’½<ð ’¾<ð ’¿<ð “€<ð “<ð “‚<𠓃<ð “„<ð “…<"
+ "𠓇<ã’¯<𠓆<𠓈<𠓉<ð “Š<ð “‹<ð “Ž<ð “<ð “<ð “<å…¤<ð “‘<ð “’<å…¤<ð ““<ð “”<ð “•<ð “–<ð “—<𠓘<ð “™<ð “š<å…¥<"
+ "å…¦<ð “›<å…§<ð “œ<ð “<ð “ž<å…§<ã’°<ã’±<ð “Ÿ<å…¨<æ°½<ã’²<ð ‡’<ð “ <ð “¡<ð “¢<ð “£<å…¨<ã’³<ã’´<𠓤<ð “¥<𠓦<𠓧<𠓨<å…©"
+ "<𠓩<兩<兪<𠓪<𠓫<𠓬<𠓭<𠓮<𠓯<𠓰<𠓱<𠌆<𠓲<𠓳<𠓴<𠓵<𠓶<𠓷<𠓸<𠓹<𠓺<𠓻<𠓼<"
+ "ð “½<ð “¾<ð “¿<å…«<𠔀<å…¬<å…­<å…®<å…¯<ð ”<ð ”‚<𠔃<ð ”„<å…­<å…°<ð ”…<𠔆<å…±<å…²<å…³<å…´<é¾¹<𠔈<𠔉<å…µ<ã’µ<ã’¶<ã’·<"
+ "𠔊<ð ”‹<𠔌<ð ”<𠔎<ð ”<å…¶<å…·<å…¸<ð ”<ð ”‘<ð ©–<å…·<å…¹<å…»<ã’¸<ð ”’<ð ”“<ð ””<ð ”•<ð ”–<ð ”—<å…º<å…¼<ð ”™<𠔚"
+ "<ð ”›<å…½<𠔜<ð ”<𠔜<𠔞<𠔟<ð ” <ð ”¡<𠔢<𠔣<𠔤<𠔥<𠔦<𠔧<𠔥<å…¾<å…¿<𠔨<ð ”©<𠔪<ð ”«<𠔬<"
+ "ð ”­<ð ”®<𠔯<ð ”°<ð ”±<ð ­»<冀<ð ”³<ð ”´<ð ”µ<冀<ð œ<å†<𠔶<ð ”·<𠔸<ð ”¹<𠔺<ã’¹<ã’¹<冂<ð ”¼<冃<冄<内<円<"
+ "冇<冈<ð ”½<ð ”¾<ð ”¿<ð •€<冉<冊<冋<册<ð •<ð •‚<𠕃<ð •„<ð •…<𠕆<𠕇<𠕈<𠕉<ð •Š<å†<冎<ð •‹<ð •Œ<ð •<"
+ "ð •Ž<ð •<å†<ð •‹<å†<ð •<ð •‘<ð •’<ð •“<ð •”<ð ••<å†<ã’º<ð •–<ð •—<𠕘<ð •™<ð •š<冑<冒<ð •›<ð •œ<冒<冓<冔<ð •"
+ "<𠕞<𠕟<冕<㒻<㒼<𠕠<𠕡<𠕢<冕<㒻<最<㒽<𠕣<𠕤<𠕥<㒾<𠕦<𠕧<𠕨<𠕩<𠕪<𠕬<𠕭<𠕮<𠕯<"
+ "ð •°<ð •±<ã’¿<ð •²<冖<冗<冘<ã“€<ã“<ð •³<ð •´<冗<写<冚<ð •µ<𠕶<ð •·<𠕸<军<农<ð •¹<𠕺<ð •»<ð •¼<ð •½<ð •¾<"
+ "ð •¿<å†<ð –€<ð –<ð –‚<ð –ƒ<冞<ð –„<ð –…<ð –†<冟<冠<ã“‚<ð –‡<ð –ˆ<ð –‰<ð –Š<ð –‹<冡<冢<冣<冤<冥<冦<冧<ð –Œ<ð –"
+ "<ð –Ž<ð –<ð –<ð –‘<ð –’<冤<冨<ð –“<㓃<ð –”<ð –•<ð ––<ð –—<ð –˜<ð –™<ð –š<ð –›<冩<ð –œ<ð –<ð –ž<ã“„<冪<ð – <"
+ "𠖡<𠖢<𠖣<𠖤<𠖥<𠖦<𠖧<𠖨<𠖩<𠖪<𠖫<冫<𠖬<㓅<𠖭<冬<冭<冮<冯<𠖮<𠖯<𠖰<冬<冰<冱<冲<"
+ "决<冴<㓆<㓇<𠖱<𠖲<𠖳<𠖴<𠖵<𠖶<况<冶<冷<冸<冹<冺<冻<㓈<𠖷<𠖸<𠖹<𠖺<𠖻<𠖼<𠖽<𠖾<𠖿"
+ "<ð —<冷<况<况<冼<冽<冾<冿<净<㓉<ã“Š<ã“‹<ã“Œ<ã“<ð —€<ð —‚<ð —ƒ<ð —„<ð —…<ð —†<ð —‡<å‡<凂<凃<ã“Ž<ã“<ð —ˆ<ð —‰<"
+ "ð —Š<ð —‹<ð —Œ<ð —<ð —Ž<ð —<ð —<ð —‘<ð —’<ð —“<ð —”<ð —•<ð —–<ð ——<凄<凅<准<凇<凈<凉<凊<凋<凌<å‡<凎<ã“<ã“‘<"
+ "ã“’<ð —˜<ð —™<ð —š<ð —›<ð —œ<ð —<ð —ž<ð —Ÿ<ð — <ð —¡<ð —¢<ð —£<ð —¤<凌<凉<å‡<å‡<凑<ã““<ð —¥<ð —¦<ð —§<ð —¨<ð —©<"
+ "𠗪<𠗫<𠗬<𠗭<𠗮<𠗯<𠗰<凒<凓<凔<凕<凖<㓔<㓕<𠗱<𠗲<𠗳<𠗴<𠗵<𠗶<𠗷<𠗸<𠗹<凗<㓖<𠗺"
+ "<ð —»<ð —¼<ð —½<ð —¾<ð —¿<𠘀<ð ˜<𠘂<𠘃<凘<ã“—<𠘄<ð ˜…<𠘆<𠘇<𠘈<𠘉<𠘓<凙<凚<凛<凜<𠘊<𠘋<"
+ "𠘌<ð ˜<𠘎<ð ˜<ð ˜<𠘑<凜<å‡<凞<ð ˜’<𠘔<𠘕<凞<凟<ð ˜–<ð ˜—<𠘘<𠘙<𠘚<𠘛<𠘜<𥂳<ð ˜<𠘞<"
+ "𠘟<𠘠<𠘡<𠘢<𠘣<𠘤<𠘥<𠘦<几<𠘧<𠘨<凡<凢<凣<凤<𠘩<𠘪<𠘫<𠘬<𠘭<𠘮<𠘯<𠘰<凥<処<"
+ "凧<𠘱<𠘲<𠘳<ð ˜´<凨<凩<凪<凫<𠘵<𠘶<ð ˜·<𠘸<𠘹<𠘺<𠘻<𠘺<凬<𠘼<𠘽<𠘾<𠘿<𠙀<ð ™<ð ™‚"
+ "<𠙃<ð ™„<ð ™…<凭<凮<凯<𠙆<𠙇<𠙈<𠙉<𠙊<ð ™‹<𠙌<ð ™<𠙎<ð «®<ð ™<ð ™<ð ™‘<ð ™’<ð ™“<ð ™”<ð ™•<"
+ "ð ™–<凰<㓘<𠙘<ð ™™<ð ™›<𠙜<ð ™<𠙞<凱<凲<ð ‰<𠙟<ð ™ <ð ™¡<𠙢<𠙣<𠙤<𠙥<𠙦<𠙧<凳<凴<𠙨<ð ™©"
+ "<𠙪<𠙫<𠙭<𠙮<𠙯<𠙰<𠙱<𠙲<𠙳<凵<𠙴<凵<𠙵<凶<𠙶<𠙷<𠙸<凷<凸<凹<出<击<𠙹<𠙺<𠙻<"
+ "ð ™½<凼<ã“™<ð ™¾<ð ™¿<𠚀<ð š<ð š‚<𠚃<ð š„<ð š…<𠚆<𠚇<𠚈<𠚉<𠚊<函<ð š‹<𠚌<ð š<凾<𠚎<ð š<ð š<"
+ "ð š’<ð š“<ð š”<ð š•<ð š–<ð š—<凿<𠚘<ð š™<ð šš<ð¢­<ð šœ<ð š<ð šž<𢇕<𠚟<ð š <ð š¡<𠚢<刀<åˆ<刂<𠚣<刃<刄"
+ "<𠚤<刃<刅<分<切<刈<𠚥<𠚦<𠚧<𠚨<ð š©<𠚪<ð š«<𠚬<切<切<刉<刊<刋<刌<åˆ<ã“š<ã“›<ã“œ<ð š­<ð š®<𠚯<"
+ "ð š°<ð š±<ð š²<ð š³<ð š´<𠚶<ð š»<刎<åˆ<åˆ<刑<划<刓<刔<刕<刖<列<刘<则<刚<创<ã“<ã“ž<ð šµ<ð š·<𠚸<ð š¹<𠚺<"
+ "ð š¼<ð š½<ð š¾<ð š¿<𠛀<ð ›<ð ›‚<𠛃<ð ›„<ð ›…<𠛆<𠛇<𠛈<𠛉<𠛊<ð ›‹<𠛌<ð ›<列<刜<åˆ<刞<刟<删<刡<"
+ "刢<刣<判<別<刦<刧<刨<利<刪<别<刬<刭<ã“Ÿ<ã“ <𠛎<ð ›<ð ›<ð ›‘<ð ›’<ð ›“<ð ›”<ð ›•<ð ›–<ð ›—<𠛘<ð ›™<𠛚<"
+ "ð ››<𠛜<ð ›<𠛞<𠛟<ð › <ð ›¡<𠛢<𠛣<𠛤<𠛥<𠛦<利<ã“Ÿ<刮<刯<到<刱<刲<刳<刴<刵<制<刷<券<刹<刺<刻<"
+ "刼<刽<刾<刿<剀<å‰<剂<ã“¡<ã“¢<ã“£<㓤<ã“¥<㓦<𠛧<𠛨<ð ›©<𠛪<ð ›«<𠛬<ð ›­<ð ›®<𠛯<ð ›°<ð ›±<ð ›²<ð ›³<ð ›´<"
+ "ð ›µ<𠛶<ð ›·<𠛸<ð ›¹<𠛺<ð ›»<ð ›¼<ð ›½<ð ›¾<ð ›¿<𠜀<ð œ<𠜂<𠜃<𠜄<𠜅<𠜆<𠜇<𠜈<𠜉<𠜊<𠜋"
+ "<𠜌<ð œ<𠜎<ð œ<刺<刻<剃<剄<剅<剆<則<剈<剉<削<剋<剌<å‰<剎<å‰<å‰<剑<㓧<㓨<ã“©<㓪<ã“«<ð œ<𠜑<𠜒<𠜓"
+ "<𠜔<𠜕<𠜖<𠜗<𠜘<𠜙<𠜚<𠜛<𠜜<ð œ<𠜞<𠜟<𠜠<𠜡<𠜢<𠜣<𠜤<𠜥<𠜦<𠜧<𠜨<𠜩<"
+ "𠜪<𠜫<𠜬<𠜭<𠜮<𠜯<𠜰<剆<剒<剓<剔<剕<剖<剗<剘<剙<剚<剛<剜<å‰<剞<剟<剠<剡<剢<剣<剤<剥<剦<剧<㓬"
+ "<ã“­<ã“®<㓯<ã“°<𠜱<𠜲<𠜳<𠜴<𠜵<𠜶<𠜷<𠜸<𠜹<𠜺<𠜻<𠜼<𠜽<𠜾<𠜿<ð €<ð <ð ‚<ð ƒ<ð „"
+ "<ð …<ð †<ð ‡<ð ˆ<ð ‰<ð Š<ð ‹<ð Œ<ð <ð Ž<ð <ð <ð ‘<ð ’<ð “<ð ”<ð •<ð –<ð —<ð ˜<ð ™<ð š<"
+ "ð ›<ð œ<ð ¶<剨<剪<剫<剬<剭<剮<副<剰<剱<剶<㓱<㓲<㓳<ã“´<㓵<㓶<ð <ð ž<ð Ÿ<ð  <ð ¡<ð ¢<ð £<ð ¤<ð ¥<"
+ "ð ¦<ð §<ð ¨<ð ©<ð ª<ð «<ð ¬<ð ­<ð ®<ð ¯<ð °<ð ±<ð ²<ð ³<ð ´<ð µ<ð ·<ð ¸<ð ¹<ð º<ð »<ð ¼<ð ½"
+ "<ð ¾<剩<割<剳<剴<創<ã“·<㓸<㓹<㓺<ã“»<ð ¿<𠞀<ð ž<ð ž‚<𠞃<ð ž„<ð ž…<𠞆<𠞇<𠞈<𠞉<𠞊<ð ž‹<𠞌<ð ž"
+ "<𠞎<ð ž<ð ž<ð ž‘<ð ž’<ð ž“<ð ž”<ð ž•<ð ž–<ð ž—<𠞘<ð ž™<ð žš<ð ž›<ð ž<ð žž<𠞟<ð ž <ð ž¡<𠞢<𠞣<𠞤<割"
+ "<剷<剸<剹<剺<剻<剼<剽<剾<剿<㓼<㓽<𠞥<𠞦<𠞧<𠞨<𠞩<𠞪<𠞫<𠞬<𠞭<𠞮<𠞯<𠞰<𠞱<𠞲<𠞳<"
+ "ð ž´<ð žµ<𠞶<ð ž·<𠞸<ð ž¹<𠞺<ð ž»<ð ž¼<ð ž½<ð ž¾<ð ž¿<𠟀<ð Ÿ<剷<劀<åŠ<劂<劃<劄<㓾<ã“¿<㔀<ã”<㔂<㔃<㔄<"
+ "ã”…<㔆<㔇<㔈<㔉<ð Ÿ‚<𠟃<ð Ÿ„<ð Ÿ…<𠟆<𠟇<𠟈<𠟉<ð ŸŠ<ð Ÿ‹<ð ŸŒ<ð Ÿ<ð ŸŽ<ð Ÿ<ð Ÿ<ð Ÿ‘<ð Ÿ’<ð Ÿ“<ð Ÿ”<"
+ "ð Ÿ•<ð Ÿ–<ð Ÿ—<𠟘<ð Ÿ™<ð Ÿš<ð Ÿ›<ð Ÿœ<ð Ÿ<ð Ÿž<ð ŸŸ<ð Ÿ¡<𠟢<𠟣<𠟤<𠟥<劅<劆<劇<劈<劉<劊<劋<劌<åŠ<劎<"
+ "åŠ<㔊<ð Ÿ <𠟦<𠟧<𠟨<ð Ÿ©<𠟪<ð Ÿ«<𠟬<ð Ÿ­<ð Ÿ®<𠟯<ð Ÿ°<𠟱<𠟲<𠟳<ð Ÿ´<𠟵<𠟶<ð Ÿ·<𠟸<𠟹<劉"
+ "<åŠ<劑<劒<劓<劔<㔋<㔌<ã”<𠟺<ð Ÿ»<𠟼<𠟽<𠟾<ð Ÿ¿<ð  €<ð  <ð  ‚<ð  ƒ<ð  „<ð  …<ð  †<ð  ‡<ð  ˆ<ð  ‰<ð  Š<"
+ "ð  „<劕<㔎<ã”<ð  Œ<ð  <ð  Ž<ð  <ð  <ð  ‘<ð  ’<ð  “<ð  ”<ð  •<ð  –<ð  —<ð  ˜<ð  ™<ð  š<ã”<ð  ›<ð  œ<ð  <ð  ž<"
+ "𠠟<𠠠<劖<㔑<𠠡<𠠢<𠠣<㔒<𠠤<𠠦<𠠧<𠠨<𠠩<劗<劘<𠠥<𠠪<𠠫<𠠬<𠠭<劙<劚<𠠮<𠠯<𠠰<"
+ "ð  ±<力<力<劜<ð  ²<åŠ<办<ð  ³<ð  ´<ð  µ<功<加<务<劢<㔓<㘞<𠆮<ð  ¶<ð  ·<ð  ¸<劣<劤<劥<劦<劧<动<ã””<㔕<ã”–<"
+ "ð  ¹<ð  º<ð  »<ð  ¼<ð  ½<ð  ¾<ð  ¿<ð ¡€<ð ¡<劣<㔕<助<努<劫<劬<劭<劮<劯<劰<励<劲<劳<労<ã”—<㔘<ð ¡‚<𠡃<ð ¡„<"
+ "ð ¡…<𠡆<𠡇<𠡈<𠡉<ð ¡Š<ð ¡‹<ð ¡Œ<ð ¡<ð ¡Ž<ð ¡<ð ¡<劳<劵<劶<劷<劸<効<劺<劻<劼<劽<劾<势<ã”™<㔚<ã”›<ð ¡‘"
+ "<ð ¡’<ð ¡“<ð ¡”<ð ¡•<ð ¡–<ð ¡—<𠡘<ð ¡™<ð ¡š<ð ¡›<ð ¡œ<ð ¡<å‹€<å‹<å‹‚<勃<å‹„<å‹…<勆<勇<勈<勉<å‹Š<å‹‹<㔜<ð ¡ž<ð ¡Ÿ"
+ "<ð ¡ <ð ¡¡<ð ¡¢<ð ¡£<𠡤<ð ¡¥<𠡦<𠡧<𠡨<ð ¡©<𠡪<勉<勇<勇<勉<å‹Œ<å‹<å‹Ž<å‹<å‹<å‹‘<ã”<㔞<㔟<ð ¡«<𠡬<ð ¡­"
+ "<𠡮<𠡯<𠡰<𠡱<𠡲<𠡳<𠡴<𠡵<𠡶<𠡷<𠡸<𠡹<𠡺<勒<勓<勔<動<勖<勘<務<勚<㔠<𠡻<𠡼<𠡽<"
+ "ð ¡¾<ð ¡¿<ð ¢€<ð ¢<𠢂<𠢃<𠢄<å‹’<å‹›<å‹œ<å‹<å‹ž<㔡<ð ¢…<𠢆<𠢇<𠢈<𠢉<𠢊<𠢋<𠢌<ð ¢<𠢎<ð ¢<ð ¢"
+ "<𠢑<ð ¢’<å‹ž<å‹Ÿ<å‹ <å‹¡<å‹¢<å‹£<勤<å‹¥<勦<勧<𠢓<ð ¢”<𠢕<ð ¢–<ð ¢—<𠢘<ð ¢™<𠢚<ð ¢›<𠢜<ð ¢<𠢞<𠢟<勤<"
+ "勤<勨<勩<勪<勫<勬<勭<㔢<𠢠<𠢡<𠢢<𠢣<𠢤<𠢥<𠢦<𠢧<𠢨<𠢩<𠢪<𠢫<𠢬<𠢭<𠢮<𠢯<勮<勯<"
+ "勰<勱<勲<𠢰<𠢱<𠢲<𠢳<𠢴<𠢵<勳<𠢶<𠢷<𠢸<勴<勵<勶<㔣<㔤<㔥<㔦<𠢹<𠢺<𠢻<𠢼<𠢽<𠢾<"
+ "𠢿<勵<㔧<ð £€<ð £<𠣂<𠣃<å‹·<𠣄<ð £…<勸<𠣆<𠣇<𠣈<𠣉<𠣊<𠣋<勹<勺<勺<勺<å‹»<勼<勽<勾<å‹¿<匀<åŒ"
+ "<匂<𠣌<匃<匄<包<匆<匇<ð £<𠣎<ð £<ð £<包<匆<匈<𠣑<ð £’<𠣓<匉<ð £”<𠣕<ð £–<ð £—<匊<匋<匌<𠣘<ð £™"
+ "<𠣚<ð £›<𠣜<ð £<åŒ<𠣞<𠣟<ð £ <𠣡<ð £¢<ð ££<𠣞<匎<𠣤<ð £¥<𠣦<𠣧<𠣨<𠣩<𠣪<𠣫<𠣬<ð £­<"
+ "åŒ<åŒ<㔨<ð £®<𠣯<ð £°<ð £±<ð £²<ð £³<ð £´<匑<匒<㔩<ð £µ<𠣶<ð £·<匓<㔪<𠣸<ð £¹<𠣺<ð £»<ð £¼<ð £½<ð £¾<"
+ "𠣿<𠤀<ð ¤<𠤂<匔<𠤃<𠤄<ð ¤…<𠤆<𠤇<𠤈<𠤉<𠤊<𠤋<𠤌<ð ¤<匕<𠤎<化<㔫<ð ¤<北<ð ¤<北<北<"
+ "𠤑<ð ¤’<𠤓<𠤔<𠤕<㔬<ð ¤–<ð ¤—<𠤘<𠤙<𠤚<𠤛<𠤜<ð ¤<𠤞<𠤟<ð ¤ <𠤡<匘<匙<ã”­<𠤣<𠤤<𠤥<"
+ "𠤦<𠤧<𠤨<𠤩<𠤪<匚<𠤬<ð ¤­<匛<匜<åŒ<匞<匟<匠<匡<匢<𠤮<𠤯<ð ¤°<𠤱<匣<匤<匥<㔯<ã”°<𠤳<ð ¤´<"
+ "𠤵<𠤶<ð ¤·<匦<𠤸<𠤹<𠤺<𠤻<匧<匨<匩<𠤼<𠤽<𠤾<𠤿<ð ¥€<ð ¥<𠥂<𠥄<ð ¥…<𠥆<𠥇<𠥈<匪<匫"
+ "<龨<𠥉<𠥊<𠥋<𠥌<ð ¥<匬<匭<匮<ã”±<𠥎<ð ¥<ð ¥<𠥑<ð ¥’<𠥓<ð ¥”<𠥕<匯<㔲<㔳<ã”´<ð ¥–<ð ¥—<𠥘<匰"
+ "<匱<匲<㔵<ð ¥™<𠥚<ð ¥›<匳<𠥜<ð ¥<𠥞<𠥟<ð ¥ <𠥡<匴<ð ¥¢<ð ¥£<匵<𠥤<ð ¥¥<匶<𠥦<𠥧<匷<𠥨<𠥩<"
+ "𠥪<㔶<𠥫<𠥬<匸<匹<区<ð ¥­<𠤲<ð ¥®<𠥯<医<ã”·<ð ¥°<ð ¥±<ð ¥²<匼<ð ¥³<匽<𠥃<ð ¥´<ð ¥µ<𠥶<匾<匿<å€<匿"
+ "<㔸<ð ¥·<𠥸<ð ¥¹<𠥺<å<å‚<åƒ<å…<å†<å‡<åˆ<㔹<ð ¥»<ð ¥¼<𠥿<å‰<åŠ<åŒ<𠆱<ð ¥½<ð ¥¾<𠦀<ð ¦<å‰<å‹<å<åŽ"
+ "<å<å<㔺<ã”»<𠦂<𠦃<𠦄<ð ¦…<𠦆<𠦇<𠦈<𠦉<𠦊<𠦋<𠦌<ð ¦<𠦎<ð ¦<ð ¦<𠦑<ð ¦’<𠦓<𠦔<𠦕"
+ "<ð ¦–<ð ¦—<å‘<å’<å“<å”<å•<å–<龺<𠦘<𠦙<𠦚<𠦛<𠦜<ð ¦<𠦞<𠦟<ð ¦ <𠦡<𠦢<𣥥<å‘<å‘<å—<å˜<𠦣<"
+ "𠦤<𠦥<𠦦<𠦧<𠦨<𠦩<å™<𠦪<𠦫<𠦬<ð ¦­<𠦮<𠦯<åš<ð ¦°<𠦱<𠦲<𠦳<åš<㔼<ð ¦´<𠦵<𠦶<ð ¦·<"
+ "𠦸<𠦹<𠦺<𠦻<𠦼<𠦽<𠦾<𠦿<𠧀<ð §<𠧂<𠧃<𠧄<ð §…<𠧆<𠧇<𠧈<𠧉<𠧊<𠧋<𠧌<ð §<𠧎"
+ "<å›<ð §<ð §<𠧑<åœ<ð §’<å<åž<åŸ<å <å¡<å¢<𠧓<ð €<𠧔<𠧕<ð §–<ð §—<𠧘<å£<å¤<𠧙<𠧚<𠧛<𠧜<𡥋"
+ "<å¥<å¦<å§<㔽<𠧞<𠧟<ð § <𠧡<𠧢<𠧣<𠧤<𠧥<𠧦<𠧧<𠧨<𠧩<𠧪<𠧫<𠧬<ð §­<𠧮<𠧯<ð §°<𠧱"
+ "<𠧲<ð ­‰<𠧳<ð §´<𠧵<𠧶<ð §·<𠧹<å¨<𠧺<𠧻<𠧼<𠧽<𠧾<𠧿<𠨀<ð ¨<𠨂<𠨄<ð ¨…<𠨆<𠨇<𠨈"
+ "<𠨉<𠨊<𠨋<𠨌<å©<åª<å«<㔾<㔿<å¬<ð ¨<𠨎<ð ¨<ð ¨<å­<å®<å¯<𠨑<å°<å±<ð ¨’<𠨓<𠨔<𠨕<ð ¨–<ð ¨—<"
+ "å²<å³<å´<åµ<ã•€<𠨘<åµ<å³<å¶<å·<å¸<å¹<åº<ã•<å»<å¼<å½<𠨙<𠨚<𠨛<𠨜<ð ¨<å½<𠨞<å¾<å¿<å¿<å¿<å¿<𠨟<"
+ "ð ¨ <𠨡<厀<åŽ<𠨢<𠨣<𠨤<𠨥<𠨦<𠨧<𠨨<𠨩<𠨪<𠨫<厂<厃<厄<厅<历<𠨬<𠨬<厇<厈<厉<ð ¨­<𠨮<"
+ "𠨯<ð ¨°<𠨱<𠨲<𠨳<厊<压<厌<åŽ<ã•‚<㕃<ã•„<𠂬<ð ‚®<ð ¨´<𠨵<𠨶<ð ¨·<𠨸<𠨹<𠨺<𠨻<𠨼<𠨽<𠨾<"
+ "𠨿<ç°<厎<åŽ<åŽ<厑<ã•…<㕆<㕇<ð ‚°<ð ©€<ð ©<ð ©‚<𠩃<ð ©„<ð ©…<𠩆<𠩇<𠩈<𠩉<厒<厓<厔<厕<㕈<㕉<ð ©Š<"
+ "ð ©‹<ð ©Œ<ð ©<ð ©Ž<ð ©<ð ©<ð ©‘<ð ©’<ð ©“<ð ©”<ð ©•<厖<厗<厘<厙<厚<厛<ã•Š<ð ©—<𠩘<ð ©™<ð ©š<ð ©›<ð ©œ<ð ©<"
+ "ð ©ž<ð ©Ÿ<ð © <ð ©¡<ð ©¢<ð ©£<𠩤<ð ©¥<𠩦<厜<åŽ<厞<原<è™’<ã•‹<ã•Œ<ã•<𠩧<𠩨<ð ©©<𠩪<ð ©«<𠩬<ð ©­<ð ©®<"
+ "𠩯<ð ©°<ð ©±<ð ©²<ð ©³<ð ©´<ð ©µ<𠩶<ð ©·<厠<厡<厢<厣<厩<𠩸<ð ©¹<𠩺<ð ©»<ð ©¼<ð ©½<ð ©¾<𠪀<ð ª<𠪂<"
+ "𠪃<𠪄<ð ª…<𠪆<厤<厥<厦<厧<厨<ã•Ž<𠪇<𠪈<𠪉<𠪊<𠪋<𠪌<ð ª<𠪎<ð ª<ð ª<厪<厫<ã•<ð ©¿<𠪑<ð ª’"
+ "<𠪓<𠪔<𠪕<ð ª–<ð ª—<𠪘<厬<厭<厮<厯<厰<ã•<ã•‘<𠪙<𠪚<𠪛<𠪜<ð ª<𠪞<𠪟<ð ª <𠪡<𠪢<𠪣<𠪤"
+ "<𠪥<𠪦<𠪧<𠪨<𠪩<𠪪<𠪫<𠪬<厱<厲<㕒<𠪭<𠪮<𠪯<𠪰<𠪱<𠪲<𠪳<𠪴<𠪵<𠪶<𠪷<𠪸<"
+ "𠪺<𠪻<𠪼<𠪽<𠪾<厳<ã•“<𠪿<ð «€<ð «<ð «‚<𠫃<ð «„<ð «…<𠫆<厴<𠫇<𠫉<ð «Š<ð «‹<ð «Œ<ð «<ð «Ž<ã•”<"
+ "ð «<ð «<厵<ð «‘<ð «’<厶<ð «“<ð «”<ð «•<ð «–<厷<厸<厹<ã••<ð «—<𠫘<厺<去<厼<ð «™<ð «š<ð «›<ð «œ<ð «<厽<厾<"
+ "ð «ž<ð «Ÿ<ð « <ð «¡<ð «¢<ð «£<𠫤<ð «¥<县<𠫦<𠫧<𠫨<å€<å<å‚<ð «©<𠫪<ð ««<𠫬<ð «­<𠫯<ð «°<ð «±<ð «²<"
+ "ð «´<ð «µ<𠫶<ð «·<𠫸<ã•–<ð «¹<𠫺<ð «»<ð «¼<åƒ<å„<ã•—<㕘<ð «½<ð «¾<åƒ<å…<ð «¿<𠬀<ð ¬<𠬂<𠬃<𠬄<ð ¬…<"
+ "𦎅<𠬆<𠬇<𠬈<𠬉<𠬊<𠬋<𠬌<å†<ð ”²<ð ¬<𠬎<ð ¬<ð ¬<å‡<ã•™<𠬑<ð ¬’<𠬓<𠬕<ð ¬–<ð ¬—<𠬔<𠬘"
+ "<𠬙<åˆ<å‰<åŠ<å‹<åŒ<å<åŽ<ã•š<ã•›<𠬚<𠬛<𠬜<ð ¬<𠬞<𠬟<ð ¬ <åŠ<å<å<å‘<𠬡<𠬢<𠬣<𠬤<𠬥<𠬦"
+ "<𠬧<𠬨<å’<ã•œ<𠬩<𠬪<𠬫<𠬬<ð ¬­<𠬮<𠬯<ð ¬°<å“<ã•<𠬱<𠬲<𠬳<ð ¬´<𠬵<𠬶<ð ¬·<𠬸<å”<å•<å–"
+ "<å—<å˜<ã•ž<𠬹<𠬺<𠬻<𠬼<𠬽<𠬾<å™<åš<å›<åœ<å<ã•Ÿ<ð «³<𠬿<ð ­€<ð ­<ð ­‚<ð ­ƒ<ð ­„<ð ­…<ð ­†<ð ­‡<"
+ "ð ­ˆ<åž<åŸ<ð ­Š<ð ­‹<ð ­Œ<ð ­<ð ­Ž<ð ­<ð ­<ð ­‘<ð ­’<ð ­“<ð ­”<åŸ<ð ­•<ð ­–<ð ­—<ð ­˜<ð ­™<ð ­š<ð ­›<ð ­œ<ð ­"
+ "<ð ­ž<ð ­Ÿ<ð ­ <ð ­¡<ð ­¢<ð ­£<ð ­¤<ð ­£<ã• <ð ­¥<ð ­¦<ð ­§<ð ­¨<ð ­©<ð ­ª<ð ­«<ð ­¬<ð ­­<ð ­®<å <ð ­¯<ð ­°<ð ­±<"
+ "ð ­²<ð ­³<ð ­´<ð ­µ<ð ­·<ð ­¸<ð ­¹<ð ­º<﨎<ã•¡<ð ­¼<ð ­½<ð ­¾<ð ­¿<𠮀<ð ®<ð ®‚<𡪞<𠮃<ð ®„<ð ®…<𠮆<å¡<𠮇"
+ "<𠮈<𠮉<𠮊<ð ®‹<𠮌<ð ®<𠮎<ð ®<å¢<ð ®<壡<ð ®‘<ð ®’<ð ®“<ð ®”<ð ®•<ð ®–<ð ®—<𠮘<å£<ð ®™<𠮚<ð ®›<"
+ "𠮜<ð ®<𠮞<å¤<å¥<å¦<å§<å¨<å©<åª<å«<å¬<å­<å®<å¯<å°<å±<å²<å³<å´<åµ<å¶<å·<å¸<å¹<åº<å»<å¼<å½<å¾<ã•£<㕤<ã•¥"
+ "<ð ™¼<𠮟<ð ® <ð ®¡<𠮢<𠮣<𠮤<𠮥<𠮦<𠮧<𠮨<ð ®©<𠮪<å¥<å«<å±<å¿<å€<å<å‚<åƒ<å„<å…<å†<å‡<åˆ<å‰<"
+ "åŠ<å‹<åŒ<å<åŽ<å<å<å‘<å’<å“<å”<å•<å–<å—<㕦<㕧<㕨<ð ®«<𠮬<ð ®­<ð ®®<𠮯<ð ®°<ð ®±<ð ®²<ð ®³<ð ®´<ð ®µ<"
+ "𠮶<ð ®·<𠮸<ð ®¹<𠮺<ð ®»<ð ®¼<ð ®½<ð ®¾<ð ®¿<𠯀<ð ¯<𠯂<𠯃<𠯄<ð ¯…<𠯆<𠯇<𠯈<𠯉<𠯊<å<å†<å˜"
+ "<å™<åš<å›<åœ<å<åž<åŸ<å <å¡<å¢<å£<å¤<å¥<å¦<å§<å¨<å©<åª<å«<å¬<å­<å®<å¯<å°<å±<å²<å³<å´<åµ<å¶<å·<å¸<å¹<åº"
+ "<å»<å¼<å½<å¾<å¿<å‘€<å‘<å‘‚<呃<å‘„<å‘…<呆<呇<呈<呉<å‘Š<å‘‹<å‘Œ<å‘<å‘Ž<å‘<å‘<å‘‘<å‘’<å‘“<å‘”<å‘•<å‘–<å‘—<员<å‘™<å‘š<å‘›<å‘œ"
+ "<ã•©<㕪<ã•«<㕬<ã•­<ã•®<㕯<ã•°<㕱<㕲<㕳<ã•´<㕵<㕶<𠈂<𠯋<𠯌<ð ¯<𠯎<ð ¯<ð ¯<𠯑<ð ¯’<𠯓<𠯔<𠯕<ð ¯–<"
+ "ð ¯—<𠯘<𠯙<𠯚<𠯛<𠯜<ð ¯<𠯞<𠯟<ð ¯ <𠯡<𠯢<𠯣<𠯤<𠯥<𠯦<𠯧<𠯨<𠯩<𠯪<𠯫<𠯬<ð ¯­"
+ "<𠯮<𠯯<ð ¯°<𠯱<𠯲<𠯳<ð ¯´<𠯵<𠯶<ð ¯·<𠯸<𠯹<𠯺<𠯻<𠯼<𠯽<𠯾<𠯿<ð °€<ð °<ð °‚<ð °ƒ<"
+ "ð °„<ð °…<ð °†<ð °‡<å‘‚<å<å¸<呈<å‘<å‘ž<å‘Ÿ<å‘ <å‘¡<å‘¢<å‘£<呤<å‘¥<呦<呧<周<å‘©<呪<å‘«<呬<å‘­<å‘®<呯<å‘°<呱<呲<味<å‘´<"
+ "呵<呶<å‘·<呸<呹<呺<å‘»<呼<命<呾<å‘¿<å’€<å’<å’‚<å’ƒ<å’„<å’…<å’†<å’‡<å’ˆ<å’‰<å’Š<å’‹<å’Œ<å’<å’Ž<å’<å’<å’‘<å’’<å’“<å’”<å’•<å’–<"
+ "å’—<å’˜<å’™<å’š<å’›<å’œ<å’<ã•·<㕸<㕹<㕺<ã•»<㕼<㕽<㕾<ã•¿<ð °ˆ<ð °‰<ð °Š<ð °‹<ð °Œ<ð °<ð °Ž<ð °<ð °<ð °‘<ð °’<ð °“<"
+ "ð °”<ð °•<ð °–<ð °—<ð °˜<ð °™<ð °š<ð °›<ð °œ<ð °<ð °ž<ð °Ÿ<ð ° <ð °¡<ð °¢<ð °£<ð °¤<ð °¥<ð °¦<ð °§<ð °¨<ð °©<ð °ª"
+ "<ð °«<ð °¬<ð °­<ð °®<ð °¯<ð °°<ð °±<ð °²<ð °³<ð °´<ð °µ<ð °¶<ð °·<ð °¸<ð °¹<ð °º<ð °»<ð °¼<ð °½<ð °¾<ð °¿<ð ±€<"
+ "ð ±<𠱂<𠱃<𠱄<ð ±…<𠱆<𠱇<𠱈<𠱉<𠱊<𠱋<𠱌<ð ±<𠱎<ð ±<周<å’ž<å’Ÿ<å’ <å’¡<å’¢<å’£<å’¤<å’¥<å’¦<å’§<å’¨"
+ "<å’©<å’ª<å’«<å’¬<å’­<å’®<å’¯<å’°<å’±<å’²<å’³<å’´<å’µ<å’¶<å’·<å’¸<å’¹<å’º<å’»<å’¼<å’½<å’¾<å’¿<å“€<å“<å“‚<哃<å“„<å“…<哆<哇<哈<哉<å“Š"
+ "<å“‹<å“Œ<å“<å“Ž<å“<å“<å“‘<å“’<å““<å“”<å“•<å“–<å“—<哘<å“™<å“š<å“›<å“œ<å“<å“ž<å“Ÿ<ã–€<ã–<ã–‚<ã–ƒ<ã–„<ã–…<ã–†<ã–‡<ã–ˆ<ã–‰<ã–Š<ã–‹<ã–Œ"
+ "<ã–<ã–Ž<ð €·<ð €¹<ð ±<𠱑<ð ±’<𠱓<ð ±”<𠱕<ð ±–<ð ±—<𠱘<ð ±™<𠱚<ð ±›<𠱜<ð ±<𠱞<𠱟<ð ± <𠱡<ð ±¢<"
+ "𠱣<𠱤<𠱥<𠱦<𠱧<𠱨<𠱩<𠱪<𠱫<𠱬<𠱭<𠱮<𠱯<𠱰<𠱱<𠱲<𠱳<𠱴<𠱵<𠱶<𠱷<𠱸<𠱹"
+ "<𠱺<ð ±»<ð ±¼<ð ±½<ð ±¾<𠱿<ð ²€<ð ²<𠲂<𠲃<𠲄<ð ²…<𠲆<𠲇<𠲈<𠲉<𠲊<𠲋<𠲌<ð ²<𠲎<ð ²<"
+ "ð ²<𠲑<ð ²’<𠲓<ð ²”<𠲕<ð ²–<ð ²—<𠲘<ð ²™<𠲚<ð ²›<𠲜<ð ²<𠲞<𠲟<ð ² <𠲡<ð ²¢<ð ²£<𠲤<ð ²¥<𠲦"
+ "<𠲧<𠲨<𠲩<𠲪<𠲫<咽<咞<咢<哠<員<哢<哣<哤<哥<哦<哧<哨<哩<哪<哫<哬<哭<哮<哯<哰<哱<哲<哳<哴<哵<哶<"
+ "å“·<哸<哹<哺<å“»<哼<哽<哾<å“¿<唀<å”<唂<唃<唄<å”…<唆<唇<唈<唉<唊<唋<唌<å”<唎<å”<å”<唑<å”’<唓<å””<唕<å”–<å”—<唘<"
+ "å”™<唚<å”›<唜<å”<唞<唟<å” <唡<唢<唣<唤<唥<唦<唧<ã–<ã–<ã–‘<ã–’<ã–“<ã–”<ã–•<ã––<ã–—<ã–˜<ã–™<ã–š<ã–›<ã–œ<ã–<ã–ž<𠲬<ð ²­<"
+ "ð ²®<𠲯<ð ²°<ð ²±<ð ²²<ð ²³<ð ²´<ð ²µ<𠲶<ð ²·<𠲸<ð ²¹<𠲺<ð ²»<ð ²¼<ð ²½<ð ²¾<𠲿<ð ³€<ð ³<𠳂<𠳃<𠳄"
+ "<ð ³…<𠳆<𠳇<𠳈<𠳉<𠳊<𠳋<𠳌<ð ³<𠳎<ð ³<ð ³<𠳑<ð ³’<𠳓<ð ³”<𠳕<ð ³–<ð ³—<𠳘<ð ³™<𠳚<"
+ "ð ³›<𠳜<ð ³<𠳞<𠳟<ð ³ <𠳡<ð ³¢<ð ³£<𠳤<𠳦<𠳧<𠳨<𠳩<𠳪<𠳬<ð ³­<ð ³®<𠳯<ð ³°<ð ³±<ð ³²<ð ³³"
+ "<ð ³´<ð ³µ<𠳶<ð ³·<𠳸<ð ³¹<𠳺<ð ³»<ð ³¼<ð ³½<ð ³¾<𠳿<ð ´€<ð ´<ð ´‚<ð ´ƒ<ð ´„<ð ´…<ð ´†<ð ´‡<ð ´ˆ<ð ´‰<"
+ "ð ´Š<ð ´‹<ð ´Œ<ð ´<ð ´Ž<ð ´<ð ´<ð ´‘<ð ´’<ð ´“<ð ´”<ð ´•<ð ´–<ð ´—<ð ´˜<ð ´™<ð ´š<ð ´›<ð ´œ<ð ´<ð ´ž<ð ´Ÿ<ð ´ "
+ "<ð ´¡<ð ´¢<ð ´£<ð ´¤<ð ´¥<哶<å”<唨<唩<唪<唫<唬<å”­<å”®<唯<å”°<å”±<唲<唳<å”´<唵<唶<å”·<唸<唹<唺<å”»<唼<唽<唾<唿<"
+ "å•€<å•<å•‚<啃<å•„<å•…<商<啇<啈<啉<å•Š<å•‹<å•Œ<å•<å•Ž<å•<å•<å•‘<å•’<å•“<å•”<å••<å•–<å•—<啘<å•š<å•›<å•œ<å•<å•ž<å• <å•¡<å•¢<å•£<"
+ "啤<啥<啦<啧<啨<啩<啪<啬<啭<啮<啯<啰<啱<啲<啳<啴<啵<啶<啷<啸<啹<㖟<㖠<㖡<㖢<㖣<㖤<㖥<㖦<㖧<㖨<㖩<㖪<㖫<"
+ "ã–¬<ã–­<ã–®<ã–¯<ã–°<ã–±<ã–²<ã–³<ã–´<ã–µ<ð ³¥<ð ´§<ð ´¨<ð ´©<ð ´ª<ð ´«<ð ´¬<ð ´­<ð ´®<ð ´¯<ð ´°<ð ´±<ð ´²<ð ´³<ð ´´<ð ´µ<"
+ "ð ´¶<ð ´·<ð ´¸<ð ´¹<ð ´º<ð ´»<ð ´¼<ð ´½<ð ´¾<ð ´¿<ð µ€<ð µ<𠵂<𠵃<𠵄<ð µ…<𠵆<𠵇<𠵈<𠵉<𠵊<𠵋<𠵌"
+ "<ð µ<𠵎<ð µ<ð µ<𠵑<ð µ’<𠵓<ð µ”<𠵕<ð µ–<ð µ—<𠵘<ð µ™<𠵚<ð µ›<𠵜<ð µ<𠵞<𠵟<ð µ <𠵡<ð µ¢<"
+ "𠵣<𠵤<𠵥<𠵦<𠵧<𠵨<𠵩<𠵪<𠵫<𠵬<𠵭<𠵮<𠵯<𠵰<𠵱<𠵲<𠵳<𠵴<𠵵<𠵶<𠵷<𠵸<𠵹"
+ "<𠵺<ð µ»<ð µ¼<ð µ½<ð µ¾<𠵿<𠶀<ð ¶<𠶂<𠶃<𠶄<ð ¶…<𠶆<𠶇<𠶈<𠶉<𠶊<𠶋<𠶌<ð ¶<𠶎<ð ¶<"
+ "ð ¶<𠶑<ð ¶’<𠶓<𠶔<𠶕<ð ¶–<ð ¶—<𠶘<𠶙<𠶚<𠶛<𠶜<ð ¶<𠶞<𠶟<ð ¶ <𠶡<𠶢<𠶣<𠶤<𠶥<𠶦"
+ "<𠶧<𠶨<𠶩<𠶪<𠶫<𠶬<𠶭<𠶮<𠶯<𠶰<𠶱<𠶲<𠶳<𠶴<𠶵<𠶶<啕<啓<啣<啙<啫<啺<啻<啼<啽<啾"
+ "<å•¿<å–€<å–<å–‚<å–ƒ<å–„<å–…<å–†<å–‡<å–ˆ<å–‰<å–Š<å–‹<å–Œ<å–Ž<å–<å–<å–‘<å–’<å–“<å–”<å–•<å––<å–—<å–˜<å–™<å–š<å–›<å–œ<å–<å–ž<å–Ÿ<å– <å–¡"
+ "<å–¢<å–£<å–¤<å–¥<å–¦<å–§<å–¨<å–©<å–ª<å–«<å–¬<å–­<å–®<å–¯<å–°<å–±<å–²<å–³<å–´<å–µ<å–¶<å–·<å–¸<å–¹<å–º<å–»<å–¼<å–½<å–¾<å™…<ã–¶<ã–·<ã–¸<ã–¹"
+ "<ã–º<ã–»<ã–¼<ã–½<ã–¾<ã–¿<ã—€<ã—<ã—‚<ã—ƒ<ã—„<ã—…<ã—†<ã—‡<ã—ˆ<ã—‰<ã—Š<ã—‹<ã—Œ<ã—<ã—Ž<ã—<ã—<ã—‘<ð ¶·<𠶸<𠶹<𠶺<𠶻<𠶼<"
+ "𠶽<𠶾<𠶿<ð ·€<ð ·<ð ·‚<ð ·ƒ<ð ·„<ð ·…<ð ·†<ð ·‡<ð ·ˆ<ð ·‰<ð ·Š<ð ·‹<ð ·Œ<ð ·<ð ·Ž<ð ·<ð ·<ð ·‘<ð ·’<ð ·“"
+ "<ð ·”<ð ·•<ð ·–<ð ·—<ð ·˜<ð ·™<ð ·š<ð ·›<ð ·œ<ð ·<ð ·ž<ð ·Ÿ<ð · <ð ·¡<ð ·£<ð ·¤<ð ·¥<ð ·¦<ð ·§<ð ·¨<ð ·©<ð ·ª<"
+ "ð ·«<ð ·¬<ð ·­<ð ·®<ð ·¯<ð ·°<ð ·±<ð ·²<ð ·³<ð ·´<ð ·µ<ð ·¶<ð ··<ð ·¸<ð ·¹<ð ·º<ð ·»<ð ·¼<ð ·½<ð ·¾<ð ·¿<𠸀<ð ¸"
+ "<𠸂<𠸃<𠸄<ð ¸…<𠸆<𠸇<𠸈<𠸉<𠸊<𠸋<𠸌<ð ¸<𠸎<ð ¸<ð ¸<𠸑<ð ¸’<𠸓<𠸔<𠸕<ð ¸–<ð ¸—<"
+ "𠸘<𠸙<𠸚<𠸛<𠸜<ð ¸<𠸞<𠸟<ð ¸ <𠸡<𠸢<𠸣<𠸤<𠸥<𠸦<𠸧<𠸨<𠸩<𠸪<𠸫<𠸬<ð ¸­<𠸮"
+ "<𠸯<ð ¸°<𠸱<𠸲<𠸳<ð ¸´<𠸵<𠸻<𠸼<𠸽<𠸾<å–‡<å–<å–<å–™<å–„<å–„<å–™<å–«<å–³<å–<å–¿<å—€<å—<å—‚<å—ƒ<å—„<å—…<"
+ "å—†<å—‡<å—ˆ<å—‰<å—Š<å—‹<å—Œ<å—<å—Ž<å—<å—<å—‘<å—’<å—“<å—”<å—•<å—–<å——<å—˜<å—™<å—š<å—›<å—œ<å—<å—ž<å—Ÿ<å— <å—¡<å—¢<å—£<å—¤<å—¥<å—¦<å—§<"
+ "å—¨<å—©<å—ª<å—«<å—¬<å—­<å—®<å—¯<å—°<å—±<å—²<å—³<å—´<å—µ<ã—’<ã—“<ã—”<ã—•<ã—–<ã——<ã—˜<ã—™<ã—š<ã—›<ã—œ<ã—<ã—ž<ã—Ÿ<ã— <ã—¡<ð ·¢<𠸶<ð ¸·"
+ "<𠸸<𠸹<𠸺<𠸿<ð ¹€<ð ¹<𠹂<𠹃<𠹄<ð ¹…<𠹆<𠹇<𠹈<𠹉<𠹊<𠹋<𠹌<ð ¹<𠹎<ð ¹<ð ¹<𠹑<"
+ "ð ¹’<𠹓<ð ¹”<𠹕<ð ¹–<ð ¹—<𠹘<ð ¹™<𠹚<ð ¹›<𠹜<ð ¹<𠹞<𠹟<ð ¹ <𠹡<ð ¹¢<ð ¹£<𠹤<ð ¹¥<𠹦<𠹧<𠹨"
+ "<𠹩<𠹪<𠹫<𠹬<ð ¹­<ð ¹®<𠹯<ð ¹³<ð ¹´<ð ¹µ<𠹶<ð ¹·<𠹸<ð ¹¹<𠹺<ð ¹»<ð ¹¼<ð ¹½<ð ¹¾<𠹿<𠺀<ð º<"
+ "𠺂<𠺃<𠺄<ð º…<𠺆<𠺇<𠺈<𠺉<𠺊<𠺋<𠺌<ð º<𠺎<ð º<ð º<𠺑<ð º’<𠺓<𠺔<𠺕<ð º–<ð º—<𠺘"
+ "<𠺙<𠺚<𠺛<𠺜<ð º<𠺞<𠺟<ð º <𠺡<𠺢<𠺣<𠺤<𠺥<𠺦<𠺧<𠺨<𠺩<𠺪<𠺫<𠺬<ð º­<𠺮<"
+ "𠺯<ð º°<𠺱<𠺲<𠺳<ð º´<𠺵<𠺶<ð º·<𠺸<𠺹<𠺺<𠺻<𠺼<𠺽<𠺾<𠺿<𠻀<ð »<ð »‚<𠻃<ð »„<ð »…"
+ "<𠻆<𠻇<𠻈<𠻉<𠻊<ð »‹<𠻌<ð »<𠻎<ð »<ð »<ð »‘<ð »’<ð »“<å—€<å—¢<å—‚<å—¶<å—·<å—¸<å—¹<å—º<å—»<å—¼<å—½<å—¾<å—¿"
+ "<嘀<å˜<嘂<嘃<嘄<嘅<嘆<嘇<嘈<嘉<嘊<嘋<嘌<å˜<嘎<å˜<å˜<嘑<嘒<嘓<嘔<嘕<嘖<嘗<嘘<嘙<嘚<嘛<嘜<å˜<嘞<嘡<嘢<嘣"
+ "<嘤<嘥<嘦<嘧<噑<噓<ã—¢<ã—£<ã—¤<ã—¥<ã—¦<ã—§<ã—¨<ã—©<ã—ª<ã—«<ã—¬<ã—­<ã—®<ã—¯<ã—°<ð ·<ð »”<ð »•<ð »–<ð »—<𠻘<ð »™<𠻚<"
+ "ð »›<𠻜<ð »<𠻞<𠻟<ð » <ð »¡<𠻢<𠻣<𠻤<𠻥<𠻦<𠻧<𠻨<ð »©<𠻪<ð »«<𠻬<ð »­<ð »®<𠻯<ð »°<ð »±"
+ "<ð »²<ð »³<ð »´<ð »µ<𠻶<ð »·<𠻸<ð »¹<𠻺<ð »»<ð »¼<ð »½<ð »¾<ð »¿<ð ¼€<ð ¼<𠼂<𠼃<𠼄<ð ¼…<𠼆<𠼇<"
+ "𠼈<𠼉<𠼊<𠼋<𠼌<ð ¼<𠼎<ð ¼<ð ¼<𠼑<ð ¼’<𠼓<ð ¼”<𠼕<ð ¼–<ð ¼—<𠼘<ð ¼™<𠼚<ð ¼›<𠼜<ð ¼<𠼞"
+ "<𠼟<𠼠<𠼡<𠼢<𠼣<𠼤<𠼥<𠼦<𠼧<𠼨<𠼩<𠼪<𠼫<𠼬<𠼭<𠼮<𠼯<𠼰<𠼱<𠼲<𠼳<𠼴<"
+ "ð ¼µ<𠼶<ð ¼·<𠼸<ð ¼¹<𠼺<ð ¼»<ð ¼¼<ð ¼½<ð ¼¾<𠼿<ð ½€<ð ½<𠽂<𠽃<𠽄<ð ½…<𠽆<𠽇<𠽈<𠽉<𠽊<𠽋"
+ "<𠽌<ð ½<𠽎<ð ½<ð ½<𠽑<ð ½’<𠽓<ð ½”<𠽕<ð ½–<ð ½—<𠽘<ð ½™<𠽚<ð ½›<𠽜<ð ½<𠽞<𠽟<ð ½ <嘆<嘆<"
+ "噑<嘟<嘠<嘨<嘩<嘪<嘫<嘬<嘭<嘮<嘯<嘰<嘱<嘲<嘳<嘴<嘵<嘶<嘷<嘸<嘹<嘺<嘻<嘼<嘽<嘾<嘿<噀<å™<噂<噃<噄<噆<噇<"
+ "噈<噉<噊<噋<噌<å™<噎<å™<å™<å™’<å™”<å™–<å™—<噘<å™™<噚<å™›<噜<å™<å™´<ã—±<ã—²<ã—³<ã—´<ã—µ<ã—¶<ã—·<ã—¸<ã—¹<ã—º<𠆊<ð “<ð §"
+ "<𠹰<𠹱<𠹲<𠽡<𠽢<𠽣<𠽤<𠽥<𠽦<𠽧<𠽨<𠽩<𠽪<𠽫<𠽬<𠽭<𠽮<𠽯<𠽰<𠽱<𠽲<𠽳<"
+ "ð ½´<ð ½µ<𠽶<ð ½·<𠽸<ð ½¹<𠽺<ð ½»<ð ½¼<ð ½½<ð ½¾<𠽿<ð ¾€<ð ¾<𠾂<𠾃<𠾄<ð ¾…<𠾆<𠾇<𠾈<𠾉<𠾊"
+ "<𠾋<𠾌<ð ¾<𠾎<ð ¾<ð ¾<𠾑<ð ¾’<𠾓<ð ¾”<𠾕<ð ¾–<ð ¾—<𠾘<ð ¾™<𠾚<ð ¾›<𠾜<ð ¾<𠾞<𠾟<ð ¾ <"
+ "𠾡<𠾢<𠾣<𠾤<𠾥<𠾦<𠾨<𠾩<𠾪<𠾫<𠾬<𠾭<𠾮<𠾯<𠾰<𠾱<𠾲<𠾳<𠾴<𠾵<𠾶<𠾷<𠾸"
+ "<ð ¾¹<𠾺<ð ¾»<ð ¾¼<ð ¾½<ð ¾¾<𠾿<ð ¿€<ð ¿<ð ¿‚<𠿃<ð ¿„<ð ¿…<𠿆<ð¡€”<𡀦<å™´<噞<噟<å™ <噡<噢<噣<噤<噥<噦"
+ "<噧<器<噩<噪<噫<噬<å™­<å™®<噯<å™°<å™±<噲<噳<噵<噶<å™·<噸<噹<噺<å™»<噼<ã—»<ã—¼<ã—½<ã—¾<ã—¿<㘀<ã˜<㘂<㘃<㘄<𠿇<𠿈"
+ "<𠿉<ð ¿Š<ð ¿‹<ð ¿Œ<ð ¿<ð ¿Ž<ð ¿<ð ¿<ð ¿‘<ð ¿’<ð ¿“<ð ¿”<ð ¿•<ð ¿–<ð ¿—<𠿘<ð ¿™<ð ¿š<ð ¿›<ð ¿œ<ð ¿<ð ¿ž<"
+ "𠿟<𠿠<𠿡<𠿢<𠿣<𠿤<𠿥<𠿦<𠿧<𠿨<𠿩<𠿪<𠿫<𠿬<𠿭<𠿮<𠿯<𠿰<𠿱<𠿲<𠿳<𠿴<𠿵"
+ "<𠿶<ð ¿·<𠿸<ð ¿¹<𠿺<ð ¿»<ð ¿¼<ð ¿½<ð ¿¾<ð ¿¿<ð¡€€<ð¡€<𡀂<𡀃<𡀄<ð¡€…<𡀆<𡀇<𡀈<𡀉<𡀊<𡀋<"
+ "𡀌<ð¡€<𡀎<ð¡€<ð¡€<𡀑<ð¡€’<𡀓<𡀕<ð¡€–<ð¡€—<𡀘<ð¡€™<𡀚<ð¡€›<𡀜<ð¡€<𡀞<𡀟<ð¡€ <𡀡<ð¡€¢<ð¡€£"
+ "<𡀤<𡀥<𡀧<𡀨<𡀩<𡀪<𡀫<𡀬<𡀭<𡀮<𡀯<𡀰<𡀱<𡀲<𡀳<𡀴<𡀵<𡀶<𡀷<𡀸<𡀹<𡀺<"
+ "ð¡€»<ð¡€¼<ð¢¨<𨗓<器<噽<噾<噿<嚀<åš<åš‚<嚃<åš„<åš…<嚆<嚇<嚈<嚉<嚊<åš‹<嚌<åš<嚎<åš<åš<åš‘<åš’<åš“<嚺<㘅<㘆<㘇<"
+ "㘈<ð¡€½<ð¡€¾<𡀿<ð¡€<ð¡<ð¡‚<ð¡ƒ<ð¡„<ð¡…<ð¡†<ð¡‡<ð¡ˆ<ð¡‰<ð¡Š<ð¡‹<ð¡Œ<ð¡<ð¡Ž<ð¡<ð¡<ð¡‘<ð¡’<"
+ "ð¡“<ð¡”<ð¡•<ð¡–<ð¡—<ð¡˜<ð¡™<ð¡š<ð¡›<ð¡œ<ð¡<ð¡ž<ð¡Ÿ<ð¡ <ð¡¡<ð¡¢<ð¡£<ð¡¤<ð¡¥<ð¡¦<ð¡§<ð¡¨<ð¡©"
+ "<ð¡ª<ð¡«<ð¡¬<ð¡­<ð¡®<ð¡¯<ð¡°<ð¡±<ð¡²<ð¡³<ð¡´<ð¡µ<ð¡¶<ð¡·<ð¡¸<ð¡¹<ð¡º<ð¡»<ð¡¼<ð¡½<ð¡¾<ð¡¿<"
+ "ð¡‚€<ð¡‚<ð¡‚‚<𡂃<ð¡‚„<ð¡‚…<𡂆<𡂇<𡂈<𡂉<ð¡‚Š<ð¡‚‹<ð¡‚Œ<ð¡‚<ð¡‚Ž<åš”<åš•<åš–<åš—<嚘<åš™<åšš<åš›<åšœ<åš<åšž<嚟"
+ "<åš <åš¡<嚢<嚣<嚤<㘉<㘊<㘋<㘌<ã˜<㘎<ã˜<ð¡‚<ð¡‚<ð¡‚‘<ð¡‚’<ð¡‚“<ð¡‚”<ð¡‚•<ð¡‚–<ð¡‚—<𡂘<ð¡‚™<ð¡‚š<ð¡‚›<ð¡‚œ<"
+ "ð¡‚<ð¡‚ž<ð¡‚Ÿ<ð¡‚ <ð¡‚¡<ð¡‚¢<ð¡‚£<𡂤<ð¡‚¥<𡂦<𡂧<𡂨<ð¡‚©<𡂪<ð¡‚«<𡂬<ð¡‚­<ð¡‚®<𡂯<ð¡‚°<ð¡‚±<ð¡‚²<ð¡‚³"
+ "<ð¡‚´<ð¡‚µ<𡂶<ð¡‚·<𡂸<ð¡‚¹<𡂺<ð¡‚»<ð¡‚¼<ð¡‚½<ð¡‚¾<ð¡‚¿<𡃀<ð¡ƒ<𡃂<𡃃<𡃄<𡃅<𡃆<𡃇<𡃈<𡃉<"
+ "𡃊<𡃋<𡃌<ð¡ƒ<𡃎<ð¡ƒ<ð¡ƒ<𡃑<𡃒<𡃓<𡃔<𡃕<𡃖<𡃗<𡃘<𡃙<𡃚<𡃛<𡃜<ð¡ƒ<𡃞<𡃟<𡃰"
+ "<嚥<嚦<嚧<嚨<åš©<嚪<åš«<嚬<åš­<åš®<嚯<åš°<ã˜<㘑<㘒<𡃠<𡃡<𡃢<𡃣<𡃤<𡃥<𡃦<𡃧<𡃨<𡃩<𡃪<𡃫<"
+ "𡃬<𡃭<𡃮<𡃯<𡃱<𡃲<𡃳<𡃴<𡃵<𡃶<𡃷<𡃸<𡃹<𡃺<𡃻<𡃼<𡃽<𡃾<𡃿<ð¡„€<ð¡„<ð¡„‚<𡄃"
+ "<ð¡„„<ð¡„…<𡄆<𡄇<𡄈<ð¡„Š<ð¡„‹<ð¡„Œ<ð¡„<ð¡„Ž<ð¡„<ð¡„<åš±<åš²<åš³<åš´<åšµ<嚶<åš·<嚸<åš¹<㘓<㘔<ð¡„‘<ð¡„’<ð¡„“<"
+ "ð¡„”<ð¡„•<ð¡„–<ð¡„—<𡄘<ð¡„™<ð¡„š<ð¡„›<ð¡„œ<ð¡„<ð¡„ž<ð¡„Ÿ<ð¡„ <ð¡„¡<ð¡„¢<ð¡„£<𡄤<ð¡„¥<𡄦<𡄧<𡄨<ð¡„©<𡄪"
+ "<ð¡„«<𡄬<ð¡„­<ð¡„®<𡄯<ð¡„°<åš»<åš¼<åš½<åš¾<åš¿<囀<å›<囂<囃<囄<å›<㘕<㘖<㘗<ð¡„±<ð¡„²<ð¡„³<ð¡„´<ð¡„µ<𡄶<ð¡„·<"
+ "𡄸<ð¡„¹<𡄺<ð¡„»<ð¡„¼<ð¡„½<ð¡„¾<ð¡„¿<ð¡…€<ð¡…<ð¡…‚<ð¡…ƒ<ð¡…„<ð¡……<ð¡…†<ð¡…‡<ð¡…ˆ<ð¡…‰<ð¡…Š<ð¡…‹<ð¡…Œ<ð¡…<ð¡…Ž"
+ "<ð¡…<ð¡…<ð¡…‘<ð¡…’<ð¡…“<ð¡…”<ð¡…£<å›…<囆<囇<囈<囉<囊<囋<囎<㘘<ð¡…—<ð¡…˜<ð¡…™<ð¡…š<ð¡…›<ð¡…œ<ð¡…<ð¡…ž<ð¡…Ÿ<"
+ "ð¡… <ð¡…¡<ð¡…¢<ð¡…¤<ð¡…¥<ð¡…¦<ð¡…§<ð¡…¨<ð¡…©<ð¡…ª<ð¡…«<ð¡…¬<ð¡…­<ð¡…®<ð¡…¯<囌<å›<å›<㘙<㘚<ð¡…°<ð¡…±<ð¡…²<ð¡…³<"
+ "ð¡…´<ð¡…µ<ð¡…¶<ð¡…·<ð¡…¸<囑<å›’<囓<ð¡…¹<ð¡…º<ð¡…»<ð¡…¼<ð¡…½<ð¡…¾<ð¡…¿<𡆀<ð¡†<𡆂<𡆃<𡆄<𡆅<å›”<囕<㘛<𡆆"
+ "<𡆇<𡆈<𡆉<𡆊<𡆋<𡆌<ð¡†<𡆎<㘜<ð¡†<ð¡†<𡆑<𡆒<𡆓<𡆔<𡆕<𡆖<𡆗<𡆘<𡆙<𡆚<𡆞<å›–<"
+ "𡆛<𡆜<ð¡†<𧮥<𡆟<å›—<𡆠<𡆡<𡆢<囘<å›™<囚<å››<囜<é¾±<ã˜<ð ¤<𡆣<𡆤<𡆥<𡆦<å›<回<囟<å› <囡<团<団"
+ "<㘟<𡆧<𡆨<𡆩<𡆪<𡆫<𡆬<𡆭<𡆮<𡆯<𡆰<𡆱<𡆲<𡆳<囤<囥<囦<囧<囨<囩<囪<囫<囬<园<囮<囯<困<"
+ "å›±<囲<図<å›´<囵<𡆴<𡆵<𡆶<𡆷<𡆸<𡆹<𡆺<𡆻<𡆼<𡆽<𡆾<𡆿<𡇀<ð¡‡<𡇂<𡇃<𡇄<𡇅<𡇆<"
+ "𡇇<囶<å›·<囸<囹<固<å›»<囼<国<图<㘠<㘡<𠀯<𡇈<𡇉<𡇊<𡇋<𡇌<𡇎<ð¡‡<ð¡‡<𡇑<囹<囿<圀<㘢<𡇒<𡇓"
+ "<𡇔<𡇕<𡇖<𡇗<𡇘<𡇙<𡇚<𡇛<𡇜<ð¡‡<𡇞<𡇟<åœ<圂<圃<圄<圅<圆<㘣<𡇠<𡇡<𡇢<𡇣<𡇤<𡇥"
+ "<𡇦<𡇧<𡇨<𡇩<𡇪<𡇫<𡇬<𡇭<𡇮<𡇯<圇<圈<圉<圊<國<åœ<𡇰<𡇱<𡇲<𡇳<𡇴<𡇵<𡇶<𡇷<"
+ "𡇸<𡇹<𡇺<𡇻<𡈀<圌<åœ<圎<åœ<𡇼<𡇽<𡇾<𡇿<ð¡ˆ<𡈂<𡈃<𡈄<𡈅<𡈆<𡈇<𡈈<𡈉<𤔗<圑<園"
+ "<圓<圔<圕<𡈊<𡈋<𡈌<ð¡ˆ<𡈎<ð¡ˆ<ð¡ˆ<𡈑<𡈒<𡈓<𡈔<圖<圗<團<圙<㘤<𡈕<𡈖<𡈗<𡈘<𡈙<𡈚<"
+ "𡈛<𡈜<ð¡ˆ<𡈞<𡈟<𡈠<𡈡<圖<圗<圚<𡈢<𡈣<𡈤<𡈦<𡈧<𡈨<𡈩<圛<圜<𡈥<𡈪<𡈫<𡈬<𡈭<"
+ "𡈮<𡈯<𡈰<𡈱<𡈲<𡈳<𡈴<㘥<𡈵<𡈶<𡈷<𡈸<𡈹<𡈺<åœ<圞<𡈻<土<圠<圡<龶<𡈼<𡈽<𡈾<圢<圣"
+ "<圤<圥<圦<圧<㘦<𡈿<𡉀<ð¡‰<𡉂<𡉃<𡉄<𡉅<𡉆<𡉇<在<圩<圪<圫<圬<圭<圮<圯<地<圱<圲<圳<圴<圵<圶<"
+ "圷<圸<圹<场<𡉈<𡉉<𡉊<𡉋<𡉌<ð¡‰<𡉎<ð¡‰<ð¡‰<𡉑<𡉒<𡉓<𡉔<𡉕<𡉖<圻<圼<圽<圾<圿<å€<å<å‚"
+ "<åƒ<å„<å…<å†<å‡<åˆ<å‰<åŠ<å‹<åŒ<å<åŽ<å<å<å‘<å’<å“<å”<å•<å–<å—<å˜<å™<åš<å›<åœ<å<åž<åŸ<å <㘧<㘨<㘩<㘪"
+ "<㘫<㘬<㘭<㘮<㘯<㘰<𡉘<𡉙<𡉚<𡉛<𡉜<ð¡‰<𡉞<𡉟<𡉠<𡉡<𡉢<𡉣<𡉤<𡉥<𡉦<𡉧<𡉨<𡉩<"
+ "𡉪<𡉫<𡉬<𡉭<𡉮<𡉯<𡉰<𡉱<𡉲<𡉳<𡉴<𡉵<𡉶<𡉷<𡉸<𡉹<𡉺<𡉻<𡉼<𡉽<𡉾<𡉿<𡊀"
+ "<ð¡Š<ð¡Š‚<𡊃<å¡<å¢<å£<å¤<å¥<å¦<å§<å¨<å©<åª<å«<å¬<å­<å®<å¯<å°<å±<å²<å³<å´<åµ<å¶<å·<å¸<å¹<åº<å»<å¼<å½<"
+ "å¾<å¿<垀<åž<åž‚<垃<åž„<åž…<垆<垇<垈<垉<垊<㘱<㘲<㘳<㘴<㘵<ð¡Š„<ð¡Š…<𡊆<𡊇<𡊈<𡊉<ð¡ŠŠ<ð¡Š‹<ð¡ŠŒ<ð¡Š<ð¡ŠŽ"
+ "<ð¡Š<ð¡Š<ð¡Š‘<ð¡Š’<ð¡Š“<ð¡Š”<ð¡Š•<ð¡Š–<ð¡Š—<𡊘<ð¡Š™<ð¡Šš<ð¡Š›<ð¡Šœ<ð¡Š<ð¡Šž<ð¡ŠŸ<ð¡Š <ð¡Š¡<ð¡Š¢<ð¡Š£<𡊤<"
+ "ð¡Š¥<𡊦<𡊧<𡊨<ð¡Š©<𡊪<ð¡Š«<𡊬<ð¡Š­<ð¡Š®<𡊯<ð¡Š°<𡊱<𡊲<𡊳<ð¡Š´<𡊵<𡊶<åž‹<垌<åž<垎<åž<åž<åž‘<"
+ "åž’<åž“<åž”<åž•<åž–<åž—<垘<åž™<åžš<åž›<åžœ<åž<åžž<垟<åž <åž¡<垢<垣<垤<垥<垦<垧<垨<åž©<垪<åž«<垬<åž­<åž®<垯<åž°<åž±<åž²<åž³<"
+ "åž´<åžµ<城<㘶<㘷<㘸<㘹<㘺<㘻<㘼<㘽<㘾<ð¡Š·<𡊸<𡊹<𡊺<ð¡Š»<𡊼<𡊽<𡊾<ð¡Š¿<ð¡‹€<ð¡‹<ð¡‹‚<𡋃<ð¡‹„<ð¡‹…"
+ "<𡋆<𡋇<𡋈<𡋉<ð¡‹Š<ð¡‹‹<ð¡‹Œ<ð¡‹<ð¡‹Ž<ð¡‹<ð¡‹<ð¡‹‘<ð¡‹’<ð¡‹“<ð¡‹”<ð¡‹•<ð¡‹–<ð¡‹—<𡋘<ð¡‹™<ð¡‹š<ð¡‹›<"
+ "ð¡‹<ð¡‹ž<ð¡‹Ÿ<ð¡‹ <ð¡‹¡<ð¡‹¢<ð¡‹£<𡋤<ð¡‹¥<𡋦<𡋧<𡋨<ð¡‹©<𡋪<ð¡‹«<𡋬<城<åž‹<垶<åž·<垸<åž¹<垺<åž»<åž¼<åž½<"
+ "åž¾<åž¿<埀<åŸ<埂<埃<埄<埅<埆<埇<埈<埉<埊<埋<埌<åŸ<åŸ<åŸ<埑<埒<埓<埔<埕<埖<埗<埘<埙<埚<埛<㘿<㙀<ã™<㙂<㙃<"
+ "㙄<ã™…<㙆<ð¡‹­<ð¡‹®<𡋯<ð¡‹°<ð¡‹±<ð¡‹²<ð¡‹³<ð¡‹´<ð¡‹µ<𡋶<ð¡‹·<𡋸<ð¡‹¹<𡋺<ð¡‹»<ð¡‹¼<ð¡‹½<ð¡‹¾<ð¡‹¿<𡌀<ð¡Œ"
+ "<𡌂<𡌃<𡌄<𡌅<𡌆<𡌇<𡌈<𡌉<𡌊<𡌋<𡌌<ð¡Œ<𡌎<ð¡Œ<ð¡Œ<𡌑<𡌒<𡌓<𡌔<𡌕<𡌖<𡌗<"
+ "𡌘<𡌙<𡌚<𡌛<𡌜<ð¡Œ<𡌞<𡌟<𡌠<𡌡<𡌢<𡌣<𡌤<𡌥<𣑧<ï¨<埜<åŸ<埞<域<埠<埡<埢<埣<埤<埥<埦"
+ "<埧<埨<埩<埫<埬<埭<埮<埯<埰<埱<埲<埳<埴<埵<埶<執<埸<培<基<埻<埼<埽<埾<埿<å €<å <å ‚<å ƒ<å „<å …<å †<å ‡<å ˆ<å ‰"
+ "<å Š<å ‹<å Œ<å <å Ž<å <å <å ‘<å ’<å “<å ”<å •<㙇<㙈<㙉<㙊<㙋<㙌<ã™<𡌦<𡌧<𡌨<𡌩<𡌪<𡌫<𡌬<𡌭<𡌮<𡌯"
+ "<𡌰<𡌱<𡌲<𡌳<𡌴<𡌵<𡌶<𡌷<𡌸<𡌹<𡌺<𡌻<𡌼<𡌽<𡌾<𡌿<ð¡€<ð¡<ð¡‚<ð¡ƒ<ð¡„<ð¡…<"
+ "ð¡†<ð¡‡<ð¡ˆ<ð¡‰<ð¡Š<ð¡‹<ð¡Œ<ð¡<ð¡Ž<ð¡<ð¡<ð¡‘<ð¡’<ð¡“<ð¡”<ð¡•<ð¡–<ð¡—<ð¡˜<ð¡™<ð¡š<ð¡›<ð¡œ"
+ "<ð¡<ð¡ž<ð¡Ÿ<ð¡ <ð¡¡<ð¡¢<ð¡£<埴<å <埪<å –<å —<å ˜<å ™<å š<å ›<å œ<å <å ž<å Ÿ<å  <å ¡<å ¢<å £<å ¤<å ¥<å ¦<å §<å ¨<å ©<"
+ "å ª<å «<å ¬<å ­<å ®<å ¯<å °<å ±<å ²<å ³<å ´<å µ<å ¶<å ·<å ¸<å ¹<å º<å »<å ¼<å ¾<å ¿<å¡€<å¡<å¡‚<å¡„<å¡…<塆<塇<塈<㙎<ã™<ã™<㙑<ã™’<"
+ "㙓<ã™”<㙕<ã™–<ã™—<㙘<ð¡¤<ð¡¥<ð¡¦<ð¡§<ð¡¨<ð¡©<ð¡ª<ð¡«<ð¡¬<ð¡­<ð¡®<ð¡¯<ð¡°<ð¡±<ð¡²<ð¡³<ð¡´<ð¡µ<ð¡¶"
+ "<ð¡·<ð¡¸<ð¡¹<ð¡º<ð¡»<ð¡¼<ð¡½<ð¡¾<ð¡¿<ð¡Ž€<ð¡Ž<ð¡Ž‚<𡎃<ð¡Ž„<ð¡Ž…<𡎆<𡎇<𡎈<𡎉<ð¡ŽŠ<ð¡Ž‹<ð¡ŽŒ<"
+ "ð¡Ž<ð¡ŽŽ<ð¡Ž<ð¡Ž<ð¡Ž‘<ð¡Ž’<ð¡Ž“<ð¡Ž”<ð¡Ž•<ð¡Ž–<ð¡Ž—<𡎘<ð¡Ž™<ð¡Žš<ð¡Ž›<ð¡Žœ<ð¡Ž<ð¡Žž<ð¡ŽŸ<ð¡Ž <ð¡Ž¡<ð¡Ž¢<ð¡Ž£"
+ "<𡎤<ð¡Ž¥<𡎦<𡎧<𡎨<ð¡Ž©<𡎪<ð¡Ž«<𡎬<ð¡Ž­<å¡€<å ²<å ±<å ½<塃<塉<å¡Š<å¡‹<å¡Œ<å¡<å¡Ž<å¡<å¡<å¡‘<å¡’<å¡“<å¡”<å¡•<å¡–"
+ "<å¡—<塘<å¡™<å¡š<å¡›<å¡œ<å¡<å¡ž<å¡Ÿ<å¡ <å¡¡<å¡¢<å¡£<塤<å¡¥<塦<塧<塨<å¡©<塪<å¡«<塬<å¡­<å¡®<塯<å¡°<塱<ã™™<㙚<ã™›<㙜<ã™<㙞<㙟"
+ "<ð¡Ž®<𡎯<ð¡Ž°<𡎱<𡎲<𡎳<ð¡Ž´<𡎵<𡎶<ð¡Ž·<𡎸<𡎹<𡎺<ð¡Ž»<𡎼<𡎽<𡎾<ð¡Ž¿<ð¡€<ð¡<ð¡‚<ð¡ƒ<"
+ "ð¡„<ð¡…<ð¡†<ð¡‡<ð¡ˆ<ð¡‰<ð¡Š<ð¡‹<ð¡Œ<ð¡<ð¡Ž<ð¡<ð¡<ð¡‘<ð¡’<ð¡“<ð¡”<ð¡•<ð¡–<ð¡—<ð¡˜<ð¡™<ð¡š"
+ "<ð¡›<ð¡œ<ð¡<ð¡ž<ð¡Ÿ<ð¡ <ð¡¡<ð¡¢<ð¡£<ð¡¤<ð¡¥<ð¡¦<ð¡§<ð¡¨<ð¡©<ð¡ª<ð¡«<ð¡¬<𧯧<å¡ž<å¡š<å¡š<塲<塳<"
+ "å¡´<塵<塶<å¡·<塸<塹<塺<å¡»<塼<塽<塾<å¡¿<墀<å¢<墂<境<墄<墅<墆<墇<墈<墉<墊<墋<墌<å¢<墎<å¢<å¢<墑<墒<墓<墔<墕<"
+ "墖<増<墘<墙<墚<墛<ã™ <㙡<㙢<㙣<㙤<㙥<㙦<ð¡­<ð¡®<ð¡¯<ð¡°<ð¡±<ð¡²<ð¡³<ð¡´<ð¡µ<ð¡¶<ð¡·<ð¡¸<ð¡¹<ð¡º<"
+ "ð¡»<ð¡¼<ð¡½<ð¡¾<ð¡¿<ð¡€<ð¡<ð¡‚<ð¡ƒ<ð¡„<ð¡…<ð¡†<ð¡‡<ð¡ˆ<ð¡‰<ð¡Š<ð¡‹<ð¡Œ<ð¡<ð¡Ž<ð¡<ð¡<ð¡‘"
+ "<ð¡’<ð¡“<ð¡”<ð¡•<ð¡–<ð¡—<ð¡˜<ð¡™<ð¡š<ð¡›<ð¡œ<ð¡<𦥈<墜<å¢<增<墟<墠<墡<墢<墣<墤<墥<墦<墧<墩<墪<"
+ "墫<墬<墭<墮<墯<墰<墱<墲<墳<墴<墵<墶<墷<墸<墹<㙧<㙨<㙩<㙪<㙫<㙬<ã™­<ã™®<㙯<ð š›<ð¡ž<ð¡Ÿ<ð¡ <ð¡¡<ð¡¢<ð¡£"
+ "<ð¡¤<ð¡¥<ð¡¦<ð¡§<ð¡¨<ð¡©<ð¡ª<ð¡«<ð¡¬<ð¡­<ð¡®<ð¡¯<ð¡°<ð¡±<ð¡²<ð¡³<ð¡´<ð¡µ<ð¡¶<ð¡·<ð¡¸<ð¡¹<"
+ "ð¡º<ð¡»<ð¡¼<ð¡½<ð¡¾<ð¡¿<ð¡‘€<ð¡‘<ð¡‘‚<𡑃<ð¡‘„<ð¡‘…<𡑆<𡑇<𡑈<𡑉<ð¡‘Š<ð¡‘‹<ð¡‘Œ<ð¡‘<ð¡‘Ž<ð¡‘<ð¡‘"
+ "<ð¡‘‘<ð¡‘’<ð¡‘“<ð¡‘”<ð¡‘•<ð¡‘–<ð¡‘—<𡑘<ð¡‘™<ð¡‘š<ð¡‘›<ð¡‘œ<ð¡‘<墨<墳<墬<墺<墻<墼<墽<墾<墿<壀<å£<壂<壃<壄<"
+ "壅<壆<壇<壈<壉<壊<壋<壌<龳<㙰<㙱<㙲<㙳<㙴<㙵<㙶<𡑞<𡑟<𡑠<𡑡<𡑢<𡑣<𡑤<𡑥<𡑦<𡑧<𡑨<𡑩<"
+ "𡑪<ð¡‘«<𡑬<ð¡‘­<ð¡‘®<𡑯<ð¡‘°<ð¡‘±<ð¡‘²<ð¡‘³<ð¡‘´<ð¡‘µ<𡑶<ð¡‘·<𡑸<ð¡‘¹<ð¡‘»<ð¡‘¼<ð¡‘½<ð¡‘¾<ð¡‘¿<ð¡’€<ð¡’"
+ "<ð¡’‚<ð¡’ƒ<ð¡’„<ð¡’…<ð¡’†<ð¡’‡<ð¡’ˆ<å£<壎<å£<å£<壑<壒<壓<壔<壕<壖<壗<ã™·<㙸<㙹<㙺<ð¡’‰<ð¡’Š<ð¡’‹<ð¡’Œ<ð¡’<"
+ "ð¡’Ž<ð¡’<ð¡’<ð¡’‘<ð¡’’<ð¡’“<ð¡’”<ð¡’•<ð¡’–<ð¡’—<ð¡’˜<ð¡’™<ð¡’š<ð¡’›<ð¡’œ<ð¡’<ð¡’ž<ð¡’Ÿ<ð¡’ <ð¡’¢<ð¡’£<ð¡’¤<ð¡’¥"
+ "<𡒦<𡒧<𡒨<𡒩<𡒪<𡒫<𡒬<𡒭<𡒮<𡒯<壘<壙<㙻<㙼<㙽<𡒰<𡒱<𡒲<𡒳<𡒴<𡒵<𡒶<𡒷<𡒸<"
+ "ð¡’¹<ð¡’º<ð¡’»<ð¡’¼<ð¡’½<ð¡’¾<ð¡’¿<ð¡“<ð¡“‚<𡓃<ð¡“„<ð¡“…<𡓆<𡓇<𡓈<𡓉<ð¡“Š<ð¡“‹<ð¡“Œ<ð¡“<ð¡“Ž<ð¡“<壘<"
+ "壚<壛<壜<å£<壞<壟<壠<壢<㙾<㙿<ð¡“€<ð¡“<ð¡“‘<ð¡“’<ð¡““<ð¡“”<ð¡“•<ð¡“–<ð¡“—<𡓘<ð¡“™<ð¡“š<ð¡“œ<ð¡“<ð¡“ž<ð¡“Ÿ<"
+ "𡓠<𡓡<𡓢<𡓣<𡓤<𡓥<壟<𡓤<壣<壤<壥<㚀<𡓦<𡓧<𡓨<𡓩<𡓪<𡓫<𡓬<𡓭<𡓮<𡓯<𡓰<壦<𡓱"
+ "<ð¡“²<ð¡“³<ð¡“´<ð¡“µ<𡓶<𡓸<ð¡“¹<ð¡“»<ð¡“¼<ð¡“½<ð¡“¾<ð¡“¿<𡔀<ð¡”<𡓺<ð¡”‚<𡔃<ð¡”„<ð¡”…<𡔆<𡔇<𡔈<"
+ "𡔉<壧<壨<𡔊<ð¡”‹<𡔌<ð¡”<𡔎<壩<ãš<ð¡”<ð¡”<ð¡”‘<ð¡”’<ð¡”“<ð¡””<ð¡”•<壪<ãš‚<ð¡”–<ð¡”—<𡔘<ð¡”™<𡔚<士<"
+ "壬<壭<ð¡”›<壮<𡔜<壮<壯<声<壱<売<壳<ð¡”<𡔞<売<𡔟<壴<壵<ð¡” <ð¡”¡<𡔢<壶<𡔣<𡔤<𡔥<𡔦<𡔧<𡔨<"
+ "𡔩<壷<壸<𡔪<𡔫<𡔬<𡔭<壷<壹<壺<壻<㚃<𡔮<𡔯<壼<𡔰<𡔲<𡔳<𡔴<𡔵<壽<壾<𡔶<𡔸<𡔹<𡔺<"
+ "ð¡”»<壿<夀<ãš„<ð¡”¼<ð¡”½<å¤<ð¡”¾<ð¡”¿<ð¡•€<ð¡•<ð¡•‚<𡕃<ð¡•„<ð¡•…<𡕇<𡕈<𡕉<ð¡•Š<ð¡•‹<ð¡•Œ<ð¡•<ð¡…•<ð¡•<"
+ "ð¡•<ð¡•‘<夂<ð¡•’<夃<处<ð¡•“<ð¡•”<夅<ð¡••<ð¡•–<夆<ð¡•—<𡕘<ð¡•™<夆<备<夈<ãš…<ð¡•š<𠙚<ð¡•›<ð¡•œ<𪌛<ð¡•<夊<"
+ "ð¡•ž<ð¡•Ÿ<夋<ð¡• <ð¡•¡<夌<ð¡•¢<ð¡•£<𡕤<ð¡•¥<変<å¤<㚆<㚇<夎<å¤<ð €¼<𡕦<𡕧<𡕨<ð¡•©<𡕪<ð¡•«<𡕬<𠌞<"
+ "ð¡•­<ð ­¶<ð¡•®<𡕯<ð¡•°<ð¡•±<å¤<ð¡•²<ð¡•³<ð¡•´<ð¡•µ<𡕶<ð¡•·<𡕸<ð¡•¹<𡕺<ð¡•»<夑<夓<ð¡•¼<ð¡•½<ð¡•¾<ð¡•¿<夒<"
+ "ð¡–€<ð¡–<夔<ð¡–‚<ð¡–ƒ<夕<外<夗<夘<㚈<ð¡–„<ð¡–…<ð¡–†<夙<多<夛<ð¡–‡<ð¡–ˆ<ð¡–‰<多<ð¡–Š<ð¡–‹<ð¡–Œ<夜<å¤<㚉<ð¡–<"
+ "ð¡–Ž<ð¡–<ð¡–<ð¡–‘<夞<ð …—<ð¡–’<ð¡–“<ð¡–”<ð¡–•<ð¡––<ð¡–—<ð¡–˜<ð¡–™<ð¡–š<ð¡–›<ð¡–œ<𢻈<够<夠<ð¡–<ð¡–ž<ð¡–Ÿ<ð¡– "
+ "<𡖡<𡖢<𡖣<𡖤<𡖥<夡<㚊<𠅱<𠨃<𡖦<𡖧<𡖨<𡖩<𡖪<𡖫<𡖬<𡖭<𡖮<𡖰<𡖯<𡖱<𡖲<𡖳<"
+ "ð¡–´<ð¡–µ<夢<夣<夤<夥<ãš‹<㚌<ð¡–¶<ð¡–·<ð¡–¸<ð¡–¹<ð¡–º<ð¡–»<ð¡–¼<ð¡–½<ð¡–¾<𢆣<夢<夦<ð¡–¿<ð¡—€<ð¡—<𠆓<𠆕<"
+ "ð¡—‚<ð¡—ƒ<ð¡—„<ð¡—…<𠆙<ð¡—†<ð¡—‡<ð¡—ˆ<ãš<ð¡—‰<ð¡—Š<ð¡—‹<ð¡—Œ<ð¡—<ð¡—<ð¡—Ž<ð¡—<𣡳<ð¡—‘<大<夨<天<太<夫<夬<"
+ "夭<ð¡—’<ð¡—“<ð¡—”<央<夯<夰<失<夲<夳<头<㚎<ð¡—•<ð¡—–<ð¡——<ð¡—˜<ð¡—™<ð¡—š<ð¡—›<夵<夶<夷<夸<夹<夺<夻<夼<ãš<ãš<"
+ "ãš‘<ð €›<ð¡—<ð¡—ž<ð¡—Ÿ<ð¡— <ð¡—¡<ð¡—¢<ð¡—£<ð¡—¤<夽<夾<夿<奀<å¥<奂<ãš’<ãš“<ð¡—¥<ð¡—¦<ð¡—§<ð¡—¨<ð¡—©<ð¡—ª<ð¡—«<ð¡—¬"
+ "<ð¡—­<ð¡—®<ð¡—¯<ð¡—°<ð¡—±<ð¡—²<ð¡—³<ð¡—´<ð¡—µ<ð¡—¶<奃<奄<奅<奆<奇<奈<奉<奋<奌<å¥<ãš”<ãš•<ãš–<ãš—<㚘<ãš™<ð¡—·<ð¡—¸"
+ "<ð¡—¹<ð¡—º<ð¡—»<ð¡—¼<ð¡—½<ð¡—¾<ð¡—¿<𡘀<ð¡˜<𡘂<𡘃<𡘄<𡘅<𡘆<𡘇<𡘈<𡘉<𡘊<𡘋<𡘌<奈<奄<奎<å¥"
+ "<å¥<契<奒<奓<奔<奕<奖<ãšš<ãš›<ð¡˜<𡘎<ð¡˜<ð¡˜<𡘑<𡘒<𡘓<𡘔<𡘕<𡘖<𡘗<𡘘<𡘙<𡘚<𡘛<𡘜<契"
+ "<奔<奊<套<奘<奙<奚<ð¡˜<𡘞<𡘟<𡘠<𡘡<𡘢<𡘣<𡘤<𡘥<𡘦<𡘧<𡘨<𡘩<𡘪<𡘫<𡘬<𡘭<𡘮<"
+ "𡘯<𡘰<𡘱<𡘲<𡘳<奛<奜<å¥<奞<ãšœ<ãš<ãšž<𡘴<𡘵<𡘶<𡘷<𡘸<𡘹<𡘺<𡘻<𡘼<𡘽<𡘾<𡘿<𡙀<"
+ "ð¡™<ð¡™‚<𡙃<ð¡™„<ð¡™…<𡙆<奟<奠<奡<奢<奣<奤<奥<㚟<ð¡”±<𡙇<𡙈<𡙉<𡙊<ð¡™‹<𡙌<ð¡™<𡙎<ð¡™<ð¡™<"
+ "ð¡™‘<ð¡™’<ð¡™“<ð¡™”<ð¡™•<ð¡™–<ð¡™—<𡙘<ð¡™™<𡙚<奢<奦<奧<奨<ãš <ð¡™›<𡙜<ð¡™<𡙞<𡙟<ð¡™ <ð¡™¡<𡙢<𡙣<"
+ "𡙤<𡙥<𡙦<𡙧<𡙨<𡙩<𡙪<𡙫<奩<奪<奫<奬<𡙬<𡙭<𡙮<𡙯<𡙰<𡙱<𡙲<𡙳<𡙴<𡙵<𡙶<奭<"
+ "ð¡™·<𡙸<ð¡™¹<𡙺<ð¡™»<ð¡™¼<ð¡™½<ð¡™¾<ð¡™¿<𡚀<ð¡š<ð¡š‚<𡚃<ð¡š„<ð¡š…<奮<奯<ãš¡<𡚆<𡚇<𡚈<𡚉<𡚊<ð¡š‹"
+ "<𡚌<ð¡š<𡚎<ð¤ <ð¡š<ð¡š<ð¡š‘<ð¡š’<ð¡š“<ð¡š”<ð¡š•<ð¡š–<奰<ð¡š—<𡾗<𡚘<ð¡š™<ð¡šš<ð¡š›<ð¡šœ<ð¡š<奱<ð¡šž<"
+ "𡚟<𡚠<𡚡<𡚢<奲<𡚣<𡚤<𡚥<女<女<𡚦<奴<奵<奶<㚢<𡚧<𡚨<𡚩<𡚪<𡚫<𡚬<𡚭<𡚨<奷<奸<她<"
+ "奺<奻<奼<好<奾<奿<妀<å¦<如<妃<妄<妅<妆<妇<妈<㚣<㚤<㚥<㚦<㚧<㚨<ð¡š®<𡚯<ð¡š°<ð¡š±<ð¡š²<ð¡š³<ð¡š´<ð¡šµ<𡚶"
+ "<ð¡š·<𡚸<ð¡š¹<𡚺<ð¡š»<妉<妊<妋<妌<妎<å¦<å¦<妑<妒<妓<妔<妕<妖<妗<妘<妙<妚<妛<妜<å¦<妞<妟<妠<妡<妢<妣<"
+ "妤<妥<妦<妧<妨<妩<妪<妫<ãš©<㚪<ãš«<㚬<ãš­<ãš®<㚯<ã› <ð¡š¼<ð¡š½<ð¡š¾<ð¡š¿<𡛀<ð¡›<ð¡›‚<𡛃<ð¡›„<ð¡›…<𡛆<𡛇<"
+ "𡛈<𡛉<𡛊<ð¡›‹<𡛌<ð¡›<𡛎<ð¡›<ð¡›<ð¡›‘<ð¡›’<ð¡›“<ð¡›”<ð¡›•<ð¡›–<ð¡›—<𡛘<妬<妭<妮<妯<妰<妱<妲<妳<妴"
+ "<妵<妶<妷<妸<妹<妺<妻<妼<妽<妾<妿<姀<å§<姂<姃<姄<姅<姆<姇<姈<姉<姊<始<姌<å§<姎<å§<å§<姑<姒<姓<委<姕<姖"
+ "<姗<ãš°<ãš±<ãš²<ãš³<ãš´<ãšµ<㚶<ãš·<㚸<ãš¹<㚺<ãš»<ãš¼<ãš½<ãš¾<ãš¿<㛀<ã›<ð¡›™<𡛚<ð¡››<𡛜<ð¡›<𡛞<𡛟<ð¡› <ð¡›¡<𡛢"
+ "<𡛣<𡛤<𡛥<𡛦<𡛧<𡛨<𡛩<𡛪<𡛫<𡛬<𡛭<𡛮<𡛯<𡛰<𡛱<𡛲<𡛳<𡛴<𡛵<𡛶<𡛷<𡛸<"
+ "ð¡›¹<𡛺<ð¡›»<ð¡›¼<ð¡›½<ð¡›¾<ð¡›¿<𡜀<ð¡œ<𡛪<å¦<姘<姙<姚<姛<姜<å§<姞<姟<姠<姡<姢<姣<姤<姥<姦<姧<姨<姩<"
+ "姪<姫<姭<姮<姯<姰<姱<姲<姳<姴<姵<姶<姷<姸<姹<姺<姻<姼<姽<姾<姿<娀<å¨<娂<娃<娅<娆<娇<娈<㛂<㛃<㛄<ã›…<㛆<"
+ "㛇<㛈<㛉<㛊<㛋<㛌<𡜂<𡜃<𡜄<𡜅<𡜆<𡜇<𡜈<𡜉<𡜊<𡜋<𡜌<ð¡œ<𡜎<ð¡œ<ð¡œ<𡜑<𡜒<𡜓<𡜔"
+ "<𡜕<𡜖<𡜗<𡜘<𡜙<𡜚<𡜛<𡜜<ð¡œ<𡜞<𡜟<𡜠<𡜡<𡜢<𡜣<𡜤<𡜥<𡜦<𡜧<𡜨<𡜩<𡜪<"
+ "𡜫<𡜬<𡜭<姘<姬<娉<娊<娋<娌<å¨<娎<å¨<å¨<娑<娒<娓<娔<娕<娖<娗<娘<娙<娚<娛<娜<å¨<娞<娟<娠<娡<娢<娣<娤"
+ "<娥<娦<娧<娨<娩<娪<娫<娭<娮<娯<娰<娱<娲<娳<娴<娽<ã›<㛎<ã›<ã›<㛑<ã›’<㛓<ã›”<㛕<ã›–<ã›—<㛘<ã›™<㛚<ã››<㛜<ã›<㛞"
+ "<㛟<㛡<㛢<㛣<㛤<𡜮<𡜯<𡜰<𡜱<𡜲<𡜳<𡜴<𡜵<𡜶<𡜷<𡜸<𡜹<𡜺<𡜻<𡜼<𡜽<𡜾<𡜿<ð¡€<"
+ "ð¡<ð¡‚<ð¡ƒ<ð¡„<ð¡…<ð¡†<ð¡‡<ð¡ˆ<ð¡‰<ð¡Š<ð¡‹<ð¡Œ<ð¡<ð¡Ž<ð¡<ð¡<ð¡‘<ð¡’<ð¡“<ð¡”<ð¡•<ð¡–<ð¡—"
+ "<ð¡˜<ð¡™<ð¡š<ð¡›<ð¡œ<ð¡<姬<娛<娧<娬<娵<娶<娷<娸<娹<娺<娻<娼<娾<娿<å©€<å©<å©‚<婃<å©„<å©…<婆<婇<婈<婉<å©Š"
+ "<å©‹<å©Œ<å©<å©Ž<å©<å©<å©‘<å©’<å©“<å©”<å©•<å©–<å©—<婘<å©™<å©š<å©›<å©œ<å©<å©ž<å©Ÿ<å© <å©¡<å©¢<å©£<婤<å©¥<婦<婧<婨<å©©<婪<å©«<婬"
+ "<å©­<å©®<婯<å©°<婱<婲<婳<å©´<婵<婶<㛥<㛦<㛧<㛨<㛩<㛪<㛫<㛬<ã›­<ð¡ž<ð¡Ÿ<ð¡ <ð¡¡<ð¡¢<ð¡£<ð¡¤<ð¡¥<ð¡¦<ð¡§"
+ "<ð¡¨<ð¡©<ð¡ª<ð¡«<ð¡¬<ð¡­<ð¡®<ð¡¯<ð¡°<ð¡±<ð¡²<ð¡³<ð¡´<ð¡µ<ð¡¶<ð¡·<ð¡¸<ð¡¹<ð¡º<ð¡»<ð¡¼<ð¡½<"
+ "ð¡¾<ð¡¿<𡞀<ð¡ž<ð¡ž‚<𡞃<ð¡ž„<ð¡ž…<𡞆<𡞇<𡞈<𡞉<𡞊<ð¡ž‹<𡞌<ð¡ž<𡞎<ð¡ž<ð¡ž<ð¡ž‘<ð¡ž’<ð¡ž“<ð¡ž”"
+ "<ð¡ž•<ð¡ž–<ð¡ž—<𡞘<ð¡ž™<ð¡žš<ð¡ž›<å©¢<婦<å©·<婸<婹<婺<å©»<婼<婽<婾<å©¿<媀<åª<媂<媃<媄<媅<媆<媇<媈<媉<媊<媋<"
+ "媌<åª<媎<åª<媑<媒<媓<媔<媕<媖<媗<媘<媙<媚<媛<媜<åª<媞<媟<媠<媡<媢<媣<媤<媥<媦<媧<媨<媩<媪<媫<媬<媭<媮<"
+ "媯<å«<ã›®<㛯<ã›°<ã›±<㛲<㛳<ã›´<㛵<㛶<ã›·<㛸<㛹<㛺<ã›»<㛼<㛽<㛾<㛿<㜀<ãœ<㜂<㜃<㜄<ð¡žœ<ð¡ž<ð¡žž<𡞟<ð¡ž <ð¡ž¡<"
+ "𡞢<𡞣<𡞤<𡞥<𡞦<𡞧<𡞨<𡞩<𡞪<𡞫<𡞬<𡞭<𡞮<𡞯<𡞰<𡞱<𡞲<𡞳<𡞴<𡞵<𡞶<𡞷<𡞸"
+ "<ð¡ž¹<𡞺<ð¡ž»<ð¡ž¼<ð¡ž½<ð¡ž¾<ð¡ž¿<ð¡Ÿ€<ð¡Ÿ<ð¡Ÿ‚<𡟃<ð¡Ÿ„<ð¡Ÿ…<𡟆<𡟇<𡟈<𡟉<ð¡ŸŠ<ð¡Ÿ‹<ð¡ŸŒ<ð¡Ÿ<ð¡ŸŽ<"
+ "ð¡Ÿ<ð¡Ÿ<ð¡Ÿ‘<ð¡Ÿ’<ð¡Ÿ“<ð¡Ÿ”<ð¡Ÿ•<ð¡Ÿ–<ð¡Ÿ—<𡟘<ð¡Ÿ™<ð¡Ÿš<ð¡Ÿ›<ð¡Ÿœ<ð¡Ÿ<ð¡Ÿž<ð¡ŸŸ<ð¡Ÿ <ð¡Ÿ¡<ð¡Ÿ¢<ð¡Ÿ£<𡟤<ð¡Ÿ¥"
+ "<𡟦<𡟧<ð¡ £<ã›®<㛼<åª<媰<媱<媲<媳<媴<媵<媶<媷<媸<媹<媺<媻<媼<媽<媾<媿<å«€<å«<å«‚<嫃<å«„<å«…<嫆<嫇<嫈<嫉<"
+ "å«Š<å«‹<å«Œ<å«<å«Ž<å«<å«‘<å«’<å«“<å«”<㜅<㜆<㜇<㜈<㜉<㜊<㜋<㜌<ãœ<㜎<ãœ<ãœ<㜑<㜒<㜓<㜔<𡟨<ð¡Ÿ©<𡟪<ð¡Ÿ«<𡟬<"
+ "ð¡Ÿ­<ð¡Ÿ®<𡟯<ð¡Ÿ°<𡟱<𡟲<𡟳<ð¡Ÿ´<𡟵<𡟶<ð¡Ÿ·<𡟸<𡟹<𡟺<ð¡Ÿ»<𡟼<𡟽<𡟾<ð¡Ÿ¿<ð¡ €<ð¡ <ð¡ ‚<ð¡ ƒ"
+ "<ð¡ „<ð¡ …<ð¡ †<ð¡ ‡<ð¡ ˆ<ð¡ ‰<ð¡ Š<ð¡ ‹<ð¡ Œ<ð¡ <ð¡ Ž<ð¡ <ð¡ <ð¡ ‘<ð¡ ’<ð¡ “<ð¡ ”<ð¡ •<媵<å«•<å«–<å«—<嫘<å«™<å«š"
+ "<å«›<å«œ<å«<å«ž<å«Ÿ<å« <å«¡<å«¢<å«£<嫤<å«¥<嫦<嫧<嫨<å«©<嫪<å««<嫬<å«­<å«®<嫯<å«°<嫱<嫲<㜕<㜖<㜗<㜘<㜙<㜚<㜛<㜜<ãœ<㜞"
+ "<㜟<㜠<㜡<㜢<ð¡ —<ð¡ ™<ð¡ š<ð¡ ›<ð¡ œ<ð¡ <ð¡ ž<ð¡ Ÿ<ð¡  <ð¡ ¡<ð¡ ¢<ð¡ ¤<ð¡ ¥<ð¡ ¦<ð¡ §<ð¡ ¨<ð¡ ©<ð¡ ª<ð¡ «<ð¡ ¬"
+ "<ð¡ ­<ð¡ ®<ð¡ ¯<ð¡ °<ð¡ ±<ð¡ ³<ð¡ ´<ð¡ µ<ð¡ ¶<ð¡ ·<ð¡ ¸<ð¡ ¹<ð¡ º<ð¡ »<ð¡ ¼<ð¡ ½<ð¡ ¾<ð¡ ¿<ð¡¡€<ð¡¡<ð¡¡‚<𡡃<"
+ "ð¡¡„<ð¡¡…<𡡆<𡡇<𡡈<𡡉<ð¡¡Š<ð¡¡‹<ð¡¡Œ<ð¡¡<ð¡¡Ž<嫳<å«´<嫵<嫶<å«·<嫸<嫹<嫺<å«»<嫼<嫽<嫾<å«¿<嬀<å¬<嬂<嬃<嬄"
+ "<嬅<嬆<嬇<嬈<嬉<嬊<嬋<嬌<å¬<嬎<å¬<㜣<㜤<㜥<㜦<㜧<㜨<ð¡ –<ð¡ ˜<ð¡ ²<ð¡¡<ð¡¡<ð¡¡‘<ð¡¡’<ð¡¡“<ð¡¡”<ð¡¡•<ð¡¡–<"
+ "ð¡¡—<𡡘<ð¡¡™<ð¡¡š<ð¡¡›<ð¡¡œ<ð¡¡<ð¡¡ž<ð¡¡Ÿ<ð¡¡ <ð¡¡¡<ð¡¡¢<ð¡¡£<𡡤<ð¡¡¥<𡡦<𡡧<𡡨<ð¡¡©<𡡪<ð¡¡«<𡡬<ð¡¡­"
+ "<ð¡¡®<𡡯<ð¡¡°<ð¡¡±<ð¡¡²<ð¡¡³<ð¡¡´<ð¡¡µ<𡡶<ð¡¡·<𡡸<ð¡¡¹<𡡺<ð¡¡»<ð¡¡¼<ð¡¡½<ð¡¡¾<ð¡¡¿<ð¡¢€<ð¡¢<𡢂<𡢃<"
+ "𡢄<ð¡¢…<𡢆<𡢇<𡢈<𡢉<𡢊<𡢋<𡢌<ð¡¢<ð¡¢<嬈<å¬<嬑<嬒<嬓<嬔<嬕<嬖<嬗<嬘<嬙<嬚<嬛<嬜<å¬<嬞<嬟<嬠"
+ "<嬡<嬢<嬴<㜩<㜪<㜫<㜬<㜭<𡢎<𡢑<ð¡¢’<𡢓<ð¡¢”<𡢕<ð¡¢–<ð¡¢—<𡢘<ð¡¢™<𡢚<ð¡¢›<𡢜<ð¡¢<𡢞<𡢟<ð¡¢ <"
+ "𡢡<𡢢<𡢣<𡢤<𡢥<𡢦<𡢧<𡢨<𡢩<𡢪<𡢫<𡢬<𡢭<𡢮<𡢯<𡢰<𡢱<𡢲<𡢳<𡢴<𡢵<𡢶<𡢷"
+ "<𡢸<ð¡¢¹<𡢺<ð¡¢»<ð¡¢¼<ð¡¢½<ð¡¢¾<𡢿<ð¡£€<ð¡£<𡣂<𡣃<𡣄<嬣<嬤<嬥<嬦<嬧<嬨<嬩<嬪<嬫<嬬<嬭<嬮<嬯<嬰<"
+ "嬱<嬲<嬳<嬵<嬶<嬷<㜮<㜯<ð¡£…<𡣆<𡣇<𡣈<𡣉<𡣊<𡣋<𡣌<ð¡£<𡣎<ð¡£<ð¡£<𡣑<ð¡£’<𡣓<ð¡£”<𡣕<"
+ "ð¡£–<ð¡£—<𡣘<ð¡£™<𡣚<ð¡£›<𡣜<ð¡£<𡣞<𡣟<ð¡£ <𡣡<ð¡££<𡣤<ð¡£¥<𡣦<𡣧<𡣨<𡣩<嬨<嬸<嬺<嬻<嬼<嬽"
+ "<㜰<㜱<𡣪<𡣫<𡣬<𡣭<𡣮<𡣯<𡣰<𡣱<𡣲<𡣳<𡣴<𡣵<𡣶<𡣷<𡣸<𡣹<𡣺<𡣻<𡣼<嬹<嬾<嬿<"
+ "㜲<㜳<㜴<㜵<ð¡£½<ð¡£¾<𡣿<𡤀<ð¡¤<𡤂<𡤃<𡤄<𡤅<𡤆<𡤇<𡤈<𡤉<𡤊<𡤋<𡤌<ð¡¤<𡤞<嬾<å­€<å­<"
+ "å­‚<å­ƒ<å­„<å­…<å­†<㜶<㜷<㜸<𡤎<ð¡¤<ð¡¤<𡤑<𡤒<𡤓<𡤔<𡤕<𡤖<𡤗<å­‡<å­ˆ<å­‰<㜹<𡤘<𡤙<𡤚<𡤛<𡤜"
+ "<ð¡¤<𡤟<𡤠<å­Š<å­‹<å­Œ<㜺<𡤡<𡤢<𡤣<𡤤<𡤥<𡤦<𡤧<𡤨<𡤩<𡤪<å­<𡤫<𡤬<𡤭<å­Ž<å­<𡤮<𡤯"
+ "<𡤰<𡤱<𡤲<𡤳<𡤴<𡤵<𡤶<㜻<㜼<𡤷<𡤸<𡤹<𡤺<𡤻<å­<å­‘<å­’<å­“<𡤼<å­”<𡤽<å­•<𡤾<𡤿<ð¡¥€<"
+ "ð¡¥<𡥂<å­–<å­—<å­˜<å­™<㜽<𡉗<𡥃<𡥄<ð¡¥…<å­š<å­›<å­œ<å­<å­ž<㜾<㜿<𡥆<𡥇<𡥈<𡥉<𡥊<𡥌<ð¡¥<å­Ÿ<å­ <å­¡"
+ "<å­¢<å­£<å­¤<å­¥<å­¦<å­§<ã€<𠃱<𡥎<ð¡¥<ð¡¥<𡥑<ð¡¥’<𡥓<ð¡¥”<𡥕<ð¡¥–<ð¡¥—<𡥘<ð¡¥™<𡥚<å­¨<å­©<å­ª<ã<ð¡¥›<"
+ "𡥜<ð¡¥<𡥞<𡥟<ð¡¥ <𡥡<ð¡¥¢<ð¡¥£<𡥤<ð¡¥¥<𡥦<𡥧<å­«<å­¬<å­­<ã‚<ãƒ<𡥨<𡥩<𡥪<𡥫<𡥬<ð¡¥­<𢈲<"
+ "𨹴<å­®<å­¯<å­°<å­²<ð¡¥®<𡥯<ð¡¥°<ð¡¥±<ð¡¥²<ð¡¥³<ð¡¥´<ð¡¥µ<å­±<ã„<𡥶<ð¡¥·<𡥸<ð¡¥¹<𡥺<ð¡¥»<ð¡¥¼<ð¡¥½<ð¡¥¾<𡥿"
+ "<𡦀<ð¡¦<𡦂<å­³<å­´<ã…<𡦃<𡦄<𡦅<𡦆<𡦇<𡦈<𡦉<𡦊<𡦋<𡦌<ð¡¦<𡦎<ð¡¦<ð¡¦<å­µ<å­¶<å­·<𡦑<"
+ "𡦒<𡦓<𡦔<𡦕<𡦖<ã†<𡦗<𡦘<𡦙<𡦚<𡦛<𡦜<ð¡¦<å­¸<å­¹<ã‡<𡦞<𡦟<𡦠<𡦡<𡦢<𡦣<𡦤<𡦥<"
+ "𡦦<𡦧<𡦨<å­º<å­»<𡦩<𡦪<𡦫<𡦬<å­¼<𡦭<𡦮<𡦯<𡦰<å­½<å­¾<𡦱<𡦲<𡦳<𡦴<𡦵<𡦶<å­¿<𡦷<ãˆ<"
+ "𡦸<宀<ã‰<𡦹<å®<宂<它<宄<ãŠ<ã‹<𡦺<𡦻<𡦼<å®…<宆<宇<守<安<ãŒ<ã<𡦽<𡦾<𡦿<𡧀<ð¡§<𡧂<𡧃<𡧄"
+ "<𡧅<𡧆<𡧇<𡧈<𡧉<𡧊<å®…<嬾<𡧈<宊<宋<完<å®<宎<å®<å®<宑<å®’<ãŽ<ã<ã<ã‘<𡧋<𡧌<ð¡§<𡧎<ð¡§<"
+ "ð¡§<𡧑<𡧒<𡧓<𡧔<𡧕<宓<å®”<宕<å®–<å®—<官<å®™<定<å®›<宜<å®<实<実<å® <审<ã’<𡧖<𡧗<𡧘<𡧙<𡧚<𡧛<"
+ "𡧜<ð¡§<𡧞<𡧟<𡧠<𡧡<𡧢<𡧣<𡧤<𡧥<𡧦<𡧧<𡧨<客<宣<室<宥<宦<宨<宩<宪<宫<ã“<ã”<ã•<ã–<𡧩<"
+ "𡧪<𡧫<𡧬<𡧭<𡧮<𡧯<𡧰<𡧱<𡧲<𡧳<𡧴<𡧵<𡧶<𡧷<𡧸<𡧹<𡧺<𡧻<𡧼<𡧽<𡧾<𡧿<宧<"
+ "宬<å®­<å®®<宯<å®°<å®±<宲<害<å®´<宵<家<å®·<宸<容<宺<å®»<宼<宽<宾<ã—<ã˜<ã™<ãš<𡨀<ð¡¨<𡨂<𡨃<𡨄<𡨅<𡨆<"
+ "𡨇<𡨈<𡨉<𡨊<𡨋<𡨌<ð¡¨<𡨎<ð¡¨<ð¡¨<𡨑<𡨒<𡨓<𡨔<𡨕<𡨖<𡨗<𡨘<𡨙<𡨚<𡨛<𡨜<ð¡¨"
+ "<𡨞<𡨟<𡨠<𡨡<宿<寀<å¯<寂<寃<寄<寅<密<寇<寈<寉<ã›<ãœ<ã<ãž<ãŸ<ã <ã¡<𡨢<𡨣<𡨤<𡨥<𡨦<𡨧<"
+ "𡨨<𡨩<𡨪<𡨫<𡨬<𡨭<𡨮<𡨯<𡨰<𡨱<𡨲<𡨳<𡨴<𡨵<𡨶<𡨷<𡨸<𡨹<𡨺<𡨻<𡨼<寃<寊<寋"
+ "<富<å¯<寎<å¯<å¯<寑<寒<寓<寔<寕<寪<ã¢<ã£<𡨽<𡨾<𡨿<ð¡©€<ð¡©<ð¡©‚<𡩃<ð¡©„<ð¡©…<𡩆<𡩇<𡩈<𡩉<ð¡©Š"
+ "<ð¡©‹<ð¡©Œ<ð¡©<ð¡©Ž<ð¡©<ð¡©<ð¡©‘<ð¡©’<ð¡©“<ð¡©”<ð¡©•<ð¡©–<ð¡©—<𡩘<ð¡©™<ð¡©š<ð¡©›<ð¡©œ<ð¡©<ð¡©ž<寖<寗<寘<寙"
+ "<寚<寛<寜<å¯<ã¤<ã¥<ã¦<ã§<ã¨<ð¡©Ÿ<ð¡© <ð¡©¡<ð¡©¢<ð¡©£<𡩤<ð¡©¥<𡩦<𡩧<𡩨<ð¡©©<𡩪<ð¡©«<𡩬<ð¡©­<ð¡©®<"
+ "𡩯<ð¡©°<ð¡©±<ð¡©²<ð¡©³<ð¡©´<ð¡©µ<𡩶<ð¡©·<𡩸<ð¡©¹<𡩺<寘<寞<察<寠<寡<寢<寣<寤<寥<實<寧<寨<ã©<ãª<ã«<ã¬<"
+ "ð¡©»<ð¡©¼<ð¡©½<ð¡©¾<ð¡©¿<𡪀<ð¡ª<𡪂<𡪃<𡪄<𡪅<𡪆<𡪇<𡪈<𡪉<𡪊<𡪋<𡪌<ð¡ª<𡪎<ð¡ª<ð¡ª<𡪑"
+ "<𡪒<𡪓<𡪔<𡪕<𡪖<𡪗<𡪘<𡪙<𡪚<𡪛<𡪜<ð¡ª<寧<寧<寧<審<寫<寬<寭<寮<ã­<ã®<ã¯<𡪟<𡪠<𡪡<"
+ "𡪢<𡪣<𡪤<𡪥<𡪦<𡪧<𡪨<𡪩<𡪪<𡪫<𡪬<𡪭<𡪮<𡪯<𡪰<𡪱<𡪲<𡪳<𡪴<𡪵<𡪶<𡪷<𡪸"
+ "<𡪹<𡪺<𡪻<𡪼<𡪽<寮<寯<寰<𡪾<𡪿<ð¡«€<ð¡«<ð¡«‚<𡫃<ð¡«„<ð¡«…<𡫆<𡫇<𡫈<𡫉<ð¡«Š<ð¡«‹<ð¡«Œ<"
+ "ð¡«<ð¡«Ž<ð¡«<ð¡«<寱<寲<ð¡«‘<ð¡«’<ð¡«“<ð¡«”<ð¡«•<ð¡«–<ð¡«—<𡫘<ð¡«™<ð¡«š<ð¡«›<ð¡«œ<ð¡«<ã°<ð¡«ž<ð¡«Ÿ<ð¡« <ð¡«¡"
+ "<𡫢<𡫣<𡫤<𡫥<𡫦<𡫧<𡫨<𡫩<𡫪<𡫫<寳<寴<寵<𡫬<𡫭<𡫮<𡫯<𡫰<𡫱<𡫲<𡫳<𡫴<𡫵<"
+ "𡫶<寳<寶<ð¡«·<𡫸<ð¡«¹<𡫺<ð¡«»<寷<ã±<ð¡«¼<ð¡«½<ð¡«¾<ð¡«¿<𡬀<ð¡¬<𡬂<𡬃<𡬄<𡬅<𡬆<𡬇<𡬈<𡬉<"
+ "𡬊<𡬋<𡬌<ð¡¬<ð¡¬<ð¡¬<𡬑<𡬓<𡬔<𡬕<ã²<𡬖<𡬗<𡬘<𡬘<𡬎<𡬙<𡬚<𡬒<𡬛<𡬜<寸<ð¡¬<对"
+ "<ã³<寺<寻<导<𡬞<寽<対<寿<ã´<寿<å°€<ãµ<𡬟<𡬠<𡬡<𡬢<𡬣<𡬤<𡬥<𡬦<å°<å°‚<å°†<𡬧<𡬨<𡬩<𡬪<"
+ "𡬫<𡬬<å°†<å°ƒ<å°„<å°…<ã¶<𡬭<å°‡<å°ˆ<å°‰<𡬮<𡬯<𡬰<𡬱<𡬲<å°Š<å°‹<å°Œ<ã·<𡬳<𡬴<𡬵<𡬶<𡬷<𡬸<𡬹"
+ "<𡬺<𡬻<𡬼<å°<𡬽<𡬾<𡬿<ð¡­€<ð¡­<ð¡­‚<å°Ž<ð¡­ƒ<ð¡­„<ð¡­…<ð¡­†<ð¡­‡<ð¡­ˆ<ð¡­‰<𣊒<ð¡­Š<ð¡­‹<ð¡­Œ<ð¡­<"
+ "ð¡­Ž<ð¡­<ð¡­<ð¡­‘<ð¡­’<ð¡­“<å°<ð¡­”<å°<å°‘<ð¡­•<ð¡­–<å°’<å°“<å°”<å°•<龸<ð¡­—<ð¡­˜<å°–<å°—<å°˜<ð¡­™<ð¡­š<ð¡­›<ð¡­œ<当"
+ "<ð¡­<ð¡­ž<ð¡­Ÿ<ð¡­ <ð¡­¡<ð¡­¢<ð¡­£<ð¡­¤<å°™<å°š<𠈤<ð¡­¥<ð¡­¦<ð¡­§<ð¡­¨<ð¡­©<å°›<å°œ<å°<ð¡­ª<ð¡­«<ð¡­¬<ð¡­­<ð¡­®<"
+ "ð¡­¯<ð¡­°<ð¡­±<ð¡­²<ð¡­³<ã¸<ð¡­´<ð¡­µ<ð¡­¶<ð¡­·<ð¡­¸<ð¡­¹<ð¡­º<ð¡­»<ð¡­¼<ð¡­½<ð¡­¾<ð¡­¿<𡮀<ð¡®<ð¡®‚<𡮃<ð¡®„<"
+ "ð¡®…<𡮆<𡮇<𡮈<𡮉<𡮊<ð¡®‹<𡮌<ð¡®<å°ž<ã¹<𡮎<ð¡®<ð¡®<ð¡®‘<ð¡®’<ð¡®“<ð¡®”<ð¡®•<ð¡®–<ð¡®—<å°Ÿ<å° <ð …½<"
+ "𡮘<ð¡®™<𡮚<ð¡®›<𡮜<ð¡®<å°¡<ãº<𡮞<𡮟<ð¡® <ð¡®¡<𡮢<𡮣<𡮤<𡮥<ã»<𡮦<𡮧<𡮨<ð¡®©<𡮪<ð¡®«<𡮬"
+ "<ð¡®­<ð¡®®<𡮯<ð¡®°<ð¡®±<ð¡®²<ð¡®³<ð¡®´<ð¡®µ<𡮶<𢇔<ð¡®·<𡮸<ð¡®¹<𡮺<ð¡®»<ð¤¯<ð¡®¼<ð¡®½<ð¡®¾<ð¡®¿<𡯀<å°¢"
+ "<å°£<ð¡¯<𡯂<å°¢<å°¤<𡯃<𡯄<𡯅<𡯆<𡯇<𡯈<𡯉<𡯊<å°¥<å°¦<å°§<ã¼<𡯋<𡯌<ð¡¯<𡯎<å°¨<å°©<å°ª<å°«<å°¬<ã½"
+ "<ð¡¯<ð¡¯<𡯑<𡯒<𡯓<𡯔<𡯕<𡯖<𡯗<𡯘<𡯙<å°­<ã¾<ã¿<𡯚<𡯛<𡯜<ð¡¯<𡯞<𡯟<𡯠<𡯡<å°®<å°¯<"
+ "㞀<ãž<𡯢<𡯣<𡯤<𡯦<𡯧<ãž<ãž‚<𡯨<𡯩<𡯪<𡯫<𡯬<𡯭<𡯮<𡯯<𡯰<𡯱<𡯲<㞃<ãž„<ãž…<㞆<𡯳<"
+ "𡯴<𡯵<𡯶<𡯷<𡯸<å°°<å°±<㞇<㞈<𡯹<𡯺<𡯻<𡯼<𡯽<𡯾<𡯿<ð¡°€<ð¡°<ð¡°‚<å°²<å°³<å°´<㞉<㞊<ð¡°ƒ<ð¡°„"
+ "<ð¡°…<ð¡°†<ð¡°‡<ð¡°ˆ<ð¡°‰<ð¡°Š<ð¡°‹<ð¡°Œ<ð¡°<ð¡°Ž<ð¡°<å°µ<ð¡°<ð¡°‘<ð¡°’<ð¡°“<ð¡°”<ð¡°•<ð¡°–<ð¡°—<ð¡°˜<ð¡°™<ð¡°š"
+ "<å°¶<å°·<ð¡°›<ð¡°œ<ð¡°<ð¡°ž<ð¡°Ÿ<ð¡° <ð¡°¡<ð¡°¢<å°¸<ð¡°£<å°º<å°»<å°¼<ãž‹<ð¡°¤<ð¡°¥<ð¡°¦<ð¡°§<ð¡°¨<ð¡°´<å°½<㞌<ãž<ð¡°©"
+ "<ð¡°ª<ð¡°«<ð¡°¬<ð¡°­<ð¡°®<ð¡°¯<ð¡°°<ð¡°±<ð¡°²<ð¡°³<å°¾<å°¿<å±€<å±<层<屃<㞎<ð¡°µ<ð¡°¶<ð¡°·<ð¡°¸<ð¡°¹<ð¡°º<ð¡°»<ð¡°¼"
+ "<ð¡°½<å°¿<屄<å±…<屆<屇<屈<屉<届<ãž<ãž<ãž‘<ð¡°¾<ð¡°¿<𡱀<ð¡±<𡱂<𡱃<𡱄<𡱅<𡱆<𡱇<𡱈<𡱉<𡱊<𡱋<"
+ "屋<屌<å±<屎<å±<ãž’<ãž“<ãž”<ãž•<ãž–<𡱌<ð¡±<𡱎<ð¡±<ð¡±<𡱑<𡱒<𡱓<𡱔<𡱕<𡱖<𡱗<𡱘<𡱙<𡱚<𡱛<"
+ "𡱜<ð¡±<𡱞<𡱟<𡱠<𡱡<𢇀<å±<屑<å±’<屓<å±”<展<å±–<å±—<屘<ãž—<𡱢<𡱣<𡱤<𡱥<𡱦<𡱧<𡱨<𡱩<𡱪<"
+ "𡱫<𡱬<𡱭<𡱮<𡱯<𡱰<𡱱<𡱲<𡱳<𡱴<𡱵<𡱶<𡱷<𡱸<𡱹<å±™<屚<å±›<屜<å±<㞘<ãž™<𡱺<𡱻<𡱼<"
+ "𡱽<𡱾<𡱿<𡲀<ð¡²<𡲂<𡲃<𡲄<𡲅<𡲆<𡲇<𡲈<𡲉<𡲊<𡲋<𡲌<ð¡²<𡲎<ð¡²<ð¡²<𡲑<𡲒<𡲓"
+ "<属<屟<å± <屡<ãžš<ãž›<𡲔<𡲕<𡲖<𡲗<𡲘<𡲙<𡲚<𡲛<𡲜<ð¡²<𡲞<𡲟<𡲠<𡲡<𡲢<𡲣<𡲤<𡲥<"
+ "𡲦<𡲧<𡲨<𡲩<𡲪<𡲫<屠<𡲬<𡲭<𡲮<𡲯<𡲰<𡲱<𡲲<𡲳<𡲴<𡲵<𡲶<𡲷<𡲸<𡲹<𡲺<𡲻<"
+ "𡲼<𡲽<𡲾<𡲿<𡳀<ð¡³<𡳂<𡳃<å±¢<å±£<ãžœ<ãž<ãžž<𡳄<𡳅<𡳆<𡳇<𡳈<𡳉<𡳊<𡳋<𡳌<ð¡³<𡳎<"
+ "ð¡³<å±¢<層<å±¥<屦<屧<㞟<ãž <ð¡³<𡳑<𡳒<𡳓<𡳔<𡳕<𡳖<𡳗<𡳘<𡳙<𡳚<𡳛<𡳜<ð¡³<𡳞<å±¥<層<𡳟"
+ "<𡳠<𡳡<𡳢<𡳣<𡳤<𡳥<𡳦<𡳧<屨<𡳨<𡳩<屩<屪<𡳪<𡳫<屫<㞡<𡳬<𡳭<𡳮<𡳯<𡳰<𡳱<𡳲<"
+ "𡳳<𡳴<屬<𡳵<𡳶<𡳷<𡳸<𡳹<𡳺<å±­<𡳻<𡳼<𡳽<å±®<𡳾<å±®<å±®<屯<㞢<𡳿<å±°<ð¡´€<ð¡´<ð¡´‚<ð¡´ƒ<"
+ "ð¡´„<ð¡´…<㞣<ãž·<ð¡´†<ð¡´‡<ð¡´ˆ<ð¡´‰<ð¡´Š<ð¡´‹<ð¡´Œ<ð¡´<ð¡´‹<ð¡´Ž<ð¡´<ð¡´<ð¡´‘<ð¡´’<ð¡´“<ð¡´”<ð¡´•<ð¡´–<ð¡´—<"
+ "ð¡´˜<ð¡´™<ð¡´š<ð¡´›<ð¡´œ<ð¡´<ð¡´ž<ð¡´Ÿ<ð¡´ <ð¡´¡<ð¡´¢<ð¡´£<ð¡´¤<ð¡´¥<ð¡´¦<ð¡´§<ð¡´¨<ð¡´©<ð¡´ª<ð¡´«<ð¡´¬<å±±<ä¹¢<å±²"
+ "<𡴭<𡴮<𡴯<屳<屴<屵<屶<屷<㞤<㞥<㞦<㞧<𡴰<𡴱<𡴲<𡴳<𡴴<𡴵<𡴶<𡴷<𡴸<𡴹<𡴺<𡴻<𡴼<"
+ "ð¡´½<屸<å±¹<屺<å±»<å±¼<å±½<å±¾<屿<å²€<å²<岂<岃<㞨<ãž©<㞪<ãž«<㞬<ãž­<ãž®<㞯<ð¡´¾<ð¡´¿<𡵀<ð¡µ<𡵂<𡵃<𡵄<𡵅<"
+ "𡵆<𡵇<𡵈<𡵉<𡵊<𡵋<𡵌<ð¡µ<𡵎<ð¡µ<ð¡µ<𡵑<𡵒<岄<å²…<岆<岇<岈<岉<岊<岋<岌<岎<å²<å²<岑<å²’<岓"
+ "<å²”<岕<å²–<å²—<岘<å²™<岚<å²›<岜<ãž°<ãž±<ãž²<ãž³<ãž´<ãžµ<㞶<㞸<𡵓<𡵔<𡵕<𡵖<𡵗<𡵘<𡵙<𡵚<𡵛<𡵜<ð¡µ<"
+ "𡵞<𡵟<𡵠<𡵡<𡵢<𡵣<𡵤<𡵥<𡵦<𡵧<𡵨<𡵩<𡵪<𡵫<𡵬<𡵭<𡵮<𡵯<𡵰<𡵱<𡵲<𡵳<𡵴"
+ "<𡵵<𡵶<𡵷<𡵸<𡵹<𡵺<𡵻<𡵼<𡵽<𡵾<𡵿<𡶀<ð¡¶<𡶂<å²<岞<岟<å² <岡<å²¢<å²£<岤<å²¥<岦<岧<岨<岩"
+ "<岪<岫<岬<å²­<å²®<岯<å²°<å²±<å²²<å²³<å²´<å²µ<岶<å²·<岸<å²¹<岺<å²»<å²¼<å²½<å²¾<岿<å³€<å³<峂<峃<峄<å³…<ãž¹<㞺<ãž»<ãž¼<ãž½<ãž¾"
+ "<ãž¿<㟀<ãŸ<㟂<㟃<𡶃<𡶄<𡶅<𡶆<𡶇<𡶈<𡶉<𡶊<𡶋<𡶌<ð¡¶<𡶎<ð¡¶<ð¡¶<𡶑<𡶒<𡶓<𡶔<𡶕<"
+ "𡶖<𡶗<𡶘<𡶙<𡶚<𡶛<𡶜<ð¡¶<𡶞<𡶟<𡶠<𡶡<𡶢<𡶣<𡶥<𡶦<𡶧<𡶨<𡶩<𡶪<å³€<å²<峆<峇<"
+ "峈<峉<峊<峋<峌<å³<峎<å³<å³<峑<å³’<峓<å³”<峕<å³–<å³—<峘<å³™<峚<å³›<峜<å³<峞<峟<å³ <峡<å³¢<å³£<峤<å³¥<峦<峧<㟄<㟅<"
+ "㟆<𡶫<𡶬<𡶭<𡶮<𡶯<𡶰<𡶱<𡶲<𡶳<𡶴<𡶵<𡶶<𡶷<𡶸<𡶹<𡶺<𡶻<𡶼<𡶽<𡶾<𡶿<𡷀<"
+ "ð¡·<ð¡·‚<ð¡·ƒ<ð¡·„<ð¡·…<ð¡·†<ð¡·‡<ð¡·ˆ<ð¡·‰<ð¡·Š<ð¡·‹<ð¡·Œ<ð¡·<ð¡·Ž<ð¡·<ð¡·<ð¡·‘<ð¡·’<ð¡·“<ð¡·”<å²<峨<峩<峪<"
+ "峫<峬<å³­<å³®<峯<å³°<å³±<å³²<å³³<å³´<å³µ<島<å³·<峸<å³¹<峺<å³»<å³¼<å³½<å³¾<峿<å´€<å´<å´‚<å´ƒ<å´„<å´…<㟇<㟈<㟉<㟊<㟋<㟌<ãŸ<"
+ "㟎<ãŸ<ãŸ<㟑<㟒<㟓<㟔<㟕<㟖<ð¡·•<ð¡·–<ð¡·—<ð¡·˜<ð¡·™<ð¡·š<ð¡·›<ð¡·œ<ð¡·<ð¡·ž<ð¡·Ÿ<ð¡· <ð¡·¡<ð¡·¢<ð¡·£<ð¡·¤<ð¡·¥"
+ "<ð¡·¦<ð¡·§<ð¡·¨<ð¡·©<ð¡·ª<ð¡·«<ð¡·¬<ð¡·­<ð¡·®<ð¡·¯<ð¡·°<ð¡·±<ð¡·²<ð¡·³<ð¡·´<ð¡·µ<ð¡·¶<ð¡··<ð¡·¸<ð¡·¹<ð¡·º<ð¡·»<"
+ "ð¡·¼<ð¡·½<ð¡·¾<ð¡·¿<𡸀<ð¡¸<𡸂<𡸃<𡸄<𡸅<𡸆<𡸇<𡸈<𡸉<𡸊<𡸋<𡸌<ð¡¸<𡸎<ð¡¸<ð¡¸<𦊤<ð¡·¤"
+ "<ð¡·¦<å´†<å´‡<å´ˆ<å´‰<å´Š<å´‹<å´Œ<å´<å´Ž<å´<å´<å´‘<å´’<å´“<å´”<å´•<å´–<å´—<å´˜<å´™<å´š<å´›<å´œ<å´<å´ž<å´Ÿ<å´ <å´¡<å´¢<å´£<å´¤<å´¥<"
+ "å´¦<å´§<å´¨<å´©<å´ª<å´«<å´¬<å´­<å´®<å´¯<å´°<㟗<㟘<㟙<㟚<㟛<㟜<ãŸ<㟞<㟟<㟠<㟡<㟢<㟣<㟤<㟥<𡸑<𡸒<𡸓<𡸔<𡸕<"
+ "𡸖<𡸗<𡸘<𡸙<𡸚<𡸛<𡸜<ð¡¸<𡸞<𡸟<𡸠<𡸡<𡸢<𡸣<𡸤<𡸥<𡸦<𡸧<𡸨<𡸩<𡸪<𡸫<𡸬"
+ "<𡸭<𡸮<𡸯<𡸰<𡸱<𡸲<𡸳<𡸴<𡸵<𡸶<𡸷<𡸸<𡸹<𡸺<𡸻<𡸼<𡸽<𡸾<𡸿<𡹀<ð¡¹<𡹂<"
+ "𡹃<𡹄<𡹅<𡹆<𡹇<𡹈<𡹉<𡹊<𡹋<𡹌<ð¡¹<𡹎<ð¡¹<ð¡¹<𡹑<𡹒<𡹓<𡹔<𡹕<𡹖<𡹗<𡹘<𡹙"
+ "<𡹚<𡹛<𡹜<ð¡¹<𡹞<𡹟<𡹠<𡹡<𡹢<𡹣<𡹤<𡹥<𡹦<𡹧<𡹨<𡹩<å´™<å´±<å´²<å´³<å´´<å´µ<å´¶<å´·<å´¸<å´¹"
+ "<å´º<å´»<å´¼<å´½<å´¾<å´¿<åµ€<åµ<嵂<嵃<嵄<åµ…<嵆<嵇<嵈<嵉<嵋<嵌<åµ<嵎<åµ<åµ<嵑<åµ’<嵓<åµ”<嵕<åµ–<åµ—<嵘<åµ™<嵚<åµ›<嵜"
+ "<åµ<㟦<㟧<㟨<㟩<㟪<㟫<㟬<㟭<㟮<㟯<𡹪<𡹫<𡹬<𡹭<𡹮<𡹯<𡹰<𡹱<𡹲<𡹳<𡹴<𡹵<𡹶<𡹷<𡹸<"
+ "𡹹<𡹺<𡹻<𡹼<𡹽<𡹾<𡹿<𡺀<ð¡º<𡺂<𡺃<𡺄<𡺅<𡺆<𡺇<𡺈<𡺉<𡺊<𡺋<𡺌<ð¡º<𡺎<ð¡º"
+ "<ð¡º<𡺑<𡺒<𡺓<𡺔<𡺕<𡺖<𡺗<𡺘<𡺙<𡺚<𡺛<𡺜<ð¡º<𡺞<𡺟<𡺠<𡺡<𡺢<𡺣<𡺤<𡺥<"
+ "𡺦<𡺧<𡺨<𡺩<åµ<﨑<嵃<嵊<嵞<嵟<åµ <嵡<åµ¢<åµ£<嵤<åµ¥<嵦<嵧<嵨<嵩<嵪<嵫<嵬<åµ­<åµ®<嵯<åµ°<åµ±<åµ²<åµ³<åµ´<åµµ<"
+ "嵶<㟰<㟱<㟲<㟳<㟴<㟵<㟶<㟷<㟸<𡺪<𡺫<𡺬<𡺭<𡺮<𡺯<𡺰<𡺱<𡺲<𡺳<𡺴<𡺵<𡺶<𡺷<𡺸<𡺹<"
+ "𡺺<𡺻<𡺼<𡺽<𡺾<𡺿<𡻀<ð¡»<ð¡»‚<𡻃<ð¡»„<ð¡»…<𡻆<𡻇<𡻈<𡻉<𡻊<ð¡»‹<𡻌<ð¡»<𡻎<ð¡»<ð¡»"
+ "<ð¡»‘<ð¡»’<ð¡»“<ð¡»”<ð¡»•<ð¡»–<ð¡»—<åµ®<嵫<åµ·<嵸<åµ¹<嵺<åµ»<åµ¼<åµ½<åµ¾<嵿<嶀<å¶<嶂<嶃<嶄<嶅<嶆<嶇<嶈<嶉<嶊<嶋<"
+ "嶌<å¶<嶎<㟹<㟺<㟻<㟼<㟽<㟾<㟿<ã €<ã <ã ‚<ã ƒ<ã „<𡻘<ð¡»™<𡻚<ð¡»›<𡻜<ð¡»<𡻞<𡻟<ð¡» <ð¡»¡<𡻢<𡻣<𡻤"
+ "<𡻥<𡻦<𡻧<𡻨<𡻩<𡻪<𡻫<𡻬<𡻭<𡻮<𡻯<𡻰<𡻱<𡻲<𡻳<𡻴<𡻵<𡻶<𡻷<𡻸<𡻹<𡻺<"
+ "ð¡»»<ð¡»¼<ð¡»½<ð¡»¾<ð¡»¿<𡼀<ð¡¼<𡼂<𡼃<𡼄<𡼅<𡼆<𡼇<𡼈<𡼉<åµ¼<å¶<å¶<嶑<嶒<嶓<嶔<嶕<嶖<嶗<嶘<嶙"
+ "<嶚<嶛<嶜<å¶<嶞<嶟<嶠<嶡<嶢<嶣<嶤<嶥<ã …<ã †<ã ‡<ã ˆ<ã ‰<ã Š<ã ‹<ã Œ<ã <ã Ž<ã <ã <𡼊<𡼋<𡼌<ð¡¼<𡼎<ð¡¼<"
+ "ð¡¼<𡼑<𡼒<𡼓<𡼔<𡼕<𡼖<𡼗<𡼘<𡼙<𡼚<𡼛<𡼜<ð¡¼<𡼞<𡼟<𡼠<𡼡<𡼢<𡼣<𡼤<𡼥<𡼦"
+ "<𡼧<𡼨<𡼩<𡼪<𡼫<𡼬<𡼭<𡼮<𡼯<𡼰<𡼱<𡼲<𡼳<𡼴<𡼵<𡼶<𡼷<𡼸<𡼹<𡼺<𡼻<𡼼<嶦"
+ "<嶧<嶨<嶩<嶪<嶫<嶬<嶭<嶮<嶯<嶰<嶱<嶲<嶳<嶴<嶵<嶶<ã ‘<ã ’<ã “<ã ”<ã •<ã –<ã —<𡼽<𡼾<𡼿<𡽀<ð¡½<𡽂<𡽃<"
+ "𡽄<𡽅<𡽆<𡽇<𡽈<𡽊<𡽋<𡽌<ð¡½<𡽎<ð¡½<ð¡½<𡽑<𡽒<𡽓<𡽔<𡽕<𡽖<𡽗<𡽘<𡽙<𡽚<𡽛"
+ "<嶲<嶷<嶸<嶹<嶺<嶼<嶽<嶾<嶿<ã ˜<ã ™<ã š<ã ›<ã œ<𡽉<𡽜<ð¡½<𡽞<𡽟<𡽠<𡽡<𡽢<𡽣<𡽤<𡽥<𡽦<𡽧<"
+ "𡽨<𡽩<𡽪<𡽫<𡽬<𡽭<𡽮<𡽯<𡽰<𡽱<𡽲<𡽳<𡽴<𡽵<𡽶<𡽷<𡽸<𡽹<𡽺<𡽻<𡽼<𡽽<𡽾"
+ "<𡽿<𡾀<ð¡¾<𡾻<嶺<å·€<å·<å·‚<ã <ã ž<ã Ÿ<𡾂<𡾃<𡾄<𡾅<𡾆<𡾇<𡾈<𡾉<𡾊<𡾋<𡾌<ð¡¾<𡾎<ð¡¾"
+ "<ð¡¾<𡾑<𡾒<𡾓<𡾔<𡾕<𡾖<𡾠<嶻<å·ƒ<å·„<å·…<ã  <ã ¡<ã ¢<ã £<𡾘<𡾙<𡾚<𡾛<𡾜<ð¡¾<𡾞<𡾟<𡾡<"
+ "𡾢<𡾣<𡾤<𡾥<𡾦<𡾧<𡾨<𡾩<𡾪<𡾫<𡾬<𡾭<𣦭<巆<巇<巈<巉<巊<巋<巌<㠤<𡾮<𡾯<𡾰<𡾱<"
+ "𡾲<𡾳<𡾴<𡾵<𡾶<𡾷<𡾸<𡾹<𡾺<å·<å·<å·<ã ¥<ã ¦<𡾼<𡾽<𡾾<𡾿<ð¡¿€<ð¡¿<ð¡¿‚<𡿃<ð¡¿„<ð¡¿…<"
+ "𡿆<å·Ž<å·‘<å·’<å·“<å·”<å·•<å·—<ã §<𡿇<𡿈<𡿉<ð¡¿Š<ð¡¿‹<ð¡¿Œ<ð¡¿<ð¡¿Ž<ð¡¿<ð¡¿<ð¡¿‘<å·–<å·˜<å·™<å·š<ð¡¿’<ð¡¿“<ð¡¿”"
+ "<ð¡¿•<ð¡¿–<ð¡¿—<𡿘<ð¡¿™<ð¡¿š<ð¡¿›<ð¡¿œ<ð¡¿<ð¡¿ž<ð¡¿Ÿ<ð¡¿ <ð¡¿¡<ð¡¿£<𡿤<ã ¨<ð¡¿¢<ð¡¿¥<å·›<å·œ<å·<𡿦<𡿨<𡿧"
+ "<州<巟<㠩<𡿩<𡿪<𡿫<𡿬<𡿭<巠<𡿮<𡿯<𡿰<巡<𡿱<𡿲<𡿳<𡿴<𡿵<𡿶<𡿷<𡿸<𡿹<𡿺<𡿻<"
+ "ð ™—<ð¡¿¼<ð¡¿½<å·¢<å·£<ð¡¿¾<ð¡¿¿<𢀀<å·¢<ð¢€<𢀂<å·¤<𢀃<𢀄<𢀅<𢀆<𢀇<𢀈<𢀉<𢀊<𢀋<𢀌<ð¢€<𢀎<"
+ "ð¢€<ð¢€<å·¥<ã ª<𢀑<𢀒<𢀓<𢀔<𢀕<å·¦<å·§<å·¨<𢀖<𢀗<𢀘<𢀙<å·©<å·ª<𢀚<𢀛<å·«<𢀜<ð¢€<𢀞<𢀟<å·¬"
+ "<巭<𢀠<差<㠫<㠬<𢀡<𢀢<𢀣<巯<㠭<𢀤<𢀥<巰<𢀦<𢀧<㠮<𢀨<𢀩<𢀪<𢀫<𢀬<𢑰<𤀢<𢀭<𢀮<"
+ "𢀯<𢀰<𢀱<𢀲<己<已<巳<巴<𢀳<㠯<𢀴<𢀵<㠯<𢀶<巵<巶<㠰<𢀷<𢀸<巷<巸<巹<巺<巻<𢀹<𢀺<𢀻<巼"
+ "<𢀼<𢀽<𢀾<𢀿<ã ±<ð¢€<ð¢<ð¢‚<ð¢ƒ<ð¢„<å·½<ð¢…<ð¢†<ð¢‡<ð¢ˆ<ð¢‰<å·½<ð¢Š<ð¢‹<ð¢Œ<ð¢<ð¢<ð¢Ž<"
+ "ð¢<ð¢‘<å·¾<å·¿<帀<å¸<市<布<帄<帅<ã ²<ã ³<ð¢’<ð¢“<ð¢”<帆<帇<师<ã ´<ã µ<ã ¶<ð¢•<ð¢–<ð¢—<ð¢˜<ð¢™<ð¢š<ð¢›<"
+ "ð¢œ<ð¢<ð¢ž<ð¢Ÿ<ð¢ <ð¢¡<ð¢¢<ð¢£<ð¢¤<帉<帊<帋<希<å¸<帎<å¸<å¸<ã ·<ã ¸<ã ¹<ã º<ã »<ã ¼<ð¢¥<ð¢¦<ð¢§<ð¢¨<"
+ "ð¢©<ð¢ª<ð¢«<ð¢¬<ð¢­<ð¢®<ð¢¯<ð¢°<ð¢±<ð¢²<ð¢³<ð¢´<ð¢µ<ð¢¶<ð¢·<ð¢¸<ð¢¹<ð¢º<帑<帒<帓<帔<帕<帖<帗<"
+ "帘<帙<帚<帛<帜<ã ½<ã ¾<ã ¿<ã¡€<ð¢»<ð¢¼<ð¢½<ð¢¾<ð¢¿<𢂀<ð¢‚<𢂂<𢂃<𢂄<𢂅<𢂆<𢂇<𢂈<𢂉<𢂊<𢂋"
+ "<𢂌<ð¢‚<𢂎<ð¢‚<å¸<帞<帟<帠<帡<帢<帣<帤<帥<带<帧<ã¡<ã¡‚<㡃<ã¡„<ã¡…<㡆<ð¢‚<𢂑<𢂒<𢂓<𢂔<𢂕<𢂖<"
+ "𢂗<𢂘<𢂙<𢂚<𢂛<𢂜<ð¢‚<𢂞<𢂟<𢂠<𢂡<𢂢<𢂣<𢂤<𢂥<𢂦<𢂧<𢂨<𢂩<𢂪<𢂫<𢂬<𢂭"
+ "<𢂮<𢂯<𢂰<帨<帩<帪<師<帬<席<帮<帯<帰<帱<㡇<㡈<𢂱<𢂲<𢂳<𢂴<𢂵<𢂶<𢂷<𢂸<𢂹<𢂺<𢂻<"
+ "𢂼<𢂽<𢂾<𢂿<𢃀<ð¢ƒ<𢃂<𢃃<𢃄<𢃅<𢃆<𢃇<𢃈<𢃉<𢃊<𢃋<𢃌<帨<帲<帳<帴<帵<帶<帷<常<帹"
+ "<帺<帻<帼<㡉<ã¡Š<ã¡‹<ã¡Œ<ã¡<ã¡Ž<ð¢ƒ<𢃎<ð¢ƒ<ð¢ƒ<𢃑<𢃒<𢃓<𢃔<𢃕<𢃖<𢃗<𢃘<𢃙<𢃚<𢃛<𢃜<"
+ "ð¢ƒ<𢃞<𢃟<𢃠<𢃡<𢃢<𢃣<𢃤<𢃥<𢃦<𢃧<𢃨<𢃩<𢃪<帽<帾<帿<å¹€<å¹<幂<幃<幄<å¹…<幆<幇<幉<ã¡<"
+ "ã¡<ã¡‘<ã¡’<ã¡“<ã¡”<ã¡•<ã¡–<𢃫<𢃬<𢃭<𢃮<𢃯<𢃰<𢃱<𢃲<𢃳<𢃴<𢃵<𢃶<𢃷<𢃸<𢃹<𢃺<𢃻<𢃼<"
+ "𢃽<𢃾<𢃿<𢄀<ð¢„<𢄂<𢄃<𢄄<𢄅<𢄆<𢄇<𢄈<𢄉<帽<幊<幋<幌<å¹<幎<å¹<ã¡—<㡘<ã¡™<ã¡š<ã¡›<𢄊<𢄋"
+ "<𢄌<ð¢„<𢄎<ð¢„<ð¢„<𢄑<𢄒<𢄓<𢄔<𢄕<𢄖<𢄗<𢄘<𢄙<𢄚<𢄛<𢄜<ð¢„<𢄞<幈<幑<å¹’<幓<å¹”<"
+ "幕<å¹–<å¹—<幘<å¹™<å¹›<ã¡œ<ã¡<ã¡ž<ã¡Ÿ<𢄟<𢄠<𢄡<𢄢<𢄣<𢄤<𢄥<𢄦<𢄧<𢄨<𢄩<𢄪<𢄫<𢄬<𢄭<𢄮<"
+ "𢄯<𢄰<𢄱<𢄲<幚<幜<å¹<幞<幟<å¹ <幡<å¹¢<å¹£<幤<å¹¥<ã¡ <ã¡¡<𢄳<𢄴<𢄵<𢄶<𢄷<𢄸<𢄹<𢄺<𢄻<𢄼<"
+ "𢄽<𢄾<𢄿<𢅀<ð¢…<𢅂<𢅃<𢅄<𢅅<𢅆<𢅇<𢅈<𢅉<𢅊<𢅋<𢅌<幦<幧<幨<幩<ã¡¢<ã¡£<㡤<ð¢…<𢅎<"
+ "ð¢…<ð¢…<𢅑<𢅒<𢅓<𢅔<𢅕<𢅖<𢅗<𢅘<𢅙<𢅚<𢅛<𢅜<ð¢…<𢅞<幩<ã¡¢<幪<幫<幬<ã¡¥<㡦<𢅟<𢅠<"
+ "𢅡<𢅢<𢅣<𢅤<𢅥<𢅦<𢅧<𢅨<幭<幮<幯<𢅩<𢅪<𢅫<𢅬<幰<𢅭<𢅮<𢅯<𢅰<𢅱<𢅲<𢅳<𢅴<"
+ "𢅵<𢅶<𢅷<å¹±<㡧<㡨<𢅸<𢅹<𢅺<𢅻<𢅼<𢅽<ã¡©<㡪<𢅾<𢅿<𢆀<ð¢†<𢆂<𢆃<𢆄<𢆅<𢆆<𢆃<"
+ "𢆇<𢆈<å¹²<å¹³<𢆉<å¹´<å¹µ<å¹´<𢆊<𢆋<𢆌<并<å¹·<幸<ð¢†<𢆎<ð¢†<ð¢†<𢆑<𢆒<𢆓<𢆔<𢆕<𢆖<𢆗<"
+ "𢆘<𢆙<𢆚<𢆛<𢆜<ð¢†<å¹¹<𢆞<𢆟<𢆠<𢆟<𢆢<𢆤<𢆥<𢆦<𢆧<𢆨<𢆩<𢆪<𢆫<𢆬<𢆭<𢆮<"
+ "乡<幺<å¹»<𢆯<𢆰<𢆱<å¹¼<𢆲<𢆳<𢆴<𢆵<𢆶<𢆷<𢆸<𢆹<𢆺<𢆻<𢆼<𢆽<𢆾<å¹½<𢆿<𢇂<ð¢‡<"
+ "𢇃<𢇄<𢇅<𢇆<𢇇<𢇈<𢇉<å¹¾<ã¡«<㡬<𢇊<ð …¹<𢇋<ã¡­<𢇌<ð¢‡<𢇎<ð¢‡<ð¢‡<𢇑<𢇒<𢇓<ã¡®<𢇖<广"
+ "<庀<åº<庂<広<𠆲<庄<庅<庆<㡯<ã¡°<㡱<𢇗<𢇘<𢇙<𢇚<𢇛<𢇜<ð¢‡<𢇞<𢇟<𢇠<𢇡<𢇢<庇<庈<庉<床<"
+ "庋<庌<åº<庎<åº<åº<庑<庒<库<应<庘<㡲<㡳<𢇣<𢇤<𢇥<𢇦<𢇧<𢇨<𢇩<𢇪<𢇫<𢇬<𢇭<𢇮<𢇯<𢇰<"
+ "𢇱<底<庖<店<庙<庚<庛<府<åº<庞<废<ã¡´<㡵<㡶<ã¡·<㡸<㡹<㡺<ã¡»<𢇲<𢇳<𢇴<𢇵<𢇶<𢇷<𢇸<𢇹<𢇺<𢇻"
+ "<𢇼<𢇽<𢇾<𢇿<𢈀<ð¢ˆ<𢈂<𢈃<𢈄<𢈅<𢈆<庠<庡<庢<庣<庤<庥<度<㡼<㡽<㡾<ã¡¿<㢀<ã¢<㢂<𢈇<𢈈<"
+ "𢈉<𢈊<𢈋<𢈌<ð¢ˆ<𢈎<ð¢ˆ<ð¢ˆ<𢈑<𢈒<𢈓<𢈔<𢈕<𢈖<𢈗<𢈘<度<㡼<座<庨<庩<庪<庫<庬<庭<庮<"
+ "庯<㢃<㢄<㢅<㢆<㢇<𢈙<𢈚<𢈛<𢈜<ð¢ˆ<𢈞<𢈟<𢈠<𢈡<𢈢<𢈣<𢈤<𢈥<𢈦<𢈧<𢈨<𢈩<𢈪<𢈫"
+ "<𢈬<𢈭<𢈮<𢈯<𢈰<𢈱<庰<庱<庲<庳<庴<庵<庶<康<庸<庹<庺<庻<庼<㢈<㢉<㢊<㢋<㢌<𢈳<𢈴<𢈵<𢈶<"
+ "𢈷<𢈸<𢈹<𢈺<𢈻<𢈼<𢈽<𢈾<𢈿<𢉀<ð¢‰<𢉂<𢉃<𢉄<𢉅<𢉆<𢉇<𢉈<𢉉<𢉊<𢉋<𢉌<ð¢‰"
+ "<𢉎<ð¢‰<ð¢‰<𢉑<𢉒<𢉓<𢉔<𢉕<𢉗<𢉘<𢉙<𢉚<庰<庳<庶<庽<庾<庿<廀<å»<廂<廃<廊<ã¢<㢎<ã¢<ã¢<"
+ "𢉛<𢉜<ð¢‰<𢉞<𢉟<𢉠<𢉡<𢉢<𢉣<𢉤<𢉥<𢉦<𢉧<𢉨<𢉩<𢉪<𢉫<𢉬<𢉭<𢉮<𢉯<𢉰<𢉱"
+ "<𢉲<𢉳<𢉴<𢉵<𢉶<𢉷<𢉸<𢉹<𢉺<𢉻<𢉽<𢉾<廊<廊<å»…<廆<廇<廈<廉<廋<廌<㢑<𢉼<𢉿<𢊀<ð¢Š"
+ "<𢊂<𢊃<𢊄<𢊅<𢊆<𢊇<𢊈<𢊉<𢊊<𢊋<𢊌<ð¢Š<𢊎<ð¢Š<ð¢Š<𢊑<𢊒<𢊓<𢊔<廉<廄<å»<廎<å»<"
+ "å»<廑<å»’<廓<å»”<廕<å»–<å»—<廘<㢒<㢓<㢔<㢕<𢊕<𢊖<𢊗<𢊘<𢊙<𢊚<𢊛<𢊜<ð¢Š<𢊞<𢊟<𢊠<𢊡<𢊢<"
+ "𢊣<𢊤<𢊥<𢊦<𢊧<𢊨<𢊩<𢊪<𢊫<𢊬<廓<å»’<å»™<廚<å»›<廜<å»<廞<廟<å» <廡<廢<廣<廤<㢖<㢗<㢘<𢊭<"
+ "𢊮<𢊯<𢊰<𢊱<𢊲<𢊳<𢊴<𢊵<𢊶<𢊷<𢊸<𢊹<𢊺<𢊻<𢊼<𢊽<𢊾<𢊿<𢋀<ð¢‹<å»™<廥<廦<廧<"
+ "廨<廩<廪<㢙<㢚<㢛<㢜<𢋂<𢋃<𢋄<𢋅<𢋆<𢋇<𢋈<𢋉<𢋊<𢋋<𢋌<ð¢‹<𢋎<ð¢‹<ð¢‹<𢋑<𢋒<𢋓<"
+ "𢋔<𢋕<𢋖<𢋗<𢋘<𢋙<𢋚<𢋛<ð¢‹<𢋞<𢋟<𢋠<廫<𢋡<𢋢<𢋣<𢋤<𢋥<𢋦<𢋧<𢋨<𢋩<𢋪<"
+ "𢋫<𢋬<𢋭<廬<å»­<é¾<ã¢<ð “Œ<𢋮<𢋯<𢋰<𢋱<𢋲<𢋳<𢋴<𢋵<𢋶<𢋷<𢋸<𢋹<𢋺<廬<å»®<廯<å»°<㢞"
+ "<𢋻<𢋼<𢋽<𢋾<𢋿<𢌀<ð¢Œ<𢌂<𢌃<å»±<𢌄<𢌅<𢌆<廲<𢌈<𢌉<𢌊<𢌋<𢌌<ð¢Œ<𢌎<ð¢Œ<ð¢Œ<"
+ "𢌑<𢌒<廳<𢌓<𢌔<𢌕<𢌖<å»´<𢌗<廵<㢟<𢌘<𢌙<𢌚<延<å»·<𢌜<廸<廹<㢠<𢌛<ð¢Œ<𢌞<建<å»»<廼<𢌟"
+ "<廽<𢌠<𢌡<𢌢<𢌣<𢌤<𢌥<𢌦<𢌧<𢌨<𢌩<𢌪<𢌫<𣉡<𦋪<廾<𢌬<廾<廿<å¼€<𢌭<å¼<𢌮<𢌯<异"
+ "<𢌰<𢌱<𢌲<𢌱<𢌱<弃<弄<å¼…<𢌳<𢌵<𢌶<𢌷<𢌸<𢌹<𢌺<弄<弆<𢌻<𢌽<𢌾<𢌿<ð¢€<ð¢<弇<弈"
+ "<𢌴<𢌼<ð¢‚<ð¢ƒ<ð¢„<ð¢…<ð¢†<ð¢‡<ð¢ˆ<ð¢‰<ð¢Š<ð¢‹<ð¢Œ<弉<ð¢<ð¢Ž<ð¢<ð¢<ð¢‘<ð¢’<ð¢“<ð¢”<ð¢•"
+ "<ð¢–<ð¢—<ð¢˜<ð¢™<ð¢š<ð¢›<ð¢œ<ð¢<ð¢ž<ð¢Ÿ<ð¢ <ð¢¡<ð¢¢<ð¢£<ð¢¤<ð¢¥<㢡<ð¢¦<ð¢§<ð¢¨<ð¢©<ð¢ª<ð¢«"
+ "<弊<㢢<ð¢¬<㢣<ð¢®<ð¢¯<ð¢°<ð¢±<ð¢²<ð¢³<ð¢´<ð¢µ<ð¢¶<ð¢·<ð¢¸<ð¢¹<弋<ð¢º<弌<ð¢»<ð¢¼<å¼<弎<å¼<å¼<"
+ "ð¢½<ð¢¾<㢤<ð¢¿<𢎀<ð¢Ž<𢎂<𢎃<𢎄<𢎅<㢥<𢎆<𢎇<𢎈<𢎉<𢎊<𢎋<𢎌<ð¢Ž<弑<𢎎<å¼’<㢦<ð¢Ž<"
+ "ð¢Ž<ð£¦<𢎑<𢎒<𢎓<𢎔<𢎕<𢎖<弓<𢎗<𢎘<å¼”<引<å¼–<㢧<𢎙<𢎚<𢎛<𢎜<ð¢Ž<𢎞<𢎟<𢎠<𢎡<å¼—"
+ "<弘<𢎢<𢎣<𢎤<𢎥<𢎦<𢎧<𢎨<𢎩<𢎪<弙<弚<弛<弜<㢨<㢩<㢪<㢫<𢎫<𢎬<𢎭<𢎮<𢎯<𢎰<𢎱<"
+ "𢎲<𢎳<𢎴<𢎵<𢎶<å¼<弞<弟<å¼ <㢬<㢭<𢎷<𢎸<𢎹<𢎺<𢎻<𢎼<𢎽<𢎾<𢎿<ð¢€<ð¢<ð¢‚<ð¢ƒ<ð¢„"
+ "<ð¢…<弡<å¼¢<å¼£<弤<å¼¥<弦<弧<弨<弩<弪<㢮<㢯<㢰<㢱<ð¢†<ð¢‡<ð¢ˆ<ð¢‰<ð¢Š<ð¢‹<ð¢Œ<ð¢<ð¢Ž<ð¢<ð¢<ð¢‘<"
+ "ð¢’<ð¢“<å¼¢<å¼¢<弫<弬<å¼­<å¼®<弯<㢲<㢳<㢴<㢵<㢶<㢷<ð „´<𠔘<ð¢”<ð¢•<ð¢–<ð¢—<ð¢˜<ð¢™<ð¢š<ð¢›<ð¢œ<ð¢<"
+ "ð¢ž<ð¢Ÿ<ð¢ <ð¢¡<ð¢¢<ð¢£<å¼°<å¼±<å¼²<å¼³<㢸<㢹<ð¢¤<ð¢¥<ð¢¦<ð¢§<ð¢¨<ð¢©<ð¢ª<ð¢«<ð¢¬<ð¢­<å¼´<å¼µ<弶<å¼·<"
+ "弸<å¼¹<㢺<㢻<㢼<ð¢®<ð¢¯<ð¢°<ð¢±<ð¢²<ð¢³<ð¢´<ð¢µ<ð¢¶<ð¢·<ð¢¸<ð¢¹<ð¢º<ð¢»<ð¢¼<ð¢½<ð¢¾<ð¢¿<强<å¼»<"
+ "å¼¼<å¼½<å¼¾<㢽<㢾<㢿<ð¢€<ð¢<ð¢‚<ð¢ƒ<ð¢„<ð¢…<ð¢†<ð¢‡<ð¢ˆ<ð¢‰<弿<å½€<å½<彂<㣀<ã£<㣂<ð¢Š<ð¢‹<ð¢Œ<ð¢<"
+ "ð¢Ž<ð¢<ð¢<ð¢‘<彃<彄<å½…<㣃<ð¢’<ð¢“<ð¢”<ð¢•<ð¢–<ð¢—<ð¢˜<ð¢™<ð¢š<ð¢›<ð¢œ<ð¢<彆<彇<彈<彉<㣄<㣅<"
+ "ð¢ž<ð¢Ÿ<ð¢ <ð¢¡<ð¢¢<ð¢£<ð¢¤<彊<彋<ð¢¥<ð¢¦<ð¢§<ð¢¨<ð¢©<ð¢ª<彌<ð¢¬<ð¢­<ð¢®<ð¢¯<ð¢°<ð¢±<å½<ð¢²<"
+ "ð¢³<ð¢´<ð¢µ<ð¢¶<ð¢·<ð¢¸<ð¢¹<ð¢º<ð¢»<ð¢¼<ð¢½<ð¢¾<𤯽<ð¢¿<𢑀<ð¢‘<𢑂<𢑃<𢑄<𢑅<㣆<𢑆<𢑇<"
+ "𢑈<𢑉<彎<𢑊<å½<𢑋<𢑌<ð¢‘<𢑎<å½<彑<å½’<当<ð¢‘<ð¢‘<𢑑<𢑒<𢑓<å½”<录<㣇<𢑔<𢑕<㣇<å½–<𢑗<"
+ "𢑘<𢑙<𢑚<𢑛<𢑜<ð¢‘<å½—<𢑞<𢑟<𢑠<𢑡<彘<𢑢<𢑣<𢑤<å½™<彚<𢑥<𢑦<𢑧<𢑨<𢑩<𢑪<𢑫<"
+ "𢑬<𢑭<𢑮<𣼙<å½›<彜<㣈<𢑯<𢑱<𢑲<å½<彞<𢑳<𢑴<𢑵<𢑶<彟<𢑷<𢑸<𢑹<𢑺<𢑻<𢑼<𢑽<𢑾"
+ "<å½ <𢑿<彡<𢒀<ð¢’<𢒂<㣉<𢒃<𢒄<𢒅<𢒆<å½¢<å½£<彤<㣊<𢒇<𢒈<å½¢<㣋<㣌<ã£<𢒉<𢒊<𢒋<𢒌<ð¢’<"
+ "å½¥<彦<𢒎<彧<彨<ð¢’<ð¢’<𢒑<𢒒<𢒓<𣥲<彩<彫<彬<㣎<𢒔<𢒕<𢒖<𢒗<𢒘<𢒙<𢒚<𢒛<𢒜<ð¢’<彩"
+ "<彫<å½­<ã£<ã£<𢒞<𢒟<𢒠<𢒡<𢒢<𢒣<å½®<𢒤<𢒥<𢒦<𢒧<𢒨<彯<å½°<㣑<𢒩<𢒪<å½±<㣒<𢒫<𢒬<𢒭"
+ "<𢒮<𢒯<㣓<𢒰<𢒱<𢒲<𢒳<𢒴<𢒵<𢒷<𢒶<彲<𢒸<𢒹<𢒺<𢒻<彳<𢒼<𢒽<㣔<𢒾<𢒿<彴<彵<㣕"
+ "<𢓀<ð¢“<𢓂<𢓃<彶<å½·<彸<å½¹<彺<å½»<㣖<㣗<𢓄<𢓅<𢓆<𢓇<𢓈<𢓉<𢓊<𢓋<𢓌<ð¢“<𢓎<ð¢“<ð¢“<"
+ "𢓑<å½¼<å½½<å½¾<彿<å¾€<å¾<徂<徃<径<㣘<㣙<𢓒<𢓓<𢓔<𢓕<𢓖<𢓗<𢓘<𢓙<𢓚<𢓛<å¾…<徆<徇<很<徉<徊<律"
+ "<後<å¾<å¾”<㣚<㣛<㣜<ã£<㣞<㣟<㣠<㣡<𢓜<ð¢“<𢓞<𢓟<𢓠<𢓡<𢓢<𢓣<𢓤<𢓥<𢓦<𢓧<𢓨<𢓩<律<徎"
+ "<å¾<å¾<徑<å¾’<従<徕<㣢<㣣<𢓪<𢓫<𢓬<𢓭<𢓮<𢓯<𢓰<𢓱<𢓲<𢓳<𢓴<𢓵<𢓶<𢓷<𢓸<𢓹<𢓺<"
+ "𢓻<𢓼<𢓽<𢓾<𢓿<𢔀<㣣<å¾–<å¾—<徘<å¾™<å¾›<徜<å¾<從<徟<å¾ <御<å¾¢<å¾£<徤<㣤<㣥<㣦<㣧<㣨<㣩<ð¢”<𢔂<𢔃"
+ "<𢔄<𢔅<𢔆<𢔇<𢔈<𢔉<𢔊<𢔋<𢔌<ð¢”<𢔎<ð¢”<ð¢”<𢔑<𢔒<𢔓<𢔔<𢔕<𢔖<𢔗<𢔘<𢔙<"
+ "𢔚<𢔛<𢔜<ð¢”<𢔞<徚<å¾¥<徦<徧<徨<復<循<徫<㣪<㣫<㣬<㣭<㣮<𢔟<𢔠<𢔡<𢔢<𢔣<𢔤<𢔥<𢔦<𢔧<"
+ "𢔨<𢔩<𢔪<𢔫<𢔭<𢔮<𢔯<𢔰<𢔱<復<徚<徬<徭<微<徯<徰<㣯<𢔲<𢔳<𢔴<𢔵<𢔶<𢔷<𢔸<𢔹<"
+ "𢔺<𢔻<𢔼<𢔽<𢔾<𢔿<𢕀<ð¢•<𢕂<𢕃<𢕄<𢕅<𢕆<𢕇<𢕈<𢕉<𢕊<𢕋<𢕌<ð¢•<𢕎<𢕧<å¾­<"
+ "å¾±<å¾³<å¾´<㣰<㣱<㣲<ð¢•<ð¢•<𢕑<𢕒<𢕓<𢕔<𢕕<𢕖<𢕗<𢕘<𢕙<𢕚<𢕛<𢕜<ð¢•<𢕞<𢕟<𢕠<𢕡"
+ "<𢕢<𢕣<𢕤<𢕥<𢕦<𢕨<𢕩<徲<徵<徶<德<徸<徹<徺<㣳<㣴<𢕪<𢕫<𢕬<𢕭<𢕮<𢕯<𢕰<𢕱<𢕲<"
+ "𢕳<𢕴<𢕵<𢕶<𢕷<𢕸<å¾»<å¾¼<㣵<㣶<𢕹<𢕺<𢕻<𢕼<𢕽<𢕾<𢕿<𢖀<ð¢–<𢖂<𢖃<𢖄<𢖆<𢖇<"
+ "å¾½<å¾¾<㣷<𢖈<𢖉<𢖊<𢖌<ð¢–<𢖎<ð¢–<ð¢–<𢖑<𢖒<𢖓<𢖔<𢖕<𢖖<𢖗<徿<㣸<𢖘<𢖙<𢖚<𢖜<å¿€"
+ "<å¿<㣹<ð¢–<𢖞<𢖟<𢖠<𢖢<å¿‚<𢖣<𢖤<𢖥<𢖦<𢖧<𢖨<心<å¿„<𢖩<å¿…<忆<㣺<𢖪<忇<忈<忉<å¿Š<㣻<𢖫"
+ "<𢖬<𢖭<𢖮<𢖯<𢖰<𢖱<å¿‹<å¿Œ<å¿<å¿Ž<å¿<å¿<å¿‘<å¿’<å¿“<å¿”<å¿•<å¿–<å¿—<忘<å¿™<å¿š<å¿›<å¿œ<㣼<㣽<㣾<㣿<㤀<𢖲<"
+ "𢖳<𢖴<𢖵<𢖶<𢖷<𢖸<𢖹<𢖺<𢖻<𢖼<𢖽<𢖾<𢖿<𢗀<ð¢—<𢗂<𢗃<𢗄<𢗅<𢗆<𢗇<𢗈<å¿<"
+ "å¿—<å¿<å¿ž<å¿Ÿ<å¿ <å¿¡<å¿¢<å¿£<忤<å¿¥<忦<忧<忨<å¿©<忪<å¿«<忬<å¿­<å¿®<忯<å¿°<忱<忲<忳<å¿´<念<忶<å¿·<忸<忹<忺<å¿»<忼<忽<"
+ "忾<å¿¿<怀<æ€<怂<怃<怄<怅<怆<ã¤<㤂<㤃<㤄<㤅<㤆<㤇<㤈<㤉<㤊<㤋<𢗉<𢗊<𢗋<𢗌<ð¢—<𢗎<ð¢—<ð¢—<𢗑<"
+ "𢗒<𢗓<𢗔<𢗕<𢗖<𢗗<𢗘<𢗙<𢗚<𢗛<𢗜<ð¢—<𢗞<𢗟<𢗠<𢗡<𢗢<𢗣<𢗤<𢗥<𢗦<𢗧<𢗨"
+ "<𢗩<𢗪<𢗫<𢗬<𢗭<𢗮<𢗯<𢗰<𢗱<𢗲<𢗳<𢗴<𢗵<𢗶<𢗷<𢗸<𢗹<𢗺<𢗻<𢗼<𢗽<𢗾<念"
+ "<忹<怇<怈<怉<怊<怋<怌<æ€<怎<æ€<æ€<怑<怒<怓<怔<怕<怖<怗<怘<怙<怚<怛<怜<æ€<怞<怟<怠<怡<怢<怣<怤<急<怦<性"
+ "<怨<怩<怪<怫<怬<怭<怮<怯<怰<怱<怲<怳<怴<怵<怶<怷<怸<怹<怺<总<怼<怽<怾<怿<㤌<ã¤<㤎<ã¤<ã¤<㤑<㤒<㤓<㤔<㤕"
+ "<㤖<㤗<㤘<㤙<𢗿<𢘀<ð¢˜<𢘂<𢘃<𢘄<𢘅<𢘆<𢘇<𢘈<𢘉<𢘊<𢘋<𢘌<ð¢˜<𢘎<ð¢˜<ð¢˜<𢘑<𢘒"
+ "<𢘓<𢘔<𢘕<𢘖<𢘗<𢘘<𢘙<𢘚<𢘛<𢘜<ð¢˜<𢘞<𢘟<𢘠<𢘡<𢘢<𢘣<𢘤<𢘥<𢘦<𢘧<𢘨<"
+ "𢘩<𢘪<𢘫<𢘬<𢘭<𢘮<𢘯<𢘰<𢘱<𢘲<𢘳<怒<怜<æ€<æ<æ‚<æƒ<æ„<æ…<æ†<æ‡<æˆ<æ‰<æŠ<æ‹<æŒ<æ<æŽ<æ"
+ "<æ<æ‘<æ’<æ“<æ”<æ•<æ–<æ—<æ˜<æ™<æš<æ›<æœ<æ<æž<æŸ<æ <æ¡<æ¢<æ£<æ¤<æ¥<æ¦<æ§<æ¨<æ©<æª<æ«<æ¬<æ­<æ®<æ¯<æ°<æ±"
+ "<æ²<æ³<æ´<æµ<æ¶<æ·<æ¸<æ¹<æº<æ»<æ¼<æ½<㤚<㤛<㤜<ã¤<㤞<㤟<㤠<㤡<㤢<㤣<㤤<㤥<㤦<㤧<㤨<㤩<㤪<㤫<㤬<㤭<㤺<"
+ "𢘴<𢘵<𢘶<𢘷<𢘸<𢘹<𢘺<𢘻<𢘼<𢘽<𢘾<𢘿<𢙀<ð¢™<𢙂<𢙃<𢙄<𢙅<𢙆<𢙇<𢙈<𢙉<𢙊"
+ "<𢙋<𢙌<ð¢™<𢙎<ð¢™<ð¢™<𢙑<𢙒<𢙓<𢙔<𢙕<𢙖<𢙗<𢙘<𢙙<𢙚<𢙛<𢙜<ð¢™<𢙞<𢙟<𢙠<"
+ "𢙡<𢙢<𢙣<𢙤<𢙥<𢙦<𢙧<𢙨<𢙩<𢙪<𢙫<𢙬<𢙭<𢙮<𢙯<𢙰<㤺<㤜<æ¾<æ¿<æ‚€<æ‚<æ‚‚<悃<æ‚„<æ‚…<"
+ "悆<悇<悈<悉<æ‚Š<æ‚‹<æ‚Œ<æ‚<æ‚Ž<æ‚<æ‚<æ‚‘<æ‚’<æ‚“<æ‚”<æ‚•<æ‚–<æ‚—<悘<æ‚™<æ‚š<æ‚›<æ‚œ<æ‚<æ‚ž<æ‚Ÿ<æ‚ <æ‚¡<æ‚¢<æ‚£<悤<æ‚¥<悦<悧<"
+ "您<悩<悪<悫<悬<悭<悮<悯<㤮<㤯<㤰<㤱<㤲<㤳<㤴<㤵<㤶<㤷<㤸<㤹<㤻<㤼<㤽<𢙱<𢙲<𢙳<𢙴<𢙵<𢙶<𢙷<"
+ "𢙸<𢙹<𢙺<𢙻<𢙼<𢙽<𢙾<𢙿<𢚀<ð¢š<𢚂<𢚃<𢚄<𢚅<𢚆<𢚇<𢚈<𢚉<𢚊<𢚋<𢚌<ð¢š<𢚎"
+ "<ð¢š<ð¢š<𢚑<𢚒<𢚓<𢚔<𢚕<𢚖<𢚗<𢚘<𢚙<𢚚<𢚛<𢚜<ð¢š<𢚞<𢚟<𢚠<𢚡<𢚢<𢚣<𢚤<"
+ "𢚥<𢚦<𢚧<𢚨<𢚩<𢚪<𢚫<𢚬<𢚭<𢚮<𢚯<𢚰<𢚱<𢚲<𢚳<𢚴<𢚵<𢚶<𢚷<𢚸<𢚹<𢚺<𢚻"
+ "<𢚼<𢚽<𢚾<𢚿<æ‚”<æ‚<æ‚”<æ‚°<悱<悲<悳<æ‚´<悵<悶<æ‚·<悸<悹<悺<æ‚»<悼<悽<悾<æ‚¿<惀<æƒ<惂<惃<惄<情<惆<惇<惈"
+ "<惉<惊<惋<惌<æƒ<惎<æƒ<æƒ<惑<惒<惓<惔<惕<惖<惗<惘<惙<惚<惛<惜<æƒ<惞<惟<惠<惡<惢<惣<惤<惥<惦<惧<惨<惩<惪"
+ "<惫<惬<惭<惮<惯<㤾<㤿<㥀<ã¥<㥂<㥃<㥄<㥅<㥆<㥇<㥈<㥉<㥊<㥋<㥌<ã¥<㥎<ã¥<ã¥<㥑<㥒<㥓<㥔<㥕<㥖<㥗<㥘<㥙<"
+ "𢛀<ð¢›<𢛂<𢛃<𢛄<𢛅<𢛆<𢛇<𢛈<𢛉<𢛊<𢛋<𢛌<ð¢›<𢛎<ð¢›<ð¢›<𢛑<𢛒<𢛓<𢛔<𢛕<𢛖"
+ "<𢛗<𢛘<𢛙<𢛚<𢛛<𢛜<ð¢›<𢛞<𢛟<𢛠<𢛡<𢛢<𢛣<𢛤<𢛥<𢛦<𢛧<𢛨<𢛩<𢛪<𢛫<𢛬<"
+ "𢛭<𢛮<𢛯<𢛰<𢛱<𢛲<𢛳<𢛴<𢛵<𢛶<𢛷<𢛸<𢛹<𢛺<𢛻<𢛼<𢛽<𢛾<𢛿<𢜀<ð¢œ<𢜂<𢜃"
+ "<𢜄<𢜅<𢜆<𢜇<𢜈<𢜉<𢜊<𢜋<𢜌<ð¢œ<𢜎<ð¢œ<ð¢œ<𢜑<𢜒<𢜓<𢜔<𢜕<𢜖<𢜗<𢜘<𢜙<"
+ "𢜚<𢜛<𢜜<ð¢œ<𢜞<𢜟<𢜠<𢜡<𢜢<𢜣<𢜤<𢜥<𢜦<𢜧<惡<惘<𢛔<惇<惰<惱<惲<想<惴<惵<惶<惷<惸"
+ "<惹<惺<惻<惼<惽<惾<惿<æ„€<æ„<æ„‚<愃<æ„„<æ„…<愆<愇<愈<愉<æ„Š<æ„‹<æ„Œ<æ„<æ„Ž<æ„<æ„<æ„‘<æ„’<æ„“<æ„”<æ„•<æ„–<æ„—<愘<æ„™<æ„š"
+ "<æ„›<æ„œ<æ„<æ„ž<æ„Ÿ<æ„ <æ„¡<æ„¢<æ„£<愤<æ„¥<愦<æ…¨<㥚<㥛<㥜<ã¥<㥞<㥟<㥠<㥡<㥢<㥣<㥤<㥥<㥦<㥧<㥨<㥩<㥪<㥫<𢜨<𢜩"
+ "<𢜪<𢜫<𢜬<𢜭<𢜮<𢜯<𢜰<𢜱<𢜲<𢜳<𢜴<𢜵<𢜶<𢜷<𢜸<𢜹<𢜺<𢜻<𢜼<𢜽<𢜾<𢜿<"
+ "ð¢€<ð¢<ð¢‚<ð¢ƒ<ð¢„<ð¢…<ð¢†<ð¢‡<ð¢ˆ<ð¢‰<ð¢Š<ð¢‹<ð¢Œ<ð¢<ð¢Ž<ð¢<ð¢<ð¢‘<ð¢’<ð¢“<ð¢”<ð¢•<ð¢–"
+ "<ð¢—<ð¢˜<ð¢™<ð¢š<ð¢›<ð¢œ<ð¢<ð¢ž<ð¢Ÿ<ð¢ <ð¢¡<ð¢¢<ð¢£<ð¢¤<ð¢¥<ð¢¦<ð¢§<ð¢¨<ð¢©<ð¢ª<ð¢«<ð¢¬<"
+ "ð¢­<ð¢®<ð¢¯<ð¢°<ð¢±<ð¢²<ð¢³<ð¢´<ð¢µ<ð¢¶<ð¢·<ð¢¸<ð¢¹<ð¢º<ð¢»<ð¢¼<ð¢½<ð¢¾<ð¢¿<𢞀<ð¢ž<𢞂<𢞃"
+ "<𢞄<𢞅<𢞆<𢞇<𢞈<𢞉<𢞊<𢞋<𢞌<慨<愈<愧<愨<愩<愪<愫<愬<愭<愮<愯<愰<愱<愲<愳<愴<愵<愶<愷<愸<"
+ "愹<愺<æ„»<愼<愽<愾<æ„¿<æ…€<æ…<æ…‚<æ…ƒ<æ…„<æ……<æ…†<æ…‡<æ…ˆ<æ…‰<æ…Š<æ…‹<æ…Œ<æ…<æ…Ž<æ…<æ…<æ…‘<㥬<㥭<㥮<㥯<㥰<㥱<㥲<㥳<㥴<"
+ "㥵<㥶<㥷<㥸<㥹<㥺<㥻<ð¢ž<𢞎<ð¢ž<ð¢ž<𢞑<𢞒<𢞓<𢞔<𢞕<𢞖<𢞗<𢞘<𢞙<𢞚<𢞛<𢞜<ð¢ž<𢞞<"
+ "𢞟<𢞠<𢞡<𢞢<𢞣<𢞤<𢞥<𢞦<𢞧<𢞨<𢞩<𢞪<𢞫<𢞬<𢞭<𢞮<𢞯<𢞰<𢞱<𢞲<𢞳<𢞴<𢞵"
+ "<𢞶<𢞷<𢞸<𢞹<𢞺<𢞻<𢞼<𢞽<𢞾<𢞿<𢟀<ð¢Ÿ<𢟂<𢟃<𢟄<𢟅<𢟆<𢟇<𢟈<𢟉<𢟊<𢟋<"
+ "𢟌<ð¢Ÿ<𢟎<ð¢Ÿ<ð¢Ÿ<𢟑<𢟒<𢟓<𢟔<𢟕<𢟖<𢟗<𢟘<𢟙<𢟚<𢟛<𢟜<ð¢Ÿ<𢟞<𢟟<æ…„<æ…Ž<æ…ˆ<æ…Œ<"
+ "æ…Ž<æ…Œ<æ…’<æ…“<æ…”<æ…•<æ…–<æ…—<æ…˜<æ…™<æ…š<æ…›<æ…œ<æ…<æ…ž<æ…Ÿ<æ… <æ…¡<æ…¢<æ…£<æ…¤<æ…¥<æ…¦<æ…§<æ…©<æ…ª<æ…«<æ…¬<æ…®<æ…¯<æ…°<æ…±<æ…²<æ…³<"
+ "æ…´<æ…µ<æ…¶<æ…·<æ…¸<æ…¹<æ…º<æ…»<æ…¼<æ…½<æ…¾<æ…¿<憀<æ†<憂<憃<憄<憅<憆<憇<憈<㥼<㥽<㥾<㥿<㦀<ã¦<㦂<㦃<㦄<㦅<㦆<㦇<㦈<"
+ "𠕫<𢟠<𢟡<𢟢<𢟣<𢟤<𢟥<𢟦<𢟧<𢟨<𢟩<𢟪<𢟫<𢟬<𢟭<𢟮<𢟯<𢟰<𢟱<𢟲<𢟳<𢟴<𢟵"
+ "<𢟶<𢟷<𢟸<𢟹<𢟺<𢟻<𢟼<𢟽<𢟾<𢟿<𢠀<ð¢ <𢠂<𢠃<𢠄<𢠅<𢠆<𢠇<𢠈<𢠉<𢠊<𢠋<"
+ "𢠌<ð¢ <𢠎<ð¢ <ð¢ <𢠑<𢠒<𢠓<𢠔<𢠕<𢠖<𢠗<𢠘<𢠙<𢠚<𢠛<𢠜<ð¢ <𢠞<𢠟<𢠠<𢠡<𢠢"
+ "<𢠣<𢠤<𢠥<𢠦<𢠧<𢠨<𢠩<𢠪<𢠫<𢠬<𢠭<𢠮<𢠯<𢠰<𦑑<æ… <æ…º<æ…­<憉<憊<憋<憌<æ†<憎<æ†<æ†<"
+ "憑<憒<憓<憔<憕<憖<憗<憘<憙<憚<憛<憜<æ†<憞<憟<憠<憡<憢<憣<憤<憥<憦<憧<憨<憩<憪<憫<憬<憭<憮<憯<憰<憱<憲<"
+ "憳<㦉<㦊<㦋<㦌<ã¦<㦎<ã¦<ã¦<㦑<㦒<㦓<㦔<㦕<㦖<𢠱<𢠲<𢠳<𢠴<𢠵<𢠶<𢠷<𢠸<𢠹<𢠺<𢠻<𢠼<𢠽"
+ "<𢠾<𢠿<𢡀<ð¢¡<𢡂<𢡃<𢡄<𢡅<𢡆<𢡇<𢡈<𢡉<𢡊<𢡋<𢡌<ð¢¡<𢡎<ð¢¡<ð¢¡<𢡑<𢡒<𢡓<"
+ "𢡔<𢡕<𢡖<𢡗<𢡘<𢡙<𢡚<𢡛<𢡜<ð¢¡<𢡞<𢡟<𢡠<𢡡<𢡢<𢡣<𢡤<𢡥<𢡦<𢡧<𢡨<𢡩<𢡪"
+ "<𢡫<𢡬<𢡭<𢡮<𢡯<𢡰<𢡱<𢡲<𢡳<𢡴<𢡵<𢡶<𢡷<𢡸<𢡹<𢡺<𢡻<𢡼<𢡽<𢡾<𢡿<𢢀<"
+ "ð¢¢<𢢂<𢢃<𢢄<𢢅<𢢆<𢢇<𢢈<𢢉<𢢊<𢢋<𢢌<ð¢¢<𢢎<ð¢¢<ð¢¢<𢢑<æ†<憎<憎<𢡊<𢡄<憎<憲<憤"
+ "<憯<憴<憵<憶<憷<憸<憹<憺<憼<憽<憾<憿<懀<æ‡<懂<懃<懄<懅<懆<懇<懈<應<懊<懋<懌<æ‡<懎<æ‡<æ‡<懑<懒<懓<懔<㦗"
+ "<㦘<㦙<𢢒<𢢓<𢢔<𢢕<𢢖<𢢗<𢢘<𢢙<𢢚<𢢛<𢢜<ð¢¢<𢢞<𢢟<𢢠<𢢡<𢢢<𢢣<𢢤<𢢥<𢢦<"
+ "𢢧<𢢨<𢢩<𢢪<𢢫<𢢬<𢢭<𢢮<𢢯<𢢰<𢢱<𢢲<𢢳<𢢴<𢢵<𢢶<𢢷<𢢸<𢢹<𢢺<𢢻<𢢼<𢢽"
+ "<𢢾<𢢿<𢣀<ð¢£<𢣂<𢣃<𢣄<𢣅<𢣆<𢣇<𢣈<𢣉<𢣊<𢣋<𢣌<ð¢£<𦡗<憻<懕<懖<懗<懘<懙<懚<懛<"
+ "懜<æ‡<懞<懟<懠<懡<懢<懣<懤<懥<懦<懧<懨<㦚<㦛<㦜<ã¦<㦞<㦟<㦠<𢣎<ð¢£<ð¢£<𢣑<𢣒<𢣓<𢣔<𢣕<𢣖<"
+ "𢣗<𢣘<𢣙<𢣚<𢣛<𢣜<ð¢£<𢣞<𢣟<𢣠<𢣡<𢣢<𢣣<𢣤<𢣥<𢣦<𢣧<𢣨<𢣩<𢣪<𢣫<𢣬<𢣭"
+ "<𢣮<𢣯<𢣰<𢣱<𢣲<𢣳<𢣴<𢣵<𢣶<𢣷<𢣸<𢣹<𢣺<懞<懩<懪<懫<懬<懭<懮<懯<懰<懱<懲<懳<懴<㦡<"
+ "㦢<𢣻<𢣼<𢣽<𢣾<𢣿<𢤀<ð¢¤<𢤂<𢤃<𢤄<𢤅<𢤆<𢤇<𢤈<𢤉<𢤊<𢤋<𢤌<ð¢¤<𢤎<ð¢¤<ð¢¤<"
+ "𢤑<𢤒<𢤓<𢤔<𢤕<𢤖<𢤗<𢤘<𢤙<𢤚<𢤛<𢤜<ð¢¤<𢤞<𢤟<𢤠<𢤡<𢤢<𢤣<𢤤<𢤥<𦻇<懲<"
+ "懲<懲<懵<懶<懷<懸<㦣<㦤<㦥<㦦<㦧<𢤦<𢤧<𢤨<𢤩<𢤪<𢤫<𢤬<𢤭<𢤮<𢤯<𢤰<𢤱<𢤲<𢤳<𢤴<"
+ "𢤵<𢤶<𢤷<𢤸<𢤹<𢤺<𢤻<𢤼<𢤽<𢤾<𢤿<𢥀<ð¢¥<𢥂<𢥃<𢥄<𢥅<𢥆<𢥇<𢥈<𢥉<𢥊<懶<"
+ "懶<懹<懺<懻<㦨<㦩<㦪<𢥋<𢥌<ð¢¥<𢥎<ð¢¥<ð¢¥<𢥑<𢥒<𢥓<𢥔<𢥕<𢥖<懼<懽<懾<懿<𢥗<𢥘<𢥙<"
+ "𢥚<𢥛<𢥜<ð¢¥<𢥞<𢥟<𢥠<𢥡<𢥢<𢥣<𢥤<戀<æˆ<戂<㦫<㦬<𢥥<𢥦<𢥧<𢥨<𢥩<𢥪<𢥫<𢥬<"
+ "𢥭<𢥮<戀<戃<戄<𢥯<𢥰<𢥱<𢥲<𢥳<𢥴<𢥵<𢥶<𢥷<𢥸<𢥹<𢥺<戅<戆<𢥻<𢥼<𢥽<𢥾<𢥿<"
+ "𢦀<ð¢¦<𢦂<𢦃<𢦄<戇<㦭<𢦅<𢦆<𢦇<𢦈<𢦉<𢦊<𢦋<戈<戉<戊<戋<𢦌<ð¢¦<戌<æˆ<戎<æˆ<æˆ<𢦎<"
+ "ð¢¦<ð¢¦<𢦑<我<戒<戓<㦮<㦯<𢦒<𢦓<𢦔<𢦕<𢦖<𢦗<𢦘<𢦙<æˆ<戔<戕<或<戗<㦰<㦱<㦲<𢦚<𢦛<𢦜<"
+ "ð¢¦<𢦞<𢦟<𢦠<𢦡<𢦢<𢦣<𢦤<𢦥<战<㦳<𢦦<𢦧<𢦨<𢦩<𢦪<𢦫<𢦬<𢦭<𢦮<𢦯<𢦰<𢦱<"
+ "𢦲<𢦳<𢦴<𢦵<𢦶<戙<㦴<㦵<㦶<𢦷<𢦸<𢦹<𢦺<𢦻<𢦼<𢦽<𢦾<戚<戛<戜<æˆ<㦷<𢦿<𢧀<ð¢§<𢧂"
+ "<𢧃<𢧄<𢧅<𢧆<𢧇<戛<戞<戟<戦<㦸<𢧈<𢧉<𢧊<𢧋<𢧌<ð¢§<𢧎<ð¢§<ð¢§<𢧑<𢧒<𢧓<戠<戡<戢<"
+ "戣<戤<戥<㦹<𢧔<𢧕<𢧖<𢧗<𢧘<𢧙<𢧚<𢧛<𢧜<ð¢§<𢧞<𢧟<𢧠<𢧡<戧<戨<戩<截<戫<戬<㦺<𠎶<"
+ "𢧢<𢧣<𢧤<𢧥<𢧦<𢧧<𢧩<𢧪<𢧫<𢧬<𢧭<𢧮<𢧯<𢧰<𢧱<戭<戮<戯<戱<㦻<㦼<𢧨<𢧲<𢧳<𢧴"
+ "<𢧵<𢧶<𢧷<𢧸<𢧹<𢧺<𢧻<𢧼<𢧽<𢧾<𢧿<𢨀<ð¢¨<𢨂<𢨃<𢨄<𢨅<𢨆<戮<戰<𢨇<𢨈<𢨉<"
+ "𢨊<𢨋<𢨌<ð¢¨<𢨎<ð¢¨<𢨑<𢨒<戲<戴<㦽<𢨓<𢨔<𢨕<𢨖<𢨗<戴<戳<𢨘<𢨙<𢨚<𢨛<𢨜<ð¢¨<"
+ "𢨞<𢨟<𢨠<𢨡<𢨢<𢨣<戵<戶<户<戸<戹<𢨤<𢨥<𢨦<𢨧<𢨨<𢨩<戺<戻<戼<㦾<𢨪<𢨫<𢨬<𢨭<𢨮"
+ "<戽<戾<房<所<㦿<㧀<𢨯<𢨰<𢨱<𢨲<𢨳<𢨴<𢨵<æ‰<扂<扃<ã§<㧂<𢨶<𢨷<𢨸<𢨹<𢨺<𢨻<𢨼<𢨽<"
+ "𢨾<𢨿<𢩀<ð¢©<𢩂<𢩃<𢩄<扄<扅<扆<扇<𢩅<𢩆<𢩇<𢩈<𢩉<𢩊<𢩋<𢩌<扈<ð¢©<𢩎<ð¢©<ð¢©<扉"
+ "<扊<𢩑<𢩒<𢩓<𢩔<𢩕<𢩖<𢩗<𤟵<𢩘<𢩙<𢩚<𢩛<𢩜<ð¢©<𢩞<𢩟<𢩠<𢩡<ð¨³<𢩢<𢩣<𢩤"
+ "<手<扌<æ‰<é¾µ<扎<𢩥<𢩦<𢩧<æ‰<扑<扒<打<扔<払<扖<㧃<㧄<㧅<𢩨<𢩩<𢩪<𢩫<𢩬<æ‰<扗<托<扙<扚<扛<扜"
+ "<æ‰<扞<扠<扡<扢<扣<扤<扥<扦<执<扨<扩<扪<扫<扬<㧆<㧇<㧈<𢩭<𢩮<𢩯<𢩰<𢩱<𢩲<𢩳<𢩴<𢩵<𢩶<"
+ "𢩷<𢩸<𢩹<𢩺<𢩻<𢩼<𢩽<𢩾<𢩿<𢪀<ð¢ª<𢪂<æ‰<扟<扭<扮<扯<扰<扱<扲<扳<扴<扵<扶<扷<批<扺<扻<"
+ "扼<扽<找<承<技<æŠ<抂<抃<抄<抅<抆<抇<抈<抉<把<抋<抌<æŠ<抎<æŠ<æŠ<抑<抒<抓<抔<投<抖<抗<折<抙<抚<抛<抜<æŠ<"
+ "択<抟<抠<抡<抢<抣<护<报<㧉<㧊<㧋<㧌<ã§<㧎<ã§<ã§<㧑<𢪃<𢪄<𢪅<𢪆<𢪇<𢪈<𢪉<𢪊<𢪋<𢪌<ð¢ª<"
+ "𢪎<ð¢ª<ð¢ª<𢪑<𢪒<𢪓<𢪔<𢪕<𢪖<𢪗<𢪘<𢪙<𢪚<𢪛<𢪜<ð¢ª<𢪞<𢪟<𢪠<𢪡<𢪢<𢪣<𢪤"
+ "<𢪥<𢪦<𢪧<𢪨<𢪩<𢪪<𢪫<𢪬<𢪭<𢪮<𢪯<𢪰<𢪱<𢪲<𢪳<扸<抦<抧<抨<抩<抪<披<抬<抭<抮<抯<"
+ "抰<抱<抲<抳<抴<抵<抶<抷<抸<抹<抺<抻<押<抽<抾<抿<æ‹€<æ‹<æ‹‚<拃<æ‹„<æ‹…<拆<拇<拈<拉<æ‹Š<æ‹‹<æ‹Œ<æ‹<æ‹Ž<æ‹<æ‹<æ‹‘<"
+ "æ‹’<æ‹“<æ‹”<æ‹•<æ‹–<æ‹—<拘<æ‹™<æ‹š<æ‹›<æ‹œ<æ‹<æ‹ž<æ‹Ÿ<æ‹ <æ‹¡<æ‹¢<æ‹£<拤<æ‹¥<拦<拧<拨<æ‹©<㧒<㧓<㧔<㧕<㧖<㧗<㧘<㧙<㧚<㧛<"
+ "㧜<ã§<㧞<㧟<㧠<𢪴<𢪵<𢪶<𢪷<𢪸<𢪹<𢪺<𢪻<𢪼<𢪽<𢪾<𢪿<𢫀<ð¢«<𢫂<𢫃<𢫄<𢫅<𢫆<"
+ "𢫇<𢫈<𢫉<𢫊<𢫋<𢫌<ð¢«<𢫎<ð¢«<ð¢«<𢫑<𢫒<𢫓<𢫔<𢫕<𢫖<𢫗<𢫘<𢫙<𢫚<𢫛<𢫜<ð¢«"
+ "<𢫞<𢫟<𢫠<𢫡<𢫢<𢫣<拉<æ‹<æ‹“<抱<æ‹”<拪<æ‹«<括<æ‹­<æ‹®<拯<æ‹°<拱<拲<拳<æ‹´<拵<拶<æ‹·<拸<拹<拺<æ‹»<拼<拽"
+ "<拾<æ‹¿<挀<æŒ<挂<挃<挄<挅<挆<指<挈<按<挊<挋<挌<æŒ<挎<æŒ<æŒ<挑<挒<挓<挔<挕<挖<挗<挘<挙<挚<挛<挜<æŒ<挞<挟"
+ "<挠<挡<挢<挣<挤<挥<挦<挧<㧡<㧢<㧣<㧤<㧥<㧦<㧧<㧨<㧩<㧪<㧫<㧬<㧭<㧮<㧯<㧰<㧱<𢫤<𢫥<𢫦<𢫧<𢫨<𢫩"
+ "<𢫪<𢫫<𢫬<𢫭<𢫮<𢫯<𢫰<𢫱<𢫲<𢫳<𢫴<𢫵<𢫶<𢫷<𢫸<𢫹<𢫺<𢫻<𢫼<𢫽<𢫾<𢫿<"
+ "𢬀<ð¢¬<𢬂<𢬃<𢬄<𢬅<𢬆<𢬇<𢬈<𢬉<𢬊<𢬋<𢬌<ð¢¬<𢬎<ð¢¬<ð¢¬<𢬑<𢬒<𢬓<𢬔<𢬕<𢬖"
+ "<𢬗<𢬘<𢬙<𢬚<𢬛<𢬜<ð¢¬<𢬞<𢬟<𢬠<𢬡<𢬢<𢬣<𢬤<𢬥<𢬦<𢬧<𢬨<𢬩<𢬪<𢬫<𢬬<"
+ "𢬭<𢬮<拾<𢬌<拼<挨<挩<挪<挫<挬<挭<挮<振<挰<挱<挲<挳<挴<挵<挶<挷<挸<挹<挺<挻<挼<挽<挾<挿<æ€<æ<æ‚<æƒ"
+ "<æ„<æ…<æ†<æ‡<æˆ<æ‰<æŠ<æ‹<æŒ<æ<æŽ<æ<æ<æ‘<æ’<æ“<æ”<æ•<æ–<æ—<æ˜<æ™<æš<æ›<æœ<æ<æž<æŸ<æ <æ¡<æ¢<æ£<æ¤<㧲"
+ "<㧳<㧴<㧵<㧶<㧷<㧸<𢬯<𢬰<𢬱<𢬲<𢬳<𢬴<𢬵<𢬶<𢬷<𢬸<𢬹<𢬺<𢬻<𢬼<𢬽<𢬾<𢬿<𢭀<"
+ "ð¢­<𢭂<𢭃<𢭄<𢭅<𢭆<𢭇<𢭈<𢭉<𢭊<𢭋<𢭌<ð¢­<𢭎<ð¢­<ð¢­<𢭑<𢭒<𢭓<𢭔<𢭕<𢭖<𢭗"
+ "<𢭘<𢭙<𢭚<𢭛<𢭜<ð¢­<𢭞<𢭟<𢭠<𢭡<𢭢<𢭣<𢭤<𢭥<𢭦<𢭧<𢭨<𢭩<𢭪<𢭫<𢭬<𢭭<"
+ "𢭮<𢭯<𢭰<𢭱<𢭲<𢭳<𢭴<𢭵<𢭶<𢭷<𢭸<𢭹<𢭺<𢭻<𢭼<𢭽<𢭾<𢭿<𢮀<æ<挽<æ¥<æ¦<æ§<æ¨"
+ "<æ©<æª<æ«<æ¬<æ­<æ®<æ¯<æ°<æ±<æ²<æ³<æ´<æµ<æ¶<æ·<æ¸<æ¹<æº<æ»<æ¼<æ½<æ¾<æ¿<掀<æŽ<掂<掃<掄<掅<掆<掇<授<掉<掊"
+ "<掋<掌<æŽ<掎<æŽ<æŽ<掑<排<掓<掔<掕<掖<掗<掘<掙<掚<掛<掜<æŽ<掞<掟<掠<採<探<掣<掤<接<掦<控<推<掩<措<掫<掬"
+ "<掭<掮<掯<掰<掱<掳<掴<掵<掶<掷<掸<掹<掺<掻<掼<掽<㧹<㧺<㧻<㧼<㧽<㧾<㧿<㨀<ã¨<㨂<㨃<㨄<㨅<㨆<㨇<㨈<ð¢®<"
+ "𢮂<𢮃<𢮄<𢮅<𢮆<𢮇<𢮈<𢮉<𢮊<𢮋<𢮌<ð¢®<𢮎<ð¢®<ð¢®<𢮑<𢮒<𢮓<𢮔<𢮕<𢮖<𢮗<𢮘"
+ "<𢮙<𢮚<𢮛<𢮜<ð¢®<𢮞<𢮟<𢮠<𢮡<𢮢<𢮣<𢮤<𢮥<𢮦<𢮧<𢮨<𢮩<𢮪<𢮫<𢮬<𢮭<𢮮<"
+ "𢮯<𢮰<𢮱<𢮲<𢮳<𢮴<𢮵<𢮶<𢮷<𢮸<𢮹<𢮺<𢮻<𢮼<𢮽<𢮾<𢮿<𢯀<ð¢¯<𢯂<𢯃<𢯄<𢯅"
+ "<𢯆<𢯇<𢯈<𢯉<𢯊<𢯋<𢯌<ð¢¯<𢯎<ð¢¯<ð¢¯<𢯑<𢯒<𢯓<𢯔<𢯕<𢯖<𢯗<𢯘<𢯙<𢯚<𢯛<"
+ "𢯜<ð¢¯<𢯞<𢯟<𢯠<𢯡<𢯢<𢯣<𢯤<𢯥<𢯦<𢯧<𢯨<掠<æ»<æ¨<掃<掩<掲<掾<掿<æ€<æ<æ‚<æƒ<æ„<æ†<æ‡"
+ "<æˆ<æ‰<æŠ<æ‹<æŒ<æ<æŽ<æ<æ<æ‘<æ’<æ“<æ”<æ•<æ–<æ—<æ˜<æ™<æš<æ›<æœ<æ<æž<æŸ<æ <æ¡<æ¢<æ£<æ¤<æ¥<æ¦<æ§<æ¨<æ©"
+ "<æª<æ«<æ¬<æ­<æ®<æ¯<æ°<æ±<æ²<æ³<æ´<æµ<æ¶<æ·<æ¸<æ¹<æº<æ»<æ¼<æ½<æ¾<æ¿<æ€<æ<æ‚<æƒ<æ„<æ…<æ‘’<㨉<㨊<㨋<㨌<ã¨"
+ "<㨎<ã¨<ã¨<㨑<㨒<㨓<㨔<㨕<㨗<㨘<𢯩<𢯪<𢯫<𢯬<𢯭<𢯮<𢯯<𢯰<𢯱<𢯲<𢯳<𢯴<𢯵<𢯶<𢯷<𢯸"
+ "<𢯹<𢯺<𢯻<𢯼<𢯽<𢯾<𢯿<𢰀<ð¢°<𢰂<𢰃<𢰄<𢰅<𢰆<𢰇<𢰈<𢰉<𢰊<𢰋<𢰌<ð¢°<𢰎<"
+ "ð¢°<ð¢°<𢰑<𢰒<𢰓<𢰔<𢰕<𢰖<𢰗<𢰘<𢰙<𢰚<𢰛<𢰜<ð¢°<𢰞<𢰟<𢰠<𢰡<𢰢<𢰣<𢰤<𢰥"
+ "<𢰦<𢰧<𢰨<𢰩<𢰪<𢰫<𢰬<𢰭<𢰮<𢰯<𢰰<𢰱<𢰲<𢰳<𢰴<𢰵<𢰶<𢰷<𢰸<𢰹<𢰺<𢰻<"
+ "𢰼<𢰽<𢰾<𢱀<ð¢±<𢱂<𢱃<𢱄<𢱅<𢱆<𢱇<𢱈<𢱉<𢱊<𢱋<𢱌<ð¢±<𢱎<ð¢±<ð¢±<𢱑<𢱒<𢱓"
+ "<𢱔<𢱕<𢱖<𢱗<𢱘<𢱙<𢱚<𢱛<𢱜<ð¢±<𢱞<æ„<æ‘’<æ¤<𢯱<æ†<æ‡<æˆ<æ‰<æŠ<æ‹<æŒ<æ<æŽ<æ<æ<æ‘<æ’"
+ "<æ“<æ”<æ•<æ–<æ—<æ˜<æ™<æš<æ›<æœ<æ<æž<æŸ<æ <æ¡<æ¢<æ£<æ¤<æ¥<æ¦<æ§<æ¨<æ©<æª<æ«<æ¬<æ­<æ®<æ¯<æ°<æ²<æ³<æ´<æµ"
+ "<æ¶<æ·<æ¸<æ¹<æº<æ»<æ¼<æ½<æ¾<æ¿<æ‘€<æ‘<æ‘‚<摃<æ‘„<æ‘…<摆<摇<摈<摉<æ‘Š<㨖<㨙<㨚<㨛<㨜<ã¨<㨞<㨟<㨠<㨡<㨢<㨣<㨤"
+ "<㨥<㨦<㨧<㨨<㨩<㨪<㨫<㨬<𢱟<𢱠<𢱡<𢱢<𢱣<𢱤<𢱥<𢱦<𢱧<𢱨<𢱩<𢱪<𢱫<𢱬<𢱭<𢱮<𢱯<"
+ "𢱰<𢱱<𢱲<𢱳<𢱴<𢱵<𢱶<𢱷<𢱸<𢱹<𢱺<𢱻<𢱼<𢱽<𢱾<𢱿<𢲀<ð¢²<𢲂<𢲃<𢲄<𢲅<𢲆"
+ "<𢲇<𢲈<𢲉<𢲊<𢲋<𢲌<ð¢²<𢲎<ð¢²<ð¢²<𢲑<𢲒<𢲓<𢲔<𢲕<𢲖<𢲗<𢲘<𢲙<𢲚<𢲛<𢲜<"
+ "ð¢²<𢲞<𢲟<𢲠<𢲡<𢲢<𢲣<𢲤<𢲥<𢲦<𢲧<𢲨<𢲩<𢲪<𢲫<𢲬<𢲭<𢲮<𢲯<𢲰<𢲱<𢲲<æœ<"
+ "æ¢<æ…<æ‘‹<æ‘Œ<æ‘<æ‘Ž<æ‘<æ‘<æ‘‘<æ‘“<æ‘”<æ‘•<æ‘—<摘<æ‘™<æ‘š<æ‘›<æ‘œ<æ‘<æ‘ž<æ‘Ÿ<æ‘ <æ‘¡<æ‘¢<æ‘£<摤<æ‘¥<摦<摧<摨<æ‘©<摪<æ‘«<摬<"
+ "æ‘­<æ‘®<摯<æ‘°<摱<摲<摳<æ‘´<摵<摶<æ‘·<摸<摹<摺<æ‘»<摼<摽<摾<æ‘¿<æ’€<æ’<æ’‚<æ’ƒ<æ’„<æ’‡<㨭<㨮<㨯<㨰<㨱<㨲<㨳<㨴<㨵<"
+ "㨶<㨷<㨸<㨹<㨺<㨻<㨼<㨽<㨾<㨿<ã©€<ã©<ã©‚<𢲳<𢲴<𢲵<𢲶<𢲷<𢲸<𢲹<𢲺<𢲻<𢲼<𢲽<𢲾<𢲿<𢳀<"
+ "ð¢³<𢳂<𢳃<𢳄<𢳅<𢳆<𢳇<𢳈<𢳉<𢳊<𢳋<𢳌<ð¢³<𢳎<ð¢³<ð¢³<𢳑<𢳒<𢳓<𢳔<𢳕<𢳖<𢳗"
+ "<𢳘<𢳙<𢳚<𢳛<𢳜<ð¢³<𢳞<𢳟<𢳠<𢳡<𢳢<𢳣<𢳤<𢳥<𢳦<𢳧<𢳨<𢳩<𢳪<𢳫<𢳬<𢳭<"
+ "𢳮<𢳯<𢳰<𢳱<𢳲<𢳳<𢳴<𢳵<𢳶<𢳷<𢳸<𢳹<𢳺<𢳻<𢳼<𢳽<𢳾<𢳿<𢴀<ð¢´<𢴂<𢴃<𢴄"
+ "<𢴅<𢴆<𢴇<𢴈<𢴉<𢴊<𢴋<𢴌<ð¢´<𢴎<ð¢´<ð¢´<𢴑<𢴒<𢴓<𢴔<𢴕<𢴖<𢴗<𢴘<𢴙<𢴚<"
+ "𢴛<𢴜<ð¢´<𢴞<𢴟<æ…<㨮<æ‘©<摾<æ‘·<æ±<æ‘–<æ’…<æ’†<æ’ˆ<æ’‰<æ’Š<æ’‹<æ’Œ<æ’<æ’Ž<æ’<æ’<æ’‘<æ’’<æ’“<æ’”<æ’•<æ’–<æ’—<æ’˜<æ’™"
+ "<æ’š<æ’›<æ’œ<æ’<æ’ž<æ’Ÿ<æ’ <æ’¡<æ’¢<æ’£<æ’¤<æ’¥<æ’¦<æ’§<æ’¨<æ’©<æ’ª<æ’«<æ’¬<æ’­<æ’®<æ’¯<æ’°<æ’±<æ’²<æ’³<æ’´<æ’µ<æ’¶<æ’·<æ’¸<æ’¹<æ’º<擆"
+ "<㩃<ã©„<ã©…<㩆<㩇<㩈<㩉<ã©Š<ã©‹<ã©Œ<ã©<ã©Ž<ã©<ã©<ã©‘<𢴠<𢴡<𢴢<𢴣<𢴤<𢴥<𢴦<𢴧<𢴨<𢴩<𢴪<𢴫<"
+ "𢴬<𢴭<𢴮<𢴯<𢴰<𢴱<𢴲<𢴳<𢴴<𢴵<𢴶<𢴷<𢴸<𢴹<𢴺<𢴻<𢴼<𢴽<𢴾<𢴿<𢵀<ð¢µ<𢵂"
+ "<𢵃<𢵄<𢵅<𢵆<𢵇<𢵈<𢵉<𢵊<𢵋<𢵌<ð¢µ<𢵎<ð¢µ<ð¢µ<𢵑<𢵒<𢵓<𢵔<𢵕<𢵖<𢵗<𢵘<"
+ "𢵙<𢵚<𢵛<𢵜<ð¢µ<𢵞<𢵟<𢵠<𢵡<𢵢<𢵣<𢵤<𢵥<𢵦<𢵧<𢵨<𢵩<𢵪<𢵫<𢵬<𢵭<𢵮<𢵯"
+ "<𢵰<𢵱<𢵲<𢵳<𢵴<𢵵<𢵶<𢵷<𢵸<𢵹<𢵺<𢵻<𢵼<𢵽<𢵾<𢷅<æ’š<æ’<æ’»<æ’¼<æ’½<æ’¾<æ’¿<æ“€<æ“<æ“‚"
+ "<擃<æ“„<æ“…<擇<擈<擉<æ“Š<æ“‹<æ“Œ<æ“<æ“Ž<æ“<æ“<æ“‘<æ“’<æ““<æ“”<æ“•<æ“–<æ“—<擘<æ“™<æ“š<æ“›<æ“œ<æ“<æ“ž<ã©’<ã©“<ã©”<ã©•<ã©–<ã©—<㩘"
+ "<ã©™<𢵿<𢶀<ð¢¶<𢶂<𢶃<𢶄<𢶅<𢶆<𢶇<𢶈<𢶉<𢶊<𢶋<𢶌<ð¢¶<𢶎<ð¢¶<ð¢¶<𢶑<𢶒<𢶓<𢶔"
+ "<𢶕<𢶖<𢶗<𢶘<𢶙<𢶚<𢶛<𢶜<ð¢¶<𢶞<𢶟<𢶠<𢶡<𢶢<𢶣<𢶤<𢶥<𢶦<𢶧<𢶨<𢶩<𢶪<"
+ "𢶫<𢶬<𢶭<𢶮<𢶯<𢶰<𢶱<𢶲<𢶳<𢶴<𢶵<𢶶<𢶷<𢶸<𢶹<𢶺<𢶻<𢶼<𢶽<𢶾<𢶿<𢷀<ð¢·"
+ "<𢷂<𢷃<𢷄<𢷆<𢷇<𢷈<𢷉<𢷊<擄<擟<擠<擡<擢<擣<擤<擦<擧<擨<擩<擪<擫<擬<擭<擮<擯<擰<擱<㩚<㩛<㩜"
+ "<ã©<ã©ž<ã©Ÿ<𢷋<𢷌<ð¢·<𢷎<ð¢·<ð¢·<𢷑<𢷒<𢷓<𢷔<𢷕<𢷖<𢷗<𢷘<𢷙<𢷚<𢷛<𢷜<ð¢·<𢷞<"
+ "𢷟<𢷠<𢷡<𢷢<𢷣<𢷤<𢷥<𢷦<𢷧<𢷨<𢷩<𢷪<𢷫<𢷬<𢷭<𢷮<𢷯<𢷰<𢷱<𢷲<𢷳<𢷴<𢷵"
+ "<æ“¥<擲<擳<æ“´<擵<擶<æ“·<擸<擹<擺<æ“»<擼<擽<擾<æ“¿<攀<æ”<攂<攃<攄<æ”…<攆<ã© <ã©¡<ã©¢<ã©£<㩤<ã©¥<㩦<㩧<㩨<ã©©<㩪<ã©«"
+ "<𢷶<𢷷<𢷸<𢷹<𢷺<𢷻<𢷼<𢷽<𢷾<𢷿<𢸀<ð¢¸<𢸂<𢸃<𢸄<𢸅<𢸆<𢸇<𢸈<𢸉<𢸊<𢸋<"
+ "𢸌<ð¢¸<𢸎<ð¢¸<ð¢¸<𢸑<𢸒<𢸓<𢸔<𢸕<𢸖<𢸗<𢸘<𢸙<𢸚<𢸛<𢸜<ð¢¸<𢸞<𢸟<𢸠<𢸡<𢸢"
+ "<攇<攈<攉<攊<攋<攌<æ”<攎<æ”<æ”<æ”’<㩬<ã©­<𢸣<𢸤<𢸥<𢸦<𢸧<𢸨<𢸩<𢸪<𢸫<𢸬<𢸭<𢸮<𢸯<𢸰"
+ "<𢸱<𢸲<𢸳<𢸴<𢸵<𢸶<𢸷<𢸸<𢸹<𢸺<𢸻<𢸼<𢸽<𢸾<𢸿<𢹀<ð¢¹<𢹂<𢹃<𢹄<𢹅<𢹆<"
+ "𢹇<𢹈<𢹉<𢹊<𢹋<𢹌<㩬<攑<攓<æ””<攕<æ”–<æ”—<攘<æ”™<攚<ã©®<㩯<ã©°<ð¢¹<𢹎<ð¢¹<ð¢¹<𢹑<𢹒<𢹓<𢹔<"
+ "𢹕<𢹖<𢹗<𢹘<𢹙<𢹚<𢹛<𢹜<ð¢¹<𢹞<𢹟<𢹠<𢹡<𢹣<𢹤<𢹥<𢹦<𢹧<𢹨<𢹩<𢹪<𢹫<æ”›<"
+ "攜<æ”<㩱<㩲<㩳<ã©´<𢹢<𢹬<𢹭<𢹮<𢹯<𢹰<𢹱<𢹲<𢹳<𢹴<𢹵<𢹶<𢹷<𢹸<𢹹<𢹺<𢹻<𢹼<𢹽"
+ "<𢹾<𢹿<𢺀<ð¢º<攞<攟<æ” <攡<攢<攣<攤<攦<攧<𢺂<𢺃<𢺄<𢺅<𢺆<𢺇<𢺈<𢺉<𢺊<𢺋<𢺌<ð¢º<"
+ "𢺎<ð¢º<ð¢º<𢺑<𢺒<𢺓<𢺔<𢺕<攥<攨<攩<攪<攫<㩵<㩶<ã©·<𢺖<𢺗<𢺘<𢺙<𢺚<𢺛<𢺜<ð¢º<攬<æ”­<"
+ "𢺞<𢺟<𢺠<𢺡<𢺢<𢺣<𢺤<𢺥<𢺦<𢺧<𢺨<𢺩<𢺪<𢺫<攮<㩸<㩹<𢺬<𢺭<𢺮<𢺯<𢺰<𢺱<𢺲"
+ "<𢺳<𢺴<支<æ”°<𢺵<𢺶<㩺<𢺷<𢺸<𢺹<𢺺<𢺻<𢺼<𢺽<æ”±<𢺾<𢺿<𢻀<ã©»<㩼<ð¢»<𢻂<𢻃<𢻄<"
+ "𢻅<𢻆<𢻇<𢻉<㩽<𢻊<𢻋<𢻌<ð¢»<攲<㩾<𢻎<ð¢»<ð¢»<𢻑<𢻒<𢻓<𢻔<𢻕<𢻖<𢻗<𢻘<𢻙<𢻚"
+ "<𢻛<𢻜<ð¢»<𢻞<𢻟<攳<𢻠<𢻡<𢻢<𢻣<𢻤<𢻥<𢻦<𢻧<𢻨<𢻩<𢻪<æ”´<攵<收<æ”·<攸<改<攺<æ”»<攼"
+ "<ã©¿<㪀<𢻫<𢻬<𢻭<𢻮<𢻯<𢻰<𢻱<𢻲<攽<放<政<ãª<㪂<𢻳<𢻴<𢻵<𢻶<𢻷<𢻸<𢻹<𢻺<𢻻<𢻼"
+ "<𢻽<𢻾<𢻿<𢼀<ð¢¼<𢼂<𢼃<𢼄<𢼅<𢼆<𢼇<𢼈<æ•€<æ•<æ•‚<敃<æ•„<æ•…<㪃<㪄<㪅<㪆<𢼉<𢼊<𢼋<𢼌"
+ "<ð¢¼<𢼎<ð¢¼<ð¢¼<𢼑<𢼒<𢼓<𢼔<𢼕<𢼖<𢼗<𢼘<𢼙<𢼚<敆<敇<效<敉<æ•Š<æ•‹<æ•Œ<㪇<㪈<㪉<𢼛<𢼜"
+ "<ð¢¼<𢼞<𢼟<𢼠<𢼡<𢼢<𢼣<𢼤<𢼥<𢼦<𢼧<𢼨<𢼩<𢼪<𢼫<𢼬<𢼭<𢼮<𢼯<𢼰<𢼱<𢼲<"
+ "𢼳<𢼴<𢼵<𢼶<𢼷<𢼸<ð£‹<å•Ÿ<æ•<æ•Ž<æ•<æ•<æ•‘<æ•’<æ•“<æ•”<æ••<æ•–<æ•—<敘<æ•™<æ•š<æ•›<㪊<㪋<㪌<ãª<㪎<𢼹<𢼺"
+ "<𢼻<𢼼<𢼽<𢼾<𢼿<𢽀<ð¢½<𢽂<𢽃<𢽄<𢽅<𢽆<𢽇<𢽈<𢽉<𢽊<𢽋<𢽌<ð¢½<𢽎<ð¢½<ð¢½<"
+ "𢽑<𢽒<𢽓<𢽔<𢽕<𢽖<𢽗<𢽘<𢽙<𢽜<𢽷<æ•<æ•–<æ•<æ•œ<æ•<æ•ž<æ•Ÿ<æ• <æ•¡<æ•¢<æ•£<敤<æ•¥<敦<敧<敨<æ•©<敪"
+ "<æ•­<ãª<ãª<㪑<㪒<㪓<㪔<㪕<㪖<㪗<㪘<㪙<㪚<𢽚<𢽛<ð¢½<𢽞<𢽟<𢽠<𢽡<𢽢<𢽣<𢽤<𢽥<𢽦<𢽧<𢽨"
+ "<𢽩<𢽪<𢽫<𢽬<𢽭<𢽮<𢽯<𢽰<𢽱<𢽲<𢽳<𢽴<𢽵<𢽶<𢽸<𢽹<𢽺<𢽻<𢽼<𢽽<𢽾<𢾣<敫"
+ "<敬<æ•®<敯<æ•°<㪛<㪜<ãª<㪞<㪟<𢽿<𢾀<ð¢¾<𢾂<𢾃<𢾄<𢾅<𢾆<𢾇<𢾈<𢾉<𢾊<𢾋<𢾌<ð¢¾<𢾎<"
+ "ð¢¾<ð¢¾<𢾑<𢾒<𢾓<𢾔<𢾕<𢾖<𢾗<𢾘<𢾙<𢾚<𢾛<𢾜<ð¢¾<𢾞<𢾟<𢾠<𢾡<𢾢<𢾤<敬<敱<敲"
+ "<敳<㪠<㪡<㪢<㪣<𢾦<𢾧<𢾨<𢾩<𢾪<𢾫<𢾬<𢾭<𢾮<𢾯<𢾰<𢾱<𢾲<𢾳<𢾴<𢾵<𢾶<𢾷<𢾸<"
+ "𢾹<𢾺<𢾻<𢾼<𢾽<𢾾<𢾿<𢿀<ð¢¿<𢿂<𢿃<𢿄<𢿅<æ•´<敵<敶<æ•·<數<敹<敺<æ•»<㪤<㪥<㪦<𢿇<𢿈<"
+ "𢿉<𢿊<𢿋<𢿌<ð¢¿<𢿎<ð¢¿<ð¢¿<𢿑<𢿒<𢿓<𢿔<𢿕<𢿖<𢿗<𢿘<𢿙<𢿚<𢿛<𢿜<ð¢¿<數<敼<敽"
+ "<敾<敿<㪧<㪨<㪩<㪪<𢿞<𢿟<𢿠<𢿡<𢿢<𢿣<𢿤<𢿥<𢿦<𢿧<𢿨<𢿩<𢿪<𢿫<𢿬<𢿭<𢿮<𢿯<"
+ "𢿰<𢿱<𢿲<𢿳<𢿴<𢿵<𢿶<𢿷<𢿸<𢿹<𢿺<𢿻<𢿼<𢿽<æ–€<æ–<æ–‚<𢿾<𢿿<𣀀<ð£€<𣀂<𣀃<𣀅"
+ "<𣀆<𣀇<𣀈<𣀉<𣀊<𣀋<𣀌<ð£€<𣀎<ð£€<𣀊<æ–ƒ<è´<㪫<㪬<𣀄<ð£€<𣀑<𣀒<𣀓<𣀔<𣀕<𣀖<𣀗"
+ "<𣀘<𣀙<𣀚<æ–„<𣀛<𣀜<ð£€<𣀞<𣀟<𣀠<𣀡<𣀢<ð© ®<æ–…<æ–†<㪭<𣀣<𣀤<𣀥<𣀦<𣀧<𣀨<𣀩<𣀪"
+ "<𣀫<𣀬<𣀭<𩠰<㪮<𣀮<𣀯<𣀰<𣀱<𣀲<𣀳<𣀴<𣀵<𣀶<𣀷<𣀸<𣀹<𣀺<𣀻<𣀼<𣀽<𣀾<𣀿"
+ "<ð£€<æ–‡<ð£<æ–ˆ<㪯<ð£‚<æ–‰<ð£ƒ<ð£„<ð£…<ð£†<ð£‡<ð£ˆ<ð£‰<æ–Š<æ–‹<㪰<ð£Š<ð£Œ<ð£<æ–Œ<æ–<æ–Ž<æ–<ð£Ž<ð£<"
+ "ð£<ð£‘<ð£’<ð£“<æ–<æ–‘<ð£”<ð£•<ð£–<ð£š<æ–’<㪱<ð£—<ð£˜<ð£™<ð©–°<ð£›<ð£œ<ð£<ð£ž<ð£Ÿ<ð£ <ð£¡<æ–“<"
+ "ð£¢<ð££<ð£¤<ð£¥<ð£¦<æ–”<ð£§<ð£¨<æ–•<ð£©<ð£ª<æ––<ð£«<æ–—<ð£¬<㪲<㪳<æ–˜<ð£­<㪴<ð£®<ð£¯<ð£°<㪵<ð£±<ð£²"
+ "<æ–™<æ–š<㪶<ð£³<ð£´<ð£µ<ð£¶<æ–™<æ–›<æ–œ<㪷<ð£·<ð£¸<ð£¹<ð£º<ð£»<æ–<㪸<ð£¼<ð£½<ð£¾<ð£¿<𣂀<æ–ž<æ–Ÿ<ð£‚<"
+ "𣂃<𣂄<𣂅<æ– <æ–¡<𣂂<𣂆<𣂇<𣂈<㪹<𣂉<𣂊<𣂋<æ–¢<æ–£<㪺<𣂌<ð£‚<𣂎<ð£‚<ð£‚<㪻<æ–¤<𣂑<æ–¥<𣂒"
+ "<𣂓<æ–¦<æ–§<æ–¨<æ–©<𣂔<𣂕<𣂖<𣂗<𣂘<æ–ª<æ–«<㪼<㪽<𣂙<𣂚<㪾<㪿<𣂛<𣂜<ð£‚<æ–¬<æ–­<𣂞<𣂟<𣂠<æ–®"
+ "<斯<㫀<𣂡<𣂢<𣂣<𣂤<𣂥<𣂦<𣂧<𣂨<𣂩<𣂪<𣂬<𣂭<新<斱<𣂮<𣂯<𣂰<𣂱<𣂲<𣂳<𣂴<𣂵"
+ "<𥇴<æ–²<ã«<𣂶<𣂷<𣂸<𣂹<𣂺<æ–³<ã«‚<𣂻<𣂼<𣂽<𣂾<𣂿<æ–´<𣃀<ð£ƒ<𣃂<𣃃<𣃄<𣃅<𣃆<æ–µ<æ–¶"
+ "<𣃇<𣃈<𣃉<𣃊<𣃋<æ–·<𣃌<ð£ƒ<𣃎<ð£ƒ<ð£ƒ<𣃑<𣃒<𣃓<𣃔<𣃕<𣃖<æ–¸<æ–¹<㫃<𣃗<𣃘<𣃙<æ–º<"
+ "æ–»<æ–¼<ã«„<𣃚<𣃛<𣃜<æ–½<æ–¾<æ–¿<æ—€<㫆<ð£ƒ<𣃞<𣃟<𣃠<𣃡<𣃢<𣃣<𣃤<𣃥<æ—<æ—‚<æ—ƒ<æ—„<æ—…<æ—†<æ—Š<ã«…<"
+ "㫇<㫈<㫉<𣃦<𣃧<𣃨<𣃩<𣃪<𣃫<𣃬<𣃭<𣃮<𣃯<𣃰<𣃱<𣃲<æ—…<æ—‡<æ—ˆ<æ—‰<æ—‹<æ—Œ<æ—<æ—Ž<æ—<ã«Š<ã«‹<ã«Œ"
+ "<𣃳<𣃴<𣃵<𣃶<𣃷<𣃸<𣃹<𣃺<𣃻<æ—<æ—‘<ã«<𣃼<𣃽<𣃾<𣃿<𣄀<ð£„<𣄂<𣄃<𣄄<𣄅<𣄆<"
+ "𣄇<æ—’<æ—“<æ—”<æ—•<𣄈<𣄉<𣄊<𣄋<𣄌<ð£„<æ—–<æ——<𣄎<ð£„<ð£„<𣄑<𣄒<𣄓<ã«Ž<ã«<𣄔<𣄕<𣄖<æ—˜<æ—™<"
+ "𣄗<𣄘<𣄙<𣄚<𣄛<𣄜<æ—š<ð£„<æ—›<𣄞<𣄟<𣄠<𣄡<𣄢<𣄣<æ—œ<æ—<æ—ž<𣄤<æ—Ÿ<𣄥<𣄦<𣄧<𣄨<𣄩"
+ "<𣄪<𣄫<𣄬<无<旡<𣄭<𣄮<𣄯<既<𣄰<既<𣄱<𣄲<𣄳<旣<旣<𣄴<𣄵<旤<𣄶<𣄷<𣄸<𣄹<𣄺<日<"
+ "æ—¦<æ—§<𣄻<𣄼<𣄽<æ—¨<æ—©<æ—ª<æ—«<æ—¬<æ—­<æ—®<æ—¯<ã«<ã«‘<𣄾<𣄿<𣅀<ð£…<𣅂<𣅃<𣅅<æ—°<æ—±<æ—²<æ—³<æ—´<æ—µ<æ—¶<"
+ "æ—·<æ—¸<ã«’<ã«“<ã«”<ã«•<ã«–<ã«—<𣅄<𣅆<𣅇<𣅈<𣅉<𣅊<𣅋<𣅌<ð£…<𣅎<ð£…<ð£…<𣅑<𣅒<𣅓<𣅔<𣅕<"
+ "𣅖<𣅗<𣅘<𣅙<æ—¹<æ—º<æ—»<æ—¼<æ—½<æ—¾<æ—¿<昀<æ˜<昂<昃<昄<昅<昆<昇<昈<昉<昊<昋<昌<æ˜<明<æ˜<æ˜<昑<昒<易<昔<"
+ "昕<昖<昗<昘<昙<㫘<ã«™<ã«š<𣅚<𣅛<𣅜<ð£…<𣅞<𣅟<𣅠<𣅡<𣅢<𣅣<𣅤<𣅥<𣅦<𣅧<𣅨<𣅩<𣅪<"
+ "𣅫<𣅬<𣅭<𣅮<𣅯<𣅰<𣅱<𣅲<𣅳<𣅴<𣅵<𣅶<易<昚<昛<昜<æ˜<昞<星<映<昡<昢<昣<昤<春<昦<昧<昨<"
+ "昩<昪<昫<昬<昭<昮<是<昰<昱<昲<昳<昴<昵<昶<昷<昸<昹<昺<昻<昼<昽<显<昿<ã«›<ã«œ<ã«<ã«ž<ã«Ÿ<ã« <ã«¡<ã«¢<ã«£<㫤<𣅷"
+ "<𣅸<𣅹<𣅺<𣅻<𣅼<𣅽<𣅾<𣅿<𣆀<ð£†<𣆂<𣆃<𣆄<𣆅<𣆆<𣆇<𣆈<𣆊<𣆋<𣆌<ð£†<𣆎<"
+ "ð£†<ð£†<𣆑<㫤<晀<æ™<時<晃<晄<æ™…<晆<晇<晈<晉<晊<晋<晌<æ™<晎<æ™<æ™<晑<æ™’<晓<æ™”<晕<æ™–<ã«¥<㫦<㫧<㫨<ã«©<㫪"
+ "<ã««<㫬<ã«­<ã«®<𣆒<𣆓<𣆔<𣆕<𣆖<𣆗<𣆘<𣆙<𣆚<𣆛<𣆜<ð£†<𣆞<𣆟<𣆠<𣆡<𣆢<𣆣<𣆤<𣆥"
+ "<𣆦<𣆧<𣆨<𣆩<𣆪<𣆫<𣆬<𣆭<𣆮<𣆯<𣆰<𣆱<晉<å‹—<æ™—<晘<æ™™<晚<æ™›<晜<æ™<晞<晟<æ™ <晡<晢<晣<晤"
+ "<晥<晦<晧<晨<晩<曽<㫯<㫰<㫱<㫲<㫳<㫴<𣆲<𣆳<𣆴<𣆵<𣆶<𣆷<𣆸<𣆹<𣆺<𣆻<𣆼<𣆽<𣆾<𣆿<"
+ "𣇀<ð£‡<𣇂<𣇃<𣇄<𣇅<𣇆<𣇇<𣇈<𣇉<𣇊<𣇋<𣇌<ð£‡<𣇎<ð£‡<ð£‡<𣇑<𣇒<𣇓<𣇔<𣇕<𣇖"
+ "<𣇗<𣇘<𣇙<𣇚<𣇛<𣇜<ð£‡<𣇞<𣇟<𣇠<𣇡<晪<晫<晬<æ™­<æ™®<景<æ™°<æ™±<晲<晳<æ™´<晵<晶<æ™·<晸<晹<智<"
+ "æ™»<晼<晽<晾<晿<暀<æš<æš‚<暃<æš‘<㫵<㫶<ã«·<㫸<㫹<㫺<ã«»<㫼<㫽<㫾<ã«¿<㬀<𣇢<𣇣<𣇤<𣇥<𣇦<𣇧<𣇨<𣇩<"
+ "𣇪<𣇫<𣇬<𣇭<𣇮<𣇯<𣇰<𣇱<𣇲<𣇳<𣇴<𣇵<𣇶<𣇷<𣇸<𣇹<𣇺<𣇻<𣇼<𣇽<𣇾<𣇿<𣈀"
+ "<ð£ˆ<𣈂<𣈃<𣈄<𣈅<𣈆<𣈇<𣈈<𣈉<𣈊<𣈋<𣈌<ð£ˆ<𣈎<ð£ˆ<ð£ˆ<𣈑<𣈒<𣈓<𣈔<𣈕<𣈖<"
+ "𣈗<𣈘<𣈙<𣈚<𣈛<𣈜<ð£ˆ<𣈞<𣈟<𣈠<𣈡<𣈢<𣈣<æ™´<æš‘<æ™´<æš‘<æš„<æš…<暆<暇<暈<暉<暊<æš‹<暌<æš<暎"
+ "<æš<æš<æš’<æš“<æš”<æš•<æš–<æš—<暘<æš™<ã¬<㬂<㬃<㬄<㬅<㬆<㬇<㬈<㬉<㬊<㬋<㬌<𣈤<𣈥<𣈦<𣈧<𣈨<𣈩<𣈪<𣈫"
+ "<𣈬<𣈭<𣈮<𣈯<𣈰<𣈱<𣈲<𣈳<𣈴<𣈵<𣈶<𣈷<𣈸<𣈹<𣈺<𣈻<𣈼<𣈽<𣈾<𣈿<𣉀<ð£‰<"
+ "𣉂<𣉃<𣉄<𣉅<𣉆<𣉇<𣉈<𣉉<𣉊<𣉋<𣉌<ð£‰<𣉎<ð£‰<ð£‰<𣉑<暈<㬈<æšš<æš›<æšœ<æš<æšž<暟<æš <æš¡<"
+ "暢<暣<暤<暥<暦<暧<暨<ã¬<㬎<ã¬<ã¬<𣉒<𣉓<𣉔<𣉕<𣉖<𣉗<𣉘<𣉙<𣉚<𣉛<𣉜<ð£‰<𣉞<𣉟<𣉠<"
+ "𣉢<𣉣<𣉤<𣉥<𣉦<𣉧<𣉨<𣉩<𣉪<𣉫<𣉬<𣉭<𣉮<𣉯<𣉰<𣉱<𣉲<𣉳<𣉴<𣉵<𣉶<𣉷<𣉸"
+ "<𣉹<𣉺<暜<暩<暪<暫<暬<暭<暮<暯<暰<暱<暲<暳<暴<暵<暶<暷<㬑<㬒<㬓<㬔<㬕<㬖<𣉻<𣉼<𣉽<𣉾<𣉿<𣊀"
+ "<ð£Š<𣊂<𣊃<𣊄<𣊅<𣊆<𣊇<𣊈<𣊊<𣊋<𣊌<ð£Š<𣊎<ð£Š<ð£Š<𣊑<𣊓<𣊔<𣊕<𣊖<𣊗<𣊘<"
+ "𣊙<𣊚<𣊛<𣊜<ð£Š<𣋇<æš´<暸<æš¹<暺<æš»<æš¼<æš½<æš¾<æš¿<曀<æ›<曂<曃<曄<æ›…<曆<曇<曈<曉<曊<曋<曌<æ›<龧<㬗<"
+ "㬘<㬙<㬚<㬛<㬜<ã¬<㬞<㬟<𣊉<𣊞<𣊟<𣊠<𣊡<𣊢<𣊣<𣊤<𣊥<𣊦<𣊧<𣊨<𣊩<𣊪<𣊫<𣊬<𣊭<"
+ "𣊮<𣊯<𣊰<𣊱<𣊲<𣊳<𣊴<𣊵<𣊶<𣊷<𣊸<𣊹<𣊺<𣊻<𣊼<𣊽<𣊾<𣊿<𣋀<ð£‹<𣋂<𣋃<𣋄"
+ "<𣋅<𣋆<𣋈<曆<𣊸<㬙<曎<æ›<æ›<曑<æ›’<曓<æ›”<曕<æ›–<æ›—<曚<㬠<㬡<㬢<ð ž<𣋉<𣋊<𣋋<𣋌<ð£‹<𣋎<ð£‹"
+ "<ð£‹<𣋑<𣋒<𣋓<𣋔<𣋕<𣋖<𣋗<𣋘<𣋙<𣋚<𣋛<𣋜<ð£‹<曘<æ›™<æ››<曜<㬣<㬤<㬥<㬦<㬧<㬨<𠆛<𣋞"
+ "<𣋟<𣋠<𣋡<𣋢<𣋣<𣋤<𣋥<𣋦<𣋧<𣋨<𣋩<𣋪<𣋫<𣋬<𣋭<𣋮<𣋯<𣋰<𣋱<𥫂<æ›<曞<曟<æ› "
+ "<曡<曢<㬩<㬪<𣋲<𣋳<𣋴<𣋵<𣋶<𣋷<𣋸<𣋹<𣋺<𣋻<𣋼<𣋽<𣋾<曣<曤<曥<曦<曧<曨<㬫<𣋿<𣌀<"
+ "ð£Œ<𣌂<𣌃<𣌄<𣌅<𣌆<𣌇<曩<𣌈<𣌉<𣌊<𣌋<𣌌<㬬<㬭<ð£Œ<𣌎<ð£Œ<ð£Œ<𣌑<𣌒<𣌓<𣌔<𣌕"
+ "<曪<曫<曬<㬮<𣌖<æ›­<æ›®<𣌗<𣌘<𣌙<𣌛<曯<㬯<𣌜<ð£Œ<𣌟<𣌠<æ›°<æ›±<曲<曳<㬰<æ›´<曵<𣌡<𣌢<æ›´<曶<"
+ "𣌣<𣌤<𣌥<𣌦<曷<𣆉<𣌧<𣌨<𣌩<𣌪<𣌫<𣌬<書<曺<𣌭<𣌮<𣌯<𣌰<𣌱<𣌲<𣌳<𣌴<𣌵<𣌶"
+ "<書<曹<æ›»<曼<𣌷<𣌸<𣌹<𣌺<曾<替<æœ<朂<𣌻<𣌼<𣌽<最<會<𣌾<𣌿<ð£€<ð£<ð£‚<朄<朅<ð£ƒ<ð£„<"
+ "ð£…<ð£†<ð£‡<ð£ˆ<ð£‰<ð£Š<朆<㬱<ð£‹<ð£Œ<ð£<ð£Ž<㬲<ð£<ð£<ð£‘<ð£’<ð£“<ð£”<ð£•<ð£–<ð£—<ð£˜<ð£™"
+ "<朇<ð£š<ð ‘±<ð£›<ð£œ<月<ð£<有<ð£ž<ð£Ÿ<ð£ <ð£¡<ð£¢<ð££<ð£Ÿ<朊<朋<朌<æœ<㬳<ð£¤<朎<æœ<æœ<朑<ð£¥<"
+ "ð£¦<ð£§<ð£©<ð£ª<ð£«<ð£¬<朒<朓<朔<朕<㬴<㬵<ð£­<ð£®<朖<朗<朘<朙<朚<望<㬶<㬷<ð£±<ð£²<ð£³<ð£´<ð£µ<"
+ "ð£¶<朗<朗<望<朗<望<朜<æœ<朞<期<㬸<ð£·<ð£¸<ð£¹<ð£º<ð£»<ð£¼<ð£½<ð£¾<ð£¿<𣎀<ð£Ž<𣎂<𣎃<𦜳<朠<朡"
+ "<𣎄<𣎅<𣎆<𣎇<𣎈<𣎉<𣎊<𣎋<𣎌<朡<朢<㬺<㬻<ð£Ž<𣎎<ð£Ž<ð£Ž<𣎑<膤<㬼<㬽<㬾<𣎒<𣎓<𣎔<"
+ "𣎕<𣎖<𣎗<𣎘<𣎙<𣎓<朣<朤<朥<㬿<𣎚<𣎛<ð£Ž<𣎞<𣎟<𣎠<𣎡<𣎢<ã­€<𣎜<𣎣<𣎤<𣎥<𣎦<"
+ "𣎧<𣎨<𦡖<𣎜<朦<𣎩<𣎪<𣎫<𣎬<𣎭<朧<𣎮<𣎯<𣎰<𣎱<𣎲<木<朩<𣎳<𣎴<未<末<本<札<朮<术<"
+ "朰<𣎵<𣎶<𣎷<朱<朲<朳<朴<朵<朶<朷<朸<朹<机<朻<朼<朽<朾<朿<æ€<æ<æ‚<æƒ<ã­<𣎸<𣎹<𣎺<𣎻<𣎼<𣎽"
+ "<𣎾<𣎿<ð£€<æ„<æ…<æ†<æ‡<æˆ<æ‰<æŠ<æ‹<æŒ<æ<æŽ<æ<æ<æ‘<æ’<æ“<æ”<æ•<æ–<æ—<æ˜<æ™<æš<æ›<æœ<æ<æž<æŸ<æ <"
+ "æ¡<æ¢<æ£<æ¤<æ¥<æ¦<æ§<æ¨<æ©<æž<ã­‚<ã­ƒ<ã­„<ã­…<ã­†<ð£<ð£‚<ð£ƒ<ð£„<ð£…<ð£†<ð£‡<ð£ˆ<ð£‰<ð£Š<ð£‹<ð£Œ<ð£"
+ "<ð£Ž<ð£<ð£<ð£‘<ð£’<ð£“<æŽ<æ–<æž<æ“<ð£ƒ<æª<æ«<æ¬<æ­<æ®<æ¯<æ°<æ±<æ²<æ³<æ´<æµ<æ¶<æ·<æ¸<æ¹<æº<æ»<æ¼<"
+ "æ½<æ¾<æ¿<枀<æž‚<枃<æž„<æž…<枆<枇<枈<枉<枊<æž‹<枌<æž<枎<æž<æž<æž‘<æž’<æž“<æž”<æž•<æž–<æž—<枘<æž™<æžš<æž›<æžœ<æž<æžž<枟<"
+ "æž <æž¡<枢<枣<枤<枥<枦<枧<枨<æž©<枪<æž«<枬<æž­<ã­‡<ã­ˆ<ã­‰<ã­Š<ã­‹<ã­Œ<ã­<ã­Ž<ã­<ã­<ð£”<ð£•<ð£–<ð£—<ð£˜<ð£™<ð£š"
+ "<ð£›<ð£œ<ð£<ð£ž<ð£Ÿ<ð£ <ð£¡<ð£¢<ð££<ð£¤<ð£¥<ð£¦<ð£§<ð£¨<ð£©<ð£ª<ð£«<ð£¬<ð£­<ð£®<ð£¯<ð£°<"
+ "ð£±<ð£²<ð£³<ð£´<ð£µ<ð£¶<ð£·<ð£¸<ð£¹<ð£º<ð£»<ð£¼<ð£½<ð£¾<ð£¿<ð£€<ð£<ð£‚<ð£ƒ<ð£„<ð£…<ð£†<ð£‡"
+ "<æ»<æž—<ð£•<ã­‰<æž…<æž®<枯<æž°<æž±<æž²<æž³<æž´<æžµ<架<æž·<枸<æž¹<枺<æž»<æž¼<æž½<æž¾<æž¿<柀<æŸ<柂<柃<柄<柅<柆<柇<柈<柉<"
+ "柊<柋<柌<æŸ<柎<æŸ<æŸ<柑<柒<染<柔<柕<柖<柗<柘<柙<柚<柛<柜<æŸ<柞<柟<柠<柡<柢<柣<柤<查<柦<柧<柨<柩<柪<柫<"
+ "柬<柭<柮<柯<柰<柱<柲<柳<柴<柵<柶<柷<柸<柹<柺<査<柼<柽<柾<柿<æ €<æ <æ ‚<æ ƒ<æ „<æ …<æ †<æ ‡<æ ˆ<æ ‰<æ Š<æ ‹<æ Œ<æ <"
+ "æ Ž<æ <æ <æ ‘<ã­‘<ã­’<ã­“<ã­”<ã­•<ã­–<ã­—<ð£ˆ<ð£‰<ð£Š<ð£‹<ð£Œ<ð£<ð£Ž<ð£<ð£<ð£‘<ð£’<ð£“<ð£”<ð£•<ð£–<"
+ "ð£—<ð£˜<ð£™<ð£š<ð£›<ð£œ<ð£<ð£ž<ð£Ÿ<ð£ <ð£¡<ð£¢<ð££<ð£¤<ð£¥<ð£¦<ð£§<ð£¨<ð£©<ð£ª<ð£«<ð£¬<ð£­"
+ "<ð£®<ð£¯<ð£°<ð£±<ð£²<ð£³<ð£´<柳<柺<æ ’<æ “<æ ”<æ •<æ –<æ —<æ ˜<æ ™<æ š<æ ›<æ œ<æ <æ ž<æ Ÿ<æ  <æ ¡<æ ¢<æ £<æ ¤<æ ¥<æ ¦<"
+ "æ §<æ ¨<æ ©<æ ª<æ «<æ ¬<æ ­<æ ®<æ ¯<æ °<æ ±<æ ²<æ ³<æ ´<æ µ<æ ¶<æ ·<æ ¸<æ ¹<æ º<æ »<æ ¼<æ ½<æ ¾<æ ¿<æ¡€<æ¡<æ¡‚<桃<æ¡„<æ¡…<框<桇<案<"
+ "桉<æ¡Š<æ¡‹<æ¡Œ<æ¡<æ¡Ž<æ¡<æ¡<æ¡‘<æ¡’<æ¡“<æ¡”<æ¡•<æ¡–<æ¡—<桘<æ¡™<æ¡š<æ¡›<æ¡œ<æ¡<æ¡ž<æ¡Ÿ<æ¡ <æ¡¡<æ¡¢<æ¡£<桤<æ¡¥<桦<桧<桨<æ¡©<桪<"
+ "ã­˜<ã­™<ã­š<ã­›<ã­œ<ã­<ã­ž<ã­Ÿ<ã­ <ã­¡<ã­¢<ã­£<ã­¤<ã­¥<ã­¦<ã­§<ð£µ<ð£¶<ð£·<ð£¸<ð£¹<ð£º<ð£»<ð£¼<ð£½<ð£¾<ð£¿<𣑀<"
+ "ð£‘<𣑂<𣑃<𣑄<𣑅<𣑆<𣑇<𣑈<𣑉<𣑊<𣑋<𣑌<ð£‘<𣑎<ð£‘<ð£‘<𣑑<𣑒<𣑓<𣑔<𣑕<𣑖<𣑗"
+ "<𣑘<𣑙<𣑚<𣑛<𣑜<ð£‘<𣑞<𣑟<𣑠<𣑡<𣑢<𣑣<𣑤<𣑥<𣑦<𣑨<𣑩<𣑪<𣑫<𣑬<𣑭<𣑮<"
+ "𣑯<𣑰<𣑱<𣑲<𣑳<𣑴<𣑵<𣑶<𣑷<𣑸<𣑹<𣑺<𣑻<𣑼<𣑽<𣑾<栗<桒<𣑭<栟<桫<桬<桭<桮<桯<桰"
+ "<桱<桲<桳<æ¡´<桵<桶<æ¡·<桸<桹<桺<æ¡»<桼<桽<桾<æ¡¿<梀<æ¢<梂<梃<梄<梅<梆<梇<梈<梉<梊<梋<梌<æ¢<梎<æ¢<æ¢<梑<梒"
+ "<梓<梔<梕<梖<梗<梘<梙<梚<梛<梜<æ¢<梞<梟<梠<梡<梢<梣<梤<梥<梦<梧<梨<梩<梪<梫<梬<梭<梮<梯<械<梱<梲<梳<梴"
+ "<梵<梶<梷<梸<梹<梺<梻<梼<梽<梾<梿<检<æ£<棂<ã­¨<ã­©<ã­ª<ã­«<ã­¬<ã­­<ã­®<ã­¯<ã­°<ã­±<ã­²<ã­³<ã­´<ã­µ<ã­·<𣑿<𣒀<ð£’<"
+ "𣒂<𣒃<𣒄<𣒅<𣒆<𣒇<𣒈<𣒉<𣒊<𣒋<𣒌<ð£’<𣒎<ð£’<ð£’<𣒑<𣒒<𣒓<𣒔<𣒕<𣒖<𣒗<𣒘"
+ "<𣒙<𣒚<𣒛<𣒜<ð£’<𣒞<𣒟<𣒠<𣒡<𣒢<𣒣<𣒤<𣒥<𣒦<𣒧<𣒨<𣒩<𣒪<𣒫<𣒬<𣒭<𣒮<"
+ "𣒯<𣒰<𣒱<𣒲<𣒳<𣒴<𣒵<𣒶<𣒷<𣒸<𣒹<𣒺<𣒻<𣒼<𣒽<𣒾<𣒿<𣓀<æ¢<梨<梅<梅<梎<棃<棄<"
+ "棅<棆<棇<棈<棉<棊<棋<棌<æ£<棎<æ£<æ£<棑<棒<棓<棔<棕<棖<棗<棘<棙<棚<棛<棜<æ£<棞<棟<棠<棡<棢<棣<棤<棥<棦<"
+ "棧<棨<棩<棪<棫<棬<棭<森<棯<棰<棱<棲<棳<棴<棵<棶<棷<棸<棹<棺<棻<棼<棽<棾<棿<椀<æ¤<椂<椃<椄<椅<椆<椇<椈<"
+ "椉<椊<椋<椌<æ¤<椎<æ¤<æ¤<椑<椒<椓<椔<椕<椖<椗<椘<椙<椚<椛<検<æ¤<椞<椟<椠<椡<椢<椣<椤<椥<椦<椧<椨<椩<椪<"
+ "椫<椬<椭<椮<ã­¶<ã­¸<ã­¹<ã­º<ã­»<ã­¼<ã­½<ã­¾<ã­¿<㮀<ã®<㮂<㮃<㮄<ã®…<㮆<㮇<㮈<㮉<㮊<ð£“<𣓂<𣓃<𣓄<𣓅<𣓆<𣓇"
+ "<𣓈<𣓉<𣓊<𣓋<𣓌<ð£“<𣓎<ð£“<ð£“<𣓑<𣓒<𣓓<𣓔<𣓕<𣓖<𣓗<𣓘<𣓙<𣓚<𣓛<𣓜<ð£“<"
+ "𣓞<𣓟<𣓠<𣓡<𣓢<𣓣<𣓤<𣓥<𣓦<𣓧<𣓨<𣓩<𣓪<𣓫<𣓬<𣓭<𣓮<𣓯<𣓰<𣓱<𣓲<𣓳<𣓴"
+ "<𣓵<𣓶<𣓷<𣓸<𣓹<𣓺<𣓻<𣓼<𣓽<𣓾<𣓿<𣔀<ð£”<𣔂<𣔃<𣔄<𣔅<𣔆<𣔇<𣔈<𣔉<𣔊<"
+ "𣔋<𣔌<ð£”<𣔎<ð£”<ð£”<𣔑<𣔒<𣔓<𣔔<𣔕<𣔖<𣔗<𣔘<𣔙<𣔚<𣔛<𣔜<ð£”<𣔞<𣔟<𣔠<𣔡"
+ "<𣔢<𣔣<𣔤<𣔥<𣔦<𣔧<𣔨<𣔩<𣔪<𣔫<𣔬<𣔭<𣔮<𣔯<𣔰<椔<椯<椰<椱<椲<椳<椴<椵<椶<椷<椸<"
+ "椹<椺<椻<椼<椽<椾<椿<楀<æ¥<楂<楃<楄<楅<楆<楇<楈<楉<楊<楋<楌<æ¥<楎<æ¥<æ¥<楑<楒<楓<楔<楕<楖<楗<楘<楙<楚<"
+ "楛<楜<æ¥<楞<楟<楠<楡<楢<楣<楤<楥<楦<楧<楨<楩<楪<楫<楬<業<楮<楯<楰<楱<楲<楳<楴<極<楶<楷<楸<楹<楺<楻<楼<"
+ "楽<楾<楿<榀<æ¦<概<榃<榄<榅<榆<榇<榈<榉<榋<榌<榔<榘<㮋<㮌<ã®<㮎<ã®<ã®<㮑<ã®’<㮓<ã®”<㮕<ã®–<ã®—<㮘<ã®™<㮚<ã®›<"
+ "㮜<ã®<㮞<㮟<ã® <㮢<㮣<𣔱<𣔲<𣔳<𣔴<𣔵<𣔶<𣔷<𣔸<𣔹<𣔺<𣔻<𣔼<𣔽<𣔾<𣔿<𣕀<ð£•<𣕂<"
+ "𣕃<𣕄<𣕅<𣕆<𣕇<𣕈<𣕉<𣕊<𣕋<𣕌<ð£•<𣕎<ð£•<ð£•<𣕑<𣕒<𣕓<𣕔<𣕕<𣕖<𣕗<𣕘<𣕙"
+ "<𣕚<𣕛<𣕜<ð£•<𣕞<𣕟<𣕠<𣕡<𣕢<𣕣<𣕥<𣕦<𣕧<𣕨<𣕩<𣕪<𣕫<𣕬<𣕭<𣕮<𣕯<𣕰<"
+ "𣕱<𣕲<𣕳<𣕴<𣕵<𣕶<𣕷<𣕸<𣕹<𣕺<𣕻<𣕼<𣕽<𣕾<𣕿<𣖀<ð£–<𣖂<𣖃<𣖄<𣖅<𣖆<𣖇"
+ "<𣖈<𣖉<𣖊<𣖋<𣖌<ð£–<𣖎<ð£–<ð£–<𣖑<𣖒<𣖓<𣖔<𣖕<𣖖<𣖗<𣖘<𣖙<𣖚<𣖛<𣖜<ð£–<"
+ "𣖞<𣖟<𣖠<𣖡<𣖢<𣖣<𣖤<𣖥<𣖦<𣖧<𣖨<𣖩<﨓<ã®<ã®<楂<榊<æ¦<榎<æ¦<æ¦<榑<榒<榓<榕<榖<榗<榙<"
+ "榚<榛<榜<æ¦<榞<榟<榠<榡<榢<榣<榤<榥<榦<榧<榨<榩<榪<榫<榬<榭<榮<榯<榰<榱<榲<榳<榴<榵<榶<榷<榸<榹<榺<榻<"
+ "榼<榽<榾<榿<槀<æ§<槂<槃<槄<槅<槆<槇<槈<槉<槊<構<槌<æ§<槎<æ§<æ§<槑<槒<槓<槔<槕<槖<槗<様<槙<槚<槛<槜<æ§<"
+ "槞<槟<槠<槡<槩<樮<㮤<㮥<㮦<㮧<㮨<㮩<㮪<㮫<㮬<㮭<㮮<㮯<㮰<㮱<㮲<㮳<㮴<㮵<㮶<㮷<㮸<㮹<㮺<㮻<㮼<㮽<𣕤<"
+ "𣖪<𣖫<𣖬<𣖭<𣖮<𣖯<𣖰<𣖱<𣖲<𣖳<𣖴<𣖵<𣖶<𣖷<𣖸<𣖹<𣖺<𣖻<𣖼<𣖽<𣖾<𣖿<𣗀"
+ "<ð£—<𣗂<𣗃<𣗄<𣗅<𣗆<𣗇<𣗈<𣗉<𣗊<𣗋<𣗌<ð£—<𣗎<ð£—<ð£—<𣗑<𣗒<𣗓<𣗔<𣗕<𣗖<"
+ "𣗗<𣗘<𣗙<𣗚<𣗛<𣗜<ð£—<𣗞<𣗟<𣗠<𣗡<𣗢<𣗣<𣗤<𣗥<𣗦<𣗧<𣗨<𣗩<𣗪<𣗫<𣗬<𣗭"
+ "<𣗮<𣗯<𣗰<𣗱<𣗲<𣗳<𣗴<𣗵<𣗶<𣗷<𣗸<𣗹<𣗺<𣗻<𣗼<𣗽<𣗾<𣗿<𣘀<ð£˜<𣘂<𣘃<"
+ "𣘄<𣘅<𣘆<𣘇<𣘈<𣘉<𣘊<𣘋<𣘌<ð£˜<𣘎<ð£˜<ð£˜<𣘑<𣘒<𣘓<𣘔<﨔<榣<槢<槣<槤<槥<槦<槧<槨"
+ "<槪<槫<槬<槭<槮<槯<槰<槱<槲<槳<槴<槵<槶<槷<槸<槹<槺<槻<槼<槽<槾<槿<樀<æ¨<樂<樃<樄<樅<樆<樇<樈<樉<樊<樋"
+ "<樌<æ¨<樎<æ¨<æ¨<樑<樒<樓<樔<樕<樖<樗<樘<標<樚<樛<樜<æ¨<樞<樟<樠<模<樢<樣<樤<樥<樦<樧<樨<権<横<樫<樬<樭"
+ "<樯<樰<樱<æ©¥<æ©´<㮾<㮿<㯀<ã¯<㯂<㯃<㯄<㯅<㯆<㯇<㯈<㯉<㯊<㯋<㯌<ã¯<㯎<ã¯<㯑<㯒<㯠<𣘕<𣘖<𣘗<𣘘<𣘙<"
+ "𣘚<𣘛<𣘜<ð£˜<𣘞<𣘟<𣘠<𣘡<𣘢<𣘣<𣘤<𣘥<𣘦<𣘧<𣘨<𣘩<𣘪<𣘫<𣘬<𣘭<𣘮<𣘯<𣘰"
+ "<𣘱<𣘲<𣘳<𣘴<𣘵<𣘶<𣘷<𣘸<𣘹<𣘺<𣘻<𣘼<𣘽<𣘾<𣘿<𣙀<ð£™<𣙂<𣙃<𣙄<𣙅<𣙆<"
+ "𣙇<𣙈<𣙉<𣙊<𣙋<𣙌<ð£™<𣙎<ð£™<ð£™<𣙑<𣙓<𣙔<𣙕<𣙖<𣙗<𣙘<𣙙<𣙚<𣙛<𣙜<ð£™<𣙞"
+ "<𣙟<𣙠<𣙡<𣙢<𣙣<𣙤<𣙥<𣙦<𣙧<𣙨<𣙩<𣙪<𣙫<𣙬<𣙭<𣙮<𣙯<𣙰<𣙱<𣙲<𣙳<𣙴<"
+ "𣙵<𣙶<𣙷<𣙸<𣙹<𣙺<樂<樓<樂<樂<槪<樲<樳<樴<樵<樶<樷<樸<樹<樺<樻<樼<樽<樾<樿<æ©€<æ©<æ©‚<橃<æ©„<æ©…<"
+ "橆<橇<橈<橉<æ©Š<æ©‹<æ©Œ<æ©<æ©Ž<æ©<æ©<æ©‘<æ©’<æ©“<æ©”<æ©•<æ©–<æ©—<橘<æ©™<æ©š<æ©›<æ©œ<æ©<æ©ž<æ©Ÿ<æ© <æ©¡<æ©¢<æ©£<橤<橦<橧<橨<"
+ "æ©©<橪<æ©«<橬<æ©­<æ©®<橯<æ©°<橱<橲<橳<橵<橶<æ©·<橸<橹<橺<æ©»<橼<ã¯<㯓<㯔<㯕<㯖<㯗<㯘<㯙<㯚<㯛<㯜<ã¯<㯞<㯟<㯡<"
+ "㯢<㯣<㯤<㯥<㯦<㯧<㯨<㯩<𣙒<𣙻<𣙼<𣙽<𣙾<𣙿<𣚀<ð£š<𣚂<𣚃<𣚄<𣚅<𣚆<𣚇<𣚈<𣚉<𣚊<"
+ "𣚋<𣚌<ð£š<𣚎<ð£š<ð£š<𣚑<𣚒<𣚓<𣚔<𣚕<𣚖<𣚗<𣚘<𣚙<𣚚<𣚛<𣚜<ð£š<𣚞<𣚟<𣚠<𣚡"
+ "<𣚢<𣚣<𣚤<𣚥<𣚦<𣚧<𣚨<𣚩<𣚪<𣚫<𣚬<𣚭<𣚮<𣚯<𣚰<𣚱<𣚲<𣚳<𣚴<𣚵<𣚶<𣚷<"
+ "𣚸<𣚹<𣚺<𣚻<𣚼<𣚽<𣚾<𣚿<𣛀<ð£›<𣛂<𣛃<𣛄<𣛅<𣛆<𣛇<𣛈<𣛉<𣛊<𣛋<𣛌<ð£›<𣛎"
+ "<ð£›<ð£›<𣛑<𣛒<𣛓<𣛔<𣛕<𣛖<𣛗<𣛘<𣛙<𣛚<𣛛<𣛜<ð£›<𣛞<𣛟<𣛠<𣛡<𣛢<𣛣<𣛤<"
+ "𣛥<𣛦<𣛧<𣛨<𣛩<𣛪<𣛫<𣛬<𣛭<𣛮<𣛯<𣚣<橽<橾<æ©¿<檀<æª<檂<檃<檄<檅<檆<檇<檈<檉<檊<檋<檌<"
+ "æª<檎<æª<æª<檑<檒<檓<檔<檕<檖<檗<檘<檙<檚<檛<檜<æª<檞<檟<檠<檡<檢<檣<檤<檥<檦<檧<檨<檩<檪<㯪<㯫<㯬<㯭<"
+ "㯮<㯯<㯰<㯱<㯲<㯳<㯴<㯵<㯶<𣛰<𣛱<𣛲<𣛳<𣛴<𣛵<𣛶<𣛷<𣛸<𣛹<𣛺<𣛻<𣛼<𣛽<𣛾<𣛿<𣜀"
+ "<ð£œ<𣜂<𣜃<𣜄<𣜅<𣜆<𣜇<𣜈<𣜉<𣜊<𣜋<𣜌<ð£œ<𣜎<ð£œ<ð£œ<𣜑<𣜒<𣜓<𣜔<𣜕<𣜖<"
+ "𣜗<𣜘<𣜙<𣜚<𣜛<𣜜<ð£œ<𣜞<𣜟<𣜠<𣜡<𣜣<𣜤<𣜥<𣜦<𣜧<𣜨<𣜩<𣜪<𣜫<𣜬<𣜭<𣜮"
+ "<𣜯<𣜰<𣜱<𣜲<𣜳<𣜴<𣜵<𣜶<𣜷<𣜸<𣜹<𣜺<𣜻<𣜼<𣜽<𣜾<𣜿<ð£€<檨<檫<檬<檭<檮<檯<檰"
+ "<檱<檲<檳<檴<檵<檶<檷<檸<檹<檺<檻<檼<檽<檾<檿<æ«€<æ«<æ«‚<櫃<æ«„<æ«…<櫆<櫇<櫈<櫉<æ«Š<㯷<㯸<㯹<㯺<㯻<㯼<㯽<"
+ "ð£<ð£‚<ð£ƒ<ð£„<ð£…<ð£†<ð£‡<ð£ˆ<ð£‰<ð£Š<ð£‹<ð£Œ<ð£<ð£Ž<ð£<ð£<ð£‘<ð£’<ð£“<ð£”<ð£•<ð£–<ð£—"
+ "<ð£˜<ð£š<ð£›<ð£œ<ð£<ð£ž<ð£Ÿ<ð£ <ð£¡<ð£¢<ð££<ð£¤<ð£¥<ð£¦<ð£§<ð£¨<ð£©<ð£ª<ð£«<ð£¬<ð£­<ð£®<"
+ "ð£¯<ð£°<ð£±<ð£²<ð£³<ð£´<ð£µ<ð£¶<ð£·<ð£¸<ð£¹<ð£º<ð£»<ð£¼<ð£½<ð£¾<ð£¿<𣞀<ð£ž<𣞂<𣞃<𣞄<𣞅"
+ "<𣞆<𣞇<𣞈<𣞉<𣞊<𣞋<𣞌<ð£ž<𣞎<æ«‹<æ«Œ<æ«<æ«Ž<æ«<æ«<æ«‘<æ«’<æ«“<æ«”<æ«•<æ«–<æ«—<櫘<æ«™<æ«š<æ«›<æ«œ<æ«<æ«ž<"
+ "æ«Ÿ<æ« <æ«¡<æ«¢<æ«£<櫤<æ«¥<櫦<æ««<æ«­<㯾<㯿<ã°€<ã°<ã°‚<ã°ƒ<ã°„<ã°…<ã°†<ã°‡<ã°ˆ<ð£™<ð£ž<𣞑<𣞒<𣞓<𣞔<𣞕<𣞖<𣞗"
+ "<𣞘<𣞙<𣞚<𣞛<𣞜<ð£ž<𣞞<𣞟<𣞠<𣞡<𣞢<𣞣<𣞤<𣞥<𣞦<𣞧<𣞨<𣞩<𣞪<𣞫<𣞬<𣞭<"
+ "𣞮<𣞯<𣞰<𣞱<𣞲<𣞳<𣞴<𣞵<𣞶<𣞷<𣞸<𣞹<𣞺<𣞻<𣞼<𣞽<𣞾<𣞿<𣟀<ð£Ÿ<𣟂<𣟃<𣟑"
+ "<æ«“<æ«›<櫧<櫨<æ«©<櫪<櫬<æ«®<櫯<æ«°<櫱<櫲<櫳<æ«´<櫵<櫶<ã°‰<ã°Š<ã°‹<ã°Œ<ã°<ã°Ž<ã°<ã°<ã°‘<ã°’<ã°“<ã°–<𣟄<𣟅<𣟆<𣟇"
+ "<𣟈<𣟉<𣟊<𣟋<𣟌<ð£Ÿ<𣟎<ð£Ÿ<ð£Ÿ<𣟒<𣟓<𣟔<𣟕<𣟖<𣟗<𣟘<𣟙<𣟚<𣟛<𣟜<ð£Ÿ<𣟞<"
+ "𣟟<𣟠<𣟡<𣟢<𣟣<𣟤<𣟥<𣟦<𣟧<𣟨<𣟩<𣟪<𣟫<𣟬<𣟭<𣟮<櫸<櫹<櫺<æ«»<櫼<櫽<櫾<æ«¿<欀<æ¬<"
+ "欂<欃<欄<欅<欌<㰔<㰕<𣟯<𣟰<𣟱<𣟲<𣟳<𣟴<𣟵<𣟶<𣟷<𣟸<𣟹<𣟺<𣟻<𣟼<𣟽<𣟾<𣟿<𣠀<"
+ "ð£ <𣠃<𣠄<𣠅<𣠆<𣠇<𣠈<𣠉<𣠊<𣠋<𣠌<ð£ <𣠎<ð£ <ð£ <𣠑<𣠒<𣠓<𣠔<𣠕<𣠖<𣠗<𣠘"
+ "<欄<æ«·<欆<欇<欈<欉<權<欋<æ¬<欎<ã°—<ã°˜<𣠂<𣠙<𣠚<𣠛<𣠜<ð£ <𣠞<𣠟<𣠠<𣠡<𣠢<𣠣<𣠤<𣠥<"
+ "𣠦<𣠧<𣠨<𣠩<𣠪<𣠫<𣠬<𣠭<𣠮<𣠯<𣠰<𣠱<𣠲<𣠳<𣠴<𣠵<𣠶<ã°˜<æ¬<æ¬<欑<欒<ã°™<ã°š<ã°›<ã°œ"
+ "<𣠷<𣠸<𣠹<𣠺<𣠻<𣠼<𣠽<𣠾<𣠿<𣡀<ð£¡<𣡂<𣡃<𣡄<𣡅<𣡆<𣡇<𣡈<𣡉<𣡊<欓<欔<欕<"
+ "𣡋<𣡌<ð£¡<𣡎<ð£¡<ð£¡<𣡑<𣡒<𣡓<𣡔<𣡕<𣡖<𣡗<𣡘<𣡙<𣡚<𣡛<𣡜<ð£¡<𥤔<欖<欗<欘<欙<"
+ "欚<欛<𣡞<𣡟<𣡠<𣡡<𣡢<𣡣<𣡤<𣡥<𣡦<𣡧<𣡨<欜<æ¬<𣡩<𣡪<𣡫<𣡬<𣡭<𣡮<𣡯<𣡰<𣡱<"
+ "𣡲<𣡴<𣡵<欞<欟<𣡶<𣡷<𣡸<𣡹<𣡺<𣡻<𣡼<𣡽<𣡾<𣡿<欠<次<欢<𣢀<次<欤<ã°<ã°ž<ð£¢<𣢂<𣢃"
+ "<𣢄<𣢅<𣢆<𣢇<𣢈<欣<欥<欦<欧<ã°Ÿ<ã° <ã°¡<ã°¢<𣢉<𣢊<𣢋<𣢌<ð£¢<𣢎<ð£¢<ð£¢<𣢑<𣢒<𣢓<𣢔<"
+ "𣢕<𣢖<欨<欩<欪<ã°£<ã°¤<ã°¥<ã°¦<ã°§<ã°¨<𣢗<𣢘<𣢙<𣢚<𣢛<𣢜<ð£¢<𣢞<𣢟<𣢠<𣢡<𣢢<𣢣<𣢤<𣢥"
+ "<𣢦<欫<欬<欭<欮<欯<欰<欱<㰩<㰪<㰫<㰬<㰭<𣢧<𣢨<𣢩<𣢪<𣢫<𣢬<𣢭<𣢮<𣢯<𣢰<𣢱<𣢲<𣢳<"
+ "𣢴<𣢵<𣢶<𣢷<𣢸<𣢹<𣢧<欲<欳<欴<欵<欶<欷<欸<ã°®<ã°¯<ã°°<ã°±<𣢺<𣢻<𣢼<𣢽<𣢾<𣢿<𣣀<ð££<"
+ "𣣂<𣣃<𣣄<𣣅<𣣆<𣣇<欹<欺<欻<欼<欽<款<欿<ã°²<ã°³<ã°´<ã°µ<ã°¶<ã°¸<𣣈<𣣉<𣣊<𣣋<𣣌<ð££<𣣎<ð££<"
+ "ð££<𣣑<𣣒<𣣓<𣣔<𣣕<𣣖<𣣗<𣣘<𣣙<𣣚<𣣛<𣣜<æ­€<æ­<æ­‚<æ­ƒ<æ­„<æ­…<æ­†<æ­‡<æ­ˆ<ã°¹<ã°º<ã°»<ã°¼<ã°½<ã°¾"
+ "<ð££<𣣞<𣣟<𣣠<𣣡<𣣢<𣣣<𣣤<𣣥<𣣦<𣣧<𣣨<𣣩<𣣪<𣣫<𣣭<𣣮<𣣯<𣣰<𣣱<æ­‰<æ­Š<æ­‹<æ­Œ"
+ "<æ­<ã°¿<ã±€<ã±<𣣲<𣣳<𣣴<𣣵<𣣶<𣣷<𣣸<𣣹<𣣺<𣣻<𣣼<𣣽<𣣾<𣣿<𣤀<ð£¤<𣤂<𣤃<𣤄<𣤅"
+ "<𣤆<𣤇<æ­Ž<æ­<æ­<æ­‘<æ­’<æ­“<㱂<㱃<𣤈<𣤉<𣤊<𣤋<𣤌<ð£¤<𣤎<ð£¤<ð£¤<𣤑<𣤒<𣤓<𣤔<𣤕<𣤖<"
+ "𣤗<æ­”<æ­•<æ­–<æ­—<æ­˜<æ­™<æ­š<㱄<ã±…<𣤘<𣤙<𣤚<𣤛<𣤜<ð£¤<𣤞<𣤟<æ­”<æ­›<æ­œ<æ­<㱆<㱇<㱈<㱉<𣤠<𣤡<"
+ "𣤢<𣤣<𣤤<𣤥<𣤦<𣤧<歞<歟<𣤨<𣤩<𣤪<𣤫<歠<㱊<𣤬<𣤭<𣤮<𣤯<𣤰<㱋<𣤱<𣤲<𣤳<𣤴<"
+ "𣤵<𣤷<𣤸<æ­¡<㱌<𣤶<𣤹<𣤺<𣤻<𣤼<ã±<𣤽<𣤾<㱎<𣤿<𣥀<㱎<ð£¥<æ­¢<é¾°<𣥂<æ­£<𣥃<𣥄<æ­¤<ã±<"
+ "𣥅<𣥆<æ­¥<ã±<㱑<𣥇<𣥈<𣥊<𣥋<𣥌<æ­¦<æ­§<æ­¨<æ­©<𣥉<ð£¥<𣥎<ð£¥<ð£¥<𣥑<𣥒<𣥓<𣥔<𣥕<𣥖<"
+ "𣥗<𣥘<𣥙<𣥚<𣥛<𣥜<ð£¥<𣥞<𣥟<𣥠<𣥡<æ­ª<æ­«<ã±’<㱓<ã±”<𣥢<𣥣<𣥤<æ­¬<æ­­<𣥦<𣥧<𣥨<𣥩<"
+ "𣥪<𣥫<𣥬<𣥭<𣥮<𣥯<𣥰<𣥱<𣥳<𣥴<𣥵<𣥶<𣥷<𣥸<歮<歯<㱕<㱖<𣥹<𣥺<𣥻<𣥼<𣥽<𣥾<"
+ "𣥿<𣦀<ð£¦<𣦂<𣦃<𣦄<𣦅<𣦆<æ­°<æ­±<æ­²<æ­³<𣦇<𣦈<𣦉<𣦊<𣦌<ð£¦<𣦎<𤚜<æ­²<æ­´<ã±—<ð£¦<𣦑<"
+ "𣦒<𣦓<æ­µ<æ­¶<𣦔<𣦕<𣦖<𣦗<𣦘<𣦙<𣦚<𣦛<æ­·<𣦜<ð£¦<𣦞<𣦟<𣦠<æ­·<𣦡<𣦢<𣦣<𣦤<𣦥<"
+ "歸<㱘<𣦦<𣦧<𣦨<𣦩<𣦪<𣦫<𣦬<𣦮<𣦯<𣦰<𣦱<𣦲<𣦳<𣦴<歹<𣦵<𣦶<歹<歺<𣦷<死<㱙<𣦸<"
+ "𣦹<𣦺<𣦻<𣦼<𣦽<𣦾<æ­¼<𣦿<𣧀<ð£§<𣧂<𣧃<𣧄<𣧅<𣧆<𣧇<𣧈<æ­½<æ­¾<æ­¿<殀<æ®<㱚<ã±›<㱜<ã±<"
+ "𣧉<𣧊<𣧋<𣧌<ð£§<𣧎<ð£§<ð£§<𣧑<𣧒<𣧓<𣧔<𣧕<𣧖<𣧗<𣧘<𣧙<𣧚<𣧛<𣧜<殂<殃<殄<æ®…<"
+ "殆<殇<㱞<㱟<ã± <ð£§<𣧞<𣧟<𣧠<𣧡<𣧢<𣧣<𣧤<𣧥<𣧦<𣧧<𣧨<𣧩<𣧪<𣧫<𣧬<𣧭<𣧮<𣧯<"
+ "𣧰<𣧱<殈<殉<殊<残<ã°·<㱡<𣧲<𣧳<𣧴<𣧵<𣧶<𣧷<𣧸<𣧹<𣧺<𣧻<𣧼<𣧽<𣧾<𣧿<𣨀<ð£¨<𣨂"
+ "<𣨃<𣨄<殌<æ®<殎<æ®<æ®<殑<æ®’<殓<ã±¢<ã±£<𣨅<𣨆<𣨇<𣨈<𣨉<𣨊<𣨋<𣨌<ð£¨<𣨎<ð£¨<ð£¨<𣨑<𣨒"
+ "<𣨓<𣨔<𣨕<æ®”<殕<æ®–<æ®—<殘<æ®™<殚<㱤<ã±¥<㱦<㱧<㱨<㱩<𣨖<𣨗<𣨘<𣨙<𣨚<𣨛<𣨜<ð£¨<𣨞<𣨟<𣨠"
+ "<𣨡<𣨢<𣨣<𣨤<𣨥<𣨦<𣨧<𣨨<𣨩<𣨪<𣨫<𣨬<𣨭<𣨮<𣨯<𣨰<殛<殜<㱪<㱫<㱬<㱭<㱮<𣨱<𣨲"
+ "<𣨳<𣨴<𣨵<𣨶<𣨷<𣨸<𣨹<𣨺<𣨻<𣨼<𣨽<𣨾<𣨿<𣩀<ð£©<𣩂<𣩃<æ®<殞<殟<æ® <殡<㱯<ã±°<ã±±<"
+ "ã±²<𣩄<𣩅<𣩆<𣩇<𣩈<𣩉<𣩊<𣩋<𣩌<殟<殢<殣<殤<殥<殦<ã±³<ã±´<ð£©<𣩎<ð£©<ð£©<𣩑<𣩒<𣩓<𣩔"
+ "<𣩕<𣩖<𣩗<𣩘<𣩙<𣩚<𣩛<𣩜<殧<殨<殩<殪<殫<ã±µ<㱶<ã±·<ð£©<𣩞<𣩟<𣩠<𣩡<𣩢<𣩣<𣩤<𣩥<"
+ "𣩦<𣩧<殬<殭<殮<㱸<𣩨<𣩩<𣩪<𣩫<𣩬<𣩭<𣩮<殮<殯<𣩯<𣩰<𣩱<𣩲<𣩳<𣩴<𣩵<𣩶<殰<殱<"
+ "𣩷<𣩸<ã±¹<㱺<𣩹<𣩺<𣩻<殲<𣩼<𣩽<𣩾<ã±»<𣩿<𣪀<ð£ª<殳<ã±¼<æ®´<ã±½<𣪂<𣪃<𣪄<段<殶<𣪅<𣪆<"
+ "𣪇<æ®·<ã±¾<㱿<𣪈<𣪉<𣪊<殸<殹<殺<æ®»<ã²€<𣪋<𣪌<ð£ª<𣪎<ð£ª<ð£ª<𣪑<𣪒<𣪓<𣪔<𣪕<𣪖<𣪗<"
+ "𣪘<殺<殺<殺<æ®»<ð£ª<殼<殽<ã²<㲂<㲃<𣪙<𣪚<𣪛<𣪜<ð£ª<𣪞<𣪟<殾<殿<毀<æ¯<毂<㲄<𣪠<𣪡<𣪢<𣪣"
+ "<𣪤<𣪥<𣪦<𣪧<𣪨<𣪩<𣪪<𣪫<𣪬<毃<毄<㲅<𣪮<𣪯<𣪰<𣪱<𣪲<𣪳<𣪴<𣪵<毅<毆<𣪶<𣪷<"
+ "𣪸<𣪹<𣪺<𤛗<毇<毈<㲆<㲇<㲈<𣪻<𣪼<𣪽<𣪾<𣪿<𣫀<ð£«<𣫂<𣫃<𣫄<𣫅<𣫆<𣫇<𣫈<𣫉<"
+ "𣫊<𣫋<㲉<𣫌<ð£«<𣫎<ð£«<㲊<ð£«<𣫑<𣫒<𣫓<𣫔<𣫕<𣫖<𣫗<毉<𣫘<𣫙<𣫚<𣫛<𣫜<ð£«<𣫞"
+ "<𣫟<𣫠<𣫡<毊<𣫢<𣫣<𣫤<𣫥<𣫦<𣫧<𣫨<𣫩<𣫪<𣫫<毋<毌<𣫬<æ¯<毎<𣫭<æ¯<æ¯<𣫮<毑<毒<"
+ "𣫯<𣫰<𣫱<𣫲<𣫳<𣫴<𣫵<𣫶<𣫷<𣫸<毓<𣫹<𣫺<𣫻<𣫼<𣫺<𣫽<𣫾<𣫿<𣬀<ð£¬<比<毕<ð ‚±"
+ "<𣬂<𣬃<𣬄<𣬅<𣬆<𣬇<毖<毗<毘<㲋<毙<𣬈<𣬉<𣬊<𣬋<𣬌<ð£¬<𣬎<ð£¬<ð£¬<𣬑<𣬒<𣬓<𣬔<"
+ "毚<𣬕<𣬖<𣬗<𣬘<𣬙<𣬚<毛<𣬛<㲌<𣬜<ð£¬<𣬞<𣬟<𣬠<毜<æ¯<𣬡<𣬢<𣬣<𣬤<𣬥<𣬦<𣬧<"
+ "𣬨<毞<毟<ã²<㲎<ã²<ã²<㲑<𣬩<𣬪<𣬫<𣬬<𣬭<𣬮<𣬯<𣬰<𣬱<𣬲<𣬳<𣬴<𣬵<𣬶<𣬷<毠<毡<ã²’<"
+ "𣬸<𣬹<𣬺<𣬻<𣬼<𣬽<𣬾<𣬿<𣭀<ð£­<𣭂<𣭃<𣭄<𣭅<𣭆<𣭇<𣭈<𣭉<𣭊<𣭋<𣭌<ð£­<𣭎"
+ "<ð£­<ð£­<𣭑<𣭒<𣭓<𣭔<𣭕<𣭖<𣭗<𣭘<𣭙<𣭚<𣭛<毢<毣<毤<毥<毦<毧<毨<毩<毪<㲓<𣭜<ð£­<𣭞"
+ "<𣭟<𣭠<𣭡<𣭢<𣭣<𣭤<𣭥<𣭦<𣭧<𣭨<𣭩<𣭪<𣭫<𣭬<𣭭<𣭮<𣭯<𣭰<毫<毬<毭<毮<㲔<㲕<㲖"
+ "<ã²—<㲘<ã²™<㲚<𣭱<𣭲<𣭳<𣭴<𣭵<𣭶<𣭷<𣭸<𣭹<𣭺<𣭻<𣭼<𣭽<𣭾<𣭿<𣮀<ð£®<𣮂<𣮃<𣮄"
+ "<𣮅<𣮆<𣮇<毯<毰<毱<毲<毳<毴<毵<毶<ã²›<㲜<ã²<㲞<𣮈<𣮉<𣮊<𣮋<𣮌<ð£®<𣮎<ð£®<ð£®<𣮑<𣮒<"
+ "𣮓<𣮔<𣮕<𣮖<𣮗<𣮘<𣮙<𣮚<𣮛<𣮜<ð£®<𣮞<𣮟<𣮠<𣮡<𣮢<𣮣<𣮤<𣮥<𣮦<𣮧<毷<毸<毹"
+ "<毺<毻<毼<毽<㲟<㲠<㲡<㲢<㲣<𣮨<𣮩<𣮪<𣮫<𣮬<𣮭<𣮮<𣮯<𣮰<𣮱<𣮲<𣮳<𣮴<𣮵<𣮶<𣮷<"
+ "𣮸<𣮹<𣮺<𣮻<𣮼<𣮽<𣮾<𣮿<𣯀<ð£¯<𣯂<𣯃<𣯄<毾<㲤<ã²¥<㲦<㲧<㲨<㲩<𣯅<𣯆<𣯇<𣯈<𣯉<"
+ "𣯊<𣯋<𣯌<ð£¯<𣯎<ð£¯<ð£¯<𣯑<𣯒<𣯓<𣯔<𣯕<𣯖<𣯗<𣯘<𣯙<𣯚<𣯛<𣯜<ð£¯<𣯞<𣯟<𣯠"
+ "<𣯡<𣯢<毿<æ°€<æ°<æ°‚<𣯣<𣯤<𣯥<𣯦<𣯧<𣯨<𣯩<𣯪<𣯫<𣯬<𣯭<𣯮<𣯯<𣯰<𣯱<𣯲<𣯳<𣯴"
+ "<𣯵<𣯶<𣯷<æ°ƒ<æ°„<æ°…<æ°†<æ°‡<㲪<㲫<㲬<ã²­<ã²®<𣯸<𣯹<𣯺<𣯻<𣯼<𣯽<𣯾<𣯿<𣰀<ð£°<𣰂<𣰃<𣰄"
+ "<𣰅<𣰆<𣰇<𣰈<𣰉<æ°ˆ<æ°‰<æ°Š<𣰊<𣰋<𣰌<ð£°<𣰎<ð£°<ð£°<𣰑<𣰒<𣰓<𣰔<𣰕<𣰖<𣰗<𣰘<"
+ "𣰙<æ°‹<㲯<ã²°<𣰚<𣰛<𣰜<ð£°<𣰞<𣰟<𣰠<𣰡<𣰢<𣰣<𣰤<𣰥<𣰦<𣰧<𣰨<𣰩<𣰪<æ°Œ<ã²±<𣰫<"
+ "𣰬<𣰭<𣰮<𣰯<𣰰<𠫈<𣰱<𣰲<𣰳<𣰴<𣰵<𣰶<𣰷<𣰸<𣰹<𣰺<æ°<𣰻<𣰼<𣰽<𣰾<𣰿<𣱀<"
+ "ð£±<æ°Ž<ã²²<𣱂<𣱃<𣱄<æ°<æ°<æ°‘<æ°’<æ°“<𣱅<𣱆<𣱇<𣱈<𣱉<𣱊<ã²³<𣱋<𣱌<ð£±<𣱎<ð£±<ð£±<𣱑<"
+ "𣱒<𣱓<𣱔<æ°”<æ°•<æ°–<æ°—<æ°˜<𣱕<𣱖<æ°™<æ°š<𣱗<𣱘<æ°›<æ°œ<æ°<ã²´<𣱙<𣱚<𣱛<æ°ž<æ°Ÿ<æ° <æ°¡<æ°¢<𣱜<ð£±<"
+ "𣱞<𣱟<𣱠<氣<氤<氥<氦<氧<氨<氩<𣱡<氪<氫<㲵<𣱣<氬<氭<氮<氯<氰<𣱢<𣱤<𣱥<氱<𣱦<𣱧<𣱨<氲<氳"
+ "<𣱩<㲶<𣱪<𣱫<ã²·<𣱬<𣱭<𣱮<𣱯<𣱰<æ°´<æ°µ<æ°º<𣱱<æ°¶<æ°·<æ°¸<æ°¹<㲸<𣱲<𣱳<𣱴<æ°»<æ°¼<æ°¾<æ°¿<æ±€<æ±"
+ "<求<汃<汄<æ±…<汆<汇<汈<汉<ã²¹<㲺<ã²»<ã²¼<𣱵<𣱶<𣱷<𣱸<𣱹<𣱺<𣱻<𣱼<𣱽<𣱾<𣱿<汊<汋<汌<æ±<汎<"
+ "æ±<æ±<汑<æ±’<汓<æ±”<汕<æ±–<æ±—<汘<æ±™<汚<æ±›<汜<æ±<汞<江<æ± <污<æ±¢<æ±£<汤<ã²½<ã²¾<㲿<𣲀<ð£²<𣲂<𣲃<𣲄<𣲅<"
+ "𣲆<𣲇<𣲈<𣲉<𣲊<𣲋<𣲌<ð£²<汎<æ±¥<汦<汧<汨<汩<汪<汫<汬<æ±­<æ±®<汯<æ±°<æ±±<æ±²<æ±³<æ±´<æ±µ<汶<æ±·<汸<æ±¹<"
+ "決<æ±»<æ±¼<æ±½<æ±¾<汿<æ²€<æ²<沂<沃<沄<æ²…<沆<沇<沈<沉<沊<沋<沌<æ²<沎<æ²<æ²<沑<æ²’<沓<æ²”<沕<æ²–<æ²—<沘<æ²™<沚<æ²›<"
+ "沜<æ²<沞<沟<æ² <没<æ²¢<æ²£<沤<æ²¥<沦<沧<沨<沩<沪<ã³€<ã³<㳂<㳃<㳄<ã³…<㳆<㳇<㳈<㳉<㳊<𣲎<ð£²<ð£²<𣲑<𣲒<"
+ "𣲓<𣲔<𣲕<𣲖<𣲗<𣲘<𣲙<𣲚<𣲛<𣲜<ð£²<𣲞<𣲟<𣲠<𣲡<𣲢<𣲣<𣲤<𣲥<𣲦<𣲧<𣲨<𣲩"
+ "<𣲪<𣲫<𣲬<𣲭<𣲮<𣲯<𣲰<𣲱<沈<汧<沫<沬<沭<沮<沯<沰<沱<沲<河<沴<沵<沶<沷<沸<油<沺<治<沼<沽<沾"
+ "<沿<æ³€<æ³<泂<泃<泄<æ³…<泆<泇<泈<泉<泊<泋<泌<æ³<泎<æ³<æ³<泑<æ³’<泓<æ³”<法<æ³–<æ³—<泘<æ³™<æ³›<泜<æ³<泞<泟<æ³ <泡"
+ "<æ³¢<æ³£<泤<æ³¥<泦<泧<注<泩<泪<泫<泬<æ³­<æ³®<泯<æ³°<æ³±<æ³²<æ³³<æ³´<泶<æ³·<泸<æ³¹<泺<æ³»<æ³¼<æ³½<æ³¾<㳋<㳌<ã³<㳎<ã³<ã³"
+ "<㳑<ã³’<㳓<ã³”<㳕<𣲲<𣲳<𣲴<𣲵<𣲶<𣲷<𣲸<𣲹<𣲺<𣲻<𣲼<𣲽<𣲾<𣲿<𣳀<ð£³<𣳂<𣳃<𣳄<"
+ "𣳅<𣳆<𣳇<𣳈<𣳉<𣳊<𣳋<𣳌<ð£³<𣳎<ð£³<ð£³<𣳑<𣳒<𣳓<𣳔<𣳕<𣳖<𣳗<𣳘<𣳙<𣳚<𣳛"
+ "<𣳜<ð£³<𣳞<𣳟<𣳠<𣳡<𣳢<𣳣<泌<æ³¥<𣲼<沿<æ³<泚<泿<æ´€<æ´<æ´‚<æ´ƒ<æ´„<æ´…<æ´†<æ´‡<æ´ˆ<æ´‰<æ´Š<æ´‹<æ´Œ<æ´Ž<"
+ "æ´<æ´<æ´‘<æ´’<æ´“<æ´”<æ´•<æ´—<æ´˜<æ´™<æ´š<æ´›<æ´œ<æ´<æ´ž<æ´Ÿ<æ´ <æ´¡<æ´¢<æ´£<æ´¤<æ´¥<æ´¦<æ´§<æ´¨<æ´©<æ´ª<æ´«<æ´¬<æ´­<æ´®<æ´¯<æ´°<æ´±<"
+ "æ´²<æ´³<æ´´<æ´µ<æ´¶<æ´·<æ´¸<æ´¹<æ´º<æ´»<æ´¼<æ´½<æ´¾<æ´¿<æµ€<æµ<浂<浃<浄<æµ…<浆<浇<浈<浉<浊<测<浌<æµ<济<æµ<æµ<浑<æµ’<浓<"
+ "æµ”<浕<ã³–<ã³—<㳘<ã³™<㳚<ã³›<㳜<ã³<㳞<㳟<ã³ <㳡<ã³¢<ã³£<𣳤<𣳥<𣳦<𣳧<𣳨<𣳩<𣳪<𣳫<𣳬<𣳭<𣳮<𣳯<"
+ "𣳰<𣳱<𣳲<𣳳<𣳴<𣳵<𣳶<𣳷<𣳸<𣳹<𣳺<𣳻<𣳼<𣳽<𣳾<𣳿<𣴀<ð£´<𣴂<𣴃<𣴄<𣴅<𣴆"
+ "<𣴇<𣴈<𣴉<𣴊<𣴋<𣴌<ð£´<𣴎<ð£´<ð£´<𣴑<𣴒<𣴓<𣴔<𣴕<𣴖<𣴗<𣴘<𣴙<𣴚<𣴛<𣴜<"
+ "ð£´<æ´›<æµ<æ´ž<æµ<æ´¾<æµ<æ´<æ´–<æµ–<æµ—<浘<æµ™<浚<æµ›<浜<æµ<浞<浟<æµ <浡<æµ¢<æµ£<浤<æµ¥<浦<浧<浨<浩<浪<浫<浬<æµ­<æµ®"
+ "<浯<æµ°<æµ±<æµ²<æµ³<æµ´<æµµ<浶<æµ·<浸<æµ¹<浺<æµ»<æµ¼<æµ½<æµ¾<浿<涀<æ¶<涂<涃<涄<涅<涆<涇<消<涉<涊<涋<涌<æ¶<涎<æ¶<æ¶"
+ "<涑<涒<涓<涔<涕<涖<涗<涘<涚<涛<涜<æ¶<涞<涟<涠<涡<涢<涣<涤<涥<润<涧<涨<涩<㳤<ã³¥<㳦<㳧<㳨<㳩<㳪<㳫<㳬<ã³­"
+ "<㳮<㳯<㳰<㳱<㳲<㳳<𣴞<𣴟<𣴠<𣴡<𣴢<𣴣<𣴤<𣴥<𣴦<𣴧<𣴨<𣴩<𣴪<𣴫<𣴬<𣴭<𣴮<𣴯<"
+ "𣴰<𣴱<𣴲<𣴳<𣴴<𣴵<𣴶<𣴷<𣴸<𣴹<𣴺<𣴻<𣴼<𣴽<𣴾<𣴿<𣵀<ð£µ<𣵂<𣵃<𣵄<𣵅<𣵆"
+ "<𣵇<𣵈<𣵉<𣵊<𣵋<𣵌<ð£µ<𣵎<ð£µ<ð£µ<𣵑<𣵒<𣵓<𣵔<𣵕<𣵖<𣵗<𣵘<𣵙<𣵚<𣵛<𣵜<"
+ "ð£µ<𣵞<𣵟<𣵠<𣵡<𣵢<𣵣<𣵤<𣵥<𣵦<𣵧<𣵨<𣵩<𣵪<𣵫<𣵬<𣵭<𣵮<𣵯<𣵰<𣵱<𣵲<𣵳"
+ "<𣵴<𣵵<𣵶<𣷚<浪<海<洖<海<浩<浸<涅<𣴞<涙<涪<涫<涬<涭<涮<涯<涰<涱<液<涳<涴<涵<涶<涷<涸<涹<涺<涻<"
+ "涼<涽<涾<涿<æ·€<æ·<æ·‚<æ·ƒ<æ·„<æ·…<æ·†<æ·‡<æ·ˆ<æ·‰<æ·Š<æ·‹<æ·Œ<æ·<æ·Ž<æ·<æ·<æ·‘<æ·’<æ·“<æ·”<æ·•<æ·–<æ·—<æ·˜<æ·™<æ·š<æ·›<æ·œ<æ·<"
+ "æ·ž<æ·Ÿ<æ· <æ·¡<æ·¢<æ·£<æ·¤<æ·¥<æ·¦<æ·§<æ·¨<æ·©<æ·ª<æ·«<æ·¬<æ·­<æ·®<æ·¯<æ·°<æ·±<æ·²<æ·³<æ·´<æ·µ<æ·¶<æ··<æ·¸<æ·¹<æ·º<æ·»<æ·¼<æ·½<æ·¾<æ·¿<"
+ "渀<æ¸<渂<渄<清<渆<渇<済<渉<渊<渋<渌<æ¸<渎<æ¸<æ¸<渑<渒<渓<渔<渕<渖<渗<渚<æ¹´<ã³´<ã³µ<㳶<ã³·<㳸<ã³¹<㳺<ã³»<ã³¼<"
+ "ã³½<ã³¾<㳿<ã´€<ã´<ã´‚<ã´ƒ<ã´„<ã´…<ã´†<ã´‡<ã´ˆ<ã´‰<ã´Š<ã´‹<ã´Œ<ã´<ã´Ž<𣵷<𣵸<𣵹<𣵺<𣵻<𣵼<𣵽<𣵾<𣵿<𣶀<ð£¶"
+ "<𣶂<𣶃<𣶄<𣶅<𣶆<𣶇<𣶈<𣶉<𣶊<𣶋<𣶌<ð£¶<𣶎<ð£¶<ð£¶<𣶑<𣶒<𣶓<𣶔<𣶕<𣶖<𣶗<"
+ "𣶘<𣶙<𣶚<𣶛<𣶜<ð£¶<𣶞<𣶟<𣶠<𣶡<𣶢<𣶣<𣶤<𣶥<𣶦<𣶧<𣶨<𣶩<𣶪<𣶫<𣶬<𣶭<𣶮"
+ "<𣶯<𣶰<𣶱<𣶲<𣶳<𣶴<𣶵<𣶶<𣶷<𣶸<𣶹<𣶺<𣶻<𣶼<𣶽<𣶾<𣶿<𣷀<ð£·<𣷂<𣷃<𣷄<"
+ "𣷅<𣷆<𣷇<𣷈<𣷉<𣷊<𣷋<𣷌<ð£·<𣷎<ð£·<ð£·<𣷑<𣷒<𣷓<𣷔<𣷕<𣷖<𣷗<𣷘<𣷙<𣷛<𣷜"
+ "<ð£·<𣷞<𣷟<𣷠<𣷡<𣷢<𣷣<𣷤<𣷥<𣷦<𣷧<𣷨<𣷩<𣷪<𣷫<𣷬<𣷭<𣷮<𣷯<𣷰<𣷱<𣷲<"
+ "𣷳<𣷴<𣷵<𣷶<𣷷<𣷸<𣷹<𣷺<𣷻<𣸊<æ·š<æ·ª<æ·‹<渚<æ´´<æ·¹<渃<渘<渙<減<渜<æ¸<渞<渟<渠<渡<渢<渣<渤<"
+ "渥<渦<渧<渨<温<渪<渫<測<渭<渮<港<渰<渱<渲<渳<渴<渵<渶<渷<游<渹<渺<渻<渼<渽<渾<渿<æ¹€<æ¹<湂<湃<湄<æ¹…<湆<"
+ "湇<湈<湉<湊<湋<湌<æ¹<湎<æ¹<æ¹<湑<æ¹’<湓<æ¹”<湕<æ¹–<æ¹—<湘<æ¹™<湚<æ¹›<湜<æ¹<湞<湟<æ¹ <湡<æ¹¢<æ¹£<湤<æ¹¥<湦<湧<湨<"
+ "湩<湪<湫<湬<æ¹­<æ¹®<湯<æ¹°<æ¹±<æ¹²<æ¹³<æ¹µ<湶<æ¹·<湸<æ¹¹<湺<æ¹»<æ¹¼<æ¹½<æ¹¾<湿<満<æº<溂<溃<溄<溅<溆<溇<溈<溉<溊<溋<"
+ "溌<滋<滞<ã´<ã´<ã´‘<ã´’<ã´“<ã´”<ã´•<ã´–<ã´—<ã´˜<ã´™<ã´š<ã´›<ã´œ<ã´<ã´ž<ã´Ÿ<ã´ <ã´¡<ã´¢<ã´£<ã´¤<𣷼<𣷽<𣷾<𣷿<𣸀<ð£¸<"
+ "𣸂<𣸃<𣸄<𣸅<𣸆<𣸇<𣸈<𣸉<𣸋<𣸌<ð£¸<𣸎<ð£¸<ð£¸<𣸑<𣸒<𣸓<𣸔<𣸕<𣸖<𣸗<𣸘<𣸙"
+ "<𣸚<𣸛<𣸜<ð£¸<𣸞<𣸟<𣸠<𣸡<𣸢<𣸣<𣸤<𣸥<𣸦<𣸧<𣸨<𣸩<𣸪<𣸫<𣸬<𣸭<𣸮<𣸯<"
+ "𣸰<𣸱<𣸲<𣸳<𣸴<𣸵<𣸶<𣸷<𣸸<𣸹<𣸺<𣸻<𣸼<𣸽<𣸾<𣸿<𣹀<ð£¹<𣹂<𣹃<𣹄<𣹅<𣹆"
+ "<𣹇<𣹈<𣹉<𣹊<𣹋<𣹌<ð£¹<𣹎<ð£¹<ð£¹<𣹑<𣹒<𣹓<𣹔<𣹕<𣹖<𣹗<𣹘<𣹙<𣹚<𣹛<𣹜<滋"
+ "<港<æ¹®<滋<æº<溎<æº<æº<溑<溒<溓<溔<溕<準<溗<溘<溙<溚<溛<溜<æº<溞<溟<溠<溡<溢<溣<溤<溥<溦<溧<溨<溩<溪<溫"
+ "<溬<溭<溮<溯<溰<溱<溲<溳<溴<溵<溶<溷<溸<溹<溺<溻<溼<溽<溾<溿<滀<æ»<滂<滃<滄<æ»…<滆<滇<滈<滉<滊<æ»<滎<æ»"
+ "<æ»<滑<æ»’<滓<æ»”<滕<æ»–<æ»—<滘<æ»™<æ»›<滜<æ»<滟<æ» <满<滢<滣<滤<滥<滦<滧<滨<滩<滪<漓<ã´¥<ã´¦<ã´§<ã´¨<ã´©<ã´ª<ã´«<ã´¬"
+ "<ã´­<ã´®<ã´¯<ã´°<ã´±<ã´²<ã´³<ã´´<ã´µ<ã´¶<ã´·<ã´¸<ã´¹<ã´º<ã´»<ð£¹<𣹞<𣹟<𣹠<𣹡<𣹢<𣹣<𣹤<𣹥<𣹦<𣹧<𣹨<"
+ "𣹩<𣹪<𣹫<𣹬<𣹭<𣹮<𣹯<𣹰<𣹱<𣹲<𣹳<𣹴<𣹵<𣹶<𣹷<𣹸<𣹹<𣹺<𣹻<𣹼<𣹽<𣹾<𣹿"
+ "<𣺀<ð£º<𣺂<𣺃<𣺄<𣺅<𣺆<𣺇<𣺈<𣺉<𣺊<𣺋<𣺌<ð£º<𣺎<ð£º<ð£º<𣺑<𣺒<𣺓<𣺔<𣺕<"
+ "𣺖<𣺗<𣺘<𣺙<𣺚<𣺛<𣺜<ð£º<𣺞<𣺟<𣺠<𣺡<𣺢<𣺣<𣺤<𣺥<𣺦<𣺧<𣺨<𣺩<𣺪<𣺫<𣺬"
+ "<𣺭<𣺮<𣺯<𣺰<𣺱<𣺲<𣺳<𣺴<𣺵<𣺶<𣺷<𣺸<𣺹<𣺺<𣺻<𣺼<𣺽<𣺾<𣺿<𣻀<ð£»<𣻂<"
+ "𣻃<𣻄<𣻅<𣻆<𣻇<𣻈<𣻉<𣻊<𣻋<𣻌<𦴶<滑<溜<溺<滛<㴳<滇<滌<滚<滫<滬<滭<滮<滯<滰<滱<滲<滳<滴"
+ "<滵<滶<æ»·<滸<滹<滺<æ»»<滼<滽<滾<滿<æ¼€<æ¼<漂<漃<漄<æ¼…<漆<漇<漈<漉<漊<漌<æ¼<漎<æ¼<æ¼<漑<æ¼’<æ¼”<漕<æ¼–<æ¼—<漘"
+ "<æ¼™<漚<æ¼›<漜<æ¼<漞<漟<æ¼ <漡<æ¼¢<æ¼£<漤<æ¼¥<漦<漧<漨<漩<漪<漫<漬<æ¼­<æ¼®<漯<æ¼°<æ¼±<æ¼²<æ¼³<æ¼´<æ¼µ<漶<æ¼·<漸<æ¼¹<漺"
+ "<æ¼»<æ¼¼<æ¼¾<漿<æ½€<æ½<潂<潃<潄<æ½…<潆<潇<潈<潉<潊<潋<潌<æ½<ã´¼<ã´½<ã´¾<ã´¿<ãµ€<ãµ<㵂<㵃<㵄<ãµ…<㵆<㵇<㵈<㵉<ð£»<"
+ "𣻎<ð£»<ð£»<𣻑<𣻒<𣻓<𣻔<𣻕<𣻖<𣻗<𣻘<𣻙<𣻚<𣻛<𣻜<ð£»<𣻞<𣻟<𣻠<𣻡<𣻢<𣻣<𣻤"
+ "<𣻥<𣻦<𣻧<𣻨<𣻩<𣻪<𣻫<𣻬<𣻭<𣻮<𣻯<𣻰<𣻱<𣻲<𣻳<𣻵<𣻶<𣻷<𣻸<𣻹<𣻺<𣻻<"
+ "𣻼<𣻽<𣻾<𣻿<𣼀<ð£¼<𣼂<𣼃<𣼄<𣼅<𣼆<𣼇<𣼈<𣼉<𣼊<𣼋<𣼌<ð£¼<𣼎<ð£¼<ð£¼<𣼑<𣼒"
+ "<𣼓<𣼔<𣼕<𣼖<𣼗<𣼘<𣼚<𣼛<𣼜<ð£¼<𣼞<𣼟<𣼠<𣼡<𣼢<𣼣<𣼤<𣼥<𣼦<𣼧<𣼨<𣼩<"
+ "𣼪<𣼫<𣼬<𣼭<𣼮<𣼯<𣼰<𣼱<𣼲<𣼳<𣼴<𣼵<𣼶<𣼷<𣼸<𣼹<𣼺<𣼻<𣼼<𣼽<𣼾<𣼿<𣽀"
+ "<ð£½<𣽂<æ¼<æ¼£<æ¼¢<æ¼¢<𣻑<漋<æ¼½<潎<æ½<æ½<潑<æ½’<潓<æ½”<潕<æ½–<æ½—<潘<æ½™<潚<æ½›<潜<æ½<潞<潟<æ½ <潡<æ½¢<æ½£<潤<"
+ "æ½¥<潦<潧<潨<潩<潪<潫<潬<æ½­<æ½®<潯<æ½°<æ½±<æ½²<æ½³<æ½´<æ½µ<潶<æ½·<潸<æ½¹<潺<æ½»<æ½¼<æ½½<æ½¾<潿<æ¾<澂<澃<澄<æ¾…<澆<澇<"
+ "澈<澉<澊<澋<澌<æ¾<澎<æ¾<æ¾<澑<æ¾’<澓<æ¾”<澕<æ¾–<æ¾—<澘<澚<æ¾›<澜<æ¾<æ¿<㵊<㵋<㵌<ãµ<㵎<ãµ<ãµ<㵑<ãµ’<㵓<ãµ”<㵕<"
+ "ãµ–<ãµ—<㵘<ãµ™<㵚<ãµ›<㵜<𣻴<𣽃<𣽄<𣽅<𣽆<𣽇<𣽈<𣽉<𣽊<𣽋<𣽌<ð£½<𣽎<ð£½<ð£½<𣽑<𣽒<𣽓<"
+ "𣽔<𣽕<𣽖<𣽗<𣽘<𣽙<𣽚<𣽛<𣽜<ð£½<𣽞<𣽟<𣽠<𣽡<𣽢<𣽣<𣽤<𣽥<𣽦<𣽧<𣽨<𣽩<𣽪"
+ "<𣽫<𣽬<𣽭<𣽮<𣽯<𣽰<𣽱<𣽲<𣽳<𣽴<𣽵<𣽶<𣽷<𣽸<𣽹<𣽺<𣽻<𣽼<𣽽<𣽾<𣽿<𣾀<"
+ "ð£¾<𣾂<𣾃<𣾄<𣾅<𣾆<𣾇<𣾈<𣾉<𣾊<𣾋<𣾌<ð£¾<𣾎<ð£¾<ð£¾<𣾑<𣾒<𣾓<𣾔<𣾕<𣾖<𣾗"
+ "<𣾘<𣾙<𣾚<𣾛<𣾜<ð£¾<𣾞<𣾟<𣾠<𣾡<𣾢<𣾣<𣾤<𣾥<𣾦<𣾧<𣾨<𣾪<𣾫<𣾬<𣾭<𣾮<"
+ "𣾯<𣾰<𣾱<𣾲<𣾳<𣾴<𣾵<𣾶<𣾷<𣾸<𣾹<𣾺<𣾻<𣾼<𣾽<𣾾<𣾿<ð£¿<𣿂<𣿃<𣿄<æ½®<𣽞<"
+ "𣾎<澙<澞<澟<澠<澡<澢<澣<澤<澥<澦<澧<澨<澩<澪<澫<澬<澭<澮<澯<澰<澱<澲<澳<澴<澵<澶<澷<澸<澹<澺<澻<澼<澽"
+ "<æ¾¾<澿<æ¿€<æ¿<æ¿‚<濃<æ¿„<æ¿…<濆<濇<濈<濉<æ¿Š<æ¿‹<æ¿Œ<æ¿<æ¿Ž<æ¿<æ¿‘<æ¿’<æ¿“<æ¿–<ãµ<㵞<㵟<ãµ <㵡<ãµ¢<ãµ£<㵤<ãµ¥<㵦<㵧<㵨"
+ "<㵩<㵪<㵫<㵬<ãµ­<ãµ®<𣾩<𣿅<𣿆<𣿇<𣿈<𣿉<𣿊<𣿋<𣿌<ð£¿<𣿎<ð£¿<ð£¿<𣿑<𣿒<𣿓<𣿔<𣿕<"
+ "𣿖<𣿗<𣿘<𣿙<𣿚<𣿛<𣿜<ð£¿<𣿞<𣿟<𣿠<𣿡<𣿢<𣿣<𣿤<𣿥<𣿦<𣿧<𣿨<𣿩<𣿪<𣿫<𣿬"
+ "<𣿭<𣿮<𣿯<𣿰<𣿱<𣿲<𣿳<𣿴<𣿵<𣿶<𣿷<𣿸<𣿹<𣿺<𣿻<𣿼<𣿽<𣿾<𣿿<𤀀<ð¤€<𤀂<"
+ "𤀃<𤀄<𤀅<𤀆<𤀇<𤀈<𤀉<𤀊<𤀋<𤀌<ð¤€<𤀎<ð¤€<ð¤€<𤀑<𤀒<𤀓<𤀔<𤀕<𤀖<𤀗<𤀘<𤀙"
+ "<𤀚<𤀛<𤀜<ð¤€<𤀞<𤀟<𤀠<𤀡<濆<æ¾€<æ¿”<æ¿•<æ¿—<濘<æ¿™<æ¿š<æ¿›<æ¿œ<æ¿<æ¿ž<æ¿Ÿ<æ¿ <æ¿¡<æ¿¢<æ¿£<濤<æ¿¥<濦<濧<濨"
+ "<濩<濪<濫<濬<濭<濮<濯<濰<濱<濲<濴<濵<濶<濷<濸<㵯<㵰<㵱<㵲<㵳<㵴<㵵<㵶<㵷<㵸<㵹<㵺<㵻<㵼<𣿀<𤀣<𤀤<"
+ "𤀥<𤀦<𤀧<𤀨<𤀩<𤀪<𤀫<𤀬<𤀭<𤀮<𤀯<𤀰<𤀱<𤀲<𤀳<𤀴<𤀵<𤀶<𤀷<𤀸<𤀹<𤀺<𤀻"
+ "<𤀼<𤀽<𤀾<𤀿<ð¤€<ð¤<ð¤‚<ð¤ƒ<ð¤„<ð¤…<ð¤†<ð¤‡<ð¤ˆ<ð¤‰<ð¤Š<ð¤‹<ð¤Œ<ð¤<ð¤Ž<ð¤<ð¤<ð¤‘<"
+ "ð¤’<ð¤“<ð¤”<ð¤•<ð¤–<ð¤—<ð¤˜<ð¤™<ð¤š<ð¤›<ð¤œ<ð¤<ð¤Ÿ<ð¤ <æ¿«<濹<濺<æ¿»<濼<濽<濾<æ¿¿<瀀<ç€<瀂<瀃<瀄<"
+ "瀅<瀆<瀇<瀈<瀉<瀊<瀋<瀌<ç€<瀎<ç€<ç€<瀑<瀒<瀓<瀔<ãµ½<ãµ¾<㵿<㶀<ã¶<㶂<㶃<ð¤ž<ð¤¡<ð¤¢<ð¤£<ð¤¤<ð¤¥<ð¤¦<"
+ "ð¤§<ð¤¨<ð¤©<ð¤ª<ð¤«<ð¤¬<ð¤­<ð¤®<ð¤¯<ð¤°<ð¤±<ð¤²<ð¤³<ð¤´<ð¤µ<ð¤¶<ð¤·<ð¤¸<ð¤¹<ð¤º<ð¤»<ð¤¼<ð¤½"
+ "<ð¤¾<ð¤¿<𤂀<ð¤‚<𤂂<𤂃<𤂄<𤂅<𤂆<𤂇<𤂈<𤂉<𤂊<𤂋<𤂌<ð¤‚<𤂎<ð¤‚<ð¤‚<𤂑<𤂒<𤂓<"
+ "𤂔<𤂕<𤂖<𤂗<𤂘<𤂙<𤂚<𤂛<𤂜<𤂞<𤂟<𤂠<𤂢<𤂣<𤂤<𤂥<𤂦<𤂧<𤂨<𤂩<𤂪<𤂫<𤂬"
+ "<𤂭<𤂮<𤂯<𤂰<𤂱<𤂲<濾<濳<瀕<瀖<瀗<瀘<瀙<瀚<瀛<瀜<ç€<瀞<瀟<瀠<瀡<瀢<瀣<瀤<瀥<瀦<瀧<瀨<瀩<瀪<瀫"
+ "<瀬<瀭<瀮<㶄<㶅<㶆<㶇<㶈<㶉<㶊<㶋<ð¤‚<𤂡<𤂳<𤂴<𤂵<𤂶<𤂷<𤂸<𤂹<𤂺<𤂻<𤂼<𤂽<𤂾<𤂿<"
+ "𤃀<ð¤ƒ<𤃂<𤃃<𤃄<𤃅<𤃆<𤃇<𤃈<𤃉<𤃊<𤃋<𤃌<ð¤ƒ<𤃎<ð¤ƒ<ð¤ƒ<𤃑<𤃒<𤃓<𤃔<𤃕<𤃖"
+ "<𤃗<𤃘<𤃙<𤃚<𤃛<𤃜<ð¤ƒ<𤃞<𤃟<𤃠<𤃡<𤃢<𤃣<𤃤<𤃥<𤃦<𤃧<瀞<瀞<瀛<瀯<瀰<瀱<瀲<瀳<"
+ "瀴<瀵<瀶<瀷<瀸<瀹<瀺<瀻<瀼<瀽<瀾<瀿<ç€<ç<㶌<ã¶<㶎<ã¶<ã¶<㶑<𤃨<𤃩<𤃪<𤃫<𤃬<𤃭<𤃮<𤃯<𤃰<"
+ "𤃱<𤃲<𤃳<𤃴<𤃵<𤃶<𤃷<𤃸<𤃹<𤃺<𤃻<𤃼<𤃽<𤃾<𤃿<𤄀<ð¤„<𤄂<𤄃<𤄄<𤄅<𤄆<𤄇"
+ "<𤄈<𤄉<𤄊<𤄋<𤄌<ð¤„<瀹<ç‚<çƒ<ç„<ç…<ç†<ç‡<çˆ<ç‰<çŠ<ç‹<çŒ<ç<ç<ç<㶒<㶓<㶔<㶕<㶖<㶗<㶘<𢌇<𤄎"
+ "<ð¤„<ð¤„<𤄑<𤄒<𤄓<𤄔<𤄕<𤄖<𤄗<𤄘<𤄙<𤄚<𤄛<𤄜<ð¤„<𤄞<𤄟<𤄠<𤄡<𤄢<𤄣<𤄤<"
+ "𤄥<𤄦<𤄧<𤄨<𤄩<𤄪<𤄫<𤄬<𤄭<𤄮<𤄯<𤄰<𤄱<𤄲<𤄳<𤄴<𤄵<㶖<çŠ<ç‘<ç’<ç“<ç”<ç•<ç–<ç—"
+ "<ç˜<㶙<㶚<𤄶<𤄷<𤄸<𤄹<𤄺<𤄻<𤄼<𤄽<𤄾<𤄿<𤅀<ð¤…<𤅂<𤅃<𤅄<𤅅<𤅆<𤅇<𤅈<𤅉<ç™"
+ "<çš<ç›<çœ<㶛<㶜<ã¶<𤅊<𤅋<𤅌<ð¤…<𤅎<ð¤…<ð¤…<𤅑<𤅒<𤅓<𤅔<𤅕<𤅖<𤅗<𤅘<𤅙<𤅚<𤅛<"
+ "𤅜<ð¤…<𤅞<𤅟<ç<çž<çŸ<ç <ç¡<㶞<㶟<𤅠<𤅡<𤅢<𤅣<𤅤<𤅥<𤅦<𤅧<𤅨<ç¢<ç£<𤅩<𤅪<𤅫<𤅬"
+ "<𤅭<𤅮<𤅯<çŽ<ç¤<ç¥<ç¦<㶠<𤅰<𤅱<𤅲<𤅳<𤅴<𤅵<𤅶<ç§<ç¨<𤅷<𤅸<𤅹<𤅺<𤅻<𤅼<𤅽<𤅾"
+ "<𤅿<ç©<çª<𤆀<ð¤†<ç«<ç¬<ç­<𤆂<ç®<ç¯<ç°<ç±<ç²<ç³<炇<㶡<㶢<𤆃<𤆄<𤆅<𤆆<𤆇<𤆈<𤆉<𤆊<𤆋<"
+ "𤆌<ç´<çµ<ç¶<ç·<ç¸<ç¹<çº<ç»<ç¼<ç½<ç¾<ç¿<ç‚€<㶣<㶤<㶥<ð¤†<𤆎<ð¤†<ð¤†<𤆑<𤆒<𤆓<𤆔<𤆕<𤆖<𤆗<"
+ "𤆘<𤆙<𤆚<𤆛<𤆜<ç½<ç·<ç‚<ç‚‚<炃<ç‚„<ç‚…<炆<炈<炉<ç‚Š<ç‚‹<ç‚Œ<ç‚<ç‚Ž<ç‚<ç‚<ç‚‘<ç‚’<ç‚“<ç‚”<ç‚•<ç‚–<ç‚—<炘<ç‚™<ç‚š"
+ "<ç‚›<ç‚œ<ç‚<ç‚ž<㶦<㶧<㶨<㶩<㶪<ð¤†<𤆞<𤆟<𤆠<𤆡<𤆢<𤆣<𤆤<𤆥<𤆦<𤆧<𤆨<𤆩<𤆪<𤆫<𤆬<"
+ "𤆭<𤆮<𤆯<𤆰<𤆱<𤆲<𤆳<𤆴<𤆵<𤆶<𤆷<𤆸<𤆹<𤆺<𤆻<炙<炟<炠<炡<炢<炣<炤<炥<炦<炧<炨<炩"
+ "<炪<ç‚«<炬<ç‚­<ç‚®<炯<ç‚°<炱<炲<炳<ç‚´<炵<炶<ç‚·<炸<点<為<ç‚»<炼<炽<炾<ç‚¿<烀<çƒ<烂<烃<㶫<㶬<㶭<㶮<㶯<㶰<㶱<㶲"
+ "<𤆼<𤆽<𤆾<𤆿<𤇀<ð¤‡<𤇂<𤇃<𤇄<𤇅<𤇆<𤇇<𤇈<𤇉<𤇊<𤇋<𤇌<ð¤‡<𤇎<ð¤‡<ð¤‡<𤇑<"
+ "𤇒<𤇓<𤇔<𤇕<𤇖<𤇗<𤇘<𤇙<𤇚<𤇛<𤇜<ð¤‡<𤇞<𤇟<𤇠<𤇡<𤇢<𤇣<𤇤<𤇥<𤇦<𤇧<𤇨"
+ "<𤇩<𤇪<𤇫<𤇬<𤇭<𤇮<ç‚­<烄<烅<烆<烇<烈<烉<烊<烋<烌<çƒ<烎<çƒ<çƒ<烑<烒<烓<烔<烕<烖<烗<烘<烙<烚<烛"
+ "<烜<çƒ<烞<烟<烠<烡<烢<烣<烤<烥<烦<烧<烨<烩<烪<烫<烬<热<烮<㶳<㶴<㶵<㶶<㶷<㶸<𤇯<𤇰<𤇱<𤇲<𤇳<𤇴"
+ "<𤇵<𤇶<𤇷<𤇸<𤇹<𤇺<𤇻<𤇼<𤇽<𤇾<𤇿<𤈀<ð¤ˆ<𤈂<𤈃<𤈄<𤈅<𤈆<𤈇<𤈈<𤈉<𤈊<"
+ "𤈋<𤈌<ð¤ˆ<𤈎<ð¤ˆ<ð¤ˆ<𤈑<𤈒<𤈓<𤈔<𤈕<𤈖<𤈗<𤈘<𤈙<𤈚<𤈛<𤈜<ð¤ˆ<𤈞<𤈟<𤈠<𤈡"
+ "<𤈢<𤈣<𤈤<烙<烈<烯<烰<烱<烲<烳<烴<烵<烶<烷<烸<烹<烺<烻<烼<烽<烾<烿<ç„€<ç„<ç„‚<焃<ç„„<ç„…<焆<焇<焈<焉<"
+ "ç„Š<ç„‹<ç„Œ<ç„<ç„Ž<ç„<ç„<ç„‘<ç„’<ç„“<ç„•<ç„–<ç„—<焘<㶹<㶺<㶻<㶼<㶽<㶾<㶿<ã·€<ã·<𤈥<𤈦<𤈧<𤈨<𤈩<𤈪<𤈫<"
+ "𤈬<𤈭<𤈮<𤈯<𤈰<𤈱<𤈲<𤈳<𤈴<𤈵<𤈶<𤈷<𤈸<𤈹<𤈺<𤈻<𤈼<𤈽<𤈾<𤈿<𤉀<ð¤‰<𤉂"
+ "<𤉃<𤉄<𤉅<𤉆<𤉇<𤉈<𤉉<𤉊<𤉋<𤉌<ð¤‰<𤉎<ð¤‰<ð¤‰<𤉑<𤉒<𤉓<𤉔<𤉕<𤉖<𤉗<𤉘<"
+ "𤉙<𤉚<𤉛<𤉜<ð¤‰<𤉞<𤉟<𤉠<𤉡<ç„”<ç„™<ç„š<ç„›<ç„œ<ç„<ç„ž<ç„Ÿ<ç„ <ç„¡<ç„¢<ç„£<焤<ç„¥<焦<焧<焨<ç„©<焪<ç„«<焬"
+ "<ç„­<ç„®<焯<ç„°<焱<焲<焳<ç„´<焵<然<ç„·<焸<焹<焺<ç„»<焼<焽<焾<ç„¿<ç…€<ç…®<ã·‚<ã·ƒ<ã·„<ã·…<ã·†<ã·‡<ã·ˆ<ã·‰<ã·Š<ã·‹<ã·Œ<ã·<"
+ "𤉢<𤉣<𤉤<𤉥<𤉦<𤉧<𤉨<𤉩<𤉪<𤉫<𤉬<𤉭<𤉮<𤉯<𤉰<𤉱<𤉲<𤉳<𤉴<𤉵<𤉶<𤉷<𤉸"
+ "<𤉹<𤉺<𤉻<𤉼<𤉽<𤉾<𤉿<𤊀<ð¤Š<𤊂<𤊃<𤊄<𤊅<𤊆<𤊇<𤊈<𤊉<𤊊<𤊋<𤊌<ð¤Š<𤊎<"
+ "ð¤Š<ð¤Š<𤊑<𤊒<𤊓<𤊔<𤊕<𤊖<𤊗<𤊘<𤊙<𤊚<𤊛<𤊜<ð¤Š<𤊞<𤊟<𤊠<𤊡<𤊢<𤊣<𤊤<𤊥"
+ "<𤊦<𤊧<𤊨<𤊩<𤊪<𤊫<𤊬<𤊭<𤊮<𤊯<𤊰<𤊱<ç…®<ç…®<𤉣<ç…<ç…‚<ç…ƒ<ç…„<ç……<ç…†<ç…‡<ç…ˆ<ç…‰<ç…Š<ç…‹<ç…Œ<"
+ "ç…<ç…Ž<ç…<ç…<ç…‘<ç…’<ç…“<ç…”<ç…•<ç…–<ç…—<ç…˜<ç…™<ç…š<ç…›<ç…œ<ç…<ç…ž<ç…Ÿ<ç… <ç…¡<ç…¢<ç…£<ç…¤<ç…¥<ç…¦<ç…§<ç…¨<ç…©<ç…ª<ç…«<ç…¬<ç…­<ç…¯<"
+ "ç…°<ç…±<ç…²<ç…³<ç…´<ç…µ<ç…¶<ç…·<ç…¸<ç…º<㮡<ã·Ž<ã·<ã·<ã·‘<ã·’<ã·“<ã·”<ã·•<ã·–<ã·—<ã·˜<ã·™<ã·š<ã·›<ã·œ<ã·<ã·ž<𤊲<𤊳<𤊴<𤊵<"
+ "𤊶<𤊷<𤊸<𤊹<𤊺<𤊻<𤊼<𤊽<𤊾<𤊿<𤋀<ð¤‹<𤋂<𤋃<𤋄<𤋅<𤋆<𤋇<𤋈<𤋉<𤋊<𤋋<𤋌"
+ "<ð¤‹<𤋎<ð¤‹<ð¤‹<𤋑<𤋒<𤋓<𤋔<𤋕<𤋖<𤋗<𤋘<𤋙<𤋚<𤋛<𤋜<ð¤‹<𤋞<𤋟<𤋠<𤋡<𤋢<"
+ "𤋣<𤋤<𤋥<𤋦<𤋧<𤋨<𤋩<𤋪<𤋫<𤋬<𤋭<𤋮<𤋯<𤋰<𤋱<𤋲<𤋴<𤋵<𤋶<𤋷<𤋸<𤋹<𤋺"
+ "<𤋻<𤋼<𤋽<𤋾<𤋿<𤌀<ð¤Œ<𤌂<𤌃<𤌄<𤌅<𤌆<ð¤<ç…‰<ç……<ç…¹<ç…»<ç…¼<ç…½<ç…¾<ç…¿<熀<ç†<熂<熃<熄<熅<"
+ "熆<熇<熈<熉<熊<熋<熌<ç†<熎<ç†<ç†<熑<熒<熓<熔<熕<熖<熗<熘<熙<熦<è’¸<ã·Ÿ<ã· <ã·¡<ã·¢<ã·£<ã·¤<ã·¥<ã·¦<ã·§<ã·¨<ã·©<ã·ª<"
+ "𤌇<𤌈<𤌉<𤌊<𤌋<𤌌<ð¤Œ<𤌎<ð¤Œ<ð¤Œ<𤌑<𤌒<𤌓<𤌔<𤌕<𤌖<𤌗<𤌘<𤌙<𤌚<𤌛<𤌜<ð¤Œ"
+ "<𤌞<𤌟<𤌠<𤌡<𤌢<𤌣<𤌤<𤌥<𤌦<𤌧<𤌨<𤌩<𤌪<𤌫<𤌬<𤌭<𤌮<𤌯<𤌰<𤌱<𤌳<𤌴<"
+ "𤌵<𤌶<𤌷<𤌸<𤌹<𤌺<𤌻<𤌼<𤌽<𤌾<𤌿<ð¤€<ð¤<ð¤‚<ð¤ƒ<ð¤„<ð¤…<ð¤†<ð¤‡<ð¤ˆ<ð¤‰<ð¤Š<ð¤‹"
+ "<ð¤Œ<ð¤<ð¤Ž<熚<熛<熜<ç†<熞<熟<熠<熡<熢<熣<熤<熥<熧<熨<熩<熪<熫<熬<熭<熮<熯<熰<熱<熲<熳<熴<熵<é»™<龦<"
+ "ã·«<ã·¬<ã·­<ã·®<ã·¯<ã·°<ã·±<ã·²<𤌲<ð¤<ð¤‘<ð¤’<ð¤“<ð¤”<ð¤•<ð¤–<ð¤—<ð¤˜<ð¤™<ð¤š<ð¤›<ð¤œ<ð¤<ð¤ž<ð¤Ÿ<"
+ "ð¤ <ð¤¡<ð¤¢<ð¤£<ð¤¤<ð¤¥<ð¤¦<ð¤§<ð¤¨<ð¤ª<ð¤«<ð¤¬<ð¤­<ð¤®<ð¤¯<ð¤°<ð¤±<ð¤²<ð¤³<ð¤´<ð¤µ<ð¤¶<ð¤·"
+ "<ð¤¸<ð¤¹<ð¤º<ð¤»<ð¤¼<ð¤½<ð¤¾<ð¤¿<ð¤Ž<𤎃<𤎄<𤎅<𤎆<𤎇<𤎈<𤎉<𤎊<𤎋<𤎌<ð¤Ž<𤎎<ð¤Ž<"
+ "ð¤Ž<𤎑<𤎒<𤎓<𤎔<𤎕<𤎖<𤎗<𤎘<𤎙<𤎚<𤎛<𤎜<熜<熶<熷<熸<熹<熺<熻<熼<熽<熾<熿<燀<ç‡<燂<燃"
+ "<燄<燅<燆<燇<燈<燉<燊<燋<燌<ç‡<燎<ç‡<ç‡<燑<燒<燓<燔<燕<燖<燗<燘<燙<燚<燛<燜<ç‡<燞<ã·³<ã·´<ã·µ<ã·¶<ã··<ã·¸<ã·¹"
+ "<ã·º<ã·»<ã·¼<ã·½<ð¤©<ð¤Ž<𤎞<𤎟<𤎠<𤎡<𤎢<𤎣<𤎤<𤎥<𤎦<𤎧<𤎨<𤎩<𤎪<𤎫<𤎬<𤎭<𤎮<𤎯"
+ "<𤎰<𤎱<𤎲<𤎳<𤎴<𤎵<𤎶<𤎷<𤎸<𤎹<𤎺<𤎻<𤎼<𤎽<𤎾<𤎿<ð¤€<ð¤<ð¤‚<ð¤ƒ<ð¤„<ð¤…<"
+ "ð¤†<ð¤‡<ð¤ˆ<ð¤‰<ð¤Š<ð¤‹<ð¤Œ<ð¤<ð¤Ž<ð¤<ð¤<ð¤‘<ð¤’<ð¤“<ð¤”<ð¤•<ð¤–<ð¤—<ð¤˜<ð¤™<ð¤š<ð¤›<ð¤œ"
+ "<ð¤<ð¤ž<ð¤Ÿ<ð¤¡<ð¤¢<ð¤£<ð¤¤<ð¤¥<ð¤¦<ð¤§<ð¤¨<ð¤©<ð¤ª<ð¤«<ð¤¬<ð¤­<ð¤®<ð¤¯<ð¤°<ð¤±<ð¤²<ð¤³<"
+ "ð¤´<燎<ç‡<𤎫<營<燠<燡<燢<燣<燤<燥<燦<燧<燨<燩<燪<燫<燬<燭<燮<燯<燰<燱<燲<燳<燴<燵<燶<燷<ã·¾<ã·¿<㸀<ã¸<"
+ "㸂<㸃<ð¤µ<ð¤¶<ð¤·<ð¤¸<ð¤¹<ð¤º<ð¤»<ð¤¼<ð¤½<ð¤¾<ð¤¿<ð¤€<ð¤<ð¤‚<ð¤ƒ<ð¤„<ð¤…<ð¤†<ð¤‡<ð¤ˆ<ð¤‰<"
+ "ð¤Š<ð¤‹<ð¤Œ<ð¤<ð¤Ž<ð¤<ð¤<ð¤‘<ð¤’<ð¤“<ð¤”<ð¤•<ð¤–<ð¤—<ð¤˜<ð¤™<ð¤š<ð¤›<ð¤œ<ð¤<ð¤ž<ð¤Ÿ<ð¤ "
+ "<ð¤¡<ð¤¢<ð¤£<燸<燹<燺<燻<燼<燽<燾<燿<爀<çˆ<爂<爃<㸄<㸅<ð¤¤<ð¤¥<ð¤¦<ð¤§<ð¤¨<ð¤©<ð¤ª<ð¤«<ð¤¬<ð¤­<"
+ "ð¤®<ð¤¯<ð¤°<ð¤±<ð¤²<ð¤³<ð¤´<ð¤µ<ð¤¶<ð¤·<ð¤¸<ð¤¹<ð¤º<ð¤»<ð¤¼<ð¤½<ð¤¾<ð¤¿<𤑀<ð¤‘<𤑂<𤑄<𤑅"
+ "<𤑆<𤑇<𤑈<𤑉<𤑊<𤑋<𤑌<ð¤‘<𤑎<ð¤‘<ð¤‘<𤑑<𦦨<爄<爅<爆<爇<爈<爉<爊<爌<çˆ<爎<爕<㸆<㸇<㸉<"
+ "𤑒<𤑓<𤑔<𤑕<𤑖<𤑗<𤑘<𤑙<𤑚<𤑛<𤑜<ð¤‘<𤑞<𤑟<𤑠<𤑡<𤑢<𤑣<𤑤<𤑥<𤑦<𤑧<𤑨"
+ "<𤑩<𤑪<𤑫<𤑬<𤑭<𤑮<𤑯<𤑰<𤑱<𤑲<爋<çˆ<çˆ<爑<爒<爓<爔<爖<爗<爘<㸈<㸊<㸋<㸌<𤑳<𤑴<𤑵<"
+ "𤑶<𤑷<𤑸<𤑹<𤑺<𤑻<𤑼<𤑽<𤑾<𤑿<𤒀<ð¤’<𤒂<𤒃<𤒄<𤒅<𤒆<𤒇<𤒈<𤒉<𤒊<𤒋<𤒌"
+ "<ð¤’<𤒎<ð¤’<ð¤’<𤒑<𤒒<𤒓<𤒔<𤒕<𤒖<𤒗<𤒘<𤒙<𤒚<𤒛<𤒜<ð¤’<𤒞<𤒟<𤒠<𤒨<çˆ<爙<"
+ "爚<爛<ã¸<𤒡<𤒢<𤒣<𤒤<𤒥<𤒦<𤒧<𤒪<𤒫<𤒬<𤒭<𤒮<𤒯<𤒰<𤒱<𤒲<𤒳<𤒴<𤒵<𤒶<𤒷"
+ "<𤒸<𤒹<爛<爜<çˆ<爞<爟<爠<㸎<𤒩<𤒺<𤒻<𤒽<𤒾<𤒿<𤓀<ð¤“<𤓂<𤓃<𤓄<𤓅<𤓆<𤓇<爡<爢<ã¸"
+ "<ã¸<𤒼<𤓈<𤓉<𤓊<𤓋<𤓌<ð¤“<𤓎<ð¤“<𤓑<𤓒<𤓓<𤓔<𤓕<𤓖<爣<𤓗<𤓘<𤓙<𤓚<𤓛<爤<爥"
+ "<爦<𤓜<ð¤“<𤓞<𤓠<𤓡<𤓢<𤓣<㸑<𤓤<𤓥<𤓦<𤓧<𤓨<𤓩<爧<𤓪<𤓬<爨<𤓫<爨<𤓭<爩<𤓮<爪"
+ "<爫<𤓯<𤓰<爫<𤓱<𤓲<𤓳<𤓴<𤓵<爬<爭<㸒<㸓<𤓶<𤓷<𤓸<𤓹<𤓺<𤓻<𤓼<爮<爯<爰<𤓽<𤓾<"
+ "𤓿<𤔀<ð¤”<𤔂<𤔃<𤔄<𤔅<𤔆<𤔇<𤔈<𤔉<𤔊<𤔋<爱<𤔌<ð¤”<𤔎<ð¤”<㸔<ð¤”<𤔑<𤔒<𤔓<爲"
+ "<𤔔<𤔕<𤔖<𤔘<𤔙<𤔚<𤔛<𤔜<ð¤”<𤔞<𤔟<𤔠<𤔡<爳<㸕<𤔢<𤔣<𤔤<𤔥<𤔦<噕<爴<𤔧<𤔨"
+ "<𤔩<𤔪<𤔫<𤔬<𤔭<𤔮<𤔯<𤔰<𤔱<𤔲<𤔳<𤔴<𤔵<𤔶<𤔷<𤔸<𤔼<爵<𤔹<𤔻<𤔽<𤔾<爵<"
+ "爵<𤔺<𤔿<𤕀<𤕂<𤕃<𤕄<𤕅<𤕆<𤕇<𤕈<𤕉<𤕊<𤕋<𤕌<ð¤•<父<爷<𤕎<ð¤•<爸<ð¤•<𤕑<㸖<"
+ "𤕒<爹<㸗<𤕓<𤕔<㸘<𤕕<𤕖<𤕗<爺<㸙<𤕘<𤕙<𤕚<𤕛<爻<𤕜<㸚<ð¤•<爼<𤕞<𤕟<𤕠<𤕡<爽<𤕢"
+ "<𤕣<𤕤<𤕥<爾<ð Ž›<𤕦<𤕧<𤕨<𤕩<ð ‘‚<𡄉<丬<爿<𤕪<𤕫<𤕬<𤕭<𤕮<牀<𤕯<𤕰<𤕱<ç‰<㸛<"
+ "𤕲<𤕳<𤕴<𤕵<牂<𤕶<𤕷<𤕸<𤕹<𤕺<𤕻<𤕼<𤕽<𤕾<𤕿<𤖀<ð¤–<𤖂<𤖃<㸜<𤖄<𤖅<𤖆<"
+ "𤖇<𤖈<𤖉<𤖊<𤖋<牃<𤖌<ð¤–<𤖎<牄<ð¤–<ð¤–<𤖑<𤖒<牅<𤖓<𤖔<𤖕<𤖖<𤖗<𤖘<𤖙<𤖚<𤖛"
+ "<牆<𤖜<ð¤–<𤖞<𤖟<𤖠<𤖡<𤖢<𤖣<𤖤<𤖥<𤖦<𤖧<片<𤖨<𤖩<𤖪<𤖫<版<ã¸<㸞<𤖬<𤖭<𤖮<"
+ "𤖯<𤖰<牉<牊<𤖱<𤖲<𤖳<𤖴<𤖵<𤖶<𤖷<𤖸<𤖹<㸟<㸠<㸡<𤖺<𤖻<𤖼<𤖽<𤖾<𤖿<𤗀<ð¤—<"
+ "𤗂<𤗃<𤗄<𤗅<𤗆<牋<牌<ç‰<𤗇<𤗈<𤗉<𤗊<𤗋<𤗌<ð¤—<𤗎<ð¤—<ð¤—<𤗑<𤗒<𤗓<𤗔<𤗕<𤗖"
+ "<𤗗<牎<ç‰<ç‰<牑<牒<𤗘<𤗙<𤗚<𤗛<𤗜<ð¤—<𤗞<𤗟<𤗠<𤗡<ç‰<牓<牔<㸢<𤗢<𤗣<𤗤<𤗥<𤗦<"
+ "𤗧<牕<牖<牗<𤗨<𤗩<𤗪<𤗫<𤗬<𤗭<𤗮<𤗯<𤗰<𤗱<𤗲<𤗳<𤗴<𤗵<𤗶<𤗷<𤗸<𤗹<㸣<𤗺<"
+ "𤗻<𤗼<𤗽<𤗾<㸤<𤗿<𤘀<ð¤˜<𤘂<牘<𤘃<㸥<𤘄<牙<㸦<𤘅<𤘆<𤘇<㸧<𤘈<𤘉<𤘈<𤘊<𤘋<牚<"
+ "𤘌<ð¤˜<𤘎<ð¤˜<ð¤˜<𤘑<𤘒<𤘓<牛<牜<𤘔<ç‰<牞<牟<㸨<𤘕<𤘖<𤘗<牠<牡<牢<牣<牤<㸩<㸪<𤘘<𤘙<"
+ "𤘚<𤘛<牢<牥<牦<牧<牨<物<牪<牫<牬<㸫<㸬<㸭<㸮<㸯<𤘜<ð¤˜<𤘞<𤘟<𤘠<𤘡<𤘢<𤘣<𤘤<𤘥<𤘦<"
+ "𤘧<𤘨<𤘩<𤘪<𤘫<𤘬<𤘭<𤘮<𤘯<𤘰<𤘱<𤘲<𤘳<𤘴<𤘵<𤘶<𤘷<牭<牮<牯<牰<牱<牲<牳<牴<牵"
+ "<㸰<㸱<㸲<㸳<㸴<𤘸<𤘹<𤘺<𤘻<𤘼<𤘽<𤘾<𤘿<𤙀<ð¤™<𤙂<𤙃<𤙄<𤙅<𤙆<𤙇<𤙈<𤙉<𤙊<"
+ "𤙋<𤙌<ð¤™<𤙎<ð¤™<ð¤™<牶<牷<牸<特<牺<㸵<㸶<㸷<㸸<𤙑<𤙒<𤙓<𤙔<𤙕<𤙖<𤙗<𤙘<𤙙<𤙚<牻<"
+ "牼<牽<牾<牿<çŠ<㸹<㸺<㸻<㸼<㸽<㸾<㸿<ã¹€<𤙛<𤙜<ð¤™<𤙞<𤙟<𤙠<𤙡<𤙢<𤙣<𤙤<𤙥<𤙦<𤙧<𤙨<"
+ "𤙩<𤙪<𤙫<𤙬<𤙭<𤙮<犀<犂<犃<犄<犅<犆<犇<犈<犉<犊<犋<ã¹<㹂<㹃<𤙯<𤙰<𤙱<𤙲<𤙳<𤙴<𤙵<"
+ "𤙶<𤙷<𤙸<𤙹<𤙺<𤙻<𤙼<𤙽<𤙾<𤙿<𤚀<ð¤š<𤚂<𤚃<𤚄<𤚅<𤚆<𤚇<𤚈<𤚉<𤚊<𤚋<𤚌"
+ "<犀<犌<çŠ<犎<çŠ<çŠ<犑<ã¹…<㹆<㹇<㹈<ð¤š<𤚎<ð¤š<ð¤š<𤚑<𤚒<𤚓<𤚔<𤚕<𤚖<𤚗<𤚘<𤚙<𤚚<𤚛<"
+ "ð¤š<𤚞<𤚟<𤚠<𤚡<𤚢<𤚣<𤚤<𤚥<𤚦<𤚧<𤚨<𤚿<犒<犓<犔<犕<犖<犗<㹄<㹉<㹊<㹋<𤚩<𤚪<𤚫<"
+ "𤚬<𤚭<𤚮<𤚯<𤚰<𤚱<𤚲<𤚳<𤚴<𤚵<𤚶<𤚷<𤚸<𤚹<𤚺<𤚻<𤚼<𤚽<𤚾<𤛀<ð¤›<𤛂<𤛃"
+ "<𤛄<𤛅<𤛆<𤛇<𤛈<𤛉<犕<犘<犙<犚<犛<㹌<ã¹<㹎<ã¹<ã¹<𤛊<𤛋<𤛌<ð¤›<𤛎<ð¤›<ð¤›<𤛑<𤛒<𤛓"
+ "<𤛔<𤛕<𤛖<𤛘<𤛙<𤛚<𤛛<𤛜<ð¤›<𤛞<𤛟<𤛠<犜<çŠ<犞<犟<㹑<ã¹’<㹓<𤛡<𤛢<𤛣<𤛤<𤛥<𤛦"
+ "<𤛧<𤛨<𤛩<𤛪<𤛫<𤛬<𤛭<𤛮<犠<㹔<㹕<㹖<𤛯<𤛰<𤛱<𤛲<𤛳<𤛴<𤛵<𤛶<𤛷<𤛸<㹗<㹘<"
+ "𤛹<𤛺<犡<犢<犣<犤<犥<犦<ã¹™<𤛻<𤛼<𤛽<𤛾<𤛿<𤜀<ð¤œ<犧<犨<𤜂<𤜃<𤜄<𤜅<𤜆<㹚<𤜇<𤜈<"
+ "𤜉<𤜊<𤜋<犩<ã¹›<𤜌<ð¤œ<𤜎<ð¤œ<ð¤œ<𤜑<𤜒<𤜓<犪<𤜔<𤜕<𤜖<𤜗<𤜘<犫<𤜙<犬<犭<犮<ð¡—œ<"
+ "𤜚<犯<犰<𤜛<𤜜<ð¤œ<𤜞<𤜟<𤜠<犯<犱<犲<犳<犴<犵<状<犷<犸<𤜡<𤜢<𤜣<𤜤<𤜥<𤜦<𤜧<𤜨<"
+ "𤜩<𤜪<𤜫<𤜬<𤜭<𤜮<犹<犺<犻<犼<犽<犾<犿<ç‹€<ç‹<ç‹‚<狃<ç‹„<ç‹…<狆<狇<狈<㹜<ã¹<㹞<㹟<ã¹ <𤜯<𤜰<𤜱"
+ "<𤜲<𤜳<𤜴<𤜵<𤜶<𤜷<𤜸<𤜹<𤜺<𤜻<𤜼<𤜽<𤜾<𤜿<ð¤€<ð¤<ð¤‚<ð¤ƒ<ð¤„<ð¤…<ð¤†<ð¤‡<"
+ "ð¤ˆ<ð¤‰<ð¤Š<ð¤‹<ð¤Œ<ð¤<ð¤Ž<ð¤®<ç‹€<𤜵<狉<ç‹Š<ç‹‹<ç‹Œ<ç‹<ç‹Ž<ç‹<ç‹<ç‹‘<ç‹’<ç‹“<ç‹”<ç‹•<ç‹–<ç‹—<狘<ç‹™<ç‹š<ç‹›<ç‹œ"
+ "<ç‹<ç‹ž<㹡<ã¹¢<ã¹£<㹤<ã¹¥<㹦<㹧<㹨<㹩<㹪<ð¤<ð¤<ð¤‘<ð¤’<ð¤“<ð¤”<ð¤•<ð¤–<ð¤—<ð¤˜<ð¤™<ð¤š<ð¤›<ð¤œ<"
+ "ð¤<ð¤ž<ð¤Ÿ<ð¤ <ð¤¡<ð¤¢<ð¤£<ð¤¤<ð¤¥<ð¤¦<ð¤§<ð¤¨<ð¤©<ð¤ª<ð¤«<ð¤¬<ð¤­<ç‹Ÿ<ç‹ <ç‹¡<ç‹¢<ç‹£<狤<ç‹¥<狦<狧"
+ "<狨<ç‹©<狪<ç‹«<独<ç‹­<ç‹®<狯<ç‹°<狱<狲<㹫<㹬<ã¹­<ã¹®<㹯<ã¹°<ð¤¯<ð¤°<ð¤±<ð¤²<ð¤³<ð¤´<ð¤µ<ð¤¶<ð¤·<ð¤¸<ð¤¹<"
+ "ð¤º<ð¤»<ð¤¼<ð¤½<ð¤¾<ð¤¿<𤞀<ð¤ž<𤞂<𤞃<𤞄<𤞅<𤞆<𤞇<𤞈<𤞉<𤞊<𤞋<𤞌<ð¤ž<𤞎<ð¤ž<ð¤ž"
+ "<𤞑<𤞒<𤞓<𤞔<𤞕<𤞖<𤞗<𤞘<𤞣<狳<ç‹´<狵<狶<ç‹·<狸<狹<狺<ç‹»<狼<狽<狾<ç‹¿<猀<çŒ<猂<猃<ã¹±<ã¹²<ã¹³<"
+ "ã¹´<ã¹µ<㹶<ã¹·<㹸<𤞙<𤞚<𤞛<𤞜<ð¤ž<𤞞<𤞟<𤞠<𤞡<𤞢<𤞤<𤞥<𤞦<𤞧<𤞨<𤞩<𤞪<𤞫<𤞬<"
+ "𤞭<𤞮<𤞯<𤞰<𤞱<𤞲<𤞳<𤞴<𤞵<𤞶<𤞷<𤞸<𤞹<𤞺<𤞻<𤞼<𤞽<𤞾<𤞿<𤟀<ð¤Ÿ<𤟂<狼<"
+ "猄<猅<猆<猇<猈<猉<猊<猋<猌<çŒ<猎<çŒ<çŒ<猑<猒<猓<猔<猕<猖<猗<猘<猙<猚<猛<猜<çŒ<猞<猟<猠<猡<猪<猫<ã¹¹<㹺<"
+ "ã¹»<ã¹¼<ã¹½<ã¹¾<㹿<㺀<𤟃<𤟄<𤟅<𤟆<𤟇<𤟈<𤟉<𤟊<𤟋<𤟌<ð¤Ÿ<𤟎<ð¤Ÿ<ð¤Ÿ<𤟑<𤟒<𤟓<𤟔<𤟕"
+ "<𤟖<𤟗<𤟘<𤟙<𤟚<𤟛<猪<猪<猢<猣<猤<猥<猦<猧<猨<猩<猬<猭<献<猯<猰<猱<猲<猳<猴<猵<猶<猷<猸<猹<ç"
+ "<ç“<ãº<㺂<㺃<㺄<㺅<㺆<𤟜<ð¤Ÿ<𤟞<𤟟<𤟠<𤟡<𤟢<𤟣<𤟤<𤟥<𤟦<𤟧<𤟨<𤟩<𤟪<𤟫<𤟬<𤟭"
+ "<𤟮<𤟯<𤟰<𤟱<𤟲<𤟳<𤟴<𤟶<𤟷<𤟸<𤟹<𤟺<𤟻<𤟼<𤟽<𤟾<𤟿<𤠀<ð¤ <𤠂<𤠃<𤠄<"
+ "𤠅<𤠆<𤠇<𤠈<𤠉<𤠊<𤠋<𤠌<猺<猻<猼<猽<猾<猿<ç€<ç‚<çƒ<ç…<ç†<ç‡<çˆ<ç‰<çŠ<㺇<㺈<㺉<㺊<㺋<㺌<ãº<"
+ "ð¤ <𤠎<ð¤ <ð¤ <𤠑<𤠒<𤠓<𤠔<𤠕<𤠖<𤠗<𤠘<𤠙<𤠚<𤠛<𤠜<ð¤ <𤠞<𤠟<𤠠<𤠡<𤠢<𤠣"
+ "<𤠤<𤠥<𤠦<𤠧<𤠨<𤠩<𤠪<𤠫<𤠬<𤠭<𤠮<𤠯<𤠰<𤠱<𤠲<𤠳<𤠴<𤠵<𤠶<𤠷<𤠸<𤠔<ç„"
+ "<çŒ<ç<çŽ<ç<ç<ç‘<ç’<ç”<ç•<㺎<ãº<ãº<㺑<㺒<㺓<𤠹<𤠺<𤠻<𤠼<𤠽<𤠾<𤠿<𤡀<ð¤¡<𤡂<𤡃<𤡄<"
+ "𤡅<𤡆<𤡇<𤡈<𤡉<𤡊<𤡋<𤡌<ð¤¡<𤡎<ð¤¡<ð¤¡<𤡑<𤡒<𤡓<𤡔<𤡕<𤡖<𤡗<𤡘<𤡙<𤡚<𤡛"
+ "<𤡜<ð¤¡<𤡞<𤡟<𤡠<𤡡<𤡢<ç‹<ç–<ç—<ç˜<ç™<çš<ç›<çœ<ç<çž<çŸ<ç <ç¡<ç¢<ç£<ç¤<㺔<㺕<㺖<㺗<㺘<㺙<𤡣"
+ "<𤡤<𤡥<𤡦<𤡧<𤡨<𤡩<𤡪<𤡫<𤡬<𤡭<𤡮<𤡯<𤡰<𤡱<𤡲<𤡳<𤡴<𤡵<𤡶<𤡷<𤡸<𤡹<"
+ "𤡺<𤡻<𤡼<𤡽<𤡾<𤡿<𤢀<ð¤¢<𤢂<𤢃<𤢄<𤢅<𤢆<𤢇<𤢈<𤢉<𤢊<𤢋<ç¥<ç¦<ç§<ç¨<ç©<çª<ç«<"
+ "ç¬<ç­<㺚<㺛<㺜<𤢌<ð¤¢<𤢎<ð¤¢<ð¤¢<𤢑<𤢒<𤢓<𤢔<𤢕<𤢖<𤢗<𤢘<𤢙<𤢚<𤢛<𤢜<ð¤¢<𤢞<"
+ "𤢟<𤢠<𤢡<𤢢<𤢣<𤢤<𤢥<ç®<ç¯<ç°<ç±<ç²<ç³<ç´<ãº<㺞<㺟<𤢦<𤢧<𤢨<𤢩<𤢪<𤢫<𤢬<𤢭<𤢮<"
+ "𤢯<𤢰<𤢱<𤢲<𤢳<çµ<ç¶<ç·<ç¸<㺠<𤢴<𤢵<𤢶<𤢷<𤢸<𤢹<𤢺<𤢻<𤢼<𤢽<𤢾<𤢿<𤣀<ð¤£<"
+ "𤣂<𤣃<𤣄<çµ<ç¹<çº<ç»<㺡<㺢<𤣅<𤣆<𤣇<𤣈<𤣉<𤣊<𤣋<𤣌<çº<ç¼<ç½<㺣<㺤<㺥<㺦<ð¤£<𤣎<ð¤£<"
+ "ð¤£<ç¾<ç¿<𤣑<𤣒<𤣓<𤣔<𤣕<𤣖<玀<𤣗<𤣘<𤣙<𤣚<çŽ<玂<玃<𤣛<𤣜<ð¤£<𤣞<㺧<𤣟<𤣠<𤣡<"
+ "𤣢<𤣣<𤣤<玄<𤣥<玅<𤣦<玆<率<玈<率<率<𤣧<𤣨<玉<王<𤣩<王<玊<玌<çŽ<玎<çŽ<çŽ<玑<㺨<㺩<㺪<㺫<𤣪"
+ "<𤣫<𤣬<玒<玓<玔<玕<玖<玗<玘<玙<玚<玛<㺬<㺭<㺮<㺯<𤣭<𤣮<𤣯<𤣰<𤣱<𤣲<𤣳<𤣴<𤣵<𤣶<𤣷<"
+ "𤣸<㺬<玜<çŽ<玞<玟<玠<玡<玢<玣<玤<玥<玦<玧<玨<玩<玪<玫<玬<玭<玮<环<现<玱<㺰<㺱<㺲<㺳<㺴<㺵<㺶<𤣹<𤣺"
+ "<𤣻<𤣼<𤣽<𤣾<𤣿<𤤀<ð¤¤<𤤂<𤤃<𤤄<𤤅<𤤆<𤤇<𤤈<𤤉<𤤊<𤤋<𤤌<ð¤¤<𤤎<玥<玲<玳<玴"
+ "<玵<玶<玷<玸<玹<玺<玻<玼<玽<玾<玿<ç€<ç<ç‚<çƒ<ç„<ç…<ç†<ç‡<çˆ<ç‰<çŠ<ç‹<çŒ<ç<çŽ<ç<ç<ç‘<㺷<㺸<㺹<㺺<㺻"
+ "<㺼<㺽<㺾<ð¤¤<ð¤¤<𤤑<𤤒<𤤓<𤤔<𤤕<𤤖<𤤗<𤤘<𤤙<𤤚<𤤛<𤤜<ð¤¤<𤤞<𤤟<𤤠<𤤡<𤤢<"
+ "𤤣<𤤤<𤤥<𤤦<𤤧<𤤨<𤤩<𤤪<𤤫<𤤬<𤤭<𤤮<𤤯<𤤰<𤤱<𤤲<𤤳<𤤴<玲<㺸<㺸<ç’<ç“<ç”<ç•<"
+ "ç–<ç—<ç˜<ç™<çš<ç›<çœ<ç<çž<çŸ<ç <ç¡<ç¢<ç£<ç¤<ç¥<ç¦<ç§<ç¨<ç©<çª<ç«<ç¬<ç­<ç®<ç¯<ç°<ç±<ç²<ç‰<㺿<㻀<ã»<㻂<"
+ "㻃<㻄<ã»…<㻆<㻇<㻈<ð ´¦<𤤵<𤤶<𤤷<𤤸<𤤹<𤤺<𤤻<𤤼<𤤽<𤤾<𤤿<𤥀<ð¤¥<𤥂<𤥃<𤥄<𤥅<𤥆"
+ "<𤥇<𤥈<𤥉<𤥊<𤥋<𤥌<ð¤¥<𤥎<ð¤¥<ð¤¥<𤥑<𤥒<𤥓<𤥔<𤥕<çž<ç‰<ç³<ç´<çµ<ç¶<ç¸<ç¹<çº<ç»<ç¼<"
+ "ç½<ç¾<ç¿<ç€<ç<ç‚<çƒ<ç„<ç…<ç†<ç‡<çˆ<çŠ<ç‹<çŒ<ç<çŽ<ç<ç<ç‘<ç’<ç“<㻉<㻊<㻋<㻌<ã»<㻎<ã»<ã»<𤥖<𤥗<𤥘"
+ "<𤥙<𤥚<𤥛<𤥜<ð¤¥<𤥞<𤥟<𤥠<𤥡<𤥢<𤥣<𤥤<𤥥<𤥦<𤥧<𤥨<𤥩<𤥪<𤥫<𤥬<𤥭<𤥮<"
+ "𤥯<𤥰<𤥱<𤥲<𤥳<𤥴<𤥵<𤥶<𤥷<𤥸<𤥹<𤥺<ç†<ç·<ç”<ç•<ç–<ç—<ç˜<ç™<çš<ç›<çœ<ç<çŸ<ç <ç¡<ç¢<"
+ "ç£<ç¤<ç¥<ç¦<ç§<ç¨<ç©<çª<ç«<ç¬<ç­<ç®<ç¯<ç°<ç±<ç²<ç³<ç´<çµ<ç¶<ç·<ç¸<ç¹<çº<ç»<ç¼<㻑<ã»’<㻓<ã»”<㻕<ã»–<ã»—<㻘<"
+ "ã»™<㻚<ã»›<㻜<𤥻<𤥼<𤥽<𤥾<𤥿<𤦀<ð¤¦<𤦂<𤦃<𤦄<𤦅<𤦆<𤦇<𤦈<𤦉<𤦊<𤦋<𤦌<ð¤¦<𤦎<"
+ "ð¤¦<ð¤¦<𤦑<𤦒<𤦓<𤦔<𤦕<𤦖<𤦗<𤦘<𤦙<𤦚<𤦛<𤦜<ð¤¦<𤦞<𤦟<𤦠<𤦡<𤦢<𤦣<𤦤<𤦥"
+ "<𤦦<𤦧<𤦨<𤦩<𤦪<𤦫<𤦬<𤦭<𤦮<ç¢<çž<ç½<ç¾<ç¿<ç‘€<ç‘<ç‘‚<瑃<ç‘„<ç‘…<瑆<瑇<瑈<瑉<ç‘Š<ç‘‹<ç‘Œ<ç‘<ç‘Ž<"
+ "ç‘<ç‘<ç‘‘<ç‘’<ç‘“<ç‘”<ç‘•<ç‘–<ç‘—<瑘<ç‘™<ç‘š<ç‘›<ç‘œ<ç‘<ç‘ž<ç‘Ÿ<ã»<㻞<㻟<ã» <㻡<㻢<㻣<㻤<㻥<㻦<𤦯<𤦰<𤦱<𤦲<𤦳"
+ "<𤦴<𤦵<𤦶<𤦷<𤦸<𤦹<𤦺<𤦻<𤦼<𤦽<𤦾<𤦿<𤧀<ð¤§<𤧂<𤧃<𤧄<𤧅<𤧆<𤧇<𤧈<𤧉<"
+ "𤧊<𤧋<𤧌<ð¤§<𤧎<ð¤§<ð¤§<𤧑<𤧒<𤧓<𤧔<𤧕<𤧖<𤧗<𤧘<𤧙<𤧚<𤧛<𤧜<ð¤§<𤧞<𤧟<𤧠"
+ "<𤧡<𤧢<𤧣<𤧤<𤧥<𤧦<𤧧<𤧨<𤧩<瑇<瑜<瑠<瑡<瑢<瑣<瑤<瑥<瑦<瑧<瑨<瑩<瑪<瑫<瑬<瑭<瑮<瑯<瑰<瑱<"
+ "瑲<瑳<瑴<瑵<瑶<瑷<瑸<㻧<㻨<㻩<㻪<𤧪<𤧫<𤧬<𤧭<𤧮<𤧯<𤧰<𤧱<𤧲<𤧳<𤧴<𤧵<𤧶<𤧷<𤧸<"
+ "𤧹<𤧺<𤧻<𤧼<𤧽<𤧾<𤧿<𤨀<ð¤¨<𤨂<𤨃<𤨄<𤨅<𤨆<𤨇<𤨈<𤨉<𤨊<𤨋<𤨌<ð¤¨<𤨎<ð¤¨"
+ "<ð¤¨<𤨑<𤨒<𤨓<ç‘©<瑱<瑱<瑹<瑺<ç‘»<瑼<瑽<瑾<ç‘¿<ç’€<ç’<ç’‚<ç’ƒ<ç’„<ç’…<ç’†<ç’‡<ç’ˆ<ç’‰<ç’Š<ç’‹<ç’Œ<ç’Ž<ç’“<㻫<㻬<ã»­"
+ "<ã»®<㻯<ã»°<ã»±<㻲<㻳<ã»´<𤨔<𤨕<𤨖<𤨗<𤨘<𤨙<𤨚<𤨛<𤨜<ð¤¨<𤨞<𤨟<𤨠<𤨡<𤨢<𤨣<𤨤<𤨥"
+ "<𤨦<𤨧<𤨨<𤨩<𤨪<𤨫<𤨬<𤨭<𤨮<𤨯<𤨰<𤨱<𤨲<𤨳<𤨴<𤨵<𤨶<𤨷<𤨸<𤨹<𤨺<𤨻<"
+ "𤨼<𤨽<𤨾<𤨿<ð¤©<ç’‰<ç’…<ç’<ç’<ç’<ç’‘<ç’’<ç’”<ç’•<ç’–<ç’—<ç’˜<ç’™<ç’š<ç’›<ç’œ<ç’<ç’ž<ç’Ÿ<ç’ <ç’¡<ç’£<ç’¤<㻵<㻶<ã»·<㻸"
+ "<㻹<㻺<ã»»<㻼<𤩀<𤩂<𤩃<𤩄<𤩅<𤩆<𤩇<𤩈<𤩉<𤩊<𤩋<𤩌<ð¤©<𤩎<ð¤©<ð¤©<𤩑<𤩒<𤩓<𤩔"
+ "<𤩕<𤩖<𤩗<𤩘<𤩙<𤩚<𤩛<𤩜<ð¤©<𤩞<𤩟<𤩠<𤩡<𤩢<𤩣<𤩤<𤩥<𤩦<𤩧<𤩨<𤩩<𤩪<ç’˜"
+ "<ç’¢<ç’¥<ç’¦<ç’§<ç’¨<ç’©<ç’ª<ç’«<ç’¬<ç’­<ç’®<ç’¯<ç’°<ç’±<ç’²<ç’³<ç’´<㻽<㻾<㻿<ã¼€<ã¼<㼂<𤩫<𤩬<𤩭<𤩮<𤩯<𤩰<𤩱<"
+ "𤩲<𤩳<𤩴<𤩵<𤩶<𤩷<𤩸<𤩹<𤩺<𤩻<𤩼<𤩽<𤩾<𤩿<𤪀<ð¤ª<𤪂<𤪃<𤪄<𤪅<𤪆<𤪇<𤪈"
+ "<𤪉<𤪊<ç’µ<ç’¶<ç’·<ç’¸<ç’¹<ç’º<ç’»<ç’¼<ç’½<ç’¾<ç’¿<ç“€<ç“<ç“‚<𤪋<𤪌<ð¤ª<𤪎<ð¤ª<ð¤ª<𤪑<𤪒<𤪓<𤪔<𤪕<"
+ "𤪖<𤪗<𤪘<𤪙<𤪚<𤪛<𤪜<ð¤ª<𤪞<𤪟<𤪠<𤪡<𤪢<𤪣<𤪤<𤪥<𤪦<𤪧<𤪨<𤪴<瓃<ç“„<ç“…<瓆<"
+ "瓇<瓈<瓉<瓊<瓋<㼃<㼄<㼅<㼆<𤪩<𤪪<𤪫<𤪬<𤪭<𤪮<𤪯<𤪰<𤪱<𤪲<𤪳<𤪵<𤪶<𤪷<𤪸<𤪹<𤪺"
+ "<𤪻<𤪼<𤪽<ç“Š<ç“Œ<ç“<ç“Ž<ç“<ç“<ç“‘<ç“’<㼇<𤪾<𤪿<𤫀<ð¤«<𤫂<𤫃<𤫄<𤫅<𤫆<𤫇<𤫈<ç““<ç“”<ç“•<ç“–"
+ "<𤫉<𤫊<𤫋<𤫌<ð¤«<𤫎<ð¤«<ð¤«<𤫑<𤫒<𤫓<ç“—<瓘<ç“™<𤫔<𤫕<𤫖<𤫗<𤫘<ç“š<㼈<𤫙<𤫚<𤫛<"
+ "𤫜<ð¤«<𤫞<𤫟<ç“›<𤫠<𤫣<𤫤<𤫥<𤫦<𤫧<𤫢<𤫨<𤫩<ç“œ<ç“<𤫪<㼉<㼊<𤫫<𤫬<𤫭<𤫮<𤫯<ç“ž"
+ "<ç“Ÿ<㼋<㼌<𤫰<𤫱<𤫲<𤫳<𤫴<ç“ <ã¼<㼎<𤫵<𤫶<𤫷<𤫸<𤫹<ã¼<𤫺<𤫻<𤫼<𤫽<𤫾<𤫿<𤬀<ç“¡<"
+ "ð¤¬<𤬂<𤬃<𤬄<𤬅<𤬆<ã¼<㼑<ã¼’<𤬈<𤬉<𤬊<𤬋<𤬌<㼓<ã¼”<𤬇<ð¤¬<ð¤¬<𤬑<𤬒<𤬓<𤬔<𤬕<ç“¢"
+ "<𤬎<ð¤¬<𤬖<𤬗<㼕<𤬘<𤬙<𤬚<ç“£<𤬛<𤬜<ð¤¬<瓤<𤬞<𤬟<𤬠<𤬡<ç“¥<𤬢<ã¼–<𤬣<𤬤<𤬥<瓦<瓧"
+ "<㼗<𤬦<𤬧<瓨<瓩<㼘<㼙<𤬨<𤬩<𤬪<𤬫<瓪<瓫<瓬<瓭<瓮<瓯<瓰<瓱<瓲<㼚<㼛<𤬬<𤬭<𤬮<𤬯<𤬰<𤬱"
+ "<𤬲<ã¼›<瓳<ç“´<瓵<㼜<ã¼<㼞<㼟<ã¼ <𤬳<𤬴<𤬵<𤬶<𤬷<𤬸<𤬹<𤬺<𤬻<𤬼<𤬽<瓶<ç“·<瓸<㼡<ã¼¢<ã¼£<㼤"
+ "<ã¼¥<㼦<𤬾<𤬿<𤭀<ð¤­<𤭂<𤭃<𤭄<𤭅<𤭆<𤭇<𤭈<𤭉<𤭊<𤭋<瓹<瓺<ç“»<瓼<㼧<㼨<㼩<㼪<𤭌<ð¤­"
+ "<𤭎<ð¤­<ð¤­<𤭑<𤭒<𤭓<𤭔<𤭕<𤭖<𤭗<𤭘<𤭙<𤭚<瓽<瓾<ç“¿<甀<ç”<㼫<㼬<ã¼­<ã¼®<㼯<ã¼°<ã¼±<𤭛<"
+ "𤭜<ð¤­<𤭞<𤭟<𤭠<𤭡<𤭢<𤭣<𤭤<𤭥<𤭦<𤭲<𤮖<甂<甃<甄<ç”…<甆<ã¼²<ã¼³<ã¼´<ã¼µ<㼶<ã¼·<𤭧<𤭨<"
+ "𤭩<𤭪<𤭫<𤭬<𤭭<𤭮<𤭯<𤭰<𤭱<𤭳<𤭴<𤭵<𤭶<𤭷<𤭸<甆<甇<甈<甉<㼸<㼹<㼺<𠪹<𤭹<𤭺<"
+ "𤭻<𤭼<𤭽<𤭾<𤭿<𤮀<ð¤®<𤮂<𤮃<𤮄<甊<甋<甌<ç”<甎<ã¼»<ã¼¼<ã¼½<ã¼¾<𤮅<𤮆<𤮇<𤮈<𤮉<𤮊<𤮋"
+ "<𤮌<ð¤®<ç”<ç”<甑<ç”’<㼿<ã½€<ã½<㽂<㽃<㽄<ã½…<𤮎<ð¤®<ð¤®<𤮑<𤮒<𤮓<𤮔<𤮕<𤮗<甓<ç””<甕<㽆<㽇<𤮘"
+ "<𤮙<𤮚<𤮛<𤮜<ð¤®<𤮞<𤮟<ç”–<㽈<㽉<𤮠<𤮡<𤮢<𤮣<𤮤<𤮥<ç”—<𤮦<𤮧<𤮨<𤮩<𤮪<𤮫<𤮬"
+ "<㽊<𤮭<𤮮<𤮯<𤮰<𤮱<𤮲<𤮳<𤮴<𤮵<㽋<𤮶<㽌<𤮷<𤮸<𤮹<甘<𤮺<甙<𤮻<𤮼<𤮽<𤮾<𤮿<"
+ "𤯀<甚<ð¤¯<𤯂<𤯃<𤯄<ã½<𤯅<ç”›<甜<𤯆<ç”<甞<㽎<𤯇<ã½<𤯈<ã½<𤯉<𤯊<𤯋<𤯌<㽑<ð¤¯<𤯎<ð¤¯<"
+ "𤯑<𤯒<生<𤯓<𤯔<𤯕<𤯖<𤯗<ç” <𤯘<𤯙<𤯚<𤯛<𤯜<ð¤¯<𤯞<甡<𤯟<產<産<𤯠<𤯡<𤯢<𤯣<"
+ "𤯤<𤯥<甤<甥<甦<㽒<𤯦<𤯧<𤯨<𤯩<𤯪<𤯫<甤<𤯬<𤯭<𤯮<𤯯<𤯰<𤯱<甧<𤯲<𤯳<𤯴<㽓<𤯵<"
+ "ã½”<𤯶<𤯷<𤯸<𤯹<𤯺<𤯻<𤯼<𤯾<𤯿<𤰀<ð¤°<𤰂<用<甩<甪<𤰃<甫<甬<𤰄<ð ‚µ<ð ƒ°<𡶤<𤰅<𤰆"
+ "<ç”­<ç”®<𠳫<𤰇<𤰈<甯<𤰉<𤰊<𤰋<𤰌<ð¤°<𤰎<ð¤°<𤰑<ð¤°<ç”°<ç”±<甲<申<ç”´<电<𤰒<甶<𤰓<𤰔<ç”·<"
+ "甸<甹<町<甼<㽕<ã½–<ã½—<𠃫<𤰕<𤰖<𤰗<𤰘<𤰙<𤰚<𤰛<𤰜<ç”»<甽<甾<甿<ç•€<ç•<ç•‚<畃<ç•„<ç•…<ð¡‡<𢑖<"
+ "ð¤°<𤰞<𤰟<𤰠<𤰡<𤰢<𤰣<𤰤<𤰥<𤰦<𤰧<𤰨<ç”»<甾<畆<畇<畈<畉<ç•Š<ç•‹<ç•Œ<ç•<ç•Ž<ç•<ç•<ç•‘<ç•’<ç•“<"
+ "㽘<㽙<㽚<𤰩<𤰪<𤰫<𤰬<𤰭<𤰮<𤰯<𤰰<𤰱<𤰲<𤰳<𤰴<𤰵<𤰶<𤰷<𤰸<𤰹<𤰺<𤰻<𤰼<𤰽"
+ "<𤰾<𤰿<𤱀<ð¤±<𤱂<𤱃<𤱄<𤱅<𤱆<𤱇<𤱈<𤱉<𤱊<𤱋<𤰶<ç•”<ç••<ç•–<ç•—<畘<ç•™<ç•š<ç•›<ç•œ<ç•<ç•ž<"
+ "ç•Ÿ<ã½›<㽜<𤱌<ð¤±<𤱎<ð¤±<ð¤±<𤱑<𤱒<𤱓<𤱔<𤱕<𤱖<𤱗<𤱘<𤱙<𤱚<𤱛<𤱜<ð¤±<𤱞<𤱟<𤱠"
+ "<𤱢<𤱣<𤱤<ç•™<ç•¡<ç•¢<ç•£<畤<ç•¥<畦<畧<ç•©<ç•°<ã½<㽞<𤱥<𤱦<𤱧<𤱨<𤱩<𤱪<𤱫<𤱬<𤱭<𤱮<𤱯<"
+ "𤱰<𤱱<𤱲<𤱳<𤱴<𤱵<𤱶<𤱷<𤱸<𤱹<𤱺<略<番<畫<畬<畭<畮<畯<畲<畳<畴<㽟<㽠<𤱻<𤱼<𤱽<𤱾"
+ "<𤱿<𤲀<ð¤²<𤲂<𤲃<𤲄<𤲅<𤲆<𤲇<𤲈<𤲉<𤲊<𤲋<𤲌<ð¤²<𤲎<ð¤²<ð¤²<ç•°<ç•°<畵<當<ç•·<畸<畹"
+ "<畺<㽡<ã½¢<ã½£<㽤<𤲑<𤲒<𤲓<𤲔<𤲕<𤲖<𤲗<𤲘<𤲙<𤲚<𤲛<𤲜<ð¤²<𤲞<𤲟<𤲠<𤲡<𤲢<𤲣<"
+ "𤲤<𤲥<𤲦<𤲧<𤲨<𤲩<𤲪<𤲒<畱<畻<畼<畽<㽥<𤲫<𤲬<𤲭<𤲮<𤲯<𤲰<𤲱<𤲲<𤲳<𤲴<𤲵<"
+ "𤲶<畾<ç•¿<㽦<㽧<㽨<𤲷<𤲸<𤲹<𤲺<𤲻<𤲼<𤲽<𤲾<𤲿<𤳀<ð¤³<𤳂<𤳃<𤳄<𤳅<𤳆<𤳇<ç–€<ç–<"
+ "ç–‚<㽩<𤳈<𤳉<𤳊<𤳋<𤳌<ð¤³<𤳎<ð¤³<𤳑<ç–ƒ<ç–„<㽪<𤳒<𤳓<𤳔<𤳕<𤳖<𤳗<𤳘<𤳙<𤳚<𤳜<"
+ "ð¤³<𤳞<𤳟<𤳠<𤳡<𤳢<𤳣<ç–…<㽫<㽬<𤳤<𤳥<𤳦<𤳧<𤳨<ð¨´<ç–†<ç–‡<ã½­<𤳩<𤳪<𤳫<𤳬<𤳭<𤳮"
+ "<𤳯<𤳰<𤳲<ç–ˆ<ã½®<𤳱<𤳳<𤳴<𤳵<𤳶<𤳷<𤳸<𤳹<𤳺<𤳻<𤳼<𤳽<𤳾<ç–‰<ç–Š<𤳿<𤴀<ð¤´<㽯<"
+ "𤴂<𤴃<𤴄<𤴅<𤴆<𤴇<𤴈<𤴉<𤴊<𤴋<𤴌<ð¤´<𤴎<ð¤´<ð¤´<𤴑<𤴒<ç–‹<𤴓<𤴔<𤴕<ç–Œ<𤴖<"
+ "𤴘<ç–<𤴗<ç–Ž<ç–<𤴙<𤴚<𤴛<ã½°<𤴜<ð¤´<ç–<ç–‘<𤴞<𤴟<𤴠<𤴡<𤴢<𤴣<𤴤<ç–’<𤴥<ç–“<ç–”<ç–•<ç––<ç–—"
+ "<ã½±<ã½²<𤴦<𤴧<𤴨<𤴩<𤴪<𤴫<𤴬<𤴭<𤴮<ç–˜<ç–™<ç–š<ç–›<ç–œ<ç–<ç–ž<ç–Ÿ<ç– <ã½³<ã½´<ã½µ<㽶<𤴯<𤴰<𤴱<"
+ "𤴲<𤴳<𤴴<𤴵<𤴶<疡<疢<疣<疤<疥<疦<疧<疨<疩<疪<疫<疬<疭<疮<疯<疺<㽷<㽸<㽹<㽺<㽻<㽼<𤴷<𤴸<𤴹<"
+ "𤴺<𤴻<𤴼<𤴽<𤴾<𤴿<𤵀<ð¤µ<𤵂<𤵃<𤵄<𤵅<𤵆<𤵇<𤵈<𤵉<𤵊<𤵋<𤵌<ð¤µ<𤵎<ð¤µ<ð¤µ"
+ "<𤵑<𤵒<𤵓<𤵔<𤵕<𤵖<ç–°<ç–±<ç–²<ç–³<ç–´<ç–µ<ç–¶<ç–·<ç–¸<ç–¹<ç–»<ç–¼<ç–½<ç–¾<ç–¿<ç—€<ç—<ç—‚<ç—ƒ<ç—„<ç—…<ç—†<ç—‡<ç—ˆ<ç—‰"
+ "<ã½½<ã½¾<㽿<ã¾€<ã¾<㾂<㾃<㾄<ã¾…<㾆<㾇<㾈<㾉<𤵗<𤵘<𤵙<𤵚<𤵛<𤵜<ð¤µ<𤵞<𤵟<𤵠<𤵡<𤵢<𤵣<𤵤"
+ "<𤵥<𤵦<𤵧<𤵨<𤵩<𤵪<𤵫<𤵬<𤵭<𤵮<𤵯<𤵰<𤵱<𤵲<𤵳<𤵴<𤵵<𤵶<ç—Š<ç—‹<ç—Œ<ç—<ç—Ž<ç—<ç—"
+ "<ç—‘<ç—’<ç—“<ç—”<ç—•<ç—–<㾊<㾋<㾌<ã¾<㾎<ã¾<ã¾<㾑<ã¾’<𤵷<𤵸<𤵹<𤵺<𤵻<𤵼<𤵽<𤵾<𤵿<𤶀<ð¤¶<𤶂<"
+ "𤶃<𤶄<𤶅<𤶆<𤶇<𤶈<𤶉<𤶊<𤶋<𤶌<ð¤¶<𤶎<ð¤¶<ð¤¶<𤶑<𤶒<𤶓<𤶔<ç——<ç—˜<ç—™<ç—š<ç—›<ç—œ<ç—<"
+ "ç—ž<ç—Ÿ<ç— <ç—¡<ç—¢<ç—£<ç—¤<ç—¥<ç—¦<ç—§<ç—¨<ç—©<ç—ª<ç—«<㾓<ã¾”<㾕<ã¾–<ã¾—<㾘<ã¾™<㾚<ã¾›<㾜<ã¾<㾞<㾟<ã¾ <㾡<𤶕<𤶖<𤶗<"
+ "𤶘<𤶙<𤶚<𤶛<𤶜<ð¤¶<𤶞<𤶟<𤶠<𤶡<𤶢<𤶣<𤶤<𤶥<𤶦<𤶧<𤶨<𤶩<𤶪<𤶫<𤶬<𤶭<𤶮"
+ "<𤶯<𤶰<𤶱<𤶲<𤶳<𤶴<𤶵<𤶶<𤶷<𤶸<𤶹<𤶺<𤶻<𤶼<𤶽<𤶾<𤶿<𤷀<ð¤·<ç—¢<ç—¬<ç—­<ç—®<ç—¯<"
+ "ç—°<ç—±<ç—²<ç—³<ç—´<ç—µ<ç—¶<ç—·<ç—¸<ç—¹<ç—º<ç—»<ç—¼<ç—½<ç—¾<ç—¿<瘀<ç˜<瘂<瘃<瘄<瘅<瘆<ã¾¢<ã¾£<㾤<ã¾¥<㾦<㾧<㾨<㾩<𤷂<𤷃<"
+ "𤷄<𤷅<𤷆<𤷇<𤷈<𤷉<𤷊<𤷋<𤷌<ð¤·<𤷎<ð¤·<ð¤·<𤷑<𤷒<𤷓<𤷔<𤷕<𤷖<𤷗<𤷘<𤷙<𤷚"
+ "<𤷛<𤷜<ð¤·<𤷞<𤷟<𤷠<𤷡<𤷢<𤷣<𤷤<𤷥<𤷦<𤷧<𤷨<𤷩<𤷪<𤷫<𤷬<𤷭<𤷮<𤷯<𤷰<"
+ "𤷱<𤷲<𤷳<𤷴<𤷵<𤷶<𤷷<𤷸<𤷹<𤷺<瘇<瘈<瘉<瘊<瘋<瘌<ç˜<瘎<ç˜<ç˜<瘑<瘒<瘓<瘔<瘕<瘖<瘗<瘘<瘟<"
+ "瘧<㾪<㾫<㾬<ã¾­<ã¾®<㾯<ã¾°<ã¾±<ã¾²<ã¾³<ã¾´<ã¾µ<𤷻<𤷼<𤷽<𤷾<𤷿<𤸀<ð¤¸<𤸂<𤸃<𤸄<𤸅<𤸆<𤸇<𤸈<"
+ "𤸉<𤸊<𤸋<𤸌<ð¤¸<𤸎<ð¤¸<ð¤¸<𤸑<𤸒<𤸓<𤸔<𤸕<𤸖<𤸗<𤸘<𤸙<𤸚<𤸛<𤸜<ð¤¸<𤸞<𤸟"
+ "<𤸠<𤸡<𤸢<𤸣<𤸤<𤸥<𤸦<𤸧<𤸨<𤸩<瘟<ç˜<瘙<瘚<瘛<瘜<ç˜<瘞<瘠<瘡<瘢<瘣<瘤<瘥<瘦<瘨<瘩<瘪<瘫"
+ "<㾶<ã¾·<㾸<ã¾¹<㾺<ã¾»<ã¾¼<ã¾½<ã¾¾<㾿<ã¿€<ã¿<𤸪<𤸫<𤸬<𤸭<𤸮<𤸯<𤸰<𤸱<𤸲<𤸳<𤸴<𤸵<𤸶<𤸷<"
+ "𤸸<𤸹<𤸺<𤸻<𤸼<𤸽<𤸾<𤸿<𤹀<ð¤¹<𤹂<𤹃<𤹄<𤹅<𤹆<𤹇<𤹈<𤹉<𤹊<𤹋<𤹌<ð¤¹<𤹎"
+ "<ð¤¹<ð¤¹<𤹑<𤹒<𤹓<𤹔<𤹕<𤹖<𤹗<𤹘<𤹙<𤹚<𤹛<𤹜<ç˜<瘬<瘭<瘮<瘯<瘰<瘱<瘲<瘳<瘴<瘵<瘶<瘷"
+ "<瘸<瘹<瘺<瘻<瘼<瘽<瘾<瘿<癊<ã¿‚<㿃<ã¿„<ã¿…<㿆<㿇<㿈<ð¤¹<𤹞<𤹟<𤹠<𤹡<𤹢<𤹣<𤹤<𤹥<𤹦<𤹧<𤹨"
+ "<𤹩<𤹪<𤹫<𤹬<𤹭<𤹮<𤹯<𤹰<𤹱<𤹲<𤹳<𤹴<𤹵<𤹶<𤹷<𤹸<𤹹<𤹺<𤹻<𤹼<𤹽<𤹾<"
+ "𤹿<𤺀<ð¤º<𤺂<𤺞<癀<ç™<療<癃<癄<ç™…<癆<癇<癈<癉<癋<癌<ç™<癎<㿉<ã¿Š<𤺃<𤺄<𤺅<𤺆<𤺇<𤺈<𤺉<"
+ "𤺊<𤺋<𤺌<ð¤º<𤺎<ð¤º<ð¤º<𤺑<𤺒<𤺓<𤺔<𤺕<𤺖<𤺗<𤺘<𤺙<𤺚<𤺛<𤺜<ð¤º<𤺟<𤺠<𤺡"
+ "<𤺢<𤺣<𤺤<𤺥<𤺦<𤺧<𤺨<𤺩<𤺪<𤺫<𤺬<𤺭<𤺮<𤺯<𤺰<𤺱<𤺲<𤺳<𤺴<𤺵<𤺶<𤺷<"
+ "𤺸<𤺹<療<ç™<ç™<癑<ç™’<癓<ç™”<癕<ç™–<ç™—<癘<ç™™<癚<ç™›<癜<ç™<癞<ã¿‹<ã¿Œ<ã¿<ã¿Ž<ã¿<ã¿<𤺺<𤺻<𤺼<𤺽<𤺾<"
+ "𤺿<𤻀<ð¤»<𤻂<𤻃<𤻄<𤻅<𤻆<𤻇<𤻈<𤻉<𤻊<𤻋<𤻌<ð¤»<𤻎<ð¤»<ð¤»<𤻑<𤻒<𤻓<𤻔<癟<"
+ "ç™ <癡<癣<ã¿‘<ã¿’<ã¿“<𤻕<𤻖<𤻗<𤻘<𤻙<𤻚<𤻛<𤻜<ð¤»<𤻞<𤻟<𤻠<𤻡<𤻢<𤻣<𤻤<𤻥<𤻦<𤻧"
+ "<𤻨<𤻩<𤻪<𤻫<𤻬<𤻭<𤻮<𤻯<癢<癤<癥<癦<㿔<𤻰<𤻱<𤻲<𤻳<𤻴<𤻵<𤻶<𤻷<𤻸<𤻹<𤻺<"
+ "𤻻<𤻼<𤻽<𤻾<𤻿<癧<癨<癩<癪<癫<ã¿•<ã¿–<ã¿—<𤼀<ð¤¼<𤼂<𤼃<𤼄<𤼅<𤼆<𤼇<𤼈<𤼉<𤼊<癩<癬<"
+ "ç™­<ç™®<㿘<𤼋<𤼌<ð¤¼<𤼎<ð¤¼<癯<ç™°<ã¿™<ð¤¼<𤼑<𤼒<𤼓<𤼔<𤼕<𤼖<𤼗<ç™±<癲<ã¿š<ã¿›<𤼘<𤼙<𤼚<"
+ "𤼛<𤼜<ð¤¼<𤼞<癳<𤼟<𤼠<𤼡<𤼢<ç™´<ã¿œ<𤼣<𤼤<癵<癶<𤼥<𤼦<ç™·<癸<癹<発<𤼧<𤼨<𤼩<𤼪<𤼫"
+ "<𤼬<𤼭<𤼮<登<發<𤼯<𤼰<𤼱<𤼲<𤼳<𤼴<𤼵<𤼶<𤼷<𤼸<𤼹<𤼺<𤼼<𤼻<白<百<癿<𤼽<𤼾<"
+ "皀<çš<çš‚<皃<ã¿<𤼿<𤽀<ð¤½<çš„<𤽂<𤽃<𤽄<𤽅<𤽆<𤽇<çš…<皆<皇<皈<ã¿ž<𤽈<𤽉<𤽊<𤽋<𤽌<ð¤½<"
+ "𤽎<ð¤½<ð¤½<𤽑<𤽒<𤽓<𤽔<𤽕<𤽖<𤽗<ç• <皉<皊<çš‹<皌<çš<ã¿Ÿ<𤽘<𤽙<𤽚<𤽛<𤽜<ð¤½<𤽞<𤽟<"
+ "𤽠<𤽡<𤽢<𤽣<𤽤<皎<çš<çš<çš‘<ã¿ <ã¿¡<𤽥<𤽦<𤽧<𤽨<𤽩<𤽪<𤽫<çš’<çš“<çš”<çš•<çš–<𠌟<𤽬<𤽭<"
+ "𤽮<𤽯<𤽰<𤽱<𤽲<𤽳<𤽴<𤽵<𤽶<𤽷<𤽸<çš—<皘<çš™<ã¿¢<𤽹<𤽺<𤽻<𤽼<𤽽<𤽾<𤽿<𤾀<ð¤¾<"
+ "𤾂<𤾃<𤾄<𤾅<𤾆<𤾇<ã¿£<㿤<𤾈<𤾉<𤾊<𤾋<𤾌<ð¤¾<𤾎<ð¤¾<ð¤¾<𤾑<𤾒<𤾓<çšš<çš›<çšœ<çš<çšž<"
+ "ã¿¥<𤾔<𤾕<𤾖<𤾗<𤾘<𤾙<𤾚<皟<çš <çš¡<㿦<𤾛<𤾜<ð¤¾<𤾞<𤾟<皢<皣<皤<皥<𤾠<𤾡<𤾢<𤾣<𤾤"
+ "<𤾥<𤾦<𤾡<皦<皧<皨<𤾧<𤾨<𤾩<𤾪<皩<㿧<𤾫<𤾬<𤾭<𤾮<𤾯<𤾰<𤾱<𤾲<𤾳<皪<皫<𤾴<𤾵"
+ "<𤾶<𤾷<皬<㿨<𤾸<𤾹<𤾺<𤾸<𤾻<𤾼<𤾽<çš­<𤾾<𤾿<𤿀<ð¤¿<𤿂<𤿃<ã¿©<𤿄<𤿅<çš®<𤿆<𤿇<"
+ "皯<㿪<𤿈<𤿉<𤿊<𤿋<𤿌<ð¤¿<ã¿«<㿬<𤿎<ð¤¿<ð¤¿<𤿑<𤿒<𤿓<𤿔<çš°<çš±<ã¿­<ã¿®<𤿕<𤿖<𤿗<𤿘<"
+ "𤿙<𤿚<𤿛<𤿜<ð¤¿<𤿞<çš²<㿯<ã¿°<𤿟<𤿠<𤿡<𤿢<𤿣<𤿤<𤿥<𤿦<çš³<çš´<㿱<𤿧<𤿨<𤿩<𤿪<𤿫"
+ "<𤿬<𤿭<𤿮<𤿰<𤿱<𤿲<皵<㿲<㿳<𤿯<𤿳<𤿴<𤿵<𤿶<𤿷<𤿸<𤿹<𤿺<𤿻<𤿼<𤿽<𤿾<𤿿<皶"
+ "<çš·<皸<çš¹<ã¿´<㿵<𥀀<ð¥€<𥀂<𥀃<𥀄<𥀅<𥀆<𥀇<𥀈<𥀉<𥀊<𥀋<𥀌<皺<㿶<ã¿·<ð¥€<𥀎<ð¥€<ð¥€<"
+ "𥀑<𥀒<𥀓<çš»<㿸<𥀔<𥀕<𥀖<𥀗<𥀘<𥀙<𥀚<𥀛<𥀜<ð¥€<𥀞<çš¼<𥀟<𥀠<𥀡<çš½<㿹<𥀢<𥀣<"
+ "𥀤<𥀥<𥀦<𥀧<𥀨<𥀩<𥀪<𥀫<𥀬<𥀭<𥀮<皾<㿺<𥀯<𥀰<𥀱<𥀲<𥀳<𥀴<𥀵<𥀶<𥀷<𥀸<"
+ "𥀹<𥀺<çš¿<盀<ç›<𥀿<ð¥€<盂<ã¿»<ð¥<ð¥‚<ð¥ƒ<ð¥„<ð¥…<ð¥„<盃<盄<ç›…<盆<盇<盈<㿼<㿽<ð¥†<ð¥‡<ð¥ˆ<ð¥‰<"
+ "ð¥Š<ð¥‹<ð¥Œ<ð¥<㿼<盉<益<盋<盌<ç›<盎<ç›<ç›<监<㿾<ã¿¿<䀀<ð¥Ž<ð¥<ð¥<ð¥‘<ð¥’<ð¥“<ð¥”<ð¥•<ð¥–<ð¥—<"
+ "ð¥˜<ð¥™<ð¥š<ð¥›<ð¥œ<ð¥<ð¥«<益<益<ç›’<盓<ç›”<盕<ç›–<ç›—<盘<ç››<ä€<䀂<ð¥ž<ð¥Ÿ<ð¥ <ð¥¡<ð¥¢<ð¥£<ð¥¤<ð¥¥"
+ "<ð¥¦<ð¥§<ð¥¨<ð¥©<ð¥ª<ç››<ç›™<盚<盜<䀃<ð¥¬<ð¥­<ð¥®<ð¥¯<ð¥°<ð¥±<ð¥²<ð¥³<ð¥´<ð¥µ<ð¥¶<ç›<盞<盟<䀄<䀅"
+ "<ð¥·<ð¥¸<ð¥¹<ð¥º<ð¥»<ð¥¼<ð¥½<ð¥¾<ð¥¿<𥂀<ð¥‚<𥂂<ç› <盡<盢<監<䀆<𥂃<𥂄<𥂅<𥂆<盤<𥂇<𥂈<"
+ "𥂉<𥂊<𥂋<𥂌<ð¥‚<𥂎<ð¥‚<ð¥‚<𥂑<𥂒<盥<盦<盧<䀇<䀈<𥂓<𥂔<𥂕<𥂖<𥂗<𥂘<𥂙<𥂚<𥂛<"
+ "𥂜<ð¥‚<𥂞<𥂟<𥂠<𥂡<𥂢<𥂣<𥂤<盧<䀈<盨<盩<盪<䀉<𥂥<𥂦<𥂧<𥂨<𥂩<𥂪<𥂫<𥂬<𥂭<𥂮"
+ "<𥂯<𥂰<𥂱<𥂲<𥂴<𥂵<𥂶<𥂷<盫<盬<𥂸<𥂹<𥂺<𥂼<𥂽<𥂾<𥂿<𥃀<䀊<𥂻<ð¥ƒ<𥃂<𥃃<"
+ "𥃄<𥃅<𥃆<ç›­<𥃇<𥃈<𥃉<𥃊<𥃋<𥃌<ð¥ƒ<𥃎<ð¥ƒ<ð¥ƒ<𥃑<䀋<𥃒<𦪹<䀌<𥃓<𥃔<𥃕<𥃖<𥃗"
+ "<𥃘<𥃙<𥃞<𥃚<𥃛<𥃜<ð¥ƒ<𥃟<𥃠<𥃡<ä€<𥃢<𥃣<ç›®<𥃤<𥃥<盯<䀎<ä€<𥃦<𥃧<𥃨<𥃩<𥃪<"
+ "𥃫<𥃬<𥃭<𥃮<𥃯<𥃰<𥃱<ç›°<ç›±<盲<盳<ç›´<盵<ä€<䀑<䀒<䀓<䀔<𥃲<𥃳<𥃴<𥃵<𥃶<𥃷<𥃸<𥃹<"
+ "𥃺<𥃻<𥃼<𥃽<𥃾<𥃿<𥄀<ð¥„<𥄂<ç›´<ç›´<𥃳<𥃲<盶<ç›·<相<盹<盺<ç›»<盼<盽<盾<盿<眀<çœ<眂<眃<眄<眅"
+ "<眆<眇<眈<眉<眊<看<県<çœ<䀕<䀖<䀗<䀘<䀙<䀚<䀛<䀜<ä€<䀞<𥄃<𥄄<𥄅<𥄆<𥄇<𥄈<𥄉<𥄊<𥄋<𥄌<"
+ "ð¥„<𥄎<ð¥„<ð¥„<𥄑<𥄒<𥄓<𥄔<𥄕<𥄖<𥄗<𥄘<𥄙<𥄚<𥄛<𥄜<ð¥„<𥄞<𥄟<𥄠<𥄡<𥄢<𥄣"
+ "<𥄤<𥄥<𥄦<𥄧<𥄨<𥄩<𥄪<𥄫<𥄬<𥄭<𥄮<𥄯<𥄰<çœ<䀘<𥄙<眎<çœ<çœ<眑<眒<眓<眔<眕<眖<眗<眘"
+ "<眙<眚<眛<眜<çœ<眞<真<眠<眡<眢<眣<眤<眥<眦<眧<眨<眩<眪<眫<眬<眿<䀟<䀠<䀡<䀢<䀣<䀤<䀥<䀦<𥄱<𥄲<𥄳<"
+ "𥄴<𥄵<𥄶<𥄷<𥄸<𥄹<𥄺<𥄻<𥄼<𥄽<𥄾<𥄿<𥅀<ð¥…<𥅂<𥅃<𥅄<𥅅<𥅆<𥅇<𥅈<𥅉<𥅊"
+ "<𥅋<𥅌<ð¥…<𥅎<ð¥…<ð¥…<𥅑<𥅒<𥅓<𥅔<𥅕<𥅖<𥅗<𥅘<𥅙<𥄳<眞<真<真<眭<眮<眯<眰<眱<眲<眳"
+ "<眴<眵<眶<眷<眸<眹<眺<眻<眼<眽<眾<ç<䀧<䀨<䀩<䀪<䀫<䀬<䀭<䀮<𠌪<𥅚<𥅛<𥅜<ð¥…<𥅞<𥅟<𥅠<𥅡<"
+ "𥅢<𥅣<𥅤<𥅥<𥅦<𥅧<𥅨<𥅩<𥅪<𥅫<𥅬<𥅭<𥅮<𥅯<𥅰<𥅱<𥅲<𥅳<𥅴<𥅵<𥅶<𥅷<𥅸"
+ "<𥅹<𥅺<𥅻<𥅼<𥅽<𥅾<𥅿<𥆀<ð¥†<𥆂<𥆃<𥆄<𥆅<𥆆<𥆇<𥆈<𥆉<ç€<ç‚<çƒ<ç„<ç…<ç†<ç‡<çˆ<"
+ "ç‰<çŠ<ç‹<çŒ<ç<çŽ<ç<ç<ç‘<䀯<䀰<䀱<䀲<䀳<䀴<䀵<䀶<䀷<䀸<䀹<䀺<䀻<䀼<䀽<䀾<䀿<ä€<𥆊<𥆋<𥆌<ð¥†<𥆎"
+ "<ð¥†<ð¥†<𥆑<𥆒<𥆓<𥆔<𥆕<𥆖<𥆗<𥆘<𥆙<𥆚<𥆛<𥆜<ð¥†<𥆞<𥆟<𥆠<𥆡<𥆢<𥆣<𥆤<"
+ "𥆥<𥆦<𥆧<𥆨<𥆩<𥆪<𥆫<𥆬<𥆭<𥆮<𥆯<𥆰<𥆱<𥆲<𥆳<𥆴<𥆵<𥆶<𥆷<𥆸<𥆹<𥆺<𥆻"
+ "<𥆼<𥆽<𥆾<𥆿<𥇀<ð¥‡<𥇂<𥇃<𥇄<𥇆<𥇇<𥇈<𥇫<çŠ<ç€<䀹<çŠ<䀹<ç’<ç“<ç”<ç•<ç–<ç—<ç˜<ç™<çš<"
+ "ç›<çœ<ç<çž<çŸ<ç <ç¢<ç£<ç¤<ç¥<ç¦<ç§<ç¨<ç©<çª<ç«<ç¬<ç­<ä<ä‚<äƒ<ä„<ä…<ä†<ä‡<äˆ<ä‰<𢰿<𢾥<𣪭<𥇅<𥇉"
+ "<𥇊<𥇋<𥇌<ð¥‡<𥇎<ð¥‡<ð¥‡<𥇑<𥇒<𥇓<𥇔<𥇕<𥇖<𥇗<𥇘<𥇙<𥇚<𥇛<𥇜<ð¥‡<𥇞<𥇟<"
+ "𥇠<𥇡<𥇢<𥇣<𥇤<𥇥<𥇦<𥇧<𥇨<𥇩<𥇪<𥇬<𥇭<𥇮<𥇯<𥇰<𥇱<𥇲<𥇳<𥇵<𥇶<𥇷<𥇸"
+ "<𥇹<𥇺<𥇻<𥇼<𥇽<𥇾<𥇿<𥈀<ð¥ˆ<ä†<ç¡<ç®<ç¯<ç°<ç±<ç²<ç³<ç´<çµ<ç¶<ç·<ç¸<ç¹<çº<ç»<ç¼<ç½<ç¾<ç¿<"
+ "瞀<çž<çž‚<瞃<çž„<çž…<瞆<äŠ<ä‹<äŒ<ä<äŽ<ä<ä<ä‘<ä’<ä“<ä”<ä•<ä–<𥈂<𥈃<𥈄<𥈅<𥈆<𥈇<𥈈<𥈉<𥈊<"
+ "𥈋<𥈌<ð¥ˆ<𥈎<ð¥ˆ<ð¥ˆ<𥈑<𥈒<𥈓<𥈔<𥈕<𥈖<𥈗<𥈘<𥈙<𥈚<𥈛<𥈜<ð¥ˆ<𥈞<𥈟<𥈠<𥈡"
+ "<𥈢<𥈣<𥈤<𥈥<𥈦<𥈧<𥈨<𥈩<𥈪<𥈫<𥈬<𥈭<𥈮<𥈯<𥈰<𥈱<𥈲<𥈳<𥈴<𥈵<𥈶<𥈷<"
+ "𥈸<𥈹<𥈺<𥈻<瞇<瞈<瞉<瞊<çž‹<瞌<çž<瞎<çž<çž<çž‘<çž’<çž“<ä—<ä˜<ä™<äš<ä›<äœ<ä<äž<äŸ<ä <ä¡<𥈼<𥈽<𥈾"
+ "<𥈿<𥉀<ð¥‰<𥉂<𥉃<𥉄<𥉅<𥉆<𥉇<𥉈<𥉉<𥉊<𥉋<𥉌<ð¥‰<𥉎<ð¥‰<ð¥‰<𥉑<𥉒<𥉓<𥉔<"
+ "𥉕<𥉖<𥉗<𥉘<𥉙<𥉚<𥉛<𥉜<ð¥‰<𥉞<𥉟<𥉠<𥉡<𥉢<𥉣<𥉤<𥉥<𥉦<𥉧<𥉨<𥉩<𥉪<𥉫"
+ "<𥉬<𥉭<𥉮<𥉯<𥉰<𥉱<𥉲<𥉳<𥊇<𥉉<çž‹<çž”<çž•<çž–<çž—<瞘<çž™<çžš<çž›<çžœ<çž<çžž<瞟<çž <çž¡<瞢<瞣<ä¢<ä£"
+ "<ä¤<ä¥<ä¦<ä§<ä¨<ä©<äª<𥉴<𥉵<𥉶<𥉷<𥉸<𥉹<𥉺<𥉻<𥉼<𥉽<𥉾<𥉿<𥊀<ð¥Š<𥊂<𥊃<𥊄<𥊅"
+ "<𥊆<𥊈<𥊉<𥊊<𥊋<𥊌<ð¥Š<𥊎<ð¥Š<ð¥Š<𥊑<𥊒<𥊓<𥊔<𥊕<𥊖<𥊗<𥊘<𥊙<𥊚<𥊛<𥊜<"
+ "ð¥Š<𥊞<𥊟<𥊠<𥊡<𥊢<𥊣<𥊤<𥊥<𥊦<𥊧<𥊨<𥊩<𥋖<瞤<瞥<瞦<瞧<瞨<çž©<瞪<çž«<瞬<çž­<çž®<瞯<çž°<"
+ "çž±<çž²<çž³<çž´<çžµ<瞶<çž·<ä«<ä¬<ä­<ä®<ä¯<ä°<ä±<ä²<ä³<𥊪<𥊫<𥊬<𥊭<𥊮<𥊯<𥊰<𥊱<𥊲<𥊳<𥊴<𥊵<"
+ "𥊶<𥊷<𥊸<𥊹<𥊺<𥊻<𥊼<𥊽<𥊾<𥊿<𥋀<ð¥‹<𥋂<𥋃<𥋄<𥋅<𥋆<𥋇<𥋈<𥋉<𥋊<𥋋<𥋌"
+ "<ð¥‹<𥋎<ð¥‹<ð¥‹<𥋑<𥋒<𥋓<𥋔<𥋕<𥋗<瞧<瞸<çž¹<瞺<çž»<çž¼<çž½<çž¾<çž¿<矀<çŸ<矂<ä´<äµ<ä¶<ä·<ä¸<ä¹<äº"
+ "<𥋘<𥋙<𥋚<𥋛<𥋜<ð¥‹<𥋞<𥋟<𥋠<𥋡<𥋢<𥋣<𥋤<𥋥<𥋦<𥋧<𥋨<𥋩<𥋪<𥋫<𥋬<𥋭<"
+ "𥋮<𥋯<𥋰<𥋱<𥋲<𥋳<𥋴<𥋵<𥋶<𥋷<𥋸<𥋹<𥋺<𥋻<𥋼<𥋽<𥋾<矃<矄<矅<矆<矇<矈<矉<矊<"
+ "𥋿<𥌀<ð¥Œ<𥌂<𥌃<𥌄<𥌅<𥌆<𥌇<𥌈<𥌉<𥌊<𥌋<𥌌<ð¥Œ<𥌎<ð¥Œ<ð¥Œ<𥌑<𥌒<𥌓<𥌔<𥌖"
+ "<𥌗<𥌘<𥌙<矋<矌<çŸ<矎<çŸ<ä»<ä¼<ä½<ä¾<𥌚<𥌛<𥌜<ð¥Œ<𥌞<𥌟<𥌠<𥌡<𥌢<𥌣<𥌤<𥌥<𥌦<"
+ "𥌧<𥌨<𥌩<𥌪<𥌫<𥌬<çŸ<矑<矒<矓<ä¿<ä‚€<𥌭<𥌮<𥌯<𥌰<𥌱<𥌲<𥌳<𥌴<𥌵<𥌶<𥌷<𥌸<𥌹"
+ "<ð¥‚<ä‚<𥌺<𥌻<𥌼<𥌽<𥌾<𥌿<ð¥€<ð¥<ð¥ƒ<ð¥…<ð¥†<ð¥‡<矔<ä‚‚<䂃<ð¥ˆ<ð¥‰<ð¥Š<ð¥‹<ð¥Œ<ð¥<ð¥Ž"
+ "<矕<矗<ð¥<ð¥<ð¥‘<ð¥’<矘<矙<ä‚„<ð¥“<矖<矚<ð¥”<ð¥•<ð¥–<ð¥—<ð¥˜<ð¥™<ð¥š<ð¥›<ð¥œ<ä‚…<矛<ð¥<䂆<ð¥ž"
+ "<矜<䂇<ð¥Ÿ<ð¥ <çŸ<ð¥¡<ð¥¢<ð¥£<ð¥¤<ð¥¥<ð¥¦<䂈<ð¥§<ð¥¨<ð¥©<矞<矟<ð¥ª<ð¥«<ð¥¬<ð¥­<ð¥®<ð¥¯<ð¥°<"
+ "ð¥±<矠<ð ¢<ð¥²<ð¥³<ð¥´<ð¥µ<䂉<ð¥¶<ð¥·<ð¥¸<ð¥¹<ð¥º<ð¥»<ð¥¼<ð¥½<ð¥¾<ð¥¿<𥎀<ð¥Ž<𥎂<𥎃<𥎄<"
+ "𥎅<𥎆<𥎇<𥎈<𥎉<𥎊<𥎋<𥎌<ð¥Ž<ä‚Š<ä‚‹<ä‚Œ<ð¥Ž<ð¥Ž<𥎑<𥎒<𥎎<𥎓<𥎔<𥎕<𥎖<𥎗<𥎘<𥎙"
+ "<𥎚<𥎛<𥎜<ä‚<𥎞<𥎟<𥎠<ð¥Ž<𥎡<𥎢<𥎣<ä‚Ž<矡<𥎤<𥎥<矢<矣<𥎦<𥎧<矤<知<𥎨<矦<矧<矨<𥎩"
+ "<𥎪<𥎫<𥎬<𥎭<𥎮<𥎯<矩<ä‚<ä‚<𥎰<𥎱<𥎲<𥎳<𥎴<𥎵<𥎶<𥎷<𥎸<矪<矫<ä‚‘<ä‚’<𥎹<𥎺<𥎻"
+ "<𥎼<𥎽<𥎾<𥎿<ð¥€<ð¥<ð¥‚<ð¥ƒ<ð¥„<ð¥…<ð¥†<ð¥‡<ð¥ˆ<ð¥‰<ð¥Š<ð¥‹<ð¥Œ<ð¥<矬<短<ä‚“<ð …°<ð¥Ž<"
+ "ð¥<ð¥<ð¥‘<ð¥’<ð¥“<ð¥”<ð¥•<ð¥–<ð¥—<矮<ä‚”<ð¥˜<ð¥™<ð¥š<ð¥›<ð¥œ<ð¥<ð¥ž<ð¥Ÿ<ð¥ <ð¥¡<ð¥¢<ð¥£<"
+ "ð¥¤<ð¥¥<ð¥¦<ð¥§<ð¥¨<ð¥©<ä‚•<ð¥ª<ð¥«<ð¥¬<ð¥­<ð¥®<ð¥¯<ð¥°<ð¥±<ð¥²<ð¥³<ð¥´<ð¥µ<ð¥¶<ð¥·<ð¥¸<ð¥¹<"
+ "ð¥º<ð¥»<ð¥¼<ð¥½<ð¥¾<ð¥¿<矯<矰<ð¥€<ð¥<ð¥‚<ð¥ƒ<ð¥„<ð¥…<ð¥†<ð¥‡<ð¥ˆ<ð¥‰<ð¥Š<ð¥‹<矱<ð¥Œ<ð¥<ð¥Ž"
+ "<ð¥<矲<ð¥‘<ð¥’<ð¥<ð¥“<ð¥”<石<ä‚–<ð¥•<ð¥–<ä‚–<矴<矵<矶<ä‚—<ð¥—<ð¥˜<ð¥™<ð¥š<ð¥›<ð¥œ<矷<矸<矹<矺<矻"
+ "<矼<矽<矾<矿<ç €<ç <䂘<ä‚™<ð¥<ð¥ž<ð¥Ÿ<ð¥ <ð¥¡<ð¥¢<ð¥£<ð¥¤<ð¥¥<ð¥¦<ð¥§<ð¥¨<ð¥<æ³µ<ç ‚<ç ƒ<ç „<ç …<ç †<"
+ "ç ‡<ç ˆ<ç ‰<ç Š<ç ‹<ç Œ<ç <ç Ž<ç <ç <ç ‘<ç ’<ç “<ç ”<ç •<ç –<ç —<ç ˜<ç ™<ç š<ç ›<ç œ<ä‚š<ä‚›<ä‚œ<ä‚<ä‚ž<ð¥©<ð¥ª<ð¥«<ð¥¬<ð¥­"
+ "<ð¥®<ð¥¯<ð¥°<ð¥±<ð¥²<ð¥³<ð¥´<ð¥µ<ð¥¶<ð¥·<ð¥¸<ð¥¹<ð¥º<ð¥»<ð¥¼<ð¥½<ð¥¾<ð¥¿<𥑀<ð¥‘<𥑂<𥑃<"
+ "𥑄<𥑅<ç <ç ž<ç Ÿ<ç  <ç ¡<ç ¢<ç £<ç ¤<ç ¥<ç ¦<ç §<ç ¨<ç ©<ç ª<ç «<ç ¬<ç ­<ç ®<ç ¯<ç °<ç ±<ç ²<ç ³<ç ´<ç µ<ç ¶<ç ·<ç ¸<ç ¹<ç º<ç »<"
+ "ç ¼<ç ½<ç ¾<ç ¿<ç¡€<ç¡<ä‚Ÿ<ä‚ <ä‚¡<ä‚¢<ä‚£<䂤<ä‚¥<䂦<䂧<䂨<𥑆<𥑇<𥑈<𥑉<𥑊<𥑋<𥑌<ð¥‘<𥑎<ð¥‘<ð¥‘<𥑑<"
+ "𥑒<𥑓<𥑔<𥑕<𥑖<𥑗<𥑘<𥑙<𥑚<𥑛<𥑜<ð¥‘<𥑞<𥑟<𥑠<𥑡<𥑢<𥑣<𥑤<𥑥<𥑦<𥑧<𥑨"
+ "<𥑩<𥑪<𥑫<𥑬<𥑭<𥑮<𥑯<𥑰<𥑱<𥑲<ç¡‚<硃<ç¡„<ç¡…<硆<硇<硈<硉<ç¡Š<ç¡‹<ç¡Œ<ç¡<ç¡Ž<ç¡<ç¡<ç¡‘<ç¡’<ç¡“<ç¡”"
+ "<硕<硖<硗<硘<硙<硚<硛<䂩<䂪<䂫<䂬<䂭<䂮<䂯<𥑳<𥑴<𥑵<𥑶<𥑷<𥑸<𥑹<𥑺<𥑻<𥑼<𥑽<𥑾<𥑿<"
+ "𥒀<ð¥’<𥒂<𥒃<𥒄<𥒅<𥒆<𥒇<𥒈<𥒉<𥒊<𥒋<𥒌<ð¥’<𥒎<ð¥’<ð¥’<𥒑<𥒒<𥒓<𥒔<𥒕<𥒖"
+ "<𥒗<𥒘<𥒙<𥒚<𥒛<𥒜<ð¥’<𥒞<𥒟<𥒠<𥒡<𥒢<𥒣<𥒤<𥒥<𥒦<𥒧<𥒨<𥒩<ç¡Ž<ç¡œ<ç¡<ç¡ž<ç¡Ÿ<"
+ "硠<硡<硢<硣<硤<硥<硦<硧<硨<硩<硪<硫<硬<硭<确<硯<硰<硱<硲<硳<硴<硵<硶<硷<䂰<䂱<䂲<䂳<䂴<䂵<䂶<𥒪<𥒫<"
+ "𥒬<𥒭<𥒮<𥒯<𥒰<𥒱<𥒲<𥒳<𥒴<𥒵<𥒶<𥒷<𥒸<𥒹<𥒺<𥒻<𥒼<𥒽<𥒾<𥒿<𥓀<ð¥“<𥓂"
+ "<𥓃<𥓄<𥓅<𥓆<𥓇<𥓈<𥓉<ç¡«<硸<硹<硺<ç¡»<硼<硽<ç¡¿<碀<ç¢<碂<碃<碄<碅<碆<碇<碈<碉<碊<碋<碌<ç¢<碎<"
+ "ç¢<ç¢<碑<碒<碓<碔<碕<碖<碗<碘<碙<碚<碛<碜<碰<ä‚·<䂸<䂹<䂺<ä‚»<䂼<䂽<䂾<ä‚¿<䃀<äƒ<䃂<䃃<䃄<䃅<䃆<䃇<𥓊<"
+ "𥓋<𥓌<ð¥“<𥓎<ð¥“<ð¥“<𥓑<𥓒<𥓓<𥓔<𥓕<𥓖<𥓗<𥓘<𥓙<𥓚<𥓛<𥓜<ð¥“<𥓞<𥓟<𥓠<𥓡"
+ "<𥓢<𥓣<𥓤<𥓥<𥓦<𥓧<𥓨<𥓩<𥓪<𥓫<𥓬<𥓭<𥓮<𥓯<𥓰<𥓱<𥓲<𥓳<𥓴<𥓵<𥓶<𥓷<"
+ "𥓸<𥓹<碌<碑<碌<硾<ç¢<碞<碟<碠<碡<碢<碣<碤<碥<碦<碧<碨<碩<碪<碫<碬<碭<碮<碯<碱<碲<碳<碴<碵<碶<碷<碸<"
+ "碹<ç£<䃈<䃉<䃊<䃋<䃌<äƒ<䃎<äƒ<äƒ<𥓺<𥓻<𥓼<𥓽<𥓾<𥓿<𥔀<ð¥”<𥔂<𥔃<𥔄<𥔅<𥔆<𥔇<𥔈<"
+ "𥔉<𥔊<𥔋<𥔌<ð¥”<𥔎<ð¥”<ð¥”<𥔑<𥔒<𥔓<𥔔<𥔕<𥔖<𥔗<𥔘<𥔙<𥔚<𥔛<𥔜<ð¥”<𥔞<𥔟"
+ "<𥔠<𥔡<𥔢<𥔣<𥔤<𥔥<𥔦<𥔧<𥔨<𥔩<𥔪<𥔫<𥔬<確<碻<碼<碽<碾<碿<磀<磂<磃<磄<磅<磆<磇<磈<"
+ "磉<磊<磋<磌<ç£<磎<ç£<ç£<磑<磒<磓<磔<磕<磖<磗<磘<磙<磜<磤<䃑<䃒<䃓<䃔<䃕<䃖<䃗<𥔭<𥔮<𥔯<𥔰<𥔱<"
+ "𥔲<𥔳<𥔴<𥔵<𥔶<𥔷<𥔸<𥔹<𥔺<𥔻<𥔼<𥔽<𥔾<𥔿<𥕀<ð¥•<𥕂<𥕃<𥕄<𥕅<𥕆<𥕇<𥕈"
+ "<𥕉<𥕊<𥕋<磊<磌<磌<磚<磛<ç£<磞<磟<磠<磡<磢<磣<磥<磦<磧<磨<磩<磪<磫<磬<磭<磮<䃘<䃙<䃚<䃛<䃜<äƒ<䃞<"
+ "䃠<𥕌<ð¥•<𥕎<ð¥•<ð¥•<𥕑<𥕒<𥕓<𥕔<𥕕<𥕖<𥕗<𥕘<𥕙<𥕚<𥕛<𥕜<ð¥•<𥕞<𥕟<𥕠<𥕡<"
+ "𥕢<𥕣<𥕤<𥕥<𥕦<𥕧<𥕨<𥕩<𥕪<𥕫<𥕬<𥕭<𥕮<𥕯<磯<磰<磱<磲<磳<磴<磵<磶<磷<磸<磹<磺<磻<"
+ "磼<磽<磾<磿<礀<ç¤<礂<礃<礄<礅<䃟<䃡<䃢<䃣<䃤<䃥<䃦<䃧<䃨<𥕰<𥕱<𥕲<𥕳<𥕴<𥕵<𥕶<𥕷<𥕸<𥕹<"
+ "𥕺<𥕻<𥕼<𥕽<𥕾<𥕿<𥖀<ð¥–<𥖂<𥖃<𥖄<𥖅<𥖆<𥖇<𥖈<𥖉<𥖊<𥖋<𥖌<ð¥–<𥖎<ð¥–<ð¥–"
+ "<𥖑<𥖒<𥖓<𥖔<𥖕<𥖖<磻<䃣<礆<礇<礈<礉<礊<礋<礌<ç¤<礎<ç¤<ç¤<礑<礒<礓<礔<礕<礖<䃩<䃪<䃫<䃬<䃭<䃮"
+ "<䃯<ð£ž<𥖗<𥖘<𥖙<𥖚<𥖛<𥖜<ð¥–<𥖞<𥖟<𥖠<𥖡<𥖢<𥖣<𥖤<𥖥<𥖦<𥖧<𥖨<𥖩<礗<礘<礙"
+ "<礚<礛<礜<ç¤<礞<礟<礠<礡<䃰<𥖪<𥖫<𥖬<𥖭<𥖮<𥖯<𥖰<𥖱<𥖲<𥖳<𥖴<𥖵<𥖶<𥖷<𥖸<𥖹<"
+ "𥖺<礢<礣<礤<礥<礦<礧<礨<礩<礪<礫<礬<䃱<䃲<䃳<ð¡•Ž<𥖻<𥖼<𥖽<𥖾<𥖿<𥗀<ð¥—<𥗂<𥗃<𥗄<𥗅<"
+ "𥗆<𥗇<𥗈<𥗉<𥗊<𥗋<𥗌<ð¥—<𥗎<ð¥—<ð¥—<𥗑<礪<礭<礮<礯<礰<礱<礲<礳<礴<䃴<䃵<䃶<䃷<𥗒<𥗓<"
+ "𥗔<𥗕<𥗖<𥗗<𥗘<𥗙<𥗚<𥗛<𥗜<礵<䃸<䃹<ð¥—<𥗞<𥗟<𥗠<𥗡<𥗢<𥗣<𥗤<𥗥<𥗦<𥗧<𥗨"
+ "<𥗩<𥗪<礶<礷<𥗫<𥗬<𥗭<𥗮<𥗯<𥗰<𥗱<𥗲<𥗳<礸<䃺<𥗴<𥗵<𥗷<𥗸<礹<𥗹<䃻<𥗺<𥗻<"
+ "𥗼<𥗽<𥗾<𥗿<𥘀<ð¥˜<𥘂<𥘃<𥘄<示<礻<𥘅<礼<𥘆<礼<礽<䃼<𥘇<𥘈<𥘉<𥘊<𥘋<𥘌<社<礿<祀"
+ "<ç¥<祂<祃<ð¥˜<𥘎<ð¥˜<ð¥˜<𥘑<𥘒<𥘓<𥘔<社<祄<祅<祆<祇<祈<祉<祊<祋<祌<ç¥<祎<视<䃽<䃾<䃿<ä„€<𥘕<"
+ "𥘖<𥘗<𥘘<𥘙<𥘚<𥘛<𥘜<ð¥˜<𥘞<𥘟<𥘠<𥘡<𥘢<𥘣<𥘤<𥘥<𥘦<𥘧<𥘨<𥘩<𥘪<祉<祈<"
+ "𥘦<ç¥<ç¥<祑<祒<祓<祔<祕<祖<祗<祘<祙<祚<祛<祜<ç¥<神<祟<祠<祡<祢<ä„<ä„‚<䄃<𥘫<𥘬<𥘭<𥘮<𥘯<𥘰<"
+ "𥘱<𥘲<𥘳<𥘴<𥘵<𥘶<𥘷<𥘸<𥘹<𥘺<𥘻<𥘼<𥘽<𥘾<𥘿<𥙀<ð¥™<𥙂<𥙃<𥙄<𥙅<𥙆<𥙇"
+ "<𥙈<𥙉<𥙊<𥙋<𥙌<ð¥™<神<ç¥<祖<ç¥<祖<祣<祤<祥<祧<票<祩<祪<祫<祬<祭<祮<祯<ä„„<ä„…<䄆<𥙎<ð¥™<ð¥™<"
+ "𥙑<𥙒<𥙓<𥙔<𥙕<𥙖<𥙗<𥙘<𥙙<𥙚<𥙛<𥙜<ð¥™<𥙞<𥙟<𥙠<𥙡<𥙢<𥙣<𥙤<𥙥<𥙦<𥙧"
+ "<𥙨<𥙩<𥙪<祥<祦<祰<祱<祲<祳<祴<祵<祶<祷<祸<禄<視<䄇<䄈<䄉<䄊<𣂫<𥙫<𥙬<𥙭<𥙮<𥙯<𥙰<𥙱<"
+ "𥙲<𥙳<𥙴<𥙵<𥙶<𥙷<𥙸<𥙹<𥙺<𥙻<𥙼<𥙽<𥙾<𥙿<𥚀<ð¥š<𥚂<𥚃<𥚄<𥚅<𥚆<𥚇<視<"
+ "祹<祺<祻<祼<祽<祾<祿<禀<ç¦<禂<禃<禅<禆<ä„‹<ä„Œ<ä„<ä„Ž<ä„<ä„<ä„‘<ä„’<𥚈<𥚉<𥚊<𥚋<𥚌<ð¥š<𥚎<ð¥š<ð¥š"
+ "<𥚑<𥚒<𥚓<𥚔<𥚕<𥚖<𥚗<𥚘<𥚙<𥚚<𥚛<𥚜<ð¥š<𥚞<𥚟<𥚠<𥚡<𥚢<𥚣<𥚤<𥚥<祿<𥚚"
+ "<禇<禈<禉<禊<禋<禌<ç¦<禎<ç¦<ç¦<禑<禒<禓<禔<禕<禖<禗<禘<禙<ä„“<ä„”<ä„•<ä„–<ä„—<𢿆<𥚦<𥚧<𥚨<𥚩<𥚪<"
+ "𥚫<𥚬<𥚭<𥚮<𥚯<𥚰<𥚱<𥚲<𥚳<𥚴<𥚵<𥚶<𥚷<𥚸<𥚹<𥚺<𥚻<𥚼<𥚽<𥚾<𥚿<𥛀<ð¥›"
+ "<𥛂<𥛃<𥛄<ç¦<ç¦<禎<ç¦<禚<禛<禜<ç¦<禞<禟<禠<禡<禢<禣<䄘<ä„™<ð –Ÿ<𥛅<𥛆<𥛇<𥛈<𥛉<𥛊<𥛋<𥛌"
+ "<ð¥›<𥛎<ð¥›<ð¥›<𥛑<𥛒<𥛓<𥛔<𥛕<𥛖<𥛗<𥛅<禤<禥<禦<ä„š<ä„›<ä„œ<ä„<ä„ž<𥛘<𥛙<𥛚<𥛛<𥛜<"
+ "ð¥›<𥛞<𥛟<𥛠<𥛡<𥛢<𥛣<𥛤<𥛥<𥛦<𥛧<𥛨<𥛩<𥛪<𥛫<𥛬<𥛭<禧<禨<禩<禪<禫<ä„Ÿ<𥛮<𥛯"
+ "<𥛰<𥛱<𥛲<𥛳<𥛴<𥛵<𥛶<𥛷<𥛸<𥛹<𥛺<𥛻<𥛼<𥛽<𥛾<𥛿<𥜀<ð¥œ<𥜂<禬<禭<禮<禯<ä„ <"
+ "ä„¡<𥜃<𥜄<𥜅<𥜆<𥜇<𥜈<𥜉<𥜊<𥜋<𥜌<ð¥œ<𥜎<ð¥œ<ð¥œ<𥜑<禮<禰<禱<ä„¢<𥜒<𥜓<𥜔<𥜕<"
+ "𥜖<𥜗<𥜘<𥜙<禲<ä„£<𥜚<𥜛<𥜜<ð¥œ<𥜞<𥜟<䄤<𥜠<𥜡<𥜢<𥜣<𥜤<禳<禴<𥜥<𥜦<𥜧<𥜨<"
+ "𥜩<禵<𥜪<𥜫<𥜬<𥜭<𥜮<𥜯<禶<禷<𥜰<𥜱<𥜲<𥜳<𥜴<𥜵<𥜶<𥜷<𥜸<𧆆<𥜹<𥜺<䄥<禸<"
+ "𥜻<禹<禺<𥜼<离<𥜽<禼<𥜾<禽<è¬<𥜿<ð¥<ð¥‚<ð¥ƒ<𠎘<𠾧<ð¥„<ð¥…<ð¥†<ð¥‡<𦦔<𣜢<ð¥ˆ<ð¥‰<ð¥Š"
+ "<ð¥‹<禾<ð¥Œ<ð¥<ð¥Ž<ð¥<禿<秀<ç§<秂<秃<䄦<䄧<ð¥<ð¥‘<ð¥’<ð¥“<秄<秅<秆<秇<秈<秉<秊<䄨<ä„©<䄪<ä„«<䄬<"
+ "ä„­<ð¥”<ð¥•<ð¥–<ð¥—<ð¥˜<ð¥™<ð¥š<ð¥›<ð¥œ<ð¥<ð¥ž<ð¥Ÿ<ð¥ <ð¥¡<ð¥¢<秊<秋<秌<ç§<秎<ç§<ç§<科<秒<秓<秔"
+ "<秕<秖<秗<ä„®<䄯<ä„°<䄱<䄲<䄳<ä„´<䄵<ð¥£<ð¥¤<ð¥¥<ð¥¦<ð¥§<ð¥¨<ð¥©<ð¥ª<ð¥«<ð¥¬<ð¥­<ð¥®<ð¥¯<ð¥°<ð¥±<"
+ "ð¥²<ð¥³<ð¥´<ð¥µ<ð¥¶<ð¥·<ð¥¸<ð¥¹<ð¥º<ð¥»<ð¥¼<ð¥½<䄯<秘<秙<秚<秛<秜<ç§<秞<租<秠<秡<秢<秣<秤<秥<秦<"
+ "秧<秨<秩<秪<秫<秬<秭<秮<积<称<䄶<ä„·<䄸<䄹<ð¥¾<ð¥¿<𥞀<ð¥ž<𥞂<𥞃<𥞄<𥞅<𥞆<𥞇<𥞈<𥞉<𥞊<"
+ "𥞋<𥞌<ð¥ž<𥞎<ð¥ž<ð¥ž<𥞑<𥞒<𥞓<𥞔<𥞕<𥞖<𥞗<秫<秱<秲<秳<秴<秵<秶<秷<秸<秹<秺<移<秼<秽<秾"
+ "<稆<䄺<ä„»<䄼<䄽<䄾<ä„¿<ä…€<ä…<ä…‚<ä…ƒ<ä…„<ä……<ä…†<ä…‡<ä…ˆ<ä…‰<ä…Š<𥞘<𥞙<𥞚<𥞛<𥞜<ð¥ž<𥞞<𥞟<𥞠<𥞡<"
+ "𥞢<𥞣<𥞤<𥞥<𥞦<𥞧<𥞨<𥞩<𥞪<𥞫<𥞬<𥞭<𥞮<𥞯<𥞰<𥞱<𥟅<秿<稀<ç¨<稂<稃<稄<稅<稇<稈"
+ "<稉<稊<程<稌<ç¨<税<ä…‹<ä…Œ<ä…<ä…Ž<ä…<ä…<ä…‘<ä…’<ä…“<ð žœ<𥞲<𥞳<𥞴<𥞵<𥞶<𥞷<𥞸<𥞹<𥞺<𥞻<𥞼<"
+ "𥞽<𥞾<𥞿<𥟀<ð¥Ÿ<𥟂<𥟃<𥟄<𥟆<𥟇<𥟈<𥟉<𥟊<𥟋<𥟌<ç¨<ç¨<稑<稒<稓<稔<稕<稖<稗<稘<稙<稚"
+ "<稛<稜<ç¨<稞<稟<稠<稡<稢<稣<稤<稥<ä…”<ä…•<ä…–<ä…—<ä…˜<ä…™<ä…š<ä…›<ä…œ<ä…<ä…ž<ä…Ÿ<ð¥Ÿ<𥟎<ð¥Ÿ<ð¥Ÿ<𥟑<𥟒<𥟓<"
+ "𥟔<𥟕<𥟖<𥟗<𥟘<𥟙<𥟚<𥟛<𥟜<ð¥Ÿ<𥟞<𥟟<𥟠<𥟡<𥟢<𥟣<𥟤<𥟥<𥟦<𥟧<𥟨<𥟩<𥟪"
+ "<𥟫<𥟬<𥟭<𥟮<𥟯<𥟰<𥟱<𥟲<𥟳<𥟴<𥟵<𥟶<𥟷<𥟸<𥟹<𥟺<𥟻<𥟼<稜<稦<稧<稨<稩<稪<稫"
+ "<稬<稭<種<稯<稰<稱<稲<稳<ç©Š<ä… <ä…¡<ä…¢<ä…£<ä…¤<ä…¥<ä…¦<ä…§<ä…¨<ä…©<ä…ª<ä…«<𥟽<𥟾<𥟿<𥠀<ð¥ <𥠂<𥠃<𥠄<"
+ "𥠅<𥠆<𥠇<𥠈<𥠉<𥠊<𥠋<𥠌<ð¥ <𥠎<ð¥ <ð¥ <𥠑<𥠒<𥠓<𥠔<𥠕<𥠖<𥠗<𥠘<𥠙<𥠚<𥠛"
+ "<𥠜<ð¥ <𥠞<𥠟<𥠠<𥠡<𥠢<𥠣<𥠤<𥠥<𥠦<𥠧<𥠨<𥠩<𥠪<𥠫<𥠬<𥠭<𥠮<𥠯<𥠰<稴<稵<"
+ "稶<稷<稸<稹<稺<稻<稼<稽<稾<稿<ç©€<ç©<ç©‚<穃<ä…¬<ä…­<ä…®<ä…¯<ä…°<ä…±<ä…²<ä…³<ä…´<ä…µ<ä…¶<𥠱<𥠲<𥠳<𥠴<𥠵<𥠶<"
+ "𥠷<𥠸<𥠹<𥠺<𥠻<𥠼<𥠽<𥠾<𥠿<𥡀<ð¥¡<𥡂<𥡃<𥡄<𥡅<𥡆<𥡇<𥡈<𥡉<𥡊<𥡋<𥡌<ð¥¡"
+ "<𥡎<ð¥¡<ð¥¡<𥡑<𥡒<𥡓<𥡔<𥡕<𥡖<𥡗<𥡘<𥡙<𥡚<𥡛<ç©€<ç©€<ç©„<ç©…<穆<穇<穈<ç©‹<ç©Œ<ç©<ç©Ž<ç©<ç©"
+ "<ç©‘<ç©’<ä…·<ä…¸<ä…¹<ä…º<ä…»<ä…¼<ä…½<𥡜<ð¥¡<𥡞<𥡟<𥡠<𥡡<𥡢<𥡣<𥡤<𥡥<𥡦<𥡧<𥡨<𥡩<𥡪<𥡫<"
+ "𥡬<𥡭<𥡮<𥡯<𥡰<𥡱<𥡲<𥡳<𥡴<𥡵<𥡶<𥡷<𥡸<𥡹<𥡺<𥡻<𥡼<𥡽<𥡾<𥡿<𥢀<ð¥¢<𥢂"
+ "<𥢃<𥢄<𥢅<𥢆<𥢇<𥢈<𥢉<ç©Š<ç©<穉<ç©“<ç©”<ç©•<ç©–<ç©—<穘<ç©™<ç©š<ç©›<ç©œ<ç©<ç©ž<ä…¾<ä…¿<䆀<𥢊<𥢋<𥢌<"
+ "ð¥¢<𥢎<ð¥¢<ð¥¢<𥢑<𥢒<𥢓<𥢔<𥢕<𥢖<𥢗<𥢘<𥢙<𥢚<𥢛<𥢜<ð¥¢<𥢞<𥢟<𥢠<𥢡<𥢢<𥢣"
+ "<𥢤<𥢥<𥢦<𥢧<𥢨<𥢩<𥢪<𥢫<𥢬<𥢭<𥢮<𥢯<𥢰<𥢱<𥢲<𥢳<ç©Ÿ<ç© <ç©¡<ç©¢<ç©£<ä†<䆂<䆃<䆄<䆅"
+ "<䆆<䆇<𥢴<𥢵<𥢶<𥢷<𥢸<𥢹<𥢺<𥢻<𥢼<𥢽<𥢾<𥢿<𥣀<ð¥£<𥣂<𥣃<𥣄<𥣅<𥣆<𥣇<𥣈<"
+ "𥣉<𥣋<𥣌<ð¥£<𥣎<ð¥£<ð¥£<𥣑<𥣒<𥣓<𥣔<穤<ç©¥<穦<穧<穨<ç©©<穪<ç©«<𥣊<𥣕<𥣖<𥣗<𥣘<𥣙<"
+ "𥣚<𥣛<𥣜<ð¥£<𥣞<𥣟<𥣠<𥣡<𥣣<𥣤<𥣥<𥣦<𥣧<穬<ç©­<ç©®<穯<䆈<䆉<𥣢<𥣨<𥣩<𥣪<𥣫<𥣬"
+ "<𥣭<𥣮<𥣯<𥣰<𥣱<𥣲<𥣳<𥣴<𥣵<𥣶<𥣸<𥣹<𥣺<𥣻<𥣼<𥣽<𥣾<𥣿<䆊<䆋<䆌<ä†<𥤀<ð¥¤"
+ "<𥤂<𥤃<𥤄<𥤅<ç©°<穳<䆎<ä†<𥤆<𥤇<𥤈<𥤉<穱<𥤊<𥤋<𥤌<ð¥¤<𥤎<ð¥¤<ð¥¤<𥤑<𥤒<穲<𥤓<"
+ "𥤕<𥤖<𥤗<𥤘<𥤙<𥤚<𥤛<𥤜<ð¥¤<𥤞<𥤟<ä†<𥤠<𥤡<ç©´<𥤢<穵<究<ç©·<䆑<𥤣<𥤤<𥤥<𥤦<穸<"
+ "穹<空<ç©»<䆒<𥤧<𥤨<𥤩<𥤪<𥤫<𥤬<𥤭<𥤮<𥤯<𥤰<𥤱<𥤲<𥤳<穼<穽<穾<ç©¿<窀<çª<窂<窃<䆓<䆔<䆕"
+ "<䆖<𥤴<𥤵<𥤶<𥤷<𥤸<𥤹<𥤺<𥤻<𥤼<𥤽<𥤾<𥤿<𥥀<ð¥¥<𥥂<𥥃<𥥄<𥥅<𥥆<çª<窄<窅<窆<"
+ "窇<窈<窉<窊<窋<窌<çª<窎<䆗<䆘<䆙<𥥇<𥥈<𥥉<𥥊<𥥋<𥥌<ð¥¥<𥥎<ð¥¥<ð¥¥<𥥑<𥥒<𥥓<𥥔<𥥕<"
+ "𥥖<𥥗<𥥘<𥥙<𥥚<𥥛<𥥜<ð¥¥<𥥞<𥥟<çª<çª<窑<窒<窓<窔<窕<䆚<䆛<䆜<ä†<䆞<䆟<䆠<𥥠<𥥡<𥥢<"
+ "𥥣<𥥤<𥥥<𥥦<𥥧<𥥨<𥥩<𥥪<𥥫<𥥬<𥥭<𥥮<𥥯<𥥰<𥥱<𥥲<𥥳<𥥴<𥥵<窖<窗<窘<窙<窚<窛"
+ "<窜<çª<䆡<䆢<䆣<䆤<䆥<𥥶<𥥷<𥥸<𥥹<𥥺<𥥻<𥥼<𥥽<𥥾<𥥿<𥦀<ð¥¦<𥦂<𥦃<𥦄<𥦅<𥦆<𥦇"
+ "<𥦈<𥦉<𥦊<𥦋<𥦌<ð¥¦<𥦎<ð¥¦<ð¥¦<𥦑<𥦒<𥦓<𥦔<𥦕<𥦖<𥦗<𥦘<𥦙<𥦚<𥥼<窞<窟<窠<窡"
+ "<窢<窣<窤<窥<窦<窧<䆦<䆧<䆨<䆩<𥦛<𥦜<ð¥¦<𥦞<𥦟<𥦠<𥦡<𥦢<𥦣<𥦤<𥦥<𥦦<𥦧<𥦨<𥦩<𥦪"
+ "<𥦫<𥦬<𥦭<𥦮<𥦯<𥦰<𥦱<𥦲<𥦳<𥦴<𥦵<𥦶<𥦷<窨<窩<窪<窫<窬<窭<䆪<䆫<𥦸<𥦹<𥦺<𥦻<"
+ "𥦼<𥦽<𥦾<𥦿<𥧀<ð¥§<𥧂<𥧃<𥧄<𥧅<𥧆<𥧇<𥧈<𥧉<𥧊<𥧋<𥧌<ð¥§<𥧎<ð¥§<窮<窯<窰<窱<"
+ "窲<窳<窴<䆬<䆭<䆮<ð¥§<𥧑<𥧒<𥧓<𥧔<𥧕<𥧖<𥧗<𥧘<𥧙<𥧚<𥧛<𥧜<ð¥§<𥧞<𥧟<𥧠<𥧡<𥧣"
+ "<𥧤<𥧥<𥧦<𥧧<𥧨<𥧩<𥧪<𥧫<窱<窵<窶<窷<窸<窹<窺<窻<窼<窽<䆯<䆰<䆱<䆲<䆳<䆴<𥧬<𥧭<𥧮<𥧯"
+ "<𥧰<𥧱<𥧲<𥧳<𥧴<𥧵<𥧶<𥧷<𥧸<𥧹<𥧺<𥧻<𥧽<𥧾<𥧿<𥨀<ð¥¨<𥨂<𥨃<𥨄<𥨅<𥨆<"
+ "𥨇<𥨈<𥨉<𥨊<𥨋<窾<窿<ç«€<ç«<ç«‚<竃<䆵<䆶<䆷<䆸<䆹<䆺<䆻<𥧼<𥨌<ð¥¨<𥨎<ð¥¨<ð¥¨<𥨑<𥨒<𥨓<"
+ "𥨔<𥨕<𥨖<𥨗<𥨘<𥨙<𥨚<𥨛<𥨜<ð¥¨<𥨞<𥨟<𥨩<ç«„<ç«…<䆼<䆽<𥨠<𥨡<𥨢<𥨣<𥨤<𥨥<𥨦<"
+ "𥨧<𥨨<竆<䆾<䆿<𥨪<𥨫<𥨬<𥨭<𥨮<𥨯<𥨲<竇<䇀<𥨰<𥨱<𥨳<𥨴<𥨶<𥨷<𥨸<𥨹<𥨺<竈<竉<"
+ "𥨵<𥨻<𥨼<𥨽<𥨾<𥨿<𥩀<ð¥©<𥩂<𥩃<𥩄<𥩅<𥩆<𥩇<𥩈<ç«Š<ä‡<𥩉<𥩊<𥩋<𥩌<ð¥©<ð¥©<"
+ "ð¥©<𥩑<𥩎<𥩒<𥩓<𥩔<ç«‹<ç«‹<䇂<ç«Œ<ç«<𥩕<𥩖<ç«Ž<ç«<䇃<䇄<𥩗<𥩘<ç«<ç«‘<ç«’<ç«“<ç«”<ç«•<ç«–<ç«—<䇅<䇆<"
+ "𥩙<𥩚<𥩛<𥩜<ð¥©<𥩞<𥩟<竘<ç«™<ç«š<ç«›<ç«œ<ç«<ç«ž<䇇<䇈<䇉<䇊<𥩠<𥩡<𥩢<𥩣<𥩤<𥩥<𥩦<𥩧<"
+ "𥩨<𥩩<𥩪<𥩫<𥩬<𥩭<𥩮<𥩯<𥩰<竡<䇋<𥩱<𥩲<𥩳<𥩴<𥩵<𥩶<𥩷<𥩸<𥩹<𥩺<𥩻<𥩼<"
+ "𥩽<ç«¢<ç«£<竤<ç«¥<竦<竧<䇌<ä‡<𥩾<𥩿<𥪀<ð¥ª<𥪂<𥪃<𥪄<𥪅<𥪆<𥪇<𥪈<𥪉<竨<ç«©<竪<ç««<䇎<ä‡<ä‡"
+ "<䇑<𥪊<𥪋<𥪌<ð¥ª<𥪎<ð¥ª<ð¥ª<𥪑<𥪒<𥪓<𥪔<𥪕<𥪖<𥪗<竬<ç«­<端<ç«°<𥪘<𥪙<𥪚<𥪛<𥪜<"
+ "ð¥ª<𥪞<𥪟<𥪠<𥪡<𥪢<𥪣<𥪤<𥪥<𥪦<𥪧<𥪨<𥪩<𥪪<𥪫<𥪬<𥪧<𥪧<ç«®<竱<䇒<𥪭<𥪮<𥪰"
+ "<𥪱<ç«®<竲<竳<ç«´<䇓<𥪯<𥪲<𥪳<𥪴<𥪵<𥪶<𥪷<𥪸<𥪹<𥪻<竵<䇔<𥪼<𥪽<𥪾<𥪿<𥫀<ð¥«<𥫃"
+ "<𥫄<䇕<𥪺<𥫅<𥫆<𥫇<競<ç«·<𥫈<𥫉<𥫊<𥫋<𥫌<ð¥«<𥫎<ð¥«<竸<ð¥«<𥫑<𥫓<𥫔<𥫒<𥫕<𥫖"
+ "<竹<𥫗<𥫘<竺<ç«»<𥫙<𥫚<𥫛<𥫜<竼<竽<竾<ç«¿<笀<ç¬<笂<笃<䇖<ð¥«<𥫞<𥫟<𥫠<𥫡<𥫢<𥫣<𥫤<"
+ "𥫥<𥫦<𥫧<𥫨<𥫩<𥫪<𥫫<𥫬<𥫭<𥫮<笅<笆<笇<笈<笉<笊<笋<笌<ç¬<笎<ç¬<ç¬<笑<笒<笓<笔<笕<䇗<䇘<"
+ "䇙<䇚<䇛<䇜<ä‡<𥫯<𥫰<𥫱<𥫲<𥫳<𥫴<𥫵<𥫶<𥫷<𥫸<𥫹<𥫺<𥫻<𥫼<𥫽<𥫾<𥫿<𥬀<ð¥¬<"
+ "𥬂<𥬃<𥬄<𥬅<𥬆<𥬇<𥬈<𥬉<𥬊<𥬋<笖<笗<笘<笙<笚<笛<笜<ç¬<笞<笟<笠<笡<笢<笣<笤<笥<符<笧<笨<"
+ "笩<笪<笫<第<笭<笮<笯<笰<笱<笲<笳<笴<笵<笶<笷<笸<笹<笺<笻<笼<笽<笾<䇞<䇟<䇠<䇡<䇢<䇣<䇤<䇥<䇦<𥬌<ð¥¬<"
+ "𥬎<ð¥¬<ð¥¬<𥬑<𥬒<𥬓<𥬔<𥬕<𥬖<𥬗<𥬘<𥬙<𥬚<𥬛<𥬜<ð¥¬<𥬞<𥬟<𥬠<𥬡<𥬢<𥬣<𥬤"
+ "<𥬥<𥬦<𥬧<𥬨<𥬩<𥬿<笠<笄<笿<ç­€<ç­<ç­‚<ç­ƒ<ç­„<ç­…<ç­†<ç­‡<ç­ˆ<ç­‰<ç­Š<ç­‹<ç­Œ<ç­<ç­Ž<ç­<ç­<ç­‘<ç­’<ç­“<ç­”<ç­•"
+ "<ç­–<ç­—<ç­˜<ç­™<ç­š<ç­›<ç­œ<ç­<䇧<䇨<䇩<䇪<䇫<䇬<䇭<䇮<䇯<䇰<䇱<䇲<䇳<䇴<𥬪<𥬫<𥬬<𥬭<𥬮<𥬯<𥬰<𥬱"
+ "<𥬲<𥬳<𥬴<𥬵<𥬶<𥬷<𥬸<𥬹<𥬺<𥬻<𥬼<𥬽<𥬾<𥭀<ð¥­<𥭂<𥭃<𥭄<𥭅<𥭆<𥭇<𥭈<"
+ "𥭉<𥭊<𥭋<𥭌<ð¥­<𥭎<ð¥­<ç­ž<ç­Ÿ<ç­ <ç­¡<ç­¢<ç­£<ç­¤<ç­¥<ç­¦<ç­§<ç­¨<ç­©<ç­ª<ç­«<ç­¬<ç­­<ç­®<ç­¯<ç­°<ç­±<ç­²<ç­³<ç­´<ç­µ"
+ "<ç­¶<ç­·<ç­¸<ç­¹<ç­º<ç­»<ç­¼<ç­½<ç­¾<ç­¿<简<節<䇵<䇶<䇷<䇸<䇹<䇺<䇻<䇼<䇽<䇾<䇿<䈀<ð¥­<𥭑<𥭒<𥭓<𥭔<𥭕<"
+ "𥭖<𥭗<𥭘<𥭙<𥭚<𥭛<𥭜<ð¥­<𥭞<𥭟<𥭠<𥭡<𥭢<𥭣<𥭤<𥭥<𥭦<𥭧<𥭨<𥭩<𥭪<𥭫<𥭬"
+ "<𥭭<𥭮<𥭯<𥭰<𥭱<𥭲<𥭳<𥭴<𥭵<𥭶<𥭷<𥭸<𥭹<𥭺<𥭻<𥭼<𥭽<𥭾<𥭿<𥮀<ð¥®<𥮂<"
+ "𥮃<𥮄<𥮅<𥮆<𥮇<𥮈<𥮉<𥮊<𥮋<𥮌<節<節<ç®<箂<箃<箄<ç®…<箆<箇<箈<箉<箊<箋<箌<ç®<箎<ç®<ç®<箑<"
+ "ç®’<箓<ç®”<箕<ç®–<ç®—<箘<ç®™<箚<ç®›<箜<ç®<箞<箟<ç® <管<箢<箣<箤<箥<箦<箧<箨<箩<箪<箫<äˆ<䈂<䈃<䈄<䈅<䈆<䈇<䈈<"
+ "䈉<䈊<䈋<䈌<äˆ<ð¥®<𥮎<ð¥®<ð¥®<𥮑<𥮒<𥮓<𥮔<𥮕<𥮖<𥮗<𥮘<𥮙<𥮚<𥮛<𥮜<ð¥®<𥮞<𥮟<"
+ "𥮠<𥮡<𥮢<𥮣<𥮤<𥮥<𥮦<𥮧<𥮨<𥮩<𥮪<𥮫<𥮬<𥮭<𥮮<𥮯<𥮰<𥮱<𥮲<𥮳<𥮴<𥮵<𥮶"
+ "<𥮷<𥮸<𥮹<𥮺<𥮻<𥮼<𥮽<𥮾<𥮿<𥯀<ð¥¯<𥯂<𥯃<𥯄<𥯅<𥯆<𥯇<𥯈<𥯉<𥯊<𥯋<𥯌<"
+ "ð¥¯<𥯎<ð¥¯<ð¥¯<䈂<𥮫<箬<ç®­<ç®®<箯<ç®°<ç®±<箲<箳<ç®´<箵<箶<ç®·<箸<箹<箺<ç®»<箼<箽<箾<箿<ç¯<篂<篃<範<篅<篆"
+ "<篇<篈<篊<篋<篌<ç¯<篎<ç¯<ç¯<篑<篒<篓<䈎<äˆ<äˆ<䈑<䈒<䈓<䈔<䈕<䈖<䈗<䈘<䈙<䈚<䈛<䈜<äˆ<䈞<䈟<䈠<䈡<䈢<䈣"
+ "<䈤<䈥<䈦<䈧<䈨<䈩<𥯑<𥯒<𥯓<𥯔<𥯕<𥯖<𥯗<𥯘<𥯙<𥯚<𥯛<𥯜<ð¥¯<𥯞<𥯟<𥯠<𥯡<𥯢<"
+ "𥯣<𥯤<𥯥<𥯦<𥯧<𥯨<𥯩<𥯪<𥯫<𥯬<𥯭<𥯮<𥯯<𥯰<𥯱<𥯲<𥯳<𥯴<𥯵<𥯶<𥯷<𥯸<𥯹"
+ "<𥯺<𥯻<𥯼<𥯽<𥯾<𥯿<𥰀<ð¥°<𥰂<𥰃<𥰄<𥰅<𥰆<𥰇<𥰈<𥰉<𥰊<𥰋<𥰌<ð¥°<𥰎<ð¥°<"
+ "ð¥°<𥰑<𥰒<𥰓<𥰔<𥰕<𥰖<𥰗<篆<䈧<築<篔<篕<篖<篗<篘<篙<篚<篛<篜<ç¯<篞<篟<篠<篡<篢<篣<篤<篥<篦<"
+ "篧<篨<篩<篪<篫<篬<篭<篮<篯<ç°‘<ç°•<䈪<䈫<䈬<䈭<䈮<䈯<䈰<䈱<䈲<䈳<䈴<䈵<䈶<䈷<𥰘<𥰙<𥰚<𥰛<𥰜<ð¥°<"
+ "𥰞<𥰟<𥰠<𥰡<𥰢<𥰣<𥰤<𥰥<𥰦<𥰧<𥰨<𥰩<𥰪<𥰫<𥰬<𥰭<𥰮<𥰯<𥰰<𥰱<𥰲<𥰳<𥰴"
+ "<𥰵<𥰶<𥰷<𥰸<𥰹<𥰺<𥰻<𥰼<𥰽<𥰾<𥰿<𥱀<ð¥±<𥱂<𥱃<𥱄<𥱅<𥱆<𥱇<𥱈<𥱉<𥱊<"
+ "𥱋<𥱌<ð¥±<𥱎<ð¥±<ð¥±<𥱑<𥱒<𥱓<𥱔<𥱕<𥱖<𥱗<𥱘<𥱙<𥱚<𥱛<𥱜<ð¥±<𥱞<𥱟<𥱠<𥱡"
+ "<𥱢<𥱣<𥱤<𥱥<𥱦<𥱧<𥱨<𥱩<𥱪<𥱫<𥱬<𥱭<𥱮<𥱯<𥱰<𥱱<𥱲<𥱳<𥱴<築<篰<篱<篲<篳<"
+ "篴<篵<篶<篷<篸<篹<篺<篻<篼<篽<篾<篿<ç°€<ç°<ç°‚<ç°ƒ<ç°„<ç°…<ç°†<ç°‡<ç°ˆ<ç°‰<ç°Š<ç°‹<ç°Œ<ç°<ç°Ž<ç°<ç°<ç°’<ç°“<ç°”<ç°–<ç°—<"
+ "䈸<䈹<䈺<䈻<䈼<䈽<䈾<䈿<䉀<ä‰<䉂<䉃<䉄<䉅<䉆<䉇<𥱵<𥱶<𥱷<𥱸<𥱹<𥱺<𥱻<𥱼<𥱽<𥱾<𥱿<𥲀<"
+ "ð¥²<𥲂<𥲃<𥲄<𥲅<𥲆<𥲇<𥲈<𥲉<𥲊<𥲋<𥲌<ð¥²<𥲎<ð¥²<ð¥²<𥲑<𥲒<𥲓<𥲔<𥲕<𥲖<𥲗"
+ "<𥲘<𥲙<𥲚<𥲛<𥲜<ð¥²<𥲞<𥲟<𥲠<𥲡<𥲢<𥲣<𥲤<𥲥<𥲦<𥲧<𥲨<𥲩<𥲪<𥲫<𥲬<𥲭<"
+ "𥲮<𥲯<𥲰<𥲱<𥲲<𥲳<𥲴<𥲵<𥲶<𥲷<𥲸<𥲹<𥲺<𥲻<𥲼<𥲽<𥲾<𥲿<𥳀<𥳂<𥳃<𥳄<𥳅"
+ "<𥴎<𥲀<ç°˜<ç°™<ç°š<ç°›<ç°œ<ç°<ç°ž<ç°Ÿ<ç° <ç°¡<ç°¢<ç°£<ç°¤<ç°¥<ç°¦<ç°§<ç°¨<ç°©<ç°ª<ç°«<ç°¬<ç°­<ç°®<ç°¯<ç°°<ç°±<ç°²<䉈<䉉<䉊<䉋"
+ "<䉌<ä‰<䉎<ä‰<䉑<䉒<䉓<䉔<䉕<䉖<䉗<䉘<䉙<䉚<䉣<ð¥³<𥳆<𥳇<𥳈<𥳉<𥳊<𥳋<𥳌<ð¥³<𥳎<ð¥³<ð¥³<"
+ "𥳑<𥳒<𥳓<𥳔<𥳕<𥳖<𥳗<𥳘<𥳙<𥳚<𥳛<𥳜<ð¥³<𥳞<𥳟<𥳠<𥳡<𥳢<𥳣<𥳤<𥳥<𥳦<𥳧"
+ "<𥳨<𥳩<𥳪<𥳫<𥳬<𥳭<𥳮<𥳯<𥳰<𥳱<𥳲<𥳳<𥳴<𥳵<𥳶<𥳷<𥳸<𥳹<𥳺<𥳻<𥳼<𥳽<"
+ "𥳾<𥳿<𥴀<ð¥´<𥴂<𥴃<𥴄<𥴅<𥴆<𥴇<𥴈<𥴉<𥴊<𥴋<𥴌<ð¥´<ð¥´<ð¥´<𥴑<𥴒<𥴓<𥴔<𥴕"
+ "<𥴖<𥴗<𥴘<𥴙<𥴚<𥴛<𥴜<ð¥´<𥴞<𥴟<𥴠<ð¥³<ç°³<ç°´<ç°µ<ç°¶<ç°·<ç°¸<ç°¹<ç°º<ç°»<ç°¼<ç°½<ç°¾<ç°¿<ç±€<ç±<籂"
+ "<ä‰<䉛<䉜<ä‰<䉞<䉟<䉠<䉡<䉢<䉤<𥴡<𥴢<𥴣<𥴤<𥴥<𥴦<𥴧<𥴨<𥴩<𥴪<𥴫<𥴬<𥴭<𥴮<𥴯<𥴰"
+ "<𥴱<𥴲<𥴳<𥴴<𥴵<𥴶<𥴷<𥴸<𥴹<𥴺<𥴻<𥴼<𥴽<𥴾<𥴿<𥵀<ð¥µ<𥵂<𥵃<𥵄<𥵅<𥵆<"
+ "𥵇<𥵈<𥵉<𥵊<𥵋<𥵌<ð¥µ<𥵎<ð¥µ<ð¥µ<𥵑<𥵒<𥵓<𥵔<𥵕<𥵖<𥵗<𥵘<𥵙<𥵚<𥵛<ç°¾<籃<籄"
+ "<ç±…<籆<籇<籈<籉<籊<籋<籌<ç±<籎<ç±<籕<ç±–<䉥<𥵜<ð¥µ<𥵞<𥵟<𥵠<𥵡<𥵢<𥵣<𥵤<𥵥<𥵦<𥵧<𥵨<"
+ "𥵩<𥵪<𥵫<𥵬<𥵭<𥵮<𥵯<𥵰<𥵱<𥵲<𥵳<𥵴<𥵵<𥵶<𥵷<𥵸<𥵹<𥵺<𥵻<𥵼<𥵽<𥵾<𥵿"
+ "<𥶀<ð¥¶<𥶂<𥶃<𥶄<ç±<籑<ç±’<籓<ç±”<䉦<䉧<䉨<䉩<䉪<䉫<䉬<䉭<𥶅<𥶆<𥶇<𥶈<𥶉<𥶊<𥶋<𥶌<ð¥¶"
+ "<𥶎<ð¥¶<ð¥¶<𥶑<𥶒<𥶓<𥶔<𥶕<𥶖<𥶗<𥶘<𥶙<𥶚<𥶛<𥶜<ð¥¶<𥶞<𥶟<𥶠<𥶡<𥶢<𥶣<"
+ "𥶤<𥶥<𥶦<𥶧<𥶨<𥶩<𥶪<𥶫<𥶬<𥶭<𥶮<𥶯<𥶰<𥶱<𥶲<𥶳<𥶴<ç±—<籘<ç±™<籚<ç±›<籜<ç±<籞<籟"
+ "<ç± <籡<䉮<䉯<䉰<䉱<𥶵<𥶶<𥶷<𥶸<𥶹<𥶺<𥶻<𥶼<𥶽<𥶾<𥶿<𥷀<ð¥·<𥷂<𥷃<𥷄<𥷅<𥷆<"
+ "𥷇<𥷈<𥷉<𥷊<𥷋<𥷌<ð¥·<𥷎<ð¥·<ð¥·<𥷑<𥷒<𥷓<ç± <ç±¢<ç±£<籤<ç±¥<籦<籧<籨<䉲<䉳<䉴<𥷔<𥷕<"
+ "𥷖<𥷗<𥷘<𥷙<𥷚<𥷛<𥷜<ð¥·<𥷞<𥷟<𥷠<𥷡<𥷢<𥷣<𥷤<𥷥<𥷦<𥷧<籪<䉶<𥷨<𥷩<𥷪<"
+ "𥷫<𥷬<𥷭<𥷮<𥷯<𥷰<𥷱<𥷲<𥷳<𥷴<𥷵<𥷶<𥷷<𥷸<𥷹<𥷺<𥷻<籩<籫<籬<籭<籮<𥷼<𥷽<"
+ "𥷾<𥷿<𥸀<ð¥¸<𥸂<𥸃<𥸄<𥸅<𥸆<𥸇<籯<ç±°<䉷<𥸈<𥸉<𥸊<𥸋<𥸌<ð¥¸<𥸎<ð¥¸<䉸<ð¥¸<𥸑<"
+ "𥸒<𥸓<𥸔<𥸕<𥸖<𥸗<𥸚<𥸛<𥸜<ð¥¸<𥸘<𥸙<𥸞<𥸟<𥸠<ç±±<䉹<𥸡<𥸢<𥸣<ç±²<𥸤<ç±³<𥸥<"
+ "𥸦<ç±´<ç±µ<籶<𥸧<𥸨<𥸩<𥸪<娄<ç±·<籸<ç±¹<籺<ç±»<ç±¼<ç±½<ç±¾<籿<ç²€<ç²<粂<䉺<𥸫<𥸬<𥸭<𥸮<𥸯<𥸰<"
+ "𥸱<𥸲<ç±»<粃<粄<ç²…<粆<粇<粈<粉<粊<粋<粌<ç²<粎<ç²<ç²<粑<䉻<䉼<𥸳<𥸴<𥸵<𥸶<𥸷<𥸸<𥸹<𥸺<𥸻"
+ "<𥸼<𥸽<𥸾<𥸿<𥹀<畨<ç²’<粓<ç²”<粕<ç²–<ç²—<粘<ç²™<粚<ç²›<粜<ç²<ç²£<䉽<䉾<䉿<䊀<ð¥¹<𥹂<𥹃<𥹄<𥹅<"
+ "𥹆<𥹇<𥹈<𥹉<𥹊<𥹋<𥹌<ð¥¹<𥹎<ð¥¹<ð¥¹<𥹑<𥹒<𥹓<𥹔<𥹕<𥹖<𥹘<𥹙<𥹱<ç²’<粞<粟<ç² <"
+ "粡<ç²¢<粤<ç²¥<粦<粧<粨<粩<粪<粫<粬<ç²­<äŠ<䊂<䊃<䊄<䊅<䊆<𥹗<𥹚<𥹛<𥹜<ð¥¹<𥹞<𥹟<𥹠<𥹡<𥹢<𥹣"
+ "<𥹤<𥹥<𥹦<𥹧<𥹨<𥹩<𥹪<𥹫<𥹬<𥹭<𥹮<𥹯<𥹰<粮<粯<粰<粱<粲<粳<粴<粵<糀<䊇<䊈<䊉<䊊<䊋<"
+ "䊌<𥹲<𥹳<𥹴<𥹵<𥹶<𥹷<𥹸<𥹹<𥹺<𥹻<𥹼<𥹽<𥹾<𥹿<𥺀<ð¥º<𥺂<𥺃<𥺄<𥺅<𥺆<𥺇<"
+ "𥺈<𥺉<𥺊<𥺋<𥺌<ð¥º<𥺎<ð¥º<ð¥º<𥺑<𥺒<𥺓<𥺔<𥺕<𥺖<𥺗<粶<ç²·<粸<ç²¹<粺<ç²»<ç²¼<ç²½<ç²¾<粿<"
+ "ç³<äŠ<䊎<äŠ<äŠ<䊑<䊒<𥺘<𥺙<𥺚<𥺛<𥺜<ð¥º<𥺞<𥺟<𥺠<𥺡<𥺢<𥺣<𥺤<𥺥<𥺦<𥺧<𥺨<𥺩<"
+ "𥺪<𥺫<𥺬<𥺭<𥺮<𥺯<𥺰<𥺱<𥺲<𥺳<𥺴<𥺵<𥺶<𥺷<𥺸<𥺹<𥺺<𥺻<𥺼<𥺽<𥺾<𥺿<𥻀"
+ "<ç²¾<糂<糃<糄<ç³…<糆<糇<糈<糉<糊<糋<糌<ç³<糎<䊓<䊔<䊕<䊖<䊗<䊘<䊙<ð¡¢<ð¥»<𥻂<𥻃<𥻄<𥻅<𥻆<𥻇<"
+ "𥻈<𥻉<𥻊<𥻋<𥻌<ð¥»<𥻎<ð¥»<ð¥»<𥻑<𥻒<𥻓<𥻔<𥻕<𥻖<𥻗<𥻘<𥻙<𥻚<𥻛<𥻜<ð¥»<𥻞"
+ "<𥻟<𥻠<𥻡<𥻢<𥻣<ç³<ç³<糑<ç³’<糓<ç³”<糕<ç³–<ç³—<糘<䊚<䊛<䨀<ð¢«<𥻤<𥻥<𥻦<𥻧<𥻨<𥻩<𥻪<𥻫"
+ "<𥻬<𥻭<𥻮<𥻯<𥻰<𥻱<𥻲<𥻳<𥻴<𥻵<𥻶<𥻷<𥻸<𥻹<𥻺<𥻻<𥻼<𥻽<𥻾<糖<糒<糙<糚<糛<"
+ "糜<ç³<糞<糟<ç³ <糡<ç³¢<糨<䊜<äŠ<䊞<䊟<䊠<䊡<䊢<𥻿<𥼀<ð¥¼<𥼂<𥼃<𥼄<𥼅<𥼆<𥼇<𥼈<𥼉<𥼊<𥼋"
+ "<𥼌<ð¥¼<𥼎<ð¥¼<ð¥¼<𥼑<𥼒<𥼓<𥼔<𥼕<𥼖<䊠<糨<ç³£<糤<ç³¥<糦<糧<䊣<䊤<䊥<䊦<䊧<䊨<䊩<𥼗<𥼘<"
+ "𥼙<𥼚<𥼛<𥼜<ð¥¼<𥼞<𥼟<𥼠<𥼡<𥼢<𥼣<𥼤<𥼥<𥼦<𥼧<𥼨<𥼩<𥼪<𥼫<𥼬<𥼭<𥼮<𥼯"
+ "<𥼰<𥼱<𥼲<𥼳<𥼴<𥼵<糧<糣<糩<糪<糫<糬<糭<䊪<䊫<䊬<𥼶<𥼷<𥼸<𥼹<𥼺<𥼻<𥼼<𥼽<𥼾<𥼿"
+ "<𥽀<ð¥½<𥽂<𥽃<𥽄<𥽅<𥽆<𥽇<𥽈<𥽉<𥽊<𥽋<𥽌<ð¥½<𥽎<ç³®<糯<ç³°<䊭<䊮<ð¥½<ð¥½<𥽑<𥽒<"
+ "𥽓<𥽔<𥽕<𥽖<ç³²<䊯<𥽗<𥽘<𥽙<𥽚<𥽛<𥽜<ð¥½<𥽞<𥽟<𥽠<𥽢<𥽣<ç³±<ç³³<ç³´<䊰<𥽡<𥽤<𥽥"
+ "<𥽦<𥽧<𥽨<𥽩<𥽪<𥽫<糵<䊱<䊲<𥽬<𥽭<𥽮<𥽯<𥽰<𥽱<𥽲<𥽳<𥽴<𥽵<糶<䊳<䊴<𥽶<𥽷<"
+ "𥽸<𥽹<𥽺<𥽻<𥽼<𥽽<𥽾<𥽿<ç³·<𥾀<ð¥¾<𥾂<𥾃<𥾄<糸<ç³¹<纟<糺<ç³»<ç³¼<ç³½<ç³¾<糿<纠<䊵<𥾅<𥾆"
+ "<𥾇<𥾈<𥾉<𥾊<𥾋<𥾆<ç´€<ç´<ç´‚<ç´ƒ<ç´„<ç´…<ç´†<ç´‡<ç´ˆ<ç´‰<纡<红<纣<纤<纥<约<级<纨<纩<纪<纫<纶<䊶<䊷<䊸"
+ "<䊹<䌶<𥾌<ð¥¾<𥾎<ð¥¾<ð¥¾<𥾑<𥾒<𥾓<𥾔<𥾕<𥾖<𥾗<𥾘<ç´€<ç´Š<ç´‹<ç´Œ<ç´<ç´Ž<ç´<ç´<ç´‘<ç´’<ç´“<ç´”<"
+ "ç´•<ç´–<ç´—<ç´˜<ç´™<ç´š<ç´›<ç´œ<ç´<ç´ž<ç´Ÿ<ç´ <ç´¡<ç´¢<ç´£<ç´¤<ç´¥<ç´¦<ç´§<纬<纭<纮<纯<纰<纱<纲<纳<纴<纵<纷<纸<纹<纺<纻<"
+ "纼<纽<纾<䊺<䊻<䊼<䊽<䊾<䊿<ä‹€<ä‹<ä‹‚<䋃<ä‹„<ä‹…<䋆<䋇<䌸<𥾙<𥾚<𥾛<𥾜<ð¥¾<𥾞<𥾟<𥾠<𥾡<𥾢<𥾣"
+ "<𥾤<𥾥<𥾦<𥾧<𥾨<𥾩<𥾪<𥾫<𥾬<𥾭<𥾮<𥾯<𥾰<𥾱<𥾲<𥾳<𥾴<𥾵<𥾶<𥾷<𥾸<𥾹<"
+ "𥾺<𥾻<𥾼<𥾽<𥾾<𥾿<𥿀<ð¥¿<𥿂<ç´¢<ç´<ç´¨<ç´©<ç´ª<ç´«<ç´¬<ç´­<ç´®<ç´¯<ç´°<ç´±<ç´²<ç´³<ç´´<ç´µ<ç´¶<ç´·<ç´¸<ç´¹<ç´º"
+ "<ç´»<ç´¼<ç´½<ç´¾<ç´¿<çµ€<çµ<終<絃<組<çµ…<絆<絇<絈<絉<絊<絋<経<线<绀<ç»<绂<练<组<ç»…<细<织<终<绉<绊<绋<绌<ç»<绎"
+ "<ç»<ç»<䋈<䋉<ä‹Š<ä‹‹<ä‹Œ<ä‹<ä‹Ž<ä‹<ä‹<ä‹‘<ä‹’<ä‹“<ä‹”<䌷<䌹<𥿃<𥿄<𥿅<𥿆<𥿇<𥿈<𥿉<𥿊<𥿋<𥿌<ð¥¿<"
+ "𥿎<ð¥¿<ð¥¿<𥿑<𥿒<𥿓<𥿔<𥿕<𥿖<𥿗<𥿘<𥿙<𥿚<𥿛<𥿜<ð¥¿<𥿞<𥿟<𥿠<𥿡<𥿢<𥿣<𥿤"
+ "<𥿥<𦈈<ç´¯<çµ<絎<çµ<çµ<絑<çµ’<絓<çµ”<絕<çµ–<çµ—<絘<çµ™<絚<絜<çµ<絞<絟<çµ <絡<çµ¢<çµ£<絤<çµ¥<給<絧<絨<絩<絪<絫"
+ "<絬<çµ­<çµ®<絯<çµ°<çµ±<çµ²<çµ³<çµ´<çµµ<絶<çµ·<绑<ç»’<结<ç»”<绕<ç»–<ç»—<绘<ç»™<绚<ç»›<络<ç»<绞<统<ä‹•<ä‹–<ä‹—<䋘<ä‹™<ä‹š<ä‹›"
+ "<ä‹œ<ä‹<ä‹ž<䌺<䌻<𥿦<𥿧<𥿨<𥿩<𥿪<𥿫<𥿬<𥿭<𥿮<𥿯<𥿰<𥿱<𥿲<𥿳<𥿴<𥿵<𥿶<𥿷<𥿸<"
+ "𥿹<𥿺<𥿻<𥿼<𥿽<𥿾<𥿿<𦀀<ð¦€<𦀂<𦀃<𦀄<𦀅<𦀆<𦀇<𦀈<𦀉<𦀊<𦀋<𦀌<ð¦€<𦀎<ð¦€"
+ "<ð¦€<𦀑<𦈉<çµ£<çµ›<絸<çµ¹<絺<çµ»<çµ¼<çµ½<çµ¾<絿<綀<ç¶<綂<綃<綄<綅<綆<綇<綈<綉<綊<綋<綌<ç¶<綎<ç¶<ç¶<綑<綒<"
+ "經<綔<綕<綖<綗<綘<継<続<綛<ç·<ç» <绡<绢<绣<绤<绥<绦<继<绨<ä‹Ÿ<ä‹ <ä‹¡<ä‹¢<ä‹£<䋤<ä‹¥<䋦<䌼<𦀒<𦀓<𦀔<𦀕<"
+ "𦀖<𦀗<𦀘<𦀙<𦀚<𦀛<𦀜<ð¦€<𦀞<𦀟<𦀠<𦀡<𦀢<𦀣<𦀤<𦀥<𦀦<𦀧<𦀨<𦀩<𦀪<𦀫<𦀬"
+ "<𦀭<𦀮<𦀯<𦀰<𦀱<𦀲<𦀳<𦀴<𦀵<𦀶<𦀷<𦀸<𦀹<𦀺<𦀻<𦀼<𦀽<𦀾<𦀿<ð¦€<ð¦<ð¦‚<"
+ "ð¦ƒ<ð¦„<ð¦…<𦈊<𦈋<𦈌<çµ›<綜<ç¶<綞<綟<綠<綡<綢<綣<綤<綥<綦<綧<綨<綩<綪<綫<綬<維<綮<綯<綰<綱<網<綳<"
+ "綴<綵<綶<綷<綸<綹<綺<綻<綼<綽<綾<綿<ç·€<ç·<ç·‚<ç·ƒ<ç·„<ç·…<ç·†<ç·‡<ç·ˆ<ç·‰<ç·Š<ç·‹<ç·Œ<ç·<ç·Ž<ç·<ç·‘<ç·’<ç·”<ç·•<绩<绪<"
+ "绫<绬<ç»­<ç»®<绯<ç»°<ç»±<绲<绳<ç»´<绵<绶<ç»·<绸<绹<绺<ç»»<综<绽<绾<绿<ç¼€<ç¼<䋧<䋨<ä‹©<䋪<ä‹«<䋬<ä‹­<ä‹®<䋯<ä‹°<䋱<"
+ "䋲<䌽<ð¦†<ð¦‡<ð¦ˆ<ð¦‰<ð¦Š<ð¦‹<ð¦Œ<ð¦<ð¦Ž<ð¦<ð¦<ð¦‘<ð¦’<ð¦“<ð¦”<ð¦•<ð¦–<ð¦—<ð¦˜<ð¦™<ð¦š<"
+ "ð¦›<ð¦œ<ð¦<ð¦ž<ð¦Ÿ<ð¦ <ð¦¡<ð¦¢<ð¦£<ð¦¤<ð¦¥<ð¦¦<ð¦§<ð¦¨<ð¦©<ð¦ª<ð¦«<ð¦¬<ð¦­<ð¦®<ð¦¯<ð¦°<ð¦±"
+ "<ð¦²<ð¦³<ð¦´<ð¦µ<ð¦¶<ð¦·<ð¦¸<ð¦¹<ð¦º<ð¦»<ð¦¼<ð¦½<ð¦¾<ð¦¿<ð¦ˆ<𦈎<ð¦ˆ<ð¦ˆ<綠<綾<ç·‡<ç·“<ç·–<ç·—<ç·˜"
+ "<ç·™<ç·š<ç·›<ç·œ<ç·<ç·ž<ç·Ÿ<ç· <ç·¡<ç·¢<ç·£<ç·¤<ç·¥<ç·¦<ç·§<ç·¨<ç·©<ç·ª<ç·«<ç·¬<ç·­<ç·®<ç·¯<ç·°<ç·±<ç·²<ç·³<ç·´<ç·µ<ç·¶<ç··<ç·¸<ç·¹<ç·º"
+ "<ç·»<ç·¼<ç·½<ç·¾<ç·¿<縀<ç¸<縂<縃<縄<縅<縆<縇<缂<缃<缄<ç¼…<缆<缇<缈<缉<缊<缋<缌<ç¼<缎<ç¼<ç¼<缑<ç¼’<缓<ç¼”<缕<ç¼–"
+ "<ç¼—<缘<䋳<ä‹´<䋵<䋶<ä‹·<䋸<䋹<䋺<ä‹»<䋼<䋽<䋾<ä‹¿<䌀<äŒ<䌂<䌃<䌄<䌾<䌿<𦂀<ð¦‚<𦂂<𦂃<𦂄<𦂅<𦂆<𦂇"
+ "<𦂈<𦂉<𦂊<𦂋<𦂌<ð¦‚<𦂎<ð¦‚<ð¦‚<𦂑<𦂒<𦂓<𦂔<𦂕<𦂖<𦂗<𦂘<𦂙<𦂚<𦂛<𦂜<ð¦‚<"
+ "𦂞<𦂟<𦂠<𦂡<𦂢<𦂣<𦂤<𦂥<𦂦<𦂨<𦂩<𦂪<𦂫<𦂬<𦂭<𦂮<𦂯<𦂰<𦂱<𦂲<𦂳<𦂴<𦂵"
+ "<𦂶<𦂷<𦂸<𦂹<𦂺<𦂻<𦂼<𦂽<𦂾<𦂿<𦃀<ð¦ƒ<𦈑<𦈒<𦈓<𦈔<𦈕<ç·´<ç·´<ç·´<äŒ<縂<縈<縉<縊<"
+ "縋<縌<ç¸<縎<ç¸<ç¸<縑<縒<縓<縔<縕<縖<縗<縘<縙<縚<縛<縜<ç¸<縞<縟<縠<縡<縢<縣<縤<縥<縦<縧<縨<ç¼™<缚<ç¼›<缜<"
+ "ç¼<缞<缟<ç¼ <缡<ç¼¢<ç¼£<缤<䌅<䌆<䌇<䌈<䌉<䌊<䌋<ä€<𦂧<𦃂<𦃃<𦃄<𦃅<𦃆<𦃇<𦃈<𦃉<𦃊<𦃋<𦃌<"
+ "ð¦ƒ<𦃎<ð¦ƒ<ð¦ƒ<𦃑<𦃒<𦃓<𦃔<𦃕<𦃖<𦃗<𦃘<𦃙<𦃚<𦃛<𦃜<ð¦ƒ<𦃞<𦃟<𦃠<𦃡<𦃢<𦃣"
+ "<𦃤<𦃥<𦃦<𦃧<𦃨<𦃩<𦃪<𦃫<𦃬<𦃭<𦃮<𦃯<𦃰<𦃱<𦃲<𦃳<𦃴<𦃵<𦃶<𦃷<𦃸<𦃹<"
+ "𦃺<𦃻<𦃼<𦃽<𦃾<𦃿<𦄀<ð¦„<𦄃<𦄄<𦄅<𦄆<𦄇<𦄈<𦈖<𦈗<𦈘<𦈙<縉<縩<縪<縫<縬<縭<縮<"
+ "縯<縰<縱<縲<縳<縴<縵<縶<縷<縸<縹<縺<縻<縼<總<績<縿<ç¹€<ç¹<繂<繃<繄<ç¹…<繆<繇<繉<繊<繌<ç¹<ç¼¥<缦<缧<缨<缩<"
+ "缪<缫<䌌<äŒ<䌎<äŒ<äŒ<䌑<䌒<䌓<䌔<䌕<𦄂<𦄉<𦄊<𦄋<𦄌<ð¦„<𦄎<ð¦„<ð¦„<𦄑<𦄒<𦄓<𦄔<𦄕<𦄖"
+ "<𦄗<𦄘<𦄙<𦄚<𦄛<𦄜<ð¦„<𦄞<𦄟<𦄠<𦄡<𦄢<𦄣<𦄤<𦄥<𦄦<𦄧<𦄨<𦄩<𦄪<𦄫<𦄬<"
+ "𦄭<𦄮<𦄯<𦄰<𦄱<𦄲<𦄳<𦄴<𦄵<𦄶<𦄷<𦄸<𦄹<𦄺<𦄻<𦈚<縷<ç¹<ç¹…<繈<繎<ç¹<ç¹<繑<ç¹’<繓<"
+ "ç¹”<繕<ç¹–<ç¹—<繘<ç¹™<繚<ç¹›<繜<ç¹<繞<繟<ç¹ <繡<ç¹¢<ç¹£<繤<ç¹¥<繧<ç¹±<缬<ç¼­<ç¼®<缯<䌖<䌗<䌘<䌙<䌚<䌛<𦄼<𦄽<𦄾"
+ "<𦄿<𦅀<ð¦…<𦅂<𦅃<𦅄<𦅅<𦅆<𦅇<𦅈<𦅉<𦅊<𦅋<𦅌<ð¦…<𦅎<ð¦…<ð¦…<𦅑<𦅒<𦅓<𦅔<"
+ "𦅕<𦅖<𦅗<𦅘<𦅙<𦅚<𦅛<𦅜<ð¦…<𦅞<𦅟<𦅠<𦅡<𦅢<𦅣<𦅤<𦅥<𦅦<𦅧<𦅨<𦅩<𦅪<𦅫"
+ "<𦅬<𦅭<𦅮<𦅯<𦅰<𦅱<𦅲<𦅳<𦅴<𦈛<𦈜<ð¦ˆ<繋<繦<繨<繩<繪<繫<繬<ç¹­<ç¹®<繯<ç¹°<ç¹²<ç¹³<ç¹´<ç¹µ<繶"
+ "<ç¹·<繸<ç¹¹<繺<ç¼°<ç¼±<ç¼²<ç¼³<ç¼´<䌜<äŒ<䌞<䌟<䌠<䌡<䌢<ä<𦅵<𦅶<𦅷<𦅸<𦅹<𦅺<𦅻<𦅼<𦅽<𦅾<𦅿<"
+ "𦆀<ð¦†<𦆂<𦆃<𦆄<𦆅<𦆆<𦆇<𦆈<𦆉<𦆊<𦆋<𦆌<ð¦†<𦆎<ð¦†<ð¦†<𦆑<𦆒<𦆓<𦆔<𦆕<𦆖"
+ "<𦆗<𦆘<𦆙<𦆚<𦆛<𦆥<𦈞<𦈟<ç¹»<ç¹¼<ç¹½<ç¹¾<繿<纀<çº<纂<纃<䌣<䌤<䌥<䌦<䌧<𦆜<ð¦†<𦆞<𦆟<𦆠<"
+ "𦆡<𦆢<𦆣<𦆦<𦆧<𦆩<𦆪<𦆬<𦆭<𦆮<𦆯<𦆰<𦆱<𦆲<𦆳<𦆴<𦆵<𦆶<𦆷<𦆸<𦆹<𦆺<𦈠"
+ "<𦈡<纄<纅<纆<纇<纈<纉<纊<纋<續<çº<纎<çº<çº<䌨<䌩<𦆤<𦆨<𦆫<𦆻<𦆼<𦆽<𦆾<𦆿<𦇀<ð¦‡<𦇃<"
+ "𦇄<𦇅<𦇆<𦇇<𦇈<𦇉<𦇊<𦇋<𦇌<ð¦‡<𦇎<ð¦‡<ð¦‡<𦇑<𦇒<𦇓<纑<纒<ç¼µ<䌪<䌫<䌬<䌭<𦇂<𦇔<"
+ "𦇕<𦇖<𦇗<𦇘<𦇙<𦇚<𦇛<𦇜<ð¦‡<𦇞<𦇟<𦇠<𦇡<𦇢<𦇣<𦇤<𦇥<𦇦<𦇚<纓<纔<纕<纖<䌮<"
+ "𦇧<𦇨<𦇩<𦇪<𦇫<𦇬<𦇭<𦇮<𦇯<纗<䌯<䌰<䌱<䌲<𦇰<𦇱<𦇲<𦇳<𦇴<𦇵<𦇶<𦇷<𦇹<纘<纙<"
+ "纚<纛<䌳<䌴<𦇸<𦇺<𦇻<䌴<𦇼<𦇽<纜<çº<䌵<𦇾<𦇿<𦈀<ð¦ˆ<𦈂<𦈃<𦈄<纞<𦈅<𦈆<𦈇<缶<𦈢<"
+ "ç¼·<缸<ä‚<𦈣<𦈤<𦈥<ç¼¹<缺<ç¼¼<äƒ<𦈦<𦈧<𦈨<𦈨<ç¼»<ç¼½<ä„<ä…<ä†<ä‡<äˆ<ä‰<𦈩<𦈪<𦈫<𦈬<𦈭<𦈮"
+ "<ç¼¾<缿<ç½€<äŠ<𦈯<𦈰<𦈱<𦈲<𦈳<ç¼¾<𦈴<𦈵<𦈶<𦈷<ç½<罂<ä‹<äŒ<𦈸<𦈹<𦈺<𦈻<𦈼<𦈽<𦈾<"
+ "𦈿<𦉀<ð¦‰<𦉂<𦉃<𦉄<𦉅<𦉆<𦉇<𦉇<罃<ä<𦉈<𦉉<𦉊<𦉋<𦉌<ð¦‰<𦉎<罄<ç½…<罆<ð¦‰<ð¦‰<"
+ "𦉑<𦉒<𦉓<𦉔<罇<罈<罉<𦉕<𦉖<𦉗<𦉘<罊<罋<ð¤•<𦉙<𦉚<𦉛<𦉜<罌<ð¦‰<𦉞<ç½<𦉟<𦉠<罎<ç½"
+ "<𦉡<äŽ<𦉢<𦉣<𦉤<ç½<𤫡<𦉥<𦉦<𦉧<𦉨<𦉩<网<ç½’<罓<ä<𦉪<𦉫<𦉭<𦉰<𦉯<𦉬<𦉮<𦉱<"
+ "𦉲<𦉳<𦉴<𦉵<𦉶<ç½”<罕<ç½–<ç½—<ä<ä‘<𦉷<𦉸<𦉹<𦉺<𦉻<𦉼<𦉽<𦉾<𦉿<𦊀<罘<ç½™<罚<ä’<ä“<ä”"
+ "<ð¦Š<𦊂<𦊃<𦊄<𦊅<𦊆<𦊇<𦊈<𦊉<𦊊<𦊋<𦊌<ð¦Š<ç½›<罜<ç½<罞<罟<ç½ <罡<ç½¢<ä•<ä–<ä—<𦊎<ð¦Š<"
+ "ð¦Š<𦊑<𦊒<𦊓<𦊔<𦊕<𦊖<𦊗<𦊘<𦊙<𦊚<𦊛<𦊜<ð¦Š<𦊞<𦊟<𦊠<𦊡<𦊢<𦊣<𦊥<𦊦<𦊧"
+ "<𦊨<𦊩<𦊳<ç½£<ä˜<𦊪<𦊫<𦊬<𦊭<𦊮<𦊯<𦊰<𦊱<𦊲<𦊴<𦊵<𦊶<𦊷<𦊸<𦊹<𦊺<𦊻<罤<ç½¥"
+ "<罦<ä™<äš<𦊼<𦊽<𦊾<𦊿<𦋀<ð¦‹<𦋂<𦋃<𦋄<𦋑<ä™<罧<罨<罩<罪<罫<罬<ç½­<ç½®<ç½²<ä›<äœ<ä<äž<𦋅<"
+ "𦋆<𦋇<𦋈<𦋉<𦋊<𦋋<𦋌<ð¦‹<𦋎<ð¦‹<ð¦‹<𦋒<𦋓<𦋔<𦋕<𦋖<𦋗<𦋘<𦋙<𦋚<𦋛<𦋜<ç½²<"
+ "𦋙<罯<ç½°<ç½±<ç½³<ç½´<äŸ<ð¦‹<𦋞<𦋟<𦋠<𦋡<𦋢<𦋣<𦋤<𦋥<𦋦<𦋧<𦋨<𦋩<𦋫<𦋬<𦋭<𦋮<ç½µ<"
+ "罶<ç½·<罸<𦋯<𦋰<𦋱<𦋲<𦋳<𦋴<𦋵<𦋶<𦋷<𦋸<𦋹<𦋺<𦋻<𦋼<ç½¹<罺<ç½»<ç½¼<ä <ä¡<𦋽<𦋾<𦋿"
+ "<𦌀<ð¦Œ<𦌂<𦌃<𦌄<𦌅<𦌆<𦌇<𦌈<𦌉<𦌊<𦌋<𦌌<ð¦Œ<𦌎<ð¦Œ<ð¦Œ<𦌑<ç½¹<罺<ç½½<ç½¾<罿<ç¾€<ç¾"
+ "<ä¢<𦌒<𦌓<𦌔<𦌕<𦌖<𦌗<𦌘<𦌙<𦌚<𦌛<𦌜<ð¦Œ<𦌞<𧷅<羂<ä£<𦌟<𦌠<𦌡<𦌢<𦌣<𦌤<"
+ "𦌥<𦌦<𦌧<𦌨<ð§°<羃<羄<ç¾…<羆<ä¤<𦌪<𦌫<𦌬<𦌭<𦌮<𦌯<𦌰<𦌱<𦌲<𦌳<𦌴<ç¾…<𦌵<𦌶<𦌷"
+ "<𦌸<𦌹<𦌺<ä¥<𦌻<𦌼<羇<𦌽<羈<羉<ä¦<𦌾<𦌿<ð¦€<ð¦<ð¦‚<ð¦ƒ<ð¦„<ð¦…<𦌾<ð¦†<ð¦‡<ð¦ˆ<ð¦‰<"
+ "ð¦Š<羊<ð¦‹<ð¦Œ<ð¦<羋<羌<ð¦Ž<ð¦<ð¦<ç¾<美<ç¾<ç¾<羑<ð¦‘<ð¦’<ð¦“<ð¦”<ð¦•<ð¦–<ç¾’<羓<ç¾”<ç¾–<ç¾—<羘<ç¾™"
+ "<ä§<ä¨<ä©<ð¦—<ð¦˜<ð¦™<ð¦š<ð¦›<ð¦œ<ð¦<ð¦ž<ð¦Ÿ<ð¦ <ð¦¡<ð¦¢<ð¦£<ð¦¤<ð¦®<羕<羚<ç¾›<羜<ç¾<羞<羟<äª<"
+ "ä«<ä¬<ä­<ð¦¥<ð¦¦<ð¦§<ð¦¨<ð¦©<ð¦ª<ð¦«<ð¦¬<ð¦­<ð¦¯<ð¦°<ð¦±<ð¦²<ð¦³<ð¦´<ð¦µ<ð¦¶<ð¦·<ð¦¸<羚<羕<ç¾ "
+ "<羡<ç¾¢<ä®<ä¯<ä°<ð¦¹<ð¦º<ð¦»<ð¦¼<ð¦½<ð¦¾<ð¦¿<𦎀<ð¦Ž<𦎂<𦎃<𦎄<ç¾£<群<ç¾¥<羦<羧<羨<義<羪<ä±<𦎆<"
+ "𦎇<𦎈<𦎉<𦎊<𦎋<𦎌<ð¦Ž<𦎎<ð¦Ž<ð¦Ž<𦎑<𦎒<𦎓<𦎔<𦎕<𦎖<羫<ä²<ä³<ä´<äµ<ä¶<𦎗<𦎘<𦎙"
+ "<𦎚<𦎛<𦎜<ð¦Ž<𦎞<𦎟<𦎠<𦎡<羬<ç¾­<ç¾®<羯<ç¾°<ä·<𦎢<𦎣<𦎤<𦎥<𦎦<𦎧<𦎨<𦎩<𦎪<𦎫<"
+ "𦎬<𦎭<𦎮<ç¾±<ç¾²<ä¸<ä¹<𦎯<𦎰<𦎱<𦎲<𦎳<𦎴<𦎵<𦎶<äº<𦎷<𦎸<𦎹<𦎺<𦎻<𦎼<𦎽<𦎾<"
+ "𦎿<ð¦€<ð¦<ð¦‚<ð¦ƒ<ð¦„<ç¾³<ç¾´<ç¾µ<ä»<ä¼<𦌩<ð¦…<ð¦†<ð¦‡<ð¦ˆ<ð¦‰<ð¦Š<ð¦‹<ð¦Œ<ð¦<ð¦Ž<ð¦<ð¦<"
+ "ð¦‘<ð¦’<ð¦“<ð¦”<羶<ç¾·<羸<ç¾¹<ð¦•<ð¦–<ð¦—<ð¦˜<ð¦™<ð¦š<ð¦›<羺<ð¦œ<ð¦<ð¦ž<ð¦Ÿ<ð¦ <ð¦¡<ç¾»<ç¾¼<ð¡…–<"
+ "ð¦¢<ð¦£<ð¦¤<ð¦¥<ð¦¦<ð¦§<ä½<ð¦¨<ð¦©<ð¦ª<ð¦«<ð¦¬<ð¦­<ð¦®<𣌞<ð¦¯<ð¦°<ð¦±<ç¾½<ç¾½<ð¦³<ð¦²<ç¾¾<羿<"
+ "ð¦´<ð¦µ<ð¦¶<ð¦·<ð¦¸<ð¦¹<ð¦º<ð¦»<ð¦¼<ð¦½<ð¦¾<ð¦¿<ð¦€<ð¦<ç¿€<ç¿<ç¿‚<翃<ç¿„<ç¿…<翆<ä¾<ä¿<ð¦‚<ð¦ƒ<ð¦„"
+ "<ð¦…<ð¦†<ð¦‡<ð¦ˆ<ð¦‰<ð¦Š<ð¦‹<ð¦Œ<ð¦<ð¦Ž<ð¦<ð¦<ð¦‘<ð¦’<ð¦“<ð¦”<翇<翈<翉<ç¿Š<ç¿‹<ç¿Œ<ç¿<ç¿Ž<ç¿<ç¿"
+ "<ç¿‘<ç¿’<䎀<äŽ<䎂<䎃<䎄<䎅<䎆<ð¦•<ð¦–<ð¦—<ð¦˜<ð¦™<ð¦š<ð¦›<ð¦œ<ð¦<ð¦ž<ð¦Ÿ<ð¦ <ð¦¡<ð¦¢<ç¿“<ç¿”<ç¿•<ç¿–"
+ "<ç¿—<翘<ç¿™<ç¿š<䎇<䎈<䎉<䎊<ð¦£<ð¦¤<ð¦¥<ð¦¦<ð¦§<ð¦¨<ð¦©<ð¦ª<ð¦«<ð¦¬<ð¦­<ð¦®<ð¦¯<ð¦°<ð¦±<ð¦²<ð¦³<"
+ "ð¦´<ð¦µ<ð¦¶<ð¦·<ç¿›<ç¿œ<ç¿<䎋<䎌<äŽ<䎎<ð¦¸<ð¦¹<ð¦º<ð¦»<ð¦¼<ð¦½<ð¦¾<ð¦¿<𦑀<ð¦‘<𦑂<𦑃<𦑄<𦑆<"
+ "ç¿ž<ç¿Ÿ<ç¿ <ç¿¡<ç¿¢<ç¿£<翤<äŽ<äŽ<䎑<䎒<䎓<𦑅<𦑇<𦑈<𦑉<𦑊<𦑋<𦑌<ð¦‘<𦑎<ð¦‘<ð¦‘<𦑒<𦑓<𦑔<𦑕"
+ "<𦑖<𦑗<ç¿¥<翦<翧<翨<ç¿©<翪<ç¿«<翬<ç¿­<𦑘<𦑙<𦑚<𦑛<𦑜<ð¦‘<𦑞<𦑟<𦑠<𦑡<𦑢<𦑣<𦑤<𦑥<"
+ "𦑦<𦑧<𦑨<𦑩<𦑪<𦑫<𦑬<𦑭<𦑮<𦑯<𦑻<翮<翯<翰<翱<䎔<䎕<𦑰<𦑱<𦑲<𦑳<𦑴<𦑵<𦑶<𦑷"
+ "<𦑸<𦑹<𦑺<𦑼<𦑽<𦑾<𦑿<𦒀<ð¦’<𦒂<𦒞<翲<翳<ç¿´<翵<翶<翼<𦒃<𦒄<𦒅<𦒆<𦒇<𦒈<𦒉<"
+ "𦒊<𦒋<𦒌<ç¿·<翸<翹<翺<ç¿»<䎖<䎗<䎘<ð¦’<𦒎<ð¦’<ð¦’<𦒑<𦒒<𦒓<𦒔<𦒕<𦒖<𦒗<𦒘<𦒙<𦒚<"
+ "𦒛<𦒟<翺<翽<翾<𦒜<ð¦’<𦒠<𦒡<ç¿¿<耀<䎙<𦒢<𦒣<𦒤<𦒥<𦒪<𦒫<䎚<𦒦<𦒨<𦒩<𦒬<𦒧<𦒭<"
+ "𦒮<𦒯<𦒰<è€<耂<考<è€<𦒱<𦒲<䎛<𦒳<𦒴<𦒵<耄<者<耆<𦒶<𦒷<𦒸<𦒹<者<者<者<耇<耈<耉<𦒺<"
+ "𦒻<𦒼<𦒽<𦒾<𦒿<耊<耋<䎜<äŽ<䎞<𦓀<ð¦“<𦓂<𦓄<𦓅<𦓆<𦓇<𦓃<𦓈<𦓉<𦓊<𦓋<𦓌<ð¦“<而"
+ "<ð¦“<𦓎<ð¦“<𦓑<è€<耎<è€<è€<耑<䎟<䎠<䎡<𦓒<𦓓<𦓔<𦓕<𦓖<𦓗<𦓘<𦓙<𦓚<𦓛<𦓜<𦓚<ð¦“<"
+ "𦓞<𦓟<𦓠<𦓡<𦓢<𦓣<耒<𦓤<耓<𦓥<𦓦<𦓧<耔<䎢<𦓨<𦓩<𦓪<耕<耖<耗<耘<耙<𦓫<耚<耛<耜<è€<"
+ "耞<耟<䎣<𦓬<𦓭<𦓮<耠<𦓯<𦓰<𦓱<𦓲<𦓳<耡<耢<䎤<䎥<𦓴<𦓵<𦓶<耣<耤<耥<䎦<䎧<䎨<䎩<䎪<𦓷<"
+ "𦓸<𦓹<𦓺<𦓻<𦓼<𦓽<𦓾<𦓿<𦔀<ð¦”<耦<耧<䎫<䎬<𦔂<𦔃<𦔄<𦔅<𦔆<𦔇<𦔈<𦔉<𦔊<耨<耩"
+ "<耪<𦔋<𦔌<ð¦”<𦔎<ð¦”<ð¦”<𦔑<𦔒<耫<耬<䎭<䎮<䎯<𦔓<𦔔<𦔕<𦔖<𦔗<𦔘<𦔙<𦔚<耭<耮<䎰<"
+ "𦔛<𦔜<ð¦”<𦔞<𦔠<𦔡<𦔢<𦔣<𦔤<𦔣<𦔟<𦔥<𦔦<𦔧<𦔨<耯<耰<䎱<𦔩<𦔪<耱<耲<𦔫<𦔬<"
+ "𦔭<耳<耴<䎲<𦔮<耵<𦔯<𦔰<𦔱<𦔲<𦔳<𦔴<𦔵<𦔶<耶<耷<𦔷<𦔸<𦔹<𦔺<𦔻<耸<耹<耺<耻<耼<耽"
+ "<耾<耿<è€<è<è‚<䎳<䎴<𦔼<𦔽<𦔾<𦔿<𦕀<ð¦•<𦕂<𦕃<𦕄<𦕅<𦕆<𦕇<𦕈<𦕉<𦕊<𦕋<𦕌<ð¦•"
+ "<𦕎<ð¦•<èƒ<è„<è…<è†<è‡<èˆ<è‰<èŠ<è‹<èŒ<è<䎵<䎶<ð¦•<𦕑<𦕒<𦕓<𦕔<𦕕<𦕖<𦕗<𦕘<𦕙<𦕚<𦕛"
+ "<𦕜<ð¦•<𦕞<𦕟<è†<èŽ<è<è<è‘<è’<è“<è”<è <䎷<𦕠<𦕡<𦕢<𦕤<𦕥<𦕦<𦕧<𦕨<𦕩<𦕪<𦕫<𦕬"
+ "<𦕭<𦕮<𦕯<𦕰<𦕱<𦕲<𦕳<𦕴<è <è•<è–<è—<è˜<䎸<䎹<𦕣<𦕵<𦕶<𦕷<𦕸<𦕹<𦕺<𦕻<𦕼<𦕽"
+ "<𦕾<𦕿<𦖀<ð¦–<𦖂<𦖃<𦖄<𦖅<𦖆<𦖇<𦖗<è™<èš<è›<èœ<è<èž<èŸ<è¡<è¢<è£<䎺<䎻<䎼<䎽<䎾<𦖈<"
+ "𦖉<𦖊<𦖋<𦖌<ð¦–<𦖎<ð¦–<ð¦–<𦖑<𦖒<𦖓<𦖔<𦖕<𦖖<𦖘<𦖙<𦖚<𦖛<𦖜<ð¦–<𦖞<𦖟<𦖠"
+ "<𦖡<è¤<è¥<è¦<è§<è¨<è©<èª<è«<䎿<ä€<𥧢<𦖢<𦖣<𦖤<𦖥<𦖦<𦖧<𦖨<𦖩<𦖪<𦖫<𦖬<𦖭<𦖮<𦖯"
+ "<𦖰<𦖱<𦖲<𦖳<𦖴<𦖵<𦖶<𦖷<𦖸<𦖹<𦖺<𦖻<𦗇<𦖨<è¬<è­<ä<ä‚<äƒ<𦖼<𦖽<𦖾<𦖿<𦗀<"
+ "ð¦—<𦗂<𦗃<𦗄<𦗅<𦗆<𦗈<𦗉<𦗊<𦗋<𦗌<ð¦—<𦗎<ð¦—<è¯<è°<è±<è²<è³<ä„<ä…<ä†<ä‡<ð¦—<𦗑<𦗒"
+ "<𦗓<𦗔<𦗕<𦗖<𦗗<𦗘<𦗙<𦗚<𦗛<𦗜<ð¦—<𦗞<è¯<è°<è®<è´<èµ<è¶<è·<äˆ<𦗟<𦗠<𦗡<𦗢<𦗣<"
+ "𦗤<𦗥<𦗦<𦗧<𦗨<𦗩<𦗪<𦗫<𦗬<𦗭<𦗮<𦗯<𦗰<𦗱<𦗲<è¸<𦗳<𦗴<𦗵<𦗶<𦗷<𦗸<𦗹<"
+ "𦗺<𦗻<𦗼<𦗽<è¹<èº<è»<è¼<ä‰<𦗾<𦗿<𦘀<ð¦˜<𦘂<𦘃<𦘄<𦘅<𦘆<𦘇<𦘈<𦘉<è½<è¾<äŠ<𦘊<"
+ "𦘋<𦘌<è¾<ð¦˜<𦘎<ð¦˜<ð¦˜<𦘑<è¿<è‚€<𦘒<𦘓<𦘔<è‚<è‚‚<肃<𦘕<𦘖<𦘗<𦘘<𦘙<𦘚<è‚„<è‚…<肆<ä‹<"
+ "𦘛<𦘜<肇<肈<ð¦˜<𦘞<𦘟<𦘠<𦘡<𦘢<𦘣<𦘤<𦘥<𦘦<𦘧<𦘨<肉<è‚Š<è‚‹<è‚Œ<è‚<è‚Ž<è‚<äŒ<ä<𦘩<"
+ "𦘪<𦘫<𦘬<𦘭<𦘮<𦘯<𦘰<𦘱<𦘲<𦘳<è‚‹<è‚<è‚‘<è‚’<è‚“<è‚”<è‚•<è‚–<è‚—<肘<è‚™<è‚š<è‚›<è‚œ<è‚<è‚ž<è‚Ÿ<è‚ <äŽ<"
+ "ä<𦘴<𦘵<𦘶<𦘷<𦘸<𦘹<𦘺<𦘻<𦘼<𦘽<𦘾<è‚¡<è‚¢<è‚£<肤<è‚¥<肦<肧<肨<è‚©<肪<è‚«<肬<è‚­<è‚®<肯<è‚°<肱"
+ "<育<肳<è‚´<肵<肶<è‚·<肸<肹<肺<è‚»<肼<肽<肾<è‚¿<胀<èƒ<ä<ä‘<ä’<ä“<ä”<ä•<ä–<ä—<ä˜<ä™<äš<ä›<äœ<ä<𦘿<𦙀<"
+ "ð¦™<𦙂<𦙃<𦙄<𦙅<𦙆<𦙇<𦙈<𦙉<𦙊<𦙋<𦙌<ð¦™<𦙎<ð¦™<ð¦™<𦙑<𦙒<𦙓<𦙔<𦙕<𦙖<𦙗"
+ "<𦙘<𦙙<𦙚<𦙛<𦙜<ð¦™<𦙞<𦙟<𦙠<𦙡<𦙢<𦙣<𦙤<𦙥<𦙦<𦙧<𦙨<𦙩<è‚­<ä™<ä•<育<胂<胃<胄"
+ "<胅<胆<胇<胈<胉<胊<胋<背<èƒ<胎<èƒ<èƒ<胑<胒<胓<胔<胕<胖<胗<胘<胙<胚<胛<胜<èƒ<胞<胟<胠<胡<胢<胣<胤<胥<胦"
+ "<胧<胨<胩<胪<胫<胬<脉<äž<äŸ<ä <ä¡<ä¢<ä£<ä¤<ä¥<ð¡‹œ<ð£¨<𦙪<𦙫<𦙬<𦙭<𦙮<𦙯<𦙰<𦙱<𦙲<𦙳<"
+ "𦙴<𦙵<𦙶<𦙷<𦙸<𦙹<𦙺<𦙻<𦙼<𦙽<𦙾<𦙿<𦚀<ð¦š<𦚂<𦚃<𦚄<𦚅<𦚆<𦚇<𦚈<𦚉<𦚊"
+ "<𦚋<𦚌<ð¦š<𦚎<ð¦š<ð¦š<𦚑<𦚒<𦚓<𦚔<𦚕<𦚖<𦚗<𦚘<𦚙<𦚚<𦚛<𦚜<胭<胮<胯<胰<胱<胲<胳"
+ "<胴<胵<胶<胷<胸<胹<胺<胻<胼<能<胾<胿<è„€<è„<è„‚<脃<è„„<è„…<脆<脇<脈<è„Š<è„‹<è„Œ<è„<è„Ž<è„<è„<è„‘<è„’<è„“<è„”<ä¦<ä§"
+ "<ä¨<ä©<äª<ä«<ä¬<ä­<ä®<ð£¯<ð£°<ð¦š<𦚞<𦚟<𦚠<𦚡<𦚢<𦚣<𦚤<𦚥<𦚦<𦚧<𦚨<𦚩<𦚪<𦚫<𦚬"
+ "<𦚭<𦚮<𦚯<𦚰<𦚱<𦚲<𦚳<𦚴<𦚵<𦚶<𦚷<𦚸<𦚹<𦚺<𦚻<𦚼<𦚽<𦚾<𦚿<𦛀<ð¦›<𦛂<"
+ "𦛃<𦛄<𦛅<𦛆<𦛇<𦛈<𦛉<𦛊<𦛋<𦛌<ð¦›<𦛎<ð¦›<ð¦›<𦛑<𦛒<𦛓<脃<è„•<è„–<è„—<脘<è„™<è„š<è„›<è„œ"
+ "<è„<è„ž<è„Ÿ<è„ <è„¡<è„¢<è„£<脤<è„¥<脦<脧<脨<è„©<脪<è„«<脬<è„­<è„®<脯<è„°<脱<脲<脳<è„´<脵<脶<è„·<脸<ä¯<ä°<ä±<ä²<ä³<ä´"
+ "<äµ<ä¶<ä·<ä¸<ä¹<äº<ä»<𦛔<𦛕<𦛖<𦛗<𦛘<𦛙<𦛚<𦛛<𦛜<ð¦›<𦛞<𦛟<𦛠<𦛡<𦛢<𦛣<𦛤<𦛥"
+ "<𦛦<𦛧<𦛨<𦛩<𦛪<𦛫<𦛬<𦛭<𦛮<𦛯<𦛰<𦛱<𦛲<𦛳<𦛴<𦛵<𦛶<𦛷<𦛸<𦛹<𦛺<𦛻<"
+ "𦛼<𦛽<𦛾<𦛿<𦜀<ð¦œ<𦜂<𦜃<𦜄<𦜅<脹<脺<è„»<脼<脽<脾<è„¿<è…€<è…<è…‚<è…ƒ<è…„<è……<è…†<è…‡<è…ˆ<è…‰<è…Š<è…‹<"
+ "è…Œ<è…<è…Ž<è…<è…<è…‘<è…’<è…“<è…”<è…•<è…–<è…—<è…˜<è…™<è…š<㬹<ä¼<ä½<ä¾<ä¿<ä€<ä<ä‚<äƒ<ä„<ä…<ä†<ä‡<äˆ<ä‰<äŠ<ä‹<äŒ<𦜆"
+ "<𦜇<𦜈<𦜉<𦜊<𦜋<𦜌<ð¦œ<𦜎<ð¦œ<ð¦œ<𦜑<𦜒<𦜓<𦜔<𦜕<𦜖<𦜗<𦜘<𦜙<𦜚<𦜛<𦜜<"
+ "ð¦œ<𦜞<𦜟<𦜠<𦜡<𦜢<𦜣<𦜤<𦜥<𦜦<𦜧<𦜨<𦜩<𦜪<𦜫<𦜬<𦜭<𦜮<𦜯<𦜰<𦜱<𦜲<𦜴"
+ "<𦜵<𦜶<𦜷<𦜸<𦜹<𦜺<𦜻<𦜼<𦜽<𦜾<𦜿<ð¦€<ð¦<ð¦‚<ð¦ƒ<ð¦„<ð¦…<ð¦†<ð¦‡<ð¦ˆ<ð¦‰<ð¦Š<"
+ "ð¦‹<ð¦Œ<ð¦<ð¦Ž<ð¦<ð¦<ð¦‘<ð¦’<ð¦“<ð¦”<ð¦•<ð¦–<ð¦—<ð¦˜<ð¦™<ä‹<脾<å¹<è…›<è…œ<è…<è…ž<è…Ÿ<è… <è…¡<è…¢<è…£"
+ "<è…¤<è…¥<è…¦<è…§<è…¨<è…©<è…ª<è…«<è…¬<è…­<è…®<è…¯<è…°<è…±<è…²<è…³<è…´<è…µ<è…¶<è…·<è…¸<è…¹<è…º<è…»<è…¼<è…½<è…¾<ä<äŽ<ä<ä<ä‘<ä’<ä“"
+ "<ä”<ä•<ä–<ä—<ä˜<ä™<äš<ä›<ð¦š<ð¦›<ð¦œ<ð¦<ð¦ž<ð¦Ÿ<ð¦ <ð¦¡<ð¦¢<ð¦£<ð¦¤<ð¦¥<ð¦¦<ð¦§<ð¦¨<ð¦©<ð¦ª<"
+ "ð¦«<ð¦¬<ð¦­<ð¦®<ð¦¯<ð¦°<ð¦±<ð¦²<ð¦³<ð¦´<ð¦µ<ð¦¶<ð¦·<ð¦¸<ð¦¹<ð¦º<ð¦»<ð¦¼<ð¦½<ð¦¾<ð¦¿<𦞀<ð¦ž"
+ "<𦞂<𦞃<𦞄<𦞅<𦞆<𦞇<𦞈<𦞉<𦞊<𦞋<𦞌<ð¦ž<𦞎<ð¦ž<ð¦ž<𦞑<𦞒<𦞓<𦞔<𦞕<𦞖<𦞗<"
+ "𦞘<𦟓<𦟔<è…¿<膀<è†<膂<膃<膄<膅<膆<膇<膈<膉<膊<膋<膌<è†<膎<è†<è†<膑<äœ<ä<äž<äŸ<ä <ä¡<ä¢<ä£<ä¤<ä¥<ä¦"
+ "<ä§<ä¨<ä©<äª<𦞙<𦞚<𦞛<𦞜<ð¦ž<𦞞<𦞟<𦞠<𦞡<𦞢<𦞣<𦞤<𦞥<𦞦<𦞧<𦞨<𦞩<𦞪<𦞫<𦞬"
+ "<𦞭<𦞮<𦞯<𦞰<𦞱<𦞲<𦞳<𦞴<𦞵<𦞶<𦞷<𦞸<𦞹<𦞺<𦞻<𦞼<𦞽<𦞾<𦞿<𦟀<ð¦Ÿ<𦟂<"
+ "𦟃<𦟄<𦟅<𦟆<𦟇<𦟈<𦟉<𦟊<𦟋<𦟌<ð¦Ÿ<𦟎<ð¦Ÿ<ð¦Ÿ<𦟑<𦟒<𦟕<𦟖<𦟗<𦞧<𦞵<膒<膓<膔"
+ "<膕<膖<膗<膘<膙<膚<膛<膜<è†<膞<膟<膠<膡<膢<膣<ä«<ä¬<ä­<ä®<ä¯<ä°<ä±<ä²<ä³<ä´<𦟘<𦟙<𦟚<𦟛<𦟜<ð¦Ÿ"
+ "<𦟞<𦟟<𦟠<𦟡<𦟢<𦟣<𦟤<𦟥<𦟦<𦟧<𦟨<𦟩<𦟪<𦟫<𦟬<𦟭<𦟮<𦟯<𦟰<𦟱<𦟲<𦟳<"
+ "𦟴<𦟵<𦟶<𦟷<𦟸<𦟹<𦟺<𦟻<𦟼<𦟽<𦟾<𦟿<𦠀<ð¦ <𦠂<膥<膦<膧<膨<膩<膪<膫<膬<膭<膮<膯<膰"
+ "<膱<膲<膳<膴<膵<膶<äµ<ä¶<ä·<ä¸<ä¹<äº<ä»<ä¼<ä½<𦠃<𦠄<𦠅<𦠆<𦠇<𦠈<𦠉<𦠊<𦠋<𦠌<ð¦ <𦠎<"
+ "ð¦ <ð¦ <𦠑<𦠒<𦠓<𦠔<𦠕<𦠖<𦠗<𦠘<𦠙<𦠚<𦠛<𦠜<ð¦ <𦠞<𦠟<𦠠<𦠡<𦠢<𦠣<𦠤<𦠥"
+ "<𦠦<𦠧<𦠨<𦠩<𦠪<𦠫<𦠬<𦠭<𦠮<𦠯<𦠰<𦠱<𦠲<𦠳<𦠴<𦠵<𦠶<𦠷<𦠸<𦠹<𦠺<𦠻<"
+ "𦠼<𦠽<𦡄<𦡮<膷<膸<膹<膺<膻<膼<膽<膾<膿<臀<è‡<臂<臃<臄<臅<臆<臇<臈<臉<臊<臋<臌<ä¾<ä¿<ä‘€<ä‘<𦠾<"
+ "𦠿<𦡀<ð¦¡<𦡂<𦡃<𦡅<𦡆<𦡇<𦡈<𦡉<𦡊<𦡋<𦡌<ð¦¡<ð¦¡<ð¦¡<𦡑<𦡒<𦡓<𦡔<𦡕<𦡘<𦡙"
+ "<𦡚<𦡛<𦡜<ð¦¡<𦡞<𦡟<𦡠<𦡡<𦡢<𦡣<𦡤<𦡥<𦡦<𦡧<𦡨<𦡩<𦡪<𦡫<𦡬<𦡭<𦡯<è‡<臎<"
+ "è‡<è‡<臑<臒<臓<ä‘‚<䑃<ä‘„<ä‘…<𤑃<𦡎<𦡰<𦡱<𦡲<𦡳<𦡴<𦡵<𦡶<𦡷<𦡸<𦡹<𦡺<𦡻<𦡼<𦡽<𦡾"
+ "<𦡿<𦢀<ð¦¢<𦢂<𦢃<𦢄<𦢅<𦢆<𦢇<𦢈<𦢉<臔<臕<臗<臘<䑆<䑇<䑈<𦢊<𦢋<𦢌<ð¦¢<𦢎<ð¦¢<ð¦¢"
+ "<𦢑<𦢒<𦢓<𦢔<𦢕<𦢖<𦢗<𦢘<𦢙<𦢚<𦢛<𦢜<ð¦¢<𦢞<𦢟<𦢠<𦢡<𦢢<𦢣<𦢤<臘<臖<臙<臚"
+ "<臛<臜<䑉<ä‘Š<𦢥<𦢦<𦢧<𦢨<𦢩<𦢪<𦢫<𦢬<𦢭<𦢮<𦢯<𦢰<𦢱<𦢲<𦢳<𦢴<𦢵<𦢶<𦢷<è‡<"
+ "ã”®<ä‘‹<ä‘Œ<ä‘<ä‘Ž<𦢸<𦢹<𦢺<𦢻<𦢼<𦢽<𦢾<臞<臟<ä‘<𦢿<𦣀<ð¦£<𦣂<𦣃<𦣄<𦣅<臠<臡<臢<ð¤“<"
+ "𦣆<𦣇<𦣈<𦣉<𦣊<𦣋<𦣌<ð¦£<𦣎<ð¦£<ð¦£<𦣑<𦣒<𦣓<𦣔<𦣕<𦣖<𦣗<𦣘<𦣙<𦣚<𦣛<𦣜"
+ "<臣<𦣞<ð¦£<臤<臥<𦣟<𦣠<𦣡<𦣢<𦣣<ä‘<𦣤<𦣥<臦<𦣦<𦣧<𦣨<𦣩<臧<𦣫<𦣬<𦣮<𦣭<𦣯<"
+ "𦣪<臨<臩<𦣰<𦣱<臨<䑑<𦣲<𦣳<𦣴<𦣵<𦣶<𦣷<𦣸<自<𦣹<臫<𦣺<𦣻<𦣼<𦣽<𦣾<𦣿<𦤀<臬<"
+ "臭<ð¦¤<𦤂<𦤃<𦤄<𦤅<𦤆<𦤇<𦤈<𦤉<𦤊<𦤋<臭<𦤌<ð¦¤<𦤎<ð¦¤<臮<臯<臰<ð¦¤<𦤑<𦤒<𦤓<"
+ "𦤔<𦤕<𦤖<𦤗<臱<𦤘<𦤙<𦤚<𦤛<𦤜<ð¦¤<臲<𦤞<𦤟<𦤠<𦤡<𦤢<𦤣<𦤤<𦤥<𦤦<𦤧<𦤨<"
+ "𦤩<𦤪<𦤫<𦤬<𦤭<𦤮<𦤯<𦤰<𦤱<𦤲<至<𦤳<𦤴<𦤵<致<䑒<𦤶<𦤷<𦤸<𦤹<𦤺<𦤻<𦤼<𦤽"
+ "<𦤾<臵<臶<臷<臸<𦤿<𦥀<臹<ä‘“<ð¦¥<臺<𦥂<𦥃<𦥄<𦥅<𦥆<𦥇<臻<𦥉<𦥊<𦥋<𦥌<ð¦¥<𦥎<ð¦¥<"
+ "ð¦¥<臼<𦥑<𦥒<𦥓<𦥔<臽<臾<𦥕<𦥖<𦥙<臿<𦥗<𦥘<𦥚<𦥛<𦥜<𦥧<舀<èˆ<ä‘”<ð¦¥<𦥞<𦥟<𦥠<"
+ "𦥡<𦥢<𦥣<𦥤<èˆ<èˆ<舂<ä‘•<𦥥<𦥦<𦥨<𦥩<𦥪<𦥫<𦥬<舃<舄<𦥭<𦥮<𦥯<𦥰<𦥱<𦥲<舄<舅<"
+ "𦥳<𦥴<𦥵<𦥶<𦥷<𦥸<𦥹<𦥺<與<ä‘–<𦥻<𦥼<𦥽<𦥾<𦥿<𦦀<ð¦¦<𦦂<𦦃<𦦄<興<ä‘—<𦦅<𦦆<"
+ "𦦇<𦦈<𦦉<𦦊<𦦋<𦦌<ð¦¦<𦦎<舆<舉<䑘<ð¦¦<ð¦¦<𦦑<𦦒<𦦓<𦦕<𦦖<𦦗<𦦘<𦦙<𦦚<𦦛<𦦜"
+ "<ð¦¦<𦦞<𦦟<𦦠<舊<𦦡<𦦢<𦦣<𦦤<𦦥<𦦦<𦦧<舋<𠤫<𦦩<𦦪<𦦫<𦦬<𦦯<𦦭<𦦮<𦦰<𦦱<"
+ "𦦲<𦦳<𦦴<𦦵<𦦶<𦦷<𦦸<𦦹<𦦺<𦦻<𤓟<𦦼<𦦽<𦦾<𦦿<𦧀<ð¦§<𦧂<𦧃<𦧄<𦧅<ð ”»<舌<"
+ "𦧆<èˆ<舎<èˆ<𦧇<èˆ<ä‘™<ä‘š<𦧈<𦧉<𦧊<𦧋<𦧌<ð¦§<𦧎<ð¦§<ð¦§<舑<ä‘›<𦧑<𦧒<𦧓<𦧔<舒<𦧕<𦧖"
+ "<𦧗<𦧘<𦧙<𦧚<𦧛<𦧜<ð¦§<𦧞<舓<舔<舕<𦧟<𦧠<𦧡<𦧢<𦧣<𦧤<𦧥<𦧦<舖<舗<ä‘œ<𦧧<𦧨<"
+ "𦧩<𦧪<𦧫<𦧬<舘<𦧭<𦧮<𦧯<𦧰<𦧱<𦧲<𦧳<舙<𦧴<𦧵<𦧶<舚<𦧷<𦧸<𦧹<𦧺<𦧻<𦧼<𦧽"
+ "<舛<舜<èˆ<舞<ä‘<𦧾<𦧿<ä‘ž<𦨀<ð¦¨<ä‘Ÿ<𦨃<𦨂<𦨄<𦨅<𦨆<舟<𠂨<𦨇<舠<ä‘ <𦨈<𦨉<𦨊<𦨋<𦨌"
+ "<ð¦¨<舡<舢<舣<舤<ä‘¡<ä‘¢<ä‘£<𦨎<ð¦¨<ð¦¨<𦨑<𦨒<𦨓<𦨔<舥<舦<舧<舨<舩<航<舫<般<舭<舮<舯<舰<舱<䑤<ä‘¥"
+ "<𦨕<𦨖<𦨗<𦨘<𦨙<𦨚<𦨛<𦨜<ð¦¨<𦨞<𦨟<𦨠<舲<舳<舴<舵<舶<舷<舸<船<舺<舻<䑦<䑧<䑨<ä‘©<𦨡<"
+ "𦨢<𦨣<𦨤<𦨥<𦨦<𦨧<𦨨<𦨩<𦨪<𦨫<𦨬<𦨭<𦨮<舼<舽<舾<舿<䑪<䑫<䑬<䑭<䑮<𦨯<𦨰<𦨱<𦨲"
+ "<𦨴<𦨵<𦨶<𦨷<𦨸<𦨹<𦨺<𦨻<𦨼<ä‘«<艀<è‰<艂<艃<艄<艅<艆<艇<艈<艉<䑯<ä‘°<𦨳<𦨽<𦨾<𦨿<𦩀"
+ "<ð¦©<𦩂<𦩃<𦩄<𦩅<𦩆<𦩇<𦩈<𦩉<艊<艋<艌<è‰<䑱<䑲<䑳<ä‘´<䑵<䑶<ä‘·<䑸<𦩊<𦩋<𦩌<ð¦©<𦩎<"
+ "ð¦©<ð¦©<𦩑<𦩒<𦩓<𦩔<𦩕<𦩖<𦩗<𦩘<𦩙<𦩚<𦩛<𦩜<𨦞<艎<è‰<è‰<艑<艒<艓<艔<䑹<䑺<ä‘»<ð¦©<"
+ "𦩞<𦩟<𦩠<𦩡<𦩢<𦩣<𦩤<𦩥<𦩦<𦩧<𦩨<𦩩<𦩪<𦩫<𦩬<𦩭<𦩮<𦩯<𦩰<𦩱<𦩲<𦩳<𦩿"
+ "<艕<艖<艗<艘<艙<䑼<䑽<䑾<𦩴<𦩵<𦩶<𦩷<𦩸<𦩹<𦩺<𦩻<𦩼<𦩽<𦩾<𦪀<ð¦ª<𦪂<𦪃<𦪄<𦪅<"
+ "艚<艛<艜<è‰<ä‘¿<ä’€<ä’<ä’‚<ä’ƒ<ä’„<ä’…<𦪆<𦪇<𦪈<𦪉<𦪊<𦪋<𦪌<ð¦ª<𦪎<ð¦ª<ð¦ª<艞<艟<艠<ä’†<ä’‡<ä’ˆ<"
+ "𦪑<𦪒<𦪓<𦪔<𦪕<𦪖<𦪗<𦪘<𦪙<𦪚<𦪛<𦪜<ð¦ª<𦪞<𦪟<𦪠<𦪡<𦪢<𦪣<𦪤<𦪥<𦪦<𦪧"
+ "<艡<艢<艣<艤<艥<𦪨<𦪩<𦪪<𦪫<𦪬<𦪭<𦪮<𦪯<𦪰<艦<艧<艨<艩<䒉<𦪱<𦪲<𦪳<𦪴<𦪵<艪<𦪶<"
+ "𦪷<𦪸<𦪺<𦪻<𦪼<艫<𦪽<𦪾<𦪿<𦫀<ð¦«<𦫂<艬<𦫃<𦫄<艭<𦫅<𦫆<𦫇<𦫉<𦫈<𦫊<艮<良<良"
+ "<艰<𦫋<𦫌<ð¦«<𦫎<ð¦«<ð¦«<艱<𦫑<𦫒<色<ä’Š<𦫓<艳<艴<ä’‹<𦫔<𦫕<𦫖<𦫗<𦫘<𦫙<𦫚<𦫛<𦫜"
+ "<ð¦«<艵<𦫞<𦫟<𦫠<𦫡<𦫢<𦫣<𦫤<𦫥<𦫦<𦫧<𦫨<𦫩<ä’Œ<ä’<𦫪<𦫫<𦫬<𦫭<𦫮<ä’Ž<ä’<艶<"
+ "𦫯<𦫰<𦫱<ä’<艷<𦫲<艸<艹<ä’‘<艹<艹<艺<é¾·<𦫳<𦫴<𦫵<艻<艼<艽<艾<艿<芀<èŠ<节<ä’’<ä’“<ä’”<𦫶<𦫷<"
+ "𦫸<𦫹<𦫺<𦫻<𦫼<𦫽<𦫾<𦫿<𦬀<芃<芄<芅<芆<芇<芈<芉<芊<芋<芌<èŠ<芎<èŠ<èŠ<芑<芒<芓<芔<芕<芖<芗"
+ "<ä’•<ä’–<ä’—<ä’˜<ä’™<ð¦¬<𦬂<𦬃<𦬄<𦬅<𦬆<𦬇<𦬈<𦬉<𦬊<𦬋<𦬌<ð¦¬<𦬎<ð¦¬<ð¦¬<𦬑<𦬒<芑<芋"
+ "<芘<芙<芚<芛<芜<èŠ<芞<芟<芠<芡<芢<芣<芤<芥<芦<芧<芨<芩<芪<芫<芬<芭<芮<芯<芰<花<芲<芳<芴<芵<芶<芷<芸<芹"
+ "<芺<芻<芼<芽<芾<è‹€<è‹<è‹‚<苃<è‹„<è‹…<苆<苇<苈<苉<è‹Š<è‹‹<è‹Œ<è‹<è‹Ž<è‹<茾<ä’š<ä’›<ä’œ<ä’<ä’ž<ä’Ÿ<ä’ <ä’¡<ä’¢<ä’£<ä’¤<ä’¥"
+ "<𦬓<𦬔<𦬕<𦬖<𦬗<𦬘<𦬙<𦬚<𦬛<𦬜<ð¦¬<𦬞<𦬟<𦬠<𦬡<𦬢<𦬣<𦬤<𦬥<𦬦<𦬧<𦬨<"
+ "𦬩<𦬪<𦬫<𦬬<𦬭<𦬮<𦬯<𦬰<𦬱<𦬲<𦬳<𦬴<𦬵<𦬶<èŠ<花<芳<芽<芿<è‹<è‹‘<è‹’<è‹“<è‹”<è‹•<è‹–<è‹—<"
+ "苘<è‹™<è‹š<è‹›<è‹œ<è‹<è‹ž<è‹Ÿ<è‹ <è‹¡<è‹¢<è‹£<苤<è‹¥<苦<苧<苨<è‹©<苪<è‹«<苬<è‹­<è‹®<苯<è‹°<英<苲<苳<è‹´<苵<苶<è‹·<苸<苹<"
+ "苺<è‹»<苼<苽<苾<è‹¿<茀<èŒ<茂<范<茄<茅<茆<茇<茈<茉<茊<茋<茌<èŒ<茎<èŒ<èŒ<茑<茓<茔<茕<ä’¦<ä’§<ä’¨<ä’©<ä’ª<ä’«<ä’¬<"
+ "ä’­<ä’®<ä’¯<𦬷<𦬸<𦬹<𦬺<𦬻<𦬼<𦬽<𦬾<𦬿<𦭀<ð¦­<𦭂<𦭃<𦭄<𦭅<𦭆<𦭇<𦭈<𦭉<𦭊<𦭋"
+ "<𦭌<ð¦­<𦭎<ð¦­<ð¦­<𦭑<𦭒<𦭓<𦭔<𦭕<𦭖<𦭗<𦭘<𦭙<𦭚<𦭛<𦭜<ð¦­<𦭞<𦭟<𦭠<𦭡<"
+ "𦭢<𦭣<𦭤<𦭥<𦭦<𦭧<𦭨<𦭩<𦭪<𦭫<𦭬<若<苦<𦬼<若<茒<茖<茗<茘<茙<茚<茛<茜<茞<茟<茠<茡<茢<"
+ "茤<茥<茦<茧<茨<茩<茪<茫<茬<茭<茮<茯<茰<茱<茲<茳<茴<茵<茶<茷<茸<茹<茺<茻<茼<茽<茿<è€<è<è‚<èƒ<è„<è…<è†<"
+ "è‡<èˆ<è‰<èŠ<è‹<èŒ<è<èŽ<è<è<è‘<è’<è”<è•<è–<è—<è˜<è™<èš<è›<èœ<è<èž<èŸ<è <è¡<è¢<è£<è¤<è¥<è¦<è§<è¨<è©<"
+ "èª<è«<è¬<è­<è®<è¯<ä’°<ä’±<ä’²<ä’³<ä’´<ä’µ<ä’¶<ä’·<ä’¸<ä’¹<ä’º<ä’»<ä’¼<ä’½<ä’¾<ä’¿<ä“€<ä“<𦭭<𦭮<𦭯<𦭰<𦭱<𦭲<𦭳"
+ "<𦭴<𦭵<𦭶<𦭷<𦭸<𦭹<𦭺<𦭻<𦭼<𦭽<𦭾<𦭿<𦮀<ð¦®<𦮂<𦮃<𦮄<𦮅<𦮆<𦮇<𦮈<𦮉<"
+ "𦮊<𦮋<𦮌<ð¦®<𦮎<ð¦®<ð¦®<𦮑<𦮒<𦮓<𦮔<𦮕<𦮖<𦮗<𦮘<𦮙<𦮚<𦮛<𦮜<ð¦®<𦮞<𦮟<𦮠"
+ "<𦮡<𦮢<𦮣<𦮤<𦮥<𦮦<𦮧<𦮨<𦮩<𦮪<𦮫<𦮬<𦮭<𦮮<𦮯<𦮰<𦮱<𦮲<𦮳<𦮴<𦮵<茶<è’<"
+ "è£<莽<èŒ<茣<è°<è±<è²<è³<è´<èµ<è¶<è·<è¸<è¹<èº<è»<è¼<è½<è¾<è¿<莀<èŽ<莂<莃<莄<莅<莆<莇<莈<莉<莊<莋<莌<èŽ<"
+ "莎<èŽ<èŽ<莑<莒<莓<莔<莕<莖<莗<莘<莙<莚<莛<莜<èŽ<莞<莟<莠<莡<莢<莣<莤<莥<莦<莧<莨<莩<莪<莫<莬<莮<莯<莰<"
+ "莱<莲<莳<莴<莵<莶<获<莸<莹<莺<莻<莼<莽<ä“‚<䓃<ä“„<ä“…<䓆<䓇<䓈<䓉<ä“Š<ä“‹<ä“Œ<ä“<ä“Ž<ä“<ä“<ä“‘<ä“’<ä““<ä“”<ä“–<𦮶"
+ "<𦮷<𦮸<𦮹<𦮺<𦮻<𦮼<𦮽<𦮾<𦮿<𦯀<ð¦¯<𦯂<𦯃<𦯄<𦯅<𦯆<𦯇<𦯈<𦯉<𦯊<𦯋<𦯌<"
+ "ð¦¯<𦯎<ð¦¯<ð¦¯<𦯑<𦯒<𦯓<𦯔<𦯕<𦯖<𦯗<𦯘<𦯙<𦯚<𦯛<𦯜<ð¦¯<𦯞<𦯟<𦯠<𦯡<𦯢<𦯣"
+ "<𦯤<𦯥<𦯦<𦯧<𦯨<𦯩<𦯪<𦯫<𦯬<𦯭<𦯮<𦯯<𦯰<𦯲<𦯳<𦯴<𦯵<𦯶<𦯷<𦯸<𦯹<𦯺<"
+ "𦯻<𦯼<𦯽<𦯾<𦯿<𦰀<ð¦°<𦰂<𦰃<𦰄<𦰅<𦰆<𦰇<𦰈<𦰉<𦰊<𦰋<𦰌<ð¦°<𦰎<ð¦°<ð¦°<𦰑"
+ "<𦰒<𦰓<𦰔<𦰕<𦰗<𦰘<𦰙<𦰚<𦰛<𦰜<ð¦°<𦰞<𦰟<𦰠<𦰡<𦰢<𦰣<𦰤<𦰥<𦰦<𦰧<𦰨<"
+ "𦰩<èŒ<茣<è“<莾<莿<è€<è<è‚<èƒ<è„<è…<è†<è‡<èˆ<è‰<èŠ<è‹<èŒ<è<èŽ<è<è<è‘<è’<è“<è”<è•<è–<è—<è˜<è™<èš<è›"
+ "<èœ<è<èž<èŸ<è <è¡<è¢<è£<è¤<è¥<è¦<è§<è¨<è©<èª<è«<è¬<è­<è®<è¯<è°<è±<è²<è³<è´<èµ<è¶<è·<è¸<è¹<èº<è»<è¼<è½"
+ "<è¾<è¿<è€<è<è‚<èƒ<è„<è…<è†<è‡<èˆ<è‰<èŠ<è‹<èŒ<è<èŽ<è<è<è‘<è’<è“<è”<è•<è–<è—<è˜<è™<èš<è›<èœ<è<èž<èŸ"
+ "<è <è¡<è¢<è£<è¤<è¥<è¦<è§<è¨<è‘—<ä“•<ä“—<䓘<ä“™<ä“š<ä“›<ä“œ<ä“<ä“ž<ä“Ÿ<ä“ <ä“¡<ä“¢<ä“£<䓤<ä“¥<䓦<䓧<䓨<ä“©<䓪<ä“«<䓬<ä“­"
+ "<𦯱<𦰖<𦰪<𦰫<𦰬<𦰭<𦰮<𦰯<𦰰<𦰱<𦰲<𦰳<𦰴<𦰵<𦰶<𦰷<𦰸<𦰹<𦰺<𦰻<𦰼<𦰽<"
+ "𦰾<𦰿<𦱀<ð¦±<𦱂<𦱃<𦱄<𦱅<𦱆<𦱇<𦱈<𦱉<𦱊<𦱋<𦱌<ð¦±<𦱎<ð¦±<ð¦±<𦱑<𦱒<𦱓<𦱔"
+ "<𦱕<𦱖<𦱗<𦱘<𦱙<𦱚<𦱛<𦱜<ð¦±<𦱞<𦱟<𦱠<𦱡<𦱢<𦱣<𦱤<𦱥<𦱦<𦱧<𦱨<𦱩<𦱪<"
+ "𦱫<𦱬<𦱭<𦱮<𦱯<𦱰<𦱱<𦱲<𦱳<𦱴<𦱵<𦱶<𦱷<𦱸<𦱹<𦱺<𦱻<𦱼<𦱽<𦱾<𦱿<𦲀<ð¦²"
+ "<𦲂<𦲃<𦲄<𦲅<𦲆<𦲇<𦲈<𦲉<𦲊<𦲋<𦲌<ð¦²<𦲎<ð¦²<ð¦²<𦲑<𦲒<𦲓<𦲔<𦲕<𦲖<𦲗<"
+ "𦲘<𦲙<𦲚<𦲛<𦲜<ð¦²<𦲞<𦲟<𦲠<𦲡<𦲢<𦲣<𦲤<𦲥<𦲦<𦲧<𦲨<𦲩<𦲪<𦲫<𦲬<𦲭<𦲮"
+ "<𦲯<𦲰<𦲱<𦲲<𦲳<𦲴<𦲵<𦲶<𦲷<𦲸<𦲹<𦲺<𦲻<𦲼<𦲽<𦲾<𦲿<𦳀<è‰<è±<è‘—<è¯<è§<è‘—<è“"
+ "<èŠ<èŒ<èœ<𦰶<莭<è©<èª<è«<è­<è®<è¯<è°<è±<è²<è³<è´<èµ<è¶<è·<è¸<è¹<èº<è»<è¼<è½<è¾<è¿<è‘€<è‘<è‘‚<葃<è‘„<è‘…<"
+ "葆<葇<葈<葉<è‘Š<è‘‹<è‘Œ<è‘<è‘Ž<è‘<è‘<è‘‘<è‘’<è‘“<è‘”<è‘•<è‘–<葘<è‘™<è‘š<è‘›<è‘œ<è‘<è‘ž<è‘Ÿ<è‘ <è‘¡<è‘¢<è‘£<葤<è‘¥<葦<葧<葨<"
+ "è‘©<葪<è‘«<葬<è‘­<è‘®<葯<è‘°<葱<葲<葳<è‘´<葵<葶<è‘·<葸<葹<葺<è‘»<葼<葽<葾<è‘¿<è’€<è’<è’‚<è’ƒ<è’„<è’…<è’†<è’‡<è’ˆ<è’‰<è’Š<"
+ "è’‹<è’Œ<è’<è’Ž<è’<ä“®<䓯<ä“°<䓱<䓲<䓳<ä“´<䓵<䓶<ä“·<䓸<䓹<䓺<ä“»<ð¦³<𦳂<𦳃<𦳄<𦳅<𦳆<𦳇<𦳈<𦳉<𦳊<"
+ "𦳋<𦳌<ð¦³<𦳎<ð¦³<ð¦³<𦳑<𦳒<𦳓<𦳔<𦳕<𦳖<𦳗<𦳘<𦳙<𦳚<𦳛<𦳜<ð¦³<𦳞<𦳟<𦳠<𦳡"
+ "<𦳢<𦳣<𦳤<𦳥<𦳦<𦳧<𦳨<𦳩<𦳪<𦳫<𦳬<𦳭<𦳮<𦳯<𦳰<𦳱<𦳲<𦳳<𦳴<𦳵<𦳶<𦳷<"
+ "𦳸<𦳹<𦳺<𦳻<𦳼<𦳽<𦳾<𦳿<𦴀<ð¦´<𦴂<𦴃<𦴄<𦴅<𦴆<𦴇<𦴈<𦴉<𦴊<𦴋<𦴌<ð¦´<𦴎"
+ "<ð¦´<ð¦´<𦴑<𦴒<𦴓<𦴔<𦴕<𦴖<𦴗<𦴘<𦴙<𦴚<𦴛<𦴜<ð¦´<𦴞<𦴟<𦴠<𦴡<𦴢<𦴣<𦴤<"
+ "𦴥<𦴦<𦴧<𦴨<𦴩<𦴪<𦴫<𦴬<𦴭<𦴮<𦴯<𦴰<𦴱<𦴲<𦴳<𦴴<𦴵<𦴷<𦴸<𦴹<𦴺<𦴻<𦴼"
+ "<𦴽<𦴾<𦴿<𦵀<ð¦µ<𦵂<𦵃<𦵄<𦵅<𦵆<𦵈<𦵉<𦵊<𦵋<𦵌<ð¦µ<𦵎<ð¦µ<ð¦µ<𦵑<𦵒<𦵓<"
+ "𦵔<𦵕<𦵖<𦵗<𦵘<𦵙<𦵚<𦵛<𦵜<ð¦µ<𦵞<𦵟<𦵠<è½<葉<莭<𦳕<è’<è’‘<è’’<è’“<è’”<è’•<è’–<è’—<è’˜<è’™<"
+ "è’š<è’›<è’œ<è’<è’ž<è’Ÿ<è’ <è’¡<è’¢<è’£<è’¤<è’¥<è’¦<è’§<è’¨<è’©<è’ª<è’«<è’¬<è’­<è’®<è’¯<è’°<è’±<è’²<è’³<è’´<è’µ<è’¶<è’·<è’¹<è’º<è’»<è’¼<"
+ "è’½<è’¾<è’¿<è“€<è“<è“‚<蓃<è“„<è“…<蓆<蓇<蓈<蓉<è“Š<è“‹<è“Œ<è“<è“Ž<è“<è“<è“‘<è“’<è““<è“”<è“•<è“–<è“—<蓘<è“™<è“š<è“›<è“œ<è“<è“ž<"
+ "è“Ÿ<è“ <è“¡<è“¢<è“£<蓤<蓦<䓼<䓽<䓾<ä“¿<䔀<ä”<䔂<䔃<䔄<ä”…<䔆<䔇<䔈<䔉<䔊<䔋<䔌<ä”<𤎀<𦵇<𦵡<𦵢<𦵣<𦵤<"
+ "𦵥<𦵦<𦵧<𦵨<𦵩<𦵪<𦵫<𦵬<𦵭<𦵮<𦵯<𦵰<𦵱<𦵲<𦵳<𦵴<𦵵<𦵶<𦵷<𦵸<𦵹<𦵺<𦵻"
+ "<𦵼<𦵽<𦵾<𦵿<𦶀<ð¦¶<𦶂<𦶃<𦶄<𦶅<𦶆<𦶇<𦶈<𦶉<𦶊<𦶋<𦶌<ð¦¶<𦶎<ð¦¶<ð¦¶<𦶑<"
+ "𦶒<𦶓<𦶔<𦶕<𦶖<𦶗<𦶘<𦶙<𦶚<𦶛<𦶜<ð¦¶<𦶞<𦶟<𦶠<𦶡<𦶢<𦶣<𦶤<𦶥<𦶦<𦶧<𦶨"
+ "<𦶩<𦶪<𦶫<𦶬<𦶭<𦶮<𦶯<𦶰<𦶱<𦶲<𦶳<𦶴<𦶵<𦶶<𦶷<𦶸<𦶹<𦶺<𦶻<𦶼<𦶽<𦶾<"
+ "𦶿<𦷀<ð¦·<𦷂<𦷃<𦷄<𦷅<𦷆<𦷇<𦷈<𦷉<𦷊<𦷋<𦷌<ð¦·<𦷎<ð¦·<ð¦·<𦷑<𦷒<𦷓<𦷔<𦷕"
+ "<𦷖<𦷗<𦷘<𦷙<𦷚<𦷛<𦷜<ð¦·<𦷞<𦷟<𦷠<𦷡<𦷢<𦷣<𦷤<𦷥<𦷦<𦷧<𦷨<𦷩<𦷪<𦷫<"
+ "𦷬<𦷭<𦷮<𦷯<𦷰<𦷱<𦷲<𦷳<𦷴<𦷵<𦷶<𦷷<𦷸<𦷹<𦷺<𦷻<𦷼<𦷽<𦷾<𦵫<蓥<蓧<蓨<蓩<"
+ "蓪<è“«<蓬<è“­<è“®<蓯<è“°<蓱<蓲<蓳<è“´<蓵<蓶<è“·<蓸<蓹<蓺<è“»<蓼<蓽<蓾<è“¿<蔀<è”<蔂<蔃<蔄<è”…<蔆<蔇<蔈<蔉<蔊<蔋<"
+ "蔌<è”<蔎<è”<è”<蔑<è”’<蔓<è””<蔕<è”–<è”—<蔘<è”™<蔚<è”›<蔜<è”<蔞<蔟<è” <蔡<蔢<蔣<蔤<蔥<蔦<蔧<蔨<蔩<蔪<蔫<蔬<è”­<"
+ "è”®<蔯<è”°<è”±<蔲<蔳<è”´<蔵<蔶<è”·<蔸<蔹<蔺<è”»<蔼<䔎<ä”<ä”<䔑<ä”’<䔓<ä””<䔕<ä”–<ä”—<䔘<ä”™<䔚<ä”›<䔜<ä”<䔞<䔟<ä” <"
+ "䔡<䔢<䔣<䔤<䔥<䔦<䔧<䔨<䔩<䔪<䔫<䔬<𦷿<𦸀<ð¦¸<𦸂<𦸃<𦸄<𦸅<𦸆<𦸇<𦸈<𦸉<𦸊<𦸋<𦸌<ð¦¸"
+ "<𦸎<ð¦¸<ð¦¸<𦸑<𦸒<𦸓<𦸔<𦸕<𦸖<𦸗<𦸘<𦸙<𦸚<𦸛<𦸜<ð¦¸<𦸞<𦸟<𦸠<𦸡<𦸢<𦸣<"
+ "𦸤<𦸥<𦸦<𦸧<𦸨<𦸩<𦸪<𦸫<𦸬<𦸭<𦸮<𦸯<𦸰<𦸱<𦸲<𦸳<𦸴<𦸵<𦸶<𦸷<𦸸<𦸹<𦸺"
+ "<𦸻<𦸼<𦸾<𦸿<𦹀<ð¦¹<𦹂<𦹃<𦹄<𦹅<𦹆<𦹇<𦹈<𦹉<𦹊<𦹋<𦹌<ð¦¹<𦹎<ð¦¹<ð¦¹<𦹑<"
+ "𦹒<𦹓<𦹔<𦹕<𦹖<𦹗<𦹘<𦹙<𦹚<𦹛<𦹜<ð¦¹<𦹞<𦹟<𦹠<𦹡<𦹢<𦹣<𦹤<𦹥<𦹦<𦹧<𦹨"
+ "<𦹩<𦹪<𦹫<𦹬<𦹭<𦹮<𦹯<𦹰<𦹱<𦹲<𦹳<𦹴<𦹵<𦹶<𦹷<𦹸<𦹹<𦹺<𦹻<𦹼<𦹽<𦹾<"
+ "𦹿<𦺀<ð¦º<𦺂<𦺃<𦺄<è“®<蓼<䔫<蓱<蓳<è”–<蔽<蔾<蔿<è•€<è•<è•‚<蕃<è•„<è•…<蕆<蕇<蕈<蕉<è•Š<è•‹<è•Œ<è•<è•Ž<è•<"
+ "è•<è•‘<è•’<è•“<è•”<è••<è•–<è•—<蕘<è•™<è•š<è•›<è•œ<è•<è•ž<è•Ÿ<è• <è•¡<è•¢<è•£<蕤<è•¥<蕦<蕧<蕨<è•©<蕪<è•«<蕬<è•­<è•®<蕯<è•°<蕱<"
+ "蕲<蕳<è•´<蕵<ä”­<ä”®<䔯<ä”°<ä”±<䔲<䔳<ä”´<䔵<䔶<ä”·<䔸<䔹<䔺<ä”»<䔼<䔽<䔾<䔿<ä•€<ä•<ä•‚<䕃<ä•„<𦸽<𦺆<𦺇<𦺈<"
+ "𦺉<𦺊<𦺋<𦺌<ð¦º<𦺎<ð¦º<ð¦º<𦺑<𦺒<𦺓<𦺔<𦺕<𦺖<𦺗<𦺘<𦺙<𦺚<𦺛<𦺜<ð¦º<𦺞<𦺟"
+ "<𦺠<𦺡<𦺢<𦺣<𦺤<𦺥<𦺦<𦺧<𦺨<𦺩<𦺪<𦺫<𦺬<𦺭<𦺮<𦺯<𦺰<𦺱<𦺲<𦺳<𦺴<𦺵<"
+ "𦺶<𦺷<𦺸<𦺹<𦺺<𦺻<𦺼<𦺽<𦺾<𦺿<𦻀<ð¦»<𦻂<𦻃<𦻄<𦻅<𦻆<𦻈<𦻉<𦻊<𦻋<𦻌<ð¦»"
+ "<𦻎<ð¦»<ð¦»<𦻑<𦻒<𦻓<𦻔<𦻕<𦻖<𦻗<𦻘<𦻙<𦻚<𦻛<𦻜<ð¦»<𦻞<𦻟<𦻠<𦻡<𦻢<𦻣<"
+ "𦻤<𦻥<𦻦<𦻧<𦻨<𦻩<𦻪<𦻫<𦻬<𦻭<𦻮<𦻯<𦻰<𦻱<𦻲<𦻳<𦻴<𦻵<𦻶<𦻷<𦻸<𦻹<𦻺"
+ "<𦻻<𦻼<𦻽<𦻿<𦼀<ð¦¼<𦼂<𦼃<𦼄<𦼅<𦼆<𦼇<𦼈<𦼉<𦼊<𦼋<𦼌<ð¦¼<𦼎<ð¦¼<ð¦¼<𦼑<"
+ "𦼒<𦼓<𦼔<𦼕<𦼖<𦼗<𦼘<𦼙<𦼚<𦼛<𦼜<ð¦¼<𦼞<𦼟<𦼠<𦼡<𦼢<𦼣<𦼤<𦼥<𦼦<𦼧<𦼨"
+ "<𦽭<蕤<蕶<è•·<蕸<蕹<蕺<è•»<蕼<蕽<蕾<è•¿<è–€<è–<è–‚<è–ƒ<è–„<è–…<è–†<è–‡<è–ˆ<è–‰<è–Š<è–‹<è–Œ<è–<è–Ž<è–<è–<è–‘<è–’<è–“<è–”<"
+ "è–•<è––<è–—<è–˜<è–™<è–š<è–›<è–œ<è–<è–ž<è–Ÿ<è– <è–¡<è–¢<è–£<è–¤<è–¥<è–¦<è–§<è–¨<è–ª<è–«<è–¬<è–®<龩<ä•…<䕆<䕇<䕈<䕉<ä•Š<ä•‹<ä•Œ<ä•<"
+ "ä•Ž<ä•<ä•<ä•‘<𦻾<𦼩<𦼪<𦼫<𦼬<𦼭<𦼮<𦼯<𦼰<𦼱<𦼲<𦼳<𦼴<𦼵<𦼶<𦼷<𦼸<𦼹<𦼺<𦼻<"
+ "𦼼<𦼽<𦼾<𦼿<𦽀<ð¦½<𦽂<𦽃<𦽄<𦽅<𦽆<𦽇<𦽈<𦽉<𦽊<𦽋<𦽌<ð¦½<𦽎<ð¦½<ð¦½<𦽑<𦽒"
+ "<𦽓<𦽔<𦽕<𦽖<𦽗<𦽘<𦽙<𦽚<𦽛<𦽜<ð¦½<𦽞<𦽟<𦽠<𦽡<𦽢<𦽣<𦽤<𦽥<𦽦<𦽧<𦽨<"
+ "𦽩<𦽪<𦽫<𦽬<𦽮<𦽯<𦽰<𦽱<𦽲<𦽳<𦽴<𦽵<𦽶<𦽷<𦽸<𦽹<𦽺<𦽻<𦽼<𦽽<𦽾<𦽿<𦾀"
+ "<ð¦¾<𦾂<𦾃<𦾄<𦾅<𦾆<𦾇<𦾈<𦾉<𦾊<𦾋<𦾌<ð¦¾<𦾎<ð¦¾<ð¦¾<𦾑<𦾒<𦾓<𦾔<𦾕<𦾖<"
+ "𦾗<𦾘<𦾙<𦾚<𦾛<𦾜<ð¦¾<𦾞<𦾟<𦾠<𦾡<𦾢<𦾣<𦾤<𦾥<𦾦<𦾧<𦾨<𦾩<𦿡<𦿸<﨟<𦼬<"
+ "è–©<è–­<è–¯<è–°<è–±<è–²<è–³<è–´<è–µ<è–¶<è–·<è–¸<è–¹<è–º<è–»<è–¼<è–½<è–¾<è–¿<è—€<è—<è—‚<è—ƒ<è—„<è—…<è—†<è—‡<è—ˆ<è—‰<è—Š<è—‹<è—Œ<è—<è—Ž<"
+ "è—<è—<è—‘<è—’<è—“<蘤<ä•’<ä•“<ä•”<ä••<ä•–<ä•—<䕘<ä•™<ä•š<ä•›<ä•œ<ä•<𦾪<𦾫<𦾬<𦾭<𦾮<𦾯<𦾰<𦾱<𦾲<𦾳<𦾴"
+ "<𦾵<𦾶<𦾷<𦾸<𦾹<𦾺<𦾻<𦾼<𦾽<𦾾<𦾿<𦿀<ð¦¿<𦿂<𦿃<𦿄<𦿅<𦿆<𦿇<𦿈<𦿉<𦿊<"
+ "𦿋<𦿌<ð¦¿<𦿎<ð¦¿<ð¦¿<𦿑<𦿒<𦿓<𦿖<𦿗<𦿘<𦿙<𦿚<𦿛<𦿜<𦿞<𦿟<𦿠<𦿢<𦿣<𦿤<𦿥"
+ "<𦿦<𦿧<𦿨<𦿩<𦿪<𦿫<𦿬<𦿭<𦿮<𦿯<𦿰<𦿱<𦿲<𦿳<𦿴<𦿵<𦿶<𦿷<𦿹<𦿺<𦿻<𦿼<"
+ "𦿽<𦿾<𦿿<𧀀<ð§€<𧀂<𧀃<𧀄<𧀅<𧀆<𧀇<𧀈<𧀉<𧀊<𧀋<𧀌<ð§€<𧀎<ð§€<ð§€<𧀑<𧀒<𧀓"
+ "<𧀔<𧀕<𧀖<𧀗<𧀘<𧀙<𧀚<𧀛<𧀜<ð§€<𧀞<𧀟<è—<ä•<𦾱<è—”<è—•<è—–<è——<è—˜<è—™<è—š<è—›<è—œ<è—<è—ž<è—Ÿ<"
+ "è— <è—¡<è—¢<è—£<è—¤<è—¥<è—¦<è—§<è—¨<è—©<è—ª<è—«<è—¬<è—­<è—¯<è—°<è—±<è—²<è—³<è—´<è—µ<ä•ž<ä•Ÿ<ä• <ä•¡<ä•¢<ä•£<䕤<ä•¥<𦿔<𦿕<ð¦¿<"
+ "𧀠<𧀡<𧀢<𧀣<𧀤<𧀥<𧀦<𧀧<𧀨<𧀩<𧀪<𧀫<𧀬<𧀭<𧀮<𧀯<𧀰<𧀱<𧀲<𧀳<𧀴<𧀵<𧀶"
+ "<𧀷<𧀸<𧀹<𧀺<𧀻<𧀼<𧀽<𧀾<𧀿<ð§€<ð§<ð§‚<ð§ƒ<ð§„<ð§…<ð§†<ð§‡<ð§ˆ<ð§‰<ð§Š<ð§‹<ð§Œ<"
+ "ð§<ð§Ž<ð§<ð§<ð§‘<ð§’<ð§“<ð§”<ð§•<ð§–<ð§—<ð§˜<ð§™<ð§š<ð§›<ð§œ<ð§<ð§ž<ð§Ÿ<ð§ <ð§¡<ð§¢<ð§£"
+ "<ð§¤<ð§¥<ð§¦<ð§§<ð§¨<ð§©<ð§ª<ð§«<ð§¬<ð§­<ð§®<ð§¯<ð§°<ð§±<ð§²<ð§³<ð§´<ð§µ<ð§¶<ð§·<ð§¸<ð§¹<"
+ "ð§º<𧃌<ä•¡<è—®<è—¶<è—·<è—¸<è—¹<è—º<è—»<è—¼<è—½<è—¾<è—¿<蘀<è˜<蘂<蘃<蘄<蘅<蘆<蘇<蘈<蘉<蘊<蘋<蘌<è˜<蘎<è˜<è˜<蘑<蘓<"
+ "蘔<蘢<䕦<䕧<䕨<ä•©<䕪<ä•«<䕬<ä•­<ä•®<䕯<ä•°<䕱<䕲<ð§»<ð§¼<ð§½<ð§¾<ð§¿<𧂀<ð§‚<𧂂<𧂃<𧂄<𧂅<𧂆<𧂇"
+ "<𧂈<𧂉<𧂊<𧂋<𧂌<ð§‚<𧂎<ð§‚<ð§‚<𧂑<𧂒<𧂓<𧂔<𧂕<𧂖<𧂗<𧂘<𧂙<𧂚<𧂛<𧂜<ð§‚<"
+ "𧂞<𧂟<𧂠<𧂡<𧂢<𧂣<𧂤<𧂥<𧂦<𧂧<𧂨<𧂩<𧂪<𧂫<𧂬<𧂭<𧂮<𧂯<𧂰<𧂱<𧂲<𧂳<𧂴"
+ "<𧂵<𧂶<𧂷<𧂸<𧂹<𧂺<𧂻<𧂼<𧂽<𧂾<𧂿<𧃀<ð§ƒ<𧃂<𧃃<𧃄<𧃅<𧃆<𧃇<𧃈<𧃉<𧃊<"
+ "𧃋<𧃎<蘆<è—º<ä•«<蘒<蘕<蘖<蘗<蘘<蘙<蘚<蘛<蘜<è˜<蘞<蘟<蘠<蘡<蘣<蘥<蘦<蘧<蘨<蘩<蘪<蘫<蘬<蘭<蘮<蘯<蘰<䕳<"
+ "ä•´<䕵<䕶<ä•·<ð§ƒ<ð§ƒ<ð§ƒ<𧃑<𧃒<𧃓<𧃔<𧃕<𧃖<𧃗<𧃘<𧃙<𧃚<𧃛<𧃜<ð§ƒ<𧃞<𧃟<𧃠<𧃡<"
+ "𧃢<𧃣<𧃤<𧃥<𧃦<𧃧<𧃨<𧃩<𧃪<𧃫<𧃬<𧃭<𧃮<𧃯<𧃰<𧃱<𧃲<𧃳<𧃴<𧃵<𧃶<𧃷<𧃸"
+ "<𧃹<𧃺<𧃻<𧃼<𧃽<𧃾<𧃿<𧄀<ð§„<𧄂<𧄃<𧄄<𧄅<𧄆<𧄇<𧄈<𧄉<𧄊<𧄋<𧄌<蘭<蘒<𧃒<"
+ "蘲<蘳<蘴<蘵<蘶<蘷<䕸<䕹<䕺<ð§„<𧄎<ð§„<ð§„<𧄑<𧄒<𧄓<𧄔<𧄕<𧄖<𧄗<𧄘<𧄙<𧄚<𧄛<𧄜<ð§„"
+ "<𧄞<𧄟<𧄠<𧄡<𧄢<𧄣<𧄤<𧄥<𧄦<𧄧<𧄨<𧄩<𧄪<𧄫<𧄬<𧄭<𧄮<𧄯<𧄰<𧄱<𧄲<𧄳<"
+ "𧄴<𧄵<蘱<蘸<蘹<蘺<蘻<蘼<蘽<蘾<蘿<虀<è™<ä•»<䕼<䕽<𧄶<𧄷<𧄸<𧄹<𧄺<𧄻<𧄼<𧄽<𧄾<𧄿<𧅀<"
+ "ð§…<𧅂<𧅃<𧅄<𧅅<𧅆<𧅇<𧅈<𧅉<𧅊<𧅋<𧅌<ð§…<𧅎<ð§…<ð§…<𧅑<𧅒<𧅓<𧅔<𧅕<蘿<虂<虃"
+ "<虄<è™…<䕾<𧅖<𧅗<𧅘<𧅙<𧅚<𧅛<𧅜<ð§…<𧅞<𧅟<𧅠<𧅡<𧅢<𧅣<𧅤<𧅥<𧅦<𧅧<𧅨<𧅩<"
+ "𧅪<𧅫<𧅬<𧅭<虆<虇<虈<虉<ä•¿<ä–€<𧅮<𧅯<𧅰<𧅱<𧅲<𧅳<𧅴<𧅶<𧅷<𧅸<𧅹<ä–<𧅺<𧅻<𧅼<"
+ "𧅽<𧅾<𧅿<𧆀<ð§†<𧆂<𧆃<𧆄<𧆅<虊<ä–‚<ä–ƒ<ä–„<𧆇<𧆈<𧆉<𧆊<𧆋<𧆌<ð§†<𧆎<ä–…<ä–†<𧅵<ð§†"
+ "<ð§†<𧆑<𧆒<虋<虌<𧆔<𧆕<𦺅<𧆖<𧆚<𧆗<ä–‡<𧆙<𧆓<𧆘<è™<虎<è™<ä–ˆ<𧆛<彪<è™<ä–‰<𧆜<ð§†<𧆞"
+ "<è™<虑<虓<è™”<ä–Š<ä–‹<ä–Œ<ä–<𧆟<𧆠<𧆡<𧆢<處<è™–<è™—<虘<è™™<虚<ä–Ž<ä–<𧆣<𧆤<𧆥<𧆦<𧆧<𧆨<𧆩<𧆪"
+ "<𧆫<𧆬<𧆭<𧆮<𧆯<𧆰<è™›<虜<è™<ä–<ä–‘<𧆱<𧆲<𧆳<𧆴<𧆵<𧆶<𧆷<𧆸<𧆹<虜<虜<虞<號<ä–’<ä–“<"
+ "ä–”<ä–•<ä––<𧆺<𧆻<𧆼<𧆽<𧆾<𧆿<𧇀<è™ <虡<ð§‡<𧇂<𧇃<𧇄<𧇅<𧇆<𧇇<𧇈<𧇉<𧇊<𧇋<𧇌<"
+ "ð§‡<𧇎<虢<虣<ä–—<ð§‡<ð§‡<𧇑<𧇒<𧇓<𧇔<𧇕<𧇖<𧇗<𧇘<𧇙<𧇚<𧇛<虤<虥<虦<ä–˜<𧇜<ð§‡<𧇞<"
+ "𧇟<𧇠<𧇡<𧇢<𧇣<𧇤<𧇥<𧇦<𧇧<𧇨<𧇩<𧇪<𧇫<𧇬<𧇭<𧇮<𧇯<𧇰<虧<虨<䖙<𧇱<𧇲<𧇳"
+ "<𧇴<𧇵<𧇶<𧇷<𧇸<𧇹<𧇺<虧<虩<ä–š<ä–›<𧇻<𧇼<𧇽<𧇾<𧇿<𧈀<ð§ˆ<𧈃<𧈄<虩<ä–œ<𧈂<𧈅<"
+ "𧈆<𧈇<𧈈<𧈉<𧈊<𧈋<𧈌<ð§ˆ<𧈎<ð§ˆ<𧈑<𧈒<𧈓<𧈔<𧈕<𧈖<𧈗<𧈘<𧈙<𧈚<𧈛<虪<𧈜<"
+ "虫<虬<ä–<ð§ˆ<𧈞<è™­<è™®<虯<è™°<è™±<虲<𧈟<𧈠<𧈡<𧈢<𧈣<𧈤<𧈥<𧈦<𧈧<虳<è™´<虵<虶<è™·<虸<虹<虺<è™»"
+ "<虼<虽<虾<虿<蚀<èš<èš‚<蚃<ä–ž<ä–Ÿ<ä– <𡯥<𧈨<𧈩<𧈪<𧈫<𧈬<𧈭<𧈮<𧈯<𧈰<𧈱<𧈲<𧈳<𧈴<𧈵<"
+ "𧈶<𧈷<𧈸<𧈹<𧈺<èš„<èš…<蚆<蚇<蚉<蚊<èš‹<蚌<èš<蚎<èš<èš<èš‘<èš’<èš“<èš”<èš•<èš–<èš—<蚘<èš™<èšš<èš›<èšœ<èš<èšž<蚟"
+ "<èš <èš¡<蚢<蚣<蚤<蚥<蚦<蚧<蚨<èš©<蚪<蚬<ä–¡<ä–¢<ä–£<𧈻<𧈼<𧈽<𧈾<𧈿<𧉀<ð§‰<𧉂<𧉃<𧉄<𧉅<𧉆<"
+ "𧉇<𧉈<𧉉<𧉊<𧉋<𧉌<ð§‰<𧉎<ð§‰<ð§‰<𧉑<𧉒<𧉓<𧉔<𧉕<𧉖<𧉗<𧉘<𧉙<𧉚<𧉛<𧉜<ð§‰"
+ "<èš©<èš«<èš­<èš®<蚯<èš°<èš±<èš²<èš³<èš´<èšµ<蚶<èš·<蚸<èš¹<蚺<èš»<èš¼<èš½<èš¾<èš¿<蛀<è›<蛂<蛃<蛄<è›…<蛆<蛇<蛈<蛉<蛊<蛋<蛌"
+ "<è›<蛎<è›<ä–¤<ä–¥<ä–¦<ä–§<ä–¨<ä–©<ä–ª<ä–«<ä–¬<𧉞<𧉟<𧉠<𧉡<𧉢<𧉣<𧉤<𧉥<𧉦<𧉧<𧉨<𧉩<𧉪<𧉫<"
+ "𧉬<𧉭<𧉮<𧉯<𧉰<𧉱<𧉲<𧉳<𧉴<𧉵<𧉶<𧉷<𧉸<𧉹<𧉺<𧉻<𧉼<𧉽<𧉾<𧉿<𧊀<ð§Š<𧊂"
+ "<𧊃<𧊄<𧊅<𧊆<𧊇<𧊈<𧊉<𧊊<𧊋<𧊌<ð§Š<𧊎<﨡<蚈<è›<蛑<è›’<蛓<è›”<蛕<è›—<蛘<è›™<蛚<è››<蛜<è›<蛞"
+ "<蛟<è› <蛡<蛢<蛣<蛤<蛥<蛦<蛧<蛨<蛩<蛪<蛫<蛬<è›­<è›®<蛯<è›°<è›±<蛲<蛳<è›´<ä–­<ä–®<ä–¯<ä–°<ä–±<ä–²<ä–³<ä–´<ä–µ<ð§Š<ð§Š"
+ "<𧊑<𧊒<𧊓<𧊔<𧊕<𧊖<𧊗<𧊘<𧊙<𧊚<𧊛<𧊜<ð§Š<𧊞<𧊟<𧊠<𧊡<𧊢<𧊣<𧊤<𧊥<𧊦<"
+ "𧊧<𧊨<𧊩<𧊪<𧊬<𧊭<𧊯<𧊰<𧊱<𧊲<𧊳<𧊴<𧊵<𧊶<𧊷<𧊸<𧊹<𧊺<𧊻<𧊼<𧊽<𧊾<𧊿"
+ "<𧋀<ð§‹<𧋂<𧋃<𧋄<𧋅<𧋆<𧋇<蚈<蛢<è›–<蛵<蛶<è›·<蛸<蛹<蛺<è›»<蛼<蛽<蛾<蛿<蜀<èœ<蜂<蜃<蜄<蜅<蜆<蜇"
+ "<蜈<蜉<蜊<蜋<蜌<èœ<蜎<èœ<èœ<蜑<蜒<蜓<蜔<蜕<蜖<蜗<蜫<è†<ä–¶<ä–·<ä–¸<ä–¹<ä–º<ä–»<ä–¼<ä–½<ä–¾<𧊫<𧊮<𧋈<𧋉<"
+ "𧋊<𧋋<𧋌<ð§‹<𧋎<ð§‹<ð§‹<𧋑<𧋒<𧋓<𧋔<𧋕<𧋖<𧋗<𧋘<𧋙<𧋚<𧋛<𧋜<ð§‹<𧋟<𧋠<𧋡"
+ "<𧋢<𧋣<𧋤<𧋥<𧋦<𧋧<𧋨<𧋩<𧋪<𧋫<𧋬<𧋭<𧋮<𧋯<𧋰<𧋱<𧋲<𧋳<𧋴<𧋵<𧋶<𧋷<"
+ "𧋸<𧋹<𧋺<𧋻<𧋼<𧋽<𧋾<𧋿<𧌀<ð§Œ<𧌂<𧌞<蜎<蜘<蜙<蜚<蜛<蜜<èœ<蜞<蜟<蜠<蜡<蜢<蜣<蜤<蜥<蜦<"
+ "蜧<蜨<蜩<蜪<蜬<蜭<蜮<蜯<蜰<蜱<蜲<蜳<蜴<蜵<蜶<蜷<蜸<蜹<蜺<蜻<蜼<蜽<蜾<蜿<è€<è<è‚<èƒ<è„<è…<è‡<èˆ<è‰<èŠ<"
+ "è‹<ä–¿<ä—€<ä—<ä—‚<ä—ƒ<ä—„<ä—…<ä—†<ä—‡<ä—ˆ<ä—‰<ä—Š<ä—•<𧋞<𧌃<𧌄<𧌅<𧌆<𧌇<𧌈<𧌉<𧌊<𧌋<𧌌<ð§Œ<𧌎<"
+ "ð§Œ<ð§Œ<𧌑<𧌒<𧌓<𧌔<𧌕<𧌖<𧌗<𧌘<𧌙<𧌚<𧌛<𧌜<ð§Œ<𧌟<𧌠<𧌡<𧌢<𧌣<𧌤<𧌥<𧌦"
+ "<𧌧<𧌨<𧌩<𧌪<𧌫<𧌬<𧌭<𧌮<𧌯<𧌱<𧌲<𧌳<𧌴<𧌵<𧌶<𧌷<𧌸<𧌹<𧌺<𧌻<𧌼<𧌽<"
+ "𧌾<𧌿<ð§€<ð§<ð§‚<ð§ƒ<ð§„<ð§…<ð§†<ð§‡<ð§ˆ<ð§‰<ð§Š<ð§‹<ð§Œ<ð§<ð§Ž<ð§<ð§<ð§‘<蜨<èŒ<è<èŽ<"
+ "è<è<è‘<è’<è“<è”<è•<è–<è—<è˜<è™<èš<è›<èœ<è<èž<èŸ<è <è¡<è¢<è£<è¤<è¥<è¦<è§<è¨<è©<èª<è«<è¬<è­<è®<è¯<è°<"
+ "è±<è²<è³<è´<èµ<è¶<è·<è¸<èº<è»<è¼<è½<è¾<è¿<螀<蟡<ä—‹<ä—Œ<ä—<ä—Ž<ä—<ä—<ä—‘<ä—’<ä—“<ä—”<ä—–<𧌰<ð§’<ð§“<ð§”<ð§•"
+ "<ð§–<ð§—<ð§˜<ð§™<ð§š<ð§›<ð§œ<ð§<ð§ž<ð§Ÿ<ð§ <ð§¡<ð§¢<ð§£<ð§¤<ð§¥<ð§¦<ð§§<ð§¨<ð§©<ð§ª<ð§«<"
+ "ð§¬<ð§­<ð§®<ð§¯<ð§°<ð§±<ð§²<ð§³<ð§´<ð§µ<ð§¶<ð§·<ð§¸<ð§¹<ð§º<ð§»<ð§¼<ð§½<ð§¾<ð§¿<𧎀<ð§Ž<𧎂"
+ "<𧎃<𧎄<𧎅<𧎆<𧎇<𧎈<𧎉<𧎊<𧎋<𧎌<ð§Ž<𧎎<ð§Ž<ð§Ž<𧎑<𧎒<𧎓<𧎔<𧎕<𧎖<𧎗<𧎘<"
+ "𧎙<𧎚<𧎛<𧎜<ð§Ž<𧎞<𧎟<𧎠<ð§‡<è«<蟡<è¹<èž<èž‚<螃<èž„<èž…<螆<螇<螈<螉<螊<èž‹<螌<èž<螎<èž<èž<èž‘<èž’"
+ "<èž“<èž”<èž•<èž–<èž—<螘<èž™<èžš<èž›<èžœ<èž<èžž<螟<èž <èž¡<螢<螣<螤<螥<螦<螧<螨<èž©<蟗<ä——<ä—˜<ä—™<ä—š<ä—›<ä—œ<ä—<ä—ž<𧎡<"
+ "𧎢<𧎣<𧎤<𧎥<𧎦<𧎧<𧎨<𧎩<𧎪<𧎫<𧎬<𧎭<𧎮<𧎯<𧎰<𧎱<𧎲<𧎳<𧎴<𧎵<𧎶<𧎷<𧎸"
+ "<𧎹<𧎺<𧎻<𧎼<𧎽<𧎾<𧎿<ð§€<ð§<ð§‚<ð§ƒ<ð§„<ð§…<ð§†<ð§ˆ<ð§‰<ð§Š<ð§‹<ð§Œ<ð§<ð§Ž<ð§<"
+ "ð§<ð§‘<ð§’<ð§“<ð§”<ð§•<ð§–<ð§—<ð§˜<ð§™<ð§š<ð§›<ð§œ<ð§<ð§ž<ð§Ÿ<ð§ <ð§¡<ð§¢<ð§£<ð§¤<ð§¥<ð§¦"
+ "<ð§§<ð§¨<ð§©<ð§ª<ð§«<ð§¬<ð§­<ð§®<ð§¯<ð§°<ð§±<ð§²<ð§³<ð§´<ð§µ<ð§¶<ð§·<è¹<ð§Š<è¹<螆<螪<èž«<螬<èž­"
+ "<èž®<螯<èž°<èž±<èž²<èž³<èž´<èžµ<螶<èž·<螸<èž¹<螺<èž»<èž¼<èž½<èž¾<èž¿<蟀<èŸ<蟂<蟃<蟄<蟅<蟆<蟇<蟈<蟉<蟊<蟋<蟌<èŸ<蟎<èŸ"
+ "<èŸ<蟑<蟒<è <ä—Ÿ<ä— <ä—¡<ä—¢<ä—£<ä—¤<ä—¥<ä—¦<ä—§<ä—¨<ä—©<ä—ª<ä—«<ä—¬<ä—­<ä—®<𢋜<ð§¸<ð§¹<ð§º<ð§»<ð§¼<ð§½<ð§¾<ð§¿<"
+ "ð§€<ð§<ð§‚<ð§ƒ<ð§„<ð§…<ð§†<ð§‡<ð§ˆ<ð§‰<ð§Š<ð§‹<ð§Œ<ð§<ð§Ž<ð§<ð§<ð§‘<ð§’<ð§“<ð§”<ð§•<ð§–"
+ "<ð§—<ð§˜<ð§™<ð§š<ð§›<ð§œ<ð§<ð§ž<ð§Ÿ<ð§ <ð§¡<ð§¢<ð§£<ð§¤<ð§¥<ð§¦<ð§§<ð§¨<ð§©<ð§ª<ð§«<ð§¬<"
+ "ð§­<ð§®<ð§¯<ð§±<ð§²<ð§³<ð§´<ð§µ<ð§¶<ð§·<ð§¸<ð§¹<ð§º<ð§»<ð§¼<ð§½<ð§¾<ð§¿<𧑀<ð§‘<𧑂<𧑃<螺<"
+ "蟓<蟔<蟕<蟖<蟘<蟙<蟚<蟛<蟜<èŸ<蟞<蟟<蟠<蟢<蟣<蟤<蟥<蟦<蟧<蟨<蟩<蟪<蟫<蟬<蟭<蟮<蟯<蟰<蟱<蟲<蟳<蟴<蟵<è Ž<"
+ "ä—¯<ä—°<ä—±<ä—²<ä—³<𧑄<𧑅<𧑆<𧑇<𧑈<𧑉<𧑊<𧑋<𧑌<ð§‘<𧑎<ð§‘<ð§‘<𧑑<𧑒<𧑓<𧑔<𧑕<𧑖<"
+ "𧑗<𧑘<𧑙<𧑚<𧑛<𧑜<ð§‘<𧑞<𧑟<𧑠<𧑡<𧑢<𧑣<𧑤<𧑥<𧑦<𧑧<𧑨<𧑩<𧑪<𧑫<𧑬<𧑭"
+ "<𧑮<𧑯<𧑰<𧑱<𧑲<𧑳<𧑴<𧑵<𧑶<𧑷<𧑸<𧑹<𧑺<𧑻<𧑼<𧑽<𧑾<𧑿<𧒀<ð§’<𧒂<𧒃<"
+ "𧒄<𧒅<𧒆<𧒇<𧒈<𧒉<𧒊<𧒋<𧒌<ð§’<ä——<蟶<蟷<蟸<蟹<蟺<蟻<蟼<蟽<蟾<蟿<è €<è ‚<è ƒ<è „<è …<è †<è ‡<è ˆ<"
+ "è ‰<è Š<è ‹<è Œ<è <è <ä—´<ä—µ<ä—¶<ä—·<ä—¸<ä—¹<ä—º<ä—»<𧒎<ð§’<ð§’<𧒑<𧒒<𧒓<𧒔<𧒕<𧒖<𧒗<𧒘<𧒙<𧒚<"
+ "𧒛<𧒜<ð§’<𧒞<𧒟<𧒠<𧒡<𧒢<𧒣<𧒤<𧒥<𧒦<𧒧<𧒨<𧒩<𧒪<𧒫<𧒬<𧒭<𧒮<𧒯<𧒰<𧒱"
+ "<𧒲<𧒳<𧒴<𧒵<𧒶<𧒷<𧒸<𧒹<𧒺<𧒻<𧒼<𧒽<𧒾<𧒿<𧓀<ð§“<𧓂<𧓃<𧓄<𧓅<𧓆<𧓇<"
+ "𧓈<è <ä—¹<è <è ‘<è ’<è “<è ”<è •<è –<è —<è ˜<è ™<ä—¼<ä—½<ä—¾<ä—¿<䘀<ä˜<𧓉<𧓊<𧓋<𧓌<ð§“<𧓎<ð§“<ð§“<𧓑<𧓒"
+ "<𧓓<𧓔<𧓕<𧓖<𧓗<𧓘<𧓙<𧓚<𧓛<𧓜<ð§“<𧓞<𧓟<𧓠<𧓡<𧓢<𧓣<𧓤<𧓥<𧓦<𧓧<𧓨<"
+ "𧓩<𧓪<𧓫<𧓬<𧓭<𧓮<𧓯<𧓰<è š<è ›<è œ<è <è ž<è Ÿ<è  <è ¡<è ¢<è £<è ¤<è ´<䘂<䘃<䘄<𧓱<𧓲<𧓳<𧓴<𧓵"
+ "<𧓶<𧓷<𧓸<𧓹<𧓺<𧓻<𧓼<𧓽<𧓾<𧓿<𧔀<ð§”<𧔂<𧔃<𧔄<𧔅<𧔆<𧔇<𧔈<𧔉<𧔊<𧔋<"
+ "𧔌<ð§”<𧔎<ð§”<ð§”<𧔑<𧔒<𧔓<𧔔<𧔕<𧔖<𧔗<𧔘<𧔙<𧔚<𧔛<𧔜<è Ÿ<è ¥<è ¦<è §<è ¨<è ©<è ª<è «<è ¬"
+ "<䘅<䘆<䘇<䘈<䘉<ð§”<𧔞<𧔟<𧔠<𧔡<𧔢<𧔣<𧔤<𧔥<𧔦<𧔧<𧔨<𧔩<𧔪<𧔫<𧔬<𧔭<𧔮<𧔯<"
+ "𧔰<𧔱<𧔲<𧔳<𧔴<𧔵<𧔶<𧔷<𧔸<𧔹<𧔺<𧔻<𧔼<𧔽<𧔾<𧔿<𧕀<ð§•<𧕂<è ­<è ®<è ¯<è °<è ±<è ²"
+ "<è ³<䘊<䘋<䘌<𧕃<𧕄<𧕅<𧕆<𧕇<𧕈<𧕉<𧕊<𧕋<𧕌<ð§•<𧕎<ð§•<ð§•<𧕑<𧕒<𧕔<𧕕<𧕖<𧕗"
+ "<𧕘<𧕙<𧕚<è µ<è ¶<è ·<è ¸<è ¹<è º<𧕓<𧕛<𧕜<ð§•<𧕞<𧕟<𧕠<𧕡<𧕢<𧕣<𧕤<𧕥<𧕦<𧕧<𧕨<"
+ "𧕩<𧕪<𧕫<𧕬<𧕭<𧕮<è »<ä˜<𧕯<𧕰<𧕱<𧕲<𧕳<𧕴<𧕵<𧕶<𧕷<𧕸<𧕹<𧕺<𧕻<𧕼<è ¼<𧕽"
+ "<𧕾<𧕿<𧖀<ð§–<𧖂<𧖃<𧖊<è ½<è ¾<𧖄<𧖅<𧖆<𧖇<𧖈<𧖉<𧖋<𧖌<ð§–<𧖎<ð§–<ð§–<è ¿<䘎<𧖑"
+ "<𧖒<𧖓<𧖔<𧖕<𧖖<𧖗<ð ‘´<𧖘<𧖙<𧖚<𧖛<𧖜<ð§–<𧖞<𧖟<𧖡<𧖢<𧖣<𧖤<𧖥<𧖦<è¡€<𧖧"
+ "<𧖨<𧖩<è¡<è¡‚<ä˜<𧖪<衃<è¡„<ä˜<𧖫<𧖬<𧖭<𧖮<𧖯<è¡…<䘑<𧖰<𧖱<𧖲<衆<衇<衈<衉<𧖳<𧖴<䘒<𧖵"
+ "<𧖶<𧖷<𧖸<𧖹<䘓<𧖺<𧖻<𧖼<𧖽<𧖾<𧖿<𧗄<䘔<𧗀<ð§—<𧗂<𧗃<𧗅<𧗆<𧗇<𧗈<𧗉<𧗊<"
+ "𧗋<𧗌<ð§—<𧗎<ð§—<ð§—<𧗑<𧗒<𧗓<𧗔<𧗕<𧗖<𧗗<è¡Š<𧗘<𧗙<𧗚<𧗛<è¡‹<𧗜<è¡Œ<è¡Œ<ð§—<𧗞<"
+ "𧗟<𧗠<è¡<è¡Ž<𧗡<𧗢<𧗣<𧗤<𧗥<è¡<䘕<𧗦<𧗧<𧗨<𧗩<è¡<è¡‘<è¡’<è¡“<è¡”<𧗪<è¡•<è¡–<è¡—<衘<䘖<𢔬<"
+ "𧗫<𧗬<𧗭<𧗮<𧗯<𧗰<𧗱<è¡™<𧗲<𧗳<𧗴<𧗵<𧗶<𧗷<𧗸<𧗺<𧗻<è¡š<è¡›<è¡œ<è¡<𧗹<𧗼<𧗽<è¡ž"
+ "<è¡Ÿ<è¡ <è¡¡<䘗<䘘<𢖅<𧗾<è¡ <𢖋<𧗿<𧘀<ð§˜<𧘂<𧘃<𧘄<䘙<𢖡<𧘅<𧘆<è¡¢<è¡£<衤<𧘇<è¡£<è¡¥<䘚<䘛<"
+ "𧘈<𧘉<𧘊<𧘋<𧘌<衦<衧<表<è¡©<衪<è¡«<衬<䘜<ä˜<䘞<ð§˜<𧘎<ð§˜<ð§˜<𧘑<𧘒<𧘓<𧘔<𧘕<𧘖<𧘗<"
+ "𧘘<𧘙<𧘚<𧘛<𧘜<è¡­<è¡®<衯<è¡°<衱<衲<衳<è¡´<衵<衶<è¡·<衸<衹<衺<è¡»<衼<衽<衾<è¡¿<袀<è¢<袂<袃<袄<袅<袆<袇"
+ "<䘟<䘠<䘡<ð§˜<𧘞<𧘟<𧘠<𧘡<𧘢<𧘣<𧘤<𧘥<𧘦<𧘧<𧘨<𧘩<𧘪<𧘫<𧘬<𧘭<𧘮<𧘯<𧘰<"
+ "𧘱<𧘲<𧘳<𧘴<𧘵<𧘶<𧘷<𧘸<𧘹<𧘺<𧘻<𧘼<袈<袉<袊<袋<袌<è¢<袎<è¢<è¢<袑<袒<袓<袔<袕<袖<袗<"
+ "袘<袙<袚<袛<袜<è¢<袞<袟<袠<袡<袢<袣<袤<袥<袦<袧<袨<袩<袪<被<袬<袭<袮<袰<䘢<䘣<䘤<䘥<䘦<䘧<𧘽<𧘿<𧙀"
+ "<ð§™<𧙂<𧙃<𧙄<𧙅<𧙆<𧙇<𧙈<𧙉<𧙊<𧙋<𧙌<ð§™<𧙎<ð§™<ð§™<𧙑<𧙒<𧙓<𧙔<𧙕<𧙖<"
+ "𧙗<𧙘<𧙙<𧙚<𧙛<𧙜<ð§™<袯<袱<袲<袳<袴<袵<袶<袷<袸<袹<袺<袻<袼<袽<袾<袿<裀<è£<裂<裃<裄<装<裆<裇"
+ "<裈<裉<䘨<䘩<䘪<䘫<䘬<䘭<䘮<𧘾<𧙞<𧙟<𧙠<𧙡<𧙢<𧙣<𧙤<𧙥<𧙦<𧙧<𧙨<𧙩<𧙪<𧙫<𧙬<"
+ "𧙭<𧙮<𧙯<𧙰<𧙱<𧙲<𧙳<𧙴<𧙵<𧙶<𧙷<𧙸<𧙹<𧙺<𧙻<𧙼<𧙽<𧙾<𧙿<裂<𧙧<裊<裋<裌<"
+ "è£<裎<è£<è£<裑<裒<裓<裔<裕<裖<裗<裘<裙<裚<裛<補<è£<裞<裟<裠<裡<裢<裣<裤<裥<䘯<䘰<䘱<䘲<𧚀<ð§š<𧚂<"
+ "𧚃<𧚄<𧚅<𧚆<𧚇<𧚈<𧚉<𧚊<𧚋<𧚌<ð§š<𧚎<ð§š<ð§š<𧚑<𧚒<𧚓<𧚔<𧚕<𧚖<𧚗<𧚘<𧚙"
+ "<𧚚<𧚛<𧚜<ð§š<𧚞<𧚟<𧚠<𧚡<𧚢<𧚣<è£<裡<裗<裞<裧<裨<裩<裪<裫<裬<裭<裮<裯<裰<裱<裲<裳<裴<裵"
+ "<裶<裷<裸<裹<裺<裻<裼<製<裾<裿<褀<è¤<褂<褃<褄<䘳<䘴<䘵<䘶<䘷<䘸<䘹<䘺<䘻<䘼<䘽<䘾<䘿<䙀<ä™<䙂<𧚤<𧚥"
+ "<𧚦<𧚧<𧚨<𧚩<𧚪<𧚫<𧚬<𧚭<𧚮<𧚯<𧚰<𧚱<𧚲<𧚳<𧚴<𧚵<𧚶<𧚷<𧚸<𧚹<𧚺<𧚼<"
+ "𧚽<𧚾<𧚿<𧛀<ð§›<𧛂<𧛃<𧛄<𧛅<𧛆<𧛇<𧛈<𧛉<𧛊<𧛋<𧛌<ð§›<𧛎<裸<䘵<裺<裦<褅<褆<複<"
+ "褈<褉<褊<褋<褌<è¤<褎<è¤<è¤<褑<褒<褓<褔<褕<褖<褗<褘<褙<褚<褛<褜<è¤<䙃<䙄<ä™…<䙆<䙇<䙈<䙉<䙊<䙋<䙌<ä™<𧚻"
+ "<ð§›<ð§›<𧛑<𧛒<𧛓<𧛔<𧛕<𧛖<𧛗<𧛘<𧛙<𧛚<𧛛<𧛜<ð§›<𧛞<𧛟<𧛠<𧛡<𧛢<𧛣<𧛤<"
+ "𧛥<𧛦<𧛧<𧛨<𧛩<𧛪<𧛫<𧛬<𧛭<𧛮<𧛯<𧛰<𧛱<𧛲<𧛳<𧛴<𧛵<𧛶<𧛷<è¤<褞<褟<褠<褡<褢"
+ "<褣<褤<褥<褦<褧<褨<褩<褪<褫<褬<褭<褮<褯<褰<褱<褲<褴<䙎<ä™<ä™<䙑<ä™’<䙓<𧛸<𧛹<𧛺<𧛻<𧛼<𧛽<𧛾<"
+ "𧛿<𧜀<ð§œ<𧜂<𧜃<𧜄<𧜅<𧜆<𧜇<𧜈<𧜉<𧜊<𧜋<𧜌<ð§œ<𧜎<ð§œ<ð§œ<𧜑<𧜒<𧜓<𧜔<𧜕"
+ "<𧜖<𧜗<𧜘<𧜙<𧜚<𧜛<𧜜<𧜨<褳<褵<褶<褷<褸<褹<褺<褻<褼<褽<褾<褿<襀<è¥<襂<襃<襄<襅<襔<ä™”<䙕<ä™–"
+ "<ä™—<䙘<ä™™<䙚<ä™›<䙜<ä™<ð§œ<𧜞<𧜟<𧜠<𧜡<𧜢<𧜣<𧜤<𧜥<𧜦<𧜧<𧜩<𧜪<𧜫<𧜬<𧜮<𧜯<𧜰"
+ "<𧜱<𧜲<𧜳<𧜴<𧜵<𧜶<𧜷<𧜸<𧜹<𧜺<𧜻<𧜼<𧜽<𧜾<𧜿<ð§€<ð§<è¥<襆<襇<襈<襉<襊<襋<襌<"
+ "è¥<襎<è¥<è¥<襑<襒<襓<襕<䙞<䙟<ä™ <䙡<䙢<䙣<𧜭<ð§‚<ð§ƒ<ð§„<ð§…<ð§†<ð§‡<ð§ˆ<ð§‰<ð§Š<ð§‹<ð§Œ<ð§<"
+ "ð§Ž<ð§<ð§<ð§‘<ð§’<ð§“<ð§”<ð§•<ð§–<ð§—<ð§˜<ð§™<ð§š<ð§›<ð§œ<ð§<ð§ž<ð§Ÿ<ð§ <ð§¡<ð§¢<ð§£<ð§¤"
+ "<ð§¥<ð§¦<ð§§<ð§¨<ð§©<ð§ª<ð§«<ð§¬<ð§­<ð§®<ð§¯<ð§°<襖<襗<襘<襙<襚<襛<襜<è¥<襞<襟<襠<襡<襢<䙤<䙥<"
+ "ð§±<ð§²<ð§³<ð§´<ð§µ<ð§¶<ð§·<ð§¸<ð§¹<ð§º<ð§»<ð§¼<ð§½<ð§¾<ð§¿<𧞀<ð§ž<𧞂<𧞃<𧞄<𧞅<𧞆<𧞇"
+ "<𧞈<𧞉<𧞊<𧞋<𧞌<襣<襤<襥<襦<襧<襨<䙦<䙧<䙨<䙩<ð§ž<𧞎<ð§ž<ð§ž<𧞑<𧞒<𧞓<𧞔<𧞕<𧞖<𧞘"
+ "<𧞙<𧞚<𧞛<𧞜<ð§ž<𧞞<𧞟<𧞠<𧞡<𧞢<𧞣<𧞤<𧞥<𧞦<襤<襩<襪<襫<襬<襭<襮<䙪<𧞗<𧞧<𧞨<"
+ "𧞩<𧞪<𧞫<𧞬<𧞭<𧞮<𧞯<𧞰<𧞱<𧞳<𧞴<𧞵<襯<襰<襱<襲<䙫<𧞲<𧞶<𧞷<𧞸<𧞹<𧞺<𧞻<"
+ "𧞼<𧞽<𧞾<𧞿<𧟀<ð§Ÿ<𧟂<襳<襴<襽<䙬<ä™­<𧟃<𧟄<𧟅<𧟆<𧟇<襵<襶<襷<ä™®<䙯<𧟈<𧟉<𧟊<𧟋<"
+ "襸<襹<襺<襻<襼<ä™°<𧟌<ð§Ÿ<𧟎<ð§Ÿ<ð§Ÿ<𧟑<𧟒<𧟓<𧟔<ä™±<𧟕<𧟖<𧟗<𧟘<𧟙<𧟚<𧟛<𧟜<ð§Ÿ<"
+ "𧟞<𧟟<襾<西<覀<𧟠<𧟡<𧟢<𧟣<è¦<䙲<𧟤<𧟥<𧟦<䙳<𧟧<𧟨<𧟩<覂<ä™´<𧟪<𧟫<𧟬<覃<覄<䙵<䙶"
+ "<𧟭<𧟮<覅<𧟯<𧟰<𧟱<𧟲<𧟳<𧟴<𧟵<𧟶<𧟷<𧟸<𧟹<𧟺<𧟻<𧟼<𧟽<𧟾<𧟿<覆<𧠀<ð§ <"
+ "覆<覇<覈<𧠂<𧠃<𧠄<覉<覊<𧠅<見<è§<見<𧠆<𧠇<覌<覙<观<𧠈<è¦<覎<觃<ä™·<䙸<𧠉<𧠊<𧠋<𧠌<ð§ <"
+ "è¦<è¦<覑<覒<覓<覔<规<觅<䙹<䙺<ä™»<𧠎<ð§ <ð§ <𧠑<𧠒<𧠓<𧠔<𧠕<𧠖<𧠗<𧠘<𧠙<𧠚<𧠛<視<覕<"
+ "覗<覘<覚<觇<览<觉<䙼<䙽<䙾<䙿<𧠜<ð§ <𧠞<𧠟<𧠠<𧠡<𧠢<𧠣<𧠤<𧠥<𧠦<𧠧<覛<覜<觊<䚀<äš<𧠨"
+ "<𧠩<𧠪<𧠫<𧠬<𧠭<𧠮<𧠯<𧠰<𧠱<𧠲<𧠳<𧠴<𧠵<𧠶<𧠷<𧠸<𧠹<𧠺<è¦<覞<覟<覠<覡<觋<äš‚"
+ "<䚃<𧠻<𧠼<𧠽<𧠾<𧠿<𧡀<ð§¡<𧡂<𧡃<𧡄<𧡅<𧡆<𧡇<𧡈<𧡉<𧡊<覢<覣<覤<覥<觌<è§<äš„<äš…<"
+ "𧡋<𧡌<ð§¡<𧡎<ð§¡<ð§¡<𧡑<𧡒<𧡓<𧡔<𧡕<𧡖<𧡗<𧡘<𧡙<𧡚<𧡛<𧡜<ð§¡<𧡞<𧡟<𧡠<覦<"
+ "覧<覨<覩<親<觎<䚆<䚇<䚈<䚉<𧡡<𧡢<𧡣<𧡤<𧡥<𧡦<𧡧<𧡨<𧡩<𧡪<𧡫<𧡬<𧡭<𧡮<𧡯<𧡰<𧡱"
+ "<𧡲<𧡳<𧡴<𧡵<𧡶<覫<覬<覭<覮<覯<è§<䚊<äš‹<䚌<𧡷<𧡸<𧡹<𧡺<𧡻<𧡼<𧡽<𧡾<𧡿<𧢀<ð§¢<覰"
+ "<覱<覲<観<è§<觑<äš<䚎<𧢂<𧢃<𧢄<𧢅<𧢆<𧢇<𧢈<𧢉<𧢊<𧢋<覴<覵<覶<覷<覸<äš<äš<äš‘<äš’<äš“<𧢌<"
+ "ð§¢<𧢎<ð§¢<ð§¢<𧢑<覹<覺<覻<𧢒<𧢓<𧢔<𧢕<𧢖<𧢗<覼<覽<äš”<𧢘<𧢙<𧢚<𧢛<覾<覿<ð¥„<𧢜<"
+ "ð§¢<𧢞<𧢟<𧢠<𧢡<𧢢<𧢣<𧢤<𧢥<觀<𧢦<𧢧<𧢨<𧢩<𧢪<𧢫<äš•<𧢬<𧢭<𧢮<𧢮<äš–<𧢯<𧢰"
+ "<𧢱<角<𧢲<𧢳<觓<觔<𧢴<𧢵<𧢶<𧢷<𧢸<𧢹<𧢺<觕<觖<觗<觘<觙<䚗<𧢻<𧢼<𧢽<𧢾<𧢿<𧣀<"
+ "ð§£<𧣂<𧣃<𧣄<𧣅<𧣆<𧣇<𧣈<𧣉<𧣊<𧣋<𧣌<ð§£<𧣎<ð§£<ð§£<觚<觛<è§<觞<𧣑<𧣒<𧣓<𧣔<"
+ "𧣕<𧣖<𧣗<𧣘<𧣙<𧣚<𧣛<𧣜<ð§£<𧣞<𧣟<𧣠<觜<觟<觠<觡<觢<解<觤<觥<触<觧<䚘<äš™<äšš<𧣡<𧣢<"
+ "𧣣<𧣤<𧣥<𧣦<𧣧<觨<觩<觪<觫<䚛<𧣨<𧣩<𧣪<𧣫<𧣬<𧣭<𧣮<𧣯<𧣰<𧣱<𧣲<𧣳<觬<觭<觮<觯"
+ "<äšœ<äš<äšž<䚟<äš <𧣴<𧣵<𧣶<𧣷<𧣸<𧣹<𧣺<𧣻<𧣼<𧣽<𧣾<𧣿<𧤀<ð§¤<𧤂<𧤃<𧤄<𧤅<𧤆<"
+ "𧤇<𧤈<𧤉<𧤊<觰<觱<äš¡<䚢<䚣<䚤<𧤋<𧤌<ð§¤<𧤎<ð§¤<ð§¤<𧤑<𧤒<𧤓<𧤔<𧤕<𧤖<𧤗<𧤘<𧤙"
+ "<𧤚<𧤢<觲<觳<䚥<䚦<𧤛<𧤜<ð§¤<𧤞<𧤟<𧤠<𧤡<𧤣<𧤤<𧤥<𧤦<𧤧<𧤨<𧤩<𧤪<𧤫<𧤬<𧤭"
+ "<𧤮<觴<鵤<䚧<𧤯<𧤰<𧤱<𧤲<𧤳<𧤴<𧤵<𧤶<𧤷<𧤸<𧤹<觵<觶<䚨<䚩<䚬<𧤺<𧤻<𧤼<𧤽<𧤾<"
+ "𧤿<𧥀<ð§¥<𧥂<𧥃<觷<觸<觹<䚪<äš«<𧥄<𧥅<𧥆<𧥇<觺<𧥈<𧥉<𧥊<𧥋<觻<觼<𧥌<ð§¥<𧥎<ð§¥<"
+ "ð§¥<觽<觾<𧥑<𧥒<𧥓<𧥔<觿<äš­<𧥕<𧥖<𧥗<𧥘<𧥙<𧥚<言<è¨<è® <𧥛<𧥜<ð§¥<𧥞<𧥟<訂<訃<訄<"
+ "訅<訆<訇<計<计<订<讣<认<讥<äš®<䚯<äš°<𧥠<訉<訊<訋<訌<è¨<討<è¨<è¨<訑<訒<訓<訔<訕<訖<託<記<訙<訚<讦<讧<讨"
+ "<让<讪<讫<讬<训<议<讯<记<讱<䚱<䚲<𧥡<𧥢<𧥣<𧥤<𧥥<𧥦<𧥧<𧥨<𧥩<𧥪<𧥫<𧥬<𧥭<𧥦<訛<訜"
+ "<è¨<訞<訟<訠<訡<訢<訣<訤<訥<訦<訧<訨<訩<訪<訫<訬<設<訮<訯<訰<許<訲<訳<讲<讳<è®´<讵<讶<è®·<许<讹<论<è®»<讼"
+ "<讽<设<访<诀<äš³<äš´<äšµ<䚶<äš·<䚸<äš¹<䚺<äš»<äš¼<äš½<äš¾<äš¿<䛀<ä›<䛂<䛃<䜣<𧥮<𧥯<𧥰<𧥱<𧥲<𧥳<𧥴<𧥵"
+ "<𧥶<𧥷<𧥸<𧥹<𧥺<𧥻<𧥼<𧥽<𧥾<𧥿<𧦀<ð§¦<𧦂<𧦃<𧦄<𧦅<𧦆<𧦇<𧦈<𧦉<𧦊<𧦋<"
+ "𧦌<ð§¦<𧦎<ð§¦<ð§¦<𧦑<𧦒<𧦓<𧦔<𧦕<𧦖<𧦗<𧦘<𧦙<𧦚<𧦛<äš¾<訴<訵<訶<訷<訸<訹<診<註<証<"
+ "訽<訾<訿<è©€<è©<è©‚<詃<è©„<è©…<詆<詇<詈<詉<è©Š<è©‹<è©Œ<è©<è©Ž<è©<è©<è©‘<è©’<è©“<è©”<è©•<è©–<è©—<詘<è©™<è©š<è©›<è©œ<è©<è©ž<"
+ "è©Ÿ<è© <è¯<诂<诃<评<诅<识<诇<诈<诉<诊<诋<诌<è¯<诎<è¯<è¯<译<诒<䛄<ä›…<䛆<䛇<䛈<䛉<䛊<䛋<䛌<ä›<䛎<ä›<ä›<䛑<"
+ "ä›’<䛓<𧦜<ð§¦<𧦞<𧦟<𧦠<𧦡<𧦢<𧦣<𧦤<𧦥<𧦦<𧦧<𧦨<𧦩<𧦪<𧦫<𧦬<𧦭<𧦮<𧦯<𧦰<"
+ "𧦱<𧦲<𧦳<𧦴<𧦵<𧦶<𧦷<𧦸<𧦹<𧦺<𧦻<𧦼<𧦽<𧦾<𧦿<𧧀<ð§§<𧧂<𧮪<䛇<è©¡<è©¢<è©£<詤<è©¥"
+ "<試<詧<詨<è©©<詪<è©«<詬<è©­<è©®<詯<è©°<話<該<詳<è©´<詵<詶<è©·<詸<詹<詺<è©»<詼<詽<詾<è©¿<誀<èª<誂<誃<誄<誅<誆<誇"
+ "<誈<誉<誊<誠<诓<诔<试<诖<诗<诘<诙<诚<诛<诜<è¯<诞<诟<诠<诡<询<诣<诤<该<详<诧<诨<诩<ä›”<䛕<ä›–<ä›—<䛘<ä›™<䛚"
+ "<ä››<䛜<䜤<𧧃<𧧄<𧧅<𧧆<𧧇<𧧈<𧧉<𧧊<𧧋<𧧌<ð§§<𧧎<ð§§<ð§§<𧧑<𧧒<𧧓<𧧔<𧧕<𧧖<"
+ "𧧗<𧧘<𧧙<𧧚<𧧛<𧧜<ð§§<𧧞<𧧟<𧧠<𧧡<𧧢<𧧣<𧧤<𧧥<𧧦<𧧧<𧧨<𧧩<𧧪<𧧫<𧧬<𧧭"
+ "<𧧮<𧧯<𧧰<𧧱<𧧲<𧧳<𧨜<誋<誌<èª<誎<èª<èª<誑<誒<誓<誔<誕<誖<誗<誘<誙<誚<誛<誜<èª<語<誟<誡<誢<"
+ "誣<誤<誥<誦<誧<誨<誩<說<誫<説<読<誮<诪<诫<诬<语<诮<误<诰<诱<诲<诳<说<诵<诶<ä›<䛞<䛟<ä› <䛡<䛢<䛣<䛤<䛥<"
+ "䛦<䛧<䛨<𧧴<𧧵<𧧶<𧧷<𧧸<𧧹<𧧺<𧧻<𧧼<𧧽<𧧾<𧧿<𧨀<ð§¨<𧨂<𧨃<𧨄<𧨅<𧨆<𧨇<𧨈"
+ "<𧨉<𧨊<𧨋<𧨌<ð§¨<𧨎<ð§¨<ð§¨<𧨑<𧨒<𧨓<𧨔<𧨕<𧨖<𧨗<𧨘<𧨙<𧨚<𧨛<ð§¨<𧨞<𧨟<"
+ "𧨠<𧨡<𧨢<𧨣<𧨤<𧨥<說<說<誠<誯<誰<誱<課<誳<誴<誵<誶<誷<誸<誹<誺<誻<誼<誽<誾<調<è«€<è«<è«‚<諃<è«„<"
+ "è«…<諆<談<諈<諉<è«Š<è«‹<è«Œ<è«<è«Ž<è«<è«<è«‘<è«’<è«“<è«”<è«•<è«–<è«—<諘<è«™<è«š<è«©<请<诸<诹<诺<读<诼<诽<课<诿<è°€<è°<"
+ "谂<调<谄<谅<谆<谇<谈<谉<谊<䛩<䛪<䛫<䛬<䛭<䛮<䛯<䛰<䛱<䛲<䛳<䛴<䛵<䛶<䛷<䛸<䜥<𧨦<𧨧<𧨨<𧨩<𧨪<"
+ "𧨫<𧨬<𧨭<𧨮<𧨯<𧨰<𧨱<𧨲<𧨳<𧨴<𧨵<𧨶<𧨷<𧨸<𧨹<𧨺<𧨻<𧨼<𧨽<𧨾<𧨿<𧩀<ð§©"
+ "<𧩂<𧩃<𧩄<𧩅<𧩆<𧩇<𧩈<𧩉<𧩊<𧩋<𧩌<ð§©<𧩎<ð§©<ð§©<𧩑<𧩒<𧩓<𧩔<𧩕<𧩖<𧩗<"
+ "𧩘<𧩙<𧩚<𧩛<𧩜<ð§©<𧩞<𧩟<𧩠<𧩡<𧩢<è«–<è«’<調<è«‹<è«›<è«œ<è«<è«ž<è«Ÿ<è« <è«¡<è«¢<è«£<諤<è«¥<諦<諧<諨"
+ "<諪<è««<諬<è«­<è«®<諯<è«°<諱<諲<諳<è«´<諵<諶<è«·<諸<諹<諺<è«»<諼<諽<諾<è«¿<謀<è¬<謂<謃<è°‹<è°Œ<è°<è°Ž<è°<è°<è°‘<è°’"
+ "<è°“<è°”<è°•<è°–<è°—<è°˜<è°™<è°š<è°›<è°œ<è°<è°ž<䛹<䛺<ä›»<䛼<䛽<𧩣<𧩤<𧩥<𧩦<𧩧<𧩨<𧩩<𧩪<𧩫<𧩬<𧩭<"
+ "𧩮<𧩯<𧩰<𧩱<𧩲<𧩳<𧩴<𧩵<𧩶<𧩷<𧩸<𧩹<𧩺<𧩻<𧩼<𧩽<𧩾<𧩿<𧪀<ð§ª<𧪂<𧪃<𧪄"
+ "<𧪅<𧪆<𧪇<𧪈<𧪉<𧪊<𧪋<𧪌<ð§ª<𧪎<ð§ª<ð§ª<𧪑<𧪒<𧪓<𧪔<𧪕<𧪖<𧪗<諾<諸<è¬<諸<è¬<"
+ "諾<è«­<è«­<謄<謅<謆<謇<謈<謉<謊<謋<謌<è¬<謎<è¬<è¬<謑<謒<謓<謔<謕<謖<謗<謘<謙<謚<講<謜<è¬<謞<謟<謠<謡<謢<"
+ "è°Ÿ<è° <è°¡<è°¢<è°£<è°¤<è°¥<è°¦<è°§<䛾<䛿<䜀<äœ<䜂<䜦<䜧<ð œ<𧪘<𧪙<𧪚<𧪛<𧪜<ð§ª<𧪞<𧪟<𧪠<𧪡<𧪢<"
+ "𧪣<𧪤<𧪥<𧪦<𧪧<𧪨<𧪩<𧪪<𧪫<𧪬<𧪭<𧪮<𧪯<𧪰<𧪱<𧪲<𧪳<𧪴<𧪵<𧪶<𧪷<𧪸<𧪹"
+ "<𧪺<𧪻<𧪼<𧪽<𧪾<𧪿<𧫀<ð§«<𧫂<𧫃<𧫄<𧫅<𧫆<𧫇<𧫈<𧫉<𧫊<𧫋<𧫌<ð§«<𧫎<ð§«<"
+ "ð§«<𧫑<謣<謤<謥<謦<謧<謨<謩<謪<謫<謬<謭<謮<謯<謰<謱<謲<謳<謴<謵<謶<謷<謸<謹<謺<謻<謼<謽<謾<è°¨<è°©<è°ª<"
+ "è°«<è°¬<䜃<䜄<䜅<䜆<䜇<䜈<䜉<䜊<䜨<𧫒<𧫓<𧫔<𧫕<𧫖<𧫗<𧫘<𧫙<𧫚<𧫛<𧫜<ð§«<𧫞<𧫟<𧫠<"
+ "𧫡<𧫢<𧫣<𧫤<𧫥<𧫦<𧫧<𧫨<𧫩<𧫪<𧫫<𧫬<𧫭<𧫮<𧫯<𧫰<𧫱<𧫲<𧫳<𧫴<𧫵<𧫶<𧫷"
+ "<𧫸<𧫹<𧫺<𧫻<𧫼<𧫽<謹<謹<謿<è­€<è­<è­‚<è­ƒ<è­„<è­…<è­†<è­‡<è­ˆ<è­‰<è­Š<è­‹<è­Œ<è­Ž<è­<è­<è­‘<è­’<è­“<è­”<è­•<è­–"
+ "<è­—<è­˜<è­™<è­š<è­›<è­œ<è°­<è°®<è°¯<è°°<è°±<è°²<é¾»<䜋<䜌<äœ<䜎<äœ<äœ<䜑<𧫾<𧫿<𧬀<ð§¬<𧬂<𧬃<𧬄<𧬅<𧬆<"
+ "𧬇<𧬈<𧬉<𧬊<𧬋<𧬌<ð§¬<𧬎<ð§¬<ð§¬<𧬑<𧬒<𧬓<𧬔<𧬕<𧬖<𧬗<𧬘<𧬙<𧬚<𧬛<𧬜<ð§¬"
+ "<𧬞<𧬟<𧬠<𧬡<𧬢<𧬣<𧬤<𧬥<𧬦<è­˜<è­<è­<è­ž<è­Ÿ<è­ <è­¡<è­¢<è­£<è­¤<è­¥<è­¦<è­§<è­¨<è­©<è­ª<è­«<è­¬<è­­<è­®<"
+ "譯<議<譱<譲<谳<谴<谵<䜒<䜓<䜔<䜕<䜖<䜗<䜘<𧬧<𧬨<𧬩<𧬪<𧬫<𧬬<𧬭<𧬮<𧬯<𧬰<𧬱<𧬲<𧬳<"
+ "𧬴<𧬵<𧬶<𧬷<𧬸<𧬹<𧬺<𧬻<𧬼<𧬽<𧬾<𧬿<𧭀<ð§­<è­³<è­´<è­µ<è­¶<è­·<è­¸<è­¹<è­º<è­»<è­¼<è­½<䜙<䜚<"
+ "䜛<䜜<äœ<䜞<𧭂<𧭃<𧭄<𧭅<𧭆<𧭇<𧭈<𧭉<𧭊<𧭋<𧭌<ð§­<𧭎<ð§­<ð§­<𧭒<𧭓<𧭔<𧭕<𧭖<"
+ "𧭗<𧭘<𧭙<𧭚<𧭛<è­¾<è­¿<讀<è®<讂<讃<讄<è®…<䜟<䜠<䜡<𧭑<𧭜<ð§­<𧭞<𧭟<𧭠<𧭡<𧭢<𧭣<𧭤<"
+ "𧭥<𧭦<𧭧<𧭨<𧭩<𧭪<𧭫<𧭬<𧭭<𧭮<𧭯<𧭰<𧭱<𧭲<𧭳<𧭴<𧭵<𧭶<𧭷<讀<讆<讇<讈<讉<變"
+ "<讋<讌<è®<讎<è®<è®<䜢<䜩<𧭸<𧭹<𧭺<𧭻<𧭼<𧭽<𧭾<𧭿<𧮀<ð§®<𧮂<𧮃<𧮄<變<變<讑<è®’<讓<è®”<"
+ "讕<è®–<è°¶<𣌚<𧮅<𧮆<𧮇<𧮈<𧮉<𧮊<𧮋<𧮌<ð§®<𧮎<ð§®<ð§®<è®—<讘<è®™<𧮑<𧮒<𧮓<𧮔<𧮕<𧮖"
+ "<𧮗<𧮘<讚<è®›<𧮙<𧮚<𧮛<𧮜<ð§®<讜<è®<讞<𧮞<𧮟<𧮠<𧮡<𧮢<𧮣<𧮤<𧮦<𧮧<讟<𧮨<𧮩<è°·"
+ "<𧮫<䜪<谸<䜫<𧮬<𧮭<𧮮<谹<谺<谻<𧮯<𧮰<𧮱<𧮲<䜬<䜭<𧮳<𧮴<谼<𧮵<𧮶<𧮷<谽<䜮<𧮸<𧮹<"
+ "è°¾<䜯<𧮺<𧮻<𧮼<𧮽<𧮾<𧮿<𧯀<ð§¯<𧯂<𧯃<𧯄<𧯅<è°¿<è±€<è±<䜰<𧯆<𧯇<𧯈<𧯉<豂<䜱<𧯊<豃"
+ "<ð¡“›<𧯋<𧯌<ð§¯<𧯎<ð§¯<ð§¯<𧯑<𧯒<𧯓<𧯔<𧯕<𧯖<豄<䜲<è±…<𧯗<𧯘<𧯙<豆<䜳<𧯚<豇<豈<𧯛"
+ "<𧯜<ð§¯<豈<豉<䜴<𧯞<𧯟<䜵<𧯠<𧯡<𧯢<𧯣<𧯤<豊<豋<䜶<𧯥<𧯦<𧯨<䜷<䜸<䜹<𧯩<𧯪<𧯫<𧯬"
+ "<豌<è±<豎<䜺<𧯭<𧯮<𧯯<𧯰<𧯱<𧯲<𧯳<𧯴<𧯵<𧯶<䜻<䜼<䜽<䜾<䜿<𧯷<𧯸<𧯹<𧯺<𧯻<è±<ä€<"
+ "ä<ä‚<𧯼<𧯽<𧯾<𧯿<𧰀<ð§°<𧰂<𧰈<è±<𡕆<𧰃<𧰄<𧰅<𧰆<𧰇<𧰉<𧰊<𧰋<𧰌<ð§°<𧰎<ð§°"
+ "<ð§°<豑<𧰑<𧰒<𧰓<𧰔<𧰕<𧰖<äƒ<𧰗<𧰘<𧰙<𧰚<𧰛<𧰜<ð§°<𧰞<𧰟<𧰠<è±’<ä„<𧰡<𧰢<豓<"
+ "𧰣<𧰤<è±”<𧰥<豕<𧰧<𧰨<豕<è±–<𧰦<𧰩<è±—<ä…<𧰪<𧰫<𧰬<𧰭<豘<è±™<豚<è±›<豜<è±<ä†<ä‡<𧰮<𧰯<"
+ "𧰰<𧰱<𧰲<𧰳<𧰴<豞<豟<è± <象<äˆ<𧰵<𧰶<𧰷<𧰸<𧰹<𧰺<𧰻<𧰼<𧰽<𧰾<è±¢<è±£<豤<è±¥<豦<ä‰<"
+ "𧰿<𧱀<ð§±<𧱂<𧱃<𧱄<𧱅<𧱆<𧱇<𧱈<𧱉<𧱊<𧱋<𧱌<豧<豨<豩<豪<ð§±<𧱎<ð§±<ð§±<𧱑<𧱒<"
+ "𧱓<𧱔<𧱕<𧱖<𧱗<äŠ<ä‹<äŒ<𧱘<𧱙<𧱚<𧱛<𧱜<ð§±<𧱞<𧱟<𧱠<𧱡<𧱢<𧱣<𧱤<𧱥<𧱦<𧱧"
+ "<豫<豬<è±­<è±®<ä<äŽ<𧱨<𧱩<𧱪<𧱫<𧱬<𧱭<𧱮<𧱯<𧱰<𧱱<豯<è±°<è±±<è±²<è±³<𧱲<𧱳<𧱴<𧱵<𧱶<"
+ "𧱷<𧱸<𧱹<𧱺<è±´<è±µ<ä<𧱻<𧱼<𧱽<𧱾<𧱿<𧲀<ð§²<è±·<ä<ä‘<𧲂<𧲃<𧲄<𧲅<𧲆<豶<𧲇<𧲈<"
+ "𧲉<𧲊<𧲋<ä’<𧲌<ð§²<𧲎<ð§²<ä“<ð§²<𧲑<𧲒<𧲓<𧲗<𧲔<𧲕<𧲖<𧲘<𧲙<ä”<ä•<𧲚<𧲛<𧲜<"
+ "ð§²<𧲞<𧲟<豸<𧲠<𧲡<è±¹<豺<è±»<𧲢<𧲣<è±¼<è±½<ä–<ä—<ä˜<ä™<𧲤<𧲥<𧲦<𧲧<𧲨<𧲩<𧲪<𧲫<𧲨<"
+ "è±¾<豿<è²€<è²<貂<貃<äš<ä›<𧲬<𧲭<𧲮<𧲯<𧲰<𧲱<𧲲<𧲳<𧲴<𧲵<𧲶<𧲷<𧲸<𧲹<𧲺<𧲻<𧲼<"
+ "𧲽<貄<è²…<貆<貇<貈<貉<貊<𧲾<𧲿<𧳀<ð§³<𧳂<𧳃<𧳄<𧳅<𧳆<𧳇<𧳈<𧳉<貋<貌<è²<äœ<𧳊<𧳋<"
+ "𧳌<ð§³<𧳎<ð§³<ð§³<𧳑<𧳒<𧳓<𧳔<𧳕<𧳖<𧳗<𧳘<貎<è²<ä<äž<𧳙<𧳚<𧳛<𧳜<ð§³<𧳞<𧳟<"
+ "𧳠<𧳡<𧳢<𧳣<𧳤<𧳥<𧳱<è²<貑<è²’<貓<äŸ<𧳦<𧳧<𧳨<𧳩<𧳪<𧳫<𧳬<𧳭<𧳮<𧳯<𧳰<𧳲<"
+ "𧳳<𧳴<è²”<貕<è²–<ä <𧳵<𧳶<𧳷<𧳸<𧳹<𧳺<𧳻<𧳼<𧳽<𧳾<𧳿<𧴀<è²—<貘<è²™<ä¡<ä¢<ð§´<𧴂<𧴃"
+ "<𧴄<𧴅<𧴇<𧴈<𧴉<𧴊<𧴋<貚<ä£<ä¤<ä¥<ä¦<𧴆<𧴌<ð§´<𧴎<ð§´<𧴑<𧴒<𧴓<𧴔<𧴕<ð§´<𧴖<"
+ "𧴗<𧴘<𧴙<𧴚<𧴛<𧴜<ð§´<𧴞<𧴟<𧴠<𧴡<𧴢<è²›<貜<𧴣<è²<è´<貞<貟<è² <è´ž<è´Ÿ<è´ <𧴤<𧴥<𧴦<"
+ "𧴧<𧴨<𧴩<財<貢<貣<貤<贡<财<𧴪<𧴫<𧴬<𧴭<𧴮<𧴯<𧴰<𧴱<𧴲<貥<貦<貧<貨<販<貪<貫<責<貭<貮<"
+ "è´£<è´¤<è´¥<è´¦<è´§<è´¨<è´©<è´ª<è´«<è´¬<è´­<è´®<è´¯<ä§<ä¨<𧴳<𧴴<𧴵<𧴶<𧴷<𧴸<𧴹<𧴺<𧴻<𧴼<𧴽<𧴾<𧴿"
+ "<𧵀<ð§µ<𧵂<𧵃<𧵄<𧵅<𧵆<𧵇<𧵈<𧹑<貫<貯<è²°<è²±<è²²<è²³<è²´<è²µ<貶<è²·<貸<è²¹<貺<è²»<è²¼<è²½<è²¾<貿<è³€"
+ "<è³<è´°<è´±<è´²<è´³<è´´<è´µ<è´¶<è´·<è´¸<è´¹<è´º<è´»<ä©<äª<ä«<ä¬<ä­<ä®<ä¯<𧵉<𧵊<𧵋<𧵌<ð§µ<𧵎<ð§µ<ð§µ<𧵑<"
+ "𧵒<𧵓<𧵔<𧵕<𧵖<𧵗<𧵘<𧵙<𧵚<𧵛<𧵜<ð§µ<𧵞<𧵟<𧵠<𧵡<𧵢<𧹒<è³<賂<賃<賄<è³…<賆<資<"
+ "賈<賉<賊<賋<賌<è³<賎<è´¼<è´½<è´¾<è´¿<èµ€<èµ<赂<赃<资<èµ…<赆<ä°<ä±<ä²<䞌<𣣬<𧵣<𧵤<𧵥<𧵦<𧵧<𧵨<𧵩<"
+ "𧵪<𧵫<𧵬<𧵭<𧵮<𧵯<𧵰<𧵱<𧵲<𧵳<𧵴<𧵵<𧵶<𧵷<𧵸<𧵹<𧵺<𧵻<𧵼<𧵽<𧵾<𧵿<𧶀"
+ "<ð§¶<𧶂<𧶃<𧶄<賈<賂<è³<è³<賑<è³’<賓<è³”<賕<è³–<è³—<賘<赇<赈<赉<赊<ã•¢<ä³<ä´<äµ<𧶅<𧶆<𧶇<𧶈<𧶉<"
+ "𧶊<𧶋<𧶌<ð§¶<𧶎<ð§¶<ð§¶<𧶑<𧶒<𧶓<𧶔<𧶕<𧶖<𧶗<𧶘<𧶙<𧶚<𧹓<賓<è³™<賚<è³›<賜<è³<賞<"
+ "賟<è³ <賡<è³¢<è³£<賤<è³¥<賦<賧<賨<賩<質<賫<賬<赋<赌<èµ<赎<èµ<èµ<赑<èµ’<赓<èµ”<赕<ä¶<ä·<ä¸<ä¹<äº<ä»<ä¼<ä½<ä¾<"
+ "ä¿<äž<䞎<𧶛<𧶜<ð§¶<𧶞<𧶟<𧶠<𧶡<𧶢<𧶣<𧶤<𧶥<𧶦<𧶧<𧶨<𧶩<𧶪<𧶫<𧶬<𧶭<𧶮<𧶯"
+ "<𧶰<𧹔<𧹕<𧹖<è³­<è³®<賯<è³°<è³±<è³²<è³³<è³´<è³µ<èµ–<èµ—<䞀<äž<äž‚<䞃<äž„<äž<äž<ð  ‹<𧶱<𧶲<𧶳<𧶴<𧶵<"
+ "𧶶<𧶷<𧶸<𧶹<𧶺<𧶻<𧶼<𧶽<𧶾<𧶿<𧷀<ð§·<𧷂<𧷃<𧷄<𧷆<𧷇<𧷈<𧷉<𧷊<𧷋<賶<è³·<賸"
+ "<è³¹<賺<è³»<è³¼<è³½<赘<èµ™<赚<èµ›<äž…<䞆<𧷌<ð§·<𧷎<ð§·<ð§·<𧷑<𧷒<𧷓<𧷔<𧷕<𧷖<𧷗<𧷘<𧷙<𧷚<"
+ "𧷛<𧷜<ð§·<è³¾<賿<è´€<è´‚<è´ƒ<è´„<è´…<赜<䞇<𧷞<𧷟<𧷠<𧷡<𧷢<𧷣<𧷤<𧷥<𧷦<𧷧<𧷨<𧷩<𧷪<𧷫"
+ "<𧷬<𧷭<𧷮<𧷯<𧷰<𧷱<𧷲<𧷳<𧷴<𧷵<𧷶<𧷷<𧷸<𧷹<𧷺<𧷻<𧹗<è´†<è´‡<è´ˆ<è´‰<è´Š<è´‹<è´Œ<èµ<"
+ "赞<赟<èµ <䞈<𧷼<𧷽<𧷾<𧷿<𧸀<ð§¸<𧸂<𧸃<𧸄<𧸅<𧸆<𧸇<𧸈<𧸉<𧸊<𧸋<𧸌<ð§¸<𧸎<ð§¸<"
+ "ð§¸<𧸑<𧸒<𧸓<𧸔<𧸕<è´ˆ<è´ˆ<è´<è´Ž<è´<赡<èµ¢<䞉<𧸖<𧸗<𧸘<𧸙<𧸚<𧸛<𧸜<ð§¸<𧸞<𧸟<𧸠<"
+ "𧸡<𧸢<𧸣<𧸤<𧸥<è´<è´‘<è´’<è´“<è´”<𧸦<𧸧<𧸨<𧸩<𧸪<𧸫<𧸬<𧸭<𧸮<𧸯<𧸰<è´•<è´–<è´—<è´˜<䞊<"
+ "𧸱<𧸲<𧸳<𧸴<𧸵<𧸶<𧸷<𧸸<𧸹<𧸺<𧸻<𧸼<𧸿<è´™<è´š<äž‹<𧸽<𧸾<𧹀<ð§¹<𧹂<𧹃<𧹄<𧹅"
+ "<𧹆<𧹇<è´›<èµ£<𧹈<𧹉<𧹊<𧹋<è´›<è´œ<𧹌<ð§¹<𧹎<ð§¹<ð§¹<赤<𧹘<𧹙<𧹚<äž‘<èµ¥<赦<赧<𧹛<𧹜<"
+ "ð§¹<𧹞<𧹟<赨<赩<赪<äž’<𧹠<𧹡<𧹢<赫<äž“<äž”<𧹣<𧹤<𧹥<𧹦<𧹧<𧹨<𧹩<𧹪<𧹫<赬<èµ­<èµ®<𧹬<"
+ "𧹭<𧹮<𧹯<𧹰<𧹱<赯<𧹲<𧹳<𧹴<𧹵<𧹶<𧹷<𧹸<𧹹<𧹺<𧹻<𧹼<äž•<𧹽<𧹾<𧹿<𧺀<ð§º<"
+ "𧺂<𧺃<𧺄<𧺅<èµ°<èµ±<𧺆<𧺇<èµ²<èµ³<èµ´<èµµ<龪<𧺈<𧺉<𧺊<𧺋<𧺌<ð§º<𧺎<赶<èµ·<赸<äž–<äž—<䞘<ð§º<"
+ "ð§º<𧺑<𧺒<𧺓<𧺔<𧺕<𧺖<𧺗<𧺘<𧺙<𧺚<𧺛<𧺜<èµ·<èµ¹<赺<èµ»<èµ¼<èµ½<èµ¾<赿<äž™<äžš<äž›<äžœ<ð§º<𧺞"
+ "<𧺟<𧺠<𧺡<𧺢<𧺣<𧺤<𧺥<𧺦<𧺧<𧺨<𧺩<𧺪<𧺫<𧺬<𧺭<𧺮<𧺯<𧺰<𧺱<𧺲<𧺳<𧺴<"
+ "𧺵<﨣<趀<è¶<趂<趃<趄<超<趆<趇<趈<趉<越<趋<äž<äžž<䞟<äž <äž¡<䞢<䞣<䞤<𧺶<𧺷<𧺸<𧺹<𧺺<𧺻<𧺼<𧺽"
+ "<𧺾<𧺿<𧻀<ð§»<𧻂<𧻃<𧻄<𧻅<𧻆<𧻇<𧻈<𧻉<𧻊<𧻋<𧻌<ð§»<𧻎<ð§»<趌<è¶<趎<è¶<è¶<趑<趒"
+ "<趓<趔<䞥<䞦<䞧<䞨<äž©<䞪<ð§»<𧻑<𧻒<𧻓<𧻔<𧻕<𧻖<𧻗<𧻘<𧻙<𧻚<𧻛<𧻜<ð§»<𧻞<𧻟<𧻠<"
+ "𧻡<𧻢<𧻣<𧻤<𧻥<𧻦<𧻧<𧻨<𧻩<𧻪<𧻫<𧻬<𧻭<𧻮<𧻓<趕<趖<趗<趘<趙<趚<䞫<䞬<䞭<䞮<䞯<䞰"
+ "<äž±<äž²<𧻯<𧻰<𧻱<𧻲<𧻳<𧻴<𧻵<𧻶<𧻷<𧻸<𧻹<𧻺<𧻻<𧻼<𧻽<𧻾<𧻿<𧼀<ð§¼<𧼂<𧼃<"
+ "𧼄<𧼅<𧼆<𧼇<𧼈<𧼉<𧼊<𧼋<𧼌<ð§¼<ð§¼<趛<趜<è¶<趞<趟<趠<趡<趢<趣<趤<äž³<äž´<äžµ<䞶<äž·<䞸<𧼎<"
+ "ð§¼<ð§¼<𧼑<𧼒<𧼓<𧼔<𧼕<𧼖<𧼗<𧼘<𧼙<𧼚<𧼛<𧼜<𧼞<𧼠<𧼡<𧼢<𧼣<𧼤<𧼥<𧼦<𧼧"
+ "<趥<趦<趧<䞹<䞺<䞻<䞼<𧼟<𧼨<𧼩<𧼪<𧼫<𧼬<𧼭<𧼮<𧼯<𧼰<𧼱<𧼲<𧼳<𧼴<𧼵<𧼶<𧼷<𧼸"
+ "<𧼹<𧼺<𧼻<𧼼<𧼽<𧼾<𧼿<𧽀<ð§½<𧽂<𧽃<𧽄<𧽅<𧽆<𧽇<𧽈<𧼯<趨<äž½<äž¾<äž¿<䟀<𧽉<𧽊<"
+ "𧽋<𧽌<ð§½<𧽎<ð§½<ð§½<𧽑<𧽒<𧽓<𧽔<𧽕<𧽖<𧽗<𧽘<𧽙<𧽚<𧽛<𧽜<ð§½<äŸ<䟂<䟃<䟄<䟅<䟆"
+ "<𧽞<𧽟<𧽠<𧽡<𧽢<𧽣<𧽤<𧽥<𧽦<𧽧<𧽨<𧽩<𧽪<𧽫<𧽬<𧽭<𧽮<𧽯<𧽰<𧽱<𧽲<𧽳<"
+ "𧽴<𧽵<趩<趪<趫<趬<趭<䟇<𧽶<𧽷<𧽸<𧽹<𧽺<𧽻<𧽼<𧽽<𧽾<𧽿<𧾀<ð§¾<𧾂<𧾃<𧾄<𧾅<𧾆"
+ "<𧾇<𧾈<𧾉<𧾊<𧾋<𧾌<趮<䟈<䟉<䟊<䟋<ð§¾<𧾎<ð§¾<ð§¾<𧾑<𧾒<𧾓<𧾔<𧾕<𧾖<𧾗<𧾘<趯<趰"
+ "<䟌<𧾙<𧾚<𧾛<𧾜<ð§¾<𧾞<𧾟<𧾠<äŸ<䟎<äŸ<𧾡<𧾢<𧾣<𧾤<𧾥<𧾦<𧾧<趱<äŸ<𧾨<𧾩<𧾪<"
+ "𧾫<𧾬<𧾭<䟑<𧾮<𧾯<䟒<𧾰<𧾱<𧾲<𧾳<𧾴<趲<𧾵<𧾶<足<𧾷<𧾸<𧾹<趴<䟓<䟔<𧾺<𧾻<𧾼<"
+ "𧾽<𧾾<𧾿<𧿀<趵<趶<趷<趸<䟕<䟖<ð§¿<𧿂<𧿃<𧿄<𧿅<𧿆<𧿇<𧿈<𧿉<𧿊<𧿋<𧿌<ð§¿<𧿎<ð§¿"
+ "<ð§¿<𧿑<趹<趺<趻<趽<趾<趿<è·€<è·<è·‚<è·ƒ<è·„<䟗<䟘<䟙<䟚<䟛<䟜<äŸ<䟞<𧿒<𧿓<𧿔<𧿕<𧿖<𧿗<𧿘<𧿙"
+ "<𧿚<𧿛<𧿜<ð§¿<𧿞<𧿟<𧿠<𧿡<𧿢<𧿣<𧿤<𧿥<𧿦<𧿧<𧿨<𧿩<𧿪<𧿫<𧿬<𧿭<𧿮<𧿯<"
+ "𧿰<𧿱<è·…<è·†<è·‡<è·ˆ<è·‰<è·Š<è·‹<è·Œ<è·<è·Ž<è·<è·<è·‘<è·’<è·“<è·”<è·•<è·–<è·—<è·˜<è·™<è·š<è·›<è·œ<è·<è·ž<è·µ<䟟<䟠<䟡<䟢<"
+ "䟣<䟤<䟥<䟦<䟧<䟨<䟩<䟪<䟫<䟬<䟭<𧿲<𧿳<𧿴<𧿵<𧿶<𧿷<𧿸<𧿹<𧿺<𧿻<𧿼<𧿽<𧿾<𧿿<𨀀<"
+ "ð¨€<𨀂<𨀃<𨀄<𨀅<𨀆<𨀇<𨀈<𨀉<𨀊<𨀋<𨀌<ð¨€<𨀎<ð¨€<ð¨€<𨀑<𨀒<𨀓<𨀔<è·‹<趼<è·Ÿ<è· <"
+ "跡<跢<跣<跤<跥<跦<跧<跨<跩<跪<跫<跬<跭<跮<路<跰<跱<跲<跳<跴<跶<跷<跸<跹<跺<跻<䟮<䟯<䟰<䟱<䟲<䟳<𨀕<"
+ "𨀖<𨀗<𨀘<𨀙<𨀚<𨀛<𨀜<ð¨€<𨀞<𨀟<𨀠<𨀡<𨀢<𨀣<𨀤<𨀥<𨀦<𨀧<𨀨<𨀩<𨀪<𨀫<𨀬"
+ "<𨀭<𨀮<𨀯<𨀰<𨀱<𨀲<𨀳<𨀴<𨀵<𨀶<𨀷<𨀸<𨀹<𨀺<𨀻<𨀼<𨀽<𨀾<𨀿<路<趼<跰<跼<跽<"
+ "è·¾<è·¿<踀<è¸<踂<踃<踄<踅<踆<踇<踈<踉<踊<踋<踌<è¸<踎<䟴<䟵<䟶<䟷<䟸<䟹<䟺<䟻<䟽<ð¨€<ð¨<ð¨‚<ð¨ƒ<ð¨„<"
+ "ð¨…<ð¨†<ð¨‡<ð¨ˆ<ð¨‰<ð¨Š<ð¨‹<ð¨Œ<ð¨<ð¨Ž<ð¨<ð¨<ð¨‘<ð¨’<ð¨“<ð¨”<ð¨•<ð¨–<ð¨—<ð¨˜<ð¨™<ð¨š<ð¨›"
+ "<ð¨œ<ð¨<ð¨ž<ð¨Ÿ<ð¨ <ð¨¡<ð¨¢<ð¨£<ð¨¤<ð¨¥<ð¨¦<ð¨§<ð¨¨<ð¨©<ð¨ª<ð¨«<ð¨¬<ð¨­<ð¨®<ð¨¯<ð¨°<ð¨±<"
+ "ð¨²<ð¨³<ð¨´<è¸<è¸<踑<踒<踓<踔<踕<踖<踗<踘<踙<踚<踛<踜<è¸<踞<踟<踠<踡<踢<踣<踤<踥<踦<踧<踨<踩<踪<踬<踭"
+ "<踮<踯<踺<䟼<䟾<䟿<ä €<ä <ä ‚<ä ƒ<ä „<ä …<ä †<ä ‡<ä ˆ<ä ‰<ä Š<ä ‹<ä Œ<ð¨µ<ð¨¶<ð¨·<ð¨¸<ð¨¹<ð¨º<ð¨»<ð¨¼<ð¨½<ð¨¾"
+ "<ð¨¿<𨂀<ð¨‚<𨂂<𨂃<𨂄<𨂅<𨂆<𨂇<𨂈<𨂉<𨂊<𨂋<𨂌<ð¨‚<𨂎<ð¨‚<ð¨‚<𨂑<𨂒<𨂓<𨂔<"
+ "𨂕<𨂖<𨂗<𨂘<𨂙<𨂚<𨂛<𨂜<𨂟<踫<踰<踱<踲<踳<踴<踵<踶<踷<踸<踹<踻<踼<踽<踾<踿<è¹€<è¹<蹂<蹃<蹄"
+ "<è¹…<ä <ä Ž<ä <ä <ä ‘<ä ’<ä “<ä ”<ä •<ä –<ð¨‚<𨂞<𨂠<𨂡<𨂢<𨂣<𨂤<𨂥<𨂦<𨂧<𨂨<𨂩<𨂪<𨂫<𨂬<"
+ "𨂭<𨂮<𨂯<𨂰<𨂱<𨂲<𨂳<𨂴<𨂵<𨂶<𨂷<𨂸<𨂹<𨂺<𨂻<𨂼<𨂽<𨂾<𨂿<𨃀<ð¨ƒ<𨃂<𨃃"
+ "<𨃄<𨃅<𨃆<𨃇<𨃈<𨃉<𨃊<𨃋<𨃌<ð¨ƒ<𨃎<ð¨ƒ<ð¨ƒ<𨃑<𨃒<蹆<蹇<蹈<蹉<蹊<蹋<蹌<è¹<蹎<è¹<è¹<"
+ "蹑<è¹’<蹓<ä —<ä ˜<ä ™<ä š<ä ›<ä œ<ä <𨃓<𨃔<𨃕<𨃖<𨃗<𨃘<𨃙<𨃚<𨃛<𨃜<ð¨ƒ<𨃞<𨃟<𨃠<𨃡<𨃢<"
+ "𨃣<𨃤<𨃥<𨃦<𨃧<𨃨<𨃩<𨃪<𨃫<𨃬<𨃭<𨃮<𨃯<𨃰<𨃱<𨃲<𨃳<𨃴<𨃵<𨃶<𨃷<𨃸<𨃹"
+ "<𨃺<𨃻<𨃼<𨃽<𨃾<𨃿<𨄀<ð¨„<𨄂<𨄄<è¹”<蹕<è¹–<è¹—<蹘<è¹™<蹚<è¹›<蹜<è¹<蹞<蹟<è¹ <蹡<è¹¢<è¹£<蹤<è¹¥<蹦"
+ "<蹧<è¹®<躀<ä ž<ä Ÿ<ä  <ä ¡<ä ¢<𨄃<𨄅<𨄆<𨄇<𨄈<𨄉<𨄊<𨄋<𨄌<ð¨„<𨄎<ð¨„<ð¨„<𨄑<𨄒<𨄓<𨄔<"
+ "𨄕<𨄖<𨄗<𨄘<𨄙<𨄚<𨄛<𨄜<ð¨„<𨄞<𨄟<𨄠<𨄡<𨄢<𨄣<𨄤<𨄥<𨄦<𨄧<𨄨<𨄩<𨄪<𨄫"
+ "<𨄬<𨄭<𨄮<𨄯<𨄰<𨄱<𨄲<𨄳<𨄴<𨄵<𨄶<𨄷<𨄸<𨄹<𨄺<𨄻<𨄼<𨄽<𨄾<𨄿<𨅀<ð¨…<"
+ "𨅂<𨅃<𨅄<𨅅<𨅆<𨅇<𨅈<𨅉<𨅚<蹨<蹩<蹪<蹫<蹬<蹭<蹯<蹰<蹱<蹲<蹳<蹴<蹵<蹶<蹷<蹸<蹹<蹺<蹻<蹼<蹽"
+ "<è¹¾<蹿<ä £<ä ¤<ä ¥<ä ¦<ä §<𨅊<𨅋<𨅌<ð¨…<𨅎<ð¨…<ð¨…<𨅑<𨅒<𨅓<𨅔<𨅕<𨅖<𨅗<𨅘<𨅙<𨅛<𨅜"
+ "<ð¨…<𨅞<𨅟<𨅠<𨅡<𨅢<𨅣<𨅤<𨅥<𨅦<𨅧<𨅨<𨅩<𨅪<𨅫<𨅬<𨅭<𨅮<𨅯<𨅰<𨅱<𨅲<"
+ "𨅳<𨅴<𨅵<𨅶<𨅷<𨅸<𨅹<𨅺<𨅻<𨅼<𨅽<𨅾<𨅿<𨆀<èº<躂<躃<躄<躅<躆<躇<躈<躉<ä ¨<ä ©<ð¨†<"
+ "𨆂<𨆃<𨆄<𨆅<𨆆<𨆇<𨆈<𨆉<𨆊<𨆋<𨆌<ð¨†<𨆎<ð¨†<ð¨†<𨆑<𨆒<𨆓<𨆔<𨆕<𨆖<𨆗<𨆘"
+ "<𨆙<𨆚<𨆛<𨆜<ð¨†<𨆞<𨆟<𨆠<𨆡<𨆢<𨆣<𨆤<𨆥<𨆦<𨆧<𨆨<𨆩<躊<躋<躌<èº<躎<èº<ä ª<ä «<"
+ "𨆪<𨆫<𨆬<𨆭<𨆮<𨆯<𨆰<𨆱<𨆲<𨆳<𨆴<𨆵<𨆶<𨆷<𨆸<𨆹<𨆺<𨆻<𨆼<𨆽<𨆾<𨆿<𨇀"
+ "<èº<躑<躒<躓<躔<躕<躖<ä ¬<ð¨‡<𨇂<𨇃<𨇄<𨇅<𨇆<𨇇<𨇈<𨇉<𨇊<𨇋<𨇌<ð¨‡<𨇎<ð¨‡<ð¨‡<𨇑<"
+ "𨇒<𨇓<𨇔<𨇕<躗<躘<躙<躚<躛<躜<ä ­<ä ®<𨇖<𨇗<𨇘<𨇙<𨇚<𨇛<𨇜<ð¨‡<𨇞<𨇟<𨇠<𨇡<𨇢<"
+ "𨇣<èº<躞<躟<躠<ä ¯<𨇤<𨇥<𨇦<𨇧<𨇨<𨇩<𨇪<𨇫<𨇬<𨇭<躡<躢<躣<躤<躥<ä °<𨇮<𨇯<𨇰<𨇱<"
+ "𨇲<𨇳<𨇴<𨇵<𨇶<𨇷<𨇸<𨇹<𨇺<躦<躧<𨇻<𨇼<𨇽<𨇾<𨇿<𨈀<躩<躪<ð¨ˆ<𨈂<𨈃<躨<ä ±<𨈄"
+ "<𨈅<𨈆<𨈇<𨈈<𨈉<𨈊<𨈋<𨈌<ð¨ˆ<𨈎<身<ð¨ˆ<ð¨ˆ<𨈑<𨈒<躬<𨈓<𨈔<𨈕<𨈖<𨈗<躭<躮<躯<"
+ "𨈘<𨈙<𨈚<𨈛<𨈜<ð¨ˆ<𨈞<𨈟<𨈠<𨈡<𨈢<𨈣<𨈤<𨈥<𨈦<𨈧<𨈨<躰<ä ²<ä ³<ä ´<ä µ<ä ¶<𨈩<𨈪"
+ "<𨈫<𨈬<𨈭<𨈮<𨈯<𨈰<𨈱<𨈲<𨈳<𨈴<𨈵<𨈶<𨈷<躱<躲<䠷<䠸<䠹<䠺<𨈸<𨈹<𨈺<𨈻<𨈼<"
+ "𨈽<𨈾<𨈿<𨉀<ð¨‰<𨉂<𨉃<𨉄<𨉅<𨉆<𨉇<躳<躴<躵<𨉈<𨉉<𨉊<𨉋<𨉌<ð¨‰<𨉎<ð¨‰<ð¨‰<𨉑"
+ "<𨉒<𨉓<躶<躷<躸<躹<躺<躻<躼<ä »<𨉔<𨉕<𨉖<𨉗<𨉘<𨉙<𨉚<𨉛<𨉜<ð¨‰<𨉞<𨉟<𨉠<𨉡<躽<躾"
+ "<䠼<𨉢<𨉣<𨉤<𨉥<𨉧<𨉨<𨉩<𨉪<𨉫<𨉬<𨉭<躿<䠽<䠾<𨉦<𨉮<𨉯<𨉰<𨉱<𨉲<𨉳<𨉴<𨉵"
+ "<𨉶<𨉷<𨉸<軀<è»<𨉹<𨉺<𨉻<𨉼<𨉽<𨉾<軂<軃<軄<è»…<ä ¿<𨉿<𨊀<ð¨Š<𨊂<𨊃<𨊄<𨊅<𨊆<𨊇"
+ "<𨊈<𨊉<𨊊<𨊋<𨊌<軆<ä¡€<ð¨Š<𨊎<ð¨Š<ð¨Š<𨊑<𨊒<軇<𨊓<𨊔<𨊕<𨊖<𨊗<𨊘<𨊙<𨊚<ä¡<𨊛"
+ "<𨊜<軈<ð¨Š<𨊞<𨊟<軉<車<车<車<軋<轧<軌<è»<轨<ä¡‚<䡃<ä¡„<𨊠<𨊡<𨊢<𨊣<𨊤<𨊥<𨊦<軎<è»<è»<軑<"
+ "軒<軓<軔<軕<轩<轪<轫<䡅<䢀<𨊧<𨊨<𨊩<𨊪<𨊫<𨊬<𨊭<𨊮<𨊯<𨊰<𨊱<𨊲<軔<軖<軗<軘<軙<軚<軛<"
+ "軜<è»<軞<軟<è» <軡<転<軣<转<è½­<è½®<软<è½°<䡆<䡇<䡈<䡉<ä¡Š<ä¡‹<ä¡Œ<ä¡<ä¡Ž<ä¢<𨊳<𨊴<𨊵<𨊶<𨊷<𨊸<𨊹<"
+ "𨊺<𨊻<𨊼<𨊽<𨊾<𨊿<𨋀<ð¨‹<𨋂<𨋃<𨋄<𨋅<𨋆<𨋇<𨋈<𨋉<𨋊<𨋋<𨋌<ð¨‹<ð¨…<ð¨†<軤<"
+ "軥<軦<軧<軨<軩<軪<軫<軬<軮<軯<軰<軱<軲<軳<軴<軵<軶<軷<軸<軹<軺<軻<軼<軽<轱<轲<轳<轴<轵<轶<轷<轸<轹<轺<"
+ "è½»<龫<ä¡<ä¡<ä¡‘<ä¡’<䢂<𨋎<ð¨‹<ð¨‹<𨋑<𨋒<𨋓<𨋔<𨋕<𨋖<𨋗<𨋘<𨋙<𨋚<𨋛<𨋜<ð¨‹<𨋞<𨋟<"
+ "𨋠<𨋡<𨋢<𨋣<𨋤<𨋥<𨋦<𨋧<ð¨‡<è»­<軾<軿<è¼€<è¼<輂<較<輄<è¼…<輆<輇<輈<載<輊<輋<輌<è½¼<è½½<è½¾<轿<è¾€"
+ "<è¾<辂<较<ä¡“<ä¡”<ä¡•<ä¡–<ä¡—<𨋨<𨋩<𨋪<𨋫<𨋬<𨋭<𨋮<𨋯<𨋰<𨋱<𨋲<𨋳<𨋴<𨋵<𨋶<𨋷<𨋸<"
+ "𨋹<𨋺<𨋻<𨋼<𨋽<𨋾<𨋿<𨌀<ð¨Œ<ð¨ˆ<è¼<輎<è¼<è¼<輑<è¼’<輓<è¼”<輕<辄<è¾…<辆<䡘<ä¡™<ä¡š<ä¡›<𨌂<𨌃<"
+ "𨌄<𨌅<𨌆<𨌇<𨌈<𨌉<𨌊<𨌋<𨌌<ð¨Œ<𨌎<ð¨Œ<ð¨Œ<𨌑<𨌒<𨌓<𨌔<𨌕<𨌖<𨌗<𨌘<𨌙<𨌚"
+ "<𨌛<𨌜<ð¨Œ<𨌞<𨌟<è¼–<è¼—<輘<è¼™<輚<è¼›<輜<è¼<輞<輟<è¼ <輡<è¼¢<è¼£<輤<è¼¥<輦<輧<輨<輩<輪<輫<輬<辇<辈<辉<"
+ "辊<辋<辌<è¾<辎<ä¡œ<ä¡<ä¡ž<ä¡Ÿ<𨌠<𨌡<𨌢<𨌣<𨌤<𨌥<𨌦<𨌧<𨌨<𨌩<𨌪<𨌫<𨌬<𨌭<𨌮<𨌯<𨌰"
+ "<𨌱<𨌲<𨌳<𨌴<𨌵<𨌶<𨌷<𨌸<𨌹<𨌺<𨌻<𨌼<𨌽<𨌾<𨌿<ð¨€<ð¨<ð¨‚<ð¨ƒ<ð¨„<ð¨…<ð¨†<輦"
+ "<輪<è¼­<è¼®<輯<è¼°<è¼±<è¼²<è¼³<è¼´<è¼µ<輶<è¼·<輸<è¼¹<輺<è¼»<è¼¼<è¾<è¾<辑<è¾’<输<è¾”<ä¡ <ä¡¡<ä¡¢<ä¡£<䡤<ð¨‡<ð¨ˆ<ð¨‰<ð¨Š"
+ "<ð¨‹<ð¨Œ<ð¨<ð¨Ž<ð¨<ð¨<ð¨‘<ð¨’<ð¨“<ð¨”<ð¨•<ð¨–<ð¨—<ð¨˜<ð¨™<ð¨š<ð¨›<ð¨œ<ð¨<ð¨ž<ð¨Ÿ<ð¨ <"
+ "ð¨¡<ð¨¢<ð¨£<ð¨¤<ð¨¥<ð¨¦<ð¨§<ð¨¨<è¼»<輸<輸<è¼½<è¼¾<輿<è½€<è½<轂<轃<轄<è½…<辕<è¾–<è¾—<ä¡¥<䡦<䡧<䡨<ä¡©<䡪<ð¨©"
+ "<ð¨ª<ð¨«<ð¨¬<ð¨­<ð¨®<ð¨¯<ð¨°<ð¨±<ð¨²<ð¨³<ð¨´<ð¨µ<ð¨¶<ð¨·<ð¨¸<ð¨¹<ð¨º<ð¨»<ð¨¼<ð¨½<ð¨¾<ð¨¿<"
+ "𨎀<ð¨Ž<𨎂<𨎃<𨎄<𨎅<𨎆<𨎇<𨎈<𨎉<轆<轇<轈<轉<轊<轋<轌<辘<ä¡«<䡬<ä¡­<ä¡®<䡯<ä¡°<䡱<𨎊<𨎋<𨎌"
+ "<ð¨Ž<𨎎<ð¨Ž<ð¨Ž<𨎑<𨎒<𨎓<𨎔<𨎕<𨎖<𨎗<𨎘<𨎙<𨎚<𨎛<𨎜<ð¨Ž<𨎞<𨎟<𨎠<𨎡<𨎢<"
+ "𨎣<è½<轎<è½<è½<轑<è½’<轓<è½”<è¾™<辚<䡲<䡳<ä¡´<䡵<𨎤<𨎥<𨎦<𨎧<𨎨<𨎩<𨎪<𨎫<𨎬<𨎭<𨎮<𨎯<"
+ "𨎰<𨎱<ð¨‰<轕<è½–<è½—<轘<è½™<轚<䡶<𨎲<𨎳<𨎴<𨎵<𨎶<𨎷<𨎸<𨎹<𨎺<𨎻<𨎼<𨎽<𨎾<𨎿<ð¨€<"
+ "ð¨<ð¨‚<ð¨ƒ<ð¨„<ð¨…<ð¨†<ð¨‡<𨘼<è½›<轜<è½<轞<轟<ä¡·<䡸<䡹<ð¨ˆ<ð¨‰<ð¨Š<ð¨‹<ð¨Œ<ð¨<ð¨Ž<ð¨<ð¨<è½ "
+ "<轡<è½¢<䡺<ä¡»<ð¨‘<ð¨’<ð¨“<ð¨”<ð¨•<ð¨–<ð¨—<ð¨˜<ð¨™<ð¨š<ð¨›<ð¨œ<ð¨<è½¢<è½£<轤<ð¨ž<ð¨Ÿ<ð¨ <ð¨¡<ð¨¢"
+ "<ð¨£<ð¨¤<ð¨¥<ð¨¦<ð¨§<ð¨¨<ð¨Š<䡼<ð¨©<ð¨ª<ð¨«<ð¨¬<ð¨­<ð¨®<ð¨¯<ð¨°<ð¨±<ð¨²<ð¨³<ð¨´<䡽<ð¨µ<ð¨¶<"
+ "ð¨·<ð¨¸<ð¨½<è½¥<䡾<ð¨¹<ð¨»<ð¨¾<ð¨º<ð¨¼<ð¨¿<ð¨€<ð¨<ð¨‚<ä¡¿<ð¨ƒ<ð¨„<è¾›<ð¨‹<ð¨Œ<ð¨<ð¨Ž<ð¨<ð¨<"
+ "ð¨‘<辜<è¾<ð¨’<ð¨“<辞<辟<è¾ <ð¨”<ð¨•<ð¨–<ð¨—<辞<辡<è¾¢<è¾£<ð¨˜<ð¨™<ð¨š<ð¨›<辤<䢃<ð¨œ<ð¨<ð¨ž<ð¨Ÿ<è¾¥"
+ "<辦<辧<辨<辩<辪<ð¨ <ð¨¡<ð¨¢<ð¨£<ð¨¤<ð¨¥<ð¨¦<ð¨§<辫<ð¨¨<ð¨©<ð¨ª<ð¨«<ð¨¬<ð¨­<ð¨®<ð¨¯<辬<ð¨°<ð¨±"
+ "<ð¨²<è¾­<ð¨µ<ð¨¶<ð¨·<ð¨¸<ð¨¹<è¾®<䢄<ð¨º<ð¨»<ð¨¼<辯<ð¨½<ð¨¾<ð¨¿<𨑀<ð¨‘<𨑂<è¾°<𨑃<𨑄<è¾°<è¾±<è¾²<"
+ "䢅<𨑅<𨑆<𨑇<䢆<è¾³<䢇<𨑈<𨑉<è¾´<𨑊<䢈<䢉<𨑋<𨑌<è¾µ<辶<𠔇<辶<è¾·<辸<è¾¹<辺<è¾»<è¾¼<è¾½<ð¨‘<𨑎<"
+ "ð¨‘<ð¨‘<å·¡<è¾¾<辿<è¿€<è¿<è¿‚<迃<è¿„<è¿…<迆<过<迈<迉<䢊<䢋<𨑑<𨑒<𨑓<𨑔<𨑕<𨑖<𨑗<𨑘<𨑙<𨑚<𨑛"
+ "<𨑜<ð¨‘<𨑞<𨑟<𨑠<𨑡<è¿Š<è¿‹<è¿Œ<è¿<è¿Ž<è¿<è¿<è¿‘<è¿’<è¿“<è¿”<è¿•<è¿–<è¿—<还<è¿™<è¿š<è¿›<è¿œ<è¿<è¿ž<è¿Ÿ<迬<䢌<ä¢"
+ "<䢎<ä¢<𨑢<𨑣<𨑤<𨑥<𨑦<𨑧<𨑨<𨑩<𨑪<𨑫<𨑬<𨑭<𨑮<𨑯<𨑰<𨑱<𨑲<𨑳<𨑴<𨑵<𨑶<"
+ "𨑷<𨑸<𨑹<𨑺<𨑻<𨑼<𨑽<𨑾<𨑿<𨒀<ð¨’<﨤<è¿ <è¿¡<è¿¢<è¿£<迤<è¿¥<迦<迧<迨<è¿©<迪<è¿«<è¿­<è¿®<迯<è¿°<迱"
+ "<迲<迳<ä¢<䢑<𨒂<𨒃<𨒄<𨒅<𨒆<𨒇<𨒈<𨒉<𨒊<𨒋<𨒌<ð¨’<𨒎<ð¨’<ð¨’<𨒑<𨒒<𨒓<𨒔<𨒕"
+ "<𨒖<𨒗<𨒘<𨒙<𨒚<𨒛<𨒜<ð¨’<𨒞<𨒟<𨒠<𨒡<𨒢<𨒣<𨒤<è¿´<迵<迶<è¿·<迸<迹<迺<è¿»<迼<追<迾<"
+ "è¿¿<退<é€<适<逃<逄<逅<逆<逇<逈<选<逊<䢒<䢓<䢔<䢕<䢖<䢗<䢘<𨒥<𨒦<𨒧<𨒨<𨒩<𨒪<𨒫<𨒬<𨒭<𨒮<"
+ "𨒯<𨒰<𨒱<𨒲<𨒳<𨒴<𨒵<𨒶<𨒷<𨒸<𨒹<𨒺<𨒻<𨒼<𨒽<𨒾<𨒿<𨓀<ð¨“<𨓂<𨓃<𨓄<逋<"
+ "逌<é€<逎<é€<é€<逑<递<逓<途<逕<逖<逗<逘<這<通<逛<逜<é€<逞<速<造<逡<逢<連<逤<逥<逦<逧<䢙<䢚<䢛<𨓅<𨓆<"
+ "𨓇<𨓈<𨓉<𨓊<𨓋<𨓌<ð¨“<𨓎<ð¨“<ð¨“<𨓑<𨓒<𨓓<𨓔<𨓕<𨓖<𨓗<𨓘<𨓙<𨓚<𨓛<𨓜<ð¨“"
+ "<𨓞<𨓟<𨓠<𨓡<𨓢<𨓣<𨓤<𨓥<𨓦<𨓧<𨓨<𨓩<𨓪<連<逨<逩<逪<逫<逬<逭<逮<逯<逰<週<進<逳<逴<"
+ "逵<逶<逷<逸<逹<逺<逻<䢜<ä¢<䢞<䢟<䢠<𨓫<𨓬<𨓭<𨓮<𨓯<𨓰<𨓱<𨓲<𨓳<𨓴<𨓵<𨓶<𨓷<𨓸<𨓹"
+ "<𨓺<𨓻<𨓼<𨓽<𨓾<𨓿<𨔀<ð¨”<𨔂<𨔃<𨔄<𨔅<𨔆<𨔇<𨔈<𨔉<𨔊<𨔋<𨔌<ð¨”<ð¨”<ð¨”<"
+ "𨔑<𨔒<𨔓<𨔔<𨔕<𨔖<𨔗<𨔘<𨔙<𨔚<𨔛<𨔜<𨔠<逸<逸<逼<逽<逾<逿<é€<é<é‚<éƒ<é„<é…<é†<é‡<éˆ"
+ "<é‰<éŠ<é‹<éŒ<é<éŽ<é<é<é‘<é’<é“<é”<é•<é–<é—<䢡<𨔎<ð¨”<𨔞<𨔟<𨔡<𨔢<𨔣<𨔤<𨔥<𨔦<𨔧<𨔨"
+ "<𨔩<𨔪<𨔫<𨔬<𨔭<𨔮<𨔯<𨔰<𨔱<𨔲<𨔳<𨔴<𨔵<𨔶<𨔷<𨔸<𨔹<𨔺<𨔻<𨔼<𨔽<𨔾<"
+ "𨔿<𨕀<ð¨•<𨕂<𨕃<𨕄<𨕅<𨕆<𨕇<𨕈<𨕉<𨕊<𨕋<𨕌<ð¨•<𨕎<ð¨•<ð¨•<𨕑<𨕒<𨕓<𨕔<𨕕"
+ "<𨕖<𨕗<𨕘<𨕙<𨕚<𨕛<𨕜<é˜<é™<éš<é›<éœ<é<éž<éŸ<é <é¡<é¢<é£<é¤<é¥<䢢<䢣<䢤<䢥<ð¨•<𨕞<𨕟<"
+ "𨕠<𨕡<𨕢<𨕣<𨕤<𨕥<𨕦<𨕧<𨕨<𨕩<𨕪<𨕫<𨕬<𨕭<𨕮<𨕯<𨕰<𨕱<𨕲<𨕳<𨕴<𨕵<𨕶"
+ "<𨕷<𨕸<𨕹<𨕺<𨕻<𨕼<𨕽<𨕾<𨕿<𨖀<ð¨–<𨖂<𨖃<𨖄<𨖅<é¦<é§<é¨<é©<éª<é«<é¬<é­<é®<é¯<é°<"
+ "é±<é³<䢦<䢧<䢨<䢩<𨖆<𨖇<𨖈<𨖉<𨖊<𨖋<𨖌<ð¨–<𨖎<ð¨–<ð¨–<𨖑<𨖒<𨖓<𨖔<𨖕<𨖖<𨖗<𨖘"
+ "<𨖙<𨖚<𨖛<𨖜<ð¨–<𨖞<𨖟<𨖠<𨖡<𨖢<𨖣<𨖤<𨖥<𨖦<𨖧<𨖨<𨖩<𨖪<𨖫<𨖬<𨖭<𨖮<"
+ "𨖯<𨖰<𨖱<𨖲<𨖳<é²<é´<éµ<é¶<é·<é¸<é¹<éº<é»<é¼<邆<䢪<䢫<䢬<䢭<𨖴<𨖵<𨖶<𨖷<𨖸<𨖹<𨖺<𨖻"
+ "<𨖼<𨖽<𨖾<𨖿<𨗀<ð¨—<𨗂<𨗃<𨗄<𨗅<𨗆<𨗇<𨗈<𨗉<𨗊<𨗋<𨗌<ð¨—<𨗎<ð¨—<ð¨—<𨗑<"
+ "𨗒<𨗔<𨗕<𨗖<𨗗<𨗘<𨗙<𨗚<𨗛<𨗜<ð¨—<𨗞<𨗟<𨗠<𨗡<𨗢<𨗣<𨗤<é¼<é²<𨗒<é½<é¾<é¿<é‚€"
+ "<é‚<é‚‚<邃<é‚„<é‚…<邉<䢮<𨗥<𨗦<𨗧<𨗨<𨗩<𨗪<𨗫<𨗬<𨗭<𨗮<𨗯<𨗰<𨗱<𨗲<𨗳<𨗴<𨗵<𨗶"
+ "<𨗷<𨗸<𨗹<𨗺<𨗻<𨗼<𨗽<𨗾<𨗿<𨘀<ð¨˜<𨘂<𨘃<𨘄<𨘅<𨘆<𨗭<邇<邈<䢯<䢰<𨘇<𨘈<𨘉"
+ "<𨘊<𨘋<𨘌<ð¨˜<𨘎<ð¨˜<ð¨˜<𨘑<𨘒<𨘓<𨘔<𨘕<𨘖<𨘗<𨘘<𨘙<𨘚<𨘛<𨘜<ð¨˜<𨘞<𨘟<"
+ "𨘠<𩄮<邊<邋<邌<䢱<𨘡<𨘢<𨘣<𨘤<𨘥<𨘦<𨘧<𨘨<𨘩<𨘪<𨘫<𨘬<𨘭<𨘮<𨘯<𨘰<𨘱<𨘲<"
+ "𨘳<𨘴<𨘵<𨘶<é‚<𨘷<𨘸<𨘹<𨘺<𨘻<𨘽<𨘾<𨘿<𨙀<ð¨™<é‚Ž<𨙂<𨙃<𨙄<𨙅<𨙆<𨙇<𨙈<"
+ "𨙉<𨙊<𨙋<𨙌<ð¨™<𨙎<ð¨™<ð¨™<𨙑<𨙒<𨙓<𨙔<𨙕<𨙖<𨙗<𨙘<é‚<é‚<𨙙<𨙚<𨙛<𨙜<ð¨™<"
+ "𨙞<é‚<䢲<𨙟<𨙠<𨙡<𨙢<𨙣<𨙤<𨙥<𨙦<𨙧<é‚‘<𨙨<é‚’<é‚“<䢳<𨙩<𨙪<é‚”<é‚•<é‚–<é‚—<邘<é‚™<é‚š<é‚›<é‚œ"
+ "<é‚<䢴<𨙫<𨙬<𨙭<𨙮<𨙯<𨙰<𨙱<𨙲<𨙳<𨙴<𨙵<é‚”<é‚ž<é‚Ÿ<é‚ <é‚¡<é‚¢<é‚£<邤<é‚¥<邦<邧<邨<é‚©<邪<é‚«<"
+ "邬<䢵<䢶<䢷<𨙶<𨙷<𨙸<𨙹<𨙺<𨙻<𨙼<𨙽<𨙾<𨙿<𨚀<ð¨š<𨚂<𨚃<𨚄<𨚅<𨚆<𨚇<𨚈<𨚉<"
+ "𨚊<𨚋<𨚌<ð¨š<𨚎<ð¨š<ð¨š<𨚑<𨚒<é‚­<é‚®<邯<é‚°<邱<邲<邳<é‚´<邵<邶<é‚·<邸<邹<邺<é‚»<䢸<䢹<䢺<𨚓<𨚔"
+ "<𨚕<𨚖<𨚗<𨚘<𨚙<𨚚<𨚛<𨚜<ð¨š<𨚞<𨚟<𨚠<𨚡<𨚢<𨚣<𨚤<𨚥<𨚦<𨚧<𨚨<𨚩<𨚪<"
+ "𨚫<𨚬<𨚭<𨚮<邼<邽<邾<é‚¿<郀<éƒ<郂<郃<郄<郅<郆<郇<郈<郉<郊<郋<郌<éƒ<郎<éƒ<éƒ<郑<郓<䢻<䢼<䢽<䢾<䢿<"
+ "䣀<ä£<䣂<𨚯<𨚰<𨚱<𨚲<𨚳<𨚴<𨚵<𨚶<𨚷<𨚸<𨚹<𨚺<𨚻<𨚼<𨚽<𨚾<𨚿<𨛀<ð¨›<𨛂<𨛃"
+ "<𨛄<𨛅<𨛆<𨛇<𨛈<𨛉<𨛊<郎<郒<郔<郕<郖<郗<郘<郙<郚<郛<郜<éƒ<郞<郟<郠<郡<郢<郣<郤<郥<郦<郧<䣃<"
+ "䣄<䣅<䣆<䣇<䣈<䣉<𨛋<𨛌<ð¨›<𨛎<ð¨›<ð¨›<𨛑<𨛒<𨛓<𨛔<𨛕<𨛖<𨛗<𨛘<𨛙<𨛚<𨛛<𨛜<ð¨›"
+ "<𨛞<𨛟<𨛠<𨛡<𨛢<𨛣<𨛤<𨛥<𨛦<𨛧<𨛨<𨛩<𨛪<部<郩<郪<郫<郬<郭<郮<郯<郰<郱<郲<郳<郴<郵<"
+ "郶<郷<郸<䣊<䣋<䣌<ä£<䣎<ä£<𨛫<𨛬<𨛭<𨛮<𨛯<𨛰<𨛱<𨛲<𨛳<𨛴<𨛵<𨛶<𨛷<𨛸<𨛹<𨛺<𨛻"
+ "<𨛼<𨛽<𨛾<𨛿<𨜀<ð¨œ<𨜂<𨜃<𨜄<𨜅<𨜆<𨜇<𨜈<𨜉<𨜊<𨜋<𨜌<ð¨œ<𨜎<郱<郹<郺<郻<郼<"
+ "都<郾<郿<é„€<é„<é„‚<鄃<é„„<é„…<鄆<鄇<鄈<鄉<é„Š<ä£<䣑<䣒<ð¨œ<ð¨œ<𨜑<𨜒<𨜓<𨜔<𨜕<𨜖<𨜘<𨜙<𨜚<"
+ "𨜛<𨜜<ð¨œ<𨜞<𨜟<𨜠<𨜡<𨜢<𨜣<𨜤<𨜥<𨜦<𨜧<𨜨<𨜩<𨜪<𨜫<𨜬<𨜭<𨜮<𨜯<𨜰<𨜱"
+ "<都<𨜮<é„‹<é„Œ<é„<é„Ž<é„<é„<é„‘<é„’<é„“<é„”<é„•<é„–<é„—<䣓<䣔<䣕<䣖<䣗<𨜗<𨜲<𨜳<𨜴<𨜵<𨜶<𨜷<𨜸<𨜹"
+ "<𨜺<𨜻<𨜼<𨜽<𨜾<𨜿<ð¨€<ð¨<ð¨‚<ð¨ƒ<ð¨„<ð¨…<ð¨†<ð¨‡<ð¨ˆ<ð¨‰<ð¨Š<é„‘<鄘<é„™<é„š<é„›<é„œ<é„<é„ž<"
+ "é„Ÿ<é„ <é„¡<é„¢<é„£<鄤<é„¥<䣘<䣙<䣚<䣛<䣜<ð¨‹<ð¨Œ<ð¨<ð¨Ž<ð¨<ð¨<ð¨‘<ð¨’<ð¨“<ð¨”<ð¨•<ð¨–<ð¨—<ð¨˜<ð¨™"
+ "<ð¨š<ð¨›<ð¨œ<ð¨<ð¨ž<ð¨Ÿ<ð¨ <ð¨¡<ð¨¢<ð¨£<ð¨¤<ð¨¥<ð¨¦<ð¨§<ð¨¨<ð¨©<ð¨ª<ð¨¹<é„›<鄦<鄧<鄨<é„©<鄪<é„«"
+ "<鄬<é„­<é„®<鄯<é„°<鄱<鄲<ä£<䣞<䣟<䣠<ð¨«<ð¨¬<ð¨­<ð¨®<ð¨¯<ð¨°<ð¨±<ð¨²<ð¨³<ð¨´<ð¨µ<ð¨¶<ð¨·<ð¨¸<ð¨º<"
+ "ð¨»<ð¨¼<ð¨½<ð¨¾<ð¨¿<𨞀<ð¨ž<𨞂<𨞃<𨞄<𨞅<𨞆<𨞇<𨞈<𨞉<𨞊<𨞋<𨞌<ð¨ž<𨞎<ð¨ž<ð¨ž<鄳<"
+ "é„´<鄵<鄶<é„·<䣡<𨞑<𨞒<𨞓<𨞔<𨞕<𨞖<𨞗<𨞘<𨞙<𨞚<𨞛<𨞜<ð¨ž<𨞞<𨞟<𨞠<𨞡<𨞢<𨞣<"
+ "𨞤<𨞥<𨞦<鄸<鄹<䣢<𨞧<𨞨<𨞩<𨞪<𨞫<𨞬<𨞭<𨞮<𨞯<𨞰<𨞱<𨞲<𨞳<𨞴<𨞵<𨞶<𨞷<𨞸"
+ "<𨞹<鄺<é„»<鄼<鄽<鄾<𨞺<𨞻<𨞼<𨞽<𨞾<𨞿<𨟀<ð¨Ÿ<𨟂<𨟃<𨟄<𨟅<𨟆<𨟇<𨟈<𨟉<𨟊<𨟋<"
+ "𨟌<é„¿<é…€<é…‚<ð¨Ÿ<𨟎<ð¨Ÿ<ð¨Ÿ<𨟑<𨟒<𨟓<𨟔<𨟕<𨟖<𨟗<𨟘<é…<é…ƒ<𨟙<𨟚<𨟛<𨟜<ð¨Ÿ<𨟞<"
+ "𨟟<酄<酅<酆<𨟠<𨟡<𨟢<𨟣<酇<酈<𨟤<𨟥<𨟦<𨟧<䣣<䣤<𨟨<𨟩<𨟪<𨟫<𨟬<𨟭<𨟮<𨟯<酉<酊"
+ "<é…‹<䣥<䣦<é…Œ<é…<é…Ž<é…<é…<é…‘<é…’<䣧<䣨<𨟰<𨟱<𨟲<𨟳<é…“<é…”<é…•<é…–<é…—<é…˜<é…™<é…š<é…›<é…œ<é…<é…ž<䣩<䣪<䣫<䣬"
+ "<䣭<𨟴<𨟵<𨟶<𨟷<𨟸<𨟹<𨟺<𨟻<𨟼<𨟽<𨟾<𨟿<𨠀<ð¨ <𨠂<𨠃<𨠄<𨠅<𨠆<𨠇<𨠈<𨠉"
+ "<𨠊<é…Ÿ<é… <é…¡<é…¢<é…£<é…¤<é…¥<䣮<䣯<䣰<䣱<䣲<䣳<𨠋<𨠌<ð¨ <𨠎<ð¨ <ð¨ <𨠑<𨠒<𨠓<𨠔<𨠕<𨠖<𨠗"
+ "<𨠘<𨠙<𨠚<𨠛<𨠜<ð¨ <𨠞<𨠟<𨠠<𨠡<𨠢<𨠣<é…¦<é…§<é…¨<é…©<é…ª<é…«<é…¬<é…­<é…®<é…¯<é…°<é…±<䣴<䣵<䣶<䣷"
+ "<䣸<䣹<𨠤<𨠥<𨠦<𨠧<𨠨<𨠩<𨠪<𨠫<𨠬<𨠭<𨠮<𨠯<𨠰<𨠱<𨠲<𨠳<𨠴<𨠵<𨠶<酪<酲<酳<"
+ "é…´<é…µ<é…¶<é…·<é…¸<é…¹<é…º<é…»<é…¼<é…½<é…¾<é…¿<䣺<䣻<𨠷<𨠸<𨠹<𨠺<𨠻<𨠼<𨠽<𨠾<𨠿<𨡀<ð¨¡<𨡂<𨡃<"
+ "𨡄<𨡅<𨡆<𨡇<𨡈<𨡉<𨡊<𨡋<醀<é†<醂<醃<醄<醅<醆<醇<醈<醉<醊<醋<醌<䣼<䣽<䣾<䣿<𨡌<ð¨¡<𨡎<"
+ "ð¨¡<ð¨¡<𨡑<𨡒<𨡓<𨡔<𨡕<𨡖<𨡗<𨡘<𨡙<𨡚<𨡛<𨡜<ð¨¡<𨡞<𨡟<𨡠<𨡡<𨡢<𨡣<𨡤<𨡥"
+ "<𨡦<𨡧<𨡨<é†<醎<é†<é†<醑<醒<醓<醔<醕<醖<醗<䤀<ä¤<䤂<䤃<䤄<䤅<䤆<䤇<䤈<𨡩<𨡪<𨡫<𨡬<𨡭<𨡮<"
+ "𨡯<𨡰<𨡱<𨡲<𨡳<𨡴<𨡵<𨡶<𨡷<𨡸<𨡹<𨡺<𨡻<𨡼<𨡽<𨡾<𨡿<𨢀<ð¨¢<𨢂<𨢃<𨢄<醘<"
+ "醙<醚<醛<醜<é†<醞<醟<醠<醡<醢<醣<醤<䤉<䤊<䤋<䤌<𨢅<𨢆<𨢇<𨢈<𨢉<𨢊<𨢋<𨢌<ð¨¢<𨢎<ð¨¢<ð¨¢<"
+ "𨢑<𨢒<𨢓<𨢔<𨢕<𨢖<𨢗<𨢘<𨢙<𨢚<𨢛<𨢜<ð¨¢<𨢞<𨢟<𨢠<醙<醥<醦<醧<醨<醩<醪<醫<醬<ä¤<"
+ "𨢡<𨢢<𨢣<𨢤<𨢥<𨢦<𨢧<𨢨<𨢩<𨢪<𨢫<𨢬<𨢭<𨢮<𨢯<𨢰<𨢱<𨢲<𨢳<𨢴<𨢵<𨢶<𨢷"
+ "<𨢸<𨢹<𨢺<𨢻<𨢼<醭<醮<醯<醰<醱<䤎<ä¤<ä¤<䤑<䤒<𨢽<𨢾<𨢿<𨣀<ð¨£<𨣂<𨣃<𨣄<𨣅<𨣆<𨣇"
+ "<𨣈<𨣉<𨣊<𨣋<𨣌<ð¨£<𨣎<ð¨£<ð¨£<𨣑<𨣒<𨣓<𨣔<𨣕<醲<醳<醴<醵<醶<醷<醸<𨣖<𨣗<𨣘<𨣙"
+ "<𨣚<𨣛<𨣜<ð¨£<𨣞<𨣟<𨣠<𨣡<𨣢<𨣣<𨣤<𨣥<醴<醹<醺<醻<䤓<䤔<𨣦<𨣧<𨣨<𨣩<𨣪<𨣫<"
+ "𨣬<𨣭<䤕<䤖<𨣮<𨣯<𨣰<𨣱<𨣲<𨣳<𨣴<𨣵<醼<𨣶<𨣷<𨣸<𨣹<𨣺<𨣻<𨣼<𨣽<醽<醾<醿<釀<"
+ "䤗<䤘<𨣾<𨣿<𨤀<ð¨¤<𨤂<é‡<釂<𨤃<𨤄<釃<釄<𨤅<𨤆<釅<𨤇<𨤈<𨤉<䤙<𨤊<𨤋<𨤌<ð¨¤<𨤎<釆"
+ "<采<ð¨¤<釈<ð¨¤<𨤑<釉<释<𨤒<𨤓<𨤔<𨤕<𨤖<𨤗<𨤘<𨤙<𤳛<𨤚<𨤛<𨤜<ð¨¤<釋<𨤞<𨤟<𨤠<"
+ "𨤡<里<里<é‡<𨤣<𨤤<野<䤚<𨤢<𨤥<é‡<𨤦<𨤧<𨤨<𨤩<é‡<𨤪<𨤫<𨤬<𨤭<𨤮<𨤯<𨤰<𨤱<ð¡£¢<"
+ "𨤲<𨤳<é‡<𨤴<𨤵<𨤶<𨤷<𥣷<𨤸<𨤹<𨤺<𨤻<𨤼<金<釒<é’…<金<釓<釔<é’†<é’‡<釕<釖<釗<釘<釙<釚<釛<"
+ "釜<é‡<釞<釟<釠<釡<釢<é’ˆ<é’‰<é’Š<é’‹<é’Œ<䤛<𨤽<𨤾<𨤿<𨥀<ð¨¥<釣<釤<釥<釦<釧<釨<釩<釪<釫<釬<釭<釮<釯<釰"
+ "<釱<釲<釳<釴<釵<釶<釷<釸<釹<釺<釻<釼<é’<é’Ž<é’<é’<é’‘<é’’<é’“<é’”<é’•<é’–<é’—<䤜<𨥂<𨥃<𨥄<𨥅<𨥆<𨥇<"
+ "𨥈<𨥉<𨰾<𨰿<釽<釾<釿<鈀<éˆ<鈂<鈃<鈄<鈅<鈆<鈇<鈈<鈉<鈊<鈋<鈌<éˆ<鈎<éˆ<éˆ<鈑<鈒<鈓<鈔<鈕<鈖<鈗<鈘<"
+ "鈙<鈚<鈛<鈜<éˆ<鈞<鈟<鈠<鈡<鈢<鈣<鈤<鈥<鈦<鈧<鈨<鈩<鈪<鈫<鈬<é’˜<é’™<é’š<é’›<é’œ<é’<é’ž<é’Ÿ<é’ <é’¡<é’¢<é’£<é’¤<é’¥<"
+ "é’¦<é’§<é’¨<é’©<é’ª<é’«<é’¬<é’­<é’®<é’¯<ä¤<䤞<䤟<䤠<䥺<䥻<䥼<𨥊<𨥋<𨥌<ð¨¥<𨥎<ð¨¥<ð¨¥<𨥑<𨥒<𨥓<𨥔<"
+ "𨥕<𨥖<𨥗<𨥘<𨥙<𨥚<𨥛<𨥜<ð¨¥<𨥞<𨥟<𨥠<𨥡<𨥢<𨥣<𨥤<𨱀<ð¨±<𨱂<鈭<鈮<鈯<鈰<鈱<鈲"
+ "<鈳<鈴<鈵<鈶<鈷<鈸<鈹<鈺<鈻<鈼<鈽<鈾<鈿<鉀<é‰<鉂<鉃<鉄<鉅<鉆<鉇<鉈<鉉<鉊<鉋<鉌<é‰<鉎<é‰<é‰<鉑<鉒<鉓<鉔"
+ "<鉕<鉖<鉗<鉘<鉙<鉚<鉛<鉜<é‰<鉞<鉟<鉠<鉡<鉢<鉣<鉤<鉥<鉦<鉧<鉨<鉩<鉪<鉫<鉬<鉭<鉮<鉯<鉰<鉱<鉲<鉳<鉴<éŠ<é’°"
+ "<é’±<é’²<é’³<é’´<é’µ<é’¶<é’·<é’¸<é’¹<é’º<é’»<é’¼<é’½<é’¾<é’¿<é“€<é“<é“‚<铃<é“„<é“…<铆<铇<铈<铉<é“Š<é“‹<é“Œ<é“<é“Ž<龯<䤡<䤢<䤣"
+ "<䥽<䥾<䥿<𨥥<𨥦<𨥧<𨥨<𨥩<𨥪<𨥫<𨥬<𨥭<𨥮<𨥯<𨥰<𨥱<𨥲<𨥳<𨥴<𨥵<𨥶<𨥷<𨥸<"
+ "𨥹<𨥺<𨥻<𨥼<𨥽<𨥾<𨥿<𨦀<ð¨¦<𨱃<𨱄<𨱅<𨱆<鈴<鈸<鉵<鉶<鉷<鉸<鉹<鉺<鉻<鉽<鉾<鉿<銀<éŠ<銂"
+ "<銃<銄<銅<銆<銇<銈<銉<銊<銋<銌<éŠ<銎<éŠ<銑<銒<銓<銔<銕<銖<銗<銘<銙<銚<銛<銜<éŠ<銞<銟<銠<銡<銢<銣<銤<銥"
+ "<銦<銧<銨<銩<銪<銫<銬<銭<銮<銯<銰<銱<é“<é“<é“‘<é“’<é““<é“”<é“•<é“–<é“—<铘<é“™<é“š<é“›<é“œ<é“<é“ž<é“Ÿ<é“ <é“¡<é“¢<é“£<铤"
+ "<铥<铦<铧<铨<铩<铪<铫<铬<铭<铮<铯<铰<铱<铲<铳<铴<铵<银<铷<䤤<䤥<䤦<䤧<䤨<䤩<䤪<䦀<𨦂<𨦃<𨦄<𨦅<"
+ "𨦆<𨦇<𨦈<𨦉<𨦊<𨦋<𨦌<ð¨¦<𨦎<ð¨¦<ð¨¦<𨦑<𨦒<𨦓<𨦔<𨦕<𨦖<𨦗<𨦘<𨦙<𨦚<𨦛<𨦜"
+ "<ð¨¦<𨦟<𨦠<𨦡<𨦢<𨦣<𨦤<𨦥<𨦦<𨦧<𨦨<𨦩<𨦪<𨦫<鉶<銲<銳<銴<銵<銶<銷<銸<銹<銺<銻<銼<銽"
+ "<銾<銿<é‹€<é‹<é‹‚<鋃<é‹„<é‹…<鋆<鋇<鋈<鋉<é‹Š<é‹‹<é‹Œ<é‹<é‹Ž<é‹<é‹<é‹‘<é‹’<é‹“<é‹”<é‹•<é‹–<é‹—<鋘<é‹™<é‹š<é‹›<é‹œ<é‹<é‹ž<é‹Ÿ"
+ "<é‹ <é‹¡<é‹¢<é‹£<鋤<é‹¥<鋦<鋧<鋨<é‹©<鋪<é‹«<鋬<é‹­<é‹®<鋯<é‹°<鋱<鋲<鋳<é‹´<鋵<鋶<铸<铹<铺<é“»<铼<铽<链<é“¿<销<é”<锂"
+ "<锃<锄<é”…<锆<锇<锈<锉<锊<锋<锌<é”<锎<é”<é”<锑<é”’<锓<é””<锕<䤫<䤬<䤭<䤮<䤯<䤰<䤱<䤲<ä¦<𨦬<𨦭<𨦮<𨦯"
+ "<𨦰<𨦱<𨦲<𨦳<𨦴<𨦵<𨦶<𨦷<𨦸<𨦹<𨦺<𨦻<𨦼<𨦽<𨦾<𨦿<𨧀<ð¨§<𨧂<𨧃<𨧄<𨧅<"
+ "𨧆<𨧇<𨧈<𨧉<𨧊<𨧋<𨧌<ð¨§<𨧎<ð¨§<ð¨§<𨧑<𨧒<𨧓<𨧔<𨧕<𨧖<𨧗<𨧘<𨧙<𨧚<𨧛<𨧜"
+ "<ð¨§<𨧞<𨧟<𨧠<𨧡<𨧢<𨧣<𨧤<𨧥<𨱇<𨱈<﨧<é‹—<鋘<鉼<é‹·<鋸<鋹<鋺<é‹»<鋼<鋽<鋾<é‹¿<錀<éŒ<錂<錃<"
+ "錄<錅<錆<錇<錈<錉<錊<錋<錌<éŒ<錎<éŒ<éŒ<錑<錒<錓<錔<錕<錖<錗<錘<錙<錚<錛<錜<éŒ<錞<錟<錠<錡<錢<錣<錤<錥<"
+ "錦<錧<錩<錪<錫<錬<錭<錮<錯<錰<錱<録<錳<錴<錵<錶<錷<錸<錹<錺<錻<錼<錽<錾<錿<é€<é<é‚<éƒ<é„<é…<é†<éˆ<é”–<"
+ "é”—<锘<é”™<锚<é”›<锜<é”<锞<锟<é” <锡<锢<锣<锤<锥<锦<锧<锨<锩<锪<锫<锬<é”­<é”®<锯<é”°<é”±<龬<䤳<䤴<䤵<䤶<𨧦<"
+ "𨧧<𨧨<𨧩<𨧪<𨧫<𨧬<𨧭<𨧮<𨧯<𨧰<𨧱<𨧲<𨧳<𨧴<𨧵<𨧶<𨧷<𨧸<𨧹<𨧺<𨧻<𨧼<𨧽"
+ "<𨧾<𨧿<𨨀<ð¨¨<𨨂<𨨃<𨨄<𨨅<𨨆<𨨇<𨨈<𨨉<𨨊<𨨋<𨨌<ð¨¨<𨨎<ð¨¨<ð¨¨<𨨑<𨨒<𨨓<"
+ "𨨔<𨨕<𨨖<𨨗<𨨘<𨨙<𨨚<𨨛<𨨜<ð¨¨<𨨞<𨨟<𨨠<𨨡<𨨢<𨨣<𨨤<𨨥<𨨦<𨨧<𨨨<𨨩<𨨪"
+ "<𨨫<𨨬<𨨭<𨨮<𨱉<𨱊<𨱋<𨱌<錄<﨨<鉼<錨<é‡<é‰<éŠ<é‹<éŒ<é<éŽ<é<é<é‘<é’<é“<é”<é•<é–<é—<é˜<é™"
+ "<éš<é›<éœ<é<éž<éŸ<é <é¡<é¢<é£<é¤<é¥<é¦<é§<é¨<é©<éª<é«<é¬<é­<é®<é¯<é°<é±<é²<é³<é´<éµ<é¶<é·<é¸<é¹<éº<é»"
+ "<é¼<é½<é¾<é¿<鎀<éŽ<鎂<鎃<鎄<鎅<鎆<鎇<锲<锳<é”´<锵<锶<é”·<锸<锹<锺<é”»<锼<锽<锾<锿<é•€<é•<é•‚<镃<é•„<é•…<䤷<䤸"
+ "<䤹<䤺<䤻<䤼<𨨯<𨨰<𨨱<𨨲<𨨳<𨨴<𨨵<𨨶<𨨷<𨨸<𨨹<𨨺<𨨻<𨨼<𨨽<𨨾<𨨿<𨩀<ð¨©<𨩂"
+ "<𨩃<𨩄<𨩅<𨩆<𨩇<𨩈<𨩉<𨩊<𨩋<𨩌<ð¨©<𨩎<ð¨©<ð¨©<𨩑<𨩒<𨩓<𨩔<𨩕<𨩖<𨩗<𨩘<"
+ "𨩙<𨩚<𨩛<𨩜<ð¨©<𨩞<𨩟<𨩠<𨩡<𨩢<𨩣<𨩤<𨩥<𨩦<𨩧<𨩨<𨩩<𨩪<𨩫<𨩬<𨩭<𨩮<𨩯"
+ "<𨩰<𨩱<𨩲<𨩳<𨩴<𨩵<𨩶<𨩷<𨩸<𨩹<𨩺<𨩻<𨩼<𨩽<𨩾<𨩿<𨪀<ð¨ª<𨪂<𨪃<𨪄<𨪅<"
+ "𨪆<𨱎<éŠ<鎈<鎉<鎊<鎋<鎌<éŽ<鎎<éŽ<éŽ<鎑<鎒<鎓<鎔<鎕<鎖<鎗<鎘<鎙<鎚<鎛<鎜<éŽ<鎞<鎟<鎠<鎡<鎢<鎣<鎤<鎥<"
+ "鎦<鎧<鎨<鎪<鎫<鎬<鎭<鎮<鎯<鎰<鎱<鎲<鎳<鎴<鎵<鎶<鎷<鎸<鎹<鎺<鎻<鎼<鎽<鎾<鎿<镆<镇<镈<镉<é•Š<é•‹<é•Œ<é•<é•Ž<"
+ "é•<é•<é•‘<é•’<é•“<é•”<é••<é¾²<䤽<䤾<䤿<䥀<ä¥<䥂<䥃<䥄<䥅<䥆<䥇<䦂<𨪇<𨪈<𨪉<𨪊<𨪋<𨪌<ð¨ª<𨪎<ð¨ª<"
+ "ð¨ª<𨪑<𨪒<𨪓<𨪔<𨪕<𨪖<𨪗<𨪘<𨪙<𨪚<𨪛<𨪜<ð¨ª<𨪞<𨪟<𨪠<𨪡<𨪢<𨪣<𨪤<𨪥<𨪦"
+ "<𨪧<𨪨<𨪩<𨪪<𨪫<𨪬<𨪭<𨪮<𨪯<𨪰<𨪱<𨪲<𨪳<𨪴<𨪵<𨪶<𨪷<𨪸<𨪹<𨪺<𨪻<𨪼<"
+ "𨪽<𨪾<𨪿<𨫀<ð¨«<𨫂<𨫃<𨫄<𨫅<𨫆<𨫇<𨫈<𨫉<𨫊<𨫋<𨫌<ð¨«<𨫎<ð¨±<ð¨±<鎩<é€<é<é‚<"
+ "éƒ<é„<é…<é†<é‡<éˆ<é‰<éŠ<é‹<éŒ<é<éŽ<é<é<é‘<é’<é“<é”<é•<é–<é—<é˜<é™<éš<é›<éœ<é<éž<éŸ<é <é¡<é¢<é£<é¤<"
+ "é¥<é¦<é§<é¨<é©<éª<é«<é¬<é­<é®<é¯<é°<é±<é²<é¹<é•–<é•—<镘<é•™<é•š<é•›<é•œ<é•<é•ž<é•Ÿ<é• <䥈<䥉<䥊<䥋<䥌<ä¥<䥎<ä¥<"
+ "ä¥<䥑<䥒<䥓<ð¨«<ð¨«<𨫑<𨫒<𨫓<𨫔<𨫕<𨫖<𨫗<𨫘<𨫙<𨫚<𨫛<𨫜<ð¨«<𨫞<𨫟<𨫠<𨫡<𨫢<"
+ "𨫣<𨫤<𨫥<𨫦<𨫧<𨫨<𨫩<𨫪<𨫫<𨫬<𨫭<𨫮<𨫯<𨫰<𨫱<𨫲<𨫳<𨫴<𨫵<𨫶<𨫷<𨫸<𨫹"
+ "<𨫺<𨫻<𨫼<𨫽<𨫾<𨫿<𨬀<ð¨¬<𨬂<𨬃<𨬄<𨬅<𨬆<𨬇<𨬈<𨬉<𨬊<𨬋<𨬌<ð¨±<𨱒<é¹<é³<"
+ "éµ<é¶<é·<é¸<éº<é»<é¼<é½<é¾<é¿<é€<é<é‚<éƒ<é„<é…<é†<é‡<éˆ<é‰<éŠ<é‹<éŒ<é<éŽ<é<é<é‘<é’<é“<é”<é•<é–<é—<"
+ "é˜<é™<éš<é›<éœ<é<éž<éŸ<é <é¡<é¢<é£<é¤<é¥<é¦<é§<é¨<é•¡<é•¢<é•£<镤<é•¥<镦<镧<镨<é•©<镪<é•«<䥔<䥕<䥖<䥗<䥘<䥙<"
+ "䥚<䥛<䥜<䦃<䦄<䦅<ð¨¬<𨬎<ð¨¬<ð¨¬<𨬑<𨬒<𨬓<𨬔<𨬖<𨬗<𨬘<𨬙<𨬚<𨬛<𨬜<ð¨¬<𨬞<𨬟<𨬠"
+ "<𨬡<𨬢<𨬣<𨬤<𨬥<𨬦<𨬧<𨬨<𨬩<𨬪<𨬫<𨬬<𨬭<𨬮<𨬯<𨬰<𨬱<𨬲<𨬳<𨬴<𨬵<𨬶<"
+ "𨬷<𨬸<𨬹<𨬺<𨬻<𨬼<𨬽<𨬾<𨬿<𨭀<ð¨­<𨭂<𨭃<𨭄<𨭅<𨭆<𨭇<𨭈<𨭉<𨭊<𨭋<𨭌<ð¨­"
+ "<𨭎<ð¨­<ð¨­<𨭑<𨭒<𨭓<𨭔<𨱑<𨱓<𨱔<é•<é´<é©<éª<é«<é¬<é­<é®<é¯<é°<é±<é²<é³<é´<éµ<é¶<é·<é¸<é¹"
+ "<éº<é»<é¼<é½<é¾<é¿<é‘€<é‘<镬<é•­<é•®<镯<é•°<镱<ä¥<䥞<䥟<䥠<䥡<䥢<䥣<䥤<䥥<䥦<𨬕<𨭕<𨭖<𨭗<𨭘<𨭙<"
+ "𨭚<𨭛<𨭜<ð¨­<𨭞<𨭟<𨭠<𨭡<𨭢<𨭣<𨭤<𨭥<𨭦<𨭧<𨭨<𨭩<𨭪<𨭫<𨭬<𨭭<𨭮<𨭯<𨭰"
+ "<𨭱<𨭲<𨭳<𨭴<𨭵<𨭶<𨭷<𨭸<𨭹<𨭺<𨭻<𨭼<𨭽<𨭾<𨭿<𨮀<ð¨®<𨮂<𨮃<𨮄<𨮅<𨮆<"
+ "𨮇<𨮈<𨮉<𨮊<𨮋<𨮌<ð¨®<𨮎<ð¨®<ð¨®<𨮑<𨱕<𨱖<é‘‚<鑃<é‘„<é‘…<鑆<鑇<鑈<鑉<é‘Š<é‘‹<é‘Œ<é‘<é‘Ž<é‘<é‘"
+ "<é‘‘<é‘’<é‘“<é‘”<鑧<镲<䥧<䥨<䥩<䥪<䥫<䥬<䥭<䥮<𨮒<𨮓<𨮔<𨮕<𨮖<𨮗<𨮘<𨮙<𨮚<𨮛<𨮜<ð¨®<𨮞<"
+ "𨮟<𨮠<𨮡<𨮢<𨮣<𨮤<𨮥<𨮦<𨮧<𨮨<𨮩<𨮪<𨮫<𨮬<𨮭<𨮮<𨮯<𨮰<𨮱<𨮲<𨮳<𨮴<𨮵"
+ "<𨮶<𨮷<é‘•<é‘–<é‘—<鑘<é‘™<é‘š<é‘›<é‘œ<é‘<é‘ž<é‘Ÿ<é‘ <é‘¡<é‘¢<é‘£<鑤<é‘¥<鑦<镳<é•´<䥯<䥰<䥱<䥲<䥳<䥴<𨮸<𨮹<𨮺<"
+ "𨮻<𨮼<𨮽<𨮾<𨮿<𨯀<ð¨¯<𨯂<𨯃<𨯄<𨯅<𨯆<𨯇<𨯈<𨯉<𨯊<𨯋<𨯌<ð¨¯<𨯎<ð¨¯<ð¨¯<𨯑"
+ "<𨯒<𨯓<𨯔<𨯕<𨯖<𨯗<𨯘<𨯙<𨯚<𨯛<𨯜<鑨<é‘©<鑪<é‘«<鑬<䥵<䥶<䥷<ð¨¯<𨯞<𨯟<𨯠<𨯡<𨯢<"
+ "𨯣<𨯤<𨯥<𨯦<𨯧<𨯨<𨯩<𨯪<𨯫<𨯬<𨯭<𨯮<𨯯<𨯰<𨯱<𨯲<𨯳<𨯴<𨯵<𨯶<𨯷<𨯸<𨯹"
+ "<é‘­<é‘®<鑯<é‘°<鑱<鑲<鑳<镵<镶<䥸<𨯺<𨯻<𨯼<𨯽<𨯾<𨯿<𨰀<ð¨°<𨰂<𨰃<𨰄<𨰅<𨰆<𨰇<𨰈<𨰱"
+ "<𨯺<é‘´<鑵<鑶<é‘·<鑸<鑹<鑺<𨰉<𨰊<𨰋<𨰌<ð¨°<𨰎<ð¨°<ð¨°<𨰑<𨰒<𨰓<𨰔<𨰕<𨰖<𨰗<𨰘<𨰙"
+ "<𨰚<𨰛<𨰜<ð¨°<é‘»<鑼<鑽<鑾<é‘¿<𨰞<𨰟<𨰠<𨰡<𨰢<𨰣<𨰤<𨰥<𨰦<𨰧<𨰨<é’€<é’<é’‚<䦆<𨰩<"
+ "𨰪<𨰫<𨰬<𨰭<𨰮<𨰯<𨰰<钃<钄<䥹<𨰲<𨰳<𨰴<𨰵<𨰶<𨰷<𨰸<𨰹<𨰺<𨰻<𨰼<𨰽<長<镸<长"
+ "<𨱗<𨱘<𨱙<镹<䦇<镺<𨱚<𨱛<𨱜<ð¨±<𨱞<𨱟<𨱠<𨱡<𨱢<𨱣<𨱤<𨱥<é•»<䦈<䦉<𨱦<𨱧<𨱨<"
+ "𨱩<𨱪<𨱫<𨱬<𨱭<𨱮<𨱯<𨱰<𨱱<䦊<𨱲<𨱳<𨱴<𨱵<𨱶<𨱷<𨱸<𨱹<𨱺<𨱻<𨱼<𨱽<𨱾<"
+ "𨱿<𨲀<ð¨²<𨲂<𨲃<𨲄<𨲅<𨲆<镼<𨲇<𨲈<𨲉<𨲊<𨲋<𨲌<ð¨²<𨲎<ð¨²<ð¨²<𨲑<𨲒<𡑺<𨲓<"
+ "𨲔<𨲕<𨲖<𨲗<𨲘<𨲙<𨲚<𨲛<𨲜<ð¨²<𨲞<𨲟<𨲠<𨲡<𨲢<𨲣<𨲤<䦋<𨲥<𨲦<𨲧<𨲨<𨲩<"
+ "𨲪<𨲫<𨲬<镽<𨲭<𨲮<𨲯<𨲰<𨲱<𨲲<𨲳<𨲴<𨲵<𨲶<𨲷<镾<𨲸<𨲹<𨲺<𨲻<𨲼<𨲽<𨲾<"
+ "𨲿<𨳀<ð¨³<𨳂<𨳃<𨳄<𨳅<𨳆<é–€<é—¨<𨳇<𨳈<é–<é–‚<é—©<𨳉<é–ƒ<é–„<é–…<é—ª<𨳊<𨳋<𨳌<ð¨³<𨳎<ð¨³"
+ "<é–†<é–‡<é–ˆ<é–‰<é–Š<é—«<é—¬<é—­<é—®<é—¯<䦌<ä¦<ð¨³<𨳑<𨳒<𨳓<𨳔<𨳕<𨳖<𨷿<𨸀<ð¨¸<é–‹<é–Œ<é–<é–Ž<é–<é–<é–‘"
+ "<é–’<é–“<é–”<é–•<é––<é–—<é—°<é—±<é—²<é—³<é—´<é—µ<é—¶<é—·<䦎<ä¦<ä¦<䦑<𨳗<𨳘<𨳙<𨳚<𨳛<𨳜<ð¨³<𨳞<𨳟<𨳠<"
+ "𨳡<𨳢<𨳣<𨳤<𨳥<𨳦<𨳧<𨳨<𨳩<𨳪<𨳫<𨳬<𨳭<𨳮<𨳯<𨳰<𨳱<𨳲<𨸂<𨸃<開<閘<閙<閚<"
+ "é–›<é–œ<é–<é–ž<é–Ÿ<é– <é—¸<é—¹<䦒<䦓<䦔<𨳳<𨳴<𨳵<𨳶<𨳷<𨳸<𨳹<𨳺<𨳻<𨳼<𨳽<𨳾<𨳿<𨴀<ð¨´<"
+ "𨴂<𨴃<𨴄<𨴅<𨴆<𨴇<𨴈<𨴉<𨴊<𨴋<𨴌<é–¡<é–¢<é–£<é–¤<é–¥<é–¦<é–§<é–¨<é–©<é–ª<é—º<é—»<é—¼<é—½<é—¾<é—¿<阀<é˜"
+ "<阂<䦕<䦖<䦗<䦘<䦙<䦚<䦛<䦶<ð¨´<𨴎<ð¨´<ð¨´<𨴑<𨴒<𨴓<𨴔<𨴕<𨴖<𨴗<𨴘<𨴙<𨴚<𨴛<𨴜<"
+ "ð¨´<𨴞<𨴟<𨴠<𨴡<𨴢<𨴣<𨴤<𨴥<𨴦<𨸄<𨸅<䦕<é–«<é–¬<é–­<é–®<é–¯<é–°<é–±<é–²<é–³<é–´<阃<阄<阅<阆<䦜<"
+ "ä¦<䦞<䦟<䦷<𨴧<𨴨<𨴩<𨴪<𨴫<𨴬<𨴭<𨴮<𨴯<𨴰<𨴱<𨴲<𨴳<𨴴<𨴵<𨴶<𨴷<𨴸<𨴹<𨴺<"
+ "𨴻<𨴼<𨴽<𨴾<𨴿<𨵀<ð¨µ<𨵂<𨵃<𨵄<𨵅<𨵆<𨵇<é–­<é–µ<é–¶<é–¸<é–¹<é–º<é–»<é–¼<é–½<é–¾<é–¿<é—€<é—<é—‚<阇"
+ "<阈<阉<阊<阋<阌<é˜<阎<é˜<é˜<䦠<䦡<䦢<䦣<䦤<䦥<䦦<䦧<䦨<𨵈<𨵉<𨵊<𨵋<𨵌<ð¨µ<𨵎<ð¨µ<ð¨µ<𨵑<"
+ "𨵒<𨵓<𨵔<𨵕<𨵖<𨵗<𨵘<𨵙<𨵚<𨵛<𨵜<ð¨µ<𨵞<𨵟<𨵠<𨵡<𨵢<𨵣<𨵤<é–·<é—ƒ<é—„<é—…<é—†<é—‡"
+ "<é—ˆ<é—‰<é—Š<é—‹<é—Œ<é—<é—Ž<é—<阑<阒<阓<阔<阕<䦩<䦪<䦫<䦬<䦭<䦮<䦯<䦸<𨵥<𨵦<𨵧<𨵨<𨵩<𨵪<𨵫<𨵬<"
+ "𨵭<𨵮<𨵯<𨵰<𨵱<𨵲<𨵳<𨵴<𨵵<𨵶<𨵷<𨵸<𨵹<𨵺<𨵻<𨵼<𨵽<𨵾<𨵿<𨸆<𨸇<𨸈<閷<"
+ "𨵷<é—<é—‘<é—’<é—“<é—”<é—•<é—–<é——<é—˜<阖<阗<阘<阙<𨶀<ð¨¶<𨶂<𨶃<𨶄<𨶅<𨶆<𨶇<𨶈<𨶉<𨶊<𨶋<𨶌<"
+ "ð¨¶<𨶎<ð¨¶<ð¨¶<𨶑<𨶒<𨶓<𨶔<𨶕<𨶖<𨶗<𨶘<𨶙<𨶚<𨶛<𨸉<𨸊<é—™<é—š<é—›<é—œ<é—<阚<䦰<𨶜<"
+ "ð¨¶<𨶞<𨶟<𨶠<𨶡<𨶢<𨶣<𨶤<𨶥<𨶦<𨶧<𨶨<𨶩<𨶪<𨶫<é—ž<é—Ÿ<é— <é—¡<䦱<𨶬<𨶭<𨶮<𨶯<"
+ "𨶰<𨶱<𨶲<𨶳<𨶴<𨶵<𨶶<𨶷<𨶸<𨶹<𨶺<𨶻<𨶼<𨶽<𨶾<𨶿<𨷀<ð¨·<𨷂<𨸋<𨸌<é—¢<é—£<é—¤"
+ "<é—¥<é—¦<阛<䦲<䦳<䦴<𨷃<𨷄<𨷅<𨷆<𨷇<𨷈<𨷉<𨷊<𨷋<𨷌<ð¨·<𨷎<ð¨·<ð¨·<𨷑<𨷒<𨷓<𨷕<"
+ "𨷖<𨷗<é—§<䦵<𨷔<𨷘<𨷙<𨷚<𨷛<𨷜<ð¨·<𨷞<ð¨¸<𨷟<𨷠<𨷡<𨷢<𨷣<𨷤<𨷥<𨷦<𨷧<𨷨<"
+ "𨷩<𨷪<𨷫<𨷬<𨷭<𨷮<𨷶<𨷯<𨷰<𨷱<𨷲<𨷳<𨷴<𨷵<𨷸<𨸎<𨷷<𨷹<𨷺<𨷻<𨷼<𨷽<𨷾"
+ "<阜<é˜<ð¨¸<阞<队<䦹<䦺<ð¨¸<𨸑<𨸒<𨸓<𨸔<𨸕<阠<阡<阢<阣<阤<䦻<𨸖<𨸗<𨸘<𨸙<阥<阦<阧<阨<阩<"
+ "阪<阫<阬<阭<阮<阯<阰<阱<防<阳<阴<阵<阶<䦼<䦽<䦾<䦿<䧀<ð ²<𨸚<𨸛<𨸜<ð¨¸<𨸞<𨸟<𨸠<𨸡<𨸢<𨸣"
+ "<𨸤<𨸥<𨸦<𨸧<𨸨<𨸩<阮<阷<阸<阹<阺<阻<阼<阽<阾<阿<陀<é™<陂<陃<附<é™…<陆<陇<陈<陉<ä§<䧂<䧃<𨸪<"
+ "𨸫<𨸬<𨸭<𨸮<𨸯<𨸰<𨸱<𨸲<𨸳<𨸴<𨸵<𨸶<𨸷<𨸸<𨸹<𨸺<𨸻<𨸼<𨸽<𨸾<𨸿<𨹀<陊<"
+ "陋<陌<é™<陎<é™<é™<陑<é™’<陓<é™”<陕<䧄<䧅<䧆<䧇<䧈<ð¨¹<𨹂<𨹃<𨹄<𨹅<𨹆<𨹇<𨹈<𨹉<𨹊<𨹋<𨹌<"
+ "ð¨¹<𨹎<ð¨¹<ð¨¹<𨹑<𨹒<𨹓<𨹔<𨹕<𨹖<𨹗<陋<é™<é™–<é™—<陘<é™™<é™›<陜<é™<陞<陟<é™ <陡<院<陣<除<陥<陦"
+ "<陧<陨<险<䧉<䧊<䧋<䧌<ä§<䧎<ä§<𨹘<𨹙<𨹚<𨹛<𨹜<ð¨¹<𨹞<𨹟<𨹠<𨹡<𨹢<𨹣<𨹤<𨹥<𨹦<𨹧"
+ "<𨹨<𨹩<𨹪<𨹫<𨹬<𨹭<𨹮<𨹯<𨹰<𨹱<𨹲<𨹳<陚<陪<陫<陬<陭<陮<陯<陰<陱<陲<陳<陴<陵<陶<陷<陸"
+ "<陹<険<ä§<䧑<䧒<䧓<䧔<䧕<䧖<𨹵<𨹶<𨹷<𨹸<𨹹<𨹺<𨹻<𨹼<𨹽<𨹾<𨹿<𨺀<ð¨º<𨺂<𨺃<𨺄<"
+ "𨺅<𨺆<𨺇<𨺈<𨺉<𨺊<𨺋<𨺌<ð¨º<𨺎<ð¨º<ð¨º<𨺑<𨺒<𨺓<𨺔<𨺕<𨺖<𨺗<𨺘<𨺙<𨺚<𨺛"
+ "<𨺜<ð¨º<陵<陸<é™»<陼<陽<陾<陿<隀<éš<éš‚<隃<éš„<éš…<隆<隇<隈<隉<隊<éš‹<隌<éš<階<éš<éš<䧗<䧘<䧙<𨺞<𨺟<"
+ "𨺠<𨺡<𨺢<𨺣<𨺤<𨺥<𨺦<𨺧<𨺨<𨺩<𨺪<𨺫<𨺬<𨺭<𨺮<𨺯<𨺰<𨺱<𨺲<𨺳<𨺴<𨺵<𨺶"
+ "<𨺷<𨺸<𨺹<𨺺<𨺻<𨺼<𨺽<𨺾<𨺿<隆<陼<éš‘<éš’<éš“<éš”<éš•<éš–<éš—<隘<éš™<䧚<䧛<䧜<ä§<䧞<䧟<𨻀<ð¨»<"
+ "𨻂<𨻃<𨻄<𨻅<𨻆<𨻇<𨻈<𨻉<𨻊<𨻋<𨻌<ð¨»<𨻎<ð¨»<ð¨»<𨻑<𨻒<𨻓<𨻔<𨻕<𨻖<𨻗<𨻘"
+ "<𨻙<𨻚<𨻛<𨻜<ð¨»<𨻞<𨻟<𨻠<𨻡<𨻢<𨻣<𨻤<𨻥<𨻦<𨻧<𨻨<𨻩<𨻪<𨻫<𨻬<𨻭<﨩<éšš<"
+ "éš›<éšœ<éš<éšž<隟<éš <éš¡<䧠<䧡<䧢<䧣<𨻮<𨻯<𨻰<𨻱<𨻲<𨻳<𨻴<𨻵<𨻶<𨻷<𨻸<𨻹<𨻺<𨻻<𨻼<"
+ "𨻽<𨻾<𨻿<𨼀<ð¨¼<𨼂<𨼃<𨼄<𨼅<𨼆<𨼇<𨼈<𨼉<隢<隣<隤<隥<䧤<䧥<䧦<䧩<𨼊<𨼋<𨼌<ð¨¼<"
+ "𨼎<ð¨¼<ð¨¼<𨼑<𨼒<𨼓<𨼔<𨼕<𨼖<𨼗<𨼘<𨼙<𨼚<𨼛<𨼜<ð¨¼<𨼞<𨼟<𨼠<𨼡<𨼢<𨼣<𨼤"
+ "<𨼥<𨼦<𨼧<𨼨<𨼩<隣<䧦<隦<隧<隨<隩<險<隫<䧧<䧨<䧪<𨼪<𨼫<𨼬<𨼭<𨼮<𨼯<𨼰<𨼱<𨼲<𨼳<"
+ "𨼴<𨼵<𨼶<𨼷<𨼸<𨼹<𨼺<𨼻<𨼼<𨼽<𨼾<隬<éš­<éš®<隯<éš°<éš±<éš²<䧫<䧬<䧭<𨼿<𨽀<ð¨½<𨽂<𨽃<"
+ "𨽄<𨽅<𨽆<𨽇<𨽈<𨽉<𨽊<𨽋<𨽌<éš³<ð¨½<𨽎<ð¨½<ð¨½<𨽑<𨽒<𨽓<𨽔<𨽕<éš´<䧮<𨽖<𨽗<𨽘"
+ "<𨽙<𨽚<𨽛<𨽜<ð¨½<𨽞<𨽟<𨽠<𨽡<éšµ<䧯<𨽢<𨽣<𨽤<𨽥<䧰<𨽦<𨽧<𨽨<𨽩<𨽪<𨽫<𨽬<"
+ "𨽭<𨽮<𨽯<𨽰<𨽱<𨽲<𨽳<𨽴<𨽵<隶<𨽶<𨽷<𨽸<𨽹<𨽺<𨽻<隷<𨽼<𨽽<𨽾<隸<𨽿<隸<𨾀<"
+ "ð¨¾<𨾂<𨾃<𨾄<éš¹<隺<éš»<éš¼<éš½<éš¾<䧱<𨾅<𨾆<𨾇<éš¿<雀<䧲<䧳<𨾈<𨾉<𨾊<𨾋<𨾌<ð¨¾<𨾎<ð¨¾<"
+ "ð¨¾<𨾑<é›<雂<雃<雄<é›…<集<雇<雈<䧴<䧵<䧶<𨾒<𨾓<𨾔<𨾕<𨾖<𨾗<𨾘<𨾙<𨾚<𨾛<𨾜<ð¨¾<𨾞<"
+ "𨾟<雃<雉<雊<雋<雌<é›<雎<é›<䧷<䧸<䧹<䧺<𨾠<𨾡<𨾢<𨾣<𨾤<𨾥<𨾦<𨾧<𨾨<𨾩<𨾪<𨾫<𨾬<𨾭"
+ "<𨾮<𨾯<𨾰<𨾱<é›<雑<é›’<䧻<𨾲<𨾳<𨾴<𨾵<𨾶<𨾷<𨾸<𨾹<𨾺<𨾻<𨾼<𨾽<𨾾<𨾿<𨿀<ð¨¿"
+ "<𨿂<𨿃<𨿄<𨿅<𨿆<𨿇<𨿈<𨿉<𨿊<雓<䧼<䧽<𨿋<𨿌<ð¨¿<𨿎<ð¨¿<ð¨¿<𨿑<𨿒<𨿓<𨿔<𨿕<"
+ "𨿖<𨿗<𨿘<𨿙<𨿚<𨿛<𨿜<ð¨¿<𨿞<𨿟<é›”<雕<䧾<䧿<𨿠<𨿡<𨿢<𨿣<𨿤<𨿥<𨿦<𨿧<𨿨<𨿩<"
+ "𨿪<𨿫<𨿬<𨿭<𨿮<𨿯<𨿰<𨿱<𨿲<𨿳<𨿴<𨿵<𨿶<𨿷<𨿸<𨿹<𨿺<𨿻<𨿼<𨿽<𨿾<é›–<ä¨<䨂"
+ "<𨿿<ð©€€<ð©€<𩀂<𩀃<𩀄<ð©€…<𩀆<𩀇<𩀈<𩀉<𩀊<𩀋<𩀌<ð©€<𩀎<ð©€<ð©€<𩀑<ð©€’<𩀓<ð©€”<"
+ "𩀕<ð©€–<é›—<雘<é›™<雚<é››<雜<é›<雞<雟<é› <䨃<ð©€—<𩀘<ð©€™<𩀚<ð©€›<𩀜<ð©€<𩀞<𩀟<ð©€ <𩀡<ð©€¢<ð©€£<雡"
+ "<離<難<䨄<𩀤<𩀥<𩀦<𩀧<𩀨<𩀩<𩀪<𩀫<𩀬<𩀭<𩀮<𩀯<𩀰<𩀱<𩀲<𩀳<離<難<難<䨅<䨆<䨇<"
+ "ð©€´<ð©€µ<𩀶<ð©€·<𩀸<ð©€¹<𩀺<ð©€»<ð©€¼<ð©€½<ð©€¾<𩀿<ð©€<ð©<ð©‚<ð©ƒ<ð©„<ð©…<ð©†<雤<ð©‡<ð©ˆ<ð©‰<"
+ "ð©Š<ð©‹<ð©Œ<ð©<ð©Ž<ð©<ð©<ð©‘<ð©’<䨈<ð©“<ð©”<ð©•<ð©–<ð©—<ð©˜<ð©™<ð©š<ð©›<ð©œ<ð©<ð©ž<ð©Ÿ<"
+ "ð© <ð©¡<ð©¢<ð©£<ð©¤<ð©¥<ð©¦<雥<雦<ð©§<ð©¨<ð©©<ð©ª<ð©«<䨉<ð©¬<ð©­<ð©®<ð©¯<ð©°<ð©±<雧<ð©²<ð©³<"
+ "䨊<ð©´<ð©µ<雨<ð©¶<ð©·<ð©¸<雩<雪<雫<䨋<ð©¹<ð©º<ð©»<ð©¼<ð©½<ð©¾<ð©¿<ð©‚€<ð©‚<雬<é›­<é›®<雯<é›°<é›±<雲<"
+ "雳<䨌<ä¨<ð©‚‚<𩂃<ð©‚„<ð©‚…<𩂆<𩂇<𩂈<𩂉<ð©‚Š<ð©‚‹<ð©‚Œ<ð©‚<ð©‚Ž<ð©‚<ð©‚<ð©‚‘<é›´<雵<零<é›·<雸<雹<雺<"
+ "é›»<雼<雽<雾<䨎<ð©‚’<ð©‚“<ð©‚”<ð©‚•<ð©‚–<ð©‚—<𩂘<ð©‚™<ð©‚š<ð©‚›<ð©‚œ<ð©‚<ð©‚ž<ð©‚Ÿ<ð©‚ <ð©‚¡<é›·<零<雿<需<éœ<"
+ "ä¨<ä¨<䨑<䨒<䨓<䨔<䨕<䨖<ð©‚¢<ð©‚£<𩂤<ð©‚¥<𩂦<𩂧<𩂨<ð©‚©<𩂪<ð©‚«<𩂬<ð©‚­<ð©‚®<𩂯<ð©‚°<ð©‚±<ð©‚²<"
+ "ð©‚³<ð©‚´<ð©‚µ<𩂶<霂<霃<霄<霅<霆<震<霈<霉<霊<䨗<䨘<䨙<ð©‚·<𩂸<ð©‚¹<𩂺<ð©‚»<ð©‚¼<ð©‚½<ð©‚¾<ð©‚¿<𩃀<ð©ƒ"
+ "<𩃂<𩃃<𩃄<𩃅<𩃆<𩃇<𩃈<𩃉<𩃊<𩃋<𩃌<ð©ƒ<𩃎<ð©ƒ<ð©ƒ<𩃑<霋<霌<éœ<霎<éœ<éœ<霑<霒<霓<霔"
+ "<霕<霖<霗<䨚<䨛<䨜<ä¨<𩃒<𩃓<𩃔<𩃕<𩃖<𩃗<𩃘<𩃙<𩃚<𩃛<𩃜<ð©ƒ<𩃞<𩃟<𩃠<𩃡<𩃢<𩃣"
+ "<𩃤<𩃥<𩃦<𩃧<𩃨<𩃩<𩃪<𩃫<𩃬<𩃭<𩃮<𩃯<𩃰<𩃱<𩃲<𩃳<𩃴<霘<霙<霚<霛<霜<éœ<霞<霟<"
+ "霠<䨞<䨟<䨠<䨡<䨢<䨣<䨤<𩃵<𩃶<𩃷<𩃸<𩃹<𩃺<𩃻<𩃼<𩃽<𩃿<ð©„€<ð©„<ð©„‚<𩄃<ð©„„<ð©„…<𩄆<"
+ "𩄇<𩄈<𩄉<ð©„Š<ð©„‹<ð©„Œ<ð©„<ð©„Ž<ð©„<ð©„<ð©„‘<ð©„’<ð©„“<ð©„”<ð©„•<ð©„–<霡<霢<霣<霤<霥<䨥<䨦<䨧<䨨<䨩<"
+ "䨪<𩃾<ð©„—<𩄘<ð©„™<ð©„š<ð©„›<ð©„œ<ð©„<ð©„ž<ð©„Ÿ<ð©„ <ð©„¡<ð©„¢<ð©„£<𩄤<ð©„¥<𩄦<𩄧<𩄨<ð©„©<𩄪<ð©„«<"
+ "𩄬<𩄭<𩄯<𩄰<𩄱<𩄲<𩄳<𩄴<𩄵<𩄶<𩄷<𩄸<𩄹<𩄺<霣<霦<霧<霨<霩<霪<霫<霬<霭<䨫<䨬<䨭<䨮<"
+ "䨯<ð©„»<ð©„¼<ð©„½<ð©„¾<ð©„¿<ð©…€<ð©…<ð©…‚<ð©…ƒ<ð©…„<ð©……<ð©…†<ð©…‡<ð©…ˆ<ð©…‰<ð©…Š<ð©…‹<ð©…Œ<ð©…<ð©…Ž<ð©…<ð©…<"
+ "ð©…‘<ð©…’<ð©…“<ð©…”<ð©…•<ð©…–<ð©…—<ð©…˜<ð©…™<ð©…š<ð©…›<ð©…œ<ð©……<霮<霯<霰<霱<露<霳<霴<䨰<䨱<ð©…<ð©…ž<ð©…Ÿ<ð©… "
+ "<ð©…¡<ð©…¢<ð©…£<ð©…¤<ð©…¥<ð©…¦<ð©…§<ð©…¨<ð©…©<ð©…ª<ð©…«<ð©…¬<ð©…­<ð©…®<ð©…¯<ð©…°<ð©…±<ð©…²<ð©…³<ð©…´<ð©…µ<ð©…¶<"
+ "ð©…·<ð©…¸<ð©…¹<ð©…º<ð©…»<露<霵<霶<霷<霸<霹<霺<霻<ð©…¼<ð©…½<ð©…¾<ð©…¿<𩆀<ð©†<𩆂<𩆃<𩆄<𩆅<𩆆<𩆇<"
+ "𩆈<𩆉<𩆊<𩆋<𩆌<ð©†<𩆎<ð©†<ð©†<霼<霽<霾<霿<é€<䨲<䨳<䨴<𩆑<𩆒<𩆓<𩆔<𩆕<𩆖<𩆗<𩆘<"
+ "𩆙<𩆚<𩆛<𩆜<ð©†<𩆞<𩆟<𩆠<𩆡<𩆢<𩆣<é<䨵<䨶<𩆤<𩆥<𩆦<𩆧<𩆨<𩆩<𩆪<𩆫<𩆬<é‚<"
+ "éƒ<é„<é…<é†<é‡<éˆ<䨷<𩆭<𩆮<𩆯<𩆰<𩆱<𩆲<𩆳<𩆴<éˆ<é‰<䨸<𩆵<𩆶<𩆷<𩆸<𩆹<𩆺<𩆻<𩆼<"
+ "𩆽<𩆾<éŠ<𩆿<𩇀<ð©‡<𩇂<𩇃<𩇄<𩇅<𩇆<𩇇<é‹<éŒ<é<éŽ<䨹<𩇈<𩇉<é<𩇊<𩇋<𩇌<ð©‡<𩇎<"
+ "ð©‡<ð©‡<𩇑<䨺<𩇒<é<𩇓<𩇔<䨻<é‘<é’<𩇕<é“<é”<𩇖<𩇗<é•<é–<𩇘<𩇙<𩇚<𩇛<é–<é–<é—<é˜<é™<"
+ "𩇜<éš<é›<éœ<ð©‡<𩇞<𩇟<𩇟<é<𩇠<𩇡<𩇢<𩇣<䨼<𩇤<𩇥<éž<𩇦<𩇧<𩇨<䨽<䨾<𩇩<𩇪<𩇫<"
+ "𩇬<éŸ<䨿<𩇭<𩇮<𩇯<𩇰<𩇱<𩇲<𩇳<𩇴<𩇵<𩇶<𩇷<é <ä©€<𩇸<𩇹<𩇺<𩇻<𩇼<𩇽<é¡<ä©<𩇾"
+ "<𩇿<𩈀<ð©ˆ<𩈂<é¢<é£<ð š‘<𩈃<𩈄<𩈅<ä©‚<䩃<ä©„<𩈆<𩈇<𩈈<𩈉<𩈊<𩈋<𩈌<é¤<ä©…<䩆<䩇<ð©ˆ<"
+ "𩈎<ð©ˆ<ð©ˆ<𩈑<𩈒<𩈓<𩈔<𩈕<𩈖<𩈗<𩈘<é¥<𤎂<𩈙<𩈚<𩈛<𩈜<ð©ˆ<𩈞<𩈟<𩈠<𩈚<é¦<䩈"
+ "<䩉<𩈡<𩈢<𩈣<𩈤<𩈥<𩈦<𩈧<𩈨<𩈩<𩈪<䩊<𩈫<𩈬<𩈭<𩈮<𩈯<𩈰<𩈱<𩈲<𩈳<𩈴<𩈵<"
+ "𩈶<𩈷<𩈸<𩈹<𩈺<ä©‹<𩈻<𩈼<𩈽<𩈾<𩈿<𩉀<é§<ä©Œ<ä©<ð©‰<𩉂<𩉃<𩉄<𩉅<𩉆<𩉇<𩉈<𩉉<"
+ "ä©Ž<𩉊<𩉋<é¨<𩉌<ð©‰<𩉎<ð©‰<ð©‰<ä©<𩉑<𩉒<𩉓<𩉔<𩉕<𩉖<𩉗<𩉘<𩉙<𩉚<é©<éª<𩉛<𩉜<é«"
+ "<é¬<é­<é®<é¯<é°<é±<ä©<ä©‘<ä©’<ð©‰<𩉞<𩉟<𩉠<é²<é³<é´<éµ<é¶<é·<é¸<é¹<ä©“<ä©”<ä©•<ä©–<ä©—<䩘<𩉡<𩉢<𩉣<"
+ "𩉤<𩉥<𩉦<𩉧<𩉨<𩉩<𩉪<𩉫<𩉬<𩉭<𩉮<𩉯<𩉰<𩉱<𩉲<𩉳<𩉴<𩉵<𩉶<𩉷<éº<é»<é¼<é½<"
+ "é¾<é¿<鞀<éž<éž‚<鞃<éž„<éž…<鞆<ä©™<ä©š<ä©›<ä©œ<ä©<ä©ž<𩉸<𩉹<𩉺<𩉻<𩉼<𩉽<𩉾<𩉿<ð©Š€<ð©Š<ð©Š‚<𩊃<ð©Š„"
+ "<ð©Š…<𩊆<𩊇<𩊈<𩊉<ð©ŠŠ<ð©Š‹<ð©ŠŒ<ð©Š<ð©ŠŽ<ð©Š<鞇<鞈<鞉<鞊<éž‹<鞌<éž<鞎<éž<éž<éž‘<éž’<ä©Ÿ<ð©Š<ð©Š‘<ð©Š’"
+ "<ð©Š“<ð©Š”<ð©Š•<ð©Š–<ð©Š—<𩊘<ð©Š™<ð©Šš<ð©Š›<ð©Šœ<ð©Š<ð©Šž<ð©ŠŸ<ð©Š <ð©Š¡<ð©Š¢<ð©Š£<𩊤<ð©Š¥<𩊦<𩊧<𩊨<éž“"
+ "<鞔<鞕<鞖<鞗<鞘<鞙<䩠<䩡<䩢<䩣<䩤<䩥<䩦<䩧<𩊩<𩊪<𩊫<𩊬<𩊭<𩊮<𩊯<𩊰<𩊱<𩊲<𩊳<𩊴<𩊵<"
+ "𩊶<ð©Š·<𩊸<𩊹<𩊺<ð©Š»<𩊼<𩊽<𩊾<éžš<éž›<éžœ<éž<éžž<鞟<éž <éž¡<䩨<ä©©<䩪<ä©«<䩬<ä©­<ä©®<ð©Š¿<ð©‹€<ð©‹<ð©‹‚"
+ "<𩋃<ð©‹„<ð©‹…<𩋆<𩋇<𩋈<𩋉<ð©‹Š<ð©‹‹<ð©‹Œ<ð©‹<ð©‹Ž<ð©‹<ð©‹<ð©‹‘<ð©‹’<ð©‹“<ð©‹”<ð©‹•<ð©‹–<ð©‹—<𩋘<"
+ "ð©‹™<ð©‹š<ð©‹›<ð©‹œ<ð©‹<ð©‹ž<ä©®<鞢<鞣<鞤<鞥<鞦<鞧<鞨<éž©<鞪<éž«<鞬<éž­<éž®<鞯<éž°<䩯<ä©°<䩱<䩲<䩳<ä©´<䩵<ð©‹Ÿ<"
+ "𩋠<𩋡<𩋢<𩋣<𩋤<𩋥<𩋦<𩋧<𩋨<𩋩<𩋪<𩋫<𩋬<𩋭<𩋮<𩋯<𩋰<𩋱<𩋲<𩋳<𩋴<𩋵<𩋶"
+ "<ð©‹·<𩋸<ð©‹¹<𩋺<ð©‹»<ð©‹¼<ð©‹½<ð©‹¾<ð©‹¿<𩌀<ð©Œ<𩌂<éž±<éž²<éž³<éž´<éžµ<鞶<éž·<䩶<ä©·<䩸<䩹<䩺<ä©»<𥌕<𩌃"
+ "<𩌄<𩌅<𩌆<𩌇<𩌈<𩌉<𩌊<𩌋<𩌌<ð©Œ<𩌎<ð©Œ<ð©Œ<𩌑<𩌒<𩌓<𩌔<𩌕<𩌖<𩌗<𩌘<𩌙<"
+ "𩌚<𩌛<𩌜<ð©Œ<𩌞<𩌟<𩌠<𩌡<𩌢<𩌣<𩌤<𩌥<䩶<鞸<éž¹<鞺<éž»<䩼<䩽<䩾<𩌦<𩌧<𩌨<𩌩<𩌪<"
+ "𩌫<𩌬<𩌭<𩌮<𩌯<𩌰<𩌱<𩌲<𩌳<𩌴<𩌵<𩌶<𩌷<𩌸<𩌹<𩌺<𩌻<𩌼<𩌽<𩌾<𩌿<ð©€<ð©"
+ "<ð©‚<éž¼<éž½<éž¾<éž¿<ä©¿<䪀<äª<䪂<䪃<䪄<ð©ƒ<ð©„<ð©…<ð©†<ð©‡<ð©ˆ<ð©‰<ð©Š<ð©‹<ð©Œ<ð©<ð©Ž<ð©<ð©<ð©‘"
+ "<ð©’<韀<éŸ<韂<韃<䪅<䪆<ð©“<ð©”<ð©•<ð©–<ð©—<ð©˜<ð©™<ð©š<ð©›<ð©œ<ð©<ð©ž<ð©Ÿ<ð© <ð©¡<ð©¢<ð©£<"
+ "ð©¤<韄<韅<䪇<䪈<ð©¥<ð©¦<ð©§<ð©¨<ð©©<ð©ª<ð©«<ð©¬<ð©­<ð©®<ð©¯<ð©°<ð©±<韆<韇<韈<䪉<ð©²<ð©³<ð©´<"
+ "ð©µ<ð©¶<ð©·<䪊<䪋<ð©¸<ð©¹<ð©º<ð©¼<ð©½<ð©¾<韉<䪌<äª<ð©¿<ð©Ž€<ð©Ž<ð©Ž‚<𩎃<ð©Ž„<ð©Ž…<𩎆<䪎<𩎇<𩎈"
+ "<𩎉<ð©ŽŠ<韊<ð©Ž‹<ð©ŽŒ<ð©Ž<ð©ŽŽ<ð©Ž<ð©Ž<ð©Ž‘<韋<韦<韌<韧<ð©Ž’<äª<ð©Ž“<ð©Ž”<ð©Ž•<ð©Ž–<ð©Ž—<ð©¼<éŸ<韎<韨<äª"
+ "<䪑<䪒<䪓<𩎘<ð©Ž™<ð©Žš<ð©Ž›<ð©Žœ<ð©Ž<ð©Žž<ð©ŽŸ<ð©Ž <ð©Ž¡<ð©Ž¢<ð©Ž£<ð©½<ð©¾<éŸ<éŸ<韑<𩎤<ð©Ž¥<𩎦<𩎧<"
+ "𩎨<𩎩<𩎪<𩎫<𩎬<𩎭<𩎮<韒<䪔<𩎯<𩎰<𩎱<𩎲<𩎳<𩎴<𩎵<𩎶<𩎷<韓<韔<韕<韩<䪕<𩎸<𩎹<"
+ "𩎺<ð©Ž»<𩎼<𩎽<𩎾<ð©Ž¿<ð©€<ð©<ð©‚<ð©ƒ<ð©„<韖<韗<韘<韙<韚<韪<韫<䪖<䪗<䪘<ð©…<ð©†<ð©‡<ð©ˆ<ð©‰<"
+ "ð©Š<ð©‹<ð©Œ<ð©<ð©Ž<ð©¿<ð©€<韜<éŸ<韞<韟<韬<䪙<䪚<ð©<ð©<ð©‘<ð©’<ð©“<ð©”<ð©•<ð©–<ð©—<韛<韠<ð©˜"
+ "<ð©™<ð©š<ð©›<ð©œ<ð©<ð©ž<ð©Ÿ<韛<韠<韡<韢<䪛<ð© <ð©¡<ð©¢<ð©£<ð©¤<ð©¥<ð©¦<ð©§<韣<䪜<ð©¨<ð©©<ð©ª"
+ "<ð©«<ð©¬<ð©­<äª<ð©®<ð©¯<ð©°<ð©±<韤<韥<ð©²<ð©³<ð©´<ð©µ<ð©¶<ð©·<ð©¸<ð©¹<ð©º<ð©»<韭<韮<䪞<ð©<"
+ "ð©‚<韯<䪟<ð©ƒ<韰<ð©„<韱<䪠<ð©…<ð©†<ð©‡<ð©ˆ<韲<䪡<䪢<ð©‰<ð©Š<ð©Š<䪣<ð©‹<ð©<ð©Ž<䪤<ð©Œ<ð©<ð©<"
+ "ð©‘<ð©’<ð©“<䪥<ð©”<ð©•<ð©–<音<ç«Ÿ<ç« <䪦<䪧<䪨<ð©—<韴<韵<䪩<ð©˜<ð©™<韶<韷<䪪<ð©š<ð©›<ð©œ<ð©<ð©ž<"
+ "ð©Ÿ<ð© <ð©¡<ð©¢<ð©£<ð©¤<ð©¥<ð©¦<韸<䪫<䪬<ð©§<ð©¨<ð©©<ð©ª<ð©«<ð©¬<ð©­<ð©®<ð©¯<ð©°<韹<韺<䪭<ð©±"
+ "<ð©²<ð©³<ð©´<韻<韼<䪮<䪯<ð©µ<ð©¶<ð©·<ð©¸<韽<韾<響<ð©¹<ð©º<ð©»<ð©¼<ð©½<ð©¾<響<響<ð©¿<ð©‘€<ð©‘<䪰"
+ "<ð©‘‚<𩑃<ð©‘„<ð©‘…<𩑆<é €<𩑇<𩑈<𩑉<ð©‘Š<é <页<ð©‘‹<é ‚<é ƒ<é „<顶<é¡·<ð©‘Œ<ð©‘<ð©‘Ž<ð©‘<é …<é †<é ‡<é ˆ<é ‰"
+ "<顸<项<顺<é¡»<䪱<䪲<ð©‘<ð©‘‘<ð©‘’<ð©‘“<ð©‘”<ð©‘•<ð©‘–<ð©‘—<𩑘<䪲<é Š<é ‹<é Œ<é <é Ž<é <é <é ‘<é ’<é “<é ™<顼<顽<"
+ "顾<é¡¿<颀<é¢<颂<颃<预<䪳<䪴<䪵<ð©‘™<ð©‘š<ð©‘›<ð©‘œ<ð©‘<ð©‘ž<ð©‘Ÿ<ð©‘ <ð©‘¡<ð©‘¢<ð©‘£<𩑤<ð©‘¥<𩑦<𩑧<𩑨<"
+ "𩑩<𩑪<𩑫<𩑬<𩑭<𩑮<𩑯<頋<頋<頋<頔<頕<頖<頗<領<頚<颅<领<颇<颈<䪶<䪷<䪸<䪹<䪺<䪻<䪼<䪽<䪾<𩑰<"
+ "ð©‘±<ð©‘²<ð©‘³<ð©‘´<ð©‘µ<𩑶<ð©‘·<𩑸<ð©‘¹<𩑺<ð©‘»<ð©‘¼<ð©‘½<ð©‘¾<ð©‘¿<ð©’€<ð©’<ð©’‚<ð©’ƒ<ð©’„<ð©’…<ð©’†<ð©’‡"
+ "<ð©’ˆ<ð©’‰<ð©’Š<ð©’‹<ð©’Œ<ð©’<ð©’Ž<é ˜<é ›<é œ<é <é ž<é Ÿ<é  <é ¡<é ¢<é £<é ¦<é §<é ¨<é ©<é ª<é «<é ¬<颉<颊<颋<颌<é¢<颎<"
+ "é¢<䪿<ä«€<ä«<ä«‚<ð©’<ð©’<ð©’‘<ð©’’<ð©’“<ð©’”<ð©’•<ð©’–<ð©’—<ð©’˜<ð©’™<ð©’š<ð©’›<ð©’œ<ð©’<ð©’ž<ð©’Ÿ<ð©’ <ð©’¡<"
+ "ð©’¢<ð©’£<ð©’¤<ð©’¥<ð©’¦<ð©’§<ð©’¨<ð©’©<ð©’ª<ð©’«<ð©’¬<ð©’­<ð©’–<é ©<é ¤<é ¥<é ­<é ®<é ¯<é °<é ±<é ²<é ³<é ´<é µ<é ¶<é ·<é ¸"
+ "<é ¹<é º<é »<é ¼<é ½<é¢<频<颒<颓<颔<颕<颖<䫃<ä«„<ä«…<䫆<䫇<䫈<䫉<ä«Š<ð©’®<ð©’¯<ð©’°<ð©’±<ð©’²<ð©’³<ð©’´<ð©’µ<ð©’¶<"
+ "ð©’·<ð©’¸<ð©’¹<ð©’º<ð©’»<ð©’¼<ð©’½<ð©’¾<ð©’¿<ð©“€<ð©“<ð©“‚<𩓃<ð©“„<ð©“…<𩓆<𩓇<𩓈<𩓉<ð©“Š<ð©“‹<ð©“Œ<ð©“"
+ "<ð©“Ž<ð©“<ð©“<ð©“‘<ð©“’<ð©““<ð©“”<ð©“•<ð©“–<ð©“—<𩓘<ð©“™<ð©“š<ð©“›<ð©“œ<é »<é »<é ¿<é¡€<é¡<é¡‚<顃<é¡„<é¡…<顆<顇<"
+ "顈<顉<é¡Š<颗<ä«‹<ä«Œ<ä«<ä«Ž<ä«<ä«<ä«‘<ä«’<ä«“<ð©“<ð©“ž<ð©“Ÿ<ð©“ <ð©“¡<ð©“¢<ð©“£<𩓤<ð©“¥<𩓦<𩓧<𩓨<ð©“©<𩓪<"
+ "𩓫<𩓬<𩓭<𩓮<𩓯<𩓰<𩓱<𩓲<𩓳<𩓴<𩓵<𩓶<𩓷<𩓸<𩓹<𩓺<𩓻<𩓼<𩓽<𩓾<𩓿<𩖕<𩖖"
+ "<é ¾<é¡‹<é¡Œ<é¡<é¡Ž<é¡<é¡<é¡‘<é¡’<é¡“<é¡”<é¡•<题<颙<颚<颛<颜<é¢<ä«”<ä«•<ä«–<ä«—<䫘<ä«™<ä«š<ä«›<ä«œ<ä«<𩔀<ð©”<ð©”‚<𩔃"
+ "<ð©”„<ð©”…<𩔆<𩔇<𩔈<𩔉<𩔊<ð©”‹<𩔌<ð©”<𩔎<ð©”<ð©”<ð©”‘<ð©”’<ð©”“<ð©””<ð©”•<ð©”–<ð©”—<𩔘<é¡–<é¡—<"
+ "願<é¡™<é¡š<é¡›<é¡œ<é¡<é¡ž<颞<颟<颠<颡<ä«ž<ä«Ÿ<ä« <ä«¡<ä«¢<ä«£<䫤<ä«¥<䫦<䫧<ð©”™<𩔚<ð©”›<𩔜<ð©”<𩔞<𩔟<ð©” <ð©”¡"
+ "<𩔢<𩔣<𩔤<𩔥<𩔦<𩔧<𩔨<𩔩<𩔪<𩔫<𩔬<𩔭<𩔮<𩔯<𩔰<𩔱<𩔲<類<顟<顠<顡<顢<顣<䫨<䫩<"
+ "䫪<ä««<ð©”³<ð©”´<ð©”µ<𩔶<ð©”·<𩔸<ð©”¹<𩔺<ð©”»<ð©”¼<ð©”½<ð©”¾<ð©”¿<ð©•€<ð©•<ð©•‚<𩕃<ð©•„<ð©•…<𩕆<𩕇<"
+ "𩕈<顤<é¡¥<顦<顧<顨<颢<颣<䫬<ä«­<ä«®<䫯<ä«°<䫱<𩕉<ð©•Š<ð©•‹<ð©•Œ<ð©•<ð©•Ž<ð©•<ð©•<ð©•‘<ð©•’<ð©•“<ð©•”<ð©••<"
+ "ð©•–<ð©•—<𩕘<ð©•™<ð©•š<ð©•›<ð©•œ<ð©•<ð©•ž<é¡©<顪<é¡«<颤<䫲<䫳<ä«´<ð©•Ÿ<ð©• <ð©•¡<ð©•¢<ð©•£<𩕤<ð©•¥<𩕦<𩕧<"
+ "𩕨<𩕩<𩕪<𩕫<𩖗<顬<顭<顮<顯<颥<𩕬<𩕭<𩕮<𩕯<𩕰<𩕱<𩕲<𩕳<𩕴<𩕵<𩕶<𩕷<𩕸<𩕹<"
+ "𩕺<ð©•»<ð©•¼<ð©•½<é¡°<颦<䫵<䫶<ð©•¾<ð©•¿<ð©–€<ð©–<ð©–‚<ð©–ƒ<ð©–„<ð©–…<顱<顲<ä«·<ð©–†<ð©–‡<ð©–ˆ<颧<ð©–‰<ð©–Š<"
+ "ð©–‹<ð©–Œ<ð©–<ð©–Ž<顳<é¡´<ð©–<ð©–<ð©–‘<ð©–’<ð©–“<風<风<䫸<ð©–˜<ð©–™<颩<颪<é£<䫹<ð©–š<ð©–›<ð©–œ<ð©–<ð©–ž<ð©–Ÿ"
+ "<𩖠<𩖡<颫<颬<䫺<䫻<䫼<䫽<𩖢<𩖣<𩖤<𩖥<𩖦<𩖧<𩖨<𩖩<𩖪<𩖫<𩖬<𩖭<𩖮<𩖯<𩖱<𩖲<"
+ "ð©–³<颭<颮<颯<颰<颱<é£<飑<飒<䫾<ä«¿<䬀<ä¬<䬂<䬃<ð©–´<ð©–µ<ð©–¶<ð©–·<ð©–¸<ð©–¹<ð©–º<ð©–»<ð©–¼<ð©–½<ð©–¾<ð©–¿<"
+ "ð©—€<ð©—<ð©—‚<ð©—ƒ<𩙥<𩙦<ð©–¶<颲<颳<䬄<䬅<𠙬<ð©—„<ð©—…<ð©—†<ð©—‡<ð©—ˆ<ð©—‰<ð©—Š<ð©—‹<ð©—Œ<ð©—<ð©—Ž<ð©—<"
+ "ð©—<ð©—‘<ð©—’<颴<颵<䬆<䬇<䬈<䬉<䬊<ð©—“<ð©—”<ð©—•<ð©—–<ð©——<ð©—˜<ð©—™<ð©—š<ð©—›<ð©—œ<ð©—<ð©—ž<ð©—Ÿ<ð©— <ð©—¡<"
+ "ð©—¢<ð©—£<ð©—¤<ð©—¥<ð©—¦<ð©—§<𩙧<颶<颷<飓<䬋<䬌<ä¬<䬎<ä¬<ä¬<ð©—¨<ð©—©<ð©—ª<ð©—«<ð©—¬<ð©—­<ð©—®<ð©—¯<ð©—°<ð©—±"
+ "<ð©—²<ð©—³<ð©—´<ð©—µ<ð©—¶<ð©—·<ð©—¸<ð©—¹<ð©—º<ð©—»<ð©—¼<ð©—½<ð©—¾<ð©—¿<𩘀<ð©˜<𩘂<𩘃<𩘄<𩙨<ð©™©<𩙪<颸"
+ "<颹<颺<飔<飖<䬑<䬒<䬓<䬔<䬕<䬖<䬗<𩘅<𩘆<𩘇<𩘈<𩘉<𩘊<𩘋<𩘌<ð©˜<ð©˜<ð©˜<𩘑<𩘒<𩘓<𩘔<"
+ "𩘕<𩘖<𩘗<𩘘<𩘙<𩘚<𩘛<ð©™«<𩙬<颻<颼<颽<颾<颿<飀<飕<飗<䬘<䬙<䬚<𩘎<𩘜<ð©˜<𩘞<𩘟<𩘠<"
+ "𩘡<𩘢<𩘣<𩘤<𩘥<𩘦<𩘧<𩘨<𩘩<𩘪<𩘫<𩘬<ð©™­<ð©™®<é£<飂<飃<飄<飘<䬛<䬜<𩘭<𩘮<𩘯<𩘰<"
+ "𩘱<𩘲<𩘳<𩘴<𩘵<𩘶<𩘷<飅<飆<飇<飈<飉<飊<飙<飚<ä¬<𩘸<𩘹<𩘺<𩘻<𩘼<𩘽<𩘾<𩘿<𩙀<ð©™"
+ "<ð©™‚<𩙃<ð©™„<ð©™…<𩙆<𩙇<𩙯<飋<𩙈<𩙉<𩙊<ð©™‹<𩙌<ð©™<ð©™°<䬞<𩙎<ð©™<ð©™<䬟<ð©™‘<ð©™’<ð©™“<"
+ "ð©™”<ð©™•<ð©™–<ð©™—<𩙘<ð©™™<𩙚<ð©™›<𩙜<飌<é£<ð©™<𩙞<𩙟<ð©™ <ð©™¡<𩙢<𩙣<𩙤<飛<飞<ð©™±<ð©™²<ð©™³<"
+ "ð©™´<䬠<䬡<ð©™µ<𩙶<ð©™·<𩙸<ð©™¹<飜<𩙺<ð©™»<ð©™¼<ð©™½<é£<ð©™¾<食<飠<饣<ð ‹‘<ð©™¿<𩚀<ð©š<𩚃<ð©š‚<飡<飢"
+ "<飣<飤<饤<饥<䬢<ð©š„<ð©š…<𩚆<飢<飥<飦<飧<飨<饦<饧<䬣<䬤<䬥<𩚇<𩚈<𩚉<𩚊<ð©š‹<𩚌<ð©š<𩚎<ð©š<"
+ "ð©š<ð©š‘<ð©š’<ð©š“<ð©š”<飩<飪<飫<飬<飭<飮<飯<飰<飱<飲<饨<饩<饪<饫<饬<饭<饮<䬦<䬧<䬨<䬩<䬪<ð©š•<ð©š–<ð©š—<"
+ "𩚘<ð©š™<ð©šš<ð©š›<ð©šœ<ð©š<ð©šž<𩚟<ð©š <ð©š¡<𩚢<𩚣<𩚤<𩚥<𩚦<𩚧<𩟾<ð©Ÿ¿<ð© €<飯<飳<飴<飵<飶<飷"
+ "<飸<飹<飻<飼<飽<飾<飿<饯<饰<饱<饲<饳<饴<䬫<䬬<䬭<䬮<䬯<䬰<䬱<䬲<䬳<䬴<𩚨<𩚩<𩚪<𩚫<𩚬<𩚭<𩚮<"
+ "𩚯<ð©š°<ð©š±<ð©š²<ð©š³<ð©š´<ð©šµ<𩚶<ð©š·<𩚸<ð©š¹<𩚺<ð©š»<ð©š¼<ð©š½<ð©š¾<ð©š¿<𩛀<ð©›<ð©›‚<𩛃<ð©›„<ð©›…"
+ "<𩛆<𩛇<𩛈<ð© <ð© ‚<飼<䬳<飺<餀<é¤<餂<餃<餄<餅<餆<餇<餈<餉<養<餋<餌<é¤<餎<é¤<饵<饶<饷<饸<饹<饺<饻<"
+ "饼<䬵<䬶<䬷<䬸<䬹<䬺<䬻<𩛉<𩛊<ð©›‹<𩛌<ð©›<𩛎<ð©›<ð©›<ð©›‘<ð©›’<ð©›“<ð©›”<ð©›•<ð©›–<ð©›—<𩛘<ð©›™<"
+ "𩛚<ð©››<𩛜<ð© ƒ<é¤<餑<餒<餓<餔<餕<餖<餗<餘<餙<é¤<饽<饾<饿<馀<é¦<馂<䬼<䬽<䬾<䬿<ä­€<ä­<ä­‚<ð©›<𩛞<𩛟"
+ "<𩛠<𩛡<𩛢<𩛣<𩛤<𩛥<𩛦<𩛧<𩛨<𩛩<𩛪<𩛫<𩛬<𩛭<𩛮<𩛯<𩛰<𩛱<𩛲<𩛳<𩛴<𩛵<"
+ "𩛶<𩛷<𩛸<𩛹<𩠄<𩠅<𩠇<餚<餛<餜<餞<餟<餠<餡<餢<餣<餤<餥<餦<餧<館<餩<馃<馄<馅<馆<䭃<䭄<䭅<䭆<䭇"
+ "<𩛺<ð©›»<ð©›¼<ð©›½<ð©›¾<ð©›¿<𩜀<ð©œ<𩜂<𩜃<𩜄<𩜅<𩜆<𩜇<𩜈<𩜉<𩜊<𩜋<𩜌<ð©œ<𩜎<ð©œ<"
+ "ð©œ<𩜑<𩜒<𩜓<𩜔<𩜕<𩜖<𩜗<𩜘<𩜙<𩜚<𩜛<𩜜<ð©œ<𩜞<𩜟<𩜠<𩜡<𩜢<𩜤<𩜥<𩜦<𩜧"
+ "<𩜨<𩜩<𩜪<𩜫<𩜬<𩠆<𩠈<𩠉<館<餩<餪<餫<餬<餭<餮<餯<餰<餱<餲<餳<餴<餵<餷<馇<馈<馊<馋<䭈<䭉<䭊"
+ "<ä­‹<ä­Œ<ä­<ä­Ž<ä­<𩜣<𩜭<𩜮<𩜯<𩜰<𩜱<𩜲<𩜳<𩜴<𩜵<𩜶<𩜷<𩜸<𩜹<𩜺<𩜻<𩜼<𩜽<𩜾<"
+ "𩜿<ð©€<ð©<ð©‚<ð©ƒ<ð©„<ð©…<ð©†<ð©‡<ð©ˆ<ð©‰<ð©Š<ð©‹<ð©Œ<ð©<ð©Ž<ð©<ð©<ð©‘<ð©’<ð©“<ð©”<ð©•"
+ "<ð©–<ð©—<ð©˜<ð© Š<ð© ‹<餶<餸<餹<餺<餻<餼<餽<餾<餿<饀<é¥<饂<饃<馉<馌<é¦<馎<é¦<é¦<ä­<ä­‘<ä­’<ä­“<ä­”<ð©™<"
+ "ð©š<ð©›<ð©œ<ð©<ð©ž<ð©Ÿ<ð© <ð©¡<ð©¢<ð©£<ð©¤<ð©¥<ð©¦<ð©§<ð©¨<ð©©<ð©ª<ð©«<ð©¬<ð©­<ð©®<ð©¯<ð©°"
+ "<ð©±<ð©²<ð©³<ð©µ<ð©¶<ð©·<ð©¸<ð©¹<ð©º<ð©»<ð©¼<ð© Œ<饄<饅<饆<饇<饈<饉<馑<馒<ä­•<ä­–<ä­—<ð§ˆ<ð©´<ð©½<"
+ "ð©¾<ð©¿<𩞀<ð©ž<ð©ž‚<𩞃<ð©ž„<ð©ž…<𩞆<𩞇<𩞈<𩞉<𩞊<ð©ž‹<𩞌<ð©ž<𩞎<ð©ž<ð©ž<ð©ž‘<ð©ž’<ð©ž“<ð©ž”"
+ "<ð©ž•<ð©ž–<ð©ž—<𩞘<ð©ž™<ð©žš<ð©ž›<ð©žœ<ð©ž<ð©žž<𩞟<ð©ž <ð© <ð© Ž<饊<饋<饌<é¥<饎<é¥<é¥<饑<饒<饓<馓<馔<ä­˜"
+ "<䭙<䭚<䭛<䭜<䭪<𡓷<𩞡<𩞢<𩞣<𩞤<𩞥<𩞦<𩞧<𩞨<𩞩<𩞪<𩞫<𩞬<𩞭<𩞮<𩞯<𩞰<𩞱<𩞲<"
+ "ð©ž³<ð©ž´<ð©žµ<ð©ž·<𩞸<ð©ž¹<𩞺<ð©ž»<ð©ž¼<ð©ž½<ð© <饔<饕<饖<饗<饘<饙<ä­<ä­ž<ä­Ÿ<ä­ <𩞶<ð©ž¾<ð©ž¿<ð©Ÿ€<ð©Ÿ<"
+ "ð©Ÿ‚<𩟃<ð©Ÿ„<ð©Ÿ…<𩟆<𩟇<𩟈<𩟉<ð©ŸŠ<ð©Ÿ‹<ð©ŸŒ<ð©Ÿ<ð©ŸŽ<ð©Ÿ<ð©Ÿ<ð©Ÿ‘<ð©Ÿ’<饚<饛<饜<䉵<ä­¡<ä­¢<ä­£<ä­¤<"
+ "ð©Ÿ“<ð©Ÿ”<ð©Ÿ•<ð©Ÿ–<ð©Ÿ—<𩟘<ð©Ÿ™<ð©Ÿš<ð©Ÿ›<ð©Ÿœ<ð©Ÿ<ð©Ÿž<ð©ŸŸ<ð©Ÿ <ð©Ÿ¡<ð©Ÿ¢<ð©Ÿ£<ä­¥<𩟤<ð©Ÿ¥<𩟦<𩟧<𩟨<"
+ "ð©Ÿ©<𩟪<ð©Ÿ«<𩟬<é¥<ð©Ÿ­<ð©Ÿ®<𩟯<ð©Ÿ°<𩟱<𩟲<𩟳<ð©Ÿ´<𩟵<饞<饟<ä­¦<ä­§<𩟶<ä­¨<ð©Ÿ·<𩟸<𩟹<𩟺<饠<"
+ "饡<ä­©<ð©Ÿ»<饢<馕<𩟼<𩟽<首<ð© <馗<ð© ‘<ð© ’<ð© “<ð© ”<ð© •<ð© –<ð© —<ð© ˜<ð© ™<ä­«<ä­¬<ð© š<ð© ›<ð© œ<ð© <"
+ "𩠞<𩠟<𩠠<𩠡<𩠢<𩠣<𩠤<𩠥<𩠦<𩠧<馘<𩠨<𩠩<䭭<𩠪<𩠫<𩠬<𩠭<䭮<𩠯<𩠱<𩠲<𩠳<𩠴"
+ "<ð© µ<ð© ¶<ð© ·<ð© ¸<ð© ¹<香<ð© º<馚<ð© »<ð© ¼<ð© ½<馛<馜<é¦<ä­¯<ð© ¾<ð© ¿<ð©¡€<ð©¡<𩡃<ð©¡„<ð©¡‚<ð©¡…<𩡆<馞"
+ "<馟<馠<𩡇<𩡈<馡<馢<馣<ä­°<ä­±<ä­²<𩡉<ð©¡Š<ð©¡‹<ð©¡<馤<馥<ð©¡Œ<ð©¡<ð©¡Ž<ð©¡<ð©¡‘<ð©¡’<馦<馧<ð©¡“<ð©¡”<"
+ "ð©¡•<ð©¡–<ð©¡—<𩡘<馧<馨<ð©¡™<ð©¡š<ð©¡›<ð©¡œ<馩<ð©¡<ð©¡ž<ð©¡Ÿ<ð©¡ <ð©¡¡<ð©¡¢<ð©¡£<馪<𩡤<𥗶<ð©¡¥<馫<ä­³<𩡦"
+ "<馬<马<𩡧<𩡨<馭<馮<驭<䭴<𩡩<𩡪<𩡫<𩡬<𩡭<𩡮<𩡯<馯<馰<馱<馲<馳<馴<馵<驮<驯<驰<䭵<䭶<𩡰<"
+ "ð©¡±<ð©¡²<ð©¡³<ð©¡´<ð©¡µ<𩡶<馶<馷<馸<馹<馺<馻<馼<馽<馾<馿<駀<é§<駂<駃<駄<駅<駆<駇<驱<驲<驳<é©´<ä­·<ä­¸<ä­¹<"
+ "ä­º<ä­»<ä­¼<ä­½<ä­¾<ð©¡·<𩡸<ð©¡¹<𩡺<ð©¡»<ð©¡¼<ð©¡½<ð©¡¾<ð©¢€<ð©¢<𩢂<𩢃<𩢄<ð©¢…<𩢇<𩢈<𩢉<𩢊<𩢋<"
+ "𩢌<𩧦<駂<駈<駉<駊<駋<駌<é§<駎<é§<é§<駑<駒<駓<駔<駕<駖<駗<駘<駙<駚<駛<駜<é§<駞<駟<駠<驵<驶<é©·<驸<驹<"
+ "驺<é©»<驼<驽<驾<é©¿<骀<ä­¿<䮀<ä®<䮂<䮃<䮄<ä®…<ð©¡¿<𩢆<ð©¢<𩢎<ð©¢<ð©¢<𩢑<ð©¢’<𩢓<ð©¢”<𩢕<ð©¢–<ð©¢—<"
+ "𩢘<ð©¢™<𩢚<ð©¢›<𩢜<ð©¢<𩢞<𩢟<ð©¢ <𩢡<ð©¢¢<ð©¢£<𩢤<ð©¢¥<𩢦<𩢧<𩢨<𩢩<𩢪<𩢫<𩢬<ð©¢­<𩧧"
+ "<𩧨<𩧩<𩧪<𩧫<𩧬<𩧭<𩧯<駡<駢<駣<駤<駥<駦<駧<駨<駩<駪<駫<駬<駭<駮<駯<駰<駱<駲<éª<骂<骃<骄<骅<"
+ "骆<骇<骈<骉<䮆<䮇<䮈<䮉<䮊<䮋<䮌<ä®<䯃<ð©¢®<𩢯<ð©¢°<ð©¢±<ð©¢²<ð©¢³<ð©¢´<ð©¢µ<𩢶<ð©¢·<𩢸<ð©¢¹<𩢺<ð©¢»<"
+ "ð©¢¼<ð©¢½<ð©¢¾<𩢿<ð©£€<ð©£<𩣂<𩣃<𩣄<ð©£…<𩣆<𩣇<𩣈<𩣉<𩣊<𩣋<𩣌<ð©£<𩣎<ð©£<ð©£<𩣑<ð©£’"
+ "<𩣓<ð©£”<𩣕<𩧮<𩧰<𩧱<𩧲<𩧳<𩧴<𩧵<𩧶<駱<駴<駵<駶<駷<駸<駹<駺<駻<駼<駽<駾<駿<騀<é¨<騂<騃<"
+ "骊<骋<验<éª<骎<éª<䮎<ä®<ä®<䮑<ä®’<䯄<ð©£–<ð©£—<𩣘<ð©£™<𩣚<ð©£›<𩣜<ð©£<𩣞<𩣟<ð©£ <𩣡<ð©£¢<ð©££<𩣤"
+ "<ð©£¥<𩣦<𩣧<𩣨<𩣩<𩣪<𩣫<𩣬<𩤷<𩧷<𩧸<𩧹<𩧺<駾<駳<騄<騅<騆<騇<騈<騉<騊<騋<騌<é¨<騎<é¨<"
+ "é¨<騑<騒<験<éª<骑<骒<骓<骔<骕<骖<䮓<ä®”<䮕<ä®–<ä®—<䮘<ä®™<䮚<ä®›<ð©£­<ð©£®<𩣯<ð©£°<ð©£±<ð©£²<ð©£³<ð©£´<ð©£µ<"
+ "𩣶<ð©£·<𩣸<ð©£¹<𩣺<ð©£»<ð©£¼<ð©£½<ð©£¾<𩣿<𩤀<ð©¤<𩤂<𩤃<𩤄<𩤅<𩤆<𩤇<𩤈<𩤉<𩤊<𩤋<𩤌"
+ "<ð©¤<𩤎<ð©¤<ð©¤<𩤑<𩤒<𩤓<𩤔<𩤕<𩤖<𩤞<𩧻<𩧼<𩧽<騔<騕<騖<騗<騘<騙<騚<騛<騜<é¨<騞<騟<騠"
+ "<騡<騢<騣<騤<騥<騦<騧<騨<骗<骘<骙<骚<骛<䮜<ä®<䮞<䮟<ä® <䮡<䮢<𩤗<𩤘<𩤙<𩤚<𩤛<𩤜<ð©¤<𩤟<𩤠<"
+ "𩤡<𩤢<𩤣<𩤤<𩤥<𩤦<𩤧<𩤨<𩤩<𩤪<𩤫<𩤬<𩤭<𩤮<𩤯<𩤰<𩤱<𩤲<𩤳<𩤴<𩤵<𩤶<𩤸"
+ "<𩤹<𩤺<𩤻<𩤼<𩧾<𩧿<𩨀<ð©¨<𩨂<𩨃<𩨅<𩨆<𩨇<𩨈<𩨉<𩨊<騩<騪<騫<騬<騭<騮<騯<騰<騱<騲"
+ "<騳<騴<騵<騶<騷<騸<骜<éª<骞<骟<䮣<䮤<䮥<䮦<䮧<䮨<䮩<䯅<𩤽<𩤾<𩤿<ð©¥€<ð©¥<𩥂<𩥃<𩥄<ð©¥…<𩥆<"
+ "𩥇<𩥈<𩥉<𩥊<𩥋<𩥌<ð©¥<𩥎<ð©¥<ð©¥<𩥑<ð©¥’<𩥓<ð©¥”<𩥕<ð©¥–<ð©¥—<𩥘<ð©¥™<𩥚<ð©¥›<𩥜<ð©¥"
+ "<𩥞<𩥟<ð©¥ <𩥡<ð©¥¢<ð©¥£<𩥤<ð©¥¥<𩥦<𩥧<𩥨<𩥩<𩥪<𩨄<𩨋<𩨌<ð©¨<騹<騺<騻<騼<騽<騾<騿<é©€<"
+ "é©<é©‚<驃<é©„<é©…<驆<驇<骠<骡<骢<é¾­<䮪<䮫<䮬<ä®­<ä®®<䮯<ä®°<ä®±<𩥫<𩥬<ð©¥­<ð©¥®<𩥯<ð©¥°<ð©¥±<ð©¥²<ð©¥³<ð©¥´<"
+ "ð©¥µ<𩥶<ð©¥·<𩥸<ð©¥¹<𩥺<ð©¥»<ð©¥¼<ð©¥½<ð©¥¾<𩥿<𩦀<ð©¦<驈<驉<é©Š<é©‹<é©Œ<é©<é©Ž<é©<é©<é©‘<é©’<é©“<é©”<é©•<骣"
+ "<䮲<䮳<ä®´<䮵<䮶<𩦂<𩦃<𩦄<𩦅<𩦆<𩦇<𩦈<𩦉<𩦊<𩦋<𩦌<ð©¦<𩦎<ð©¦<ð©¦<𩦑<𩦒<𩦓<𩦔<"
+ "𩦕<𩦖<𩦗<𩦘<𩦙<𩦚<𩦛<𩦜<ð©¦<𩨎<ð©¨<é©–<é©—<驘<é©™<é©š<é©›<é©œ<ä®·<䮸<䮹<𩦞<𩦟<𩦠<𩦡<𩦢<"
+ "𩦣<𩦤<𩦥<𩦦<𩦧<𩦨<𩦩<𩦪<𩦫<𩦬<𩦭<𩦮<𩦯<𩦰<𩦱<𩦲<𩦳<𩦴<𩦵<é©<é©ž<é©Ÿ<骤<䮺<ä®»"
+ "<䮼<𩦶<𩦷<𩦸<𩦹<𩦺<𩦻<𩦼<𩦽<𩦾<𩦿<𩧀<ð©§<䮽<𩧂<𩧃<𩧄<𩧅<𩧆<𩧇<𩧈<𩧉<𩧊<"
+ "𩧋<𩧌<ð©§<𩧎<ð©¨<é© <é©¡<é©¢<é©£<骥<䮾<ð©§<ð©§<𩧑<𩧒<𩧓<驤<é©¥<驦<驧<骦<骧<é¾®<䮿<𩧔<𩧕<𩧖<"
+ "𩧗<驨<é©©<䯀<𩧘<𩧙<𩧚<𩧛<𩧜<ð©§<𩧞<驪<ä¯<𩧟<𩧠<驪<é©«<𩧡<𩧢<𩧣<𩧤<䯂<𩧥<骨<䯆<骩<䯇"
+ "<𩨑<𩨒<𩨓<骪<骫<骬<骭<骮<𩨔<𩨕<𩨖<𩨗<𩨘<𩨙<𩨚<𩨛<骯<骰<骱<䯈<䯉<𩨜<ð©¨<𩨞<𩨟<𩨠"
+ "<𩨡<𩨢<𩨣<𩨤<𩨥<𩨦<𩨧<𩨨<𩨩<𩨪<𩨫<骲<骳<骴<骵<骶<骷<䯊<䯋<䯌<ä¯<䯎<𩨬<𩨭<𩨮<𩨯<"
+ "𩨰<𩨱<𩨲<𩨳<𩨴<𩨵<𩨶<𩨷<𩨸<𩨹<𩨺<𩨻<𩨼<䯎<骸<骹<骺<骻<骼<ä¯<ä¯<䯑<䯒<䯓<䯔<𩨽<𩨾"
+ "<𩨿<ð©©€<ð©©<ð©©‚<𩩃<ð©©„<ð©©…<𩩆<𩩇<𩩈<骽<骾<䯕<䯖<䯗<䯘<䯙<䯚<𩩉<ð©©Š<ð©©‹<ð©©Œ<ð©©<ð©©Ž<ð©©<"
+ "ð©©<ð©©‘<ð©©’<ð©©“<ð©©”<ð©©•<ð©©–<骿<é«€<é«<䯛<䯜<ð©©—<𩩘<ð©©™<ð©©š<ð©©›<ð©©œ<ð©©<ð©©ž<ð©©Ÿ<ð©© <ð©©¡<ð©©¢<"
+ "ð©©£<𩩤<ð©©¥<𩩦<𩩧<𩩨<ð©©©<𩩪<ð©©«<𩩬<é«‚<髃<é«„<é«…<ä¯<䯞<䯟<䯠<ð©©­<ð©©®<𩩯<ð©©°<ð©©±<ð©©²<ð©©³<"
+ "ð©©´<ð©©µ<𩩶<ð©©·<𩩸<ð©©¹<𩩺<ð©©»<ð©©¼<ð©©½<ð©©¾<ð©©¿<髆<髇<髈<髉<é«Š<é«‹<é«Œ<䯡<𩪀<ð©ª<𩪂<𩪃<𩪄<"
+ "𩪅<𩪆<𩪇<𩪈<é«<é«Ž<é«<䯢<𩪉<𩪊<𩪋<𩪌<ð©ª<𩪎<ð©ª<ð©ª<𩪑<𩪒<𩪓<𩪔<𩪕<𩪖<é«<䯣<𩪗"
+ "<𩪘<𩪙<𩪚<𩪛<𩪜<ð©ª<𩪞<𩪟<é«‘<é«’<é«“<é«”<䯤<𩪠<𩪡<𩪢<𩪣<𩪤<𩪥<𩪦<𩪧<𩪨<𩪩<𩪪<"
+ "𩪫<髕<䯥<𩪬<𩪭<𩪮<𩪯<𩪰<𩪱<髖<䯦<𩪲<𩪳<𩪴<𩪵<𩪶<髗<𩪷<𩪸<𩪹<𩪺<𩪻<𩪼<𩪽<"
+ "𩪾<高<é«™<䯧<䯨<𩪿<ð©«€<é«š<䯩<ð©«<ð©«‚<𩫃<ð©«„<ð©«…<𩫆<𩫇<𩫈<𩫉<é«›<ð©«Š<ð©«‹<ð©«Œ<ð©«<ð©«Ž<ð©«<"
+ "ð©«<ð©«‘<ð©«’<ð©«“<ð©«”<ð©«•<ð©«–<ð©«—<𩫘<ð©«™<é«œ<ð©«š<ð©«›<ð©«œ<ð©«<䯪<ð©«ž<ð©«Ÿ<ð©« <ð©«¡<ð©«¢<ð©«£<𩫤<"
+ "ð©«¥<𩫦<é«<䯫<𩫧<é«ž<𩫨<ð©«©<𩫪<ð©««<𩫬<䯬<ð©«­<ð©«®<𩫯<ð©«°<ð©«±<ð©«²<ð©«³<é«Ÿ<é« <䯭<䯮<ð©«´<ð©«µ<"
+ "𩫶<ð©«·<𩫸<é«¡<é«¢<ð©«¹<𩫺<ð©«»<ð©«¼<ð©«½<ð©«¾<é«£<髤<é«¥<髦<髧<髨<é«©<髪<䯯<䯰<䯱<䯲<䯳<䯴<ð©«¿<𩬀<ð©¬<"
+ "𩬂<𩬃<𩬄<𩬅<𩬆<𩬇<𩬈<𩬉<𩬊<𩬋<𩬌<ð©¬<𩬎<ð©¬<ð©¬<é««<髬<é«­<é«®<髯<é«°<髱<髲<髳<é«´<䯵<䯶"
+ "<𩬑<𩬒<𩬓<𩬔<𩬕<𩬖<𩬗<𩬘<𩬙<𩬚<𩬛<𩬜<ð©¬<𩬞<𩬟<𩬠<𩬡<𩬢<𩬣<𩬤<𩬥<𩬦<"
+ "𩬧<𩬨<𩬩<𩬪<𩬫<𩬬<𩬭<𩬮<𩬯<髵<髶<髷<髸<髹<髺<髻<鬇<䯷<䯸<𩬰<𩬱<𩬲<𩬳<𩬴<𩬵<𩬶<"
+ "𩬷<𩬸<𩬹<𩬺<𩬻<𩬼<𩬽<𩬾<𩬿<ð©­€<ð©­<ð©­‚<ð©­ƒ<ð©­„<ð©­…<ð©­†<𩬰<髼<髽<髾<é«¿<鬀<é¬<鬂<䯹<䯺"
+ "<䯻<䯼<ð©­‡<ð©­ˆ<ð©­‰<ð©­Š<ð©­‹<ð©­Œ<ð©­<ð©­Ž<ð©­<ð©­<ð©­‘<ð©­’<ð©­“<ð©­”<ð©­•<ð©­–<ð©­—<ð©­˜<ð©­™<ð©­š<ð©­›<"
+ "ð©­œ<ð©­<鬃<鬄<鬅<鬆<鬈<䯽<䯾<䯿<ä°€<ä°<ä°‚<ä°ƒ<ð©­ž<ð©­Ÿ<ð©­ <ð©­¡<ð©­¢<ð©­£<ð©­¤<ð©­¥<ð©­¦<ð©­§<ð©­¨<ð©­©<ð©­ª"
+ "<ð©­«<ð©­¬<ð©­­<ð©­®<ð©­¯<ð©­°<ð©­±<ð©­²<ð©­³<ð©­´<ð©­µ<ð©­¶<ð©­·<ð©­¸<ð©­¹<鬉<鬊<鬋<鬌<é¬<鬎<é¬<ä°„<ä°…<ä°†<ä°‡<"
+ "ð©­º<ð©­»<ð©­¼<ð©­½<ð©­¾<ð©­¿<𩮀<ð©®<ð©®‚<𩮃<ð©®„<ð©®…<𩮆<𩮇<𩮈<𩮉<𩮊<ð©®‹<𩮌<ð©®<𩮎<ð©®<ð©®"
+ "<ð©®‘<ð©®’<ð©®“<ð©®”<ð©®•<é¬<鬑<鬒<鬓<ä°ˆ<ä°‰<ä°Š<ä°‹<ð©®–<ð©®—<𩮘<ð©®™<𩮚<ð©®›<𩮜<ð©®<𩮞<𩮟<ð©® <ð©®¡<"
+ "𩮢<𩮣<𩮤<𩮥<𩮦<𩮧<𩮨<ð©®©<𩮪<ð©®«<𩮬<ð©®­<ð©®®<鬒<鬒<鬔<鬕<鬖<鬗<鬘<é¬<ä°Œ<ä°<𩮯<ð©®°<ð©®±<"
+ "ð©®²<ð©®³<ð©®´<ð©®µ<𩮶<ð©®·<𩮸<ð©®¹<𩮺<ð©®»<ð©®¼<ð©®½<ð©®¾<ð©®¿<𩯀<ð©¯<𩯂<鬙<鬚<鬛<鬜<ä°Ž<𩯃<𩯄<"
+ "𩯅<𩯆<𩯇<𩯈<𩯉<𩯊<𩯋<𩯌<ð©¯<𩯎<ð©¯<ð©¯<𩯑<𩯒<𩯓<𩯔<𩯕<𩯖<𩯗<𩯘<𩯙<𩯚<鬞<"
+ "鬟<鬠<𩯛<𩯜<ð©¯<𩯞<𩯟<𩯠<𩯡<𩯢<𩯣<𩯤<𩯥<鬡<鬢<ä°<ä°<ä°‘<ä°’<𩯦<𩯧<𩯨<𩯩<𩯪<𩯫<"
+ "𩯬<𩯭<𩯮<𩯯<鬣<䰓<䰔<𩯰<𩯱<𩯲<𩯳<𩯴<𩯵<𩯶<𩯷<𩯸<𩯹<䰕<𩯺<𩯻<𩯼<𩯽<𩯾<𩯿<"
+ "ð©°€<鬤<ð©°<ð©°‚<ð©°ƒ<ð©°„<ð©°…<ð©°†<ð©°‡<ä°–<ð©°ˆ<ð©°‰<鬥<ð©°Š<ð©°‹<ð©°Œ<鬦<ð©°<ð©°Ž<ð©°<鬧<ð©°<鬨<ð©°‘<ð©°’"
+ "<鬩<ð©°“<ð©°”<鬪<ä°—<ð©°•<ä°˜<ð©°–<ð©°—<ð©°˜<鬫<ð©°™<ð©°š<ð©°›<鬬<鬭<ð©°œ<ð©°<ð©°ž<鬮<ð©°Ÿ<鬯<ð©° <ð©°¡<ð©°¢<"
+ "𩰣<𩰤<𩰥<𩰦<𩰧<𩰨<鬰<𩰩<𩰪<鬱<鬲<𩰫<𩰬<䰙<䰚<𩰭<𩰮<䰛<𩰯<𩰰<鬳<䰜<𩰱<𩰲<𩰳<"
+ "ð©°´<ð©°µ<ð©°¶<ð©°·<ð©°¸<鬴<ð©°¹<ð©°º<ð©°»<ð©°¼<ð©°½<鬵<鬶<ð©°¾<ð©°¿<𩱀<ð©±<𩱂<鬷<𩱃<𩱄<𩱅<𩱆<鬸<"
+ "𩱇<𩱈<𩱉<𩱊<𩱋<鬹<鬺<𩱌<ð©±<𩱎<ð©±<ð©±<𩱑<鬻<ä°<𩱒<𩱓<𩱔<𩱕<𩱖<𩱗<𩱘<𩱙<𩱚<"
+ "𩱛<𩱜<ð©±<𩱞<𩱟<𩱠<𩱡<𩱢<𩱣<ä°ž<ð©»<𩱤<𩱥<𩱦<𩱧<𩱨<𩱩<𩱪<𩱫<𩱬<𩱭<𩱮<𩱯<"
+ "𩱰<𩱱<𩱲<𩱳<𩱴<𩱵<𩱶<𩱷<𩱸<鬼<𩱹<𩱺<𩱻<𩱼<鬽<𩱽<𩱾<𩱿<𩲀<ð©²<𩲂<𩲃<𩲄<"
+ "𩲅<𩲆<𩲇<𩲈<𩲉<鬾<鬿<é­€<é­<é­‚<ä°Ÿ<𩲊<𩲋<𩲌<ð©²<𩲎<ð©²<ð©²<𩲑<𩲒<𩲓<𩲔<𩲕<𩲖<𩲗"
+ "<𩲘<𩲙<𩲚<𩲛<𩲜<ð©²<𩲞<𩲟<𩲠<é­ƒ<é­„<é­…<é­†<ä° <ä°¡<𩲡<𩲢<𩲣<𩲤<𩲥<𩲦<𩲧<𩲨<𩲩<"
+ "𩲪<𩲫<𩲬<𩲭<𩲮<𩲯<𩲰<𩲱<𩲲<𩲳<𩲴<𩲵<𩲶<𩲷<𩲸<𩲹<魇<䰢<䰣<𩲺<𩲻<𩲼<𩲽<𩲾"
+ "<𩲿<𩳀<ð©³<𩳂<𩳃<𩳄<𩳅<𩳆<𩳇<𩳈<𩳉<𩳊<𩳋<é­ˆ<é­‰<𩳌<ð©³<𩳎<ð©³<ð©³<𩳑<𩳒<𩳓<"
+ "𩳔<𩳕<𩳖<𩳗<𩳘<𩳙<𩳚<𩳛<𩳜<ð©³<𩳞<𩳟<𩳠<𩳡<é­Š<é­‹<é­Œ<é­<é­Ž<é­<ä°¤<ä°¥<ä°¦<ä°§<𩳢<𩳣<"
+ "𩳤<𩳥<𩳦<𩳧<𩳨<𩳩<𩳪<𩳫<𩳬<𩳭<𩳮<𩳯<𩳰<𩳱<𩳲<𩳳<𩳴<䰨<䰩<𩳵<𩳶<𩳷<𩳸<"
+ "𩳹<𩳺<𩳻<𩳼<𩳽<𩳾<𩳿<ð©´€<ð©´<ð©´‚<ð©´ƒ<ð©´„<ð©´…<é­<ä°ª<ð©´†<ð©´‡<ð©´ˆ<ð©´‰<ð©´Š<ð©´‹<ð©´Œ<ð©´<"
+ "ð©´Ž<ð©´<é­‘<é­’<é­“<é­”<ð©´<ð©´‘<ð©´’<ð©´“<ð©´”<ð©´•<ð©´–<ð©´—<ð©´˜<ð©´™<ð©´š<ð©´›<é­•<é­–<ä°«<ä°¬<ä°­<ð©´œ<ð©´<ð©´ž"
+ "<ð©´Ÿ<ð©´ <ð©´¡<ð©´¢<ð©´£<ð©´¤<ð©´¥<ð©´¦<ð©´§<ð©´¨<ð©´©<ð©´ª<ð©´«<ð©´¬<ð©´­<ä°®<ð©´®<ð©´¯<ð©´°<é­—<é­˜<é­™<ä°¯<ä°°<"
+ "ð©´±<ð©´²<ð©´³<ð©´´<ð©´µ<ð©´¶<ð©´·<ð©´¸<ð©´¹<ð©´º<ð©´»<ð©´¼<ð©´½<ð©´¾<ð©´¿<𩵀<ð©µ<𩵂<𩵃<𩵄<𩵅<𩵆<𩵇"
+ "<𩵈<𩵉<𩵊<ä°±<é­š<é±¼<𤋳<𩵋<ä°²<é­›<é­œ<é­<é­ž<é±½<ä°³<𩵌<ð©µ<𩵎<ð©µ<ð©µ<𩵑<𩵒<𩵓<é­Ÿ<é­ <é­¡<é­¢<"
+ "é±¾<ä°´<ä°µ<ä°¶<𩵔<𩵕<𩵖<𩵗<𩵘<𩵙<𩵚<𩵛<𩵜<ð©µ<𩵞<𩵟<𩶷<é­£<é­¤<é­¥<é­¦<é­§<é­¨<é­©<é­ª<é­«<é­¬<é­­"
+ "<é­®<é­¯<é­°<é­±<é­²<é­³<é­´<é­µ<é­¶<é­·<é­¸<é­¹<鱿<é²€<é²<鲂<鲃<ä°·<ä°¸<ä°¹<ä°º<ä°»<ä°¼<ä°½<ä°¾<ä²<𩵠<𩵡<𩵢<𩵣<𩵤<"
+ "𩵥<𩵦<𩵧<𩵨<𩵩<𩵪<𩵫<𩵬<𩵭<𩵮<𩵯<𩵰<𩵱<𩵲<𩵳<𩵴<𩵵<𩵶<𩵷<𩵸<𩵹<𩵺<𩵻"
+ "<𩵼<𩵽<𩵾<𩵿<𩶀<𩽹<𩽺<𩽻<é­¯<é­º<é­»<é­¼<é­½<é­¾<é­¿<鮀<é®<鮂<鮃<鮄<é®…<鮆<鮇<鮈<鮉<鮊<鮋<鮌<é®<鮎"
+ "<é®<é®<鮑<é®’<鮓<é®”<鮕<é®–<é®—<鮘<鮣<鲄<é²…<鲆<鲇<鲈<鲉<鲊<鲋<鲌<é²<鲎<é²<é²<ä°¿<ä±€<ä±<䱂<䱃<䱄<ä±…<䱆<䱇<䱈"
+ "<䱉<䲞<䲟<ð©¶<𩶂<𩶃<𩶄<𩶅<𩶆<𩶇<𩶈<𩶉<𩶊<𩶋<𩶌<ð©¶<𩶎<ð©¶<ð©¶<𩶑<𩶒<𩶓<𩶔<"
+ "𩶕<𩶖<𩶗<𩶘<𩶙<𩶚<𩶛<𩶜<ð©¶<𩶞<𩶟<𩶠<𩾀<é®™<鮚<é®›<鮜<é®<鮞<鮟<é® <鮡<鮢<鮤<鮥<鮦<鮧<鮨"
+ "<鮩<鮪<鮫<鮬<é®­<é®®<鮯<é®°<é®±<鮲<鮳<é®´<鮺<鲑<é²’<鲓<é²”<鲕<é²–<é²—<鲘<é²™<鲚<é²›<鲜<é²<鲞<鲟<䱊<䱋<䱌<ä±<䱎<"
+ "𩶡<𩶢<𩶣<𩶤<𩶥<𩶦<𩶧<𩶨<𩶩<𩶪<𩶫<𩶬<𩶭<𩶮<𩶯<𩶰<𩶱<𩶲<𩶳<𩶴<𩶵<𩶶<𩶸"
+ "<𩶹<𩶺<𩶻<𩶼<𩶽<𩶾<𩶿<ð©·€<ð©·<ð©·‚<ð©·ƒ<ð©·„<ð©·…<ð©·†<ð©·‡<ð©·ˆ<ð©·‰<ð©·Š<ð©·‹<ð©·Œ<𩽼<𩽽<"
+ "𩽾<𩽿<鮵<鮶<é®·<鮸<鮹<é®»<鮼<鮽<鮾<鮿<鯀<é¯<鯂<鯃<鯄<鯅<鯆<鯇<鯈<鯉<鯊<鯋<鯌<é¯<鯎<é¯<é¯<鯑<鯒<鯓<鯽<"
+ "é² <鲡<é²¢<é²£<鲤<é²¥<鲦<鲧<鲨<鲩<鲪<鲫<鲬<ä±<ä±<䱑<ä±’<䱓<ä±”<䱕<ä±–<ä±—<䱘<ð©·<ð©·Ž<ð©·<ð©·<ð©·‘<ð©·’<ð©·“<"
+ "ð©·”<ð©·•<ð©·–<ð©·—<ð©·˜<ð©·™<ð©·š<ð©·›<ð©·œ<ð©·<ð©·ž<ð©·Ÿ<ð©· <ð©·¡<ð©·¢<ð©·£<ð©·¤<ð©·¥<ð©·¦<ð©·§<ð©·¨<ð©·©<ð©·ª"
+ "<ð©·«<ð©·¬<ð©·­<ð©·®<ð©·¯<ð©·°<ð©·±<ð©·²<ð©·³<ð©·´<ð©·µ<ð©·¶<ð©¾<𩾂<𩾃<𩾄<𩾉<鯔<鯕<鯖<鯗<鯘<鯙<鯚<鯛<"
+ "鯜<é¯<鯞<鯟<鯠<鯡<鯢<鯣<鯤<鯥<鯦<鯧<鯨<鯩<鯪<鯫<鯬<鯭<鯮<鯯<鯰<鯱<鯲<鯳<鯴<鯵<鯻<é²­<é²®<鲯<é²°<é²±<é²²<é²³<"
+ "é²´<é²µ<鲶<é²·<鲸<é²¹<鲺<é²»<ä±™<䱚<ä±›<䱜<ä±<䱞<䱟<ä± <䱡<ä±¢<ä±£<䱤<ä±¥<䱦<䱧<䱨<䱩<䱪<ð©··<ð©·¸<ð©·¹<ð©·º<ð©·»<"
+ "ð©·¼<ð©·½<ð©·¾<ð©·¿<𩸀<ð©¸<𩸂<𩸃<𩸄<𩸅<𩸆<𩸇<𩸈<𩸉<𩸊<𩸋<𩸌<ð©¸<𩸎<ð©¸<ð©¸<𩸑<𩸒"
+ "<𩸓<𩸔<𩸕<𩸖<𩸗<𩸘<𩸙<𩸚<𩸛<𩸜<ð©¸<𩸞<𩸟<𩸠<𩸡<𩸢<𩸣<𩸤<𩸥<𩸦<𩸧<𩸨<"
+ "𩸩<𩸪<𩸫<𩸬<𩸭<𩸮<𩸯<𩸰<𩸱<𩸲<𩸳<𩸴<𩸵<𩸶<𩸷<𩸸<𩸹<𩸺<𩸻<𩸼<𩸽<𩾅<𩾆"
+ "<𩾇<𩾈<鯶<鯷<鯸<鯹<鯺<鯼<鯾<鯿<é°€<é°<é°‚<é°ƒ<é°„<é°…<é°†<é°‡<é°ˆ<é°‰<é°Š<é°‹<é°Œ<é°<é°Ž<é°<é°<é°‘<é°’<é°“<é°”<é°•<é°–"
+ "<é°—<é°˜<é°™<é°š<é°›<é° <é²¼<é²½<鲿<é³€<é³<鳂<鳃<鳄<é³…<鳆<鳇<鳈<鳉<鳊<鳋<䱫<䱬<ä±­<ä±®<䱯<ä±°<ä±±<ä±²<ä±³<ä±´<ä² <䲡<"
+ "𩸾<𩸿<𩹀<ð©¹<𩹂<𩹃<𩹄<𩹅<𩹆<𩹇<𩹈<𩹉<𩹊<𩹋<𩹌<ð©¹<𩹎<ð©¹<ð©¹<𩹑<𩹒<𩹓<𩹔"
+ "<𩹕<𩹖<𩹗<𩹘<𩹙<𩹚<𩹛<𩹜<ð©¹<𩹞<𩹟<𩹠<𩹡<𩹢<𩹣<𩹤<𩹥<𩹦<𩹧<𩹨<𩹩<𩹪<"
+ "𩹫<𩹬<𩹭<𩹮<𩹯<𩹰<𩾊<𩾋<é°œ<é°<é°ž<é°Ÿ<é°¡<é°¢<é°£<é°¤<é°¥<é°¦<é°§<é°¨<é°©<é°ª<é°«<é°¬<é°­<é°®<é°¯<é°°<é²¾<鳌<"
+ "é³<鳎<é³<é³<鳑<é³’<ä±µ<䱶<ä±·<䱸<ä±¹<䱺<ä±»<ä±¼<ä±½<ä²¢<ä²£<䲤<𩹱<𩹲<𩹳<𩹴<𩹵<𩹶<𩹷<𩹸<𩹹<𩹺<𩹻"
+ "<𩹼<𩹽<𩹾<𩹿<𩺀<ð©º<𩺂<𩺃<𩺄<𩺅<𩺆<𩺇<𩺈<𩺉<𩺊<𩺋<𩺌<ð©º<𩺎<ð©º<ð©º<𩺑<"
+ "𩺒<𩺓<𩺔<𩺕<𩺖<𩺗<𩺘<𩺙<𩺚<𩺛<𩺜<ð©º<𩺞<𩺟<𩺠<𩺡<𩺢<𩺣<𩺤<𩺥<𩺦<𩺧<𩺨"
+ "<𩺩<𩺪<𩺫<𩺬<é°±<é°²<é°³<é°´<é°µ<é°¶<é°·<é°¸<é°¹<é°º<é°»<é°¼<é°½<é°¾<é°¿<é±€<é±<鱂<鱃<鱄<é±…<鱆<鱇<鱈<鳓<é³”<鳕<é³–"
+ "<é³—<鳘<é³™<鳚<é³›<é· <ä±¾<䱿<ä²€<ä²<䲂<䲃<䲄<ä²…<䲆<䲇<䲈<𩺭<𩺮<𩺯<𩺰<𩺱<𩺲<𩺳<𩺴<𩺵<𩺶<𩺷<"
+ "𩺸<𩺹<𩺺<𩺻<𩺼<𩺽<𩺾<𩺿<𩻀<ð©»<ð©»‚<𩻃<ð©»„<ð©»…<𩻆<𩻇<𩻈<𩻉<𩻊<ð©»‹<𩻌<ð©»<𩻎"
+ "<ð©»<ð©»<ð©»‘<ð©»’<ð©»“<ð©»”<ð©»•<ð©»–<ð©»—<𩾌<é±€<鱉<鱊<鱋<鱌<é±<鱎<é±<é±<鱑<é±’<鱓<é±”<鱕<é±–<é±—<鱘<é±™<鱚"
+ "<é±›<鳜<é³<鳞<鳟<䲉<䲊<䲋<䲌<ä²<䲎<ä²<𩻘<ð©»™<𩻚<ð©»›<𩻜<ð©»<𩻞<𩻟<ð©» <ð©»¡<𩻢<𩻣<𩻤<𩻥<"
+ "𩻦<𩻧<𩻨<𩻩<𩻪<𩻫<𩻬<𩻭<𩻮<𩻯<𩻰<𩻱<𩻲<𩻳<𩻴<𩻵<𩻶<𩻷<𩻸<𩻹<𩻺<𩻻<𩻼"
+ "<ð©»½<ð©»¾<ð©»¿<𩼀<ð©¼<é±—<鱜<é±<鱞<鱟<é± <鱡<é±¢<é±£<鱤<é±¥<鱦<鱧<鱩<鱪<鱫<é³ <鳡<é³¢<é³£<ä²<䲑<ä²’<䲓<ä²”<䲕<"
+ "𩼂<𩼃<𩼄<𩼅<𩼆<𩼇<𩼈<𩼉<𩼊<𩼋<𩼌<ð©¼<𩼎<ð©¼<ð©¼<𩼑<𩼒<𩼓<𩼔<𩼕<𩼖<𩼗<𩼘"
+ "<𩼙<𩼚<𩼛<𩼜<ð©¼<𩼞<𩼟<𩼠<𩼡<𩼢<𩼣<𩼤<ð©¾<鱨<鱬<é±­<é±®<鱯<é±°<鳤<ä²–<ä²—<䲘<𩼥<𩼦<𩼧"
+ "<𩼨<𩼩<𩼪<𩼫<𩼬<𩼭<𩼮<𩼯<𩼰<𩼱<𩼲<𩼳<𩼴<𩼵<𩼶<𩼷<𩼸<𩼹<𩼺<鱱<鱲<鱳<鱴<鱵<"
+ "鱶<ä²™<𩼻<𩼼<𩼽<𩼾<𩼿<𩽀<ð©½<𩽂<𩽃<𩽄<𩽅<𩽆<𩽇<𩽈<𩽉<𩽊<𩽋<𩽌<𩾎<é±·<鱸<䲚<ä²›"
+ "<ð©½<𩽎<ð©½<ð©½<𩽑<𩽒<𩽓<𩽔<𩽕<𩽖<𩽗<𩽘<𩽙<𩽚<𩽛<𩽜<ð©½<𩽞<𩽟<𩽠<𩽡<𩽢<"
+ "𩽣<𩽤<𩽥<𩽦<鱹<𩽧<𩽨<𩽩<𩽪<𩽫<𩽬<𩽭<𩽮<𩽯<鱺<𩽰<𩽱<𩽲<𩽳<𩽴<𩽵<𩽶<𩽷<"
+ "𩽸<é±»<䲜<é³¥<鸟<鳦<ð©¾<ð©¾<𩾑<鳧<鳨<鳩<鳪<鳫<鳬<é³­<é³®<鳯<é³°<鸠<鸡<ä²¥<𩾒<𩾓<𩾔<𩾕<𩾖<𩾗<𩾘"
+ "<𩾙<𩾚<𩾛<𩾜<é³±<é³²<é³³<é³´<é³µ<鳶<鸢<鸣<鸤<䲦<䲧<䲨<䲩<䲪<䲫<ð©¾<𩾞<𩾟<𩾠<𩾡<𩾢<𩾣<𩾤<"
+ "𩾥<𩾦<𩾧<𩾨<𩾩<𩾪<𩾫<𩾬<𩾭<𩾮<𩾯<é³·<鳸<é³¹<鳺<é³»<é³¼<é³½<é³¾<鳿<é´€<é´<é´‚<é´ƒ<é´„<é´…<é´†<é´‡<é´ˆ"
+ "<é´‰<é´‹<é´Œ<é´<é´Ž<鸥<鸦<鸧<鸨<鸩<䲬<ä²­<ä²®<䲯<ä²°<ä²±<ä²²<ä²³<ä²´<ä²µ<䲶<ä²·<䲸<ä´“<𩾰<𩾱<𩾲<𩾳<𩾴<𩾵<"
+ "𩾶<𩾷<𩾸<𩾹<𩾺<𩾻<𩾼<𩾽<𩾾<𩾿<ð©¿€<ð©¿<ð©¿‚<𩿃<ð©¿„<ð©¿…<𩿆<𩿇<𩿈<𩿉<ð©¿Š<ð©¿‹<ð©¿Œ"
+ "<ð©¿<ð©¿Ž<ð©¿<ð©¿<ð©¿‘<ð©¿’<ð©¿“<ð©¿”<ð©¿•<ð©¿–<ð©¿—<𩿘<ð©¿™<ð©¿š<ð©¿›<ðª‰<𪉂<𪉃<é³½<é´Š<é´<é´<é´‘<é´’<é´“"
+ "<é´”<é´•<é´–<é´—<é´˜<é´™<é´š<é´›<é´œ<é´<é´ž<é´Ÿ<é´ <é´¡<é´¢<é´£<é´¤<é´¥<é´¦<é´§<é´¨<é´©<é´ª<é´«<é´¬<鸪<鸫<鸬<鸭<鸮<鸯<鸰<鸱<鸲"
+ "<鸳<鸴<鸵<鸶<ä²¹<䲺<ä²»<ä²¼<ä²½<ä²¾<䲿<ä³€<ä³<䳂<䳃<䳄<ä³…<䳆<䳇<䳈<䳉<䳊<ð©¿œ<ð©¿<ð©¿ž<ð©¿Ÿ<ð©¿ <ð©¿¡<ð©¿¢<ð©¿£"
+ "<𩿤<𩿥<𩿦<𩿧<𩿨<𩿩<𩿪<𩿫<𩿬<𩿭<𩿮<𩿯<𩿰<𩿱<𩿲<𩿳<𩿴<𩿵<𩿶<𩿷<𩿸<𩿹<"
+ "𩿺<ð©¿»<ð©¿¼<ð©¿½<ð©¿¾<ð©¿¿<𪀀<ðª€<𪀂<𪀃<𪀄<𪀅<𪀆<𪀇<𪀈<𪀉<𪀊<𪀋<𪀌<ðª€<𪀎<ðª€<ðª€"
+ "<𪀑<𪉄<é´­<é´®<é´¯<é´°<é´±<é´²<é´³<é´´<é´µ<é´¶<é´·<é´¸<é´¹<é´º<é´»<é´¼<é´½<é´¾<é´¿<éµ€<éµ<鵂<鵃<鵄<éµ…<鵆<鵇<鵈<鵉<鸷<鸸"
+ "<鸹<鸺<鸻<鸼<鸽<鸾<鸿<䳋<䳌<ä³<䳎<ä³<ä³<䳑<ä³’<䳓<ä³”<ä´”<ä´•<𪀒<𪀓<𪀔<𪀕<𪀖<𪀗<𪀘<𪀙<𪀚<𪀛"
+ "<𪀜<ðª€<𪀞<𪀟<𪀠<𪀡<𪀢<𪀣<𪀤<𪀥<𪀦<𪀧<𪀨<𪀩<𪀪<𪀫<𪀬<𪀭<𪀮<𪀯<𪀰<𪀱<"
+ "𪀲<𪀳<𪀴<𪀵<𪀶<𪀷<𪀸<𪀹<𪀺<𪀻<𪀼<𪀽<𪀾<𪀿<ðª€<ðª<ðª‚<ðªƒ<ðª„<ðª…<ðª†<ðª‡<ðªˆ"
+ "<ðª‰<𪉅<𪉆<𪉇<𪉈<𪉉<𪉊<𪉋<䳎<鵊<鵋<鵌<éµ<鵎<éµ<éµ<鵑<éµ’<鵓<éµ”<鵕<éµ–<éµ—<鵘<éµ™<鵚<éµ›<鵜<éµ<鵞"
+ "<鵟<éµ <鵡<éµ¢<éµ£<éµ¥<é¹€<é¹<鹂<鹃<鹄<é¹…<鹆<鹇<鹈<䳕<ä³–<ä³—<䳘<ä³™<䳚<ä³›<䳜<ðªŠ<ðª‹<ðªŒ<ðª<ðªŽ<ðª<ðª<"
+ "ðª‘<ðª’<ðª“<ðª”<ðª•<ðª–<ðª—<ðª˜<ðª™<ðªš<ðª›<ðªœ<ðª<ðªž<ðªŸ<ðª <ðª¡<ðª¢<ðª£<ðª¤<ðª¥<ðª¦<ðª§"
+ "<ðª¨<ðª©<ðªª<ðª«<ðª¬<ðª­<ðª®<ðª¯<ðª°<ðª±<ðª²<ðª³<ðª´<ðªµ<ðª¶<𪉌<ðª‰<鵦<鵧<鵨<鵩<鵪<鵫<鵬<éµ­<"
+ "éµ®<鵯<éµ°<éµ±<éµ²<éµ³<éµ´<éµµ<鵶<éµ·<鵸<éµ¹<鵺<éµ»<éµ¼<éµ½<éµ¾<鵿<鶀<é¶<鶂<鶃<鶄<鶅<鶆<鶇<鶈<鶉<鶊<鶋<鶌<é¶<鶎<é¶<"
+ "鶑<鹉<鹊<鹋<鹌<é¹<鹎<é¹<é¹<鹑<é¹’<鹓<é¹”<ä³<䳞<䳟<ä³ <䳡<ä³¢<ä³£<䳤<ä³¥<ä´–<ðª·<ðª¸<ðª¹<ðªº<ðª»<ðª¼<ðª½<"
+ "ðª¾<ðª¿<𪂀<ðª‚<𪂂<𪂃<𪂄<𪂅<𪂆<𪂇<𪂈<𪂉<𪂊<𪂋<𪂌<ðª‚<𪂎<ðª‚<ðª‚<𪂑<𪂒<𪂓<𪂔"
+ "<𪂕<𪂖<𪂗<𪂘<𪂙<𪂚<𪂛<𪂜<ðª‚<𪂞<𪂟<𪂠<𪂡<𪂢<𪂣<𪂤<𪂥<𪂦<𪂧<𪂨<𪂩<𪂪<"
+ "𪂫<𪂬<𪂭<𪂮<𪂯<𪂰<𪂱<𪂲<𪂳<𪂴<𪂵<𪉎<鵧<é¶<鶒<鶓<鶔<鶕<鶖<鶗<鶘<鶙<鶚<鶛<鶜<é¶<鶞<鶟<"
+ "鶠<鶡<鶢<鶣<鶤<鶥<鶦<鶧<鶨<鶩<鶪<鶫<鹕<鹖<鹗<鹙<鹚<鹛<鹜<䳦<䳧<䳨<䳩<䳪<䳫<䳬<䳭<䳮<䳯<䳰<䴗<𪂶<𪂷<"
+ "𪂸<𪂹<𪂺<𪂻<𪂼<𪂽<𪂾<𪂿<𪃀<ðªƒ<𪃂<𪃃<𪃄<𪃅<𪃆<𪃇<𪃈<𪃉<𪃊<𪃋<𪃌<ðªƒ<𪃎"
+ "<ðªƒ<ðªƒ<𪃑<𪃒<𪃓<𪃔<𪃕<𪃖<𪃗<𪃘<𪃙<𪃚<𪃛<𪃜<ðªƒ<𪃞<𪃟<𪃠<𪃡<𪃢<𪃣<𪃤<"
+ "𪃥<𪃦<𪃧<𪃨<𪃩<𪃪<𪃫<𪃬<𪃭<𪃮<𪃯<𪃰<𪃱<𪃲<𪃳<𪃴<𪃵<𪃶<𪃷<𪃸<𪃹<ðª‰<ðª‰"
+ "<ä³­<𪃎<鶬<鶭<鶮<鶯<鶰<鶱<鶲<鶳<鶴<鶵<鶶<鶷<鶸<鶹<鶺<鶻<鶼<鶽<鶾<鶿<é·€<é·<é·‚<é·ƒ<é·„<é·…<é·†<é·‡<é·ˆ<é·‰<é·Š<"
+ "é·Œ<é·<é·Ž<é·<鹘<é¹<鹞<鹟<é¹ <鹡<é¹¢<é¹£<鹤<ä³±<ä³²<ä³³<ä³´<ä³µ<䳶<ä´˜<𪃺<𪃻<𪃼<𪃽<𪃾<𪃿<𪄀<ðª„<𪄂<"
+ "𪄃<𪄄<𪄅<𪄆<𪄇<𪄈<𪄉<𪄊<𪄋<𪄌<ðª„<𪄎<ðª„<ðª„<𪄑<𪄒<𪄓<𪄔<𪄕<𪄖<𪄗<𪄘<𪄙"
+ "<𪄚<𪄛<𪄜<ðª„<𪄞<𪄟<𪄠<𪄡<𪄢<𪄣<𪄤<𪄥<𪄦<𪄧<𪄨<𪄩<𪄪<𪄫<𪄬<𪉑<𪉒<𪉓<"
+ "𪉔<鶴<𪄅<é·‹<é·<é·‘<é·’<é·“<é·”<é·•<é·–<é·—<é·˜<é·™<é·š<é·›<é·œ<é·<é·ž<é·Ÿ<é¹¥<鹦<鹧<鹨<ä³·<䳸<ä³¹<䳺<ä³»<ä³¼<ä³½<𪄭<"
+ "𪄮<𪄯<𪄰<𪄱<𪄲<𪄳<𪄴<𪄵<𪄶<𪄷<𪄸<𪄹<𪄺<𪄻<𪄼<𪄽<𪄾<𪄿<𪅀<ðª…<𪅂<𪅃<𪅄"
+ "<𪅅<𪅆<𪅇<𪅈<𪅉<𪅊<𪅋<𪅌<ðª…<𪅎<ðª…<ðª…<𪅑<𪅒<𪅓<𪅔<𪅕<𪅖<𪅗<𪅘<𪅙<𪅚<"
+ "𪅛<𪅜<ðª…<𪅞<𪅟<𪅠<𪅡<𪅢<𪅣<𪅤<𪅥<𪅦<𪅧<𪅨<𪅩<𪅪<𪅫<𪅬<𪅭<𪅮<䳸<é·¡<é·¢<é·£<"
+ "é·¤<é·¥<é·¦<é·§<é·¨<é·©<é·ª<é·«<é·¬<é·­<é·®<é·¯<é·°<é·±<é·²<é·³<é·´<é·µ<é·¶<é··<é·¸<é·º<é·»<é·¼<鹩<鹪<鹫<鹬<ä³¾<䳿<ä´€<ä´<ä´‚<ä´ƒ<"
+ "ä´„<ä´…<ä´†<𪅯<𪅰<𪅱<𪅲<𪅳<𪅴<𪅵<𪅶<𪅷<𪅸<𪅹<𪅺<𪅻<𪅼<𪅽<𪅾<𪅿<𪆀<ðª†<𪆂<𪆃"
+ "<𪆄<𪆅<𪆆<𪆇<𪆈<𪆉<𪆊<𪆋<𪆌<ðª†<𪆎<ðª†<ðª†<𪆑<𪆒<𪆓<𪆔<𪆕<𪆖<𪆗<𪆘<𪆙<"
+ "𪆚<𪆛<𪆜<ðª†<𪆞<𪆟<𪆠<𪆡<𪆢<𪆣<𪆤<𪆥<𪆦<𪆧<𪆨<𪆩<𪆪<𪆫<𪆭<é·º<é·¹<é·½<é·¾<é·¿<鸀"
+ "<é¸<鸂<鸃<鸄<鸅<鸆<鸇<鸈<鸉<鸊<é¹­<é¹®<鹯<é¹°<ä´‡<ä´ˆ<ä´‰<ä´Š<ä´‹<ä´™<𪆬<𪆮<𪆯<𪆰<𪆱<𪆲<𪆳<𪆴<𪆵<"
+ "𪆶<𪆷<𪆸<𪆹<𪆺<𪆻<𪆼<𪆽<𪆾<𪆿<𪇀<ðª‡<𪇂<𪇃<𪇄<𪇅<𪇆<𪇇<𪇈<𪇉<𪇊<𪇋<𪇌"
+ "<ðª‡<𪇎<ðª‡<ðª‡<鸋<鸌<é¸<鸎<é¸<é¸<鸑<鸒<é¹±<é¹²<ä´Œ<ä´<𪇑<𪇒<𪇓<𪇔<𪇕<𪇖<𪇗<𪇘<𪇙<𪇚<"
+ "𪇛<𪇜<ðª‡<𪇟<𪇠<𪇡<𪇢<𪇣<𪇤<𪇥<𪇦<𪇧<𪇨<𪇩<𪇪<𪇫<𪇬<鸓<鸔<ä´Ž<𪇭<𪇮<𪇯<𪇰"
+ "<𪇱<𪇲<𪇳<𪇴<𪇵<𪇶<𪇷<𪇸<𪇹<𪇺<𪇻<𪇼<𪇽<𪇾<𪇿<𪈀<ðªˆ<𪈂<𪉕<鸕<鸖<鸗<ä´<𪈃"
+ "<𪈄<𪈅<𪈆<𪈇<𪈈<𪈉<𪈊<𪈋<𪈌<ðªˆ<𪈎<ðªˆ<ðªˆ<𪈑<𪈒<𪈓<𪈔<𪈕<𪈖<𪈗<𪈎<鸘<鸙<"
+ "鸚<é¹³<é¹´<𪈘<𪈙<𪈚<𪈛<𪈜<ðªˆ<𪈞<𪈟<𪈠<𪈡<𪈢<𪈣<𪈤<鸛<鸜<𪈥<𪈦<𪈧<𪈨<𪈩<𪈪<"
+ "𪈫<𪈬<𪈭<é¸<鸞<𧖠<𪈮<𪈯<𪈰<𪈱<𪈲<𪈳<鸞<ä´<ð©–”<𪈴<𪈵<𪈶<𪈷<𪈸<𪈹<𪈺<𪈻<𪈼<"
+ "𪈽<ä´‘<ä´’<𪈾<𪈿<𪉀<é¹µ<𠧸<𪉖<𪉗<鹶<ä´š<𪉘<𪉙<𪉚<𪉛<é¹·<𪉜<ðª‰<𪉞<𪉟<𪉠<𪉡<𪉢<ä´›<"
+ "𪉣<𪉤<𪉥<鹸<𪉦<𪉧<𪉨<𪉩<𪉪<𪉫<𪉬<鹹<鹾<𪉭<𪉮<𪉯<𪉰<𪉱<𪉲<𪉳<𪉴<鹺<鹻<䴜<𪉵"
+ "<𪉶<𪉷<𪉸<𪉹<𪉺<𪉻<𪉼<𪉽<𪉾<ä´<𪉿<𪊀<ðªŠ<𪊂<é¹¼<é¹½<𪊃<𪊄<𪊅<ä´ž<𪊆<𪊇<𪊈<𪊉"
+ "<𪊊<鹿<𢉖<鹿<麀<éº<麂<𪊋<𪊌<ä´Ÿ<ðªŠ<𪊎<麃<麄<ä´ <ä´¡<ä´¢<ðªŠ<ðªŠ<𪊑<𪊒<𪊓<𪊔<𪊕<𪊖<𪊗<"
+ "𪊘<𪊙<𪊚<𪊑<麅<麆<麇<麈<ä´£<ä´¤<ä´¥<𪊛<𪊜<ðªŠ<𪊞<𪊟<𪊠<𪊡<𪊢<𪊣<𪊤<麉<麊<麋<𪊥<𪊦<"
+ "𪊧<𪊨<𪊩<𪊪<𪊫<𪊬<𪊭<𪊮<𪊯<𪊰<𪊱<𪊲<𪊳<麌<éº<麎<éº<éº<ä´¦<𪊴<𪊵<𪊶<𪊷<𪊸<𪊹"
+ "<𪊺<𪊻<𪊼<𪊽<𪊾<𪊿<𪋀<ðª‹<𪋂<𪋃<麑<麒<麓<麔<麕<麖<麗<ä´§<𪋄<𪋅<𪋆<𪋇<𪋈<𪋉<𪋊<"
+ "𪋋<𪋌<ðª‹<麗<麘<麙<麚<麛<𪋎<ðª‹<ðª‹<𪋑<𪋒<𪋓<𪋔<𪋕<𪋖<麜<éº<ä´¨<𪋗<𪋘<𪋙<𪋚<𪋛<麞"
+ "<ä´©<𪋜<ðª‹<𪋞<𪋟<𪋠<麟<𪋡<𪋢<𪋣<𪋤<𪋥<𪋦<𪋧<𪋨<𪋩<麟<麠<ä´ª<ä´«<𪋪<𪋫<𪋬<𪋭<麡"
+ "<𪋮<𪋯<𪋰<𪋱<𪋲<𪋳<𪋴<𪋵<麢<𪋶<𪋷<𪋸<麣<𪋹<麤<𪋺<𪋻<麥<麦<𪋼<𪋽<𪋾<𪋿<𪌀<"
+ "ðªŽ<麧<ä´¬<ä´­<ä´®<ðªŒ<𪌂<𪌃<𪌄<𪎈<麨<麩<麪<麫<麸<ä´¯<ä´°<𪌅<𪌆<𪌇<𪌈<𪌉<𪌊<𪌋<𪌌<ðªŒ<"
+ "𪌎<ðªŒ<ðªŒ<𪌑<𪌒<𪌓<𪎉<𪎊<麬<麭<麮<ä´±<ä´²<ä´³<ä´´<𪌔<𪌕<𪌖<𪌗<𪌘<𪌙<𪌚<𪌜<ðªŒ<𪌞<"
+ "𪌟<𪌠<𪌡<𪎋<麯<麰<䴵<𪌢<𪌣<𪌤<𪌥<𪌦<𪌧<𪌨<𪌩<𪌪<𪌫<𪌬<麱<麲<䴶<䴷<䴸<𪌭<𪌮<"
+ "𪌯<𪌰<𪌱<𪌲<𪌳<𪌴<𪌵<𪌶<𪌷<𪌸<𪌹<𪌺<𪌻<𪎌<麳<麴<麹<䴹<䴺<䴻<䴼<䴽<𪌼<𪌽<𪌾<"
+ "𪌿<ðª€<ðª<ðª‚<ðªƒ<ðª„<ðª…<ðª†<ðª‡<ðªˆ<ðª‰<ðªŠ<ðª‹<𪎎<ðªŽ<麵<麺<ðªŒ<ðª<ðªŽ<ðª<ðª<ðª‘<"
+ "ðª’<ðª“<ðª”<ðª•<ðª–<ðª—<ðª˜<ðª™<ðªš<ä´¾<ä´¿<äµ€<ðª›<ðªœ<ðª<ðªž<ðªŸ<ðª <ðª¡<ðª¢<麶<äµ<䵂<äµ…<ðª£<"
+ "ðª¤<ðª¥<ðª¦<ðª§<ðª¨<ðª©<ðªª<ðª«<ðª¬<ðª­<ðª®<ðª¯<ðª°<ðª±<ðªŽ<䵃<ðª²<ðª³<ðª´<ðªµ<ðª¶<ðª·<䵄<"
+ "ðª¸<ðª¹<ðªº<ðª»<ðª¼<ðª½<ðª¾<䵆<ðª¿<𪎀<ðªŽ<𪎂<𪎃<𪎄<𪎅<麷<𪎆<𪎇<麻<麻<𪎑<麼<麽<𪎒<𪎓"
+ "<𪎔<𪎒<麾<䵇<𪎕<𪎖<𪎗<𪎘<𪎙<𪎚<𪎛<𪎜<ðªŽ<𪎞<𪎟<𪎠<𪎡<𪎢<麿<𪎣<𪎤<黀<𪎥<𪎦"
+ "<𪎧<é»<䵈<䵉<𪎨<𪎩<𪎪<𪎫<𪎬<𪎭<𪎮<𪎯<黂<𪎰<𪎱<𪎲<黃<黄<𪎳<𪎴<é»…<黆<䵊<𪎵<𪎶<"
+ "𪎷<𪎸<𪎹<黇<黈<黉<𪎺<黊<黋<䵋<𪎻<𪎼<𪎽<𪎾<𪎿<ðª€<ðª<䵌<ðª‚<ðªƒ<ðª„<ðª…<äµ<ðª†<ðª‡<"
+ "ðªˆ<ðª‰<ðªŠ<ðª‹<ðªŒ<ðª<ðªŽ<ðª<ðª<ðª‘<ðª’<䵎<ðª“<ðª”<ðª•<ðª–<ðª—<ðª˜<ðª™<ðªš<ðª›<ðªœ<ðª<"
+ "ðªž<äµ<ðªŸ<ðª <ðª¡<ðª¢<ðª£<äµ<ðª¤<ðª¥<ðª¦<黌<ðª§<ðª¨<ðª©<ðªª<ðª«<ðª¬<é»<ðª­<黎<䵑<ðª®<ðª¯<黎<"
+ "äµ’<䵓<ðª°<ðª±<ðª²<ðª³<ðª´<ðªµ<é»<ðª¶<ðª·<ðª¸<ðª¹<ðªº<ðª»<ðª¼<ðª½<ðª¾<ðª¿<ðª€<ðª<äµ”<䵕<äµ–<ðª‚"
+ "<ðªƒ<ðª„<ðª…<ðª†<äµ–<äµ—<䵘<äµ™<ðª‡<ðªˆ<ðª‰<ðªŠ<é»<䵚<ðª‹<äµ›<ðªŒ<ðª<ðªŽ<ðª<ðª<䵜<ðª’<ðª‘<ðª“<"
+ "ðª”<ðª•<ðª–<黑<é»’<ðª—<äµ<ðª˜<䵞<ðª™<ðªš<ðª›<墨<黓<䵟<äµ <ðªœ<ðª<ðªž<ðªŸ<ðª <ðª¡<ðª¢<ðª£<é»”<黕<"
+ "é»–<é»—<默<䵡<ðª¤<ðª¥<ðª¦<ðª§<ðª¨<ðª©<ðªª<ðª«<ðª¬<ðª­<ðª®<ðª¯<ðª°<ðª±<黚<é»›<黜<é»<點<äµ¢<äµ£<ðª²<"
+ "ðª³<ðª´<ðªµ<ðª¶<ðª·<ðª¸<ðª¹<ðªº<ðª»<ðª¼<ðª½<ðª¾<黟<é» <黡<䵤<äµ¥<䵦<䵧<ðª¿<𪑀<ðª‘<𪑂<𪑃<𪑄<"
+ "𪑅<𪑆<𪑇<黢<黣<䵨<䵩<𢖛<𪑈<𪑉<𪑊<𪑋<𪑌<ðª‘<𪑎<ðª‘<ðª‘<𪑑<黤<黥<黦<黧<黨<黩<黪<䵪<䵫<"
+ "䵬<𪑒<𪑓<𪑔<𪑕<𪑖<𪑗<𪑘<𪑙<𪑚<𪑛<𪑜<ðª‘<𪑞<𪑟<𪑠<𪑡<𪑢<𪑤<黫<黬<é»­<é»®<黯<äµ­<"
+ "䵮<䵯<𪑣<𪑥<𪑦<𪑧<𪑨<𪑩<𪑪<𪑫<𪑬<𪑭<𪑮<𪑯<𪑰<𪑱<𪑲<𪑳<𪑴<𪑵<𪑶<𪑷<𪑸<"
+ "𪑹<𪑺<𪑻<𪑼<𪑽<é»°<é»±<𪑾<𪑿<𪒀<ðª’<𪒂<𪒃<𪒄<𪒅<𪒆<𪒇<𪒈<𪒉<𪒊<𪒋<𪒌<ðª’<"
+ "𪒎<黲<黳<é»´<äµ°<ðª’<ðª’<𪒑<𪒒<𪒓<𪒔<𪒕<𪒖<𪒗<äµ±<𪒘<𪒙<𪒚<𪒛<𪒜<ðª’<𪒞<𪒟<𪒠<"
+ "𪒡<𪒢<𪒣<𪒤<𪒥<𪒦<𪒧<𪒨<黵<䵲<䵳<䵴<𪒩<𪒪<𪒫<𪒬<𪒭<𪒮<𪒯<𪒰<𪒱<𪒲<𪒳<黶<䵵"
+ "<𪒴<𪒵<𪒶<𪒷<𪒸<é»·<𪒹<𪒺<𪒻<𪒼<𪒽<𪒾<黸<𪒿<𪓀<ðª“<𪓂<𪓃<𪓄<𪓅<𪓆<𪓇<𪓈<"
+ "𪓉<𪓊<黹<黹<黺<é»»<𪓋<黼<𪓌<ðª“<𪓎<ðª“<ðª“<黽<黾<黾<𪓑<𪓒<𪓓<黿<鼋<𪓔<𪓕<𪓖<𪓗<𪓘<"
+ "𪓙<é¼€<é¼<鼂<鼌<䵶<𪓚<𪓛<𪓜<ðª“<𪓞<𪓟<𪓠<鼃<鼄<äµ·<𪓡<𪓢<𪓣<𪓤<𪓥<𪓦<𪓧<𪓨<𪓩<"
+ "𪓪<𪓫<é¼…<𪓬<𪓭<é¼…<䵸<𪓮<𪓯<𪓰<𪓱<𪓲<𪓳<𪓴<𪓵<𪓶<鼆<鼇<𪓷<𪓸<äµ¹<𪓹<鼈<鼉<é¼<𪓺"
+ "<𪓽<鼊<𪓼<𪓾<𪓿<𪔀<ðª”<鼎<𪔂<é¼<é¼<鼑<𪔃<é¼<é¼’<䵺<𪔄<𪔅<𪔆<𪔇<𪔈<𪔉<äµ»<äµ¼<𪔊<鼓<"
+ "é¼”<ð¡”·<𪔋<𪔌<ð¡’¡<ðª”<𪔎<ðª”<鼕<é¼–<äµ½<äµ¾<䵿<ðª”<𪔑<𪔒<𪔓<é¼–<é¼—<䶀<𪔔<𪔕<𪔖<𪔗<𪔘<𪔙"
+ "<𪔚<𪔛<𪔜<ðª”<𪔞<𪔟<𪔠<𪔡<鼘<é¼™<鼚<é¼›<ä¶<𪔢<𪔣<𪔤<𪔥<𪔦<𪔧<𪔨<𪔩<𪔪<𪔫<𪔬<"
+ "𪔭<鼜<𪔮<é¼<鼞<𪔯<𪔰<𪔱<𪔲<鼟<𥀻<𪇞<𪔳<𪔴<𥀼<𪔵<𪔶<𥀽<𪔷<𥀾<é¼ <鼡<𪔸<𪔹<䶂<"
+ "𪔺<𪔻<𪔼<é¼¢<é¼£<鼤<䶃<𪔽<𪔾<𪔿<𪕀<ðª•<𪕂<𪕃<𪕄<𪕅<𪕆<𪕇<𪕈<é¼¥<鼦<鼧<鼨<鼩<鼪<鼫<鼬"
+ "<䶄<𪕉<𪕊<𪕋<𪕌<ðª•<𪕎<ðª•<ðª•<𪕑<é¼­<䶅<𪕒<𪕓<𪕔<𪕕<𪕖<𪕗<𪕘<𪕙<𪕟<é¼®<鼯<é¼°<"
+ "𪕚<𪕛<𪕜<ðª•<𪕞<𪕠<𪕡<𪕢<𪕣<𪕤<𪕥<𪕦<𪕧<é¼±<䶆<𪕨<𪕩<𪕪<é¼²<é¼³<é¼´<é¼µ<䶇<𪕫<𪕬<"
+ "𪕭<𪕮<𪕯<𪕰<𪕱<𪕲<𪕳<𪕴<鼶<鼷<鼸<鼹<䶈<䶉<𪕵<𪕶<𪕷<𪕸<𪕹<𪕺<𪕻<𪕼<𪕽<𪕾<𪖀"
+ "<ðª–<𪖂<𪖃<𪖄<𪖅<𪖆<𪖇<𪖈<𪖉<𪖊<𪖋<鼺<𪖌<ðª–<𪖎<ðª–<é¼»<é¼»<ðª–<é¼¼<é¼½<𪖑<𪖒<é¼¾<鼿"
+ "<𪖓<𪖔<䶊<䶋<𪖕<𪖖<𪖗<𪖘<𪖙<é½€<é½<䶌<𪖚<𪖛<𪖜<ðª–<𪖞<𪖟<𪖠<ä¶<䶎<𪖡<𪖢<𪖣<𪖤"
+ "<ä¶<𪖥<𪖦<𪖧<𪖨<𪖩<𪖪<𪖫<𪖬<齂<𪖭<𪖮<齃<齄<𪖯<𪖰<𪖱<𪖲<齃<é½…<齆<𪕿<𪖳<𪖴<𪖵"
+ "<齇<𪖶<𪖷<𪖸<𪖹<𪖺<𪖻<𪖼<𪖽<齈<ä¶<𪖾<𪖿<𪗀<䶑<ðª—<𪗂<𪗃<齉<齊<é½<𪗄<𪗅<齋<䶒<䶓"
+ "<𪗆<齌<𠆜<𪗇<𪗈<é½<𪗉<𪗊<𪗋<𪗌<齎<𪗎<ðª—<é½<齑<ðª—<ðª—<𪗑<𪗒<𪗓<é½’<齿<𣦋<齓<é½”<é¾€"
+ "<𪗔<𪗕<𪗖<𪗗<齕<é¾<䶔<𪗘<𪗙<𪗚<é½–<é½—<齘<龂<䶕<䶖<𪗛<𪗜<ðª—<𪗞<𪗟<𪗠<𪗡<𪗢<𪗣<"
+ "𪗤<é½™<齚<é½›<齜<é½<齞<齟<é½ <齡<é½¢<é½£<龃<龄<é¾…<龆<䶗<䶘<䶙<ð Žœ<𪗥<𪗦<𪗧<𪗨<𪗩<𪗪<𪗫<𪗬<𪗭"
+ "<𪗮<𪗯<𪗰<𪗱<𪗲<𪗳<𪗴<𪗵<𪗶<齤<齥<齦<齧<齨<齩<龇<龈<䶚<䶛<𪗷<𪗸<𪗹<𪗺<𪗻<𪗼<𪗽"
+ "<𪗾<𪗿<𪘀<ðª˜<𪘂<𪘃<𪘄<𪘅<𪘆<𪘇<𪘈<𪘉<𪘊<𪘋<𪘌<ðª˜<ðªš<𪘀<齪<齫<齬<龉<龊<䶜<ä¶"
+ "<𪘎<ðª˜<ðª˜<𪘑<𪘒<𪘓<𪘔<𪘕<𪘖<𪘗<𪘘<𪘙<𪘚<𪘛<𪘜<ðª˜<𪘞<𪘟<𪘠<𪘡<𪘢<𪘣<"
+ "𪘤<齭<齮<齯<齰<齱<䶞<䶟<𪘥<𪘦<𪘧<𪘨<𪘩<𪘪<𪘫<𪘬<𪘭<𪘮<𪘯<𪘰<𪘱<𪘲<𪘳<𪘴<𪘵<"
+ "𪘶<𪘷<𪘸<ðªš<é½²<é½³<é½´<é½µ<齶<é½·<龋<龌<䶠<䶡<䶢<𪘹<𪘺<𪘻<𪘼<𪘽<𪘾<𪘿<𪙀<ðª™<𪙂<𪙃<"
+ "𪙄<𪙅<𪙆<𪙇<𪙈<齸<é½¹<齺<é½»<䶣<䶤<𪙉<𪙊<𪙋<𪙌<ðª™<𪙎<ðª™<ðª™<𪙑<𪙒<𪙓<𪙔<𪙕<𪙖"
+ "<𪙗<𪙘<𪙙<䶥<䶦<𪙚<𪙛<𪙜<ðª™<𪙞<𪙟<𪙠<𪙡<𪙢<䶧<𪙣<𪙤<𪙥<𪙦<𪙧<𪙨<𪙩<𪙪<"
+ "𪙫<𪙬<𪙭<𪙮<𪙯<齼<齽<䶨<𪙰<𪙱<𪙲<𪙳<𪙴<𪙵<䶩<䶪<𪙶<𪙷<𪙸<𪙹<𪙺<𪙻<𪙼<𪙽<"
+ "𪙾<𪙿<𪚀<ðªš<𪚂<𪚃<𪚄<𪚅<𪚆<𪚇<𪚈<𪚉<é½¾<䶫<𪚊<𪚋<𪚌<ðªš<𪚎<é¾<é¾™<é¾<龎<龎<é¾<"
+ "𪚑<𪚒<𪚓<𪚔<龑<䶭<䶮<𪚕<𪚖<𪚗<𪚘<𪚚<𪚛<é¾’<𪚙<龓<é¾”<龕<龚<é¾›<䶬<𪚜<ðªš<𪚞<𪚟<𪚠<"
+ "𪚡<𪚢<𪚣<𪚤<龖<龗<龘<𪚥<龜<龟<𪚦<𪛉<龜<龜<龜<𪚨<䶯<𪚩<𪚪<䶰<𪚫<𪚬<𪚭<𪚮<𪚯<𪚰<"
+ "𪚱<𪚲<𪚳<𪚴<𪚵<é¾<䶱<䶲<𪚧<𪚶<𪚷<𪚸<𪚹<𪚺<𪚻<𪚼<𪚽<𪚾<𪚿<𪛀<𪓻<ðª›<𪛂<𪛃"
+ "<𪛄<龞<𪛅<𪛆<𪛇<𪛈<é¾ <龡<䶳<𪛊<é¾¢<é¾£<䶴<𪛋<𪛌<ðª›<龤<é¾¥<𪛎<ðª›<ðª›<𪛑<䶵<𪛒<𪛓<𪛔"
+ "<𪛕<𪛖"
+ }
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ru.txt b/Build/source/libs/icu-xetex/data/coll/ru.txt
index fd8c62f77e6..9aeccb04bb2 100644
--- a/Build/source/libs/icu-xetex/data/coll/ru.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ru.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ru.xml
+// * Source File:<path>/common/collation/ru.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ru.xml
+ * ICU <specials> source: <path>/xml/collation/ru.xml
*/
ru{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{"[suppressContractions [Ѐ-џ] ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ru_RU.txt b/Build/source/libs/icu-xetex/data/coll/ru_RU.txt
index fe374075ea5..0fc3747fefe 100644
--- a/Build/source/libs/icu-xetex/data/coll/ru_RU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ru_RU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ru_UA.txt b/Build/source/libs/icu-xetex/data/coll/ru_UA.txt
index 3c370ded556..ca43544df82 100644
--- a/Build/source/libs/icu-xetex/data/coll/ru_UA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ru_UA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sh.txt b/Build/source/libs/icu-xetex/data/coll/sh.txt
index 5bc266b83b1..e2d536cc77b 100644
--- a/Build/source/libs/icu-xetex/data/coll/sh.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sh.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sh.xml
+// * Source File:<path>/common/collation/sh.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sh.xml
+ * ICU <specials> source: <path>/xml/collation/sh.xml
*/
sh{
- Version{"1.19"}
+ Version{"1.20"}
collations:alias{"hr/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sh_BA.txt b/Build/source/libs/icu-xetex/data/coll/sh_BA.txt
index e53bd977aaf..b530d38b56d 100644
--- a/Build/source/libs/icu-xetex/data/coll/sh_BA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sh_BA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sh_YU.txt b/Build/source/libs/icu-xetex/data/coll/sh_YU.txt
index c0b0d9a04b9..ffe0b91ce41 100644
--- a/Build/source/libs/icu-xetex/data/coll/sh_YU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sh_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sk.txt b/Build/source/libs/icu-xetex/data/coll/sk.txt
index bf84d1f51f5..2b1aa856866 100644
--- a/Build/source/libs/icu-xetex/data/coll/sk.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sk.txt
@@ -1,30 +1,30 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sk.xml
+// * Source File:<path>/common/collation/sk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sk.xml
+ * ICU <specials> source: <path>/xml/collation/sk.xml
*/
sk{
- Version{"1.20"}
+ Version{"1.23"}
collations{
standard{
Sequence{
"&A<ä<<<Ä"
"&C<Ä<<<ÄŒ"
"&D<Ä‘<<<Ä"
- "&H<ch<<<Ch<<<CH"
+ "&H<ch<<<cH<<<Ch<<<CH"
"&L<Å‚<<<Å"
"&O<ô<<<Ô"
"&R<ř<<<Ř"
"&S<Å¡<<<Å "
"&Z<ž<<<Ž<ż<<<Ż"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sk_SK.txt b/Build/source/libs/icu-xetex/data/coll/sk_SK.txt
index 4235efece29..ffe0da4bf17 100644
--- a/Build/source/libs/icu-xetex/data/coll/sk_SK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sk_SK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sl.txt b/Build/source/libs/icu-xetex/data/coll/sl.txt
index 4c48c700b89..8038627b724 100644
--- a/Build/source/libs/icu-xetex/data/coll/sl.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sl.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sl.xml
+// * Source File:<path>/common/collation/sl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sl.xml
+ * ICU <specials> source: <path>/xml/collation/sl.xml
*/
sl{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{"&C<Ä<<<ÄŒ<ć<<<Ć&S<Å¡<<<Å &Z<ž<<<Ž"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sl_SI.txt b/Build/source/libs/icu-xetex/data/coll/sl_SI.txt
index 80aab34e90c..1a820f20050 100644
--- a/Build/source/libs/icu-xetex/data/coll/sl_SI.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sl_SI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sq.txt b/Build/source/libs/icu-xetex/data/coll/sq.txt
index 6263236f8e6..4f65cd482c2 100644
--- a/Build/source/libs/icu-xetex/data/coll/sq.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sq.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sq.xml
+// * Source File:<path>/common/collation/sq.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sq.xml
+ * ICU <specials> source: <path>/xml/collation/sq.xml
*/
sq{
- Version{"1.18"}
+ Version{"1.20"}
collations{
standard{
Sequence{
@@ -26,7 +26,7 @@ sq{
"&[before 1]Y<xh<<<Xh<<<XH"
"&[before 1]Æ·<zh<<<Zh<<<ZH"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sq_AL.txt b/Build/source/libs/icu-xetex/data/coll/sq_AL.txt
index b981d36c918..4d5ae2a8200 100644
--- a/Build/source/libs/icu-xetex/data/coll/sq_AL.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sq_AL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sr.txt b/Build/source/libs/icu-xetex/data/coll/sr.txt
index 29cbb73a284..803237074b9 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sr.xml
+// * Source File:<path>/common/collation/sr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sr.xml
+ * ICU <specials> source: <path>/xml/collation/sr.xml
*/
sr{
- Version{"1.16"}
+ Version{"1.17"}
collations:alias{"ru/collations"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sr_BA.txt b/Build/source/libs/icu-xetex/data/coll/sr_BA.txt
index 3e4782584f7..b85af8aaf4f 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr_BA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr_BA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl.txt b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl.txt
index 2a2b9a869d6..e273868dfa0 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_BA.txt b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_BA.txt
index eb45ac0ade6..7226aeb6ae8 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_BA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_BA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_YU.txt b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_YU.txt
index 1a71d880c79..ec71ace0988 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_YU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr_Cyrl_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sr_YU.txt b/Build/source/libs/icu-xetex/data/coll/sr_YU.txt
index 8e8c1fbd42f..b53ad022397 100644
--- a/Build/source/libs/icu-xetex/data/coll/sr_YU.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sr_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sv.txt b/Build/source/libs/icu-xetex/data/coll/sv.txt
index 8ae97615cba..4f67ce34912 100644
--- a/Build/source/libs/icu-xetex/data/coll/sv.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sv.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/sv.xml
+// * Source File:<path>/common/collation/sv.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/sv.xml
+ * ICU <specials> source: <path>/xml/collation/sv.xml
*/
sv{
- Version{"1.18"}
+ Version{"1.21"}
collations{
standard{
Sequence{
@@ -23,7 +23,7 @@ sv{
"&[before 1]Ê’<Ã¥<<<Ã…<ä<<<Ä<<æ<<<Æ<<Ä™<<<Ę<ö<<<Ö<<ø<<<Ø<<Å‘<<<Å<<Å“<<<Å’<<ô"
"<<<Ô"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/sv_FI.txt b/Build/source/libs/icu-xetex/data/coll/sv_FI.txt
index 6cc50cf2a23..466b14e61ff 100644
--- a/Build/source/libs/icu-xetex/data/coll/sv_FI.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sv_FI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/sv_SE.txt b/Build/source/libs/icu-xetex/data/coll/sv_SE.txt
index 18ee55b039b..42028fc54a3 100644
--- a/Build/source/libs/icu-xetex/data/coll/sv_SE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/sv_SE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/ta.txt b/Build/source/libs/icu-xetex/data/coll/ta.txt
index 57ecb246b07..018f34ba8e4 100644
--- a/Build/source/libs/icu-xetex/data/coll/ta.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ta.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/ta.xml
+// * Source File:<path>/common/collation/ta.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/ta.xml
+ * ICU <specials> source: <path>/xml/collation/ta.xml
*/
ta{
- Version{"1.19"}
+ Version{"1.22"}
collations{
standard{
Sequence{" [normalization on ]"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/ta_IN.txt b/Build/source/libs/icu-xetex/data/coll/ta_IN.txt
index 4fe410309f8..4aded378bef 100644
--- a/Build/source/libs/icu-xetex/data/coll/ta_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/ta_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/te.txt b/Build/source/libs/icu-xetex/data/coll/te.txt
index f05da268e4f..ed1b40de3a9 100644
--- a/Build/source/libs/icu-xetex/data/coll/te.txt
+++ b/Build/source/libs/icu-xetex/data/coll/te.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/te.xml
+// * Source File:<path>/common/collation/te.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/te.xml
+ * ICU <specials> source: <path>/xml/collation/te.xml
*/
te{
- Version{"1.19"}
+ Version{"1.21"}
collations{
standard{
Sequence{" [normalization on ]&à°¹<à°<à°‚<à°ƒ<à±"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/te_IN.txt b/Build/source/libs/icu-xetex/data/coll/te_IN.txt
index 8a6d86077d9..ed3c801e664 100644
--- a/Build/source/libs/icu-xetex/data/coll/te_IN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/te_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/th.txt b/Build/source/libs/icu-xetex/data/coll/th.txt
index 9579e1fc2e4..a3f4cb37d17 100644
--- a/Build/source/libs/icu-xetex/data/coll/th.txt
+++ b/Build/source/libs/icu-xetex/data/coll/th.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/th.xml
+// * Source File:<path>/common/collation/th.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/th.xml
+ * ICU <specials> source: <path>/xml/collation/th.xml
*/
th{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -23,7 +23,7 @@ th{
"&[last secondary ignorable ]<<<'\u0020'<<<'-'<<<'.'<<<'...'<<<ฯ<<<ๆ<"
"<<à¹<<<๚<<<๛"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/th_TH.txt b/Build/source/libs/icu-xetex/data/coll/th_TH.txt
index a2e0dd1e6f4..ae6e85529c4 100644
--- a/Build/source/libs/icu-xetex/data/coll/th_TH.txt
+++ b/Build/source/libs/icu-xetex/data/coll/th_TH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/tr.txt b/Build/source/libs/icu-xetex/data/coll/tr.txt
index 85eaf163b5f..78802d68714 100644
--- a/Build/source/libs/icu-xetex/data/coll/tr.txt
+++ b/Build/source/libs/icu-xetex/data/coll/tr.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/tr.xml
+// * Source File:<path>/common/collation/tr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/tr.xml
+ * ICU <specials> source: <path>/xml/collation/tr.xml
*/
tr{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{"&C<ç<<<Ç&G<ğ<<<Ğ&[before 1]i<ı<<<I&i<<<İ&O<ö<<<Ö&S<ş<<<Ş&U<ü<<<Ü"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/tr_TR.txt b/Build/source/libs/icu-xetex/data/coll/tr_TR.txt
index e1611a21585..034437e5e57 100644
--- a/Build/source/libs/icu-xetex/data/coll/tr_TR.txt
+++ b/Build/source/libs/icu-xetex/data/coll/tr_TR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/uk.txt b/Build/source/libs/icu-xetex/data/coll/uk.txt
index f7b190c6a32..1c06e156e14 100644
--- a/Build/source/libs/icu-xetex/data/coll/uk.txt
+++ b/Build/source/libs/icu-xetex/data/coll/uk.txt
@@ -1,20 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/uk.xml
+// * Source File:<path>/common/collation/uk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/uk.xml
+ * ICU <specials> source: <path>/xml/collation/uk.xml
*/
uk{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{"&Г<Ò‘<<<Ò"}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/uk_UA.txt b/Build/source/libs/icu-xetex/data/coll/uk_UA.txt
index 4927fe41c25..77757a3251e 100644
--- a/Build/source/libs/icu-xetex/data/coll/uk_UA.txt
+++ b/Build/source/libs/icu-xetex/data/coll/uk_UA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/vi.txt b/Build/source/libs/icu-xetex/data/coll/vi.txt
index 148f5e43913..e47aa938be3 100644
--- a/Build/source/libs/icu-xetex/data/coll/vi.txt
+++ b/Build/source/libs/icu-xetex/data/coll/vi.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/vi.xml
+// * Source File:<path>/common/collation/vi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/vi.xml
+ * ICU <specials> source: <path>/xml/collation/vi.xml
*/
vi{
- Version{"1.18"}
+ Version{"1.19"}
collations{
standard{
Sequence{
@@ -22,7 +22,7 @@ vi{
"&o<ô<<<Ô<ơ<<<Ơ"
"&u<ư<<<Ư"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/vi_VN.txt b/Build/source/libs/icu-xetex/data/coll/vi_VN.txt
index 31c67f00709..b901036a4e2 100644
--- a/Build/source/libs/icu-xetex/data/coll/vi_VN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/vi_VN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/zh.txt b/Build/source/libs/icu-xetex/data/coll/zh.txt
index d68410a7346..9166553113f 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/zh.xml
+// * Source File:<path>/common/collation/zh.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/zh.xml
+ * ICU <specials> source: <path>/xml/collation/zh.xml
*/
zh{
- Version{"1.21"}
+ Version{"1.22"}
collations{
big5han{
Sequence{
@@ -409,7 +409,7 @@ zh{
"<è ¿<讞<貜<躩<軉<é‹<顳<é¡´<飌<饡<馫<驤<驦<驧<鬤<鸕<鸗<齈<戇<欞<爧<虌<躨<é’‚<é’€<é’<é©©<驨<鬮<鸙<爩<虋<讟<é’ƒ"
"<é±¹<麷<癵<é©«<鱺<é¸<ç©<çª<麤<é½¾<齉<龘"
}
- Version{"1.3"}
+ Version{"1.4"}
}
default{"pinyin"}
gb2312han{
@@ -624,7 +624,7 @@ zh{
"<骼<é«<é«€<é«…<é«‚<é«‹<é«Œ<é«‘<é­…<é­ƒ<é­‡<é­‰<é­ˆ<é­<é­‘<飨<é¤<餮<饕<饔<é«Ÿ<é«¡<髦<髯<é««<é«»<é«­<髹<鬈<é¬<鬓<鬟<鬣<麽"
"<麾<縻<麂<麇<麈<麋<麒<é–<éº<麟<é»›<黜<é»<é» <黟<黢<黩<黧<黥<黪<黯<é¼¢<鼬<鼯<é¼¹<é¼·<é¼½<é¼¾<齄"
}
- Version{"1.3"}
+ Version{"1.4"}
}
pinyin{
Sequence{
@@ -1262,7 +1262,7 @@ zh{
"<鳟<é±’<é··<僔<噂<æ’™<è­<æ˜<銌<昨<秨<莋<æ½<椊<葃<稓<ç­°<鈼<å·¦<ä½<繓<作<å<阼<å²<岞<æ€<ä¾³<柞<祚<胙<唑<座<è¢"
"<åš<è‘„<è“™<飵<ç³³<å’—"
}
- Version{"1.3"}
+ Version{"1.4"}
}
standard{
Sequence{
@@ -1276,7 +1276,7 @@ zh{
"&[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù"
"&U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü"
}
- Version{"1.3"}
+ Version{"1.4"}
}
stroke{
Sequence{
@@ -1675,7 +1675,7 @@ zh{
"<驤<驦<驧<鬤<鸕<鸗<齈<è±”<é‘¿<鸚<戇<欞<爧<虌<躨<é’‚<é’€<é’<é©©<驨<鸙<爨<驪<鬱<鸛<鸞<虋<讟<é’ƒ<é±¹<麷<癵<é©«<鱺"
"<é¸<ç©<ç±²<çª<爩<麤<é½¾<齉<龘"
}
- Version{"1.3"}
+ Version{"1.4"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_.txt b/Build/source/libs/icu-xetex/data/coll/zh_.txt
new file mode 100644
index 00000000000..8f8a7e649be
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/coll/zh_.txt
@@ -0,0 +1,17 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+/**
+ * empty locale file for dependency checking
+ */
+zh_{
+ /**
+ * so genrb doesn't issue warnings
+ */
+ ___{""}
+}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_CN.txt b/Build/source/libs/icu-xetex/data/coll/zh_CN.txt
index 1e3ce00f5fc..cfb78b02bcf 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_CN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_CN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_HK.txt b/Build/source/libs/icu-xetex/data/coll/zh_HK.txt
index e0ad5e50339..6b3d5dc6427 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_HK.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_HK.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/zh_HK.xml
+// * Source File:<path>/common/collation/zh_HK.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/zh_HK.xml
+ * ICU <specials> source: <path>/xml/collation/zh_HK.xml
*/
zh_HK{
- Version{"1.6"}
+ Version{"1.7"}
collations{
default{"stroke"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_Hant.txt b/Build/source/libs/icu-xetex/data/coll/zh_Hant.txt
index 6d377a846eb..b81fdc7450d 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_Hant.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_Hant.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/zh_Hant.xml
+// * Source File:<path>/common/collation/zh_Hant.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/zh_Hant.xml
+ * ICU <specials> source: <path>/xml/collation/zh_Hant.xml
*/
zh_Hant{
- Version{"1.6"}
+ Version{"1.7"}
collations{
default{"stroke"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_MO.txt b/Build/source/libs/icu-xetex/data/coll/zh_MO.txt
index d90616ae397..6b726df11ec 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_MO.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_MO.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/zh_MO.xml
+// * Source File:<path>/common/collation/zh_MO.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/zh_MO.xml
+ * ICU <specials> source: <path>/xml/collation/zh_MO.xml
*/
zh_MO{
- Version{"1.6"}
+ Version{"1.7"}
collations{
default{"stroke"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_SG.txt b/Build/source/libs/icu-xetex/data/coll/zh_SG.txt
index 37223dd8ddf..bcb34c18494 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_SG.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_SG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
/**
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_TW.txt b/Build/source/libs/icu-xetex/data/coll/zh_TW.txt
index 197f392cef8..e5abeeb87a1 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_TW.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_TW.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/collation/zh_TW.xml
+// * Source File:<path>/common/collation/zh_TW.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/collation/zh_TW.xml
+ * ICU <specials> source: <path>/xml/collation/zh_TW.xml
*/
zh_TW{
- Version{"1.6"}
+ Version{"1.7"}
collations{
default{"stroke"}
}
diff --git a/Build/source/libs/icu-xetex/data/coll/zh_TW_STROKE.txt b/Build/source/libs/icu-xetex/data/coll/zh_TW_STROKE.txt
index 2edee24a412..6347b073f27 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh_TW_STROKE.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh_TW_STROKE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
zh_TW_STROKE{
diff --git a/Build/source/libs/icu-xetex/data/coll/zh__PINYIN.txt b/Build/source/libs/icu-xetex/data/coll/zh__PINYIN.txt
index 9a78853d315..1e5c45a25af 100644
--- a/Build/source/libs/icu-xetex/data/coll/zh__PINYIN.txt
+++ b/Build/source/libs/icu-xetex/data/coll/zh__PINYIN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
zh__PINYIN{
diff --git a/Build/source/libs/icu-xetex/data/icu-config.xml b/Build/source/libs/icu-xetex/data/icu-config.xml
new file mode 100644
index 00000000000..2700c5d8f35
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/icu-config.xml
@@ -0,0 +1,310 @@
+<!--
+/*
+*******************************************************************************
+* Copyright (C) 2005-2006, International Business Machines Corporation and *
+* others. All Rights Reserved. *
+*******************************************************************************
+*/
+-->
+<config type="icu-config">
+ <locales>
+ <include locales="ar"/>
+ <include locales="ar_AE"/>
+ <include locales="ar_BH"/>
+ <include locales="ar_DZ"/>
+ <include locales="ar_JO"/>
+ <include locales="ar_KW"/>
+ <include locales="ar_LB"/>
+ <include locales="ar_MA"/>
+ <include locales="ar_OM"/>
+ <include locales="ar_QA"/>
+ <include locales="ar_SA"/>
+ <include locales="ar_SY"/>
+ <include locales="ar_TN"/>
+ <include locales="ar_YE"/>
+ <include locales="be"/>
+ <include locales="be_BY"/>
+ <include locales="bg"/>
+ <include locales="bg_BG"/>
+ <include locales="bn"/>
+ <include locales="bn_IN"/>
+ <include locales="ca"/>
+ <include locales="ca_ES"/>
+ <include locales="cs"/>
+ <include locales="cs_CZ"/>
+ <include locales="cy"/>
+ <include locales="cy_GB"/>
+ <include locales="da"/>
+ <include locales="da_DK"/>
+ <include locales="de"/>
+ <include locales="de_AT"/>
+ <include locales="de_CH"/>
+ <include locales="de_DE"/>
+ <include locales="de_LU"/>
+ <include locales="el"/>
+ <include locales="el_GR"/>
+ <include locales="en"/>
+ <include locales="en_AU"/>
+ <include locales="en_BE"/>
+ <include locales="en_CA"/>
+ <include locales="en_GB"/>
+ <include locales="en_HK"/>
+ <include locales="en_IE"/>
+ <include locales="en_IN"/>
+ <include locales="en_NZ"/>
+ <include locales="en_PH"/>
+ <include locales="en_SG"/>
+ <include locales="en_US"/>
+ <include locales="en_US_POSIX"/>
+ <include locales="en_ZA"/>
+ <include locales="es"/>
+ <include locales="es_AR"/>
+ <include locales="es_BO"/>
+ <include locales="es_CL"/>
+ <include locales="es_CO"/>
+ <include locales="es_CR"/>
+ <include locales="es_DO"/>
+ <include locales="es_EC"/>
+ <include locales="es_ES"/>
+ <include locales="es_GT"/>
+ <include locales="es_HN"/>
+ <include locales="es_MX"/>
+ <include locales="es_NI"/>
+ <include locales="es_PA"/>
+ <include locales="es_PE"/>
+ <include locales="es_PR"/>
+ <include locales="es_PY"/>
+ <include locales="es_SV"/>
+ <include locales="es_US"/>
+ <include locales="es_UY"/>
+ <include locales="es_VE"/>
+ <include locales="et"/>
+ <include locales="et_EE"/>
+ <include locales="fi"/>
+ <include locales="fi_FI"/>
+ <include locales="fr"/>
+ <include locales="fr_BE"/>
+ <include locales="fr_CA"/>
+ <include locales="fr_CH"/>
+ <include locales="fr_FR"/>
+ <include locales="fr_LU"/>
+ <include locales="gu"/>
+ <include locales="gu_IN"/>
+ <include locales="haw"/> <!-- for Apple -->
+ <include locales="haw_US"/> <!-- for Apple -->
+ <include locales="he"/>
+ <include locales="he_IL"/>
+ <include locales="hi"/>
+ <include locales="hi_IN"/>
+ <include locales="hr"/>
+ <include locales="hu"/>
+ <include locales="hu_HU"/>
+ <include locales="id"/>
+ <include locales="id_ID"/>
+ <include locales="is"/>
+ <include locales="is_IS"/>
+ <include locales="it"/>
+ <include locales="it_CH"/>
+ <include locales="it_IT"/>
+ <include locales="ja"/>
+ <include locales="ja_JP"/>
+ <include locales="kk"/>
+ <include locales="kk_KZ"/>
+ <include locales="kn"/>
+ <include locales="kn_IN"/>
+ <include locales="ko"/>
+ <include locales="ko_KR"/>
+ <include locales="lt"/>
+ <include locales="lt_LT"/>
+ <include locales="lv"/>
+ <include locales="lv_LV"/>
+ <include locales="mk"/>
+ <include locales="mk_MK"/>
+ <include locales="mr"/>
+ <include locales="mr_IN"/>
+ <include locales="ms"/>
+ <include locales="ms_MY"/>
+ <include locales="mt"/>
+ <include locales="mt_MT"/>
+ <include locales="nb"/>
+ <include locales="nb_NO"/>
+ <include locales="nl"/>
+ <include locales="nl_BE"/>
+ <include locales="nl_NL"/>
+ <include locales="nn"/>
+ <include locales="nn_NO"/>
+ <include locales="no"/>
+ <include locales="pa"/>
+ <include locales="pa_IN"/>
+ <include locales="pl"/>
+ <include locales="pl_PL"/>
+ <include locales="pt"/>
+ <include locales="pt_BR"/>
+ <include locales="pt_PT"/>
+ <include locales="ro"/>
+ <include locales="ro_RO"/>
+ <include locales="root"/>
+ <include locales="ru"/>
+ <include locales="ru_RU"/>
+ <include locales="sh"/>
+ <include locales="sh_YU"/>
+ <include locales="sr_Cyrl_YU"/>
+ <include locales="sr_Latn_YU"/>
+ <include locales="sr_YU"/>
+ <include locales="sk"/>
+ <include locales="sk_SK"/>
+ <include locales="sl"/>
+ <include locales="sq"/>
+ <include locales="sq_AL"/>
+ <include locales="sr"/>
+ <include locales="sr_Latn"/>
+ <include locales="sv"/>
+ <include locales="sv_SE"/>
+ <include locales="ta"/>
+ <include locales="ta_IN"/>
+ <include locales="te"/>
+ <include locales="te_IN"/>
+ <include locales="th"/>
+ <include locales="th_TH"/>
+ <include locales="tr"/>
+ <include locales="tr_TR"/>
+ <include locales="uk"/>
+ <include locales="uk_UA"/>
+ <include locales="ur"/>
+ <include locales="ur_IN"/>
+ <include locales="ur_PK"/>
+ <include locales="vi"/>
+ <include locales="vi_VN"/>
+ <include locales="zh"/>
+ <include locales="zh_CN"/>
+ <include locales="zh_Hans" draft=".*"/>
+ <include locales="zh_Hans_CN"/>
+ <include locales="zh_Hans_SG"/>
+ <include locales="zh_Hant"/>
+ <include locales="zh_Hant_HK"/>
+ <include locales="zh_Hant_TW"/>
+ <include locales="zh_HK"/>
+ <include locales="zh_SG"/>
+ <include locales="zh_TW"/>
+ <!-- Include future locales -->
+ <include locales="af"/>
+ <include locales="af_ZA"/>
+ <include locales="ar_IQ"/>
+ <include locales="ar_LY"/>
+ <include locales="ar_SD"/>
+ <include locales="eu"/>
+ <include locales="eu_ES"/>
+ <include locales="fa"/>
+ <include locales="fa_IR"/>
+ <include locales="fo"/>
+ <include locales="fo_FO"/>
+ <include locales="gl"/>
+ <include locales="gl_ES"/>
+ <include locales="ms_BN"/>
+
+ <!-- End -->
+ <!-- Include all locales currently in ICU as of 3.4 -->
+ <include locales="am"/>
+ <include locales="am_ET"/>
+ <include locales="de_BE"/>
+ <include locales="en_BW"/>
+ <include locales="en_MT"/>
+ <include locales="en_RH"/>
+ <include locales="en_VI"/>
+ <include locales="en_ZW"/>
+ <include locales="eo"/>
+ <include locales="fa_AF"/>
+ <include locales="ga"/>
+ <include locales="ga_IE"/>
+ <include locales="gv"/>
+ <include locales="gv_GB"/>
+ <include locales="hy"/>
+ <include locales="hy_AM"/>
+ <include locales="hy_AM_REVISED"/>
+ <include locales="kl"/>
+ <include locales="kl_GL"/>
+ <include locales="kok"/>
+ <include locales="kok_IN"/>
+ <include locales="kw"/>
+ <include locales="kw_GB"/>
+ <include locales="om"/>
+ <include locales="om_ET"/>
+ <include locales="om_KE"/>
+ <include locales="ps"/>
+ <include locales="ps_AF"/>
+ <include locales="ru_UA"/>
+ <include locales="so"/>
+ <include locales="so_DJ"/>
+ <include locales="so_ET"/>
+ <include locales="so_KE"/>
+ <include locales="so_SO"/>
+ <include locales="sv_FI"/>
+ <include locales="sw"/>
+ <include locales="sw_KE"/>
+ <include locales="sw_TZ"/>
+ <include locales="ti"/>
+ <include locales="ti_ER"/>
+ <include locales="ti_ET"/>
+ <include locales="zh_Hant_MO"/>
+ <include locales="zh_MO"/>
+ <!-- End -->
+ <!-- list of locales which ICU will take anyway, regardless of draft status. Equivalent of '-f' on that locale. -->
+ <include locales="ar_EG" draft=".*" />
+ <include locales="hr_HR" draft=".*" />
+ <include locales="en_PK" draft=".*" />
+ <include locales="ml" draft=".*" />
+ <include locales="ml_IN" draft=".*" />
+ <include locales="or" draft=".*" />
+ <include locales="or_IN" draft=".*" />
+ <include locales="sl_SI" draft=".*" />
+ <include locales="sr_Cyrl" draft=".*" />
+
+ <!-- only for 3.6 -->
+ <include locales="as" draft=".*" />
+ <include locales="as_IN" draft=".*" />
+ <include locales="az" draft=".*"/>
+ <include locales="az_Latn" draft=".*"/>
+ <include locales="az_Latn_AZ" draft=".*"/>
+ <include locales="az_AZ" draft=".*" />
+ <include locales="az_Cyrl" draft=".*" />
+ <include locales="az_Cyrl_AZ" draft=".*"/>
+ <include locales="sh_CS" draft=".*" />
+ <include locales="sr_CS" draft=".*" />
+ <include locales="sr_Cyrl_CS" draft=".*" />
+ <include locales="sr_Latn_CS" draft=".*" />
+ <include locales="uz" draft=".*" />
+ <include locales="uz_Cyrl" draft=".*" />
+ <include locales="uz_Latn" draft=".*" />
+ <include locales="uz_Cyrl_UZ" draft=".*" />
+ <include locales="uz_Latn_UZ" draft=".*" />
+ <include locales="uz_UZ" draft=".*" />
+ </locales>
+ <paths>
+ <!--
+ possible values of level are "none", "basic", "moderate", "modern", "comprehensive"
+ -->
+ <coverageLevel group="G0" level="comprehensive" org="IBM"/>
+ <coverageLevel group="G1" level="modern" org="IBM"/>
+ <coverageLevel group="G2" level="moderate" org="IBM"/>
+ <coverageLevel group="G3" level="basic" org="IBM"/>
+ <coverageLevel group="G4" level="basic" org="IBM"/>
+ <include xpath="//ldml/.*"/>
+ <include xpath="//ldml/characters/exemplarCharacters.*" locales="gl" draft="unconfirmed" />
+ <include xpath="//ldml/.*/special/.*"/>
+ <include xpath="//ldml/localeDisplayNames/territories/territory\[@type='DO'].*" locales="fr" draft="unconfirmed" />
+ <include xpath="//ldml/dates/calendars/calendar\[@type='gregorian'\]/eras.*" locales="bg sl" draft="unconfirmed" />
+ <include xpath="//ldml/dates/calendars/calendar\[@type='gregorian'\]/quarters/quarterWidth\[@type='wide']/.*" locales="is" draft="unconfirmed" />
+ <include xpath="//ldml/collations/collation\[@type='standard'\]/.*" locales="ml or" draft="confirmed" />
+ <!-- Exclude unusable data -->
+ <exclude xpath="//ldml/posix/messages/.*"/>
+ <exclude xpath="//ldml/numbers/currencies/.*" locales="bg_BG, nl_BE"/>
+ <include xpath="//supplementalData/.*"/>
+ <include xpath="//supplementalMetaData/.*"/>
+ </paths>
+ <overrideFallback>
+ <paths fallback="se_NO no_NO" locales="sms_FI sm_FI" draft="false">
+ <include xpath="//ldml/displayNames/.*"/>
+ <include xpath="//ldml/dates/timeZoneNames/.*"/>
+ </paths>
+ </overrideFallback>
+</config> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/data/locales/af.txt b/Build/source/libs/icu-xetex/data/locales/af.txt
index 16e707734af..65b210f7bb5 100644
--- a/Build/source/libs/icu-xetex/data/locales/af.txt
+++ b/Build/source/libs/icu-xetex/data/locales/af.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/af.xml
+// * Source File:<path>/common/main/af.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/af.xml
+ * ICU <specials> source: <path>/xml/main/af.xml
*/
af{
Countries{
@@ -75,6 +75,7 @@ af{
IT{"Italië"}
JM{"Jamaika"}
JO{"Jordanië"}
+ JP{"Japan"}
KE{"Kenia"}
KG{"Kirgisië"}
KH{"Kambodja"}
@@ -101,7 +102,6 @@ af{
MY{"Maleisië"}
MZ{"Mosambiek"}
NA{"Namibië"}
- NE{"Nigerië"}
NL{"Nederland"}
NO{"Noorweë"}
NR{"Naoeroe"}
@@ -147,9 +147,19 @@ af{
"Rand",
}
}
- ExemplarCharacters{"[a-záéèâêîôûëïöʼn]"}
+ ExemplarCharacters{"[a á â b-e é è ê ë f-i î ï j-o ô ö p-u û v-z ʼn]"}
Languages{
af{"Afrikaans"}
+ de{"Duits"}
+ en{"Engels"}
+ es{"Spaans"}
+ fr{"Frans"}
+ he{"Hebreeus"}
+ it{"Italiaans"}
+ ja{"Japannees"}
+ pt{"Portugees"}
+ ru{"Russies"}
+ zh{"Sjinees"}
}
LocaleScript{
"Latn",
@@ -165,16 +175,27 @@ af{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.33"}
+ Version{"1.48"}
calendar{
gregorian{
AmPmMarkers{
"vm.",
"nm.",
}
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
dayNames{
format{
abbreviated{
@@ -203,6 +224,38 @@ af{
"n.C.",
}
}
+ fields{
+ day{
+ dn{"Dag"}
+ }
+ era{
+ dn{"Tydperk"}
+ }
+ hour{
+ dn{"Uur"}
+ }
+ minute{
+ dn{"Minuut"}
+ }
+ month{
+ dn{"Maand"}
+ }
+ second{
+ dn{"Sekonde"}
+ }
+ week{
+ dn{"Week"}
+ }
+ weekday{
+ dn{"Dag van die week"}
+ }
+ year{
+ dn{"Jaar"}
+ }
+ zone{
+ dn{"Tydsone"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -235,6 +288,22 @@ af{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1ste kwartaal",
+ "2de kwartaal",
+ "3de kwartaal",
+ "4de kwartaal",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/af_ZA.txt b/Build/source/libs/icu-xetex/data/locales/af_ZA.txt
index 9ddfb1d2b0b..1a740e22a6a 100644
--- a/Build/source/libs/icu-xetex/data/locales/af_ZA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/af_ZA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/af_ZA.xml
+// * Source File:<path>/common/main/af_ZA.xml
// *
// ***************************************************************************
af_ZA{
@@ -13,9 +13,13 @@ af_ZA{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/am.txt b/Build/source/libs/icu-xetex/data/locales/am.txt
index 357aa1eb959..dd8faa64260 100644
--- a/Build/source/libs/icu-xetex/data/locales/am.txt
+++ b/Build/source/libs/icu-xetex/data/locales/am.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/am.xml
+// * Source File:<path>/common/main/am.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/am.xml
+ * ICU <specials> source: <path>/xml/main/am.xml
*/
am{
Countries{
@@ -80,8 +80,6 @@ am{
JP{"ጃá“ን"}
KH{"ካáˆá‰¦á‹²á‹«"}
KM{"ኮሞሮስ"}
- KP{"ደቡብ ኮሪያ"}
- KR{"ሰሜን ኮሪያ"}
KW{"ክዌት"}
LB{"ሊባኖስ"}
LT{"ሊቱዌኒያ"}
@@ -138,28 +136,7 @@ am{
ZA{"ደቡብ አáሪካ"}
ZM{"á‹›áˆá‰¢á‹«"}
}
- Currencies{
- EUR{
- "€",
- "EUR",
- }
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
- JPY{
- "Â¥",
- "JPY",
- }
- }
- ExemplarCharacters{
- "[ሀ-ቈቊ-á‰á‰-ቖቘቚ-á‰á‰ -ኈኊ-áŠáŠ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-áŒáŒ’-ጕጘ-ášáŸ-á¼áŽ€-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-â·Žâ·-â·–â·˜"
- "-â·ž]"
- }
+ ExemplarCharacters{"[០ሀ-ሆ ለ-ቆ ቈ ቊ-በበ-ኆ ኈ ኊ-አáŠ-ኮ ኰ ኲ-ኵ ኸ-ኾ ወ-á‹Ž á‹-á‹– ዘ-á‹· ጀ-ጎ ጠጒ-ጕ ጠ-áš]"}
Languages{
aa{"አá‹áˆ­áŠ›"}
ab{"አብáˆá‹šáŠ›"}
@@ -307,12 +284,75 @@ am{
LocaleScript{
"Ethi",
}
- Version{"1.39"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0%",
+ "#E0",
+ }
+ Version{"1.56"}
calendar{
+ ethiopic{
+ monthNames{
+ format{
+ abbreviated{
+ "መስከ",
+ "ጥቅáˆá‰µ",
+ "ኅዳር",
+ "ታኅሣሥ",
+ "ጥር",
+ "የካቲ",
+ "መጋቢት",
+ "ሚያá‹á‹«",
+ "áŒáŠ•á‰¦",
+ "ሰኔ",
+ "áˆáˆáˆŒ",
+ "áŠáˆáˆ´",
+ "ጳጉሜን",
+ }
+ wide{
+ "መስከረáˆ",
+ "ጥቅáˆá‰µ",
+ "ኅዳር",
+ "ታኅሣሥ",
+ "ጥር",
+ "የካቲት",
+ "መጋቢት",
+ "ሚያá‹á‹«",
+ "áŒáŠ•á‰¦á‰µ",
+ "ሰኔ",
+ "áˆáˆáˆŒ",
+ "áŠáˆáˆ´",
+ "ጳጉሜን",
+ }
+ }
+ }
+ }
gregorian{
- DateTimeElements:intvector{
- 7,
- 1,
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
}
dayNames{
format{
@@ -335,6 +375,17 @@ am{
"ቅዳሜ",
}
}
+ stand-alone{
+ narrow{
+ "እ",
+ "ሰ",
+ "ማ",
+ "ረ",
+ "áˆ",
+ "á‹“",
+ "ቅ",
+ }
+ }
}
eras{
abbreviated{
@@ -342,6 +393,29 @@ am{
"á‹“/áˆ",
}
}
+ fields{
+ day{
+ dn{"ቀን"}
+ }
+ era{
+ dn{"ዘመን"}
+ }
+ hour{
+ dn{"ሰዓት"}
+ }
+ minute{
+ dn{"ደቂቃ"}
+ }
+ month{
+ dn{"ወር"}
+ }
+ week{
+ dn{"ሳáˆáŠ•á‰µ"}
+ }
+ year{
+ dn{"ዓመት"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -373,7 +447,46 @@ am{
"ዲሴáˆá‰ áˆ­",
}
}
+ stand-alone{
+ narrow{
+ "ጃ",
+ "áŒ",
+ "ማ",
+ "ኤ",
+ "ሜ",
+ "áŒ",
+ "áŒ",
+ "ኦ",
+ "ሴ",
+ "ኦ",
+ "ኖ",
+ "ዲ",
+ }
+ }
}
}
+ islamic{
+ monthNames{
+ format{
+ wide{
+ "ሙሀረáˆ",
+ "ሳáˆáˆ­",
+ "ረቢዑሠአወáˆ",
+ "ረቢዑሠአኺር",
+ "ጀማደሠአወáˆ",
+ "ጀማደሠአኺር",
+ "ረጀብ",
+ "ሻእባን",
+ "ረመዳን",
+ "ሸዋáˆ",
+ "á‹™áˆá‰‚ዳህ",
+ "á‹™áˆáˆ‚ጃህ",
+ }
+ }
+ }
+ }
+ }
+ zoneStrings{
+ hourFormat{"+HHmm;-HHmm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/am_ET.txt b/Build/source/libs/icu-xetex/data/locales/am_ET.txt
index d86aebb977b..fb4f6d60b6b 100644
--- a/Build/source/libs/icu-xetex/data/locales/am_ET.txt
+++ b/Build/source/libs/icu-xetex/data/locales/am_ET.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/am_ET.xml
+// * Source File:<path>/common/main/am_ET.xml
// *
// ***************************************************************************
am_ET{
@@ -19,22 +19,26 @@ am_ET{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.41"}
calendar{
gregorian{
AmPmMarkers{
- "ጡዋት",
+ "AM",
"ከሳዓት",
}
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
DateTimePatterns{
- "hh:mm:ss a",
- "hh:mm:ss a",
- "h:mm:ss a",
- "h:mm a",
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
"EEEEᣠdd MMMM ቀን yyyy G",
"dd MMMM yyyy",
"dd-MMM-yy",
- "dd/MM/yy",
+ "yy/MM/dd",
"{1} {0}",
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar.txt b/Build/source/libs/icu-xetex/data/locales/ar.txt
index ce68a4730e4..9fc8201c977 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar.txt
@@ -1,103 +1,159 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar.xml
+// * Source File:<path>/common/main/ar.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ar.xml
+ * ICU <specials> source: <path>/xml/main/ar.xml
*/
ar{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
- AD{"اندورا"}
+ 001{"العالم"}
+ 002{"اÙريقيا"}
+ 005{"أمريكا الجنوبية"}
+ 009{"أوقيانوسيا"}
+ 011{"غرب اÙريقيا"}
+ 013{"أمريكا الوسطى"}
+ 014{"شرق اÙريقيا"}
+ 015{"شمال اÙريقيا"}
+ 017{"وسط اÙريقيا"}
+ 018{"جنوب اÙريقيا"}
+ 019{"الأمريكتين"}
+ 021{"شمال أمريكا"}
+ 029{"الكاريبي"}
+ 030{"شرق آسيا"}
+ 034{"جنوب آسيا"}
+ 035{"جنوب شرق آسيا"}
+ 039{"جنوب أوروبا"}
+ 053{"أستراليا ونيوزيلندا"}
+ 054{"ميلانيزيا"}
+ 057{"الجزر الميكرونيزية"}
+ 061{"بولينيزيا"}
+ 142{"آسيا"}
+ 143{"وسط آسيا"}
+ 145{"غرب آسيا"}
+ 150{"أوروبا"}
+ 151{"شرق أوروبا"}
+ 154{"شمال أوروبا"}
+ 155{"غرب أوروبا"}
+ 172{"كومنولث الدول المستقلة"}
+ 419{"أمريكا اللاتينية و الكاريبي"}
+ AD{"أندورا"}
AE{"الامارات العربية المتحدة"}
- AF{"اÙغانستان"}
- AG{"انتيغوا وبربودا"}
- AI{"البانيا"}
- AM{"ارمينيا"}
- AO{"انغولا"}
- AR{"الارجنتين"}
+ AF{"Ø£Ùغانستان"}
+ AG{"أنتيجوا وبربودا"}
+ AI{"أنجويلا"}
+ AL{"ألبانيا"}
+ AM{"أرمينيا"}
+ AN{"جزر الأنتيل الهولندية"}
+ AO{"أنجولا"}
+ AQ{"القطب الجنوبي"}
+ AR{"الأرجنتين"}
+ AS{"ساموا الأمريكية"}
AT{"النمسا"}
- AU{"استراليا"}
- AZ{"آذربيجان"}
+ AU{"أستراليا"}
+ AW{"آروبا"}
+ AX{"جزر أولان"}
+ AZ{"أذربيجان"}
BA{"البوسنة والهرسك"}
BB{"بربادوس"}
- BD{"بنغلاديش"}
+ BD{"بنجلاديش"}
BE{"بلجيكا"}
BF{"بوركينا Ùاسو"}
BG{"بلغاريا"}
BH{"البحرين"}
BI{"بوروندي"}
BJ{"بنين"}
+ BM{"برمودا"}
BN{"بروناي"}
BO{"بوليÙيا"}
BR{"البرازيل"}
- BS{"البهاما"}
+ BS{"الباهاما"}
BT{"بوتان"}
- BW{"بوتسوانا"}
+ BV{"جزيرة بوÙيه"}
+ BW{"بتسوانا"}
BY{"روسيا البيضاء"}
BZ{"بليز"}
CA{"كندا"}
+ CC{"جزر كوكوس (كيلنج)"}
+ CD{"جمهورية الكونغو الديمقراطية"}
CF{"جمهورية اÙريقيا الوسطى"}
- CG{"الكونغو"}
+ CG{"الكونغو - برازاÙيل"}
CH{"سويسرا"}
- CL{"تشيلي"}
+ CI{"ساحل العاج"}
+ CK{"جزر كوك"}
+ CL{"شيلي"}
CM{"الكاميرون"}
CN{"الصين"}
CO{"كولومبيا"}
CR{"كوستاريكا"}
+ CS{"صربيا والجبل الأسود"}
CU{"كوبا"}
- CV{"الرأس الاخضر"}
+ CV{"الرأس الأخضر"}
+ CX{"جزيرة الكريسماس"}
CY{"قبرص"}
CZ{"جمهورية التشيك"}
- DE{"المانيا"}
+ DE{"ألمانيا"}
DJ{"جيبوتي"}
DK{"الدانمرك"}
DM{"دومينيكا"}
- DO{"الجمهورية الدومينيكية"}
+ DO{"جمهورية الدومينيك"}
DZ{"الجزائر"}
- EC{"اكوادور"}
+ EC{"الاكوادور"}
EE{"استونيا"}
EG{"مصر"}
EH{"الصحراء الغربية"}
- ER{"ارتيريا"}
- ES{"اسبانيا"}
+ ER{"اريتريا"}
+ ES{"أسبانيا"}
ET{"اثيوبيا"}
FI{"Ùنلندا"}
FJ{"Ùيجي"}
+ FK{"جزر Ùوكلاند"}
FM{"ميكرونيزيا"}
+ FO{"جزر Ùارو"}
FR{"Ùرنسا"}
- GA{"غابون"}
+ GA{"الجابون"}
GB{"المملكة المتحدة"}
- GD{"غرينادا"}
+ GD{"جرينادا"}
GE{"جورجيا"}
+ GF{"غويانا"}
GH{"غانا"}
+ GI{"جبل طارق"}
+ GL{"جرينلاند"}
GM{"غامبيا"}
GN{"غينيا"}
+ GP{"جوادلوب"}
GQ{"غينيا الاستوائية"}
GR{"اليونان"}
- GT{"غواتيمالا"}
+ GS{"جورجيا الجنوبية وجزر ساندويتش الجنوبية"}
+ GT{"جواتيمالا"}
+ GU{"جوام"}
GW{"غينيا بيساو"}
- GY{"غوايانا"}
+ GY{"غيانا"}
+ HK{"هونج كونج الصينية"}
+ HM{"جزيرة هيرد وماكدونالد"}
HN{"هندوراس"}
HR{"كرواتيا"}
HT{"هايتي"}
- HU{"هنغاريا"}
+ HU{"المجر"}
ID{"اندونيسيا"}
- IE{"ايرلندا"}
+ IE{"أيرلاندا"}
IL{"اسرائيل"}
IN{"الهند"}
+ IO{"المحيط الهندي البريطاني"}
IQ{"العراق"}
IR{"ايران"}
- IS{"ايسلندا"}
+ IS{"أيسلندا"}
IT{"ايطاليا"}
JM{"جامايكا"}
- JO{"الاردن"}
+ JO{"الأردن"}
JP{"اليابان"}
KE{"كينيا"}
- KG{"قيرغيزستان"}
+ KG{"قرغيزستان"}
KH{"كمبوديا"}
KI{"كيريباتي"}
KM{"جزر القمر"}
@@ -105,280 +161,1485 @@ ar{
KP{"كوريا الشمالية"}
KR{"كوريا الجنوبية"}
KW{"الكويت"}
+ KY{"جزر الكايمن"}
KZ{"كازاخستان"}
LA{"لاوس"}
LB{"لبنان"}
LC{"سانت لوسيا"}
LI{"ليختنشتاين"}
- LK{"سري لانكا"}
+ LK{"سريلانكا"}
LR{"ليبيريا"}
LS{"ليسوتو"}
LT{"ليتوانيا"}
- LU{"لوكسومبرغ"}
+ LU{"لوكسمبورج"}
LV{"لاتÙيا"}
LY{"ليبيا"}
MA{"المغرب"}
MC{"موناكو"}
- MD{"مولدوÙا"}
+ MD{"مولداÙيا"}
MG{"مدغشقر"}
MH{"جزر المارشال"}
MK{"مقدونيا"}
ML{"مالي"}
MM{"ميانمار"}
MN{"منغوليا"}
+ MO{"ماكاو الصينية"}
+ MP{"جزر ماريانا الشمالية"}
+ MQ{"مارتينيك"}
MR{"موريتانيا"}
- MT{"مالطة"}
- MU{"موريشوس"}
- MV{"مالديÙ"}
+ MS{"مونتسرات"}
+ MT{"مالطا"}
+ MU{"موريشيوس"}
+ MV{"جزر الملديÙ"}
MW{"ملاوي"}
MX{"المكسيك"}
MY{"ماليزيا"}
MZ{"موزمبيق"}
NA{"ناميبيا"}
+ NC{"كاليدونيا الجديدة"}
NE{"النيجر"}
+ NF{"جزيرة نورÙوك"}
NG{"نيجيريا"}
- NI{"نيكاراغوا"}
+ NI{"نيكاراجوا"}
NL{"هولندا"}
NO{"النرويج"}
- NP{"النيبال"}
- NR{"ناورو"}
- NZ{"زيلندا الجديدة"}
+ NP{"نيبال"}
+ NR{"نورو"}
+ NU{"نيوي"}
+ NZ{"نيوزيلاندا"}
OM{"عمان"}
PA{"بنما"}
PE{"بيرو"}
+ PF{"بولينيزيا [PF]"}
PG{"بابوا غينيا الجديدة"}
PH{"الÙيلبين"}
- PK{"الباكستان"}
+ PK{"باكستان"}
PL{"بولندا"}
+ PM{"سانت بيير وميكولون"}
+ PN{"بتكايرن"}
+ PR{"بورتوريكو"}
PS{"Ùلسطين"}
PT{"البرتغال"}
PW{"بالاو"}
- PY{"باراغواي"}
+ PY{"باراجواي"}
QA{"قطر"}
+ RE{"روينيون"}
RO{"رومانيا"}
RU{"روسيا"}
RW{"رواندا"}
- SA{"العربية السعودية"}
+ SA{"المملكة العربية السعودية"}
SB{"جزر سليمان"}
SC{"سيشل"}
SD{"السودان"}
SE{"السويد"}
SG{"سنغاÙورة"}
+ SH{"سانت هيلنا"}
SI{"سلوÙينيا"}
+ SJ{"سÙالبارد وجان مايان"}
SK{"سلوÙاكيا"}
SL{"سيراليون"}
SM{"سان مارينو"}
SN{"السنغال"}
SO{"الصومال"}
SR{"سورينام"}
- ST{"سان تومي وبرينسيبي"}
+ ST{"ساو تومي وبرينسيبي"}
SV{"السلÙادور"}
- SY{"سورية"}
+ SY{"سوريا"}
SZ{"سوازيلاند"}
+ TC{"جزر الترك وجايكوس"}
TD{"تشاد"}
- TG{"توغو"}
+ TF{"المقاطعات الجنوبية الÙرنسية"}
+ TG{"توجو"}
TH{"تايلند"}
- TJ{"تاجيكستان"}
+ TJ{"طاجكستان"}
+ TK{"توكيلو"}
+ TL{"تيمور الشرقية"}
TM{"تركمانستان"}
TN{"تونس"}
- TO{"تونغا"}
+ TO{"تونجا"}
TR{"تركيا"}
TT{"ترينيداد وتوباغو"}
TV{"توÙالو"}
TW{"تايوان"}
TZ{"تانزانيا"}
- UA{"اوكرانيا"}
- UG{"اوغندا"}
- US{"الاولايات المتحدة الامريكية"}
- UY{"اروغواي"}
- UZ{"ازبكستان"}
+ UA{"أوكرانيا"}
+ UG{"أوغندا"}
+ UM{"جزر الولايات المتحدة البعيدة الصغيرة"}
+ US{"الولايات المتحدة الأمريكية"}
+ UY{"أورجواي"}
+ UZ{"أوزبكستان"}
VA{"الÙاتيكان"}
- VC{"سانت Ùنسنت وجزر غرينادين"}
+ VC{"سانت Ùنسنت وغرنادين"}
VE{"Ùنزويلا"}
+ VG{"جزر Ùرجين البريطانية"}
+ VI{"جزر Ùرجين الأمريكية"}
VN{"Ùيتنام"}
- VU{"Ùانوآتو"}
+ VU{"Ùانواتو"}
+ WF{"جزر والس ÙˆÙوتونا"}
WS{"ساموا"}
YE{"اليمن"}
- ZA{"جنوب اÙريقيا"}
+ YT{"مايوت"}
+ ZA{"جمهورية جنوب اÙريقيا"}
ZM{"زامبيا"}
ZW{"زيمبابوي"}
}
Currencies{
+ ADP{
+ "ADP",
+ "بيستا أندورى",
+ }
AED{
"د.Ø¥.â€",
- "AED",
+ "درهم اماراتى",
+ }
+ AFA{
+ "AFA",
+ "Ø£Ùغاني - 1927-2002",
+ }
+ AFN{
+ "AFN",
+ "Ø£Ùغانى",
+ }
+ ALL{
+ "ALL",
+ "ليك ألباني",
+ }
+ AMD{
+ "AMD",
+ "درام أرمينى",
+ }
+ ANG{
+ "ANG",
+ "جلدر هولندى [ANG]",
+ }
+ AOA{
+ "AOA",
+ "كوانزا أنجولى",
+ }
+ AOK{
+ "AOK",
+ "كوانزا أنجولى - 1977-1990",
+ }
+ AON{
+ "AON",
+ "كوانزا أنجولى جديدة - 1990-2000",
+ }
+ AOR{
+ "AOR",
+ "كوانزا أنجولى معدلة - 1995 - 1999",
+ }
+ ARA{
+ "ARA",
+ "استرال ارجنتينى",
+ }
+ ARP{
+ "ARP",
+ "بيزو أرجنتينى - 1983-1985",
+ }
+ ARS{
+ "ARS",
+ "بيزو أرجنتينى",
+ }
+ ATS{
+ "ATS",
+ "شلن نمساوى",
+ }
+ AUD{
+ "AUD",
+ "دولار أسترالى",
+ }
+ AWG{
+ "AWG",
+ "جلدر أروبى",
+ }
+ AZM{
+ "AZM",
+ "مانات أذريبجانى",
+ }
+ BAD{
+ "BAD",
+ "دينار البوسنة و الهرسك",
+ }
+ BAM{
+ "BAM",
+ "مارك البوسنة و الهرسك قابل للتحويل",
+ }
+ BBD{
+ "BBD",
+ "دولار بربادوسى",
+ }
+ BDT{
+ "BDT",
+ "تاكا بنجلاديشى",
+ }
+ BEF{
+ "BEF",
+ "Ùرنك بلجيكى",
+ }
+ BGL{
+ "BGL",
+ "لي٠بلغارى",
}
BHD{
"د.ب.â€",
- "BHD",
+ "دينار بحرينى",
+ }
+ BIF{
+ "BIF",
+ "Ùرنك بروندى",
+ }
+ BMD{
+ "BMD",
+ "دولار برمودى",
+ }
+ BND{
+ "BND",
+ "دولار بروناى",
+ }
+ BOB{
+ "BOB",
+ "بوليÙاريو",
+ }
+ BOP{
+ "BOP",
+ "بيزو بوليÙÙ‰",
+ }
+ BOV{
+ "BOV",
+ "Ù…Ùدول بوليÙÙ‰",
+ }
+ BRB{
+ "BRB",
+ "نوÙÙˆ كروزايرو برازيلى - 1967-1986",
+ }
+ BRC{
+ "BRC",
+ "كروزادو برازيلى",
+ }
+ BRE{
+ "BRE",
+ "كروزايرو برازيلى - 1990-1993",
+ }
+ BRL{
+ ".â€Ø±.ب",
+ "ريال برازيلي",
+ }
+ BSD{
+ "BSD",
+ "دولار باهامى",
+ }
+ BTN{
+ "BTN",
+ "نولتوم بوتانى",
+ }
+ BUK{
+ "BUK",
+ "كيات بورمى",
+ }
+ BWP{
+ "BWP",
+ "بولا بتسوانى",
+ }
+ BYB{
+ "BYB",
+ "روبل بيلاروسى جديد - 1994-1999",
+ }
+ BYR{
+ "BYR",
+ "روبل بيلاروسى",
+ }
+ BZD{
+ "BZD",
+ "دولار بليزى",
+ }
+ CAD{
+ "CAD",
+ "دولار كندى",
+ }
+ CHF{
+ "CHF",
+ "Ùرنك سويسرى",
+ }
+ CLP{
+ "CLP",
+ "بيزو شيلى",
+ }
+ CNY{
+ "CNY",
+ "يوان صيني",
+ }
+ COP{
+ "COP",
+ "بيزو كولومبى",
+ }
+ CRC{
+ "CRC",
+ "كولن كوستا ريكى",
+ }
+ CSD{
+ "CSD",
+ "دينار صربى",
+ }
+ CSK{
+ "CSK",
+ "كرونة تشيكوسلوÙاكيا",
+ }
+ CUP{
+ "CUP",
+ "بيزو كوبى",
+ }
+ CYP{
+ "CYP",
+ "جنيه قبرصى",
+ }
+ CZK{
+ "CZK",
+ "كرونة تشيكية",
+ }
+ DDM{
+ "DDM",
+ "أوستمارك المانى شرقى",
+ }
+ DEM{
+ "DEM",
+ "مارك المانى",
+ }
+ DJF{
+ "DJF",
+ "Ùرنك جيبوتى",
+ }
+ DKK{
+ "DKK",
+ "كرونة دانماركى",
+ }
+ DOP{
+ "DOP",
+ "بيزو الدومنيكان",
}
DZD{
"د.ج.â€",
- "DZD",
+ "دينار جزائرى",
+ }
+ EEK{
+ "EEK",
+ "كرونة استونية",
}
EGP{
"ج.Ù….â€",
- "EGP",
+ "جنيه مصرى",
+ }
+ ERN{
+ "ERN",
+ "ناكÙا أريترى",
+ }
+ ESP{
+ "ESP",
+ "بيزيتا اسباني",
+ }
+ ETB{
+ "ETB",
+ "بير أثيوبى",
}
EUR{
"€",
- "EUR",
+ "يورو",
+ }
+ FIM{
+ "FIM",
+ "ماركا Ùنلندى",
+ }
+ FJD{
+ "FJD",
+ "دولار Ùيجى",
+ }
+ FKP{
+ "FKP",
+ "جنيه جزر Ùوكلاند",
+ }
+ FRF{
+ "FRF",
+ "Ùرنك Ùرنسى",
}
GBP{
"£",
- "GBP",
+ "جنيه سترليني",
+ }
+ GEL{
+ "GEL",
+ "لارى جورجى",
+ }
+ GHC{
+ "GHC",
+ "سيدى غانى",
+ }
+ GIP{
+ "GIP",
+ "جنيه جبل طارق",
+ }
+ GMD{
+ "GMD",
+ "دلاسي جامبي",
+ }
+ GNF{
+ "GNF",
+ "Ùرنك غينيا",
+ }
+ GNS{
+ "GNS",
+ "سيلى غينيا",
+ }
+ GQE{
+ "GQE",
+ "اكويل جونينا غينيا الاستوائيّة",
+ }
+ GRD{
+ "GRD",
+ "دراخما يونانى",
+ }
+ GTQ{
+ "GTQ",
+ "كوتزال جواتيمالا",
+ }
+ GWE{
+ "GWE",
+ "اسكود برتغالى غينيا",
+ }
+ GWP{
+ "GWP",
+ "بيزو غينيا بيساو",
+ }
+ GYD{
+ "GYD",
+ "دولار غيانا",
+ }
+ HKD{
+ "HKD",
+ "دولار هونج كونج",
+ }
+ HNL{
+ "HNL",
+ "ليمبيرا هنداروس",
+ }
+ HRD{
+ "HRD",
+ "دينار كرواتى",
+ }
+ HRK{
+ "HRK",
+ "كونا كرواتى",
+ }
+ HTG{
+ "HTG",
+ "جوردى هايتى",
+ }
+ HUF{
+ "HUF",
+ "Ùورينت مجرى",
+ }
+ IDR{
+ "IDR",
+ "روبية اندونيسية",
+ }
+ IEP{
+ "IEP",
+ "جنيه ايرلندى",
+ }
+ ILP{
+ "ILP",
+ "جنيه اسرائيلى",
+ }
+ ILS{
+ "ILS",
+ "شيكل اسرائيلى جديد",
+ }
+ INR{
+ ".â€Ø±.Ù‡",
+ "روبيه هندي",
}
IQD{
"د.ع.â€",
- "IQD",
+ "دينار عراقى",
+ }
+ IRR{
+ "IRR",
+ "ريال ايرانى",
+ }
+ ISK{
+ "ISK",
+ "كرونه أيسلندى",
+ }
+ ITL{
+ "₤",
+ "ليرة ايطالية",
+ }
+ JMD{
+ "JMD",
+ "دولار جامايكى",
}
JOD{
"د.Ø£.â€",
- "JOD",
+ "دينار أردنى",
}
JPY{
"Â¥",
- "JPY",
+ "ين ياباني",
+ }
+ KES{
+ "KES",
+ "شلن كينيي",
+ }
+ KGS{
+ "KGS",
+ "سوم قيرغستانى",
+ }
+ KHR{
+ "KHR",
+ "رييال كمبودى",
+ }
+ KMF{
+ ".â€Ù.ج.Ù‚",
+ "Ùرنك جزر القمر",
+ }
+ KPW{
+ "KPW",
+ "وون كوريا الشمالية",
+ }
+ KRW{
+ "KRW",
+ "وون كوريا الجنوبية",
}
KWD{
"د.Ùƒ.â€",
- "KWD",
+ "دينار كويتى",
+ }
+ KYD{
+ "KYD",
+ "دولار جزر كيمن",
+ }
+ KZT{
+ "KZT",
+ "تينغ كازاخستانى",
+ }
+ LAK{
+ "LAK",
+ "كيب لاوسى",
}
LBP{
"Ù„.Ù„.â€",
- "LBP",
+ "جنية لبنانى",
+ }
+ LKR{
+ "LKR",
+ "روبية سريلانكية",
+ }
+ LRD{
+ "LRD",
+ "دولار ليبيري",
+ }
+ LSL{
+ "LSL",
+ "لوتى ليسوتو",
+ }
+ LSM{
+ "LSM",
+ "مالوتى",
+ }
+ LTL{
+ "LTL",
+ "الليتا الليتوانية",
+ }
+ LTT{
+ "LTT",
+ "تالوناس ليتوانى",
+ }
+ LUC{
+ "LUC",
+ "Ùرنك لوكسمبرج قابل للتحويل",
+ }
+ LUF{
+ "LUF",
+ "Ùرنك لوكسمبرج",
+ }
+ LUL{
+ "LUL",
+ "Ùرنك لوكسمبرج المالى",
+ }
+ LVL{
+ "LVL",
+ "لاتس لاتÙيا",
+ }
+ LVR{
+ "LVR",
+ "روبل لاتÙيا",
}
LYD{
"د.Ù„.â€",
- "LYD",
+ "دينار ليبى",
}
MAD{
"د.Ù….â€",
- "MAD",
+ "درهم مغربى",
+ }
+ MDL{
+ "MDL",
+ "لاو مولدوÙÙ‰",
+ }
+ MGA{
+ "MGA",
+ "ارياري مدغشقر",
+ }
+ MGF{
+ "MGF",
+ "Ùرنك مدغشقر",
+ }
+ MKD{
+ "MKD",
+ "دينار مقدونى",
+ }
+ MLF{
+ "MLF",
+ "Ùرنك مالى",
+ }
+ MMK{
+ "MMK",
+ "كيات ميانمار",
+ }
+ MNT{
+ "MNT",
+ "توغروغ منغولى",
+ }
+ MRO{
+ ".â€Ø£.Ù…",
+ "أوقية موريتانية",
+ }
+ MTL{
+ "MTL",
+ "ليرة مالطية",
+ }
+ MTP{
+ "MTP",
+ "جنيه مالطى",
+ }
+ MUR{
+ "MUR",
+ "روبي موريشي",
+ }
+ MVR{
+ "MVR",
+ "روÙيه جزر المالديÙ",
+ }
+ MWK{
+ "MWK",
+ "كواشا مالاوى",
+ }
+ MXN{
+ "MXN",
+ "بيزو مكسيكى",
+ }
+ MXP{
+ "MXP",
+ "بيزو Ùضى مكسيكى - 1861-1992",
+ }
+ MYR{
+ "MYR",
+ "رينغيت ماليزى",
+ }
+ MZE{
+ "MZE",
+ "اسكود موزمبيقى",
+ }
+ NAD{
+ "NAD",
+ "دولار نامبيا",
+ }
+ NGN{
+ "NGN",
+ "نايرا نيجيرى",
+ }
+ NIC{
+ "NIC",
+ "كوردوبة نيكاراجوا",
+ }
+ NLG{
+ "NLG",
+ "جلدر هولندى",
+ }
+ NOK{
+ "NOK",
+ "كرونة نرويجية",
+ }
+ NPR{
+ "NPR",
+ "روبية نيبالي",
+ }
+ NZD{
+ "NZD",
+ "دولار نيوزيلندى",
}
OMR{
"ر.ع.â€",
- "OMR",
+ "ريال عمانى",
+ }
+ PAB{
+ "PAB",
+ "بالبوا بنمى",
+ }
+ PGK{
+ "PGK",
+ "كينا بابوا غينيا الجديدة",
+ }
+ PHP{
+ "PHP",
+ "بيزو Ùلبينى",
+ }
+ PKR{
+ "PKR",
+ "روبية باكستاني",
+ }
+ PLN{
+ "PLN",
+ "زلوتى بولندى",
+ }
+ PLZ{
+ "PLZ",
+ "زلوتى بولندى - 1950-1995",
+ }
+ PTE{
+ "PTE",
+ "اسكود برتغالى",
+ }
+ PYG{
+ "PYG",
+ "جواراني باراجواي",
}
QAR{
"ر.Ù‚.â€",
- "QAR",
+ "ريال قطرى",
+ }
+ RHD{
+ "RHD",
+ "دولار روديسى",
+ }
+ ROL{
+ "ROL",
+ "ليو رومانى قديم",
+ }
+ RUB{
+ "ر.ر.â€",
+ "روبل روسي",
+ }
+ RUR{
+ "RUR",
+ "روبل روسى - 1991-1998",
+ }
+ RWF{
+ "RWF",
+ "Ùرنك رواندى",
}
SAR{
"ر.س.â€",
- "SAR",
+ "ريال سعودى",
+ }
+ SBD{
+ "SBD",
+ "دولار جزر سليمان",
+ }
+ SCR{
+ "SCR",
+ "روبية سيشيلية",
}
SDD{
".â€Ø¯.س",
- "SDD",
+ "دينار سوداني",
}
SDP{
"ج.س.â€",
- "SDP",
+ "جنيه سودانى",
+ }
+ SEK{
+ "SEK",
+ "كرونة سويدية",
+ }
+ SGD{
+ "SGD",
+ "دولار سنغاÙورى",
+ }
+ SHP{
+ "SHP",
+ "جنيه سانت هيلين",
+ }
+ SIT{
+ "SIT",
+ "تولار سلوÙيني",
+ }
+ SKK{
+ "SKK",
+ "كرونة سلوÙاكية",
+ }
+ SLL{
+ "SLL",
+ "ليون سيراليونى",
+ }
+ SOS{
+ "SOS",
+ "شلن صومالى",
+ }
+ SRD{
+ "SRD",
+ "دولار سورينامى",
+ }
+ SRG{
+ "SRG",
+ "جلدر سورينامى",
+ }
+ STD{
+ "STD",
+ "دوبرا ساو تومي وبرينسيبي",
+ }
+ SUR{
+ "SUR",
+ "روبل سوÙيتى",
+ }
+ SVC{
+ "SVC",
+ "كولون سلÙادورى",
}
SYP{
"Ù„.س.â€",
- "SYP",
+ "جنيه سورى",
+ }
+ SZL{
+ "SZL",
+ "ليلانجيني سوازيلندى",
+ }
+ THB{
+ "THB",
+ "باخت تايلاندى",
+ }
+ TJR{
+ "TJR",
+ "روبل طاجيكستانى",
+ }
+ TJS{
+ "TJS",
+ "سوموني طاجيكستانى",
+ }
+ TMM{
+ "TMM",
+ "مانات تركمنستانى",
}
TND{
"د.ت.â€",
- "TND",
+ "دينارتونسى",
+ }
+ TPE{
+ "TPE",
+ "اسكود تيمورى",
+ }
+ TRL{
+ "TRL",
+ "ليرة تركي",
+ }
+ TRY{
+ "TRY",
+ "ليرة تركية جديدة",
+ }
+ TTD{
+ "TTD",
+ "دولار ترينداد و توباجو",
+ }
+ TWD{
+ "TWD",
+ "دولار تايوانى",
+ }
+ TZS{
+ "TZS",
+ "شلن تنزانى",
+ }
+ UAH{
+ "UAH",
+ "هريÙنيا أوكرانى",
+ }
+ UGS{
+ "UGS",
+ "شلن أوغندى - 1966-1987",
+ }
+ UGX{
+ "UGX",
+ "شلن أوغندى",
}
USD{
"$",
- "USD",
+ "دولار أمريكي",
+ }
+ UYP{
+ "UYP",
+ "بيزو أوروجواى - 1975-1993",
+ }
+ UZS{
+ "UZS",
+ "سوم أوزبكستانى",
+ }
+ VEB{
+ "VEB",
+ "بوليÙار Ùنزويلي",
+ }
+ VND{
+ "VND",
+ "دونج Ùيتنامى",
+ }
+ XAF{
+ ".â€Ù.ا",
+ "Ùرنك اÙريقي",
+ }
+ XAG{
+ "XAG",
+ "Ùضة",
+ }
+ XAU{
+ "XAU",
+ "ذهب",
+ }
+ XBA{
+ "XBA",
+ "الوحدة الأوروبية المركبة",
+ }
+ XBB{
+ "XBB",
+ "الوحدة المالية الأوروبية",
+ }
+ XBC{
+ "XBC",
+ "الوحدة الحسابية الأوروبية",
+ }
+ XCD{
+ "XCD",
+ "دولار شرق الكاريبى",
+ }
+ XEU{
+ "XEU",
+ "وحدة النقد الأوروبية",
+ }
+ XFO{
+ "XFO",
+ "Ùرنك Ùرنسى ذهبى",
+ }
+ XPT{
+ "XPT",
+ "البلاتين",
+ }
+ XTS{
+ "XTS",
+ "كود اختبار العملة",
+ }
+ XXX{
+ "XXX",
+ "بدون عملة",
+ }
+ YDD{
+ "YDD",
+ "دينار يمنى",
}
YER{
"ر.ÙŠ.â€",
- "YER",
+ "ريال يمنى",
+ }
+ YUD{
+ "YUD",
+ "دينار يوغسلاÙÙ‰",
+ }
+ YUN{
+ "YUN",
+ "دينار يوغسلاÙÙ‰ قابل للتحويل",
+ }
+ ZAL{
+ "ZAL",
+ "راند جنوب Ø£Ùريقيا -مالى",
+ }
+ ZAR{
+ "ZAR",
+ "راند جنوب Ø£Ùريقيا",
+ }
+ ZMK{
+ "ZMK",
+ "كواشا زامبى",
+ }
+ ZRN{
+ "ZRN",
+ "زائير زائيرى جديد",
+ }
+ ZRZ{
+ "ZRZ",
+ "زائير زائيرى",
+ }
+ ZWD{
+ "ZWD",
+ "دولار زمبابوى",
}
}
- ExemplarCharacters{"[Ø¡-غـ-ْ‌â€â€â€Ž]"}
+ ExemplarCharacters{"[Ù‹-Ù’ Ù€ Ø¡-غ Ù-ÙŠ]"}
Keys{
calendar{"تقويم"}
collation{"الترتيب"}
currency{"العملات"}
}
Languages{
- aa{"الاÙارية"}
- ab{"الابخازية"}
- af{"الاÙريقية"}
- afa{"اÙرو-اسيوية"}
- ang{"انكليزية، قديم"}
+ aa{"الأÙارية"}
+ ab{"الأبخازية"}
+ ace{"الأتشينيزية"}
+ ach{"الأكولية"}
+ ada{"الأدانجمية"}
+ ady{"الأديجه"}
+ ae{"الأÙستية"}
+ af{"الأÙريقية"}
+ afa{"الأÙرو آسيوية - أخرى"}
+ afh{"الأÙريهيلية"}
+ ain{"الآينوية"}
+ ak{"الأكانية"}
+ akk{"الأكادية"}
+ ale{"الأليوتية"}
+ alg{"اللغات الأمريكية الهندية"}
+ alt{"الألطائية الجنوبية"}
+ am{"الأمهرية"}
+ an{"الأراجونية"}
+ ang{"الانجليزية القديمة"}
+ apa{"اللغات الأباتشية"}
ar{"العربية"}
- arc{"الارامية"}
- az{"اذرية"}
+ arc{"الآرامية"}
+ arn{"الأروكانية"}
+ arp{"الأراباهو"}
+ art{"الصناعية - أخرى"}
+ arw{"الأراواكية"}
+ as{"الأسامية"}
+ ast{"الأسترية"}
+ ath{"اللغات الأزباسكانية"}
+ aus{"اللغات الأسترالية"}
+ av{"الأÙاريكية"}
+ awa{"الأوادية"}
+ ay{"الأيمارا"}
+ az{"الأذرية"}
+ ba{"الباشكيرية"}
+ bad{"الباندا"}
+ bai{"اللغات الباميليكية"}
bal{"البلوشية"}
+ ban{"اللغة البالية"}
+ bas{"الباسا"}
+ bat{"البلطيقية - أخرى"}
be{"البيلوروسية"}
+ bej{"البيجا"}
+ bem{"البيمبا"}
ber{"البربرية"}
bg{"البلغارية"}
+ bh{"البيهارية"}
+ bho{"البهوجبرية"}
+ bi{"البيسلامية"}
+ bik{"البيكولية"}
+ bin{"البينية"}
+ bla{"السيكسيكية"}
+ bm{"البامبارا"}
bn{"البنغالية"}
+ bnt{"البانتو"}
bo{"التبتية"}
+ br{"البريتونية"}
+ bra{"البراجية"}
bs{"البوسنية"}
+ btk{"الباتاكية"}
+ bua{"البرياتية"}
+ bug{"البجينيزية"}
+ byn{"البلينية"}
ca{"الكاتالوينية"}
+ cad{"الكادو"}
+ cai{"الهندية الأمريكية الوسطى - أخرى"}
+ car{"الكاريبية"}
+ cau{"القوقازية - أخرى"}
ce{"الشيشانية"}
+ ceb{"السيبيونو"}
+ cel{"السلتية - أخرى"}
+ ch{"التشامورو"}
+ chb{"التشيبشا"}
+ chg{"التشاجاتاى"}
+ chk{"التشكيزية"}
+ chn{"الشينوك جارجون"}
+ cho{"الشوكتو"}
+ chp{"الشيباوايان"}
+ chr{"الشيروكى"}
+ chy{"الشايان"}
+ cmc{"اللغات التشاميكية"}
+ co{"الكورسيكية"}
cop{"قبطية"}
+ cpe{"الكرييولى Ùˆ اللغات المبسطة الأخرى للتÙاهم بين الشعوب على أساس الأنجليزية"}
+ cpf{"الكرييولى Ùˆ اللغات المبسطة الأخرى للتÙاهم بين الشعوب على أساس الÙرنسية"}
+ cpp{"الكرييولى Ùˆ اللغات المبسطة الأخرى للتÙاهم بين الشعوب على أساس البرتغالية"}
+ cr{"الكرى"}
+ crh{"تركى كريمين، لغة توركية كريمينية"}
+ crp{"الكرييولى Ùˆ اللغات المبسطة الأخرى للتÙاهم بين الشعوب - أخرى"}
cs{"التشيكية"}
+ csb{"الكاشبايان"}
+ cu{"سلاÙية كنسية"}
+ cus{"الكشيتيك - أخرى"}
+ cv{"التشÙاش"}
cy{"الولزية"}
da{"الدانماركية"}
- de{"الالمانية"}
+ dak{"الداكوتا"}
+ dar{"الدارجوا"}
+ day{"الدياك"}
+ de{"الألمانية"}
+ del{"الديلوير"}
+ dgr{"الدوجريب"}
+ din{"الدنكا"}
+ doi{"الدوجرى"}
+ dra{"الدراÙيدين - أخرى"}
+ dsb{"الصربية السÙلى"}
+ dua{"الديولا"}
+ dum{"الهولندية الوسطى"}
dv{"المالديÙية"}
+ dyu{"الدايلا"}
dz{"الزونخاية"}
- egy{"مصرية، قديمة"}
+ efi{"الاÙيك"}
+ egy{"المصرية القديمة"}
+ eka{"الاكاجك"}
el{"اليونانية"}
+ elx{"الامايت"}
en{"الانجليزية"}
+ enm{"الانجليزية الوسطى"}
eo{"اسبرانتو"}
- es{"الاسبانية"}
- et{"استونية"}
+ es{"الأسبانية"}
+ et{"الأستونية"}
+ eu{"لغة الباسك"}
+ ewo{"الايوندو"}
fa{"الÙارسية"}
+ fan{"الÙانج"}
+ fat{"الÙانتى"}
+ ff{"الÙلة"}
fi{"الÙنلندية"}
+ fil{"الÙلبينية"}
+ fiu{"Ùينو أجرايان - أخرى"}
fj{"الÙيجية"}
+ fo{"الÙارويز"}
+ fon{"الÙون"}
fr{"الÙرنسية"}
+ frm{"الÙرنسية الوسطى"}
+ fro{"الÙرنسية القديمة"}
+ fur{"الÙريلايان"}
+ fy{"الÙريزيان"}
+ ga{"الأيرلندية"}
+ gay{"الجايو"}
+ gba{"الجبيا"}
+ gd{"الغيلية الأسكتلندية"}
+ gem{"الجرمانية (أخرى)"}
+ gez{"الجيز"}
+ gil{"لغة أهل جبل طارق"}
+ gl{"الجاليكية"}
+ gmh{"الألمانية العليا الوسطى"}
+ gn{"الجوارانى"}
+ goh{"الألمانية العليا القديمة"}
+ gon{"الجندى"}
+ gor{"الجورونتالو"}
+ got{"الجرمانية"}
+ grb{"الجريبو"}
+ grc{"اليونانية القديمة"}
gu{"الغوجاراتية"}
+ gv{"المنكية"}
+ ha{"الهوسا"}
+ hai{"الهيدا"}
+ haw{"لغة أهل الهاواى"}
he{"العبرية"}
hi{"الهندية"}
+ hil{"الهيليجينون"}
+ him{"الهيماتشالى"}
+ hit{"الحثية"}
+ hmn{"الهمونجية"}
+ ho{"الهيرى موتو"}
hr{"الكرواتية"}
+ hsb{"الصربية العليا"}
ht{"الهايتية"}
hu{"الهنغارية"}
- hy{"الارمنية"}
- id{"الاندونيسية"}
+ hup{"الهبا"}
+ hy{"الأرمينية"}
+ hz{"الهيريرو"}
+ ia{"اللّغة الوسيطة"}
+ iba{"الايبان"}
+ id{"الأندونيسية"}
+ ie{"الانترلينج"}
+ ig{"الايجبو"}
+ ii{"السيتشيون يى"}
+ ijo{"الايجو"}
+ ik{"الاينبياك"}
+ ilo{"الايلوكو"}
+ inc{"الهندية - أخرى"}
+ ine{"الهندية الأوروبية - أخرى"}
+ inh{"الانجوشية"}
+ io{"الايدو"}
ira{"الايرانية"}
+ iro{"اللغات الايروكويانية"}
+ is{"الأيسلاندية"}
it{"الايطالية"}
+ iu{"الاينكتيتت"}
ja{"اليابانية"}
+ jbo{"اللوجبان"}
+ jpr{"الجيدو الÙارسى"}
+ jrb{"الجيدو العربى"}
+ jv{"الجاوية"}
+ ka{"الجورجية"}
+ kaa{"الكارا-كالباك"}
+ kab{"القبيلية"}
+ kac{"الكاتشين"}
+ kam{"الكامبا"}
+ kar{"الكاريين"}
+ kaw{"الكوى"}
+ kbd{"الكاباردايان"}
+ kg{"الكونغو"}
+ khi{"الخويسان - أخرى"}
+ kho{"الخوتانيز"}
+ ki{"الكيكيو"}
+ kj{"الكيونياما"}
+ kk{"الكازاخستانية"}
+ kl{"الكالاليست"}
km{"الخميرية"}
+ kmb{"الكيمبندو"}
+ kn{"الكانادا"}
ko{"الكورية"}
+ kok{"الكونكانية"}
+ kos{"الكوسراين"}
+ kpe{"الكبيل"}
+ kr{"الكانيورى"}
+ krc{"الكاراتشاى-بالكار"}
+ kro{"الكرو"}
ks{"الكاشميرية"}
ku{"الكردية"}
+ kum{"الكميك"}
+ kut{"الكتيناى"}
+ kv{"الكومى"}
+ kw{"الكورنية"}
+ ky{"القيرغستانية"}
la{"اللاتينية"}
+ lad{"الاسباعبرية"}
+ lah{"اللاهندا"}
+ lam{"اللامبا"}
+ lb{"اللوكسمبرجية"}
+ lez{"الليزجهايانية"}
+ lg{"الجاندا"}
+ li{"الليمبرجيشية"}
+ ln{"اللينجالا"}
+ lo{"اللاوية"}
+ lol{"المنغولية [lol]"}
+ loz{"اللوزى"}
lt{"اللتوانية"}
+ lu{"اللبا-كاتانجا"}
+ lua{"اللبا-لؤلؤ"}
+ lui{"اللوسينو"}
+ lun{"اللوندا"}
+ luo{"اللو"}
+ lus{"اللشاى"}
lv{"اللاتÙية"}
+ mad{"المادريز"}
+ mag{"الماجا"}
+ mak{"الماكاسار"}
+ man{"الماندينغ"}
+ map{"الأوسترونيسيان"}
+ mas{"الماساي"}
+ mdf{"الموكشا"}
+ mdr{"الماندار"}
+ men{"الميند"}
+ mg{"المالاجاشية"}
+ mga{"الأيرلندية الوسطى"}
+ mh{"المارشالية"}
+ mi{"الماورية"}
+ mic{"الميكماكيونية"}
+ min{"المينانجكاباو"}
+ mis{"اللغات المتنوعة"}
+ mk{"المقدونية"}
+ mkh{"المون خمير- أخرى"}
+ ml{"الماليالام"}
mn{"المنغولية"}
+ mnc{"المانشو"}
+ mni{"المانيبرى"}
+ mno{"لغات مانوبو"}
+ mo{"المولدوÙية"}
+ moh{"الموهوك"}
+ mr{"الماراثى"}
ms{"لغة الملايو"}
mt{"المالطية"}
+ mul{"اللغات المتعددة"}
+ mun{"لغات المندا"}
+ mwl{"الميرانديز"}
+ mwr{"الماروارى"}
my{"البورمية"}
+ myn{"لغات المايا"}
+ myv{"اللغة الارزية"}
+ na{"النورو"}
+ nah{"الناهيوتل"}
+ nai{"الهندية الأمريكية الشمالية - أخرى"}
+ nap{"اللغة النابولية"}
+ nb{"البوكمالية النرويجية"}
+ nd{"النديبيل الشمالى"}
+ nds{"الألمانية السÙلى"}
ne{"النيبالية"}
+ new{"النيوارى"}
+ ng{"الندونجا"}
+ nia{"النياس"}
+ nic{"النيجر - كوردوÙانايان"}
nl{"الهولندية"}
+ nn{"النينورسك النرويجي"}
+ no{"النرويجية"}
+ nog{"النوجاى"}
+ non{"النورس القديم"}
+ nr{"النديبيل الجنوبى"}
+ nub{"اللغات النوبية"}
+ nv{"الناÙاجو"}
+ nwc{"النوارية التقليدية"}
+ ny{"النيانجا، التشيتشوا، التشوا"}
+ nym{"النيامويزى"}
+ nyn{"النيانكول"}
+ nyo{"النيورو"}
+ nzi{"النزيما"}
+ oc{"الأوكيتان (بعد 1500)ØŒ بروÙينسية"}
+ oj{"الأوجيبوا"}
+ om{"الأورومو"}
+ or{"الأورييا"}
+ os{"الأوسيتيك"}
+ osa{"الأوساج"}
+ ota{"التركية العثمانية"}
pa{"البنجابية"}
- pl{"البولونية"}
+ paa{"الغينية - أخرى"}
+ pag{"البانجاسينان"}
+ pal{"البهلوية"}
+ pam{"البامبانجا"}
+ pap{"البابيامينتو"}
+ pau{"البالوان"}
+ peo{"الÙارسية القديمة"}
+ phi{"الÙليبينية - أخرى"}
+ phn{"الÙينيقية"}
+ pi{"البالية"}
+ pl{"البولندية"}
+ pon{"البوهنبيايان"}
+ pra{"اللغات البراقريطية"}
+ pro{"البروÙانسية القديمة"}
ps{"البشتونية"}
pt{"البرتغالية"}
+ qu{"الكويتشوا"}
+ raj{"الراجاسثانية"}
+ rap{"الرابانى"}
+ rar{"الراروتونجانى"}
+ rm{"الرهايتو-رومانس"}
+ rn{"الرندى"}
ro{"الرومانية"}
+ roa{"الرومانسية - أخرى"}
+ rom{"الرومانية [rom]"}
ru{"الروسية"}
- smi{"اللغات السامية"}
- sq{"الالبانية"}
+ rup{"الأرومانيان"}
+ rw{"الكينيارواندا"}
+ sa{"السنسكريتية"}
+ sad{"السانداوى"}
+ sah{"الياكت"}
+ sai{"الهندية الأمريكية الجنوبية - أخرى"}
+ sal{"لغات ساليشان"}
+ sam{"الآرامية السومارية"}
+ sas{"الساساك"}
+ sat{"السانتالى"}
+ sc{"السردينية"}
+ scn{"الصقلية"}
+ sco{"الأسكتلندية"}
+ sd{"السيندى"}
+ se{"السامي الشمالى"}
+ sel{"السيلكب"}
+ sem{"السامية - أخرى"}
+ sg{"السانجو"}
+ sga{"الأيرلندية القديمة"}
+ sgn{"لغات الأشارة"}
+ shn{"الشانية"}
+ si{"السريلانكية"}
+ sid{"السيدامو"}
+ sio{"لغات السيويون"}
+ sit{"الصينية التيبتية - أخرى"}
+ sk{"السلوÙاكية"}
+ sl{"السلوÙانية"}
+ sla{"السلاÙية - أخرى"}
+ sm{"الساموائية"}
+ sma{"السامي الجنوبى"}
+ smi{"اللغات السامية - أخرى"}
+ smj{"اللول سامى"}
+ smn{"الاينارى سامى"}
+ sms{"السكولت سامى"}
+ sn{"الشونا"}
+ snk{"السونينك"}
+ so{"الصومالية"}
+ sog{"السوجدين"}
+ son{"السونجهاى"}
+ sq{"الألبانية"}
sr{"الصربية"}
+ srn{"السرانان تونجو"}
+ ss{"السواتى"}
+ ssa{"النيلية الصحراوية - أخرى"}
+ su{"السودانية"}
+ suk{"السوكوما"}
+ sus{"السوسو"}
+ sux{"السومارية"}
sv{"السويدية"}
sw{"السواحلية"}
syr{"السريانية"}
+ ta{"التاميلية"}
+ tai{"تاى - أخرى"}
+ te{"التيلجو"}
+ tem{"التيمن"}
+ ter{"التيرينو"}
+ tet{"التيتم"}
+ tg{"الطاجيكية"}
th{"التايلاندية"}
+ ti{"التيجرينيا"}
+ tig{"التيجر"}
+ tiv{"التيÙ"}
+ tk{"التركمانية"}
+ tkl{"التوكيلاو"}
tl{"التاغالوغية"}
+ tlh{"الكلينجون"}
+ tli{"التلينغيتية"}
+ tmh{"التاماشيك"}
+ tn{"التسوانية"}
+ to{"تونجا - جزر تونجا"}
+ tog{"تونجا - نياسا"}
+ tpi{"التوك بيسين"}
tr{"التركية"}
- tt{"التترية"}
- ug{"الاغورية"}
- uk{"الاوكرانية"}
- ur{"الاردية"}
+ ts{"السونجا"}
+ tsi{"التسيمشيان"}
+ tt{"التتارية"}
+ tum{"التامبوكا"}
+ tup{"اللغات التوبية"}
+ tut{"الألطائية - أخرى"}
+ tvl{"التوÙالو"}
+ tw{"التوى"}
+ ty{"التاهيتية"}
+ udm{"الأدمرت"}
+ ug{"الأغورية"}
+ uga{"اليجاريتيك"}
+ uk{"الأوكرانية"}
+ umb{"الأمبندو"}
+ und{"غير محدده"}
+ ur{"الأردية"}
+ uz{"الاوزباكية"}
+ vai{"الÙاى"}
+ ve{"الÙيندا"}
vi{"الÙيتنامية"}
+ vot{"الÙوتيك"}
+ wa{"الولونية"}
+ wak{"لغات الواكاشان"}
+ wal{"الوالامو"}
+ war{"الواراى"}
+ was{"الواشو"}
+ wen{"اللغات الصربية"}
+ wo{"الولوÙ"}
+ xal{"الكالميك"}
+ yao{"الياو"}
+ yap{"اليابيز"}
+ yi{"اليديشية"}
+ yo{"اليوروبية"}
+ ypk{"اللغات اليوبيكية"}
+ za{"الزهيونج"}
+ zap{"الزابوتيك"}
+ zen{"الزيناجا"}
zh{"الصينية"}
+ znd{"الزاند"}
+ zun{"الزونية"}
}
LocaleScript{
"Arab",
@@ -394,7 +1655,7 @@ ar{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -405,42 +1666,132 @@ ar{
}
Scripts{
Arab{"العربية"}
- Armn{"الارمنية"}
+ Armn{"الأرمينية"}
+ Bali{"البالية"}
+ Batk{"الباتاك"}
Beng{"البنغالية"}
- Brai{"برايل"}
+ Blis{"رموز بليس"}
+ Bopo{"البوبوموÙÙˆ"}
+ Brah{"الهندوسية"}
+ Brai{"البرايل"}
+ Bugi{"البجينيز"}
+ Buhd{"البهيدية"}
+ Cans{"رموز أصلية كندية موحدة"}
+ Cham{"التشامية"}
+ Cher{"الشيروكى"}
+ Cirt{"السيرث"}
Copt{"القبطية"}
Cprt{"القبرصية"}
+ Cyrl{"السيريلية"}
+ Cyrs{"السيريلية - متغير السلاÙية الكنسية القديمة"}
+ Deva{"الديÙاناجارى"}
+ Dsrt{"الديسيريت"}
+ Egyd{"الديموطيقية"}
+ Egyh{"الهيراطيقية"}
+ Egyp{"الهيروغليÙية"}
Ethi{"الاثيوبية"}
+ Geok{"الأبجدية الجورجية - أسومتاÙرلى Ùˆ نسخرى"}
Geor{"الجورجية"}
+ Glag{"الجلاجوليتيك"}
+ Goth{"القوطية"}
Grek{"اليونانية"}
- Gujr{"تاغجراتية"}
+ Gujr{"التاغجراتية"}
+ Guru{"الجرمخى"}
+ Hang{"الهانجل"}
+ Hani{"الهان"}
+ Hano{"الهانونو"}
+ Hans{"الهان المبسطة"}
+ Hant{"الهان التقليدية"}
Hebr{"العبرية"}
+ Hira{"الهيراجانا"}
+ Hmng{"الباهوه همونج"}
+ Hrkt{"الكتكانا أو الهيراجانا"}
+ Hung{"المجرية القديمة"}
+ Inds{"اندس - هارابان"}
+ Ital{"اللأيطالية القديمة"}
+ Java{"الجاوية"}
+ Kali{"الكياه لى"}
+ Kana{"الكتكانا"}
+ Khar{"الخاروشتى"}
Khmr{"الخميرية"}
- Latn{"اللاتنية"}
+ Knda{"الكانادا"}
+ Laoo{"اللاو"}
+ Latf{"اللاتينية - متغير Ùراكتر"}
+ Latg{"اللاتينية - متغير غيلى"}
+ Latn{"اللاتينية"}
+ Lepc{"الليبتشا - رونج"}
+ Limb{"الليمبو"}
+ Lina{"الخطية أ"}
+ Linb{"الخطية ب"}
+ Mand{"المانداينية"}
+ Maya{"المايا الهيروغليÙية"}
+ Mero{"الميرويتيك"}
+ Mlym{"الماليالام"}
Mong{"المغولية"}
+ Mymr{"الميانمار"}
+ Nkoo{"انكو"}
+ Ogam{"الأوجهام"}
+ Orkh{"الأورخون"}
+ Orya{"الأوريا"}
+ Osma{"الأوسمانيا"}
+ Perm{"البيرميكية القديمة"}
+ Phag{"الÙاجسبا"}
+ Phnx{"الÙينيقية"}
+ Plrd{"الصوتيات الجماء"}
+ Qaai{"الموروث"}
+ Roro{"رنجورنجو"}
+ Runr{"الرونى"}
+ Sara{"الساراتى"}
+ Shaw{"الشوانى"}
+ Sinh{"السينهالا"}
+ Sylo{"السيلوتى ناجرى"}
Syrc{"السريانية"}
- Taml{"التاميل"}
+ Syre{"السريانية [Syre]"}
+ Syrj{"السريانية - متغير غربى"}
+ Syrn{"السريانية - متغير شرقى"}
+ Tagb{"التاجبانوا"}
+ Tale{"التاى لى"}
+ Talu{"التاى لى الجديد"}
+ Taml{"التاميلية"}
+ Telu{"التيلجو"}
+ Teng{"التينجوار"}
+ Tfng{"التيÙيناغ - البربر"}
Tglg{"التغالوغية"}
- Thai{"التايلندية"}
+ Thaa{"الثعنة"}
+ Thai{"التايلاندية"}
Tibt{"التبتية"}
+ Ugar{"الأجاريتيكية"}
+ Vaii{"الÙاى"}
+ Visp{"الكلام المرئى"}
+ Xpeo{"الÙارسية القديمة"}
+ Xsux{"الكتابة المسمارية الأكادية السومارية"}
+ Yiii{"اليى"}
+ Zxxx{"Ø´Ùرة للغات الغير مكتوبة"}
+ Zyyy{"عام"}
+ Zzzz{"Ø´Ùرة للنصوص الغير مشÙرة"}
}
Types{
calendar{
- buddhist{"تقويم بوني"}
- chinese{"تقويم صيني"}
- gregorian{"تقويم ميلادي"}
- hebrew{"تقويم عبري"}
- islamic{"تقويم اسلامي"}
+ buddhist{"التقويم البوذي"}
+ chinese{"التقويم الصيني"}
+ gregorian{"التقويم الميلادي"}
+ hebrew{"التقويم العبري"}
+ islamic{"التقويم الهجري"}
islamic-civil{"تقويم اسلامي مدني"}
- japanese{"تقويم ياباني"}
+ japanese{"التقويم الياباني"}
}
collation{
+ big5han{"الصينية التقليدية (Big5)"}
direct{"ترتيب مباشر"}
+ gb2312han{"الصينية المبسطة (GB2312)"}
phonebook{"ترتيب دليل الهاتÙ"}
traditional{"تقليدي"}
}
}
- Version{"1.46"}
+ Variants{
+ NEDIS{"لهجة ناتيسون"}
+ }
+ Version{"1.68"}
calendar{
buddhist{
eras{
@@ -449,15 +1800,83 @@ ar{
}
}
}
+ coptic{
+ monthNames{
+ format{
+ abbreviated{
+ "توت",
+ "Baba",
+ "هاتور",
+ "كياهك",
+ "Toba",
+ "أمشير",
+ "برامهات",
+ "Baramouda",
+ "بشنس",
+ "Paona",
+ "أبيب",
+ "Mesra",
+ "نسيئ",
+ }
+ wide{
+ "توت",
+ "بابه",
+ "هاتور",
+ "كياهك",
+ "طوبة",
+ "أمشير",
+ "برامهات",
+ "برمودة",
+ "بشنس",
+ "بؤونة",
+ "أبيب",
+ "مسرى",
+ "نسيئ",
+ }
+ }
+ }
+ }
+ ethiopic{
+ monthNames{
+ format{
+ abbreviated{
+ "مسكريم",
+ "Tekemt",
+ "هدار",
+ "تهساس",
+ "Ter",
+ "يكتت",
+ "مجابيت",
+ "Miazia",
+ "جنبت",
+ "Sene",
+ "هامل",
+ "Nehasse",
+ "باجمن",
+ }
+ wide{
+ "مسكريم",
+ "تكمت",
+ "هدار",
+ "تهساس",
+ "تر",
+ "يكتت",
+ "مجابيت",
+ "ميازيا",
+ "جنبت",
+ "سين",
+ "هامل",
+ "نهاس",
+ "باجمن",
+ }
+ }
+ }
+ }
gregorian{
AmPmMarkers{
"ص",
"Ù…",
}
- DateTimeElements:intvector{
- 7,
- 1,
- }
DateTimePatterns{
"z h:mm:ss a",
"h:mm:ss a",
@@ -508,6 +1927,38 @@ ar{
"Ù…",
}
}
+ fields{
+ day{
+ dn{"اليوم"}
+ }
+ era{
+ dn{"العصر"}
+ }
+ hour{
+ dn{"الساعات"}
+ }
+ minute{
+ dn{"الدقائق"}
+ }
+ month{
+ dn{"الشهر"}
+ }
+ second{
+ dn{"الثواني"}
+ }
+ week{
+ dn{"الأسبوع"}
+ }
+ weekday{
+ dn{"اليوم"}
+ }
+ year{
+ dn{"السنة"}
+ }
+ zone{
+ dn{"التوقيت"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -544,7 +1995,7 @@ ar{
"ÙŠ",
"Ù",
"Ù…",
- "Ø¢",
+ "Ø£",
"Ùˆ",
"Ù†",
"Ù„",
@@ -556,11 +2007,57 @@ ar{
}
}
}
- weekend:intvector{
- 5,
- 0,
- 6,
- 86400000,
+ quarters{
+ format{
+ abbreviated{
+ "الربع الأول",
+ "الربع الثاني",
+ "الربع الثالث",
+ "الربع الرابع",
+ }
+ wide{
+ "الربع الأول",
+ "الربع الثاني",
+ "الربع الثالث",
+ "الربع الرابع",
+ }
+ }
+ }
+ }
+ hebrew{
+ monthNames{
+ format{
+ abbreviated{
+ "تشري",
+ "مرحشوان",
+ "كيسلو",
+ "طيست",
+ "شباط",
+ "آذار الأول",
+ "آذار الثاني",
+ "Nisan",
+ "Iyar",
+ "Sivan",
+ "تموز",
+ "Av",
+ "أيلول",
+ }
+ wide{
+ "تشري",
+ "مرحشوان",
+ "كيسلو",
+ "طيست",
+ "شباط",
+ "آذار الأول",
+ "آذار الثاني",
+ "نيسان",
+ "أيار",
+ "سيوان",
+ "تموز",
+ "آب",
+ "Elul",
+ }
+ }
}
}
islamic{
@@ -571,7 +2068,6 @@ ar{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
"محرم",
"صÙر",
@@ -593,6 +2089,55 @@ ar{
eras:alias{"/LOCALE/calendar/islamic/eras"}
monthNames:alias{"/LOCALE/calendar/islamic/monthNames"}
}
+ persian{
+ monthNames{
+ format{
+ abbreviated{
+ "Ùروردین",
+ "أذربيهشت",
+ "خرداد",
+ "تیر",
+ "مرداد",
+ "شهریار",
+ "مهر",
+ "Aban",
+ "Azar",
+ "Dey",
+ "بهمن",
+ "Esfand",
+ }
+ wide{
+ "Ùروردین",
+ "أذربيهشت",
+ "خرداد",
+ "تیر",
+ "مرداد",
+ "شهریار",
+ "مهر",
+ "آيان",
+ "آذر",
+ "دي",
+ "بهمن",
+ "اسÙندار",
+ }
+ }
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"‘"}
+ alternateQuotationStart{"’"}
+ quotationEnd{"“"}
+ quotationStart{"â€"}
+ }
+ layout{
+ characters{"right-to-left"}
+ lines{"top-to-bottom"}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "America:Indiana:Petersburg"{
+ ec{"بيترسبرج"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_AE.txt b/Build/source/libs/icu-xetex/data/locales/ar_AE.txt
index a6d5d6587fe..020680046a3 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_AE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_AE.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_AE.xml
+// * Source File:<path>/common/main/ar_AE.xml
// *
// ***************************************************************************
ar_AE{
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_BH.txt b/Build/source/libs/icu-xetex/data/locales/ar_BH.txt
index c15f54d98af..6b092c3446c 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_BH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_BH.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_BH.xml
+// * Source File:<path>/common/main/ar_BH.xml
// *
// ***************************************************************************
ar_BH{
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_DZ.txt b/Build/source/libs/icu-xetex/data/locales/ar_DZ.txt
index dc7e1eeffc5..975fedf7460 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_DZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_DZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_DZ.xml
+// * Source File:<path>/common/main/ar_DZ.xml
// *
// ***************************************************************************
ar_DZ{
@@ -18,8 +18,22 @@ ar_DZ{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.28"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_EG.txt b/Build/source/libs/icu-xetex/data/locales/ar_EG.txt
index 5ab86c6d365..cd2c19c90c2 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_EG.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_EG.txt
@@ -1,15 +1,22 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_EG.xml
+// * Source File:<path>/common/main/ar_EG.xml
// *
// ***************************************************************************
ar_EG{
- Version{"1.27"}
+ Scripts{
+ Ital{"الأيطالية القديمة"}
+ }
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
eras{
wide{
"قبل الميلاد",
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_IQ.txt b/Build/source/libs/icu-xetex/data/locales/ar_IQ.txt
index de90aa3f960..c79e0a2868d 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_IQ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_IQ.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_IQ.xml
+// * Source File:<path>/common/main/ar_IQ.xml
// *
// ***************************************************************************
ar_IQ{
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_JO.txt b/Build/source/libs/icu-xetex/data/locales/ar_JO.txt
index 1628496369d..c8ae7fa7e7f 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_JO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_JO.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_JO.xml
+// * Source File:<path>/common/main/ar_JO.xml
// *
// ***************************************************************************
ar_JO{
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -55,6 +59,12 @@ ar_JO{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_KW.txt b/Build/source/libs/icu-xetex/data/locales/ar_KW.txt
index 31d1d6db8c5..32b710c4e71 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_KW.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_KW.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_KW.xml
+// * Source File:<path>/common/main/ar_KW.xml
// *
// ***************************************************************************
ar_KW{
- Version{"1.28"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_LB.txt b/Build/source/libs/icu-xetex/data/locales/ar_LB.txt
index 86a53e45b9b..052ad28af21 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_LB.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_LB.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_LB.xml
+// * Source File:<path>/common/main/ar_LB.xml
// *
// ***************************************************************************
ar_LB{
- Version{"1.25"}
+ Version{"1.36"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -55,6 +59,12 @@ ar_LB{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_LY.txt b/Build/source/libs/icu-xetex/data/locales/ar_LY.txt
index 3cab4fe0348..364a418df56 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_LY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_LY.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_LY.xml
+// * Source File:<path>/common/main/ar_LY.xml
// *
// ***************************************************************************
ar_LY{
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_MA.txt b/Build/source/libs/icu-xetex/data/locales/ar_MA.txt
index a44caeaebb5..981ea0a0c82 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_MA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_MA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_MA.xml
+// * Source File:<path>/common/main/ar_MA.xml
// *
// ***************************************************************************
ar_MA{
@@ -18,8 +18,22 @@ ar_MA{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_OM.txt b/Build/source/libs/icu-xetex/data/locales/ar_OM.txt
index dccbb64c5f2..f2f24018eb3 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_OM.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_OM.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_OM.xml
+// * Source File:<path>/common/main/ar_OM.xml
// *
// ***************************************************************************
ar_OM{
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_QA.txt b/Build/source/libs/icu-xetex/data/locales/ar_QA.txt
index 0253e9a1a25..bd9ea12a6b6 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_QA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_QA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_QA.xml
+// * Source File:<path>/common/main/ar_QA.xml
// *
// ***************************************************************************
ar_QA{
@@ -13,9 +13,13 @@ ar_QA{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -29,6 +33,12 @@ ar_QA{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_SA.txt b/Build/source/libs/icu-xetex/data/locales/ar_SA.txt
index cf503490217..e4916f5cc30 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_SA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_SA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_SA.xml
+// * Source File:<path>/common/main/ar_SA.xml
// *
// ***************************************************************************
ar_SA{
@@ -13,9 +13,13 @@ ar_SA{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -29,6 +33,12 @@ ar_SA{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_SD.txt b/Build/source/libs/icu-xetex/data/locales/ar_SD.txt
index 6b7d1b5d42e..fdc3eb0530f 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_SD.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_SD.txt
@@ -1,11 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_SD.xml
+// * Source File:<path>/common/main/ar_SD.xml
// *
// ***************************************************************************
ar_SD{
- Version{"1.24"}
+ Version{"1.35"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_SY.txt b/Build/source/libs/icu-xetex/data/locales/ar_SY.txt
index 2a0bba09228..69d23863e6f 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_SY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_SY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_SY.xml
+// * Source File:<path>/common/main/ar_SY.xml
// *
// ***************************************************************************
ar_SY{
@@ -13,7 +13,7 @@ ar_SY{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.40"}
calendar{
gregorian{
DateTimeElements:intvector{
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_TN.txt b/Build/source/libs/icu-xetex/data/locales/ar_TN.txt
index b99c13ebeb6..85cac3d9b87 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_TN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_TN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_TN.xml
+// * Source File:<path>/common/main/ar_TN.xml
// *
// ***************************************************************************
ar_TN{
@@ -18,7 +18,7 @@ ar_TN{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -27,9 +27,13 @@ ar_TN{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -43,6 +47,12 @@ ar_TN{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ar_YE.txt b/Build/source/libs/icu-xetex/data/locales/ar_YE.txt
index 3a0e46d2081..e9861ca79c3 100644
--- a/Build/source/libs/icu-xetex/data/locales/ar_YE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ar_YE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ar_YE.xml
+// * Source File:<path>/common/main/ar_YE.xml
// *
// ***************************************************************************
ar_YE{
@@ -13,9 +13,13 @@ ar_YE{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
dayNames{
format{
abbreviated{
@@ -29,6 +33,12 @@ ar_YE{
}
}
}
+ weekend:intvector{
+ 5,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/as.txt b/Build/source/libs/icu-xetex/data/locales/as.txt
index 118f001c71d..d616d13597e 100644
--- a/Build/source/libs/icu-xetex/data/locales/as.txt
+++ b/Build/source/libs/icu-xetex/data/locales/as.txt
@@ -1,32 +1,36 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/as.xml
+// * Source File:<path>/common/main/as.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/as.xml
+ * ICU <specials> source: <path>/xml/main/as.xml
*/
as{
+ AuxExemplarCharacters{"[\u200C \u200D ৲]"}
Countries{
IN{"ভাৰত"}
}
Currencies{
INR{
- "Rs.",
+ "টকা",
"INR",
}
}
- ExemplarCharacters{"[à¦-ঃঅ-ঌà¦à¦à¦“-নপ-যলশ-হ়-ৄেৈো-ৎৗড়à§à§Ÿ-ৣৰ-৲‌â€]"}
+ ExemplarCharacters{
+ "[় à¦-ঃ অ-ঋ ৠ ঌ ৡ ঠঠও-ড {ড়} ঢ {ঢ়} ণ ত ৎ থ-ন প-য {য়} ৰ ল ৱ শ-হ ঽ-ৄ ৢ ৣ ে "
+ "ৈ ো-ৠৗ]"
+ }
Languages{
- as{"অসমীয়া"}
+ as{"অসমীয়া"}
}
LocaleScript{
"Beng",
}
- Version{"1.18"}
+ Version{"1.31"}
calendar{
gregorian{
AmPmMarkers{
@@ -72,8 +76,8 @@ as{
"ডিসে",
}
wide{
- "জানà§à§Ÿà¦¾à§°à§€",
- "ফেবà§à§°à§à§Ÿà¦¾à§°à§€",
+ "জানà§à¦¯à¦¼à¦¾à§°à§€",
+ "ফেবà§à§°à§à¦¯à¦¼à¦¾à§°à§€",
"মাৰà§à¦š",
"à¦à¦ªà§à§°à¦¿à¦²",
"মে",
@@ -90,13 +94,12 @@ as{
}
}
zoneStrings{
- {
- "Asia/Calcutta",
- "ভাৰতীয় সময়",
- "ভা. স.",
- "ভাৰতীয় সময়",
- "ভা. স.",
- "à¦à¦²à¦¾à¦¹à¦¾à§±à¦¾à¦¦",
+ "Asia:Calcutta"{
+ ec{"à¦à¦²à¦¾à¦¹à¦¾à§±à¦¾à¦¦"}
+ ld{"ভাৰতীয় সময়"}
+ ls{"ভাৰতীয় সময়"}
+ sd{"ভা. স."}
+ ss{"ভা. স."}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/as_IN.txt b/Build/source/libs/icu-xetex/data/locales/as_IN.txt
index d1ad36fd166..c2ebd5fffd7 100644
--- a/Build/source/libs/icu-xetex/data/locales/as_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/as_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/as_IN.xml
+// * Source File:<path>/common/main/as_IN.xml
// *
// ***************************************************************************
as_IN{
@@ -13,13 +13,9 @@ as_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.17"}
+ Version{"1.29"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h.mm.ss a z",
"h.mm.ss a z",
@@ -31,6 +27,12 @@ as_IN{
"d-M-yyyy",
"{1} {0}",
}
+ availableFormats{
+ MMMMd{"d MMMM"}
+ MMdd{"dd-MM"}
+ yyyyMM{"MM-yyyy"}
+ yyyyMMMM{"MMMM, yyyy"}
+ }
weekend:intvector{
1,
0,
diff --git a/Build/source/libs/icu-xetex/data/locales/az.txt b/Build/source/libs/icu-xetex/data/locales/az.txt
index 0201e6dbb02..c24e0541a2d 100644
--- a/Build/source/libs/icu-xetex/data/locales/az.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az.txt
@@ -1,17 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az.xml
+// * Source File:<path>/common/main/az.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/az.xml
+ * ICU <specials> source: <path>/xml/main/az.xml
*/
az{
+ AuxExemplarCharacters{"[w]"}
Countries{
AZ{"Azərbaycan"}
+ BR{"Braziliya"}
+ CN{"Çin"}
+ DE{"Almaniya"}
+ FR{"Fransa"}
+ IN{"Hindistan"}
+ IT{"Ä°taliya"}
+ JP{"Yaponiya"}
+ RU{"Rusiya"}
+ US{"Amerika Birləşmiş Ştatları"}
}
Currencies{
AZM{
@@ -19,7 +29,7 @@ az{
"Manat",
}
}
- ExemplarCharacters{"[a-vx-zçəğıİöşü]"}
+ ExemplarCharacters{"[a-c ç d e ə f g ğ h i İ ı j-o ö p-s ş t u ü v x-z]"}
Languages{
az{"azərbaycanca"}
}
@@ -37,10 +47,10 @@ az{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.24"}
+ Version{"1.39"}
calendar{
gregorian{
dayNames{
@@ -107,6 +117,22 @@ az{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1-ci kv.",
+ "2-ci kv.",
+ "3-cü kv.",
+ "4-cü kv.",
+ }
+ wide{
+ "1-ci kvartal",
+ "2-ci kvartal",
+ "3-cü kvartal",
+ "4-cü kvartal",
+ }
+ }
+ }
}
}
delimiters{
diff --git a/Build/source/libs/icu-xetex/data/locales/az_AZ.txt b/Build/source/libs/icu-xetex/data/locales/az_AZ.txt
index 7f0528aa55f..dc0888be07f 100644
--- a/Build/source/libs/icu-xetex/data/locales/az_AZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az_AZ.txt
@@ -1,14 +1,22 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az_AZ.xml
+// * Source File:<path>/common/main/az_AZ.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/az_AZ.xml
+ * ICU <specials> source: <path>/xml/main/az_AZ.xml
*/
az_AZ{
"%%ALIAS"{"az_Latn_AZ"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/az_Cyrl.txt b/Build/source/libs/icu-xetex/data/locales/az_Cyrl.txt
index 3066c838d5f..b541a335243 100644
--- a/Build/source/libs/icu-xetex/data/locales/az_Cyrl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az_Cyrl.txt
@@ -1,17 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az_Cyrl.xml
+// * Source File:<path>/common/main/az_Cyrl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/az_Cyrl.xml
+ * ICU <specials> source: <path>/xml/main/az_Cyrl.xml
*/
az_Cyrl{
+ AuxExemplarCharacters{"[ц щ ÑŠ ÑŒ-Ñ]"}
Countries{
AZ{"Ðзәрбајҹан"}
+ BR{"Бразилија"}
+ CN{"Чин"}
+ DE{"Ðлманија"}
+ FR{"ФранÑа"}
+ IN{"ҺиндиÑтан"}
+ IT{"Италија"}
+ JP{"Јапонија"}
+ RU{"РуÑија"}
+ US{"Ðмерика Бирләшмиш Штатлары"}
}
Currencies{
AZM{
@@ -19,14 +29,23 @@ az_Cyrl{
"манат",
}
}
- ExemplarCharacters{"[а-ик-хчшыјғÒÒ¯Ò¹Ò»Ó™Ó©]"}
+ ExemplarCharacters{"[а Ó™ б-г Ò“ д-й ј к Ò Ð»-о Ó© п-у Ò¯ Ñ„ Ñ… Ò» ч Ò¹ ш Ñ‹]"}
Languages{
az{"Ðзәрбајҹан"}
+ de{"алманҹа"}
+ en{"инÒилиÑÒ¹Ó™"}
+ es{"иÑпанҹа"}
+ fr{"франÑызҹа"}
+ it{"италјанҹа"}
+ ja{"јапонҹа"}
+ pt{"португалҹа"}
+ ru{"руÑҹа"}
+ zh{"чинҹә"}
}
LocaleScript{
"Cyrl",
}
- Version{"1.6"}
+ Version{"1.18"}
calendar{
gregorian{
dayNames{
diff --git a/Build/source/libs/icu-xetex/data/locales/az_Cyrl_AZ.txt b/Build/source/libs/icu-xetex/data/locales/az_Cyrl_AZ.txt
index 0f79e425184..4c70b221a06 100644
--- a/Build/source/libs/icu-xetex/data/locales/az_Cyrl_AZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az_Cyrl_AZ.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az_Cyrl_AZ.xml
+// * Source File:<path>/common/main/az_Cyrl_AZ.xml
// *
// ***************************************************************************
az_Cyrl_AZ{
- Version{"1.3"}
+ Version{"1.14"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/az_Latn.txt b/Build/source/libs/icu-xetex/data/locales/az_Latn.txt
index f0081131e8f..3a3a36ec44e 100644
--- a/Build/source/libs/icu-xetex/data/locales/az_Latn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az_Latn.txt
@@ -1,11 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az_Latn.xml
+// * Source File:<path>/common/main/az_Latn.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/az_Latn.xml
+ */
az_Latn{
- Version{"1.7"}
+ Languages{
+ de{"almanca"}
+ en{"ingiliscÉ™"}
+ es{"ispanca"}
+ fr{"fransızca"}
+ ja{"yaponca"}
+ pt{"portuqalca"}
+ ru{"rusca"}
+ zh{"çincə"}
+ }
+ LocaleScript{
+ "Latn",
+ }
+ Version{"1.18"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/az_Latn_AZ.txt b/Build/source/libs/icu-xetex/data/locales/az_Latn_AZ.txt
index 683bafc8a4f..e5d13c39596 100644
--- a/Build/source/libs/icu-xetex/data/locales/az_Latn_AZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/az_Latn_AZ.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/az_Latn_AZ.xml
+// * Source File:<path>/common/main/az_Latn_AZ.xml
// *
// ***************************************************************************
az_Latn_AZ{
- Version{"1.6"}
+ Version{"1.17"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/be.txt b/Build/source/libs/icu-xetex/data/locales/be.txt
index b41bc5ecacc..e81da984dc4 100644
--- a/Build/source/libs/icu-xetex/data/locales/be.txt
+++ b/Build/source/libs/icu-xetex/data/locales/be.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/be.xml
+// * Source File:<path>/common/main/be.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/be.xml
+ * ICU <specials> source: <path>/xml/main/be.xml
*/
be{
Countries{
@@ -65,7 +65,7 @@ be{
"долар ЗШÐ",
}
}
- ExemplarCharacters{"[а-з й-ш Ñ‹-Ñ â€™Ñ‘Ñ–Ñž {дж} {дз}]"}
+ ExemplarCharacters{"[’ а-д {дж} {дз} е Ñ‘ ж з й Ñ– к-у Ñž Ñ„-ш Ñ‹-Ñ]"}
Languages{
ar{"арабÑкі"}
be{"БеларуÑкі"}
@@ -94,20 +94,16 @@ be{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Cyrl{"кірылічны"}
Latn{"лацінÑкі"}
}
- Version{"1.36"}
+ Version{"1.52"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH.mm.ss z",
"HH.mm.ss z",
@@ -206,6 +202,22 @@ be{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1-ы кв.",
+ "2-ы кв.",
+ "3-ы кв.",
+ "4-ы кв.",
+ }
+ wide{
+ "1-ы квартал",
+ "2-ы квартал",
+ "3-ы квартал",
+ "4-ы квартал",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
diff --git a/Build/source/libs/icu-xetex/data/locales/be_BY.txt b/Build/source/libs/icu-xetex/data/locales/be_BY.txt
index 14fe701d28e..724b8cede86 100644
--- a/Build/source/libs/icu-xetex/data/locales/be_BY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/be_BY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/be_BY.xml
+// * Source File:<path>/common/main/be_BY.xml
// *
// ***************************************************************************
be_BY{
@@ -13,5 +13,5 @@ be_BY{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.37"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/bg.txt b/Build/source/libs/icu-xetex/data/locales/bg.txt
index d31b6e642fc..efe09df51e8 100644
--- a/Build/source/libs/icu-xetex/data/locales/bg.txt
+++ b/Build/source/libs/icu-xetex/data/locales/bg.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/bg.xml
+// * Source File:<path>/common/main/bg.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/bg.xml
+ * ICU <specials> source: <path>/xml/main/bg.xml
*/
bg{
+ AuxExemplarCharacters{"[i v x {а̀} Ñ Ñ {о̀} {у̀} {ÑŠÌ€} Ñ£ {ÑŽÌ€} {ÑÌ€} Ñ«]"}
Countries{
001{"ЗемÑта"}
002{"Ðфрика"}
@@ -20,19 +21,21 @@ bg{
014{"Източна Ðфрика"}
015{"Северна Ðфрика"}
017{"Централна Ðфрика"}
- 018{"Южна Ðфрика"}
+ 018{"ЮжноафриканÑки регион"}
019{"Ðмерика"}
021{"Северна Ðмерика"}
029{"КарибÑки о-ви"}
030{"Източна ÐзиÑ"}
+ 034{"Южна ÐзиÑ"}
035{"Югоизточна ÐзиÑ"}
039{"Южна Европа"}
053{"ÐвÑÑ‚Ñ€Ð°Ð»Ð¸Ñ Ð¸ Ðова ЗеландиÑ"}
054{"МеланезиÑ"}
057{"МикронезиÑ"}
061{"ПолинезиÑ"}
- 062{"Южна ÐзиÑ"}
+ 062{"Южна ÐÐ·Ð¸Ñ [062]"}
142{"ÐзиÑ"}
+ 143{"Централна ÐзиÑ"}
145{"Западна ÐзиÑ"}
150{"Европа"}
151{"Източна Европа"}
@@ -82,13 +85,14 @@ bg{
CF{"ЦентралноафриканÑка Република"}
CG{"Конго"}
CH{"ШвейцариÑ"}
- CI{"Кот д’Ивоар"}
+ CI{"БрÑг на Слоновата коÑÑ‚"}
CK{"ОÑтрови Кук"}
CL{"Чили"}
CM{"Камерун"}
CN{"Китай"}
CO{"КолумбиÑ"}
CR{"КоÑта Рика"}
+ CS{"Ð¡ÑŠÑ€Ð±Ð¸Ñ Ð¸ Черна Гора"}
CU{"Куба"}
CV{"Кабо Верде"}
CX{"ОÑтров КриÑтмаÑ"}
@@ -220,7 +224,7 @@ bg{
PW{"Палау"}
PY{"Парагвай"}
QA{"Катар"}
- QO{"ОкеаниÑ"}
+ QO{"ÐžÐºÐµÐ°Ð½Ð¸Ñ [QO]"}
RE{"Реюниън"}
RO{"РумъниÑ"}
RU{"РуÑка ФедерациÑ"}
@@ -1139,14 +1143,15 @@ bg{
"ЗимбабвийÑки долар",
}
}
- ExemplarCharacters{"[а-ÑŒ ÑŽÑѣѫ]"}
+ ExemplarCharacters{"[а-ÑŠ ÑŒ ÑŽ Ñ]"}
Keys{
calendar{"Календар"}
collation{"Сортиране"}
- currency{"Валути"}
+ currency{"Валута"}
}
Languages{
- ab{"ÐбкхазÑки"}
+ ab{"ÐбхазÑки"}
+ ady{"Ðдиге"}
af{"ÐфриканÑ"}
afa{"Ðфро-азиатÑки (други)"}
afh{"Ðфрихили"}
@@ -1159,12 +1164,15 @@ bg{
aus{"ÐвÑтралийÑки езици"}
av{"ÐварÑки"}
ay{"Ðймара"}
- az{"ÐзербайджанÑки"}
+ az{"ÐзърбайджанÑки"}
ba{"БашкирÑки"}
+ bal{"Балучи"}
bat{"ПрибалтийÑки (други)"}
be{"БеларуÑки"}
ber{"берберÑки"}
bg{"БългарÑки"}
+ bho{"Божпури"}
+ bi{"БиÑлама"}
bn{"БенгалÑки"}
bnt{"Банту"}
bo{"ТибетÑки"}
@@ -1252,7 +1260,7 @@ bg{
mi{"МаорÑки"}
mis{"Други езици"}
mk{"МакедонÑки"}
- ml{"МалайÑки"}
+ ml{"МалаÑлам"}
mn{"МонголÑки"}
mo{"МолдовÑки"}
ms{"МалайÑки"}
@@ -1339,12 +1347,13 @@ bg{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Arab{"ÐрабÑка"}
Armn{"ÐрменÑка"}
+ Bali{"БалийÑки"}
Beng{"БенгалÑка"}
Brai{"Брайлова"}
Cher{"Чероки"}
@@ -1386,24 +1395,22 @@ bg{
japanese{"ЯпонÑки календар"}
}
collation{
+ big5han{"Традиционен китайÑки (Big5)"}
direct{"Директно"}
+ gb2312han{"ОпроÑтен китайÑки (GB2312)"}
phonebook{"Ðзбучен ред"}
- pinyin{"Сортиране Pinyin"}
+ pinyin{"Сортиране Пинин"}
stroke{"Сортиране по щрих"}
traditional{"Традиционно"}
}
}
- Version{"1.51"}
+ Version{"1.71"}
calendar{
gregorian{
AmPmMarkers{
"пр. об.",
"Ñл. об.",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss",
@@ -1450,25 +1457,61 @@ bg{
}
eras{
abbreviated{
- "пр.Хр.",
- "Ñл.Хр.",
+ "пр. н. е.",
+ "от н. е.",
+ }
+ wide{
+ "пр.н.е.",
+ "Ñл.н.е.",
+ }
+ }
+ fields{
+ day{
+ dn{"Ден"}
+ }
+ era{
+ dn{"ера"}
+ }
+ hour{
+ dn{"чаÑ"}
+ }
+ minute{
+ dn{"минута"}
+ }
+ month{
+ dn{"меÑец"}
+ }
+ second{
+ dn{"Ñекунда"}
+ }
+ week{
+ dn{"Ñедмица"}
+ }
+ weekday{
+ dn{"Ден от Ñедмицата"}
+ }
+ year{
+ dn{"година"}
+ }
+ zone{
+ dn{"зона"}
}
}
monthNames{
format{
abbreviated{
- "Ñну",
- "фев",
- "мар",
- "апр",
+ "Ñн.",
+ "февр.",
+ "март",
+ "апр.",
"май",
"юни",
"юли",
- "авг",
- "Ñеп",
- "окт",
- "ное",
- "дек",
+ "авг.",
+ "Ñепт.",
+ "окт.",
+ "ноем.",
+ "дек.",
}
wide{
"Ñнуари",
@@ -1502,129 +1545,632 @@ bg{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "I трим.",
+ "II трим.",
+ "III трим.",
+ "IV трим.",
+ }
+ wide{
+ "1-во тримеÑечие",
+ "2-ро тримеÑечие",
+ "3-то тримеÑечие",
+ "4-то тримеÑечие",
+ }
+ }
+ }
}
}
+ delimiters{
+ quotationEnd{"“"}
+ quotationStart{"„"}
+ }
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ measurementSystemNames{
+ US{"ÐмериканÑка"}
+ metric{"Метрична"}
+ }
zoneStrings{
- {
- "America/Halifax",
- "ÐтлантичеÑка чаÑова зона",
- "AST",
- "ÐтлантичеÑка лÑтна чаÑова зона",
- "ADT",
- "ХалифакÑ",
- }
- {
- "America/St_Johns",
- "ЧаÑова зона Ðюфаундленд",
- "CNT",
- "ЛÑтна чаÑова зона Ðюфаундленд",
- "CDT",
- "Сейнт ДжоунÑ",
- }
- {
- "Asia/Shanghai",
- "КитайÑка чаÑова зона",
- "CTT",
- "КитайÑка чаÑова зона",
- "CDT",
- "Шанхай",
- }
- {
- "Europe/Paris",
- "ЦентралноевропейÑка чаÑова зона",
- "CET",
- "ЦентралноевропеÑка лÑтна чаÑова зона",
- "CEST",
- "Париж",
- }
- {
- "Asia/Jerusalem",
- "ЧаÑова зона Израел",
- "IST",
- "ЛÑтна чаÑова зона Израел",
- "IDT",
- "ЙеруÑалим",
- }
- {
- "Asia/Tokyo",
- "ЯпонÑка чаÑова зона",
- "JST",
- "ЯпонÑка чаÑова зона",
- "JST",
- "Токио",
- }
- {
- "Africa/Casablanca",
- "ЧаÑова зона Гринуич",
- "GMT",
- "ЧаÑова зона Гринуич",
- "GMT",
- "Казабланка",
- }
- {
- "Europe/Bucharest",
- "ИзточноевропейÑка чаÑова зона",
- "EET",
- "ИзточноевропейÑка лÑтна чаÑова зона",
- "EEST",
- "Букурещ",
- }
- {
- "Pacific/Honolulu",
- "ЧаÑова зона Хавай",
- "HST",
- "ЛÑтна чаÑова зона Хавай",
- "HST",
- "Хонолулу",
- }
- {
- "America/Los_Angeles",
- "ТихоокеанÑка чаÑова зона",
- "PST",
- "ТихоокеанÑка лÑтна чаÑова зона",
- "PDT",
- "Ð›Ð¾Ñ ÐнжелиÑ",
- }
- {
- "America/Phoenix",
- "ÐмериканÑка планинÑка чаÑова зона",
- "MST",
- "ÐмериканÑка планинÑка чаÑова зона",
- "MST",
- "ФиникÑ",
- }
- {
- "America/Denver",
- "ÐмериканÑка планинÑка чаÑова зона",
- "MST",
- "ÐмериканÑка планинÑка лÑтна чаÑова зона",
- "MDT",
- "Денвър",
- }
- {
- "America/Chicago",
- "ÐмериканÑка централна чаÑова зона",
- "CST",
- "ÐмериканÑка централна лÑтна чаÑова зона",
- "CDT",
- "Чикаго",
- }
- {
- "America/Indianapolis",
- "ÐмериканÑка източна чаÑова зона",
- "EST",
- "ÐмериканÑка източна чаÑова зона",
- "EST",
- "ИндианополиÑ",
- }
- {
- "America/New_York",
- "ÐмериканÑка източна чаÑова зона",
- "EST",
- "ÐмериканÑка източна лÑтна чаÑова зона",
- "EDT",
- "ÐÑŽ Йорк",
+ "Africa:Bamako"{
+ ec{"Бамако"}
+ }
+ "Africa:Casablanca"{
+ ec{"Казабланка"}
+ ld{"ЧаÑова зона Гринуич"}
+ ls{"ЧаÑова зона Гринуич"}
+ sd{"Гринуич чаÑова зона"}
+ ss{"Гринуич чаÑова зона"}
+ }
+ "Africa:Ceuta"{
+ ec{"Сеута"}
+ }
+ "Africa:Kinshasa"{
+ ec{"КиншаÑа"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Лубумбаши"}
+ }
+ "Africa:Timbuktu"{
+ ec{"Тимбукту"}
+ }
+ "America:Adak"{
+ ec{"Ðдак"}
+ }
+ "America:Anchorage"{
+ ec{"Ðнкоридж"}
+ ld{"ЛÑтна чаÑова зона ÐлÑÑка"}
+ ls{"ЧаÑова зона ÐлÑÑка"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Araguaina"{
+ ec{"Ðрагуайна"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Комодоро РивадавиÑ"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"Ла Риоха"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Рио ГалегоÑ"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"Сан Хуан"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Тукуман"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"УшуаÑ"}
+ }
+ "America:Bahia"{
+ ec{"Бахиа"}
+ }
+ "America:Belem"{
+ ec{"Белем"}
+ }
+ "America:Boa_Vista"{
+ ec{"Буа ВиÑта"}
+ }
+ "America:Boise"{
+ ec{"Буаз"}
+ }
+ "America:Buenos_Aires"{
+ ec{"Ð‘ÑƒÐµÐ½Ð¾Ñ ÐйреÑ"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"Кеймбридж Бей"}
+ }
+ "America:Campo_Grande"{
+ ec{"Кампо Гранде"}
+ }
+ "America:Cancun"{
+ ec{"Канкун"}
+ }
+ "America:Catamarca"{
+ ec{"Катамарка"}
+ }
+ "America:Chicago"{
+ ec{"Чикаго"}
+ ld{"ÐмериканÑка централна лÑтна чаÑова зона"}
+ ls{"ÐмериканÑка централна чаÑова зона"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Chihuahua"{
+ ec{"Чиуауа"}
+ }
+ "America:Cordoba"{
+ ec{"Кордоба"}
+ }
+ "America:Cuiaba"{
+ ec{"ЧуÑба"}
+ }
+ "America:Danmarkshavn"{
+ ec{"Данмаркшавн"}
+ }
+ "America:Dawson"{
+ ec{"ДоуÑън"}
+ }
+ "America:Dawson_Creek"{
+ ec{"ДоуÑън Крийк"}
+ }
+ "America:Denver"{
+ ec{"Денвър"}
+ ld{"ÐмериканÑка планинÑка лÑтна чаÑова зона"}
+ ls{"ÐмериканÑка планинÑка чаÑова зона"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Detroit"{
+ ec{"Детройт"}
+ }
+ "America:Edmonton"{
+ ec{"Едмънтън"}
+ }
+ "America:Eirunepe"{
+ ec{"Ейрунепе"}
+ }
+ "America:Fortaleza"{
+ ec{"Фортацела"}
+ }
+ "America:Glace_Bay"{
+ ec{"Ð“Ð»ÐµÐ¹Ñ Ð‘ÐµÐ¹"}
+ }
+ "America:Godthab"{
+ ec{"Готхоб"}
+ }
+ "America:Goose_Bay"{
+ ec{"Ð“ÑƒÑ Ð‘ÐµÐ¹"}
+ }
+ "America:Guayaquil"{
+ ec{"ГуаÑкил"}
+ }
+ "America:Halifax"{
+ ec{"ХалифакÑ"}
+ ld{"ÐтлантичеÑка лÑтна чаÑова зона"}
+ ls{"ÐтлантичеÑка чаÑова зона"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Hermosillo"{
+ ec{"ХермоÑило"}
+ }
+ "America:Indiana:Knox"{
+ ec{"ÐокÑ"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"Маренго"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"Веве"}
+ }
+ "America:Indianapolis"{
+ ec{"ИндианополиÑ"}
+ ld{"ÐмериканÑка източна чаÑова зона (ИндианополиÑ)"}
+ }
+ "America:Inuvik"{
+ ec{"Инувик"}
+ }
+ "America:Iqaluit"{
+ ec{"Иквалуит"}
+ }
+ "America:Jujuy"{
+ ec{"Джуджую"}
+ }
+ "America:Juneau"{
+ ec{"Джуно"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"Монтичело"}
+ }
+ "America:Los_Angeles"{
+ ec{"Ð›Ð¾Ñ ÐнжелиÑ"}
+ ld{"ТихоокеанÑка лÑтна чаÑова зона"}
+ ls{"ТихоокеанÑка чаÑова зона"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Louisville"{
+ ec{"Луизвил"}
+ }
+ "America:Maceio"{
+ ec{"МаÑейо"}
+ }
+ "America:Manaus"{
+ ec{"МануаÑ"}
+ }
+ "America:Mazatlan"{
+ ec{"Мацатлан"}
+ }
+ "America:Mendoza"{
+ ec{"МендоÑа"}
+ }
+ "America:Menominee"{
+ ec{"Меномнии"}
+ }
+ "America:Merida"{
+ ec{"Мерида"}
+ }
+ "America:Mexico_City"{
+ ec{"МекÑико"}
+ }
+ "America:Monterrey"{
+ ec{"Монтерей"}
+ }
+ "America:Montreal"{
+ ec{"Монреал"}
+ }
+ "America:New_York"{
+ ec{"ÐÑŽ Йорк"}
+ ld{"ÐмериканÑка източна лÑтна чаÑова зона"}
+ ls{"ÐмериканÑка източна чаÑова зона"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Nipigon"{
+ ec{"Ðипигон"}
+ }
+ "America:Nome"{
+ ec{"Ðоум"}
+ }
+ "America:Noronha"{
+ ec{"Ðоронха"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"Сентър"}
+ }
+ "America:Pangnirtung"{
+ ec{"Пангниртунг"}
+ }
+ "America:Phoenix"{
+ ec{"ФиникÑ"}
+ ld{"ÐмериканÑка планинÑка чаÑова зона"}
+ ls{"ÐмериканÑка планинÑка чаÑова зона"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:Porto_Velho"{
+ ec{"Порту Вельо"}
+ }
+ "America:Rainy_River"{
+ ec{"Рейни Ривър"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"Ранкин Инлет"}
+ }
+ "America:Recife"{
+ ec{"РеÑифе"}
+ }
+ "America:Regina"{
+ ec{"Регина"}
+ }
+ "America:Rio_Branco"{
+ ec{"Рио Бранко"}
+ }
+ "America:Santiago"{
+ ec{"Сантиаго"}
+ }
+ "America:Sao_Paulo"{
+ ec{"Сао Пауло"}
+ }
+ "America:Scoresbysund"{
+ ec{"СгорÑбиÑон"}
+ }
+ "America:Shiprock"{
+ ec{"Шипрок"}
+ }
+ "America:St_Johns"{
+ ec{"Сейнт ДжоунÑ"}
+ ld{"ЛÑтна чаÑова зона Ðюфаундленд"}
+ ls{"ЧаÑова зона Ðюфаундленд"}
+ }
+ "America:Swift_Current"{
+ ec{"Суифт Кърент"}
+ }
+ "America:Thule"{
+ ec{"Туле"}
+ }
+ "America:Thunder_Bay"{
+ ec{"Тъндър Бей"}
+ }
+ "America:Tijuana"{
+ ec{"Тихуана"}
+ }
+ "America:Toronto"{
+ ec{"Торонто"}
+ }
+ "America:Winnipeg"{
+ ec{"Уинипег"}
+ }
+ "America:Yakutat"{
+ ec{"Якутат"}
+ }
+ "America:Yellowknife"{
+ ec{"Йелоунайф"}
+ }
+ "Antarctica:Casey"{
+ ec{"КейÑи"}
+ }
+ "Antarctica:Davis"{
+ ec{"База ДейвиÑ"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Дюмон Дюрвил"}
+ }
+ "Antarctica:Mawson"{
+ ec{"МоуÑън"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"Мак Мърдоу"}
+ }
+ "Antarctica:Palmer"{
+ ec{"Палмър"}
+ }
+ "Antarctica:Rothera"{
+ ec{"Ротера"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Южен полюÑ"}
+ }
+ "Antarctica:Syowa"{
+ ec{"Суова"}
+ }
+ "Antarctica:Vostok"{
+ ec{"ВоÑток"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"Лонгирбюен"}
+ }
+ "Asia:Almaty"{
+ ec{"Ðлма Ðта"}
+ }
+ "Asia:Anadyr"{
+ ec{"Ðнадир"}
+ }
+ "Asia:Aqtau"{
+ ec{"ÐÑтау"}
+ }
+ "Asia:Aqtobe"{
+ ec{"ÐÑтобе"}
+ }
+ "Asia:Choibalsan"{
+ ec{"ЧойбалÑан"}
+ }
+ "Asia:Chongqing"{
+ ec{"Чунцин"}
+ }
+ "Asia:Harbin"{
+ ec{"Харбин"}
+ }
+ "Asia:Hovd"{
+ ec{"Кобдо"}
+ }
+ "Asia:Irkutsk"{
+ ec{"ИркутÑк"}
+ }
+ "Asia:Jakarta"{
+ ec{"Джакарта"}
+ }
+ "Asia:Jayapura"{
+ ec{"ДжаÑпура"}
+ }
+ "Asia:Jerusalem"{
+ ec{"ЙеруÑалим"}
+ ld{"ЛÑтна чаÑова зона Израел"}
+ ls{"ЧаÑова зона Израел"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"п-в Камчатка"}
+ }
+ "Asia:Kashgar"{
+ ec{"Кашгар"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"КраÑноÑÑ€Ñк"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"Куала Лумпур"}
+ }
+ "Asia:Kuching"{
+ ec{"Кучин"}
+ }
+ "Asia:Magadan"{
+ ec{"Магадан"}
+ }
+ "Asia:Makassar"{
+ ec{"МакаÑарÑки проток"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"ÐовоÑибирÑк"}
+ }
+ "Asia:Omsk"{
+ ec{"ОмÑк"}
+ }
+ "Asia:Oral"{
+ ec{"Ðрал"}
+ }
+ "Asia:Pontianak"{
+ ec{"Понтианак"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Язилорда"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Сахалин"}
+ }
+ "Asia:Samarkand"{
+ ec{"Самарканд"}
+ }
+ "Asia:Shanghai"{
+ ec{"Шанхай"}
+ ld{"КитайÑка чаÑова зона"}
+ ls{"КитайÑка чаÑова зона"}
+ }
+ "Asia:Tashkent"{
+ ec{"Ташкент"}
+ }
+ "Asia:Tokyo"{
+ ec{"Токио"}
+ ld{"ЯпонÑка чаÑова зона"}
+ ls{"ЯпонÑка чаÑова зона"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Уланбатор"}
+ }
+ "Asia:Urumqi"{
+ ec{"Урумчи"}
+ }
+ "Asia:Vladivostok"{
+ ec{"ВладивоÑток"}
+ }
+ "Asia:Yakutsk"{
+ ec{"ЯкутÑк"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Екатерининбург"}
+ }
+ "Atlantic:Azores"{
+ ec{"ÐзорÑки о-ви"}
+ }
+ "Atlantic:Canary"{
+ ec{"КанарÑки о-ви"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"Ян Майен"}
+ }
+ "Atlantic:Madeira"{
+ ec{"Мадейра"}
+ }
+ "Australia:Adelaide"{
+ ec{"Ðдълид"}
+ }
+ "Australia:Brisbane"{
+ ec{"Бризбейн"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"Броукън Хил"}
+ }
+ "Australia:Darwin"{
+ ec{"Даруин"}
+ }
+ "Australia:Hobart"{
+ ec{"Хоубарт"}
+ }
+ "Australia:Lindeman"{
+ ec{"Линдеман"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"Лорд Хов"}
+ }
+ "Australia:Melbourne"{
+ ec{"Мелбърн"}
+ }
+ "Australia:Perth"{
+ ec{"Пърт"}
+ }
+ "Australia:Sydney"{
+ ec{"Сидни"}
+ }
+ "Europe:Belfast"{
+ ec{"БелфаÑÑ‚t"}
+ }
+ "Europe:Bucharest"{
+ ec{"Букурещ"}
+ ld{"ИзточноевропейÑка лÑтна чаÑова зона"}
+ ls{"ИзточноевропейÑка чаÑова зона"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Калининград"}
+ }
+ "Europe:Kiev"{
+ ec{"Киев"}
+ }
+ "Europe:Lisbon"{
+ ec{"ЛиÑабон"}
+ }
+ "Europe:London"{
+ ec{"Лондон"}
+ }
+ "Europe:Madrid"{
+ ec{"Мадрид"}
+ }
+ "Europe:Moscow"{
+ ec{"МоÑква"}
+ }
+ "Europe:Paris"{
+ ec{"Париж"}
+ ld{"ЦентралноевропейÑка лÑтна чаÑова зона"}
+ ls{"ЦентралноевропейÑка чаÑова зона"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Europe:Samara"{
+ ec{"Самара"}
+ }
+ "Europe:Simferopol"{
+ ec{"СеваÑтопол"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Ужгород"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Запорожие"}
+ }
+ "Pacific:Auckland"{
+ ec{"Окланд"}
+ }
+ "Pacific:Chatham"{
+ ec{"о-ви Чатам"}
+ }
+ "Pacific:Easter"{
+ ec{"ВеликденÑки о-ви"}
+ }
+ "Pacific:Enderbury"{
+ ec{"о. Ендърбъри"}
+ }
+ "Pacific:Galapagos"{
+ ec{"о-ви ГалапагоÑ"}
+ }
+ "Pacific:Gambier"{
+ ec{"Гамбиер"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Хонолулу"}
+ ld{"ЛÑтна чаÑова зона Хавай"}
+ ls{"ЧаÑова зона Хавай"}
+ sd{"HST"}
+ ss{"HST"}
+ }
+ "Pacific:Johnston"{
+ ec{"о. ДжонÑън"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"о. РождеÑтво"}
+ }
+ "Pacific:Kosrae"{
+ ec{"о. КоÑрае"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"Квайджален"}
+ }
+ "Pacific:Majuro"{
+ ec{"Мажуро"}
+ }
+ "Pacific:Marquesas"{
+ ec{"Маркизки о-ви"}
+ }
+ "Pacific:Midway"{
+ ec{"о. Мидуей"}
+ }
+ "Pacific:Ponape"{
+ ec{"о. Понапе"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Таити"}
+ }
+ "Pacific:Tarawa"{
+ ec{"о. Тарава"}
+ }
+ "Pacific:Truk"{
+ ec{"о-ви Трук"}
+ }
+ "Pacific:Wake"{
+ ec{"о. Уейк"}
+ }
+ "Pacific:Yap"{
+ ec{"о. Яп"}
}
+ gmtFormat{"Гриинуич{0}"}
+ hourFormat{"+HHmm;-HHmm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/bg_BG.txt b/Build/source/libs/icu-xetex/data/locales/bg_BG.txt
index fba41f068a9..25e2c7324db 100644
--- a/Build/source/libs/icu-xetex/data/locales/bg_BG.txt
+++ b/Build/source/libs/icu-xetex/data/locales/bg_BG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/bg_BG.xml
+// * Source File:<path>/common/main/bg_BG.xml
// *
// ***************************************************************************
bg_BG{
@@ -13,7 +13,7 @@ bg_BG{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.42"}
delimiters{
alternateQuotationEnd{"„"}
alternateQuotationStart{"“"}
diff --git a/Build/source/libs/icu-xetex/data/locales/bn.txt b/Build/source/libs/icu-xetex/data/locales/bn.txt
index da31294054e..729b27bdfef 100644
--- a/Build/source/libs/icu-xetex/data/locales/bn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/bn.txt
@@ -1,60 +1,61 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/bn.xml
+// * Source File:<path>/common/main/bn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/bn.xml
+ * ICU <specials> source: <path>/xml/main/bn.xml
*/
bn{
+ AuxExemplarCharacters{"[\u200C \u200D ৸ ৹ ৲ ৳ ০-৪ ৷ ৫-ৱ]"}
Countries{
AF{"আফগানিসà§à¦¤à¦¾à¦¨"}
- AL{"আলবà§à¦¯à¦¾à¦¨à¦¿à§Ÿà¦¾"}
- AM{"আরà§à¦®à§‡à¦¨à¦¿à§Ÿà¦¾"}
+ AL{"আলবà§à¦¯à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾"}
+ AM{"আরà§à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¾"}
AR{"আরà§à¦œà§‡à¦£à§à¦Ÿà¦¾à¦‡à¦¨à¦¾"}
- AT{"অসà§à¦Ÿà§à¦°à¦¿à§Ÿà¦¾"}
- AU{"অসà§à¦Ÿà§à¦°à§‡à¦²à¦¿à§Ÿà¦¾"}
+ AT{"অসà§à¦Ÿà§à¦°à¦¿à¦¯à¦¼à¦¾"}
+ AU{"অসà§à¦Ÿà§à¦°à§‡à¦²à¦¿à¦¯à¦¼à¦¾"}
AZ{"আজারবাইজান"}
BD{"বাংলাদেশ"}
- BE{"বেলà§à¦œà¦¿à§Ÿà¦®"}
- BG{"বà§à¦²à¦—েরিয়া"}
- BO{"বোলিভিয়া"}
+ BE{"বেলà§à¦œà¦¿à¦¯à¦¼à¦®"}
+ BG{"বà§à¦²à¦—েরিয়া"}
+ BO{"বোলিভিয়া"}
BR{"বà§à¦°à¦¾à¦œà¦¿à¦²"}
BT{"ভà§à¦Ÿà¦¾à¦¨"}
- BY{"বেলোরà§à¦¶à¦¿à§Ÿà¦¾"}
+ BY{"বেলোরà§à¦¶à¦¿à¦¯à¦¼à¦¾"}
CG{"কঙà§à¦—ো"}
CH{"সà§à¦‡à¦œà¦°à§à¦²à¦£à§à¦¡"}
CL{"চিলি"}
CN{"চীন"}
- CO{"কোলোমà§à¦¬à¦¿à§Ÿà¦¾"}
+ CO{"কোলোমà§à¦¬à¦¿à¦¯à¦¼à¦¾"}
CR{"কোসà§à¦Ÿà¦¾à¦°à¦¿à¦•à¦¾"}
CU{"কিউবা"}
- CZ{"চেকিয়া"}
+ CZ{"চেকিয়া"}
DE{"জারà§à¦®à¦¾à¦¨à¦¿"}
DK{"ডেনà§à¦®à¦¾à¦°à§à¦•"}
- DZ{"à¦à¦²à¦œà¦¿à¦°à¦¿à§Ÿà¦¾"}
- EC{"ইকোয়াডর"}
- EE{"à¦à¦¸à§à¦¤à§‹à¦¨à¦¿à§Ÿà¦¾"}
+ DZ{"à¦à¦²à¦œà¦¿à¦°à¦¿à¦¯à¦¼à¦¾"}
+ EC{"ইকোয়াডর"}
+ EE{"à¦à¦¸à§à¦¤à§‹à¦¨à¦¿à¦¯à¦¼à¦¾"}
EG{"মিশর"}
EH{"পশà§à¦šà¦¿à¦®à§€ সাহারা"}
ES{"সà§à¦ªà§‡à¦¨"}
- ET{"ইফিওপিয়া"}
+ ET{"ইফিওপিয়া"}
FI{"ফিনà§à¦²à§à¦¯à¦¾à¦£à§à¦¡"}
FR{"ফà§à¦°à¦¾à¦¨à§à¦¸"}
GB{"গà§à¦°à§‡à¦Ÿà¦¬à§ƒà¦Ÿà§‡à¦¨"}
- GE{"জরà§à¦œà¦¿à§Ÿà¦¾"}
+ GE{"জরà§à¦œà¦¿à¦¯à¦¼à¦¾"}
GH{"গানা"}
GR{"গà§à¦°à§€à¦¸à§"}
- GT{"গোয়াটিমালা"}
- GY{"গিয়ানা"}
+ GT{"গোয়াটিমালা"}
+ GY{"গিয়ানা"}
HN{"হণà§à¦¡à§à¦°à¦¾à¦¸"}
HU{"হাঙà§à¦—েরি"}
- ID{"ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à§Ÿà¦¾"}
- IE{"আয়ারà§à¦²à¦£à§à¦¡"}
- IL{"ইসà§à¦°à¦¾à§Ÿà§‡à¦²"}
+ ID{"ইনà§à¦¦à§‹à¦¨à§‡à¦¶à¦¿à¦¯à¦¼à¦¾"}
+ IE{"আয়ারà§à¦²à¦£à§à¦¡"}
+ IL{"ইসà§à¦°à¦¾à¦¯à¦¼à§‡à¦²"}
IN{"ভারত"}
IQ{"ইরাক"}
IR{"ইরান"}
@@ -63,28 +64,28 @@ bn{
JM{"জà§à¦¯à¦¾à¦®à§‡à¦•à¦¾"}
JO{"জরà§à¦¡à¦¨"}
JP{"জাপান"}
- KE{"কেনিয়া"}
- KG{"কিরà§à¦—িজিয়া"}
+ KE{"কেনিয়া"}
+ KG{"কিরà§à¦—িজিয়া"}
KH{"কামà§à¦¬à§‹à¦œ"}
- KR{"দকà§à¦·à¦¿à¦£ কোরিয়া"}
+ KR{"দকà§à¦·à¦¿à¦£ কোরিয়া"}
KZ{"কাজাকসà§à¦¥à¦¾à¦¨"}
LA{"লাওস"}
LB{"লেবানন"}
LK{"শà§à¦°à§€à¦²à¦™à§à¦•à¦¾"}
- LR{"লাইবিরিয়া"}
+ LR{"লাইবিরিয়া"}
LT{"লিতà§à¦­à¦¾"}
LU{"লাকà§à¦¸à§‡à¦®à¦¬à¦¾à¦°à§à¦—"}
- LV{"লাতà§à¦­à¦¿à§Ÿà¦¾"}
- LY{"লিবিয়া"}
+ LV{"লাতà§à¦­à¦¿à¦¯à¦¼à¦¾"}
+ LY{"লিবিয়া"}
MA{"মোরকà§à¦•à§‹"}
- MD{"মোলà§à¦¦à¦¾à¦­à¦¿à§Ÿà¦¾"}
+ MD{"মোলà§à¦¦à¦¾à¦­à¦¿à¦¯à¦¼à¦¾"}
MG{"মাদাগাসà§à¦•à¦¾à¦°"}
- MN{"মঙà§à¦—োলিয়া"}
+ MN{"মঙà§à¦—োলিয়া"}
MX{"মকà§à¦¸à¦¿à¦•à§‹"}
- MY{"মালà§à¦¯à¦¾à¦¶à¦¿à§Ÿà¦¾"}
- NI{"নিকারাগোয়া"}
+ MY{"মালà§à¦¯à¦¾à¦¶à¦¿à¦¯à¦¼à¦¾"}
+ NI{"নিকারাগোয়া"}
NL{"হলণà§à¦¡"}
- NO{"নরওয়ে"}
+ NO{"নরওয়ে"}
NP{"নেপাল"}
NZ{"নিউ জিলণà§à¦¡"}
PA{"পানামা"}
@@ -93,29 +94,29 @@ bn{
PK{"পাকিসà§à¦¤à¦¾à¦¨"}
PL{"পোলà§à¦¯à¦¾à¦£à§à¦¡"}
PT{"পরà§à¦¤à§à¦—াল"}
- PY{"পà§à¦¯à¦¾à¦°à¦¾à¦—োয়ে"}
- RO{"রà§à¦®à¦¾à¦¨à¦¿à§Ÿà¦¾"}
- RU{"রাশিয়া"}
+ PY{"পà§à¦¯à¦¾à¦°à¦¾à¦—োয়ে"}
+ RO{"রà§à¦®à¦¾à¦¨à¦¿à¦¯à¦¼à¦¾"}
+ RU{"রাশিয়া"}
SA{"সাউদি আরব"}
SD{"সà§à¦¦à¦¾à¦¨"}
SE{"সà§à¦‡à¦¡à§‡à¦¨"}
SG{"সিঙà§à¦—াপà§à¦°"}
- SK{"শà§à¦²à§‹à¦­à¦¾à¦•à¦¿à§Ÿà¦¾"}
+ SK{"শà§à¦²à§‹à¦­à¦¾à¦•à¦¿à¦¯à¦¼à¦¾"}
SO{"সোমালি"}
SV{"সালভেডর"}
- SY{"সিরিয়া"}
+ SY{"সিরিয়া"}
TH{"থাই"}
TJ{"তাজিকসà§à¦¥à¦¾à¦¨"}
- TM{"তà§à¦°à§à¦•à¦®à§‡à¦¨à¦¿à§Ÿà¦¾"}
+ TM{"তà§à¦°à§à¦•à¦®à§‡à¦¨à¦¿à¦¯à¦¼à¦¾"}
TN{"টিউনিসà§"}
TR{"তà§à¦°à¦¸à§à¦•"}
- TW{"তাইওয়ান"}
+ TW{"তাইওয়ান"}
UA{"ইউকà§à¦°à§‡à¦‡à¦¨"}
US{"মারà§à¦•à¦¿à¦¨ যà§à¦•à§à¦¤à¦°à¦¾à¦·à§à¦Ÿà§à¦°"}
- UY{"উরà§à¦—োয়ে"}
+ UY{"উরà§à¦—োয়ে"}
UZ{"উজà§à¦¬à§‡à¦•à¦¿à¦¸à§à¦¥à¦¾à¦¨"}
- VE{"ভেনেজà§à§Ÿà§‡à¦²à¦¾"}
- VN{"ভিয়েতনাম"}
+ VE{"ভেনেজà§à¦¯à¦¼à§‡à¦²à¦¾"}
+ VN{"ভিয়েতনাম"}
YE{"ইমেন"}
ZA{"দকà§à¦·à¦¿à¦£ আফà§à¦°à¦¿à¦•à¦¾"}
}
@@ -129,14 +130,17 @@ bn{
"INR",
}
}
- ExemplarCharacters{"[à¦-ঃঅ-ঌà¦à¦à¦“-নপ-রলশ-হ়-ৄেৈো-ৎৗড়à§à§Ÿ-ৣ০-৺‌â€]"}
+ ExemplarCharacters{
+ "[় à¦-ঃ ৺ অ-ঋ ৠ ঌ ৡ ঠঠও-ড {ড়} ঢ {ঢ়} ণ ত ৎ থ-ন প-য {য়} র ল শ-হ ঽ-ৄ ৢ ৣ ে "
+ "ৈ ো-ৠৗ]"
+ }
Languages{
bn{"বাংলা"}
}
LocaleScript{
"Beng",
}
- Version{"1.32"}
+ Version{"1.49"}
calendar{
gregorian{
AmPmMarkers{
@@ -168,8 +172,8 @@ bn{
monthNames{
format{
abbreviated{
- "জানà§à§Ÿà¦¾à¦°à§€",
- "ফেবà§à¦°à§à§Ÿà¦¾à¦°à§€",
+ "জানà§à¦¯à¦¼à¦¾à¦°à§€",
+ "ফেবà§à¦°à§à¦¯à¦¼à¦¾à¦°à§€",
"মারà§à¦š",
"à¦à¦ªà§à¦°à¦¿à¦²",
"মে",
@@ -182,8 +186,8 @@ bn{
"ডিসেমà§à¦¬à¦°",
}
wide{
- "জানà§à§Ÿà¦¾à¦°à§€",
- "ফেবà§à¦°à§à§Ÿà¦¾à¦°à§€",
+ "জানà§à¦¯à¦¼à¦¾à¦°à§€",
+ "ফেবà§à¦°à§à¦¯à¦¼à¦¾à¦°à§€",
"মারà§à¦š",
"à¦à¦ªà§à¦°à¦¿à¦²",
"মে",
diff --git a/Build/source/libs/icu-xetex/data/locales/bn_IN.txt b/Build/source/libs/icu-xetex/data/locales/bn_IN.txt
index 427cf2bcc2c..7bd88038d2d 100644
--- a/Build/source/libs/icu-xetex/data/locales/bn_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/bn_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/bn_IN.xml
+// * Source File:<path>/common/main/bn_IN.xml
// *
// ***************************************************************************
bn_IN{
@@ -13,13 +13,9 @@ bn_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.33"}
+ Version{"1.45"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/ca.txt b/Build/source/libs/icu-xetex/data/locales/ca.txt
index eb61a4baf1c..9615616988e 100644
--- a/Build/source/libs/icu-xetex/data/locales/ca.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ca.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ca.xml
+// * Source File:<path>/common/main/ca.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ca.xml
+ * ICU <specials> source: <path>/xml/main/ca.xml
*/
ca{
Countries{
@@ -20,7 +20,7 @@ ca{
AN{"Antilles Holandeses"}
AO{"Angola"}
AR{"Argentina"}
- AT{"Âustria"}
+ AT{"Àustria"}
AU{"Austràlia"}
AW{"Aruba"}
AZ{"Azerbaidjan"}
@@ -251,13 +251,13 @@ ca{
"Dòlar EUA",
}
}
- ExemplarCharacters{"[a-z é í ó ú à è ò ï ü ŀ ç ñ]"}
+ ExemplarCharacters{"[a à b c ç d e é è f-i í ï j-n ñ o ó ò p-u ú ü v-z]"}
Languages{
aa{"àfar"}
ab{"abkhaz"}
af{"afrikaans"}
am{"amhàric"}
- ar{"ârab"}
+ ar{"àrab"}
as{"assamès"}
ay{"aimara"}
az{"àzeri"}
@@ -407,19 +407,15 @@ ca{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Latn{"Llatí"}
}
- Version{"1.48"}
+ Version{"1.67"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
@@ -491,6 +487,22 @@ ca{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1T",
+ "2T",
+ "3T",
+ "4T",
+ }
+ wide{
+ "1r trimestre",
+ "2n trimestre",
+ "3r trimestre",
+ "4t trimestre",
+ }
+ }
+ }
}
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
diff --git a/Build/source/libs/icu-xetex/data/locales/ca_ES.txt b/Build/source/libs/icu-xetex/data/locales/ca_ES.txt
index 6490741c8c7..977f893311c 100644
--- a/Build/source/libs/icu-xetex/data/locales/ca_ES.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ca_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ca_ES.xml
+// * Source File:<path>/common/main/ca_ES.xml
// *
// ***************************************************************************
ca_ES{
@@ -13,5 +13,11 @@ ca_ES{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"“"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/cs.txt b/Build/source/libs/icu-xetex/data/locales/cs.txt
index 14a1010a688..80dbd05b10d 100644
--- a/Build/source/libs/icu-xetex/data/locales/cs.txt
+++ b/Build/source/libs/icu-xetex/data/locales/cs.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/cs.xml
+// * Source File:<path>/common/main/cs.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/cs.xml
+ * ICU <specials> source: <path>/xml/main/cs.xml
*/
cs{
Countries{
@@ -279,7 +279,7 @@ cs{
WS{"Samoa"}
YE{"Jemen"}
YT{"Mayotte"}
- ZA{"Jižní Afrika"}
+ ZA{"Jihoafrická republika"}
ZM{"Zambie"}
ZW{"Zimbabwe"}
}
@@ -517,7 +517,7 @@ cs{
"Escudo kapverdské",
}
CYP{
- "£",
+ "CYP",
"Libra kyperská",
}
CZK{
@@ -866,7 +866,7 @@ cs{
}
MWK{
"MK",
- "Kwacha",
+ "Kwacha malawská",
}
MXN{
"MEX$",
@@ -1218,15 +1218,15 @@ cs{
}
YUD{
"YUD",
- "Dinár jugoslávský nový",
+ "Dinár jugoslávský nový [YUD]",
}
YUM{
"YUM",
- "Dinár jugoslávský",
+ "Dinár jugoslávský nový [YUM]",
}
YUN{
"YUN",
- "Dinár jugoslávský",
+ "Dinár jugoslávský konvertibilní",
}
ZAL{
"ZAL",
@@ -1238,7 +1238,7 @@ cs{
}
ZMK{
"ZMK",
- "Kwacha",
+ "Kwacha zambijská",
}
ZRN{
"ZRN",
@@ -1253,7 +1253,7 @@ cs{
"Dolar zimbabwský",
}
}
- ExemplarCharacters{"[a-z ý á é í ó ú Ä› ů Ä Ä Åˆ Å™ Å¡ Å¥ ž]"}
+ ExemplarCharacters{"[a á b c Ä d Ä e é Ä› f-h {ch} i í j-n ň o ó p-r Å™ s Å¡ t Å¥ u ú ů v-y ý z ž]"}
Keys{
calendar{"Kalendář"}
collation{"Třídění"}
@@ -1300,6 +1300,7 @@ cs{
gl{"HaliÄÅ¡tina"}
gn{"Guaranština"}
gu{"Gujaratština"}
+ gv{"Manština"}
ha{"Hausa"}
he{"Hebrejština"}
hi{"Hindština"}
@@ -1341,7 +1342,6 @@ cs{
my{"Barmština"}
na{"Nauru"}
ne{"Nepálština"}
- nl{"Holandština"}
no{"Norština"}
oc{"Occitan"}
om{"Oromo (Afan)"}
@@ -1414,7 +1414,7 @@ cs{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1422,7 +1422,7 @@ cs{
}
Types{
calendar{
- buddhist{"Budhistický kalendář"}
+ buddhist{"Buddhistický kalendář"}
chinese{"Čínský kalendář"}
gregorian{"Gregoriánský kalendář"}
hebrew{"Hebrejský kalendář"}
@@ -1431,20 +1431,16 @@ cs{
japanese{"Japonský kalendář"}
}
}
- Version{"1.61"}
+ Version{"1.83"}
calendar{
gregorian{
AmPmMarkers{
"dop.",
"odp.",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
- "H:mm:ss z",
- "H:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss z",
"H:mm:ss",
"H:mm",
"EEEE, d. MMMM yyyy",
@@ -1495,18 +1491,18 @@ cs{
monthNames{
format{
abbreviated{
- "1.",
- "2.",
- "3.",
- "4.",
- "5.",
- "6.",
- "7.",
- "8.",
- "9.",
- "10.",
- "11.",
- "12.",
+ "ledna",
+ "úno",
+ "bře",
+ "dub",
+ "května",
+ "Äervna",
+ "Äervence",
+ "srp",
+ "září",
+ "říj",
+ "lis",
+ "prosince",
}
narrow{
"l",
@@ -1582,125 +1578,187 @@ cs{
}
}
}
+ quarters{
+ format{
+ wide{
+ "1. Ätvrtletí",
+ "2. Ätvrtletí",
+ "3. Ätvrtletí",
+ "4. Ätvrtletí",
+ }
+ }
+ }
}
}
delimiters{
alternateQuotationEnd{"‘"}
alternateQuotationStart{"‚"}
+ quotationEnd{"“"}
+ quotationStart{"„"}
+ }
+ layout{
+ /**
+ * Used for figuring out the casing of characters in a list.
+ */
+ casing{"titlecase-firstword"}
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
zoneStrings{
- {
- "America/Halifax",
- "Atlantický standardní Äas",
- "AST",
- "Atlantický letní Äas",
- "ADT",
- "Halifax",
- }
- {
- "Europe/Paris",
- "StÅ™edoevropský standardní Äas",
- "CET",
- "StÅ™edoevropský letní Äas",
- "CEST",
- "Paříž",
- }
- {
- "Asia/Jerusalem",
- "Izraelský standardní Äas",
- "IST",
- "Izraelský letní Äas",
- "IDT",
- "Jeruzalém",
- }
- {
- "Asia/Tokyo",
- "Japonský standardní Äas",
- "JST",
- "Japonský standardní Äas",
- "JST",
- "Tokio",
- }
- {
- "Africa/Casablanca",
- "Greenwichský stÅ™ední Äas",
- "GMT",
- "Greenwichský stÅ™ední Äas",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Východoevropský standardní Äas",
- "EET",
- "Východoevropský letní Äas",
- "EEST",
- "Bukurešť",
- }
- {
- "Pacific/Honolulu",
- "Havajský standardní Äas",
- "HST",
- "Havajský standardní Äas",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "AljaÅ¡ský standardní Äas",
- "AST",
- "AljaÅ¡ský letní Äas",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Pacifický standardní Äas",
- "PST",
- "Pacifický letní Äas",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Horský standardní Äas",
- "MST",
- "Horský standardní Äas",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Horský standardní Äas",
- "MST",
- "Horský letní Äas",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Centrální standardní Äas",
- "CST",
- "Centrální letní Äas",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Východní standardní Äas",
- "EST",
- "Východní standardní Äas",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Východní standardní Äas",
- "EST",
- "Východní letní Äas",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Greenwichský stÅ™ední Äas"}
+ ls{"Greenwichský stÅ™ední Äas"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"AljaÅ¡ský letní Äas"}
+ ls{"AljaÅ¡ský standardní Äas"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Centrální letní Äas"}
+ ls{"Centrální standardní Äas"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Cordoba"{
+ ec{"Kordoba"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Horský letní Äas"}
+ ls{"Horský standardní Äas"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantický letní Äas"}
+ ls{"Atlantický standardní Äas"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"Východní letní Äas (Indianapolis)"}
+ ls{"Východní standardní Äas"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pacifický letní Äas"}
+ ls{"Pacifický standardní Äas"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Východní letní Äas (New York)"}
+ ls{"Východní standardní Äas (New York)"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Horský standardní Äas"}
+ ls{"Horský standardní Äas"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:Tijuana"{
+ ec{"Tichuana"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Jižní pól"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jeruzalém"}
+ ld{"Izraelský letní Äas"}
+ ls{"Izraelský standardní Äas"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"KamÄatka"}
+ }
+ "Asia:Kashgar"{
+ ec{"Kašghar"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sachalin"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokio"}
+ ld{"Japonský letní Äas"}
+ ls{"Japonský standardní Äas"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulánbátar"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutsk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekatěrinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azorské ostrovy"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanárské ostrovy"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bukurešť"}
+ ld{"Východoevropský letní Äas"}
+ ls{"Východoevropský standardní Äas"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kiev"{
+ ec{"Kyjev"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisabon"}
+ }
+ "Europe:London"{
+ ec{"Londýn"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Paris"{
+ ec{"Paříž"}
+ ld{"StÅ™edoevropský letní Äas"}
+ ls{"StÅ™edoevropský standardní Äas"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Užhorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Záporoží"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Galapágy"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Havajský letní Äas"}
+ ls{"Havajský standardní Äas"}
+ sd{"HST"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/cs_CZ.txt b/Build/source/libs/icu-xetex/data/locales/cs_CZ.txt
index ad8e2ebfe07..e0c78fd7333 100644
--- a/Build/source/libs/icu-xetex/data/locales/cs_CZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/cs_CZ.txt
@@ -1,17 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/cs_CZ.xml
+// * Source File:<path>/common/main/cs_CZ.xml
// *
// ***************************************************************************
cs_CZ{
+ Languages{
+ lb{"Lucemburština"}
+ }
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.40"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/cy.txt b/Build/source/libs/icu-xetex/data/locales/cy.txt
index 08bab046811..a0c17da3629 100644
--- a/Build/source/libs/icu-xetex/data/locales/cy.txt
+++ b/Build/source/libs/icu-xetex/data/locales/cy.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/cy.xml
+// * Source File:<path>/common/main/cy.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/cy.xml
+ * ICU <specials> source: <path>/xml/main/cy.xml
*/
cy{
+ AuxExemplarCharacters{"[j k q v x z]"}
Countries{
GB{"Prydain Fawr"}
}
@@ -47,7 +48,10 @@ cy{
"Doler yr UDA",
}
}
- ExemplarCharacters{"[a-z âäáàêëéèîïíìôöóòûüúùŵẅwÌáºÅ·Ã¿Ã½á»³]"}
+ ExemplarCharacters{
+ "[a á à â ä b c {ch} d {dd} e é è ê ë f {ff} g-i í ì î ï l {ll} m n {ng} o ó "
+ "ò ô ö p {ph} r {rh} s t {th} u ú ù û ü w ẃ Ạŵ ẅ y ý ỳ ŷ ÿ]"
+ }
Languages{
ar{"Arabeg"}
cy{"Cymraeg"}
@@ -65,12 +69,29 @@ cy{
LocaleScript{
"Latn",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0%",
+ "#E0",
+ }
Scripts{
Latn{"Lladin"}
}
- Version{"1.23"}
+ Version{"1.41"}
calendar{
gregorian{
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
dayNames{
format{
abbreviated{
@@ -154,4 +175,7 @@ cy{
}
}
}
+ zoneStrings{
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/cy_GB.txt b/Build/source/libs/icu-xetex/data/locales/cy_GB.txt
index b20726c36b1..1e3aed25e29 100644
--- a/Build/source/libs/icu-xetex/data/locales/cy_GB.txt
+++ b/Build/source/libs/icu-xetex/data/locales/cy_GB.txt
@@ -1,25 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/cy_GB.xml
+// * Source File:<path>/common/main/cy_GB.xml
// *
// ***************************************************************************
cy_GB{
- NumberPatterns{
- "#,##0.###",
- "¤#,##0.00",
- "#,##0%",
- "#E0",
- }
- Version{"1.20"}
+ Version{"1.33"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/da.txt b/Build/source/libs/icu-xetex/data/locales/da.txt
index 7570db26885..de338fbafe1 100644
--- a/Build/source/libs/icu-xetex/data/locales/da.txt
+++ b/Build/source/libs/icu-xetex/data/locales/da.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/da.xml
+// * Source File:<path>/common/main/da.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/da.xml
+ * ICU <specials> source: <path>/xml/main/da.xml
*/
da{
+ AuxExemplarCharacters{"[á é í ó ú ý]"}
Countries{
AD{"Andorra"}
AE{"Forenede Arabiske Emirater"}
@@ -641,7 +642,7 @@ da{
"Ny israelsk shekel",
}
INR{
- "=0#Rs.|1#Re.|1<Rs.",
+ "INR",
"Indisk rupee",
}
IQD{
@@ -1181,91 +1182,94 @@ da{
"Zimbabwisk dollar",
}
}
- ExemplarCharacters{"[a-z æ å ø á é í ó ú ý]"}
+ ExemplarCharacters{"[a-z æ ø å]"}
Keys{
calendar{"Kalender"}
collation{"Sortering"}
currency{"Valuta"}
}
Languages{
- aa{"Afar"}
- ab{"Abkhasisk"}
- ace{"Achinesisk"}
- ach{"Acoli"}
- ada{"Adangme"}
- ady{"Adyghe"}
- ae{"Avestan"}
- af{"Afrikaans"}
- afa{"Afro-asiatisk (øvrige)"}
- afh{"Afrihili"}
- ak{"Akan"}
- akk{"Akkadisk"}
- ale{"Aleutiske sprog"}
- alg{"Algonkiske sprog"}
- am{"Amharisk"}
- an{"Aragonesisk"}
+ aa{"afar"}
+ ab{"abkhasisk"}
+ ace{"achinesisk"}
+ ach{"acoli"}
+ ada{"adangme"}
+ ady{"adyghe"}
+ ae{"avestan"}
+ af{"afrikaans"}
+ afa{"afro-asiatisk (øvrige)"}
+ afh{"afrihili"}
+ ain{"ainu"}
+ ak{"akan"}
+ akk{"akkadisk"}
+ ale{"aleutisk"}
+ alg{"algonkiske sprog"}
+ am{"amharisk"}
+ an{"aragonesisk"}
ang{"Angelsaksisk (ca.450-1100)"}
- apa{"Apache sprog"}
- ar{"Arabisk"}
- arc{"Aramæisk"}
- arn{"Araukansk"}
- arp{"Arapaho"}
- art{"Kunstsprog (øvrige)"}
- arw{"Arawak"}
- as{"Assamesisk"}
- ast{"Asturisk"}
- aus{"Australske sprog"}
- av{"Avarisk"}
- awa{"Awadhi"}
+ apa{"apache sprog"}
+ ar{"arabisk"}
+ arc{"aramæisk"}
+ arn{"araukansk"}
+ arp{"arapaho"}
+ art{"kunstsprog (øvrige)"}
+ arw{"arawak"}
+ as{"assamesisk"}
+ ast{"asturisk"}
+ ath{"athapaskiske sprog"}
+ aus{"australske sprog"}
+ av{"avarisk"}
+ awa{"awadhi"}
ay{"Aymara"}
- az{"Aserbajdsjan"}
- ba{"Bashkir"}
- bad{"Banda"}
- bal{"Baluchi"}
- ban{"Balinesisk"}
- bas{"Basa"}
- bat{"Baltiske sprog (øvrige)"}
- be{"Hviderussisk"}
- bej{"Beja"}
- bem{"Bemba"}
- ber{"Berberiske sprog"}
- bg{"Bulgarsk"}
- bh{"Bihari"}
- bho{"Bhojpuri"}
- bi{"Bislama"}
- bik{"Bikol"}
- bin{"Bini"}
+ az{"aserbajdsjansk"}
+ ba{"bashkir"}
+ bad{"banda"}
+ bai{"bamilekiske sprog"}
+ bal{"baluchi"}
+ ban{"balinesisk"}
+ bas{"basa"}
+ bat{"baltiske sprog (øvrige)"}
+ be{"hviderussisk"}
+ bej{"beja"}
+ bem{"bemba"}
+ ber{"berberisk"}
+ bg{"bulgarsk"}
+ bh{"bihari"}
+ bho{"bhojpuri"}
+ bi{"bislama"}
+ bik{"bikol"}
+ bin{"bini"}
bla{"Siksika"}
- bm{"Bambara"}
- bn{"Bengalsk"}
- bnt{"Bantu"}
+ bm{"bambara"}
+ bn{"bengalsk"}
+ bnt{"bantu"}
bo{"Tibetansk"}
- br{"Bretonsk"}
- bra{"Braj"}
- bs{"Bosnisk"}
- btk{"Batak"}
- bua{"Buriat"}
- bug{"Buginesisk"}
- byn{"Blin"}
- ca{"Katalansk"}
- cad{"Caddo"}
- cai{"Mellemamerikanske indianske sprog (øvrige)"}
- car{"Caribisk"}
- cau{"Kaukasiske sprog (øvrige)"}
- ce{"Tjetjensk"}
- ceb{"Cebuano"}
- cel{"Keltiske sprog (øvrige)"}
- ch{"Chamorro"}
+ br{"bretonsk"}
+ bra{"braj"}
+ bs{"bosnisk"}
+ btk{"batak"}
+ bua{"buriatisk"}
+ bug{"buginesisk"}
+ byn{"blin"}
+ ca{"katalansk"}
+ cad{"caddo"}
+ cai{"mellemamerikansk indiansk (øvrige)"}
+ car{"caribisk"}
+ cau{"kaukasisk (øvrige)"}
+ ce{"tjetjensk"}
+ ceb{"cebuano"}
+ cel{"keltisk (øvrige)"}
+ ch{"chamorro"}
chb{"Chibcha"}
- chg{"Chagatai"}
+ chg{"chagatai"}
chk{"Chuukese"}
chm{"Mari"}
chn{"Chinook"}
cho{"Choctaw"}
chp{"Chipewyan"}
- chr{"Cherokee"}
- chy{"Cheyenne"}
- cmc{"Chamic sprog"}
+ chr{"cherokee"}
+ chy{"cheyenne"}
+ cmc{"chamic sprog"}
co{"Korsikansk"}
cop{"Koptisk"}
cpe{"Kreolsk og pidgin, baseret på engelsk (øvrige)"}
@@ -1308,7 +1312,7 @@ da{
eo{"Esperanto"}
es{"Spansk"}
et{"Estisk"}
- eu{"Baskisk"}
+ eu{"baskisk"}
ewo{"Ewondo"}
fa{"Persisk"}
fan{"Fang"}
@@ -1340,7 +1344,7 @@ da{
gor{"Gorontalo"}
got{"Gotisk"}
grb{"Grebo"}
- grc{"Græsk, Old- (til 1453)"}
+ grc{"oldgræsk (til 1453)"}
gu{"Gujaratisk"}
gv{"Manx"}
gwi{"Gwichʼin"}
@@ -1359,7 +1363,7 @@ da{
ht{"Haitisk"}
hu{"Ungarsk"}
hup{"Hupa"}
- hy{"Armensk"}
+ hy{"armensk"}
hz{"Herero"}
ia{"Interlingua"}
iba{"Iban"}
@@ -1440,7 +1444,7 @@ da{
mai{"Maithili"}
mak{"Makasar"}
man{"Mandingo"}
- map{"Malajo-polynesiske sprog (øvrige)"}
+ map{"malajo-polynesisk"}
mas{"Masai"}
mdf{"Moksha"}
mdr{"Mandar"}
@@ -1468,7 +1472,7 @@ da{
mun{"Munda (øvrige)"}
mus{"Creek"}
mwr{"Marwari"}
- my{"Burmesisk"}
+ my{"burmesisk"}
myn{"Maya sprog"}
myv{"Erzya"}
na{"Nauru"}
@@ -1532,6 +1536,7 @@ da{
roa{"Romanske sprog (øvrige)"}
rom{"Romani"}
ru{"Russisk"}
+ rup{"arumænsk"}
rw{"Kinyarwanda"}
sa{"Sanskrit"}
sad{"Sandawe"}
@@ -1568,7 +1573,7 @@ da{
so{"Somalisk"}
sog{"Sogdiansk"}
son{"Songhai"}
- sq{"Albansk"}
+ sq{"albansk"}
sr{"Serbisk"}
srr{"Serer"}
ss{"Swati"}
@@ -1606,7 +1611,7 @@ da{
tsi{"Tsimshisk"}
tt{"Tatarisk"}
tum{"Tumbuka"}
- tut{"Tyrkisk-tatariske sprog (øvrige)"}
+ tut{"tyrkisk-tatarisk (øvrige)"}
tvl{"Tuvalu"}
tw{"Twi"}
ty{"Tahitiansk"}
@@ -1658,9 +1663,15 @@ da{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0 %",
+ "#E0",
+ }
Scripts{
Arab{"Arabisk"}
Armn{"Armensk"}
@@ -1704,18 +1715,14 @@ da{
traditional{"Traditionel sorteringsrækkefølge"}
}
}
- Version{"1.46"}
+ Version{"1.68"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
- "H.mm.ss z",
- "H.mm.ss z",
- "H.mm.ss",
- "H.mm",
+ "HH.mm.ss z",
+ "HH.mm.ss z",
+ "HH.mm.ss",
+ "HH.mm",
"EEEE 'den' d. MMMM yyyy",
"d. MMM yyyy",
"dd/MM/yyyy",
@@ -1761,6 +1768,41 @@ da{
"e.Kr.",
}
}
+ fields{
+ day{
+ dn{"dag"}
+ }
+ dayperiod{
+ dn{"dagtid"}
+ }
+ era{
+ dn{"tid"}
+ }
+ hour{
+ dn{"time"}
+ }
+ minute{
+ dn{"minut"}
+ }
+ month{
+ dn{"måned"}
+ }
+ second{
+ dn{"sekund"}
+ }
+ week{
+ dn{"uge"}
+ }
+ weekday{
+ dn{"ugedag"}
+ }
+ year{
+ dn{"Ã¥r"}
+ }
+ zone{
+ dn{"zone"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1809,137 +1851,151 @@ da{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
+ }
}
}
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
zoneStrings{
- {
- "America/Halifax",
- "Atlantic-normaltid",
- "AST",
- "Atlantic-sommertid",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Newfoundland-normaltid",
- "CNT",
- "Newfoundland-sommertid",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Kinesisk normaltid",
- "CTT",
- "Kinesisk normaltid",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Mellemeuropæisk normaltid",
- "CET",
- "Mellemeuropæisk sommertid",
- "CEST",
- "Paris",
- }
- {
- "Asia/Jerusalem",
- "Israelsk normaltid",
- "IST",
- "Israelsk sommertid",
- "IDT",
- "Jerusalem",
- }
- {
- "Asia/Tokyo",
- "Japansk normaltid",
- "JST",
- "Japansk normaltid",
- "JST",
- "Tokyo",
- }
- {
- "Africa/Casablanca",
- "Verdenstid",
- "GMT",
- "Verdenstid",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Østeuropæisk normaltid",
- "EET",
- "Østeuropæisk sommertid",
- "EEST",
- "Bukarest",
- }
- {
- "Pacific/Honolulu",
- "Hawaii-normaltid",
- "HST",
- "Hawaii-normaltid",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Alaska-normaltid",
- "AST",
- "Alaska-sommertid",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Pacific-normaltid",
- "PST",
- "Pacific-sommertid",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Mountain-normaltid",
- "MST",
- "Mountain-normaltid",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Mountain-normaltid",
- "MST",
- "Mountain-sommertid",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Central-normaltid",
- "CST",
- "Central-sommertid",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Eastern-normaltid",
- "EST",
- "Eastern-normaltid",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Eastern-normaltid",
- "EST",
- "Eastern-sommertid",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Verdenstid"}
+ ls{"Verdenstid"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Alaska-sommertid"}
+ ls{"Alaska-normaltid"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Central-sommertid"}
+ ls{"Central-normaltid"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Mountain-sommertid"}
+ ls{"Mountain-normaltid"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Godthab"{
+ ec{"Nuuk"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantic-sommertid"}
+ ls{"Atlantic-normaltid"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"Indianapolis, sommertid"}
+ ls{"Indianapolis, normaltid"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pacific-sommertid"}
+ ls{"Pacific-normaltid"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Eastern-sommertid"}
+ ls{"Eastern-normaltid"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Mountain-normaltid"}
+ ls{"Mountain-normaltid"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Newfoundland-sommertid"}
+ ls{"Newfoundland-normaltid"}
+ sd{"NDT"}
+ ss{"NST"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Sydpolen"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"Israelsk sommertid"}
+ ls{"Israelsk normaltid"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Kinesisk normaltid"}
+ ls{"Kinesisk normaltid"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Japansk normaltid"}
+ ls{"Japansk normaltid"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Atlantic:Canary"{
+ ec{"De Kanariske Øer"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bukarest"}
+ ld{"Østeuropæisk sommertid"}
+ ls{"Østeuropæisk normaltid"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lissabon"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Mellemeuropæisk sommertid"}
+ ls{"Mellemeuropæisk normaltid"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Pacific:Easter"{
+ ec{"Påskeøen"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hawaii-normaltid"}
+ ls{"Hawaii-normaltid"}
+ sd{"HST"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/da_DK.txt b/Build/source/libs/icu-xetex/data/locales/da_DK.txt
index 1da237686fd..d0311ddc46a 100644
--- a/Build/source/libs/icu-xetex/data/locales/da_DK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/da_DK.txt
@@ -1,17 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/da_DK.xml
+// * Source File:<path>/common/main/da_DK.xml
// *
// ***************************************************************************
da_DK{
NumberPatterns{
"#,##0.###",
"¤ #,##0.00;¤ -#,##0.00",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
- Version{"1.27"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/de.txt b/Build/source/libs/icu-xetex/data/locales/de.txt
index 79c52611a35..fddcb6503a0 100644
--- a/Build/source/libs/icu-xetex/data/locales/de.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de.xml
+// * Source File:<path>/common/main/de.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/de.xml
+ * ICU <specials> source: <path>/xml/main/de.xml
*/
de{
Countries{
@@ -20,24 +20,25 @@ de{
014{"Ostafrika"}
015{"Nordafrika"}
017{"Zentralafrika"}
- 018{"Südafrika"}
019{"Nord-, Mittel- und Südamerika"}
021{"Nordamerika"}
029{"Karibik"}
030{"Ostasien"}
+ 034{"Südasien"}
035{"Südostasien"}
039{"Südeuropa"}
053{"Australien und Neuseeland"}
054{"Melanesien"}
- 057{"Mikronesien"}
061{"Polynesien"}
062{"Süd-Zentralasien"}
142{"Asien"}
+ 143{"Zentralasien"}
145{"Westasien"}
150{"Europa"}
151{"Osteuropa"}
154{"Nordeuropa"}
155{"Westeuropa"}
+ 419{"Lateinamerika und Karibik"}
830{"Kanalinseln"}
833{"Insel Man"}
AD{"Andorra"}
@@ -293,7 +294,7 @@ de{
}
AFA{
"AFA",
- "Afghani",
+ "Afghani (1927-2002)",
}
AFN{
"Af",
@@ -381,7 +382,7 @@ de{
}
BGL{
"BGL",
- "Lew",
+ "Lew (1962-1999)",
}
BGN{
"BGN",
@@ -1224,7 +1225,7 @@ de{
"Simbabwe Dollar",
}
}
- ExemplarCharacters{"[a-z ä ö ü ß]"}
+ ExemplarCharacters{"[a ä b-o ö p-s ß t u ü v-z]"}
Keys{
calendar{"Kalender"}
collation{"Sortierung"}
@@ -1360,6 +1361,7 @@ de{
fat{"Fanti-Sprache"}
ff{"Ful"}
fi{"Finnisch"}
+ fil{"Filipino"}
fiu{"Finnougrische Sprachen (Andere)"}
fj{"Fidschianisch"}
fo{"Färöisch"}
@@ -1713,9 +1715,15 @@ de{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0%",
+ "#E0",
+ }
Scripts{
Arab{"Arabisch"}
Armn{"Armenisch"}
@@ -1787,17 +1795,13 @@ de{
POSIX{"Posix"}
REVISED{"Revidiert"}
}
- Version{"1.52"}
+ Version{"1.77"}
calendar{
gregorian{
AmPmMarkers{
"vorm.",
"nachm.",
}
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"H:mm' Uhr 'z",
"HH:mm:ss z",
@@ -1852,6 +1856,35 @@ de{
"n. Chr.",
}
}
+ fields{
+ day{
+ dn{"Tag"}
+ }
+ dayperiod{
+ dn{"Tageshälfte"}
+ }
+ era{
+ dn{"Epoche"}
+ }
+ hour{
+ dn{"Stunde"}
+ }
+ month{
+ dn{"Monat"}
+ }
+ second{
+ dn{"Sekunde"}
+ }
+ week{
+ dn{"Woche"}
+ }
+ weekday{
+ dn{"Wochentag"}
+ }
+ year{
+ dn{"Jahr"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1900,6 +1933,16 @@ de{
}
}
}
+ quarters{
+ format{
+ wide{
+ "1. Quartal",
+ "2. Quartal",
+ "3. Quartal",
+ "4. Quartal",
+ }
+ }
+ }
}
}
delimiters{
@@ -1910,13 +1953,75 @@ de{
}
localPatternChars{"GjMtkHmsSEDFwWahKzJeugAZvcL"}
zoneStrings{
- {
- "Europe/Berlin",
- "Mitteleuropäische Zeit",
- "MEZ",
- "Mitteleuropäische Sommerzeit",
- "MESZ",
- "Berlin",
+ "America:Mexico_City"{
+ ec{"Mexiko-Stadt"}
+ }
+ "America:St_Johns"{
+ ec{"St. John's"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Südpol"}
+ }
+ "Antarctica:Vostok"{
+ ec{"Wostok"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamtschatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"Nowosibirsk"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sachalin"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taschkent"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulan-Bator"}
+ }
+ "Asia:Vladivostok"{
+ ec{"Wladiwostok"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutsk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekaterinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azoren"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanaren"}
+ }
+ "Europe:Berlin"{
+ ec{"Berlin"}
+ ld{"Mitteleuropäische Sommerzeit"}
+ ls{"Mitteleuropäische Zeit"}
+ sd{"MESZ"}
+ ss{"MEZ"}
+ }
+ "Europe:Kiev"{
+ ec{"Kiew"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lissabon"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskau"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Uschgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Saporischja"}
+ }
+ "Pacific:Easter"{
+ ec{"Osterinsel"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/de_AT.txt b/Build/source/libs/icu-xetex/data/locales/de_AT.txt
index 0ebb27faa32..6ed08926c3a 100644
--- a/Build/source/libs/icu-xetex/data/locales/de_AT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de_AT.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de_AT.xml
+// * Source File:<path>/common/main/de_AT.xml
// *
// ***************************************************************************
de_AT{
- Version{"1.28"}
+ Version{"1.42"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"HH:mm' Uhr 'z",
"HH:mm:ss z",
@@ -25,17 +29,17 @@ de_AT{
format{
abbreviated{
"Jän",
- "Feb",
+ "Februar",
"Mär",
"Apr",
"Mai",
"Jun",
"Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember",
}
wide{
"Jänner",
diff --git a/Build/source/libs/icu-xetex/data/locales/de_BE.txt b/Build/source/libs/icu-xetex/data/locales/de_BE.txt
index 7f5e8cd87a8..5215123f9a0 100644
--- a/Build/source/libs/icu-xetex/data/locales/de_BE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de_BE.xml
+// * Source File:<path>/common/main/de_BE.xml
// *
// ***************************************************************************
de_BE{
@@ -19,9 +19,13 @@ de_BE{
"#,##0%",
"#E0",
}
- Version{"1.30"}
+ Version{"1.42"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"HH 'h' mm 'min' ss 's' z",
"HH:mm:ss z",
@@ -50,17 +54,17 @@ de_BE{
format{
abbreviated{
"Jan",
- "Feb",
+ "Februar",
"Mär",
"Apr",
"Mai",
"Jun",
"Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember",
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/de_CH.txt b/Build/source/libs/icu-xetex/data/locales/de_CH.txt
index 9701a2d0a20..81e4696a446 100644
--- a/Build/source/libs/icu-xetex/data/locales/de_CH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de_CH.xml
+// * Source File:<path>/common/main/de_CH.xml
// *
// ***************************************************************************
de_CH{
@@ -31,7 +31,7 @@ de_CH{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -40,5 +40,24 @@ de_CH{
"#,##0%",
"#E0",
}
- Version{"1.31"}
+ Version{"1.45"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ DateTimePatterns{
+ "H:mm' Uhr 'z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, d. MMMM yyyy",
+ "d. MMMM yyyy",
+ "dd.MM.yyyy",
+ "dd.MM.yy",
+ "{1} {0}",
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/de_DE.txt b/Build/source/libs/icu-xetex/data/locales/de_DE.txt
index b35ce54aff2..94dad181d2a 100644
--- a/Build/source/libs/icu-xetex/data/locales/de_DE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de_DE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de_DE.xml
+// * Source File:<path>/common/main/de_DE.xml
// *
// ***************************************************************************
de_DE{
@@ -13,5 +13,13 @@ de_DE{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/de_LU.txt b/Build/source/libs/icu-xetex/data/locales/de_LU.txt
index 315bb498902..111569af948 100644
--- a/Build/source/libs/icu-xetex/data/locales/de_LU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/de_LU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/de_LU.xml
+// * Source File:<path>/common/main/de_LU.xml
// *
// ***************************************************************************
de_LU{
@@ -12,7 +12,10 @@ de_LU{
"F",
"Luxemburgischer Franc",
{
- "#,##0 ¤;-#,##0 ¤",
+ /**
+ * Duplicated from NumberPatterns resource
+ */
+ "#,##0.00 ¤",
".",
",",
}
@@ -24,5 +27,24 @@ de_LU{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.43"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ DateTimePatterns{
+ "H:mm' Uhr 'z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, d. MMMM yyyy",
+ "d. MMMM yyyy",
+ "dd.MM.yyyy",
+ "dd.MM.yy",
+ "{1} {0}",
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/el.txt b/Build/source/libs/icu-xetex/data/locales/el.txt
index b46c0fa9dac..c31cbaf37d8 100644
--- a/Build/source/libs/icu-xetex/data/locales/el.txt
+++ b/Build/source/libs/icu-xetex/data/locales/el.txt
@@ -1,16 +1,43 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/el.xml
+// * Source File:<path>/common/main/el.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/el.xml
+ * ICU <specials> source: <path>/xml/main/el.xml
*/
el{
Countries{
+ 001{"Κόσμος"}
+ 002{"ΑφÏική"}
+ 005{"Îότια ΑμεÏική"}
+ 009{"Ωκεανία"}
+ 011{"Δυτική ΑφÏική"}
+ 013{"ΚεντÏική ΑμεÏική"}
+ 014{"Ανατολική ΑφÏική"}
+ 015{"Î’ÏŒÏεια ΑφÏική"}
+ 017{"Μέση ΑφÏική"}
+ 018{"Îότια ΑφÏική [018]"}
+ 019{"ΑμεÏική"}
+ 021{"Î’ÏŒÏεια ΑμεÏική"}
+ 029{"ΚαÏαϊβική"}
+ 030{"Ανατολική Ασία"}
+ 035{"Îοτιοανατολική Ασία"}
+ 053{"ΑυστÏαλία και Îέα Ζηλανδία"}
+ 054{"Μελανησία"}
+ 061{"Πολυνησία"}
+ 062{"Îότια ΚεντÏική Ασία"}
+ 142{"Ασία"}
+ 145{"Δυτική Ασία"}
+ 150{"ΕυÏώπη"}
+ 151{"Ανατολική ΕυÏώπη"}
+ 154{"Î’ÏŒÏεια ΕυÏώπη"}
+ 155{"Δυτική ΕυÏώπη"}
+ 830{"Îήσοι ΚαναλιοÏ"}
+ 833{"Îήσος Μαν"}
AD{"ΑνδόÏα"}
AE{"Ηνωμένα ΑÏαβικά ΕμιÏάτα"}
AF{"Αφγανιστάν"}
@@ -26,6 +53,7 @@ el{
AT{"ΑυστÏία"}
AU{"ΑυστÏαλία"}
AW{"ΑÏοÏμπα"}
+ AX{"Îήσοι Aland"}
AZ{"ΑζεÏμπαϊτζάν"}
BA{"Βοσνία - ΕÏζεγοβίνη"}
BB{"ΜπαÏμπάντος"}
@@ -59,6 +87,7 @@ el{
CN{"Κίνα"}
CO{"Κολομβία"}
CR{"Κόστα Ρίκα"}
+ CS{"ΣεÏβία και ΜαυÏοβοÏνιο"}
CU{"ΚοÏβα"}
CV{"Îήσοι ΠÏάσινου ΑκÏωτηÏίου"}
CX{"Îήσος ΧÏιστουγέννων"}
@@ -140,6 +169,7 @@ el{
LT{"Λιθουανία"}
LU{"ΛουξεμβοÏÏγο"}
LV{"Λετονία"}
+ LY{"ΛιβÏη"}
MA{"ΜαÏόκο"}
MC{"Μονακό"}
MD{"Μολδαβία, ΔημοκÏατία της"}
@@ -189,6 +219,7 @@ el{
PW{"Παλάου"}
PY{"ΠαÏαγουάη"}
QA{"ΚατάÏ"}
+ QO{"ΠεÏιφεÏειακή Ωκεανία"}
RE{"Ρεϋνιόν"}
RO{"Ρουμανία"}
RU{"Ρωσία"}
@@ -551,7 +582,7 @@ el{
"ΦÏάγκο Γαλλίας",
}
GBP{
- "£",
+ "GBP",
"ΛίÏα ΣτεÏλίνα Î’Ïετανίας",
}
GEK{
@@ -588,7 +619,7 @@ el{
}
GRD{
"ΔÏχ",
- "ΔÏχ",
+ "ΔÏαχμή Ελλάδας",
}
GTQ{
"Q",
@@ -1026,6 +1057,10 @@ el{
"TL",
"ΛίÏα ΤουÏκίας",
}
+ TRY{
+ "TRY",
+ "Îέα ΤουÏκική ΛίÏα",
+ }
TTD{
"TT$",
"ΔολάÏιο ΤÏινιδάδ και Τομπάγκο",
@@ -1187,7 +1222,7 @@ el{
"ΔολάÏιο Ζιμπάμπουε",
}
}
- ExemplarCharacters{"[Îά-ÏŽ]"}
+ ExemplarCharacters{"[α ά β-ε έ ζ η ή θ ι ί ÏŠ Πκ-ο ÏŒ Ï€ Ï Ïƒ Ï‚ Ï„ Ï… Ï Ï‹ ΰ φ-ω ÏŽ]"}
Keys{
calendar{"ΗμεÏολόγιο"}
collation{"Τακτοποίηση"}
@@ -1198,6 +1233,7 @@ el{
arc{"ΑÏαμαϊκά"}
be{"ΛευκοÏωσικά"}
bg{"ΒουλγαÏικά"}
+ bn{"Μπενγκάλι"}
bo{"Θιβετιανά"}
bs{"Βοσνιακά"}
ca{"Καταλανικά"}
@@ -1221,6 +1257,7 @@ el{
grc{"Ελληνικά, ΑÏχαία (έως 1453)"}
haw{"Χαβανεζικά"}
he{"ΕβÏαϊκά"}
+ hi{"Χίντι"}
hr{"ΚÏοατικά"}
hu{"ΟυγγÏικά"}
hy{"ΑÏμενικά"}
@@ -1260,6 +1297,7 @@ el{
sq{"Αλβανικά"}
sr{"ΣεÏβικά"}
sv{"Σουηδικά"}
+ th{"Ταϊλανδικά"}
tr{"ΤουÏκικά"}
uk{"ΟυκÏανικά"}
vi{"Βιετναμεζικά"}
@@ -1280,7 +1318,7 @@ el{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1320,17 +1358,13 @@ el{
traditional{"ΠαÏαδοσιακή"}
}
}
- Version{"1.50"}
+ Version{"1.68"}
calendar{
gregorian{
AmPmMarkers{
"ΠΜ",
"ΜΜ",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
@@ -1471,7 +1505,164 @@ el{
}
}
}
+ quarters{
+ format{
+ wide{
+ "1ο Ï„Ïίμηνο",
+ "2ο Ï„Ïίμηνο",
+ "3ο Ï„Ïίμηνο",
+ "4ο Ï„Ïίμηνο",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Bamako"{
+ ec{"Μπαμάκο"}
+ }
+ "Africa:Kinshasa"{
+ ec{"Κινσάσα"}
+ }
+ "Africa:Timbuktu"{
+ ec{"ΤιμπουκτοÏ"}
+ }
+ "America:Anchorage"{
+ ec{"ΆνκοÏατζ"}
+ }
+ "America:Buenos_Aires"{
+ ec{"Μπουένος ΆιÏες"}
+ }
+ "America:Cancun"{
+ ec{"ΚανκοÏν"}
+ }
+ "America:Chicago"{
+ ec{"Σικάγο"}
+ }
+ "America:Denver"{
+ ec{"ÎτένβεÏ"}
+ }
+ "America:Detroit"{
+ ec{"ÎτητÏόιτ"}
+ }
+ "America:Indianapolis"{
+ ec{"Ινδιανάπολη"}
+ }
+ "America:Los_Angeles"{
+ ec{"Λος Άντζελες"}
+ }
+ "America:Manaus"{
+ ec{"Μανάος"}
+ }
+ "America:Mexico_City"{
+ ec{"Πόλη του ΜεξικοÏ"}
+ }
+ "America:Montreal"{
+ ec{"ΜόντÏεαλ"}
+ }
+ "America:New_York"{
+ ec{"Îέα ΥόÏκη"}
+ }
+ "America:Phoenix"{
+ ec{"Φοίνιξ"}
+ }
+ "America:Santiago"{
+ ec{"Σαντιάγκο"}
+ }
+ "America:Sao_Paulo"{
+ ec{"Σάο Πάολο"}
+ }
+ "America:Tijuana"{
+ ec{"Τιχουάνα"}
+ }
+ "America:Toronto"{
+ ec{"ΤοÏόντο"}
+ }
+ "America:Vancouver"{
+ ec{"ΒανκοÏβεÏ"}
+ }
+ "Asia:Irkutsk"{
+ ec{"ΙÏκοÏτσκ"}
+ }
+ "Asia:Jakarta"{
+ ec{"ΤζακάÏτα"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"Κουάλα ΛουμποÏÏ"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"ÎοβοσιμπίÏσκ"}
+ }
+ "Asia:Omsk"{
+ ec{"Ομσκ"}
+ }
+ "Asia:Samarkand"{
+ ec{"ΣαμαÏκάνδη"}
+ }
+ "Asia:Shanghai"{
+ ec{"Σανγκάη"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ουλάν ΜπατόÏ"}
+ }
+ "Asia:Vladivostok"{
+ ec{"Βλαδιβοστόκ"}
+ }
+ "Atlantic:Azores"{
+ ec{"ΑζόÏες"}
+ }
+ "Atlantic:Canary"{
+ ec{"ΚανάÏια"}
+ }
+ "Atlantic:Madeira"{
+ ec{"ΜαδέÏα"}
+ }
+ "Australia:Adelaide"{
+ ec{"ΑδελαÎδα"}
+ }
+ "Australia:Melbourne"{
+ ec{"ΜελβοÏÏνη"}
+ }
+ "Australia:Sydney"{
+ ec{"ΣÏδνεϊ"}
+ }
+ "Europe:Belfast"{
+ ec{"Μπέλφαστ"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Καλλίπολη"}
+ }
+ "Europe:Kiev"{
+ ec{"Κίεβο"}
+ }
+ "Europe:Lisbon"{
+ ec{"Λισσαβώνα"}
+ }
+ "Europe:London"{
+ ec{"Λονδίνο"}
+ }
+ "Europe:Madrid"{
+ ec{"ΜαδÏίτη"}
+ }
+ "Europe:Moscow"{
+ ec{"Μόσχα"}
+ }
+ "Europe:Samara"{
+ ec{"ΣαμάÏα"}
+ }
+ "Pacific:Auckland"{
+ ec{"Όκλαντ"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Γκαλαπάγκος"}
+ }
+ "Pacific:Honolulu"{
+ ec{"ΧονολουλοÏ"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Αϊτή"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/el_GR.txt b/Build/source/libs/icu-xetex/data/locales/el_GR.txt
index a4211ad4033..03e5e08ad0f 100644
--- a/Build/source/libs/icu-xetex/data/locales/el_GR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/el_GR.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/el_GR.xml
+// * Source File:<path>/common/main/el_GR.xml
// *
// ***************************************************************************
el_GR{
Currencies{
GRD{
"ΔÏχ",
- "ΔÏχ",
+ "ΔÏαχμή Ελλάδας",
{
"#,##0.00 ¤;-#,##0.00 ¤",
",",
@@ -24,5 +24,11 @@ el_GR{
"#,##0%",
"#E0",
}
- Version{"1.30"}
+ Version{"1.41"}
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"“"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en.txt b/Build/source/libs/icu-xetex/data/locales/en.txt
index 42a80404685..7341223b416 100644
--- a/Build/source/libs/icu-xetex/data/locales/en.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en.txt
@@ -1,16 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en.xml
+// * Source File:<path>/common/main/en.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/en.xml
+ * ICU <specials> source: <path>/xml/main/en.xml
*/
en{
- AuxExemplarCharacters{"[áà éè íì óò úù âêîôû æœ äëïöüÿ ÄÄ“Ä«ÅÅ« ăĕĭÅÅ­ åø çñß]"}
+ AuxExemplarCharacters{
+ "[á à ă â Ã¥ ä Ä Ã¦ ç é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ö ø Å Å“ ß ú ù Å­ û ü Å« ÿ"
+ "]"
+ }
Countries{
001{"World"}
002{"Africa"}
@@ -27,14 +30,15 @@ en{
021{"Northern America"}
029{"Caribbean"}
030{"Eastern Asia"}
- 035{"South-eastern Asia"}
+ 034{"Southern Asia"}
+ 035{"South-Eastern Asia"}
039{"Southern Europe"}
053{"Australia and New Zealand"}
054{"Melanesia"}
057{"Micronesian Region"}
061{"Polynesia"}
- 062{"South-central Asia"}
142{"Asia"}
+ 143{"Central Asia"}
145{"Western Asia"}
150{"Europe"}
151{"Eastern Europe"}
@@ -44,7 +48,6 @@ en{
200{"Czechoslovakia"}
419{"Latin America and the Caribbean"}
830{"Channel Islands"}
- 833{"Isle of Man"}
AD{"Andorra"}
AE{"United Arab Emirates"}
AF{"Afghanistan"}
@@ -124,6 +127,7 @@ en{
GD{"Grenada"}
GE{"Georgia"}
GF{"French Guiana"}
+ GG{"Guernsey"}
GH{"Ghana"}
GI{"Gibraltar"}
GL{"Greenland"}
@@ -137,7 +141,7 @@ en{
GU{"Guam"}
GW{"Guinea-Bissau"}
GY{"Guyana"}
- HK{"Hong Kong S.A.R., China"}
+ HK{"Hong Kong SAR China"}
HM{"Heard Island and McDonald Islands"}
HN{"Honduras"}
HR{"Croatia"}
@@ -146,12 +150,14 @@ en{
ID{"Indonesia"}
IE{"Ireland"}
IL{"Israel"}
+ IM{"Isle of Man"}
IN{"India"}
IO{"British Indian Ocean Territory"}
IQ{"Iraq"}
IR{"Iran"}
IS{"Iceland"}
IT{"Italy"}
+ JE{"Jersey"}
JM{"Jamaica"}
JO{"Jordan"}
JP{"Japan"}
@@ -186,7 +192,7 @@ en{
ML{"Mali"}
MM{"Myanmar"}
MN{"Mongolia"}
- MO{"Macao S.A.R., China"}
+ MO{"Macao SAR China"}
MP{"Northern Mariana Islands"}
MQ{"Martinique"}
MR{"Mauritania"}
@@ -227,6 +233,7 @@ en{
PY{"Paraguay"}
QA{"Qatar"}
QO{"Outlying Oceania"}
+ QU{"European Union"}
RE{"Reunion"}
RO{"Romania"}
RU{"Russia"}
@@ -286,6 +293,7 @@ en{
ZA{"South Africa"}
ZM{"Zambia"}
ZW{"Zimbabwe"}
+ ZZ{"Unknown or Invalid Region"}
}
Currencies{
ADP{
@@ -358,6 +366,10 @@ en{
}
AZM{
"AZM",
+ "Azerbaijanian Manat (1993-2006)",
+ }
+ AZN{
+ "AZN",
"Azerbaijanian Manat",
}
BAD{
@@ -993,7 +1005,7 @@ en{
"Papua New Guinea Kina",
}
PHP{
- "PHP",
+ "Php",
"Philippine Peso",
}
PKR{
@@ -1025,7 +1037,11 @@ en{
"Rhodesian Dollar",
}
ROL{
- "leu",
+ "=0#Old lei|1#Old leu|1<Old lei",
+ "Old Romanian Leu",
+ }
+ RON{
+ "=0#lei|1#leu|1<lei",
"Romanian Leu",
}
RUB{
@@ -1358,6 +1374,7 @@ en{
af{"Afrikaans"}
afa{"Afro-Asiatic (Other)"}
afh{"Afrihili"}
+ ain{"Ainu"}
ak{"Akan"}
akk{"Akkadian"}
ale{"Aleut"}
@@ -1366,6 +1383,7 @@ en{
am{"Amharic"}
an{"Aragonese"}
ang{"Old English (ca.450-1100)"}
+ anp{"Angika"}
apa{"Apache Languages"}
ar{"Arabic"}
arc{"Aramaic"}
@@ -1415,6 +1433,7 @@ en{
cai{"Central American Indian (Other)"}
car{"Carib"}
cau{"Caucasian (Other)"}
+ cch{"Atsam"}
ce{"Chechen"}
ceb{"Cebuano"}
cel{"Celtic (Other)"}
@@ -1486,8 +1505,10 @@ en{
fr{"French"}
frm{"Middle French"}
fro{"Old French"}
+ frr{"Northern Frisian"}
+ frs{"Eastern Frisian"}
fur{"Friulian"}
- fy{"Frisian"}
+ fy{"Western Frisian"}
ga{"Irish"}
gaa{"Ga"}
gay{"Gayo"}
@@ -1496,7 +1517,7 @@ en{
gem{"Germanic (Other)"}
gez{"Geez"}
gil{"Gilbertese"}
- gl{"Gallegan"}
+ gl{"Galician"}
gmh{"Middle High German"}
gn{"Guarani"}
goh{"Old High German"}
@@ -1505,6 +1526,7 @@ en{
got{"Gothic"}
grb{"Grebo"}
grc{"Ancient Greek"}
+ gsw{"Swiss German"}
gu{"Gujarati"}
gv{"Manx"}
gwi{"Gwichʼin"}
@@ -1538,7 +1560,7 @@ en{
ine{"Indo-European (Other)"}
inh{"Ingush"}
io{"Ido"}
- ira{"Iranian"}
+ ira{"Iranian (Other)"}
iro{"Iroquoian languages"}
is{"Icelandic"}
it{"Italian"}
@@ -1552,10 +1574,13 @@ en{
kaa{"Kara-Kalpak"}
kab{"Kabyle"}
kac{"Kachin"}
+ kaj{"Jju"}
kam{"Kamba"}
kar{"Karen"}
kaw{"Kawi"}
kbd{"Kabardian"}
+ kcg{"Tyap"}
+ kfo{"Koro"}
kg{"Kongo"}
kha{"Khasi"}
khi{"Khoisan (Other)"}
@@ -1573,6 +1598,7 @@ en{
kpe{"Kpelle"}
kr{"Kanuri"}
krc{"Karachay-Balkar"}
+ krl{"Karelian"}
kro{"Kru"}
kru{"Kurukh"}
ks{"Kashmiri"}
@@ -1638,7 +1664,7 @@ en{
mwl{"Mirandese"}
mwr{"Marwari"}
my{"Burmese"}
- myn{"Mayan"}
+ myn{"Mayan languages"}
myv{"Erzya"}
na{"Nauru"}
nah{"Nahuatl"}
@@ -1691,7 +1717,7 @@ en{
pon{"Pohnpeian"}
pra{"Prakrit Languages"}
pro{"Old Provençal"}
- ps{"Pashto (Pushto)"}
+ ps{"Pashto"}
pt{"Portuguese"}
qu{"Quechua"}
raj{"Rajasthani"}
@@ -1704,6 +1730,7 @@ en{
rom{"Romany"}
root{"Root"}
ru{"Russian"}
+ rup{"Aromanian"}
rw{"Kinyarwanda"}
sa{"Sanskrit"}
sad{"Sandawe"}
@@ -1823,6 +1850,7 @@ en{
znd{"Zande"}
zu{"Zulu"}
zun{"Zuni"}
+ zxx{"No linguistic content"}
}
LocaleScript{
"Latn",
@@ -1846,6 +1874,7 @@ en{
Bugi{"Buginese"}
Buhd{"Buhid"}
Cans{"Unified Canadian Aboriginal Symbols"}
+ Cham{"Cham"}
Cher{"Cherokee"}
Cirt{"Cirth"}
Copt{"Coptic"}
@@ -1926,6 +1955,7 @@ en{
Tfng{"Tifinagh (Berber)"}
Tglg{"Tagalog"}
Thaa{"Thaana"}
+ Thai{"Thai"}
Tibt{"Tibetan"}
Ugar{"Ugaritic"}
Vaii{"Vai"}
@@ -1966,17 +1996,19 @@ en{
HAKKA{"Hakka"}
LOJBAN{"Lojban"}
NEDIS{"Natisone dialect"}
+ POLYTONI{"Polytonic"}
POSIX{"Computer"}
REVISED{"Revised Orthography"}
ROZAJ{"Resian"}
+ SAAHO{"Saho"}
SCOUSE{"Scouse"}
XIANG{"Xiang or Hunanese"}
}
- Version{"1.72"}
+ Version{"1.109"}
calendar{
gregorian{
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
@@ -2029,6 +2061,18 @@ en{
"Anno Domini",
}
}
+ fields{
+ day{
+ relative{
+ "-1"{"Yesterday"}
+ "0"{"Today"}
+ "1"{"Tomorrow"}
+ }
+ }
+ dayperiod{
+ dn{"AM/PM"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -2077,212 +2121,179 @@ en{
}
}
}
+ quarters{
+ format{
+ wide{
+ "1st quarter",
+ "2nd quarter",
+ "3rd quarter",
+ "4th quarter",
+ }
+ }
+ }
}
}
- delimiters{
- alternateQuotationEnd{"â€"}
- alternateQuotationStart{"“"}
- quotationEnd{"’"}
- quotationStart{"‘"}
- }
zoneStrings{
- {
- "America/Vancouver",
- "Pacific Standard Time (CA)",
- "PST (CA)",
- "Pacific Daylight Time (CA)",
- "PDT (CA)",
- "Vancouver",
- "Pacific Time (CA)",
- "PT (CA)",
- }
- {
- "America/Edmonton",
- "Mountain Standard Time (CA)",
- "MST (CA)",
- "Mountain Daylight Time (CA)",
- "MDT (CA)",
- "Edmonton",
- "Mountain Time (CA)",
- "MT (CA)",
- }
- {
- "America/Winnipeg",
- "Central Standard Time (CA)",
- "CST (CA)",
- "Central Daylight Time (CA)",
- "CDT (CA)",
- "Winnipeg",
- "Central Time (CA)",
- "CT (CA)",
- }
- {
- "America/Montreal",
- "Eastern Standard Time (CA)",
- "EST (CA)",
- "Eastern Daylight Time (CA)",
- "EDT (CA)",
- "Montreal",
- "Eastern Time (CA)",
- "ET (CA)",
- }
- {
- "America/Halifax",
- "Atlantic Standard Time",
- "AST",
- "Atlantic Daylight Time",
- "ADT",
- "Halifax",
- "Atlantic Time",
- "AT",
- }
- {
- "America/St_Johns",
- "Newfoundland Standard Time",
- "NST",
- "Newfoundland Daylight Time",
- "NDT",
- "St. John’s",
- "Newfoundland Time",
- "NT",
- }
- {
- "Asia/Shanghai",
- "China Standard Time",
- "CST",
- "China Daylight Time",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Dublin",
- "Greenwich Mean Time",
- "GMT",
- "Irish Summer Time",
- "IST",
- "Dublin",
- }
- {
- "Europe/Paris",
- "Central European Standard Time",
- "CEST",
- "Central European Daylight Time",
- "CEDT",
- "Paris",
- "Central European Time",
- "CET",
- }
- {
- "Europe/London",
- "Greenwich Mean Time",
- "GMT",
- "British Summer Time",
- "BST",
- "London",
- }
- {
- "Asia/Jerusalem",
- "Israel Standard Time",
- "IST",
- "Israel Daylight Time",
- "IDT",
- "Jerusalem",
- }
- {
- "Asia/Tokyo",
- "Japan Standard Time",
- "JST",
- "Japan Daylight Time",
- "JDT",
- "Tokyo",
- }
- {
- "Europe/Bucharest",
- "Eastern European Standard Time",
- "EET",
- "Eastern European Daylight Time",
- "EEST",
- "Bucharest",
- }
- {
- "Pacific/Honolulu",
- "Hawaii Standard Time",
- "HST",
- "Hawaii Daylight Time",
- "HDT",
- "Honolulu",
- "Hawaii Time",
- "HT",
- }
- {
- "America/Anchorage",
- "Alaska Standard Time",
- "AKST",
- "Alaska Daylight Time",
- "AKDT",
- "Anchorage",
- "Alaska Time",
- "AKT",
- }
- {
- "America/Los_Angeles",
- "Pacific Standard Time",
- "PST",
- "Pacific Daylight Time",
- "PDT",
- "Los Angeles",
- "Pacific Time",
- "PT",
- }
- {
- "America/Phoenix",
- "Mountain Standard Time",
- "MST",
- "Mountain Daylight Time",
- "MDT",
- "Phoenix",
- "Mountain Time",
- "MT",
- }
- {
- "America/Denver",
- "Mountain Standard Time",
- "MST",
- "Mountain Daylight Time",
- "MDT",
- "Denver",
- "Mountain Time",
- "MT",
- }
- {
- "America/Chicago",
- "Central Standard Time",
- "CST",
- "Central Daylight Time",
- "CDT",
- "Chicago",
- "Central Time",
- "CT",
- }
- {
- "America/Indianapolis",
- "Eastern Standard Time",
- "EST",
- "Eastern Daylight Time",
- "EDT",
- "Indianapolis",
- "Eastern Time",
- "ET",
- }
- {
- "America/New_York",
- "Eastern Standard Time",
- "EST",
- "Eastern Daylight Time",
- "EDT",
- "New York",
- "Eastern Time",
- "ET",
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Alaska Daylight Time"}
+ lg{"Alaska Time"}
+ ls{"Alaska Standard Time"}
+ sg{"AKT"}
+ ss{"AKST"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Central Daylight Time"}
+ lg{"Central Time"}
+ ls{"Central Standard Time"}
+ sd{"CDT"}
+ sg{"CT"}
+ ss{"CST"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Mountain Daylight Time"}
+ lg{"Mountain Time"}
+ ls{"Mountain Standard Time"}
+ sd{"MDT"}
+ sg{"MT"}
+ ss{"MST"}
+ }
+ "America:Edmonton"{
+ ec{"Edmonton"}
+ ld{"Mountain Daylight Time (CA)"}
+ lg{"Mountain Time (CA)"}
+ ls{"Mountain Standard Time (CA)"}
+ sd{"MDT (CA)"}
+ sg{"MT (CA)"}
+ ss{"MST (CA)"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantic Daylight Time"}
+ lg{"Atlantic Time"}
+ ls{"Atlantic Standard Time"}
+ sd{"ADT"}
+ sg{"AT"}
+ ss{"AST"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pacific Daylight Time"}
+ lg{"Pacific Time"}
+ ls{"Pacific Standard Time"}
+ sd{"PDT"}
+ sg{"PT"}
+ ss{"PST"}
+ }
+ "America:Montreal"{
+ ec{"Montreal"}
+ ld{"Eastern Daylight Time (CA)"}
+ lg{"Eastern Time (CA)"}
+ ls{"Eastern Standard Time (CA)"}
+ sd{"EDT (CA)"}
+ sg{"ET (CA)"}
+ ss{"EST (CA)"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Eastern Daylight Time"}
+ lg{"Eastern Time"}
+ ls{"Eastern Standard Time"}
+ sd{"EDT"}
+ sg{"ET"}
+ ss{"EST"}
+ }
+ "America:St_Johns"{
+ ec{"St. John’s"}
+ ld{"Newfoundland Daylight Time"}
+ lg{"Newfoundland Time"}
+ ls{"Newfoundland Standard Time"}
+ sd{"NDT"}
+ sg{"NT"}
+ ss{"NST"}
+ }
+ "America:Vancouver"{
+ ec{"Vancouver"}
+ ld{"Pacific Daylight Time (CA)"}
+ lg{"Pacific Time (CA)"}
+ ls{"Pacific Standard Time (CA)"}
+ sd{"PDT (CA)"}
+ sg{"PT (CA)"}
+ ss{"PST (CA)"}
+ }
+ "America:Winnipeg"{
+ ec{"Winnipeg"}
+ ld{"Central Daylight Time (CA)"}
+ lg{"Central Time (CA)"}
+ ls{"Central Standard Time (CA)"}
+ sd{"CDT (CA)"}
+ sg{"CT (CA)"}
+ ss{"CST (CA)"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"Israel Daylight Time"}
+ ls{"Israel Standard Time"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"China Daylight Time"}
+ ls{"China Standard Time"}
+ }
+ "Asia:Singapore"{
+ ec{"Singapore"}
+ ld{"Singapore Standard Time"}
+ ls{"Singapore Standard Time"}
+ sd{"SST"}
+ ss{"SST"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Japan Daylight Time"}
+ ls{"Japan Standard Time"}
+ sd{"JDT"}
+ ss{"JST"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"Eastern European Daylight Time"}
+ ls{"Eastern European Standard Time"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Dublin"{
+ ec{"Dublin"}
+ ld{"Irish Summer Time"}
+ ls{"Greenwich Mean Time"}
+ sd{"IST"}
+ ss{"GMT"}
+ }
+ "Europe:London"{
+ ec{"London"}
+ ld{"British Summer Time"}
+ ls{"Greenwich Mean Time"}
+ sd{"BST"}
+ ss{"GMT"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Central European Daylight Time"}
+ lg{"Central European Time"}
+ ls{"Central European Standard Time"}
+ sd{"CEDT"}
+ sg{"CET"}
+ ss{"CEST"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hawaii Daylight Time"}
+ lg{"Hawaii Time"}
+ ls{"Hawaii Standard Time"}
+ sd{"HDT"}
+ sg{"HT"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_AU.txt b/Build/source/libs/icu-xetex/data/locales/en_AU.txt
index a79dc02fa54..b50dfb0ba30 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_AU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_AU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_AU.xml
+// * Source File:<path>/common/main/en_AU.xml
// *
// ***************************************************************************
en_AU{
@@ -13,11 +13,15 @@ en_AU{
"Australian Dollar",
}
}
- Version{"1.25"}
+ Version{"1.38"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_BE.txt b/Build/source/libs/icu-xetex/data/locales/en_BE.txt
index 8bb2f96fa0a..0b1c4239a91 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_BE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_BE.xml
+// * Source File:<path>/common/main/en_BE.xml
// *
// ***************************************************************************
en_BE{
@@ -29,7 +29,7 @@ en_BE{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -38,7 +38,7 @@ en_BE{
"#,##0%",
"#E0",
}
- Version{"1.32"}
+ Version{"1.46"}
calendar{
gregorian{
DateTimeElements:intvector{
diff --git a/Build/source/libs/icu-xetex/data/locales/en_BW.txt b/Build/source/libs/icu-xetex/data/locales/en_BW.txt
index 1e1536521c3..df32bad276a 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_BW.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_BW.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_BW.xml
+// * Source File:<path>/common/main/en_BW.xml
// *
// ***************************************************************************
en_BW{
- Version{"1.24"}
+ Version{"1.36"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_CA.txt b/Build/source/libs/icu-xetex/data/locales/en_CA.txt
index 86deef94641..1f0bfaf7ec0 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_CA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_CA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_CA.xml
+// * Source File:<path>/common/main/en_CA.xml
// *
// ***************************************************************************
en_CA{
@@ -19,7 +19,7 @@ en_CA{
"#,##0%",
"#E0",
}
- Version{"1.31"}
+ Version{"1.46"}
calendar{
gregorian{
DateTimeElements:intvector{
@@ -27,7 +27,7 @@ en_CA{
4,
}
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_GB.txt b/Build/source/libs/icu-xetex/data/locales/en_GB.txt
index 2c0092357ee..292f0cb4eb1 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_GB.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_GB.txt
@@ -1,19 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_GB.xml
+// * Source File:<path>/common/main/en_GB.xml
// *
// ***************************************************************************
en_GB{
- Version{"1.31"}
+ Version{"1.47"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -27,14 +23,10 @@ en_GB{
}
}
}
- zoneStrings{
- {
- "Europe/London",
- "Greenwich Mean Time",
- "GMT",
- "British Summer Time",
- "BST",
- "London",
- }
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"“"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_HK.txt b/Build/source/libs/icu-xetex/data/locales/en_HK.txt
index 6db7cadea21..7d2d0cda326 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_HK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_HK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_HK.xml
+// * Source File:<path>/common/main/en_HK.xml
// *
// ***************************************************************************
en_HK{
@@ -23,11 +23,15 @@ en_HK{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.37"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_IE.txt b/Build/source/libs/icu-xetex/data/locales/en_IE.txt
index 14dd0affde4..4d0efc5eb54 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_IE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_IE.txt
@@ -1,25 +1,33 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_IE.xml
+// * Source File:<path>/common/main/en_IE.xml
// *
// ***************************************************************************
en_IE{
Currencies{
+ GBP{
+ "GBP",
+ "British Pound Sterling",
+ }
IEP{
"£",
"Irish Pound",
}
}
- Version{"1.30"}
+ Version{"1.45"}
calendar{
gregorian{
AmPmMarkers{
"a.m.",
"p.m.",
}
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_IN.txt b/Build/source/libs/icu-xetex/data/locales/en_IN.txt
index 91e10edfeee..1eab51752f5 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_IN.xml
+// * Source File:<path>/common/main/en_IN.xml
// *
// ***************************************************************************
en_IN{
@@ -13,15 +13,11 @@ en_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.31"}
+ Version{"1.44"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_MT.txt b/Build/source/libs/icu-xetex/data/locales/en_MT.txt
index 9cf627b8c74..4a37427e8a5 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_MT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_MT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_MT.xml
+// * Source File:<path>/common/main/en_MT.xml
// *
// ***************************************************************************
en_MT{
@@ -13,7 +13,7 @@ en_MT{
"British Pound Sterling",
}
}
- Version{"1.30"}
+ Version{"1.43"}
calendar{
gregorian{
DateTimeElements:intvector{
diff --git a/Build/source/libs/icu-xetex/data/locales/en_NZ.txt b/Build/source/libs/icu-xetex/data/locales/en_NZ.txt
index c86e1629318..97c5ec4f15a 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_NZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_NZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_NZ.xml
+// * Source File:<path>/common/main/en_NZ.xml
// *
// ***************************************************************************
en_NZ{
@@ -13,11 +13,15 @@ en_NZ{
"New Zealand Dollar",
}
}
- Version{"1.28"}
+ Version{"1.41"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_PH.txt b/Build/source/libs/icu-xetex/data/locales/en_PH.txt
index 836f3187d7c..c68939a7ef6 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_PH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_PH.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_PH.xml
+// * Source File:<path>/common/main/en_PH.xml
// *
// ***************************************************************************
en_PH{
Currencies{
PHP{
- "PHP",
+ "Php",
"Peso",
}
}
@@ -19,11 +19,15 @@ en_PH{
"#,##0%",
"#E0",
}
- Version{"1.25"}
+ Version{"1.36"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_PK.txt b/Build/source/libs/icu-xetex/data/locales/en_PK.txt
index 01f2f25ce68..d0628331a49 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_PK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_PK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_PK.xml
+// * Source File:<path>/common/main/en_PK.xml
// *
// ***************************************************************************
en_PK{
@@ -13,11 +13,15 @@ en_PK{
"#,##,##0%",
"#E0",
}
- Version{"1.9"}
+ Version{"1.21"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "h:mm:ss a z",
+ "h:mm:ss a v",
"h:mm:ss a z",
"h:mm:ss a",
"h:mm a",
@@ -27,6 +31,11 @@ en_PK{
"dd/MM/yy",
"{1} {0}",
}
+ availableFormats{
+ MMMMd{"d MMMM"}
+ MMdd{"dd/MM"}
+ yyyyMMMM{"MMMM yyyy"}
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_RH.txt b/Build/source/libs/icu-xetex/data/locales/en_RH.txt
new file mode 100644
index 00000000000..84bb70893a1
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/locales/en_RH.txt
@@ -0,0 +1,11 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/icu-config.xml & build.xml
+// *
+// ***************************************************************************
+en_RH{
+ "%%ALIAS"{"en_ZW"}
+}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_SG.txt b/Build/source/libs/icu-xetex/data/locales/en_SG.txt
index f506cc0670b..f10fb5aae1e 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_SG.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_SG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_SG.xml
+// * Source File:<path>/common/main/en_SG.xml
// *
// ***************************************************************************
en_SG{
@@ -17,30 +17,24 @@ en_SG{
"USD",
}
}
- Version{"1.31"}
+ Version{"1.43"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
- "a hh:mm:ss",
- "a hh:mm:ss",
- "a hh:mm",
- "a hh:mm",
- "dd MMMM yyyy",
- "dd MMM yyyy",
- "dd-MMM-yy",
- "dd/MM/yy",
+ "h:mm:ss a v",
+ "h:mm:ss a z",
+ "h:mm:ss a",
+ "h:mm a",
+ "EEEE, MMMM d, yyyy",
+ "MMMM d, yyyy",
+ "MMM d, yyyy",
+ "M/d/yy",
"{1} {0}",
}
}
}
- zoneStrings{
- {
- "Asia/Singapore",
- "Singapore Standard Time",
- "SST",
- "Singapore Standard Time",
- "SST",
- "Singapore",
- }
- }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_US.txt b/Build/source/libs/icu-xetex/data/locales/en_US.txt
index 5bef85dbf3a..f59312e7144 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_US.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_US.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_US.xml
+// * Source File:<path>/common/main/en_US.xml
// *
// ***************************************************************************
en_US{
@@ -24,5 +24,13 @@ en_US{
279,
216,
}
- Version{"1.31"}
+ Version{"1.43"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_US_POSIX.txt b/Build/source/libs/icu-xetex/data/locales/en_US_POSIX.txt
index dbdd749f0f3..ce7be0bcc8e 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_US_POSIX.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_US_POSIX.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_US_POSIX.xml
+// * Source File:<path>/common/main/en_US_POSIX.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/en_US_POSIX.xml
+ * ICU <specials> source: <path>/xml/main/en_US_POSIX.xml
*/
en_US_POSIX{
NumberElements{
@@ -30,8 +30,5 @@ en_US_POSIX{
"#0%",
"0.000000E+000",
}
- Version{"1.32"}
- boundaries{
- word{"word_POSIX"}
- }
+ Version{"1.47"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_VI.txt b/Build/source/libs/icu-xetex/data/locales/en_VI.txt
index dad33d2057f..3478694ae47 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_VI.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_VI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_VI.xml
+// * Source File:<path>/common/main/en_VI.xml
// *
// ***************************************************************************
en_VI{
@@ -13,5 +13,13 @@ en_VI{
"#,##0%",
"#E0",
}
- Version{"1.25"}
+ Version{"1.36"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/en_ZA.txt b/Build/source/libs/icu-xetex/data/locales/en_ZA.txt
index b82db9bdc16..16051fb4efd 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_ZA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_ZA.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_ZA.xml
+// * Source File:<path>/common/main/en_ZA.xml
// *
// ***************************************************************************
en_ZA{
- Version{"1.25"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/en_ZW.txt b/Build/source/libs/icu-xetex/data/locales/en_ZW.txt
index 9b7841fce8c..bffa3be44c7 100644
--- a/Build/source/libs/icu-xetex/data/locales/en_ZW.txt
+++ b/Build/source/libs/icu-xetex/data/locales/en_ZW.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/en_ZW.xml
+// * Source File:<path>/common/main/en_ZW.xml
// *
// ***************************************************************************
en_ZW{
@@ -13,9 +13,13 @@ en_ZW{
"Zimbabwean Dollar",
}
}
- Version{"1.25"}
+ Version{"1.36"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/eo.txt b/Build/source/libs/icu-xetex/data/locales/eo.txt
index 063b140e8e8..fed2a9f7a5e 100644
--- a/Build/source/libs/icu-xetex/data/locales/eo.txt
+++ b/Build/source/libs/icu-xetex/data/locales/eo.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/eo.xml
+// * Source File:<path>/common/main/eo.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/eo.xml
+ * ICU <specials> source: <path>/xml/main/eo.xml
*/
eo{
+ AuxExemplarCharacters{"[q w-y]"}
Countries{
AD{"Andoro"}
AE{"UnuiÄintaj Arabaj Emirlandos"}
@@ -236,7 +237,7 @@ eo{
ZM{"Zambio"}
ZW{"Zimbabvo"}
}
- ExemplarCharacters{"[a-z Å­ ĉ Ä Ä¥ ĵ Å]"}
+ ExemplarCharacters{"[a-c ĉ d-g Ä h Ä¥ i j ĵ k-p r s Å t u Å­ v z]"}
Languages{
aa{"afara"}
ab{"abĥaza"}
@@ -391,20 +392,16 @@ eo{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.36"}
+ Version{"1.52"}
calendar{
gregorian{
AmPmMarkers{
"atm",
"ptm",
}
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"H'-a horo kaj 'm z",
"HH:mm:ss z",
@@ -476,6 +473,22 @@ eo{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1a kvaronjaro",
+ "2a kvaronjaro",
+ "3a kvaronjaro",
+ "4a kvaronjaro",
+ }
+ }
+ }
}
}
localPatternChars{"GjMtkHmslTDUSnahKzJdugAZvcL"}
diff --git a/Build/source/libs/icu-xetex/data/locales/es.txt b/Build/source/libs/icu-xetex/data/locales/es.txt
index 92909471391..e7a031362a5 100644
--- a/Build/source/libs/icu-xetex/data/locales/es.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es.txt
@@ -1,16 +1,46 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es.xml
+// * Source File:<path>/common/main/es.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/es.xml
+ * ICU <specials> source: <path>/xml/main/es.xml
*/
es{
+ AuxExemplarCharacters{"[ü]"}
Countries{
+ 001{"Mundo"}
+ 002{"Ãfrica"}
+ 005{"Suramérica"}
+ 009{"Oceanía"}
+ 011{"Ãfrica occidental"}
+ 013{"Centroamérica"}
+ 014{"Ãfrica oriental"}
+ 015{"Ãfrica septentrional"}
+ 017{"Ãfrica central"}
+ 018{"Ãfrica meridional"}
+ 019{"Américas"}
+ 021{"Norteamérica"}
+ 029{"Caribe"}
+ 030{"Asia oriental"}
+ 034{"Asia meridional"}
+ 035{"Sudeste asiático"}
+ 039{"Europa meridional"}
+ 053{"Australia y Nueva Zelanda"}
+ 054{"Melanesia"}
+ 057{"Micronesia [057]"}
+ 061{"Polinesia"}
+ 142{"Asia"}
+ 143{"Asia central"}
+ 145{"Asia occidental"}
+ 150{"Europa"}
+ 151{"Europa oriental"}
+ 154{"Europa septentrional"}
+ 155{"Europa occidental"}
+ 419{"Latinoamérica y el Caribe"}
AD{"Andorra"}
AE{"Emiratos Ãrabes Unidos"}
AF{"Afganistán"}
@@ -26,6 +56,7 @@ es{
AT{"Austria"}
AU{"Australia"}
AW{"Aruba"}
+ AX{"Islas Ã…land"}
AZ{"Azerbaiyán"}
BA{"Bosnia-Herzegovina"}
BB{"Barbados"}
@@ -33,7 +64,7 @@ es{
BE{"Bélgica"}
BF{"Burkina Faso"}
BG{"Bulgaria"}
- BH{"Bahráin"}
+ BH{"Bahréin"}
BI{"Burundi"}
BJ{"Benín"}
BM{"Bermudas"}
@@ -112,7 +143,7 @@ es{
IE{"Irlanda"}
IL{"Israel"}
IN{"India"}
- IO{"Territorios Británico del Océano Ãndico"}
+ IO{"Territorio Británico del Océano Ãndico"}
IQ{"Iraq"}
IR{"Irán"}
IS{"Islandia"}
@@ -121,7 +152,7 @@ es{
JO{"Jordania"}
JP{"Japón"}
KE{"Kenia"}
- KG{"Kirguizistán"}
+ KG{"Kirguistán"}
KH{"Camboya"}
KI{"Kiribati"}
KM{"Comoras"}
@@ -144,7 +175,7 @@ es{
LY{"Libia"}
MA{"Marruecos"}
MC{"Mónaco"}
- MD{"Moldova"}
+ MD{"Moldavia"}
MG{"Madagascar"}
MH{"Islas Marshall"}
MK{"Macedonia"}
@@ -191,7 +222,8 @@ es{
PW{"Palau"}
PY{"Paraguay"}
QA{"Qatar"}
- RE{"Réunion"}
+ QO{"Territorios alejados de Oceanía"}
+ RE{"Reunión"}
RO{"Rumanía"}
RU{"Rusia"}
RW{"Ruanda"}
@@ -209,7 +241,7 @@ es{
SM{"San Marino"}
SN{"Senegal"}
SO{"Somalia"}
- SR{"Suriname"}
+ SR{"Surinam"}
ST{"Santo Tomé y Príncipe"}
SV{"El Salvador"}
SY{"Siria"}
@@ -330,7 +362,7 @@ es{
}
BAM{
"KM",
- "marco bosnio convertible",
+ "marco convertible de Bosnia-Herzegovina",
}
BBD{
"BDS$",
@@ -468,10 +500,18 @@ es{
"Col$",
"peso colombiano",
}
+ COU{
+ "COU",
+ "unidad de valor real colombiana",
+ }
CRC{
"C",
"colón costarricense",
}
+ CSD{
+ "CSD",
+ "dinar serbio",
+ }
CSK{
"CSK",
"corona fuerte checoslovaca",
@@ -517,7 +557,7 @@ es{
"dinar argelino",
}
ECS{
- "S/",
+ "ECS",
"sucre ecuatoriano",
}
ECV{
@@ -536,6 +576,14 @@ es{
"ERN",
"nakfa eritreo",
}
+ ESA{
+ "ESA",
+ "peseta española (cuenta A)",
+ }
+ ESB{
+ "ESB",
+ "peseta española (cuenta convertible)",
+ }
ESP{
"₧",
"peseta española",
@@ -590,7 +638,7 @@ es{
}
GNF{
"GF",
- "franco guineo",
+ "franco guineano",
}
GNS{
"GNS",
@@ -642,7 +690,7 @@ es{
}
HUF{
"Ft",
- "forinto húngaro",
+ "florín húngaro",
}
IDR{
"Rp",
@@ -756,10 +804,18 @@ es{
"LTT",
"talonas lituano",
}
+ LUC{
+ "LUC",
+ "franco convertible luxemburgués",
+ }
LUF{
"LUF",
"franco luxemburgués",
}
+ LUL{
+ "LUL",
+ "franco financiero luxemburgués",
+ }
LVL{
"LVL",
"lats letón",
@@ -944,8 +1000,16 @@ es{
"QR",
"riyal de Qatar",
}
+ RHD{
+ "RHD",
+ "dólar rodesiano",
+ }
ROL{
"leu",
+ "antiguo leu rumano",
+ }
+ RON{
+ "RON",
"leu rumano",
}
RUB{
@@ -1008,6 +1072,10 @@ es{
"So. Sh.",
"chelín somalí",
}
+ SRD{
+ "SRD",
+ "dólar surinamés",
+ }
SRG{
"Sf",
"florín surinamés",
@@ -1064,6 +1132,10 @@ es{
"TL",
"lira turca",
}
+ TRY{
+ "TRY",
+ "nueva lira turca",
+ }
TTD{
"TT$",
"dólar de Trinidad y Tobago",
@@ -1136,6 +1208,10 @@ es{
"XAF",
"franco CFA BEAC",
}
+ XAG{
+ "XAG",
+ "plata",
+ }
XAU{
"XAU",
"oro",
@@ -1180,10 +1256,30 @@ es{
"XOF",
"franco CFA BCEAO",
}
+ XPD{
+ "XPD",
+ "paladio",
+ }
XPF{
"CFPF",
"franco CFP",
}
+ XPT{
+ "XPT",
+ "platino",
+ }
+ XRE{
+ "XRE",
+ "fondos RINET",
+ }
+ XTS{
+ "XTS",
+ "código reservado para pruebas",
+ }
+ XXX{
+ "XXX",
+ "Sin divisa",
+ }
YDD{
"YDD",
"dinar yemení",
@@ -1229,7 +1325,7 @@ es{
"dólar de Zimbabue",
}
}
- ExemplarCharacters{"[a-z ñ á é í ó ú ü]"}
+ ExemplarCharacters{"[a á b-e é f-i í j-n ñ o ó p-u ú ü v-z]"}
Keys{
calendar{"calendario"}
collation{"intercalación"}
@@ -1237,7 +1333,7 @@ es{
}
Languages{
aa{"afar"}
- ab{"abkhaziano"}
+ ab{"abjaso"}
ace{"acehnés"}
ach{"acoli"}
ada{"adangme"}
@@ -1246,10 +1342,12 @@ es{
af{"afrikaans"}
afa{"afroasiáticas (otras)"}
afh{"afrihili"}
+ ain{"ainu"}
ak{"akan"}
akk{"acadio"}
ale{"aleutiano"}
alg{"lenguas algonquinas"}
+ alt{"altái meridional"}
am{"amárico"}
an{"aragonés"}
ang{"inglés antiguo (450-1100 aprox.)"}
@@ -1288,12 +1386,12 @@ es{
bla{"siksika"}
bm{"bambara"}
bn{"bengalí"}
- bnt{"bantúes (otras)"}
+ bnt{"bantú"}
bo{"tibetano"}
br{"bretón"}
bra{"braj"}
bs{"bosnio"}
- btk{"batak (Indonesia)"}
+ btk{"batak"}
bua{"buriat"}
bug{"buginés"}
byn{"blin"}
@@ -1319,6 +1417,7 @@ es{
co{"corso"}
cop{"copto"}
cpe{"criollas y pidgins, basadas en el inglés (otras)"}
+ cpf{"criollas y pidgins, basadas en el francés (otras)"}
cpp{"criollas y pidgins, basadas en el portugués (otras)"}
cr{"cree"}
crh{"tártaro de Crimea"}
@@ -1342,10 +1441,10 @@ es{
dra{"dravídicas (otras)"}
dsb{"sorbio inferior"}
dua{"duala"}
- dum{"neerlandés medieval (1050-1350 aprox.)"}
+ dum{"neerlandés medieval"}
dv{"divehi"}
dyu{"diula"}
- dz{"bhutaní"}
+ dz{"dzongkha"}
ee{"ewe"}
efi{"efik"}
egy{"egipcio (antiguo)"}
@@ -1353,7 +1452,7 @@ es{
el{"griego"}
elx{"elamita"}
en{"inglés"}
- enm{"inglés medieval (1100-1500)"}
+ enm{"inglés medieval"}
eo{"esperanto"}
es{"español"}
et{"estonio"}
@@ -1363,13 +1462,14 @@ es{
fan{"fang"}
fat{"fanti"}
ff{"fula"}
- fi{"finlandés"}
+ fi{"finés"}
+ fil{"filipino"}
fiu{"finougrias (otras)"}
- fj{"fidji"}
+ fj{"fidjiano"}
fo{"feroés"}
fr{"francés"}
- frm{"francés medieval (1400-1600 aprox.)"}
- fro{"francés antiguo (842-1400 aprox.)"}
+ frm{"francés medieval"}
+ fro{"francés antiguo"}
fur{"friulano"}
fy{"frisón"}
ga{"irlandés"}
@@ -1381,14 +1481,14 @@ es{
gez{"geez"}
gil{"gilbertés"}
gl{"gallego"}
- gmh{"alemán de la alta edad media (1050-1500 aprox.)"}
+ gmh{"alemán de la alta edad media"}
gn{"guaraní"}
- goh{"alemán de la alta edad antigua (750-1050 aprox.)"}
+ goh{"alemán de la alta edad antigua"}
gon{"gondi"}
gor{"gorontalo"}
got{"gótico"}
grb{"grebo"}
- grc{"griego antiguo (hasta el 1453)"}
+ grc{"griego antiguo"}
gu{"gujarati"}
gv{"gaélico manés"}
gwi{"kutchin"}
@@ -1495,7 +1595,7 @@ es{
mdr{"mandar"}
men{"mende"}
mg{"malgache"}
- mga{"irlandés medieval (900-1200)"}
+ mga{"irlandés medieval"}
mh{"marshalés"}
mi{"maorí"}
mic{"micmac"}
@@ -1517,6 +1617,7 @@ es{
mul{"lenguas múltiples"}
mun{"lenguas munda"}
mus{"creek"}
+ mwl{"mirandés"}
mwr{"marwari"}
my{"birmano"}
myn{"maya"}
@@ -1534,7 +1635,6 @@ es{
nia{"nias"}
nic{"níger-kordofanianas (otras)"}
niu{"niueano"}
- nl{"holandés"}
nn{"nynorsk noruego"}
no{"noruego"}
nog{"nogai"}
@@ -1543,6 +1643,7 @@ es{
nso{"sotho septentrional"}
nub{"lenguas nubias"}
nv{"navajo"}
+ nwc{"newari clásico"}
ny{"nyanja"}
nym{"nyamwezi"}
nyn{"nyankole"}
@@ -1554,7 +1655,7 @@ es{
or{"oriya"}
os{"osético"}
osa{"osage"}
- ota{"turco otomano (1500-1928)"}
+ ota{"turco otomano"}
oto{"lenguas otomanas"}
pa{"punjabí"}
paa{"papúes (otras)"}
@@ -1562,15 +1663,15 @@ es{
pal{"pahlavi"}
pam{"pampanga"}
pap{"papiamento"}
- pau{"palavano"}
- peo{"persa antiguo (600-400 a.C. aprox.)"}
+ pau{"palauano"}
+ peo{"persa antiguo"}
phi{"filipinas (otras)"}
phn{"fenicio"}
pi{"pali"}
pl{"polaco"}
pon{"pohnpeiano"}
- pra{"lenguas prakrit"}
- pro{"provenzal antiguo (hasta el 1500)"}
+ pra{"lenguas prácritas"}
+ pro{"provenzal antiguo"}
ps{"pashto"}
pt{"portugués"}
qu{"quechua"}
@@ -1584,6 +1685,7 @@ es{
rom{"romaní"}
root{"raíz"}
ru{"ruso"}
+ rup{"arrumano"}
rw{"kinyarwanda"}
sa{"sánscrito"}
sad{"sandawe"}
@@ -1594,17 +1696,18 @@ es{
sas{"sasak"}
sat{"santali"}
sc{"sardo"}
+ scn{"siciliano"}
sco{"escocés"}
sd{"sindhi"}
se{"sami septentrional"}
sel{"selkup"}
sem{"semíticas (otras)"}
sg{"sango"}
- sga{"irlandés antiguo (hasta el 900)"}
+ sga{"irlandés antiguo"}
sgn{"lenguajes de signos"}
- sh{"serbo-croata"}
+ sh{"serbocroata"}
shn{"shan"}
- si{"singalés"}
+ si{"cingalés"}
sid{"sidamo"}
sio{"lenguas sioux"}
sit{"sino-tibetanas (otras)"}
@@ -1616,7 +1719,7 @@ es{
smi{"lenguas sami (otras)"}
smj{"sami lule"}
smn{"sami inari"}
- sms{"sami sklot"}
+ sms{"sami skolt"}
sn{"shona"}
snk{"soninké"}
so{"somalí"}
@@ -1624,6 +1727,7 @@ es{
son{"songhai"}
sq{"albanés"}
sr{"serbio"}
+ srn{"sranan tongo"}
srr{"serer"}
ss{"siswati"}
ssa{"nilosaharianas (otras)"}
@@ -1643,11 +1747,12 @@ es{
tet{"tetún"}
tg{"tayiko"}
th{"tailandés"}
- ti{"tigrinya"}
+ ti{"tigriña"}
tig{"tigré"}
- tk{"turkmeno"}
+ tk{"turcomano"}
tkl{"tokelauano"}
tl{"tagalo"}
+ tlh{"klingon"}
tli{"tlingit"}
tmh{"tamashek"}
tn{"setchwana"}
@@ -1657,7 +1762,7 @@ es{
tr{"turco"}
ts{"tsonga"}
tsi{"tsimshiano"}
- tt{"tatar"}
+ tt{"tártaro"}
tum{"tumbuka"}
tup{"lenguas tupí"}
tut{"altaicas (otras)"}
@@ -1675,7 +1780,7 @@ es{
uz{"uzbeko"}
ve{"venda"}
vi{"vietnamita"}
- vo{"volapuk"}
+ vo{"volapük"}
vot{"vótico"}
wa{"valón"}
wak{"lenguas wakasha"}
@@ -1687,7 +1792,7 @@ es{
xal{"kalmyk"}
xh{"xhosa"}
yap{"yapés"}
- yi{"yidish"}
+ yi{"yídish"}
yo{"yoruba"}
ypk{"lenguas yupik"}
za{"zhuang"}
@@ -1712,7 +1817,7 @@ es{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -1724,18 +1829,25 @@ es{
Scripts{
Arab{"árabe"}
Armn{"armenio"}
+ Batk{"batak"}
Beng{"bengalí"}
+ Blis{"símbolos blis"}
Bopo{"bopomofo"}
+ Brah{"brahmi"}
Brai{"braille"}
Buhd{"buhid"}
Cans{"símbolos aborígenes canadienses unificados"}
Cher{"cherokee"}
+ Cirt{"cirth"}
Copt{"copto"}
Cprt{"chipriota"}
Cyrl{"cirílico"}
Deva{"devanagari"}
Dsrt{"deseret"}
- Ethi{"etíopico"}
+ Egyd{"egipcio demótico"}
+ Egyh{"egipcio hierático"}
+ Egyp{"jeroglíficos egipcios"}
+ Ethi{"etiópico"}
Geor{"georgiano"}
Goth{"gótico"}
Grek{"griego"}
@@ -1748,22 +1860,34 @@ es{
Hant{"han tradicional"}
Hebr{"hebreo"}
Hira{"hiragana"}
+ Hmng{"pahawh hmong"}
+ Hrkt{"katakana o hiragana"}
+ Hung{"húngaro antiguo"}
+ Inds{"Indio (harappan)"}
Ital{"antigua bastardilla"}
+ Java{"javanés"}
Kana{"katakana"}
Khmr{"jemer"}
Knda{"canarés"}
Laoo{"lao"}
+ Latf{"latín (variante fraktur)"}
+ Latg{"latín (variante gaélica)"}
Latn{"latín"}
Limb{"limbu"}
- Linb{"linear B"}
+ Lina{"lineal A"}
+ Linb{"lineal B"}
+ Maya{"jeroglíficos mayas"}
+ Mero{"meroítico"}
Mlym{"malayálam"}
- Mong{"mongoliano"}
- Mymr{"myanmar"}
+ Mong{"mongol"}
+ Mymr{"birmano"}
Ogam{"ogham"}
Orya{"oriya"}
Osma{"osmaniya"}
+ Phnx{"fenicio"}
+ Qaai{"heredado"}
Runr{"rúnico"}
- Shaw{"shavian"}
+ Shaw{"shaviano"}
Sinh{"binhala"}
Syrc{"siriaco"}
Tagb{"tagbanúa"}
@@ -1792,19 +1916,19 @@ es{
direct{"orden directo"}
phonebook{"orden de listín telefónico"}
pinyin{"orden pinyin"}
- stroke{"orden pincelada"}
+ stroke{"orden de los trazos"}
traditional{"orden tradicional"}
}
}
Variants{
- REVISED{"Revisado"}
+ REVISED{"Ortografía revisada"}
}
- Version{"1.52"}
+ Version{"1.79"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
+ AmPmMarkers{
+ "a.m.",
+ "p.m.",
}
DateTimePatterns{
"HH'H'mm''ss\" z",
@@ -1856,6 +1980,41 @@ es{
"d.C.",
}
}
+ fields{
+ day{
+ dn{"día"}
+ }
+ dayperiod{
+ dn{"periodo del día"}
+ }
+ era{
+ dn{"era"}
+ }
+ hour{
+ dn{"hora"}
+ }
+ minute{
+ dn{"minuto"}
+ }
+ month{
+ dn{"mes"}
+ }
+ second{
+ dn{"segundo"}
+ }
+ week{
+ dn{"semana"}
+ }
+ weekday{
+ dn{"día de la semana"}
+ }
+ year{
+ dn{"año"}
+ }
+ zone{
+ dn{"zona"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1904,137 +2063,189 @@ es{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "1er trimestre",
+ "2º trimestre",
+ "3er trimestre",
+ "4º trimestre",
+ }
+ }
+ }
}
}
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"“"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
+ }
localPatternChars{"GuMtkHmsSEDFwWahKzUeygAZvcL"}
+ measurementSystemNames{
+ US{"estadounidense"}
+ metric{"métrico"}
+ }
zoneStrings{
- {
- "America/Halifax",
- "Hora estándar del Atlántico",
- "AST",
- "Hora de verano del Atlántico",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Hora estándar de Newfoundland",
- "CNT",
- "Hora de verano de Newfoundland",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Hora estándar de China",
- "CTT",
- "Hora estándar de China",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Hora estándar de Europa Central",
- "CET",
- "Hora de verano de Europa Central",
- "CEST",
- "París",
- }
- {
- "Asia/Jerusalem",
- "Hora estándar de Israel",
- "IST",
- "Hora de verano de Israel",
- "IDT",
- "Jerusalén",
- }
- {
- "Asia/Tokyo",
- "Hora estándar de Japón",
- "JST",
- "Hora estándar de Japón",
- "JST",
- "Tokio",
- }
- {
- "Africa/Casablanca",
- "Hora media de Greenwich",
- "GMT",
- "Hora media de Greenwich",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Hora estándar de Europa del Este",
- "EET",
- "Hora de verano de Europa del Este",
- "EEST",
- "Bucarest",
- }
- {
- "Pacific/Honolulu",
- "Hora estándar de Hawai",
- "HST",
- "Hora estándar de Hawai",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Hora estándar de Alaska",
- "AST",
- "Hora de verano de Alaska",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Hora estándar del Pacífico",
- "PST",
- "Hora de verano del Pacífico",
- "PDT",
- "Los Ãngeles",
- }
- {
- "America/Phoenix",
- "Hora estándar de Montaña",
- "MST",
- "Hora estándar de Montaña",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Hora estándar de Montaña",
- "MST",
- "Hora de verano de Montaña",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Hora estándar central",
- "CST",
- "Hora de verano central",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Hora estándar oriental",
- "EST",
- "Hora estándar oriental",
- "EST",
- "Indianápolis",
- }
- {
- "America/New_York",
- "Hora estándar oriental",
- "EST",
- "Hora de verano oriental",
- "EDT",
- "Nueva York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Hora media de Greenwich"}
+ ls{"Hora media de Greenwich"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Hora de verano de Alaska"}
+ ls{"Hora estándar de Alaska"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Río Gallegos"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Tucumán"}
+ }
+ "America:Cancun"{
+ ec{"Cancún"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Hora de verano central"}
+ ls{"Hora estándar central"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Cordoba"{
+ ec{"Córdoba"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Hora de verano de Montaña"}
+ ls{"Hora estándar de Montaña"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Hora de verano del Atlántico"}
+ ls{"Hora estándar del Atlántico"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianápolis"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Ãngeles"}
+ ld{"Hora de verano del Pacífico"}
+ ls{"Hora estándar del Pacífico"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Merida"{
+ ec{"Mérida"}
+ }
+ "America:Mexico_City"{
+ ec{"Ciudad de México"}
+ }
+ "America:New_York"{
+ ec{"Nueva York"}
+ ld{"Hora de verano oriental"}
+ ls{"Hora estándar oriental"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Hora estándar de Montaña"}
+ ls{"Hora estándar de Montaña"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Hora de verano de Newfoundland"}
+ ls{"Hora estándar de Newfoundland"}
+ ss{"CNT"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Polo Sur"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalén"}
+ ld{"Hora de verano de Israel"}
+ ls{"Hora estándar de Israel"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Hora estándar de China"}
+ ls{"Hora estándar de China"}
+ ss{"CTT"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokio"}
+ ld{"Hora estándar de Japón"}
+ ls{"Hora estándar de Japón"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Yekaterinburgo"}
+ }
+ "Atlantic:Canary"{
+ ec{"Canarias"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucarest"}
+ ld{"Hora de verano de Europa del Este"}
+ ls{"Hora estándar de Europa del Este"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Kaliningrado"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisboa"}
+ }
+ "Europe:London"{
+ ec{"Londres"}
+ }
+ "Europe:Moscow"{
+ ec{"Moscú"}
+ }
+ "Europe:Paris"{
+ ec{"París"}
+ ld{"Hora de verano de Europa Central"}
+ ls{"Hora estándar de Europa Central"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Pacific:Easter"{
+ ec{"Pascua"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Galápagos"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hora estándar de Hawai"}
+ ls{"Hora estándar de Hawai"}
+ sd{"HST"}
+ ss{"HST"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Tahití"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/es_AR.txt b/Build/source/libs/icu-xetex/data/locales/es_AR.txt
index 24619c91cc8..c1d306a22cf 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_AR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_AR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_AR.xml
+// * Source File:<path>/common/main/es_AR.xml
// *
// ***************************************************************************
es_AR{
@@ -17,7 +17,7 @@ es_AR{
"Dólar Americano",
}
}
- Version{"1.27"}
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_BO.txt b/Build/source/libs/icu-xetex/data/locales/es_BO.txt
index 6404c022591..e9618ea7044 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_BO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_BO.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_BO.xml
+// * Source File:<path>/common/main/es_BO.xml
// *
// ***************************************************************************
es_BO{
- Version{"1.27"}
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_CL.txt b/Build/source/libs/icu-xetex/data/locales/es_CL.txt
index eee63442885..378bfded3aa 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_CL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_CL.txt
@@ -1,12 +1,17 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_CL.xml
+// * Source File:<path>/common/main/es_CL.xml
// *
// ***************************************************************************
es_CL{
+ Countries{
+ 005{"Sudamérica"}
+ EH{"Sahara Occidental"}
+ TT{"Trinidad y Tobago"}
+ }
Currencies{
CLP{
"$",
@@ -23,7 +28,18 @@ es_CL{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Scripts{
+ Bali{"balinés"}
+ }
+ Types{
+ collation{
+ phonebook{"orden de directorio telefónico"}
+ }
+ }
+ Variants{
+ 1996{"Ortografía alemana de 1996"}
+ }
+ Version{"1.43"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_CO.txt b/Build/source/libs/icu-xetex/data/locales/es_CO.txt
index 4437eec59d4..5cbb8f91c1f 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_CO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_CO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_CO.xml
+// * Source File:<path>/common/main/es_CO.xml
// *
// ***************************************************************************
es_CO{
@@ -17,7 +17,7 @@ es_CO{
"Dólar Americano",
}
}
- Version{"1.28"}
+ Version{"1.42"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_CR.txt b/Build/source/libs/icu-xetex/data/locales/es_CR.txt
index 358b9664d47..2ea5721a850 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_CR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_CR.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_CR.xml
+// * Source File:<path>/common/main/es_CR.xml
// *
// ***************************************************************************
es_CR{
- Version{"1.27"}
+ Version{"1.42"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_DO.txt b/Build/source/libs/icu-xetex/data/locales/es_DO.txt
index d707db2d33f..cb47d77a845 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_DO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_DO.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_DO.xml
+// * Source File:<path>/common/main/es_DO.xml
// *
// ***************************************************************************
es_DO{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_EC.txt b/Build/source/libs/icu-xetex/data/locales/es_EC.txt
index 7c57bbfad6f..96993e3bc8f 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_EC.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_EC.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_EC.xml
+// * Source File:<path>/common/main/es_EC.xml
// *
// ***************************************************************************
es_EC{
@@ -19,7 +19,7 @@ es_EC{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.43"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_ES.txt b/Build/source/libs/icu-xetex/data/locales/es_ES.txt
index 7796c7e9723..afa2ecedc32 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_ES.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_ES.xml
+// * Source File:<path>/common/main/es_ES.xml
// *
// ***************************************************************************
es_ES{
@@ -24,7 +24,10 @@ es_ES{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Scripts{
+ Ethi{"etíope"}
+ }
+ Version{"1.40"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_GT.txt b/Build/source/libs/icu-xetex/data/locales/es_GT.txt
index 9ce386f2e28..84fa568139c 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_GT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_GT.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_GT.xml
+// * Source File:<path>/common/main/es_GT.xml
// *
// ***************************************************************************
es_GT{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_HN.txt b/Build/source/libs/icu-xetex/data/locales/es_HN.txt
index 7390f7b098e..4ec06bda6ec 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_HN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_HN.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_HN.xml
+// * Source File:<path>/common/main/es_HN.xml
// *
// ***************************************************************************
es_HN{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_MX.txt b/Build/source/libs/icu-xetex/data/locales/es_MX.txt
index 815153909cb..babdd54e278 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_MX.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_MX.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_MX.xml
+// * Source File:<path>/common/main/es_MX.xml
// *
// ***************************************************************************
es_MX{
@@ -17,7 +17,21 @@ es_MX{
"Dólar Americano",
}
}
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_NI.txt b/Build/source/libs/icu-xetex/data/locales/es_NI.txt
index ece9ece5ac1..3d36c8c3e6b 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_NI.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_NI.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_NI.xml
+// * Source File:<path>/common/main/es_NI.xml
// *
// ***************************************************************************
es_NI{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_PA.txt b/Build/source/libs/icu-xetex/data/locales/es_PA.txt
index 29c52538a08..96a13019ee7 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_PA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_PA.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_PA.xml
+// * Source File:<path>/common/main/es_PA.xml
// *
// ***************************************************************************
es_PA{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.42"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_PE.txt b/Build/source/libs/icu-xetex/data/locales/es_PE.txt
index aa96ecb4a24..e9adac6a7d1 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_PE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_PE.txt
@@ -1,32 +1,11 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_PE.xml
+// * Source File:<path>/common/main/es_PE.xml
// *
// ***************************************************************************
es_PE{
- NumberPatterns{
- "#,##0.###",
- "¤#,##0.00;¤-#,##0.00",
- "#,##0%",
- "#E0",
- }
- Version{"1.30"}
- calendar{
- gregorian{
- DateTimePatterns{
- "hh:mm:ss a z",
- "hh:mm:ss a z",
- "hh:mm:ss a",
- "hh:mm a",
- "EEEE d' de 'MMMM' de 'yyyy",
- "d' de 'MMMM' de 'yyyy",
- "dd/MM/yyyy",
- "dd/MM/yy",
- "{1} {0}",
- }
- }
- }
+ Version{"1.43"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/es_PR.txt b/Build/source/libs/icu-xetex/data/locales/es_PR.txt
index bac465eb713..90d6e28e932 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_PR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_PR.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_PR.xml
+// * Source File:<path>/common/main/es_PR.xml
// *
// ***************************************************************************
es_PR{
@@ -13,7 +13,21 @@ es_PR{
"Dólar Americano",
}
}
- Version{"1.28"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.43"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_PY.txt b/Build/source/libs/icu-xetex/data/locales/es_PY.txt
index 485d4733621..865873e8457 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_PY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_PY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_PY.xml
+// * Source File:<path>/common/main/es_PY.xml
// *
// ***************************************************************************
es_PY{
@@ -13,7 +13,7 @@ es_PY{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.42"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_SV.txt b/Build/source/libs/icu-xetex/data/locales/es_SV.txt
index a21c57e92d0..b458f2eb821 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_SV.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_SV.txt
@@ -1,13 +1,27 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_SV.xml
+// * Source File:<path>/common/main/es_SV.xml
// *
// ***************************************************************************
es_SV{
- Version{"1.27"}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_US.txt b/Build/source/libs/icu-xetex/data/locales/es_US.txt
index c8e3c6a1ae4..33845946f52 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_US.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_US.txt
@@ -1,18 +1,32 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_US.xml
+// * Source File:<path>/common/main/es_US.xml
// *
// ***************************************************************************
es_US{
MeasurementSystem:int{1}
+ NumberElements{
+ ".",
+ ",",
+ ";",
+ "%",
+ "0",
+ "#",
+ "-",
+ "E",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
PaperSize:intvector{
279,
216,
}
- Version{"1.35"}
+ Version{"1.49"}
calendar{
gregorian{
DateTimeElements:intvector{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_UY.txt b/Build/source/libs/icu-xetex/data/locales/es_UY.txt
index 0f1a94bdf84..cf2ebb88c67 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_UY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_UY.txt
@@ -1,15 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_UY.xml
+// * Source File:<path>/common/main/es_UY.xml
// *
// ***************************************************************************
es_UY{
Currencies{
UYU{
- "UYU",
+ "$U",
"peso uruguayo",
}
}
@@ -19,7 +19,7 @@ es_UY{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.42"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/es_VE.txt b/Build/source/libs/icu-xetex/data/locales/es_VE.txt
index 365c2e8a46f..37cf557c90c 100644
--- a/Build/source/libs/icu-xetex/data/locales/es_VE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/es_VE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/es_VE.xml
+// * Source File:<path>/common/main/es_VE.xml
// *
// ***************************************************************************
es_VE{
@@ -13,7 +13,7 @@ es_VE{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.41"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/et.txt b/Build/source/libs/icu-xetex/data/locales/et.txt
index aa97a7f713d..5126bb45cf2 100644
--- a/Build/source/libs/icu-xetex/data/locales/et.txt
+++ b/Build/source/libs/icu-xetex/data/locales/et.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/et.xml
+// * Source File:<path>/common/main/et.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/et.xml
+ * ICU <specials> source: <path>/xml/main/et.xml
*/
et{
Countries{
@@ -59,6 +59,7 @@ et{
CN{"Hiina"}
CO{"Colombia"}
CR{"Costa Rica"}
+ CS{"Serbia ja Montenegro"}
CU{"Kuuba"}
CV{"Cabo Verde"}
CX{"Jõulusaar"}
@@ -267,7 +268,7 @@ et{
}
}
}
- ExemplarCharacters{"[a-z õ ä ö ü š ž]"}
+ ExemplarCharacters{"[a-s š z ž t-w õ ä ö ü x y]"}
Languages{
ar{"Araabia"}
bg{"Bulgaaria"}
@@ -314,16 +315,12 @@ et{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.40"}
+ Version{"1.56"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
@@ -395,6 +392,22 @@ et{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
diff --git a/Build/source/libs/icu-xetex/data/locales/et_EE.txt b/Build/source/libs/icu-xetex/data/locales/et_EE.txt
index 8a2656fda5f..c12e2266bc0 100644
--- a/Build/source/libs/icu-xetex/data/locales/et_EE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/et_EE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/et_EE.xml
+// * Source File:<path>/common/main/et_EE.xml
// *
// ***************************************************************************
et_EE{
@@ -13,5 +13,5 @@ et_EE{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/eu.txt b/Build/source/libs/icu-xetex/data/locales/eu.txt
index aa08bfbee19..56fd597d78e 100644
--- a/Build/source/libs/icu-xetex/data/locales/eu.txt
+++ b/Build/source/libs/icu-xetex/data/locales/eu.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/eu.xml
+// * Source File:<path>/common/main/eu.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/eu.xml
+ * ICU <specials> source: <path>/xml/main/eu.xml
*/
eu{
Countries{
@@ -56,6 +56,7 @@ eu{
HR{"Kroazia"}
HU{"Hungaria"}
IE{"Irlanda"}
+ IN{"India"}
IQ{"Irak"}
IS{"Islandia"}
IT{"Italia"}
@@ -132,9 +133,18 @@ eu{
}
}
}
- ExemplarCharacters{"[a-zñç]"}
+ ExemplarCharacters{"[a-c ç d-n ñ o-z]"}
Languages{
+ de{"alemanera"}
+ en{"ingelera"}
+ es{"espainiera"}
eu{"euskara"}
+ fr{"frantsesera"}
+ it{"italiera"}
+ ja{"japoniera"}
+ pt{"portugalera"}
+ ru{"errusiera"}
+ zh{"txinera"}
}
LocaleScript{
"Latn",
@@ -150,10 +160,10 @@ eu{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.36"}
+ Version{"1.51"}
calendar{
gregorian{
dayNames{
@@ -210,6 +220,22 @@ eu{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "Hh1",
+ "Hh2",
+ "Hh3",
+ "Hh4",
+ }
+ wide{
+ "1. hiruhilekoa",
+ "2. hiruhilekoa",
+ "3. hiruhilekoa",
+ "4. hiruhilekoa",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/eu_ES.txt b/Build/source/libs/icu-xetex/data/locales/eu_ES.txt
index beda190476c..299cb9953ea 100644
--- a/Build/source/libs/icu-xetex/data/locales/eu_ES.txt
+++ b/Build/source/libs/icu-xetex/data/locales/eu_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/eu_ES.xml
+// * Source File:<path>/common/main/eu_ES.xml
// *
// ***************************************************************************
eu_ES{
@@ -13,13 +13,9 @@ eu_ES{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.39"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/fa.txt b/Build/source/libs/icu-xetex/data/locales/fa.txt
index cc359b62df3..a8ca7e084f4 100644
--- a/Build/source/libs/icu-xetex/data/locales/fa.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fa.txt
@@ -1,19 +1,48 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fa.xml
+// * Source File:<path>/common/main/fa.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/fa.xml
+ * ICU <specials> source: <path>/xml/main/fa.xml
*/
fa{
- AuxExemplarCharacters{"[\u0656\u0670]"}
+ AuxExemplarCharacters{"[\u200C \u200D Ù– Ù°]"}
Countries{
+ 001{"جهان"}
+ 002{"اÙریقا"}
+ 003{"امریکای شمالی"}
+ 005{"امریکای جنوبی"}
+ 009{"اقیانوسیه"}
+ 011{"غرب اÙریقا"}
+ 013{"امریکای مرکزی"}
+ 014{"شرق اÙریقا"}
+ 015{"شمال اÙریقا"}
+ 017{"مرکز اÙریقا"}
+ 018{"جنوب اÙریقا"}
+ 019{"امریکا"}
+ 021{"شمال امریکا"}
+ 029{"کارائیب"}
+ 030{"شرق آسیا"}
+ 034{"جنوب آسیا"}
+ 035{"جنوب شرقی آسیا"}
+ 039{"جنوب اروپا"}
+ 053{"استرالیا و زلاند نو"}
+ 061{"پلی‌نزی"}
+ 142{"آسیا"}
+ 143{"آسیای مرکزی"}
+ 145{"غرب آسیا"}
+ 150{"اروپا"}
+ 151{"شرق اروپا"}
+ 154{"شمال اروپا"}
+ 155{"غرب اروپا"}
+ 172{"کشورهای مستقل مشترک‌المناÙع"}
+ 419{"امریکای لاتین و کارائیب"}
AD{"آندورا"}
- AE{"امارات متحده‌ی عربی"}
+ AE{"امارات متحدهٔ عربی"}
AF{"اÙغانستان"}
AG{"آنتیگوا و باربودا"}
AI{"آنگیل"}
@@ -27,7 +56,7 @@ fa{
AT{"اتریش"}
AU{"استرالیا"}
AW{"آروبا"}
- AZ{"آذربایجان"}
+ AZ{"جمهوری آذربایجان"}
BA{"بوسنی و هرزگوین"}
BB{"باربادوس"}
BD{"بنگلادش"}
@@ -43,7 +72,7 @@ fa{
BR{"برزیل"}
BS{"باهاما"}
BT{"بوتان"}
- BV{"جزیره‌ی بووت"}
+ BV{"جزیرهٔ بووت"}
BW{"بوتسوانا"}
BY{"بیلوروسی"}
BZ{"بلیز"}
@@ -60,9 +89,10 @@ fa{
CN{"چین"}
CO{"کلمبیا"}
CR{"کاستاریکا"}
+ CS{"صربستان و مونته‌نگرو"}
CU{"کوبا"}
CV{"کیپ ورد"}
- CX{"جزیره‌ی کریسمس"}
+ CX{"جزیرهٔ کریسمس"}
CY{"قبرس"}
CZ{"جمهوری چک"}
DE{"آلمان"}
@@ -85,7 +115,7 @@ fa{
FO{"جزایر Ùارو"}
FR{"Ùرانسه"}
GA{"گابون"}
- GB{"انگلستان"}
+ GB{"بریتانیا"}
GD{"گرانادا"}
GE{"گرجستان"}
GF{"گویان Ùرانسه"}
@@ -95,14 +125,15 @@ fa{
GM{"گامبیا"}
GN{"گینه"}
GP{"گوادلوپ"}
- GQ{"گینه‌ی استوایی"}
+ GQ{"گینهٔ استوایی"}
GR{"یونان"}
GS{"جورجیای جنوبی و جزایر ساندویچ جنوبی"}
GT{"گواتمالا"}
GU{"گوام"}
- GW{"گینه‌ی بیسائو"}
+ GW{"گینهٔ بیسائو"}
GY{"گویان"}
- HM{"جزیره‌ی هرد و جزایر مک‌دونالد"}
+ HK{"هنگ‌کنگ، ناحیهٔ ویژهٔ حکومتی چین"}
+ HM{"جزیرهٔ هرد و جزایر مک‌دونالد"}
HN{"هندوراس"}
HR{"کرواسی"}
HT{"هاییتی"}
@@ -125,8 +156,8 @@ fa{
KI{"کیریباتی"}
KM{"کومورو"}
KN{"سنت کیتس و نویس"}
- KP{"کره‌ی شمالی"}
- KR{"کره‌ی جنوبی"}
+ KP{"کرهٔ شمالی"}
+ KR{"کرهٔ جنوبی"}
KW{"کویت"}
KY{"جزایر Ú©Ùیمن"}
KZ{"قزاقستان"}
@@ -150,6 +181,7 @@ fa{
ML{"مالی"}
MM{"میانمار"}
MN{"مغولستان"}
+ MO{"ماکائو، ناحیهٔ ویژهٔ حکومتی چین"}
MP{"جزایر ماریانای شمالی"}
MQ{"مارتینیک"}
MR{"موریتانی"}
@@ -164,7 +196,7 @@ fa{
NA{"نامیبیا"}
NC{"کالدونیای جدید"}
NE{"نیجر"}
- NF{"جزیره‌ی نورÙولک"}
+ NF{"جزیرهٔ نورÙولک"}
NG{"نیجریه"}
NI{"نیکاراگوئه"}
NL{"هلند"}
@@ -177,13 +209,14 @@ fa{
PA{"پاناما"}
PE{"پرو"}
PF{"پلی‌نزی Ùرانسه"}
- PG{"پاپوا گینه‌ی نو"}
+ PG{"پاپوا گینهٔ نو"}
PH{"Ùیلیپین"}
PK{"پاکستان"}
PL{"لهستان"}
PM{"سنت پیر و میکلون"}
PN{"پیتکایرن"}
PR{"پورتو ریکو"}
+ PS{"Ùلسطین"}
PT{"پرتغال"}
PW{"پالائو"}
PY{"پاراگوئه"}
@@ -229,8 +262,8 @@ fa{
TZ{"تانزانیا"}
UA{"اوکراین"}
UG{"اوگاندا"}
- UM{"جزایر Ú©ÙˆÚ†Ú© دوراÙتاده‌ی ایالات متحده"}
- US{"ایالات متحده‌ی امریکا"}
+ UM{"جزایر Ú©ÙˆÚ†Ú© دوراÙتادهٔ ایالات متحده"}
+ US{"ایالات متحدهٔ امریکا"}
UY{"اوروگوئه"}
UZ{"ازبکستان"}
VA{"واتیکان"}
@@ -249,254 +282,698 @@ fa{
ZW{"زیمبابوه"}
}
Currencies{
+ AED{
+ "AED",
+ "درهم امارات متحدهٔ عربی",
+ }
AFA{
+ "AFA",
+ "اÙغانی قدیم",
+ }
+ AFN{
+ "Ø‹",
"اÙغانی",
- "اÙغانی",
+ }
+ ALL{
+ "ALL",
+ "لک آلبانی",
+ }
+ ARS{
+ "ARS",
+ "پزوی آرژانتین",
+ }
+ ATS{
+ "ATS",
+ "شیلینگ اتریش",
+ }
+ AUD{
+ "AUD",
+ "دلار استرالیا",
+ }
+ AZM{
+ "AZM",
+ "منات جمهوری آذربایجان",
+ }
+ BAD{
+ "BAD",
+ "دینار بوسنی و هرزگوین",
+ }
+ BBD{
+ "BBD",
+ "دلار باربادوس",
+ }
+ BEF{
+ "BEF",
+ "Ùرانک بلژیک",
+ }
+ BHD{
+ "BHD",
+ "دینار بحرین",
+ }
+ BIF{
+ "BIF",
+ "Ùرانک بوروندی",
+ }
+ BMD{
+ "BMD",
+ "دلار برمودا",
+ }
+ BND{
+ "BND",
+ "دلار برونئی",
+ }
+ BOP{
+ "BOP",
+ "پزوی بولیوی",
+ }
+ BRL{
+ "BRL",
+ "رئال برزیل",
+ }
+ BSD{
+ "BSD",
+ "دلار باهاما",
+ }
+ BYR{
+ "BYR",
+ "روبل بیلوروسی",
+ }
+ BZD{
+ "BZD",
+ "دلار بلیز",
+ }
+ CAD{
+ "CAD",
+ "دلار کانادا",
+ }
+ CHF{
+ "CHF",
+ "Ùرانک سوئیس",
+ }
+ CLP{
+ "CLP",
+ "پزوی شیلی",
+ }
+ CNY{
+ "CNY",
+ "رنمینبی یوآن چین",
+ }
+ COP{
+ "COP",
+ "پزوی کلمبیا",
+ }
+ CSD{
+ "CSD",
+ "دینار صربستان",
+ }
+ CUP{
+ "CUP",
+ "پزوی کوبا",
+ }
+ DEM{
+ "DEM",
+ "مارک آلمان",
+ }
+ DKK{
+ "DKK",
+ "کرون دانمارک",
+ }
+ DOP{
+ "DOP",
+ "پزوی دومینیکا",
}
EUR{
"€",
- "EUR",
+ "یورو",
+ }
+ FJD{
+ "FJD",
+ "دلار Ùیجی",
+ }
+ FRF{
+ "FRF",
+ "Ùرانک Ùرانسه",
}
GBP{
"£",
- "GBP",
+ "پوند استرلینگ بریتانیا",
+ }
+ HUF{
+ "HUF",
+ "Ùورینت مجارستان",
}
INR{
"=0#Rs.|1#Re.|1<Rs.",
- "INR",
+ "روپیهٔ هند",
+ }
+ IQD{
+ "IQD",
+ "دینار عراق",
}
IRR{
"ï·¼",
- "IRR",
+ "ریال ایران",
+ }
+ ITL{
+ "₤",
+ "لیرهٔ ایتالیا",
+ }
+ JOD{
+ "JOD",
+ "دینار اردن",
}
JPY{
"Â¥",
- "JPY",
+ "ین ژاپن",
+ }
+ KWD{
+ "KWD",
+ "دینار کویت",
+ }
+ MXN{
+ "MXN",
+ "پزوی مکزیک",
+ }
+ NLG{
+ "NLG",
+ "گیلدر هلند",
+ }
+ NOK{
+ "NOK",
+ "کرون نروژ",
+ }
+ OMR{
+ "OMR",
+ "ریال عمان",
+ }
+ PKR{
+ "PKR",
+ "روپیهٔ پاکستان",
+ }
+ QAR{
+ "QAR",
+ "ریال قطر",
+ }
+ RUB{
+ "RUB",
+ "روبل روسیه",
+ }
+ SAR{
+ "SAR",
+ "ریال سعودی",
+ }
+ SEK{
+ "SEK",
+ "کرون سوئد",
+ }
+ SGD{
+ "SGD",
+ "دلار سنگاپور",
+ }
+ TJR{
+ "TJR",
+ "روبل تاجیکستان",
+ }
+ TJS{
+ "TJS",
+ "سامانی تاجیکستان",
+ }
+ TND{
+ "TND",
+ "دینار تونس",
+ }
+ TRL{
+ "TRL",
+ "لیرهٔ ترکیه",
+ }
+ TRY{
+ "TRY",
+ "لیرهٔ جدید ترکیه",
}
USD{
"$",
- "USD",
+ "دلار امریکا",
+ }
+ XAG{
+ "XAG",
+ "نقره",
+ }
+ XAU{
+ "XAU",
+ "طلا",
+ }
+ XPD{
+ "XPD",
+ "پالادیم",
+ }
+ XPT{
+ "XPT",
+ "پلاتین",
+ }
+ YER{
+ "YER",
+ "ریال یمن",
}
}
- ExemplarCharacters{"[Ø¡-ؤئ-غÙقل-وً-ْٰٔپچژکگی‌â€â€â€Ž]"}
+ ExemplarCharacters{"[َ ٠٠ً ٠ٌ ّ ْ ٔ آ ا ء أ ؤ ئ ب پ ت-ج چ ح-ز ژ س-غ ٠ق ک گ ل-ن و ه ة ی]"}
+ Keys{
+ calendar{"تقویم"}
+ collation{"ترتیب‌بندی"}
+ currency{"واحد پول"}
+ }
Languages{
aa{"Ø¢Ùاری"}
ab{"آبخازی"}
+ ace{"آچئی"}
+ ach{"آچولیایی"}
+ ada{"آدانگمه‌ای"}
+ ady{"آدیجیایی"}
ae{"اوستایی"}
af{"Ø¢Ùریکانس"}
- afa{"اÙریقا Ùˆ آسیایی (غیره)"}
+ afa{"اÙریقا Ùˆ آسیایی (دیگر)"}
+ akk{"آکدی"}
+ ale{"آلئوتی"}
+ alg{"زبانهای آلگونکینی"}
am{"امهری"}
- ang{"انگلیسی باستان (حدود ۴۵۰-۱۱۰۰ م.)"}
- apa{"زبان‌های آپاچیایی"}
+ ang{"انگلیسی باستان"}
+ apa{"زبانهای آپاچیایی"}
ar{"عربی"}
arc{"آرامی"}
- art{"ساخته‌گی (غیره)"}
+ arn{"آروکانیایی"}
+ arp{"آراپاهویی"}
+ art{"ساختگی (دیگر)"}
+ arw{"آراواکی"}
as{"آسامی"}
- aus{"زبان‌های استرالیایی"}
+ ath{"زبانهای آتاپاسکایی"}
+ aus{"زبانهای استرالیایی"}
+ av{"آواری"}
ay{"آیمارایی"}
- az{"آذربایجانی"}
- ba{"باشکیر"}
+ az{"ترکی آذربایجانی"}
+ ba{"باشغیری"}
+ bad{"باندایی"}
bal{"بلوچی"}
- bat{"بالتیکی (غیره)"}
+ ban{"بالیایی"}
+ bas{"باسایی"}
+ bat{"بالتیکی (دیگر)"}
be{"بلوروسی"}
+ bej{"بجایی"}
+ bem{"بمبایی"}
+ ber{"بربری (دیگر)"}
bg{"بلغاری"}
bh{"بیهاری"}
bho{"بوجپوری"}
bi{"بیسلاما"}
+ bik{"بیکولی"}
+ bm{"بامبارایی"}
bn{"بنگالی"}
+ bnt{"بانتویی (دیگر)"}
bo{"تبتی"}
+ br{"برتانیایی"}
bs{"بوسنیایی"}
+ btk{"باتاکی"}
+ bua{"بوریاتی"}
+ bug{"بوگیایی"}
ca{"کاتالونیایی"}
- cai{"سرخ‌پوستی امریکای مرکزی (غیره)"}
+ cad{"کادویی"}
+ cai{"سرخپوستی امریکای مرکزی (دیگر)"}
+ car{"کاریبی"}
+ cau{"Ù‚Ùقازی (دیگر)"}
ce{"چچنی"}
- cel{"سلتی (غیره)"}
+ ceb{"سبویی"}
+ cel{"سلتی (دیگر)"}
ch{"چامورویی"}
- chr{"چروکی"}
+ chm{"ماریایی"}
+ cho{"چوکتویی"}
+ chp{"چیپه‌ویه‌ای"}
+ chr{"چروکیایی"}
+ chy{"شایانی"}
cop{"قبطی"}
+ cpe{"کریول‌ها و پیجین‌های مبتنی بر انگلیسی (دیگر)"}
+ cpf{"کریول‌ها Ùˆ پیجین‌های مبتنی بر Ùرانسوی (دیگر)"}
+ cpp{"کریول‌ها و پیجین‌های مبتنی بر پرتغالی (دیگر)"}
+ cr{"کریایی"}
+ crh{"ترکی کریمه؛ تاتاری کریمه"}
+ crp{"کریول‌ها و پیجین‌ها (دیگر)"}
cs{"چکی"}
+ csb{"کاشوبی"}
cu{"اسلاوی کلیسایی"}
+ cus{"کوشی (دیگر)"}
cv{"چوواشی"}
cy{"ویلزی"}
da{"دانمارکی"}
dak{"داکوتایی"}
de{"آلمانی"}
- dra{"دراویدی (غیره)"}
- dum{"هلندی میانه (حدود ۱۰۵۰-۱۳۵۰ م.)"}
- dz{"بوتانی"}
- egy{"مصری (باستانی)"}
+ del{"دلاواری"}
+ din{"دینکایی"}
+ dra{"دراویدی (دیگر)"}
+ dsb{"صÙربی سÙÙ„ÛŒ"}
+ dua{"دوآلایی"}
+ dum{"هلندی میانه"}
+ dyu{"دایولایی"}
+ dz{"جونخایی"}
+ ee{"اوه‌ای"}
+ efi{"اÙیکی"}
+ egy{"مصری (کهن)"}
el{"یونانی"}
+ elx{"عیلامی"}
en{"انگلیسی"}
- enm{"انگلیسی میانه (۱۱۰۰ -۱۵۰۰ م.)"}
+ enm{"انگلیسی میانه"}
eo{"اسپرانتو"}
es{"اسپانیایی"}
et{"استونیایی"}
eu{"باسکی"}
fa{"Ùارسی"}
+ fan{"Ùانکی"}
+ fat{"Ùانتیایی"}
+ ff{"Ùولایی"}
fi{"Ùنلاندی"}
+ fiu{"Ùین Ùˆ اوگرایی (دیگر)"}
fj{"Ùیجیایی"}
fo{"Ùارویی"}
+ fon{"Ùونی"}
fr{"Ùرانسوی"}
- frm{"Ùرانسوی میانه (حدود Û±Û´Û°Û°-Û±Û¶Û°Û° Ù….)"}
- fro{"Ùرانسوی قدیم (Û¸Û´Û²-حدود Û±Û´Û°Û° Ù….)"}
+ frm{"Ùرانسوی میانه"}
+ fro{"Ùرانسوی باستان"}
+ fur{"Ùریولیایی"}
+ fy{"Ùریزی"}
ga{"ایرلندی"}
- gaa{"گا"}
- gem{"ژرمنی (غیره)"}
- gmh{"آلمانی علیای میانه (حدود ۱۰۵۰-۱۵۰۰)"}
+ gaa{"گایی"}
+ gba{"گبایایی"}
+ gd{"گیلی اسکاتلندی"}
+ gem{"ژرمنی (دیگر)"}
+ gez{"گی‌ئزی"}
+ gil{"گیلبرتی"}
+ gl{"گالیسیایی"}
+ gmh{"آلمانی علیای میانه"}
gn{"گوارانی"}
- goh{"آلمانی علیای باستان (حدود ۷۵۰-۱۰۵۰)"}
+ goh{"آلمانی علیای باستان"}
+ gon{"گوندی"}
got{"گوتیک"}
- grc{"یونانی کهن (تا ۱۴۵۳ م.)"}
+ grb{"گریبویی"}
+ grc{"یونانی کهن"}
gu{"گجراتی"}
gv{"مانی"}
ha{"هوسیایی"}
+ hai{"هایدایی"}
haw{"هاوائیایی"}
he{"عبری"}
hi{"هندی"}
+ hil{"هیلی‌گاینونی"}
hit{"هیتی"}
hr{"کرواتی"}
+ hsb{"صÙربی علیا"}
+ ht{"هائیتیایی"}
hu{"مجاری"}
hy{"ارمنی"}
hz{"هریرویی"}
ia{"میان‌زبان"}
id{"اندونزیایی"}
+ ig{"ایگبویی"}
+ ii{"یی سیچوان"}
+ ijo{"ایجویی"}
ik{"اینوپیک"}
- inc{"هندیک (غیره)"}
- ine{"هندوارودپایی"}
- ira{"ایرانی"}
+ ilo{"ایلوکویی"}
+ inc{"هندیک (دیگر)"}
+ ine{"هند و اروپایی (دیگر)"}
+ inh{"اینگوشی"}
+ ira{"ایرانی (دیگر)"}
+ iro{"زبانهای ایروکوایی"}
is{"ایسلندی"}
it{"ایتالیایی"}
- iu{"اینوکیتوت"}
+ iu{"اینوکتیتوت"}
ja{"ژاپنی"}
jpr{"Ùارسی یهودی"}
jrb{"عربی یهودی"}
jv{"جاوه‌ای"}
ka{"گرجی"}
+ kaa{"قره‌قالپاقی"}
+ kab{"قبایلی"}
+ kac{"کاچینی"}
+ kam{"کامبایی"}
+ kar{"کارنی"}
+ kbd{"کاباردینی"}
+ kg{"کنگویی"}
+ kha{"خازیایی"}
+ khi{"خواسی (دیگر)"}
+ kho{"ختنی"}
+ ki{"کیکویویی"}
kk{"قزاقی"}
+ kl{"گرینلندی"}
km{"خمری"}
+ kmb{"کیمبوندویی"}
kn{"کاناده‌ای"}
ko{"کره‌ای"}
kok{"کنکانی"}
+ kpe{"کپله‌ای"}
+ kr{"کانوریایی"}
+ krc{"قره‌چاییâ€Ø¨Ø§Ù„کاری"}
+ kro{"کرویی"}
+ kru{"کوروخی"}
ks{"کشمیری"}
ku{"کردی"}
+ kum{"کومیکی"}
kv{"کومیایی"}
kw{"کرنوالی"}
ky{"قرقیزی"}
la{"لاتینی"}
- lb{"لتسه‌بورگیش"}
+ lad{"لادینو"}
+ lah{"لاهندا"}
+ lb{"لوگزامبورگی"}
+ lez{"لزگی"}
+ lg{"گاندایی"}
+ li{"لیمبورگی"}
ln{"لینگالا"}
lo{"لائوسی"}
+ lol{"مونگویی"}
+ loz{"لوزیایی"}
lt{"لیتوانیایی"}
+ lu{"لوباییâ€Ú©Ø§ØªØ§Ù†Ú¯Ø§"}
+ lua{"لوباییâ€Ù„ولوا"}
+ lun{"لوندایی"}
+ luo{"لوئویی"}
+ lus{"لوشه‌ای"}
lv{"لتونیایی"}
- map{"آسترونیزیایی"}
+ mad{"مادورایی"}
+ mag{"ماگاهیایی"}
+ mai{"مایدیلی"}
+ man{"ماندینگویی"}
+ map{"آسترونیزیایی (دیگر)"}
+ mas{"ماسایی"}
+ mdf{"مکشایی"}
+ men{"منده‌ای"}
mg{"مالاگاسیایی"}
- mga{"ایرلندی میانه (۹۰۰-۱۲۰۰ م.)"}
+ mga{"ایرلندی میانه"}
mh{"مارشالی"}
mi{"مائوریایی"}
+ mic{"میکماکی"}
+ min{"مینانگ‌کابویی"}
mis{"زبان‌های متÙرقه"}
mk{"مقدونی"}
+ mkh{"مون‌خمری (دیگر)"}
ml{"مالایالامی"}
mn{"مغولی"}
+ mnc{"مانچویی"}
mo{"مولداویایی"}
moh{"موهاکی"}
+ mos{"ماسیایی"}
mr{"مراتی"}
ms{"مالزیایی"}
mt{"مالتی"}
mul{"چندین زبان"}
+ mun{"زبانهای موندایی"}
+ mus{"کریکی"}
my{"برمه‌ای"}
- myn{"مایاییک"}
+ myn{"زبانهای مایایی"}
+ myv{"ارزیایی"}
na{"نائورویی"}
- nai{"سرخ‌پوستی امریکای شمالی (غیره)"}
+ nah{"ناواتلی"}
+ nai{"سرخپوستی امریکای شمالی (دیگر)"}
+ nap{"ناپلی"}
nb{"بوکسمال نروژی"}
nd{"انده‌بله‌ای شمالی"}
- nds{"آلمانی سÙلی؛ ساکسون سÙلب"}
+ nds{"آلمانی سÙÙ„ÛŒ"}
ne{"نپالی"}
+ new{"نواریایی"}
+ ng{"ندونگایی"}
+ niu{"نیویی"}
nl{"هلندی"}
- nn{"نینورسک نروژی"}
+ nn{"نرس جدید نروژی"}
no{"نروژی"}
+ nog{"نغایی"}
+ non{"نرس باستان"}
nr{"انده‌بله‌ای جنوبی"}
+ nso{"سوتویی شمالی"}
+ nub{"زبانهای نوبیایی"}
nv{"ناواهویی"}
+ nwc{"نواریایی کلاسیک"}
+ ny{"نیانجایی؛ چوایی"}
+ nyn{"نیانکوله‌ای"}
+ nyo{"نیورویی"}
+ oj{"اوجیبوایی"}
or{"اوریه‌ای"}
- ota{"ترکی (امپراتوری عثمانی)"}
+ os{"آسی"}
+ osa{"اوسیجی"}
+ ota{"ترکی عثمانی"}
+ oto{"زبانهای اتومیایی"}
pa{"پنجابی"}
- paa{"پاپوایی (غیره)"}
+ paa{"پاپوایی (دیگر)"}
+ pag{"پانگاسینانی"}
pal{"پهلوی"}
- peo{"Ùارسی قدیم (حدود Û¶Û°Û°-Û´Û°Û° Ù‚.Ù….)"}
- phi{"Ùیایپینی (غیره)"}
+ pam{"پامپانگایی"}
+ pap{"پاپیامنتو"}
+ pau{"پالائویی"}
+ peo{"Ùارسی باستان"}
+ phi{"Ùیلیپینی (دیگر)"}
phn{"Ùنیقی"}
pi{"پالی"}
pl{"لهستانی"}
+ pra{"زبانهای پراکریتی"}
ps{"پشتو"}
pt{"پرتغالی"}
qu{"کچوایی"}
+ raj{"راجستانی"}
+ rar{"راروتونگایی"}
+ rm{"رتوâ€Ø±ÙˆÙ…یایی"}
+ rn{"روندیایی"}
ro{"رومانیایی"}
+ roa{"رومیایی (دیگر)"}
+ rom{"رومانویی"}
root{"ریشه"}
ru{"روسی"}
rw{"کینیارواندایی"}
sa{"سنسکریت"}
- sai{"سرخ‌پوستی امریکای جنوبی (غیره)"}
+ sad{"سانداوه‌ای"}
+ sah{"یاقوتی"}
+ sai{"سرخپوستی امریکای جنوبی (دیگر)"}
+ sal{"زبانهای سالیشی"}
+ sat{"سانتالی"}
sc{"ساردینیایی"}
sco{"اسکاتلندی"}
sd{"سندی"}
- sem{"سامی"}
+ sel{"سلکوپی"}
+ sem{"سامی (دیگر)"}
sg{"سانگویی"}
- sga{"ایرلندی باستان (تا ۹۰۰ م.)"}
+ sga{"ایرلندی باستان"}
sgn{"زبان‌های نشانه‌ای"}
- sh{"صرب و کرواتی"}
+ shn{"شانی"}
si{"سینهالی"}
- sit{"چین و تبتی (غیره)"}
+ sid{"سیدامویی"}
+ sio{"زبانهای سویی"}
+ sit{"چین و تبتی (دیگر)"}
sk{"اسلواکی"}
sl{"اسلووینیایی"}
+ sla{"اسلاوی (دیگر"}
sm{"ساموآیی"}
sn{"شونایی"}
+ snk{"سونینکه‌ای"}
so{"سومالیایی"}
+ sog{"سغدی"}
+ son{"سونغایی"}
sq{"آلبانیایی"}
sr{"صربی"}
+ srr{"سریری"}
+ ssa{"نیلی و صحرایی (دیگر)"}
st{"سوتویی جنوبی"}
su{"سوندایی"}
+ suk{"سوکومایی"}
+ sus{"سوسویی"}
sux{"سومری"}
sv{"سوئدی"}
sw{"سواحلی"}
syr{"سریانی"}
ta{"تامیلی"}
+ tai{"تایی (دیگر)"}
te{"تلوگویی"}
+ tem{"تیمنه‌ای"}
tg{"تاجیکی"}
th{"تایلندی"}
ti{"تیگرینیایی"}
- tk{"ترکمتی"}
+ tig{"تیگره‌ای"}
+ tiv{"تیوی"}
+ tk{"ترکمنی"}
tl{"تاگالوگی"}
+ tlh{"کلینگون"}
+ tli{"تلین‌گیتی"}
+ tmh{"تاماشقی"}
tn{"تسوانایی"}
to{"تونگایی (جزایر تونگا)"}
- tr{"ترکی"}
+ tog{"تونگایی (نیاسا)"}
+ tr{"ترکی استانبولی"}
ts{"تسونگایی"}
+ tsi{"تسیم‌شیانی"}
tt{"تاتاری"}
+ tum{"تومبوکایی"}
+ tup{"زبانهای توپیایی"}
+ tut{"آلتاییک (دیگر)"}
tw{"توی‌یایی"}
ty{"تاهیتیایی"}
+ tyv{"تووایی"}
+ udm{"اودمورتی"}
ug{"اویغوری"}
uk{"اوکراینی"}
+ umb{"امبندویی"}
und{"نامشخص"}
ur{"اردو"}
uz{"ازبکی"}
+ vai{"ویایی"}
+ ve{"وندایی"}
vi{"ویتنامی"}
vo{"ولاپوک"}
+ wa{"والونی"}
+ wak{"زبانهای واکاشی"}
+ wen{"زبانهای صÙربی"}
wo{"ولوÙÛŒ"}
+ xal{"قلموقی"}
xh{"خوسایی"}
+ yao{"یائویی"}
+ yap{"یاپی"}
yi{"یدی"}
yo{"یوروبایی"}
+ ypk{"زبانهای یوپیکی"}
+ za{"چوانگی"}
+ zap{"زاپوتکی"}
zh{"چینی"}
+ znd{"زانده‌ای"}
zu{"زولویی"}
+ zun{"زونیایی"}
}
LocaleScript{
"Arab",
}
+ NumberElements{
+ "Ù«",
+ "Ù¬",
+ "Ø›",
+ "Ùª",
+ "Û°",
+ "#",
+ "−",
+ "×۱۰^",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ NumberPatterns{
+ "#,##0.###;'‪'-#,##0.###'‬'",
+ "#,##0.00 ¤;'‪'-#,##0.00'‬' ¤",
+ "'‪'%#,##0'‬'",
+ "#E0",
+ }
Scripts{
Arab{"عربی"}
Armn{"ارمنی"}
+ Bali{"بالیایی"}
+ Batk{"باتاکی"}
Beng{"بنگالی"}
Bopo{"بوپوموÙÙˆ"}
+ Brai{"بریل"}
+ Bugi{"بوگیایی"}
Cher{"چروکیایی"}
Copt{"قبطی"}
Cyrl{"سیریلی"}
Deva{"دوناگری"}
+ Egyp{"هیروگلیÙهای مصری"}
Ethi{"اتیوپیایی"}
Geor{"گرجی"}
Goth{"گوتیک"}
@@ -504,88 +981,191 @@ fa{
Gujr{"گجراتی"}
Hang{"هانگول"}
Hani{"هان"}
+ Hans{"هان ساده‌شده"}
+ Hant{"هان سنتی"}
Hebr{"عبری"}
Hira{"هیراگانا"}
+ Hrkt{"کاتاکانا یا هیراگانا"}
+ Hung{"مجاری باستان"}
+ Java{"جاوه‌ای"}
Kana{"کاتاکانا"}
Khmr{"خمری"}
Knda{"کاناده‌ای"}
Laoo{"لائوسی"}
- Latn{"لاتین"}
+ Latg{"لاتینی (گیلی)"}
+ Latn{"لاتینی"}
+ Maya{"هیروگلیÙهای مایایی"}
Mlym{"مالایالامی"}
Mong{"مغولی"}
Mymr{"میانمار"}
Orya{"اوریه‌ای"}
+ Phnx{"Ùنیقی"}
Qaai{"موروثی"}
Runr{"رونی"}
- Syrc{"آسوری"}
- Taml{"تامیل"}
+ Shaw{"شاوی"}
+ Sinh{"سینهالی"}
+ Syrc{"سریانی"}
+ Syrj{"سریانی (غربی)"}
+ Syrn{"سریانی (شرقی)"}
+ Taml{"تامیلی"}
Telu{"تلوگویی"}
+ Tglg{"تاگالوگی"}
Thai{"تایلندی"}
Tibt{"تبتی"}
+ Vaii{"ویایی"}
+ Xpeo{"Ùارسی باستان"}
Yiii{"یی"}
+ Zxxx{"کد زبانهای نوشته‌نشده"}
Zyyy{"مشترک"}
+ Zzzz{"کد خطهای کدگذاری‌نشده"}
+ }
+ Types{
+ calendar{
+ buddhist{"تقویم بودایی"}
+ chinese{"تقویم چینی"}
+ gregorian{"تقویم میلادی"}
+ hebrew{"تقویم عبری"}
+ islamic{"تقویم هجری قمری"}
+ islamic-civil{"تقویم هجری قمری مدنی"}
+ japanese{"تقویم ژاپنی"}
+ persian{"تقویم هجری شمسی"}
+ }
+ collation{
+ big5han{"چینی سنتی (Big5)"}
+ gb2312han{"چینی ساده‌شده (GB2312)"}
+ phonebook{"ترتیب دÙتر تلÙÙ†"}
+ traditional{"سنتی"}
+ }
}
- Version{"1.43"}
+ Variants{
+ 1901{"رسم‌الخط سنتی آلمانی"}
+ 1996{"رسم‌الخط آلمانی ۱۹۹۶ میلادی"}
+ REVISED{"رسم‌الخط تجدیدنظرشده"}
+ }
+ Version{"1.63"}
calendar{
gregorian{
AmPmMarkers{
- "ق.ظ.",
- "ب.ظ.",
+ "قبل از ظهر",
+ "بعد از ظهر",
}
DateTimePatterns{
- "HH:mm:ss (z)",
- "HH:mm:ss (z)",
+ "H:mm:ss (vvvv)",
+ "H:mm:ss (zzzz)",
"H:mm:ss",
"H:mm",
- "EEEE، d MMMM yyyy",
+ "EEEE d MMMM yyyy GGGG",
"d MMMM yyyy",
- "yyyy/MM/d",
- "yyyy/MM/d",
- "{1} {0}",
+ "yyyy/M/d",
+ "yy/M/d G",
+ "{0}، ساعت {1}",
+ }
+ appendItems{
+ Day-Of-Week{"{1} {0}"}
}
dayNames{
format{
abbreviated{
- "ی.",
- "د.",
- "س.",
- "Ú†.",
- "Ù¾.",
- "ج.",
- "Ø´.",
+ "یکشنبه",
+ "دوشنبه",
+ "سه‌شنبه",
+ "چهارشنبه",
+ "پنجشنبه",
+ "جمعه",
+ "شنبه",
}
wide{
- "یک‌شنبه",
+ "یکشنبه",
"دوشنبه",
"سه‌شنبه",
"چهارشنبه",
- "پنج‌شنبه",
+ "پنجشنبه",
"جمعه",
"شنبه",
}
}
+ stand-alone{
+ narrow{
+ "ی",
+ "د",
+ "س",
+ "Ú†",
+ "Ù¾",
+ "ج",
+ "Ø´",
+ }
+ }
}
eras{
abbreviated{
"Ù‚.Ù….",
"Ù….",
}
+ wide{
+ "قبل از میلاد",
+ "میلادی",
+ }
+ }
+ fields{
+ day{
+ dn{"روز"}
+ }
+ hour{
+ dn{"ساعت"}
+ }
+ minute{
+ dn{"دقیقه"}
+ }
+ month{
+ dn{"ماه"}
+ }
+ second{
+ dn{"ثانیه"}
+ }
+ week{
+ dn{"Ù‡Ùته"}
+ }
+ weekday{
+ dn{"روز Ù‡Ùته"}
+ }
+ year{
+ dn{"سال"}
+ }
+ zone{
+ dn{"منطقهٔ زمانی"}
+ }
}
monthNames{
format{
- abbreviated{
- "ژان",
- "Ùور",
- "مار",
- "آور",
- "مـه",
- "ژون",
- "ژوی",
+ wide{
+ "ژانویهٔ",
+ "Ùوریهٔ",
+ "مارس",
+ "آوریل",
+ "مهٔ",
+ "ژوئن",
+ "ژوئیهٔ",
"اوت",
- "سپت",
- "اکت",
- "نوا",
- "دسا",
+ "سپتامبر",
+ "اکتبر",
+ "نوامبر",
+ "دسامبر",
+ }
+ }
+ stand-alone{
+ narrow{
+ "Ú˜",
+ "Ù",
+ "Ù…",
+ "Ø¢",
+ "Ù…",
+ "Ú˜",
+ "Ú˜",
+ "ا",
+ "س",
+ "ا",
+ "Ù†",
+ "د",
}
wide{
"ژانویه",
@@ -603,16 +1183,431 @@ fa{
}
}
}
+ quarters{
+ format{
+ wide{
+ "سه‌ماههٔ اول",
+ "سه‌ماههٔ دوم",
+ "سه‌ماههٔ سوم",
+ "سه‌ماههٔ چهارم",
+ }
+ }
+ }
}
+ islamic{
+ DateTimePatterns{
+ "H:mm:ss (vvvv)",
+ "H:mm:ss (zzzz)",
+ "H:mm:ss",
+ "H:mm",
+ "EEEE d MMMM yyyy GGGG",
+ "d MMMM yyyy",
+ "yyyy/M/d G",
+ "yy/M/d G",
+ "{0}، ساعت {1}",
+ }
+ eras{
+ abbreviated{
+ "Ù‡â€. Ù‚.",
+ }
+ wide{
+ "هجری قمری",
+ }
+ }
+ monthNames{
+ format{
+ wide{
+ "محرم",
+ "صÙر",
+ "ربیع الاول",
+ "ربیع الثانی",
+ "جمادی الاول",
+ "جمادی الثانی",
+ "رجب",
+ "شعبان",
+ "رمضان",
+ "شوال",
+ "ذیقعدهٔ",
+ "ذیحجهٔ",
+ }
+ }
+ stand-alone{
+ narrow{
+ "Ù…",
+ "ص",
+ "ر",
+ "ر",
+ "ج",
+ "ج",
+ "ر",
+ "Ø´",
+ "ر",
+ "Ø´",
+ "Ø°",
+ "Ø°",
+ }
+ wide{
+ "محرم",
+ "صÙر",
+ "ربیع الاول",
+ "ربیع الثانی",
+ "جمادی الاول",
+ "جمادی الثانی",
+ "رجب",
+ "شعبان",
+ "رمضان",
+ "شوال",
+ "ذیقعده",
+ "ذیحجه",
+ }
+ }
+ }
+ }
+ persian{
+ DateTimePatterns{
+ "H:mm:ss (vvvv)",
+ "H:mm:ss (zzzz)",
+ "H:mm:ss",
+ "H:mm",
+ "EEEE d MMMM yyyy",
+ "d MMMM yyyy",
+ "yyyy/M/d",
+ "yy/M/d",
+ "{0}، ساعت {1}",
+ }
+ eras{
+ abbreviated{
+ "Ù‡â€. Ø´.",
+ }
+ wide{
+ "هجری شمسی",
+ }
+ }
+ monthNames{
+ format{
+ wide{
+ "Ùروردین",
+ "اردیبهشت",
+ "خرداد",
+ "تیر",
+ "مرداد",
+ "شهریور",
+ "مهر",
+ "آبان",
+ "آذر",
+ "دی",
+ "بهمن",
+ "اسÙند",
+ }
+ }
+ stand-alone{
+ narrow{
+ "Ù",
+ "ا",
+ "Ø®",
+ "ت",
+ "Ù…",
+ "Ø´",
+ "Ù…",
+ "Ø¢",
+ "Ø¢",
+ "د",
+ "ب",
+ "ا",
+ }
+ wide{
+ "حمل",
+ "ثور",
+ "جوزا",
+ "سرطان",
+ "اسد",
+ "سنبله",
+ "میزان",
+ "عقرب",
+ "قوس",
+ "جدی",
+ "دلو",
+ "حوت",
+ }
+ }
+ }
+ }
+ }
+ delimiters{
+ quotationEnd{"»"}
+ quotationStart{"«"}
+ }
+ layout{
+ characters{"right-to-left"}
+ lines{"top-to-bottom"}
+ }
+ measurementSystemNames{
+ US{"امریکایی"}
+ metric{"متریک"}
}
zoneStrings{
- {
- "Asia/Tehran",
- "وقت استاندارد تهران",
- "IRST",
- "وقت تابستانی تهران",
- "IRDT",
- "تهران",
+ "Africa:Ceuta"{
+ ec{"سئوتا"}
+ }
+ "Africa:Kinshasa"{
+ ec{"کینشاسا"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"لوبومباشی"}
+ }
+ "America:Adak"{
+ ec{"ایدک"}
+ }
+ "America:Anchorage"{
+ ec{"انکریج"}
+ }
+ "America:Araguaina"{
+ ec{"آراگواینا"}
+ }
+ "America:Boa_Vista"{
+ ec{"بوئاویشتا"}
+ }
+ "America:Boise"{
+ ec{"بویسی"}
+ }
+ "America:Buenos_Aires"{
+ ec{"بوئنوس‌آیرس"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"خلیج کمبریج"}
+ }
+ "America:Campo_Grande"{
+ ec{"کمپو گرانده"}
+ }
+ "America:Cancun"{
+ ec{"کانکون"}
+ }
+ "America:Catamarca"{
+ ec{"کاتامارکا"}
+ }
+ "America:Chicago"{
+ ec{"شیکاگو"}
+ }
+ "America:Chihuahua"{
+ ec{"چیئوائوا"}
+ }
+ "America:Coral_Harbour"{
+ ec{"کورال هاربر"}
+ }
+ "America:Cordoba"{
+ ec{"کوردووا"}
+ }
+ "America:Cuiaba"{
+ ec{"کویاوا"}
+ }
+ "America:Dawson"{
+ ec{"داوسن"}
+ }
+ "America:Dawson_Creek"{
+ ec{"داوسن کریک"}
+ }
+ "America:Denver"{
+ ec{"دنور"}
+ }
+ "America:Detroit"{
+ ec{"دترویت"}
+ }
+ "America:Edmonton"{
+ ec{"ادمونتون"}
+ }
+ "America:Fortaleza"{
+ ec{"Ùورتالزا"}
+ }
+ "America:Glace_Bay"{
+ ec{"گلیس بی"}
+ }
+ "America:Godthab"{
+ ec{"گودهوب"}
+ }
+ "America:Goose_Bay"{
+ ec{"خلیج گوس"}
+ }
+ "America:Guayaquil"{
+ ec{"گوایاکیل"}
+ }
+ "America:Halifax"{
+ ec{"هلیÙکس"}
+ }
+ "America:Hermosillo"{
+ ec{"ارموسیو"}
+ }
+ "America:Indiana:Knox"{
+ ec{"ناکس"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"مارنگو"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"پترزبرگ"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"ویوی"}
+ }
+ "America:Indianapolis"{
+ ec{"ایندیاناپولیس"}
+ }
+ "America:Inuvik"{
+ ec{"اینوویک"}
+ }
+ "America:Iqaluit"{
+ ec{"ایکلوئت"}
+ }
+ "America:Jujuy"{
+ ec{"خوخوئی"}
+ }
+ "America:Juneau"{
+ ec{"جونو"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"مانتیسلو"}
+ }
+ "America:Los_Angeles"{
+ ec{"لوس‌آنجلس"}
+ }
+ "America:Louisville"{
+ ec{"لوئیزویل"}
+ }
+ "America:Maceio"{
+ ec{"ماسیو"}
+ }
+ "America:Manaus"{
+ ec{"ماناوس"}
+ }
+ "America:Mazatlan"{
+ ec{"ماساتلان"}
+ }
+ "America:Mendoza"{
+ ec{"مندوسا"}
+ }
+ "America:Menominee"{
+ ec{"منامینی"}
+ }
+ "America:Merida"{
+ ec{"مریدا"}
+ }
+ "America:Mexico_City"{
+ ec{"مکزیکوسیتی"}
+ }
+ "America:Moncton"{
+ ec{"مانکتون"}
+ }
+ "America:Monterrey"{
+ ec{"مونترئی"}
+ }
+ "America:Montreal"{
+ ec{"مونرئال"}
+ }
+ "America:New_York"{
+ ec{"نیویورک"}
+ }
+ "America:Nipigon"{
+ ec{"نیپیگان"}
+ }
+ "America:Nome"{
+ ec{"نوم"}
+ }
+ "America:Noronha"{
+ ec{"نورونیا"}
+ }
+ "America:Pangnirtung"{
+ ec{"پانگنیرتونگ"}
+ }
+ "America:Phoenix"{
+ ec{"Ùینکس"}
+ }
+ "America:Porto_Velho"{
+ ec{"پورتوولیو"}
+ }
+ "America:Rainy_River"{
+ ec{"رینی‌ریور"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"خلیجک رنکین"}
+ }
+ "America:Rio_Branco"{
+ ec{"ریو برانکو"}
+ }
+ "America:Santiago"{
+ ec{"سانتیاگو"}
+ }
+ "America:Sao_Paulo"{
+ ec{"سائوپائولو"}
+ }
+ "America:Toronto"{
+ ec{"تورنتو"}
+ }
+ "America:Vancouver"{
+ ec{"ونکوور"}
+ }
+ "America:Winnipeg"{
+ ec{"وینیپگ"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"قطب جنوب"}
+ }
+ "Asia:Almaty"{
+ ec{"آلماتی"}
+ }
+ "Asia:Jakarta"{
+ ec{"جاکارتا"}
+ }
+ "Asia:Kabul"{
+ ec{"کابل"}
+ lg{"وقت اÙغانستان"}
+ sg{"AFT"}
+ }
+ "Asia:Kashgar"{
+ ec{"کاشغر"}
+ }
+ "Asia:Samarkand"{
+ ec{"سمرقند"}
+ }
+ "Asia:Shanghai"{
+ ec{"شانگهای"}
+ }
+ "Asia:Tashkent"{
+ ec{"تاشکند"}
+ }
+ "Asia:Tehran"{
+ ec{"تهران"}
+ ld{"وقت تابستانی ایران"}
+ lg{"وقت ایران"}
+ ls{"وقت عادی ایران"}
+ sd{"IRDT"}
+ sg{"IRT"}
+ ss{"IRST"}
+ }
+ "Australia:Adelaide"{
+ ec{"آدلاید"}
+ }
+ "Australia:Sydney"{
+ ec{"سیدنی"}
+ }
+ "Europe:Kiev"{
+ ec{"Ú©ÛŒÙ"}
+ }
+ "Europe:Lisbon"{
+ ec{"لیسبون"}
+ }
+ "Europe:Madrid"{
+ ec{"مادرید"}
+ }
+ "Europe:Moscow"{
+ ec{"مسکو"}
+ }
+ "Pacific:Honolulu"{
+ ec{"هونولولو"}
+ }
+ "Pacific:Tahiti"{
+ ec{"تاهیتی"}
}
+ fallbackFormat{"وقت {0} ({1})"}
+ hourFormat{"+HHmm;-HHmm"}
+ regionFormat{"وقت {0}"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fa_AF.txt b/Build/source/libs/icu-xetex/data/locales/fa_AF.txt
index 170b1f237a8..025ab6ea223 100644
--- a/Build/source/libs/icu-xetex/data/locales/fa_AF.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fa_AF.txt
@@ -1,16 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fa_AF.xml
+// * Source File:<path>/common/main/fa_AF.xml
// *
// ***************************************************************************
fa_AF{
- AuxExemplarCharacters{
- "[\u064a\u067c\u0681\u0685\u0689\u0693\u0696\u069a\u06ab\u06bc\u06cd\u06d0"
- "\u0656\u0670]"
- }
+ AuxExemplarCharacters{"[Ù– Ù° \u200C \u200D Ù¼ Ú Ú… Ú‰ Ú“ Ú– Úš Ú« Ú¼ ÙŠ]"}
Countries{
AD{"اندورا"}
AE{"امارات متحدهٔ عربی"}
@@ -110,13 +107,61 @@ fa_AF{
ZW{"زیمبابوی"}
}
Currencies{
+ AUD{
+ "AUD",
+ "دالر آسترالیا",
+ }
+ BND{
+ "BND",
+ "دالر برونی",
+ }
+ BYR{
+ "BYR",
+ "روبل روسیهٔ سÙید",
+ }
+ CAD{
+ "CAD",
+ "دالر کانادا",
+ }
+ CHF{
+ "CHF",
+ "Ùرانک سویس",
+ }
+ DKK{
+ "DKK",
+ "کرون دنمارک",
+ }
JPY{
"Â¥",
- "JPY",
+ "ین جاپان",
+ }
+ MXN{
+ "MXN",
+ "پزوی مکسیکو",
+ }
+ NLG{
+ "NLG",
+ "گیلدر هالند",
+ }
+ NOK{
+ "NOK",
+ "کرون ناروی",
+ }
+ SEK{
+ "SEK",
+ "کرون سویدن",
+ }
+ SGD{
+ "SGD",
+ "دالر سینگاپور",
+ }
+ TJS{
+ "TJS",
+ "سامانی تاجکستان",
}
USD{
"$",
- "USD",
+ "دالر امریکا",
}
}
Languages{
@@ -140,7 +185,30 @@ fa_AF{
sv{"سویدنی"}
tg{"تاجکی"}
}
- Version{"1.33"}
+ NumberElements{
+ "Ù«",
+ "Ù¬",
+ "Ø›",
+ "Ùª",
+ "Û°",
+ "#",
+ "−",
+ "×۱۰^",
+ "‰",
+ "∞",
+ "NaN",
+ "+",
+ }
+ NumberPatterns{
+ "#,##0.###;'‪'-#,##0.###'‬'",
+ "#,##0.00 ¤;'‪'-#,##0.00'‬' ¤",
+ "'‪'#,##0%'‬'",
+ "#E0",
+ }
+ Scripts{
+ Mong{"مغلی"}
+ }
+ Version{"1.48"}
calendar{
gregorian{
DateTimeElements:intvector{
@@ -150,18 +218,18 @@ fa_AF{
monthNames{
format{
abbreviated{
- "جنو",
- "Ùبر",
- "مار",
- "اپر",
- "مـی",
+ "جنوری",
+ "Ùبروری",
+ "مارچ",
+ "اپریل",
+ "می",
"جون",
"جول",
- "اگس",
- "سپت",
- "اکت",
- "نوم",
- "دسم",
+ "اگست",
+ "سپتمبر",
+ "اکتوبر",
+ "نومبر",
+ "دسمبر",
}
wide{
"جنوری",
@@ -178,17 +246,65 @@ fa_AF{
"دسمبر",
}
}
+ stand-alone{
+ narrow{
+ "ج",
+ "Ù",
+ "Ù…",
+ "ا",
+ "Ù…",
+ "ج",
+ "ج",
+ "ا",
+ "س",
+ "ا",
+ "Ù†",
+ "د",
+ }
+ }
+ }
+ weekend:intvector{
+ 7,
+ 0,
+ 6,
+ 86400000,
}
}
- }
- zoneStrings{
- {
- "Asia/Kabul",
- "وقت اÙغانستان",
- "AFT",
- "وقت اÙغانستان",
- "AFT",
- "کابل",
+ persian{
+ monthNames{
+ format{
+ wide{
+ "حمل",
+ "ثور",
+ "جوزا",
+ "سرطان",
+ "اسد",
+ "سنبلهٔ",
+ "میزان",
+ "عقرب",
+ "قوس",
+ "جدی",
+ "دلو",
+ "حوت",
+ }
+ }
+ stand-alone{
+ narrow{
+ "Ø­",
+ "Ø«",
+ "ج",
+ "س",
+ "ا",
+ "س",
+ "Ù…",
+ "ع",
+ "Ù‚",
+ "ج",
+ "د",
+ "Ø­",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fa_IR.txt b/Build/source/libs/icu-xetex/data/locales/fa_IR.txt
index 1ef4258f196..96b48f96b5b 100644
--- a/Build/source/libs/icu-xetex/data/locales/fa_IR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fa_IR.txt
@@ -1,25 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fa_IR.xml
+// * Source File:<path>/common/main/fa_IR.xml
// *
// ***************************************************************************
fa_IR{
- NumberPatterns{
- "#,##0.###;−#,##0.###",
- "#,##0.00 ¤;−#,##0.00 ¤",
- "%#,##0",
- "#E0",
- }
- Version{"1.32"}
+ Version{"1.45"}
calendar{
gregorian{
DateTimeElements:intvector{
7,
1,
}
+ weekend:intvector{
+ 7,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fi.txt b/Build/source/libs/icu-xetex/data/locales/fi.txt
index 6bc78b7ca2f..c908c92512a 100644
--- a/Build/source/libs/icu-xetex/data/locales/fi.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fi.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fi.xml
+// * Source File:<path>/common/main/fi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/fi.xml
+ * ICU <specials> source: <path>/xml/main/fi.xml
*/
fi{
- AuxExemplarCharacters{"[à á ã æ è é ë ï ô õ ø ü Å“ ç Ä Ã± Å™]"}
+ AuxExemplarCharacters{"[á à ã Ä Ã§ é è ë í ï ñ ô Å™ ú ü æ ø õ Å“]"}
Countries{
001{"maailma"}
002{"Afrikka"}
@@ -26,19 +26,22 @@ fi{
021{"Pohjois-Amerikka"}
029{"Karibia"}
030{"Itä-Aasia"}
+ 034{"Etelä-Aasia"}
035{"Kaakkois-Aasia"}
039{"Etelä-Eurooppa"}
053{"Australia ja Uusi-Seelanti"}
054{"Melanesia"}
057{"Mikronesia"}
061{"Polynesia"}
- 062{"eteläinen Keski-Aasia"}
142{"Aasia"}
+ 143{"Keski-Aasia"}
145{"Länsi-Aasia"}
150{"Eurooppa"}
151{"Itä-Eurooppa"}
154{"Pohjois-Eurooppa"}
155{"Länsi-Eurooppa"}
+ 172{"Itsenäisten valtioiden yhteisö"}
+ 419{"Latinalainen Amerikka ja Karibia"}
830{"Kanaalisaaret"}
833{"Mansaari"}
AD{"Andorra"}
@@ -112,11 +115,11 @@ fi{
FI{"Suomi"}
FJ{"Fidži"}
FK{"Falklandinsaaret"}
- FM{"Mikronesia"}
+ FM{"Mikronesian liittovaltio"}
FO{"Färsaaret"}
FR{"Ranska"}
GA{"Gabon"}
- GB{"Iso-Britannia"}
+ GB{"Britannia"}
GD{"Grenada"}
GE{"Georgia"}
GF{"Ranskan Guayana"}
@@ -158,7 +161,7 @@ fi{
KM{"Komorit"}
KN{"Saint Kitts ja Nevis"}
KP{"Pohjois-Korea"}
- KR{"Korean tasavalta"}
+ KR{"Etelä-Korea"}
KW{"Kuwait"}
KY{"Caymansaaret"}
KZ{"Kazakstan"}
@@ -222,7 +225,7 @@ fi{
PW{"Palau"}
PY{"Paraguay"}
QA{"Qatar"}
- QO{"tuntematon"}
+ QO{"ulkomeri"}
RE{"Réunion"}
RO{"Romania"}
RU{"Venäjä"}
@@ -268,7 +271,7 @@ fi{
US{"Yhdysvallat"}
UY{"Uruguay"}
UZ{"Uzbekistan"}
- VA{"Vatikaanivaltio"}
+ VA{"Vatikaani"}
VC{"Saint Vincent ja Grenadiinit"}
VE{"Venezuela"}
VG{"Brittiläiset Neitsytsaaret"}
@@ -294,22 +297,22 @@ fi{
}
AFA{
"AFA",
- "Afgaani (1927-2002)",
+ "Afganistanin afgaani (1927-2002)",
}
AFN{
- "Af",
- "Afgaani",
+ "AFN",
+ "Afganistanin afgaani",
}
ALL{
- "lek",
+ "ALL",
"Albanian lek",
}
AMD{
- "dram",
+ "AMD",
"Armenian dram",
}
ANG{
- "NA f.",
+ "ANG",
"Alankomaiden Antillien guldeni",
}
AOA{
@@ -337,15 +340,15 @@ fi{
"Argentiinan peso (1983-1985)",
}
ARS{
- "Arg$",
+ "ARS",
"Argentiinan peso",
}
ATS{
"ATS",
- "Itävallan shillinki",
+ "Itävallan šillinki",
}
AUD{
- "$A",
+ "AUD",
"Australian dollari",
}
AWG{
@@ -361,15 +364,15 @@ fi{
"Bosnia-Hertsegovinan dinaari",
}
BAM{
- "KM",
+ "BAM",
"Bosnia-Hertsegovinan vaihdettava markka",
}
BBD{
- "BDS$",
+ "BBD",
"Barbadosin dollari",
}
BDT{
- "Tk",
+ "BDT",
"Bangladeshin taka",
}
BEC{
@@ -377,7 +380,7 @@ fi{
"Belgian frangi (vaihdettava)",
}
BEF{
- "BF",
+ "BEF",
"Belgian frangi",
}
BEL{
@@ -385,23 +388,23 @@ fi{
"Belgian frangi (rahoitus)",
}
BGL{
- "lev",
- "Bulgarian kova leva",
+ "BGL",
+ "Bulgarian kova lev",
}
BGN{
"BGN",
"Bulgarian uusi lev",
}
BHD{
- "BD",
+ "BHD",
"Bahrainin dinaari",
}
BIF{
- "Fbu",
+ "BIF",
"Burundin frangi",
}
BMD{
- "Ber$",
+ "BMD",
"Bermudan dollari",
}
BND{
@@ -409,8 +412,8 @@ fi{
"Brunein dollari",
}
BOB{
- "Bs",
- "boliviano",
+ "BOB",
+ "Bolivian boliviano",
}
BOP{
"BOP",
@@ -418,7 +421,7 @@ fi{
}
BOV{
"BOV",
- "Bolivian mvdol",
+ "Bolivian MVDOL",
}
BRB{
"BRB",
@@ -433,7 +436,7 @@ fi{
"Brasilian cruzeiro (1990-1993)",
}
BRL{
- "R$",
+ "BRL",
"Brasilian real",
}
BRN{
@@ -449,7 +452,7 @@ fi{
"Bahaman dollari",
}
BTN{
- "Nu",
+ "BTN",
"Bhutanin ngultrum",
}
BUK{
@@ -465,45 +468,61 @@ fi{
"Valko-Venäjän uusi rupla (1994-1999)",
}
BYR{
- "Rbl",
+ "BYR",
"Valko-Venäjän rupla",
}
BZD{
- "BZ$",
+ "BZD",
"Belizen dollari",
}
CAD{
- "Can$",
+ "CAD",
"Kanadan dollari",
}
CDF{
"CDF",
- "Kongon kongolainen frangi",
+ "Kongon frangi",
+ }
+ CHE{
+ "CHE",
+ "Sveitsin WIR-euro",
}
CHF{
- "SwF",
+ "CHF",
"Sveitsin frangi",
}
+ CHW{
+ "CHW",
+ "Sveitsin WIR-frangi",
+ }
CLF{
"CLF",
"Chilen unidades de fomento",
}
CLP{
- "Ch$",
+ "CLP",
"Chilen peso",
}
CNY{
- "Y",
- "Kiinan yuan renminbi",
+ "CNY",
+ "Kiinan yuan",
}
COP{
- "Col$",
+ "COP",
"Kolumbian peso",
}
+ COU{
+ "COU",
+ "Kolumbian unidad de valor real",
+ }
CRC{
- "C",
+ "CRC",
"Costa Rican colon",
}
+ CSD{
+ "CSD",
+ "Serbian dinaari",
+ }
CSK{
"CSK",
"TÅ¡ekkoslovakian kova koruna",
@@ -513,11 +532,11 @@ fi{
"Kuuban peso",
}
CVE{
- "CVEsc",
+ "CVE",
"Kap Verden escudo",
}
CYP{
- "£C",
+ "CYP",
"Kyproksen punta",
}
CZK{
@@ -526,26 +545,26 @@ fi{
}
DDM{
"DDM",
- "Itä-Saksan ostmark",
+ "Itä-Saksan markka",
}
DEM{
"DEM",
"Saksan markka",
}
DJF{
- "DF",
+ "DJF",
"Djiboutin frangi",
}
DKK{
- "DKr",
+ "Tkr",
"Tanskan kruunu",
}
DOP{
- "RD$",
+ "DOP",
"Dominikaanisen tasavallan peso",
}
DZD{
- "DA",
+ "DZD",
"Algerian dinaari",
}
ECS{
@@ -564,16 +583,28 @@ fi{
"EGP",
"Egyptin punta",
}
+ EQE{
+ "EQE",
+ "Päiväntasaajan Guinean ekwele (1986-1989)",
+ }
ERN{
"ERN",
"Eritrean nakfa",
}
+ ESA{
+ "ESA",
+ "Espanjan peseta (A-tili)",
+ }
+ ESB{
+ "ESB",
+ "Espanjan peseta (vaihdettava tili)",
+ }
ESP{
"ESP",
"Espanjan peseta",
}
ETB{
- "Br",
+ "ETB",
"Etiopian birr",
}
EUR{
@@ -585,7 +616,7 @@ fi{
"Suomen markka",
}
FJD{
- "F$",
+ "FJD",
"Fidžin dollari",
}
FKP{
@@ -598,14 +629,14 @@ fi{
}
GBP{
"£",
- "Iso-Britannian sterling-punta",
+ "Englannin punta",
}
GEK{
"GEK",
"Georgian kuponkilari",
}
GEL{
- "lari",
+ "GEL",
"Georgian lari",
}
GHC{
@@ -621,7 +652,7 @@ fi{
"Gambian dalasi",
}
GNF{
- "GF",
+ "GNF",
"Guinean frangi",
}
GNS{
@@ -630,14 +661,14 @@ fi{
}
GQE{
"GQE",
- "Päiväntasaajan Guinean ekwele guineana",
+ "Päiväntasaajan Guinean ekwele (-1986)",
}
GRD{
"GRD",
- "Kreikan drakhma",
+ "Kreikan drakma",
}
GTQ{
- "Q",
+ "GTQ",
"Guatemalan quetzal",
}
GWE{
@@ -649,15 +680,15 @@ fi{
"Guinea-Bissaun peso",
}
GYD{
- "G$",
+ "GYD",
"Guyanan dollari",
}
HKD{
- "HK$",
+ "HKD",
"Hongkongin dollari",
}
HNL{
- "L",
+ "HNL",
"Hondurasin lempira",
}
HRD{
@@ -673,15 +704,15 @@ fi{
"Haitin gourde",
}
HUF{
- "Ft",
+ "HUF",
"Unkarin forintti",
}
IDR{
- "Rp",
+ "IDR",
"Indonesian rupia",
}
IEP{
- "IR£",
+ "IEP",
"Irlannin punta",
}
ILP{
@@ -693,15 +724,15 @@ fi{
"Israelin uusi sekeli",
}
INR{
- "=0#Rs.|1#Re.|1<Rs.",
+ "INR",
"Intian rupia",
}
IQD{
- "ID",
+ "IQD",
"Irakin dinaari",
}
IRR{
- "RI",
+ "IRR",
"Iranin rial",
}
ISK{
@@ -709,15 +740,15 @@ fi{
"Islannin kruunu",
}
ITL{
- "₤",
+ "ITL",
"Italian liira",
}
JMD{
- "J$",
+ "JMD",
"Jamaikan dollari",
}
JOD{
- "JD",
+ "JOD",
"Jordanian dinaari",
}
JPY{
@@ -725,19 +756,19 @@ fi{
"Japanin jeni",
}
KES{
- "K Sh",
- "Kenian shillinki",
+ "KES",
+ "Kenian Å¡illinki",
}
KGS{
- "som",
- "Kirgistanin som",
+ "KGS",
+ "Kirgisian som",
}
KHR{
- "CR",
+ "KHR",
"Kambodžan riel",
}
KMF{
- "CF",
+ "KMF",
"Komorien frangi",
}
KPW{
@@ -749,7 +780,7 @@ fi{
"Etelä-Korean won",
}
KWD{
- "KD",
+ "KWD",
"Kuwaitin dinaari",
}
KYD{
@@ -757,7 +788,7 @@ fi{
"Caymansaarten dollari",
}
KZT{
- "T",
+ "KZT",
"Kazakstanin tenge",
}
LAK{
@@ -765,11 +796,11 @@ fi{
"Laosin kip",
}
LBP{
- "LL",
+ "LBP",
"Libanonin punta",
}
LKR{
- "SL Re",
+ "LKR",
"Sri Lankan rupia",
}
LRD{
@@ -777,9 +808,13 @@ fi{
"Liberian dollari",
}
LSL{
- "M",
+ "LSL",
"Lesothon loti",
}
+ LSM{
+ "LSM",
+ "Lesothon maloti",
+ }
LTL{
"LTL",
"Liettuan liti",
@@ -788,10 +823,18 @@ fi{
"LTT",
"Liettuan talonas",
}
+ LUC{
+ "LUC",
+ "Luxemburgin vaihdettava frangi",
+ }
LUF{
"LUF",
"Luxemburgin frangi",
}
+ LUL{
+ "LUL",
+ "Luxemburgin rahoitusfrangi",
+ }
LVL{
"LVL",
"Latvian lati",
@@ -801,7 +844,7 @@ fi{
"Latvian rupla",
}
LYD{
- "LD",
+ "LYD",
"Libyan dinaari",
}
MAD{
@@ -825,7 +868,7 @@ fi{
"Madagaskarin frangi",
}
MKD{
- "MDen",
+ "MKD",
"Makedonian dinaari",
}
MLF{
@@ -837,7 +880,7 @@ fi{
"Myanmarin kyat",
}
MNT{
- "Tug",
+ "MNT",
"Mongolian tugrik",
}
MOP{
@@ -845,11 +888,11 @@ fi{
"Macaon pataca",
}
MRO{
- "UM",
+ "MRO",
"Mauritanian ouguiya",
}
MTL{
- "Lm",
+ "MTL",
"Maltan liira",
}
MTP{
@@ -865,11 +908,11 @@ fi{
"Malediivien rufiyaa",
}
MWK{
- "MK",
+ "MWK",
"Malawin kwacha",
}
MXN{
- "MEX$",
+ "MXN",
"Meksikon peso",
}
MXP{
@@ -881,7 +924,7 @@ fi{
"Meksikon UDI",
}
MYR{
- "RM",
+ "MYR",
"Malesian ringgit",
}
MZE{
@@ -889,11 +932,11 @@ fi{
"Mosambikin escudo",
}
MZM{
- "Mt",
+ "MZM",
"Mosambikin metical",
}
NAD{
- "N$",
+ "NAD",
"Namibian dollari",
}
NGN{
@@ -906,26 +949,26 @@ fi{
}
NIO{
"NIO",
- "Nicaraguan cordoba oro",
+ "Nicaraguan kultacordoba",
}
NLG{
"NLG",
"Alankomaiden guldeni",
}
NOK{
- "NKr",
+ "Nkr",
"Norjan kruunu",
}
NPR{
- "Nrs",
+ "NPR",
"Nepalin rupia",
}
NZD{
- "$NZ",
+ "NZD",
"Uuden-Seelannin dollari",
}
OMR{
- "RO",
+ "OMR",
"Omanin rial",
}
PAB{
@@ -953,11 +996,11 @@ fi{
"Filippiinien peso",
}
PKR{
- "Pra",
+ "PKR",
"Pakistanin rupia",
}
PLN{
- "Zl",
+ "PLN",
"Puolan zloty",
}
PLZ{
@@ -973,12 +1016,20 @@ fi{
"Paraguayn guarani",
}
QAR{
- "QR",
+ "QAR",
"Qatarin rial",
}
+ RHD{
+ "RHD",
+ "Rhodesian dollari",
+ }
ROL{
- "leu",
- "Romanian lei",
+ "ROL",
+ "Romanian vanha leu",
+ }
+ RON{
+ "RON",
+ "Romanian uusi leu",
}
RUB{
"RUB",
@@ -993,15 +1044,15 @@ fi{
"Ruandan frangi",
}
SAR{
- "SRl",
+ "SAR",
"Saudi-Arabian rial",
}
SBD{
- "SI$",
+ "SBD",
"Salomonsaarten dollari",
}
SCR{
- "SR",
+ "SCR",
"Seychellien rupia",
}
SDD{
@@ -1013,11 +1064,11 @@ fi{
"Sudanin punta",
}
SEK{
- "SKr",
+ "Rkr",
"Ruotsin kruunu",
}
SGD{
- "S$",
+ "SGD",
"Singaporen dollari",
}
SHP{
@@ -1029,24 +1080,28 @@ fi{
"Slovenian tolar",
}
SKK{
- "Sk",
- "Slovakin koruna",
+ "SKK",
+ "Slovakian koruna",
}
SLL{
"SLL",
"Sierra Leonen leone",
}
SOS{
- "So. Sh.",
- "Somalian shillinki",
+ "SOS",
+ "Somalian Å¡illinki",
+ }
+ SRD{
+ "SRD",
+ "Surinamin dollari",
}
SRG{
- "Sf",
+ "SRG",
"Surinamin guldeni",
}
STD{
- "Db",
- "São Tomén ja Principén dobra",
+ "STD",
+ "São Tomén ja Príncipen dobra",
}
SUR{
"SUR",
@@ -1057,11 +1112,11 @@ fi{
"El Salvadorin colon",
}
SYP{
- "LS",
+ "SYP",
"Syyrian punta",
}
SZL{
- "E",
+ "SZL",
"Swazimaan lilangeni",
}
THB{
@@ -1085,15 +1140,15 @@ fi{
"Tunisian dinaari",
}
TOP{
- "T$",
- "Tongan paʻanga",
+ "TOP",
+ "Tongan pa’anga",
}
TPE{
"TPE",
"Timorin escudo",
}
TRL{
- "TL",
+ "TRL",
"Turkin liira",
}
TRY{
@@ -1101,16 +1156,16 @@ fi{
"Turkin uusi liira",
}
TTD{
- "TT$",
+ "TTD",
"Trinidadin ja Tobagon dollari",
}
TWD{
- "NT$",
+ "TWD",
"Taiwanin uusi dollari",
}
TZS{
- "T Sh",
- "Tansanian shillinki",
+ "TZS",
+ "Tansanian Å¡illinki",
}
UAH{
"UAH",
@@ -1122,14 +1177,14 @@ fi{
}
UGS{
"UGS",
- "Ugandan shillinki (1966-1987)",
+ "Ugandan Å¡illinki (1966-1987)",
}
UGX{
- "U Sh",
- "Ugandan shillinki",
+ "UGX",
+ "Ugandan Å¡illinki",
}
USD{
- "US$",
+ "$",
"Yhdysvaltain dollari",
}
USN{
@@ -1145,15 +1200,15 @@ fi{
"Uruguayn peso (1975-1993)",
}
UYU{
- "Ur$",
- "Uruguayn peso uruguayo",
+ "UYU",
+ "Uruguayn peso",
}
UZS{
"UZS",
"Uzbekistanin som",
}
VEB{
- "Be",
+ "VEB",
"Venezuelan bolivar",
}
VND{
@@ -1161,17 +1216,21 @@ fi{
"Vietnamin dong",
}
VUV{
- "VT",
+ "VUV",
"Vanuatun vatu",
}
WST{
"WST",
- "Länsi-Samoan tala",
+ "Samoan tala",
}
XAF{
"XAF",
"CFA-frangi BEAC",
}
+ XAG{
+ "XAG",
+ "hopea",
+ }
XAU{
"XAU",
"kulta",
@@ -1193,20 +1252,20 @@ fi{
"EUA (XBD)",
}
XCD{
- "EC$",
+ "XCD",
"Itä-Karibian dollari",
}
XDR{
"XDR",
- "erityisnosto-oikeus",
+ "erityisnosto-oikeus (SDR)",
}
XEU{
"XEU",
- "Euroopan valuuttayksikkö",
+ "Euroopan valuuttayksikkö (ECU)",
}
XFO{
"XFO",
- "Ranskan kulta frangi",
+ "Ranskan kultafrangi",
}
XFU{
"XFU",
@@ -1216,16 +1275,36 @@ fi{
"XOF",
"CFA-frangi BCEAO",
}
+ XPD{
+ "XPD",
+ "palladium",
+ }
XPF{
- "CFPF",
+ "XPF",
"CFP-frangi",
}
+ XPT{
+ "XPT",
+ "platina",
+ }
+ XRE{
+ "XRE",
+ "RINET-rahastot",
+ }
+ XTS{
+ "XTS",
+ "testaustarkoitukseen varattu valuuttakoodi",
+ }
+ XXX{
+ "XXX",
+ "ei rahayksikköä",
+ }
YDD{
"YDD",
"Jemenin dinaari",
}
YER{
- "YRl",
+ "YER",
"Jemenin rial",
}
YUD{
@@ -1245,7 +1324,7 @@ fi{
"Etelä-Afrikan randi (rahoitus)",
}
ZAR{
- "R",
+ "ZAR",
"Etelä-Afrikan randi",
}
ZMK{
@@ -1261,11 +1340,11 @@ fi{
"Zairen zaire",
}
ZWD{
- "Z$",
+ "ZWD",
"Zimbabwen dollari",
}
}
- ExemplarCharacters{"[a-z å ä ö š ž]"}
+ ExemplarCharacters{"[a-s š t-z ž å ä ö]"}
Keys{
calendar{"kalenteri"}
collation{"lajittelu"}
@@ -1275,20 +1354,23 @@ fi{
aa{"afar"}
ab{"abhaasi"}
ace{"aceh"}
- ach{"acholi"}
+ ach{"atšoli"}
ada{"adangme"}
ady{"adyge"}
ae{"avesta"}
af{"afrikaans"}
afa{"muut afroaasialaiset kielet"}
afh{"afrihili"}
+ ain{"ainu"}
ak{"akan"}
akk{"akkadi"}
ale{"aleutti"}
alg{"algonkin-kielet"}
+ alt{"altai"}
am{"amhara"}
an{"aragonia"}
ang{"muinaisenglanti"}
+ anp{"angika"}
apa{"apaššikielet"}
ar{"arabia"}
arc{"aramea"}
@@ -1302,7 +1384,7 @@ fi{
aus{"australialaiset kielet"}
av{"avaari"}
awa{"awadhi"}
- ay{"aymara"}
+ ay{"aimara"}
az{"azeri"}
ba{"baškiiri"}
bad{"banda"}
@@ -1312,12 +1394,12 @@ fi{
bas{"basa"}
bat{"muut balttilaiset kielet"}
be{"valkovenäjä"}
- bej{"beja"}
+ bej{"bedža"}
bem{"bemba"}
ber{"muut berberikielet"}
bg{"bulgaria"}
bh{"bihari"}
- bho{"bhojpuri"}
+ bho{"bhodžpuri"}
bi{"bislama"}
bik{"bikol"}
bin{"bini"}
@@ -1327,12 +1409,12 @@ fi{
bnt{"muut bantukielet"}
bo{"tiibet"}
br{"bretoni"}
- bra{"braj"}
+ bra{"bradž"}
bs{"bosnia"}
btk{"batak"}
bua{"burjaatti"}
bug{"bugi"}
- byn{"blin"}
+ byn{"bilin"}
ca{"katalaani"}
cad{"caddo"}
cai{"muut Keski-Amerikan intiaanikielet"}
@@ -1341,8 +1423,8 @@ fi{
ce{"tšetšeeni"}
ceb{"cebuano"}
cel{"muut kelttiläiset kielet"}
- ch{"chamorro"}
- chb{"chibcha"}
+ ch{"tšamorro"}
+ chb{"tšibtša"}
chg{"tšagatai"}
chk{"chuuk"}
chm{"mari"}
@@ -1351,7 +1433,7 @@ fi{
chp{"chipewyan"}
chr{"cherokee"}
chy{"cheyenne"}
- cmc{"cham-kielet"}
+ cmc{"tšam-kielet"}
co{"korsika"}
cop{"kopti"}
cpe{"muut englantiin perustuvat kreolit ja pidginit"}
@@ -1368,11 +1450,11 @@ fi{
cy{"kymri"}
da{"tanska"}
dak{"dakota"}
- dar{"dargva"}
- day{"dayak"}
+ dar{"dargi"}
+ day{"dajakki"}
de{"saksa"}
del{"delaware"}
- den{"slave"}
+ den{"slevi"}
dgr{"dogrib"}
din{"dinka"}
doi{"dogri"}
@@ -1381,7 +1463,7 @@ fi{
dua{"duala"}
dum{"keskihollanti"}
dv{"divehi"}
- dyu{"dyula"}
+ dyu{"djula"}
dz{"dzongkha"}
ee{"ewe"}
efi{"efik"}
@@ -1401,18 +1483,22 @@ fi{
fat{"fanti"}
ff{"fulani"}
fi{"suomi"}
+ fil{"filipino"}
fiu{"muut suomalais-ugrilaiset kielet"}
fj{"fidži"}
fo{"fääri"}
+ fon{"fon"}
fr{"ranska"}
frm{"keskiranska"}
fro{"muinaisranska"}
+ frr{"pohjoisfriisi"}
+ frs{"itäfriisi"}
fur{"friuli"}
- fy{"friisi"}
+ fy{"länsifriisi"}
ga{"iiri"}
- gaa{"gã"}
- gay{"gayo"}
- gba{"gbaya"}
+ gaa{"ga"}
+ gay{"gajo"}
+ gba{"gbaja"}
gd{"gaeli"}
gem{"muut germaaniset kielet"}
gez{"ge’ez"}
@@ -1426,16 +1512,17 @@ fi{
got{"gootti"}
grb{"grebo"}
grc{"muinaiskreikka"}
- gu{"gujarati"}
+ gsw{"sveitsinsaksa"}
+ gu{"gudžarati"}
gv{"manx"}
- gwi{"gwich’in"}
+ gwi{"gwitšin"}
ha{"hausa"}
hai{"haida"}
haw{"havaiji"}
he{"heprea"}
hi{"hindi"}
- hil{"hiligaynon"}
- him{"himachali"}
+ hil{"hiligaino"}
+ him{"himatšali"}
hit{"heetti"}
hmn{"hmong"}
ho{"hiri-motu"}
@@ -1452,7 +1539,8 @@ fi{
ie{"interlingue"}
ig{"igbo"}
ii{"sichuanin-yi"}
- ik{"iñupiak"}
+ ijo{"idžo"}
+ ik{"inupiatun"}
ilo{"iloko"}
inc{"muut indoarjalaiset kielet"}
ine{"muut indoeurooppalaiset kielet"}
@@ -1481,7 +1569,7 @@ fi{
khi{"muut khoisan-kielet"}
kho{"khotani"}
ki{"kikuju"}
- kj{"kwanyama"}
+ kj{"kuanjama"}
kk{"kazakki"}
kl{"kalaallisut; grönlanti"}
km{"khmer"}
@@ -1493,9 +1581,10 @@ fi{
kpe{"kpelle"}
kr{"kanuri"}
krc{"karatšai-balkaari"}
+ krl{"karjala"}
kro{"kru-kielet"}
kru{"kurukh"}
- ks{"kashmiri"}
+ ks{"kašmiri"}
ku{"kurdi"}
kum{"kumykki"}
kut{"kutenai"}
@@ -1519,7 +1608,8 @@ fi{
lua{"luba (Lulua)"}
lui{"luiseño"}
lun{"lunda"}
- lus{"lushai"}
+ luo{"luo"}
+ lus{"lusai"}
lv{"latvia"}
mad{"madura"}
mag{"magahi"}
@@ -1540,7 +1630,7 @@ fi{
mis{"luokittelemattomat kielet"}
mk{"makedonia"}
mkh{"muut mon-khmer-kielet"}
- ml{"malayalam"}
+ ml{"malajalam"}
mn{"mongoli"}
mnc{"mantšu"}
mni{"manipuri"}
@@ -1554,13 +1644,14 @@ fi{
mul{"monia kieliä"}
mun{"mundakielet"}
mus{"creek"}
+ mwl{"mirandeesi"}
mwr{"marwari"}
my{"burma"}
myn{"maya-kielet"}
myv{"ersä"}
na{"nauru"}
nah{"nahuatl"}
- nai{"Pohjois-Amerikan intiaanikielet"}
+ nai{"muut Pohjois-Amerikan intiaanikielet"}
nap{"napoli"}
nb{"norja (bokmål)"}
nd{"ndebele, pohjois-"}
@@ -1581,20 +1672,20 @@ fi{
nub{"nubialaiset kielet"}
nv{"navajo"}
nwc{"klassinen newari"}
- ny{"nyanja"}
+ ny{"njandža"}
nym{"nyamwezi"}
nyn{"nyankole"}
nyo{"nyoro"}
nzi{"nzima"}
oc{"oksitaani"}
- oj{"ojibwa"}
+ oj{"odžibwa"}
om{"oromo"}
- or{"oriya"}
+ or{"orija"}
os{"osseetti"}
osa{"osage"}
ota{"osmani"}
oto{"otomi-kielet"}
- pa{"panjabi"}
+ pa{"pandžabi"}
paa{"muut papualaiskielet"}
pag{"pangasinan"}
pal{"pahlavi"}
@@ -1609,10 +1700,10 @@ fi{
pon{"pohnpei"}
pra{"prakrit-kielet"}
pro{"muinaisprovensaali"}
- ps{"pašto"}
+ ps{"paštu"}
pt{"portugali"}
- qu{"quechua"}
- raj{"rajasthani"}
+ qu{"ketšua"}
+ raj{"radžastani"}
rap{"rapanui"}
rar{"rarotonga"}
rm{"retoromaani"}
@@ -1620,7 +1711,9 @@ fi{
ro{"romania"}
roa{"muut romaaniset kielet"}
rom{"romani"}
+ root{"juuri"}
ru{"venäjä"}
+ rup{"aromania"}
rw{"ruanda"}
sa{"sanskrit"}
sad{"sandawe"}
@@ -1631,6 +1724,7 @@ fi{
sas{"sasak"}
sat{"santali"}
sc{"sardi"}
+ scn{"sisilia"}
sco{"skotti"}
sd{"sindhi"}
se{"saame, pohjois-"}
@@ -1639,7 +1733,6 @@ fi{
sg{"sango"}
sga{"muinaisiiri"}
sgn{"viittomakielet"}
- sh{"serbokroatia"}
shn{"shan"}
si{"sinhali"}
sid{"sidamo"}
@@ -1650,17 +1743,18 @@ fi{
sla{"muut slaavilaiset kielet"}
sm{"samoa"}
sma{"saame, etelä-"}
- smi{"muut saamen kielet"}
+ smi{"muut saamelaiskielet"}
smj{"saame, luulajan-"}
smn{"saame, inarin-"}
sms{"saame, koltan-"}
- sn{"shona"}
+ sn{"Å¡ona"}
snk{"soninke"}
so{"somali"}
sog{"sogdi"}
son{"songhai"}
sq{"albania"}
sr{"serbia"}
+ srn{"sranan"}
srr{"serer"}
ss{"swazi"}
ssa{"muut niililäis-saharalaiset kielet"}
@@ -1680,21 +1774,22 @@ fi{
tet{"tetum"}
tg{"tadžikki"}
th{"thai"}
- ti{"tigrinya"}
+ ti{"tigrinja"}
tig{"tigre"}
+ tiv{"tiv"}
tk{"turkmeeni"}
tkl{"tokelau"}
tl{"tagalog"}
tlh{"klingon"}
tli{"tlingit"}
- tmh{"tamashek"}
+ tmh{"tamašek"}
tn{"tswana"}
to{"tonga (Tonga)"}
tog{"tonga (Malawi)"}
tpi{"tok-pisin"}
tr{"turkki"}
ts{"tsonga"}
- tsi{"tsimshian"}
+ tsi{"tsimši"}
tt{"tataari"}
tum{"tumbuka"}
tup{"tupi-kielet"}
@@ -1711,6 +1806,7 @@ fi{
und{"määrittämätön"}
ur{"urdu"}
uz{"uzbekki"}
+ vai{"vai"}
ve{"venda"}
vi{"vietnam"}
vo{"volapük"}
@@ -1724,6 +1820,8 @@ fi{
wo{"wolof"}
xal{"kalmukki"}
xh{"xhosa"}
+ yao{"jao"}
+ yap{"japi"}
yi{"jiddiš"}
yo{"joruba"}
ypk{"jupikkikielet"}
@@ -1734,6 +1832,7 @@ fi{
znd{"zande"}
zu{"zulu"}
zun{"zuni"}
+ zxx{"ei kielellistä sisältöä"}
}
LocaleScript{
"Latn",
@@ -1749,9 +1848,15 @@ fi{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "#,##0.00 ¤",
+ "#,##0 %",
+ "#E0",
+ }
Scripts{
Arab{"arabialainen"}
Armn{"armenialainen"}
@@ -1761,36 +1866,38 @@ fi{
Blis{"Bliss-symbolit"}
Bopo{"bopomofo"}
Brah{"brahmi"}
- Brai{"Braille-symbolit"}
+ Brai{"pistekirjoitus (Braille)"}
Bugi{"bugilainen"}
Buhd{"buhidilainen"}
- Cans{"yhtenäistetty Kanadan alkuperäiskansojen tavukirjoitus"}
- Cham{"chamilainen"}
+ Cans{"Kanadan alkuperäiskansojen yhtenäistetty tavukirjoitus"}
+ Cham{"tšamilainen"}
Cher{"cherokeelainen"}
+ Cirt{"cirth"}
Copt{"koptilainen"}
- Cprt{"kyproslainen"}
+ Cprt{"muinaiskyproslainen"}
Cyrl{"kyrillinen"}
- Cyrs{"kyrillinen (vanha kirkkoslaavi -muunnelma)"}
+ Cyrs{"kyrillinen (muinaiskirkkoslaavimuunnelma)"}
Deva{"devanagari"}
- Dsrt{"mormoonien deseret"}
- Egyd{"demoottinen"}
- Egyh{"hieraattinen"}
+ Dsrt{"deseret"}
+ Egyd{"egyptiläinen demoottinen"}
+ Egyh{"egyptiläinen hieraattinen"}
Egyp{"egyptiläiset hieroglyfit"}
Ethi{"etiopialainen (ge’ez)"}
- Geok{"khutsuri"}
- Geor{"georgialainen"}
+ Geok{"muinaisgeorgialainen (khutsuri)"}
+ Geor{"georgialainen (mkhedruli)"}
Glag{"glagoliittinen"}
Goth{"goottilainen"}
Grek{"kreikkalainen"}
- Gujr{"gujarati"}
+ Gujr{"gudžaratilainen"}
Guru{"gurmukhi"}
Hang{"hangul"}
- Hani{"han"}
+ Hani{"kiinalainen (han)"}
Hano{"hanunoolainen"}
- Hans{"han, yksinkertaistettu"}
- Hant{"han, perinteinen"}
+ Hans{"kiinalainen (han), yksinkertaistettu"}
+ Hant{"kiinalainen (han), perinteinen"}
Hebr{"heprealainen"}
Hira{"hiragana"}
+ Hmng{"pahawh hmong"}
Hrkt{"hiragana+katakana"}
Hung{"muinaisunkarilainen"}
Inds{"induslainen"}
@@ -1798,33 +1905,37 @@ fi{
Java{"jaavalainen"}
Kali{"kayah li"}
Kana{"katakana"}
- Khar{"kharotshi"}
+ Khar{"kharoshthi"}
Khmr{"khmeriläinen"}
Knda{"kannadalainen"}
Laoo{"laolainen"}
- Latf{"latinalainen (fraktuura-muunnelma)"}
- Latg{"latinalainen (gaeli-muunnelma)"}
+ Latf{"latinalainen (fraktuuramuunnelma)"}
+ Latg{"latinalainen (gaelimuunnelma)"}
Latn{"latinalainen"}
- Lepc{"lepcha"}
+ Lepc{"lepchalainen"}
Limb{"limbulainen"}
Lina{"lineaari-A"}
Linb{"lineaari-B"}
Mand{"mandealainen"}
Maya{"maya-hieroglyfit"}
Mero{"meroiittinen"}
- Mlym{"malayalamilainen"}
+ Mlym{"malajalamilainen"}
Mong{"mongolilainen"}
Mymr{"burmalainen"}
Nkoo{"n'ko"}
Ogam{"ogam"}
Orkh{"orkhon"}
- Orya{"oriyalainen"}
- Osma{"osmanya"}
+ Orya{"orijalainen"}
+ Osma{"osmanjalainen"}
Perm{"muinaispermiläinen"}
Phag{"phags-pa"}
Phnx{"foinikialainen"}
+ Plrd{"Pollardin foneettinen"}
+ Qaai{"peritty"}
Roro{"rongorongo"}
Runr{"riimukirjoitus"}
+ Sara{"sarati"}
+ Shaw{"shaw’lainen"}
Sinh{"sinhalilainen"}
Sylo{"syloti nagri"}
Syrc{"syyrialainen"}
@@ -1832,19 +1943,21 @@ fi{
Syrj{"syyrialainen (läntinen muunnelma)"}
Syrn{"syyrialainen (itäinen muunnelma)"}
Tagb{"tagbanwalainen"}
- Talu{"uusi tai-lue"}
+ Tale{"tailelainen"}
+ Talu{"uusi tailuelainen"}
Taml{"tamililainen"}
Telu{"telugulainen"}
+ Teng{"tengwar"}
Tfng{"tifinagh"}
Tglg{"tagalogilainen"}
Thaa{"thaana"}
- Thai{"thai"}
+ Thai{"thailainen"}
Tibt{"tiibetiläinen"}
Ugar{"ugaritilainen"}
Vaii{"vailainen"}
- Visp{"näkyvä puhe"}
+ Visp{"näkyvä puhe (Visible Speech)"}
Xpeo{"muinaispersialainen"}
- Xsux{"sumerilais-akkadilainen nuolenpääkirjoitus"}
+ Xsux{"nuolenpääkirjoitus, sumerilais-akkadilainen"}
Yiii{"yiläinen"}
Zxxx{"kirjoittamaton"}
Zyyy{"määrittämätön"}
@@ -1861,26 +1974,33 @@ fi{
japanese{"japanilainen kalenteri"}
}
collation{
+ big5han{"perinteinen kiinalainen (Big5)"}
direct{"suora järjestys"}
+ gb2312han{"yksinkertaistettu kiinalainen (GB2312)"}
phonebook{"puhelinluettelojärjestys"}
pinyin{"pinyin-järjestys"}
stroke{"piirtojärjestys"}
traditional{"perinteinen järjestys"}
}
}
- Version{"1.56"}
+ Variants{
+ 1901{"saksan perinteinen oikeinkirjoitus"}
+ 1996{"saksan uusi oikeinkirjoitus"}
+ NEDIS{"sloveenin natisone-murre"}
+ POLYTONI{"polytoninen kreikka"}
+ REVISED{"uudistettu oikeinkirjoitus"}
+ ROZAJ{"sloveenin resia-murre"}
+ SAAHO{"afarin saho-murre"}
+ }
+ Version{"1.75"}
calendar{
gregorian{
AmPmMarkers{
"ap.",
"ip.",
}
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
- "H.mm.ss z",
+ "H.mm.ss v",
"'klo 'H.mm.ss",
"H.mm.ss",
"H.mm",
@@ -1929,8 +2049,43 @@ fi{
"jKr.",
}
wide{
- "ennen Kristusta",
- "jälkeen Kristuksen",
+ "ennen Kristuksen syntymää",
+ "jälkeen Kristuksen syntymän",
+ }
+ }
+ fields{
+ day{
+ dn{"päivä"}
+ }
+ dayperiod{
+ dn{"ap/ip-valinta"}
+ }
+ era{
+ dn{"aikakausi"}
+ }
+ hour{
+ dn{"tunti"}
+ }
+ minute{
+ dn{"minuutti"}
+ }
+ month{
+ dn{"kuukausi"}
+ }
+ second{
+ dn{"sekunti"}
+ }
+ week{
+ dn{"viikko"}
+ }
+ weekday{
+ dn{"viikonpäivä"}
+ }
+ year{
+ dn{"vuosi"}
+ }
+ zone{
+ dn{"aikavyöhyke"}
}
}
monthNames{
@@ -1981,12 +2136,28 @@ fi{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1. nelj.",
+ "2. nelj.",
+ "3. nelj.",
+ "4.nelj.",
+ }
+ wide{
+ "1. neljännes",
+ "2. neljännes",
+ "3. neljännes",
+ "4. neljännes",
+ }
+ }
+ }
}
hebrew{
monthNames{
format{
abbreviated{
- "tišrì",
+ "tišrí",
"hešván",
"kislév",
"tevét",
@@ -2001,7 +2172,7 @@ fi{
"elúl",
}
wide{
- "tišrìkuu",
+ "tišríkuu",
"hešvánkuu",
"kislévkuu",
"tevétkuu",
@@ -2021,19 +2192,18 @@ fi{
islamic{
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
- "muhárram",
- "sáfar",
- "rabíʻ al-áwwal",
- "rabíʻ al-ákhir",
- "džumada-l-úla",
- "džumada-l-ákhira",
+ "muharram",
+ "safar",
+ "rabi’ al-awwal",
+ "rabi’ al-akhir",
+ "džumada-l-ula",
+ "džumada-l-akhira",
"radžab",
- "šaʻbán",
- "ramadán",
- "šawwál",
- "dhu-l-qáʻda",
+ "ša’ban",
+ "ramadan",
+ "Å¡awwal",
+ "dhu-l-qa’da",
"dhu-l-hiddža",
}
}
@@ -2043,135 +2213,181 @@ fi{
monthNames:alias{"/LOCALE/calendar/islamic/monthNames"}
}
}
+ delimiters{
+ alternateQuotationStart{"’"}
+ quotationStart{"â€"}
+ }
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ measurementSystemNames{
+ metric{"metrinen"}
+ }
zoneStrings{
- {
- "America/Halifax",
- "Kanadan Atlantin normaaliaika",
- "AST",
- "Kanadan Atlantin kesäaika",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Newfoundlandin normaaliaika",
- "CNT",
- "Newfoundlandin kesäaika",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Kiinan normaaliaika",
- "CTT",
- "Kiinan normaaliaika",
- "CTT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Keski-Euroopan normaaliaika",
- "CET",
- "Keski-Euroopan kesäaika",
- "CEST",
- "Pariisi",
- }
- {
- "Asia/Jerusalem",
- "Israelin normaaliaika",
- "IST",
- "Israelin kesäaika",
- "IDT",
- "Jerusalem",
- }
- {
- "Asia/Tokyo",
- "Japanin normaaliaika",
- "JST",
- "Japanin normaaliaika",
- "JST",
- "Tokio",
- }
- {
- "Africa/Casablanca",
- "Greenwichin aika",
- "GMT",
- "Greenwichin aika",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Itä-Euroopan normaaliaika",
- "EET",
- "Itä-Euroopan kesäaika",
- "EEST",
- "Bukarest",
- }
- {
- "Pacific/Honolulu",
- "Havaijin normaaliaika",
- "HST",
- "Havaijin normaaliaika",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Alaskan normaaliaika",
- "AST",
- "Alaskan kesäaika",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Yhdysvaltain Tyynenmeren normaaliaika",
- "PST",
- "Yhdysvaltain Tyynenmeren kesäaika",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Kalliovuorten normaaliaika",
- "MST",
- "Kalliovuorten normaaliaika",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Kalliovuorten normaaliaika",
- "MST",
- "Kalliovuorten kesäaika",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Yhdysvaltain keskinen normaaliaika>",
- "CST",
- "Yhdysvaltain keskinen kesäaika",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Yhdysvaltain itäinen normaaliaika",
- "EST",
- "Yhdysvaltain itäinen normaaliaika",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Yhdysvaltain itäinen normaaliaika",
- "EST",
- "Yhdysvaltain itäinen kesäaika",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Greenwichin kesäaika"}
+ ls{"Greenwichin normaaliaika"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Alaskan kesäaika"}
+ ls{"Alaskan normaaliaika"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comodoro Rivadavia"}
+ }
+ "America:Cancun"{
+ ec{"Cancún"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Yhdysvaltain keskinen kesäaika"}
+ ls{"Yhdysvaltain keskinen normaaliaika"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Kalliovuorten kesäaika"}
+ ls{"Kalliovuorten normaaliaika"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Kanadan Atlantin kesäaika"}
+ ls{"Kanadan Atlantin normaaliaika"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"Yhdysvaltain itäinen kesäaika"}
+ ls{"Yhdysvaltain itäinen normaaliaika"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Yhdysvaltain Tyynenmeren kesäaika"}
+ ls{"Yhdysvaltain Tyynenmeren normaaliaika"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Yhdysvaltain itäinen kesäaika"}
+ ls{"Yhdysvaltain itäinen normaaliaika"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"keskinen North Dakota"}
+ }
+ "America:Sao_Paulo"{
+ ec{"São Paulo"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Newfoundlandin kesäaika"}
+ ls{"Newfoundlandin normaaliaika"}
+ ss{"CNT"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Etelänapa"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"Israelin kesäaika"}
+ ls{"Israelin normaaliaika"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamtšatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sahalin"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Kiinan kesäaika"}
+ ls{"Kiinan normaaliaika"}
+ sd{"CTT"}
+ ss{"CTT"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokio"}
+ ld{"Japanin kesäaika"}
+ ls{"Japanin normaaliaika"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulan Bator"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutsk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekaterinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azorit"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanariansaaret"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bukarest"}
+ ld{"Itä-Euroopan kesäaika"}
+ ls{"Itä-Euroopan normaaliaika"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kiev"{
+ ec{"Kiova"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lissabon"}
+ }
+ "Europe:London"{
+ ec{"Lontoo"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskova"}
+ }
+ "Europe:Paris"{
+ ec{"Pariisi"}
+ ld{"Keski-Euroopan kesäaika"}
+ ls{"Keski-Euroopan normaaliaika"}
+ sd{"CEDT"}
+ ss{"CEST"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Užgorod"}
+ }
+ "Pacific:Easter"{
+ ec{"Pääsiäissaari"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Havaijin kesäaika"}
+ ls{"Havaijin normaaliaika"}
+ sd{"HDT"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fi_FI.txt b/Build/source/libs/icu-xetex/data/locales/fi_FI.txt
index c0180671daf..8c7443741e2 100644
--- a/Build/source/libs/icu-xetex/data/locales/fi_FI.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fi_FI.txt
@@ -1,18 +1,26 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fi_FI.xml
+// * Source File:<path>/common/main/fi_FI.xml
// *
// ***************************************************************************
fi_FI{
- AuxExemplarCharacters{"[à á ã æ è é ë ï ô õ ø ü Å“ ç Ä Ã± Å™ â Ä‘ Å„ Å‹ ŧ ŧ Ç¥ ǧ Ç© ǯ Ê’ ÈŸ]"}
+ AuxExemplarCharacters{"[á à â ã Ä Ã§ Ä‘ é è ë ǧ Ç¥ ÈŸ í ï Ç© Å„ ñ Å‹ ô Å™ ŧ ú ü æ ø õ Å“ Ê’ ǯ]"}
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fo.txt b/Build/source/libs/icu-xetex/data/locales/fo.txt
index ce600fd39dc..05215b994ef 100644
--- a/Build/source/libs/icu-xetex/data/locales/fo.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fo.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fo.xml
+// * Source File:<path>/common/main/fo.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/fo.xml
+ * ICU <specials> source: <path>/xml/main/fo.xml
*/
fo{
+ AuxExemplarCharacters{"[c q w z]"}
Countries{
AE{"Sameindu Emirríkini"}
AF{"Afganistan"}
@@ -61,10 +62,12 @@ fo{
HU{"Ungarn"}
IE{"Ãrland"}
IL{"Ãsrael"}
+ IN{"India"}
IQ{"Irak"}
IS{"Ãsland"}
IT{"Italia"}
JM{"Jameika"}
+ JP{"Japan"}
KE{"Kenja"}
KG{"Kirgisia"}
KH{"Kambodja"}
@@ -140,7 +143,7 @@ fo{
"DKK",
}
}
- ExemplarCharacters{"[a-záæíðóøúý]"}
+ ExemplarCharacters{"[a á b d ð e-i í j-o ó p r-u ú v x y ý æ ø]"}
Languages{
fo{"føroyskt"}
}
@@ -158,10 +161,10 @@ fo{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.26"}
+ Version{"1.43"}
calendar{
gregorian{
DateTimePatterns{
@@ -229,6 +232,22 @@ fo{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fo_FO.txt b/Build/source/libs/icu-xetex/data/locales/fo_FO.txt
index 4191e9fced8..9a406d147fd 100644
--- a/Build/source/libs/icu-xetex/data/locales/fo_FO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fo_FO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fo_FO.xml
+// * Source File:<path>/common/main/fo_FO.xml
// *
// ***************************************************************************
fo_FO{
@@ -13,5 +13,13 @@ fo_FO{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fr.txt b/Build/source/libs/icu-xetex/data/locales/fr.txt
index d81a2859699..33252a3e6c6 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr.txt
@@ -1,19 +1,20 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr.xml
+// * Source File:<path>/common/main/fr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/fr.xml
+ * ICU <specials> source: <path>/xml/main/fr.xml
*/
fr{
+ AuxExemplarCharacters{"[å ñ ó]"}
Countries{
001{"Monde"}
002{"Afrique"}
- 003{"Le continent de l'Amérique du Nord"}
+ 003{"Amérique du Nord continentale"}
005{"Amérique du Sud"}
009{"Océanie"}
011{"Afrique occidentale"}
@@ -26,21 +27,24 @@ fr{
021{"Amérique du Nord"}
029{"Caraïbes"}
030{"Asie orientale"}
+ 034{"Asie du Sud"}
035{"Asie du Sud-Est"}
039{"Europe méridionale"}
053{"Australie et Nouvelle-Zélande"}
054{"Mélanésie"}
- 057{"Micronésie"}
+ 057{"région micronésienne"}
061{"Polynésie"}
062{"Asie centrale et du Sud"}
142{"Asie"}
+ 143{"Asie centrale"}
145{"Asie occidentale"}
150{"Europe"}
151{"Europe orientale"}
154{"Europe septentrionale"}
155{"Europe occidentale"}
+ 172{"Communauté des États indépendants"}
419{"Amérique latine et Caraïbes"}
- 830{"ÃŽles Anglo-Normandes"}
+ 830{"anglo-normandes, îles"}
833{"ÃŽle de Man"}
AD{"Andorre"}
AE{"Émirats arabes unis"}
@@ -57,7 +61,7 @@ fr{
AT{"Autriche"}
AU{"Australie"}
AW{"Aruba"}
- AX{"Iles d’Åland"}
+ AX{"Åland, îles"}
AZ{"Azerbaïdjan"}
BA{"Bosnie-Herzégovine"}
BB{"Barbade"}
@@ -67,25 +71,23 @@ fr{
BG{"Bulgarie"}
BH{"Bahreïn"}
BI{"Burundi"}
- BJ{"Benin"}
+ BJ{"Bénin"}
BM{"Bermudes"}
- BN{"Brunei"}
+ BN{"Brunéi Darussalam"}
BO{"Bolivie"}
BR{"Brésil"}
BS{"Bahamas"}
BT{"Bhoutan"}
- BV{"ÃŽle Bouvet"}
+ BV{"Bouvet, île"}
BW{"Botswana"}
BY{"Bélarus"}
BZ{"Belize"}
CA{"Canada"}
- CC{"ÃŽles Cocos"}
- CD{"République démocratique du Congo"}
- CF{"République centrafricaine"}
+ CC{"Cocos (Keeling), îles"}
CG{"Congo"}
CH{"Suisse"}
CI{"Côte d’Ivoire"}
- CK{"ÃŽles Cook"}
+ CK{"Cook, îles"}
CL{"Chili"}
CM{"Cameroun"}
CN{"Chine"}
@@ -94,14 +96,13 @@ fr{
CS{"Serbie-et-Monténégro"}
CU{"Cuba"}
CV{"Cap Vert"}
- CX{"ÃŽle Christmas"}
+ CX{"Christmas, île"}
CY{"Chypre"}
- CZ{"République tchèque"}
DE{"Allemagne"}
DJ{"Djibouti"}
DK{"Danemark"}
DM{"Dominique"}
- DO{"République dominicaine"}
+ DO{"Dominicaine, république"}
DZ{"Algérie"}
EC{"Équateur"}
EE{"Estonie"}
@@ -112,9 +113,9 @@ fr{
ET{"Éthiopie"}
FI{"Finlande"}
FJ{"Fidji"}
- FK{"ÃŽles Falkland (Malvinas)"}
- FM{"Micronésie"}
- FO{"Îles Féroé"}
+ FK{"Falkland, îles (Malvinas)"}
+ FM{"Micronésie, états fédérés de"}
+ FO{"Féroé, îles"}
FR{"France"}
GA{"Gabon"}
GB{"Royaume-Uni"}
@@ -129,13 +130,12 @@ fr{
GP{"Guadeloupe"}
GQ{"Guinée équatoriale"}
GR{"Grèce"}
- GS{"Géorgie du Sud, Îles Sandwich du Sud"}
+ GS{"Géorgie du Sud et les îles Sandwich du Sud"}
GT{"Guatemala"}
GU{"Guam"}
GW{"Guinée-Bissau"}
GY{"Guyana"}
- HK{"Hong-Kong R.A.S. de Chine"}
- HM{"ÃŽles Heard et MacDonald"}
+ HM{"Heard, île et McDonald, îles"}
HN{"Honduras"}
HR{"Croatie"}
HT{"Haïti"}
@@ -144,7 +144,6 @@ fr{
IE{"Irlande"}
IL{"Israël"}
IN{"Inde"}
- IO{"Territoire britannique de l’océan indien"}
IQ{"Iraq"}
IR{"Iran"}
IS{"Islande"}
@@ -157,11 +156,11 @@ fr{
KH{"Cambodge"}
KI{"Kiribati"}
KM{"Comores"}
- KN{"Saint Kitts et Nevis"}
+ KN{"Saint-Kitts-et-Nevis"}
KP{"Corée du Nord"}
KR{"Corée du Sud"}
KW{"Koweït"}
- KY{"Îles Caïmanes"}
+ KY{"Caïmanes, îles"}
KZ{"Kazakhstan"}
LA{"Laos"}
LB{"Liban"}
@@ -170,21 +169,20 @@ fr{
LK{"Sri Lanka"}
LR{"Libéria"}
LS{"Lesotho"}
- LT{"Lithuanie"}
+ LT{"Lituanie"}
LU{"Luxembourg"}
LV{"Lettonie"}
LY{"Libye"}
MA{"Maroc"}
MC{"Monaco"}
- MD{"Moldova"}
+ MD{"Moldavie"}
MG{"Madagascar"}
- MH{"ÃŽles Marshall"}
+ MH{"Marshall, îles"}
MK{"Macédoine"}
ML{"Mali"}
MM{"Myanmar"}
MN{"Mongolie"}
- MO{"Macao R.A.S. de Chine"}
- MP{"ÃŽles Mariannes du Nord"}
+ MP{"Mariannes du Nord, îles"}
MQ{"Martinique"}
MR{"Mauritanie"}
MS{"Montserrat"}
@@ -198,14 +196,14 @@ fr{
NA{"Namibie"}
NC{"Nouvelle-Calédonie"}
NE{"Niger"}
- NF{"ÃŽle Norfolk"}
+ NF{"Norfolk, île"}
NG{"Nigéria"}
NI{"Nicaragua"}
NL{"Pays-Bas"}
NO{"Norvège"}
NP{"Népal"}
NR{"Nauru"}
- NU{"Niué"}
+ NU{"Nioué"}
NZ{"Nouvelle-Zélande"}
OM{"Oman"}
PA{"Panama"}
@@ -228,7 +226,7 @@ fr{
RU{"Russie"}
RW{"Rwanda"}
SA{"Arabie saoudite"}
- SB{"ÃŽles Salomon"}
+ SB{"Salomon, îles"}
SC{"Seychelles"}
SD{"Soudan"}
SE{"Suède"}
@@ -246,7 +244,7 @@ fr{
SV{"El Salvador"}
SY{"Syrie"}
SZ{"Swaziland"}
- TC{"Îles Turks et Caïques"}
+ TC{"Turks et Caïques, îles"}
TD{"Tchad"}
TF{"Terres australes françaises"}
TG{"Togo"}
@@ -254,7 +252,7 @@ fr{
TJ{"Tadjikistan"}
TK{"Tokelau"}
TL{"Timor-Leste"}
- TM{"Turkmenistan"}
+ TM{"Turkménistan"}
TN{"Tunisie"}
TO{"Tonga"}
TR{"Turquie"}
@@ -270,12 +268,11 @@ fr{
UZ{"Ouzbékistan"}
VA{"Saint-Siège (Etat de la Cité du Vatican)"}
VC{"Saint-Vincent-et-les Grenadines"}
- VE{"Vénézuela"}
- VG{"ÃŽles Vierges Britanniques"}
+ VG{"ÃŽles Vierges britanniques"}
VI{"Îles Vierges des États-Unis"}
- VN{"Viet Nam"}
+ VN{"Viêt Nam"}
VU{"Vanuatu"}
- WF{"Wallis et Futuna"}
+ WF{"Wallis-et-Futuna"}
WS{"Samoa"}
YE{"Yémen"}
YT{"Mayotte"}
@@ -294,7 +291,7 @@ fr{
}
AFA{
"AFA",
- "afghani",
+ "afghani [AFA]",
}
AFN{
"Af",
@@ -302,7 +299,7 @@ fr{
}
ALL{
"lek",
- "lek albanais",
+ "lek",
}
AMD{
"dram",
@@ -310,7 +307,7 @@ fr{
}
ANG{
"ANG",
- "florin des Antilles néerl.",
+ "florin des Antilles",
}
AOA{
"AOA",
@@ -330,7 +327,7 @@ fr{
}
ARA{
"ARA",
- "austral",
+ "austral argentin",
}
ARP{
"ARP",
@@ -354,7 +351,7 @@ fr{
}
AZM{
"AZM",
- "Azerbaijanian Manat",
+ "manat azéri",
}
BAD{
"BAD",
@@ -362,7 +359,7 @@ fr{
}
BAM{
"KM",
- "mark convertible de Bosnie-Herzegovine",
+ "mark bosniaque convertible",
}
BBD{
"BBD",
@@ -390,11 +387,11 @@ fr{
}
BGN{
"BGN",
- "nouveau lef",
+ "nouveau lev",
}
BHD{
"BHD",
- "dinar de Bahrein",
+ "dinar de Bahreïn",
}
BIF{
"BIF",
@@ -418,7 +415,7 @@ fr{
}
BOV{
"BOV",
- "Bolivian Mvdol",
+ "mvdol",
}
BRB{
"BRB",
@@ -426,7 +423,7 @@ fr{
}
BRC{
"BRC",
- "cruzeiro",
+ "cruzado",
}
BRE{
"BRE",
@@ -454,7 +451,7 @@ fr{
}
BUK{
"BUK",
- "kyat",
+ "kyat [BUK]",
}
BWP{
"BWP",
@@ -470,7 +467,7 @@ fr{
}
BZD{
"BZD",
- "dollar de Bélize",
+ "dollar de Belize",
}
CAD{
"CAD",
@@ -480,13 +477,21 @@ fr{
"CDF",
"franc congolais",
}
+ CHE{
+ "CHE",
+ "euro WIR",
+ }
CHF{
"sFr.",
"franc suisse",
}
+ CHW{
+ "CHW",
+ "franc WIR",
+ }
CLF{
"CLF",
- "Chilean Unidades de Fomento",
+ "unité d’investissement chilienne",
}
CLP{
"CLP",
@@ -502,11 +507,15 @@ fr{
}
CRC{
"CRC",
- "colon",
+ "colon de Costa Rica",
+ }
+ CSD{
+ "CSD",
+ "dinar serbe",
}
CSK{
"CSK",
- "couronne tchèque",
+ "couronne tchèque [CSK]",
}
CUP{
"CUP",
@@ -568,6 +577,14 @@ fr{
"ERN",
"Eritrean Nakfa",
}
+ ESA{
+ "ESA",
+ "peseta espagnole (compte A)",
+ }
+ ESB{
+ "ESB",
+ "peseta espagnole (compte convertible)",
+ }
ESP{
"ESP",
"peseta espagnole",
@@ -642,7 +659,7 @@ fr{
}
GWE{
"GWE",
- "Escudo de Guinée Portugaise",
+ "escudo de Guinée portugaise",
}
GWP{
"GWP",
@@ -650,7 +667,7 @@ fr{
}
GYD{
"G$",
- "dollar de Guyane",
+ "dollar du Guyana",
}
HKD{
"HKD",
@@ -688,18 +705,10 @@ fr{
"ILP",
"livre israélienne",
}
- ILS{
- "ILS",
- "shékel",
- }
INR{
"=0#Rs.|1#Re.|1<Rs.",
"roupie indienne",
}
- IQD{
- "IQD",
- "dinar irakien",
- }
IRR{
"IRR",
"rial iranien",
@@ -730,7 +739,7 @@ fr{
}
KGS{
"som",
- "som du Kyrgystan",
+ "som",
}
KHR{
"KHR",
@@ -748,13 +757,9 @@ fr{
"KRW",
"won sud-coréen",
}
- KWD{
- "KWD",
- "dinar koweitien",
- }
KYD{
"KYD",
- "dollar des îles Caïmans",
+ "dollar des îles Caïmanes",
}
KZT{
"T",
@@ -778,20 +783,28 @@ fr{
}
LSL{
"M",
- "Lesotho Loti",
+ "loti",
}
LTL{
"LTL",
- "Lita de Lithuanian",
+ "litas lituanien",
}
LTT{
"LTT",
- "Talonas de Lithuanie",
+ "talonas",
+ }
+ LUC{
+ "LUC",
+ "franc luxembourgeois convertible",
}
LUF{
"LUF",
"franc luxembourgeois",
}
+ LUL{
+ "LUL",
+ "franc luxembourgeois financier",
+ }
LVL{
"LVL",
"lats letton",
@@ -802,7 +815,7 @@ fr{
}
LYD{
"LD",
- "dinar Iibyen",
+ "dinar lybien",
}
MAD{
"MAD",
@@ -818,7 +831,7 @@ fr{
}
MGA{
"MGA",
- "ariary malgache",
+ "ariary",
}
MGF{
"MGF",
@@ -826,7 +839,7 @@ fr{
}
MKD{
"MDen",
- "dinar macédonien",
+ "denar",
}
MLF{
"MLF",
@@ -858,7 +871,7 @@ fr{
}
MUR{
"MUR",
- "roupie de l’île Maurice",
+ "roupie mauricienne",
}
MVR{
"MVR",
@@ -866,7 +879,11 @@ fr{
}
MWK{
"MWK",
- "kwacha",
+ "kwacha [MWK]",
+ }
+ MXN{
+ "MXN",
+ "peso mexicain",
}
MXP{
"MXP",
@@ -890,7 +907,7 @@ fr{
}
NAD{
"N$",
- "dollar de Namibie",
+ "dollar namibien",
}
NGN{
"NGN",
@@ -930,7 +947,7 @@ fr{
}
PEI{
"PEI",
- "Inti péruvien",
+ "inti péruvien",
}
PEN{
"PEN",
@@ -952,6 +969,10 @@ fr{
"PKR",
"roupie du Pakistan",
}
+ PLN{
+ "PLN",
+ "zloty",
+ }
PLZ{
"PLZ",
"zloty (1950-1995)",
@@ -968,9 +989,17 @@ fr{
"QAR",
"rial du Qatar",
}
+ RHD{
+ "RHD",
+ "dollar rhodésien",
+ }
ROL{
"ROL",
- "leu",
+ "ancien leu roumain",
+ }
+ RON{
+ "RON",
+ "nouveau leu roumain",
}
RUB{
"RUB",
@@ -982,15 +1011,15 @@ fr{
}
RWF{
"RWF",
- "franc du Rwanda",
+ "franc rwandais",
}
SAR{
"SAR",
- "riyal séoudien",
+ "rial saoudien",
}
SBD{
"SBD",
- "dollar de Salomon",
+ "dollar des ÃŽles Salomon",
}
SCR{
"SCR",
@@ -1018,7 +1047,7 @@ fr{
}
SIT{
"SIT",
- "tolar slovène",
+ "tolar",
}
SKK{
"SKK",
@@ -1032,6 +1061,10 @@ fr{
"SOS",
"shilling de Somalie",
}
+ SRD{
+ "SRD",
+ "dollar surinamais",
+ }
SRG{
"SRG",
"florin du Surinam",
@@ -1046,7 +1079,7 @@ fr{
}
SVC{
"SVC",
- "colon",
+ "colon salvadorien",
}
SYP{
"SYP",
@@ -1088,6 +1121,10 @@ fr{
"TL",
"livre turque",
}
+ TRY{
+ "TRY",
+ "nouvelle livre turque",
+ }
TTD{
"TTD",
"dollar de la Trinité",
@@ -1160,13 +1197,17 @@ fr{
"XAF",
"franc CFA (BEAC)",
}
+ XAG{
+ "XAG",
+ "argent",
+ }
XAU{
"XAU",
- "Or",
+ "or",
}
XBA{
"XBA",
- "unité composite européenne",
+ "unité européenne composée",
}
XBB{
"XBB",
@@ -1182,7 +1223,11 @@ fr{
}
XCD{
"XCD",
- "dollar des Caraïbes",
+ "dollar des Caraïbes orientales",
+ }
+ XDR{
+ "XDR",
+ "droit de tirage spécial",
}
XEU{
"XEU",
@@ -1200,10 +1245,22 @@ fr{
"XOF",
"franc CFA (BCEAO)",
}
+ XPD{
+ "XPD",
+ "palladium",
+ }
XPF{
"XPF",
"franc CFP",
}
+ XPT{
+ "XPT",
+ "platine",
+ }
+ XRE{
+ "XRE",
+ "type de fonds RINET",
+ }
YDD{
"YDD",
"dinar du Yémen",
@@ -1249,7 +1306,7 @@ fr{
"dollar du Zimbabwe",
}
}
- ExemplarCharacters{"[a-zéèùçàâêîôûæœëïÿü]"}
+ ExemplarCharacters{"[a à â æ b c ç d e é è ê ë f-i î ï j-o ô œ p-u ù û ü v-y ÿ z]"}
Keys{
calendar{"Calendrier"}
collation{"Ordonnancement"}
@@ -1261,61 +1318,75 @@ fr{
ace{"aceh"}
ach{"acoli"}
ada{"adangme"}
- ady{"adygué"}
+ ady{"adyghéen"}
ae{"avestique"}
af{"afrikaans"}
- afa{"afro-asiatique (autre)"}
+ afa{"afro-asiatiques, autres langues"}
afh{"afrihili"}
+ ain{"aïnou"}
ak{"akan"}
akk{"akkadien"}
ale{"aléoute"}
- alg{"langues algiques"}
+ alg{"algonquines, langues"}
+ alt{"altaï du Sud"}
am{"amharique"}
an{"aragonais"}
- ang{"vieil anglais (ca.450-1100)"}
- apa{"langues apaches"}
+ ang{"anglo-saxon (vers 450-1100)"}
ar{"arabe"}
arc{"araméen"}
+ arn{"araukan"}
arp{"arapaho"}
- art{"artificielle (autre)"}
+ art{"artificielles, autres langues"}
+ arw{"arawak"}
as{"assamais"}
ast{"asturien"}
- ath{"langues athapascanes"}
- aus{"langues australiennes"}
av{"avar"}
+ awa{"awadhi"}
ay{"aymara"}
az{"azéri"}
ba{"bachkir"}
- bai{"langues bamilekes"}
+ bad{"banda"}
+ bai{"bamilékés, langues"}
bal{"baloutchi"}
- ban{"Balinais"}
+ ban{"balinais"}
bas{"bassa"}
- bat{"baltique (autre)"}
+ bat{"baltiques, autres langues"}
be{"biélorusse"}
+ bej{"bedja"}
+ bem{"bemba"}
ber{"berbère"}
bg{"bulgare"}
bh{"bihari"}
+ bho{"bhojpuri"}
bi{"bichlamar"}
+ bik{"bikol"}
+ bin{"bini"}
bla{"pieds-noirs"}
bm{"bambara"}
bn{"bengali"}
bnt{"bantou"}
bo{"tibétain"}
br{"breton"}
+ bra{"braj"}
bs{"bosniaque"}
+ btk{"batak"}
+ bug{"bugi"}
byn{"blin"}
ca{"catalan"}
- cai{"indien d’Amérique Centrale (autre)"}
+ cad{"caddo"}
+ cai{"indiennes d'Amérique centrale, autres langues"}
car{"caribe"}
- cau{"langue caucasienne (autre)"}
+ cau{"caucasiennes, autres langues"}
ce{"tchétchène"}
ceb{"cebuano"}
- cel{"langue celtique (autre)"}
+ cel{"celtiques, autres langues"}
ch{"chamorro"}
chb{"chibcha"}
chg{"jagataic"}
chk{"chuuk"}
+ chm{"mari"}
chn{"jargon chinook"}
+ cho{"choctaw"}
chr{"cherokee"}
chy{"cheyenne"}
cmc{"langues chames"}
@@ -1330,20 +1401,29 @@ fr{
cs{"tchèque"}
csb{"cashubian"}
cu{"slavon d’église"}
- cus{"couchitiques (autre)"}
+ cus{"couchitiques, autres langues"}
cv{"tchouvache"}
cy{"gallois"}
da{"danois"}
+ dak{"dakota"}
+ dar{"dargwa"}
+ day{"dayak"}
de{"allemand"}
+ del{"delaware"}
den{"slave (athapascan)"}
+ dgr{"dogrib"}
+ din{"dinka"}
doi{"dogra"}
- dra{"langue dravidienne (autre)"}
+ dra{"dravidiennes, autres langues"}
dsb{"bas-sorabe"}
- dum{"néerlandais moyen (ca. 1050-1350)"}
+ dua{"douala"}
+ dum{"néerlandais moyen (vers 1050-1350)"}
dv{"maldivien"}
dz{"dzongkha"}
ee{"éwé"}
+ efi{"efik"}
egy{"égyptien (ancien)"}
+ eka{"ekajuk"}
el{"grec"}
elx{"élamite"}
en{"anglais"}
@@ -1353,41 +1433,58 @@ fr{
et{"estonien"}
eu{"basque"}
fa{"persan"}
+ fan{"fang"}
+ fat{"fanti"}
ff{"peul"}
fi{"finnois"}
- fiu{"langue finno-ougrienne (autre)"}
+ fil{"filipino"}
+ fiu{"finno-ougriennes, autres langues"}
fj{"fidjien"}
fo{"féroïen"}
fr{"français"}
frm{"français moyen (ca.1400-1600)"}
- fro{"vieux français (842-ca.1400)"}
+ fro{"français ancien (842-vers 1400)"}
fur{"frioulan"}
fy{"frison"}
ga{"irlandais"}
+ gaa{"ga"}
+ gay{"gayo"}
+ gba{"gbaya"}
gd{"gaélique écossais"}
- gem{"germanique (autre)"}
+ gem{"germaniques, autres langues"}
gez{"guèze"}
gil{"gilbertais"}
gl{"galicien"}
- gmh{"allemand, moyen haut (ca. 1050-1500)"}
+ gmh{"allemand, moyen haut (vers 1050-1500)"}
gn{"guarani"}
goh{"allemand, vieux haut (ca. 750-1050)"}
+ gon{"gondi"}
+ gor{"gorontalo"}
got{"gotique"}
- grc{"vieux grec (avant 1453)"}
+ grb{"grebo"}
+ grc{"grec ancien (jusqu'à 1453)"}
gu{"goudjrati"}
gv{"manx"}
+ gwi{"gwichʼin"}
ha{"haoussa"}
+ hai{"haida"}
haw{"hawaïen"}
he{"hébreu"}
hi{"hindi"}
+ hil{"hiligaynon"}
+ him{"himachali"}
+ hit{"hittite"}
+ hmn{"hmong"}
ho{"hiri motu"}
hr{"croate"}
hsb{"haut-sorabe"}
ht{"haïtien"}
hu{"hongrois"}
+ hup{"hupa"}
hy{"arménien"}
hz{"héréro"}
ia{"interlingua"}
+ iba{"iban"}
id{"indonésien"}
ie{"interlingue"}
ig{"igbo"}
@@ -1403,13 +1500,19 @@ fr{
it{"italien"}
iu{"inuktitut"}
ja{"japonais"}
+ jbo{"lojban"}
jpr{"judéo-persan"}
jrb{"judéo-arabe"}
jv{"javanais"}
ka{"géorgien"}
kab{"kabyle"}
+ kac{"kachin"}
+ kam{"kamba"}
+ kar{"karen"}
+ kaw{"kawi"}
kbd{"kabardine"}
kg{"kongo"}
+ kha{"khasi"}
khi{"khoisan (autre)"}
kho{"khotanais"}
ki{"kikuyu"}
@@ -1424,33 +1527,48 @@ fr{
kos{"kusaien"}
kpe{"kpellé"}
kr{"kanouri"}
+ kru{"kurukh"}
ks{"kashmiri"}
ku{"kurde"}
kum{"koumyk"}
+ kut{"kutenai"}
kv{"komi"}
kw{"cornique"}
ky{"kirghize"}
la{"latin"}
lad{"ladino"}
+ lah{"lahnda"}
+ lam{"lamba"}
lb{"luxembourgeois"}
lez{"lezghien"}
lg{"ganda"}
li{"limbourgeois"}
ln{"lingala"}
lo{"lao"}
+ lol{"mongo"}
+ loz{"lozi"}
lt{"lituanien"}
lu{"luba-katanga"}
+ lua{"luba-lulua"}
+ lui{"luiseno"}
+ lun{"lunda"}
+ lus{"lushai"}
lv{"letton"}
mad{"madurais"}
- man{"meninka"}
+ mag{"magahi"}
+ mai{"maithili"}
+ man{"mandingue"}
map{"malayo-polynésien"}
mas{"masai"}
+ mdf{"moksa"}
+ mdr{"mandar"}
men{"mendé"}
mg{"malgache"}
mga{"irlandais moyen (900-1200)"}
mh{"marshall"}
mi{"maori"}
mic{"micmac"}
+ min{"minangkabau"}
mis{"langues diverses"}
mk{"macédonien"}
mkh{"mon-khmer (autre)"}
@@ -1467,16 +1585,21 @@ fr{
mul{"langues multiples"}
mun{"langues mounda"}
mus{"creek"}
+ mwl{"mirandais"}
my{"birman"}
- myn{"langues maya"}
+ myn{"maya, langues"}
+ myv{"erzya"}
na{"nauruan"}
- nai{"indiennes d’Amérique du Nord (autre)"}
+ nah{"nahuatl"}
+ nai{"indiennes d'Amérique du nord, autres langues"}
nap{"napolitain"}
nb{"bokmål norvégien"}
nd{"ndébélé du Nord"}
nds{"bas allemand, bas saxon"}
ne{"népalais"}
+ new{"newari"}
ng{"ndonga"}
+ nia{"nias"}
nic{"nigéro-congolaise (autre)"}
niu{"niué"}
nl{"néerlandais"}
@@ -1485,21 +1608,27 @@ fr{
nog{"nogaï, nogay"}
non{"vieux norrois"}
nr{"ndébélé du Sud"}
- nso{"sotho du Sud "}
nub{"langues nubiennes"}
nv{"navaho"}
+ nwc{"newari classique"}
ny{"nyanja"}
+ nym{"nyamwezi"}
+ nyn{"nyankolé"}
+ nyo{"nyoro"}
nzi{"nzema"}
oc{"occitan (après 1500)"}
oj{"ojibwa"}
om{"galla"}
or{"oriya"}
os{"ossète"}
+ osa{"osage"}
ota{"turc ottoman (1500-1928)"}
oto{"langues otomangues"}
pa{"pendjabi"}
paa{"papoues (autre)"}
pag{"pangasinan"}
+ pal{"pahlavi"}
+ pap{"papiamento"}
pau{"palau"}
peo{"vieux perser (ca. 600-400 av. J.-C.)"}
phi{"philippines (autre)"}
@@ -1513,25 +1642,32 @@ fr{
pt{"portugais"}
qu{"quechua"}
raj{"rajasthani"}
+ rap{"rapanui"}
rar{"Rarotonga"}
rm{"rhéto-roman"}
rn{"roundi"}
ro{"roumain"}
- roa{"romanes (autre)"}
+ roa{"romanes, autres langues"}
rom{"tzigane"}
root{"racine"}
ru{"russe"}
+ rup{"aroumain ; macédo-roumain"}
rw{"rwanda"}
sa{"sanskrit"}
- sai{"indiennes d’Amérique du Sud (autre)"}
+ sad{"sandawe"}
+ sah{"iakoute"}
+ sai{"indiennes d'Amérique du Sud, autres langues"}
sal{"langues salisha"}
sam{"samaritain"}
+ sas{"sasak"}
sat{"santal"}
sc{"sarde"}
+ scn{"sicilien"}
sco{"écossais"}
sd{"sindhi"}
se{"sami du Nord"}
- sem{"sémitiques (autre)"}
+ sel{"selkoupe"}
+ sem{"sémitiques, autres langues"}
sg{"sango"}
sga{"irlandais ancien (jusqu’à 900)"}
sgn{"langues des signes"}
@@ -1539,12 +1675,12 @@ fr{
shn{"chan"}
si{"singhalais"}
sid{"sidamo"}
- sio{"langues sioux"}
- sit{"sino-tibétaines (autre)"}
+ sit{"sino-tibétaines, autres langues"}
sk{"slovaque"}
sl{"slovène"}
- sla{"slaves (autre)"}
+ sla{"slaves, autres langues"}
sm{"samoan"}
+ sma{"sami du Sud"}
smi{"sami (autre)"}
smj{"sami de Lule"}
smn{"sami d’Inari"}
@@ -1553,6 +1689,7 @@ fr{
snk{"soninké"}
so{"somali"}
sog{"sogdien"}
+ son{"songhai"}
sq{"albanais"}
sr{"serbe"}
srr{"sérère"}
@@ -1560,29 +1697,38 @@ fr{
ssa{"nilo-sahariennes (autre)"}
st{"sotho du Sud"}
su{"soundanais"}
+ suk{"sukuma"}
sus{"soussou"}
sux{"sumérien"}
sv{"suédois"}
sw{"swahili"}
syr{"syriaque"}
ta{"tamoul"}
- tai{"thaï (autre)"}
+ tai{"thaïes, autres langues"}
te{"télougou"}
tem{"temne"}
+ ter{"tereno"}
+ tet{"tetum"}
tg{"tadjik"}
th{"thaï"}
ti{"tigrigna"}
tig{"tigré"}
tk{"turkmène"}
tl{"tagalog"}
+ tlh{"klingon"}
+ tli{"tlingit"}
tmh{"tamacheq"}
tn{"setswana"}
to{"tongan (ÃŽles Tonga)"}
+ tog{"tonga (Nyasa)"}
+ tpi{"tok pisin"}
tr{"turc"}
ts{"tsonga"}
+ tsi{"tsimshian"}
tt{"tatar"}
+ tum{"tumbuka"}
tup{"langues tupi"}
- tut{"altaïques (autre)"}
+ tut{"altaïques, autres langues"}
tw{"twi"}
ty{"tahitien"}
tyv{"touva"}
@@ -1590,7 +1736,8 @@ fr{
ug{"ouïgour"}
uga{"ougaritique"}
uk{"ukrainien"}
- und{"indéterminée"}
+ umb{"umbundu"}
+ und{"indéterminé"}
ur{"ourdou"}
uz{"ouzbek"}
vai{"vaï"}
@@ -1600,16 +1747,23 @@ fr{
vot{"vote"}
wa{"wallon"}
wak{"langues wakashennes"}
+ wal{"walamo"}
+ war{"waray"}
+ was{"washo"}
wen{"langues sorabes"}
wo{"wolof"}
+ xal{"kalmouk"}
xh{"xhosa"}
+ yap{"yapois"}
yi{"yiddish"}
yo{"yoruba"}
ypk{"langues yupik"}
za{"zhuang"}
zap{"zapotèque"}
+ zen{"zenaga"}
zh{"chinois"}
zu{"zoulou"}
+ zun{"zuni"}
}
LocaleScript{
"Latn",
@@ -1625,50 +1779,60 @@ fr{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
Scripts{
Arab{"arabe"}
Armn{"arménien"}
Beng{"bengâglî"}
+ Blis{"symboles Bliss"}
Bopo{"bopomofo"}
Brai{"braille"}
Buhd{"bouhide"}
Cans{"syllabaire autochthone canadien unifié"}
Cher{"tchérokî"}
Copt{"copte"}
- Cprt{"chypriote"}
+ Cprt{"syllabaire chypriote"}
Cyrl{"cyrillique"}
+ Cyrs{"cyrillique (variante slavonne)"}
Deva{"dévanâgarî"}
Dsrt{"déséret"}
+ Egyd{"démotique égyptien"}
+ Egyh{"hiératique égyptien"}
+ Egyp{"hiéroglyphes égyptiens"}
Ethi{"éthiopique"}
Geor{"géorgien"}
+ Glag{"glagolitique"}
Goth{"gotique"}
Grek{"grec"}
Gujr{"goudjarâtî"}
Guru{"gourmoukhî"}
Hang{"hangûl"}
- Hani{"han"}
+ Hani{"idéogrammes han"}
Hano{"hanounóo"}
- Hans{"han simplifié"}
- Hant{"han traditionnel"}
+ Hans{"idéogrammes han (variante simplifiée)"}
+ Hant{"idéogrammes han (variante traditionnelle)"}
Hebr{"hébreu"}
Hira{"hiragana"}
+ Hrkt{"katakana ou hiragana"}
Ital{"ancien italique"}
Kana{"katakana"}
Khmr{"khmer"}
Knda{"kannara"}
- Laoo{"laotien"}
+ Latf{"latin (variante brisée)"}
+ Latg{"latin (variante gaélique)"}
Latn{"latin"}
Limb{"limbou"}
+ Lina{"linéaire A"}
Linb{"linéaire B"}
+ Maya{"hiéroglyphes mayas"}
Mlym{"malayâlam"}
Mong{"mongol"}
Mymr{"birman"}
@@ -1689,6 +1853,8 @@ fr{
Thai{"thaï"}
Tibt{"tibétain"}
Ugar{"ougaritique"}
+ Xpeo{"cunéiforme persépolitain"}
+ Xsux{"cunéiforme suméro-akkadien"}
Yiii{"yi"}
}
Types{
@@ -1702,7 +1868,9 @@ fr{
japanese{"Calendrier japonais"}
}
collation{
+ big5han{"chinois traditionnel (Big5)"}
direct{"Ordre direct"}
+ gb2312han{"chinois simplifié (GB2312)"}
phonebook{"Ordre de l’annuaire"}
pinyin{"Ordre pinyin"}
stroke{"Ordre des traits"}
@@ -1710,15 +1878,16 @@ fr{
}
}
Variants{
- REVISED{"Révisé"}
+ 1901{"orthographe allemande traditionnelle"}
+ 1996{"orthographe allemande de 1996"}
+ NEDIS{"dialecte de Natisone"}
+ POLYTONI{"polytonique"}
+ REVISED{"orthographe révisée"}
+ ROZAJ{"dialecte de Resia"}
}
- Version{"1.61"}
+ Version{"1.84"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"HH' h 'mm z",
"HH:mm:ss z",
@@ -1821,11 +1990,26 @@ fr{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "1er trimestre",
+ "2e trimestre",
+ "3e trimestre",
+ "4e trimestre",
+ }
+ }
+ }
}
hebrew{
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/hebrew/monthNames/format/wide"}
wide{
"Tisseri",
"Hesvan",
@@ -1847,7 +2031,6 @@ fr{
islamic{
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
"Mouharram",
"Safar",
@@ -1865,7 +2048,6 @@ fr{
}
}
}
- islamic-civil:alias{"/LOCALE/calendar/islamic"}
}
delimiters{
alternateQuotationEnd{"â€"}
@@ -1874,188 +2056,254 @@ fr{
quotationStart{"«"}
}
localPatternChars{"GaMjkHmsSEDFwWxhKzAeugXZvcL"}
+ measurementSystemNames{
+ US{"américain"}
+ metric{"métrique"}
+ }
zoneStrings{
- {
- "America/Vancouver",
- "Heure normale du Pacifique",
- "HNP",
- "Heure avancée du Pacifique",
- "HAP",
- "Vancouver",
- "Heure du Pacifique",
- "HP",
- }
- {
- "America/Edmonton",
- "Heure normale des Rocheuses",
- "HNR",
- "Heure avancée des Rocheuses",
- "HAR",
- "Edmonton",
- "Heure des Rocheuses",
- "HR",
- }
- {
- "America/Winnipeg",
- "Heure normale du Centre",
- "HNC",
- "Heure avancée du Centre",
- "HAC",
- "Winnipeg",
- "Heure du Centre",
- "HC",
- }
- {
- "America/Montreal",
- "Heure normale de l’Est",
- "HNE",
- "Heure avancée de l’Est",
- "HAE",
- "Montréal",
- "Heure de l’Est",
- "HE",
- }
- {
- "America/Halifax",
- "Heure normale de l’Atlantique",
- "HNA",
- "Heure avancée de l’Atlantique",
- "HAA",
- "Halifax",
- "Heure de l’Atlantique",
- "HA",
- }
- {
- "America/St_Johns",
- "Heure normale de Terre-Neuve",
- "HNT",
- "Heure avancée de Terre-Neuve",
- "HAT",
- "Saint-Jean de Terre-Neuve",
- "Heure de Terre-Neuve",
- "HT",
- }
- {
- "Asia/Shanghai",
- "Heure normale de Chine",
- "HNC",
- "Heure avancée de Chine",
- "HAC",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Heure normale de l’Europe centrale",
- "HNEC",
- "Heure avancée de l’Europe centrale",
- "HAEC",
- "Paris",
- "Heure de l’Europe centrale",
- "HEC",
- }
- {
- "Asia/Jerusalem",
- "Heure normale d’Israël",
- "HNI",
- "Heure avancée d’Israël",
- "HAI",
- "Jérusalem",
- }
- {
- "Asia/Tokyo",
- "Heure normale du Japon",
- "HNJ",
- "Heure avancée du Japon",
- "HAJ",
- "Tokyo",
- }
- {
- "Europe/Bucharest",
- "Heure normale de l’Europe de l’Est",
- "HEE",
- "Heure avancée de l’Europe de l’Est",
- "HAEE",
- "Bucarest",
- }
- {
- "Pacific/Honolulu",
- "Heure normale d’Hawaï",
- "HST",
- "Heure avancée d’Hawaï",
- "HDT",
- "Honolulu",
- "Heure d’Hawaï",
- "HT",
- }
- {
- "America/Anchorage",
- "Heure normale de l’Alaska",
- "HNAK",
- "Heure avancée de l’Alaska",
- "HAAK",
- "Anchorage",
- "Heure de l’Alaska",
- "HAK",
- }
- {
- "America/Los_Angeles",
- "Heure normale du Pacifique (ÉUA)",
- "HNP (ÉUA)",
- "Heure avancée du Pacifique (ÉUA)",
- "HAP (ÉUA)",
- "Los Angeles",
- "Heure du Pacifique (ÉUA)",
- "HP (ÉUA)",
- }
- {
- "America/Phoenix",
- "Heure normale des Rocheuses (ÉUA)",
- "HNR (ÉUA)",
- "Heure avancée des Rocheuses (ÉUA)",
- "HAR (ÉUA)",
- "Phoenix",
- "Heure des Rocheuses (ÉUA)",
- "HR (ÉUA)",
- }
- {
- "America/Denver",
- "Heure normale des Rocheuses (ÉUA)",
- "HNR (ÉUA)",
- "Heure avancée des Rocheuses (ÉUA)",
- "HAR (ÉUA)",
- "Denver",
- "Heure des Rocheuses (ÉUA)",
- "HR (ÉUA)",
- }
- {
- "America/Chicago",
- "Heure normale du Centre (ÉUA)",
- "HNC (ÉUA)",
- "Heure avancée du Centre (ÉUA)",
- "HAC (ÉUA)",
- "Chicago",
- "Heure du Centre (ÉUA)",
- "HC (ÉUA)",
- }
- {
- "America/Indianapolis",
- "Heure normale de l’Est (ÉUA)",
- "HNE (ÉUA)",
- "Heure avancée de l’Est (ÉUA)",
- "HAE (ÉUA)",
- "Indianapolis",
- "Heure de l’Est (ÉUA)",
- "HE (ÉUA)",
- }
- {
- "America/New_York",
- "Heure normale de l’Est (ÉUA)",
- "HNE (ÉUA)",
- "Heure avancée de l’Est (ÉUA)",
- "HAE (ÉUA)",
- "New York",
- "Heure de l’Est (ÉUA)",
- "HE (ÉUA)",
+ "Africa:Timbuktu"{
+ ec{"Tombouctou"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Heure avancée de l’Alaska"}
+ lg{"Heure de l’Alaska"}
+ ls{"Heure normale de l’Alaska"}
+ sd{"HAAK"}
+ sg{"HAK"}
+ ss{"HNAK"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comodoro Rivadavia"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Heure avancée du Centre (ÉUA)"}
+ lg{"Heure du Centre (ÉUA)"}
+ ls{"Heure normale du Centre (ÉUA)"}
+ sd{"HAC (ÉUA)"}
+ sg{"HC (ÉUA)"}
+ ss{"HNC (ÉUA)"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Heure avancée des Rocheuses (ÉUA)"}
+ lg{"Heure des Rocheuses (ÉUA)"}
+ ls{"Heure normale des Rocheuses (ÉUA)"}
+ sd{"HAR (ÉUA)"}
+ sg{"HR (ÉUA)"}
+ ss{"HNR (ÉUA)"}
+ }
+ "America:Detroit"{
+ ec{"Détroit"}
+ }
+ "America:Edmonton"{
+ ec{"Edmonton"}
+ ld{"Heure avancée des Rocheuses"}
+ lg{"Heure des Rocheuses"}
+ ls{"Heure normale des Rocheuses"}
+ sd{"HAR"}
+ sg{"HR"}
+ ss{"HNR"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Heure avancée de l’Atlantique"}
+ lg{"Heure de l’Atlantique"}
+ ls{"Heure normale de l’Atlantique"}
+ sd{"HAA"}
+ sg{"HA"}
+ ss{"HNA"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Heure avancée du Pacifique (ÉUA)"}
+ lg{"Heure du Pacifique (ÉUA)"}
+ ls{"Heure normale du Pacifique (ÉUA)"}
+ sd{"HAP (ÉUA)"}
+ sg{"HP (ÉUA)"}
+ ss{"HNP (ÉUA)"}
+ }
+ "America:Manaus"{
+ ec{"Manaos"}
+ }
+ "America:Mexico_City"{
+ ec{"Mexico"}
+ }
+ "America:Montreal"{
+ ec{"Montréal"}
+ ld{"Heure avancée de l’Est"}
+ lg{"Heure de l’Est"}
+ ls{"Heure normale de l’Est"}
+ sd{"HAE"}
+ sg{"HE"}
+ ss{"HNE"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Heure avancée de l’Est (ÉUA)"}
+ lg{"Heure de l’Est (ÉUA)"}
+ ls{"Heure normale de l’Est (ÉUA)"}
+ sd{"HAE (ÉUA)"}
+ sg{"HE (ÉUA)"}
+ ss{"HNE (ÉUA)"}
+ }
+ "America:St_Johns"{
+ ec{"Saint-Jean de Terre-Neuve"}
+ ld{"Heure avancée de Terre-Neuve"}
+ lg{"Heure de Terre-Neuve"}
+ ls{"Heure normale de Terre-Neuve"}
+ sd{"HAT"}
+ sg{"HT"}
+ ss{"HNT"}
+ }
+ "America:Vancouver"{
+ ec{"Vancouver"}
+ ld{"Heure avancée du Pacifique"}
+ lg{"Heure du Pacifique"}
+ ls{"Heure normale du Pacifique"}
+ sd{"HAP"}
+ sg{"HP"}
+ ss{"HNP"}
+ }
+ "America:Winnipeg"{
+ ec{"Winnipeg"}
+ ld{"Heure avancée du Centre"}
+ lg{"Heure du Centre"}
+ ls{"Heure normale du Centre"}
+ sg{"HC"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"Mac Murdo"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Pôle Sud"}
+ }
+ "Asia:Almaty"{
+ ec{"Alma Ata"}
+ }
+ "Asia:Aqtau"{
+ ec{"Chevtchenko"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Aktioubinsk"}
+ }
+ "Asia:Choibalsan"{
+ ec{"Tchoïbalsan"}
+ }
+ "Asia:Irkutsk"{
+ ec{"Irkoutsk"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jérusalem"}
+ ld{"Heure avancée d’Israël"}
+ ls{"Heure normale d’Israël"}
+ sd{"HAI"}
+ ss{"HNI"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamtchatka"}
+ }
+ "Asia:Kashgar"{
+ ec{"Kachgar"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnoïarsk"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"Novossibirsk"}
+ }
+ "Asia:Oral"{
+ ec{"Ouralsk"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Kzyl Orda"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sakhaline"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Heure avancée de Chine"}
+ ls{"Heure normale de Chine"}
+ sd{"HAC"}
+ ss{"HNC"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Heure avancée du Japon"}
+ ls{"Heure normale du Japon"}
+ sd{"HAJ"}
+ ss{"HNJ"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Oulan-Bator"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Iakoutsk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Ekaterinbourg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Açores"}
+ }
+ "Atlantic:Canary"{
+ ec{"ÃŽles Canaries"}
+ }
+ "Atlantic:Madeira"{
+ ec{"Madère"}
+ }
+ "Australia:Adelaide"{
+ ec{"Adélaïde"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucarest"}
+ ld{"Heure avancée de l’Europe de l’Est"}
+ ls{"Heure normale de l’Europe de l’Est"}
+ sd{"HAEE"}
+ ss{"HEE"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisbonne"}
+ }
+ "Europe:London"{
+ ec{"Londres"}
+ }
+ "Europe:Moscow"{
+ ec{"Moscou"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Heure avancée de l’Europe centrale"}
+ lg{"Heure de l’Europe centrale"}
+ ls{"Heure normale de l’Europe centrale"}
+ sd{"HAEC"}
+ sg{"HEC"}
+ ss{"HNEC"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Oujgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporojie"}
+ }
+ "Pacific:Easter"{
+ ec{"Île de Pâques"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Heure avancée d’Hawaï"}
+ lg{"Heure d’Hawaï"}
+ ls{"Heure normale d’Hawaï"}
+ sd{"HDT"}
+ ss{"HST"}
+ }
+ "Pacific:Marquesas"{
+ ec{"Marquises"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fr_BE.txt b/Build/source/libs/icu-xetex/data/locales/fr_BE.txt
index 84226a0e1b9..975b7fb210c 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr_BE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr_BE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr_BE.xml
+// * Source File:<path>/common/main/fr_BE.xml
// *
// ***************************************************************************
fr_BE{
@@ -18,12 +18,16 @@ fr_BE{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.27"}
+ Version{"1.41"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"H' h 'mm' min 'ss' s 'z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/fr_CA.txt b/Build/source/libs/icu-xetex/data/locales/fr_CA.txt
index 2edf66e2546..9bbc87f24b7 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr_CA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr_CA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr_CA.xml
+// * Source File:<path>/common/main/fr_CA.xml
// *
// ***************************************************************************
fr_CA{
@@ -20,10 +20,10 @@ fr_CA{
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤;(#,##0.00¤)",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
- Version{"1.28"}
+ Version{"1.43"}
calendar{
gregorian{
DateTimeElements:intvector{
diff --git a/Build/source/libs/icu-xetex/data/locales/fr_CH.txt b/Build/source/libs/icu-xetex/data/locales/fr_CH.txt
index 2af4417e2df..1962eff1c8c 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr_CH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr_CH.xml
+// * Source File:<path>/common/main/fr_CH.xml
// *
// ***************************************************************************
fr_CH{
@@ -18,18 +18,22 @@ fr_CH{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
"#,##0.###",
"¤ #,##0.00;¤-#,##0.00",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
- Version{"1.27"}
+ Version{"1.41"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"HH.mm:ss' h' z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/fr_FR.txt b/Build/source/libs/icu-xetex/data/locales/fr_FR.txt
index e13ad595c97..84f4816db67 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr_FR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr_FR.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr_FR.xml
+// * Source File:<path>/common/main/fr_FR.xml
// *
// ***************************************************************************
fr_FR{
- Version{"1.25"}
+ Version{"1.36"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/fr_LU.txt b/Build/source/libs/icu-xetex/data/locales/fr_LU.txt
index 6ecf638e4ba..86e9fd8fdf2 100644
--- a/Build/source/libs/icu-xetex/data/locales/fr_LU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/fr_LU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/fr_LU.xml
+// * Source File:<path>/common/main/fr_LU.xml
// *
// ***************************************************************************
fr_LU{
@@ -28,8 +28,16 @@ fr_LU{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.28"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ga.txt b/Build/source/libs/icu-xetex/data/locales/ga.txt
index 6c3c517c6b3..32190adcd17 100644
--- a/Build/source/libs/icu-xetex/data/locales/ga.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ga.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ga.xml
+// * Source File:<path>/common/main/ga.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ga.xml
+ * ICU <specials> source: <path>/xml/main/ga.xml
*/
ga{
+ AuxExemplarCharacters{"[ḃ ċ ḋ ḟ ġ Ṡṗ ṡ ṫ]"}
Countries{
AD{"Andóra"}
AE{"Aontas na nÉimíríochtaí Arabacha"}
@@ -1222,7 +1223,7 @@ ga{
"Dollar Siombábach",
}
}
- ExemplarCharacters{"[a-z á é í ó ú]"}
+ ExemplarCharacters{"[a á b-e é f-i í j-o ó p-u ú v-z]"}
Languages{
aa{"Afar"}
ab{"Abcáisis"}
@@ -1348,13 +1349,24 @@ ga{
LocaleScript{
"Latn",
}
- Version{"1.36"}
+ Version{"1.51"}
calendar{
gregorian{
AmPmMarkers{
"a.m.",
"p.m.",
}
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
dayNames{
format{
abbreviated{
@@ -1414,34 +1426,63 @@ ga{
"Nollaig",
}
}
+ stand-alone{
+ narrow{
+ "E",
+ "F",
+ "M",
+ "A",
+ "B",
+ "M",
+ "I",
+ "L",
+ "M",
+ "D",
+ "S",
+ "N",
+ }
+ }
+ }
+ quarters{
+ format{
+ abbreviated{
+ "R1",
+ "R2",
+ "R3",
+ "R4",
+ }
+ wide{
+ "1ú ráithe",
+ "2ú ráithe",
+ "3ú ráithe",
+ "4ú ráithe",
+ }
+ }
}
}
}
localPatternChars{"RbMLkUnsSElFtTauKcBeyrACvdz"}
zoneStrings{
- {
- "Europe/Belfast",
- "Meán-Am Greenwich",
- "MAG",
- "Am Samhraidh na Breataine",
- "ASB",
- "Béal Feirste",
- }
- {
- "Europe/London",
- "Meán-Am Greenwich",
- "MAG",
- "Am Samhraidh na Breataine",
- "ASB",
- "Londain",
- }
- {
- "Europe/Dublin",
- "Meán-Am Greenwich",
- "MAG",
- "Am Samhraidh na hÉireann",
- "ASÉ",
- "Baile Ãtha Cliath",
+ "Europe:Belfast"{
+ ec{"Béal Feirste"}
+ ld{"Am Samhraidh na Breataine"}
+ ls{"Meán-Am Greenwich"}
+ sd{"ASB"}
+ ss{"MAG"}
+ }
+ "Europe:Dublin"{
+ ec{"Baile Ãtha Cliath"}
+ ld{"Am Samhraidh na hÉireann"}
+ ls{"Meán-Am Greenwich"}
+ sd{"ASÉ"}
+ ss{"MAG"}
+ }
+ "Europe:London"{
+ ec{"Londain"}
+ ld{"Am Samhraidh na Breataine"}
+ ls{"Meán-Am Greenwich"}
+ sd{"ASB"}
+ ss{"MAG"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ga_IE.txt b/Build/source/libs/icu-xetex/data/locales/ga_IE.txt
index 3a3dcb2bbed..eb39c5ac245 100644
--- a/Build/source/libs/icu-xetex/data/locales/ga_IE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ga_IE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ga_IE.xml
+// * Source File:<path>/common/main/ga_IE.xml
// *
// ***************************************************************************
ga_IE{
@@ -19,9 +19,13 @@ ga_IE{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/gl.txt b/Build/source/libs/icu-xetex/data/locales/gl.txt
index a3edb5e15c4..b2ea186274d 100644
--- a/Build/source/libs/icu-xetex/data/locales/gl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gl.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gl.xml
+// * Source File:<path>/common/main/gl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/gl.xml
+ * ICU <specials> source: <path>/xml/main/gl.xml
*/
gl{
Countries{
@@ -24,7 +24,7 @@ gl{
}
}
}
- ExemplarCharacters{"[a-záéíóúüñ]"}
+ ExemplarCharacters{"[a á b-e é f-i í j-n ñ o ó p-u ú ü v-z]"}
Languages{
gl{"galego"}
}
@@ -42,10 +42,10 @@ gl{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.23"}
+ Version{"1.39"}
calendar{
gregorian{
dayNames{
@@ -102,6 +102,22 @@ gl{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "1er trimestre",
+ "2on trimestre",
+ "3er trimestre",
+ "4rt trimestre",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/gl_ES.txt b/Build/source/libs/icu-xetex/data/locales/gl_ES.txt
index 55fedcd20df..2e94fab5a29 100644
--- a/Build/source/libs/icu-xetex/data/locales/gl_ES.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gl_ES.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gl_ES.xml
+// * Source File:<path>/common/main/gl_ES.xml
// *
// ***************************************************************************
gl_ES{
@@ -13,13 +13,9 @@ gl_ES{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.40"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/gu.txt b/Build/source/libs/icu-xetex/data/locales/gu.txt
index 43df6fda456..1c68d7226b2 100644
--- a/Build/source/libs/icu-xetex/data/locales/gu.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gu.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gu.xml
+// * Source File:<path>/common/main/gu.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/gu.xml
+ * ICU <specials> source: <path>/xml/main/gu.xml
*/
gu{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
CN{"ચીન"}
DE{"જમિની"}
@@ -28,7 +29,7 @@ gu{
"INR",
}
}
- ExemplarCharacters{"[àª-ઃઅ-àªàª-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-à«à«à« -ૣ૦-૯૱‌â€]"}
+ ExemplarCharacters{"[૦-૯ ૠઅ-ઋ à«  ઠàª-ઑ ઓ-ન પ-ર લ ળ વ-હ ઼ àª-ઃ ઽ ૠા-à«… ે-ૉ à«‹ à«Œ]"}
Languages{
gu{"ગà«àªœàª°àª¾àª¤à«€"}
}
@@ -46,10 +47,10 @@ gu{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.27"}
+ Version{"1.44"}
calendar{
gregorian{
AmPmMarkers{
@@ -110,6 +111,16 @@ gu{
}
}
}
+ quarters{
+ format{
+ wide{
+ "પેહલા હંત 1",
+ "ડૂસઋા હંત 2",
+ "તીસઋા હંત 3",
+ "ચૌતા હંત 4",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/gu_IN.txt b/Build/source/libs/icu-xetex/data/locales/gu_IN.txt
index 1d0bd647203..e27c637a2fa 100644
--- a/Build/source/libs/icu-xetex/data/locales/gu_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gu_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gu_IN.xml
+// * Source File:<path>/common/main/gu_IN.xml
// *
// ***************************************************************************
gu_IN{
@@ -13,13 +13,9 @@ gu_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.34"}
+ Version{"1.46"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"hh:mm:ss a z",
"hh:mm:ss a z",
@@ -39,4 +35,10 @@ gu_IN{
}
}
}
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ quotationEnd{"'"}
+ quotationStart{"'"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/gv.txt b/Build/source/libs/icu-xetex/data/locales/gv.txt
index 69ddc2195b0..d0943bbdfdd 100644
--- a/Build/source/libs/icu-xetex/data/locales/gv.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gv.txt
@@ -1,26 +1,26 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gv.xml
+// * Source File:<path>/common/main/gv.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/gv.xml
+ * ICU <specials> source: <path>/xml/main/gv.xml
*/
gv{
Countries{
GB{"Rywvaneth Unys"}
}
- ExemplarCharacters{"[a-zç]"}
+ ExemplarCharacters{"[a-c ç d-z]"}
Languages{
gv{"Gaelg"}
}
LocaleScript{
"Latn",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
AmPmMarkers{
diff --git a/Build/source/libs/icu-xetex/data/locales/gv_GB.txt b/Build/source/libs/icu-xetex/data/locales/gv_GB.txt
index 03938b7dbd0..0a8974c9085 100644
--- a/Build/source/libs/icu-xetex/data/locales/gv_GB.txt
+++ b/Build/source/libs/icu-xetex/data/locales/gv_GB.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/gv_GB.xml
+// * Source File:<path>/common/main/gv_GB.xml
// *
// ***************************************************************************
gv_GB{
@@ -13,13 +13,9 @@ gv_GB{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.38"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss",
diff --git a/Build/source/libs/icu-xetex/data/locales/haw.txt b/Build/source/libs/icu-xetex/data/locales/haw.txt
new file mode 100644
index 00000000000..33208b5875f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/locales/haw.txt
@@ -0,0 +1,102 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/main/haw.xml
+// *
+// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/haw.xml
+ */
+haw{
+ AuxExemplarCharacters{"[b-d f g j q-t v x-z]"}
+ Countries{
+ AU{"NÅ«hÅlani"}
+ CA{"KanakÄ"}
+ CN{"Kina"}
+ DE{"KelemÄnia"}
+ DK{"Kenemaka"}
+ ES{"Kepania"}
+ FR{"Palani"}
+ GB{"Aupuni MÅʻī Hui PÅ« Ê»Ia"}
+ GR{"Helene"}
+ IE{"ʻIlelani"}
+ IL{"ʻIseraʻela"}
+ IN{"ʻĪnia"}
+ IT{"ʻĪkÄlia"}
+ JP{"IÄpana"}
+ MX{"Mekiko"}
+ NL{"HÅlani"}
+ NZ{"Aotearoa"}
+ PH{"ʻĀina Pilipino"}
+ RU{"LÅ«kia"}
+ US{"ʻAmelika Hui Pū ʻIa"}
+ }
+ ExemplarCharacters{"[a Ä e Ä“ h Ê» i Ä« k-o Å p u Å« w]"}
+ Languages{
+ haw{"Ê»Ålelo HawaiÊ»i"}
+ }
+ LocaleScript{
+ "Latn",
+ }
+ Version{"1.26"}
+ calendar{
+ gregorian{
+ dayNames{
+ format{
+ abbreviated{
+ "LP",
+ "P1",
+ "P2",
+ "P3",
+ "P4",
+ "P5",
+ "P6",
+ }
+ wide{
+ "LÄpule",
+ "Poʻakahi",
+ "Poʻalua",
+ "Poʻakolu",
+ "PoÊ»ahÄ",
+ "Poʻalima",
+ "Poʻaono",
+ }
+ }
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "Ian.",
+ "Pep.",
+ "Mal.",
+ "ʻAp.",
+ "Mei",
+ "Iun.",
+ "Iul.",
+ "ʻAu.",
+ "Kep.",
+ "ʻOk.",
+ "Now.",
+ "Kek.",
+ }
+ wide{
+ "Ianuali",
+ "Pepeluali",
+ "Malaki",
+ "ʻApelila",
+ "Mei",
+ "Iune",
+ "Iulai",
+ "ʻAukake",
+ "Kepakemapa",
+ "ʻOkakopa",
+ "Nowemapa",
+ "Kekemapa",
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/locales/haw_US.txt b/Build/source/libs/icu-xetex/data/locales/haw_US.txt
new file mode 100644
index 00000000000..085ae96b791
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/locales/haw_US.txt
@@ -0,0 +1,41 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/main/haw_US.xml
+// *
+// ***************************************************************************
+haw_US{
+ MeasurementSystem:int{1}
+ NumberPatterns{
+ "#,##0.###",
+ "¤#,##0.00;(¤#,##0.00)",
+ "#,##0%",
+ "#E0",
+ }
+ PaperSize:intvector{
+ 279,
+ 216,
+ }
+ Version{"1.27"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ DateTimePatterns{
+ "h:mm:ss a z",
+ "h:mm:ss a z",
+ "h:mm:ss a",
+ "h:mm a",
+ "EEEE, d MMMM yyyy",
+ "d MMMM yyyy",
+ "d MMM yyyy",
+ "d/M/yy",
+ "{1} {0}",
+ }
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/locales/he.txt b/Build/source/libs/icu-xetex/data/locales/he.txt
index 5dfc063141e..405ef562c4e 100644
--- a/Build/source/libs/icu-xetex/data/locales/he.txt
+++ b/Build/source/libs/icu-xetex/data/locales/he.txt
@@ -1,25 +1,47 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/he.xml
+// * Source File:<path>/common/main/he.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/he.xml
+ * ICU <specials> source: <path>/xml/main/he.xml
*/
he{
+ AuxExemplarCharacters{"[Ö½ ׄ Ö°-Ö¹ Ö» ׂ × Ö¼ Ö¿ ׳ ×´ a-z]"}
Countries{
+ 001{"עול×"}
+ 002{"×פריקה"}
+ 005{"×“×¨×•× ×מריקה"}
009{"×וקיניה"}
+ 011{"מערב ×פריקה"}
+ 013{"מרכז ×מריקה"}
+ 014{"מזרח ×פריקה"}
+ 015{"צפון ×פריקה"}
+ 017{"מרכז ×פריקה"}
+ 019{"×מריקות"}
+ 021{"צפון ×מריקה"}
+ 029{"קריביי×"}
+ 030{"מזרח ×סיה"}
+ 035{"דרו×-מזרח ×סיה"}
+ 039{"×“×¨×•× ×ירופה"}
+ 053{"×וסטרליה וניו-זילנד"}
+ 054{"מלנסיה"}
+ 061{"פולינזיה"}
+ 142{"×סיה"}
+ 150{"×ירופה"}
+ 151{"מזרח ×ירופה"}
+ 154{"צפון ×ירופה"}
+ 155{"מערב ×ירופה"}
+ 830{"××™×™ קנל"}
AD{"×נדורה"}
AE{"×יחוד ×”×מירויות הערביות"}
- AF{"×פגניסטן"}
AG{"×נטיגו××” וברבודה"}
- AI{"×נגילה"}
AL{"×לבניה"}
AM{"×רמניה"}
- AN{"×”××™× ×˜×™×œ×™× ×”×”×•×œ× ×“×™×™×"}
+ AN{"×× ×˜×™×œ×™× ×”×•×œ× ×“×™×™×"}
AO{"×נגולה"}
AQ{"×נט×רקטיקה"}
AR{"×רגנטינה"}
@@ -27,10 +49,11 @@ he{
AT{"×וסטריה"}
AU{"×וסטרליה"}
AW{"×רובה"}
- AZ{"×זרבייג׳ן"}
- BA{"בוסניה הרצגובינה"}
+ AX{"××™×™ ×לנד"}
+ AZ{"×זרבייג׳×ן"}
+ BA{"בוסניה והרצגובינה"}
BB{"ברבדוס"}
- BD{"בנגלדש"}
+ BD{"בנגל×דש"}
BE{"בלגיה"}
BF{"בורקינה פ×סו"}
BG{"בולגריה"}
@@ -41,30 +64,24 @@ he{
BN{"ברוניי ד×רסל××"}
BO{"בוליביה"}
BR{"ברזיל"}
- BS{"בה×מה"}
- BT{"בוט×ן"}
- BV{"×”××™ בובה"}
+ BS{"ב××”×מה, ××™×™"}
+ BV{"בובה, ××™"}
BW{"בוטסוו×× ×”"}
- BY{"בלרוס"}
+ BY{"בל×רוס"}
BZ{"בליז"}
CA{"קנדה"}
- CC{"××™×™ קוקוס (קילינג)"}
CD{"קונגו, הרפובליקה הדמוקרטית של"}
CF{"הרפובליקה של מרכז ×פריקה"}
CG{"קונגו"}
CH{"שווייץ"}
CI{"חוף השנהב"}
- CK{"××™×™ קוק"}
CL{"צ׳ילה"}
- CM{"קמרון"}
CN{"סין"}
CO{"קולומביה"}
CR{"קוסטה ריקה"}
+ CS{"סרביה ומונטנגרו"}
CU{"קובה"}
- CV{"קייפ ורדה"}
- CX{"××™×™ כריסטמס"}
CY{"קפריסין"}
- CZ{"הרפובליקה הצ׳כית"}
DE{"גרמניה"}
DJ{"ג׳יבוטי"}
DK{"דנמרק"}
@@ -75,18 +92,15 @@ he{
EE{"×סטוניה"}
EG{"מצרי×"}
EH{"סהרה המערבית"}
- ER{"×ריתרי××”"}
+ ER{"×ריטר××”"}
ES{"ספרד"}
ET{"×תיופיה"}
FI{"פינלנד"}
FJ{"פיג׳י"}
- FK{"××™×™ פוקלנד"}
- FM{"מ×וריציוס, המדינות המ×וגדות של"}
- FO{"××™×™ פ×רו"}
+ FM{"מיקרונזיה"}
FR{"צרפת"}
- GA{"גבון"}
+ GA{"×’×בון"}
GB{"בריטניה"}
- GD{"גרנדה"}
GE{"גרוזיה"}
GF{"×’×™×× ×” הצרפתית"}
GH{"×’×× ×”"}
@@ -97,13 +111,12 @@ he{
GP{"גוו×דלופ"}
GQ{"×’×™× ×™××” המשוונית"}
GR{"יוון"}
- GS{"×”××™ ג׳ורג׳יה הדרומית ו××™×™ סנדוויץ׳ הדרומיי×"}
- GT{"גווטמ×לה"}
+ GS{"ג׳ורג׳יה הדרומית ו××™×™ סנדוויץ׳ הדרומיי×"}
+ GT{"גוו×טמ×לה"}
GU{"גו××"}
GW{"×’×™× ×™××”-ביס×ו"}
GY{"×’×™×× ×”"}
HK{"הונג קונג S.A.R. של סין"}
- HM{"××™×™ הרד ו××™×™ מקדונלנד"}
HN{"הונדורס"}
HR{"קרו×טיה"}
HT{"×”×יטי"}
@@ -112,153 +125,273 @@ he{
IE{"×ירלנד"}
IL{"ישר×ל"}
IN{"הודו"}
- IO{"הטריטוריה הבריטית ב×וקינוס ההודי"}
+ IO{"טריטוריה בריטית ב×וקי×נוס ההודי"}
IQ{"עירק"}
- IR{"×יר×ן, הרפובליקה ×”×יסלמית"}
+ IR{"×יר×ן"}
IS{"×יסלנד"}
IT{"×יטליה"}
- JM{"ג׳מייקה"}
JO{"ירדן"}
JP{"יפן"}
KE{"קניה"}
- KG{"קירגיזסטן"}
KH{"קמבודיה"}
KI{"קיריב×טי"}
KM{"קומורוס"}
- KN{"סנט קיטס וניבס"}
+ KN{"סנט קיטס ונוויס"}
KP{"קורי××”, צפון"}
KR{"קורי××”, דרו×"}
- KW{"כווית"}
- KY{"××™×™ קיימ×ן"}
- KZ{"קזחסטן"}
- LA{"ל×וס, הרפובליקה הדמקורטית העממית"}
+ LA{"ל×וס"}
LB{"לבנון"}
- LC{"סנט לושיה"}
+ LC{"סנט לוסיה"}
LI{"ליכטנשטיין"}
LK{"סרי לנקה"}
LR{"ליבריה"}
- LS{"לסוטו"}
LT{"ליט×"}
LU{"לוקסמבורג"}
LV{"לטביה"}
LY{"לוב"}
MA{"מרוקו"}
- MC{"מונקו"}
- MD{"מולדובה, הרפובליקה"}
+ MD{"מולדובה"}
MG{"מדגסקר"}
- MH{"××™×™ מרשל"}
- MK{"מקדוניה, הרפובליקה של"}
+ MK{"מקדוניה"}
ML{"מ×לי"}
- MM{"מינמ×ר"}
+ MM{"מיי×נמ×ר"}
MN{"מונגוליה"}
MO{"מק×ו S.A.R. של סין"}
- MP{"××™×™ מרי×× ×” הצפוניי×"}
MQ{"מרטיניק"}
MR{"מ×וריטניה"}
- MS{"מונטסר×ט"}
MT{"מלטה"}
MU{"מ×וריציוס"}
- MV{"מלדיב×ס"}
+ MV{"מלדיבי×"}
MW{"מל×ווי"}
- MX{"מכסיקו"}
+ MX{"מקסיקו"}
MY{"מלזיה"}
MZ{"מוזמביק"}
- NA{"נמיביה"}
NC{"קלדוניה החדשה"}
NE{"ניז׳ר"}
NF{"××™×™ נורפק"}
NG{"ניגריה"}
- NI{"ניקר×גווה"}
+ NI{"ניק×ר×גו××”"}
NL{"הולנד"}
NO{"נורווגיה"}
NP{"נפ×ל"}
NR{"× ×ורו"}
NU{"ניווה"}
NZ{"ניו זילנד"}
- OM{"עומן"}
+ OM{"עומ×ן"}
PA{"פנמה"}
PE{"פרו"}
PF{"פולינזיה הצרפתית"}
PG{"פפו××” ×’×™× ×™××” החדשה"}
PH{"פיליפיני×"}
- PK{"פקיסטן"}
PL{"פולין"}
PM{"סנט פייר ומיקלון"}
- PN{"פיטקיירן"}
- PR{"פורטו ריקו"}
+ PN{"פיטקרן"}
PS{"הרשות הפלשתינית"}
PT{"פורטוגל"}
- PW{"פל×ו"}
- PY{"פר×גוו××™"}
- QA{"קטר"}
+ PW{"פ×ל×ו"}
+ QA{"ק×ט×ר"}
RE{"ר×וניון"}
RO{"רומניה"}
RU{"חבר המדינות הרוסיות"}
RW{"רו×נדה"}
SA{"ערב הסעודית"}
- SB{"××™×™ שלמה"}
- SC{"××™×™ סיישל"}
- SD{"סודן"}
SE{"שוודיה"}
SG{"סינגפור"}
- SH{"סיינט הלנה"}
+ SH{"סנט הלנה"}
SI{"סלובניה"}
SJ{"סוולב×רד וז׳×ן מ×יין"}
SK{"סלובקיה"}
SL{"סיירה ל×ונה"}
- SM{"סן מרינו"}
- SN{"סנגל"}
- SO{"סומליה"}
+ SM{"ס×ן מ×רינו"}
+ SO{"סומ×ליה"}
SR{"סורינ××"}
- ST{"סן תומה ופרינסיפה"}
+ ST{"ס×ו טומה ופרינסיפה"}
SV{"×ל סלב×דור"}
- SY{"הרפובליקה הערבית הסורית"}
- SZ{"סווזילנד"}
- TC{"××™×™ טורקס וק×יקוס"}
+ SY{"סוריה"}
TD{"צ׳×ד"}
TF{"טריטוריות דרומיות של צרפת"}
TG{"טוגו"}
TH{"ת×ילנד"}
- TJ{"טג׳יקיסטן"}
TK{"טוקל×ו"}
- TL{"מזרח טימור"}
- TM{"טורקמניסטן"}
+ TL{"טימור המזרחית"}
TN{"טוניסיה"}
TO{"טונגה"}
TR{"טורקיה"}
- TT{"טרינידד וטובגו"}
TV{"טוב×לו"}
- TW{"טיוו×ן"}
TZ{"טנזניה"}
UA{"×וקר××™× ×”"}
UG{"×וגנדה"}
UM{"××™×™× ×§×˜× ×™× ×©×œ×—×•×£ ×רצות הברית"}
US{"×רצות הברית"}
UY{"×ורוגוו××™"}
- UZ{"×וזבקיסטן"}
- VA{"הוותיקן"}
VC{"סנט וינסנט והגרנדיני×"}
VE{"ונצו×לה"}
- VG{"××™×™ הבתולה הבריטיי×"}
- VI{"××™×™ הבתולה ×”×מריקניי×"}
VN{"וייטנ××"}
VU{"ו×נו×טו"}
WF{"ו×ליס ופוטונה"}
WS{"סמו××”"}
YE{"תימן"}
- YT{"מיוטה"}
+ YT{"מ×יוט"}
ZA{"×“×¨×•× ×פריקה"}
ZM{"זמביה"}
- ZW{"זימבבווה"}
+ ZW{"זימב×בווה"}
}
Currencies{
+ ADP{
+ "ADP",
+ "פזו ×נדורי",
+ }
+ AFN{
+ "AFN",
+ "×פגני",
+ }
+ ARS{
+ "ARS",
+ "פזו ×רגנטינ××™",
+ }
+ ATS{
+ "ATS",
+ "שילינג ×וסטרי",
+ }
+ AUD{
+ "AUD",
+ "דולר ×וסטרלי",
+ }
+ BEF{
+ "BEF",
+ "פרנק בלגי",
+ }
+ BHD{
+ "BHD",
+ "דינר בחרייני",
+ }
+ BIF{
+ "BIF",
+ "פרנק בורונדי",
+ }
+ BMD{
+ "BMD",
+ "דולר ברמודה",
+ }
+ BOB{
+ "BOB",
+ "בוליבי×נו",
+ }
+ BOP{
+ "BOP",
+ "פזו בוליבי",
+ }
+ BRL{
+ "BRL",
+ "רי×ל ברזיל××™",
+ }
+ BSD{
+ "BSD",
+ "דולר בה×מי",
+ }
+ BZD{
+ "BZD",
+ "דולר בליז××™",
+ }
+ CAD{
+ "CAD",
+ "דולר קנדי",
+ }
+ CHF{
+ "CHF",
+ "פרנק שוויצרי",
+ }
+ CLP{
+ "CLP",
+ "פזו צ'יל×× ×™",
+ }
+ CSD{
+ "CSD",
+ "דינר סרבי",
+ }
+ CUP{
+ "CUP",
+ "פזו קובני",
+ }
+ CYP{
+ "CYP",
+ "לירה קפריס×ית",
+ }
+ DDM{
+ "DDM",
+ "מרק מזרח גרמני",
+ }
+ DEM{
+ "DEM",
+ "מרק גרמני",
+ }
+ DKK{
+ "DKK",
+ "כתר דני",
+ }
+ DZD{
+ "DZD",
+ "דינר ×לג'ירי",
+ }
+ EEK{
+ "EEK",
+ "קרון ×סטוני",
+ }
+ EGP{
+ "EGP",
+ "לירה מצרית",
+ }
+ EQE{
+ "EQE",
+ "×קוולה",
+ }
+ ESP{
+ "ESP",
+ "פסטה ספרדי",
+ }
EUR{
"€",
- "EUR",
+ "יורו",
+ }
+ FIM{
+ "FIM",
+ "מרק פיני",
+ }
+ FRF{
+ "FRF",
+ "פרנק צרפתי",
}
GBP{
"£",
- "GBP",
+ "לירה שטרלינג",
+ }
+ GIP{
+ "GIP",
+ "פ×ונד גיברלטר",
+ }
+ GNF{
+ "GNF",
+ "פרנק ×’×™× ××™",
+ }
+ GWP{
+ "GWP",
+ "פזו ×’×™× ××™",
+ }
+ GYD{
+ "GYD",
+ "דולר ×’×™×× ×™",
+ }
+ HKD{
+ "HKD",
+ "דולר הונג קונגי",
+ }
+ IEP{
+ "IEP",
+ "לירה ×ירית",
+ }
+ ILP{
+ "ILP",
+ "לירה ישר×לית",
}
ILS{
"₪",
@@ -268,16 +401,308 @@ he{
"=0#Rs.|1#Re.|1<Rs.",
"רופי הודית",
}
+ IQD{
+ "IQD",
+ "דינר עירקי",
+ }
+ IRR{
+ "IRR",
+ "רי×ל ×יר×× ×™",
+ }
+ ISK{
+ "ISK",
+ "קרונה ×יסלנדית",
+ }
+ ITL{
+ "₤",
+ "לירה ×יטלקית",
+ }
+ JMD{
+ "JMD",
+ "דולר ×’'מ×יקני",
+ }
+ JOD{
+ "JOD",
+ "דינר ירדני",
+ }
JPY{
"Â¥",
- "JPY",
+ "ין",
+ }
+ KES{
+ "KES",
+ "שילינג קניי×תי",
+ }
+ KGS{
+ "KGS",
+ "×¡×•× ×§×™×¨×’×™×–×™",
+ }
+ KMF{
+ "KMF",
+ "פרנק קומורו××™",
+ }
+ KPW{
+ "KPW",
+ "וון צפון קור×× ×™",
+ }
+ KRW{
+ "KRW",
+ "וון ×“×¨×•× ×§×•×¨×× ×™",
+ }
+ KWD{
+ "KWD",
+ "דינר כוויתי",
+ }
+ KYD{
+ "KYD",
+ "דולר קיימ×× ×™",
+ }
+ LBP{
+ "LBP",
+ "לירה לבנונית",
+ }
+ LKR{
+ "LKR",
+ "רופי סרי לנקי",
+ }
+ LRD{
+ "LRD",
+ "דולר ליברי",
+ }
+ LUF{
+ "LUF",
+ "פרנק לוקסמבורגי",
+ }
+ LYD{
+ "LYD",
+ "דינר לובי",
+ }
+ MDL{
+ "MDL",
+ "לי×ו מולדובני",
+ }
+ MGF{
+ "MGF",
+ "פרנק מדגסק×רי",
+ }
+ MTL{
+ "MTL",
+ "לירה מלטית",
+ }
+ MUR{
+ "MUR",
+ "רופי מ×וריציני",
+ }
+ MXN{
+ "MXN",
+ "פזו מקסיקני",
+ }
+ NAD{
+ "NAD",
+ "דולר נמיבי",
+ }
+ NOK{
+ "NOK",
+ "כתר נורבגי",
+ }
+ NPR{
+ "NPR",
+ "רופי נפ×לי",
+ }
+ NZD{
+ "NZD",
+ "דולר ניו זילנדי",
+ }
+ PHP{
+ "PHP",
+ "פזו פיליפיני",
+ }
+ PKR{
+ "PKR",
+ "רופיה פקיסטנית",
+ }
+ PLN{
+ "PLN",
+ "זלוטי פולני",
+ }
+ QAR{
+ "QAR",
+ "רי×ל קט×רי",
+ }
+ RUB{
+ "RUB",
+ "רובל",
+ }
+ RUR{
+ "RUR",
+ "רובל רוסי (1991 - 1998)",
+ }
+ RWF{
+ "RWF",
+ "פרנק רו×נדי",
+ }
+ SAR{
+ "SAR",
+ "רי×ל סעודי",
+ }
+ SBD{
+ "SBD",
+ "דולר ××™×™ שלמה",
+ }
+ SCR{
+ "SCR",
+ "רופי סיישלי",
+ }
+ SDD{
+ "SDD",
+ "דינר סודני",
+ }
+ SDP{
+ "SDP",
+ "לירה סודנית",
+ }
+ SEK{
+ "SEK",
+ "כתר שוודי",
+ }
+ SGD{
+ "SGD",
+ "דולר סינגפורי",
+ }
+ SHP{
+ "SHP",
+ "פ×ונד סנט הלני",
+ }
+ SKK{
+ "SKK",
+ "קורונה סלובקית",
+ }
+ SOS{
+ "SOS",
+ "שילינג סומ×לי",
+ }
+ SRD{
+ "SRD",
+ "דולר סורינ×מי",
+ }
+ SRG{
+ "SRG",
+ "גילדר סורינ×מי",
+ }
+ SUR{
+ "SUR",
+ "רובל סובייטי",
+ }
+ SYP{
+ "SYP",
+ "לירה סורית",
+ }
+ TJS{
+ "TJS",
+ "סומוני טג'קיסטני",
+ }
+ TMM{
+ "TMM",
+ "מנ×ט טורקמ×× ×™",
+ }
+ TND{
+ "TND",
+ "דינר טוניס××™",
+ }
+ TPE{
+ "TPE",
+ "×סקודו טימור××™",
+ }
+ TRL{
+ "TRL",
+ "לירה טורקית",
+ }
+ TRY{
+ "TRY",
+ "לירה טורקית חדשה",
+ }
+ TTD{
+ "TTD",
+ "דולר טרינידדי",
+ }
+ TWD{
+ "TWD",
+ "דולר ט×ייוני חדש",
+ }
+ TZS{
+ "TZS",
+ "שילינג טנזני",
+ }
+ UGS{
+ "UGS",
+ "שילינג ×וגנדי (1966 - 1987)",
+ }
+ UGX{
+ "UGX",
+ "שילינג ×וגנדי",
}
USD{
"$",
- "USD",
+ "דולר ×מריק××™",
+ }
+ USN{
+ "USN",
+ "דולר ×מריק××™ (×”×™×•× ×”×‘×)",
+ }
+ USS{
+ "USS",
+ "דולר ×מריק××™ (×”×™×•× ×”×–×”)",
+ }
+ UYU{
+ "UYU",
+ "פזו ×ורוגוו××™",
+ }
+ UZS{
+ "UZS",
+ "×¡×•× ×וזבקי",
+ }
+ VEB{
+ "VEB",
+ "בוליבר ונצו×לי",
+ }
+ XCD{
+ "XCD",
+ "דולר מזרח קריבי",
+ }
+ XDR{
+ "XDR",
+ "זכויות משיכה מיוחדות",
+ }
+ XTS{
+ "XTS",
+ "סימון למטרות בדיקה",
+ }
+ XXX{
+ "XXX",
+ "סימון \"×œ×œ× ×ž×˜×‘×¢\"",
+ }
+ YDD{
+ "YDD",
+ "דינר תימני",
+ }
+ YER{
+ "YER",
+ "רי×ל תימני",
+ }
+ ZAL{
+ "ZAL",
+ "ר×נד ×“×¨×•× ×פריק××™ (כספי)",
+ }
+ ZRN{
+ "ZRN",
+ "×–×יר חדש",
+ }
+ ZWD{
+ "ZWD",
+ "דולר זימבבו××™",
}
}
- ExemplarCharacters{"[Ö°-Ö¹Ö»-Ö½Ö¿×-ׂׄ×-ת]"}
+ ExemplarCharacters{"[×-×™ ×› ך ל מ × ×  ן ס ×¢ פ ×£ צ ×¥ ק-ת]"}
Keys{
calendar{"לוח שנה"}
collation{"מיון"}
@@ -285,23 +710,52 @@ he{
}
Languages{
aa{"×תיופית"}
+ ab{"×בחזית"}
+ ady{"×דיגית"}
+ ae{"×בסטן"}
af{"×פריקנית"}
+ afh{"×פריהילי"}
+ ain{"×ינו"}
+ ak{"×ק×ן"}
+ akk{"×כדית"}
+ am{"×מהרית"}
+ apa{"שפות ×פצ'יות"}
ar{"ערבית"}
arc{"×רמית"}
+ as{"×ס×מית"}
ast{"×וסטרית"}
aus{"שפות ×וסטרליות"}
+ awa{"×וו×דית"}
+ az{"×זרית"}
+ ba{"בשקירית"}
+ bal{"ב×לוצ'×™"}
+ be{"בל×רוסית"}
+ bej{"בז'ה"}
+ ber{"ברברית"}
bg{"בולגרית"}
bn{"בנגלית"}
bo{"טיבטית"}
+ br{"ברטונית"}
bs{"בוסנית"}
ca{"קטלונית"}
cad{"ק×דו"}
+ cau{"קווקזית (×חר)"}
+ ce{"צ'צ'נית"}
+ ceb{"קבו×נו"}
+ cel{"קלטית"}
+ chg{"צ'××’×ט××™"}
+ chr{"צ'ירוקית"}
+ co{"קורסיק×ית"}
+ cop{"קופטית"}
cs{"צ׳כית"}
cy{"וולשית"}
da{"דנית"}
+ dak{"דקוטה"}
de{"גרמנית"}
+ dv{"דיבהי"}
egy{"מצרית (עתיקה)"}
el{"יוונית"}
+ elx{"עילמית"}
en{"×נגלית"}
eo{"×ספרנטו"}
es{"ספרדית"}
@@ -309,52 +763,101 @@ he{
eu{"בסקית"}
fa{"פרסית"}
fi{"פינית"}
+ fil{"פיליפינית"}
+ fj{"פיג'ית"}
+ fo{"פ×רו×זית"}
fr{"צרפתית"}
+ fro{"צרפתית עתיקה"}
ga{"×ירית"}
gd{"סקוטית ×’×לית"}
+ gl{"גליצי×נית"}
+ got{"גותית"}
+ grc{"יוונית עתיקה"}
+ gu{"גוג'ר×טית"}
+ ha{"×”×וסה"}
+ haw{"הוו×ית"}
he{"עברית"}
hi{"הינדית"}
+ hit{"חיתית"}
hr{"קרו×טית"}
+ ht{"×”×יטית"}
hu{"הונגרית"}
hy{"×רמנית"}
id{"×ינדונזית"}
+ inh{"×ינגושית"}
+ ira{"×יר×נית"}
is{"×יסלנדית"}
it{"×יטלקית"}
ja{"יפנית"}
ka{"גרוזינית"}
+ kk{"קזחית"}
ko{"קורי×נית"}
+ ks{"קשמירית"}
+ ku{"כורדית"}
la{"לטינית"}
lad{"לדינו"}
+ lb{"לוקסמבורגית"}
lt{"ליט×ית"}
lv{"לטבית"}
+ mag{"מ××’×הית"}
+ map{"×וסטרונזית"}
mas{"מ×ס×ית"}
+ mg{"מלגשית"}
mi{"מ×ורית"}
mk{"מקדונית"}
mn{"מונגולית"}
+ mni{"מניפורית"}
mo{"מולדבית"}
+ mr{"מ×רתית"}
mt{"מלטזית"}
mul{"מספר שפות"}
+ my{"בורמזית"}
myn{"מ××™×”"}
nap{"נפוליטנית"}
+ nb{"נורבגית שפת הספר (בוקמול)"}
ne{"נפ×לית"}
nl{"הולנדית"}
+ nn{"נורבגית חדשה (נינורשק)"}
no{"נורווגית"}
+ nub{"שפות נבטיות"}
+ nv{"נבחו"}
+ ota{"טורקית עותומנית"}
+ peo{"פרסית עתיקה"}
pl{"פולנית"}
+ ps{"פ×שטו"}
pt{"פורטוגזית"}
ro{"רומנית"}
+ rom{"רומ×נית"}
ru{"רוסית"}
sa{"סנסקרית"}
+ sc{"סרדינית"}
+ scn{"סיצילי×נית"}
+ sco{"סקוטית"}
+ sd{"סינדהית"}
+ sga{"×ירית עתיקה"}
sgn{"שפת סימני×"}
sh{"סרבו-קרו×טית"}
+ sit{"סינו-טיבטית (×חר)"}
sk{"סלובקית"}
sl{"סלובנית"}
+ sla{"סל×בית (×חר)"}
+ sm{"סמו×ית"}
+ smi{"שפות ס×מיות (×חר)"}
+ so{"סומלית"}
+ sq{"×לבנית"}
sr{"סרבית"}
sv{"שוודית"}
sw{"סווהילית"}
+ ta{"טמילית"}
th{"ת××™"}
tk{"טורקמנית"}
tr{"טורקית"}
+ uga{"×וגריתית"}
uk{"×וקר×ינית"}
+ ur{"×ורדו"}
+ uz{"×וזבקית"}
+ vi{"וי×טנמית"}
+ yap{"×™×פזית"}
yi{"יידיש"}
zh{"סינית"}
zu{"זולו"}
@@ -363,14 +866,48 @@ he{
"Hebr",
}
Scripts{
+ Arab{"ערבית"}
+ Armn{"×רמנית"}
+ Bali{"ב×לינזית"}
+ Beng{"בנג×לית"}
+ Brai{"ברייל"}
+ Cher{"צ'רוקית"}
+ Copt{"קופטית"}
+ Cprt{"קפריס×ית"}
+ Cyrl{"קירילית"}
+ Ethi{"×תיופית"}
+ Geor{"גרוזינית"}
+ Goth{"גותית"}
+ Grek{"יוונית"}
Hebr{"עברית"}
+ Hung{"הונגרית עתיקה"}
+ Knda{"ק×נדה"}
+ Laoo{"ל×ית"}
+ Latn{"לטינית"}
+ Mong{"מונגולית"}
+ Syrc{"סורית"}
+ Taml{"טמיל"}
+ Telu{"טלוגו"}
+ Thai{"ת×ילנדית"}
+ Tibt{"טיבטית"}
+ Ugar{"×וגריתית"}
+ Xpeo{"פרסית עתיקה"}
}
Types{
calendar{
+ buddhist{"לוח שנה בודהיסטי"}
+ chinese{"לוח שנה סיני"}
+ gregorian{"לוח שנה גרגורי×× ×™"}
hebrew{"לוח שנה עברי"}
+ islamic{"לוח שנה מוסלמי"}
+ islamic-civil{"לוח שנה מוסלמי-×זרחי"}
+ japanese{"לוח שנה יפני"}
+ }
+ collation{
+ traditional{"מסורתי"}
}
}
- Version{"1.51"}
+ Version{"1.70"}
calendar{
gregorian{
DateTimePatterns{
@@ -423,6 +960,38 @@ he{
"לסה״נ",
}
}
+ fields{
+ day{
+ dn{"יו×"}
+ }
+ era{
+ dn{"תקופה"}
+ }
+ hour{
+ dn{"שעה"}
+ }
+ minute{
+ dn{"דקה"}
+ }
+ month{
+ dn{"חודש"}
+ }
+ second{
+ dn{"שני"}
+ }
+ week{
+ dn{"שבוע"}
+ }
+ weekday{
+ dn{"×™×•× ×‘×©×‘×•×¢"}
+ }
+ year{
+ dn{"שנה"}
+ }
+ zone{
+ dn{"×זור"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -455,11 +1024,15 @@ he{
}
}
}
- weekend:intvector{
- 6,
- 0,
- 7,
- 86400000,
+ quarters{
+ format{
+ abbreviated{
+ "רבעון ר×שון",
+ "רבעון שני",
+ "רבעון שלישי",
+ "רבעון רביעי",
+ }
+ }
}
}
hebrew{
@@ -470,7 +1043,6 @@ he{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/hebrew/monthNames/format/wide"}
wide{
"תשרי",
"חשון",
@@ -497,7 +1069,6 @@ he{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
"מוחר×",
"ספר",
@@ -515,7 +1086,186 @@ he{
}
}
}
- islamic-civil:alias{"/LOCALE/calendar/islamic"}
+ }
+ layout{
+ characters{"right-to-left"}
+ lines{"top-to-bottom"}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Timbuktu"{
+ ec{"×פריקה/טימבקטו"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"×מריקה/×רגנטינה/ס×ן-חו×ן"}
+ }
+ "America:Bahia"{
+ ec{"×מריקה/בהי××”"}
+ }
+ "America:Buenos_Aires"{
+ ec{"בו×נוס ×יירס"}
+ }
+ "America:Cancun"{
+ ec{"×מריקה/קנקון"}
+ }
+ "America:Chicago"{
+ ec{"×מריקה/שיקגו"}
+ }
+ "America:Cordoba"{
+ ec{"×מריקה/קורדובה"}
+ }
+ "America:Dawson_Creek"{
+ ec{"×מריקה/דוסון-קריק"}
+ }
+ "America:Denver"{
+ ec{"×מריקה/דנוור"}
+ }
+ "America:Detroit"{
+ ec{"×מריקה/דטרויט"}
+ }
+ "America:Edmonton"{
+ ec{"×מריקה/×דמנטון"}
+ }
+ "America:Halifax"{
+ ec{"×מריקה/הליפקס"}
+ }
+ "America:Indianapolis"{
+ ec{"×ינדי×נפוליס"}
+ }
+ "America:Los_Angeles"{
+ ec{"×מריקה/לוס-×× ×’'לס"}
+ }
+ "America:Louisville"{
+ ec{"×מריקה/לו×יסוויל"}
+ }
+ "America:Mazatlan"{
+ ec{"×מריקה/מזטלן"}
+ }
+ "America:Mendoza"{
+ ec{"×מריקה/מנדוזה"}
+ }
+ "America:Mexico_City"{
+ ec{"×מריקה/מקסיקו סיטי"}
+ }
+ "America:Monterrey"{
+ ec{"×מריקה/מונטריי"}
+ }
+ "America:Montreal"{
+ ec{"×מריקה/מונטרי×ול"}
+ }
+ "America:New_York"{
+ ec{"×מריקה/ניו-יורק"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"×מריקה/צפון דקוטה/מרכז"}
+ }
+ "America:Phoenix"{
+ ec{"×מריקה/פיניקס"}
+ }
+ "America:Santiago"{
+ ec{"×מריקה/סנטי×גו"}
+ }
+ "America:Sao_Paulo"{
+ ec{"×מריקה/ס×ן-פ×ולו"}
+ }
+ "America:Shiprock"{
+ ec{"×מריקה/שיפרוק"}
+ }
+ "America:Toronto"{
+ ec{"×מריקה/טורנטו"}
+ }
+ "America:Vancouver"{
+ ec{"×מריקה/ונקובר"}
+ }
+ "America:Winnipeg"{
+ ec{"×מריקה/וויניפוג"}
+ }
+ "Antarctica:Palmer"{
+ ec{"×מריקה/פ×למר"}
+ }
+ "Asia:Jakarta"{
+ ec{"×סיה/×’'קרטה"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"קו×לה לומפור"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"×סיה/נובוסיבירסק"}
+ }
+ "Asia:Omsk"{
+ ec{"××™×”/×ומסק"}
+ }
+ "Asia:Oral"{
+ ec{"×סיה/×ורל"}
+ }
+ "Asia:Samarkand"{
+ ec{"×סיה/סמרקנד"}
+ }
+ "Asia:Shanghai"{
+ ec{"×סיה/שנח××™"}
+ }
+ "Asia:Tashkent"{
+ ec{"×סיה/טשקנט"}
+ }
+ "Atlantic:Canary"{
+ ec{"×טלנטי/קנרי"}
+ }
+ "Australia:Adelaide"{
+ ec{"×דלייד"}
+ }
+ "Australia:Brisbane"{
+ ec{"×וסטרליה/בריסבן"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"×וסטרליה/ברוקן-היל"}
+ }
+ "Australia:Darwin"{
+ ec{"×וסטרליה/דרווין"}
+ }
+ "Australia:Hobart"{
+ ec{"×וסטרליה/הוברט"}
+ }
+ "Australia:Melbourne"{
+ ec{"×וסטרליה/מלבורן"}
+ }
+ "Australia:Perth"{
+ ec{"×וסטרליה/פרת'"}
+ }
+ "Australia:Sydney"{
+ ec{"×וסטרליה/סידני"}
+ }
+ "Europe:Belfast"{
+ ec{"×ירופה/בלפסט"}
+ }
+ "Europe:Kiev"{
+ ec{"×ירופה/קייב"}
+ }
+ "Europe:Lisbon"{
+ ec{"×ירופה/ליסבון"}
+ }
+ "Europe:London"{
+ ec{"×ירופה/לונדון"}
+ }
+ "Europe:Madrid"{
+ ec{"×ירופה/מדריד"}
+ }
+ "Europe:Moscow"{
+ ec{"×ירופה/מוסקבה"}
+ }
+ "Europe:Samara"{
+ ec{"×ירופה/סמרה"}
+ }
+ "Pacific:Auckland"{
+ ec{"פסיפי/×וקלנד"}
+ }
+ "Pacific:Galapagos"{
+ ec{"פסיפי/גל×פגוס"}
+ }
+ "Pacific:Honolulu"{
+ ec{"פסיפי/הונולולו"}
+ }
+ "Pacific:Tahiti"{
+ ec{"פסיפי/טהיטי"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/he_IL.txt b/Build/source/libs/icu-xetex/data/locales/he_IL.txt
index 1595842f194..d55768cbaf2 100644
--- a/Build/source/libs/icu-xetex/data/locales/he_IL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/he_IL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/he_IL.xml
+// * Source File:<path>/common/main/he_IL.xml
// *
// ***************************************************************************
he_IL{
@@ -13,5 +13,23 @@ he_IL{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.40"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ weekend:intvector{
+ 6,
+ 0,
+ 7,
+ 86400000,
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hi.txt b/Build/source/libs/icu-xetex/data/locales/hi.txt
index dc888447f4d..1344df33723 100644
--- a/Build/source/libs/icu-xetex/data/locales/hi.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hi.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hi.xml
+// * Source File:<path>/common/main/hi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/hi.xml
+ * ICU <specials> source: <path>/xml/main/hi.xml
*/
hi{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
AD{"अनà¥à¤¡à¥‹à¤°à¤¾"}
AE{"संयà¥à¤•à¥à¤¤ अरब अमीरात"}
@@ -70,6 +71,7 @@ hi{
FI{"फिनलैंड"}
FJ{"फिजी"}
FR{"फà¥à¤°à¤¾à¤‚स"}
+ GB{"बà¥à¤°à¤¿à¤¤à¤¨"}
GR{"गà¥à¤°à¥€à¤¸"}
GT{"गोतेदाला"}
GW{"गीनी-बिसाउ"}
@@ -181,22 +183,62 @@ hi{
ZW{"जिमà¥à¤¬à¤¾à¤¬à¥à¤µà¥‡"}
}
Currencies{
+ BRL{
+ "रीयाल",
+ "रीयाल",
+ }
+ CNY{
+ "यà¥à¤µà¤¾à¤¨",
+ "यà¥à¤µà¤¾à¤¨",
+ }
+ CSD{
+ "स. ढीनार",
+ "सरà¥à¤¬à¤¿à¤¯ का ढीनार",
+ }
+ EUR{
+ "€",
+ "यà¥à¤°à¥‹",
+ }
+ FJD{
+ "फ़िजी का डालर",
+ "फ़िजी का डालर",
+ }
+ GBP{
+ "£",
+ "बà¥à¤°à¤¿à¤¤à¤¨ का पौनà¥à¤¡ सà¥à¤Ÿà¤°à¥à¤²à¤¿à¤—",
+ }
INR{
- "रà¥",
- "INR",
+ "रà¥.",
+ "भारतीय रूपया",
+ }
+ ITL{
+ "₤",
+ "इतली का लीरा",
+ }
+ JPY{
+ "Â¥",
+ "जापानी येन",
+ }
+ RUB{
+ "रूबल",
+ "रूसी रूबल",
+ }
+ USD{
+ "$",
+ "अमरीकी डालर",
}
}
- ExemplarCharacters{"[à¤-ह़-à¥à¥-॔क़-ॣ०-९ॽ‌â€]"}
+ ExemplarCharacters{"[ॠ०-९ अ-ठà¤-ऑ ओ-न प-र ल ळ व-ह ़ à¤-ः ऽ ॠा-ॅ े-ॉ ो ौ]"}
Languages{
aa{"अफ़ार"}
- ab{"अबà¥à¤–ाज़ियनà¥"}
+ ab{"अबà¥à¤–ाज़ियनà¥"}
af{"अफà¥à¤°à¥€à¤•à¥€"}
am{"अमà¥à¤¹à¤¾à¤°à¤¿à¤•à¥"}
ar{"अरबी"}
as{"असामी"}
ay{"आयमारा"}
- az{"अज़रबैंजानी"}
- ba{"बशख़िर"}
+ az{"अज़रबैंजानी"}
+ ba{"बशख़िर"}
be{"बैलोरूशियनà¥"}
bg{"बलà¥à¤—ेरियनà¥"}
bh{"बिहारी"}
@@ -209,7 +251,7 @@ hi{
cs{"चेक"}
cy{"वेलà¥à¤¶"}
da{"डैनीश"}
- de{"ज़रà¥à¤®à¤¨"}
+ de{"ज़रà¥à¤®à¤¨"}
dz{"भà¥à¤Ÿà¤¾à¤¨à¥€"}
el{"गà¥à¤°à¥€à¤•"}
en{"अंगà¥à¤°à¥‡à¤œà¥€"}
@@ -219,15 +261,15 @@ hi{
eu{"बासà¥à¤•à¥"}
fa{"परà¥à¤¶à¤¿à¤¯à¤¨à¥"}
fi{"फिनिश"}
- fj{"फ़ीजी"}
- fo{"फिरोज़ी"}
+ fj{"फ़ीजी"}
+ fo{"फिरोज़ी"}
fr{"फà¥à¤°à¥‡à¤‚च"}
fy{"फà¥à¤°à¥€à¤œà¤¼à¤¨à¥"}
ga{"आईरिश"}
gd{"सà¥à¤•à¤¾à¤Ÿà¥à¤¸à¥ गायेलिकà¥"}
gl{"गैलिशियनà¥"}
gn{"गà¥à¤†à¤°à¤¾à¤¨à¥€"}
- gu{"गà¥à¥›à¤°à¤¾à¤¤à¥€"}
+ gu{"गà¥à¤œà¤¼à¤°à¤¾à¤¤à¥€"}
ha{"होउसा"}
he{"हिबà¥à¤°à¥€à¤Š"}
hi{"हिंदी"}
@@ -244,7 +286,7 @@ hi{
ja{"जापानी"}
jv{"जावानीस"}
ka{"जॉरà¥à¤œà¥€à¤¯à¤¨à¥"}
- kk{"कज़ाख"}
+ kk{"कज़ाख"}
kl{"गà¥à¤°à¥€à¤¨à¤²à¥ˆà¤‚डिक"}
km{"कैमà¥à¤¬à¥‹à¤¡à¤¿à¤¯à¤¨à¥"}
kn{"कनà¥à¤¨à¤¡à¤¼"}
@@ -252,7 +294,7 @@ hi{
kok{"कोंकणी"}
ks{"काशà¥à¤®à¤¿à¤°à¥€"}
ku{"कà¥à¤°à¤¦à¥€à¤¶"}
- ky{"किरघिज़"}
+ ky{"किरघिज़"}
la{"लैटीन"}
ln{"लिंगाला"}
lo{"लाओथीयनà¥"}
@@ -320,16 +362,16 @@ hi{
ug{"उईघà¥à¤°"}
uk{"यूकà¥à¤°à¥‡à¤¨à¤¿à¤¯à¤¨à¥"}
ur{"ऊरà¥à¤¦à¥"}
- uz{"उज़बेकà¥"}
+ uz{"उज़बेकà¥"}
vi{"वियेतनामी"}
vo{"वोलापà¥à¤•"}
wo{"वोलोफ"}
xh{"षोसा"}
yi{"येहà¥à¤¦à¥€"}
yo{"योरूबा"}
- za{"ज़à¥à¤†à¤‚ग"}
+ za{"ज़à¥à¤†à¤‚ग"}
zh{"चीनी"}
- zu{"ज़à¥à¤²à¥‚"}
+ zu{"ज़à¥à¤²à¥‚"}
}
LocaleScript{
"Deva",
@@ -345,16 +387,35 @@ hi{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.37"}
+ Scripts{
+ Arab{"अरबिक"}
+ Cyrl{"सिरिलिक"}
+ Deva{"देवनगरि"}
+ Hans{"चीनी सरल लिपि"}
+ Hant{"चीनी पà¥à¤°à¤¾à¤šà¥€à¤¨ लिपि"}
+ Latn{"लाटिन"}
+ }
+ Version{"1.56"}
calendar{
gregorian{
AmPmMarkers{
"पूरà¥à¤µà¤¾à¤¹à¥à¤¨",
"अपराहà¥à¤¨",
}
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
dayNames{
format{
abbreviated{
@@ -415,16 +476,25 @@ hi{
}
}
}
+ quarters{
+ format{
+ wide{
+ "पॆहला हंत 1",
+ "दूसरा हंत 2",
+ "तीसरा हंत 3",
+ "चौता हंत 4",
+ }
+ }
+ }
}
}
zoneStrings{
- {
- "Asia/Calcutta",
- "भारतीय समय",
- "IST",
- "भारतीय समय",
- "IST",
- "Calcutta",
+ "Asia:Calcutta"{
+ ec{"Calcutta"}
+ ld{"भारतीय समय"}
+ ls{"भारतीय समय"}
+ sd{"IST"}
+ ss{"IST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hi_IN.txt b/Build/source/libs/icu-xetex/data/locales/hi_IN.txt
index 2b32e8d70c4..66b57c16d5a 100644
--- a/Build/source/libs/icu-xetex/data/locales/hi_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hi_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hi_IN.xml
+// * Source File:<path>/common/main/hi_IN.xml
// *
// ***************************************************************************
hi_IN{
@@ -13,13 +13,9 @@ hi_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.33"}
+ Version{"1.45"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
@@ -39,4 +35,10 @@ hi_IN{
}
}
}
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ quotationEnd{"'"}
+ quotationStart{"'"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hr.txt b/Build/source/libs/icu-xetex/data/locales/hr.txt
index 7b86f80ff2b..f2934c0f0f9 100644
--- a/Build/source/libs/icu-xetex/data/locales/hr.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hr.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hr.xml
+// * Source File:<path>/common/main/hr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/hr.xml
+ * ICU <specials> source: <path>/xml/main/hr.xml
*/
hr{
Countries{
@@ -31,7 +31,7 @@ hr{
054{"Melanezija"}
057{"Micronezija"}
061{"Polinezija"}
- 062{"Južno-centralna Azija"}
+ 062{"Južna Azija"}
142{"Azija"}
145{"Zapadna Azija"}
150{"Europa"}
@@ -67,7 +67,7 @@ hr{
BI{"Burundi"}
BJ{"Benin"}
BM{"Bermuda"}
- BN{"Brunei Darussalam"}
+ BN{"Brunei"}
BO{"Bolivija"}
BR{"Brazil"}
BS{"Bahami"}
@@ -278,7 +278,7 @@ hr{
WS{"Samoa"}
YE{"Jemen"}
YT{"Majote"}
- ZA{"Južna Afrika"}
+ ZA{"JužnoafriÄka Republika"}
ZM{"Zambija"}
ZW{"Zimbabve"}
}
@@ -532,7 +532,7 @@ hr{
"Hrvatski dinar",
}
HRK{
- "HRK",
+ "Kn",
"Kuna",
}
HTG{
@@ -988,7 +988,7 @@ hr{
"Zimbabveanski dolar",
}
}
- ExemplarCharacters{"[a-p r-v z Ä‘ ć Ä Å¾ Å¡ {lj} {nj} {dž}]"}
+ ExemplarCharacters{"[a-c Ä Ä‡ d Ä‘ {dž} e-l {lj} m n {nj} o p r s Å¡ t-v z ž]"}
Keys{
calendar{"Kalendar"}
collation{"Poredavanje"}
@@ -1081,7 +1081,7 @@ hr{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1105,13 +1105,9 @@ hr{
traditional{"Tradicionano poredavanje"}
}
}
- Version{"1.48"}
+ Version{"1.67"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -1156,6 +1152,16 @@ hr{
}
}
}
+ eras{
+ abbreviated{
+ "pr.n.e.",
+ "AD",
+ }
+ wide{
+ "Prije Krista",
+ "Poslije Krista",
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1246,7 +1252,62 @@ hr{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1kv",
+ "2kv",
+ "3kv",
+ "4kv",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Kinshasa"{
+ ec{"Kinšasa"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Lubumbaši"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Južni pol"}
+ }
+ "Asia:Anadyr"{
+ ec{"Anadir"}
+ }
+ "Asia:Kamchatka"{
+ ec{"KamÄatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Shanghai"{
+ ec{"Å angaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Europe:Kiev"{
+ ec{"Kijev"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Uzgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporožje"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hr_HR.txt b/Build/source/libs/icu-xetex/data/locales/hr_HR.txt
index 13cd7a6b478..6d7bc587e61 100644
--- a/Build/source/libs/icu-xetex/data/locales/hr_HR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hr_HR.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hr_HR.xml
+// * Source File:<path>/common/main/hr_HR.xml
// *
// ***************************************************************************
hr_HR{
- Version{"1.29"}
+ Version{"1.40"}
delimiters{
alternateQuotationEnd{"â€"}
alternateQuotationStart{"“"}
diff --git a/Build/source/libs/icu-xetex/data/locales/hu.txt b/Build/source/libs/icu-xetex/data/locales/hu.txt
index 1d37b5c09f3..73e7859aae3 100644
--- a/Build/source/libs/icu-xetex/data/locales/hu.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hu.txt
@@ -1,16 +1,42 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hu.xml
+// * Source File:<path>/common/main/hu.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/hu.xml
+ * ICU <specials> source: <path>/xml/main/hu.xml
*/
hu{
+ AuxExemplarCharacters{"[q w-y]"}
Countries{
+ 001{"Világ"}
+ 002{"Afrika"}
+ 005{"Dél-Amerika"}
+ 009{"Óceánia"}
+ 011{"Nyugat-Afrika"}
+ 013{"Közép-Amerika"}
+ 014{"Kelet-Afrika"}
+ 015{"Észak-Afrika"}
+ 017{"Közép-Afrika"}
+ 019{"Amerika"}
+ 021{"Észak-Amerika"}
+ 030{"Kelet-Ãzsia"}
+ 035{"Délkelet-Ãzsia"}
+ 039{"Dél-Európa"}
+ 053{"Ausztrália és Új-Zéland"}
+ 054{"Melanézia"}
+ 061{"Polinézia"}
+ 142{"Ãzsia"}
+ 145{"Nyugat-Ãzsia"}
+ 150{"Európa"}
+ 151{"Kelet-Európa"}
+ 154{"Észak-Európa"}
+ 155{"Nyugat-Európa"}
+ 830{"Csatorna-szigetek"}
+ 833{"Man-sziget"}
AD{"Andorra"}
AE{"Egyesült Arab Emirátus"}
AF{"Afganisztán"}
@@ -26,6 +52,7 @@ hu{
AT{"Ausztria"}
AU{"Ausztrália"}
AW{"Aruba"}
+ AX{"Aland-szigetek"}
AZ{"Azerbajdzsán"}
BA{"Bosznia-Hercegovina"}
BB{"Barbados"}
@@ -190,6 +217,7 @@ hu{
PW{"Palau"}
PY{"Paraguay"}
QA{"Katar"}
+ QO{"Külső-Óceánia"}
RE{"Reunion (francia)"}
RO{"Románia"}
RU{"Orosz Köztársaság"}
@@ -544,7 +572,7 @@ hu{
"Etiópiai birr",
}
EUR{
- "€",
+ "EUR",
"Euro",
}
FIM{
@@ -564,7 +592,7 @@ hu{
"Francia frank",
}
GBP{
- "£",
+ "GBP",
"Brit font sterling",
}
GEK{
@@ -659,10 +687,6 @@ hu{
"ILS",
"Izraeli új sékel",
}
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
IQD{
"ID",
"Iraki dínár",
@@ -676,7 +700,7 @@ hu{
"Izlandi korona",
}
ITL{
- "₤",
+ "ITL",
"Olasz líra",
}
JMD{
@@ -688,7 +712,7 @@ hu{
"Jordániai dínár",
}
JPY{
- "Â¥",
+ "JPY",
"Japán jen",
}
KES{
@@ -1225,8 +1249,9 @@ hu{
}
}
ExemplarCharacters{
- "[a-z á é í ó ú ö ü ő ű {cs} {dz} {dzs} {gy} {ly} {ny} {sz} {ty} {zs} {ccs} {"
- "ddz} {ddzs} {ggy} {lly} {nny} {ssz} {tty} {zzs}]"
+ "[a á b c {cs} {ccs} d {dz} {ddz} {dzs} {ddzs} e é f g {gy} {ggy} h i í j-l {"
+ "ly} {lly} m n {ny} {nny} o ó ö ő p r s {sz} {ssz} t {ty} {tty} u ú ü ű v z {"
+ "zs} {zzs}]"
}
Keys{
calendar{"Naptár"}
@@ -1388,9 +1413,15 @@ hu{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0%",
+ "#E0",
+ }
Scripts{
Armn{"Örmény"}
Beng{"Bengáli"}
@@ -1443,7 +1474,7 @@ hu{
traditional{"Hagyományos"}
}
}
- Version{"1.49"}
+ Version{"1.69"}
calendar{
buddhist{
eras{
@@ -1457,10 +1488,6 @@ hu{
"DE",
"DU",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
@@ -1507,8 +1534,43 @@ hu{
}
eras{
abbreviated{
- "i.e.",
- "i.u.",
+ "i. e.",
+ "i. sz.",
+ }
+ }
+ fields{
+ day{
+ dn{"nap"}
+ }
+ dayperiod{
+ dn{"napszak"}
+ }
+ era{
+ dn{"éra"}
+ }
+ hour{
+ dn{"óra"}
+ }
+ minute{
+ dn{"perc"}
+ }
+ month{
+ dn{"hónap"}
+ }
+ second{
+ dn{"másodperc"}
+ }
+ week{
+ dn{"hét"}
+ }
+ weekday{
+ dn{"hét napja"}
+ }
+ year{
+ dn{"év"}
+ }
+ zone{
+ dn{"zóna"}
}
}
monthNames{
@@ -1559,6 +1621,22 @@ hu{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "N1",
+ "N2",
+ "N3",
+ "N4",
+ }
+ wide{
+ "I. negyedév",
+ "II. negyedév",
+ "III. negyedév",
+ "IV. negyedév",
+ }
+ }
+ }
}
hebrew{
eras{
@@ -1568,7 +1646,6 @@ hu{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/hebrew/monthNames/format/wide"}
wide{
"Tisri",
"Hesván",
@@ -1595,7 +1672,6 @@ hu{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
"Moharrem",
"Safar",
@@ -1613,7 +1689,226 @@ hu{
}
}
}
- islamic-civil:alias{"/LOCALE/calendar/islamic"}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "America:Araguaina"{
+ ec{"Araguaína"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comodoro Rivadavia"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Río Gallegos"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Tucumán"}
+ }
+ "America:Belem"{
+ ec{"Belém"}
+ }
+ "America:Cancun"{
+ ec{"Cancún"}
+ }
+ "America:Cordoba"{
+ ec{"Córdoba"}
+ }
+ "America:Cuiaba"{
+ ec{"Cuiabá"}
+ }
+ "America:Danmarkshavn"{
+ ec{"Danmarks Havn"}
+ }
+ "America:Eirunepe"{
+ ec{"Eirunepé"}
+ }
+ "America:Godthab"{
+ ec{"Godthåb"}
+ }
+ "America:Maceio"{
+ ec{"Maceió"}
+ }
+ "America:Mazatlan"{
+ ec{"Mazatlán"}
+ }
+ "America:Merida"{
+ ec{"Mérida"}
+ }
+ "America:Mexico_City"{
+ ec{"Mexikóváros"}
+ }
+ "America:Montreal"{
+ ec{"Montréal"}
+ }
+ "America:Porto_Velho"{
+ ec{"Pôrto Velho"}
+ }
+ "America:Rio_Branco"{
+ ec{"Río Branco"}
+ }
+ "America:Sao_Paulo"{
+ ec{"São Paulo"}
+ }
+ "America:Scoresbysund"{
+ ec{"Scoresby Sound"}
+ }
+ "America:St_Johns"{
+ ec{"St. John's"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Déli-sark"}
+ }
+ "Antarctica:Vostok"{
+ ec{"Vosztok"}
+ }
+ "Asia:Almaty"{
+ ec{"Alma-Ata"}
+ }
+ "Asia:Anadyr"{
+ ec{"Anadir"}
+ }
+ "Asia:Aqtau"{
+ ec{"Aktau"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Aktöbe"}
+ }
+ "Asia:Choibalsan"{
+ ec{"Csojbalszan"}
+ }
+ "Asia:Chongqing"{
+ ec{"Csungking"}
+ }
+ "Asia:Irkutsk"{
+ ec{"Irkutszk"}
+ }
+ "Asia:Jakarta"{
+ ec{"Dzsakarta"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamcsatka"}
+ }
+ "Asia:Kashgar"{
+ ec{"Kasgár"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasznojarszk"}
+ }
+ "Asia:Magadan"{
+ ec{"Magadán"}
+ }
+ "Asia:Makassar"{
+ ec{"Makasar"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"Novoszibirszk"}
+ }
+ "Asia:Omsk"{
+ ec{"Omszk"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Kizilorda"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Szahalin"}
+ }
+ "Asia:Samarkand"{
+ ec{"Szamarkand"}
+ }
+ "Asia:Shanghai"{
+ ec{"Sanghaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taskent"}
+ }
+ "Asia:Urumqi"{
+ ec{"Ürümqi"}
+ }
+ "Asia:Vladivostok"{
+ ec{"Vlagyivosztok"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutszk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekatyerinburg"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanári-szigetek"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Kalinyingrád"}
+ }
+ "Europe:Kiev"{
+ ec{"Kijev"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisszabon"}
+ }
+ "Europe:Moscow"{
+ ec{"Moszkva"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"közép-európai nyári idő"}
+ ls{"közép-európai idő"}
+ }
+ "Europe:Samara"{
+ ec{"Szamara"}
+ }
+ "Europe:Simferopol"{
+ ec{"Szimferopol"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Ungvár"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporozsje"}
+ }
+ "Pacific:Chatham"{
+ ec{"Chatham-szigetek"}
+ }
+ "Pacific:Easter"{
+ ec{"Húsvét-szigetek"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Galapagos-szigetek"}
+ }
+ "Pacific:Gambier"{
+ ec{"Gambier-szigetek"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"Kiritimati-sziget"}
+ }
+ "Pacific:Kosrae"{
+ ec{"Kosrae-szigetek"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"Kwajalein-zátony"}
+ }
+ "Pacific:Majuro"{
+ ec{"Majuro-zátony"}
+ }
+ "Pacific:Marquesas"{
+ ec{"Marquesas-szigetek"}
+ }
+ "Pacific:Midway"{
+ ec{"Midway-szigetek"}
+ }
+ "Pacific:Ponape"{
+ ec{"Ponape-szigetek"}
+ }
+ "Pacific:Truk"{
+ ec{"Truk-szigetek"}
+ }
+ "Pacific:Wake"{
+ ec{"Wake-sziget"}
+ }
+ "Pacific:Yap"{
+ ec{"Yap-szigetek"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hu_HU.txt b/Build/source/libs/icu-xetex/data/locales/hu_HU.txt
index 8b9bc22fe4b..6560de8c325 100644
--- a/Build/source/libs/icu-xetex/data/locales/hu_HU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hu_HU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hu_HU.xml
+// * Source File:<path>/common/main/hu_HU.xml
// *
// ***************************************************************************
hu_HU{
@@ -13,5 +13,9 @@ hu_HU{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"„"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/hy.txt b/Build/source/libs/icu-xetex/data/locales/hy.txt
index d7afc75cd10..bbac4ad87b7 100644
--- a/Build/source/libs/icu-xetex/data/locales/hy.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hy.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hy.xml
+// * Source File:<path>/common/main/hy.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/hy.xml
+ * ICU <specials> source: <path>/xml/main/hy.xml
*/
hy{
Countries{
@@ -203,7 +203,7 @@ hy{
ZM{"Ô¶Õ¡Õ´Õ¢Õ«Õ¡"}
ZW{"Ô¶Õ«Õ´Õ¢Õ¡Õ¢Õ¾Õ¥"}
}
- ExemplarCharacters{"[Ա-Ֆՙ-՟ա-և֊ﬓ-ﬗ]"}
+ ExemplarCharacters{"[ÖŠ Õ Õœ Õž Õš Õ› ÕŸ Õ¡-Õ¥ Ö‡ Õ¦-Ö†]"}
Languages{
hy{"Õ€Õ¡ÕµÕ¥Ö€Õ§Õ¶"}
}
@@ -221,7 +221,7 @@ hy{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -230,17 +230,13 @@ hy{
"#0%",
"#E0",
}
- Version{"1.35"}
+ Version{"1.49"}
calendar{
gregorian{
AmPmMarkers{
"Առ․",
"Եր․",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/hy_AM.txt b/Build/source/libs/icu-xetex/data/locales/hy_AM.txt
index c298df6dee9..fb028c40e8c 100644
--- a/Build/source/libs/icu-xetex/data/locales/hy_AM.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hy_AM.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hy_AM.xml
+// * Source File:<path>/common/main/hy_AM.xml
// *
// ***************************************************************************
hy_AM{
- Version{"1.27"}
+ Version{"1.37"}
calendar{
gregorian{
eras{
diff --git a/Build/source/libs/icu-xetex/data/locales/hy_AM_REVISED.txt b/Build/source/libs/icu-xetex/data/locales/hy_AM_REVISED.txt
index fdbbf416860..22291e62c6a 100644
--- a/Build/source/libs/icu-xetex/data/locales/hy_AM_REVISED.txt
+++ b/Build/source/libs/icu-xetex/data/locales/hy_AM_REVISED.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/hy_AM_REVISED.xml
+// * Source File:<path>/common/main/hy_AM_REVISED.xml
// *
// ***************************************************************************
hy_AM_REVISED{
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
AmPmMarkers{
@@ -23,18 +23,18 @@ hy_AM_REVISED{
monthNames{
format{
abbreviated{
- "Õ€Õ¶Õ¾",
+ "Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€",
"Õ“Õ¿Õ¾",
"Õ„Ö€Õ¿",
- "Ô±ÕºÖ€",
- "Õ„ÕµÕ½",
- "Õ€Õ¶Õ½",
+ "Ô±ÕºÖ€Õ«Õ¬",
+ "Õ„Õ¡ÕµÕ«Õ½",
+ "Õ€Õ¸Ö‚Õ¶Õ«Õ½",
"Õ€Õ¬Õ½",
"Õ•Õ£Õ½",
- "ÕÕ¥Õº",
- "Õ€Õ¸Õ¯",
- "Õ†Õ¸Õµ",
- "Ô´Õ¥Õ¯",
+ "ÕÕ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€",
+ "Õ€Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€",
+ "Õ†Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€",
+ "Ô´Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€",
}
wide{
"Õ€Õ¸Ö‚Õ¶Õ¾Õ¡Ö€",
diff --git a/Build/source/libs/icu-xetex/data/locales/id.txt b/Build/source/libs/icu-xetex/data/locales/id.txt
index 61137040bb8..dbf2cff12ac 100644
--- a/Build/source/libs/icu-xetex/data/locales/id.txt
+++ b/Build/source/libs/icu-xetex/data/locales/id.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/id.xml
+// * Source File:<path>/common/main/id.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/id.xml
+ * ICU <specials> source: <path>/xml/main/id.xml
*/
id{
Countries{
@@ -251,7 +251,7 @@ id{
"IDR",
}
}
- ExemplarCharacters{"[a-z]"}
+ ExemplarCharacters{"[a-n {ng} {ny} o p r-w y]"}
Languages{
aa{"Afar"}
ab{"Abkhaz"}
@@ -495,7 +495,7 @@ id{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -504,13 +504,9 @@ id{
"#,##0%",
"#E0",
}
- Version{"1.35"}
+ Version{"1.52"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
dayNames{
format{
abbreviated{
@@ -565,6 +561,22 @@ id{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "kuartal pertama",
+ "kuartal kedua",
+ "kuartal ketiga",
+ "kuartal keempat",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/id_ID.txt b/Build/source/libs/icu-xetex/data/locales/id_ID.txt
index 7a56b60a51b..a292e952f0c 100644
--- a/Build/source/libs/icu-xetex/data/locales/id_ID.txt
+++ b/Build/source/libs/icu-xetex/data/locales/id_ID.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/id_ID.xml
+// * Source File:<path>/common/main/id_ID.xml
// *
// ***************************************************************************
id_ID{
- Version{"1.25"}
+ Version{"1.36"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/in.txt b/Build/source/libs/icu-xetex/data/locales/in.txt
index 920eace6b3d..bd68a6337a2 100644
--- a/Build/source/libs/icu-xetex/data/locales/in.txt
+++ b/Build/source/libs/icu-xetex/data/locales/in.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
in{
diff --git a/Build/source/libs/icu-xetex/data/locales/in_ID.txt b/Build/source/libs/icu-xetex/data/locales/in_ID.txt
index ea36e073d77..982d684d1a9 100644
--- a/Build/source/libs/icu-xetex/data/locales/in_ID.txt
+++ b/Build/source/libs/icu-xetex/data/locales/in_ID.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
in_ID{
diff --git a/Build/source/libs/icu-xetex/data/locales/is.txt b/Build/source/libs/icu-xetex/data/locales/is.txt
index 98f397da99a..0273009f837 100644
--- a/Build/source/libs/icu-xetex/data/locales/is.txt
+++ b/Build/source/libs/icu-xetex/data/locales/is.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/is.xml
+// * Source File:<path>/common/main/is.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/is.xml
+ * ICU <specials> source: <path>/xml/main/is.xml
*/
is{
+ AuxExemplarCharacters{"[c q w z]"}
Countries{
AD{"Andorra"}
AE{"Sameinuðu arabísku furstadæmin"}
@@ -702,7 +703,7 @@ is{
}
RUR{
"RUR",
- "Rússnesk rúbla",
+ "Rússnesk rúbla (1991-1998)",
}
RWF{
"RWF",
@@ -885,7 +886,7 @@ is{
"Simbabveskur dalur",
}
}
- ExemplarCharacters{"[a-záéíóúýöæðþ]"}
+ ExemplarCharacters{"[a á b d ð e é f-i í j-o ó p r-u ú v y ý þ æ ö]"}
Keys{
calendar{"Dagatal"}
collation{"Röðun"}
@@ -1069,7 +1070,7 @@ is{
ia{"Interlingva"}
iba{"Ãban"}
id{"Indónesíska"}
- ie{"Interlingva"}
+ ie{"Interlingve"}
ig{"Ãgbó"}
ii{"Sísúanjí"}
ijo{"Ãjó"}
@@ -1275,7 +1276,7 @@ is{
smj{"Lúlesamíska"}
smn{"Enaresamíska"}
sms{"Skoltesamíska"}
- sn{"Sínótíbesk mál (önnur)"}
+ sn{"Shona"}
snk{"Sóninke"}
so{"Sómalska"}
sog{"Sogdíen"}
@@ -1310,8 +1311,8 @@ is{
tli{"Tlingit"}
tmh{"Tamasjek"}
tn{"Tsúana"}
- to{"Tongverska"}
- tog{"Tongverska"}
+ to{"Tongverska (Tongaeyjar)"}
+ tog{"Tongverska (Nyasa)"}
tpi{"Tokpisin"}
tr{"Tyrkneska"}
ts{"Tsonga"}
@@ -1373,7 +1374,7 @@ is{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Types{
@@ -1394,7 +1395,7 @@ is{
traditional{"Hefðbundin"}
}
}
- Version{"1.43"}
+ Version{"1.61"}
calendar{
gregorian{
DateTimePatterns{
@@ -1489,6 +1490,22 @@ is{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "F1",
+ "F2",
+ "F3",
+ "F4",
+ }
+ wide{
+ "1st fjórðungur",
+ "2nd fjórðungur",
+ "3rd fjórðungur",
+ "4th fjórðungur",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/is_IS.txt b/Build/source/libs/icu-xetex/data/locales/is_IS.txt
index e41a5dbfb58..1ac978d99a0 100644
--- a/Build/source/libs/icu-xetex/data/locales/is_IS.txt
+++ b/Build/source/libs/icu-xetex/data/locales/is_IS.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/is_IS.xml
+// * Source File:<path>/common/main/is_IS.xml
// *
// ***************************************************************************
is_IS{
@@ -13,5 +13,13 @@ is_IS{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/it.txt b/Build/source/libs/icu-xetex/data/locales/it.txt
index 350ede11afb..cf747039dd4 100644
--- a/Build/source/libs/icu-xetex/data/locales/it.txt
+++ b/Build/source/libs/icu-xetex/data/locales/it.txt
@@ -1,16 +1,47 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/it.xml
+// * Source File:<path>/common/main/it.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/it.xml
+ * ICU <specials> source: <path>/xml/main/it.xml
*/
it{
+ AuxExemplarCharacters{"[í ï ú]"}
Countries{
+ 001{"Mondo"}
+ 002{"Africa"}
+ 005{"America del Sud"}
+ 009{"Oceania"}
+ 011{"Africa occidentale"}
+ 013{"America centrale"}
+ 014{"Africa orientale"}
+ 015{"Africa del Nord"}
+ 017{"Africa centrale"}
+ 018{"Africa del Sud"}
+ 019{"Americhe"}
+ 021{"America del Nord"}
+ 029{"Caraibi"}
+ 030{"Asia orientale"}
+ 034{"Asia del Sud"}
+ 035{"Asia sudorientale"}
+ 039{"Europa del Sud"}
+ 053{"Australia e Nuova Zelanda"}
+ 054{"Melanesia"}
+ 057{"Regione Micronesiana"}
+ 061{"Polinesia"}
+ 142{"Asia"}
+ 143{"Asia centrale"}
+ 145{"Asia occidentale"}
+ 150{"Europa"}
+ 151{"Europa orientale"}
+ 154{"Europa del Nord"}
+ 155{"Europa occidentale"}
+ 172{"Comunità di Stati Indipendenti"}
+ 419{"America Latina e Caraibi"}
AD{"Andorra"}
AE{"Emirati Arabi Uniti"}
AF{"Afghanistan"}
@@ -62,7 +93,7 @@ it{
CS{"Serbia e Montenegro"}
CU{"Cuba"}
CV{"Capo Verde"}
- CX{"Isola Christmas"}
+ CX{"Isola di Christmas"}
CY{"Cipro"}
CZ{"Repubblica Ceca"}
DE{"Germania"}
@@ -191,6 +222,7 @@ it{
PW{"Palau"}
PY{"Paraguay"}
QA{"Qatar"}
+ QO{"Oceania lontana"}
RE{"Réunion"}
RO{"Romania"}
RU{"Federazione Russa"}
@@ -210,7 +242,7 @@ it{
SN{"Senegal"}
SO{"Somalia"}
SR{"Suriname"}
- ST{"São Tomé e Príncipe"}
+ ST{"Sao Tomé e Príncipe"}
SV{"El Salvador"}
SY{"Siria"}
SZ{"Swaziland"}
@@ -277,7 +309,7 @@ it{
"Dram Armeno",
}
ANG{
- "NA f.",
+ "ANG",
"Fiorino delle Antille Olandesi",
}
AOA{
@@ -472,6 +504,10 @@ it{
"C",
"Colón Costaricano",
}
+ CSD{
+ "CSD",
+ "Dinaro serbo",
+ }
CSK{
"CSK",
"Corona forte cecoslovacca",
@@ -646,7 +682,7 @@ it{
}
IDR{
"Rp",
- "Rupia Indiana",
+ "Rupia Indonesiana",
}
IEP{
"IR£",
@@ -1014,7 +1050,7 @@ it{
}
STD{
"Db",
- "Dobra di São Tomé e Principe",
+ "Dobra di Sao Tomé e Principe",
}
SUR{
"SUR",
@@ -1184,6 +1220,10 @@ it{
"CFPF",
"Franco CFP",
}
+ XXX{
+ "XXX",
+ "Nessuna valuta",
+ }
YDD{
"YDD",
"Dinaro dello Yemen",
@@ -1229,7 +1269,7 @@ it{
"Dollaro dello Zimbabwe",
}
}
- ExemplarCharacters{"[a-zéóàèìòíúùï]"}
+ ExemplarCharacters{"[a à b-e é è f-i ì j-o ó ò p-u ù v-z]"}
Keys{
calendar{"Calendario"}
collation{"Collazione"}
@@ -1246,6 +1286,7 @@ it{
af{"afrikaans"}
afa{"afro-asiatica (altra lingua)"}
afh{"afrihili"}
+ ain{"ainu"}
ak{"akan"}
akk{"accado"}
ale{"aleuto"}
@@ -1361,9 +1402,11 @@ it{
eu{"basco"}
ewo{"ewondo"}
fa{"persiano"}
+ fan{"fang"}
fat{"fanti"}
ff{"fulah"}
fi{"finlandese"}
+ fil{"filippino"}
fiu{"ugrofinnica (altra lingua)"}
fj{"figiano"}
fo{"faroese"}
@@ -1452,7 +1495,7 @@ it{
kn{"kannada"}
ko{"coreano"}
kok{"konkani"}
- kos{"Kosraean"}
+ kos{"kosraean"}
kpe{"kpelle"}
kr{"kanuri"}
krc{"karachay-Balkar"}
@@ -1518,6 +1561,7 @@ it{
mul{"multilingua"}
mun{"munda (altra lingua)"}
mus{"creek"}
+ mwl{"mirandese"}
mwr{"marwari"}
my{"birmano"}
myn{"lingue maya"}
@@ -1526,7 +1570,6 @@ it{
nah{"nahuatl"}
nai{"indiano del Nord America (altra lingua)"}
nap{"napoletano"}
- nb{"norvegese bokmål"}
nd{"ndebele del nord"}
nds{"basso tedesco; basso sassone"}
ne{"nepalese"}
@@ -1583,6 +1626,7 @@ it{
roa{"lingua romanza (altra lingua)"}
rom{"romani"}
ru{"russo"}
+ rup{"arumeno"}
rw{"kinyarwanda"}
sa{"sanscrito"}
sad{"sandawe"}
@@ -1593,6 +1637,7 @@ it{
sas{"sasak"}
sat{"santali"}
sc{"sardo"}
+ scn{"siciliano"}
sco{"scozzese"}
sd{"sindhi"}
se{"sami del nord"}
@@ -1647,6 +1692,7 @@ it{
tk{"turcomanno"}
tkl{"tokelau"}
tl{"tagalog"}
+ tlh{"klingon"}
tli{"tlingit"}
tmh{"tamashek"}
tn{"tswana"}
@@ -1659,7 +1705,7 @@ it{
tt{"tatarico"}
tum{"tumbuka"}
tup{"lingue tupi"}
- tut{"turco-tatarica (altra lingua)"}
+ tut{"altaica (altra lingua)"}
tvl{"tuvalu"}
tw{"ci"}
ty{"taitiano"}
@@ -1686,7 +1732,7 @@ it{
xal{"kalmyk"}
xh{"xosa"}
yao{"yao (bantu)"}
- yap{"Yapese"}
+ yap{"yapese"}
yi{"yiddish"}
yo{"yoruba"}
ypk{"lingue yupik"}
@@ -1712,25 +1758,38 @@ it{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Arab{"arabo"}
- Armn{"armenio"}
+ Armn{"armeno"}
+ Bali{"balinese"}
+ Batk{"batak"}
Beng{"bengali"}
+ Blis{"simboli bliss"}
Bopo{"bopomofo"}
+ Brah{"brahmi"}
Brai{"braille"}
+ Bugi{"buginese"}
Buhd{"buhid"}
Cans{"simboli aborigeni canadesi unificati"}
+ Cham{"cham"}
Cher{"cherokee"}
+ Cirt{"cirth"}
Copt{"copto"}
Cprt{"cipriota"}
Cyrl{"cirillico"}
+ Cyrs{"cirillico (variante antica chiesa slavonica)"}
Deva{"devanagari"}
Dsrt{"deseret"}
+ Egyd{"egiziano demotico"}
+ Egyh{"ieratico egiziano"}
+ Egyp{"geroglifici egiziani"}
Ethi{"etiope"}
+ Geok{"kutsuri"}
Geor{"georgiano"}
+ Glag{"glagolitico"}
Goth{"gotico"}
Grek{"greco"}
Gujr{"gujarati"}
@@ -1740,16 +1799,24 @@ it{
Hano{"hanunoo"}
Hans{"han semplificato"}
Hant{"han tradizionale"}
- Hebr{"ebreo"}
+ Hebr{"ebraico"}
Hira{"hiragana"}
+ Hmng{"pahawn hmong"}
+ Hrkt{"katanaka o hiragana"}
+ Hung{"antico ungherese"}
+ Inds{"indu"}
Ital{"italico antico"}
+ Java{"javanese"}
Kana{"katakana"}
Khmr{"khmer"}
Knda{"kannada"}
Laoo{"lao"}
+ Latf{"latino (variante fraktur)"}
+ Latg{"latino (variante gaelica)"}
Latn{"latino"}
Limb{"limbu"}
- Linb{"B lineare"}
+ Lina{"lineare A"}
+ Linb{"lineare B"}
Mlym{"malayalam"}
Mong{"mongolo"}
Mymr{"myanmar"}
@@ -1784,7 +1851,9 @@ it{
japanese{"Calendario Giapponese"}
}
collation{
+ big5han{"Cinese Tradizionale"}
direct{"Ordine Diretto"}
+ gb2312han{"Cinese Semplificato"}
phonebook{"Ordine Elenco Telefonico"}
pinyin{"Ordine Pinyin"}
stroke{"Ordine Segni"}
@@ -1792,19 +1861,21 @@ it{
}
}
Variants{
- REVISED{"Modificato"}
+ 1901{"ortografia tradizionale tedesca"}
+ 1996{"ortografia tedesca del 1996"}
+ NEDIS{"dialetto del Natisone"}
+ POLYTONI{"politonico"}
+ REVISED{"ortografia revisionata"}
+ ROZAJ{"resiano"}
+ SAAHO{"saho"}
}
- Version{"1.48"}
+ Version{"1.70"}
calendar{
gregorian{
AmPmMarkers{
"m.",
"p.",
}
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -1855,6 +1926,41 @@ it{
"dC",
}
}
+ fields{
+ day{
+ dn{"giorno"}
+ }
+ dayperiod{
+ dn{"periodo del giorno"}
+ }
+ era{
+ dn{"era"}
+ }
+ hour{
+ dn{"ora"}
+ }
+ minute{
+ dn{"minuto"}
+ }
+ month{
+ dn{"mese"}
+ }
+ second{
+ dn{"secondo"}
+ }
+ week{
+ dn{"settimana"}
+ }
+ weekday{
+ dn{"giorno della settimana"}
+ }
+ year{
+ dn{"anno"}
+ }
+ zone{
+ dn{"zona"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1903,6 +2009,22 @@ it{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "1o trimestre",
+ "2o trimestre",
+ "3o trimestre",
+ "4o trimestre",
+ }
+ }
+ }
}
}
delimiters{
@@ -1911,134 +2033,102 @@ it{
quotationEnd{"’"}
quotationStart{"‘"}
}
+ measurementSystemNames{
+ US{"USA"}
+ metric{"Metrico"}
+ }
zoneStrings{
- {
- "America/Halifax",
- "Ora Standard Atlantico",
- "AST",
- "Ora Legale Atlantico",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Ora Standard Newfoundland",
- "CNT",
- "Ora Legale Newfoundland",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Ora Standard Cina",
- "CTT",
- "Ora Standard Cina",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Ora Standard Centrale Europeo",
- "CET",
- "Ora Legale Centrale Europeo",
- "CEST",
- "Parigi",
- }
- {
- "Asia/Jerusalem",
- "Ora Standard Israele",
- "IST",
- "Ora Legale Israele",
- "IDT",
- "Gerusalemme",
- }
- {
- "Asia/Tokyo",
- "Ora Standard Giappone",
- "JST",
- "Ora Standard Giappone",
- "JST",
- "Tokyo",
- }
- {
- "Africa/Casablanca",
- "Ora Meridiano Greenwich",
- "GMT",
- "Ora Meridiano Greenwich",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Ora Standard Europa Orientale",
- "EET",
- "Ora Legale Europa Orientale",
- "EEST",
- "Bucarest",
- }
- {
- "Pacific/Honolulu",
- "Ora Standard Hawaii",
- "HST",
- "Ora Standard Hawaii",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Ora Standard Alaska",
- "AST",
- "Ora Legale Alaska",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Ora Standard Pacifico",
- "PST",
- "Ora Legale Pacifico",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Ora Standard Mountain",
- "MST",
- "Ora Standard Mountain",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Ora Standard Mountain",
- "MST",
- "Ora Legale Mountain",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Ora Standard Centrale",
- "CST",
- "Ora Legale Centrale",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Ora Standard Orientale",
- "EST",
- "Ora Standard Orientale",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Ora Standard Orientale",
- "EST",
- "Ora Legale Orientale",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ }
+ "Africa:Timbuktu"{
+ ec{"Timbuctu"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Ora Legale Alaska"}
+ ls{"Ora Standard Alaska"}
+ }
+ "America:Cordoba"{
+ ec{"Cordova"}
+ }
+ "America:Mexico_City"{
+ ec{"Città del Messico"}
+ }
+ "America:Sao_Paulo"{
+ ec{"San Paolo"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Polo Sud"}
+ }
+ "Asia:Jakarta"{
+ ec{"Giacarta"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Gerusalemme"}
+ ld{"Ora Legale Israele"}
+ ls{"Ora Standard Israele"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Samarkand"{
+ ec{"Samarcanda"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Ora Standard Cina"}
+ ls{"Ora Standard Cina"}
+ sd{"CDT"}
+ ss{"CTT"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Ora Standard Giappone"}
+ ls{"Ora Standard Giappone"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azzorre"}
+ }
+ "Atlantic:Canary"{
+ ec{"Canarie"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucarest"}
+ ld{"Ora Legale Europa Orientale"}
+ ls{"Ora Standard Europa Orientale"}
+ sd{"EEDT"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisbona"}
+ }
+ "Europe:London"{
+ ec{"Londra"}
+ }
+ "Europe:Moscow"{
+ ec{"Mosca"}
+ }
+ "Europe:Paris"{
+ ec{"Parigi"}
+ ld{"Ora Legale Europa Centrale"}
+ ls{"Ora Standard Europa Centrale"}
+ sd{"CEDT"}
+ ss{"CET"}
+ }
+ "Pacific:Easter"{
+ ec{"Pasqua"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Ora Standard Hawaii"}
+ ls{"Ora Standard Hawaii"}
+ sd{"HST"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/it_CH.txt b/Build/source/libs/icu-xetex/data/locales/it_CH.txt
index df41bf34346..55f95d42515 100644
--- a/Build/source/libs/icu-xetex/data/locales/it_CH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/it_CH.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/it_CH.xml
+// * Source File:<path>/common/main/it_CH.xml
// *
// ***************************************************************************
it_CH{
@@ -18,7 +18,7 @@ it_CH{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -27,9 +27,13 @@ it_CH{
"#,##0%",
"#E0",
}
- Version{"1.25"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"HH.mm:ss' h' z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/it_IT.txt b/Build/source/libs/icu-xetex/data/locales/it_IT.txt
index cc939e3e5ad..32299df987c 100644
--- a/Build/source/libs/icu-xetex/data/locales/it_IT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/it_IT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/it_IT.xml
+// * Source File:<path>/common/main/it_IT.xml
// *
// ***************************************************************************
it_IT{
@@ -18,9 +18,13 @@ it_IT{
}
}
}
- Version{"1.27"}
+ Version{"1.37"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
DateTimePatterns{
"HH:mm:ss z",
"H:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/iw.txt b/Build/source/libs/icu-xetex/data/locales/iw.txt
index a72d3f28d5a..0bbe22a3b4d 100644
--- a/Build/source/libs/icu-xetex/data/locales/iw.txt
+++ b/Build/source/libs/icu-xetex/data/locales/iw.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
iw{
diff --git a/Build/source/libs/icu-xetex/data/locales/iw_IL.txt b/Build/source/libs/icu-xetex/data/locales/iw_IL.txt
index fd59d543d7a..4ebf97e64c0 100644
--- a/Build/source/libs/icu-xetex/data/locales/iw_IL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/iw_IL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
iw_IL{
diff --git a/Build/source/libs/icu-xetex/data/locales/ja.txt b/Build/source/libs/icu-xetex/data/locales/ja.txt
index 95782abce5b..333ef93b6bd 100644
--- a/Build/source/libs/icu-xetex/data/locales/ja.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ja.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ja.xml
+// * Source File:<path>/common/main/ja.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ja.xml
+ * ICU <specials> source: <path>/xml/main/ja.xml
*/
ja{
Countries{
@@ -20,24 +20,28 @@ ja{
014{"æ±ã‚¢ãƒ•ãƒªã‚«"}
015{"北アフリカ"}
017{"中部アフリカ"}
- 018{"å—アフリカ"}
+ 018{"å—部アフリカ"}
019{"アメリカ大陸"}
021{"北アメリカ"}
029{"カリブ海"}
030{"æ±ã‚¢ã‚¸ã‚¢"}
+ 034{"å—アジア"}
035{"æ±å—アジア"}
039{"å—ヨーロッパ"}
- 053{"オーストラリアãŠã‚ˆã³ãƒ‹ãƒ¥ãƒ¼ã‚¸ãƒ¼ãƒ©ãƒ³ãƒ‰"}
+ 053{"オーストラリア・ニュージーランド"}
054{"メラãƒã‚·ã‚¢"}
- 057{"ミクロãƒã‚·ã‚¢"}
+ 057{"ミクロãƒã‚·ã‚¢åœ°åŸŸ"}
061{"ãƒãƒªãƒã‚·ã‚¢"}
062{"å—中央アジア"}
142{"アジア"}
+ 143{"中央アジア"}
145{"西アジア"}
150{"ヨーロッパ"}
151{"æ±ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘"}
154{"北ヨーロッパ"}
155{"西ヨーロッパ"}
+ 172{"独立国家共åŒä½“"}
+ 419{"ラテンアメリカ・カリブ地域"}
830{"ãƒãƒ£ãƒãƒ«è«¸å³¶"}
833{"マン島"}
AD{"アンドラ"}
@@ -66,7 +70,7 @@ ja{
BH{"ãƒãƒ¼ãƒ¬ãƒ¼ãƒ³"}
BI{"ブルンジ"}
BJ{"ベニン"}
- BM{"ãƒãƒ¼ãƒŸãƒ¥ãƒ¼ãƒ€"}
+ BM{"ãƒãƒŸãƒ¥ãƒ¼ãƒ€"}
BN{"ブルãƒã‚¤"}
BO{"ボリビア"}
BR{"ブラジル"}
@@ -78,11 +82,11 @@ ja{
BZ{"ベリーズ"}
CA{"カナダ"}
CC{"ココス (キーリング) 諸島"}
- CD{"コンゴ民主共和国"}
+ CD{"コンゴ民主共和国 (キンシャサ)"}
CF{"中央アフリカ共和国"}
- CG{"コンゴ"}
+ CG{"コンゴ共和国 (ブラザビル)"}
CH{"スイス"}
- CI{"コートジボアール"}
+ CI{"コートジボワール"}
CK{"クック諸島"}
CL{"ãƒãƒª"}
CM{"カメルーン"}
@@ -94,7 +98,7 @@ ja{
CV{"カーボベルデ"}
CX{"クリスマス島"}
CY{"キプロス"}
- CZ{"ãƒã‚§ã‚³"}
+ CZ{"ãƒã‚§ã‚³å…±å’Œå›½"}
DE{"ドイツ"}
DJ{"ジブãƒ"}
DK{"デンマーク"}
@@ -129,11 +133,11 @@ ja{
GR{"ギリシャ"}
GS{"å—ジョージア島・å—サンドイッãƒè«¸å³¶"}
GT{"グアテマラ"}
- GU{"グアム島"}
+ GU{"グアム"}
GW{"ギニアビサウ"}
GY{"ガイアナ"}
HK{"中è¯äººæ°‘共和国香港特別行政区"}
- HM{"ãƒãƒ¼ãƒ‰ãƒ»ã‚¢ãƒ³ãƒ‰ãƒ»ãƒžã‚¯ãƒ‰ãƒŠãƒ«ãƒ‰ãƒ»ã‚¢ã‚¤ãƒ©ãƒ³ã‚º"}
+ HM{"ãƒãƒ¼ãƒ‰å³¶ãƒ»ãƒžã‚¯ãƒ‰ãƒŠãƒ«ãƒ‰è«¸å³¶"}
HN{"ホンジュラス"}
HR{"クロアãƒã‚¢"}
HT{"ãƒã‚¤ãƒ"}
@@ -213,10 +217,10 @@ ja{
PH{"フィリピン"}
PK{"パキスタン"}
PL{"ãƒãƒ¼ãƒ©ãƒ³ãƒ‰"}
- PM{"サンピエール・エ・ミクロン島"}
+ PM{"サンピエール島・ミクロン島"}
PN{"ピトケアン島"}
PR{"プエルトリコ"}
- PS{"パレスãƒãƒŠ"}
+ PS{"パレスãƒãƒŠé ˜åœŸ"}
PT{"ãƒãƒ«ãƒˆã‚¬ãƒ«"}
PW{"パラオ"}
PY{"パラグアイ"}
@@ -228,11 +232,11 @@ ja{
RW{"ルワンダ"}
SA{"サウジアラビア"}
SB{"ソロモン諸島"}
- SC{"セイシェル"}
+ SC{"セーシェル"}
SD{"スーダン"}
SE{"スウェーデン"}
SG{"シンガãƒãƒ¼ãƒ«"}
- SH{"セントヘレナ島"}
+ SH{"セントヘレナ"}
SI{"スロベニア"}
SJ{"スãƒãƒ¼ãƒ«ãƒãƒ«è«¸å³¶ãƒ»ãƒ¤ãƒ³ãƒžã‚¤ã‚¨ãƒ³å³¶"}
SK{"スロãƒã‚­ã‚¢"}
@@ -247,7 +251,7 @@ ja{
SZ{"スワジランド"}
TC{"タークス諸島・カイコス諸島"}
TD{"ãƒãƒ£ãƒ‰"}
- TF{"ä»å—方領"}
+ TF{"フランス領極å—諸島"}
TG{"トーゴ"}
TH{"タイ"}
TJ{"タジキスタン"}
@@ -267,15 +271,15 @@ ja{
US{"アメリカåˆè¡†å›½"}
UY{"ウルグアイ"}
UZ{"ウズベキスタン"}
- VA{"ãƒ­ãƒ¼ãƒžæ•™çš‡åº (ãƒãƒã‚«ãƒ³å¸‚国)"}
+ VA{"ãƒãƒã‚«ãƒ³å¸‚国"}
VC{"セントビンセント・グレナディーン諸島"}
VE{"ベãƒã‚ºã‚¨ãƒ©"}
- VG{"英領ãƒãƒ¼ã‚¸ãƒ³è«¸å³¶"}
- VI{"米領ãƒãƒ¼ã‚¸ãƒ³è«¸å³¶"}
+ VG{"イギリス領ヴァージン諸島"}
+ VI{"アメリカ領ヴァージン諸島"}
VN{"ベトナム"}
VU{"ãƒãƒŒã‚¢ãƒ„"}
- WF{"ウォリス・フトーナ"}
- WS{"西サモア"}
+ WF{"ウォリス・フツナ"}
+ WS{"サモア"}
YE{"イエメン"}
YT{"マヨット島"}
ZA{"å—アフリカ"}
@@ -313,7 +317,7 @@ ja{
}
AOA{
"AOA",
- "クワンザ (AOA)",
+ "クワンザ",
}
AOK{
"AOK",
@@ -339,6 +343,10 @@ ja{
"ARS",
"アルゼンãƒãƒ³ ペソ",
}
+ ATS{
+ "ATS",
+ "オーストリア シリング",
+ }
AUD{
"AUD",
"オーストラリア ドル",
@@ -381,7 +389,7 @@ ja{
}
BGL{
"BGL",
- "ブルガリア レフ (BGL)",
+ "ブルガリア レフ",
}
BGN{
"BGN",
@@ -405,7 +413,7 @@ ja{
}
BOB{
"BOB",
- "ボリビアノ",
+ "ボリビアーノ",
}
BOP{
"BOP",
@@ -417,15 +425,15 @@ ja{
}
BRB{
"BRB",
- "ブラジル 新クルゼイロ (BRBã€1967-1986)",
+ "ブラジル 新クルゼイロ (1967-1986)",
}
BRC{
"BRC",
- "ブラジル クルゼイロ (BRC)",
+ "ブラジル クルゼイロ",
}
BRE{
"BRE",
- "ブラジル クルゼイロ (BREã€1990-1993)",
+ "ブラジル クルゼイロ (1990-1993)",
}
BRL{
"BRL",
@@ -433,7 +441,7 @@ ja{
}
BRN{
"BRN",
- "ブラジル 新クルゼイロ (BRN)",
+ "ブラジル 新クルゼイロ",
}
BRR{
"BRR",
@@ -457,7 +465,7 @@ ja{
}
BYB{
"BYB",
- "ベラルーシ ルーブル (BYBã€1994-1999)",
+ "ベラルーシ ルーブル (1994-1999)",
}
BYR{
"BYR",
@@ -475,10 +483,18 @@ ja{
"CDF",
"コンゴ フラン",
}
+ CHE{
+ "CHE",
+ "WIR ユーロ",
+ }
CHF{
"CHF",
"スイス フラン",
}
+ CHW{
+ "CHW",
+ "WIR フラン",
+ }
CLF{
"CLF",
"ãƒãƒª ウニダ デ フォメント",
@@ -488,20 +504,28 @@ ja{
"ãƒãƒª ペソ",
}
CNY{
- "中国 元",
+ "å…ƒ",
"中国人民元",
}
COP{
"COP",
"コロンビア ペソ",
}
+ COU{
+ "COU",
+ "レアル (UVR)",
+ }
CRC{
"CRC",
"コスタリカ コロン",
}
+ CSD{
+ "CSD",
+ "セルビアン ディナール",
+ }
CSK{
"CSK",
- "ãƒã‚§ã‚³ã‚¹ãƒ­ãƒã‚­ã‚¢ コルナ (CSK)",
+ "ãƒã‚§ã‚³ã‚¹ãƒ­ãƒã‚­ã‚¢ コルナ",
}
CUP{
"CUP",
@@ -559,6 +583,10 @@ ja{
"EGP",
"エジプト ãƒãƒ³ãƒ‰",
}
+ EQE{
+ "EQE",
+ "エクウェレ",
+ }
ERN{
"ERN",
"エリトリア ナクファ",
@@ -688,7 +716,7 @@ ja{
"イスラエル新シェケル",
}
INR{
- "インド ルピー",
+ "INR",
"インド ルピー",
}
IQD{
@@ -717,7 +745,7 @@ ja{
}
JPY{
"ï¿¥",
- "円",
+ "日本円",
}
KES{
"KES",
@@ -775,6 +803,10 @@ ja{
"LSL",
"レソト ロティ",
}
+ LSM{
+ "LSM",
+ "マロティ",
+ }
LTL{
"LTL",
"リトアニア リタス",
@@ -860,7 +892,7 @@ ja{
"モルディブ諸島 ルフィア",
}
MWK{
- "MK",
+ "MWK",
"マラウィ クワãƒãƒ£",
}
MXN{
@@ -869,7 +901,7 @@ ja{
}
MXP{
"MXP",
- "メキシコ ペソ (MXPã€1861-1992)",
+ "メキシコ ペソ (1861-1992)",
}
MXV{
"MXV",
@@ -971,6 +1003,10 @@ ja{
"QAR",
"カタール リアル",
}
+ RHD{
+ "RHD",
+ "ローデシア ドル",
+ }
ROL{
"ROL",
"ルーマニア レイ",
@@ -1193,7 +1229,7 @@ ja{
}
XDR{
"XDR",
- "特別引ã出ã—権 (Special Drawing Rights)",
+ "特別引ã出ã—権",
}
XEU{
"XEU",
@@ -1201,7 +1237,7 @@ ja{
}
XFO{
"XFO",
- "フランス フラン (XFO)",
+ "フランス金フラン",
}
XFU{
"XFU",
@@ -1225,7 +1261,7 @@ ja{
}
YUD{
"YUD",
- "ユーゴスラビア ディナール (YUD)",
+ "ユーゴスラビア ディナール",
}
YUM{
"YUM",
@@ -1257,43 +1293,69 @@ ja{
}
}
ExemplarCharacters{
- "[ã-ã‚“ã‚ã‚žã‚¡-ヶヽヾ一-ä¸ä¸ƒä¸‡-下ä¸-与且世丘-丙両並中丸-丹主久ä¹ä¹—ä¹™ä¹ä¹±ä¹³ä¹¾äº†äºˆ-争事-二互五-井亜亡交享-亭人ä»ä»Š-介ä»ä»•-他付-仙代-以仮仰仲"
- "件任ä¼ä¼-休会ä¼ä¼¯ä¼´ä¼¸ä¼ºä¼¼ä½†ä½-ä½ä½“何余作佳併使例ä¾ä¾›ä¾ä¾¡ä¾®-侯侵便係-促俊俗ä¿ä¿¡ä¿®ä¿³ä¿µä¿¸å€‰å€‹å€å€’候借倣-値倫倹å‰ååœå¥å´-å¶å½å‚傑傘-備催債傷傾åƒåƒåƒ•"
- "僚僧儀億儒償優元-兆先-光克å…å…党入全八-六共兵具-典兼内-円冊å†å†’冗写冠冬冷准å‡å‡å‡¡å‡¦å‡¶å‡¸-出刀刃分-刈刊刑列åˆåˆ¤-別利到制-券刺-刻則削å‰å‰–剛剣-剤"
- "副-剰割創劇力功-加劣助-努励労効劾勅勇勉動勘-å‹™å‹å‹Ÿå‹¢å‹¤å‹§å‹²å‹ºåŒåŒ…化-北匠匹-医匿ååƒå‡-åˆåŠå‘-å”å—-å˜åšå å°-å±å³-åµå¸åŽ„厘厚原厳去å‚åˆåŠ-åŽå”å–"
- "-å—å™å£-å¥å«-å¬å¯-å°å²-å³å·-å¸å„åˆ-å‰åŒ-å‘å›åŸå¦å«å¸-å¹å‘ˆ-告周味呼-命和咲哀-å“員哲唆-唇å”唯唱商å•å•“å–„å–šå–œ-å–å–ª-喫営嗣嘆嘱器噴嚇囚-四回因"
- "団困囲-図固国åœåœ’土圧-在地å‚å‡åŠå‘åªåž‚型垣埋城域執培-基堀堂堅堕堤堪報場塀-å¡å¡Šå¡‘塔塗塚塩塾境墓増墜墨墳墾å£å£‡å£Šå£Œå£«å£®å£°-売変å¤å¤•-外多夜夢大天-夫央"
- "失奇奉å¥å¥‘奔奥奨奪奮女-奴好如-妄妊妙妥妨妹妻姉始姓-委姫姻姿å¨å¨˜å¨ å¨¯å©†å©šå©¦å©¿åª’å«å«Œå«¡å¬¢å­å­”å­—-å­˜å­å­£-孤学孫宅宇-安完宗-定宜-å®å®Ÿå®¢-室宮宰害-家容"
- "宿寂寄密富寒寛å¯å¯Ÿå¯¡å¯§å¯©å¯®å¯¸å¯ºå¯¾-寿å°-専射将尉-å°‹å°Ž-å°å°‘尚就尺尼-局居屈届-屋展属層-履屯山å²å²©å²¬å²³å²¸å³ -峡峰島崇崎崩å·-州巡巣工-巨差己巻市-布帆"
- "希å¸å¸¥å¸«å¸­å¸¯-帰帳常帽幅幕幣干-年幸-幹幻-å¹¾åºåºƒåºŠåºåº•åº—府度-座庫庭庶-庸廃廉-廊延-廷建å¼å¼Šå¼-å¼å¼“-引弟弦-弧弱張強弾当形彩彫彰-影役彼往-å¾å¾„-"
- "待律-後å¾å¾’-従得御復-循微徳-徴徹心必忌-å¿å¿—-忙応忠快念怒怖æ€æ€ æ€¥æ€§æ€ªæ‹ææ’æ¥æ¨-æ©æ­æ¯æµæ‚”æ‚Ÿ-悠患悦悩-悪悲悼情惑惜惨惰想æ„愉æ„æ„š-愛感慈態-慌慎"
- "æ…•æ…¢-慣慨慮慰慶憂憎憤憩憲憶憾懇æ‡æ‡²æ‡¸æˆ-戒戦戯戸戻房-所扇扉手æ‰æ‰“払扱扶批承-技抄把抑投抗-折抜択披抱抵抹押-抽担æ‹æ‹æ‹’-拓拘-拙招æ‹æ‹ -拡括拷拾æŒæŒ‡"
- "挑挙挟振挿æ•æœæ¨æ®æŽƒæŽˆæŽŒæŽ’掘掛採-探接控-推措掲æ-ææš-æ›æ¡æ®æ´æºææ¬-æ­æºæ¾æ‘‚摘摩撃撤撮撲æ“æ“擦擬支改攻放-政故æ•æ•‘敗教敢-散敬数整-敵敷文斉斎斗料"
- "斜斤-斥断新方施旅旋æ—旗既日旧-早旬昆-昇明易-昔星-映春昨昭是昼時晩普-景晴晶æšæš‡æš‘æš–-暗暦暫暮暴曇曜曲更書-曹替-最月-有æœæœ•æœ—望æœæœŸæœ¨æœª-札朱朴机"
- "朽æ‰æ-æ‘æŸæ¡æ¥æ¯æ±æ¾-æ¿æžæž—æžšæžœ-æžæž æž¢æž¯æž¶æŸ„æŸæŸ“-柔柱柳査栄栓校株核-根格-栽桃案桑桜桟梅械棄棋棒棚棟森棺æ¤æ¤œæ¥­æ¥µæ¥¼-楽概構様槽標模権-横樹橋機欄欠"
- "-次欧欲欺款歌歓止-正武歩歯歳-歴死殉-残殖殴-段殺-殻殿æ¯-毎毒比毛æ°æ°‘æ°—æ°´æ°·-æ°¸æ±-求汗汚江-池決汽沈沖没-沢河沸-油治-沼沿æ³æ³‰-泊泌法泡-泣泥注"
- "泰泳洋洗洞津洪活派æµæµ„-浅浜浦浪浮浴海-浸消涙涯液涼淑淡深混添清渇-渉渋渓減渡渦温測港湖湯湾-満æºæº–æºæº¶æ»…滋滑æ»-滞滴æ¼-漂漆æ¼æ¼”漠漢漫-漬漸潔潜潟潤潮"
- "澄激-æ¿æ¿ƒæ¿«æ¿¯ç€¬ç«ç¯-ç°ç½ç‚‰-炊炎炭点-為烈無焦然焼煙照煩煮熟熱燃燥爆爵-父片-版牛牧物牲特犠犬犯状狂狩独-狭猛猟猫献猶猿ç„ç£ç²çŽ„率玉王çç ç­ç¾çƒç†ç´ç’°"
- "璽瓶甘甚生産用田-申男町-画界畑畔留畜-ç•ç•¥ç•ªç•°ç•³ç–Žç–‘疫疲疾病症痘痛痢痴療癒癖発-登白-百的皆-皇皮皿盆益盗盛盟監-盤目盲直相盾çœçœ‹-県真-眠眺眼ç€ç¡ç£"
- "瞬矛矢知短矯石砂研-砕砲破ç¡ç¡«-硬ç¢ç¢‘確ç£ç£¨ç¤ç¤Žç¤ºç¤¼ç¤¾ç¥ˆ-祉祖ç¥-神祥票祭ç¦ç¦…ç¦ç¦ç§€-ç§ç§‹ç§‘-秒秘租秩称移程税稚種稲稼稿-穀穂ç©ç©ç©«ç©´ç©¶ç©ºçªçªƒçª’-窓窮-"
- "窯立竜章童端競竹笑笛符第筆等筋筒答策箇算管箱節範築篤簡簿ç±ç±³ç²‰ç²‹ç²’ç²—-粘粛粧精糖糧糸系糾紀約-ç´…ç´‹ç´ç´”ç´™-紛素-索紫累-細紳紹-紺終組経çµçµžçµ¡çµ¦çµ±çµµ-絶"
- "絹継-続維綱-網綿緊ç·ç·‘-ç·’ç·šç· ç·¨-緩緯練ç¸ç¸„縛縦縫縮績ç¹ç¹Šç¹”-繕繭繰缶罪置罰署罷羅羊美群義羽ç¿ç¿Œç¿’ç¿»-翼è€è€ƒè€…è€è€•è€—耳è–èžè´è·è‚‰è‚Œè‚–è‚肢肥肩-肪肯育肺"
- "胃胆背胎胞胴胸能脂脅脈脚脱脳脹è…è…•è…°è…¸-腹膚膜膨臓臣臨自臭至-致興舌舎舗舞-舟航般舶船艇艦良色芋èŠèŠ±èŠ³èŠ¸èŠ½è‹—è‹¥-苦英茂茎茶è‰è’è˜è·èŠèŒè“èœè¯è½è‘‰è‘—葬蒸蓄"
- "蔵薄薦薪-薬藩藻è™è™šè™œè™žè™«èšŠèš•è›‡è›è›®èžè¡€è¡†è¡Œè¡“è¡—è¡›è¡è¡¡è¡£è¡¨è¡°è¡·è¢‹è¢«è£-裂装è£è£•è£œè£¸è£½è¤‡è¤è¤’襟襲西è¦è¦†-覇見è¦è¦–覚覧親観角解触言訂計討訓託-記訟訪設許訳-"
- "訴診証è©è©”-評詞詠試詩詰-詳誇誉誌-èªèª“誕誘語誠誤説-読課調談請論諭-諮諸諾謀-è¬è¬„謙講è¬è¬¡è¬¹è­˜è­œè­¦è­°è­²è­·è°·è±†è±Šè±šè±¡è±ªè²-貞負-貢貧-販貫-責貯貴買-貸"
- "費貿-賀賃-賄資賊賓賛-賜賞賠賢賦質購贈赤赦走赴起超越趣足è·è·¡è·¯è·³è·µè¸Šè¸èºèº«è»Šè»Œ-è»è»’軟転軸軽較載è¼è¼©-輪輸轄辛辞辱-農辺込迅迎近返迫迭述迷追退-é€é€ƒé€†"
- "é€-é€é€“-途通é€é€Ÿ-造連逮週-進逸é‚é…é‡éŠ-é‹é-éŽé“-é•é é£é©é­-é®éµé·-é¸éºé¿é‚„邦邪邸郊郎郡部郭郵郷都酌-é…酒酔酢酪酬酵酷-酸醜醸釈里-é‡é‡‘é‡é‡£éˆéˆ´"
- "鉄鉛鉢鉱銀銃銅銑銘銭鋭鋳鋼錘錠錬錯録é›éŽ–鎮é¡é˜é‘‘長門閉開閑間関-閣閥閲闘防阻附é™é™é™›é™¢-陥陪陰陳陵-陶陸険陽隅-隆隊階-éšéš”éš›-障隠隣隷隻雄-雇雌雑離-"
- "難雨雪雰雲零-雷電需震霊霜霧露é’é™éžé¢é©é´éŸ³éŸ»éŸ¿é ‚é …-é †é -頒領頭頻-頼題-é¡é¡”-顕願類顧風飛食飢飯飲飼-飾養餓館首香馬駄-駆é§é¨Žé¨’-験騰驚骨髄高髪鬼魂"
- "魅魔魚鮮鯨鳥鳴é¶éº—麦麻黄黒黙鼓鼻齢]"
+ "[ã‚ ã‚ž ヽ ヾ ãã‚¡ ã‚ã‚¢ ãƒã‚£ ã„イ ã…ã‚¥ ã†ã‚¦ ヴ ã‡ã‚§ ãˆã‚¨ ã‰ã‚© ãŠã‚ª ヵ ã‹ã‚« ãŒã‚¬ ãã‚­ ãŽã‚® ãク ãã‚° ヶ ã‘ケ ã’ゲ ã“コ ã”ã‚´ ã•"
+ "サ ã–ザ ã—ã‚· ã˜ã‚¸ ã™ã‚¹ ãšã‚º ã›ã‚» ãœã‚¼ ãソ ãžã‚¾ ãŸã‚¿ ã ãƒ€ ã¡ãƒ ã¢ãƒ‚ ã£ãƒƒ ã¤ãƒ„ ã¥ãƒ… ã¦ãƒ† ã§ãƒ‡ ã¨ãƒˆ ã©ãƒ‰ ãªãƒŠ ã«ãƒ‹ ã¬ãƒŒ ã­ãƒ ã®ãƒŽ"
+ " ã¯ãƒ ã°ãƒ ã±ãƒ‘ ã²ãƒ’ ã³ãƒ“ ã´ãƒ” ãµãƒ• ã¶ãƒ– ã·ãƒ— ã¸ãƒ˜ ã¹ãƒ™ ãºãƒš ã»ãƒ› ã¼ãƒœ ã½ãƒ ã¾ãƒž ã¿ãƒŸ むム ã‚メ もモ ゃャ やヤ ゅュ ゆユ ょョ "
+ "よヨ らラ りリ るル れレ ã‚ロ ゎヮ ã‚ワ ã‚ヰ ゑヱ をヲ んン 亜 å“€ æ„› 悪 æ¡ åœ§ 扱 安 æš— 案 以 ä½ ä¾ å‰ å›² 委 å¨ å°‰ æ„ æ…° "
+ "易 為 ç•° 移 維 ç·¯ 胃 è¡£ é• éº åŒ» 井 域 育 一 壱 逸 稲 芋 å° å“¡ å›  姻 引 飲 院 é™° éš  韻 å³ å®‡ ç¾½ 雨 渦 浦 é‹ é›² å–¶ "
+ "å½± 映 æ „ æ°¸ æ³³ 英 è¡› è©  é‹­ 液 ç–« 益 駅 悦 è¬ è¶Š é–² 円 園 å®´ 延 æ´ æ²¿ æ¼” ç‚Ž ç…™ 猿 ç¸ é  é‰› å¡© 汚 凹 央 奥 å¾€ å¿œ 押 "
+ "横 欧 æ®´ 王 ç¿ é»„ æ²– å„„ 屋 憶 ä¹™ å¸ æ© æ¸© ç© éŸ³ 下 化 ä»® 何 価 ä½³ 加 å¯ å˜‰ å¤ å« å®¶ 寡 科 暇 æžœ 架 æ­Œ æ²³ ç« ç¦ ç¨¼ "
+ "箇 花 è· è¯ è“ èª² 貨 éŽ èšŠ 我 ç”» 芽 è³€ é›… 餓 介 会 解 回 å¡Š 壊 å¿« 怪 æ‚” æ‡ æˆ’ æ‹ æ”¹ 械 æµ· ç° ç•Œ 皆 çµµ é–‹ 階 è² åŠ¾ "
+ "外 害 æ…¨ 概 涯 è¡— 該 垣 嚇 å„ æ‹¡ æ ¼ æ ¸ æ®» ç² ç¢º ç©« 覚 角 較 郭 é–£ éš” é© å­¦ å²³ 楽 é¡ æŽ› 潟 割 å– æ‹¬ æ´» 渇 滑 è¤ è½„ "
+ "且 æ ª 刈 ä¹¾ 冠 寒 刊 勘 勧 å·» å–š å ª 完 官 寛 å¹² å¹¹ æ‚£ æ„Ÿ æ…£ 憾 æ› æ•¢ 棺 款 æ­“ æ±— æ¼¢ ç’° 甘 監 看 管 ç°¡ ç·© 缶 è‚ è‰¦ "
+ "観 貫 é‚„ é‘‘ é–“ é–‘ é–¢ 陥 韓 館 丸 å« å²¸ 眼 岩 é ‘ é¡” 願 ä¼ å± å–œ 器 基 奇 寄 å² å¸Œ å¹¾ å¿Œ æ® æœº æ—— æ—¢ 期 棋 棄 æ©Ÿ 帰 "
+ "æ°— æ±½ 祈 å­£ ç´€ è¦ è¨˜ è²´ èµ· 軌 è¼ é£¢ 騎 鬼 亀 å½ å„€ 宜 戯 技 擬 欺 犠 ç–‘ 義 è­° èŠ å‰ å–« è©° å´ å®¢ è„š è™ é€† 丘 ä¹… 休 "
+ "åŠ å¸ å®® 弓 急 æ•‘ 朽 求 æ³£ çƒ ç©¶ 窮 ç´š ç³¾ 給 æ—§ 牛 去 å±… å·¨ æ‹’ æ‹  挙 虚 許 è· æ¼ é­š 亨 享 京 ä¾› 競 å…± 凶 å” å« å¢ƒ "
+ "峡 å¼· æ æ­ æŒŸ æ•™ æ©‹ æ³ ç‹‚ ç‹­ 矯 胸 è„… 興 郷 é¡ éŸ¿ é©š ä»° å‡ æš æ¥­ å±€ 曲 極 玉 勤 å‡ æ–¤ ç´ ç¦ ç­‹ ç·Š èŒ è¥Ÿ 謹 è¿‘ 金 "
+ "åŸ éŠ€ ä¹ å¥ åŒº 苦 駆 å…· æ„š 虞 空 å¶ é‡ éš… 屈 掘 é´ ç¹° æ¡‘ 勲 å› è–« 訓 群 è» éƒ¡ ä¿‚ 傾 刑 å…„ å•“ åž‹ 契 å½¢ 径 æµ æ…¶ 憩 "
+ "掲 æº æ•¬ 景 渓 ç³» 経 継 茎 è› è¨ˆ è­¦ 軽 é¶ èŠ¸ è¿Ž 鯨 劇 æ’ƒ æ¿€ å‚‘ 欠 決 æ½” ç©´ çµ è¡€ 月 件 倹 å¥ å…¼ 券 剣 åœ å … å«Œ 建 "
+ "憲 懸 検 権 犬 献 ç ” çµ¹ 県 è‚© 見 謙 è³¢ è»’ é£ é™º é¡• 験 å…ƒ 原 厳 å¹» 弦 減 æº çŽ„ ç¾ è¨€ é™ å€‹ å¤ å‘¼ 固 å­¤ å·± 庫 弧 戸 "
+ "æ•… 枯 æ¹– 誇 雇 顧 鼓 五 互 åˆ å‘‰ 娯 後 御 æ‚Ÿ ç¢ èªž 誤 è­· 交 侯 候 å…‰ å…¬ 功 効 厚 å£ å‘ åŽ å‘ å¥½ å­” å­ å·¥ å·§ 幸 広 "
+ "康 弘 æ’ æ…Œ 抗 拘 控 æ”» æ›´ æ ¡ 構 江 æ´ª 港 æº ç”² 皇 硬 稿 ç´… 絞 綱 耕 考 肯 航 è’ è¡Œ è¡¡ 講 è²¢ è³¼ 郊 é…µ 鉱 鋼 é™ é … "
+ "香 高 剛 å· åˆ æ‹· 豪 å…‹ 刻 å‘Š 国 ç©€ é…· é»’ ç„ è…° 骨 è¾¼ 今 å›° 墾 å©š æ¨ æ‡‡ 昆 æ ¹ æ·· ç´º é­‚ ä½ å”† å·¦ å·® 査 ç ‚ è© éŽ– 座 "
+ "債 催 å† æœ€ 妻 å®° 彩 æ‰ æŽ¡ æ ½ æ­³ 済 ç½ ç • 祭 æ–Ž ç´° èœ è£ è¼‰ éš› 剤 在 æ 罪 財 å‚ å’² å´Ž 作 削 æ¾ æ˜¨ ç­– ç´¢ 錯 æ¡œ 冊 "
+ "刷 察 æ’® 擦 札 殺 雑 çš¿ 三 傘 å‚ å±± 惨 æ•£ æ¡Ÿ 産 ç®— èš• è³› é…¸ æš« 残 仕 伺 使 刺 å¸ å² å—£ å›› 士 始 姉 姿 å­ å¸‚ 師 å¿— "
+ "æ€ æŒ‡ 支 æ–½ æ—¨ æž æ­¢ æ­» æ° ç¥‰ ç§ ç³¸ ç´™ ç´« è‚¢ è„‚ 至 視 è©ž è©© 試 誌 è«® 資 賜 雌 飼 æ­¯ 事 ä¼¼ ä¾ å… å­— 寺 æ…ˆ æŒ æ™‚ 次 "
+ "滋 æ²» ç’½ ç£ ç¤º 耳 自 辞 å¼ è­˜ 軸 七 執 失 室 湿 漆 ç–¾ 質 実 èŠ èˆŽ 写 å°„ æ¨ èµ¦ æ–œ ç…® 社 者 è¬ è»Š é® è›‡ 邪 借 勺 å°º "
+ "爵 é…Œ 釈 è‹¥ 寂 å¼± 主 å– å®ˆ 手 朱 殊 ç‹© ç  ç¨® 趣 é…’ 首 å„’ å— å¯¿ 授 樹 需 囚 åŽ å‘¨ å®— å°± å·ž ä¿® æ„ æ‹¾ 秀 秋 終 ç¿’ 臭 "
+ "舟 衆 襲 週 é…¬ 集 醜 ä½ å…… å 従 柔 æ± æ¸‹ ç£ ç¸¦ é‡ éŠƒ å” å®¿ æ·‘ ç¥ ç¸® ç²› 塾 熟 出 è¡“ è¿° ä¿Š 春 瞬 准 循 æ—¬ 殉 準 潤 "
+ "盾 ç´” å·¡ éµ é † 処 åˆ æ‰€ æš‘ 庶 ç·’ ç½² 書 諸 助 å™ å¥³ åº å¾ é™¤ å‚· å„Ÿ å‹ åŒ  å‡ å¬ å•† å”± 奨 宵 å°† å° å°‘ å°š 床 å½° 承 抄 "
+ "æ‹› 掌 昇 昌 昭 晶 æ¾ æ²¼ 消 渉 焼 焦 ç…§ ç—‡ çœ ç¡ ç¤ ç¥¥ 称 ç«  笑 粧 ç´¹ è‚– è¡ è¨Ÿ 証 è©” 詳 象 賞 é˜ éšœ 上 丈 ä¹— 冗 剰 "
+ "城 å ´ 壌 嬢 常 情 æ¡ æµ„ 状 畳 è’¸ è­² 醸 錠 嘱 飾 æ¤ æ®– ç¹” è· è‰² 触 食 è¾± 伸 ä¿¡ ä¾µ 唇 娠 å¯ å¯© 心 æ…Ž 振 æ–° 森 浸 æ·± "
+ "申 真 神 ç´³ 臣 è–ª 親 診 身 è¾› 進 é‡ éœ‡ 人 ä» åˆƒ å°‹ 甚 å°½ è¿… 陣 é…¢ 図 å¹ åž‚ 帥 推 æ°´ ç‚Š ç¡ ç²‹ è¡° é‚ é…” 錘 éš é«„ å´‡ "
+ "æ•° 枢 æ® æ‰ æ¾„ 寸 世 瀬 ç• æ˜¯ 制 å‹¢ 姓 å¾ æ€§ æˆ æ”¿ æ•´ 星 æ™´ æ­£ 清 牲 生 ç›› ç²¾ è– å£° 製 西 誠 誓 è«‹ é€ é’ é™ æ–‰ 税 "
+ "éš» 席 惜 æ–¥ 昔 æž çŸ³ ç© ç± ç¸¾ 責 赤 è·¡ 切 æ‹™ 接 æ‘‚ 折 設 窃 節 説 雪 絶 舌 ä»™ å…ˆ åƒ å  å®£ å°‚ å· æˆ¦ 扇 æ “ 泉 æµ… æ´— "
+ "染 潜 æ—‹ ç·š 繊 船 è–¦ è·µ é¸ é· éŠ­ 銑 é®® å‰ å–„ 漸 然 å…¨ 禅 繕 å¡‘ 措 ç–Ž 礎 祖 租 ç²— ç´  組 訴 阻 僧 創 åŒ å€‰ å–ª 壮 å¥ "
+ "層 想 æœ æŽƒ 挿 æ“ æ—© 曹 å·£ 槽 燥 争 相 窓 ç· è‰ è˜ è‘¬ è—» 装 èµ° é€ é­ éœœ 騒 åƒ å¢— 憎 臓 蔵 è´ˆ 造 促 å´ å‰‡ å³ æ¯ æŸ "
+ "測 足 速 ä¿— 属 賊 æ— ç¶š å’ å­˜ å­« å°Š æ æ‘ ä»– 多 太 å • 妥 惰 打 駄 体 対 è€ å¸¯ å¾… 怠 æ…‹ 替 æ³° 滞 胎 袋 貸 退 逮 隊 "
+ "代 å° å¤§ 第 é¡Œ æ» å“ å®… 択 æ‹“ æ²¢ 濯 託 æ¿ è«¾ 但 é” å¥ª 脱 棚 è°· 丹 å˜ å˜† æ‹… 探 æ·¡ ç‚­ 短 端 胆 誕 é› å›£ 壇 å¼¾ æ–­ æš– "
+ "段 ç”· 談 値 知 地 æ¥ æ±  ç—´ 稚 ç½® 致 é… ç¯‰ ç•œ 竹 è“„ é€ ç§© 窒 茶 å«¡ ç€ ä¸­ 仲 å®™ å¿  抽 昼 柱 注 虫 è¡· 鋳 é§ è‘— 貯 ä¸ "
+ "å…† 帳 åº å¼” å¼µ 彫 å¾´ 懲 挑 æœ æ½® 町 眺 è´ è„¹ è…¸ 調 超 è·³ é•· é ‚ é³¥ å‹… ç›´ 朕 沈 ç 賃 鎮 陳 æ´¥ 墜 追 ç—› 通 å¡š 漬 åª "
+ "釣 亭 低 åœ åµ è²ž 呈 å ¤ 定 å¸ åº• 庭 å»· 弟 抵 æ 禎 程 ç·  艇 訂 逓 邸 æ³¥ 摘 敵 æ»´ çš„ 笛 é© å“² å¾¹ æ’¤ è¿­ 鉄 å…¸ 天 展 "
+ "店 æ·» 転 点 ä¼ æ®¿ ç”° é›» å å¡— å¾’ æ–— 渡 ç™» 途 都 努 度 土 奴 怒 倒 å…š 冬 å‡ åˆ€ å” å¡” 島 悼 投 æ­ æ± æ¡ƒ 棟 ç›— 湯 ç¯ "
+ "当 ç—˜ ç­‰ ç­” ç­’ ç³– çµ± 到 討 謄 豆 è¸ é€ƒ é€ é™¶ é ­ 騰 é—˜ åƒ å‹• åŒ å ‚ å°Ž æ´ž ç«¥ 胴 é“ éŠ… å³  匿 å¾— å¾³ 特 ç£ ç¯¤ 毒 独 読 "
+ "凸 çª å±Š 屯 豚 曇 éˆ å†… 縄 å— è»Ÿ 難 二 å°¼ å¼ è‚‰ æ—¥ ä¹³ å…¥ 如 å°¿ ä»» 妊 å¿ èª å¯§ 猫 熱 å¹´ 念 燃 粘 æ‚© 濃 ç´ èƒ½ 脳 è¾² "
+ "把 覇 æ³¢ æ´¾ ç ´ 婆 馬 俳 廃 æ‹ æŽ’ æ•— æ¯ èƒŒ 肺 輩 é… å€ åŸ¹ 媒 梅 è²· 売 è³  陪 伯 åš æ‹ æ³Š 白 舶 è–„ è¿« æ¼  爆 縛 麦 ç®± "
+ "è‚Œ ç•‘ å…« 鉢 発 髪 ä¼ ç½° 抜 é–¥ ä¼´ 判 åŠ å 帆 æ¬ æ¿ ç‰ˆ 犯 ç­ ç•” ç¹ èˆ¬ è—© 販 範 ç…© é ’ 飯 晩 番 盤 è›® å‘ å¦ å¦ƒ å½¼ 悲 "
+ "扉 批 披 比 泌 ç–² çš® 碑 秘 ç½· è‚¥ 被 è²» é¿ éž é£› å‚™ å°¾ å¾® 美 é¼» 匹 å¿… ç­† 姫 百 俵 標 æ°· 漂 票 表 è©• æ ç—… 秒 è‹— å“ "
+ "浜 貧 賓 é » æ• ç“¶ ä¸ ä»˜ 夫 婦 富 布 府 怖 扶 æ•· æ™® æµ® 父 符 è… è†š è­œ è²  賦 èµ´ 附 ä¾® æ­¦ 舞 部 å° é¢¨ ä¼ å‰¯ 復 å¹… æœ "
+ "ç¦ è…¹ 複 覆 払 沸 ä» ç‰© 分 å™´ 墳 憤 奮 粉 ç´› é›° æ–‡ èž ä¸™ ä½µ å…µ å¡€ å¹£ å¹³ 弊 柄 並 é–‰ é™› ç±³ å£ ç™– 別 å 変 片 ç·¨ 辺 "
+ "è¿” é 便 勉 å¼ ä¿ èˆ— æ• æ­© 補 ç©‚ å‹Ÿ 墓 æ…• æš® æ¯ ç°¿ 倣 俸 包 å ± 奉 å® å³° å´© 抱 放 æ–¹ 法 泡 ç ² 縫 胞 芳 褒 訪 豊 邦 "
+ "飽 ä¹ äº¡ å‚ å‰– åŠ å¦¨ 帽 忘 å¿™ 房 æš´ 望 æŸ æ£’ 冒 ç´¡ 肪 膨 謀 貿 防 北 僕 墨 æ’² 朴 牧 没 å € 奔 本 ç¿» 凡 盆 æ‘© 磨 é­” "
+ "麻 埋 妹 æžš 毎 幕 膜 åˆ æŠ¹ 末 ç¹­ 万 æ…¢ 満 漫 味 未 é­… 岬 密 脈 妙 æ°‘ 眠 å‹™ 夢 ç„¡ 矛 霧 å©¿ 娘 å 命 明 盟 è¿· 銘 é³´ "
+ "æ»… å… ç¶¿ é¢ æ¨¡ 茂 妄 毛 猛 盲 網 耗 木 é»™ ç›® 戻 å• ç´‹ é–€ åŒ å¤œ 野 矢 厄 å½¹ ç´„ è–¬ 訳 èº æŸ³ 愉 æ²¹ ç™’ è«­ 輸 唯 優 勇 "
+ "å‹ å¹½ æ‚  憂 有 猶 ç”± 裕 誘 éŠ éƒµ 雄 èž å¤• 予 ä½™ 与 誉 é  å¹¼ 容 庸 æš æº æ“ æ›œ 様 æ´‹ 溶 用 窯 羊 葉 è¦ è¬¡ 踊 陽 養 "
+ "抑 欲 æµ´ ç¿Œ 翼 ç¾… 裸 æ¥ é ¼ é›· 絡 è½ é…ª ä¹± åµ æ¬„ æ¿« 覧 利 å å±¥ ç† ç—¢ è£ é‡Œ 離 陸 律 率 ç«‹ ç•¥ æµ ç•™ ç¡« ç²’ 隆 ç«œ æ…® "
+ "æ—… 虜 了 僚 両 寮 æ–™ 涼 猟 療 糧 良 é‡ é™µ é ˜ 力 ç·‘ 倫 厘 æž— 臨 輪 隣 å¡ æ¶™ ç´¯ é¡ž 令 例 冷 励 礼 鈴 éš· 零 霊 麗 é½¢ "
+ "暦 æ­´ 列 劣 烈 裂 廉 æ‹ ç·´ 連 錬 炉 è·¯ 露 労 廊 朗 楼 浪 æ¼ è€ éƒŽ å…­ 禄 録 è«– å’Œ 話 賄 惑 æž  æ¹¾ è…• 祚 雉 拼 錄 鳯]"
}
Keys{
- calendar{"暦"}
- collation{"ç…§åˆé †ç•ª"}
+ calendar{"暦法"}
+ collation{"ç…§åˆ"}
currency{"通貨"}
}
Languages{
- aa{"アファール語"}
+ aa{"アファル語"}
ab{"アブãƒã‚ºèªž"}
ace{"ã‚¢ãƒã‚§ãƒ¼èªž"}
ach{"ã‚¢ãƒãƒ§ãƒªèªž"}
@@ -1303,13 +1365,15 @@ ja{
af{"アフリカーンス語"}
afa{"セム・ãƒãƒ è«¸èªž"}
afh{"アフリヒリ語"}
+ ain{"アイヌ語"}
ak{"アカン語"}
akk{"アッカド語"}
ale{"アレウト語"}
alg{"アルゴンキアン語æ—"}
+ alt{"å—アルタイ語"}
am{"アムãƒãƒ©èªž"}
an{"アラゴン語"}
- ang{"å¤æœŸè‹±èªž"}
+ ang{"å¤ä»£è‹±èªž"}
apa{"アパッãƒèªžæ—"}
ar{"アラビア語"}
arc{"アラム語"}
@@ -1342,6 +1406,7 @@ ja{
bi{"ビスラマ語"}
bik{"ビコル語"}
bin{"ビニ語"}
+ bla{"シクシカ語"}
bm{"ãƒãƒ³ãƒãƒ©èªž"}
bn{"ベンガル語"}
bnt{"ãƒãƒ³ãƒˆã‚¥è«¸èªž"}
@@ -1365,6 +1430,7 @@ ja{
chb{"ãƒãƒ–ãƒãƒ£èªž"}
chg{"ãƒãƒ£ã‚¬ã‚¿ã‚¤èªž"}
chk{"ãƒãƒ¥ãƒ¼ã‚¯èªž"}
+ chm{"マリ語"}
chn{"ビーãƒãƒ»ãƒ©ãƒ»ãƒžãƒ¼ ç­‰"}
cho{"ãƒãƒ§ã‚¯ãƒˆãƒ¼èªž"}
chp{"ãƒãƒšãƒ¯ã‚¤ã‚¢ãƒ³èªž"}
@@ -1380,6 +1446,7 @@ ja{
crh{"クリミア・タタール語"}
crp{"ãã®ä»–ã®æ··æˆèªžãƒ»æ··åˆèªž"}
cs{"ãƒã‚§ã‚³èªž"}
+ csb{"カシューブ語"}
cu{"教会スラブ語"}
cus{"クシュ諸語"}
cv{"ãƒãƒ¥ãƒ´ã‚¡ã‚·ãƒ¥èªž"}
@@ -1390,15 +1457,17 @@ ja{
day{"ダヤク語"}
de{"ドイツ語"}
del{"デラウェア語"}
+ den{"スレイビー語"}
dgr{"ドグリブ語"}
din{"ディンカ語"}
doi{"ドグリ語"}
dra{"ドラヴィダ諸語"}
+ dsb{"低ソルビア語"}
dua{"ドゥアラ語"}
dum{"中世オランダ語"}
- dv{"ディヴェヒ語"}
+ dv{"ディベヒ語"}
dyu{"デゥウラ語"}
- dz{"ブータン語"}
+ dz{"ゾンカ語"}
ee{"エウェ語"}
efi{"エフィック語"}
egy{"å¤ä»£ã‚¨ã‚¸ãƒ—ト語"}
@@ -1414,159 +1483,350 @@ ja{
ewo{"エウォンド語"}
fa{"ペルシア語"}
fan{"ファング語"}
+ fat{"ファンティー語"}
ff{"フラニ語"}
fi{"フィンランド語"}
+ fil{"フィリピノ語"}
+ fiu{"フィン・ウゴル諸語"}
fj{"フィジー語"}
fo{"フェロー語"}
+ fon{"フォン語"}
fr{"フランス語"}
+ frm{"中期フランス語"}
+ fro{"å¤ãƒ•ãƒ©ãƒ³ã‚¹èªž"}
+ fur{"フリウリ語"}
fy{"フリジア語"}
ga{"アイルランド語"}
+ gaa{"ガ語"}
+ gay{"ガヨ語"}
+ gba{"ãƒãƒ¤èªž"}
gd{"スコットランド・ゲール語"}
+ gem{"ゲルマン諸語"}
gez{"ゲエズ語"}
+ gil{"キリãƒã‚¹èªž"}
gl{"ガリシア語"}
- gn{"グワラニ語"}
+ gmh{"中高ドイツ語"}
+ gn{"グアラニー語"}
+ goh{"å¤é«˜ãƒ‰ã‚¤ãƒ„語"}
+ gon{"ゴーンディー語"}
+ gor{"ゴロンタロ語"}
+ got{"ゴート語"}
+ grb{"グレボ語"}
+ grc{"å¤ä»£ã‚®ãƒªã‚·ãƒ£èªž"}
gu{"グジャラート語"}
gv{"マン島語"}
+ gwi{"グウィッãƒãƒ³èªž"}
ha{"ãƒã‚¦ã‚µèªž"}
+ hai{"ãƒã‚¤ãƒ€èªž"}
haw{"ãƒãƒ¯ã‚¤èªž"}
he{"ヘブライ語"}
hi{"ヒンディー語"}
+ hil{"ヒリガイノン語"}
+ him{"ヒマãƒãƒ£ãƒ«èªž"}
+ hit{"ヒッタイト語"}
+ hmn{"フモン語"}
ho{"ヒリモトゥ語"}
hr{"クロアãƒã‚¢èªž"}
+ hsb{"上ソルビア語"}
ht{"ãƒã‚¤ãƒèªž"}
hu{"ãƒãƒ³ã‚¬ãƒªãƒ¼èªž"}
+ hup{"アタパスカ語"}
hy{"アルメニア語"}
hz{"ヘレロ語"}
- ia{"国際語"}
+ ia{"インターリングア語"}
+ iba{"イãƒãƒ³èªž"}
id{"インドãƒã‚·ã‚¢èªž"}
- ie{"国際語"}
+ ie{"インターリング語"}
ig{"イボ語"}
ii{"å››å·ã‚¤èªž"}
+ ijo{"イジョー語"}
ik{"イヌピアック語"}
+ ilo{"イロカノ語"}
+ inc{"インド諸語"}
+ ine{"å°æ¬§è«¸èªž"}
+ inh{"イングシ語"}
io{"イド語"}
+ ira{"イラン語"}
+ iro{"イロコイ語æ—"}
is{"アイスランド語"}
it{"イタリア語"}
iu{"イヌクウティトット語"}
ja{"日本語"}
+ jpr{"ユダヤ・ペルシア語"}
+ jrb{"ユダヤ・アラビア語"}
jv{"ジャワ語"}
ka{"グルジア語"}
+ kaa{"カラ・カルパク語"}
+ kab{"カビル語"}
+ kac{"ã‚«ãƒãƒ³èªž"}
+ kam{"カンãƒèªž"}
+ kar{"カレン語"}
+ kaw{"カウィ語"}
+ kbd{"ã‚«ãƒãƒ«ãƒ‰èªž"}
kg{"コンゴ語"}
+ kha{"カシ語"}
+ khi{"コイサン諸語"}
+ kho{"コータン語"}
ki{"キクユ語"}
kj{"クアニャマ語"}
kk{"カザフ語"}
kl{"グリーンランド語"}
- km{"カンボジア語"}
+ km{"クメール語"}
+ kmb{"キンブンドゥ語"}
kn{"カンナダ語"}
ko{"韓国語"}
kok{"コンカニ語"}
+ kos{"コシャエ語"}
+ kpe{"クペレ語"}
kr{"カヌリ語"}
+ krc{"カラãƒãƒ£ã‚¤èªž"}
+ kro{"クルー語"}
+ kru{"クルク語"}
ks{"カシミール語"}
ku{"クルド語"}
+ kum{"クムク語"}
+ kut{"クテナイ語"}
kv{"コミ語"}
kw{"コーンウォール語"}
ky{"キルギス語"}
la{"ラテン語"}
+ lad{"ラジノ語"}
+ lah{"ラフンダー語"}
+ lam{"ランãƒèªž"}
lb{"ルクセンブルク語"}
+ lez{"レズギ語"}
lg{"ガンダ語"}
li{"リンブルフ語"}
ln{"リンガラ語"}
lo{"ラオ語"}
+ lol{"モンゴ語"}
+ loz{"ロズィ語"}
lt{"リトアニア語"}
lu{"ルãƒãƒ»ã‚«ã‚¿ãƒ³ã‚¬èªž"}
+ lua{"ルãƒãƒ»ãƒ«ãƒ«ã‚¢èªž"}
+ lui{"ルイセーニョ語"}
+ lun{"ルンダ語"}
+ luo{"ルオ語"}
+ lus{"ルシャイ語"}
lv{"ラトビア語"}
+ mad{"マドゥラ語"}
+ mag{"マガヒー語"}
+ mai{"マイティリー語"}
+ mak{"マカッサル語"}
+ man{"マンディンゴ語"}
map{"オーストロãƒã‚·ã‚¢è«¸èªž"}
- mg{"マラガシー語"}
+ mas{"マサイ語"}
+ mdf{"モクシャ語"}
+ mdr{"マンダル語"}
+ men{"メンデ語"}
+ mg{"マダガスカル語"}
+ mga{"中期アイルランド語"}
mh{"マーシャル語"}
mi{"マオリ語"}
+ mic{"ミクマク語"}
+ min{"ミナンカãƒã‚¦èªž"}
+ mis{"ãã®ä»–ã®è¨€èªž"}
mk{"マケドニア語"}
+ mkh{"モン・クメール諸語"}
ml{"マラヤーラム語"}
mn{"モンゴル語"}
+ mnc{"満州語"}
+ mni{"マニプル語"}
+ mno{"マノボ語æ—"}
mo{"モルダビア語"}
+ moh{"モーホーク語"}
+ mos{"モシ語"}
mr{"マラーティー語"}
- ms{"マライ語"}
+ ms{"マレー語"}
mt{"マルタ語"}
+ mun{"ムンダ語æ—"}
mus{"クリーク語"}
+ mwl{"ミランダ語"}
+ mwr{"マールワーリー語"}
my{"ビルマ語"}
+ myn{"マヤ語æ—"}
myv{"エルジャ語"}
na{"ナウル語"}
- nb{"ノルウェー語 (ボクモール)"}
+ nah{"ナワトル語"}
+ nai{"北米インディアン諸語"}
+ nap{"ナãƒãƒªèªž"}
+ nb{"ノルウェー語 (ブークモール)"}
nd{"北ンデベレ語"}
+ nds{"低地ドイツ語ã€ä½Žåœ°ã‚µã‚¯ã‚½ãƒ³èªž"}
ne{"ãƒãƒ‘ール語"}
+ new{"ãƒãƒ¯ãƒ¼ãƒ«èªž"}
ng{"ンドンガ語"}
+ nia{"ニアス語"}
+ nic{"ニジェール・コルドファン諸語"}
+ niu{"ニウーエイ語"}
nl{"オランダ語"}
- nn{"ノルウェー語 (ニューノルスク)"}
+ nn{"ノルウェー語 (ニーノシュク)"}
no{"ノルウェー語"}
+ nog{"ノガイ語"}
+ non{"å¤ãƒŽãƒ«ãƒ‰èªž"}
nr{"å—ンデベレ語"}
+ nso{"北部ソト語"}
+ nub{"ヌビア語æ—"}
nv{"ナãƒãƒ›èªž"}
+ nwc{"å¤å…¸ãƒãƒ¯ãƒ¼ãƒ«èªž"}
ny{"ニャンジャ語ã€ãƒãƒã‚§ãƒ¯èªžã€ãƒã‚§ãƒ¯èªž"}
- oc{"プロヴァンス語"}
+ nym{"ニャムウェジ語"}
+ nyn{"ニャンコレ語"}
+ nyo{"ニョロ語"}
+ nzi{"ンゼマ語"}
+ oc{"オック語 (1500以é™)ã€ãƒ—ロãƒãƒ³ã‚¹èªž"}
oj{"オブジワ語"}
- om{"ガラ語"}
+ om{"オロモ語"}
or{"オリヤー語"}
os{"オセト語"}
+ osa{"オセージ語"}
+ ota{"オスマントルコ語"}
+ oto{"オトミ語æ—"}
pa{"パンジャブ語"}
+ paa{"パプア諸語"}
+ pag{"パンガシナン語"}
+ pal{"パフラヴィ語"}
+ pam{"パンパンガ語"}
+ pap{"パピアメント語"}
+ pau{"パラオ語"}
+ peo{"å¤ä»£ãƒšãƒ«ã‚·ã‚¢èªž"}
+ phi{"フィリピン諸語"}
+ phn{"フェニキア語"}
pi{"パーリ語"}
pl{"ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž"}
- ps{"パシュトー語"}
+ pon{"ãƒãƒ³ãƒšã‚¤èªž"}
+ pra{"プラークリット語æ—"}
+ pro{"å¤æœŸãƒ—ロãƒãƒ³ã‚¹èªž"}
+ ps{"パシュトゥー語"}
pt{"ãƒãƒ«ãƒˆã‚¬ãƒ«èªž"}
qu{"ケãƒãƒ¥ã‚¢èªž"}
+ raj{"ラージャスターン語"}
+ rap{"ラパヌイ語"}
+ rar{"ラロトガ語"}
rm{"レトï¼ãƒ­ãƒžãƒ³èªž"}
- rn{"ルンジ語"}
+ rn{"ルンディ語"}
ro{"ルーマニア語"}
+ roa{"ロマンス諸語"}
+ rom{"ロマーニー語"}
ru{"ロシア語"}
+ rup{"アルーマニア語"}
rw{"ルワンダ語"}
sa{"サンスクリット語"}
+ sad{"サンダウェ語"}
+ sah{"ヤクート語"}
+ sai{"å—米インディアン諸語"}
+ sal{"セイリッシュ語æ—"}
+ sam{"サマリア・アラム語"}
+ sas{"ササク語"}
+ sat{"サンターリー語"}
sc{"サルデーニャ語"}
+ scn{"ã‚·ãƒãƒªã‚¢èªž"}
+ sco{"スコットランド語"}
sd{"シンド語"}
se{"北サーミ語"}
+ sel{"セリクプ語"}
+ sem{"セム諸語"}
sg{"サンゴ語"}
+ sga{"å¤æœŸã‚¢ã‚¤ãƒ«ãƒ©ãƒ³ãƒ‰èªž"}
+ sgn{"手ã¾ã­è¨€èªž"}
sh{"セルボï¼ã‚¯ãƒ­ã‚¢ãƒã‚¢èªž"}
+ shn{"シャン語"}
si{"シンãƒãƒ©èªž"}
sid{"シダモ語"}
+ sio{"スー語æ—"}
+ sit{"シナ・ãƒãƒ™ãƒƒãƒˆè«¸èªž"}
sk{"スロãƒã‚­ã‚¢èªž"}
sl{"スロベニア語"}
+ sla{"スラブ諸語"}
sm{"サモア語"}
+ sma{"å—サーミ語"}
+ smi{"サーミ諸語"}
+ smj{"ルレ・サーミ語"}
+ smn{"イナリ・サーミ語"}
+ sms{"スコルト・サーミ語"}
sn{"ショナ語"}
+ snk{"ソニンケ語"}
so{"ソマリ語"}
+ sog{"ソグド語"}
+ son{"ソンガイ語"}
sq{"アルãƒãƒ‹ã‚¢èªž"}
sr{"セルビア語"}
+ srn{"スリナム語"}
+ srr{"セレル語"}
ss{"シスワティ語"}
- st{"å—セソト語"}
+ ssa{"ナイル・サãƒãƒ©è«¸èªž"}
+ st{"å—部ソト語"}
su{"スンダ語"}
+ suk{"スクマ語"}
+ sus{"スス語"}
+ sux{"シュメール語"}
sv{"スウェーデン語"}
sw{"スワヒリ語"}
syr{"シリア語"}
ta{"タミール語"}
+ tai{"タイ諸語"}
te{"テルグ語"}
+ tem{"テムãƒèªž"}
+ ter{"テレーノ語"}
+ tet{"テトゥン語"}
tg{"タジク語"}
th{"タイ語"}
ti{"ティグリニア語"}
tig{"ティグレ語"}
tk{"トルクメン語"}
+ tkl{"トケラウ語"}
tl{"タガログ語"}
+ tlh{"クリンゴン語"}
+ tli{"トリンギット語"}
+ tmh{"タマシェク語"}
tn{"ツワナ語"}
to{"トンガ語"}
+ tog{"トンガ語 (ニアサ)"}
+ tpi{"トク・ピシン語"}
tr{"トルコ語"}
ts{"ツォンガ語"}
+ tsi{"ãƒãƒ ã‚·ãƒ¥èªž"}
tt{"タタール語"}
+ tum{"トゥンブカ語"}
+ tup{"トゥピ語æ—"}
tut{"アルタイ諸語"}
- tw{"トゥイ語"}
+ tvl{"ツãƒãƒ«èªž"}
+ tw{"トウィ語"}
ty{"タヒãƒèªž"}
+ tyv{"トゥヴァ語"}
+ udm{"ウドムルト語"}
ug{"ウイグル語"}
+ uga{"ウガリト語"}
uk{"ウクライナ語"}
+ umb{"ウンブンドゥ語"}
ur{"ウルドゥー語"}
uz{"ウズベク語"}
+ vai{"ヴァイ語"}
ve{"ベンダ語"}
vi{"ベトナム語"}
vo{"ボラピュク語"}
+ vot{"ボート語"}
wa{"ワロン語"}
+ wak{"ワカシ語æ—"}
+ wal{"ワッラモ語"}
+ war{"ワライ語"}
+ was{"ワショ語"}
+ wen{"ソルビア語æ—"}
wo{"ウォロフ語"}
+ xal{"カルムイク語"}
xh{"コサ語"}
+ yao{"ヤオ語"}
+ yap{"ヤップ語"}
yi{"イディッシュ語"}
yo{"ヨルãƒèªž"}
+ ypk{"ユピック語æ—"}
za{"ãƒãƒ¯ãƒ³èªž"}
+ zap{"ザãƒãƒ†ãƒƒã‚¯èªž"}
+ zen{"ゼナガ語"}
zh{"中国語"}
+ znd{"ザンデ語"}
zu{"ズールー語"}
+ zun{"ズニ語"}
}
LocaleScript{
"Kana",
@@ -1576,85 +1836,121 @@ ja{
Scripts{
Arab{"アラビア文字"}
Armn{"アルメニア文字"}
+ Bali{"ãƒãƒªæ–‡å­—"}
+ Batk{"ãƒã‚¿ã‚¯æ–‡å­—"}
Beng{"ベンガル文字"}
+ Blis{"ブリスシンボル"}
Bopo{"注音字æ¯"}
+ Brah{"ブラーフミー文字"}
Brai{"ブライユ点字"}
+ Bugi{"ブギス文字"}
Buhd{"ブヒッド文字"}
Cans{"çµ±åˆã‚«ãƒŠãƒ€å…ˆä½æ°‘記å·"}
+ Cham{"ãƒãƒ£ãƒ æ–‡å­—"}
Cher{"ãƒã‚§ãƒ­ã‚­ãƒ¼æ–‡å­—"}
+ Cirt{"キアス文字"}
Copt{"コプト文字"}
Cprt{"キプロス文字"}
Cyrl{"キリル文字"}
+ Cyrs{"キリル文字 (å¤ä»£æ•™ä¼šã‚¹ãƒ©ãƒ–語ã®æ–‡å­—)"}
Deva{"デーãƒãƒŠãƒ¼ã‚¬ãƒªãƒ¼æ–‡å­—"}
Dsrt{"デセレット文字"}
+ Egyd{"エジプト民衆文字"}
+ Egyh{"エジプト神官文字"}
+ Egyp{"エジプトè–刻文字"}
Ethi{"エãƒã‚ªãƒ”ア文字"}
Geor{"グルジア文字"}
+ Glag{"グラゴール文字"}
Goth{"ゴート文字"}
Grek{"ギリシャ文字"}
Gujr{"グジャラート文字"}
Guru{"グルムキー文字"}
- Hang{"ãƒãƒ³ã‚°ãƒ«æ–‡å­—"}
+ Hang{"ãƒãƒ³ã‚°ãƒ«"}
Hani{"漢字"}
Hano{"ãƒãƒŒãƒŽã‚ªæ–‡å­—"}
Hans{"簡体字"}
Hant{"ç¹ä½“å­—"}
Hebr{"ヘブライ文字"}
Hira{"ã²ã‚‰ãŒãª"}
- Ital{"å¤ä»£ã‚¤ã‚¿ãƒªã‚¢æ–‡å­—"}
+ Hmng{"パãƒã‚¦ãƒ»ãƒ•ãƒ¢ãƒ³æ–‡å­—"}
+ Hrkt{"カタカナã¨ã²ã‚‰ãŒãª"}
+ Hung{"å¤ä»£ãƒãƒ³ã‚¬ãƒªãƒ¼æ–‡å­—"}
+ Inds{"インダス文字 (ãƒãƒ©ãƒƒãƒ‘文字)"}
+ Java{"ジャワ文字"}
Kana{"カタカナ"}
- Khmr{"カンボジア文字"}
+ Khar{"カローシュティー文字"}
+ Khmr{"クメール文字"}
Knda{"カンナダ文字"}
Laoo{"ラオ文字"}
Latn{"ラテン文字"}
+ Lepc{"レプãƒãƒ£æ–‡å­— (ロン文字)"}
Limb{"リンブ文字"}
Linb{"線文字B"}
+ Mand{"マンダ文字"}
+ Maya{"マヤ象形文字"}
+ Mero{"メロエ文字"}
Mlym{"マラヤーラム文字"}
Mong{"モンゴル文字"}
Mymr{"ミャンマー文字"}
- Ogam{"オガム"}
+ Ogam{"オガム文字"}
+ Orkh{"オルホン文字"}
Orya{"オリヤー文字"}
Osma{"オスマニア文字"}
+ Phag{"パスパ文字"}
+ Phnx{"フェニキア文字"}
+ Roro{"ロンゴロンゴ文字"}
Runr{"ルーン文字"}
+ Sara{"サラティ文字"}
Shaw{"ショー文字"}
Sinh{"シンãƒãƒ©æ–‡å­—"}
+ Sylo{"シロティ・ナグリ文字"}
Syrc{"シリア文字"}
+ Syre{"シリア文字 (エストランゲロ文字)"}
+ Syrj{"シリア文字 (æ±æ–¹ã‚·ãƒªã‚¢æ–‡å­—)"}
+ Syrn{"シリア文字 (西方シリア文字)"}
Tagb{"ã‚¿ã‚°ãƒãƒ³ãƒ¯æ–‡å­—"}
Tale{"タイレ文字"}
+ Talu{"新タイ・ルー文字"}
Taml{"タミール文字"}
Telu{"テルグ文字"}
+ Teng{"テングワール文字"}
+ Tfng{"ティフナグ文字 (ベルベル文字)"}
Tglg{"タガログ文字"}
Thaa{"ターナ文字"}
Thai{"タイ文字"}
Tibt{"ãƒãƒ™ãƒƒãƒˆæ–‡å­—"}
Ugar{"ウガリト文字"}
+ Vaii{"ヴァイ文字"}
+ Xpeo{"å¤ä»£ãƒšãƒ«ã‚·ã‚¢æ–‡å­—"}
Yiii{"イ文字"}
+ Zxxx{"å£æ‰¿è¨€èªžã®ã‚³ãƒ¼ãƒ‰"}
+ Zyyy{"共通コード"}
}
Types{
calendar{
- buddhist{"ä»æš¦"}
+ buddhist{"タイä»æ•™æš¦"}
chinese{"中国暦"}
- gregorian{"グレゴリオ暦"}
- hebrew{"ヘブライ暦"}
+ gregorian{"西暦 (グレゴリオ暦)"}
+ hebrew{"ユダヤ暦"}
islamic{"イスラム暦"}
islamic-civil{"太陽イスラム暦"}
japanese{"和暦"}
}
collation{
- direct{"直接著錄"}
+ big5han{"ç¹ä½“字中国語 (Big5)"}
+ gb2312han{"簡体字中国語 (GB2312)"}
phonebook{"電話帳方å¼"}
- pinyin{"拼音順"}
stroke{"画数順"}
traditional{"æ—§å¼"}
}
}
Variants{
+ NEDIS{"ナティゾーãƒæ–¹è¨€"}
+ POLYTONI{"ãƒãƒªãƒˆãƒ‹ãƒƒã‚¯"}
POSIX{"コンピュータ"}
REVISED{"改訂版"}
}
- Version{"1.61"}
- boundaries{
- word{"word_ja"}
- }
+ Version{"1.89"}
calendar{
gregorian{
AmPmMarkers{
@@ -1710,6 +2006,10 @@ ja{
"紀元å‰",
"西暦",
}
+ wide{
+ "紀元å‰",
+ "西暦",
+ }
}
monthNames{
format{
@@ -1728,18 +2028,28 @@ ja{
"12 月",
}
wide{
- "1月",
- "2月",
- "3月",
- "4月",
- "5月",
- "6月",
- "7月",
- "8月",
- "9月",
- "10月",
- "11月",
- "12月",
+ "1 月",
+ "2 月",
+ "3 月",
+ "4 月",
+ "5 月",
+ "6 月",
+ "7 月",
+ "8 月",
+ "9 月",
+ "10 月",
+ "11 月",
+ "12 月",
+ }
+ }
+ }
+ quarters{
+ format{
+ wide{
+ "第 1 å››åŠæœŸ",
+ "第 2 å››åŠæœŸ",
+ "第 3 å››åŠæœŸ",
+ "第 4 å››åŠæœŸ",
}
}
}
@@ -2000,133 +2310,621 @@ ja{
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
- {
- "America/Halifax",
- "大西洋標準時",
- "AST",
- "大西洋å¤æ™‚é–“",
- "ADT",
- "ãƒãƒªãƒ•ã‚¡ã‚¯ã‚¹",
- }
- {
- "America/St_Johns",
- "ニューファンドランド島標準時",
- "CNT",
- "ニューファンドランド島å¤æ™‚é–“",
- "CDT",
- "セントジョンズ",
- }
- {
- "Asia/Shanghai",
- "中国標準時",
- "CTT",
- "中国標準時",
- "CDT",
- "上海",
- }
- {
- "Europe/Paris",
- "中欧標準時",
- "CET",
- "中欧å¤æ™‚é–“",
- "CEST",
- "パリ",
- }
- {
- "Asia/Jerusalem",
- "イスラエル標準時",
- "IST",
- "イスラエルå¤æ™‚é–“",
- "IDT",
- "エルサレム",
- }
- {
- "Asia/Tokyo",
- "日本標準時",
- "JST",
- "日本標準時",
- "JST",
- "æ±äº¬",
- }
- {
- "Africa/Casablanca",
- "グリニッジ標準時",
- "GMT",
- "グリニッジ標準時",
- "GMT",
- "カサブランカ",
- }
- {
- "Europe/Bucharest",
- "æ±æ¬§æ¨™æº–時",
- "EET",
- "æ±æ¬§å¤æ™‚é–“",
- "EEST",
- "ブカレスト",
- }
- {
- "Pacific/Honolulu",
- "ãƒãƒ¯ã‚¤æ¨™æº–時",
- "HST",
- "ãƒãƒ¯ã‚¤æ¨™æº–時",
- "HST",
- "ホノルル",
- }
- {
- "America/Anchorage",
- "アラスカ標準時",
- "AST",
- "アラスカå¤æ™‚é–“",
- "ADT",
- "アンカレッジ",
- }
- {
- "America/Los_Angeles",
- "太平洋標準時",
- "PST",
- "太平洋å¤æ™‚é–“",
- "PDT",
- "ロサンゼルス",
- }
- {
- "America/Phoenix",
- "山地標準時",
- "MST",
- "山地標準時",
- "MST",
- "フェニックス",
- }
- {
- "America/Denver",
- "山地標準時",
- "MST",
- "山地å¤æ™‚é–“",
- "MDT",
- "デンãƒãƒ¼",
- }
- {
- "America/Chicago",
- "中部標準時",
- "CST",
- "中部å¤æ™‚é–“",
- "CDT",
- "ã‚·ã‚«ã‚´",
- }
- {
- "America/Indianapolis",
- "æ±éƒ¨æ¨™æº–時",
- "EST",
- "æ±éƒ¨æ¨™æº–時",
- "EST",
- "インディアナãƒãƒªã‚¹",
- }
- {
- "America/New_York",
- "æ±éƒ¨æ¨™æº–時",
- "EST",
- "æ±éƒ¨å¤æ™‚é–“",
- "EDT",
- "ニューヨーク",
+ "Africa:Bamako"{
+ ec{"アフリカ/ãƒãƒžã‚³"}
+ }
+ "Africa:Casablanca"{
+ ec{"カサブランカ"}
+ ld{"グリニッジ標準時"}
+ ls{"グリニッジ標準時"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "Africa:Ceuta"{
+ ec{"アフリカ/セウタ"}
+ }
+ "Africa:Kinshasa"{
+ ec{"アフリカ/キンシャサ"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"アフリカ/ルブンãƒã‚·"}
+ }
+ "Africa:Timbuktu"{
+ ec{"アフリカ/ティンブクトゥ"}
+ }
+ "America:Adak"{
+ ec{"アメリカ/アダック"}
+ }
+ "America:Anchorage"{
+ ec{"アンカレッジ"}
+ ld{"アラスカå¤æ™‚é–“"}
+ ls{"アラスカ標準時"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Araguaina"{
+ ec{"アメリカ/アラグァイナ"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"アメリカ/アルゼンãƒãƒ³/コモドロリãƒãƒ€ãƒ“ã‚¢"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"アメリカ/アルゼンãƒãƒ³/ラリオãƒ"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"アメリカ/アルゼンãƒãƒ³/リオガイェゴス"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"アメリカ/アルゼンãƒãƒ³/サンファン"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"アメリカ/アルゼンãƒãƒ³/トゥクマン"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"アメリカ/アルゼンãƒãƒ³/ウスアイア"}
+ }
+ "America:Bahia"{
+ ec{"アメリカ/ãƒã‚¤ã‚¢"}
+ }
+ "America:Belem"{
+ ec{"アメリカ/ベレム"}
+ }
+ "America:Boa_Vista"{
+ ec{"アメリカ/ボアビスタ"}
+ }
+ "America:Boise"{
+ ec{"アメリカ/ボイシ"}
+ }
+ "America:Buenos_Aires"{
+ ec{"アメリカ/ブエノスアイレス"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"アメリカ/ケンブリッジベイ"}
+ }
+ "America:Campo_Grande"{
+ ec{"アメリカ/カンãƒã‚°ãƒ©ãƒ³ãƒ‡"}
+ }
+ "America:Cancun"{
+ ec{"アメリカ/カンクン"}
+ }
+ "America:Catamarca"{
+ ec{"アメリカ/カタマルカ"}
+ }
+ "America:Chicago"{
+ ec{"ã‚·ã‚«ã‚´"}
+ ld{"中部å¤æ™‚é–“"}
+ ls{"中部標準時"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Chihuahua"{
+ ec{"アメリカ/ãƒãƒ¯ãƒ¯"}
+ }
+ "America:Coral_Harbour"{
+ ec{"コーラルãƒãƒ¼ãƒãƒ¼"}
+ }
+ "America:Cordoba"{
+ ec{"アメリカ/コルドãƒ"}
+ }
+ "America:Cuiaba"{
+ ec{"アメリカ/クイアãƒ"}
+ }
+ "America:Danmarkshavn"{
+ ec{"アメリカ/デンマークシャウン"}
+ }
+ "America:Dawson"{
+ ec{"アメリカ/ドーソン"}
+ }
+ "America:Dawson_Creek"{
+ ec{"アメリカ/ドーソンクリーク"}
+ }
+ "America:Denver"{
+ ec{"デンãƒãƒ¼"}
+ ld{"山地å¤æ™‚é–“"}
+ ls{"山地標準時"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Detroit"{
+ ec{"アメリカ/デトロイト"}
+ }
+ "America:Edmonton"{
+ ec{"アメリカ/エドモントン"}
+ }
+ "America:Eirunepe"{
+ ec{"アメリカ/エイルãƒãƒš"}
+ }
+ "America:Fortaleza"{
+ ec{"アメリカ/フォルタレザ"}
+ }
+ "America:Glace_Bay"{
+ ec{"アメリカ/グレースベイ"}
+ }
+ "America:Godthab"{
+ ec{"アメリカ/ゴッドホープ"}
+ }
+ "America:Goose_Bay"{
+ ec{"アメリカ/グースベイ"}
+ }
+ "America:Guayaquil"{
+ ec{"アメリカ/グアヤキル"}
+ }
+ "America:Halifax"{
+ ec{"ãƒãƒªãƒ•ã‚¡ã‚¯ã‚¹"}
+ ld{"大西洋å¤æ™‚é–“"}
+ ls{"大西洋標準時"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Hermosillo"{
+ ec{"アメリカ/エルモシヨ"}
+ }
+ "America:Indiana:Knox"{
+ ec{"アメリカ/ノクス"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"アメリカ/インディアナ/マレンゴ"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"ピーターズãƒãƒ¼ã‚°"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"アメリカ/インディアナ/ビベー"}
+ }
+ "America:Indiana:Vincennes"{
+ ec{"ビンセンス"}
+ }
+ "America:Indianapolis"{
+ ec{"インディアナãƒãƒªã‚¹"}
+ }
+ "America:Inuvik"{
+ ec{"アメリカ/イヌヴィク"}
+ }
+ "America:Iqaluit"{
+ ec{"アメリカ/イカルイット"}
+ }
+ "America:Jujuy"{
+ ec{"アメリカ/フフイ"}
+ }
+ "America:Juneau"{
+ ec{"アメリカ/ジュノー"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"アメリカ/モンティãƒã‚§ãƒ­"}
+ }
+ "America:Los_Angeles"{
+ ec{"ロサンゼルス"}
+ ld{"太平洋å¤æ™‚é–“"}
+ ls{"太平洋標準時"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Louisville"{
+ ec{"アメリカ/ルイスビル"}
+ }
+ "America:Maceio"{
+ ec{"アメリカ/マセイオ"}
+ }
+ "America:Manaus"{
+ ec{"アメリカ/マナウス"}
+ }
+ "America:Mazatlan"{
+ ec{"アメリカ/マサトラン"}
+ }
+ "America:Mendoza"{
+ ec{"アメリカ/メンドーサ"}
+ }
+ "America:Menominee"{
+ ec{"アメリカ/メノミニー"}
+ }
+ "America:Merida"{
+ ec{"アメリカ/メリダ"}
+ }
+ "America:Mexico_City"{
+ ec{"アメリカ/メキシコシティー"}
+ }
+ "America:Moncton"{
+ ec{"モンクトン"}
+ }
+ "America:Monterrey"{
+ ec{"アメリカ/モンテレイ"}
+ }
+ "America:Montreal"{
+ ec{"アメリカ/モントリオール"}
+ }
+ "America:New_York"{
+ ec{"ニューヨーク"}
+ ld{"æ±éƒ¨å¤æ™‚é–“"}
+ ls{"æ±éƒ¨æ¨™æº–時"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Nipigon"{
+ ec{"アメリカ/ニピゴン"}
+ }
+ "America:Nome"{
+ ec{"アメリカ/ノーメ"}
+ }
+ "America:Noronha"{
+ ec{"アメリカ/ノロニャ"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"アメリカ/ノースダコタ/センター"}
+ }
+ "America:Pangnirtung"{
+ ec{"アメリカ/パンナータング"}
+ }
+ "America:Phoenix"{
+ ec{"フェニックス"}
+ }
+ "America:Porto_Velho"{
+ ec{"アメリカ/ãƒãƒ«ãƒˆãƒ™ãƒªãƒ§"}
+ }
+ "America:Rainy_River"{
+ ec{"アメリカ/レイニーリãƒãƒ¼"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"アメリカ/ランキン湾"}
+ }
+ "America:Recife"{
+ ec{"アメリカ/レシフェ"}
+ }
+ "America:Regina"{
+ ec{"アメリカ/レジャイナ"}
+ }
+ "America:Rio_Branco"{
+ ec{"アメリカ/リオブランコ"}
+ }
+ "America:Santiago"{
+ ec{"アメリカ/サンãƒã‚¢ã‚´"}
+ }
+ "America:Sao_Paulo"{
+ ec{"アメリカ/サンパウロ"}
+ }
+ "America:Scoresbysund"{
+ ec{"アメリカ/スコレスビスン"}
+ }
+ "America:Shiprock"{
+ ec{"アメリカ/シップロック"}
+ }
+ "America:St_Johns"{
+ ec{"セントジョンズ"}
+ ld{"ニューファンドランド島å¤æ™‚é–“"}
+ ls{"ニューファンドランド島標準時"}
+ sd{"NDT"}
+ ss{"NST"}
+ }
+ "America:Swift_Current"{
+ ec{"アメリカ/スウィフトカレント"}
+ }
+ "America:Thule"{
+ ec{"アメリカ/ãƒãƒ¥ãƒ¼ãƒ¬"}
+ }
+ "America:Thunder_Bay"{
+ ec{"アメリカ/サンダーベイ"}
+ }
+ "America:Tijuana"{
+ ec{"アメリカ/ティフアナ"}
+ }
+ "America:Toronto"{
+ ec{"アメリカ/トロント"}
+ }
+ "America:Vancouver"{
+ ec{"アメリカ/ãƒãƒ³ã‚¯ãƒ¼ãƒãƒ¼"}
+ }
+ "America:Whitehorse"{
+ ec{"アメリカ/ホワイトホース"}
+ }
+ "America:Winnipeg"{
+ ec{"アメリカ/ウィニペグ"}
+ }
+ "America:Yakutat"{
+ ec{"アメリカ/ヤクタット"}
+ }
+ "America:Yellowknife"{
+ ec{"アメリカ/イエローナイフ"}
+ }
+ "Antarctica:Casey"{
+ ec{"å—極/ケーシー"}
+ }
+ "Antarctica:Davis"{
+ ec{"å—極/デービス"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"å—極/デュモンデュルビル"}
+ }
+ "Antarctica:Mawson"{
+ ec{"å—極/モーソン"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"å—極/マクムード"}
+ }
+ "Antarctica:Palmer"{
+ ec{"å—極/パーマー"}
+ }
+ "Antarctica:Rothera"{
+ ec{"å—極/ロデラ"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"å—極/å—極点"}
+ }
+ "Antarctica:Syowa"{
+ ec{"å—極/昭和基地"}
+ }
+ "Antarctica:Vostok"{
+ ec{"å—極/ボストーク"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"北極/ロングイヤービーエン"}
+ }
+ "Asia:Almaty"{
+ ec{"アジア/アルマトイ"}
+ }
+ "Asia:Anadyr"{
+ ec{"アジア/アナジル"}
+ }
+ "Asia:Aqtau"{
+ ec{"アジア/アクタウ"}
+ }
+ "Asia:Aqtobe"{
+ ec{"アジア/アクトベ"}
+ }
+ "Asia:Choibalsan"{
+ ec{"アジア/ãƒãƒ§ã‚¤ãƒãƒ«ã‚µãƒ³"}
+ }
+ "Asia:Chongqing"{
+ ec{"アジア/é‡æ…¶"}
+ }
+ "Asia:Harbin"{
+ ec{"アジア/ãƒãƒ«ãƒ“ン"}
+ }
+ "Asia:Hovd"{
+ ec{"アジア/ホブド"}
+ }
+ "Asia:Irkutsk"{
+ ec{"アジア/イルクーツク"}
+ }
+ "Asia:Jakarta"{
+ ec{"アジア/ジャカルタ"}
+ }
+ "Asia:Jayapura"{
+ ec{"アジア/ジャヤプラ"}
+ }
+ "Asia:Jerusalem"{
+ ec{"エルサレム"}
+ ld{"イスラエルå¤æ™‚é–“"}
+ ls{"イスラエル標準時"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"アジア/カムãƒãƒ£ãƒƒã‚«"}
+ }
+ "Asia:Kashgar"{
+ ec{"アジア/カシガル"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"アジア/クラスノヤルスク"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"アジア/クアラルンプール"}
+ }
+ "Asia:Kuching"{
+ ec{"アジア/クãƒãƒ³"}
+ }
+ "Asia:Magadan"{
+ ec{"アジア/マガダン"}
+ }
+ "Asia:Makassar"{
+ ec{"アジア/マカッサル"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"アジア/ノボシビルスク"}
+ }
+ "Asia:Omsk"{
+ ec{"アジア/オムスク"}
+ }
+ "Asia:Oral"{
+ ec{"アジア/オラル"}
+ }
+ "Asia:Pontianak"{
+ ec{"アジア/ãƒãƒ³ãƒ†ã‚£ã‚¢ãƒŠã‚¯"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"アジア/キジルオルダ"}
+ }
+ "Asia:Sakhalin"{
+ ec{"アジア/サãƒãƒªãƒ³"}
+ }
+ "Asia:Shanghai"{
+ ec{"上海"}
+ ld{"中国å¤æ™‚é–“"}
+ ls{"中国標準時"}
+ ss{"CTT"}
+ }
+ "Asia:Tashkent"{
+ ec{"アジア/タシケント"}
+ }
+ "Asia:Tokyo"{
+ ec{"æ±äº¬"}
+ ld{"日本å¤æ™‚é–“"}
+ ls{"日本標準時"}
+ sd{"JDT"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"アジア/ウランãƒãƒ¼ãƒˆãƒ«"}
+ }
+ "Asia:Urumqi"{
+ ec{"アジア/ウルムãƒ"}
+ }
+ "Asia:Vladivostok"{
+ ec{"アジア/ウラジオストク"}
+ }
+ "Asia:Yakutsk"{
+ ec{"アジア/ヤクーツク"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"アジア/エカテリンブルグ"}
+ }
+ "Atlantic:Azores"{
+ ec{"大西洋/アゾレス"}
+ }
+ "Atlantic:Canary"{
+ ec{"大西洋/カナリー"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"大西洋/ヤンマイエン"}
+ }
+ "Atlantic:Madeira"{
+ ec{"大西洋/マデイラ"}
+ }
+ "Australia:Adelaide"{
+ ec{"オーストラリア/アデレード"}
+ }
+ "Australia:Brisbane"{
+ ec{"オーストラリア/ブリスベン"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"オーストラリア/ブロークンヒル"}
+ }
+ "Australia:Currie"{
+ ec{"カリー"}
+ }
+ "Australia:Darwin"{
+ ec{"オーストラリア/ダーウィン"}
+ }
+ "Australia:Hobart"{
+ ec{"オーストラリア/ホãƒãƒ¼ãƒˆ"}
+ }
+ "Australia:Lindeman"{
+ ec{"オーストラリア/リンデマン"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"オーストラリア/ロードãƒã‚¦"}
+ }
+ "Australia:Melbourne"{
+ ec{"オーストラリア/メルボルン"}
+ }
+ "Australia:Perth"{
+ ec{"オーストラリア/パース"}
+ }
+ "Australia:Sydney"{
+ ec{"オーストラリア/シドニー"}
+ }
+ "Europe:Belfast"{
+ ec{"ヨーロッパ/ベルファスト"}
+ }
+ "Europe:Bucharest"{
+ ec{"ブカレスト"}
+ ld{"æ±æ¬§å¤æ™‚é–“"}
+ ls{"æ±æ¬§æ¨™æº–時"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"ヨーロッパ/カリーニングラード"}
+ }
+ "Europe:Kiev"{
+ ec{"ヨーロッパ/キエフ"}
+ }
+ "Europe:Lisbon"{
+ ec{"ヨーロッパ/リスボン"}
+ }
+ "Europe:London"{
+ ec{"ヨーロッパ/ロンドン"}
+ }
+ "Europe:Madrid"{
+ ec{"ヨーロッパ/マドリード"}
+ }
+ "Europe:Moscow"{
+ ec{"ヨーロッパ/モスクワ"}
+ }
+ "Europe:Paris"{
+ ec{"パリ"}
+ ld{"中欧å¤æ™‚é–“"}
+ ls{"中欧標準時"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Europe:Samara"{
+ ec{"ヨーロッパ/サマラ"}
+ }
+ "Europe:Simferopol"{
+ ec{"ヨーロッパ/シンフェローãƒãƒª"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"ヨーロッパ/ウジゴロド"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"ヨーロッパ/ザãƒãƒ­ãƒ¼ã‚¸ã‚§"}
+ }
+ "Pacific:Auckland"{
+ ec{"太平洋/オークランド"}
+ }
+ "Pacific:Chatham"{
+ ec{"太平洋/ãƒãƒ£ã‚¿ãƒ "}
+ }
+ "Pacific:Easter"{
+ ec{"太平洋/イースター"}
+ }
+ "Pacific:Enderbury"{
+ ec{"太平洋/エンダベリー"}
+ }
+ "Pacific:Galapagos"{
+ ec{"太平洋/ガラパゴス"}
+ }
+ "Pacific:Gambier"{
+ ec{"太平洋/ガンビア"}
+ }
+ "Pacific:Honolulu"{
+ ec{"ホノルル"}
+ ld{"ãƒãƒ¯ã‚¤å¤æ™‚é–“"}
+ ls{"ãƒãƒ¯ã‚¤æ¨™æº–時"}
+ sd{"HDT"}
+ ss{"HST"}
+ }
+ "Pacific:Johnston"{
+ ec{"太平洋/ジョンストン"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"太平洋/キリティマティ"}
+ }
+ "Pacific:Kosrae"{
+ ec{"太平洋/コシャエ"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"太平洋/クワゼリン"}
+ }
+ "Pacific:Majuro"{
+ ec{"太平洋/マジュロ"}
+ }
+ "Pacific:Marquesas"{
+ ec{"太平洋/マルケサス"}
+ }
+ "Pacific:Midway"{
+ ec{"太平洋/ミッドウェー"}
+ }
+ "Pacific:Ponape"{
+ ec{"太平洋/ãƒãƒŠãƒš"}
+ }
+ "Pacific:Tahiti"{
+ ec{"太平洋/タヒãƒ"}
+ }
+ "Pacific:Tarawa"{
+ ec{"太平洋/タラワ"}
+ }
+ "Pacific:Truk"{
+ ec{"太平洋/トラック"}
+ }
+ "Pacific:Wake"{
+ ec{"太平洋/ウェイク"}
+ }
+ "Pacific:Yap"{
+ ec{"太平洋/ヤップ"}
}
+ fallbackFormat{"{0} ({1})時間"}
+ hourFormat{"+HHmm;-HHmm"}
+ regionFormat{"{0}時間"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ja_JP.txt b/Build/source/libs/icu-xetex/data/locales/ja_JP.txt
index fd3d57b6ace..403438e9ede 100644
--- a/Build/source/libs/icu-xetex/data/locales/ja_JP.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ja_JP.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ja_JP.xml
+// * Source File:<path>/common/main/ja_JP.xml
// *
// ***************************************************************************
ja_JP{
@@ -13,5 +13,13 @@ ja_JP{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ja_JP_TRADITIONAL.txt b/Build/source/libs/icu-xetex/data/locales/ja_JP_TRADITIONAL.txt
index e2cc98fca9d..0a1b515bdf6 100644
--- a/Build/source/libs/icu-xetex/data/locales/ja_JP_TRADITIONAL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ja_JP_TRADITIONAL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
ja_JP_TRADITIONAL{
diff --git a/Build/source/libs/icu-xetex/data/locales/kk.txt b/Build/source/libs/icu-xetex/data/locales/kk.txt
index 8e31843c69b..cc171b9bb87 100644
--- a/Build/source/libs/icu-xetex/data/locales/kk.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kk.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kk.xml
+// * Source File:<path>/common/main/kk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/kk.xml
+ * ICU <specials> source: <path>/xml/main/kk.xml
*/
kk{
+ AuxExemplarCharacters{"[Ò»]"}
Countries{
KZ{"ҚазақÑтан"}
}
@@ -19,7 +20,7 @@ kk{
"KZT",
}
}
- ExemplarCharacters{"[а-ÑÑ‹ÑÑ‘Ñ–Ò›Ò£Ò¯Ò±Ó™]"}
+ ExemplarCharacters{"[а Ó™ б-е Ñ‘ ж-й Ñ– к Ò› л-н Ò£ о-у Ò± Ò¯ Ñ„-Ñ]"}
Languages{
kk{"Қазақ"}
}
@@ -37,16 +38,12 @@ kk{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.25"}
+ Version{"1.39"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/kk_KZ.txt b/Build/source/libs/icu-xetex/data/locales/kk_KZ.txt
index f7925b018f9..99e89884361 100644
--- a/Build/source/libs/icu-xetex/data/locales/kk_KZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kk_KZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kk_KZ.xml
+// * Source File:<path>/common/main/kk_KZ.xml
// *
// ***************************************************************************
kk_KZ{
@@ -13,5 +13,5 @@ kk_KZ{
"#,##0%",
"#E0",
}
- Version{"1.21"}
+ Version{"1.31"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/kl.txt b/Build/source/libs/icu-xetex/data/locales/kl.txt
index df406d91f1d..e0da1052fce 100644
--- a/Build/source/libs/icu-xetex/data/locales/kl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kl.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kl.xml
+// * Source File:<path>/common/main/kl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/kl.xml
+ * ICU <specials> source: <path>/xml/main/kl.xml
*/
kl{
Countries{
@@ -19,7 +19,7 @@ kl{
"DKK",
}
}
- ExemplarCharacters{"[a-záéíúâêîôûæåøãĩũĸ]"}
+ ExemplarCharacters{"[a á-ã b-e é ê f-i í î ĩ j-o ô p q ĸ r-u ú û ũ v-z æ ø å]"}
Languages{
kl{"kalaallisut"}
}
@@ -37,10 +37,10 @@ kl{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.23"}
+ Version{"1.33"}
calendar{
gregorian{
dayNames{
diff --git a/Build/source/libs/icu-xetex/data/locales/kl_GL.txt b/Build/source/libs/icu-xetex/data/locales/kl_GL.txt
index 185545c7430..80d943ddbc1 100644
--- a/Build/source/libs/icu-xetex/data/locales/kl_GL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kl_GL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kl_GL.xml
+// * Source File:<path>/common/main/kl_GL.xml
// *
// ***************************************************************************
kl_GL{
@@ -13,9 +13,13 @@ kl_GL{
"#,##0%",
"#E0",
}
- Version{"1.23"}
+ Version{"1.34"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/kn.txt b/Build/source/libs/icu-xetex/data/locales/kn.txt
index 8eff60d3a2c..eefadb664ce 100644
--- a/Build/source/libs/icu-xetex/data/locales/kn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kn.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kn.xml
+// * Source File:<path>/common/main/kn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/kn.xml
+ * ICU <specials> source: <path>/xml/main/kn.xml
*/
kn{
Countries{
@@ -20,20 +20,14 @@ kn{
SG{"ಸಿಂಗಪà³à²°"}
TR{"ತà³à²°à³à²•à²¿"}
}
- Currencies{
- INR{
- "रà¥",
- "INR",
- }
- }
- ExemplarCharacters{"[ಂಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-à³à³•à³–ೞೠೡ೦-೯]"}
+ ExemplarCharacters{"[಼ ಂ ಃ ೦-೯ ಅ-ಋ ೠ ಌ ೡ ಎ-ಠಒ-ನ ಪ-ಲ ವ-ಹ ಳ ೞ ಽ-ೄ ೆ-ೈ ೊ-ೠೕ ೖ]"}
Languages{
kn{"ಕನà³à²¨à²¡"}
}
LocaleScript{
"Knda",
}
- Version{"1.31"}
+ Version{"1.46"}
calendar{
gregorian{
AmPmMarkers{
@@ -94,6 +88,16 @@ kn{
}
}
}
+ quarters{
+ format{
+ wide{
+ "ಒಂದೠ1",
+ "ಎರಡೠ2",
+ "ಮೂರೠ3",
+ "ನಾಲೃಕ 4",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/kn_IN.txt b/Build/source/libs/icu-xetex/data/locales/kn_IN.txt
index c54492d18ff..00c1976ca1e 100644
--- a/Build/source/libs/icu-xetex/data/locales/kn_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kn_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kn_IN.xml
+// * Source File:<path>/common/main/kn_IN.xml
// *
// ***************************************************************************
kn_IN{
@@ -13,13 +13,9 @@ kn_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.34"}
+ Version{"1.47"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"hh:mm:ss a z",
"hh:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/ko.txt b/Build/source/libs/icu-xetex/data/locales/ko.txt
index b8be89c525f..bb1623ed442 100644
--- a/Build/source/libs/icu-xetex/data/locales/ko.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ko.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ko.xml
+// * Source File:<path>/common/main/ko.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ko.xml
+ * ICU <specials> source: <path>/xml/main/ko.xml
*/
ko{
Countries{
@@ -26,6 +26,7 @@ ko{
AT{"오스트리아"}
AU{"오스트레ì¼ë¦¬ì•„"}
AW{"아루바"}
+ AX{"올란드 ì œë„"}
AZ{"아제르바ì´ìž”"}
BA{"보스니아 헤르체고비나"}
BB{"바베ì´ë„스"}
@@ -1169,7 +1170,66 @@ ko{
"ì§ë¹„브웨 달러",
}
}
- ExemplarCharacters{"[가-힣]"}
+ ExemplarCharacters{
+ "[ê°€ ê° ê°„ ê°‡-ê°Š ê°-ê°— ê°™-ê° ê°  ê°¤ ê°¬ ê°­ ê°¯-ê°± ê°¸ ê°¹ ê°¼ ê±€ 걋 ê± ê±” 걘 걜 ê±° ê±± ê±´ ê±· 걸 걺 ê²€ ê² ê²ƒ-겆 겉-게 ê² ê²”"
+ " 겜 ê² ê²Ÿ-겡 겨-겪 견 겯 ê²° 겸 ê²¹ ê²»-ê²½ ê³ ê³„ 곈 곌 곕 ê³— ê³  곡 곤 곧 골 곪 곬 곯-ê³± ê³³ ê³µ 곶 ê³¼ ê³½ ê´€ ê´„ ê´† ê´Œ ê´"
+ " ê´ ê´‘ ê´˜ ê´œ ê´  ê´© ê´¬ ê´­ ê´´ ê´µ ê´¸ ê´¼ 굄 êµ… 굇 굉 êµ êµ” 굘 굡 êµ£ 구 êµ­ êµ° êµ³-굶 êµ»-êµ½ 굿 ê¶ ê¶‚ 궈 궉 권 ê¶ ê¶œ ê¶ ê¶¤"
+ " 궷 ê·€ ê· ê·„ ê·ˆ ê· ê·‘ ê·“ ê·œ ê·  ê·¤ ê·¸ ê·¹ ê·¼ ê·¿-ê¸ ê¸ˆ 급 긋 ê¸ ê¸” 기 긱 긴 긷 길 긺 ê¹€ ê¹ ê¹ƒ ê¹… 깆 깊 까-깎 ê¹ ê¹” ê¹–"
+ " 깜 ê¹ ê¹Ÿ-깡 ê¹¥ 깨 깩 깬 ê¹° 깸 ê¹¹ ê¹»-ê¹½ 꺄 꺅 꺌 꺼-꺾 껀 껄 껌 ê» ê»-껑 께 ê»™ 껜 껨 껫 ê»­ ê»´ 껸 껼 꼇 꼈 ê¼ ê¼ ê¼¬"
+ " ê¼­ ê¼° ê¼² ê¼´ ê¼¼ ê¼½ 꼿 ê½-꽃 꽈 꽉 ê½ ê½œ ê½ ê½¤ ê½¥ ê½¹ ê¾€ 꾄 꾈 ê¾ ê¾‘ 꾕 꾜 꾸 ê¾¹ ê¾¼ ê¿€ 꿇-꿉 ê¿‹ ê¿ ê¿Ž ê¿” ê¿œ 꿨 ê¿© ê¿°"
+ " 꿱 ê¿´ 꿸 뀀 ë€ ë€„ 뀌 ë€ ë€” 뀜 ë€ ë€¨ ë„ ë… ëˆ ëŠ ëŒ ëŽ ë“-ë• ë— ë™ ë ë¼ ë½ ë‚€ ë‚„ ë‚Œ ë‚ ë‚ ë‚‘ 나-ë‚š ë‚œ ë‚Ÿ-ë‚¢ 남 ë‚©"
+ " ë‚«-낯 낱 낳-낵 낸 낼 냄 냅 냇-냉 ëƒ ëƒ‘ 냔 냘 냠 냥 너 넉 ë„‹ ë„Œ ë„ ë„’ ë„“ 넘 ë„™ ë„›-ë„ ë„£-ë„¥ 넨 넬 ë„´ 넵 ë„·-넹 ë…€ ë…"
+ " ë…„ ë…ˆ ë… ë…‘ ë…” ë…• ë…˜ ë…œ ë…  ë…¸ ë…¹ ë…¼ 놀 놂 놈 놉 놋 ë† ë†’-놔 놘 놜 놨 뇌 ë‡ ë‡” 뇜 ë‡ ë‡Ÿ 뇨 뇩 뇬 뇰 뇹 뇻 뇽 누 눅"
+ " 눈 눋 눌 눔 눕 눗 눙 눠 눴 눼 뉘 뉜 뉠 뉨 뉩 뉴 뉵 뉼 늄 늅 늉 ëŠ ëŠ‘ 는 늘-늚 늠 늡 늣 능 늦 늪 늬 늰 늴 니 닉 ë‹Œ"
+ " ë‹ ë‹’ 님 ë‹™ ë‹› ë‹ ë‹¢ 다-닦 단 ë‹«-닯 닳-답 ë‹·-ë‹» ë‹¿-ëŒ ëŒ„ 댈 ëŒ ëŒ‘ 댓-댕 댜 ë”-ë– ë˜ ë› ëœ ëž ëŸ ë¤ ë¥ ë§ ë© ë« ë®"
+ " ë° ë± ë´ ë¸ ëŽ€ ëŽ ëŽƒ-뎅 뎌 ëŽ ëŽ” 뎠 뎡 뎨 뎬 ë„ ë… ëˆ ë‹ ëŒ ëŽ ë ë” ë• ë— ë™ ë› ë ë  ë¤ ë¨ ë¼ ë ë˜ ëœ ë  ë¨ ë©"
+ " ë« ë´ ë‘ ë‘‘ ë‘” 둘 ë‘  ë‘¡ ë‘£ ë‘¥ 둬 ë’€ ë’ˆ ë’ ë’¤ ë’¨ ë’¬ ë’µ ë’· ë’¹ ë“€ ë“„ 듈 ë“ ë“• ë“œ ë“ ë“  ë“£ 들 듦 듬 ë“­ 듯 등 듸 ë”” 딕"
+ " 딘 ë”› 딜 딤 딥 딧-딪 ë”° ë”± ë”´ 딸 ë•€ ë• ë•ƒ-ë•… ë•‹-ë• ë• ë•” ë•œ ë• ë•Ÿ-ë•¡ ë–  ë–¡ ë–¤ ë–¨ ë–ª ë–« ë–° ë–± ë–³-ë–µ ë–»-ë–½ ë—€ ë—„ ë—Œ"
+ " ë— ë—-ë—‘ ë—˜ ë—¬ ë˜ ë˜‘ 똔 똘 똥 똬 똴 뙈 뙤 뙨 ëšœ ëš ëš  뚤 ëš« 뚬 ëš± ë›” ë›° ë›´ 뛸 뜀 ëœ ëœ… 뜨 뜩 뜬 뜯 뜰 뜸 뜹 뜻 ë„"
+ " ëˆ ëŒ ë” ë• ë  ë¤ ë¨ ë° ë± ë³ ëµ ë¼ ë½ ëž€ ëž„ 람 ëž ëž-ëž’ ëž–-ëž™ ëžœ ëž  램 ëž© ëž«-ëž­ ëž´ ëžµ 랸 럇 량 러 럭 런 럴 럼 럽"
+ " 럿-ë  ë ‡-ë ‰ ë Œ ë  ë ˜ ë ™ ë › ë  ë ¤ ë ¥ ë ¨ ë ¬ ë ´ ë µ ë ·-ë ¹ ë¡€ ë¡„ ë¡‘ ë¡“ ë¡œ ë¡ ë¡  롤 롬 ë¡­ 롯 롱 롸 롼 ë¢ ë¢¨ 뢰 뢴 뢸 룀"
+ " ë£ ë£ƒ 룅 료 ë£ ë£” ë£ ë£Ÿ 룡 루 룩 룬 룰 룸 룹 룻 룽 뤄 뤘 뤠 뤼 뤽 륀 륄 륌 ë¥ ë¥‘ 류 륙 륜 률 륨 륩 륫 륭 르 륵 른"
+ " 를 름 릅 릇 릉 릊 ë¦ ë¦Ž 리 릭 린 릴 림 립 릿 ë§ ë§ˆ 막 만 많-맒 맘 맙 맛 ë§ ë§ž 맡 맣-맥 맨 맬 맴 맵 맷-맺 먀 ë¨ ë¨ˆ"
+ " 먕 머 먹 먼 ë©€ ë©‚ 멈 멉 ë©‹ ë© ë©Ž ë©“-ë©• 멘 ë©œ 멤 ë©¥ 멧-ë©© ë©° 멱 ë©´ 멸 몃-명 몇 몌 모 목 몫 몬 몰 몲 몸 몹 못 몽 ë«„"
+ " 뫈 뫘 ë«™ 뫼 묀 묄 ë¬ ë¬ ë¬‘ 묘 묜 묠 묩 묫 무-묶 문 묻-묾 ë­„ ë­… ë­‡ ë­‰ ë­ ë­ ë­ ë­” ë­˜ ë­¡ ë­£ ë­¬ 뮈 뮌 ë® ë®¤ 뮨 뮬 ë®´"
+ " ë®· 므 믄 믈 ë¯ ë¯“ 미 믹 민 믿 ë°€ ë°‚ ë°ˆ ë°‰ ë°‹-ë° ë° ë°‘ ë°”-ë°˜ ë°›-ë°Ÿ ë°¤ ë°¥ ë°§ ë°© ë°­ ë°° ë°± ë°´ ë°¸ ë±€ ë± ë±ƒ-ë±… 뱉 뱌 ë±"
+ " ë± ë± ë²„ ë²… 번 벋 벌 벎 ë²” 법 ë²— ë²™ 벚 ë²  벡 벤 벧 벨 ë²° ë²± ë²³-ë²µ ë²¼ ë²½ ë³€ 별 ë³ ë³-병 볕 볘 볜 ë³´-볶 본 ë³¼ ë´„ ë´…"
+ " ë´‡ ë´‰ ë´ ë´” ë´¤ ë´¬ ëµ€ 뵈 뵉 뵌 ëµ ëµ˜ ëµ™ 뵤 뵨 부 ë¶ ë¶„ 붇-붊 ë¶ ë¶‘ 붓 붕 붙 붚 붜 붤 붰 붸 ë·” ë·• ë·˜ ë·œ ë·© ë·° ë·´ ë·¸"
+ " 븀 븃 븅 브 ë¸ ë¸ ë¸” 븜 ë¸ ë¸Ÿ 비 ë¹… 빈 빌 빎 ë¹” 빕 ë¹— ë¹™-ë¹› ë¹  빡 빤 빨 빪 ë¹° ë¹± ë¹³-ë¹µ ë¹»-ë¹½ 뺀 뺄 뺌 ëº ëº-뺑 뺘"
+ " 뺙 뺨 ë» ë»‘ ë»” ë»— 뻘 ë»  뻣-뻥 뻬 ë¼ ë¼ˆ 뼉 뼘 ë¼™ ë¼›-ë¼ ë½€ ë½ ë½„ 뽈 ë½ ë½‘ 뽕 ë¾” ë¾° ë¿… ë¿Œ ë¿ ë¿ ë¿” ë¿œ ë¿Ÿ ë¿¡ 쀼 ì‘ ì˜"
+ " ìœ ì  ì¨ ì© ì‚ ì‚‘ ì‚” 삘 ì‚  ì‚¡ ì‚£ ì‚¥ 사 ì‚­ 삯 ì‚° 삳-삶 삼 삽 ì‚¿-ìƒ ìƒ… 새 색 샌 ìƒ ìƒ˜ 샙 샛-ìƒ ìƒ¤ 샥 샨 샬 샴 샵 샷"
+ " 샹 ì„€ ì„„ 섈 ì„ ì„• ì„œ-ì„  ì„£ 설 섦 섧 섬 ì„­ 섯-성 섶 세 섹 센 ì…€ ì…ˆ ì…‰ ì…‹-ì… ì…” ì…• ì…˜ ì…œ ì…¤ ì…¥ ì…§-ì…© ì…° ì…´ ì…¸ 솅 소"
+ "-솎 ì† ì†” 솖 솜 ì† ì†Ÿ 송 솥 솨 솩 솬 솰 솽 쇄 쇈 쇌 쇔 쇗 쇘 쇠 쇤 쇨 쇰 쇱 쇳 쇼 쇽 숀 숄 숌 ìˆ ìˆ ìˆ‘ 수 숙 순 숟"
+ " 술 숨 숩 숫 숭 숯 숱 숲 숴 쉈 ì‰ ì‰‘ 쉔 쉘 쉠 쉥 쉬 쉭 쉰 쉴 쉼 쉽 쉿 ìŠ ìŠˆ 슉 ìŠ ìŠ˜ 슛 ìŠ ìŠ¤ 슥 슨 슬 슭 슴 습 슷"
+ " 승 ì‹œ ì‹ ì‹  ì‹£ 실 ì‹«-ì‹­ 싯 싱 싶 싸 싹 ì‹» 싼 쌀 쌈 쌉 쌌 ìŒ ìŒ“-쌕 쌘 쌜 쌤 쌥 쌨 쌩 ì… ì¨ ì© ì¬ ì° ì² ì¸ ì¹ ì¼ ì½"
+ " 쎄 쎈 쎌 ì€ ì˜ ì™ ìœ ìŸ ì  ì¢ ì¨ ì© ì­ ì´ ìµ ì¸ ìˆ ì ì¤ ì¬ ì° ì´ ì¼ ì½ ì‘ˆ 쑤 ì‘¥ 쑨 쑬 ì‘´ 쑵 쑹 ì’€ ì’” ì’œ ì’¸ ì’¼ ì“©"
+ " ì“° 쓱 ì“´ 쓸 쓺 ì“¿-ì” ì”Œ ì” ì”” 씜 씨 씩 씬 ì”° 씸 씹 ì”» 씽 ì•„ ì•… 안-ì•Š ì•Œ-ì•Ž ì•“-ì•• ì•—-ì•™ ì• ì•ž ì•  ì•¡ 앤 앨 ì•° 앱 앳"
+ "-앵 야 약 ì–€ ì–„ ì–‡ ì–Œ ì– ì– ì–‘ ì–• ì–— ì–˜ ì–œ ì–  ì–© ì–´ ì–µ ì–¸ ì–¹ ì–»-ì–¾ ì—„-ì—Š ì—Œ ì—Ž ì— ì—‘ ì—” ì—˜ ì—  ì—¡ ì—£ ì—¥ ì—¬-ì—® ì—° ì—´"
+ " ì—¶ ì—· ì—¼-ì˜ ì˜…-예 옌 ì˜ ì˜˜ 옙 옛 옜 오 옥 온 올-옮 옰 옳-옵 옷 옹 옻 와 ì™ ì™„ 왈 ì™ ì™‘ 왓-왕 왜 ì™ ì™  왬 왯 ì™± 외"
+ " 왹 왼 욀 욈 욉 ìš‹ ìš ìš” ìš• 욘 ìšœ 욤 욥 욧 ìš© ìš° ìš± ìš´ 울-욺 움 ì› ì›ƒ ì›… 워 ì› ì› ì›” 웜 ì› ì›  웡 웨 웩 웬 ì›° 웸 웹"
+ " 웽 위 윅 윈 윌 윔 윕 윗 윙 유 육 윤 율 윰 윱 윳 융 윷 으 윽 ì€ ì„ ìŠ ìŒ ì ì ì‘-ì˜ ìœ ì  ì¨ ì« ì´ ìµ ì¸ ì¼-ì¾ ìžƒ"
+ "-ìž… 잇-잊 잎 ìž ìž‘ ìž” ìž–-잘 ìžš ìž  ìž¡ 잣-잦 재 ìž­ ìž° ìž´ ìž¼ ìž½ ìž¿-ìŸ ìŸˆ 쟉 쟌 쟎 ìŸ ìŸ˜ ìŸ ìŸ¤ 쟨 쟬 ì € ì  ì „ ì ˆ ì Š ì "
+ " ì ‘ ì “ ì • ì – ì œ ì  ì   ì ¤ ì ¬ ì ­ ì ¯ ì ± ì ¸ ì ¼ ì¡€ 졈 졉 ì¡Œ ì¡ ì¡” ì¡° 족 ì¡´ 졸 졺 좀 ì¢ ì¢ƒ 종-좇 좋-ì¢ ì¢” ì¢ ì¢Ÿ 좡 좨 좼"
+ " 좽 죄 죈 죌 죔 죕 죗 죙 죠 죡 죤 죵 주 죽 준 줄-줆 줌 ì¤ ì¤ ì¤‘ 줘 줬 줴 ì¥ ì¥‘ 쥔 쥘 쥠 쥡 쥣 쥬 쥰 쥴 쥼 즈 즉 즌"
+ " ì¦ ì¦˜ 즙 즛 ì¦ ì§€ ì§ ì§„ 짇 질 짊 ì§ ì§‘ 짓 징 짖 짙 짚 짜 ì§ ì§  짢 짤 짧 짬 짭 짯-짱 째 짹 짼 쨀 쨈 쨉 쨋-ì¨ ì¨” 쨘"
+ " 쨩 ì©Œ ì© ì© ì©” ì©œ ì© ì©Ÿ-ì©¡ 쩨 쩽 쪄 쪘 쪼 쪽 ì«€ ì«„ ì«Œ ì« ì« ì«‘ ì«“ 쫘 ì«™ ì«  쫬 ì«´ 쬈 ì¬ ì¬” 쬘 쬠 쬡 ì­ ì­ˆ ì­‰ ì­Œ ì­"
+ " ì­˜ ì­™ ì­ ì­¤ ì­¸ ì­¹ 쮜 쮸 쯔 쯤 쯧 쯩 ì°Œ ì° ì° ì°” ì°œ ì° ì°¡ ì°¢ ì°§-ì°© ì°¬ ì°® ì°° ì°¸ ì°¹ ì°»-ì°¾ 채 ì±… 챈 챌 ì±” 챕 ì±—-ì±™ ì± "
+ " 챤 챦 챨 ì±° ì±µ 처 ì²™ 천 ì²  첨 첩 첫-ì²­ ì²´ ì²µ 첸 ì²¼ 쳄 ì³… 쳇 쳉 ì³ ì³” 쳤 쳬 ì³° ì´ ì´ˆ ì´‰ ì´Œ ì´ ì´˜ ì´™ ì´› ì´ ì´¤ ì´¨ ì´¬"
+ " ì´¹ 최 ìµ  쵤 쵬 ìµ­ 쵯 ìµ± 쵸 춈 추 축 춘 출 춤 춥 춧 충 춰 ì·„ ì·Œ ì· ì·¨ ì·¬ ì·° ì·¸ ì·¹ ì·» ì·½ 츄 츈 츌 츔 츙 츠 측 츤 츨"
+ " 츰 츱 츳 층 치 ì¹™ 친 칟-칡 침 칩 칫 ì¹­ ì¹´ ì¹µ 칸 ì¹¼ 캄 캅 캇 캉 ìº ìº‘ 캔 캘 캠 캡 캣-캥 캬 캭 ì» ì»¤ 컥 컨 컫 컬 ì»´"
+ " 컵 ì»·-컹 ì¼€ ì¼ ì¼„ 켈 ì¼ ì¼‘ 켓 켕 켜 ì¼  켤 켬 ì¼­ 켯-ì¼± 켸 ì½” 콕 콘 콜 콤 ì½¥ 콧 콩 ì½° ì½± ì½´ 콸 ì¾€ ì¾… 쾌 쾡 쾨 ì¾° ì¿„"
+ " ì¿  ì¿¡ 쿤 쿨 ì¿° 쿱 쿳 쿵 쿼 퀀 퀄 퀑 퀘 퀭 퀴 퀵 퀸 퀼 í„ í… í‡ í‰ í í” í˜ í  í¬ í­ í° í´ í¼ í½ í‚ í‚¤ í‚¥ 킨 킬 í‚´"
+ " 킵 í‚· 킹 타 íƒ íƒ„ 탈 탉 íƒ íƒ‘ 탓-탕 태 íƒ íƒ  탤 탬 탭 탯-탱 탸 í„ í„° 턱 í„´ 털 턺 í…€ í… í…ƒ-í…… í…Œ í… í… í…” í…œ í… í…Ÿ"
+ " í…¡ í…¨ í…¬ í…¼ 톄 톈 토 톡 톤 톨 톰 톱 톳 통 톺 톼 퇀 퇘 퇴 퇸 툇 툉 íˆ íˆ¬ 툭 툰 툴 툼 툽 툿 í‰ í‰ˆ 퉜 퉤 튀 íŠ íŠ„ 튈"
+ " íŠ íŠ‘ 튕 튜 튠 튤 튬 튱 트 특 튼 튿 í‹€ í‹‚ 틈 틉 í‹‹ í‹” 틘 í‹œ 틤 í‹¥ í‹° 틱 í‹´ 틸 팀 íŒ íŒƒ 팅 파-팎 íŒ íŒ” 팖 팜 íŒ íŒŸ"
+ "-팡 팥 패 팩 팬 팰 팸 팹 팻-팽 í„ í… í¼ í½ íŽ€ 펄 펌 íŽ íŽ-펑 페 펙 펜 펠 펨 펩 펫 펭 펴 편 펼 í„ í… íˆ í‰ í í˜ í¡"
+ " í£ í¬ í­ í° í´ í¼ í½ í¿ í íˆ í í‘€ í‘„ í‘œ í‘  푤 í‘­ 푯 푸 푹 푼 í‘¿ í’€ í’‚ í’ˆ í’‰ í’‹ í’ í’” í’© í“Œ í“ í“” í“œ í“Ÿ 퓨 퓬 í“°"
+ " 퓸 í“» 퓽 프 픈 플 í”” 픕 í”— 피 픽 í•€ í•„ í•Œ í• í• í•‘ 하 í•™ í•œ í•  í•¥ 함 í•© í•« í•­ í•´ 핵 핸 핼 í–„ í–… í–‡-í–‰ í– í–¥ í—ˆ í—‰"
+ " í—Œ í— í—’ í—˜ í—™ í—› í— í—¤ í—¥ í—¨ í—¬ í—´ í—µ í—· í—¹ 혀 í˜ í˜„ 혈 í˜ í˜‘ 혓-형 혜 혠 혤 혭 호 혹 혼 홀 í™… 홈 홉 홋 í™ í™‘ í™”"
+ " 확 환 활 홧 황 í™° í™± í™´ 횃 íš… 회 íš íš íš” íš íšŸ íš¡ 효 횬 íš° íš¹ íš» 후 í›… 훈 훌 훑 í›” í›— í›™ í›  훤 훨 í›° 훵 훼 훽 휀"
+ " 휄 휑 휘 휙 휜 휠 휨 휩 휫 휭 휴 휵 휸 휼 í„ í‡ í‰ í í‘ í” í–-í™ í  í¡ í£ í¥ í© í¬ í° í´ í¼ í½ íž ížˆ 힉 힌 íž íž˜"
+ " íž™ íž› íž]"
+ }
Keys{
calendar{"달력"}
collation{"ì¡°í•©"}
@@ -1303,6 +1363,7 @@ ko{
fat{"íŒí‹°ì–´"}
ff{"í’€ë¼ì–´"}
fi{"핀란드어"}
+ fil{"필리핀어"}
fiu{"피노우그리아어 (기타)"}
fj{"피지어"}
fo{"페로스어"}
@@ -1361,7 +1422,7 @@ ko{
ine{"ì¸ë„유럽어 (기타)"}
inh{"ì¸ê·€ì‹œì–´"}
io{"ì´ë„ì–´"}
- ira{"ì´ëž€ì–´"}
+ ira{"ì´ëž€ì–´ [ira]"}
iro{"ì´ëŸ¬ì¿¼ì´ì–´"}
is{"ì•„ì´ìŠ¬ëž€ë“œì–´"}
it{"ì´íƒˆë¦¬ì•„ì–´"}
@@ -1596,7 +1657,7 @@ ko{
tog{"통가어 (니아살랜드)"}
tpi{"í† í¬ í”¼ì‹ ì–´"}
tr{"터키어"}
- ts{"통가어"}
+ ts{"ì´ê°€ì–´"}
tsi{"트심시안어"}
tt{"타타르어"}
tum{"툼부카어"}
@@ -1722,7 +1783,7 @@ ko{
Variants{
REVISED{"개정"}
}
- Version{"1.52"}
+ Version{"1.71"}
calendar{
gregorian{
AmPmMarkers{
@@ -1735,9 +1796,9 @@ ko{
"a hh'시' mm'분'",
"a hh'시' mm'분'",
"yyyy'ë…„' M'ì›”' d'ì¼' EEEE",
- "yyyy'ë…„' M'ì›”' d'ì¼' EE",
- "yyyy-MM-dd",
- "yy-MM-dd",
+ "yyyy'ë…„' M'ì›”' d'ì¼'",
+ "yyyy. MM. dd",
+ "yy. MM. dd",
"{1} {0}",
}
dayNames{
@@ -1778,6 +1839,10 @@ ko{
"기ì›ì „",
"서기",
}
+ wide{
+ "서력기ì›ì „",
+ "서력기ì›",
+ }
}
monthNames{
format{
@@ -1827,145 +1892,143 @@ ko{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "ì¼",
+ "ì´",
+ "삼",
+ "사",
+ }
+ wide{
+ "1",
+ "2",
+ "3",
+ "4",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
- {
- "America/Halifax",
- "대서양 표준시",
- "AST",
- "대서양 기준시",
- "ADT",
- "핼리팩스",
- }
- {
- "America/St_Johns",
- "뉴펀들랜드 표준시",
- "CNT",
- "뉴펀들랜드 기준시",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "중국 표준시",
- "CTT",
- "중국 표준시",
- "CDT",
- "ìƒí•˜ì´",
- }
- {
- "Europe/Paris",
- "중부유럽 표준시",
- "CET",
- "중부유럽 기준시",
- "CEST",
- "파리",
- }
- {
- "Asia/Jerusalem",
- "ì´ìŠ¤ë¼ì—˜ 표준시",
- "IST",
- "ì´ìŠ¤ë¼ì—˜ 기준시",
- "IDT",
- "예루살렘",
- }
- {
- "Asia/Tokyo",
- "ì¼ë³¸ 표준시",
- "JST",
- "ì¼ë³¸ 표준시",
- "JST",
- "ë„ì¿„",
- }
- {
- "Asia/Seoul",
- "한국표준시",
- "KST",
- "한국표준시",
- "KST",
- "서울",
- }
- {
- "Africa/Casablanca",
- "그리니치 표준시",
- "GMT",
- "그리니치 표준시",
- "GMT",
- "카사블랑카",
- }
- {
- "Europe/Bucharest",
- "ë™ë¶€ìœ ëŸ½ 표준시",
- "EET",
- "ë™ë¶€ìœ ëŸ½ 기준시",
- "EEST",
- "부쿠레슈티",
- }
- {
- "Pacific/Honolulu",
- "í•˜ì™€ì´ í‘œì¤€ì‹œ",
- "HST",
- "í•˜ì™€ì´ í‘œì¤€ì‹œ",
- "HST",
- "호놀룰루",
- }
- {
- "America/Anchorage",
- "알래스카 표준시",
- "AST",
- "알래스카 기준시",
- "ADT",
- "앵커리지",
- }
- {
- "America/Los_Angeles",
- "태í‰ì–‘ 표준시",
- "PST",
- "태í‰ì–‘ 기준시",
- "PDT",
- "로스앤젤레스",
- }
- {
- "America/Phoenix",
- "산악 표준시",
- "MST",
- "산악 표준시",
- "MST",
- "피닉스",
- }
- {
- "America/Denver",
- "산악 표준시",
- "MST",
- "산악 기준시",
- "MDT",
- "ë´ë²„",
- }
- {
- "America/Chicago",
- "중부 표준시",
- "CST",
- "중부 기준시",
- "CDT",
- "시카고",
- }
- {
- "America/Indianapolis",
- "ë™ë¶€ 표준시",
- "EST",
- "ë™ë¶€ 표준시",
- "EST",
- "ì¸ë””애나í´ë¦¬ìŠ¤",
- }
- {
- "America/New_York",
- "ë™ë¶€ 표준시",
- "EST",
- "ë™ë¶€ 기준시",
- "EDT",
- "뉴욕",
+ "Africa:Casablanca"{
+ ec{"카사블랑카"}
+ ld{"그리니치 표준시"}
+ ls{"그리니치 표준시"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"앵커리지"}
+ ld{"알래스카 기준시"}
+ ls{"알래스카 표준시"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Chicago"{
+ ec{"시카고"}
+ ld{"중부 기준시"}
+ ls{"중부 표준시"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Denver"{
+ ec{"ë´ë²„"}
+ ld{"산악 기준시"}
+ ls{"산악 표준시"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Halifax"{
+ ec{"핼리팩스"}
+ ld{"대서양 기준시"}
+ ls{"대서양 표준시"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"ì¸ë””애나í´ë¦¬ìŠ¤"}
+ ld{"ë™ë¶€ 기준시 (ì¸ë””애나í´ë¦¬ìŠ¤)"}
+ ls{"ë™ë¶€ 표준시 (ì¸ë””애나í´ë¦¬ìŠ¤)"}
+ sd{"EDT (IN)"}
+ ss{"EST (IN)"}
+ }
+ "America:Los_Angeles"{
+ ec{"로스앤젤레스"}
+ ld{"태í‰ì–‘ 기준시"}
+ ls{"태í‰ì–‘ 표준시"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:New_York"{
+ ec{"뉴욕"}
+ ld{"ë™ë¶€ 기준시"}
+ ls{"ë™ë¶€ 표준시"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Phoenix"{
+ ec{"피닉스"}
+ ld{"산악 표준시"}
+ ls{"산악 표준시"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"뉴펀들랜드 기준시"}
+ ls{"뉴펀들랜드 표준시"}
+ sd{"NDT"}
+ ss{"NST"}
+ }
+ "Asia:Jerusalem"{
+ ec{"예루살렘"}
+ ld{"ì´ìŠ¤ë¼ì—˜ 기준시"}
+ ls{"ì´ìŠ¤ë¼ì—˜ 표준시"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Seoul"{
+ ec{"서울"}
+ ld{"한국표준시"}
+ ls{"한국표준시"}
+ sd{"KST"}
+ ss{"KST"}
+ }
+ "Asia:Shanghai"{
+ ec{"ìƒí•˜ì´"}
+ ld{"중국 표준시"}
+ ls{"중국 표준시"}
+ ss{"CTT"}
+ }
+ "Asia:Tokyo"{
+ ec{"ë„ì¿„"}
+ ld{"ì¼ë³¸ 표준시"}
+ ls{"ì¼ë³¸ 표준시"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Europe:Bucharest"{
+ ec{"부쿠레슈티"}
+ ld{"ë™ë¶€ìœ ëŸ½ 기준시"}
+ ls{"ë™ë¶€ìœ ëŸ½ 표준시"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Paris"{
+ ec{"파리"}
+ ld{"중부유럽 기준시"}
+ ls{"중부유럽 표준시"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Pacific:Honolulu"{
+ ec{"호놀룰루"}
+ ld{"í•˜ì™€ì´ í‘œì¤€ì‹œ"}
+ ls{"í•˜ì™€ì´ í‘œì¤€ì‹œ"}
+ sd{"HST"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ko_KR.txt b/Build/source/libs/icu-xetex/data/locales/ko_KR.txt
index 694e4bc2f8f..3c0269acfc7 100644
--- a/Build/source/libs/icu-xetex/data/locales/ko_KR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ko_KR.txt
@@ -1,21 +1,33 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ko_KR.xml
+// * Source File:<path>/common/main/ko_KR.xml
// *
// ***************************************************************************
ko_KR{
+ Countries{
+ 001{"세계"}
+ 002{"아프리카"}
+ 005{"남아메리카[남미]"}
+ 009{"오세아니아, 대양주"}
+ 142{"아시아"}
+ 150{"유럽"}
+ }
NumberPatterns{
"#,##0.###",
"¤#,##0.00",
"#,##0%",
"#E0",
}
- Version{"1.30"}
+ Version{"1.45"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"a hh'시' mm'분' ss'초' z",
"a hh'시' mm'분' ss'초'",
@@ -35,4 +47,75 @@ ko_KR{
quotationEnd{"’"}
quotationStart{"‘"}
}
+ zoneStrings{
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"그리니치 서머타임"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"알래스카 서머타임"}
+ sd{"AKDT"}
+ ss{"AKST"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"중부 서머타임"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"산악 서머타임"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"대서양 서머타임"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"태í‰ì–‘ 서머타임"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"ë™ë¶€ 서머타임"}
+ }
+ "America:St_Johns"{
+ ec{"St Johns"}
+ ld{"뉴펀들랜드 서머타임"}
+ sd{"NDT"}
+ ss{"NST"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"ì´ìŠ¤ë¼ì—˜ 서머타임"}
+ }
+ "Asia:Seoul"{
+ ec{"Seoul"}
+ ld{"한국 서머타임"}
+ ls{"한국 표준시"}
+ sd{"KDT"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"중국 서머타임"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"ì¼ë³¸ 서머타임"}
+ sd{"JDT"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"ë™ë¶€ìœ ëŸ½ 서머타임"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"중부유럽 서머타임"}
+ sd{"CEDT"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"í•˜ì™€ì´ ì„œë¨¸íƒ€ìž„"}
+ sd{"HDT"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/kok.txt b/Build/source/libs/icu-xetex/data/locales/kok.txt
index 7d3239cba70..d38708341c2 100644
--- a/Build/source/libs/icu-xetex/data/locales/kok.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kok.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kok.xml
+// * Source File:<path>/common/main/kok.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/kok.xml
+ * ICU <specials> source: <path>/xml/main/kok.xml
*/
kok{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
IN{"भारत"}
}
@@ -19,7 +20,10 @@ kok{
"INR",
}
}
- ExemplarCharacters{"[à¤-ह़-à¥à¥-॔क़-ॣ०-९ॽ‌â€]"}
+ ExemplarCharacters{
+ "[़ à¤-ः ०-९ ॠअ-ठà¤-ऑ ओ-क {क़} ख {ख़} ग {ग़} घ-ज {ज़} à¤-ड {ड़} ढ {ढ़} ण-न प फ"
+ " {फ़} ब-य {य़} र ल ळ व-ह ऽ-ॅ े-ॉ ो-à¥]"
+ }
Languages{
aa{"अफार"}
ab{"अबखेज़ियन"}
@@ -165,7 +169,7 @@ kok{
LocaleScript{
"Deva",
}
- Version{"1.31"}
+ Version{"1.42"}
calendar{
gregorian{
AmPmMarkers{
@@ -235,13 +239,12 @@ kok{
}
}
zoneStrings{
- {
- "Asia/Calcutta",
- "भारतीय समय",
- "IST",
- "भारतीय समय",
- "IST",
- "Calcutta",
+ "Asia:Calcutta"{
+ ec{"Calcutta"}
+ ld{"भारतीय समय"}
+ ls{"भारतीय समय"}
+ sd{"IST"}
+ ss{"IST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/kok_IN.txt b/Build/source/libs/icu-xetex/data/locales/kok_IN.txt
index 96d954ee066..4bf463c0f36 100644
--- a/Build/source/libs/icu-xetex/data/locales/kok_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kok_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kok_IN.xml
+// * Source File:<path>/common/main/kok_IN.xml
// *
// ***************************************************************************
kok_IN{
@@ -13,13 +13,9 @@ kok_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.31"}
+ Version{"1.43"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/kw.txt b/Build/source/libs/icu-xetex/data/locales/kw.txt
index dc6f7adea1a..291f460a22f 100644
--- a/Build/source/libs/icu-xetex/data/locales/kw.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kw.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kw.xml
+// * Source File:<path>/common/main/kw.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/kw.xml
+ * ICU <specials> source: <path>/xml/main/kw.xml
*/
kw{
Countries{
@@ -20,7 +20,7 @@ kw{
LocaleScript{
"Latn",
}
- Version{"1.27"}
+ Version{"1.37"}
calendar{
gregorian{
AmPmMarkers{
diff --git a/Build/source/libs/icu-xetex/data/locales/kw_GB.txt b/Build/source/libs/icu-xetex/data/locales/kw_GB.txt
index 4e43e00ff06..209945460c2 100644
--- a/Build/source/libs/icu-xetex/data/locales/kw_GB.txt
+++ b/Build/source/libs/icu-xetex/data/locales/kw_GB.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/kw_GB.xml
+// * Source File:<path>/common/main/kw_GB.xml
// *
// ***************************************************************************
kw_GB{
@@ -13,13 +13,9 @@ kw_GB{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.38"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss",
diff --git a/Build/source/libs/icu-xetex/data/locales/lt.txt b/Build/source/libs/icu-xetex/data/locales/lt.txt
index f5cff6c4663..6110a726b42 100644
--- a/Build/source/libs/icu-xetex/data/locales/lt.txt
+++ b/Build/source/libs/icu-xetex/data/locales/lt.txt
@@ -1,17 +1,45 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/lt.xml
+// * Source File:<path>/common/main/lt.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/lt.xml
+ * ICU <specials> source: <path>/xml/main/lt.xml
*/
lt{
+ AuxExemplarCharacters{"[q w x]"}
Countries{
+ 001{"Pasaulis"}
+ 002{"Afrika"}
+ 005{"Pietų Amerika"}
+ 011{"Vakarų Afrika"}
+ 013{"CentrinÄ— Amerika"}
+ 014{"Rytų Afrika"}
+ 015{"Å iaurÄ—s Afrika"}
+ 017{"Vidurio Afrika"}
+ 018{"Pietų Afrika [018]"}
+ 019{"Amerika"}
+ 029{"Karibai"}
+ 030{"Rytų Azija"}
+ 034{"Pietų Azija"}
+ 035{"PietryÄių Azija"}
+ 039{"Pietų Europa"}
+ 053{"Australija ir Naujoji Zelandija"}
+ 054{"Melanezija"}
+ 057{"Mikronezija [057]"}
+ 061{"Polinezija"}
+ 142{"Azija"}
+ 143{"CentrinÄ— Azija"}
+ 145{"Vakarų Azija"}
+ 150{"Europa"}
+ 151{"Rytų Europa"}
+ 154{"Å iaurÄ—s Europa"}
+ 155{"Vakarų Europa"}
200{"ÄŒekoslovakija"}
+ 419{"Lotynų Amerika ir Karibai"}
AD{"Andora"}
AE{"Jungtiniai Arabų Emyratai"}
AF{"Afganistanas"}
@@ -60,6 +88,7 @@ lt{
CN{"Kinija"}
CO{"Kolumbija"}
CR{"Kosta Rika"}
+ CS{"Serbija ir Juodkalnija"}
CU{"Kuba"}
CV{"Žaliasis Kyšulys"}
CX{"Kalėdų sala"}
@@ -103,7 +132,7 @@ lt{
GW{"Bisau GvinÄ—ja"}
GY{"Gajana"}
HK{"Kinijos S.A.R.Honkongas"}
- HM{"Heardo salos"}
+ HM{"Heardo ir McDonaldo Salų Sritis"}
HN{"Hondūras"}
HR{"Kroatija"}
HT{"Haitis"}
@@ -151,7 +180,7 @@ lt{
ML{"Malis"}
MM{"Mianmaras"}
MN{"Mongolija"}
- MO{"Kinijos S.A.R. Makao"}
+ MO{"Macao"}
MP{"Marianos Å¡iaurinÄ—s salos"}
MQ{"Martinika"}
MR{"Mauritanija"}
@@ -191,7 +220,6 @@ lt{
PW{"Palau"}
PY{"Paragvajus"}
QA{"Kataras"}
- RE{"Rejunjonas"}
RO{"Rumunija"}
RU{"Rusijos Federacija"}
RW{"Ruanda"}
@@ -289,10 +317,15 @@ lt{
"JAV doleris",
}
}
- ExemplarCharacters{"[a-z Ä… Ä™ į ų Ä— Å« Ä Å¡ ž]"}
+ ExemplarCharacters{"[a Ä… b c Ä d e Ä™ Ä— f-i į y j-p r s Å¡ t u ų Å« v z ž]"}
+ Keys{
+ calendar{"kalendorius"}
+ currency{"valiuta"}
+ }
Languages{
ar{"Arabų"}
bg{"Bulgarų"}
+ bn{"Bengalų"}
cs{"Čekų"}
da{"Danų"}
de{"VokieÄių"}
@@ -320,6 +353,7 @@ lt{
sk{"Slovakų"}
sl{"Slovėnų"}
sv{"Švedų"}
+ th{"Tajų"}
tr{"Turkų"}
zh{"Kinų"}
}
@@ -337,23 +371,19 @@ lt{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Latn{"Latin"}
}
- Version{"1.45"}
+ Version{"1.71"}
calendar{
gregorian{
AmPmMarkers{
"priešpiet",
"popiet",
}
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -404,6 +434,41 @@ lt{
"po Kr.",
}
}
+ fields{
+ day{
+ dn{"diena"}
+ }
+ dayperiod{
+ dn{"dienos metas"}
+ }
+ era{
+ dn{"era"}
+ }
+ hour{
+ dn{"valanda"}
+ }
+ minute{
+ dn{"minutÄ—"}
+ }
+ month{
+ dn{"mÄ—nuo"}
+ }
+ second{
+ dn{"SekundÄ—"}
+ }
+ week{
+ dn{"savaitÄ—"}
+ }
+ weekday{
+ dn{"savaitÄ—s diena"}
+ }
+ year{
+ dn{"metai"}
+ }
+ zone{
+ dn{"juosta"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -466,7 +531,53 @@ lt{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "pirmas ketvirtis",
+ "antras ketvirtis",
+ "treÄias ketvirtis",
+ "ketvirtas ketvirtis",
+ }
+ }
+ }
}
}
+ delimiters{
+ quotationEnd{"“"}
+ quotationStart{"„"}
+ }
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "America:Chicago"{
+ ec{"ÄŒikaga"}
+ }
+ "America:Denver"{
+ ec{"Denveris"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"Peterburgas"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Andželas"}
+ }
+ "America:Moncton"{
+ ec{"Monktonas"}
+ }
+ "America:New_York"{
+ ec{"Niujorkas"}
+ }
+ "America:Phoenix"{
+ ec{"Fyniksas"}
+ }
+ "America:Sao_Paulo"{
+ ec{"San Paulas"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/lt_LT.txt b/Build/source/libs/icu-xetex/data/locales/lt_LT.txt
index 0ed8eaa8441..c9afc6220dc 100644
--- a/Build/source/libs/icu-xetex/data/locales/lt_LT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/lt_LT.txt
@@ -1,17 +1,139 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/lt_LT.xml
+// * Source File:<path>/common/main/lt_LT.xml
// *
// ***************************************************************************
lt_LT{
+ Countries{
+ 172{"Nepriklausomų Valstybių Sandrauga"}
+ }
+ Languages{
+ ab{"Abchazų"}
+ ady{"Adygėjų"}
+ ale{"Aleutų"}
+ ang{"Senoji anglų (450-1100)"}
+ art{"DirbtinÄ— (kita)"}
+ aus{"Australų kalbos"}
+ az{"AzerbaidžanieÄių"}
+ ba{"Baškirų"}
+ bat{"Baltų (kita)"}
+ be{"Baltarusių"}
+ ber{"Berberų"}
+ bnt{"Bantų"}
+ bo{"TibetieÄių"}
+ br{"Bretonų"}
+ bs{"Bosnių"}
+ bua{"Buriatų"}
+ ca{"Katalonų"}
+ cai{"Centrinės Amerikos indėnų (kita)"}
+ cau{"KaukazieÄių (kita)"}
+ ce{"ÄŒeÄÄ—nų"}
+ cel{"Keltų (kita)"}
+ co{"KorsikieÄių"}
+ crh{"Krymo turkų; Krymo totorių"}
+ cu{"Bažnytinė slavų"}
+ cv{"Čiuvašų"}
+ cy{"Valų"}
+ eu{"Baskų"}
+ fa{"Persų"}
+ fiu{"Finougrų (kita)"}
+ fro{"Senoji prancūzų"}
+ fy{"Fryzų"}
+ ga{"Airių"}
+ gem{"Germanų (kita)"}
+ got{"Gotų"}
+ grc{"Senovės graikų"}
+ hy{"Armėnų"}
+ id{"IndonezieÄių"}
+ ine{"IndoeuropieÄių (kita)"}
+ inh{"Ingušų"}
+ ira{"IranieÄių"}
+ is{"Islandų"}
+ ka{"Gruzinų"}
+ kaa{"Karakalpakų"}
+ kbd{"Kabardinų"}
+ kk{"Kazachų"}
+ km{"Khmerų"}
+ ku{"Kurdų"}
+ ky{"Kirgizų"}
+ la{"Lotynų"}
+ lb{"LiuksemburgieÄių"}
+ lez{"Lezginų"}
+ mis{"Įvairios kalbos"}
+ mk{"Makedonų"}
+ mn{"Mongolų"}
+ mo{"Moldavų"}
+ ms{"Malajų"}
+ mul{"Kelios kalbos"}
+ nai{"Šiaurės Amerikos indėnų (kita)"}
+ nap{"NeapolieÄių"}
+ os{"Osetinų"}
+ paa{"Papuasų (kita)"}
+ peo{"Senoji persų"}
+ sa{"Sanskritas"}
+ sah{"Jakutų"}
+ sc{"SardinieÄių"}
+ scn{"SicilieÄių"}
+ sco{"Škotų"}
+ sga{"Senoji airių"}
+ sla{"Slavų (kita)"}
+ sq{"Albanų"}
+ sr{"Serbų"}
+ sux{"Šumerų"}
+ ta{"Tamilų"}
+ tk{"Turkmėnų"}
+ tt{"Totorių"}
+ tyv{"Tuvių"}
+ udm{"Udmurtų"}
+ uk{"UkrainieÄių"}
+ und{"Nenustatyta"}
+ uz{"Uzbekų"}
+ vi{"VietnamieÄių"}
+ vo{"Volapiuk"}
+ wa{"Valonų"}
+ xal{"Kalmukų"}
+ yi{"Jidiš"}
+ }
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Scripts{
+ Arab{"Arabų"}
+ Armn{"Armėnų"}
+ Beng{"Bengalų"}
+ Cyrl{"Kirilica"}
+ Cyrs{"Kirilica (senasis bažnytinis variantas)"}
+ Egyp{"Egipto hieroglifai"}
+ Ethi{"Etiopų"}
+ Geor{"Gruzinų"}
+ Goth{"Gotų"}
+ Grek{"Graikų"}
+ Hebr{"Hebrajų"}
+ Hung{"Senasis vengrų"}
+ Ital{"Senasis italų"}
+ Kana{"Katakana"}
+ Khmr{"Khmerų"}
+ Latn{"Lotynų"}
+ Mong{"Mongolų"}
+ Runr{"Runų"}
+ }
+ Version{"1.40"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"“"}
+ alternateQuotationStart{"„"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/lv.txt b/Build/source/libs/icu-xetex/data/locales/lv.txt
index 9f05ab9943f..6eda10afab4 100644
--- a/Build/source/libs/icu-xetex/data/locales/lv.txt
+++ b/Build/source/libs/icu-xetex/data/locales/lv.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/lv.xml
+// * Source File:<path>/common/main/lv.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/lv.xml
+ * ICU <specials> source: <path>/xml/main/lv.xml
*/
lv{
+ AuxExemplarCharacters{"[y q w x]"}
Countries{
AD{"Andora"}
AE{"Apvienotie ArÄbu EmirÄti"}
@@ -59,6 +60,7 @@ lv{
CN{"Ķīna"}
CO{"Kolumbija"}
CR{"Kostarika"}
+ CS{"Serbija un Melnkalne"}
CU{"Kuba"}
CV{"Kaboverde"}
CX{"Ziemsvētku sala"}
@@ -227,6 +229,7 @@ lv{
TR{"Turcija"}
TT{"TrinidÄda un TobÄgo"}
TV{"Tuvalu"}
+ TW{"TaivÄna"}
TZ{"TanzÄnija"}
UA{"Ukraina"}
UG{"Uganda"}
@@ -255,7 +258,7 @@ lv{
"LVL",
}
}
- ExemplarCharacters{"[a-z Ä Ä“ Ä« Å Å« Ä£ Ä· ļ ņ Å— Ä Å¡ ž]"}
+ ExemplarCharacters{"[a Ä b c Ä d e Ä“ f g Ä£ h i Ä« j k Ä· l ļ m n ņ o p r s Å¡ t u Å« v z ž]"}
Languages{
ar{"arÄbu"}
bg{"bulgÄru"}
@@ -302,16 +305,12 @@ lv{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.38"}
+ Version{"1.57"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -383,6 +382,22 @@ lv{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "C1",
+ "C2",
+ "C3",
+ "C4",
+ }
+ wide{
+ "1. ceturksnis",
+ "2. ceturksnis",
+ "3. ceturksnis",
+ "4. ceturksnis",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
diff --git a/Build/source/libs/icu-xetex/data/locales/lv_LV.txt b/Build/source/libs/icu-xetex/data/locales/lv_LV.txt
index 09240ecb0f6..2f4c855e731 100644
--- a/Build/source/libs/icu-xetex/data/locales/lv_LV.txt
+++ b/Build/source/libs/icu-xetex/data/locales/lv_LV.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/lv_LV.xml
+// * Source File:<path>/common/main/lv_LV.xml
// *
// ***************************************************************************
lv_LV{
@@ -13,5 +13,5 @@ lv_LV{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/mk.txt b/Build/source/libs/icu-xetex/data/locales/mk.txt
index 1b6ecfbdad0..59247d2278c 100644
--- a/Build/source/libs/icu-xetex/data/locales/mk.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mk.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mk.xml
+// * Source File:<path>/common/main/mk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/mk.xml
+ * ICU <specials> source: <path>/xml/main/mk.xml
*/
mk{
+ AuxExemplarCharacters{"[Ñ Ñ]"}
Countries{
AD{"Ðндора"}
AE{"Обединети ÐрапÑки Емирати"}
@@ -972,14 +973,23 @@ mk{
"ЗимбабвиÑки долар",
}
}
- ExemplarCharacters{"[а-и к-ш Ñ Ñ“ Ñ• ј Ñ™ Ñš Ñœ Ñ ÑŸ]"}
+ ExemplarCharacters{"[а-г ѓ д-з ѕ и ј к ќ л љ м н њ о-ч џ ш]"}
Keys{
calendar{"Календар"}
collation{"Сортирање"}
currency{"Валута"}
}
Languages{
+ de{"германÑки"}
+ en{"англиÑки"}
+ es{"шпанÑки"}
+ fr{"француÑки"}
+ it{"италијанÑки"}
+ ja{"јапонÑки"}
mk{"македонÑки"}
+ pt{"португалÑки"}
+ ru{"руÑки"}
+ zh{"кинеÑки"}
}
LocaleScript{
"Cyrl",
@@ -995,7 +1005,7 @@ mk{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Types{
@@ -1016,13 +1026,9 @@ mk{
traditional{"Традиционално"}
}
}
- Version{"1.43"}
+ Version{"1.58"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/mk_MK.txt b/Build/source/libs/icu-xetex/data/locales/mk_MK.txt
index 43d92041667..58ac8c53018 100644
--- a/Build/source/libs/icu-xetex/data/locales/mk_MK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mk_MK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mk_MK.xml
+// * Source File:<path>/common/main/mk_MK.xml
// *
// ***************************************************************************
mk_MK{
@@ -13,5 +13,5 @@ mk_MK{
"#,##0%",
"#E0",
}
- Version{"1.24"}
+ Version{"1.34"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ml.txt b/Build/source/libs/icu-xetex/data/locales/ml.txt
index a284218e88f..8d615fae64b 100644
--- a/Build/source/libs/icu-xetex/data/locales/ml.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ml.txt
@@ -1,21 +1,354 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ml.xml
+// * Source File:<path>/common/main/ml.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ml.xml
+ * ICU <specials> source: <path>/xml/main/ml.xml
*/
ml{
Countries{
+ 002{"ആഫàµà´°à´¿à´•àµà´•"}
+ 005{"ദകàµà´·à´¿à´£ അമേരികàµà´•"}
+ 011{"പശàµà´šà´¿à´®à´†à´«àµà´°à´¿à´•àµà´•"}
+ 013{"മദàµà´§àµà´¯à´…മേരികàµà´•"}
+ 015{"ഉതàµà´¤à´°à´†à´«àµà´°à´¿à´•àµà´•"}
+ 017{"മദàµà´§àµà´¯à´†à´«àµà´°à´¿à´•àµà´•"}
+ 019{"അമേരികàµà´•à´¸àµ"}
+ 029{"കരീബിയനàµâ€"}
+ 142{"à´à´·àµà´¯"}
+ 150{"യൂറോപàµà´ªàµ"}
+ AD{"à´…à´¨àµâ€à´Ÿàµ‹à´±"}
+ AE{"സംയàµà´•àµà´¤ അറബൠരാഷàµà´Ÿàµà´°à´‚"}
+ AF{"à´…à´«àµà´—ാനിസàµà´¥à´¾à´¨àµâ€"}
+ AG{"ആനàµâ€à´±à´¿à´—àµà´µ ആനàµâ€à´±àµ ബരàµâ€à´¬àµà´¡"}
+ AL{"à´…à´²àµâ€à´¬àµ‡à´¨à´¿à´¯"}
+ AM{"à´…à´°àµâ€à´®àµ‡à´¨à´¿à´¯"}
+ AO{"അംഗോള"}
+ AQ{"à´…à´¨àµâ€à´±à´¾à´°àµâ€à´Ÿàµà´Ÿà´¿à´•àµà´•"}
+ AR{"à´…à´°àµâ€à´œà´¨àµâ€à´±àµ€à´¨"}
+ AT{"à´“à´¸àµà´Ÿàµà´°à´¿à´¯"}
+ AU{"à´“à´¸àµà´Ÿàµà´°àµ‡à´²à´¿à´¯"}
+ AZ{"അസരàµâ€à´¬àµˆà´œà´¾à´¨àµâ€"}
+ BA{"ബോസàµà´¨à´¿à´¯ ഹെരàµâ€à´¸à´—ോവിന"}
+ BB{"ബാരàµâ€à´¬à´¡àµ‹à´¸àµ"}
+ BD{"ബംഗàµà´²à´¾à´¦àµ‡à´¶àµ"}
+ BE{"ബെലàµâ€à´œà´¿à´¯à´‚"}
+ BF{"à´¬àµà´°àµâ€à´•àµà´•à´¿à´¨à´¾ ഫാസോ"}
+ BG{"ബളàµâ€à´—േറിയ"}
+ BH{"ബഹàµà´±àµˆà´¨àµâ€"}
+ BI{"à´¬àµà´±àµà´£àµà´Ÿà´¿"}
+ BJ{"ബെനിനàµâ€"}
+ BM{"ബരàµâ€à´®àµà´¡"}
+ BN{"à´¬àµà´°àµ‚ണയàµ"}
+ BO{"ബൊളീവിയ"}
+ BR{"à´¬àµà´°à´¸àµ€à´²àµâ€"}
+ BS{"ബഹാമാസàµ"}
+ BT{"ഭൂടàµà´Ÿà´¾à´¨àµâ€"}
+ BW{"ബോടàµà´¸àµà´µà´¾à´¨"}
+ BY{"ബെലറൂസàµ"}
+ BZ{"ബെലീസàµ"}
+ CA{"കനഡ"}
+ CC{"കോകàµà´•à´¸àµ"}
+ CF{"സെനàµâ€à´Ÿàµà´°à´²àµâ€ ആഫàµà´°à´¿à´•àµà´•à´¨àµâ€ റിപàµà´ªà´¬àµà´²à´¿à´•àµ"}
+ CG{"കോംഗോ"}
+ CH{"à´¸àµà´µà´¿à´±àµà´±àµà´¸à´°àµâ€à´²à´¨àµâ€à´¡àµ"}
+ CI{"à´à´µà´±à´¿ കോസàµà´±àµà´±àµ"}
+ CL{"ചിലി"}
+ CM{"കാമറൂണàµâ€"}
+ CN{"ചൈന"}
+ CO{"കൊളംബിയ"}
+ CR{"കോസàµà´±àµà´±à´±à´¿à´•àµà´•"}
+ CU{"à´•àµà´¯àµ‚à´¬"}
+ CV{"കേപàµà´ªàµ വെരàµâ€à´¡àµ†"}
+ CY{"സൈപàµà´°à´¸àµà´¸àµ"}
+ CZ{"ചെകàµà´•àµ റിപàµà´ªà´¬àµà´²à´¿à´•àµ"}
+ DE{"ജരàµâ€à´®à´¨à´¿"}
+ DJ{"ജിബൂടàµà´Ÿà´¿"}
+ DK{"ഡെനàµà´®à´¾à´°àµâ€à´•àµà´•àµ"}
+ DM{"ഡൊമിനികàµà´•"}
+ DO{"ഡൊമിനികàµà´•à´¨àµâ€ റിപàµà´ªà´¬àµà´²à´¿à´•àµ"}
+ DZ{"à´…à´²àµâ€à´œàµ€à´±à´¿à´¯"}
+ EC{"ഇകàµà´µà´¡àµ‹à´°àµâ€"}
+ EE{"à´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯â€"}
+ EG{"ഈജിപàµà´¤àµ"}
+ EH{"പശàµà´šà´¿à´® സഹാറ"}
+ ER{"à´Žà´°à´¿à´Ÿàµà´°à´¿à´¯"}
+ ES{"à´¸àµà´ªàµ†à´¯àµà´¨àµâ€"}
+ ET{"à´Žà´¤àµà´¯àµ‹à´ªàµà´¯"}
+ FI{"à´«à´¿à´¨àµâ€à´²à´¾à´¨àµâ€à´¡àµ"}
+ FJ{"ഫിജി"}
+ FR{"à´«àµà´°à´¾à´¨àµâ€à´¸àµ"}
+ GB{"à´¬àµà´°à´¿à´Ÿàµà´Ÿà´¨àµâ€"}
+ GD{"à´—àµà´°à´¨àµ‡à´¡"}
+ GE{"ജോരàµâ€à´œà´¿à´¯"}
+ GI{"ജിബàµà´°à´¿à´³àµâ€à´Ÿàµà´Ÿà´°àµâ€"}
+ GL{"à´—àµà´°àµ€à´¨àµâ€à´²à´¾à´¨àµâ€à´±àµ"}
+ GM{"ഗാംബിയ"}
+ GR{"à´—àµà´°àµ€à´¸àµ"}
+ GT{"à´—àµà´µà´¾à´Ÿàµà´Ÿà´¿à´®à´¾à´²à´¾"}
+ GW{"ഗിനി-ബിസോ"}
+ GY{"ഗയാന"}
+ HR{"à´•àµà´°àµŠà´¯àµ‡à´·àµà´¯"}
+ HT{"ഹൈയàµà´¤à´¿"}
+ HU{"ഹംഗറി"}
+ IE{"à´à´¯à´°àµâ€à´²à´¾à´¨àµâ€à´±àµ"}
+ IL{"ഇസàµà´°à´¾à´¯àµ‡à´²àµâ€"}
IN{"ഇനàµà´¤àµà´¯"}
+ IQ{"ഇറാകàµà´•àµ"}
+ IR{"ഇറാനàµâ€"}
+ IT{"ഇറàµà´±à´²à´¿"}
+ JM{"ജമൈകàµà´•"}
+ JO{"ജോരàµâ€à´¦àµà´¦à´¾à´¨àµâ€"}
+ JP{"ജപàµà´ªà´¾à´¨àµâ€"}
+ KE{"കെനിയ"}
+ KG{"à´•à´¿à´°àµâ€à´—à´¿à´¸àµà´¥à´¾à´¨àµâ€"}
+ KH{"കംബോഡിയ"}
+ KI{"കിരിബാതàµà´¤à´¿"}
+ KP{"ഉതàµà´¤à´°à´•àµŠà´±à´¿à´¯"}
+ KR{"ദകàµà´·à´¿à´£à´•àµŠà´±à´¿à´¯"}
+ KW{"à´•àµà´µàµˆà´±àµà´±àµ"}
+ KZ{"കസാഖàµà´¸àµà´¥à´¾à´¨àµâ€"}
+ LA{"ലാവോസàµ"}
+ LB{"ലബനനàµâ€"}
+ LK{"à´¶àµà´°àµ€à´²à´™àµà´•"}
+ LR{"ലൈബീരിയ"}
+ LS{"ലെസോതàµà´¤àµ‹"}
+ LT{"ലിതàµà´µà´¾à´¨à´¿à´¯"}
+ LU{"ലകàµà´¸à´‚ബരàµâ€à´—àµ"}
+ LY{"ലിബിയ"}
+ MA{"മൊറോകàµà´•àµŠ"}
+ MC{"മൊണോകàµà´•àµŠ"}
+ MG{"മഡഗാസàµà´•à´°àµâ€"}
+ ML{"മാലി"}
+ MM{"à´®àµà´¯à´¾à´¨àµâ€à´®à´¾à´°àµâ€"}
+ MN{"മംഗോളിയ"}
+ MT{"മാളàµâ€à´Ÿàµà´Ÿ"}
+ MX{"മേകàµà´¸à´¿à´•àµà´•àµ‹"}
+ MY{"മലേഷàµà´¯"}
+ MZ{"മൊസാംബികàµà´•àµ"}
+ NA{"നമീബിയ"}
+ NE{"നൈഗരàµâ€"}
+ NG{"നൈജീരിയ"}
+ NP{"നേപàµà´ªà´¾à´³àµâ€"}
+ PA{"പനാമ"}
+ PE{"പെറàµ"}
+ PH{"ഫിലിപàµà´ªàµˆà´¨àµâ€à´¸àµ"}
+ PK{"പാകàµà´•à´¿à´¸àµà´¥à´¾à´¨àµâ€"}
+ PT{"പോരàµâ€à´šàµà´šàµà´—à´²àµâ€"}
+ QA{"à´–à´¤àµà´¤à´°àµâ€"}
+ RU{"റഷàµà´¯"}
+ SD{"à´¸àµà´¡à´¾à´¨àµâ€"}
+ SE{"à´¸àµà´µàµ€à´¡à´¨àµâ€"}
+ SG{"സിംഗപàµà´ªàµà´°àµâ€"}
+ SN{"സെനഗലàµâ€"}
+ SO{"സോമാലിയ"}
+ SY{"സിറിയ"}
+ TL{"à´•à´¿à´´à´•àµà´•à´¨àµâ€ തിമàµà´°àµâ€"}
+ TV{"à´¤àµà´µà´¾à´²àµ"}
+ US{"à´¯àµà´£àµˆà´±àµà´±à´¡àµ à´¸àµà´±àµà´±àµ‡à´±àµà´±àµà´¸àµ ഓഫൠഅമേരികàµà´•"}
+ VA{"വതàµà´¤à´¿à´•àµà´•à´¾à´¨àµâ€"}
+ VN{"വിയറàµà´±àµà´¨à´¾à´‚"}
+ ZM{"സാംബിയ"}
+ ZW{"സിംബാവെ"}
}
- ExemplarCharacters{"[ംഃഅആഇഈഉഊഋഌഎà´à´à´’ഓഔകഖഗഘങചഛജà´à´žà´Ÿà´ à´¡à´¢à´£à´¤à´¥à´¦à´§à´¨à´ªà´«à´¬à´­à´®à´¯à´°à´±à´²à´³à´´à´µà´¶à´·à´¸à´¹à´¾à´¿àµ€àµàµ‚ൃെേൈൊോൌàµàµ—ൠൡ]"}
+ Currencies{
+ AED{
+ "AED",
+ "à´¯àµà´Žà´‡ ദിരàµâ€à´¹à´‚",
+ }
+ AUD{
+ "AUD",
+ "ആസàµà´Ÿàµà´°àµ‡à´²à´¿à´¯à´¨àµâ€ ഡോളരàµâ€",
+ }
+ BBD{
+ "BBD",
+ "ബാരàµâ€à´¬à´¡àµ‹à´¸àµ ഡോളരàµâ€",
+ }
+ BEL{
+ "ബലàµâ€à´œà´¿à´¯à´¨àµâ€ à´«àµà´°à´¾à´™àµà´•àµ",
+ "BEL",
+ }
+ BGN{
+ "BGN",
+ "ബളàµâ€à´—േറിയനàµâ€ à´¨àµà´¯àµ‚ലവàµ",
+ }
+ BRL{
+ "BRL",
+ "à´¬àµà´°à´¸àµ€à´²à´¿à´¯à´¨àµâ€ റിയാലàµâ€",
+ }
+ EUR{
+ "€",
+ "യൂറോ",
+ }
+ FJD{
+ "FJD",
+ "ഫിജി ഡോളരàµâ€",
+ }
+ GBP{
+ "£",
+ "à´¬àµà´°à´¿à´Ÿàµà´Ÿàµ€à´·àµ പൌണàµà´Ÿàµ à´¸àµà´±àµà´±àµ†à´°àµâ€à´²à´¿à´‚à´™àµ",
+ }
+ INR{
+ "=0#Rs.|1#Re.|1<Rs.",
+ "ഇനàµâ€à´¡àµà´¯à´¨àµâ€ രൂപ",
+ }
+ ITL{
+ "₤",
+ "ഇറàµà´±à´¾à´²à´¿à´¯à´¨àµâ€ ലിറ",
+ }
+ JPY{
+ "Â¥",
+ "ജാപàµà´ªà´¾à´¨àµ€à´¸àµ യെനàµâ€",
+ }
+ RUB{
+ "RUB",
+ "റഷàµà´¯à´¨àµâ€ റൂബിളàµâ€",
+ }
+ USD{
+ "$",
+ "à´¯àµà´Žà´¸àµ ഡോളരàµâ€",
+ }
+ }
+ ExemplarCharacters{"[അ-ഋ ൠ ഌ ൡ എ-ഠഒ-ന പ-ര ല വ ള ഴ റ ശ-ഹ ഃ ം ാ-ൃ െ-ൈ ൊ-ൠൗ]"}
Languages{
+ aa{"അഫാരàµâ€"}
+ ab{"à´…à´¬àµà´–ാസിയനàµâ€"}
+ af{"ആഫàµà´°à´¿à´•àµà´•à´¨àµâ€"}
+ am{"അംഹാറികàµ"}
+ ar{"അറബികàµà´•àµ"}
+ as{"ആസàµà´¸à´¾à´®àµ€à´¸àµ"}
+ ay{"à´…à´¯àµà´®à´¾à´±"}
+ az{"അസരàµâ€à´¬àµˆà´œà´¾à´¨à´¿"}
+ ba{"ബഷàµà´–à´¿à´°àµâ€"}
+ be{"ബൈലോറഷàµà´¯à´¨àµâ€"}
+ bh{"ബീഹാറി"}
+ bi{"ബിസàµâ€Œà´²à´¾à´®"}
+ bn{"ബംഗാളി"}
+ bo{"തിബറàµà´±à´¨àµâ€"}
+ br{"à´¬àµà´°à´¿à´Ÿàµà´Ÿà´£àµâ€"}
+ ca{"à´•àµà´¯à´¾à´±àµà´±à´²à´¨àµâ€"}
+ co{"കോരàµâ€à´¸à´¿à´•àµà´•à´¨àµâ€"}
+ cs{"ചെകàµà´•àµ"}
+ cy{"വെലàµâ€à´·àµ"}
+ da{"ഡാനിഷàµ"}
+ de{"ജരàµâ€à´®àµà´®à´¨àµâ€"}
+ dz{"ഭൂടàµà´Ÿà´¾à´¨à´¿"}
+ el{"à´—àµà´°àµ€à´•àµà´•àµ"}
+ en{"ഇംഗàµà´²àµ€à´·àµ"}
+ es{"à´¸àµà´ªà´¾à´¨à´¿à´·àµ"}
+ et{"à´Žà´¸àµà´±àµà´±àµ‹à´£à´¿à´¯à´¨àµâ€"}
+ eu{"ബാസàµà´•àµà´•àµ"}
+ fa{"പേരàµâ€à´·àµà´¯à´¨àµâ€"}
+ fi{"à´«à´¿à´¨àµà´¨à´¿à´·àµ"}
+ fj{"ഫിജിയനàµâ€"}
+ fo{"ഫാറോസàµ"}
+ fr{"à´«àµà´°à´žàµà´šàµ"}
+ fy{"à´«àµà´°àµ€à´¸à´¿à´¯à´¨àµâ€"}
+ ga{"à´à´±à´¿à´·àµ"}
+ gd{"à´¸àµà´•àµ‹à´Ÿàµà´Ÿà´¿à´·àµ ഗൈലികàµ"}
+ gl{"ഗലിഷàµà´¯à´£àµâ€"}
+ gn{"à´—àµà´µà´¾à´±à´¾à´¨à´¿"}
+ gu{"à´—àµà´œà´±à´¾à´¤àµà´¤à´¿"}
+ ha{"ഹൌസ"}
+ he{"ഹിബàµà´°àµ"}
+ hr{"à´•àµà´°àµ‹à´¯àµ‡à´·àµà´¯à´¨àµâ€"}
+ hu{"ഹംഗേറിയനàµâ€"}
+ hy{"à´…à´°àµâ€à´®àµ‡à´¨à´¿à´¯à´¨àµâ€"}
+ ia{"ഇനàµâ€à´±à´°àµâ€à´²à´¿à´‚à´—àµà´µà´¾"}
+ id{"ഇനàµâ€à´¡àµ‹à´¨àµ‡à´·àµà´¯à´¨àµâ€"}
+ ie{"ഇനàµâ€à´±à´°àµâ€à´²à´¿à´‚à´—àµà´µà´¿"}
+ ik{"ഇനàµà´ªà´¿à´¯à´¾à´•àµ"}
+ is{"à´à´¸àµâ€Œà´²à´¾à´¨àµâ€à´¡à´¿à´•àµ"}
+ it{"ഇറàµà´±à´¾à´²à´¿à´¯à´¨àµâ€"}
+ iu{"ഇനàµà´•àµà´±àµà´±à´¿à´±àµà´±à´Ÿàµà´Ÿàµ"}
+ ja{"ജാപàµà´ªà´¨àµ€à´¸àµ"}
+ jv{"ജാവാനീസàµ"}
+ ka{"ജോരàµâ€à´œà´¿à´¯à´¨àµâ€"}
+ kk{"കസാഖàµ"}
+ kn{"à´•à´¨àµà´¨à´¡"}
+ ko{"കൊറിയനàµâ€"}
+ kok{"കൊങàµà´•à´£à´¿"}
+ ks{"കാശàµà´®àµ€à´°à´¿"}
+ ku{"à´•àµà´°àµâ€à´¦à´¿à´·àµ"}
+ ky{"à´•à´¿à´°àµâ€à´—à´¿à´¸àµ"}
+ la{"ലാറàµà´±à´¿à´¨àµâ€"}
+ ln{"ലിംഗാല"}
+ lo{"ലാവോതàµà´¯à´¨àµâ€"}
+ lt{"ലിതàµà´µà´¾à´¨à´¿à´¯à´¨àµâ€"}
+ mg{"മലഗാസി"}
+ mi{"മൌറി"}
+ mk{"മാസിഡോണിയനàµâ€"}
ml{"മലയാളം"}
+ mn{"മംഗോളിയനàµâ€"}
+ mo{"മൊളàµâ€à´¡àµ‹à´µà´¨àµâ€"}
+ mr{"മറാഠി"}
+ ms{"മലയ"}
+ mt{"മാളàµâ€à´Ÿàµà´Ÿàµ€à´¸àµ"}
+ my{"ബരàµâ€à´®àµ€à´¸àµ"}
+ na{"നൌറàµ"}
+ ne{"നേപàµà´ªà´¾à´³à´¿"}
+ nl{"à´¡à´šàµà´šàµ"}
+ no{"നോരàµâ€à´µàµ€à´œà´¿à´¯à´¨àµâ€"}
+ oc{"ഒസിറàµà´±à´¾à´¨àµâ€"}
+ om{"ഒറോമിംഗ"}
+ or{"ഒറിയ"}
+ pa{"പഞàµà´šà´¾à´¬à´¿"}
+ pl{"പോളിഷàµ"}
+ ps{"പഷàµà´¤àµ"}
+ pt{"പോരàµâ€à´šàµà´šàµà´—ീസàµ"}
+ qu{"à´•àµà´µàµ†à´šàµà´šàµà´µ"}
+ rm{"രഹയàµà´Ÿàµà´Ÿàµ‹-റോമനàµâ€à´¸àµ"}
+ rn{"à´•à´¿à´±àµà´£àµà´Ÿà´¿"}
+ ro{"റൊമാനിയനàµâ€"}
+ root{"ശിഖരàµâ€"}
+ ru{"റഷàµà´¯à´¨àµâ€"}
+ rw{"à´•à´¿à´¨àµà´¯à´°àµâ€à´µà´£àµà´Ÿ"}
+ sa{"സംസàµà´•àµƒà´¤à´‚"}
+ sd{"സിനàµà´§à´¿"}
+ sg{"സാങàµà´•àµ‹"}
+ si{"സിംഹളീസàµ"}
+ sk{"à´¸àµà´²àµ‹à´µà´¾à´•àµà´•àµ"}
+ sl{"à´¸àµà´²àµ‹à´µàµ‡à´¨à´¿à´¯à´¨àµâ€"}
+ sm{"സമോവനàµâ€"}
+ sn{"ഷോണാ"}
+ so{"സോമാലി"}
+ sq{"à´…à´²àµâ€à´¬àµ‡à´¨à´¿à´¯à´¨àµâ€"}
+ sr{"സെരàµâ€à´¬à´¿à´¯à´¨àµâ€"}
+ ss{"à´¸àµà´µà´¾à´¸à´¿"}
+ st{"സെസോതàµà´¤àµ‹"}
+ su{"à´¸àµà´¡à´¾à´¨àµ€à´¸àµ"}
+ sv{"à´¸àµà´µàµ€à´¡à´¿à´·àµ"}
+ sw{"à´¸àµà´µà´¾à´¹à´¿à´²à´¿"}
+ ta{"തമിഴàµ"}
+ te{"തെലàµà´—àµ"}
+ tg{"താജികàµ"}
+ th{"തായàµ"}
+ ti{"തിഗàµà´°à´¿à´—àµâ€Œà´¨à´¾"}
+ tk{"à´¤àµà´°àµâ€à´•àµà´•à´®à´¨àµâ€"}
+ tl{"തഗാലോഗàµ"}
+ tn{"സെറàµà´±àµà´¸àµà´µà´¾à´¨"}
+ to{"ടോംഗനàµâ€"}
+ tr{"à´Ÿà´°àµâ€à´•àµà´•à´¿à´·àµ"}
+ ts{"ഷോണ"}
+ tt{"à´±àµà´±à´¾à´±àµà´±à´°àµâ€"}
+ tw{"à´¤àµà´µà´µà´¿"}
+ ug{"ഉയàµà´˜àµà´°àµâ€"}
+ uk{"ഉകàµà´°àµ‡à´¨à´¿à´¯à´¨àµâ€"}
+ ur{"ഉറàµà´¦àµ"}
+ uz{"ഉസàµà´¬à´•àµ"}
+ vi{"വിയറàµà´±àµà´¨à´¾à´®àµ€à´¸àµ"}
+ vo{"വോളാപàµà´•àµ"}
+ wo{"വൊളോഫàµ"}
+ xh{"à´•àµà´·àµ‹à´¸à´¾"}
+ yi{"യിദàµà´¦à´¿à´·àµ"}
+ yo{"യൊറൂബാ"}
+ za{"à´¸àµà´µà´¾à´‚à´—àµ"}
+ zh{"ചൈനീസàµ"}
+ zu{"à´¸àµà´³àµ"}
}
LocaleScript{
"Mlym",
@@ -31,10 +364,22 @@ ml{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.14"}
+ Scripts{
+ Arab{"അറബികàµà´•àµ"}
+ Beng{"ബംഗാളി"}
+ Gujr{"à´—àµà´œà´±à´¾à´¤àµà´¤à´¿"}
+ Hant{"ചൈനയàµà´Ÿàµ† à´ªàµà´°à´¾à´šàµ€à´¨ ലിപി"}
+ Hira{"ഹിബàµà´°àµ"}
+ Knda{"à´•à´¨àµà´¨à´¡"}
+ Latn{"ലാറàµà´±à´¿à´¨àµâ€"}
+ Mlym{"മലയാളം"}
+ Orya{"ഒറിയ"}
+ Taml{"തമിഴàµ"}
+ }
+ Version{"1.27"}
calendar{
gregorian{
AmPmMarkers{
@@ -97,4 +442,8 @@ ml{
}
}
}
+ messages{
+ nostr{"à´…à´²àµà´²"}
+ yesstr{"അതെ"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ml_IN.txt b/Build/source/libs/icu-xetex/data/locales/ml_IN.txt
index 3137e817732..fad1d3dd1f4 100644
--- a/Build/source/libs/icu-xetex/data/locales/ml_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ml_IN.txt
@@ -1,25 +1,24 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ml_IN.xml
+// * Source File:<path>/common/main/ml_IN.xml
// *
// ***************************************************************************
ml_IN{
+ Languages{
+ de{"ജരàµâ€à´®àµà´®à´¨àµ"}
+ }
NumberPatterns{
"#,##,##0.###",
"¤ #,##,##0.00",
"#,##,##0%",
"#E0",
}
- Version{"1.14"}
+ Version{"1.27"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
@@ -31,6 +30,12 @@ ml_IN{
"dd-MM-yy",
"{1} {0}",
}
+ availableFormats{
+ MMMMd{"d MMMM"}
+ MMdd{"dd-MM"}
+ yyyyMM{"MM-yyyy"}
+ yyyyMMMM{"MMMM yyyy"}
+ }
weekend:intvector{
1,
0,
diff --git a/Build/source/libs/icu-xetex/data/locales/mr.txt b/Build/source/libs/icu-xetex/data/locales/mr.txt
index 85c57e050b7..d3eded603e5 100644
--- a/Build/source/libs/icu-xetex/data/locales/mr.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mr.txt
@@ -1,16 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mr.xml
+// * Source File:<path>/common/main/mr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/mr.xml
+ * ICU <specials> source: <path>/xml/main/mr.xml
*/
mr{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
+ BR{"बà¥à¤°à¤¾à¤œà¥€à¤²"}
+ DE{"जमिन"}
IN{"भारत"}
}
Currencies{
@@ -19,7 +22,7 @@ mr{
"INR",
}
}
- ExemplarCharacters{"[à¤-ह़-à¥à¥-॔ॠ-ॣ०-९ॽ‌â€]"}
+ ExemplarCharacters{"[़ à¤-ः ०-९ ॠअ-ठà¤-ऑ ओ-न प-र ल ळ व-ह ऽ-ॅ े-ॉ ो-à¥]"}
Languages{
aa{"अफार"}
ab{"अबखेजियन"}
@@ -116,7 +119,7 @@ mr{
rm{"रहटो-रोमानà¥à¤¸à¥"}
rn{"किरà¥à¤¨à¥à¤¦à¥€"}
ro{"रोमानियनà¥"}
- root{"मराठी"}
+ root{"शिखर"}
ru{"रषà¥à¤¯à¤¨à¥"}
rw{"किनà¥à¤¯à¤¾à¤°à¥à¤µà¤¾à¤¨à¥à¤¡à¤¾"}
sa{"संसà¥à¤•à¥ƒà¤¤"}
@@ -166,7 +169,7 @@ mr{
LocaleScript{
"Deva",
}
- Version{"1.32"}
+ Version{"1.50"}
calendar{
gregorian{
AmPmMarkers{
@@ -236,13 +239,12 @@ mr{
}
}
zoneStrings{
- {
- "Asia/Calcutta",
- "भारतीय समय",
- "IST",
- "भारतीय समय",
- "IST",
- "Calcutta",
+ "Asia:Calcutta"{
+ ec{"Calcutta"}
+ ld{"भारतीय समय"}
+ ls{"भारतीय समय"}
+ sd{"IST"}
+ ss{"IST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/mr_IN.txt b/Build/source/libs/icu-xetex/data/locales/mr_IN.txt
index 6a008d6c12f..92f6d172d79 100644
--- a/Build/source/libs/icu-xetex/data/locales/mr_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mr_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mr_IN.xml
+// * Source File:<path>/common/main/mr_IN.xml
// *
// ***************************************************************************
mr_IN{
@@ -13,13 +13,9 @@ mr_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.34"}
+ Version{"1.47"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
@@ -39,4 +35,10 @@ mr_IN{
}
}
}
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ quotationEnd{"'"}
+ quotationStart{"'"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ms.txt b/Build/source/libs/icu-xetex/data/locales/ms.txt
index 5f760a0ed42..63d786b0c71 100644
--- a/Build/source/libs/icu-xetex/data/locales/ms.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ms.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ms.xml
+// * Source File:<path>/common/main/ms.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ms.xml
+ * ICU <specials> source: <path>/xml/main/ms.xml
*/
ms{
Countries{
@@ -256,20 +256,19 @@ ms{
"Ringgit Malaysia",
}
}
- ExemplarCharacters{"[a-z]"}
+ ExemplarCharacters{
+ "[a {ai} {au} b-d {dz} e-k {kh} l-n {ng} {ngg} {ny} o-s {sy} t {ts} u {ua} v-"
+ "z]"
+ }
Languages{
ms{"Bahasa Melayu"}
}
LocaleScript{
"Latn",
}
- Version{"1.29"}
+ Version{"1.44"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
dayNames{
format{
abbreviated{
@@ -324,6 +323,22 @@ ms{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "S1",
+ "S2",
+ "S3",
+ "S4",
+ }
+ wide{
+ "suku pertama",
+ "suku kedua",
+ "suku ketiga",
+ "suku keempat",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ms_BN.txt b/Build/source/libs/icu-xetex/data/locales/ms_BN.txt
index ce50607f6e4..53d949c3dae 100644
--- a/Build/source/libs/icu-xetex/data/locales/ms_BN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ms_BN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ms_BN.xml
+// * Source File:<path>/common/main/ms_BN.xml
// *
// ***************************************************************************
ms_BN{
@@ -28,10 +28,10 @@ ms_BN{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.20"}
+ Version{"1.31"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/ms_MY.txt b/Build/source/libs/icu-xetex/data/locales/ms_MY.txt
index 26231389d07..74dddf4ba0d 100644
--- a/Build/source/libs/icu-xetex/data/locales/ms_MY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ms_MY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ms_MY.xml
+// * Source File:<path>/common/main/ms_MY.xml
// *
// ***************************************************************************
ms_MY{
@@ -13,7 +13,7 @@ ms_MY{
"#,##0%",
"#E0",
}
- Version{"1.24"}
+ Version{"1.35"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/mt.txt b/Build/source/libs/icu-xetex/data/locales/mt.txt
index 1e8224f9a10..a5d2c79ec2c 100644
--- a/Build/source/libs/icu-xetex/data/locales/mt.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mt.txt
@@ -1,16 +1,45 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mt.xml
+// * Source File:<path>/common/main/mt.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/mt.xml
+ * ICU <specials> source: <path>/xml/main/mt.xml
*/
mt{
+ AuxExemplarCharacters{"[c y]"}
Countries{
+ 001{"Dinja"}
+ 002{"Affrika"}
+ 005{"Amerika t’Isfel"}
+ 009{"OÄ‹ejanja"}
+ 011{"Affrika tal-Punent"}
+ 013{"Amerika ÄŠentrali"}
+ 014{"Affrika tal-Lvant"}
+ 015{"Affrika ta’ Fuq"}
+ 017{"Affrika Nofsani"}
+ 018{"Affrika t’Isfel"}
+ 019{"Amerika"}
+ 029{"Karibew"}
+ 030{"Asja tal-Lvant"}
+ 034{"Asja t’Isfel Ċentrali"}
+ 035{"Asja tax-Xlokk"}
+ 039{"Ewropa t’Isfel"}
+ 053{"Awstralja u New Zealand"}
+ 054{"Melanesja"}
+ 061{"Polinesja"}
+ 142{"Asja"}
+ 145{"Asja tal-Punent"}
+ 150{"Ewropa"}
+ 151{"Ewropa tal-Lvant"}
+ 154{"Ewropa ta’ Fuq"}
+ 155{"Ewropa tal-Punent"}
+ 172{"Commonwealth tal-Istati Independenti"}
+ 419{"Amerika Latina u l-Karibew"}
+ 833{"Isle of Man"}
AD{"Andorra"}
AE{"Emirati Għarab Maqgħuda"}
AF{"Afganistan"}
@@ -20,7 +49,7 @@ mt{
AM{"Armenja"}
AN{"Antilles Olandiżi"}
AO{"Angola"}
- AQ{"Antarctica"}
+ AQ{"Antartika"}
AR{"Arġentina"}
AS{"Samoa Amerikana"}
AT{"Awstrija"}
@@ -52,13 +81,14 @@ mt{
CF{"Repubblika Afrikana ÄŠentrali"}
CG{"Kongo"}
CH{"Svizzera"}
- CI{"Kosta ta' l-Avorju"}
+ CI{"Kosta ta’ l-Avorju"}
CK{"Cook Islands"}
CL{"ÄŠili"}
CM{"Kamerun"}
CN{"ÄŠina"}
CO{"Kolumbja"}
CR{"Kosta Rika"}
+ CS{"Serbja u Montenegro"}
CU{"Kuba"}
CV{"Kape Verde"}
CX{"Christmas Island"}
@@ -125,14 +155,14 @@ mt{
KI{"Kiribati"}
KM{"Komoros"}
KN{"Saint Kitts and Nevis"}
- KP{"Koreja ta' Fuq"}
- KR{"Koreja t'Isfel"}
+ KP{"Koreja ta’ Fuq"}
+ KR{"Koreja t’Isfel"}
KW{"Kuwajt"}
KY{"Cayman Islands"}
KZ{"Każakstan"}
LA{"Laos"}
LB{"Libanu"}
- LC{"Saint Lucia"}
+ LC{"Santa Luċija"}
LI{"Liechtenstein"}
LK{"Sri Lanka"}
LR{"Liberja"}
@@ -145,13 +175,13 @@ mt{
MC{"Monako"}
MD{"Maldova"}
MG{"Madagaskar"}
- MH{"Gżejjer ta' Marshall"}
+ MH{"Gżejjer ta’ Marshall"}
MK{"Maċedonja"}
ML{"Mali"}
MM{"Mjanmar"}
MN{"Mongolja"}
MO{"Macao S.A.R., China"}
- MP{"Gżejjer Marjana ta' Fuq"}
+ MP{"Gżejjer Marjana ta’ Fuq"}
MQ{"Martinik"}
MR{"Mawritanja"}
MS{"Montserrat"}
@@ -215,7 +245,7 @@ mt{
SZ{"Sważiland"}
TC{"Turks and Caicos Islands"}
TD{"ÄŠad"}
- TF{"Territorji Franċiżi ta' Nofsinhar"}
+ TF{"Territorji Franċiżi ta’ Nofsinhar"}
TG{"Togo"}
TH{"Tajlandja"}
TJ{"Taġikistan"}
@@ -246,17 +276,26 @@ mt{
WS{"Samoa"}
YE{"Jemen"}
YT{"Majotte"}
- ZA{"Afrika t'Isfel"}
+ ZA{"Afrika t’Isfel"}
ZM{"Żambja"}
ZW{"Żimbabwe"}
}
Currencies{
+ EUR{
+ "€",
+ "Ewro",
+ }
MTL{
"Lm",
"Lira Maltija",
}
}
- ExemplarCharacters{"[[a-z à ì ù è ò ċ ġ ħ {għ} ż]-[cy]]"}
+ ExemplarCharacters{"[a à b ċ d e è f ġ g {għ} h ħ i ì j-o ò p-u ù v-x ż z]"}
+ Keys{
+ calendar{"Kalendarju"}
+ collation{"Kollazjoni"}
+ currency{"Munita"}
+ }
Languages{
aa{"Afar"}
ab{"Abkażjan"}
@@ -268,13 +307,14 @@ mt{
af{"Afrikans"}
afa{"Afro-Asjatiku (Oħra)"}
afh{"Afriħili"}
+ ain{"Ajnu"}
ak{"Akan"}
akk{"Akkadjen"}
ale{"Aleut"}
alg{"Lingwi Algonqwinjani"}
am{"Amħariku"}
an{"Aragonese"}
- ang{"Ingliż, Antik (ca.450-1100)"}
+ ang{"Ingliż, Antik"}
apa{"Lingwi Apaċi"}
ar{"Għarbi"}
arc{"Aramajk"}
@@ -342,7 +382,7 @@ mt{
cop{"Koptiku"}
cpe{"Kreoli u Piġini, Bbażat fuq l-Ingliż (Oħra)"}
cpf{"Kreoli u Piġini, Bbażat fuq il-Franċiż (Oħra)"}
- cpp{"Creoles and pidgins, Portuguese-based (Other)"}
+ cpp{"Kreoli u Piġini, Bbażat fuq il-Portugiż (Oħra)"}
cr{"Krij"}
crh{"Crimean Turkish; Crimean Tatar"}
crp{"Kreoli u Piġini (Oħra)"}
@@ -365,7 +405,7 @@ mt{
dra{"Dravidjan (Oħra)"}
dsb{"Lower Sorbian"}
dua{"Dwala"}
- dum{"Olandiż, Medjevali (ca. 1050-1350)"}
+ dum{"Olandiż, Medjevali"}
dv{"Diveħi"}
dyu{"Djula"}
dz{"Dżongka"}
@@ -392,8 +432,8 @@ mt{
fo{"Fawriż"}
fon{"Fon"}
fr{"Franċiż"}
- frm{"Franċiż, Medjevali (ca. 1400-1600)"}
- fro{"Franċiż, Antik (842-ca. 1400)"}
+ frm{"Franċiż, Medjevali"}
+ fro{"Franċiż, Antik"}
fur{"Frijuljan"}
fy{"Friżjan"}
ga{"Irlandiż"}
@@ -405,9 +445,9 @@ mt{
gez{"Geez"}
gil{"Gilbertjan"}
gl{"Gallegjan"}
- gmh{"Ä ermaniku, Medjevali Pulit (ca. 1050-1500)"}
+ gmh{"Ä ermaniku, Medjevali Pulit"}
gn{"Gwarani"}
- goh{"Ä ermaniku, Antik Pulit (ca. 750-1050)"}
+ goh{"Ä ermaniku, Antik Pulit"}
gon{"Gondi"}
gor{"Gorontalo"}
got{"Gotiku"}
@@ -543,16 +583,17 @@ mt{
mul{"Lingwi Diversi"}
mun{"Lingwi tal-Munda"}
mus{"Kriek"}
+ mwl{"Mirandiż"}
mwr{"Marwari"}
my{"Burmiż"}
myn{"Majan"}
myv{"Erzya"}
na{"Nawuru"}
nah{"Naħwatil"}
- nai{"Indjan tal-Amerika ta' Fuq (Oħra)"}
+ nai{"Indjan tal-Amerika ta’ Fuq (Oħra)"}
nap{"Neapolitan"}
nb{"Bokmahal Norveġiż"}
- nd{"Ndebele, ta' Fuq"}
+ nd{"Ndebele, ta’ Fuq"}
nds{"Ġermaniż Komuni; Sassonu Komuni"}
ne{"Nepaliż"}
new{"Newari"}
@@ -565,8 +606,8 @@ mt{
no{"Norveġiż"}
nog{"Nogai"}
non{"Skandinav, Antik"}
- nr{"Ndebele, t'Isfel"}
- nso{"Soto, ta' Fuq"}
+ nr{"Ndebele, t’Isfel"}
+ nso{"Soto, ta’ Fuq"}
nub{"Lingwi Nubjani"}
nv{"Navaħo"}
nwc{"Classical Newari"}
@@ -590,7 +631,7 @@ mt{
pam{"Pampamga"}
pap{"Papjamento"}
pau{"Palawjan"}
- peo{"Persjan Antik (ca. 600-400 Q.K.)"}
+ peo{"Persjan Antik"}
phi{"Filippin (Oħra)"}
phn{"Feniċju"}
pi{"Pali"}
@@ -611,11 +652,12 @@ mt{
rom{"Żingaru"}
root{"Għerq"}
ru{"Russu"}
+ rup{"Aromanijan"}
rw{"Kinjarwanda"}
sa{"Sanskrit"}
sad{"Sandawe"}
sah{"Jakut"}
- sai{"Indjan tal-Amerika t'Isfel (Oħra)"}
+ sai{"Indjan tal-Amerika t’Isfel (Oħra)"}
sal{"Salixan"}
sam{"Samritan"}
sas{"Saska"}
@@ -623,7 +665,7 @@ mt{
sc{"Sardinjan"}
sco{"Skoċċiż"}
sd{"Sindi"}
- se{"Sami ta' Fuq"}
+ se{"Sami ta’ Fuq"}
sel{"Selkup"}
sem{"Semitiku"}
sg{"Sango"}
@@ -636,7 +678,7 @@ mt{
sio{"Lingwi Suwjani"}
sit{"Sino-Tibetjani (Oħra)"}
sk{"Slovakk"}
- sl{"Slav"}
+ sl{"Sloven"}
sla{"Slavic (Other)"}
sm{"Samojan"}
sma{"Southern Sami"}
@@ -654,7 +696,7 @@ mt{
srr{"Serer"}
ss{"Swati"}
ssa{"Nilo-Saħaram"}
- st{"Soto, t'Isfel"}
+ st{"Soto, t’Isfel"}
su{"Sundaniż"}
suk{"Sukuma"}
sus{"Susu"}
@@ -680,7 +722,7 @@ mt{
tli{"Tlingit"}
tmh{"Tamaxek"}
tn{"Zwana"}
- to{"Tongan (Gżejjer ta' Tonga)"}
+ to{"Tongan (Gżejjer ta’ Tonga)"}
tog{"Tonga (Njasa)"}
tpi{"Tok Pisin"}
tr{"Tork"}
@@ -732,20 +774,51 @@ mt{
LocaleScript{
"Latn",
}
- Version{"1.37"}
+ Scripts{
+ Arab{"Għarbi"}
+ Hans{"Ħan Sempliċi"}
+ Hant{"Ħan Tradizzjonali"}
+ Latn{"Latin"}
+ Xpeo{"Persjan Antik"}
+ Zyyy{"Komuni"}
+ }
+ Types{
+ calendar{
+ buddhist{"Kalendarju Buddist"}
+ chinese{"Kalendarju Ċiniż"}
+ gregorian{"Kalendarju Gregorjan"}
+ hebrew{"Kalendarju Ebrajk"}
+ islamic{"Kalendarju Islamiku"}
+ islamic-civil{"Kalendarju Islamiku-ÄŠivili"}
+ japanese{"Kalendarju Ġappuniż"}
+ }
+ collation{
+ big5han{"Ordni Ċiniż Tradizzjonali (Big5)"}
+ direct{"Ordni Diretta"}
+ gb2312han{"Ordni Ċiniż Sempliċi (GB2312)"}
+ phonebook{"Ordni Telefonika"}
+ pinyin{"Ordni tal-Pinjin"}
+ stroke{"Ordni Maħżuża"}
+ traditional{"Tradizzjonali"}
+ }
+ }
+ Variants{
+ REVISED{"Ortografija Irriveda"}
+ }
+ Version{"1.54"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 1,
- 4,
+ AmPmMarkers{
+ "QN",
+ "WN",
}
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
"HH:mm:ss",
"HH:mm",
- "EEEE, d 'ta''' MMMM yyyy",
- "d 'ta''' MMMM yyyy",
+ "EEEE, d 'ta’' MMMM yyyy",
+ "d 'ta’' MMMM yyyy",
"dd MMM yyyy",
"dd/MM/yyyy",
"{1} {0}",
@@ -771,6 +844,17 @@ mt{
"Is-Sibt",
}
}
+ stand-alone{
+ narrow{
+ "Ħ",
+ "T",
+ "T",
+ "E",
+ "Ħ",
+ "Ä ",
+ "S",
+ }
+ }
}
eras{
abbreviated{
@@ -778,6 +862,32 @@ mt{
"WK",
}
}
+ fields{
+ day{
+ dn{"Jum"}
+ }
+ era{
+ dn{"Epoka"}
+ }
+ hour{
+ dn{"Siegħa"}
+ }
+ minute{
+ dn{"Minuta"}
+ }
+ month{
+ dn{"Xahar"}
+ }
+ second{
+ dn{"Sekonda"}
+ }
+ week{
+ dn{"Ġimgħa"}
+ }
+ year{
+ dn{"Sena"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -810,16 +920,31 @@ mt{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ }
+ }
}
}
+ measurementSystemNames{
+ metric{"Metriku"}
+ }
zoneStrings{
- {
- "Europe/Malta",
- "Ħin Ċentrali Ewropew",
- "CET",
- "Ħin Ċentrali Ewropew tas-Sajf",
- "CEST",
- "Valletta",
+ "Europe:London"{
+ ec{"Londra"}
+ }
+ "Europe:Malta"{
+ ec{"Valletta"}
+ ld{"Ħin Ċentrali Ewropew tas-Sajf"}
+ ls{"Ħin Ċentrali Ewropew"}
+ sd{"CEST"}
+ ss{"CET"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/mt_MT.txt b/Build/source/libs/icu-xetex/data/locales/mt_MT.txt
index 0698f8dffe4..0895a3dfe7c 100644
--- a/Build/source/libs/icu-xetex/data/locales/mt_MT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/mt_MT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/mt_MT.xml
+// * Source File:<path>/common/main/mt_MT.xml
// *
// ***************************************************************************
mt_MT{
@@ -13,5 +13,13 @@ mt_MT{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.38"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nb.txt b/Build/source/libs/icu-xetex/data/locales/nb.txt
index 8b3ef31cfa0..9d42653a5f4 100644
--- a/Build/source/libs/icu-xetex/data/locales/nb.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nb.txt
@@ -1,18 +1,49 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nb.xml
+// * Source File:<path>/common/main/nb.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/nb.xml
+ * ICU <specials> source: <path>/xml/main/nb.xml
*/
nb{
+ AuxExemplarCharacters{"[á ÇŽ Ä Ã§ Ä‘ è ê Å„ ñ Å‹ Å¡ ŧ ü ž ä ö]"}
Countries{
+ 001{"verden"}
+ 002{"Afrika"}
+ 005{"Sør-Amerika"}
+ 009{"Oseania"}
+ 011{"Vest-Afrika"}
+ 013{"Sentral-Amerika"}
+ 014{"Øst-Afrika"}
+ 015{"Nord-Afrika"}
+ 017{"Sentral-Afrika"}
+ 018{"Sørlige Afrika"}
+ 019{"Amerika"}
+ 021{"Nord-Amerika"}
+ 029{"Karibia"}
+ 030{"Øst-Asia"}
+ 034{"Sør-Asia"}
+ 035{"Sørøst-Asia"}
+ 039{"Sør-Europa"}
+ 053{"Australia og New Zealand"}
+ 054{"Melanesia"}
+ 057{"Mikronesia"}
+ 061{"Polynesia"}
+ 142{"Asia"}
+ 143{"Sentral-Asia"}
+ 145{"Vest-Asia"}
+ 150{"Europa"}
+ 151{"Øst-Europa"}
+ 154{"Nord-Europa"}
+ 155{"Vest-Europa"}
+ 172{"Samveldet av uavhengige stater"}
+ 419{"Latin-Amerika og Karibia"}
AD{"Andorra"}
- AE{"De forente arabiske emiratene"}
+ AE{"De forente arabiske emirater"}
AF{"Afghanistan"}
AG{"Antigua og Barbuda"}
AI{"Anguilla"}
@@ -26,6 +57,7 @@ nb{
AT{"Østerrike"}
AU{"Australia"}
AW{"Aruba"}
+ AX{"Ã…land"}
AZ{"Aserbajdsjan"}
BA{"Bosnia og Hercegovina"}
BB{"Barbados"}
@@ -48,9 +80,9 @@ nb{
BZ{"Belize"}
CA{"Canada"}
CC{"Kokosøyene (Keelingøyene)"}
- CD{"Kongo, Den demokratiske republikken"}
+ CD{"Kongo-Kinshasa"}
CF{"Den sentralafrikanske republikk"}
- CG{"Kongo"}
+ CG{"Kongo-Brazzaville"}
CH{"Sveits"}
CI{"Elfenbenskysten"}
CK{"Cookøyene"}
@@ -131,7 +163,7 @@ nb{
KW{"Kuwait"}
KY{"Caymanøyene"}
KZ{"Kasakhstan"}
- LA{"Laos, Den folkedemokratiske republikken"}
+ LA{"Laos"}
LB{"Libanon"}
LC{"St. Lucia"}
LI{"Liechtenstein"}
@@ -191,6 +223,7 @@ nb{
PW{"Palau"}
PY{"Paraguay"}
QA{"Qatar"}
+ QO{"avsidesliggende Oceania"}
RE{"Reunion"}
RO{"Romania"}
RU{"Den russiske føderasjon"}
@@ -245,7 +278,7 @@ nb{
VU{"Vanuatu"}
WF{"Wallis og Futuna"}
WS{"Samoa"}
- YE{"Yemen"}
+ YE{"Jemen"}
YT{"Mayotte"}
ZA{"Sør-Afrika"}
ZM{"Zambia"}
@@ -254,7 +287,7 @@ nb{
Currencies{
ADP{
"ADP",
- "Andorranske pesetas",
+ "andorranske pesetas",
}
AED{
"AED",
@@ -262,299 +295,319 @@ nb{
}
AFA{
"AFA",
- "Afghani (1927-2002)",
+ "afghani (1927-2002)",
}
AFN{
"Af",
- "Afghani",
+ "afghani",
}
ALL{
"lek",
- "Albanske lek",
+ "albanske lek",
}
AMD{
"dram",
- "Armenske dram",
+ "armenske dram",
}
ANG{
"NA f.",
- "Nederlandske antillegylden",
+ "nederlandske antillegylden",
}
AOA{
"AOA",
- "Angolanske kwanza",
+ "angolanske kwanza",
}
AOK{
"AOK",
- "Angolanske kwanza (1977-1990)",
+ "angolanske kwanza (1977-1990)",
}
AON{
"AON",
- "Angolanske ny kwanza (1990-2000)",
+ "angolanske nye kwanza (1990-2000)",
}
AOR{
"AOR",
- "Angolan Kwanza Reajustado (1995-1999)",
+ "angolanske kwanza reajustado (1995-1999)",
}
ARA{
"ARA",
- "Argentinske australer",
+ "argentinske australer",
}
ARP{
"ARP",
- "Argentinske pesos (1983-1985)",
+ "argentinske pesos (1983-1985)",
}
ARS{
"Arg$",
- "Argentinske pesos",
+ "argentinske pesos",
}
ATS{
"ATS",
- "Østerrikske shilling",
+ "østerrikske shilling",
}
AUD{
"$A",
- "Australske dollar",
+ "australske dollar",
}
AWG{
"AWG",
- "Arubiske gylden",
+ "arubiske gylden",
}
AZM{
"AZM",
- "Aserbajdsjanske Manat",
+ "aserbajdsjanske manat",
}
BAD{
"BAD",
- "Bosnia-Hercegovina dinarer",
+ "bosnisk-hercegovinske dinarer",
}
BAM{
"KM",
- "Bosnia-Hercegovina mark (konvertible)",
+ "bosnisk-hercegovinske mark (konvertible)",
}
BBD{
"BDS$",
- "Barbadisk dollar",
+ "barbadiske dollar",
}
BDT{
"Tk",
- "Bangladeshiske taka",
+ "bangladeshiske taka",
}
BEC{
"BEC",
- "Belgiske franc (konvertible)",
+ "belgiske franc (konvertible)",
}
BEF{
"BF",
- "Belgiske franc",
+ "belgiske franc",
}
BEL{
"BEL",
- "Belgiske franc (økonomiske)",
+ "belgiske franc (finansielle)",
}
BGL{
"lev",
- "Bulgarske lev (hard)",
+ "bulgarske lev (hard)",
}
BGN{
"BGN",
- "Bulgarske lev",
+ "bulgarske lev",
}
BHD{
"BD",
- "Bahrainske dinarer",
+ "bahrainske dinarer",
}
BIF{
"Fbu",
- "Burundiske franc",
+ "burundiske franc",
}
BMD{
"Ber$",
- "Bermudiske dollar",
+ "bermudiske dollar",
}
BND{
"BND",
- "Bruneiske dollar",
+ "bruneiske dollar",
}
BOB{
"Bs",
- "Boliviano",
+ "boliviano",
}
BOP{
"BOP",
- "Boliviansk pesos",
+ "bolivianske pesos",
}
BOV{
"BOV",
- "Boliviansk mvdol",
+ "bolivianske mvdol",
}
BRB{
"BRB",
- "Brasiliansk cruzeiro novo (1967-1986)",
+ "brasilianske cruzeiro novo (1967-1986)",
}
BRC{
"BRC",
- "Brasilianske cruzado",
+ "brasilianske cruzado",
}
BRE{
"BRE",
- "Brasilianske cruzeiro (1990-1993)",
+ "brasilianske cruzeiro (1990-1993)",
}
BRL{
"R$",
- "Brasilianske realer",
+ "brasilianske realer",
}
BRN{
"BRN",
- "Brasilianske cruzado novo",
+ "brasilianske cruzado novo",
}
BRR{
"BRR",
- "Brasilianske cruzeiro",
+ "brasilianske cruzeiro",
}
BSD{
"BSD",
- "Bahamske dollar",
+ "bahamske dollar",
}
BTN{
"Nu",
- "Bhutanske ngultrum",
+ "bhutanske ngultrum",
}
BUK{
"BUK",
- "Burmesiske kyat",
+ "burmesiske kyat",
}
BWP{
"BWP",
- "Botswanske pula",
+ "botswanske pula",
}
BYB{
"BYB",
- "Hviterussiske nye rubler (1994-1999)",
+ "hviterussiske nye rubler (1994-1999)",
}
BYR{
"Rbl",
- "Hviterussiske rubler",
+ "hviterussiske rubler",
}
BZD{
"BZ$",
- "Beliziske dollar",
+ "beliziske dollar",
}
CAD{
"Can$",
- "Kanadiske dollar",
+ "kanadiske dollar",
}
CDF{
"CDF",
- "Kongolesiske franc (congolais)",
+ "kongolesiske franc (congolais)",
+ }
+ CHE{
+ "CHE",
+ "WIR euro",
}
CHF{
"SwF",
- "Sveitsiske franc",
+ "sveitsiske franc",
+ }
+ CHW{
+ "CHW",
+ "WIR franc",
}
CLF{
"CLF",
- "Chilenske Unidades de Fomento",
+ "chilenske unidades de fomento",
}
CLP{
"Ch$",
- "Chilenske pesos",
+ "chilenske pesos",
}
CNY{
"Y",
- "Kinesiske Yuan Renminbi",
+ "kinesiske yuan renminbi",
}
COP{
"Col$",
- "Colombianske pesos",
+ "colombianske pesos",
+ }
+ COU{
+ "COU",
+ "unidad de valor real",
}
CRC{
"C",
- "Costaricanske colon",
+ "costaricanske colon",
+ }
+ CSD{
+ "CSD",
+ "serbiske dinarer",
}
CSK{
"CSK",
- "Tsjekkoslovakiske koruna (hard)",
+ "tsjekkoslovakiske koruna (hard)",
}
CUP{
"CUP",
- "Kubanske pesos",
+ "kubanske pesos",
}
CVE{
"CVEsc",
- "Kappverdiske escudo",
+ "kappverdiske escudo",
}
CYP{
"£C",
- "Kypriotiske pund",
+ "kypriotiske pund",
}
CZK{
"CZK",
- "Tsjekkiske koruna",
+ "tsjekkiske koruna",
}
DDM{
"DDM",
- "Østtyske ostmark",
+ "østtyske ostmark",
}
DEM{
"DEM",
- "Tyske mark",
+ "tyske mark",
}
DJF{
"DF",
- "Djiboutiske franc",
+ "djiboutiske franc",
}
DKK{
- "DKr",
- "Danske kroner",
+ "Dkr",
+ "danske kroner",
}
DOP{
"RD$",
- "Dominikanske pesos",
+ "dominikanske pesos",
}
DZD{
"DA",
- "Algeriske dinarer",
+ "algeriske dinarer",
}
ECS{
"ECS",
- "Ecuadorianske sucre",
+ "ecuadorianske sucre",
}
ECV{
"ECV",
- "Ecuadorianske Unidad de Valor Constante (UVC)",
+ "ecuadorianske unidad de valor constante (UVC)",
}
EEK{
"EEK",
- "Estiske kroon",
+ "estiske kroon",
}
EGP{
"EGP",
- "Egyptiske pund",
+ "egyptiske pund",
}
ERN{
"ERN",
- "Eritreiske nakfa",
+ "eritreiske nakfa",
+ }
+ ESB{
+ "ESB",
+ "spanske peseta (konvertibel konto)",
}
ESP{
"ESP",
- "Spanske peseta",
+ "spanske peseta",
}
ETB{
"Br",
- "Etiopiske birr",
+ "etiopiske birr",
}
EUR{
"€",
- "Euro",
+ "euro",
}
FIM{
"FIM",
- "Finske mark",
+ "finske mark",
}
FJD{
"F$",
- "Fijianske dollar",
+ "fijianske dollar",
}
FKP{
"FKP",
@@ -562,55 +615,55 @@ nb{
}
FRF{
"FRF",
- "Franske franc",
+ "franske franc",
}
GBP{
"£",
- "Britiske pund sterling",
+ "britiske pund sterling",
}
GEK{
"GEK",
- "Georgiske kupon larit",
+ "georgiske kupon larit",
}
GEL{
"lari",
- "Georgiske lari",
+ "georgiske lari",
}
GHC{
"GHC",
- "Ghanesiske cedi",
+ "ghanesiske cedi",
}
GIP{
"GIP",
- "Gibraltarske pund",
+ "gibraltarske pund",
}
GMD{
"GMD",
- "Gambiske dalasi",
+ "gambiske dalasi",
}
GNF{
"GF",
- "Guineanske franc",
+ "guineanske franc",
}
GNS{
"GNS",
- "Guineanske syli",
+ "guineanske syli",
}
GQE{
"GQE",
- "Ekvatorialguineanske ekwele guineana",
+ "ekvatorialguineanske ekwele guineana",
}
GRD{
"GRD",
- "Greske drakmer",
+ "greske drakmer",
}
GTQ{
"Q",
- "Guatemalanske quetzal",
+ "guatemalanske quetzal",
}
GWE{
"GWE",
- "Portugisiske guinea escudo",
+ "portugisiske guinea escudo",
}
GWP{
"GWP",
@@ -618,7 +671,7 @@ nb{
}
GYD{
"G$",
- "Guyanske dollar",
+ "guyanske dollar",
}
HKD{
"HK$",
@@ -630,387 +683,407 @@ nb{
}
HRD{
"HRD",
- "Kroatiske dinarer",
+ "kroatiske dinarer",
}
HRK{
"HRK",
- "Kroatiske kuna",
+ "kroatiske kuna",
}
HTG{
"HTG",
- "Haitiske gourde",
+ "haitiske gourde",
}
HUF{
"Ft",
- "Ungarske forinter",
+ "ungarske forinter",
}
IDR{
"Rp",
- "Indonesiske rupier",
+ "indonesiske rupier",
}
IEP{
"IR£",
- "Irske pund",
+ "irske pund",
}
ILP{
"ILP",
- "Israelske pund",
+ "israelske pund",
}
ILS{
"ILS",
- "Israelske nye shekler",
+ "israelske nye shekler",
}
INR{
"=0#Rs.|1#Re.|1<Rs.",
- "Indiske rupier",
+ "indiske rupier",
}
IQD{
"ID",
- "Irakske dinarer",
+ "irakske dinarer",
}
IRR{
"RI",
- "Iranske rialer",
+ "iranske rialer",
}
ISK{
"ISK",
- "Islandske kronar",
+ "islandske kronar",
}
ITL{
"₤",
- "Italienske lire",
+ "italienske lire",
}
JMD{
"J$",
- "Jamaikanske dollar",
+ "jamaikanske dollar",
}
JOD{
"JD",
- "Jordanske dinarer",
+ "jordanske dinarer",
}
JPY{
"Â¥",
- "Japanske yen",
+ "japanske yen",
}
KES{
"K Sh",
- "Kenyanske shilling",
+ "kenyanske shilling",
}
KGS{
"som",
- "Kirgisiske som",
+ "kirgisiske som",
}
KHR{
"CR",
- "Kambodsjanske riel",
+ "kambodsjanske riel",
}
KMF{
"CF",
- "Komoriske franc",
+ "komoriske franc",
}
KPW{
"KPW",
- "Nordkoreanske won",
+ "nordkoreanske won",
}
KRW{
"KRW",
- "Sørkoreanske won",
+ "sørkoreanske won",
}
KWD{
"KD",
- "Kuwaitiske dinarer",
+ "kuwaitiske dinarer",
}
KYD{
"KYD",
- "Caymanske dollar",
+ "caymanske dollar",
}
KZT{
"T",
- "Kasakhstanske tenge",
+ "kasakhstanske tenge",
}
LAK{
"LAK",
- "Laotiske kip",
+ "laotiske kip",
}
LBP{
"LL",
- "Libanesiske pund",
+ "libanesiske pund",
}
LKR{
"SL Re",
- "Srilankiske rupier",
+ "srilankiske rupier",
}
LRD{
"LRD",
- "Liberiske dollar",
+ "liberiske dollar",
}
LSL{
"M",
- "Lesothiske loti",
+ "lesothiske loti",
+ }
+ LSM{
+ "LSM",
+ "maloti",
}
LTL{
"LTL",
- "Litauiske lita",
+ "litauiske lita",
}
LTT{
"LTT",
- "Litauiske talonas",
+ "litauiske talonas",
+ }
+ LUC{
+ "LUC",
+ "luxemburgske konvertible franc",
}
LUF{
"LUF",
- "Luxemburgske franc",
+ "luxemburgske franc",
+ }
+ LUL{
+ "LUL",
+ "luxemburgske finansielle franc",
}
LVL{
"LVL",
- "Latviske lats",
+ "latviske lats",
}
LVR{
"LVR",
- "Latviske rubler",
+ "latviske rubler",
}
LYD{
"LD",
- "Libyske dinarer",
+ "libyske dinarer",
}
MAD{
"MAD",
- "Marokkanske dirham",
+ "marokkanske dirham",
}
MAF{
"MAF",
- "Marokkanske franc",
+ "marokkanske franc",
}
MDL{
"MDL",
- "Moldovske leu",
+ "moldovske leu",
}
MGA{
"MGA",
- "Madagassiske ariary",
+ "madagassiske ariary",
}
MGF{
"MGF",
- "Madagassiske franc",
+ "madagassiske franc",
}
MKD{
"MDen",
- "Makedonske denarer",
+ "makedonske denarer",
}
MLF{
"MLF",
- "Maliske franc",
+ "maliske franc",
}
MMK{
"MMK",
- "Myanmarske kyat",
+ "myanmarske kyat",
}
MNT{
"Tug",
- "Mongolske tugrik",
+ "mongolske tugrik",
}
MOP{
"MOP",
- "Makaoske pataca",
+ "makaoske pataca",
}
MRO{
"UM",
- "Mauritanske ouguiya",
+ "mauritanske ouguiya",
}
MTL{
"Lm",
- "Maltesiske lira",
+ "maltesiske lira",
}
MTP{
"MTP",
- "Maltesiske pund",
+ "maltesiske pund",
}
MUR{
"MUR",
- "Mauritiske rupier",
+ "mauritiske rupier",
}
MVR{
"MVR",
- "Maldiviske rufiyaa",
+ "maldiviske rufiyaa",
}
MWK{
"MK",
- "Malawisle kwacha",
+ "malawiske kwacha",
}
MXN{
"MEX$",
- "Meksikanske pesos",
+ "meksikanske pesos",
}
MXP{
"MXP",
- "Meksikanske sølvpesos (1861-1992)",
+ "meksikanske sølvpesos (1861-1992)",
}
MXV{
"MXV",
- "Meksikanske Unidad de Inversion (UDI)",
+ "meksikanske unidad de inversion (UDI)",
}
MYR{
"RM",
- "Malaysiske ringgit",
+ "malaysiske ringgit",
}
MZE{
"MZE",
- "Mosambikiske escudo",
+ "mosambikiske escudo",
}
MZM{
"Mt",
- "Mosambikiske metical",
+ "mosambikiske metical",
}
NAD{
"N$",
- "Namibiske dollar",
+ "namibiske dollar",
}
NGN{
"NGN",
- "Nigerianske naira",
+ "nigerianske naira",
}
NIC{
"NIC",
- "Nicaraguanske cordoba",
+ "nicaraguanske cordoba",
}
NIO{
"NIO",
- "Nicaraguanske cordoba oro",
+ "nicaraguanske cordoba oro",
}
NLG{
"NLG",
- "Nederlandske gylden",
+ "nederlandske gylden",
}
NOK{
"kr",
- "Norske kroner",
+ "norske kroner",
}
NPR{
"Nrs",
- "Nepalesiske rupier",
+ "nepalesiske rupier",
}
NZD{
"$NZ",
- "Nyzealandske dollar",
+ "nyzealandske dollar",
}
OMR{
"RO",
- "Omanske rialer",
+ "omanske rialer",
}
PAB{
"PAB",
- "Panamanske balboa",
+ "panamanske balboa",
}
PEI{
"PEI",
- "Peruvianske inti",
+ "peruvianske inti",
}
PEN{
"PEN",
- "Peruvianske sol nuevo",
+ "peruvianske sol nuevo",
}
PES{
"PES",
- "Peruvianske sol",
+ "peruvianske sol",
}
PGK{
"PGK",
- "Papuanske kina",
+ "papuanske kina",
}
PHP{
"PHP",
- "Filippinske pesos",
+ "filippinske pesos",
}
PKR{
"Pra",
- "Pakistanske rupier",
+ "pakistanske rupier",
}
PLN{
"Zl",
- "Polske zloty",
+ "polske zloty",
}
PLZ{
"PLZ",
- "Polske zloty (1950-1995)",
+ "polske zloty (1950-1995)",
}
PTE{
"PTE",
- "Portugisiske escudo",
+ "portugisiske escudo",
}
PYG{
"PYG",
- "Paraguayanske guarani",
+ "paraguayanske guarani",
}
QAR{
"QR",
- "Qatarske riyaler",
+ "qatarske riyaler",
+ }
+ RHD{
+ "RHD",
+ "rhodesiske dollar",
}
ROL{
"leu",
- "Rumenske leu",
+ "rumenske leu",
}
RUB{
"RUB",
- "Russiske rubler",
+ "russiske rubler",
}
RUR{
"RUR",
- "Russiske rubler (1991-1998)",
+ "russiske rubler (1991-1998)",
}
RWF{
"RWF",
- "Rwandiske franc",
+ "rwandiske franc",
}
SAR{
"SRl",
- "Saudiarabiske riyaler",
+ "saudiarabiske riyaler",
}
SBD{
"SI$",
- "Salomonske dollar",
+ "salomonske dollar",
}
SCR{
"SR",
- "Seychelliske rupier",
+ "seychelliske rupier",
}
SDD{
"SDD",
- "Sudanesiske dinarer",
+ "sudanesiske dinarer",
}
SDP{
"SDP",
- "Sudanesiske pund",
+ "sudanesiske pund",
}
SEK{
- "SKr",
- "Svenske kroner",
+ "Skr",
+ "svenske kroner",
}
SGD{
"S$",
- "Singaporske dollar",
+ "singaporske dollar",
}
SHP{
"SHP",
- "Sankthelenske pund",
+ "sankthelenske pund",
}
SIT{
"SIT",
- "Slovenske tolar",
+ "slovenske tolar",
}
SKK{
"Sk",
- "Slovakiske koruna",
+ "slovakiske koruna",
}
SLL{
"SLL",
- "Sierraleonske leone",
+ "sierraleonske leone",
}
SOS{
"So. Sh.",
- "Somaliske shilling",
+ "somaliske shilling",
+ }
+ SRD{
+ "SRD",
+ "surinamske dollar",
}
SRG{
"Sf",
- "Surinamske gylden",
+ "surinamske gylden",
}
STD{
"Db",
@@ -1018,226 +1091,246 @@ nb{
}
SUR{
"SUR",
- "Sovjetiske rubler",
+ "sovjetiske rubler",
}
SVC{
"SVC",
- "Salvadoranske colon",
+ "salvadoranske colon",
}
SYP{
"LS",
- "Syriske pund",
+ "syriske pund",
}
SZL{
"E",
- "Swazilandske lilangeni",
+ "swazilandske lilangeni",
}
THB{
"THB",
- "Thailandske baht",
+ "thailandske baht",
}
TJR{
"TJR",
- "Tadsjikiske rubler",
+ "tadsjikiske rubler",
}
TJS{
"TJS",
- "Tadsjikiske somoni",
+ "tadsjikiske somoni",
}
TMM{
"TMM",
- "Turkmenske manat",
+ "turkmenske manat",
}
TND{
"TND",
- "Tunisiske dinarer",
+ "tunisiske dinarer",
}
TOP{
"T$",
- "Tonganske paʻanga",
+ "tonganske paʻanga",
}
TPE{
"TPE",
- "Timoresiske escudo",
+ "timoresiske escudo",
}
TRL{
"TL",
- "Tyrkiske lira",
+ "tyrkiske lira",
}
TRY{
"TRY",
- "Ny tyrkisk lire",
+ "ny tyrkisk lire",
}
TTD{
"TT$",
- "Trinidadiske dollar",
+ "trinidadiske dollar",
}
TWD{
"NT$",
- "Taiwanske nye dollar",
+ "taiwanske nye dollar",
}
TZS{
"T Sh",
- "Tanzanianske shilling",
+ "tanzanianske shilling",
}
UAH{
"UAH",
- "Ukrainsle hryvnia",
+ "ukrainsle hryvnia",
}
UAK{
"UAK",
- "Ukrainske karbovanetz",
+ "ukrainske karbovanetz",
}
UGS{
"UGS",
- "Ugandiske shilling (1966-1987)",
+ "ugandiske shilling (1966-1987)",
}
UGX{
"U Sh",
- "Ugandiske shilling",
+ "ugandiske shilling",
}
USD{
"US$",
- "Amerikanske dollar",
+ "amerikanske dollar",
}
USN{
"USN",
- "Amerikanske dollar (neste dag)",
+ "amerikanske dollar (neste dag)",
}
USS{
"USS",
- "Amerikanske dollar (samme dag)",
+ "amerikanske dollar (samme dag)",
}
UYP{
"UYP",
- "Uruguayanske pesos (1975-1993)",
+ "uruguayanske pesos (1975-1993)",
}
UYU{
"Ur$",
- "Uruguayanske peso uruguayo",
+ "uruguayanske peso uruguayo",
}
UZS{
"UZS",
- "Usbekiske sum",
+ "usbekiske sum",
}
VEB{
"Be",
- "Venezuelanske bolivar",
+ "venezuelanske bolivar",
}
VND{
"VND",
- "Vietnamesiske dong",
+ "vietnamesiske dong",
}
VUV{
"VT",
- "Vanuatisk vatu",
+ "vanuatisk vatu",
}
WST{
"WST",
- "Vestsamoisk tala",
+ "vestsamoisk tala",
}
XAF{
"XAF",
- "CFA Franc BEAC",
+ "CFA franc BEAC",
+ }
+ XAG{
+ "XAG",
+ "sølv",
}
XAU{
"XAU",
- "Gull",
+ "gull",
}
XBA{
"XBA",
- "European Composite Unit",
+ "europeisk sammensatt enhet",
}
XBB{
"XBB",
- "European Monetary Unit",
+ "europeisk monetær enhet",
}
XBC{
"XBC",
- "European Unit of Account (XBC)",
+ "europeisk kontoenhet (XBC)",
}
XBD{
"XBD",
- "European Unit of Account (XBD)",
+ "europeisk kontoenhet (XBD)",
}
XCD{
"EC$",
- "Østkaribiske dollar",
+ "østkaribiske dollar",
}
XDR{
"XDR",
- "Special Drawing Rights",
+ "spesielle trekkrettigheter",
}
XEU{
"XEU",
- "European Currency Unit",
+ "europeisk valutaenhet",
}
XFO{
"XFO",
- "French Gold Franc",
+ "franske gullfranc",
}
XFU{
"XFU",
- "French UIC-Franc",
+ "franske UIC-franc",
}
XOF{
"XOF",
- "CFA Franc BCEAO",
+ "CFA franc BCEAO",
+ }
+ XPD{
+ "XPD",
+ "palladium",
}
XPF{
"CFPF",
- "CFP Franc",
+ "CFP franc",
+ }
+ XPT{
+ "XPT",
+ "platinum",
+ }
+ XRE{
+ "XRE",
+ "RINET-fond",
+ }
+ XXX{
+ "XXX",
+ "ingen valuta",
}
YDD{
"YDD",
- "Jemenittiske dinarer",
+ "jemenittiske dinarer",
}
YER{
"YRl",
- "Jemenittiske rialer",
+ "jemenittiske rialer",
}
YUD{
"YUD",
- "Jugoslaviske dinarer (hard)",
+ "jugoslaviske dinarer (hard)",
}
YUM{
"YUM",
- "Jugoslaviske noviy-dinarer",
+ "jugoslaviske noviy-dinarer",
}
YUN{
"YUN",
- "Jugoslaviske konvertible dinarer",
+ "jugoslaviske konvertible dinarer",
}
ZAL{
"ZAL",
- "Sørafrikanske rand (økonomisk)",
+ "sørafrikanske rand (finansielle)",
}
ZAR{
"R",
- "Sørafrikanske rand",
+ "sørafrikanske rand",
}
ZMK{
"ZMK",
- "Zambiske kwacha",
+ "zambiske kwacha",
}
ZRN{
"ZRN",
- "Zairiske nye zaire",
+ "zairiske nye zaire",
}
ZRZ{
"ZRZ",
- "Zairiske zaire",
+ "zairiske zaire",
}
ZWD{
"Z$",
- "Zimbabwiske dollar",
+ "zimbabwiske dollar",
}
}
- ExemplarCharacters{"[a-zæåøéóôàüǎ]"}
+ ExemplarCharacters{"[a à b-e é f-o ó ò ô p-z æ ø å]"}
Keys{
- calendar{"Kalendar"}
- collation{"Kollasjon"}
- currency{"Valuta"}
+ calendar{"kalender"}
+ collation{"kollasjon"}
+ currency{"valuta"}
}
Languages{
aa{"afar"}
@@ -1248,15 +1341,17 @@ nb{
ady{"adyghe"}
ae{"avestisk"}
af{"afrikaans"}
- afa{"afroasiatisk (annet)"}
afh{"afrihili"}
+ ain{"ainu"}
ak{"akan"}
akk{"akkadisk"}
ale{"aleutisk"}
alg{"algonkinsk språk"}
+ alt{"søraltaisk"}
am{"amharisk"}
an{"aragonsk"}
ang{"gammelengelsk (ca. 450-1100)"}
+ anp{"angika"}
apa{"apache-språk"}
ar{"arabisk"}
arc{"arameisk"}
@@ -1278,11 +1373,9 @@ nb{
bal{"baluchi"}
ban{"balinesisk"}
bas{"basa"}
- bat{"baltisk (annet)"}
be{"hviterussisk"}
bej{"beja"}
bem{"bemba"}
- ber{"berbisk (annet)"}
bg{"bulgarsk"}
bh{"bihari"}
bho{"bhojpuri"}
@@ -1303,12 +1396,9 @@ nb{
byn{"blin"}
ca{"katalansk"}
cad{"caddo"}
- cai{"sentralamerikansk indiansk (annet)"}
car{"karibisk"}
- cau{"kaukasisk (annet)"}
ce{"tsjetsjensk"}
ceb{"cebuansk"}
- cel{"keltisk (annet)"}
ch{"chamorro"}
chb{"chibcha"}
chg{"chagatai"}
@@ -1331,7 +1421,6 @@ nb{
cs{"tsjekkisk"}
csb{"kasjubisk"}
cu{"kirkeslavisk"}
- cus{"kusjitisk (annet)"}
cv{"tsjuvansk"}
cy{"walisisk"}
da{"dansk"}
@@ -1340,11 +1429,9 @@ nb{
day{"dayak"}
de{"tysk"}
del{"delaware"}
- den{"slavisk (athapaskansk)"}
dgr{"dogrib"}
din{"dinka"}
doi{"dogri"}
- dra{"dravidisk (annet)"}
dsb{"lavsorbisk"}
dua{"duala"}
dum{"mellomnederlandsk (ca. 1050-1350)"}
@@ -1369,20 +1456,21 @@ nb{
fat{"fanti"}
ff{"fulani"}
fi{"finsk"}
- fiu{"finsk-ugrisk (annet)"}
+ fil{"filippinsk"}
fj{"fijiansk"}
fo{"færøysk"}
+ fon{"fon"}
fr{"fransk"}
frm{"mellomfransk (ca.1400-1600)"}
fro{"gammelfransk (842 til ca.1400)"}
+ frr{"nordfrisisk"}
+ frs{"østfrisisk"}
fur{"friuliansk"}
- fy{"frisisk"}
ga{"irsk"}
gaa{"ga"}
gay{"gayo"}
gba{"gbaya"}
gd{"skotsk gælisk"}
- gem{"germansk (annet)"}
gez{"ges"}
gil{"kiribatisk; gilbertesisk"}
gl{"galicisk"}
@@ -1394,9 +1482,11 @@ nb{
got{"gotisk"}
grb{"grebo"}
grc{"gammelgresk (til 1453)"}
+ gsw{"sveitsertysk"}
gu{"gujarati"}
gv{"manx"}
- gwi{"gwichʼin"}
+ gwi{"gwichin"}
+ ha{"hausa"}
hai{"haida"}
haw{"hawaiisk"}
he{"hebraisk"}
@@ -1419,10 +1509,9 @@ nb{
ie{"interlingue"}
ig{"ibo"}
ii{"sichuan-yi"}
+ ijo{"ijo"}
ik{"unupiak"}
ilo{"iloko"}
- inc{"indisk (annet)"}
- ine{"indoeuropeisk (annet)"}
inh{"ingusjisk"}
io{"ido"}
ira{"iransk"}
@@ -1445,12 +1534,11 @@ nb{
kbd{"kabardisk"}
kg{"kikongo"}
kha{"khasi"}
- khi{"khoisan (annet)"}
+ khi{"khoisanspråk (annet)"}
kho{"khotanesisk"}
ki{"kikuyu"}
kj{"kuanyama"}
kk{"kasakhisk"}
- kl{"kalaallisut"}
km{"khmer"}
kmb{"kimbundu"}
kn{"kannada"}
@@ -1460,6 +1548,7 @@ nb{
kpe{"kpelle"}
kr{"kanuri"}
krc{"karachay-balkar"}
+ krl{"karelsk"}
kro{"kru"}
kru{"kurukh"}
ks{"kasjmiri"}
@@ -1486,6 +1575,7 @@ nb{
lua{"luba-lulua"}
lui{"luiseno"}
lun{"lunda"}
+ luo{"luo"}
lus{"lushai"}
lv{"latvisk"}
mad{"maduresisk"}
@@ -1504,14 +1594,13 @@ nb{
mi{"maori"}
mic{"micmac"}
min{"minangkabau"}
- mis{"ulike språk"}
mk{"makedonsk"}
- mkh{"mon-khmer (Other)"}
+ mkh{"mon-khmerspråk (annet)"}
ml{"malayalam"}
mn{"mongolsk"}
mnc{"mandsju"}
mni{"manipuri"}
- mno{"manobo-språk"}
+ mno{"manobospråk"}
mo{"moldavisk"}
moh{"mohawk"}
mos{"mossi"}
@@ -1519,34 +1608,35 @@ nb{
ms{"malayisk"}
mt{"maltesisk"}
mul{"flere språk"}
- mun{"munda-språk"}
+ mun{"mundaspråk"}
mus{"creek"}
+ mwl{"mirandesisk"}
mwr{"marwari"}
my{"burmesisk"}
- myn{"maya"}
+ myn{"mayaspråk"}
myv{"erzya"}
na{"nauru"}
nah{"nahuatl"}
- nai{"nordamerikansk indiansk"}
nap{"napolitansk"}
- nb{"norsk bokmål"}
- nd{"ndebele (nord)"}
+ nb{"bokmål"}
+ nd{"nord-ndebele"}
nds{"lavtysk; lavsaksisk"}
ne{"nepalsk"}
new{"newari"}
ng{"ndonga"}
nia{"nias"}
- nic{"niger - kordofaniansk (annet)"}
+ nic{"niger-kordofiansk (annet)"}
niu{"niueansk"}
nl{"nederlandsk"}
- nn{"norsk nynorsk"}
+ nn{"nynorsk"}
no{"norsk"}
nog{"nogai"}
non{"gammelnorsk"}
- nr{"ndebele, sør"}
- nso{"sotho, nord"}
+ nr{"sør-ndebele"}
+ nso{"nord-sotho"}
nub{"nubisk språk"}
nv{"navajo"}
+ nwc{"klassisk newari"}
ny{"nyanja"}
nym{"nyamwezi"}
nyn{"nyankole"}
@@ -1558,17 +1648,15 @@ nb{
or{"oriya"}
os{"ossetisk"}
osa{"osage"}
- ota{"tyrkisk, ottomansk (1500-1928)"}
+ ota{"ottomansk tyrkisk"}
oto{"otomisk språk"}
pa{"panjabi"}
- paa{"papuisk (annet)"}
pag{"pangasinan"}
pal{"pahlavi"}
pam{"pampanga"}
pap{"papiamento"}
pau{"palauisk"}
peo{"gammelpersisk (ca. 600-400 f. kr.)"}
- phi{"filippinsk (annet)"}
phn{"fønikisk"}
pi{"pali"}
pl{"polsk"}
@@ -1584,24 +1672,24 @@ nb{
rm{"retoromansk"}
rn{"rundi"}
ro{"rumensk"}
- roa{"romansk (annet)"}
rom{"romani"}
+ root{"rot"}
ru{"russisk"}
+ rup{"aromansk"}
rw{"kinjarwanda"}
sa{"sanskrit"}
sad{"sandawe"}
sah{"jakutsk"}
- sai{"søramerikansk indiansk (annet)"}
sal{"salishansk språk"}
sam{"samaritansk arameisk"}
sas{"sasak"}
sat{"santali"}
sc{"sardinsk"}
+ scn{"siciliansk"}
sco{"skotsk"}
sd{"sindhi"}
se{"nordsamisk"}
sel{"selkupisk"}
- sem{"semittisk (annet)"}
sg{"sango"}
sga{"gammelirsk (til 900)"}
sgn{"tegnspråk"}
@@ -1610,10 +1698,8 @@ nb{
si{"singalesisk"}
sid{"sidamo"}
sio{"sioux-språk"}
- sit{"sino-tibetansk (annet)"}
sk{"slovakisk"}
sl{"slovensk"}
- sla{"slavisk (annet)"}
sm{"samoansk"}
sma{"sørsamisk"}
smi{"samisk språk (annet)"}
@@ -1622,15 +1708,14 @@ nb{
sms{"skoltesamisk"}
sn{"shona"}
snk{"soninke"}
- so{"somalisk"}
sog{"sogdisk"}
son{"songhai"}
sq{"albansk"}
sr{"serbisk"}
+ srn{"sranan tongo"}
srr{"serer"}
ss{"swati"}
- ssa{"nilo-saharam (annet)"}
- st{"sotho (sørlig)"}
+ st{"sør-sotho"}
su{"sundanesisk"}
suk{"sukuma"}
sus{"susu"}
@@ -1639,7 +1724,6 @@ nb{
sw{"swahili"}
syr{"syrisk"}
ta{"tamil"}
- tai{"tai (annet)"}
te{"telugu"}
tem{"temne"}
ter{"tereno"}
@@ -1648,9 +1732,12 @@ nb{
th{"thai"}
ti{"tigrinja"}
tig{"tigré"}
+ tiv{"tiv"}
tk{"turkmensk"}
tkl{"tokelau"}
tl{"tagalog"}
+ tlh{"klingon"}
+ tli{"tlingit"}
tmh{"tamasjek"}
tn{"tswana"}
to{"tonga (Tonga-øyene)"}
@@ -1662,7 +1749,6 @@ nb{
tt{"tatarisk"}
tum{"tumbuka"}
tup{"tupi-språk"}
- tut{"altaisk (annet)"}
tvl{"tuvalu"}
tw{"twi"}
ty{"tahitisk"}
@@ -1675,6 +1761,7 @@ nb{
und{"ikke angitt"}
ur{"urdu"}
uz{"usbekisk"}
+ vai{"vai"}
ve{"venda"}
vi{"vietnamesisk"}
vo{"volapyk"}
@@ -1688,6 +1775,7 @@ nb{
wo{"wolof"}
xal{"kalmyk"}
xh{"xhosa"}
+ yao{"yao"}
yap{"yapesisk"}
yi{"jiddisk"}
yo{"joruba"}
@@ -1699,6 +1787,7 @@ nb{
znd{"zande"}
zu{"zulu"}
zun{"zuni"}
+ zxx{"uten språklig innhold"}
}
LocaleScript{
"Latn",
@@ -1714,25 +1803,44 @@ nb{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0 %",
+ "#E0",
+ }
Scripts{
Arab{"arabisk"}
Armn{"armensk"}
+ Bali{"balinesisk"}
+ Batk{"batak"}
Beng{"bengalsk"}
+ Blis{"blissymbol"}
Bopo{"bopomofo"}
+ Brah{"brahmi"}
Brai{"braille"}
+ Bugi{"buginesisk"}
Buhd{"buhid"}
- Cans{"Unified Canadian Aboriginal Symbols"}
+ Cans{"felles kanadiske urspråksstavelser"}
+ Cham{"cham"}
Cher{"cherokee"}
+ Cirt{"cirth"}
Copt{"koptisk"}
Cprt{"kypriotisk"}
Cyrl{"kyrillisk"}
+ Cyrs{"kyrillisk (kirkeslavisk variant)"}
Deva{"devanagari"}
Dsrt{"deseret"}
+ Egyd{"egyptisk demotisk"}
+ Egyh{"egyptisk hieratisk"}
+ Egyp{"egyptiske hieroglyfer"}
Ethi{"etiopisk"}
+ Geok{"khutsuri (asomtavruli og nuskhuri)"}
Geor{"georgisk"}
+ Glag{"glagolittisk"}
Goth{"gotisk"}
Grek{"gresk"}
Gujr{"gujarati"}
@@ -1744,68 +1852,104 @@ nb{
Hant{"tradisjonell han"}
Hebr{"hebraisk"}
Hira{"hiragana"}
+ Hmng{"pahawh hmong"}
+ Hrkt{"katakana eller hiragana"}
+ Hung{"gammelungarsk"}
+ Inds{"indus (harappansk)"}
Ital{"gammelitalisk"}
+ Java{"javanesisk"}
+ Kali{"kayah li"}
Kana{"katakana"}
+ Khar{"kharoshthi"}
Khmr{"khmer"}
Knda{"kannada"}
Laoo{"laotisk"}
+ Latf{"latinsk (frakturvariant)"}
+ Latg{"latinsk (gælisk variant)"}
Latn{"latin"}
+ Lepc{"lepcha (róng)"}
Limb{"limbu"}
+ Lina{"lineær A"}
Linb{"lineær B"}
+ Mand{"mandaisk"}
+ Maya{"maya-hieroglyfer"}
+ Mero{"meroitisk"}
Mlym{"malayalam"}
Mong{"mongolsk"}
Mymr{"myanmar"}
+ Nkoo{"n'ko"}
Ogam{"ogham"}
+ Orkh{"orkhon"}
Orya{"oriya"}
Osma{"osmanya"}
+ Perm{"gammelpermisk"}
+ Phag{"phags-pa"}
+ Phnx{"fønikisk"}
+ Plrd{"pollard-fonetisk"}
Qaai{"nedarvet"}
- Runr{"runisk"}
+ Roro{"rongorongo"}
+ Runr{"runer"}
+ Sara{"sarati"}
Shaw{"shavisk"}
Sinh{"sinhala"}
+ Sylo{"syloti nagri"}
Syrc{"syrisk"}
+ Syre{"syriakisk (estrangelo-variant)"}
+ Syrj{"syriakisk (vestlig variant)"}
+ Syrn{"syriakisk (østlig variant)"}
Tagb{"tagbanwa"}
Tale{"tai le"}
+ Talu{"ny tai lue"}
Taml{"tamil"}
Telu{"telugu"}
+ Teng{"tengwar"}
+ Tfng{"tifinagh (berber)"}
Tglg{"tagalog"}
Thaa{"thaana"}
Thai{"thai"}
Tibt{"tibetansk"}
Ugar{"ugaritisk"}
+ Vaii{"vai"}
+ Visp{"synlig tale"}
+ Xpeo{"gammelpersisk"}
+ Xsux{"sumersk-akkadisk kileskrift"}
Yiii{"yi"}
- Zyyy{"generelt"}
+ Zxxx{"kode for språk uten skrift"}
+ Zyyy{"felles"}
+ Zzzz{"kode for ukodet skrift"}
}
Types{
calendar{
- buddhist{"Buddhistisk kalender"}
- chinese{"Kinesisk kalender"}
- gregorian{"Gregoriansk kalender"}
- hebrew{"Hebraisk kalender"}
- islamic{"Islamsk kalender"}
- islamic-civil{"Islamsk sivil kalender"}
- japanese{"Japansk kalender"}
+ buddhist{"buddhistisk kalender"}
+ chinese{"kinesisk kalender"}
+ gregorian{"gregoriansk kalender"}
+ hebrew{"hebraisk kalender"}
+ islamic{"islamsk kalender"}
+ islamic-civil{"islamsk sivil kalender"}
+ japanese{"japansk kalender"}
}
collation{
- direct{"Direkte rekkefølge"}
- phonebook{"Telefonkatalogrekkefølge"}
- pinyin{"Pinyin-rekkefølge"}
- stroke{"Strekrekkefølge"}
- traditional{"Tradisjonell rekkefølge"}
+ big5han{"tradisjonell kinesisk"}
+ direct{"direkte sortering"}
+ gb2312han{"forenklet kinesisk"}
+ phonebook{"telefonkatalogsortering"}
+ pinyin{"pinyinsortering"}
+ stroke{"streksortering"}
+ traditional{"tradisjonell sortering"}
}
}
Variants{
- REVISED{"Revidert"}
+ 1901{"tradisjonell tysk ortografi"}
+ 1996{"tysk ortografi fra 1996"}
+ POLYTONI{"polytonisk"}
+ REVISED{"revidert ortografi"}
}
- Version{"1.50"}
+ Version{"1.69"}
calendar{
gregorian{
AmPmMarkers{
- "a.m.",
- "p.m.",
- }
- DateTimeElements:intvector{
- 2,
- 4,
+ "formiddag",
+ "ettermiddag",
}
DateTimePatterns{
"'kl. 'HH.mm.ss z",
@@ -1857,6 +2001,41 @@ nb{
"e.Kr.",
}
}
+ fields{
+ day{
+ dn{"dag"}
+ }
+ dayperiod{
+ dn{"f.m./e.m.-valg"}
+ }
+ era{
+ dn{"tidsalder"}
+ }
+ hour{
+ dn{"time"}
+ }
+ minute{
+ dn{"minutt"}
+ }
+ month{
+ dn{"måned"}
+ }
+ second{
+ dn{"sekund"}
+ }
+ week{
+ dn{"uke"}
+ }
+ weekday{
+ dn{"ukedag"}
+ }
+ year{
+ dn{"Ã¥r"}
+ }
+ zone{
+ dn{"sone"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1905,16 +2084,59 @@ nb{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
+ }
}
}
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ quotationEnd{"»"}
+ quotationStart{"«"}
+ }
+ measurementSystemNames{
+ US{"amerikansk"}
+ metric{"metrisk"}
+ }
zoneStrings{
- {
- "Europe/Bucharest",
- "Eastern European Standard Time",
- "EET",
- "Eastern European Daylight Time",
- "EEST",
- "Bucuresti",
+ "America:Godthab"{
+ ec{"Godthåb"}
+ }
+ "America:St_Johns"{
+ ec{"St. John's"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Sørpolen"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azorene"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucuresti"}
+ ld{"østeuropeisk sommertid"}
+ ls{"østeuropeisk standardtid"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisboa"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nb_NO.txt b/Build/source/libs/icu-xetex/data/locales/nb_NO.txt
index bb8283ca542..3a9faaf549c 100644
--- a/Build/source/libs/icu-xetex/data/locales/nb_NO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nb_NO.txt
@@ -1,11 +1,36 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nb_NO.xml
+// * Source File:<path>/common/main/nb_NO.xml
// *
// ***************************************************************************
nb_NO{
- Version{"1.27"}
+ NumberPatterns{
+ "#,##0.###",
+ "#,##0.00 ¤",
+ "#,##0 %",
+ "#E0",
+ }
+ Version{"1.38"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ DateTimePatterns{
+ "'kl. 'HH.mm.ss z",
+ "HH.mm.ss z",
+ "HH.mm.ss",
+ "HH.mm",
+ "EEEE d. MMMM yyyy",
+ "d. MMMM yyyy",
+ "d. MMM. yyyy",
+ "dd.MM.yy",
+ "{1} {0}",
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nl.txt b/Build/source/libs/icu-xetex/data/locales/nl.txt
index ad0a0dbdcc9..7b2cd806371 100644
--- a/Build/source/libs/icu-xetex/data/locales/nl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nl.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nl.xml
+// * Source File:<path>/common/main/nl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/nl.xml
+ * ICU <specials> source: <path>/xml/main/nl.xml
*/
nl{
+ AuxExemplarCharacters{"[å ã ç ñ ô]"}
Countries{
001{"Wereld"}
002{"Afrika"}
@@ -25,6 +26,7 @@ nl{
021{"Noord-Amerika"}
029{"Caribisch gebied"}
030{"Oost-Azië"}
+ 034{"Zuid-Azië"}
035{"Zuidoost-Azië"}
039{"Zuid-Europa"}
053{"Australië en Nieuw-Zeeland"}
@@ -33,11 +35,13 @@ nl{
061{"Polynesië"}
062{"Zuidelijk Centraal-Azië"}
142{"Azië"}
+ 143{"Centraal-Azië"}
145{"West-Azië"}
150{"Europa"}
151{"Oost-Europa"}
154{"Noord-Europa"}
155{"West-Europa"}
+ 419{"Latijns-Amerika en het Caribisch gebied"}
830{"Kanaaleilanden"}
833{"Isle of Man"}
AD{"Andorra"}
@@ -111,7 +115,7 @@ nl{
FI{"Finland"}
FJ{"Fiji"}
FK{"Falklandeilanden"}
- FM{"Micronesia, Federale Staten van"}
+ FM{"Micronesia"}
FO{"Faeröer"}
FR{"Frankrijk"}
GA{"Gabon"}
@@ -133,7 +137,7 @@ nl{
GW{"Guinee-Bissau"}
GY{"Guyana"}
HK{"Hongkong S.A.R. van China"}
- HM{"Heardeiland en McDonaldeiland"}
+ HM{"Heard- en McDonaldeilanden"}
HN{"Honduras"}
HR{"Kroatië"}
HT{"Haïti"}
@@ -142,7 +146,7 @@ nl{
IE{"Ierland"}
IL{"Israël"}
IN{"India"}
- IO{"Brits Territorium in de Indische Oceaan"}
+ IO{"Britse Gebieden in de Indische Oceaan"}
IQ{"Irak"}
IR{"Iran"}
IS{"IJsland"}
@@ -174,10 +178,10 @@ nl{
LY{"Libië"}
MA{"Marokko"}
MC{"Monaco"}
- MD{"Republiek Moldavië"}
+ MD{"Moldavië"}
MG{"Madagaskar"}
MH{"Marshalleilanden"}
- MK{"Macedonië, Republiek"}
+ MK{"Macedonië"}
ML{"Mali"}
MM{"Myanmar"}
MN{"Mongolië"}
@@ -224,7 +228,7 @@ nl{
QO{"Oceanië (overige)"}
RE{"Réunion"}
RO{"Roemenië"}
- RU{"Russische Federatie"}
+ RU{"Rusland"}
RW{"Rwanda"}
SA{"Saoedi-Arabië"}
SB{"Salomonseilanden"}
@@ -477,12 +481,20 @@ nl{
}
CDF{
"CDF",
- "Congolese franc congolais",
+ "Congolese franc",
+ }
+ CHE{
+ "CHE",
+ "WIR euro",
}
CHF{
"SwF",
"Zwitserse franc",
}
+ CHW{
+ "CHW",
+ "WIR franc",
+ }
CLF{
"CLF",
"Chileense unidades de fomento",
@@ -499,10 +511,18 @@ nl{
"Col$",
"Colombiaanse peso",
}
+ COU{
+ "COU",
+ "Unidad de Valor Real",
+ }
CRC{
"C",
"Costaricaanse colón",
}
+ CSD{
+ "CSD",
+ "Servische dinar",
+ }
CSK{
"CSK",
"Tsjechoslowaakse harde koruna",
@@ -567,6 +587,14 @@ nl{
"ERN",
"Eritrese nakfa",
}
+ ESA{
+ "ESA",
+ "Spaanse peseta (account A)",
+ }
+ ESB{
+ "ESB",
+ "Spaanse peseta (convertibele account)",
+ }
ESP{
"ESP",
"Spaanse peseta",
@@ -577,7 +605,7 @@ nl{
}
EUR{
"€",
- "Euro",
+ "euro",
}
FIM{
"FIM",
@@ -641,7 +669,7 @@ nl{
}
GWE{
"GWE",
- "Portuguees-Guinese escudo",
+ "Portugees-Guinese escudo",
}
GWP{
"GWP",
@@ -657,7 +685,7 @@ nl{
}
HNL{
"L",
- "Hodurese lempira",
+ "Hondurese lempira",
}
HRD{
"HRD",
@@ -787,10 +815,18 @@ nl{
"LTT",
"Litouwse talonas",
}
+ LUC{
+ "LUC",
+ "Luxemburgse convertibele franc",
+ }
LUF{
"LUF",
"Luxemburgse frank",
}
+ LUL{
+ "LUL",
+ "Luxemburgse financiële franc",
+ }
LVL{
"LVL",
"Letse lats",
@@ -1175,6 +1211,10 @@ nl{
"XAF",
"CFA-franc BEAC",
}
+ XAG{
+ "XAG",
+ "Zilver",
+ }
XAU{
"XAU",
"Goud",
@@ -1223,6 +1263,22 @@ nl{
"CFPF",
"CFP-franc",
}
+ XPT{
+ "XPT",
+ "Platina",
+ }
+ XRE{
+ "XRE",
+ "RINET-fondsen",
+ }
+ XTS{
+ "XTS",
+ "Valutacode voor testdoeleinden",
+ }
+ XXX{
+ "XXX",
+ "Geen valuta",
+ }
YDD{
"YDD",
"Jemenitische dinar",
@@ -1268,7 +1324,7 @@ nl{
"Zimbabwaanse dollar",
}
}
- ExemplarCharacters{"[a-záéíóúäëïöüij]"}
+ ExemplarCharacters{"[a á ä b-e é ë f-i í ï {ij} j-o ó ö p-u ú ü v-z]"}
Keys{
calendar{"Kalender"}
collation{"Volgorde"}
@@ -1285,6 +1341,7 @@ nl{
af{"Afrikaans"}
afa{"Afro-Aziatisch (overige)"}
afh{"Afrihili"}
+ ain{"Ainu"}
ak{"Akan"}
akk{"Akkadisch"}
ale{"Aleut"}
@@ -1404,6 +1461,7 @@ nl{
fat{"Fanti"}
ff{"Fulah"}
fi{"Fins"}
+ fil{"Filipijns"}
fiu{"Finoegrische talen (overige)"}
fj{"Fijisch"}
fo{"Faeröers"}
@@ -1560,6 +1618,7 @@ nl{
mul{"Meerdere talen"}
mun{"Munda-talen"}
mus{"Creek"}
+ mwl{"Mirandees"}
mwr{"Marwari"}
my{"Birmees"}
myn{"Mayan-talen"}
@@ -1586,6 +1645,7 @@ nl{
nso{"Noord-Sotho"}
nub{"Nubische talen"}
nv{"Navajo"}
+ nwc{"Klassiek Newari"}
ny{"Nyanja"}
nym{"Nyamwezi"}
nyn{"Nyankole"}
@@ -1625,7 +1685,9 @@ nl{
ro{"Roemeens"}
roa{"Romaans (overige)"}
rom{"Romani"}
+ root{"Root"}
ru{"Russisch"}
+ rup{"Aromaniaans"}
rw{"Kinyarwanda"}
sa{"Sanskrit"}
sad{"Sandawe"}
@@ -1636,6 +1698,7 @@ nl{
sas{"Sasak"}
sat{"Santali"}
sc{"Sardinisch"}
+ scn{"Siciliaans"}
sco{"Schots"}
sd{"Sindhi"}
se{"Noord-Samisch"}
@@ -1666,6 +1729,7 @@ nl{
son{"Songhai"}
sq{"Albanees"}
sr{"Servisch"}
+ srn{"Sranantongo"}
srr{"Serer"}
ss{"Swati"}
st{"Sotho, zuid"}
@@ -1690,6 +1754,7 @@ nl{
tk{"Turkmeens"}
tkl{"Tokelau"}
tl{"Tagalog"}
+ tlh{"Klingon"}
tli{"Tlingit"}
tmh{"Tamashek"}
tn{"Tswana"}
@@ -1756,25 +1821,36 @@ nl{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Arab{"Arabisch"}
Armn{"Armeens"}
+ Bali{"Balinees"}
+ Batk{"Batak"}
Beng{"Bengalees"}
+ Blis{"Blissymbolen"}
Bopo{"Bopomofo"}
+ Brah{"Brahmi"}
Brai{"Braille"}
+ Bugi{"Buginees"}
Buhd{"Buhid"}
Cans{"Verenigde Canadese Aboriginal-symbolen"}
Cher{"Cherokee"}
+ Cirt{"Cirth"}
Copt{"Koptisch"}
Cprt{"Cyprisch"}
Cyrl{"Cyrillisch"}
+ Cyrs{"Cyrillisch (Oudkerkslavische variant)"}
Deva{"Devanagari"}
Dsrt{"Deseret"}
+ Egyd{"Egyptisch (demotisch)"}
+ Egyh{"Egyptisch (hiëratisch)"}
Ethi{"Ethiopisch"}
+ Geok{"Khutsuri (Asomtavruli en Nuskhuri)"}
Geor{"Georgisch"}
+ Glag{"Glagolitisch"}
Goth{"Gothisch"}
Grek{"Grieks"}
Gujr{"Gujarati"}
@@ -1786,34 +1862,67 @@ nl{
Hant{"Traditioneel Han"}
Hebr{"Hebreeuws"}
Hira{"Hiragana"}
+ Hmng{"Pahawh Hmong"}
+ Hrkt{"Katakana of Hiragana"}
+ Hung{"Oudhongaars"}
+ Inds{"Indus (Harappan)"}
Ital{"Oud-italisch"}
+ Java{"Javaans"}
+ Kali{"Kayah Li"}
Kana{"Katakana"}
+ Khar{"Kharoshthi"}
Khmr{"Khmer"}
Knda{"Kannada"}
Laoo{"Lao"}
+ Latf{"Latijn (Fraktur-variant)"}
+ Latg{"Latijn (Gaelic variant)"}
Latn{"Latijn"}
+ Lepc{"Lepcha (Róng)"}
Limb{"Limbu"}
+ Lina{"Lineair A"}
Linb{"Lineair B"}
+ Mand{"Mandaeans"}
+ Maya{"Mayahiërogliefen"}
+ Mero{"Meroïtisch"}
Mlym{"Malayalam"}
Mong{"Mongools"}
Mymr{"Myanmar"}
+ Nkoo{"N’Ko"}
Ogam{"Ogham"}
+ Orkh{"Orkhon"}
Orya{"Oriya"}
Osma{"Osmanya"}
+ Perm{"Oudpermisch"}
+ Phag{"Phags-pa"}
+ Phnx{"Foenicisch"}
+ Plrd{"Pollard-fonetisch"}
+ Qaai{"Overgeërfd"}
+ Roro{"Rongorongo"}
Runr{"Runic"}
+ Sara{"Sarati"}
Shaw{"Shavian"}
Sinh{"Sinhala"}
+ Sylo{"Syloti Nagri"}
Syrc{"Syriac"}
Tagb{"Tagbanwa"}
Tale{"Tai Le"}
+ Talu{"Tai Lue (nieuw)"}
Taml{"Tamil"}
Telu{"Telugu"}
+ Teng{"Tengwar"}
+ Tfng{"Tifinagh (Berber)"}
Tglg{"Tagalog"}
Thaa{"Thaana"}
Tibt{"Tibetaans"}
Ugar{"Ugaritisch"}
+ Vaii{"Vai"}
+ Visp{"Zichtbare spraak"}
+ Xpeo{"Oudperzisch"}
+ Xsux{"Sumero-Akkadian Cuneiform"}
Yiii{"Yi"}
+ Zxxx{"Code voor ongeschreven talen"}
Zyyy{"Algemeen"}
+ Zzzz{"Code voor ongecodeerde schriftsystemen"}
}
Types{
calendar{
@@ -1826,28 +1935,36 @@ nl{
japanese{"Japanse kalender"}
}
collation{
+ big5han{"Traditioneel Chinees"}
direct{"Directe volgorde"}
+ gb2312han{"Vereenvoudigd Chinees"}
phonebook{"Telefoonboekvolgorde"}
pinyin{"Pinyinvolgorde"}
stroke{"Streekvolgorde"}
- traditional{"Traditioneelvolgorde"}
+ traditional{"Traditionele volgorde"}
}
}
Variants{
- REVISED{"Gewijzigd"}
+ 1901{"Traditionele Duitse ortografie"}
+ 1996{"Duitse ortografie van 1996"}
+ NEDIS{"Natisone (dialect)"}
+ POLYTONI{"Polytonaal"}
+ REVISED{"Gewijzigde ortografie"}
+ ROZAJ{"Resiaans"}
+ SAAHO{"Saho"}
}
- Version{"1.52"}
+ Version{"1.73"}
calendar{
gregorian{
DateTimePatterns{
- "H:mm:ss' uur' z",
- "H:mm:ss z",
- "H:mm:ss",
- "H:mm",
+ "HH:mm:ss v",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
"EEEE d MMMM yyyy",
"d MMMM yyyy",
- "d-MMM-yyyy",
- "d-M-yy",
+ "d MMM yyyy",
+ "dd-MM-yy",
"{1} {0}",
}
dayNames{
@@ -1889,6 +2006,35 @@ nl{
"n. Chr.",
}
}
+ fields{
+ day{
+ dn{"Dag"}
+ }
+ dayperiod{
+ dn{"Dagdeel"}
+ }
+ era{
+ dn{"Tijdperk"}
+ }
+ hour{
+ dn{"Uur"}
+ }
+ minute{
+ dn{"Minuut"}
+ }
+ month{
+ dn{"Maand"}
+ }
+ second{
+ dn{"Seconde"}
+ }
+ weekday{
+ dn{"Dag van de week"}
+ }
+ year{
+ dn{"Jaar"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1937,11 +2083,26 @@ nl{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1e kwartaal",
+ "2e kwartaal",
+ "3e kwartaal",
+ "4e kwartaal",
+ }
+ }
+ }
}
hebrew{
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/hebrew/monthNames/format/wide"}
wide{
"Tisjrie",
"Chesjwan",
@@ -1968,7 +2129,6 @@ nl{
}
monthNames{
format{
- abbreviated:alias{"/LOCALE/calendar/islamic/monthNames/format/wide"}
wide{
"Moeharram",
"Safar",
@@ -1986,136 +2146,184 @@ nl{
}
}
}
- islamic-civil:alias{"/LOCALE/calendar/islamic"}
+ }
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"“"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
+ }
+ measurementSystemNames{
+ metric{"Metriek"}
}
zoneStrings{
- {
- "America/Halifax",
- "Atlantic-standaardtijd",
- "AST",
- "Atlantic-zomertijd",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Newfoundland-standaardtijd",
- "CNT",
- "Newfoundland-zomertijd",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Chinese standaardtijd",
- "CTT",
- "Chinese standaardtijd",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Midden-Europese standaardtijd",
- "CET",
- "Midden-Europese zomertijd",
- "CEST",
- "Parijs",
- }
- {
- "Asia/Jerusalem",
- "Israëlische standaardtijd",
- "IST",
- "Israëlische zomertijd",
- "IDT",
- "Jeruzalem",
- }
- {
- "Asia/Tokyo",
- "Japanse standaardtijd",
- "JST",
- "Japanse standaardtijd",
- "JST",
- "Tokyo",
- }
- {
- "Africa/Casablanca",
- "Greenwich Mean Time",
- "GMT",
- "Greenwich Mean Time",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Oost-Europese standaardtijd",
- "EET",
- "Oost-Europese zomertijd",
- "EEST",
- "Boekarest",
- }
- {
- "Pacific/Honolulu",
- "Hawaï-standaardtijd",
- "HST",
- "Hawaï-standaardtijd",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Alaska-standaardtijd",
- "AST",
- "Alaska-zomertijd",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Pacific-standaardtijd",
- "PST",
- "Pacific-zomertijd",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Mountain-standaardtijd",
- "MST",
- "Mountain-standaardtijd",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Mountain-standaardtijd",
- "MST",
- "Mountain-zomertijd",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Central-standaardtijd",
- "CST",
- "Central-zomertijd",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Eastern-standaardtijd",
- "EST",
- "Eastern-standaardtijd",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Eastern-standaardtijd",
- "EST",
- "Eastern-zomertijd",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Greenwich Mean Time"}
+ ls{"Greenwich Mean Time"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "Africa:Timbuktu"{
+ ec{"Timboektoe"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Alaska-zomertijd"}
+ ls{"Alaska-standaardtijd"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comodora Rivadavia"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Río Gallegos"}
+ }
+ "America:Belem"{
+ ec{"Belém"}
+ }
+ "America:Cancun"{
+ ec{"Cancún"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Central-zomertijd"}
+ ls{"Central-standaardtijd"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Cordoba"{
+ ec{"Córdoba"}
+ }
+ "America:Cuiaba"{
+ ec{"Cuiabá"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Mountain-zomertijd"}
+ ls{"Mountain-standaardtijd"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantic-zomertijd"}
+ ls{"Atlantic-standaardtijd"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pacific-zomertijd"}
+ ls{"Pacific-standaardtijd"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Maceio"{
+ ec{"Maceió"}
+ }
+ "America:Mazatlan"{
+ ec{"Mazatlán"}
+ }
+ "America:Merida"{
+ ec{"Mérida"}
+ }
+ "America:Mexico_City"{
+ ec{"Mexico Stad"}
+ }
+ "America:Montreal"{
+ ec{"Montréal"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Eastern-zomertijd"}
+ ls{"Eastern-standaardtijd"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Mountain-standaardtijd"}
+ ls{"Mountain-standaardtijd"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:Porto_Velho"{
+ ec{"Pôrto Velho"}
+ }
+ "America:Sao_Paulo"{
+ ec{"São Paulo"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Newfoundland-zomertijd"}
+ ls{"Newfoundland-standaardtijd"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Zuidpool"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jeruzalem"}
+ ld{"Israëlische zomertijd"}
+ ls{"Israëlische standaardtijd"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Shanghai"{
+ ld{"Chinese standaardtijd"}
+ ls{"Chinese standaardtijd"}
+ }
+ "Asia:Tashkent"{
+ ec{"Tasjkent"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Japanse standaardtijd"}
+ ls{"Japanse standaardtijd"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulaanbaator"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azoren"}
+ }
+ "Atlantic:Canary"{
+ ec{"Canarische Eilanden"}
+ }
+ "Europe:Bucharest"{
+ ec{"Boekarest"}
+ ld{"Oost-Europese zomertijd"}
+ ls{"Oost-Europese standaardtijd"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lissabon"}
+ }
+ "Europe:London"{
+ ec{"Londen"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskou"}
+ }
+ "Europe:Paris"{
+ ec{"Parijs"}
+ ld{"Midden-Europese zomertijd"}
+ ls{"Midden-Europese standaardtijd"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Pacific:Easter"{
+ ec{"Paaseiland"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hawaï-standaardtijd"}
+ ls{"Hawaï-standaardtijd"}
+ sd{"HST"}
+ ss{"HST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nl_BE.txt b/Build/source/libs/icu-xetex/data/locales/nl_BE.txt
index 69c75dd2f85..a94e402fddd 100644
--- a/Build/source/libs/icu-xetex/data/locales/nl_BE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nl_BE.txt
@@ -1,19 +1,34 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nl_BE.xml
+// * Source File:<path>/common/main/nl_BE.xml
// *
// ***************************************************************************
nl_BE{
+ Countries{
+ 172{"Gemenebest van Onafhankelijke Staten"}
+ 833{"Het Eiland Man"}
+ }
+ Languages{
+ lv{"Lets"}
+ oc{"Occitaans (na 1500); Provençaals"}
+ sa{"Sanskriet"}
+ sh{"Servo-Kroatisch"}
+ }
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
"#,##0%",
"#E0",
}
- Version{"1.31"}
+ Types{
+ collation{
+ traditional{"Traditioneel"}
+ }
+ }
+ Version{"1.49"}
calendar{
gregorian{
DateTimeElements:intvector{
@@ -21,7 +36,7 @@ nl_BE{
4,
}
DateTimePatterns{
- "HH.mm' u. 'z",
+ "HH:mm:ss v",
"HH:mm:ss z",
"HH:mm:ss",
"HH:mm",
diff --git a/Build/source/libs/icu-xetex/data/locales/nl_NL.txt b/Build/source/libs/icu-xetex/data/locales/nl_NL.txt
index b6e7e288fe1..b9e48897977 100644
--- a/Build/source/libs/icu-xetex/data/locales/nl_NL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nl_NL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nl_NL.xml
+// * Source File:<path>/common/main/nl_NL.xml
// *
// ***************************************************************************
nl_NL{
@@ -13,5 +13,13 @@ nl_NL{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nn.txt b/Build/source/libs/icu-xetex/data/locales/nn.txt
index e150efc97f1..22bf59c8d33 100644
--- a/Build/source/libs/icu-xetex/data/locales/nn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nn.txt
@@ -1,31 +1,65 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nn.xml
+// * Source File:<path>/common/main/nn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/nn.xml
+ * ICU <specials> source: <path>/xml/main/nn.xml
*/
nn{
+ AuxExemplarCharacters{"[á ÇŽ Ä Ã§ Ä‘ è ê Å„ ñ Å‹ Å¡ ŧ ü ž ä ö]"}
Countries{
+ 002{"Afrika"}
+ 005{"Sør-Amerika"}
+ 009{"Oseania"}
+ 011{"Vest-Afrika"}
+ 013{"Sentral-Amerika"}
+ 014{"Aust-Afrika"}
+ 015{"Nord-Afrika"}
+ 017{"Sentral-Afrika"}
+ 018{"Sørlege Afrika"}
+ 019{"Amerika"}
+ 021{"Nord-Amerika"}
+ 029{"Karibiske hav"}
+ 030{"Aust-Asia"}
+ 034{"Sør-Asia"}
+ 035{"Søraust-Asia"}
+ 039{"Sør-Europa"}
+ 053{"Australia og New Zealand"}
+ 054{"Melanesia"}
+ 057{"Mikronesia"}
+ 061{"Polynesia"}
+ 062{"Sørlege Sentral-Asia"}
+ 142{"Asia"}
+ 143{"Sentral-Asia"}
+ 145{"Vest-Asia"}
+ 150{"Europa"}
+ 151{"Aust-Europa"}
+ 154{"Nord-Europa"}
+ 155{"Vest-Europa"}
+ 172{"Samveldet av uavhengige statar"}
+ 419{"Latin-Amerika og Karibia"}
+ 830{"Kanaløyane"}
+ 833{"Man"}
AD{"Andorra"}
- AE{"De forente arabiske emiratene"}
+ AE{"Dei sameinte arabiske emirata"}
AF{"Afghanistan"}
AG{"Antigua og Barbuda"}
AI{"Anguilla"}
AL{"Albania"}
AM{"Armenia"}
- AN{"De nederlandske antiller"}
+ AN{"Dei nederlandske Antillane"}
AO{"Angola"}
AQ{"Antarktis"}
AR{"Argentina"}
AS{"Amerikansk Samoa"}
- AT{"Østerrike"}
+ AT{"Austerrike"}
AU{"Australia"}
AW{"Aruba"}
+ AX{"Ã…land"}
AZ{"Aserbajdsjan"}
BA{"Bosnia og Hercegovina"}
BB{"Barbados"}
@@ -44,21 +78,22 @@ nn{
BT{"Bhutan"}
BV{"Bouvetøya"}
BW{"Botswana"}
- BY{"Hviterussland"}
+ BY{"Kviterussland"}
BZ{"Belize"}
CA{"Canada"}
- CC{"Kokosøyene (Keelingøyene)"}
+ CC{"Kokosøyane (Keelingøyane)"}
CD{"Kongo, Den demokratiske republikken"}
CF{"Den sentralafrikanske republikk"}
CG{"Kongo"}
CH{"Sveits"}
- CI{"Elfenbenskysten"}
- CK{"Cookøyene"}
+ CI{"Elfenbeinskysten"}
+ CK{"Cookøyane"}
CL{"Chile"}
CM{"Kamerun"}
CN{"Kina"}
CO{"Colombia"}
CR{"Costa Rica"}
+ CS{"Serbia Montenegro"}
CU{"Cuba"}
CV{"Kapp Verde"}
CX{"Christmasøya"}
@@ -79,9 +114,9 @@ nn{
ET{"Etiopia"}
FI{"Finland"}
FJ{"Fiji"}
- FK{"Falklandsøyene (Malvinas)"}
+ FK{"Falklandsøyane"}
FM{"Mikronesiaføderasjonen"}
- FO{"Færøyene"}
+ FO{"Færøyane"}
FR{"Frankrike"}
GA{"Gabon"}
GB{"Storbritannia"}
@@ -96,13 +131,13 @@ nn{
GP{"Guadeloupe"}
GQ{"Ekvatorial-Guinea"}
GR{"Hellas"}
- GS{"Sør-Georgia og Sør-Sandwich-øyene"}
+ GS{"Sør-Georgia og Sør-Sandwich-øyane"}
GT{"Guatemala"}
GU{"Guam"}
GW{"Guinea-Bissau"}
GY{"Guyana"}
HK{"Hong Kong S.A.R. (Kina)"}
- HM{"Heard- og McDonaldsøyene"}
+ HM{"Heard- og McDonaldsøyane"}
HN{"Honduras"}
HR{"Kroatia"}
HT{"Haiti"}
@@ -128,7 +163,7 @@ nn{
KP{"Nord-Korea"}
KR{"Sør-Korea"}
KW{"Kuwait"}
- KY{"Caymanøyene"}
+ KY{"Caymanøyane"}
KZ{"Kasakhstan"}
LA{"Laos, Den folkedemokratiske republikken"}
LB{"Libanon"}
@@ -145,13 +180,13 @@ nn{
MC{"Monaco"}
MD{"Moldova"}
MG{"Madagaskar"}
- MH{"Marshalløyene"}
+ MH{"Marshalløyane"}
MK{"Makedonia, Republikken"}
ML{"Mali"}
MM{"Myanmar"}
MN{"Mongolia"}
MO{"Macao S.A.R. (Kina)"}
- MP{"Nord-Marianene"}
+ MP{"Nord-Marianane"}
MQ{"Martinique"}
MR{"Mauritania"}
MS{"Montserrat"}
@@ -165,7 +200,7 @@ nn{
NA{"Namibia"}
NC{"Ny-Caledonia"}
NE{"Niger"}
- NF{"Norfolkøyene"}
+ NF{"Norfolkøyane"}
NG{"Nigeria"}
NI{"Nicaragua"}
NL{"Nederland"}
@@ -179,7 +214,7 @@ nn{
PE{"Peru"}
PF{"Fransk Polynesia"}
PG{"Papua Ny-Guinea"}
- PH{"Filippinene"}
+ PH{"Filippinane"}
PK{"Pakistan"}
PL{"Polen"}
PM{"St. Pierre og Miquelon"}
@@ -190,13 +225,14 @@ nn{
PW{"Palau"}
PY{"Paraguay"}
QA{"Qatar"}
+ QO{"Ytre Oseania"}
RE{"Reunion"}
RO{"Romania"}
RU{"Den russiske føderasjon"}
RW{"Rwanda"}
SA{"Saudi Arabia"}
- SB{"Salomonøyene"}
- SC{"Seychellene"}
+ SB{"Salomonøyane"}
+ SC{"Seychellane"}
SD{"Sudan"}
SE{"Sverige"}
SG{"Singapore"}
@@ -213,14 +249,14 @@ nn{
SV{"El Salvador"}
SY{"Syria"}
SZ{"Swaziland"}
- TC{"Turks- og Caicosøyene"}
+ TC{"Turks- og Caicosøyane"}
TD{"Tchad"}
TF{"Franske sørområder"}
TG{"Togo"}
TH{"Thailand"}
TJ{"Tadsjikistan"}
TK{"Tokelau"}
- TL{"Øst-Timor"}
+ TL{"Aust-Timor"}
TM{"Turkmenistan"}
TN{"Tunisia"}
TO{"Tonga"}
@@ -231,14 +267,14 @@ nn{
TZ{"Tanzania"}
UA{"Ukraina"}
UG{"Uganda"}
- UM{"USAs mindre øyer"}
+ UM{"USAs ytre småøyar"}
US{"USA"}
UY{"Uruguay"}
UZ{"Usbekistan"}
VA{"Vatikanstaten"}
- VC{"St. Vincent og Grenadinene"}
+ VC{"St. Vincent og Grenadinane"}
VE{"Venezuela"}
- VG{"Jomfruøyene (britisk)"}
+ VG{"Jomfruøyane (britisk)"}
VI{"Jomfruøyene (USA)"}
VN{"Vietnam"}
VU{"Vanuatu"}
@@ -251,28 +287,500 @@ nn{
ZW{"Zimbabwe"}
}
Currencies{
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
NOK{
"kr",
"NOK",
}
- USD{
- "$",
- "USD",
- }
}
- ExemplarCharacters{"[a-zæåøéóôàüǎ]"}
+ ExemplarCharacters{"[a à b-e é f-o ó ò ô p-z æ ø å]"}
+ Keys{
+ calendar{"kalender"}
+ collation{"kollasjon"}
+ currency{"valuta"}
+ }
Languages{
- nb{"norsk bokmål"}
- nn{"norsk nynorsk"}
+ aa{"afar"}
+ ab{"abkhasisk"}
+ ace{"achinesisk"}
+ ach{"acoli"}
+ ada{"adangme"}
+ ady{"adyghe"}
+ ae{"avestisk"}
+ af{"afrikaans"}
+ afa{"afroasiatisk språk (anna)"}
+ afh{"afrihili"}
+ ain{"ainu"}
+ ak{"akan"}
+ akk{"akkadisk"}
+ ale{"aleutisk"}
+ alg{"algonkinsk språk"}
+ alt{"sør-altai"}
+ am{"amharisk"}
+ an{"aragonsk"}
+ ang{"gammalengelsk (ca. 450-1100)"}
+ anp{"angika"}
+ apa{"apache-språk"}
+ ar{"arabisk"}
+ arc{"arameisk"}
+ arn{"araukansk"}
+ arp{"arapaho"}
+ art{"kunstig (anna)"}
+ arw{"arawak"}
+ as{"assamisk"}
+ ast{"asturisk"}
+ ath{"athapaskansk språk"}
+ aus{"australsk språk"}
+ av{"avarisk"}
+ awa{"awadhi"}
+ ay{"aymara"}
+ az{"aserbajdsjansk"}
+ ba{"basjkirsk"}
+ bad{"banda"}
+ bai{"bamilekisk språk"}
+ bal{"baluchi"}
+ ban{"balinesisk"}
+ bas{"basa"}
+ bat{"baltisk (anna)"}
+ be{"kviterussisk"}
+ bej{"beja"}
+ bem{"bemba"}
+ ber{"berbisk"}
+ bg{"bulgarsk"}
+ bh{"bihari"}
+ bho{"bhojpuri"}
+ bi{"bislama"}
+ bik{"bikol"}
+ bin{"bini"}
+ bla{"siksika"}
+ bm{"bambara"}
+ bn{"bengali"}
+ bnt{"bantu"}
+ bo{"tibetansk"}
+ br{"bretonsk"}
+ bra{"braj"}
+ bs{"bosnisk"}
+ btk{"batak (Indonesia)"}
+ bua{"buriat"}
+ bug{"buginesisk"}
+ byn{"blin"}
+ ca{"katalansk"}
+ cad{"caddo"}
+ cai{"sentralamerikansk indiansk (anna)"}
+ car{"karibisk"}
+ cau{"kaukasisk (anna)"}
+ ce{"tsjetsjensk"}
+ ceb{"cebuansk"}
+ cel{"keltisk (anna)"}
+ ch{"chamorro"}
+ chb{"chibcha"}
+ chg{"chagatai"}
+ chk{"chuukesisk"}
+ chm{"mari"}
+ chn{"chinook"}
+ cho{"choctaw"}
+ chp{"chipewiansk"}
+ chr{"cherokee"}
+ chy{"cheyenne"}
+ cmc{"kamisk språk"}
+ co{"korsikansk"}
+ cop{"koptisk"}
+ cpe{"kreolsk og pidgin, engelskbasert (anna)"}
+ cpf{"kreolsk og pidgin, franskbasert (anna)"}
+ cpp{"kreolsk og pidgin, portugisiskbasert (anna)"}
+ cr{"cree"}
+ crh{"krimtatarisk"}
+ crp{"kreolsk og pidgin (anna)"}
+ cs{"tsjekkisk"}
+ csb{"kasjubisk"}
+ cu{"kyrkjeslavisk"}
+ cus{"kusjitisk språk (anna)"}
+ cv{"tsjuvansk"}
+ cy{"walisisk"}
+ da{"dansk"}
+ dak{"dakota"}
+ dar{"dargwa"}
+ day{"dayak"}
+ de{"tysk"}
+ del{"delaware"}
+ den{"slavej"}
+ dgr{"dogrib"}
+ din{"dinka"}
+ doi{"dogri"}
+ dra{"dravidisk språk (anna)"}
+ dsb{"lågsorbisk"}
+ dua{"duala"}
+ dum{"mellumnederlandsk"}
+ dv{"divehi"}
+ dyu{"dyula"}
+ dz{"dzongkha"}
+ ee{"ewe"}
+ efi{"efik"}
+ egy{"egyptisk (historisk)"}
+ eka{"ekajuk"}
+ el{"gresk"}
+ elx{"elamittisk"}
+ en{"engelsk"}
+ enm{"mellomengelsk (1100-1500)"}
+ eo{"esperanto"}
+ es{"spansk"}
+ et{"estisk"}
+ eu{"baskisk"}
+ ewo{"ewondo"}
+ fa{"persisk"}
+ fan{"fang"}
+ fat{"fanti"}
+ ff{"fulani"}
+ fi{"finsk"}
+ fil{"filippinsk"}
+ fiu{"finsk-ugrisk språk (anna)"}
+ fj{"fijiansk"}
+ fo{"færøysk"}
+ fon{"fon"}
+ fr{"fransk"}
+ frm{"mellomfransk (ca.1400-1600)"}
+ fro{"gammalfransk (842 til ca.1400)"}
+ frr{"nordfrisisk"}
+ frs{"austfrisisk"}
+ fur{"friuliansk"}
+ fy{"vestfrisisk"}
+ ga{"irsk"}
+ gaa{"ga"}
+ gay{"gayo"}
+ gba{"gbaya"}
+ gd{"skotsk-gælisk"}
+ gem{"germansk språk (anna)"}
+ gez{"ges"}
+ gil{"kiribatisk; gilbertesisk"}
+ gl{"galicisk"}
+ gmh{"mellomhøgtysk (ca.1050-1500)"}
+ gn{"guarani"}
+ goh{"gammalhøgtysk (ca.750-1050)"}
+ gon{"gondi"}
+ gor{"gorontalo"}
+ got{"gotisk"}
+ grb{"grebo"}
+ grc{"gammalgresk (til 1453)"}
+ gsw{"sveitsertysk"}
+ gu{"gujarati"}
+ gv{"manx"}
+ gwi{"gwichin"}
+ ha{"hausa"}
+ hai{"haida"}
+ haw{"hawaiisk"}
+ he{"hebraisk"}
+ hi{"hindi"}
+ hil{"hiligaynon"}
+ him{"himachali"}
+ hit{"hettittisk"}
+ hmn{"hmong"}
+ ho{"hiri motu"}
+ hr{"kroatisk"}
+ hsb{"høgsorbisk"}
+ ht{"haitisk"}
+ hu{"ungarsk"}
+ hup{"hupa"}
+ hy{"armensk"}
+ hz{"herero"}
+ ia{"interlingua"}
+ iba{"iban"}
+ id{"indonesisk"}
+ ie{"interlingue"}
+ ig{"ibo"}
+ ii{"sichuan-yi"}
+ ijo{"ijo"}
+ ik{"inupiak"}
+ ilo{"iloko"}
+ inc{"indisk språk (anna)"}
+ ine{"indo-europeisk språk (anna)"}
+ inh{"ingusjisk"}
+ io{"ido"}
+ ira{"iransk"}
+ iro{"irokansk språk"}
+ is{"islandsk"}
+ it{"italiensk"}
+ iu{"inuktitut"}
+ ja{"japansk"}
+ jbo{"lojban"}
+ jpr{"jødepersisk"}
+ jrb{"jødearabisk"}
+ jv{"javanesisk"}
+ ka{"georgisk"}
+ kaa{"karakalpakisk"}
+ kab{"kabylsk"}
+ kac{"kachin"}
+ kam{"kamba"}
+ kar{"karensk"}
+ kaw{"kawi"}
+ kbd{"kabardisk"}
+ kg{"kikongo"}
+ kha{"khasi"}
+ khi{"khoisanspråk (anna)"}
+ kho{"khotanesisk"}
+ ki{"kikuyu"}
+ kj{"kuanyama"}
+ kk{"kasakhisk"}
+ kl{"kalaallisut; grønlandsk"}
+ km{"khmer"}
+ kmb{"kimbundu"}
+ kn{"kannada"}
+ ko{"koreansk"}
+ kok{"konkani"}
+ kos{"kosraeansk"}
+ kpe{"kpelle"}
+ kr{"kanuri"}
+ krc{"karachay-balkar"}
+ krl{"karelsk"}
+ kro{"kru"}
+ kru{"kurukh"}
+ ks{"kasjmiri"}
+ ku{"kurdisk"}
+ kum{"kumyk"}
+ kut{"kutenai"}
+ kv{"komi"}
+ kw{"kornisk"}
+ ky{"kirgisisk"}
+ la{"latin"}
+ lad{"ladinsk"}
+ lah{"lahnda"}
+ lam{"lamba"}
+ lb{"luxemburgsk"}
+ lez{"lezghian"}
+ lg{"ganda"}
+ li{"limburgisk"}
+ ln{"lingala"}
+ lo{"laotisk"}
+ lol{"mongo"}
+ loz{"lozi"}
+ lt{"litauisk"}
+ lu{"luba-katanga"}
+ lua{"luba-lulua"}
+ lui{"luiseno"}
+ lun{"lunda"}
+ luo{"luo"}
+ lus{"lushai"}
+ lv{"latvisk"}
+ mad{"maduresisk"}
+ mag{"magahi"}
+ mai{"maithili"}
+ mak{"makasar"}
+ man{"mandingo"}
+ map{"austronesisk"}
+ mas{"masai"}
+ mdf{"moksha"}
+ mdr{"mandar"}
+ men{"mende"}
+ mg{"madagassisk"}
+ mga{"mellomirsk (900-1200)"}
+ mh{"marshallesisk"}
+ mi{"maori"}
+ mic{"micmac"}
+ min{"minangkabau"}
+ mis{"ulike språk"}
+ mk{"makedonsk"}
+ mkh{"mon-khmerspråk (anna)"}
+ ml{"malayalam"}
+ mn{"mongolsk"}
+ mnc{"mandsju"}
+ mni{"manipuri"}
+ mno{"manobospråk"}
+ mo{"moldavisk"}
+ moh{"mohawk"}
+ mos{"mossi"}
+ mr{"marathi"}
+ ms{"malayisk"}
+ mt{"maltesisk"}
+ mul{"fleire språk"}
+ mun{"mundaspråk"}
+ mus{"creek"}
+ mwl{"mirandesisk"}
+ mwr{"marwari"}
+ my{"burmesisk"}
+ myn{"mayaspråk"}
+ myv{"erzya"}
+ na{"nauru"}
+ nah{"nahuatl"}
+ nai{"nordamerikansk indiansk språk (anna)"}
+ nap{"napolitansk"}
+ nb{"bokmål"}
+ nd{"nord-ndebele"}
+ nds{"lågtysk; lågsaksisk"}
+ ne{"nepalsk"}
+ new{"newari"}
+ ng{"ndonga"}
+ nia{"nias"}
+ nic{"niger-kordofaniansk språk (anna)"}
+ niu{"niueansk"}
+ nl{"nederlandsk"}
+ nn{"nynorsk"}
no{"norsk"}
+ nog{"nogai"}
+ non{"gammalnorsk"}
+ nr{"sør-ndebele"}
+ nso{"nordsotho"}
+ nub{"nubisk språk"}
+ nv{"navajo"}
+ nwc{"klassisk newarisk"}
+ ny{"nyanja"}
+ nym{"nyamwezi"}
+ nyn{"nyankole"}
+ nyo{"nyoro"}
+ nzi{"nzima"}
+ oc{"oksitansk (etter 1500)"}
+ oj{"ojibwa"}
+ om{"oromo"}
+ or{"oriya"}
+ os{"ossetisk"}
+ osa{"osage"}
+ ota{"ottomansk tyrkisk"}
+ oto{"otomisk språk"}
+ pa{"panjabi"}
+ paa{"papuisk språk (anna)"}
+ pag{"pangasinan"}
+ pal{"pahlavi"}
+ pam{"pampanga"}
+ pap{"papiamento"}
+ pau{"palauisk"}
+ peo{"gammalpersisk (ca. 600-400 f. kr.)"}
+ phi{"filippinsk språk (anna)"}
+ phn{"fønikisk"}
+ pi{"pali"}
+ pl{"polsk"}
+ pon{"ponapisk"}
+ pra{"prakrit-språk"}
+ pro{"gammalprovençalsk"}
+ ps{"pashto"}
+ pt{"portugisisk"}
+ qu{"quechua"}
+ raj{"rajasthani"}
+ rap{"rapanui"}
+ rar{"rarotongansk"}
+ rm{"retoromansk"}
+ rn{"rundi"}
+ ro{"rumensk"}
+ roa{"romansk språk (anna)"}
+ rom{"romani"}
+ root{"rot"}
+ ru{"russisk"}
+ rup{"aromansk"}
+ rw{"kinjarwanda"}
+ sa{"sanskrit"}
+ sad{"sandawe"}
+ sah{"jakutsk"}
+ sai{"søramerikansk indiansk språk (anna)"}
+ sal{"salishansk språk"}
+ sam{"samaritansk arameisk"}
+ sas{"sasak"}
+ sat{"santali"}
+ sc{"sardinsk"}
+ scn{"siciliansk"}
+ sco{"skotsk"}
+ sd{"sindhi"}
+ se{"nordsamisk"}
+ sel{"selkupisk"}
+ sem{"semittisk språk (anna)"}
+ sg{"sango"}
+ sga{"gammalirsk (til 900)"}
+ sgn{"teiknspråk"}
+ shn{"shan"}
+ si{"singalesisk"}
+ sid{"sidamo"}
+ sio{"sioux-språk"}
+ sit{"sino-tibetansk språk (anna)"}
+ sk{"slovakisk"}
+ sl{"slovensk"}
+ sla{"slavisk språk (anna)"}
+ sm{"samoansk"}
+ sma{"sørsamisk"}
+ smi{"samisk språk (anna)"}
+ smj{"lulesamisk"}
+ smn{"enaresamisk"}
+ sms{"skoltesamisk"}
+ sn{"shona"}
+ snk{"soninke"}
+ so{"somali"}
+ sog{"sogdisk"}
+ son{"songhai"}
+ sq{"albansk"}
+ sr{"serbisk"}
+ srn{"sranan tongo"}
+ srr{"serer"}
+ ss{"swati"}
+ ssa{"nilo-saharaspråk (anna)"}
+ st{"sørsotho"}
+ su{"sundanesisk"}
+ suk{"sukuma"}
+ sus{"susu"}
+ sux{"sumerisk"}
+ sv{"svensk"}
+ sw{"swahili"}
+ syr{"syrisk"}
+ ta{"tamil"}
+ tai{"taispråk (anna)"}
+ te{"telugu"}
+ tem{"temne"}
+ ter{"tereno"}
+ tet{"tetum"}
+ tg{"tatsjikisk"}
+ th{"thai"}
+ ti{"tigrinja"}
+ tig{"tigré"}
+ tiv{"tivi"}
+ tk{"turkmensk"}
+ tkl{"tokelau"}
+ tl{"tagalog"}
+ tlh{"klingon"}
+ tli{"tlingit"}
+ tmh{"tamasjek"}
+ tn{"tswana"}
+ to{"tonga (Tonga-øyane)"}
+ tog{"tonga (Nyasa)"}
+ tpi{"tok pisin"}
+ tr{"tyrkisk"}
+ ts{"tsonga"}
+ tsi{"tsimshian"}
+ tt{"tatarisk"}
+ tum{"tumbuka"}
+ tup{"tupi-språk"}
+ tut{"altaisk (anna)"}
+ tvl{"tuvalu"}
+ tw{"twi"}
+ ty{"tahitisk"}
+ tyv{"tuvinisk"}
+ udm{"udmurt"}
+ ug{"uigurisk"}
+ uga{"ugaritisk"}
+ uk{"ukrainsk"}
+ umb{"umbundu"}
+ und{"ikkje bestemt"}
+ ur{"urdu"}
+ uz{"usbekisk"}
+ vai{"vai"}
+ ve{"venda"}
+ vi{"vietnamesisk"}
+ vo{"volapyk"}
+ vot{"votisk"}
+ wa{"vallonsk"}
+ wak{"wakasjansk språk"}
+ wal{"walamo"}
+ war{"waray"}
+ was{"washo"}
+ wen{"sorbisk språk"}
+ wo{"wolof"}
+ xal{"kalmyk"}
+ xh{"xhosa"}
+ yao{"yao"}
+ yap{"yapesisk"}
+ yi{"jiddisk"}
+ yo{"joruba"}
+ ypk{"jupisk språk"}
+ za{"zhuang"}
+ zap{"zapotec"}
+ zen{"zenaga"}
+ zh{"kinesisk"}
+ znd{"zande"}
+ zu{"zulu"}
+ zun{"zuni"}
+ zxx{"utan språkleg innhald"}
}
LocaleScript{
"Latn",
@@ -288,16 +796,150 @@ nn{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.41"}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0 %",
+ "#E0",
+ }
+ Scripts{
+ Arab{"arabisk"}
+ Armn{"armensk"}
+ Bali{"balinesisk"}
+ Batk{"batak"}
+ Beng{"bengali"}
+ Blis{"blissymbol"}
+ Bopo{"bopomofo"}
+ Brah{"brahmi"}
+ Brai{"braille"}
+ Bugi{"buginesisk"}
+ Buhd{"buhid"}
+ Cans{"felles kanadiske urspråksstavingar"}
+ Cham{"cham"}
+ Cher{"cherokee"}
+ Cirt{"cirth"}
+ Copt{"koptisk"}
+ Cprt{"kypriotisk"}
+ Cyrl{"kyrillisk"}
+ Cyrs{"kyrillisk (kyrkjeslavisk variant)"}
+ Deva{"devanagari"}
+ Dsrt{"deseret"}
+ Egyd{"egyptisk demotisk"}
+ Egyh{"egyptisk hieratisk"}
+ Egyp{"egyptiske hieroglyfar"}
+ Ethi{"etiopisk"}
+ Geok{"khutsuri (asomtavruli og nuskhuri)"}
+ Geor{"georgisk"}
+ Glag{"glagolittisk"}
+ Goth{"gotisk"}
+ Grek{"gresk"}
+ Gujr{"gujarati"}
+ Guru{"gurmukhi"}
+ Hang{"hangul"}
+ Hani{"han"}
+ Hano{"hanunoo"}
+ Hans{"forenkla han"}
+ Hant{"tradisjonell han"}
+ Hebr{"hebraisk"}
+ Hira{"hiragana"}
+ Hmng{"pahawk hmong"}
+ Hrkt{"katakana eller hiragana"}
+ Hung{"gammalungarsk"}
+ Inds{"indus (Harappan)"}
+ Ital{"gammalitalisk"}
+ Java{"javanesisk"}
+ Kali{"kayah li"}
+ Kana{"katakana"}
+ Khar{"kharoshthi"}
+ Khmr{"khmer"}
+ Knda{"kannada"}
+ Laoo{"laotisk"}
+ Latf{"latinsk (frakturvariant)"}
+ Latg{"latinsk (gælisk variant)"}
+ Latn{"latinsk"}
+ Lepc{"lepcha (róng)"}
+ Limb{"lumbu"}
+ Lina{"lineær A"}
+ Linb{"lineær B"}
+ Mand{"mandaisk"}
+ Maya{"maya-hieroglyfar"}
+ Mero{"meroitisk"}
+ Mlym{"malayalam"}
+ Mong{"mongolsk"}
+ Mymr{"myanmar"}
+ Nkoo{"n'ko"}
+ Ogam{"ogham"}
+ Orkh{"orkhon"}
+ Orya{"oriya"}
+ Osma{"osmanya"}
+ Perm{"gammalpermisk"}
+ Phag{"phags-pa"}
+ Phnx{"fønikisk"}
+ Plrd{"pollard-fonetisk"}
+ Qaai{"nedarva"}
+ Roro{"rongorongo"}
+ Runr{"runer"}
+ Sara{"sarati"}
+ Shaw{"shavisk"}
+ Sinh{"sinhala"}
+ Sylo{"syloti nagri"}
+ Syrc{"syriakisk"}
+ Syre{"syriakisk (estrangelo-variant)"}
+ Syrj{"syriakisk (vestleg variant)"}
+ Syrn{"syriakisk (austleg variant)"}
+ Tagb{"tagbanwa"}
+ Tale{"tai le"}
+ Talu{"ny tai lue"}
+ Taml{"tamilsk"}
+ Telu{"telugu"}
+ Teng{"tengwar"}
+ Tfng{"tifinagh (berber)"}
+ Tglg{"tagalog"}
+ Thaa{"thaana"}
+ Thai{"thai"}
+ Tibt{"tibetansk"}
+ Ugar{"ugaritisk"}
+ Vaii{"vai"}
+ Visp{"synleg tale"}
+ Xpeo{"gammalpersisk"}
+ Xsux{"sumero-akkadisk kileskrift"}
+ Yiii{"yi"}
+ Zxxx{"kode for språk utan skrift"}
+ Zyyy{"felles"}
+ Zzzz{"kode for ukoda skrift"}
+ }
+ Types{
+ calendar{
+ buddhist{"buddhistisk kalender"}
+ chinese{"kinesisk kalender"}
+ gregorian{"gregoriansk kalender"}
+ hebrew{"hebraisk kalender"}
+ islamic{"islamsk kalender"}
+ islamic-civil{"islamsk sivil kalender"}
+ japanese{"japansk kalender"}
+ }
+ collation{
+ big5han{"tradisjonell kinesisk (Big5)"}
+ direct{"direkte sortering"}
+ gb2312han{"forenkla kinesisk"}
+ phonebook{"telefonkatalogsortering"}
+ pinyin{"pinyin-sortering"}
+ stroke{"streksortering"}
+ traditional{"tradisjonell sortering"}
+ }
+ }
+ Variants{
+ 1901{"tradisjonell tysk ortografi"}
+ 1996{"tysk ortografi frå 1996"}
+ POLYTONI{"polytonisk"}
+ REVISED{"revidert ortografi"}
+ }
+ Version{"1.60"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"'kl. 'HH.mm.ss z",
"HH.mm.ss z",
@@ -330,6 +972,17 @@ nn{
"laurdag",
}
}
+ stand-alone{
+ narrow{
+ "S",
+ "M",
+ "T",
+ "O",
+ "T",
+ "F",
+ "L",
+ }
+ }
}
eras{
abbreviated{
@@ -337,6 +990,41 @@ nn{
"e.Kr.",
}
}
+ fields{
+ day{
+ dn{"dag"}
+ }
+ dayperiod{
+ dn{"f.m./e.m.-val"}
+ }
+ era{
+ dn{"æra"}
+ }
+ hour{
+ dn{"time"}
+ }
+ minute{
+ dn{"minutt"}
+ }
+ month{
+ dn{"månad"}
+ }
+ second{
+ dn{"sekund"}
+ }
+ week{
+ dn{"veke"}
+ }
+ weekday{
+ dn{"vekedag"}
+ }
+ year{
+ dn{"Ã¥r"}
+ }
+ zone{
+ dn{"sone"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -368,7 +1056,70 @@ nn{
"desember",
}
}
+ stand-alone{
+ narrow{
+ "J",
+ "F",
+ "M",
+ "A",
+ "M",
+ "J",
+ "J",
+ "A",
+ "S",
+ "O",
+ "N",
+ "D",
+ }
+ }
+ }
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1. kvartal",
+ "2. kvartal",
+ "3. kvartal",
+ "4. kvartal",
+ }
+ }
}
}
}
+ measurementSystemNames{
+ US{"amerikansk"}
+ metric{"metrisk"}
+ }
+ zoneStrings{
+ "America:Godthab"{
+ ec{"Godthåb"}
+ }
+ "America:Mexico_City"{
+ ec{"Mexico by"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Sørpolen"}
+ }
+ "Asia:Tashkent"{
+ ec{"Tasjkent"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulan Bator"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisboa"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Pacific:Easter"{
+ ec{"Påskeøya"}
+ }
+ hourFormat{"+HH.mm;-HH.mm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/nn_NO.txt b/Build/source/libs/icu-xetex/data/locales/nn_NO.txt
index 29b2e4dd063..6969a3a275f 100644
--- a/Build/source/libs/icu-xetex/data/locales/nn_NO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/nn_NO.txt
@@ -1,17 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/nn_NO.xml
+// * Source File:<path>/common/main/nn_NO.xml
// *
// ***************************************************************************
nn_NO{
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
- "#,##0%",
+ "#,##0 %",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/no.txt b/Build/source/libs/icu-xetex/data/locales/no.txt
index 1295b041f17..5c9ef745f92 100644
--- a/Build/source/libs/icu-xetex/data/locales/no.txt
+++ b/Build/source/libs/icu-xetex/data/locales/no.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
no{
diff --git a/Build/source/libs/icu-xetex/data/locales/no_NO.txt b/Build/source/libs/icu-xetex/data/locales/no_NO.txt
index e3887e376a7..c934eb7c385 100644
--- a/Build/source/libs/icu-xetex/data/locales/no_NO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/no_NO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
no_NO{
diff --git a/Build/source/libs/icu-xetex/data/locales/no_NO_NY.txt b/Build/source/libs/icu-xetex/data/locales/no_NO_NY.txt
index 954a885e00c..b0c7c5d8515 100644
--- a/Build/source/libs/icu-xetex/data/locales/no_NO_NY.txt
+++ b/Build/source/libs/icu-xetex/data/locales/no_NO_NY.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
no_NO_NY{
diff --git a/Build/source/libs/icu-xetex/data/locales/om.txt b/Build/source/libs/icu-xetex/data/locales/om.txt
index 54c31123469..2d4427dc64c 100644
--- a/Build/source/libs/icu-xetex/data/locales/om.txt
+++ b/Build/source/libs/icu-xetex/data/locales/om.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/om.xml
+// * Source File:<path>/common/main/om.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/om.xml
+ * ICU <specials> source: <path>/xml/main/om.xml
*/
om{
Countries{
@@ -15,30 +15,10 @@ om{
KE{"Keeniyaa"}
}
Currencies{
- EUR{
- "€",
- "EUR",
- }
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
- JPY{
- "Â¥",
- "JPY",
- }
KES{
"Ksh",
"KES",
}
- USD{
- "$",
- "USD",
- }
}
ExemplarCharacters{"[a-z]"}
Languages{
@@ -47,13 +27,9 @@ om{
LocaleScript{
"Latn",
}
- Version{"1.29"}
+ Version{"1.40"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 7,
- 1,
- }
dayNames{
format{
abbreviated{
@@ -75,6 +51,17 @@ om{
"Sanbata",
}
}
+ stand-alone{
+ narrow{
+ "S",
+ "M",
+ "T",
+ "W",
+ "T",
+ "F",
+ "S",
+ }
+ }
}
eras{
abbreviated{
@@ -113,6 +100,22 @@ om{
"Muddee",
}
}
+ stand-alone{
+ narrow{
+ "J",
+ "F",
+ "M",
+ "A",
+ "M",
+ "J",
+ "J",
+ "A",
+ "S",
+ "O",
+ "N",
+ "D",
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/om_ET.txt b/Build/source/libs/icu-xetex/data/locales/om_ET.txt
index 34ad28cd325..063793eeef3 100644
--- a/Build/source/libs/icu-xetex/data/locales/om_ET.txt
+++ b/Build/source/libs/icu-xetex/data/locales/om_ET.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/om_ET.xml
+// * Source File:<path>/common/main/om_ET.xml
// *
// ***************************************************************************
om_ET{
Currencies{
ETB{
"$",
- "ETB",
+ "Itoophiyaa Birrii",
}
USD{
"US$",
@@ -23,13 +23,17 @@ om_ET{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
calendar{
gregorian{
AmPmMarkers{
"WD",
"WB",
}
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/om_KE.txt b/Build/source/libs/icu-xetex/data/locales/om_KE.txt
index 3b5eddd9325..d83928f64df 100644
--- a/Build/source/libs/icu-xetex/data/locales/om_KE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/om_KE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/om_KE.xml
+// * Source File:<path>/common/main/om_KE.xml
// *
// ***************************************************************************
om_KE{
@@ -13,13 +13,17 @@ om_KE{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
AmPmMarkers{
"WD",
"WB",
}
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/or.txt b/Build/source/libs/icu-xetex/data/locales/or.txt
index 1a3a54acbd3..fc3b8edfe0f 100644
--- a/Build/source/libs/icu-xetex/data/locales/or.txt
+++ b/Build/source/libs/icu-xetex/data/locales/or.txt
@@ -1,21 +1,22 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/or.xml
+// * Source File:<path>/common/main/or.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/or.xml
+ * ICU <specials> source: <path>/xml/main/or.xml
*/
or{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
IN{"ଭାରତ"}
}
- ExemplarCharacters{"[à¬à¬‚ଃଅଆଇଈଉଊଋଌà¬à¬à¬“ଔକଖଗଘଙଚଛଜà¬à¬žà¬Ÿà¬ à¬¡à¬¢à¬£à¬¤à¬¥à¬¦à¬§à¬¨à¬ªà¬«à¬¬à¬­à¬®à¬¯à¬°à¬²à¬³à¬µà¬¶à¬·à¬¸à¬¹à¬¼à¬½à¬¾à¬¿à­€à­à­‚ୃେୈୋୌà­à­–à­—à­œà­à­Ÿà­ à­¡à­°à­±]"}
+ ExemplarCharacters{"[ଅ-ଋ ଠଠଓ-ନ ପ-ର ଲ ଳ ଶ-ହ ୟ ୱ ଵ ଂ ଃ ଠୠ଼ ା-ୃ େ ୈ ୋ ୌ]"}
Languages{
- or{"ଓଡ଼ିଆ"}
+ or{"ଓଡ଼ିଆ"}
}
LocaleScript{
"Orya",
@@ -31,10 +32,10 @@ or{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.13"}
+ Version{"1.27"}
calendar{
gregorian{
dayNames{
diff --git a/Build/source/libs/icu-xetex/data/locales/or_IN.txt b/Build/source/libs/icu-xetex/data/locales/or_IN.txt
index a49557f32c7..b4c14bd2b09 100644
--- a/Build/source/libs/icu-xetex/data/locales/or_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/or_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/or_IN.xml
+// * Source File:<path>/common/main/or_IN.xml
// *
// ***************************************************************************
or_IN{
@@ -13,13 +13,9 @@ or_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.17"}
+ Version{"1.29"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
@@ -31,6 +27,12 @@ or_IN{
"dd-MM-yy",
"{1} {0}",
}
+ availableFormats{
+ MMMMd{"d MMMM"}
+ MMdd{"dd-MM"}
+ yyyyMM{"MM-yyyy"}
+ yyyyMMMM{"MMMM yyyy"}
+ }
weekend:intvector{
1,
0,
diff --git a/Build/source/libs/icu-xetex/data/locales/pa.txt b/Build/source/libs/icu-xetex/data/locales/pa.txt
index 045aade11be..61ba1f14074 100644
--- a/Build/source/libs/icu-xetex/data/locales/pa.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pa.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pa.xml
+// * Source File:<path>/common/main/pa.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/pa.xml
+ * ICU <specials> source: <path>/xml/main/pa.xml
*/
pa{
+ AuxExemplarCharacters{"[\u200C \u200D à¨-ਃ {ਲ਼}]"}
Countries{
IN{"ਭਾਰਤ"}
}
@@ -19,7 +20,10 @@ pa{
"ਰà©à¨ªà¨¿à¨¯",
}
}
- ExemplarCharacters{"[à¨-ਃਅ-ਊà¨à¨à¨“-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-à©à©™-ੜਫ਼੦-ੴ‌â€]"}
+ ExemplarCharacters{
+ "[਼ à©° ੱ ੦-੯ à©´ ੳ ਉ ਊ ਓ ਅ ਆ ਠਔ ੲ ਇ ਈ ਠਸ {ਸ਼} ਹ ਕ ਖ {ਖ਼} ਗ {ਗ਼} ਘ-ਜ {ਜ਼} à¨-ਨ ਪ"
+ " ਫ {ਫ਼} ਬ-ਰ ਲ ਵ à©œ ਾ-à©‚ ੇ ੈ à©‹-à©]"
+ }
Languages{
pa{"ਪੰਜਾਬੀ"}
}
@@ -37,7 +41,7 @@ pa{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -46,12 +50,12 @@ pa{
"#,##,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.45"}
calendar{
gregorian{
AmPmMarkers{
"ਸਵੇਰੇ",
- "ਸ਼ਾਮ",
+ "ਸ਼ਾਮ",
}
dayNames{
format{
@@ -61,8 +65,8 @@ pa{
"ਮੰਗਲ.",
"ਬà©à¨§.",
"ਵੀਰ.",
- "ਸ਼à©à¨•à¨°.",
- "ਸ਼ਨੀ.",
+ "ਸ਼à©à¨•à¨°.",
+ "ਸ਼ਨੀ.",
}
wide{
"à¨à¨¤à¨µà¨¾à¨°",
@@ -70,16 +74,42 @@ pa{
"ਮੰਗਲਵਾਰ",
"ਬà©à¨§à¨µà¨¾à¨°",
"ਵੀਰਵਾਰ",
- "ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°",
- "ਸ਼ਨੀਚਰਵਾਰ",
+ "ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°",
+ "ਸ਼ਨੀਚਰਵਾਰ",
}
}
}
+ fields{
+ day{
+ dn{"ਦਿਨ"}
+ }
+ hour{
+ dn{"ਘੰਟਾ"}
+ }
+ minute{
+ dn{"ਮਿੰਟ"}
+ }
+ month{
+ dn{"ਮਹੀਨਾ"}
+ }
+ week{
+ dn{"ਹਫ਼ਤਾ"}
+ }
+ weekday{
+ dn{"ਹਫ਼ਤੇ ਦਾ ਦਿਨ"}
+ }
+ year{
+ dn{"ਸਾਲ"}
+ }
+ zone{
+ dn{"ਖੇਤਰ"}
+ }
+ }
monthNames{
format{
abbreviated{
"ਜਨਵਰੀ",
- "ਫ਼ਰਵਰੀ",
+ "ਫ਼ਰਵਰੀ",
"ਮਾਰਚ",
"ਅਪà©à¨°à©ˆà¨²",
"ਮਈ",
@@ -93,7 +123,7 @@ pa{
}
wide{
"ਜਨਵਰੀ",
- "ਫ਼ਰਵਰੀ",
+ "ਫ਼ਰਵਰੀ",
"ਮਾਰਚ",
"ਅਪà©à¨°à©ˆà¨²",
"ਮਈ",
@@ -107,6 +137,16 @@ pa{
}
}
}
+ quarters{
+ format{
+ wide{
+ "ਪਹਿਲਾਂ ਚੌਥਾਈ",
+ "ਦੂਜਾ ਚੌਥਾਈ",
+ "ਤੀਜਾ ਚੌਥਾਈ",
+ "ਚੌਥਾ ਚੌਥਾਈ",
+ }
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/pa_IN.txt b/Build/source/libs/icu-xetex/data/locales/pa_IN.txt
index 95962d4de4b..32086c4a1c8 100644
--- a/Build/source/libs/icu-xetex/data/locales/pa_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pa_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pa_IN.xml
+// * Source File:<path>/common/main/pa_IN.xml
// *
// ***************************************************************************
pa_IN{
@@ -13,13 +13,9 @@ pa_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.39"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"hh:mm:ss a z",
"hh:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/pl.txt b/Build/source/libs/icu-xetex/data/locales/pl.txt
index 7c68fe14f08..b71ab92d778 100644
--- a/Build/source/libs/icu-xetex/data/locales/pl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pl.txt
@@ -1,16 +1,43 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pl.xml
+// * Source File:<path>/common/main/pl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/pl.xml
+ * ICU <specials> source: <path>/xml/main/pl.xml
*/
pl{
+ AuxExemplarCharacters{"[q v x]"}
Countries{
+ 001{"Åšwiat"}
+ 002{"Afryka"}
+ 005{"Ameryka Południowa"}
+ 009{"Oceania"}
+ 011{"Afryka Zachodnia"}
+ 013{"Ameryka Åšrodkowa"}
+ 014{"Afryka Wschodnia"}
+ 015{"Afryka Północna"}
+ 017{"Afryka Åšrodkowa"}
+ 019{"Ameryka"}
+ 021{"Ameryka Północna"}
+ 030{"Azja Wschodnia"}
+ 035{"Azja Południowo-Wschodnia"}
+ 039{"Europa Południowa"}
+ 053{"Australia i Nowa Zelandia"}
+ 054{"Melanezja"}
+ 057{"Mikronezja"}
+ 061{"Polinezja"}
+ 142{"Azja"}
+ 145{"Azja Zachodnia"}
+ 150{"Europa"}
+ 151{"Europa Wschodnia"}
+ 154{"Europa Północna"}
+ 155{"Europa Zachodnia"}
+ 830{"Wyspy Normandzkie"}
+ 833{"Wyspa Man"}
AD{"Andora"}
AE{"Zjednoczone Emiraty Arabskie"}
AF{"Afganistan"}
@@ -26,6 +53,7 @@ pl{
AT{"Austria"}
AU{"Australia"}
AW{"Aruba"}
+ AX{"Wyspy Alandzkie"}
AZ{"Azerbejdżan"}
BA{"Bośnia i Hercegowina"}
BB{"Barbados"}
@@ -59,6 +87,7 @@ pl{
CN{"Chiny"}
CO{"Kolumbia"}
CR{"Kostaryka"}
+ CS{"Serbia i Czarnogóra"}
CU{"Kuba"}
CV{"Wyspy Zielonego PrzylÄ…dka"}
CX{"Wyspa Bożego Narodzenia"}
@@ -190,6 +219,7 @@ pl{
PW{"Palau"}
PY{"Paragwaj"}
QA{"Katar"}
+ QO{"Oceania inne"}
RE{"Reunion"}
RO{"Rumunia"}
RU{"Federacja Rosyjska"}
@@ -351,6 +381,14 @@ pl{
"BEL",
"frank belgijski (finansowy)",
}
+ BGL{
+ "lev",
+ "lew bułgarski",
+ }
+ BGN{
+ "BGN",
+ "nowy lew bułgarski",
+ }
BHD{
"BD",
"dinar bahrański",
@@ -395,10 +433,6 @@ pl{
"R$",
"real brazylijski",
}
- BRN{
- "BRN",
- "cruzado brazylijskie",
- }
BRR{
"BRR",
"cruzeiro brazylijskie",
@@ -1043,6 +1077,10 @@ pl{
"TL",
"lir turecki",
}
+ TRY{
+ "TRY",
+ "nowa lira turecka",
+ }
TTD{
"TT$",
"dolar Trynidadu i Tobago",
@@ -1143,10 +1181,6 @@ pl{
"YRl",
"rial jemeński",
}
- YUD{
- "YUD",
- "dinar jugosławiański wymienny",
- }
YUM{
"YUM",
"nowy dinar jugosławiański",
@@ -1180,7 +1214,7 @@ pl{
"dolar Zimbabwe",
}
}
- ExemplarCharacters{"[a-z ó ą ę ć ń ś ź ł ż]"}
+ ExemplarCharacters{"[a ą b c ć d e ę f-l ł m n ń o ó p r s ś t u w-z ź ż]"}
Keys{
calendar{"Kalendarz"}
collation{"Sortowanie"}
@@ -1189,16 +1223,21 @@ pl{
Languages{
ar{"arabski"}
bg{"bułgarski"}
+ bn{"bengalski"}
+ ca{"kataloński"}
cs{"czeski"}
+ cy{"walijski"}
da{"duński"}
de{"niemiecki"}
el{"grecki"}
en{"angielski"}
es{"hiszpański"}
et{"estoński"}
+ eu{"baskijski"}
fi{"fiński"}
fr{"francuski"}
he{"hebrajski"}
+ hi{"hindi"}
hr{"chorwacki"}
hu{"węgierski"}
it{"włoski"}
@@ -1206,7 +1245,8 @@ pl{
ko{"koreański"}
lt{"litewski"}
lv{"Å‚otewski"}
- nl{"holenderski"}
+ mt{"maltański"}
+ nl{"niderlandzki"}
no{"norweski"}
pl{"polski"}
pt{"portugalski"}
@@ -1215,6 +1255,7 @@ pl{
sk{"słowacki"}
sl{"słoweński"}
sv{"szwedzki"}
+ th{"tajski"}
tr{"turecki"}
zh{"chiński"}
}
@@ -1232,7 +1273,7 @@ pl{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1284,6 +1325,8 @@ pl{
chinese{"Kalendarz chiński"}
gregorian{"Kalendarz gregoriański"}
hebrew{"Kalendarz żydowski"}
+ islamic{"Kalendarz muzułmański"}
+ islamic-civil{"Kalendarz muzułmański cywilny"}
japanese{"Kalendarz japoński"}
}
collation{
@@ -1294,13 +1337,9 @@ pl{
traditional{"tradycyjny"}
}
}
- Version{"1.51"}
+ Version{"1.71"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -1315,13 +1354,13 @@ pl{
dayNames{
format{
abbreviated{
- "N",
- "Pn",
- "Wt",
- "Åšr",
- "Cz",
- "Pt",
- "So",
+ "niedz.",
+ "pon.",
+ "wt.",
+ "śr.",
+ "czw.",
+ "pt.",
+ "sob.",
}
wide{
"niedziela",
@@ -1441,6 +1480,177 @@ pl{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "I kwartał",
+ "II kwartał",
+ "III kwartał",
+ "IV kwartał",
+ }
+ }
+ }
+ }
+ }
+ zoneStrings{
+ "Africa:Kinshasa"{
+ ec{"Kinszasa"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Lubumbaszi"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comodoro Rivadavia"}
+ }
+ "America:Mexico_City"{
+ ec{"Meksyk"}
+ }
+ "America:New_York"{
+ ec{"Nowy Jork"}
+ }
+ "America:St_Johns"{
+ ec{"St. John's"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:Mawson"{
+ ec{"Wybrzeże Mawsona"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"Mc Murdo"}
+ }
+ "Antarctica:Palmer"{
+ ec{"Archipelag Palmera"}
+ }
+ "Antarctica:Rothera"{
+ ec{"Stacja Naukowa Rothera"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Biegun południowy"}
+ }
+ "Antarctica:Syowa"{
+ ec{"Stacja Syowa"}
+ }
+ "Antarctica:Vostok"{
+ ec{"Wostok"}
+ }
+ "Asia:Almaty"{
+ ec{"AÅ‚ma Ata"}
+ }
+ "Asia:Aqtau"{
+ ec{"Aktau"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Aktiubińsk"}
+ }
+ "Asia:Choibalsan"{
+ ec{"Czojbalsan"}
+ }
+ "Asia:Chongqing"{
+ ec{"Czunking"}
+ }
+ "Asia:Hovd"{
+ ec{"Howd"}
+ }
+ "Asia:Irkutsk"{
+ ec{"Irkuck"}
+ }
+ "Asia:Jakarta"{
+ ec{"Dżakarta"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamczatka"}
+ }
+ "Asia:Kashgar"{
+ ec{"Kaszgar"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Kuching"{
+ ec{"Kuczing"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"Nowosybirsk"}
+ }
+ "Asia:Oral"{
+ ec{"Uralsk"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Kyzył Orda"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sachalin"}
+ }
+ "Asia:Samarkand"{
+ ec{"Samarkanda"}
+ }
+ "Asia:Shanghai"{
+ ec{"Szanghaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taszkient"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"UÅ‚an Bator"}
+ }
+ "Asia:Urumqi"{
+ ec{"Urumczi"}
+ }
+ "Asia:Vladivostok"{
+ ec{"WÅ‚adywostok"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakuck"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekaterynburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azory"}
+ }
+ "Atlantic:Canary"{
+ ec{"Wyspy Kanaryjskie"}
+ }
+ "Atlantic:Madeira"{
+ ec{"Madera"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"Wyspa Lord Howe"}
+ }
+ "Europe:Kiev"{
+ ec{"Kijów"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lizbona"}
+ }
+ "Europe:London"{
+ ec{"Londyn"}
+ }
+ "Europe:Madrid"{
+ ec{"Madryt"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskwa"}
+ }
+ "Europe:Simferopol"{
+ ec{"Symferopol"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Użgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporoże"}
+ }
+ "Pacific:Easter"{
+ ec{"Wyspy Wielkanocne"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/pl_PL.txt b/Build/source/libs/icu-xetex/data/locales/pl_PL.txt
index 21304e71e75..0584b4fce4a 100644
--- a/Build/source/libs/icu-xetex/data/locales/pl_PL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pl_PL.txt
@@ -1,17 +1,504 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pl_PL.xml
+// * Source File:<path>/common/main/pl_PL.xml
// *
// ***************************************************************************
pl_PL{
+ Countries{
+ 001{"świat"}
+ 034{"Azja Południowa"}
+ 143{"Azja Åšrodkowa"}
+ 172{"Wspólnota Niezależnych Państw"}
+ 419{"Ameryka ÅaciÅ„ska i Karaiby"}
+ LA{"Laos"}
+ LY{"Libia"}
+ MD{"Mołdawia"}
+ MK{"Macedonia"}
+ MP{"Mariany Północne"}
+ PM{"Saint-Pierre i Miquelon"}
+ PR{"Portoryko"}
+ SH{"Święta Helena"}
+ TF{"Francuskie Terytoria Południowe i Antarktyczne"}
+ UM{"Dalekie Wyspy Mniejsze Stanów Zjednoczonych"}
+ VA{"Watykan"}
+ VC{"Saint Vincent i Grenadyny"}
+ VI{"Wyspy Dziewicze Stanów Zjednoczonych"}
+ ZA{"Republika Południowej Afryki"}
+ }
+ Currencies{
+ BRE{
+ "BRE",
+ "cruzeiro brazylijskie (1990-1993)",
+ }
+ BRN{
+ "BRN",
+ "nowe cruzado brazylijskie",
+ }
+ BTN{
+ "Nu",
+ "ngultrum Bhutanu",
+ }
+ ESA{
+ "ESA",
+ "peseta hiszpańska (Konto A)",
+ }
+ ESB{
+ "ESB",
+ "peseta hiszpańska (konto wymienne)",
+ }
+ GEK{
+ "GEK",
+ "kupon gruziński larit",
+ }
+ }
+ Languages{
+ aa{"afar"}
+ ab{"abchaski"}
+ ach{"aczoli"}
+ ady{"adygejski"}
+ ae{"awestyjski"}
+ af{"afrikaans"}
+ afa{"afro-azjatycki (inne)"}
+ ain{"ajnu"}
+ ak{"akan"}
+ akk{"akadyjski"}
+ ale{"aleucki"}
+ alg{"języki algonkin"}
+ am{"amharski"}
+ an{"aragoński"}
+ ang{"staroangielski (450-1100)"}
+ apa{"języki Apaczów"}
+ arc{"aramejski"}
+ art{"sztuczny (inne)"}
+ arw{"arawak"}
+ as{"asamski"}
+ ast{"asturyjski"}
+ ath{"języki Atapasków"}
+ aus{"języki australijskie"}
+ av{"awarski"}
+ awa{"awadhi"}
+ ay{"ajmara"}
+ az{"azerski"}
+ ba{"baszkirski"}
+ bal{"beludżi"}
+ ban{"balijski"}
+ bat{"bałtycki (inne)"}
+ be{"białoruski"}
+ bej{"bedża"}
+ bem{"bemba"}
+ ber{"berberski"}
+ bh{"biharski"}
+ bho{"bhodźpuri"}
+ bi{"bislama"}
+ bik{"bikol"}
+ bm{"bambara"}
+ bnt{"bantu"}
+ bo{"tybetański"}
+ br{"bretoński"}
+ bra{"bradź"}
+ bs{"bośniacki"}
+ btk{"batak"}
+ bua{"buriacki"}
+ cad{"kaddo"}
+ cai{"język Indian środkowoamerykańskich (inne)"}
+ car{"karibi"}
+ cau{"kaukaski (inne)"}
+ ce{"czeczeński"}
+ cel{"celtycki (inne)"}
+ ch{"chamorro"}
+ chb{"czibcza"}
+ chg{"czagatajski"}
+ chk{"truk"}
+ chm{"maryjski"}
+ chn{"żargon Chinook"}
+ chy{"język Czejenów"}
+ cmc{"czam"}
+ co{"korsykański"}
+ cop{"koptyjski"}
+ cpe{"kreolski i pidżynowy, angielskie (inne)"}
+ cpf{"kreolski i pidżynowy, francuskie (inne)"}
+ cpp{"kreolski i pidżynowy, portugalskie (inne)"}
+ cr{"kri"}
+ crh{"karaimski turecki; karaimski tatarski"}
+ crp{"kreolski i pidżynowy (inne)"}
+ csb{"kaszubski"}
+ cu{"staro-cerkiewno-słowiański"}
+ cus{"kuszycki (inne)"}
+ cv{"czuwaski"}
+ dar{"dargwijski"}
+ day{"dajak"}
+ dgr{"dogrib"}
+ din{"dinka"}
+ doi{"dogri"}
+ dra{"drawidyjski (inne)"}
+ dsb{"dolnołużycki"}
+ dum{"niderlandzki, średniowiecze (ok. 1050-1350)"}
+ dv{"malediwski"}
+ dz{"dzongkha"}
+ ee{"ewe"}
+ efi{"efik"}
+ egy{"egipski (starożytny)"}
+ enm{"średnioangielski"}
+ eo{"esperanto"}
+ fa{"perski"}
+ fan{"fang"}
+ fat{"fanti"}
+ ff{"fulani"}
+ fiu{"ugrofiński (inne)"}
+ fj{"fidżijski"}
+ fo{"farerski"}
+ frm{"średniofrancuski"}
+ fro{"starofrancuski"}
+ fur{"friulijski"}
+ fy{"fryzyjski"}
+ ga{"irlandzki"}
+ gd{"szkocki gaelicki"}
+ gem{"germański (inne)"}
+ gez{"gyyz"}
+ gil{"gilbertański"}
+ gmh{"średnio-wysoko-niemiecki"}
+ gn{"guarani"}
+ goh{"staro-wysoko-niemiecki"}
+ gon{"gondi"}
+ got{"gocki"}
+ grb{"grebo"}
+ grc{"starogrecki"}
+ gu{"gudźaracki"}
+ gv{"manx"}
+ ha{"hausa"}
+ hai{"haida"}
+ haw{"hawajski"}
+ hit{"hetycki"}
+ ho{"hiri motu"}
+ hsb{"górnołużycki"}
+ hy{"ormiański"}
+ hz{"herero"}
+ ia{"interlingua"}
+ iba{"ibanag"}
+ id{"indonezyjski"}
+ ie{"interlingue"}
+ ig{"igbo"}
+ ii{"syczuański"}
+ ik{"inupiak"}
+ ilo{"ilokano"}
+ ine{"indoeuropejskie (pozostałe)"}
+ inh{"inguski"}
+ io{"ido"}
+ ira{"irański"}
+ is{"islandzki"}
+ iu{"inuktitut"}
+ jv{"jawajski"}
+ ka{"gruziński"}
+ kaa{"karakałpacki"}
+ kar{"kareński"}
+ kbd{"kabardyjski"}
+ kg{"kongo"}
+ kha{"khasi"}
+ khi{"khoisan (inne)"}
+ ki{"kikuju"}
+ kj{"kwanyama"}
+ kk{"kazaski"}
+ km{"khmerski"}
+ kn{"kannada"}
+ kok{"konkani"}
+ kos{"kosrae"}
+ kpe{"kpelle"}
+ kr{"kanuri"}
+ krc{"karaczajsko-bałkarski"}
+ kru{"kurukh"}
+ ks{"kaszmirski"}
+ ku{"kurdyjski"}
+ kum{"kumycki"}
+ kv{"komi"}
+ kw{"kornijski"}
+ ky{"kirgiski"}
+ la{"łaciński"}
+ lb{"luksemburski"}
+ lg{"ganda"}
+ li{"limburgijski"}
+ ln{"lingala"}
+ lo{"laotański"}
+ lu{"luba-katanga"}
+ lua{"luba-lulua"}
+ mad{"madurajski"}
+ map{"austronezyjski"}
+ mas{"masajski"}
+ mg{"malgaski"}
+ mga{"średnioirlandzki"}
+ mh{"marshall"}
+ mi{"maoryjski"}
+ mis{"języki różne"}
+ mk{"macedoński"}
+ mkh{"mon-khmer (pozostałe)"}
+ ml{"malajalam"}
+ mn{"mongolski"}
+ mo{"mołdawski"}
+ mr{"marathijski"}
+ ms{"malajski"}
+ mun{"języki mundajskie"}
+ my{"birmański"}
+ na{"nauru"}
+ nah{"nahuatl"}
+ nai{"języki Indian północnoamerykańskich (pozostałe)"}
+ nap{"neapolitański"}
+ nb{"norweski Bokmål"}
+ nd{"ndebele północny"}
+ nds{"dolnoniemiecki, dolnosaksoński"}
+ ne{"nepalski"}
+ new{"newarski"}
+ nic{"niger-kordofańskie (pozostałe)"}
+ niu{"niue"}
+ nn{"norweski Nynorsk"}
+ nr{"ndebele południowy"}
+ nso{"sotho północny"}
+ nub{"języki nubijskie"}
+ nv{"nawaho"}
+ nwc{"newarski klasyczny"}
+ ny{"njandża"}
+ oc{"oksytański (po 1500); prowansalski"}
+ oj{"odżibwa"}
+ om{"oromo"}
+ or{"orija"}
+ os{"osetyjski"}
+ ota{"osmańsko-turecki"}
+ oto{"języki Otomi"}
+ pa{"pendżabski"}
+ paa{"papuaski (inne)"}
+ pau{"palau"}
+ peo{"staroperski"}
+ phn{"fenicki"}
+ pi{"palijski"}
+ pra{"prakryty"}
+ pro{"staroprowansalski"}
+ ps{"paszto"}
+ qu{"keczua"}
+ raj{"radźasthani"}
+ rap{"rapanui"}
+ rar{"rarotonga"}
+ rm{"retoromański"}
+ rn{"rundi"}
+ roa{"romański (inne)"}
+ rom{"cygański"}
+ rup{"arumuński"}
+ rw{"kinya-ruanda"}
+ sa{"sanskryt"}
+ sah{"jakucki"}
+ sai{"języki Indian południowoamerykańskich (pozostałe)"}
+ sal{"języki salisz"}
+ sam{"samarytański aramejski"}
+ sas{"sasak"}
+ sat{"santali"}
+ sc{"sardyński"}
+ scn{"sycylijski"}
+ sco{"szkocki"}
+ sd{"sindhi"}
+ se{"lapoński północny"}
+ sem{"semickie (pozostałe)"}
+ sg{"sango"}
+ sga{"staroirlandzki"}
+ sgn{"migowy"}
+ si{"syngaleski"}
+ sid{"sidamo"}
+ sit{"chińsko-tybetańskie (pozostałe)"}
+ sla{"słowiańskie (pozostałe)"}
+ sm{"samoański"}
+ sma{"lapoński południowy"}
+ smi{"lapońskie (pozostałe)"}
+ smj{"lapoński Lule"}
+ smn{"lapoński Inari"}
+ sms{"lapoński Skolt"}
+ sn{"szona"}
+ so{"somali"}
+ sq{"albański"}
+ sr{"serbski"}
+ ss{"suazi"}
+ ssa{"nilo-saharyjskie (pozostałe)"}
+ st{"sotho południowy"}
+ su{"sundajski"}
+ suk{"sukuma"}
+ sux{"sumeryjski"}
+ sw{"suahili"}
+ syr{"syryjski"}
+ ta{"tamilski"}
+ tai{"taj (pozostałe)"}
+ te{"telugu"}
+ tet{"tetum"}
+ tg{"tadżycki"}
+ ti{"tigrinia"}
+ tig{"tigre"}
+ tk{"turkmeński"}
+ tkl{"tokelau"}
+ tl{"tagalski"}
+ tlh{"klingoński"}
+ tli{"tlingit"}
+ tmh{"tamaszek"}
+ tn{"tswana"}
+ to{"tonga (wyspy Tonga)"}
+ tog{"tonga (Niasa)"}
+ ts{"tsonga"}
+ tt{"tatarski"}
+ tup{"języki tupi"}
+ tut{"ałtajski (pozostałe)"}
+ tw{"twi"}
+ ty{"tahitański"}
+ tyv{"tuwiński"}
+ udm{"udmurcki"}
+ ug{"ujgurski"}
+ uga{"ugarycki"}
+ uk{"ukraiński"}
+ und{"nieokreślony"}
+ ur{"urdu"}
+ uz{"uzbecki"}
+ vai{"wai"}
+ ve{"venda"}
+ vi{"wietnamski"}
+ vo{"volapuk"}
+ vot{"wotiacki"}
+ wa{"waloński"}
+ wak{"języki wakasz"}
+ wen{"języki łużyckie"}
+ wo{"wolof"}
+ xal{"kałmucki"}
+ xh{"khosa"}
+ yap{"japski"}
+ yi{"jidysz"}
+ yo{"joruba"}
+ za{"czuang"}
+ zen{"zenaga"}
+ znd{"azande"}
+ zu{"zulu"}
+ zun{"zuni"}
+ }
NumberPatterns{
"#,##0.###",
"#,##0.00 ¤",
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Scripts{
+ Armn{"Ormiański"}
+ Batk{"Batak"}
+ Cher{"Irokeski"}
+ Cyrs{"Cyrylicki (odmiana staro-cerkiewno-słowiańska)"}
+ Deva{"Devanagari"}
+ Dsrt{"Deseret"}
+ Egyd{"Egipski demotyczny"}
+ Egyh{"Egipski hieratyczny"}
+ Egyp{"Hieroglify egipskie"}
+ Glag{"GÅ‚agolicki"}
+ Gujr{"Gudźaracki"}
+ Guru{"Gurmukhi"}
+ Hang{"Hangul"}
+ Hani{"Han"}
+ Hira{"Hiragana"}
+ Hmng{"Pahawh Hmong"}
+ Hrkt{"Katakana lub Hiragana"}
+ Hung{"Starowęgierski"}
+ Inds{"Indus (Harappan)"}
+ Kana{"Katakana"}
+ Khar{"Kharoshthi"}
+ Knda{"Kannada"}
+ Latg{"ÅaciÅ„ski (odmiana gaelicka)"}
+ Lepc{"Lepcha (Róng)"}
+ Lina{"Linearny A"}
+ Osma{"Osmanya"}
+ Perm{"Staropermski"}
+ Phnx{"Fenicki"}
+ Sara{"Sarati"}
+ Syrj{"Syryjski (odmiana zachodnia)"}
+ Syrn{"Syryjski (odmiana wschodnia)"}
+ Tfng{"Tifinagh (berberski)"}
+ Xpeo{"Staroperski"}
+ }
+ Types{
+ collation{
+ big5han{"Tradycyjny chiński (Big5)"}
+ gb2312han{"Uproszczony chiński (GB2312)"}
+ }
+ }
+ Variants{
+ 1901{"Tradycyjna ortografia niemiecka"}
+ 1996{"Ortografia niemiecka z 1996 r."}
+ }
+ Version{"1.40"}
+ calendar{
+ gregorian{
+ fields{
+ day{
+ dn{"Dzień"}
+ }
+ hour{
+ dn{"Godzina"}
+ }
+ minute{
+ dn{"Minuta"}
+ }
+ month{
+ dn{"MiesiÄ…c"}
+ }
+ second{
+ dn{"Sekunda"}
+ }
+ week{
+ dn{"Tydzień"}
+ }
+ weekday{
+ dn{"Dzień tygodnia"}
+ }
+ year{
+ dn{"Rok"}
+ }
+ zone{
+ dn{"Strefa"}
+ }
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "stycznia",
+ "lut",
+ "mar",
+ "kwietnia",
+ "maja",
+ "czerwca",
+ "lip",
+ "sie",
+ "września",
+ "października",
+ "listopada",
+ "grudnia",
+ }
+ }
+ stand-alone{
+ abbreviated{
+ "sty",
+ "lut",
+ "mar",
+ "kwi",
+ "maj",
+ "cze",
+ "lip",
+ "sie",
+ "wrz",
+ "paź",
+ "lis",
+ "gru",
+ }
+ }
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"â€"}
+ alternateQuotationStart{"„"}
+ quotationEnd{"’"}
+ quotationStart{"‘"}
+ }
+ measurementSystemNames{
+ US{"USA"}
+ metric{"metryczny"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ps.txt b/Build/source/libs/icu-xetex/data/locales/ps.txt
index ba2fb0f7f1d..5a05af058e2 100644
--- a/Build/source/libs/icu-xetex/data/locales/ps.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ps.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ps.xml
+// * Source File:<path>/common/main/ps.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ps.xml
+ * ICU <specials> source: <path>/xml/main/ps.xml
*/
ps{
+ AuxExemplarCharacters{"[\u200C \u200D]"}
Countries{
AF{"اÙغانستان"}
AL{"البانیه"}
@@ -76,12 +77,15 @@ ps{
YE{"یمن"}
}
Currencies{
- AFA{
- "اÙغانÛ",
+ AFN{
+ "Ø‹",
"اÙغانÛ",
}
}
- ExemplarCharacters{"[Ø¡-ؤئ-غÙقل-وي-ْٰٔټپÚÚ…-Ú†Ú‰Ú“Ú–Ú˜ÚšÚ©Ú«Ú¼ÛŒ-ÛÛ â€Œâ€â€â€Ž]"}
+ ExemplarCharacters{
+ "[ÙŽ Ù Ù Ù‹ Ù ÙŒ Ù‘ Ù’ Ù” Ù° Ø¢ ا Ø£ Ø¡ ب Ù¾ ت Ù¼ Ø« ج Ú Ú† Ú… Ø­-د Ú‰ Ø° ر Ú“ ز Ú˜ Ú– س Ø´ Úš ص-غ Ù"
+ " Ù‚ Ú© Ú« Ù„-Ù† Ú¼ Ù‡ Ø© Ùˆ ؤ ÛŒ ÙŠ Û Û Ø¦]"
+ }
Languages{
ar{"عربي"}
bal{"بلوڅي"}
@@ -119,7 +123,10 @@ ps{
LocaleScript{
"Arab",
}
- Version{"1.26"}
+ Scripts{
+ Arab{"عربي"}
+ }
+ Version{"1.39"}
calendar{
gregorian{
AmPmMarkers{
@@ -139,15 +146,6 @@ ps{
}
dayNames{
format{
- abbreviated{
- "ی.",
- "د.",
- "س.",
- "Ú†.",
- "Ù¾.",
- "ج.",
- "Ø´.",
- }
wide{
"یکشنبه",
"دوشنبه",
@@ -168,18 +166,18 @@ ps{
monthNames{
format{
abbreviated{
- "جنو",
- "Ùبر",
- "مار",
- "اپر",
- "مـی",
+ "جنوري",
+ "Ùبروري",
+ "مارچ",
+ "اپریل",
+ "می",
"جون",
- "جول",
- "اګس",
- "سپت",
- "اکت",
- "نوم",
- "دسم",
+ "جولای",
+ "اګست",
+ "سپتمبر",
+ "اکتوبر",
+ "نومبر",
+ "دسمبر",
}
wide{
"جنوري",
@@ -198,15 +196,49 @@ ps{
}
}
}
+ persian{
+ monthNames{
+ format{
+ abbreviated{
+ "وری",
+ "غویی",
+ "غبرګولی",
+ "چنګاښ",
+ "زمری",
+ "وږی",
+ "تله",
+ "Ù„Ú“Ù…",
+ "لیندÛ",
+ "مرغومی",
+ "سلواغه",
+ "کب",
+ }
+ wide{
+ "وری",
+ "غویی",
+ "غبرګولی",
+ "چنګاښ",
+ "زمری",
+ "وږی",
+ "تله",
+ "Ù„Ú“Ù…",
+ "لیندÛ",
+ "مرغومی",
+ "سلواغه",
+ "کب",
+ }
+ }
+ }
+ }
+ }
+ layout{
+ characters{"right-to-left"}
+ lines{"top-to-bottom"}
}
zoneStrings{
- {
- "Asia/Kabul",
- "د اÙغانستان په وخت",
- "AFT",
- "د اÙغانستان په وخت",
- "AFT",
- "کابل",
+ "Asia:Kabul"{
+ ec{"کابل"}
}
+ regionFormat{"د {0} په وخت"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ps_AF.txt b/Build/source/libs/icu-xetex/data/locales/ps_AF.txt
index 21aadcaf559..9b390f536c8 100644
--- a/Build/source/libs/icu-xetex/data/locales/ps_AF.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ps_AF.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ps_AF.xml
+// * Source File:<path>/common/main/ps_AF.xml
// *
// ***************************************************************************
ps_AF{
@@ -18,7 +18,7 @@ ps_AF{
"×۱۰^",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -27,13 +27,19 @@ ps_AF{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.38"}
calendar{
gregorian{
DateTimeElements:intvector{
7,
1,
}
+ weekend:intvector{
+ 7,
+ 0,
+ 6,
+ 86400000,
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/pt.txt b/Build/source/libs/icu-xetex/data/locales/pt.txt
index 1d45b06287a..5931dcdae13 100644
--- a/Build/source/libs/icu-xetex/data/locales/pt.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pt.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pt.xml
+// * Source File:<path>/common/main/pt.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/pt.xml
+ * ICU <specials> source: <path>/xml/main/pt.xml
*/
pt{
Countries{
@@ -59,6 +59,7 @@ pt{
CN{"China"}
CO{"Colômbia"}
CR{"Costa Rica"}
+ CS{"Sérvia e Montenegro"}
CU{"Cuba"}
CV{"Cabo Verde"}
CX{"Ilhas Natal"}
@@ -264,7 +265,7 @@ pt{
"Afegane (1927-2002)",
}
AFN{
- "AFA",
+ "AFN",
"Afegane",
}
ALL{
@@ -1163,10 +1164,6 @@ pt{
"XDR",
"Direitos Especiais de Giro",
}
- XEU{
- "XEU",
- "Unidade Monetária Européia",
- }
XFO{
"XFO",
"Franco-ouro francês",
@@ -1228,7 +1225,7 @@ pt{
"Dólar do Zimbábwe",
}
}
- ExemplarCharacters{"[a-zãõçáéíóúàâêôüò]"}
+ ExemplarCharacters{"[a á à â ã b c ç d e é ê f-i í j-o ó ò ô õ p-u ú ü v-z]"}
Keys{
calendar{"Calendário"}
collation{"Intercalação"}
@@ -1701,7 +1698,7 @@ pt{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1783,13 +1780,9 @@ pt{
Variants{
REVISED{"Revisado"}
}
- Version{"1.42"}
+ Version{"1.65"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH'H'mm'm'ss's' z",
"HH:mm:ss z",
@@ -1888,136 +1881,188 @@ pt{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "1º trimestre",
+ "2º trimestre",
+ "3º trimestre",
+ "4º trimestre",
+ }
+ }
+ }
}
}
zoneStrings{
- {
- "America/Halifax",
- "Horário Padrão Atlântico",
- "AST",
- "Horário de Verão Atlântico",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Horário Padrão de Terra Nova",
- "CNT",
- "Horário de Verão de Terra Nova",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Horário Padrão da China",
- "CTT",
- "Horário Padrão da China",
- "CDT",
- "Xangai",
- }
- {
- "Europe/Paris",
- "Horário Padrão Europa Central",
- "CET",
- "Horário de Verão Europa Central",
- "CEST",
- "Paris",
- }
- {
- "Asia/Jerusalem",
- "Horário Padrão de Israel",
- "IST",
- "Horário de Verão de Israel",
- "IDT",
- "Jerusalém",
- }
- {
- "Asia/Tokyo",
- "Horário Padrão do Japão",
- "JST",
- "Horário Padrão do Japão",
- "JST",
- "Tóquio",
- }
- {
- "Africa/Casablanca",
- "Horário do Meridiano de Greenwich",
- "GMT",
- "Horário do Meridiano de Greenwich",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Horário Padrão da Europa Oriental",
- "EET",
- "Horário de Verão da Europa Oriental",
- "EEST",
- "Bucareste",
- }
- {
- "Pacific/Honolulu",
- "Horário Padrão do Havaí",
- "HST",
- "Horário Padrão do Havaí",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Horário Padrão do Alasca",
- "AST",
- "Horário de Verão do Alasca",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Horário Padrão do Pacífico",
- "PST",
- "Horário de Verão do Pacífico",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Horário Padrão Montanha",
- "MST",
- "Horário Padrão Montanha",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Horário Padrão Montanha",
- "MST",
- "Horário de Verão Montanha",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Horário Padrão Central",
- "CST",
- "Horário de Verão Central",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Horário Padrão Oriental",
- "EST",
- "Horário Padrão Oriental",
- "EST",
- "Indianápolis",
- }
- {
- "America/New_York",
- "Horário Padrão Oriental",
- "EST",
- "Horário de Verão Oriental",
- "EDT",
- "Nova Iorque",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Horário do Meridiano de Greenwich"}
+ ls{"Horário do Meridiano de Greenwich"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Horário de Verão do Alasca"}
+ ls{"Horário Padrão do Alasca"}
+ }
+ "America:Araguaina"{
+ ec{"Araguaína"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Tucumán"}
+ }
+ "America:Belem"{
+ ec{"Belém"}
+ }
+ "America:Cancun"{
+ ec{"Cancún"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Horário de Verão Central"}
+ ls{"Horário Padrão Central"}
+ sd{"CDT"}
+ ss{"CST"}
+ }
+ "America:Cordoba"{
+ ec{"Córdoba"}
+ }
+ "America:Cuiaba"{
+ ec{"Cuiabá"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Horário de Verão Montanha"}
+ ls{"Horário Padrão Montanha"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Guayaquil"{
+ ec{"Guaiaquil"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Horário de Verão Atlântico"}
+ ls{"Horário Padrão Atlântico"}
+ sd{"ADT"}
+ ss{"AST"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianápolis"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Horário de Verão do Pacífico"}
+ ls{"Horário Padrão do Pacífico"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Maceio"{
+ ec{"Maceió"}
+ }
+ "America:Merida"{
+ ec{"Mérida"}
+ }
+ "America:Mexico_City"{
+ ec{"Cidade do México"}
+ }
+ "America:New_York"{
+ ec{"Nova Iorque"}
+ ld{"Horário de Verão Oriental"}
+ ls{"Horário Padrão Oriental"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"Central"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Horário Padrão Montanha"}
+ ls{"Horário Padrão Montanha"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:Sao_Paulo"{
+ ec{"São Paulo"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Horário de Verão de Terra Nova"}
+ ls{"Horário Padrão de Terra Nova"}
+ sd{"NDT"}
+ ss{"NST"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Pólo Sul"}
+ }
+ "Asia:Jakarta"{
+ ec{"Jacarta"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalém"}
+ ld{"Horário de Verão de Israel"}
+ ls{"Horário Padrão de Israel"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Shanghai"{
+ ec{"Xangai"}
+ ld{"Horário Padrão da China"}
+ ls{"Horário Padrão da China"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tóquio"}
+ ld{"Horário Padrão do Japão"}
+ ls{"Horário Padrão do Japão"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Atlantic:Azores"{
+ ec{"Açores"}
+ }
+ "Atlantic:Canary"{
+ ec{"Canárias"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucareste"}
+ ld{"Horário de Verão da Europa Oriental"}
+ ls{"Horário Padrão da Europa Oriental"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisboa"}
+ }
+ "Europe:London"{
+ ec{"Londres"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Horário de Verão Europa Central"}
+ ls{"Horário Padrão Europa Central"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Galápagos"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Horário Padrão do Havaí"}
+ ls{"Horário Padrão do Havaí"}
+ sd{"HST"}
+ ss{"HST"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Taiti"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/pt_BR.txt b/Build/source/libs/icu-xetex/data/locales/pt_BR.txt
index cac962fb2ec..3df6f625fce 100644
--- a/Build/source/libs/icu-xetex/data/locales/pt_BR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pt_BR.txt
@@ -1,14 +1,72 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pt_BR.xml
+// * Source File:<path>/common/main/pt_BR.xml
// *
// ***************************************************************************
pt_BR{
- Version{"1.28"}
+ Countries{
+ 172{"Comunidade dos Estados Independentes"}
+ AX{"Ilhas Aland"}
+ BA{"Bósnia-Herzegovina"}
+ BH{"Bahrain"}
+ KP{"Coréia do Norte"}
+ MK{"Macedônia"}
+ ZW{"Zimbábue"}
+ }
+ Languages{
+ ang{"inglês arcaico (aprox. 450-1100)"}
+ awa{"awadhi"}
+ bai{"idiomas bamileke"}
+ bug{"buguinês"}
+ ce{"checheno"}
+ crh{"turco da criméia; tártaro da criméia"}
+ dsb{"sérvio baixo"}
+ dum{"holandês medieval"}
+ enm{"inglês medieval"}
+ frm{"francês medieval"}
+ fro{"francês arcaico"}
+ gmh{"alemão medieval alto"}
+ goh{"alemão arcaico alto"}
+ grc{"grego arcaico"}
+ iba{"ibã"}
+ ik{"inupiaque"}
+ jv{"javanês"}
+ kbd{"kabardiano"}
+ khi{"khoisan (outros)"}
+ mga{"irlandês medieval"}
+ mkh{"mon-khmer (outros)"}
+ nd{"ndebele do norte"}
+ nic{"Cordofano-nigeriano (outros)"}
+ non{"nórdico arcaico"}
+ nr{"ndebele do sul"}
+ nso{"soto setentrional"}
+ ota{"turco otomano"}
+ peo{"persa arcaico"}
+ pro{"provençal arcaico"}
+ sal{"idiomas salisanos"}
+ sgn{"linguagem de sinais"}
+ st{"soto do sul"}
+ wak{"idiomas wakashan"}
+ wen{"idiomas sórbios"}
+ }
+ Version{"1.42"}
calendar{
+ buddhist{
+ DateTimePatterns{
+ "HH'h'mm'min'ss's' z",
+ "H'h'm'min's's' z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, MMMM d, yyyy G",
+ "MMMM d, yyyy G",
+ "MMM d, yyyy G",
+ "M/d/yyyy",
+ "{1} {0}",
+ }
+ }
gregorian{
DateTimePatterns{
"HH'h'mm'min'ss's' z",
@@ -21,6 +79,83 @@ pt_BR{
"dd/MM/yy",
"{1} {0}",
}
+ fields{
+ day{
+ dn{"Dia"}
+ }
+ dayperiod{
+ dn{"Período do dia"}
+ }
+ hour{
+ dn{"Hora"}
+ }
+ minute{
+ dn{"Minuto"}
+ }
+ month{
+ dn{"Mês"}
+ }
+ second{
+ dn{"Segundo"}
+ }
+ week{
+ dn{"Semana"}
+ }
+ weekday{
+ dn{"Dia da semana"}
+ }
+ year{
+ dn{"Ano"}
+ }
+ zone{
+ dn{"Fuso"}
+ }
+ }
+ }
+ japanese{
+ DateTimePatterns{
+ "HH'h'mm'min'ss's' z",
+ "H'h'm'min's's' z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, MMMM d, y G",
+ "MMMM d, y G",
+ "MMM d, y G",
+ "M/d/yy",
+ "{1} {0}",
+ }
+ }
+ }
+ zoneStrings{
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"Horário de Verão da Montanha"}
+ ls{"Horário Padrão da Montanha"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Horário de Verão do Atlântico"}
+ ls{"Horário Padrão do Atlântico"}
+ }
+ "America:Phoenix"{
+ ls{"Horário Padrão da Montanha"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Horário de Verão da China"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Horário de Verão do Japão"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Horário de Verão da Europa Central"}
+ ls{"Horário Padrão da Europa Central"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Horário de Verão do Havaí"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/pt_PT.txt b/Build/source/libs/icu-xetex/data/locales/pt_PT.txt
index 2b4bcc455d2..43f5bf97b5a 100644
--- a/Build/source/libs/icu-xetex/data/locales/pt_PT.txt
+++ b/Build/source/libs/icu-xetex/data/locales/pt_PT.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/pt_PT.xml
+// * Source File:<path>/common/main/pt_PT.xml
// *
// ***************************************************************************
pt_PT{
@@ -68,6 +68,14 @@ pt_PT{
YE{"Iémen"}
}
Currencies{
+ AFA{
+ "AFA",
+ "Afeghani (1927-2002)",
+ }
+ BRB{
+ "BRB",
+ "Cruzeiro novo brasileiro (1967-1986)",
+ }
PTE{
"Esc.",
"Escudo português",
@@ -90,7 +98,7 @@ pt_PT{
"#,##0%",
"#E0",
}
- Version{"1.36"}
+ Version{"1.53"}
calendar{
gregorian{
DateTimePatterns{
@@ -104,6 +112,35 @@ pt_PT{
"yy/MM/dd",
"{1} {0}",
}
+ fields{
+ day{
+ dn{"Dia"}
+ }
+ dayperiod{
+ dn{"Período do dia"}
+ }
+ hour{
+ dn{"Hora"}
+ }
+ minute{
+ dn{"Minuto"}
+ }
+ month{
+ dn{"Mês"}
+ }
+ week{
+ dn{"Semana"}
+ }
+ weekday{
+ dn{"Dia da semana"}
+ }
+ year{
+ dn{"Ano"}
+ }
+ zone{
+ dn{"Zona"}
+ }
+ }
}
}
delimiters{
@@ -112,4 +149,36 @@ pt_PT{
quotationEnd{"’"}
quotationStart{"‘"}
}
+ zoneStrings{
+ "America:Araguaina"{
+ ec{"Araguaina"}
+ }
+ "America:Bahia"{
+ ec{"Baía"}
+ }
+ "America:Cancun"{
+ ec{"Cancun"}
+ }
+ "America:Cuiaba"{
+ ec{"Cuibá"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"Center"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sacalina"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulan Bator"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Kaliningrado"}
+ }
+ "Europe:Madrid"{
+ ec{"Madrid"}
+ }
+ "Europe:Moscow"{
+ ec{"Moscovo"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/resfiles.mk b/Build/source/libs/icu-xetex/data/locales/resfiles.mk
index f30283b0218..f3824fac66e 100644
--- a/Build/source/libs/icu-xetex/data/locales/resfiles.mk
+++ b/Build/source/libs/icu-xetex/data/locales/resfiles.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1998-2005, International Business Machines
+# * Copyright (C) 1998-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -24,9 +24,10 @@
#
# Generated by LDML2ICUConverter, from LDML source files.
-# Aliases which do not have a corresponding xx.xml file (see deprecatedList.xml)
-GENRB_SYNTHETIC_ALIAS = in.txt in_ID.txt iw.txt iw_IL.txt\
- ja_JP_TRADITIONAL.txt no.txt no_NO.txt no_NO_NY.txt th_TH_TRADITIONAL.txt
+# Aliases which do not have a corresponding xx.xml file (see icu-config.xml & build.xml)
+GENRB_SYNTHETIC_ALIAS = en_RH.txt in.txt in_ID.txt iw.txt\
+ iw_IL.txt ja_JP_TRADITIONAL.txt no.txt no_NO.txt no_NO_NY.txt\
+ th_TH_TRADITIONAL.txt
# All aliases (to not be included under 'installed'), but not including root.
@@ -35,8 +36,6 @@ GENRB_ALIAS_SOURCE = $(GENRB_SYNTHETIC_ALIAS) az_AZ.txt sh.txt sh_CS.txt sh_YU.t
zh_CN.txt zh_HK.txt zh_MO.txt zh_SG.txt zh_TW.txt
-
-
# Ordinary resources
GENRB_SOURCE = af.txt af_ZA.txt am.txt am_ET.txt\
ar.txt ar_AE.txt ar_BH.txt ar_DZ.txt ar_EG.txt\
@@ -61,30 +60,31 @@ GENRB_SOURCE = af.txt af_ZA.txt am.txt am_ET.txt\
fi.txt fi_FI.txt fo.txt fo_FO.txt fr.txt\
fr_BE.txt fr_CA.txt fr_CH.txt fr_FR.txt fr_LU.txt\
ga.txt ga_IE.txt gl.txt gl_ES.txt gu.txt\
- gu_IN.txt gv.txt gv_GB.txt he.txt he_IL.txt\
- hi.txt hi_IN.txt hr.txt hr_HR.txt hu.txt\
- hu_HU.txt hy.txt hy_AM.txt hy_AM_REVISED.txt id.txt\
- id_ID.txt is.txt is_IS.txt it.txt it_CH.txt\
- it_IT.txt ja.txt ja_JP.txt kk.txt kk_KZ.txt\
- kl.txt kl_GL.txt kn.txt kn_IN.txt ko.txt\
- ko_KR.txt kok.txt kok_IN.txt kw.txt kw_GB.txt\
- lt.txt lt_LT.txt lv.txt lv_LV.txt mk.txt\
- mk_MK.txt ml.txt ml_IN.txt mr.txt mr_IN.txt\
- ms.txt ms_BN.txt ms_MY.txt mt.txt mt_MT.txt\
- nb.txt nb_NO.txt nl.txt nl_BE.txt nl_NL.txt\
- nn.txt nn_NO.txt om.txt om_ET.txt om_KE.txt\
- or.txt or_IN.txt pa.txt pa_IN.txt pl.txt\
- pl_PL.txt ps.txt ps_AF.txt pt.txt pt_BR.txt\
- pt_PT.txt ro.txt ro_RO.txt ru.txt ru_RU.txt\
- ru_UA.txt sk.txt sk_SK.txt sl.txt sl_SI.txt\
- so.txt so_DJ.txt so_ET.txt so_KE.txt so_SO.txt\
- sq.txt sq_AL.txt sr.txt sr_Cyrl.txt sr_Cyrl_CS.txt\
- sr_Latn.txt sr_Latn_CS.txt sv.txt sv_FI.txt sv_SE.txt\
- sw.txt sw_KE.txt sw_TZ.txt ta.txt ta_IN.txt\
- te.txt te_IN.txt th.txt th_TH.txt ti.txt\
- ti_ER.txt ti_ET.txt tr.txt tr_TR.txt uk.txt\
- uk_UA.txt ur.txt ur_PK.txt uz.txt uz_Cyrl.txt\
- uz_Cyrl_UZ.txt uz_Latn.txt uz_Latn_UZ.txt vi.txt vi_VN.txt\
- zh.txt zh_Hans.txt zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant.txt\
- zh_Hant_HK.txt zh_Hant_MO.txt zh_Hant_TW.txt
+ gu_IN.txt gv.txt gv_GB.txt haw.txt haw_US.txt\
+ he.txt he_IL.txt hi.txt hi_IN.txt hr.txt\
+ hr_HR.txt hu.txt hu_HU.txt hy.txt hy_AM.txt\
+ hy_AM_REVISED.txt id.txt id_ID.txt is.txt is_IS.txt\
+ it.txt it_CH.txt it_IT.txt ja.txt ja_JP.txt\
+ kk.txt kk_KZ.txt kl.txt kl_GL.txt kn.txt\
+ kn_IN.txt ko.txt ko_KR.txt kok.txt kok_IN.txt\
+ kw.txt kw_GB.txt lt.txt lt_LT.txt lv.txt\
+ lv_LV.txt mk.txt mk_MK.txt ml.txt ml_IN.txt\
+ mr.txt mr_IN.txt ms.txt ms_BN.txt ms_MY.txt\
+ mt.txt mt_MT.txt nb.txt nb_NO.txt nl.txt\
+ nl_BE.txt nl_NL.txt nn.txt nn_NO.txt om.txt\
+ om_ET.txt om_KE.txt or.txt or_IN.txt pa.txt\
+ pa_IN.txt pl.txt pl_PL.txt ps.txt ps_AF.txt\
+ pt.txt pt_BR.txt pt_PT.txt ro.txt ro_RO.txt\
+ ru.txt ru_RU.txt ru_UA.txt sk.txt sk_SK.txt\
+ sl.txt sl_SI.txt so.txt so_DJ.txt so_ET.txt\
+ so_KE.txt so_SO.txt sq.txt sq_AL.txt sr.txt\
+ sr_Cyrl.txt sr_Cyrl_CS.txt sr_Latn.txt sr_Latn_CS.txt sv.txt\
+ sv_FI.txt sv_SE.txt sw.txt sw_KE.txt sw_TZ.txt\
+ ta.txt ta_IN.txt te.txt te_IN.txt th.txt\
+ th_TH.txt ti.txt ti_ER.txt ti_ET.txt tr.txt\
+ tr_TR.txt uk.txt uk_UA.txt ur.txt ur_IN.txt\
+ ur_PK.txt uz.txt uz_Cyrl.txt uz_Cyrl_UZ.txt uz_Latn.txt\
+ uz_Latn_UZ.txt vi.txt vi_VN.txt zh.txt zh_Hans.txt\
+ zh_Hans_CN.txt zh_Hans_SG.txt zh_Hant.txt zh_Hant_HK.txt zh_Hant_MO.txt\
+ zh_Hant_TW.txt
diff --git a/Build/source/libs/icu-xetex/data/locales/reslocal.mk b/Build/source/libs/icu-xetex/data/locales/reslocal.mk
new file mode 100644
index 00000000000..e21d4f9b4b0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/locales/reslocal.mk
@@ -0,0 +1,37 @@
+# * Copyright (C) 1998-2006, International Business Machines
+# * Corporation and others. All Rights Reserved.
+# A list of txt's to build
+# Note:
+#
+# If you are thinking of modifying this file, READ THIS.
+#
+# Instead of changing this file [unless you want to check it back in],
+# you should consider creating a 'reslocal.mk' file in this same directory.
+# Then, you can have your local changes remain even if you upgrade or
+# reconfigure ICU.
+#
+# Example 'reslocal.mk' files:
+#
+# * To add an additional locale to the list:
+# _____________________________________________________
+# | GENRB_SOURCE_LOCAL = myLocale.txt ...
+#
+# * To REPLACE the default list and only build with a few
+# locale:
+# _____________________________________________________
+# | GENRB_SOURCE = ar.txt ar_AE.txt en.txt de.txt zh.txt
+#
+#
+# Generated by LDML2ICUConverter, from LDML source files.
+
+# Aliases which do not have a corresponding xx.xml file (see icu-config.xml & build.xml)
+GENRB_SYNTHETIC_ALIAS =
+
+
+# All aliases (to not be included under 'installed'), but not including root.
+GENRB_ALIAS_SOURCE = $(GENRB_SYNTHETIC_ALIAS)
+
+
+# Ordinary resources
+GENRB_SOURCE = # en.txt
+
diff --git a/Build/source/libs/icu-xetex/data/locales/ro.txt b/Build/source/libs/icu-xetex/data/locales/ro.txt
index a4795faa5e8..5a1bdf3ebe7 100644
--- a/Build/source/libs/icu-xetex/data/locales/ro.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ro.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ro.xml
+// * Source File:<path>/common/main/ro.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ro.xml
+ * ICU <specials> source: <path>/xml/main/ro.xml
*/
ro{
+ AuxExemplarCharacters{"[q w y]"}
Countries{
001{"Lume"}
005{"America de Sud"}
@@ -29,7 +30,7 @@ ro{
054{"Melanezia"}
057{"Micronezia"}
061{"Polinezia"}
- 062{"Asia centrala ÅŸi de Sud"}
+ 062{"Asia centrala și de Sud"}
145{"Asia occidentală"}
150{"Europa"}
151{"Europa de Est"}
@@ -39,7 +40,7 @@ ro{
AD{"Andora"}
AE{"Emiratele Arabe Unite"}
AF{"Afganistan"}
- AG{"Antigua ÅŸi Barbuda"}
+ AG{"Antigua și Barbuda"}
AI{"Anguilla"}
AL{"Albania"}
AM{"Armenia"}
@@ -53,7 +54,7 @@ ro{
AW{"Aruba"}
AX{"Insulele Aland"}
AZ{"Azerbaidjan"}
- BA{"Bosnia ÅŸi Herzegovina"}
+ BA{"Bosnia și Herzegovina"}
BB{"Barbados"}
BD{"Bangladesh"}
BE{"Belgia"}
@@ -77,15 +78,15 @@ ro{
CD{"Congo, Republica Democratică"}
CF{"Republica Central Africană"}
CG{"Congo"}
- CH{"Eleveţia"}
- CI{"Coasta de FildeÅŸ"}
+ CH{"Eleveția"}
+ CI{"Coasta de FildeÈ™"}
CK{"Insulele Cook"}
CL{"Chile"}
CM{"Camerun"}
CN{"China"}
CO{"Columbia"}
CR{"Costa Rica"}
- CS{"Serbia ÅŸi Muntenegru"}
+ CS{"Serbia și Muntenegru"}
CU{"Cuba"}
CV{"Capul Verde"}
CX{"Insula Christmas"}
@@ -109,9 +110,8 @@ ro{
FK{"Insulele Falkland"}
FM{"Micronezia, Statele Federate"}
FO{"Insulele Feroe"}
- FR{"Franţa"}
+ FR{"Franța"}
GA{"Gabon"}
- GB{"Regatul Unit"}
GD{"Grenada"}
GE{"Georgia"}
GF{"Guyana Franceză"}
@@ -123,15 +123,15 @@ ro{
GP{"Guadeloupe"}
GQ{"Guineea Ecuatorială"}
GR{"Grecia"}
- GS{"Insulele South Georgia ÅŸi South Sandwich"}
+ GS{"Insulele South Georgia și South Sandwich"}
GT{"Guatemala"}
GU{"Guam"}
GW{"Guineea-Bissau"}
GY{"Guyana"}
HK{"R.A.S. Hong Kong a Chinei"}
- HM{"Insula Heard ÅŸi Insulele McDonald"}
+ HM{"Insula Heard și Insulele McDonald"}
HN{"Honduras"}
- HR{"Croaţia"}
+ HR{"Croația"}
HT{"Haiti"}
HU{"Ungaria"}
ID{"Indonezia"}
@@ -151,7 +151,7 @@ ro{
KH{"Cambodgia"}
KI{"Kiribati"}
KM{"Comoros"}
- KN{"Saint Kitts ÅŸi Nevis"}
+ KN{"Saint Kitts și Nevis"}
KP{"Coreea de Nord"}
KR{"Coreea de Sud"}
KW{"Kuweit"}
@@ -209,7 +209,7 @@ ro{
PH{"Filipine"}
PK{"Pakistan"}
PL{"Polonia"}
- PM{"Saint Pierre ÅŸi Miquelon"}
+ PM{"Saint Pierre și Miquelon"}
PN{"Pitcairn"}
PR{"Porto Rico"}
PS{"Teritoriul Palestinian"}
@@ -220,7 +220,7 @@ ro{
QO{"Altă Oceania"}
RE{"Reunion"}
RO{"România"}
- RU{"Federaţia Rusă"}
+ RU{"Federația Rusă"}
RW{"Rwanda"}
SA{"Arabia Saudită"}
SB{"Insulele Solomon"}
@@ -230,18 +230,18 @@ ro{
SG{"Singapore"}
SH{"Saint Helena"}
SI{"Slovenia"}
- SJ{"Svalbard ÅŸi Jan Mayen"}
+ SJ{"Svalbard și Jan Mayen"}
SK{"Slovacia"}
SL{"Sierra Leone"}
SM{"San Marino"}
SN{"Senegal"}
SO{"Somalia"}
SR{"Surinam"}
- ST{"Sao Tome ÅŸi Principe"}
+ ST{"Sao Tome și Principe"}
SV{"El Salvador"}
SY{"Siria"}
SZ{"Swaziland"}
- TC{"Insulele Turks ÅŸi Caicos"}
+ TC{"Insulele Turks și Caicos"}
TD{"Ciad"}
TF{"Teritoriile Franceze de Sud"}
TG{"Togo"}
@@ -278,29 +278,7 @@ ro{
ZM{"Zambia"}
ZW{"Zimbabwe"}
}
- Currencies{
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
- JPY{
- "Â¥",
- "JPY",
- }
- ROL{
- "lei",
- "ROL",
- }
- USD{
- "$",
- "USD",
- }
- }
- ExemplarCharacters{"[a-z â î ă ş ţ]"}
+ ExemplarCharacters{"[a ă â b-i î j-p r s ș t ț u-x z]"}
Languages{
ar{"Arabă"}
bg{"Bulgară"}
@@ -347,16 +325,12 @@ ro{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.46"}
+ Version{"1.66"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -382,7 +356,7 @@ ro{
wide{
"duminică",
"luni",
- "marţi",
+ "marți",
"miercuri",
"joi",
"vineri",
@@ -455,7 +429,61 @@ ro{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "T1",
+ "T2",
+ "T3",
+ "T4",
+ }
+ wide{
+ "trimestrul 1",
+ "trimestrul 2",
+ "trimestrul 3",
+ "trimestrul 4",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Antarctica:South_Pole"{
+ ec{"Polul Sud"}
+ }
+ "Asia:Irkutsk"{
+ ec{"Irkuțk"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamciatka"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sahalin"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Yakuțk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Ekaterinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azore"}
+ }
+ "Atlantic:Canary"{
+ ec{"Canare"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisabona"}
+ }
+ "Europe:London"{
+ ec{"Londra"}
+ }
+ "Europe:Moscow"{
+ ec{"Moscova"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporoje"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ro_RO.txt b/Build/source/libs/icu-xetex/data/locales/ro_RO.txt
index c0a66bfeb9b..5bb22714745 100644
--- a/Build/source/libs/icu-xetex/data/locales/ro_RO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ro_RO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ro_RO.xml
+// * Source File:<path>/common/main/ro_RO.xml
// *
// ***************************************************************************
ro_RO{
@@ -13,5 +13,5 @@ ro_RO{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/root.txt b/Build/source/libs/icu-xetex/data/locales/root.txt
index a0d6bd7a560..bf98291b16e 100644
--- a/Build/source/libs/icu-xetex/data/locales/root.txt
+++ b/Build/source/libs/icu-xetex/data/locales/root.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/root.xml
+// * Source File:<path>/common/main/root.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/root.xml
+ * ICU <specials> source: <path>/xml/main/root.xml
*/
root{
AuxExemplarCharacters{"[]"}
@@ -53,7 +53,7 @@ root{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -66,21 +66,14 @@ root{
297,
210,
}
- Version{"1.52"}
- boundaries{
- grapheme{"char"}
- line{"line"}
- sentence{"sent"}
- title{"title"}
- word{"word"}
- }
+ Version{"1.84"}
calendar{
buddhist{
DateTimePatterns{
- "h:mm:ss a z",
- "h:mm:ss a z",
- "h:mm:ss a",
- "h:mm a",
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
"EEEE, MMMM d, yyyy G",
"MMMM d, yyyy G",
"MMM d, yyyy G",
@@ -95,10 +88,10 @@ root{
}
chinese{
DateTimePatterns{
- "h:mm:ss a z",
- "h:mm:ss a z",
- "h:mm:ss a",
- "h:mm a",
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
"EEEE y'x'G-Ml-d",
"y'x'G-Ml-d",
"y'x'G-Ml-d",
@@ -111,8 +104,21 @@ root{
}
}
coptic{
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
monthNames{
+ default{"format"}
format{
+ default{"wide"}
wide{
"Tout",
"Baba",
@@ -133,8 +139,21 @@ root{
}
default{"gregorian"}
ethiopic{
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
monthNames{
+ default{"format"}
format{
+ default{"wide"}
wide{
"Meskerem",
"Tekemt",
@@ -159,7 +178,7 @@ root{
"PM",
}
DateTimeElements:intvector{
- 1,
+ 2,
1,
}
DateTimePatterns{
@@ -173,6 +192,19 @@ root{
"yy/MM/dd",
"{1} {0}",
}
+ appendItems{
+ Day{"{0} ({2}: {1})"}
+ Day-Of-Week{"{0} {1}"}
+ Era{"{0} {1}"}
+ Hour{"{0} ({2}: {1})"}
+ Minute{"{0} ({2}: {1})"}
+ Month{"{0} ({2}: {1})"}
+ Quarter{"{0} ({2}: {1})"}
+ Second{"{0} ({2}: {1})"}
+ Timezone{"{0} {1}"}
+ Week{"{0} ({2}: {1})"}
+ Year{"{0} {1}"}
+ }
dayNames{
default{"format"}
format{
@@ -213,24 +245,47 @@ root{
"BCE",
"CE",
}
+ wide:alias{"/LOCALE/calendar/gregorian/eras/abbreviated"}
+ }
+ fields{
+ day{
+ dn{"Day"}
+ }
+ dayperiod{
+ dn{"Dayperiod"}
+ }
+ era{
+ dn{"Era"}
+ }
+ hour{
+ dn{"Hour"}
+ }
+ minute{
+ dn{"Minute"}
+ }
+ month{
+ dn{"Month"}
+ }
+ second{
+ dn{"Second"}
+ }
+ week{
+ dn{"Week"}
+ }
+ weekday{
+ dn{"Day of the Week"}
+ }
+ year{
+ dn{"Year"}
+ }
+ zone{
+ dn{"Zone"}
+ }
}
monthNames{
default{"format"}
format{
- abbreviated{
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12",
- }
+ abbreviated:alias{"/LOCALE/calendar/gregorian/monthNames/format/wide"}
default{"wide"}
wide{
"1",
@@ -264,6 +319,22 @@ root{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4",
+ }
+ wide{
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4",
+ }
+ }
+ }
weekend:intvector{
7,
0,
@@ -301,6 +372,17 @@ root{
}
}
islamic{
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
eras{
abbreviated{
"AH",
@@ -331,10 +413,10 @@ root{
islamic-civil:alias{"/LOCALE/calendar/islamic"}
japanese{
DateTimePatterns{
- "h:mm:ss a z",
- "h:mm:ss a z",
- "h:mm:ss a",
- "h:mm a",
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
"EEEE, MMMM d, y G",
"MMMM d, y G",
"MMM d, y G",
@@ -583,10 +665,40 @@ root{
}
}
persian{
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
+ eras{
+ abbreviated{
+ "AP",
+ }
+ }
monthNames{
default{"format"}
format{
default{"wide"}
+ wide{
+ "Farvardin",
+ "Ordibehesht",
+ "Khordad",
+ "Tir",
+ "Mordad",
+ "Shahrivar",
+ "Mehr",
+ "Aban",
+ "Azar",
+ "Dey",
+ "Bahman",
+ "Esfand",
+ }
}
}
}
@@ -598,16 +710,39 @@ root{
quotationStart{"“"}
}
localPatternChars{"GyMdkHmsSEDFwWahKzYeugAZvcL"}
+ measurementSystemNames{
+ US{"US"}
+ metric{"Metric"}
+ }
zoneStrings{
- {
- "",
- "",
- "",
- "",
- "",
- "",
- "",
+ ""{
+ ec{""}
+ ld{""}
+ ls{""}
+ sd{""}
+ ss{""}
+ }
+ fallbackFormat{"{0} ({1})"}
+ gmtFormat{"GMT{0}"}
+ hourFormat{"+HH:mm;-HH:mm"}
+ hoursFormat{"{0}/{1}"}
+ preferenceOrdering{
"",
}
+ regionFormat{"{0}"}
+ singleCountries{
+ "Africa/Bamako",
+ "America/Godthab",
+ "America/Santiago",
+ "America/Guayaquil",
+ "Asia/Shanghai",
+ "Asia/Tashkent",
+ "Asia/Kuala_Lumpur",
+ "Europe/Madrid",
+ "Europe/Lisbon",
+ "Europe/London",
+ "Pacific/Auckland",
+ "Pacific/Tahiti",
+ }
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ru.txt b/Build/source/libs/icu-xetex/data/locales/ru.txt
index a249633747d..cd9b901fe2d 100644
--- a/Build/source/libs/icu-xetex/data/locales/ru.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ru.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ru.xml
+// * Source File:<path>/common/main/ru.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ru.xml
+ * ICU <specials> source: <path>/xml/main/ru.xml
*/
ru{
+ AuxExemplarCharacters{"[i v x]"}
Countries{
001{"Ð’Ñемирное"}
002{"Ðфрика"}
@@ -19,15 +20,21 @@ ru{
013{"Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ðмерика"}
014{"ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ðфрика"}
015{"Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ðфрика"}
- 018{"Ð®Ð¶Ð½Ð°Ñ Ðфрика"}
+ 017{"Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ðфрика"}
+ 018{"Ð®Ð¶Ð½Ð°Ñ Ðфрика [018]"}
+ 019{"Ð¦ÐµÐ½Ñ‚Ñ€Ð°Ð»ÑŒÐ½Ð°Ñ Ð¸ Ð®Ð¶Ð½Ð°Ñ Ðмерика"}
021{"Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ðмерика"}
+ 029{"Карибы"}
+ 030{"ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐзиÑ"}
035{"Юго-ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ ÐзиÑ"}
039{"Ð®Ð¶Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°"}
053{"ÐвÑÑ‚Ñ€Ð°Ð»Ð¸Ñ Ð¸ ÐÐ¾Ð²Ð°Ñ Ð—ÐµÐ»Ð°Ð½Ð´Ð¸Ñ"}
054{"МеланезиÑ"}
057{"МикронезиÑ"}
061{"ПолинезиÑ"}
+ 062{"Юг Средней Ðзии"}
142{"ÐзиÑ"}
+ 145{"Ближний и Средний ВоÑток"}
150{"Европа"}
151{"ВоÑÑ‚Ð¾Ñ‡Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°"}
154{"Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð•Ð²Ñ€Ð¾Ð¿Ð°"}
@@ -104,7 +111,7 @@ ru{
ET{"ЭфиопиÑ"}
FI{"ФинлÑндиÑ"}
FJ{"Фиджи"}
- FK{"ФольклендÑкие ОÑтрова"}
+ FK{"ФолклендÑкие оÑтрова"}
FM{"Федеративное ГоÑударÑтво МикронезиÑ"}
FO{"ФарерÑкие оÑтрова"}
FR{"ФранциÑ"}
@@ -208,13 +215,14 @@ ru{
PK{"ПакиÑтан"}
PL{"Польша"}
PM{"Сен-Пьер и Микелон"}
- PN{"ОÑтров ПиткÑрн"}
+ PN{"Питкерн"}
PR{"ПуÑрто-Рико"}
PS{"ПалеÑтинÑÐºÐ°Ñ Ð°Ð²Ñ‚Ð¾Ð½Ð¾Ð¼Ð¸Ñ"}
PT{"ПортугалиÑ"}
PW{"Палау"}
PY{"Парагвай"}
QA{"Катар"}
+ QO{"ВнешнÑÑ ÐžÐºÐµÐ°Ð½Ð¸Ñ"}
RE{"Реюньон"}
RO{"РумыниÑ"}
RU{"РоÑÑиÑ"}
@@ -227,7 +235,7 @@ ru{
SG{"Сингапур"}
SH{"ОÑтров СвÑтой Елены"}
SI{"СловениÑ"}
- SJ{"ОÑтрова Свалбард и Жан Майен"}
+ SJ{"Свальбард и Ян-Майен"}
SK{"СловакиÑ"}
SL{"Сьерра-Леоне"}
SM{"Сан-Марино"}
@@ -238,7 +246,7 @@ ru{
SV{"Сальвадор"}
SY{"СирийÑÐºÐ°Ñ ÐрабÑÐºÐ°Ñ Ð ÐµÑпублика"}
SZ{"Свазиленд"}
- TC{"ОÑтрова Ð¢ÑƒÑ€ÐºÑ Ð¸ КайкоÑ"}
+ TC{"ОÑтрова Ð¢Ñ‘Ñ€ÐºÑ Ð¸ КайкоÑ"}
TD{"Чад"}
TF{"ФранцузÑкие Южные Территории"}
TG{"Того"}
@@ -260,7 +268,7 @@ ru{
US{"Соединенные Штаты"}
UY{"Уругвай"}
UZ{"УзбекиÑтан"}
- VA{"ГоÑударÑтво-город Ватикан"}
+ VA{"Ватикан"}
VC{"Сент-ВинÑент и Гренадины"}
VE{"ВенеÑуÑла"}
VG{"БританÑкие ВиргинÑкие ОÑтрова"}
@@ -288,8 +296,12 @@ ru{
"AFA",
"Ðфгани (1927-2002)",
}
+ AFN{
+ "AFN",
+ "Ðфгани",
+ }
ALL{
- "ALL",
+ "lek",
"ÐлбанÑкий лек",
}
AMD{
@@ -300,10 +312,22 @@ ru{
"NA f.",
"ÐидерландÑкий антильÑкий гульден",
}
+ AOA{
+ "AOA",
+ "Кванза",
+ }
+ AOK{
+ "AOK",
+ "Кванза (1977-1990)",
+ }
AON{
"AON",
"ÐÐ¾Ð²Ð°Ñ ÐºÐ²Ð°Ð½Ð·Ð°",
}
+ ARP{
+ "ARP",
+ "ÐргентинÑкое пеÑо (1983-1985)",
+ }
ARS{
"Arg$",
"ÐргентинÑкое пеÑо",
@@ -324,14 +348,22 @@ ru{
"AZM",
"ÐзербайджанÑкий манат",
}
+ BAM{
+ "BAM",
+ "ÐšÐ¾Ð½Ð²ÐµÑ€Ñ‚Ð¸Ñ€ÑƒÐµÐ¼Ð°Ñ Ð¼Ð°Ñ€ÐºÐ° БоÑнии и Герцеговины",
+ }
BBD{
"BDS$",
"БарбадоÑÑкий доллар",
}
BDT{
- "BDT",
+ "Tk",
"БангладешÑÐºÐ°Ñ Ñ‚Ð°ÐºÐ°",
}
+ BEC{
+ "BEC",
+ "БельгийÑкий франк (конвертируемый)",
+ }
BEF{
"BF",
"БельгийÑкий франк",
@@ -364,6 +396,10 @@ ru{
"Bs",
"Боливиано",
}
+ BOP{
+ "BOP",
+ "БоливийÑкое пеÑо",
+ }
BRL{
"R$",
"БразильÑкий реал",
@@ -380,6 +416,10 @@ ru{
"Nu",
"Ðгултрум",
}
+ BUK{
+ "BUK",
+ "Джа",
+ }
BWP{
"BWP",
"БотÑванÑÐºÐ°Ñ Ð¿ÑƒÐ»Ð°",
@@ -424,12 +464,16 @@ ru{
"C",
"КоÑтариканÑкий колон",
}
+ CSD{
+ "CSD",
+ "СербÑкий динар",
+ }
CUP{
"CUP",
"КубинÑкое пеÑо",
}
CVE{
- "CVE",
+ "CVEsc",
"ЭÑкудо Кабо-Верде",
}
CYP{
@@ -472,10 +516,22 @@ ru{
"EGP",
"ЕгипетÑкий фунт",
}
+ EQE{
+ "EQE",
+ "Эквеле",
+ }
ERN{
"ERN",
"Ðакфа",
}
+ ESA{
+ "ESA",
+ "ИÑпанÑÐºÐ°Ñ Ð¿ÐµÑета (Ð)",
+ }
+ ESP{
+ "ESP",
+ "ИÑпанÑÐºÐ°Ñ Ð¿ÐµÑета",
+ }
ETB{
"Br",
"ЭфиопÑкий быр",
@@ -533,7 +589,7 @@ ru{
"ГречеÑÐºÐ°Ñ Ð´Ñ€Ð°Ñ…Ð¼Ð°",
}
GTQ{
- "GTQ",
+ "Q",
"ГватемальÑкий кетÑаль",
}
GWP{
@@ -549,7 +605,7 @@ ru{
"ГонконгÑкий доллар",
}
HNL{
- "HNL",
+ "L",
"ГондураÑÑÐºÐ°Ñ Ð»ÐµÐ¼Ð¿Ð¸Ñ€Ð°",
}
HRD{
@@ -565,11 +621,11 @@ ru{
"ГаитÑнÑкий гурд",
}
HUF{
- "HUF",
+ "Ft",
"ВенгерÑкий форинт",
}
IDR{
- "IDR",
+ "Rp",
"ИндонезийÑÐºÐ°Ñ Ñ€ÑƒÐ¿Ð¸Ñ",
}
IEP{
@@ -617,11 +673,11 @@ ru{
"КенийÑкий шиллинг",
}
KGS{
- "KGS",
+ "som",
"Сом (киргизÑкий)",
}
KHR{
- "KHR",
+ "CR",
"КамбоджийÑкий риель",
}
KMF{
@@ -645,7 +701,7 @@ ru{
"Доллар Каймановых оÑтровов",
}
KZT{
- "KZT",
+ "T",
"Тенге (казахÑкий)",
}
LAK{
@@ -657,7 +713,7 @@ ru{
"ЛиванÑкий фунт",
}
LKR{
- "LKR",
+ "SL Re",
"Шри-ЛанкийÑÐºÐ°Ñ Ñ€ÑƒÐ¿Ð¸Ñ",
}
LRD{
@@ -697,15 +753,15 @@ ru{
"МалагаÑийÑкий франк",
}
MKD{
- "MKD",
+ "MDen",
"МакедонÑкий динар",
}
MNT{
- "MNT",
+ "Tug",
"МонгольÑкий тугрик",
}
MRO{
- "MRO",
+ "UM",
"МавританÑÐºÐ°Ñ ÑƒÐ³Ð¸Ñ",
}
MTL{
@@ -729,11 +785,11 @@ ru{
"МекÑиканÑкое новое пеÑо",
}
MYR{
- "MYR",
+ "RM",
"МалайзийÑкий ринггит",
}
MZM{
- "MZM",
+ "Mt",
"МозамбикÑкий метикал",
}
NAD{
@@ -809,7 +865,7 @@ ru{
"КатарÑкий риал",
}
ROL{
- "ROL",
+ "leu",
"РумынÑкий лей",
}
RUB{
@@ -885,7 +941,7 @@ ru{
"СирийÑкий фунт",
}
SZL{
- "SZL",
+ "E",
"СвазилендÑкий лилангени",
}
THB{
@@ -961,7 +1017,7 @@ ru{
"УзбекÑкий Ñум",
}
VEB{
- "VEB",
+ "Be",
"ВенеÑуÑльÑкий боливар",
}
VND{
@@ -980,12 +1036,16 @@ ru{
"XAF",
"Франк КФРВЕÐС",
}
+ XAG{
+ "XAG",
+ "Серебро",
+ }
XAU{
"XAU",
"Золото",
}
XCD{
- "XCD",
+ "EC$",
"ВоÑточно-карибÑкий доллар",
}
XDR{
@@ -1000,10 +1060,22 @@ ru{
"XOF",
"Франк КФРВСЕÐО",
}
+ XPD{
+ "XPD",
+ "Палладий",
+ }
XPF{
"CFPF",
"Франк КФП",
}
+ XPT{
+ "XPT",
+ "Платина",
+ }
+ YDD{
+ "YDD",
+ "ЙеменÑкий динар",
+ }
YER{
"YRl",
"ЙеменÑкий риал",
@@ -1014,7 +1086,7 @@ ru{
}
ZAR{
"R",
- "РÑнд",
+ "ЮжноафриканÑкий Ñ€Ñнд",
}
ZMK{
"ZMK",
@@ -1024,12 +1096,16 @@ ru{
"ZRN",
"Ðовый заир",
}
+ ZRZ{
+ "ZRZ",
+ "Заир",
+ }
ZWD{
"Z$",
"Доллар Зимбабве",
}
}
- ExemplarCharacters{"[а-Ñ Ñ‘ Ñ–]"}
+ ExemplarCharacters{"[а-е Ñ‘ ж-Ñ]"}
Keys{
calendar{"Календарь"}
collation{"Сортировка"}
@@ -1042,22 +1118,30 @@ ru{
ach{"ачоли"}
ada{"адангме"}
ady{"адыгейÑкий"}
+ ae{"авеÑтийÑкий"}
af{"африкаанÑ"}
afa{"афразийÑкие (другие)"}
afh{"африхили"}
akk{"аккадÑкий"}
ale{"алеутÑкий"}
alg{"алгонкинÑкие Ñзыки"}
+ alt{"южноалтайÑкий"}
am{"амхарÑкий"}
+ an{"арагонÑкий"}
ang{"ÑтароанглийÑкий"}
+ apa{"апачÑкий"}
ar{"арабÑкий"}
arc{"арамейÑкий"}
+ arn{"арауканÑкий"}
art{"иÑкуÑÑтвенные (другие)"}
arw{"аравакÑкий"}
as{"аÑÑамÑкий"}
+ ast{"аÑтурийÑкий"}
ath{"атапачÑкие Ñзыки"}
+ aus{"авÑтралийÑкие Ñзыки"}
+ av{"аварÑкий"}
awa{"авадхи"}
- ay{"аÑмара"}
+ ay{"аймара"}
az{"азербайджанÑкий"}
ba{"башкирÑкий"}
bad{"банда"}
@@ -1069,40 +1153,51 @@ ru{
be{"белоруÑÑкий"}
bej{"беджа"}
bem{"бемба"}
+ ber{"берберÑкий"}
bg{"болгарÑкий"}
- bh{"бихарÑкий"}
+ bh{"бихари"}
bho{"бходжпури"}
bi{"биÑлама"}
bik{"бикольÑкий"}
bin{"бини"}
bla{"ÑикÑика"}
+ bm{"бамбарийÑкий"}
bn{"бенгальÑкий"}
bnt{"банту (другие)"}
bo{"тибетÑкий"}
br{"бретонÑкий"}
bra{"брауи"}
+ bs{"боÑнийÑкий"}
+ btk{"батакÑкий"}
bua{"бурÑÑ‚Ñкий"}
bug{"бугийÑкий"}
ca{"каталанÑкий"}
cad{"каддо"}
- cai{"центральной Ðмерики индейцев (другие)"}
+ cai{"Центральной Ðмерики индейцев (другие)"}
car{"кариб"}
cau{"кавказÑкие (другие)"}
+ ce{"чеченÑкий"}
+ ceb{"кебуано"}
+ ch{"чаморро"}
chb{"чибча"}
chg{"чагатайÑкий"}
chk{"чукотÑкий"}
- chm{"марийÑкий (ЧеремиÑÑкий)"}
+ chm{"марийÑкий (черемиÑÑкий)"}
chn{"чинук жаргон"}
cho{"чоктав"}
+ chp{"чипеваÑн"}
chr{"чероки"}
chy{"чейенн"}
co{"корÑиканÑкий"}
cop{"коптÑкий"}
cpe{"англо-креольÑкие и пиджины (другие)"}
cpf{"франко-креольÑкие и пиджины (другие)"}
- cpp{"Португало-креольÑкие и пиджины (другие)"}
+ cpp{"португало-креольÑкие и пиджины (другие)"}
+ cr{"криийÑкий"}
crp{"креольÑкие и пиджины (другие)"}
cs{"чешÑкий"}
+ csb{"кашубианÑкий"}
+ cu{"церковноÑлавÑнÑкий"}
cus{"кушитÑкие (другие)"}
cv{"чувашÑкий"}
cy{"валлийÑкий"}
@@ -1110,13 +1205,15 @@ ru{
dak{"дакота"}
de{"немецкий"}
del{"делаварÑкий"}
+ den{"ÑлÑйви"}
din{"динка"}
doi{"догри"}
dra{"дравидийÑкие (другие)"}
dua{"дуала"}
dum{"нидерландÑкий Ñредневековый"}
dyu{"диула (дьюла)"}
- dz{"бутанÑкий"}
+ dz{"дзонг-кÑ"}
+ ee{"Ñве"}
efi{"Ñфик"}
egy{"древнеегипетÑкий"}
eka{"Ñкаджук"}
@@ -1133,6 +1230,7 @@ ru{
fan{"фанг"}
fat{"фанти"}
fi{"финÑкий"}
+ fil{"филиппинÑкий"}
fiu{"финно-угорÑкие (другие)"}
fj{"фиджи"}
fo{"фарерÑкий"}
@@ -1140,87 +1238,114 @@ ru{
fr{"французÑкий"}
frm{"ÑреднефранцузÑкий"}
fro{"ÑтарофранцузÑкий"}
+ fur{"фриуланÑкий"}
fy{"фризÑкий"}
ga{"ирландÑкий"}
gaa{"га"}
gay{"гайо"}
- gd{"гаÑльÑкий"}
+ gba{"гбаÑ"}
+ gd{"гÑльÑкий"}
gem{"германÑкие (другие)"}
gez{"геÑз"}
gil{"гильбертÑкий"}
- gl{"галицийÑкий"}
+ gl{"галиÑийÑкий"}
gmh{"Ñредневерхненемецкий"}
gn{"гуарани"}
goh{"Ñтароверхненемецкий"}
gon{"гонди"}
got{"готÑкий"}
+ grb{"гребо"}
grc{"древнегречеÑкий"}
- gu{"гуÑрати"}
- ha{"хоÑа"}
+ gu{"гуджарати"}
+ gv{"мÑнÑкий"}
+ gwi{"гвичин"}
+ ha{"хауÑа"}
hai{"хайда"}
haw{"гавайÑкий"}
he{"иврит"}
hi{"хинди"}
hil{"хилигайнон"}
him{"химачали"}
+ hit{"хетÑкий"}
+ hmn{"хмонг"}
hr{"хорватÑкий"}
+ ht{"гаитÑнÑкий"}
hu{"венгерÑкий"}
hup{"Хупа"}
hy{"армÑнÑкий"}
- ia{"Ñмешанный Ñзык"}
+ hz{"гереро"}
+ ia{"интерлингва"}
iba{"ибанÑкий"}
id{"индонезийÑкий"}
- ie{"Ñмешанный Ñзык"}
+ ie{"интерлингве"}
+ ig{"игбо"}
ijo{"иджо"}
- ik{"инапиак"}
+ ik{"инупиак"}
ilo{"илоко"}
inc{"индийÑкие (другие)"}
+ ine{"индоевропейÑкие (другие)"}
+ inh{"ингушÑкий"}
ira{"иранÑкие (другие)"}
iro{"ирокезÑкие Ñзыки"}
is{"иÑландÑкий"}
it{"итальÑнÑкий"}
- iu{"инактитут"}
+ iu{"инуктитут"}
ja{"ÑпонÑкий"}
+ jbo{"ложбан"}
jpr{"еврейÑко-перÑидÑкий"}
jrb{"еврейÑко-арабÑкий"}
jv{"ÑванÑкий"}
ka{"грузинÑкий"}
kaa{"каракалпакÑкий"}
kab{"кабильÑкий"}
+ kac{"качин"}
kam{"камба"}
kar{"каренÑкий"}
kaw{"кави"}
+ kbd{"кабардинÑкий"}
+ kg{"конго"}
kha{"кхаÑи"}
khi{"койÑанÑкие (другие)"}
kho{"хотанÑкий"}
+ ki{"кикуйю"}
+ kj{"кунама"}
kk{"казахÑкий"}
- kl{"гренландÑкий"}
- km{"камбоджийÑкий"}
- kn{"канада"}
+ kl{"ÑÑкимоÑÑкий (гренландÑкий)"}
+ km{"кхмерÑкий"}
+ kmb{"кимбундийÑкий"}
+ kn{"каннада"}
ko{"корейÑкий"}
kok{"конкани"}
kpe{"кпелле"}
+ kr{"канури"}
+ krc{"карачаево-балкарÑкий"}
kro{"кру"}
- ks{"кашмирÑкий"}
- ku{"курдиш"}
+ kru{"курух"}
+ ks{"кашмири"}
+ ku{"курдÑкий"}
kum{"кумыкÑкий"}
kut{"кутенаи"}
+ kv{"коми"}
+ kw{"корнийÑкий"}
ky{"киргизÑкий"}
la{"латинÑкий"}
lad{"ладино"}
lah{"лахнда"}
lam{"ламба"}
+ lb{"люкÑембургÑкий"}
lez{"лезгинÑкий"}
+ lg{"ганда"}
ln{"лингала"}
lo{"лаоÑÑкий"}
lol{"монго"}
loz{"лози"}
lt{"литовÑкий"}
- lu{"луба-Катанга"}
+ lu{"луба-катанга"}
+ lua{"луба-лулуа"}
lui{"луиÑеньо"}
lun{"лунда"}
luo{"луо (ÐšÐµÐ½Ð¸Ñ Ð¸ ТанзаниÑ)"}
- lv{"латвийÑкий"}
+ lv{"латышÑкий"}
mad{"мадурÑкий"}
mag{"магахи"}
mai{"майтхили"}
@@ -1228,9 +1353,12 @@ ru{
man{"мандинго"}
map{"авÑтронезийÑкие (другие)"}
mas{"маÑаи"}
+ mdf{"мокша"}
+ mdr{"мандарÑкий"}
men{"менде"}
mg{"малагаÑийÑкий"}
mga{"ÑреднеирландÑкий"}
+ mh{"маршальÑкий"}
mi{"маори"}
mic{"микмак"}
min{"минангкабау"}
@@ -1239,12 +1367,13 @@ ru{
mkh{"монкхмерÑкие (другие)"}
ml{"малаÑлам"}
mn{"монгольÑкий"}
+ mnc{"маньчжурÑкий"}
mni{"манипурÑкий"}
mno{"манобо Ñзыки"}
mo{"молдавÑкий"}
moh{"мохаук"}
mos{"моей"}
- mr{"маратийÑкий"}
+ mr{"маратхи"}
ms{"малайÑкий"}
mt{"мальтийÑкий"}
mul{"разных Ñемей Ñзыки"}
@@ -1253,32 +1382,41 @@ ru{
mwr{"марвари"}
my{"бирманÑкий"}
myn{"Ð¼Ð°Ð¹Ñ Ñзыки"}
+ myv{"ÑрзÑ"}
na{"науру"}
nah{"ацтекÑкий"}
- nai{"Ñеверной Ðмерики индейцев (другие)"}
+ nai{"Северной Ðмерики индейцев (другие)"}
+ nap{"неаполитанÑкий"}
+ nd{"ндебели (Ñеверный)"}
+ nds{"нижнегерманÑкий; нижнеÑакÑонÑкий"}
ne{"непальÑкий"}
new{"неварÑкий"}
nic{"нигер-кордофанÑкие (другие)"}
niu{"ниуÑ"}
nl{"голландÑкий"}
+ nn{"новонорвежÑкий"}
no{"норвежÑкий"}
nog{"ногайÑкий"}
non{"ÑтаронорвежÑкий"}
+ nr{"ндебели (южный)"}
nso{"Ñото Ñеверный"}
nub{"нубийÑкие Ñзыки"}
+ nv{"навахо"}
+ nwc{"невари (клаÑÑичеÑкий)"}
+ ny{"ньÑнджа"}
nym{"ньÑмвези"}
nyn{"ньÑнколе"}
nyo{"ньоро"}
nzi{"нзима"}
- oc{"окитан"}
+ oc{"окÑитанÑкий"}
oj{"оджибва"}
- om{"оромо (Ðфан)"}
+ om{"оромо"}
or{"ориÑ"}
os{"оÑетинÑкий"}
osa{"оÑеджи"}
ota{"Ñтаротурецкий"}
oto{"отомангÑкие Ñзыки"}
- pa{"панджабÑкий"}
+ pa{"панджаби (пенджаби)"}
paa{"папуаÑÑко-авÑтралийÑкие (другие)"}
pag{"пангаÑинан"}
pal{"пехлевийÑкий"}
@@ -1286,35 +1424,39 @@ ru{
pap{"папьÑменто"}
pau{"палау"}
peo{"ÑтароперÑидÑкий"}
+ phi{"филиппинÑкие (другие)"}
phn{"финикийÑкий"}
pi{"пали"}
pl{"польÑкий"}
pon{"понапе"}
pra{"пракриты Ñзыки"}
pro{"ÑтаропрованÑальÑкий"}
- ps{"пашто (пушто)"}
+ ps{"пашто (пушту)"}
pt{"португальÑкий"}
qu{"кечуа"}
raj{"раджаÑтхани"}
- rm{"раето-романÑкий"}
- rn{"кирундийÑкий"}
+ rar{"раротонганÑкий"}
+ rm{"ретороманÑкий"}
+ rn{"рунди"}
ro{"румынÑкий"}
roa{"романÑкие (другие)"}
rom{"цыганÑкий"}
ru{"руÑÑкий"}
- rw{"кинÑрванда"}
+ rw{"киньÑруанда"}
sa{"ÑанÑкрит"}
sad{"Ñандаве"}
sah{"ÑкутÑкий"}
sai{"южной америки индейцев (другие)"}
sal{"ÑалишÑкие Ñзыки"}
sam{"ÑамаритÑнÑкий арамейÑкий"}
- sd{"Ñинди"}
+ sc{"ÑардинÑкий"}
+ sd{"Ñиндхи"}
+ se{"ÑаамÑкий (Ñеверный)"}
sel{"ÑелькупÑкий"}
sem{"ÑемитÑкие (другие)"}
sg{"Ñанго"}
sga{"ÑтароирландÑкий"}
- sh{"ÑербÑко-хорватÑкий"}
+ sh{"ÑербÑкохорватÑкий"}
shn{"шанÑкий"}
si{"ÑингальÑкий"}
sid{"Ñидама"}
@@ -1323,45 +1465,56 @@ ru{
sk{"Ñловацкий"}
sl{"ÑловенÑкий"}
sla{"ÑлавÑнÑкие (другие)"}
- sm{"Ñамоа"}
+ sm{"ÑамоанÑкий"}
+ sma{"ÑаамÑкий (южный)"}
smi{"ÑаамÑкие Ñзыки"}
sn{"шона"}
+ snk{"ÑонинкийÑкий"}
so{"Ñомали"}
sog{"ÑогдийÑкий"}
+ son{"cонгаи"}
sq{"албанÑкий"}
sr{"ÑербÑкий"}
- ss{"ÑиÑвати"}
+ srr{"Ñерер"}
+ ss{"Ñвази"}
ssa{"нило-ÑахарÑкие (другие)"}
- st{"ÑеÑото"}
- su{"ÑанданизÑкий"}
+ st{"Ñото южный"}
+ su{"ÑунданÑкий"}
suk{"Ñукума"}
sus{"ÑуÑу"}
sux{"шумерÑкий"}
sv{"шведÑкий"}
sw{"Ñуахили"}
+ syr{"ÑирийÑкий"}
ta{"тамильÑкий"}
- tai{"татÑкий"}
+ tai{"тайÑкие (другие)"}
te{"телугу"}
ter{"терено"}
tg{"таджикÑкий"}
th{"тайÑкий"}
- ti{"тигриниа"}
+ ti{"тигриньÑ"}
tig{"тигре"}
tiv{"тиви"}
tk{"туркменÑкий"}
+ tkl{"токелайÑкий"}
tl{"тагалог"}
+ tlh{"клингон"}
tli{"тлингит"}
tmh{"тамашек"}
- tn{"ÑетÑвана"}
+ tn{"Ñ‚Ñвана"}
to{"тонга"}
tog{"тонга (ньÑÑа)"}
tr{"турецкий"}
ts{"Ñ‚Ñонга"}
tsi{"цимшиан"}
tt{"татарÑкий"}
+ tum{"тумбука"}
+ tup{"тупи"}
tut{"алтайÑкие (другие)"}
tw{"тви"}
+ ty{"таитÑнÑкий"}
tyv{"тувинÑкий"}
+ udm{"удмуртÑкий"}
ug{"уйгурÑкий"}
uga{"угаритÑкий"}
uk{"украинÑкий"}
@@ -1370,25 +1523,28 @@ ru{
ur{"урду"}
uz{"узбекÑкий"}
vai{"ваи"}
+ ve{"венда"}
vi{"вьетнамÑкий"}
- vo{"волапак"}
- vot{"удмуртÑкий (ВотÑцкий)"}
+ vo{"волапюк"}
+ vot{"удмуртÑкий (вотÑцкий)"}
wak{"вакашÑкие Ñзыки"}
wal{"воламо"}
war{"варай"}
was{"вашо"}
wen{"лужицкие Ñзыки"}
wo{"волоф"}
- xh{"хоза"}
+ xal{"калмыцкий"}
+ xh{"кÑоза"}
yao{"Ñо"}
yap{"Ñп"}
yi{"идиш"}
yo{"йоруба"}
- za{"зуанг"}
+ za{"чжуань"}
zap{"ÑапотекÑкий"}
zen{"зенагÑкий"}
zh{"китайÑкий"}
- zu{"зулуÑÑкий"}
+ znd{"занди"}
+ zu{"зулу"}
zun{"зуньи"}
}
LocaleScript{
@@ -1405,9 +1561,15 @@ ru{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "#,##0.00¤",
+ "#,##0%",
+ "#E0",
+ }
Scripts{
Arab{"ÐрабÑкаÑ"}
Armn{"ÐрмÑнÑкаÑ"}
@@ -1459,12 +1621,14 @@ ru{
Thai{"ТайÑкаÑ"}
Tibt{"ТибетÑкаÑ"}
Ugar{"УгаритÑкаÑ"}
+ Xpeo{"СтароперÑидÑкаÑ"}
+ Xsux{"Шумеро-аккадÑÐºÐ°Ñ ÐºÐ»Ð¸Ð½Ð¾Ð¿Ð¸ÑÑŒ"}
Yiii{"Йи (ицзу)"}
Zyyy{"ÐеопределеннаÑ"}
}
Types{
calendar{
- buddhist{"БуддиÑÑ‚Ñкий календарь"}
+ buddhist{"БуддийÑкий календарь"}
chinese{"КитайÑкий календарь"}
gregorian{"ГригорианÑкий календарь"}
hebrew{"ЕврейÑкий календарь"}
@@ -1473,20 +1637,16 @@ ru{
japanese{"ЯпонÑкий календарь"}
}
}
- Version{"1.58"}
+ Version{"1.90"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
"H:mm:ss",
"H:mm",
- "d MMMM yyyy 'г.'",
- "d MMMM yyyy 'г.'",
+ "d MMMM yyyy\u00a0'г.'",
+ "d MMMM yyyy\u00a0'г.'",
"dd.MM.yyyy",
"dd.MM.yy",
"{1} {0}",
@@ -1530,6 +1690,14 @@ ru{
"н.Ñ.",
}
}
+ fields{
+ day{
+ dn{"День"}
+ }
+ weekday{
+ dn{"День недели"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1620,7 +1788,692 @@ ru{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1-й кв.",
+ "2-й кв.",
+ "3-й кв.",
+ "4-й кв.",
+ }
+ wide{
+ "1-й квартал",
+ "2-й квартал",
+ "3-й квартал",
+ "4-й квартал",
+ }
+ }
+ }
+ }
+ hebrew{
+ monthNames{
+ format{
+ abbreviated{
+ "Тишрей",
+ "Хешван",
+ "КиÑлев",
+ "Тевет",
+ "Шеват",
+ "Adar I",
+ "Ðдар",
+ "ÐиÑан",
+ "ИÑÑ€",
+ "Сиван",
+ "Таммуз",
+ "Ðв",
+ "Элул",
+ }
+ wide{
+ "Тишрей",
+ "Хешван",
+ "КиÑлев",
+ "Тевет",
+ "Шеват",
+ "Adar I",
+ "Ðдар",
+ "ÐиÑан",
+ "ИÑÑ€",
+ "Сиван",
+ "Таммуз",
+ "Ðв",
+ "Элул",
+ }
+ }
+ }
+ }
+ islamic{
+ monthNames{
+ format{
+ abbreviated{
+ "Мухаррам",
+ "Сафар",
+ "Раби-уль-авваль",
+ "Раби-уль-ахир",
+ "Джумад-уль-авваль",
+ "Джумад-уль-ахир",
+ "Раджаб",
+ "Шаабан",
+ "Рамадан",
+ "Шавваль",
+ "Зуль-Каада",
+ "Зуль-Хиджжа",
+ }
+ wide{
+ "Мухаррам",
+ "Сафар",
+ "Раби-уль-авваль",
+ "Раби-уль-ахир",
+ "Джумад-уль-авваль",
+ "Джумад-уль-ахир",
+ "Раджаб",
+ "Шаабан",
+ "Рамадан",
+ "Шавваль",
+ "Зуль-Каада",
+ "Зуль-Хиджжа",
+ }
+ }
+ }
+ }
+ persian{
+ DateTimePatterns{
+ "H:mm:ss z",
+ "H:mm:ss z",
+ "H:mm:ss",
+ "ЭÑфанд",
+ "d MMMM yyyy\u00a0'г.'",
+ "d MMMM yyyy\u00a0'г.'",
+ "dd.MM.yyyy",
+ "dd.MM.yy",
+ "{1} {0}",
+ }
+ monthNames{
+ format{
+ abbreviated{
+ "Фарвардин",
+ "Ордибехешт",
+ "Хордад",
+ "Тир",
+ "Мордад",
+ "Шахривер",
+ "Мехр",
+ "Ðбан",
+ "Ðзер",
+ "Дей",
+ "Бахман",
+ "ЭÑфанд",
+ }
+ wide{
+ "Фарвардин",
+ "Ордибехешт",
+ "Хордад",
+ "Тир",
+ "Мордад",
+ "Шахривер",
+ "Мехр",
+ "Ðбан",
+ "Ðзер",
+ "Дей",
+ "Бахман",
+ "ЭÑфанд",
+ }
+ }
+ }
}
}
+ delimiters{
+ alternateQuotationEnd{"“"}
+ alternateQuotationStart{"„"}
+ quotationEnd{"»"}
+ quotationStart{"«"}
+ }
+ layout{
+ /**
+ * Used for figuring out the casing of characters in a list.
+ */
+ casing{"titlecase-firstword"}
+ }
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Bamako"{
+ ec{"Бамако"}
+ }
+ "Africa:Ceuta"{
+ ec{"Сеута"}
+ }
+ "Africa:Kinshasa"{
+ ec{"КиншаÑа"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Лубумбаши"}
+ }
+ "Africa:Timbuktu"{
+ ec{"Тимбукту"}
+ }
+ "America:Adak"{
+ ec{"Ðдак, о-в"}
+ }
+ "America:Anchorage"{
+ ec{"Ðнкоридж"}
+ }
+ "America:Araguaina"{
+ ec{"Ðрагуаина"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Комодоро-РивадавиÑ"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"Ла-Риоха"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Рио-ГальегоÑ"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"Сан-Хуан"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Тукуман"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"УшуаÑ"}
+ }
+ "America:Bahia"{
+ ec{"БаиÑ"}
+ }
+ "America:Belem"{
+ ec{"Белен"}
+ }
+ "America:Boa_Vista"{
+ ec{"Боа-ВиÑта"}
+ }
+ "America:Boise"{
+ ec{"БойÑе"}
+ }
+ "America:Buenos_Aires"{
+ ec{"БуÑноÑ-ÐйреÑ"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"Кеймбридж-Бей"}
+ }
+ "America:Campo_Grande"{
+ ec{"Кампу-Гранди"}
+ }
+ "America:Cancun"{
+ ec{"Канкун"}
+ }
+ "America:Catamarca"{
+ ec{"Катамарка"}
+ }
+ "America:Chicago"{
+ ec{"Чикаго"}
+ }
+ "America:Chihuahua"{
+ ec{"Чиуауа"}
+ }
+ "America:Coral_Harbour"{
+ ec{"Корал-Харбор"}
+ }
+ "America:Cordoba"{
+ ec{"Кордова"}
+ }
+ "America:Cuiaba"{
+ ec{"КуÑба"}
+ }
+ "America:Danmarkshavn"{
+ ec{"ДенмаркÑхавн"}
+ }
+ "America:Dawson"{
+ ec{"ДоуÑон"}
+ }
+ "America:Dawson_Creek"{
+ ec{"ДоÑон-Крик"}
+ }
+ "America:Denver"{
+ ec{"Денвер"}
+ }
+ "America:Detroit"{
+ ec{"Детройт"}
+ }
+ "America:Edmonton"{
+ ec{"Эдмонтон"}
+ }
+ "America:Eirunepe"{
+ ec{"Эйрунепе"}
+ }
+ "America:Fortaleza"{
+ ec{"Форталеза"}
+ }
+ "America:Glace_Bay"{
+ ec{"ГлейÑ-Бей"}
+ }
+ "America:Godthab"{
+ ec{"Готхоб"}
+ }
+ "America:Goose_Bay"{
+ ec{"ГуÑ-Бей"}
+ }
+ "America:Guayaquil"{
+ ec{"ГуаÑкиль"}
+ }
+ "America:Halifax"{
+ ec{"ГалифакÑ"}
+ }
+ "America:Hermosillo"{
+ ec{"ЭрмоÑильо"}
+ }
+ "America:Indiana:Knox"{
+ ec{"ÐокÑ"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"Маренго"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"ПетерÑбург"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"ВивÑй"}
+ }
+ "America:Indiana:Vincennes"{
+ ec{"ВинÑенÑ"}
+ }
+ "America:Indianapolis"{
+ ec{"ИндианаполиÑ"}
+ }
+ "America:Inuvik"{
+ ec{"Инувик"}
+ }
+ "America:Iqaluit"{
+ ec{"Икалуит"}
+ }
+ "America:Jujuy"{
+ ec{"Жужуй"}
+ }
+ "America:Juneau"{
+ ec{"Джуно"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"МонтиÑелло"}
+ }
+ "America:Los_Angeles"{
+ ec{"ЛоÑ-ÐнджелеÑ"}
+ }
+ "America:Louisville"{
+ ec{"ЛуиÑвилл"}
+ }
+ "America:Maceio"{
+ ec{"МаÑейо"}
+ }
+ "America:Manaus"{
+ ec{"МанауÑ"}
+ }
+ "America:Mazatlan"{
+ ec{"МаÑатлан"}
+ }
+ "America:Mendoza"{
+ ec{"МендоÑа"}
+ }
+ "America:Menominee"{
+ ec{"Меномини"}
+ }
+ "America:Merida"{
+ ec{"Мерида"}
+ }
+ "America:Mexico_City"{
+ ec{"Мехико"}
+ }
+ "America:Monterrey"{
+ ec{"Монтеррей"}
+ }
+ "America:Montreal"{
+ ec{"Монреаль"}
+ }
+ "America:New_York"{
+ ec{"Ðью-Йорк"}
+ }
+ "America:Nipigon"{
+ ec{"Ðипигон"}
+ }
+ "America:Nome"{
+ ec{"Ðом"}
+ }
+ "America:Noronha"{
+ ec{"Ðоронха"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"Ð¡ÐµÐ²ÐµÑ€Ð½Ð°Ñ Ð”Ð°ÐºÐ¾Ñ‚Ð° - Центр"}
+ }
+ "America:Pangnirtung"{
+ ec{"Пангниртанг"}
+ }
+ "America:Phoenix"{
+ ec{"ФиникÑ"}
+ }
+ "America:Porto_Velho"{
+ ec{"Порту-Велью"}
+ }
+ "America:Rainy_River"{
+ ec{"Рейни-Ривер"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"Ранкин-Инлет"}
+ }
+ "America:Recife"{
+ ec{"РеÑифи"}
+ }
+ "America:Regina"{
+ ec{"Реджайна"}
+ }
+ "America:Rio_Branco"{
+ ec{"Риу-Бранку"}
+ }
+ "America:Santiago"{
+ ec{"СантьÑго"}
+ }
+ "America:Sao_Paulo"{
+ ec{"Сан-Паулу"}
+ }
+ "America:Scoresbysund"{
+ ec{"СкорÑбиÑунн"}
+ }
+ "America:Shiprock"{
+ ec{"Шипрок"}
+ }
+ "America:St_Johns"{
+ ec{"Сент-ДжонÑ"}
+ }
+ "America:Swift_Current"{
+ ec{"Свифт-Карент"}
+ }
+ "America:Thule"{
+ ec{"Туле"}
+ }
+ "America:Thunder_Bay"{
+ ec{"Тандер-Бей"}
+ }
+ "America:Tijuana"{
+ ec{"Тихуана"}
+ }
+ "America:Toronto"{
+ ec{"Торонто"}
+ }
+ "America:Vancouver"{
+ ec{"Ванкувер"}
+ }
+ "America:Whitehorse"{
+ ec{"УайтхорÑ"}
+ }
+ "America:Winnipeg"{
+ ec{"Виннипег"}
+ }
+ "America:Yakutat"{
+ ec{"Якутат"}
+ }
+ "America:Yellowknife"{
+ ec{"Йеллоунайф"}
+ }
+ "Antarctica:Casey"{
+ ec{"КейÑи"}
+ }
+ "Antarctica:Davis"{
+ ec{"ДейвиÑ"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Дюмон-д'Юрвиль"}
+ }
+ "Antarctica:Mawson"{
+ ec{"МоуÑон"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"Мак-Мердо"}
+ }
+ "Antarctica:Palmer"{
+ ec{"Палмер"}
+ }
+ "Antarctica:Rothera"{
+ ec{"Ротера"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Южный полюÑ"}
+ }
+ "Antarctica:Syowa"{
+ ec{"Сева"}
+ }
+ "Antarctica:Vostok"{
+ ec{"ВоÑток"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"Лонгйир"}
+ }
+ "Asia:Almaty"{
+ ec{"Ðлматы"}
+ }
+ "Asia:Anadyr"{
+ ec{"Ðнадырь"}
+ }
+ "Asia:Aqtau"{
+ ec{"Ðктау"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Ðктобе (ÐктюбинÑк)"}
+ }
+ "Asia:Choibalsan"{
+ ec{"ЧойбалÑан"}
+ }
+ "Asia:Chongqing"{
+ ec{"Чунцин"}
+ }
+ "Asia:Harbin"{
+ ec{"Харбин"}
+ }
+ "Asia:Hovd"{
+ ec{"Ховд"}
+ }
+ "Asia:Irkutsk"{
+ ec{"ИркутÑк"}
+ }
+ "Asia:Jakarta"{
+ ec{"Джакарта"}
+ }
+ "Asia:Jayapura"{
+ ec{"Джайпур"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Камчатка, п-ов"}
+ }
+ "Asia:Kashgar"{
+ ec{"Кашгар"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"КраÑноÑÑ€Ñк"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"Куала-Лумпур"}
+ }
+ "Asia:Kuching"{
+ ec{"Кучинг"}
+ }
+ "Asia:Magadan"{
+ ec{"Магадан"}
+ }
+ "Asia:Makassar"{
+ ec{"МакаÑар"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"ÐовоÑибирÑк"}
+ }
+ "Asia:Omsk"{
+ ec{"ОмÑк"}
+ }
+ "Asia:Oral"{
+ ec{"Орал (УральÑк)"}
+ }
+ "Asia:Pontianak"{
+ ec{"Понтианак"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Кызылорда"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Сахалин, о-в"}
+ }
+ "Asia:Samarkand"{
+ ec{"Самарканд"}
+ }
+ "Asia:Shanghai"{
+ ec{"Шанхай"}
+ }
+ "Asia:Tashkent"{
+ ec{"Ташкент"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Улан-Батор"}
+ }
+ "Asia:Urumqi"{
+ ec{"Урумчи"}
+ }
+ "Asia:Vladivostok"{
+ ec{"ВладивоÑток"}
+ }
+ "Asia:Yakutsk"{
+ ec{"ЯкутÑк"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Екатеринбург"}
+ }
+ "Atlantic:Azores"{
+ ec{"ÐзорÑкие о-ва"}
+ }
+ "Atlantic:Canary"{
+ ec{"КанарÑкие о-ва"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"Ян-Майен, о-в"}
+ }
+ "Atlantic:Madeira"{
+ ec{"Мадейра, о-в"}
+ }
+ "Australia:Adelaide"{
+ ec{"Ðделаида"}
+ }
+ "Australia:Brisbane"{
+ ec{"БриÑбен"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"Брокен-Хилл"}
+ }
+ "Australia:Darwin"{
+ ec{"Дарвин"}
+ }
+ "Australia:Hobart"{
+ ec{"Хобарт"}
+ }
+ "Australia:Lindeman"{
+ ec{"Линдеман"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"Лорд-Хау, о-в"}
+ }
+ "Australia:Melbourne"{
+ ec{"Мельбурн"}
+ }
+ "Australia:Perth"{
+ ec{"Перт"}
+ }
+ "Australia:Sydney"{
+ ec{"Сидней"}
+ }
+ "Europe:Belfast"{
+ ec{"БелфаÑÑ‚"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Калининград"}
+ }
+ "Europe:Kiev"{
+ ec{"Киев"}
+ }
+ "Europe:Lisbon"{
+ ec{"ЛиÑÑабон"}
+ }
+ "Europe:London"{
+ ec{"Лондон"}
+ }
+ "Europe:Madrid"{
+ ec{"Мадрид"}
+ }
+ "Europe:Moscow"{
+ ec{"МоÑква"}
+ }
+ "Europe:Samara"{
+ ec{"Самара"}
+ }
+ "Europe:Simferopol"{
+ ec{"Симферополь"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Ужгород"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Запорожье"}
+ }
+ "Pacific:Auckland"{
+ ec{"Окленд"}
+ }
+ "Pacific:Chatham"{
+ ec{"Чатем, о-в"}
+ }
+ "Pacific:Easter"{
+ ec{"ПаÑхи, о-в"}
+ }
+ "Pacific:Enderbury"{
+ ec{"Эндербери, о-в"}
+ }
+ "Pacific:Galapagos"{
+ ec{"ГалапагоÑ, о-ва"}
+ }
+ "Pacific:Gambier"{
+ ec{"Гамбье, о-ва"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Гонолулу"}
+ }
+ "Pacific:Johnston"{
+ ec{"ДжонÑтон, ат."}
+ }
+ "Pacific:Kiritimati"{
+ ec{"Киритимати"}
+ }
+ "Pacific:Kosrae"{
+ ec{"КоÑрае"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"Кваджалейн"}
+ }
+ "Pacific:Majuro"{
+ ec{"Маджуро"}
+ }
+ "Pacific:Marquesas"{
+ ec{"МаркизÑкие о-ва"}
+ }
+ "Pacific:Midway"{
+ ec{"МидуÑй, о-ва"}
+ }
+ "Pacific:Ponape"{
+ ec{"Понапе, о-в"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Таити, о-в"}
+ }
+ "Pacific:Tarawa"{
+ ec{"Тарава"}
+ }
+ "Pacific:Truk"{
+ ec{"Трук, о-ва"}
+ }
+ "Pacific:Wake"{
+ ec{"УÑйк, о-в"}
+ }
+ "Pacific:Yap"{
+ ec{"Яп, о-ва"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ru_RU.txt b/Build/source/libs/icu-xetex/data/locales/ru_RU.txt
index 624e8682291..85d205e155e 100644
--- a/Build/source/libs/icu-xetex/data/locales/ru_RU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ru_RU.txt
@@ -1,17 +1,38 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ru_RU.xml
+// * Source File:<path>/common/main/ru_RU.xml
// *
// ***************************************************************************
ru_RU{
- NumberPatterns{
- "#,##0.###",
- "#,##0.00¤",
- "#,##0%",
- "#E0",
+ Currencies{
+ ESB{
+ "ESB",
+ "ИÑпанÑÐºÐ°Ñ Ð¿ÐµÑета (Ð) ()",
+ }
+ RHD{
+ "RHD",
+ "РодезийÑкий доллар",
+ }
+ YUM{
+ "YUM",
+ "ЮгоÑлавÑкий новый динар",
+ }
+ }
+ Languages{
+ apa{"апачÑкие Ñзыки"}
+ tlh{"клингонÑкий"}
+ }
+ Types{
+ calendar{
+ buddhist{"БуддийÑкий кадендарь"}
+ }
+ }
+ Version{"1.43"}
+ measurementSystemNames{
+ US{"Ðнгло-американÑкаÑ"}
+ metric{"МетричеÑкаÑ"}
}
- Version{"1.29"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ru_UA.txt b/Build/source/libs/icu-xetex/data/locales/ru_UA.txt
index 7e7071b0780..a3452b5514e 100644
--- a/Build/source/libs/icu-xetex/data/locales/ru_UA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ru_UA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ru_UA.xml
+// * Source File:<path>/common/main/ru_UA.xml
// *
// ***************************************************************************
ru_UA{
@@ -13,7 +13,7 @@ ru_UA{
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Version{"1.38"}
calendar{
gregorian{
DateTimePatterns{
diff --git a/Build/source/libs/icu-xetex/data/locales/sh.txt b/Build/source/libs/icu-xetex/data/locales/sh.txt
index 987405ed67a..8bf1ee313b2 100644
--- a/Build/source/libs/icu-xetex/data/locales/sh.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sh.txt
@@ -1,11 +1,14 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sh.xml
+// * Source File:<path>/common/main/sh.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/sh.xml
+ */
sh{
"%%ALIAS"{"sr_Latn"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sh_CS.txt b/Build/source/libs/icu-xetex/data/locales/sh_CS.txt
index 23654905e43..490d86c9c1d 100644
--- a/Build/source/libs/icu-xetex/data/locales/sh_CS.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sh_CS.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sh_CS.xml
+// * Source File:<path>/common/main/sh_CS.xml
// *
// ***************************************************************************
sh_CS{
diff --git a/Build/source/libs/icu-xetex/data/locales/sh_YU.txt b/Build/source/libs/icu-xetex/data/locales/sh_YU.txt
index d63f2650a3f..d9b48d039b4 100644
--- a/Build/source/libs/icu-xetex/data/locales/sh_YU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sh_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sh_YU.xml
+// * Source File:<path>/common/main/sh_YU.xml
// *
// ***************************************************************************
sh_YU{
diff --git a/Build/source/libs/icu-xetex/data/locales/sk.txt b/Build/source/libs/icu-xetex/data/locales/sk.txt
index d5f014750a2..0393fdedc02 100644
--- a/Build/source/libs/icu-xetex/data/locales/sk.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sk.txt
@@ -1,24 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sk.xml
+// * Source File:<path>/common/main/sk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sk.xml
+ * ICU <specials> source: <path>/xml/main/sk.xml
*/
sk{
Countries{
001{"Svet"}
002{"Afrika"}
005{"Južná Amerika"}
+ 011{"Západná Afrika"}
013{"Stredná Amerika"}
014{"Východná Afrika"}
015{"Severná Afrika"}
017{"Stredná Afrika"}
- 018{"Južná Afrika"}
+ 018{"Južná Afrika [018]"}
019{"Americký kontinent"}
021{"Severná Amerika"}
029{"Karibik"}
@@ -1192,7 +1193,7 @@ sk{
}
YUD{
"YUD",
- "Juhoslávsky dinár",
+ "Juhoslávsky dinár [YUD]",
}
YUM{
"YUM",
@@ -1227,7 +1228,10 @@ sk{
"Zimbabský dolár",
}
}
- ExemplarCharacters{"[a-z ý á é í ó ú ä ô ĺ Å• Ä Ä Ä¾ ň Å¡ Å¥ ž]"}
+ ExemplarCharacters{
+ "[a á ä b c Ä d Ä e é f-h {ch} i í j-l ĺ ľ m n ň o ó ô p-r Å• s Å¡ t Å¥ u ú v-y "
+ "ý z ž]"
+ }
Keys{
calendar{"Kalendár"}
collation{"Triedenie"}
@@ -1279,7 +1283,7 @@ sk{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1307,13 +1311,9 @@ sk{
traditional{"TradiÄné"}
}
}
- Version{"1.45"}
+ Version{"1.65"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
@@ -1412,7 +1412,77 @@ sk{
}
}
}
+ quarters{
+ format{
+ wide{
+ "1. štvrťrok",
+ "2. štvrťrok",
+ "3. štvrťrok",
+ "4. štvrťrok",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Antarctica:South_Pole"{
+ ec{"Južný pól"}
+ }
+ "Asia:Irkutsk"{
+ ec{"Irkutsko"}
+ }
+ "Asia:Kamchatka"{
+ ec{"KamÄatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsko"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sachalin"}
+ }
+ "Asia:Shanghai"{
+ ec{"Å anghaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulanbátar"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutsko"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekaterinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azorské ostrovy"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanárske ostrovy"}
+ }
+ "Europe:Kiev"{
+ ec{"Kyjev"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lisabon"}
+ }
+ "Europe:London"{
+ ec{"Londýn"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Užhorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Záporožie"}
+ }
+ "Pacific:Galapagos"{
+ ec{"Galapágy"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sk_SK.txt b/Build/source/libs/icu-xetex/data/locales/sk_SK.txt
index 108e1bb2fab..d8a88f9b3aa 100644
--- a/Build/source/libs/icu-xetex/data/locales/sk_SK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sk_SK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sk_SK.xml
+// * Source File:<path>/common/main/sk_SK.xml
// *
// ***************************************************************************
sk_SK{
@@ -13,5 +13,19 @@ sk_SK{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"“"}
+ alternateQuotationStart{"„"}
+ quotationEnd{"‘"}
+ quotationStart{"‚"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sl.txt b/Build/source/libs/icu-xetex/data/locales/sl.txt
index 2aa79556f1d..adbd152f115 100644
--- a/Build/source/libs/icu-xetex/data/locales/sl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sl.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sl.xml
+// * Source File:<path>/common/main/sl.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sl.xml
+ * ICU <specials> source: <path>/xml/main/sl.xml
*/
sl{
+ AuxExemplarCharacters{"[q w-y]"}
Countries{
001{"Svet"}
002{"Afrika"}
@@ -20,7 +21,7 @@ sl{
014{"Vzhodna Afrika"}
015{"Severna Afrika"}
017{"Centralna Afrika"}
- 018{"Južna Afrika"}
+ 018{"Južna Afrika [018]"}
019{"Amerike"}
021{"Severna Amerika"}
029{"Karibi"}
@@ -320,7 +321,7 @@ sl{
"Ameriški Dolar",
}
}
- ExemplarCharacters{"[a-pr-vzÄšž]"}
+ ExemplarCharacters{"[a-c Ä d-p r s Å¡ t-v z ž]"}
Keys{
calendar{"Kolendar"}
collation{"Zlaganje"}
@@ -372,7 +373,7 @@ sl{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -396,13 +397,9 @@ sl{
traditional{"Tradicionano zlaganje"}
}
}
- Version{"1.48"}
+ Version{"1.67"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"H:mm:ss z",
"H:mm:ss z",
@@ -452,6 +449,10 @@ sl{
"pr.n.Å¡.",
"po Kr.",
}
+ wide{
+ "pred našim štetjem",
+ "naše štetje",
+ }
}
monthNames{
format{
@@ -501,7 +502,62 @@ sl{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "Prvo Äetrtletje",
+ "Drugo Äetrtletje",
+ "Tretje Äetrtletje",
+ "ÄŒetrto Äetrtletje",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Kinshasa"{
+ ec{"Kinšasa"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Lubumbaši"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Južni pol"}
+ }
+ "Asia:Anadyr"{
+ ec{"Anadir"}
+ }
+ "Asia:Kamchatka"{
+ ec{"KamÄatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Shanghai"{
+ ec{"Å angaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Europe:Kiev"{
+ ec{"Kijev"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Užgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporožje"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sl_SI.txt b/Build/source/libs/icu-xetex/data/locales/sl_SI.txt
index 8377ff48655..56b3db52b6c 100644
--- a/Build/source/libs/icu-xetex/data/locales/sl_SI.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sl_SI.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sl_SI.xml
+// * Source File:<path>/common/main/sl_SI.xml
// *
// ***************************************************************************
sl_SI{
@@ -13,7 +13,7 @@ sl_SI{
"#,##0%",
"#E0",
}
- Version{"1.31"}
+ Version{"1.41"}
delimiters{
alternateQuotationEnd{"“"}
alternateQuotationStart{"„"}
diff --git a/Build/source/libs/icu-xetex/data/locales/so.txt b/Build/source/libs/icu-xetex/data/locales/so.txt
index c0f0000e8f2..34b8f7c73d8 100644
--- a/Build/source/libs/icu-xetex/data/locales/so.txt
+++ b/Build/source/libs/icu-xetex/data/locales/so.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/so.xml
+// * Source File:<path>/common/main/so.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/so.xml
+ * ICU <specials> source: <path>/xml/main/so.xml
*/
so{
Countries{
@@ -112,30 +112,10 @@ so{
ZW{"Simbaabwe"}
}
Currencies{
- EUR{
- "€",
- "EUR",
- }
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
- JPY{
- "Â¥",
- "JPY",
- }
KES{
"Ksh",
"KES",
}
- USD{
- "$",
- "USD",
- }
}
ExemplarCharacters{"[a-z]"}
Languages{
@@ -144,17 +124,13 @@ so{
LocaleScript{
"Latn",
}
- Version{"1.30"}
+ Version{"1.42"}
calendar{
gregorian{
AmPmMarkers{
"sn",
"gn",
}
- DateTimeElements:intvector{
- 7,
- 1,
- }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
@@ -187,6 +163,17 @@ so{
"Sabti",
}
}
+ stand-alone{
+ narrow{
+ "A",
+ "I",
+ "S",
+ "A",
+ "K",
+ "J",
+ "S",
+ }
+ }
}
eras{
abbreviated{
@@ -225,6 +212,22 @@ so{
"Bisha Laba iyo Tobnaad",
}
}
+ stand-alone{
+ narrow{
+ "K",
+ "L",
+ "S",
+ "A",
+ "S",
+ "L",
+ "T",
+ "S",
+ "S",
+ "T",
+ "K",
+ "L",
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/so_DJ.txt b/Build/source/libs/icu-xetex/data/locales/so_DJ.txt
index 8d3206a2707..8067d6a2118 100644
--- a/Build/source/libs/icu-xetex/data/locales/so_DJ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/so_DJ.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/so_DJ.xml
+// * Source File:<path>/common/main/so_DJ.xml
// *
// ***************************************************************************
so_DJ{
Currencies{
DJF{
"$",
- "DJF",
+ "Jabuuti Faran",
}
USD{
"US$",
@@ -23,5 +23,13 @@ so_DJ{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/so_ET.txt b/Build/source/libs/icu-xetex/data/locales/so_ET.txt
index 4b89817facf..da75f3ecccc 100644
--- a/Build/source/libs/icu-xetex/data/locales/so_ET.txt
+++ b/Build/source/libs/icu-xetex/data/locales/so_ET.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/so_ET.xml
+// * Source File:<path>/common/main/so_ET.xml
// *
// ***************************************************************************
so_ET{
Currencies{
ETB{
"$",
- "ETB",
+ "Itoobiya Bir",
}
USD{
"US$",
@@ -23,5 +23,13 @@ so_ET{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/so_KE.txt b/Build/source/libs/icu-xetex/data/locales/so_KE.txt
index 5306d66d362..2c24adb7322 100644
--- a/Build/source/libs/icu-xetex/data/locales/so_KE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/so_KE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/so_KE.xml
+// * Source File:<path>/common/main/so_KE.xml
// *
// ***************************************************************************
so_KE{
@@ -13,5 +13,13 @@ so_KE{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.38"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/so_SO.txt b/Build/source/libs/icu-xetex/data/locales/so_SO.txt
index b1969d0081a..3be2144ebd4 100644
--- a/Build/source/libs/icu-xetex/data/locales/so_SO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/so_SO.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/so_SO.xml
+// * Source File:<path>/common/main/so_SO.xml
// *
// ***************************************************************************
so_SO{
Currencies{
SOS{
"$",
- "SOS",
+ "Somalia Schilling",
}
USD{
"US$",
@@ -23,5 +23,13 @@ so_SO{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sq.txt b/Build/source/libs/icu-xetex/data/locales/sq.txt
index b9d13b9e692..375c06897d1 100644
--- a/Build/source/libs/icu-xetex/data/locales/sq.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sq.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sq.xml
+// * Source File:<path>/common/main/sq.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sq.xml
+ * ICU <specials> source: <path>/xml/main/sq.xml
*/
sq{
+ AuxExemplarCharacters{"[w]"}
Countries{
AD{"Andorrë"}
AE{"Emiratet Arabe te Bashkuara"}
@@ -65,6 +66,7 @@ sq{
FM{"Mikronezi"}
FR{"Francë"}
GA{"Gjabon"}
+ GB{"Mbretëria e Bashkuar"}
GE{"Gjeorgji"}
GH{"Ganë"}
GM{"Gambi"}
@@ -203,7 +205,10 @@ sq{
"Dollar amerikan",
}
}
- ExemplarCharacters{"[a-zçë{dh}{gj}{ll}{nj}{rr}{sh}{th}{xh}{zh}]"}
+ ExemplarCharacters{
+ "[a-c ç d {dh} e ë f g {gj} h-l {ll} m n {nj} o-r {rr} s {sh} t {th} u v x {x"
+ "h} y z {zh}]"
+ }
Languages{
ar{"Arabisht"}
de{"Gjermanisht"}
@@ -232,23 +237,19 @@ sq{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
Latn{"Latine"}
}
- Version{"1.40"}
+ Version{"1.55"}
calendar{
gregorian{
AmPmMarkers{
"PD",
"MD",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h.mm.ss.a z",
"h.mm.ss.a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/sq_AL.txt b/Build/source/libs/icu-xetex/data/locales/sq_AL.txt
index c755eddfb9d..2c51577eb61 100644
--- a/Build/source/libs/icu-xetex/data/locales/sq_AL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sq_AL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sq_AL.xml
+// * Source File:<path>/common/main/sq_AL.xml
// *
// ***************************************************************************
sq_AL{
@@ -13,5 +13,5 @@ sq_AL{
"#,##0%",
"#E0",
}
- Version{"1.25"}
+ Version{"1.35"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr.txt b/Build/source/libs/icu-xetex/data/locales/sr.txt
index e559eabb07f..fbcb22ae4cf 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr.xml
+// * Source File:<path>/common/main/sr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sr.xml
+ * ICU <specials> source: <path>/xml/main/sr.xml
*/
sr{
Countries{
@@ -29,7 +29,7 @@ sr{
039{"Јужна Европа"}
053{"ÐуÑтралија и Ðови Зеланд"}
054{"Меланезија"}
- 057{"Микронезија"}
+ 057{"МикронезијÑки регион"}
061{"Полинезија"}
062{"Јужно-централна Ðзија"}
142{"Ðзија"}
@@ -271,7 +271,7 @@ sr{
WS{"Самоа"}
YE{"Јемен"}
YT{"Мајоте"}
- ZA{"Јужна Ðфрика"}
+ ZA{"Јужноафричка Република"}
ZM{"Замбија"}
ZW{"Зимбабве"}
}
@@ -413,7 +413,7 @@ sr{
"YUN",
}
}
- ExemplarCharacters{"[а-и к-ш ђ ј љ њ ћ џ]"}
+ ExemplarCharacters{"[а-д ђ е-и ј к л љ м н њ о-т ћ у-ч џ ш]"}
Keys{
calendar{"Календар"}
collation{"Сортирање"}
@@ -496,7 +496,7 @@ sr{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -537,13 +537,9 @@ sr{
traditional{"Традиционално Ñортирање"}
}
}
- Version{"1.49"}
+ Version{"1.69"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH.mm.ss z",
"HH.mm.ss z",
@@ -642,17 +638,64 @@ sr{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "К1",
+ "К2",
+ "К3",
+ "К4",
+ }
+ wide{
+ "Први квартал",
+ "Други квартал",
+ "Трећи квартал",
+ "Четврти квартал",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
- {
- "Europe/Belgrade",
- "Централно ЕвропÑко Време",
- "CET",
- "Централно ЕвропÑко Време",
- "CET",
- "Belgrade",
+ "Africa:Lubumbashi"{
+ ec{"Лумумбаши"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Јужни пол"}
+ }
+ "Asia:Anadyr"{
+ ec{"Ðнадир"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Камчатка"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"КраÑнојарÑк"}
+ }
+ "Asia:Shanghai"{
+ ec{"Шангај"}
+ }
+ "Asia:Tashkent"{
+ ec{"Ташкент"}
+ }
+ "Europe:Belgrade"{
+ ec{"Belgrade"}
+ ld{"Централно ЕвропÑко Летње Време"}
+ ls{"Централно ЕвропÑко Време"}
+ }
+ "Europe:Kiev"{
+ ec{"Кијев"}
+ }
+ "Europe:Moscow"{
+ ec{"МоÑква"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Ужгород"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Запорожје"}
}
+ hourFormat{"+HHmm;-HHmm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_CS.txt b/Build/source/libs/icu-xetex/data/locales/sr_CS.txt
index 6442670bd65..7e471ffc59a 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_CS.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_CS.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_CS.xml
+// * Source File:<path>/common/main/sr_CS.xml
// *
// ***************************************************************************
sr_CS{
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl.txt b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl.txt
index 110975ff999..65c8580384f 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl.txt
@@ -1,35 +1,39 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Cyrl.xml
+// * Source File:<path>/common/main/sr_Cyrl.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/sr_Cyrl.xml
+ */
sr_Cyrl{
Currencies{
BRL{
"R$",
"БразилÑки Реал",
}
- CNY{
- "Y",
- "КинеÑки Јуан Ренминби",
- }
- CSD{
- "CSD",
- "СрпÑки Динар",
- }
}
- Version{"1.11"}
+ LocaleScript{
+ "Cyrl",
+ }
+ Version{"1.26"}
calendar{
gregorian{
eras{
wide{
- "Пре ХриÑта",
- "ПоÑле ХриÑта",
+ "Прије нове ере",
+ "Ðове ере",
}
}
}
}
+ zoneStrings{
+ "Europe:Sarajevo"{
+ ec{"Sarajevo"}
+ ls{"Средње ЕвропÑко Вријеме"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_CS.txt b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_CS.txt
index 59d049bd55c..b55cd62b558 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_CS.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_CS.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Cyrl_CS.xml
+// * Source File:<path>/common/main/sr_Cyrl_CS.xml
// *
// ***************************************************************************
sr_Cyrl_CS{
- Version{"1.13"}
+ Version{"1.23"}
delimiters{
alternateQuotationEnd{"â€"}
alternateQuotationStart{"“"}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_YU.txt b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_YU.txt
index 4f9e017326c..d16dc16f72a 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_YU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Cyrl_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Cyrl_YU.xml
+// * Source File:<path>/common/main/sr_Cyrl_YU.xml
// *
// ***************************************************************************
sr_Cyrl_YU{
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Latn.txt b/Build/source/libs/icu-xetex/data/locales/sr_Latn.txt
index f474af2bf45..2db5b093cf2 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Latn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Latn.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Latn.xml
+// * Source File:<path>/common/main/sr_Latn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sr_Latn.xml
+ * ICU <specials> source: <path>/xml/main/sr_Latn.xml
*/
sr_Latn{
+ AuxExemplarCharacters{"[q w-y]"}
Countries{
001{"Svet"}
002{"Afrika"}
@@ -278,7 +279,7 @@ sr_Latn{
WS{"Samoa"}
YE{"Jemen"}
YT{"Majote"}
- ZA{"Južna Afrika"}
+ ZA{"JužnoafriÄka Republika"}
ZM{"Zambija"}
ZW{"Zimbabve"}
}
@@ -312,7 +313,7 @@ sr_Latn{
"Å vajcarski franak",
}
CNY{
- "CNY",
+ "U",
"Kineski Juan Renminbi",
}
CSD{
@@ -420,7 +421,7 @@ sr_Latn{
"YUN",
}
}
- ExemplarCharacters{"[a-p r-v z Ä‘ ć Ä Å¾ Å¡ {lj} {nj} {dž}]"}
+ ExemplarCharacters{"[a-c ć Ä d Ä‘ {dž} e-l {lj} m n {nj} o p r s Å¡ t-v z ž]"}
Keys{
calendar{"Kalendar"}
collation{"Sortiranje"}
@@ -448,6 +449,7 @@ sr_Latn{
fr{"Francuski"}
ga{"Irski"}
he{"Hebrejski"}
+ hi{"Hindi"}
hr{"Hrvatski"}
hu{"Mađarski"}
hy{"Armenski"}
@@ -499,17 +501,22 @@ sr_Latn{
Cher{"ÄŒeroki"}
Copt{"koptiÄko pismo"}
Cyrl{"Ćirilica"}
+ Cyrs{"ćirilica (crkveno slovenska varijanta)"}
Deva{"Devanagari"}
Dsrt{"Dezeret"}
Ethi{"etiopsko pismo"}
Geor{"gruzijsko pismo"}
+ Glag{"glagoljica"}
Goth{"Gotika"}
Grek{"grÄko pismo"}
Hebr{"hebrejsko pismo"}
Hira{"Hiragana"}
Hrkt{"Katakana ili Hiragana"}
Kana{"Katakana"}
+ Khmr{"kmersko pismo"}
+ Latf{"Latinica (Fraktur varijanta)"}
Latn{"Latinica"}
+ Runr{"runsko pismo"}
}
Types{
calendar{
@@ -522,14 +529,16 @@ sr_Latn{
japanese{"Japanski kalendar"}
}
collation{
+ big5han{"Tradicionalni kineski"}
direct{"Direktno sortiranje"}
+ gb2312han{"Pojednostavljeni kineski"}
phonebook{"Sortiranje po azbuci"}
pinyin{"Pinjin sortiranje"}
stroke{"Sortiranje po broju crta"}
traditional{"Tradicionalno sortiranje"}
}
}
- Version{"1.30"}
+ Version{"1.52"}
calendar{
gregorian{
DateTimePatterns{
@@ -630,6 +639,69 @@ sr_Latn{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "Prvi kvartal",
+ "Drugi kvartal",
+ "Treći kvartal",
+ "ÄŒetvrti kvartal",
+ }
+ }
+ }
+ }
+ }
+ zoneStrings{
+ "Africa:Kinshasa"{
+ ec{"Kinšasa"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Lumumbaši"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Južni pol"}
+ }
+ "Asia:Anadyr"{
+ ec{"Anadir"}
+ }
+ "Asia:Kamchatka"{
+ ec{"KamÄatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Shanghai"{
+ ec{"Å angaj"}
+ }
+ "Asia:Tashkent"{
+ ec{"Taškent"}
+ }
+ "Europe:Belgrade"{
+ ec{"Belgrade"}
+ ld{"Centralno Evropsko Letnje Vreme"}
+ ls{"Centralno Evropsko Vreme"}
+ }
+ "Europe:Kiev"{
+ ec{"Kijev"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Sarajevo"{
+ ec{"Sarajevo"}
+ ls{"Srednje Evropsko Vrijeme"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Užgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporožje"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Latn_CS.txt b/Build/source/libs/icu-xetex/data/locales/sr_Latn_CS.txt
index f9f0db4c92c..48eca5c008e 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Latn_CS.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Latn_CS.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Latn_CS.xml
+// * Source File:<path>/common/main/sr_Latn_CS.xml
// *
// ***************************************************************************
sr_Latn_CS{
- Version{"1.12"}
+ Version{"1.22"}
delimiters{
alternateQuotationEnd{"â€"}
alternateQuotationStart{"“"}
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_Latn_YU.txt b/Build/source/libs/icu-xetex/data/locales/sr_Latn_YU.txt
index 1b576185bb4..ddd641d8ea6 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_Latn_YU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_Latn_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_Latn_YU.xml
+// * Source File:<path>/common/main/sr_Latn_YU.xml
// *
// ***************************************************************************
sr_Latn_YU{
diff --git a/Build/source/libs/icu-xetex/data/locales/sr_YU.txt b/Build/source/libs/icu-xetex/data/locales/sr_YU.txt
index 7aac3594bd5..a74cfe2bd2f 100644
--- a/Build/source/libs/icu-xetex/data/locales/sr_YU.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sr_YU.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sr_YU.xml
+// * Source File:<path>/common/main/sr_YU.xml
// *
// ***************************************************************************
sr_YU{
diff --git a/Build/source/libs/icu-xetex/data/locales/sv.txt b/Build/source/libs/icu-xetex/data/locales/sv.txt
index 15d38662eb9..70cef567773 100644
--- a/Build/source/libs/icu-xetex/data/locales/sv.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sv.txt
@@ -1,16 +1,18 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sv.xml
+// * Source File:<path>/common/main/sv.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sv.xml
+ * ICU <specials> source: <path>/xml/main/sv.xml
*/
sv{
+ AuxExemplarCharacters{"[à ã ç é ë í ñ ó w ÿ ü]"}
Countries{
+ 001{"världen"}
002{"Afrika"}
005{"Sydamerika"}
009{"Oceanien"}
@@ -24,19 +26,22 @@ sv{
021{"Nordamerika"}
029{"Karibien"}
030{"Ostasien"}
+ 034{"Södra Asien"}
035{"Sydostasien"}
039{"Sydeuropa"}
053{"Australien och Nya Zeeland"}
054{"Melanesien"}
- 057{"Mikronesien"}
+ 057{"Mikronesiska öarna"}
061{"Polynesien"}
- 062{"Södra Centralasien"}
142{"Asien"}
+ 143{"Centralasien"}
145{"Västasien"}
150{"Europa"}
151{"Östeuropa"}
154{"Nordeuropa"}
155{"Västeuropa"}
+ 172{"Samväldet av oberoende stater"}
+ 419{"Latinamerika och Karibien"}
830{"Kanalöarna"}
833{"Isle of Man"}
AD{"Andorra"}
@@ -77,9 +82,7 @@ sv{
BZ{"Belize"}
CA{"Kanada"}
CC{"Kokosöarna (Keelingöarna)"}
- CD{"Demokratiska republiken Kongo"}
CF{"Centralafrikanska republiken"}
- CG{"Kongo"}
CH{"Schweiz"}
CI{"Elfenbenskusten"}
CK{"Cooköarna"}
@@ -103,7 +106,6 @@ sv{
EC{"Ecuador"}
EE{"Estland"}
EG{"Egypten"}
- EH{"Västra Sahara"}
ER{"Eritrea"}
ES{"Spanien"}
ET{"Etiopien"}
@@ -202,7 +204,7 @@ sv{
NO{"Norge"}
NP{"Nepal"}
NR{"Nauru"}
- NU{"Niueön"}
+ NU{"Niue"}
NZ{"Nya Zeeland"}
OM{"Oman"}
PA{"Panama"}
@@ -250,7 +252,7 @@ sv{
TG{"Togo"}
TH{"Thailand"}
TJ{"Tadzjikistan"}
- TK{"Tokelauöarna"}
+ TK{"Tokelau"}
TL{"Östtimor"}
TM{"Turkmenistan"}
TN{"Tunisien"}
@@ -567,7 +569,7 @@ sv{
"Euro",
}
FIM{
- "FIM",
+ "mk",
"Finsk mark",
}
FJD{
@@ -1223,7 +1225,7 @@ sv{
"Zimbabwisk dollar",
}
}
- ExemplarCharacters{"[a-zäöåàéëü]"}
+ ExemplarCharacters{"[a-v x-z å ä ö]"}
Keys{
calendar{"kalender"}
collation{"sorteringsordning"}
@@ -1231,19 +1233,21 @@ sv{
}
Languages{
aa{"afar"}
- ab{"abkhaziska"}
- ace{"achinese"}
- ach{"acholi"}
+ ab{"abchasiska"}
+ ace{"achinesiska"}
+ ach{"acoli"}
ada{"adangme"}
ady{"adygeiska"}
ae{"avestiska"}
af{"afrikaans"}
- afa{"afro-asiatiskt (andra)"}
+ afa{"afro-asiatiskt språk (annat)"}
afh{"afrihili"}
+ ain{"ainu"}
ak{"akan"}
akk{"akkadiska"}
ale{"aleutiska"}
- alg{"algonquinspråk"}
+ alg{"algonkinskt språk (annat)"}
+ alt{"sydaltaiska"}
am{"amhariska"}
an{"aragonesiska"}
ang{"fornengelska (ca 450-1100)"}
@@ -1252,27 +1256,27 @@ sv{
arc{"arameiska"}
arn{"araukanska"}
arp{"arapaho"}
- art{"artificiellt (annat)"}
+ art{"konstgjort språk (annat)"}
arw{"arawakiska"}
- as{"assami"}
+ as{"assamesiska"}
ast{"asturiska"}
- ath{"athapasiska språk"}
- aus{"australiska språk"}
- av{"avariska"}
+ ath{"athapaskiskt språk (annat)"}
+ aus{"australiskt språk"}
+ av{"avariskt språk"}
awa{"awadhi"}
ay{"aymara"}
az{"azerbajdzjanska"}
ba{"basjkiriska"}
bad{"banda"}
- bai{"bamilekiska språk"}
+ bai{"bamilekespråk"}
bal{"baluchi"}
ban{"balinesiska"}
- bas{"basa"}
- bat{"baltiskt (annat)"}
+ bas{"basa (bantuspråk)"}
+ bat{"baltiskt språk (annat)"}
be{"vitryska"}
bej{"beyja"}
bem{"bemba"}
- ber{"berber"}
+ ber{"berberspråk (annat)"}
bg{"bulgariska"}
bh{"bihari"}
bho{"bhojpuri"}
@@ -1288,22 +1292,22 @@ sv{
bra{"braj"}
bs{"bosniska"}
btk{"batak"}
- bua{"buriat"}
+ bua{"burjätiska"}
bug{"buginesiska"}
byn{"blin"}
ca{"katalanska"}
cad{"caddo"}
- cai{"centralamerikanskt indianskt (annat)"}
+ cai{"centralamerikanskt indianspråk (annat)"}
car{"karibiska"}
- cau{"kaukasiskt (annat)"}
+ cau{"kaukasiskt språk (annat)"}
ce{"tjetjenska"}
ceb{"cebuano"}
- cel{"keltiskt (annat)"}
+ cel{"keltiskt språk (annat)"}
ch{"chamorro"}
chb{"chibcha"}
chg{"chagatai"}
chk{"chuukesiska"}
- chm{"mari"}
+ chm{"mari; tjeremissiska"}
chn{"chinook"}
cho{"choctaw"}
chp{"chipewyan"}
@@ -1312,35 +1316,35 @@ sv{
cmc{"chamispråk"}
co{"korsikanska"}
cop{"koptiska"}
- cpe{"kreolska och pidgin, engelskbaserade (övriga)"}
- cpf{"kreolska och pidgin, franskbaserade (övriga)"}
- cpp{"kreolska och pidgin, portugisiskbaserade (övriga)"}
+ cpe{"kreolspråk och pidgin, engelskbaserade (annat)"}
+ cpf{"kreolspråk och pidgin, franskbaserade (annat)"}
+ cpp{"kreolspråk och pidgin, portugisiskbaserade (annat)"}
cr{"cree"}
- crh{"krimturkiska; krimtatar"}
- crp{"kreolska och pidgin (annat)"}
+ crh{"krimturkiska; krimtatariska"}
+ crp{"kreolspråk och pidgin (annat)"}
cs{"tjeckiska"}
csb{"kasjubiska"}
- cu{"kyrkoslaviska"}
- cus{"kushitiska (annat)"}
+ cu{"kyrkslaviska"}
+ cus{"kusjitiskt språk (annat)"}
cv{"tjuvasjiska"}
cy{"walesiska"}
da{"danska"}
dak{"dakota"}
- dar{"dargwa"}
- day{"dayak"}
+ dar{"darginska"}
+ day{"dajakiska"}
de{"tyska"}
del{"delaware"}
- den{"slave"}
+ den{"dene; slavej"}
dgr{"dogrib"}
din{"dinka"}
doi{"dogri"}
- dra{"dravidiskt (annat)"}
+ dra{"dravidiskt språk (annat)"}
dsb{"lågsorbiska"}
dua{"duala"}
dum{"medelnederländska (ca 1050-1350)"}
dv{"divehi"}
dyu{"dyula"}
- dz{"dzongkha"}
+ dz{"bhutanesiska"}
ee{"ewe"}
efi{"efik"}
egy{"fornegyptiska"}
@@ -1354,39 +1358,39 @@ sv{
et{"estniska"}
eu{"baskiska"}
ewo{"ewondo"}
- fa{"farsi"}
+ fa{"persiska"}
fan{"fang"}
fat{"fanti"}
ff{"fulani"}
fi{"finska"}
- fiu{"finskugriskt (annat)"}
+ fil{"filippinska"}
+ fiu{"finsk-ugriskt språk (annat)"}
fj{"fidjianska"}
fo{"färöiska"}
+ fon{"fonspråket"}
fr{"franska"}
frm{"medelfranska (ca 1400-1600)"}
fro{"fornfranska (842- ca 1400)"}
fur{"friulianska"}
- fy{"frisiska"}
- ga{"irländsk gaeliska"}
- gaa{"ga"}
+ fy{"västfrisiska"}
+ gaa{"gã"}
gay{"gayo"}
gba{"gbaya"}
- gd{"skotsk gaeliska"}
- gem{"germanskt (annat)"}
- gez{"geez"}
+ gd{"höglandsskotska"}
+ gem{"germanskt språk (annat)"}
+ gez{"etiopiska"}
gil{"gilbertesiska; kiribati"}
gl{"galiciska"}
- gmh{"medelhögtyska (ca.1050-1500)"}
+ gmh{"medelhögtyska (ca 1050-1500)"}
gn{"guaraní"}
- goh{"fornhögtyska (ca.750-1050)"}
gon{"gondi"}
gor{"gorontalo"}
got{"gotiska"}
grb{"grebo"}
grc{"forngrekiska (till 1453)"}
gu{"gujarati"}
- gv{"manx gaeliska"}
- gwi{"gwich'in"}
+ gv{"manx"}
+ gwi{"gwichin"}
ha{"haussa"}
hai{"haida"}
haw{"hawaiiska"}
@@ -1394,9 +1398,9 @@ sv{
hi{"hindi"}
hil{"hiligaynon"}
him{"himachali"}
- hit{"hettitiska"}
- hmn{"hmong"}
- ho{"hiri motu"}
+ hit{"hettitiskt språk"}
+ hmn{"hmonspråk"}
+ ho{"hirimotu"}
hr{"kroatiska"}
hsb{"högsorbiska"}
ht{"haitiska"}
@@ -1405,25 +1409,26 @@ sv{
hy{"armeniska"}
hz{"herero"}
ia{"interlingua"}
- iba{"iban"}
+ iba{"ibanska"}
id{"indonesiska"}
ie{"interlingue"}
ig{"ibo"}
- ii{"sichuan yi"}
- ik{"inupiaq"}
+ ii{"szezuan i"}
+ ijo{"ijospråket"}
+ ik{"inupiak"}
ilo{"iloko"}
- inc{"indiskt (annat)"}
- ine{"indoeuropeiskt (annat)"}
+ inc{"indiskt språk (annat)"}
+ ine{"indo-europeiskt språk (annat)"}
inh{"ingusjiska"}
io{"ido"}
ira{"iranska"}
- iro{"irokesiska"}
+ iro{"irokesiskt språk"}
is{"isländska"}
it{"italienska"}
iu{"inuktitut"}
ja{"japanska"}
jbo{"lojban"}
- jpr{"judisk farsi"}
+ jpr{"judisk persiska"}
jrb{"judisk arabiska"}
jv{"javanesiska"}
ka{"georgiska"}
@@ -1431,19 +1436,19 @@ sv{
kab{"kabyliska"}
kac{"kachin"}
kam{"kamba"}
- kar{"karen"}
+ kar{"karenska"}
kaw{"kawi"}
kbd{"kabardinska"}
kg{"kikongo"}
kha{"khasi"}
- khi{"khoisan (annat)"}
+ khi{"khoisanspråk (annat)"}
kho{"khotanesiska"}
ki{"kikuyu"}
kj{"kuanyama"}
kk{"kazakstanska"}
kl{"grönländska"}
km{"kambodjanska; khmeriska"}
- kmb{"kinbundu"}
+ kmb{"kimbundu"}
kn{"kanaresiska; kannada"}
ko{"koreanska"}
kok{"konkani"}
@@ -1455,8 +1460,8 @@ sv{
kru{"kurukh"}
ks{"kashmiriska"}
ku{"kurdiska"}
- kum{"kumyk"}
- kut{"kutenai"}
+ kum{"kumykiska"}
+ kut{"kutenaj"}
kv{"kome"}
kw{"korniska"}
ky{"kirgisiska"}
@@ -1475,16 +1480,15 @@ sv{
lt{"litauiska"}
lu{"luba-katanga"}
lua{"luba-lulua"}
- lui{"luiseño"}
lun{"lunda"}
lus{"lushai"}
lv{"lettiska"}
- mad{"madurese"}
+ mad{"maduresiska"}
mag{"magahi"}
mai{"maithili"}
mak{"makasar"}
man{"mande"}
- map{"austronesiska"}
+ map{"austronesiskt språk"}
mas{"massajiska"}
mdf{"moksja"}
mdr{"mandar"}
@@ -1497,7 +1501,7 @@ sv{
min{"minangkabau"}
mis{"blandade språk"}
mk{"makedonska"}
- mkh{"mon-khmeriska (annat)"}
+ mkh{"mon-khmeriskt språk (annat)"}
ml{"malayalam"}
mn{"mongoliska"}
mnc{"manchuriska"}
@@ -1512,32 +1516,31 @@ sv{
mul{"flera språk"}
mun{"mundaspråk"}
mus{"muskogee"}
+ mwl{"mirandesiska"}
mwr{"marwari"}
- my{"burmanska"}
- myn{"maya"}
+ my{"burmesiska"}
+ myn{"mayaspråk"}
myv{"erjya"}
na{"nauru"}
nah{"nahuatl; aztekiska"}
nai{"nordamerikanskt indianspråk (annat)"}
nap{"napolitanska"}
- nb{"norskt bokmål"}
- nd{"nord­ndebele"}
+ nb{"norska (bokmål)"}
nds{"lågtyska; lågsaxiska"}
- ne{"nepalesisika"}
- new{"newari"}
+ ne{"nepalesiska"}
+ new{"newariska"}
ng{"ndonga"}
nia{"nias"}
nic{"kordofanspråk (annat)"}
- niu{"niuean"}
- nl{"nederländska"}
- nn{"ny­norsk"}
+ niu{"niueanska"}
+ nn{"nynorska"}
no{"norska"}
nog{"nogai"}
non{"fornnordiska"}
- nr{"syd­ndebele"}
- nso{"sotho, nord"}
- nub{"nubiska språk"}
+ nso{"nordsotho"}
+ nub{"nubiskt språk"}
nv{"navaho"}
+ nwc{"klassisk newariska"}
ny{"nyanja"}
nym{"nyamwezi"}
nyn{"nyankole"}
@@ -1549,12 +1552,12 @@ sv{
or{"oriya"}
os{"ossetiska"}
osa{"osage"}
- ota{"ottomanturkiska (1500-1928)"}
- oto{"otomanguespråk"}
- pa{"panjabi"}
- paa{"papuaspråk (annat)"}
+ ota{"ottomanska"}
+ oto{"otomispråk"}
+ pa{"punjabi"}
+ paa{"papuanskt språk (annat)"}
pag{"pangasinan"}
- pal{"pahlavi"}
+ pal{"pahlavi; medelpersiska"}
pam{"pampanga"}
pap{"papiamento"}
pau{"palau"}
@@ -1564,47 +1567,45 @@ sv{
pi{"pali"}
pl{"polska"}
pon{"ponape"}
- pra{"prakrit"}
+ pra{"prakritspråk"}
pro{"fornprovensalska (till 1500)"}
ps{"pashto; afghanska"}
pt{"portugisiska"}
qu{"quechua"}
raj{"rajasthani"}
rap{"rapanui"}
- rar{"rarotongan"}
- rm{"räto­romanska"}
+ rar{"rarotonganska"}
rn{"rundi"}
ro{"rumänska"}
- roa{"romanskt (annat)"}
+ roa{"romanskt språk (annat)"}
rom{"romani"}
ru{"ryska"}
+ rup{"arumänska"}
rw{"rwanda; kinjarwanda"}
sa{"sanskrit"}
sad{"sandawe"}
sah{"jakutiska"}
- sai{"nordamerikanskt indianskt (annat)"}
- sal{"salishspråk"}
- sam{"samariska"}
+ sai{"sydamerikanskt indianspråk (annat)"}
+ sal{"salikiskt språk"}
+ sam{"samaritanska"}
sas{"sasak"}
sat{"santali"}
sc{"sardiska"}
+ scn{"sicilianska"}
sco{"skotska"}
sd{"sindhi"}
- se{"nord­samiska"}
sel{"selkup"}
- sem{"semitiskt (annat)"}
+ sem{"semitiskt språk (annat)"}
sg{"sango"}
sga{"forniriska (till 900)"}
sgn{"teckenspråk"}
- sh{"serbokroatiska"}
shn{"shan"}
si{"singalesiska"}
sid{"sidamo"}
- sio{"siouxspråk"}
- sit{"sinotibetanska språk"}
+ sit{"sinotibetanskt språk (annat)"}
sk{"slovakiska"}
sl{"slovenska"}
- sla{"slaviskt (annat)"}
+ sla{"slaviskt språk (annat)"}
sm{"samoanska"}
sma{"sydsamiska"}
smi{"samiskt språk (annat)"}
@@ -1618,10 +1619,10 @@ sv{
son{"songhai"}
sq{"albanska"}
sr{"serbiska"}
+ srn{"sranan tongo"}
srr{"serer"}
ss{"swati"}
ssa{"nilosahariskt (annat)"}
- st{"syd­sotho"}
su{"sundanesiska"}
suk{"sukuma"}
sus{"susu"}
@@ -1630,8 +1631,8 @@ sv{
sw{"swahili"}
syr{"syriska"}
ta{"tamil"}
- tai{"tai (annat)"}
- te{"telugu"}
+ tai{"thaispråk (annat)"}
+ te{"telugiska"}
tem{"temne"}
ter{"tereno"}
tet{"tetum"}
@@ -1643,6 +1644,7 @@ sv{
tk{"turkmeniska"}
tkl{"tokelauiska"}
tl{"tagalog"}
+ tlh{"klingonska"}
tli{"tlingit"}
tmh{"tamashek"}
tn{"tswana"}
@@ -1654,8 +1656,8 @@ sv{
tsi{"tsimshian"}
tt{"tatariska"}
tum{"tumbuka"}
- tup{"tupispråk"}
- tut{"altaiskt (annat)"}
+ tup{"tupíspråk"}
+ tut{"altaiskt språk (annat)"}
tvl{"tuvaluanska"}
tw{"twi"}
ty{"tahitiska"}
@@ -1665,32 +1667,34 @@ sv{
uga{"ugaritiska"}
uk{"ukrainska"}
umb{"umbundu"}
- und{"obestämt"}
+ und{"obestämt språk"}
ur{"urdu"}
uz{"uzbekiska"}
+ vai{"vaj"}
ve{"venda"}
vi{"vietnamesiska"}
vo{"volapük"}
vot{"votiska"}
- wa{"walloon"}
- wak{"wakash"}
+ wa{"vallonska"}
+ wak{"wakusjiskt språk"}
wal{"walamo"}
war{"waray"}
was{"washo"}
- wen{"sorbiska språk"}
+ wen{"sorbiskt språk"}
wo{"wolof"}
xal{"kalmuckiska"}
xh{"xhosa"}
+ yao{"kiyao"}
+ yap{"japetiska"}
yi{"jiddisch"}
yo{"yoruba"}
- ypk{"yupiska språk"}
+ ypk{"yupiskt språk"}
za{"zhuang"}
zap{"zapotek"}
zen{"zenaga"}
zh{"kinesiska"}
znd{"zandé"}
zu{"zulu"}
- zun{"zuñi"}
}
LocaleScript{
"Latn",
@@ -1706,25 +1710,44 @@ sv{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0 %",
+ "#E0",
+ }
Scripts{
Arab{"arabiska"}
Armn{"armeniska"}
+ Bali{"balinesiska"}
+ Batk{"batak"}
Beng{"bengaliska"}
+ Blis{"blissymboler"}
Bopo{"bopomofo"}
+ Brah{"brami"}
Brai{"blindskrift"}
+ Bugi{"buginesiska"}
Buhd{"buhid"}
Cans{"kanadensiska stavelsetecken"}
+ Cham{"cham"}
Cher{"cherokee"}
+ Cirt{"cirt"}
Copt{"koptiska"}
Cprt{"cypriotiska"}
Cyrl{"kyrilliska"}
+ Cyrs{"kyrilliska (fornkyrkoslavisk variant)"}
Deva{"devanagari"}
Dsrt{"deseret"}
+ Egyd{"demotiska"}
+ Egyh{"hieratiska"}
+ Egyp{"egyptiska hieroglyfer"}
Ethi{"etiopiska"}
+ Geok{"kutsuri"}
Geor{"georgiska"}
+ Glag{"glagolitiska"}
Goth{"gotiska"}
Grek{"grekiska"}
Gujr{"gujarati"}
@@ -1736,78 +1759,110 @@ sv{
Hant{"traditionell han"}
Hebr{"hebreiska"}
Hira{"hiragana"}
+ Hmng{"pahaw mong"}
Hrkt{"katakana/hiragana"}
+ Hung{"fornungerska"}
+ Inds{"indus"}
Ital{"fornitaliska"}
+ Java{"javanska"}
+ Kali{"kaya li"}
Kana{"katakana"}
- Khmr{"khmeriskt"}
+ Khar{"kharoshti"}
+ Khmr{"khmeriska"}
Knda{"kanaresiska"}
Laoo{"laotiska"}
- Latn{"latinskt"}
+ Latf{"latinska (frakturvariant)"}
+ Latg{"latinska (gaelisk variant)"}
+ Latn{"latinska"}
+ Lepc{"rong"}
Limb{"limbu"}
- Linb{"linear B"}
+ Lina{"linjär A"}
+ Mand{"mandaéiska"}
+ Maya{"mayahieroglyfer"}
+ Mero{"meriotiska"}
Mlym{"malayalam"}
Mong{"mongoliska"}
Mymr{"burmesiska"}
+ Nkoo{"n'kå"}
Ogam{"ogham"}
+ Orkh{"orkon"}
Orya{"oriya"}
- Osma{"osmanskt"}
- Qaai{"ärvd"}
+ Osma{"osmanska"}
+ Perm{"permiska"}
+ Phag{"phags-pa"}
+ Phnx{"fenisiska"}
+ Plrd{"Pollardtecken"}
+ Qaai{"ärvda"}
+ Roro{"rongo-rongo"}
Runr{"runor"}
+ Sara{"sarati"}
Shaw{"shawiska"}
Sinh{"singalesiska"}
+ Sylo{"syloti nagri"}
Syrc{"syriska"}
+ Syre{"syriska (estrangelovariant)"}
+ Syrj{"syriska (västlig variant)"}
+ Syrn{"syriska (östlig variant)"}
Tagb{"tagbanwa"}
Tale{"tai le"}
- Taml{"tamilskt"}
+ Talu{"tai lue"}
Telu{"telugu"}
+ Teng{"tengwar"}
+ Tfng{"tifinagh"}
Tglg{"tagalog"}
Thaa{"taana"}
Thai{"thailändska"}
Tibt{"tibetanska"}
Ugar{"ugaritiska"}
+ Vaii{"vaj"}
+ Visp{"synligt tal"}
+ Xpeo{"fornpersiska"}
+ Xsux{"sumeo-akkadiska"}
Yiii{"yi"}
- Zyyy{"vanligt"}
+ Zxxx{"oskrivet språk"}
+ Zyyy{"gemensamma"}
+ Zzzz{"okodat skript"}
}
Types{
calendar{
- buddhist{"Buddistisk kalender"}
- chinese{"Kinesisk kalender"}
- gregorian{"Gregoriansk kalender"}
- hebrew{"Hebreisk kalender"}
- islamic{"Islamisk kalender"}
- islamic-civil{"Islamisk civil kalender"}
- japanese{"Japansk kalender"}
+ buddhist{"buddistisk kalender"}
+ chinese{"kinesisk kalender"}
+ gregorian{"gregoriansk kalender"}
+ hebrew{"hebreisk kalender"}
+ islamic{"islamisk kalender"}
+ islamic-civil{"islamisk civil kalender"}
+ japanese{"japansk kalender"}
}
collation{
- direct{"Direkt ordning"}
- phonebook{"telefonboksordning"}
- pinyin{"pinyinordning"}
- stroke{"strecksortering"}
- traditional{"traditionell sortering"}
+ big5han{"traditionell kinesiska i big5-ordning"}
+ direct{"direkt ordning"}
+ gb2312han{"förenklad kinesiska i gb2312-ordning"}
+ phonebook{"telefonkatalogsordning"}
+ pinyin{"kinesiska i pinyin-ordning"}
+ stroke{"kinesiska i streck-ordning"}
+ traditional{"kinesiska i traditionell ordning"}
}
}
Variants{
- REVISED{"reviderad"}
+ 1901{"traditionell tysk ortografi"}
+ 1996{"1996 års reformerad tysk ortografi"}
+ NEDIS{"natisonsk dialekt"}
+ POLYTONI{"polytonisk ortografi"}
+ REVISED{"reformerad stavning"}
+ ROZAJ{"resisk dialekt"}
+ SAAHO{"saho"}
}
- Version{"1.57"}
+ Version{"1.84"}
calendar{
gregorian{
- AmPmMarkers{
- "f.m.",
- "e.m.",
- }
- DateTimeElements:intvector{
- 2,
- 4,
- }
DateTimePatterns{
"'kl. 'HH.mm.ss z",
"HH.mm.ss z",
"HH.mm.ss",
"HH.mm",
"EEEE, yyyy MMMM dd",
- "yyyy MMMM d",
- "yyyy MMM d",
+ "EEEE d MMM yyyy",
+ "d MMM yyyy",
"yyyy-MM-dd",
"{1} {0}",
}
@@ -1850,6 +1905,41 @@ sv{
"e.Kr.",
}
}
+ fields{
+ day{
+ dn{"dag"}
+ }
+ dayperiod{
+ dn{"dagsperiod"}
+ }
+ era{
+ dn{"era"}
+ }
+ hour{
+ dn{"timme"}
+ }
+ minute{
+ dn{"minut"}
+ }
+ month{
+ dn{"månad"}
+ }
+ second{
+ dn{"sekund"}
+ }
+ week{
+ dn{"vecka"}
+ }
+ weekday{
+ dn{"veckodag"}
+ }
+ year{
+ dn{"Ã¥r"}
+ }
+ zone{
+ dn{"tidszon"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1898,136 +1988,203 @@ sv{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "K1",
+ "K2",
+ "K3",
+ "K4",
+ }
+ wide{
+ "1:a kvartalet",
+ "2:a kvartalet",
+ "3:e kvartalet",
+ "4:e kvartalet",
+ }
+ }
+ }
}
}
+ delimiters{
+ alternateQuotationStart{"’"}
+ quotationStart{"â€"}
+ }
zoneStrings{
- {
- "America/Halifax",
- "Atlantic, normaltid",
- "AST",
- "Atlantic, sommartid",
- "ADT",
- "Halifax",
- }
- {
- "America/St_Johns",
- "Newfoundland, normaltid",
- "CNT",
- "Newfoundland, sommartid",
- "CDT",
- "St. Johns",
- }
- {
- "Asia/Shanghai",
- "Kina, normaltid",
- "CTT",
- "Kina, normaltid",
- "CDT",
- "Shanghai",
- }
- {
- "Europe/Paris",
- "Centraleuropa, normaltid",
- "CET",
- "Centraleuropa, sommartid",
- "CEST",
- "Paris",
- }
- {
- "Asia/Jerusalem",
- "Israel, normaltid",
- "IST",
- "Israel, sommartid",
- "IDT",
- "Jerusalem",
- }
- {
- "Asia/Tokyo",
- "Japan, normaltid",
- "JST",
- "Japan, normaltid",
- "JST",
- "Tokyo",
- }
- {
- "Africa/Casablanca",
- "Greenwichtid",
- "GMT",
- "Greenwichtid",
- "GMT",
- "Casablanca",
- }
- {
- "Europe/Bucharest",
- "Östeuropa, normaltid",
- "EET",
- "Östeuropa, sommartid",
- "EEST",
- "Bukarest",
- }
- {
- "Pacific/Honolulu",
- "Hawaii, normaltid",
- "HST",
- "Hawaii, normaltid",
- "HST",
- "Honolulu",
- }
- {
- "America/Anchorage",
- "Alaska, normaltid",
- "AST",
- "Alaska, sommartid",
- "ADT",
- "Anchorage",
- }
- {
- "America/Los_Angeles",
- "Pacific, normaltid",
- "PST",
- "Pacific, sommartid",
- "PDT",
- "Los Angeles",
- }
- {
- "America/Phoenix",
- "Mountain, normaltid",
- "MST",
- "Mountain, sommartid",
- "MST",
- "Phoenix",
- }
- {
- "America/Denver",
- "Mountain, normaltid",
- "MST",
- "Mountain, sommartid",
- "MDT",
- "Denver",
- }
- {
- "America/Chicago",
- "Central, normaltid",
- "CST",
- "Central, sommartid",
- "CDT",
- "Chicago",
- }
- {
- "America/Indianapolis",
- "Eastern, normaltid",
- "EST",
- "Eastern, normaltid",
- "EST",
- "Indianapolis",
- }
- {
- "America/New_York",
- "Eastern, normaltid",
- "EST",
- "Eastern, sommartid",
- "EDT",
- "New York",
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"Greenwichtid"}
+ ls{"Greenwichtid"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "America:Anchorage"{
+ ec{"Alaska/Anchorage"}
+ ld{"Alaska, sommartid"}
+ ls{"Alaska, normaltid"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Comod. Rivadavia"}
+ }
+ "America:Belem"{
+ ec{"Brasilien/Belem"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"Central, sommartid"}
+ ls{"Central, normaltid"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"USA/Denver, sommartid"}
+ ls{"USA/Denver, normaltid"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Godthab"{
+ ec{"Godthåb"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantic, sommartid"}
+ ls{"Atlantic, normaltid"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"USA/Indianapolis, normaltid"}
+ ls{"USA/Indanapolis, normaltid"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pacific, sommartid"}
+ ls{"Pacific, normaltid"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"Eastern, sommartid"}
+ ls{"Eastern, normaltid"}
+ sd{"EDT"}
+ ss{"EST"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"North Dakota"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"Mountain, sommartid"}
+ ls{"Mountain, normaltid"}
+ sd{"MST"}
+ ss{"MST"}
+ }
+ "America:Sao_Paulo"{
+ ec{"Brasilien/São Paulo"}
+ }
+ "America:St_Johns"{
+ ec{"St. Johns"}
+ ld{"Newfoundland, sommartid"}
+ ls{"Newfoundland, normaltid"}
+ sd{"CDT"}
+ ss{"CNT"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Dumont d'Urville"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Sydpolen"}
+ }
+ "Asia:Almaty"{
+ ec{"Alma-Ata"}
+ }
+ "Asia:Anadyr"{
+ ec{"Anadir"}
+ }
+ "Asia:Choibalsan"{
+ ec{"Tjoibalsan"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"Israel, sommartid"}
+ ls{"Israel, normaltid"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamtjatka"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"Krasnojarsk"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Sachalin"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"Kina, normaltid"}
+ ls{"Kina, normaltid"}
+ }
+ "Asia:Tashkent"{
+ ec{"Tasjkent"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"Japan, normaltid"}
+ ls{"Japan, normaltid"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulan Bator"}
+ }
+ "Asia:Yakutsk"{
+ ec{"Jakutsk"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Jekaterinburg"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azorerna"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanarieöarna"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bukarest"}
+ ld{"Östeuropa, sommartid"}
+ ls{"Östeuropa, normaltid"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lissabon"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskva"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"Centraleuropa, sommartid"}
+ ls{"Centraleuropa, normaltid"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Uzjgorod"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"Zaporozjzja"}
+ }
+ "Pacific:Easter"{
+ ec{"Påskön"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hawaii, normaltid"}
+ ls{"Hawaii, normaltid"}
+ sd{"HST"}
+ ss{"HST"}
}
+ hourFormat{"+HH.mm;-HH.mm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sv_FI.txt b/Build/source/libs/icu-xetex/data/locales/sv_FI.txt
index 1f12a9fe717..8febdc5b347 100644
--- a/Build/source/libs/icu-xetex/data/locales/sv_FI.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sv_FI.txt
@@ -1,17 +1,109 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sv_FI.xml
+// * Source File:<path>/common/main/sv_FI.xml
// *
// ***************************************************************************
sv_FI{
- NumberPatterns{
- "#,##0.###",
- "#,##0.00 ¤",
- "#,##0%",
- "#E0",
+ Version{"1.41"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ }
+ hebrew{
+ monthNames{
+ format{
+ abbreviated{
+ "tishrí",
+ "heshván",
+ "kislév",
+ "tevét",
+ "shevát",
+ "adár",
+ "adár II",
+ "nisán",
+ "ijjár",
+ "siván",
+ "tammúz",
+ "ab",
+ "elúl",
+ }
+ wide{
+ "tishrí",
+ "heshván",
+ "kislév",
+ "tevét",
+ "shevát",
+ "adár",
+ "adár II",
+ "nisán",
+ "ijjár",
+ "siván",
+ "tammúz",
+ "ab",
+ "elúl",
+ }
+ }
+ }
+ }
+ islamic{
+ monthNames{
+ format{
+ abbreviated{
+ "muharram",
+ "safar",
+ "rabi’ al-awwal",
+ "rabi’ al-akhir",
+ "jumada-l-ula",
+ "jumada-l-akhira",
+ "rajab",
+ "sha’ban",
+ "ramadan",
+ "shawwal",
+ "dhu-l-ga’da",
+ "dhu-l-hijja",
+ }
+ wide{
+ "muharram",
+ "safar",
+ "rabi’ al-awwal",
+ "rabi’ al-akhir",
+ "jumada-l-ula",
+ "jumada-l-akhira",
+ "rajab",
+ "sha’ban",
+ "ramadan",
+ "shawwal",
+ "dhu-l-ga’da",
+ "dhu-l-hijja",
+ }
+ }
+ }
+ }
+ islamic-civil{
+ monthNames{
+ format{
+ wide{
+ "muharram",
+ "safar",
+ "rabi’ al-awwal",
+ "rabi’ al-akhir",
+ "jumada-l-ula",
+ "jumada-l-akhira",
+ "rajab",
+ "sha’ban",
+ "ramadan",
+ "shawwal",
+ "dhu-l-ga’da",
+ "dhu-l-hijja",
+ }
+ }
+ }
+ }
}
- Version{"1.27"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sv_SE.txt b/Build/source/libs/icu-xetex/data/locales/sv_SE.txt
index 54c2b234fd6..ee9e51b746c 100644
--- a/Build/source/libs/icu-xetex/data/locales/sv_SE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sv_SE.txt
@@ -1,23 +1,86 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sv_SE.xml
+// * Source File:<path>/common/main/sv_SE.xml
// *
// ***************************************************************************
sv_SE{
+ Countries{
+ UM{"USA:s yttre öar"}
+ }
+ Languages{
+ afa{"afroasiatiskt (annat)"}
+ cpe{"kreol- och pidginspråk, engelskbaserade (övriga)"}
+ cpf{"kreol- och pidginspråk, franskbaserade (övriga)"}
+ cpp{"kreol- och pidginspråk, portugisiskbaserade (övriga)"}
+ crh{"krimturkiska, krimtatariska"}
+ crp{"kreol- och pidginspråk (annat)"}
+ enm{"medelengelska (ca 1100-1500)"}
+ gil{"gilbertesiska, kiribati"}
+ gn{"guarani"}
+ iro{"irokesiska språk"}
+ khi{"khoisanska (annat)"}
+ km{"kambodjanska, khmeriska"}
+ kn{"kanaresiska, kannada"}
+ lol{"lolo, mongo"}
+ mga{"medeliriska (ca 900-1200)"}
+ nah{"nahuatl, aztekiska"}
+ nds{"lågtyska, lågsaxiska"}
+ oc{"provensalska (efter 1500), occitanska"}
+ oj{"odjibwa, chippewa"}
+ phn{"kananeiska, feniciska"}
+ ps{"pashto, afghanska"}
+ rw{"rwanda, kinjarwanda"}
+ sit{"sinotibetanskt (annat)"}
+ smi{"samiska språk (övriga)"}
+ sn{"shona, manshona"}
+ }
NumberPatterns{
"#,##0.###",
- "#,##0.00 ¤",
+ "¤ #,##0.00",
"#,##0 %",
"#E0",
}
- Version{"1.31"}
+ Types{
+ collation{
+ stroke{"streckordning"}
+ }
+ }
+ Version{"1.44"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 2,
+ 4,
+ }
+ DateTimePatterns{
+ "'kl. 'HH.mm.ss z",
+ "HH.mm.ss z",
+ "HH.mm.ss",
+ "HH.mm",
+ "EEEE, yyyy MMMM dd",
+ "EEE d MMM yyyy",
+ "d MMM yyyy",
+ "yyyy-MM-dd",
+ "{1} {0}",
+ }
+ fields{
+ dayperiod{
+ dn{"tidsvisning"}
+ }
+ }
+ }
+ }
delimiters{
alternateQuotationEnd{"â€"}
alternateQuotationStart{"â€"}
quotationEnd{"’"}
quotationStart{"’"}
}
+ measurementSystemNames{
+ US{"Tumsystem"}
+ metric{"Metriskt system"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sw.txt b/Build/source/libs/icu-xetex/data/locales/sw.txt
index 6f2251844fd..d512bd734c7 100644
--- a/Build/source/libs/icu-xetex/data/locales/sw.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sw.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sw.xml
+// * Source File:<path>/common/main/sw.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/sw.xml
+ * ICU <specials> source: <path>/xml/main/sw.xml
*/
sw{
Countries{
@@ -101,20 +101,25 @@ sw{
"TZS",
}
}
- ExemplarCharacters{"[a-z]"}
+ ExemplarCharacters{"[a-d {dh} e-n {ng} {ng'} {ny} o p r s {sh} t {th} u-w y z]"}
Languages{
+ de{"kijerumani"}
+ en{"kiingereza"}
+ es{"kihispania"}
+ fr{"kifaransa"}
+ it{"kiitaliano"}
+ ja{"kijapani"}
+ pt{"kireno"}
+ ru{"kirusi"}
sw{"Kiswahili"}
+ zh{"kichina"}
}
LocaleScript{
"Latn",
}
- Version{"1.32"}
+ Version{"1.47"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 7,
- 1,
- }
dayNames{
format{
abbreviated{
@@ -146,18 +151,18 @@ sw{
monthNames{
format{
abbreviated{
- "Jan",
+ "Januari",
"Feb",
"Mar",
- "Apr",
+ "Aprili",
"Mei",
- "Jun",
+ "Juni",
"Jul",
"Ago",
- "Sep",
- "Okt",
- "Nov",
- "Des",
+ "Septemba",
+ "Oktoba",
+ "Novemba",
+ "Desemba",
}
wide{
"Januari",
@@ -175,16 +180,31 @@ sw{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "R1",
+ "R2",
+ "R3",
+ "R4",
+ }
+ wide{
+ "robo ya kwanza",
+ "robo ya pili",
+ "robo ya tatu",
+ "robo ya nne",
+ }
+ }
+ }
}
}
zoneStrings{
- {
- "Africa/Nairobi",
- "Saa za Africa Mashariki",
- "EAT",
- "Saa za Africa Mashariki",
- "EAT",
- "Nairobi",
+ "Africa:Nairobi"{
+ ec{"Nairobi"}
+ ld{"Saa za Africa Mashariki"}
+ ls{"Saa za Africa Mashariki"}
+ sd{"EAT"}
+ ss{"EAT"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sw_KE.txt b/Build/source/libs/icu-xetex/data/locales/sw_KE.txt
index 6b424ffd417..67281a04793 100644
--- a/Build/source/libs/icu-xetex/data/locales/sw_KE.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sw_KE.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sw_KE.xml
+// * Source File:<path>/common/main/sw_KE.xml
// *
// ***************************************************************************
sw_KE{
@@ -13,5 +13,13 @@ sw_KE{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.38"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/sw_TZ.txt b/Build/source/libs/icu-xetex/data/locales/sw_TZ.txt
index 03dda221b4b..66539cc0359 100644
--- a/Build/source/libs/icu-xetex/data/locales/sw_TZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/sw_TZ.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/sw_TZ.xml
+// * Source File:<path>/common/main/sw_TZ.xml
// *
// ***************************************************************************
sw_TZ{
@@ -13,13 +13,5 @@ sw_TZ{
"#,##0%",
"#E0",
}
- Version{"1.31"}
- calendar{
- gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
- }
- }
+ Version{"1.42"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ta.txt b/Build/source/libs/icu-xetex/data/locales/ta.txt
index f717240f931..52d1aa69830 100644
--- a/Build/source/libs/icu-xetex/data/locales/ta.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ta.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ta.xml
+// * Source File:<path>/common/main/ta.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ta.xml
+ * ICU <specials> source: <path>/xml/main/ta.xml
*/
ta{
Countries{
@@ -183,7 +183,7 @@ ta{
"INR",
}
}
- ExemplarCharacters{"[ஂஃஅ-ஊஎ-à®à®’-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-à¯à¯—௦-௺‌â€]"}
+ ExemplarCharacters{"[ஃ à®…-ஊ எ-à® à®’-க à®™ ச ஜ ஞ ட ண த ந-ப à®®-வ à®·-ஹ ா-ூ ெ-ை ொ-à¯]"}
Languages{
aa{"அபாரà¯"}
ab{"அபà¯à®•à®¾à®¸à®¿à®©à¯"}
@@ -231,7 +231,7 @@ ta{
hr{"கரோஷியனà¯"}
hu{"ஹஙà¯à®•à¯‡à®°à®¿à®¯à®©à¯"}
hy{"ஆரà¯à®®à¯‡à®©à®¿à®¯à®©à¯"}
- ia{"இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®•à¯à®µà®¾"}
+ ia{"இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®•à¯à®µà®¾ [ia]"}
id{"இநà¯à®¤à¯‹à®©à¯‡à®·à®¿à®¯à®©à¯"}
ie{"இனà¯à®Ÿà®°à¯à®²à®¿à®™à¯à®•à¯à®µà®¾"}
ik{"இனà¯à®ªà¯†à®•à¯"}
@@ -280,7 +280,6 @@ ta{
rm{"ரைடà¯à®Ÿà¯‹-ரோமெனà¯à®¸à¯"}
rn{"கிரà¯à®¨à¯à®¤à®¿"}
ro{"ரோமேனியனà¯"}
- root{"தமிழà¯"}
ru{"ரஷியனà¯"}
rw{"கினà¯à®¯à®°à¯à®µà¯†à®©à¯à®Ÿà®¾"}
sa{"சமஸà¯à®•à®¿à®°à¯à®¤à®®à¯"}
@@ -336,7 +335,7 @@ ta{
"#,##,##0%",
"#E0",
}
- Version{"1.35"}
+ Version{"1.52"}
calendar{
gregorian{
AmPmMarkers{
@@ -403,16 +402,25 @@ ta{
}
}
}
+ quarters{
+ format{
+ wide{
+ "வநà¯à®¨à¯§ 1",
+ "ரெஂட௨ 2",
+ "மூடà¯à¯© 3",
+ "நாலà¯à¯ª 4",
+ }
+ }
+ }
}
}
zoneStrings{
- {
- "Asia/Calcutta",
- "இநà¯à®¤à®¿à®¯ நேரபà¯à®ªà®Ÿà®¿",
- "IST",
- "இநà¯à®¤à®¿à®¯ நேரபà¯à®ªà®Ÿà®¿",
- "IST",
- "Calcutta",
+ "Asia:Calcutta"{
+ ec{"Calcutta"}
+ ld{"இநà¯à®¤à®¿à®¯ நேரபà¯à®ªà®Ÿà®¿"}
+ ls{"இநà¯à®¤à®¿à®¯ நேரபà¯à®ªà®Ÿà®¿"}
+ sd{"IST"}
+ ss{"IST"}
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ta_IN.txt b/Build/source/libs/icu-xetex/data/locales/ta_IN.txt
index d3105c9a5fa..d00e6b5bdb6 100644
--- a/Build/source/libs/icu-xetex/data/locales/ta_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ta_IN.txt
@@ -1,19 +1,15 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ta_IN.xml
+// * Source File:<path>/common/main/ta_IN.xml
// *
// ***************************************************************************
ta_IN{
- Version{"1.35"}
+ Version{"1.47"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/te.txt b/Build/source/libs/icu-xetex/data/locales/te.txt
index 5d6bd74dce3..3b4dc575718 100644
--- a/Build/source/libs/icu-xetex/data/locales/te.txt
+++ b/Build/source/libs/icu-xetex/data/locales/te.txt
@@ -1,43 +1,76 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/te.xml
+// * Source File:<path>/common/main/te.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/te.xml
+ * ICU <specials> source: <path>/xml/main/te.xml
*/
te{
+ AuxExemplarCharacters{"[\u200C \u200D ౦-౯]"}
Countries{
- IN{"భారత దేళ౦"}
+ BR{"à°¬à±à°°à°œà°¿à°²à±"}
+ CN{"చైనా"}
+ DE{"ఙరà±à°®à°¨à°¿"}
+ FR{"à°«à±à°°à°¾à°¨à±à°¸à±â€Œ"}
+ GB{"à°¬à±à°°à°¿à°Ÿà°¨à±"}
+ IN{"భారత దేళం"}
+ IT{"ఇటలి"}
+ JP{"జపాసà±"}
+ RU{"à°°à°·à±à°¯"}
+ US{"à°à°•à±à°¯ రాషà±à°Ÿà±à°° అమెరిక"}
}
Currencies{
+ BRL{
+ "à°°à°¿$",
+ "à°¬à±à°°à°œà°¿à°²à± దేశ రియాలà±",
+ }
+ CNY{
+ "à°¯à±",
+ "చైనా దేశ à°¯à±à°µà°¾à°¨à± రెనà±â€Œà°®à°¿à°¨à±â€Œà°¬à°¿",
+ }
EUR{
"€",
- "EUR",
+ "à°¯à±à°°à±Š",
}
GBP{
"£",
- "GBP",
+ "à°¬à±à°¿à°Ÿà°¿à°·à± పౌనà±à°¡ à°¸à±à°Ÿà±†à°°à±à°²à°¿à°—à±",
}
INR{
"రూ.",
- "INR",
+ "రూపాయి",
}
JPY{
"Â¥",
- "JPY",
+ "జపానౠదేశ యెసà±",
+ }
+ RUB{
+ "రూబలà±",
+ "à°°à°·à±à°¯ దేశ రూబలà±",
}
USD{
"$",
- "USD",
+ "à°à°•à±à°¯ రాషà±à°Ÿà±à°° అమెరిక డాలరà±",
}
}
- ExemplarCharacters{"[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-హా-ౄె-ైొ-à±à±•à±–ౠౡ౦-౯‌â€]"}
+ ExemplarCharacters{"[à°…-à°‹ à±  à°Œ ౡ à°Ž-à° à°’-à°¨ à°ª-à°³ à°µ-à°¹ à°-à°ƒ à± à°¾-ౄ ె-ై ొ-ౌ ౕ à±–]"}
Languages{
+ ar{"అరబికà±"}
+ de{"ఙరà±à°®à°¨à±"}
+ en{"ఆంగà±à°²à°‚"}
+ es{"à°¸à±à°ªà°¾à°¨à°¿à°·à±"}
+ fr{"à°«à±à°°à±†à°‚à°šà±"}
+ hi{"హిందీ"}
+ it{"ఇటాలియనౠభాష"}
+ ja{"జపానౠభాష"}
+ pt{"పొరà±à°šà±à°—లౠభాష"}
+ ru{"à°°à°·à±à°¯à°¨à± భాష"}
te{"తెలà±à°—à±"}
+ zh{"చైనా భాష"}
}
LocaleScript{
"Telu",
@@ -53,15 +86,28 @@ te{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
- Version{"1.37"}
+ Scripts{
+ Arab{"à°…à°°à°¬à±à°¬à°¿ లిపి"}
+ Cyrl{"సిరిలికౠలిపి"}
+ Hans{"సరళమైన చైనా లిపి"}
+ Hant{"à°ªà±à°°à°¾à°šà±€à°¨ చైనా లిపి"}
+ Latn{"లాటినà±"}
+ Telu{"తెలà±à°—à±"}
+ }
+ Variants{
+ 1901{"à°ªà±à°°à°¾à°šà±€à°¨ ఙరà±à°®à°¨ వరà±à°£à°•à±à°°à°®à°‚"}
+ 1996{"1996 ఙరà±à°®à°¨ వరà±à°£à°•à±à°°à°®à°‚"}
+ REVISED{"సవరించబడిన వరà±à°£à°•à±à°°à°®à°‚"}
+ }
+ Version{"1.52"}
calendar{
gregorian{
AmPmMarkers{
- "పూరà±à°µà°¾à°¹à±à°¨",
- "అపరాహà±à°¨",
+ "పూరà±à°µà°¾à°¹à±à°¨à°‚",
+ "అపరాహà±à°¨à°‚",
}
dayNames{
format{
@@ -84,6 +130,17 @@ te{
"శనివారం",
}
}
+ stand-alone{
+ narrow{
+ "à°†",
+ "2",
+ "సొ",
+ "à°­à±",
+ "à°—à±",
+ "à°¶à±",
+ "à°¶",
+ }
+ }
}
monthNames{
format{
@@ -116,6 +173,32 @@ te{
"డిసెంబరà±",
}
}
+ stand-alone{
+ narrow{
+ "జ",
+ "à°«à°¿",
+ "à°®",
+ "à°Ž",
+ "మె",
+ "à°œà±",
+ "à°œà±",
+ "à°†",
+ "సె",
+ "à°…",
+ "à°¨",
+ "à°¡à°¿",
+ }
+ }
+ }
+ quarters{
+ format{
+ wide{
+ "à°’à°•à°Ÿà°¿ 1",
+ "రెండౠ2",
+ "మూడౠ3",
+ "నాలà±à°—à± 4",
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/te_IN.txt b/Build/source/libs/icu-xetex/data/locales/te_IN.txt
index 45c452964c9..a2a37e59659 100644
--- a/Build/source/libs/icu-xetex/data/locales/te_IN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/te_IN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/te_IN.xml
+// * Source File:<path>/common/main/te_IN.xml
// *
// ***************************************************************************
te_IN{
@@ -13,13 +13,9 @@ te_IN{
"#,##,##0%",
"#E0",
}
- Version{"1.34"}
+ Version{"1.46"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"h:mm:ss a z",
"h:mm:ss a z",
diff --git a/Build/source/libs/icu-xetex/data/locales/th.txt b/Build/source/libs/icu-xetex/data/locales/th.txt
index 7f2c92a717c..993be6404c8 100644
--- a/Build/source/libs/icu-xetex/data/locales/th.txt
+++ b/Build/source/libs/icu-xetex/data/locales/th.txt
@@ -1,16 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/th.xml
+// * Source File:<path>/common/main/th.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/th.xml
+ * ICU <specials> source: <path>/xml/main/th.xml
*/
th{
- BreakDictionaryData:import{"../brkitr/thaidict.brk"}
+ AuxExemplarCharacters{"[\u200B]"}
Countries{
001{"โลà¸"}
002{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²"}
@@ -21,24 +21,28 @@ th{
014{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸"}
015{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹€à¸«à¸™à¸·à¸­"}
017{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¸à¸¥à¸²à¸‡"}
- 018{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰"}
+ 018{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰ [018]"}
019{"อเมริà¸à¸²"}
021{"อเมริà¸à¸²à¹€à¸«à¸™à¸·à¸­"}
029{"à¹à¸„ริเบียน"}
030{"เอเชียตะวันออà¸"}
+ 034{"เอเชียใต้"}
035{"เอเชียตะวันออà¸à¹€à¸‰à¸µà¸¢à¸‡à¹ƒà¸•à¹‰"}
039{"ยุโรปใต้"}
053{"ออสเตรเลียà¹à¸¥à¸°à¸™à¸´à¸§à¸‹à¸µà¹à¸¥à¸™à¸”์"}
054{"เมลานีเซีย"}
- 057{"ไมโครนีเซีย"}
+ 057{"ไมโครนีเซีย [057]"}
061{"โปลินีเซีย"}
062{"เอเชียà¸à¸¥à¸²à¸‡à¸•à¸­à¸™à¹ƒà¸•à¹‰"}
142{"เอเชีย"}
+ 143{"เอเชียà¸à¸¥à¸²à¸‡"}
145{"เอเชียตะวันตà¸"}
150{"ยุโรป"}
151{"ยุโรปตะวันออà¸"}
154{"ยุโรปเหนือ"}
155{"ยุโรปตะวันตà¸"}
+ 172{"เครือรัà¸à¸­à¸´à¸ªà¸£à¸°"}
+ 419{"ละตินอเมริà¸à¸²à¹à¸¥à¸°à¸„าริบเบียน"}
830{"หมู่เà¸à¸²à¸°à¹à¸Šà¸™à¹€à¸™à¸¥"}
833{"เà¸à¸²à¸°à¹à¸¡à¸™"}
AD{"อันดอร์รา"}
@@ -72,7 +76,7 @@ th{
BO{"โบลิเวีย"}
BR{"บราซิล"}
BS{"บาฮามาส"}
- BT{"ภูà¸à¸²à¸™"}
+ BT{"ภูà¸à¸²à¸™"}
BV{"เà¸à¸²à¸°à¸šà¸¹à¹€à¸§à¸•à¹Œ"}
BW{"บอตสวานา"}
BY{"เบลารุส"}
@@ -143,6 +147,7 @@ th{
IE{"ไอร์à¹à¸¥à¸™à¸”์"}
IL{"อิสราเอล"}
IN{"อินเดีย"}
+ IO{"บริติสอินเดียโอเชียนเทร์ริทอรี"}
IQ{"อิรัà¸"}
IR{"อิหร่าน"}
IS{"ไอซ์à¹à¸¥à¸™à¸”์"}
@@ -283,6 +288,54 @@ th{
ZW{"ซิมบาบเว"}
}
Currencies{
+ ADP{
+ "ADP",
+ "เปเซตาอันดอร์รา",
+ }
+ AED{
+ "AED",
+ "ดีà¹à¸£à¸«à¹Œà¸¡à¸ªà¸«à¸£à¸±à¸à¸­à¸²à¸«à¸£à¸±à¸šà¹€à¸­à¸¡à¸´à¹€à¸£à¸•à¸ªà¹Œ",
+ }
+ AFA{
+ "AFA",
+ "อัฟà¸à¸²à¸™à¸µ (1927-2002)",
+ }
+ AFN{
+ "AFN",
+ "อัฟà¸à¸²à¸™à¸µ",
+ }
+ ALL{
+ "ALL",
+ "เลà¸à¸­à¸±à¸¥à¸šà¸²à¹€à¸™à¸µà¸¢",
+ }
+ AMD{
+ "AMD",
+ "ดรัมอาเมเนีย",
+ }
+ ANG{
+ "ANG",
+ "à¹à¸­à¸™à¸—ิลลันà¸à¸´à¸¥à¹€à¸”อร์เนเธอร์à¹à¸¥à¸™à¸”์",
+ }
+ AOA{
+ "AOA",
+ "à¸à¸§à¸²à¸™à¸‹à¸²à¹à¸­à¸‡à¹‚à¸à¸¥à¸²",
+ }
+ AOK{
+ "AOK",
+ "à¸à¸§à¸²à¸™à¸‹à¸²à¹à¸­à¸‡à¹‚à¸à¸¥à¸² (1977-1990)",
+ }
+ AON{
+ "AON",
+ "นิวà¸à¸§à¸²à¸™à¸‹à¸²à¹à¸­à¸‡à¹‚à¸à¸¥à¸² (1990-2000)",
+ }
+ AOR{
+ "AOR",
+ "à¸à¸§à¸²à¸™à¸‹à¸²à¸£à¸µà¸ˆà¸±à¸ªà¸—าโดà¹à¸­à¸‡à¹‚à¸à¸¥à¸² (1995-1999)",
+ }
+ ARA{
+ "ARA",
+ "ออสตรัลอาเจนตินา",
+ }
ARP{
"ARP",
"เปโซอาร์เจนติน่า (1983-1985)",
@@ -299,30 +352,278 @@ th{
"$A",
"เหรียà¸à¸­à¸­à¸ªà¹€à¸•à¸£à¹€à¸¥à¸µà¸¢",
}
+ AWG{
+ "AWG",
+ "à¸à¸´à¸¥à¹€à¸”อร์อารูบา",
+ }
+ AZM{
+ "AZM",
+ "มานัตอาเซอร์ไบจัน",
+ }
+ BAD{
+ "BAD",
+ "ดีนาร์บอสเนีย-เฮอร์เซโà¸à¸§à¸µà¸™à¸²",
+ }
+ BAM{
+ "BAM",
+ "มาร​์à¸à¸šà¸­à¸ªà¹€à¸™à¸µà¸¢-เฮอร์เซโà¸à¸§à¸µà¸™à¸²",
+ }
+ BBD{
+ "BBD",
+ "ดอลลาร์บาร์เบดอส",
+ }
+ BDT{
+ "BDT",
+ "ตาà¸à¸²à¸šà¸±à¸‡à¸à¸¥à¸²à¹€à¸—ศ",
+ }
+ BEC{
+ "BEC",
+ "ฟรังà¸à¹Œà¹€à¸šà¸¥à¹€à¸¢à¸µà¸¢à¸¡ (เปลี่ยนà¹à¸›à¸¥à¸‡à¹„ด้)",
+ }
+ BEF{
+ "BEF",
+ "ฟรังà¸à¹Œà¹€à¸šà¸¥à¹€à¸¢à¸µà¸¢à¸¡",
+ }
+ BEL{
+ "BEL",
+ "ฟรังà¸à¹Œà¹€à¸šà¸¥à¹€à¸¢à¸µà¸¢à¸¡ (à¸à¸²à¸£à¹€à¸‡à¸´à¸™)",
+ }
+ BGL{
+ "BGL",
+ "ฮาร์ดลีฟบัลà¹à¸à¹€à¸£à¸µà¸¢",
+ }
+ BGN{
+ "BGN",
+ "นิวลีฟบัลà¹à¸à¹€à¸£à¸µà¸¢",
+ }
+ BHD{
+ "BHD",
+ "ดีนาร์บาห์เรน",
+ }
+ BIF{
+ "BIF",
+ "ฟรังà¸à¹Œà¸šà¸¸à¸£à¸¸à¸™à¸”ี",
+ }
+ BMD{
+ "BMD",
+ "ดอลลาร์เบอร์มิวดา",
+ }
+ BND{
+ "BND",
+ "ดอลลาร์บรูไน",
+ }
+ BOB{
+ "BOB",
+ "โบลิเวียโน",
+ }
+ BOP{
+ "BOP",
+ "เปโซโบลิเวีย",
+ }
+ BOV{
+ "BOV",
+ "มฟดอลโบลิเวีย",
+ }
+ BRB{
+ "BRB",
+ "ครูเซโรโนโวบราซิล (1967-1986)",
+ }
+ BRC{
+ "BRC",
+ "ครูซาโดบราซิล",
+ }
+ BRE{
+ "BRE",
+ "ครูเซโรบราซิล (1990-1993)",
+ }
BRL{
"BRL",
"รีล",
}
+ BRN{
+ "BRN",
+ "ครูซาโดโนโวบราซิล",
+ }
+ BRR{
+ "BRR",
+ "ครูเซโรบราซิล",
+ }
+ BSD{
+ "BSD",
+ "ดอลลาร์บาฮามาส",
+ }
+ BTN{
+ "BTN",
+ "à¸à¸±à¸¥à¸—รัมภูà¸à¸²à¸™",
+ }
+ BUK{
+ "BUK",
+ "จัคพม่า [BUK]",
+ }
+ BWP{
+ "BWP",
+ "พูลาบอตสวานา",
+ }
+ BYB{
+ "BYB",
+ "นิวรูเบิลเบลารัสเซีย (1994-1999)",
+ }
+ BYR{
+ "BYR",
+ "รูเบิลเบลารัสเซีย",
+ }
+ BZD{
+ "BZD",
+ "ดอลลาร์เบลีซ",
+ }
CAD{
- "CAD",
+ "Can$",
"เหรียà¸à¸„านาดา",
}
+ CDF{
+ "CDF",
+ "ฟรังà¸à¹Œà¸„องโà¸",
+ }
+ CHE{
+ "CHE",
+ "ยูโรดับเบิลยูไออาร์",
+ }
+ CHF{
+ "CHF",
+ "ฟรังà¸à¹Œà¸ªà¸§à¸´à¸ª",
+ }
+ CHW{
+ "CHW",
+ "ฟรังà¸à¹Œà¸”ับเบิลยูไออาร์",
+ }
+ CLF{
+ "CLF",
+ "ฟูเมนโตชิลี",
+ }
CLP{
- "CLP",
+ "Ch$",
"เปโซชิลี",
}
CNY{
"ï¿¥",
"หยวนเหรินเหมินบี้",
}
+ COP{
+ "COP",
+ "เปโซโคลัมเบีย",
+ }
+ COU{
+ "COU",
+ "วาเลอร์รีล",
+ }
+ CRC{
+ "CRC",
+ "โคลอนคอสตาริà¸à¸²",
+ }
+ CSD{
+ "CSD",
+ "ไดนาร์เซอร์เบีย",
+ }
+ CSK{
+ "CSK",
+ "ฮาร์ดโครูนาเช็à¸à¹‚à¸à¸ªà¹‚ลวัà¸",
+ }
+ CUP{
+ "CUP",
+ "เปโซคิวบา",
+ }
+ CVE{
+ "CVE",
+ "เคปเวอร์เดอร์เอสคูโด",
+ }
+ CYP{
+ "CYP",
+ "ปอนด์ไซปรัส",
+ }
+ CZK{
+ "CZK",
+ "โครูนาสาธารณรัà¸à¹€à¸Šà¹‡à¸",
+ }
+ DDM{
+ "DDM",
+ "ออสต์มาร์à¸à¹€à¸¢à¸­à¸£à¸¡à¸±à¸™à¸•à¸°à¸§à¸±à¸™à¸­à¸­à¸",
+ }
+ DEM{
+ "DEM",
+ "มาร์à¸à¹€à¸¢à¸­à¸£à¸¡à¸™à¸µ",
+ }
+ DJF{
+ "DJF",
+ "ฟรังà¸à¹Œà¸ˆà¸´à¸šà¸¹à¸•à¸µ",
+ }
+ DKK{
+ "DKK",
+ "โครนเดนมาร์à¸",
+ }
+ DOP{
+ "DOP",
+ "เปโซโดมินิà¸à¸²",
+ }
+ DZD{
+ "DZD",
+ "ดีนาร์à¹à¸­à¸¥à¸ˆà¸µà¹€à¸£à¸µà¸¢",
+ }
+ ECS{
+ "ECS",
+ "ซูเà¸à¸£à¹€à¸­à¸à¸§à¸²à¸”อร์",
+ }
+ ECV{
+ "ECV",
+ "วาเลอร์คอนสà¹à¸•à¸™à¸•à¹Œà¹€à¸­à¸à¸§à¸²à¸”อร์",
+ }
+ EEK{
+ "EEK",
+ "ครูนเอสโตเนีย",
+ }
+ EGP{
+ "EGP",
+ "ปอนด์อียิปต์",
+ }
+ EQE{
+ "EQE",
+ "เอ็à¸à¹€à¸§à¹€à¸¥",
+ }
+ ERN{
+ "ERN",
+ "นาà¸à¸Ÿà¸²à¹€à¸­à¸£à¸´à¹€à¸—รีย",
+ }
+ ESA{
+ "ESA",
+ "เปเซตาสเปน (บัà¸à¸Šà¸µ)",
+ }
+ ESB{
+ "ESB",
+ "เปเซตาสเปน (บัà¸à¸Šà¸µà¸—ี่เปลี่ยนà¹à¸›à¸¥à¸‡à¹„ด้)",
+ }
+ ESP{
+ "ESP",
+ "เปเซตาสเปน",
+ }
+ ETB{
+ "ETB",
+ "เบอรร์เอธิโอเปีย",
+ }
EUR{
"€",
"ยูโร",
}
+ FIM{
+ "FIM",
+ "มาร์à¸à¸à¸²à¸Ÿà¸´à¸™à¹à¸¥à¸™à¸”์",
+ }
FJD{
"F$",
"เหรียà¸à¸Ÿà¸´à¸ˆà¸´",
}
+ FKP{
+ "FKP",
+ "ปอนด์เà¸à¸²à¸°à¸Ÿà¸­à¸¥à¹Œà¸à¹à¸¥à¸™à¸”์",
+ }
FRF{
"FRF",
"เหรียà¸à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª",
@@ -331,10 +632,78 @@ th{
"\u00A3",
"ปอนด์สเตอร์ลิงอังà¸à¸¤à¸©",
}
+ GEK{
+ "GEK",
+ "คูปอนลาริตจอร์เจีย",
+ }
+ GEL{
+ "GEL",
+ "ลารีจอร์เจีย",
+ }
+ GHC{
+ "GHC",
+ "เซดีà¸à¸²à¸™à¸²",
+ }
+ GIP{
+ "GIP",
+ "ปอนด์ยิบรอลตาร์",
+ }
+ GMD{
+ "GMD",
+ "ดาลาซีà¹à¸à¸¡à¹€à¸šà¸µà¸¢",
+ }
+ GNF{
+ "GNF",
+ "ฟรังà¸à¹Œà¸à¸´à¸™à¸µ",
+ }
+ GNS{
+ "GNS",
+ "ไซลีà¸à¸´à¸™à¸µ",
+ }
+ GQE{
+ "GQE",
+ "เอ็à¸à¹€à¸§à¹€à¸¥à¸à¸´à¸™à¸µà¸™à¸²à¸­à¸´à¹€à¸„วทอเรียลà¸à¸´à¸™à¸µ",
+ }
+ GRD{
+ "GRD",
+ "ดรัชมาà¸à¸£à¸µà¸",
+ }
+ GTQ{
+ "GTQ",
+ "เควตซัลà¸à¸±à¸§à¹€à¸•à¸¡à¸²à¸¥à¸²",
+ }
+ GWP{
+ "GWP",
+ "เปโซà¸à¸µà¸™à¸µà¸šà¸´à¸ªà¹€à¸‹à¸²",
+ }
+ GYD{
+ "GYD",
+ "ดอลลาร์à¸à¸²à¸¢à¸­à¸²à¸™à¸²",
+ }
HKD{
"HK$",
"เหรียà¸à¸®à¹ˆà¸­à¸‡à¸à¸‡",
}
+ HNL{
+ "HNL",
+ "เลมปิราฮอดูรัส",
+ }
+ HRD{
+ "HRD",
+ "ดีนาร์โครเอเชีย",
+ }
+ HRK{
+ "HRK",
+ "คูนาโครเอเชีย",
+ }
+ HTG{
+ "HTG",
+ "à¸à¸­à¸£à¹Œà¸”เฮติ",
+ }
+ HUF{
+ "HUF",
+ "ฟอรินต์ฮังà¸à¸²à¸£à¸µ",
+ }
IDR{
"Rp",
"รูเปียอินโดนีเซีย",
@@ -347,26 +716,278 @@ th{
"ILP",
"ปอนด์อิสราเอล",
}
+ ILS{
+ "ILS",
+ "เชเà¸à¸¥à¸­à¸´à¸ªà¸£à¸²à¹€à¸­à¸¥",
+ }
INR{
"=0#Rs.|1#Re.|1<Rs.",
"รูปีอินเดีย",
}
+ IQD{
+ "IQD",
+ "ดีนาร์อิรัà¸",
+ }
+ IRR{
+ "IRR",
+ "เรียลอิหร่าน",
+ }
+ ISK{
+ "ISK",
+ "โครนาไอซ์à¹à¸¥à¸™à¸”์",
+ }
+ ITL{
+ "₤",
+ "ลีราอิตาลี",
+ }
+ JMD{
+ "JMD",
+ "ดอลลาร์จาเมà¸à¸²",
+ }
+ JOD{
+ "JOD",
+ "ดีนาร์จอร์à¹à¸”น",
+ }
JPY{
"JPY",
"เยน",
}
+ KES{
+ "KES",
+ "ชิลลิ่งเคนยา",
+ }
+ KGS{
+ "KGS",
+ "ซอมคีร์à¸à¸µà¸‹à¸ªà¸–าน",
+ }
+ KHR{
+ "KHR",
+ "เรียลà¸à¸±à¸¡à¸žà¸¹à¸Šà¸²",
+ }
+ KMF{
+ "KMF",
+ "ฟรังà¸à¹Œà¸„อโมโรส",
+ }
+ KPW{
+ "KPW",
+ "วอนเà¸à¸²à¸«à¸¥à¸µà¹€à¸«à¸™à¸·à¸­",
+ }
+ KRW{
+ "KRW",
+ "วอนเà¸à¸²à¸«à¸¥à¸µà¹ƒà¸•à¹‰",
+ }
+ KWD{
+ "KWD",
+ "ดีนาร์คูเวต",
+ }
+ KYD{
+ "KYD",
+ "ดอลลาร์หมู่เà¸à¸²à¸°à¹€à¸„ย์à¹à¸¡à¸™",
+ }
+ KZT{
+ "KZT",
+ "เทนจ์คาซัคสถาน",
+ }
+ LAK{
+ "LAK",
+ "à¸à¸µà¸šà¸¥à¸²à¸§",
+ }
+ LBP{
+ "LBP",
+ "ปอนด์เลบานอน",
+ }
+ LKR{
+ "LKR",
+ "รูปีศรีลังà¸à¸²",
+ }
+ LRD{
+ "LRD",
+ "ดอลลาร์ไลบีเรีย",
+ }
+ LSL{
+ "LSL",
+ "โลตีเลโซโท",
+ }
+ LSM{
+ "LSM",
+ "มาโลตี",
+ }
+ LTL{
+ "LTL",
+ "ลีตาลิทัวเนีย",
+ }
+ LTT{
+ "LTT",
+ "ทาโลนัสลิทัวเนีย",
+ }
+ LUC{
+ "LUC",
+ "ฟรังà¸à¹Œà¸¥à¸±à¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸ [LUC]",
+ }
+ LUF{
+ "LUF",
+ "ฟรังà¸à¹Œà¸¥à¸±à¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸",
+ }
+ LUL{
+ "LUL",
+ "ฟรังà¸à¹Œà¸¥à¸±à¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸ [LUL]",
+ }
+ LVL{
+ "LVL",
+ "ลัตส์ลัตเวีย",
+ }
+ LVR{
+ "LVR",
+ "รูเบิลลัตเวีย",
+ }
+ LYD{
+ "LYD",
+ "ดีนาร์ลิเบีย",
+ }
+ MAD{
+ "MAD",
+ "ดีà¹à¸£à¸«à¹Œà¸¡à¹‚มร็อà¸à¹‚à¸",
+ }
+ MAF{
+ "MAF",
+ "ฟรังà¸à¹Œà¹‚มร็อà¸à¹‚à¸",
+ }
+ MDL{
+ "MDL",
+ "ลิวมอลโดวาน",
+ }
+ MGA{
+ "MGA",
+ "อาเรียรีมาดาà¸à¸±à¸ªà¸à¸²à¸£à¹Œ",
+ }
+ MGF{
+ "MGF",
+ "ฟรังà¸à¹Œà¸¡à¸²à¸”าà¸à¸±à¸ªà¸à¸²à¸£à¹Œ",
+ }
+ MKD{
+ "MKD",
+ "ดีนาร์มาซิโดเนีย",
+ }
+ MLF{
+ "MLF",
+ "ฟรังà¸à¹Œà¸¡à¸²à¸¥à¸µ",
+ }
+ MMK{
+ "MMK",
+ "จัคพม่า",
+ }
+ MNT{
+ "MNT",
+ "ตูà¸à¸£à¸´à¸à¸¡à¸­à¸‡à¹‚à¸à¹€à¸¥à¸µà¸¢",
+ }
+ MOP{
+ "MOP",
+ "ปาตาà¸à¸²à¸¡à¸²à¹€à¸à¹Šà¸²",
+ }
+ MRO{
+ "MRO",
+ "ออà¸à¸´à¸§à¸¢à¸²à¸¡à¸­à¸£à¸´à¹€à¸•à¹€à¸™à¸µà¸¢",
+ }
+ MTL{
+ "MTL",
+ "ลีรามอลตา",
+ }
+ MTP{
+ "MTP",
+ "ปอนด์มอลตา",
+ }
+ MUR{
+ "MUR",
+ "รูปีมอริเชียส",
+ }
+ MVR{
+ "MVR",
+ "รูฟิยาเà¸à¸²à¸°à¸¡à¸±à¸¥à¸”ีฟส์",
+ }
+ MWK{
+ "MWK",
+ "à¸à¸§à¸²à¸Šà¸²à¸¡à¸²à¸¥à¸²à¸§à¸µ",
+ }
MXN{
"MEX$",
"เปโซà¹à¸¡à¹‡à¸à¸‹à¸´à¹‚à¸",
}
+ MXP{
+ "MXP",
+ "ซิลเวอรืเม็à¸à¸‹à¸´à¹‚ภ(1861-1992)",
+ }
+ MXV{
+ "MXV",
+ "อินเวอร์เซียนเม็à¸à¸‹à¸´à¹‚à¸",
+ }
MYR{
"RM",
"ริงà¸à¸´à¸•à¸¡à¸²à¹€à¸¥à¹€à¸‹à¸µà¸¢",
}
+ MZE{
+ "MZE",
+ "เอสคูโดโมซัมบิà¸",
+ }
+ MZM{
+ "MZM",
+ "เมทิคัลโมซัมบิà¸",
+ }
+ NAD{
+ "NAD",
+ "ดอลลาร์นามิเบีย",
+ }
+ NGN{
+ "NGN",
+ "ไนราไนจีเรีย",
+ }
+ NIC{
+ "NIC",
+ "คอร์โดบานิà¸à¸²à¸£à¸²à¸à¸±à¸§",
+ }
+ NIO{
+ "NIO",
+ "คอร์โดบาโอโรนิà¸à¸²à¸£à¸²à¸à¸±à¸§",
+ }
+ NLG{
+ "NLG",
+ "à¸à¸´à¸¥à¹€à¸”อร์เนเธอร์à¹à¸¥à¸™à¸”์",
+ }
+ NOK{
+ "NOK",
+ "โครนนอร์เวย์",
+ }
+ NPR{
+ "NPR",
+ "รูปีเนปาล",
+ }
NZD{
"$NZ",
"เหรียà¸à¸™à¸´à¸§à¸‹à¸µà¹à¸¥à¸™à¸”์",
}
+ OMR{
+ "OMR",
+ "เรียลโอมาน",
+ }
+ PAB{
+ "PAB",
+ "บัลบัวปานามา",
+ }
+ PEI{
+ "PEI",
+ "อินตีเปรู",
+ }
+ PEN{
+ "PEN",
+ "ซอลนูโวเปรู",
+ }
+ PES{
+ "PES",
+ "ซอลเปรู",
+ }
+ PGK{
+ "PGK",
+ "à¸à¸µà¸™à¸²à¸›à¸²à¸›à¸±à¸§à¸™à¸´à¸§à¸à¸µà¸™à¸µ",
+ }
PHP{
"PHP",
"เปโซฟิลิปปินส์",
@@ -375,22 +996,186 @@ th{
"Pra",
"รูปีปาà¸à¸µà¸ªà¸–าน",
}
+ PLN{
+ "PLN",
+ "ซลอตีโปà¹à¸¥à¸™à¸”์",
+ }
+ PLZ{
+ "PLZ",
+ "ซลอตีโปà¹à¸¥à¸™à¸”์ [PLZ]",
+ }
+ PTE{
+ "PTE",
+ "เอสคูโดโปรตุเà¸à¸ª",
+ }
+ PYG{
+ "PYG",
+ "à¸à¸±à¸§à¸£à¸²à¸™à¸µà¸›à¸²à¸£à¸²à¸à¸§à¸±à¸¢",
+ }
+ QAR{
+ "QAR",
+ "เรียลà¸à¸²à¸•à¸²à¸£à¹Œ",
+ }
+ RHD{
+ "RHD",
+ "ดอลลาร์โรดีเซีย",
+ }
+ ROL{
+ "ROL",
+ "ลิวโรมาเนียเà¸à¹ˆà¸²",
+ }
RUB{
"RUB",
"รูเบิลรัสเซีย",
}
+ RUR{
+ "RUR",
+ "รูเบิลรัสเซีย (1991-1998)",
+ }
+ RWF{
+ "RWF",
+ "ฟรังà¸à¹Œà¸£à¸§à¸±à¸™à¸”า",
+ }
+ SAR{
+ "SAR",
+ "เรียลซาอุดิอาระเบีย",
+ }
+ SBD{
+ "SBD",
+ "ดอลลาร์เà¸à¸²à¸°à¹‚ซโลมอน",
+ }
+ SCR{
+ "SCR",
+ "รูปีเซเชลส์",
+ }
+ SDD{
+ "SDD",
+ "ดีนาร์ซูดาน",
+ }
+ SDP{
+ "SDP",
+ "ปอนด์ซูดาน",
+ }
+ SEK{
+ "SEK",
+ "โครนาสวีเดน",
+ }
SGD{
- "SGD",
+ "S$",
"เหรียà¸à¸ªà¸´à¸‡à¸„โปร์",
}
+ SHP{
+ "SHP",
+ "ปอนด์เซนต์เฮเลนา",
+ }
+ SIT{
+ "SIT",
+ "ทอลาร์สโลวีเนีย",
+ }
+ SKK{
+ "SKK",
+ "โครูนาสโลวัà¸",
+ }
+ SLL{
+ "SLL",
+ "ลีโอนเซียร์ราลีโอน",
+ }
+ SOS{
+ "SOS",
+ "ชิลลิงโซมาเลีย",
+ }
+ SRD{
+ "SRD",
+ "ดอลลาร์สุรินัม",
+ }
+ SRG{
+ "SRG",
+ "à¸à¸´à¸¥à¹€à¸”อร์สุรินัม",
+ }
+ STD{
+ "STD",
+ "ดอบราเซาตูเมà¹à¸¥à¸°à¸›à¸£à¸´à¸™à¸‹à¸´à¸›à¸µ",
+ }
+ SUR{
+ "SUR",
+ "รูเบิลโซเวียต",
+ }
+ SVC{
+ "SVC",
+ "โคลอนเอลซัลวาดอร์",
+ }
+ SYP{
+ "SYP",
+ "ปอนด์ซีเรีย",
+ }
+ SZL{
+ "SZL",
+ "ลิลันà¸à¸µà¸™à¸µà¸ªà¸§à¸²à¸‹à¸´à¹à¸¥à¸™à¸”์",
+ }
THB{
"฿",
"บาท",
}
+ TJR{
+ "TJR",
+ "รูเบิลทาจิà¸à¸´à¸ªà¸–าน",
+ }
+ TJS{
+ "TJS",
+ "โซโมนีทาจิà¸à¸´à¸ªà¸–าน",
+ }
+ TMM{
+ "TMM",
+ "มานัตเติร์à¸à¹€à¸¡à¸™à¸´à¸ªà¸–าน",
+ }
+ TND{
+ "TND",
+ "ดีนาร์ตูนิเซีย",
+ }
+ TOP{
+ "TOP",
+ "ปาอังà¸à¸²à¸•à¸­à¸‡à¸à¸²",
+ }
+ TPE{
+ "TPE",
+ "เอสคูโดติมอร์",
+ }
+ TRL{
+ "TRL",
+ "ลีราตุรà¸à¸µ",
+ }
TRY{
"TRY",
"ตุรà¸à¸µ ลีร่า ใหม่",
}
+ TTD{
+ "TTD",
+ "ดอลลาร์ตรินิà¹à¸”ดà¹à¸¥à¸°à¹‚ตเบโà¸",
+ }
+ TWD{
+ "TWD",
+ "ดอลลาร์ไต้หวัน",
+ }
+ TZS{
+ "TZS",
+ "ชิลลิงà¹à¸—นซาเนีย",
+ }
+ UAH{
+ "UAH",
+ "ฮรีฟเนียยูเครน",
+ }
+ UAK{
+ "UAK",
+ "คาร์โบวาเนตซ์ยูเครน",
+ }
+ UGS{
+ "UGS",
+ "ซิลลิ่งอูà¸à¸±à¸™à¸”า (1966-1987)",
+ }
+ UGX{
+ "UGX",
+ "ชิลลิงยูà¸à¸±à¸™à¸”า",
+ }
USD{
"US$",
"ดอร์ล่าร์สหรัà¸",
@@ -403,165 +1188,740 @@ th{
"USS",
"เหรียà¸à¸ªà¸«à¸£à¸±à¸ (วันเดียวà¸à¸±à¸™)",
}
+ UYP{
+ "UYP",
+ "เปโซอุรุà¸à¸§à¸±à¸¢ (1975-1993)",
+ }
+ UYU{
+ "UYU",
+ "เปโซอุรุà¸à¸§à¸±à¸¢",
+ }
+ UZS{
+ "UZS",
+ "ซัมอุซเบà¸à¸´à¸ªà¸–าน",
+ }
+ VEB{
+ "VEB",
+ "โบลิวาร์เวเนซุเอลา",
+ }
+ VND{
+ "VND",
+ "ดองเวียดนาม",
+ }
+ VUV{
+ "VUV",
+ "วาตูวานูอาตู",
+ }
+ WST{
+ "WST",
+ "ทาลาซามัวตะวันตà¸",
+ }
+ XAG{
+ "XAG",
+ "เงิน",
+ }
XAU{
"XAU",
"ทอง",
}
+ XBA{
+ "XBA",
+ "หน่วยคอมโพสิตยุโรป",
+ }
+ XBB{
+ "XBB",
+ "หน่วยโมเนทารียุโรป",
+ }
+ XBC{
+ "XBC",
+ "หน่วยบัà¸à¸Šà¸µà¸¢à¸¸à¹‚รป [XBC]",
+ }
+ XBD{
+ "XBD",
+ "หน่วยบัà¸à¸Šà¸µà¸¢à¸¸à¹‚รป [XBD]",
+ }
+ XCD{
+ "XCD",
+ "ดอลลาร์à¹à¸„ริบเบียนตะวันออà¸",
+ }
+ XEU{
+ "XEU",
+ "หน่วยเงินตรายุโรป",
+ }
+ XFO{
+ "XFO",
+ "ฟรังà¸à¹Œà¸—องà¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª",
+ }
+ XPD{
+ "XPD",
+ "พัลลาดีม",
+ }
+ XPT{
+ "XPT",
+ "à¹à¸žà¸¥à¸•à¸´à¸™à¸±à¸¡",
+ }
+ XTS{
+ "XTS",
+ "รหัสทดสอบเงินตรา",
+ }
+ XXX{
+ "XXX",
+ "ไม่มีหน่วยเงินตรา",
+ }
+ YDD{
+ "YDD",
+ "ดีนาร์เยเมน",
+ }
+ YER{
+ "YER",
+ "เรียลเยเมน",
+ }
+ YUD{
+ "YUD",
+ "ฮารืดดีนาร์ยูโà¸à¸ªà¸¥à¸²à¹€à¸§à¸µà¸¢",
+ }
+ YUM{
+ "YUM",
+ "โนวิย์ดีนาร์ยูโà¸à¸ªà¸¥à¸²à¹€à¸§à¸µà¸¢",
+ }
+ YUN{
+ "YUN",
+ "ดีนาร์ยูโà¸à¸ªà¸¥à¸²à¹€à¸§à¸µà¸¢",
+ }
+ ZAL{
+ "ZAL",
+ "à¹à¸£à¸™à¸”์à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰ (à¸à¸²à¸£à¹€à¸‡à¸´à¸™)",
+ }
+ ZAR{
+ "ZAR",
+ "à¹à¸£à¸™à¸”์à¹à¸­à¸Ÿà¸£à¸´à¸à¸²à¹ƒà¸•à¹‰",
+ }
+ ZMK{
+ "ZMK",
+ "à¸à¸§à¸²à¸Šà¸²à¹à¸‹à¸¡à¹€à¸šà¸µà¸¢",
+ }
+ ZRN{
+ "ZRN",
+ "นิวà¹à¸‹à¸£à¹Œà¸„องโà¸",
+ }
+ ZRZ{
+ "ZRZ",
+ "à¹à¸‹à¸£à¹Œà¸„องโà¸",
+ }
+ ZWD{
+ "ZWD",
+ "ดอลลาร์ซิมบับเว",
+ }
+ }
+ ExemplarCharacters{"[ฯ ๆ ๎ ็-๠à¸-ฮ ะ-ฺ เ-ๅ]"}
+ Keys{
+ calendar{"ปà¸à¸´à¸—ิน"}
+ currency{"เงินตรา"}
}
- ExemplarCharacters{"[à¸-ฺเ-๎​]"}
Languages{
aa{"อาฟา"}
ab{"à¹à¸­à¸šà¸à¸²à¹€à¸‹à¸µà¸¢"}
+ ace{"อาเจะห์"}
+ ach{"อาโคลิ"}
+ ada{"อาดางมี"}
+ ady{"อะดีเà¸à¸¢à¸²"}
af{"à¹à¸­à¸Ÿà¸£à¸´à¸à¸±à¸™"}
+ afa{"อาฟโร-เอเชียติà¸"}
+ afh{"อาฟริฮิลิ"}
+ ain{"ไอนุ"}
+ ak{"อาคาน"}
+ akk{"อัคคาเดียน"}
+ ale{"อลิอุต"}
+ alg{"ภาษาอาลงเควียน"}
+ alt{"อัลไตใต้"}
am{"อัมฮาริค"}
- ar{"อาราบิค"}
+ an{"อาราโà¸à¸™à¸´à¸ª"}
+ ang{"อังà¸à¸¤à¸©à¹‚บราณ (ค.ศ.450-1100)"}
+ apa{"ภาษาอาปาเช่"}
+ arc{"อารามาอิค"}
+ arn{"อาราคาเนียน"}
+ arp{"อาราพาโฮ"}
+ art{"ภาษาประดิษà¸à¹Œ (อื่นๆ)"}
+ arw{"อาราวัà¸"}
as{"อัสสัมมิส"}
+ ast{"อัสเตอเรียน"}
+ ath{"ภาษาอาธาพาสà¸à¸²à¸™"}
+ aus{"ภาษาออสเตรเลีย"}
+ av{"อาวาริà¸"}
+ awa{"อาวาดิ"}
ay{"ไอมารา"}
az{"อาเซอร์ไบจานี"}
ba{"บาสช์à¸à¸µà¸£à¹Œ"}
+ bad{"บันดา"}
+ bai{"ภาษาบามิเลค"}
+ bal{"บาลูชิ"}
+ ban{"บาหลี"}
+ bas{"บาสา"}
+ bat{"บัลทิภ(อื่นๆ)"}
be{"บายโลรัสเซีย"}
+ bej{"เบจา"}
+ bem{"เบมบา"}
+ ber{"เบอร์เบอร์"}
bg{"บัลà¹à¸à¹€à¸£à¸µà¸¢"}
bh{"บิฮารี"}
+ bho{"โบจพูริ"}
bi{"บิสลามา"}
- bn{"เบนà¸à¸²à¸£à¸µ"}
+ bik{"บิà¸à¸¥"}
+ bin{"บินิ"}
+ bla{"สิà¸à¸ªà¸´à¸à¸²"}
+ bm{"บามบารา"}
+ bnt{"บันทุ"}
bo{"ทิเบต"}
br{"บรีทัน"}
+ bra{"บราจ"}
+ bs{"บอสเนีย"}
+ btk{"บาทัค"}
+ bua{"บูเรียต"}
+ bug{"บูà¸à¸µà¸™à¸´à¸ª"}
+ byn{"บลิน"}
ca{"à¹à¸„ตาà¹à¸¥à¸™"}
+ cad{"คัดโด"}
+ cai{"อินเดียอเมริà¸à¸²à¸à¸¥à¸²à¸‡(อื่นๆ)"}
+ car{"คาริบ"}
+ cau{"คอเคเซียน (อื่นๆ)"}
+ ce{"เชเชิน"}
+ ceb{"เคบัวโน"}
+ cel{"เซลติà¸"}
+ chb{"ชิบชา"}
+ chg{"ชาà¸à¸²à¹„ท"}
+ chk{"ชูà¸à¸´à¸ª"}
+ chm{"มาริ"}
+ chn{"ชินุคจาร์à¸à¸­à¸™"}
+ cho{"ชอà¸à¸—าว"}
+ chp{"ชิเพวยัน"}
+ chr{"เชอโรà¸à¸µ"}
+ chy{"เชเยน"}
+ cmc{"ภาษาชามิà¸"}
co{"คอร์ซิà¸à¸²"}
- cs{"เช็ค"}
+ cop{"คอปทิà¸"}
+ cpe{"ครีโอเลสà¹à¸¥à¸°à¸žà¸´à¸à¸à¸´à¸™à¸ªà¹Œà¸—ี่มาจาà¸à¸­à¸±à¸‡à¸à¸¤à¸©à¸­à¸·à¹ˆà¸™à¹†"}
+ cpf{"ครีโอเลสà¹à¸¥à¸°à¸žà¸´à¸à¸à¸´à¸™à¸ªà¹Œà¸—ี่มาจาà¸à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸­à¸·à¹ˆà¸™à¹†"}
+ cpp{"ครีโอเลสà¹à¸¥à¸°à¸žà¸´à¸à¸à¸´à¸™à¸ªà¹Œà¸—ี่มาจาà¸à¹‚ปรตุเà¸à¸ªà¸­à¸·à¹ˆà¸™à¹†"}
+ cr{"ครี"}
+ crh{"ครีมีนเตอร์à¸à¸µ"}
+ crp{"ครีโอเลสà¹à¸¥à¸°à¸žà¸´à¸à¸à¸´à¸™à¸ªà¹Œ (อื่นๆ)"}
+ cs{"เช็à¸"}
+ csb{"คาซูเบียน"}
+ cu{"เชอร์ชสลาวิà¸"}
+ cus{"คูชิทิภ(อื่นๆ)"}
+ cv{"ชูวาส"}
cy{"เวลส์"}
da{"เดนมาร์à¸"}
+ dak{"ดาโà¸à¸—า"}
+ dar{"ดาร์จวา"}
+ day{"ดายัà¸"}
de{"เยอรมัน"}
- dz{"ภูà¸à¸²à¸™à¸µ"}
+ del{"เดลาวารี"}
+ den{"สลาฟ"}
+ dgr{"ดอจริบ"}
+ din{"ดินà¸à¸²"}
+ doi{"ดอจริ"}
+ dra{"ดราวิเดียน (อื่นๆ)"}
+ dua{"ดัวลา"}
+ dum{"ดัทช์à¸à¸¥à¸²à¸‡"}
+ dv{"ดิเวฮิ"}
+ dyu{"ดิวลา"}
+ dz{"ดซองคา"}
+ ee{"อีเว"}
+ efi{"อีฟิà¸"}
+ egy{"อียิปต์โบราณ"}
+ eka{"อีà¸à¸²à¸ˆà¸±à¸"}
el{"à¸à¸£à¸µà¸"}
+ elx{"อีลามิท"}
en{"อังà¸à¸¤à¸©"}
+ enm{"อังà¸à¸¤à¸©à¸à¸¥à¸²à¸‡"}
eo{"เอสเปอรันโต"}
es{"สเปน"}
et{"เอสโตเนีย"}
eu{"à¹à¸šà¸ªà¸à¹Œ"}
+ ewo{"อีวานโด"}
fa{"เปอร์เซีย"}
+ fan{"ฟาง"}
+ fat{"ฟันทิ"}
+ ff{"ฟูลาฮ์"}
fi{"ฟิน"}
+ fil{"ฟิลิปปินส์"}
+ fiu{"ฟินโน-อัà¸à¹€à¸£à¸µà¸¢à¸™"}
fj{"ฟิจิ"}
fo{"ฟาโรส"}
+ fon{"ฟอน"}
fr{"à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ª"}
+ frm{"à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¸à¸¥à¸²à¸‡"}
+ fro{"à¸à¸£à¸±à¹ˆà¸‡à¹€à¸¨à¸ªà¹‚บราณ"}
+ fur{"เฟรียเลียน"}
fy{"ฟรีสà¹à¸¥à¸™à¸”์"}
ga{"ไอริช"}
+ gaa{"à¸à¸²"}
+ gay{"à¸à¸²à¹‚ย"}
+ gba{"à¸à¸šà¸²à¸¢à¸²"}
gd{"สà¸à¹‡à¸­à¸•à¸ªà¹Œà¹€à¸à¸¥à¸´à¸„"}
+ gem{"เยอรมัน (อื่นๆ)"}
+ gez{"à¸à¸µà¸‹"}
+ gil{"à¸à¸´à¸¥à¹€à¸šà¸­à¸£à¹Œà¸—ิส"}
gl{"à¸à¸°à¸¥à¸µà¹€à¸Šà¸µà¸¢"}
+ gmh{"เยอรมันสูงà¸à¸¥à¸²à¸‡"}
gn{"à¸à¸±à¸§à¸£à¸²à¸™à¸µ"}
+ goh{"เยอรมันสูงโบราณ"}
+ gon{"à¸à¸­à¸™à¸”ิ"}
+ gor{"à¸à¸­à¸£à¸­à¸™à¸—าโล"}
+ got{"โà¸à¸˜à¸´à¸"}
+ grb{"à¸à¸£à¸µà¹‚บ"}
+ grc{"à¸à¸£à¸µà¸à¹‚บราณ"}
gu{"à¸à¸¹à¸ˆà¸²à¸£à¸²à¸•à¸´"}
+ gv{"มานซ์"}
+ gwi{"à¸à¸§à¸´à¸Šà¸­à¸´à¸™"}
ha{"โฮซา"}
+ hai{"ไฮดา"}
+ haw{"ฮาวาย"}
he{"ฮิบรู"}
hi{"ฮินดี"}
+ hil{"ไฮลิเà¸à¸™à¸­à¸™"}
+ him{"ฮิมาชาลิ"}
+ hit{"ฮิตทิต"}
+ hmn{"ฮมอง"}
+ ho{"ฮิริโมทุ"}
hr{"โครเอเทีย"}
+ hsb{"ซอร์เบียนบน"}
+ ht{"ไฮเทียน"}
hu{"ฮังà¸à¸²à¸£à¸µ"}
+ hup{"ฮูพา"}
hy{"อาร์มีเนีย"}
- ia{"อินเตอร์ลิงà¸à¸§à¸²"}
+ hz{"เฮียร์โร"}
+ ia{"ภาษาà¸à¸¥à¸²à¸‡à¸—ี่ใช้ในà¸à¸²à¸£à¸ªà¸·à¹ˆà¸­à¸ªà¸²à¸£à¸£à¸°à¸«à¸§à¹ˆà¸²à¸‡à¸›à¸£à¸°à¹€à¸—ศ"}
+ iba{"อิบาน"}
id{"อินโดนีเชีย"}
ie{"อินเตอร์ลิงค์"}
+ ig{"อิà¸à¹‚บ"}
+ ii{"สิชวนยิ"}
+ ijo{"อิโจ"}
ik{"ไอนูเปียà¸"}
+ ilo{"อิโลโà¸"}
+ inc{"อินดิภ(อื่นๆ)"}
+ ine{"อินโดยูโรเปียน (อื่นๆ)"}
+ inh{"อินà¸à¸¸à¸ª"}
+ io{"อิโด"}
+ ira{"อิหร่าน"}
+ iro{"ภาษาอิโรà¸à¸±à¸§à¹€à¸­à¸µà¸¢à¸™"}
is{"ไอซ์à¹à¸¥à¸™à¸”์ดิค"}
it{"อิตาลี"}
iu{"ไอนุà¸à¸•à¸´à¸•à¸±à¸—"}
ja{"à¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™"}
+ jbo{"โลจบัน"}
+ jpr{"จูดี-เปอร์เซีย"}
+ jrb{"จูดี-อาราบิà¸"}
jv{"ชวา"}
ka{"จอร์เจียน"}
+ kaa{"à¸à¸²à¸£à¸²-à¸à¸²à¸¥à¸žà¸²à¸"}
+ kab{"à¸à¸²à¹„บล"}
+ kac{"à¸à¸°à¸‰à¸´à¹ˆà¸™"}
+ kam{"à¸à¸²à¸¡à¸šà¸²"}
+ kar{"à¸à¸°à¹€à¸«à¸£à¸µà¹ˆà¸¢à¸‡"}
+ kaw{"à¸à¸²à¸§à¸´"}
+ kbd{"à¸à¸²à¸šà¸²à¸£à¹Œà¹€à¸”ียน"}
+ kg{"คองโà¸"}
+ kha{"คาสิ"}
+ khi{"คอยสัน (อื่นๆ)"}
+ kho{"คอทานิส"}
+ ki{"à¸à¸´à¸à¸¸à¸¢à¸¸"}
+ kj{"à¸à¸§à¸™à¸¢à¸²à¸¡à¸²"}
kk{"คาซัค"}
kl{"à¸à¸£à¸µà¸™à¹à¸¥à¸™à¸”์ดิค"}
km{"เขมร"}
+ kmb{"à¸à¸´à¸¡à¸šà¸±à¸™à¸”ุ"}
kn{"à¸à¸²à¸™à¸²à¸”า"}
ko{"เà¸à¸²à¸«à¸¥à¸µ"}
+ kok{"à¸à¸­à¸™à¸à¸²à¸™à¸´"}
+ kos{"à¸à¸­à¸ªà¸£à¸²à¹€à¸­à¸µà¸¢à¸™"}
+ kpe{"à¸à¹€à¸›à¸¥à¸¥à¹Œ"}
+ kr{"à¸à¸²à¸™à¸¸à¸£à¸´"}
+ krc{"à¸à¸²à¸£à¸²à¸Šà¸²à¸¢-บัลà¸à¸²à¸£à¹Œ"}
+ kro{"à¸à¸£à¸¸"}
+ kru{"à¸à¸¸à¸£à¸¸à¸"}
ks{"คัชมีรี"}
ku{"เคิด"}
+ kum{"à¸à¸¸à¸¡à¸´à¸"}
+ kut{"à¸à¸¸à¹€à¸—ไน"}
+ kv{"โà¸à¸¡à¸´"}
+ kw{"คอร์นิส"}
ky{"เคอร์à¸à¸´à¸‹"}
la{"ละติน"}
+ lad{"ลาดิโน"}
+ lah{"ลาฮ์นดา"}
+ lam{"ลามบา"}
+ lb{"ลัà¸à¹€à¸‹à¸¡à¹€à¸šà¸´à¸£à¹Œà¸"}
+ lez{"เลซเà¸à¸µà¸¢à¸™"}
+ lg{"à¸à¸²à¸™à¸”า"}
+ li{"ลิมเบิร์à¸"}
ln{"ลิงà¸à¸²à¸¥à¸²"}
lo{"ลาว"}
+ lol{"มองโà¸"}
+ loz{"โลซิ"}
lt{"ลิธัวเนีย"}
+ lu{"ลูà¸à¸²-à¸à¸²à¸—ันà¸à¸²"}
+ lua{"ลูบา-ลูลัว"}
+ lui{"ลุยเซโน"}
+ lun{"ลันดา"}
+ luo{"ลัว"}
+ lus{"ลูไช"}
lv{"à¹à¸¥à¸•à¹€à¸§à¸µà¸¢ (เลททิสช์)"}
+ mad{"มาดูริส"}
+ mag{"มาà¸à¸²à¸®à¸´"}
+ mai{"มัยธิลิ"}
+ mak{"มาà¸à¸²à¸‹à¸²à¸£à¹Œ"}
+ man{"à¹à¸¡à¸™à¸”ินโà¸"}
+ map{"ออสโทรนีเซีย"}
+ mas{"มาไซ"}
+ mdf{"มอà¸à¸Šà¸²"}
+ mdr{"มานดาร์"}
+ men{"เมนเด"}
mg{"มาลาà¸à¸²à¸‹à¸µ"}
+ mga{"ไอริชà¸à¸¥à¸²à¸‡"}
+ mh{"มาร์à¹à¸Šà¸¥à¸¥à¸´à¸ª"}
mi{"เมารี"}
+ mic{"มิà¸à¹à¸¡à¸"}
+ min{"มินางà¸à¸²à¹€à¸šà¸²"}
+ mis{"ภาษาอื่นๆ"}
mk{"à¹à¸¡à¸‹à¸µà¹‚ดเนีย"}
+ mkh{"มอà¸-เขมร (อื่นๆ)"}
ml{"มาลายาลัม"}
mn{"มองโà¸à¸¥"}
+ mni{"มานิพูริ"}
+ mno{"ภาษามาโนโบ"}
mo{"โมดาเวีย"}
+ moh{"โมฮอว์à¸"}
+ mos{"มอสสิ"}
mr{"มาราที"}
ms{"มลายู"}
mt{"มอลตา"}
+ mul{"หลายภาษา"}
+ mun{"ภาษามันดา"}
+ mus{"ครีà¸"}
+ mwl{"มิรันà¸à¸´à¸ª"}
+ mwr{"มาร์วาริ"}
my{"พม่า"}
+ myn{"ภาษามายัน"}
+ myv{"อิร์ซยา"}
na{"นอรู"}
+ nah{"นาฮวตล์"}
+ nai{"อเมริà¸à¸²à¸­à¸´à¸™à¹€à¸”ียนเหนือ"}
+ nap{"นีโพลิทัน"}
+ nb{"นอร์เวย์บอà¸à¸¡à¸­à¸¥"}
+ nd{"เอ็นเดเบเลเหนือ"}
+ nds{"เยอรมันต่ำ; à¹à¸‹à¸à¸‹à¸­à¸™à¸•à¹ˆà¸³"}
ne{"เนปาล"}
+ new{"เนวาริ"}
+ ng{"ดองà¸à¸²"}
+ nia{"เนีส"}
+ nic{"ไนเà¸à¸­à¸£à¹Œ-à¸à¸­à¸£à¹Œà¹‚ดฟาเนียน (อื่นๆ)"}
+ niu{"ไนอีน"}
nl{"ฮอลันดา"}
+ nn{"นอร์เวย์ไนนอรส์à¸"}
no{"นอร์เวย์"}
+ nog{"โนไà¸"}
+ non{"นอร์ส"}
+ nso{"โซโธเหนือ"}
+ nub{"ภาษานูเบียน"}
+ nv{"นาวาโจ"}
+ nwc{"เนวาริคลาสสิà¸"}
+ ny{"เนียนจา; ชิเชวา; เชวา"}
+ nym{"เนียมเวซิ"}
+ nyn{"เนียโà¸à¹€à¸¥"}
+ nyo{"เนียโร"}
+ nzi{"นซิมา"}
oc{"ออà¸à¸‹à¸´à¸—ัน"}
+ oj{"โอจิบวา"}
om{"โอโรโม (อาฟาน)"}
or{"โอริยา"}
+ os{"ออสเซทิà¸"}
+ osa{"โอซาเà¸"}
+ ota{"ออตโทà¹à¸¡à¸™à¹€à¸•à¸­à¸£à¹Œà¸à¸µà¸ª"}
+ oto{"ภาษาโอโทเมียน"}
pa{"ปัà¸à¸ˆà¸²à¸›"}
+ paa{"ปาปัว (อื่นๆ)"}
+ pag{"พันà¸à¸²à¸‹à¸´à¸™à¸±à¸™"}
+ pal{"พาฮลาวิ"}
+ pam{"พามพานà¸à¸²"}
+ pap{"พาเพียเมนโท"}
+ pau{"พาลาอวน"}
+ peo{"เปอร์เซียโบราณ"}
+ phi{"ฟิลิปปินส์ (อื่นๆ)"}
+ phn{"โฟนิเชียน"}
+ pi{"บาลี"}
pl{"โปà¹à¸¥à¸™à¸”์"}
+ pon{"โพฮ์นเพเอียน"}
+ pra{"ภาษาพราà¸à¸£à¸´à¸•"}
+ pro{"โพรเวนคอลโบราณ"}
ps{"พาสช์โต (พุสช์โต)"}
pt{"โปรตุเà¸à¸ª"}
qu{"คิวชัว"}
+ raj{"ราจาสธานิ"}
+ rap{"ราพานุย"}
+ rar{"ราโรท็องà¸à¸±à¸™"}
rm{"เรโต-โรà¹à¸¡à¸™à¸‹à¹Œ"}
rn{"คิรันดี"}
ro{"โรมัน"}
+ roa{"โรมานซ์ (อื่นๆ)"}
+ rom{"โรมานี"}
+ root{"ราà¸"}
ru{"รัสเซีย"}
+ rup{"อาโรมาเนียน"}
rw{"คินยาวันดา"}
sa{"สันสà¸à¸¤à¸•"}
+ sad{"ซันดาเว"}
+ sah{"ยาà¸à¸¸à¸•"}
+ sai{"อเมริà¸à¸²à¸­à¸´à¸™à¹€à¸”ียนใต้ (อื่นๆ)"}
+ sal{"ภาษาซาลิชัน"}
+ sam{"ซามาริทันอารามาอิà¸"}
+ sas{"ซาซัà¸"}
+ sat{"ซันทาลิ"}
+ sc{"ซาร์ดิเนียน"}
+ scn{"ซิซิเลียน"}
+ sco{"สà¸à¸­à¸•à¸ªà¹Œ"}
sd{"ซินดิ"}
+ se{"ซามิเหนือ"}
+ sel{"เซลà¸à¸¸à¸›"}
+ sem{"เซมิทิภ(อื่นๆ)"}
sg{"สันโค"}
+ sga{"ไอริชโบราณ"}
+ sgn{"ภาษาสัà¸à¸à¸²à¸“"}
sh{"เซอร์โบ-โครเอเทียน"}
+ shn{"ชาน"}
si{"สิงหล"}
+ sid{"ซิดาโม"}
+ sio{"ภาษาซิอวน"}
+ sit{"ซิโน-ทิเบต (อื่นๆ)"}
sk{"สโลวัค"}
sl{"สโลเวเนีย"}
+ sla{"สลาวิภ(อื่นๆ)"}
sm{"ซามัว"}
+ sma{"ซามิใต้"}
+ smi{"ภาษาซามิ (อื่นๆ)"}
+ smj{"ลูลซามิ"}
+ smn{"อินาริซามิ"}
+ sms{"สà¸à¸­à¸¥à¸•à¸‹à¸²à¸¡à¸´"}
sn{"โซนา"}
+ snk{"โซนินเà¸"}
so{"โซมาลี"}
+ sog{"ซอจเดียน"}
+ son{"ซองไฮ"}
sq{"à¹à¸­à¸¥à¹€à¸šà¹€à¸™à¸µà¸¢"}
sr{"เซอร์เบีย"}
+ srn{"ซรานานทองโà¸"}
+ srr{"เซเรอร์"}
ss{"ซีสวาติ"}
+ ssa{"นิโล-ซาฮารัน (อื่นๆ)"}
st{"เซโสโท"}
su{"ซันดานีส"}
+ suk{"ซุà¸à¸¸à¸¡à¸²"}
+ sus{"ซุซุ"}
+ sux{"สุเมเรียน"}
sv{"สวีเดน"}
sw{"ซวาฮิรี"}
+ syr{"ไซเรียà¸"}
ta{"ทมิฬ"}
+ tai{"ไท (อื่นๆ)"}
te{"ทิลูà¸à¸¹"}
+ tem{"ทิมเน"}
+ ter{"เทอเรอโน"}
+ tet{"เททุม"}
tg{"ทาจิค"}
th{"ไทย"}
ti{"ทิà¸à¸£à¸´à¸™à¸¢à¸²"}
+ tig{"ทิจเร"}
+ tiv{"ทิฟ"}
tk{"เติร์à¸à¹€à¸¡à¸™"}
+ tkl{"โทเคลัว"}
tl{"ตาà¸à¸²à¸¥à¹‡à¸­à¸"}
+ tlh{"คลินà¸à¸­à¸™"}
+ tli{"ทลิงà¸à¸´à¸•"}
+ tmh{"ทามาเชà¸"}
tn{"เซตสวานา"}
to{"ทองà¸à¹‰à¸²"}
+ tog{"ท็องà¸à¸² (ไนซา)"}
+ tpi{"ท็อà¸à¸žà¸´à¸‹à¸´à¸™"}
tr{"ตุรà¸à¸µ"}
ts{"ซองà¸à¸²"}
+ tsi{"ซิมเชียน"}
tt{"ตาด"}
+ tum{"ทุมบุà¸à¸²"}
+ tup{"ภาษาทุพิ"}
+ tut{"อัลทาอิภ(อื่นๆ)"}
+ tvl{"ทูวาลู"}
tw{"ทวี"}
+ ty{"ทาฮิเทียน"}
+ tyv{"ทูวิเนียน"}
+ udm{"อัดมาร์ต"}
ug{"อุยà¸à¸±à¸§"}
+ uga{"อูà¸à¸²à¸£à¸´à¸—ิà¸"}
uk{"ยูเครน"}
+ umb{"อัมบันดู"}
+ und{"ไม่ระบุ"}
ur{"อิรดู"}
uz{"อุสเบค"}
+ vai{"ไว"}
+ ve{"เวนดา"}
vi{"เวียดนาม"}
vo{"โวลาพุà¸"}
+ vot{"โวทิà¸"}
+ wa{"วอลลูน"}
+ wak{"ภาษาวาà¸à¸²à¸Šà¸²à¸™"}
+ wal{"วาลาโม"}
+ war{"วาเรย์"}
+ was{"วาโช"}
+ wen{"ภาษาซอร์เบียน"}
wo{"วูลอฟ"}
+ xal{"à¸à¸²à¸¥à¸¡à¸´à¸"}
xh{"โซสา"}
+ yao{"เย้า"}
+ yap{"ยาเพส"}
yi{"ยีดิช"}
yo{"โยรูบา"}
+ ypk{"ภาษายูพิà¸"}
za{"จวง"}
+ zap{"ซาโปเทà¸"}
+ zen{"เซนาà¸à¸²"}
zh{"จีน"}
+ znd{"ซานเด"}
zu{"ซูลู"}
+ zun{"ซูนิ"}
}
LocaleScript{
"Thai",
}
Scripts{
+ Arab{"อารบิà¸"}
+ Armn{"อาร์เมเนียน"}
+ Bali{"บาหลี"}
+ Batk{"บาทัà¸"}
+ Beng{"เบงà¸à¸²à¸¥à¸´"}
+ Blis{"บลิสซิมโบลส์"}
+ Bopo{"โบโพโมโฟ"}
+ Brah{"บรามี"}
+ Brai{"ไบรลเล"}
+ Bugi{"บูà¸à¸´à¸™à¸´à¸ª"}
+ Buhd{"บูฮิด"}
+ Cans{"สัà¸à¸¥à¸±à¸à¸©à¸“์ชนเผ่าพื้นเมืองà¹à¸„นาดา"}
+ Cham{"ชาม"}
+ Cher{"เชโรà¸à¸µ"}
+ Cirt{"เซิร์ต"}
+ Copt{"คอปติà¸"}
+ Cprt{"ไซพริออต"}
+ Cyrl{"ไซริลลริà¸"}
+ Cyrs{"ไซริลลิภ(ภาษาเà¸à¹ˆà¸²à¸ªà¹‚ลวาเนีย)"}
+ Deva{"เทวนาครี"}
+ Dsrt{"ดีซีเรต"}
+ Egyd{"ดีโมติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œ"}
+ Egyh{"เฮียราติà¸à¸­à¸µà¸¢à¸´à¸›à¸•à¹Œ"}
+ Egyp{"เฮียโรà¸à¸¥à¸´à¸Ÿà¸ªà¹Œà¸­à¸µà¸¢à¸´à¸›à¸•à¹Œ"}
+ Ethi{"เอธิโอเปีย"}
+ Geok{"คัตซูรี (อาซอมทัฟรูลีà¹à¸¥à¸°à¸™à¸¹à¸ªà¸„ูรี)"}
+ Glag{"à¸à¸¥à¸²à¹‚à¸à¸¥à¸´à¸•à¸´à¸"}
+ Goth{"โà¸à¸—ิà¸"}
+ Grek{"à¸à¸£à¸µà¸"}
+ Gujr{"à¸à¸¹à¸ˆà¸²à¸£à¸²à¸—ิ"}
+ Guru{"เà¸à¸­à¸£à¹Œà¸¡à¸¹à¸„ิ"}
+ Hang{"ฮันà¸à¸¹à¸¥"}
+ Hani{"ฮัน"}
+ Hano{"ฮานูนู"}
+ Hans{"ฮันปรับปรุง"}
+ Hant{"ฮันดั้งเดิม"}
+ Hebr{"ฮิบรู"}
+ Hira{"ฮิรางานะ"}
+ Hmng{"พาฮาวมอง"}
+ Hrkt{"à¸à¸²à¸•à¸°à¸‡à¸²à¸™à¸°à¸«à¸£à¸·à¸­à¸®à¸´à¸£à¸²à¸‡à¸²à¸™à¸°"}
+ Hung{"ฮังà¸à¸²à¸£à¸µà¹€à¸à¹ˆà¸²"}
+ Inds{"อินดัส (ฮารัปพัน)"}
+ Ital{"อิตาลีเà¸à¹ˆà¸²"}
+ Java{"จาวานีส"}
+ Kali{"à¸à¸²à¸¢à¸²à¸¥à¸µ"}
+ Kana{"à¸à¸²à¸•à¸°à¸à¸²à¸™à¸°"}
+ Khar{"คาโรสติ"}
+ Khmr{"เขมร"}
+ Knda{"à¸à¸²à¸™à¸™à¸²à¸”า"}
+ Laoo{"ลาว"}
+ Latf{"ลาติน (ฟรังเตอร์)"}
+ Latg{"ลาติน (à¹à¸à¸¥à¸´à¸)"}
Latn{"ลาติน"}
+ Lepc{"เลปชา (รอง)"}
+ Limb{"ลิมบู"}
+ Lina{"ลีเนียร์เอ"}
+ Linb{"ลีเนียร์บี"}
+ Mand{"à¹à¸¡à¸™à¹à¸”น"}
+ Maya{"มายันฮีโรà¸à¸¥à¸´à¸Ÿà¸ªà¹Œ"}
+ Mero{"เมโรติà¸"}
+ Mlym{"มะละยาลัม"}
+ Mong{"มองโà¸à¹€à¸¥à¸µà¸¢"}
+ Mymr{"พม่า"}
+ Nkoo{"เอ็นโà¸"}
+ Ogam{"โอà¸à¸²à¸¡"}
+ Orkh{"ออร์คอน"}
+ Orya{"ออริยา"}
+ Osma{"ออสมันยา"}
+ Perm{"เปอร์มิà¸à¹€à¸à¹ˆà¸²"}
+ Phag{"ฟาà¸à¸ªà¹Œ-พา"}
+ Phnx{"โฟนิเชียน"}
+ Plrd{"โพลลาร์ดโฟเนติà¸"}
+ Qaai{"อินเฮอริต"}
+ Roro{"รองโà¸à¸£à¸­à¸‡à¹‚à¸"}
+ Runr{"รูนิà¸"}
+ Sara{"ซาราทิ"}
+ Shaw{"ซาเวียน"}
+ Sinh{"ซินฮาลา"}
+ Sylo{"ไซโลทินาà¸à¸£à¸µ"}
+ Tagb{"ทัà¸à¸šà¸±à¸™à¸§à¸²"}
+ Tale{"ไทเล"}
+ Talu{"ไทเลใหม่"}
+ Taml{"ทมิฬ"}
+ Telu{"เทลูà¸à¸¹"}
+ Teng{"เทงวอร์"}
+ Tfng{"ทิฟินา (เบอร์เบอร์)"}
+ Tglg{"ตาà¸à¸²à¸¥à¹‡à¸­à¸"}
+ Thaa{"ทานา"}
Thai{"ไทย"}
+ Tibt{"ทิเบต"}
+ Ugar{"อูà¸à¸²à¸£à¸´à¸•à¸´à¸"}
+ Vaii{"ไว"}
+ Xpeo{"เปอร์เซียเà¸à¹ˆà¸²"}
+ Xsux{"ซูเมโร-อัà¸à¸„าเดียนคูนิฟอร์ม"}
+ Zxxx{"รหัสสำหรับภาษาที่ไม่มีภาษาเขียน"}
+ Zyyy{"สามัà¸"}
+ Zzzz{"รหัสสำหรับสคริปต์ที่ไม่มีรหัส"}
}
- Version{"1.50"}
- boundaries{
- line{"line_th"}
- word{"word_th"}
+ Types{
+ calendar{
+ buddhist{"ปà¸à¸´à¸—ินพุทธ"}
+ chinese{"ปà¸à¸´à¸—ินจีน"}
+ gregorian{"ปà¸à¸´à¸—ินเà¸à¸£à¸à¸­à¹€à¸£à¸µà¸¢à¸™"}
+ hebrew{"ปà¸à¸´à¸—ินฮิบรู"}
+ islamic{"ปà¸à¸´à¸—ินอิสลาม"}
+ islamic-civil{"ปà¸à¸´à¸—ินอิสลามซีวิล"}
+ japanese{"ปà¸à¸´à¸—ินà¸à¸µà¹ˆà¸›à¸¸à¹ˆà¸™"}
+ }
+ collation{
+ big5han{"จีนดั้งเดิม"}
+ direct{"ลำดับตรง"}
+ gb2312han{"จีนปรับปรุงใหม่"}
+ phonebook{"ลำดับสมุดโทรศัพท์"}
+ pinyin{"ลำดับพินยิน"}
+ stroke{"ลำดับà¸à¸²à¸£à¸¥à¸²à¸à¹€à¸ªà¹‰à¸™"}
+ traditional{"ดั้งเดิม"}
+ }
+ }
+ Variants{
+ 1901{"เยอรมันออร์โธà¸à¸£à¸²à¸Ÿà¸µà¸”ั้งเดิม"}
+ 1996{"เยอรมันออร์โธà¸à¸£à¸²à¸Ÿà¸µà¸›à¸µ 1996"}
+ NEDIS{"ภาษาพื้นเมืองนาทิโซเน"}
+ POLYTONI{"โพลีโทนิà¸"}
+ REVISED{"ออร์โธà¸à¸£à¸²à¸Ÿà¸´à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡"}
+ ROZAJ{"เรเซียน"}
+ SAAHO{"ซาโฮ"}
}
+ Version{"1.73"}
calendar{
buddhist{
DateTimePatterns{
@@ -581,11 +1941,8 @@ th{
}
}
}
+ default{"gregorian"}
gregorian{
- AmPmMarkers{
- "à¸à¹ˆà¸­à¸™à¹€à¸—ี่ยง",
- "หลังเที่ยง",
- }
DateTimePatterns{
"H' นาฬิà¸à¸² 'm' นาที 'ss' วินาที'",
"H' นาฬิà¸à¸² 'm' นาที'",
@@ -632,9 +1989,48 @@ th{
}
eras{
abbreviated{
- "ปีà¸à¹ˆà¸­à¸™à¸„ริสต์à¸à¸²à¸¥à¸—ี่",
+ "ปีà¸à¹ˆà¸­à¸™ ค.ศ. ที่",
"ค.ศ.",
}
+ wide{
+ "ปีà¸à¹ˆà¸­à¸™à¸„ริสต์ศัà¸à¸£à¸²à¸Šà¸—ี่",
+ "คริสต์ศัà¸à¸£à¸²à¸Š",
+ }
+ }
+ fields{
+ day{
+ dn{"วัน"}
+ }
+ dayperiod{
+ dn{"ช่วงวัน"}
+ }
+ era{
+ dn{"สมัย"}
+ }
+ hour{
+ dn{"ชั่วโมง"}
+ }
+ minute{
+ dn{"นาที"}
+ }
+ month{
+ dn{"เดือน"}
+ }
+ second{
+ dn{"วินาที"}
+ }
+ week{
+ dn{"สัปดาห์"}
+ }
+ weekday{
+ dn{"วันในสัปดาห์"}
+ }
+ year{
+ dn{"ปี"}
+ }
+ zone{
+ dn{"เขต"}
+ }
}
monthNames{
format{
@@ -684,7 +2080,551 @@ th{
}
}
}
+ quarters{
+ format{
+ wide{
+ "ไตรมาส 1",
+ "ไตรมาส 2",
+ "ไตรมาส 3",
+ "ไตรมาส 4",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Ceuta"{
+ ec{"เซวตา"}
+ }
+ "Africa:Kinshasa"{
+ ec{"à¸à¸´à¸™à¸Šà¸²à¸‹à¸²"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"ลูบัมบาชิ"}
+ }
+ "America:Adak"{
+ ec{"เอดัà¸"}
+ }
+ "America:Anchorage"{
+ ec{"à¹à¸­à¸™à¸Šà¸­à¹€à¸£à¸ˆ"}
+ }
+ "America:Araguaina"{
+ ec{"อาราà¸à¸±à¸§à¸™à¸²"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"โคมอดริวาดาเวีย"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"ลาริโอจา"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"ริโอà¸à¸²à¸¥à¹€à¸¥à¸à¸­à¸ª"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"ซานจวน"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"ทูคูà¹à¸¡à¸™"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"อูชูเอีย"}
+ }
+ "America:Bahia"{
+ ec{"บาเยีย"}
+ }
+ "America:Belem"{
+ ec{"เบเลง"}
+ }
+ "America:Boa_Vista"{
+ ec{"บัววีชตา"}
+ }
+ "America:Boise"{
+ ec{"บอยซี"}
+ }
+ "America:Buenos_Aires"{
+ ec{"บัวโนสไอเรส"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"อ่าวà¹à¸„มบริดจ์"}
+ }
+ "America:Campo_Grande"{
+ ec{"à¸à¸±à¸¡à¸›à¸¹à¸à¸£à¸±à¸¡à¸”ี"}
+ }
+ "America:Cancun"{
+ ec{"à¹à¸„นคุน"}
+ }
+ "America:Catamarca"{
+ ec{"คาตามาร์à¸à¸²"}
+ }
+ "America:Chicago"{
+ ec{"ชิคาโà¸"}
+ }
+ "America:Chihuahua"{
+ ec{"ชีวาวา"}
+ }
+ "America:Coral_Harbour"{
+ ec{"โครัลฮาร์เบอร์"}
+ }
+ "America:Cordoba"{
+ ec{"คอร์โดบา"}
+ }
+ "America:Cuiaba"{
+ ec{"à¸à¸¸à¸¢à¸²à¸šà¸²"}
+ }
+ "America:Danmarkshavn"{
+ ec{"ดันมาร์à¸à¸Šà¸²à¸Ÿà¸™à¹Œ"}
+ }
+ "America:Dawson"{
+ ec{"ดอว์สัน"}
+ }
+ "America:Dawson_Creek"{
+ ec{"ดอว์สัน ครีà¸"}
+ }
+ "America:Denver"{
+ ec{"เดนเวอร์"}
+ }
+ "America:Detroit"{
+ ec{"ดีทรอยต์"}
+ }
+ "America:Edmonton"{
+ ec{"เอดมันตัน"}
+ }
+ "America:Eirunepe"{
+ ec{"เอรูเนเป"}
+ }
+ "America:Fortaleza"{
+ ec{"ฟอร์ตาเลซา"}
+ }
+ "America:Glace_Bay"{
+ ec{"อ่าวà¹à¸à¸¥à¸‹"}
+ }
+ "America:Godthab"{
+ ec{"à¸à¸­à¸”à¹à¸˜à¸š"}
+ }
+ "America:Goose_Bay"{
+ ec{"à¸à¸¹à¸ªà¹€à¸šà¸¢à¹Œ"}
+ }
+ "America:Guayaquil"{
+ ec{"à¸à¸±à¸§à¸¢à¸²à¸à¸´à¸¥"}
+ }
+ "America:Halifax"{
+ ec{"à¹à¸®à¸¥à¸´à¹à¸Ÿà¸à¸‹à¹Œ"}
+ }
+ "America:Hermosillo"{
+ ec{"เอร์โมซีโย"}
+ }
+ "America:Indiana:Knox"{
+ ec{"นอà¸à¸‹à¹Œ"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"มาเรงโà¸"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"ปีเตอร์สเบิร์à¸"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"วีเวย์"}
+ }
+ "America:Indiana:Vincennes"{
+ ec{"วินเซนเนส"}
+ }
+ "America:Indianapolis"{
+ ec{"อินเดียà¹à¸™à¹‚พลิส"}
+ }
+ "America:Inuvik"{
+ ec{"อินูวิà¸"}
+ }
+ "America:Iqaluit"{
+ ec{"อีà¸à¸§à¸²à¸¥à¸´à¸•"}
+ }
+ "America:Jujuy"{
+ ec{"จูจิว"}
+ }
+ "America:Juneau"{
+ ec{"จูโน"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"มอนติเซลโล"}
+ }
+ "America:Los_Angeles"{
+ ec{"ลอสà¹à¸­à¸‡à¹€à¸ˆà¸¥à¸´à¸ª"}
+ }
+ "America:Maceio"{
+ ec{"มาเซโอ"}
+ }
+ "America:Manaus"{
+ ec{"มาเนาส์"}
+ }
+ "America:Mazatlan"{
+ ec{"มาซาทลาน"}
+ }
+ "America:Mendoza"{
+ ec{"เมนดูซา"}
+ }
+ "America:Menominee"{
+ ec{"เมโนมินี"}
+ }
+ "America:Merida"{
+ ec{"เมรีดา"}
+ }
+ "America:Mexico_City"{
+ ec{"เม็à¸à¸‹à¸´à¹‚à¸à¸‹à¸´à¸•à¸µ"}
+ }
+ "America:Moncton"{
+ ec{"มองตัน"}
+ }
+ "America:Monterrey"{
+ ec{"มอนเตร์เรย์"}
+ }
+ "America:Montreal"{
+ ec{"มอนทริออล"}
+ }
+ "America:New_York"{
+ ec{"นิวยอร์à¸"}
+ }
+ "America:Nipigon"{
+ ec{"นิปิà¸à¸­à¸™"}
+ }
+ "America:Nome"{
+ ec{"นอม"}
+ }
+ "America:Noronha"{
+ ec{"โนรอนฮา"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"เซนเตอร์"}
+ }
+ "America:Pangnirtung"{
+ ec{"พางนีทัง"}
+ }
+ "America:Phoenix"{
+ ec{"ฟีนิà¸à¸‹à¹Œ"}
+ }
+ "America:Porto_Velho"{
+ ec{"ปอร์ตูเวลโย"}
+ }
+ "America:Rainy_River"{
+ ec{"เรนนี่ริเวอร์"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"à¹à¸£à¸‡à¸à¸´à¸™à¸­à¸´à¸™à¹€à¸¥à¹‡à¸•"}
+ }
+ "America:Recife"{
+ ec{"เรซีเฟ"}
+ }
+ "America:Regina"{
+ ec{"ริไจนา"}
+ }
+ "America:Rio_Branco"{
+ ec{"ริโอบรังโà¸"}
+ }
+ "America:Santiago"{
+ ec{"ซันติอาโà¸"}
+ }
+ "America:Sao_Paulo"{
+ ec{"เซาเปาลู"}
+ }
+ "America:Scoresbysund"{
+ ec{"สà¸à¸­à¹€à¸£à¸ªà¹„บซันด์"}
+ }
+ "America:Shiprock"{
+ ec{"ชิปร็อà¸"}
+ }
+ "America:St_Johns"{
+ ec{"เซนต์จอนส์"}
+ }
+ "America:Swift_Current"{
+ ec{"สวิฟต์เคอร์เรนต์"}
+ }
+ "America:Thule"{
+ ec{"ทูเล"}
+ }
+ "America:Thunder_Bay"{
+ ec{"ทันเดอร์เบย์"}
+ }
+ "America:Tijuana"{
+ ec{"ทิฮัวนา"}
+ }
+ "America:Toronto"{
+ ec{"โทรอนโต"}
+ }
+ "America:Vancouver"{
+ ec{"à¹à¸§à¸™à¸„ูเวอร์"}
+ }
+ "America:Whitehorse"{
+ ec{"ไวต์ฮอร์ส"}
+ }
+ "America:Winnipeg"{
+ ec{"วินนิเพà¸"}
+ }
+ "America:Yakutat"{
+ ec{"ยาà¸à¸¹à¸—ัต"}
+ }
+ "America:Yellowknife"{
+ ec{"เยลโลว์ไนฟ์"}
+ }
+ "Antarctica:Casey"{
+ ec{"เคเซย์"}
+ }
+ "Antarctica:Davis"{
+ ec{"เดวิส"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"ดูมอนต์ดียูร์วิลล์"}
+ }
+ "Antarctica:Mawson"{
+ ec{"มาว์ซัน"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"à¹à¸¡à¸„มูร์ดู"}
+ }
+ "Antarctica:Palmer"{
+ ec{"พาล์เมอร์"}
+ }
+ "Antarctica:Rothera"{
+ ec{"โรเทรา"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"ขั้วโลà¸à¹ƒà¸•à¹‰"}
+ }
+ "Antarctica:Syowa"{
+ ec{"เซียวา"}
+ }
+ "Antarctica:Vostok"{
+ ec{"วอสทอà¸"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"ลองเยียร์เบียน"}
+ }
+ "Asia:Almaty"{
+ ec{"อัลมาตี"}
+ }
+ "Asia:Anadyr"{
+ ec{"อานาดีร์"}
+ }
+ "Asia:Aqtau"{
+ ec{"อัคทัว"}
+ }
+ "Asia:Aqtobe"{
+ ec{"อัคโทบี"}
+ }
+ "Asia:Choibalsan"{
+ ec{"โชบาลซาน"}
+ }
+ "Asia:Chongqing"{
+ ec{"ฉงชิ่ง"}
+ }
+ "Asia:Harbin"{
+ ec{"ฮาร์บิน"}
+ }
+ "Asia:Hovd"{
+ ec{"ฮอฟด์"}
+ }
+ "Asia:Jakarta"{
+ ec{"จาà¸à¸²à¸£à¹Œà¸•à¸²"}
+ }
+ "Asia:Jayapura"{
+ ec{"จายาพูรา"}
+ }
+ "Asia:Kamchatka"{
+ ec{"คามชัตà¸à¸²"}
+ }
+ "Asia:Kashgar"{
+ ec{"à¸à¸±à¸Šà¸à¸²à¸£à¹Œ"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"ครัสโนยาร์สà¸à¹Œ"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"à¸à¸±à¸§à¸¥à¸²à¸¥à¸±à¸¡à¹€à¸›à¸­à¸£à¹Œ"}
+ }
+ "Asia:Kuching"{
+ ec{"à¸à¸¹à¸Šà¸´à¸‡"}
+ }
+ "Asia:Magadan"{
+ ec{"มาà¸à¸²à¸”าน"}
+ }
+ "Asia:Makassar"{
+ ec{"มาà¸à¸±à¸ªà¸‹à¸²à¸£à¹Œ"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"โนโวซิบิร์สà¸à¹Œ"}
+ }
+ "Asia:Omsk"{
+ ec{"โอมสà¸à¹Œ"}
+ }
+ "Asia:Oral"{
+ ec{"ออรัล"}
+ }
+ "Asia:Pontianak"{
+ ec{"พอนเทียนัà¸"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"ไคซีลอร์ดา"}
+ }
+ "Asia:Sakhalin"{
+ ec{"ซาคาลิน"}
+ }
+ "Asia:Samarkand"{
+ ec{"ซามาร์à¸à¸²à¸™à¸”์"}
+ }
+ "Asia:Shanghai"{
+ ec{"เซี่ยงไฮ้"}
+ }
+ "Asia:Tashkent"{
+ ec{"ทาชเคนต์"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"อูลานบาตอร์"}
+ }
+ "Asia:Urumqi"{
+ ec{"อุรุมชี"}
+ }
+ "Asia:Vladivostok"{
+ ec{"วลาดิโวสต็อà¸"}
+ }
+ "Asia:Yakutsk"{
+ ec{"ยาคุตสค์"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"ยีคาเตอรินเบิร์à¸"}
+ }
+ "Atlantic:Azores"{
+ ec{"อาซอเรส"}
+ }
+ "Atlantic:Canary"{
+ ec{"คานารี"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"à¹à¸ˆà¸™à¸¡à¸²à¹€à¸¢à¸™"}
+ }
+ "Atlantic:Madeira"{
+ ec{"มาเดรา"}
+ }
+ "Australia:Adelaide"{
+ ec{"à¹à¸­à¸”ิเลด"}
+ }
+ "Australia:Brisbane"{
+ ec{"บริสเบน"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"โบรà¸à¹€à¸„นฮิว"}
+ }
+ "Australia:Currie"{
+ ec{"คูร์รี"}
+ }
+ "Australia:Darwin"{
+ ec{"ดาร์วิน"}
+ }
+ "Australia:Hobart"{
+ ec{"โฮบาร์ต"}
+ }
+ "Australia:Lindeman"{
+ ec{"ลินดีà¹à¸¡à¸™"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"ลอร์ดโฮวี"}
+ }
+ "Australia:Melbourne"{
+ ec{"เมลเบิร์น"}
+ }
+ "Australia:Perth"{
+ ec{"เพิิร์ท"}
+ }
+ "Australia:Sydney"{
+ ec{"ซิดนีย์"}
+ }
+ "Europe:Belfast"{
+ ec{"เบลฟัสต์"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"คาลินิงà¸à¸£à¸²à¸”"}
+ }
+ "Europe:Kiev"{
+ ec{"à¸à¸µà¸Ÿ"}
+ }
+ "Europe:Lisbon"{
+ ec{"ลิสบอน"}
+ }
+ "Europe:London"{
+ ec{"ลอนดอน"}
+ }
+ "Europe:Madrid"{
+ ec{"มาดริด"}
+ }
+ "Europe:Moscow"{
+ ec{"มอสโค"}
+ }
+ "Europe:Samara"{
+ ec{"ซามารา"}
+ }
+ "Europe:Simferopol"{
+ ec{"ซิมเฟอโรโปล"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"อัซโà¸à¸£à¹‡à¸­à¸”"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"ซาโปโรซี"}
+ }
+ "Pacific:Auckland"{
+ ec{"โอคà¹à¸¥à¸™à¸”์"}
+ }
+ "Pacific:Chatham"{
+ ec{"à¹à¸Šà¹à¸˜à¸¡"}
+ }
+ "Pacific:Easter"{
+ ec{"อีสเตอร์"}
+ }
+ "Pacific:Enderbury"{
+ ec{"เอ็นเดอร์บูรี"}
+ }
+ "Pacific:Galapagos"{
+ ec{"à¸à¸²à¸¥à¸²à¸›à¸²à¸à¸­à¸ª"}
+ }
+ "Pacific:Gambier"{
+ ec{"à¹à¸à¸¡à¹€à¸šà¸­à¸£à¹Œ"}
+ }
+ "Pacific:Honolulu"{
+ ec{"โฮโนลูลู"}
+ }
+ "Pacific:Johnston"{
+ ec{"จอห์นสตัน"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"คิริทิมาตี"}
+ }
+ "Pacific:Kosrae"{
+ ec{"คอสà¹à¸£"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"ควจาเลน"}
+ }
+ "Pacific:Majuro"{
+ ec{"มาจูโร"}
+ }
+ "Pacific:Marquesas"{
+ ec{"มาร์คิวซัส"}
+ }
+ "Pacific:Midway"{
+ ec{"มิดเวย์"}
+ }
+ "Pacific:Ponape"{
+ ec{"โพนาป"}
+ }
+ "Pacific:Tahiti"{
+ ec{"ทาฮิติ"}
+ }
+ "Pacific:Tarawa"{
+ ec{"ทาราวา"}
+ }
+ "Pacific:Truk"{
+ ec{"ทรัà¸"}
+ }
+ "Pacific:Wake"{
+ ec{"เวà¸"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/th_TH.txt b/Build/source/libs/icu-xetex/data/locales/th_TH.txt
index da8c5fcf37e..c081a92460b 100644
--- a/Build/source/libs/icu-xetex/data/locales/th_TH.txt
+++ b/Build/source/libs/icu-xetex/data/locales/th_TH.txt
@@ -1,17 +1,66 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/th_TH.xml
+// * Source File:<path>/common/main/th_TH.xml
// *
// ***************************************************************************
th_TH{
+ Countries{
+ AN{"เนเธอร์à¹à¸¥à¸™à¸”์à¹à¸­à¸™à¸—ิลลิส"}
+ }
+ Keys{
+ collation{"ตรวจเทียบ"}
+ }
+ Languages{
+ ae{"อาเวสทาน"}
+ ch{"ชามอร์โร"}
+ dsb{"ซอร์เบียนต่ำ"}
+ eka{"อีà¸à¸²à¸ˆà¸¸à¸"}
+ ewo{"อีวันโด"}
+ fat{"ฟันติ"}
+ grb{"เà¸à¸£à¹‚บ"}
+ hz{"เฮเรโร"}
+ ii{"ชิชวนยี่"}
+ inh{"อิงà¸à¸¸à¸Š"}
+ mk{"มาซิโดเนีย"}
+ mwl{"มิรันดีส"}
+ nap{"เนียโพลิà¹à¸—น"}
+ nr{"เอ็นเดเบเลใต้"}
+ ro{"โรมาเนีย"}
+ ss{"สวาติ"}
+ ter{"เทเรโน"}
+ tk{"เติร์à¸"}
+ tn{"สวานา"}
+ ty{"ตาฮิเตียน"}
+ ur{"อูรดู"}
+ }
NumberPatterns{
"#,##0.###",
"¤#,##0.00;¤-#,##0.00",
"#,##0%",
"#E0",
}
- Version{"1.26"}
+ Scripts{
+ Geor{"จอร์เจียน"}
+ Hung{"ฮังà¸à¸²à¸£à¸µà¹‚บราณ"}
+ Ital{"อิตาลีโบราณ"}
+ Mlym{"มาลายาลัม"}
+ }
+ Version{"1.39"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"\""}
+ alternateQuotationStart{"\""}
+ quotationEnd{"'"}
+ quotationStart{"'"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/th_TH_TRADITIONAL.txt b/Build/source/libs/icu-xetex/data/locales/th_TH_TRADITIONAL.txt
index c600384aefa..5b591240525 100644
--- a/Build/source/libs/icu-xetex/data/locales/th_TH_TRADITIONAL.txt
+++ b/Build/source/libs/icu-xetex/data/locales/th_TH_TRADITIONAL.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: deprecatedList.xml
+// * Source File:<path>/icu-config.xml & build.xml
// *
// ***************************************************************************
th_TH_TRADITIONAL{
diff --git a/Build/source/libs/icu-xetex/data/locales/ti.txt b/Build/source/libs/icu-xetex/data/locales/ti.txt
index 20b330df558..d645828689d 100644
--- a/Build/source/libs/icu-xetex/data/locales/ti.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ti.txt
@@ -1,53 +1,33 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ti.xml
+// * Source File:<path>/common/main/ti.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ti.xml
+ * ICU <specials> source: <path>/xml/main/ti.xml
*/
ti{
Countries:alias{"am"}
- Currencies{
- EUR{
- "€",
- "EUR",
- }
- GBP{
- "£",
- "GBP",
- }
- INR{
- "=0#Rs.|1#Re.|1<Rs.",
- "INR",
- }
- JPY{
- "Â¥",
- "JPY",
- }
- }
ExemplarCharacters{
- "[ሀ-ቈቊ-á‰á‰-ቖቘቚ-á‰á‰ -ኈኊ-áŠáŠ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-áŒáŒ’-ጕጘ-ášáŸ-á¼áŽ€-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-â·Žâ·-â·–â·˜"
- "-â·ž]"
+ "[០ᡠá£-á§ á¢ á  á¨ áŽ-᎙ á²-á¼ á©-ᱠሀ-ሠⶀ áˆ-ሟ ᎀ-ᎃ ⶠሠ-ሯ ⶂ ሰ-ሷ ⶃ ሸ-ሿ ⶄ ቀ-ቈ ቊ-በá‰-ቖ ቘ ቚ"
+ "-በበ-ቧ ᎄ-ᎇ ⶅ ቨ-ቷ ⶆ ቸ-ቿ ⶇ ኀ-ኈ ኊ-አáŠ-ኗ ⶈ ኘ-ኟ ⶉ አ-ኧ ⶊ ከ-ኰ ኲ-ኵ ኸ-ኾ á‹€ á‹‚-á‹… ወ-á‹– ዘ-á‹Ÿ"
+ " ⶋ á‹ -á‹· ⶌ ዸ-á‹¿ ⶠጀ-ጇ ⶎ ገ-ጠጒ-ጕ ጘ-ጟ ⶓ-ⶖ ጠ-ጧ ⶠጨ-ጯ ⶠጰ-ጷ ⶑ ጸ-á ᎈ-ᎋ á-ᗠᎌ-Ꭰⶒ á˜-áš"
+ " ⶠ-ⶦ ⶨ-ⶮ ⶰ-ⶶ ⶸ-ⶾ â·€-â·† â·ˆ-â·Ž â·-â·– â·˜-â·ž]"
}
Languages:alias{"am"}
LocaleScript{
"Ethi",
}
- Version{"1.31"}
+ Version{"1.43"}
calendar{
gregorian{
AmPmMarkers{
"ንጉሆ ሰዓተ",
"ድሕር ሰዓት",
}
- DateTimeElements:intvector{
- 7,
- 1,
- }
dayNames{
format{
abbreviated{
@@ -69,6 +49,17 @@ ti{
"ቀዳáˆ",
}
}
+ stand-alone{
+ narrow{
+ "ሰ",
+ "ሰ",
+ "ሠ",
+ "ረ",
+ "ኃ",
+ "á‹“",
+ "ቀ",
+ }
+ }
}
eras{
abbreviated{
@@ -107,6 +98,22 @@ ti{
"ዲሴáˆá‰ áˆ­",
}
}
+ stand-alone{
+ narrow{
+ "ጃ",
+ "áŒ",
+ "ማ",
+ "ኤ",
+ "ሜ",
+ "áŒ",
+ "áŒ",
+ "ኦ",
+ "ሴ",
+ "ኦ",
+ "ኖ",
+ "ዲ",
+ }
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ti_ER.txt b/Build/source/libs/icu-xetex/data/locales/ti_ER.txt
index f3ba8b3d444..9d96410c11f 100644
--- a/Build/source/libs/icu-xetex/data/locales/ti_ER.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ti_ER.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ti_ER.xml
+// * Source File:<path>/common/main/ti_ER.xml
// *
// ***************************************************************************
ti_ER{
@@ -23,9 +23,13 @@ ti_ER{
"#,##0%",
"#E0",
}
- Version{"1.28"}
+ Version{"1.39"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/ti_ET.txt b/Build/source/libs/icu-xetex/data/locales/ti_ET.txt
index 30adb5d483d..6650c434220 100644
--- a/Build/source/libs/icu-xetex/data/locales/ti_ET.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ti_ET.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ti_ET.xml
+// * Source File:<path>/common/main/ti_ET.xml
// *
// ***************************************************************************
ti_ET{
@@ -19,9 +19,13 @@ ti_ET{
"#,##0%",
"#E0",
}
- Version{"1.29"}
+ Version{"1.41"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 7,
+ 1,
+ }
DateTimePatterns{
"h:mm:ss a",
"h:mm:ss a",
diff --git a/Build/source/libs/icu-xetex/data/locales/tr.txt b/Build/source/libs/icu-xetex/data/locales/tr.txt
index 585cec213b6..cc76c690e5f 100644
--- a/Build/source/libs/icu-xetex/data/locales/tr.txt
+++ b/Build/source/libs/icu-xetex/data/locales/tr.txt
@@ -1,15 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/tr.xml
+// * Source File:<path>/common/main/tr.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/tr.xml
+ * ICU <specials> source: <path>/xml/main/tr.xml
*/
tr{
+ AuxExemplarCharacters{
+ "[á à ă â Ã¥ ä Ä Ã¦ é è Ä• ê ë Ä“ í ì Ä­ î ï Ä« ñ ó ò Šô ø Å Å“ q ß ú ù Å­ û Å« w x ÿ"
+ "]"
+ }
Countries{
001{"Dünya"}
002{"Afrika"}
@@ -20,7 +24,7 @@ tr{
014{"DoÄŸu Afrika"}
015{"Kuzey Afrika"}
017{"Orta Afrika"}
- 018{"Güney Afrika"}
+ 018{"Güney Afrika [018]"}
019{"Amerika"}
021{"Kuzey Amerika"}
029{"Karayipler"}
@@ -851,10 +855,6 @@ tr{
"Lm",
"Malta Lirası",
}
- MTP{
- "MTP",
- "Malta Lirası",
- }
MUR{
"MUR",
"Mauritius Rupisi",
@@ -1179,10 +1179,6 @@ tr{
"XBA",
"BirleÅŸik Avrupa Birimi",
}
- XBB{
- "XBB",
- "Avrupa Para Birimi",
- }
XBC{
"XBC",
"Avrupa Hesap Birimi (XBC)",
@@ -1264,7 +1260,7 @@ tr{
"Zimbabwe Doları",
}
}
- ExemplarCharacters{"[a-zâûöüıçşğİ]"}
+ ExemplarCharacters{"[a-c ç d-g ğ h ı i İ j-o ö p r s ş t u ü v y z]"}
Keys{
calendar{"Takvim"}
collation{"Sıralama"}
@@ -1543,9 +1539,15 @@ tr{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
+ NumberPatterns{
+ "#,##0.###",
+ "¤ #,##0.00",
+ "#,##0%",
+ "#E0",
+ }
Scripts{
Arab{"Arapça"}
Armn{"Ermenice"}
@@ -1587,13 +1589,9 @@ tr{
traditional{"Geleneksel"}
}
}
- Version{"1.50"}
+ Version{"1.70"}
calendar{
gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -1644,6 +1642,41 @@ tr{
"MS",
}
}
+ fields{
+ day{
+ dn{"Gün"}
+ }
+ dayperiod{
+ dn{"Günün Bölümü"}
+ }
+ era{
+ dn{"Miladi Dönem"}
+ }
+ hour{
+ dn{"Saat"}
+ }
+ minute{
+ dn{"Dakika"}
+ }
+ month{
+ dn{"Ay"}
+ }
+ second{
+ dn{"Saniye"}
+ }
+ week{
+ dn{"Hafta"}
+ }
+ weekday{
+ dn{"Haftanın Günü"}
+ }
+ year{
+ dn{"Yıl"}
+ }
+ zone{
+ dn{"Saat Dilimi"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1692,7 +1725,294 @@ tr{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "Ç1",
+ "Ç2",
+ "Ç3",
+ "Ç4",
+ }
+ wide{
+ "1. çeyrek",
+ "2. çeyrek",
+ "3. çeyrek",
+ "4. çeyrek",
+ }
+ }
+ }
+ }
+ hebrew{
+ monthNames{
+ format{
+ abbreviated{
+ "TiÅŸri",
+ "HeÅŸvan",
+ "Kislev",
+ "Tevet",
+ "Åževat",
+ "Veadar",
+ "Adar",
+ "Nisan",
+ "Iyar",
+ "Sivan",
+ "Tamuz",
+ "Av",
+ "Ellul",
+ }
+ wide{
+ "TiÅŸri",
+ "HeÅŸvan",
+ "Kislev",
+ "Tevet",
+ "Åževat",
+ "Veadar",
+ "Adar",
+ "Nisan",
+ "Ä°yar",
+ "Sivan",
+ "Tamuz",
+ "Av",
+ "Ellul",
+ }
+ }
+ }
+ }
+ islamic{
+ monthNames{
+ format{
+ abbreviated{
+ "Muharrem",
+ "Safer",
+ "Rebiülevvel",
+ "Rebiülahir",
+ "Cemaziyelevvel",
+ "Cemaziyelahir",
+ "Recep",
+ "Shaʻban",
+ "Ramadan",
+ "Shawwal",
+ "Zilkade",
+ "Dhuʻl-Hijjah",
+ }
+ wide{
+ "Muharrem",
+ "Safer",
+ "Rebiülevvel",
+ "Rebiülahir",
+ "Cemaziyelevvel",
+ "Cemaziyelahir",
+ "Recep",
+ "Åžaban",
+ "Ramazan",
+ "Åževval",
+ "Zilkade",
+ "Zilhicce",
+ }
+ }
+ }
+ }
+ islamic-civil{
+ monthNames{
+ format{
+ wide{
+ "Muharrem",
+ "Safer",
+ "Rebiülevvel",
+ "Rebiülahir",
+ "Cemaziyelevvel",
+ "Cemaziyelahir",
+ "Recep",
+ "Åžaban",
+ "Ramazan",
+ "Åževval",
+ "Zilkade",
+ "Zilhicce",
+ }
+ }
+ }
+ }
+ persian{
+ monthNames{
+ format{
+ abbreviated{
+ "Ferwerdin",
+ "OrdibeheÅŸt",
+ "Hordâd",
+ "Tir",
+ "Mordâd",
+ "Åžehrivar",
+ "Mehr",
+ "Aban",
+ "Azar",
+ "Dey",
+ "Behman",
+ "Esfand",
+ }
+ wide{
+ "Ferwerdin",
+ "OrdibeheÅŸt",
+ "Hordâd",
+ "Tir",
+ "Mordâd",
+ "Åžehrivar",
+ "Mehr",
+ "Âbân",
+ "Âzar",
+ "Daî",
+ "Behman",
+ "Ä°sfand",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Ceuta"{
+ ec{"Septe"}
+ }
+ "Africa:Kinshasa"{
+ ec{"KinÅŸasa"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"LubumbaÅŸi"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"Alaska Yaz Saati"}
+ ls{"Alaska Standart Saati"}
+ }
+ "America:Cancun"{
+ ec{"Kankun"}
+ }
+ "America:Chicago"{
+ ec{"Åžikago"}
+ ld{"Merkezi Yaz Saati"}
+ ls{"Merkezi Standart Saati"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"ABD Sıradağlar Yaz Saati"}
+ ls{"ABD Sıradağlar Standart Saati"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"Atlantik Yaz Saati"}
+ ls{"Atlantik Standart Saati"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"DoÄŸu (Indianapolis) Yaz Saati"}
+ ls{"DoÄŸu Standart Saati"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"Pasifik Yaz Saati"}
+ ls{"Pasifik Standart Saati"}
+ }
+ "America:Mexico_City"{
+ ec{"Meksiko City"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"DoÄŸu Yaz Saati"}
+ ls{"DoÄŸu Standart Saati"}
+ }
+ "America:Phoenix"{
+ ec{"Phoenix"}
+ ld{"ABD Sıradağlar Standart Saati"}
+ ls{"ABD Sıradağlar Standart Saati"}
+ }
+ "America:St_Johns"{
+ ec{"St Johns"}
+ ld{"Newfoundland Yaz Saati"}
+ ls{"Newfoundland Standart Saati"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Güney Kutbu"}
+ }
+ "Asia:Almaty"{
+ ec{"Almatı"}
+ }
+ "Asia:Aqtau"{
+ ec{"Şevçenko"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Aktyubinsk"}
+ }
+ "Asia:Choibalsan"{
+ ec{"Çoybalsan"}
+ }
+ "Asia:Chongqing"{
+ ec{"Çunking"}
+ }
+ "Asia:Hovd"{
+ ec{"Kobdo"}
+ }
+ "Asia:Jakarta"{
+ ec{"Cakarta"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Kamçatka"}
+ }
+ "Asia:Kashgar"{
+ ec{"KaÅŸgar"}
+ }
+ "Asia:Kuching"{
+ ec{"Kuçing"}
+ }
+ "Asia:Oral"{
+ ec{"Uralsk"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Kızıl-Orda"}
+ }
+ "Asia:Samarkand"{
+ ec{"Semerkand"}
+ }
+ "Asia:Shanghai"{
+ ec{"Åžangay"}
+ ld{"Çin Standart Saati"}
+ ls{"Çin Standart Saati"}
+ }
+ "Asia:Tashkent"{
+ ec{"TaÅŸkent"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Ulanbator"}
+ }
+ "Asia:Urumqi"{
+ ec{"Urumçi"}
+ }
+ "Atlantic:Azores"{
+ ec{"Azor Adaları"}
+ }
+ "Atlantic:Canary"{
+ ec{"Kanarya"}
+ }
+ "Australia:Melbourne"{
+ ec{"Melborn"}
+ }
+ "Australia:Sydney"{
+ ec{"Sidney"}
+ }
+ "Europe:Lisbon"{
+ ec{"Lizbon"}
+ }
+ "Europe:London"{
+ ec{"Londra"}
+ }
+ "Europe:Moscow"{
+ ec{"Moskova"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"Hawaii Standart Saati"}
+ ls{"Hawaii Standart Saati"}
+ }
+ "Pacific:Marquesas"{
+ ec{"Markiz"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/tr_TR.txt b/Build/source/libs/icu-xetex/data/locales/tr_TR.txt
index 3b7b416db9f..6060bd687b1 100644
--- a/Build/source/libs/icu-xetex/data/locales/tr_TR.txt
+++ b/Build/source/libs/icu-xetex/data/locales/tr_TR.txt
@@ -1,19 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/tr_TR.xml
+// * Source File:<path>/common/main/tr_TR.xml
// *
// ***************************************************************************
tr_TR{
- NumberPatterns{
- "#,##0.###",
- "#,##0.00 ¤",
- "#,##0%",
- "#E0",
- }
- Version{"1.28"}
+ Version{"1.39"}
delimiters{
alternateQuotationEnd{"â€"}
alternateQuotationStart{"“"}
diff --git a/Build/source/libs/icu-xetex/data/locales/uk.txt b/Build/source/libs/icu-xetex/data/locales/uk.txt
index daa903902ff..5b250ec3ce1 100644
--- a/Build/source/libs/icu-xetex/data/locales/uk.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uk.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uk.xml
+// * Source File:<path>/common/main/uk.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/uk.xml
+ * ICU <specials> source: <path>/xml/main/uk.xml
*/
uk{
+ AuxExemplarCharacters{"[i v x]"}
Countries{
001{"Світ"}
002{"Ðфрика"}
@@ -29,7 +30,6 @@ uk{
039{"Південна Європа"}
053{"ÐвÑÑ‚Ñ€Ð°Ð»Ñ–Ñ Ñ‚Ð° Ðова ЗеландіÑ"}
054{"МеланезіÑ"}
- 057{"МікронезіÑ"}
061{"ПолінезіÑ"}
062{"Південно-Центральна ÐзіÑ"}
142{"ÐзіÑ"}
@@ -351,7 +351,7 @@ uk{
}
BAD{
"BAD",
- "Динар БоÑнії Ñ– Гецоговини",
+ "Динар (БоÑÐ½Ñ–Ñ Ñ– Герцеговина)",
}
BAM{
"KM",
@@ -613,6 +613,10 @@ uk{
"GNS",
"ГвінейÑьке Ñілі",
}
+ GQE{
+ "GQE",
+ "Еквеле (Екваторіальна ÒвінеÑ)",
+ }
GRD{
"GRD",
"Грецька драхма",
@@ -769,10 +773,18 @@ uk{
"LTT",
"ЛитовÑький талон",
}
+ LUC{
+ "LUC",
+ "ЛюкÑембурґÑький франк (Конвертований)",
+ }
LUF{
"LUF",
"ЛюкÑембурзький франк",
}
+ LUL{
+ "LUL",
+ "ЛюкÑембурґÑький франк (ФінанÑовий)",
+ }
LVL{
"LVL",
"ЛатвійÑький лат",
@@ -847,7 +859,7 @@ uk{
}
MWK{
"MK",
- "МалавійÑька квача",
+ "Квача (Малаві)",
}
MXN{
"MEX$",
@@ -903,7 +915,7 @@ uk{
}
NZD{
"$NZ",
- "ÐовозеландÑький доларr",
+ "NZD",
}
OMR{
"RO",
@@ -1211,7 +1223,7 @@ uk{
}
ZAL{
"ZAL",
- "ПівденноафриканÑький ранд",
+ "ПівденноафриканÑький ранд [ZAL]",
}
ZAR{
"R",
@@ -1219,7 +1231,7 @@ uk{
}
ZMK{
"ZMK",
- "ЗамбійÑька квача",
+ "Квача (ЗамбіÑ)",
}
ZRN{
"ZRN",
@@ -1234,7 +1246,7 @@ uk{
"ЗімбабвійÑький долар",
}
}
- ExemplarCharacters{"[а-щюьÑєіїґ ʼ]"}
+ ExemplarCharacters{"[ʼ а-г Ò‘ д е Ñ” ж-и Ñ– Ñ— й-щ ÑŒ ÑŽ Ñ]"}
Keys{
calendar{"Календар"}
collation{"СортуваннÑ"}
@@ -1243,7 +1255,11 @@ uk{
Languages{
aa{"ÐфарÑька"}
ab{"Ðбхазька"}
+ ace{"ÐчехÑька"}
+ ada{"Ðдангме"}
+ ady{"ÐдигейÑька"}
af{"ÐфриканÑ"}
+ afh{"Ðфрихілі"}
am{"Ðмхарік"}
ar{"ÐрабÑька"}
as{"ÐÑÑамÑька"}
@@ -1289,7 +1305,7 @@ uk{
hy{"ВірменÑька"}
ia{"Інтерлінгва"}
id{"ІндонезійÑька"}
- ie{"Інтерлінгва"}
+ ie{"Інтерлінгве"}
ik{"Інупіак"}
is{"ІÑландÑька"}
it{"ІталійÑька"}
@@ -1394,7 +1410,7 @@ uk{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -1469,13 +1485,45 @@ uk{
traditional{"Традиційний"}
}
}
- Version{"1.49"}
+ Version{"1.74"}
calendar{
- gregorian{
- DateTimeElements:intvector{
- 2,
- 1,
+ coptic{
+ monthNames{
+ format{
+ abbreviated{
+ "Тот",
+ "Baba",
+ "Хатур",
+ "Кіхак",
+ "Toba",
+ "Ðмшир",
+ "Барамхат",
+ "Baramouda",
+ "БашнаÑ",
+ "Paona",
+ "Ðбіб",
+ "Mesra",
+ "ÐаÑÑ–",
+ }
+ wide{
+ "Тот",
+ "Бабе",
+ "Хатур",
+ "Кіхак",
+ "Тобе",
+ "Ðмшир",
+ "Барамхат",
+ "Бармуда",
+ "БашнаÑ",
+ "Бауна",
+ "Ðбіб",
+ "МиÑра",
+ "ÐаÑÑ–",
+ }
+ }
}
+ }
+ gregorian{
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
@@ -1526,6 +1574,35 @@ uk{
"н.е.",
}
}
+ fields{
+ day{
+ dn{"День"}
+ }
+ dayperiod{
+ dn{"ЧаÑтина доби"}
+ }
+ hour{
+ dn{"Година"}
+ }
+ minute{
+ dn{"Хвилина"}
+ }
+ month{
+ dn{"МіÑÑць"}
+ }
+ second{
+ dn{"Секунда"}
+ }
+ week{
+ dn{"Тиждень"}
+ }
+ weekday{
+ dn{"День тижнÑ"}
+ }
+ year{
+ dn{"Рік"}
+ }
+ }
monthNames{
format{
abbreviated{
@@ -1616,7 +1693,618 @@ uk{
}
}
}
+ quarters{
+ format{
+ wide{
+ "I квартал",
+ "II квартал",
+ "III квартал",
+ "IV квартал",
+ }
+ }
+ }
+ }
+ hebrew{
+ monthNames{
+ format{
+ abbreviated{
+ "Тішри",
+ "Марчешван",
+ "ЧиÑльов",
+ "Тебет",
+ "Шеват",
+ "Ðдар â… ",
+ "Ðдар",
+ "Nisan",
+ "Iyar",
+ "Sivan",
+ "Таммуз",
+ "Av",
+ "Елул",
+ }
+ wide{
+ "Тішри",
+ "Марчешван",
+ "ЧиÑльов",
+ "Тебет",
+ "Шеват",
+ "Ðдар â… ",
+ "Ðдар",
+ "ÐÑ–Ñан",
+ "Іар",
+ "Сиван",
+ "Таммуз",
+ "Ðб",
+ "Елул",
+ }
+ }
+ }
+ }
+ islamic{
+ monthNames{
+ format{
+ wide{
+ "Мухаррам",
+ "Сафар",
+ "Рабі I",
+ "Рабі II",
+ "Джумада I",
+ "Джумада II",
+ "Раджаб",
+ "Шаабан",
+ "Рамадан",
+ "Даввал",
+ "Зу-ль-каада",
+ "Зу-ль-хіджа",
+ }
+ }
+ }
+ }
+ persian{
+ monthNames{
+ format{
+ wide{
+ "Фарвардін",
+ "Ордібехешт",
+ "Хордад",
+ "Тір",
+ "Мордад",
+ "Шахрівер",
+ "Мехр",
+ "Ðбан",
+ "Ðзер",
+ "Дей",
+ "Бахман",
+ "ЕÑфанд",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
+ zoneStrings{
+ "Africa:Bamako"{
+ ec{"Бамако"}
+ }
+ "Africa:Ceuta"{
+ ec{"Сеута"}
+ }
+ "Africa:Kinshasa"{
+ ec{"КіншаÑа"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"Лубумбаші"}
+ }
+ "Africa:Timbuktu"{
+ ec{"Тимбукту"}
+ }
+ "America:Adak"{
+ ec{"Ðдак"}
+ }
+ "America:Araguaina"{
+ ec{"Ðрагуайна"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"Комодоро-РивадавіÑ"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"Ла-Ріоха"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"Ріо-ÒалеґоÑ"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"Сан-Хуан"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"Тукуман"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"УшуаÑ"}
+ }
+ "America:Bahia"{
+ ec{"БайÑ"}
+ }
+ "America:Belem"{
+ ec{"Белен"}
+ }
+ "America:Boa_Vista"{
+ ec{"Боа-Ð’Ñ–Ñта"}
+ }
+ "America:Boise"{
+ ec{"БойÑе"}
+ }
+ "America:Buenos_Aires"{
+ ec{"БуеноÑ-ÐйреÑ"}
+ }
+ "America:Campo_Grande"{
+ ec{"Кампу-Гранді"}
+ }
+ "America:Cancun"{
+ ec{"Канкун"}
+ }
+ "America:Catamarca"{
+ ec{"Катамарка"}
+ }
+ "America:Chicago"{
+ ec{"Чикаго"}
+ }
+ "America:Chihuahua"{
+ ec{"Чіуауа"}
+ }
+ "America:Cordoba"{
+ ec{"Кордоба"}
+ }
+ "America:Cuiaba"{
+ ec{"КуÑба"}
+ }
+ "America:Danmarkshavn"{
+ ec{"ДенмаркÑхавн"}
+ }
+ "America:Dawson"{
+ ec{"ДоуÑон"}
+ }
+ "America:Dawson_Creek"{
+ ec{"ДоуÑон-Крік"}
+ }
+ "America:Denver"{
+ ec{"Денвер"}
+ }
+ "America:Detroit"{
+ ec{"Детройт"}
+ }
+ "America:Edmonton"{
+ ec{"Едмонтон"}
+ }
+ "America:Eirunepe"{
+ ec{"Ейрунепе"}
+ }
+ "America:Fortaleza"{
+ ec{"Форталеза"}
+ }
+ "America:Glace_Bay"{
+ ec{"ГлейÑ-Бей"}
+ }
+ "America:Godthab"{
+ ec{"Готхоб"}
+ }
+ "America:Goose_Bay"{
+ ec{"Гуз-Бей"}
+ }
+ "America:Guayaquil"{
+ ec{"ГуаÑкіль"}
+ }
+ "America:Halifax"{
+ ec{"ГаліфакÑ"}
+ }
+ "America:Hermosillo"{
+ ec{"ЕрмоÑільйо"}
+ }
+ "America:Indiana:Knox"{
+ ec{"ÐокÑ"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"Маренго"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"Вівей"}
+ }
+ "America:Indianapolis"{
+ ec{"ІндіанаполіÑ"}
+ }
+ "America:Inuvik"{
+ ec{"Інувік"}
+ }
+ "America:Iqaluit"{
+ ec{"Ікалуіт"}
+ }
+ "America:Jujuy"{
+ ec{"Жужуй"}
+ }
+ "America:Juneau"{
+ ec{"Джуно"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"Монтичелло"}
+ }
+ "America:Los_Angeles"{
+ ec{"ЛоÑ-ÐнджелеÑ"}
+ }
+ "America:Louisville"{
+ ec{"ЛуїÑвілль"}
+ }
+ "America:Maceio"{
+ ec{"МаÑейо"}
+ }
+ "America:Manaus"{
+ ec{"МанауÑ"}
+ }
+ "America:Mazatlan"{
+ ec{"МаÑатлан"}
+ }
+ "America:Mendoza"{
+ ec{"МендоÑа"}
+ }
+ "America:Menominee"{
+ ec{"Меноміні"}
+ }
+ "America:Merida"{
+ ec{"Меріда"}
+ }
+ "America:Mexico_City"{
+ ec{"Мехіко"}
+ }
+ "America:Monterrey"{
+ ec{"Монтерей"}
+ }
+ "America:Montreal"{
+ ec{"Монреаль"}
+ }
+ "America:New_York"{
+ ec{"Ðью-Йорк"}
+ }
+ "America:Nipigon"{
+ ec{"Ðіпігон"}
+ }
+ "America:Nome"{
+ ec{"Ðом"}
+ }
+ "America:Noronha"{
+ ec{"ÐороньÑ"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"Центр"}
+ }
+ "America:Pangnirtung"{
+ ec{"Панґніртунґ"}
+ }
+ "America:Phoenix"{
+ ec{"ФінікÑ"}
+ }
+ "America:Porto_Velho"{
+ ec{"Порто-Велью"}
+ }
+ "America:Rainy_River"{
+ ec{"Рейні-Рівер"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"Ренкін-Інлет"}
+ }
+ "America:Recife"{
+ ec{"РеÑÑ–Ñ„Ñ–"}
+ }
+ "America:Regina"{
+ ec{"Реджайна"}
+ }
+ "America:Rio_Branco"{
+ ec{"Ріо-Бранко"}
+ }
+ "America:Santiago"{
+ ec{"СантьÑго"}
+ }
+ "America:Sao_Paulo"{
+ ec{"Сан-Паулу"}
+ }
+ "America:Scoresbysund"{
+ ec{"СкорÑбиÑун"}
+ }
+ "America:Shiprock"{
+ ec{"Шипрок"}
+ }
+ "America:St_Johns"{
+ ec{"Сент-ДжонÑ"}
+ }
+ "America:Swift_Current"{
+ ec{"Свіфт-Каррент"}
+ }
+ "America:Thule"{
+ ec{"Туле"}
+ }
+ "America:Thunder_Bay"{
+ ec{"Тандер-Бей"}
+ }
+ "America:Tijuana"{
+ ec{"Тіхуана"}
+ }
+ "America:Toronto"{
+ ec{"Торонто"}
+ }
+ "America:Vancouver"{
+ ec{"Ванкувер"}
+ }
+ "America:Whitehorse"{
+ ec{"ВайтгорÑ"}
+ }
+ "America:Winnipeg"{
+ ec{"Вінніпеґ"}
+ }
+ "America:Yakutat"{
+ ec{"Якутат"}
+ }
+ "America:Yellowknife"{
+ ec{"Єллоунайф"}
+ }
+ "Antarctica:Casey"{
+ ec{"КейÑÑ–"}
+ }
+ "Antarctica:Davis"{
+ ec{"ДейвіÑ"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"Дюмон-д'Юрвіль"}
+ }
+ "Antarctica:Mawson"{
+ ec{"МоуÑон"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"Мак-Мердо"}
+ }
+ "Antarctica:Palmer"{
+ ec{"Палмер"}
+ }
+ "Antarctica:Rothera"{
+ ec{"Ротера"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"Південний полюÑ"}
+ }
+ "Antarctica:Syowa"{
+ ec{"Сьова"}
+ }
+ "Antarctica:Vostok"{
+ ec{"ВоÑток"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"Лонгербюйн"}
+ }
+ "Asia:Almaty"{
+ ec{"Ðлмати"}
+ }
+ "Asia:Anadyr"{
+ ec{"Ðнадир"}
+ }
+ "Asia:Aqtau"{
+ ec{"Ðктау"}
+ }
+ "Asia:Aqtobe"{
+ ec{"Ðктобе"}
+ }
+ "Asia:Choibalsan"{
+ ec{"ЧойбалÑан"}
+ }
+ "Asia:Chongqing"{
+ ec{"Чунцин"}
+ }
+ "Asia:Harbin"{
+ ec{"Харбін"}
+ }
+ "Asia:Hovd"{
+ ec{"Говд"}
+ }
+ "Asia:Irkutsk"{
+ ec{"ІркутÑьк"}
+ }
+ "Asia:Jakarta"{
+ ec{"Джакарта"}
+ }
+ "Asia:Jayapura"{
+ ec{"Джайпур"}
+ }
+ "Asia:Kamchatka"{
+ ec{"Камчатка"}
+ }
+ "Asia:Kashgar"{
+ ec{"Кашгар"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"КраÑноÑÑ€Ñьк"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"Куала-Лумпур"}
+ }
+ "Asia:Kuching"{
+ ec{"Кучінґ"}
+ }
+ "Asia:Magadan"{
+ ec{"Магадан"}
+ }
+ "Asia:Makassar"{
+ ec{"МакаÑар"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"ÐовоÑибірÑьк"}
+ }
+ "Asia:Omsk"{
+ ec{"ОмÑьк"}
+ }
+ "Asia:Oral"{
+ ec{"Орал"}
+ }
+ "Asia:Pontianak"{
+ ec{"Понтіанак"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"Кзил-Орда"}
+ }
+ "Asia:Sakhalin"{
+ ec{"Сахалін"}
+ }
+ "Asia:Samarkand"{
+ ec{"Самарканд"}
+ }
+ "Asia:Shanghai"{
+ ec{"Шанхай"}
+ }
+ "Asia:Tashkent"{
+ ec{"Ташкент"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"Улан-Батор"}
+ }
+ "Asia:Urumqi"{
+ ec{"Урумчі"}
+ }
+ "Asia:Vladivostok"{
+ ec{"ВладивоÑток"}
+ }
+ "Asia:Yakutsk"{
+ ec{"ЯкутÑьк"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"Єкатеринбург"}
+ }
+ "Atlantic:Azores"{
+ ec{"ÐзорÑькі о-ви"}
+ }
+ "Atlantic:Canary"{
+ ec{"Канари"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"Ян-Майєн"}
+ }
+ "Atlantic:Madeira"{
+ ec{"Мадейра"}
+ }
+ "Australia:Adelaide"{
+ ec{"Ðделаїда"}
+ }
+ "Australia:Brisbane"{
+ ec{"БриÑбен"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"Брокен-Гіл"}
+ }
+ "Australia:Darwin"{
+ ec{"Дарвін"}
+ }
+ "Australia:Hobart"{
+ ec{"Хобарт"}
+ }
+ "Australia:Lindeman"{
+ ec{"Ліндеман"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"Лорд-Хау"}
+ }
+ "Australia:Melbourne"{
+ ec{"Мельбурн"}
+ }
+ "Australia:Perth"{
+ ec{"Перт"}
+ }
+ "Australia:Sydney"{
+ ec{"Сідней"}
+ }
+ "Europe:Belfast"{
+ ec{"БелфаÑÑ‚"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"Калінінград"}
+ }
+ "Europe:Kiev"{
+ ec{"Київ"}
+ }
+ "Europe:Lisbon"{
+ ec{"ЛіÑабон"}
+ }
+ "Europe:London"{
+ ec{"Лондон"}
+ }
+ "Europe:Madrid"{
+ ec{"Мадрид"}
+ }
+ "Europe:Moscow"{
+ ec{"МоÑква"}
+ }
+ "Europe:Samara"{
+ ec{"Самара"}
+ }
+ "Europe:Simferopol"{
+ ec{"Сімферополь"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"Ужгород"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"ЗапоріжжÑ"}
+ }
+ "Pacific:Auckland"{
+ ec{"Окленд"}
+ }
+ "Pacific:Chatham"{
+ ec{"Чатем"}
+ }
+ "Pacific:Easter"{
+ ec{"ПаÑхи, оÑтрів"}
+ }
+ "Pacific:Enderbury"{
+ ec{"Ендербері"}
+ }
+ "Pacific:Galapagos"{
+ ec{"ÒалапагоÑ"}
+ }
+ "Pacific:Gambier"{
+ ec{"Гамбер"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Гонолулу"}
+ }
+ "Pacific:Johnston"{
+ ec{"ДжонÑтон"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"Кіритиматі"}
+ }
+ "Pacific:Kosrae"{
+ ec{"КоÑрае"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"Кваджалейн"}
+ }
+ "Pacific:Majuro"{
+ ec{"Маджуро"}
+ }
+ "Pacific:Midway"{
+ ec{"Мідуей"}
+ }
+ "Pacific:Ponape"{
+ ec{"Понапе"}
+ }
+ "Pacific:Tahiti"{
+ ec{"Таїті"}
+ }
+ "Pacific:Tarawa"{
+ ec{"Тарава"}
+ }
+ "Pacific:Truk"{
+ ec{"Трук"}
+ }
+ "Pacific:Wake"{
+ ec{"Вейк"}
+ }
+ "Pacific:Yap"{
+ ec{"Яп"}
+ }
+ hourFormat{"+HHmm;-HHmm"}
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uk_UA.txt b/Build/source/libs/icu-xetex/data/locales/uk_UA.txt
index c5bf81d204d..dd01c2cbd08 100644
--- a/Build/source/libs/icu-xetex/data/locales/uk_UA.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uk_UA.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uk_UA.xml
+// * Source File:<path>/common/main/uk_UA.xml
// *
// ***************************************************************************
uk_UA{
@@ -13,5 +13,5 @@ uk_UA{
"#,##0%",
"#E0",
}
- Version{"1.27"}
+ Version{"1.37"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ur.txt b/Build/source/libs/icu-xetex/data/locales/ur.txt
index 431cef0649b..65ebc2cd360 100644
--- a/Build/source/libs/icu-xetex/data/locales/ur.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ur.txt
@@ -1,27 +1,25 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ur.xml
+// * Source File:<path>/common/main/ur.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/ur.xml
+ * ICU <specials> source: <path>/xml/main/ur.xml
*/
ur{
Countries{
+ IN{"بھارت"}
PK{"پاکستان"}
}
- ExemplarCharacters{
- "[\u0621-\u0624 \u0626-\u063a \u0641-\u0642 \u0644-\u0648 \u0679-\u067e "
- "\u0686 \u0688 \u0691 \u0698 \u06a9 \u06af \u06ba \u06be \u06cc \u06d2]"
- }
+ ExemplarCharacters{"[ء-ؤ ئ-ب ٻ پ ة-ث ٹ ٺ ټ ٽ ج چ ح-ذ ڈ ر ز ڑ ژ س-غ ٠ق ک گ ل-ن ں ه ھ و ی ے]"}
Languages{
ur{"اردو"}
}
LocaleScript{
"Arab",
}
- Version{"1.20"}
+ Version{"1.31"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/ur_IN.txt b/Build/source/libs/icu-xetex/data/locales/ur_IN.txt
new file mode 100644
index 00000000000..7cff1e19ed5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/locales/ur_IN.txt
@@ -0,0 +1,24 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/common/main/ur_IN.xml
+// *
+// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/ur_IN.xml
+ */
+ur_IN{
+ Version{"1.7"}
+ calendar{
+ gregorian{
+ weekend:intvector{
+ 1,
+ 0,
+ 1,
+ 86400000,
+ }
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/locales/ur_PK.txt b/Build/source/libs/icu-xetex/data/locales/ur_PK.txt
index b18e9d13dbe..8c2bb94621f 100644
--- a/Build/source/libs/icu-xetex/data/locales/ur_PK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/ur_PK.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/ur_PK.xml
+// * Source File:<path>/common/main/ur_PK.xml
// *
// ***************************************************************************
ur_PK{
- Version{"1.17"}
+ Version{"1.27"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uz.txt b/Build/source/libs/icu-xetex/data/locales/uz.txt
index 38b3c5dc6e4..722f7d290fc 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz.txt
@@ -1,15 +1,16 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz.xml
+// * Source File:<path>/common/main/uz.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/uz.xml
+ * ICU <specials> source: <path>/xml/main/uz.xml
*/
uz{
+ AuxExemplarCharacters{"[ц щ ы ь]"}
Countries{
AF{"ÐфғониÑтон"}
BR{"БразилиÑ"}
@@ -62,7 +63,7 @@ uz{
"ЎзбекиÑтон Ñўм",
}
}
- ExemplarCharacters{"[а-Ñёіўѣѳѵҳ]"}
+ ExemplarCharacters{"[а-г Ò“ д е Ñ‘ ж-к Ò› л-у Ñž Ñ„ Ñ… Ò³ ч ш ÑŠ Ñ-Ñ]"}
Languages{
ar{"Ðрабча"}
de{"Олмонча"}
@@ -91,7 +92,7 @@ uz{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
Scripts{
@@ -99,7 +100,7 @@ uz{
Cyrl{"Кирил"}
Latn{"Лотин"}
}
- Version{"1.20"}
+ Version{"1.32"}
calendar{
gregorian{
dayNames{
@@ -185,4 +186,13 @@ uz{
}
}
}
+ zoneStrings{
+ "Asia:Kabul"{
+ ec{"کابل"}
+ ld{"اÙغانستان وقتی"}
+ ls{"اÙغانستان وقتی"}
+ sd{"AFT"}
+ ss{"AFT"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uz_Cyrl.txt b/Build/source/libs/icu-xetex/data/locales/uz_Cyrl.txt
index 3ee667f20ba..99fdeb83100 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz_Cyrl.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz_Cyrl.txt
@@ -1,11 +1,17 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz_Cyrl.xml
+// * Source File:<path>/common/main/uz_Cyrl.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/uz_Cyrl.xml
+ */
uz_Cyrl{
- Version{"1.4"}
+ LocaleScript{
+ "Cyrl",
+ }
+ Version{"1.14"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uz_Cyrl_UZ.txt b/Build/source/libs/icu-xetex/data/locales/uz_Cyrl_UZ.txt
index 94dab17e966..3392f95a4ca 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz_Cyrl_UZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz_Cyrl_UZ.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz_Cyrl_UZ.xml
+// * Source File:<path>/common/main/uz_Cyrl_UZ.xml
// *
// ***************************************************************************
uz_Cyrl_UZ{
- Version{"1.3"}
+ Version{"1.13"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uz_Latn.txt b/Build/source/libs/icu-xetex/data/locales/uz_Latn.txt
index cc269ff7875..1e8ce0eaa92 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz_Latn.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz_Latn.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz_Latn.xml
+// * Source File:<path>/common/main/uz_Latn.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/uz_Latn.xml
+ * ICU <specials> source: <path>/xml/main/uz_Latn.xml
*/
uz_Latn{
Countries{
@@ -62,7 +62,7 @@ uz_Latn{
"Oʿzbekiston soʿm",
}
}
- ExemplarCharacters{"[a-vx-zʿ]"}
+ ExemplarCharacters{"[a-v x-z Ê¿]"}
Languages{
ar{"Arabcha"}
de{"Olmoncha"}
@@ -84,7 +84,7 @@ uz_Latn{
Cyrl{"Kiril"}
Latn{"Lotin"}
}
- Version{"1.3"}
+ Version{"1.13"}
calendar{
gregorian{
dayNames{
diff --git a/Build/source/libs/icu-xetex/data/locales/uz_Latn_UZ.txt b/Build/source/libs/icu-xetex/data/locales/uz_Latn_UZ.txt
index 31ef94c3678..126f16563ac 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz_Latn_UZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz_Latn_UZ.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz_Latn_UZ.xml
+// * Source File:<path>/common/main/uz_Latn_UZ.xml
// *
// ***************************************************************************
uz_Latn_UZ{
- Version{"1.3"}
+ Version{"1.13"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/uz_UZ.txt b/Build/source/libs/icu-xetex/data/locales/uz_UZ.txt
index d06630e591d..9e8a201f019 100644
--- a/Build/source/libs/icu-xetex/data/locales/uz_UZ.txt
+++ b/Build/source/libs/icu-xetex/data/locales/uz_UZ.txt
@@ -1,14 +1,22 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/uz_UZ.xml
+// * Source File:<path>/common/main/uz_UZ.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/uz_UZ.xml
+ * ICU <specials> source: <path>/xml/main/uz_UZ.xml
*/
uz_UZ{
"%%ALIAS"{"uz_Cyrl_UZ"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/vi.txt b/Build/source/libs/icu-xetex/data/locales/vi.txt
index 729cd36d881..8aca6e69450 100644
--- a/Build/source/libs/icu-xetex/data/locales/vi.txt
+++ b/Build/source/libs/icu-xetex/data/locales/vi.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/vi.xml
+// * Source File:<path>/common/main/vi.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/vi.xml
+ * ICU <specials> source: <path>/xml/main/vi.xml
*/
vi{
Countries{
@@ -47,6 +47,7 @@ vi{
CN{"Trung Quốc"}
CO{"Cô-lôm-bi-a"}
CR{"Cốt-xta Ri-ca"}
+ CS{"Séc-bia"}
CU{"Cu Ba"}
CV{"Cáp-ve"}
CY{"Síp"}
@@ -203,7 +204,11 @@ vi{
"đồng",
}
}
- ExemplarCharacters{"[a-zẠ-ỹđơà-ãè-êìíò-õùúýăĩũư]"}
+ ExemplarCharacters{
+ "[a à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ b-d đ e è ẻ ẽ é ẹ ê Ỡể ễ ế ệ f-i ì ỉ ĩ"
+ " í ị j-o ò Ỡõ ó Ỡô ồ ổ ỗ ố ộ ơ Ỡở ỡ ớ ợ p-u ù ủ ũ ú ụ ư ừ ử ữ ứ ự v-y ỳ ỷ"
+ " ỹ ý ỵ z]"
+ }
Languages{
ar{"Tiếng A-rập"}
az{"Tiếng Ai-déc-bai-gian"}
@@ -280,7 +285,7 @@ vi{
"E",
"‰",
"∞",
- "�",
+ "NaN",
"+",
}
NumberPatterns{
@@ -289,17 +294,13 @@ vi{
"#,##0%",
"#E0",
}
- Version{"1.36"}
+ Version{"1.50"}
calendar{
gregorian{
AmPmMarkers{
"SA",
"CH",
}
- DateTimeElements:intvector{
- 2,
- 1,
- }
DateTimePatterns{
"HH:mm:ss z",
"HH:mm:ss z",
diff --git a/Build/source/libs/icu-xetex/data/locales/vi_VN.txt b/Build/source/libs/icu-xetex/data/locales/vi_VN.txt
index b9aff7c0dc2..31f2c862900 100644
--- a/Build/source/libs/icu-xetex/data/locales/vi_VN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/vi_VN.txt
@@ -1,11 +1,11 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/vi_VN.xml
+// * Source File:<path>/common/main/vi_VN.xml
// *
// ***************************************************************************
vi_VN{
- Version{"1.23"}
+ Version{"1.33"}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh.txt b/Build/source/libs/icu-xetex/data/locales/zh.txt
index cb1935132c0..3b1325e21a2 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh.txt
@@ -1,13 +1,13 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh.xml
+// * Source File:<path>/common/main/zh.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/zh.xml
+ * ICU <specials> source: <path>/xml/main/zh.xml
*/
zh{
Countries{
@@ -404,7 +404,7 @@ zh{
}
BRC{
"BRC",
- "巴西克é²å¡žç½—",
+ "巴西克é²å¡žç½— Brazilian Cruzado",
}
BRE{
"BRE",
@@ -1212,35 +1212,63 @@ zh{
}
}
ExemplarCharacters{
- "[一-ä¸ä¸ƒä¸ˆ-ä¸ä¸“-且世丙-业东-ä¸ä¸¢ä¸¤-严丧个中串临丸-主丽-举乃久么-义之-乌乎-ä¹ä¹”乖乘-ä¹™ä¹ä¹Ÿ-乡书买-乱乾了予-争事-二于-äºäº‘-互五-井亚-"
- "些亡交亦亨享-京亮亲人亿-ä»ä»…仇今-介ä»-从仔他付-仙代-以仪们仰仲件任份仿ä¼ä¼Šä¼ä¼ä¼‘ä¼—ä¼™-会伟-传伤伦伯-估伴伸似但ä½-ä½ä½‘体何余佛-作你佩佳使例供ä¾"
- "侠侦-侨侬侯侵便促俊俗ä¿ä¿¡ä¿©ä¿®ä¿±å€å€’候-倚借倦值倾å‡ååšåœå¥å¶-å·å‚¨å‚¬å‚²å‚»åƒå„’å…å…ƒ-å……å…ˆ-光克å…兔入全八-兮兰-共关-典养-å…½å†å†’写军-农冠冬冰冲冷准凌"
- "å‡å‡¡å‡¤å‡­å‡¯-凰出-击函刀分-切刊刑列-创åˆåˆ¤åˆ©åˆ°åˆ¶-刷刺-刻剂å‰å‰‘剧剩-剪副割力åŠ-务劣动-劫励-劳势勇勉勒勤勾-勿包-匆化-北匙区-医ååƒå‡-åˆåŠåŽ-"
- "åå’å•-å—åšå -å¡å«å°-å±å³å·åŽ…-历厉压-厌厚原去县å‚åˆ-åå‘å”å–-å˜å£-å¦å«-å­å¯-å°å²-å³å¶-å¹åƒ-å„åˆ-åŠåŒ-åŽå-å‘å“å—å›ååŸå¦-å§å«åµå¸-å¹å»"
- "å¾å‘€å‘†å‘ˆå‘Šå‘˜å‘œå‘¢å‘¦å‘¨å‘³å‘µå‘¼-命和咖咦-咧咪咬咱哀-å“哇-哉å“-å“Žå“Ÿå“¥-哦哩-哪哭哲唉å”唤唬售-唯唱唷商啊啡啥-啦啪喂善喇喊喔喜-å–喵喷喻嗨嗯嘉嘛嘴嘻嘿器"
- "四回因团园困围固国-图圆圈土在地场圾å€å‡å-å‘å—åš-åœå¡å¤å¦åªåž‚-垃型垒埋城域培-基堂堆堕堡堪塑塔塞填境增墨å£å£«å£®å£°å¤„备å¤å¤•-外多夜夥大天-夫央失头夹-"
- "夺奇-奉奋å¥å¥‘奔套女奶她好如妇-妈妖妙妥妨妮妹妻姆姊-始å§-姑姓-委姿å¨å¨ƒå¨˜å¨Ÿå©†å©šåª’å«å«Œå­å­”-å­•å­—-å­™å­å­Ÿå­£-孤学孩它宇-安宋-完å®å®—-定宜-实审-室宪"
- "害家容宽-宿寂寄密富寒å¯-察寡寸-对寻-导寿å°å°„将尊å°å°‘尔尖尘尚å°å°¤å°±å°ºå°¼-尾局-层居屋å±å±•å±žå± å±±å²-岂岚-岛岳岸峰崇å·-å·žå·¡å·¥-巨巫差己-已巴巷å¸-布"
- "帅师希å¸å¸å¸¦å¸­-帮常帽幅幕干-年幸幻-幽广庆床åºåº“-底店庙府废度-座庭康-庸廉廖延-廷建开弃-弄弊å¼å¼•å¼˜å¼Ÿ-å¼ å¼¥-弦弯弱弹归-当形彩彬-å½­å½°-影彷役彻-"
- "彼往-å¾å¾„-待很律-後å¾å¾’得循微徵德心必-忆忌-å¿å¿—-忙忠忧快念忽æ€æ€Žæ€’怕-怖æ€æ€¡æ€¥æ€§-怨怪总æ‹ææ¢æ¨-æ©æ­æ¯-æ°æ¶æ¼æ‚„悉悔悟-悠患您悲情惑惜惠惧-惨惯"
- "想惹æ„愈-愉æ„愚感愧慈慎慕慢慧慰憾懂懒æˆ-戒或战截戴房-æ‰æ‰‡æ‰‹æ‰æ‰“托扣执扩扫-扯批找-技抄把抑抓投抗-折抢护-报披-抬抱抵抹抽担-拆拉æ‹æ‹’拔拖拘招-拜拟"
- "æ‹¥-拦拨-择括拳拷拼拾-æ‹¿æŒæŒ‡æŒ‰æŒ‘挖挡挤-挥振挺æ‰ææ•æŸæ¡-æ¢æ·æŽˆ-掉掌排探接控-措æ-ææ’æ¡æ´æœæžæ¬-æ­æ‘„摆摊摔摘摩摸撒撞播æ“-擎擦支收改攻放-政故效"
- "æ•Œæ•æ•‘æ•™æ•æ•¢-散敦敬数敲整文斋斗料斜斥断斯-新方於-æ–½æ—æ—…æ—‹æ—旗无既日-早旭时旺昆昌明-æ˜æ˜“星-映春昨昭是显晃晋晓晚晨普-景晴晶智暂暑暖-暗暮暴曰曲更曹"
- "曼曾-最月-有朋æœæœ—望æœæœŸæœ¨æœª-札术朱朵æ€æ‚-æƒæ‰æŽæ-æ‘æœæŸæ¡æ¥æ¨æ¯-æ°æ¾-æ¿æžæž—æžœ-æžæž¢æžª-枫架æŸ-æŸæŸ“-柔查柯柳-柴标栋æ æ ‘æ ¡æ ·-根格桃框案桌桑档"
- "æ¡¥æ¢æ¢…梦梯-械检棋棒棚森椅æ¤æ¤°æ¥šæ¥¼æ¦‚榜模樱欠-欣欧欲欺款歉歌止-武歪死殊-残段毅æ¯æ¯æ¯’比-毕毛毫æ°æ°‘氛水永求汉汗æ±æ±Ÿ-污汤汪汽沈-沉沙沟沧河油治沿泉-泊"
- "法泛泡-泣泥注泰泳泽洋洗洛洞津洪洲活洽-æ´¾æµæµ…测济浑浓浩-浪浮浴海消-涉涛涨涯液涵淑淡深混添清æ¸æ¸¡æ¸¯æ¸´æ¸¸æ¹–æ¹¾æºæºœæºªæ»‹æ»‘满滥滴漂æ¼æ¼”漠漫潘潜潮澎激çŒç«ç­ç¯"
- "-ç°çµç¿ç‚‰ç‚Žç‚®ç‚¸-点烂烈烤烦-烧热焦然煌煞照煮熊熟燃燕爆爬爱爵-爸爽片-版牌牙牛牡-牢牧物牲牵特-牺犯状犹狂ç‹ç‹—狠独狮狱狼猛-猜献玄率玉王玛玩玫环-现玲"
- "玻çŠçç ç­çƒç†çªç³-ç´ç‘œç‘žç‘°ç’ƒç“œç“¦ç“¶ç”˜ç”šç”œç”Ÿç”¨ç”°-申电男画畅界留略番ç–疑疗疯疲疼疾病痕痛痴登白-百的皆-皇皮盈益监-盒盖盘盛盟目直相盼盾çœçœ‰çœ‹çœŸ-眠眼ç›"
- "ç¡ç£çž§çŸ›çŸ£çŸ¥çŸ­çŸ³ç -ç ‚ç ç ”破础硕硬ç¢-碎碗碟碧碰ç£ç£¨ç¤ºç¤¼ç¤¾ç¥–ç¥-神祥票祸ç¦ç¦…ç¦ç§€-ç§ç§‹ç§‘-秒秘租秤秦秩积-称移稀程ç¨ç¨£ç¨³ç¨¿ç©¶-穷穹-空穿çªçª—çªç«‹ç«™ç«ž-ç« "
- "童端竹笑笔笛符笨第等筋答策筹签简算管箭箱篇篮ç±ç±³ç±»ç²‰ç²’粗精糊糕-糖糟系素索紧紫累ç¹çº¢çº¦-级纪纯纲-纳纵纷-纸纽练-组细-终ç»ç»ç»“绕绘-给络统继绩-绪续维"
- "-绵综缓编缘缠缩缴缸缺ç½ç½—罚罢罪置署羊美羞群羯羽ç¿ç¿…翔翘翠翻-翼耀-è€è€ƒè€…而-è€è€è€—耳耶èŠèŒè”èšèªè‚‰è‚šè‚¡è‚¤-肥肩肯育èƒèƒ†èƒŒèƒŽèƒ–胞胡胶胸能脆脑脸è…腰腹腾-"
- "腿臂臣自臭至-致èˆèˆ’舞-舟航般舰船良色艺艾节芒芬-芭花芳è‹è‹è‹—è‹¥-苦英茂茫茶è‰è’è£è¯è·èŽ‰èŽŽèŽ«èŽ±-莲获èœè©è²èè¤-è¥è§-è¨è½è‘—葛蒋蒙蓉è“蔡薄薪藉è—藤虎虑虫"
- "虹虽-虾èšè›‡è›‹è›™è›®èœ‚蜜è¶èžèŸ¹è ¢è¡€è¡Œè¡—衡衣补表袋被袭è£-裂装裕裤西è¦è¦†è§-观规视览-觉角解言誉誓警计-订认讨-让训-记讲许论设-访è¯è¯„识诉è¯è¯‘试诗诚è¯-诞"
- "询该-详语误说请-诸诺-读课è°è°ƒè°…谈谊-谋谓谜谢谨谱谷豆象豪貌è´-è´Ÿè´¡-败货-贪购贯贱贴-贵费-贺贼资赋-赌èµ-èµèµ”赖赚-赛赞赠赢赤走赵起è¶è¶…越-趋趣足"
- "跃跌跑è·è·Ÿè·¯è·³è¸è¸¢è¸©èº«èº²è½¦è½¨-轩转轮-轰轻载较辅-辆辈-辉辑输辛辞辨-辩辱边达è¿è¿…过-迈迎è¿-近返还-这进-迟迪-迫述迷追退-é€é€ƒé€†é€‰-逊é€-é€é€’途通-"
- "逛é€é€Ÿ-造逢逸逻-逼é‡éé“é—é­éµé¿-邀邓那邦邪邮邱邻郎郑部郭都é…é…’é…·-酸醉醒采释里-é‡é‡‘针钓钟钢钦钱钻é“铃铭银销-é”锅锋错锦键锺镇镜长门闪闭-问间闷闹闻"
- "é˜é˜é˜”队阮防-阶阻阿-陀附-陆陈é™é™é™¢é™¤é™©-陪陵-陷隆éš-éšéš”障难雄-集雨雪雯雳零-雷雾需震霖露霸-霹é’é–é™éžé é¢é©éž‹éŸ©éŸ³é¡µ-顶项-须顽-顿预领-颇频颗"
- "-题é¢é£Žé£˜-飙飞-食é¤é¥­-饮饰-饱饼馆首香馨马驱驶驻驾验骑骗骚骤骨高鬼魂魅魔鱼é²é²œé¸Ÿé¸£é¸­é¸¿é¹…鹤鹰鹿麦麻黎黑默鼓鼠鼻é½é½¿é¾„龙龟]"
+ "[阿 å•Š å“Ž å“€ 唉 埃 艾 爱 ç¢ å®‰ 岸 按 案 æš— 昂 傲 奥 æ¾³ å…« å·´ å­ å§ èŠ­ æ‹” 把 爸 ç½¢ 霸 白 百 æŸ æ‘† è´¥ æ‹œ ç­ èˆ¬ æ¬ æ¿"
+ " 版 办 åŠ ä¼´ 扮 邦 帮 榜 棒 磅 包 胞 å® é¥± ä¿ å ¡ 报 抱 æš´ 爆 æ¯ æ‚² 北 è´ å¤‡ 背 å€ è¢« 辈 奔 本 笨 å´© 逼 é¼» 比 å½¼ 俾"
+ " 笔 å¸ å¿… 毕 é—­ æ• å¼Š 碧 å£ é¿ è‡‚ è¾¹ ç¼– æ‰ ä¾¿ å˜ é 辨 辩 æ ‡ 飙 表 别 宾 彬 滨 冰 å…µ 丙 饼 ç—… 拨 æ³¢ 玻 æ’­ 伯 泊 åš"
+ " è–„ è¡¥ æ• ä¸ å¸ƒ æ­¥ 怖 部 ç°¿ 擦 猜 æ‰ æ è´¢ è£ é‡‡ 彩 踩 èœ è”¡ å‚ é¤ æ®‹ 惨 ç¿ æ²§ è‹ è— æ“ æ›¹ è‰ ä¾§ 测 ç­– 层 å‰ æ’ æŸ¥"
+ " 茶 察 å·® 拆 柴 禅 ç¼  é˜ æ˜Œ é•¿ å° å¸¸ 场 ç•… å”± 抄 超 æœ æ½® åµ è½¦ 扯 å½» å°˜ 臣 沉 陈 晨 称 è¶ æˆ å‘ˆ 承 诚 城 乘 程 秤"
+ " åƒ ç—´ æ±  è¿Ÿ æŒ åŒ™ å°º 齿 æ–¥ 赤 ç¿… å…… 冲 虫 å´‡ 抽 仇 æ„ ç­¹ 臭 出 åˆ é™¤ ç¡€ 储 楚 处 å· ç©¿ ä¼  船 串 窗 床 创 å¹ åž‚ 春"
+ " 纯 è ¢ è¯ èŒ¨ æ…ˆ 辞 ç£ æ­¤ 次 刺 èµ ä»Ž 匆 èª ç²— 促 催 脆 ç²¹ ç¿  æ‘ å­˜ 寸 措 é”™ æ­ å—’ è¾¾ ç­” é¼ éž‘ 打 大 呆 代 带 å¾… 袋"
+ " 戴 丹 å• æ‹… 胆 掸 æ—¦ 但 诞 å¼¹ æ·¡ 蛋 当 挡 æ¡£ 刀 导 å²› 倒 到 é“ å¾— å¾· çš„ ç¯ ç™» ç­‰ é‚“ 低 æ»´ 迪 æ•Œ 笛 底 抵 地 弟 å¸"
+ " 递 第 è’‚ å…¸ 点 电 甸 店 åŠ é’“ è°ƒ 掉 è·Œ 碟 è¶ ä¸ é¡¶ 订 定 丢 东 冬 懂 动 æ ‹ æ´ž 都 æ–— 豆 ç£ æ¯’ 读 独 赌 æœ è‚š 度 渡"
+ " 端 短 段 æ–­ å † 队 对 å…‘ 敦 盾 é¡¿ 多 夺 朵 躲 å • ä¿„ 莪 é¹… é¢ åŽ„ æ¶ é„‚ æ© è€Œ å°” 耳 二 å‘ ä¹ ä¼ ç½š 法 番 ç¿» 凡 烦 ç¹"
+ " å è¿” 犯 æ³› 饭 è´© 梵 æ–¹ 芳 防 妨 房 仿 访 å½· 放 飞 éž å•¡ è² è‚¥ è…“ æ– åºŸ è´¹ 分 纷 芬 æ°› 粉 份 奋 丰 风 æž« å° ç–¯ å³°"
+ " 锋 蜂 逢 凤 奉 ä½› 缶 å¦ å¤« 肤 å¼— ä¼ æœ æµ® 符 å¹… ç¦ åºœ è¾… è… çˆ¶ 付 妇 è´Ÿ 附 å¤ å‰¯ 富 赋 è…¹ 覆 ä¼½ 该 改 ç›– 概 å¹² 甘"
+ " æ•¢ æ„Ÿ 冈 刚 å²— 纲 缸 é’¢ 港 高 糕 æž ç¨¿ å‘Š 戈 å“¥ 割 æ­Œ é˜ é© æ ¼ è‘› éš” 个 å„ ç»™ æ ¹ è·Ÿ æ›´ å·¥ å…¬ 功 æ”» ä¾› æ­ å…± è´¡ 勾"
+ " 沟 ç‹— è´­ ä¼° 姑 å­¤ å¤ è°· è‚¡ 骨 鼓 固 æ•… 顾 ç“œ 寡 ä¹– 怪 å…³ 观 官 冠 馆 管 è´¯ 惯 çŒ ç½ å…‰ 广 逛 å½’ 圭 龟 规 ç‘° 轨 鬼"
+ " è´µ 郭 é”… 国 æžœ 过 哈 å—¨ å­© æµ· 害 å« å‡½ 涵 寒 韩 罕 å–Š 汉 æ±— 憾 ç¿° 航 毫 豪 好 å· æµ© 耗 呵 å– åˆ ä½• å’Œ æ²³ æ ¸ è· ç›’"
+ " è´º 赫 鹤 黑 嘿 ç—• 很 ç‹  æ¨ äº¨ è¡¡ è½° 弘 红 å® æ´ª 虹 鸿 侯 åŽ åŽš 後 候 乎 呼 忽 ç‹ èƒ¡ æ¹– 糊 虎 唬 互 护 花 åŽ æ»‘ 化"
+ " 划 ç”» è¯ æ€€ 欢 还 环 缓 å¹» 唤 æ¢ æ‚£ è’ çš‡ 凰 黄 ç…Œ 晃 ç° æ¢ æŒ¥ 辉 回 æ‚” 会 绘 惠 æ…§ æ˜ å©š 浑 é­‚ æ·· æ´» ç« ä¼™ 夥 或"
+ " è´§ 获 祸 惑 éœ ä¸Œ 击 圾 矶 积 基 绩 æ¿€ åŠ å‰ çº§ å³ æž æ€¥ ç–¾ 集 辑 ç± å‡  å·± 挤 计 è®° 纪 å¿Œ 技 é™… 剂 å­£ æ—¢ 济 继 寂"
+ " 寄 加 夹 ä½³ 迦 家 嘉 甲 è´¾ 驾 架 å‡ å« å°– åš é—´ è‚© å…¼ 监 柬 æ¡ å‰ª 检 简 è§ ä»¶ 建 剑 è´± å¥ èˆ° æ¸ é”® ç®­ 江 å°† ç–† 讲"
+ " è’‹ é™ äº¤ 胶 焦 角 ç¼´ å« è¾ƒ æ•™ 阶 皆 接 è¡— 节 劫 æ° ç»“ æ· æˆª 羯 她 å§ è§£ 介 戒 ç•Œ 借 è—‰ 今 金 æ´¥ ç­‹ ä»… ç´§ è°¨ 锦 å°½"
+ " 劲 è¿‘ è¿› 晋 ç¦ äº¬ ç» æ™¶ ç› ç²¾ 井 景 è­¦ 径 ç«ž ç«Ÿ 敬 é– å¢ƒ é™ é•œ 究 ä¹ ä¹… é…’ æ—§ æ•‘ å°± å±… 拘 å±€ 举 å¥ å·¨ æ‹’ å…· 俱 剧"
+ " 惧 è· èš å¨Ÿ æ å· å€¦ 觉 爵 军 å› å‡ ä¿Š å’– å–€ å¡ å¼€ 凯 刊 å ª åŽ ç  çœ‹ 康 抗 考 æ‹· 烤 é  æŸ¯ 科 颗 å¯ æ¸´ å…‹ 刻 客 课"
+ " 肯 å‘ ç©º å­” æ 控 å£ æ‰£ 寇 å“­ 苦 库 裤 é…· 夸 å— å¿« 宽 款 ç‹‚ 框 äº æ„§ å¤ æ˜† å›° 扩 括 阔 垃 拉 啦 å–‡ è…Š æ¥ èŽ± èµ– å…°"
+ " 岚 拦 æ  è“ ç¯® 览 懒 烂 滥 郎 狼 朗 浪 劳 牢 è€ ä¹ å‹’ é›· é•­ åž’ ç±» ç´¯ 冷 莉 ç’ƒ 黎 礼 æŽ é‡Œ å“© ç† åŠ› 历 厉 ç«‹ 丽 利"
+ " 励 åœ ä¾‹ ç²’ 雳 ä¿© è¿ž 莲 è” å»‰ 脸 练 æ‹ è‰¯ æ¢ ä¸¤ 亮 è°… 辆 é‡ ç–— èŠ å»– 了 æ–™ å’§ 列 劣 烈 裂 é‚» æž— 临 æ·‹ ç³ éœ– å çµ"
+ " 玲 凌 铃 陵 零 龄 领 令 å¦ æºœ 刘 æµ ç•™ 柳 å…­ å’¯ é¾™ 隆 娄 楼 æ¼ éœ² å¢ èŠ¦ 炉 é² é™† 鹿 è·¯ æ—… 律 虑 率 ä¹± ç•¥ 伦 è½® 论"
+ " ç½— 逻 æ´› 络 è½ å¦ˆ 麻 马 玛 ç  å— å˜› 埋 ä¹° 迈 麦 å– è›® 满 曼 æ…¢ 漫 å¿™ 芒 茫 毛 矛 茂 冒 帽 貌 么 玫 眉 梅 媒 æ¯ ç¾Ž"
+ " 妹 é­… é—¨ é—· 们 盟 猛 è’™ å­Ÿ 梦 å’ª å¼¥ è¿· è°œ ç±³ 秘 密 蜜 眠 绵 棉 å… å‹‰ ç¼… é¢ å–µ è‹— æ 秒 妙 庙 ç­ è”‘ æ°‘ æ• å 明 鸣"
+ " é“­ 命 摸 模 æ‘© 磨 é­” 抹 末 莫 寞 æ¼  墨 默 è°‹ æŸ æ¯ ç‰¡ 姆 木 ç›® 牧 幕 æ…• æš® 穆 æ‹¿ 哪 内 é‚£ 纳 娜 乃 奶 奈 è€ ç”· å—"
+ " éš¾ æ¼ è„‘ ç‘™ é—¹ å‘ å‘¢ å«© 能 å—¯ 妮 å°¼ æ³¥ ä½  æ‹Ÿ 逆 å¹´ 念 娘 鸟 涅 您 å® å‡ ç‰› 扭 纽 农 侬 浓 弄 奴 努 怒 女 æš– 挪 诺"
+ " å– å“¦ 欧 å¶ å•ª 爬 帕 怕 æ‹ æŽ’ 牌 æ´¾ 潘 盘 判 盼 庞 æ— èƒ– ç‚® è·‘ 泡 陪 培 èµ” 佩 é… å–· 朋 å½­ 棚 蓬 澎 碰 批 披 霹 çš®"
+ " ç–² 匹 å± ç‰‡ å 篇 骗 漂 飘 票 拼 频 å“ å¹³ 评 凭 åª å± ç“¶ è å¡ é¢‡ 婆 è¿« ç ´ 扑 è© è‘¡ 埔 浦 æ™® è°± 七 妻 期 欺 é½ å…¶"
+ " 奇 骑 棋 çª æ—— ä¼ å²‚ èµ· 弃 æ±½ æ³£ 契 器 æ° æ´½ åƒ è¿ ç‰µ ç­¾ å‰ é’± ä¹¾ 潜 æµ… 欠 æ­‰ 枪 抢 æ‚„ 敲 ä¹” 侨 æ¡¥ 瞧 å·§ 翘 切 且"
+ " 亲 ä¾µ é’¦ 秦 ç´ å‹¤ å¯ é’ è½» 倾 清 情 æ™´ æ“Ž 请 庆 ç©· 穹 丘 邱 秋 求 é…‹ çƒ åŒº 曲 驱 趋 å– åŽ» 趣 圈 å…¨ æƒ æ³‰ 拳 åŠ åˆ¸"
+ " 缺 群 然 燃 染 让 绕 惹 热 人 ä» å¿ è®¤ ä»» ä» æ—¥ è£ å®¹ 蓉 èž æŸ” 肉 如 å„’ æ± è¾± å…¥ 阮 软 ç‘ž è‹¥ åŒ å¼± æ’’ è¨ å¡ž èµ› 三"
+ " æ•£ æ¡‘ 丧 骚 扫 色 ç‘Ÿ 森 僧 æ€ æ²™ ç ‚ 莎 å‚» å•¥ ç…ž æ™’ å±± æ‰ çŠ é—ª 扇 å–„ 伤 商 èµ ä¸Š å°š 烧 ç¨ å°‘ ç» èˆŒ 蛇 èˆ åŽ è®¾ 社"
+ " å°„ 涉 æ‘„ 申 伸 身 æ·± 神 沈 审 甚 æ…Ž å‡ ç”Ÿ 声 牲 çœ åœ£ ç›› 剩 失 师 诗 æ–½ ç‹® å 什 石 æ—¶ 识 实 拾 食 å² ä½¿ 始 驶 士"
+ " æ° ä¸– 市 示 å¼ äº‹ 势 视 试 饰 室 是 é€ é‡Š 誓 收 手 守 首 寿 å— å…½ å”® 授 书 å” æž¢ 殊 æ·‘ ç– èˆ’ 输 熟 æš‘ ç½² é¼  属 术"
+ " æŸ è¿° æ ‘ æ•° 刷 è€ æ‘” 帅 åŒ çˆ½ è° æ°´ ç¡ é¡º 说 ç¡• ä¸ å¸ ç§ æ€ æ–¯ æ­» å›› ä¼¼ æ¾ å®‹ é€ æœ è‹ ç¨£ ä¿— 诉 ç´  速 宿 å¡‘ é…¸ ç®—"
+ " 虽 éš å² ç¢Ž å­™ æŸ ç¼© 所 ç´¢ é” ä»– 它 å¡” è¸ èƒŽ å° æŠ¬ 太 æ€ æ³° è´ª æ‘Š å› è°ˆ 檀 å¦ å¹ æŽ¢ 汤 å” å ‚ ç³– 涛 逃 桃 陶 æ·˜ è„"
+ " 讨 套 特 ç–¼ è…¾ è—¤ 梯 踢 æ 题 体 替 天 æ·» ç”° 甜 å¡« 挑 æ¡ è·³ è´´ é“ åŽ… å»· 庭 åœ æŒº 通 åŒ ç«¥ 统 ç—› å· å¤´ 投 é€ çª å›¾"
+ " å¾’ 途 å±  土 å å…” 团 推 è…¿ 退 托 æ‹– 脱 陀 妥 哇 娃 挖 è›™ 瓦 佤 æ­ª 外 弯 æ¹¾ 丸 完 玩 顽 å®› 晚 碗 汪 亡 王 å¾€ 忘 æ—º"
+ " 望 å± å¨ å¾® 为 韦 å›´ è¿ å”¯ ç»´ 伟 å°¾ 委 å« æœª ä½ å‘³ è°“ å–‚ æ…° 温 æ–‡ é—» 雯 å» ç¨³ é—® 汶 ç¿ æŒ å–” çª æˆ‘ 沃 æ¡ ä¹Œ 污 å‘œ"
+ " å·« 屋 æ—  å¾ äº” åˆ ä¼ æ­¦ 舞 å‹¿ 务 物 误 æ‚Ÿ 雾 夕 å…® 西 å¸ å¸Œ æž æ¯ ç‰º 悉 惜 稀 溪 锡 嘻 ä¹  席 袭 æ´— å–œ æˆ ç³» 细 虾"
+ " ä¾  峡 下 å“ å¤ ä»™ å…ˆ 鲜 弦 è´¤ å«Œ 显 险 县 岘 现 é™ å®ª é™· 献 乡 相 香 ç®± 详 祥 ç¿” 享 å“ æƒ³ å‘ å·· 项 象 åƒ æ¶ˆ è§ é”€"
+ " å° æ™“ å­ æ•ˆ æ ¡ 笑 些 å 邪 èƒ æ–œ éž‹ 写 械 è°¢ 蟹 心 è¾› 欣 æ–° è–ª 馨 ä¿¡ å…´ 星 刑 è¡Œ å½¢ åž‹ 醒 姓 幸 性 å…„ 匈 胸 雄 熊"
+ " 休 ä¿® 羞 秀 é¡» 需 å¾ è®¸ æ—­ åº å™ ç»ª ç»­ 轩 宣 玄 æ—‹ 选 å­¦ 雪 è¡€ å‹‹ 寻 å·¡ 询 循 è®­ 讯 è¿… 逊 压 å‘€ 鸭 牙 çŠ æ¶¯ é›… 亚"
+ " 延 严 言 沿 ç‚Ž ç ” 掩 眼 æ¼” 厌 验 燕 央 扬 羊 阳 æ¨ æ´‹ ä»° å…» æ · 妖 è…° é‚€ 瑶 å’¬ è¯ è¦ è€€ 椰 爷 耶 也 野 业 å¶ é¡µ 夜"
+ " 液 一 伊 è¡£ 医 ä¾ ä»ª 夷 宜 怡 å’¦ 移 é— ç–‘ å½ ä¹™ å·² 以 矣 èš å€š 椅 义 亿 忆 艺 è®® 亦 å½¹ 抑 译 易 益 è°Š 逸 æ„ æ¯… 翼"
+ " å›  阴 音 åŸ é“¶ 引 饮 éš å° åº” 英 樱 é¹° è¿Ž 盈 è¤ è¥ èµ¢ å½± 映 硬 å“Ÿ å”· æ‹¥ 庸 æ°¸ æ³³ 勇 用 忧 呦 å¹½ æ‚  å°¤ ç”± 犹 é‚® æ²¹"
+ " 游 å‹ æœ‰ åˆ å³ å¹¼ 佑 于 予 ä½™ æ–¼ é±¼ 愉 æ„š ç‘œ 与 宇 ç¾½ 雨 语 玉 育 狱 æµ´ 预 域 欲 å–» 裕 é‡ æ„ˆ 誉 å…ƒ 员 å›­ 原 圆 æ´"
+ " 缘 æº è¿œ 怨 院 æ›° 约 月 å²³ è·ƒ 越 云 å… å­• è¿ æ‚ å“‰ è½½ å† åœ¨ å’± æš‚ 赞 é­ ç³Ÿ æ—© 造 则 æ‹© æ³½ è´£ è´¼ 怎 曾 增 èµ  渣 扎"
+ " 札 ä¹ ç‚¸ æ–‹ 摘 寨 展 å  æˆ˜ ç«™ å¼  ç«  å½° 涨 掌 丈 å¸ éšœ æ‹› 昭 找 å¬ èµµ ç…§ é® æŠ˜ 哲 者 è¿™ è´ž é’ˆ 侦 ç 真 阵 振 镇 震"
+ " 争 å¾ å¾µ æ•´ æ­£ è¯ éƒ‘ 政 之 支 èŠ æž çŸ¥ 织 执 ç›´ 值 èŒ æ¤ æ­¢ æ—¨ å€ çº¸ 指 至 å¿— 制 æ²» è´¨ 秩 致 智 ç½® 中 å¿  终 é’Ÿ 锺"
+ " ç§ ä»² ä¼— é‡ å·ž 舟 周 æ´² å®™ 骤 朱 ç  è¯¸ é“¢ 竹 é€ ä¸» ç…® ä½ åŠ© 注 é©» ç¥ è‘— 抓 爪 专 转 赚 装 壮 状 æ’ž 追 准 å“ æ‰ æ¡Œ"
+ " ä»” å­œ å…¹ 姿 资 滋 å­ å§Š ç´« å­— 自 å®— 综 总 纵 èµ° å¥ ç§Ÿ 足 å’ æ— é˜» 组 祖 é’» 嘴 最 罪 醉 å°Š éµ æ˜¨ å·¦ ä½ ä½œ å 座 åš"
+ "]"
}
Keys{
calendar{"日历"}
@@ -1348,9 +1376,9 @@ zh{
de{"å¾·æ–‡"}
del{"特拉瓦å°ç¬¬å®‰äººæ–‡"}
den{"å¸é›·å¤«æ–‡"}
- dgr{"多格æ¥æ–‡"}
+ dgr{"多格æ¥æ–‡ Dogrib"}
din{"ä¸å¡æ–‡"}
- doi{"多格æ¥æ–‡"}
+ doi{"多格æ¥æ–‡ Dogri"}
dra{"其他德拉维语系"}
dsb{"下塞尔维亚文"}
dua{"都阿拉文"}
@@ -1417,10 +1445,10 @@ zh{
hup{"胡帕文"}
hy{"亚美尼亚文"}
hz{"赫雷罗文"}
- ia{"拉ä¸å›½é™…æ–‡"}
+ ia{"拉ä¸å›½é™…æ–‡ Interlingua"}
iba{"伊ç­æ–‡"}
id{"å°åº¦å°¼è¥¿äºšæ–‡"}
- ie{"拉ä¸å›½é™…æ–‡"}
+ ie{"拉ä¸å›½é™…æ–‡ Interlingue"}
ig{"伊格åšæ–‡"}
ii{"å››å·è¯"}
ijo{"伊乔文"}
@@ -1464,7 +1492,7 @@ zh{
kos{"柯å¸ç‘žæ©æ–‡"}
kpe{"克佩列文"}
kr{"å¡åŠªé‡Œæ–‡"}
- krc{"å¡æ‹‰å¡å°”帕克文"}
+ krc{"å¡æ‹‰æ°ä¼Š-å·´å°”å¡å°”语"}
kro{"å…‹é²æ–‡"}
kru{"库é²å…‹æ–‡"}
ks{"克什米尔文"}
@@ -1484,7 +1512,7 @@ zh{
li{"淋布尔å‰æ–‡"}
ln{"林加拉文"}
lo{"è€æŒæ–‡"}
- lol{"è’™å¤æ–‡"}
+ lol{"芒戈语"}
loz{"洛兹文"}
lt{"立陶宛文"}
lu{"é²å·´åŠ ä¸¹åŠ æ–‡"}
@@ -1604,7 +1632,7 @@ zh{
sat{"桑嗒利文"}
sc{"è¨ä¸æ–‡"}
sco{"è‹æ ¼å…°æ–‡"}
- sd{"è‹ä¸¹æ–‡"}
+ sd{"信德语"}
se{"北è¨è¿·æ–‡"}
sel{"塞尔库普文"}
sem{"其他闪æ—语系"}
@@ -1637,7 +1665,7 @@ zh{
ss{"辛辛那ææ–‡"}
ssa{"其他尼罗è¨å“ˆå…°æ–‡"}
st{"塞索托文"}
- su{"è‹ä¸¹æ–‡"}
+ su{"巽他语"}
suk{"è‹åº“马文"}
sus{"è‹è‹æ–‡"}
sux{"è‹é©¬æ–‡"}
@@ -1696,7 +1724,7 @@ zh{
wen{"索布诸语言"}
wo{"沃尔夫文"}
xal{"å¡å•¦è¿·å…‹æ–‡"}
- xh{"ç­å›¾æ–‡"}
+ xh{"科è¨è¯­"}
yao{"瑶æ—æ–‡"}
yap{"雅浦文"}
yi{"ä¾åœ°æ–‡"}
@@ -1789,13 +1817,24 @@ zh{
Variants{
REVISED{"已修订"}
}
- Version{"1.52"}
+ Version{"1.77"}
calendar{
gregorian{
AmPmMarkers{
"上åˆ",
"下åˆ",
}
+ DateTimePatterns{
+ "HH:mm:ss z",
+ "HH:mm:ss z",
+ "HH:mm:ss",
+ "HH:mm",
+ "EEEE, yyyy MMMM dd",
+ "yyyy MMMM d",
+ "yyyy MMM d",
+ "yy/MM/dd",
+ "{1} {0}",
+ }
dayNames{
format{
abbreviated{
@@ -1883,137 +1922,581 @@ zh{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "1å­£",
+ "2å­£",
+ "3å­£",
+ "4å­£",
+ }
+ wide{
+ "第1季度",
+ "第2季度",
+ "第3季度",
+ "第4季度",
+ }
+ }
+ }
}
}
localPatternChars{"GanjkHmsSEDFwWxhKzAeugXZvcL"}
zoneStrings{
- {
- "America/Halifax",
- "大西洋标准时间",
- "AST",
- "大西洋å¤ä»¤æ—¶é—´",
- "ADT",
- "哈利法克斯",
- }
- {
- "America/St_Johns",
- "纽芬兰标准时间",
- "CNT",
- "纽芬兰å¤ä»¤æ—¶é—´",
- "CDT",
- "圣约翰",
- }
- {
- "Asia/Shanghai",
- "中国标准时间",
- "CTT",
- "中国标准时间",
- "CDT",
- "上海",
- }
- {
- "Europe/Paris",
- "中欧标准时间",
- "CET",
- "中欧å¤ä»¤æ—¶é—´",
- "CEST",
- "巴黎",
- }
- {
- "Asia/Jerusalem",
- "以色列标准时间",
- "IST",
- "以色列å¤ä»¤æ—¶é—´",
- "IDT",
- "耶路撒冷",
- }
- {
- "Asia/Tokyo",
- "日本标准时间",
- "JST",
- "日本标准时间",
- "JST",
- "东京",
- }
- {
- "Africa/Casablanca",
- "格林å¨æ²»æ ‡å‡†æ—¶é—´",
- "GMT",
- "格林å¨æ²»æ ‡å‡†æ—¶é—´",
- "GMT",
- "å¡è¨å¸ƒå…°å¡",
- }
- {
- "Europe/Bucharest",
- "东欧标准时间",
- "EET",
- "东欧å¤ä»¤æ—¶é—´",
- "EEST",
- "布加勒斯特",
- }
- {
- "Pacific/Honolulu",
- "å¤å¨å¤·æ ‡å‡†æ—¶é—´",
- "HST",
- "å¤å¨å¤·æ ‡å‡†æ—¶é—´",
- "HST",
- "檀香山",
- }
- {
- "America/Anchorage",
- "阿拉斯加标准时间",
- "AST",
- "阿拉斯加å¤ä»¤æ—¶é—´",
- "ADT",
- "安克雷奇",
- }
- {
- "America/Los_Angeles",
- "太平洋标准时间",
- "PST",
- "太平洋å¤ä»¤æ—¶é—´",
- "PDT",
- "æ´›æ‰çŸ¶",
- }
- {
- "America/Phoenix",
- "山区标准时间",
- "MST",
- "山区标准时间",
- "MST",
- "凤凰城",
- }
- {
- "America/Denver",
- "山区标准时间",
- "MST",
- "山区å¤ä»¤æ—¶é—´",
- "MDT",
- "丹佛",
- }
- {
- "America/Chicago",
- "中央标准时间",
- "CST",
- "中央å¤ä»¤æ—¶é—´",
- "CDT",
- "èŠåŠ å“¥",
- }
- {
- "America/Indianapolis",
- "东部标准时间",
- "EST",
- "东部标准时间",
- "EST",
- "å°åœ°å®‰çº³æ³¢åˆ©æ–¯",
- }
- {
- "America/New_York",
- "东部标准时间",
- "EST",
- "东部å¤ä»¤æ—¶é—´",
- "EDT",
- "纽约",
+ "Africa:Bamako"{
+ ec{"巴马科"}
+ }
+ "Africa:Casablanca"{
+ ec{"å¡è¨å¸ƒå…°å¡"}
+ ld{"格林å¨æ²»æ ‡å‡†æ—¶é—´"}
+ ls{"格林å¨æ²»æ ‡å‡†æ—¶é—´"}
+ sd{"GMT"}
+ ss{"GMT"}
+ }
+ "Africa:Ceuta"{
+ ec{"休达"}
+ }
+ "Africa:Kinshasa"{
+ ec{"金沙è¨"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"å¢æœ¬å·´å¸Œ"}
+ }
+ "Africa:Timbuktu"{
+ ec{"延巴克图"}
+ }
+ "America:Adak"{
+ ec{"艾德克岛"}
+ }
+ "America:Anchorage"{
+ ec{"安克雷奇"}
+ ld{"阿拉斯加å¤ä»¤æ—¶é—´"}
+ ls{"阿拉斯加标准时间"}
+ sd{"阿拉斯加å¤ä»¤æ—¶é—´"}
+ ss{"阿拉斯加标准时间"}
+ }
+ "America:Araguaina"{
+ ec{"阿拉瓜伊纳"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"科摩罗(群岛)"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"拉里奥哈"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"里奥加耶戈斯"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"圣胡安"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"图库曼"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"乌斯怀亚"}
+ }
+ "America:Bahia"{
+ ec{"巴伊亚"}
+ }
+ "America:Belem"{
+ ec{"è´ä¼¦"}
+ }
+ "America:Boa_Vista"{
+ ec{"åšé˜¿ç»´æ–¯å¡”"}
+ }
+ "America:Boise"{
+ ec{"åšä¼Šè¥¿"}
+ }
+ "America:Buenos_Aires"{
+ ec{"布宜诺斯艾利斯"}
+ }
+ "America:Campo_Grande"{
+ ec{"大åŽæ™®"}
+ }
+ "America:Cancun"{
+ ec{"åŽæ˜†"}
+ }
+ "America:Catamarca"{
+ ec{"å¡å¡”马å¡"}
+ }
+ "America:Chicago"{
+ ec{"èŠåŠ å“¥"}
+ ld{"中央å¤ä»¤æ—¶é—´"}
+ ls{"中央标准时间"}
+ ss{"中部标准时间"}
+ }
+ "America:Chihuahua"{
+ ec{"奇瓦瓦"}
+ }
+ "America:Cordoba"{
+ ec{"科尔多瓦"}
+ }
+ "America:Cuiaba"{
+ ec{"库亚巴"}
+ }
+ "America:Dawson"{
+ ec{"é“森"}
+ }
+ "America:Dawson_Creek"{
+ ec{"é“森克里克"}
+ }
+ "America:Denver"{
+ ec{"丹佛"}
+ ld{"山区å¤ä»¤æ—¶é—´"}
+ ls{"山区标准时间"}
+ sd{"MDT"}
+ ss{"MST"}
+ }
+ "America:Detroit"{
+ ec{"底特律"}
+ }
+ "America:Edmonton"{
+ ec{"埃德蒙顿"}
+ }
+ "America:Fortaleza"{
+ ec{"ç¦å¡”é›·è¨"}
+ }
+ "America:Glace_Bay"{
+ ec{"格莱斯è´"}
+ }
+ "America:Godthab"{
+ ec{"戈德éœæ™®"}
+ }
+ "America:Goose_Bay"{
+ ec{"å¤æ–¯æ¹¾"}
+ }
+ "America:Guayaquil"{
+ ec{"瓜亚基尔"}
+ }
+ "America:Halifax"{
+ ec{"哈利法克斯"}
+ ld{"大西洋å¤ä»¤æ—¶é—´"}
+ ls{"大西洋标准时间"}
+ sd{"大西洋å¤ä»¤æ—¶é—´"}
+ ss{"大西洋标准时间"}
+ }
+ "America:Hermosillo"{
+ ec{"埃莫西约"}
+ }
+ "America:Indiana:Knox"{
+ ec{"诺克斯"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"马伦戈"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"沃韦"}
+ }
+ "America:Indianapolis"{
+ ec{"å°åœ°å®‰çº³æ³¢åˆ©æ–¯"}
+ ld{"东部å¤æ—¶åˆ¶ Indianapolis"}
+ ls{"东部标准时间 Indianapolis"}
+ }
+ "America:Inuvik"{
+ ec{"伊努维克"}
+ }
+ "America:Iqaluit"{
+ ec{"伊基克"}
+ }
+ "America:Jujuy"{
+ ec{"胡胡伊"}
+ }
+ "America:Juneau"{
+ ec{"朱诺"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"蒙蒂塞洛"}
+ }
+ "America:Los_Angeles"{
+ ec{"æ´›æ‰çŸ¶"}
+ ld{"太平洋å¤ä»¤æ—¶é—´"}
+ ls{"太平洋标准时间"}
+ sd{"PDT"}
+ ss{"PST"}
+ }
+ "America:Louisville"{
+ ec{"路易(斯)维尔"}
+ }
+ "America:Maceio"{
+ ec{"马塞约"}
+ }
+ "America:Manaus"{
+ ec{"马瑙斯"}
+ }
+ "America:Mazatlan"{
+ ec{"马è¨ç‰¹å…°"}
+ }
+ "America:Mendoza"{
+ ec{"门多è¨"}
+ }
+ "America:Merida"{
+ ec{"梅里达"}
+ }
+ "America:Mexico_City"{
+ ec{"墨西哥城"}
+ }
+ "America:Monterrey"{
+ ec{"蒙特雷"}
+ }
+ "America:Montreal"{
+ ec{"蒙特利尔"}
+ }
+ "America:New_York"{
+ ec{"纽约"}
+ ld{"东部å¤ä»¤æ—¶é—´"}
+ ls{"东部标准时间"}
+ sd{"东部å¤ä»¤æ—¶é—´"}
+ ss{"东部标准时间"}
+ }
+ "America:Nipigon"{
+ ec{"尼皮贡"}
+ }
+ "America:Nome"{
+ ec{"诺æ¯"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"森特"}
+ }
+ "America:Phoenix"{
+ ec{"凤凰城"}
+ ld{"山区å¤ä»¤æ—¶é—´ Phoenix"}
+ ls{"山区标准时间 Phoenix"}
+ }
+ "America:Porto_Velho"{
+ ec{"波多韦柳"}
+ }
+ "America:Rainy_River"{
+ ec{"雷尼河"}
+ }
+ "America:Recife"{
+ ec{"累西腓"}
+ }
+ "America:Regina"{
+ ec{"里贾纳"}
+ }
+ "America:Rio_Branco"{
+ ec{"里奥布郎库"}
+ }
+ "America:Santiago"{
+ ec{"圣地亚哥"}
+ }
+ "America:Sao_Paulo"{
+ ec{"圣ä¿ç½—"}
+ }
+ "America:Shiprock"{
+ ec{"舰石城"}
+ }
+ "America:St_Johns"{
+ ec{"圣约翰"}
+ ld{"纽芬兰å¤ä»¤æ—¶é—´"}
+ ls{"纽芬兰标准时间"}
+ sd{"NDT 纽芬兰å¤ä»¤æ—¶é—´"}
+ ss{"NST 纽芬兰标准时间"}
+ }
+ "America:Swift_Current"{
+ ec{"æ–¯å¨å¤«ç‰¹å¡ä¼¦ç‰¹"}
+ }
+ "America:Thule"{
+ ec{"图勒"}
+ }
+ "America:Thunder_Bay"{
+ ec{"æ¡‘å¾·è´"}
+ }
+ "America:Tijuana"{
+ ec{"æåŽçº³"}
+ }
+ "America:Toronto"{
+ ec{"多伦多"}
+ }
+ "America:Vancouver"{
+ ec{"温哥åŽ"}
+ }
+ "America:Whitehorse"{
+ ec{"怀特éœæ–¯"}
+ }
+ "America:Winnipeg"{
+ ec{"温尼伯"}
+ }
+ "America:Yakutat"{
+ ec{"亚库塔特"}
+ }
+ "America:Yellowknife"{
+ ec{"耶洛奈夫"}
+ }
+ "Antarctica:Casey"{
+ ec{"凯西"}
+ }
+ "Antarctica:Davis"{
+ ec{"戴维斯"}
+ }
+ "Antarctica:Mawson"{
+ ec{"莫森"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"马克默多"}
+ }
+ "Antarctica:Palmer"{
+ ec{"帕默"}
+ }
+ "Antarctica:Rothera"{
+ ec{"罗瑟拉"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"å—æž"}
+ }
+ "Antarctica:Vostok"{
+ ec{"东方站"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"朗伊尔城"}
+ }
+ "Asia:Almaty"{
+ ec{"阿拉木图"}
+ }
+ "Asia:Anadyr"{
+ ec{"阿纳德尔"}
+ }
+ "Asia:Aqtau"{
+ ec{"阿克套"}
+ }
+ "Asia:Aqtobe"{
+ ec{"阿克托别"}
+ }
+ "Asia:Choibalsan"{
+ ec{"å“巴尔塞"}
+ }
+ "Asia:Chongqing"{
+ ec{"é‡åº†"}
+ }
+ "Asia:Harbin"{
+ ec{"哈尔滨"}
+ }
+ "Asia:Hovd"{
+ ec{"科布多"}
+ }
+ "Asia:Irkutsk"{
+ ec{"伊尔库茨克"}
+ }
+ "Asia:Jakarta"{
+ ec{"雅加达"}
+ }
+ "Asia:Jayapura"{
+ ec{"查亚普拉"}
+ }
+ "Asia:Jerusalem"{
+ ec{"耶路撒冷"}
+ ld{"以色列å¤ä»¤æ—¶é—´"}
+ ls{"以色列标准时间"}
+ sd{"IDT"}
+ ss{"IST"}
+ }
+ "Asia:Kamchatka"{
+ ec{"堪察加åŠå²›"}
+ }
+ "Asia:Kashgar"{
+ ec{"喀什葛尔"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"克拉斯诺亚尔斯克"}
+ }
+ "Asia:Kuala_Lumpur"{
+ ec{"å‰éš†å¡"}
+ }
+ "Asia:Kuching"{
+ ec{"å¤æ™‹"}
+ }
+ "Asia:Magadan"{
+ ec{"马加丹"}
+ }
+ "Asia:Makassar"{
+ ec{"望加锡"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"新西伯利亚"}
+ }
+ "Asia:Omsk"{
+ ec{"鄂木斯克"}
+ }
+ "Asia:Pontianak"{
+ ec{"å¤ç”¸"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"克孜勒奥尔达"}
+ }
+ "Asia:Sakhalin"{
+ ec{"库页岛"}
+ }
+ "Asia:Samarkand"{
+ ec{"撒马尔罕"}
+ }
+ "Asia:Shanghai"{
+ ec{"上海"}
+ ld{"中国标准时间"}
+ ls{"中国标准时间"}
+ }
+ "Asia:Tashkent"{
+ ec{"塔什干"}
+ }
+ "Asia:Tokyo"{
+ ec{"东京"}
+ ld{"日本标准时间"}
+ ls{"日本标准时间"}
+ sd{"JST"}
+ ss{"JST"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"乌兰巴托"}
+ }
+ "Asia:Urumqi"{
+ ec{"乌é²æœ¨é½"}
+ }
+ "Asia:Vladivostok"{
+ ec{"符拉迪沃斯托克"}
+ }
+ "Asia:Yakutsk"{
+ ec{"雅库茨克"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"å¶å¡æ·æž—å ¡"}
+ }
+ "Atlantic:Azores"{
+ ec{"亚速尔群岛"}
+ }
+ "Atlantic:Canary"{
+ ec{"加那利群岛"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"扬马延岛"}
+ }
+ "Atlantic:Madeira"{
+ ec{"马德拉群岛"}
+ }
+ "Australia:Adelaide"{
+ ec{"阿德莱德"}
+ }
+ "Australia:Brisbane"{
+ ec{"布里斯ç­"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"布罗肯希尔"}
+ }
+ "Australia:Darwin"{
+ ec{"达尔文"}
+ }
+ "Australia:Hobart"{
+ ec{"éœå·´ç‰¹"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"豪勋爵"}
+ }
+ "Australia:Melbourne"{
+ ec{"墨尔本"}
+ }
+ "Australia:Perth"{
+ ec{"佩æ€"}
+ }
+ "Australia:Sydney"{
+ ec{"悉尼"}
+ }
+ "Europe:Belfast"{
+ ec{"è´å°”法斯特"}
+ }
+ "Europe:Bucharest"{
+ ec{"布加勒斯特"}
+ ld{"东欧å¤ä»¤æ—¶é—´"}
+ ls{"东欧标准时间"}
+ sd{"EEST"}
+ ss{"EET"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"加里å®æ ¼å‹’"}
+ }
+ "Europe:Kiev"{
+ ec{"基辅"}
+ }
+ "Europe:Lisbon"{
+ ec{"里斯本"}
+ }
+ "Europe:London"{
+ ec{"伦敦"}
+ }
+ "Europe:Madrid"{
+ ec{"马德里"}
+ }
+ "Europe:Moscow"{
+ ec{"莫斯科"}
+ }
+ "Europe:Paris"{
+ ec{"巴黎"}
+ ld{"中欧å¤ä»¤æ—¶é—´"}
+ ls{"中欧标准时间"}
+ sd{"CEST"}
+ ss{"CET"}
+ }
+ "Europe:Samara"{
+ ec{"è¨é©¬æ‹‰"}
+ }
+ "Europe:Simferopol"{
+ ec{"è¾›è²ç½—波尔"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"乌日戈罗德"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"扎波罗热"}
+ }
+ "Pacific:Auckland"{
+ ec{"奥克兰"}
+ }
+ "Pacific:Chatham"{
+ ec{"查塔姆"}
+ }
+ "Pacific:Easter"{
+ ec{"å¤æ´»èŠ‚å²›"}
+ }
+ "Pacific:Enderbury"{
+ ec{"æ©å¾·è´é‡Œ"}
+ }
+ "Pacific:Galapagos"{
+ ec{"加拉帕哥斯"}
+ }
+ "Pacific:Gambier"{
+ ec{"甘比尔"}
+ }
+ "Pacific:Honolulu"{
+ ec{"檀香山"}
+ ld{"å¤å¨å¤·æ ‡å‡†æ—¶é—´"}
+ ls{"å¤å¨å¤·æ ‡å‡†æ—¶é—´"}
+ sd{"HST"}
+ ss{"HST"}
+ }
+ "Pacific:Johnston"{
+ ec{"约翰斯顿"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"å¡ç“¦åŠ å…°"}
+ }
+ "Pacific:Majuro"{
+ ec{"马朱罗"}
+ }
+ "Pacific:Marquesas"{
+ ec{"马克è¨æ–¯"}
+ }
+ "Pacific:Ponape"{
+ ec{"波纳佩岛"}
+ }
+ "Pacific:Tahiti"{
+ ec{"塔希æ"}
+ }
+ "Pacific:Truk"{
+ ec{"特é²å…‹ç¾¤å²›"}
+ }
+ "Pacific:Wake"{
+ ec{"å¨å…‹å²›"}
+ }
+ "Pacific:Yap"{
+ ec{"雅浦岛"}
}
+ hourFormat{"+HHmm;-HHmm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_CN.txt b/Build/source/libs/icu-xetex/data/locales/zh_CN.txt
index 949dbdc16b3..ce49c783dd3 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_CN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_CN.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_CN.xml
+// * Source File:<path>/common/main/zh_CN.xml
// *
// ***************************************************************************
zh_CN{
"%%ALIAS"{"zh_Hans_CN"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_HK.txt b/Build/source/libs/icu-xetex/data/locales/zh_HK.txt
index 1101c15ee8c..34a55622b5c 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_HK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_HK.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_HK.xml
+// * Source File:<path>/common/main/zh_HK.xml
// *
// ***************************************************************************
zh_HK{
"%%ALIAS"{"zh_Hant_HK"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hans.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hans.txt
index 0d69c218b4c..7b3a6ce41f0 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hans.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hans.txt
@@ -1,11 +1,895 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hans.xml
+// * Source File:<path>/common/main/zh_Hans.xml
// *
// ***************************************************************************
+/**
+ * ICU <specials> source: <path>/xml/main/zh_Hans.xml
+ */
zh_Hans{
- Version{"1.14"}
+ Countries{
+ 034{"å—亚"}
+ 061{"玻利尼西亚"}
+ 143{"中亚"}
+ 172{"独è”体"}
+ 419{"拉ä¸ç¾Žæ´²å’ŒåŠ å‹’比海"}
+ BA{"波斯尼亚和黑塞哥维那"}
+ CC{"科科斯(基林)群岛"}
+ CD{"刚果(金)"}
+ CG{"刚果(布)"}
+ DM{"多米尼加"}
+ KG{"å‰å°”å‰æ–¯æ–¯å¦"}
+ MD{"摩尔多瓦"}
+ MK{"马其顿"}
+ MQ{"马æ尼克群岛"}
+ MS{"蒙塞拉特群岛"}
+ NC{"æ–°å¡é‡Œå¤šå°¼äºš"}
+ RU{"ä¿„ç½—æ–¯"}
+ SC{"塞舌尔群岛"}
+ TF{"法属å—部领土"}
+ }
+ Currencies{
+ ADP{
+ "ADP",
+ "安é“尔比塞塔",
+ }
+ AFA{
+ "AFA (1927-2002)",
+ "阿富汗尼 (1927-2002)",
+ }
+ AFN{
+ "AFA",
+ "阿富汗尼",
+ }
+ AOA{
+ "AOA",
+ "安哥拉宽扎",
+ }
+ AOK{
+ "AOK",
+ "安哥拉宽扎 (1977-1990)",
+ }
+ AON{
+ "AON",
+ "安哥拉新宽扎 (1990-2000)",
+ }
+ AOR{
+ "AOR",
+ "安哥拉宽扎 Reajustado (1995-1999)",
+ }
+ ATS{
+ "ATS",
+ "奥地利先令",
+ }
+ AZM{
+ "AZM",
+ "阿塞拜疆马纳特",
+ }
+ BAD{
+ "BAD",
+ "波士尼亚-赫塞哥维纳第纳尔",
+ }
+ BDT{
+ "BDT",
+ "孟加拉塔å¡",
+ }
+ BGL{
+ "BGL",
+ "ä¿åŠ åˆ©äºšç¡¬åˆ—å¼—",
+ }
+ BGN{
+ "BGN",
+ "ä¿åŠ åˆ©äºšæ–°åˆ—å¼—",
+ }
+ BHD{
+ "BHD",
+ "巴林第纳尔",
+ }
+ BND{
+ "BND",
+ "文莱元",
+ }
+ BOB{
+ "BOB",
+ "玻利维亚诺",
+ }
+ BOV{
+ "BOV",
+ "玻利维亚 Mvdol(资金)",
+ }
+ BRB{
+ "BRB (1967-1986)",
+ "巴西克é²èµ›ç½— Novo (1967-1986)",
+ }
+ BRC{
+ "BRC",
+ "巴西克é²æ‰Žå¤š",
+ }
+ BRE{
+ "BRE (1990-1993)",
+ "巴西克é²å¡žç½— (1990-1993)",
+ }
+ BRL{
+ "BRL",
+ "巴西雷亚尔",
+ }
+ BRN{
+ "BRN",
+ "巴西克é²æ‰Žå¤š Novo",
+ }
+ BWP{
+ "BWP",
+ "åšèŒ¨ç“¦çº³æ™®æ‹‰",
+ }
+ CLF{
+ "CLF",
+ "智利 Unidades de Fomento(资金)",
+ }
+ CLP{
+ "CLP",
+ "智利比索",
+ }
+ COU{
+ "COU",
+ "Unidad de Valor Real",
+ }
+ CRC{
+ "CRC",
+ "哥斯达黎加科朗",
+ }
+ CSD{
+ "CSD",
+ "塞尔维亚第纳尔",
+ }
+ CYP{
+ "CYP",
+ "塞浦路斯镑",
+ }
+ DZD{
+ "DZD",
+ "阿尔åŠåˆ©äºšç¬¬çº³å°”",
+ }
+ ECV{
+ "ECV",
+ "厄瓜多尔 Unidad de Valor Constante (UVC)",
+ }
+ EGP{
+ "EGP",
+ "埃åŠé•‘",
+ }
+ EQE{
+ "EQE",
+ "埃奎勒",
+ }
+ ERN{
+ "ERN",
+ "厄立特里亚纳克法",
+ }
+ ESA{
+ "ESA",
+ "西ç­ç‰™æ¯”塞塔(å¸æˆ· A)",
+ }
+ ESB{
+ "ESB",
+ "西ç­ç‰™æ¯”塞塔(兑æ¢å¸æˆ·ï¼‰",
+ }
+ ESP{
+ "ESP",
+ "西ç­ç‰™æ¯”å¡žå¡”",
+ }
+ FIM{
+ "FIM",
+ "芬兰马克",
+ }
+ FKP{
+ "FKP",
+ "ç¦å…‹å…°é•‘",
+ }
+ GBP{
+ "£",
+ "英镑",
+ }
+ GEL{
+ "GEL",
+ "乔治亚拉瑞",
+ }
+ GIP{
+ "GIP",
+ "直布罗陀镑",
+ }
+ GNS{
+ "GNS",
+ "几内亚西里",
+ }
+ GQE{
+ "GQE",
+ "赤é“几内亚埃奎勒",
+ }
+ GTQ{
+ "GTQ",
+ "å±åœ°é©¬æ‹‰æ ¼æŸ¥å°”",
+ }
+ GWP{
+ "GWP",
+ "几内亚比ç»æ¯”ç´¢",
+ }
+ HNL{
+ "HNL",
+ "洪都拉斯拉伦皮拉",
+ }
+ HRD{
+ "HRD",
+ "克罗地亚第纳尔",
+ }
+ HRK{
+ "HRK",
+ "克罗地亚库纳",
+ }
+ HUF{
+ "HUF",
+ "匈牙利ç¦æž—",
+ }
+ IEP{
+ "IEP",
+ "爱尔兰镑",
+ }
+ ILP{
+ "ILP",
+ "以色列镑",
+ }
+ ILS{
+ "ILS",
+ "以色列新谢克尔",
+ }
+ INR{
+ "INR",
+ "å°åº¦å¢æ¯”",
+ }
+ IQD{
+ "IQD",
+ "伊拉克第纳尔",
+ }
+ IRR{
+ "IRR",
+ "伊朗里亚尔",
+ }
+ JOD{
+ "JOD",
+ "约旦第纳尔",
+ }
+ KGS{
+ "KGS",
+ "å‰å°”å‰æ–¯æ–¯å¦ç´¢å§†",
+ }
+ KHR{
+ "KHR",
+ "柬埔寨瑞尔",
+ }
+ KPW{
+ "KPW",
+ "æœé²œåœ†",
+ }
+ KRW{
+ "₩",
+ "韩圆",
+ }
+ KWD{
+ "KWD",
+ "科å¨ç‰¹ç¬¬çº³å°”",
+ }
+ KYD{
+ "KYD",
+ "开曼元",
+ }
+ KZT{
+ "KZT",
+ "哈è¨å…‹æ–¯å¦åšæˆˆ",
+ }
+ LBP{
+ "LBP",
+ "黎巴嫩镑",
+ }
+ LSL{
+ "LSL",
+ "莱索托洛蒂",
+ }
+ LSM{
+ "LSM",
+ "马洛蒂",
+ }
+ LTL{
+ "LTL",
+ "立陶宛立特",
+ }
+ LUC{
+ "LUC",
+ "å¢æ£®å ¡å¯å…‘æ¢æ³•éƒŽ",
+ }
+ LUL{
+ "LUL",
+ "å¢æ£®å ¡é‡‘èžæ³•éƒŽ",
+ }
+ LYD{
+ "LYD",
+ "利比亚第纳尔",
+ }
+ MDL{
+ "MDL",
+ "摩尔多瓦列伊",
+ }
+ MGA{
+ "MGA",
+ "马达加斯加阿里亚里",
+ }
+ MKD{
+ "MKD",
+ "马其顿戴代纳尔",
+ }
+ MOP{
+ "MOP",
+ "澳门元",
+ }
+ MRO{
+ "MRO",
+ "毛里塔尼亚乌å‰äºš",
+ }
+ MTL{
+ "MTL",
+ "马耳他里拉",
+ }
+ MTP{
+ "MTP",
+ "马耳他镑",
+ }
+ MVR{
+ "MVR",
+ "马尔代夫拉è²äºš",
+ }
+ MWK{
+ "MWK",
+ "马拉维克瓦查",
+ }
+ MXP{
+ "MXP (1861-1992)",
+ "墨西哥银比索 (1861-1992)",
+ }
+ MXV{
+ "MXV",
+ "墨西哥 Unidad de Inversion (UDI)(资金)",
+ }
+ MYR{
+ "MYR",
+ "马æ¥è¥¿äºšæž—å‰ç‰¹",
+ }
+ MZM{
+ "MZM",
+ "莫桑比克梅蒂å¡å°”",
+ }
+ NGN{
+ "NGN",
+ "尼日利亚奈拉",
+ }
+ NIO{
+ "NIO",
+ "尼加拉瓜金科多巴",
+ }
+ OMR{
+ "OMR",
+ "阿曼里亚尔",
+ }
+ PEI{
+ "PEI",
+ "秘é²å°é”‘",
+ }
+ PEN{
+ "PEN",
+ "秘é²æ–°ç´¢å°”",
+ }
+ PES{
+ "PES",
+ "秘é²ç´¢å°”",
+ }
+ PTE{
+ "PTE",
+ "è‘¡è„牙埃斯库多",
+ }
+ PYG{
+ "PYG",
+ "巴拉圭瓜拉尼",
+ }
+ RHD{
+ "RHD",
+ "罗得西亚元",
+ }
+ ROL{
+ "ROL",
+ "旧罗马尼亚列伊",
+ }
+ SAR{
+ "SAR",
+ "沙特里亚尔",
+ }
+ SDD{
+ "SDD",
+ "è‹ä¸¹ç¬¬çº³å°”",
+ }
+ SDP{
+ "SDP",
+ "è‹ä¸¹é•‘",
+ }
+ SEK{
+ "SEK",
+ "瑞典克朗",
+ }
+ SHP{
+ "SHP",
+ "圣赫勒拿镑",
+ }
+ SIT{
+ "SIT",
+ "斯洛文尼亚托拉尔",
+ }
+ SKK{
+ "SKK",
+ "斯洛ä¼å…‹å…‹æœ—",
+ }
+ SLL{
+ "SLL",
+ "塞拉利昂利昂",
+ }
+ SRD{
+ "SRD",
+ "è‹é‡Œå—å…ƒ",
+ }
+ SRG{
+ "SRG",
+ "è‹é‡Œå—盾",
+ }
+ STD{
+ "STD",
+ "圣多美和普林西比多布拉",
+ }
+ SVC{
+ "SVC",
+ "è¨å°”瓦多科朗",
+ }
+ SYP{
+ "SYP",
+ "å™åˆ©äºšé•‘",
+ }
+ SZL{
+ "SZL",
+ "æ–¯å¨å£«å…°é‡Œå…°å‰å°¼",
+ }
+ TMM{
+ "TMM",
+ "土库曼斯å¦é©¬çº³ç‰¹",
+ }
+ TND{
+ "TND",
+ "çªå°¼æ–¯ç¬¬çº³å°”",
+ }
+ TOP{
+ "TOP",
+ "汤加潘加",
+ }
+ TWD{
+ "NT$",
+ "æ–°å°å¸å…ƒ",
+ }
+ UAH{
+ "UAH",
+ "乌克兰格里夫尼亚",
+ }
+ UGS{
+ "UGS (1966-1987)",
+ "乌干达先令 (1966-1987)",
+ }
+ USN{
+ "USN",
+ "美元(次日)",
+ }
+ USS{
+ "USS",
+ "美元(当日)",
+ }
+ UYP{
+ "UYP (1975-1993)",
+ "乌拉圭新比索 (1975-1993)",
+ }
+ UZS{
+ "UZS",
+ "乌兹别克斯è‹å§†",
+ }
+ VEB{
+ "VEB",
+ "委内瑞拉åšåˆ©ç“¦",
+ }
+ VUV{
+ "VUV",
+ "瓦努阿图瓦图",
+ }
+ XAF{
+ "XAF",
+ "中éžé‡‘èžåˆä½œæ³•éƒŽ",
+ }
+ XAG{
+ "XAG",
+ "银",
+ }
+ XBB{
+ "XBB",
+ "欧洲货å¸è”盟",
+ }
+ XBC{
+ "XBC",
+ "欧洲计算å•ä½ (XBC)",
+ }
+ XBD{
+ "XBD",
+ "欧洲计算å•ä½ (XBD)",
+ }
+ XFU{
+ "XFU",
+ "法国 UIC 法郎",
+ }
+ XOF{
+ "XOF",
+ "éžæ´²é‡‘èžå…±åŒä½“法郎",
+ }
+ XPD{
+ "XPD",
+ "é’¯",
+ }
+ XPF{
+ "XPF",
+ "太平洋法郎",
+ }
+ XPT{
+ "XPT",
+ "é“‚",
+ }
+ XTS{
+ "XTS",
+ "为测试ä¿ç•™çš„代ç ",
+ }
+ XXX{
+ "XXX",
+ "没有货å¸çš„交易",
+ }
+ YDD{
+ "YDD",
+ "也门第纳尔",
+ }
+ YER{
+ "YER",
+ "也门里亚尔",
+ }
+ YUD{
+ "YUD",
+ "å—斯拉夫硬第纳尔",
+ }
+ YUM{
+ "YUM",
+ "å—斯拉夫åŒå¨ç¬¬çº³å°”",
+ }
+ YUN{
+ "YUN",
+ "å—斯拉夫å¯å…‘æ¢ç¬¬çº³å°”",
+ }
+ ZMK{
+ "ZMK",
+ "赞比亚克瓦查",
+ }
+ ZRN{
+ "ZRN",
+ "新扎伊尔",
+ }
+ ZRZ{
+ "ZRZ",
+ "扎伊尔",
+ }
+ }
+ Languages{
+ ain{"阿伊努文"}
+ ale{"阿留申文"}
+ alt{"å—阿尔泰文"}
+ an{"阿拉贡文"}
+ ang{"å¤è‹±æ–‡"}
+ art{"其他人工语系"}
+ ast{"阿斯图里亚æ€ç‰¹æ–‡"}
+ ath{"阿è¨å¸•æ–¯åŽè¯­ç³»"}
+ bai{"巴米累克语系"}
+ bat{"其他波罗的语系"}
+ ber{"æŸæŸå°”æ–‡"}
+ bo{"è—æ–‡"}
+ cpe{"其他以英文为基础的克里奥尔混åˆè¯­ç³»"}
+ cpf{"其他以法文为基础的克里奥尔混åˆè¯­ç³»"}
+ cpp{"其他以葡è„牙文为基础的克里奥尔混åˆè¯­ç³»"}
+ crp{"其他克里奥尔混åˆè¯­ç³»"}
+ del{"特拉åŽæ–‡"}
+ dgr{"多格里布文"}
+ doi{"多格拉文"}
+ dsb{"下索布文"}
+ ee{"埃维文"}
+ efi{"埃è²å…‹æ–‡"}
+ egy{"å¤åŸƒåŠæ–‡"}
+ eka{"埃克丘克文"}
+ fil{"è²å¾‹å®¾æ–‡"}
+ fiu{"其他芬兰乌戈尔语系"}
+ gd{"è‹æ ¼å…°ç›–尔文"}
+ gem{"其他日尔曼语系"}
+ goh{"å¤é«˜åœ°å¾·æ–‡"}
+ got{"哥特文"}
+ hit{"赫梯文"}
+ ho{"希里莫图文"}
+ ht{"海地文"}
+ ia{"国际文 A"}
+ ie{"国际文 E"}
+ inc{"其他å°åº¦è¯­ç³»"}
+ io{"伊多文"}
+ iro{"伊洛é­è¯­ç³»"}
+ iu{"伊努伊特文"}
+ jbo{"逻辑文"}
+ jpr{"犹太波斯文"}
+ jrb{"犹太阿拉伯文"}
+ khi{"其他科伊桑语系"}
+ kj{"宽亚玛文"}
+ kn{"åŽçº³è¾¾æ–‡"}
+ kos{"科斯拉伊文"}
+ krc{"å¡æ‹‰æ°ä¼Šå·´å°”å¡å°”æ–‡"}
+ lol{"芒戈文"}
+ lv{"拉脱维亚文"}
+ map{"澳斯特罗尼西亚语系"}
+ mis{"å„ç§ä¸åŒè¯­ç³»"}
+ mkh{"其他孟高棉语系"}
+ mno{"马诺åšè¯­ç³»"}
+ mul{"多ç§è¯­ç³»"}
+ mun{"蒙达语系"}
+ mus{"克里克文"}
+ mwl{"米兰德斯文"}
+ mwr{"马尔瓦利文"}
+ myn{"玛雅语系"}
+ nds{"低地德文;低地撒克逊文"}
+ nia{"尼亚斯文"}
+ nic{"其他尼日尔科尔多凡语系"}
+ nub{"努比亚语系"}
+ nwc{"尼瓦尔文 Classical Newari"}
+ ny{"尼扬贾文;é½åˆ‡ç“¦æ–‡ï¼›åˆ‡ç“¦æ–‡"}
+ nyo{"尼约罗文"}
+ nzi{"æ©æµŽé©¬æ–‡"}
+ oc{"奥克西å”æ–‡(1500以åŽ)"}
+ oj{"奥å‰å¸ƒç“¦æ–‡"}
+ om{"奥洛莫文"}
+ os{"奥塞梯文"}
+ osa{"奥è¨æ ¼æ–‡"}
+ pag{"邦阿西楠文"}
+ pap{"帕皮亚门托文"}
+ phn{"腓尼基文"}
+ pi{"巴利文"}
+ pon{"波纳佩文"}
+ pra{"普拉克里特诸语言"}
+ rap{"拉帕努伊文"}
+ rm{"列托ï¼ç½—曼文"}
+ rup{"亚美尼亚语"}
+ sas{"è¨è¨å…‹æ–‡"}
+ sat{"桑塔利文"}
+ scn{"西西里文"}
+ sd{"ä¿¡å¾·æ–‡"}
+ se{"北è¨ç±³æ–‡"}
+ sh{"塞尔维亚-克罗地亚文"}
+ sma{"å—è¨ç±³æ–‡"}
+ smi{"其他è¨ç±³æ–‡"}
+ smj{"Lule è¨ç±³è¯­"}
+ smn{"伊纳里è¨ç±³è¯­"}
+ sms{"斯科特è¨ç±³æ–‡"}
+ sn{"ç»çº³æ–‡"}
+ sog{"å¤ç²Ÿç‰¹æ–‡"}
+ srn{"Sranan Tongo(æºäºŽå…‹é‡Œå¥¥å°”语)"}
+ ss{"斯瓦特文"}
+ ssa{"éžæ´²æ’’哈拉沙漠边缘地带语言"}
+ su{"巽他文"}
+ tai{"傣语诸语言(其他)"}
+ tem{"滕内文"}
+ ter{"特列纳文"}
+ tet{"特塔姆文"}
+ tkl{"托克劳文"}
+ tl{"他加禄文"}
+ tlh{"å…‹æž—è´¡æ–‡"}
+ tmh{"塔马奇克文"}
+ tn{"塞茨瓦纳文"}
+ ts{"宗加文"}
+ tt{"塔塔尔文"}
+ tup{"图皮语系"}
+ tut{"阿尔泰诸语言(其他)"}
+ tw{"特å¨æ–‡"}
+ umb{"ç¿æœ¬æœæ–‡"}
+ wa{"瓦隆文"}
+ wak{"瓦å¡ä»€è¯¸è¯­è¨€"}
+ war{"瓦赖文"}
+ wo{"沃洛夫文"}
+ xal{"å¡å°”梅克文"}
+ xh{"科è¨æ–‡"}
+ ypk{"尤皮克诸语言"}
+ za{"壮语"}
+ }
+ LocaleScript{
+ "Hani",
+ "Bopo",
+ }
+ Scripts{
+ Bali{"巴厘语"}
+ Batk{"巴塔克语"}
+ Blis{"布列斯符å·"}
+ Brah{"婆罗米文字"}
+ Brai{"布莱å¶ç›²æ–‡"}
+ Bugi{"布å‰è¯­"}
+ Cham{"å è¯­"}
+ Cirt{"色斯文"}
+ Cyrs{"西里尔文字(å¤æ•™ä¼šæ–¯æ‹‰å¤«è¯­çš„å˜ä½“)"}
+ Dsrt{"德塞莱特文"}
+ Egyd{"åŽæœŸåŸƒåŠè¯­"}
+ Egyh{"å¤åŸƒåŠåƒ§ä¾£ä¹¦å†™ä½“"}
+ Egyp{"å¤åŸƒåŠè±¡å½¢æ–‡"}
+ Geok{"æ ¼é²å‰äºšè¯­æ–‡å­— (Asomtavruli and Nuskhuri)"}
+ Geor{"æ ¼é²å‰äºšè¯­"}
+ Glag{"格拉哥里语"}
+ Hans{"简体中文"}
+ Hant{"ç¹ä½“中文"}
+ Hmng{"æ¨æ¾å½•è‹—æ–‡"}
+ Hrkt{"片å‡å或平å‡å"}
+ Hung{"å¤åŒˆç‰™åˆ©è¯­"}
+ Inds{"å¤å¸Œè…Šå“ˆæ‹‰æ½˜"}
+ Java{"爪哇语"}
+ Kali{"克耶æŽæ–‡å­—"}
+ Khar{"å¡ç½—é¡»ææ–‡"}
+ Latf{"拉ä¸æ–‡ï¼ˆå“¥ç‰¹å¼å­—体å˜ä½“)"}
+ Latg{"拉ä¸æ–‡ï¼ˆç›–尔语å˜ä½“)"}
+ Lepc{"雷布查语"}
+ Lina{"线形文字 A"}
+ Linb{"线形文字 B"}
+ Mand{"阿拉米语"}
+ Maya{"玛雅圣符文"}
+ Mero{"麦若æå…‹æ–‡"}
+ Nkoo{"N’Ko(西éžä¹¦é¢è¯­è¨€ï¼‰"}
+ Orkh{"鄂尔浑文"}
+ Perm{"å¤å½¼å°”姆诸语"}
+ Phag{"å…«æ€å·´æ–‡"}
+ Phnx{"腓尼基语"}
+ Plrd{"波拉德音标文字"}
+ Qaai{"é—传学术语"}
+ Roro{"朗格朗格文"}
+ Runr{"å¤ä»£åŒ—欧文"}
+ Sara{"沙拉堤文"}
+ Sylo{"Syloti Nagri 书写体"}
+ }
+ Variants{
+ 1901{"传统德语拼字学"}
+ 1996{"1996 年的德语拼字学"}
+ POLYTONI{"多音"}
+ REVISED{"已修订的拼字学"}
+ SAAHO{"è¨éœ"}
+ }
+ Version{"1.35"}
+ calendar{
+ gregorian{
+ fields{
+ day{
+ dn{"æ—¥"}
+ }
+ dayperiod{
+ dn{"上åˆ/下åˆ"}
+ }
+ era{
+ dn{"时期"}
+ }
+ hour{
+ dn{"å°æ—¶"}
+ }
+ minute{
+ dn{"分钟"}
+ }
+ month{
+ dn{"月"}
+ }
+ second{
+ dn{"秒钟"}
+ }
+ week{
+ dn{"周"}
+ }
+ weekday{
+ dn{"周天"}
+ }
+ year{
+ dn{"å¹´"}
+ }
+ zone{
+ dn{"区域"}
+ }
+ }
+ }
+ }
+ zoneStrings{
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"格林尼治å¤ä»¤æ—¶é—´"}
+ ls{"格林尼治标准时间"}
+ sd{"GDT"}
+ ss{"格林尼治标准时间"}
+ }
+ "America:Adak"{
+ ec{"艾德克"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"中部å¤ä»¤æ—¶é—´"}
+ ls{"中部标准时间"}
+ }
+ "America:Coral_Harbour"{
+ ec{"çŠç‘šæ¸¯"}
+ }
+ "America:Danmarkshavn"{
+ ec{"Danmarkshavn(格陵兰东北城市)"}
+ }
+ "America:Eirunepe"{
+ ec{"ä¾ä¼¦å°¼è´"}
+ }
+ "America:Godthab"{
+ ec{"戈特éœå¸ƒ"}
+ }
+ "America:Indiana:Petersburg"{
+ ec{"彼得斯堡"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"维维市(å°ç¬¬å®‰çº³å·žï¼‰"}
+ }
+ "America:Indiana:Vincennes"{
+ ec{"温森斯"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"东部å¤ä»¤æ—¶é—´"}
+ sd{"EDT"}
+ ss{"东部标准时间"}
+ }
+ "America:Iqaluit"{
+ ec{"伊é­é²ä¼Šç‰¹"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ sd{"太平洋å¤ä»¤æ—¶é—´"}
+ ss{"太平洋标准时间"}
+ }
+ "America:Louisville"{
+ ec{"路易斯维尔"}
+ }
+ "America:Moncton"{
+ ec{"蒙克顿"}
+ }
+ "America:Nome"{
+ ec{"诺姆"}
+ }
+ "America:Noronha"{
+ ec{"洛(诺)罗尼亚"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"北达科他"}
+ }
+ "America:Pangnirtung"{
+ ec{"潘尼尔东"}
+ }
+ "America:Rainy_River"{
+ ec{"雨河"}
+ }
+ "Antarctica:Casey"{
+ ec{"å¡å¡ž"}
+ }
+ "Australia:Currie"{
+ ec{"库利"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hans_CN.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hans_CN.txt
index 6d722ef4114..7e77d5aa455 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hans_CN.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hans_CN.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hans_CN.xml
+// * Source File:<path>/common/main/zh_Hans_CN.xml
// *
// ***************************************************************************
zh_Hans_CN{
@@ -13,9 +13,13 @@ zh_Hans_CN{
"#,##0%",
"#E0",
}
- Version{"1.16"}
+ Version{"1.27"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"ahh'时'mm'分'ss'秒' z",
"ahh'时'mm'分'ss'秒'",
@@ -29,4 +33,45 @@ zh_Hans_CN{
}
}
}
+ zoneStrings{
+ "Asia:Kamchatka"{
+ ec{"堪察加"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"诺沃西比尔斯克"}
+ }
+ "Asia:Oral"{
+ ec{"乌拉尔"}
+ }
+ "Asia:Sakhalin"{
+ ec{"è¨å“ˆæž—"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"中国å¤ä»¤æ—¶é—´"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"日本å¤ä»¤æ—¶é—´"}
+ }
+ "Atlantic:Canary"{
+ ec{"加那利"}
+ }
+ "Atlantic:Madeira"{
+ ec{"马德拉"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"å¤å¨å¤·å¤ä»¤æ—¶é—´"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"基里巴斯(圣诞岛)"}
+ }
+ "Pacific:Kosrae"{
+ ec{"库赛埃"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"夸贾林"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hans_SG.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hans_SG.txt
index a0f69fdc80b..014b5a77978 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hans_SG.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hans_SG.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hans_SG.xml
+// * Source File:<path>/common/main/zh_Hans_SG.xml
// *
// ***************************************************************************
zh_Hans_SG{
@@ -12,7 +12,6 @@ zh_Hans_SG{
CZ{"æ·å…‹"}
ID{"å°å°¼"}
KR{"å—韩"}
- MK{"马其顿"}
NZ{"纽西兰"}
SA{"沙地阿拉伯"}
}
@@ -26,9 +25,13 @@ zh_Hans_SG{
"#,##0%",
"#E0",
}
- Version{"1.17"}
+ Version{"1.32"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"a hh:mm:ss",
"a hh:mm:ss",
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hant.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hant.txt
index d05ed6865a3..304a2d48373 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hant.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hant.txt
@@ -1,16 +1,32 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hant.xml
+// * Source File:<path>/common/main/zh_Hant.xml
// *
// ***************************************************************************
/**
- * ICU <specials> source: ./xml/main/zh_Hant.xml
+ * ICU <specials> source: <path>/xml/main/zh_Hant.xml
*/
zh_Hant{
Countries{
+ 014{"æ±éž"}
+ 030{"æ±äºž"}
+ 035{"æ±å—亞"}
+ 039{"å—æ­"}
+ 053{"澳洲與ç´è¥¿è˜­"}
+ 054{"美拉尼西亞"}
+ 057{"密克羅尼西亞"}
+ 061{"玻里尼西亞"}
+ 142{"亞洲"}
+ 145{"西亞"}
+ 150{"æ­æ´²"}
+ 151{"æ±æ­"}
+ 154{"北æ­"}
+ 155{"西æ­"}
+ 830{"海峽群島"}
+ 833{"曼島"}
AD{"安é“爾"}
AE{"阿拉伯è¯åˆå¤§å…¬åœ‹"}
AG{"安地å¡åŠå·´å¸ƒé”"}
@@ -23,6 +39,7 @@ zh_Hant{
AT{"奧地利"}
AU{"澳洲"}
AW{"阿路巴"}
+ AX{"亞蘭群島"}
AZ{"亞塞拜然"}
BA{"波士尼亞與赫塞格維ç´"}
BB{"å·´è²å¤š"}
@@ -50,6 +67,7 @@ zh_Hant{
CN{"中è¯äººæ°‘共和國"}
CO{"哥倫比亞"}
CR{"哥斯大黎加"}
+ CS{"塞爾維亞和蒙特尼哥羅"}
CV{"維德角"}
CX{"è–誕島"}
CY{"賽普勒斯"}
@@ -159,6 +177,7 @@ zh_Hant{
PS{"å·´å‹’æ–¯å¦"}
PW{"帛ç‰"}
QA{"å¡é”"}
+ QO{"大洋洲邊疆群島"}
RE{"留尼旺"}
RO{"羅馬尼亞"}
RU{"ä¿„ç¾…æ–¯"}
@@ -372,7 +391,7 @@ zh_Hant{
}
BUK{
"BUK",
- "緬甸元",
+ "緬甸元 BUK",
}
BWP{
"BWP",
@@ -1056,7 +1075,7 @@ zh_Hant{
}
XBB{
"XBB",
- "æ­æ´²è²¨å¹£å–®ä½",
+ "æ­æ´²è²¨å¹£å–®ä½ XBB",
}
XBC{
"XBC",
@@ -1076,7 +1095,7 @@ zh_Hant{
}
XEU{
"XEU",
- "æ­æ´²è²¨å¹£å–®ä½",
+ "æ­æ´²è²¨å¹£å–®ä½ XEU",
}
XFO{
"XFO",
@@ -1140,35 +1159,62 @@ zh_Hant{
}
}
ExemplarCharacters{
- "[一-ä¸ä¸ƒä¸ˆ-ä¸ä¸”世丙丟並中串丸-丹主乃久么之乎-ä¹ä¹–乘-ä¹™ä¹ä¹Ÿä¹¾äº‚了予事-二于云-互五-井些亞亡交亦亨享-京亮人什-ä»ä»‡ä»Š-介ä»ä»”他付-仙代-以仰仲件"
- "任份ä¼ä¼Šä¼ä¼‘伙伯-估伴伸似但佈ä½-ä½ä½”-何余佛-作你佩佳使來例供ä¾ä¾¯ä¾µä¾¿ä¿‚-促俊俗ä¿ä¿ -信修俱個å€å€‘-倒候-倚借倫值å‡å‰ååšåœå¥å´-å·å‚‘備傢傲-傳傷傻傾"
- "僅åƒåƒ‘價儀億儒儘優å…å…ƒ-å……å…‡-光克å…兒兔入內-å…©å…«-兮共兵-典兼冊å†å†’冠冬冰冷准凌å‡å‡¡å‡°-凱出函刀分-切刊列åˆåˆ¤-別利-刪到制-刷刺-刻則å‰å‰›å‰©-剪副割"
- "創劃劇劉åŠåŠ›åŠŸ-加助-劫å‹å‹‡å‹‰å‹’å‹•å‹™å‹-勞勢勤勵勸勿包化-北å€-ååƒå‡-åˆåŠå’å”å—åšå¡å°-å±å³å·å»åŽšåŽŸåŽ­åŽ²åŽ»åƒåˆåŠ-å‹åå”å–-å—å£-å¦å«-å­å¯-å°å²-å³"
- "å¸åƒ-å„åˆ-åŠåŒ-åŽå-å‘å›ååŸå¦-å§å«å³åµå¸-å¹å¾å‘€å‘‚呆告呢周味呵呼-命和咖咦-咧咪咬咱哀-å“哇-哉哎員哥-哦哩-哪哭哲唉å”唬售-唯唱唷-唸商啊å•å•Ÿå•¡"
- "å•¥-啦啪喂善喇喊喔喜-å–喬單喵嗎嗚嗨嗯嘆嘉嘗嘛嘴嘻嘿器噴嚇嚴囉四回因困固圈國åœåœ’-圓圖團土在地圾å€å‡åå¡å¤å¦åªåžƒåž‹åŸŽåŸŸåŸ·åŸ¹-基堂堅-堆堪報場塊塔塗塞填塵"
- "境增墨墮å£å£“壘壞壢士壯壽å¤å¤•-外多夜夠夢夥大天-夫央失夾奇-奉å¥å¥‘奔套奧奪奮女奶她好如妙妥妨妮妳妹妻姆姊-始å§-姑姓-委姿å¨å¨ƒå¨˜å©†å©šå©¦åª’媽嫌å­å­”å­—-å­˜å­"
- "å­Ÿå­£-孤孩孫學它宇-安宋-完å®å®—-定宜客-室宮害家容宿寂寄密富寒寞-察寢實-寧審寫-寬寶å°å°„å°‡-專尊-å°‹å°-å°å°‘尖尚尤就尺尼尾局-å±å±…-屆屋å±å±•å± å±¤å±¬å±±"
- "岸峰島崇åµå¶ºå·-å·žå·¡å·¥-巨巫差己-已巴巷市-布希å¸å¸¥å¸«å¸­å¸³å¸¶å¸¸å¸½å¹…幕幣幫干-年幸-幹幻-幾床åºåº•åº—府度-座庫庭康-庸廉廖廠廢-廣廳延-廷建弄å¼å¼•å¼˜å¼Ÿå¼¦å¼±"
- "張強彈彌彎形彥彩彬-å½­å½°-影役彼往-å¾å¾…很律-後å¾-徒得從復微徵德徹心必忌-å¿å¿—-忙忠快念忽怎怒怕-怖æ€æ€¡æ€¥æ€§-怨怪æ†ææ¢æ¥æ¨-æ©æ­æ¯-æ°æ‚…悉悔悟-悠您"
- "悲悶情惑惜惠-惡惱想惹æ„愈-愉æ„æ„š-愛感慈態慕慘慢-慣慧慮慰慶慾憂æ†-憑憲憶憾懂應懶-懷懼戀æˆ-戒或截戰戲戴戶房-æ‰æ‰‡æ‰‹æ‰æ‰“托扣扭扯批找-技抄把抓投抗-"
- "折披-抬抱抵抹抽拆拉拋æ‹æ‹’拔拖招-拜括拳拼拾-æ‹¿æŒæŒ‡æŒ‰æŒ‘挖振挺ææ•æ¨æ²æ·æŽƒæŽˆ-掉掌排掛採-探接控-推措æ-ææ’æš-æ›æ¡æ®æ´ææ–æžæ¬-æ­æ¶æ‘˜æ‘©æ‘¸æ’撞撥播撿"
- "æ“擇擊-æ“‹æ“-擎擔據擠擦擬擴擺擾æ”支收改攻放-政故效æ•æ•‘æ•—æ•™æ•æ•¢-散敦敬整-敵數文斗料斯-新斷方於-æ–½æ—æ—…æ—‹æ—旗既日-旦早旭昇昌明-æ˜æ˜“星-映春昨昭是時"
- "晚晨普-景晴晶智暑暖-暗暫暴曉曰曲更書曼曾-最會月-有朋æœæœ—望æœæœŸæœ¨æœª-本朱朵æŽæ-æ‘æœæŸæ¯æ±æ¾-æ¿æžæž—æžœ-æžæž¶æŸ-æŸæŸ“-柔查柳校核-根格桃案桌桑æ¢æ¢…æ¢"
- "梯-械棄棋棒棚森椅æ¤æ¤°æ¥Šæ¥“楚業極概榜榮構æ§æ¨‚樓標樞模樣樹橋機橫檔檢欄權次欣欲欺欽-款歉歌æ­æ­¡-武歲歷-歸死殊殘段殺殼毀毅æ¯æ¯æ¯’比毛毫æ°æ°‘氣水永求æ±æ±Ÿ-污"
- "汪決汽沈-沉沒沖沙河油治沿æ³æ³‰æ³•æ³¡-波泥注泰泳洋洗洛洞洩-洪洲活洽-æ´¾æµæµ©-浪浮海消-涉涯液涵涼淑淚淡淨深混淺清減渡測港游湖湯æºæº–æºæºª-溫滄-滅滋滑滴滾"
- "-滿漂æ¼æ¼”漠漢漫漲漸潔潛潮澤澳激濃濟濤濫çŒç£ç«ç°ç½ç‚Žç‚®ç‚¸ç‚ºçƒˆçƒçƒ¤ç„¡ç„¦ç„¶ç…™ç…žç…§ç…©ç†Šç†Ÿç†±ç‡ƒç‡ˆç‡’營爆çˆçˆ›çˆ¬-爭爵-父爸爺爽-爾牆-版牌牙牛牠牧物牲特牽犧犯狀狂"
- "ç‹ç‹—狠狼猛-猜猶ç„-ç…çŽç¨ç²ç¸ç»çŽ„率玉王玩玫玲çç ç­ç¾çƒç†çªç´ç‘œç‘žç‘ªç‘°ç’°ç“œç“¦ç“¶ç”˜ç”šç”œç”Ÿç”¢ç”¨ç”°-申男界留畢略番-畫異當ç–疑疼病痕痛痴瘋療癡登-百的皆-皇皮"
- "盃益盛-盜盟盡監-盤目直相盼盾çœçœ‰çœ‹çœŸ-眠眼眾ç›ç¡ç£çž§çž­çŸ›çŸ£çŸ¥çŸ­çŸ³ç ‚ç ç ”砲破硬碎碗碟碧碩碰確碼ç£ç£¨ç¤Žç¤™ç¤ºç¤¾ç¥–ç¥-神祥票ç¦ç¦ç¦ç¦ªç¦®ç§€-ç§ç§‹ç§‘-秒秘租秤秦移"
- "稅程ç¨ç¨®ç¨±ç¨¿ç©Œ-ç©ç©©ç©¶ç©¹-空穿çªçª—窩窮立站竟-章童端競竹笑笛符笨第筆等筋答策算管箭箱節範篇築簡簽籃籌-ç±ç±³ç²‰ç²—精糊糕糟系紀約-ç´…ç´ç´”ç´™-紛素索紫累-ç´°ç´¹"
- "終組çµçµ•çµ¡çµ¦çµ±-絲經綜綠維綱-網緊緒線緣編-緩練縣縮縱總-績ç¹ç¹”繞繪繳繼續缸缺罪置罰署罵罷羅羊美羞群義羽ç¿ç¿’翔翹翻-翼耀-è€è€ƒè€…而-è€è€è€—耳耶èŠè–èšèžè¯"
- "-è°è²è·è½è‚‰è‚šè‚¡è‚¥è‚©è‚¯è‚²èƒŒèƒŽèƒ–胞胡胸能脆脫腦腰腳腿膽臉臥臨自臭至-致臺與-舊èˆèˆ’舞-舟航般船艦良色艾芬花芳若-苦英茫茶è‰è’è·èŽ‰-莊莎莫èœè©è¯è²èŠè¬è½è‘‰è‘—"
- "葛蒙蒼蓋蓮蔡蔣蕭薄薦薩-薪藉è—è—è—è—¤-藥蘇蘭虎處虛號虧蛋蛙蜂蜜è¶èžèž¢èŸ²èŸ¹è è »è¡€è¡Œè¡“è¡—è¡›è¡è¡¡è¡£è¡¨è¢‹è¢«è£-裂裕補-è£è£¡è£½è¤‡è¤²è¥¿è¦è¦†è¦‹è¦è¦–親覺覽觀角解觸言訂計"
- "訊討訓託-記訪設許訴註-証評詞詢試詩話-詳誇誌-èªèª“誕語誠誤說誰課誼調談請諒論諸諾謀謂講è¬è­‰è­˜è­œè­¦è­¯-議護譽讀變讓讚谷豆豈è±è±¡è±ªè±¬è²Œè²“è²-貞負-貢貨貪-"
- "責貴買費-貼賀資賓賜賞賢-賤賦質賭賴賺購-賽贈贊è´èµ¤èµ°èµ·è¶…越趕趙趣趨足跌跑è·è·Ÿè·¡è·¯è·³è¸è¸¢è¹Ÿè¹¤èºèº«èº²è»Šè»Œ-è»è»’軟較載輔-輕輛è¼è¼©-輪輯輸轉轟辛辦辨辭辯辱-"
- "農迅迎近迪-迫述迴迷追退-é€é€ƒé€†é€-é€é€”這-逛é€é€Ÿ-造逢-連週-進逸逼é‡éŠ-é‹é-éŽé“-é•é™éœé é©é­é²é·-é¸éºé¿-é‚é‚„é‚Šé‚那邦邪邱郎部郭郵都鄉鄭鄰é…é…’é…·"
- "-酸醉醒醜醫采釋-é‡é‡‘é‡é‡£éˆ´éŠ€éŠ˜éŠ³éŠ·é‹’鋼錄錢錦錯é‹éµé¾éŽ–鎮é¡é˜éµé‘‘長門閃閉開閒-間閣閱闆闊關闡防阻阿-陀附é™é™é™¢-除陪陰陳陵陷-陸陽隆隊階隔際-障隨險隱"
- "隻雄-集雖雙雜雞離-難雨雪雲零-雷電需震霧露霸-霹é‚éˆé’é–éœéžé é¢é©éž‹éŸ“音韻響é -é ‚é …-順須é -é ‘é “é —-領頭頻顆題-é¡é¡é¡˜é¡žé¡§é¡¯é¢¨é£„飛食飯飲飽-飾餅養é¤"
- "餘館首香馬é§é§•é§›é¨Žé¨™é¨·é©…驗驚骨體高髮鬆鬥鬧鬱鬼魂魅魔魚魯鮮鳥鳳-é³´é´»éµé·¹é¹¿éº—麥麵麻-麼黃黎黑默點黨鼓鼠鼻齊-齋齒齡é¾é¾œ]"
+ "[一 ä¹™ ä¸ ä¸ƒ 乃 ä¹ äº† 二 人 å…¥ å…« 刀 力 å åˆ ä¸‰ 下 丈 上 丸 凡 ä¹… 么 也 于 亡 åƒ å£ åœŸ 士 夕 大 女 å­ å° å±± å· å·¥"
+ " å·± å·² å¹² æ‰ ä¸Œ ä¸ ä¸­ 丹 之 予 云 井 互 五 ä» ä»€ 仇 ä» ä»Š 介 å…ƒ å… å…§ å…­ å…® å…¬ 分 切 å‹¿ 化 匹 åˆ å‡ åŽ„ å‹ åŠ å 天"
+ " 夫 太 å­” å°‘ å°¤ å°º å·´ å¹» 引 心 戈 戶 手 扎 支 æ–‡ æ–— æ–¹ æ—¥ æ›° 月 木 æ­¢ 比 毛 æ° æ°´ ç« çˆª 父 片 牙 牛 王 丙 世 且 丘"
+ " 主 ä¹ ä¹Ž 以 付 ä»” ä»– 代 令 ä»™ å…… å…„ 冊 冬 出 刊 加 功 包 北 åŠ å¡ åŽ» å¯ å¤ å³ å¬ å¸ å« å¦ å² å° å¥ å­ å›› 外 央 失"
+ " 奴 奶 它 å°¼ å·¨ å·§ å·¦ 市 布 å¹³ å¹¼ 弘 å¼— å¿… 打 æ—¦ 本 未 末 札 æ­£ æ¯ æ°‘ æ°¸ 犯 玄 玉 ç“œ 瓦 甘 生 用 ç”°-申 白 çš® ç›® 矛"
+ " 石 示 ç«‹ 丟 交 亦 ä¼™ 伊 ä¼ ä¼ ä¼‘ 仲 件 ä»» ä»° 份 ä¼ å…‰ å…‡ å…ˆ å…¨ å…± å† å†° 列 匈 å° å± å‰ åŒ åŠ å å„ å‘ å åˆ åƒ åŽ"
+ " å›  回 地 在 圭 多 夷 夸 好 她 如 å­— å­˜ 宇 守 å®… 安 å°– å·ž å¹´ å¼ å¿™ æˆ æ‰£ 托 收 æ—© æ—­ 曲 有 朱 朵 次 æ­¤ æ­» æ± æ±— 江"
+ "-污 ç° ç™¾ 竹 ç±³ 羊 ç¾½ è€ è€ƒ 而 耳 肉 臣 自 至 舌 舟 色 艾 è¡€ è¡Œ è¡£ 西 扥 串 亨 ä½ ä½ ä¼´ ä½› 何 ä¼° ä¼½ 伸 ä½” ä¼¼ 但 作"
+ " ä½  伯 低 ä½™ 佈 å…‹ å… å…µ 冷 別 判 利 刪 劫 助 努 å³ å åž å¾ å¦ å§ å‘† å³ å‘‚ å› å‘Š å¹ å¸ åµ å‘€ å« åŸ å›° å€ å‡ åŽ åœ¾"
+ " å 壯 夾 妨 妙 妥 å­ å®Œ 宋 å® å±€ å± å°¾ å·« 希 åº åºŠ å»· 弄 弟 å½¢ å½¹ 忘 å¿Œ å¿— å¿ å¿« 戒 我 抄 抗 技 扭 把 找 批 扯 折"
+ " 投 抓 改 æ”» æ›´ æŸ æŽ æ æ‘ æœ æ‰ æ­¥ æ¯ æ±‚ æ²™ 沈 沉 汪 決 æ²– æ²’ æ±½ 沃 汶 ç½ ç‰  ç‹‚ ç”· 甸 矣 ç§ ç§€ 究 ç³» 罕 è‚š 育 良"
+ " 見 角 言 è°· 豆 è² èµ¤ èµ° 足 身 車 è¾› è¿… å·¡ 邪 邦 é‚£ 里 防 並 ä¹– 事 些 亞 享 京 ä¾ ä½³ 使 ä¾› 例 來 佩 å…” å…’ å…© å…· å…¶"
+ " å…¸ 函 刻 刷 刺 到 制 å’ å” å“ å· å– å” å— å‘³ 呵 å’– 呼 å’Œ å‘¢ 周 命 固 垃 åª å¡ å¦ å¤ å¤œ 奉 奇 奈 奔 妻 委 妹 妮 姑"
+ " 姆 å§ å§‹ 姓 姊 妳 å­Ÿ å­¤ å­£ å®— 定 官 宜 å®™ å®› å°š å±… 屆 岡 岸 岩 帕 帛 幸 店 府 底 延 弦 å¾€ å¾ å½¼ å¿  忽 念 怖 怪 怕"
+ " 怡 性 或 房 所 承 拉 抹 æ‹’ æ‹› 披 æ‹” æ‹‹ 抽 æ‹ æŠµ 抱 æ‹– 拆 抬 放 æ–¼ æ—º 易 昌 昆 昂 明 æ˜ æ˜‡ æœ æœ‹ æ± æžœ æž æž— æ¯ æ°"
+ " æ¿ æ¾ æž æ¬£ æ­¦ 注 æ³³ æ³¥ æ²³ æ³¢ 法 æ²¹ æ³ æ²¿ æ²» 泡 泊 ç‚Ž 爬 爭 爸 版 牧 物 ç‹€ ç‹— ç‹ çŽ© 玫 çš„ 盲 ç›´ 知 社 空 穹 ç³¾ 者"
+ " è‚¥ è‚¡ è‚© 肯 臥 èˆ èŠ³ èŠ èŠ± 芬 虎 åˆ è¡¨ è¿Ž è¿‘ 邱 采 金 é•· é–€ 陀 阿 阻 附 雨 é’ éž äº® ä¿¡ ä¾µ 侯 便 ä¿  ä¿ ä¿ƒ ä¿Š ä¿— ä¿„"
+ " ä¿‚ 冒 冠 å‰ å‰‡ 勇 勉 å‹ å— å» åŽš å’¬ å“€ å“Ž 哉 å’¦ 哇 å’ª å“ å“ˆ å’± å’§ åž‚ åž‹ 城 契 å¥ å¥Ž 姿 娃 å¨ å­© 宣 室 客 å° å± å±‹"
+ " å·· å¸ å¸¥ å¹½ 度 建 å½¥ 很 å¾… 律 後 怒 æ€ æ€¥ 怎 怨 æ° æ¨ æ¢ æ† æ‰ æ‹œ 挖 按 拼 æŒ æŒ‡ 括 拾 挑 政 æ•… æ–½ æ—¢ 春 昭 映 是"
+ " 星 昨 染 柔 æŸ æŸ¬ 架 查 æŸ æŸ³ 段 毒 泉 æ´‹ æ´² æ´ª æµ æ´ž æ´— æ´» æ´½ æ´¾ æ´› æ´© 為 炸 ç‚® 牲 ç‹  çŠ çŽ» 玲 ç 甚 ç•Œ 皆 皇 盃"
+ " çœ ç›¸ 眉 看 盾 盼 ç ‚ ç ” ç  ç§‘ 秒 秋 ç©¿ çª ç´… ç´€ ç´„ 缸 美 è€ è€ è€¶ 胖 背 胡 胎 胞 致 茅 苦 è‹¥ 英 è¦ è¨ˆ 訂 貞 è²  è»"
+ " 軌 è¿° 迦 迪 è¿« 郎 é‡ é™ é™ é¢ é© éŸ‹ 音 é  é¢¨ 飛 食 首 香 厘 乘 å€ å€¼ 借 倚 倒 們 俱 個 候 ä¿® 俾 倫 å…¼ 凌 准 剛 原"
+ " å” å”· å“¥ 哲 å“© å“­ å“¡ 唉 哪 哦 埔 埃 å¤ å¥— 娘 å­« 害 家 å®® 容 å°„ 展 å³½ å³° 島 å·® 席 師 庫 庭 座 å¼± å¾’ 徑 å¾ æ¥ æ æ­"
+ " æ© æ¯ æ‚Ÿ æ‚” æ‚… 扇 拳 æ‹¿ 振 æ• æŒº æ 挪 效 æ–™ æ— æ—… 時 晉 æ™’ 書 朗 æ ¡ æ ¸ 案 æ ¹ æ¡Œ æ¡‘ 柴 æ ¼ 桃 殊 æ°£ æ³° 浪 消 涇 浦"
+ " æµ· 涉 æµ® 浩 烤 烈 çƒ ç‰¹ 狼 ç­ ç‰ ç  ç•™ ç—… ç–¼ 益 真 眠 ç ´ ç ² 祕 祖 神 ç¥ ç§¤ 租 秦 秘 ç«™ 笑 粉 ç´  ç´¢ ç´” ç´ ç´š ç´ ç´™"
+ " ç´› 缺 ç¿ è€— 脆 胸 能 臭 航 般 茫 è’ è‰ èŒ² 茶 記 討 訊 託 訓 豈 財 è²¢ èµ· è»’ è¾± é€ é€† è¿· 退 è¿´ 逃 追 é…’ é… é‡ é–ƒ 院"
+ "-除 éš» 馬 骨 高 鬥 鬼 ä¹¾ åœ å‡ åš å‰ å¥ å¶ åµ å´ å· å 凰 剪 副 å‹’ å‹™ å‹• å€ åƒ æ›¼ 商 啪 啦 å•¡ å•Š å”± å• å”¯ 唸 å”® 唬"
+ " 圈 國 域 å … å † 基 å ‚ 執 培 夠 å© å©¦ å©š 婆 寄 寂 宿 密 å°ˆ å°‡ å±  å´‡ å´™ 常 帶 帳 康 庸 å¼µ å¼· 彬 彩 å¾— 從 悉 æ‚  您 情"
+ " 惜 控 æ² æŽ¢ 接 æ· æŽª 掉 掃 掛 推 授 採 排 æ¨ æ• æ•‘ æ•™ æ•— å•Ÿ æ• æ•˜ æ— æ—‹ 晚 晨 望 æ¢ æ¢¯ 梵 械 棄 梅 æ¢ æ¢¨ 欲 殺 毫"
+ " 涼 液 æ·¡ æ·º 清 涯 æ·‘ æ·· 涵 æ·š æ·± æ·¨ 爽 牽 猜 猛 率 çƒ ç† ç¾ ç“¶ 甜 產 ç•¥ ç•¢ ç•° ç– ç—• ç›› 眾 眼 祥 票 移 笨 笛 第 符"
+ " ç²— çµ± ç´¹ ç´° 組 ç´¯ 終 羞 ç¿’ èŠ è„« 船 莎 莫 莊 莉 è· è™• 蛋 è¡“ 被 袋 è¦ è¨ª 許 設 責 貫 貨 貪 軟 這 通 連 速 é€ é€ é€ "
+ " é€ é€¢ 逛 途 部 郭 都 野 釣 é–‰ 陪 陵 陳 陸 é™° 陶 é™· 雪 ç«  ç«Ÿ é ‚ é­š é³¥ 鹿 麥 麻 å•¥ å‚¢ å‚™ å‚‘ 最 凱 割 創 剩 å‹ž å‹ åš"
+ " å–€ å–Š å– å–‚ å–œ å–” å–‡ å–® å–¬ åœ å ª å ´ å ± å ¡ 媒 寒 富 å°Š å°‹ å°± åµ å´´ å¹… 帽 å¹¾ å½­ 復 惑 惡 悲 悶 惠 惱 愉 掌 æ æ’ æ"
+ " æ¡ æ® æ´ æ› æš æ•¦ æ•¢ æ•£ æ– æ–¯ æ™® æ™´ 晶 景 æš‘ 智 曾 替 期 æœ æ¤… 森 棒 棋 æ¤ æ£‰ 棚 款 欺 欽 殘 殼 港 游 渡 減 æ¹– 湯"
+ " 測 滋 焦 ç„¡ 然 牌 猶 çª ç´ ç•« 番 ç—› ç™» 發 盜 短 硬 ç¨ ç¨‹ 稅 窗 ç«¥ ç­‰ ç­– ç­† ç­” ç­‹ çµ çµ• ç´« çµ² 絡 給 å–„ ç¿” è…” è…“ 舒"
+ " è© è¯ è‘— èŠ è² è„ èœ è™› è›™ è¡— è£ è£‚ 視 註 è©• è©ž 証 訴 象 è²¼ è²» è³€ è²´ è²· 越 超 è·Ž è· è·‘ è·Œ 週 逸 進 é„‚ 郵 鄉 é‡ é–‹"
+ " 間 閒 隊 階 陽 隆 雅 雄 集 雲 項 順 須 飯 飲 黃 黑 喵 亂 傲 傳 僅 傾 傷 傻 勤 勢 嗨 嗎 嗯 嗚 園 圓 塞 塗 塔 填 塊"
+ " 奧 å«Œ 媽 å¹¹ 廉 å¾® æ„š æ„ æ…ˆ æ„Ÿ 想 æ„› 惹 æ„ æ„ˆ æž æ­ æ¬ æ æ¶ æ– æ•¬ æ–° æš— æš– 會 業 楚 極 椰 概 楊 楓 æ­² 毀 æº æº æ»…"
+ " 溫 滑 準 滄 溪 ç…™ ç…© ç…§ ç…ž 爺 ç… ç‘Ÿ ç‘ž ç‘™ ç‘œ 當 ç—´ 盟 ç› ç£ ç¢Ž 碰 碗 ç¦ è¬ ç¯€ 經 ç½® 罪 ç½² 義 群 è– è…° è…³ è…¦ è’‚ è½"
+ " 葉 è‘› è‘¡ 號 蜂 補 è£ è£¡ 裕 解 該 詳 試 è©© 誇 誠 話 è©¢ 資 賈 è·¡ è·Ÿ è·¯ è·³ 躲 較 載 è¾² é‹ éŠ é“ é” é€¼ é• é‡ éŽ é 鈴"
+ " éš” é›· é›» 零 é– é  é ‘ é “ 飽 飾 鼓 é¼  僧 åƒ åƒ‘ 劃 厭 嘛 嘗 嘆 嘉 團 圖 塵 境 壽 夥 夢 奪 å«© 寞 寧 實 寨 寢 察 å° å¹£"
+ " 幕 å»– å½° å¾¹ æ…‹ æ…¢ æ…£ æ…˜ 截 摘 摸 æ—— 榜 榮 構 æ§ æ­‰ æ­Œ æ¼” 滾 æ»´ æ¼  æ¼ æ¼‚ æ¼¢ 滿 漸 æ¼² 漫 熊 爾 ç„ ç‘¤ 瑪 ç‘° ç–‘ 瘋 盡"
+ " 監 ç¡ ç£ ç¢Ÿ 碧 碩 ç¦ ç¦ ç¨® 稱 窩 端 管 ç®— ç²¾ 綜 綠 ç·Š 網 綱 維 ç·’ ç½° èž èš è…¿ 臺 與 舞 è’™ è’² è“‹ è’¼ 蜜 製 誌 語 èª"
+ " 誓 誤 說 豪 貌 賓 赫 趙 趕 è¼” 輕 é  éœ é™ é…¸ é…· 銀 銘 銖 é–£ éšœ éš› 需 é¼ é — é ˜ 餅 é­ é­‚ é³´ é³³ 麼 é¼» 齊 å„„ å„€ 價 劇"
+ " 劉 åŠ åŽ² 嘻 嘿 嘴 å™´ 增 墮 寮 寬 審 寫 層 廢 廣 å»  彈 å½± å¾· å¾µ æ…¶ æ…§ æ…® æ…• 憂 æ…° æ…¾ æ† æ‘© æ’ž æ’ æ’¥ æ’’ æ’­ 敵 數 æš«"
+ " æš´ 樣 樞 標 模 樓 樂 æ­ æ¯… æ½” æ½› æ½® 潘 熟 熱 çŽ ç›¤ 確 碼 稿 窮 ç®­ ç®± 範 篇 糊 ç·´ ç·¯ ç·¬ ç·¨ ç·£ ç·š ç·© ç½µ ç½· è“® 蔣 蔡"
+ " è¶ è¡› è¡ è¤‡ 誼 è«’ 談 誕 è«‹ 諸 課 調 誰 è«– 豬 賞 賦 賤 è³­ è³¢ è³£ 賜 質 趣 踢 è¸ è¼ è¼› 輩 輪 é© é® é­ é· é„° é„­ 醉 銷"
+ " 銳 é‹’ é–± 震 é  éž‹ 養 餘 é§ é§› 駕 é«® 鬧 é­… é­¯ 黎 墨 é½’ æ’£ 蔕 å„’ 儘 å‡ å™¨ å£ å¥® å­¸ å°Ž 彊 憲 憑 憶 憾 戰 æ“ æ“‹ æ“š 擇"
+ " æ“ æ’¿ æ“” æ’¾ æ•´ 曆 曉 æ©« 樹 æ©‹ æ©Ÿ æ­· 濃 澤 æ¾³ æ¿€ 燒 燈 燃 ç¨ ç›§ 磨 ç© ç©† ç©Œ 築 糕 縣 ç¿° 興 è•­ 螢 èž è¡¡ 褲 親 諺 謀"
+ " 諾 謂 貓 è³´ 輯 輸 辨 辦 é¸ é² éº é†’ 錯 錢 鋼 錫 錄 錦 隨 險 éœ éœ é » é ­ é¤ é¤¨ 默 é¾ é¾œ 圜 優 勵 嚇 壓 嶺 幫 彌 應"
+ " 懂 戲 戴 æ“Ž æ“Š æ“  擦 擬 檀 檔 檢 濱 æ¿Ÿ 濤 æ¿« 營 爵 牆 ç² ç’° 療 瞧 çž­ 磯 禪 糟 縮 績 總 縱 ç¹ ç¿¼ è² è° è¯ è†½ 臉 臨"
+ " 舉 è–ª è–„ 虧 講 è¬ è³º è³½ è³¼ 趨 é¿ é‚„ é‚ é‚€ 醜 éµ é‹ é¾ é—Š é—† éš± é›– 韓 顆 é®® é´» 點 齋 壘 æ“´ 擾 擺 æ–· æ­¸ 礎 禮 ç°« ç°¡"
+ " ç¹” 繞 翹 ç¿» è· èˆŠ è— è–© è— è—‰ è–¦ 蟲 覆 è± è¹¤ 蹟 轉 醫 鎊 鎖 鎮 é— é›¢ 雜 é›™ 雞 é¡ é¡ é¡Œ 騎 鬆 éµ å£ž 壢 懷 懶 爆 ç¸"
+ " ç–† 癡 礙 ç©© ç°¿ ç°½ 繪 ç¾… ç¹³ 臘 è— è—¤ è—¥ è  èŸ¹ è­œ è­˜ è­‰ è´ˆ è´Š è¾­ é‚Š é¡ é—œ 難 霧 韻 é¡ž 願 騙 麗 勸 åš´ 寶 çˆ ç» ç«¶ 籌"
+ " 籃 ç± ç¹¼ 耀 艦 蘆 蘇 覺 觸 è­° è­¦ è­¯ è´ é‡‹ é˜ é—¡ 飄 騷 麵 黨 齡 屬 懼 æ” æ¬„ çŒ çˆ› 犧 續 蘭 覽 è­· è­½ èº è½Ÿ 辯 éµ éœ¸"
+ " 霹 露 響 顧 é©… é­” 囉 彎 權 æ­¡ è½ è®€ é‘‘ 韃 戀 變 é‚ é¡¯ é©š é©— é«” 讓 é‚ éˆ é·¹ 廳 ç£ è » 觀 讚 鬱 彞 æ• ç®€]"
}
Keys{
calendar{"曆法"}
@@ -1188,7 +1234,6 @@ zh_Hant{
ale{"阿留申文"}
alg{"阿爾岡昆文"}
an{"阿拉貢文"}
- ang{"å¤è‹±æ–‡ (ca.450-1100)"}
apa{"阿帕奇語言"}
arn{"阿勞åŽæ–‡"}
art{"其他人工語言"}
@@ -1196,7 +1241,7 @@ zh_Hant{
ast{"阿斯圖里亞文"}
ath{"阿薩巴斯å¡æ–‡"}
aus{"澳洲英文"}
- av{"阿法文"}
+ av{"阿法文 Avaric"}
ay{"艾馬拉文"}
az{"亞塞拜然文"}
ba{"巴什客爾文"}
@@ -1214,7 +1259,7 @@ zh_Hant{
bi{"比斯拉馬文"}
bik{"比科爾文"}
bla{"錫克錫å¡æ–‡"}
- bnt{"ç­åœ–æ–‡"}
+ bnt{"ç­åœ–諸語言"}
bo{"è—æ–‡"}
bs{"波士尼亞文"}
bua{"布里阿特文"}
@@ -1306,9 +1351,9 @@ zh_Hant{
ht{"海地人"}
hy{"亞美尼亞文"}
hz{"赫雷羅文"}
- ia{"拉ä¸åœ‹éš›æ–‡"}
+ ia{"拉ä¸åœ‹éš›æ–‡ Interlingua"}
id{"å°å°¼æ–‡"}
- ie{"拉ä¸åœ‹éš›æ–‡"}
+ ie{"拉ä¸åœ‹éš›æ–‡ Interlingue"}
ig{"伊布文"}
ii{"å››å·è©±"}
ijo{"伊喬文"}
@@ -1355,11 +1400,12 @@ zh_Hant{
lah{"拉亨é”æ–‡"}
lam{"蘭巴文"}
lb{"盧森堡文"}
- lez{"立陶宛文"}
+ lez{"立陶宛文 Lezghian"}
lg{"å¹²é”æ–‡"}
li{"æž—å ¡æ–‡"}
lo{"寮國文"}
loz{"洛齊文"}
+ lt{"立陶宛語"}
lu{"魯巴加丹加文"}
lua{"魯巴魯魯亞文"}
lui{"路易塞諾文"}
@@ -1460,7 +1506,7 @@ zh_Hant{
sas{"æ’’æ’’å…‹æ–‡"}
sat{"散塔利文"}
sc{"æ’’ä¸æ–‡"}
- sd{"蘇丹文"}
+ sd{"å°åº¦èªž"}
se{"北方薩米文"}
sel{"瑟爾å¡æ™®æ–‡"}
sem{"其他閃æ—語言"}
@@ -1487,7 +1533,7 @@ zh_Hant{
sr{"塞爾維亞文"}
srr{"塞雷爾文"}
ssa{"éžæ´²æ’’哈拉沙漠邊緣地帶文"}
- su{"蘇丹文"}
+ su{"巽他語"}
suk{"蘇庫馬文"}
sus{"蘇蘇文"}
sux{"蘇美文"}
@@ -1526,8 +1572,9 @@ zh_Hant{
und{"未確定的"}
ur{"çƒçˆ¾éƒ½æ–‡"}
uz{"çƒèŒ²åˆ¥å…‹æ–‡"}
- vai{"越å—æ–‡"}
+ vai{"越å—æ–‡ Vai"}
ve{"溫é”æ–‡"}
+ vi{"越å—語"}
wa{"瓦隆文"}
wak{"夸基武特文"}
war{"瓦瑞文"}
@@ -1535,7 +1582,7 @@ zh_Hant{
wen{"文德文"}
wo{"沃爾夫文"}
xal{"å¡çˆ¾æ¢…å…‹æ–‡"}
- xh{"ç­åœ–æ–‡"}
+ xh{"科薩語"}
yao{"瑤文"}
yi{"æ„第緒文"}
yo{"約魯巴文"}
@@ -1622,7 +1669,7 @@ zh_Hant{
Variants{
REVISED{"已修訂"}
}
- Version{"1.37"}
+ Version{"1.59"}
calendar{
gregorian{
DateTimePatterns{
@@ -1636,6 +1683,561 @@ zh_Hant{
"yyyy/M/d",
"{1} {0}",
}
+ quarters{
+ format{
+ wide{
+ "第1季",
+ "第2季",
+ "第3季",
+ "第4季",
+ }
+ }
+ }
+ }
+ }
+ zoneStrings{
+ "Africa:Bamako"{
+ ec{"巴馬科"}
+ }
+ "Africa:Casablanca"{
+ ec{"å¡è–©å¸ƒè˜­å¡"}
+ ld{"格林å¨æ²»æ¨™æº–時間"}
+ ls{"格林å¨æ²»æ¨™æº–時間"}
+ }
+ "Africa:Ceuta"{
+ ec{"休é”"}
+ }
+ "Africa:Kinshasa"{
+ ec{"金å¤æ²™"}
+ }
+ "Africa:Lubumbashi"{
+ ec{"蘆佈巴西"}
+ }
+ "Africa:Timbuktu"{
+ ec{"廷巴克圖"}
+ }
+ "America:Adak"{
+ ec{"艾é”å…‹"}
+ }
+ "America:Anchorage"{
+ ec{"安克里治"}
+ ld{"阿拉斯加日光節約時間"}
+ ls{"阿拉斯加標準時間"}
+ }
+ "America:Araguaina"{
+ ec{"阿拉圭那"}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ec{"科木多洛"}
+ }
+ "America:Argentina:La_Rioja"{
+ ec{"拉略哈"}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ec{"加拉哥斯"}
+ }
+ "America:Argentina:San_Juan"{
+ ec{"è–胡安"}
+ }
+ "America:Argentina:Tucuman"{
+ ec{"å庫曼"}
+ }
+ "America:Argentina:Ushuaia"{
+ ec{"çƒæ–¯æ‡·äºž"}
+ }
+ "America:Bahia"{
+ ec{"巴伊阿"}
+ }
+ "America:Belem"{
+ ec{"è²å€«"}
+ }
+ "America:Boa_Vista"{
+ ec{"ä¿ç¶­æ–¯å¡”"}
+ }
+ "America:Boise"{
+ ec{"波伊斯"}
+ }
+ "America:Buenos_Aires"{
+ ec{"布宜諾斯艾利斯"}
+ }
+ "America:Cambridge_Bay"{
+ ec{"åŠæ©‹ç£"}
+ }
+ "America:Campo_Grande"{
+ ec{"格蘭場"}
+ }
+ "America:Cancun"{
+ ec{"康庫"}
+ }
+ "America:Catamarca"{
+ ec{"å¡å¡”馬å¡"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"中部日光節約時間"}
+ ls{"中部標準時間"}
+ }
+ "America:Chihuahua"{
+ ec{"奇è¯è¯"}
+ }
+ "America:Cordoba"{
+ ec{"哥多è¯"}
+ }
+ "America:Cuiaba"{
+ ec{"å¤é›…å·´"}
+ }
+ "America:Danmarkshavn"{
+ ec{"丹馬沙文"}
+ }
+ "America:Dawson"{
+ ec{"é“生河"}
+ }
+ "America:Dawson_Creek"{
+ ec{"é“生ç£"}
+ }
+ "America:Denver"{
+ ec{"Denver"}
+ ld{"å±±å€æ—¥å…‰ç¯€ç´„時間"}
+ ls{"å±±å€æ¨™æº–時間"}
+ }
+ "America:Edmonton"{
+ ec{"艾德蒙åž"}
+ }
+ "America:Eirunepe"{
+ ec{"艾魯內佩"}
+ }
+ "America:Fortaleza"{
+ ec{"ç¦å¡”力莎"}
+ }
+ "America:Glace_Bay"{
+ ec{"格雷斯è²"}
+ }
+ "America:Godthab"{
+ ec{"高特哈市"}
+ }
+ "America:Goose_Bay"{
+ ec{"éµç£"}
+ }
+ "America:Guayaquil"{
+ ec{"瓜亞基爾"}
+ }
+ "America:Halifax"{
+ ec{"哈里法克斯"}
+ ld{"大西洋日光節約時間"}
+ ls{"大西洋標準時間"}
+ }
+ "America:Hermosillo"{
+ ec{"厄莫休"}
+ }
+ "America:Indiana:Knox"{
+ ec{"諾克斯"}
+ }
+ "America:Indiana:Marengo"{
+ ec{"馬倫哥"}
+ }
+ "America:Indiana:Vevay"{
+ ec{"維å¨"}
+ }
+ "America:Indianapolis"{
+ ec{"å°ç¬¬å®‰é‚£æ³¢é‡Œæ–¯"}
+ ld{"æ±éƒ¨æ¨™æº–時間 Indianapolis daylight"}
+ ls{"æ±éƒ¨æ¨™æº–時間 Indianapolis"}
+ }
+ "America:Inuvik"{
+ ec{"伊奴維克"}
+ }
+ "America:Iqaluit"{
+ ec{"伊é­ç‰¹"}
+ }
+ "America:Jujuy"{
+ ec{"胡韋"}
+ }
+ "America:Juneau"{
+ ec{"朱諾"}
+ }
+ "America:Kentucky:Monticello"{
+ ec{"è’™æç‘Ÿæ´›"}
+ }
+ "America:Los_Angeles"{
+ ec{"æ´›æ‰ç£¯"}
+ ld{"太平洋日光節約時間"}
+ ls{"太平洋標準時間"}
+ }
+ "America:Louisville"{
+ ec{"路易斯維"}
+ }
+ "America:Maceio"{
+ ec{"馬瑟æ­"}
+ }
+ "America:Manaus"{
+ ec{"瑪瑙斯"}
+ }
+ "America:Mazatlan"{
+ ec{"馬薩特蘭"}
+ }
+ "America:Mendoza"{
+ ec{"門多薩"}
+ }
+ "America:Menominee"{
+ ec{"美諾米克"}
+ }
+ "America:Merida"{
+ ec{"美里é”"}
+ }
+ "America:Mexico_City"{
+ ec{"墨西哥市"}
+ }
+ "America:Monterrey"{
+ ec{"蒙特瑞"}
+ }
+ "America:Montreal"{
+ ec{"蒙特å©"}
+ }
+ "America:New_York"{
+ ec{"ç´ç´„"}
+ ld{"æ±éƒ¨æ—¥å…‰ç¯€ç´„時間"}
+ ls{"æ±éƒ¨æ¨™æº–時間"}
+ }
+ "America:Nipigon"{
+ ec{"尼皮岡"}
+ }
+ "America:Nome"{
+ ec{"諾姆"}
+ }
+ "America:Noronha"{
+ ec{"諾倫哈"}
+ }
+ "America:North_Dakota:Center"{
+ ec{"申特城"}
+ }
+ "America:Pangnirtung"{
+ ec{"潘尼爾æ±"}
+ }
+ "America:Phoenix"{
+ ec{"鳳凰城"}
+ ld{"å±±å€æ¨™æº–時間"}
+ ls{"å±±å€æ¨™æº–時間"}
+ }
+ "America:Porto_Velho"{
+ ec{"維留港"}
+ }
+ "America:Rainy_River"{
+ ec{"雨河鎮"}
+ }
+ "America:Rankin_Inlet"{
+ ec{"蘭今ç£"}
+ }
+ "America:Recife"{
+ ec{"雷西éž"}
+ }
+ "America:Regina"{
+ ec{"利宅那"}
+ }
+ "America:Rio_Branco"{
+ ec{"布蘭科"}
+ }
+ "America:Santiago"{
+ ec{"è–地牙哥"}
+ }
+ "America:Sao_Paulo"{
+ ec{"è–ä¿ç¾…"}
+ }
+ "America:Scoresbysund"{
+ ec{"æ–¯å¯æ¯”æµ·å³½"}
+ }
+ "America:Shiprock"{
+ ec{"船岩峰"}
+ }
+ "America:St_Johns"{
+ ec{"è–ç´„ç¿°"}
+ ld{"ç´èŠ¬è˜­æ—¥å…‰ç¯€ç´„時間"}
+ ls{"ç´èŠ¬è˜­æ¨™æº–時間"}
+ }
+ "America:Swift_Current"{
+ ec{"瑞夫å¡å€«ç‰¹"}
+ }
+ "America:Thule"{
+ ec{"æœé‡Œ"}
+ }
+ "America:Thunder_Bay"{
+ ec{"çŠå¾·ç£"}
+ }
+ "America:Tijuana"{
+ ec{"æè¯ç´"}
+ }
+ "America:Toronto"{
+ ec{"多倫多"}
+ }
+ "America:Vancouver"{
+ ec{"溫哥è¯"}
+ }
+ "America:Whitehorse"{
+ ec{"懷特éœæ–¯"}
+ }
+ "America:Winnipeg"{
+ ec{"溫尼伯"}
+ }
+ "America:Yakutat"{
+ ec{"雅庫塔"}
+ }
+ "America:Yellowknife"{
+ ec{"è€ç¾…è€ä½›"}
+ }
+ "Antarctica:Casey"{
+ ec{"凱西"}
+ }
+ "Antarctica:Davis"{
+ ec{"戴維斯"}
+ }
+ "Antarctica:DumontDUrville"{
+ ec{"æœè’™æœçˆ¾ç¶­çˆ¾"}
+ }
+ "Antarctica:McMurdo"{
+ ec{"麥克馬多"}
+ }
+ "Antarctica:Palmer"{
+ ec{"帕麥"}
+ }
+ "Antarctica:Rothera"{
+ ec{"羅瑟拉"}
+ }
+ "Antarctica:South_Pole"{
+ ec{"å—極"}
+ }
+ "Antarctica:Vostok"{
+ ec{"莫斯托克"}
+ }
+ "Arctic:Longyearbyen"{
+ ec{"隆æ„耳拜æ©"}
+ }
+ "Asia:Almaty"{
+ ec{"阿拉木圖"}
+ }
+ "Asia:Anadyr"{
+ ec{"阿那底河"}
+ }
+ "Asia:Aqtau"{
+ ec{"艾克陶"}
+ }
+ "Asia:Aqtobe"{
+ ec{"阿克糾賓"}
+ }
+ "Asia:Choibalsan"{
+ ec{"å“巴爾塞"}
+ }
+ "Asia:Chongqing"{
+ ec{"é‡æ…¶"}
+ }
+ "Asia:Harbin"{
+ ec{"哈爾濱"}
+ }
+ "Asia:Irkutsk"{
+ ec{"伊爾庫次克"}
+ }
+ "Asia:Jakarta"{
+ ec{"雅加é”"}
+ }
+ "Asia:Jayapura"{
+ ec{"加亞布拉"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"以色列日光節約時間"}
+ ls{"以色列標準時間"}
+ }
+ "Asia:Kamchatka"{
+ ec{"堪查加"}
+ }
+ "Asia:Kashgar"{
+ ec{"喀什米爾"}
+ }
+ "Asia:Krasnoyarsk"{
+ ec{"克拉斯諾雅斯克"}
+ }
+ "Asia:Kuching"{
+ ec{"å¤æ™‰"}
+ }
+ "Asia:Magadan"{
+ ec{"馬加丹"}
+ }
+ "Asia:Makassar"{
+ ec{"馬å¡æ²™çˆ¾"}
+ }
+ "Asia:Novosibirsk"{
+ ec{"新西伯利亞"}
+ }
+ "Asia:Oral"{
+ ec{"奧拉爾"}
+ }
+ "Asia:Qyzylorda"{
+ ec{"奎茲羅答"}
+ }
+ "Asia:Sakhalin"{
+ ec{"庫é å³¶"}
+ }
+ "Asia:Samarkand"{
+ ec{"撒馬爾罕"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"中國標準時間"}
+ ls{"中國標準時間"}
+ }
+ "Asia:Tokyo"{
+ ec{"æ±äº¬"}
+ ld{"日本標準時間"}
+ ls{"日本標準時間"}
+ }
+ "Asia:Ulaanbaatar"{
+ ec{"çƒè˜­å·´æ‰˜"}
+ }
+ "Asia:Urumqi"{
+ ec{"çƒé­¯æœ¨é½Š"}
+ }
+ "Asia:Vladivostok"{
+ ec{"æµ·åƒå´´"}
+ }
+ "Asia:Yakutsk"{
+ ec{"雅庫次克"}
+ }
+ "Asia:Yekaterinburg"{
+ ec{"葉å¡æ·æž—å ¡"}
+ }
+ "Atlantic:Azores"{
+ ec{"亞速爾群島"}
+ }
+ "Atlantic:Canary"{
+ ec{"加ç´åˆ©"}
+ }
+ "Atlantic:Jan_Mayen"{
+ ec{"央麥æ©å³¶"}
+ }
+ "Atlantic:Madeira"{
+ ec{"馬得拉群島"}
+ }
+ "Australia:Adelaide"{
+ ec{"阿得雷德"}
+ }
+ "Australia:Brisbane"{
+ ec{"布利斯ç­"}
+ }
+ "Australia:Broken_Hill"{
+ ec{"斷丘市"}
+ }
+ "Australia:Darwin"{
+ ec{"é”爾文"}
+ }
+ "Australia:Hobart"{
+ ec{"è·å·´ç‰¹"}
+ }
+ "Australia:Lord_Howe"{
+ ec{"羅豪島"}
+ }
+ "Australia:Melbourne"{
+ ec{"墨爾本"}
+ }
+ "Australia:Perth"{
+ ec{"伯斯"}
+ }
+ "Australia:Sydney"{
+ ec{"雪梨"}
+ }
+ "Europe:Belfast"{
+ ec{"è²çˆ¾è²»æ–¯ç‰¹"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"æ±æ­æ—¥å…‰ç¯€ç´„時間"}
+ ls{"æ±æ­æ¨™æº–時間"}
+ }
+ "Europe:Kaliningrad"{
+ ec{"加里寧格勒"}
+ }
+ "Europe:Kiev"{
+ ec{"基輔"}
+ }
+ "Europe:London"{
+ ec{"倫敦"}
+ }
+ "Europe:Madrid"{
+ ec{"馬德里"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"中æ­æ—¥å…‰ç¯€ç´„時間"}
+ ls{"中æ­æ¨™æº–時間"}
+ }
+ "Europe:Samara"{
+ ec{"沙馬拉"}
+ }
+ "Europe:Simferopol"{
+ ec{"è¾›éžæ´›æµ¦"}
+ }
+ "Europe:Uzhgorod"{
+ ec{"çƒèŒ²å“¥æ´›"}
+ }
+ "Europe:Zaporozhye"{
+ ec{"札波羅çµ"}
+ }
+ "Pacific:Auckland"{
+ ec{"奧克蘭"}
+ }
+ "Pacific:Chatham"{
+ ec{"查å¦"}
+ }
+ "Pacific:Easter"{
+ ec{"復活島"}
+ }
+ "Pacific:Enderbury"{
+ ec{"æ©å¾—伯ç†å³¶"}
+ }
+ "Pacific:Galapagos"{
+ ec{"加拉巴哥群島"}
+ }
+ "Pacific:Gambier"{
+ ec{"岡必爾群島"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"å¤å¨å¤·æ¨™æº–時間"}
+ ls{"å¤å¨å¤·æ¨™æº–時間"}
+ }
+ "Pacific:Johnston"{
+ ec{"強斯頓"}
+ }
+ "Pacific:Kiritimati"{
+ ec{"è–誕島"}
+ }
+ "Pacific:Kwajalein"{
+ ec{"瓜加林島"}
+ }
+ "Pacific:Majuro"{
+ ec{"馬朱諾"}
+ }
+ "Pacific:Marquesas"{
+ ec{"馬å¯è–©æ–¯å³¶"}
+ }
+ "Pacific:Midway"{
+ ec{"中途島"}
+ }
+ "Pacific:Ponape"{
+ ec{"æ³¢ç´ä½©"}
+ }
+ "Pacific:Tahiti"{
+ ec{"大溪地"}
+ }
+ "Pacific:Tarawa"{
+ ec{"塔拉瓦"}
+ }
+ "Pacific:Truk"{
+ ec{"土魯克群島"}
+ }
+ "Pacific:Wake"{
+ ec{"å¨å…‹"}
+ }
+ "Pacific:Yap"{
+ ec{"雅浦島"}
}
+ hourFormat{"+HH:mm;-HH:mm"}
}
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hant_HK.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hant_HK.txt
index 6826f74be8e..af2bad30486 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hant_HK.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hant_HK.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hant_HK.xml
+// * Source File:<path>/common/main/zh_Hant_HK.xml
// *
// ***************************************************************************
zh_Hant_HK{
@@ -16,9 +16,13 @@ zh_Hant_HK{
"#,##0%",
"#E0",
}
- Version{"1.19"}
+ Version{"1.40"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"ahh'時'mm'分'ss'秒' z",
"ahh'時'mm'分'ss'秒'",
@@ -50,4 +54,68 @@ zh_Hant_HK{
}
}
}
+ delimiters{
+ alternateQuotationEnd{"ã€"}
+ alternateQuotationStart{"『"}
+ quotationEnd{"ã€"}
+ quotationStart{"「"}
+ }
+ zoneStrings{
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"格林å¨æ²»å¤ä»¤æ™‚é–“"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"阿拉斯加å¤ä»¤æ™‚é–“"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"中部å¤ä»¤æ™‚é–“"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"大西洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"太平洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:St_Johns"{
+ ec{"St Johns"}
+ ld{"ç´èŠ¬è˜­å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"以色列å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"中國å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"日本å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"æ±æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"中æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"å¤å¨å¤·å¤ä»¤æ™‚é–“"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hant_MO.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hant_MO.txt
index 9c1e64278a5..f70929d0ebe 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hant_MO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hant_MO.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hant_MO.xml
+// * Source File:<path>/common/main/zh_Hant_MO.xml
// *
// ***************************************************************************
zh_Hant_MO{
@@ -16,9 +16,13 @@ zh_Hant_MO{
"#,##0%",
"#E0",
}
- Version{"1.15"}
+ Version{"1.36"}
calendar{
gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
DateTimePatterns{
"ahh'時'mm'分'ss'秒' z",
"ahh'時'mm'分'ss'秒'",
@@ -50,4 +54,68 @@ zh_Hant_MO{
}
}
}
+ delimiters{
+ alternateQuotationEnd{"ã€"}
+ alternateQuotationStart{"『"}
+ quotationEnd{"ã€"}
+ quotationStart{"「"}
+ }
+ zoneStrings{
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"格林å¨æ²»å¤ä»¤æ™‚é–“"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"阿拉斯加å¤ä»¤æ™‚é–“"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"中部å¤ä»¤æ™‚é–“"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"大西洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"太平洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:St_Johns"{
+ ec{"St Johns"}
+ ld{"ç´èŠ¬è˜­å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"以色列å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"中國å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"日本å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"æ±æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"中æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"å¤å¨å¤·å¤ä»¤æ™‚é–“"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_Hant_TW.txt b/Build/source/libs/icu-xetex/data/locales/zh_Hant_TW.txt
index bd5173109d0..b2047aee441 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_Hant_TW.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_Hant_TW.txt
@@ -1,9 +1,9 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_Hant_TW.xml
+// * Source File:<path>/common/main/zh_Hant_TW.xml
// *
// ***************************************************************************
zh_Hant_TW{
@@ -13,5 +13,125 @@ zh_Hant_TW{
"#,##0%",
"#E0",
}
- Version{"1.9"}
+ Version{"1.28"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ dayNames{
+ format{
+ abbreviated{
+ "週日",
+ "週一",
+ "周二",
+ "週三",
+ "週四",
+ "週五",
+ "週六",
+ }
+ }
+ }
+ fields{
+ day{
+ dn{"æ•´æ—¥"}
+ }
+ dayperiod{
+ dn{"日間"}
+ }
+ era{
+ dn{"年代"}
+ }
+ hour{
+ dn{"å°æ™‚"}
+ }
+ minute{
+ dn{"分é˜"}
+ }
+ month{
+ dn{"月"}
+ }
+ second{
+ dn{"秒"}
+ }
+ week{
+ dn{"週"}
+ }
+ weekday{
+ dn{"週天"}
+ }
+ year{
+ dn{"å¹´"}
+ }
+ zone{
+ dn{"å€åŸŸ"}
+ }
+ }
+ }
+ }
+ delimiters{
+ alternateQuotationEnd{"ã€"}
+ alternateQuotationStart{"『"}
+ quotationEnd{"ã€"}
+ quotationStart{"「"}
+ }
+ zoneStrings{
+ "Africa:Casablanca"{
+ ec{"Casablanca"}
+ ld{"格林å¨æ²»å¤ä»¤æ™‚é–“"}
+ }
+ "America:Anchorage"{
+ ec{"Anchorage"}
+ ld{"阿拉斯加å¤ä»¤æ™‚é–“"}
+ }
+ "America:Chicago"{
+ ec{"Chicago"}
+ ld{"中部å¤ä»¤æ™‚é–“"}
+ }
+ "America:Halifax"{
+ ec{"Halifax"}
+ ld{"大西洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:Indianapolis"{
+ ec{"Indianapolis"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:Los_Angeles"{
+ ec{"Los Angeles"}
+ ld{"太平洋å¤ä»¤æ™‚é–“"}
+ }
+ "America:New_York"{
+ ec{"New York"}
+ ld{"æ±éƒ¨å¤ä»¤æ™‚é–“"}
+ }
+ "America:St_Johns"{
+ ec{"St Johns"}
+ ld{"ç´èŠ¬è˜­å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Jerusalem"{
+ ec{"Jerusalem"}
+ ld{"以色列å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Shanghai"{
+ ec{"Shanghai"}
+ ld{"中國å¤ä»¤æ™‚é–“"}
+ }
+ "Asia:Tokyo"{
+ ec{"Tokyo"}
+ ld{"日本å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Bucharest"{
+ ec{"Bucharest"}
+ ld{"æ±æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Europe:Paris"{
+ ec{"Paris"}
+ ld{"中æ­å¤ä»¤æ™‚é–“"}
+ }
+ "Pacific:Honolulu"{
+ ec{"Honolulu"}
+ ld{"å¤å¨å¤·å¤ä»¤æ™‚é–“"}
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_MO.txt b/Build/source/libs/icu-xetex/data/locales/zh_MO.txt
index 58b90124266..c79fc068d59 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_MO.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_MO.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_MO.xml
+// * Source File:<path>/common/main/zh_MO.xml
// *
// ***************************************************************************
zh_MO{
"%%ALIAS"{"zh_Hant_MO"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_SG.txt b/Build/source/libs/icu-xetex/data/locales/zh_SG.txt
index e51c7f55a18..118021818fe 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_SG.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_SG.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_SG.xml
+// * Source File:<path>/common/main/zh_SG.xml
// *
// ***************************************************************************
zh_SG{
"%%ALIAS"{"zh_Hans_SG"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/locales/zh_TW.txt b/Build/source/libs/icu-xetex/data/locales/zh_TW.txt
index b37c56dc9de..efd280c9b25 100644
--- a/Build/source/libs/icu-xetex/data/locales/zh_TW.txt
+++ b/Build/source/libs/icu-xetex/data/locales/zh_TW.txt
@@ -1,11 +1,19 @@
// ***************************************************************************
// *
-// * Copyright (C) 2005 International Business Machines
+// * Copyright (C) 2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
-// * Source File: ../../../cldr/common/main/zh_TW.xml
+// * Source File:<path>/common/main/zh_TW.xml
// *
// ***************************************************************************
zh_TW{
"%%ALIAS"{"zh_Hant_TW"}
+ calendar{
+ gregorian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/data/makedata.mak b/Build/source/libs/icu-xetex/data/makedata.mak
index 772006975a6..32bbc43c87c 100644
--- a/Build/source/libs/icu-xetex/data/makedata.mak
+++ b/Build/source/libs/icu-xetex/data/makedata.mak
@@ -1,5 +1,5 @@
#**********************************************************************
-#* Copyright (C) 1999-2005, International Business Machines Corporation
+#* Copyright (C) 1999-2006, International Business Machines Corporation
#* and others. All Rights Reserved.
#**********************************************************************
# nmake file for creating data files on win32
@@ -10,10 +10,11 @@
##############################################################################
# Keep the following in sync with the version - see common/unicode/uversion.h
-U_ICUDATA_NAME=icudt34
+U_ICUDATA_NAME=icudt36
##############################################################################
U_ICUDATA_ENDIAN_SUFFIX=l
-UNICODE_VERSION=4.1
+UNICODE_VERSION=5.0
+ICU_LIB_TARGET=$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll
# ICUMAKE
# Must be provided by whoever runs this makefile.
@@ -26,6 +27,9 @@ UNICODE_VERSION=4.1
!ENDIF
!MESSAGE ICU data make path is $(ICUMAKE)
+# Suffixes for data files
+.SUFFIXES : .ucm .cnv .dll .dat .res .txt .c
+
ICUOUT=$(ICUMAKE)\out
# the prefix "icudt21_" for use in filenames
@@ -52,7 +56,7 @@ ICUP=$(ICUP:\source\data\\..\..=)
# The data directory in source
#
ICUSRCDATA=$(ICUP)\source\data
-ICUSRCDATA_RELATIVE_PATH=..\..\..\
+ICUSRCDATA_RELATIVE_PATH=..\..\..
# ICUUCM
# The directory that contains ucmcore.mk files along with *.ucm files
@@ -118,7 +122,7 @@ TESTDATA=$(ICUP)\source\test\testdata
#
# TESTDATAOUT
# The destination directory for the built test data .dat file
-TESTDATAOUT=$(ICUP)\source\test\testdata\out\
+TESTDATAOUT=$(ICUP)\source\test\testdata\out
#
# TESTDATABLD
@@ -146,13 +150,19 @@ ICU_PACKAGE_MODE=-m dll
# instead of building everything from scratch.
ICUDATA_SOURCE_ARCHIVE=$(ICUSRCDATA)\in\$(ICUPKG).dat
!IF !EXISTS("$(ICUDATA_SOURCE_ARCHIVE)")
+# Does a big endian version exist either?
+ICUDATA_ARCHIVE=$(ICUSRCDATA)\in\$(U_ICUDATA_NAME)b.dat
+!IF EXISTS("$(ICUDATA_ARCHIVE)")
+ICUDATA_SOURCE_ARCHIVE=$(ICUTMP)\$(ICUPKG).dat
+!ELSE
+# Nothing was usable for input
!UNDEF ICUDATA_SOURCE_ARCHIVE
!ENDIF
+!ENDIF
-
-# Suffixes for data files
-.SUFFIXES : .ucm .cnv .dll .dat .res .txt .c
-
+!IFDEF ICUDATA_SOURCE_ARCHIVE
+!MESSAGE ICU data source archive is $(ICUDATA_SOURCE_ARCHIVE)
+!ELSE
# We're including a list of .ucm files.
# There are several lists, they are all optional.
@@ -197,18 +207,34 @@ CNV_FILES=$(UCM_SOURCE:.ucm=.cnv)
!IF EXISTS("$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk")
!INCLUDE "$(ICUSRCDATA)\$(ICUBRK)\brklocal.mk"
BRK_SOURCE=$(BRK_SOURCE) $(BRK_SOURCE_LOCAL)
+BRK_CTD_SOURCE=$(BRK_CTD_SOURCE) $(BRK_CTD_SOURCE_LOCAL)
+BRK_RES_SOURCE=$(BRK_RES_SOURCE) $(BRK_RES_SOURCE_LOCAL)
!ELSE
!MESSAGE Information: cannot find "brklocal.mk". Not building user-additional break iterator files.
!ENDIF
!ELSE
!MESSAGE Warning: cannot find "brkfiles.mk"
!ENDIF
-BRK_SOURCE=char.txt title.txt word.txt $(BRK_SOURCE)
#
# Break iterator data files.
#
-BRK_FILES=$(BRK_SOURCE:.txt=.brk)
+BRK_FILES=$(ICUBRK)\$(BRK_SOURCE:.txt =.brk brkitr\)
+BRK_FILES=$(BRK_FILES:.txt=.brk)
+BRK_FILES=$(BRK_FILES:brkitr\ =brkitr\)
+
+!IFDEF BRK_CTD_SOURCE
+BRK_CTD_FILES = $(ICUBRK)\$(BRK_CTD_SOURCE:.txt =.ctd brkitr\)
+BRK_CTD_FILES = $(BRK_CTD_FILES:.txt=.ctd)
+BRK_CTD_FILES = $(BRK_CTD_FILES:brkitr\ =)
+!ENDIF
+
+!IFDEF BRK_RES_SOURCE
+BRK_RES_FILES = $(BRK_RES_SOURCE:.txt =.res brkitr\)
+BRK_RES_FILES = $(BRK_RES_FILES:.txt=.res)
+BRK_RES_FILES = $(ICUBRK)\root.res $(ICUBRK)\$(BRK_RES_FILES:brkitr\ =)
+ALL_RES = $(ALL_RES) $(ICUBRK)\res_index.res
+!ENDIF
# Read list of locale resource bundle files
!IF EXISTS("$(ICUSRCDATA)\$(ICULOC)\resfiles.mk")
@@ -309,6 +335,7 @@ MISC_FILES = $(MISC_SOURCE:.txt=.res)
# don't include COL_FILES
ALL_RES = $(ALL_RES) $(RB_FILES) $(MISC_FILES)
+!ENDIF
# Common defines for both ways of building ICU's data library.
COMMON_ICUDATA_DEPENDENCIES="$(ICUP)\bin\pkgdata.exe" "$(ICUTMP)\icudata.res" "$(ICUP)\source\stubdata\stubdatabuilt.txt"
@@ -323,7 +350,7 @@ COMMON_ICUDATA_ARGUMENTS=-f -e $(U_ICUDATA_NAME) -v $(ICU_PACKAGE_MODE) -M"PKGDA
# Building the common dll in $(ICUBLD_PKG) unconditionally copies it to $(DLL_OUTPUT) too.
#
#############################################################################
-ALL : GODATA "$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll" "$(TESTDATAOUT)\testdata.dat"
+ALL : GODATA "$(ICU_LIB_TARGET)" "$(TESTDATAOUT)\testdata.dat"
@echo All targets are up to date
# Starting with ICU4C 3.4, the core Unicode properties files (uprops.icu, ucase.icu, ubidi.icu, unorm.icu)
@@ -352,21 +379,20 @@ uni-core-data: GODATA "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(IC
# from data build. See Jitterbug 4497. (makedata.mak revision 1.117)
#
!IFDEF ICUDATA_SOURCE_ARCHIVE
-"$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll" : $(COMMON_ICUDATA_DEPENDENCIES) "$(ICUDATA_SOURCE_ARCHIVE)"
+"$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) "$(ICUDATA_SOURCE_ARCHIVE)"
@echo Building icu data from $(ICUDATA_SOURCE_ARCHIVE)
- cd "$(ICUBLD)"
- decmn --pkgdata "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\pkgdatain.txt"
cd "$(ICUBLD_PKG)"
- @"$(ICUP)\bin\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\pkgdatain.txt"
+ "$(ICUP)\bin\icupkg" -x * --list "$(ICUDATA_SOURCE_ARCHIVE)" > "$(ICUTMP)\icudata.lst"
+ "$(ICUP)\bin\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) "$(ICUTMP)\icudata.lst"
copy "$(U_ICUDATA_NAME).dll" "$(DLL_OUTPUT)"
-@erase "$(U_ICUDATA_NAME).dll"
copy "$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
-@erase "$(ICUPKG).dat"
!ELSE
-"$(DLL_OUTPUT)\$(U_ICUDATA_NAME).dll" : $(COMMON_ICUDATA_DEPENDENCIES) $(CNV_FILES) "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\cnvalias.icu" "$(ICUBLD_PKG)\ucadata.icu" "$(ICUBLD_PKG)\invuca.icu" "$(ICUBLD_PKG)\uidna.spp" $(BRK_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(TRANSLIT_RES_FILES) $(ALL_RES)
+"$(ICU_LIB_TARGET)" : $(COMMON_ICUDATA_DEPENDENCIES) $(CNV_FILES) "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\pnames.icu" "$(ICUBLD_PKG)\cnvalias.icu" "$(ICUBLD_PKG)\ucadata.icu" "$(ICUBLD_PKG)\invuca.icu" "$(ICUBLD_PKG)\uidna.spp" $(BRK_FILES) $(BRK_CTD_FILES) $(BRK_RES_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(TRANSLIT_RES_FILES) $(ALL_RES)
@echo Building icu data
cd "$(ICUBLD_PKG)"
- @"$(ICUP)\bin\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) <<"$(ICUTMP)\pkgdatain.txt"
+ "$(ICUP)\bin\pkgdata" $(COMMON_ICUDATA_ARGUMENTS) <<"$(ICUTMP)\icudata.lst"
pnames.icu
unames.icu
ucadata.icu
@@ -385,31 +411,40 @@ $(TRANSLIT_RES_FILES:.res =.res
)
$(BRK_FILES:.brk =.brk
)
+$(BRK_CTD_FILES:.ctd =.ctd
+)
+$(BRK_RES_FILES:.res =.res
+)
<<KEEP
- copy "$(U_ICUDATA_NAME).dll" "$(DLL_OUTPUT)"
+ -@erase "$(ICU_LIB_TARGET)"
+ copy "$(U_ICUDATA_NAME).dll" "$(ICU_LIB_TARGET)"
-@erase "$(U_ICUDATA_NAME).dll"
copy "$(ICUPKG).dat" "$(ICUOUT)\$(U_ICUDATA_NAME)$(U_ICUDATA_ENDIAN_SUFFIX).dat"
-@erase "$(ICUPKG).dat"
!ENDIF
-# utility target to send us to the right dir
-GODATA :
+# utility target to create missing directories
+CREATE_DIRS :
@if not exist "$(ICUOUT)\$(NULL)" mkdir "$(ICUOUT)"
@if not exist "$(ICUTMP)\$(NULL)" mkdir "$(ICUTMP)"
@if not exist "$(ICUOUT)\build\$(NULL)" mkdir "$(ICUOUT)\build"
@if not exist "$(ICUBLD_PKG)\$(NULL)" mkdir "$(ICUBLD_PKG)"
+ @if not exist "$(ICUBLD_PKG)\$(ICUBRK)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUBRK)"
@if not exist "$(ICUBLD_PKG)\$(ICUCOL)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUCOL)"
@if not exist "$(ICUBLD_PKG)\$(ICURBNF)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICURBNF)"
@if not exist "$(ICUBLD_PKG)\$(ICUTRNS)\$(NULL)" mkdir "$(ICUBLD_PKG)\$(ICUTRNS)"
@if not exist "$(TESTDATAOUT)\$(NULL)" mkdir "$(TESTDATAOUT)"
@if not exist "$(TESTDATABLD)\$(NULL)" mkdir "$(TESTDATABLD)"
+ @if not exist "$(TESTDATAOUT)\testdata\$(NULL)" mkdir "$(TESTDATAOUT)\testdata"
+
+# utility target to send us to the right dir
+GODATA : CREATE_DIRS
@cd "$(ICUBLD_PKG)"
# This is to remove all the data files
CLEAN : GODATA
@echo Cleaning up the data files.
@cd "$(ICUBLD_PKG)"
- -@erase "*.brk"
-@erase "*.cnv"
-@erase "*.exp"
-@erase "*.icu"
@@ -417,6 +452,10 @@ CLEAN : GODATA
-@erase "*.res"
-@erase "*.spp"
-@erase "*.txt"
+ @cd "$(ICUBLD_PKG)\$(ICUBRK)"
+ -@erase "*.brk"
+ -@erase "*.res"
+ -@erase "*.txt"
@cd "$(ICUBLD_PKG)\$(ICUCOL)"
-@erase "*.res"
-@erase "*.txt"
@@ -429,6 +468,7 @@ CLEAN : GODATA
-@erase "*.dat"
@cd "$(ICUTMP)"
-@erase "*.txt"
+ -@erase "*.lst"
-@erase "*.mak"
-@erase "*.obj"
-@erase "*.res"
@@ -441,13 +481,20 @@ CLEAN : GODATA
-@erase "*.txt"
@cd "$(TESTDATAOUT)"
-@erase "*.dat"
+ @cd "$(TESTDATAOUT)\testdata"
-@erase "*.typ"
@cd "$(ICUBLD_PKG)"
# RBBI .brk file generation.
{$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.brk:
- genbrk -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
+ @echo Creating $@
+ @"$(ICUTOOLS)\genbrk\$(CFG)\genbrk" -c -r $< -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)"
+
+# RBBI .ctd file generation.
+{$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt.ctd:
+ @echo Creating $@
+ @"$(ICUTOOLS)\genctd\$(CFG)\genctd" -c -o $@ -d"$(ICUBLD_PKG)" -i "$(ICUBLD_PKG)" $<
# Batch inference rule for creating converters
{$(ICUSRCDATA_RELATIVE_PATH)\$(ICUUCM)}.ucm.cnv::
@@ -471,7 +518,7 @@ CLEAN : GODATA
res_index.res:
@echo Generating <<res_index.txt
// Warning this file is automatically generated
-res_index {
+res_index:table(nofallback) {
InstalledLocales {
$(GENRB_SOURCE:.txt= {""}
)
@@ -487,7 +534,7 @@ res_index {
$(ICUCOL)\res_index.res:
@echo Generating <<$(ICUCOL)\res_index.txt
// Warning this file is automatically generated
-res_index {
+res_index:table(nofallback) {
InstalledLocales {
$(COLLATION_SOURCE:.txt= {""}
)
@@ -503,7 +550,7 @@ res_index {
$(ICURBNF)\res_index.res:
@echo Generating <<$(ICURBNF)\res_index.txt
// Warning this file is automatically generated
-res_index {
+res_index:table(nofallback) {
InstalledLocales {
$(RBNF_SOURCE:.txt= {""}
)
@@ -512,6 +559,22 @@ res_index {
<<KEEP
@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICURBNF)" .\$(ICURBNF)\res_index.txt
+$(ICUBRK)\res_index.res:
+ @echo Generating <<$(ICUBRK)\res_index.txt
+// Warning this file is automatically generated
+res_index:table(nofallback) {
+ InstalledLocales {
+ $(BRK_RES_SOURCE:.txt= {""}
+ )
+ }
+}
+<<KEEP
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -d"$(ICUBLD_PKG)\$(ICUBRK)" .\$(ICUBRK)\res_index.txt
+
+{$(ICUSRCDATA_RELATIVE_PATH)\$(ICUBRK)}.txt{$(ICUBRK)}.res::
+ @echo Making Break Iterator Resource files
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUBRK)" $<
+
{$(ICUSRCDATA_RELATIVE_PATH)\$(ICUTRNS)}.txt{$(ICUTRNS)}.res::
@echo Making Transliterator files
@"$(ICUTOOLS)\genrb\$(CFG)\genrb" -k -i "$(ICUBLD_PKG)" -d"$(ICUBLD_PKG)\$(ICUTRNS)" $<
@@ -572,16 +635,26 @@ res_index {
# Targets for uidna.spp
"$(ICUBLD_PKG)\uidna.spp" : "$(ICUUNIDATA)\*.txt" "$(ICUMISC)\NamePrepProfile.txt"
- gensprep -s "$(ICUMISC)" -d "$(ICUBLD_PKG)\\" -b uidna -n "$(ICUUNIDATA)" -k -u 3.2.0 NamePrepProfile.txt
+ "$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(ICUMISC)" -d "$(ICUBLD_PKG)\\" -b uidna -n "$(ICUUNIDATA)" -k -u 3.2.0 NamePrepProfile.txt
+
+!IFDEF ICUDATA_ARCHIVE
+"$(ICUDATA_SOURCE_ARCHIVE)": CREATE_DIRS $(ICUDATA_ARCHIVE) "$(ICUTOOLS)\icupkg\$(CFG)\icupkg.exe"
+ "$(ICUTOOLS)\icupkg\$(CFG)\icupkg" -t$(U_ICUDATA_ENDIAN_SUFFIX) "$(ICUDATA_ARCHIVE)" "$(ICUDATA_SOURCE_ARCHIVE)"
+!ENDIF
# Dependencies on the tools for the batch inference rules
+!IFNDEF ICUDATA_SOURCE_ARCHIVE
$(UCM_SOURCE) : {"$(ICUTOOLS)\makeconv\$(CFG)"}makeconv.exe
-# used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\unorm.icu"
-# see Jitterbug 4497
-$(MISC_SOURCE) $(RB_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe "$(ICUBLD_PKG)\ucadata.icu"
+# This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\unorm.icu"
+# This data is now hard coded as a part of the library.
+# See Jitterbug 4497 for details.
+$(MISC_SOURCE) $(RB_FILES) $(COL_COL_FILES) $(RBNF_RES_FILES) $(BRK_RES_FILES) $(TRANSLIT_RES_FILES): {"$(ICUTOOLS)\genrb\$(CFG)"}genrb.exe "$(ICUBLD_PKG)\ucadata.icu"
-# used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\unorm.icu"
-# see Jitterbug 4497
+# This used to depend on "$(ICUBLD_PKG)\uprops.icu" "$(ICUBLD_PKG)\ucase.icu" "$(ICUBLD_PKG)\ubidi.icu" "$(ICUBLD_PKG)\unorm.icu"
+# This data is now hard coded as a part of the library.
+# See Jitterbug 4497 for details.
$(BRK_SOURCE) : "$(ICUBLD_PKG)\unames.icu" "$(ICUBLD_PKG)\pnames.icu"
+!ENDIF
+
diff --git a/Build/source/libs/icu-xetex/data/makedata.vcproj b/Build/source/libs/icu-xetex/data/makedata.vcproj
index 4dbb697c287..25a2f0e25d7 100644
--- a/Build/source/libs/icu-xetex/data/makedata.vcproj
+++ b/Build/source/libs/icu-xetex/data/makedata.vcproj
@@ -52,9 +52,15 @@
RelativePath=".\brkitr\brkfiles.mk">
</File>
<File
+ RelativePath=".\brkitr\brsfiles.mk">
+ </File>
+ <File
RelativePath=".\coll\colfiles.mk">
</File>
<File
+ RelativePath=".\brkitr\ctdfiles.mk">
+ </File>
+ <File
RelativePath=".\makedata.mak">
</File>
<File
diff --git a/Build/source/libs/icu-xetex/data/mappings/convrtrs.txt b/Build/source/libs/icu-xetex/data/mappings/convrtrs.txt
index 06121fbee4f..e174a1d10d3 100644
--- a/Build/source/libs/icu-xetex/data/mappings/convrtrs.txt
+++ b/Build/source/libs/icu-xetex/data/mappings/convrtrs.txt
@@ -1,6 +1,6 @@
# ******************************************************************************
# *
-# * Copyright (C) 1995-2005, International Business Machines
+# * Copyright (C) 1995-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# *
# ******************************************************************************
@@ -165,6 +165,8 @@ UTF-16BE { IANA* MIME* JAVA* } x-utf-16be { JAVA }
ibm-17585 { IBM } # Unicode 3.0, UTF-16 BE
ibm-21680 { IBM } # Unicode 4.0, UTF-16 BE with IBM PUA
ibm-21681 { IBM } # Unicode 4.0, UTF-16 BE
+ ibm-25776 { IBM } # Unicode 4.1, UTF-16 BE with IBM PUA
+ ibm-25777 { IBM } # Unicode 4.1, UTF-16 BE
ibm-61955 { IBM } # UTF-16BE with Gaidai University (Japan) PUA
ibm-61956 { IBM } # UTF-16BE with HKSCS-Big 5 PUA
windows-1201 { WINDOWS* }
@@ -184,6 +186,8 @@ UTF-16LE { IANA* MIME* JAVA* } x-utf-16le { JAVA }
ibm-17587 { IBM } # Unicode 3.0, UTF-16 LE
ibm-21682 { IBM } # Unicode 4.0, UTF-16 LE with IBM PUA
ibm-21683 { IBM } # Unicode 4.0, UTF-16 LE
+ ibm-25778 { IBM } # Unicode 4.1, UTF-16 LE with IBM PUA
+ ibm-25779 { IBM } # Unicode 4.1, UTF-16 LE
UTF16_LittleEndian
windows-1200 { WINDOWS* }
@@ -285,7 +289,7 @@ ibm-367_P100-1995 { UTR22* } ibm-367 { IBM* } IBM367 { IANA* } # This is AS
# Central Europe
ibm-912_P100-1995 { UTR22* }
ibm-912 { IBM* JAVA }
- iso-8859-2 { MIME* IANA JAVA* WINDOWS }
+ ISO-8859-2 { MIME* IANA JAVA* WINDOWS }
ISO_8859-2:1987 { IANA* WINDOWS JAVA }
latin2 { IANA WINDOWS JAVA }
csISOLatin2 { IANA WINDOWS JAVA }
@@ -299,7 +303,7 @@ ibm-912_P100-1995 { UTR22* }
# Maltese Esperanto
ibm-913_P100-2000 { UTR22* }
ibm-913 { IBM* JAVA }
- iso-8859-3 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-3 { MIME* IANA WINDOWS JAVA* }
ISO_8859-3:1988 { IANA* WINDOWS JAVA }
latin3 { IANA JAVA WINDOWS }
csISOLatin3 { IANA WINDOWS }
@@ -313,7 +317,7 @@ ibm-913_P100-2000 { UTR22* }
# Baltic
ibm-914_P100-1995 { UTR22* }
ibm-914 { IBM* JAVA }
- iso-8859-4 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-4 { MIME* IANA WINDOWS JAVA* }
latin4 { IANA WINDOWS JAVA }
csISOLatin4 { IANA WINDOWS JAVA }
iso-ir-110 { IANA WINDOWS JAVA }
@@ -327,7 +331,7 @@ ibm-914_P100-1995 { UTR22* }
# Cyrillic
ibm-915_P100-1995 { UTR22* }
ibm-915 { IBM* JAVA }
- iso-8859-5 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-5 { MIME* IANA WINDOWS JAVA* }
cyrillic { IANA WINDOWS JAVA }
csISOLatinCyrillic { IANA WINDOWS JAVA }
iso-ir-144 { IANA WINDOWS JAVA }
@@ -344,7 +348,7 @@ ibm-915_P100-1995 { UTR22* }
# -E requires the client to handle the ISO 6429 bidirectional controls
ibm-1089_P100-1995 { UTR22* }
ibm-1089 { IBM* JAVA }
- iso-8859-6 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-6 { MIME* IANA WINDOWS JAVA* }
arabic { IANA WINDOWS JAVA }
csISOLatinArabic { IANA WINDOWS JAVA }
iso-ir-127 { IANA WINDOWS JAVA }
@@ -361,7 +365,7 @@ ibm-1089_P100-1995 { UTR22* }
# ISO Greek (with euro update). This is really ISO_8859-7:2003
ibm-9005_X100-2005 { UTR22* }
ibm-9005 { IBM* }
- iso-8859-7 { MIME* IANA WINDOWS }
+ ISO-8859-7 { MIME* IANA WINDOWS }
greek { IANA WINDOWS }
greek8 { IANA WINDOWS }
ELOT_928 { IANA WINDOWS }
@@ -375,7 +379,7 @@ ibm-9005_X100-2005 { UTR22* }
# JDK 1.5 has these aliases.
ibm-813_P100-1995 { UTR22* }
ibm-813 { IBM* JAVA }
- iso-8859-7 { JAVA* }
+ ISO-8859-7 { JAVA* }
greek { JAVA }
greek8 { JAVA }
ELOT_928 { JAVA }
@@ -394,7 +398,7 @@ ibm-813_P100-1995 { UTR22* }
# -E requires the client to handle the ISO 6429 bidirectional controls
ibm-916_P100-1995 { UTR22* }
ibm-916 { IBM* JAVA }
- iso-8859-8 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-8 { MIME* IANA WINDOWS JAVA* }
hebrew { IANA WINDOWS JAVA }
csISOLatinHebrew { IANA WINDOWS JAVA }
iso-ir-138 { IANA WINDOWS JAVA }
@@ -409,7 +413,7 @@ ibm-916_P100-1995 { UTR22* }
# Turkish
ibm-920_P100-1995 { UTR22* }
ibm-920 { IBM* JAVA }
- iso-8859-9 { MIME* IANA WINDOWS JAVA* }
+ ISO-8859-9 { MIME* IANA WINDOWS JAVA* }
latin5 { IANA WINDOWS JAVA }
csISOLatin5 { IANA JAVA }
iso-ir-148 { IANA WINDOWS JAVA }
@@ -421,18 +425,40 @@ ibm-920_P100-1995 { UTR22* }
windows-28599 { WINDOWS* }
ECMA-128 # IANA doesn't have this alias 6/24/2002
+# Nordic languages
+iso-8859_10-1998 { UTR22* } ISO-8859-10 { MIME* IANA* }
+ iso-ir-157 { IANA }
+ l6 { IANA }
+ ISO_8859-10:1992 { IANA }
+ csISOLatin6 { IANA }
+ latin6 { IANA }
+
+# Thai
+# Be warned. There several iso-8859-11 codepage variants, and they are all incompatible.
+# ISO-8859-11 is a superset of TIS-620. The difference is that ISO-8859-11 contains the C1 control codes.
+iso-8859_11-2001 { UTR22* } ISO-8859-11
+ thai8 # HP-UX alias. HP-UX says TIS-620, but it's closer to ISO-8859-11.
+
# iso-8859-13, PC Baltic (w/o euro update)
ibm-921_P100-1995 { UTR22* }
ibm-921 { IBM* }
- iso-8859-13 { IANA* MIME* JAVA* }
+ ISO-8859-13 { IANA* MIME* JAVA* }
8859_13 { JAVA }
cp921
921
+# Celtic
+iso-8859_14-1998 { UTR22* } ISO-8859-14 { IANA* }
+ iso-ir-199 { IANA }
+ ISO_8859-14:1998 { IANA }
+ latin8 { IANA }
+ iso-celtic { IANA }
+ l8 { IANA }
+
# Latin 9
ibm-923_P100-1998 { UTR22* }
ibm-923 { IBM* JAVA }
- iso-8859-15 { IANA* MIME* WINDOWS JAVA* }
+ ISO-8859-15 { IANA* MIME* WINDOWS JAVA* }
Latin-9 { IANA WINDOWS }
l9 { WINDOWS }
8859_15 { JAVA }
@@ -494,6 +520,7 @@ ibm-33722_P12A-1999 { UTR22* }
X-EUC-JP { WINDOWS JAVA } # Japan EUC. x-euc-jp is a MIME name
eucjis { JAVA }
windows-51932 { WINDOWS* }
+ ujis # Linux sometimes uses this name. This is an unfortunate generic and rarely used name. Its use is discouraged.
ibm-33722_VPUA
IBM-eucJP
ibm-33722_P120-1999 { UTR22* } # Japan EUC with \ <-> Yen mapping
@@ -529,6 +556,7 @@ ibm-1375_P100-2003 { UTR22* } # IBM's interpretation of Windows' Taiwan Big-5
ibm-1375 { IBM* }
Big5-HKSCS
MS950_HKSCS { JAVA* }
+ hkbig5 # from HP-UX 11i, which can't handle supplementary characters.
# windows-950 # Windows-950 can be w/ or w/o HKSCS extensions. By default it's not.
# windows-950_hkscs
@@ -667,8 +695,8 @@ ibm-874_P100-1995 { UTR22* } # Thai PC (w/o euro update).
ibm-874 { IBM* JAVA }
ibm-9066 { IBM } # Yes ibm-874 == ibm-9066. ibm-1161 has the euro update.
cp874 { JAVA* }
- TIS-620 { IANA* JAVA } # This actually separate from ibm-874, which is similar to this table
- tis620.2533 { JAVA } # This actually separate from ibm-874, which is similar to this table
+ TIS-620 { IANA* JAVA } # This is actually separate from ibm-874, which is similar to this table
+ tis620.2533 { JAVA } # This is actually separate from ibm-874, which is similar to this table
eucTH # eucTH is an unusual alias from Solaris. eucTH has fewer mappings than TIS620
ibm-1162_P100-1999 { UTR22* } # Thai (w/ euro update)
@@ -707,12 +735,12 @@ ibm-4909_P100-1999 { UTR22* } ibm-4909 { IBM* } # ISO Greek (w/ euro update),
# cp is usually used to denote IBM in Java, and that is why we don't do that anymore.
# The windows-* aliases mean windows codepages.
ibm-5346_P100-1998 { UTR22* } ibm-5346 { IBM* } windows-1250 { IANA* JAVA* WINDOWS* } cp1250 { WINDOWS JAVA } # Windows Latin2 (w/ euro update)
-ibm-5347_P100-1998 { UTR22* } ibm-5347 { IBM* } windows-1251 { IANA* JAVA* WINDOWS* } cp1251 { WINDOWS JAVA } # Windows Cyrillic (w/ euro update)
+ibm-5347_P100-1998 { UTR22* } ibm-5347 { IBM* } windows-1251 { IANA* JAVA* WINDOWS* } cp1251 { WINDOWS JAVA } ANSI1251 # Windows Cyrillic (w/ euro update). ANSI1251 is from Solaris
ibm-5348_P100-1997 { UTR22* } ibm-5348 { IBM* } windows-1252 { IANA* JAVA* WINDOWS* } cp1252 { JAVA } # Windows Latin1 (w/ euro update)
ibm-5349_P100-1998 { UTR22* } ibm-5349 { IBM* } windows-1253 { IANA* JAVA* WINDOWS* } cp1253 { JAVA } # Windows Greek (w/ euro update)
ibm-5350_P100-1998 { UTR22* } ibm-5350 { IBM* } windows-1254 { IANA* JAVA* WINDOWS* } cp1254 { JAVA } # Windows Turkish (w/ euro update)
ibm-9447_P100-2002 { UTR22* } ibm-9447 { IBM* } windows-1255 { IANA* JAVA* WINDOWS* } cp1255 { JAVA } # Windows Hebrew (w/ euro update)
-windows-1256-2000 { UTR22* } windows-1256 { IANA* JAVA* WINDOWS* } cp1256 { WINDOWS JAVA } # Windows Arabic (w/ euro update)
+ibm-9448_X100-2005 { UTR22* } ibm-9448 { IBM* } windows-1256 { IANA* JAVA* WINDOWS* } cp1256 { WINDOWS JAVA } # Windows Arabic (w/ euro update)
ibm-9449_P100-2002 { UTR22* } ibm-9449 { IBM* } windows-1257 { IANA* JAVA* WINDOWS* } cp1257 { JAVA } # Windows Baltic (w/ euro update)
ibm-5354_P100-1998 { UTR22* } ibm-5354 { IBM* } windows-1258 { IANA* JAVA* WINDOWS* } cp1258 { JAVA } # Windows Vietnamese (w/ euro update)
@@ -732,8 +760,8 @@ ibm-5353_P100-1998 { UTR22* } ibm-5353 { IBM* } windows-1257 # Somewhat old W
ibm-1258_P100-1997 { UTR22* } ibm-1258 { IBM* } windows-1258 # Old Windows Vietnamese (w/o euro update)
macos-0_2-10.2 { UTR22* } macintosh { IANA* MIME* WINDOWS } mac { IANA } csMacintosh { IANA } windows-10000 { WINDOWS* } # Apple latin 1
-macos-6-10.2 { UTR22* } x-mac-greek { MIME* WINDOWS } windows-10006 { WINDOWS* } macgr # Apple Greek
-macos-7_3-10.2 { UTR22* } x-mac-cyrillic { MIME* WINDOWS } windows-10007 { WINDOWS* } maccy # Apple Cyrillic
+macos-6_2-10.4 { UTR22* } x-mac-greek { MIME* WINDOWS } windows-10006 { WINDOWS* } macgr # Apple Greek
+macos-7_3-10.2 { UTR22* } x-mac-cyrillic { MIME* WINDOWS } windows-10007 { WINDOWS* } mac-cyrillic maccy # Apple Cyrillic
macos-29-10.2 { UTR22* } x-mac-centraleurroman { MIME* } windows-10029 { WINDOWS* } x-mac-ce { WINDOWS } macce # Apple Central Europe
macos-35-10.2 { UTR22* } x-mac-turkish { MIME* WINDOWS } windows-10081 { WINDOWS* } mactr # Apple Turkish
@@ -755,18 +783,18 @@ ibm-1133_P100-1997 { UTR22* } ibm-1133 { IBM* }
# The _generic_ ISO-2022 converter is disabled starting 2003-dec-03 (ICU 2.8).
# For details see the icu mailing list from 2003-dec-01 and the ucnv2022.c file.
# Language-specific variants of ISO-2022 continue to be available as listed below.
-# ISO_2022 ISO-2022 { MIME* } 2022 cp2022
+# ISO_2022 ISO-2022
-ISO_2022,locale=ja,version=0 ISO-2022-JP { IANA* MIME* JAVA* } csISO2022JP { JAVA }
-ISO_2022,locale=ja,version=1 ISO-2022-JP-1 JIS JIS_Encoding { IANA* }
-ISO_2022,locale=ja,version=2 ISO-2022-JP-2 { IANA* MIME* } csISO2022JP2
-ISO_2022,locale=ja,version=3 JIS7 csJISEncoding
+ISO_2022,locale=ja,version=0 ISO-2022-JP { IANA* MIME* JAVA* } csISO2022JP { IANA JAVA }
+ISO_2022,locale=ja,version=1 ISO-2022-JP-1 JIS_Encoding { IANA* } csJISEncoding { IANA } ibm-5054 { IBM* } JIS
+ISO_2022,locale=ja,version=2 ISO-2022-JP-2 { IANA* MIME* } csISO2022JP2 { IANA }
+ISO_2022,locale=ja,version=3 JIS7
ISO_2022,locale=ja,version=4 JIS8
-ISO_2022,locale=ko,version=0 ISO-2022-KR { IANA* MIME* JAVA* } csISO2022KR { JAVA } # This uses ibm-949
-ISO_2022,locale=ko,version=1 ibm-25546
-ISO_2022,locale=zh,version=0 ISO-2022-CN { IANA* MIME* JAVA* } csISO2022CN { JAVA }
-ISO_2022,locale=zh,version=1 ISO-2022-CN-EXT { IANA* MIME* }
-HZ HZ-GB-2312 { IANA* MIME* }
+ISO_2022,locale=ko,version=0 ISO-2022-KR { IANA* MIME* JAVA* } csISO2022KR { IANA JAVA } # This uses ibm-949
+ISO_2022,locale=ko,version=1 ibm-25546 { IBM* }
+ISO_2022,locale=zh,version=0 ISO-2022-CN { IANA* JAVA* } csISO2022CN { JAVA }
+ISO_2022,locale=zh,version=1 ISO-2022-CN-EXT { IANA* }
+HZ HZ-GB-2312 { IANA* }
# Part of iso-2022
ibm-897_P100-1995 { UTR22* } ibm-897 { IBM* } JIS_X0201 { IANA* } X0201 { IANA } csHalfWidthKatakana { IANA }
@@ -784,17 +812,20 @@ ISCII,version=8 x-iscii-ma { WINDOWS } windows-57009 { WINDOWS* } iscii-
# Lotus specific
LMBCS-1 lmbcs ibm-65025 { IBM* }
-LMBCS-2
-LMBCS-3
-LMBCS-4
-LMBCS-5
-LMBCS-6
-LMBCS-8
-LMBCS-11
-LMBCS-16
-LMBCS-17
-LMBCS-18
-LMBCS-19
+
+# These Lotus specific converters still work, but they aren't advertised in this alias table.
+# These are almost never used outside of Lotus software, and they take a lot of time when creating the available converter list.
+#LMBCS-2
+#LMBCS-3
+#LMBCS-4
+#LMBCS-5
+#LMBCS-6
+#LMBCS-8
+#LMBCS-11
+#LMBCS-16
+#LMBCS-17
+#LMBCS-18
+#LMBCS-19
# EBCDIC codepages according to the CDRA
@@ -856,6 +887,7 @@ ibm-1123_P100-1995 { UTR22* } ibm-1123 { IBM* JAVA } cp1123 { JAVA* } 1123 { J
ibm-1130_P100-1997 { UTR22* } ibm-1130 { IBM* } # EBCDIC Vietnamese
ibm-1132_P100-1998 { UTR22* } ibm-1132 { IBM* } # EBCDIC Lao
ibm-1137_P100-1999 { UTR22* } ibm-1137 { IBM* } # Devanagari EBCDIC (based on Unicode character set)
+ibm-4517_P100-2005 { UTR22* } ibm-4517 { IBM* } # EBCDIC Arabic. Update of ibm-421
# with Euro
ibm-1140_P100-1997 { UTR22* } ibm-1140 { IBM* } IBM01140 { IANA* JAVA } CCSID01140 { IANA JAVA } CP01140 { IANA JAVA } cp1140 { JAVA* } ebcdic-us-37+euro { IANA } # EBCDIC US
@@ -884,10 +916,10 @@ ibm-1399_P110-2003 { UTR22* } ibm-1399 { IBM* } # Host MBCS
ibm-5123_P100-1999 { UTR22* } ibm-5123 { IBM* } # Host Roman Jis. Euro update of ibm-1027. SBCS portion of ibm-1390.
ibm-8482_P100-1999 { UTR22* } ibm-8482 { IBM* } # host SBCS (Katakana). Euro update of ibm-290. SBCS portion of ibm-1399.
ibm-16684_P110-2003 { UTR22* } ibm-16684 { IBM* } # DBCS Jis + Roman Jis Host. This is the DBCS portion of ibm-1390 and ibm-1399 (JIS X 0213)
-ibm-4899_P100-1998 { UTR22* } ibm-4899 { IBM* } # Old EBCDIC Hebrew
-ibm-4971_P100-1999 { UTR22* } ibm-4971 { IBM* } # EBCDIC Greek
-ibm-12712_P100-1998 { UTR22* } ibm-12712 { IBM* } ebcdic-he # EBCDIC Hebrew (new sheqel, control charaters update)
-ibm-16804_X110-1999 { UTR22* } ibm-16804 { IBM* } ebcdic-ar # EBCDIC Arabic
+ibm-4899_P100-1998 { UTR22* } ibm-4899 { IBM* } # Old EBCDIC Hebrew. Update of ibm-803
+ibm-9067_X100-2005 { UTR22* } ibm-9067 { IBM* } # EBCDIC Greek. Update of ibm-875 and ibm-4971
+ibm-12712_P100-1998 { UTR22* } ibm-12712 { IBM* } ebcdic-he # EBCDIC Hebrew (new sheqel, control charaters update). Update of ibm-424
+ibm-16804_X110-1999 { UTR22* } ibm-16804 { IBM* } ebcdic-ar # EBCDIC Arabic. Update of ibm-420
# EBCDIC codepages for S/390, with LF and NL codes swapped
@@ -939,6 +971,8 @@ ibm-16804_X110-1999,swaplfnl ibm-16804-s390
ebcdic-xml-us
+# TODO Consider removing this table
+ibm-4971_P100-1999 { UTR22* } ibm-4971 { IBM* } # EBCDIC Greek. Update of ibm-875 and superceded by ibm-9067
# These were removed due to age, and they are rarely used.
diff --git a/Build/source/libs/icu-xetex/data/mappings/gb18030.ucm b/Build/source/libs/icu-xetex/data/mappings/gb18030.ucm
index a6d7cbd732e..b46166353f6 100644
--- a/Build/source/libs/icu-xetex/data/mappings/gb18030.ucm
+++ b/Build/source/libs/icu-xetex/data/mappings/gb18030.ucm
@@ -1,4 +1,4 @@
-# Copyright (C) 2000, International Business Machines Corporation and others.
+# Copyright (C) 2000-2005, International Business Machines Corporation and others.
# All Rights Reserved.
# ICU codepage data for GB 18030
@@ -36,7 +36,7 @@
# GB 18030 BMP mappings that are not handled algorithmically are
# generated using gbmake4 and gbtoucm tools. Please see charset/source/gb18030/gb18030.html
-# or http://oss.software.ibm.com/cvs/icu/~checkout~/charset/source/gb18030/gb18030.html
+# or http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/charset/source/gb18030/gb18030.html
# for more information.
CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/ibm-4517_P100-2005.ucm b/Build/source/libs/icu-xetex/data/mappings/ibm-4517_P100-2005.ucm
new file mode 100644
index 00000000000..c7a03c898c9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/mappings/ibm-4517_P100-2005.ucm
@@ -0,0 +1,470 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 1995-2005, International Business Machines
+# * Corporation and others. All Rights Reserved.
+# *
+# ***************************************************************************
+#
+# File created by rptp2ucm (compiled on Nov 15 2005)
+# from source files 54B011A5.RPMAP100 and 11A554B0.TPMAP100
+#
+<code_set_name> "ibm-4517_P100-2005"
+<char_name_mask> "AXXXX"
+<mb_cur_max> 1
+<mb_cur_min> 1
+<uconv_class> "SBCS"
+<subchar> \x3F
+<icu:charsetFamily> "EBCDIC"
+<icu:alias> "ibm-4517_VPUA"
+
+CHARMAP
+<U0000> \x00 |0
+<U0001> \x01 |0
+<U0002> \x02 |0
+<U0003> \x03 |0
+<U0004> \x37 |0
+<U0005> \x2D |0
+<U0006> \x2E |0
+<U0007> \x2F |0
+<U0008> \x16 |0
+<U0009> \x05 |0
+<U000A> \x25 |0
+<U000B> \x0B |0
+<U000C> \x0C |0
+<U000D> \x0D |0
+<U000E> \x0E |0
+<U000F> \x0F |0
+<U0010> \x10 |0
+<U0011> \x11 |0
+<U0012> \x12 |0
+<U0013> \x13 |0
+<U0014> \x3C |0
+<U0015> \x3D |0
+<U0016> \x32 |0
+<U0017> \x26 |0
+<U0018> \x18 |0
+<U0019> \x19 |0
+<U001A> \x3F |0
+<U001B> \x27 |0
+<U001C> \x1C |0
+<U001D> \x1D |0
+<U001E> \x1E |0
+<U001F> \x1F |0
+<U0020> \x40 |0
+<U0021> \x4F |0
+<U0022> \x7F |0
+<U0024> \x5B |0
+<U0025> \x6C |0
+<U0026> \x50 |0
+<U0027> \x7D |0
+<U0028> \x4D |0
+<U0029> \x5D |0
+<U002A> \x5C |0
+<U002B> \x4E |0
+<U002C> \x6B |0
+<U002D> \x60 |0
+<U002E> \x4B |0
+<U002F> \x61 |0
+<U0030> \xF0 |0
+<U0031> \xF1 |0
+<U0032> \xF2 |0
+<U0033> \xF3 |0
+<U0034> \xF4 |0
+<U0035> \xF5 |0
+<U0036> \xF6 |0
+<U0037> \xF7 |0
+<U0038> \xF8 |0
+<U0039> \xF9 |0
+<U003A> \x7A |0
+<U003B> \x5E |0
+<U003C> \x4C |0
+<U003D> \x7E |0
+<U003E> \x6E |0
+<U003F> \x6F |0
+<U0041> \xC1 |0
+<U0042> \xC2 |0
+<U0043> \xC3 |0
+<U0044> \xC4 |0
+<U0045> \xC5 |0
+<U0046> \xC6 |0
+<U0047> \xC7 |0
+<U0048> \xC8 |0
+<U0049> \xC9 |0
+<U004A> \xD1 |0
+<U004B> \xD2 |0
+<U004C> \xD3 |0
+<U004D> \xD4 |0
+<U004E> \xD5 |0
+<U004F> \xD6 |0
+<U0050> \xD7 |0
+<U0051> \xD8 |0
+<U0052> \xD9 |0
+<U0053> \xE2 |0
+<U0054> \xE3 |0
+<U0055> \xE4 |0
+<U0056> \xE5 |0
+<U0057> \xE6 |0
+<U0058> \xE7 |0
+<U0059> \xE8 |0
+<U005A> \xE9 |0
+<U005E> \x5F |0
+<U005F> \x6D |0
+<U0061> \x81 |0
+<U0062> \x82 |0
+<U0063> \x83 |0
+<U0064> \x84 |0
+<U0065> \x85 |0
+<U0066> \x86 |0
+<U0067> \x87 |0
+<U0068> \x88 |0
+<U0069> \x89 |0
+<U006A> \x91 |0
+<U006B> \x92 |0
+<U006C> \x93 |0
+<U006D> \x94 |0
+<U006E> \x95 |0
+<U006F> \x96 |0
+<U0070> \x97 |0
+<U0071> \x98 |0
+<U0072> \x99 |0
+<U0073> \xA2 |0
+<U0074> \xA3 |0
+<U0075> \xA4 |0
+<U0076> \xA5 |0
+<U0077> \xA6 |0
+<U0078> \xA7 |0
+<U0079> \xA8 |0
+<U007A> \xA9 |0
+<U007F> \x07 |0
+<U0080> \x20 |0
+<U0081> \x21 |0
+<U0082> \x22 |0
+<U0083> \x23 |0
+<U0084> \x24 |0
+<U0085> \x15 |0
+<U0086> \x06 |0
+<U0087> \x17 |0
+<U0088> \x28 |0
+<U0089> \x29 |0
+<U008A> \x2A |0
+<U008B> \x2B |0
+<U008C> \x2C |0
+<U008D> \x09 |0
+<U008E> \x0A |0
+<U008F> \x1B |0
+<U0090> \x30 |0
+<U0091> \x31 |0
+<U0092> \x1A |0
+<U0093> \x33 |0
+<U0094> \x34 |0
+<U0095> \x35 |0
+<U0096> \x36 |0
+<U0097> \x08 |0
+<U0098> \x38 |0
+<U0099> \x39 |0
+<U009A> \x3A |0
+<U009B> \x3B |0
+<U009C> \x04 |0
+<U009D> \x14 |0
+<U009E> \x3E |0
+<U009F> \xFF |0
+<U00A0> \x41 |0
+<U00A3> \x79 |0
+<U00A7> \x5A |0
+<U00A8> \xA1 |0
+<U00AD> \xCA |0
+<U00B0> \x4A |0
+<U00B5> \x7B |0
+<U00D7> \xED |0
+<U00E1> \x7C |0
+<U00E7> \xE0 |0
+<U00E8> \xD0 |0
+<U00E9> \xC0 |0
+<U00F7> \xEA |0
+<U00FA> \x6A |0
+<U060C> \xEB |0
+<U061B> \xEF |0
+<U061F> \xEE |0
+<U0621> \x46 |1
+<U0622> \x47 |1
+<U0623> \x49 |1
+<U0624> \x52 |1
+<U0625> \x56 |1
+<U0626> \x55 |1
+<U0627> \x56 |1
+<U0628> \x58 |1
+<U0629> \x62 |1
+<U062A> \x63 |1
+<U062B> \x65 |1
+<U062C> \x67 |1
+<U062D> \x69 |1
+<U062E> \x71 |1
+<U062F> \x73 |1
+<U0630> \x74 |1
+<U0631> \x75 |1
+<U0632> \x76 |1
+<U0633> \x77 |1
+<U0634> \x80 |1
+<U0635> \x8B |1
+<U0636> \x8D |1
+<U0637> \x8F |1
+<U0638> \x90 |1
+<U0639> \x9A |1
+<U063A> \x9E |1
+<U0640> \x44 |0
+<U0641> \xAB |1
+<U0642> \xAD |1
+<U0643> \xAF |1
+<U0644> \xB1 |1
+<U0645> \xBB |1
+<U0646> \xBD |1
+<U0647> \xBF |1
+<U0648> \xCF |1
+<U0649> \xDA |1
+<U064A> \xDC |1
+<U0651> \x42 |1
+<U0660> \xF0 |1
+<U0661> \xF1 |1
+<U0662> \xF2 |1
+<U0663> \xF3 |1
+<U0664> \xF4 |1
+<U0665> \xF5 |1
+<U0666> \xF6 |1
+<U0667> \xF7 |1
+<U0668> \xF8 |1
+<U0669> \xF9 |1
+<U066A> \x6C |1
+<U066B> \x6B |1
+<U066C> \x4B |1
+<U066D> \x5C |1
+<U2007> \xE1 |0
+<U200B> \x45 |0
+<UF8F4> \x8B |1
+<UF8F5> \x80 |1
+<UF8F6> \x77 |1
+<UF8F7> \x8D |1
+<UFE70> \x40 |1
+<UFE71> \x44 |1
+<UFE72> \x40 |1
+<UFE73> \x45 |1
+<UFE74> \x40 |1
+<UFE76> \x40 |1
+<UFE77> \x44 |1
+<UFE78> \x40 |1
+<UFE79> \x44 |1
+<UFE7A> \x40 |1
+<UFE7B> \x44 |1
+<UFE7C> \x42 |0
+<UFE7D> \x43 |0
+<UFE7E> \x40 |1
+<UFE7F> \x44 |1
+<UFE80> \x46 |0
+<UFE81> \x47 |0
+<UFE82> \x48 |0
+<UFE83> \x49 |0
+<UFE84> \x51 |0
+<UFE85> \x52 |0
+<UFE86> \x52 |1
+<UFE87> \x56 |1
+<UFE88> \x57 |1
+<UFE89> \x55 |1
+<UFE8A> \x55 |1
+<UFE8B> \x55 |0
+<UFE8C> \x55 |1
+<UFE8D> \x56 |0
+<UFE8E> \x57 |0
+<UFE8F> \x58 |0
+<UFE90> \x58 |1
+<UFE91> \x59 |0
+<UFE92> \x59 |1
+<UFE93> \x62 |0
+<UFE94> \x62 |1
+<UFE95> \x63 |0
+<UFE96> \x63 |1
+<UFE97> \x64 |0
+<UFE98> \x64 |1
+<UFE99> \x65 |0
+<UFE9A> \x65 |1
+<UFE9B> \x66 |0
+<UFE9C> \x66 |1
+<UFE9D> \x67 |0
+<UFE9E> \x67 |1
+<UFE9F> \x68 |0
+<UFEA0> \x68 |1
+<UFEA1> \x69 |0
+<UFEA2> \x69 |1
+<UFEA3> \x70 |0
+<UFEA4> \x70 |1
+<UFEA5> \x71 |0
+<UFEA6> \x71 |1
+<UFEA7> \x72 |0
+<UFEA8> \x72 |1
+<UFEA9> \x73 |0
+<UFEAA> \x73 |1
+<UFEAB> \x74 |0
+<UFEAC> \x74 |1
+<UFEAD> \x75 |0
+<UFEAE> \x75 |1
+<UFEAF> \x76 |0
+<UFEB0> \x76 |1
+<UFEB1> \x77 |0
+<UFEB2> \x77 |1
+<UFEB3> \x78 |0
+<UFEB4> \x78 |1
+<UFEB5> \x80 |0
+<UFEB6> \x80 |1
+<UFEB7> \x8A |0
+<UFEB8> \x8A |1
+<UFEB9> \x8B |0
+<UFEBA> \x8B |1
+<UFEBB> \x8C |0
+<UFEBC> \x8C |1
+<UFEBD> \x8D |0
+<UFEBE> \x8D |1
+<UFEBF> \x8E |0
+<UFEC0> \x8E |1
+<UFEC1> \x8F |1
+<UFEC2> \x8F |1
+<UFEC3> \x8F |0
+<UFEC4> \x8F |1
+<UFEC5> \x90 |1
+<UFEC6> \x90 |1
+<UFEC7> \x90 |0
+<UFEC8> \x90 |1
+<UFEC9> \x9A |0
+<UFECA> \x9B |0
+<UFECB> \x9C |0
+<UFECC> \x9D |0
+<UFECD> \x9E |0
+<UFECE> \x9F |0
+<UFECF> \xA0 |0
+<UFED0> \xAA |0
+<UFED1> \xAB |0
+<UFED2> \xAB |1
+<UFED3> \xAC |0
+<UFED4> \xAC |1
+<UFED5> \xAD |0
+<UFED6> \xAD |1
+<UFED7> \xAE |0
+<UFED8> \xAE |1
+<UFED9> \xAF |0
+<UFEDA> \xAF |1
+<UFEDB> \xB0 |0
+<UFEDC> \xB0 |1
+<UFEDD> \xB1 |0
+<UFEDE> \xB1 |1
+<UFEDF> \xBA |0
+<UFEE0> \xBA |1
+<UFEE1> \xBB |0
+<UFEE2> \xBB |1
+<UFEE3> \xBC |0
+<UFEE4> \xBC |1
+<UFEE5> \xBD |0
+<UFEE6> \xBD |1
+<UFEE7> \xBE |0
+<UFEE8> \xBE |1
+<UFEE9> \xBF |0
+<UFEEA> \xBF |1
+<UFEEB> \xCB |0
+<UFEEC> \xCD |0
+<UFEED> \xCF |0
+<UFEEE> \xCF |1
+<UFEEF> \xDA |0
+<UFEF0> \xDB |0
+<UFEF1> \xDC |0
+<UFEF2> \xDD |0
+<UFEF3> \xDE |0
+<UFEF4> \xDE |1
+<UFEF5> \xB2 |0
+<UFEF6> \xB3 |0
+<UFEF7> \xB4 |0
+<UFEF8> \xB5 |0
+<UFEF9> \xB8 |1
+<UFEFA> \xB9 |1
+<UFEFB> \xB8 |0
+<UFEFC> \xB9 |0
+<UFF01> \x4F |1
+<UFF02> \x7F |1
+<UFF04> \x5B |1
+<UFF05> \x6C |1
+<UFF06> \x50 |1
+<UFF07> \x7D |1
+<UFF08> \x4D |1
+<UFF09> \x5D |1
+<UFF0A> \x5C |1
+<UFF0B> \x4E |1
+<UFF0C> \x6B |1
+<UFF0D> \x60 |1
+<UFF0E> \x4B |1
+<UFF0F> \x61 |1
+<UFF10> \xF0 |1
+<UFF11> \xF1 |1
+<UFF12> \xF2 |1
+<UFF13> \xF3 |1
+<UFF14> \xF4 |1
+<UFF15> \xF5 |1
+<UFF16> \xF6 |1
+<UFF17> \xF7 |1
+<UFF18> \xF8 |1
+<UFF19> \xF9 |1
+<UFF1A> \x7A |1
+<UFF1B> \x5E |1
+<UFF1C> \x4C |1
+<UFF1D> \x7E |1
+<UFF1E> \x6E |1
+<UFF1F> \x6F |1
+<UFF21> \xC1 |1
+<UFF22> \xC2 |1
+<UFF23> \xC3 |1
+<UFF24> \xC4 |1
+<UFF25> \xC5 |1
+<UFF26> \xC6 |1
+<UFF27> \xC7 |1
+<UFF28> \xC8 |1
+<UFF29> \xC9 |1
+<UFF2A> \xD1 |1
+<UFF2B> \xD2 |1
+<UFF2C> \xD3 |1
+<UFF2D> \xD4 |1
+<UFF2E> \xD5 |1
+<UFF2F> \xD6 |1
+<UFF30> \xD7 |1
+<UFF31> \xD8 |1
+<UFF32> \xD9 |1
+<UFF33> \xE2 |1
+<UFF34> \xE3 |1
+<UFF35> \xE4 |1
+<UFF36> \xE5 |1
+<UFF37> \xE6 |1
+<UFF38> \xE7 |1
+<UFF39> \xE8 |1
+<UFF3A> \xE9 |1
+<UFF3E> \x5F |1
+<UFF3F> \x6D |1
+<UFF41> \x81 |1
+<UFF42> \x82 |1
+<UFF43> \x83 |1
+<UFF44> \x84 |1
+<UFF45> \x85 |1
+<UFF46> \x86 |1
+<UFF47> \x87 |1
+<UFF48> \x88 |1
+<UFF49> \x89 |1
+<UFF4A> \x91 |1
+<UFF4B> \x92 |1
+<UFF4C> \x93 |1
+<UFF4D> \x94 |1
+<UFF4E> \x95 |1
+<UFF4F> \x96 |1
+<UFF50> \x97 |1
+<UFF51> \x98 |1
+<UFF52> \x99 |1
+<UFF53> \xA2 |1
+<UFF54> \xA3 |1
+<UFF55> \xA4 |1
+<UFF56> \xA5 |1
+<UFF57> \xA6 |1
+<UFF58> \xA7 |1
+<UFF59> \xA8 |1
+<UFF5A> \xA9 |1
+END CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/ibm-9067_X100-2005.ucm b/Build/source/libs/icu-xetex/data/mappings/ibm-9067_X100-2005.ucm
new file mode 100644
index 00000000000..e58eceec560
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/mappings/ibm-9067_X100-2005.ucm
@@ -0,0 +1,370 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 1995-2006, International Business Machines
+# * Corporation and others. All Rights Reserved.
+# *
+# ***************************************************************************
+#
+# File created by rptp2ucm (compiled on Aug 1 2006)
+# from source files 54B0236B.RXMAP100 and 236B54B0.TXMAP100
+#
+<code_set_name> "ibm-9067_X100-2005"
+<char_name_mask> "AXXXX"
+<mb_cur_max> 1
+<mb_cur_min> 1
+<uconv_class> "SBCS"
+<subchar> \x3F
+<icu:charsetFamily> "EBCDIC"
+<icu:alias> "ibm-9067_STD"
+
+CHARMAP
+<U0000> \x00 |0
+<U0001> \x01 |0
+<U0002> \x02 |0
+<U0003> \x03 |0
+<U0004> \x37 |0
+<U0005> \x2D |0
+<U0006> \x2E |0
+<U0007> \x2F |0
+<U0008> \x16 |0
+<U0009> \x05 |0
+<U000A> \x25 |0
+<U000B> \x0B |0
+<U000C> \x0C |0
+<U000D> \x0D |0
+<U000E> \x0E |0
+<U000F> \x0F |0
+<U0010> \x10 |0
+<U0011> \x11 |0
+<U0012> \x12 |0
+<U0013> \x13 |0
+<U0014> \x3C |0
+<U0015> \x3D |0
+<U0016> \x32 |0
+<U0017> \x26 |0
+<U0018> \x18 |0
+<U0019> \x19 |0
+<U001A> \x3F |0
+<U001B> \x27 |0
+<U001C> \x1C |0
+<U001D> \x1D |0
+<U001E> \x1E |0
+<U001F> \x1F |0
+<U0020> \x40 |0
+<U0021> \x4F |0
+<U0022> \x7F |0
+<U0023> \x7B |0
+<U0024> \x5B |0
+<U0025> \x6C |0
+<U0026> \x50 |0
+<U0027> \x7D |0
+<U0028> \x4D |0
+<U0029> \x5D |0
+<U002A> \x5C |0
+<U002B> \x4E |0
+<U002C> \x6B |0
+<U002D> \x60 |0
+<U002E> \x4B |0
+<U002F> \x61 |0
+<U0030> \xF0 |0
+<U0031> \xF1 |0
+<U0032> \xF2 |0
+<U0033> \xF3 |0
+<U0034> \xF4 |0
+<U0035> \xF5 |0
+<U0036> \xF6 |0
+<U0037> \xF7 |0
+<U0038> \xF8 |0
+<U0039> \xF9 |0
+<U003A> \x7A |0
+<U003B> \x5E |0
+<U003C> \x4C |0
+<U003D> \x7E |0
+<U003E> \x6E |0
+<U003F> \x6F |0
+<U0040> \x7C |0
+<U0041> \xC1 |0
+<U0042> \xC2 |0
+<U0043> \xC3 |0
+<U0044> \xC4 |0
+<U0045> \xC5 |0
+<U0046> \xC6 |0
+<U0047> \xC7 |0
+<U0048> \xC8 |0
+<U0049> \xC9 |0
+<U004A> \xD1 |0
+<U004B> \xD2 |0
+<U004C> \xD3 |0
+<U004D> \xD4 |0
+<U004E> \xD5 |0
+<U004F> \xD6 |0
+<U0050> \xD7 |0
+<U0051> \xD8 |0
+<U0052> \xD9 |0
+<U0053> \xE2 |0
+<U0054> \xE3 |0
+<U0055> \xE4 |0
+<U0056> \xE5 |0
+<U0057> \xE6 |0
+<U0058> \xE7 |0
+<U0059> \xE8 |0
+<U005A> \xE9 |0
+<U005B> \x4A |0
+<U005C> \xE0 |0
+<U005D> \x5A |0
+<U005E> \x5F |0
+<U005F> \x6D |0
+<U0060> \x79 |0
+<U0061> \x81 |0
+<U0062> \x82 |0
+<U0063> \x83 |0
+<U0064> \x84 |0
+<U0065> \x85 |0
+<U0066> \x86 |0
+<U0067> \x87 |0
+<U0068> \x88 |0
+<U0069> \x89 |0
+<U006A> \x91 |0
+<U006B> \x92 |0
+<U006C> \x93 |0
+<U006D> \x94 |0
+<U006E> \x95 |0
+<U006F> \x96 |0
+<U0070> \x97 |0
+<U0071> \x98 |0
+<U0072> \x99 |0
+<U0073> \xA2 |0
+<U0074> \xA3 |0
+<U0075> \xA4 |0
+<U0076> \xA5 |0
+<U0077> \xA6 |0
+<U0078> \xA7 |0
+<U0079> \xA8 |0
+<U007A> \xA9 |0
+<U007B> \xC0 |0
+<U007C> \x6A |0
+<U007D> \xD0 |0
+<U007E> \xA1 |0
+<U007F> \x07 |0
+<U0080> \x20 |0
+<U0081> \x21 |0
+<U0082> \x22 |0
+<U0083> \x23 |0
+<U0084> \x24 |0
+<U0085> \x15 |0
+<U0086> \x06 |0
+<U0087> \x17 |0
+<U0088> \x28 |0
+<U0089> \x29 |0
+<U008A> \x2A |0
+<U008B> \x2B |0
+<U008C> \x2C |0
+<U008D> \x09 |0
+<U008E> \x0A |0
+<U008F> \x1B |0
+<U0090> \x30 |0
+<U0091> \x31 |0
+<U0092> \x1A |0
+<U0093> \x33 |0
+<U0094> \x34 |0
+<U0095> \x35 |0
+<U0096> \x36 |0
+<U0097> \x08 |0
+<U0098> \x38 |0
+<U0099> \x39 |0
+<U009A> \x3A |0
+<U009B> \x3B |0
+<U009C> \x04 |0
+<U009D> \x14 |0
+<U009E> \x3E |0
+<U009F> \xFF |0
+<U00A0> \x74 |0
+<U00A3> \xB0 |0
+<U00A6> \xDF |0
+<U00A7> \xEB |0
+<U00A8> \x70 |0
+<U00A9> \xFB |0
+<U00AB> \xEE |0
+<U00AC> \xEF |0
+<U00AD> \xCA |0
+<U00B0> \x90 |0
+<U00B1> \xDA |0
+<U00B2> \xEA |0
+<U00B3> \xFA |0
+<U00B4> \xA0 |0
+<U00B7> \xDD |1
+<U00BB> \xFE |0
+<U00BD> \xDB |0
+<U037A> \xEC |0
+<U0385> \x80 |0
+<U0386> \x71 |0
+<U0387> \xDD |0
+<U0388> \x72 |0
+<U0389> \x73 |0
+<U038A> \x75 |0
+<U038C> \x76 |0
+<U038E> \x77 |0
+<U038F> \x78 |0
+<U0390> \xCC |0
+<U0391> \x41 |0
+<U0392> \x42 |0
+<U0393> \x43 |0
+<U0394> \x44 |0
+<U0395> \x45 |0
+<U0396> \x46 |0
+<U0397> \x47 |0
+<U0398> \x48 |0
+<U0399> \x49 |0
+<U039A> \x51 |0
+<U039B> \x52 |0
+<U039C> \x53 |0
+<U039D> \x54 |0
+<U039E> \x55 |0
+<U039F> \x56 |0
+<U03A0> \x57 |0
+<U03A1> \x58 |0
+<U03A3> \x59 |0
+<U03A4> \x62 |0
+<U03A5> \x63 |0
+<U03A6> \x64 |0
+<U03A7> \x65 |0
+<U03A8> \x66 |0
+<U03A9> \x67 |0
+<U03AA> \x68 |0
+<U03AB> \x69 |0
+<U03AC> \xB1 |0
+<U03AD> \xB2 |0
+<U03AE> \xB3 |0
+<U03AF> \xB5 |0
+<U03B0> \xCD |0
+<U03B1> \x8A |0
+<U03B2> \x8B |0
+<U03B3> \x8C |0
+<U03B4> \x8D |0
+<U03B5> \x8E |0
+<U03B6> \x8F |0
+<U03B7> \x9A |0
+<U03B8> \x9B |0
+<U03B9> \x9C |0
+<U03BA> \x9D |0
+<U03BB> \x9E |0
+<U03BC> \x9F |0
+<U03BD> \xAA |0
+<U03BE> \xAB |0
+<U03BF> \xAC |0
+<U03C0> \xAD |0
+<U03C1> \xAE |0
+<U03C2> \xBA |0
+<U03C3> \xAF |0
+<U03C4> \xBB |0
+<U03C5> \xBC |0
+<U03C6> \xBD |0
+<U03C7> \xBE |0
+<U03C8> \xBF |0
+<U03C9> \xCB |0
+<U03CA> \xB4 |0
+<U03CB> \xB8 |0
+<U03CC> \xB6 |0
+<U03CD> \xB7 |0
+<U03CE> \xB9 |0
+<U03D5> \xBD |1
+<U2015> \xCF |0
+<U2018> \xCE |0
+<U2019> \xDE |0
+<U20AC> \xFC |0
+<U20AF> \xE1 |0
+<UFF01> \x4F |1
+<UFF02> \x7F |1
+<UFF03> \x7B |1
+<UFF04> \x5B |1
+<UFF05> \x6C |1
+<UFF06> \x50 |1
+<UFF07> \x7D |1
+<UFF08> \x4D |1
+<UFF09> \x5D |1
+<UFF0A> \x5C |1
+<UFF0B> \x4E |1
+<UFF0C> \x6B |1
+<UFF0D> \x60 |1
+<UFF0E> \x4B |1
+<UFF0F> \x61 |1
+<UFF10> \xF0 |1
+<UFF11> \xF1 |1
+<UFF12> \xF2 |1
+<UFF13> \xF3 |1
+<UFF14> \xF4 |1
+<UFF15> \xF5 |1
+<UFF16> \xF6 |1
+<UFF17> \xF7 |1
+<UFF18> \xF8 |1
+<UFF19> \xF9 |1
+<UFF1A> \x7A |1
+<UFF1B> \x5E |1
+<UFF1C> \x4C |1
+<UFF1D> \x7E |1
+<UFF1E> \x6E |1
+<UFF1F> \x6F |1
+<UFF20> \x7C |1
+<UFF21> \xC1 |1
+<UFF22> \xC2 |1
+<UFF23> \xC3 |1
+<UFF24> \xC4 |1
+<UFF25> \xC5 |1
+<UFF26> \xC6 |1
+<UFF27> \xC7 |1
+<UFF28> \xC8 |1
+<UFF29> \xC9 |1
+<UFF2A> \xD1 |1
+<UFF2B> \xD2 |1
+<UFF2C> \xD3 |1
+<UFF2D> \xD4 |1
+<UFF2E> \xD5 |1
+<UFF2F> \xD6 |1
+<UFF30> \xD7 |1
+<UFF31> \xD8 |1
+<UFF32> \xD9 |1
+<UFF33> \xE2 |1
+<UFF34> \xE3 |1
+<UFF35> \xE4 |1
+<UFF36> \xE5 |1
+<UFF37> \xE6 |1
+<UFF38> \xE7 |1
+<UFF39> \xE8 |1
+<UFF3A> \xE9 |1
+<UFF3B> \x4A |1
+<UFF3C> \xE0 |1
+<UFF3D> \x5A |1
+<UFF3E> \x5F |1
+<UFF3F> \x6D |1
+<UFF40> \x79 |1
+<UFF41> \x81 |1
+<UFF42> \x82 |1
+<UFF43> \x83 |1
+<UFF44> \x84 |1
+<UFF45> \x85 |1
+<UFF46> \x86 |1
+<UFF47> \x87 |1
+<UFF48> \x88 |1
+<UFF49> \x89 |1
+<UFF4A> \x91 |1
+<UFF4B> \x92 |1
+<UFF4C> \x93 |1
+<UFF4D> \x94 |1
+<UFF4E> \x95 |1
+<UFF4F> \x96 |1
+<UFF50> \x97 |1
+<UFF51> \x98 |1
+<UFF52> \x99 |1
+<UFF53> \xA2 |1
+<UFF54> \xA3 |1
+<UFF55> \xA4 |1
+<UFF56> \xA5 |1
+<UFF57> \xA6 |1
+<UFF58> \xA7 |1
+<UFF59> \xA8 |1
+<UFF5A> \xA9 |1
+<UFF5B> \xC0 |1
+<UFF5C> \x6A |1
+<UFF5D> \xD0 |1
+<UFF5E> \xA1 |1
+END CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/windows-1256-2000.ucm b/Build/source/libs/icu-xetex/data/mappings/ibm-9448_X100-2005.ucm
index f9096ffd1f1..25d74cf2834 100644
--- a/Build/source/libs/icu-xetex/data/mappings/windows-1256-2000.ucm
+++ b/Build/source/libs/icu-xetex/data/mappings/ibm-9448_X100-2005.ucm
@@ -1,38 +1,22 @@
# ***************************************************************************
# *
-# * Copyright (C) 2001-2003, International Business Machines
+# * Copyright (C) 1995-2005, International Business Machines
# * Corporation and others. All Rights Reserved.
# *
# ***************************************************************************
#
-# File created on Dec 03 13:48 Pacific Standard Time 2002
+# File created by rptp2ucm (compiled on Nov 15 2005)
+# from source files 54B024E8.RXMAP100 and 24E854B0.TXMAP100
#
-# File created by genmucm tool.
-# from windows 2000 using IMultiLanguage 5.50.4522.1800
-#
-# Table Version : 1.0
-# The 1st column is the Unicode scalar value.
-# The 2nd column is the codepage byte sequence.
-# The 3rd column is the fallback indicator.
-# The fallback indicator can have one of the following values:
-# |0 for exact 1-1 roundtrip mapping
-# |1 for the best fallback codepage byte sequence.
-# |2 for the substitution character
-# |3 for the best reverse fallback Unicode scaler value
-#
-# Encoding description: Arabic (Windows)
-# Encoding name: windows-1256
-#
-<code_set_name> "windows-1256-2000"
+<code_set_name> "ibm-9448_X100-2005"
+<char_name_mask> "AXXXX"
<mb_cur_max> 1
<mb_cur_min> 1
<uconv_class> "SBCS"
-<subchar> \x3F
+<subchar> \x1A
<icu:charsetFamily> "ASCII"
-# Suggested ICU specific alias information
-#<icu:alias> "windows-1256_STD"
+<icu:alias> "ibm-9448_STD"
-#
CHARMAP
<U0000> \x00 |0
<U0001> \x01 |0
@@ -190,20 +174,7 @@ CHARMAP
<U00BC> \xBC |0
<U00BD> \xBD |0
<U00BE> \xBE |0
-<U00C0> \x41 |1
-<U00C2> \x41 |1
-<U00C7> \x43 |1
-<U00C8> \x45 |1
-<U00C9> \x45 |1
-<U00CA> \x45 |1
-<U00CB> \x45 |1
-<U00CE> \x49 |1
-<U00CF> \x49 |1
-<U00D4> \x4F |1
<U00D7> \xD7 |0
-<U00D9> \x55 |1
-<U00DB> \x55 |1
-<U00DC> \x55 |1
<U00E0> \xE0 |0
<U00E2> \xE2 |0
<U00E7> \xE7 |0
@@ -223,6 +194,7 @@ CHARMAP
<U0191> \x46 |1
<U0192> \x83 |0
<U02C6> \x88 |0
+<U02CB> \x60 |1
<U060C> \xA1 |0
<U061B> \xBA |0
<U061F> \xBF |0
@@ -271,6 +243,18 @@ CHARMAP
<U0650> \xF6 |0
<U0651> \xF8 |0
<U0652> \xFA |0
+<U0660> \x30 |1
+<U0661> \x31 |1
+<U0662> \x32 |1
+<U0663> \x33 |1
+<U0664> \x34 |1
+<U0665> \x35 |1
+<U0666> \x36 |1
+<U0667> \x37 |1
+<U0668> \x38 |1
+<U0669> \x39 |1
+<U066B> \x2C |1
+<U066C> \x2E |1
<U0679> \x8A |0
<U067E> \x81 |0
<U0686> \x8D |0
@@ -284,6 +268,16 @@ CHARMAP
<U06C1> \xC0 |0
<U06CC> \xED |1
<U06D2> \xFF |0
+<U06F0> \x30 |1
+<U06F1> \x31 |1
+<U06F2> \x32 |1
+<U06F3> \x33 |1
+<U06F4> \x34 |1
+<U06F5> \x35 |1
+<U06F6> \x36 |1
+<U06F7> \x37 |1
+<U06F8> \x38 |1
+<U06F9> \x39 |1
<U200C> \x9D |0
<U200D> \x9E |0
<U200E> \xFD |0
@@ -303,6 +297,7 @@ CHARMAP
<U2030> \x89 |0
<U2039> \x8B |0
<U203A> \x9B |0
+<U203E> \xAF |1
<U20AC> \x80 |0
<U2122> \x99 |0
<UFB56> \x81 |1
@@ -346,6 +341,7 @@ CHARMAP
<UFE70> \xF0 |1
<UFE71> \xF0 |1
<UFE72> \xF1 |1
+<UFE73> \x20 |1
<UFE74> \xF2 |1
<UFE76> \xF3 |1
<UFE77> \xF3 |1
@@ -504,6 +500,7 @@ CHARMAP
<UFF1C> \x3C |1
<UFF1D> \x3D |1
<UFF1E> \x3E |1
+<UFF1F> \x3F |1
<UFF20> \x40 |1
<UFF21> \x41 |1
<UFF22> \x42 |1
diff --git a/Build/source/libs/icu-xetex/data/mappings/iso-8859_10-1998.ucm b/Build/source/libs/icu-xetex/data/mappings/iso-8859_10-1998.ucm
new file mode 100644
index 00000000000..4d4c3f81c52
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/mappings/iso-8859_10-1998.ucm
@@ -0,0 +1,307 @@
+#
+# Name: ISO/IEC 8859-10:1998 to Unicode
+# Unicode version: 3.0
+# Table version: 1.1
+# Table format: Format A
+# Date: 1999 October 11
+# Authors: Ken Whistler <kenw@sybase.com>
+#
+# Copyright (c) 1999 Unicode, Inc. All Rights reserved.
+# Copyright (C) 2002-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-10:1998 characters map into Unicode.
+#
+# Format: The ICU UCM format
+#
+# Version history
+# 1.0 version new.
+# 1.1 corrected mistake in mapping of 0xA4
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+<code_set_name> "iso-8859_10-1998"
+<mb_cur_max> 1
+<mb_cur_min> 1
+<uconv_class> "SBCS"
+<subchar> \x1A
+CHARMAP
+<U0000> \x00 |0
+<U0001> \x01 |0
+<U0002> \x02 |0
+<U0003> \x03 |0
+<U0004> \x04 |0
+<U0005> \x05 |0
+<U0006> \x06 |0
+<U0007> \x07 |0
+<U0008> \x08 |0
+<U0009> \x09 |0
+<U000A> \x0A |0
+<U000B> \x0B |0
+<U000C> \x0C |0
+<U000D> \x0D |0
+<U000E> \x0E |0
+<U000F> \x0F |0
+<U0010> \x10 |0
+<U0011> \x11 |0
+<U0012> \x12 |0
+<U0013> \x13 |0
+<U0014> \x14 |0
+<U0015> \x15 |0
+<U0016> \x16 |0
+<U0017> \x17 |0
+<U0018> \x18 |0
+<U0019> \x19 |0
+<U001A> \x1A |0
+<U001B> \x1B |0
+<U001C> \x1C |0
+<U001D> \x1D |0
+<U001E> \x1E |0
+<U001F> \x1F |0
+<U0020> \x20 |0
+<U0021> \x21 |0
+<U0022> \x22 |0
+<U0023> \x23 |0
+<U0024> \x24 |0
+<U0025> \x25 |0
+<U0026> \x26 |0
+<U0027> \x27 |0
+<U0028> \x28 |0
+<U0029> \x29 |0
+<U002A> \x2A |0
+<U002B> \x2B |0
+<U002C> \x2C |0
+<U002D> \x2D |0
+<U002E> \x2E |0
+<U002F> \x2F |0
+<U0030> \x30 |0
+<U0031> \x31 |0
+<U0032> \x32 |0
+<U0033> \x33 |0
+<U0034> \x34 |0
+<U0035> \x35 |0
+<U0036> \x36 |0
+<U0037> \x37 |0
+<U0038> \x38 |0
+<U0039> \x39 |0
+<U003A> \x3A |0
+<U003B> \x3B |0
+<U003C> \x3C |0
+<U003D> \x3D |0
+<U003E> \x3E |0
+<U003F> \x3F |0
+<U0040> \x40 |0
+<U0041> \x41 |0
+<U0042> \x42 |0
+<U0043> \x43 |0
+<U0044> \x44 |0
+<U0045> \x45 |0
+<U0046> \x46 |0
+<U0047> \x47 |0
+<U0048> \x48 |0
+<U0049> \x49 |0
+<U004A> \x4A |0
+<U004B> \x4B |0
+<U004C> \x4C |0
+<U004D> \x4D |0
+<U004E> \x4E |0
+<U004F> \x4F |0
+<U0050> \x50 |0
+<U0051> \x51 |0
+<U0052> \x52 |0
+<U0053> \x53 |0
+<U0054> \x54 |0
+<U0055> \x55 |0
+<U0056> \x56 |0
+<U0057> \x57 |0
+<U0058> \x58 |0
+<U0059> \x59 |0
+<U005A> \x5A |0
+<U005B> \x5B |0
+<U005C> \x5C |0
+<U005D> \x5D |0
+<U005E> \x5E |0
+<U005F> \x5F |0
+<U0060> \x60 |0
+<U0061> \x61 |0
+<U0062> \x62 |0
+<U0063> \x63 |0
+<U0064> \x64 |0
+<U0065> \x65 |0
+<U0066> \x66 |0
+<U0067> \x67 |0
+<U0068> \x68 |0
+<U0069> \x69 |0
+<U006A> \x6A |0
+<U006B> \x6B |0
+<U006C> \x6C |0
+<U006D> \x6D |0
+<U006E> \x6E |0
+<U006F> \x6F |0
+<U0070> \x70 |0
+<U0071> \x71 |0
+<U0072> \x72 |0
+<U0073> \x73 |0
+<U0074> \x74 |0
+<U0075> \x75 |0
+<U0076> \x76 |0
+<U0077> \x77 |0
+<U0078> \x78 |0
+<U0079> \x79 |0
+<U007A> \x7A |0
+<U007B> \x7B |0
+<U007C> \x7C |0
+<U007D> \x7D |0
+<U007E> \x7E |0
+<U007F> \x7F |0
+<U0080> \x80 |0
+<U0081> \x81 |0
+<U0082> \x82 |0
+<U0083> \x83 |0
+<U0084> \x84 |0
+<U0085> \x85 |0
+<U0086> \x86 |0
+<U0087> \x87 |0
+<U0088> \x88 |0
+<U0089> \x89 |0
+<U008A> \x8A |0
+<U008B> \x8B |0
+<U008C> \x8C |0
+<U008D> \x8D |0
+<U008E> \x8E |0
+<U008F> \x8F |0
+<U0090> \x90 |0
+<U0091> \x91 |0
+<U0092> \x92 |0
+<U0093> \x93 |0
+<U0094> \x94 |0
+<U0095> \x95 |0
+<U0096> \x96 |0
+<U0097> \x97 |0
+<U0098> \x98 |0
+<U0099> \x99 |0
+<U009A> \x9A |0
+<U009B> \x9B |0
+<U009C> \x9C |0
+<U009D> \x9D |0
+<U009E> \x9E |0
+<U009F> \x9F |0
+<U00A0> \xA0 |0
+<U00A7> \xA7 |0
+<U00AD> \xAD |0
+<U00B0> \xB0 |0
+<U00B7> \xB7 |0
+<U00C1> \xC1 |0
+<U00C2> \xC2 |0
+<U00C3> \xC3 |0
+<U00C4> \xC4 |0
+<U00C5> \xC5 |0
+<U00C6> \xC6 |0
+<U00C9> \xC9 |0
+<U00CB> \xCB |0
+<U00CD> \xCD |0
+<U00CE> \xCE |0
+<U00CF> \xCF |0
+<U00D0> \xD0 |0
+<U00D3> \xD3 |0
+<U00D4> \xD4 |0
+<U00D5> \xD5 |0
+<U00D6> \xD6 |0
+<U00D8> \xD8 |0
+<U00DA> \xDA |0
+<U00DB> \xDB |0
+<U00DC> \xDC |0
+<U00DD> \xDD |0
+<U00DE> \xDE |0
+<U00DF> \xDF |0
+<U00E1> \xE1 |0
+<U00E2> \xE2 |0
+<U00E3> \xE3 |0
+<U00E4> \xE4 |0
+<U00E5> \xE5 |0
+<U00E6> \xE6 |0
+<U00E9> \xE9 |0
+<U00EB> \xEB |0
+<U00ED> \xED |0
+<U00EE> \xEE |0
+<U00EF> \xEF |0
+<U00F0> \xF0 |0
+<U00F3> \xF3 |0
+<U00F4> \xF4 |0
+<U00F5> \xF5 |0
+<U00F6> \xF6 |0
+<U00F8> \xF8 |0
+<U00FA> \xFA |0
+<U00FB> \xFB |0
+<U00FC> \xFC |0
+<U00FD> \xFD |0
+<U00FE> \xFE |0
+<U0100> \xC0 |0
+<U0101> \xE0 |0
+<U0104> \xA1 |0
+<U0105> \xB1 |0
+<U010C> \xC8 |0
+<U010D> \xE8 |0
+<U0110> \xA9 |0
+<U0111> \xB9 |0
+<U0112> \xA2 |0
+<U0113> \xB2 |0
+<U0116> \xCC |0
+<U0117> \xEC |0
+<U0118> \xCA |0
+<U0119> \xEA |0
+<U0122> \xA3 |0
+<U0123> \xB3 |0
+<U0128> \xA5 |0
+<U0129> \xB5 |0
+<U012A> \xA4 |0
+<U012B> \xB4 |0
+<U012E> \xC7 |0
+<U012F> \xE7 |0
+<U0136> \xA6 |0
+<U0137> \xB6 |0
+<U0138> \xFF |0
+<U013B> \xA8 |0
+<U013C> \xB8 |0
+<U0145> \xD1 |0
+<U0146> \xF1 |0
+<U014A> \xAF |0
+<U014B> \xBF |0
+<U014C> \xD2 |0
+<U014D> \xF2 |0
+<U0160> \xAA |0
+<U0161> \xBA |0
+<U0166> \xAB |0
+<U0167> \xBB |0
+<U0168> \xD7 |0
+<U0169> \xF7 |0
+<U016A> \xAE |0
+<U016B> \xBE |0
+<U0172> \xD9 |0
+<U0173> \xF9 |0
+<U017D> \xAC |0
+<U017E> \xBC |0
+<U2015> \xBD |0
+END CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/iso-8859_11-2001.ucm b/Build/source/libs/icu-xetex/data/mappings/iso-8859_11-2001.ucm
new file mode 100644
index 00000000000..2108f19c216
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/mappings/iso-8859_11-2001.ucm
@@ -0,0 +1,301 @@
+#
+# Name: ISO/IEC 8859-11:2001 to Unicode
+# Unicode version: 3.2
+# Table version: 1.0
+# Table format: Format A
+# Date: 2002 October 7
+# Authors: Ken Whistler <kenw@sybase.com>
+#
+# Copyright (c) 2002 Unicode, Inc. All Rights reserved.
+# Copyright (C) 2002-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-11:2001 characters map into Unicode.
+#
+# ISO/IEC 8859-11:2001 is equivalent to TIS 620-2533 (1990) with
+# the addition of 0xA0 NO-BREAK SPACE.
+#
+# Format: The ICU UCM format
+#
+# Version history:
+# 2002 October 7 Created
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# For any comments or problems, please use the Unicode
+# web contact form at:
+# http://www.unicode.org/unicode/reporting.html
+#
+<code_set_name> "iso-8859_11-2001"
+<mb_cur_max> 1
+<mb_cur_min> 1
+<uconv_class> "SBCS"
+<subchar> \x1A
+CHARMAP
+<U0000> \x00 |0
+<U0001> \x01 |0
+<U0002> \x02 |0
+<U0003> \x03 |0
+<U0004> \x04 |0
+<U0005> \x05 |0
+<U0006> \x06 |0
+<U0007> \x07 |0
+<U0008> \x08 |0
+<U0009> \x09 |0
+<U000A> \x0A |0
+<U000B> \x0B |0
+<U000C> \x0C |0
+<U000D> \x0D |0
+<U000E> \x0E |0
+<U000F> \x0F |0
+<U0010> \x10 |0
+<U0011> \x11 |0
+<U0012> \x12 |0
+<U0013> \x13 |0
+<U0014> \x14 |0
+<U0015> \x15 |0
+<U0016> \x16 |0
+<U0017> \x17 |0
+<U0018> \x18 |0
+<U0019> \x19 |0
+<U001A> \x1A |0
+<U001B> \x1B |0
+<U001C> \x1C |0
+<U001D> \x1D |0
+<U001E> \x1E |0
+<U001F> \x1F |0
+<U0020> \x20 |0
+<U0021> \x21 |0
+<U0022> \x22 |0
+<U0023> \x23 |0
+<U0024> \x24 |0
+<U0025> \x25 |0
+<U0026> \x26 |0
+<U0027> \x27 |0
+<U0028> \x28 |0
+<U0029> \x29 |0
+<U002A> \x2A |0
+<U002B> \x2B |0
+<U002C> \x2C |0
+<U002D> \x2D |0
+<U002E> \x2E |0
+<U002F> \x2F |0
+<U0030> \x30 |0
+<U0031> \x31 |0
+<U0032> \x32 |0
+<U0033> \x33 |0
+<U0034> \x34 |0
+<U0035> \x35 |0
+<U0036> \x36 |0
+<U0037> \x37 |0
+<U0038> \x38 |0
+<U0039> \x39 |0
+<U003A> \x3A |0
+<U003B> \x3B |0
+<U003C> \x3C |0
+<U003D> \x3D |0
+<U003E> \x3E |0
+<U003F> \x3F |0
+<U0040> \x40 |0
+<U0041> \x41 |0
+<U0042> \x42 |0
+<U0043> \x43 |0
+<U0044> \x44 |0
+<U0045> \x45 |0
+<U0046> \x46 |0
+<U0047> \x47 |0
+<U0048> \x48 |0
+<U0049> \x49 |0
+<U004A> \x4A |0
+<U004B> \x4B |0
+<U004C> \x4C |0
+<U004D> \x4D |0
+<U004E> \x4E |0
+<U004F> \x4F |0
+<U0050> \x50 |0
+<U0051> \x51 |0
+<U0052> \x52 |0
+<U0053> \x53 |0
+<U0054> \x54 |0
+<U0055> \x55 |0
+<U0056> \x56 |0
+<U0057> \x57 |0
+<U0058> \x58 |0
+<U0059> \x59 |0
+<U005A> \x5A |0
+<U005B> \x5B |0
+<U005C> \x5C |0
+<U005D> \x5D |0
+<U005E> \x5E |0
+<U005F> \x5F |0
+<U0060> \x60 |0
+<U0061> \x61 |0
+<U0062> \x62 |0
+<U0063> \x63 |0
+<U0064> \x64 |0
+<U0065> \x65 |0
+<U0066> \x66 |0
+<U0067> \x67 |0
+<U0068> \x68 |0
+<U0069> \x69 |0
+<U006A> \x6A |0
+<U006B> \x6B |0
+<U006C> \x6C |0
+<U006D> \x6D |0
+<U006E> \x6E |0
+<U006F> \x6F |0
+<U0070> \x70 |0
+<U0071> \x71 |0
+<U0072> \x72 |0
+<U0073> \x73 |0
+<U0074> \x74 |0
+<U0075> \x75 |0
+<U0076> \x76 |0
+<U0077> \x77 |0
+<U0078> \x78 |0
+<U0079> \x79 |0
+<U007A> \x7A |0
+<U007B> \x7B |0
+<U007C> \x7C |0
+<U007D> \x7D |0
+<U007E> \x7E |0
+<U007F> \x7F |0
+<U0080> \x80 |0
+<U0081> \x81 |0
+<U0082> \x82 |0
+<U0083> \x83 |0
+<U0084> \x84 |0
+<U0085> \x85 |0
+<U0086> \x86 |0
+<U0087> \x87 |0
+<U0088> \x88 |0
+<U0089> \x89 |0
+<U008A> \x8A |0
+<U008B> \x8B |0
+<U008C> \x8C |0
+<U008D> \x8D |0
+<U008E> \x8E |0
+<U008F> \x8F |0
+<U0090> \x90 |0
+<U0091> \x91 |0
+<U0092> \x92 |0
+<U0093> \x93 |0
+<U0094> \x94 |0
+<U0095> \x95 |0
+<U0096> \x96 |0
+<U0097> \x97 |0
+<U0098> \x98 |0
+<U0099> \x99 |0
+<U009A> \x9A |0
+<U009B> \x9B |0
+<U009C> \x9C |0
+<U009D> \x9D |0
+<U009E> \x9E |0
+<U009F> \x9F |0
+<U00A0> \xA0 |0
+<U0E01> \xA1 |0
+<U0E02> \xA2 |0
+<U0E03> \xA3 |0
+<U0E04> \xA4 |0
+<U0E05> \xA5 |0
+<U0E06> \xA6 |0
+<U0E07> \xA7 |0
+<U0E08> \xA8 |0
+<U0E09> \xA9 |0
+<U0E0A> \xAA |0
+<U0E0B> \xAB |0
+<U0E0C> \xAC |0
+<U0E0D> \xAD |0
+<U0E0E> \xAE |0
+<U0E0F> \xAF |0
+<U0E10> \xB0 |0
+<U0E11> \xB1 |0
+<U0E12> \xB2 |0
+<U0E13> \xB3 |0
+<U0E14> \xB4 |0
+<U0E15> \xB5 |0
+<U0E16> \xB6 |0
+<U0E17> \xB7 |0
+<U0E18> \xB8 |0
+<U0E19> \xB9 |0
+<U0E1A> \xBA |0
+<U0E1B> \xBB |0
+<U0E1C> \xBC |0
+<U0E1D> \xBD |0
+<U0E1E> \xBE |0
+<U0E1F> \xBF |0
+<U0E20> \xC0 |0
+<U0E21> \xC1 |0
+<U0E22> \xC2 |0
+<U0E23> \xC3 |0
+<U0E24> \xC4 |0
+<U0E25> \xC5 |0
+<U0E26> \xC6 |0
+<U0E27> \xC7 |0
+<U0E28> \xC8 |0
+<U0E29> \xC9 |0
+<U0E2A> \xCA |0
+<U0E2B> \xCB |0
+<U0E2C> \xCC |0
+<U0E2D> \xCD |0
+<U0E2E> \xCE |0
+<U0E2F> \xCF |0
+<U0E30> \xD0 |0
+<U0E31> \xD1 |0
+<U0E32> \xD2 |0
+<U0E33> \xD3 |0
+<U0E34> \xD4 |0
+<U0E35> \xD5 |0
+<U0E36> \xD6 |0
+<U0E37> \xD7 |0
+<U0E38> \xD8 |0
+<U0E39> \xD9 |0
+<U0E3A> \xDA |0
+<U0E3F> \xDF |0
+<U0E40> \xE0 |0
+<U0E41> \xE1 |0
+<U0E42> \xE2 |0
+<U0E43> \xE3 |0
+<U0E44> \xE4 |0
+<U0E45> \xE5 |0
+<U0E46> \xE6 |0
+<U0E47> \xE7 |0
+<U0E48> \xE8 |0
+<U0E49> \xE9 |0
+<U0E4A> \xEA |0
+<U0E4B> \xEB |0
+<U0E4C> \xEC |0
+<U0E4D> \xED |0
+<U0E4E> \xEE |0
+<U0E4F> \xEF |0
+<U0E50> \xF0 |0
+<U0E51> \xF1 |0
+<U0E52> \xF2 |0
+<U0E53> \xF3 |0
+<U0E54> \xF4 |0
+<U0E55> \xF5 |0
+<U0E56> \xF6 |0
+<U0E57> \xF7 |0
+<U0E58> \xF8 |0
+<U0E59> \xF9 |0
+<U0E5A> \xFA |0
+<U0E5B> \xFB |0
+END CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/iso-8859_14-1998.ucm b/Build/source/libs/icu-xetex/data/mappings/iso-8859_14-1998.ucm
new file mode 100644
index 00000000000..5bb5ca4b1a4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/mappings/iso-8859_14-1998.ucm
@@ -0,0 +1,304 @@
+#
+# Name: ISO/IEC 8859-14:1998 to Unicode
+# Unicode version: 3.0
+# Table version: 1.0
+# Table format: Format A
+# Date: 1999 July 27
+# Authors: Markus Kuhn <mkuhn@acm.org>
+# Ken Whistler <kenw@sybase.com>
+#
+# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
+# Copyright (C) 2002-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
+# No claims are made as to fitness for any particular purpose. No
+# warranties of any kind are expressed or implied. The recipient
+# agrees to determine applicability of information provided. If this
+# file has been provided on optical media by Unicode, Inc., the sole
+# remedy for any claim will be exchange of defective media within 90
+# days of receipt.
+#
+# Unicode, Inc. hereby grants the right to freely use the information
+# supplied in this file in the creation of products supporting the
+# Unicode Standard, and to make copies of this file in any form for
+# internal or external distribution as long as this notice remains
+# attached.
+#
+# General notes:
+#
+# This table contains the data the Unicode Consortium has on how
+# ISO/IEC 8859-14:1998 characters map into Unicode.
+#
+# Format: The ICU UCM format
+#
+# Updated versions of this file may be found in:
+# <ftp://ftp.unicode.org/Public/MAPPINGS/>
+#
+# Any comments or problems, contact <errata@unicode.org>
+# Please note that <errata@unicode.org> is an archival address;
+# notices will be checked, but do not expect an immediate response.
+#
+<code_set_name> "iso-8859_14-1998"
+<mb_cur_max> 1
+<mb_cur_min> 1
+<uconv_class> "SBCS"
+<subchar> \x1A
+CHARMAP
+<U0000> \x00 |0
+<U0001> \x01 |0
+<U0002> \x02 |0
+<U0003> \x03 |0
+<U0004> \x04 |0
+<U0005> \x05 |0
+<U0006> \x06 |0
+<U0007> \x07 |0
+<U0008> \x08 |0
+<U0009> \x09 |0
+<U000A> \x0A |0
+<U000B> \x0B |0
+<U000C> \x0C |0
+<U000D> \x0D |0
+<U000E> \x0E |0
+<U000F> \x0F |0
+<U0010> \x10 |0
+<U0011> \x11 |0
+<U0012> \x12 |0
+<U0013> \x13 |0
+<U0014> \x14 |0
+<U0015> \x15 |0
+<U0016> \x16 |0
+<U0017> \x17 |0
+<U0018> \x18 |0
+<U0019> \x19 |0
+<U001A> \x1A |0
+<U001B> \x1B |0
+<U001C> \x1C |0
+<U001D> \x1D |0
+<U001E> \x1E |0
+<U001F> \x1F |0
+<U0020> \x20 |0
+<U0021> \x21 |0
+<U0022> \x22 |0
+<U0023> \x23 |0
+<U0024> \x24 |0
+<U0025> \x25 |0
+<U0026> \x26 |0
+<U0027> \x27 |0
+<U0028> \x28 |0
+<U0029> \x29 |0
+<U002A> \x2A |0
+<U002B> \x2B |0
+<U002C> \x2C |0
+<U002D> \x2D |0
+<U002E> \x2E |0
+<U002F> \x2F |0
+<U0030> \x30 |0
+<U0031> \x31 |0
+<U0032> \x32 |0
+<U0033> \x33 |0
+<U0034> \x34 |0
+<U0035> \x35 |0
+<U0036> \x36 |0
+<U0037> \x37 |0
+<U0038> \x38 |0
+<U0039> \x39 |0
+<U003A> \x3A |0
+<U003B> \x3B |0
+<U003C> \x3C |0
+<U003D> \x3D |0
+<U003E> \x3E |0
+<U003F> \x3F |0
+<U0040> \x40 |0
+<U0041> \x41 |0
+<U0042> \x42 |0
+<U0043> \x43 |0
+<U0044> \x44 |0
+<U0045> \x45 |0
+<U0046> \x46 |0
+<U0047> \x47 |0
+<U0048> \x48 |0
+<U0049> \x49 |0
+<U004A> \x4A |0
+<U004B> \x4B |0
+<U004C> \x4C |0
+<U004D> \x4D |0
+<U004E> \x4E |0
+<U004F> \x4F |0
+<U0050> \x50 |0
+<U0051> \x51 |0
+<U0052> \x52 |0
+<U0053> \x53 |0
+<U0054> \x54 |0
+<U0055> \x55 |0
+<U0056> \x56 |0
+<U0057> \x57 |0
+<U0058> \x58 |0
+<U0059> \x59 |0
+<U005A> \x5A |0
+<U005B> \x5B |0
+<U005C> \x5C |0
+<U005D> \x5D |0
+<U005E> \x5E |0
+<U005F> \x5F |0
+<U0060> \x60 |0
+<U0061> \x61 |0
+<U0062> \x62 |0
+<U0063> \x63 |0
+<U0064> \x64 |0
+<U0065> \x65 |0
+<U0066> \x66 |0
+<U0067> \x67 |0
+<U0068> \x68 |0
+<U0069> \x69 |0
+<U006A> \x6A |0
+<U006B> \x6B |0
+<U006C> \x6C |0
+<U006D> \x6D |0
+<U006E> \x6E |0
+<U006F> \x6F |0
+<U0070> \x70 |0
+<U0071> \x71 |0
+<U0072> \x72 |0
+<U0073> \x73 |0
+<U0074> \x74 |0
+<U0075> \x75 |0
+<U0076> \x76 |0
+<U0077> \x77 |0
+<U0078> \x78 |0
+<U0079> \x79 |0
+<U007A> \x7A |0
+<U007B> \x7B |0
+<U007C> \x7C |0
+<U007D> \x7D |0
+<U007E> \x7E |0
+<U007F> \x7F |0
+<U0080> \x80 |0
+<U0081> \x81 |0
+<U0082> \x82 |0
+<U0083> \x83 |0
+<U0084> \x84 |0
+<U0085> \x85 |0
+<U0086> \x86 |0
+<U0087> \x87 |0
+<U0088> \x88 |0
+<U0089> \x89 |0
+<U008A> \x8A |0
+<U008B> \x8B |0
+<U008C> \x8C |0
+<U008D> \x8D |0
+<U008E> \x8E |0
+<U008F> \x8F |0
+<U0090> \x90 |0
+<U0091> \x91 |0
+<U0092> \x92 |0
+<U0093> \x93 |0
+<U0094> \x94 |0
+<U0095> \x95 |0
+<U0096> \x96 |0
+<U0097> \x97 |0
+<U0098> \x98 |0
+<U0099> \x99 |0
+<U009A> \x9A |0
+<U009B> \x9B |0
+<U009C> \x9C |0
+<U009D> \x9D |0
+<U009E> \x9E |0
+<U009F> \x9F |0
+<U00A0> \xA0 |0
+<U00A3> \xA3 |0
+<U00A7> \xA7 |0
+<U00A9> \xA9 |0
+<U00AD> \xAD |0
+<U00AE> \xAE |0
+<U00B6> \xB6 |0
+<U00C0> \xC0 |0
+<U00C1> \xC1 |0
+<U00C2> \xC2 |0
+<U00C3> \xC3 |0
+<U00C4> \xC4 |0
+<U00C5> \xC5 |0
+<U00C6> \xC6 |0
+<U00C7> \xC7 |0
+<U00C8> \xC8 |0
+<U00C9> \xC9 |0
+<U00CA> \xCA |0
+<U00CB> \xCB |0
+<U00CC> \xCC |0
+<U00CD> \xCD |0
+<U00CE> \xCE |0
+<U00CF> \xCF |0
+<U00D1> \xD1 |0
+<U00D2> \xD2 |0
+<U00D3> \xD3 |0
+<U00D4> \xD4 |0
+<U00D5> \xD5 |0
+<U00D6> \xD6 |0
+<U00D8> \xD8 |0
+<U00D9> \xD9 |0
+<U00DA> \xDA |0
+<U00DB> \xDB |0
+<U00DC> \xDC |0
+<U00DD> \xDD |0
+<U00DF> \xDF |0
+<U00E0> \xE0 |0
+<U00E1> \xE1 |0
+<U00E2> \xE2 |0
+<U00E3> \xE3 |0
+<U00E4> \xE4 |0
+<U00E5> \xE5 |0
+<U00E6> \xE6 |0
+<U00E7> \xE7 |0
+<U00E8> \xE8 |0
+<U00E9> \xE9 |0
+<U00EA> \xEA |0
+<U00EB> \xEB |0
+<U00EC> \xEC |0
+<U00ED> \xED |0
+<U00EE> \xEE |0
+<U00EF> \xEF |0
+<U00F1> \xF1 |0
+<U00F2> \xF2 |0
+<U00F3> \xF3 |0
+<U00F4> \xF4 |0
+<U00F5> \xF5 |0
+<U00F6> \xF6 |0
+<U00F8> \xF8 |0
+<U00F9> \xF9 |0
+<U00FA> \xFA |0
+<U00FB> \xFB |0
+<U00FC> \xFC |0
+<U00FD> \xFD |0
+<U00FF> \xFF |0
+<U010A> \xA4 |0
+<U010B> \xA5 |0
+<U0120> \xB2 |0
+<U0121> \xB3 |0
+<U0174> \xD0 |0
+<U0175> \xF0 |0
+<U0176> \xDE |0
+<U0177> \xFE |0
+<U0178> \xAF |0
+<U1E02> \xA1 |0
+<U1E03> \xA2 |0
+<U1E0A> \xA6 |0
+<U1E0B> \xAB |0
+<U1E1E> \xB0 |0
+<U1E1F> \xB1 |0
+<U1E40> \xB4 |0
+<U1E41> \xB5 |0
+<U1E56> \xB7 |0
+<U1E57> \xB9 |0
+<U1E60> \xBB |0
+<U1E61> \xBF |0
+<U1E6A> \xD7 |0
+<U1E6B> \xF7 |0
+<U1E80> \xA8 |0
+<U1E81> \xB8 |0
+<U1E82> \xAA |0
+<U1E83> \xBA |0
+<U1E84> \xBD |0
+<U1E85> \xBE |0
+<U1EF2> \xAC |0
+<U1EF3> \xBC |0
+END CHARMAP
diff --git a/Build/source/libs/icu-xetex/data/mappings/macos-6-10.2.ucm b/Build/source/libs/icu-xetex/data/mappings/macos-6_2-10.4.ucm
index 5885acb1b29..7bce24917d8 100644
--- a/Build/source/libs/icu-xetex/data/mappings/macos-6-10.2.ucm
+++ b/Build/source/libs/icu-xetex/data/mappings/macos-6_2-10.4.ucm
@@ -1,14 +1,14 @@
# ***************************************************************************
# *
-# * Copyright (C) 2001-2003, International Business Machines
+# * Copyright (C) 2001-2005, International Business Machines
# * Corporation and others. All Rights Reserved.
# *
# ***************************************************************************
#
-# File created on Feb 21 13:55 PST 2003
+# File created on Sep 26 17:33 PDT 2005
#
-# File created by genmucm tool.
-# from macos 10.2 using TECCreateConverter
+# File created by genucm tool.
+# from macos 10.4 using TECCreateConverter
#
# Table Version : 1.0
# The 1st column is the Unicode scalar value.
@@ -23,19 +23,19 @@
# Encoding description:
# Encoding name: X-MAC-GREEK
#
-<code_set_name> "macos-6-10.2"
+<code_set_name> "macos-6_2-10.4"
<mb_cur_max> 1
<mb_cur_min> 1
<uconv_class> "SBCS"
<subchar> \x3F
<icu:charsetFamily> "ASCII"
# Suggested ICU specific alias information
-#<icu:alias> "macos-6_VPUA"
+#<icu:alias> "macos-6_2_VPUA"
#
CHARMAP
#
-#UNICODE 6
+#UNICODE 6_2
#_______ _________
<U0000> \x00 |0
<U0001> \x01 |0
@@ -174,7 +174,7 @@ CHARMAP
<U00A9> \xA9 |0
<U00AB> \xC7 |0
<U00AC> \xC2 |0
-<U00AD> \x9C |0
+<U00AD> \xFF |0
<U00AE> \xA8 |0
<U00B0> \xAE |0
<U00B1> \xB1 |0
@@ -188,6 +188,7 @@ CHARMAP
<U00C4> \x80 |0
<U00C9> \x83 |0
<U00D6> \x85 |0
+<U00D7> \x2A |1
<U00DC> \x86 |0
<U00DF> \xA7 |0
<U00E0> \x88 |0
@@ -319,6 +320,7 @@ CHARMAP
<U2028> \x0D |1
<U2029> \x0D |1
<U2030> \x98 |0
+<U20AC> \x9C |0
<U2122> \x93 |0
<U2212> \x2D |1
<U2215> \x2F |1
@@ -330,7 +332,7 @@ CHARMAP
<U2264> \xB2 |0
<U2265> \xB3 |0
<U22C5> \xAF |1
-<UF8A0> \xFF |0
+<UF8A0> \x9C |1
#
END CHARMAP
#
diff --git a/Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk.omit b/Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk
index dbf07944213..3976182a711 100644
--- a/Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk.omit
+++ b/Build/source/libs/icu-xetex/data/mappings/ucmebcdic.mk
@@ -1,4 +1,4 @@
-# Copyright (c) 1999-2003, International Business Machines Corporation and
+# Copyright (c) 1999-2006, International Business Machines Corporation and
# others. All Rights Reserved.
# A list of EBCDIC UCM's to build
# ibm-37 and ibm-1047 are already mentioned in makedata.mak and Makefile.in
@@ -22,6 +22,6 @@ ibm-12712_P100-1998.ucm ibm-16804_X110-1999.ucm ibm-273_P100-1995.ucm\
ibm-277_P100-1995.ucm ibm-278_P100-1995.ucm ibm-280_P100-1995.ucm\
ibm-284_P100-1995.ucm ibm-285_P100-1995.ucm ibm-290_P100-1995.ucm\
ibm-297_P100-1995.ucm ibm-420_X120-1999.ucm ibm-424_P100-1995.ucm\
-ibm-4899_P100-1998.ucm ibm-4971_P100-1999.ucm ibm-500_P100-1995.ucm\
-ibm-5123_P100-1999.ucm ibm-803_P100-1999.ucm ibm-8482_P100-1999.ucm\
-ibm-16684_P110-2003.ucm
+ibm-4517_P100-2005.ucm ibm-4899_P100-1998.ucm ibm-4971_P100-1999.ucm\
+ibm-500_P100-1995.ucm ibm-5123_P100-1999.ucm ibm-803_P100-1999.ucm\
+ibm-8482_P100-1999.ucm ibm-9067_X100-2005.ucm ibm-16684_P110-2003.ucm
diff --git a/Build/source/libs/icu-xetex/data/mappings/ucmfiles.mk b/Build/source/libs/icu-xetex/data/mappings/ucmfiles.mk
index e398c7c00b7..923411d0c08 100644
--- a/Build/source/libs/icu-xetex/data/mappings/ucmfiles.mk
+++ b/Build/source/libs/icu-xetex/data/mappings/ucmfiles.mk
@@ -85,9 +85,13 @@ ibm-971_P100-1995.ucm\
ibm-1363_P110-1997.ucm\
ibm-1375_P100-2003.ucm\
ibm-9005_X100-2005.ucm\
+ibm-9448_X100-2005.ucm\
ibm-33722_P120-1999.ucm\
+iso-8859_10-1998.ucm\
+iso-8859_11-2001.ucm\
+iso-8859_14-1998.ucm\
macos-0_2-10.2.ucm\
-macos-6-10.2.ucm\
+macos-6_2-10.4.ucm\
macos-7_3-10.2.ucm\
macos-29-10.2.ucm\
macos-35-10.2.ucm\
@@ -96,7 +100,6 @@ windows-874-2000.ucm\
windows-936-2000.ucm\
windows-949-2000.ucm\
windows-950-2000.ucm\
-windows-1256-2000.ucm\
ibm-897_P100-1995.ucm jisx-208.ucm jisx-212.ucm\
iso-ir-165.ucm cns-11643-1992.ucm\
ibm-5478_P100-1995.ucm\
diff --git a/Build/source/libs/icu-xetex/data/misc/CurrencyData.txt b/Build/source/libs/icu-xetex/data/misc/CurrencyData.txt
index 588220f887e..e30fbf19f40 100644
--- a/Build/source/libs/icu-xetex/data/misc/CurrencyData.txt
+++ b/Build/source/libs/icu-xetex/data/misc/CurrencyData.txt
@@ -1,10 +1,10 @@
// ***************************************************************************
// *
-// * Copyright (C) 1997-2005, International Business Machines
+// * Copyright (C) 1997-2006, International Business Machines
// * Corporation and others. All Rights Reserved.
// *
// ***************************************************************************
-CurrencyData{
+CurrencyData:table(nofallback){
// Currency metadata. Unlike the "Currencies" element, this is
// NOT true locale data. It exists only in root. The two
// integers are the fraction digits for each currency, and the
@@ -32,7 +32,9 @@ CurrencyData{
KMF:intvector { 0, 0 } // Comoro Franc: COMOROS (KM)
KRW:intvector { 0, 0 } // Won: KOREA, REPUBLIC OF (KR)
KWD:intvector { 3, 0 } // Kuwaiti Dinar: KUWAIT (KW)
+ LUF:intvector { 0, 0 } // LUXEMBOURG Franc: LUXEMBOURG (LU)
LYD:intvector { 3, 0 } // Lybian Dinar: LIBYAN ARAB JAMAHIRIYA (LY)
+ MGA:intvector { 0, 0 } // Malagascy Ariary: MADAGASCAR (MG)
MGF:intvector { 0, 0 } // Malagasy Franc: MADAGASCAR (MG)
OMR:intvector { 3, 0 } // Rial Omani: OMAN (OM)
PYG:intvector { 0, 0 } // Guarani: PARAGUAY (PY)
@@ -66,7 +68,7 @@ CurrencyData{
AU { "AUD" } // AUSTRALIA: Australian Dollar
AW { "AWG" } // ARUBA: Aruban Guilder
AX { "EUR" } // Aland Islands: Euro
- AZ { "AZM" } // AZERBAIJAN: Azerbaijanian Manat
+ AZ { "AZN" } // AZERBAIJAN: Azerbaijanian Manat
BA { "BAM" } // BOSNIA AND HERZEGOVINA: Convertible Marks
BB { "BBD" } // BARBADOS: Barbados Dollar
BD { "BDT" } // BANGLADESH: Taka
@@ -134,6 +136,7 @@ CurrencyData{
GD { "XCD" } // GRENADA: East Caribbean Dollar
GE { "GEL" } // GEORGIA: Lari
GF { "EUR" } // FRENCH GUIANA: Euro
+ GG { "GBP" } // GUERNSEY: Pound Sterling
GH { "GHC" } // GHANA: Cedi
GI { "GIP" } // GIBRALTAR: Gibraltar Pound
GL { "DKK" } // GREENLAND: Danish Krone
@@ -158,6 +161,7 @@ CurrencyData{
IE { "EUR" } // IRELAND: Euro
IE_PREEURO { "IEP" }
IL { "ILS" } // ISRAEL: New Israeli Sheqel
+ IM { "GBP" } // ISLE OF MAN: Pound Sterling
IN { "INR" } // INDIA: Indian Rupee
IO { "USD" } // BRITISH INDIAN OCEAN TERRITORY: US Dollar
IQ { "IQD" } // IRAQ: Iraqi Dinar
@@ -165,6 +169,7 @@ CurrencyData{
IS { "ISK" } // ICELAND: Iceland Krona
IT { "EUR" } // ITALY: Euro
IT_PREEURO { "ITL" }
+ JE { "GBP" } // JERSEY: Pound Sterling
JM { "JMD" } // JAMAICA: Jamaican Dollar
JO { "JOD" } // JORDAN: Jordanian Dinar
JP { "JPY" } // JAPAN: Yen
@@ -211,7 +216,7 @@ CurrencyData{
MW { "MWK" } // MALAWI: Kwacha
MX { "MXN" } // MEXICO: Mexican Peso
MY { "MYR" } // MALAYSIA: Malaysian Ringgit
- MZ { "MZM" } // MOZAMBIQUE: Metical
+ MZ { "MZN" } // MOZAMBIQUE: Metical
NA { "ZAR" } // NAMIBIA: Rand
NC { "XPF" } // NEW CALEDONIA: CFP Franc
NE { "XOF" } // NIGER: CFA Franc BCEAO
@@ -242,7 +247,7 @@ CurrencyData{
PY { "PYG" } // PARAGUAY: Guarani
QA { "QAR" } // QATAR: Qatari Rial
RE { "EUR" } // REUNION: Euro
- RO { "ROL" } // ROMANIA: Leu
+ RO { "RON" } // ROMANIA: Leu
RU { "RUB" } // RUSSIAN FEDERATION: Russian Ruble
RW { "RWF" } // RWANDA: Rwanda Franc
SA { "SAR" } // SAUDI ARABIA: Saudi Riyal
@@ -252,7 +257,8 @@ CurrencyData{
SE { "SEK" } // SWEDEN: Swedish Krona
SG { "SGD" } // SINGAPORE: Singapore Dollar
SH { "SHP" } // SAINT HELENA: Saint Helena Pound
- SI { "SIT" } // SLOVENIA: Tolar
+ SI { "EUR" } // SLOVENIA: Euro
+ SI_PREEURO { "SIT" } // SLOVENIA: Tolar
SJ { "NOK" } // SVALBARD AND JAN MAYEN: Norwegian Krone
SK { "SKK" } // SLOVAKIA: Slovak Koruna
SL { "SLL" } // SIERRA LEONE: Leone
diff --git a/Build/source/libs/icu-xetex/data/misc/misclocal.mk b/Build/source/libs/icu-xetex/data/misc/misclocal.mk
index a4b20536273..45cd1907f61 100644
--- a/Build/source/libs/icu-xetex/data/misc/misclocal.mk
+++ b/Build/source/libs/icu-xetex/data/misc/misclocal.mk
@@ -23,4 +23,3 @@
#
MISC_SOURCE =
-
diff --git a/Build/source/libs/icu-xetex/data/misc/supplementalData.txt b/Build/source/libs/icu-xetex/data/misc/supplementalData.txt
new file mode 100644
index 00000000000..fc8d8b38e64
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/misc/supplementalData.txt
@@ -0,0 +1,8028 @@
+// ***************************************************************************
+// *
+// * Copyright (C) 2006 International Business Machines
+// * Corporation and others. All Rights Reserved.
+// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
+// * Source File:<path>/supplementalData.xml
+// *
+// ***************************************************************************
+supplementalData:table(nofallback){
+ /**
+ * Map from ISO 3166 country codes to ISO 4217 currency codes
+ * NOTE: This is not true locale data; it exists only in ROOT
+ */
+ CurrencyMap{
+ 830{
+ {
+ id{"GBP"}
+ from:intvector{
+ -2028,
+ -1467671008,
+ }
+ }
+ }
+ 833{
+ {
+ id{"GBP"}
+ from:intvector{
+ -2028,
+ -1467671008,
+ }
+ }
+ }
+ AD{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ESP"}
+ from:intvector{
+ -713,
+ 1357682048,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ {
+ id{"ADP"}
+ from:intvector{
+ -250,
+ 769024000,
+ }
+ to:intvector{
+ 228,
+ 1676176512,
+ }
+ }
+ }
+ AE{
+ {
+ id{"AED"}
+ from:intvector{
+ 22,
+ 1789419488,
+ }
+ }
+ }
+ AF{
+ {
+ id{"AFN"}
+ from:intvector{
+ 235,
+ 1073685440,
+ }
+ }
+ {
+ id{"AFA"}
+ from:intvector{
+ -316,
+ 1363445536,
+ }
+ to:intvector{
+ 235,
+ -1147561856,
+ }
+ }
+ }
+ AG{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ AI{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ AL{
+ {
+ id{"ALL"}
+ from:intvector{
+ -37,
+ -1822297344,
+ }
+ }
+ }
+ AM{
+ {
+ id{"AMD"}
+ from:intvector{
+ 169,
+ 1840786976,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 169,
+ 1840786976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ AN{
+ {
+ id{"ANG"}
+ from:intvector{
+ -221,
+ -1071694880,
+ }
+ }
+ }
+ AO{
+ {
+ id{"AOA"}
+ from:intvector{
+ 213,
+ 1387085952,
+ }
+ }
+ {
+ id{"AOR"}
+ from:intvector{
+ 183,
+ -1326362464,
+ }
+ to:intvector{
+ 220,
+ 1820914880,
+ }
+ }
+ {
+ id{"AON"}
+ from:intvector{
+ 147,
+ 1894747488,
+ }
+ to:intvector{
+ 220,
+ 1820914880,
+ }
+ }
+ {
+ id{"AOK"}
+ from:intvector{
+ 51,
+ -1779839392,
+ }
+ to:intvector{
+ 154,
+ 1292016416,
+ }
+ }
+ }
+ AQ{
+ {
+ }
+ }
+ AR{
+ {
+ id{"ARS"}
+ from:intvector{
+ 161,
+ -1531841952,
+ }
+ }
+ {
+ id{"ARA"}
+ from:intvector{
+ 110,
+ 2091557440,
+ }
+ to:intvector{
+ 161,
+ -1531841952,
+ }
+ }
+ {
+ id{"ARP"}
+ from:intvector{
+ 95,
+ -2060500416,
+ }
+ to:intvector{
+ 110,
+ 2091557440,
+ }
+ }
+ }
+ AS{
+ {
+ id{"USD"}
+ from:intvector{
+ -485,
+ 1535958560,
+ }
+ }
+ }
+ AT{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ATS"}
+ from:intvector{
+ -169,
+ 291793024,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ AU{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ AW{
+ {
+ id{"AWG"}
+ from:intvector{
+ 117,
+ -1855680928,
+ }
+ }
+ {
+ id{"ANG"}
+ from:intvector{
+ -221,
+ -1071694880,
+ }
+ to:intvector{
+ 117,
+ -1855680928,
+ }
+ }
+ }
+ AX{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ }
+ AZ{
+ {
+ id{"AZN"}
+ from:intvector{
+ 264,
+ -2063873440,
+ }
+ }
+ {
+ id{"AZM"}
+ from:intvector{
+ 169,
+ 1840786976,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 176,
+ 1497015904,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ BA{
+ {
+ id{"BAM"}
+ from:intvector{
+ 183,
+ -1326722464,
+ }
+ }
+ {
+ id{"BAD"}
+ from:intvector{
+ 161,
+ -1531481952,
+ }
+ to:intvector{
+ 198,
+ 1702495392,
+ }
+ }
+ {
+ id{"YUN"}
+ from:intvector{
+ 146,
+ -179332512,
+ }
+ to:intvector{
+ 161,
+ -1531481952,
+ }
+ }
+ {
+ id{"YUD"}
+ from:intvector{
+ -30,
+ -1647488416,
+ }
+ to:intvector{
+ 146,
+ -179332512,
+ }
+ }
+ }
+ BB{
+ {
+ id{"BBD"}
+ from:intvector{
+ 22,
+ 407439488,
+ }
+ }
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ to:intvector{
+ 22,
+ 407439488,
+ }
+ }
+ }
+ BD{
+ {
+ id{"BDT"}
+ from:intvector{
+ 14,
+ -1323649440,
+ }
+ }
+ {
+ id{"PKR"}
+ from:intvector{
+ -162,
+ 1503341952,
+ }
+ to:intvector{
+ 14,
+ -1323649440,
+ }
+ }
+ {
+ id{"INR"}
+ from:intvector{
+ -992,
+ 1804437632,
+ }
+ to:intvector{
+ -162,
+ 1503341952,
+ }
+ }
+ }
+ BE{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"BEF"}
+ from:intvector{
+ -1022,
+ -736270784,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ {
+ id{"NLG"}
+ from:intvector{
+ -1132,
+ -983668224,
+ }
+ to:intvector{
+ -1022,
+ -736270784,
+ }
+ }
+ }
+ BF{
+ {
+ id{"XOF"}
+ from:intvector{
+ 102,
+ -329951488,
+ }
+ }
+ }
+ BG{
+ {
+ id{"BGN"}
+ from:intvector{
+ 213,
+ 695585952,
+ }
+ }
+ {
+ id{"BGL"}
+ from:intvector{
+ -59,
+ 971130464,
+ }
+ to:intvector{
+ 213,
+ 695585952,
+ }
+ }
+ }
+ BH{
+ {
+ id{"BHD"}
+ from:intvector{
+ -37,
+ -1822177344,
+ }
+ }
+ }
+ BI{
+ {
+ id{"BIF"}
+ from:intvector{
+ -44,
+ 1174061024,
+ }
+ }
+ }
+ BJ{
+ {
+ id{"XOF"}
+ from:intvector{
+ 37,
+ 1387670048,
+ }
+ }
+ }
+ BM{
+ {
+ id{"BMD"}
+ from:intvector{
+ 0,
+ 460920000,
+ }
+ }
+ }
+ BN{
+ {
+ id{"BND"}
+ from:intvector{
+ -22,
+ 774440512,
+ }
+ }
+ {
+ id{"MYR"}
+ from:intvector{
+ -52,
+ -556127904,
+ }
+ to:intvector{
+ -22,
+ 774440512,
+ }
+ }
+ }
+ BO{
+ {
+ id{"BOB"}
+ from:intvector{
+ 124,
+ -384452000,
+ }
+ }
+ {
+ id{"BOP"}
+ from:intvector{
+ -52,
+ -1852607904,
+ }
+ to:intvector{
+ 118,
+ 736979072,
+ }
+ }
+ }
+ BR{
+ {
+ id{"BRL"}
+ from:intvector{
+ 176,
+ 1497375904,
+ }
+ }
+ {
+ id{"BRR"}
+ from:intvector{
+ 169,
+ 26206976,
+ }
+ to:intvector{
+ 176,
+ 1497375904,
+ }
+ }
+ {
+ id{"BRE"}
+ from:intvector{
+ 147,
+ 1116787488,
+ }
+ to:intvector{
+ 169,
+ 26206976,
+ }
+ }
+ {
+ id{"BRN"}
+ from:intvector{
+ 139,
+ -440961440,
+ }
+ to:intvector{
+ 147,
+ 1116787488,
+ }
+ }
+ {
+ id{"BRC"}
+ from:intvector{
+ 118,
+ 477179072,
+ }
+ to:intvector{
+ 139,
+ -440961440,
+ }
+ }
+ {
+ id{"BRB"}
+ from:intvector{
+ -22,
+ 860600512,
+ }
+ to:intvector{
+ 118,
+ 477179072,
+ }
+ }
+ }
+ BS{
+ {
+ id{"BSD"}
+ from:intvector{
+ -29,
+ 426351584,
+ }
+ }
+ }
+ BT{
+ {
+ id{"INR"}
+ from:intvector{
+ -463,
+ 444658048,
+ }
+ }
+ {
+ id{"BTN"}
+ from:intvector{
+ 29,
+ -1297178880,
+ }
+ }
+ }
+ BV{
+ {
+ id{"NOK"}
+ from:intvector{
+ -478,
+ -1979039808,
+ }
+ }
+ }
+ BW{
+ {
+ id{"BWP"}
+ from:intvector{
+ 44,
+ -2041048320,
+ }
+ }
+ {
+ id{"ZAR"}
+ from:intvector{
+ -66,
+ 623161536,
+ }
+ to:intvector{
+ 44,
+ -2041048320,
+ }
+ }
+ }
+ BY{
+ {
+ id{"BYR"}
+ from:intvector{
+ 220,
+ 1820854880,
+ }
+ }
+ {
+ id{"BYB"}
+ from:intvector{
+ 176,
+ 1497435904,
+ }
+ to:intvector{
+ 221,
+ 118547584,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 176,
+ 2102415904,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ BZ{
+ {
+ id{"BZD"}
+ from:intvector{
+ 29,
+ 1705208416,
+ }
+ }
+ }
+ CA{
+ {
+ id{"CAD"}
+ from:intvector{
+ -823,
+ 418544608,
+ }
+ }
+ }
+ CC{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ CD{
+ {
+ id{"CDF"}
+ from:intvector{
+ 205,
+ -1121242976,
+ }
+ }
+ {
+ id{"ZRN"}
+ from:intvector{
+ 169,
+ 26386976,
+ }
+ to:intvector{
+ 205,
+ -1121242976,
+ }
+ }
+ {
+ id{"ZRZ"}
+ from:intvector{
+ 7,
+ -547938368,
+ }
+ to:intvector{
+ 169,
+ 26386976,
+ }
+ }
+ }
+ CF{
+ {
+ id{"XAF"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ }
+ CG{
+ {
+ id{"XAF"}
+ from:intvector{
+ 169,
+ 25726976,
+ }
+ }
+ }
+ CH{
+ {
+ id{"CHF"}
+ from:intvector{
+ -1257,
+ -311696224,
+ }
+ }
+ }
+ CI{
+ {
+ id{"XOF"}
+ from:intvector{
+ -89,
+ -445357952,
+ }
+ }
+ }
+ CK{
+ {
+ id{"NZD"}
+ from:intvector{
+ -22,
+ 601700512,
+ }
+ }
+ }
+ CL{
+ {
+ id{"CLP"}
+ from:intvector{
+ 37,
+ 1301150048,
+ }
+ }
+ }
+ CM{
+ {
+ id{"XAF"}
+ from:intvector{
+ 22,
+ 234159488,
+ }
+ }
+ }
+ CN{
+ {
+ id{"CNY"}
+ from:intvector{
+ -125,
+ 442292000,
+ }
+ }
+ }
+ CO{
+ {
+ id{"COP"}
+ from:intvector{
+ -478,
+ 1797167488,
+ }
+ }
+ }
+ CR{
+ {
+ id{"CRC"}
+ from:intvector{
+ -544,
+ -866158272,
+ }
+ }
+ }
+ CS{
+ {
+ id{"EUR"}
+ from:intvector{
+ 242,
+ -2009732928,
+ }
+ }
+ {
+ id{"CSD"}
+ from:intvector{
+ 235,
+ 1764585440,
+ }
+ }
+ {
+ id{"YUM"}
+ from:intvector{
+ 176,
+ -810751392,
+ }
+ to:intvector{
+ 235,
+ 1764585440,
+ }
+ }
+ }
+ CU{
+ {
+ id{"CUP"}
+ from:intvector{
+ -816,
+ 1889773536,
+ }
+ }
+ {
+ id{"USD"}
+ from:intvector{
+ -522,
+ 1473328512,
+ }
+ to:intvector{
+ -81,
+ 765950976,
+ }
+ }
+ }
+ CV{
+ {
+ id{"CVE"}
+ from:intvector{
+ -412,
+ -1968781344,
+ }
+ }
+ {
+ id{"PTE"}
+ from:intvector{
+ -434,
+ -359260832,
+ }
+ to:intvector{
+ 36,
+ -772569952,
+ }
+ }
+ }
+ CX{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ CY{
+ {
+ id{"CYP"}
+ from:intvector{
+ -412,
+ -1190701344,
+ }
+ }
+ }
+ CZ{
+ {
+ id{"CZK"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ {
+ id{"CSK"}
+ from:intvector{
+ -125,
+ 442472000,
+ }
+ to:intvector{
+ 169,
+ 25906976,
+ }
+ }
+ }
+ DE{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"DEM"}
+ from:intvector{
+ -162,
+ -1149905344,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ DJ{
+ {
+ id{"DJF"}
+ from:intvector{
+ 51,
+ -137939392,
+ }
+ }
+ }
+ DK{
+ {
+ id{"DKK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ }
+ }
+ DM{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ DO{
+ {
+ id{"DOP"}
+ from:intvector{
+ -169,
+ 32473024,
+ }
+ }
+ {
+ id{"USD"}
+ from:intvector{
+ -478,
+ -769439808,
+ }
+ to:intvector{
+ -169,
+ 32473024,
+ }
+ }
+ }
+ DZ{
+ {
+ id{"DZD"}
+ from:intvector{
+ -45,
+ -381198976,
+ }
+ }
+ }
+ EC{
+ {
+ id{"USD"}
+ from:intvector{
+ 220,
+ 1907794880,
+ }
+ }
+ {
+ id{"ECS"}
+ from:intvector{
+ -632,
+ 534371072,
+ }
+ to:intvector{
+ 220,
+ 1907794880,
+ }
+ }
+ }
+ EE{
+ {
+ id{"EEK"}
+ from:intvector{
+ 162,
+ 196458048,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 162,
+ 110058048,
+ }
+ }
+ }
+ EG{
+ {
+ id{"EGP"}
+ from:intvector{
+ -625,
+ -1079347296,
+ }
+ }
+ }
+ EH{
+ {
+ id{"MAD"}
+ from:intvector{
+ 44,
+ -1782208320,
+ }
+ }
+ }
+ ER{
+ {
+ id{"ERN"}
+ from:intvector{
+ 198,
+ -1987431904,
+ }
+ }
+ }
+ ES{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ESP"}
+ from:intvector{
+ -750,
+ -320495296,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ ET{
+ {
+ id{"ETB"}
+ from:intvector{
+ 44,
+ 1562778976,
+ }
+ }
+ }
+ FI{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FIM"}
+ from:intvector{
+ -52,
+ -1852607904,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ FJ{
+ {
+ id{"FJD"}
+ from:intvector{
+ -8,
+ -405568928,
+ }
+ }
+ }
+ FK{
+ {
+ id{"FKP"}
+ from:intvector{
+ -507,
+ 120819072,
+ }
+ }
+ }
+ FM{
+ {
+ id{"USD"}
+ from:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ {
+ id{"JPY"}
+ from:intvector{
+ -412,
+ -1795441344,
+ }
+ to:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ }
+ FO{
+ {
+ id{"DKK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ }
+ }
+ FR{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ GA{
+ {
+ id{"XAF"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ }
+ GB{
+ {
+ id{"GBP"}
+ from:intvector{
+ -2028,
+ -1467671008,
+ }
+ }
+ }
+ GD{
+ {
+ id{"XCD"}
+ from:intvector{
+ -22,
+ 2070200512,
+ }
+ }
+ }
+ GE{
+ {
+ id{"GEL"}
+ from:intvector{
+ 184,
+ 574557536,
+ }
+ }
+ {
+ id{"GEK"}
+ from:intvector{
+ 169,
+ 371566976,
+ }
+ to:intvector{
+ 184,
+ 747357536,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 169,
+ 890086976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ GF{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ GH{
+ {
+ id{"GHC"}
+ from:intvector{
+ 66,
+ 1249138464,
+ }
+ }
+ }
+ GI{
+ {
+ id{"GIP"}
+ from:intvector{
+ -1889,
+ -1185345152,
+ }
+ }
+ }
+ GL{
+ {
+ id{"DKK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ }
+ }
+ GM{
+ {
+ id{"GMD"}
+ from:intvector{
+ 7,
+ 1500448928,
+ }
+ }
+ }
+ GN{
+ {
+ id{"GNF"}
+ from:intvector{
+ 117,
+ -1423680928,
+ }
+ }
+ {
+ id{"GNS"}
+ from:intvector{
+ 14,
+ -1236709440,
+ }
+ to:intvector{
+ 117,
+ -1423680928,
+ }
+ }
+ }
+ GP{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349565952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ GQ{
+ {
+ id{"XAF"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ {
+ id{"GQE"}
+ from:intvector{
+ 36,
+ -599769952,
+ }
+ to:intvector{
+ 117,
+ -1855380928,
+ }
+ }
+ }
+ GR{
+ {
+ id{"EUR"}
+ from:intvector{
+ 227,
+ -916483488,
+ }
+ }
+ {
+ id{"GRD"}
+ from:intvector{
+ -118,
+ 1913640928,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ GS{
+ {
+ id{"GBP"}
+ from:intvector{
+ -456,
+ 1915886976,
+ }
+ }
+ }
+ GT{
+ {
+ id{"GTQ"}
+ from:intvector{
+ -331,
+ -455692320,
+ }
+ }
+ }
+ GU{
+ {
+ id{"USD"}
+ from:intvector{
+ -191,
+ 1551633536,
+ }
+ }
+ }
+ GW{
+ {
+ id{"GWP"}
+ from:intvector{
+ 44,
+ -1609408320,
+ }
+ }
+ {
+ id{"XOF"}
+ from:intvector{
+ 198,
+ 1702135392,
+ }
+ }
+ {
+ id{"GWE"}
+ from:intvector{
+ -412,
+ -1968781344,
+ }
+ to:intvector{
+ 44,
+ -1609408320,
+ }
+ }
+ }
+ GY{
+ {
+ id{"GYD"}
+ from:intvector{
+ -29,
+ 512751584,
+ }
+ }
+ }
+ HK{
+ {
+ id{"HKD"}
+ from:intvector{
+ -552,
+ -116499904,
+ }
+ }
+ }
+ HM{
+ {
+ id{"AUD"}
+ from:intvector{
+ -22,
+ 1119800512,
+ }
+ }
+ }
+ HN{
+ {
+ id{"HNL"}
+ from:intvector{
+ -324,
+ -1058123392,
+ }
+ }
+ }
+ HR{
+ {
+ id{"HRK"}
+ from:intvector{
+ 176,
+ -292111392,
+ }
+ }
+ {
+ id{"HRD"}
+ from:intvector{
+ 154,
+ -1101610880,
+ }
+ to:intvector{
+ 183,
+ -1326722464,
+ }
+ }
+ {
+ id{"YUN"}
+ from:intvector{
+ 146,
+ -179332512,
+ }
+ to:intvector{
+ 154,
+ -1101610880,
+ }
+ }
+ {
+ id{"YUD"}
+ from:intvector{
+ -30,
+ -1647488416,
+ }
+ to:intvector{
+ 146,
+ -179332512,
+ }
+ }
+ }
+ HT{
+ {
+ id{"HTG"}
+ from:intvector{
+ -720,
+ 1960533120,
+ }
+ }
+ {
+ id{"USD"}
+ from:intvector{
+ -405,
+ -497612416,
+ }
+ }
+ }
+ HU{
+ {
+ id{"HUF"}
+ from:intvector{
+ -176,
+ 461864096,
+ }
+ }
+ }
+ ID{
+ {
+ id{"IDR"}
+ from:intvector{
+ -37,
+ -2081257344,
+ }
+ }
+ }
+ IE{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349565952,
+ }
+ }
+ {
+ id{"IEP"}
+ from:intvector{
+ -353,
+ 1387455488,
+ }
+ to:intvector{
+ 235,
+ 1246005440,
+ }
+ }
+ {
+ id{"GBP"}
+ from:intvector{
+ -1250,
+ -223047296,
+ }
+ to:intvector{
+ -353,
+ 1387455488,
+ }
+ }
+ }
+ IL{
+ {
+ id{"ILS"}
+ from:intvector{
+ 110,
+ 1227737440,
+ }
+ }
+ {
+ id{"ILP"}
+ from:intvector{
+ -162,
+ -1495385344,
+ }
+ to:intvector{
+ 73,
+ -451459904,
+ }
+ }
+ }
+ IN{
+ {
+ id{"INR"}
+ from:intvector{
+ -992,
+ 1804437632,
+ }
+ }
+ }
+ IO{
+ {
+ id{"USD"}
+ from:intvector{
+ -37,
+ 1781649952,
+ }
+ }
+ {
+ id{"GBP"}
+ from:intvector{
+ -37,
+ 1781649952,
+ }
+ }
+ }
+ IQ{
+ {
+ id{"IQD"}
+ from:intvector{
+ -287,
+ -823113344,
+ }
+ }
+ {
+ id{"EGP"}
+ from:intvector{
+ -368,
+ -776742368,
+ }
+ to:intvector{
+ -287,
+ -823113344,
+ }
+ }
+ {
+ id{"INR"}
+ from:intvector{
+ -368,
+ -776742368,
+ }
+ to:intvector{
+ -287,
+ -823113344,
+ }
+ }
+ }
+ IR{
+ {
+ id{"IRR"}
+ from:intvector{
+ -279,
+ 129775584,
+ }
+ }
+ }
+ IS{
+ {
+ id{"ISK"}
+ from:intvector{
+ 80,
+ -708290976,
+ }
+ }
+ {
+ id{"DKK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ to:intvector{
+ -383,
+ -291772928,
+ }
+ }
+ }
+ IT{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ITL"}
+ from:intvector{
+ -794,
+ -212454272,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ JM{
+ {
+ id{"JMD"}
+ from:intvector{
+ -8,
+ -837088928,
+ }
+ }
+ }
+ JO{
+ {
+ id{"JOD"}
+ from:intvector{
+ -147,
+ 237412512,
+ }
+ }
+ }
+ JP{
+ {
+ id{"JPY"}
+ from:intvector{
+ -728,
+ -1670815808,
+ }
+ }
+ }
+ KE{
+ {
+ id{"KES"}
+ from:intvector{
+ -30,
+ -523808416,
+ }
+ }
+ }
+ KG{
+ {
+ id{"KGS"}
+ from:intvector{
+ 169,
+ 803626976,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 169,
+ 803626976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ KH{
+ {
+ id{"KHR"}
+ from:intvector{
+ 73,
+ -624199904,
+ }
+ }
+ }
+ KI{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ KM{
+ {
+ id{"KMF"}
+ from:intvector{
+ 36,
+ -686169952,
+ }
+ }
+ }
+ KN{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ KP{
+ {
+ id{"KPW"}
+ from:intvector{
+ -81,
+ -2146376320,
+ }
+ }
+ }
+ KR{
+ {
+ id{"KRW"}
+ from:intvector{
+ -59,
+ 1749030464,
+ }
+ }
+ }
+ KW{
+ {
+ id{"KWD"}
+ from:intvector{
+ -67,
+ -499918464,
+ }
+ }
+ }
+ KY{
+ {
+ id{"KYD"}
+ from:intvector{
+ 7,
+ 1500028928,
+ }
+ }
+ {
+ id{"JMD"}
+ from:intvector{
+ -8,
+ -837088928,
+ }
+ to:intvector{
+ 7,
+ 1500028928,
+ }
+ }
+ }
+ KZ{
+ {
+ id{"KZT"}
+ from:intvector{
+ 169,
+ 371986976,
+ }
+ }
+ }
+ LA{
+ {
+ id{"LAK"}
+ from:intvector{
+ 66,
+ 1336078464,
+ }
+ }
+ }
+ LB{
+ {
+ id{"LBP"}
+ from:intvector{
+ -162,
+ 1589621952,
+ }
+ }
+ }
+ LC{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ LI{
+ {
+ id{"CHF"}
+ from:intvector{
+ -361,
+ -83653440,
+ }
+ }
+ }
+ LK{
+ {
+ id{"LKR"}
+ from:intvector{
+ 59,
+ 901229536,
+ }
+ }
+ }
+ LR{
+ {
+ id{"LRD"}
+ from:intvector{
+ -192,
+ -176786464,
+ }
+ }
+ }
+ LS{
+ {
+ id{"ZAR"}
+ from:intvector{
+ -66,
+ 623161536,
+ }
+ }
+ {
+ id{"LSL"}
+ from:intvector{
+ 73,
+ -451519904,
+ }
+ }
+ }
+ LT{
+ {
+ id{"LTL"}
+ from:intvector{
+ 169,
+ 2099686976,
+ }
+ }
+ {
+ id{"LTT"}
+ from:intvector{
+ 161,
+ -1531301952,
+ }
+ to:intvector{
+ 169,
+ 2099686976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 161,
+ -1531301952,
+ }
+ }
+ }
+ LU{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"LUF"}
+ from:intvector{
+ -191,
+ 82893536,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ LV{
+ {
+ id{"LVL"}
+ from:intvector{
+ 169,
+ -1936080320,
+ }
+ }
+ {
+ id{"LVR"}
+ from:intvector{
+ 161,
+ -1013201952,
+ }
+ to:intvector{
+ 169,
+ 1408726976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 162,
+ 110118048,
+ }
+ }
+ }
+ LY{
+ {
+ id{"LYD"}
+ from:intvector{
+ 7,
+ 1500568928,
+ }
+ }
+ }
+ MA{
+ {
+ id{"MAD"}
+ from:intvector{
+ -81,
+ -2146016320,
+ }
+ }
+ }
+ MC{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ MD{
+ {
+ id{"MDL"}
+ from:intvector{
+ 169,
+ -1849380320,
+ }
+ }
+ }
+ MG{
+ {
+ id{"MGA"}
+ from:intvector{
+ 95,
+ -2060200416,
+ }
+ }
+ {
+ id{"MGF"}
+ from:intvector{
+ -52,
+ -1852247904,
+ }
+ to:intvector{
+ 250,
+ 1708436000,
+ }
+ }
+ }
+ MH{
+ {
+ id{"USD"}
+ from:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ }
+ MK{
+ {
+ id{"MKD"}
+ from:intvector{
+ 169,
+ 1667626976,
+ }
+ }
+ }
+ ML{
+ {
+ id{"XOF"}
+ from:intvector{
+ 102,
+ -589271488,
+ }
+ }
+ {
+ id{"MLF"}
+ from:intvector{
+ -59,
+ 1057890464,
+ }
+ to:intvector{
+ 103,
+ 2002848512,
+ }
+ }
+ {
+ id{"XOF"}
+ from:intvector{
+ -88,
+ 1282582048,
+ }
+ to:intvector{
+ -59,
+ 1057890464,
+ }
+ }
+ }
+ MM{
+ {
+ id{"MMK"}
+ from:intvector{
+ 139,
+ -181461440,
+ }
+ }
+ {
+ id{"BUK"}
+ from:intvector{
+ -133,
+ -1115096928,
+ }
+ to:intvector{
+ 139,
+ -181461440,
+ }
+ }
+ }
+ MN{
+ {
+ id{"MNT"}
+ from:intvector{
+ -405,
+ -497432416,
+ }
+ }
+ }
+ MO{
+ {
+ id{"MOP"}
+ from:intvector{
+ -507,
+ 120819072,
+ }
+ }
+ }
+ MP{
+ {
+ id{"USD"}
+ from:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ }
+ MQ{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -74,
+ -2057727392,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ MR{
+ {
+ id{"MRO"}
+ from:intvector{
+ 22,
+ -1641487808,
+ }
+ }
+ {
+ id{"XOF"}
+ from:intvector{
+ -88,
+ 1628182048,
+ }
+ to:intvector{
+ 22,
+ -1641487808,
+ }
+ }
+ }
+ MS{
+ {
+ id{"XCD"}
+ from:intvector{
+ -22,
+ 2070200512,
+ }
+ }
+ }
+ MT{
+ {
+ id{"MTL"}
+ from:intvector{
+ -15,
+ 1813669440,
+ }
+ }
+ {
+ id{"MTP"}
+ from:intvector{
+ -412,
+ -931561344,
+ }
+ to:intvector{
+ -15,
+ 1813669440,
+ }
+ }
+ }
+ MU{
+ {
+ id{"MUR"}
+ from:intvector{
+ -265,
+ 2121773440,
+ }
+ }
+ }
+ MV{
+ {
+ id{"MVR"}
+ from:intvector{
+ 80,
+ -707930976,
+ }
+ }
+ }
+ MW{
+ {
+ id{"MWK"}
+ from:intvector{
+ 7,
+ -1585218368,
+ }
+ }
+ }
+ MX{
+ {
+ id{"MXN"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ {
+ id{"MXP"}
+ from:intvector{
+ -1088,
+ -1783749248,
+ }
+ to:intvector{
+ 162,
+ 1060818048,
+ }
+ }
+ }
+ MY{
+ {
+ id{"MYR"}
+ from:intvector{
+ -52,
+ -556127904,
+ }
+ }
+ }
+ MZ{
+ {
+ id{"MZM"}
+ from:intvector{
+ 73,
+ -969619904,
+ }
+ }
+ {
+ id{"MZE"}
+ from:intvector{
+ 37,
+ 955370048,
+ }
+ to:intvector{
+ 73,
+ -969619904,
+ }
+ }
+ }
+ NA{
+ {
+ id{"ZAR"}
+ from:intvector{
+ -66,
+ 623161536,
+ }
+ }
+ {
+ id{"NAD"}
+ from:intvector{
+ 169,
+ 25726976,
+ }
+ }
+ }
+ NC{
+ {
+ id{"XPF"}
+ from:intvector{
+ 110,
+ 967997440,
+ }
+ }
+ }
+ NE{
+ {
+ id{"XOF"}
+ from:intvector{
+ -88,
+ 850642048,
+ }
+ }
+ }
+ NF{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ NG{
+ {
+ id{"NGN"}
+ from:intvector{
+ 22,
+ 233979488,
+ }
+ }
+ }
+ NI{
+ {
+ id{"NIO"}
+ from:intvector{
+ 154,
+ -497290880,
+ }
+ }
+ {
+ id{"NIC"}
+ from:intvector{
+ 132,
+ -1998530368,
+ }
+ to:intvector{
+ 154,
+ -497290880,
+ }
+ }
+ }
+ NL{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"NLG"}
+ from:intvector{
+ -1154,
+ 1982259584,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ NO{
+ {
+ id{"NOK"}
+ from:intvector{
+ -478,
+ -1979039808,
+ }
+ }
+ {
+ id{"SEK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ to:intvector{
+ -478,
+ -1979039808,
+ }
+ }
+ }
+ NP{
+ {
+ id{"NPR"}
+ from:intvector{
+ -272,
+ 650304512,
+ }
+ }
+ {
+ id{"INR"}
+ from:intvector{
+ -735,
+ 1152562560,
+ }
+ to:intvector{
+ -30,
+ -264548416,
+ }
+ }
+ }
+ NR{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ NU{
+ {
+ id{"NZD"}
+ from:intvector{
+ -22,
+ 601700512,
+ }
+ }
+ }
+ NZ{
+ {
+ id{"NZD"}
+ from:intvector{
+ -22,
+ 601700512,
+ }
+ }
+ }
+ OM{
+ {
+ id{"OMR"}
+ from:intvector{
+ 14,
+ -459049440,
+ }
+ }
+ }
+ PA{
+ {
+ id{"PAB"}
+ from:intvector{
+ -493,
+ -971830368,
+ }
+ }
+ {
+ id{"USD"}
+ from:intvector{
+ -492,
+ 237769632,
+ }
+ }
+ }
+ PE{
+ {
+ id{"PEN"}
+ from:intvector{
+ 154,
+ 1292256416,
+ }
+ }
+ {
+ id{"PEI"}
+ from:intvector{
+ 110,
+ 968117440,
+ }
+ to:intvector{
+ 154,
+ 1292256416,
+ }
+ }
+ {
+ id{"PES"}
+ from:intvector{
+ -786,
+ 394414656,
+ }
+ to:intvector{
+ 110,
+ 968117440,
+ }
+ }
+ }
+ PF{
+ {
+ id{"XPF"}
+ from:intvector{
+ -184,
+ -753464832,
+ }
+ }
+ }
+ PG{
+ {
+ id{"PGK"}
+ from:intvector{
+ 37,
+ 177950048,
+ }
+ }
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ to:intvector{
+ 37,
+ 177950048,
+ }
+ }
+ }
+ PH{
+ {
+ id{"PHP"}
+ from:intvector{
+ -177,
+ -1179735904,
+ }
+ }
+ }
+ PK{
+ {
+ id{"PKR"}
+ from:intvector{
+ -162,
+ 1503341952,
+ }
+ }
+ {
+ id{"INR"}
+ from:intvector{
+ -992,
+ 1804437632,
+ }
+ to:intvector{
+ -169,
+ 1241953024,
+ }
+ }
+ }
+ PL{
+ {
+ id{"PLN"}
+ from:intvector{
+ 183,
+ -1326722464,
+ }
+ }
+ {
+ id{"PLZ"}
+ from:intvector{
+ -147,
+ -1724574784,
+ }
+ to:intvector{
+ 176,
+ -205291392,
+ }
+ }
+ }
+ PM{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ 15,
+ 405010560,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ PN{
+ {
+ id{"NZD"}
+ from:intvector{
+ -8,
+ -405568928,
+ }
+ }
+ }
+ PR{
+ {
+ id{"USD"}
+ from:intvector{
+ -529,
+ 780419584,
+ }
+ }
+ {
+ id{"ESP"}
+ from:intvector{
+ -1250,
+ -223047296,
+ }
+ to:intvector{
+ -529,
+ 780419584,
+ }
+ }
+ }
+ PS{
+ {
+ id{"JOD"}
+ from:intvector{
+ 191,
+ 1094966464,
+ }
+ }
+ {
+ id{"ILS"}
+ from:intvector{
+ 110,
+ 1227737440,
+ }
+ }
+ {
+ id{"ILP"}
+ from:intvector{
+ -23,
+ -175959488,
+ }
+ to:intvector{
+ 73,
+ -451459904,
+ }
+ }
+ {
+ id{"JOD"}
+ from:intvector{
+ -147,
+ 237412512,
+ }
+ to:intvector{
+ -23,
+ -175959488,
+ }
+ }
+ }
+ PT{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"PTE"}
+ from:intvector{
+ -434,
+ -359260832,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ PW{
+ {
+ id{"USD"}
+ from:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ }
+ PY{
+ {
+ id{"PYG"}
+ from:intvector{
+ -199,
+ -1647415392,
+ }
+ }
+ }
+ QA{
+ {
+ id{"QAR"}
+ from:intvector{
+ 22,
+ 1789419488,
+ }
+ }
+ }
+ RE{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ 36,
+ -1118529952,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ RO{
+ {
+ id{"RON"}
+ from:intvector{
+ 257,
+ 760224928,
+ }
+ }
+ {
+ id{"ROL"}
+ from:intvector{
+ -132,
+ 1217343072,
+ }
+ to:intvector{
+ 265,
+ 528786560,
+ }
+ }
+ }
+ RU{
+ {
+ id{"RUB"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 206,
+ 1471057024,
+ }
+ }
+ }
+ RW{
+ {
+ id{"RWF"}
+ from:intvector{
+ -44,
+ 1174061024,
+ }
+ }
+ }
+ SA{
+ {
+ id{"SAR"}
+ from:intvector{
+ -132,
+ 699483072,
+ }
+ }
+ }
+ SB{
+ {
+ id{"SBD"}
+ from:intvector{
+ 51,
+ -396899392,
+ }
+ }
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ to:intvector{
+ 59,
+ 1592489536,
+ }
+ }
+ }
+ SC{
+ {
+ id{"SCR"}
+ from:intvector{
+ -493,
+ -1231030368,
+ }
+ }
+ }
+ SD{
+ {
+ id{"SDD"}
+ from:intvector{
+ 161,
+ -1531901952,
+ }
+ }
+ {
+ id{"SDP"}
+ from:intvector{
+ -96,
+ -1571466880,
+ }
+ to:intvector{
+ 205,
+ -1121302976,
+ }
+ }
+ {
+ id{"EGP"}
+ from:intvector{
+ -595,
+ 1028401120,
+ }
+ to:intvector{
+ -89,
+ -705217952,
+ }
+ }
+ {
+ id{"GBP"}
+ from:intvector{
+ -595,
+ 1028401120,
+ }
+ to:intvector{
+ -89,
+ -705217952,
+ }
+ }
+ }
+ SE{
+ {
+ id{"SEK"}
+ from:intvector{
+ -713,
+ -690585248,
+ }
+ }
+ }
+ SG{
+ {
+ id{"SGD"}
+ from:intvector{
+ -22,
+ 774440512,
+ }
+ }
+ {
+ id{"MYR"}
+ from:intvector{
+ -52,
+ -556127904,
+ }
+ to:intvector{
+ -22,
+ 774440512,
+ }
+ }
+ }
+ SH{
+ {
+ id{"SHP"}
+ from:intvector{
+ -390,
+ -554001856,
+ }
+ }
+ }
+ SI{
+ {
+ id{"SIT"}
+ from:intvector{
+ 161,
+ -1012901952,
+ }
+ }
+ }
+ SJ{
+ {
+ id{"NOK"}
+ from:intvector{
+ -478,
+ -1979039808,
+ }
+ }
+ }
+ SK{
+ {
+ id{"SKK"}
+ from:intvector{
+ 162,
+ 1060818048,
+ }
+ }
+ {
+ id{"CSK"}
+ from:intvector{
+ -125,
+ 442472000,
+ }
+ to:intvector{
+ 162,
+ 1060818048,
+ }
+ }
+ }
+ SL{
+ {
+ id{"SLL"}
+ from:intvector{
+ -45,
+ -121758976,
+ }
+ }
+ {
+ id{"GBP"}
+ from:intvector{
+ -1190,
+ 1254542240,
+ }
+ to:intvector{
+ -30,
+ -1388228416,
+ }
+ }
+ }
+ SM{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ITL"}
+ from:intvector{
+ -772,
+ -93494784,
+ }
+ to:intvector{
+ 228,
+ 1416376512,
+ }
+ }
+ }
+ SN{
+ {
+ id{"XOF"}
+ from:intvector{
+ -81,
+ 1025390976,
+ }
+ }
+ }
+ SO{
+ {
+ id{"SOS"}
+ from:intvector{
+ -74,
+ -2057367392,
+ }
+ }
+ }
+ SR{
+ {
+ id{"SRD"}
+ from:intvector{
+ 249,
+ -797764000,
+ }
+ }
+ {
+ id{"SRG"}
+ from:intvector{
+ -221,
+ -1071694880,
+ }
+ to:intvector{
+ 243,
+ 323667072,
+ }
+ }
+ {
+ id{"NLG"}
+ from:intvector{
+ -1139,
+ -2022957152,
+ }
+ to:intvector{
+ -221,
+ -1071694880,
+ }
+ }
+ }
+ ST{
+ {
+ id{"STD"}
+ from:intvector{
+ 51,
+ -1779359392,
+ }
+ }
+ }
+ SV{
+ {
+ id{"SVC"}
+ from:intvector{
+ -375,
+ 2046996000,
+ }
+ }
+ {
+ id{"USD"}
+ from:intvector{
+ 227,
+ -916483488,
+ }
+ }
+ }
+ SY{
+ {
+ id{"SYP"}
+ from:intvector{
+ -162,
+ 1503161952,
+ }
+ }
+ }
+ SZ{
+ {
+ id{"SZL"}
+ from:intvector{
+ 29,
+ 2137688416,
+ }
+ }
+ }
+ TC{
+ {
+ id{"USD"}
+ from:intvector{
+ -8,
+ -837088928,
+ }
+ }
+ }
+ TD{
+ {
+ id{"XAF"}
+ from:intvector{
+ 169,
+ 25786976,
+ }
+ }
+ }
+ TF{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ -81,
+ 766010976,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ }
+ TG{
+ {
+ id{"XOF"}
+ from:intvector{
+ -88,
+ 1628182048,
+ }
+ }
+ }
+ TH{
+ {
+ id{"THB"}
+ from:intvector{
+ -309,
+ -1373832832,
+ }
+ }
+ }
+ TJ{
+ {
+ id{"TJS"}
+ from:intvector{
+ 220,
+ -313572416,
+ }
+ }
+ {
+ id{"TJR"}
+ from:intvector{
+ 183,
+ -548882464,
+ }
+ to:intvector{
+ 220,
+ -399972416,
+ }
+ }
+ }
+ TK{
+ {
+ id{"NZD"}
+ from:intvector{
+ -22,
+ 601700512,
+ }
+ }
+ }
+ TL{
+ {
+ id{"USD"}
+ from:intvector{
+ 213,
+ 1991765952,
+ }
+ }
+ {
+ id{"TPE"}
+ from:intvector{
+ -81,
+ 852410976,
+ }
+ to:intvector{
+ 235,
+ -2098381856,
+ }
+ }
+ {
+ id{"IDR"}
+ from:intvector{
+ 36,
+ -599469952,
+ }
+ to:intvector{
+ 235,
+ -2098381856,
+ }
+ }
+ }
+ TM{
+ {
+ id{"TMM"}
+ from:intvector{
+ 169,
+ 26386976,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 169,
+ 26386976,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ TN{
+ {
+ id{"TND"}
+ from:intvector{
+ -89,
+ -704617952,
+ }
+ }
+ }
+ TO{
+ {
+ id{"TOP"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ TR{
+ {
+ id{"TRY"}
+ from:intvector{
+ 257,
+ 759864928,
+ }
+ }
+ {
+ id{"TRL"}
+ from:intvector{
+ -353,
+ 1388115488,
+ }
+ to:intvector{
+ 257,
+ -942442368,
+ }
+ }
+ }
+ TT{
+ {
+ id{"TTD"}
+ from:intvector{
+ -45,
+ -381438976,
+ }
+ }
+ }
+ TV{
+ {
+ id{"AUD"}
+ from:intvector{
+ -30,
+ -524228416,
+ }
+ }
+ }
+ TW{
+ {
+ id{"TWD"}
+ from:intvector{
+ -155,
+ -24276416,
+ }
+ }
+ }
+ TZ{
+ {
+ id{"TZS"}
+ from:intvector{
+ -30,
+ -523988416,
+ }
+ }
+ }
+ UA{
+ {
+ id{"UAH"}
+ from:intvector{
+ 191,
+ 231386464,
+ }
+ }
+ {
+ id{"UAK"}
+ from:intvector{
+ 161,
+ -494441952,
+ }
+ to:intvector{
+ 169,
+ 1408726976,
+ }
+ }
+ {
+ id{"RUR"}
+ from:intvector{
+ 154,
+ -928810880,
+ }
+ to:intvector{
+ 161,
+ -494441952,
+ }
+ }
+ {
+ id{"SUR"}
+ from:intvector{
+ -67,
+ -500098464,
+ }
+ to:intvector{
+ 154,
+ -928810880,
+ }
+ }
+ }
+ UG{
+ {
+ id{"UGX"}
+ from:intvector{
+ 125,
+ 825388000,
+ }
+ }
+ {
+ id{"UGS"}
+ from:intvector{
+ -30,
+ -437468416,
+ }
+ to:intvector{
+ 125,
+ 825388000,
+ }
+ }
+ }
+ UM{
+ {
+ id{"USD"}
+ from:intvector{
+ -192,
+ -176846464,
+ }
+ }
+ }
+ US{
+ {
+ id{"USD"}
+ from:intvector{
+ -1308,
+ 719223168,
+ }
+ }
+ }
+ UY{
+ {
+ id{"UYU"}
+ from:intvector{
+ 169,
+ 25906976,
+ }
+ }
+ {
+ id{"UYP"}
+ from:intvector{
+ 36,
+ -1118169952,
+ }
+ to:intvector{
+ 169,
+ 25906976,
+ }
+ }
+ }
+ UZ{
+ {
+ id{"UZS"}
+ from:intvector{
+ 176,
+ 1497375904,
+ }
+ }
+ }
+ VA{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"ITL"}
+ from:intvector{
+ -735,
+ -1586604736,
+ }
+ to:intvector{
+ 235,
+ -1407361856,
+ }
+ }
+ }
+ VC{
+ {
+ id{"XCD"}
+ from:intvector{
+ -37,
+ 1608789952,
+ }
+ }
+ }
+ VE{
+ {
+ id{"VEB"}
+ from:intvector{
+ -728,
+ -806875808,
+ }
+ }
+ }
+ VG{
+ {
+ id{"USD"}
+ from:intvector{
+ -1007,
+ 1774067072,
+ }
+ }
+ {
+ id{"GBP"}
+ from:intvector{
+ -1007,
+ 1774067072,
+ }
+ to:intvector{
+ -81,
+ 765950976,
+ }
+ }
+ }
+ VI{
+ {
+ id{"USD"}
+ from:intvector{
+ -978,
+ -844551808,
+ }
+ }
+ }
+ VN{
+ {
+ id{"VND"}
+ from:intvector{
+ 110,
+ 2091737440,
+ }
+ }
+ }
+ VU{
+ {
+ id{"VUV"}
+ from:intvector{
+ 80,
+ -708290976,
+ }
+ }
+ }
+ WF{
+ {
+ id{"XPF"}
+ from:intvector{
+ -66,
+ 2005861536,
+ }
+ }
+ }
+ WS{
+ {
+ id{"WST"}
+ from:intvector{
+ -22,
+ 601700512,
+ }
+ }
+ }
+ YE{
+ {
+ id{"YER"}
+ from:intvector{
+ 147,
+ 1635307488,
+ }
+ }
+ }
+ YT{
+ {
+ id{"EUR"}
+ from:intvector{
+ 213,
+ 349625952,
+ }
+ }
+ {
+ id{"FRF"}
+ from:intvector{
+ 44,
+ -2041408320,
+ }
+ to:intvector{
+ 235,
+ 1937205440,
+ }
+ }
+ {
+ id{"KMF"}
+ from:intvector{
+ 36,
+ -1118529952,
+ }
+ to:intvector{
+ 44,
+ -2041408320,
+ }
+ }
+ }
+ ZA{
+ {
+ id{"ZAR"}
+ from:intvector{
+ -66,
+ 623161536,
+ }
+ }
+ }
+ ZM{
+ {
+ id{"ZMK"}
+ from:intvector{
+ -15,
+ -1703997856,
+ }
+ }
+ }
+ ZW{
+ {
+ id{"ZWD"}
+ from:intvector{
+ 73,
+ -796939904,
+ }
+ }
+ }
+ }
+ /**
+ * Currency metadata. Unlike the "Currencies" element, this is
+ * NOT true locale data. It exists only in root. The two
+ * integers are the fraction digits for each currency, and the
+ * rounding increment. The fraction digits must be an integer
+ * from 0..9. If there is no rounding, the rounding increment is
+ * zero. Otherwise the rounding increment is given in units of
+ * 10^(-fraction_digits). The special tag "DEFAULT" gives the
+ * meta data for all currencies not otherwise listed.
+ */
+ CurrencyMeta{
+ ADP:intvector{
+ 0,
+ 0,
+ }
+ BHD:intvector{
+ 3,
+ 0,
+ }
+ BIF:intvector{
+ 0,
+ 0,
+ }
+ BYR:intvector{
+ 0,
+ 0,
+ }
+ CHF:intvector{
+ 2,
+ 5,
+ }
+ CLF:intvector{
+ 0,
+ 0,
+ }
+ CLP:intvector{
+ 0,
+ 0,
+ }
+ DEFAULT:intvector{
+ 2,
+ 0,
+ }
+ DJF:intvector{
+ 0,
+ 0,
+ }
+ ESP:intvector{
+ 0,
+ 0,
+ }
+ GNF:intvector{
+ 0,
+ 0,
+ }
+ IQD:intvector{
+ 3,
+ 0,
+ }
+ ITL:intvector{
+ 0,
+ 0,
+ }
+ JOD:intvector{
+ 3,
+ 0,
+ }
+ JPY:intvector{
+ 0,
+ 0,
+ }
+ KMF:intvector{
+ 0,
+ 0,
+ }
+ KRW:intvector{
+ 0,
+ 0,
+ }
+ KWD:intvector{
+ 3,
+ 0,
+ }
+ LUF:intvector{
+ 0,
+ 0,
+ }
+ LYD:intvector{
+ 3,
+ 0,
+ }
+ MGA:intvector{
+ 0,
+ 0,
+ }
+ MGF:intvector{
+ 0,
+ 0,
+ }
+ OMR:intvector{
+ 3,
+ 0,
+ }
+ PYG:intvector{
+ 0,
+ 0,
+ }
+ RWF:intvector{
+ 0,
+ 0,
+ }
+ TND:intvector{
+ 3,
+ 0,
+ }
+ TRL:intvector{
+ 0,
+ 0,
+ }
+ VUV:intvector{
+ 0,
+ 0,
+ }
+ XAF:intvector{
+ 0,
+ 0,
+ }
+ XOF:intvector{
+ 0,
+ 0,
+ }
+ XPF:intvector{
+ 0,
+ 0,
+ }
+ }
+ calendarData{
+ buddhist{
+ "TH",
+ }
+ chinese{
+ "CN",
+ "CX",
+ "HK",
+ "MO",
+ "SG",
+ "TW",
+ }
+ coptic{
+ "EG",
+ }
+ ethiopic{
+ "ET",
+ }
+ hebrew{
+ "IL",
+ }
+ islamic{
+ "AE",
+ "BH",
+ "DJ",
+ "DZ",
+ "EG",
+ "EH",
+ "ER",
+ "IL",
+ "IQ",
+ "JO",
+ "KM",
+ "KW",
+ "LB",
+ "LY",
+ "MA",
+ "MR",
+ "OM",
+ "PS",
+ "QA",
+ "SA",
+ "SD",
+ "SY",
+ "TD",
+ "TN",
+ "YE",
+ "AF",
+ "IR",
+ }
+ islamic-civil{
+ "AE",
+ "BH",
+ "DJ",
+ "DZ",
+ "EG",
+ "EH",
+ "ER",
+ "IL",
+ "IQ",
+ "JO",
+ "KM",
+ "KW",
+ "LB",
+ "LY",
+ "MA",
+ "MR",
+ "OM",
+ "PS",
+ "QA",
+ "SA",
+ "SD",
+ "SY",
+ "TD",
+ "TN",
+ "YE",
+ "AF",
+ "IR",
+ }
+ japanese{
+ "JP",
+ }
+ persian{
+ "AF",
+ "IR",
+ }
+ }
+ languageData{
+ ab{
+ secondary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "GE",
+ }
+ }
+ secondary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "TR",
+ }
+ }
+ }
+ af{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NA",
+ "ZA",
+ }
+ }
+ }
+ am{
+ primary{
+ scripts{
+ "Ethi",
+ }
+ territories{
+ "ET",
+ }
+ }
+ }
+ ar{
+ primary{
+ scripts{
+ "Arab",
+ }
+ territories{
+ "AE",
+ "BH",
+ "DJ",
+ "DZ",
+ "EG",
+ "EH",
+ "ER",
+ "IL",
+ "IQ",
+ "JO",
+ "KM",
+ "KW",
+ "LB",
+ "LY",
+ "MA",
+ "MR",
+ "OM",
+ "PS",
+ "QA",
+ "SA",
+ "SD",
+ "SY",
+ "TD",
+ "TN",
+ "YE",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ }
+ territories{
+ "IR",
+ }
+ }
+ }
+ as{
+ primary{
+ scripts{
+ "Beng",
+ }
+ territories{
+ "BD",
+ "IN",
+ }
+ }
+ }
+ ay{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BO",
+ "PE",
+ }
+ }
+ }
+ az{
+ primary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "AZ",
+ "IR",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "GE",
+ "TR",
+ }
+ }
+ }
+ bal{
+ primary{
+ scripts{
+ "Arab",
+ "Latn",
+ }
+ territories{
+ "PK",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Latn",
+ }
+ territories{
+ "AF",
+ "IR",
+ "OM",
+ }
+ }
+ }
+ be{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "BY",
+ }
+ }
+ }
+ bg{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "BG",
+ }
+ }
+ }
+ bn{
+ primary{
+ scripts{
+ "Beng",
+ }
+ territories{
+ "BD",
+ "IN",
+ }
+ }
+ }
+ bo{
+ secondary{
+ scripts{
+ "Tibt",
+ }
+ territories{
+ "CN",
+ "IN",
+ "NP",
+ }
+ }
+ }
+ bs{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BA",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "HR",
+ "CS",
+ }
+ }
+ }
+ ca{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AD",
+ "ES",
+ }
+ }
+ }
+ cch{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NG",
+ }
+ }
+ }
+ ch{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GU",
+ "MP",
+ }
+ }
+ }
+ chr{
+ secondary{
+ scripts{
+ "Latn",
+ "Cher",
+ }
+ territories{
+ "US",
+ }
+ }
+ }
+ cpe{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SL",
+ }
+ }
+ }
+ cr{
+ secondary{
+ scripts{
+ "Cans",
+ "Latn",
+ }
+ territories{
+ "CA",
+ }
+ }
+ }
+ cs{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CZ",
+ }
+ }
+ }
+ cy{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GB",
+ }
+ }
+ }
+ da{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "DK",
+ "GL",
+ }
+ }
+ }
+ de{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AT",
+ "BE",
+ "CH",
+ "DE",
+ "LI",
+ "LU",
+ "NA",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "IT",
+ }
+ }
+ }
+ dgr{
+ secondary{
+ territories{
+ "CA",
+ }
+ }
+ }
+ dv{
+ primary{
+ scripts{
+ "Thaa",
+ }
+ territories{
+ "MV",
+ }
+ }
+ }
+ dz{
+ primary{
+ scripts{
+ "Tibt",
+ }
+ territories{
+ "BT",
+ }
+ }
+ }
+ el{
+ primary{
+ scripts{
+ "Grek",
+ }
+ territories{
+ "CY",
+ "GR",
+ }
+ }
+ }
+ en{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AG",
+ "AI",
+ "AS",
+ "AU",
+ "AW",
+ "BB",
+ "BM",
+ "BS",
+ "BW",
+ "BZ",
+ "CA",
+ "CC",
+ "CK",
+ "CM",
+ "CX",
+ "DM",
+ "ER",
+ "FJ",
+ "FK",
+ "FM",
+ "GB",
+ "GD",
+ "GH",
+ "GI",
+ "GM",
+ "GY",
+ "HK",
+ "IE",
+ "IN",
+ "IO",
+ "JM",
+ "KE",
+ "KI",
+ "KN",
+ "KY",
+ "LC",
+ "LR",
+ "LS",
+ "MH",
+ "MP",
+ "MS",
+ "MT",
+ "MW",
+ "NA",
+ "NF",
+ "NG",
+ "NR",
+ "NU",
+ "NZ",
+ "PG",
+ "PH",
+ "PK",
+ "PN",
+ "PW",
+ "RW",
+ "SB",
+ "SG",
+ "SH",
+ "SL",
+ "SZ",
+ "TC",
+ "TK",
+ "TO",
+ "TT",
+ "TZ",
+ "UG",
+ "UM",
+ "US",
+ "VC",
+ "VG",
+ "VI",
+ "ZA",
+ "ZM",
+ "ZW",
+ }
+ }
+ }
+ eo{
+ primary{
+ scripts{
+ "Latn",
+ }
+ }
+ }
+ es{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AR",
+ "BO",
+ "CL",
+ "CO",
+ "CR",
+ "CU",
+ "DO",
+ "EC",
+ "ES",
+ "GI",
+ "GQ",
+ "GT",
+ "HN",
+ "MX",
+ "NI",
+ "PA",
+ "PE",
+ "PR",
+ "PY",
+ "SV",
+ "US",
+ "UY",
+ "VE",
+ }
+ }
+ }
+ et{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "EE",
+ }
+ }
+ }
+ eu{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ES",
+ }
+ }
+ }
+ fa{
+ primary{
+ scripts{
+ "Arab",
+ }
+ territories{
+ "AF",
+ "IR",
+ }
+ }
+ }
+ fi{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "FI",
+ "SE",
+ }
+ }
+ }
+ fil{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "PH",
+ }
+ }
+ }
+ fiu{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "FI",
+ "SE",
+ }
+ }
+ }
+ fj{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "FJ",
+ }
+ }
+ }
+ fo{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "FO",
+ }
+ }
+ }
+ fr{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BE",
+ "BF",
+ "BI",
+ "BJ",
+ "CA",
+ "CD",
+ "CF",
+ "CG",
+ "CH",
+ "CI",
+ "CM",
+ "DJ",
+ "FR",
+ "GA",
+ "GF",
+ "GN",
+ "GP",
+ "GQ",
+ "HT",
+ "KM",
+ "LU",
+ "MC",
+ "MG",
+ "ML",
+ "MQ",
+ "MR",
+ "MU",
+ "NC",
+ "NE",
+ "PF",
+ "PM",
+ "RE",
+ "RW",
+ "SC",
+ "SN",
+ "TD",
+ "TF",
+ "TG",
+ "VU",
+ "WF",
+ "YT",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "IT",
+ "US",
+ }
+ }
+ }
+ fy{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "DE",
+ "NL",
+ }
+ }
+ }
+ ga{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "IE",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GB",
+ }
+ }
+ }
+ gd{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GB",
+ }
+ }
+ }
+ gl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ES",
+ }
+ }
+ }
+ gn{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "PY",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AR",
+ "BO",
+ }
+ }
+ }
+ gsw{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CH",
+ }
+ }
+ }
+ gu{
+ primary{
+ scripts{
+ "Gujr",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ gv{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GB",
+ }
+ }
+ }
+ ha{
+ primary{
+ scripts{
+ "Arab",
+ "Latn",
+ }
+ territories{
+ "NE",
+ "NG",
+ }
+ }
+ }
+ haw{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "US",
+ }
+ }
+ }
+ he{
+ primary{
+ scripts{
+ "Hebr",
+ }
+ territories{
+ "IL",
+ }
+ }
+ }
+ hi{
+ primary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "IN",
+ "FJ",
+ }
+ }
+ }
+ ho{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "PG",
+ }
+ }
+ }
+ hr{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BA",
+ "HR",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CS",
+ }
+ }
+ }
+ ht{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "HT",
+ }
+ }
+ }
+ hu{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "HU",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SI",
+ "CS",
+ }
+ }
+ }
+ hy{
+ primary{
+ scripts{
+ "Armn",
+ }
+ territories{
+ "AM",
+ }
+ }
+ secondary{
+ scripts{
+ "Armn",
+ }
+ territories{
+ "AZ",
+ "GE",
+ "IR",
+ }
+ }
+ }
+ id{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ID",
+ }
+ }
+ }
+ is{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "IS",
+ }
+ }
+ }
+ it{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CH",
+ "IT",
+ "SM",
+ "VA",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "HR",
+ "SI",
+ }
+ }
+ }
+ iu{
+ secondary{
+ scripts{
+ "Cans",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "CA",
+ "GL",
+ "US",
+ "RU",
+ }
+ }
+ }
+ ja{
+ primary{
+ scripts{
+ "Hani",
+ "Hira",
+ "Kana",
+ }
+ territories{
+ "GU",
+ "JP",
+ "PW",
+ }
+ }
+ }
+ ka{
+ primary{
+ scripts{
+ "Geor",
+ }
+ territories{
+ "GE",
+ }
+ }
+ }
+ kaj{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NG",
+ }
+ }
+ }
+ kcg{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NG",
+ }
+ }
+ }
+ kfo{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NG",
+ }
+ }
+ }
+ kk{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "KZ",
+ }
+ }
+ }
+ kl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GL",
+ }
+ }
+ }
+ km{
+ primary{
+ scripts{
+ "Khmr",
+ }
+ territories{
+ "KH",
+ }
+ }
+ }
+ kn{
+ primary{
+ scripts{
+ "Knda",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ ko{
+ primary{
+ scripts{
+ "Hang",
+ "Hani",
+ }
+ territories{
+ "KP",
+ "KR",
+ }
+ }
+ }
+ kok{
+ primary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ ks{
+ primary{
+ scripts{
+ "Arab",
+ "Deva",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ ku{
+ primary{
+ scripts{
+ "Arab",
+ "Latn",
+ "Cyrl",
+ }
+ territories{
+ "IQ",
+ "IR",
+ "TR",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Latn",
+ "Cyrl",
+ }
+ territories{
+ "SY",
+ }
+ }
+ }
+ kw{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GB",
+ }
+ }
+ }
+ ky{
+ primary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ }
+ territories{
+ "KG",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ }
+ territories{
+ "CN",
+ }
+ }
+ }
+ la{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "VA",
+ }
+ }
+ }
+ lb{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LU",
+ }
+ }
+ }
+ ln{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CG",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CD",
+ }
+ }
+ }
+ lo{
+ primary{
+ scripts{
+ "Laoo",
+ }
+ territories{
+ "LA",
+ }
+ }
+ }
+ lt{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LT",
+ }
+ }
+ }
+ lv{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LV",
+ }
+ }
+ }
+ mai{
+ primary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ men{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GN",
+ "LR",
+ "SL",
+ }
+ }
+ }
+ mg{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "MG",
+ }
+ }
+ }
+ mh{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "MH",
+ "NR",
+ }
+ }
+ }
+ mi{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CK",
+ "NZ",
+ }
+ }
+ }
+ mk{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "MK",
+ }
+ }
+ }
+ ml{
+ primary{
+ scripts{
+ "Mlym",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ mn{
+ primary{
+ scripts{
+ "Cyrl",
+ "Mong",
+ }
+ territories{
+ "MN",
+ }
+ }
+ }
+ mni{
+ primary{
+ territories{
+ "IN",
+ }
+ }
+ }
+ mo{
+ primary{
+ scripts{
+ "Latn",
+ "Cyrl",
+ }
+ territories{
+ "MD",
+ }
+ }
+ }
+ mr{
+ primary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ ms{
+ primary{
+ scripts{
+ "Arab",
+ "Latn",
+ }
+ territories{
+ "BN",
+ "CC",
+ "CX",
+ "MY",
+ "SG",
+ }
+ }
+ }
+ mt{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "MT",
+ }
+ }
+ }
+ my{
+ primary{
+ scripts{
+ "Mymr",
+ }
+ territories{
+ "MM",
+ }
+ }
+ }
+ na{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NR",
+ }
+ }
+ }
+ nb{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NO",
+ "SJ",
+ }
+ }
+ }
+ nd{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ZA",
+ }
+ }
+ }
+ ne{
+ primary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "NP",
+ }
+ }
+ }
+ niu{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NU",
+ }
+ }
+ }
+ nl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AN",
+ "AW",
+ "BE",
+ "NL",
+ "SR",
+ }
+ }
+ }
+ nn{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NO",
+ "SJ",
+ }
+ }
+ }
+ no{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "NO",
+ "SJ",
+ }
+ }
+ }
+ nr{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ZA",
+ }
+ }
+ }
+ nso{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ZA",
+ }
+ }
+ }
+ ny{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "MW",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "MZ",
+ "ZM",
+ }
+ }
+ }
+ oc{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ES",
+ }
+ }
+ }
+ om{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ET",
+ "KE",
+ }
+ }
+ }
+ or{
+ primary{
+ scripts{
+ "Orya",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ os{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GE",
+ "RU",
+ }
+ }
+ }
+ pa{
+ primary{
+ scripts{
+ "Arab",
+ "Guru",
+ }
+ territories{
+ "IN",
+ "PK",
+ }
+ }
+ }
+ pau{
+ primary{
+ territories{
+ "PW",
+ }
+ }
+ }
+ pl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "PL",
+ }
+ }
+ }
+ ps{
+ primary{
+ scripts{
+ "Arab",
+ }
+ territories{
+ "AF",
+ "PK",
+ }
+ }
+ }
+ pt{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AO",
+ "BR",
+ "CV",
+ "GW",
+ "MO",
+ "MZ",
+ "PT",
+ "ST",
+ "TL",
+ }
+ }
+ }
+ qu{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BO",
+ "PE",
+ }
+ }
+ }
+ rm{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CH",
+ }
+ }
+ }
+ rn{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BI",
+ }
+ }
+ }
+ ro{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "RO",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CS",
+ }
+ }
+ }
+ ru{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "BY",
+ "GE",
+ "KG",
+ "KZ",
+ "RU",
+ "SJ",
+ "UA",
+ }
+ }
+ secondary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "MD",
+ }
+ }
+ }
+ rw{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "RW",
+ }
+ }
+ }
+ sa{
+ secondary{
+ scripts{
+ "Deva",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ sd{
+ primary{
+ scripts{
+ "Deva",
+ "Arab",
+ }
+ territories{
+ "IN",
+ "PK",
+ }
+ }
+ }
+ sg{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CF",
+ }
+ }
+ }
+ si{
+ primary{
+ scripts{
+ "Sinh",
+ }
+ territories{
+ "LK",
+ }
+ }
+ }
+ sk{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SK",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "CS",
+ }
+ }
+ }
+ sl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SI",
+ }
+ }
+ }
+ sm{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AS",
+ "WS",
+ }
+ }
+ }
+ so{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "DJ",
+ "SO",
+ }
+ }
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ET",
+ "KE",
+ }
+ }
+ }
+ son{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BJ",
+ "ML",
+ "NE",
+ }
+ }
+ }
+ sq{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AL",
+ "MK",
+ "CS",
+ }
+ }
+ }
+ sr{
+ primary{
+ scripts{
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "BA",
+ "CS",
+ }
+ }
+ secondary{
+ scripts{
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "HR",
+ }
+ }
+ }
+ ss{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SZ",
+ "ZA",
+ }
+ }
+ }
+ st{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LS",
+ "ZA",
+ }
+ }
+ }
+ sv{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "AX",
+ "FI",
+ "SE",
+ }
+ }
+ }
+ sw{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "KE",
+ "TZ",
+ "YT",
+ }
+ }
+ }
+ ta{
+ primary{
+ scripts{
+ "Taml",
+ }
+ territories{
+ "IN",
+ "LK",
+ "SG",
+ }
+ }
+ }
+ te{
+ primary{
+ scripts{
+ "Telu",
+ }
+ territories{
+ "IN",
+ }
+ }
+ }
+ tem{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "SL",
+ }
+ }
+ }
+ tet{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "TL",
+ }
+ }
+ }
+ tg{
+ primary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "TJ",
+ }
+ }
+ }
+ th{
+ primary{
+ scripts{
+ "Thai",
+ }
+ territories{
+ "TH",
+ }
+ }
+ }
+ ti{
+ primary{
+ scripts{
+ "Ethi",
+ }
+ territories{
+ "ER",
+ "ET",
+ }
+ }
+ }
+ tk{
+ primary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "TM",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "AF",
+ "IR",
+ }
+ }
+ }
+ tkl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "TK",
+ }
+ }
+ }
+ tl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GU",
+ "PH",
+ }
+ }
+ }
+ tmh{
+ secondary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ML",
+ "NE",
+ }
+ }
+ }
+ tn{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "BW",
+ "ZA",
+ }
+ }
+ }
+ to{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "TO",
+ }
+ }
+ }
+ tpi{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "PG",
+ }
+ }
+ }
+ tr{
+ primary{
+ scripts{
+ "Arab",
+ "Latn",
+ }
+ territories{
+ "CY",
+ "TR",
+ }
+ }
+ }
+ ts{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ZA",
+ }
+ }
+ }
+ tvl{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "TV",
+ }
+ }
+ }
+ uk{
+ primary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "UA",
+ }
+ }
+ secondary{
+ scripts{
+ "Cyrl",
+ }
+ territories{
+ "MD",
+ }
+ }
+ }
+ ur{
+ primary{
+ scripts{
+ "Arab",
+ }
+ territories{
+ "IN",
+ "PK",
+ }
+ }
+ }
+ uz{
+ primary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "UZ",
+ }
+ }
+ secondary{
+ scripts{
+ "Arab",
+ "Cyrl",
+ "Latn",
+ }
+ territories{
+ "AF",
+ }
+ }
+ }
+ ve{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "ZA",
+ }
+ }
+ }
+ vi{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "VN",
+ }
+ }
+ }
+ wo{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "GM",
+ "MR",
+ "SN",
+ }
+ }
+ }
+ xh{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LS",
+ "ZA",
+ }
+ }
+ }
+ yi{
+ primary{
+ scripts{
+ "Hebr",
+ }
+ }
+ }
+ zh{
+ primary{
+ scripts{
+ "Bopo",
+ "Hani",
+ "Hans",
+ "Hant",
+ }
+ territories{
+ "CN",
+ "CX",
+ "HK",
+ "MO",
+ "SG",
+ "TW",
+ }
+ }
+ }
+ zu{
+ primary{
+ scripts{
+ "Latn",
+ }
+ territories{
+ "LS",
+ "ZA",
+ }
+ }
+ }
+ }
+ mapTimezones{
+ windows{
+ Africa/Cairo{"Egypt"}
+ Africa/Casablanca{"Greenwich"}
+ Africa/Johannesburg{"South Africa"}
+ Africa/Lagos{"W. Central Africa"}
+ Africa/Nairobi{"E. Africa"}
+ America/Anchorage{"Alaskan"}
+ America/Bogota{"SA Pacific"}
+ America/Buenos_Aires{"SA Eastern"}
+ America/Caracas{"SA Western"}
+ America/Chicago{"Central"}
+ America/Chihuahua{"Mexico Standard Time 2"}
+ America/Denver{"Mountain"}
+ America/Godthab{"Greenland"}
+ America/Halifax{"Atlantic"}
+ America/Indianapolis{"US Eastern"}
+ America/Los_Angeles{"Pacific"}
+ America/Managua{"Central America"}
+ America/Mexico_City{"Mexico"}
+ America/New_York{"Eastern"}
+ America/Noronha{"Mid-Atlantic"}
+ America/Phoenix{"US Mountain"}
+ America/Regina{"Canada Central"}
+ America/Santiago{"Pacific SA"}
+ America/Sao_Paulo{"E. South America"}
+ America/St_Johns{"Newfoundland"}
+ Asia/Baghdad{"Arabic"}
+ Asia/Bangkok{"SE Asia"}
+ Asia/Calcutta{"India"}
+ Asia/Colombo{"Sri Lanka"}
+ Asia/Dhaka{"Central Asia"}
+ Asia/Hong_Kong{"China"}
+ Asia/Irkutsk{"North Asia East"}
+ Asia/Jerusalem{"Israel"}
+ Asia/Kabul{"Afghanistan"}
+ Asia/Karachi{"West Asia"}
+ Asia/Katmandu{"Nepal"}
+ Asia/Krasnoyarsk{"North Asia"}
+ Asia/Magadan{"Central Pacific"}
+ Asia/Muscat{"Arabian"}
+ Asia/Novosibirsk{"N. Central Asia"}
+ Asia/Rangoon{"Myanmar"}
+ Asia/Riyadh{"Arab"}
+ Asia/Seoul{"Korea"}
+ Asia/Singapore{"Singapore"}
+ Asia/Taipei{"Taipei"}
+ Asia/Tbilisi{"Caucasus"}
+ Asia/Tehran{"Iran"}
+ Asia/Tokyo{"Tokyo"}
+ Asia/Vladivostok{"Vladivostok"}
+ Asia/Yakutsk{"Yakutsk"}
+ Asia/Yekaterinburg{"Ekaterinburg"}
+ Atlantic/Azores{"Azores"}
+ Atlantic/Cape_Verde{"Cape Verde"}
+ Australia/Adelaide{"Cen. Australia"}
+ Australia/Brisbane{"E. Australia"}
+ Australia/Darwin{"AUS Central"}
+ Australia/Hobart{"Tasmania"}
+ Australia/Perth{"W. Australia"}
+ Australia/Sydney{"AUS Eastern"}
+ Etc/GMT+12{"Dateline"}
+ Europe/Belgrade{"Central Europe"}
+ Europe/Berlin{"W. Europe"}
+ Europe/Bucharest{"E. Europe"}
+ Europe/Helsinki{"FLE"}
+ Europe/Istanbul{"GTB"}
+ Europe/London{"GMT"}
+ Europe/Moscow{"Russian"}
+ Europe/Paris{"Romance"}
+ Europe/Sarajevo{"Central European"}
+ Pacific/Apia{"Samoa"}
+ Pacific/Auckland{"New Zealand"}
+ Pacific/Fiji{"Fiji"}
+ Pacific/Guam{"West Pacific"}
+ Pacific/Honolulu{"Hawaiian"}
+ Pacific/Tongatapu{"Tonga"}
+ }
+ }
+ territoryContainment{
+ 001{
+ "002",
+ "009",
+ "019",
+ "142",
+ "150",
+ }
+ 002{
+ "011",
+ "014",
+ "015",
+ "017",
+ "018",
+ }
+ 003{
+ "013",
+ "021",
+ "029",
+ }
+ 005{
+ "AR",
+ "BO",
+ "BR",
+ "CL",
+ "CO",
+ "EC",
+ "FK",
+ "GF",
+ "GY",
+ "PE",
+ "PY",
+ "SR",
+ "UY",
+ "VE",
+ }
+ 009{
+ "053",
+ "054",
+ "057",
+ "061",
+ "QO",
+ }
+ 011{
+ "BF",
+ "BJ",
+ "CI",
+ "CV",
+ "GH",
+ "GM",
+ "GN",
+ "GW",
+ "LR",
+ "ML",
+ "MR",
+ "NE",
+ "NG",
+ "SH",
+ "SL",
+ "SN",
+ "TG",
+ }
+ 013{
+ "BZ",
+ "CR",
+ "GT",
+ "HN",
+ "MX",
+ "NI",
+ "PA",
+ "SV",
+ }
+ 014{
+ "BI",
+ "DJ",
+ "ER",
+ "ET",
+ "KE",
+ "KM",
+ "MG",
+ "MU",
+ "MW",
+ "MZ",
+ "RE",
+ "RW",
+ "SC",
+ "SO",
+ "TZ",
+ "UG",
+ "YT",
+ "ZM",
+ "ZW",
+ }
+ 015{
+ "DZ",
+ "EG",
+ "EH",
+ "LY",
+ "MA",
+ "SD",
+ "TN",
+ }
+ 017{
+ "AO",
+ "CD",
+ "CF",
+ "CG",
+ "CM",
+ "GA",
+ "GQ",
+ "ST",
+ "TD",
+ }
+ 018{
+ "BW",
+ "LS",
+ "NA",
+ "SZ",
+ "ZA",
+ }
+ 019{
+ "005",
+ "013",
+ "021",
+ "029",
+ }
+ 021{
+ "BM",
+ "CA",
+ "GL",
+ "PM",
+ "US",
+ }
+ 029{
+ "AG",
+ "AI",
+ "AN",
+ "AW",
+ "BB",
+ "BS",
+ "CU",
+ "DM",
+ "DO",
+ "GD",
+ "GP",
+ "HT",
+ "JM",
+ "KN",
+ "KY",
+ "LC",
+ "MQ",
+ "MS",
+ "PR",
+ "TC",
+ "TT",
+ "VC",
+ "VG",
+ "VI",
+ }
+ 030{
+ "CN",
+ "HK",
+ "JP",
+ "KP",
+ "KR",
+ "MN",
+ "MO",
+ "TW",
+ }
+ 034{
+ "AF",
+ "BD",
+ "BT",
+ "IN",
+ "IR",
+ "LK",
+ "MV",
+ "NP",
+ "PK",
+ }
+ 035{
+ "BN",
+ "ID",
+ "KH",
+ "LA",
+ "MM",
+ "MY",
+ "PH",
+ "SG",
+ "TH",
+ "TL",
+ "VN",
+ }
+ 039{
+ "AD",
+ "AL",
+ "BA",
+ "ES",
+ "GI",
+ "GR",
+ "HR",
+ "IT",
+ "MK",
+ "MT",
+ "PT",
+ "SI",
+ "SM",
+ "VA",
+ "CS",
+ }
+ 053{
+ "AU",
+ "NF",
+ "NZ",
+ }
+ 054{
+ "FJ",
+ "NC",
+ "PG",
+ "SB",
+ "VU",
+ }
+ 057{
+ "FM",
+ "GU",
+ "KI",
+ "MH",
+ "MP",
+ "NR",
+ "PW",
+ }
+ 061{
+ "AS",
+ "CK",
+ "NU",
+ "PF",
+ "PN",
+ "TK",
+ "TO",
+ "TV",
+ "WF",
+ "WS",
+ }
+ 142{
+ "030",
+ "035",
+ "143",
+ "145",
+ "034",
+ }
+ 143{
+ "TM",
+ "TJ",
+ "KG",
+ "KZ",
+ "UZ",
+ }
+ 145{
+ "AE",
+ "AM",
+ "AZ",
+ "BH",
+ "CY",
+ "GE",
+ "IL",
+ "IQ",
+ "JO",
+ "KW",
+ "LB",
+ "OM",
+ "PS",
+ "QA",
+ "SA",
+ "SY",
+ "TR",
+ "YE",
+ }
+ 150{
+ "039",
+ "151",
+ "154",
+ "155",
+ }
+ 151{
+ "BG",
+ "BY",
+ "CZ",
+ "HU",
+ "MD",
+ "PL",
+ "RO",
+ "RU",
+ "SK",
+ "UA",
+ }
+ 154{
+ "830",
+ "833",
+ "AX",
+ "DK",
+ "EE",
+ "FI",
+ "FO",
+ "GB",
+ "IE",
+ "IS",
+ "LT",
+ "LV",
+ "NO",
+ "SE",
+ "SJ",
+ }
+ 155{
+ "AT",
+ "BE",
+ "CH",
+ "DE",
+ "FR",
+ "LI",
+ "LU",
+ "MC",
+ "NL",
+ }
+ 172{
+ "AM",
+ "AZ",
+ "BY",
+ "GE",
+ "KG",
+ "KZ",
+ "MD",
+ "RU",
+ "TJ",
+ "TM",
+ "UA",
+ "UZ",
+ }
+ 419{
+ "005",
+ "013",
+ "029",
+ }
+ QO{
+ "AQ",
+ "BV",
+ "CC",
+ "CX",
+ "GS",
+ "HM",
+ "IO",
+ "TF",
+ "UM",
+ }
+ QU{
+ "AT",
+ "BE",
+ "CY",
+ "CZ",
+ "DE",
+ "DK",
+ "EE",
+ "ES",
+ "FI",
+ "FR",
+ "GB",
+ "GR",
+ "HU",
+ "IE",
+ "IT",
+ "LT",
+ "LU",
+ "LV",
+ "MT",
+ "NL",
+ "PL",
+ "PT",
+ "SE",
+ "SI",
+ "SK",
+ }
+ }
+ zoneFormatting{
+ Africa/Abidjan{
+ territory{"CI"}
+ }
+ Africa/Accra{
+ territory{"GH"}
+ }
+ America/Adak{
+ territory{"US"}
+ aliases{
+ "America/Atka",
+ "US/Aleutian",
+ }
+ }
+ Africa/Addis_Ababa{
+ territory{"ET"}
+ }
+ Australia/Adelaide{
+ territory{"AU"}
+ aliases{
+ "Australia/South",
+ }
+ }
+ Asia/Aden{
+ territory{"YE"}
+ }
+ Africa/Algiers{
+ territory{"DZ"}
+ }
+ Asia/Almaty{
+ territory{"KZ"}
+ }
+ Asia/Amman{
+ territory{"JO"}
+ }
+ Europe/Amsterdam{
+ territory{"NL"}
+ }
+ Asia/Anadyr{
+ territory{"RU"}
+ }
+ America/Anchorage{
+ territory{"US"}
+ aliases{
+ "SystemV/YST9YDT",
+ "US/Alaska",
+ }
+ }
+ Europe/Andorra{
+ territory{"AD"}
+ }
+ America/Anguilla{
+ territory{"AI"}
+ }
+ Indian/Antananarivo{
+ territory{"MG"}
+ }
+ America/Antigua{
+ territory{"AG"}
+ }
+ Pacific/Apia{
+ territory{"WS"}
+ }
+ Asia/Aqtau{
+ territory{"KZ"}
+ }
+ Asia/Aqtobe{
+ territory{"KZ"}
+ }
+ America/Araguaina{
+ territory{"BR"}
+ }
+ America/Aruba{
+ territory{"AW"}
+ }
+ Asia/Ashgabat{
+ territory{"TM"}
+ aliases{
+ "Asia/Ashkhabad",
+ }
+ }
+ Africa/Asmera{
+ territory{"ER"}
+ }
+ America/Asuncion{
+ territory{"PY"}
+ }
+ Europe/Athens{
+ territory{"GR"}
+ }
+ Pacific/Auckland{
+ territory{"NZ"}
+ aliases{
+ "NZ",
+ }
+ }
+ Atlantic/Azores{
+ territory{"PT"}
+ }
+ Asia/Baghdad{
+ territory{"IQ"}
+ }
+ America/Bahia{
+ territory{"BR"}
+ }
+ Asia/Bahrain{
+ territory{"BH"}
+ }
+ Asia/Baku{
+ territory{"AZ"}
+ }
+ Africa/Bamako{
+ territory{"ML"}
+ }
+ Asia/Bangkok{
+ territory{"TH"}
+ }
+ Africa/Bangui{
+ territory{"CF"}
+ }
+ Africa/Banjul{
+ territory{"GM"}
+ }
+ America/Barbados{
+ territory{"BB"}
+ }
+ Asia/Beirut{
+ territory{"LB"}
+ }
+ America/Belem{
+ territory{"BR"}
+ }
+ Europe/Belfast{
+ territory{"GB"}
+ }
+ Europe/Belgrade{
+ territory{"CS"}
+ }
+ America/Belize{
+ territory{"BZ"}
+ }
+ Europe/Berlin{
+ territory{"DE"}
+ }
+ Atlantic/Bermuda{
+ territory{"BM"}
+ }
+ Asia/Bishkek{
+ territory{"KG"}
+ }
+ Africa/Bissau{
+ territory{"GW"}
+ }
+ Africa/Blantyre{
+ territory{"MW"}
+ }
+ America/Boa_Vista{
+ territory{"BR"}
+ }
+ America/Bogota{
+ territory{"CO"}
+ }
+ America/Boise{
+ territory{"US"}
+ }
+ Europe/Bratislava{
+ territory{"SK"}
+ }
+ Africa/Brazzaville{
+ territory{"CG"}
+ }
+ Australia/Brisbane{
+ territory{"AU"}
+ aliases{
+ "Australia/Queensland",
+ }
+ }
+ Australia/Broken_Hill{
+ territory{"AU"}
+ aliases{
+ "Australia/Yancowinna",
+ }
+ }
+ Asia/Brunei{
+ territory{"BN"}
+ }
+ Europe/Brussels{
+ territory{"BE"}
+ }
+ Europe/Bucharest{
+ territory{"RO"}
+ }
+ Europe/Budapest{
+ territory{"HU"}
+ }
+ America/Buenos_Aires{
+ territory{"AR"}
+ aliases{
+ "America/Argentina/Buenos_Aires",
+ }
+ }
+ Africa/Bujumbura{
+ territory{"BI"}
+ }
+ Africa/Cairo{
+ territory{"EG"}
+ aliases{
+ "Egypt",
+ }
+ }
+ Asia/Calcutta{
+ territory{"IN"}
+ }
+ America/Cambridge_Bay{
+ territory{"CA"}
+ }
+ America/Campo_Grande{
+ territory{"BR"}
+ }
+ Atlantic/Canary{
+ territory{"ES"}
+ }
+ America/Cancun{
+ territory{"MX"}
+ }
+ Atlantic/Cape_Verde{
+ territory{"CV"}
+ }
+ America/Caracas{
+ territory{"VE"}
+ }
+ Africa/Casablanca{
+ territory{"MA"}
+ }
+ Antarctica/Casey{
+ territory{"AQ"}
+ }
+ America/Catamarca{
+ territory{"AR"}
+ aliases{
+ "America/Argentina/Catamarca",
+ }
+ }
+ America/Cayenne{
+ territory{"GF"}
+ }
+ America/Cayman{
+ territory{"KY"}
+ }
+ America/North_Dakota/Center{
+ territory{"US"}
+ }
+ Africa/Ceuta{
+ territory{"ES"}
+ }
+ Indian/Chagos{
+ territory{"IO"}
+ }
+ Pacific/Chatham{
+ territory{"NZ"}
+ aliases{
+ "NZ-CHAT",
+ }
+ }
+ America/Chicago{
+ territory{"US"}
+ aliases{
+ "CST6CDT",
+ "SystemV/CST6CDT",
+ "US/Central",
+ }
+ }
+ America/Chihuahua{
+ territory{"MX"}
+ }
+ Europe/Chisinau{
+ territory{"MD"}
+ aliases{
+ "Europe/Tiraspol",
+ }
+ }
+ Asia/Choibalsan{
+ territory{"MN"}
+ }
+ Asia/Chongqing{
+ territory{"CN"}
+ aliases{
+ "Asia/Chungking",
+ }
+ }
+ Indian/Christmas{
+ territory{"CX"}
+ }
+ Indian/Cocos{
+ territory{"CC"}
+ }
+ Asia/Colombo{
+ territory{"LK"}
+ }
+ America/Argentina/ComodRivadavia{
+ territory{"AR"}
+ }
+ Indian/Comoro{
+ territory{"KM"}
+ }
+ Africa/Conakry{
+ territory{"GN"}
+ }
+ Europe/Copenhagen{
+ territory{"DK"}
+ }
+ America/Cordoba{
+ territory{"AR"}
+ aliases{
+ "America/Argentina/Cordoba",
+ "America/Rosario",
+ }
+ }
+ America/Costa_Rica{
+ territory{"CR"}
+ }
+ America/Cuiaba{
+ territory{"BR"}
+ }
+ America/Curacao{
+ territory{"AN"}
+ }
+ Africa/Dakar{
+ territory{"SN"}
+ }
+ Asia/Damascus{
+ territory{"SY"}
+ }
+ America/Danmarkshavn{
+ territory{"GL"}
+ }
+ Africa/Dar_es_Salaam{
+ territory{"TZ"}
+ }
+ Australia/Darwin{
+ territory{"AU"}
+ aliases{
+ "Australia/North",
+ }
+ }
+ Antarctica/Davis{
+ territory{"AQ"}
+ }
+ America/Dawson{
+ territory{"CA"}
+ }
+ America/Dawson_Creek{
+ territory{"CA"}
+ }
+ America/Denver{
+ territory{"US"}
+ aliases{
+ "MST7MDT",
+ "SystemV/MST7MDT",
+ "US/Mountain",
+ }
+ }
+ America/Detroit{
+ territory{"US"}
+ aliases{
+ "US/Michigan",
+ }
+ }
+ Asia/Dhaka{
+ territory{"BD"}
+ aliases{
+ "Asia/Dacca",
+ }
+ }
+ Asia/Dili{
+ territory{"TL"}
+ }
+ Africa/Djibouti{
+ territory{"DJ"}
+ }
+ America/Dominica{
+ territory{"DM"}
+ }
+ Africa/Douala{
+ territory{"CM"}
+ }
+ Asia/Dubai{
+ territory{"AE"}
+ }
+ Europe/Dublin{
+ territory{"IE"}
+ aliases{
+ "Eire",
+ }
+ }
+ Antarctica/DumontDUrville{
+ territory{"AQ"}
+ }
+ Asia/Dushanbe{
+ territory{"TJ"}
+ }
+ Pacific/Easter{
+ territory{"CL"}
+ aliases{
+ "Chile/EasterIsland",
+ }
+ }
+ America/Edmonton{
+ territory{"CA"}
+ aliases{
+ "Canada/Mountain",
+ }
+ }
+ Pacific/Efate{
+ territory{"VU"}
+ }
+ America/Eirunepe{
+ territory{"BR"}
+ }
+ Africa/El_Aaiun{
+ territory{"EH"}
+ }
+ America/El_Salvador{
+ territory{"SV"}
+ }
+ Pacific/Enderbury{
+ territory{"KI"}
+ }
+ Atlantic/Faeroe{
+ territory{"FO"}
+ }
+ Pacific/Fakaofo{
+ territory{"TK"}
+ }
+ Pacific/Fiji{
+ territory{"FJ"}
+ }
+ America/Fortaleza{
+ territory{"BR"}
+ }
+ Africa/Freetown{
+ territory{"SL"}
+ }
+ Pacific/Funafuti{
+ territory{"TV"}
+ }
+ Africa/Gaborone{
+ territory{"BW"}
+ }
+ Pacific/Galapagos{
+ territory{"EC"}
+ }
+ Pacific/Gambier{
+ territory{"PF"}
+ aliases{
+ "SystemV/YST9",
+ }
+ }
+ Asia/Gaza{
+ territory{"PS"}
+ }
+ Europe/Gibraltar{
+ territory{"GI"}
+ }
+ America/Glace_Bay{
+ territory{"CA"}
+ }
+ Etc/GMT{
+ territory{"001"}
+ aliases{
+ "Etc/GMT+0",
+ "Etc/GMT-0",
+ "Etc/GMT0",
+ "Etc/Greenwich",
+ "Etc/UCT",
+ "Etc/UTC",
+ "Etc/Universal",
+ "Etc/Zulu",
+ "GMT",
+ "GMT+0",
+ "GMT-0",
+ "GMT0",
+ "Greenwich",
+ "UCT",
+ "UTC",
+ "Universal",
+ "Zulu",
+ }
+ }
+ Etc/GMT-1{
+ territory{"001"}
+ }
+ Etc/GMT-2{
+ territory{"001"}
+ }
+ Etc/GMT-3{
+ territory{"001"}
+ }
+ Etc/GMT-4{
+ territory{"001"}
+ }
+ Etc/GMT-5{
+ territory{"001"}
+ }
+ Etc/GMT-6{
+ territory{"001"}
+ }
+ Etc/GMT-7{
+ territory{"001"}
+ }
+ Etc/GMT-8{
+ territory{"001"}
+ }
+ Etc/GMT-9{
+ territory{"001"}
+ }
+ Etc/GMT-10{
+ territory{"001"}
+ }
+ Etc/GMT-11{
+ territory{"001"}
+ }
+ Etc/GMT-12{
+ territory{"001"}
+ }
+ Etc/GMT-13{
+ territory{"001"}
+ }
+ Etc/GMT-14{
+ territory{"001"}
+ }
+ Etc/GMT+1{
+ territory{"001"}
+ }
+ Etc/GMT+2{
+ territory{"001"}
+ }
+ Etc/GMT+3{
+ territory{"001"}
+ }
+ Etc/GMT+4{
+ territory{"001"}
+ }
+ Etc/GMT+5{
+ territory{"001"}
+ }
+ Etc/GMT+6{
+ territory{"001"}
+ }
+ Etc/GMT+7{
+ territory{"001"}
+ }
+ Etc/GMT+8{
+ territory{"001"}
+ }
+ Etc/GMT+9{
+ territory{"001"}
+ }
+ Etc/GMT+10{
+ territory{"001"}
+ }
+ Etc/GMT+11{
+ territory{"001"}
+ }
+ Etc/GMT+12{
+ territory{"001"}
+ }
+ America/Godthab{
+ territory{"GL"}
+ }
+ America/Goose_Bay{
+ territory{"CA"}
+ }
+ America/Grand_Turk{
+ territory{"TC"}
+ }
+ America/Grenada{
+ territory{"GD"}
+ }
+ Pacific/Guadalcanal{
+ territory{"SB"}
+ }
+ America/Guadeloupe{
+ territory{"GP"}
+ }
+ Pacific/Guam{
+ territory{"GU"}
+ }
+ America/Guatemala{
+ territory{"GT"}
+ }
+ America/Guayaquil{
+ territory{"EC"}
+ }
+ America/Guyana{
+ territory{"GY"}
+ }
+ America/Halifax{
+ territory{"CA"}
+ aliases{
+ "Canada/Atlantic",
+ "SystemV/AST4ADT",
+ }
+ }
+ Africa/Harare{
+ territory{"ZW"}
+ }
+ Asia/Harbin{
+ territory{"CN"}
+ }
+ America/Havana{
+ territory{"CU"}
+ aliases{
+ "Cuba",
+ }
+ }
+ Europe/Helsinki{
+ territory{"FI"}
+ }
+ America/Hermosillo{
+ territory{"MX"}
+ }
+ Australia/Hobart{
+ territory{"AU"}
+ aliases{
+ "Australia/Tasmania",
+ }
+ }
+ Asia/Hong_Kong{
+ territory{"HK"}
+ aliases{
+ "Hongkong",
+ }
+ }
+ Pacific/Honolulu{
+ territory{"US"}
+ aliases{
+ "HST",
+ "SystemV/HST10",
+ "US/Hawaii",
+ }
+ }
+ Asia/Hovd{
+ territory{"MN"}
+ }
+ America/Indianapolis{
+ territory{"US"}
+ aliases{
+ "America/Fort_Wayne",
+ "America/Indiana/Indianapolis",
+ "EST",
+ "SystemV/EST5",
+ "US/East-Indiana",
+ }
+ }
+ America/Inuvik{
+ territory{"CA"}
+ }
+ America/Iqaluit{
+ territory{"CA"}
+ }
+ Asia/Irkutsk{
+ territory{"RU"}
+ }
+ Europe/Istanbul{
+ territory{"TR"}
+ aliases{
+ "Asia/Istanbul",
+ "Turkey",
+ }
+ }
+ Asia/Jakarta{
+ territory{"ID"}
+ }
+ America/Jamaica{
+ territory{"JM"}
+ aliases{
+ "Jamaica",
+ }
+ }
+ Atlantic/Jan_Mayen{
+ territory{"SJ"}
+ }
+ Asia/Jayapura{
+ territory{"ID"}
+ }
+ Asia/Jerusalem{
+ territory{"IL"}
+ aliases{
+ "Asia/Tel_Aviv",
+ "Israel",
+ }
+ }
+ Africa/Johannesburg{
+ territory{"ZA"}
+ }
+ Pacific/Johnston{
+ territory{"UM"}
+ }
+ America/Jujuy{
+ territory{"AR"}
+ aliases{
+ "America/Argentina/Jujuy",
+ }
+ }
+ America/Juneau{
+ territory{"US"}
+ }
+ Asia/Kabul{
+ territory{"AF"}
+ }
+ Europe/Kaliningrad{
+ territory{"RU"}
+ }
+ Asia/Kamchatka{
+ territory{"RU"}
+ }
+ Africa/Kampala{
+ territory{"UG"}
+ }
+ Asia/Karachi{
+ territory{"PK"}
+ }
+ Asia/Kashgar{
+ territory{"CN"}
+ }
+ Asia/Katmandu{
+ territory{"NP"}
+ }
+ Indian/Kerguelen{
+ territory{"TF"}
+ }
+ Africa/Khartoum{
+ territory{"SD"}
+ }
+ Europe/Kiev{
+ territory{"UA"}
+ }
+ Africa/Kigali{
+ territory{"RW"}
+ }
+ Africa/Kinshasa{
+ territory{"CD"}
+ }
+ Pacific/Kiritimati{
+ territory{"KI"}
+ }
+ America/Indiana/Knox{
+ territory{"US"}
+ aliases{
+ "America/Knox_IN",
+ "US/Indiana-Starke",
+ }
+ }
+ Pacific/Kosrae{
+ territory{"FM"}
+ }
+ Asia/Krasnoyarsk{
+ territory{"RU"}
+ }
+ Asia/Kuala_Lumpur{
+ territory{"MY"}
+ }
+ Asia/Kuching{
+ territory{"MY"}
+ }
+ Asia/Kuwait{
+ territory{"KW"}
+ }
+ Pacific/Kwajalein{
+ territory{"MH"}
+ aliases{
+ "Kwajalein",
+ }
+ }
+ America/La_Paz{
+ territory{"BO"}
+ }
+ America/Argentina/La_Rioja{
+ territory{"AR"}
+ }
+ Africa/Lagos{
+ territory{"NG"}
+ }
+ Africa/Libreville{
+ territory{"GA"}
+ }
+ America/Lima{
+ territory{"PE"}
+ }
+ Australia/Lindeman{
+ territory{"AU"}
+ }
+ Europe/Lisbon{
+ territory{"PT"}
+ aliases{
+ "Portugal",
+ }
+ }
+ Europe/Ljubljana{
+ territory{"SI"}
+ }
+ Africa/Lome{
+ territory{"TG"}
+ }
+ Europe/London{
+ territory{"GB"}
+ aliases{
+ "GB",
+ "GB-Eire",
+ }
+ }
+ Arctic/Longyearbyen{
+ territory{"SJ"}
+ }
+ Australia/Lord_Howe{
+ territory{"AU"}
+ aliases{
+ "Australia/LHI",
+ }
+ }
+ America/Los_Angeles{
+ territory{"US"}
+ aliases{
+ "PST8PDT",
+ "SystemV/PST8PDT",
+ "US/Pacific",
+ "US/Pacific-New",
+ }
+ }
+ America/Louisville{
+ territory{"US"}
+ aliases{
+ "America/Kentucky/Louisville",
+ }
+ }
+ Africa/Luanda{
+ territory{"AO"}
+ }
+ Africa/Lubumbashi{
+ territory{"CD"}
+ }
+ Africa/Lusaka{
+ territory{"ZM"}
+ }
+ Europe/Luxembourg{
+ territory{"LU"}
+ }
+ Asia/Macau{
+ territory{"MO"}
+ aliases{
+ "Asia/Macao",
+ }
+ }
+ America/Maceio{
+ territory{"BR"}
+ }
+ Atlantic/Madeira{
+ territory{"PT"}
+ }
+ Europe/Madrid{
+ territory{"ES"}
+ }
+ Asia/Magadan{
+ territory{"RU"}
+ }
+ Indian/Mahe{
+ territory{"SC"}
+ }
+ Pacific/Majuro{
+ territory{"MH"}
+ }
+ Asia/Makassar{
+ territory{"ID"}
+ aliases{
+ "Asia/Ujung_Pandang",
+ }
+ }
+ Africa/Malabo{
+ territory{"GQ"}
+ }
+ Indian/Maldives{
+ territory{"MV"}
+ }
+ Europe/Malta{
+ territory{"MT"}
+ }
+ America/Managua{
+ territory{"NI"}
+ }
+ America/Manaus{
+ territory{"BR"}
+ aliases{
+ "Brazil/West",
+ }
+ }
+ Asia/Manila{
+ territory{"PH"}
+ }
+ Africa/Maputo{
+ territory{"MZ"}
+ }
+ America/Indiana/Marengo{
+ territory{"US"}
+ }
+ Europe/Mariehamn{
+ territory{"AX"}
+ }
+ Pacific/Marquesas{
+ territory{"PF"}
+ }
+ America/Martinique{
+ territory{"MQ"}
+ }
+ Africa/Maseru{
+ territory{"LS"}
+ }
+ Indian/Mauritius{
+ territory{"MU"}
+ }
+ Antarctica/Mawson{
+ territory{"AQ"}
+ }
+ Indian/Mayotte{
+ territory{"YT"}
+ }
+ America/Mazatlan{
+ territory{"MX"}
+ aliases{
+ "Mexico/BajaSur",
+ }
+ }
+ Africa/Mbabane{
+ territory{"SZ"}
+ }
+ Antarctica/McMurdo{
+ territory{"AQ"}
+ }
+ Australia/Melbourne{
+ territory{"AU"}
+ aliases{
+ "Australia/Victoria",
+ }
+ }
+ America/Mendoza{
+ territory{"AR"}
+ aliases{
+ "America/Argentina/Mendoza",
+ }
+ }
+ America/Menominee{
+ territory{"US"}
+ }
+ America/Merida{
+ territory{"MX"}
+ }
+ America/Mexico_City{
+ territory{"MX"}
+ aliases{
+ "Mexico/General",
+ }
+ }
+ Pacific/Midway{
+ territory{"UM"}
+ }
+ Europe/Minsk{
+ territory{"BY"}
+ }
+ America/Miquelon{
+ territory{"PM"}
+ }
+ Africa/Mogadishu{
+ territory{"SO"}
+ }
+ Europe/Monaco{
+ territory{"MC"}
+ }
+ Africa/Monrovia{
+ territory{"LR"}
+ }
+ America/Monterrey{
+ territory{"MX"}
+ }
+ America/Montevideo{
+ territory{"UY"}
+ }
+ America/Kentucky/Monticello{
+ territory{"US"}
+ }
+ America/Montreal{
+ territory{"CA"}
+ }
+ America/Montserrat{
+ territory{"MS"}
+ }
+ Europe/Moscow{
+ territory{"RU"}
+ aliases{
+ "W-SU",
+ }
+ }
+ Asia/Muscat{
+ territory{"OM"}
+ }
+ Africa/Nairobi{
+ territory{"KE"}
+ }
+ America/Nassau{
+ territory{"BS"}
+ }
+ Pacific/Nauru{
+ territory{"NR"}
+ }
+ Africa/Ndjamena{
+ territory{"TD"}
+ }
+ America/New_York{
+ territory{"US"}
+ aliases{
+ "EST5EDT",
+ "SystemV/EST5EDT",
+ "US/Eastern",
+ }
+ }
+ Africa/Niamey{
+ territory{"NE"}
+ }
+ Asia/Nicosia{
+ territory{"CY"}
+ aliases{
+ "Europe/Nicosia",
+ }
+ }
+ America/Nipigon{
+ territory{"CA"}
+ }
+ Pacific/Niue{
+ territory{"NU"}
+ }
+ America/Nome{
+ territory{"US"}
+ }
+ Pacific/Norfolk{
+ territory{"NF"}
+ }
+ America/Noronha{
+ territory{"BR"}
+ aliases{
+ "Brazil/DeNoronha",
+ }
+ }
+ Africa/Nouakchott{
+ territory{"MR"}
+ }
+ Pacific/Noumea{
+ territory{"NC"}
+ }
+ Asia/Novosibirsk{
+ territory{"RU"}
+ }
+ Asia/Omsk{
+ territory{"RU"}
+ }
+ Asia/Oral{
+ territory{"KZ"}
+ }
+ Europe/Oslo{
+ territory{"NO"}
+ }
+ Africa/Ouagadougou{
+ territory{"BF"}
+ }
+ Pacific/Pago_Pago{
+ territory{"AS"}
+ aliases{
+ "Pacific/Samoa",
+ "US/Samoa",
+ }
+ }
+ Pacific/Palau{
+ territory{"PW"}
+ }
+ Antarctica/Palmer{
+ territory{"AQ"}
+ }
+ America/Panama{
+ territory{"PA"}
+ }
+ America/Pangnirtung{
+ territory{"CA"}
+ }
+ America/Paramaribo{
+ territory{"SR"}
+ }
+ Europe/Paris{
+ territory{"FR"}
+ }
+ Australia/Perth{
+ territory{"AU"}
+ aliases{
+ "Australia/West",
+ }
+ }
+ Asia/Phnom_Penh{
+ territory{"KH"}
+ }
+ America/Phoenix{
+ territory{"US"}
+ aliases{
+ "MST",
+ "SystemV/MST7",
+ "US/Arizona",
+ }
+ }
+ Pacific/Pitcairn{
+ territory{"PN"}
+ aliases{
+ "SystemV/PST8",
+ }
+ }
+ Pacific/Ponape{
+ territory{"FM"}
+ }
+ Asia/Pontianak{
+ territory{"ID"}
+ }
+ Pacific/Port_Moresby{
+ territory{"PG"}
+ }
+ America/Port_of_Spain{
+ territory{"TT"}
+ }
+ America/Port-au-Prince{
+ territory{"HT"}
+ }
+ America/Porto_Velho{
+ territory{"BR"}
+ }
+ Africa/Porto-Novo{
+ territory{"BJ"}
+ }
+ Europe/Prague{
+ territory{"CZ"}
+ }
+ America/Puerto_Rico{
+ territory{"PR"}
+ aliases{
+ "SystemV/AST4",
+ }
+ }
+ Asia/Pyongyang{
+ territory{"KP"}
+ }
+ Asia/Qatar{
+ territory{"QA"}
+ }
+ Asia/Qyzylorda{
+ territory{"KZ"}
+ }
+ America/Rainy_River{
+ territory{"CA"}
+ }
+ Asia/Rangoon{
+ territory{"MM"}
+ }
+ America/Rankin_Inlet{
+ territory{"CA"}
+ }
+ Pacific/Rarotonga{
+ territory{"CK"}
+ }
+ America/Recife{
+ territory{"BR"}
+ }
+ America/Regina{
+ territory{"CA"}
+ aliases{
+ "Canada/East-Saskatchewan",
+ "Canada/Saskatchewan",
+ "SystemV/CST6",
+ }
+ }
+ Indian/Reunion{
+ territory{"RE"}
+ }
+ Atlantic/Reykjavik{
+ territory{"IS"}
+ aliases{
+ "Iceland",
+ }
+ }
+ Europe/Riga{
+ territory{"LV"}
+ }
+ America/Rio_Branco{
+ territory{"BR"}
+ aliases{
+ "America/Porto_Acre",
+ "Brazil/Acre",
+ }
+ }
+ America/Argentina/Rio_Gallegos{
+ territory{"AR"}
+ }
+ Asia/Riyadh{
+ territory{"SA"}
+ }
+ Europe/Rome{
+ territory{"IT"}
+ }
+ Antarctica/Rothera{
+ territory{"AQ"}
+ }
+ Asia/Saigon{
+ territory{"VN"}
+ }
+ Pacific/Saipan{
+ territory{"MP"}
+ }
+ Asia/Sakhalin{
+ territory{"RU"}
+ }
+ Europe/Samara{
+ territory{"RU"}
+ }
+ Asia/Samarkand{
+ territory{"UZ"}
+ }
+ America/Argentina/San_Juan{
+ territory{"AR"}
+ }
+ Europe/San_Marino{
+ territory{"SM"}
+ }
+ America/Santiago{
+ territory{"CL"}
+ aliases{
+ "Chile/Continental",
+ }
+ }
+ America/Santo_Domingo{
+ territory{"DO"}
+ }
+ America/Sao_Paulo{
+ territory{"BR"}
+ aliases{
+ "Brazil/East",
+ }
+ }
+ Africa/Sao_Tome{
+ territory{"ST"}
+ }
+ Europe/Sarajevo{
+ territory{"BA"}
+ }
+ America/Scoresbysund{
+ territory{"GL"}
+ }
+ Asia/Seoul{
+ territory{"KR"}
+ aliases{
+ "ROK",
+ }
+ }
+ Asia/Shanghai{
+ territory{"CN"}
+ aliases{
+ "PRC",
+ }
+ }
+ America/Shiprock{
+ territory{"US"}
+ aliases{
+ "Navajo",
+ }
+ }
+ Europe/Simferopol{
+ territory{"UA"}
+ }
+ Asia/Singapore{
+ territory{"SG"}
+ aliases{
+ "Singapore",
+ }
+ }
+ Europe/Skopje{
+ territory{"MK"}
+ }
+ Europe/Sofia{
+ territory{"BG"}
+ }
+ Atlantic/South_Georgia{
+ territory{"GS"}
+ }
+ Antarctica/South_Pole{
+ territory{"AQ"}
+ }
+ Atlantic/St_Helena{
+ territory{"SH"}
+ }
+ America/St_Johns{
+ territory{"CA"}
+ aliases{
+ "Canada/Newfoundland",
+ }
+ }
+ America/St_Kitts{
+ territory{"KN"}
+ }
+ America/St_Lucia{
+ territory{"LC"}
+ }
+ America/St_Thomas{
+ territory{"VI"}
+ aliases{
+ "America/Virgin",
+ }
+ }
+ America/St_Vincent{
+ territory{"VC"}
+ }
+ Atlantic/Stanley{
+ territory{"FK"}
+ }
+ Europe/Stockholm{
+ territory{"SE"}
+ }
+ America/Swift_Current{
+ territory{"CA"}
+ }
+ Australia/Sydney{
+ territory{"AU"}
+ aliases{
+ "Australia/ACT",
+ "Australia/Canberra",
+ "Australia/NSW",
+ }
+ }
+ Antarctica/Syowa{
+ territory{"AQ"}
+ }
+ Pacific/Tahiti{
+ territory{"PF"}
+ }
+ Asia/Taipei{
+ territory{"TW"}
+ aliases{
+ "ROC",
+ }
+ }
+ Europe/Tallinn{
+ territory{"EE"}
+ }
+ Pacific/Tarawa{
+ territory{"KI"}
+ }
+ Asia/Tashkent{
+ territory{"UZ"}
+ }
+ Asia/Tbilisi{
+ territory{"GE"}
+ }
+ America/Tegucigalpa{
+ territory{"HN"}
+ }
+ Asia/Tehran{
+ territory{"IR"}
+ aliases{
+ "Iran",
+ }
+ }
+ Asia/Thimphu{
+ territory{"BT"}
+ aliases{
+ "Asia/Thimbu",
+ }
+ }
+ America/Thule{
+ territory{"GL"}
+ }
+ America/Thunder_Bay{
+ territory{"CA"}
+ }
+ America/Tijuana{
+ territory{"MX"}
+ aliases{
+ "America/Ensenada",
+ "Mexico/BajaNorte",
+ }
+ }
+ Africa/Timbuktu{
+ territory{"ML"}
+ }
+ Europe/Tirane{
+ territory{"AL"}
+ }
+ Asia/Tokyo{
+ territory{"JP"}
+ aliases{
+ "Japan",
+ }
+ }
+ Pacific/Tongatapu{
+ territory{"TO"}
+ }
+ America/Toronto{
+ territory{"CA"}
+ aliases{
+ "Canada/Eastern",
+ }
+ }
+ America/Tortola{
+ territory{"VG"}
+ }
+ Africa/Tripoli{
+ territory{"LY"}
+ aliases{
+ "Libya",
+ }
+ }
+ Pacific/Truk{
+ territory{"FM"}
+ }
+ America/Argentina/Tucuman{
+ territory{"AR"}
+ }
+ Africa/Tunis{
+ territory{"TN"}
+ }
+ Asia/Ulaanbaatar{
+ territory{"MN"}
+ aliases{
+ "Asia/Ulan_Bator",
+ }
+ }
+ Asia/Urumqi{
+ territory{"CN"}
+ }
+ America/Argentina/Ushuaia{
+ territory{"AR"}
+ }
+ Europe/Uzhgorod{
+ territory{"UA"}
+ }
+ Europe/Vaduz{
+ territory{"LI"}
+ }
+ America/Vancouver{
+ territory{"CA"}
+ aliases{
+ "Canada/Pacific",
+ }
+ }
+ Europe/Vatican{
+ territory{"VA"}
+ }
+ America/Indiana/Vevay{
+ territory{"US"}
+ }
+ Europe/Vienna{
+ territory{"AT"}
+ }
+ Asia/Vientiane{
+ territory{"LA"}
+ }
+ Europe/Vilnius{
+ territory{"LT"}
+ }
+ Asia/Vladivostok{
+ territory{"RU"}
+ }
+ Antarctica/Vostok{
+ territory{"AQ"}
+ }
+ Pacific/Wake{
+ territory{"UM"}
+ }
+ Pacific/Wallis{
+ territory{"WF"}
+ }
+ Europe/Warsaw{
+ territory{"PL"}
+ aliases{
+ "Poland",
+ }
+ }
+ America/Whitehorse{
+ territory{"CA"}
+ aliases{
+ "Canada/Yukon",
+ }
+ }
+ Africa/Windhoek{
+ territory{"NA"}
+ }
+ America/Winnipeg{
+ territory{"CA"}
+ aliases{
+ "Canada/Central",
+ }
+ }
+ America/Yakutat{
+ territory{"US"}
+ }
+ Asia/Yakutsk{
+ territory{"RU"}
+ }
+ Pacific/Yap{
+ territory{"FM"}
+ }
+ Asia/Yekaterinburg{
+ territory{"RU"}
+ }
+ America/Yellowknife{
+ territory{"CA"}
+ }
+ Asia/Yerevan{
+ territory{"AM"}
+ }
+ Europe/Zagreb{
+ territory{"HR"}
+ }
+ Europe/Zaporozhye{
+ territory{"UA"}
+ }
+ Europe/Zurich{
+ territory{"CH"}
+ }
+ }
+}
diff --git a/Build/source/libs/icu-xetex/data/misc/zoneinfo.txt b/Build/source/libs/icu-xetex/data/misc/zoneinfo.txt
index be44d15c71a..157d9c95354 100644
--- a/Build/source/libs/icu-xetex/data/misc/zoneinfo.txt
+++ b/Build/source/libs/icu-xetex/data/misc/zoneinfo.txt
@@ -1,20 +1,21 @@
//---------------------------------------------------------
-// Copyright (C) 2003-2005, International Business Machines
+// Copyright (C) 2003-2006, International Business Machines
// Corporation and others. All Rights Reserved.
//---------------------------------------------------------
// Build tool: tz2icu
-// Build date: Thu Jun 30 16:39:36 2005
+// Build date: Mon Aug 21 14:54:26 2006
// Olson source: ftp://elsie.nci.nih.gov/pub/
-// Olson version: 2005j
+// Olson version: 2006j
//---------------------------------------------------------
// >> !!! >> THIS IS A MACHINE-GENERATED FILE << !!! <<
// >> !!! >>> DO NOT EDIT <<< !!! <<
//---------------------------------------------------------
-zoneinfo {
+zoneinfo:table(nofallback) {
+ TZVersion { "2006j" }
Zones:array {
- /* ACT */ :int { 310 } //Z#0
-, /* AET */ :int { 321 } //Z#1
+ /* ACT */ :int { 318 } //Z#0
+, /* AET */ :int { 329 } //Z#1
, /* AGT */ :int { 62 } //Z#2
, /* ART */ :int { 17 } //Z#3
, /* AST */ :int { 58 } //Z#4
@@ -32,7 +33,7 @@ zoneinfo {
:intvector { -1062210920 }
:intvector { 10800, 0 }
:bin { "00" }
- :intvector { 7, 350 }
+ :intvector { 7, 358 }
} //Z#7
, /* Africa/Algiers */ :array {
:intvector { -1855958961, -1689814800, -1680397200, -1665363600, -1648342800, -1635123600, -1616893200, -1604278800, -1585443600, -1574038800, -1552266000, -1539997200, -1531443600, -956365200, -950486400, -942012000, -812502000, -796262400, -781052400, -766630800, -733280400, -439430400, -212029200, 41468400, 54774000, 231724800, 246236400, 259545600, 275274000, 309740400, 325468800, 341802000, 357523200 }
@@ -48,6 +49,7 @@ zoneinfo {
:intvector { -1830382080, -1131235200, -300841200 }
:intvector { -3600, 0, 0, 0 }
:bin { "010001" }
+ :intvector { 10, 53 }
} //Z#10
, /* Africa/Bangui */ :array {
:intvector { -1830388460 }
@@ -85,7 +87,7 @@ zoneinfo {
:bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Egypt"
:intvector { 7200, 1995 }
- :intvector { 3, 17, 355 }
+ :intvector { 3, 17, 363 }
} //Z#17
, /* Africa/Casablanca */ :array {
:intvector { -1773012580, -956361600, -950490000, -942019200, -761187600, -617241600, -605149200, -81432000, -71110800, 141264000, 147222000, 199756800, 207702000, 231292800, 244249200, 265507200, 271033200, 448243200, 504918000 }
@@ -143,7 +145,7 @@ zoneinfo {
:intvector { -2109290652 }
:intvector { 7200, 0 }
:bin { "00" }
- :intvector { 28, 332 }
+ :intvector { 28, 340 }
} //Z#28
, /* Africa/Johannesburg */ :array {
:intvector { -2109288600, -860976000, -845254800, -829526400, -813805200 }
@@ -265,21 +267,19 @@ zoneinfo {
:intvector { 0, 0 }
:bin { "00" }
} //Z#52
-, /* Africa/Timbuktu */ :array {
- :intvector { -1830383276 }
- :intvector { 0, 0 }
- :bin { "00" }
- } //Z#53
+, /* Africa/Timbuktu */ :int { 10 } //Z#53
, /* Africa/Tripoli */ :array {
:intvector { -1577926364, -574902000, -568087200, -512175600, -504928800, -449888400, -441856800, -347158800, 378684000, 386463600, 402271200, 417999600, 433807200, 449622000, 465429600, 481590000, 496965600, 512953200, 528674400, 544230000, 560037600, 575852400, 591660000, 607388400, 623196000, 641775600, 844034400, 860108400, 875916000 }
:intvector { 3600, 0, 3600, 3600, 7200, 0 }
:bin { "0001000100010002000100010001000100010001000100010002000102" }
- :intvector { 54, 475 }
+ :intvector { 54, 487 }
} //Z#54
, /* Africa/Tunis */ :array {
- :intvector { -1855958961, -969242400, -950493600, -941940000, -891136800, -877827600, -857257200, -844556400, -842918400, -842223600, -828230400, -812502000, -796269600, -781052400, -766634400, 231202800, 243903600, 262825200, 276044400, 581122800, 591145200, 606870000, 622594800, 641516400, 654649200 }
+ :intvector { -1855958961, -969242400, -950493600, -941940000, -891136800, -877827600, -857257200, -844556400, -842918400, -842223600, -828230400, -812502000, -796269600, -781052400, -766634400, 231202800, 243903600, 262825200, 276044400, 581122800, 591145200, 606870000, 622594800, 641516400, 654649200, 1114902000, 1128038400 }
:intvector { 3600, 0, 3600, 3600 }
- :bin { "00010001000100010001000100010001000100010001000100" }
+ :bin { "000100010001000100010001000100010001000100010001000100" }
+ "Tunisia"
+ :intvector { 3600, 2006 }
} //Z#55
, /* Africa/Windhoek */ :array {
:intvector { -2109288600, -860976000, -845254800, 637970400, 765324000, 778640400 }
@@ -289,20 +289,20 @@ zoneinfo {
:intvector { 3600, 1995 }
} //Z#56
, /* America/Adak */ :array {
- :intvector { -880196400, -769395600, -765374400, -86878800, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 439034400, 452088000, 467809200, 483537600, 499258800, 514987200, 530708400 }
+ :intvector { -880196400, -769395600, -765374400, -86878800, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 439034400, 452088000, 467809200, 483537600, 499258800, 514987200, 530708400, 544622400, 562158000, 576072000, 594212400, 607521600, 625662000, 638971200, 657111600, 671025600, 688561200, 702475200, 720010800, 733924800, 752065200, 765374400, 783514800, 796824000, 814964400, 828878400, 846414000, 860328000, 877863600, 891777600, 909313200, 923227200, 941367600, 954676800, 972817200, 986126400, 1004266800, 1018180800, 1035716400, 1049630400, 1067166000, 1081080000, 1099220400, 1112529600, 1130670000, 1143979200, 1162119600 }
:intvector { -39600, 0, -39600, 3600, -36000, 0, -36000, 3600 }
- :bin { "0101000001000100010001000100010001000100010001000100010001000100010202030203020302" }
+ :bin { "010100000100010001000100010001000100010001000100010001000100010001020203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"US"
- :intvector { -36000, 1987 }
- :intvector { 57, 75, 559 }
+ :intvector { -36000, 2007 }
+ :intvector { 57, 76, 558 }
} //Z#57
, /* America/Anchorage */ :array {
- :intvector { -880200000, -769395600, -765378000, -86882400, -21470400, -5749200, 9979200, 25700400, 41428800, 57754800, 73483200, 89204400, 104932800, 120654000, 126705600, 152103600, 162388800, 183553200, 199281600, 215607600, 230731200, 247057200, 262785600, 278506800, 294235200, 309956400, 325684800, 341406000, 357134400, 372855600, 388584000, 404910000, 420033600, 436359600, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800 }
+ :intvector { -880200000, -769395600, -765378000, -86882400, -21470400, -5749200, 9979200, 25700400, 41428800, 57754800, 73483200, 89204400, 104932800, 120654000, 126705600, 152103600, 162388800, 183553200, 199281600, 215607600, 230731200, 247057200, 262785600, 278506800, 294235200, 309956400, 325684800, 341406000, 357134400, 372855600, 388584000, 404910000, 420033600, 436359600, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000 }
:intvector { -36000, 0, -36000, 3600, -32400, 0, -32400, 3600 }
- :bin { "0101000001000100010001000100010001000100010001000100010001000100010202030203020302" }
+ :bin { "010100000100010001000100010001000100010001000100010001000100010001020203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"US"
- :intvector { -32400, 1987 }
- :intvector { 4, 58, 555, 558 }
+ :intvector { -32400, 2007 }
+ :intvector { 4, 58, 557 }
} //Z#58
, /* America/Anguilla */ :array {
:intvector { -1825098464 }
@@ -323,30 +323,26 @@ zoneinfo {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667965600, 687927600, 699415200, 719377200, 731469600, 938919600, 952052400 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100020302030203020302030203020102" }
- :intvector { 2, 62, 83 }
+ :intvector { 2, 62, 85 }
} //Z#62
, /* America/Argentina/Catamarca */ :array {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667965600, 687931200, 699415200, 719377200, 731469600, 938919600, 952052400, 1086058800, 1087704000 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000203020302030203000302030201020002" }
- :intvector { 63, 88 }
+ :intvector { 63, 64, 90 }
} //Z#63
-, /* America/Argentina/ComodRivadavia */ :array {
- :intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667965600, 687931200, 699415200, 719377200, 731469600, 938919600, 952052400, 1086058800, 1087704000 }
- :intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
- :bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000203020302030203000302030201020002" }
- } //Z#64
+, /* America/Argentina/ComodRivadavia */ :int { 63 } //Z#64
, /* America/Argentina/Cordoba */ :array {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667965600, 687931200, 699415200, 719377200, 731469600, 938919600, 952052400 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100020302030203020300030203020102" }
- :intvector { 65, 93, 172 }
+ :intvector { 65, 96, 179 }
} //Z#65
, /* America/Argentina/Jujuy */ :array {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 657086400, 669178800, 686721600, 699415200, 719377200, 731469600, 938919600, 952052400 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100020302030203000100030203020102" }
- :intvector { 66, 129 }
+ :intvector { 66, 134 }
} //Z#66
, /* America/Argentina/La_Rioja */ :array {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667792800, 673588800, 687927600, 699415200, 719377200, 731469600, 938919600, 952052400, 1086058800, 1087704000 }
@@ -357,7 +353,7 @@ zoneinfo {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 655963200, 667796400, 687499200, 699418800, 719380800, 731469600, 938919600, 952052400, 1085281200, 1096171200 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000203020302030001000100030201020002" }
- :intvector { 68, 143 }
+ :intvector { 68, 148 }
} //Z#68
, /* America/Argentina/Rio_Gallegos */ :array {
:intvector { -1567453392, -1233432000, -1222981200, -1205956800, -1194037200, -1172865600, -1162501200, -1141329600, -1130965200, -1109793600, -1099429200, -1078257600, -1067806800, -1046635200, -1036270800, -1015099200, -1004734800, -983563200, -973198800, -952027200, -941576400, -931032000, -900882000, -890337600, -833749200, -827265600, -752274000, -733780800, -197326800, -190843200, -184194000, -164491200, -152658000, -132955200, -121122000, -101419200, -86821200, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 596948400, 605066400, 624423600, 636516000, 656478000, 667965600, 687927600, 699415200, 719377200, 731469600, 938919600, 952052400, 1086058800, 1087704000 }
@@ -391,2235 +387,2306 @@ zoneinfo {
"Para"
:intvector { -14400, 2005 }
} //Z#74
-, /* America/Atka */ :int { 57 } //Z#75
+, /* America/Atikokan */ :array {
+ :intvector { -1632067200, -1614790800, -923248800, -880214400, -769395600, -765392400 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0 }
+ :bin { "010001010102" }
+ :intvector { 75, 95 }
+ } //Z#75
+, /* America/Atka */ :int { 57 } //Z#76
, /* America/Bahia */ :array {
:intvector { -1767216356, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 656478000, 666756000, 687927600, 697600800, 719982000, 728445600, 750826800, 761709600, 782276400, 793159200, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#76
+ } //Z#77
, /* America/Barbados */ :array {
:intvector { -1451678492, -1199217692, 234943200, 244616400, 261554400, 276066000, 293004000, 307515600, 325058400, 338706000 }
:intvector { -14400, 0, -14400, 3600, -14308, 0 }
:bin { "02000100010001000100" }
- } //Z#77
+ } //Z#78
, /* America/Belem */ :array {
:intvector { -1767213964, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100" }
- } //Z#78
+ } //Z#79
, /* America/Belize */ :array {
:intvector { -1822500432, -1616954400, -1606069800, -1585504800, -1574015400, -1554055200, -1542565800, -1522605600, -1511116200, -1490551200, -1479666600, -1459101600, -1448217000, -1427652000, -1416162600, -1396202400, -1384713000, -1364752800, -1353263400, -1333303200, -1321813800, -1301248800, -1290364200, -1269799200, -1258914600, -1238349600, -1226860200, -1206900000, -1195410600, -1175450400, -1163961000, -1143396000, -1132511400, -1111946400, -1101061800, -1080496800, -1069612200, -1049047200, -1037557800, -1017597600, -1006108200, -986148000, -974658600, -954093600, -943209000, -922644000, -911759400, -891194400, -879705000, -859744800, -848255400, 123919200, 129618000, 409039200, 413874000 }
:intvector { -21600, 0, -21600, 1800, -21600, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010002000200" }
- } //Z#79
+ } //Z#80
+, /* America/Blanc-Sablon */ :array {
+ :intvector { -1632074400, -1614798000, -880221600, -769395600, -765399600 }
+ :intvector { -14400, 0, -14400, 3600 }
+ :bin { "0100010100" }
+ } //Z#81
, /* America/Boa_Vista */ :array {
:intvector { -1767211040, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 938923200, 951620400, 970977600, 971578800 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#80
+ } //Z#82
, /* America/Bogota */ :array {
- :intvector { -1739041420, 704782800, 725774400 }
+ :intvector { -1739041420, 704869200, 733896000 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "000100" }
- } //Z#81
+ } //Z#83
, /* America/Boise */ :array {
- :intvector { -1633269600, -1615129200, -1601820000, -1583679600, -1471788000, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 129114000, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
+ :intvector { -1633269600, -1615129200, -1601820000, -1583679600, -1471788000, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 129114000, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
:intvector { -28800, 0, -28800, 3600, -25200, 0, -25200, 3600 }
- :bin { "010001000203030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
+ :bin { "01000100020303020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"US"
- :intvector { -25200, 1987 }
- } //Z#82
-, /* America/Buenos_Aires */ :int { 62 } //Z#83
+ :intvector { -25200, 2007 }
+ } //Z#84
+, /* America/Buenos_Aires */ :int { 62 } //Z#85
, /* America/Cambridge_Bay */ :array {
- :intvector { -1632063600, -1615132800, -1596985200, -1583172000, -880210800, -769395600, -765388800, -147891600, -131562000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
- :intvector { -25200, 0, -25200, 3600, -25200, 7200 }
- :bin { "0100010001010002000100010001000100010001000100" }
+ :intvector { -1632063600, -1615132800, -1596985200, -1583172000, -880210800, -769395600, -765388800, -147891600, -131562000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954662400, 972802800, 973400400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
+ :intvector { -25200, 0, -25200, 3600, -25200, 7200, -21600, 0, -21600, 3600, -18000, 0 }
+ :bin { "01000100010100020001000100010001000100010001000100010001000100010001000100010001000100010001000103040503010001000100010001000100" }
"Canada"
- :intvector { -25200, 1987 }
- } //Z#84
+ :intvector { -25200, 2007 }
+ } //Z#86
, /* America/Campo_Grande */ :array {
:intvector { -1767212492, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1066536000, 1076814000, 1099368000 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"Brazil"
:intvector { -14400, 2005 }
- } //Z#85
+ } //Z#87
, /* America/Cancun */ :array {
:intvector { -1514743200, 377935200, 828860400, 846396000, 860310000, 877845600, 891759600, 902037600, 909298800, 923212800, 941353200, 954662400, 972802800, 989136000, 1001833200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
:bin { "000203020302030100010001000100" }
"Mexico"
:intvector { -21600, 2002 }
- } //Z#86
+ } //Z#88
, /* America/Caracas */ :array {
:intvector { -1826739140, -157750200 }
:intvector { -16200, 0, -14400, 0 }
:bin { "0001" }
- } //Z#87
-, /* America/Catamarca */ :int { 63 } //Z#88
+ } //Z#89
+, /* America/Catamarca */ :int { 63 } //Z#90
, /* America/Cayenne */ :array {
:intvector { -1846269040, -71092800 }
:intvector { -14400, 0, -10800, 0 }
:bin { "0001" }
- } //Z#89
+ } //Z#91
, /* America/Cayman */ :array {
:intvector { -1827687168 }
:intvector { -18000, 0 }
:bin { "00" }
- } //Z#90
+ } //Z#92
, /* America/Chicago */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -1563724800, -1551632400, -1538928000, -1520182800, -1504454400, -1491757200, -1473004800, -1459702800, -1441555200, -1428253200, -1410105600, -1396803600, -1378656000, -1365354000, -1347206400, -1333904400, -1315152000, -1301850000, -1283702400, -1270400400, -1252252800, -1238950800, -1220803200, -1207501200, -1189353600, -1176051600, -1157299200, -1144602000, -1125849600, -1112547600, -1094400000, -1081098000, -1067788800, -1045414800, -1031500800, -1018198800, -1000051200, -986749200, -967996800, -955299600, -936547200, -923245200, -905097600, -891795600, -880214400, -769395600, -765392400, -747244800, -733942800, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -447267600, -431539200, -415818000, -400089600, -384368400, -368640000, -352918800, -337190400, -321469200, -305740800, -289414800, -273686400, -257965200, -242236800, -226515600, -210787200, -195066000, -179337600, -163616400, -147888000, -131562000, -116438400, -100112400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -1563724800, -1551632400, -1538928000, -1520182800, -1504454400, -1491757200, -1473004800, -1459702800, -1441555200, -1428253200, -1410105600, -1396803600, -1378656000, -1365354000, -1347206400, -1333904400, -1315152000, -1301850000, -1283702400, -1270400400, -1252252800, -1238950800, -1220803200, -1207501200, -1189353600, -1176051600, -1157299200, -1144602000, -1125849600, -1112547600, -1094400000, -1081098000, -1067788800, -1045414800, -1031500800, -1018198800, -1000051200, -986749200, -967996800, -955299600, -936547200, -923245200, -905097600, -891795600, -880214400, -769395600, -765392400, -747244800, -733942800, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -447267600, -431539200, -415818000, -400089600, -384368400, -368640000, -352918800, -337190400, -321469200, -305740800, -289414800, -273686400, -257965200, -242236800, -226515600, -210787200, -195066000, -179337600, -163616400, -147888000, -131562000, -116438400, -100112400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010002000100010001000100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000200010001000100010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -21600, 1987 }
- :intvector { 91, 335, 336, 546, 561 }
- } //Z#91
+ :intvector { -21600, 2007 }
+ :intvector { 93, 343, 560 }
+ } //Z#93
, /* America/Chihuahua */ :array {
:intvector { -1514739600, -1343066400, -1234807200, -1220292000, -1207159200, -1191344400, 828864000, 846399600, 860313600, 877849200, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 989139600, 1001836800 }
:intvector { -25200, 0, -25200, 3600, -21600, 0, -21600, 3600 }
:bin { "000200020002030203020100010001000100" }
"Mexico"
:intvector { -25200, 2002 }
- } //Z#92
-, /* America/Cordoba */ :int { 65 } //Z#93
+ } //Z#94
+, /* America/Coral_Harbour */ :int { 75 } //Z#95
+, /* America/Cordoba */ :int { 65 } //Z#96
, /* America/Costa_Rica */ :array {
:intvector { -1545071020, 288770400, 297234000, 320220000, 328683600, 664264800, 678344400, 695714400, 700635600 }
:intvector { -21600, 0, -21600, 3600 }
:bin { "000100010001000100" }
- } //Z#94
+ } //Z#97
, /* America/Cuiaba */ :array {
:intvector { -1767212140, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 592977600, 602046000, 624427200, 634705200, 656481600, 666759600, 687931200, 697604400, 719985600, 728449200, 750830400, 761713200, 782280000, 793162800, 813729600, 824007600, 844574400, 856062000, 876110400, 888721200, 908078400, 919566000, 938923200, 951620400, 970977600, 982465200, 1003032000, 1013914800, 1036296000, 1045364400, 1099368000 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"Brazil"
:intvector { -14400, 2005 }
- } //Z#95
+ } //Z#98
, /* America/Curacao */ :array {
:intvector { -1826738656, -157750200 }
:intvector { -16200, 0, -14400, 0 }
:bin { "0001" }
- } //Z#96
+ } //Z#99
, /* America/Danmarkshavn */ :array {
:intvector { -1686091520, 323845200, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400, 820465200 }
:intvector { -10800, 0, -10800, 3600, 0, 0 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010002" }
- } //Z#97
+ } //Z#100
, /* America/Dawson */ :array {
- :intvector { -1632056400, -1615125600, -1596978000, -1583164800, -880203600, -769395600, -765381600, -147884400, -131554800, 120646800, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200 }
+ :intvector { -1632056400, -1615125600, -1596978000, -1583164800, -880203600, -769395600, -765381600, -147884400, -131554800, 120646800, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400 }
:intvector { -32400, 0, -32400, 3600, -32400, 7200, -28800, 0, -28800, 3600 }
- :bin { "010001000101000200030403040304030403040304030403" }
- "NT_YK"
- :intvector { -28800, 1987 }
- } //Z#98
+ :bin { "01000100010100020003040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
+ "Canada"
+ :intvector { -28800, 2007 }
+ } //Z#101
, /* America/Dawson_Creek */ :array {
:intvector { -1632060000, -1614783600, -880207200, -769395600, -765385200, -715788000, -702486000, -684338400, -671036400, -652888800, -639586800, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 84013200 }
:intvector { -28800, 0, -28800, 3600, -25200, 0 }
:bin { "010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000102" }
- } //Z#99
+ } //Z#102
, /* America/Denver */ :array {
- :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -1570374000, -1551628800, -1538924400, -1534089600, -880210800, -769395600, -765388800, -147884400, -131558400, -116434800, -100108800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
+ :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -1570374000, -1551628800, -1538924400, -1534089600, -880210800, -769395600, -765388800, -147884400, -131558400, -116434800, -100108800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
:intvector { -25200, 0, -25200, 3600 }
- :bin { "01000100010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001000100010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -25200, 1987 }
- :intvector { 100, 177, 479, 490, 551, 567 }
- } //Z#100
+ :intvector { -25200, 2007 }
+ :intvector { 103, 184, 502, 566 }
+ } //Z#103
, /* America/Detroit */ :array {
- :intvector { -2051202469, -1724083200, -880218000, -769395600, -765396000, -684349200, -671047200, -80499600, -68666400, 104914800, 120636000, 126687600, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -2051202469, -1724083200, -880218000, -769395600, -765396000, -684349200, -671047200, -80499600, -68666400, 104914800, 120636000, 126687600, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -21600, 0, -18000, 0, -18000, 3600 }
- :bin { "00010202010201020102010201020102010201020102010201020102010201020102010201" }
+ :bin { "0001020201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
"US"
- :intvector { -18000, 1987 }
- :intvector { 101, 566 }
- } //Z#101
+ :intvector { -18000, 2007 }
+ :intvector { 104, 565 }
+ } //Z#104
, /* America/Dominica */ :array {
:intvector { -1846266804 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#102
+ } //Z#105
, /* America/Edmonton */ :array {
- :intvector { -1998663968, -1632063600, -1614787200, -1600614000, -1596816000, -1567954800, -1551628800, -1536505200, -1523203200, -1504450800, -1491753600, -1473001200, -1459699200, -880210800, -769395600, -765388800, -715791600, -702489600, -84380400, -68659200, -21481200, -5760000, 73472400, 89193600, 104922000, 120643200, 136371600, 152092800, 167821200, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
+ :intvector { -1998663968, -1632063600, -1614787200, -1600614000, -1596816000, -1567954800, -1551628800, -1536505200, -1523203200, -1504450800, -1491753600, -1473001200, -1459699200, -880210800, -769395600, -765388800, -715791600, -702489600, -84380400, -68659200, -21481200, -5760000, 73472400, 89193600, 104922000, 120643200, 136371600, 152092800, 167821200, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
:intvector { -25200, 0, -25200, 3600 }
- :bin { "00010001000100010001000100010100010001000100010001000100010001000100010001000100010001000100010001000100" }
- "Edm"
- :intvector { -25200, 1987 }
- :intvector { 103, 342 }
- } //Z#103
+ :bin { "0001000100010001000100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "Canada"
+ :intvector { -25200, 2007 }
+ :intvector { 106, 350 }
+ } //Z#106
, /* America/Eirunepe */ :array {
:intvector { -1767208832, -1206950400, -1191355200, -1175367600, -1159819200, -633812400, -622062000, -602276400, -591825600, -570740400, -560203200, -539118000, -531345600, -191358000, -184190400, -155156400, -150062400, -128890800, -121118400, -99946800, -89582400, -68410800, -57960000, 499755600, 511243200, 530600400, 540273600, 562136400, 571204800, 750834000, 761716800 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100" }
- } //Z#104
+ } //Z#107
, /* America/El_Salvador */ :array {
:intvector { -1546279392, 547020000, 559717200, 578469600, 591166800 }
:intvector { -21600, 0, -21600, 3600 }
:bin { "0001000100" }
- } //Z#105
-, /* America/Ensenada */ :int { 187 } //Z#106
-, /* America/Fort_Wayne */ :int { 125 } //Z#107
+ } //Z#108
+, /* America/Ensenada */ :int { 194 } //Z#109
+, /* America/Fort_Wayne */ :int { 124 } //Z#110
, /* America/Fortaleza */ :array {
:intvector { -1767216360, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 938919600, 951616800, 970974000, 972180000, 1003028400, 1013911200 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#108
+ } //Z#111
, /* America/Glace_Bay */ :array {
- :intvector { -2131646412, -1632074400, -1614798000, -880221600, -769395600, -765399600, -526500000, -513198000, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800 }
+ :intvector { -2131646412, -1632074400, -1614798000, -880221600, -769395600, -765399600, -526500000, -513198000, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000 }
:intvector { -14400, 0, -14400, 3600 }
- :bin { "0001000101000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "000100010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -14400, 1987 }
- } //Z#109
+ :intvector { -14400, 2007 }
+ } //Z#112
, /* America/Godthab */ :array {
:intvector { -1686083584, 323845200, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { -10800, 1996 }
- } //Z#110
+ } //Z#113
, /* America/Goose_Bay */ :array {
- :intvector { -1632076148, -1614799748, -1096921748, -1061670600, -1048973400, -1030221000, -1017523800, -998771400, -986074200, -966717000, -954624600, -935267400, -922570200, -903817800, -891120600, -872368200, -769395600, -765401400, -746044200, -733347000, -714594600, -701897400, -683145000, -670447800, -651695400, -638998200, -619641000, -606943800, -589401000, -576099000, -557951400, -544649400, -526501800, -513199800, -495052200, -481750200, -463602600, -450300600, -431548200, -418246200, -400098600, -386796600, -368649000, -355347000, -337199400, -323897400, -305749800, -289423800, -273695400, -257974200, -242245800, -226524600, -210796200, -195075000, -179346600, -163625400, -147897000, -131571000, -119903400, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544593660, 562129260, 576043260, 594180060 }
+ :intvector { -1632076148, -1614799748, -1096921748, -1061670600, -1048973400, -1030221000, -1017523800, -998771400, -986074200, -966717000, -954624600, -935267400, -922570200, -903817800, -891120600, -872368200, -769395600, -765401400, -746044200, -733347000, -714594600, -701897400, -683145000, -670447800, -651695400, -638998200, -619641000, -606943800, -589401000, -576099000, -557951400, -544649400, -526501800, -513199800, -495052200, -481750200, -463602600, -450300600, -431548200, -418246200, -400098600, -386796600, -368649000, -355347000, -337199400, -323897400, -305749800, -289423800, -273695400, -257974200, -242245800, -226524600, -210796200, -195075000, -179346600, -163625400, -147897000, -131571000, -119903400, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544593660, 562129260, 576043260, 594180060, 607492860, 625633260, 638942460, 657082860, 670996860, 688532460, 702446460, 719982060, 733896060, 752036460, 765345660, 783486060, 796795260, 814935660, 828849660, 846385260, 860299260, 877834860, 891748860, 909284460, 923198460, 941338860, 954648060, 972788460, 986097660, 1004238060, 1018152060, 1035687660, 1049601660, 1067137260, 1081051260, 1099191660, 1112500860, 1130641260, 1143950460, 1162090860 }
:intvector { -14400, 0, -14400, 3600, -14400, 7200, -12652, 0, -12652, 3600, -12600, 0, -12600, 3600 }
- :bin { "040305060506050605060506050605060605060506050605060506050605060506050605060506050605060506050605060506050605060506050001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000200" }
+ :bin { "040305060506050605060506050605060605060506050605060506050605060506050605060506050605060506050605060506050605060506050001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000200010001000100010001000100010001000100010001000100010001000100010001000100" }
"StJohns"
- :intvector { -14400, 1989 }
- } //Z#111
+ :intvector { -14400, 2007 }
+ } //Z#114
, /* America/Grand_Turk */ :array {
:intvector { -1827687168, 294210000, 309931200, 325659600, 341380800, 357109200, 372830400, 388558800, 404884800, 420008400, 436334400, 452062800, 467784000, 483512400, 499233600, 514962000, 530683200 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "0001000100010001000100010001000100" }
"TC"
:intvector { -18000, 1987 }
- } //Z#112
+ } //Z#115
, /* America/Grenada */ :array {
:intvector { -1846266780 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#113
+ } //Z#116
, /* America/Guadeloupe */ :array {
:intvector { -1848254032 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#114
+ } //Z#117
, /* America/Guatemala */ :array {
- :intvector { -1617040676, 123055200, 130914000, 422344800, 433054800, 669708000, 684219600 }
+ :intvector { -1617040676, 123055200, 130914000, 422344800, 433054800, 669708000, 684219600, 1146376800, 1159678800 }
:intvector { -21600, 0, -21600, 3600 }
- :bin { "00010001000100" }
- } //Z#115
+ :bin { "000100010001000100" }
+ } //Z#118
, /* America/Guayaquil */ :array {
:intvector { -1230749160 }
:intvector { -18000, 0 }
:bin { "00" }
- } //Z#116
+ } //Z#119
, /* America/Guyana */ :array {
:intvector { -1730578040, -113688900, 176010300, 662698800 }
:intvector { -14400, 0, -13500, 0, -10800, 0 }
:bin { "01010200" }
- } //Z#117
+ } //Z#120
, /* America/Halifax */ :array {
- :intvector { -2131645536, -1696276800, -1680469200, -1632074400, -1614798000, -1566763200, -1557090000, -1535486400, -1524949200, -1504468800, -1493413200, -1472414400, -1461963600, -1440964800, -1429390800, -1409515200, -1396731600, -1376856000, -1366491600, -1346616000, -1333832400, -1313956800, -1303678800, -1282507200, -1272661200, -1251057600, -1240088400, -1219608000, -1207429200, -1188763200, -1175979600, -1157313600, -1143925200, -1124049600, -1113771600, -1091390400, -1081026000, -1059854400, -1050786000, -1030910400, -1018126800, -999460800, -986677200, -965592000, -955227600, -935956800, -923173200, -904507200, -891723600, -880221600, -769395600, -765399600, -747252000, -733950000, -715802400, -702500400, -684352800, -671050800, -652903200, -639601200, -589399200, -576097200, -557949600, -544647600, -526500000, -513198000, -495050400, -481748400, -431546400, -418244400, -400096800, -386794800, -368647200, -355345200, -337197600, -323895600, -242244000, -226522800, -210794400, -195073200, -179344800, -163623600, -147895200, -131569200, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800 }
+ :intvector { -2131645536, -1696276800, -1680469200, -1632074400, -1614798000, -1566763200, -1557090000, -1535486400, -1524949200, -1504468800, -1493413200, -1472414400, -1461963600, -1440964800, -1429390800, -1409515200, -1396731600, -1376856000, -1366491600, -1346616000, -1333832400, -1313956800, -1303678800, -1282507200, -1272661200, -1251057600, -1240088400, -1219608000, -1207429200, -1188763200, -1175979600, -1157313600, -1143925200, -1124049600, -1113771600, -1091390400, -1081026000, -1059854400, -1050786000, -1030910400, -1018126800, -999460800, -986677200, -965592000, -955227600, -935956800, -923173200, -904507200, -891723600, -880221600, -769395600, -765399600, -747252000, -733950000, -715802400, -702500400, -684352800, -671050800, -652903200, -639601200, -589399200, -576097200, -557949600, -544647600, -526500000, -513198000, -495050400, -481748400, -431546400, -418244400, -400096800, -386794800, -368647200, -355345200, -337197600, -323895600, -242244000, -226522800, -210794400, -195073200, -179344800, -163623600, -147895200, -131569200, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 104911200, 120632400, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000 }
:intvector { -14400, 0, -14400, 3600 }
- :bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -14400, 1987 }
- :intvector { 118, 338, 544 }
- } //Z#118
+ :intvector { -14400, 2007 }
+ :intvector { 121, 346 }
+ } //Z#121
, /* America/Havana */ :array {
:intvector { -1402813824, -1311534000, -1300996800, -933534000, -925675200, -902084400, -893620800, -870030000, -862171200, -775681200, -767822400, -744231600, -736372800, -144702000, -134251200, -113425200, -102542400, -86295600, -72907200, -54154800, -41457600, -21495600, -5774400, 9954000, 25675200, 41403600, 57729600, 73458000, 87364800, 104907600, 118900800, 136357200, 150436800, 167806800, 183528000, 199256400, 215582400, 230706000, 247032000, 263365200, 276667200, 290581200, 308721600, 322030800, 340171200, 358318800, 371620800, 389768400, 403070400, 421218000, 434520000, 452667600, 466574400, 484117200, 498024000, 511333200, 529473600, 542782800, 560923200, 574837200, 592372800, 606286800, 623822400, 638946000, 655876800, 671000400, 687330000, 702450000, 718779600, 733899600, 750229200, 765349200, 781678800, 796798800, 813128400, 828853200, 844578000, 860302800, 876632400, 891147600, 909291600, 922597200, 941346000, 954651600, 972795600, 986101200, 1004245200, 1018155600, 1035694800, 1049605200, 1067144400, 1081054800 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"Cuba"
- :intvector { -18000, 2005 }
- :intvector { 119, 349 }
- } //Z#119
+ :intvector { -18000, 2006 }
+ :intvector { 122, 357 }
+ } //Z#122
, /* America/Hermosillo */ :array {
:intvector { -1514739600, -1343066400, -1234807200, -1220292000, -1207159200, -1191344400, -873828000, -661539600, 28800, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400 }
:intvector { -28800, 0, -25200, 0, -25200, 3600, -21600, 0 }
:bin { "010301030103010001020102010201" }
- } //Z#120
-, /* America/Indiana/Indianapolis */ :int { 125 } //Z#121
+ } //Z#123
+, /* America/Indiana/Indianapolis */ :array {
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -900259200, -891795600, -880214400, -769395600, -765392400, -747244800, -733942800, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -386787600, -368640000, -21488400, -5767200, 9961200, 25682400, 1143961200, 1162101600 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
+ :bin { "010001000100010100010001000100010001000100010001000100020002030203020302" }
+ "US"
+ :intvector { -18000, 2007 }
+ :intvector { 110, 124, 130, 467, 561 }
+ } //Z#124
, /* America/Indiana/Knox */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -447267600, -431539200, -415818000, -400089600, -386787600, -368640000, -355338000, -337190400, -321469200, -305740800, -289414800, -273686400, -257965200, -242236800, -195066000, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800 }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -447267600, -431539200, -415818000, -400089600, -386787600, -368640000, -355338000, -337190400, -321469200, -305740800, -289414800, -273686400, -257965200, -242236800, -195066000, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 1143961200, 1162105200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0 }
- :bin { "0100010001010001000100010001000100010001000100010001000100010001000100010002000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000102" }
- :intvector { 122, 133, 565 }
- } //Z#122
+ :bin { "01000100010100010001000100010001000100010001000100010001000100010001000100020001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001020100" }
+ "US"
+ :intvector { -21600, 2007 }
+ :intvector { 125, 138, 564 }
+ } //Z#125
, /* America/Indiana/Marengo */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -589392000, -576090000, -495043200, -481741200, -463593600, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -323888400, -305740800, -292438800, -273686400, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152089200, 162370800, 183535200 }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -589392000, -576090000, -495043200, -481741200, -463593600, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -323888400, -305740800, -292438800, -273686400, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152089200, 162370800, 183535200, 1143961200, 1162101600 }
:intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
- :bin { "0100010001010001000100010001000100010001000100020302030203020302030201020302" }
- } //Z#123
+ :bin { "01000100010100010001000100010001000100010001000203020302030203020302010203020302" }
+ "US"
+ :intvector { -18000, 2007 }
+ } //Z#126
+, /* America/Indiana/Petersburg */ :array {
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -462996000, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -323888400, -305740800, -292438800, -273686400, -257965200, -242236800, -226515600, -210787200, -195066000, -179337600, -163616400, -147888000, -100112400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 1143961200, 1162105200 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0 }
+ :bin { "0100010001010001000100010001000100010001000100010001000200010001000100010001000100010001000100010001020100" }
+ "US"
+ :intvector { -21600, 2007 }
+ } //Z#127
, /* America/Indiana/Vevay */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -495043200, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400 }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -495043200, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 1143961200, 1162101600 }
:intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
- :bin { "01000100010100020302030203020302" }
- } //Z#124
-, /* America/Indianapolis */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -900259200, -891795600, -880214400, -769395600, -765392400, -747244800, -733942800, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620841600, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -386787600, -368640000, -21488400, -5767200, 9961200, 25682400 }
+ :bin { "010001000101000203020302030203020302" }
+ "US"
+ :intvector { -18000, 2007 }
+ } //Z#128
+, /* America/Indiana/Vincennes */ :array {
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -747244800, -733942800, -526492800, -513190800, -495043200, -481741200, -462996000, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -323888400, -305740800, -289414800, -273686400, -260989200, -242236800, -226515600, -210787200, -195066000, -179337600, -21488400, -5767200, 9961200, 25682400, 1143961200, 1162105200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
- :bin { "01000100010001010001000100010001000100010001000100010002000203020302" }
- :intvector { 107, 121, 125, 353, 455, 547, 562 }
- } //Z#125
+ :bin { "0100010001010001000100010001000100010001000100010001000100010002030203020100" }
+ "US"
+ :intvector { -21600, 2007 }
+ } //Z#129
+, /* America/Indianapolis */ :int { 124 } //Z#130
, /* America/Inuvik */ :array {
- :intvector { -1632060000, -1615129200, -1596981600, -1583168400, -880207200, -769395600, -765385200, -147888000, -131558400, 294228000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
+ :intvector { -1632060000, -1615129200, -1596981600, -1583168400, -880207200, -769395600, -765385200, -147888000, -131558400, 294228000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
:intvector { -28800, 0, -28800, 3600, -28800, 7200, -25200, 0, -25200, 3600 }
- :bin { "010001000101000200030403040304030403040304030403" }
- "NT_YK"
- :intvector { -25200, 1987 }
- } //Z#126
+ :bin { "01000100010100020003040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
+ "Canada"
+ :intvector { -25200, 2007 }
+ } //Z#131
, /* America/Iqaluit */ :array {
- :intvector { -1632070800, -1615140000, -1596992400, -1583179200, -880218000, -769395600, -765396000, -147898800, -131569200, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
- :intvector { -18000, 0, -18000, 3600, -18000, 7200 }
- :bin { "0100010001010002000100010001000100010001000100" }
+ :intvector { -1632070800, -1615140000, -1596992400, -1583179200, -880218000, -769395600, -765396000, -147898800, -131569200, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954662400, 972802800, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600, -18000, 7200 }
+ :bin { "030203020303020402030203020302030203020302030203020302030203020302030203020302030203020302030203000102030203020302030203020302" }
"Canada"
- :intvector { -18000, 1987 }
- } //Z#127
+ :intvector { -18000, 2007 }
+ } //Z#132
, /* America/Jamaica */ :array {
:intvector { -1827687168, 136364400, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "000100010001000100010001000100010001000100" }
- :intvector { 128, 472 }
- } //Z#128
-, /* America/Jujuy */ :int { 66 } //Z#129
+ :intvector { 133, 484 }
+ } //Z#133
+, /* America/Jujuy */ :int { 66 } //Z#134
, /* America/Juneau */ :array {
- :intvector { -880207200, -769395600, -765385200, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800 }
+ :intvector { -880207200, -769395600, -765385200, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000 }
:intvector { -32400, 0, -32400, 3600, -28800, 0, -28800, 3600 }
- :bin { "03030203020302030203020302030203020302030203020302030203020302030000010001000100" }
+ :bin { "0303020302030203020302030203020302030203020302030203020302030203000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -32400, 1987 }
- } //Z#130
-, /* America/Kentucky/Louisville */ :int { 137 } //Z#131
+ :intvector { -32400, 2007 }
+ } //Z#135
+, /* America/Kentucky/Louisville */ :array {
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -1535904000, -1525280400, -905097600, -891795600, -880214400, -769395600, -765392400, -757360800, -744224400, -715795200, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -450291600, -431539200, -415818000, -400089600, -384368400, -368640000, -352918800, -337190400, -321469200, -305740800, -289414800, -273686400, -266432400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152089200, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
+ :bin { "01000100010001000101000100010001000100010001000100010001000100010001000102030203020302030203020302010203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
+ "US"
+ :intvector { -18000, 2007 }
+ :intvector { 136, 142 }
+ } //Z#136
, /* America/Kentucky/Monticello */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
- :intvector { -21600, 0, -21600, 3600 }
- :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
+ :bin { "01000100010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000102030203020302030203020302" }
"US"
- :intvector { -18000, 1987 }
- } //Z#132
-, /* America/Knox_IN */ :int { 122 } //Z#133
+ :intvector { -18000, 2007 }
+ } //Z#137
+, /* America/Knox_IN */ :int { 125 } //Z#138
, /* America/La_Paz */ :array {
:intvector { -1205954844, -1192307244 }
:intvector { -16356, 3600, -14400, 0 }
:bin { "0001" }
- } //Z#134
+ } //Z#139
, /* America/Lima */ :array {
:intvector { -1938538284, -1009825200, -1002052800, -986756400, -971035200, -955306800, -939585600, 504939600, 512712000, 536475600, 544248000, 631170000, 638942400, 757400400, 765172800 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "000100010001000100010001000100" }
- } //Z#135
+ } //Z#140
, /* America/Los_Angeles */ :array {
- :intvector { -1633269600, -1615129200, -1601820000, -1583679600, -880207200, -769395600, -765385200, -687967200, -662655600, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200 }
+ :intvector { -1633269600, -1615129200, -1601820000, -1583679600, -880207200, -769395600, -765385200, -687967200, -662655600, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400 }
:intvector { -28800, 0, -28800, 3600 }
- :bin { "0100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -28800, 1987 }
- :intvector { 136, 495, 496, 553, 568, 569 }
- } //Z#136
-, /* America/Louisville */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -1535904000, -1525280400, -905097600, -891795600, -880214400, -769395600, -765392400, -757360800, -744224400, -715795200, -608144400, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -450291600, -431539200, -415818000, -400089600, -384368400, -368640000, -352918800, -337190400, -321469200, -305740800, -289414800, -273686400, -266432400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152089200, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
- :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600 }
- :bin { "010001000100010001010001000100010001000100010001000100010001000100010001020302030203020302030203020102030203020302030203020302030203020302030203020302" }
- "US"
- :intvector { -18000, 1987 }
- :intvector { 131, 137 }
- } //Z#137
+ :intvector { -28800, 2007 }
+ :intvector { 141, 507, 567, 568 }
+ } //Z#141
+, /* America/Louisville */ :int { 136 } //Z#142
, /* America/Maceio */ :array {
:intvector { -1767217028, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 813726000, 824004000, 938919600, 951616800, 970974000, 972180000, 1003028400, 1013911200 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#138
+ } //Z#143
, /* America/Managua */ :array {
- :intvector { -1121105688, 105084000, 161758800, 290584800, 299134800, 322034400, 330584400, 694260000, 717310800, 725882400, 912488400, 1113112800, 1126414800 }
+ :intvector { -1121105688, 105084000, 161758800, 290584800, 299134800, 322034400, 330584400, 694260000, 717310800, 725868000, 852094800, 1113112800, 1128229200, 1146384000, 1159678800 }
:intvector { -21600, 0, -21600, 3600, -18000, 0 }
- :bin { "00020001000100010002000100" }
- } //Z#139
+ :bin { "000200010001000200020001000100" }
+ } //Z#144
, /* America/Manaus */ :array {
:intvector { -1767211196, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200, 750830400, 761713200 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100" }
- :intvector { 140, 331 }
- } //Z#140
+ :intvector { 145, 339 }
+ } //Z#145
, /* America/Martinique */ :array {
:intvector { -1851537340, 323841600, 338958000 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "000100" }
- } //Z#141
+ } //Z#146
, /* America/Mazatlan */ :array {
:intvector { -1514739600, -1343066400, -1234807200, -1220292000, -1207159200, -1191344400, -873828000, -661539600, 28800, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 989139600, 1001836800 }
:intvector { -28800, 0, -25200, 0, -25200, 3600, -21600, 0 }
:bin { "010301030103010001020102010201020102010201" }
"Mexico"
:intvector { -25200, 2002 }
- :intvector { 142, 481 }
- } //Z#142
-, /* America/Mendoza */ :int { 68 } //Z#143
+ :intvector { 147, 493 }
+ } //Z#147
+, /* America/Mendoza */ :int { 68 } //Z#148
, /* America/Menominee */ :array {
- :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -747244800, -733942800, -116438400, -100112400, -21484800, 104914800, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -747244800, -733942800, -116438400, -100112400, -21484800, 104914800, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0 }
- :bin { "01000100010100010001000201000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001010001000100020100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -21600, 1987 }
- } //Z#144
+ :intvector { -21600, 2007 }
+ } //Z#149
, /* America/Merida */ :array {
:intvector { -1514743200, 377935200, 407653200, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 989136000, 1001833200 }
:intvector { -21600, 0, -21600, 3600, -18000, 0 }
:bin { "000200010001000100010001000100" }
"Mexico"
:intvector { -21600, 2002 }
- } //Z#145
+ } //Z#150
, /* America/Mexico_City */ :array {
:intvector { -1514739600, -1343066400, -1234807200, -1220292000, -1207159200, -1191344400, -975261600, -963169200, -917114400, -907354800, -821901600, -810068400, -627501600, -612990000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 989136000, 1001833200 }
:intvector { -25200, 0, -21600, 0, -21600, 3600 }
:bin { "0001000100010201020102010201020102010201020102010201" }
"Mexico"
:intvector { -21600, 2002 }
- :intvector { 146, 482 }
- } //Z#146
+ :intvector { 151, 494 }
+ } //Z#151
, /* America/Miquelon */ :array {
- :intvector { -1850328920, 326001600 }
- :intvector { -14400, 0, -10800, 0 }
- :bin { "0001" }
+ :intvector { -1850328920, 326001600, 544597200, 562132800, 576046800, 594187200, 607496400, 625636800, 638946000, 657086400, 671000400, 688536000, 702450000, 719985600, 733899600, 752040000, 765349200, 783489600, 796798800, 814939200, 828853200, 846388800, 860302800, 877838400, 891752400, 909288000, 923202000, 941342400, 954651600, 972792000, 986101200, 1004241600, 1018155600, 1035691200, 1049605200, 1067140800, 1081054800, 1099195200, 1112504400, 1130644800, 1143954000, 1162094400 }
+ :intvector { -14400, 0, -10800, 0, -10800, 3600 }
+ :bin { "000102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
"Canada"
- :intvector { -10800, 1987 }
- } //Z#147
+ :intvector { -10800, 2007 }
+ } //Z#152
+, /* America/Moncton */ :array {
+ :intvector { -2131642800, -1632074400, -1614798000, -1153681200, -1145822400, -1122231600, -1114372800, -1090782000, -1082923200, -1059332400, -1051473600, -1027882800, -1020024000, -996433200, -988574400, -965674800, -955396800, -934743600, -923947200, -904503600, -891892800, -880221600, -769395600, -765399600, -747252000, -733950000, -715802400, -702500400, -684352800, -671050800, -652903200, -639601200, -620848800, -608151600, -589399200, -576097200, -557949600, -544647600, -526500000, -513198000, -495050400, -481748400, -463600800, -450298800, -431546400, -418244400, -400096800, -384375600, -368647200, -352926000, -337197600, -321476400, -305748000, -289422000, -273693600, -257972400, -242244000, -226522800, -210794400, -195073200, -179344800, -163623600, -147895200, -131569200, -116445600, -100119600, -84391200, -68670000, -52941600, -37220400, -21492000, -5770800, 9957600, 25678800, 41407200, 57733200, 73461600, 89182800, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733896060, 752036460, 765345660, 783486060, 796795260, 814935660, 828849660, 846385260, 860299260, 877834860, 891748860, 909284460, 923198460, 941338860, 954648060, 972788460, 986097660, 1004238060, 1018152060, 1035687660, 1049601660, 1067137260, 1081051260, 1099191660, 1112500860, 1130641260, 1143950460, 1162090860 }
+ :intvector { -14400, 0, -14400, 3600 }
+ :bin { "000100010001000100010001000100010001000100010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "Canada"
+ :intvector { -14400, 2007 }
+ } //Z#153
, /* America/Monterrey */ :array {
:intvector { -1514743200, 576057600, 594198000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 989136000, 1001833200 }
:intvector { -21600, 0, -21600, 3600 }
:bin { "000100010001000100010001000100" }
"Mexico"
:intvector { -21600, 2002 }
- } //Z#148
+ } //Z#154
, /* America/Montevideo */ :array {
- :intvector { -1567455316, -1459542600, -1443819600, -1428006600, -1412283600, -1396470600, -1380747600, -1141590600, -1128286800, -1110141000, -1096837200, -1078691400, -1065387600, -1046637000, -1033938000, -1015187400, -1002488400, -983737800, -971038800, -952288200, -938984400, -920838600, -907534800, -883600200, -853621200, -845848800, -334789200, -319672800, -314226000, -309996000, -149720400, -134604000, -118270800, -100044000, -86821200, -68508000, -50446800, -34119000, -18910800, -2583000, 12625200, 28953000, 72932400, 82692000, 132116400, 156911400, 212983200, 250052400, 260244000, 307594800, 325994400, 566449200, 574308000, 597812400, 605671200, 625633200, 636516000, 656478000, 667965600, 688532400, 699415200, 719377200, 730864800, 1095562800, 1111896000 }
+ :intvector { -1567455316, -1459542600, -1443819600, -1428006600, -1412283600, -1396470600, -1380747600, -1141590600, -1128286800, -1110141000, -1096837200, -1078691400, -1065387600, -1046637000, -1033938000, -1015187400, -1002488400, -983737800, -971038800, -952288200, -938984400, -920838600, -907534800, -896819400, -883602000, -853619400, -845848800, -334789200, -319672800, -314226000, -309996000, -149720400, -134604000, -118270800, -100044000, -86821200, -68508000, -50446800, -34119000, -18910800, -2583000, 12625200, 28953000, 72932400, 82692000, 132116400, 156911400, 212983200, 250052400, 260244000, 307594800, 325994400, 566449200, 574308000, 597812400, 605671200, 625633200, 636516000, 656478000, 667965600, 688532400, 699415200, 719377200, 730864800, 1095562800, 1111896000, 1128834000, 1142136000 }
:intvector { -12600, 0, -12600, 1800, -10800, 0, -10800, 1800, -10800, 3600 }
- :bin { "0001000100010001000100010001000100010001000100010402040204020402040204020302030203020402030402040204020402040204020402040204020402" }
- } //Z#149
+ :bin { "0001000100010001000100010001000100010001000100010004020402040204020402040203020302030204020304020402040204020402040204020402040204020402" }
+ } //Z#155
, /* America/Montreal */ :array {
- :intvector { -1665334800, -1662753600, -1632070800, -1614794400, -1601742600, -1583775000, -1567355400, -1554053400, -1535907600, -1522603800, -1504458000, -1491154200, -1439830800, -1428255000, -1409504400, -1396805400, -1378054800, -1365355800, -1346612400, -1333915200, -1315162800, -1301860800, -1283713200, -1270411200, -1252263600, -1238961600, -1220814000, -1207512000, -1188759600, -1176062400, -1157310000, -1144008000, -1125860400, -1112558400, -1094410800, -1081108800, -1062961200, -1049659200, -1031511600, -1018209600, -1000062000, -986760000, -968007600, -955310400, -936558000, -880218000, -769395600, -765396000, -747248400, -733946400, -715798800, -702496800, -684349200, -671047200, -652899600, -636573600, -620845200, -605124000, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -450295200, -431542800, -418240800, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -1665334800, -1662753600, -1632070800, -1614794400, -1601742600, -1583775000, -1567355400, -1554053400, -1535907600, -1522603800, -1504458000, -1491154200, -1439830800, -1428255000, -1409504400, -1396805400, -1378054800, -1365355800, -1346612400, -1333915200, -1315162800, -1301860800, -1283713200, -1270411200, -1252263600, -1238961600, -1220814000, -1207512000, -1188759600, -1176062400, -1157310000, -1144008000, -1125860400, -1112558400, -1094410800, -1081108800, -1062961200, -1049659200, -1031511600, -1018209600, -1000062000, -986760000, -968007600, -955310400, -936558000, -880218000, -769395600, -765396000, -747248400, -733946400, -715798800, -702496800, -684349200, -671047200, -652899600, -636573600, -620845200, -605124000, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -450295200, -431542800, -418240800, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000101010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -18000, 1987 }
- } //Z#150
+ :intvector { -18000, 2007 }
+ } //Z#156
, /* America/Montserrat */ :array {
:intvector { -1846266608 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#151
+ } //Z#157
, /* America/Nassau */ :array {
:intvector { -1825095036, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Bahamas"
:intvector { -18000, 1987 }
- } //Z#152
+ } //Z#158
, /* America/New_York */ :array {
- :intvector { -1633280400, -1615140000, -1601830800, -1583690400, -1570381200, -1551636000, -1536512400, -1523210400, -1504458000, -1491760800, -1473008400, -1459706400, -1441558800, -1428256800, -1410109200, -1396807200, -1378659600, -1365357600, -1347210000, -1333908000, -1315155600, -1301853600, -1283706000, -1270404000, -1252256400, -1238954400, -1220806800, -1207504800, -1189357200, -1176055200, -1157302800, -1144605600, -1125853200, -1112551200, -1094403600, -1081101600, -1062954000, -1049652000, -1031504400, -1018202400, -1000054800, -986752800, -968000400, -955303200, -936550800, -923248800, -905101200, -891799200, -880218000, -769395600, -765396000, -747248400, -733946400, -715798800, -702496800, -684349200, -671047200, -652899600, -639597600, -620845200, -608148000, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -447271200, -431542800, -415821600, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -1633280400, -1615140000, -1601830800, -1583690400, -1570381200, -1551636000, -1536512400, -1523210400, -1504458000, -1491760800, -1473008400, -1459706400, -1441558800, -1428256800, -1410109200, -1396807200, -1378659600, -1365357600, -1347210000, -1333908000, -1315155600, -1301853600, -1283706000, -1270404000, -1252256400, -1238954400, -1220806800, -1207504800, -1189357200, -1176055200, -1157302800, -1144605600, -1125853200, -1112551200, -1094403600, -1081101600, -1062954000, -1049652000, -1031504400, -1018202400, -1000054800, -986752800, -968000400, -955303200, -936550800, -923248800, -905101200, -891799200, -880218000, -769395600, -765396000, -747248400, -733946400, -715798800, -702496800, -684349200, -671047200, -652899600, -639597600, -620845200, -608148000, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -447271200, -431542800, -415821600, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -18000, 1987 }
- :intvector { 153, 354, 548, 563 }
- } //Z#153
+ :intvector { -18000, 2007 }
+ :intvector { 159, 562 }
+ } //Z#159
, /* America/Nipigon */ :array {
- :intvector { -1632070800, -1614794400, -923252400, -880218000, -769395600, -765396000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -1632070800, -1614794400, -923252400, -880218000, -769395600, -765396000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "0100010101000100010001000100010001000100010001000100010001000100" }
+ :bin { "010001010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -18000, 1987 }
- } //Z#154
+ :intvector { -18000, 2007 }
+ } //Z#160
, /* America/Nome */ :array {
- :intvector { -880196400, -769395600, -765374400, -86878800, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800 }
+ :intvector { -880196400, -769395600, -765374400, -86878800, -21466800, -5745600, 9982800, 25704000, 41432400, 57758400, 73486800, 89208000, 104936400, 120657600, 126709200, 152107200, 162392400, 183556800, 199285200, 215611200, 230734800, 247060800, 262789200, 278510400, 294238800, 309960000, 325688400, 341409600, 357138000, 372859200, 388587600, 404913600, 420037200, 436363200, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000 }
:intvector { -39600, 0, -39600, 3600, -32400, 0, -32400, 3600 }
- :bin { "0101000001000100010001000100010001000100010001000100010001000100010202030203020302" }
+ :bin { "010100000100010001000100010001000100010001000100010001000100010001020203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"US"
- :intvector { -32400, 1987 }
- } //Z#155
+ :intvector { -32400, 2007 }
+ } //Z#161
, /* America/Noronha */ :array {
:intvector { -1767217820, -1206961200, -1191366000, -1175378400, -1159830000, -633823200, -622072800, -602287200, -591836400, -570751200, -560214000, -539128800, -531356400, -191368800, -184201200, -155167200, -150073200, -128901600, -121129200, -99957600, -89593200, -68421600, -57970800, 499744800, 511232400, 530589600, 540262800, 562125600, 571194000, 592970400, 602038800, 624420000, 634698000, 938916000, 951613200, 970970400, 971571600, 1003024800, 1013907600 }
:intvector { -7200, 0, -7200, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- :intvector { 156, 329 }
- } //Z#156
+ :intvector { 162, 337 }
+ } //Z#162
, /* America/North_Dakota/Center */ :array {
- :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
- :intvector { -25200, 0, -25200, 3600 }
- :bin { "0100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
+ :intvector { -25200, 0, -25200, 3600, -21600, 0, -21600, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010203020302030203020302030203020302030203020302030203020302" }
"US"
- :intvector { -21600, 1987 }
- } //Z#157
+ :intvector { -21600, 2007 }
+ } //Z#163
+, /* America/North_Dakota/New_Salem */ :array {
+ :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
+ :intvector { -25200, 0, -25200, 3600, -21600, 0, -21600, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000102030203020302" }
+ "US"
+ :intvector { -21600, 2007 }
+ } //Z#164
, /* America/Panama */ :array {
:intvector { -1946918424 }
:intvector { -18000, 0 }
:bin { "00" }
- } //Z#158
+ } //Z#165
, /* America/Pangnirtung */ :array {
- :intvector { -1632074400, -1615143600, -1596996000, -1583182800, -880221600, -769395600, -765399600, -147902400, -131572800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800 }
- :intvector { -14400, 0, -14400, 3600, -14400, 7200 }
- :bin { "0100010001010002000100010001000100010001000100" }
+ :intvector { -1632074400, -1615143600, -1596996000, -1583182800, -880221600, -769395600, -765399600, -147902400, -131572800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954662400, 972802800, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
+ :intvector { -21600, 0, -21600, 3600, -18000, 0, -18000, 3600, -14400, 0, -14400, 3600, -14400, 7200 }
+ :bin { "050405040505040604050405040504050405040504050405040504050405040504050405040504030203020302030203000102030203020302030203020302" }
"Canada"
- :intvector { -18000, 1987 }
- } //Z#159
+ :intvector { -18000, 2007 }
+ } //Z#166
, /* America/Paramaribo */ :array {
:intvector { -1861906760, -1104524348, -765317964, 185686200, 465449400 }
:intvector { -13252, 0, -13236, 0, -12600, 0, -10800, 0 }
:bin { "0001020203" }
- } //Z#160
+ } //Z#167
, /* America/Phoenix */ :array {
:intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -820519140, -812653140, -796845540, -84380400, -68659200 }
:intvector { -25200, 0, -25200, 3600 }
:bin { "01000100010001000100" }
- :intvector { 161, 478, 492, 550, 560 }
- } //Z#161
+ :intvector { 168, 504, 559 }
+ } //Z#168
, /* America/Port-au-Prince */ :array {
- :intvector { -1670483460, 421218000, 436334400, 452062800, 467784000, 483512400, 499233600, 514962000, 530683200, 546411600, 562132800, 576050400, 594194400, 607500000, 625644000, 638949600, 657093600, 671004000, 688543200, 702453600, 719992800, 733903200, 752047200, 765352800, 783496800, 796802400, 814946400, 828856800, 846396000, 860306400, 877845600, 1112504400, 1130644800 }
+ :intvector { -1670483460, 421218000, 436334400, 452062800, 467784000, 483512400, 499233600, 514962000, 530683200, 546411600, 562132800, 576050400, 594194400, 607500000, 625644000, 638949600, 657093600, 671004000, 688543200, 702453600, 719992800, 733903200, 752047200, 765352800, 783496800, 796802400, 814946400, 828856800, 846396000, 860306400, 877845600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#162
+ :bin { "00010001000100010001000100010001000100010001000100010001000100" }
+ "Haiti"
+ :intvector { -18000, 2005 }
+ } //Z#169
, /* America/Port_of_Spain */ :array {
:intvector { -1825098836 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#163
-, /* America/Porto_Acre */ :int { 171 } //Z#164
+ } //Z#170
+, /* America/Porto_Acre */ :int { 178 } //Z#171
, /* America/Porto_Velho */ :array {
:intvector { -1767210264, -1206954000, -1191358800, -1175371200, -1159822800, -633816000, -622065600, -602280000, -591829200, -570744000, -560206800, -539121600, -531349200, -191361600, -184194000, -155160000, -150066000, -128894400, -121122000, -99950400, -89586000, -68414400, -57963600, 499752000, 511239600, 530596800, 540270000, 562132800, 571201200 }
:intvector { -14400, 0, -14400, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100" }
- } //Z#165
+ } //Z#172
, /* America/Puerto_Rico */ :array {
- :intvector { -873057600, -765399600 }
+ :intvector { -873057600, -769395600, -765399600 }
:intvector { -14400, 0, -14400, 3600 }
- :bin { "0100" }
- :intvector { 166, 494, 543 }
- } //Z#166
+ :bin { "010100" }
+ :intvector { 173, 506 }
+ } //Z#173
, /* America/Rainy_River */ :array {
- :intvector { -1632067200, -1614790800, -923248800, -880214400, -769395600, -765392400, 136368000, 152089200, 167817600, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
+ :intvector { -1632067200, -1614790800, -923248800, -880214400, -769395600, -765392400, 136368000, 152089200, 167817600, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
:intvector { -21600, 0, -21600, 3600 }
- :bin { "0100010101000100010001000100010001000100010001000100010001000100" }
+ :bin { "010001010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -21600, 1987 }
- } //Z#167
+ :intvector { -21600, 2007 }
+ } //Z#174
, /* America/Rankin_Inlet */ :array {
- :intvector { -1632067200, -1615136400, -1596988800, -1583175600, -880214400, -769395600, -765392400, -147895200, -131565600, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
- :intvector { -21600, 0, -21600, 3600, -21600, 7200 }
- :bin { "0100010001010002000100010001000100010001000100" }
+ :intvector { -1632067200, -1615136400, -1596988800, -1583175600, -880214400, -769395600, -765392400, -147895200, -131565600, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
+ :intvector { -21600, 0, -21600, 3600, -21600, 7200, -18000, 0 }
+ :bin { "010001000101000200010001000100010001000100010001000100010001000100010001000100010001000100010001000103010001000100010001000100" }
"Canada"
- :intvector { -21600, 1987 }
- } //Z#168
+ :intvector { -21600, 2007 }
+ } //Z#175
, /* America/Recife */ :array {
:intvector { -1767217224, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -191365200, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 938919600, 951616800, 970974000, 971575200, 1003028400, 1013911200 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- } //Z#169
+ } //Z#176
, /* America/Regina */ :array {
:intvector { -2030202084, -1632063600, -1614787200, -1251651600, -1238349600, -1220202000, -1206900000, -1188752400, -1175450400, -1156698000, -1144000800, -1125248400, -1111946400, -1032714000, -1016992800, -1001264400, -986148000, -969814800, -954093600, -937760400, -922039200, -906310800, -890589600, -880210800, -769395600, -765388800, -748450800, -732729600, -715791600, -702489600, -684342000, -671040000, -652892400, -639590400, -620838000, -608140800, -589388400, -576086400, -557938800, -544636800, -526489200, -513187200, -495039600, -481737600, -463590000, -450288000, -431535600, -418233600, -400086000, -386784000, -337186800, -321465600, -305737200 }
:intvector { -25200, 0, -25200, 3600, -21600, 0 }
:bin { "0001000100010001000100010001000100010001000100010100010001000100010001000100010001000100010001000100010002" }
- :intvector { 170, 340, 345, 545 }
- } //Z#170
+ :intvector { 177, 348, 353 }
+ } //Z#177
, /* America/Rio_Branco */ :array {
:intvector { -1767209328, -1206950400, -1191355200, -1175367600, -1159819200, -633812400, -622062000, -602276400, -591825600, -570740400, -560203200, -539118000, -531345600, -191358000, -184190400, -155156400, -150062400, -128890800, -121118400, -99946800, -89582400, -68410800, -57960000, 499755600, 511243200, 530600400, 540273600, 562136400, 571204800 }
:intvector { -18000, 0, -18000, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100" }
- :intvector { 164, 171, 328 }
- } //Z#171
-, /* America/Rosario */ :int { 65 } //Z#172
+ :intvector { 171, 178, 336 }
+ } //Z#178
+, /* America/Rosario */ :int { 65 } //Z#179
, /* America/Santiago */ :array {
:intvector { -1893439040, -1619982000, -1593720000, -1335985200, -1317585600, -1304362800, -1286049600, -1272826800, -1254513600, -1241290800, -1222977600, -1209754800, -1191355200, -1178132400, -101937600, -88635600, -69883200, -57186000, -38433600, -25736400, -6984000, 6318000, 24465600, 37767600, 55915200, 69217200, 87969600, 100666800, 119419200, 132116400, 150868800, 163566000, 182318400, 195620400, 213768000, 227070000, 245217600, 258519600, 277272000, 289969200, 308721600, 321418800, 340171200, 353473200, 371620800, 384922800, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 542775600, 560923200, 574225200, 592372800, 605674800, 624427200, 637124400, 655876800, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 857876400, 876628800, 889930800, 906868800, 923194800, 939528000 }
:intvector { -18000, 0, -18000, 3600, -14400, 0, -14400, 3600 }
:bin { "000100010001000100010001000203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203" }
"Chile"
:intvector { -14400, 2000 }
- :intvector { 173, 347 }
- } //Z#173
+ :intvector { 180, 355 }
+ } //Z#180
, /* America/Santo_Domingo */ :array {
:intvector { -1159773600, -100119600, -89668800, -5770800, 4422600, 25678800, 33193800, 57733200, 64816200, 89182800, 96438600, 120632400, 127974600, 152082000, 972799200, 975823200 }
:intvector { -18000, 0, -18000, 1800, -18000, 3600, -14400, 0 }
:bin { "00020001000100010001000100030003" }
- } //Z#174
+ } //Z#181
, /* America/Sao_Paulo */ :array {
:intvector { -1767214412, -1206957600, -1191362400, -1175374800, -1159826400, -633819600, -622069200, -602283600, -591832800, -570747600, -560210400, -539125200, -531352800, -195426000, -184197600, -155163600, -150069600, -128898000, -121125600, -99954000, -89589600, -68418000, -57967200, 499748400, 511236000, 530593200, 540266400, 562129200, 571197600, 592974000, 602042400, 624423600, 634701600, 656478000, 666756000, 687927600, 697600800, 719982000, 728445600, 750826800, 761709600, 782276400, 793159200, 813726000, 824004000, 844570800, 856058400, 876106800, 888717600, 908074800, 919562400, 938919600, 951616800, 970974000, 982461600, 1003028400, 1013911200, 1036292400, 1045360800, 1066532400, 1076810400, 1099364400 }
:intvector { -10800, 0, -10800, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"Brazil"
:intvector { -10800, 2005 }
- :intvector { 175, 326, 330 }
- } //Z#175
+ :intvector { 182, 334, 338 }
+ } //Z#182
, /* America/Scoresbysund */ :array {
- :intvector { -1686090660, 323841600, 338961600, 354679200, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
+ :intvector { -1686090728, 323841600, 338961600, 354679200, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { -7200, 0, -7200, 3600, -3600, 0, -3600, 3600 }
:bin { "000100030203020302030203020302030203020302030203020302030203020302" }
"EU"
:intvector { -3600, 1996 }
- } //Z#176
-, /* America/Shiprock */ :int { 100 } //Z#177
+ } //Z#183
+, /* America/Shiprock */ :int { 103 } //Z#184
, /* America/St_Johns */ :array {
- :intvector { -1664130548, -1650137348, -1632076148, -1614799748, -1598650148, -1590100148, -1567286948, -1551565748, -1535837348, -1520116148, -1503782948, -1488666548, -1472333348, -1457216948, -1440883748, -1425767348, -1409434148, -1394317748, -1377984548, -1362263348, -1346534948, -1330813748, -1314480548, -1299364148, -1283030948, -1267914548, -1251581348, -1236464948, -1220131748, -1205015348, -1188682148, -1172960948, -1156627748, -1141511348, -1125178148, -1110061748, -1096921748, -1093728600, -1078612200, -1061670600, -1048973400, -1030221000, -1017523800, -998771400, -986074200, -966717000, -954624600, -935267400, -922570200, -903817800, -891120600, -872368200, -769395600, -765401400, -746044200, -733347000, -714594600, -701897400, -683145000, -670447800, -651695400, -638998200, -619641000, -606943800, -589401000, -576099000, -557951400, -544649400, -526501800, -513199800, -495052200, -481750200, -463602600, -450300600, -431548200, -418246200, -400098600, -386796600, -368649000, -355347000, -337199400, -323897400, -305749800, -289423800, -273695400, -257974200, -242245800, -226524600, -210796200, -195075000, -179346600, -163625400, -147897000, -131571000, -116447400, -100121400, -84393000, -68671800, -52943400, -37222200, -21493800, -5772600, 9955800, 25677000, 41405400, 57731400, 73459800, 89181000, 104909400, 120630600, 136359000, 152080200, 167808600, 183529800, 199258200, 215584200, 230707800, 247033800, 262762200, 278483400, 294211800, 309933000, 325661400, 341382600, 357111000, 372832200, 388560600, 404886600, 420010200, 436336200, 452064600, 467785800, 483514200, 499235400, 514963800, 530685000, 544591860, 562127460, 576041460, 594178260 }
+ :intvector { -1664130548, -1650137348, -1632076148, -1614799748, -1598650148, -1590100148, -1567286948, -1551565748, -1535837348, -1520116148, -1503782948, -1488666548, -1472333348, -1457216948, -1440883748, -1425767348, -1409434148, -1394317748, -1377984548, -1362263348, -1346534948, -1330813748, -1314480548, -1299364148, -1283030948, -1267914548, -1251581348, -1236464948, -1220131748, -1205015348, -1188682148, -1172960948, -1156627748, -1141511348, -1125178148, -1110061748, -1096921748, -1093728600, -1078612200, -1061670600, -1048973400, -1030221000, -1017523800, -998771400, -986074200, -966717000, -954624600, -935267400, -922570200, -903817800, -891120600, -872368200, -769395600, -765401400, -746044200, -733347000, -714594600, -701897400, -683145000, -670447800, -651695400, -638998200, -619641000, -606943800, -589401000, -576099000, -557951400, -544649400, -526501800, -513199800, -495052200, -481750200, -463602600, -450300600, -431548200, -418246200, -400098600, -386796600, -368649000, -355347000, -337199400, -323897400, -305749800, -289423800, -273695400, -257974200, -242245800, -226524600, -210796200, -195075000, -179346600, -163625400, -147897000, -131571000, -116447400, -100121400, -84393000, -68671800, -52943400, -37222200, -21493800, -5772600, 9955800, 25677000, 41405400, 57731400, 73459800, 89181000, 104909400, 120630600, 136359000, 152080200, 167808600, 183529800, 199258200, 215584200, 230707800, 247033800, 262762200, 278483400, 294211800, 309933000, 325661400, 341382600, 357111000, 372832200, 388560600, 404886600, 420010200, 436336200, 452064600, 467785800, 483514200, 499235400, 514963800, 530685000, 544591860, 562127460, 576041460, 594178260, 607491060, 625631460, 638940660, 657081060, 670995060, 688530660, 702444660, 719980260, 733894260, 752034660, 765343860, 783484260, 796793460, 814933860, 828847860, 846383460, 860297460, 877833060, 891747060, 909282660, 923196660, 941337060, 954646260, 972786660, 986095860, 1004236260, 1018150260, 1035685860, 1049599860, 1067135460, 1081049460, 1099189860, 1112499060, 1130639460, 1143948660, 1162089060 }
:intvector { -12652, 0, -12652, 3600, -12600, 0, -12600, 3600, -12600, 7200 }
- :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000203020302030203020302030203020303020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020402" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000203020302030203020302030203020303020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302030203020402030203020302030203020302030203020302030203020302030203020302030203020302" }
"StJohns"
- :intvector { -12600, 1989 }
- :intvector { 178, 334, 343 }
- } //Z#178
+ :intvector { -12600, 2007 }
+ :intvector { 185, 342, 351 }
+ } //Z#185
, /* America/St_Kitts */ :array {
:intvector { -1825098548 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#179
+ } //Z#186
, /* America/St_Lucia */ :array {
:intvector { -1830369360 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#180
+ } //Z#187
, /* America/St_Thomas */ :array {
:intvector { -1846266016 }
:intvector { -14400, 0 }
:bin { "00" }
- :intvector { 181, 191 }
- } //Z#181
+ :intvector { 188, 198 }
+ } //Z#188
, /* America/St_Vincent */ :array {
:intvector { -1830369304 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#182
+ } //Z#189
, /* America/Swift_Current */ :array {
:intvector { -2030201320, -1632063600, -1614787200, -880210800, -769395600, -765388800, -747241200, -732729600, -715791600, -702489600, -684342000, -671040000, -652892400, -639590400, -400086000, -384364800, -337186800, -321465600, -305737200, -292435200, -273682800, -260985600, 73472400 }
:intvector { -25200, 0, -25200, 3600, -21600, 0 }
:bin { "0001000101000100010001000100010001000100010002" }
- } //Z#183
+ } //Z#190
, /* America/Tegucigalpa */ :array {
- :intvector { -1538503868, 547020000, 559717200, 578469600, 591166800 }
+ :intvector { -1538503868, 547020000, 559717200, 578469600, 591166800, 1146981600, 1154926800 }
:intvector { -21600, 0, -21600, 3600 }
- :bin { "0001000100" }
- } //Z#184
+ :bin { "00010001000100" }
+ } //Z#191
, /* America/Thule */ :array {
- :intvector { -1686079492, 670399200, 686120400, 701848800, 717570000 }
+ :intvector { -1686079492, 670399200, 686120400, 701848800, 717570000, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000 }
:intvector { -14400, 0, -14400, 3600 }
- :bin { "0001000100" }
+ :bin { "000100010001000100010001000100010001000100010001000100010001000100" }
"Thule"
- :intvector { -14400, 1993 }
- } //Z#185
+ :intvector { -14400, 2007 }
+ } //Z#192
, /* America/Thunder_Bay */ :array {
- :intvector { -1893434400, -880218000, -769395600, -765396000, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -1893434400, -880218000, -769395600, -765396000, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "000101000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "00010100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -18000, 1987 }
- } //Z#186
+ :intvector { -18000, 2007 }
+ } //Z#193
, /* America/Tijuana */ :array {
- :intvector { -1514736000, -1451667600, -1343062800, -1234803600, -1222963200, -1207242000, -873820800, -761677200, -686073600, -661539600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600 }
+ :intvector { -1514736000, -1451667600, -1343062800, -1234803600, -1222963200, -1207242000, -873820800, -769395600, -761677200, -686073600, -661539600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600 }
:intvector { -28800, 0, -28800, 3600, -25200, 0 }
- :bin { "02000200010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0200020001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Mexico"
:intvector { -28800, 2002 }
- :intvector { 106, 187, 480 }
- } //Z#187
+ :intvector { 109, 194, 492 }
+ } //Z#194
, /* America/Toronto */ :array {
- :intvector { -1632070800, -1614794400, -1601753400, -1583697600, -1567357200, -1554667200, -1534698000, -1524074400, -1503248400, -1492365600, -1471798800, -1460916000, -1440954000, -1428861600, -1409504400, -1397412000, -1378054800, -1365962400, -1346605200, -1333908000, -1315155600, -1301853600, -1283706000, -1270404000, -1252256400, -1238954400, -1220806800, -1207504800, -1188752400, -1176055200, -1157302800, -1144000800, -1125853200, -1112551200, -1094403600, -1081101600, -1062954000, -1049652000, -1031504400, -1018202400, -1000054800, -986752800, -968000400, -955303200, -936550800, -880218000, -769395600, -765396000, -747248400, -733946400, -715806000, -702504000, -684356400, -671054400, -652906800, -634161600, -620845200, -602704800, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -450295200, -431542800, -418240800, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400 }
+ :intvector { -1632070800, -1614794400, -1601753400, -1583697600, -1567357200, -1554667200, -1534698000, -1524074400, -1503248400, -1492365600, -1471798800, -1460916000, -1440954000, -1428861600, -1409504400, -1397412000, -1378054800, -1365962400, -1346605200, -1333908000, -1315155600, -1301853600, -1283706000, -1270404000, -1252256400, -1238954400, -1220806800, -1207504800, -1188752400, -1176055200, -1157302800, -1144000800, -1125853200, -1112551200, -1094403600, -1081101600, -1062954000, -1049652000, -1031504400, -1018202400, -1000054800, -986752800, -968000400, -955303200, -936550800, -880218000, -769395600, -765396000, -747248400, -733946400, -715806000, -702504000, -684356400, -671054400, -652906800, -634161600, -620845200, -602704800, -589395600, -576093600, -557946000, -544644000, -526496400, -513194400, -495046800, -481744800, -463597200, -450295200, -431542800, -418240800, -400093200, -384372000, -368643600, -352922400, -337194000, -321472800, -305744400, -289418400, -273690000, -257968800, -242240400, -226519200, -210790800, -195069600, -179341200, -163620000, -147891600, -131565600, -116442000, -100116000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 136364400, 152085600, 167814000, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
:intvector { -18000, 0, -18000, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000101010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Canada"
- :intvector { -18000, 1987 }
- :intvector { 188, 341 }
- } //Z#188
+ :intvector { -18000, 2007 }
+ :intvector { 195, 349 }
+ } //Z#195
, /* America/Tortola */ :array {
:intvector { -1846266092 }
:intvector { -14400, 0 }
:bin { "00" }
- } //Z#189
+ } //Z#196
, /* America/Vancouver */ :array {
- :intvector { -1632060000, -1614783600, -880207200, -769395600, -765385200, -747237600, -732726000, -715788000, -702486000, -684338400, -671036400, -652888800, -639586800, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 136375200, 152096400, 167824800, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200 }
+ :intvector { -1632060000, -1614783600, -880207200, -769395600, -765385200, -747237600, -732726000, -715788000, -702486000, -684338400, -671036400, -652888800, -639586800, -620834400, -608137200, -589384800, -576082800, -557935200, -544633200, -526485600, -513183600, -495036000, -481734000, -463586400, -450284400, -431532000, -418230000, -400082400, -386780400, -368632800, -355330800, -337183200, -323881200, -305733600, -292431600, -273679200, -260982000, -242229600, -226508400, -210780000, -195058800, -179330400, -163609200, -147880800, -131554800, -116431200, -100105200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 136375200, 152096400, 167824800, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400 }
:intvector { -28800, 0, -28800, 3600 }
- :bin { "010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- "Vanc"
- :intvector { -28800, 1987 }
- :intvector { 190, 344 }
- } //Z#190
-, /* America/Virgin */ :int { 181 } //Z#191
+ :bin { "01000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "Canada"
+ :intvector { -28800, 2007 }
+ :intvector { 197, 352 }
+ } //Z#197
+, /* America/Virgin */ :int { 188 } //Z#198
, /* America/Whitehorse */ :array {
- :intvector { -1632056400, -1615125600, -1596978000, -1583164800, -880203600, -769395600, -765381600, -147884400, -131554800, -110552400, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200 }
+ :intvector { -1632056400, -1615125600, -1596978000, -1583164800, -880203600, -769395600, -765381600, -147884400, -131554800, -110552400, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400 }
:intvector { -32400, 0, -32400, 3600, -32400, 7200, -28800, 0, -28800, 3600 }
- :bin { "010001000101000200030403040304030403040304030403" }
- "NT_YK"
- :intvector { -28800, 1987 }
- :intvector { 192, 346 }
- } //Z#192
+ :bin { "01000100010100020003040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
+ "Canada"
+ :intvector { -28800, 2007 }
+ :intvector { 199, 354 }
+ } //Z#199
, /* America/Winnipeg */ :array {
- :intvector { -1694368800, -1681671600, -1632067200, -1614790800, -1029686400, -1018198800, -880214400, -769395600, -765392400, -746035200, -732733200, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620755200, -607626000, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -321469200, -305740800, -292438800, -210787200, -198090000, -116438400, -100112400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 136368000, 152089200, 167817600, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000 }
+ :intvector { -1694368800, -1681671600, -1632067200, -1614790800, -1029686400, -1018198800, -880214400, -769395600, -765392400, -746035200, -732733200, -715795200, -702493200, -684345600, -671043600, -652896000, -639594000, -620755200, -607626000, -589392000, -576090000, -557942400, -544640400, -526492800, -513190800, -495043200, -481741200, -463593600, -450291600, -431539200, -418237200, -400089600, -386787600, -368640000, -355338000, -337190400, -321469200, -305740800, -292438800, -210787200, -198090000, -116438400, -100108800, -84384000, -68659200, -52934400, -37209600, -21484800, -5760000, 9964800, 25689600, 41414400, 57744000, 73468800, 89193600, 104918400, 120643200, 136368000, 152092800, 167817600, 183542400, 199267200, 215596800, 230716800, 247046400, 262771200, 278496000, 294220800, 309945600, 325670400, 341395200, 357120000, 372844800, 388569600, 404899200, 420019200, 436348800, 452073600, 467798400, 483523200, 499248000, 514972800, 530697600, 544608000, 562147200, 576057600, 594201600, 607507200, 625651200, 638956800, 657100800, 671011200, 688550400, 702460800, 720000000, 733910400, 752054400, 765360000, 783504000, 796809600, 814953600, 828864000, 846403200, 860313600, 877852800, 891763200, 909302400, 923212800, 941356800, 954662400, 972806400, 986112000, 1004256000, 1018166400, 1035705600, 1049616000, 1067155200, 1081065600, 1099209600, 1112515200, 1130659200, 1136095200, 1143964800, 1162105200 }
:intvector { -21600, 0, -21600, 3600 }
- :bin { "0100010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- "Winn"
- :intvector { -21600, 1987 }
- :intvector { 193, 339 }
- } //Z#193
+ :bin { "01000100010001010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100000100" }
+ "Canada"
+ :intvector { -21600, 2007 }
+ :intvector { 200, 347 }
+ } //Z#200
, /* America/Yakutat */ :array {
- :intvector { -880203600, -769395600, -765381600, -21474000, -5752800, 9975600, 25696800, 41425200, 57751200, 73479600, 89200800, 104929200, 120650400, 126702000, 152100000, 162385200, 183549600, 199278000, 215604000, 230727600, 247053600, 262782000, 278503200, 294231600, 309952800, 325681200, 341402400, 357130800, 372852000, 388580400, 404906400, 420030000, 436356000, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800 }
+ :intvector { -880203600, -769395600, -765381600, -21474000, -5752800, 9975600, 25696800, 41425200, 57751200, 73479600, 89200800, 104929200, 120650400, 126702000, 152100000, 162385200, 183549600, 199278000, 215604000, 230727600, 247053600, 262782000, 278503200, 294231600, 309952800, 325681200, 341402400, 357130800, 372852000, 388580400, 404906400, 420030000, 436356000, 439030800, 452084400, 467805600, 483534000, 499255200, 514983600, 530704800, 544618800, 562154400, 576068400, 594208800, 607518000, 625658400, 638967600, 657108000, 671022000, 688557600, 702471600, 720007200, 733921200, 752061600, 765370800, 783511200, 796820400, 814960800, 828874800, 846410400, 860324400, 877860000, 891774000, 909309600, 923223600, 941364000, 954673200, 972813600, 986122800, 1004263200, 1018177200, 1035712800, 1049626800, 1067162400, 1081076400, 1099216800, 1112526000, 1130666400, 1143975600, 1162116000 }
:intvector { -32400, 0, -32400, 3600 }
- :bin { "01010001000100010001000100010001000100010001000100010001000100010000010001000100" }
+ :bin { "0101000100010001000100010001000100010001000100010001000100010001000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"US"
- :intvector { -32400, 1987 }
- } //Z#194
+ :intvector { -32400, 2007 }
+ } //Z#201
, /* America/Yellowknife */ :array {
- :intvector { -1632063600, -1615132800, -1596985200, -1583172000, -880210800, -769395600, -765388800, -147891600, -131562000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600 }
+ :intvector { -1632063600, -1615132800, -1596985200, -1583172000, -880210800, -769395600, -765388800, -147891600, -131562000, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
:intvector { -25200, 0, -25200, 3600, -25200, 7200 }
- :bin { "0100010001010002000100010001000100010001000100" }
- "NT_YK"
- :intvector { -25200, 1987 }
- } //Z#195
+ :bin { "010001000101000200010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "Canada"
+ :intvector { -25200, 2007 }
+ } //Z#202
, /* Antarctica/Casey */ :array {
:intvector { -31536000 }
:intvector { 28800, 0 }
:bin { "00" }
- } //Z#196
+ } //Z#203
, /* Antarctica/Davis */ :array {
:intvector { -409190400, -163062000, -28857600 }
:intvector { 0, 0, 25200, 0 }
:bin { "010001" }
- } //Z#197
+ } //Z#204
, /* Antarctica/DumontDUrville */ :array {
:intvector { -725846400, -566992800, -415497600 }
:intvector { 0, 0, 36000, 0 }
:bin { "010001" }
- } //Z#198
+ } //Z#205
, /* Antarctica/Mawson */ :array {
:intvector { -501206400 }
:intvector { 21600, 0 }
:bin { "00" }
- } //Z#199
+ } //Z#206
, /* Antarctica/McMurdo */ :array {
:intvector { -441849600, 152632800, 162309600, 183477600, 194968800, 215532000, 226418400, 246981600, 257868000, 278431200, 289317600, 309880800, 320767200, 341330400, 352216800, 372780000, 384271200, 404834400, 415720800, 436284000, 447170400, 467733600, 478620000, 499183200, 510069600, 530632800, 541519200, 562082400, 573573600, 594136800, 605023200, 623772000 }
:intvector { 43200, 0, 43200, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001" }
"NZAQ"
:intvector { 43200, 1990 }
- :intvector { 200, 203 }
- } //Z#200
+ :intvector { 207, 210 }
+ } //Z#207
, /* Antarctica/Palmer */ :array {
:intvector { -157766400, -152658000, -132955200, -121122000, -101419200, -86907600, -71092800, -54766800, -39038400, -23317200, -7588800, 128142000, 136605600, 150260400, 165981600, 181710000, 197431200, 213159600, 228880800, 389070000, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 542775600, 560923200, 574225200, 592372800, 605674800, 624427200, 637124400, 655876800, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 857876400, 876628800, 889930800, 906868800, 923194800, 939528000 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "01000100010001000100020302030203020302000100010001000100010001000100010001000100010001000100010001000100010001" }
"ChileAQ"
:intvector { -14400, 2000 }
- } //Z#201
+ } //Z#208
, /* Antarctica/Rothera */ :array {
:intvector { 218246400 }
:intvector { -10800, 0 }
:bin { "00" }
- } //Z#202
-, /* Antarctica/South_Pole */ :int { 200 } //Z#203
+ } //Z#209
+, /* Antarctica/South_Pole */ :int { 207 } //Z#210
, /* Antarctica/Syowa */ :array {
:intvector { -407808000 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#204
+ } //Z#211
, /* Antarctica/Vostok */ :array {
:intvector { -380073600 }
:intvector { 21600, 0 }
:bin { "00" }
- } //Z#205
-, /* Arctic/Longyearbyen */ :int { 421 } //Z#206
+ } //Z#212
+, /* Arctic/Longyearbyen */ :int { 432 } //Z#213
, /* Asia/Aden */ :array {
:intvector { -631162848 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#207
+ } //Z#214
, /* Asia/Almaty */ :array {
:intvector { -1441170468, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 662666400, 701802000, 717523200, 733262400, 748987200, 764712000, 780436800, 796161600, 811886400, 828216000, 846360000, 859665600, 877809600, 891115200, 909259200, 922564800, 941313600, 954014400, 972763200, 985464000, 1004212800, 1017518400, 1035662400, 1048968000, 1067112000, 1080417600, 1099166400, 1110823200 }
:intvector { 18000, 0, 21600, 0, 21600, 3600 }
:bin { "0001020102010201020102010201020102010201020101020102010201020102010201020102010201020102010201020101" }
- } //Z#208
+ } //Z#215
, /* Asia/Amman */ :array {
- :intvector { -1230776624, 108165600, 118270800, 136591200, 149806800, 168127200, 181342800, 199749600, 215643600, 231285600, 244501200, 262735200, 275950800, 481154400, 496962000, 512949600, 528670800, 544399200, 560120400, 575848800, 592174800, 610581600, 623624400, 641167200, 655074000, 671839200, 685918800, 702856800, 717973200, 733701600, 749422800, 765151200, 779662800, 797205600, 811116000, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 930780000, 938642400 }
+ :intvector { -1230776624, 108165600, 118270800, 136591200, 149806800, 168127200, 181342800, 199749600, 215643600, 231285600, 244501200, 262735200, 275950800, 481154400, 496962000, 512949600, 528670800, 544399200, 560120400, 575848800, 592174800, 610581600, 623624400, 641167200, 655074000, 671839200, 685918800, 702856800, 717973200, 733701600, 749422800, 765151200, 779662800, 797205600, 811116000, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 930780000, 938642400, 954367200, 970092000, 985816800, 1001541600, 1017266400, 1032991200, 1048716000, 1066946400, 1080165600, 1097791200 }
:intvector { 7200, 0, 7200, 3600 }
- :bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Jordan"
- :intvector { 7200, 2000 }
- } //Z#209
+ :intvector { 7200, 2005 }
+ } //Z#216
, /* Asia/Anadyr */ :array {
:intvector { -1441194596, -1247572800, 354884400, 370692000, 386420400, 402231600, 417960000, 433767600, 449582400, 465314400, 481039200, 496764000, 512488800, 528213600, 543938400, 559663200, 575388000, 591112800, 606837600, 622562400, 638287200, 654616800, 670341600, 686070000, 695746800, 701780400, 717501600, 733240800, 748965600, 764690400, 780415200, 796140000, 811864800 }
:intvector { 39600, 0, 39600, 3600, 43200, 0, 43200, 3600, 46800, 0, 46800, 3600 }
:bin { "020405040302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 43200, 1996 }
- } //Z#210
+ } //Z#217
, /* Asia/Aqtau */ :array {
:intvector { -1441164064, -1247544000, -220942800, 370724400, 386445600, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 662670000, 692823600, 701805600, 717526800, 733266000, 748990800, 764715600, 780440400, 796165200, 811893600, 828223200, 846367200, 859672800, 877816800, 891122400, 909266400, 922572000, 941320800, 954021600, 972770400, 985471200, 1004220000, 1017525600, 1035669600, 1048975200, 1067119200, 1080424800, 1099173600, 1110830400 }
:intvector { 14400, 0, 14400, 3600, 18000, 0, 18000, 3600, 21600, 0 }
- :bin { "000202040302030203020302030203020302030203020202030203020302010001000100010001000100010001000100010000" }
- } //Z#211
+ :bin { "000202040302030203020302030203020302030203020202030203020302010001000100010001000100010001000100010002" }
+ } //Z#218
, /* Asia/Aqtobe */ :array {
:intvector { -1441165720, -1247544000, 354913200, 370720800, 386445600, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 662670000, 692823600, 701805600, 717526800, 733266000, 748990800, 764715600, 780440400, 796165200, 811890000, 828219600, 846363600, 859669200, 877813200, 891118800, 909262800, 922568400, 941317200, 954018000, 972766800, 985467600, 1004216400, 1017522000, 1035666000, 1048971600, 1067115600, 1080421200, 1099170000, 1110826800 }
:intvector { 14400, 0, 18000, 0, 18000, 3600, 21600, 0 }
:bin { "000102030201020102010201020102010201020102010101020102010201020102010201020102010201020102010201020101" }
- } //Z#212
+ } //Z#219
, /* Asia/Ashgabat */ :array {
:intvector { -1441166012, -1247544000, 354913200, 370720800, 386449200, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 670366800, 686095200, 688507200, 695772000 }
:intvector { 14400, 0, 14400, 3600, 18000, 0, 18000, 3600 }
:bin { "0002030203020302030203020302030203020302030201000002" }
- :intvector { 213, 214 }
- } //Z#213
-, /* Asia/Ashkhabad */ :int { 213 } //Z#214
+ :intvector { 220, 221 }
+ } //Z#220
+, /* Asia/Ashkhabad */ :int { 220 } //Z#221
, /* Asia/Baghdad */ :array {
:intvector { -1641005856, 389048400, 402264000, 417906000, 433800000, 449614800, 465422400, 481150800, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600 }
:intvector { 10800, 0, 10800, 3600 }
:bin { "00010001000100010001000100010001000100" }
"Iraq"
:intvector { 10800, 1991 }
- } //Z#215
+ } //Z#222
, /* Asia/Bahrain */ :array {
:intvector { -1577935340, 76190400 }
:intvector { 10800, 0, 14400, 0 }
:bin { "0100" }
- } //Z#216
+ } //Z#223
, /* Asia/Baku */ :array {
- :intvector { -1441163964, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 683496000, 686098800, 701812800, 717534000, 820440000, 828234000, 846378000, 852062400 }
+ :intvector { -1441163964, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 683496000, 686098800, 701812800, 717534000, 828234000, 846378000, 852062400 }
:intvector { 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
- :bin { "00020302030203020302030203020302030203020302010100010203030202" }
+ :bin { "000203020302030203020302030203020302030203020101000102030202" }
"Azer"
:intvector { 14400, 1997 }
- } //Z#217
+ } //Z#224
, /* Asia/Bangkok */ :array {
:intvector { -1570084924 }
:intvector { 25200, 0 }
:bin { "00" }
- } //Z#218
+ } //Z#225
, /* Asia/Beirut */ :array {
:intvector { -1570413600, -1552186800, -1538359200, -1522551600, -1507514400, -1490583600, -1473645600, -1460948400, -399866400, -386650800, -368330400, -355114800, -336794400, -323578800, -305172000, -291956400, -273636000, -260420400, 78012000, 86734800, 105055200, 118270800, 136591200, 149806800, 168127200, 181342800, 199749600, 212965200, 231285600, 244501200, 262735200, 275950800, 452210400, 466722000, 483746400, 498258000, 515282400, 529794000, 546818400, 561330000, 581119200, 592952400, 610754400, 624488400, 641512800, 656024400, 673048800, 687560400, 704671200, 718146000, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000, 828223200, 843944400, 859672800, 875394000, 891122400, 906843600 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Lebanon"
:intvector { 7200, 1999 }
- } //Z#219
+ } //Z#226
, /* Asia/Bishkek */ :array {
- :intvector { -1441169904, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 683582400, 703018800, 717530400, 734468400, 748980000, 765918000, 780429600, 797367600, 811879200, 828817200, 843933600 }
+ :intvector { -1441169904, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 683582400, 703018800, 717530400, 734468400, 748980000, 765918000, 780429600, 797367600, 811879200, 828817200, 843933600, 859671000, 877811400, 891120600, 909261000, 922570200, 941315400, 954019800, 972765000, 985469400, 1004214600, 1017523800, 1035664200, 1048973400, 1067113800, 1080423000, 1099168200, 1111872600, 1123783200 }
:intvector { 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
- :bin { "00020302030203020302030203020302030203020302010001000100010001000100" }
- "Kirgiz"
- :intvector { 18000, 1997 }
- } //Z#220
+ :bin { "00020302030203020302030203020302030203020302010001000100010001000100010001000100010001000100010001000102" }
+ } //Z#227
, /* Asia/Brunei */ :array {
:intvector { -1383464380, -1167636600 }
:intvector { 27000, 0, 28800, 0 }
:bin { "0001" }
- } //Z#221
+ } //Z#228
, /* Asia/Calcutta */ :array {
:intvector { -891582800, -872058600, -862637400, -764145000 }
:intvector { 19800, 0, 19800, 3600, 23400, 0 }
:bin { "02000100" }
- :intvector { 222, 456 }
- } //Z#222
+ :intvector { 229, 468 }
+ } //Z#229
, /* Asia/Choibalsan */ :array {
- :intvector { -2032933080, 252435600, 417974400, 433778400, 449593200, 465325200, 481050000, 496774800, 512499600, 528224400, 543949200, 559674000, 575398800, 591123600, 606848400, 622573200, 638298000, 654627600, 670352400, 686077200, 701802000, 717526800, 733251600, 748976400, 764701200, 780426000, 796150800, 811875600, 828205200, 843930000, 859654800, 875379600, 891104400, 906829200, 988390800, 1001692800 }
+ :intvector { -2032933080, 252435600, 417974400, 433778400, 449593200, 465314400, 481042800, 496764000, 512492400, 528213600, 543942000, 559663200, 575391600, 591112800, 606841200, 622562400, 638290800, 654616800, 670345200, 686066400, 701794800, 717516000, 733244400, 748965600, 764694000, 780415200, 796143600, 811864800, 828198000, 843919200, 859647600, 875368800, 891097200, 906818400, 988390800, 1001692800 }
:intvector { 25200, 0, 28800, 0, 32400, 0, 32400, 3600 }
:bin { "000103020302030203020302030203020302030203020302030203020302030203020302" }
"Mongol"
:intvector { 32400, 2002 }
- } //Z#223
+ } //Z#230
, /* Asia/Chongqing */ :array {
:intvector { -1325487980, 325962000, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
:intvector { 25200, 0, 28800, 0, 28800, 3600 }
:bin { "0001020102010201020102010201" }
- :intvector { 224, 225 }
- } //Z#224
-, /* Asia/Chungking */ :int { 224 } //Z#225
+ :intvector { 231, 232 }
+ } //Z#231
+, /* Asia/Chungking */ :int { 231 } //Z#232
, /* Asia/Colombo */ :array {
- :intvector { -2019705572, -883287000, -862639200, -764051400, 832962600, 846266400 }
+ :intvector { -2019705572, -883287000, -862639200, -764051400, 832962600, 846266400, 1145039400 }
:intvector { 19800, 0, 19800, 1800, 19800, 3600, 21600, 0, 23400, 0 }
- :bin { "000102000403" }
- } //Z#226
-, /* Asia/Dacca */ :int { 229 } //Z#227
+ :bin { "00010200040300" }
+ } //Z#233
+, /* Asia/Dacca */ :int { 236 } //Z#234
, /* Asia/Damascus */ :array {
:intvector { -1577931912, -1568592000, -1554080400, -1537142400, -1522630800, -1505692800, -1491181200, -1474243200, -1459126800, -242265600, -228877200, -210556800, -197427600, -178934400, -165718800, -147398400, -134269200, -116467200, -102646800, -84326400, -71110800, -52704000, -39488400, -21168000, -7952400, 10368000, 23583600, 41904000, 55119600, 73526400, 86742000, 105062400, 118278000, 136598400, 149814000, 168134400, 181350000, 199756800, 212972400, 231292800, 241916400, 262828800, 273452400, 418694400, 433810800, 450316800, 465433200, 508896000, 529196400, 541555200, 562633200, 574387200, 594255600, 607305600, 623199600, 638928000, 654649200, 670456800, 686264400, 702684000, 717886800, 733096800, 748904400, 765151200, 780958800, 796687200, 812494800, 828309600, 844117200, 859759200, 875653200, 891208800, 907189200 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"Syria"
:intvector { 7200, 1999 }
- } //Z#228
+ } //Z#235
, /* Asia/Dhaka */ :array {
:intvector { -891582800, -872058600, -862637400, -576138600, 38772000 }
:intvector { 19800, 0, 21600, 0, 23400, 0 }
:bin { "0200020101" }
- :intvector { 227, 229, 327 }
- } //Z#229
+ :intvector { 234, 236, 335 }
+ } //Z#236
, /* Asia/Dili */ :array {
:intvector { -1830414140, -879152400, -770634000, 199897200, 969120000 }
:intvector { 28800, 0, 32400, 0 }
:bin { "0001010001" }
- } //Z#230
+ } //Z#237
, /* Asia/Dubai */ :array {
:intvector { -1577936472 }
:intvector { 14400, 0 }
:bin { "00" }
- } //Z#231
+ } //Z#238
, /* Asia/Dushanbe */ :array {
:intvector { -1441168512, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 684363600 }
:intvector { 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
:bin { "000203020302030203020302030203020302030203020100" }
- } //Z#232
+ } //Z#239
, /* Asia/Gaza */ :array {
- :intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 820447200, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 915141600 }
+ :intvector { -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -399088800, -386650800, -368330400, -355114800, -336790800, -323654400, -305168400, -292032000, -273632400, -260496000, -242096400, -228960000, -210560400, -197424000, -178938000, -165801600, -147402000, -134265600, -115866000, -102643200, -84330000, -81313200, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 820447200, 828655200, 843170400, 860104800, 874620000, 891554400, 906069600, 915141600, 924213600, 939934800, 956268000, 971989200, 987717600, 1003438800, 1019167200, 1034888400, 1050616800, 1066338000, 1082066400, 1096581600 }
:intvector { 7200, 0, 7200, 3600 }
- :bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000001000100010000" }
+ :bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000001000100010000010001000100010001000100" }
"Palestine"
- :intvector { 7200, 1999 }
- } //Z#233
+ :intvector { 7200, 2005 }
+ } //Z#240
, /* Asia/Harbin */ :array {
:intvector { -1325492804, -1194078600, -946800000, -115894800, 325956600, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
:intvector { 28800, 0, 28800, 3600, 30600, 0, 32400, 0 }
:bin { "0200030200010001000100010001000100" }
- } //Z#234
+ } //Z#241
, /* Asia/Hong_Kong */ :array {
:intvector { -2056692996, -747981000, -728544600, -717049800, -694503000, -683785800, -668064600, -654755400, -636615000, -623305800, -605165400, -591856200, -573715800, -559801800, -542266200, -528352200, -510211800, -498112200, -478762200, -466662600, -446707800, -435213000, -415258200, -403158600, -383808600, -371709000, -352359000, -340259400, -320909400, -308809800, -288855000, -277360200, -257405400, -245910600, -225955800, -213856200, -194506200, -182406600, -163056600, -148537800, -132816600, -117088200, -101367000, -85638600, -69312600, -53584200, -37863000, -22134600, -6413400, 9315000, 25036200, 40764600, 56485800, 72214200, 88540200, 104268600, 119989800, 135718200, 151439400, 167167800, 182889000, 198617400, 214338600, 230067000, 245788200, 295385400, 309292200, 326835000, 340741800 }
:intvector { 28800, 0, 28800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- :intvector { 235, 454 }
- } //Z#235
+ :intvector { 242, 466 }
+ } //Z#242
, /* Asia/Hovd */ :array {
- :intvector { -2032927596, 252439200, 417978000, 433785600, 449600400, 465332400, 481057200, 496782000, 512506800, 528231600, 543956400, 559681200, 575406000, 591130800, 606855600, 622580400, 638305200, 654634800, 670359600, 686084400, 701809200, 717534000, 733258800, 748983600, 764708400, 780433200, 796158000, 811882800, 828212400, 843937200, 859662000, 875386800, 891111600, 906836400, 988398000, 1001700000 }
+ :intvector { -2032927596, 252439200, 417978000, 433785600, 449600400, 465321600, 481050000, 496771200, 512499600, 528220800, 543949200, 559670400, 575398800, 591120000, 606848400, 622569600, 638298000, 654624000, 670352400, 686073600, 701802000, 717523200, 733251600, 748972800, 764701200, 780422400, 796150800, 811872000, 828205200, 843926400, 859654800, 875376000, 891104400, 906825600, 988398000, 1001700000 }
:intvector { 21600, 0, 25200, 0, 25200, 3600 }
:bin { "000102010201020102010201020102010201020102010201020102010201020102010201" }
"Mongol"
:intvector { 25200, 2002 }
- } //Z#236
+ } //Z#243
, /* Asia/Irkutsk */ :array {
:intvector { -1575874640, -1247554800, 354902400, 370710000, 386438400, 402246000, 417974400, 433782000, 449596800, 465328800, 481053600, 496778400, 512503200, 528228000, 543952800, 559677600, 575402400, 591127200, 606852000, 622576800, 638301600, 654631200, 670356000, 686084400, 695761200, 701794800, 717516000, 733255200, 748980000, 764704800, 780429600, 796154400, 811879200 }
:intvector { 25200, 0, 25200, 3600, 28800, 0, 28800, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 28800, 1996 }
- } //Z#237
-, /* Asia/Istanbul */ :int { 407 } //Z#238
+ } //Z#244
+, /* Asia/Istanbul */ :int { 417 } //Z#245
, /* Asia/Jakarta */ :array {
:intvector { -1451719200, -1172906400, -876641400, -770634000, -683883000, -620812800, -189415800 }
:intvector { 25200, 0, 26400, 0, 27000, 0, 28800, 0, 32400, 0 }
:bin { "01020402030200" }
- } //Z#239
+ } //Z#246
, /* Asia/Jayapura */ :array {
:intvector { -1172913768, -820573200, -189423000 }
:intvector { 32400, 0, 34200, 0 }
:bin { "000100" }
- } //Z#240
+ } //Z#247
, /* Asia/Jerusalem */ :array {
:intvector { -1641003640, -933645600, -857358000, -844300800, -825822000, -812685600, -794199600, -779853600, -762656400, -748310400, -731127600, -681962400, -673243200, -667962000, -652327200, -636426000, -622087200, -608947200, -591847200, -572486400, -558576000, -542851200, -527731200, -514425600, -490845600, -482986800, -459475200, -451537200, -428551200, -418262400, -400032000, -387428400, 142380000, 150843600, 167176800, 178664400, 482277600, 495579600, 516751200, 526424400, 545436000, 558478800, 576540000, 589237200, 609890400, 620773200, 638316000, 651618000, 669765600, 683672400, 701820000, 715726800, 733701600, 747176400, 765151200, 778021200, 796600800, 810075600, 826840800, 842821200, 858895200, 874184400, 890344800, 905029200, 923011200, 936313200, 955670400, 970783200, 986770800, 1001282400, 1017356400, 1033941600, 1048806000, 1065132000, 1081292400, 1095804000, 1112313600, 1128812400, 1143763200, 1159657200, 1175212800, 1189897200, 1206662400, 1223161200, 1238112000, 1254006000, 1269561600, 1284246000, 1301616000, 1317510000, 1333065600, 1348354800, 1364515200, 1378594800, 1395964800, 1411858800, 1427414400, 1442703600, 1459468800, 1475967600, 1490918400, 1506207600, 1522368000, 1537052400, 1553817600, 1570316400, 1585267200, 1601161200, 1616716800, 1631401200, 1648771200, 1664665200, 1680220800, 1695510000, 1711670400, 1728169200, 1743120000, 1759014000, 1774569600, 1789858800, 1806019200, 1823122800, 1838073600, 1853362800, 1869523200, 1884207600, 1900972800, 1917471600, 1932422400, 1947711600, 1963872000, 1978556400, 1995926400, 2011820400, 2027376000, 2042060400, 2058825600, 2075324400, 2090275200, 2106169200, 2121724800, 2136409200 }
:intvector { 7200, 0, 7200, 3600, 7200, 7200 }
:bin { "00010001000100010001000201000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- :intvector { 241, 281, 470 }
- } //Z#241
+ :intvector { 248, 288, 482 }
+ } //Z#248
, /* Asia/Kabul */ :array {
:intvector { -788932800 }
:intvector { 16200, 0 }
:bin { "00" }
- } //Z#242
+ } //Z#249
, /* Asia/Kamchatka */ :array {
:intvector { -1487759676, -1247569200, 354888000, 370695600, 386424000, 402231600, 417960000, 433767600, 449582400, 465314400, 481039200, 496764000, 512488800, 528213600, 543938400, 559663200, 575388000, 591112800, 606837600, 622562400, 638287200, 654616800, 670341600, 686070000, 695746800, 701780400, 717501600, 733240800, 748965600, 764690400, 780415200, 796140000, 811864800 }
:intvector { 39600, 0, 39600, 3600, 43200, 0, 43200, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 43200, 1996 }
- } //Z#243
+ } //Z#250
, /* Asia/Karachi */ :array {
:intvector { -1988166492, -862637400, -764145000, -576135000, 38775600, 1018119660, 1033840860 }
:intvector { 18000, 0, 18000, 3600, 19800, 0, 19800, 3600 }
:bin { "02030200000100" }
- :intvector { 244, 491 }
- } //Z#244
+ :intvector { 251, 503 }
+ } //Z#251
, /* Asia/Kashgar */ :array {
:intvector { -1325480636, -946791000, 325969200, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
:intvector { 18000, 0, 19800, 0, 28800, 0, 28800, 3600 }
:bin { "010002030203020302030203020302" }
- } //Z#245
+ } //Z#252
, /* Asia/Katmandu */ :array {
:intvector { -1577943676, 504901800 }
:intvector { 19800, 0, 20700, 0 }
:bin { "0001" }
- } //Z#246
+ } //Z#253
, /* Asia/Krasnoyarsk */ :array {
:intvector { -1577513480, -1247551200, 354906000, 370713600, 386442000, 402249600, 417978000, 433785600, 449600400, 465332400, 481057200, 496782000, 512506800, 528231600, 543956400, 559681200, 575406000, 591130800, 606855600, 622580400, 638305200, 654634800, 670359600, 686088000, 695764800, 701798400, 717519600, 733258800, 748983600, 764708400, 780433200, 796158000, 811882800 }
:intvector { 21600, 0, 21600, 3600, 25200, 0, 25200, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 25200, 1996 }
- } //Z#247
+ } //Z#254
, /* Asia/Kuala_Lumpur */ :array {
:intvector { -2038200925, -1167634800, -1073028000, -894180000, -879665400, -767005200, 378664200 }
:intvector { 25200, 0, 25200, 1200, 26400, 0, 27000, 0, 28800, 0, 32400, 0 }
:bin { "00010203050304" }
- } //Z#248
+ } //Z#255
, /* Asia/Kuching */ :array {
:intvector { -1383463280, -1167636600, -1082448000, -1074586800, -1050825600, -1042964400, -1019289600, -1011428400, -987753600, -979892400, -956217600, -948356400, -924595200, -916734000, -893059200, -885198000, -879667200, -767005200, 378662400 }
:intvector { 27000, 0, 28800, 0, 28800, 1200, 32400, 0 }
:bin { "00010201020102010201020102010201030101" }
- } //Z#249
+ } //Z#256
, /* Asia/Kuwait */ :array {
:intvector { -631163516 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#250
-, /* Asia/Macao */ :int { 252 } //Z#251
+ } //Z#257
+, /* Asia/Macao */ :int { 259 } //Z#258
, /* Asia/Macau */ :array {
:intvector { -1830411260, -277360200, -257405400, -245910600, -225955800, -214473600, -194506200, -182406600, -163056600, -150969600, -131619600, -117088200, -101367000, -85638600, -69312600, -53584200, -37863000, -22134600, -6413400, 9315000, 25036200, 40764600, 56485800, 72201600, 87922800, 103651200, 119977200, 135705600, 151439400, 167167800, 182889000, 198617400, 214338600, 230067000, 245788200, 261504000, 277225200, 292953600, 309279600, 325008000, 340729200, 945619200 }
:intvector { 28800, 0, 28800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010000" }
- :intvector { 251, 252 }
- } //Z#252
+ :intvector { 258, 259 }
+ } //Z#259
, /* Asia/Magadan */ :array {
:intvector { -1441188192, -1247565600, 354891600, 370699200, 386427600, 402235200, 417963600, 433771200, 449586000, 465318000, 481042800, 496767600, 512492400, 528217200, 543942000, 559666800, 575391600, 591116400, 606841200, 622566000, 638290800, 654620400, 670345200, 686073600, 695750400, 701784000, 717505200, 733244400, 748969200, 764694000, 780418800, 796143600, 811868400 }
:intvector { 36000, 0, 36000, 3600, 39600, 0, 39600, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 39600, 1996 }
- } //Z#253
+ } //Z#260
, /* Asia/Makassar */ :array {
:intvector { -1577951856, -1172908656, -880272000, -770634000 }
:intvector { 28656, 0, 28800, 0, 32400, 0 }
:bin { "00010201" }
- :intvector { 254, 285 }
- } //Z#254
+ :intvector { 261, 292 }
+ } //Z#261
, /* Asia/Manila */ :array {
:intvector { -1046678400, -1038733200, -873273600, -794221200, -496224000, -489315600, 259344000, 275151600 }
:intvector { 28800, 0, 28800, 3600, 32400, 0 }
:bin { "0100020001000100" }
- } //Z#255
+ } //Z#262
, /* Asia/Muscat */ :array {
:intvector { -1577937260 }
:intvector { 14400, 0 }
:bin { "00" }
- } //Z#256
+ } //Z#263
, /* Asia/Nicosia */ :array {
:intvector { -1518920008, 166572000, 182293200, 200959200, 213829200, 228866400, 243982800, 260316000, 276123600, 291765600, 307486800, 323820000, 338936400, 354664800, 370386000, 386114400, 401835600, 417564000, 433285200, 449013600, 465339600, 481068000, 496789200, 512517600, 528238800, 543967200, 559688400, 575416800, 591138000, 606866400, 622587600, 638316000, 654642000, 670370400, 686091600, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EUAsia"
:intvector { 7200, 1996 }
- :intvector { 257, 420 }
- } //Z#257
+ :intvector { 264, 431 }
+ } //Z#264
, /* Asia/Novosibirsk */ :array {
:intvector { -1579476700, -1247551200, 354906000, 370713600, 386442000, 402249600, 417978000, 433785600, 449600400, 465332400, 481057200, 496782000, 512506800, 528231600, 543956400, 559681200, 575406000, 591130800, 606855600, 622580400, 638305200, 654634800, 670359600, 686088000, 695764800, 701798400, 717519600, 733258800, 738086400, 748987200, 764712000, 780436800, 796161600, 811886400 }
:intvector { 21600, 0, 21600, 3600, 25200, 0, 25200, 3600 }
:bin { "00020302030203020302030203020302030203020302010002030203010001000100" }
"Russia"
:intvector { 21600, 1996 }
- } //Z#258
+ } //Z#265
, /* Asia/Omsk */ :array {
:intvector { -1582088016, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 686091600, 695768400, 701802000, 717523200, 733262400, 748987200, 764712000, 780436800, 796161600, 811886400 }
:intvector { 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 21600, 1996 }
- } //Z#259
+ } //Z#266
, /* Asia/Oral */ :array {
:intvector { -1441164324, -1247544000, 354913200, 370720800, 386445600, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622591200, 638316000, 654645600, 662673600, 692827200, 701809200, 717530400, 733269600, 748994400, 764719200, 780444000, 796168800, 811893600, 828223200, 846367200, 859672800, 877816800, 891122400, 909266400, 922572000, 941320800, 954021600, 972770400, 985471200, 1004220000, 1017525600, 1035669600, 1048975200, 1067119200, 1080424800, 1099173600, 1110830400 }
:intvector { 14400, 0, 14400, 3600, 18000, 0, 18000, 3600, 21600, 0 }
- :bin { "000203040302030203020302030203020302010001000000010001000100010001000100010001000100010001000100010000" }
- } //Z#260
+ :bin { "000203040302030203020302030203020302010001000000010001000100010001000100010001000100010001000100010002" }
+ } //Z#267
, /* Asia/Phnom_Penh */ :array {
:intvector { -2005973980, -1855983920, -1819954800, -1220428800 }
:intvector { 25200, 0, 25580, 0, 28800, 0 }
:bin { "01000200" }
- } //Z#261
+ } //Z#268
, /* Asia/Pontianak */ :array {
:intvector { -1946186240, -1172906240, -881220600, -770634000, -683883000, -620812800, -189415800, 567964800 }
:intvector { 25200, 0, 26240, 0, 27000, 0, 28800, 0, 32400, 0 }
:bin { "0102040203020300" }
- } //Z#262
+ } //Z#269
, /* Asia/Pyongyang */ :array {
:intvector { -2053931400, -1325494800, -1199262600, -498128400, -264931200 }
:intvector { 28800, 0, 30600, 0, 32400, 0 }
:bin { "0201020002" }
- } //Z#263
+ } //Z#270
, /* Asia/Qatar */ :array {
:intvector { -1577935568, 76190400 }
:intvector { 10800, 0, 14400, 0 }
:bin { "0100" }
- } //Z#264
+ } //Z#271
, /* Asia/Qyzylorda */ :array {
:intvector { -1441167712, -1247544000, 354913200, 370720800, 386445600, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 662670000, 692823600, 695768400, 701802000, 717523200, 733262400, 748987200, 764712000, 780436800, 796161600, 811886400, 828216000, 846360000, 859665600, 877809600, 891115200, 909259200, 922564800, 941313600, 954014400, 972763200, 985464000, 1004212800, 1017518400, 1035662400, 1048968000, 1067112000, 1080417600, 1099166400, 1110823200 }
:intvector { 14400, 0, 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
:bin { "00010203020102010201020102010201020102010201010103040304030403040304030403040304030403040304030403040303" }
- } //Z#265
+ } //Z#272
, /* Asia/Rangoon */ :array {
:intvector { -1577946276, -873268200, -778410000 }
:intvector { 23400, 0, 32400, 0 }
:bin { "000100" }
- } //Z#266
+ } //Z#273
, /* Asia/Riyadh */ :array {
:intvector { -631163212 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#267
+ } //Z#274
, /* Asia/Riyadh87 */ :array {
:intvector { 536489776, 536576206, 536662631, 536749061, 536835486, 536921916, 537008341, 537094766, 537181191, 537267616, 537354041, 537440466, 537526886, 537613311, 537699731, 537786151, 537872571, 537958991, 538045411, 538131831, 538218246, 538304666, 538391081, 538477496, 538563911, 538650326, 538736736, 538823151, 538909561, 538995971, 539082381, 539168791, 539255196, 539341606, 539428011, 539514416, 539600821, 539687226, 539860031, 540378426, 540551221, 540637616, 540724011, 540810406, 540896801, 540983191, 541069586, 541155976, 541242366, 541328756, 541415146, 541501536, 541587926, 541674316, 541760701, 541847091, 541933476, 542019861, 542106251, 542192636, 542279021, 542365406, 542451791, 542538171, 542624556, 542710941, 542797326, 542883706, 542970091, 543056471, 543142856, 543229236, 543315621, 543402001, 543488386, 543574766, 543661146, 543747531, 543833911, 543920291, 544006676, 544093056, 544179441, 544265821, 544352201, 544438586, 544524966, 544611351, 544697731, 544784116, 544870501, 544956881, 545043266, 545129651, 545216031, 545302416, 545388801, 545475186, 545561571, 545647961, 545734346, 545820731, 545907121, 545993506, 546079896, 546166281, 546252671, 546339061, 546425451, 546511841, 546598231, 546684621, 546771011, 546857406, 546943796, 547030191, 547116586, 547202981, 547289376, 547375771, 547462166, 547548561, 547721356, 548412561, 548585366, 548671771, 548758176, 548844581, 548930986, 549017391, 549103796, 549190206, 549276611, 549363021, 549449426, 549535836, 549622246, 549708656, 549795066, 549881476, 549967886, 550054296, 550140706, 550227121, 550313531, 550399946, 550486356, 550572766, 550659181, 550745591, 550832006, 550918421, 551004831, 551091246, 551177656, 551264071, 551350486, 551436896, 551523311, 551609721, 551696136, 551782546, 551868961, 551955371, 552041786, 552128196, 552214606, 552301021, 552387431, 552473841, 552560251, 552646661, 552733071, 552819481, 552905891, 552992296, 553078706, 553165116, 553251521, 553337926, 553424336, 553510741, 553597146, 553683551, 553856356, 553942761, 554201966, 554547561, 554806756, 554893151, 554979546, 555065941, 555152336, 555238731, 555325126, 555411516, 555497911, 555584301, 555670691, 555757081, 555843471, 555929861, 556016251, 556102641, 556189026, 556275416, 556361801, 556448186, 556534571, 556620956, 556707341, 556793726, 556880111, 556966496, 557052876, 557139261, 557225641, 557312026, 557398406, 557484786, 557571166, 557657551, 557743931, 557830311, 557916691, 558003071, 558089451, 558175826, 558262206, 558348586, 558434966, 558521346, 558607721, 558694101, 558780481, 558866861, 558953236, 559039616, 559125996, 559212371, 559298751, 559385131, 559471511, 559557891, 559644271, 559730646, 559817026, 559903406, 559989786, 560076166, 560162551, 560248931, 560335311, 560421691, 560508076, 560594456, 560680841, 560767221, 560853606, 560939991, 561026376, 561112761, 561199146, 561285531, 561371921, 561458306, 561544696, 561631081, 561717471, 561803861, 561890251, 561976641, 562063036, 562149426, 562235821, 562322211, 562408606, 562495001, 562667796, 562840591, 563186196, 563359001, 563445406, 563531811, 563618216, 563704621, 563791031, 563877436, 563963846, 564050256, 564136666, 564223081, 564309491, 564395906, 564482321, 564568736, 564655151, 564741566, 564827986, 564914406, 565000821, 565087241, 565173661, 565260086, 565346506, 565432926, 565519351, 565605776, 565692201, 565778626, 565865051, 565951476, 566037901, 566124326, 566210756, 566297181, 566383611, 566470041, 566556466, 566642896, 566729326, 566815756, 566902186, 566988616, 567075046, 567161476, 567247906, 567334336, 567420766, 567507196, 567593621, 567680051, 567766481, 567852911, 567939341, 567982541 }
:intvector { 11224, -855, 11224, -850, 11224, -845, 11224, -840, 11224, -835, 11224, -830, 11224, -825, 11224, -820, 11224, -815, 11224, -810, 11224, -805, 11224, -800, 11224, -795, 11224, -790, 11224, -785, 11224, -780, 11224, -775, 11224, -770, 11224, -760, 11224, -750, 11224, -740, 11224, -735, 11224, -725, 11224, -720, 11224, -715, 11224, -705, 11224, -700, 11224, -690, 11224, -685, 11224, -675, 11224, -670, 11224, -660, 11224, -655, 11224, -645, 11224, -635, 11224, -630, 11224, -615, 11224, -595, 11224, -580, 11224, -575, 11224, -565, 11224, -555, 11224, -550, 11224, -535, 11224, -530, 11224, -515, 11224, -510, 11224, -495, 11224, -490, 11224, -480, 11224, -465, 11224, -460, 11224, -445, 11224, -440, 11224, -425, 11224, -415, 11224, -410, 11224, -390, 11224, -385, 11224, -380, 11224, -375, 11224, -370, 11224, -365, 11224, -360, 11224, -355, 11224, -350, 11224, -345, 11224, -340, 11224, -335, 11224, -330, 11224, -325, 11224, -320, 11224, -315, 11224, -310, 11224, -305, 11224, -300, 11224, -295, 11224, -285, 11224, -280, 11224, -275, 11224, -265, 11224, -255, 11224, -250, 11224, -245, 11224, -240, 11224, -230, 11224, -225, 11224, -220, 11224, -210, 11224, -200, 11224, -195, 11224, -190, 11224, -185, 11224, -180, 11224, -175, 11224, -170, 11224, -165, 11224, -160, 11224, -155, 11224, -150, 11224, -145, 11224, -140, 11224, -135, 11224, -125, 11224, -120, 11224, -110, 11224, -105, 11224, -100, 11224, -95, 11224, -90, 11224, -85, 11224, -80, 11224, -75, 11224, -70, 11224, -65, 11224, -55, 11224, -50, 11224, -45, 11224, -40, 11224, -30, 11224, -25, 11224, -20, 11224, -15, 11224, -10, 11224, -5, 11224, 0, 11224, 5, 11224, 10, 11224, 15, 11224, 20, 11224, 25, 11224, 30, 11224, 40, 11224, 45, 11224, 55, 11224, 65, 11224, 70, 11224, 80, 11224, 85, 11224, 90, 11224, 95, 11224, 100, 11224, 105, 11224, 110, 11224, 115, 11224, 120, 11224, 125, 11224, 130, 11224, 135, 11224, 140, 11224, 145, 11224, 150, 11224, 155, 11224, 160, 11224, 165, 11224, 170, 11224, 180, 11224, 185, 11224, 190, 11224, 195, 11224, 200, 11224, 205, 11224, 210, 11224, 215, 11224, 220, 11224, 230, 11224, 250, 11224, 255, 11224, 275, 11224, 280, 11224, 295, 11224, 310, 11224, 315, 11224, 335, 11224, 340, 11224, 360, 11224, 365, 11224, 380, 11224, 395, 11224, 405, 11224, 420, 11224, 425, 11224, 445, 11224, 450, 11224, 465, 11224, 475, 11224, 485, 11224, 500, 11224, 505, 11224, 525, 11224, 530, 11224, 550, 11224, 570, 11224, 575, 11224, 590, 11224, 600, 11224, 610, 11224, 625, 11224, 645, 11224, 650, 11224, 665, 11224, 670, 11224, 685, 11224, 690, 11224, 700, 11224, 715, 11224, 720, 11224, 735, 11224, 755, 11224, 770, 11224, 785, 11224, 790, 11224, 800, 11224, 810, 11224, 815, 11224, 825, 11224, 830, 11224, 840, 11224, 845, 11224, 855, 11224, 870, 11224, 880, 11224, 885, 11224, 895, 11224, 905, 11224, 910, 11224, 915, 11224, 920, 11224, 925, 11224, 930, 11224, 935, 11224, 940, 11224, 945, 11224, 950, 11224, 955, 11224, 960, 11224, 965, 11224, 970, 11224, 975, 11224, 980, 11224, 985 }
:bin { "5955514d49433e39373532302e2b2927252422201e1b1917151312100e0c0a080705040302010001020304050608090b0d0f1112131416181a1c1d1f2123242526282a2c2d2f3133343638393d4044484b4e505356585b5e6265676a6d707376787b7e8083858688898c8e90929496989a9b9c9d9e9fa0a1a2a3a4a3a2a1a09f9e9d9c9b9a98979593918f8d8b8988868583817f7c7a777573716f6c69686664615f5c5a5857555351504f4d4c4a4847454342413f3e3d3c3b3a393a3b3c3d3e3f4041434446484a4c4d4f50525456585a5d606366686b6e7274777b7f8285878a8e92979b9ea2a5a7a8aaacaeafb1b3b5b6b8babcbebfc0c2c4c5c6c8cacccecfd0d1d2d4d6d8dadbdcdddfe0e2e4e6e7e9eaecedeeeff0efeeedecebeae8e7e5e3e1dfdedcdbd9d7d5d3d1d0cfcdcbc9c7c5c3c1bfbdbbb9b7b4b2b0adaba9a6a49e99938d88847f7975706a66607d" }
- :intvector { 268, 483 }
- } //Z#268
+ :intvector { 275, 495 }
+ } //Z#275
, /* Asia/Riyadh88 */ :array {
:intvector { 568025771, 568112196, 568198626, 568285056, 568371481, 568457906, 568544336, 568630761, 568717186, 568803611, 568890036, 568976461, 569062881, 569149306, 569235726, 569322146, 569408566, 569494986, 569581406, 569667826, 569754241, 569840661, 569927076, 570013491, 570099906, 570186321, 570272736, 570359146, 570445556, 570531966, 570618376, 570704786, 570791196, 570877601, 570964011, 571050416, 571136821, 571223226, 571396031, 571914426, 572087221, 572173616, 572260011, 572346406, 572432801, 572519196, 572605586, 572691976, 572778371, 572864761, 572951151, 573037541, 573123926, 573210316, 573296706, 573383091, 573469481, 573555866, 573642251, 573728636, 573815021, 573901406, 573987791, 574074176, 574160561, 574246946, 574333326, 574419711, 574506096, 574592476, 574678861, 574765241, 574851626, 574938006, 575024386, 575110771, 575197151, 575283536, 575369916, 575456296, 575542681, 575629061, 575715441, 575801826, 575888206, 575974591, 576060971, 576147356, 576233736, 576320121, 576406501, 576492886, 576579271, 576665651, 576752036, 576838421, 576924806, 577011191, 577097576, 577183961, 577270346, 577356736, 577443121, 577529511, 577615896, 577702286, 577788671, 577875061, 577961451, 578047841, 578134231, 578220626, 578307016, 578393406, 578479801, 578566191, 578652586, 578738981, 578825376, 578911771, 578998166, 579084561, 579257356, 579948561, 580121366, 580207771, 580294176, 580380581, 580466986, 580553391, 580639796, 580726201, 580812611, 580899016, 580985426, 581071836, 581158246, 581244651, 581331061, 581417471, 581503886, 581590296, 581676706, 581763116, 581849531, 581935941, 582022351, 582108766, 582195176, 582281591, 582368001, 582454416, 582540831, 582627241, 582713656, 582800066, 582886481, 582972896, 583059306, 583145721, 583232131, 583318546, 583404956, 583491371, 583577781, 583664196, 583750606, 583837016, 583923426, 584009841, 584096251, 584182661, 584269071, 584355481, 584441886, 584528296, 584614706, 584701111, 584787521, 584873926, 584960331, 585046736, 585133141, 585219546, 585305951, 585392356, 585478761, 585737966, 586169961, 586342756, 586429151, 586601946, 586688341, 586774731, 586861126, 586947521, 587033911, 587120301, 587206696, 587293086, 587379476, 587465866, 587552251, 587638641, 587725031, 587811416, 587897806, 587984191, 588070576, 588156961, 588243346, 588329731, 588416116, 588502496, 588588881, 588675266, 588761646, 588848026, 588934411, 589020791, 589107171, 589193551, 589279936, 589366316, 589452696, 589539076, 589625456, 589711831, 589798211, 589884591, 589970971, 590057351, 590143726, 590230106, 590316486, 590402866, 590489241, 590575621, 590662001, 590748381, 590834756, 590921136, 591007516, 591093896, 591180276, 591266651, 591353031, 591439411, 591525791, 591612171, 591698551, 591784936, 591871316, 591957696, 592044081, 592130461, 592216846, 592303226, 592389611, 592475996, 592562381, 592648766, 592735151, 592821536, 592907921, 592994311, 593080696, 593167086, 593253476, 593339861, 593426256, 593512646, 593599036, 593685426, 593771821, 593858216, 593944611, 594031006, 594117401, 594203796, 594376591, 594722196, 594895001, 595067806, 595154216, 595240621, 595327026, 595413436, 595499846, 595586256, 595672666, 595759076, 595845491, 595931901, 596018316, 596104731, 596191146, 596277566, 596363981, 596450401, 596536816, 596623236, 596709656, 596796081, 596882501, 596968921, 597055346, 597141771, 597228191, 597314616, 597401041, 597487471, 597573896, 597660321, 597746751, 597833176, 597919606, 598006031, 598092461, 598178891, 598265321, 598351751, 598438176, 598524606, 598611036, 598697466, 598783896, 598870326, 598956756, 599043186, 599129616, 599216046, 599302476, 599388906, 599475331, 599561761, 599604961 }
:intvector { 11224, -855, 11224, -850, 11224, -845, 11224, -840, 11224, -835, 11224, -830, 11224, -825, 11224, -820, 11224, -810, 11224, -800, 11224, -795, 11224, -790, 11224, -785, 11224, -780, 11224, -775, 11224, -770, 11224, -765, 11224, -760, 11224, -750, 11224, -745, 11224, -740, 11224, -730, 11224, -715, 11224, -705, 11224, -700, 11224, -690, 11224, -685, 11224, -675, 11224, -665, 11224, -660, 11224, -650, 11224, -645, 11224, -630, 11224, -615, 11224, -610, 11224, -600, 11224, -590, 11224, -585, 11224, -570, 11224, -550, 11224, -535, 11224, -530, 11224, -520, 11224, -505, 11224, -500, 11224, -485, 11224, -465, 11224, -460, 11224, -450, 11224, -435, 11224, -430, 11224, -410, 11224, -395, 11224, -390, 11224, -385, 11224, -380, 11224, -375, 11224, -370, 11224, -365, 11224, -360, 11224, -355, 11224, -350, 11224, -345, 11224, -340, 11224, -335, 11224, -330, 11224, -325, 11224, -320, 11224, -310, 11224, -305, 11224, -300, 11224, -295, 11224, -290, 11224, -285, 11224, -280, 11224, -275, 11224, -265, 11224, -255, 11224, -250, 11224, -240, 11224, -230, 11224, -220, 11224, -215, 11224, -205, 11224, -200, 11224, -195, 11224, -185, 11224, -180, 11224, -170, 11224, -160, 11224, -155, 11224, -145, 11224, -140, 11224, -130, 11224, -125, 11224, -120, 11224, -110, 11224, -105, 11224, -100, 11224, -95, 11224, -90, 11224, -80, 11224, -75, 11224, -70, 11224, -65, 11224, -60, 11224, -55, 11224, -50, 11224, -45, 11224, -40, 11224, -35, 11224, -30, 11224, -25, 11224, -15, 11224, -10, 11224, 0, 11224, 5, 11224, 10, 11224, 15, 11224, 20, 11224, 25, 11224, 30, 11224, 35, 11224, 40, 11224, 45, 11224, 50, 11224, 55, 11224, 60, 11224, 65, 11224, 70, 11224, 80, 11224, 90, 11224, 100, 11224, 105, 11224, 110, 11224, 115, 11224, 120, 11224, 125, 11224, 130, 11224, 135, 11224, 140, 11224, 145, 11224, 150, 11224, 160, 11224, 165, 11224, 170, 11224, 175, 11224, 180, 11224, 185, 11224, 190, 11224, 195, 11224, 200, 11224, 205, 11224, 210, 11224, 215, 11224, 220, 11224, 225, 11224, 250, 11224, 255, 11224, 270, 11224, 285, 11224, 290, 11224, 310, 11224, 315, 11224, 335, 11224, 345, 11224, 355, 11224, 370, 11224, 375, 11224, 395, 11224, 400, 11224, 420, 11224, 425, 11224, 440, 11224, 455, 11224, 460, 11224, 480, 11224, 500, 11224, 505, 11224, 525, 11224, 535, 11224, 545, 11224, 560, 11224, 565, 11224, 585, 11224, 605, 11224, 625, 11224, 630, 11224, 640, 11224, 655, 11224, 660, 11224, 675, 11224, 680, 11224, 695, 11224, 715, 11224, 720, 11224, 730, 11224, 740, 11224, 750, 11224, 760, 11224, 765, 11224, 775, 11224, 780, 11224, 795, 11224, 810, 11224, 825, 11224, 830, 11224, 840, 11224, 845, 11224, 855, 11224, 860, 11224, 865, 11224, 875, 11224, 880, 11224, 885, 11224, 890, 11224, 900, 11224, 910, 11224, 915, 11224, 920, 11224, 930, 11224, 940, 11224, 950, 11224, 955, 11224, 960, 11224, 965, 11224, 970, 11224, 975, 11224, 980, 11224, 985 }
:bin { "55514e4a45413b3633312f2d2b2927262422201e1c1a18161513110f0d0b0908070604030201000102030405060708090a0c0e101214151617191b1d1f202123252627282a2c2d2e30323334383b3f4345494c4e50525557595b5e606366696c6f717376797b7e8082838587898b8d8e8f91929495969798999a9b9a9998979695949392908f8e8c8a8987858382817f7c7a78757371706d6a686564615f5d5b5a5857555351504f4e4c4b494745444341403e3d3c3b3a3938373635363738393a3c3d3e4042434446484b4c4d4f50525456585a5c5f6164676b6e7174787b7f8284888d9094989c9d9fa1a2a4a6a8a9abadafb0b1b3b5b7b8b9babcbec0c1c2c4c6c8cacbcccdcfd1d3d5d7d8dadbdcdddedfe0e1e2e3e4e5e4e3e2e0dfdedddcdbd9d8d6d4d2d0cecccbc9c7c5c3c1bfbdbbb9b8b6b4b2b0aeacaaa7a5a3a09e9c97918c86827d77726d67625d5a5673" }
- :intvector { 269, 484 }
- } //Z#269
+ :intvector { 276, 496 }
+ } //Z#276
, /* Asia/Riyadh89 */ :array {
:intvector { 599648191, 599734621, 599821046, 599907476, 599993901, 600080326, 600166751, 600253181, 600339606, 600426031, 600512451, 600598876, 600685301, 600771721, 600858141, 600944561, 601030981, 601117401, 601203821, 601290241, 601376656, 601463071, 601549491, 601635906, 601722316, 601808731, 601895146, 601981556, 602067966, 602154376, 602240786, 602327196, 602413601, 602500011, 602586416, 602672821, 602759226, 602932031, 603104836, 603364031, 603536826, 603709621, 603796016, 603882411, 603968806, 604055196, 604141591, 604227981, 604314371, 604400761, 604487151, 604573541, 604659931, 604746321, 604832706, 604919096, 605005481, 605091871, 605178256, 605264641, 605351026, 605437411, 605523796, 605610181, 605696566, 605782946, 605869331, 605955716, 606042096, 606128481, 606214861, 606301246, 606387626, 606474011, 606560391, 606646771, 606733156, 606819536, 606905916, 606992301, 607078681, 607165066, 607251446, 607337826, 607424211, 607510591, 607596976, 607683356, 607769741, 607856121, 607942506, 608028886, 608115271, 608201656, 608288041, 608374426, 608460811, 608547196, 608633581, 608719966, 608806351, 608892736, 608979126, 609065511, 609151901, 609238286, 609324676, 609411066, 609497456, 609583846, 609670236, 609756626, 609843016, 609929411, 610015801, 610102196, 610188586, 610274981, 610361376, 610447771, 610534166, 610706961, 610879756, 611484561, 611657366, 611743771, 611916576, 612002981, 612089391, 612175796, 612262201, 612348611, 612435016, 612521426, 612607831, 612694241, 612780651, 612867061, 612953471, 613039881, 613126291, 613212701, 613299116, 613385526, 613471936, 613558351, 613644761, 613731176, 613817586, 613904001, 613990411, 614076826, 614163241, 614249651, 614336066, 614422476, 614508891, 614595306, 614681716, 614768131, 614854541, 614940956, 615027366, 615113781, 615200191, 615286601, 615373016, 615459426, 615545836, 615632246, 615718656, 615805066, 615891476, 615977886, 616064296, 616150701, 616237111, 616323516, 616409926, 616496331, 616582736, 616669141, 616755546, 616841951, 616928356, 617101161, 617273966, 617705961, 617878756, 618051551, 618137946, 618224341, 618310736, 618397126, 618483521, 618569911, 618656306, 618742696, 618829086, 618915476, 619001866, 619088256, 619174646, 619261031, 619347421, 619433806, 619520191, 619606581, 619692966, 619779351, 619865736, 619952116, 620038501, 620124886, 620211266, 620297651, 620384031, 620470416, 620556796, 620643176, 620729561, 620815941, 620902321, 620988701, 621075081, 621161461, 621247841, 621334216, 621420596, 621506976, 621593356, 621679736, 621766111, 621852491, 621938871, 622025251, 622111626, 622198006, 622284386, 622370766, 622457141, 622543521, 622629901, 622716281, 622802661, 622889041, 622975416, 623061796, 623148176, 623234561, 623320941, 623407321, 623493701, 623580086, 623666466, 623752846, 623839231, 623925616, 624011996, 624098381, 624184766, 624271151, 624357536, 624443926, 624530311, 624616696, 624703086, 624789476, 624875866, 624962256, 625048646, 625135036, 625221426, 625307821, 625394216, 625480606, 625567001, 625653396, 625826191, 626085386, 626171791, 626430996, 626517401, 626603806, 626690211, 626776616, 626863021, 626949431, 627035841, 627122251, 627208661, 627295071, 627381486, 627467896, 627554311, 627640726, 627727141, 627813561, 627899976, 627986396, 628072816, 628159231, 628245651, 628332076, 628418496, 628504916, 628591341, 628677766, 628764191, 628850611, 628937036, 629023466, 629109891, 629196316, 629282746, 629369171, 629455601, 629542026, 629628456, 629714886, 629801316, 629887741, 629974171, 630060601, 630147031, 630233461, 630319891, 630406321, 630492751, 630579181, 630665611, 630752041, 630838471, 630924896, 631011326, 631097756, 631140956 }
:intvector { 11224, -860, 11224, -855, 11224, -850, 11224, -845, 11224, -840, 11224, -835, 11224, -830, 11224, -825, 11224, -820, 11224, -815, 11224, -810, 11224, -805, 11224, -800, 11224, -795, 11224, -790, 11224, -785, 11224, -780, 11224, -775, 11224, -770, 11224, -765, 11224, -755, 11224, -745, 11224, -740, 11224, -730, 11224, -720, 11224, -715, 11224, -705, 11224, -695, 11224, -680, 11224, -665, 11224, -650, 11224, -645, 11224, -635, 11224, -625, 11224, -620, 11224, -605, 11224, -590, 11224, -585, 11224, -570, 11224, -565, 11224, -555, 11224, -545, 11224, -540, 11224, -525, 11224, -520, 11224, -505, 11224, -500, 11224, -485, 11224, -475, 11224, -470, 11224, -455, 11224, -450, 11224, -435, 11224, -430, 11224, -415, 11224, -405, 11224, -395, 11224, -390, 11224, -385, 11224, -380, 11224, -375, 11224, -370, 11224, -365, 11224, -360, 11224, -355, 11224, -350, 11224, -345, 11224, -340, 11224, -335, 11224, -330, 11224, -325, 11224, -320, 11224, -310, 11224, -305, 11224, -300, 11224, -290, 11224, -280, 11224, -270, 11224, -260, 11224, -255, 11224, -250, 11224, -245, 11224, -240, 11224, -235, 11224, -230, 11224, -225, 11224, -215, 11224, -205, 11224, -200, 11224, -190, 11224, -180, 11224, -175, 11224, -165, 11224, -160, 11224, -155, 11224, -150, 11224, -145, 11224, -140, 11224, -130, 11224, -125, 11224, -120, 11224, -115, 11224, -110, 11224, -100, 11224, -95, 11224, -90, 11224, -80, 11224, -75, 11224, -65, 11224, -55, 11224, -50, 11224, -40, 11224, -35, 11224, -25, 11224, -20, 11224, -10, 11224, -5, 11224, 0, 11224, 10, 11224, 15, 11224, 25, 11224, 35, 11224, 40, 11224, 50, 11224, 55, 11224, 60, 11224, 65, 11224, 75, 11224, 85, 11224, 90, 11224, 95, 11224, 100, 11224, 105, 11224, 110, 11224, 115, 11224, 120, 11224, 125, 11224, 130, 11224, 135, 11224, 140, 11224, 145, 11224, 150, 11224, 160, 11224, 165, 11224, 175, 11224, 180, 11224, 185, 11224, 190, 11224, 195, 11224, 200, 11224, 205, 11224, 210, 11224, 215, 11224, 220, 11224, 235, 11224, 240, 11224, 260, 11224, 265, 11224, 285, 11224, 290, 11224, 305, 11224, 320, 11224, 325, 11224, 350, 11224, 370, 11224, 375, 11224, 390, 11224, 405, 11224, 410, 11224, 430, 11224, 435, 11224, 455, 11224, 460, 11224, 475, 11224, 485, 11224, 495, 11224, 510, 11224, 515, 11224, 535, 11224, 540, 11224, 560, 11224, 565, 11224, 580, 11224, 585, 11224, 600, 11224, 610, 11224, 615, 11224, 635, 11224, 655, 11224, 660, 11224, 675, 11224, 680, 11224, 690, 11224, 700, 11224, 710, 11224, 725, 11224, 730, 11224, 745, 11224, 760, 11224, 780, 11224, 795, 11224, 800, 11224, 810, 11224, 815, 11224, 825, 11224, 835, 11224, 840, 11224, 850, 11224, 865, 11224, 880, 11224, 890, 11224, 900, 11224, 905, 11224, 910, 11224, 915, 11224, 920, 11224, 925, 11224, 930, 11224, 935, 11224, 940, 11224, 945, 11224, 950, 11224, 955, 11224, 960, 11224, 965, 11224, 970, 11224, 975, 11224, 980, 11224, 985, 11224, 990 }
:bin { "56514d4a46413c373532302e2b29272523211f1d1c1b1917161412100e0c0a080705040302010001020304050608090b0d0f1113141517181a1b1c1d1e2022232426282a2c2d2f31333436383b3f4346494b4d505356585a5c606266686a6c6e70727476787a7b7e7f81838587898b8d8e8f90919394959697989998979695949291908f8e8d8c8a88868482807f7d7b7a7877757371706e6c6b69676562615e5c5a5957565552504e4d4c4b4a484746444341403f3e3d3c3b3a393a3b3c3d3e3f4142444547484a4b4c4d4f51545657595b5d616366696b6d6f727577797c7f82868a8e9195999b9d9ea0a2a3a4a6a8aaabadafb1b2b4b6b8babbbcbec0c2c4c5c6c7c8cacccecfd0d1d2d3d5d7d9dbdddedfe1e2e3e4e5e4e3e2e1e0dfdedcdad8d6d4d2d1d0cfcdcbc9c7c6c5c3c1bfbdbbb9b7b5b3b0aeaca9a7a5a3a19f9c9a96908c86807c7874706c68645f5a75" }
- :intvector { 270, 485 }
- } //Z#270
+ :intvector { 277, 497 }
+ } //Z#277
, /* Asia/Saigon */ :array {
:intvector { -2005974400, -1855983920, -1819954800, -1220428800 }
:intvector { 25200, 0, 25580, 0, 28800, 0 }
:bin { "01000200" }
- :intvector { 271, 573 }
- } //Z#271
+ :intvector { 278, 572 }
+ } //Z#278
, /* Asia/Sakhalin */ :array {
:intvector { -2031039048, -1009875600, -768560400, 354891600, 370699200, 386427600, 402235200, 417963600, 433771200, 449586000, 465318000, 481042800, 496767600, 512492400, 528217200, 543942000, 559666800, 575391600, 591116400, 606841200, 622566000, 638290800, 654620400, 670345200, 686073600, 695750400, 701784000, 717505200, 733244400, 748969200, 764694000, 780418800, 796143600, 811868400 }
:intvector { 32400, 0, 36000, 0, 36000, 3600, 39600, 0, 39600, 3600 }
:bin { "00000304030403040304030403040304030403040304030201030403040304030403" }
"Russia"
:intvector { 36000, 1996 }
- } //Z#272
+ } //Z#279
, /* Asia/Samarkand */ :array {
- :intvector { -1441168032, -1247544000, 354913200, 370720800, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 683661600, 686091600, 694206000, 701805600, 717526800 }
- :intvector { 14400, 0, 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
- :bin { "00010203040304030403040304030403040304030403020201010201" }
- } //Z#273
+ :intvector { -1441168032, -1247544000, 354913200, 370720800, 386445600, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 670366800, 683661600, 686091600, 694206000 }
+ :intvector { 14400, 0, 18000, 0, 18000, 3600, 21600, 0 }
+ :bin { "0001020302010201020102010201020102010201020102020101" }
+ } //Z#280
, /* Asia/Seoul */ :array {
:intvector { -2053931400, -1325494800, -1199262600, -498128400, -303984000, -293533200, -264931200, -39515400, 547570800, 560872800, 579020400, 592322400 }
:intvector { 28800, 0, 28800, 3600, 30600, 0, 32400, 0, 32400, 3600 }
:bin { "030203000100020304030403" }
- :intvector { 274, 540 }
- } //Z#274
+ :intvector { 281, 552 }
+ } //Z#281
, /* Asia/Shanghai */ :array {
:intvector { -1325491552, -933494400, -923130000, -908784000, -891594000, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
:intvector { 28800, 0, 28800, 3600 }
:bin { "0001000100010001000100010001000100" }
- :intvector { 275, 337, 493 }
- } //Z#275
+ :intvector { 282, 345, 505 }
+ } //Z#282
, /* Asia/Singapore */ :array {
:intvector { -2038200925, -1167634800, -1073028000, -894180000, -879665400, -767005200, -138785400, 378664200 }
:intvector { 25200, 0, 25200, 1200, 26400, 0, 27000, 0, 28800, 0, 32400, 0 }
:bin { "0001020305030304" }
- :intvector { 276, 542 }
- } //Z#276
+ :intvector { 283, 554 }
+ } //Z#283
, /* Asia/Taipei */ :array {
:intvector { -778579200, -765363600, -747043200, -733827600, -715507200, -702291600, -683884800, -670669200, -652348800, -639133200, -620812800, -607597200, -589276800, -576061200, -562924800, -541760400, -528710400, -510224400, -497174400, -478688400, -465638400, -449830800, -434016000, -418208400, -402480000, -386672400, -370944000, -355136400, -339408000, -323600400, -302515200, -291978000, -270979200, -260442000, 133977600, 149785200, 165513600, 181321200, 331142400, 339087600 }
:intvector { 28800, 0, 28800, 3600 }
:bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100" }
- :intvector { 277, 539 }
- } //Z#277
+ :intvector { 284, 551 }
+ } //Z#284
, /* Asia/Tashkent */ :array {
- :intvector { -1441168632, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 683661600, 686091600, 694206000, 701805600, 717526800 }
+ :intvector { -1441168632, -1247547600, 354909600, 370717200, 386445600, 402253200, 417981600, 433789200, 449604000, 465336000, 481060800, 496785600, 512510400, 528235200, 543960000, 559684800, 575409600, 591134400, 606859200, 622584000, 638308800, 654638400, 670363200, 683661600, 686091600, 694206000 }
:intvector { 18000, 0, 18000, 3600, 21600, 0, 21600, 3600 }
- :bin { "00020302030203020302030203020302030203020302010100000100" }
- } //Z#278
+ :bin { "0002030203020302030203020302030203020302030201010000" }
+ } //Z#285
, /* Asia/Tbilisi */ :array {
- :intvector { -1441162756, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 671140800, 686098800, 694213200, 701816400, 717537600, 733266000, 748987200, 764715600, 780436800, 796161600, 811882800 }
+ :intvector { -1441162756, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 671140800, 686098800, 694213200, 701816400, 717537600, 733266000, 748987200, 764715600, 780436800, 796161600, 811882800, 828216000, 859662000, 877806000, 891115200, 909255600, 922564800, 941310000, 954014400, 972759600, 985464000, 1004209200, 1017518400, 1035658800, 1048968000, 1067108400, 1080417600, 1088276400, 1099177200, 1111878000 }
:intvector { 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
- :bin { "00020302030203020302030203020302030203020302010100000100010001020302" }
- "RussiaAsia"
- :intvector { 10800, 1996 }
- } //Z#279
+ :bin { "0002030203020302030203020302030203020302030201010000010001000102030203030203020302030203020302030203010002" }
+ } //Z#286
, /* Asia/Tehran */ :array {
- :intvector { -1704165944, -757394744, 247177800, 259272000, 277758000, 283982400, 290809800, 306531000, 322432200, 338499000, 673216200, 685481400, 701209800, 717103800, 732745800, 748639800, 764281800, 780175800, 795817800, 811711800, 827353800, 843247800, 858976200, 874870200, 890512200, 906406200, 922048200, 937942200, 953584200, 969478200, 985206600, 1001100600, 1016742600, 1032636600, 1048278600, 1064172600, 1079814600, 1095708600, 1111437000, 1127331000, 1142973000, 1158867000, 1174509000, 1190403000, 1206045000, 1221939000, 1237667400, 1253561400, 1269203400, 1285097400, 1300739400, 1316633400, 1332275400, 1348169400, 1363897800, 1379791800, 1395433800, 1411327800, 1426969800, 1442863800, 1458505800, 1474399800, 1490128200, 1506022200, 1521664200, 1537558200, 1553200200, 1569094200, 1584736200, 1600630200, 1616358600, 1632252600, 1647894600, 1663788600, 1679430600, 1695324600, 1710966600, 1726860600, 1742589000, 1758483000, 1774125000, 1790019000, 1805661000, 1821555000, 1837197000, 1853091000, 1868733000, 1884627000, 1900355400, 1916249400, 1931891400, 1947785400, 1963427400, 1979321400, 1994963400, 2010857400, 2026585800, 2042479800, 2058121800, 2074015800, 2089657800, 2105551800, 2121193800, 2137087800 }
+ :intvector { -1704165944, -757394744, 247177800, 259272000, 277758000, 283982400, 290809800, 306531000, 322432200, 338499000, 673216200, 685481400, 701209800, 717103800, 732745800, 748639800, 764281800, 780175800, 795817800, 811711800, 827353800, 843247800, 858976200, 874870200, 890512200, 906406200, 922048200, 937942200, 953584200, 969478200, 985206600, 1001100600, 1016742600, 1032636600, 1048278600, 1064172600, 1079814600, 1095708600, 1111437000, 1127331000 }
:intvector { 12344, 0, 12600, 0, 12600, 3600, 14400, 0, 14400, 3600 }
- :bin { "0001030403010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
- :intvector { 280, 469 }
- } //Z#280
-, /* Asia/Tel_Aviv */ :int { 241 } //Z#281
-, /* Asia/Thimbu */ :int { 283 } //Z#282
+ :bin { "00010304030102010201020102010201020102010201020102010201020102010201020102010201" }
+ :intvector { 287, 481 }
+ } //Z#287
+, /* Asia/Tel_Aviv */ :int { 248 } //Z#288
+, /* Asia/Thimbu */ :int { 290 } //Z#289
, /* Asia/Thimphu */ :array {
:intvector { -706341516, 560025000 }
:intvector { 19800, 0, 21600, 0 }
:bin { "0001" }
- :intvector { 282, 283 }
- } //Z#283
+ :intvector { 289, 290 }
+ } //Z#290
, /* Asia/Tokyo */ :array {
- :intvector { -1009875600 }
- :intvector { 32400, 0 }
- :bin { "00" }
- :intvector { 284, 471, 473 }
- } //Z#284
-, /* Asia/Ujung_Pandang */ :int { 254 } //Z#285
+ :intvector { -1009875600, -683794800, -672393600, -654764400, -640944000, -620290800, -609494400, -588841200, -578044800 }
+ :intvector { 32400, 0, 32400, 3600 }
+ :bin { "000100010001000100" }
+ :intvector { 291, 483, 485 }
+ } //Z#291
+, /* Asia/Ujung_Pandang */ :int { 261 } //Z#292
, /* Asia/Ulaanbaatar */ :array {
- :intvector { -2032931252, 252435600, 417974400, 433782000, 449596800, 465328800, 481053600, 496778400, 512503200, 528228000, 543952800, 559677600, 575402400, 591127200, 606852000, 622576800, 638301600, 654631200, 670356000, 686080800, 701805600, 717530400, 733255200, 748980000, 764704800, 780429600, 796154400, 811879200, 828208800, 843933600, 859658400, 875383200, 891108000, 906832800, 988394400, 1001696400 }
+ :intvector { -2032931252, 252435600, 417974400, 433782000, 449596800, 465318000, 481046400, 496767600, 512496000, 528217200, 543945600, 559666800, 575395200, 591116400, 606844800, 622566000, 638294400, 654620400, 670348800, 686070000, 701798400, 717519600, 733248000, 748969200, 764697600, 780418800, 796147200, 811868400, 828201600, 843922800, 859651200, 875372400, 891100800, 906822000, 988394400, 1001696400 }
:intvector { 25200, 0, 28800, 0, 28800, 3600 }
:bin { "000102010201020102010201020102010201020102010201020102010201020102010201" }
"Mongol"
:intvector { 28800, 2002 }
- :intvector { 286, 287 }
- } //Z#286
-, /* Asia/Ulan_Bator */ :int { 286 } //Z#287
+ :intvector { 293, 294 }
+ } //Z#293
+, /* Asia/Ulan_Bator */ :int { 293 } //Z#294
, /* Asia/Urumqi */ :array {
:intvector { -1325483420, 325965600, 515520000, 527007600, 545155200, 558457200, 576604800, 589906800, 608659200, 621961200, 640108800, 653410800, 671558400, 684860400 }
:intvector { 21600, 0, 28800, 0, 28800, 3600 }
:bin { "0001020102010201020102010201" }
- } //Z#288
+ } //Z#295
, /* Asia/Vientiane */ :array {
:intvector { -2005973424, -1855983920, -1819954800, -1220428800 }
:intvector { 25200, 0, 25580, 0, 28800, 0 }
:bin { "01000200" }
- } //Z#289
+ } //Z#296
, /* Asia/Vladivostok */ :array {
:intvector { -1487321264, -1247562000, 354895200, 370702800, 386431200, 402238800, 417967200, 433774800, 449589600, 465321600, 481046400, 496771200, 512496000, 528220800, 543945600, 559670400, 575395200, 591120000, 606844800, 622569600, 638294400, 654624000, 670348800, 686077200, 695754000, 701787600, 717508800, 733248000, 748972800, 764697600, 780422400, 796147200, 811872000 }
:intvector { 32400, 0, 32400, 3600, 36000, 0, 36000, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 36000, 1996 }
- } //Z#290
+ } //Z#297
, /* Asia/Yakutsk */ :array {
:intvector { -1579423120, -1247558400, 354898800, 370706400, 386434800, 402242400, 417970800, 433778400, 449593200, 465325200, 481050000, 496774800, 512499600, 528224400, 543949200, 559674000, 575398800, 591123600, 606848400, 622573200, 638298000, 654627600, 670352400, 686080800, 695757600, 701791200, 717512400, 733251600, 748976400, 764701200, 780426000, 796150800, 811875600 }
:intvector { 28800, 0, 28800, 3600, 32400, 0, 32400, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 32400, 1996 }
- } //Z#291
+ } //Z#298
, /* Asia/Yekaterinburg */ :array {
:intvector { -1592611344, -1247544000, 354913200, 370720800, 386449200, 402256800, 417985200, 433792800, 449607600, 465339600, 481064400, 496789200, 512514000, 528238800, 543963600, 559688400, 575413200, 591138000, 606862800, 622587600, 638312400, 654642000, 670366800, 686095200, 695772000, 701805600, 717526800, 733266000, 748990800, 764715600, 780440400, 796165200, 811890000 }
:intvector { 14400, 0, 14400, 3600, 18000, 0, 18000, 3600 }
:bin { "000203020302030203020302030203020302030203020100020302030203020302" }
"Russia"
:intvector { 18000, 1996 }
- } //Z#292
+ } //Z#299
, /* Asia/Yerevan */ :array {
:intvector { -1441162680, -405140400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622591200, 638316000, 654645600, 670370400, 685569600, 686098800, 701812800, 717534000, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200 }
:intvector { 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
:bin { "000203020302030203020302030203020302030203020101000100010001000102" }
"RussiaAsia"
:intvector { 14400, 1996 }
- :intvector { 293, 486 }
- } //Z#293
+ :intvector { 300, 498 }
+ } //Z#300
, /* Atlantic/Azores */ :array {
:intvector { -1849557928, -1689548400, -1677794400, -1667430000, -1647730800, -1635807600, -1616194800, -1604358000, -1584658800, -1572735600, -1553036400, -1541199600, -1521500400, -1442444400, -1426806000, -1379286000, -1364770800, -1348441200, -1333321200, -1316386800, -1301266800, -1284332400, -1269817200, -1221433200, -1206918000, -1191193200, -1175468400, -1127689200, -1111964400, -1096844400, -1080514800, -1063580400, -1049065200, -1033340400, -1017615600, -1002495600, -986166000, -969231600, -950482800, -942015600, -922662000, -906937200, -891126000, -877302000, -873676800, -864000000, -857948400, -845852400, -842832000, -831340800, -825894000, -814402800, -810777600, -799891200, -794444400, -782953200, -779328000, -768441600, -762994800, -749084400, -733359600, -717624000, -701899200, -686174400, -670449600, -654724800, -639000000, -591825600, -575496000, -559771200, -544046400, -528321600, -512596800, -496872000, -481147200, -465422400, -449697600, -433972800, -417643200, -401918400, -386193600, -370468800, -354744000, -339019200, -323294400, -307569600, -291844800, -276120000, -260395200, -244670400, -228340800, -212616000, -196891200, -181166400, -165441600, -149716800, -133992000, -118267200, 228272400, 243997200, 260326800, 276051600, 291776400, 307504800, 323226000, 338954400, 354679200, 370404000, 386128800, 401853600, 417582000, 433303200, 449028000, 465357600, 481082400, 496807200, 512532000, 528256800, 543981600, 559706400, 575431200, 591156000, 606880800, 622605600, 638330400, 654660000, 670384800, 686109600, 701834400, 717559200, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { -7200, 0, -7200, 3600, -7200, 7200, -3600, 0, -3600, 3600, 0, 0 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010201000102010001020100010201000100010001000100010001000100010001000100010001000100010001000100010001000100030403040304030403040304030403040304030403040304030403040304030405040304030403" }
"EU"
:intvector { -3600, 1996 }
- } //Z#294
+ } //Z#301
, /* Atlantic/Bermuda */ :array {
- :intvector { -1262281256, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800 }
+ :intvector { -1262281256, 136360800, 152082000, 167810400, 183531600, 199260000, 215586000, 230709600, 247035600, 262764000, 278485200, 294213600, 309934800, 325663200, 341384400, 357112800, 372834000, 388562400, 404888400, 420012000, 436338000, 452066400, 467787600, 483516000, 499237200, 514965600, 530686800, 544600800, 562136400, 576050400, 594190800, 607500000, 625640400, 638949600, 657090000, 671004000, 688539600, 702453600, 719989200, 733903200, 752043600, 765352800, 783493200, 796802400, 814942800, 828856800, 846392400, 860306400, 877842000, 891756000, 909291600, 923205600, 941346000, 954655200, 972795600, 986104800, 1004245200, 1018159200, 1035694800, 1049608800, 1067144400, 1081058400, 1099198800, 1112508000, 1130648400, 1143957600, 1162098000 }
:intvector { -14400, 0, -14400, 3600 }
- :bin { "000100010001000100010001000100010001000100010001000100" }
- "Bahamas"
- :intvector { -14400, 1987 }
- } //Z#295
+ :bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "US"
+ :intvector { -14400, 2007 }
+ } //Z#302
, /* Atlantic/Canary */ :array {
:intvector { -1509663504, -733874400, 323827200, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { -3600, 0, 0, 0, 0, 3600 }
:bin { "00010201020102010201020102010201020102010201020102010201020102010201" }
"EU"
:intvector { 0, 1996 }
- } //Z#296
+ } //Z#303
, /* Atlantic/Cape_Verde */ :array {
:intvector { -1988144756, -862610400, -764118000, 186120000 }
:intvector { -7200, 0, -7200, 3600, -3600, 0 }
:bin { "00010002" }
- } //Z#297
+ } //Z#304
, /* Atlantic/Faeroe */ :array {
:intvector { -1955748776, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 0, 1996 }
- } //Z#298
-, /* Atlantic/Jan_Mayen */ :int { 421 } //Z#299
+ } //Z#305
+, /* Atlantic/Jan_Mayen */ :int { 432 } //Z#306
, /* Atlantic/Madeira */ :array {
:intvector { -1849560744, -1689552000, -1677798000, -1667433600, -1647734400, -1635811200, -1616198400, -1604361600, -1584662400, -1572739200, -1553040000, -1541203200, -1521504000, -1442448000, -1426809600, -1379289600, -1364774400, -1348444800, -1333324800, -1316390400, -1301270400, -1284336000, -1269820800, -1221436800, -1206921600, -1191196800, -1175472000, -1127692800, -1111968000, -1096848000, -1080518400, -1063584000, -1049068800, -1033344000, -1017619200, -1002499200, -986169600, -969235200, -950486400, -942019200, -922665600, -906940800, -891129600, -877305600, -873680400, -864003600, -857952000, -845856000, -842835600, -831344400, -825897600, -814406400, -810781200, -799894800, -794448000, -782956800, -779331600, -768445200, -762998400, -749088000, -733363200, -717627600, -701902800, -686178000, -670453200, -654728400, -639003600, -591829200, -575499600, -559774800, -544050000, -528325200, -512600400, -496875600, -481150800, -465426000, -449701200, -433976400, -417646800, -401922000, -386197200, -370472400, -354747600, -339022800, -323298000, -307573200, -291848400, -276123600, -260398800, -244674000, -228344400, -212619600, -196894800, -181170000, -165445200, -149720400, -133995600, -118270800, 228268800, 243993600, 260323200, 276048000, 291772800, 307501200, 323222400, 338950800, 354675600, 370400400, 386125200, 401850000, 417578400, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { -3600, 0, -3600, 3600, -3600, 7200, 0, 0, 0, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010201000102010001020100010201000100010001000100010001000100010001000100010001000100010001000100010001000100030403040304030403040304030403040304030403040304030403040304030403040304030403" }
"EU"
:intvector { 0, 1996 }
- } //Z#300
+ } //Z#307
, /* Atlantic/Reykjavik */ :array {
:intvector { -1956609132, -1668211200, -1647212400, -1636675200, -1613430000, -968025600, -949615200, -942008400, -920239200, -909957600, -888789600, -877903200, -857944800, -846453600, -826495200, -815004000, -795045600, -783554400, -762991200, -752104800, -731541600, -717631200, -700092000, -686181600, -668642400, -654732000, -636588000, -623282400, -605743200, -591832800, -573688800, -559778400, -542239200, -528328800, -510789600, -496879200, -479340000, -465429600, -447890400, -433980000, -415836000, -401925600, -384386400, -370476000, -352936800, -339026400, -321487200, -307576800, -290037600, -276127200, -258588000, -244677600, -226533600, -212623200, -195084000, -181173600, -163634400, -149724000, -132184800, -118274400, -100735200, -86824800, -68680800, -54770400 }
:intvector { -3600, 0, -3600, 3600, 0, 0 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010002" }
- :intvector { 301, 457 }
- } //Z#301
+ :intvector { 308, 469 }
+ } //Z#308
, /* Atlantic/South_Georgia */ :array {
:intvector { }
:intvector { -7200, 0 }
:bin { "" }
- } //Z#302
+ } //Z#309
, /* Atlantic/St_Helena */ :array {
:intvector { -599614632 }
:intvector { 0, 0 }
:bin { "00" }
- } //Z#303
+ } //Z#310
, /* Atlantic/Stanley */ :array {
:intvector { -1824235716, -1018209600, -1003093200, -986760000, -971643600, -954705600, -939589200, -923256000, -908139600, -891806400, -876690000, -860356800, -852066000, 420609600, 433306800, 452052000, 464151600, 483501600, 495601200, 514350000, 527054400, 545799600, 558504000, 577249200, 589953600, 608698800, 621403200, 640753200, 652852800, 672202800, 684907200, 703652400, 716356800, 735102000, 747806400, 766551600, 779256000, 798001200, 810705600, 830055600, 842760000, 861505200, 874209600, 892954800, 905659200, 924404400, 937108800, 955854000, 968558400 }
:intvector { -14400, 0, -14400, 3600, -10800, 0, -10800, 3600 }
:bin { "00010001000100010001000100020302030201000100010001000100010001000100010001000100010001000100010001" }
"Falk"
:intvector { -14400, 2001 }
- } //Z#304
-, /* Australia/ACT */ :int { 321 } //Z#305
+ } //Z#311
+, /* Australia/ACT */ :int { 329 } //Z#312
, /* Australia/Adelaide */ :array {
- :intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 384280200, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 637691400, 657045000, 667931400, 688494600, 701195400, 719944200, 731435400, 751998600, 764094600, 783448200 }
+ :intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 384280200, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 637691400, 657045000, 667931400, 688494600, 701195400, 719944200, 731435400, 751998600, 764094600, 783448200, 796149000, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000 }
:intvector { 34200, 0, 34200, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"AS"
- :intvector { 34200, 1995 }
- :intvector { 306, 320 }
- } //Z#306
+ :intvector { 34200, 2007 }
+ :intvector { 313, 328 }
+ } //Z#313
, /* Australia/Brisbane */ :array {
:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200 }
:intvector { 36000, 0, 36000, 3600 }
:bin { "01000100010001000100010001000100" }
- :intvector { 307, 319 }
- } //Z#307
+ :intvector { 314, 327 }
+ } //Z#314
, /* Australia/Broken_Hill */ :array {
- :intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 386699400, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 636481800, 657045000, 667931400, 688494600, 699381000, 719944200, 731435400, 751998600, 762885000, 783448200 }
+ :intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400, 57688200, 67969800, 89137800, 100024200, 120587400, 131473800, 152037000, 162923400, 183486600, 194977800, 215541000, 226427400, 246990600, 257877000, 278440200, 289326600, 309889800, 320776200, 341339400, 352225800, 372789000, 386699400, 404843400, 415729800, 436293000, 447179400, 467742600, 478629000, 499192200, 511288200, 530037000, 542737800, 562091400, 574792200, 594145800, 606241800, 625595400, 636481800, 657045000, 667931400, 688494600, 699381000, 719944200, 731435400, 751998600, 762885000, 783448200, 794334600, 814897800, 828203400, 846347400, 859653000, 877797000, 891102600, 909246600, 922552200, 941301000, 946647000, 954001800, 972750600, 985451400, 1004200200, 1017505800, 1035649800, 1048955400, 1067099400, 1080405000, 1099153800, 1111854600, 1130603400, 1143909000, 1162053000 }
:intvector { 34200, 0, 34200, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001010001000100010001000100010001" }
"AS"
- :intvector { 34200, 1995 }
- :intvector { 308, 325 }
- } //Z#308
-, /* Australia/Canberra */ :int { 321 } //Z#309
+ :intvector { 34200, 2007 }
+ :intvector { 315, 333 }
+ } //Z#315
+, /* Australia/Canberra */ :int { 329 } //Z#316
+, /* Australia/Currie */ :array {
+ :intvector { -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000 }
+ :intvector { 36000, 0, 36000, 3600 }
+ :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ "AT"
+ :intvector { 36000, 2007 }
+ } //Z#317
, /* Australia/Darwin */ :array {
:intvector { -1672565340, -1665390600, -883639800, -876126600, -860398200, -844677000, -828343800, -813227400 }
:intvector { 34200, 0, 34200, 3600 }
:bin { "0100010001000100" }
- :intvector { 0, 310, 317 }
- } //Z#310
+ :intvector { 0, 318, 325 }
+ } //Z#318
, /* Australia/Hobart */ :array {
- :intvector { -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600 }
+ :intvector { -1680508800, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, -71136000, -55411200, -37267200, -25776000, -5817600, 5673600, 25632000, 37728000, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386092800, 404841600, 417542400, 436291200, 447177600, 467740800, 478627200, 499190400, 510076800, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 670348800, 686678400, 701798400, 718128000, 733248000, 749577600, 764697600, 781027200, 796147200, 812476800, 828201600, 844531200, 859651200, 875980800, 891100800, 907430400, 922550400, 938880000, 954000000, 967305600, 985449600, 1002384000, 1017504000, 1033833600, 1048953600, 1065283200, 1080403200, 1096732800, 1111852800, 1128182400, 1143907200, 1159632000 }
:intvector { 36000, 0, 36000, 3600 }
- :bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"AT"
- :intvector { 36000, 2001 }
- :intvector { 311, 322 }
- } //Z#311
-, /* Australia/LHI */ :int { 314 } //Z#312
+ :intvector { 36000, 2007 }
+ :intvector { 319, 330 }
+ } //Z#319
+, /* Australia/LHI */ :int { 322 } //Z#320
, /* Australia/Lindeman */ :array {
:intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 709912800, 719942400, 731433600, 751996800, 762883200 }
:intvector { 36000, 0, 36000, 3600 }
:bin { "010001000100010001000100010001000001000100" }
- } //Z#313
+ } //Z#321
, /* Australia/Lord_Howe */ :array {
- :intvector { 352216800, 372785400, 384273000, 404839800, 415722600, 436289400, 447172200, 467739000, 478621800, 499188600, 511282800, 530033400, 542732400, 562087800, 574786800, 594142200, 606236400, 625591800, 636476400, 657041400, 667926000, 688491000, 699375600, 719940600, 731430000, 751995000, 762879600, 783444600, 794329200, 814894200, 828198000, 846343800, 859647600, 877793400, 891097200, 909243000, 922546800, 941297400, 953996400, 967303800 }
+ :intvector { 352216800, 372785400, 384273000, 404839800, 415722600, 436289400, 447172200, 467739000, 478621800, 499188600, 511282800, 530033400, 542732400, 562087800, 574786800, 594142200, 606236400, 625591800, 636476400, 657041400, 667926000, 688491000, 699375600, 719940600, 731430000, 751995000, 762879600, 783444600, 794329200, 814894200, 828198000, 846343800, 859647600, 877793400, 891097200, 909243000, 922546800, 941297400, 953996400, 967303800, 985446000, 1004196600, 1017500400, 1035646200, 1048950000, 1067095800, 1080399600, 1099150200, 1111849200, 1130599800, 1143903600, 1162049400 }
:intvector { 37800, 0, 37800, 1800, 37800, 3600 }
- :bin { "00020002000200020001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "00020002000200020001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"LH"
- :intvector { 37800, 2001 }
- :intvector { 312, 314 }
- } //Z#314
+ :intvector { 37800, 2007 }
+ :intvector { 320, 322 }
+ } //Z#322
, /* Australia/Melbourne */ :array {
- :intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 384278400, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 561484800, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 796147200, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600 }
+ :intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 384278400, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 561484800, 574790400, 594144000, 606240000, 625593600, 637689600, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 796147200, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200 }
:intvector { 36000, 0, 36000, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"AV"
- :intvector { 36000, 2001 }
- :intvector { 315, 323 }
- } //Z#315
-, /* Australia/NSW */ :int { 321 } //Z#316
-, /* Australia/North */ :int { 310 } //Z#317
+ :intvector { 36000, 2007 }
+ :intvector { 323, 331 }
+ } //Z#323
+, /* Australia/NSW */ :int { 329 } //Z#324
+, /* Australia/North */ :int { 318 } //Z#325
, /* Australia/Perth */ :array {
:intvector { -1672559940, -1665385200, -883634400, -876121200, -860392800, -844671600, 152042400, 162928800, 436298400, 447184800, 690314400, 699386400 }
:intvector { 28800, 0, 28800, 3600 }
:bin { "010001000100010001000100" }
- :intvector { 318, 324 }
- } //Z#318
-, /* Australia/Queensland */ :int { 307 } //Z#319
-, /* Australia/South */ :int { 306 } //Z#320
+ :intvector { 326, 332 }
+ } //Z#326
+, /* Australia/Queensland */ :int { 314 } //Z#327
+, /* Australia/South */ :int { 313 } //Z#328
, /* Australia/Sydney */ :array {
- :intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386697600, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 794332800, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600 }
+ :intvector { -1672567140, -1665392400, -883641600, -876128400, -860400000, -844678800, -828345600, -813229200, 57686400, 67968000, 89136000, 100022400, 120585600, 131472000, 152035200, 162921600, 183484800, 194976000, 215539200, 226425600, 246988800, 257875200, 278438400, 289324800, 309888000, 320774400, 341337600, 352224000, 372787200, 386697600, 404841600, 415728000, 436291200, 447177600, 467740800, 478627200, 499190400, 511286400, 530035200, 542736000, 562089600, 574790400, 594144000, 606240000, 625593600, 636480000, 657043200, 667929600, 688492800, 699379200, 719942400, 731433600, 751996800, 762883200, 783446400, 794332800, 814896000, 828201600, 846345600, 859651200, 877795200, 891100800, 909244800, 922550400, 941299200, 954000000, 967305600, 985449600, 1004198400, 1017504000, 1035648000, 1048953600, 1067097600, 1080403200, 1099152000, 1111852800, 1130601600, 1143907200, 1162051200 }
:intvector { 36000, 0, 36000, 3600 }
- :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
+ :bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001" }
"AN"
- :intvector { 36000, 2001 }
- :intvector { 1, 305, 309, 316, 321 }
- } //Z#321
-, /* Australia/Tasmania */ :int { 311 } //Z#322
-, /* Australia/Victoria */ :int { 315 } //Z#323
-, /* Australia/West */ :int { 318 } //Z#324
-, /* Australia/Yancowinna */ :int { 308 } //Z#325
-, /* BET */ :int { 175 } //Z#326
-, /* BST */ :int { 229 } //Z#327
-, /* Brazil/Acre */ :int { 171 } //Z#328
-, /* Brazil/DeNoronha */ :int { 156 } //Z#329
-, /* Brazil/East */ :int { 175 } //Z#330
-, /* Brazil/West */ :int { 140 } //Z#331
-, /* CAT */ :int { 28 } //Z#332
+ :intvector { 36000, 2007 }
+ :intvector { 1, 312, 316, 324, 329 }
+ } //Z#329
+, /* Australia/Tasmania */ :int { 319 } //Z#330
+, /* Australia/Victoria */ :int { 323 } //Z#331
+, /* Australia/West */ :int { 326 } //Z#332
+, /* Australia/Yancowinna */ :int { 315 } //Z#333
+, /* BET */ :int { 182 } //Z#334
+, /* BST */ :int { 236 } //Z#335
+, /* Brazil/Acre */ :int { 178 } //Z#336
+, /* Brazil/DeNoronha */ :int { 162 } //Z#337
+, /* Brazil/East */ :int { 182 } //Z#338
+, /* Brazil/West */ :int { 145 } //Z#339
+, /* CAT */ :int { 28 } //Z#340
, /* CET */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"C-Eur"
:intvector { 3600, 1996 }
- } //Z#333
-, /* CNT */ :int { 178 } //Z#334
-, /* CST */ :int { 91 } //Z#335
-, /* CST6CDT */ :int { 91 } //Z#336
-, /* CTT */ :int { 275 } //Z#337
-, /* Canada/Atlantic */ :int { 118 } //Z#338
-, /* Canada/Central */ :int { 193 } //Z#339
-, /* Canada/East-Saskatchewan */ :int { 170 } //Z#340
-, /* Canada/Eastern */ :int { 188 } //Z#341
-, /* Canada/Mountain */ :int { 103 } //Z#342
-, /* Canada/Newfoundland */ :int { 178 } //Z#343
-, /* Canada/Pacific */ :int { 190 } //Z#344
-, /* Canada/Saskatchewan */ :int { 170 } //Z#345
-, /* Canada/Yukon */ :int { 192 } //Z#346
-, /* Chile/Continental */ :int { 173 } //Z#347
-, /* Chile/EasterIsland */ :int { 500 } //Z#348
-, /* Cuba */ :int { 119 } //Z#349
-, /* EAT */ :int { 7 } //Z#350
-, /* ECT */ :int { 422 } //Z#351
+ } //Z#341
+, /* CNT */ :int { 185 } //Z#342
+, /* CST */ :int { 93 } //Z#343
+, /* CST6CDT */ :array {
+ :intvector { -1633276800, -1615136400, -1601827200, -1583686800, -880214400, -769395600, -765392400, -84384000, -68662800, -52934400, -37213200, -21484800, -5763600, 9964800, 25686000, 41414400, 57740400, 73468800, 89190000, 104918400, 120639600, 126691200, 152089200, 162374400, 183538800, 199267200, 215593200, 230716800, 247042800, 262771200, 278492400, 294220800, 309942000, 325670400, 341391600, 357120000, 372841200, 388569600, 404895600, 420019200, 436345200, 452073600, 467794800, 483523200, 499244400, 514972800, 530694000, 544608000, 562143600, 576057600, 594198000, 607507200, 625647600, 638956800, 657097200, 671011200, 688546800, 702460800, 719996400, 733910400, 752050800, 765360000, 783500400, 796809600, 814950000, 828864000, 846399600, 860313600, 877849200, 891763200, 909298800, 923212800, 941353200, 954662400, 972802800, 986112000, 1004252400, 1018166400, 1035702000, 1049616000, 1067151600, 1081065600, 1099206000, 1112515200, 1130655600, 1143964800, 1162105200 }
+ :intvector { -21600, 0, -21600, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "US"
+ :intvector { -21600, 2007 }
+ } //Z#344
+, /* CTT */ :int { 282 } //Z#345
+, /* Canada/Atlantic */ :int { 121 } //Z#346
+, /* Canada/Central */ :int { 200 } //Z#347
+, /* Canada/East-Saskatchewan */ :int { 177 } //Z#348
+, /* Canada/Eastern */ :int { 195 } //Z#349
+, /* Canada/Mountain */ :int { 106 } //Z#350
+, /* Canada/Newfoundland */ :int { 185 } //Z#351
+, /* Canada/Pacific */ :int { 197 } //Z#352
+, /* Canada/Saskatchewan */ :int { 177 } //Z#353
+, /* Canada/Yukon */ :int { 199 } //Z#354
+, /* Chile/Continental */ :int { 180 } //Z#355
+, /* Chile/EasterIsland */ :int { 512 } //Z#356
+, /* Cuba */ :int { 122 } //Z#357
+, /* EAT */ :int { 7 } //Z#358
+, /* ECT */ :int { 433 } //Z#359
, /* EET */ :array {
:intvector { 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 7200, 1996 }
- } //Z#352
-, /* EST */ :int { 125 } //Z#353
-, /* EST5EDT */ :int { 153 } //Z#354
-, /* Egypt */ :int { 17 } //Z#355
-, /* Eire */ :int { 404 } //Z#356
+ } //Z#360
+, /* EST */ :array {
+ :intvector { }
+ :intvector { -18000, 0 }
+ :bin { "" }
+ } //Z#361
+, /* EST5EDT */ :array {
+ :intvector { -1633280400, -1615140000, -1601830800, -1583690400, -880218000, -769395600, -765396000, -84387600, -68666400, -52938000, -37216800, -21488400, -5767200, 9961200, 25682400, 41410800, 57736800, 73465200, 89186400, 104914800, 120636000, 126687600, 152085600, 162370800, 183535200, 199263600, 215589600, 230713200, 247039200, 262767600, 278488800, 294217200, 309938400, 325666800, 341388000, 357116400, 372837600, 388566000, 404892000, 420015600, 436341600, 452070000, 467791200, 483519600, 499240800, 514969200, 530690400, 544604400, 562140000, 576054000, 594194400, 607503600, 625644000, 638953200, 657093600, 671007600, 688543200, 702457200, 719992800, 733906800, 752047200, 765356400, 783496800, 796806000, 814946400, 828860400, 846396000, 860310000, 877845600, 891759600, 909295200, 923209200, 941349600, 954658800, 972799200, 986108400, 1004248800, 1018162800, 1035698400, 1049612400, 1067148000, 1081062000, 1099202400, 1112511600, 1130652000, 1143961200, 1162101600 }
+ :intvector { -18000, 0, -18000, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "US"
+ :intvector { -18000, 2007 }
+ } //Z#362
+, /* Egypt */ :int { 17 } //Z#363
+, /* Eire */ :int { 412 } //Z#364
, /* Etc/GMT */ :array {
:intvector { }
:intvector { 0, 0 }
:bin { "" }
- :intvector { 357, 358, 371, 386, 387, 448, 449, 450, 451, 452 }
- } //Z#357
-, /* Etc/GMT+0 */ :int { 357 } //Z#358
+ :intvector { 365, 366, 379, 394, 395, 460, 461, 462, 463, 464 }
+ } //Z#365
+, /* Etc/GMT+0 */ :int { 365 } //Z#366
, /* Etc/GMT+1 */ :array {
:intvector { }
:intvector { -3600, 0 }
:bin { "" }
- } //Z#359
+ } //Z#367
, /* Etc/GMT+10 */ :array {
:intvector { }
:intvector { -36000, 0 }
:bin { "" }
- } //Z#360
+ } //Z#368
, /* Etc/GMT+11 */ :array {
:intvector { }
:intvector { -39600, 0 }
:bin { "" }
- } //Z#361
+ } //Z#369
, /* Etc/GMT+12 */ :array {
:intvector { }
:intvector { -43200, 0 }
:bin { "" }
- } //Z#362
+ } //Z#370
, /* Etc/GMT+2 */ :array {
:intvector { }
:intvector { -7200, 0 }
:bin { "" }
- } //Z#363
+ } //Z#371
, /* Etc/GMT+3 */ :array {
:intvector { }
:intvector { -10800, 0 }
:bin { "" }
- } //Z#364
+ } //Z#372
, /* Etc/GMT+4 */ :array {
:intvector { }
:intvector { -14400, 0 }
:bin { "" }
- } //Z#365
+ } //Z#373
, /* Etc/GMT+5 */ :array {
:intvector { }
:intvector { -18000, 0 }
:bin { "" }
- } //Z#366
+ } //Z#374
, /* Etc/GMT+6 */ :array {
:intvector { }
:intvector { -21600, 0 }
:bin { "" }
- } //Z#367
+ } //Z#375
, /* Etc/GMT+7 */ :array {
:intvector { }
:intvector { -25200, 0 }
:bin { "" }
- } //Z#368
+ } //Z#376
, /* Etc/GMT+8 */ :array {
:intvector { }
:intvector { -28800, 0 }
:bin { "" }
- } //Z#369
+ } //Z#377
, /* Etc/GMT+9 */ :array {
:intvector { }
:intvector { -32400, 0 }
:bin { "" }
- } //Z#370
-, /* Etc/GMT-0 */ :int { 357 } //Z#371
+ } //Z#378
+, /* Etc/GMT-0 */ :int { 365 } //Z#379
, /* Etc/GMT-1 */ :array {
:intvector { }
:intvector { 3600, 0 }
:bin { "" }
- } //Z#372
+ } //Z#380
, /* Etc/GMT-10 */ :array {
:intvector { }
:intvector { 36000, 0 }
:bin { "" }
- } //Z#373
+ } //Z#381
, /* Etc/GMT-11 */ :array {
:intvector { }
:intvector { 39600, 0 }
:bin { "" }
- } //Z#374
+ } //Z#382
, /* Etc/GMT-12 */ :array {
:intvector { }
:intvector { 43200, 0 }
:bin { "" }
- } //Z#375
+ } //Z#383
, /* Etc/GMT-13 */ :array {
:intvector { }
:intvector { 46800, 0 }
:bin { "" }
- } //Z#376
+ } //Z#384
, /* Etc/GMT-14 */ :array {
:intvector { }
:intvector { 50400, 0 }
:bin { "" }
- } //Z#377
+ } //Z#385
, /* Etc/GMT-2 */ :array {
:intvector { }
:intvector { 7200, 0 }
:bin { "" }
- } //Z#378
+ } //Z#386
, /* Etc/GMT-3 */ :array {
:intvector { }
:intvector { 10800, 0 }
:bin { "" }
- } //Z#379
+ } //Z#387
, /* Etc/GMT-4 */ :array {
:intvector { }
:intvector { 14400, 0 }
:bin { "" }
- } //Z#380
+ } //Z#388
, /* Etc/GMT-5 */ :array {
:intvector { }
:intvector { 18000, 0 }
:bin { "" }
- } //Z#381
+ } //Z#389
, /* Etc/GMT-6 */ :array {
:intvector { }
:intvector { 21600, 0 }
:bin { "" }
- } //Z#382
+ } //Z#390
, /* Etc/GMT-7 */ :array {
:intvector { }
:intvector { 25200, 0 }
:bin { "" }
- } //Z#383
+ } //Z#391
, /* Etc/GMT-8 */ :array {
:intvector { }
:intvector { 28800, 0 }
:bin { "" }
- } //Z#384
+ } //Z#392
, /* Etc/GMT-9 */ :array {
:intvector { }
:intvector { 32400, 0 }
:bin { "" }
- } //Z#385
-, /* Etc/GMT0 */ :int { 357 } //Z#386
-, /* Etc/Greenwich */ :int { 357 } //Z#387
+ } //Z#393
+, /* Etc/GMT0 */ :int { 365 } //Z#394
+, /* Etc/Greenwich */ :int { 365 } //Z#395
, /* Etc/UCT */ :array {
:intvector { }
:intvector { 0, 0 }
:bin { "" }
- :intvector { 388, 557 }
- } //Z#388
+ :intvector { 396, 556 }
+ } //Z#396
, /* Etc/UTC */ :array {
:intvector { }
:intvector { 0, 0 }
:bin { "" }
- :intvector { 389, 390, 391, 571, 572, 576 }
- } //Z#389
-, /* Etc/Universal */ :int { 389 } //Z#390
-, /* Etc/Zulu */ :int { 389 } //Z#391
+ :intvector { 397, 398, 399, 570, 571, 575 }
+ } //Z#397
+, /* Etc/Universal */ :int { 397 } //Z#398
+, /* Etc/Zulu */ :int { 397 } //Z#399
, /* Europe/Amsterdam */ :array {
:intvector { -1693700372, -1680484772, -1663453172, -1650147572, -1633213172, -1617488372, -1601158772, -1586038772, -1569709172, -1554589172, -1538259572, -1523139572, -1507501172, -1490566772, -1470176372, -1459117172, -1443997172, -1427667572, -1406672372, -1396217972, -1376950772, -1364768372, -1345414772, -1333318772, -1313792372, -1301264372, -1282256372, -1269814772, -1250720372, -1238365172, -1219184372, -1206915572, -1186957172, -1175465972, -1156025972, -1143411572, -1124489972, -1111961972, -1092953972, -1080512372, -1061331572, -1049062772, -1029190772, -1025745572, -1017613200, -998259600, -986163600, -966723600, -954109200, -935022000, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -766623600, 220921200, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 1172, 0, 1172, 3600, 1200, 0, 1200, 3600, 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010302030203020504050405040504040504050405040504050405040504050405040504050405040504050405040504050405040504" }
"EU"
:intvector { 3600, 1996 }
- } //Z#392
+ } //Z#400
, /* Europe/Andorra */ :array {
:intvector { -733881600, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#393
+ } //Z#401
, /* Europe/Athens */ :array {
:intvector { -1686101632, -1182996000, -1178161200, -906861600, -904878000, -857257200, -844477200, -828237600, -812422800, -552362400, -541652400, 166485600, 186184800, 198028800, 213753600, 228873600, 244080000, 260323200, 275446800, 291798000, 307407600, 323388000, 338936400, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600 }
:bin { "0203020301000100020302030203020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"EU"
:intvector { 7200, 1996 }
- } //Z#394
-, /* Europe/Belfast */ :array {
- :intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -904518000, -896050800, -875487600, -864601200, -844038000, -832546800, -812588400, -798073200, -781052400, -772066800, -764805600, -748476000, -733356000, -719445600, -717030000, -706748400, -699487200, -687996000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600 }
- :intvector { -1521, 3600, 0, 0, 0, 3600, 0, 7200, 3600, 0 }
- :bin { "00010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102030203020302030203020102010203020102010201020102010201020102010201020102010201020102010201020102010201020102010201020401020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
- "EU"
- :intvector { 0, 1996 }
- } //Z#395
+ } //Z#402
+, /* Europe/Belfast */ :int { 423 } //Z#403
, /* Europe/Belgrade */ :array {
:intvector { -905824800, -857257200, -844556400, -828226800, -812502000, -796777200, -777942000, -766623600, 407199600, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0100010001000100000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 396, 411, 428, 430, 442 }
- } //Z#396
+ :intvector { 404, 422, 439, 441, 454 }
+ } //Z#404
, /* Europe/Berlin */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -776563200, -765936000, -761180400, -748479600, -733273200, -717634800, -714610800, -710380800, -701910000, -684975600, -670460400, -654130800, -639010800, 315529200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 3600, 7200 }
:bin { "0100010001000100010001000102010001000102010001000100000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#397
-, /* Europe/Bratislava */ :int { 423 } //Z#398
+ } //Z#405
+, /* Europe/Bratislava */ :int { 434 } //Z#406
, /* Europe/Brussels */ :array {
:intvector { -1740355200, -1693702800, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -1613826000, -1604278800, -1585530000, -1574038800, -1552266000, -1539997200, -1520557200, -1507510800, -1490576400, -1473642000, -1459126800, -1444006800, -1427677200, -1411952400, -1396227600, -1379293200, -1364778000, -1348448400, -1333328400, -1316394000, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1191189600, -1175464800, -1160344800, -1143410400, -1127685600, -1111960800, -1096840800, -1080511200, -1063576800, -1049061600, -1033336800, -1017612000, -1002492000, -986162400, -969228000, -950479200, -942012000, -934668000, -857257200, -844556400, -828226800, -812502000, -799293600, -798073200, -781052400, -766623600, -745455600, -733273200, 220921200, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 3600, 0, 3600, 3600 }
:bin { "0203020302030200010001000100010001000100010001000100010001000100010001000100010001000100010001000100010302030203030203020302020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"EU"
:intvector { 3600, 1996 }
- } //Z#399
+ } //Z#407
, /* Europe/Bucharest */ :array {
:intvector { -1213148664, -1187056800, -1175479200, -1159754400, -1144029600, -1127700000, -1111975200, -1096250400, -1080525600, -1064800800, -1049076000, -1033351200, -1017626400, -1001901600, -986176800, -970452000, -954727200, 296604000, 307486800, 323816400, 338940000, 354672000, 370396800, 386121600, 401846400, 417571200, 433296000, 449020800, 465350400, 481075200, 496800000, 512524800, 528249600, 543974400, 559699200, 575424000, 591148800, 606873600, 622598400, 638323200, 654652800, 662680800, 670370400, 686095200, 701820000, 717544800, 733269600, 748994400, 757375200, 764719200, 780440400, 796168800, 811890000 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100000100010001000001000100" }
"EU"
:intvector { 7200, 1996 }
- } //Z#400
+ } //Z#408
, /* Europe/Budapest */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1640998800, -1633212000, -1617577200, -1600466400, -1587250800, -1569708000, -1554332400, -906937200, -857257200, -844556400, -828226800, -812502000, -796777200, -778471200, -762487200, -749689200, -733359600, -717634800, -701910000, -686185200, -670460400, -654130800, -639010800, -621990000, -605660400, -492656400, -481168800, -461120400, -449632800, -428547600, -418269600, -397094400, -386809200, 323827200, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#401
+ } //Z#409
, /* Europe/Chisinau */ :array {
:intvector { -1637114100, -1213148664, -1187056800, -1175479200, -1159754400, -1144029600, -1127700000, -1111975200, -1096250400, -1080525600, -1064800800, -1049076000, -1033351200, -1017626400, -1001901600, -986176800, -970452000, -954727200, -927165600, -898138800, -857257200, -844556400, -828226800, -812502000, -800157600, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 631141200, 641941200, 670377600, 686102400, 694216800, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000 }
:intvector { 3600, 0, 3600, 3600, 6264, 0, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "0203040304030403040304030403040304030401000100010506050605060506050605060506050605060505030403030403040304030403" }
"EU"
:intvector { 7200, 1996 }
- :intvector { 402, 435 }
- } //Z#402
+ :intvector { 410, 446 }
+ } //Z#410
, /* Europe/Copenhagen */ :array {
:intvector { -1692496800, -1680490800, -935110800, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -769388400, -747010800, -736383600, -715215600, -706748400, -683161200, -675298800, 315529200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "01000100010001000100010001000100000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#403
+ } //Z#411
, /* Europe/Dublin */ :array {
:intvector { -1691962479, -1680471279, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1517011200, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -733359600, -719445600, -699490800, -684972000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600 }
:intvector { -1521, 3600, 0, 0, 0, 3600, 3600, 0 }
:bin { "000102010201020102010201010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201020301020102010201020102010201020102010201020102010201020102010201020102010201020102010201020102010201" }
"EU"
:intvector { 0, 1996 }
- :intvector { 356, 404 }
- } //Z#404
+ :intvector { 364, 412 }
+ } //Z#412
, /* Europe/Gibraltar */ :array {
:intvector { -1691964000, -1680472800, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -904518000, -896050800, -875487600, -864601200, -844038000, -832546800, -812588400, -798073200, -781052400, -772066800, -764805600, -748476000, -733356000, -719445600, -717030000, -706748400, -699487200, -687996000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0, 3600, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000102010201020102010201000100010201000100010001000100010001000100010001000304030403040304030403040304030403040304030403040304030403" }
"EU"
:intvector { 3600, 1996 }
- } //Z#405
+ } //Z#413
+, /* Europe/Guernsey */ :int { 423 } //Z#414
, /* Europe/Helsinki */ :array {
:intvector { -1535938792, -875671200, -859863600, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 7200, 0, 7200, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 7200, 1996 }
- :intvector { 406, 416 }
- } //Z#406
+ :intvector { 415, 427 }
+ } //Z#415
+, /* Europe/Isle_of_Man */ :int { 423 } //Z#416
, /* Europe/Istanbul */ :array {
:intvector { -1869875816, -1693706400, -1680490800, -1570413600, -1552186800, -1538359200, -1522551600, -1507514400, -1490583600, -1440208800, -1428030000, -1409709600, -1396494000, -931140000, -922762800, -917834400, -892436400, -875844000, -857358000, -781063200, -764737200, -744343200, -733806000, -716436000, -701924400, -684986400, -670474800, -654141600, -639025200, -621828000, -606970800, -590032800, -575434800, -235620000, -228279600, -177732000, -165726000, 10533600, 23835600, 41983200, 55285200, 74037600, 87339600, 107910000, 121219200, 133920000, 152676000, 165362400, 183502800, 202428000, 215557200, 228866400, 245797200, 260316000, 277246800, 308779200, 323827200, 340228800, 354672000, 371678400, 386121600, 403128000, 428446800, 433886400, 482792400, 496702800, 512524800, 528249600, 543974400, 559699200, 575424000, 591148800, 606873600, 622598400, 638323200, 654652800, 662680800, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001030203020302030203020100010001000100010001000001000100010001000100" }
"EU"
:intvector { 7200, 1996 }
- :intvector { 238, 407, 556 }
- } //Z#407
+ :intvector { 245, 417, 555 }
+ } //Z#417
+, /* Europe/Jersey */ :int { 423 } //Z#418
, /* Europe/Kaliningrad */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, -788922000, -778730400, -762663600, -757389600, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686102400, 701816400, 717537600, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "01000100010001000100010002030204050405040504050405040504050405040504050403020302030203020302" }
"Russia"
:intvector { 7200, 1996 }
- } //Z#408
+ } //Z#419
, /* Europe/Kiev */ :array {
:intvector { -1441159324, -1247536800, -892522800, -857257200, -844556400, -828226800, -825382800, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 631141200, 646786800, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "0204010001000405040504050405040504050405040504050404020302030203020302" }
"EU"
:intvector { 7200, 1996 }
- } //Z#409
+ } //Z#420
, /* Europe/Lisbon */ :array {
:intvector { -1830381808, -1689555600, -1677801600, -1667437200, -1647738000, -1635814800, -1616202000, -1604365200, -1584666000, -1572742800, -1553043600, -1541206800, -1521507600, -1442451600, -1426813200, -1379293200, -1364778000, -1348448400, -1333328400, -1316394000, -1301274000, -1284339600, -1269824400, -1221440400, -1206925200, -1191200400, -1175475600, -1127696400, -1111971600, -1096851600, -1080522000, -1063587600, -1049072400, -1033347600, -1017622800, -1002502800, -986173200, -969238800, -950490000, -942022800, -922669200, -906944400, -891133200, -877309200, -873684000, -864007200, -857955600, -845859600, -842839200, -831348000, -825901200, -814410000, -810784800, -799898400, -794451600, -782960400, -779335200, -768448800, -763002000, -749091600, -733366800, -717631200, -701906400, -686181600, -670456800, -654732000, -639007200, -591832800, -575503200, -559778400, -544053600, -528328800, -512604000, -496879200, -481154400, -465429600, -449704800, -433980000, -417650400, -401925600, -386200800, -370476000, -354751200, -339026400, -323301600, -307576800, -291852000, -276127200, -260402400, -244677600, -228348000, -212623200, -196898400, -181173600, -165448800, -149724000, -133999200, -118274400, 212544000, 228268800, 243993600, 260323200, 276048000, 291772800, 307501200, 323222400, 338950800, 354675600, 370400400, 386125200, 401850000, 417578400, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0, 3600, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001000100010001000100010001020100010201000102010001020100010001000100010001000100010001000100010001000100010001000100010001000100010003000100010001000100010001000100010001000100010001000100010001000103040304030403" }
"EU"
:intvector { 0, 1996 }
- :intvector { 410, 538 }
- } //Z#410
-, /* Europe/Ljubljana */ :int { 396 } //Z#411
+ :intvector { 421, 550 }
+ } //Z#421
+, /* Europe/Ljubljana */ :int { 404 } //Z#422
, /* Europe/London */ :array {
:intvector { -1691964000, -1680472800, -1664143200, -1650146400, -1633903200, -1617487200, -1601848800, -1586037600, -1570399200, -1552168800, -1538344800, -1522533600, -1507500000, -1490565600, -1473631200, -1460930400, -1442786400, -1428876000, -1410732000, -1396216800, -1379282400, -1364767200, -1348437600, -1333317600, -1315778400, -1301263200, -1284328800, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1189980000, -1175464800, -1159135200, -1143410400, -1126476000, -1111960800, -1095631200, -1080511200, -1063576800, -1049061600, -1032127200, -1017612000, -1001282400, -986162400, -969228000, -950479200, -942012000, -904518000, -896050800, -875487600, -864601200, -844038000, -832546800, -812588400, -798073200, -781052400, -772066800, -764805600, -748476000, -733356000, -719445600, -717030000, -706748400, -699487200, -687996000, -668037600, -654732000, -636588000, -622072800, -605743200, -590623200, -574293600, -558568800, -542239200, -527119200, -512604000, -496274400, -481154400, -464220000, -449704800, -432165600, -417650400, -401320800, -386200800, -369266400, -354751200, -337816800, -323301600, -306972000, -291852000, -276732000, -257983200, -245282400, -226533600, -213228000, -195084000, -182383200, -163634400, -150933600, -132184800, -119484000, -100735200, -88034400, -68680800, -59004000, -37242000, 57722400, 69818400, 89172000, 101268000, 120621600, 132717600, 152071200, 164167200, 183520800, 196221600, 214970400, 227671200, 246420000, 259120800, 278474400, 290570400, 309924000, 322020000, 341373600, 354675600, 372819600, 386125200, 404269200, 417574800, 435718800, 449024400, 467773200, 481078800, 499222800, 512528400, 530672400, 543978000, 562122000, 575427600, 593571600, 606877200, 625626000, 638326800, 657075600, 670381200, 688525200, 701830800, 719974800, 733280400, 751424400, 764730000, 782874000, 796179600, 814323600 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0 }
:bin { "01000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001020102010201020102010001000102010001000100010001000100010001000100010001000100010001000100010001000100010001000100010300010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 0, 1996 }
- :intvector { 412, 446, 447 }
- } //Z#412
+ :intvector { 403, 414, 416, 418, 423, 458, 459 }
+ } //Z#423
, /* Europe/Luxembourg */ :array {
:intvector { -2069713476, -1692496800, -1680483600, -1662343200, -1650157200, -1632006000, -1618700400, -1612659600, -1604278800, -1585519200, -1574038800, -1552258800, -1539997200, -1520550000, -1507510800, -1490572800, -1473642000, -1459119600, -1444006800, -1427673600, -1411866000, -1396224000, -1379293200, -1364774400, -1348448400, -1333324800, -1316394000, -1301270400, -1284339600, -1269813600, -1253484000, -1238364000, -1221429600, -1206914400, -1191189600, -1175464800, -1160344800, -1143410400, -1127685600, -1111960800, -1096840800, -1080511200, -1063576800, -1049061600, -1033336800, -1017612000, -1002492000, -986162400, -969228000, -950479200, -942012000, -935186400, -857257200, -844556400, -828226800, -812502000, -797986800, -781052400, -766623600, -745455600, -733273200, 220921200, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 3600, 0, 3600, 3600 }
:bin { "02030203020302000100010001000100010001000100010001000100010001000100010001000100010001000100010001000103020302030203020302020302030203020302030203020302030203020302030203020302030203020302030203020302" }
"EU"
:intvector { 3600, 1996 }
- } //Z#413
+ } //Z#424
, /* Europe/Madrid */ :array {
:intvector { -1661734800, -1648429200, -1631926800, -1616893200, -1601254800, -1585357200, -1442451600, -1427677200, -1379293200, -1364778000, -1348448400, -1333328400, -1316394000, -1301274000, -1284339600, -1269824400, -1029114000, -1017622800, -1002848400, -986173200, -969238800, -954118800, -940208400, -873079200, -862538400, -842839200, -828237600, -811389600, -796010400, -779940000, -765421200, -748490400, -733888800, -652327200, -639190800, 135122400, 150246000, 167176800, 181695600, 196812000, 212540400, 228866400, 243990000, 260402400, 276044400, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0, 3600, 3600 }
:bin { "01000100010001000100010001000100010001000100010201020102010201020304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
"EU"
:intvector { 3600, 1996 }
- } //Z#414
+ } //Z#425
, /* Europe/Malta */ :array {
:intvector { -1690851600, -1680483600, -1664758800, -1649034000, -1635123600, -1616979600, -1604278800, -1585530000, -1571014800, -1555290000, -932432400, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -766717200, -750898800, -733359600, -719456400, -701917200, -689209200, -670460400, -114051600, -103168800, -81997200, -71719200, -50547600, -40269600, -18493200, -8215200, 12956400, 23234400, 43801200, 54687600, 75855600, 86738400, 102380400, 118105200, 135730800, 148518000, 167187600, 180489600, 198637200, 211939200, 230086800, 243388800, 261536400, 274838400, 292986000, 306288000, 323312400, 338342400, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#415
-, /* Europe/Mariehamn */ :int { 406 } //Z#416
+ } //Z#426
+, /* Europe/Mariehamn */ :int { 415 } //Z#427
, /* Europe/Minsk */ :array {
:intvector { -1441158600, -1247536800, -899780400, -857257200, -844556400, -828226800, -812502000, -804650400, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 631141200, 670374000, 686102400, 701820000, 717544800, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "02040100010001040504050405040504050405040504050405040403020302030203020302" }
"Russia"
:intvector { 7200, 1996 }
- } //Z#417
+ } //Z#428
, /* Europe/Monaco */ :array {
:intvector { -1855958961, -1689814800, -1680397200, -1665363600, -1648342800, -1635123600, -1616893200, -1604278800, -1585443600, -1574038800, -1552266000, -1539997200, -1520557200, -1507510800, -1490576400, -1470618000, -1459126800, -1444006800, -1427677200, -1411952400, -1396227600, -1379293200, -1364778000, -1348448400, -1333328400, -1316394000, -1301274000, -1284339600, -1269824400, -1253494800, -1238374800, -1221440400, -1206925200, -1191200400, -1175475600, -1160355600, -1143421200, -1127696400, -1111971600, -1096851600, -1080522000, -1063587600, -1049072400, -1033347600, -1017622800, -1002502800, -986173200, -969238800, -950490000, -942012000, -904438800, -891136800, -877827600, -857257200, -844556400, -828226800, -812502000, -796266000, -781052400, -766623600, 196819200, 212540400, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0, 3600, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010201020102010201020304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
"EU"
:intvector { 3600, 1996 }
- } //Z#418
+ } //Z#429
, /* Europe/Moscow */ :array {
:intvector { -1688265000, -1656819048, -1641353448, -1627965048, -1618716648, -1596429048, -1593829848, -1589860800, -1542427200, -1539493200, -1525323600, -1522728000, -1491188400, -1247536800, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686102400, 695779200, 701812800, 717534000, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200 }
:intvector { 7200, 0, 7200, 3600, 9048, 0, 9048, 3600, 9048, 7200, 10800, 0, 10800, 3600, 10800, 7200 }
:bin { "020302040304060506070605000506050605060506050605060506050605060506050100050605060506050605" }
"Russia"
:intvector { 10800, 1996 }
- :intvector { 419, 574 }
- } //Z#419
-, /* Europe/Nicosia */ :int { 257 } //Z#420
+ :intvector { 430, 573 }
+ } //Z#430
+, /* Europe/Nicosia */ :int { 264 } //Z#431
, /* Europe/Oslo */ :array {
:intvector { -1691884800, -1680573600, -927511200, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -765327600, -340844400, -324514800, -308790000, -293065200, -277340400, -261615600, -245890800, -230166000, -214441200, -198716400, -182991600, -166662000, -147913200, -135212400, 315529200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000100000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 206, 299, 421 }
- } //Z#421
+ :intvector { 213, 306, 432 }
+ } //Z#432
, /* Europe/Paris */ :array {
:intvector { -1855958901, -1689814800, -1680397200, -1665363600, -1648342800, -1635123600, -1616893200, -1604278800, -1585443600, -1574038800, -1552266000, -1539997200, -1520557200, -1507510800, -1490576400, -1470618000, -1459126800, -1444006800, -1427677200, -1411952400, -1396227600, -1379293200, -1364778000, -1348448400, -1333328400, -1316394000, -1301274000, -1284339600, -1269824400, -1253494800, -1238374800, -1221440400, -1206925200, -1191200400, -1175475600, -1160355600, -1143421200, -1127696400, -1111971600, -1096851600, -1080522000, -1063587600, -1049072400, -1033347600, -1017622800, -1002502800, -986173200, -969238800, -950490000, -942012000, -932436000, -857257200, -844556400, -828226800, -812502000, -800071200, -796266000, -781052400, -766623600, 196819200, 212540400, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600, 0, 7200, 3600, 0, 3600, 3600 }
:bin { "000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000104030403040201020304030403040304030403040304030403040304030403040304030403040304030403040304030403" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 351, 422 }
- } //Z#422
+ :intvector { 359, 433 }
+ } //Z#433
, /* Europe/Prague */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -798073200, -780534000, -761180400, -746578800, -733359600, -716425200, -701910000, -684975600, -670460400, -654217200, -639010800, 283993200, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 398, 423 }
- } //Z#423
+ :intvector { 406, 434 }
+ } //Z#434
, /* Europe/Riga */ :array {
:intvector { -1632008184, -1618702584, -1601681784, -1597275384, -1377308184, -928029600, -899521200, -857257200, -844556400, -828226800, -812502000, -796777200, -795834000, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622598400, 638323200, 654652800, 670377600, 686102400, 701827200, 717552000, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
:intvector { 3600, 0, 3600, 3600, 5784, 0, 5784, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "03020302040601000100010006070607060706070607060706070607060504050405040504050405040504" }
"EU"
:intvector { 7200, 1996 }
- } //Z#424
+ } //Z#435
, /* Europe/Rome */ :array {
:intvector { -1690851600, -1680483600, -1664758800, -1649034000, -1635123600, -1616979600, -1604278800, -1585530000, -1571014800, -1555290000, -932432400, -857257200, -844556400, -828226800, -812502000, -804823200, -798080400, -781052400, -766717200, -750898800, -733359600, -719456400, -701917200, -689209200, -670460400, -114051600, -103168800, -81997200, -71719200, -50547600, -40269600, -18493200, -8215200, 12956400, 23234400, 43801200, 54687600, 75855600, 86738400, 107910000, 118188000, 138754800, 149637600, 170809200, 181090800, 202258800, 212540400, 233103600, 243990000, 265158000, 276044400, 296607600, 307494000, 315529200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0100010001000100010001000100010100010001000100010001000100010001000100010001000100010001000100010001000100000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 425, 427, 438 }
- } //Z#425
+ :intvector { 436, 438, 449 }
+ } //Z#436
, /* Europe/Samara */ :array {
- :intvector { -1593825636, -1247540400, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622594800, 638319600, 654649200, 670374000, 686102400, 687916800, 701809200, 717530400, 733269600, 748994400, 764719200, 780444000, 796168800, 811893600 }
+ :intvector { -1593825636, -1247540400, -1102305600, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622594800, 638319600, 654649200, 670374000, 686102400, 687916800, 701809200, 717530400, 733269600, 748994400, 764719200, 780444000, 796168800, 811893600 }
:intvector { 7200, 3600, 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
- :bin { "010304030403040304030403040304030403020102010001030403040304030403" }
+ :bin { "01030304030403040304030403040304030403020102010001030403040304030403" }
"Russia"
:intvector { 14400, 1996 }
- } //Z#426
-, /* Europe/San_Marino */ :int { 425 } //Z#427
-, /* Europe/Sarajevo */ :int { 396 } //Z#428
+ } //Z#437
+, /* Europe/San_Marino */ :int { 436 } //Z#438
+, /* Europe/Sarajevo */ :int { 404 } //Z#439
, /* Europe/Simferopol */ :array {
:intvector { -1441160160, -1247536800, -888894000, -857257200, -844556400, -828226800, -812502000, -811648800, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 631141200, 646786800, 701820000, 717541200, 733269600, 748990800, 764719200, 767739600, 780436800, 796165200, 811886400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "02040100010001040504050405040504050405040504050405040402030203020305040504" }
"EU"
:intvector { 7200, 1996 }
- } //Z#429
-, /* Europe/Skopje */ :int { 396 } //Z#430
+ } //Z#440
+, /* Europe/Skopje */ :int { 404 } //Z#441
, /* Europe/Sofia */ :array {
:intvector { -857257200, -844556400, -828226800, -812502000, -796777200, -781048800, 291762000, 307576800, 323816400, 339026400, 355266000, 370393200, 386715600, 401846400, 417571200, 433296000, 449020800, 465350400, 481075200, 496800000, 512524800, 528249600, 543974400, 559699200, 575424000, 591148800, 606873600, 622598400, 638323200, 654652800, 662680800, 670370400, 686091600, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796168800, 811890000 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600 }
:bin { "0001000100020302030203020302030203020302030203020302030203020203020302030203020302" }
"EU"
:intvector { 7200, 1996 }
- } //Z#431
+ } //Z#442
, /* Europe/Stockholm */ :array {
:intvector { -1692496800, -1680483600, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "01000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#432
+ } //Z#443
, /* Europe/Tallinn */ :array {
:intvector { -1638322740, -1632006000, -1618700400, -1593824400, -1535938740, -927943200, -892954800, -857257200, -844556400, -828226800, -812502000, -797652000, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622598400, 638323200, 654652800, 670377600, 686102400, 701827200, 717552000, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
:intvector { 3600, 0, 3600, 3600, 5940, 0, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "000100020305010001000105060506050605060506050605060506050403040304030403040304030403" }
"EU"
:intvector { 7200, 1996 }
- } //Z#433
+ } //Z#444
, /* Europe/Tirane */ :array {
:intvector { -1767230360, -932346000, -857257200, -844556400, -843519600, 136854000, 149896800, 168130800, 181432800, 199839600, 213141600, 231894000, 244591200, 263257200, 276040800, 294706800, 307490400, 326156400, 339458400, 357087600, 370389600, 389142000, 402444000, 419468400, 433807200, 449622000, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "00010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#434
-, /* Europe/Tiraspol */ :int { 402 } //Z#435
+ } //Z#445
+, /* Europe/Tiraspol */ :int { 410 } //Z#446
, /* Europe/Uzhgorod */ :array {
:intvector { -938905200, -857257200, -844556400, -828226800, -812502000, -796874400, -794714400, -773456400, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 631141200, 646786800, 670384800, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "01000100010100040504050405040504050405040504050405040400020302030203020302" }
"EU"
:intvector { 7200, 1996 }
- } //Z#436
+ } //Z#447
, /* Europe/Vaduz */ :array {
:intvector { 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#437
-, /* Europe/Vatican */ :int { 425 } //Z#438
+ } //Z#448
+, /* Europe/Vatican */ :int { 436 } //Z#449
, /* Europe/Vienna */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -1577926800, -1569711600, -1555801200, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, -781052400, -780188400, -757386000, -748479600, -733359600, -717634800, -701910000, -684975600, -670460400, 323823600, 338940000, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0100010001000001000100010001000100000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#439
+ } //Z#450
, /* Europe/Vilnius */ :array {
:intvector { -1672536240, -1585100136, -1561251600, -1553565600, -928198800, -900126000, -857257200, -844556400, -828226800, -812502000, -802144800, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686102400, 701827200, 717552000, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
:intvector { 3600, 0, 3600, 3600, 5736, 0, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "0200030005010001000105060506050605060506050605060506050605060504030403040304030403" }
"EU"
:intvector { 7200, 1996 }
- } //Z#440
+ } //Z#451
+, /* Europe/Volgograd */ :array {
+ :intvector { -1577761060, -1411873200, -1247540400, -256881600, 354916800, 370724400, 386452800, 402260400, 417988800, 433796400, 449611200, 465343200, 481068000, 496792800, 512517600, 528242400, 543967200, 559692000, 575416800, 591141600, 606866400, 622594800, 638319600, 654649200, 670374000, 701820000, 717534000, 733273200, 748998000, 764722800, 780447600, 796172400, 811897200 }
+ :intvector { 10800, 0, 10800, 3600, 14400, 0, 14400, 3600 }
+ :bin { "000002020302030203020302030203020302030201000100020100010001000100" }
+ "Russia"
+ :intvector { 10800, 1996 }
+ } //Z#452
, /* Europe/Warsaw */ :array {
- :intvector { -1717032240, -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -1600473600, -1587168000, -1501725600, -931734000, -857257200, -844556400, -828226800, -812502000, -796874400, -778726800, -762660000, -748486800, -735876000, -715222800, -701920800, -684982800, -670471200, -397094400, -386812800, -371088000, -355363200, -334195200, -323308800, -307584000, -291859200, -271296000, -260409600, -239846400, -228960000, -208396800, -197510400, -176342400, -166060800, 228873600, 243993600, 260323200, 276048000, 291772800, 307497600, 323827200, 338947200, 354672000, 370396800, 386121600, 401846400, 417571200, 433296000, 449020800, 465350400, 481075200, 496800000, 512524800, 528249600, 543974400, 559699200, 575424000, 591148800, 606873600, 622598400, 638323200, 654652800, 670377600, 686102400, 701827200, 717552000, 733276800, 749001600, 764726400, 780451200, 796176000, 811900800 }
+ :intvector { -1717032240, -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -1600473600, -1587168000, -1501725600, -931734000, -857257200, -844556400, -828226800, -812502000, -796874400, -796608000, -778726800, -762660000, -748486800, -733273200, -715215600, -701910000, -684975600, -670460400, -654130800, -639010800, -397094400, -386812800, -371088000, -355363200, -334195200, -323308800, -307584000, -291859200, -271296000, -260409600, -239846400, -228960000, -208396800, -197510400, -176342400, -166060800, 220921200, 228873600, 243993600, 260323200, 276048000, 291772800, 307497600, 323827200, 338947200, 354672000, 370396800, 386121600, 401846400, 417571200, 433296000, 449020800, 465350400, 481075200, 496800000, 512524800, 528249600, 543974400, 559699200, 567990000, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600 }
- :bin { "000100010001020302000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ :bin { "0001000100010203020001000100010100010001000100010001000100010001000100010001000100010000010001000100010001000100010001000100010001000001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- :intvector { 441, 537 }
- } //Z#441
-, /* Europe/Zagreb */ :int { 396 } //Z#442
+ :intvector { 453, 549 }
+ } //Z#453
+, /* Europe/Zagreb */ :int { 404 } //Z#454
, /* Europe/Zaporozhye */ :array {
:intvector { -1441160400, -1247536800, -894769200, -857257200, -844556400, -828226800, -826419600, 354920400, 370728000, 386456400, 402264000, 417992400, 433800000, 449614800, 465346800, 481071600, 496796400, 512521200, 528246000, 543970800, 559695600, 575420400, 591145200, 606870000, 622594800, 638319600, 654649200, 670374000, 686091600, 701820000, 717541200, 733269600, 748990800, 764719200, 780440400, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600, 7200, 0, 7200, 3600, 10800, 0, 10800, 3600 }
:bin { "02040100010004050405040504050405040504050405040504050403020302030203020302" }
"EU"
:intvector { 7200, 1996 }
- } //Z#443
+ } //Z#455
, /* Europe/Zurich */ :array {
:intvector { -920336400, -915242400, -904518000, -891223200, -873068400, -859773600, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 3600, 1996 }
- } //Z#444
+ } //Z#456
, /* Factory */ :array {
:intvector { }
:intvector { 0, 0 }
:bin { "" }
- } //Z#445
-, /* GB */ :int { 412 } //Z#446
-, /* GB-Eire */ :int { 412 } //Z#447
-, /* GMT */ :int { 357 } //Z#448
-, /* GMT+0 */ :int { 357 } //Z#449
-, /* GMT-0 */ :int { 357 } //Z#450
-, /* GMT0 */ :int { 357 } //Z#451
-, /* Greenwich */ :int { 357 } //Z#452
-, /* HST */ :int { 510 } //Z#453
-, /* Hongkong */ :int { 235 } //Z#454
-, /* IET */ :int { 125 } //Z#455
-, /* IST */ :int { 222 } //Z#456
-, /* Iceland */ :int { 301 } //Z#457
+ } //Z#457
+, /* GB */ :int { 423 } //Z#458
+, /* GB-Eire */ :int { 423 } //Z#459
+, /* GMT */ :int { 365 } //Z#460
+, /* GMT+0 */ :int { 365 } //Z#461
+, /* GMT-0 */ :int { 365 } //Z#462
+, /* GMT0 */ :int { 365 } //Z#463
+, /* Greenwich */ :int { 365 } //Z#464
+, /* HST */ :int { 522 } //Z#465
+, /* Hongkong */ :int { 242 } //Z#466
+, /* IET */ :int { 124 } //Z#467
+, /* IST */ :int { 229 } //Z#468
+, /* Iceland */ :int { 308 } //Z#469
, /* Indian/Antananarivo */ :array {
:intvector { -1846293004, -499924800, -492062400 }
:intvector { 10800, 0, 10800, 3600 }
:bin { "000100" }
- } //Z#458
+ } //Z#470
, /* Indian/Chagos */ :array {
:intvector { -1988167780, 820436400 }
:intvector { 18000, 0, 21600, 0 }
:bin { "0001" }
- } //Z#459
+ } //Z#471
, /* Indian/Christmas */ :array {
:intvector { }
:intvector { 25200, 0 }
:bin { "" }
- } //Z#460
+ } //Z#472
, /* Indian/Cocos */ :array {
:intvector { }
:intvector { 23400, 0 }
:bin { "" }
- } //Z#461
+ } //Z#473
, /* Indian/Comoro */ :array {
:intvector { -1846291984 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#462
+ } //Z#474
, /* Indian/Kerguelen */ :array {
:intvector { -631152000 }
:intvector { 18000, 0 }
:bin { "00" }
- } //Z#463
+ } //Z#475
, /* Indian/Mahe */ :array {
:intvector { -2006653308 }
:intvector { 14400, 0 }
:bin { "00" }
- } //Z#464
+ } //Z#476
, /* Indian/Maldives */ :array {
:intvector { -315636840 }
:intvector { 18000, 0 }
:bin { "00" }
- } //Z#465
+ } //Z#477
, /* Indian/Mauritius */ :array {
:intvector { -1988164200 }
:intvector { 14400, 0 }
:bin { "00" }
- } //Z#466
+ } //Z#478
, /* Indian/Mayotte */ :array {
:intvector { -1846292456 }
:intvector { 10800, 0 }
:bin { "00" }
- } //Z#467
+ } //Z#479
, /* Indian/Reunion */ :array {
:intvector { -1848886912 }
:intvector { 14400, 0 }
:bin { "00" }
- } //Z#468
-, /* Iran */ :int { 280 } //Z#469
-, /* Israel */ :int { 241 } //Z#470
-, /* JST */ :int { 284 } //Z#471
-, /* Jamaica */ :int { 128 } //Z#472
-, /* Japan */ :int { 284 } //Z#473
-, /* Kwajalein */ :int { 514 } //Z#474
-, /* Libya */ :int { 54 } //Z#475
+ } //Z#480
+, /* Iran */ :int { 287 } //Z#481
+, /* Israel */ :int { 248 } //Z#482
+, /* JST */ :int { 291 } //Z#483
+, /* Jamaica */ :int { 133 } //Z#484
+, /* Japan */ :int { 291 } //Z#485
+, /* Kwajalein */ :int { 526 } //Z#486
+, /* Libya */ :int { 54 } //Z#487
, /* MET */ :array {
:intvector { -1693706400, -1680483600, -1663455600, -1650150000, -1632006000, -1618700400, -938905200, -857257200, -844556400, -828226800, -812502000, -796777200, 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 3600, 0, 3600, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
"C-Eur"
:intvector { 3600, 1996 }
- } //Z#476
-, /* MIT */ :int { 497 } //Z#477
-, /* MST */ :int { 161 } //Z#478
-, /* MST7MDT */ :int { 100 } //Z#479
-, /* Mexico/BajaNorte */ :int { 187 } //Z#480
-, /* Mexico/BajaSur */ :int { 142 } //Z#481
-, /* Mexico/General */ :int { 146 } //Z#482
-, /* Mideast/Riyadh87 */ :int { 268 } //Z#483
-, /* Mideast/Riyadh88 */ :int { 269 } //Z#484
-, /* Mideast/Riyadh89 */ :int { 270 } //Z#485
-, /* NET */ :int { 293 } //Z#486
-, /* NST */ :int { 498 } //Z#487
-, /* NZ */ :int { 498 } //Z#488
-, /* NZ-CHAT */ :int { 499 } //Z#489
-, /* Navajo */ :int { 100 } //Z#490
-, /* PLT */ :int { 244 } //Z#491
-, /* PNT */ :int { 161 } //Z#492
-, /* PRC */ :int { 275 } //Z#493
-, /* PRT */ :int { 166 } //Z#494
-, /* PST */ :int { 136 } //Z#495
-, /* PST8PDT */ :int { 136 } //Z#496
+ } //Z#488
+, /* MIT */ :int { 509 } //Z#489
+, /* MST */ :array {
+ :intvector { }
+ :intvector { -25200, 0 }
+ :bin { "" }
+ } //Z#490
+, /* MST7MDT */ :array {
+ :intvector { -1633273200, -1615132800, -1601823600, -1583683200, -880210800, -769395600, -765388800, -84380400, -68659200, -52930800, -37209600, -21481200, -5760000, 9968400, 25689600, 41418000, 57744000, 73472400, 89193600, 104922000, 120643200, 126694800, 152092800, 162378000, 183542400, 199270800, 215596800, 230720400, 247046400, 262774800, 278496000, 294224400, 309945600, 325674000, 341395200, 357123600, 372844800, 388573200, 404899200, 420022800, 436348800, 452077200, 467798400, 483526800, 499248000, 514976400, 530697600, 544611600, 562147200, 576061200, 594201600, 607510800, 625651200, 638960400, 657100800, 671014800, 688550400, 702464400, 720000000, 733914000, 752054400, 765363600, 783504000, 796813200, 814953600, 828867600, 846403200, 860317200, 877852800, 891766800, 909302400, 923216400, 941356800, 954666000, 972806400, 986115600, 1004256000, 1018170000, 1035705600, 1049619600, 1067155200, 1081069200, 1099209600, 1112518800, 1130659200, 1143968400, 1162108800 }
+ :intvector { -25200, 0, -25200, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "US"
+ :intvector { -25200, 2007 }
+ } //Z#491
+, /* Mexico/BajaNorte */ :int { 194 } //Z#492
+, /* Mexico/BajaSur */ :int { 147 } //Z#493
+, /* Mexico/General */ :int { 151 } //Z#494
+, /* Mideast/Riyadh87 */ :int { 275 } //Z#495
+, /* Mideast/Riyadh88 */ :int { 276 } //Z#496
+, /* Mideast/Riyadh89 */ :int { 277 } //Z#497
+, /* NET */ :int { 300 } //Z#498
+, /* NST */ :int { 510 } //Z#499
+, /* NZ */ :int { 510 } //Z#500
+, /* NZ-CHAT */ :int { 511 } //Z#501
+, /* Navajo */ :int { 103 } //Z#502
+, /* PLT */ :int { 251 } //Z#503
+, /* PNT */ :int { 168 } //Z#504
+, /* PRC */ :int { 282 } //Z#505
+, /* PRT */ :int { 173 } //Z#506
+, /* PST */ :int { 141 } //Z#507
+, /* PST8PDT */ :array {
+ :intvector { -1633269600, -1615129200, -1601820000, -1583679600, -880207200, -769395600, -765385200, -84376800, -68655600, -52927200, -37206000, -21477600, -5756400, 9972000, 25693200, 41421600, 57747600, 73476000, 89197200, 104925600, 120646800, 126698400, 152096400, 162381600, 183546000, 199274400, 215600400, 230724000, 247050000, 262778400, 278499600, 294228000, 309949200, 325677600, 341398800, 357127200, 372848400, 388576800, 404902800, 420026400, 436352400, 452080800, 467802000, 483530400, 499251600, 514980000, 530701200, 544615200, 562150800, 576064800, 594205200, 607514400, 625654800, 638964000, 657104400, 671018400, 688554000, 702468000, 720003600, 733917600, 752058000, 765367200, 783507600, 796816800, 814957200, 828871200, 846406800, 860320800, 877856400, 891770400, 909306000, 923220000, 941360400, 954669600, 972810000, 986119200, 1004259600, 1018173600, 1035709200, 1049623200, 1067158800, 1081072800, 1099213200, 1112522400, 1130662800, 1143972000, 1162112400 }
+ :intvector { -28800, 0, -28800, 3600 }
+ :bin { "010001000101000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100010001000100" }
+ "US"
+ :intvector { -28800, 2007 }
+ } //Z#508
, /* Pacific/Apia */ :array {
:intvector { -1861878784, -631110600 }
:intvector { -41400, 0, -39600, 0 }
:bin { "0001" }
- :intvector { 477, 497 }
- } //Z#497
+ :intvector { 489, 509 }
+ } //Z#509
, /* Pacific/Auckland */ :array {
:intvector { -1330335000, -1320057000, -1300699800, -1287396000, -1269250200, -1255946400, -1237800600, -1224496800, -1206351000, -1192442400, -1174901400, -1160992800, -1143451800, -1125914400, -1112607000, -1094464800, -1081157400, -1063015200, -1049707800, -1031565600, -1018258200, -1000116000, -986808600, -968061600, -955359000, -936612000, -923304600, -757425600, 152632800, 162309600, 183477600, 194968800, 215532000, 226418400, 246981600, 257868000, 278431200, 289317600, 309880800, 320767200, 341330400, 352216800, 372780000, 384271200, 404834400, 415720800, 436284000, 447170400, 467733600, 478620000, 499183200, 510069600, 530632800, 541519200, 562082400, 573573600, 594136800, 605023200, 623772000 }
:intvector { 41400, 0, 41400, 1800, 41400, 3600, 43200, 0, 43200, 3600 }
:bin { "0200010001000100010001000100010001000100010001000100010304030403040304030403040304030403040304030403040304030403040304" }
"NZ"
:intvector { 43200, 1990 }
- :intvector { 487, 488, 498 }
- } //Z#498
+ :intvector { 499, 500, 510 }
+ } //Z#510
, /* Pacific/Chatham */ :array {
:intvector { -410271228, 152632800, 162309600, 183477600, 194968800, 215532000, 226418400, 246981600, 257868000, 278431200, 289317600, 309880800, 320767200, 341330400, 352216800, 372780000, 384271200, 404834400, 415720800, 436284000, 447170400, 467733600, 478620000, 499183200, 510069600, 530632800, 541519200, 562082400, 573573600, 594136800, 605023200, 623772000 }
:intvector { 45900, 0, 45900, 3600 }
:bin { "0001000100010001000100010001000100010001000100010001000100010001" }
"Chatham"
:intvector { 45900, 1990 }
- :intvector { 489, 499 }
- } //Z#499
+ :intvector { 501, 511 }
+ } //Z#511
, /* Pacific/Easter */ :array {
- :intvector { -1178124152, -101937600, -88635600, -69883200, -57186000, -38433600, -25736400, -6984000, 6318000, 24465600, 37767600, 55915200, 69217200, 87969600, 100666800, 119419200, 132116400, 150868800, 163566000, 182318400, 195620400, 213768000, 227070000, 245217600, 258519600, 277272000, 289969200, 308721600, 321418800, 340171200, 353473200, 371620800, 384922800, 384937200, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 542775600, 560923200, 574225200, 592372800, 605674800, 624427200, 637124400, 655876800, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 857876400, 876628800, 889930800, 906868800, 923194800, 939528000 }
+ :intvector { -1178124152, -101937600, -88635600, -69883200, -57186000, -38433600, -25736400, -6984000, 6318000, 24465600, 37767600, 55915200, 69217200, 87969600, 100666800, 119419200, 132116400, 150868800, 163566000, 182318400, 195620400, 213768000, 227070000, 245217600, 258519600, 277272000, 289969200, 308721600, 321418800, 340171200, 353473200, 371620800, 384922800, 403070400, 416372400, 434520000, 447822000, 466574400, 479271600, 498024000, 510721200, 529473600, 542775600, 560923200, 574225200, 592372800, 605674800, 624427200, 637124400, 655876800, 668574000, 687326400, 700628400, 718776000, 732078000, 750225600, 763527600, 781675200, 794977200, 813729600, 826426800, 845179200, 857876400, 876628800, 889930800, 906868800, 923194800, 939528000 }
:intvector { -25200, 0, -25200, 3600, -21600, 0, -21600, 3600 }
- :bin { "000100010001000100010001000100010001000100010001000100010001000100020302030203020302030203020302030203020302030203020302030203020302030203" }
+ :bin { "0001000100010001000100010001000100010001000100010001000100010001020302030203020302030203020302030203020302030203020302030203020302030203" }
"Chile"
:intvector { -21600, 2000 }
- :intvector { 348, 500 }
- } //Z#500
+ :intvector { 356, 512 }
+ } //Z#512
, /* Pacific/Efate */ :array {
:intvector { -1829387596, 433256400, 448977600, 467298000, 480427200, 496760400, 511876800, 528210000, 543931200, 559659600, 575380800, 591109200, 606830400, 622558800, 638280000, 654008400, 669729600, 686062800, 696340800, 719931600, 727790400 }
:intvector { 39600, 0, 39600, 3600 }
:bin { "000100010001000100010001000100010001000100" }
- } //Z#501
+ } //Z#513
, /* Pacific/Enderbury */ :array {
:intvector { 307627200, 788958000 }
:intvector { -39600, 0, 46800, 0 }
:bin { "0001" }
- } //Z#502
+ } //Z#514
, /* Pacific/Fakaofo */ :array {
:intvector { }
:intvector { -36000, 0 }
:bin { "" }
- } //Z#503
+ } //Z#515
, /* Pacific/Fiji */ :array {
:intvector { -1709985220, 909842400, 920124000, 941896800, 951573600 }
:intvector { 43200, 0, 43200, 3600 }
:bin { "0001000100" }
- } //Z#504
+ } //Z#516
, /* Pacific/Funafuti */ :array {
:intvector { }
:intvector { 43200, 0 }
:bin { "" }
- } //Z#505
+ } //Z#517
, /* Pacific/Galapagos */ :array {
:intvector { -1230746496, 504939600 }
:intvector { -21600, 0, -18000, 0 }
:bin { "0100" }
- } //Z#506
+ } //Z#518
, /* Pacific/Gambier */ :array {
:intvector { -1806678012 }
:intvector { -32400, 0 }
:bin { "00" }
- :intvector { 507, 554 }
- } //Z#507
+ } //Z#519
, /* Pacific/Guadalcanal */ :array {
:intvector { -1806748788 }
:intvector { 39600, 0 }
:bin { "00" }
- :intvector { 508, 541 }
- } //Z#508
+ :intvector { 520, 553 }
+ } //Z#520
, /* Pacific/Guam */ :array {
:intvector { 977493600 }
:intvector { 36000, 0 }
:bin { "00" }
- } //Z#509
+ } //Z#521
, /* Pacific/Honolulu */ :array {
:intvector { -1157283000, -1155472200, -880198200, -769395600, -765376200, -712150200 }
:intvector { -37800, 0, -37800, 3600, -36000, 0 }
:bin { "010001010002" }
- :intvector { 453, 510, 549, 564 }
- } //Z#510
+ :intvector { 465, 522, 563 }
+ } //Z#522
, /* Pacific/Johnston */ :array {
:intvector { }
:intvector { -36000, 0 }
:bin { "" }
- } //Z#511
+ } //Z#523
, /* Pacific/Kiritimati */ :array {
:intvector { 307622400, 788954400 }
:intvector { -36000, 0, 50400, 0 }
:bin { "0001" }
- } //Z#512
+ } //Z#524
, /* Pacific/Kosrae */ :array {
:intvector { -7988400, 915105600 }
:intvector { 39600, 0, 43200, 0 }
:bin { "0100" }
- } //Z#513
+ } //Z#525
, /* Pacific/Kwajalein */ :array {
:intvector { -7988400, 745848000 }
:intvector { -43200, 0, 43200, 0 }
:bin { "0001" }
- :intvector { 474, 514 }
- } //Z#514
+ :intvector { 486, 526 }
+ } //Z#526
, /* Pacific/Majuro */ :array {
:intvector { -7988400 }
:intvector { 43200, 0 }
:bin { "00" }
- } //Z#515
+ } //Z#527
, /* Pacific/Marquesas */ :array {
:intvector { -1806676920 }
:intvector { -34200, 0 }
:bin { "00" }
- } //Z#516
+ } //Z#528
, /* Pacific/Midway */ :array {
:intvector { -428504400, -420645600, -86878800, 439038000 }
:intvector { -39600, 0, -39600, 3600 }
:bin { "01000000" }
- } //Z#517
+ } //Z#529
, /* Pacific/Nauru */ :array {
:intvector { -1545131260, -877347000, -800960400, 294323400 }
:intvector { 32400, 0, 41400, 0, 43200, 0 }
:bin { "01000102" }
- } //Z#518
+ } //Z#530
, /* Pacific/Niue */ :array {
:intvector { -599575200, 276089400 }
:intvector { -41400, 0, -39600, 0 }
:bin { "0001" }
- } //Z#519
+ } //Z#531
, /* Pacific/Norfolk */ :array {
:intvector { -599656320 }
:intvector { 41400, 0 }
:bin { "00" }
- } //Z#520
+ } //Z#532
, /* Pacific/Noumea */ :array {
:intvector { -1829387148, 250002000, 257342400, 281451600, 288878400, 849366000, 857228400 }
:intvector { 39600, 0, 39600, 3600 }
:bin { "00010001000100" }
- } //Z#521
+ } //Z#533
, /* Pacific/Pago_Pago */ :array {
:intvector { -1861879032, -631110600, -86878800, 439038000 }
:intvector { -41400, 0, -39600, 0 }
:bin { "00010101" }
- :intvector { 522, 529, 570 }
- } //Z#522
+ :intvector { 534, 541, 569 }
+ } //Z#534
, /* Pacific/Palau */ :array {
:intvector { }
:intvector { 32400, 0 }
:bin { "" }
- } //Z#523
+ } //Z#535
, /* Pacific/Pitcairn */ :array {
:intvector { 893665800 }
:intvector { -28800, 0 }
:bin { "00" }
- :intvector { 524, 552 }
- } //Z#524
+ } //Z#536
, /* Pacific/Ponape */ :array {
:intvector { }
:intvector { 39600, 0 }
:bin { "" }
- } //Z#525
+ } //Z#537
, /* Pacific/Port_Moresby */ :array {
:intvector { }
:intvector { 36000, 0 }
:bin { "" }
- } //Z#526
+ } //Z#538
, /* Pacific/Rarotonga */ :array {
:intvector { 279714600, 289387800, 309952800, 320837400, 341402400, 352287000, 372852000, 384341400, 404906400, 415791000, 436356000, 447240600, 467805600, 478690200, 499255200, 510139800, 530704800, 541589400, 562154400, 573643800, 594208800, 605093400, 625658400, 636543000, 657108000, 667992600 }
:intvector { -36000, 0, -36000, 1800 }
:bin { "0100010001000100010001000100010001000100010001000100" }
- } //Z#527
+ } //Z#539
, /* Pacific/Saipan */ :array {
:intvector { -7981200, 977493600 }
:intvector { 36000, 0 }
:bin { "0000" }
- } //Z#528
-, /* Pacific/Samoa */ :int { 522 } //Z#529
+ } //Z#540
+, /* Pacific/Samoa */ :int { 534 } //Z#541
, /* Pacific/Tahiti */ :array {
:intvector { -1806674504 }
:intvector { -36000, 0 }
:bin { "00" }
- } //Z#530
+ } //Z#542
, /* Pacific/Tarawa */ :array {
:intvector { }
:intvector { 43200, 0 }
:bin { "" }
- } //Z#531
+ } //Z#543
, /* Pacific/Tongatapu */ :array {
:intvector { -915193200, 939214800, 953384400, 973342800, 980596800, 1004792400, 1012046400 }
:intvector { 46800, 0, 46800, 3600 }
:bin { "00010001000100" }
- } //Z#532
+ } //Z#544
, /* Pacific/Truk */ :array {
:intvector { }
:intvector { 36000, 0 }
:bin { "" }
- } //Z#533
+ :intvector { 545, 548 }
+ } //Z#545
, /* Pacific/Wake */ :array {
:intvector { }
:intvector { 43200, 0 }
:bin { "" }
- } //Z#534
+ } //Z#546
, /* Pacific/Wallis */ :array {
:intvector { }
:intvector { 43200, 0 }
:bin { "" }
- } //Z#535
-, /* Pacific/Yap */ :array {
- :intvector { -7981200 }
- :intvector { 36000, 0 }
- :bin { "00" }
- } //Z#536
-, /* Poland */ :int { 441 } //Z#537
-, /* Portugal */ :int { 410 } //Z#538
-, /* ROC */ :int { 277 } //Z#539
-, /* ROK */ :int { 274 } //Z#540
-, /* SST */ :int { 508 } //Z#541
-, /* Singapore */ :int { 276 } //Z#542
-, /* SystemV/AST4 */ :int { 166 } //Z#543
-, /* SystemV/AST4ADT */ :int { 118 } //Z#544
-, /* SystemV/CST6 */ :int { 170 } //Z#545
-, /* SystemV/CST6CDT */ :int { 91 } //Z#546
-, /* SystemV/EST5 */ :int { 125 } //Z#547
-, /* SystemV/EST5EDT */ :int { 153 } //Z#548
-, /* SystemV/HST10 */ :int { 510 } //Z#549
-, /* SystemV/MST7 */ :int { 161 } //Z#550
-, /* SystemV/MST7MDT */ :int { 100 } //Z#551
-, /* SystemV/PST8 */ :int { 524 } //Z#552
-, /* SystemV/PST8PDT */ :int { 136 } //Z#553
-, /* SystemV/YST9 */ :int { 507 } //Z#554
-, /* SystemV/YST9YDT */ :int { 58 } //Z#555
-, /* Turkey */ :int { 407 } //Z#556
-, /* UCT */ :int { 388 } //Z#557
-, /* US/Alaska */ :int { 58 } //Z#558
-, /* US/Aleutian */ :int { 57 } //Z#559
-, /* US/Arizona */ :int { 161 } //Z#560
-, /* US/Central */ :int { 91 } //Z#561
-, /* US/East-Indiana */ :int { 125 } //Z#562
-, /* US/Eastern */ :int { 153 } //Z#563
-, /* US/Hawaii */ :int { 510 } //Z#564
-, /* US/Indiana-Starke */ :int { 122 } //Z#565
-, /* US/Michigan */ :int { 101 } //Z#566
-, /* US/Mountain */ :int { 100 } //Z#567
-, /* US/Pacific */ :int { 136 } //Z#568
-, /* US/Pacific-New */ :int { 136 } //Z#569
-, /* US/Samoa */ :int { 522 } //Z#570
-, /* UTC */ :int { 389 } //Z#571
-, /* Universal */ :int { 389 } //Z#572
-, /* VST */ :int { 271 } //Z#573
-, /* W-SU */ :int { 419 } //Z#574
+ } //Z#547
+, /* Pacific/Yap */ :int { 545 } //Z#548
+, /* Poland */ :int { 453 } //Z#549
+, /* Portugal */ :int { 421 } //Z#550
+, /* ROC */ :int { 284 } //Z#551
+, /* ROK */ :int { 281 } //Z#552
+, /* SST */ :int { 520 } //Z#553
+, /* Singapore */ :int { 283 } //Z#554
+, /* Turkey */ :int { 417 } //Z#555
+, /* UCT */ :int { 396 } //Z#556
+, /* US/Alaska */ :int { 58 } //Z#557
+, /* US/Aleutian */ :int { 57 } //Z#558
+, /* US/Arizona */ :int { 168 } //Z#559
+, /* US/Central */ :int { 93 } //Z#560
+, /* US/East-Indiana */ :int { 124 } //Z#561
+, /* US/Eastern */ :int { 159 } //Z#562
+, /* US/Hawaii */ :int { 522 } //Z#563
+, /* US/Indiana-Starke */ :int { 125 } //Z#564
+, /* US/Michigan */ :int { 104 } //Z#565
+, /* US/Mountain */ :int { 103 } //Z#566
+, /* US/Pacific */ :int { 141 } //Z#567
+, /* US/Pacific-New */ :int { 141 } //Z#568
+, /* US/Samoa */ :int { 534 } //Z#569
+, /* UTC */ :int { 397 } //Z#570
+, /* Universal */ :int { 397 } //Z#571
+, /* VST */ :int { 278 } //Z#572
+, /* W-SU */ :int { 430 } //Z#573
, /* WET */ :array {
:intvector { 228877200, 243997200, 260326800, 276051600, 291776400, 307501200, 323830800, 338950800, 354675600, 370400400, 386125200, 401850000, 417574800, 433299600, 449024400, 465354000, 481078800, 496803600, 512528400, 528253200, 543978000, 559702800, 575427600, 591152400, 606877200, 622602000, 638326800, 654656400, 670381200, 686106000, 701830800, 717555600, 733280400, 749005200, 764730000, 780454800, 796179600, 811904400 }
:intvector { 0, 0, 0, 3600 }
:bin { "0100010001000100010001000100010001000100010001000100010001000100010001000100" }
"EU"
:intvector { 0, 1996 }
- } //Z#575
-, /* Zulu */ :int { 389 } //Z#576
+ } //Z#574
+, /* Zulu */ :int { 397 } //Z#575
}
Names {
"ACT","AET","AGT","ART","AST","Africa/Abidjan","Africa/Accra" // 6
@@ -2646,147 +2713,149 @@ zoneinfo {
,"America/Argentina/Mendoza","America/Argentina/Rio_Gallegos" // 69
,"America/Argentina/San_Juan","America/Argentina/Tucuman" // 71
,"America/Argentina/Ushuaia","America/Aruba","America/Asuncion" // 74
- ,"America/Atka","America/Bahia","America/Barbados" // 77
- ,"America/Belem","America/Belize","America/Boa_Vista" // 80
- ,"America/Bogota","America/Boise","America/Buenos_Aires" // 83
- ,"America/Cambridge_Bay","America/Campo_Grande","America/Cancun" // 86
- ,"America/Caracas","America/Catamarca","America/Cayenne" // 89
- ,"America/Cayman","America/Chicago","America/Chihuahua" // 92
- ,"America/Cordoba","America/Costa_Rica","America/Cuiaba" // 95
- ,"America/Curacao","America/Danmarkshavn","America/Dawson" // 98
- ,"America/Dawson_Creek","America/Denver","America/Detroit" // 101
- ,"America/Dominica","America/Edmonton","America/Eirunepe" // 104
- ,"America/El_Salvador","America/Ensenada","America/Fort_Wayne" // 107
- ,"America/Fortaleza","America/Glace_Bay","America/Godthab" // 110
- ,"America/Goose_Bay","America/Grand_Turk","America/Grenada" // 113
- ,"America/Guadeloupe","America/Guatemala","America/Guayaquil" // 116
- ,"America/Guyana","America/Halifax","America/Havana" // 119
- ,"America/Hermosillo","America/Indiana/Indianapolis" // 121
- ,"America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Vevay" // 124
- ,"America/Indianapolis","America/Inuvik","America/Iqaluit" // 127
- ,"America/Jamaica","America/Jujuy","America/Juneau" // 130
- ,"America/Kentucky/Louisville","America/Kentucky/Monticello" // 132
- ,"America/Knox_IN","America/La_Paz","America/Lima" // 135
- ,"America/Los_Angeles","America/Louisville","America/Maceio" // 138
- ,"America/Managua","America/Manaus","America/Martinique" // 141
- ,"America/Mazatlan","America/Mendoza","America/Menominee" // 144
- ,"America/Merida","America/Mexico_City","America/Miquelon" // 147
- ,"America/Monterrey","America/Montevideo","America/Montreal" // 150
- ,"America/Montserrat","America/Nassau","America/New_York" // 153
- ,"America/Nipigon","America/Nome","America/Noronha" // 156
- ,"America/North_Dakota/Center","America/Panama","America/Pangnirtung" // 159
- ,"America/Paramaribo","America/Phoenix","America/Port-au-Prince" // 162
- ,"America/Port_of_Spain","America/Porto_Acre","America/Porto_Velho" // 165
- ,"America/Puerto_Rico","America/Rainy_River","America/Rankin_Inlet" // 168
- ,"America/Recife","America/Regina","America/Rio_Branco" // 171
- ,"America/Rosario","America/Santiago","America/Santo_Domingo" // 174
- ,"America/Sao_Paulo","America/Scoresbysund","America/Shiprock" // 177
- ,"America/St_Johns","America/St_Kitts","America/St_Lucia" // 180
- ,"America/St_Thomas","America/St_Vincent","America/Swift_Current" // 183
- ,"America/Tegucigalpa","America/Thule","America/Thunder_Bay" // 186
- ,"America/Tijuana","America/Toronto","America/Tortola" // 189
- ,"America/Vancouver","America/Virgin","America/Whitehorse" // 192
- ,"America/Winnipeg","America/Yakutat","America/Yellowknife" // 195
- ,"Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville" // 198
- ,"Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer" // 201
- ,"Antarctica/Rothera","Antarctica/South_Pole","Antarctica/Syowa" // 204
- ,"Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden" // 207
- ,"Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau" // 211
- ,"Asia/Aqtobe","Asia/Ashgabat","Asia/Ashkhabad","Asia/Baghdad" // 215
- ,"Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Beirut" // 219
- ,"Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Choibalsan" // 223
- ,"Asia/Chongqing","Asia/Chungking","Asia/Colombo","Asia/Dacca" // 227
- ,"Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai" // 231
- ,"Asia/Dushanbe","Asia/Gaza","Asia/Harbin","Asia/Hong_Kong" // 235
- ,"Asia/Hovd","Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta" // 239
- ,"Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka" // 243
- ,"Asia/Karachi","Asia/Kashgar","Asia/Katmandu","Asia/Krasnoyarsk" // 247
- ,"Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao" // 251
- ,"Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila" // 255
- ,"Asia/Muscat","Asia/Nicosia","Asia/Novosibirsk","Asia/Omsk" // 259
- ,"Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang" // 263
- ,"Asia/Qatar","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh" // 267
- ,"Asia/Riyadh87","Asia/Riyadh88","Asia/Riyadh89","Asia/Saigon" // 271
- ,"Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai" // 275
- ,"Asia/Singapore","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi" // 279
- ,"Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu" // 283
- ,"Asia/Tokyo","Asia/Ujung_Pandang","Asia/Ulaanbaatar" // 286
- ,"Asia/Ulan_Bator","Asia/Urumqi","Asia/Vientiane","Asia/Vladivostok" // 290
- ,"Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan" // 293
- ,"Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary" // 296
- ,"Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Jan_Mayen" // 299
- ,"Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia" // 302
- ,"Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT" // 305
- ,"Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill" // 308
- ,"Australia/Canberra","Australia/Darwin","Australia/Hobart" // 311
- ,"Australia/LHI","Australia/Lindeman","Australia/Lord_Howe" // 314
- ,"Australia/Melbourne","Australia/NSW","Australia/North" // 317
- ,"Australia/Perth","Australia/Queensland","Australia/South" // 320
- ,"Australia/Sydney","Australia/Tasmania","Australia/Victoria" // 323
- ,"Australia/West","Australia/Yancowinna","BET","BST" // 327
- ,"Brazil/Acre","Brazil/DeNoronha","Brazil/East","Brazil/West" // 331
- ,"CAT","CET","CNT","CST","CST6CDT","CTT","Canada/Atlantic" // 338
- ,"Canada/Central","Canada/East-Saskatchewan","Canada/Eastern" // 341
- ,"Canada/Mountain","Canada/Newfoundland","Canada/Pacific" // 344
- ,"Canada/Saskatchewan","Canada/Yukon","Chile/Continental" // 347
- ,"Chile/EasterIsland","Cuba","EAT","ECT","EET","EST" // 353
- ,"EST5EDT","Egypt","Eire","Etc/GMT","Etc/GMT+0","Etc/GMT+1" // 359
- ,"Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2" // 363
- ,"Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7" // 368
- ,"Etc/GMT+8","Etc/GMT+9","Etc/GMT-0","Etc/GMT-1","Etc/GMT-10" // 373
- ,"Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14" // 377
- ,"Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6" // 382
- ,"Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT0","Etc/Greenwich" // 387
- ,"Etc/UCT","Etc/UTC","Etc/Universal","Etc/Zulu","Europe/Amsterdam" // 392
- ,"Europe/Andorra","Europe/Athens","Europe/Belfast" // 395
- ,"Europe/Belgrade","Europe/Berlin","Europe/Bratislava" // 398
- ,"Europe/Brussels","Europe/Bucharest","Europe/Budapest" // 401
- ,"Europe/Chisinau","Europe/Copenhagen","Europe/Dublin" // 404
- ,"Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul" // 407
- ,"Europe/Kaliningrad","Europe/Kiev","Europe/Lisbon" // 410
- ,"Europe/Ljubljana","Europe/London","Europe/Luxembourg" // 413
- ,"Europe/Madrid","Europe/Malta","Europe/Mariehamn" // 416
- ,"Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Nicosia" // 420
- ,"Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga" // 424
- ,"Europe/Rome","Europe/Samara","Europe/San_Marino" // 427
- ,"Europe/Sarajevo","Europe/Simferopol","Europe/Skopje" // 430
- ,"Europe/Sofia","Europe/Stockholm","Europe/Tallinn" // 433
- ,"Europe/Tirane","Europe/Tiraspol","Europe/Uzhgorod" // 436
- ,"Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius" // 440
- ,"Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye" // 443
- ,"Europe/Zurich","Factory","GB","GB-Eire","GMT","GMT+0" // 449
- ,"GMT-0","GMT0","Greenwich","HST","Hongkong","IET" // 455
- ,"IST","Iceland","Indian/Antananarivo","Indian/Chagos" // 459
- ,"Indian/Christmas","Indian/Cocos","Indian/Comoro" // 462
- ,"Indian/Kerguelen","Indian/Mahe","Indian/Maldives" // 465
- ,"Indian/Mauritius","Indian/Mayotte","Indian/Reunion" // 468
- ,"Iran","Israel","JST","Jamaica","Japan","Kwajalein" // 474
- ,"Libya","MET","MIT","MST","MST7MDT","Mexico/BajaNorte" // 480
- ,"Mexico/BajaSur","Mexico/General","Mideast/Riyadh87" // 483
- ,"Mideast/Riyadh88","Mideast/Riyadh89","NET","NST" // 487
- ,"NZ","NZ-CHAT","Navajo","PLT","PNT","PRC","PRT","PST" // 495
- ,"PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Chatham" // 499
- ,"Pacific/Easter","Pacific/Efate","Pacific/Enderbury" // 502
- ,"Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti" // 505
- ,"Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal" // 508
- ,"Pacific/Guam","Pacific/Honolulu","Pacific/Johnston" // 511
- ,"Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein" // 514
- ,"Pacific/Majuro","Pacific/Marquesas","Pacific/Midway" // 517
- ,"Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea" // 521
- ,"Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn" // 524
- ,"Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga" // 527
- ,"Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti" // 530
- ,"Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk" // 533
- ,"Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland" // 537
- ,"Portugal","ROC","ROK","SST","Singapore","SystemV/AST4" // 543
- ,"SystemV/AST4ADT","SystemV/CST6","SystemV/CST6CDT" // 546
- ,"SystemV/EST5","SystemV/EST5EDT","SystemV/HST10","SystemV/MST7" // 550
- ,"SystemV/MST7MDT","SystemV/PST8","SystemV/PST8PDT" // 553
- ,"SystemV/YST9","SystemV/YST9YDT","Turkey","UCT","US/Alaska" // 558
- ,"US/Aleutian","US/Arizona","US/Central","US/East-Indiana" // 562
- ,"US/Eastern","US/Hawaii","US/Indiana-Starke","US/Michigan" // 566
- ,"US/Mountain","US/Pacific","US/Pacific-New","US/Samoa" // 570
- ,"UTC","Universal","VST","W-SU","WET","Zulu" // 576
+ ,"America/Atikokan","America/Atka","America/Bahia" // 77
+ ,"America/Barbados","America/Belem","America/Belize" // 80
+ ,"America/Blanc-Sablon","America/Boa_Vista","America/Bogota" // 83
+ ,"America/Boise","America/Buenos_Aires","America/Cambridge_Bay" // 86
+ ,"America/Campo_Grande","America/Cancun","America/Caracas" // 89
+ ,"America/Catamarca","America/Cayenne","America/Cayman" // 92
+ ,"America/Chicago","America/Chihuahua","America/Coral_Harbour" // 95
+ ,"America/Cordoba","America/Costa_Rica","America/Cuiaba" // 98
+ ,"America/Curacao","America/Danmarkshavn","America/Dawson" // 101
+ ,"America/Dawson_Creek","America/Denver","America/Detroit" // 104
+ ,"America/Dominica","America/Edmonton","America/Eirunepe" // 107
+ ,"America/El_Salvador","America/Ensenada","America/Fort_Wayne" // 110
+ ,"America/Fortaleza","America/Glace_Bay","America/Godthab" // 113
+ ,"America/Goose_Bay","America/Grand_Turk","America/Grenada" // 116
+ ,"America/Guadeloupe","America/Guatemala","America/Guayaquil" // 119
+ ,"America/Guyana","America/Halifax","America/Havana" // 122
+ ,"America/Hermosillo","America/Indiana/Indianapolis" // 124
+ ,"America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg" // 127
+ ,"America/Indiana/Vevay","America/Indiana/Vincennes" // 129
+ ,"America/Indianapolis","America/Inuvik","America/Iqaluit" // 132
+ ,"America/Jamaica","America/Jujuy","America/Juneau" // 135
+ ,"America/Kentucky/Louisville","America/Kentucky/Monticello" // 137
+ ,"America/Knox_IN","America/La_Paz","America/Lima" // 140
+ ,"America/Los_Angeles","America/Louisville","America/Maceio" // 143
+ ,"America/Managua","America/Manaus","America/Martinique" // 146
+ ,"America/Mazatlan","America/Mendoza","America/Menominee" // 149
+ ,"America/Merida","America/Mexico_City","America/Miquelon" // 152
+ ,"America/Moncton","America/Monterrey","America/Montevideo" // 155
+ ,"America/Montreal","America/Montserrat","America/Nassau" // 158
+ ,"America/New_York","America/Nipigon","America/Nome" // 161
+ ,"America/Noronha","America/North_Dakota/Center","America/North_Dakota/New_Salem" // 164
+ ,"America/Panama","America/Pangnirtung","America/Paramaribo" // 167
+ ,"America/Phoenix","America/Port-au-Prince","America/Port_of_Spain" // 170
+ ,"America/Porto_Acre","America/Porto_Velho","America/Puerto_Rico" // 173
+ ,"America/Rainy_River","America/Rankin_Inlet","America/Recife" // 176
+ ,"America/Regina","America/Rio_Branco","America/Rosario" // 179
+ ,"America/Santiago","America/Santo_Domingo","America/Sao_Paulo" // 182
+ ,"America/Scoresbysund","America/Shiprock","America/St_Johns" // 185
+ ,"America/St_Kitts","America/St_Lucia","America/St_Thomas" // 188
+ ,"America/St_Vincent","America/Swift_Current","America/Tegucigalpa" // 191
+ ,"America/Thule","America/Thunder_Bay","America/Tijuana" // 194
+ ,"America/Toronto","America/Tortola","America/Vancouver" // 197
+ ,"America/Virgin","America/Whitehorse","America/Winnipeg" // 200
+ ,"America/Yakutat","America/Yellowknife","Antarctica/Casey" // 203
+ ,"Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Mawson" // 206
+ ,"Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera" // 209
+ ,"Antarctica/South_Pole","Antarctica/Syowa","Antarctica/Vostok" // 212
+ ,"Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman" // 216
+ ,"Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat" // 220
+ ,"Asia/Ashkhabad","Asia/Baghdad","Asia/Bahrain","Asia/Baku" // 224
+ ,"Asia/Bangkok","Asia/Beirut","Asia/Bishkek","Asia/Brunei" // 228
+ ,"Asia/Calcutta","Asia/Choibalsan","Asia/Chongqing" // 231
+ ,"Asia/Chungking","Asia/Colombo","Asia/Dacca","Asia/Damascus" // 235
+ ,"Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe" // 239
+ ,"Asia/Gaza","Asia/Harbin","Asia/Hong_Kong","Asia/Hovd" // 243
+ ,"Asia/Irkutsk","Asia/Istanbul","Asia/Jakarta","Asia/Jayapura" // 247
+ ,"Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi" // 251
+ ,"Asia/Kashgar","Asia/Katmandu","Asia/Krasnoyarsk" // 254
+ ,"Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macao" // 258
+ ,"Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila" // 262
+ ,"Asia/Muscat","Asia/Nicosia","Asia/Novosibirsk","Asia/Omsk" // 266
+ ,"Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang" // 270
+ ,"Asia/Qatar","Asia/Qyzylorda","Asia/Rangoon","Asia/Riyadh" // 274
+ ,"Asia/Riyadh87","Asia/Riyadh88","Asia/Riyadh89","Asia/Saigon" // 278
+ ,"Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai" // 282
+ ,"Asia/Singapore","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi" // 286
+ ,"Asia/Tehran","Asia/Tel_Aviv","Asia/Thimbu","Asia/Thimphu" // 290
+ ,"Asia/Tokyo","Asia/Ujung_Pandang","Asia/Ulaanbaatar" // 293
+ ,"Asia/Ulan_Bator","Asia/Urumqi","Asia/Vientiane","Asia/Vladivostok" // 297
+ ,"Asia/Yakutsk","Asia/Yekaterinburg","Asia/Yerevan" // 300
+ ,"Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary" // 303
+ ,"Atlantic/Cape_Verde","Atlantic/Faeroe","Atlantic/Jan_Mayen" // 306
+ ,"Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia" // 309
+ ,"Atlantic/St_Helena","Atlantic/Stanley","Australia/ACT" // 312
+ ,"Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill" // 315
+ ,"Australia/Canberra","Australia/Currie","Australia/Darwin" // 318
+ ,"Australia/Hobart","Australia/LHI","Australia/Lindeman" // 321
+ ,"Australia/Lord_Howe","Australia/Melbourne","Australia/NSW" // 324
+ ,"Australia/North","Australia/Perth","Australia/Queensland" // 327
+ ,"Australia/South","Australia/Sydney","Australia/Tasmania" // 330
+ ,"Australia/Victoria","Australia/West","Australia/Yancowinna" // 333
+ ,"BET","BST","Brazil/Acre","Brazil/DeNoronha","Brazil/East" // 338
+ ,"Brazil/West","CAT","CET","CNT","CST","CST6CDT","CTT" // 345
+ ,"Canada/Atlantic","Canada/Central","Canada/East-Saskatchewan" // 348
+ ,"Canada/Eastern","Canada/Mountain","Canada/Newfoundland" // 351
+ ,"Canada/Pacific","Canada/Saskatchewan","Canada/Yukon" // 354
+ ,"Chile/Continental","Chile/EasterIsland","Cuba","EAT" // 358
+ ,"ECT","EET","EST","EST5EDT","Egypt","Eire","Etc/GMT" // 365
+ ,"Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11" // 369
+ ,"Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5" // 374
+ ,"Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-0" // 379
+ ,"Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12" // 383
+ ,"Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3" // 387
+ ,"Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8" // 392
+ ,"Etc/GMT-9","Etc/GMT0","Etc/Greenwich","Etc/UCT","Etc/UTC" // 397
+ ,"Etc/Universal","Etc/Zulu","Europe/Amsterdam","Europe/Andorra" // 401
+ ,"Europe/Athens","Europe/Belfast","Europe/Belgrade" // 404
+ ,"Europe/Berlin","Europe/Bratislava","Europe/Brussels" // 407
+ ,"Europe/Bucharest","Europe/Budapest","Europe/Chisinau" // 410
+ ,"Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar" // 413
+ ,"Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man" // 416
+ ,"Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad" // 419
+ ,"Europe/Kiev","Europe/Lisbon","Europe/Ljubljana","Europe/London" // 423
+ ,"Europe/Luxembourg","Europe/Madrid","Europe/Malta" // 426
+ ,"Europe/Mariehamn","Europe/Minsk","Europe/Monaco" // 429
+ ,"Europe/Moscow","Europe/Nicosia","Europe/Oslo","Europe/Paris" // 433
+ ,"Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara" // 437
+ ,"Europe/San_Marino","Europe/Sarajevo","Europe/Simferopol" // 440
+ ,"Europe/Skopje","Europe/Sofia","Europe/Stockholm" // 443
+ ,"Europe/Tallinn","Europe/Tirane","Europe/Tiraspol" // 446
+ ,"Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican" // 449
+ ,"Europe/Vienna","Europe/Vilnius","Europe/Volgograd" // 452
+ ,"Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye" // 455
+ ,"Europe/Zurich","Factory","GB","GB-Eire","GMT","GMT+0" // 461
+ ,"GMT-0","GMT0","Greenwich","HST","Hongkong","IET" // 467
+ ,"IST","Iceland","Indian/Antananarivo","Indian/Chagos" // 471
+ ,"Indian/Christmas","Indian/Cocos","Indian/Comoro" // 474
+ ,"Indian/Kerguelen","Indian/Mahe","Indian/Maldives" // 477
+ ,"Indian/Mauritius","Indian/Mayotte","Indian/Reunion" // 480
+ ,"Iran","Israel","JST","Jamaica","Japan","Kwajalein" // 486
+ ,"Libya","MET","MIT","MST","MST7MDT","Mexico/BajaNorte" // 492
+ ,"Mexico/BajaSur","Mexico/General","Mideast/Riyadh87" // 495
+ ,"Mideast/Riyadh88","Mideast/Riyadh89","NET","NST" // 499
+ ,"NZ","NZ-CHAT","Navajo","PLT","PNT","PRC","PRT","PST" // 507
+ ,"PST8PDT","Pacific/Apia","Pacific/Auckland","Pacific/Chatham" // 511
+ ,"Pacific/Easter","Pacific/Efate","Pacific/Enderbury" // 514
+ ,"Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti" // 517
+ ,"Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal" // 520
+ ,"Pacific/Guam","Pacific/Honolulu","Pacific/Johnston" // 523
+ ,"Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein" // 526
+ ,"Pacific/Majuro","Pacific/Marquesas","Pacific/Midway" // 529
+ ,"Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea" // 533
+ ,"Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn" // 536
+ ,"Pacific/Ponape","Pacific/Port_Moresby","Pacific/Rarotonga" // 539
+ ,"Pacific/Saipan","Pacific/Samoa","Pacific/Tahiti" // 542
+ ,"Pacific/Tarawa","Pacific/Tongatapu","Pacific/Truk" // 545
+ ,"Pacific/Wake","Pacific/Wallis","Pacific/Yap","Poland" // 549
+ ,"Portugal","ROC","ROK","SST","Singapore","Turkey" // 555
+ ,"UCT","US/Alaska","US/Aleutian","US/Arizona","US/Central" // 560
+ ,"US/East-Indiana","US/Eastern","US/Hawaii","US/Indiana-Starke" // 564
+ ,"US/Michigan","US/Mountain","US/Pacific","US/Pacific-New" // 568
+ ,"US/Samoa","UTC","Universal","VST","W-SU","WET","Zulu" // 575
+ // 575
}
Rules {
AN:intvector {
@@ -2802,7 +2871,7 @@ zoneinfo {
9, -31, -1, 7200, 1, 2, -31, -1, 7200, 1, 3600
} //_#3
Azer:intvector {
- 2, -31, -1, 3600, 0, 9, -31, -1, 3600, 0, 3600
+ 2, -31, -1, 14400, 0, 9, -31, -1, 18000, 0, 3600
} //_#4
Bahamas:intvector {
3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
@@ -2814,7 +2883,7 @@ zoneinfo {
2, -31, -1, 7200, 1, 9, -31, -1, 7200, 1, 3600
} //_#7
Canada:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
+ 2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
} //_#8
Chatham:intvector {
9, 1, -1, 9900, 1, 2, 15, -1, 9900, 1, 3600
@@ -2834,321 +2903,315 @@ zoneinfo {
EUAsia:intvector {
2, -31, -1, 3600, 2, 9, -31, -1, 3600, 2, 3600
} //_#14
- Edm:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#15
Egypt:intvector {
3, -30, -6, 0, 1, 8, -30, -5, 82800, 1, 3600
- } //_#16
+ } //_#15
Falk:intvector {
8, 1, -1, 7200, 0, 3, 15, -1, 7200, 0, 3600
+ } //_#16
+ Haiti:intvector {
+ 3, 1, -1, 0, 0, 9, -31, -1, 0, 0, 3600
} //_#17
Iraq:intvector {
3, 1, 0, 10800, 1, 9, 1, 0, 10800, 1, 3600
} //_#18
Jordan:intvector {
- 2, -31, -5, 0, 1, 8, -30, -5, 0, 1, 3600
+ 2, -31, -5, 0, 1, 8, -30, -6, 0, 1, 3600
} //_#19
- Kirgiz:intvector {
- 2, -31, -1, 9000, 0, 9, -31, -1, 9000, 0, 3600
- } //_#20
LH:intvector {
9, -31, -1, 7200, 0, 2, -31, -1, 7200, 0, 1800
- } //_#21
+ } //_#20
Lebanon:intvector {
2, -31, -1, 0, 0, 9, -31, -1, 0, 0, 3600
- } //_#22
+ } //_#21
Mexico:intvector {
3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#23
+ } //_#22
Mongol:intvector {
2, -31, -7, 7200, 0, 8, -30, -7, 7200, 0, 3600
- } //_#24
- NT_YK:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#25
+ } //_#23
NZ:intvector {
9, 1, -1, 7200, 1, 2, 15, -1, 7200, 1, 3600
- } //_#26
+ } //_#24
NZAQ:intvector {
9, 1, -1, 7200, 1, 2, 15, -1, 7200, 1, 3600
- } //_#27
+ } //_#25
Namibia:intvector {
8, 1, -1, 7200, 0, 3, 1, -1, 7200, 0, 3600
- } //_#28
+ } //_#26
Palestine:intvector {
- 3, 15, -6, 0, 0, 9, 15, -6, 0, 0, 3600
- } //_#29
+ 3, 15, -6, 0, 0, 9, 4, 0, 7200, 0, 3600
+ } //_#27
Para:intvector {
9, 15, -1, 0, 0, 2, 8, -1, 0, 0, 3600
- } //_#30
+ } //_#28
Russia:intvector {
2, -31, -1, 7200, 1, 9, -31, -1, 7200, 1, 3600
- } //_#31
+ } //_#29
RussiaAsia:intvector {
2, -31, -1, 7200, 1, 9, -31, -1, 7200, 1, 3600
- } //_#32
+ } //_#30
StJohns:intvector {
- 3, 1, -1, 60, 0, 9, -31, -1, 60, 0, 3600
- } //_#33
+ 2, 8, -1, 60, 0, 10, 1, -1, 60, 0, 3600
+ } //_#31
Syria:intvector {
3, 1, 0, 0, 0, 9, 1, 0, 0, 0, 3600
- } //_#34
+ } //_#32
TC:intvector {
3, 1, -1, 0, 0, 9, -31, -1, 0, 0, 3600
- } //_#35
+ } //_#33
Thule:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#36
+ 2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
+ } //_#34
+ Tunisia:intvector {
+ 2, -31, -1, 7200, 1, 9, -31, -1, 7200, 1, 3600
+ } //_#35
US:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#37
- Vanc:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 0, 3600
- } //_#38
- Winn:intvector {
- 3, 1, -1, 7200, 0, 9, -31, -1, 7200, 1, 3600
- } //_#39
+ 2, 8, -1, 7200, 0, 10, 1, -1, 7200, 0, 3600
+ } //_#36
}
Regions {
- Default:intvector { 268, 269, 270, 333, 352, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 445, 448, 449, 450, 451, 452, 476, 483, 484, 485, 557, 571, 572, 575, 576 } //R#0
- AD:intvector { 393 } //R#1
- AE:intvector { 231 } //R#2
- AF:intvector { 242 } //R#3
+ Default:intvector { 275, 276, 277, 341, 344, 360, 361, 362, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 457, 460, 461, 462, 463, 464, 488, 490, 491, 495, 496, 497, 508, 556, 570, 571, 574, 575 } //R#0
+ AD:intvector { 401 } //R#1
+ AE:intvector { 238 } //R#2
+ AF:intvector { 249 } //R#3
AG:intvector { 60 } //R#4
AI:intvector { 59 } //R#5
- AL:intvector { 434 } //R#6
- AM:intvector { 293, 486 } //R#7
- AN:intvector { 96 } //R#8
+ AL:intvector { 445 } //R#6
+ AM:intvector { 300, 498 } //R#7
+ AN:intvector { 99 } //R#8
AO:intvector { 37 } //R#9
- AQ:intvector { 196, 197, 198, 199, 200, 201, 202, 203, 204, 205 } //R#10
- AR:intvector { 2, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 83, 88, 93, 129, 143, 172 } //R#11
- AS:intvector { 522, 529, 570 } //R#12
- AT:intvector { 439 } //R#13
- AU:intvector { 0, 1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325 } //R#14
+ AQ:intvector { 203, 204, 205, 206, 207, 208, 209, 210, 211, 212 } //R#10
+ AR:intvector { 2, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 85, 90, 96, 134, 148, 179 } //R#11
+ AS:intvector { 534, 541, 569 } //R#12
+ AT:intvector { 450 } //R#13
+ AU:intvector { 0, 1, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333 } //R#14
AW:intvector { 73 } //R#15
- AX:intvector { 416 } //R#16
- AZ:intvector { 217 } //R#17
- BA:intvector { 428 } //R#18
- BB:intvector { 77 } //R#19
- BD:intvector { 227, 229, 327 } //R#20
- BE:intvector { 399 } //R#21
+ AX:intvector { 427 } //R#16
+ AZ:intvector { 224 } //R#17
+ BA:intvector { 439 } //R#18
+ BB:intvector { 78 } //R#19
+ BD:intvector { 234, 236, 335 } //R#20
+ BE:intvector { 407 } //R#21
BF:intvector { 50 } //R#22
- BG:intvector { 431 } //R#23
- BH:intvector { 216 } //R#24
+ BG:intvector { 442 } //R#23
+ BH:intvector { 223 } //R#24
BI:intvector { 16 } //R#25
BJ:intvector { 51 } //R#26
- BM:intvector { 295 } //R#27
- BN:intvector { 221 } //R#28
- BO:intvector { 134 } //R#29
- BR:intvector { 61, 76, 78, 80, 85, 95, 104, 108, 138, 140, 156, 164, 165, 169, 171, 175, 326, 328, 329, 330, 331 } //R#30
- BS:intvector { 152 } //R#31
- BT:intvector { 282, 283 } //R#32
+ BM:intvector { 302 } //R#27
+ BN:intvector { 228 } //R#28
+ BO:intvector { 139 } //R#29
+ BR:intvector { 61, 77, 79, 82, 87, 98, 107, 111, 143, 145, 162, 171, 172, 176, 178, 182, 334, 336, 337, 338, 339 } //R#30
+ BS:intvector { 158 } //R#31
+ BT:intvector { 289, 290 } //R#32
BW:intvector { 27 } //R#33
- BY:intvector { 417 } //R#34
- BZ:intvector { 79 } //R#35
- CA:intvector { 84, 98, 99, 103, 109, 111, 118, 126, 127, 150, 154, 159, 167, 168, 170, 178, 183, 186, 188, 190, 192, 193, 195, 334, 338, 339, 340, 341, 342, 343, 344, 345, 346, 544, 545 } //R#36
- CC:intvector { 461 } //R#37
+ BY:intvector { 428 } //R#34
+ BZ:intvector { 80 } //R#35
+ CA:intvector { 75, 81, 86, 95, 101, 102, 106, 112, 114, 121, 131, 132, 153, 156, 160, 166, 174, 175, 177, 185, 190, 193, 195, 197, 199, 200, 202, 342, 346, 347, 348, 349, 350, 351, 352, 353, 354 } //R#36
+ CC:intvector { 473 } //R#37
CD:intvector { 33, 38 } //R#38
CF:intvector { 11 } //R#39
CG:intvector { 15 } //R#40
- CH:intvector { 444 } //R#41
+ CH:intvector { 456 } //R#41
CI:intvector { 5 } //R#42
- CK:intvector { 527 } //R#43
- CL:intvector { 173, 347, 348, 500 } //R#44
+ CK:intvector { 539 } //R#43
+ CL:intvector { 180, 355, 356, 512 } //R#44
CM:intvector { 24 } //R#45
- CN:intvector { 224, 225, 234, 245, 275, 288, 337, 493 } //R#46
- CO:intvector { 81 } //R#47
- CR:intvector { 94 } //R#48
- CS:intvector { 396 } //R#49
- CU:intvector { 119, 349 } //R#50
- CV:intvector { 297 } //R#51
- CX:intvector { 460 } //R#52
- CY:intvector { 257, 420 } //R#53
- CZ:intvector { 423 } //R#54
- DE:intvector { 397 } //R#55
+ CN:intvector { 231, 232, 241, 252, 282, 295, 345, 505 } //R#46
+ CO:intvector { 83 } //R#47
+ CR:intvector { 97 } //R#48
+ CS:intvector { 404 } //R#49
+ CU:intvector { 122, 357 } //R#50
+ CV:intvector { 304 } //R#51
+ CX:intvector { 472 } //R#52
+ CY:intvector { 264, 431 } //R#53
+ CZ:intvector { 434 } //R#54
+ DE:intvector { 405 } //R#55
DJ:intvector { 23 } //R#56
- DK:intvector { 403 } //R#57
- DM:intvector { 102 } //R#58
- DO:intvector { 174 } //R#59
+ DK:intvector { 411 } //R#57
+ DM:intvector { 105 } //R#58
+ DO:intvector { 181 } //R#59
DZ:intvector { 8 } //R#60
- EC:intvector { 116, 506 } //R#61
- EE:intvector { 433 } //R#62
- EG:intvector { 3, 17, 355 } //R#63
+ EC:intvector { 119, 518 } //R#61
+ EE:intvector { 444 } //R#62
+ EG:intvector { 3, 17, 363 } //R#63
EH:intvector { 25 } //R#64
ER:intvector { 9 } //R#65
- ES:intvector { 19, 296, 414 } //R#66
- ET:intvector { 7, 350 } //R#67
- FI:intvector { 406 } //R#68
- FJ:intvector { 504 } //R#69
- FK:intvector { 304 } //R#70
- FM:intvector { 513, 525, 533, 536 } //R#71
- FO:intvector { 298 } //R#72
- FR:intvector { 351, 422 } //R#73
+ ES:intvector { 19, 303, 425 } //R#66
+ ET:intvector { 7, 358 } //R#67
+ FI:intvector { 415 } //R#68
+ FJ:intvector { 516 } //R#69
+ FK:intvector { 311 } //R#70
+ FM:intvector { 525, 537, 545, 548 } //R#71
+ FO:intvector { 305 } //R#72
+ FR:intvector { 359, 433 } //R#73
GA:intvector { 35 } //R#74
- GB:intvector { 395, 412, 446, 447 } //R#75
- GD:intvector { 113 } //R#76
- GE:intvector { 279 } //R#77
- GF:intvector { 89 } //R#78
- GH:intvector { 6 } //R#79
- GI:intvector { 405 } //R#80
- GL:intvector { 97, 110, 176, 185 } //R#81
- GM:intvector { 12 } //R#82
- GN:intvector { 20 } //R#83
- GP:intvector { 114 } //R#84
- GQ:intvector { 40 } //R#85
- GR:intvector { 394 } //R#86
- GS:intvector { 302 } //R#87
- GT:intvector { 115 } //R#88
- GU:intvector { 509 } //R#89
- GW:intvector { 13 } //R#90
- GY:intvector { 117 } //R#91
- HK:intvector { 235, 454 } //R#92
- HN:intvector { 184 } //R#93
- HR:intvector { 442 } //R#94
- HT:intvector { 162 } //R#95
- HU:intvector { 401 } //R#96
- ID:intvector { 239, 240, 254, 262, 285 } //R#97
- IE:intvector { 356, 404 } //R#98
- IL:intvector { 241, 281, 470 } //R#99
- IN:intvector { 222, 456 } //R#100
- IO:intvector { 459 } //R#101
- IQ:intvector { 215 } //R#102
- IR:intvector { 280, 469 } //R#103
- IS:intvector { 301, 457 } //R#104
- IT:intvector { 425 } //R#105
- JM:intvector { 128, 472 } //R#106
- JO:intvector { 209 } //R#107
- JP:intvector { 284, 471, 473 } //R#108
- KE:intvector { 46 } //R#109
- KG:intvector { 220 } //R#110
- KH:intvector { 261 } //R#111
- KI:intvector { 502, 512, 531 } //R#112
- KM:intvector { 462 } //R#113
- KN:intvector { 179 } //R#114
- KP:intvector { 263 } //R#115
- KR:intvector { 274, 540 } //R#116
- KW:intvector { 250 } //R#117
- KY:intvector { 90 } //R#118
- KZ:intvector { 208, 211, 212, 260, 265 } //R#119
- LA:intvector { 289 } //R#120
- LB:intvector { 219 } //R#121
- LC:intvector { 180 } //R#122
- LI:intvector { 437 } //R#123
- LK:intvector { 226 } //R#124
- LR:intvector { 45 } //R#125
- LS:intvector { 42 } //R#126
- LT:intvector { 440 } //R#127
- LU:intvector { 413 } //R#128
- LV:intvector { 424 } //R#129
- LY:intvector { 54, 475 } //R#130
- MA:intvector { 18 } //R#131
- MC:intvector { 418 } //R#132
- MD:intvector { 402, 435 } //R#133
- MG:intvector { 458 } //R#134
- MH:intvector { 474, 514, 515 } //R#135
- MK:intvector { 430 } //R#136
- ML:intvector { 10, 53 } //R#137
- MM:intvector { 266 } //R#138
- MN:intvector { 223, 236, 286, 287 } //R#139
- MO:intvector { 251, 252 } //R#140
- MP:intvector { 528 } //R#141
- MQ:intvector { 141 } //R#142
- MR:intvector { 49 } //R#143
- MS:intvector { 151 } //R#144
- MT:intvector { 415 } //R#145
- MU:intvector { 466 } //R#146
- MV:intvector { 465 } //R#147
- MW:intvector { 14 } //R#148
- MX:intvector { 86, 92, 106, 120, 142, 145, 146, 148, 187, 480, 481, 482 } //R#149
- MY:intvector { 248, 249 } //R#150
- MZ:intvector { 41 } //R#151
- NA:intvector { 56 } //R#152
- NC:intvector { 521 } //R#153
- NE:intvector { 48 } //R#154
- NF:intvector { 520 } //R#155
- NG:intvector { 34 } //R#156
- NI:intvector { 139 } //R#157
- NL:intvector { 392 } //R#158
- NO:intvector { 421 } //R#159
- NP:intvector { 246 } //R#160
- NR:intvector { 518 } //R#161
- NU:intvector { 519 } //R#162
- NZ:intvector { 487, 488, 489, 498, 499 } //R#163
- OM:intvector { 256 } //R#164
- PA:intvector { 158 } //R#165
- PE:intvector { 135 } //R#166
- PF:intvector { 507, 516, 530, 554 } //R#167
- PG:intvector { 526 } //R#168
- PH:intvector { 255 } //R#169
- PK:intvector { 244, 491 } //R#170
- PL:intvector { 441, 537 } //R#171
- PM:intvector { 147 } //R#172
- PN:intvector { 524, 552 } //R#173
- PR:intvector { 166, 494, 543 } //R#174
- PS:intvector { 233 } //R#175
- PT:intvector { 294, 300, 410, 538 } //R#176
- PW:intvector { 523 } //R#177
- PY:intvector { 74 } //R#178
- QA:intvector { 264 } //R#179
- RE:intvector { 468 } //R#180
- RO:intvector { 400 } //R#181
- RU:intvector { 210, 237, 243, 247, 253, 258, 259, 272, 290, 291, 292, 408, 419, 426, 574 } //R#182
- RW:intvector { 32 } //R#183
- SA:intvector { 267 } //R#184
- SB:intvector { 508, 541 } //R#185
- SC:intvector { 464 } //R#186
- SD:intvector { 31 } //R#187
- SE:intvector { 432 } //R#188
- SG:intvector { 276, 542 } //R#189
- SH:intvector { 303 } //R#190
- SI:intvector { 411 } //R#191
- SJ:intvector { 206, 299 } //R#192
- SK:intvector { 398 } //R#193
- SL:intvector { 26 } //R#194
- SM:intvector { 427 } //R#195
- SN:intvector { 21 } //R#196
- SO:intvector { 44 } //R#197
- SR:intvector { 160 } //R#198
- ST:intvector { 52 } //R#199
- SV:intvector { 105 } //R#200
- SY:intvector { 228 } //R#201
- SZ:intvector { 43 } //R#202
- TC:intvector { 112 } //R#203
- TD:intvector { 47 } //R#204
- TF:intvector { 463 } //R#205
- TG:intvector { 36 } //R#206
- TH:intvector { 218 } //R#207
- TJ:intvector { 232 } //R#208
- TK:intvector { 503 } //R#209
- TL:intvector { 230 } //R#210
- TM:intvector { 213, 214 } //R#211
- TN:intvector { 55 } //R#212
- TO:intvector { 532 } //R#213
- TR:intvector { 238, 407, 556 } //R#214
- TT:intvector { 163 } //R#215
- TV:intvector { 505 } //R#216
- TW:intvector { 277, 539 } //R#217
- TZ:intvector { 22 } //R#218
- UA:intvector { 409, 429, 436, 443 } //R#219
- UG:intvector { 30 } //R#220
- UM:intvector { 511, 517, 534 } //R#221
- US:intvector { 4, 57, 58, 75, 82, 91, 100, 101, 107, 121, 122, 123, 124, 125, 130, 131, 132, 133, 136, 137, 144, 153, 155, 157, 161, 177, 194, 335, 336, 353, 354, 453, 455, 478, 479, 490, 492, 495, 496, 510, 546, 547, 548, 549, 550, 551, 553, 555, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569 } //R#222
- UY:intvector { 149 } //R#223
- UZ:intvector { 273, 278 } //R#224
- VA:intvector { 438 } //R#225
- VC:intvector { 182 } //R#226
- VE:intvector { 87 } //R#227
- VG:intvector { 189 } //R#228
- VI:intvector { 181, 191 } //R#229
- VN:intvector { 271, 573 } //R#230
- VU:intvector { 501 } //R#231
- WF:intvector { 535 } //R#232
- WS:intvector { 477, 497 } //R#233
- YE:intvector { 207 } //R#234
- YT:intvector { 467 } //R#235
- ZA:intvector { 29 } //R#236
- ZM:intvector { 39 } //R#237
- ZW:intvector { 28, 332 } //R#238
+ GB:intvector { 403, 423, 458, 459 } //R#75
+ GD:intvector { 116 } //R#76
+ GE:intvector { 286 } //R#77
+ GF:intvector { 91 } //R#78
+ GG:intvector { 414 } //R#79
+ GH:intvector { 6 } //R#80
+ GI:intvector { 413 } //R#81
+ GL:intvector { 100, 113, 183, 192 } //R#82
+ GM:intvector { 12 } //R#83
+ GN:intvector { 20 } //R#84
+ GP:intvector { 117 } //R#85
+ GQ:intvector { 40 } //R#86
+ GR:intvector { 402 } //R#87
+ GS:intvector { 309 } //R#88
+ GT:intvector { 118 } //R#89
+ GU:intvector { 521 } //R#90
+ GW:intvector { 13 } //R#91
+ GY:intvector { 120 } //R#92
+ HK:intvector { 242, 466 } //R#93
+ HN:intvector { 191 } //R#94
+ HR:intvector { 454 } //R#95
+ HT:intvector { 169 } //R#96
+ HU:intvector { 409 } //R#97
+ ID:intvector { 246, 247, 261, 269, 292 } //R#98
+ IE:intvector { 364, 412 } //R#99
+ IL:intvector { 248, 288, 482 } //R#100
+ IM:intvector { 416 } //R#101
+ IN:intvector { 229, 468 } //R#102
+ IO:intvector { 471 } //R#103
+ IQ:intvector { 222 } //R#104
+ IR:intvector { 287, 481 } //R#105
+ IS:intvector { 308, 469 } //R#106
+ IT:intvector { 436 } //R#107
+ JE:intvector { 418 } //R#108
+ JM:intvector { 133, 484 } //R#109
+ JO:intvector { 216 } //R#110
+ JP:intvector { 291, 483, 485 } //R#111
+ KE:intvector { 46 } //R#112
+ KG:intvector { 227 } //R#113
+ KH:intvector { 268 } //R#114
+ KI:intvector { 514, 524, 543 } //R#115
+ KM:intvector { 474 } //R#116
+ KN:intvector { 186 } //R#117
+ KP:intvector { 270 } //R#118
+ KR:intvector { 281, 552 } //R#119
+ KW:intvector { 257 } //R#120
+ KY:intvector { 92 } //R#121
+ KZ:intvector { 215, 218, 219, 267, 272 } //R#122
+ LA:intvector { 296 } //R#123
+ LB:intvector { 226 } //R#124
+ LC:intvector { 187 } //R#125
+ LI:intvector { 448 } //R#126
+ LK:intvector { 233 } //R#127
+ LR:intvector { 45 } //R#128
+ LS:intvector { 42 } //R#129
+ LT:intvector { 451 } //R#130
+ LU:intvector { 424 } //R#131
+ LV:intvector { 435 } //R#132
+ LY:intvector { 54, 487 } //R#133
+ MA:intvector { 18 } //R#134
+ MC:intvector { 429 } //R#135
+ MD:intvector { 410, 446 } //R#136
+ MG:intvector { 470 } //R#137
+ MH:intvector { 486, 526, 527 } //R#138
+ MK:intvector { 441 } //R#139
+ ML:intvector { 10, 53 } //R#140
+ MM:intvector { 273 } //R#141
+ MN:intvector { 230, 243, 293, 294 } //R#142
+ MO:intvector { 258, 259 } //R#143
+ MP:intvector { 540 } //R#144
+ MQ:intvector { 146 } //R#145
+ MR:intvector { 49 } //R#146
+ MS:intvector { 157 } //R#147
+ MT:intvector { 426 } //R#148
+ MU:intvector { 478 } //R#149
+ MV:intvector { 477 } //R#150
+ MW:intvector { 14 } //R#151
+ MX:intvector { 88, 94, 109, 123, 147, 150, 151, 154, 194, 492, 493, 494 } //R#152
+ MY:intvector { 255, 256 } //R#153
+ MZ:intvector { 41 } //R#154
+ NA:intvector { 56 } //R#155
+ NC:intvector { 533 } //R#156
+ NE:intvector { 48 } //R#157
+ NF:intvector { 532 } //R#158
+ NG:intvector { 34 } //R#159
+ NI:intvector { 144 } //R#160
+ NL:intvector { 400 } //R#161
+ NO:intvector { 432 } //R#162
+ NP:intvector { 253 } //R#163
+ NR:intvector { 530 } //R#164
+ NU:intvector { 531 } //R#165
+ NZ:intvector { 499, 500, 501, 510, 511 } //R#166
+ OM:intvector { 263 } //R#167
+ PA:intvector { 165 } //R#168
+ PE:intvector { 140 } //R#169
+ PF:intvector { 519, 528, 542 } //R#170
+ PG:intvector { 538 } //R#171
+ PH:intvector { 262 } //R#172
+ PK:intvector { 251, 503 } //R#173
+ PL:intvector { 453, 549 } //R#174
+ PM:intvector { 152 } //R#175
+ PN:intvector { 536 } //R#176
+ PR:intvector { 173, 506 } //R#177
+ PS:intvector { 240 } //R#178
+ PT:intvector { 301, 307, 421, 550 } //R#179
+ PW:intvector { 535 } //R#180
+ PY:intvector { 74 } //R#181
+ QA:intvector { 271 } //R#182
+ RE:intvector { 480 } //R#183
+ RO:intvector { 408 } //R#184
+ RU:intvector { 217, 244, 250, 254, 260, 265, 266, 279, 297, 298, 299, 419, 430, 437, 452, 573 } //R#185
+ RW:intvector { 32 } //R#186
+ SA:intvector { 274 } //R#187
+ SB:intvector { 520, 553 } //R#188
+ SC:intvector { 476 } //R#189
+ SD:intvector { 31 } //R#190
+ SE:intvector { 443 } //R#191
+ SG:intvector { 283, 554 } //R#192
+ SH:intvector { 310 } //R#193
+ SI:intvector { 422 } //R#194
+ SJ:intvector { 213, 306 } //R#195
+ SK:intvector { 406 } //R#196
+ SL:intvector { 26 } //R#197
+ SM:intvector { 438 } //R#198
+ SN:intvector { 21 } //R#199
+ SO:intvector { 44 } //R#200
+ SR:intvector { 167 } //R#201
+ ST:intvector { 52 } //R#202
+ SV:intvector { 108 } //R#203
+ SY:intvector { 235 } //R#204
+ SZ:intvector { 43 } //R#205
+ TC:intvector { 115 } //R#206
+ TD:intvector { 47 } //R#207
+ TF:intvector { 475 } //R#208
+ TG:intvector { 36 } //R#209
+ TH:intvector { 225 } //R#210
+ TJ:intvector { 239 } //R#211
+ TK:intvector { 515 } //R#212
+ TL:intvector { 237 } //R#213
+ TM:intvector { 220, 221 } //R#214
+ TN:intvector { 55 } //R#215
+ TO:intvector { 544 } //R#216
+ TR:intvector { 245, 417, 555 } //R#217
+ TT:intvector { 170 } //R#218
+ TV:intvector { 517 } //R#219
+ TW:intvector { 284, 551 } //R#220
+ TZ:intvector { 22 } //R#221
+ UA:intvector { 420, 440, 447, 455 } //R#222
+ UG:intvector { 30 } //R#223
+ UM:intvector { 523, 529, 546 } //R#224
+ US:intvector { 4, 57, 58, 76, 84, 93, 103, 104, 110, 124, 125, 126, 127, 128, 129, 130, 135, 136, 137, 138, 141, 142, 149, 159, 161, 163, 164, 168, 184, 201, 343, 465, 467, 502, 504, 507, 522, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568 } //R#225
+ UY:intvector { 155 } //R#226
+ UZ:intvector { 280, 285 } //R#227
+ VA:intvector { 449 } //R#228
+ VC:intvector { 189 } //R#229
+ VE:intvector { 89 } //R#230
+ VG:intvector { 196 } //R#231
+ VI:intvector { 188, 198 } //R#232
+ VN:intvector { 278, 572 } //R#233
+ VU:intvector { 513 } //R#234
+ WF:intvector { 547 } //R#235
+ WS:intvector { 489, 509 } //R#236
+ YE:intvector { 214 } //R#237
+ YT:intvector { 479 } //R#238
+ ZA:intvector { 29 } //R#239
+ ZM:intvector { 39 } //R#240
+ ZW:intvector { 28, 340 } //R#241
}
}
diff --git a/Build/source/libs/icu-xetex/data/rbnf/ja.txt b/Build/source/libs/icu-xetex/data/rbnf/ja.txt
index aaeabc1699a..26c30441fb2 100644
--- a/Build/source/libs/icu-xetex/data/rbnf/ja.txt
+++ b/Build/source/libs/icu-xetex/data/rbnf/ja.txt
@@ -1,6 +1,6 @@
// ***************************************************************************
// *
-// * Copyright (C) 2004, International Business Machines
+// * Copyright (C) 2004-2006, International Business Machines
// * Corporation and others. All Rights Reserved.
// *
// ***************************************************************************
@@ -8,47 +8,55 @@
ja {
- //------------------------------------------------------------
- // Rule Based Number Format Support
- //------------------------------------------------------------
-
-// * Spellout rules for Japanese. In Japanese, there really isn't any
-// * distinction between a number written out in digits and a number
-// * written out in words: the ideographic characters are both digits
-// * and words. This rule set provides two variants: %traditional
-// * uses the traditional CJK numerals (which are also used in China
-// * and Korea). %financial uses alternate ideographs for many numbers
-// * that are harder to alter than the traditional numerals (one could
-// * fairly easily change a one to
-// * a three just by adding two strokes, for example). This is also done in
-// * the other countries using Chinese idographs, but different ideographs
-// * are used in those places.
-
- // Can someone supply me with the right fraud-proof ideographs for
- // Simplified and Traditional Chinese, and for Korean? Can someone
- // supply me with information on negatives and decimals?
+ // Spellout rules for Japanese.
+ //
+ // In Japanese, there really isn't any distinction between a number written
+ // out in digits and a number written out in words. The kanji are both
+ // digits and words. This rule set provides two variants:
+ //
+ // %traditional
+ // Traditional CJK numerals for everyday usage.
+ //
+ // %financial
+ // Alternate numerals that are harder to alter than the traditional
+ // numerals to prevent fraud (e.g. changing a traditional one to a
+ // three by adding two strokes). Additionally, items that are usually
+ // dropped or shortened in the traditional form are supplied in full
+ // (e.g. 128 is 1 x 100, 2 x 10, 8 instead of just 100, 2 x 10, 8).
+ //
+ // Note that the Japanese spell out rules, although similar, are different
+ // to those for Chinese. For instance, Japanese omits powers of ten which
+ // are zero, however in Chinese they are included.
SpelloutRules {
"%financial:\n"
+ "-x: \u30de\u30a4\u30ca\u30b9>>;\n"
+ "x.x: <<\u70b9>>;\n"
"\u96f6; \u58f1; \u5f10; \u53c2; \u56db; \u4f0d; \u516d; \u4e03; \u516b; \u4e5d;\n"
- "\u62fe[>>];\n"
+ "\u62fe; \u62fe[>>];\n"
"20: <<\u62fe[>>];\n"
"100: <<\u767e[>>];\n"
"1000: <<\u5343[>>];\n"
- "10,000: <<\u4e07[>>];\n"
+ "10,000: <<\u842c[>>];\n"
"100,000,000: <<\u5104[>>];\n"
"1,000,000,000,000: <<\u5146[>>];\n"
- "10,000,000,000,000,000: =#,##0=;\n"
+ "10,000,000,000,000,000: <<\u4eac[>>];\n"
+ "100,000,000,000,000,000,000: =#,##0=;"
"%traditional:\n"
- "\u96f6; \u4e00; \u4e8c; \u4e09; \u56db; \u4e94; \u516d; \u4e03; \u516b; \u4e5d;\n"
- "\u5341[>>];\n"
+ "-x: \u30de\u30a4\u30ca\u30b9>>;\n"
+ "x.x: <<\u30fb>>;\n"
+ "\u3007; \u4e00; \u4e8c; \u4e09; \u56db; \u4e94; \u516d; \u4e03; \u516b; \u4e5d;\n"
+ "\u5341; \u5341[>>];\n"
"20: <<\u5341[>>];\n"
- "100: <<\u767e[>>];\n"
- "1000: <<\u5343[>>];\n"
+ "100: \u767e[>>];\n"
+ "200: <<\u767e[>>];\n"
+ "1000: \u5343[>>];\n"
+ "2000: <<\u5343[>>];\n"
"10,000: <<\u4e07[>>];\n"
"100,000,000: <<\u5104[>>];\n"
"1,000,000,000,000: <<\u5146[>>];\n"
- "10,000,000,000,000,000: =#,##0=;"
+ "10,000,000,000,000,000: <<\u4eac[>>];\n"
+ "100,000,000,000,000,000,000: =#,##0=;"
}
}
diff --git a/Build/source/libs/icu-xetex/data/rbnf/rbnflocal.mk b/Build/source/libs/icu-xetex/data/rbnf/rbnflocal.mk
index 4bd36d7f740..7fea9e4184f 100644
--- a/Build/source/libs/icu-xetex/data/rbnf/rbnflocal.mk
+++ b/Build/source/libs/icu-xetex/data/rbnf/rbnflocal.mk
@@ -30,8 +30,5 @@ RBNF_ALIAS_SOURCE =
# Please try to keep this list in alphabetical order
-RBNF_SOURCE = en.txt # none needed for xetex, but MinGW can't handle empty list
+RBNF_SOURCE =
-
-#These are not in use yet
-# el.txt \
diff --git a/Build/source/libs/icu-xetex/data/translit/Any_Accents.txt b/Build/source/libs/icu-xetex/data/translit/Any_Accents.txt
index fe26c690476..163307df6d5 100644
--- a/Build/source/libs/icu-xetex/data/translit/Any_Accents.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Any_Accents.txt
@@ -1,20 +1,15 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Any_Accents.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
:: NFD (NFC) ;
-
-# to do: make reversible
-
-# define special conversion characters.
-# varients of this could use different characters, or set one or the other to null.
-
$pre = \< ;
$post = \> ;
-
-# Provide keyboard equivalents for common diacritics used in transliteration
-
$pre \` $post <> \u0300 ; # COMBINING GRAVE ACCENT
$pre \' $post <> \u0301 ; # COMBINING ACUTE ACCENT
$pre \^ $post <> \u0302 ; # COMBINING CIRCUMFLEX ACCENT
@@ -25,266 +20,34 @@ $pre \* $post <> \u030A ; # COMBINING RING ABOVE
$pre \, $post <> \u0327 ; # COMBINING CEDILLA
$pre '/' $post <> \u0338 ; # COMBINING LONG SOLIDUS OVERLAY
$pre \. $post <> \u0323 ; # COMBINING DOT BELOW
-
-# Combine common characters
-
-$pre AE $post <> \u00C6 ; # LATIN CAPITAL LETTER AE
-$pre ae $post <> \u00E6 ; # LATIN SMALL LETTER AE
-$pre D $post <> \u00D0 ; # LATIN CAPITAL LETTER ETH
-$pre d $post <> \u00F0 ; # LATIN SMALL LETTER ETH
-$pre O'/' $post <> \u00D8 ; # LATIN CAPITAL LETTER O WITH STROKE
-$pre o'/' $post <> \u00F8 ; # LATIN SMALL LETTER O WITH STROKE
-$pre TH $post <> \u00DE ; # LATIN CAPITAL LETTER THORN
-$pre th $post <> \u00FE ; # LATIN SMALL LETTER THORN
-$pre OE $post <> \u0152 ; # LATIN CAPITAL LIGATURE OE
-$pre oe $post <> \u0153 ; # LATIN SMALL LIGATURE OE
-
-$pre ss $post <> \u00DF ; # LATIN SMALL LETTER SHARP S
-
-$pre NG $post <> \u014A ; # LATIN CAPITAL LETTER ENG
-$pre ng $post <> \u014B ; # LATIN SMALL LETTER ENG
-
-$pre T $post <> \u0398 ; # THETA
-$pre t $post <> \u03B8 ; # THETA
-$pre SH $post <> \u01A9 ; # LATIN CAPITAL LETTER ESH
-$pre sh $post <> \u0283 ; # LATIN SMALL LETTER ESH
-$pre ZH $post <> \u01B7 ; # LATIN CAPITAL LETTER EZH
-$pre zh $post <> \u0292 ; # LATIN SMALL LETTER EZH
-
-$pre U $post <> \u01B1 ; # LATIN CAPITAL LETTER UPSILON
-$pre u $post <> \u028A ; # LATIN SMALL LETTER UPSILON
-$pre A $post <> \u018F ; # LATIN CAPITAL LETTER SCHWA
-$pre a $post <> \u0259 ; # LATIN SMALL LETTER SCHWA
-$pre O $post <> \u0186 ; # LATIN CAPITAL LETTER OPEN O
-$pre o $post <> \u0254 ; # LATIN SMALL LETTER OPEN O
-$pre E $post <> \u0190 ; # LATIN CAPITAL LETTER OPEN E
-$pre e $post <> \u025B ; # LATIN SMALL LETTER OPEN E
-
-# three that don't have uppercases
-
-$pre '?' $post <> \u0294 ; # LATIN LETTER GLOTTAL STOP
-$pre i $post <> \u026A ; # LATIN LETTER SMALL CAPITAL I
-$pre v $post <> \u028C ; # LATIN SMALL LETTER TURNED V
-
-# Additional Characters that may be added in the future
-
-# $pre XXX $post <> \u0306 ; # COMBINING BREVE
-# $pre XXX $post <> \u0307 ; # COMBINING DOT ABOVE
-# $pre XXX $post <> \u0309 ; # COMBINING HOOK ABOVE
-# $pre XXX $post <> \u030B ; # COMBINING DOUBLE ACUTE ACCENT
-# $pre XXX $post <> \u030C ; # COMBINING CARON
-# $pre XXX $post <> \u030F ; # COMBINING DOUBLE GRAVE ACCENT
-# $pre XXX $post <> \u0311 ; # COMBINING INVERTED BREVE
-# $pre XXX $post <> \u0313 ; # COMBINING COMMA ABOVE
-# $pre XXX $post <> \u0314 ; # COMBINING REVERSED COMMA ABOVE
-# $pre XXX $post <> \u031B ; # COMBINING HORN
-# $pre XXX $post <> \u0324 ; # COMBINING DIAERESIS BELOW
-# $pre XXX $post <> \u0325 ; # COMBINING RING BELOW
-# $pre XXX $post <> \u0326 ; # COMBINING COMMA BELOW
-# $pre XXX $post <> \u0328 ; # COMBINING OGONEK
-# $pre XXX $post <> \u032D ; # COMBINING CIRCUMFLEX ACCENT BELOW
-# $pre XXX $post <> \u032E ; # COMBINING BREVE BELOW
-# $pre XXX $post <> \u0330 ; # COMBINING TILDE BELOW
-# $pre XXX $post <> \u0331 ; # COMBINING MACRON BELOW
-
-# $pre YYY $post <> \u00AA ; # FEMININE ORDINAL INDICATOR
-# $pre YYY $post <> \u00BA ; # MASCULINE ORDINAL INDICATOR
-# $pre YYY $post <> \u0110 ; # LATIN CAPITAL LETTER D WITH STROKE
-# $pre YYY $post <> \u0111 ; # LATIN SMALL LETTER D WITH STROKE
-# $pre YYY $post <> \u0126 ; # LATIN CAPITAL LETTER H WITH STROKE
-# $pre YYY $post <> \u0127 ; # LATIN SMALL LETTER H WITH STROKE
-# $pre YYY $post <> \u0131 ; # LATIN SMALL LETTER DOTLESS I
-# $pre YYY $post <> \u0138 ; # LATIN SMALL LETTER KRA
-# $pre YYY $post <> \u013F ; # LATIN CAPITAL LETTER L WITH MIDDLE DOT
-# $pre YYY $post <> \u0140 ; # LATIN SMALL LETTER L WITH MIDDLE DOT
-# $pre YYY $post <> \u0141 ; # LATIN CAPITAL LETTER L WITH STROKE
-# $pre YYY $post <> \u0142 ; # LATIN SMALL LETTER L WITH STROKE
-# $pre YYY $post <> \u0149 ; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
-# $pre YYY $post <> \u0166 ; # LATIN CAPITAL LETTER T WITH STROKE
-# $pre YYY $post <> \u0167 ; # LATIN SMALL LETTER T WITH STROKE
-# $pre YYY $post <> \u017F ; # LATIN SMALL LETTER LONG S
-# $pre YYY $post <> \u0180 ; # LATIN SMALL LETTER B WITH STROKE
-# $pre YYY $post <> \u0181 ; # LATIN CAPITAL LETTER B WITH HOOK
-# $pre YYY $post <> \u0182 ; # LATIN CAPITAL LETTER B WITH TOPBAR
-# $pre YYY $post <> \u0183 ; # LATIN SMALL LETTER B WITH TOPBAR
-# $pre YYY $post <> \u0184 ; # LATIN CAPITAL LETTER TONE SIX
-# $pre YYY $post <> \u0185 ; # LATIN SMALL LETTER TONE SIX
-# $pre YYY $post <> \u0187 ; # LATIN CAPITAL LETTER C WITH HOOK
-# $pre YYY $post <> \u0188 ; # LATIN SMALL LETTER C WITH HOOK
-# $pre YYY $post <> \u0189 ; # LATIN CAPITAL LETTER AFRICAN D
-# $pre YYY $post <> \u018A ; # LATIN CAPITAL LETTER D WITH HOOK
-# $pre YYY $post <> \u018B ; # LATIN CAPITAL LETTER D WITH TOPBAR
-# $pre YYY $post <> \u018C ; # LATIN SMALL LETTER D WITH TOPBAR
-# $pre YYY $post <> \u018D ; # LATIN SMALL LETTER TURNED DELTA
-# $pre YYY $post <> \u018E ; # LATIN CAPITAL LETTER REVERSED E
-# $pre YYY $post <> \u0191 ; # LATIN CAPITAL LETTER F WITH HOOK
-# $pre YYY $post <> \u0192 ; # LATIN SMALL LETTER F WITH HOOK
-# $pre YYY $post <> \u0193 ; # LATIN CAPITAL LETTER G WITH HOOK
-# $pre YYY $post <> \u0194 ; # LATIN CAPITAL LETTER GAMMA
-# $pre YYY $post <> \u0195 ; # LATIN SMALL LETTER HV
-# $pre YYY $post <> \u0196 ; # LATIN CAPITAL LETTER IOTA
-# $pre YYY $post <> \u0197 ; # LATIN CAPITAL LETTER I WITH STROKE
-# $pre YYY $post <> \u0198 ; # LATIN CAPITAL LETTER K WITH HOOK
-# $pre YYY $post <> \u0199 ; # LATIN SMALL LETTER K WITH HOOK
-# $pre YYY $post <> \u019A ; # LATIN SMALL LETTER L WITH BAR
-# $pre YYY $post <> \u019B ; # LATIN SMALL LETTER LAMBDA WITH STROKE
-# $pre YYY $post <> \u019C ; # LATIN CAPITAL LETTER TURNED M
-# $pre YYY $post <> \u019D ; # LATIN CAPITAL LETTER N WITH LEFT HOOK
-# $pre YYY $post <> \u019E ; # LATIN SMALL LETTER N WITH LONG RIGHT LEG
-# $pre YYY $post <> \u019F ; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE
-# $pre YYY $post <> \u01A2 ; # LATIN CAPITAL LETTER OI
-# $pre YYY $post <> \u01A3 ; # LATIN SMALL LETTER OI
-# $pre YYY $post <> \u01A4 ; # LATIN CAPITAL LETTER P WITH HOOK
-# $pre YYY $post <> \u01A5 ; # LATIN SMALL LETTER P WITH HOOK
-# $pre YYY $post <> \u01A6 ; # LATIN LETTER YR
-# $pre YYY $post <> \u01A7 ; # LATIN CAPITAL LETTER TONE TWO
-# $pre YYY $post <> \u01A8 ; # LATIN SMALL LETTER TONE TWO
-# $pre YYY $post <> \u01AA ; # LATIN LETTER REVERSED ESH LOOP
-# $pre YYY $post <> \u01AB ; # LATIN SMALL LETTER T WITH PALATAL HOOK
-# $pre YYY $post <> \u01AC ; # LATIN CAPITAL LETTER T WITH HOOK
-# $pre YYY $post <> \u01AD ; # LATIN SMALL LETTER T WITH HOOK
-# $pre YYY $post <> \u01AE ; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
-# $pre YYY $post <> \u01B2 ; # LATIN CAPITAL LETTER V WITH HOOK
-# $pre YYY $post <> \u01B3 ; # LATIN CAPITAL LETTER Y WITH HOOK
-# $pre YYY $post <> \u01B4 ; # LATIN SMALL LETTER Y WITH HOOK
-# $pre YYY $post <> \u01B5 ; # LATIN CAPITAL LETTER Z WITH STROKE
-# $pre YYY $post <> \u01B6 ; # LATIN SMALL LETTER Z WITH STROKE
-# $pre YYY $post <> \u01B8 ; # LATIN CAPITAL LETTER EZH REVERSED
-# $pre YYY $post <> \u01B9 ; # LATIN SMALL LETTER EZH REVERSED
-# $pre YYY $post <> \u01BA ; # LATIN SMALL LETTER EZH WITH TAIL
-# $pre YYY $post <> \u01BB ; # LATIN LETTER TWO WITH STROKE
-# $pre YYY $post <> \u01BC ; # LATIN CAPITAL LETTER TONE FIVE
-# $pre YYY $post <> \u01BD ; # LATIN SMALL LETTER TONE FIVE
-# $pre YYY $post <> \u01BE ; # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE
-# $pre YYY $post <> \u01BF ; # LATIN LETTER WYNN
-# $pre YYY $post <> \u01C0 ; # LATIN LETTER DENTAL CLICK
-# $pre YYY $post <> \u01C1 ; # LATIN LETTER LATERAL CLICK
-# $pre YYY $post <> \u01C2 ; # LATIN LETTER ALVEOLAR CLICK
-# $pre YYY $post <> \u01C3 ; # LATIN LETTER RETROFLEX CLICK
-# $pre YYY $post <> \u01C4 ; # LATIN CAPITAL LETTER DZ WITH CARON
-# $pre YYY $post <> \u01C5 ; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON
-# $pre YYY $post <> \u01C6 ; # LATIN SMALL LETTER DZ WITH CARON
-# $pre YYY $post <> \u01C7 ; # LATIN CAPITAL LETTER LJ
-# $pre YYY $post <> \u01C8 ; # LATIN CAPITAL LETTER L WITH SMALL LETTER J
-# $pre YYY $post <> \u01C9 ; # LATIN SMALL LETTER LJ
-# $pre YYY $post <> \u01CA ; # LATIN CAPITAL LETTER NJ
-# $pre YYY $post <> \u01CB ; # LATIN CAPITAL LETTER N WITH SMALL LETTER J
-# $pre YYY $post <> \u01CC ; # LATIN SMALL LETTER NJ
-# $pre YYY $post <> \u01DD ; # LATIN SMALL LETTER TURNED E
-# $pre YYY $post <> \u01E4 ; # LATIN CAPITAL LETTER G WITH STROKE
-# $pre YYY $post <> \u01E5 ; # LATIN SMALL LETTER G WITH STROKE
-# $pre YYY $post <> \u01F1 ; # LATIN CAPITAL LETTER DZ
-# $pre YYY $post <> \u01F2 ; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z
-# $pre YYY $post <> \u01F3 ; # LATIN SMALL LETTER DZ
-# $pre YYY $post <> \u01F6 ; # LATIN CAPITAL LETTER HWAIR
-# $pre YYY $post <> \u01F7 ; # LATIN CAPITAL LETTER WYNN
-# $pre YYY $post <> \u021C ; # LATIN CAPITAL LETTER YOGH
-# $pre YYY $post <> \u021D ; # LATIN SMALL LETTER YOGH
-# $pre YYY $post <> \u0222 ; # LATIN CAPITAL LETTER OU
-# $pre YYY $post <> \u0223 ; # LATIN SMALL LETTER OU
-# $pre YYY $post <> \u0224 ; # LATIN CAPITAL LETTER Z WITH HOOK
-# $pre YYY $post <> \u0225 ; # LATIN SMALL LETTER Z WITH HOOK
-# $pre YYY $post <> \u0250 ; # LATIN SMALL LETTER TURNED A
-# $pre YYY $post <> \u0251 ; # LATIN SMALL LETTER ALPHA
-# $pre YYY $post <> \u0252 ; # LATIN SMALL LETTER TURNED ALPHA
-# $pre YYY $post <> \u0253 ; # LATIN SMALL LETTER B WITH HOOK
-# $pre YYY $post <> \u0255 ; # LATIN SMALL LETTER C WITH CURL
-# $pre YYY $post <> \u0256 ; # LATIN SMALL LETTER D WITH TAIL
-# $pre YYY $post <> \u0257 ; # LATIN SMALL LETTER D WITH HOOK
-# $pre YYY $post <> \u0258 ; # LATIN SMALL LETTER REVERSED E
-# $pre YYY $post <> \u025A ; # LATIN SMALL LETTER SCHWA WITH HOOK
-# $pre YYY $post <> \u025C ; # LATIN SMALL LETTER REVERSED OPEN E
-# $pre YYY $post <> \u025D ; # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK
-# $pre YYY $post <> \u025E ; # LATIN SMALL LETTER CLOSED REVERSED OPEN E
-# $pre YYY $post <> \u025F ; # LATIN SMALL LETTER DOTLESS J WITH STROKE
-# $pre YYY $post <> \u0260 ; # LATIN SMALL LETTER G WITH HOOK
-# $pre YYY $post <> \u0261 ; # LATIN SMALL LETTER SCRIPT G
-# $pre YYY $post <> \u0262 ; # LATIN LETTER SMALL CAPITAL G
-# $pre YYY $post <> \u0263 ; # LATIN SMALL LETTER GAMMA
-# $pre YYY $post <> \u0264 ; # LATIN SMALL LETTER RAMS HORN
-# $pre YYY $post <> \u0265 ; # LATIN SMALL LETTER TURNED H
-# $pre YYY $post <> \u0266 ; # LATIN SMALL LETTER H WITH HOOK
-# $pre YYY $post <> \u0267 ; # LATIN SMALL LETTER HENG WITH HOOK
-# $pre YYY $post <> \u0268 ; # LATIN SMALL LETTER I WITH STROKE
-# $pre YYY $post <> \u0269 ; # LATIN SMALL LETTER IOTA
-# $pre YYY $post <> \u026B ; # LATIN SMALL LETTER L WITH MIDDLE TILDE
-# $pre YYY $post <> \u026C ; # LATIN SMALL LETTER L WITH BELT
-# $pre YYY $post <> \u026D ; # LATIN SMALL LETTER L WITH RETROFLEX HOOK
-# $pre YYY $post <> \u026E ; # LATIN SMALL LETTER LEZH
-# $pre YYY $post <> \u026F ; # LATIN SMALL LETTER TURNED M
-# $pre YYY $post <> \u0270 ; # LATIN SMALL LETTER TURNED M WITH LONG LEG
-# $pre YYY $post <> \u0271 ; # LATIN SMALL LETTER M WITH HOOK
-# $pre YYY $post <> \u0272 ; # LATIN SMALL LETTER N WITH LEFT HOOK
-# $pre YYY $post <> \u0273 ; # LATIN SMALL LETTER N WITH RETROFLEX HOOK
-# $pre YYY $post <> \u0274 ; # LATIN LETTER SMALL CAPITAL N
-# $pre YYY $post <> \u0275 ; # LATIN SMALL LETTER BARRED O
-# $pre YYY $post <> \u0276 ; # LATIN LETTER SMALL CAPITAL OE
-# $pre YYY $post <> \u0277 ; # LATIN SMALL LETTER CLOSED OMEGA
-# $pre YYY $post <> \u0278 ; # LATIN SMALL LETTER PHI
-# $pre YYY $post <> \u0279 ; # LATIN SMALL LETTER TURNED R
-# $pre YYY $post <> \u027A ; # LATIN SMALL LETTER TURNED R WITH LONG LEG
-# $pre YYY $post <> \u027B ; # LATIN SMALL LETTER TURNED R WITH HOOK
-# $pre YYY $post <> \u027C ; # LATIN SMALL LETTER R WITH LONG LEG
-# $pre YYY $post <> \u027D ; # LATIN SMALL LETTER R WITH TAIL
-# $pre YYY $post <> \u027E ; # LATIN SMALL LETTER R WITH FISHHOOK
-# $pre YYY $post <> \u027F ; # LATIN SMALL LETTER REVERSED R WITH FISHHOOK
-# $pre YYY $post <> \u0280 ; # LATIN LETTER SMALL CAPITAL R
-# $pre YYY $post <> \u0281 ; # LATIN LETTER SMALL CAPITAL INVERTED R
-# $pre YYY $post <> \u0282 ; # LATIN SMALL LETTER S WITH HOOK
-# $pre YYY $post <> \u0284 ; # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK
-# $pre YYY $post <> \u0285 ; # LATIN SMALL LETTER SQUAT REVERSED ESH
-# $pre YYY $post <> \u0286 ; # LATIN SMALL LETTER ESH WITH CURL
-# $pre YYY $post <> \u0287 ; # LATIN SMALL LETTER TURNED T
-# $pre YYY $post <> \u0288 ; # LATIN SMALL LETTER T WITH RETROFLEX HOOK
-# $pre YYY $post <> \u0289 ; # LATIN SMALL LETTER U BAR
-# $pre YYY $post <> \u028B ; # LATIN SMALL LETTER V WITH HOOK
-# $pre YYY $post <> \u028D ; # LATIN SMALL LETTER TURNED W
-# $pre YYY $post <> \u028E ; # LATIN SMALL LETTER TURNED Y
-# $pre YYY $post <> \u028F ; # LATIN LETTER SMALL CAPITAL Y
-# $pre YYY $post <> \u0290 ; # LATIN SMALL LETTER Z WITH RETROFLEX HOOK
-# $pre YYY $post <> \u0291 ; # LATIN SMALL LETTER Z WITH CURL
-# $pre YYY $post <> \u0293 ; # LATIN SMALL LETTER EZH WITH CURL
-# $pre YYY $post <> \u0294 ; # LATIN LETTER GLOTTAL STOP
-# $pre YYY $post <> \u0295 ; # LATIN LETTER PHARYNGEAL VOICED FRICATIVE
-# $pre YYY $post <> \u0296 ; # LATIN LETTER INVERTED GLOTTAL STOP
-# $pre YYY $post <> \u0297 ; # LATIN LETTER STRETCHED C
-# $pre YYY $post <> \u0298 ; # LATIN LETTER BILABIAL CLICK
-# $pre YYY $post <> \u0299 ; # LATIN LETTER SMALL CAPITAL B
-# $pre YYY $post <> \u029A ; # LATIN SMALL LETTER CLOSED OPEN E
-# $pre YYY $post <> \u029B ; # LATIN LETTER SMALL CAPITAL G WITH HOOK
-# $pre YYY $post <> \u029C ; # LATIN LETTER SMALL CAPITAL H
-# $pre YYY $post <> \u029D ; # LATIN SMALL LETTER J WITH CROSSED-TAIL
-# $pre YYY $post <> \u029E ; # LATIN SMALL LETTER TURNED K
-# $pre YYY $post <> \u029F ; # LATIN LETTER SMALL CAPITAL L
-# $pre YYY $post <> \u02A0 ; # LATIN SMALL LETTER Q WITH HOOK
-# $pre YYY $post <> \u02A1 ; # LATIN LETTER GLOTTAL STOP WITH STROKE
-# $pre YYY $post <> \u02A2 ; # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE
-# $pre YYY $post <> \u02A3 ; # LATIN SMALL LETTER DZ DIGRAPH
-# $pre YYY $post <> \u02A4 ; # LATIN SMALL LETTER DEZH DIGRAPH
-# $pre YYY $post <> \u02A5 ; # LATIN SMALL LETTER DZ DIGRAPH WITH CURL
-# $pre YYY $post <> \u02A6 ; # LATIN SMALL LETTER TS DIGRAPH
-# $pre YYY $post <> \u02A7 ; # LATIN SMALL LETTER TESH DIGRAPH
-# $pre YYY $post <> \u02A8 ; # LATIN SMALL LETTER TC DIGRAPH WITH CURL
-# $pre YYY $post <> \u02A9 ; # LATIN SMALL LETTER FENG DIGRAPH
-# $pre YYY $post <> \u02AA ; # LATIN SMALL LETTER LS DIGRAPH
-# $pre YYY $post <> \u02AB ; # LATIN SMALL LETTER LZ DIGRAPH
-# $pre YYY $post <> \u02AC ; # LATIN LETTER BILABIAL PERCUSSIVE
-# $pre YYY $post <> \u02AD ; # LATIN LETTER BIDENTAL PERCUSSIVE
-# $pre YYY $post <> \u02B0 ; # MODIFIER LETTER SMALL H
-# $pre YYY $post <> \u02B1 ; # MODIFIER LETTER SMALL H WITH HOOK
-# $pre YYY $post <> \u02B2 ; # MODIFIER LETTER SMALL J
-# $pre YYY $post <> \u02B3 ; # MODIFIER LETTER SMALL R
-# $pre YYY $post <> \u02B4 ; # MODIFIER LETTER SMALL TURNED R
-# $pre YYY $post <> \u02B5 ; # MODIFIER LETTER SMALL TURNED R WITH HOOK
-# $pre YYY $post <> \u02B6 ; # MODIFIER LETTER SMALL CAPITAL INVERTED R
-# $pre YYY $post <> \u02B7 ; # MODIFIER LETTER SMALL W
-# $pre YYY $post <> \u02B8 ; # MODIFIER LETTER SMALL Y
-# $pre YYY $post <> \u02E0 ; # MODIFIER LETTER SMALL GAMMA
-# $pre YYY $post <> \u02E1 ; # MODIFIER LETTER SMALL L
-# $pre YYY $post <> \u02E2 ; # MODIFIER LETTER SMALL S
-# $pre YYY $post <> \u02E3 ; # MODIFIER LETTER SMALL X
-# $pre YYY $post <> \u02E4 ; # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-# $pre YYY $post <> \u1E9A ; # LATIN SMALL LETTER A WITH RIGHT HALF RING
-# $pre YYY $post <> \u207F ; # SUPERSCRIPT LATIN SMALL LETTER N
-
-:: NFC (NFD) ; \ No newline at end of file
+$pre AE $post <> Æ ; # LATIN CAPITAL LETTER AE
+$pre ae $post <> æ ; # LATIN SMALL LETTER AE
+$pre D $post <> Ã ; # LATIN CAPITAL LETTER ETH
+$pre d $post <> ð ; # LATIN SMALL LETTER ETH
+$pre O'/' $post <> Ø ; # LATIN CAPITAL LETTER O WITH STROKE
+$pre o'/' $post <> ø ; # LATIN SMALL LETTER O WITH STROKE
+$pre TH $post <> Þ ; # LATIN CAPITAL LETTER THORN
+$pre th $post <> þ ; # LATIN SMALL LETTER THORN
+$pre OE $post <> Å’ ; # LATIN CAPITAL LIGATURE OE
+$pre oe $post <> Å“ ; # LATIN SMALL LIGATURE OE
+$pre ss $post <> ß ; # LATIN SMALL LETTER SHARP S
+$pre NG $post <> ÅŠ ; # LATIN CAPITAL LETTER ENG
+$pre ng $post <> Å‹ ; # LATIN SMALL LETTER ENG
+$pre T $post <> Θ ; # THETA
+$pre t $post <> θ ; # THETA
+$pre SH $post <> Æ© ; # LATIN CAPITAL LETTER ESH
+$pre sh $post <> ʃ ; # LATIN SMALL LETTER ESH
+$pre ZH $post <> Æ· ; # LATIN CAPITAL LETTER EZH
+$pre zh $post <> Ê’ ; # LATIN SMALL LETTER EZH
+$pre U $post <> Ʊ ; # LATIN CAPITAL LETTER UPSILON
+$pre u $post <> ÊŠ ; # LATIN SMALL LETTER UPSILON
+$pre A $post <> Æ ; # LATIN CAPITAL LETTER SCHWA
+$pre a $post <> É™ ; # LATIN SMALL LETTER SCHWA
+$pre O $post <> Ɔ ; # LATIN CAPITAL LETTER OPEN O
+$pre o $post <> É” ; # LATIN SMALL LETTER OPEN O
+$pre E $post <> Æ ; # LATIN CAPITAL LETTER OPEN E
+$pre e $post <> É› ; # LATIN SMALL LETTER OPEN E
+$pre '?' $post <> Ê” ; # LATIN LETTER GLOTTAL STOP
+$pre i $post <> ɪ ; # LATIN LETTER SMALL CAPITAL I
+$pre v $post <> ʌ ; # LATIN SMALL LETTER TURNED V
+:: NFC (NFD) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Any_Publishing.txt b/Build/source/libs/icu-xetex/data/translit/Any_Publishing.txt
index 5e3c36b2144..9f81395ffa2 100644
--- a/Build/source/libs/icu-xetex/data/translit/Any_Publishing.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Any_Publishing.txt
@@ -1,34 +1,23 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Test case
-# "The" "(quick)" ('brown') `fox' ` jumped -- "over?"
-
-# Variables
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Any_Publishing.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
$single = \' ;
$space = ' ' ;
$double = \" ;
$back = \` ;
$tab = '\u0008' ;
$makeRight = [[:Z:][:Ps:][:Pi:]$] ;
-
-# fix UNIX quotes
-
$back $back > “ ;
$back > ‘ ;
-
-# fix typewriter quotes, by context
-
$makeRight {$double} <> “ ;
$double <> †;
-
$makeRight {$single} <> ‘ ;
$single <> ’;
-
-# fix multiple spaces and hyphens
-
$space {$space} > ;
'--' <> — ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Arabic_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Arabic_Latin.txt
index 3b8cdcf0cd4..dec58da8f1a 100644
--- a/Build/source/libs/icu-xetex/data/translit/Arabic_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Arabic_Latin.txt
@@ -1,146 +1,107 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Generally follows UNGEGN <http://www.eki.ee/wgrs/rom1_ar.pdf>
-# Occasionally deviates in the direction of ISO 233 <http://homepage.mac.com/sirbinks/pdf/Arabic.pdf>
-# a) where required for disambiguation.
-# b) with underdot instead of cedilla for letter like SAD, since
-# those are explicitly in Unicode for transliteration.
-# c) with extra non-Arabic-language letters, like PEH
-
-# Does *not* do assimilation of "al", nor hyphenation.
-# While it could be done, we need to determine whether a prefix "al" could
-# occur other than as the definite article (since no space is used).
-
-:: [[:Arabic:] [‎â¿\u060C\u061B\u061F\u0640\u064B-\u0655\u0660-\u066C\u06F0-\u06F9\uFDFC]] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Arabic_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+:: [[:Arabic:] [‎â¿ØŒØ›ØŸÙ€\u064B-\u0655Ù -Ù¬Û°-۹﷼ښ]] ;
:: NFKD (NFC);
-$disambig = ̱ ;
-$disambig2 = Ì° ;
-$under = ̣ ;
-
+$disambig = \u0331 ;
+$disambig2 = \u0330 ;
+$under = \u0323 ;
+$descender = ˌ;
$notAbove = [[:^ccc=0:]&[:^ccc=230:]];
-
-# non-letters
-
- Ù« <> '.' $disambig ; # ARABIC DECIMAL SEPARATOR
- Ù¬ <> ',' $disambig ; # ARABIC THOUSANDS SEPARATOR
-# Ù­ <> ; # ARABIC FIVE POINTED STAR // no need to transliterate
-
+Ù« <> '.' $disambig ; # ARABIC DECIMAL SEPARATOR
+Ù¬ <> ',' $disambig ; # ARABIC THOUSANDS SEPARATOR
، <> ',' ; # ARABIC COMMA
- Ø› <> ';' ; # ARABIC SEMICOLON
- ØŸ <> '?' ; # ARABIC QUESTION MARK
- Ùª <> '%' ; # ARABIC PERCENT SIGN
-
- Û° <> 0 $disambig ; # EXTENDED ARABIC-INDIC DIGIT ZERO
- Û± <> 1 $disambig ; # EXTENDED ARABIC-INDIC DIGIT ONE
- Û² <> 2 $disambig ; # EXTENDED ARABIC-INDIC DIGIT TWO
- Û³ <> 3 $disambig ; # EXTENDED ARABIC-INDIC DIGIT THREE
- Û´ <> 4 $disambig ; # EXTENDED ARABIC-INDIC DIGIT FOUR
- Ûµ <> 5 $disambig ; # EXTENDED ARABIC-INDIC DIGIT FIVE
- Û¶ <> 6 $disambig ; # EXTENDED ARABIC-INDIC DIGIT SIX
- Û· <> 7 $disambig ; # EXTENDED ARABIC-INDIC DIGIT SEVEN
- Û¸ <> 8 $disambig ; # EXTENDED ARABIC-INDIC DIGIT EIGHT
- Û¹ <> 9 $disambig ; # EXTENDED ARABIC-INDIC DIGIT NINE
-
- Ù  <> 0 ; # ARABIC-INDIC DIGIT ZERO
- Ù¡ <> 1 ; # ARABIC-INDIC DIGIT ONE
- Ù¢ <> 2 ; # ARABIC-INDIC DIGIT TWO
- Ù£ <> 3 ; # ARABIC-INDIC DIGIT THREE
- Ù¤ <> 4 ; # ARABIC-INDIC DIGIT FOUR
- Ù¥ <> 5 ; # ARABIC-INDIC DIGIT FIVE
- Ù¦ <> 6 ; # ARABIC-INDIC DIGIT SIX
- Ù§ <> 7 ; # ARABIC-INDIC DIGIT SEVEN
- Ù¨ <> 8 ; # ARABIC-INDIC DIGIT EIGHT
- Ù© <> 9 ; # ARABIC-INDIC DIGIT NINE
-
-# letters
-
-# long vowels
- َا<> ā ; # ARABIC FATHA, ARABIC LETTER ALEF
- ÙÙˆ <> uÌ„ ; # ARABIC DAMMA, ARABIC LETTER WAW
- ÙÙŠ <> iÌ„ ; # ARABIC KASRA, ARABIC LETTER YEH
-
-# longer items moved here to prevent masking
- Ø« <> t h $disambig ; # ARABIC LETTER THEH
- Ø° <> d h $disambig ; # ARABIC LETTER THAL
- Ø´ <> s h $disambig ; # ARABIC LETTER SHEEN
- ص <> s $under ; # ARABIC LETTER SAD
- ض <> d $under ; # ARABIC LETTER DAD
- Ø· <> t $under ; # ARABIC LETTER TAH
- ظ <> z $under ; # ARABIC LETTER ZAH
- غ <> g h $disambig ; # ARABIC LETTER GHAIN
-
-# WARNING: special case
-# <t, umlaut, half-ring below> will be canonically ordered as <t, half-ring below, umlaut>
-# so on the return, we have to skip over (but preserve) the half-ring below (or others like it)
-# ةٕ < ẗ̹ ; # LATIN SMALL LETTER T, COMBINING RIGHT HALF RING BELOW, COMBINING DIAERESIS
-
- Ø© <> t \u0308 ; # ARABIC LETTER TEH MARBUTA
- Ø© | $1 < t ($notAbove+) \u0308 ; # ARABIC LETTER TEH MARBUTA
-
-# non-Arabic language
- Ú˜ <> z h $disambig ; # ARABIC LETTER JEH
- Ú­ <> n $disambig g ; # ARABIC LETTER NG
- Û‹ <> v $disambig ; # ARABIC LETTER VE
- ی <> y $disambig2 ; # ARABIC LETTER FARSI YEH
-
-# Arabic language
-
- ء <> ʾ ; # ARABIC LETTER HAMZA
- ا <> a $under; # ARABIC LETTER ALEF
- ب <> b ; # ARABIC LETTER BEH
- ت <> t ; # ARABIC LETTER TEH
- ج <> j ; # ARABIC LETTER JEEM
- Ø­ <> h $under ; # ARABIC LETTER HAH
- Ø® <> k h $disambig ; # ARABIC LETTER KHAH
- د <> d ; # ARABIC LETTER DAL
- ر <> r ; # ARABIC LETTER REH
- ز <> z ; # ARABIC LETTER ZAIN
- س <> s ; # ARABIC LETTER SEEN
- ع <> ʿ ; # ARABIC LETTER AIN
- Ù€ > ; # ARABIC TATWEEL
- Ù <> f ; # ARABIC LETTER FEH
- Ù‚ <> q ; # ARABIC LETTER QAF
- Ùƒ <> k ; # ARABIC LETTER KAF
- Ù„ <> l ; # ARABIC LETTER LAM
- Ù… <> m ; # ARABIC LETTER MEEM
- Ù† <> n ; # ARABIC LETTER NOON
- Ù‡ <> h ; # ARABIC LETTER HEH
- Ùˆ <> w ; # ARABIC LETTER WAW
- Ù‰ <> y $disambig ; # ARABIC LETTER ALEF MAKSURA
- ÙŠ <> y ; # ARABIC LETTER YEH
- Ù‹ <> aâ¿ ; # ARABIC FATHATAN
- ٌ <> u⿠; # ARABIC DAMMATAN
- Ù <> iâ¿ ; # ARABIC KASRATAN
- ÙŽ <> a ; # ARABIC FATHA
- Ù <> u ; # ARABIC DAMMA
- Ù <> i ; # ARABIC KASRA
- ّ <> ̃ ; # ARABIC SHADDA
- Ù’ <> ÌŠ ; # ARABIC SUKUN
-
-# special combining marks
- Ù“ <> Ì‚ ; # ARABIC MADDAH ABOVE
- ٔ <> ̉ ; # ARABIC HAMZA ABOVE
- ٕ <> ̹ ; # ARABIC HAMZA BELOW
-
-# Some non-Arabic language (not in UNGEGN)
- Ù¾ <> p ; # ARABIC LETTER PEH
- Ú† <> c h $disambig ; # ARABIC LETTER TCHEH
- Ú¤ <> v ; # ARABIC LETTER VEH
-# Ú¥ <> v $disambig ; # ARABIC LETTER FEH WITH THREE DOTS BELOW
-# Ú¢ <> f $disambig ; # ARABIC LETTER FEH WITH DOT MOVED BELOW
- Ú¯ <> g ; # ARABIC LETTER GAF
-
-# fallbacks
+Ø› <> ';' ; # ARABIC SEMICOLON
+ØŸ <> '?' ; # ARABIC QUESTION MARK
+Ùª <> '%' ; # ARABIC PERCENT SIGN
+Û° <> 0 $disambig ; # EXTENDED ARABIC-INDIC DIGIT ZERO
+Û± <> 1 $disambig ; # EXTENDED ARABIC-INDIC DIGIT ONE
+Û² <> 2 $disambig ; # EXTENDED ARABIC-INDIC DIGIT TWO
+Û³ <> 3 $disambig ; # EXTENDED ARABIC-INDIC DIGIT THREE
+Û´ <> 4 $disambig ; # EXTENDED ARABIC-INDIC DIGIT FOUR
+Ûµ <> 5 $disambig ; # EXTENDED ARABIC-INDIC DIGIT FIVE
+Û¶ <> 6 $disambig ; # EXTENDED ARABIC-INDIC DIGIT SIX
+Û· <> 7 $disambig ; # EXTENDED ARABIC-INDIC DIGIT SEVEN
+Û¸ <> 8 $disambig ; # EXTENDED ARABIC-INDIC DIGIT EIGHT
+Û¹ <> 9 $disambig ; # EXTENDED ARABIC-INDIC DIGIT NINE
+Ù  <> 0 ; # ARABIC-INDIC DIGIT ZERO
+Ù¡ <> 1 ; # ARABIC-INDIC DIGIT ONE
+Ù¢ <> 2 ; # ARABIC-INDIC DIGIT TWO
+Ù£ <> 3 ; # ARABIC-INDIC DIGIT THREE
+Ù¤ <> 4 ; # ARABIC-INDIC DIGIT FOUR
+Ù¥ <> 5 ; # ARABIC-INDIC DIGIT FIVE
+Ù¦ <> 6 ; # ARABIC-INDIC DIGIT SIX
+Ù§ <> 7 ; # ARABIC-INDIC DIGIT SEVEN
+Ù¨ <> 8 ; # ARABIC-INDIC DIGIT EIGHT
+Ù© <> 9 ; # ARABIC-INDIC DIGIT NINE
+\u064Eا<> a\u0304 ; # ARABIC FATHA, ARABIC LETTER ALEF
+\u064FÙˆ <> u\u0304 ; # ARABIC DAMMA, ARABIC LETTER WAW
+\u0650ÙŠ <> i\u0304 ; # ARABIC KASRA, ARABIC LETTER YEH
+Ø« <> t h $disambig ; # ARABIC LETTER THEH
+Ø° <> d h $disambig ; # ARABIC LETTER THAL
+Ø´ <> s h $disambig ; # ARABIC LETTER SHEEN
+ص <> s $under ; # ARABIC LETTER SAD
+ض <> d $under ; # ARABIC LETTER DAD
+Ø· <> t $under ; # ARABIC LETTER TAH
+ظ <> z $under ; # ARABIC LETTER ZAH
+غ <> g h $disambig ; # ARABIC LETTER GHAIN
+Ø© <> t \u0308 ; # ARABIC LETTER TEH MARBUTA
+Ø© | $1 < t ($notAbove+) \u0308 ; # ARABIC LETTER TEH MARBUTA
+Ú˜ <> z h $disambig ; # ARABIC LETTER JEH
+Ú­ <> n $disambig g ; # ARABIC LETTER NG
+Û‹ <> v $disambig ; # ARABIC LETTER VE
+ی <> y $disambig2 ; # ARABIC LETTER FARSI YEH
+Úš <> s $descender;
+ء <> ʾ ; # ARABIC LETTER HAMZA
+ا <> a $under; # ARABIC LETTER ALEF
+ب <> b ; # ARABIC LETTER BEH
+ت <> t ; # ARABIC LETTER TEH
+ج <> j ; # ARABIC LETTER JEEM
+Ø­ <> h $under ; # ARABIC LETTER HAH
+Ø® <> k h $disambig ; # ARABIC LETTER KHAH
+د <> d ; # ARABIC LETTER DAL
+ر <> r ; # ARABIC LETTER REH
+ز <> z ; # ARABIC LETTER ZAIN
+س <> s ; # ARABIC LETTER SEEN
+ع <> ʿ ; # ARABIC LETTER AIN
+Ù€ > ; # ARABIC TATWEEL
+Ù <> f ; # ARABIC LETTER FEH
+Ù‚ <> q ; # ARABIC LETTER QAF
+Ùƒ <> k ; # ARABIC LETTER KAF
+Ù„ <> l ; # ARABIC LETTER LAM
+Ù… <> m ; # ARABIC LETTER MEEM
+Ù† <> n ; # ARABIC LETTER NOON
+Ù‡ <> h ; # ARABIC LETTER HEH
+Ùˆ <> w ; # ARABIC LETTER WAW
+Ù‰ <> y $disambig ; # ARABIC LETTER ALEF MAKSURA
+ÙŠ <> y ; # ARABIC LETTER YEH
+\u064B <> aâ¿ ; # ARABIC FATHATAN
+\u064C <> uâ¿ ; # ARABIC DAMMATAN
+\u064D <> iâ¿ ; # ARABIC KASRATAN
+\u064E <> a ; # ARABIC FATHA
+\u064F <> u ; # ARABIC DAMMA
+\u0650 <> i ; # ARABIC KASRA
+\u0651 <> \u0303 ; # ARABIC SHADDA
+\u0652 <> \u030A ; # ARABIC SUKUN
+\u0653 <> \u0302 ; # ARABIC MADDAH ABOVE
+\u0654 <> \u0309 ; # ARABIC HAMZA ABOVE
+\u0655 <> \u0339 ; # ARABIC HAMZA BELOW
+Ù¾ <> p ; # ARABIC LETTER PEH
+Ú† <> c h $disambig ; # ARABIC LETTER TCHEH
+Ú¤ <> v ; # ARABIC LETTER VEH
+Ú¯ <> g ; # ARABIC LETTER GAF
| s < c } [eiy];
| k < c ;
| i < e ;
| u < o ;
| ks < x ;
| n < ‎â¿;
-
:: (lower) ;
::NFC (NFD);
-:: ( [[:Latin:] [%,.0-9;?\u02BE-\u02BF\u0302-\u0304\u0308-\u030A\u0323\u0330-\u0331\u0339\u037E]] ); \ No newline at end of file
+:: ( [[:Latin:] [%,.0-9;?ʾ-ʿ\u0302-\u0304\u0308-\u030A\u0323\u0330-\u0331\u0339;ˌ]] );
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Devanagari.txt
new file mode 100644
index 00000000000..737da17925f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Gujarati.txt
new file mode 100644
index 00000000000..07592838159
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Gurmukhi.txt
new file mode 100644
index 00000000000..096fc0b2cfc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_InterIndic.txt
index a1229317709..6409a5e82a3 100644
--- a/Build/source/libs/icu-xetex/data/translit/Bengali_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_InterIndic.txt
@@ -1,103 +1,101 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Bengali-InterIndic
-
-\u09C7\u09BE>\uE04B; # VOWEL SIGN O
-\u09C7\u09D7>\uE04C; # VOWEL SIGN AU
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+ো>\uE04B; # VOWEL SIGN O
+ৌ>\uE04C; # VOWEL SIGN AU
\u0981>\uE001; # SIGN CANDRABINDU
-\u0982>\uE002; # SIGN ANUSVARA
-\u0983>\uE003; # SIGN VISARGA
-\u0985>\uE005; # LETTER A
-\u0986>\uE006; # LETTER AA
-\u0987>\uE007; # LETTER I
-\u0988>\uE008; # LETTER II
-\u0989>\uE009; # LETTER U
-\u098A>\uE00A; # LETTER UU
-\u098B>\uE00B; # LETTER VOCALIC R
-\u098C>\uE00C; # LETTER VOCALIC L
-\u098F>\uE00F; # LETTER E
-\u0990>\uE010; # LETTER AI
-\u0993>\uE013; # LETTER O
-\u0994>\uE014; # LETTER AU
-\u0995>\uE015; # LETTER KA
-\u0996>\uE016; # LETTER KHA
-\u0997>\uE017; # LETTER GA
-\u0998>\uE018; # LETTER GHA
-\u0999>\uE019; # LETTER NGA
-\u099A>\uE01A; # LETTER CA
-\u099B>\uE01B; # LETTER CHA
-\u099C>\uE01C; # LETTER JA
-\u099D>\uE01D; # LETTER JHA
-\u099E>\uE01E; # LETTER NYA
-\u099F>\uE01F; # LETTER TTA
-\u09A0>\uE020; # LETTER TTHA
-\u09A1>\uE021; # LETTER DDA
-\u09A2>\uE022; # LETTER DDHA
-\u09A3>\uE023; # LETTER NNA
-\u09A4>\uE024; # LETTER TA
-\u09A5>\uE025; # LETTER THA
-\u09A6>\uE026; # LETTER DA
-\u09A7>\uE027; # LETTER DHA
-\u09A8>\uE028; # LETTER NA
-\u09AA>\uE02A; # LETTER PA
-\u09AB>\uE02B; # LETTER PHA
-\u09AC>\uE02C; # LETTER BA
-\u09AD>\uE02D; # LETTER BHA
-\u09AE>\uE02E; # LETTER MA
-\u09AF>\uE02F; # LETTER YA
-\u09B0>\uE030; # LETTER RA
-\u09B2>\uE032; # LETTER LA
-\u09B6>\uE036; # LETTER SHA
-\u09B7>\uE037; # LETTER SSA
-\u09B8>\uE038; # LETTER SA
-\u09B9>\uE039; # LETTER HA
+ং>\uE002; # SIGN ANUSVARA
+ঃ>\uE003; # SIGN VISARGA
+অ>\uE005; # LETTER A
+আ>\uE006; # LETTER AA
+ই>\uE007; # LETTER I
+ঈ>\uE008; # LETTER II
+উ>\uE009; # LETTER U
+ঊ>\uE00A; # LETTER UU
+ঋ>\uE00B; # LETTER VOCALIC R
+ঌ>\uE00C; # LETTER VOCALIC L
+à¦>\uE00F; # LETTER E
+à¦>\uE010; # LETTER AI
+ও>\uE013; # LETTER O
+ঔ>\uE014; # LETTER AU
+ক>\uE015; # LETTER KA
+খ>\uE016; # LETTER KHA
+গ>\uE017; # LETTER GA
+ঘ>\uE018; # LETTER GHA
+ঙ>\uE019; # LETTER NGA
+চ>\uE01A; # LETTER CA
+ছ>\uE01B; # LETTER CHA
+জ>\uE01C; # LETTER JA
+à¦>\uE01D; # LETTER JHA
+ঞ>\uE01E; # LETTER NYA
+ট>\uE01F; # LETTER TTA
+ঠ>\uE020; # LETTER TTHA
+ড>\uE021; # LETTER DDA
+ঢ>\uE022; # LETTER DDHA
+ণ>\uE023; # LETTER NNA
+ত>\uE024; # LETTER TA
+থ>\uE025; # LETTER THA
+দ>\uE026; # LETTER DA
+ধ>\uE027; # LETTER DHA
+ন>\uE028; # LETTER NA
+প>\uE02A; # LETTER PA
+ফ>\uE02B; # LETTER PHA
+ব>\uE02C; # LETTER BA
+ভ>\uE02D; # LETTER BHA
+ম>\uE02E; # LETTER MA
+য>\uE02F; # LETTER YA
+র>\uE030; # LETTER RA
+ল>\uE032; # LETTER LA
+শ>\uE036; # LETTER SHA
+ষ>\uE037; # LETTER SSA
+স>\uE038; # LETTER SA
+হ>\uE039; # LETTER HA
\u09BC>\uE03C; # SIGN NUKTA
-\u09BD>\uE03D; # SIGN AVAGRAHA
-\u09BE>\uE03E; # VOWEL SIGN AA
-\u09BF>\uE03F; # VOWEL SIGN I
-\u09C0>\uE040; # VOWEL SIGN II
+ঽ>\uE03D; # SIGN AVAGRAHA
+া>\uE03E; # VOWEL SIGN AA
+ি>\uE03F; # VOWEL SIGN I
+ী>\uE040; # VOWEL SIGN II
\u09C1>\uE041; # VOWEL SIGN U
\u09C2>\uE042; # VOWEL SIGN UU
\u09C3>\uE043; # VOWEL SIGN VOCALIC R
\u09C4>\uE044; # VOWEL SIGN VOCALIC RR
-\u09C7>\uE047; # VOWEL SIGN E
-\u09C8>\uE048; # VOWEL SIGN AI
-\u09CB>\uE04B;
-\u09CC>\uE04C;
-#
+ে>\uE047; # VOWEL SIGN E
+ৈ>\uE048; # VOWEL SIGN AI
+ো>\uE04B;
+ৌ>\uE04C;
\u09CD>\uE04D; # SIGN VIRAMA
-\u09ce>\ue083; # Khanda-ta
-\u09D7>\uE057; # AU LENGTH MARK
-#
-\u09E0>\uE060; # LETTER VOCALIC RR
-\u09E1>\uE061; # LETTER VOCALIC LL
+ৎ>\uE083; # Khanda-ta
+ৗ>\uE057; # AU LENGTH MARK
+ৠ>\uE060; # LETTER VOCALIC RR
+ৡ>\uE061; # LETTER VOCALIC LL
\u09E2>\uE062; # VOWEL SIGN VOCALIC L
\u09E3>\uE063; # VOWEL SIGN VOCALIC LL
-\u09E6>\uE066; # DIGIT ZERO
-\u09E7>\uE067; # DIGIT ONE
-\u09E8>\uE068; # DIGIT TWO
-\u09E9>\uE069; # DIGIT THREE
-\u09EA>\uE06A; # DIGIT FOUR
-\u09EB>\uE06B; # DIGIT FIVE
-\u09EC>\uE06C; # DIGIT SIX
-\u09ED>\uE06D; # DIGIT SEVEN
-\u09EE>\uE06E; # DIGIT EIGHT
-\u09EF>\uE06F; # DIGIT NINE
-\u09F0>\ue071; # Bengali-InterIndic: LETTER RA WITH MIDDLE DIAGONAL
-\u09F1>\ue072; # Bengali-InterIndic: LETTER RA WITH LOWER DIAGONAL
-\u09F2>\ue073; # Bengali-InterIndic: RUPEE MARK
-\u09F3>\ue074; # Bengali-InterIndic: RUPEE SIGN
-\u09F4>\ue075; # Bengali-InterIndic: CURRENCY NUMERATOR ONE
-\u09F5>\ue076; # Bengali-InterIndic: CURRENCY NUMERATOR TWO
-\u09F6>\ue077; # Bengali-InterIndic: CURRENCY NUMERATOR THREE
-\u09F7>\ue078; # Bengali-InterIndic: CURRENCY NUMERATOR FOUR
-\u09F8>\ue079; # Bengali-InterIndic: CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\u09F9>\ue07A; # Bengali-InterIndic: CURRENCY DENOMINATOR SIXTEEN
-\u09FA>\ue07B; # ISSHAR
-\u0964>\ue064; # DANDA
-\u0965>\ue065; # DOUBLE DANDA
-# :: NFC (NFD) ;
-# eof
+০>\uE066; # DIGIT ZERO
+১>\uE067; # DIGIT ONE
+২>\uE068; # DIGIT TWO
+৩>\uE069; # DIGIT THREE
+৪>\uE06A; # DIGIT FOUR
+৫>\uE06B; # DIGIT FIVE
+৬>\uE06C; # DIGIT SIX
+৭>\uE06D; # DIGIT SEVEN
+৮>\uE06E; # DIGIT EIGHT
+৯>\uE06F; # DIGIT NINE
+ৰ>\uE071; # Bengali-InterIndic: LETTER RA WITH MIDDLE DIAGONAL
+ৱ>\uE072; # Bengali-InterIndic: LETTER RA WITH LOWER DIAGONAL
+৲>\uE073; # Bengali-InterIndic: RUPEE MARK
+৳>\uE074; # Bengali-InterIndic: RUPEE SIGN
+৴>\uE075; # Bengali-InterIndic: CURRENCY NUMERATOR ONE
+৵>\uE076; # Bengali-InterIndic: CURRENCY NUMERATOR TWO
+৶>\uE077; # Bengali-InterIndic: CURRENCY NUMERATOR THREE
+৷>\uE078; # Bengali-InterIndic: CURRENCY NUMERATOR FOUR
+৸>\uE079; # Bengali-InterIndic: CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+৹>\uE07A; # Bengali-InterIndic: CURRENCY DENOMINATOR SIXTEEN
+৺>\uE07B; # ISSHAR
+।>\uE064; # DANDA
+॥>\uE065; # DOUBLE DANDA
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Kannada.txt
new file mode 100644
index 00000000000..1c8ccacd44d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Latin.txt
new file mode 100644
index 00000000000..f67ef4ae547
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Malayalam.txt
new file mode 100644
index 00000000000..6865a2924c6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Oriya.txt
new file mode 100644
index 00000000000..88eb0aac9b1
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Tamil.txt
new file mode 100644
index 00000000000..d93a2d91efc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Bengali_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Bengali_Telugu.txt
new file mode 100644
index 00000000000..366f50d9f31
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Bengali_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Bengali_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[।-॥\u0981-ঃঅ-ঌà¦-à¦à¦“-নপ-রলশ-হ\u09BC-\u09C4ে-ৈো-\u09CDৗড়-à§à§Ÿ-\u09E3০-৺ৎ];
+::NFD;
+::Bengali-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/CanadianAboriginal_Latin.txt b/Build/source/libs/icu-xetex/data/translit/CanadianAboriginal_Latin.txt
new file mode 100644
index 00000000000..29d8cad311c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/CanadianAboriginal_Latin.txt
@@ -0,0 +1,191 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: CanadianAboriginal_Latin.txt
+# Generated from CLDR: Thu Jul 20 14:57:44 PDT 2006
+#
+šwê <> ᔗ ;
+šwî <> ᔛ ;
+Å¡wi <> á”™ ;
+šwô <> ᔟ ;
+Å¡wo <> á” ;
+šwâ <> ᔣ ;
+šwa <> ᔡ ;
+pwê <> Ạ;
+pwî <> ᾠ;
+pwi <> á¼ ;
+pwô <> ᑂ ;
+pwo <> á‘€ ;
+pwâ <> ᑆ ;
+pwa <> á‘„ ;
+twê <> ᑗ ;
+twî <> ᑛ ;
+twi <> á‘™ ;
+twô <> ᑟ ;
+two <> á‘ ;
+twâ <> ᑣ ;
+twa <> á‘¡ ;
+kwê <> ᑴ ;
+kwî <> ᑸ ;
+kwi <> ᑶ ;
+kwô <> ᑼ ;
+kwo <> ᑺ ;
+kwâ <> ᒀ ;
+kwa <> ᑾ ;
+cwê <> ᒒ ;
+cwî <> ᒖ ;
+cwi <> á’” ;
+cwô <> ᒚ ;
+cwo <> á’˜ ;
+cwâ <> ᒞ ;
+cwa <> ᒜ ;
+mwê <> ᒬ ;
+mwî <> ᒰ ;
+mwi <> á’® ;
+mwô <> ᒴ ;
+mwo <> á’² ;
+mwâ <> ᒸ ;
+mwa <> á’¶ ;
+nwê <> ᓉ ;
+nwâ <> ᓠ;
+nwa <> á“‹ ;
+lwê <> ᓜ ;
+lwî <> ᓠ ;
+lwi <> á“ž ;
+lwô <> ᓤ ;
+lwo <> á“¢ ;
+lwâ <> ᓨ ;
+lwa <> ᓦ ;
+swê <> ᓶ ;
+swî <> ᓺ ;
+swi <> ᓸ ;
+swô <> ᓾ ;
+swo <> ᓼ ;
+swâ <> ᔂ ;
+swa <> ᔀ ;
+ywê <> ᔯ ;
+ywî <> ᔳ ;
+ywi <> á”± ;
+ywô <> ᔷ ;
+ywo <> ᔵ ;
+ywâ <> ᔻ ;
+ywa <> ᔹ ;
+rwâ <> ᕎ ;
+hk <> ᕽ ;
+thê <> ᖧ ;
+thî <> ᖩ ;
+thi <> á–¨ ;
+thô <> ᖫ ;
+tho <> á–ª ;
+thâ <> ᖭ ;
+tha <> á–¬ ;
+th <> á–® ;
+šê <> ᔠ;
+šî <> ᔑ ;
+Å¡i <> á”’ ;
+šô <> ᔓ ;
+Å¡o <> á”” ;
+šâ <> ᔕ ;
+Å¡a <> á”– ;
+š <> ᔥ ;
+wê <> ጠ;
+wî <> á ;
+wi <> Ꭰ;
+wô <> ᔠ;
+wo <> á’ ;
+wâ <> ᙠ;
+wa <> á— ;
+w <> ᤠ;
+pê <> ᯠ;
+pî <> Რ;
+pi <> á± ;
+pô <> ᴠ;
+po <> á³ ;
+pâ <> Ṡ;
+pa <> Ḡ;
+p <> ᑉ ;
+tê <> ᑌ ;
+tî <> ᑠ;
+ti <> á‘Ž ;
+tô <> ᑑ ;
+to <> á‘ ;
+tâ <> ᑖ ;
+ta <> á‘• ;
+t <> ᑦ ;
+kê <> ᑫ ;
+kî <> ᑮ ;
+ki <> á‘­ ;
+kô <> ᑰ ;
+ko <> ᑯ ;
+kâ <> ᑳ ;
+ka <> ᑲ ;
+kw <> á’„ ;
+k <> á’ƒ ;
+cê <> ᒉ ;
+cî <> ᒌ ;
+ci <> á’‹ ;
+cô <> ᒎ ;
+co <> á’ ;
+câ <> ᒑ ;
+ca <> á’ ;
+c <> á’¡ ;
+mê <> ᒣ ;
+mî <> ᒦ ;
+mi <> á’¥ ;
+mô <> ᒨ ;
+mo <> á’§ ;
+mâ <> ᒫ ;
+ma <> á’ª ;
+m <> á’» ;
+nê <> ᓀ ;
+nî <> ᓃ ;
+ni <> á“‚ ;
+nô <> ᓅ ;
+no <> á“„ ;
+nâ <> ᓈ ;
+na <> ᓇ ;
+n <> á“ ;
+lê <> ᓓ ;
+lî <> ᓖ ;
+li <> á“• ;
+lô <> ᓘ ;
+lo <> á“— ;
+lâ <> ᓛ ;
+la <> á“š ;
+l <> ᓪ ;
+sê <> ᓭ ;
+sî <> ᓰ ;
+si <> ᓯ ;
+sô <> ᓲ ;
+so <> ᓱ ;
+sâ <> ᓵ ;
+sa <> á“´ ;
+s <> á”… ;
+yê <> ᔦ ;
+yî <> ᔩ ;
+yi <> ᔨ ;
+yô <> ᔫ ;
+yo <> ᔪ ;
+yâ <> ᔮ ;
+ya <> á”­ ;
+y <> ᔾ ;
+rê <> ᕂ ;
+rî <> ᕇ ;
+ri <> ᕆ ;
+rô <> ᕉ ;
+ro <> ᕈ ;
+râ <> ᕌ ;
+ra <> á•‹ ;
+r <> á• ;
+hê <> á ;
+hî <> ᄠ;
+hi <> რ;
+hô <> ᆠ;
+ho <> á… ;
+hâ <> ዠ;
+ha <> አ;
+h <> ᦠ;
+'.' <> á™® ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Cyrillic_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Cyrillic_Latin.txt
index c50e9d6849e..50ec9973e10 100644
--- a/Build/source/libs/icu-xetex/data/translit/Cyrillic_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Cyrillic_Latin.txt
@@ -1,21 +1,16 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-# TODO: add remaining characters
-# Should add variants for Russian-English, Russian-German
-# Those can use this as a base, and then remap cases
-# like a $hat to ya or ja.
-
-# :: [\u0000-\u007E \u02B9 \u02BA [:Cyrillic:] [:Latin:] [:nonspacing mark:]] ;
-### WARNING, \u0308 must be added to the generated filters, in both directions ###
-# MINIMAL FILTER
-:: [\u0308\u0102-\u0103\u0114-\u0115\u011E-\u011F\u012C-\u012D\u014E-\u014F\u016C-\u016D\u0306\u0400-\u045F\u0490-\u0495\u0498-\u0499\u04C1-\u04C2\u04D0-\u04DF\u04E2-\u04E7\u04EC-\u04F5\u04F8-\u04F9\u1E1C-\u1E1D\u1EAE-\u1EB7\u1FB0\u1FB8\u1FD0\u1FD8\u1FE0\u1FE8] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Cyrillic_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+:: [ÒšÒ›\u0308Ä‚-ăĔ-Ä•Äž-ğĬ-Ä­ÅŽ-ÅŬ-Å­\u0306Ѐ-ÑŸÒ-Ò•Ò˜-Ò™Ó-Ó‚Ó-ÓŸÓ¢-Ó§Ó¬-ÓµÓ¸-ӹḜ-á¸áº®-ặᾰᾸá¿á¿˜á¿ á¿¨] ;
:: NFD (NFC) ;
-
-$modprime = \u02B9;
-$modprime2 = \u02BA;
-
+$modprime = ʹ;
+$modprime2 = ʺ;
$grave = \u0300;
$acute = \u0301;
$hat = \u0302;
@@ -24,68 +19,45 @@ $dot = \u0307 ;
$caron = \u030C ;
$comma = \u0326 ;
$under = \u0331 ;
-
-# move up so not masked
-
+$descender = ˌ;
Ñ <> a $hat ; # CYRILLIC SMALL LETTER YA
Я <> A $hat ; # CYRILLIC CAPITAL LETTER YA
-
ч <> c $caron ; # CYRILLIC SMALL LETTER CHE
Ч <> C $caron; # CYRILLIC CAPITAL LETTER CHE
-# Ò· <> XXX ; # CYRILLIC SMALL LETTER CHE WITH DESCENDER
-# Ò¶ <> XXX ; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
-# ӌ <> XXX ; # CYRILLIC SMALL LETTER KHAKASSIAN CHE
-# Ó‹ <> XXX ; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
-# Ò¹ <> XXX ; # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
-# Ò¸ <> XXX ; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
-
Ñ <> e $acute; # CYRILLIC SMALL LETTER E
Э <> E $acute; # CYRILLIC CAPITAL LETTER E
Ñ” <> e $hat; # CYRILLIC SMALL LETTER UKRAINIAN IE
Є <> E $hat; # CYRILLIC CAPITAL LETTER UKRAINIAN IE
-
ш <> s $caron ; # CYRILLIC SMALL LETTER SHA
Ш <> S $caron ; # CYRILLIC CAPITAL LETTER SHA
щ <> s $hat ; # CYRILLIC SMALL LETTER SHCHA
Щ <> S $hat; # CYRILLIC CAPITAL LETTER SHCHA
-
Ñ• <> z $hat ; # CYRILLIC SMALL LETTER DZE
Ð… <> Z $hat; # CYRILLIC CAPITAL LETTER DZE
-# Ó¡ <> XXX ; # CYRILLIC SMALL LETTER ABKHASIAN DZE
-# Ó  <> XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE
-
ÑŽ <> u $hat ; # CYRILLIC SMALL LETTER YU
Ю <> U $hat ; # CYRILLIC CAPITAL LETTER YU
-
Ñ– <> i $acute; # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
І <> I $acute; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
ј <> j $caron; # CYRILLIC SMALL LETTER JE
Ј <> J $caron; # CYRILLIC CAPITAL LETTER JE
-
Ñ™ <> l $hat ; # CYRILLIC SMALL LETTER LJE
Љ <> L $hat ; # CYRILLIC CAPITAL LETTER LJE
Ñš <> n $hat ; # CYRILLIC SMALL LETTER NJE
Њ <> N $hat ; # CYRILLIC CAPITAL LETTER NJE
-
Ñ› <> c $acute ; # CYRILLIC SMALL LETTER TSHE
Ћ <> C $acute ; # CYRILLIC CAPITAL LETTER TSHE
-
ÑŸ <> d $hat ; # CYRILLIC SMALL LETTER DZHE
Ð <> D $hat ; # CYRILLIC CAPITAL LETTER DZHE
-
-# Normal order
-
а <> a ; # CYRILLIC SMALL LETTER A
Ð <> A ; # CYRILLIC CAPITAL LETTER A
-Ó™ <> \u0259 ; # CYRILLIC SMALL LETTER SCHWA
-Ó˜ <> \u018F ; # CYRILLIC CAPITAL LETTER SCHWA
-Ó• <> \u00E6 ; # CYRILLIC SMALL LIGATURE A IE
-Ó” <> \u00C6 ; # CYRILLIC CAPITAL LIGATURE A IE
+Ó™ <> É™ ; # CYRILLIC SMALL LETTER SCHWA
+Ó˜ <> Æ ; # CYRILLIC CAPITAL LETTER SCHWA
+ӕ <> æ ; # CYRILLIC SMALL LIGATURE A IE
+Ӕ <> Æ ; # CYRILLIC CAPITAL LIGATURE A IE
б <> b ; # CYRILLIC SMALL LETTER BE
Б <> B ; # CYRILLIC CAPITAL LETTER BE
в <> v ; # CYRILLIC SMALL LETTER VE
Ð’ <> V ; # CYRILLIC CAPITAL LETTER VE
-
Ò‘ <> g $grave ; # CYRILLIC SMALL LETTER GHE WITH UPTURN
Ò <> G $grave ; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
Ò“ <> g $dot ; # CYRILLIC SMALL LETTER GHE WITH STROKE
@@ -94,7 +66,6 @@ $under = \u0331 ;
Ò” <> G $breve; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
г <> g ; # CYRILLIC SMALL LETTER GHE
Г <> G ; # CYRILLIC CAPITAL LETTER GHE
-
д <> d; # CYRILLIC SMALL LETTER DE
Д <> D; # CYRILLIC CAPITAL LETTER DE
Ñ’ <> Ä‘ ; # CYRILLIC SMALL LETTER DJE
@@ -103,192 +74,48 @@ $under = \u0331 ;
Ò˜ <> Z $comma ; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
е <> e ; # CYRILLIC SMALL LETTER IE
Е <> E; # CYRILLIC CAPITAL LETTER IE
-
ж <> z $caron; # CYRILLIC SMALL LETTER ZHE
Ж <> Z $caron; # CYRILLIC CAPITAL LETTER ZHE
-
-# Ò— <> XXX ; # CYRILLIC SMALL LETTER ZHE WITH DESCENDER
-# Ò– <> XXX ; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
-
з <> z ; # CYRILLIC SMALL LETTER ZE
З <> Z; # CYRILLIC CAPITAL LETTER ZE
-
-й <> j ; # CYRILLIC SMALL LETTER I
-Й <> J ; # CYRILLIC CAPITAL LETTER I
+и\u0306 <> j ; # CYRILLIC SMALL LETTER I
+И\u0306 <> J ; # CYRILLIC CAPITAL LETTER I
и <> i ; # CYRILLIC SMALL LETTER I
И <> I ; # CYRILLIC CAPITAL LETTER I
-
+Ò› <> k $descender ; # CYRILLIC SMALL LETTER KA WITH DESCENDER
+Òš <> K $descender ; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
к <> k ; # CYRILLIC SMALL LETTER KA
К <> K; # CYRILLIC CAPITAL LETTER KA
-
-# Ò› <> XXX ; # CYRILLIC SMALL LETTER KA WITH DESCENDER
-# Òš <> XXX ; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER
-# Ó„ <> XXX ; # CYRILLIC SMALL LETTER KA WITH HOOK
-# Óƒ <> XXX ; # CYRILLIC CAPITAL LETTER KA WITH HOOK
-# Ò¡ <> XXX ; # CYRILLIC SMALL LETTER BASHKIR KA
-# Ò  <> XXX ; # CYRILLIC CAPITAL LETTER BASHKIR KA
-# ÒŸ <> XXX ; # CYRILLIC SMALL LETTER KA WITH STROKE
-# Òž <> XXX ; # CYRILLIC CAPITAL LETTER KA WITH STROKE
-# Ò <> XXX ; # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
-# Ҝ <> XXX ; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
л <> l ; # CYRILLIC SMALL LETTER EL
Л <> L; # CYRILLIC CAPITAL LETTER EL
-
м <> m ; # CYRILLIC SMALL LETTER EM
М <> M ; # CYRILLIC CAPITAL LETTER EM
н <> n ; # CYRILLIC SMALL LETTER EN
Ð <> N; # CYRILLIC CAPITAL LETTER EN
-# Ò£ <> XXX ; # CYRILLIC SMALL LETTER EN WITH DESCENDER
-# Ò¢ <> XXX ; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER
-# Óˆ <> XXX ; # CYRILLIC SMALL LETTER EN WITH HOOK
-# Ó‡ <> XXX ; # CYRILLIC CAPITAL LETTER EN WITH HOOK
-# Ò¥ <> XXX ; # CYRILLIC SMALL LIGATURE EN GHE
-# Ò¤ <> XXX ; # CYRILLIC CAPITAL LIGATURE EN GHE
-
о <> o ; # CYRILLIC SMALL LETTER O
О <> O ; # CYRILLIC CAPITAL LETTER O
-# Ó© <> XXX ; # CYRILLIC SMALL LETTER BARRED O
-# Ó¨ <> XXX ; # CYRILLIC CAPITAL LETTER BARRED O
п <> p ; # CYRILLIC SMALL LETTER PE
П <> P ; # CYRILLIC CAPITAL LETTER PE
-# Ò§ <> XXX ; # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
-# Ò¦ <> XXX ; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
-# Ò <> XXX ; # CYRILLIC SMALL LETTER KOPPA
-# Ò€ <> XXX ; # CYRILLIC CAPITAL LETTER KOPPA
Ñ€ <> r ; # CYRILLIC SMALL LETTER ER
Р <> R ; # CYRILLIC CAPITAL LETTER ER
-# Ò <> XXX ; # CYRILLIC SMALL LETTER ER WITH TICK
-# ÒŽ <> XXX ; # CYRILLIC CAPITAL LETTER ER WITH TICK
Ñ <> s ; # CYRILLIC SMALL LETTER ES
С <> S ; # CYRILLIC CAPITAL LETTER ES
-# Ò« <> XXX ; # CYRILLIC SMALL LETTER ES WITH DESCENDER
-# Òª <> XXX ; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER
Ñ‚ <> t ; # CYRILLIC SMALL LETTER TE
Т <> T ; # CYRILLIC CAPITAL LETTER TE
-# Ò­ <> XXX ; # CYRILLIC SMALL LETTER TE WITH DESCENDER
-# Ò¬ <> XXX ; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER
-
у <> u ; # CYRILLIC SMALL LETTER U
У <> U ; # CYRILLIC CAPITAL LETTER U
-# Ò¯ <> XXX ; # CYRILLIC SMALL LETTER STRAIGHT U
-# Ò® <> XXX ; # CYRILLIC CAPITAL LETTER STRAIGHT U
-# Ò± <> XXX ; # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
-# Ò° <> XXX ; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
-# ѹ <> XXX ; # CYRILLIC SMALL LETTER UK
-# Ѹ <> XXX ; # CYRILLIC CAPITAL LETTER UK
Ñ„ <> f ; # CYRILLIC SMALL LETTER EF
Ф <> F ; # CYRILLIC CAPITAL LETTER EF
Ñ… <> h ; # CYRILLIC SMALL LETTER HA
Ð¥ <> H; # CYRILLIC CAPITAL LETTER HA
-# Ò³ <> XXX ; # CYRILLIC SMALL LETTER HA WITH DESCENDER
-# Ò² <> XXX ; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER
-# Ò» <> XXX ; # CYRILLIC SMALL LETTER SHHA
-# Òº <> XXX ; # CYRILLIC CAPITAL LETTER SHHA
-# Ñ¡ <> XXX ; # CYRILLIC SMALL LETTER OMEGA
-# Ñ  <> XXX ; # CYRILLIC CAPITAL LETTER OMEGA
-# Ñ¿ <> XXX ; # CYRILLIC SMALL LETTER OT
-# Ѿ <> XXX ; # CYRILLIC CAPITAL LETTER OT
-# ѽ <> XXX ; # CYRILLIC SMALL LETTER OMEGA WITH TITLO
-# Ѽ <> XXX ; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
-# Ñ» <> XXX ; # CYRILLIC SMALL LETTER ROUND OMEGA
-# Ѻ <> XXX ; # CYRILLIC CAPITAL LETTER ROUND OMEGA
ц <> c ; # CYRILLIC SMALL LETTER TSE
Ц <> C; # CYRILLIC CAPITAL LETTER TSE
-# Òµ <> XXX ; # CYRILLIC SMALL LIGATURE TE TSE
-# Ò´ <> XXX ; # CYRILLIC CAPITAL LIGATURE TE TSE
-
-# Ò½ <> XXX ; # CYRILLIC SMALL LETTER ABKHASIAN CHE
-# Ò¼ <> XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
-# Ò¿ <> XXX ; # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
-# Ò¾ <> XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
-
-
Ъ <> $modprime2 $under ; # CYRILLIC CAPITAL LETTER HARD SIGN
ÑŠ <> $modprime2 ; # CYRILLIC SMALL LETTER HARD SIGN
Ь <> $modprime $under ; # CYRILLIC CAPITAL LETTER SOFT SIGN
ь <> $modprime ; # CYRILLIC SMALL LETTER SOFT SIGN
-
Ñ‹ <> y ; # CYRILLIC SMALL LETTER YERU
Ы <> Y ; # CYRILLIC CAPITAL LETTER YERU
-
-# Ò <> XXX ; # CYRILLIC SMALL LETTER SEMISOFT SIGN
-# Ҍ <> XXX ; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN
-# ѣ <> XXX ; # CYRILLIC SMALL LETTER YAT
-# Ѣ <> XXX ; # CYRILLIC CAPITAL LETTER YAT
-
-# ѥ <> XXX ; # CYRILLIC SMALL LETTER IOTIFIED E
-# Ѥ <> XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED E
-# ѧ <> XXX ; # CYRILLIC SMALL LETTER LITTLE YUS
-# Ѧ <> XXX ; # CYRILLIC CAPITAL LETTER LITTLE YUS
-# Ñ« <> XXX ; # CYRILLIC SMALL LETTER BIG YUS
-# Ѫ <> XXX ; # CYRILLIC CAPITAL LETTER BIG YUS
-# Ñ© <> XXX ; # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
-# Ѩ <> XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
-# Ñ­ <> XXX ; # CYRILLIC SMALL LETTER IOTIFIED BIG YUS
-# Ѭ <> XXX ; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
-# ѯ <> XXX ; # CYRILLIC SMALL LETTER KSI
-# Ñ® <> XXX ; # CYRILLIC CAPITAL LETTER KSI
-# ѱ <> XXX ; # CYRILLIC SMALL LETTER PSI
-# Ñ° <> XXX ; # CYRILLIC CAPITAL LETTER PSI
-# ѳ <> XXX ; # CYRILLIC SMALL LETTER FITA
-# Ѳ <> XXX ; # CYRILLIC CAPITAL LETTER FITA
-# ѵ <> XXX ; # CYRILLIC SMALL LETTER IZHITSA
-# Ñ´ <> XXX ; # CYRILLIC CAPITAL LETTER IZHITSA
-# Ò© <> XXX ; # CYRILLIC SMALL LETTER ABKHASIAN HA
-# Ò¨ <> XXX ; # CYRILLIC CAPITAL LETTER ABKHASIAN HA
-# Ó€ <> XXX ; # CYRILLIC LETTER PALOCHKA
-### ӑ <> XXX ; # CYRILLIC SMALL LETTER A
-### Ð̆ <> XXX ; # CYRILLIC CAPITAL LETTER A
-### ӓ <> XXX ; # CYRILLIC SMALL LETTER A
-### Ð̈ <> XXX ; # CYRILLIC CAPITAL LETTER A
-### ӛ <> XXX ; # CYRILLIC SMALL LETTER SCHWA
-### Ӛ <> XXX ; # CYRILLIC CAPITAL LETTER SCHWA
-### Ð³Ì <> XXX ; # CYRILLIC SMALL LETTER GHE
-### Ð“Ì <> XXX ; # CYRILLIC CAPITAL LETTER GHE
-### ѐ <> XXX ; # CYRILLIC SMALL LETTER IE
-### Ѐ <> XXX ; # CYRILLIC CAPITAL LETTER IE
-### ё <> XXX ; # CYRILLIC SMALL LETTER IE
-### Ё <> XXX ; # CYRILLIC CAPITAL LETTER IE
-### ӗ <> XXX ; # CYRILLIC SMALL LETTER IE
-### Ӗ <> XXX ; # CYRILLIC CAPITAL LETTER IE
-### ӂ <> XXX ; # CYRILLIC SMALL LETTER ZHE
-### Ӂ <> XXX ; # CYRILLIC CAPITAL LETTER ZHE
-### ӝ <> XXX ; # CYRILLIC SMALL LETTER ZHE
-### Ӝ <> XXX ; # CYRILLIC CAPITAL LETTER ZHE
-### ӟ <> XXX ; # CYRILLIC SMALL LETTER ZE
-### Ӟ <> XXX ; # CYRILLIC CAPITAL LETTER ZE
-### ѝ <> XXX ; # CYRILLIC SMALL LETTER I
-### Ѝ <> XXX ; # CYRILLIC CAPITAL LETTER I
-### ӣ <> XXX ; # CYRILLIC SMALL LETTER I
-### Ӣ <> XXX ; # CYRILLIC CAPITAL LETTER I
-### ӥ <> XXX ; # CYRILLIC SMALL LETTER I
-### Ӥ <> XXX ; # CYRILLIC CAPITAL LETTER I
-### ї <> XXX ; # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-### Ї <> XXX ; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
-### ӧ <> XXX ; # CYRILLIC SMALL LETTER O
-### Ӧ <> XXX ; # CYRILLIC CAPITAL LETTER O
-### ӫ <> XXX ; # CYRILLIC SMALL LETTER BARRED O
-### Ӫ <> XXX ; # CYRILLIC CAPITAL LETTER BARRED O
-### ÐºÌ <> XXX ; # CYRILLIC SMALL LETTER KA
-### ÐšÌ <> XXX ; # CYRILLIC CAPITAL LETTER KA
-### ӯ <> XXX ; # CYRILLIC SMALL LETTER U
-### Ӯ <> XXX ; # CYRILLIC CAPITAL LETTER U
-### ў <> XXX ; # CYRILLIC SMALL LETTER U
-### Ў <> XXX ; # CYRILLIC CAPITAL LETTER U
-### ӱ <> XXX ; # CYRILLIC SMALL LETTER U
-### Ӱ <> XXX ; # CYRILLIC CAPITAL LETTER U
-### ӳ <> XXX ; # CYRILLIC SMALL LETTER U
-### Ӳ <> XXX ; # CYRILLIC CAPITAL LETTER U
-### ӵ <> XXX ; # CYRILLIC SMALL LETTER CHE
-### Ӵ <> XXX ; # CYRILLIC CAPITAL LETTER CHE
-### ӹ <> XXX ; # CYRILLIC SMALL LETTER YERU
-### Ӹ <> XXX ; # CYRILLIC CAPITAL LETTER YERU
-### Ñ̈ <> XXX ; # CYRILLIC SMALL LETTER E
-### Ӭ <> XXX ; # CYRILLIC CAPITAL LETTER E
-### ÑµÌ <> XXX ; # CYRILLIC SMALL LETTER IZHITSA
-### Ñ´Ì <> XXX ; # CYRILLIC CAPITAL LETTER IZHITSA
-
-# Completeness
$ignore = [[:Mark:]''] * ;
| k < q ;
| K < Q ;
@@ -298,9 +125,5 @@ $ignore = [[:Mark:]''] * ;
| KS < [:UppercaseLetter:] $ignore { X ;
| Ks < X ;
| ks < x ;
-
:: NFC (NFD) ;
-# note: a global filter is more efficient, but MUST include all source chars!!
-# :: ([\u0000-\u007E \u02B9 \u02BA [:Cyrillic:] [:Latin:] [:nonspacing mark:]]);
-# MINIMAL FILTER: Latin-Cyrillic
-:: ( [\u0308A-Za-z\u00C0-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u018F\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0259\u02B9-\u02BA\u0300-\u0302\u0306-\u0307\u030C\u0326\u0331\u0340-\u0341\u0344\u0374\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0400\u0403\u040C-\u040E\u0419\u0439\u0450\u0453\u045C-\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u1E00-\u1E99\u1E9B\u1EA0-\u1EF9\u1F02-\u1F05\u1F0A-\u1F0D\u1F12-\u1F15\u1F1A-\u1F1D\u1F22-\u1F25\u1F2A-\u1F2D\u1F32-\u1F35\u1F3A-\u1F3D\u1F42-\u1F45\u1F4A-\u1F4D\u1F52-\u1F55\u1F5B\u1F5D\u1F62-\u1F65\u1F6A-\u1F6D\u1F70-\u1F7D\u1F82-\u1F85\u1F8A-\u1F8D\u1F92-\u1F95\u1F9A-\u1F9D\u1FA2-\u1FA5\u1FAA-\u1FAD\u1FB0\u1FB2\u1FB4\u1FB8\u1FBA-\u1FBB\u1FC2\u1FC4\u1FC8-\u1FCB\u1FCD-\u1FCE\u1FD0\u1FD2-\u1FD3\u1FD8\u1FDA-\u1FDB\u1FDD-\u1FDE\u1FE0\u1FE2-\u1FE3\u1FE8\u1FEA-\u1FEB\u1FED-\u1FEE\u1FF2\u1FF4\u1FF8-\u1FFB\u212A-\u212B] ) ;
+:: ( [ËŒ\u0308A-Za-zÀ-ÃÑ-ÖÙ-Ãà-ïñ-öù-ýÿ-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žÆÆ -ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳəʹ-ʺ\u0300-\u0302\u0306-\u0307\u030C\u0326\u0331\u0340-\u0341\u0344Í´Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЀЃЌ-ЎЙйÑÑ“Ñœ-ÑžÓ-Ó‚Ó-Ó‘Ó–-ӗḀ-ẙẛẠ-ỹἂ-ἅἊ-á¼á¼’-ἕἚ-á¼á¼¢-ἥἪ-á¼­á¼²-ἵἺ-Ἵὂ-ὅὊ-á½á½’-ὕὛá½á½¢-ὥὪ-á½­á½°-ώᾂ-ᾅᾊ-á¾á¾’-ᾕᾚ-á¾á¾¢-ᾥᾪ-ᾭᾰᾲᾴᾸᾺ-ΆῂῄῈ-á¿‹á¿-á¿Žá¿á¿’-ΐῘῚ-á¿›á¿-á¿žá¿ á¿¢-ΰῨῪ-á¿«á¿­-΅ῲῴῸ-ΏK-â„«] ) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Bengali.txt
new file mode 100644
index 00000000000..cd7151eb110
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Gujarati.txt
new file mode 100644
index 00000000000..1eca062537a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:12 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Gurmukhi.txt
new file mode 100644
index 00000000000..beaf87ae4c9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_InterIndic.txt
index 7ff97208984..cd0ecb3c7ee 100644
--- a/Build/source/libs/icu-xetex/data/translit/Devanagari_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_InterIndic.txt
@@ -1,119 +1,115 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Devanagari-InterIndic
-# :: NFD;
-#Rules for Decomposed characters
-
-
- \u0901>\uE001; # SIGN CANDRABINDU
- \u0902>\uE002; # SIGN ANUSVARA
- \u0903>\uE003; # SIGN VISARGA
- \u0904>\uE004; # SIGN SHORT A
- \u0905>\uE005; # LETTER A
- \u0906>\uE006; # LETTER AA
- \u0907>\uE007; # LETTER I
- \u0908>\uE008; # LETTER II
- \u0909>\uE009; # LETTER U
- \u090A>\uE00A; # LETTER UU
- \u090B>\uE00B; # LETTER VOCALIC R
- \u090C>\uE00C; # LETTER VOCALIC L
- \u090D>\uE00D; # LETTER CANDRA E (For representing English sounds)
- \u090E>\uE00E; # UNMAPPED LETTER SHORT E(For Southern Scripts)
- \u090F>\uE00F; # LETTER E
- \u0910>\uE010; # LETTER AI
- \u0911>\uE011; # LETTER CANDRA O (For representing English sounds)
- \u0912>\uE012; # UNMAPPED LETTER SHORT O (For Southern Scripts)
- \u0913>\uE013; # LETTER O
- \u0914>\uE014; # LETTER AU
- \u0915>\uE015; # LETTER KA
- \u0916>\uE016; # LETTER KHA
- \u0917>\uE017; # LETTER GA
- \u0918>\uE018; # LETTER GHA
- \u0919>\uE019; # LETTER NGA
- \u091A>\uE01A; # LETTER CA
- \u091B>\uE01B; # LETTER CHA
- \u091C>\uE01C; # LETTER JA
- \u091D>\uE01D; # LETTER JHA
- \u091E>\uE01E; # LETTER NYA
- \u091F>\uE01F; # LETTER TTA
- \u0920>\uE020; # LETTER TTHA
- \u0921>\uE021; # LETTER DDA
- \u0922>\uE022; # LETTER DDHA
- \u0923>\uE023; # LETTER NNA
- \u0924>\uE024; # LETTER TA
- \u0925>\uE025; # LETTER THA
- \u0926>\uE026; # LETTER DA
- \u0927>\uE027; # LETTER DHA
- \u0928>\uE028; # LETTER NA
- \u0929>\uE029;
- \u092A>\uE02A; # LETTER PA
- \u092B>\uE02B; # LETTER PHA
- \u092C>\uE02C; # LETTER BA
- \u092D>\uE02D; # LETTER BHA
- \u092E>\uE02E; # LETTER MA
- \u092F>\uE02F; # LETTER YA
- \u0930>\uE030; # LETTER RA
- \u0931>\uE031;
- \u0932>\uE032; # LETTER LA
- \u0933>\uE033; # LETTER LLA
- \u0934>\uE034;
-
- \u0935>\uE035; # LETTER VA
- \u0936>\uE036; # LETTER SHA
- \u0937>\uE037; # LETTER SSA
- \u0938>\uE038; # LETTER SA
- \u0939>\uE039; # LETTER HA
- \u093C>\uE03C; # SIGN NUKTA
- \u093D>\uE03D; # SIGN AVAGRAHA
- \u093E>\uE03E; # VOWEL SIGN AA
- \u093F>\uE03F; # VOWEL SIGN I
- \u0940>\uE040; # VOWEL SIGN II
- \u0941>\uE041; # VOWEL SIGN U
- \u0942>\uE042; # VOWEL SIGN UU
- \u0943>\uE043; # VOWEL SIGN VOCALIC R
- \u0944>\uE044; # VOWEL SIGN VOCALIC RR
- \u0945>\uE045; # VOWEL SIGN CANDRA E
- \u0946>\uE046; # UNMAPPED VOWEL SIGN SHORT E
- \u0947>\uE047; # VOWEL SIGN E
- \u0948>\uE048; # VOWEL SIGN AI
- \u0949>\uE049; # VOWEL SIGN CANDRA O
- \u094A>\uE04A; # UNMAPPED VOWEL SIGN SHORT O
- \u094B>\uE04B; # VOWEL SIGN O
- \u094C>\uE04C; # VOWEL SIGN AU
- \u094D>\uE04D; # SIGN VIRAMA
- \u0950>\uE050; # OM
- \u0951>\uE051; # UNMAPPED STRESS SIGN UDATTA
- \u0952>\uE052; # UNMAPPED STRESS SIGN ANUDATTA
- \u0953>\uE053; # UNMAPPED GRAVE ACCENT
- \u0954>\uE054; # UNMAPPED ACUTE ACCENT
- \u0958>\uE058;
- \u0959>\uE059;
- \u095A>\uE05a;
- \u095B>\uE05b;
- \u095C>\uE05c;
- \u095D>\uE05d;
- \u095E>\uE05e;
- \u095F>\uE05f;
- \u0960>\uE060; # LETTER VOCALIC RR
- \u0961>\uE061; # LETTER VOCALIC LL
- \u0962>\uE062; # VOWEL SIGN VOCALIC L
- \u0963>\uE063; # VOWEL SIGN VOCALIC LL
- \u0964>\ue064; # DANDA
- \u0965>\ue065; # DOUBLE DANDA
- \u0966>\uE066; # DIGIT ZERO
- \u0967>\uE067; # DIGIT ONE
- \u0968>\uE068; # DIGIT TWO
- \u0969>\uE069; # DIGIT THREE
- \u096A>\uE06A; # DIGIT FOUR
- \u096B>\uE06B; # DIGIT FIVE
- \u096C>\uE06C; # DIGIT SIX
- \u096D>\uE06D; # DIGIT SEVEN
- \u096E>\uE06E; # DIGIT EIGHT
- \u096F>\uE06F; # DIGIT NINE
- \u0970>\uE070; # Devanagari-InterIndic: ABBREVIATION SIGN
- \u097d>\uE082; # Devanagari Glottal Stop
-
-# :: NFC (NFD) ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+\u0901>\uE001; # SIGN CANDRABINDU
+\u0902>\uE002; # SIGN ANUSVARA
+ः>\uE003; # SIGN VISARGA
+ऄ>\uE004; # SIGN SHORT A
+अ>\uE005; # LETTER A
+आ>\uE006; # LETTER AA
+इ>\uE007; # LETTER I
+ई>\uE008; # LETTER II
+उ>\uE009; # LETTER U
+ऊ>\uE00A; # LETTER UU
+ऋ>\uE00B; # LETTER VOCALIC R
+ऌ>\uE00C; # LETTER VOCALIC L
+à¤>\uE00D; # LETTER CANDRA E (For representing English sounds)
+ऎ>\uE00E; # UNMAPPED LETTER SHORT E(For Southern Scripts)
+à¤>\uE00F; # LETTER E
+à¤>\uE010; # LETTER AI
+ऑ>\uE011; # LETTER CANDRA O (For representing English sounds)
+ऒ>\uE012; # UNMAPPED LETTER SHORT O (For Southern Scripts)
+ओ>\uE013; # LETTER O
+औ>\uE014; # LETTER AU
+क>\uE015; # LETTER KA
+ख>\uE016; # LETTER KHA
+ग>\uE017; # LETTER GA
+घ>\uE018; # LETTER GHA
+ङ>\uE019; # LETTER NGA
+च>\uE01A; # LETTER CA
+छ>\uE01B; # LETTER CHA
+ज>\uE01C; # LETTER JA
+à¤>\uE01D; # LETTER JHA
+ञ>\uE01E; # LETTER NYA
+ट>\uE01F; # LETTER TTA
+ठ>\uE020; # LETTER TTHA
+ड>\uE021; # LETTER DDA
+ढ>\uE022; # LETTER DDHA
+ण>\uE023; # LETTER NNA
+त>\uE024; # LETTER TA
+थ>\uE025; # LETTER THA
+द>\uE026; # LETTER DA
+ध>\uE027; # LETTER DHA
+न>\uE028; # LETTER NA
+ऩ>\uE029;
+प>\uE02A; # LETTER PA
+फ>\uE02B; # LETTER PHA
+ब>\uE02C; # LETTER BA
+भ>\uE02D; # LETTER BHA
+म>\uE02E; # LETTER MA
+य>\uE02F; # LETTER YA
+र>\uE030; # LETTER RA
+ऱ>\uE031;
+ल>\uE032; # LETTER LA
+ळ>\uE033; # LETTER LLA
+ऴ>\uE034;
+व>\uE035; # LETTER VA
+श>\uE036; # LETTER SHA
+ष>\uE037; # LETTER SSA
+स>\uE038; # LETTER SA
+ह>\uE039; # LETTER HA
+\u093C>\uE03C; # SIGN NUKTA
+ऽ>\uE03D; # SIGN AVAGRAHA
+ा>\uE03E; # VOWEL SIGN AA
+ि>\uE03F; # VOWEL SIGN I
+ी>\uE040; # VOWEL SIGN II
+\u0941>\uE041; # VOWEL SIGN U
+\u0942>\uE042; # VOWEL SIGN UU
+\u0943>\uE043; # VOWEL SIGN VOCALIC R
+\u0944>\uE044; # VOWEL SIGN VOCALIC RR
+\u0945>\uE045; # VOWEL SIGN CANDRA E
+\u0946>\uE046; # UNMAPPED VOWEL SIGN SHORT E
+\u0947>\uE047; # VOWEL SIGN E
+\u0948>\uE048; # VOWEL SIGN AI
+ॉ>\uE049; # VOWEL SIGN CANDRA O
+ॊ>\uE04A; # UNMAPPED VOWEL SIGN SHORT O
+ो>\uE04B; # VOWEL SIGN O
+ौ>\uE04C; # VOWEL SIGN AU
+\u094D>\uE04D; # SIGN VIRAMA
+à¥>\uE050; # OM
+\u0951>\uE051; # UNMAPPED STRESS SIGN UDATTA
+\u0952>\uE052; # UNMAPPED STRESS SIGN ANUDATTA
+\u0953>\uE053; # UNMAPPED GRAVE ACCENT
+\u0954>\uE054; # UNMAPPED ACUTE ACCENT
+क़>\uE058;
+ख़>\uE059;
+ग़>\uE05A;
+ज़>\uE05B;
+ड़>\uE05C;
+à¥>\uE05D;
+फ़>\uE05E;
+य़>\uE05F;
+ॠ>\uE060; # LETTER VOCALIC RR
+ॡ>\uE061; # LETTER VOCALIC LL
+\u0962>\uE062; # VOWEL SIGN VOCALIC L
+\u0963>\uE063; # VOWEL SIGN VOCALIC LL
+।>\uE064; # DANDA
+॥>\uE065; # DOUBLE DANDA
+०>\uE066; # DIGIT ZERO
+१>\uE067; # DIGIT ONE
+२>\uE068; # DIGIT TWO
+३>\uE069; # DIGIT THREE
+४>\uE06A; # DIGIT FOUR
+५>\uE06B; # DIGIT FIVE
+६>\uE06C; # DIGIT SIX
+७>\uE06D; # DIGIT SEVEN
+८>\uE06E; # DIGIT EIGHT
+९>\uE06F; # DIGIT NINE
+॰>\uE070; # Devanagari-InterIndic: ABBREVIATION SIGN
+ॽ>\uE082; # Devanagari Glottal Stop
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Kannada.txt
new file mode 100644
index 00000000000..ca5f280a1e3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Latin.txt
new file mode 100644
index 00000000000..025eed116c1
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Malayalam.txt
new file mode 100644
index 00000000000..ba35dbf5495
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Oriya.txt
new file mode 100644
index 00000000000..325a05c17ef
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Tamil.txt
new file mode 100644
index 00000000000..89203c0e6e7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Devanagari_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Devanagari_Telugu.txt
new file mode 100644
index 00000000000..2f1c686e424
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Devanagari_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Devanagari_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[\u0901-ःऄअ-ह\u093C-\u094Dà¥-\u0954क़-९ॽ];
+::NFD;
+::Devanagari-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Fullwidth_Halfwidth.txt b/Build/source/libs/icu-xetex/data/translit/Fullwidth_Halfwidth.txt
index e09a13e1fd9..1716a60e557 100644
--- a/Build/source/libs/icu-xetex/data/translit/Fullwidth_Halfwidth.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Fullwidth_Halfwidth.txt
@@ -1,16 +1,12 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Fullwidth-Halfwidth
-
-# Mechanically generated from Unicode Character Database
-# IDEOGRAPHIC SPACE then added, and
-# FULLWIDTH MACRON changed to map to MACRON, not SPACE + COMBINING MACRON
-
-# multicharacter
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Fullwidth_Halfwidth.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
ガ<>ガ; # to KATAKANA LETTER GA
ギ<>ギ; # to KATAKANA LETTER GI
グ<>グ; # to KATAKANA LETTER GU
@@ -39,9 +35,6 @@
ヴ<>ヴ; # to KATAKANA LETTER VU
ヷ<>ヷ; # to KATAKANA LETTER VA
ヺ<>ヺ; # to KATAKANA LETTER VO
-
-# single character
-
ï¼<>'!'; # from FULLWIDTH EXCLAMATION MARK
"<>'\"'; # from FULLWIDTH QUOTATION MARK
#<>'#'; # from FULLWIDTH NUMBER SIGN
@@ -197,9 +190,9 @@
ロ<>ロ; # to HALFWIDTH KATAKANA LETTER RO
ワ<>ワ; # to HALFWIDTH KATAKANA LETTER WA
ン<>ï¾; # to HALFWIDTH KATAKANA LETTER N
-゙<>゙; # to HALFWIDTH KATAKANA VOICED SOUND MARK
-゚<>゚; # to HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-á… <>ï¾ ; # to HALFWIDTH HANGUL FILLER
+\u3099<>゙; # to HALFWIDTH KATAKANA VOICED SOUND MARK
+\u309A<>゚; # to HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+\u1160<>\uFFA0; # to HALFWIDTH HANGUL FILLER
ᄀ<>ᄀ; # to HALFWIDTH HANGUL LETTER KIYEOK
á„<>ï¾¢; # to HALFWIDTH HANGUL LETTER SSANGKIYEOK
ᆪ<>ᆪ; # to HALFWIDTH HANGUL LETTER KIYEOK-SIOS
@@ -255,17 +248,14 @@
£<>'£'; # from FULLWIDTH POUND SIGN
¬<>'¬'; # from FULLWIDTH NOT SIGN
 ̄<>'¯'; # from FULLWIDTH MACRON
-' '<>' '; # ideographic space (place this after MACRON)
+'\u3000'<>' '; # ideographic space (place this after MACRON)
¦<>'¦'; # from FULLWIDTH BROKEN BAR
ï¿¥<>'Â¥'; # from FULLWIDTH YEN SIGN
₩<>₩; # from FULLWIDTH WON SIGN
│<>│; # to HALFWIDTH FORMS LIGHT VERTICAL
-'â†'<>'ï¿©'; # to HALFWIDTH LEFTWARDS ARROW
+'<'<>'ï¿©'; # to HALFWIDTH LEFTWARDS ARROW
↑<>↑; # to HALFWIDTH UPWARDS ARROW
-'→'<>'→'; # to HALFWIDTH RIGHTWARDS ARROW
+'>'<>'ï¿«'; # to HALFWIDTH RIGHTWARDS ARROW
↓<>↓; # to HALFWIDTH DOWNWARDS ARROW
â– <>ï¿­; # to HALFWIDTH BLACK SQUARE
â—‹<>ï¿®; # to HALFWIDTH WHITE CIRCLE
-
-# eof
-
diff --git a/Build/source/libs/icu-xetex/data/translit/Georgian_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Georgian_Latin.txt
new file mode 100644
index 00000000000..f493396814f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Georgian_Latin.txt
@@ -0,0 +1,44 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Georgian_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+წ <> tsʼ ;
+კ <> kʼ ;
+პ <> pʼ ;
+ჟ <> zh ;
+ტ <> tʼ ;
+ღ <> gh ;
+ყ <> qʼ ;
+შ <> sh ;
+ჭ <> chʼ ;
+ჩ <> ch ;
+ც <> ts ;
+ძ <> dz ;
+ხ <> kh ;
+ჳ <> ŭi ;
+რ<> a ;
+ბ <> b ;
+გ <> g ;
+დ <> d ;
+ე <> e ;
+ვ <> v ;
+ზ <> z ;
+თ <> t ;
+ი <> i ;
+ლ <> l ;
+მ <> m ;
+ნ <> n ;
+რ<> o ;
+რ <> r ;
+ს <> s ;
+უ <> u ;
+ფ <> p ;
+ქ <> k ;
+ჯ <> j ;
+ჰ <> h ;
+ჴ <> q ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Greek_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Greek_Latin.txt
index 221e5d084e6..d7f0083232e 100644
--- a/Build/source/libs/icu-xetex/data/translit/Greek_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Greek_Latin.txt
@@ -1,296 +1,172 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Rules are predicated on running NFD first, and NFC afterwards
-# :: [\u0000-\u007F \u0370-\u03FF [:Greek:] [:nonspacing mark:]] ;
-# MINIMAL FILTER GENERATED FOR: Greek-Latin
-:: [;\u00B5\u00B7\u00C4\u00CB\u00CF\u00D6\u00DC\u00E4\u00EB\u00EF\u00F6\u00FC\u00FF-\u0101\u0112-\u0113\u012A-\u012B\u014C-\u014D\u016A-\u016B\u0178\u01D5-\u01DC\u01DE-\u01E3\u01EC-\u01ED\u022A-\u022D\u0230-\u0233\u0304\u0308\u0313-\u0314\u0342-\u0345\u037A\u037E\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D7\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F5\u03F7-\u07FB\u0401\u0407\u0451\u0457\u04D2-\u04D3\u04DA-\u04DF\u04E2-\u04E7\u04EA-\u04F1\u04F4-\u04F5\u04F8-\u04F9\u1E14-\u1E17\u1E20-\u1E21\u1E26-\u1E27\u1E2E-\u1E2F\u1E38-\u1E39\u1E4E-\u1E53\u1E5C-\u1E5D\u1E7A-\u1E7B\u1E84-\u1E85\u1E8C-\u1E8D\u1E97\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC1-\u1FC4\u1FC6-\u1FCC\u1FCF-\u1FD3\u1FD6-\u1FDB\u1FDF-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u03F9] ;
-
-:: NFD (NFC) ;
-
-# TEST CASES
-
-# Ὀλίγοι ἔμφονες πολλῶν ἀφÏόνων φοβεÏώτεÏοι — Πλάτωνος
-# ᾂ ᾒ ᾢ ᾃ ᾓ ᾣ
-# ᾳ ῃ ῳ ὃ ὄ
-# ὠς ὡς ὢς ὣς
-# Ὠς Ὡς Ὢς Ὣς
-# ὨΣ ὩΣ ὪΣ ὫΣ
-# Ạ, ạ, Ẹ, ẹ, Ọ, á»
-
-# Useful variables
-
-$lower = [[:latin:][:greek:] & [:Ll:]];
-$glower = [[:greek:] & [:Ll:]];
-$upper = [[:latin:][:greek:] & [:Lu:]] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Greek_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+:: [;µ·ÄËÃÖÜäëïöüÿ-ÄÄ’-ēĪ-Ä«ÅŒ-ÅŪ-ūŸǕ-ǜǞ-ǣǬ-ǭȪ-È­È°-ȳ\u0304\u0308\u0313-\u0314\u0342-\u0345ͺ;Ά-ΊΌΎ-ΡΣ-ÏŽÏ-Ï—Ï›Ïϟϡϣϥϧϩϫϭϯ-ϵϷ-\u07FBÐЇёїӒ-Ó“Óš-ÓŸÓ¢-Ó§Óª-Ó±Ó´-ÓµÓ¸-ӹḔ-ḗḠ-ḡḦ-ḧḮ-ḯḸ-ḹṎ-ṓṜ-á¹á¹º-ṻẄ-ẅẌ-áºáº—á¼€-ἕἘ-á¼á¼ -ὅὈ-á½á½-ὗὙὛá½á½Ÿ-ώᾀ-ᾴᾶ-ᾼιá¿-ῄῆ-á¿Œá¿-á¿“á¿–-Ί῟-Ῥῲ-ῴῶ-ῼΩϹ] ;
+:: NFD (NFC) ;
+$lower = [[:latin:][:greek:] & [:Ll:]];
+$glower = [[:greek:] & [:Ll:]];
+$upper = [[:latin:][:greek:] & [:Lu:]] ;
$accent = [:M:] ;
-
-# NOTE: restrict to just the Greek & Latin accents that we care about
-# TODO: broaden out once interation is fixed
$accentMinus = [ [\u0300-\u0345] & [:M:] - [\u0338]] ;
-
$macron = \u0304 ;
$ddot = \u0308 ;
$ddotmac = [$ddot$macron];
-
-$lcgvowel = [αεηιουω] ;
-$ucgvowel = [ΑΕΗΙΟΥΩ] ;
-$gvowel = [$lcgvowel $ucgvowel] ;
-$lcgvowelC = [$lcgvowel $accent] ;
-
+$lcgvowel = [αεηιουω] ;
+$ucgvowel = [ΑΕΗΙΟΥΩ] ;
+$gvowel = [$lcgvowel $ucgvowel] ;
+$lcgvowelC = [$lcgvowel $accent] ;
$evowel = [aeiouyAEIOUY];
$evowel2 = [iuyIUY];
-$vowel = [ $evowel $gvowel] ;
-
-$gammaLike = [ΓΚΞΧγκξχϰ] ;
-$egammaLike = [GKXCgkxc] ;
-$smooth = Ì“ ;
-$rough = Ì” ;
-$iotasub = Í… ;
-
+$vowel = [ $evowel $gvowel] ;
+$gammaLike = [ΓΚΞΧγκξχϰ] ;
+$egammaLike = [GKXCgkxc] ;
+$smooth = \u0313 ;
+$rough = \u0314 ;
+$iotasub = \u0345 ;
$evowel_i = [$evowel-[iI]] ;
$evowel2_i = [uyUY];
-
$underbar = \u0331;
-
$afterLetter = [:L:] [[:M:]\']* ;
$beforeLetter = [[:M:]\']* [:L:] ;
-$beforeLower = $accent * $lower ;
-
+$beforeLower = $accent * $lower ;
$notLetter = [^[:L:][:M:]] ;
-$under = ̱;
-
-# Fix punctuation
-# preserve original
+$under = \u0331;
\: <> \: $under ;
\? <> \? $under ;
-
\; <> \? ;
· <> \: ;
-
-# CIRCUMFLEX: convert greek circumflex to normal one. Could use tilde or inverted breve
-
-\u0342 <> \u0302 ;
-
-# IOTA: convert iota subscript to iota
-# first make previous alpha long!
-
+\u0342 <> \u0302 ;
$accent_minus = [[$accent]-[$iotasub$macron]];
-
-Α } $accent_minus * $iotasub > | Α $macron ;
-α } $accent_minus * $iotasub > | α $macron ;
-
-# now convert to uppercase if after uppercase, ow to lowercase
-
-$upper $accent * { $iotasub > I ;
-$iotasub > i ;
-
+Α } $accent_minus * $iotasub > | Α $macron ;
+α } $accent_minus * $iotasub > | α $macron ;
+$upper $accent * { $iotasub > I ;
+$iotasub > i ;
| $1 $iotasub < ($evowel $macron $accentMinus *) i ;
| $1 $iotasub < ($evowel $macron $accentMinus *) I ;
-
-# BREATHING
-
-# Convert rough breathing to h, and move before letters.
-
-# Make A ` x = > H a x
-
- Α ($macron?) $rough } $beforeLower > H | α $1;
- Ε $rough } $beforeLower > H | ε;
- Η $rough } $beforeLower > H | η ;
- Ι ($ddot?) $rough } $beforeLower > H | ι $1;
- Ο $rough } $beforeLower > H | ο ;
- Υ $rough } $beforeLower > H | υ ;
- Ω ($ddot?) $rough } $beforeLower > H | ω $1;
-
-# Make A x ` = > H a x
-
-Α ($glower $macron?) $rough > H | α $1 ;
-Ε ($glower) $rough > H | ε $1 ;
-Η ($glower) $rough > H | η $1 ;
-Ι ($glower $ddot?) $rough > H | ι $1 ;
-Ο ($glower) $rough > H | ο $1 ;
-Î¥ ($glower) $rough > H | Ï… $1 ;
-Ω ($glower $ddot?) $rough > H | ω $1 ;
-
-#Otherwise, make x ` into h x and X ` into H X
-
-($lcgvowel + $ddotmac? ) $rough > h | $1 ;
-($gvowel + $ddotmac? ) $rough > H | $1 ;
-
-# Go backwards with H
-
+Α ($macron?) $rough } $beforeLower > H | α $1;
+Ε $rough } $beforeLower > H | ε;
+Η $rough } $beforeLower > H | η ;
+Ι ($ddot?) $rough } $beforeLower > H | ι $1;
+Ο $rough } $beforeLower > H | ο ;
+Î¥ $rough } $beforeLower > H | Ï… ;
+Ω ($ddot?) $rough } $beforeLower > H | ω $1;
+Α ($glower $macron?) $rough > H | α $1 ;
+Ε ($glower) $rough > H | ε $1 ;
+Η ($glower) $rough > H | η $1 ;
+Ι ($glower $ddot?) $rough > H | ι $1 ;
+Ο ($glower) $rough > H | ο $1 ;
+Î¥ ($glower) $rough > H | Ï… $1 ;
+Ω ($glower $ddot?) $rough > H | ω $1 ;
+($lcgvowel + $ddotmac? ) $rough > h | $1 ;
+($gvowel + $ddotmac? ) $rough > H | $1 ;
| $1 $rough < h ($evowel $macron $ddot? $evowel2_i $macron?) ;
| $1 $rough < h ($evowel $ddot? $evowel2 $macron?) ;
| $1 $rough < h ($evowel $macron? $ddot?) ;
-
| $1 $rough < H ([AEIOUY] $macron $ddot? $evowel2_i $macron?) ;
| $1 $rough < H ([AEIOUY] $ddot? $evowel2 $macron?) ;
| $1 $rough < H ([AEIOUY] $macron? $ddot?) ;
-
-# titlecase, have to fix individually
-# in the future, we should add &uppercase() to make this easier
-
| A $1 $rough < H a ($macron $ddot? $evowel2_i $macron?) ;
| E $1 $rough < H e ($macron $ddot? $evowel2_i $macron?) ;
| I $1 $rough < H i ($macron $ddot? $evowel2_i $macron?) ;
| O $1 $rough < H o ($macron $ddot? $evowel2_i $macron?) ;
| U $1 $rough < H u ($macron $ddot? $evowel2_i $macron?) ;
| Y $1 $rough < H y ($macron $ddot? $evowel2_i $macron?) ;
-
| A $1 $rough < H a ($ddot? $evowel2 $macron?) ;
| E $1 $rough < H e ($ddot? $evowel2 $macron?) ;
| I $1 $rough < H i ($ddot? $evowel2 $macron?) ;
| O $1 $rough < H o ($ddot? $evowel2 $macron?) ;
| U $1 $rough < H u ($ddot? $evowel2 $macron?) ;
| Y $1 $rough < H y ($ddot? $evowel2 $macron?) ;
-
| A $1 $rough < H a ($macron? $ddot? ) ;
| E $1 $rough < H e ($macron? $ddot? ) ;
| I $1 $rough < H i ($macron? $ddot? ) ;
| O $1 $rough < H o ($macron? $ddot? ) ;
| U $1 $rough < H u ($macron? $ddot? ) ;
| Y $1 $rough < H y ($macron? $ddot? ) ;
-
-# Now do smooth
-
-#delete smooth breathing for Latin
-$smooth > ;
-
-# insert in Greek
-# the assumption is that all Marks are on letters.
-
- | $1 $smooth < $notLetter { ([rR]) } [^hH$smooth$rough] ;
- | $1 $smooth < $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
- | $1 $smooth < $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
-
-# TODO: preserve smooth/rough breathing if not
-# on initial vowel sequence
-
-# need to have these up here so the rules don't mask
-
-# remove now superfluous macron when returning
-
-Α < A $macron ;
-α < a $macron ;
-
+$smooth > ;
+| $1 $smooth < $notLetter { ([rR]) } [^hH$smooth$rough] ;
+| $1 $smooth < $notLetter { ($evowel $macron? $evowel2 $macron?) } [^$smooth$rough] ;
+| $1 $smooth < $notLetter { ($evowel $macron?) } [^$evowel2$smooth$rough] ;
+Α < A $macron ;
+α < a $macron ;
η <> e $macron ;
Η <> E $macron ;
-
-φ <> ph ;
-Ψ } $beforeLower <> Ps ;
-Ψ <> PS ;
-
-Φ } $beforeLower <> Ph ;
+φ <> ph ;
+Ψ } $beforeLower <> Ps ;
+Ψ <> PS ;
+Φ } $beforeLower <> Ph ;
Φ <> PH ;
-ψ <> ps ;
-
+ψ <> ps ;
ω <> o $macron ;
Ω <> O $macron;
-
-# NORMAL
-
-α <> a ;
-Α <> A ;
-
-β <> b ;
-Î’ <> B ;
-
-γ } $gammaLike <> n } $egammaLike ;
-γ <> g ;
-Γ } $gammaLike <> N } $egammaLike ;
-Γ <> G ;
-
-δ <> d ;
-Δ <> D ;
-
-ε <> e ;
-Ε <> E ;
-
-ζ <> z ;
-Ζ <> Z ;
-
-θ <> th ;
-Θ } $beforeLower <> Th ;
-Θ <> TH ;
-
-ι <> i ;
-Ι <> I ;
-
+α <> a ;
+Α <> A ;
+β <> b ;
+Î’ <> B ;
+γ } $gammaLike <> n } $egammaLike ;
+γ <> g ;
+Γ } $gammaLike <> N } $egammaLike ;
+Γ <> G ;
+δ <> d ;
+Δ <> D ;
+ε <> e ;
+Ε <> E ;
+ζ <> z ;
+Ζ <> Z ;
+θ <> th ;
+Θ } $beforeLower <> Th ;
+Θ <> TH ;
+ι <> i ;
+Ι <> I ;
κ <> k ;
-Κ <> K ;
-
-λ <> l ;
-Λ <> L ;
-
-μ <> m ;
-Μ <> M ;
-
-ν } $gammaLike > n\' ;
-ν <> n ;
-Î } $gammaLike <> N\' ;
-Î <> N ;
-
-ξ <> x ;
-Ξ <> X ;
-
-ο <> o ;
-Ο <> O ;
-
-Ï€ <> p ;
-Π <> P ;
-
-Ï $rough <> rh;
-Ρ $rough } $beforeLower <> Rh ;
-Ρ $rough <> RH ;
-Ï <> r ;
-Ρ <> R ;
-
-# insert separator before things that turn into s
-
-[Pp] { } [ςσΣϷϸϺϻ] > \' ;
-
-# special S variants
-
-Ϸ <> Š ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
-ϸ <> š ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
-Ϻ <> Ŝ ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
-ϻ <> ŝ ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
-
-# underbar means exception
-
-# before a letter, initial
+Κ <> K ;
+λ <> l ;
+Λ <> L ;
+μ <> m ;
+Μ <> M ;
+ν } $gammaLike > n\' ;
+ν <> n ;
+Î } $gammaLike <> N\' ;
+Î <> N ;
+ξ <> x ;
+Ξ <> X ;
+ο <> o ;
+Ο <> O ;
+Ï€ <> p ;
+Π <> P ;
+Ï $rough <> rh;
+Ρ $rough } $beforeLower <> Rh ;
+Ρ $rough <> RH ;
+Ï <> r ;
+Ρ <> R ;
+[Pp] { } [ςσΣϷϸϺϻ] > \' ;
+Ï· <> S\u030C ; # Ï· GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
+ϸ <> s\u030C ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
+Ϻ <> S\u0302 ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
+Ï» <> s\u0302 ; # Ï» GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
Ï‚ } $beforeLetter <> s $underbar } $beforeLetter;
σ } $beforeLetter <> s } $beforeLetter;
-
-# otherwise, after a letter = final
$afterLetter { σ <> $afterLetter { s $underbar;
$afterLetter { Ï‚ <> $afterLetter { s ;
-
-# otherwise (isolated) = initial
Ï‚ <> s $underbar;
σ <> s ;
-
-# [Pp] { Σ <> \'S ;
-Σ <> S ;
-
-Ï„ <> t ;
-Τ <> T ;
-
-$vowel {Ï… } <> u ;
-Ï… <> y ;
-$vowel { Υ <> U ;
-Î¥ <> Y ;
-
-χ <> ch ;
-Χ } $beforeLower <> Ch ;
-Χ <> CH ;
-
-# Completeness for ASCII
-
+Σ <> S ;
+Ï„ <> t ;
+Τ <> T ;
+$vowel {Ï… } <> u ;
+Ï… <> y ;
+$vowel { Υ <> U ;
+Î¥ <> Y ;
+χ <> ch ;
+Χ } $beforeLower <> Ch ;
+Χ <> CH ;
$ignore = [[:Mark:]''] * ;
-
| k < c ;
| ph < f ;
| i < j ;
@@ -307,20 +183,15 @@ $ignore = [[:Mark:]''] * ;
| B < W } $vowel ;
| U < V ;
| U < W ;
-
$rough } $ignore [:UppercaseLetter:] > H ;
$ignore [:UppercaseLetter:] { $rough > H ;
$rough < H ;
$rough <> h ;
-
-# Completeness for Greek
-
Ï > | β ;
ϑ > | θ ;
ϒ > | Υ ;
ϕ > | φ ;
ϖ > | π ;
-
ϰ > | κ ;
ϱ > | Ï ;
ϲ > | σ ;
@@ -328,18 +199,9 @@ $rough <> h ;
ϳ > j ;
ϴ > | Θ ;
ϵ > | ε ;
-
µ > | μ ;
-
- ͺ > i;
-
-# delete any trailing ' marks used for roundtripping
-
- < [Ππ] { \' } [Ss] ;
- < [Îν] { \' } $egammaLike ;
-
+ͺ > i;
+< [Ππ] { \' } [Ss] ;
+< [Îν] { \' } $egammaLike ;
::NFC (NFD) ;
-# ([\u0000-\u007F [:Latin:] [:Greek:] [:nonspacing mark:]]) ;
-# ([\u0000-\u007F \u00B7 [:Latin:] [:nonspacing mark:]]) ;
-# MINIMAL FILTER GENERATED FOR: Latin-Greek BACKWARD
-:: ( [':?A-Za-z\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0300-\u0337\u0339-\u0345\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AA-\u03B0\u03CA-\u03CE\u03D3-\u03D4\u0400-\u0401\u0403\u0407\u040C-\u040E\u0419\u0439\u0450-\u0451\u0453\u0457\u045C-\u045E\u0476-\u0477\u04C1-\u04C2\u04D0-\u04D3\u04D6-\u04D7\u04DA-\u04DF\u04E2-\u04E7\u04EA-\u04F5\u04F8-\u04F9\u1E00-\u1E99\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FC1-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEE\u1FF2-\u1FF4\u1FF6-\u1FFC\u212A-\u212B] ) ;
+:: ( [':?A-Za-zÀ-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳ\u0300-\u0337\u0339-\u0345Î…-ΆΈ-ΊΌΎ-ÎΪ-ΰϊ-ÏŽÏ“-ϔЀ-ÐЃЇЌ-ЎЙйÑ-Ñ‘Ñ“Ñ—Ñœ-ўѶ-Ñ·Ó-Ó‚Ó-Ó“Ó–-Ó—Óš-ÓŸÓ¢-Ó§Óª-ÓµÓ¸-ӹḀ-ẙẛẠ-ỹἀ-ἕἘ-á¼á¼ -ὅὈ-á½á½-ὗὙὛá½á½Ÿ-ώᾀ-ᾴᾶ-á¾¼á¿-ῄῆ-á¿“á¿–-á¿›á¿-΅ῲ-ῴῶ-ῼK-â„«] ) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Greek_Latin_UNGEGN.txt b/Build/source/libs/icu-xetex/data/translit/Greek_Latin_UNGEGN.txt
index f14bc236cef..b56efb4505a 100644
--- a/Build/source/libs/icu-xetex/data/translit/Greek_Latin_UNGEGN.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Greek_Latin_UNGEGN.txt
@@ -1,211 +1,131 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-# For modern Greek, based on UNGEGN rules.
-
-# Rules are predicated on running NFD first, and NFC afterwards
-# MINIMAL FILTER GENERATED FOR: Greek-Latin/UNGEGN
-# WARNING: need to add accents to both filters ###
-# :: [Ì̄̆̈;µ·ÀÂÈÊÌÎÒÔÙÛàâèêìîòôùûĈ-ĉĜ-ÄĤ-ĥĴ-ĵŜ-ÅÅ´-Å·Ç›-ǜǸ-ǹ̀̂̓-̔̀͂-̓ͅͺ;Ά-ΊΌΎ-ΡΣ-ÏŽÏ-Ï–Ï°-ϵЀÐÑÑḔ-ḕá¹-ṑẀ-áºáº-ẑẤ-ậẰ-ằẾ-ệá»-ộỜ-á»á»ª-ừỲ-ỳἀ-ἕἘ-á¼á¼ -ὅὈ-á½á½-ὗὙὛá½á½Ÿ-ώᾀ-ᾴᾶ-ᾼιá¿-ῄῆ-á¿á¿-á¿“á¿–-á¿›á¿á¿Ÿ-῭ῲ-ῴῶ-ῼΩ\u03F7-\u07FB\u03F9] ;
-
-:: [[[:Greek:][:Mn:][:Me:]] [\:-;?\u00B7\u037E\u0387]] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Greek_Latin_UNGEGN.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+:: [[[:Greek:][:Mn:][:Me:]] [\:-;?·;·]] ;
::NFD (NFC) ;
-
-# Useful variables
-
$lower = [[:latin:][:greek:] & [:Ll:]] ;
$upper = [[:latin:][:greek:] & [:Lu:]] ;
$accent = [[:Mn:][:Me:]] ;
-
-$macron = Ì„ ;
-$ddot = ̈ ;
-
+$macron = \u0304 ;
+$ddot = \u0308 ;
$lcgvowel = [αεηιουω] ;
$ucgvowel = [ΑΕΗΙΟΥΩ] ;
$gvowel = [$lcgvowel $ucgvowel] ;
$lcgvowelC = [$lcgvowel $accent] ;
-
$evowel = [aeiouyAEIOUY];
$vowel = [ $evowel $gvowel] ;
-
$beforeLower = $accent * $lower ;
-
$gammaLike = [ΓΚΞΧγκξχϰ] ;
$egammaLike = [GKXCgkxc] ;
-$smooth = Ì“ ;
-$rough = Ì” ;
-$iotasub = Í… ;
-
+$smooth = \u0313 ;
+$rough = \u0314 ;
+$iotasub = \u0345 ;
$softener = [βΒγΓδΔζΖλΛμΜνÎÏΡ$gvowel] ;
-
-$under = ̱;
-
-$caron = ̌;
-
+$under = \u0331;
+$caron = \u030C;
$afterLetter = [:L:] [\'$accent]* ;
$beforeLetter = [\'$accent]* [:L:] ;
-
-# Fix punctuation
-
-# preserve orginal
\: <> \: $under ;
\? <> \? $under ;
-
\; <> \? ;
· <> \: ;
-
-# Fix any ancient characters that creep in
-
-Í‚ > Ì ;
-Ì‚ > Ì ;
-Ì€ > Ì ;
+\u0342 > \u0301 ;
+\u0302 > \u0301 ;
+\u0300 > \u0301 ;
$smooth > ;
$rough > ;
$iotasub > ;
ͺ > ;
-
-# need to have these up here so the rules don't mask
-
η <> i $under ;
Η <> I $under ;
-
Ψ } $beforeLower <> Ps ;
Ψ <> PS ;
ψ <> ps ;
-
ω <> o $under ;
Ω <> O $under;
-
-# at begining or end of word, convert mp to b
-
[^[:L:]$accent] { μπ > b ;
μπ } [^[:L:]$accent] > b ;
[^[:L:]$accent] { [Μμ][Ππ] > B ;
[Μμ][Ππ] } [^[:L:]$accent] > B ;
-
μπ < b ;
Μπ < B } $beforeLower ;
ΜΠ < B ;
-
-# handle diphthongs ending with upsilon
-
ου <> ou ;
ΟΥ <> OU ;
Ου <> Ou ;
οΥ <> oU ;
-
$fmaker = [aeiAEI] $under ? ;
$shiftForwardVowels = [[:Mn:]-[\u0308]]; # note: a diaeresis keeps the items separate
-
$fmaker { Ï… ( $shiftForwardVowels )* } $softener > $1 v $under ;
Ï… $1 < ( $shiftForwardVowels )* v $under ;
-
$fmaker { Ï… ( $shiftForwardVowels )* } > $1 f $under;
Ï… $1 < ( $shiftForwardVowels )* f $under ;
-
$fmaker { Υ } $softener <> V $under ;
$fmaker { Υ <> U $under ;
-
Ï… <> y ;
Î¥ <> Y ;
-
-# NORMAL
-
α <> a ;
Α <> A ;
-
β <> v ;
Î’ <> V ;
-
γ } $gammaLike <> n } $egammaLike ;
γ <> g ;
Γ } $gammaLike <> N } $egammaLike ;
Γ <> G ;
-
δ <> d ;
Δ <> D ;
-
ε <> e ;
Ε <> E ;
-
ζ <> z ;
Ζ <> Z ;
-
θ <> th ;
Θ } $beforeLower <> Th ;
Θ <> TH ;
-
ι <> i ;
Ι <> I ;
-
κ <> k ;
Κ <> K ;
-
λ <> l ;
Λ <> L ;
-
μ <> m ;
Μ <> M ;
-
ν } $gammaLike > n\' ;
ν <> n ;
Î } $gammaLike <> N\' ;
Î <> N ;
-
ξ <> x ;
Ξ <> X ;
-
ο <> o ;
Ο <> O ;
-
Ï€ <> p ;
Π <> P ;
-
Ï <> r ;
Ρ <> R ;
-
-# insert separator before things that turn into s
-[Pp] { } [ςσΣϷϸϺϻ] > \' ;
-
-# special S variants
-
-Ϸ <> Š ; # Ϸ GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
-ϸ <> š ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
-Ϻ <> Ŝ ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
-ϻ <> ŝ ; # ϻ GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
-
-# Caron means exception
-
-# before a letter, initial
+[Pp] { } [ςσΣϷϸϺϻ] > \' ;
+Ï· <> S\u030C ; # Ï· GREEK CAPITAL LETTER SHO Uppercase_Letter Grek - L
+ϸ <> s\u030C ; #ϸ GREEK SMALL LETTER SHO Lowercase_Letter Grek - L
+Ϻ <> S\u0302 ; # Ϻ GREEK CAPITAL LETTER SAN Uppercase_Letter Grek - L
+Ï» <> s\u0302 ; # Ï» GREEK SMALL LETTER SAN Lowercase_Letter Grek - L
Ï‚ } $beforeLetter <> s $under } $beforeLetter;
σ } $beforeLetter <> s } $beforeLetter;
-
-# otherwise, after a letter = final
$afterLetter { σ <> $afterLetter { s $under;
$afterLetter { Ï‚ <> $afterLetter { s ;
-
-# otherwise (isolated) = initial
Ï‚ <> s $under;
σ <> s ;
-
-# [Pp] { Σ <> \'S ;
Σ <> S ;
-
Ï„ <> t ;
Τ <> T ;
-
φ <> f ;
Φ <> F ;
-
χ <> ch ;
Χ } $beforeLower <> Ch ;
Χ <> CH ;
-
-# Completeness for ASCII
-
-# $ignore = [[:Mark:]''] * ;
-
| ch < h ;
| k < c ;
| i < j ;
@@ -214,7 +134,6 @@ $afterLetter { Ï‚ <> $afterLetter { s ;
| b < w } $vowel ;
| y < u ;
| y < w ;
-
| Ch < H ;
| K < C ;
| I < J ;
@@ -223,15 +142,11 @@ $afterLetter { Ï‚ <> $afterLetter { s ;
| B < U } $vowel ;
| Y < W ;
| Y < U ;
-
-# Completeness for Greek
-
Ï > | β ;
ϑ > | θ ;
ϒ > | Υ ;
ϕ > | φ ;
ϖ > | π ;
-
ϰ > | κ ;
ϱ > | Ï ;
ϲ > | σ ;
@@ -240,13 +155,7 @@ $afterLetter { Ï‚ <> $afterLetter { s ;
ϴ > | Θ ;
ϵ > | ε ;
µ > | μ ;
-
-# delete any trailing ' marks used for roundtripping
-
- < [Ππ] { \' } [Ss] ;
- < [Îν] { \' } $egammaLike ;
-
+< [Ππ] { \' } [Ss] ;
+< [Îν] { \' } $egammaLike ;
::NFC (NFD) ;
-
-# MINIMAL FILTER GENERATED FOR: Latin-Greek/UNGEGN BACKWARD
:: ([[[:Latin:][:Mn:][:Me:]] ['\:?]]) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Bengali.txt
new file mode 100644
index 00000000000..20dba90b8c5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Devanagari.txt
new file mode 100644
index 00000000000..614612a4d06
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Gurmukhi.txt
new file mode 100644
index 00000000000..797dada1834
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_InterIndic.txt
index 2053427608a..935e72da00d 100644
--- a/Build/source/libs/icu-xetex/data/translit/Gujarati_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_InterIndic.txt
@@ -1,91 +1,91 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Gujarati-InterIndic
-#:: NFD (NFC) ;
-\u0a81>\ue001; # SIGN CANDRABINDU
-\u0a82>\ue002; # SIGN ANUSVARA
-\u0a83>\ue003; # SIGN VISARGA
-\u0a85>\ue005; # LETTER A
-\u0a86>\ue006; # LETTER AA
-\u0a87>\ue007; # LETTER I
-\u0a88>\ue008; # LETTER II
-\u0a89>\ue009; # LETTER U
-\u0a8a>\ue00a; # LETTER UU
-\u0a8b>\ue00b; # LETTER VOCALIC R
-\u0a8c>\ue00c; # LETTER VOCALLIC L
-\u0a8d>\ue00d; # VOWEL CANDRA E
-\u0a8f>\ue00f; # LETTER E
-\u0a90>\ue010; # LETTER AI
-\u0a91>\ue011; # VOWEL CANDRA O
-\u0a93>\ue013; # LETTER O
-\u0a94>\ue014; # LETTER AU
-\u0a95>\ue015; # LETTER KA
-\u0a96>\ue016; # LETTER KHA
-\u0a97>\ue017; # LETTER GA
-\u0a98>\ue018; # LETTER GHA
-\u0a99>\ue019; # LETTER NGA
-\u0a9a>\ue01a; # LETTER CA
-\u0a9b>\ue01b; # LETTER CHA
-\u0a9c>\ue01c; # LETTER JA
-\u0a9d>\ue01d; # LETTER JHA
-\u0a9e>\ue01e; # LETTER NYA
-\u0a9f>\ue01f; # LETTER TTA
-\u0aa0>\ue020; # LETTER TTHA
-\u0aa1>\ue021; # LETTER DDA
-\u0aa2>\ue022; # LETTER DDHA
-\u0aa3>\ue023; # LETTER NNA
-\u0aa4>\ue024; # LETTER TA
-\u0aa5>\ue025; # LETTER THA
-\u0aa6>\ue026; # LETTER DA
-\u0aa7>\ue027; # LETTER DHA
-\u0aa8>\ue028; # LETTER NA
-\u0aaa>\ue02a; # LETTER PA
-\u0aab>\ue02b; # LETTER PHA
-\u0aac>\ue02c; # LETTER BA
-\u0aad>\ue02d; # LETTER BHA
-\u0aae>\ue02e; # LETTER MA
-\u0aaf>\ue02f; # LETTER YA
-\u0ab0>\ue030; # LETTER RA
-\u0ab2>\ue032; # LETTER LA
-\u0ab3>\ue033; # LETTER LLA
-\u0ab5>\ue035; # LETTER VA
-\u0ab6>\ue036; # LETTER SHA
-\u0ab7>\ue037; # LETTER SSA
-\u0ab8>\ue038; # LETTER SA
-\u0ab9>\ue039; # LETTER HA
-\u0abc>\ue03c; # SIGN NUKTA
-\u0abd>\ue03d; # SIGN AVAGRAHA
-\u0abe>\ue03e; # VOWEL SIGN AA
-\u0abf>\ue03f; # VOWEL SIGN I
-\u0ac0>\ue040; # VOWEL SIGN II
-\u0ac1>\ue041; # VOWEL SIGN U
-\u0ac2>\ue042; # VOWEL SIGN UU
-\u0ac3>\ue043; # VOWEL SIGN VOCALIC R
-\u0ac4>\ue044; # VOWEL SIGN VOCALIC RR
-\u0ac5>\ue045; # VOWEL SIGN CANDRA E
-\u0ac7>\ue047; # VOWEL SIGN E
-\u0ac8>\ue048; # VOWEL SIGN AI
-\u0ac9>\ue049; # VOWEL SIGN CANDRA O
-\u0acb>\ue04b; # VOWEL SIGN O
-\u0acc>\ue04c; # VOWEL SIGN AU
-\u0acd>\ue04d; # SIGN VIRAMA
-\u0ad0>\ue050; # OM
-\u0ae0>\ue060; # LETTER VOCALIC RR
-\u0ae1>\ue061; # LETTER VOCALIC LL
-\u0ae6>\ue066; # DIGIT ZERO
-\u0ae7>\ue067; # DIGIT ONE
-\u0ae8>\ue068; # DIGIT TWO
-\u0ae9>\ue069; # DIGIT THREE
-\u0aea>\ue06a; # DIGIT FOUR
-\u0aeb>\ue06b; # DIGIT FIVE
-\u0aec>\ue06c; # DIGIT SIX
-\u0aed>\ue06d; # DIGIT SEVEN
-\u0aee>\ue06e; # DIGIT EIGHT
-\u0aef>\ue06f; # DIGIT NINE
-\u0964>\ue064; # DANDA
-\u0965>\ue065; # DOUBLE DANDA
-# :: NFC (NFD) ;
-# eof
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+\u0A81>\uE001; # SIGN CANDRABINDU
+\u0A82>\uE002; # SIGN ANUSVARA
+ઃ>\uE003; # SIGN VISARGA
+અ>\uE005; # LETTER A
+આ>\uE006; # LETTER AA
+ઇ>\uE007; # LETTER I
+ઈ>\uE008; # LETTER II
+ઉ>\uE009; # LETTER U
+ઊ>\uE00A; # LETTER UU
+ઋ>\uE00B; # LETTER VOCALIC R
+ઌ>\uE00C; # LETTER VOCALLIC L
+àª>\uE00D; # VOWEL CANDRA E
+àª>\uE00F; # LETTER E
+àª>\uE010; # LETTER AI
+ઑ>\uE011; # VOWEL CANDRA O
+ઓ>\uE013; # LETTER O
+ઔ>\uE014; # LETTER AU
+ક>\uE015; # LETTER KA
+ખ>\uE016; # LETTER KHA
+ગ>\uE017; # LETTER GA
+ઘ>\uE018; # LETTER GHA
+ઙ>\uE019; # LETTER NGA
+ચ>\uE01A; # LETTER CA
+છ>\uE01B; # LETTER CHA
+જ>\uE01C; # LETTER JA
+àª>\uE01D; # LETTER JHA
+ઞ>\uE01E; # LETTER NYA
+ટ>\uE01F; # LETTER TTA
+ઠ>\uE020; # LETTER TTHA
+ડ>\uE021; # LETTER DDA
+ઢ>\uE022; # LETTER DDHA
+ણ>\uE023; # LETTER NNA
+ત>\uE024; # LETTER TA
+થ>\uE025; # LETTER THA
+દ>\uE026; # LETTER DA
+ધ>\uE027; # LETTER DHA
+ન>\uE028; # LETTER NA
+પ>\uE02A; # LETTER PA
+ફ>\uE02B; # LETTER PHA
+બ>\uE02C; # LETTER BA
+ભ>\uE02D; # LETTER BHA
+મ>\uE02E; # LETTER MA
+ય>\uE02F; # LETTER YA
+ર>\uE030; # LETTER RA
+લ>\uE032; # LETTER LA
+ળ>\uE033; # LETTER LLA
+વ>\uE035; # LETTER VA
+શ>\uE036; # LETTER SHA
+ષ>\uE037; # LETTER SSA
+સ>\uE038; # LETTER SA
+હ>\uE039; # LETTER HA
+\u0ABC>\uE03C; # SIGN NUKTA
+ઽ>\uE03D; # SIGN AVAGRAHA
+ા>\uE03E; # VOWEL SIGN AA
+િ>\uE03F; # VOWEL SIGN I
+à«€>\uE040; # VOWEL SIGN II
+\u0AC1>\uE041; # VOWEL SIGN U
+\u0AC2>\uE042; # VOWEL SIGN UU
+\u0AC3>\uE043; # VOWEL SIGN VOCALIC R
+\u0AC4>\uE044; # VOWEL SIGN VOCALIC RR
+\u0AC5>\uE045; # VOWEL SIGN CANDRA E
+\u0AC7>\uE047; # VOWEL SIGN E
+\u0AC8>\uE048; # VOWEL SIGN AI
+ૉ>\uE049; # VOWEL SIGN CANDRA O
+à«‹>\uE04B; # VOWEL SIGN O
+ૌ>\uE04C; # VOWEL SIGN AU
+\u0ACD>\uE04D; # SIGN VIRAMA
+à«>\uE050; # OM
+à« >\uE060; # LETTER VOCALIC RR
+à«¡>\uE061; # LETTER VOCALIC LL
+૦>\uE066; # DIGIT ZERO
+૧>\uE067; # DIGIT ONE
+૨>\uE068; # DIGIT TWO
+à«©>\uE069; # DIGIT THREE
+૪>\uE06A; # DIGIT FOUR
+à««>\uE06B; # DIGIT FIVE
+૬>\uE06C; # DIGIT SIX
+à«­>\uE06D; # DIGIT SEVEN
+à«®>\uE06E; # DIGIT EIGHT
+૯>\uE06F; # DIGIT NINE
+।>\uE064; # DANDA
+॥>\uE065; # DOUBLE DANDA
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Kannada.txt
new file mode 100644
index 00000000000..9a248b46fb9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Latin.txt
new file mode 100644
index 00000000000..7cd61715179
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Malayalam.txt
new file mode 100644
index 00000000000..dfdd45c19fc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Oriya.txt
new file mode 100644
index 00000000000..fe95e2a8963
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Tamil.txt
new file mode 100644
index 00000000000..0597c1818f2
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gujarati_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Gujarati_Telugu.txt
new file mode 100644
index 00000000000..49710607c23
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gujarati_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gujarati_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A81-ઃઅ-àªàª-ઑઓ-નપ-રલ-ળવ-હ\u0ABC-\u0AC5\u0AC7-ૉો-\u0ACDà«à« à«¡à«¦-૯];
+::NFD;
+::Gujarati-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Bengali.txt
new file mode 100644
index 00000000000..692921b3753
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Devanagari.txt
new file mode 100644
index 00000000000..aaf764b61e4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Gujarati.txt
new file mode 100644
index 00000000000..c96bcd2f58d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:13 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_InterIndic.txt
index 2c93789836b..b6cbf1fb0da 100644
--- a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_InterIndic.txt
@@ -1,68 +1,63 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Gurmukhi-InterIndic
-#:: NFD (NFC) ;
-
-#\u0A16\u0A3C>\uE059; # LETTER KHHA
-#\u0A17\u0A3C>\uE05A; # LETTER GHHA
-#\u0A1C\u0A3C>\uE05B; # LETTER ZA
-#\u0A38\u0A3C>\uE036; # LETTER SHA
-#\u0A32\u0A3C>\uE033; # LETTER LLA
-#\u0A2B\u0A3C>\uE05E; # LETTER FA
-\u0A01>\ue001; # SIGN CHANDRABINDU
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+\u0A01>\uE001; # SIGN CHANDRABINDU
\u0A02>\uE002; # SIGN BINDI
-\u0A05>\uE005; # LETTER A
-\u0A06>\uE006; # LETTER AA
-\u0A07>\uE007; # LETTER I
-\u0A08>\uE008; # LETTER II
-\u0A09>\uE009; # LETTER U
-\u0A0A>\uE00A; # LETTER UU
-\u0A0C>\uE032; # FALLBACK : VOCALLIC LA
-\u0A0F>\uE00F; # LETTER EE
-\u0A10>\uE010; # LETTER AI
-\u0A13>\uE013; # LETTER OO
-\u0A14>\uE014; # LETTER AU
-\u0A15>\uE015; # LETTER KA
-\u0A16>\uE016; # LETTER KHA
-\u0A17>\uE017; # LETTER GA
-\u0A18>\uE018; # LETTER GHA
-\u0A19>\uE019; # LETTER NGA
-\u0A1A>\uE01A; # LETTER CA
-\u0A1B>\uE01B; # LETTER CHA
-\u0A1C>\uE01C; # LETTER JA
-\u0A1D>\uE01D; # LETTER JHA
-\u0A1E>\uE01E; # LETTER NYA
-\u0A1F>\uE01F; # LETTER TTA
-\u0A20>\uE020; # LETTER TTHA
-\u0A21>\uE021; # LETTER DDA
-\u0A22>\uE022; # LETTER DDHA
-\u0A23>\uE023; # LETTER NNA
-\u0A24>\uE024; # LETTER TA
-\u0A25>\uE025; # LETTER THA
-\u0A26>\uE026; # LETTER DA
-\u0A27>\uE027; # LETTER DHA
-\u0A28>\uE028; # LETTER NA
-\u0A2A>\uE02A; # LETTER PA
-\u0A2B>\uE02B; # LETTER PHA
-\u0A2C>\uE02C; # LETTER BA
-\u0A2D>\uE02D; # LETTER BHA
-\u0A2E>\uE02E; # LETTER MA
-\u0A2F>\uE02F; # LETTER YA
-\u0A30>\uE030; # LETTER RA
-\u0A32>\uE032; # LETTER LA
-\u0a33>\uE033; # FALLBACK
-\u0A35>\uE035; # LETTER VA
-\u0a36>\ue036;
-\u0A38\0a3c>\ue036; # FALLBACK
-\u0A38>\uE038; # LETTER SA
-\u0A39>\uE039; # LETTER HA
+ਅ>\uE005; # LETTER A
+ਆ>\uE006; # LETTER AA
+ਇ>\uE007; # LETTER I
+ਈ>\uE008; # LETTER II
+ਉ>\uE009; # LETTER U
+ਊ>\uE00A; # LETTER UU
+\u0A0C>\uE032; # FALLBACK : VOCALLIC LA
+à¨>\uE00F; # LETTER EE
+à¨>\uE010; # LETTER AI
+ਓ>\uE013; # LETTER OO
+ਔ>\uE014; # LETTER AU
+ਕ>\uE015; # LETTER KA
+ਖ>\uE016; # LETTER KHA
+ਗ>\uE017; # LETTER GA
+ਘ>\uE018; # LETTER GHA
+ਙ>\uE019; # LETTER NGA
+ਚ>\uE01A; # LETTER CA
+ਛ>\uE01B; # LETTER CHA
+ਜ>\uE01C; # LETTER JA
+à¨>\uE01D; # LETTER JHA
+ਞ>\uE01E; # LETTER NYA
+ਟ>\uE01F; # LETTER TTA
+ਠ>\uE020; # LETTER TTHA
+ਡ>\uE021; # LETTER DDA
+ਢ>\uE022; # LETTER DDHA
+ਣ>\uE023; # LETTER NNA
+ਤ>\uE024; # LETTER TA
+ਥ>\uE025; # LETTER THA
+ਦ>\uE026; # LETTER DA
+ਧ>\uE027; # LETTER DHA
+ਨ>\uE028; # LETTER NA
+ਪ>\uE02A; # LETTER PA
+ਫ>\uE02B; # LETTER PHA
+ਬ>\uE02C; # LETTER BA
+ਭ>\uE02D; # LETTER BHA
+ਮ>\uE02E; # LETTER MA
+ਯ>\uE02F; # LETTER YA
+ਰ>\uE030; # LETTER RA
+ਲ>\uE032; # LETTER LA
+ਲ਼>\uE033; # FALLBACK
+ਵ>\uE035; # LETTER VA
+ਸ਼>\uE036;
+ਸ\0a3c>\uE036; # FALLBACK
+ਸ>\uE038; # LETTER SA
+ਹ>\uE039; # LETTER HA
\u0A3C>\uE03C; # SIGN NUKTA
-\u0A3E>\uE03E; # VOWEL SIGN AA
-\u0A3F>\uE03F; # VOWEL SIGN I
-\u0A40>\uE040; # VOWEL SIGN II
+ਾ>\uE03E; # VOWEL SIGN AA
+ਿ>\uE03F; # VOWEL SIGN I
+à©€>\uE040; # VOWEL SIGN II
\u0A41>\uE041; # VOWEL SIGN U
\u0A42>\uE042; # VOWEL SIGN UU
\u0A47>\uE047; # VOWEL SIGN EE
@@ -70,26 +65,21 @@
\u0A4B>\uE04B; # VOWEL SIGN OO
\u0A4C>\uE04C; # VOWEL SIGN AU
\u0A4D>\uE04D; # SIGN VIRAMA
-
-\u0A5C>\uE05C; # LETTER RRA
-
-\u0A66>\uE066; # DIGIT ZERO
-\u0A67>\uE067; # DIGIT ONE
-\u0A68>\uE068; # DIGIT TWO
-\u0A69>\uE069; # DIGIT THREE
-\u0A6A>\uE06A; # DIGIT FOUR
-\u0A6B>\uE06B; # DIGIT FIVE
-\u0A6C>\uE06C; # DIGIT SIX
-\u0A6D>\uE06D; # DIGIT SEVEN
-\u0A6E>\uE06E; # DIGIT EIGHT
-\u0A6F>\uE06F; # DIGIT NINE
+ੜ>\uE05C; # LETTER RRA
+੦>\uE066; # DIGIT ZERO
+੧>\uE067; # DIGIT ONE
+੨>\uE068; # DIGIT TWO
+à©©>\uE069; # DIGIT THREE
+੪>\uE06A; # DIGIT FOUR
+à©«>\uE06B; # DIGIT FIVE
+੬>\uE06C; # DIGIT SIX
+à©­>\uE06D; # DIGIT SEVEN
+à©®>\uE06E; # DIGIT EIGHT
+੯>\uE06F; # DIGIT NINE
\u0A70>\uE07C; # TIPPI
\u0A71>\uE07D; # ADDAK
-\u0A72>\uE07E; # IRI
-\u0A73>\uE07F; # URA
-\u0A74>\uE080; # EK ONKAR
-\u0964>\ue064; # DANDA
-\u0965>\ue065; # DOUBLE DANDA
-# :: NFC (NFD) ;
-# eof
-
+ੲ>\uE07E; # IRI
+ੳ>\uE07F; # URA
+à©´>\uE080; # EK ONKAR
+।>\uE064; # DANDA
+॥>\uE065; # DOUBLE DANDA
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Kannada.txt
new file mode 100644
index 00000000000..a0f2c379b5e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Latin.txt
new file mode 100644
index 00000000000..fa1fd0ba13c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Malayalam.txt
new file mode 100644
index 00000000000..becc7f01001
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Oriya.txt
new file mode 100644
index 00000000000..4855f87c2c7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Tamil.txt
new file mode 100644
index 00000000000..4cc00109695
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Telugu.txt
new file mode 100644
index 00000000000..1e2e3e1ed1a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Gurmukhi_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Gurmukhi_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:14 PDT 2006
+#
+::[।-॥\u0A01\u0A02ਅ-ਊà¨-à¨à¨“-ਨਪ-ਰਲ-ਲ਼ਵ-ਸ਼ਸ-ਹ\u0A3Cਾ-\u0A42\u0A47-\u0A48\u0A4B-\u0A4Dà©™-ੜਫ਼੦-à©´];
+::NFD;
+::Gurmukhi-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Han_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Han_Latin.txt
index 665609710e9..96b06acbe77 100644
--- a/Build/source/libs/icu-xetex/data/translit/Han_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Han_Latin.txt
@@ -1,14 +1,13 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Warning: does not do round-trip mapping!!
-
-# Convert CJK characters
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Han_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
::Han-Spacedhan();
-
-# Start RAW data for converting CJK characters
[å–呵錒锕阿]>Ä;
嗄>á;
å•Š>a;
@@ -754,7 +753,7 @@
[㜛㯎㶧嫩嫰]>nèn;
[ã´°ä»å¬£èƒ½è–´]>néng;
㲌>nèng;
-㕶>ng̀;
+㕶>ng\u0300;
妮>nī;
[㞾㪒㹸䘦䘽ä›äšå€ªå­åŸ¿å©—尼屔怩泥淣狋猊秜籾臡蚭蜺觬貎跜輗郳霓鯓鯢鲵麑齯]>ní;
[㣇㵫䕥䦵䧇䭲䰯伱伲你儗儞孴抳拟擬旎柅狔禰苨薿鈮鉨铌隬馜]>nÇ;
@@ -1408,33 +1407,3 @@
[㸲䎰ä«äž°æ˜¨æ¤Šç¢ç§¨ç¨“筰葃鈼]>zuó;
[ã¾ä½å’—唨左毑繓]>zuÇ’;
[㑅㘀㘴㛗㭮ä‹ä”˜ä½œä¾³åšå”‘å夎å²å²žåº§æ€æŸžç¥šç³³èƒ™è‘„è¢é…¢é˜¼]>zuò;
-# End RAW data for converting CJK characters
-
-# fallbacks
-
-## | yi < i;
-## | wu < u;
-## | bi < b;
-## | ci < c;
-## | di < d;
-## | fu < f;
-## | gu < g;
-## | he < h;
-## | ji < j;
-## | ku < k;
-## | li < l;
-## | mi < m;
-## | pi < p;
-## | qi < q;
-## | l < r;
-## | si < s;
-## | ti < t;
-## | f < v;
-## | wa < w;
-## | xi < x;
-## | yi < y;
-## | zi < z;
-
-# filter out the half-width hangul
-# :: [^\uFFBE-\uFFEE] fullwidth-halfwidth ();
-## :: (lower) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Han_Spacedhan.txt b/Build/source/libs/icu-xetex/data/translit/Han_Spacedhan.txt
index 85607b58e72..e3681bb78bf 100644
--- a/Build/source/libs/icu-xetex/data/translit/Han_Spacedhan.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Han_Spacedhan.txt
@@ -1,24 +1,17 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Only intended for internal use
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Han_Spacedhan.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
:: fullwidth-halfwidth;
-
。 > '.';
-
$terminalPunct = [\.\,\:\;\?\!.,:?ï¼ï½¡ã€ï¼›[:Pe:][:Pf:]];
$initialPunct = [:Ps:][:Pi:];
-
-# add space between any Han or terminal punctuation and letters, and
-# between letters and Han or initial punct
-
[[:Ideographic:] $terminalPunct] {} [:Letter:] > ' ' ;
[:Letter:] [:Mark:]* {} [[:Ideographic:] $initialPunct] > ' ' ;
-
-# remove spacing between ideographs and other letters
-
- < [:Ideographic:] { ' ' } [:Letter:] ;
- < [:Letter:] [:Mark:]* { ' ' } [:Ideographic:] ;
-
+< [:Ideographic:] { ' ' } [:Letter:] ;
+< [:Letter:] [:Mark:]* { ' ' } [:Ideographic:] ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Hangul_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Hangul_Latin.txt
new file mode 100644
index 00000000000..9d5208c0842
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Hangul_Latin.txt
@@ -0,0 +1,13 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Hangul_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
+::['á„€-á„’á…¡-ᅵᆨ-ᇂㄱ-ã„¿ã…-ㅃㅅ-ㅣ㈀-㈜㉠-㉻가-힣'ᄀ-ᆵᄆ-ᄈᄉ-하-ᅦᅧ-ï¿ï¿’-ï¿—ï¿š-ï¿œ];
+::NFKD;
+::ConjoiningJamo-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Hebrew_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Hebrew_Latin.txt
index 810d8a7f8fc..40c63cadf07 100644
--- a/Build/source/libs/icu-xetex/data/translit/Hebrew_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Hebrew_Latin.txt
@@ -1,40 +1,20 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Transliteration table for Hebrew
-# Based on the UNGEGN table at:
-# http://www.eki.ee/wgrs/rom1_he.pdf
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Hebrew_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
#
-# Exceptions:
-# - Accents are added to disambiguate letters
-# - Combinations of dagesh, shin/sin dot that produce different
-# letters are not yet encoded.
-#
-# To test, open:
-# http://oss.software.ibm.com/cgi-bin/icu/tr
-# Click Edit, paste in this file, Save As hebrew-latin/XXX
-# (where XXX is a username)
-# Now go back to the main window, and try it out.
-# Use hebrew-latin/XXX for Output 1, and (Inverse) for Output 2
-# Paste in hebrew text in Input, and hit Transliterate.
-#
-# For more information, see"
-# http://icu.sourceforge.net/userguide/Transform.html
-
-:: [[:Hebrew:] [:^ccc=0:] [\u05B0-\u05B9\u05BB-\u05BC\u05C1-\u05C2\u2135-\u2138Ì„\u05BF] - [\u05BD]] ;
+:: [[:Hebrew:] [:^ccc=0:] [\u05B0-\u05B9\u05BB-\u05BC\u05C1-\u05C2ℵ-ℸ\u0304\u05BF] - [\u05BD]] ;
:: nfkd (nfc) ;
$letterAfter = [:M:]* [:L:] ;
-
-# move longer items here to avoid masking
-
-ח <> ẖ ;
-צ <> ẕ } $letterAfter;
-ץ <> ẕ ;
-ש <> ş ;
-ת <> ţ ;
-
+×— <> h\u0331 ;
+צ <> z\u0331 } $letterAfter;
+×¥ <> z\u0331 ;
+ש <> s\u0327 ;
+ת <> t\u0327 ;
× <> ʼ ;
ב <> b ;
×’ <> g ;
@@ -48,7 +28,7 @@ $letterAfter = [:M:]* [:L:] ;
ך <> k ;
ל <> l ;
מ <> m } $letterAfter;
-× <> m ;
+× <> m ;
×  <> n } $letterAfter;
ן <> n ;
ס <> s ;
@@ -57,53 +37,37 @@ $letterAfter = [:M:]* [:L:] ;
×£ <> p ;
ק <> q ;
ר <> r ;
-
- װ > | וו; # HEBREW LIGATURE YIDDISH DOUBLE VAV
- ױ > | וי; # HEBREW LIGATURE YIDDISH VAV YOD
- ײ > | יי ; # HEBREW LIGATURE YIDDISH DOUBLE YOD
-
-
-ּ <> ̇ ; # dagesh just goes to overdot for now
-× <> ÌŒ ; # shin dot -> sh
-ׂ <> ̂ ; # sin dot -> s
-
-# points
+װ > | וו; # HEBREW LIGATURE YIDDISH DOUBLE VAV
+ױ > | וי; # HEBREW LIGATURE YIDDISH VAV YOD
+ײ > | יי ; # HEBREW LIGATURE YIDDISH DOUBLE YOD
+\u05BC <> \u0307 ; # dagesh just goes to overdot for now
+\u05C1 <> \u030C ; # shin dot -> sh
+\u05C2 <> \u0302 ; # sin dot -> s
$above = [^[:ccc=0:][:ccc=230:]]*;
-
-‎ֲ‎ > à ;
-‎ֲ‎ $1< a ($above) ̀;
-
-‎ָ‎ > á ;
-‎ָ‎ $1 < a ($above) Ì;
-
-‎ֱ‎ > è ;
-‎ֱ‎ $1 < e ($above) ̀;
-
-‎ֵ‎ > é ;
-‎ֵ‎ $1 < e ($above) Ì;
-
-‎ְ‎ > e ̆ ;
-‎ְ‎ $1 < e ($above) ̆;
-
-‎ֹ‎ > ò ;
-‎ֹ‎ $1 < o ($above) ̀;
-
-Ö´ <> i ;
-Ö» <> u ;
-Ö· <> a ;
-Ö¶ <> e ;
-Ö³ <> o ;
-
-\u05BF <> Ì„ ;
-
-# fallbacks
+‎\u05B2‎ > à ;
+‎\u05B2‎ $1< a ($above) \u0300;
+‎\u05B8‎ > á ;
+‎\u05B8‎ $1 < a ($above) \u0301;
+‎\u05B1‎ > è ;
+‎\u05B1‎ $1 < e ($above) \u0300;
+‎\u05B5‎ > é ;
+‎\u05B5‎ $1 < e ($above) \u0301;
+‎\u05B0‎ > e \u0306 ;
+‎\u05B0‎ $1 < e ($above) \u0306;
+‎\u05B9‎ > ò ;
+‎\u05B9‎ $1 < o ($above) \u0300;
+\u05B4 <> i ;
+\u05BB <> u ;
+\u05B7 <> a ;
+\u05B6 <> e ;
+\u05B3 <> o ;
+\u05BF <> \u0304 ;
ק < c ;
פ < f } $letterAfter;
×£ < f ;
×– < j ;
ו < v ;
כס < x ;
-
:: (lower);
:: nfc (nfd) ;
-:: ([[:Latin:] [:^ccc=0:] [\u02BB-\u02BC\u0300-\u0302\u0307\u030C\u0327\u0331\u0340-\u0341 Ì„ ]]); \ No newline at end of file
+:: ([[:Latin:] [:^ccc=0:] [ʻ-ʼ\u0300-\u0302\u0307\u030C\u0327\u0331\u0340-\u0341 \u0304 ]]);
diff --git a/Build/source/libs/icu-xetex/data/translit/Hiragana_Katakana.txt b/Build/source/libs/icu-xetex/data/translit/Hiragana_Katakana.txt
index 78a97165311..28adf455a9a 100644
--- a/Build/source/libs/icu-xetex/data/translit/Hiragana_Katakana.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Hiragana_Katakana.txt
@@ -1,55 +1,18 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# note: a global filter is more efficient, but MUST include all source chars
-:: [\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9Fー[:Hiragana:] [:Katakana:] [:nonspacing mark:]] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Hiragana_Katakana.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
+:: [\u0000-\u007E ã€ã€‚ \u3099-ã‚œ ã‚¡-ー 。-゚ー[:Hiragana:] [:Katakana:] [:nonspacing mark:]] ;
:: NFKC ();
-
-# Hiragana-Katakana
-
-# This is largely a one-to-one mapping, but it has a
-# few kinks:
-
-# 1. The Katakana va/vi/ve/vo (30F7-30FA) have no
-# Hiragana equivalents. We use Hiragana wa/wi/we/wo
-# (308F-3092) with a voicing mark (3099), which is
-# semantically equivalent. However, this is a non-
-# roundtripping transformation.
-
-# 2. The Katakana small ka/ke (30F5,30F6) have no
-# Hiragana equiavlents. We convert them to normal
-# Hiragana ka/ke (304B,3051). This is a one-way
-# information-losing transformation and precludes
-# round-tripping of 30F5 and 30F6.
-
-# 3. The combining marks 3099-309C are in the Hiragana
-# block, but they apply to Katakana as well, so we
-# leave them untouched.
-
-# 4. The Katakana prolonged sound mark 30FC doubles the
-# preceding vowel. This is a one-way information-
-# losing transformation from Katakana to Hiragana.
-
-# 5. The Katakana middle dot separates words in foreign
-# expressions; we leave this unmodified.
-
-# The above points preclude successful round-trip
-# transformations of arbitrary input text. However,
-# they provide naturalistic results that should conform
-# to user expectations.
-
-
-# Combining equivalents va/vi/ve/vo
-ã‚ã‚™ <> ヷ;
-ã‚ã‚™ <> ヸ;
-ゑ゙ <> ヹ;
-を゙ <> ヺ;
-
-# One-to-one mappings, main block
-# 3041:3094 <> 30A1:30F4
-# 309D,E <> 30FD,E
+ã‚\u3099 <> ヷ;
+ã‚\u3099 <> ヸ;
+ゑ\u3099 <> ヹ;
+を\u3099 <> ヺ;
ã <> ã‚¡;
ã‚ <> ã‚¢;
ム<> ィ;
@@ -136,72 +99,37 @@
ゔ <> ヴ;
゠<> ヽ;
ゞ <> ヾ;
-
-# One-way Katakana-Hiragana xform of small K ka/ke to
-# normal H ka/ke.
㋠< ヵ;
㑠< ヶ;
-
-# Katakana followed by a prolonged sound mark 30FC has
-# its final vowel doubled. This is a Katakana-Hiragana
-# one-way information-losing transformation. We
-# include the small Katakana (e.g., small A 3041) and
-# do not distinguish them from their large
-# counterparts. It doesn't make sense to double a
-# small counterpart vowel as a small Hiragana vowel, so
-# we don't do so. In natural text this should never
-# occur anyway. If a 30FC is seen without a preceding
-# vowel sound (e.g., after n 30F3) we do not change it.
-
-### $long = ー;
-
-# The following categories are Hiragana, not Katakana
-# as might be expected, since by the time we get to the
-# 30FC, the preceding character will have already been
-# transformed to Hiragana.
-
-# {The following mechanically generated from the
-# Unicode 3.0 data:}
-
$xa = [ \
ã ゠㋠㌠㕠㖠\
ãŸ ã  ãª ã¯ ã° ã± \
㾠ゃ や ら ゎ ゠\
];
-
$xi = [ \
ムㄠã ㎠㗠㘠\
㡠㢠㫠㲠㳠㴠\
ã¿ ã‚Š ã‚ \
];
-
$xu = [ \
ã… ã† ã ã ã™ ãš \
㣠㤠㥠㬠㵠㶠\
㷠む ゅ ゆ る ゔ \
];
-
$xe = [ \
㇠㈠㑠㒠㛠㜠\
㦠㧠㭠㸠㹠㺠\
゠れ ゑ \
];
-
$xo = [ \
㉠㊠㓠㔠ã ãž \
㨠㩠㮠㻠㼠㽠\
も ょ よ ゠を \
];
-
゠< $xa {ー};
ㄠ< $xi {ー};
ㆠ< $xu {ー};
㈠< $xe {ー};
㊠< $xo {ー};
-
:: (NFKC) ;
-
-# note: a global filter is more efficient, but MUST include all source chars!!
-:: ([\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9Fー[:Hiragana:] [:Katakana:] [:nonspacing mark:]]);
-
-# eof
+:: ([\u0000-\u007E ã€ã€‚ \u3099-ã‚œ ã‚¡-ー 。-゚ー[:Hiragana:] [:Katakana:] [:nonspacing mark:]]);
diff --git a/Build/source/libs/icu-xetex/data/translit/Hiragana_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Hiragana_Latin.txt
index ed0688173c1..36b9c1fac57 100644
--- a/Build/source/libs/icu-xetex/data/translit/Hiragana_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Hiragana_Latin.txt
@@ -1,14 +1,16 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-:: [\u3041-\u3094\u3099\u309D-\u309E\u30AC\u30AE\u30B0\u30B2\u30B4\u30B6\u30B8\u30BA\u30BC\u30BE\u30C0\u30C2\u30C5\u30C7\u30C9\u30D0\u30D3\u30D6\u30D9\u30DC\u30F4\u30F7-\u30FA\u30FE] ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Hiragana_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
+:: [ã-ã‚”\u3099ã‚-ゞガギグゲゴザジズゼゾダヂヅデドãƒãƒ“ブベボヴヷ-ヺヾ] ;
:: NFD ;
-
:: Hiragana-Katakana;
:: Katakana-Latin;
-
:: NFC ;
:: (Lower) ;
-:: ([',.A-Za-z~\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0304\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1FB1\u1FB9\u1FD1\u1FD9\u1FE1\u1FE9\u212A-\u212B]) ;
+:: ([',.A-Za-z~À-ÖØ-öø-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳ\u0304Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹᾱᾹῑῙῡῩK-â„«]) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Bengali.txt
index 929e4140eef..50db709d329 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Bengali.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Bengali.txt
@@ -1,149 +1,138 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Bengali
-#:: NFD (NFC) ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
\uE001>\u0981; # SIGN CANDRABINDU
-\uE002>\u0982; # SIGN ANUSVARA
-\uE003>\u0983; # SIGN VISARGA
-\uE004>\u0985; # FALLBACK TO LETTER A
-\uE005>\u0985; # LETTER A
-\uE006>\u0986; # LETTER AA
-\uE007>\u0987; # LETTER I
-\uE008>\u0988; # LETTER II
-\uE009>\u0989; # LETTER U
-\uE00A>\u098A; # LETTER UU
-\uE00B>\u098B; # LETTER VOCALIC R
-\uE00C>\u098C; # LETTER VOCALIC L
-\uE00D>\u098F; # FALLBACK
-\uE00E>\u098F; # FALLBACK
-\uE00F>\u098F; # LETTER E
-\uE010>\u0990; # LETTER AI
-\uE011>\u0993; # FALLBACK
-\uE012>\u0993; # FALLBACK
-\uE013>\u0993; # LETTER O
-\uE014>\u0994; # LETTER AU
-\uE015>\u0995; # LETTER KA
-\uE016>\u0996; # LETTER KHA
-\uE017>\u0997; # LETTER GA
-\uE018>\u0998; # LETTER GHA
-\uE019>\u0999; # LETTER NGA
-\uE01A>\u099A; # LETTER CA
-\uE01B>\u099B; # LETTER CHA
-\uE01C>\u099C; # LETTER JA
-\uE01D>\u099D; # LETTER JHA
-\uE01E>\u099E; # LETTER NYA
-\uE01F>\u099F; # LETTER TTA
-\uE020>\u09A0; # LETTER TTHA
-\uE021>\u09A1; # LETTER DDA
-\uE022>\u09A2; # LETTER DDHA
-\uE023>\u09A3; # LETTER NNA
-\uE024>\u09A4; # LETTER TA
-\uE025>\u09A5; # LETTER THA
-\uE026>\u09A6; # LETTER DA
-\uE027>\u09A7; # LETTER DHA
-\uE028>\u09A8; # LETTER NA
-\uE029>\u09A8\u09BC; # REMAP (indicExceptions.txt): \u09a9>\u09a8 = LETTER NNNA>LETTER NA
-\uE02A>\u09AA; # LETTER PA
-\uE02B>\u09AB; # LETTER PHA
-\uE02C>\u09AC; # LETTER BA
-\uE02D>\u09AD; # LETTER BHA
-\uE02E>\u09AE; # LETTER MA
-\uE02F>\u09AF; # LETTER YA
-\uE030>\u09B0; # LETTER RA
-\uE031>\u09B0\u09BC; # FALLBACK to RA
-\uE032>\u09B2; # LETTER LA
-\uE033>\u09B2; # REMAP (indicExceptions.txt): \u09b3>\u09b2 = LETTER LLA>LETTER LA
-\uE034>\u09B2; # REMAP (indicExceptions.txt): \u09b4>\u09b2 = LETTER LLLA>LETTER LA
-\uE035>\u09AC; # REMAP (indicExceptions.txt): \u09b5>\u09ac = LETTER VA>LETTER BA
-\uE036>\u09B6; # LETTER SHA
-\uE037>\u09B7; # LETTER SSA
-\uE038>\u09B8; # LETTER SA
-\uE039>\u09B9; # LETTER HA
+\uE002>ং; # SIGN ANUSVARA
+\uE003>ঃ; # SIGN VISARGA
+\uE004>অ; # FALLBACK TO LETTER A
+\uE005>অ; # LETTER A
+\uE006>আ; # LETTER AA
+\uE007>ই; # LETTER I
+\uE008>ঈ; # LETTER II
+\uE009>উ; # LETTER U
+\uE00A>ঊ; # LETTER UU
+\uE00B>ঋ; # LETTER VOCALIC R
+\uE00C>ঌ; # LETTER VOCALIC L
+\uE00D>à¦; # FALLBACK
+\uE00E>à¦; # FALLBACK
+\uE00F>à¦; # LETTER E
+\uE010>à¦; # LETTER AI
+\uE011>ও; # FALLBACK
+\uE012>ও; # FALLBACK
+\uE013>ও; # LETTER O
+\uE014>ঔ; # LETTER AU
+\uE015>ক; # LETTER KA
+\uE016>খ; # LETTER KHA
+\uE017>গ; # LETTER GA
+\uE018>ঘ; # LETTER GHA
+\uE019>ঙ; # LETTER NGA
+\uE01A>চ; # LETTER CA
+\uE01B>ছ; # LETTER CHA
+\uE01C>জ; # LETTER JA
+\uE01D>à¦; # LETTER JHA
+\uE01E>ঞ; # LETTER NYA
+\uE01F>ট; # LETTER TTA
+\uE020>ঠ; # LETTER TTHA
+\uE021>ড; # LETTER DDA
+\uE022>ঢ; # LETTER DDHA
+\uE023>ণ; # LETTER NNA
+\uE024>ত; # LETTER TA
+\uE025>থ; # LETTER THA
+\uE026>দ; # LETTER DA
+\uE027>ধ; # LETTER DHA
+\uE028>ন; # LETTER NA
+\uE029>ন\u09BC; # REMAP (indicExceptions.txt): \u09A9>ন = LETTER NNNA>LETTER NA
+\uE02A>প; # LETTER PA
+\uE02B>ফ; # LETTER PHA
+\uE02C>ব; # LETTER BA
+\uE02D>ভ; # LETTER BHA
+\uE02E>ম; # LETTER MA
+\uE02F>য; # LETTER YA
+\uE030>র; # LETTER RA
+\uE031>র\u09BC; # FALLBACK to RA
+\uE032>ল; # LETTER LA
+\uE033>ল; # REMAP (indicExceptions.txt): \u09B3>ল = LETTER LLA>LETTER LA
+\uE034>ল; # REMAP (indicExceptions.txt): \u09B4>ল = LETTER LLLA>LETTER LA
+\uE035>ব; # REMAP (indicExceptions.txt): \u09B5>ব = LETTER VA>LETTER BA
+\uE036>শ; # LETTER SHA
+\uE037>ষ; # LETTER SSA
+\uE038>স; # LETTER SA
+\uE039>হ; # LETTER HA
\uE03C>\u09BC; # SIGN NUKTA
-\uE03D>\u09bd; # SIGN AVAGRAHA
-\uE03E>\u09BE; # VOWEL SIGN AA
-\uE03F>\u09BF; # VOWEL SIGN I
-\uE040>\u09C0; # VOWEL SIGN II
+\uE03D>ঽ; # SIGN AVAGRAHA
+\uE03E>া; # VOWEL SIGN AA
+\uE03F>ি; # VOWEL SIGN I
+\uE040>ী; # VOWEL SIGN II
\uE041>\u09C1; # VOWEL SIGN U
\uE042>\u09C2; # VOWEL SIGN UU
\uE043>\u09C3; # VOWEL SIGN VOCALIC R
\uE044>\u09C4; # VOWEL SIGN VOCALIC RR
-\uE045>\u09C7; # REMAP (indicExceptions.txt): \u09c5>\u09c7 = VOWEL SIGN CANDRA E>VOWEL SIGN E
-\uE046>\u09C7; # FALLBACK
-\uE047>\u09C7; # VOWEL SIGN E
-\uE048>\u09C8; # VOWEL SIGN AI
-\uE049>\u09C7\u09BE; # REMAP (indicExceptions.txt): \u09c9>\u09cb = VOWEL SIGN CANDRA O>VOWEL SIGN O
-\uE04A>\u09C7\u09BE; # FALLBACK
-\uE04B>\u09C7\u09BE; # VOWEL SIGN O
-\uE04C>\u09C7\u09D7; # VOWEL SIGN AU
+\uE045>ে; # REMAP (indicExceptions.txt): \u09C5>ে = VOWEL SIGN CANDRA E>VOWEL SIGN E
+\uE046>ে; # FALLBACK
+\uE047>ে; # VOWEL SIGN E
+\uE048>ৈ; # VOWEL SIGN AI
+\uE049>ো; # REMAP (indicExceptions.txt): \u09C9>ো = VOWEL SIGN CANDRA O>VOWEL SIGN O
+\uE04A>ো; # FALLBACK
+\uE04B>ো; # VOWEL SIGN O
+\uE04C>ৌ; # VOWEL SIGN AU
\uE04D>\u09CD; # SIGN VIRAMA
-\uE050>\u0993\u0982; # InterIndic-Bengali: OM
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
+\uE050>ওং; # InterIndic-Bengali: OM
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
\uE055>; # LENGTH MARK
-\uE056>\u09C8; # REMAP (indicExceptions.txt): \u09d6>\u09c8 = AI LENGTH MARK>VOWEL SIGN AI
-\uE057>\u09D7; # AU LENGTH MARK
-\uE058>\u0995\u09BC; # FALLBACK
-\uE059>\u0996\u09BC; # REMAP (indicExceptions.txt): \u09d9>\u0996 = LETTER KHHA>LETTER KHA
-\uE05A>\u0997\u09BC; # REMAP (indicExceptions.txt): \u09da>\u0997 = LETTER GHHA>LETTER GA
-\uE05B>\u099C\u09BC; # REMAP (indicExceptions.txt): \u09db>\u099c = LETTER ZA>LETTER JA
-\uE05C>\u09A1\u09BC; # FALLBACK
-\uE05D>\u09A2\u09BC; # LETTER RHA
-\uE05E>\u09AB\u09BC; # REMAP (indicExceptions.txt): \u09de>\u09ab = LETTER FA>LETTER PHA
-\uE05F>\u09AF\u09BC; # LETTER YYA
-\uE060>\u09E0; # LETTER VOCALIC RR
-\uE061>\u09E1; # LETTER VOCALIC LL
+\uE056>ৈ; # REMAP (indicExceptions.txt): \u09D6>ৈ = AI LENGTH MARK>VOWEL SIGN AI
+\uE057>ৗ; # AU LENGTH MARK
+\uE058>ক\u09BC; # FALLBACK
+\uE059>খ\u09BC; # REMAP (indicExceptions.txt): \u09D9>খ = LETTER KHHA>LETTER KHA
+\uE05A>গ\u09BC; # REMAP (indicExceptions.txt): \u09DA>গ = LETTER GHHA>LETTER GA
+\uE05B>জ\u09BC; # REMAP (indicExceptions.txt): \u09DB>জ = LETTER ZA>LETTER JA
+\uE05C>ড\u09BC; # FALLBACK
+\uE05D>ঢ\u09BC; # LETTER RHA
+\uE05E>ফ\u09BC; # REMAP (indicExceptions.txt): \u09DE>ফ = LETTER FA>LETTER PHA
+\uE05F>য\u09BC; # LETTER YYA
+\uE060>ৠ; # LETTER VOCALIC RR
+\uE061>ৡ; # LETTER VOCALIC LL
\uE062>\u09E2; # VOWEL SIGN VOCALIC L
\uE063>\u09E3; # VOWEL SIGN VOCALIC LL
-\uE064>\u0964; # DANDA
-\uE065>\u0965; # DOUBLE DANDA
-\uE066>\u09E6; # DIGIT ZERO
-\uE067>\u09E7; # DIGIT ONE
-\uE068>\u09E8; # DIGIT TWO
-\uE069>\u09E9; # DIGIT THREE
-\uE06A>\u09EA; # DIGIT FOUR
-\uE06B>\u09EB; # DIGIT FIVE
-\uE06C>\u09EC; # DIGIT SIX
-\uE06D>\u09ED; # DIGIT SEVEN
-\uE06E>\u09EE; # DIGIT EIGHT
-\uE06F>\u09EF; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u09F0; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u09F1; # LETTER RA WITH LOWER DIAGONAL
-\ue073>\u09F2; # RUPEE MARK
-\ue074>\u09F3; # RUPEE SIGN
-\ue075>\u09F4; # CURRENCY NUMERATOR ONE
-\ue076>\u09F5; # CURRENCY NUMERATOR TWO
-\ue077>\u09F6; # CURRENCY NUMERATOR THREE
-\ue078>\u09F7; # CURRENCY NUMERATOR FOUR
-\ue079>\u09F8; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>\u09F9; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>\u09FA; # ISSHAR
+\uE064>।; # DANDA
+\uE065>॥; # DOUBLE DANDA
+\uE066>০; # DIGIT ZERO
+\uE067>১; # DIGIT ONE
+\uE068>২; # DIGIT TWO
+\uE069>৩; # DIGIT THREE
+\uE06A>৪; # DIGIT FOUR
+\uE06B>৫; # DIGIT FIVE
+\uE06C>৬; # DIGIT SIX
+\uE06D>৭; # DIGIT SEVEN
+\uE06E>৮; # DIGIT EIGHT
+\uE06F>৯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>ৰ; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>ৱ; # LETTER RA WITH LOWER DIAGONAL
+\uE073>৲; # RUPEE MARK
+\uE074>৳; # RUPEE SIGN
+\uE075>৴; # CURRENCY NUMERATOR ONE
+\uE076>৵; # CURRENCY NUMERATOR TWO
+\uE077>৶; # CURRENCY NUMERATOR THREE
+\uE078>৷; # CURRENCY NUMERATOR FOUR
+\uE079>৸; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>৹; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>৺; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u09AC; # FALLBACK FOR ORIYA LETTER WA
+\uE081>ব; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u09ce; # Khanda-ta
-0 > \u09E6; # FALLBACK FOR TAMIL
-1 > \u09E7;
-
-
-
-
-
-
-
-
-
-
-
-# :: NFC (NFD) ;
-# eof
+\uE083>ৎ; # Khanda-ta
+0 > ০; # FALLBACK FOR TAMIL
+1 > ১;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Devanagari.txt
index 47b74da08d7..d04e7ec8119 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Devanagari.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Devanagari.txt
@@ -1,159 +1,150 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Devanagari
-#:: NFD (NFC) ;
-#Rules for Decomposed characters
- \ue028\ue03c > \u0929; #\ue029
- \ue030\ue03c > \u0931; #\ue031
- \ue033\ue03c > \u0934; #\ue034
- \ue015\ue03c > \u0958; #\ue058 LETTER QA (For Urdu)
- \ue016\ue03c > \u0959; #\ue059 LETTER KHHA (For Urdu)
- \ue017\ue03c > \u095a; #\ue05a LETTER GHHA (For Urdu)
- \ue01c\ue03c > \u095b; #\ue05b LETTER ZA (For Urdu)
- \ue021\ue03c > \u095c; #\ue05c LETTER DDDHA (pronounced RRA)
- \ue022\ue03c > \u095d; #\ue05d LETTER RHA (pronounced RRHA)
- \ue02b\ue03c > \u095e; #\ue05e LETTER FA
- \ue02f\ue03c > \u095f; #\ue05f LETTER YYA
-
- #Decomposed compatibility transliterations
- \ue012\ue057>\u0914; # FALLBACK FOR TAMIL AU
- 0 > \u0966; # FALLBACK FOR TAMIL
- 1 > \u0967;
-
- \ue055>; # FALLBACK BLOW AWAY KANNADA AND TELUGU LENGTH MARK
- \ue056>; # FALLBACK BLOW AWAY KANNADA AND TELUGU AI LENGTH MARK
- \ue057>; # FALLBACK BLOW AWAY TAMIL AU LENGTH MARK
-
- \ue001 > \u0901; # SIGN CANDRABINDU
- \ue002 > \u0902; # SIGN ANUSVARA
- \ue003 > \u0903; # SIGN VISARGA
- \ue004 > \u0904; # SIGN SHORT A
- \ue005 > \u0905; # LETTER A
- \ue006 > \u0906; # LETTER AA
- \ue007 > \u0907; # LETTER I
- \ue008 > \u0908; # LETTER II
- \ue009 > \u0909; # LETTER U
- \ue00a > \u090a; # LETTER UU
- \ue00b > \u090b; # LETTER VOCALIC R
- \ue00c > \u090c; # LETTER VOCALIC L
- \ue00d > \u090d; # LETTER CANDRA E (For representing English sounds)
- \ue00e > \u090e; # LETTER SHORT E(For Southern Scripts)
- \ue00f > \u090f; # LETTER E
- \ue010 > \u0910; # LETTER AI
- \ue011 > \u0911; # LETTER CANDRA O (For representing English sounds)
- \ue012 > \u0912; # LETTER SHORT O (For Southern Scripts)
- \ue013 > \u0913; # LETTER O
- \ue014 > \u0914; # LETTER AU
- \ue015 > \u0915; # LETTER KA
- \ue016 > \u0916; # LETTER KHA
- \ue017 > \u0917; # LETTER GA
- \ue018 > \u0918; # LETTER GHA
- \ue019 > \u0919; # LETTER NGA
- \ue01a > \u091a; # LETTER CA
- \ue01b > \u091b; # LETTER CHA
- \ue01c > \u091c; # LETTER JA
- \ue01d > \u091d; # LETTER JHA
- \ue01e > \u091e; # LETTER NYA
- \ue01f > \u091f; # LETTER TTA
- \ue020 > \u0920; # LETTER TTHA
- \ue021 > \u0921; # LETTER DDA
- \ue022 > \u0922; # LETTER DDHA
- \ue023 > \u0923; # LETTER NNA
- \ue024 > \u0924; # LETTER TA
- \ue025 > \u0925; # LETTER THA
- \ue026 > \u0926; # LETTER DA
- \ue027 > \u0927; # LETTER DHA
- \ue028 > \u0928; # LETTER NA
- \ue029 > \u0929; # LETTER NNNA
- \ue02a > \u092a; # LETTER PA
- \ue02b > \u092b; # LETTER PHA
- \ue02c > \u092c; # LETTER BA
- \ue02d > \u092d; # LETTER BHA
- \ue02e > \u092e; # LETTER MA
- \ue02f > \u092f; # LETTER YA
- \ue030 > \u0930; # LETTER RA
- \ue031 > \u0931; # LETTER RRA (Eyelash RA for Southern scripts)
- #\ue031 > \u0930;
- \ue032 > \u0932; # LETTER LA
- \ue033 > \u0933; # LETTER LLA
- \ue034 > \u0934; # LETTER LLLA (LLLA for Southern scripts)
- #\ue034 > \u0933;
- \ue035 > \u0935; # LETTER VA
- \ue036 > \u0936; # LETTER SHA
- \ue037 > \u0937; # LETTER SSA
- \ue038 > \u0938; # LETTER SA
- \ue039 > \u0939; # LETTER HA
- \ue03c > \u093c; # SIGN NUKTA
- \ue03d > \u093d; # SIGN AVAGRAHA
- \ue03e > \u093e; # VOWEL SIGN AA
- \ue03f > \u093f; # VOWEL SIGN I
- \ue040 > \u0940; # VOWEL SIGN II
- \ue041 > \u0941; # VOWEL SIGN U
- \ue042 > \u0942; # VOWEL SIGN UU
- \ue043 > \u0943; # VOWEL SIGN VOCALIC R
- \ue044 > \u0944; # VOWEL SIGN VOCALIC RR
- \ue045 > \u0945; # VOWEL SIGN CANDRA E
- \ue046 > \u0946; # VOWEL SIGN SHORT E
- \ue047 > \u0947; # VOWEL SIGN E
- \ue048 > \u0948; # VOWEL SIGN AI
- \ue049 > \u0949; # VOWEL SIGN CANDRA O
- \ue04a > \u094a; # VOWEL SIGN SHORT O
- \ue04b > \u094b; # VOWEL SIGN O
- \ue04c > \u094c; # VOWEL SIGN AU
- \ue04d > \u094d; # SIGN VIRAMA
- \ue050 > \u0950; # OM
- \ue051 > \u0951; # STRESS SIGN UDATTA
- \ue052 > \u0952; # STRESS SIGN ANUDATTA
- \ue053 > \u0953; # GRAVE ACCENT
- \ue054 > \u0954; # ACUTE ACCENT
- \ue058 > \u0958; # LETTER QA (For Urdu)
- \ue059 > \u0959; # LETTER KHHA (For Urdu)
- \ue05a > \u095a; # LETTER GHHA (For Urdu)
- \ue05b > \u095b; # LETTER ZA (For Urdu)
- \ue05c > \u095c; # LETTER DDDHA (pronounced RRA)
- \ue05d > \u095d; # LETTER RHA (pronounced RRHA)
- \ue05e > \u095e; # LETTER FA
- \ue05f > \u095f; # LETTER YYA
- \ue060 > \u0960; # LETTER VOCALIC RR
- \ue061 > \u0961; # LETTER VOCALIC LL
- \ue062 > \u0962; # VOWEL SIGN VOCALIC L
- \ue063 > \u0963; # VOWEL SIGN VOCALIC LL
- \ue064 > \u0964; # DANDA
- \ue065 > \u0965; # DOUBLE DANDA
- \ue066 > \u0966; # DIGIT ZERO
- \ue067 > \u0967; # DIGIT ONE
- \ue068 > \u0968; # DIGIT TWO
- \ue069 > \u0969; # DIGIT THREE
- \ue06a > \u096a; # DIGIT FOUR
- \ue06b > \u096b; # DIGIT FIVE
- \ue06c > \u096c; # DIGIT SIX
- \ue06d > \u096d; # DIGIT SEVEN
- \ue06e > \u096e; # DIGIT EIGHT
- \ue06f > \u096f; # DIGIT NINE
-
- \ue070>\u0970; # ABBREVIATION SIGN
- \ue071>\u0930; # LETTER RA WITH MIDDLE DIAGONAL
- \ue072>\u0930; # LETTER RA WITH LOWER DIAGONAL
- \ue073>; # RUPEE MARK
- \ue074>\u0930\u0942; # RUPEE SIGN
- \ue075>; # CURRENCY NUMERATOR ONE
- \ue076>; # CURRENCY NUMERATOR TWO
- \ue077>; # CURRENCY NUMERATOR THREE
- \ue078>; # CURRENCY NUMERATOR FOUR
- \ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
- \ue07A>; # CURRENCY DENOMINATOR SIXTEEN
- \ue07B>; # ISSHAR
- \uE07C>; # TIPPI
- \uE07D>; # ADDAK
- \uE07E>; # IRI
- \uE07F>; # URA
- \uE080>; # EK ONKAR
- \uE081>\u0935; # FALLBACK FOR ORIYA LETTER WA
- \uE082>\u097d; # Devanagari Glottal Sign
- \uE083>\u0924\u094d; # Bengali Khanda-ta
-# \u0970 # UNMAPPED Devanagari-InterIndic: ABBREVIATION SIGN
-# :: NFC;
-# eof
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:15 PDT 2006
+#
+\uE028\uE03C > ऩ; #\uE029
+\uE030\uE03C > ऱ; #\uE031
+\uE033\uE03C > ऴ; #\uE034
+\uE015\uE03C > क़; #\uE058 LETTER QA (For Urdu)
+\uE016\uE03C > ख़; #\uE059 LETTER KHHA (For Urdu)
+\uE017\uE03C > ग़; #\uE05A LETTER GHHA (For Urdu)
+\uE01C\uE03C > ज़; #\uE05B LETTER ZA (For Urdu)
+\uE021\uE03C > ड़; #\uE05C LETTER DDDHA (pronounced RRA)
+\uE022\uE03C > à¥; #\uE05D LETTER RHA (pronounced RRHA)
+\uE02B\uE03C > फ़; #\uE05E LETTER FA
+\uE02F\uE03C > य़; #\uE05F LETTER YYA
+\uE012\uE057>औ; # FALLBACK FOR TAMIL AU
+0 > ०; # FALLBACK FOR TAMIL
+1 > १;
+\uE055>; # FALLBACK BLOW AWAY KANNADA AND TELUGU LENGTH MARK
+\uE056>; # FALLBACK BLOW AWAY KANNADA AND TELUGU AI LENGTH MARK
+\uE057>; # FALLBACK BLOW AWAY TAMIL AU LENGTH MARK
+\uE001 > \u0901; # SIGN CANDRABINDU
+\uE002 > \u0902; # SIGN ANUSVARA
+\uE003 > ः; # SIGN VISARGA
+\uE004 > ऄ; # SIGN SHORT A
+\uE005 > अ; # LETTER A
+\uE006 > आ; # LETTER AA
+\uE007 > इ; # LETTER I
+\uE008 > ई; # LETTER II
+\uE009 > उ; # LETTER U
+\uE00A > ऊ; # LETTER UU
+\uE00B > ऋ; # LETTER VOCALIC R
+\uE00C > ऌ; # LETTER VOCALIC L
+\uE00D > à¤; # LETTER CANDRA E (For representing English sounds)
+\uE00E > ऎ; # LETTER SHORT E(For Southern Scripts)
+\uE00F > à¤; # LETTER E
+\uE010 > à¤; # LETTER AI
+\uE011 > ऑ; # LETTER CANDRA O (For representing English sounds)
+\uE012 > ऒ; # LETTER SHORT O (For Southern Scripts)
+\uE013 > ओ; # LETTER O
+\uE014 > औ; # LETTER AU
+\uE015 > क; # LETTER KA
+\uE016 > ख; # LETTER KHA
+\uE017 > ग; # LETTER GA
+\uE018 > घ; # LETTER GHA
+\uE019 > ङ; # LETTER NGA
+\uE01A > च; # LETTER CA
+\uE01B > छ; # LETTER CHA
+\uE01C > ज; # LETTER JA
+\uE01D > à¤; # LETTER JHA
+\uE01E > ञ; # LETTER NYA
+\uE01F > ट; # LETTER TTA
+\uE020 > ठ; # LETTER TTHA
+\uE021 > ड; # LETTER DDA
+\uE022 > ढ; # LETTER DDHA
+\uE023 > ण; # LETTER NNA
+\uE024 > त; # LETTER TA
+\uE025 > थ; # LETTER THA
+\uE026 > द; # LETTER DA
+\uE027 > ध; # LETTER DHA
+\uE028 > न; # LETTER NA
+\uE029 > ऩ; # LETTER NNNA
+\uE02A > प; # LETTER PA
+\uE02B > फ; # LETTER PHA
+\uE02C > ब; # LETTER BA
+\uE02D > भ; # LETTER BHA
+\uE02E > म; # LETTER MA
+\uE02F > य; # LETTER YA
+\uE030 > र; # LETTER RA
+\uE031 > ऱ; # LETTER RRA (Eyelash RA for Southern scripts)
+\uE032 > ल; # LETTER LA
+\uE033 > ळ; # LETTER LLA
+\uE034 > ऴ; # LETTER LLLA (LLLA for Southern scripts)
+\uE035 > व; # LETTER VA
+\uE036 > श; # LETTER SHA
+\uE037 > ष; # LETTER SSA
+\uE038 > स; # LETTER SA
+\uE039 > ह; # LETTER HA
+\uE03C > \u093C; # SIGN NUKTA
+\uE03D > ऽ; # SIGN AVAGRAHA
+\uE03E > ा; # VOWEL SIGN AA
+\uE03F > ि; # VOWEL SIGN I
+\uE040 > ी; # VOWEL SIGN II
+\uE041 > \u0941; # VOWEL SIGN U
+\uE042 > \u0942; # VOWEL SIGN UU
+\uE043 > \u0943; # VOWEL SIGN VOCALIC R
+\uE044 > \u0944; # VOWEL SIGN VOCALIC RR
+\uE045 > \u0945; # VOWEL SIGN CANDRA E
+\uE046 > \u0946; # VOWEL SIGN SHORT E
+\uE047 > \u0947; # VOWEL SIGN E
+\uE048 > \u0948; # VOWEL SIGN AI
+\uE049 > ॉ; # VOWEL SIGN CANDRA O
+\uE04A > ॊ; # VOWEL SIGN SHORT O
+\uE04B > ो; # VOWEL SIGN O
+\uE04C > ौ; # VOWEL SIGN AU
+\uE04D > \u094D; # SIGN VIRAMA
+\uE050 > à¥; # OM
+\uE051 > \u0951; # STRESS SIGN UDATTA
+\uE052 > \u0952; # STRESS SIGN ANUDATTA
+\uE053 > \u0953; # GRAVE ACCENT
+\uE054 > \u0954; # ACUTE ACCENT
+\uE058 > क़; # LETTER QA (For Urdu)
+\uE059 > ख़; # LETTER KHHA (For Urdu)
+\uE05A > ग़; # LETTER GHHA (For Urdu)
+\uE05B > ज़; # LETTER ZA (For Urdu)
+\uE05C > ड़; # LETTER DDDHA (pronounced RRA)
+\uE05D > à¥; # LETTER RHA (pronounced RRHA)
+\uE05E > फ़; # LETTER FA
+\uE05F > य़; # LETTER YYA
+\uE060 > ॠ; # LETTER VOCALIC RR
+\uE061 > ॡ; # LETTER VOCALIC LL
+\uE062 > \u0962; # VOWEL SIGN VOCALIC L
+\uE063 > \u0963; # VOWEL SIGN VOCALIC LL
+\uE064 > ।; # DANDA
+\uE065 > ॥; # DOUBLE DANDA
+\uE066 > ०; # DIGIT ZERO
+\uE067 > १; # DIGIT ONE
+\uE068 > २; # DIGIT TWO
+\uE069 > ३; # DIGIT THREE
+\uE06A > ४; # DIGIT FOUR
+\uE06B > ५; # DIGIT FIVE
+\uE06C > ६; # DIGIT SIX
+\uE06D > ७; # DIGIT SEVEN
+\uE06E > ८; # DIGIT EIGHT
+\uE06F > ९; # DIGIT NINE
+\uE070>॰; # ABBREVIATION SIGN
+\uE071>र; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>र; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>र\u0942; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
+\uE07C>; # TIPPI
+\uE07D>; # ADDAK
+\uE07E>; # IRI
+\uE07F>; # URA
+\uE080>; # EK ONKAR
+\uE081>व; # FALLBACK FOR ORIYA LETTER WA
+\uE082>ॽ; # Devanagari Glottal Sign
+\uE083>त\u094D; # Bengali Khanda-ta
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Gujarati.txt
index 277e3dff44d..14063c22219 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Gujarati.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Gujarati.txt
@@ -1,140 +1,138 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Gujarati
-#:: NFD (NFC) ;
-\ue001>\u0a81; # SIGN CANDRABINDU
-\ue002>\u0a82; # SIGN ANUSVARA
-\ue003>\u0a83; # SIGN VISARGA
-\uE004>\u0a85; # FALLBACK TO LETTER A
-\ue005>\u0a85; # LETTER A
-\ue006>\u0a86; # LETTER AA
-\ue007>\u0a87; # LETTER I
-\ue008>\u0a88; # LETTER II
-\ue009>\u0a89; # LETTER U
-\ue00a>\u0a8a; # LETTER UU
-\ue00b>\u0a8b; # LETTER VOCALIC R
-\ue00c>\u0a8c; # LETTER VOCALIC L
-\ue00d>\u0a8d; # GUJARATI VOWEL CANDRA E
-\ue00e>\u0a8f; # FALLBACK
-\ue00f>\u0a8f; # InterIndic-Gujarati: LETTER EE (\u0a8f = LETTER E)
-\ue010>\u0a90; # LETTER AI
-\ue011>\u0a91; # FALLBACK
-\ue012>\u0a93; # FALLBACK
-\ue013>\u0a93; # UNMAPPED InterIndic-Gujarati: LETTER OO (\u0a93 = LETTER O)
-\ue014>\u0a94; # LETTER AU
-\ue015>\u0a95; # LETTER KA
-\ue016>\u0a96; # LETTER KHA
-\ue017>\u0a97; # LETTER GA
-\ue018>\u0a98; # LETTER GHA
-\ue019>\u0a99; # LETTER NGA
-\ue01a>\u0a9a; # LETTER CA
-\ue01b>\u0a9b; # LETTER CHA
-\ue01c>\u0a9c; # LETTER JA
-\ue01d>\u0a9d; # LETTER JHA
-\ue01e>\u0a9e; # LETTER NYA
-\ue01f>\u0a9f; # LETTER TTA
-\ue020>\u0aa0; # LETTER TTHA
-\ue021>\u0aa1; # LETTER DDA
-\ue022>\u0aa2; # LETTER DDHA
-\ue023>\u0aa3; # LETTER NNA
-\ue024>\u0aa4; # LETTER TA
-\ue025>\u0aa5; # LETTER THA
-\ue026>\u0aa6; # LETTER DA
-\ue027>\u0aa7; # LETTER DHA
-\ue028>\u0aa8; # LETTER NA
-\ue029>\u0aa8\u0abc; # FALLBACK to NA+NUKTA
-\ue02a>\u0aaa; # LETTER PA
-\ue02b>\u0aab; # LETTER PHA
-\ue02c>\u0aac; # LETTER BA
-\ue02d>\u0aad; # LETTER BHA
-\ue02e>\u0aae; # LETTER MA
-\ue02f>\u0aaf; # LETTER YA
-\ue030>\u0ab0; # LETTER RA
-\ue031>\u0ab0\u0abc; # FALLBACK
-\ue032>\u0ab2; # LETTER LA
-\ue033>\u0ab3; # LETTER LLA
-\ue034>\u0ab3\u0abc; # LETTER LLLA>LETTER LLA+NUKTA
-\ue035>\u0ab5; # LETTER VA
-\ue036>\u0ab6; # LETTER SHA
-\ue037>\u0ab7; # LETTER SSA
-\ue038>\u0ab8; # LETTER SA
-\ue039>\u0ab9; # LETTER HA
-\ue03c>\u0abc; # SIGN NUKTA
-\ue03d>\u0abd; # SIGN AVAGRAHA
-\ue03e>\u0abe; # VOWEL SIGN AA
-\ue03f>\u0abf; # VOWEL SIGN I
-\ue040>\u0ac0; # VOWEL SIGN II
-\ue041>\u0ac1; # VOWEL SIGN U
-\ue042>\u0ac2; # VOWEL SIGN UU
-\ue043>\u0ac3; # VOWEL SIGN VOCALIC R
-\ue044>\u0ac4; # VOWEL SIGN VOCALIC RR
-\ue045>\u0ac5; # VOWEL SIGN CANDRA E
-\ue046>\u0ac7; # FALLBACK
-\ue047>\u0ac7; # InterIndic-Gujarati: VOWEL SIGN EE (\u0ac7 = VOWEL SIGN E)
-\ue048>\u0ac8; # VOWEL SIGN AI
-\ue049>\u0ac9; # VOWEL SIGN CANDRA O
-\ue04a>\u0acb; # FALLBACK
-\ue04b>\u0acb; # UNMAPPED InterIndic-Gujarati: VOWEL SIGN OO (\u0acb = VOWEL SIGN O)
-\ue04c>\u0acc; # VOWEL SIGN AU
-\ue04d>\u0acd; # SIGN VIRAMA
-\ue050>\u0ad0; # OM
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>; # UNMAPPED InterIndic-Gujarati: LENGTH MARK
-\ue056>\u0ac8; # REMAP (indicExceptions.txt): \u0ad6>\u0ac8 = AI LENGTH MARK>VOWEL SIGN AI
-\ue057>\u0acc; # REMAP (indicExceptions.txt): \u0ad7>\u0acc = AU LENGTH MARK>VOWEL SIGN AU
-\ue058>\u0a95\u0abc; # FALLBACK
-\ue059>\u0a96\u0abc; # REMAP (indicExceptions.txt): \u0ad9>\u0a96\u0abc = LETTER KHHA>LETTER KHA.SIGN NUKTA
-\ue05a>\u0a97\u0abc; # REMAP (indicExceptions.txt): \u0ada>\u0a97\u0abc = LETTER GHHA>LETTER GA.SIGN NUKTA
-\ue05b>\u0a9c\u0abc; # REMAP (indicExceptions.txt): \u0adb>\u0a9c\u0abc = LETTER ZA>LETTER JA.SIGN NUKTA
-\ue05c>\u0aa1\u0abc; # FALLBACK
-\ue05d>\u0aa2\u0abc; # REMAP (indicExceptions.txt): \u0add>\u0aa2\u0abc = LETTER RHA>LETTER DDHA.SIGN NUKTA
-\ue05e>\u0aab\u0abc; # REMAP (indicExceptions.txt): \u0ade>\u0aab\u0abc = LETTER FA>LETTER PHA.SIGN NUKTA
-\ue05f>\u0aaf\u0abc; # REMAP (indicExceptions.txt): \u0adf>\u0aaf\u0abc = LETTER YYA>LETTER YA.SIGN NUKTA
-\ue060>\u0ae0; # LETTER VOCALIC RR
-\ue061>\u0ae1; # LETTER VOCALIC LL
-\ue062>\u0abf\u0abc; # REMAP (indicExceptions.txt): \u0ae2>\u0abf\u0abc = VOWEL SIGN VOCALIC L>VOWEL SIGN I.SIGN NUKTA
-\ue063>\u0ac0\u0abc; # REMAP (indicExceptions.txt): \u0ae3>\u0ac0\u0abc = VOWEL SIGN VOCALIC LL>VOWEL SIGN II.SIGN NUKTA
-\uE064>\u0964; # DANDA
-\uE065>\u0965; # DOUBLE DANDA
-\ue066>\u0ae6; # DIGIT ZERO
-\ue067>\u0ae7; # DIGIT ONE
-\ue068>\u0ae8; # DIGIT TWO
-\ue069>\u0ae9; # DIGIT THREE
-\ue06a>\u0aea; # DIGIT FOUR
-\ue06b>\u0aeb; # DIGIT FIVE
-\ue06c>\u0aec; # DIGIT SIX
-\ue06d>\u0aed; # DIGIT SEVEN
-\ue06e>\u0aee; # DIGIT EIGHT
-\ue06f>\u0aef; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0ab0; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0ab0; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE001>\u0A81; # SIGN CANDRABINDU
+\uE002>\u0A82; # SIGN ANUSVARA
+\uE003>ઃ; # SIGN VISARGA
+\uE004>અ; # FALLBACK TO LETTER A
+\uE005>અ; # LETTER A
+\uE006>આ; # LETTER AA
+\uE007>ઇ; # LETTER I
+\uE008>ઈ; # LETTER II
+\uE009>ઉ; # LETTER U
+\uE00A>ઊ; # LETTER UU
+\uE00B>ઋ; # LETTER VOCALIC R
+\uE00C>ઌ; # LETTER VOCALIC L
+\uE00D>àª; # GUJARATI VOWEL CANDRA E
+\uE00E>àª; # FALLBACK
+\uE00F>àª; # InterIndic-Gujarati: LETTER EE (ઠ= LETTER E)
+\uE010>àª; # LETTER AI
+\uE011>ઑ; # FALLBACK
+\uE012>ઓ; # FALLBACK
+\uE013>ઓ; # UNMAPPED InterIndic-Gujarati: LETTER OO (ઓ = LETTER O)
+\uE014>ઔ; # LETTER AU
+\uE015>ક; # LETTER KA
+\uE016>ખ; # LETTER KHA
+\uE017>ગ; # LETTER GA
+\uE018>ઘ; # LETTER GHA
+\uE019>ઙ; # LETTER NGA
+\uE01A>ચ; # LETTER CA
+\uE01B>છ; # LETTER CHA
+\uE01C>જ; # LETTER JA
+\uE01D>àª; # LETTER JHA
+\uE01E>ઞ; # LETTER NYA
+\uE01F>ટ; # LETTER TTA
+\uE020>ઠ; # LETTER TTHA
+\uE021>ડ; # LETTER DDA
+\uE022>ઢ; # LETTER DDHA
+\uE023>ણ; # LETTER NNA
+\uE024>ત; # LETTER TA
+\uE025>થ; # LETTER THA
+\uE026>દ; # LETTER DA
+\uE027>ધ; # LETTER DHA
+\uE028>ન; # LETTER NA
+\uE029>ન\u0ABC; # FALLBACK to NA+NUKTA
+\uE02A>પ; # LETTER PA
+\uE02B>ફ; # LETTER PHA
+\uE02C>બ; # LETTER BA
+\uE02D>ભ; # LETTER BHA
+\uE02E>મ; # LETTER MA
+\uE02F>ય; # LETTER YA
+\uE030>ર; # LETTER RA
+\uE031>ર\u0ABC; # FALLBACK
+\uE032>લ; # LETTER LA
+\uE033>ળ; # LETTER LLA
+\uE034>ળ\u0ABC; # LETTER LLLA>LETTER LLA+NUKTA
+\uE035>વ; # LETTER VA
+\uE036>શ; # LETTER SHA
+\uE037>ષ; # LETTER SSA
+\uE038>સ; # LETTER SA
+\uE039>હ; # LETTER HA
+\uE03C>\u0ABC; # SIGN NUKTA
+\uE03D>ઽ; # SIGN AVAGRAHA
+\uE03E>ા; # VOWEL SIGN AA
+\uE03F>િ; # VOWEL SIGN I
+\uE040>à«€; # VOWEL SIGN II
+\uE041>\u0AC1; # VOWEL SIGN U
+\uE042>\u0AC2; # VOWEL SIGN UU
+\uE043>\u0AC3; # VOWEL SIGN VOCALIC R
+\uE044>\u0AC4; # VOWEL SIGN VOCALIC RR
+\uE045>\u0AC5; # VOWEL SIGN CANDRA E
+\uE046>\u0AC7; # FALLBACK
+\uE047>\u0AC7; # InterIndic-Gujarati: VOWEL SIGN EE (\u0AC7 = VOWEL SIGN E)
+\uE048>\u0AC8; # VOWEL SIGN AI
+\uE049>ૉ; # VOWEL SIGN CANDRA O
+\uE04A>à«‹; # FALLBACK
+\uE04B>à«‹; # UNMAPPED InterIndic-Gujarati: VOWEL SIGN OO (à«‹ = VOWEL SIGN O)
+\uE04C>ૌ; # VOWEL SIGN AU
+\uE04D>\u0ACD; # SIGN VIRAMA
+\uE050>à«; # OM
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>; # UNMAPPED InterIndic-Gujarati: LENGTH MARK
+\uE056>\u0AC8; # REMAP (indicExceptions.txt): \u0AD6>\u0AC8 = AI LENGTH MARK>VOWEL SIGN AI
+\uE057>ૌ; # REMAP (indicExceptions.txt): \u0AD7>ૌ = AU LENGTH MARK>VOWEL SIGN AU
+\uE058>ક\u0ABC; # FALLBACK
+\uE059>ખ\u0ABC; # REMAP (indicExceptions.txt): \u0AD9>ખ\u0ABC = LETTER KHHA>LETTER KHA.SIGN NUKTA
+\uE05A>ગ\u0ABC; # REMAP (indicExceptions.txt): \u0ADA>ગ\u0ABC = LETTER GHHA>LETTER GA.SIGN NUKTA
+\uE05B>જ\u0ABC; # REMAP (indicExceptions.txt): \u0ADB>જ\u0ABC = LETTER ZA>LETTER JA.SIGN NUKTA
+\uE05C>ડ\u0ABC; # FALLBACK
+\uE05D>ઢ\u0ABC; # REMAP (indicExceptions.txt): \u0ADD>ઢ\u0ABC = LETTER RHA>LETTER DDHA.SIGN NUKTA
+\uE05E>ફ\u0ABC; # REMAP (indicExceptions.txt): \u0ADE>ફ\u0ABC = LETTER FA>LETTER PHA.SIGN NUKTA
+\uE05F>ય\u0ABC; # REMAP (indicExceptions.txt): \u0ADF>ય\u0ABC = LETTER YYA>LETTER YA.SIGN NUKTA
+\uE060>à« ; # LETTER VOCALIC RR
+\uE061>à«¡; # LETTER VOCALIC LL
+\uE062>િ\u0ABC; # REMAP (indicExceptions.txt): \u0AE2>િ\u0ABC = VOWEL SIGN VOCALIC L>VOWEL SIGN I.SIGN NUKTA
+\uE063>à«€\u0ABC; # REMAP (indicExceptions.txt): \u0AE3>à«€\u0ABC = VOWEL SIGN VOCALIC LL>VOWEL SIGN II.SIGN NUKTA
+\uE064>।; # DANDA
+\uE065>॥; # DOUBLE DANDA
+\uE066>૦; # DIGIT ZERO
+\uE067>૧; # DIGIT ONE
+\uE068>૨; # DIGIT TWO
+\uE069>à«©; # DIGIT THREE
+\uE06A>૪; # DIGIT FOUR
+\uE06B>à««; # DIGIT FIVE
+\uE06C>૬; # DIGIT SIX
+\uE06D>à«­; # DIGIT SEVEN
+\uE06E>à«®; # DIGIT EIGHT
+\uE06F>૯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>ર; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>ર; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0ab5; # FALLBACK FOR ORIYA LETTER WA
+\uE081>વ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0aa4\u0acd; # Bengali Khanda-ta
-0 > \u0ae6; # FALLBACK FOR TAMIL
-1 > \u0ae7;
-
-#\ue080>; # UNMAPPED InterIndic-Gujarati: ISSHAR
-# :: NFC (NFD) ;
-# eof
+\uE083>ત\u0ACD; # Bengali Khanda-ta
+0 > ૦; # FALLBACK FOR TAMIL
+1 > ૧;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Gurmukhi.txt
index 686e30118fd..81c35314cc3 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Gurmukhi.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Gurmukhi.txt
@@ -1,149 +1,142 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Gurmukhi
-#:: NFD (NFC) ;
-$vowel = [\u0A05-\u0A14 \u0A3e-\u0A4D];
-$consonant = [\u0A15-\u0A39];
-
-\ue001>\u0a01; # SIGN CHANDRABINDU
-#rules for BINDI
-
-# Anusvara is equivalent to BINDI when preceeded by a vowel
-$vowel{\ue002>\u0a02; # SIGN ANUSVARA (\u0a02 = SIGN BINDI)
-# else is equivalent to TIPPI
-$consonant{\ue002>\u0a70; # SIGN TIPPI
-\ue002>\u0a02;
-
-\ue003>; # FALLBACK BLOW AWAY SIGN VISARGA
-\uE004>\u0a05; # FALLBACK TO LETTER A
-\ue005>\u0a05; # LETTER A
-\ue006>\u0a06; # LETTER AA
-\ue007>\u0a07; # LETTER I
-\ue008>\u0a08; # LETTER II
-\ue009>\u0a09; # LETTER U
-\ue00a>\u0a0a; # LETTER UU
-\ue00b>\u0a30\u0a3f; # REMAP (indicExceptions.txt): \u0a0b>\u0a30\u0a3f = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
-\ue00c>\u0a33; # FALLBACK
-\ue00d>\u0a0f; # FALLBACK
-\ue00e>\u0a0f; # FALLBACK
-\ue00f>\u0a0f; # LETTER EE
-\ue010>\u0a10; # LETTER AI
-\ue011>\u0a13; # FALLBACK
-\ue012>\u0a13; # FALLBACK
-\ue013>\u0a13; # LETTER OO
-\ue014>\u0a14; # LETTER AU
-\ue015>\u0a15; # LETTER KA
-\ue016>\u0a16; # LETTER KHA
-\ue017>\u0a17; # LETTER GA
-\ue018>\u0a18; # LETTER GHA
-\ue019>\u0a19; # LETTER NGA
-\ue01a>\u0a1a; # LETTER CA
-\ue01b>\u0a1b; # LETTER CHA
-\ue01c>\u0a1c; # LETTER JA
-\ue01d>\u0a1d; # LETTER JHA
-\ue01e>\u0a1e; # LETTER NYA
-\ue01f>\u0a1f; # LETTER TTA
-\ue020>\u0a20; # LETTER TTHA
-\ue021>\u0a21; # LETTER DDA
-\ue022>\u0a22; # LETTER DDHA
-\ue023>\u0a23; # LETTER NNA
-\ue024>\u0a24; # LETTER TA
-\ue025>\u0a25; # LETTER THA
-\ue026>\u0a26; # LETTER DA
-\ue027>\u0a27; # LETTER DHA
-\ue028>\u0a28; # LETTER NA
-\ue029>\u0a28\u0a3c; # REMAP (indicExceptions.txt): \u0a29>\u0a28 = LETTER NNNA>LETTER NA
-\ue02a>\u0a2a; # LETTER PA
-\ue02b>\u0a2b; # LETTER PHA
-\ue02c>\u0a2c; # LETTER BA
-\ue02d>\u0a2d; # LETTER BHA
-\ue02e>\u0a2e; # LETTER MA
-\ue02f>\u0a2f; # LETTER YA
-\ue030>\u0a30; # LETTER RA
-\ue031>\u0a30\u0a3c; # FALLBACK LETTER RA+NUKTA
-\ue032>\u0a32; # LETTER LA
-\ue033>\u0a32; # LETTER LLA
-\ue034>\u0a33; # REMAP (indicExceptions.txt): \u0a34>\u0a33 = LETTER LLLA>LETTER LLA
-\ue035>\u0a35; # LETTER VA
-\ue036>\u0a36; # LETTER SHA
-\ue037>\u0a36; # REMAP (indicExceptions.txt): \u0a37>\u0a36 = LETTER SSA>LETTER SHA
-\ue038>\u0a38; # LETTER SA
-\ue039>\u0a39; # LETTER HA
-\ue03c>\u0a3c; # SIGN NUKTA
-\ue03d>; # FALLBACK BLOW AWAY SIGN AVAGRAHA
-\ue03e>\u0a3e; # VOWEL SIGN AA
-\ue03f>\u0a3f; # VOWEL SIGN I
-\ue040>\u0a40; # VOWEL SIGN II
-\ue041>\u0a41; # VOWEL SIGN U
-\ue042>\u0a42; # VOWEL SIGN UU
-\ue043>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC R
-\ue044>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC RR
-\ue045>\u0a48; # REMAP (indicExceptions.txt): \u0a45>\u0a48 = VOWEL SIGN CANDRA E>VOWEL SIGN AI
-\ue046>\u0a47; # FALLABCK
-\ue047>\u0a47; # VOWEL SIGN EE
-\ue048>\u0a48; # VOWEL SIGN AI
-\ue049>\u0a4c; # REMAP (indicExceptions.txt): \u0a49>\u0a4c = VOWEL SIGN CANDRA O>VOWEL SIGN AU
-\ue04a>\u0a4b; # FALLBACK
-\ue04b>\u0a4b; # VOWEL SIGN OO
-\ue04c>\u0a4c; # VOWEL SIGN AU
-\ue04d>\u0a4d; # SIGN VIRAMA
-\ue050>\u0a0f\u0a02; # FALLBACK to OO+BINDI : OM
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>; # FALLBACK BLOW AWAY LENGTH MARK
-\ue056>\u0a48; # REMAP (indicExceptions.txt): \u0a56>\u0a48 = AI LENGTH MARK>VOWEL SIGN AI
-\ue057>\u0a4c; # REMAP (indicExceptions.txt): \u0a57>\u0a4c = AU LENGTH MARK>VOWEL SIGN AU
-\ue058>\u0a15\u0a3c; # FALLBACK RA+ NUKTA
-\ue059>\u0a59; # LETTER KHHA
-\ue05a>\u0a5a; # LETTER GHHA
-\ue05b>\u0a5b; # LETTER ZA
-\ue05c>\u0a5c; # LETTER RRA
-\ue05d>\u0a22\u0a3c; # REMAP (indicExceptions.txt): \u0a5d>\u0a22\u0a3c = LETTER RHA>LETTER DDHA.SIGN NUKTA
-\ue05e>\u0a5e; # LETTER FA
-\ue05f>\u0a2f\u0a3c; # REMAP (indicExceptions.txt): \u0a5f>\u0a2f = LETTER YYA>LETTER YA
-\ue060>\u0a30\u0a3f; # REMAP (indicExceptions.txt): \u0a60>\u0a30\u0a3f = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
-\ue061>\u0a32\u0a3c; #
-\ue062>\u0a3f\u0a3c; # REMAP (indicExceptions.txt): \u0a62>\u0a3f\u0a3c = VOWEL SIGN VOCALIC L>VOWEL SIGN I.SIGN NUKTA
-\ue063>\u0a40\u0a3c; # REMAP (indicExceptions.txt): \u0a63>\u0a40\u0a3c = VOWEL SIGN VOCALIC LL>VOWEL SIGN II.SIGN NUKTA
-\uE064>\u0964; # DANDA
-\uE065>\u0965; # DOUBLE DANDA
-\ue066>\u0a66; # DIGIT ZERO
-\ue067>\u0a67; # DIGIT ONE
-\ue068>\u0a68; # DIGIT TWO
-\ue069>\u0a69; # DIGIT THREE
-\ue06a>\u0a6a; # DIGIT FOUR
-\ue06b>\u0a6b; # DIGIT FIVE
-\ue06c>\u0a6c; # DIGIT SIX
-\ue06d>\u0a6d; # DIGIT SEVEN
-\ue06e>\u0a6e; # DIGIT EIGHT
-\ue06f>\u0a6f; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0a30; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0a30; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
-\uE07C>\u0a70; # TIPPI
-\uE07D>\u0a71; # ADDAK
-\uE07E>\u0a72; # IRI
-\uE07F>\u0a73; # URA
-\uE080>\u0a74; # EK ONKAR
-\uE081>\u0a35; # FALLBACK FOR ORIYA LETTER WA
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+$vowel = [ਅ-ਔ ਾ-\u0A4D];
+$consonant = [ਕ-ਹ];
+\uE001>\u0A01; # SIGN CHANDRABINDU
+$vowel{\uE002>\u0A02; # SIGN ANUSVARA (\u0A02 = SIGN BINDI)
+$consonant{\uE002>\u0A70; # SIGN TIPPI
+\uE002>\u0A02;
+\uE003>; # FALLBACK BLOW AWAY SIGN VISARGA
+\uE004>ਅ; # FALLBACK TO LETTER A
+\uE005>ਅ; # LETTER A
+\uE006>ਆ; # LETTER AA
+\uE007>ਇ; # LETTER I
+\uE008>ਈ; # LETTER II
+\uE009>ਉ; # LETTER U
+\uE00A>ਊ; # LETTER UU
+\uE00B>ਰਿ; # REMAP (indicExceptions.txt): \u0A0B>ਰਿ = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
+\uE00C>ਲ਼; # FALLBACK
+\uE00D>à¨; # FALLBACK
+\uE00E>à¨; # FALLBACK
+\uE00F>à¨; # LETTER EE
+\uE010>à¨; # LETTER AI
+\uE011>ਓ; # FALLBACK
+\uE012>ਓ; # FALLBACK
+\uE013>ਓ; # LETTER OO
+\uE014>ਔ; # LETTER AU
+\uE015>ਕ; # LETTER KA
+\uE016>ਖ; # LETTER KHA
+\uE017>ਗ; # LETTER GA
+\uE018>ਘ; # LETTER GHA
+\uE019>ਙ; # LETTER NGA
+\uE01A>ਚ; # LETTER CA
+\uE01B>ਛ; # LETTER CHA
+\uE01C>ਜ; # LETTER JA
+\uE01D>à¨; # LETTER JHA
+\uE01E>ਞ; # LETTER NYA
+\uE01F>ਟ; # LETTER TTA
+\uE020>ਠ; # LETTER TTHA
+\uE021>ਡ; # LETTER DDA
+\uE022>ਢ; # LETTER DDHA
+\uE023>ਣ; # LETTER NNA
+\uE024>ਤ; # LETTER TA
+\uE025>ਥ; # LETTER THA
+\uE026>ਦ; # LETTER DA
+\uE027>ਧ; # LETTER DHA
+\uE028>ਨ; # LETTER NA
+\uE029>ਨ\u0A3C; # REMAP (indicExceptions.txt): \u0A29>ਨ = LETTER NNNA>LETTER NA
+\uE02A>ਪ; # LETTER PA
+\uE02B>ਫ; # LETTER PHA
+\uE02C>ਬ; # LETTER BA
+\uE02D>ਭ; # LETTER BHA
+\uE02E>ਮ; # LETTER MA
+\uE02F>ਯ; # LETTER YA
+\uE030>ਰ; # LETTER RA
+\uE031>ਰ\u0A3C; # FALLBACK LETTER RA+NUKTA
+\uE032>ਲ; # LETTER LA
+\uE033>ਲ; # LETTER LLA
+\uE034>ਲ਼; # REMAP (indicExceptions.txt): \u0A34>ਲ਼ = LETTER LLLA>LETTER LLA
+\uE035>ਵ; # LETTER VA
+\uE036>ਸ਼; # LETTER SHA
+\uE037>ਸ਼; # REMAP (indicExceptions.txt): \u0A37>ਸ਼ = LETTER SSA>LETTER SHA
+\uE038>ਸ; # LETTER SA
+\uE039>ਹ; # LETTER HA
+\uE03C>\u0A3C; # SIGN NUKTA
+\uE03D>; # FALLBACK BLOW AWAY SIGN AVAGRAHA
+\uE03E>ਾ; # VOWEL SIGN AA
+\uE03F>ਿ; # VOWEL SIGN I
+\uE040>à©€; # VOWEL SIGN II
+\uE041>\u0A41; # VOWEL SIGN U
+\uE042>\u0A42; # VOWEL SIGN UU
+\uE043>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC R
+\uE044>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC RR
+\uE045>\u0A48; # REMAP (indicExceptions.txt): \u0A45>\u0A48 = VOWEL SIGN CANDRA E>VOWEL SIGN AI
+\uE046>\u0A47; # FALLABCK
+\uE047>\u0A47; # VOWEL SIGN EE
+\uE048>\u0A48; # VOWEL SIGN AI
+\uE049>\u0A4C; # REMAP (indicExceptions.txt): \u0A49>\u0A4C = VOWEL SIGN CANDRA O>VOWEL SIGN AU
+\uE04A>\u0A4B; # FALLBACK
+\uE04B>\u0A4B; # VOWEL SIGN OO
+\uE04C>\u0A4C; # VOWEL SIGN AU
+\uE04D>\u0A4D; # SIGN VIRAMA
+\uE050>à¨\u0A02; # FALLBACK to OO+BINDI : OM
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>; # FALLBACK BLOW AWAY LENGTH MARK
+\uE056>\u0A48; # REMAP (indicExceptions.txt): \u0A56>\u0A48 = AI LENGTH MARK>VOWEL SIGN AI
+\uE057>\u0A4C; # REMAP (indicExceptions.txt): \u0A57>\u0A4C = AU LENGTH MARK>VOWEL SIGN AU
+\uE058>ਕ\u0A3C; # FALLBACK RA+ NUKTA
+\uE059>à©™; # LETTER KHHA
+\uE05A>à©š; # LETTER GHHA
+\uE05B>à©›; # LETTER ZA
+\uE05C>ੜ; # LETTER RRA
+\uE05D>ਢ\u0A3C; # REMAP (indicExceptions.txt): \u0A5D>ਢ\u0A3C = LETTER RHA>LETTER DDHA.SIGN NUKTA
+\uE05E>à©ž; # LETTER FA
+\uE05F>ਯ\u0A3C; # REMAP (indicExceptions.txt): \u0A5F>ਯ = LETTER YYA>LETTER YA
+\uE060>ਰਿ; # REMAP (indicExceptions.txt): \u0A60>ਰਿ = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
+\uE061>ਲ\u0A3C; #
+\uE062>ਿ\u0A3C; # REMAP (indicExceptions.txt): \u0A62>ਿ\u0A3C = VOWEL SIGN VOCALIC L>VOWEL SIGN I.SIGN NUKTA
+\uE063>à©€\u0A3C; # REMAP (indicExceptions.txt): \u0A63>à©€\u0A3C = VOWEL SIGN VOCALIC LL>VOWEL SIGN II.SIGN NUKTA
+\uE064>।; # DANDA
+\uE065>॥; # DOUBLE DANDA
+\uE066>੦; # DIGIT ZERO
+\uE067>੧; # DIGIT ONE
+\uE068>੨; # DIGIT TWO
+\uE069>à©©; # DIGIT THREE
+\uE06A>੪; # DIGIT FOUR
+\uE06B>à©«; # DIGIT FIVE
+\uE06C>੬; # DIGIT SIX
+\uE06D>à©­; # DIGIT SEVEN
+\uE06E>à©®; # DIGIT EIGHT
+\uE06F>੯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>ਰ; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>ਰ; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
+\uE07C>\u0A70; # TIPPI
+\uE07D>\u0A71; # ADDAK
+\uE07E>ੲ; # IRI
+\uE07F>ੳ; # URA
+\uE080>à©´; # EK ONKAR
+\uE081>ਵ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0a24\u0a4d; # Bengali Khanda-ta
-
-0 > \u0a66; # FALLBACK FOR TAMIL
-1 > \u0a67;
-# :: NFC (NFD) ;
-# eof
+\uE083>ਤ\u0A4D; # Bengali Khanda-ta
+0 > ੦; # FALLBACK FOR TAMIL
+1 > ੧;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Kannada.txt
index 9ed3619c735..92a8d141d1f 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Kannada.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Kannada.txt
@@ -1,143 +1,140 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Kannada
-#:: NFD (NFC) ;
-\ue033\ue03c>\u0cde; # LETTER FA
-\ue001>\u0c82; # REMAP (indicExceptions.txt): \u0c81>\u0c82 = SIGN CANDRABINDU>SIGN ANUSVARA
-\ue002>\u0c82; # SIGN ANUSVARA
-\ue003>\u0c83; # SIGN VISARGA
-\uE004>\u0c85; # FALLBACK TO LETTER A
-\ue005>\u0c85; # LETTER A
-\ue006>\u0c86; # LETTER AA
-\ue007>\u0c87; # LETTER I
-\ue008>\u0c88; # LETTER II
-\ue009>\u0c89; # LETTER U
-\ue00a>\u0c8a; # LETTER UU
-\ue00b>\u0c8b; # LETTER VOCALIC R
-\ue00c>\u0c8c; # LETTER VOCALIC L
-\ue00d>\u0c8e; # LETTER E
-\ue00e>\u0c8e; # FALLBACK
-\ue00f>\u0c8f; # LETTER EE
-\ue010>\u0c90; # LETTER AI
-\ue011>\u0c92; # FALLBACK
-\ue012>\u0c92; # LETTER O
-\ue013>\u0c93; # LETTER OO
-\ue014>\u0c94; # LETTER AU
-\ue015>\u0c95; # LETTER KA
-\ue016>\u0c96; # LETTER KHA
-\ue017>\u0c97; # LETTER GA
-\ue018>\u0c98; # LETTER GHA
-\ue019>\u0c99; # LETTER NGA
-\ue01a>\u0c9a; # LETTER CA
-\ue01b>\u0c9b; # LETTER CHA
-\ue01c>\u0c9c; # LETTER JA
-\ue01d>\u0c9d; # LETTER JHA
-\ue01e>\u0c9e; # LETTER NYA
-\ue01f>\u0c9f; # LETTER TTA
-\ue020>\u0ca0; # LETTER TTHA
-\ue021>\u0ca1; # LETTER DDA
-\ue022>\u0ca2; # LETTER DDHA
-\ue023>\u0ca3; # LETTER NNA
-\ue024>\u0ca4; # LETTER TA
-\ue025>\u0ca5; # LETTER THA
-\ue026>\u0ca6; # LETTER DA
-\ue027>\u0ca7; # LETTER DHA
-\ue028>\u0ca8; # LETTER NA
-\ue029>\u0ca8; # REMAP (indicExceptions.txt): \u0ca9>\u0ca8 = LETTER NNNA>LETTER NA
-\ue02a>\u0caa; # LETTER PA
-\ue02b>\u0cab; # LETTER PHA
-\ue02c>\u0cac; # LETTER BA
-\ue02d>\u0cad; # LETTER BHA
-\ue02e>\u0cae; # LETTER MA
-\ue02f>\u0caf; # LETTER YA
-\ue030\ue03c>\u0cb1;
-\ue030>\u0cb0; # LETTER RA
-\ue031>\u0cb1; # LETTER RRA
-\ue032>\u0cb2; # LETTER LA
-\ue033>\u0cb3; # LETTER LLA
-\ue034>\u0cde; # REMAP (indicExceptions.txt): \u0cb4>\u0cb3 = LETTER LLLA>LETTER LLA
-\ue035>\u0cb5; # LETTER VA
-\ue036>\u0cb6; # LETTER SHA
-\ue037>\u0cb7; # LETTER SSA
-\ue038>\u0cb8; # LETTER SA
-\ue039>\u0cb9; # LETTER HA
-
-\ue03c>\u0cbc; # NUKTA
-\ue03d>\u0cbd; # AVAGRAHA
-
-\ue03e>\u0cbe; # VOWEL SIGN AA
-\ue03f>\u0cbf; # VOWEL SIGN I
-\ue040>\u0cc0; # VOWEL SIGN II
-\ue041>\u0cc1; # VOWEL SIGN U
-\ue042>\u0cc2; # VOWEL SIGN UU
-\ue043>\u0cc3; # VOWEL SIGN VOCALIC R
-\ue044>\u0cc4; # VOWEL SIGN VOCALIC RR
-\ue045>\u0cc6; # REMAP (indicExceptions.txt): \u0cc5>\u0cc6 = VOWEL SIGN CANDRA E>VOWEL SIGN E
-\ue046>\u0cc6; # VOWEL SIGN E
-\ue047>\u0cc7; # VOWEL SIGN EE
-\ue048>\u0cc8; # VOWEL SIGN AI
-\ue049>\u0cca; # REMAP (indicExceptions.txt): \u0cc9>\u0cca = VOWEL SIGN CANDRA O>VOWEL SIGN O
-\ue04a>\u0cca; # VOWEL SIGN O
-\ue04b>\u0ccb; # VOWEL SIGN OO
-\ue04c>\u0ccc; # VOWEL SIGN AU
-\ue04d>\u0ccd; # SIGN VIRAMA
-\ue050>\u0c93\u0c82; # REMAP (indicExceptions.txt): \u0cd0>\u0c93\u0c82 = OM>LETTER OO.SIGN ANUSVARA
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>\u0cd5; # LENGTH MARK
-\ue056>\u0cd6; # AI LENGTH MARK
-\ue057>\u0ccc; # REMAP (indicExceptions.txt): \u0cd7>\u0ccc = AU LENGTH MARK>VOWEL SIGN AU
-\ue058>\u0c95; # FALLBACK
-\ue059>\u0c96; # REMAP (indicExceptions.txt): \u0cd9>\u0c96 = LETTER KHHA>LETTER KHA
-\ue05a>\u0c97; # REMAP (indicExceptions.txt): \u0cda>\u0c97 = LETTER GHHA>LETTER GA
-\ue05b>\u0c9c; # REMAP (indicExceptions.txt): \u0cdb>\u0c9c = LETTER ZA>LETTER JA
-\ue05c>\u0ca2; # FALLBACK
-\ue05d>\u0ca2; # REMAP (indicExceptions.txt): \u0cdd>\u0ca2 = LETTER RHA>LETTER DDHA
-\ue05e>\u0cde; # LETTER FA
-\ue05f>\u0caf; # REMAP (indicExceptions.txt): \u0cdf>\u0caf = LETTER YYA>LETTER YA
-\ue060>\u0ce0; # LETTER VOCALIC RR
-\ue061>\u0ce1; # LETTER VOCALIC LL
-\ue062>\u0cbf; # REMAP (indicExceptions.txt): \u0ce2>\u0cbf = VOWEL SIGN VOCALIC L>VOWEL SIGN I
-\ue063>\u0cc0; # REMAP (indicExceptions.txt): \u0ce3>\u0cc0 = VOWEL SIGN VOCALIC LL>VOWEL SIGN II
-\ue064>'.' ; # FALLBACK FOR DANDA
-\ue065>'.' ; # FALLBACK FOR DOUBLE DANDA
-\ue066>\u0ce6; # DIGIT ZERO
-\ue067>\u0ce7; # DIGIT ONE
-\ue068>\u0ce8; # DIGIT TWO
-\ue069>\u0ce9; # DIGIT THREE
-\ue06a>\u0cea; # DIGIT FOUR
-\ue06b>\u0ceb; # DIGIT FIVE
-\ue06c>\u0cec; # DIGIT SIX
-\ue06d>\u0ced; # DIGIT SEVEN
-\ue06e>\u0cee; # DIGIT EIGHT
-\ue06f>\u0cef; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0cb0; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0cb0; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE033\uE03C>ೞ; # LETTER FA
+\uE001>ಂ; # REMAP (indicExceptions.txt): \u0C81>ಂ = SIGN CANDRABINDU>SIGN ANUSVARA
+\uE002>ಂ; # SIGN ANUSVARA
+\uE003>ಃ; # SIGN VISARGA
+\uE004>ಅ; # FALLBACK TO LETTER A
+\uE005>ಅ; # LETTER A
+\uE006>ಆ; # LETTER AA
+\uE007>ಇ; # LETTER I
+\uE008>ಈ; # LETTER II
+\uE009>ಉ; # LETTER U
+\uE00A>ಊ; # LETTER UU
+\uE00B>ಋ; # LETTER VOCALIC R
+\uE00C>ಌ; # LETTER VOCALIC L
+\uE00D>ಎ; # LETTER E
+\uE00E>ಎ; # FALLBACK
+\uE00F>à²; # LETTER EE
+\uE010>à²; # LETTER AI
+\uE011>ಒ; # FALLBACK
+\uE012>ಒ; # LETTER O
+\uE013>ಓ; # LETTER OO
+\uE014>ಔ; # LETTER AU
+\uE015>ಕ; # LETTER KA
+\uE016>ಖ; # LETTER KHA
+\uE017>ಗ; # LETTER GA
+\uE018>ಘ; # LETTER GHA
+\uE019>ಙ; # LETTER NGA
+\uE01A>ಚ; # LETTER CA
+\uE01B>ಛ; # LETTER CHA
+\uE01C>ಜ; # LETTER JA
+\uE01D>à²; # LETTER JHA
+\uE01E>ಞ; # LETTER NYA
+\uE01F>ಟ; # LETTER TTA
+\uE020>ಠ; # LETTER TTHA
+\uE021>ಡ; # LETTER DDA
+\uE022>ಢ; # LETTER DDHA
+\uE023>ಣ; # LETTER NNA
+\uE024>ತ; # LETTER TA
+\uE025>ಥ; # LETTER THA
+\uE026>ದ; # LETTER DA
+\uE027>ಧ; # LETTER DHA
+\uE028>ನ; # LETTER NA
+\uE029>ನ; # REMAP (indicExceptions.txt): \u0CA9>ನ = LETTER NNNA>LETTER NA
+\uE02A>ಪ; # LETTER PA
+\uE02B>ಫ; # LETTER PHA
+\uE02C>ಬ; # LETTER BA
+\uE02D>ಭ; # LETTER BHA
+\uE02E>ಮ; # LETTER MA
+\uE02F>ಯ; # LETTER YA
+\uE030\uE03C>ಱ;
+\uE030>ರ; # LETTER RA
+\uE031>ಱ; # LETTER RRA
+\uE032>ಲ; # LETTER LA
+\uE033>ಳ; # LETTER LLA
+\uE034>ೞ; # REMAP (indicExceptions.txt): \u0CB4>ಳ = LETTER LLLA>LETTER LLA
+\uE035>ವ; # LETTER VA
+\uE036>ಶ; # LETTER SHA
+\uE037>ಷ; # LETTER SSA
+\uE038>ಸ; # LETTER SA
+\uE039>ಹ; # LETTER HA
+\uE03C>\u0CBC; # NUKTA
+\uE03D>ಽ; # AVAGRAHA
+\uE03E>ಾ; # VOWEL SIGN AA
+\uE03F>\u0CBF; # VOWEL SIGN I
+\uE040>à³€; # VOWEL SIGN II
+\uE041>à³; # VOWEL SIGN U
+\uE042>ೂ; # VOWEL SIGN UU
+\uE043>ೃ; # VOWEL SIGN VOCALIC R
+\uE044>ೄ; # VOWEL SIGN VOCALIC RR
+\uE045>\u0CC6; # REMAP (indicExceptions.txt): \u0CC5>\u0CC6 = VOWEL SIGN CANDRA E>VOWEL SIGN E
+\uE046>\u0CC6; # VOWEL SIGN E
+\uE047>ೇ; # VOWEL SIGN EE
+\uE048>ೈ; # VOWEL SIGN AI
+\uE049>ೊ; # REMAP (indicExceptions.txt): \u0CC9>ೊ = VOWEL SIGN CANDRA O>VOWEL SIGN O
+\uE04A>ೊ; # VOWEL SIGN O
+\uE04B>ೋ; # VOWEL SIGN OO
+\uE04C>\u0CCC; # VOWEL SIGN AU
+\uE04D>\u0CCD; # SIGN VIRAMA
+\uE050>ಓಂ; # REMAP (indicExceptions.txt): \u0CD0>ಓಂ = OM>LETTER OO.SIGN ANUSVARA
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>ೕ; # LENGTH MARK
+\uE056>à³–; # AI LENGTH MARK
+\uE057>\u0CCC; # REMAP (indicExceptions.txt): \u0CD7>\u0CCC = AU LENGTH MARK>VOWEL SIGN AU
+\uE058>ಕ; # FALLBACK
+\uE059>ಖ; # REMAP (indicExceptions.txt): \u0CD9>ಖ = LETTER KHHA>LETTER KHA
+\uE05A>ಗ; # REMAP (indicExceptions.txt): \u0CDA>ಗ = LETTER GHHA>LETTER GA
+\uE05B>ಜ; # REMAP (indicExceptions.txt): \u0CDB>ಜ = LETTER ZA>LETTER JA
+\uE05C>ಢ; # FALLBACK
+\uE05D>ಢ; # REMAP (indicExceptions.txt): \u0CDD>ಢ = LETTER RHA>LETTER DDHA
+\uE05E>ೞ; # LETTER FA
+\uE05F>ಯ; # REMAP (indicExceptions.txt): \u0CDF>ಯ = LETTER YYA>LETTER YA
+\uE060>à³ ; # LETTER VOCALIC RR
+\uE061>ೡ; # LETTER VOCALIC LL
+\uE062>\u0CBF; # REMAP (indicExceptions.txt): \u0CE2>\u0CBF = VOWEL SIGN VOCALIC L>VOWEL SIGN I
+\uE063>à³€; # REMAP (indicExceptions.txt): \u0CE3>à³€ = VOWEL SIGN VOCALIC LL>VOWEL SIGN II
+\uE064>'.' ; # FALLBACK FOR DANDA
+\uE065>'.' ; # FALLBACK FOR DOUBLE DANDA
+\uE066>೦; # DIGIT ZERO
+\uE067>೧; # DIGIT ONE
+\uE068>೨; # DIGIT TWO
+\uE069>೩; # DIGIT THREE
+\uE06A>೪; # DIGIT FOUR
+\uE06B>೫; # DIGIT FIVE
+\uE06C>೬; # DIGIT SIX
+\uE06D>à³­; # DIGIT SEVEN
+\uE06E>à³®; # DIGIT EIGHT
+\uE06F>೯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>ರ; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>ರ; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0cb5; # FALLBACK FOR ORIYA LETTER WA
+\uE081>ವ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0ca4\u0ccd; # Bengali Khanda-ta
-0 > \u0ce6; # FALLBACK FOR TAMIL
-1 > \u0ce7;
-
-# :: NFC (NFD) ;
-# eof
+\uE083>ತ\u0CCD; # Bengali Khanda-ta
+0 > ೦; # FALLBACK FOR TAMIL
+1 > ೧;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Latin.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Latin.txt
index a6552801f74..b78872c9c3d 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Latin.txt
@@ -1,535 +1,462 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Latin
- #\u0e00 reserved
- #consonants
- $chandrabindu=\ue001;
- $anusvara=\ue002;
- $visarga=\ue003;
- #\u0e004 reserved
- # w<vowel> represents the stand-alone form
- $wa=\ue005;
- $waa=\ue006;
- $wi=\ue007;
- $wii=\ue008;
- $wu=\ue009;
- $wuu=\ue00a;
- $wr=\ue00b;
- $wl=\ue00c;
- $wce=\ue00d; # LETTER CANDRA E
- $wse=\ue00e; # LETTER SHORT E
- $we=\ue00f; # \u090f LETTER E
- $wai=\ue010;
- $wco=\ue011; # LETTER CANDRA O
- $wso=\ue012; # LETTER SHORT O
- $wo=\ue013; # \u0913 LETTER O
- $wau=\ue014;
- $ka=\ue015;
- $kha=\ue016;
- $ga=\ue017;
- $gha=\ue018;
- $nga=\ue019;
- $ca=\ue01a;
- $cha=\ue01b;
- $ja=\ue01c;
- $jha=\ue01d;
- $nya=\ue01e;
- $tta=\ue01f;
- $ttha=\ue020;
- $dda=\ue021;
- $ddha=\ue022;
- $nna=\ue023;
- $ta=\ue024;
- $tha=\ue025;
- $da=\ue026;
- $dha=\ue027;
- $na=\ue028;
- $ena=\ue029; #compatibility
- $pa=\ue02a;
- $pha=\ue02b;
- $ba=\ue02c;
- $bha=\ue02d;
- $ma=\ue02e;
- $ya=\ue02f;
- $ra=\ue030;
- $vva=\ue081;
- $rra=\ue031;
- $la=\ue032;
- $lla=\ue033;
- $ela=\ue034; #compatibility
- $va=\ue035;
- $sha=\ue036;
- $ssa=\ue037;
- $sa=\ue038;
- $ha=\ue039;
-#\u093a Reserved
-#\u093b Reserved
- $nukta=\ue03c;
- $avagraha=\ue03d; # SIGN AVAGRAHA
- # <vowel> represents the dependent form
- $aa=\ue03e;
- $i=\ue03f;
- $ii=\ue040;
- $u=\ue041;
- $uu=\ue042;
- $rh=\ue043;
- $lh=\ue044;
- $ce=\ue045; #VOWEL SIGN CANDRA E
- $se=\ue046; #VOWEL SIGN SHORT E
- $e=\ue047;
- $ai=\ue048;
- $co=\ue049; # VOWEL SIGN CANDRA O
- $so=\ue04a; # VOWEL SIGN SHORT O
- $o=\ue04b; # \u094b
- $au=\ue04c;
- $virama=\ue04d;
-# \u094e Reserved
-# \u094f Reserved
- $om=\ue050; # OM
- \ue051>; # UNMAPPED STRESS SIGN UDATTA
- \ue052>; # UNMAPPED STRESS SIGN ANUDATTA
- \ue053>; # UNMAPPED GRAVE ACCENT
- \ue054>; # UNMAPPED ACUTE ACCENT
- $lm = \ue055;# Telugu Length Mark
- $ailm=\ue056;# AI Length Mark
- $aulm=\ue057;# AU Length Mark
- #urdu compatibity forms
- $uka=\ue058;
- $ukha=\ue059;
- $ugha=\ue05a;
- $ujha=\ue05b;
- $uddha=\ue05c;
- $udha=\ue05d;
- $ufa=\ue05e;
- $uya=\ue05f;
- $wrr=\ue060;
- $wll=\ue061;
- $rrh=\ue062;
- $llh=\ue063;
- $danda=\ue064;
- $doubleDanda=\ue065;
- $zero=\ue066; # DIGIT ZERO
- $one=\ue067; # DIGIT ONE
- $two=\ue068; # DIGIT TWO
- $three=\ue069; # DIGIT THREE
- $four=\ue06a; # DIGIT FOUR
- $five=\ue06b; # DIGIT FIVE
- $six=\ue06c; # DIGIT SIX
- $seven=\ue06d; # DIGIT SEVEN
- $eight=\ue06e; # DIGIT EIGHT
- $nine=\ue06f; # DIGIT NINE
-
- # Glottal stop
- $dgs=\ue082;
- #Khanda-ta
- $kta=\ue083;
-# \u0970>; # UNMAPPED ABBREVIATION SIGN
- $depVowelAbove=[\ue03e-\ue040\ue045-\ue04c];
- $depVowelBelow=[\ue041-\ue044];
- # $x was originally called '&'; $z was '%'
- $x=[$aa$ai$au$ii$i$uu$u$rrh$rh$lh$llh$e$o$se$ce$so$co];
- $z=[bcdfghjklmnpqrstvwxyz];
- $vowels=[aeiour\u0304\u0325\u0306];
- $forceIndependentMatra = [^[[:L:][\u0300-\u034c]]];
- ######################################################################
- # convert from Native letters to Latin letters
- ######################################################################
- #transliterations for anusvara
- $anusvara} [$ka$kha$ga$gha$nga] > n\u0307;
- $anusvara} [$ca$cha$ja$jha$nya] > n\u0304;
- $anusvara} [$tta$ttha$dda$ddha$nna] > n\u0323;
- $anusvara} [$ta$tha$da$dha$na] > n;
- $anusvara} [$pa$pha$ba$bha$ma] > m;
- $anusvara} [$ya$ra$lla$la$va$ssa$sha$sa$ha] > n;
- $anusvara> m\u0307;
-
- # Urdu compatibility
- $ya$nukta}$x > y\u0307;
- $ya$nukta$virama > y\u0307;
- $ya$nukta > y\u0307a;
-
- $la$nukta }$x > l\u0331;
- $la$nukta$virama > l\u0331;
- $la$nukta > l\u0331a;
-
- $na$nukta }$x > n\u0331;
- $na$nukta$virama > n\u0331;
- $na$nukta > n\u0331a;
-
- $ena }$x > n\u0331;
- $ena$virama > n\u0331;
- $ena > n\u0331a;
- $uka > qa;
- $ka$nukta }$x > q;
- $ka$nukta$virama > q;
- $ka$nukta > qa;
- $kha$nukta }$x > k\u0331h\u0331;
- $kha$nukta$virama > k\u0331h\u0331;
- $kha$nukta > k\u0331h\u0331a;
- $ukha$virama > k\u0331h\u0331;
- $ukha > k\u0331h\u0331a;
- $ugha > g\u0307a;
- $ga$nukta }$x > g\u0307;
- $ga$nukta$virama > g\u0307;
- $ga$nukta > g\u0307a;
-
- $ujha > za;
- $ja$nukta }$x > z;
- $ja$nukta$virama > z;
- $ja$nukta > za;
- $ddha$nukta}$x > r\u0323h;
- $ddha$nukta$virama > r\u0323h;
- $ddha$nukta > r\u0323ha;
-
- $uddha}$x > r\u0323;
- $uddha$virama > r\u0323;
- $uddha > r\u0323a;
-
- $udha > r\u0323a;
- $dda$nukta}$x > r\u0323;
- $dda$nukta$virama > r\u0323;
- $dda$nukta > r\u0323a;
- $pha$nukta }$x > f;
- $pha$nukta$virama > f;
- $pha$nukta > fa;
- $ufa }$x > f;
- $ufa$virama > f;
- $ufa > fa;
-
- $ra$nukta}$x > r\u0331;
- $ra$nukta$virama > r\u0331;
- $ra$nukta > r\u0331a;
- $lla$nukta}$x > l\u0331;
- $lla$nukta$virama > l\u0331;
- $lla$nukta > l\u0331a;
-
- $ela}$x > l\u0331;
- $ela$virama > l\u0331;
- $ela > l\u0331a;
-
- $uya}$x > y\u0307;
- $uya$virama > y\u0307;
- $uya > y\u0307a;
-
-
- # normal consonants
- $ka$virama}$ha>k'';
- $ka}$x>k;
- $ka$virama>k;
- $ka>ka;
- $kha}$x>kh;
- $kha$virama>kh;
- $kha>kha;
- $ga$virama}$ha>g'';
- $ga}$x>g;
- $ga$virama>g;
- $ga>ga;
-
- $gha}$x>gh;
- $gha$virama>gh;
- $gha>gha;
-
- $nga}$x>n\u0307;
- $nga$virama>n\u0307;
- $nga>n\u0307a;
- $ca$virama}$ha>c'';
- $ca}$x>c;
- $ca$virama>c;
- $ca>ca;
-
- $cha}$x>ch;
- $cha$virama>ch;
- $cha>cha;
- $ja$virama}$ha>j'';
- $ja}$x>j;
- $ja$virama>j;
- $ja>ja;
-
- $jha}$x>jh;
- $jha$virama>jh;
- $jha>jha;
-
- $nya }$x>n\u0303;
- $nya$virama>n\u0303;
- $nya > n\u0303a;
-
-
- $tta$virama}$ha>t\u0323'';
- $tta}$x>t\u0323;
- $tta$virama>t\u0323;
- $tta>t\u0323a;
-
- $ttha}$x>t\u0323h;
- $ttha$virama>t\u0323h;
- $ttha>t\u0323ha;
- $dda}$x$ha>d\u0323'';
- $dda}$x>d\u0323;
- $dda$virama>d\u0323;
- $dda>d\u0323a;
-
- $ddha}$x>d\u0323h;
- $ddha$virama>d\u0323h;
- $ddha>d\u0323ha;
-
- $nna}$x>n\u0323;
- $nna$virama>n\u0323;
- $nna>n\u0323a;
-
-
- $ta$virama}$ha>t'';
- $ta$virama}$ttha>t'';
- $ta$virama}$tta>t'';
- $ta$virama}$tha>t'';
- $ta}$x>t;
- $ta$virama>t;
- $ta>ta;
- $tha}$x>th;
- $tha$virama>th;
- $tha>tha;
-
- $da$virama}$ha>d'';
- $da$virama}$ddha>d'';
- $da$virama}$dda>d'';
- $da$virama}$dha>d'';
- $da}$x>d;
- $da$virama>d;
- $da>da;
- $dha}$x>dh;
- $dha$virama>dh;
- $dha>dha;
- $na$virama}$ga>n'';
- $na$virama}$ya>n'';
- $na}$x>n;
- $na$virama>n;
- $na>na;
-
-
- $pa$virama}$ha>p'';
- $pa}$x>p;
- $pa$virama>p;
- $pa>pa;
- $pha}$x>ph;
- $pha$virama>ph;
- $pha>pha;
- $ba$virama}$ha>b'';
- $ba}$x>b;
- $ba$virama>b;
- $ba>ba;
-
- $bha}$x>bh;
- $bha$virama>bh;
- $bha>bha;
-
- $ma$virama}$ma>m'';
- $ma}$x>m;
- $ma$virama>m;
- $ma>ma;
-
- $ya}$x>y;
- $ya$virama>y;
- $ya>ya;
- $ra$virama}$ha>r'';
- $ra}$x>r;
- $ra$virama>r;
- $ra>ra;
- $vva$virama}$ha>w\u0307'';
- $vva}$x>w\u0307;
- $vva$virama>w\u0307;
- $vva>w\u0307a;
- $rra$virama}$ha>r\u0331'';
- $rra}$x>r\u0331;
- $rra$virama>r\u0331;
- $rra>r\u0331a;
- $la$virama}$ha>l'';
- $la}$x>l;
- $la$virama>l;
- $la>la;
- $lla$virama}$ha>l\u0323'';
- $lla}$x>l\u0323;
- $lla$virama>l\u0323;
- $lla>l\u0323a;
- $va}$x>v;
- $va$virama>v;
- $va>va;
- $sa$virama}$ha>s'';
- $sa$virama}$sha>s'';
- $sa$virama}$ssa>s'';
- $sa$virama}$sa>s'';
- $sa}$x>s;
- $sa$virama>s;
-
- #for gurmukhi
- $sa$nukta}$x>s\u0301;
- $sa$nukta$virama>s\u0301;
- $sa$nukta>s\u0301a;
- $sa>sa;
-
- $sha}$x>s\u0301;
- $sha$virama>s\u0301;
- $sha>s\u0301a;
-
- $ssa}$x>s\u0323;
- $ssa$virama>s\u0323;
- $ssa>s\u0323a;
- $ha}$x>h;
- $ha$virama>h;
- $ha>ha;
-
- # dependent vowels (should never occur except following consonants)
- $forceIndependentMatra{$aa > \u0314a\u0304;
- $forceIndependentMatra{$ai > \u0314ai;
- $forceIndependentMatra{$au > \u0314au;
- $forceIndependentMatra{$ii > \u0314i\u0304;
- $forceIndependentMatra{$i > \u0314i;
- $forceIndependentMatra{$uu > \u0314u\u0304;
- $forceIndependentMatra{$u > \u0314u;
- $forceIndependentMatra{$rrh > \u0314r\u0325\u0304;
- $forceIndependentMatra{$rh > \u0314r\u0325;
- $forceIndependentMatra{$llh > \u0314l\u0325\u0304;
- $forceIndependentMatra{$lh > \u0314l\u0325;
- $forceIndependentMatra{$e > \u0314e\u0304;
- $forceIndependentMatra{$o > \u0314o\u0304;
- #extra vowels
- $forceIndependentMatra{$ce > \u0314e\u0306;
- $forceIndependentMatra{$co > \u0314o\u0306;
- $forceIndependentMatra{$se > \u0314e;
- $forceIndependentMatra{$so > \u0314o;
- $forceIndependentMatra{$nukta >; # Nukta cannot appear independently or as first character
- $forceIndependentMatra{$virama >; # Virama cannot appear independently or as first character
- $aa > a\u0304;
- $ai > ai;
- $au > au;
- $ii > i\u0304;
- $i > i;
- $uu > u\u0304;
- $u > u;
- $rrh > r\u0325\u0304;
- $rh > r\u0325;
- $llh > l\u0325\u0304;
- $lh > l\u0325;
- $e > e\u0304;
- $o > o\u0304;
- #extra vowels
- $ce > e\u0306;
- $co > o\u0306;
- $se > e;
- $so > o;
- #dependent vowels when following independent vowels. Generally Illegal only for roundtripping
- $waa} $x > a\u0304\u0314;
- $wai} $x > ai\u0314;
- $wau} $x > au\u0314;
- $wii} $x > i\u0304\u0314;
- $wi } $x > i\u0314;
- $wuu} $x > u\u0304\u0314;
- $wu } $x > u\u0314;
- $wrr} $x > r\u0325\u0304\u0314;
- $wr } $x > r\u0325\u0314;
- $wll} $x > l\u0325\u0304\u0314;
- $wl } $x > l\u0325\u0314;
- $we } $x > e\u0304\u0314;
- $wo } $x > o\u0304\u0314;
- $wa } $x > a\u0314;
- #extra vowels
- $wce} $x > e\u0306\u0314;
- $wco} $x > o\u0306\u0314;
- $wse} $x > e\u0314;
- $wso} $x > o\u0314;
- $om} $x > ''om\u0314;
-
- # independent vowels when preceeded by vowels
- $vowels{$waa > ''a\u0304;
- $vowels{$wai > ''ai;
- $vowels{$wau > ''au;
- $vowels{$wii > ''i\u0304;
- $vowels{$wi > ''i;
- $vowels{$wuu > ''u\u0304;
- $vowels{$wu > ''u;
- $vowels{$wrr > ''r\u0325\u0304;
- $vowels{$wr > ''r\u0325;
- $vowels{$wll > ''l\u0325\u0304;
- $vowels{$wl > ''l\u0325;
- $vowels{$we > ''e\u0304;
- $vowels{$wo > ''o\u0304;
- $vowels{$wa > ''a;
- #extra vowels
- $vowels{$wce > ''e\u0306;
- $vowels{$wco > ''o\u0306;
- $vowels{$wse > ''e;
- $vowels{$wso > ''o;
-
- # independent vowels (otherwise)
- $waa > a\u0304;
- $wai > ai;
- $wau > au;
- $wii > i\u0304;
- $wi > i;
- $wuu > u\u0304;
- $wu > u;
- $wrr > r\u0325\u0304;
- $wr > r\u0325;
- $wll > l\u0325\u0304;
- $wl > l\u0325;
- $we > e\u0304;
- $wo > o\u0304;
- $wa > a;
- #extra vowels
- $wce > e\u0306;
- $wco > o\u0306;
- $wse > e;
- $wso > o;
- $om > ''om;
-
- #stress marks
- $avagraha > \u0315;
- $chandrabindu$anusvara>\u0303;
- $chandrabindu > m\u0310;
- $visarga>h\u0323;
- #numbers
- $zero > 0;
- $one > 1;
- $two > 2;
- $three > 3;
- $four > 4;
- $five > 5;
- $six > 6;
- $seven > 7;
- $eight > 8;
- $nine > 9;
- $lm >;
- $ailm >;
- $aulm >;
-
- $dgs>\u0294;
- $kta>t\u0331;
- $danda>'.';
- $doubleDanda>'.';
-
- \ue070>; # ABBREVIATION SIGN
- # LETTER RA WITH MIDDLE DIAGONAL
- \ue071}$x>ra;
- \ue071$virama>r;
- \ue071>ra;
- # LETTER RA WITH LOWER DIAGONAL
- \ue072}$x>ra;
- \ue072$virama>r;
- \ue072>ra;
-
- \ue073>; # RUPEE MARK
- \ue074>; # RUPEE SIGN
- \ue075>; # CURRENCY NUMERATOR ONE
- \ue076>; # CURRENCY NUMERATOR TWO
- \ue077>; # CURRENCY NUMERATOR THREE
- \ue078>; # CURRENCY NUMERATOR FOUR
- \ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
- \ue07A>; # CURRENCY DENOMINATOR SIXTEEN
- \ue07B>; # ISSHAR
- \uE07C>; # TIPPI
- \uE07D>; # ADDAK
- \uE07E>; # IRI
- \uE07F>; # URA
- \uE080>; # EK ONKAR
- \uE004>; # DEVANAGARI VOWEL SIGN SHORT A
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+$chandrabindu=\uE001;
+$anusvara=\uE002;
+$visarga=\uE003;
+$wa=\uE005;
+$waa=\uE006;
+$wi=\uE007;
+$wii=\uE008;
+$wu=\uE009;
+$wuu=\uE00A;
+$wr=\uE00B;
+$wl=\uE00C;
+$wce=\uE00D; # LETTER CANDRA E
+$wse=\uE00E; # LETTER SHORT E
+$we=\uE00F; # ठLETTER E
+$wai=\uE010;
+$wco=\uE011; # LETTER CANDRA O
+$wso=\uE012; # LETTER SHORT O
+$wo=\uE013; # ओ LETTER O
+$wau=\uE014;
+$ka=\uE015;
+$kha=\uE016;
+$ga=\uE017;
+$gha=\uE018;
+$nga=\uE019;
+$ca=\uE01A;
+$cha=\uE01B;
+$ja=\uE01C;
+$jha=\uE01D;
+$nya=\uE01E;
+$tta=\uE01F;
+$ttha=\uE020;
+$dda=\uE021;
+$ddha=\uE022;
+$nna=\uE023;
+$ta=\uE024;
+$tha=\uE025;
+$da=\uE026;
+$dha=\uE027;
+$na=\uE028;
+$ena=\uE029; #compatibility
+$pa=\uE02A;
+$pha=\uE02B;
+$ba=\uE02C;
+$bha=\uE02D;
+$ma=\uE02E;
+$ya=\uE02F;
+$ra=\uE030;
+$vva=\uE081;
+$rra=\uE031;
+$la=\uE032;
+$lla=\uE033;
+$ela=\uE034; #compatibility
+$va=\uE035;
+$sha=\uE036;
+$ssa=\uE037;
+$sa=\uE038;
+$ha=\uE039;
+$nukta=\uE03C;
+$avagraha=\uE03D; # SIGN AVAGRAHA
+$aa=\uE03E;
+$i=\uE03F;
+$ii=\uE040;
+$u=\uE041;
+$uu=\uE042;
+$rh=\uE043;
+$lh=\uE044;
+$ce=\uE045; #VOWEL SIGN CANDRA E
+$se=\uE046; #VOWEL SIGN SHORT E
+$e=\uE047;
+$ai=\uE048;
+$co=\uE049; # VOWEL SIGN CANDRA O
+$so=\uE04A; # VOWEL SIGN SHORT O
+$o=\uE04B; # ो
+$au=\uE04C;
+$virama=\uE04D;
+$om=\uE050; # OM
+\uE051>; # UNMAPPED STRESS SIGN UDATTA
+\uE052>; # UNMAPPED STRESS SIGN ANUDATTA
+\uE053>; # UNMAPPED GRAVE ACCENT
+\uE054>; # UNMAPPED ACUTE ACCENT
+$lm = \uE055;# Telugu Length Mark
+$ailm=\uE056;# AI Length Mark
+$aulm=\uE057;# AU Length Mark
+$uka=\uE058;
+$ukha=\uE059;
+$ugha=\uE05A;
+$ujha=\uE05B;
+$uddha=\uE05C;
+$udha=\uE05D;
+$ufa=\uE05E;
+$uya=\uE05F;
+$wrr=\uE060;
+$wll=\uE061;
+$rrh=\uE062;
+$llh=\uE063;
+$danda=\uE064;
+$doubleDanda=\uE065;
+$zero=\uE066; # DIGIT ZERO
+$one=\uE067; # DIGIT ONE
+$two=\uE068; # DIGIT TWO
+$three=\uE069; # DIGIT THREE
+$four=\uE06A; # DIGIT FOUR
+$five=\uE06B; # DIGIT FIVE
+$six=\uE06C; # DIGIT SIX
+$seven=\uE06D; # DIGIT SEVEN
+$eight=\uE06E; # DIGIT EIGHT
+$nine=\uE06F; # DIGIT NINE
+$dgs=\uE082;
+$kta=\uE083;
+$depVowelAbove=[\uE03E-\uE040\uE045-\uE04C];
+$depVowelBelow=[\uE041-\uE044];
+$x=[$aa$ai$au$ii$i$uu$u$rrh$rh$lh$llh$e$o$se$ce$so$co];
+$z=[bcdfghjklmnpqrstvwxyz];
+$vowels=[aeiour\u0304\u0325\u0306];
+$forceIndependentMatra = [^[[:L:][\u0300-\u034C]]];
+$anusvara} [$ka$kha$ga$gha$nga] > n\u0307;
+$anusvara} [$ca$cha$ja$jha$nya] > n\u0304;
+$anusvara} [$tta$ttha$dda$ddha$nna] > n\u0323;
+$anusvara} [$ta$tha$da$dha$na] > n;
+$anusvara} [$pa$pha$ba$bha$ma] > m;
+$anusvara} [$ya$ra$lla$la$va$ssa$sha$sa$ha] > n;
+$anusvara> m\u0307;
+$ya$nukta}$x > y\u0307;
+$ya$nukta$virama > y\u0307;
+$ya$nukta > y\u0307a;
+$la$nukta }$x > l\u0331;
+$la$nukta$virama > l\u0331;
+$la$nukta > l\u0331a;
+$na$nukta }$x > n\u0331;
+$na$nukta$virama > n\u0331;
+$na$nukta > n\u0331a;
+$ena }$x > n\u0331;
+$ena$virama > n\u0331;
+$ena > n\u0331a;
+$uka > qa;
+$ka$nukta }$x > q;
+$ka$nukta$virama > q;
+$ka$nukta > qa;
+$kha$nukta }$x > k\u0331h\u0331;
+$kha$nukta$virama > k\u0331h\u0331;
+$kha$nukta > k\u0331h\u0331a;
+$ukha$virama > k\u0331h\u0331;
+$ukha > k\u0331h\u0331a;
+$ugha > g\u0307a;
+$ga$nukta }$x > g\u0307;
+$ga$nukta$virama > g\u0307;
+$ga$nukta > g\u0307a;
+$ujha > za;
+$ja$nukta }$x > z;
+$ja$nukta$virama > z;
+$ja$nukta > za;
+$ddha$nukta}$x > r\u0323h;
+$ddha$nukta$virama > r\u0323h;
+$ddha$nukta > r\u0323ha;
+$uddha}$x > r\u0323;
+$uddha$virama > r\u0323;
+$uddha > r\u0323a;
+$udha > r\u0323a;
+$dda$nukta}$x > r\u0323;
+$dda$nukta$virama > r\u0323;
+$dda$nukta > r\u0323a;
+$pha$nukta }$x > f;
+$pha$nukta$virama > f;
+$pha$nukta > fa;
+$ufa }$x > f;
+$ufa$virama > f;
+$ufa > fa;
+$ra$nukta}$x > r\u0331;
+$ra$nukta$virama > r\u0331;
+$ra$nukta > r\u0331a;
+$lla$nukta}$x > l\u0331;
+$lla$nukta$virama > l\u0331;
+$lla$nukta > l\u0331a;
+$ela}$x > l\u0331;
+$ela$virama > l\u0331;
+$ela > l\u0331a;
+$uya}$x > y\u0307;
+$uya$virama > y\u0307;
+$uya > y\u0307a;
+$ka$virama}$ha>k'';
+$ka}$x>k;
+$ka$virama>k;
+$ka>ka;
+$kha}$x>kh;
+$kha$virama>kh;
+$kha>kha;
+$ga$virama}$ha>g'';
+$ga}$x>g;
+$ga$virama>g;
+$ga>ga;
+$gha}$x>gh;
+$gha$virama>gh;
+$gha>gha;
+$nga}$x>n\u0307;
+$nga$virama>n\u0307;
+$nga>n\u0307a;
+$ca$virama}$ha>c'';
+$ca}$x>c;
+$ca$virama>c;
+$ca>ca;
+$cha}$x>ch;
+$cha$virama>ch;
+$cha>cha;
+$ja$virama}$ha>j'';
+$ja}$x>j;
+$ja$virama>j;
+$ja>ja;
+$jha}$x>jh;
+$jha$virama>jh;
+$jha>jha;
+$nya }$x>n\u0303;
+$nya$virama>n\u0303;
+$nya > n\u0303a;
+$tta$virama}$ha>t\u0323'';
+$tta}$x>t\u0323;
+$tta$virama>t\u0323;
+$tta>t\u0323a;
+$ttha}$x>t\u0323h;
+$ttha$virama>t\u0323h;
+$ttha>t\u0323ha;
+$dda}$x$ha>d\u0323'';
+$dda}$x>d\u0323;
+$dda$virama>d\u0323;
+$dda>d\u0323a;
+$ddha}$x>d\u0323h;
+$ddha$virama>d\u0323h;
+$ddha>d\u0323ha;
+$nna}$x>n\u0323;
+$nna$virama>n\u0323;
+$nna>n\u0323a;
+$ta$virama}$ha>t'';
+$ta$virama}$ttha>t'';
+$ta$virama}$tta>t'';
+$ta$virama}$tha>t'';
+$ta}$x>t;
+$ta$virama>t;
+$ta>ta;
+$tha}$x>th;
+$tha$virama>th;
+$tha>tha;
+$da$virama}$ha>d'';
+$da$virama}$ddha>d'';
+$da$virama}$dda>d'';
+$da$virama}$dha>d'';
+$da}$x>d;
+$da$virama>d;
+$da>da;
+$dha}$x>dh;
+$dha$virama>dh;
+$dha>dha;
+$na$virama}$ga>n'';
+$na$virama}$ya>n'';
+$na}$x>n;
+$na$virama>n;
+$na>na;
+$pa$virama}$ha>p'';
+$pa}$x>p;
+$pa$virama>p;
+$pa>pa;
+$pha}$x>ph;
+$pha$virama>ph;
+$pha>pha;
+$ba$virama}$ha>b'';
+$ba}$x>b;
+$ba$virama>b;
+$ba>ba;
+$bha}$x>bh;
+$bha$virama>bh;
+$bha>bha;
+$ma$virama}$ma>m'';
+$ma}$x>m;
+$ma$virama>m;
+$ma>ma;
+$ya}$x>y;
+$ya$virama>y;
+$ya>ya;
+$ra$virama}$ha>r'';
+$ra}$x>r;
+$ra$virama>r;
+$ra>ra;
+$vva$virama}$ha>w\u0307'';
+$vva}$x>w\u0307;
+$vva$virama>w\u0307;
+$vva>w\u0307a;
+$rra$virama}$ha>r\u0331'';
+$rra}$x>r\u0331;
+$rra$virama>r\u0331;
+$rra>r\u0331a;
+$la$virama}$ha>l'';
+$la}$x>l;
+$la$virama>l;
+$la>la;
+$lla$virama}$ha>l\u0323'';
+$lla}$x>l\u0323;
+$lla$virama>l\u0323;
+$lla>l\u0323a;
+$va}$x>v;
+$va$virama>v;
+$va>va;
+$sa$virama}$ha>s'';
+$sa$virama}$sha>s'';
+$sa$virama}$ssa>s'';
+$sa$virama}$sa>s'';
+$sa}$x>s;
+$sa$virama>s;
+$sa$nukta}$x>s\u0301;
+$sa$nukta$virama>s\u0301;
+$sa$nukta>s\u0301a;
+$sa>sa;
+$sha}$x>s\u0301;
+$sha$virama>s\u0301;
+$sha>s\u0301a;
+$ssa}$x>s\u0323;
+$ssa$virama>s\u0323;
+$ssa>s\u0323a;
+$ha}$x>h;
+$ha$virama>h;
+$ha>ha;
+$forceIndependentMatra{$aa > \u0314a\u0304;
+$forceIndependentMatra{$ai > \u0314ai;
+$forceIndependentMatra{$au > \u0314au;
+$forceIndependentMatra{$ii > \u0314i\u0304;
+$forceIndependentMatra{$i > \u0314i;
+$forceIndependentMatra{$uu > \u0314u\u0304;
+$forceIndependentMatra{$u > \u0314u;
+$forceIndependentMatra{$rrh > \u0314r\u0325\u0304;
+$forceIndependentMatra{$rh > \u0314r\u0325;
+$forceIndependentMatra{$llh > \u0314l\u0325\u0304;
+$forceIndependentMatra{$lh > \u0314l\u0325;
+$forceIndependentMatra{$e > \u0314e\u0304;
+$forceIndependentMatra{$o > \u0314o\u0304;
+$forceIndependentMatra{$ce > \u0314e\u0306;
+$forceIndependentMatra{$co > \u0314o\u0306;
+$forceIndependentMatra{$se > \u0314e;
+$forceIndependentMatra{$so > \u0314o;
+$forceIndependentMatra{$nukta >; # Nukta cannot appear independently or as first character
+$forceIndependentMatra{$virama >; # Virama cannot appear independently or as first character
+$aa > a\u0304;
+$ai > ai;
+$au > au;
+$ii > i\u0304;
+$i > i;
+$uu > u\u0304;
+$u > u;
+$rrh > r\u0325\u0304;
+$rh > r\u0325;
+$llh > l\u0325\u0304;
+$lh > l\u0325;
+$e > e\u0304;
+$o > o\u0304;
+$ce > e\u0306;
+$co > o\u0306;
+$se > e;
+$so > o;
+$waa} $x > a\u0304\u0314;
+$wai} $x > ai\u0314;
+$wau} $x > au\u0314;
+$wii} $x > i\u0304\u0314;
+$wi } $x > i\u0314;
+$wuu} $x > u\u0304\u0314;
+$wu } $x > u\u0314;
+$wrr} $x > r\u0325\u0304\u0314;
+$wr } $x > r\u0325\u0314;
+$wll} $x > l\u0325\u0304\u0314;
+$wl } $x > l\u0325\u0314;
+$we } $x > e\u0304\u0314;
+$wo } $x > o\u0304\u0314;
+$wa } $x > a\u0314;
+$wce} $x > e\u0306\u0314;
+$wco} $x > o\u0306\u0314;
+$wse} $x > e\u0314;
+$wso} $x > o\u0314;
+$om} $x > ''om\u0314;
+$vowels{$waa > ''a\u0304;
+$vowels{$wai > ''ai;
+$vowels{$wau > ''au;
+$vowels{$wii > ''i\u0304;
+$vowels{$wi > ''i;
+$vowels{$wuu > ''u\u0304;
+$vowels{$wu > ''u;
+$vowels{$wrr > ''r\u0325\u0304;
+$vowels{$wr > ''r\u0325;
+$vowels{$wll > ''l\u0325\u0304;
+$vowels{$wl > ''l\u0325;
+$vowels{$we > ''e\u0304;
+$vowels{$wo > ''o\u0304;
+$vowels{$wa > ''a;
+$vowels{$wce > ''e\u0306;
+$vowels{$wco > ''o\u0306;
+$vowels{$wse > ''e;
+$vowels{$wso > ''o;
+$waa > a\u0304;
+$wai > ai;
+$wau > au;
+$wii > i\u0304;
+$wi > i;
+$wuu > u\u0304;
+$wu > u;
+$wrr > r\u0325\u0304;
+$wr > r\u0325;
+$wll > l\u0325\u0304;
+$wl > l\u0325;
+$we > e\u0304;
+$wo > o\u0304;
+$wa > a;
+$wce > e\u0306;
+$wco > o\u0306;
+$wse > e;
+$wso > o;
+$om > ''om;
+$avagraha > \u0315;
+$chandrabindu$anusvara>\u0303;
+$chandrabindu > m\u0310;
+$visarga>h\u0323;
+$zero > 0;
+$one > 1;
+$two > 2;
+$three > 3;
+$four > 4;
+$five > 5;
+$six > 6;
+$seven > 7;
+$eight > 8;
+$nine > 9;
+$lm >;
+$ailm >;
+$aulm >;
+$dgs>Ê”;
+$kta>t\u0331;
+$danda>'.';
+$doubleDanda>'.';
+\uE070>; # ABBREVIATION SIGN
+\uE071}$x>ra;
+\uE071$virama>r;
+\uE071>ra;
+\uE072}$x>ra;
+\uE072$virama>r;
+\uE072>ra;
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
+\uE07C>; # TIPPI
+\uE07D>; # ADDAK
+\uE07E>; # IRI
+\uE07F>; # URA
+\uE080>; # EK ONKAR
+\uE004>; # DEVANAGARI VOWEL SIGN SHORT A
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Malayalam.txt
index cea620b5fa4..0557a7e7ab7 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Malayalam.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Malayalam.txt
@@ -1,143 +1,140 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Malayalam
-#:: NFD (NFC) ;
-\ue001>\u0d02; # REMAP (indicExceptions.txt): \u0d01>\u0d02 = SIGN CANDRABINDU>SIGN ANUSVARA
-\ue002>\u0d02; # SIGN ANUSVARA
-\ue003>\u0d03; # SIGN VISARGA
-\uE004>\u0d05; # FALLBACK TO LETTER A
-\ue005>\u0d05; # LETTER A
-\ue006>\u0d06; # LETTER AA
-\ue007>\u0d07; # LETTER I
-\ue008>\u0d08; # LETTER II
-\ue009>\u0d09; # LETTER U
-\ue00a>\u0d0a; # LETTER UU
-\ue00b>\u0d0b; # LETTER VOCALIC R
-\ue00c>\u0d0c; # LETTER VOCALIC L
-\ue00d>\u0d0e; # FALLLBACK LETTER E
-\ue00e>\u0d0e; # LETTER E
-\ue00f>\u0d0f; # LETTER EE
-\ue010>\u0d10; # LETTER AI
-\ue011>\u0d12; # FALLBACK TO O
-\ue012>\u0d12; # LETTER O
-\ue013>\u0d13; # LETTER OO
-\ue014>\u0d14; # LETTER AU
-\ue015>\u0d15; # LETTER KA
-\ue016>\u0d16; # LETTER KHA
-\ue017>\u0d17; # LETTER GA
-\ue018>\u0d18; # LETTER GHA
-\ue019>\u0d19; # LETTER NGA
-\ue01a>\u0d1a; # LETTER CA
-\ue01b>\u0d1b; # LETTER CHA
-\ue01c>\u0d1c; # LETTER JA
-\ue01d>\u0d1d; # LETTER JHA
-\ue01e>\u0d1e; # LETTER NYA
-\ue01f>\u0d1f; # LETTER TTA
-\ue020>\u0d20; # LETTER TTHA
-\ue021>\u0d21; # LETTER DDA
-\ue022>\u0d22; # LETTER DDHA
-\ue023>\u0d23; # LETTER NNA
-\ue024>\u0d24; # LETTER TA
-\ue025>\u0d25; # LETTER THA
-\ue026>\u0d26; # LETTER DA
-\ue027>\u0d27; # LETTER DHA
-\ue028>\u0d28; # LETTER NA
-\ue029>\u0d28; # REMAP (indicExceptions.txt): \u0d29>\u0d28 = LETTER NNNA>LETTER NA
-\ue02a>\u0d2a; # LETTER PA
-\ue02b>\u0d2b; # LETTER PHA
-\ue02c>\u0d2c; # LETTER BA
-\ue02d>\u0d2d; # LETTER BHA
-\ue02e>\u0d2e; # LETTER MA
-\ue02f>\u0d2f; # LETTER YA
-\ue030\ue03c>\u0d31;
-\ue030>\u0d30; # LETTER RA
-\ue031>\u0d31; # LETTER RRA
-\ue032>\u0d32; # LETTER LA
-\ue033\ue03c>\u0d34;
-\ue033>\u0d33; # LETTER LLA
-\ue034>\u0d34; # LETTER LLLA
-\ue035>\u0d35; # LETTER VA
-\ue036>\u0d36; # LETTER SHA
-\ue037>\u0d37; # LETTER SSA
-\ue038>\u0d38; # LETTER SA
-\ue039>\u0d39; # LETTER HA
-
-\ue03c>; # FALLBACK BLOW AWAY NUKTA
-\ue03d>; # FALLBACK BLOW AWAY AVAGRAHA
-
-\ue03e>\u0d3e; # VOWEL SIGN AA
-\ue03f>\u0d3f; # VOWEL SIGN I
-\ue040>\u0d40; # VOWEL SIGN II
-\ue041>\u0d41; # VOWEL SIGN U
-\ue042>\u0d42; # VOWEL SIGN UU
-\ue043>\u0d43; # VOWEL SIGN VOCALIC R
-\ue044>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC RR
-\ue045>\u0d3e; # REMAP (indicExceptions.txt): \u0d45>\u0d3e = VOWEL SIGN CANDRA E>VOWEL SIGN AA
-\ue046>\u0d46; # VOWEL SIGN E
-\ue047>\u0d47; # VOWEL SIGN EE
-\ue048>\u0d48; # VOWEL SIGN AI
-\ue049>\u0d4b; # REMAP (indicExceptions.txt): \u0d49>\u0d4b = VOWEL SIGN CANDRA O>VOWEL SIGN OO
-\ue04a>\u0d4a; # VOWEL SIGN O
-\ue04b>\u0d4b; # VOWEL SIGN OO
-\ue04c>\u0d4c; # VOWEL SIGN AU
-\ue04d>\u0d4d; # SIGN VIRAMA
-\ue050>\u0d13\u0d02; # UNMAPPED InterIndic-Malayalam: OM
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>; # FALLBACK BLOW AWAY LENGTH MARK
-\ue056>\u0d48; # REMAP (indicExceptions.txt): \u0d56>\u0d48 = AI LENGTH MARK>VOWEL SIGN AI
-\ue057>\u0d57; # AU LENGTH MARK
-\ue058>\u0d15; # FALLBACK
-\ue059>\u0d16; # REMAP (indicExceptions.txt): \u0d59>\u0d16 = LETTER KHHA>LETTER KHA
-\ue05a>\u0d17; # REMAP (indicExceptions.txt): \u0d5a>\u0d17 = LETTER GHHA>LETTER GA
-\ue05b>\u0d1c; # REMAP (indicExceptions.txt): \u0d5b>\u0d1c = LETTER ZA>LETTER JA
-\ue05d>\u0d22; # REMAP (indicExceptions.txt): \u0d5d>\u0d22 = LETTER RHA>LETTER DDHA
-\ue05c>\u0d21; # FALLBACK
-\ue05e>\u0d2b; # REMAP (indicExceptions.txt): \u0d5e>\u0d2b = LETTER FA>LETTER PHA
-\ue05f>\u0d2f; # REMAP (indicExceptions.txt): \u0d5f>\u0d2f = LETTER YYA>LETTER YA
-\ue060>\u0d60; # LETTER VOCALIC RR
-\ue061>\u0d61; # LETTER VOCALIC LL
-\ue062>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC L
-\ue063>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC LL
-\ue064>'.' ; # FALLBACK FOR DANDA
-\ue065>'.' ; # FALLBACK FOR DOUBLE DANDA
-\ue066>\u0d66; # DIGIT ZERO
-\ue067>\u0d67; # DIGIT ONE
-\ue068>\u0d68; # DIGIT TWO
-\ue069>\u0d69; # DIGIT THREE
-\ue06a>\u0d6a; # DIGIT FOUR
-\ue06b>\u0d6b; # DIGIT FIVE
-\ue06c>\u0d6c; # DIGIT SIX
-\ue06d>\u0d6d; # DIGIT SEVEN
-\ue06e>\u0d6e; # DIGIT EIGHT
-\ue06f>\u0d6f; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0d30; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0d30; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE001>à´‚; # REMAP (indicExceptions.txt): \u0D01>à´‚ = SIGN CANDRABINDU>SIGN ANUSVARA
+\uE002>à´‚; # SIGN ANUSVARA
+\uE003>à´ƒ; # SIGN VISARGA
+\uE004>à´…; # FALLBACK TO LETTER A
+\uE005>à´…; # LETTER A
+\uE006>à´†; # LETTER AA
+\uE007>à´‡; # LETTER I
+\uE008>à´ˆ; # LETTER II
+\uE009>à´‰; # LETTER U
+\uE00A>à´Š; # LETTER UU
+\uE00B>à´‹; # LETTER VOCALIC R
+\uE00C>ഌ; # LETTER VOCALIC L
+\uE00D>à´Ž; # FALLLBACK LETTER E
+\uE00E>à´Ž; # LETTER E
+\uE00F>à´; # LETTER EE
+\uE010>à´; # LETTER AI
+\uE011>à´’; # FALLBACK TO O
+\uE012>à´’; # LETTER O
+\uE013>à´“; # LETTER OO
+\uE014>à´”; # LETTER AU
+\uE015>à´•; # LETTER KA
+\uE016>à´–; # LETTER KHA
+\uE017>à´—; # LETTER GA
+\uE018>à´˜; # LETTER GHA
+\uE019>à´™; # LETTER NGA
+\uE01A>à´š; # LETTER CA
+\uE01B>à´›; # LETTER CHA
+\uE01C>ജ; # LETTER JA
+\uE01D>à´; # LETTER JHA
+\uE01E>à´ž; # LETTER NYA
+\uE01F>à´Ÿ; # LETTER TTA
+\uE020>à´ ; # LETTER TTHA
+\uE021>à´¡; # LETTER DDA
+\uE022>à´¢; # LETTER DDHA
+\uE023>à´£; # LETTER NNA
+\uE024>à´¤; # LETTER TA
+\uE025>à´¥; # LETTER THA
+\uE026>à´¦; # LETTER DA
+\uE027>à´§; # LETTER DHA
+\uE028>à´¨; # LETTER NA
+\uE029>à´¨; # REMAP (indicExceptions.txt): \u0D29>à´¨ = LETTER NNNA>LETTER NA
+\uE02A>à´ª; # LETTER PA
+\uE02B>à´«; # LETTER PHA
+\uE02C>à´¬; # LETTER BA
+\uE02D>à´­; # LETTER BHA
+\uE02E>à´®; # LETTER MA
+\uE02F>à´¯; # LETTER YA
+\uE030\uE03C>à´±;
+\uE030>à´°; # LETTER RA
+\uE031>à´±; # LETTER RRA
+\uE032>à´²; # LETTER LA
+\uE033\uE03C>à´´;
+\uE033>à´³; # LETTER LLA
+\uE034>à´´; # LETTER LLLA
+\uE035>à´µ; # LETTER VA
+\uE036>à´¶; # LETTER SHA
+\uE037>à´·; # LETTER SSA
+\uE038>à´¸; # LETTER SA
+\uE039>à´¹; # LETTER HA
+\uE03C>; # FALLBACK BLOW AWAY NUKTA
+\uE03D>; # FALLBACK BLOW AWAY AVAGRAHA
+\uE03E>à´¾; # VOWEL SIGN AA
+\uE03F>à´¿; # VOWEL SIGN I
+\uE040>ീ; # VOWEL SIGN II
+\uE041>\u0D41; # VOWEL SIGN U
+\uE042>\u0D42; # VOWEL SIGN UU
+\uE043>\u0D43; # VOWEL SIGN VOCALIC R
+\uE044>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC RR
+\uE045>à´¾; # REMAP (indicExceptions.txt): \u0D45>à´¾ = VOWEL SIGN CANDRA E>VOWEL SIGN AA
+\uE046>െ; # VOWEL SIGN E
+\uE047>േ; # VOWEL SIGN EE
+\uE048>ൈ; # VOWEL SIGN AI
+\uE049>ോ; # REMAP (indicExceptions.txt): \u0D49>ോ = VOWEL SIGN CANDRA O>VOWEL SIGN OO
+\uE04A>ൊ; # VOWEL SIGN O
+\uE04B>ോ; # VOWEL SIGN OO
+\uE04C>ൌ; # VOWEL SIGN AU
+\uE04D>\u0D4D; # SIGN VIRAMA
+\uE050>à´“à´‚; # UNMAPPED InterIndic-Malayalam: OM
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>; # FALLBACK BLOW AWAY LENGTH MARK
+\uE056>ൈ; # REMAP (indicExceptions.txt): \u0D56>ൈ = AI LENGTH MARK>VOWEL SIGN AI
+\uE057>ൗ; # AU LENGTH MARK
+\uE058>à´•; # FALLBACK
+\uE059>à´–; # REMAP (indicExceptions.txt): \u0D59>à´– = LETTER KHHA>LETTER KHA
+\uE05A>à´—; # REMAP (indicExceptions.txt): \u0D5A>à´— = LETTER GHHA>LETTER GA
+\uE05B>ജ; # REMAP (indicExceptions.txt): \u0D5B>ജ = LETTER ZA>LETTER JA
+\uE05D>à´¢; # REMAP (indicExceptions.txt): \u0D5D>à´¢ = LETTER RHA>LETTER DDHA
+\uE05C>à´¡; # FALLBACK
+\uE05E>à´«; # REMAP (indicExceptions.txt): \u0D5E>à´« = LETTER FA>LETTER PHA
+\uE05F>à´¯; # REMAP (indicExceptions.txt): \u0D5F>à´¯ = LETTER YYA>LETTER YA
+\uE060>ൠ; # LETTER VOCALIC RR
+\uE061>ൡ; # LETTER VOCALIC LL
+\uE062>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC L
+\uE063>; # FALLBACK BLOW AWAY VOWEL SIGN VOCALIC LL
+\uE064>'.' ; # FALLBACK FOR DANDA
+\uE065>'.' ; # FALLBACK FOR DOUBLE DANDA
+\uE066>൦; # DIGIT ZERO
+\uE067>൧; # DIGIT ONE
+\uE068>൨; # DIGIT TWO
+\uE069>൩; # DIGIT THREE
+\uE06A>൪; # DIGIT FOUR
+\uE06B>൫; # DIGIT FIVE
+\uE06C>൬; # DIGIT SIX
+\uE06D>൭; # DIGIT SEVEN
+\uE06E>൮; # DIGIT EIGHT
+\uE06F>൯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>à´°; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>à´°; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0d35; # FALLBACK FOR ORIYA LETTER WA
+\uE081>à´µ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0d24\u0d4d; # Bengali Khanda-ta
-0 > \u0d66; # FALLBACK FOR TAMIL
-1 > \u0d67;
-
-# :: NFC (NFD) ;
-# eof
+\uE083>à´¤\u0D4D; # Bengali Khanda-ta
+0 > ൦; # FALLBACK FOR TAMIL
+1 > ൧;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Oriya.txt
index 50f4509c3b0..0fd8f0f2f7c 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Oriya.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Oriya.txt
@@ -1,139 +1,138 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Oriya
-#:: NFD (NFC) ;
-\ue001>\u0b01; # SIGN CANDRABINDU
-\ue002>\u0b02; # SIGN ANUSVARA
-\ue003>\u0b03; # SIGN VISARGA
-\uE004>\u0b05; # FALLBACK TO LETTER A
-\ue005>\u0b05; # LETTER A
-\ue006>\u0b06; # LETTER AA
-\ue007>\u0b07; # LETTER I
-\ue008>\u0b08; # LETTER II
-\ue009>\u0b09; # LETTER U
-\ue00a>\u0b0a; # LETTER UU
-\ue00b>\u0b0b; # LETTER VOCALIC R
-\ue00c>\u0b0c; # LETTER VOCALIC L
-\ue00d>\u0b0f; # FALLBACK
-\ue00e>\u0b0f; # FALLBACK
-\ue00f>\u0b0f; # LETTER E
-\ue010>\u0b10; # LETTER AI
-\ue011>\u0b13; # FALLBACK
-\ue012>\u0b13; # FALLBACK
-\ue013>\u0b13; # FALLBACK LETTER OO (\u0b13 = LETTER O)
-\ue014>\u0b14; # LETTER AU
-\ue015>\u0b15; # LETTER KA
-\ue016>\u0b16; # LETTER KHA
-\ue017>\u0b17; # LETTER GA
-\ue018>\u0b18; # LETTER GHA
-\ue019>\u0b19; # LETTER NGA
-\ue01a>\u0b1a; # LETTER CA
-\ue01b>\u0b1b; # LETTER CHA
-\ue01c>\u0b1c; # LETTER JA
-\ue01d>\u0b1d; # LETTER JHA
-\ue01e>\u0b1e; # LETTER NYA
-\ue01f>\u0b1f; # LETTER TTA
-\ue020>\u0b20; # LETTER TTHA
-\ue021>\u0b21; # LETTER DDA
-\ue022>\u0b22; # LETTER DDHA
-\ue023>\u0b23; # LETTER NNA
-\ue024>\u0b24; # LETTER TA
-\ue025>\u0b25; # LETTER THA
-\ue026>\u0b26; # LETTER DA
-\ue027>\u0b27; # LETTER DHA
-\ue028>\u0b28; # LETTER NA
-\ue029>\u0b28\u0b3c; # FALLBACK \u0b29>\u0b28 = LETTER NNNA>LETTER NA
-\ue02a>\u0b2a; # LETTER PA
-\ue02b>\u0b2b; # LETTER PHA
-\ue02c>\u0b2c; # LETTER BA
-\ue02d>\u0b2d; # LETTER BHA
-\ue02e>\u0b2e; # LETTER MA
-\ue02f>\u0b2f; # LETTER YA
-\ue030>\u0b30; # LETTER RA
-\ue031>\u0b5c; # LETTER RRA
-\ue032>\u0b32; # LETTER LA
-\ue033>\u0b33; # LETTER LLA
-\ue034>\u0b33\u0b3c; # FALLBACK LETTER LLLA>LETTER LLA
-\ue035>\u0b35; # LETTER VA
-\ue036>\u0b36; # LETTER SHA
-\ue037>\u0b37; # LETTER SSA
-\ue038>\u0b38; # LETTER SA
-\ue039>\u0b39; # LETTER HA
-\ue03c>\u0b3c; # SIGN NUKTA
-\ue03d>\u0b3d; # SIGN AVAGRAHA
-\ue03e>\u0b3e; # VOWEL SIGN AA
-\ue03f>\u0b3f; # VOWEL SIGN I
-\ue040>\u0b40; # VOWEL SIGN II
-\ue041>\u0b41; # VOWEL SIGN U
-\ue042>\u0b42; # VOWEL SIGN UU
-\ue043>\u0b43; # VOWEL SIGN VOCALIC R
-\ue044>\u0b43\u0b3c; # FALLBACK \u0b44>\u0b43\u0b3c = VOWEL SIGN VOCALIC RR>VOWEL SIGN VOCALIC R.SIGN NUKTA
-\ue045>\u0b47; # FALLBACK
-\ue046>\u0b47; # FALLBACK
-\ue047>\u0b47; # VOWEL SIGN E
-\ue048>\u0b48; # VOWEL SIGN AI
-\ue049>\u0b4b; # FALLBACK
-\ue04a>\u0b4b; # FALLBACK
-\ue04b>\u0b4b; # VOWEL SIGN E
-\ue04c>\u0b4c; # VOWEL SIGN AU
-\ue04d>\u0b4d; # SIGN VIRAMA
-\ue050>\u0b13\u0b01; # FALLBACK \u0b50>\u0b13\u0b01 = OM>LETTER O.SIGN CANDRABINDU
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>; # UNMAPPED InterIndic-Oriya: LENGTH MARK
-\ue056>\u0b56; # AI LENGTH MARK
-\ue057>\u0b57; # AU LENGTH MARK
-\ue059>\u0b16\u0b3c; # FALLBACK \u0b59>\u0b16\u0b3c = LETTER KHHA>LETTER KHA.SIGN NUKTA
-\ue058>\u0b15\u0b3c; # FALLBACK
-\ue05a>\u0b17\u0b3c; # FALLBACK \u0b5a>\u0b17\u0b3c = LETTER GHHA>LETTER GA.SIGN NUKTA
-\ue05b>\u0b1c\u0b3c; # FALLBACK \u0b5b>\u0b1c\u0b3c = LETTER ZA>LETTER JA.SIGN NUKTA
-\ue05c>\u0b21\u0b3c; # FALLBACK
-\ue05d>\u0b5d; # LETTER RHA
-\ue05e>\u0b2b\u0b3c; # FALLBACK \u0b5e>\u0b2b\u0b3c = LETTER FA>LETTER PHA.SIGN NUKTA
-\ue05f>\u0b5f; # LETTER YYA
-\ue060>\u0b60; # LETTER VOCALIC RR
-\ue061>\u0b61; # LETTER VOCALIC LL
-\ue062>\u0b56\u0b3c; # FALLBACK \u0b62>\u0b56\u0b3c = VOWEL SIGN VOCALIC L>AI LENGTH MARK.SIGN NUKTA
-\ue063>\u0b57\u0b3c; # FALLBACK \u0b63>\u0b57\u0b3c = VOWEL SIGN VOCALIC LL>AU LENGTH MARK.SIGN NUKTA
-\uE064>\u0964; # DANDA
-\uE065>\u0965; # DOUBLE DANDA
-\ue066>\u0b66; # DIGIT ZERO
-\ue067>\u0b67; # DIGIT ONE
-\ue068>\u0b68; # DIGIT TWO
-\ue069>\u0b69; # DIGIT THREE
-\ue06a>\u0b6a; # DIGIT FOUR
-\ue06b>\u0b6b; # DIGIT FIVE
-\ue06c>\u0b6c; # DIGIT SIX
-\ue06d>\u0b6d; # DIGIT SEVEN
-\ue06e>\u0b6e; # DIGIT EIGHT
-\ue06f>\u0b6f; # DIGIT NINE
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0b30; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0b30; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>\u0B70; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE001>\u0B01; # SIGN CANDRABINDU
+\uE002>ଂ; # SIGN ANUSVARA
+\uE003>ଃ; # SIGN VISARGA
+\uE004>ଅ; # FALLBACK TO LETTER A
+\uE005>ଅ; # LETTER A
+\uE006>ଆ; # LETTER AA
+\uE007>ଇ; # LETTER I
+\uE008>ଈ; # LETTER II
+\uE009>ଉ; # LETTER U
+\uE00A>ଊ; # LETTER UU
+\uE00B>ଋ; # LETTER VOCALIC R
+\uE00C>ଌ; # LETTER VOCALIC L
+\uE00D>à¬; # FALLBACK
+\uE00E>à¬; # FALLBACK
+\uE00F>à¬; # LETTER E
+\uE010>à¬; # LETTER AI
+\uE011>ଓ; # FALLBACK
+\uE012>ଓ; # FALLBACK
+\uE013>ଓ; # FALLBACK LETTER OO (ଓ = LETTER O)
+\uE014>ଔ; # LETTER AU
+\uE015>କ; # LETTER KA
+\uE016>ଖ; # LETTER KHA
+\uE017>ଗ; # LETTER GA
+\uE018>ଘ; # LETTER GHA
+\uE019>ଙ; # LETTER NGA
+\uE01A>ଚ; # LETTER CA
+\uE01B>ଛ; # LETTER CHA
+\uE01C>ଜ; # LETTER JA
+\uE01D>à¬; # LETTER JHA
+\uE01E>ଞ; # LETTER NYA
+\uE01F>ଟ; # LETTER TTA
+\uE020>ଠ; # LETTER TTHA
+\uE021>ଡ; # LETTER DDA
+\uE022>ଢ; # LETTER DDHA
+\uE023>ଣ; # LETTER NNA
+\uE024>ତ; # LETTER TA
+\uE025>ଥ; # LETTER THA
+\uE026>ଦ; # LETTER DA
+\uE027>ଧ; # LETTER DHA
+\uE028>ନ; # LETTER NA
+\uE029>ନ\u0B3C; # FALLBACK \u0B29>ନ = LETTER NNNA>LETTER NA
+\uE02A>ପ; # LETTER PA
+\uE02B>ଫ; # LETTER PHA
+\uE02C>ବ; # LETTER BA
+\uE02D>ଭ; # LETTER BHA
+\uE02E>ମ; # LETTER MA
+\uE02F>ଯ; # LETTER YA
+\uE030>ର; # LETTER RA
+\uE031>ଡ଼; # LETTER RRA
+\uE032>ଲ; # LETTER LA
+\uE033>ଳ; # LETTER LLA
+\uE034>ଳ\u0B3C; # FALLBACK LETTER LLLA>LETTER LLA
+\uE035>ଵ; # LETTER VA
+\uE036>ଶ; # LETTER SHA
+\uE037>ଷ; # LETTER SSA
+\uE038>ସ; # LETTER SA
+\uE039>ହ; # LETTER HA
+\uE03C>\u0B3C; # SIGN NUKTA
+\uE03D>ଽ; # SIGN AVAGRAHA
+\uE03E>ା; # VOWEL SIGN AA
+\uE03F>\u0B3F; # VOWEL SIGN I
+\uE040>à­€; # VOWEL SIGN II
+\uE041>\u0B41; # VOWEL SIGN U
+\uE042>\u0B42; # VOWEL SIGN UU
+\uE043>\u0B43; # VOWEL SIGN VOCALIC R
+\uE044>\u0B43\u0B3C; # FALLBACK \u0B44>\u0B43\u0B3C = VOWEL SIGN VOCALIC RR>VOWEL SIGN VOCALIC R.SIGN NUKTA
+\uE045>à­‡; # FALLBACK
+\uE046>à­‡; # FALLBACK
+\uE047>à­‡; # VOWEL SIGN E
+\uE048>à­ˆ; # VOWEL SIGN AI
+\uE049>à­‹; # FALLBACK
+\uE04A>à­‹; # FALLBACK
+\uE04B>à­‹; # VOWEL SIGN E
+\uE04C>ୌ; # VOWEL SIGN AU
+\uE04D>\u0B4D; # SIGN VIRAMA
+\uE050>ଓ\u0B01; # FALLBACK \u0B50>ଓ\u0B01 = OM>LETTER O.SIGN CANDRABINDU
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>; # UNMAPPED InterIndic-Oriya: LENGTH MARK
+\uE056>\u0B56; # AI LENGTH MARK
+\uE057>à­—; # AU LENGTH MARK
+\uE059>ଖ\u0B3C; # FALLBACK \u0B59>ଖ\u0B3C = LETTER KHHA>LETTER KHA.SIGN NUKTA
+\uE058>କ\u0B3C; # FALLBACK
+\uE05A>ଗ\u0B3C; # FALLBACK \u0B5A>ଗ\u0B3C = LETTER GHHA>LETTER GA.SIGN NUKTA
+\uE05B>ଜ\u0B3C; # FALLBACK \u0B5B>ଜ\u0B3C = LETTER ZA>LETTER JA.SIGN NUKTA
+\uE05C>ଡ\u0B3C; # FALLBACK
+\uE05D>à­; # LETTER RHA
+\uE05E>ଫ\u0B3C; # FALLBACK \u0B5E>ଫ\u0B3C = LETTER FA>LETTER PHA.SIGN NUKTA
+\uE05F>à­Ÿ; # LETTER YYA
+\uE060>à­ ; # LETTER VOCALIC RR
+\uE061>à­¡; # LETTER VOCALIC LL
+\uE062>\u0B56\u0B3C; # FALLBACK \u0B62>\u0B56\u0B3C = VOWEL SIGN VOCALIC L>AI LENGTH MARK.SIGN NUKTA
+\uE063>à­—\u0B3C; # FALLBACK \u0B63>à­—\u0B3C = VOWEL SIGN VOCALIC LL>AU LENGTH MARK.SIGN NUKTA
+\uE064>।; # DANDA
+\uE065>॥; # DOUBLE DANDA
+\uE066>à­¦; # DIGIT ZERO
+\uE067>à­§; # DIGIT ONE
+\uE068>à­¨; # DIGIT TWO
+\uE069>à­©; # DIGIT THREE
+\uE06A>à­ª; # DIGIT FOUR
+\uE06B>à­«; # DIGIT FIVE
+\uE06C>à­¬; # DIGIT SIX
+\uE06D>à­­; # DIGIT SEVEN
+\uE06E>à­®; # DIGIT EIGHT
+\uE06F>à­¯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>ର; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>ର; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>à­°; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0B71; # LETTER WA
+\uE081>à­±; # LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0b24\u0b4d; # Bengali Khanda-ta
-0 > \u0b66; # FALLBACK FOR TAMIL
-1 > \u0b67;
-
-# :: NFC (NFD) ;
-# eof
+\uE083>ତ\u0B4D; # Bengali Khanda-ta
+0 > à­¦; # FALLBACK FOR TAMIL
+1 > à­§;
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Tamil.txt
index 9b39037b546..6a08581567c 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Tamil.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Tamil.txt
@@ -1,153 +1,145 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Tamil
-#:: NFD (NFC) ;
-\ue001>\u0b82; # FALLBACK SIGN CANDRABINDU
-\ue002>\u0b82; # SIGN ANUSVARA
-\ue003>\u0b83; # SIGN VISARGA
-\uE004>\u0b85; # FALLBACK TO LETTER A
-\ue005>\u0b85; # LETTER A
-\ue006>\u0b86; # LETTER AA
-\ue007>\u0b87; # LETTER I
-\ue008>\u0b88; # LETTER II
-\ue009>\u0b89; # LETTER U
-\ue00a>\u0b8a; # LETTER UU
-\ue00b>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0b8b>\u0bb0\u0bbf = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
-\ue00c>\u0bb2; # FALLBACK LETTER LA
-\ue00d>\u0b8f; # FALLBACK
-\ue00e>\u0b8e; # LETTER E
-\ue00f>\u0b8f; # LETTER EE
-\ue010>\u0b90; # LETTER AI
-\ue011>\u0b92; # FALLBACK
-\ue012>\u0b92; # LETTER O
-\ue013>\u0b93; # LETTER OO
-\ue014>\u0b94; # LETTER AU
-\ue015>\u0b95; # LETTER KA
-\ue016>\u0b95; # REMAP (indicExceptions.txt): \u0b96>\u0b95 = LETTER KHA>LETTER KA
-\ue017>\u0b95; # REMAP (indicExceptions.txt): \u0b97>\u0b95 = LETTER GA>LETTER KA
-\ue018>\u0b95; # REMAP (indicExceptions.txt): \u0b98>\u0b95 = LETTER GHA>LETTER KA
-\ue019>\u0b99; # LETTER NGA
-\ue01a>\u0b9a; # LETTER CA
-\ue01b>\u0b9a; # REMAP (indicExceptions.txt): \u0b9b>\u0b9a = LETTER CHA>LETTER CA
-\ue01c>\u0b9c; # LETTER JA
-\ue01d>\u0b9a; # REMAP (indicExceptions.txt): \u0b9d>\u0b9a = LETTER JHA>LETTER CA
-\ue01e>\u0b9e; # LETTER NYA
-\ue01f>\u0b9f; # LETTER TTA
-\ue020>\u0b9f; # REMAP (indicExceptions.txt): \u0ba0>\u0b9f = LETTER TTHA>LETTER TTA
-\ue021>\u0b9f; # REMAP (indicExceptions.txt): \u0ba1>\u0b9f = LETTER DDA>LETTER TTA
-\ue022>\u0b9f; # REMAP (indicExceptions.txt): \u0ba2>\u0b9f = LETTER DDHA>LETTER TTA
-\ue023>\u0ba3; # LETTER NNA
-\ue024>\u0ba4; # LETTER TA
-\ue025>\u0ba4; # REMAP (indicExceptions.txt): \u0ba5>\u0ba4 = LETTER THA>LETTER TA
-\ue026>\u0ba4; # REMAP (indicExceptions.txt): \u0ba6>\u0ba4 = LETTER DA>LETTER TA
-\ue027>\u0ba4; # REMAP (indicExceptions.txt): \u0ba7>\u0ba4 = LETTER DHA>LETTER TA
-\ue028\ue03c>\u0ba9;
-\ue028>\u0ba8; # LETTER NA
-\ue029>\u0ba9; # LETTER NNNA
-\ue02a>\u0baa; # LETTER PA
-\ue02b>\u0baa; # REMAP (indicExceptions.txt): \u0bab>\u0baa = LETTER PHA>LETTER PA
-\ue02c>\u0baa; # REMAP (indicExceptions.txt): \u0bac>\u0baa = LETTER BA>LETTER PA
-\ue02d>\u0baa; # REMAP (indicExceptions.txt): \u0bad>\u0baa = LETTER BHA>LETTER PA
-\ue02e>\u0bae; # LETTER MA
-\ue02f>\u0baf; # LETTER YA
-\ue030\ue03c>\u0bb1;
-\ue030>\u0bb0; # LETTER RA
-\ue031>\u0bb1; # LETTER RRA
-\ue032>\u0bb2; # LETTER LA
-\ue033\ue03c>\u0bb4;
-\ue033>\u0bb3; # LETTER LLA
-\ue034>\u0bb4; # LETTER LLLA
-\ue035>\u0bb5; # LETTER VA
-\ue036>\u0bb6; # REMAP (indicExceptions.txt): \u0bb6>\u0bb7 = LETTER SHA>LETTER SSA
-\ue037>\u0bb7; # LETTER SSA
-\ue038>\u0bb8; # LETTER SA
-\ue039>\u0bb9; # LETTER HA
-
-\ue03c>; # FALLBACK BLOW AWAY NUKTA
-\ue03d>; # FALLBACK BLOW AWAY AVAGRAHA
-
-\ue03e>\u0bbe; # VOWEL SIGN AA
-\ue03f>\u0bbf; # VOWEL SIGN I
-\ue040>\u0bc0; # VOWEL SIGN II
-\ue041>\u0bc1; # VOWEL SIGN U
-\ue042>\u0bc2; # VOWEL SIGN UU
-\ue043>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc3>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC R>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
-\ue044>\u0bcd\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0bc4>\u0bcd\u0bb0\u0bbf = VOWEL SIGN VOCALIC RR>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
-\ue045>\u0bbe; # REMAP (indicExceptions.txt): \u0bc5>\u0bbe = VOWEL SIGN CANDRA E>VOWEL SIGN AA
-\ue046>\u0bc6; # VOWEL SIGN E
-\ue047>\u0bc7; # VOWEL SIGN EE
-\ue048>\u0bc8; # VOWEL SIGN AI
-\ue049>\u0bbe; # REMAP (indicExceptions.txt): \u0bc9>\u0bbe = VOWEL SIGN CANDRA O>VOWEL SIGN AA
-\ue04a>\u0bca; # VOWEL SIGN O
-\ue04b>\u0bcb; # VOWEL SIGN OO
-\ue04c>\u0bcc; # VOWEL SIGN AU
-\ue04d>\u0bcd; # SIGN VIRAMA
-\ue050>\u0b93\u0bae\u0bcd; # REMAP (indicExceptions.txt): \u0bd0>\u0b93\u0bae\u0bcd = OM>LETTER OO.LETTER MA.SIGN VIRAMA
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>; # UNMAPPED InterIndic-Tamil: LENGTH MARK
-\ue056>\u0bc8; # REMAP (indicExceptions.txt): \u0bd6>\u0bc8 = AI LENGTH MARK>VOWEL SIGN AI
-\ue057>\u0bd7; # AU LENGTH MARK
-\ue058>\u0b95; # FALLBACK
-\ue059>\u0b95; # REMAP (indicExceptions.txt): \u0bd9>\u0b95 = LETTER KHHA>LETTER KA
-\ue05a>\u0b95; # REMAP (indicExceptions.txt): \u0bda>\u0b95 = LETTER GHHA>LETTER KA
-\ue05b>\u0b9c; # REMAP (indicExceptions.txt): \u0bdb>\u0b9c = LETTER ZA>LETTER JA
-\ue05c>\u0ba4; # FALLBACK
-\ue05d>\u0b9f; # REMAP (indicExceptions.txt): \u0bdd>\u0b9f = LETTER RHA>LETTER TTA
-\ue05e>\u0baa; # REMAP (indicExceptions.txt): \u0bde>\u0baa = LETTER FA>LETTER PA
-\ue05f>\u0baf; # REMAP (indicExceptions.txt): \u0bdf>\u0baf = LETTER YYA>LETTER YA
-\ue060>\u0bb0\u0bbf; # REMAP (indicExceptions.txt): \u0be0>\u0bb0\u0bbf = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
-\ue061>\u0bb3; # FALLBACK LETTER LLA
-\ue062>\u0bbf; # FALLBACK VOWEL SIGN VOCALIC L
-\ue063>\u0bc0; # FALLBACK VOWEL SIGN VOCALIC LL
-\ue064>'.' ; # FALLBACK FOR DANDA
-\ue065>'.' ; # FALLBACK FOR DOUBLE DANDA
-
-\ue066>\u0030; # FALLBACK DIGIT ZERO
-
-\ue067\ue066\ue066\ue066>\u0bF2;
-\ue067\ue066\ue066>\u0bf1;
-\ue067\ue066>\u0bF0;
-
-\ue067>\u0be7; # DIGIT ONE
-\ue068>\u0be8; # DIGIT TWO
-\ue069>\u0be9; # DIGIT THREE
-\ue06a>\u0bea; # DIGIT FOUR
-\ue06b>\u0beb; # DIGIT FIVE
-\ue06c>\u0bec; # DIGIT SIX
-\ue06d>\u0bed; # DIGIT SEVEN
-\ue06e>\u0bee; # DIGIT EIGHT
-\ue06f>\u0bef; # DIGIT NINE
-
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0bc0; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0bc0; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE001>\u0B82; # FALLBACK SIGN CANDRABINDU
+\uE002>\u0B82; # SIGN ANUSVARA
+\uE003>ஃ; # SIGN VISARGA
+\uE004>à®…; # FALLBACK TO LETTER A
+\uE005>à®…; # LETTER A
+\uE006>ஆ; # LETTER AA
+\uE007>இ; # LETTER I
+\uE008>ஈ; # LETTER II
+\uE009>உ; # LETTER U
+\uE00A>ஊ; # LETTER UU
+\uE00B>ரி; # REMAP (indicExceptions.txt): \u0B8B>ரி = LETTER VOCALIC R>LETTER RA.VOWEL SIGN I
+\uE00C>ல; # FALLBACK LETTER LA
+\uE00D>à®; # FALLBACK
+\uE00E>எ; # LETTER E
+\uE00F>à®; # LETTER EE
+\uE010>à®; # LETTER AI
+\uE011>à®’; # FALLBACK
+\uE012>à®’; # LETTER O
+\uE013>ஓ; # LETTER OO
+\uE014>à®”; # LETTER AU
+\uE015>க; # LETTER KA
+\uE016>க; # REMAP (indicExceptions.txt): \u0B96>க = LETTER KHA>LETTER KA
+\uE017>க; # REMAP (indicExceptions.txt): \u0B97>க = LETTER GA>LETTER KA
+\uE018>க; # REMAP (indicExceptions.txt): \u0B98>க = LETTER GHA>LETTER KA
+\uE019>à®™; # LETTER NGA
+\uE01A>ச; # LETTER CA
+\uE01B>ச; # REMAP (indicExceptions.txt): \u0B9B>ச = LETTER CHA>LETTER CA
+\uE01C>ஜ; # LETTER JA
+\uE01D>ச; # REMAP (indicExceptions.txt): \u0B9D>ச = LETTER JHA>LETTER CA
+\uE01E>ஞ; # LETTER NYA
+\uE01F>ட; # LETTER TTA
+\uE020>ட; # REMAP (indicExceptions.txt): \u0BA0>ட = LETTER TTHA>LETTER TTA
+\uE021>ட; # REMAP (indicExceptions.txt): \u0BA1>ட = LETTER DDA>LETTER TTA
+\uE022>ட; # REMAP (indicExceptions.txt): \u0BA2>ட = LETTER DDHA>LETTER TTA
+\uE023>ண; # LETTER NNA
+\uE024>த; # LETTER TA
+\uE025>த; # REMAP (indicExceptions.txt): \u0BA5>த = LETTER THA>LETTER TA
+\uE026>த; # REMAP (indicExceptions.txt): \u0BA6>த = LETTER DA>LETTER TA
+\uE027>த; # REMAP (indicExceptions.txt): \u0BA7>த = LETTER DHA>LETTER TA
+\uE028\uE03C>ன;
+\uE028>ந; # LETTER NA
+\uE029>ன; # LETTER NNNA
+\uE02A>ப; # LETTER PA
+\uE02B>ப; # REMAP (indicExceptions.txt): \u0BAB>ப = LETTER PHA>LETTER PA
+\uE02C>ப; # REMAP (indicExceptions.txt): \u0BAC>ப = LETTER BA>LETTER PA
+\uE02D>ப; # REMAP (indicExceptions.txt): \u0BAD>ப = LETTER BHA>LETTER PA
+\uE02E>à®®; # LETTER MA
+\uE02F>ய; # LETTER YA
+\uE030\uE03C>à®±;
+\uE030>à®°; # LETTER RA
+\uE031>à®±; # LETTER RRA
+\uE032>ல; # LETTER LA
+\uE033\uE03C>à®´;
+\uE033>ள; # LETTER LLA
+\uE034>à®´; # LETTER LLLA
+\uE035>வ; # LETTER VA
+\uE036>ஶ; # REMAP (indicExceptions.txt): ஶ>ஷ = LETTER SHA>LETTER SSA
+\uE037>à®·; # LETTER SSA
+\uE038>ஸ; # LETTER SA
+\uE039>ஹ; # LETTER HA
+\uE03C>; # FALLBACK BLOW AWAY NUKTA
+\uE03D>; # FALLBACK BLOW AWAY AVAGRAHA
+\uE03E>ா; # VOWEL SIGN AA
+\uE03F>ி; # VOWEL SIGN I
+\uE040>\u0BC0; # VOWEL SIGN II
+\uE041>à¯; # VOWEL SIGN U
+\uE042>ூ; # VOWEL SIGN UU
+\uE043>\u0BCDரி; # REMAP (indicExceptions.txt): \u0BC3>\u0BCDரி = VOWEL SIGN VOCALIC R>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
+\uE044>\u0BCDரி; # REMAP (indicExceptions.txt): \u0BC4>\u0BCDரி = VOWEL SIGN VOCALIC RR>SIGN VIRAMA.LETTER RA.VOWEL SIGN I
+\uE045>ா; # REMAP (indicExceptions.txt): \u0BC5>ா = VOWEL SIGN CANDRA E>VOWEL SIGN AA
+\uE046>ெ; # VOWEL SIGN E
+\uE047>ே; # VOWEL SIGN EE
+\uE048>ை; # VOWEL SIGN AI
+\uE049>ா; # REMAP (indicExceptions.txt): \u0BC9>ா = VOWEL SIGN CANDRA O>VOWEL SIGN AA
+\uE04A>ொ; # VOWEL SIGN O
+\uE04B>ோ; # VOWEL SIGN OO
+\uE04C>ௌ; # VOWEL SIGN AU
+\uE04D>\u0BCD; # SIGN VIRAMA
+\uE050>ஓம\u0BCD; # REMAP (indicExceptions.txt): \u0BD0>ஓம\u0BCD = OM>LETTER OO.LETTER MA.SIGN VIRAMA
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>; # UNMAPPED InterIndic-Tamil: LENGTH MARK
+\uE056>ை; # REMAP (indicExceptions.txt): \u0BD6>ை = AI LENGTH MARK>VOWEL SIGN AI
+\uE057>ௗ; # AU LENGTH MARK
+\uE058>க; # FALLBACK
+\uE059>க; # REMAP (indicExceptions.txt): \u0BD9>க = LETTER KHHA>LETTER KA
+\uE05A>க; # REMAP (indicExceptions.txt): \u0BDA>க = LETTER GHHA>LETTER KA
+\uE05B>ஜ; # REMAP (indicExceptions.txt): \u0BDB>ஜ = LETTER ZA>LETTER JA
+\uE05C>த; # FALLBACK
+\uE05D>ட; # REMAP (indicExceptions.txt): \u0BDD>ட = LETTER RHA>LETTER TTA
+\uE05E>ப; # REMAP (indicExceptions.txt): \u0BDE>ப = LETTER FA>LETTER PA
+\uE05F>ய; # REMAP (indicExceptions.txt): \u0BDF>ய = LETTER YYA>LETTER YA
+\uE060>ரி; # REMAP (indicExceptions.txt): \u0BE0>ரி = LETTER VOCALIC RR>LETTER RA.VOWEL SIGN I
+\uE061>ள; # FALLBACK LETTER LLA
+\uE062>ி; # FALLBACK VOWEL SIGN VOCALIC L
+\uE063>\u0BC0; # FALLBACK VOWEL SIGN VOCALIC LL
+\uE064>'.' ; # FALLBACK FOR DANDA
+\uE065>'.' ; # FALLBACK FOR DOUBLE DANDA
+\uE066>\u0030; # FALLBACK DIGIT ZERO
+\uE067\uE066\uE066\uE066>௲;
+\uE067\uE066\uE066>௱;
+\uE067\uE066>௰;
+\uE067>௧; # DIGIT ONE
+\uE068>௨; # DIGIT TWO
+\uE069>௩; # DIGIT THREE
+\uE06A>௪; # DIGIT FOUR
+\uE06B>௫; # DIGIT FIVE
+\uE06C>௬; # DIGIT SIX
+\uE06D>௭; # DIGIT SEVEN
+\uE06E>௮; # DIGIT EIGHT
+\uE06F>௯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>\u0BC0; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>\u0BC0; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0bb5; # FALLBACK FOR ORIYA LETTER WA
+\uE081>வ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0ba4\u0bcd; # Bengali Khanda-ta
-
-1000 >\u0BF2; # NUMBER ONE THOUSAND
-100 >\u0BF1; # NUMBER ONE HUNDRED
-10 >\u0BF0; # NUMBER TEN
-
-# :: NFC (NFD) ;
-# eof
+\uE083>த\u0BCD; # Bengali Khanda-ta
+1000 >௲; # NUMBER ONE THOUSAND
+100 >௱; # NUMBER ONE HUNDRED
+10 >௰; # NUMBER TEN
diff --git a/Build/source/libs/icu-xetex/data/translit/InterIndic_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/InterIndic_Telugu.txt
index 943a23a1e5f..3819b011eaa 100644
--- a/Build/source/libs/icu-xetex/data/translit/InterIndic_Telugu.txt
+++ b/Build/source/libs/icu-xetex/data/translit/InterIndic_Telugu.txt
@@ -1,143 +1,139 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# InterIndic-Telugu
-#:: NFD (NFC) ;
-\ue001>\u0c01; # SIGN CANDRABINDU
-\ue002>\u0c02; # SIGN ANUSVARA
-\ue003>\u0c03; # SIGN VISARGA
-\uE004>\u0c05; # FALLBACK TO LETTER A
-\ue005>\u0c05; # LETTER A
-\ue006>\u0c06; # LETTER AA
-\ue007>\u0c07; # LETTER I
-\ue008>\u0c08; # LETTER II
-\ue009>\u0c09; # LETTER U
-\ue00a>\u0c0a; # LETTER UU
-\ue00b>\u0c0b; # LETTER VOCALIC R
-\ue00c>\u0c0c; # LETTER VOCALIC L
-\ue00d>\u0c0E; # FALLBACK MAPPING
-\ue00e>\u0c0E; # LETTER E
-\ue00f>\u0c0f; # LETTER EE
-\ue010>\u0c10; # LETTER AI
-\ue011>\u0c12; # FALBACK MAPPING
-\ue012>\u0c12; # LETTER O
-\ue013>\u0c13; # LETTER OO
-\ue014>\u0c14; # LETTER AU
-\ue015>\u0c15; # LETTER KA
-\ue016>\u0c16; # LETTER KHA
-\ue017>\u0c17; # LETTER GA
-\ue018>\u0c18; # LETTER GHA
-\ue019>\u0c19; # LETTER NGA
-\ue01a>\u0c1a; # LETTER CA
-\ue01b>\u0c1b; # LETTER CHA
-\ue01c>\u0c1c; # LETTER JA
-\ue01d>\u0c1d; # LETTER JHA
-\ue01e>\u0c1e; # LETTER NYA
-\ue01f>\u0c1f; # LETTER TTA
-\ue020>\u0c20; # LETTER TTHA
-\ue021>\u0c21; # LETTER DDA
-\ue022>\u0c22; # LETTER DDHA
-\ue023>\u0c23; # LETTER NNA
-\ue024>\u0c24; # LETTER TA
-\ue025>\u0c25; # LETTER THA
-\ue026>\u0c26; # LETTER DA
-\ue027>\u0c27; # LETTER DHA
-\ue028>\u0c28; # LETTER NA
-\ue029>\u0c28; # REMAP (indicExceptions.txt): \u0c29>\u0c28 = LETTER NNNA>LETTER NA
-\ue02a>\u0c2a; # LETTER PA
-\ue02b>\u0c2b; # LETTER PHA
-\ue02c>\u0c2c; # LETTER BA
-\ue02d>\u0c2d; # LETTER BHA
-\ue02e>\u0c2e; # LETTER MA
-\ue02f>\u0c2f; # LETTER YA
-\ue030\ue03c>\u0c31;
-\ue030>\u0c30; # LETTER RA
-\ue031>\u0c31; # LETTER RRA
-\ue032>\u0c32; # LETTER LA
-\ue033>\u0c33; # LETTER LLA
-\ue034>\u0c33; # REMAP (indicExceptions.txt): \u0c34>\u0c33 = LETTER LLLA>LETTER LLA
-\ue035>\u0c35; # LETTER VA
-\ue036>\u0c36; # LETTER SHA
-\ue037>\u0c37; # LETTER SSA
-\ue038>\u0c38; # LETTER SA
-\ue039>\u0c39; # LETTER HA
-
-\ue03c>; # FALLBACK BLOW AWAY NUKTA
-\ue03d>; # FALLBACK BLOW AWAY AVAGRAHA
-
-\ue03e>\u0c3e; # VOWEL SIGN AA
-\ue03f>\u0c3f; # VOWEL SIGN I
-\ue040>\u0c40; # VOWEL SIGN II
-\ue041>\u0c41; # VOWEL SIGN U
-\ue042>\u0c42; # VOWEL SIGN UU
-\ue043>\u0c43; # VOWEL SIGN VOCALIC R
-\ue044>\u0c44; # VOWEL SIGN VOCALIC RR
-\ue045>\u0c46; # VOWEL SIGN CANDRA E>VOWEL SIGN E
-\ue046>\u0c46; # VOWEL SIGN E
-\ue047>\u0c47; # VOWEL SIGN EE
-\ue048>\u0c48; # VOWEL SIGN AI
-\ue049>\u0c4a; # REMAP (indicExceptions.txt): \u0c49>\u0c4a = VOWEL SIGN CANDRA O>VOWEL SIGN O
-\ue04a>\u0c4a; # VOWEL SIGN O
-\ue04b>\u0c4b; # VOWEL SIGN OO
-\ue04c>\u0c4c; # VOWEL SIGN AU
-\ue04d>\u0c4d; # SIGN VIRAMA
-\ue050>\u0c13\u0c02; # REMAP (indicExceptions.txt): \u0c50>\u0c13\u0c02 = OM>LETTER OO.SIGN ANUSVARA
-\ue051>;
-\ue052>;
-\ue053>;
-\ue054>;
-\ue055>\u0c55; # LENGTH MARK
-\ue056>\u0c56; # AI LENGTH MARK
-\ue057>\u0c4c; # REMAP (indicExceptions.txt): \u0c57>\u0c4c = AU LENGTH MARK>VOWEL SIGN AU
-\ue058>\u0c15; # REMAP
-\ue059>\u0c16; # REMAP (indicExceptions.txt): \u0c59>\u0c16 = LETTER KHHA>LETTER KHA
-\ue05a>\u0c17; # REMAP (indicExceptions.txt): \u0c5a>\u0c17 = LETTER GHHA>LETTER GA
-\ue05b>\u0c1c; # REMAP (indicExceptions.txt): \u0c5b>\u0c1c = LETTER ZA>LETTER JA
-\ue05c>\u0c22; # REMAP
-\ue05d>\u0c22; # REMAP (indicExceptions.txt): \u0c5d>\u0c22 = LETTER RHA>LETTER DDHA
-\ue05e>\u0c2b; # REMAP (indicExceptions.txt): \u0c5e>\u0c2b = LETTER FA>LETTER PHA
-\ue05f>\u0c2f; # REMAP (indicExceptions.txt): \u0c5f>\u0c2f = LETTER YYA>LETTER YA
-\ue060>\u0c60; # LETTER VOCALIC RR
-\ue061>\u0c61; # LETTER VOCALIC LL
-\ue062>\u0c3f; # REMAP (indicExceptions.txt): \u0c62>\u0c3f = VOWEL SIGN VOCALIC L>VOWEL SIGN I
-\ue063>\u0c40; # REMAP (indicExceptions.txt): \u0c63>\u0c40 = VOWEL SIGN VOCALIC LL>VOWEL SIGN II
-\ue064>'.' ; # FALLBACK FOR DANDA
-\ue065>'.' ; # FALLBACK FOR DOUBLE DANDA
-\ue066>\u0c66; # DIGIT ZERO
-\ue067>\u0c67; # DIGIT ONE
-\ue068>\u0c68; # DIGIT TWO
-\ue069>\u0c69; # DIGIT THREE
-\ue06a>\u0c6a; # DIGIT FOUR
-\ue06b>\u0c6b; # DIGIT FIVE
-\ue06c>\u0c6c; # DIGIT SIX
-\ue06d>\u0c6d; # DIGIT SEVEN
-\ue06e>\u0c6e; # DIGIT EIGHT
-\ue06f>\u0c6f; # DIGIT NINE
-
-\ue070>; # ABBREVIATION SIGN
-\ue071>\u0c30; # LETTER RA WITH MIDDLE DIAGONAL
-\ue072>\u0c30; # LETTER RA WITH LOWER DIAGONAL
-\ue073>; # RUPEE MARK
-\ue074>; # RUPEE SIGN
-\ue075>; # CURRENCY NUMERATOR ONE
-\ue076>; # CURRENCY NUMERATOR TWO
-\ue077>; # CURRENCY NUMERATOR THREE
-\ue078>; # CURRENCY NUMERATOR FOUR
-\ue079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-\ue07A>; # CURRENCY DENOMINATOR SIXTEEN
-\ue07B>; # ISSHAR
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: InterIndic_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\uE001>à°; # SIGN CANDRABINDU
+\uE002>à°‚; # SIGN ANUSVARA
+\uE003>à°ƒ; # SIGN VISARGA
+\uE004>à°…; # FALLBACK TO LETTER A
+\uE005>à°…; # LETTER A
+\uE006>à°†; # LETTER AA
+\uE007>à°‡; # LETTER I
+\uE008>à°ˆ; # LETTER II
+\uE009>à°‰; # LETTER U
+\uE00A>à°Š; # LETTER UU
+\uE00B>à°‹; # LETTER VOCALIC R
+\uE00C>ఌ; # LETTER VOCALIC L
+\uE00D>à°Ž; # FALLBACK MAPPING
+\uE00E>à°Ž; # LETTER E
+\uE00F>à°; # LETTER EE
+\uE010>à°; # LETTER AI
+\uE011>à°’; # FALBACK MAPPING
+\uE012>à°’; # LETTER O
+\uE013>à°“; # LETTER OO
+\uE014>à°”; # LETTER AU
+\uE015>à°•; # LETTER KA
+\uE016>à°–; # LETTER KHA
+\uE017>à°—; # LETTER GA
+\uE018>à°˜; # LETTER GHA
+\uE019>à°™; # LETTER NGA
+\uE01A>à°š; # LETTER CA
+\uE01B>à°›; # LETTER CHA
+\uE01C>జ; # LETTER JA
+\uE01D>à°; # LETTER JHA
+\uE01E>à°ž; # LETTER NYA
+\uE01F>à°Ÿ; # LETTER TTA
+\uE020>à° ; # LETTER TTHA
+\uE021>à°¡; # LETTER DDA
+\uE022>à°¢; # LETTER DDHA
+\uE023>à°£; # LETTER NNA
+\uE024>à°¤; # LETTER TA
+\uE025>à°¥; # LETTER THA
+\uE026>à°¦; # LETTER DA
+\uE027>à°§; # LETTER DHA
+\uE028>à°¨; # LETTER NA
+\uE029>à°¨; # REMAP (indicExceptions.txt): \u0C29>à°¨ = LETTER NNNA>LETTER NA
+\uE02A>à°ª; # LETTER PA
+\uE02B>à°«; # LETTER PHA
+\uE02C>à°¬; # LETTER BA
+\uE02D>à°­; # LETTER BHA
+\uE02E>à°®; # LETTER MA
+\uE02F>à°¯; # LETTER YA
+\uE030\uE03C>à°±;
+\uE030>à°°; # LETTER RA
+\uE031>à°±; # LETTER RRA
+\uE032>à°²; # LETTER LA
+\uE033>à°³; # LETTER LLA
+\uE034>à°³; # REMAP (indicExceptions.txt): \u0C34>à°³ = LETTER LLLA>LETTER LLA
+\uE035>à°µ; # LETTER VA
+\uE036>à°¶; # LETTER SHA
+\uE037>à°·; # LETTER SSA
+\uE038>à°¸; # LETTER SA
+\uE039>à°¹; # LETTER HA
+\uE03C>; # FALLBACK BLOW AWAY NUKTA
+\uE03D>; # FALLBACK BLOW AWAY AVAGRAHA
+\uE03E>\u0C3E; # VOWEL SIGN AA
+\uE03F>\u0C3F; # VOWEL SIGN I
+\uE040>\u0C40; # VOWEL SIGN II
+\uE041>à±; # VOWEL SIGN U
+\uE042>ూ; # VOWEL SIGN UU
+\uE043>ృ; # VOWEL SIGN VOCALIC R
+\uE044>ౄ; # VOWEL SIGN VOCALIC RR
+\uE045>\u0C46; # VOWEL SIGN CANDRA E>VOWEL SIGN E
+\uE046>\u0C46; # VOWEL SIGN E
+\uE047>\u0C47; # VOWEL SIGN EE
+\uE048>\u0C48; # VOWEL SIGN AI
+\uE049>\u0C4A; # REMAP (indicExceptions.txt): \u0C49>\u0C4A = VOWEL SIGN CANDRA O>VOWEL SIGN O
+\uE04A>\u0C4A; # VOWEL SIGN O
+\uE04B>\u0C4B; # VOWEL SIGN OO
+\uE04C>\u0C4C; # VOWEL SIGN AU
+\uE04D>\u0C4D; # SIGN VIRAMA
+\uE050>à°“à°‚; # REMAP (indicExceptions.txt): \u0C50>à°“à°‚ = OM>LETTER OO.SIGN ANUSVARA
+\uE051>;
+\uE052>;
+\uE053>;
+\uE054>;
+\uE055>\u0C55; # LENGTH MARK
+\uE056>\u0C56; # AI LENGTH MARK
+\uE057>\u0C4C; # REMAP (indicExceptions.txt): \u0C57>\u0C4C = AU LENGTH MARK>VOWEL SIGN AU
+\uE058>à°•; # REMAP
+\uE059>à°–; # REMAP (indicExceptions.txt): \u0C59>à°– = LETTER KHHA>LETTER KHA
+\uE05A>à°—; # REMAP (indicExceptions.txt): \u0C5A>à°— = LETTER GHHA>LETTER GA
+\uE05B>జ; # REMAP (indicExceptions.txt): \u0C5B>జ = LETTER ZA>LETTER JA
+\uE05C>à°¢; # REMAP
+\uE05D>à°¢; # REMAP (indicExceptions.txt): \u0C5D>à°¢ = LETTER RHA>LETTER DDHA
+\uE05E>à°«; # REMAP (indicExceptions.txt): \u0C5E>à°« = LETTER FA>LETTER PHA
+\uE05F>à°¯; # REMAP (indicExceptions.txt): \u0C5F>à°¯ = LETTER YYA>LETTER YA
+\uE060>à± ; # LETTER VOCALIC RR
+\uE061>ౡ; # LETTER VOCALIC LL
+\uE062>\u0C3F; # REMAP (indicExceptions.txt): \u0C62>\u0C3F = VOWEL SIGN VOCALIC L>VOWEL SIGN I
+\uE063>\u0C40; # REMAP (indicExceptions.txt): \u0C63>\u0C40 = VOWEL SIGN VOCALIC LL>VOWEL SIGN II
+\uE064>'.' ; # FALLBACK FOR DANDA
+\uE065>'.' ; # FALLBACK FOR DOUBLE DANDA
+\uE066>౦; # DIGIT ZERO
+\uE067>౧; # DIGIT ONE
+\uE068>౨; # DIGIT TWO
+\uE069>౩; # DIGIT THREE
+\uE06A>౪; # DIGIT FOUR
+\uE06B>౫; # DIGIT FIVE
+\uE06C>౬; # DIGIT SIX
+\uE06D>à±­; # DIGIT SEVEN
+\uE06E>à±®; # DIGIT EIGHT
+\uE06F>౯; # DIGIT NINE
+\uE070>; # ABBREVIATION SIGN
+\uE071>à°°; # LETTER RA WITH MIDDLE DIAGONAL
+\uE072>à°°; # LETTER RA WITH LOWER DIAGONAL
+\uE073>; # RUPEE MARK
+\uE074>; # RUPEE SIGN
+\uE075>; # CURRENCY NUMERATOR ONE
+\uE076>; # CURRENCY NUMERATOR TWO
+\uE077>; # CURRENCY NUMERATOR THREE
+\uE078>; # CURRENCY NUMERATOR FOUR
+\uE079>; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\uE07A>; # CURRENCY DENOMINATOR SIXTEEN
+\uE07B>; # ISSHAR
\uE07C>; # TIPPI
\uE07D>; # ADDAK
\uE07E>; # IRI
\uE07F>; # URA
\uE080>; # EK ONKAR
-\uE081>\u0c35; # FALLBACK FOR ORIYA LETTER WA
+\uE081>à°µ; # FALLBACK FOR ORIYA LETTER WA
\uE082>; # Devanagari Glottal Stop
-\uE083>\u0c24\u0c4d; # Bengali Khanda-ta
-0 > \u0c66; # FALLBACK FOR TAMIL
-1 > \u0c67;
-
-# :: NFC (NFD) ;
-# eof
+\uE083>à°¤\u0C4D; # Bengali Khanda-ta
+0 > ౦; # FALLBACK FOR TAMIL
+1 > ౧;
diff --git a/Build/source/libs/icu-xetex/data/translit/Jamo_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Jamo_Latin.txt
new file mode 100644
index 00000000000..c0dfd589634
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Jamo_Latin.txt
@@ -0,0 +1,13 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Jamo_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::['ᄀ-하-ᅵᆨ-ᇂ가-힣];
+::NFD;
+::ConjoiningJamo-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Bengali.txt
new file mode 100644
index 00000000000..11e38a72108
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Devanagari.txt
new file mode 100644
index 00000000000..04053e28d97
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Gujarati.txt
new file mode 100644
index 00000000000..6baf8dc7f83
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Gurmukhi.txt
new file mode 100644
index 00000000000..61edf3e65fd
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_InterIndic.txt
index bc42c7caeac..198e955d430 100644
--- a/Build/source/libs/icu-xetex/data/translit/Kannada_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_InterIndic.txt
@@ -1,92 +1,92 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Kannada-InterIndic
-\u0CC6\u0CD5>\uE047; # VOWEL SIGN EE
-\u0CC6\u0CCD\u0CD6>\uE048\ue04d; # VOWEL SIGN AI
-\u0CC6\u0CD6>\uE048; # VOWEL SIGN AI
-\u0CC6\u0CC2\u0CD5>\uE04B; # VOWEL SIGN OO
-\u0CC6\u0CC2>\uE04A; # VOWEL SIGN O
-\u0CBF\u0CD5>\uE040; # VOWEL SIGN II
-
-\u0C82>\uE002; # SIGN ANUSVARA
-\u0C83>\uE003; # SIGN VISARGA
-\u0C85>\uE005; # LETTER A
-\u0C86>\uE006; # LETTER AA
-\u0C87>\uE007; # LETTER I
-\u0C88>\uE008; # LETTER II
-\u0C89>\uE009; # LETTER U
-\u0C8A>\uE00A; # LETTER UU
-\u0C8B>\uE00B; # LETTER VOCALIC R
-\u0C8C>\uE00C; # LETTER VOCALIC L
-\u0C8E>\uE00E; # LETTER E
-\u0C8F>\uE00F; # LETTER EE
-\u0C90>\uE010; # LETTER AI
-\u0C92>\uE012; # LETTER O
-\u0C93>\uE013; # LETTER OO
-\u0C94>\uE014; # LETTER AU
-\u0C95>\uE015; # LETTER KA
-\u0C96>\uE016; # LETTER KHA
-\u0C97>\uE017; # LETTER GA
-\u0C98>\uE018; # LETTER GHA
-\u0C99>\uE019; # LETTER NGA
-\u0C9A>\uE01A; # LETTER CA
-\u0C9B>\uE01B; # LETTER CHA
-\u0C9C>\uE01C; # LETTER JA
-\u0C9D>\uE01D; # LETTER JHA
-\u0C9E>\uE01E; # LETTER NYA
-\u0C9F>\uE01F; # LETTER TTA
-\u0CA0>\uE020; # LETTER TTHA
-\u0CA1>\uE021; # LETTER DDA
-\u0CA2>\uE022; # LETTER DDHA
-\u0CA3>\uE023; # LETTER NNA
-\u0CA4>\uE024; # LETTER TA
-\u0CA5>\uE025; # LETTER THA
-\u0CA6>\uE026; # LETTER DA
-\u0CA7>\uE027; # LETTER DHA
-\u0CA8>\uE028; # LETTER NA
-\u0CAA>\uE02A; # LETTER PA
-\u0CAB>\uE02B; # LETTER PHA
-\u0CAC>\uE02C; # LETTER BA
-\u0CAD>\uE02D; # LETTER BHA
-\u0CAE>\uE02E; # LETTER MA
-\u0CAF>\uE02F; # LETTER YA
-\u0CB0>\uE030; # LETTER RA
-\u0CB1>\uE031; # LETTER RRA
-\u0CB2>\uE032; # LETTER LA
-\u0CB3>\uE033; # LETTER LLA
-\u0CB5>\uE035; # LETTER VA
-\u0CB6>\uE036; # LETTER SHA
-\u0CB7>\uE037; # LETTER SSA
-\u0CB8>\uE038; # LETTER SA
-\u0CB9>\uE039; # LETTER HA
-\u0CBC>\uE03C; # SIGN NUKTA
-\u0CBD>\uE03D; # AVAGRAHA
-\u0CBE>\uE03E; # VOWEL SIGN AA
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+\u0CC6ೕ>\uE047; # VOWEL SIGN EE
+\u0CC6\u0CCDà³–>\uE048\uE04D; # VOWEL SIGN AI
+\u0CC6à³–>\uE048; # VOWEL SIGN AI
+\u0CC6ೂೕ>\uE04B; # VOWEL SIGN OO
+\u0CC6ೂ>\uE04A; # VOWEL SIGN O
+\u0CBFೕ>\uE040; # VOWEL SIGN II
+ಂ>\uE002; # SIGN ANUSVARA
+ಃ>\uE003; # SIGN VISARGA
+ಅ>\uE005; # LETTER A
+ಆ>\uE006; # LETTER AA
+ಇ>\uE007; # LETTER I
+ಈ>\uE008; # LETTER II
+ಉ>\uE009; # LETTER U
+ಊ>\uE00A; # LETTER UU
+ಋ>\uE00B; # LETTER VOCALIC R
+ಌ>\uE00C; # LETTER VOCALIC L
+ಎ>\uE00E; # LETTER E
+à²>\uE00F; # LETTER EE
+à²>\uE010; # LETTER AI
+ಒ>\uE012; # LETTER O
+ಓ>\uE013; # LETTER OO
+ಔ>\uE014; # LETTER AU
+ಕ>\uE015; # LETTER KA
+ಖ>\uE016; # LETTER KHA
+ಗ>\uE017; # LETTER GA
+ಘ>\uE018; # LETTER GHA
+ಙ>\uE019; # LETTER NGA
+ಚ>\uE01A; # LETTER CA
+ಛ>\uE01B; # LETTER CHA
+ಜ>\uE01C; # LETTER JA
+à²>\uE01D; # LETTER JHA
+ಞ>\uE01E; # LETTER NYA
+ಟ>\uE01F; # LETTER TTA
+ಠ>\uE020; # LETTER TTHA
+ಡ>\uE021; # LETTER DDA
+ಢ>\uE022; # LETTER DDHA
+ಣ>\uE023; # LETTER NNA
+ತ>\uE024; # LETTER TA
+ಥ>\uE025; # LETTER THA
+ದ>\uE026; # LETTER DA
+ಧ>\uE027; # LETTER DHA
+ನ>\uE028; # LETTER NA
+ಪ>\uE02A; # LETTER PA
+ಫ>\uE02B; # LETTER PHA
+ಬ>\uE02C; # LETTER BA
+ಭ>\uE02D; # LETTER BHA
+ಮ>\uE02E; # LETTER MA
+ಯ>\uE02F; # LETTER YA
+ರ>\uE030; # LETTER RA
+ಱ>\uE031; # LETTER RRA
+ಲ>\uE032; # LETTER LA
+ಳ>\uE033; # LETTER LLA
+ವ>\uE035; # LETTER VA
+ಶ>\uE036; # LETTER SHA
+ಷ>\uE037; # LETTER SSA
+ಸ>\uE038; # LETTER SA
+ಹ>\uE039; # LETTER HA
+\u0CBC>\uE03C; # SIGN NUKTA
+ಽ>\uE03D; # AVAGRAHA
+ಾ>\uE03E; # VOWEL SIGN AA
\u0CBF>\uE03F; # VOWEL SIGN I
-\u0CC1>\uE041; # VOWEL SIGN U
-\u0CC2>\uE042; # VOWEL SIGN UU
-\u0CC3>\uE043; # VOWEL SIGN VOCALIC R
-\u0CC4>\uE044; # VOWEL SIGN VOCALIC RR
+à³>\uE041; # VOWEL SIGN U
+ೂ>\uE042; # VOWEL SIGN UU
+ೃ>\uE043; # VOWEL SIGN VOCALIC R
+ೄ>\uE044; # VOWEL SIGN VOCALIC RR
\u0CC6>\uE046; # VOWEL SIGN E
\u0CCC>\uE04C; # VOWEL SIGN AU
\u0CCD>\uE04D; # SIGN VIRAMA
-\u0CD5>\uE055; # LENGTH MARK
-\u0CD6>\uE056; # AI LENGTH MARK
-\u0CDE>\uE034; # LETTER LLLA
-\u0CE0>\uE060; # LETTER VOCALIC RR
-\u0CE1>\uE061; # LETTER VOCALIC LL
-\u0CE6>\uE066; # DIGIT ZERO
-\u0CE7>\uE067; # DIGIT ONE
-\u0CE8>\uE068; # DIGIT TWO
-\u0CE9>\uE069; # DIGIT THREE
-\u0CEA>\uE06A; # DIGIT FOUR
-\u0CEB>\uE06B; # DIGIT FIVE
-\u0CEC>\uE06C; # DIGIT SIX
-\u0CED>\uE06D; # DIGIT SEVEN
-\u0CEE>\uE06E; # DIGIT EIGHT
-\u0CEF>\uE06F; # DIGIT NINE
-
-# eof
+ೕ>\uE055; # LENGTH MARK
+à³–>\uE056; # AI LENGTH MARK
+ೞ>\uE034; # LETTER LLLA
+à³ >\uE060; # LETTER VOCALIC RR
+ೡ>\uE061; # LETTER VOCALIC LL
+೦>\uE066; # DIGIT ZERO
+೧>\uE067; # DIGIT ONE
+೨>\uE068; # DIGIT TWO
+೩>\uE069; # DIGIT THREE
+೪>\uE06A; # DIGIT FOUR
+೫>\uE06B; # DIGIT FIVE
+೬>\uE06C; # DIGIT SIX
+à³­>\uE06D; # DIGIT SEVEN
+à³®>\uE06E; # DIGIT EIGHT
+೯>\uE06F; # DIGIT NINE
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Latin.txt
new file mode 100644
index 00000000000..c1400dd276c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBC-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Malayalam.txt
new file mode 100644
index 00000000000..0d50b3b4a60
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Oriya.txt
new file mode 100644
index 00000000000..ef997a83484
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:16 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Tamil.txt
new file mode 100644
index 00000000000..4eb365ea918
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Kannada_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Kannada_Telugu.txt
new file mode 100644
index 00000000000..8adc3030ff5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Kannada_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Kannada_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::[ಂ-ಃಅ-ಌಎ-à²à²’-ನಪ-ಳವ-ಹ\u0CBCಽಾ-ೄ\u0CC6-ೈೊ-\u0CCDೕ-ೖೞೠ-ೡ೦-೯];
+::NFD;
+::Kannada-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Armenian.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Armenian.txt
new file mode 100644
index 00000000000..2a48c580469
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Armenian.txt
@@ -0,0 +1,91 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Armenian.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::NFD(NFC);
+ev <> Ö‡ ;
+tÊ» <> Õ© ;
+ÄÊ» <> Õ¹ ;
+cÊ» <> Ö ;
+pÊ» <> Öƒ ;
+kÊ» <> Ö„ ;
+u <> Õ¸Ö‚ ;
+a <> Õ¡ ;
+b <> Õ¢ ;
+g <> Õ£ ;
+d <> Õ¤ ;
+e <> Õ¥ ;
+z <> Õ¦ ;
+Ä“ <> Õ§ ;
+É™ <> Õ¨ ;
+ž <> ժ ;
+i <> Õ« ;
+l <> Õ¬ ;
+x <> Õ­ ;
+c <> Õ® ;
+k <> Õ¯ ;
+h <> Õ° ;
+j <> Õ± ;
+Ä¡ <> Õ² ;
+Ä <> Õ³ ;
+m <> Õ´ ;
+y <> Õµ ;
+n <> Õ¶ ;
+Å¡ <> Õ· ;
+o <> Õ¸ ;
+p <> Õº ;
+Ç° <> Õ» ;
+á¹™ <> Õ¼ ;
+s <> Õ½ ;
+v <> Õ¾ ;
+t <> Õ¿ ;
+r <> Ö€ ;
+w <> Ö‚ ;
+Å <> Ö… ;
+f <> Ö† ;
+U <> ÕˆÕ’ ;
+EV <> ÔµÕ’ ;
+J\u030C <> Õ‹ ;
+PÊ» <> Õ“ ;
+KÊ» <> Õ” ;
+TÊ» <> Ô¹ ;
+Čʻ <> Չ ;
+CÊ» <> Õ‘ ;
+A <> Ô± ;
+B <> Ô² ;
+G <> Ô³ ;
+D <> Ô´ ;
+E <> Ôµ ;
+Z <> Ô¶ ;
+Ä’ <> Ô· ;
+Æ <> Ô¸ ;
+Ž <> Ժ ;
+I <> Ô» ;
+L <> Ô¼ ;
+X <> Ô½ ;
+C <> Ô¾ ;
+K <> Ô¿ ;
+H <> Õ€ ;
+J <> Õ ;
+Ä  <> Õ‚ ;
+Č <> Ճ ;
+M <> Õ„ ;
+Y <> Õ… ;
+N <> Õ† ;
+Å  <> Õ‡ ;
+O <> Õˆ ;
+P <> ÕŠ ;
+Ṙ <> Ռ ;
+S <> Õ ;
+V <> ÕŽ ;
+T <> Õ ;
+R <> Õ ;
+W <> Õ’ ;
+Ō <> Օ ;
+F <> Õ– ;
+::NFC(NFD);
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Bengali.txt
new file mode 100644
index 00000000000..b18255b984e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Bengali.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_ConjoiningJamo.txt b/Build/source/libs/icu-xetex/data/translit/Latin_ConjoiningJamo.txt
new file mode 100644
index 00000000000..261cfbd9740
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_ConjoiningJamo.txt
@@ -0,0 +1,251 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_ConjoiningJamo.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+$Gi = á„€;
+$GGi = á„;
+$Ni = á„‚;
+$Di = ᄃ;
+$DD = á„„;
+$R = á„…;
+$Mi = ᄆ;
+$Bi = ᄇ;
+$BB = ᄈ;
+$Si = ᄉ;
+$SSi = á„Š;
+$IEUNG = á„‹; # null initial, inserted during Latin-Jamo
+$Ji = ᄌ;
+$JJ = á„;
+$Ci = á„Ž;
+$Ki = á„;
+$Ti = á„;
+$Pi = á„‘;
+$Hi = á„’;
+$A = á…¡;
+$AE = á…¢;
+$YA = á…£;
+$YAE = á…¤;
+$EO = á…¥;
+$E = á…¦;
+$YEO = á…§;
+$YE = á…¨;
+$O = á…©;
+$WA = á…ª;
+$WAE = á…«;
+$OE = á…¬;
+$YO = á…­;
+$U = á…®;
+$WEO = á…¯;
+$WE = á…°;
+$WI = á…±;
+$YU = á…²;
+$EU = á…³; # null medial, inserted during Latin-Jamo
+$YI = á…´;
+$I = á…µ;
+$Gf = ᆨ;
+$GGf = ᆩ;
+$GS = ᆪ;
+$Nf = ᆫ;
+$NJ = ᆬ;
+$NH = ᆭ;
+$Df = ᆮ;
+$L = ᆯ;
+$LG = ᆰ;
+$LM = ᆱ;
+$LB = ᆲ;
+$LS = ᆳ;
+$LT = ᆴ;
+$LP = ᆵ;
+$LH = ᆶ;
+$Mf = ᆷ;
+$Bf = ᆸ;
+$BS = ᆹ;
+$Sf = ᆺ;
+$SSf = ᆻ;
+$NG = ᆼ;
+$Jf = ᆽ;
+$Cf = ᆾ;
+$Kf = ᆿ;
+$Tf = ᇀ;
+$Pf = á‡;
+$Hf = ᇂ;
+$jamoInitial = [á„€-á„’];
+$jamoMedial = [á…¡-á…µ];
+$latinInitial = [bcdghjkmnprst];
+$latinMedial = [aeiouwy];
+$latinMedialEnd = [aeiou];
+$sep = \';
+$sep $sep <> $sep;
+$sep < $latinMedialEnd g {} $GGi;
+$sep < $latinMedialEnd s {} $SSi;
+$sep < [^$latinMedial] [y w] e {} [$O $OE];
+$sep < [^$latinMedial] e {} [$O $OE $U];
+$sep < [^$latinMedial] [o a] {} [$E $EO $EU];
+$sep < [^$latinMedial] [w y] a {} [$E $EO $EU];
+$sep < [^$latinMedial] [y w] e {} $IEUNG [$O $OE];
+$sep < [^$latinMedial] e {} $IEUNG [$O $OE $U];
+$sep < [^$latinMedial] [o a] {} $IEUNG [$E $EO $EU];
+$sep < [^$latinMedial] [w y] a {} $IEUNG [$E $EO $EU];
+$sep < $latinMedialEnd b {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd c {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd d {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd g {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd h {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd j {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd k {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd m {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd n {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd p {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd s {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd t {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd b s {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd g g {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd g s {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l b {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l g {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l h {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l m {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l p {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l s {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd l t {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd n g {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd n h {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd n j {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd s s {} $IEUNG $jamoMedial;
+$sep < $latinMedialEnd b {} $Bi $jamoMedial;
+$sep < $latinMedialEnd d {} $Di $jamoMedial;
+$sep < $latinMedialEnd j {} $Ji $jamoMedial;
+$sep < $latinMedialEnd g {} $Gi $jamoMedial;
+$sep < $latinMedialEnd s {} $Si $jamoMedial;
+$sep < $latinMedialEnd b s {} [$Si $SSi];
+$sep < $latinMedialEnd g s {} [$Si $SSi];
+$sep < $latinMedialEnd l b {} [$Bi $BB];
+$sep < $latinMedialEnd l g {} [$Gi $GGi];
+$sep < $latinMedialEnd l s {} [$Si $SSi];
+$sep < $latinMedialEnd n g {} [$Gi $GGi];
+$sep < $latinMedialEnd n j {} [$Ji $JJ];
+$jamoMedial {b s} $latinMedial > $Bf $Si;
+$jamoMedial {g s} $latinMedial > $Gf $Si;
+$jamoMedial {l b} $latinMedial > $L $Bi;
+$jamoMedial {l g} $latinMedial > $L $Gi;
+$jamoMedial {l h} $latinMedial > $L $Hi;
+$jamoMedial {l m} $latinMedial > $L $Mi;
+$jamoMedial {l p} $latinMedial > $L $Pi;
+$jamoMedial {l s} $latinMedial > $L $Si;
+$jamoMedial {l t} $latinMedial > $L $Ti;
+$jamoMedial {n g} $latinMedial > $Nf $Gi;
+$jamoMedial {n h} $latinMedial > $Nf $Hi;
+$jamoMedial {n j} $latinMedial > $Nf $Ji;
+$jamoMedial {b} $latinMedial > $Bi;
+$jamoMedial {c} $latinMedial > $Ci;
+$jamoMedial {d} $latinMedial > $Di;
+$jamoMedial {g} $latinMedial > $Gi;
+$jamoMedial {h} $latinMedial > $Hi;
+$jamoMedial {j} $latinMedial > $Ji;
+$jamoMedial {k} $latinMedial > $Ki;
+$jamoMedial {m} $latinMedial > $Mi;
+$jamoMedial {n} $latinMedial > $Ni;
+$jamoMedial {p} $latinMedial > $Pi;
+$jamoMedial {s} $latinMedial > $Si;
+$jamoMedial {t} $latinMedial > $Ti;
+$jamoMedial {b b} $latinMedial > $BB;
+$jamoMedial {d d} $latinMedial > $DD;
+$jamoMedial {j j} $latinMedial > $JJ;
+$jamoMedial {g g} $latinMedial > $GGi;
+$jamoMedial {s s} $latinMedial > $SSi;
+$jamoMedial {b} s s > $Bf;
+$jamoMedial {g} s s > $Gf;
+$jamoMedial {l} b b > $L;
+$jamoMedial {l} g g > $L;
+$jamoMedial {l} s s > $L;
+$jamoMedial {n} g g > $Nf;
+$jamoMedial {n} j j > $Nf;
+$jamoMedial {bs} <> $BS;
+$jamoMedial {b} <> $Bf;
+$jamoMedial {c} <> $Cf;
+$jamoMedial {d} <> $Df;
+$jamoMedial {gg} <> $GGf;
+$jamoMedial {gs} <> $GS;
+$jamoMedial {g} <> $Gf;
+$jamoMedial {h} <> $Hf;
+$jamoMedial {j} <> $Jf;
+$jamoMedial {k} <> $Kf;
+$jamoMedial {lb} <> $LB; $jamoMedial {lg} <> $LG;
+$jamoMedial {lh} <> $LH;
+$jamoMedial {lm} <> $LM;
+$jamoMedial {lp} <> $LP;
+$jamoMedial {ls} <> $LS;
+$jamoMedial {lt} <> $LT;
+$jamoMedial {l} <> $L;
+$jamoMedial {m} <> $Mf;
+$jamoMedial {ng} <> $NG;
+$jamoMedial {nh} <> $NH;
+$jamoMedial {nj} <> $NJ;
+$jamoMedial {n} <> $Nf;
+$jamoMedial {p} <> $Pf;
+$jamoMedial {ss} <> $SSf;
+$jamoMedial {s} <> $Sf;
+$jamoMedial {t} <> $Tf;
+{gg} $latinMedial <> $GGi;
+{g} $latinMedial <> $Gi;
+{n} $latinMedial <> $Ni;
+{dd} $latinMedial <> $DD;
+{d} $latinMedial <> $Di;
+{r} $latinMedial <> $R;
+{m} $latinMedial <> $Mi;
+{bb} $latinMedial <> $BB;
+{b} $latinMedial <> $Bi;
+{ss} $latinMedial <> $SSi;
+{s} $latinMedial <> $Si;
+{jj} $latinMedial <> $JJ;
+{j} $latinMedial <> $Ji;
+{c} $latinMedial <> $Ci;
+{k} $latinMedial <> $Ki;
+{t} $latinMedial <> $Ti;
+{p} $latinMedial <> $Pi;
+{h} $latinMedial <> $Hi;
+$jamoMedial {r} $latinInitial > | l;
+$jamoInitial {} [bcdghjklmnpst] > $EU;
+gg > $GGi $EU;
+dd > $DD $EU;
+bb > $BB $EU;
+ss > $SSi $EU;
+jj > $JJ $EU;
+([bcdghjkmnprst]) > | $1 eu;
+l > | r;
+$jamoInitial {ae} <> $AE;
+$jamoInitial {a} <> $A;
+$jamoInitial {eo} <> $EO;
+$jamoInitial {eu} <> $EU;
+$jamoInitial {e} <> $E;
+$jamoInitial {i} <> $I;
+$jamoInitial {oe} <> $OE;
+$jamoInitial {o} <> $O;
+$jamoInitial {u} <> $U;
+$jamoInitial {wae} <> $WAE;
+$jamoInitial {wa} <> $WA;
+$jamoInitial {weo} <> $WEO;
+$jamoInitial {we} <> $WE;
+$jamoInitial {wi} <> $WI;
+$jamoInitial {yae} <> $YAE;
+$jamoInitial {ya} <> $YA;
+$jamoInitial {yeo} <> $YEO;
+$jamoInitial {ye} <> $YE;
+$jamoInitial {yi} <> $YI;
+$jamoInitial {yo} <> $YO;
+$jamoInitial {yu} <> $YU;
+$jamoInitial {w} > | wi;
+$jamoInitial {y} > | yu;
+($latinMedial) > $IEUNG | $1;
+f > | p;
+q > | k;
+v > | b;
+x > | ks;
+z > | s;
+$sep > ;
+< $IEUNG;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Devanagari.txt
new file mode 100644
index 00000000000..2dce28f86ef
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Devanagari.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Ethiopic.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Ethiopic.txt
new file mode 100644
index 00000000000..5a7cf4a6a4d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Ethiopic.txt
@@ -0,0 +1,353 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Ethiopic.txt
+# Generated from CLDR: Thu Jul 20 14:57:48 PDT 2006
+#
+ha<>ሀ;
+ha < ሃ;
+he<>ሄ;
+hi<>ሂ;
+hī<>ህ;
+hu<>?;
+ho<>ሆ;
+hha<>?;
+hha < ሓ;
+hhe<>ሔ;
+hhi<>ሒ;
+hhī<>ሕ;
+hhu<>ሑ;
+hho<>ሖ;
+hhwa<>ሗ;
+ʿa<>ኣ;
+ʿē<>አ;
+ʿe<>ኤ;
+ʿi<>ኢ;
+ʿī<>እ;
+ʿu<>ኡ;
+ʿo<>ኦ;
+ʿwa<>ኧ;
+ʾa<>ዓ;
+ʾē<>?;
+ʾe<>ዔ;
+ʾi<>ዒ;
+ʾī<>ዕ;
+ʾu<>ዑ;
+ʾo<>ዖ;
+qha<>ቓ;
+qhē<>?;
+qhe<>ቔ;
+qhi<>ቒ;
+qhī<>ቕ;
+qhu<>ቑ;
+qho<>ቖ;
+qhwa<>ቛ;
+qhwē<>ቘ;
+qhwe<>ቜ;
+qhwi<>ቚ;
+qhwī<>?;
+q a<>ቃ;
+qē<>ቀ;
+qe<>ቄ;
+qi<>ቂ;
+qī<>ቅ;
+qu<>?;
+qo<>ቆ;
+qwa<>ቋ;
+qwē<>ቈ;
+qwe<>ቌ;
+qwi<>ቊ;
+qwī<>?;
+ka<>ካ;
+kē<>ከ;
+ke<>ኬ;
+ki<>ኪ;
+kī<>ክ;
+ku<>ኩ;
+kwa<>ኳ;
+kwē<>ኮ;
+kwe<>ኴ;
+kwi<>ኰ;
+kwī<>ኵ;
+kxa<>ኻ;
+kxē<>ኸ;
+kxe<>ኼ;
+kxi<>ኺ;
+kxī<>ኽ;
+kxu<>ኹ;
+kxo<>ኾ;
+kxwa<>ዃ;
+kxwē<>ዀ;
+kxwe<>á‹„;
+kxwi<>á‹‚;
+kxwī<>ዅ;
+xa<>ኃ;
+xē<>ኀ;
+xe<>ኄ;
+xi<>ኂ;
+xī<>ኅ;
+xu<>?;
+xo<>ኆ;
+xwa<>ኋ;
+xwē<>ኈ;
+xwe<>ኌ;
+xwi<>ኊ;
+xwī<>?;
+gga<>ጛ;
+ggē<>ጘ;
+gge<>ጜ;
+ggi<>ጚ;
+ggī<>?;
+ggu<>ጙ;
+ggo<>ጞ;
+ga<>ጋ;
+gē<>ገ;
+ge<>ጌ;
+gi<>ጊ;
+gī<>?;
+gu<>ጉ;
+go<>ጎ;
+gwa<>ጓ;
+gwē<>?;
+gwe<>ጔ;
+gwi<>ጒ;
+gwī<>ጕ;
+ca<>ቻ;
+cē<>ቸ;
+ce<>ቼ;
+ci<>ቺ;
+cī<>ች;
+cu<>ቹ;
+co<>ቾ;
+cwa<>ቿ;
+cha<>ጫ;
+chē<>ጨ;
+che<>ጬ;
+chi<>ጪ;
+chī<>ጭ;
+chu<>ጩ;
+cho<>ጮ;
+chwa<>ጯ;
+ja<>ጃ;
+jē<>ጀ;
+je<>ጄ;
+ji<>ጂ;
+jī<>ጅ;
+ju<>?;
+jo<>ጆ;
+jwa<>ጇ;
+za<>á‹›;
+zē<>ዘ;
+ze<>ዜ;
+zi<>á‹š;
+zī<>?;
+zu<>á‹™;
+zo<>á‹ž;
+zwa<>á‹Ÿ;
+zha<>á‹£;
+zhē<>ዠ;
+zhe<>ዤ;
+zhi<>á‹¢;
+zhī<>ዥ;
+zhu<>á‹¡;
+zho<>ዦ;
+zhwa<>ዧ;
+sa<>ሳ;
+sē<>ሰ;
+se<>ሴ;
+si<>ሲ;
+sī<>ስ;
+su<>ሱ;
+so<>ሶ;
+swa<>ሷ;
+sha<>ሻ;
+shē<>ሸ;
+she<>ሼ;
+shi<>ሺ;
+shī<>ሽ;
+shu<>ሹ;
+sho<>ሾ;
+shwa<>ሿ;
+sza<>ሣ;
+szē<>ሠ;
+sze<>ሤ;
+szi<>ሢ;
+szī<>ሥ;
+szu<>ሡ;
+szo<>ሦ;
+szwa<>ሧ;
+tsa<>ጻ;
+tsē<>ጸ;
+tse<>ጼ;
+tsi<>ጺ;
+tsī<>ጽ;
+tsu<>ጹ;
+tso<>ጾ;
+tswa<>ጿ;
+tza<>?;
+tzē<>?;
+tze<>?;
+tzi<>?;
+tzī<>?;
+tzu<>??;
+tzo<>?;
+tha<>ጣ;
+thē<>ጠ;
+the<>ጤ;
+thi<>ጢ;
+thī<>ጥ;
+thu<>ጡ;
+tho<>ጦ;
+thwa<>ጧ;
+ta<>ታ;
+tē<>ተ;
+te<>ቴ;
+ti<>ቲ;
+tī<>ት;
+tu<>ቱ;
+to<>ቶ;
+twa<>ቷ;
+dda<>á‹»;
+ddē<>ዸ;
+dde<>ዼ;
+ddi<>ዺ;
+ddī<>ዽ;
+ddu<>ዹ;
+ddo<>ዾ;
+ddwa<>á‹¿;
+da<>ዳ;
+dē<>ደ;
+de<>á‹´;
+di<>ዲ;
+dī<>ድ;
+du<>ዱ;
+do<>ዶ;
+dwa<>á‹·;
+na<>ና;
+nē<>?;
+ne<>ኔ;
+ni<>ኒ;
+nī<>ን;
+nu<>ኑ;
+no<>ኖ;
+nwa<>ኗ;
+nya<>ኛ;
+nyē<>ኘ;
+nye<>ኜ;
+nyi<>ኚ;
+nyī<>?;
+nyu<>ኙ;
+nyo<>ኞ;
+nywa<>ኟ;
+ya<>á‹«;
+yē<>የ;
+ye<>ዬ;
+yi<>ዪ;
+yī<>ይ;
+yu<>á‹©;
+yo<>á‹®;
+ra<>ራ;
+rē<>ረ;
+re<>ሬ;
+ri<>ሪ;
+rī<>ር;
+ru<>ሩ;
+ro<>ሮ;
+rwa<>ሯ;
+rya<>?;
+la<>ላ;
+lē<>ለ;
+le<>ሌ;
+li<>ሊ;
+lī<>?;
+lu<>ሉ;
+lo<>ሎ;
+lwa<>?;
+ma<>ማ;
+mē<>መ;
+me<>ሜ;
+mi<>ሚ;
+mī<>?;
+mu<>ሙ;
+mo<>ሞ;
+mwa<>ሟ;
+mya<>?;
+ba<>ባ;
+bē<>በ;
+be<>ቤ;
+bi<>ቢ;
+bī<>ብ;
+bu<>ቡ;
+bo<>ቦ;
+bwa<>ቧ;
+pa<>?;
+pē<>??;
+pe<>?;
+pi<>?;
+pī<>?;
+pu<>?;
+po<>?;
+pwa<>?;
+pha<>ጳ;
+phē<>ጰ;
+phe<>ጴ;
+phi<>ጲ;
+phī<>ጵ;
+phu<>ጱ;
+pho<>ጶ;
+phwa<>ጷ;
+fa<>?;
+fē<>?;
+fe<>?;
+fi<>?;
+fī<>??;
+fu<>?;
+fo<>?;
+fwa<>??;
+fya<>?;
+va<>ቫ;
+vē<>ቨ;
+ve<>ቬ;
+vi<>ቪ;
+vī<>ቭ;
+vu<>ቩ;
+vo<>ቮ;
+vwa<>ቯ;
+wa<>á‹‹;
+wē<>ወ;
+we<>ዌ;
+wi<>á‹Š;
+wī<>?;
+wu<>ዉ;
+wo<>á‹Ž;
+'.'<>?;
+','<>?;
+';'<>?;
+':'<>?;
+':-' < ?;
+'?'<>?;
+'¶'<>?;
+1<>?;
+2<>?;
+3<>?;
+4<>?;
+5<>?;
+6<>?;
+7<>?;
+8<>?;
+9<>?;
+â‘©<>?;
+⑳<>?;
+(30)<>?;
+(40)<>?;
+(50)<>?;
+(60)<>?;
+(70)<>?;
+(80)<>?;
+(90)<>?;
+(100)<>?;
+(10000)<>?;
+' ' <> ? ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Gujarati.txt
new file mode 100644
index 00000000000..9cede039e21
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Gujarati.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Gurmukhi.txt
new file mode 100644
index 00000000000..472b477d045
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Gurmukhi.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Hangul.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Hangul.txt
new file mode 100644
index 00000000000..2f0c81a1069
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Hangul.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Hangul.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['A-Za-zÀ-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǡǦ-Ç­Ç°Ç´-ǵǸ-ǻȀ-țȞ-ȟȦ-ȳḀ-ẙẠ-ỹK-â„«];
+::NFD;
+::Lower;
+::Latin-ConjoiningJamo;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Latin_InterIndic.txt
index 0c303bac507..340cafe9b25 100644
--- a/Build/source/libs/icu-xetex/data/translit/Latin_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_InterIndic.txt
@@ -1,395 +1,342 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Latin-InterIndic
- #:: NFD;
- #\u0e00 reserved
- #consonants
- $chandrabindu=\ue001;
- $anusvara=\ue002;
- $visarga=\ue003;
- #\u0e004 reserved
- # w<vowel> represents the stand-alone form
- $wa=\ue005;
- $waa=\ue006;
- $wi=\ue007;
- $wii=\ue008;
- $wu=\ue009;
- $wuu=\ue00a;
- $wr=\ue00b;
- $wl=\ue00c;
- $wce=\ue00d; # LETTER CANDRA E
- $wse=\ue00e; # LETTER SHORT E
- $we=\ue00f; # \u090f LETTER E
- $wai=\ue010;
- $wco=\ue011; # LETTER CANDRA O
- $wso=\ue012; # LETTER SHORT O
- $wo=\ue013; # \u0913 LETTER O
- $wau=\ue014;
- $ka=\ue015;
- $kha=\ue016;
- $ga=\ue017;
- $gha=\ue018;
- $nga=\ue019;
- $ca=\ue01a;
- $cha=\ue01b;
- $ja=\ue01c;
- $jha=\ue01d;
- $nya=\ue01e;
- $tta=\ue01f;
- $ttha=\ue020;
- $dda=\ue021;
- $ddha=\ue022;
- $nna=\ue023;
- $ta=\ue024;
- $tha=\ue025;
- $da=\ue026;
- $dha=\ue027;
- $na=\ue028;
- $ena=\ue029; #compatibility
- $pa=\ue02a;
- $pha=\ue02b;
- $ba=\ue02c;
- $bha=\ue02d;
- $ma=\ue02e;
- $ya=\ue02f;
- $ra=\ue030;
- $rra=\ue031;
- $la=\ue032;
- $lla=\ue033;
- $ela=\ue034; #compatibility
- $va=\ue035;
- $vva=\ue081;
- $sha=\ue036;
- $ssa=\ue037;
- $sa=\ue038;
- $ha=\ue039;
-#\u093a Reserved
-#\u093b Reserved
- $nukta=\ue03c;
- $avagraha=\ue03d; # SIGN AVAGRAHA
- # <vowel> represents the dependent form
- $aa=\ue03e;
- $i=\ue03f;
- $ii=\ue040;
- $u=\ue041;
- $uu=\ue042;
- $rh=\ue043;
- $lh=\ue044;
- $ce=\ue045; #VOWEL SIGN CANDRA E
- $se=\ue046; #VOWEL SIGN SHORT E
- $e=\ue047;
- $ai=\ue048;
- $co=\ue049; # VOWEL SIGN CANDRA O
- $so=\ue04a; # VOWEL SIGN SHORT O
- $o=\ue04b; # \u094b
- $au=\ue04c;
- $virama=\ue04d;
-# \u094e Reserved
-# \u094f Reserved
- $om = \ue050; # OM
-# \u0951>; # UNMAPPED STRESS SIGN UDATTA
-# \u0952>; # UNMAPPED STRESS SIGN ANUDATTA
-# \u0953>; # UNMAPPED GRAVE ACCENT
-# \u0954>; # UNMAPPED ACUTE ACCENT
- $lm = \ue055;# Telugu Length Mark
- $ailm=\ue056;# AI Length Mark
- $aulm=\ue057;# AU Length Mark
- #urdu compatibity forms
- $uka=\ue058;
- $ukha=\ue059;
- $ugha=\ue05a;
- $ujha=\ue05b;
- $uddha=\ue05c;
- $udha=\ue05d;
- $ufa=\ue05e;
- $uya=\ue05f;
- $wrr=\ue060;
- $wll=\ue061;
- $rrh=\ue062;
- $llh=\ue063;
- $danda=\ue064;
- $doubleDanda=\ue065;
- $zero=\ue066; # DIGIT ZERO
- $one=\ue067; # DIGIT ONE
- $two=\ue068; # DIGIT TWO
- $three=\ue069; # DIGIT THREE
- $four=\ue06a; # DIGIT FOUR
- $five=\ue06b; # DIGIT FIVE
- $six=\ue06c; # DIGIT SIX
- $seven=\ue06d; # DIGIT SEVEN
- $eight=\ue06e; # DIGIT EIGHT
- $nine=\ue06f; # DIGIT NINE
-
- $dgs=\ue082;
-
- # For all other scripts
- $ecp0=\ue070;
- $ecp1=\ue071;
- $ecp2=\ue072;
- $ecp3=\ue073;
- $ecp4=\ue074;
- $ecp5=\ue075;
- $ecp6=\ue076;
- $ecp7=\ue077;
- $ecp8=\ue078;
- $ecp9=\ue079;
- $ecpA=\ue07a;
- $ecpB=\ue07b;
- $ecpC=\ue07c;
- $ecpD=\ue07d;
- $ecpE=\ue07e;
- $ecpF=\ue07f;
-
- # Khanda-ta
- $kta=\ue083;
-
-# \u0970>; # UNMAPPED ABBREVIATION SIGN
- $depVowelAbove=[\ue03e-\ue040\ue045-\ue04c];
- $depVowelBelow=[\ue041-\ue044];
- $endThing=[$danda$doubleDanda];
- # $x was originally called '&'; $z was '%'
- $x=[$virama$aa$ai$au$ii$i$uu$u$rrh$rh$lh$e$o$se$ce$so$co];
- $z=[bcdfghjklmnpqrstvwxyz];
- $consonants=[[$ka-$ha]$z[\u0915-\u0939][\u0995-\u09b9][\u0a15-\u0a39][\u0a95-\u0ab9][\u0b15-\u0b39][\u0b95-\u0bb9][\u0c15-\u0c39][\u0c95-\u0cb9][\u0d15-\u0d39]];
- \u0315 > $avagraha;
- \u0303>$chandrabindu$anusvara;
- m\u0310>$chandrabindu;
- h\u0323>$visarga;
- x>$ka$virama$sa;
-# convert to independent forms at start of word or syllable:
-# dependent forms for roundtrip
- \u0314a\u0304>$aa;
- \u0314ai>$ai;
- \u0314au>$au;
- \u0314ii>$ii;
- \u0314i\u0304>$ii;
- \u0314i>$i;
- \u0314u\u0304>$uu;
- \u0314u>$u;
- \u0314r\u0325\u0304>$rrh;
- \u0314r\u0325>$rh;
- \u0314l\u0325\u0304>$llh;
- \u0314lh>$lh;
- \u0314l\u0325>$lh;
- \u0314e\u0304>$e;
- \u0314o\u0304>$o;
- \u0314a>;
- \u0314e\u0306>$ce;
- \u0314o\u0306>$co;
- \u0314e>$se;
- \u0314o>$so;
-
-# preceeded by consonants
- $consonants{ a\u0304>$aa;
- $consonants{ ai>$ai;
- $consonants{ au>$au;
- $consonants{ ii>$ii;
- $consonants{ i\u0304>$ii;
- $consonants{ i>$i;
- $consonants{ u\u0304>$uu;
- $consonants{ u>$u;
- $consonants{ r\u0325\u0304>$rrh;
- $consonants{ r\u0325a>$rh;
- $consonants{ r\u0325>$rh;
- $consonants{ l\u0325\u0304>$llh;
- $consonants{ lh>$lh;
- $consonants{ l\u0325>$lh;
- $consonants{ e\u0304>$e;
- $consonants{ o\u0304>$o;
- $consonants{ e\u0306>$ce;
- $consonants{ o\u0306>$co;
- $consonants{ e>$se;
- $consonants{ o>$so;
-
-# e.g. keai -> {ka}{e}{wai}; k'ai -> {ka}{wai}; (ai) -> ({wai})
- a\u0304>$waa;
- ai>$wai;
- au>$wau;
- i\u0304>$wii;
- i>$wi;
- u\u0304>$wuu;
- u>$wu;
- r\u0325\u0304>$wrr;
- r\u0325>$wr;
- l\u0325\u0304>$wll;
- lh>$wl;
- l\u0325>$wl;
- e\u0304>$we;
- o\u0304>$wo;
- a>$wa;
- e\u0306>$wce;
- o\u0306>$wco;
- e>$wse;
- ''om>$om;
- o>$wso;
-
- # rules for anusvara
- n}r\u0325 > $na|$virama;
- n}l\u0325 > $na|$virama;
- n}na > $na|$virama;
- n\u0307}[kg] > $anusvara;
- n\u0307}n\u0307 > $anusvara;
- n\u0304}[cj] > $anusvara;
- n\u0304}n\u0303 > $anusvara;
- n\u0323}[tdn]\u0323 > $anusvara;
- n}[tdn] > $anusvara;
- m}[pbm] > $anusvara;
- n}[ylvshr] > $anusvara;
- m\u0307 > $anusvara;
-
- #urdu compatibility
- q>$uka|$virama;
- k\u0331h\u0331>$ukha |$virama;
- g\u0307> $ugha | $virama;
- z > $ujha |$virama;
- f > $ufa|$virama;
-
- t\u0331>$kta;
-
- # dev
- y\u0307>$uya|$virama;
- l\u0331>$ela|$virama;
- n\u0331>$ena|$virama;
- n\u0307>$nga|$virama;
- n\u0303>$nya|$virama;
- n\u0323>$nna|$virama;
- t\u0323h>$ttha|$virama;
- t\u0323>$tta|$virama;
- r\u0323h>$udha|$virama;
- r\u0323>$uddha|$virama;
- d\u0323h>$ddha|$virama;
- d\u0323>$dda|$virama;
- kh>$kha|$virama;
- k>$ka|$virama;
- gh>$gha|$virama;
- g>$ga|$virama;
- ch>$cha|$virama;
- c>$ca|$virama;
- jh>$jha|$virama;
- j>$ja|$virama;
- ny>$nya|$virama;
- tth>$ttha|$virama;
- ddh>$ddha|$virama;
- th>$tha|$virama;
- t>$ta|$virama;
- dh>$dha|$virama;
- d>$da|$virama;
- n>$na|$virama;
- ph>$pha|$virama;
- p>$pa|$virama;
- bh>$bha|$virama;
- b>$ba|$virama;
- m>$ma|$virama;
- y>$ya|$virama;
- r\u0331>$rra|$virama;
- r>$ra|$virama;
- l\u0323>$lla|$virama;
- l>$la|$virama;
- v>$va|$virama;
- w\u0307>$vva|$virama;
- w>$va|$virama;
- sh>$sha|$virama;
- ss>$ssa|$virama;
- s\u0323>$ssa|$virama;
- s\u0301>$sha|$virama;
- s>$sa|$virama;
- h>$ha|$virama;
- '.'>$danda;
- $danda'.'>$doubleDanda;
- $depVowelAbove{'~'>$anusvara;
- $depVowelBelow{'~'>$chandrabindu;
-# convert to dependent forms after consonant with no vowel:
-# e.g. kai -> {ka}{virama}ai -> {ka}{ai}
- #$virama aa>$aa;
- $virama a\u0304>$aa;
- $virama ai>$ai;
- $virama au>$au;
- $virama ii>$ii;
- $virama i\u0304>$ii;
- $virama i>$i;
- #$virama uu>$uu;
- $virama u\u0304>$uu;
- $virama u>$u;
- #$virama rrh>$rrh;
- $virama r\u0325\u0304>$rrh;
- #$virama rh>$rh;
- $virama r\u0325a>$rh;
- $virama r\u0325>$rh;
- $virama l\u0325\u0304>$llh;
- $virama lh>$lh;
- $virama l\u0325>$lh;
- $virama e\u0304>$e;
- $virama o\u0304>$o;
- $virama a>;
- $virama e\u0306>$ce;
- $virama o\u0306>$co;
- $virama e>$se;
- $virama o>$so;
-
-
-# otherwise convert independent forms when separated by ': k'ai -> {ka}{virama}{wai}
- #$virama''aa>$waa;
- $virama''a\u0304>$waa;
- $virama''ai>$wai;
- $virama''au>$wau;
- #$virama''ii>$wii;
- $virama''i\u0304>$wii;
- $virama''i>$wi;
- #$virama''uu>$wuu;
- $virama''u\u0304>$wuu;
- $virama''u>$wu;
- #$virama''rrh>$wrr;
- $virama''r\u0325\u0304>$wrr;
- #$virama''rh>$wr;
- $virama''r\u0325>$wr;
- $virama''l\u0325\u0304>$wll;
- #$virama''lh>$wl;
- $virama''l\u0325>$wl;
- $virama''e\u0304>$we;
- $virama''o\u0304>$wo;
- $virama''a>$wa;
- $virama''e\u0306>$wce;
- $virama''o\u0306>$wco;
- $virama''e>$wse;
- $virama''o>$wso;
-# no virama
- ''a\u0304>$waa;
- ''ai>$wai;
- ''au>$wau;
- ''i\u0304>$wii;
- ''i>$wi;
- ''u\u0304>$wuu;
- ''u>$wu;
- ''r\u0325\u0304>$wrr;
- ''r\u0325>$wr;
- ''l\u0325\u0304>$wll;
- ''l\u0325>$wl;
- ''e\u0304>$we;
- ''o\u0304>$wo;
- ''a>$wa;
- ''e\u0306>$wce;
- ''o\u0306>$wco;
- ''e>$wse;
- ''o>$wso;
-
- $virama } [$z] > $virama;
- $virama } ' ' > $virama ;
- $virama}$endThing>;
-
- \u0294>$dgs; # Glottal Stop
-
- 0>$zero;
- 1>$one;
- 2>$two;
- 3>$three;
- 4>$four;
- 5>$five;
- 6>$six;
- 7>$seven;
- 8>$eight;
- 9>$nine;
- ''>;
- #:: NFC (NFD) ;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+$chandrabindu=\uE001;
+$anusvara=\uE002;
+$visarga=\uE003;
+$wa=\uE005;
+$waa=\uE006;
+$wi=\uE007;
+$wii=\uE008;
+$wu=\uE009;
+$wuu=\uE00A;
+$wr=\uE00B;
+$wl=\uE00C;
+$wce=\uE00D; # LETTER CANDRA E
+$wse=\uE00E; # LETTER SHORT E
+$we=\uE00F; # ठLETTER E
+$wai=\uE010;
+$wco=\uE011; # LETTER CANDRA O
+$wso=\uE012; # LETTER SHORT O
+$wo=\uE013; # ओ LETTER O
+$wau=\uE014;
+$ka=\uE015;
+$kha=\uE016;
+$ga=\uE017;
+$gha=\uE018;
+$nga=\uE019;
+$ca=\uE01A;
+$cha=\uE01B;
+$ja=\uE01C;
+$jha=\uE01D;
+$nya=\uE01E;
+$tta=\uE01F;
+$ttha=\uE020;
+$dda=\uE021;
+$ddha=\uE022;
+$nna=\uE023;
+$ta=\uE024;
+$tha=\uE025;
+$da=\uE026;
+$dha=\uE027;
+$na=\uE028;
+$ena=\uE029; #compatibility
+$pa=\uE02A;
+$pha=\uE02B;
+$ba=\uE02C;
+$bha=\uE02D;
+$ma=\uE02E;
+$ya=\uE02F;
+$ra=\uE030;
+$rra=\uE031;
+$la=\uE032;
+$lla=\uE033;
+$ela=\uE034; #compatibility
+$va=\uE035;
+$vva=\uE081;
+$sha=\uE036;
+$ssa=\uE037;
+$sa=\uE038;
+$ha=\uE039;
+$nukta=\uE03C;
+$avagraha=\uE03D; # SIGN AVAGRAHA
+$aa=\uE03E;
+$i=\uE03F;
+$ii=\uE040;
+$u=\uE041;
+$uu=\uE042;
+$rh=\uE043;
+$lh=\uE044;
+$ce=\uE045; #VOWEL SIGN CANDRA E
+$se=\uE046; #VOWEL SIGN SHORT E
+$e=\uE047;
+$ai=\uE048;
+$co=\uE049; # VOWEL SIGN CANDRA O
+$so=\uE04A; # VOWEL SIGN SHORT O
+$o=\uE04B; # ो
+$au=\uE04C;
+$virama=\uE04D;
+$om = \uE050; # OM
+$lm = \uE055;# Telugu Length Mark
+$ailm=\uE056;# AI Length Mark
+$aulm=\uE057;# AU Length Mark
+$uka=\uE058;
+$ukha=\uE059;
+$ugha=\uE05A;
+$ujha=\uE05B;
+$uddha=\uE05C;
+$udha=\uE05D;
+$ufa=\uE05E;
+$uya=\uE05F;
+$wrr=\uE060;
+$wll=\uE061;
+$rrh=\uE062;
+$llh=\uE063;
+$danda=\uE064;
+$doubleDanda=\uE065;
+$zero=\uE066; # DIGIT ZERO
+$one=\uE067; # DIGIT ONE
+$two=\uE068; # DIGIT TWO
+$three=\uE069; # DIGIT THREE
+$four=\uE06A; # DIGIT FOUR
+$five=\uE06B; # DIGIT FIVE
+$six=\uE06C; # DIGIT SIX
+$seven=\uE06D; # DIGIT SEVEN
+$eight=\uE06E; # DIGIT EIGHT
+$nine=\uE06F; # DIGIT NINE
+$dgs=\uE082;
+$ecp0=\uE070;
+$ecp1=\uE071;
+$ecp2=\uE072;
+$ecp3=\uE073;
+$ecp4=\uE074;
+$ecp5=\uE075;
+$ecp6=\uE076;
+$ecp7=\uE077;
+$ecp8=\uE078;
+$ecp9=\uE079;
+$ecpA=\uE07A;
+$ecpB=\uE07B;
+$ecpC=\uE07C;
+$ecpD=\uE07D;
+$ecpE=\uE07E;
+$ecpF=\uE07F;
+$kta=\uE083;
+$depVowelAbove=[\uE03E-\uE040\uE045-\uE04C];
+$depVowelBelow=[\uE041-\uE044];
+$endThing=[$danda$doubleDanda];
+$x=[$virama$aa$ai$au$ii$i$uu$u$rrh$rh$lh$e$o$se$ce$so$co];
+$z=[bcdfghjklmnpqrstvwxyz];
+$consonants=[[$ka-$ha]$z[क-ह][ক-হ][ਕ-ਹ][ક-હ][କ-ହ][க-ஹ][క-హ][ಕ-ಹ][ക-ഹ]];
+\u0315 > $avagraha;
+\u0303>$chandrabindu$anusvara;
+m\u0310>$chandrabindu;
+h\u0323>$visarga;
+x>$ka$virama$sa;
+\u0314a\u0304>$aa;
+\u0314ai>$ai;
+\u0314au>$au;
+\u0314ii>$ii;
+\u0314i\u0304>$ii;
+\u0314i>$i;
+\u0314u\u0304>$uu;
+\u0314u>$u;
+\u0314r\u0325\u0304>$rrh;
+\u0314r\u0325>$rh;
+\u0314l\u0325\u0304>$llh;
+\u0314lh>$lh;
+\u0314l\u0325>$lh;
+\u0314e\u0304>$e;
+\u0314o\u0304>$o;
+\u0314a>;
+\u0314e\u0306>$ce;
+\u0314o\u0306>$co;
+\u0314e>$se;
+\u0314o>$so;
+$consonants{ a\u0304>$aa;
+$consonants{ ai>$ai;
+$consonants{ au>$au;
+$consonants{ ii>$ii;
+$consonants{ i\u0304>$ii;
+$consonants{ i>$i;
+$consonants{ u\u0304>$uu;
+$consonants{ u>$u;
+$consonants{ r\u0325\u0304>$rrh;
+$consonants{ r\u0325a>$rh;
+$consonants{ r\u0325>$rh;
+$consonants{ l\u0325\u0304>$llh;
+$consonants{ lh>$lh;
+$consonants{ l\u0325>$lh;
+$consonants{ e\u0304>$e;
+$consonants{ o\u0304>$o;
+$consonants{ e\u0306>$ce;
+$consonants{ o\u0306>$co;
+$consonants{ e>$se;
+$consonants{ o>$so;
+a\u0304>$waa;
+ai>$wai;
+au>$wau;
+i\u0304>$wii;
+i>$wi;
+u\u0304>$wuu;
+u>$wu;
+r\u0325\u0304>$wrr;
+r\u0325>$wr;
+l\u0325\u0304>$wll;
+lh>$wl;
+l\u0325>$wl;
+e\u0304>$we;
+o\u0304>$wo;
+a>$wa;
+e\u0306>$wce;
+o\u0306>$wco;
+e>$wse;
+''om>$om;
+o>$wso;
+n}r\u0325 > $na|$virama;
+n}l\u0325 > $na|$virama;
+n}na > $na|$virama;
+n\u0307}[kg] > $anusvara;
+n\u0307}n\u0307 > $anusvara;
+n\u0304}[cj] > $anusvara;
+n\u0304}n\u0303 > $anusvara;
+n\u0323}[tdn]\u0323 > $anusvara;
+n}[tdn] > $anusvara;
+m}[pbm] > $anusvara;
+n}[ylvshr] > $anusvara;
+m\u0307 > $anusvara;
+q>$uka|$virama;
+k\u0331h\u0331>$ukha |$virama;
+g\u0307> $ugha | $virama;
+z > $ujha |$virama;
+f > $ufa|$virama;
+t\u0331>$kta;
+y\u0307>$uya|$virama;
+l\u0331>$ela|$virama;
+n\u0331>$ena|$virama;
+n\u0307>$nga|$virama;
+n\u0303>$nya|$virama;
+n\u0323>$nna|$virama;
+t\u0323h>$ttha|$virama;
+t\u0323>$tta|$virama;
+r\u0323h>$udha|$virama;
+r\u0323>$uddha|$virama;
+d\u0323h>$ddha|$virama;
+d\u0323>$dda|$virama;
+kh>$kha|$virama;
+k>$ka|$virama;
+gh>$gha|$virama;
+g>$ga|$virama;
+ch>$cha|$virama;
+c>$ca|$virama;
+jh>$jha|$virama;
+j>$ja|$virama;
+ny>$nya|$virama;
+tth>$ttha|$virama;
+ddh>$ddha|$virama;
+th>$tha|$virama;
+t>$ta|$virama;
+dh>$dha|$virama;
+d>$da|$virama;
+n>$na|$virama;
+ph>$pha|$virama;
+p>$pa|$virama;
+bh>$bha|$virama;
+b>$ba|$virama;
+m>$ma|$virama;
+y>$ya|$virama;
+r\u0331>$rra|$virama;
+r>$ra|$virama;
+l\u0323>$lla|$virama;
+l>$la|$virama;
+v>$va|$virama;
+w\u0307>$vva|$virama;
+w>$va|$virama;
+sh>$sha|$virama;
+ss>$ssa|$virama;
+s\u0323>$ssa|$virama;
+s\u0301>$sha|$virama;
+s>$sa|$virama;
+h>$ha|$virama;
+'.'>$danda;
+$danda'.'>$doubleDanda;
+$depVowelAbove{'~'>$anusvara;
+$depVowelBelow{'~'>$chandrabindu;
+$virama a\u0304>$aa;
+$virama ai>$ai;
+$virama au>$au;
+$virama ii>$ii;
+$virama i\u0304>$ii;
+$virama i>$i;
+$virama u\u0304>$uu;
+$virama u>$u;
+$virama r\u0325\u0304>$rrh;
+$virama r\u0325a>$rh;
+$virama r\u0325>$rh;
+$virama l\u0325\u0304>$llh;
+$virama lh>$lh;
+$virama l\u0325>$lh;
+$virama e\u0304>$e;
+$virama o\u0304>$o;
+$virama a>;
+$virama e\u0306>$ce;
+$virama o\u0306>$co;
+$virama e>$se;
+$virama o>$so;
+$virama''a\u0304>$waa;
+$virama''ai>$wai;
+$virama''au>$wau;
+$virama''i\u0304>$wii;
+$virama''i>$wi;
+$virama''u\u0304>$wuu;
+$virama''u>$wu;
+$virama''r\u0325\u0304>$wrr;
+$virama''r\u0325>$wr;
+$virama''l\u0325\u0304>$wll;
+$virama''l\u0325>$wl;
+$virama''e\u0304>$we;
+$virama''o\u0304>$wo;
+$virama''a>$wa;
+$virama''e\u0306>$wce;
+$virama''o\u0306>$wco;
+$virama''e>$wse;
+$virama''o>$wso;
+''a\u0304>$waa;
+''ai>$wai;
+''au>$wau;
+''i\u0304>$wii;
+''i>$wi;
+''u\u0304>$wuu;
+''u>$wu;
+''r\u0325\u0304>$wrr;
+''r\u0325>$wr;
+''l\u0325\u0304>$wll;
+''l\u0325>$wl;
+''e\u0304>$we;
+''o\u0304>$wo;
+''a>$wa;
+''e\u0306>$wce;
+''o\u0306>$wco;
+''e>$wse;
+''o>$wso;
+$virama } [$z] > $virama;
+$virama } ' ' > $virama ;
+$virama}$endThing>;
+Ê”>$dgs; # Glottal Stop
+0>$zero;
+1>$one;
+2>$two;
+3>$three;
+4>$four;
+5>$five;
+6>$six;
+7>$seven;
+8>$eight;
+9>$nine;
+''>;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Jamo.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Jamo.txt
index 9d6591d7a6f..5063003bc0f 100644
--- a/Build/source/libs/icu-xetex/data/translit/Latin_Jamo.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Jamo.txt
@@ -1,522 +1,14 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-#- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in
-#- the INDEX file. This transliterator is, by itself, not
-#- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or
-#- inverses thereof.
-
-# Transliteration from Latin characters to Korean script is done in
-# two steps: Latin to Jamo, then Jamo to Hangul. The Jamo-Hangul
-# transliteration is done algorithmically following Unicode 3.0
-# section 3.11. This file implements the Latin to Jamo
-# transliteration using rules.
-
-# Jamo occupy the block 1100-11FF. Within this block there are three
-# groups of characters: initial consonants or choseong (I), medial
-# vowels or jungseong (M), and trailing consonants or jongseong (F).
-# Standard Korean syllables are of the form I+M+F*.
-
-# Section 3.11 describes the use of 'filler' jamo to convert
-# nonstandard syllables to standard form: the choseong filler 115F and
-# the junseong filler 1160. In this transliterator, we will not use
-# 115F or 1160.
-
-# We will, however, insert two 'null' jamo to make foreign words
-# conform to Korean syllable structure. These are the null initial
-# consonant 110B (IEUNG) and the null vowel 1173 (EU). In Latin text,
-# we will use the separator in order to disambiguate strings,
-# e.g. "kan-ggan" (initial GG) vs. "kanggan" (final NG + initial G).
-
-# We will not use all of the characters in the jamo block. We will
-# only use the 19 initials, 21 medials, and 27 finals possessing a
-# jamo short name as defined in section 4.4 of the Unicode book.
-
-# Rules of thumb. These guidelines provide the basic framework
-# for the rules. They are phrased in terms of Latin-Jamo transliteration.
-# The Jamo-Latin rules derive from these, since the Jamo-Latin rules are
-# just context-free transliteration of jamo to corresponding short names,
-# with the addition of separators to maintain round-trip integrity
-# in the context of the Latin-Jamo rules.
-
-# A sequence of vowels:
-# - Take the longest sequence you can. If there are too many, or you don't
-# have a starting consonant, introduce a 110B necessary.
-
-# A sequence of consonants.
-# - First join the double consonants: G + G -> GG
-# - In the remaining list,
-# -- If there is no preceding vowel, take the first consonant, and insert EU
-# after it. Continue with the rest of the consonants.
-# -- If there is one consonant, attach to the following vowel
-# -- If there are two consonants and a following vowel, attach one to the
-# preceeding vowel, and one to the following vowel.
-# -- If there are more than two consonants, join the first two together if you
-# can: L + G => LG
-# -- If you still end up with more than 2 consonants, insert EU after the
-# first one, and continue with the rest of the consonants.
-
-#----------------------------------------------------------------------
-# Variables
-
-# Some latin consonants or consonant pairs only occur as initials, and
-# some only as finals, but some occur as both. This makes some jamo
-# consonants ambiguous when transliterated into latin.
-# Initial only: IEUNG BB DD JJ R
-# Final only: BS GS L LB LG LH LM LP LS LT NG NH NJ
-# Initial and Final: B C D G GG H J K M N P S SS T
-
- $Gi = \u1100;
- $GGi = \u1101;
- $Ni = \u1102;
- $Di = \u1103;
- $DD = \u1104;
- $R = \u1105;
- $Mi = \u1106;
- $Bi = \u1107;
- $BB = \u1108;
- $Si = \u1109;
- $SSi = \u110A;
- $IEUNG = \u110B; # null initial, inserted during Latin-Jamo
- $Ji = \u110C;
- $JJ = \u110D;
- $Ci = \u110E;
- $Ki = \u110F;
- $Ti = \u1110;
- $Pi = \u1111;
- $Hi = \u1112;
-
- $A = \u1161;
- $AE = \u1162;
- $YA = \u1163;
- $YAE = \u1164;
- $EO = \u1165;
- $E = \u1166;
- $YEO = \u1167;
- $YE = \u1168;
- $O = \u1169;
- $WA = \u116A;
- $WAE = \u116B;
- $OE = \u116C;
- $YO = \u116D;
- $U = \u116E;
- $WEO = \u116F;
- $WE = \u1170;
- $WI = \u1171;
- $YU = \u1172;
- $EU = \u1173; # null medial, inserted during Latin-Jamo
- $YI = \u1174;
- $I = \u1175;
-
- $Gf = \u11A8;
- $GGf = \u11A9;
- $GS = \u11AA;
- $Nf = \u11AB;
- $NJ = \u11AC;
- $NH = \u11AD;
- $Df = \u11AE;
- $L = \u11AF;
- $LG = \u11B0;
- $LM = \u11B1;
- $LB = \u11B2;
- $LS = \u11B3;
- $LT = \u11B4;
- $LP = \u11B5;
- $LH = \u11B6;
- $Mf = \u11B7;
- $Bf = \u11B8;
- $BS = \u11B9;
- $Sf = \u11BA;
- $SSf = \u11BB;
- $NG = \u11BC;
- $Jf = \u11BD;
- $Cf = \u11BE;
- $Kf = \u11BF;
- $Tf = \u11C0;
- $Pf = \u11C1;
- $Hf = \u11C2;
-
- $jamoInitial = [\u1100-\u1112];
-
- $jamoMedial = [\u1161-\u1175];
-
- $latinInitial = [bcdghjkmnprst];
-
- # Any character in the latin transliteration of a medial
- $latinMedial = [aeiouwy];
-
- # The last character of the latin transliteration of a medial
- $latinMedialEnd = [aeiou];
-
- # Disambiguation separator
- $sep = \';
-
-#----------------------------------------------------------------------
-# Jamo-Latin
-
-# Jamo to latin is relatively simple, since it is the latin that is
-# ambiguous. Most rules are straightforward, and we encode them below
-# as simple add-on back rule, e.g.:
-
-# $jamoMedial {bs} > $BS;
-
-# becomes
-
-# $jamoMedial {bs} <> $BS;
-
-# Furthermore, we don't care about the ordering for Jamo-Latin because
-# we are going from single characters, so we can very easily piggyback
-# on the Latin-Jamo.
-
-# The main issue with Jamo-Latin is when to insert separators.
-# Separators are inserted to obtain correct round trip behavior. For
-# example, the sequence Ki A Gf Gi E, if transliterated to "kagge",
-# would then round trip to Ki A GGi E. To prevent this, we insert a
-# separator: "kag-ge". IMPORTANT: The need for separators depends
-# very specifically on the behavior of the Latin-Jamo rules. A change
-# in the Latin-Jamo behavior can completely change the way the
-# separator insertion must be done.
-
-# First try to preserve actual separators in the jamo text by doubling
-# them. This fixes problems like:
-# (Di)(A)(Ji)(U)(NG)-(IEUNG)(YEO)(Nf)(Gi)(YEO)(L) => dajung-yeongyeol
-# => (Di)(A)(Ji)(U)(NG)(IEUNG)(YEO)(Nf)(Gi)(YEO)(L). This is optional
-# -- if we don't care about losing separators in the jamo, we can delete
-# this rule.
-
- $sep $sep <> $sep;
-
-# Triple consonants. For three consonants "axxx" we insert a
-# separator between the first and second "x" if XXf, Xf, and Xi all
-# exist, and we have A Xf XXi. This prevents the reverse
-# transliteration to A XXf Xi.
-
- $sep < $latinMedialEnd g {} $GGi;
- $sep < $latinMedialEnd s {} $SSi;
-
-# For vowels the rule is similar. If there is a vowel "ae" such that
-# "a" by itself and "e" by itself are vowels, then we want to map A E
-# to "a-e" so as not to round trip to AE. However, in the text Ki EO
-# IEUNG E we don't need to map to "keo-e". "keoe" suffices. For
-# vowels of the form "aei", both "ae" + "i" and "a" + "ei" must be
-# tested. NOTE: These rules used to have a left context of
-# $latinInitial instead of [^$latinMedial]. The problem with this is
-# sequences where an initial IEUNG is transliterated away:
-# (IEUNG)(A)(IEUNG)(EO) => aeo => (IEUNG)(AE)(IEUNG)(O)
-
- $sep < [^$latinMedial] [y w] e {} [$O $OE];
- $sep < [^$latinMedial] e {} [$O $OE $U];
- $sep < [^$latinMedial] [o a] {} [$E $EO $EU];
- $sep < [^$latinMedial] [w y] a {} [$E $EO $EU];
-
-# Similar to the above, but with an intervening $IEUNG.
-
- $sep < [^$latinMedial] [y w] e {} $IEUNG [$O $OE];
- $sep < [^$latinMedial] e {} $IEUNG [$O $OE $U];
- $sep < [^$latinMedial] [o a] {} $IEUNG [$E $EO $EU];
- $sep < [^$latinMedial] [w y] a {} $IEUNG [$E $EO $EU];
-
-# Single finals followed by IEUNG. The jamo sequence A Xf IEUNG E,
-# where Xi also exists, must be transliterated as "ax-e" to prevent
-# the round trip conversion to A Xi E.
-
- $sep < $latinMedialEnd b {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd c {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd d {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd g {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd h {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd j {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd k {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd m {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd n {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd p {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd s {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd t {} $IEUNG $jamoMedial;
-
-# Double finals followed by IEUNG. Similar to the single finals
-# followed by IEUNG. Any latin consonant pair X Y, between medials,
-# that we would split by Latin-Jamo, we must handle when it occurs as
-# part of A XYf IEUNG E, to prevent round trip conversion to A Xf Yi
-# E.
-
- $sep < $latinMedialEnd b s {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd g g {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd g s {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l b {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l g {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l h {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l m {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l p {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l s {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd l t {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd n g {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd n h {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd n j {} $IEUNG $jamoMedial;
- $sep < $latinMedialEnd s s {} $IEUNG $jamoMedial;
-
-# Split doubles. Text of the form A Xi Xf E, where XXi also occurs,
-# we transliterate as "ax-xe" to prevent round trip transliteration as
-# A XXi E.
-
- $sep < $latinMedialEnd b {} $Bi $jamoMedial;
- $sep < $latinMedialEnd d {} $Di $jamoMedial;
- $sep < $latinMedialEnd j {} $Ji $jamoMedial;
- $sep < $latinMedialEnd g {} $Gi $jamoMedial;
- $sep < $latinMedialEnd s {} $Si $jamoMedial;
-
-# XYY. This corresponds to the XYY rule in Latin-Jamo. By default
-# Latin-Jamo maps "xyy" to Xf YYi, to keep YY together. As a result,
-# "xyy" forms that correspond to XYf Yi must be transliterated as
-# "xy-y".
-
- $sep < $latinMedialEnd b s {} [$Si $SSi];
- $sep < $latinMedialEnd g s {} [$Si $SSi];
- $sep < $latinMedialEnd l b {} [$Bi $BB];
- $sep < $latinMedialEnd l g {} [$Gi $GGi];
- $sep < $latinMedialEnd l s {} [$Si $SSi];
- $sep < $latinMedialEnd n g {} [$Gi $GGi];
- $sep < $latinMedialEnd n j {} [$Ji $JJ];
-
-# Deletion of IEUNG is handled below.
-
-#----------------------------------------------------------------------
-# Latin-Jamo
-
-# [Basic, context-free Jamo-Latin rules are embedded here too. See
-# above.]
-
-# Split digraphs: Text of the form 'axye', where 'xy' is a final
-# digraph, 'x' is a final (by itself), 'y' is an initial, and 'a' and
-# 'e' are medials, we want to transliterate this as A Xf Yi E rather
-# than A XYf IEUNG E. We do NOT include text of the form "axxe",
-# since that is handled differently below. These rules are generated
-# programmatically from the jamo data.
-
- $jamoMedial {b s} $latinMedial > $Bf $Si;
- $jamoMedial {g s} $latinMedial > $Gf $Si;
- $jamoMedial {l b} $latinMedial > $L $Bi;
- $jamoMedial {l g} $latinMedial > $L $Gi;
- $jamoMedial {l h} $latinMedial > $L $Hi;
- $jamoMedial {l m} $latinMedial > $L $Mi;
- $jamoMedial {l p} $latinMedial > $L $Pi;
- $jamoMedial {l s} $latinMedial > $L $Si;
- $jamoMedial {l t} $latinMedial > $L $Ti;
- $jamoMedial {n g} $latinMedial > $Nf $Gi;
- $jamoMedial {n h} $latinMedial > $Nf $Hi;
- $jamoMedial {n j} $latinMedial > $Nf $Ji;
-
-# Single consonants are initials: Text of the form 'axe', where 'x'
-# can be an initial or a final, and 'a' and 'e' are medials, we want
-# to transliterate as A Xi E rather than A Xf IEUNG E.
-
- $jamoMedial {b} $latinMedial > $Bi;
- $jamoMedial {c} $latinMedial > $Ci;
- $jamoMedial {d} $latinMedial > $Di;
- $jamoMedial {g} $latinMedial > $Gi;
- $jamoMedial {h} $latinMedial > $Hi;
- $jamoMedial {j} $latinMedial > $Ji;
- $jamoMedial {k} $latinMedial > $Ki;
- $jamoMedial {m} $latinMedial > $Mi;
- $jamoMedial {n} $latinMedial > $Ni;
- $jamoMedial {p} $latinMedial > $Pi;
- $jamoMedial {s} $latinMedial > $Si;
- $jamoMedial {t} $latinMedial > $Ti;
-
-# Doubled initials. The sequence "axxe", where XX exists as an initial
-# (XXi), and also Xi and Xf exist (true of all digraphs XX), we want
-# to transliterate as A XXi E, rather than split to A Xf Xi E.
-
- $jamoMedial {b b} $latinMedial > $BB;
- $jamoMedial {d d} $latinMedial > $DD;
- $jamoMedial {j j} $latinMedial > $JJ;
- $jamoMedial {g g} $latinMedial > $GGi;
- $jamoMedial {s s} $latinMedial > $SSi;
-
-# XYY. Because doubled consonants bind more strongly than XY
-# consonants, we must handle the sequence "axyy" specially. Here XYf
-# and YYi must exist. In these cases, we map to Xf YYi rather than
-# XYf.
-
- $jamoMedial {b} s s > $Bf;
- $jamoMedial {g} s s > $Gf;
- $jamoMedial {l} b b > $L;
- $jamoMedial {l} g g > $L;
- $jamoMedial {l} s s > $L;
- $jamoMedial {n} g g > $Nf;
- $jamoMedial {n} j j > $Nf;
-
-# Finals: Attach consonant with preceding medial to preceding medial.
-# Do this BEFORE mapping consonants to initials. Longer keys must
-# precede shorter keys that they start with, e.g., the rule for 'bs'
-# must precede 'b'.
-
-# [BASIC Jamo-Latin FINALS handled here. Order irrelevant within this
-# block for Jamo-Latin.]
-
- $jamoMedial {bs} <> $BS;
- $jamoMedial {b} <> $Bf;
- $jamoMedial {c} <> $Cf;
- $jamoMedial {d} <> $Df;
- $jamoMedial {gg} <> $GGf;
- $jamoMedial {gs} <> $GS;
- $jamoMedial {g} <> $Gf;
- $jamoMedial {h} <> $Hf;
- $jamoMedial {j} <> $Jf;
- $jamoMedial {k} <> $Kf;
- $jamoMedial {lb} <> $LB; $jamoMedial {lg} <> $LG;
- $jamoMedial {lh} <> $LH;
- $jamoMedial {lm} <> $LM;
- $jamoMedial {lp} <> $LP;
- $jamoMedial {ls} <> $LS;
- $jamoMedial {lt} <> $LT;
- $jamoMedial {l} <> $L;
- $jamoMedial {m} <> $Mf;
- $jamoMedial {ng} <> $NG;
- $jamoMedial {nh} <> $NH;
- $jamoMedial {nj} <> $NJ;
- $jamoMedial {n} <> $Nf;
- $jamoMedial {p} <> $Pf;
- $jamoMedial {ss} <> $SSf;
- $jamoMedial {s} <> $Sf;
- $jamoMedial {t} <> $Tf;
-
-# Initials: Attach single consonant to following medial. Do this
-# AFTER mapping finals. Longer keys must precede shorter keys that
-# they start with, e.g., the rule for 'gg' must precede 'g'.
-
-# [BASIC Jamo-Latin INITIALS handled here. Order irrelevant within
-# this block for Jamo-Latin.]
-
- {gg} $latinMedial <> $GGi;
- {g} $latinMedial <> $Gi;
- {n} $latinMedial <> $Ni;
- {dd} $latinMedial <> $DD;
- {d} $latinMedial <> $Di;
- {r} $latinMedial <> $R;
- {m} $latinMedial <> $Mi;
- {bb} $latinMedial <> $BB;
- {b} $latinMedial <> $Bi;
- {ss} $latinMedial <> $SSi;
- {s} $latinMedial <> $Si;
- {jj} $latinMedial <> $JJ;
- {j} $latinMedial <> $Ji;
- {c} $latinMedial <> $Ci;
- {k} $latinMedial <> $Ki;
- {t} $latinMedial <> $Ti;
- {p} $latinMedial <> $Pi;
- {h} $latinMedial <> $Hi;
-
-# 'r' in final position. Because of the equivalency of the 'l' and
-# 'r' jamo (the glyphs are the same), we try to provide the same
-# equivalency in Latin-Jamo. The 'l' to 'r' conversion is handled
-# below. If we see an 'r' in an apparent final position, treat it
-# like 'l'. For example, "karka" => Ki A R EU Ki A without this rule.
-# Instead, we want Ki A L Ki A.
-
- $jamoMedial {r} $latinInitial > | l;
-
-# Initial + Final: If we match the next rule, we have initial then
-# final consonant with no intervening medial. We insert the null
-# vowel BEFORE it to create a well-formed syllable. (In the next rule
-# we insert a null vowel AFTER an anomalous initial.)
-
- $jamoInitial {} [bcdghjklmnpst] > $EU;
-
-# Initial + X: This block matches an initial consonant not followed by
-# a medial. We insert the null vowel after it. We handle double
-# initials explicitly here; for single initial consonants we insert EU
-# (as Latin) after them and let standard rules do the rest.
-
-# BREAKS ROUND TRIP INTEGRITY
-
- gg > $GGi $EU;
- dd > $DD $EU;
- bb > $BB $EU;
- ss > $SSi $EU;
- jj > $JJ $EU;
-
- ([bcdghjkmnprst]) > | $1 eu;
-
-# X + Final: Finally we have to deal with a consonant that can only be
-# interpreted as a final (not an initial) and which is preceded
-# neither by an initial nor a medial. It is the start of the
-# syllable, but cannot be. Most of these will already be handled by
-# the above rules. 'bs' splits into Bi EU Sf. Similar for 'gs' 'ng'
-# 'nh' 'nj'. The only problem is 'l' and digraphs starting with 'l'.
-# For this isolated case, we could add a null initial and medial,
-# which would give "la" => IEUNG EU L IEUNG A, for example. A more
-# economical solution is to transliterate isolated "l" (that is,
-# initial "l") to "r". (Other similar conversions of consonants that
-# occur neither as initials nor as finals are handled below.)
-
- l > | r;
-
-# Medials. If a medial is preceded by an initial, then we proceed
-# normally. As usual, longer keys must precede shorter ones.
-
-# [BASIC Jamo-Latin MEDIALS handled here. Order irrelevant within
-# this block for Jamo-Latin.]
-
- $jamoInitial {ae} <> $AE;
- $jamoInitial {a} <> $A;
- $jamoInitial {eo} <> $EO;
- $jamoInitial {eu} <> $EU;
- $jamoInitial {e} <> $E;
- $jamoInitial {i} <> $I;
- $jamoInitial {oe} <> $OE;
- $jamoInitial {o} <> $O;
- $jamoInitial {u} <> $U;
- $jamoInitial {wae} <> $WAE;
- $jamoInitial {wa} <> $WA;
- $jamoInitial {weo} <> $WEO;
- $jamoInitial {we} <> $WE;
- $jamoInitial {wi} <> $WI;
- $jamoInitial {yae} <> $YAE;
- $jamoInitial {ya} <> $YA;
- $jamoInitial {yeo} <> $YEO;
- $jamoInitial {ye} <> $YE;
- $jamoInitial {yi} <> $YI;
- $jamoInitial {yo} <> $YO;
- $jamoInitial {yu} <> $YU;
-
-# We may see an anomalous isolated 'w' or 'y'. In that case, we
-# interpret it as 'wi' and 'yu', respectively.
-
-# BREAKS ROUND TRIP INTEGRITY
-
- $jamoInitial {w} > | wi;
- $jamoInitial {y} > | yu;
-
-# Otherwise, insert a null consonant IEUNG before the medial (which is
-# still an untransliterated latin vowel).
-
- ($latinMedial) > $IEUNG | $1;
-
-# Convert non-jamo latin consonants to equivalents. These occur as
-# neither initials nor finals in jamo. 'l' occurs as a final, but not
-# an initial; it is handled above. The following letters (left hand
-# side) will never be output by Jamo-Latin.
-
- f > | p;
- q > | k;
- v > | b;
- x > | ks;
- z > | s;
-
-# Delete separators (Latin-Jamo).
-
- $sep > ;
-
-# Delete null consonants (Jamo-Latin). Do NOT delete null EU vowels,
-# since these may also occur in text.
-
- < $IEUNG;
-
-#- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in
-#- the INDEX file. This transliterator is, by itself, not
-#- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or
-#- inverses thereof.
-
-# eof
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Jamo.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::[[:script=Latin:][:M:]'];
+::NFD;
+::Lower;
+::Latin-ConjoiningJamo;
+::[[:script=Latin:][:M:]] NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Kannada.txt
new file mode 100644
index 00000000000..0565d8a7e63
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Kannada.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Katakana.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Katakana.txt
index 5b7fc17605c..0bc2d0b7a21 100644
--- a/Build/source/libs/icu-xetex/data/translit/Latin_Katakana.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Katakana.txt
@@ -1,179 +1,73 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# note: a global filter is more efficient, but MUST include all source chars
-#:: [\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9F [:Latin:][:Katakana:] [:nonspacing mark:]] ;
-# MINIMAL FILTER GENERATED FOR: Latin-Katakana
-### WARNING -- must add width filter, both here and below!!! ###
-:: [[\u1100-\u1112\u111A\u1121\u1160-\u1175\u11AA\u11AC-\u11AD\u11B0-\u11B5\u2190-\u2193\u2502\u25A0\u25CB\u3000-\u3002\u300C-\u300D\u3099-\u309A\u30A1-\u30ED\u30EF\u30F2-\u30F4\u30F7\u30FA-\u30FC\uFF01-\uFF5E\uFFE0-\uFFE6][',.A-Za-z~\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0304\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1FB1\u1FB9\u1FD1\u1FD9\u1FE1\u1FE9\u212A-\u212B]] ;
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Katakana.txt
+# Generated from CLDR: Thu Jul 20 16:27:17 PDT 2006
+#
+:: [[á„€-á„’á„šá„¡\u1160-ᅵᆪᆬ-ᆭᆰ-ᆵ<-↓│■○\u3000-。「-ã€\u3099-\u309Aã‚¡-ロワヲ-ヴヷヺ-ーï¼-~¢-₩][',.A-Za-z~À-ÖØ-öø-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳ\u0304Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹᾱᾹῑῙῡῩK-â„«]] ;
:: [:Latin:] fullwidth-halfwidth ();
:: NFD (NFC);
:: Lower (); # whenever transliterating from cased to uncased script, include this
-# :: NFD () ; # this would catch the odd cases where a lowercase is not in NFD, but none are important for Japanese
-
-# Uses modified Hepburn. Small changes to make unambiguous.
-
-# | Kunrei-shiki: Hepburn/MHepburn
-# | ------------------------------
-# | si: shi
-# | si ~ya: sha
-# | si ~yu: shu
-# | si ~yo: sho
-# | zi: ji
-# | zi ~ya: ja
-# | zi ~yu: ju
-# | zi ~yo: jo
-# | ti: chi
-# | ti ~ya: cha
-# | ti ~yu: chu
-# | ti ~yu: cho
-# | tu: tsu
-# | di: ji/dji
-# | du: zu/dzu
-# | hu: fu
-
-# | For foreign words:
-# | -----------------
-# | se ~i si
-# | si ~e she
-# |
-# | ze ~i zi
-# | zi ~e je
-# |
-# | te ~i ti
-# | ti ~e che
-# | te ~u tu
-# |
-# | de ~i di
-# | de ~u du
-# | de ~i di
-# |
-# | he ~u: hu
-# | hu ~a fa
-# | hu ~i fi
-# | hu ~e he
-# | hu ~o ho
-
-# Most small forms are generated, but if necessary
-# explicit small forms are given with ~a, ~ya, etc.
-
-#------------------------------------------------------
-# Variables
-
$vowel = [aeiou] ;
$consonant = [bcdfghjklmnpqrstvwxyz] ;
$macron = \u0304 ;
-
-# Variables used for doubled-consonants with tsu
-
-$kana = [\u3041-\u3094] ;
-
-$voice = [\u3099\u309B];
-$semivoice = [\u309A\u309C];
-
+$kana = [ã-ã‚”] ;
+$voice = [\u3099ã‚›];
+$semivoice = [\u309A゜];
$k_start = [カキクケコã‹ããã‘ã“] ;
-
$s_start = [サシスセソã•ã—ã™ã›ã] ;
-
$j_start = [ã‚·ã—] $voice ;
-
$t_start = [ã‚¿ãƒãƒ„テトãŸã¡ã¤ã¦ã¨] ;
-
$n_start = [ナニヌãƒãƒŽãƒ³ãªã«ã¬ã­ã®] ;
-
$h_start = [ãƒãƒ’ヘホã¯ã²ã¸ã»] ;
$f_start = [フãµ] ;
-
$m_start = [マミムメモã¾ã¿ã‚€ã‚ã‚‚] ;
-
$y_start = [ヤユヨやゆよ] ;
-
$r_start = [ラリルレロらりるれã‚] ;
-
$w_start = [ワヰヱヲã‚ã‚ã‚‘ã‚’] ;
-
-$v_start = [ワヰヱヲ]゙ ;
-
-# if ン is followed by $n_quoter, then it needs an
-# apostrophe after its romaji form to disambiguate it.
-# e.g., ン ア ! = ナ, so represent as "n'a", not "na".
-
+$v_start = [ワヰヱヲ]\u3099 ;
$n_quoter = [ア イ ウ エ オ ナ ニ ヌ ムノ ヤ ユ ヨ ン] ;
-
$small_y = [ャィュェョ] ;
-
-$iteration = \u309D ;
-
-#------------------------------------------------------
-# katakana rules
-
-# Punctuation
-
+$iteration = ã‚ ;
'.' <> 。;
',' <> ã€;
-# ' ' } [a-z] > ; # delete spaces before latin
-# ' ' < [^' '\u30A0-\u30ff] {} ['\u30A0-\u30ff] ; #insert spaces before hiragana
-
-# Iteration Mark
-# Copy previous letter & marks
-
-# TODO
-# | $1 $1 < ($kana [[:M:]$voice$semivoice]?) $iteration
-
-# Specials for katakana -- not shared with hiragana
-
-va <> ヷ ;
-vi <> ヸ ;
-ve <> ヹ ;
-vo <> ヺ ;
+va <> ワ\u3099 ;
+vi <> ヰ\u3099 ;
+ve <> ヱ\u3099 ;
+vo <> ヲ\u3099 ;
'~ka' <> ヵ ;
'~ke' <> ヶ ;
-
-# ~~~ begin shared rules ~~~
-
-#special
-
ya < '~'ャ;
yi < '~'ã‚£ ;
yu < '~'ュ;
ye < '~'ェ;
yo < '~'ョ;
-
-#normal
-
a <> ã‚¢ ;
-
-b | '~' < ヒ ゙} $small_y ;
-by } $vowel > ビ | '~y' ;
-
-ba <> ãƒã‚™ ;
-bi <> ビ ;
-bu <> ブ ;
-be <> ベ ;
-bo <> ボ ;
-
+b | '~' < ヒ \u3099} $small_y ;
+by } $vowel > ヒ\u3099 | '~y' ;
+ba <> ãƒ\u3099 ;
+bi <> ヒ\u3099 ;
+bu <> フ\u3099 ;
+be <> ヘ\u3099 ;
+bo <> ホ\u3099 ;
c } i > | s ;
c } e > | s ;
-
-da <> ã‚¿ã‚™ ;
-di <> ディ ;
-du <> デゥ ;
-de <> デ ;
-do <> ド ;
-dzu <> ヅ ;
-dja < ãƒã‚™ãƒ£ ;
-dji'~i' < ãƒã‚™ã‚£ ; # liu
-dju < ãƒã‚™ãƒ¥ ;
-dje < ãƒã‚™ã‚§ ;
-djo < ãƒã‚™ãƒ§ ;
-dji <> ãƒã‚™ ;
-dj } $vowel > ãƒã‚™ | '~y' ;
-
-# TODO: QUESTION: use ĵĴżŻ instead of dj, dz
-
+da <> ã‚¿\u3099 ;
+di <> テ\u3099ィ ;
+du <> テ\u3099ゥ ;
+de <> テ\u3099 ;
+do <> ト\u3099 ;
+dzu <> ツ\u3099 ;
+dja < ãƒ\u3099ャ ;
+dji'~i' < ãƒ\u3099ã‚£ ; # liu
+dju < ãƒ\u3099ュ ;
+dje < ãƒ\u3099ェ ;
+djo < ãƒ\u3099ョ ;
+dji <> ãƒ\u3099 ;
+dj } $vowel > ãƒ\u3099 | '~y' ;
cha < ãƒãƒ£ ;
chi'~i' < ãƒã‚£ ; # liu
chu < ãƒãƒ¥ ;
@@ -181,108 +75,80 @@ che < ãƒã‚§ ;
cho < ãƒãƒ§ ;
chi <> ム;
ch } $vowel > ム| '~y' ;
-
e <> エ ;
-
-g | '~' < ã‚­ã‚™} $small_y ;
-gy } $vowel > ã‚­ã‚™ | '~y' ;
-
-ga <> ã‚«ã‚™ ;
-gi <> ã‚­ã‚™ ;
-gu <> グ ;
-ge <> ゲ ;
-go <> ゴ ;
-
+g | '~' < ã‚­\u3099} $small_y ;
+gy } $vowel > ã‚­\u3099 | '~y' ;
+ga <> ã‚«\u3099 ;
+gi <> ã‚­\u3099 ;
+gu <> ク\u3099 ;
+ge <> ケ\u3099 ;
+go <> コ\u3099 ;
i <> イ ;
-
-# j } $vowel > ã‚·ã‚™ | '~y' ;
-
-ja <> ジャ ;
-ji'~i' < ジィ ; # liu
-ju <> ジュ ;
-je <> ジェ ;
-jo <> ジョ ;
-ji <> ã‚·ã‚™ ;
-
+ja <> シ\u3099ャ ;
+ji'~i' < ã‚·\u3099ã‚£ ; # liu
+ju <> シ\u3099ュ ;
+je <> シ\u3099ェ ;
+jo <> シ\u3099ョ ;
+ji <> ã‚·\u3099 ;
k | '~' < ã‚­} $small_y ;
ky } $vowel > ã‚­ | '~y' ;
-
ka <> ã‚« ;
ki <> ã‚­ ;
ku <> ク ;
ke <> ケ ;
ko <> コ ;
-
m | '~' < ミ} $small_y ;
my } $vowel > ミ | '~y' ;
-
ma <> マ ;
mi <> ミ ;
mu <> ム ;
me <> メ ;
mo <> モ ;
-
m } [pbfv] > ン ;
-
n | '~' < ニ } $small_y ;
ny } $vowel > ニ | '~y' ;
-
na <> ナ ;
ni <> ニ ;
nu <> ヌ ;
ne <> ム;
no <> ノ ;
-
o <> オ ;
-
-p | '~' < ピ } $small_y ;
-py } $vowel > ピ | '~y' ;
-
-pa <> ãƒã‚š ;
-pi <> ピ ;
-pu <> プ ;
-pe <> ペ ;
-po <> ポ ;
-
+p | '~' < ヒ\u309A } $small_y ;
+py } $vowel > ヒ\u309A | '~y' ;
+pa <> ãƒ\u309A ;
+pi <> ヒ\u309A ;
+pu <> フ\u309A ;
+pe <> ヘ\u309A ;
+po <> ホ\u309A ;
h | '~' < ヒ } $small_y ;
hy } $vowel > ヒ | '~y' ;
-
ha <> ム;
hi <> ヒ ;
hu <> ヘゥ ;
he <> ヘ ;
ho <> ホ ;
-
-# f | '~' < フ } $small_y ;
-# f } $vowel > フ | '~' ;
-
fa <> ファ ;
fi <> フィ ;
fe <> フェ ;
fo <> フォ ;
fu <> フ ;
-
r | '~' < リ } $small_y ;
ry } $vowel > リ | '~y' ;
-
ra <> ラ ;
ri <> リ ;
ru <> ル ;
re <> レ ;
ro <> ロ ;
-
-za <> ザ ;
-zi <> ゼィ ;
-zu <> ズ ;
-ze <> ゼ ;
-zo <> ゾ ;
-
+za <> サ\u3099 ;
+zi <> ã‚»\u3099ã‚£ ;
+zu <> ス\u3099 ;
+ze <> ã‚»\u3099 ;
+zo <> ソ\u3099 ;
sa <> サ ;
si <> セィ ;
su <> ス ;
se <> ã‚» ;
so <> ソ ;
-
sha < シャ ;
shi'~i' < ã‚·ã‚£ ; # liu
shu < シュ ;
@@ -290,58 +156,33 @@ she < シェ ;
sho < ショ ;
shi <> ã‚· ;
sh } $vowel > ã‚· | '~y' ;
-
ta <> ã‚¿ ;
ti <> ティ ;
tu <> テゥ ;
te <> テ ;
to <> ト ;
-
tsu <> ツ ;
-
-# v } $vowel > ヴ | '~' ;
-
-#'v~a' < ヴァ ; # liu
-#'v~i' < ヴィ ; # liu
-#'v~e' < ヴェ ; # liu
-#'v~o' < ヴォ ; # liu
-vu <> ヴ ;
-
+vu <> ウ\u3099 ;
u <> ウ ;
-
-# w } $vowel > ウ | '~' ;
-
wa <> ワ ;
wi <> ヰ ;
wu > ウ ;
we <> ヱ ;
wo <> ヲ ;
-
ya <> ヤ ;
yi > イ ;
yu <> ユ ;
ye > エ ;
yo <> ヨ ;
-
-# double consonants
-
-#specials
s } sh > ッ ;
t } ch > ッ ;
-
-#voiced
-
j } j <> ッ } $j_start ;
b } b <> ッ } [$h_start$f_start] $voice;
d } d <> ッ } $t_start $voice;
g } g <> ッ } $k_start $voice;
p } p <> ッ } [$h_start$f_start] $semivoice;
-# v } v <> ッ } [ワヰウヱヲã†] $voice ;
z } z <> ッ } $s_start $voice;
v } v <> ッ } $v_start;
-
-# normal
-
k } k <> ッ } $k_start ;
m } m <> ッ } $m_start ;
n } n <> ッ } $n_start ;
@@ -350,33 +191,15 @@ f } f <> ッ } $f_start ;
r } r <> ッ } $r_start ;
t } t <> ッ } $t_start ;
s } s <> ッ } $s_start ;
-
w } w <> ッ } $w_start;
y } y <> ッ } $y_start;
-
-# completeness
x } x > ッ ;
c } k > ッ ;
c } c > ッ ;
c } q > ッ ;
l } l > ッ ;
q } q > ッ ;
-# y } y > ッ ;
-# w } w > ッ ;
-
-# prolonged vowel mark. this indicates a doubling of
-# the preceding vowel sound
-
-#a < a { ー ; # liu
-#e < e { ー ; # liu
-#i < i { ー ; # liu
-#o < o { ー ; # liu
-#u < u { ー ; # liu
-
$macron <> ー ;
-
-# small forms
-
'~a' <> ã‚¡ ;
'~i' <> ã‚£ ;
'~u' <> ã‚¥ ;
@@ -389,107 +212,63 @@ $macron <> ー ;
'~yu' <> ュ ;
'~ye' > ェ ;
'~yo' <> ョ ;
-
-# iteration marks
-# TODO: make more accurate
-
j $1 < sh (y* $vowel) {ヽ$voice ;
dj $1 < ch (y* $vowel) {ヽ$voice ;
dz $1 < ts (y* $vowel) {ヽ$voice ;
-
g $1 < k (y* $vowel) {ヽ$voice ;
z $1 < s (y* $vowel) {ヽ$voice ;
d $1 < t (y* $vowel) {ヽ$voice ;
h $1 < b (y* $vowel) {ヽ$voice ;
v $1 < w (y* $vowel) {ヽ$voice ;
-
sh $1 < sh (y* $vowel) {ヽ$voice ;
j $1 < j (y* $vowel) {ヽ$voice ;
ch $1 < ch (y* $vowel) {ヽ$voice ;
dj $1 < dj(y* $vowel) {ヽ$voice ;
ts $1 < ts (y* $vowel) {ヽ$voice ;
dz $1 < dz (y* $vowel) {ヽ$voice ;
-
$1 < ($consonant y* $vowel) {ヽ$voice? ;
$1 < (.) {ヽ $voice? ; # otherwise repeat last character
- < ヽ $voice? ; # delete if no characters found
-
-# h- rule: lengthens vowel if not followed by a vowel
-
+< ヽ $voice? ; # delete if no characters found
[aeiou] } h > ー ;
-
-# one-way latin- > kana rules. these do not occur in
-# well-formed romaji representing actual japanese text.
-# their purpose is to make all romaji map to kana of
-# some sort.
-
-# the following are not really necessary, but produce
-# slightly more natural results.
-
cy > セィ ;
-dy > ディ ;
+dy > テ\u3099ィ ;
hy > ヒ ;
sy > セィ ;
ty > ティ ;
-zy > ゼィ ;
-
+zy > ã‚»\u3099ã‚£ ;
h > ヘ ;
-
-# isolated consonants listed here so as not to mask
-# longer rules above.
-
ch > ãƒ;
sh > ã‚· ;
-dz > ヅ ;
-dj > ãƒã‚™;
-
-b > ブ ;
-d > デ ;
-g > グ ;
+dz > ツ\u3099 ;
+dj > ãƒ\u3099;
+b > フ\u3099 ;
+d > テ\u3099 ;
+g > ク\u3099 ;
k > ク ;
m > ム ;
n'' < ン } $n_quoter ;
n <> ン ;
-p > プ ;
+p > フ\u309A ;
r > ル ;
s > ス ;
t > テ ;
y > イ ;
-z > ズ ;
-v > ヴ ;
-
+z > ス\u3099 ;
+v > ウ\u3099 ;
f > フ;
-j > ã‚·ã‚™;
+j > ã‚·\u3099;
w > ウ;
-
ß > | ss ;
æ > | e ;
ð > | d ;
ø > | u ;
þ > | th ;
-
-# simple substitutions using backup
-
c > | k ;
l > | r ;
q > | k ;
x > | ks ;
-
-# ~~~ END shared rules ~~~
-
-#------------------------------------------------------
-# Final cleanup
-
'~' > ; # delete stray tildes between letters
[:Katakana:] { '' } [:Latin:] > ; # delete stray quotes between letters
-# [\u02BE[:Nonspacing Mark:]-[\u3099-\u309C]] > ; # delete any non-spacing marks that we didn't use
-
-:: NFC (NFD) ;
+:: NFC (NFD) ;
:: ([:Katakana:] halfwidth-fullwidth);
-
-# note: a global filter is more efficient, but MUST include all source chars!!
-#:: ([\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9F [:Latin:][:Katakana:] [:nonspacing mark:]]);
-# MINIMAL FILTER GENERATED FOR: Latin-Katakana BACKWARD
-:: ( [[\ -~\u00A2-\u00A3\u00A5-\u00A6\u00AC\u0304\u20A9\uFF61-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE8-\uFFEE][~\u3001-\u3002\u304C\u304E\u3050\u3052\u3054\u3056\u3058\u305A\u305C\u305E\u3060\u3062\u3065\u3067\u3069\u3070-\u3071\u3073-\u3074\u3076-\u3077\u3079-\u307A\u307C-\u307D\u3094\u3099-\u309B\u309E\u30A1-\u30FA\u30FC-\u30FE]] ) ;
-
-# eof
+:: ( [[\ -~¢-£¥-¦¬\u0304₩。-하-ᅦᅧ-ï¿ï¿’-ï¿—ï¿š-ᅵ│-ï¿®][~ã€-。ãŒãŽãã’ã”ã–ã˜ãšãœãžã ã¢ã¥ã§ã©ã°-ã±ã³-ã´ã¶-ã·ã¹-ãºã¼-ã½ã‚”\u3099-゛ゞァ-ヺー-ヾ]] ) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Malayalam.txt
new file mode 100644
index 00000000000..376c99096dc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Malayalam.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_NumericPinyin.txt b/Build/source/libs/icu-xetex/data/translit/Latin_NumericPinyin.txt
index 0296ebd8b8d..867f52d1fa0 100644
--- a/Build/source/libs/icu-xetex/data/translit/Latin_NumericPinyin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_NumericPinyin.txt
@@ -1,32 +1,17 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# According to the pinyin definitions I've been able to find:
-# 'a', 'e' are the preferred bases
-# otherwise 'o'
-# otherwise last vowel
-
-# The trailing form of syllables are the following:
-# "a", "ai", "ao", "an", "ang",
-# "o", "ou", "ong",
-# "e", "ei", "er", "en", "eng",
-# "i", "ia", "iao", "ie", "iu", "ian", "in", "iang", "ing", "iong",
-# "u", "ua", "uo", "uai", "ui", "uan", "un", "uang", "ueng",
-# "ü", "üe", "üan", "ün"
-# so the letters the tone will 'hop' are:
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_NumericPinyin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
::NFD (NFC);
$tone = [\u0304\u0301\u030C\u0300\u0306] ;
-
-# Move the tone to the end of a syllable, and convert to number
e {($tone) r} > r &tone-digit($1);
($tone) ( [i o n u {o n} {n g}]) > $2 &tone-digit($1);
($tone) > &tone-digit($1);
-
-# The following backs up until it finds the right vowel, then deposits the tone
-
$vowel = [aAeEiIoOuUüÜ {u\u0308} {U\u0308} ];
$consonant = [[a-z A-Z] - [$vowel]];
$digit = [1-5];
@@ -34,8 +19,4 @@ $1 &digit-tone($3) $2 < ([aAeE]) ($vowel* $consonant*) ($digit);
$1 &digit-tone($3) $2 < ([oO]) ([$vowel-[aeAE]]* $consonant*) ($digit);
$1 &digit-tone($3) $2 < ($vowel) ($consonant*) ($digit);
&digit-tone($1) < [:letter:] {($digit)};
-
::NFC (NFD);
-
-
-
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Oriya.txt
new file mode 100644
index 00000000000..3b5c625f882
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Oriya.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Tamil.txt
new file mode 100644
index 00000000000..31b2e2afc47
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Tamil.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Telugu.txt
new file mode 100644
index 00000000000..eade0ed9ac7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Telugu.txt
@@ -0,0 +1,15 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::['.0-9A-Za-z~À-ÅÇ-ÃÑ-ÖÙ-Ãà-åç-ïñ-öù-ýÿ-ÄÄ’-ĥĨ-Ä°Ä´-ķĹ-ľŃ-ňŌ-Å‘Å”-ťŨ-žƠ-ơƯ-Æ°Ç-ǜǞ-ǣǦ-Ç­Ç°Ç´-ǵǸ-țȞ-ȟȦ-ȳʔ\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344Î…-ΆΈ-ΊΌΎ-Îά-ΰό-ώϓЃЌЎЙйѓќўÓ-Ó‚Ó-Ó‘Ó–-Ó—Ó¢-Ó£Ó®-ӯḀ-ẙẠ-ỹá¼á¼ƒ-ἅἇἉἋ-á¼á¼á¼‘ἓ-ἕἙἛ-á¼á¼¡á¼£-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿá½á½ƒ-ὅὉὋ-á½á½‘ὓ-ὕὗὙὛá½á½Ÿá½¡á½£-ὥὧὩὫ-ὭὯάέήίόύώá¾á¾ƒ-ᾅᾇᾉᾋ-á¾á¾á¾‘ᾓ-ᾕᾗᾙᾛ-á¾á¾Ÿá¾¡á¾£-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎á¿-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-á¿©á¿«-Ῥ΅ῴΌΏK-â„«\uE04D\uE064];
+::NFD;
+::Lower;
+::Latin-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Latin_Thai.txt b/Build/source/libs/icu-xetex/data/translit/Latin_Thai.txt
new file mode 100644
index 00000000000..950ae20b465
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Latin_Thai.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Latin_Thai.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[[:Latin:][:Mn:][:Me:] \u0020\u0026 ;0-9|~«»ʹʹ‡ˌ];
+::NFD;
+::Latin-ThaiLogical;
+::ThaiLogical-Thai;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Bengali.txt
new file mode 100644
index 00000000000..4f9a4ad54e5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Devanagari.txt
new file mode 100644
index 00000000000..a0407183abe
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Gujarati.txt
new file mode 100644
index 00000000000..444ff4d8e01
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Gurmukhi.txt
new file mode 100644
index 00000000000..87f5254fb67
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_InterIndic.txt
index 3fd42e086c7..b253e6c3e51 100644
--- a/Build/source/libs/icu-xetex/data/translit/Malayalam_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_InterIndic.txt
@@ -1,85 +1,84 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Malayalam-InterIndic
-#:: NFD (NFC) ;
-
-\u0D02>\uE002; # SIGN ANUSVARA
-\u0D03>\uE003; # SIGN VISARGA
-\u0D05>\uE005; # LETTER A
-\u0D06>\uE006; # LETTER AA
-\u0D07>\uE007; # LETTER I
-\u0D08>\uE008; # LETTER II
-\u0D09>\uE009; # LETTER U
-\u0D0A>\uE00A; # LETTER UU
-\u0D0B>\uE00B; # LETTER VOCALIC R
-\u0D0C>\uE00C; # LETTER VOCALIC L
-\u0D0E>\uE00E; # LETTER E
-\u0D0F>\uE00F; # LETTER EE
-\u0D10>\uE010; # LETTER AI
-\u0D12>\uE012; # LETTER O
-\u0D13>\uE013; # LETTER OO
-\u0D14>\uE014; # LETTER AU
-\u0D15>\uE015; # LETTER KA
-\u0D16>\uE016; # LETTER KHA
-\u0D17>\uE017; # LETTER GA
-\u0D18>\uE018; # LETTER GHA
-\u0D19>\uE019; # LETTER NGA
-\u0D1A>\uE01A; # LETTER CA
-\u0D1B>\uE01B; # LETTER CHA
-\u0D1C>\uE01C; # LETTER JA
-\u0D1D>\uE01D; # LETTER JHA
-\u0D1E>\uE01E; # LETTER NYA
-\u0D1F>\uE01F; # LETTER TTA
-\u0D20>\uE020; # LETTER TTHA
-\u0D21>\uE021; # LETTER DDA
-\u0D22>\uE022; # LETTER DDHA
-\u0D23>\uE023; # LETTER NNA
-\u0D24>\uE024; # LETTER TA
-\u0D25>\uE025; # LETTER THA
-\u0D26>\uE026; # LETTER DA
-\u0D27>\uE027; # LETTER DHA
-\u0D28>\uE028; # LETTER NA
-\u0D2A>\uE02A; # LETTER PA
-\u0D2B>\uE02B; # LETTER PHA
-\u0D2C>\uE02C; # LETTER BA
-\u0D2D>\uE02D; # LETTER BHA
-\u0D2E>\uE02E; # LETTER MA
-\u0D2F>\uE02F; # LETTER YA
-\u0D30>\uE030; # LETTER RA
-\u0D31>\uE031; # LETTER RRA
-\u0D32>\uE032; # LETTER LA
-\u0D33>\uE033; # LETTER LLA
-\u0D34>\uE034; # LETTER LLLA
-\u0D35>\uE035; # LETTER VA
-\u0D36>\uE036; # LETTER SHA
-\u0D37>\uE037; # LETTER SSA
-\u0D38>\uE038; # LETTER SA
-\u0D39>\uE039; # LETTER HA
-\u0D3E>\uE03E; # VOWEL SIGN AA
-\u0D3F>\uE03F; # VOWEL SIGN I
-\u0D40>\uE040; # VOWEL SIGN II
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+à´‚>\uE002; # SIGN ANUSVARA
+à´ƒ>\uE003; # SIGN VISARGA
+à´…>\uE005; # LETTER A
+à´†>\uE006; # LETTER AA
+à´‡>\uE007; # LETTER I
+à´ˆ>\uE008; # LETTER II
+à´‰>\uE009; # LETTER U
+à´Š>\uE00A; # LETTER UU
+à´‹>\uE00B; # LETTER VOCALIC R
+ഌ>\uE00C; # LETTER VOCALIC L
+à´Ž>\uE00E; # LETTER E
+à´>\uE00F; # LETTER EE
+à´>\uE010; # LETTER AI
+à´’>\uE012; # LETTER O
+à´“>\uE013; # LETTER OO
+à´”>\uE014; # LETTER AU
+à´•>\uE015; # LETTER KA
+à´–>\uE016; # LETTER KHA
+à´—>\uE017; # LETTER GA
+à´˜>\uE018; # LETTER GHA
+à´™>\uE019; # LETTER NGA
+à´š>\uE01A; # LETTER CA
+à´›>\uE01B; # LETTER CHA
+ജ>\uE01C; # LETTER JA
+à´>\uE01D; # LETTER JHA
+à´ž>\uE01E; # LETTER NYA
+à´Ÿ>\uE01F; # LETTER TTA
+à´ >\uE020; # LETTER TTHA
+à´¡>\uE021; # LETTER DDA
+à´¢>\uE022; # LETTER DDHA
+à´£>\uE023; # LETTER NNA
+à´¤>\uE024; # LETTER TA
+à´¥>\uE025; # LETTER THA
+à´¦>\uE026; # LETTER DA
+à´§>\uE027; # LETTER DHA
+à´¨>\uE028; # LETTER NA
+à´ª>\uE02A; # LETTER PA
+à´«>\uE02B; # LETTER PHA
+à´¬>\uE02C; # LETTER BA
+à´­>\uE02D; # LETTER BHA
+à´®>\uE02E; # LETTER MA
+à´¯>\uE02F; # LETTER YA
+à´°>\uE030; # LETTER RA
+à´±>\uE031; # LETTER RRA
+à´²>\uE032; # LETTER LA
+à´³>\uE033; # LETTER LLA
+à´´>\uE034; # LETTER LLLA
+à´µ>\uE035; # LETTER VA
+à´¶>\uE036; # LETTER SHA
+à´·>\uE037; # LETTER SSA
+à´¸>\uE038; # LETTER SA
+à´¹>\uE039; # LETTER HA
+à´¾>\uE03E; # VOWEL SIGN AA
+à´¿>\uE03F; # VOWEL SIGN I
+ീ>\uE040; # VOWEL SIGN II
\u0D41>\uE041; # VOWEL SIGN U
\u0D42>\uE042; # VOWEL SIGN UU
\u0D43>\uE043; # VOWEL SIGN VOCALIC R
-\u0D46>\uE046; # VOWEL SIGN E
-\u0D47>\uE047; # VOWEL SIGN EE
-\u0D48>\uE048; # VOWEL SIGN AI
+െ>\uE046; # VOWEL SIGN E
+േ>\uE047; # VOWEL SIGN EE
+ൈ>\uE048; # VOWEL SIGN AI
\u0D4D>\uE04D; # SIGN VIRAMA
-\u0D57>\uE057; # AU LENGTH MARK
-\u0D60>\uE060; # LETTER VOCALIC RR
-\u0D61>\uE061; # LETTER VOCALIC LL
-\u0D66>\uE066; # DIGIT ZERO
-\u0D67>\uE067; # DIGIT ONE
-\u0D68>\uE068; # DIGIT TWO
-\u0D69>\uE069; # DIGIT THREE
-\u0D6A>\uE06A; # DIGIT FOUR
-\u0D6B>\uE06B; # DIGIT FIVE
-\u0D6C>\uE06C; # DIGIT SIX
-\u0D6D>\uE06D; # DIGIT SEVEN
-\u0D6E>\uE06E; # DIGIT EIGHT
-\u0D6F>\uE06F; # DIGIT NINE
-# :: NFC (NFD) ;
-# eof
+ൗ>\uE057; # AU LENGTH MARK
+ൠ>\uE060; # LETTER VOCALIC RR
+ൡ>\uE061; # LETTER VOCALIC LL
+൦>\uE066; # DIGIT ZERO
+൧>\uE067; # DIGIT ONE
+൨>\uE068; # DIGIT TWO
+൩>\uE069; # DIGIT THREE
+൪>\uE06A; # DIGIT FOUR
+൫>\uE06B; # DIGIT FIVE
+൬>\uE06C; # DIGIT SIX
+൭>\uE06D; # DIGIT SEVEN
+൮>\uE06E; # DIGIT EIGHT
+൯>\uE06F; # DIGIT NINE
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Kannada.txt
new file mode 100644
index 00000000000..4f715c58a67
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Latin.txt
new file mode 100644
index 00000000000..d335bbba340
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Oriya.txt
new file mode 100644
index 00000000000..127507d7027
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Tamil.txt
new file mode 100644
index 00000000000..7cfd2e3e044
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Malayalam_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Malayalam_Telugu.txt
new file mode 100644
index 00000000000..283daf98eba
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Malayalam_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Malayalam_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à´‚-ഃഅ-ഌഎ-à´à´’-നപ-ഹാ-\u0D43െ-ൈൊ-\u0D4Dൗൠ-ൡ൦-൯];
+::NFD;
+::Malayalam-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Bengali.txt
new file mode 100644
index 00000000000..96fdd548b0a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Devanagari.txt
new file mode 100644
index 00000000000..a9a67f18499
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Gujarati.txt
new file mode 100644
index 00000000000..5d5e956db5b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Gurmukhi.txt
new file mode 100644
index 00000000000..90e418c6f8a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_InterIndic.txt
index 937d919cdf7..cb2dec53e70 100644
--- a/Build/source/libs/icu-xetex/data/translit/Oriya_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_InterIndic.txt
@@ -1,95 +1,90 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Oriya-InterIndic
-#:: NFD (NFC) ;
-#\u0B21\u0B3C>\uE05C;# LETTER RRA
-#\u0B22\u0B3C>\uE05D;# LETTER RHA
-\u0B47\u0B56>\uE048;# VOWEL SIGN AI
-\u0B47\u0B3E>\uE04B;# VOWEL SIGN O
-\u0B47\u0B57>\uE04C;# VOWEL SIGN AU
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+à­‡\u0B56>\uE048;# VOWEL SIGN AI
+ୋ>\uE04B;# VOWEL SIGN O
+ୌ>\uE04C;# VOWEL SIGN AU
\u0B01>\uE001; # SIGN CANDRABINDU
-\u0B02>\uE002; # SIGN ANUSVARA
-\u0B03>\uE003; # SIGN VISARGA
-\u0B05>\uE005; # LETTER A
-\u0B06>\uE006; # LETTER AA
-\u0B07>\uE007; # LETTER I
-\u0B08>\uE008; # LETTER II
-\u0B09>\uE009; # LETTER U
-\u0B0A>\uE00A; # LETTER UU
-\u0B0B>\uE00B; # LETTER VOCALIC R
-\u0B0C>\uE00C; # LETTER VOCALIC L
-\u0B0F>\uE00F; # LETTER E
-\u0B10>\uE010; # LETTER AI
-\u0B13>\uE013; # LETTER O
-\u0B14>\uE014; # LETTER AU
-\u0B15>\uE015; # LETTER KA
-\u0B16>\uE016; # LETTER KHA
-\u0B17>\uE017; # LETTER GA
-\u0B18>\uE018; # LETTER GHA
-\u0B19>\uE019; # LETTER NGA
-\u0B1A>\uE01A; # LETTER CA
-\u0B1B>\uE01B; # LETTER CHA
-\u0B1C>\uE01C; # LETTER JA
-\u0B1D>\uE01D; # LETTER JHA
-\u0B1E>\uE01E; # LETTER NYA
-\u0B1F>\uE01F; # LETTER TTA
-\u0B20>\uE020; # LETTER TTHA
-\u0B21>\uE021; # LETTER DDA
-\u0B22>\uE022; # LETTER DDHA
-\u0B23>\uE023; # LETTER NNA
-\u0B24>\uE024; # LETTER TA
-\u0B25>\uE025; # LETTER THA
-\u0B26>\uE026; # LETTER DA
-\u0B27>\uE027; # LETTER DHA
-\u0B28>\uE028; # LETTER NA
-\u0B2A>\uE02A; # LETTER PA
-\u0B2B>\uE02B; # LETTER PHA
-\u0B2C>\uE02C; # LETTER BA
-\u0B2D>\uE02D; # LETTER BHA
-\u0B2E>\uE02E; # LETTER MA
-\u0B2F>\uE02F; # LETTER YA
-\u0B30>\uE030; # LETTER RA
-\u0B32>\uE032; # LETTER LA
-\u0B33>\uE033; # LETTER LLA
-\u0B35>\uE035; # LETTER VA
-\u0B36>\uE036; # LETTER SHA
-\u0B37>\uE037; # LETTER SSA
-\u0B38>\uE038; # LETTER SA
-\u0B39>\uE039; # LETTER HA
+ଂ>\uE002; # SIGN ANUSVARA
+ଃ>\uE003; # SIGN VISARGA
+ଅ>\uE005; # LETTER A
+ଆ>\uE006; # LETTER AA
+ଇ>\uE007; # LETTER I
+ଈ>\uE008; # LETTER II
+ଉ>\uE009; # LETTER U
+ଊ>\uE00A; # LETTER UU
+ଋ>\uE00B; # LETTER VOCALIC R
+ଌ>\uE00C; # LETTER VOCALIC L
+à¬>\uE00F; # LETTER E
+à¬>\uE010; # LETTER AI
+ଓ>\uE013; # LETTER O
+ଔ>\uE014; # LETTER AU
+କ>\uE015; # LETTER KA
+ଖ>\uE016; # LETTER KHA
+ଗ>\uE017; # LETTER GA
+ଘ>\uE018; # LETTER GHA
+ଙ>\uE019; # LETTER NGA
+ଚ>\uE01A; # LETTER CA
+ଛ>\uE01B; # LETTER CHA
+ଜ>\uE01C; # LETTER JA
+à¬>\uE01D; # LETTER JHA
+ଞ>\uE01E; # LETTER NYA
+ଟ>\uE01F; # LETTER TTA
+ଠ>\uE020; # LETTER TTHA
+ଡ>\uE021; # LETTER DDA
+ଢ>\uE022; # LETTER DDHA
+ଣ>\uE023; # LETTER NNA
+ତ>\uE024; # LETTER TA
+ଥ>\uE025; # LETTER THA
+ଦ>\uE026; # LETTER DA
+ଧ>\uE027; # LETTER DHA
+ନ>\uE028; # LETTER NA
+ପ>\uE02A; # LETTER PA
+ଫ>\uE02B; # LETTER PHA
+ବ>\uE02C; # LETTER BA
+ଭ>\uE02D; # LETTER BHA
+ମ>\uE02E; # LETTER MA
+ଯ>\uE02F; # LETTER YA
+ର>\uE030; # LETTER RA
+ଲ>\uE032; # LETTER LA
+ଳ>\uE033; # LETTER LLA
+ଵ>\uE035; # LETTER VA
+ଶ>\uE036; # LETTER SHA
+ଷ>\uE037; # LETTER SSA
+ସ>\uE038; # LETTER SA
+ହ>\uE039; # LETTER HA
\u0B3C>\uE03C; # SIGN NUKTA
-\u0B3D>\uE03D; # SIGN AVAGRAHA
-\u0B3E>\uE03E; # VOWEL SIGN AA
+ଽ>\uE03D; # SIGN AVAGRAHA
+ା>\uE03E; # VOWEL SIGN AA
\u0B3F>\uE03F; # VOWEL SIGN I
-\u0B40>\uE040; # VOWEL SIGN II
+à­€>\uE040; # VOWEL SIGN II
\u0B41>\uE041; # VOWEL SIGN U
\u0B42>\uE042; # VOWEL SIGN UU
\u0B43>\uE043; # VOWEL SIGN VOCALIC R
-\u0B47>\uE047; # VOWEL SIGN E
-#
+à­‡>\uE047; # VOWEL SIGN E
\u0B4D>\uE04D; # SIGN VIRAMA
\u0B56>\uE056; # AI LENGTH MARK
-\u0B57>\uE057; # AU LENGTH MARK
-\u0964>\ue064; # DANDA
-\u0965>\ue065; # DOUBLE DANDA
-#
-\u0B5F>\uE05F; # LETTER YYA
-\u0B60>\uE060; # LETTER VOCALIC RR
-\u0B61>\uE061; # LETTER VOCALIC LL
-\u0B66>\uE066; # DIGIT ZERO
-\u0B67>\uE067; # DIGIT ONE
-\u0B68>\uE068; # DIGIT TWO
-\u0B69>\uE069; # DIGIT THREE
-\u0B6A>\uE06A; # DIGIT FOUR
-\u0B6B>\uE06B; # DIGIT FIVE
-\u0B6C>\uE06C; # DIGIT SIX
-\u0B6D>\uE06D; # DIGIT SEVEN
-\u0B6E>\uE06E; # DIGIT EIGHT
-\u0B6F>\uE06F; # DIGIT NINE
-\u0B70>\ue07B; # ISSHAR
-\u0B71>\ue081; # LETTER WA
-# :: NFC (NFD) ;
-# eof
+à­—>\uE057; # AU LENGTH MARK
+।>\uE064; # DANDA
+॥>\uE065; # DOUBLE DANDA
+à­Ÿ>\uE05F; # LETTER YYA
+à­ >\uE060; # LETTER VOCALIC RR
+à­¡>\uE061; # LETTER VOCALIC LL
+à­¦>\uE066; # DIGIT ZERO
+à­§>\uE067; # DIGIT ONE
+à­¨>\uE068; # DIGIT TWO
+à­©>\uE069; # DIGIT THREE
+à­ª>\uE06A; # DIGIT FOUR
+à­«>\uE06B; # DIGIT FIVE
+à­¬>\uE06C; # DIGIT SIX
+à­­>\uE06D; # DIGIT SEVEN
+à­®>\uE06E; # DIGIT EIGHT
+à­¯>\uE06F; # DIGIT NINE
+à­°>\uE07B; # ISSHAR
+à­±>\uE081; # LETTER WA
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Kannada.txt
new file mode 100644
index 00000000000..797e7010af3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Latin.txt
new file mode 100644
index 00000000000..54ac76fad59
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[।-॥\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵଶ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­°à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Malayalam.txt
new file mode 100644
index 00000000000..c59d1e8afae
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Tamil.txt
new file mode 100644
index 00000000000..529584da38b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Oriya_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Oriya_Telugu.txt
new file mode 100644
index 00000000000..29469ee634c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Oriya_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Oriya_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[\u0B01-ଃଅ-ଌà¬-à¬à¬“-ନପ-ରଲ-ଳଵ-ହ\u0B3C-\u0B43à­‡-ୈୋ-\u0B4D\u0B56-à­—à­œ-à­à­Ÿ-à­¡à­¦-à­±];
+::NFD;
+::Oriya-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Pinyin_NumericPinyin.txt b/Build/source/libs/icu-xetex/data/translit/Pinyin_NumericPinyin.txt
new file mode 100644
index 00000000000..6062cb0ffc6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Pinyin_NumericPinyin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Pinyin_NumericPinyin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+\u0304 <> 1;
+\u0301 <> 2;
+\u030C <> 3;
+\u0300 <> 4;
+< 5;
diff --git a/Build/source/libs/icu-xetex/data/translit/Spacedhan_Han.txt b/Build/source/libs/icu-xetex/data/translit/Spacedhan_Han.txt
new file mode 100644
index 00000000000..8f2f39edb4a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Spacedhan_Han.txt
@@ -0,0 +1,10 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Spacedhan_Han.txt
+# Generated from CLDR: Thu Jul 20 14:55:41 PDT 2006
+#
+::null;
diff --git a/Build/source/libs/icu-xetex/data/translit/Syriac_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Syriac_Latin.txt
new file mode 100644
index 00000000000..ed746144933
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Syriac_Latin.txt
@@ -0,0 +1,56 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Syriac_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+Ü« <> sh;
+Üž > yh;
+Ü– <> dr;
+Ü <> ʾ;
+\u0711 > ʾ;
+Ü’ <> b;
+Ü“ <> g;
+Ü” > g;
+Ü• <> d;
+Ü— <> h;
+ܘ <> w;
+Ü™ <> z;
+ܚ <> ḥ;
+Ü› <> t\u0323;
+ܜ > t\u0323;
+Ü <> y;
+ÜŸ <> k;
+Ü  <> l;
+Ü¡ <> m;
+Ü¢ <> n;
+Ü£ <> s;
+ܤ > s;
+Ü¥ > Ê¿;
+ܦ <> p;
+ܧ > p;
+ܨ <> ṣ;
+Ü© <> q;
+ܪ <> r;
+ܬ <> t;
+\u0730 > a;
+\u0731 > a;
+\u0732 <> a;
+\u0733 > o;
+\u0734 > o;
+\u0735 > a;
+\u0736 > e;
+\u0737 > e;
+\u0738 <> e;
+\u0739 <> Ä“;
+\u073A > i;
+\u073B > i;
+\u0742 <> i;
+\u073D > u;
+\u073E > u;
+\u073C <> u;
+\u073F <> o;
+Ü > \*;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Bengali.txt
new file mode 100644
index 00000000000..f3d7590cd47
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Devanagari.txt
new file mode 100644
index 00000000000..b86606f961e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Gujarati.txt
new file mode 100644
index 00000000000..697f5290d84
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Gurmukhi.txt
new file mode 100644
index 00000000000..ad77928b669
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_InterIndic.txt
index c7808b539ca..f6a11883449 100644
--- a/Build/source/libs/icu-xetex/data/translit/Tamil_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_InterIndic.txt
@@ -1,77 +1,73 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2005, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Tamil-InterIndic
-#:: NFD (NFC) ;
-
-\u0BC6\u0BBE>\uE04A;# VOWEL SIGN O
-\u0BC7\u0BBE>\uE04B;# VOWEL SIGN OO
-\u0BC6\u0BD7>\uE04C;# VOWEL SIGN AU
-\u0B92\u0BD7>\uE014;# LETTER AU
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+ொ>\uE04A;# VOWEL SIGN O
+ோ>\uE04B;# VOWEL SIGN OO
+ௌ>\uE04C;# VOWEL SIGN AU
+ஔ>\uE014;# LETTER AU
\u0B82>\uE002; # SIGN ANUSVARA
-\u0B83>\uE003; # SIGN VISARGA
-\u0B85>\uE005; # LETTER A
-\u0B86>\uE006; # LETTER AA
-\u0B87>\uE007; # LETTER I
-\u0B88>\uE008; # LETTER II
-\u0B89>\uE009; # LETTER U
-\u0B8A>\uE00A; # LETTER UU
-\u0B8E>\uE00E; # LETTER E
-\u0B8F>\uE00F; # LETTER EE
-\u0B90>\uE010; # LETTER AI
-\u0B92>\uE012; # LETTER O
-\u0B93>\uE013; # LETTER OO
-\u0B94>\uE014; # LETTER AU
-\u0B95>\uE015; # LETTER KA
-\u0B99>\uE019; # LETTER NGA
-\u0B9A>\uE01A; # LETTER CA
-\u0B9C>\uE01C; # LETTER JA
-\u0B9E>\uE01E; # LETTER NYA
-\u0B9F>\uE01F; # LETTER TTA
-\u0BA3>\uE023; # LETTER NNA
-\u0BA4>\uE024; # LETTER TA
-\u0BA8>\uE028; # LETTER NA
-\u0BA9>\uE029; # LETTER NNNA
-\u0BAA>\uE02A; # LETTER PA
-\u0BAE>\uE02E; # LETTER MA
-\u0BAF>\uE02F; # LETTER YA
-\u0BB0>\uE030; # LETTER RA
-\u0BB1>\uE031; # LETTER RRA
-\u0BB2>\uE032; # LETTER LA
-\u0BB3>\uE033; # LETTER LLA
-\u0BB4>\uE034; # LETTER LLLA
-\u0BB5>\uE035; # LETTER VA
-\u0BB6>\uE036; # LETTER SHA
-\u0BB7>\uE037; # LETTER SSA
-\u0BB8>\uE038; # LETTER SA
-\u0BB9>\uE039; # LETTER HA
-\u0BBE>\uE03E; # VOWEL SIGN AA
-\u0BBF>\uE03F; # VOWEL SIGN I
+ஃ>\uE003; # SIGN VISARGA
+à®…>\uE005; # LETTER A
+ஆ>\uE006; # LETTER AA
+இ>\uE007; # LETTER I
+ஈ>\uE008; # LETTER II
+உ>\uE009; # LETTER U
+ஊ>\uE00A; # LETTER UU
+எ>\uE00E; # LETTER E
+à®>\uE00F; # LETTER EE
+à®>\uE010; # LETTER AI
+à®’>\uE012; # LETTER O
+ஓ>\uE013; # LETTER OO
+à®”>\uE014; # LETTER AU
+க>\uE015; # LETTER KA
+à®™>\uE019; # LETTER NGA
+ச>\uE01A; # LETTER CA
+ஜ>\uE01C; # LETTER JA
+ஞ>\uE01E; # LETTER NYA
+ட>\uE01F; # LETTER TTA
+ண>\uE023; # LETTER NNA
+த>\uE024; # LETTER TA
+ந>\uE028; # LETTER NA
+ன>\uE029; # LETTER NNNA
+ப>\uE02A; # LETTER PA
+à®®>\uE02E; # LETTER MA
+ய>\uE02F; # LETTER YA
+à®°>\uE030; # LETTER RA
+à®±>\uE031; # LETTER RRA
+ல>\uE032; # LETTER LA
+ள>\uE033; # LETTER LLA
+à®´>\uE034; # LETTER LLLA
+வ>\uE035; # LETTER VA
+ஶ>\uE036; # LETTER SHA
+à®·>\uE037; # LETTER SSA
+ஸ>\uE038; # LETTER SA
+ஹ>\uE039; # LETTER HA
+ா>\uE03E; # VOWEL SIGN AA
+ி>\uE03F; # VOWEL SIGN I
\u0BC0>\uE040; # VOWEL SIGN II
-\u0BC1>\uE041; # VOWEL SIGN U
-\u0BC2>\uE042; # VOWEL SIGN UU
-\u0BC6>\uE046; # VOWEL SIGN E
-\u0BC7>\uE047; # VOWEL SIGN EE
-\u0BC8>\uE048; # VOWEL SIGN AI
-
+à¯>\uE041; # VOWEL SIGN U
+ூ>\uE042; # VOWEL SIGN UU
+ெ>\uE046; # VOWEL SIGN E
+ே>\uE047; # VOWEL SIGN EE
+ை>\uE048; # VOWEL SIGN AI
\u0BCD>\uE04D; # SIGN VIRAMA
-\u0BD7>\uE057; # AU LENGTH MARK
-\u0BE7>\uE067; # DIGIT ONE
-\u0BE8>\uE068; # DIGIT TWO
-\u0BE9>\uE069; # DIGIT THREE
-\u0BEA>\uE06A; # DIGIT FOUR
-\u0BEB>\uE06B; # DIGIT FIVE
-\u0BEC>\uE06C; # DIGIT SIX
-\u0BED>\uE06D; # DIGIT SEVEN
-\u0BEE>\uE06E; # DIGIT EIGHT
-\u0BEF>\uE06F; # DIGIT NINE
-\u0BF0>\uE067\uE066; # UNMAPPED Tamil-InterIndic: NUMBER TEN
-\u0BF1>\uE067\uE066\uE066; # UNMAPPED Tamil-InterIndic: NUMBER ONE HUNDRED
-\u0BF2>\uE067\uE066\uE066\uE066;# UNMAPPED Tamil-InterIndic: NUMBER ONE THOUSAND
-0>\ue066;
-
-# :: NFC (NFD) ;
-# eof
+ௗ>\uE057; # AU LENGTH MARK
+௧>\uE067; # DIGIT ONE
+௨>\uE068; # DIGIT TWO
+௩>\uE069; # DIGIT THREE
+௪>\uE06A; # DIGIT FOUR
+௫>\uE06B; # DIGIT FIVE
+௬>\uE06C; # DIGIT SIX
+௭>\uE06D; # DIGIT SEVEN
+௮>\uE06E; # DIGIT EIGHT
+௯>\uE06F; # DIGIT NINE
+௰>\uE067\uE066; # UNMAPPED Tamil-InterIndic: NUMBER TEN
+௱>\uE067\uE066\uE066; # UNMAPPED Tamil-InterIndic: NUMBER ONE HUNDRED
+௲>\uE067\uE066\uE066\uE066;# UNMAPPED Tamil-InterIndic: NUMBER ONE THOUSAND
+0>\uE066;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Kannada.txt
new file mode 100644
index 00000000000..2e0063b74d9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Latin.txt
new file mode 100644
index 00000000000..4d809bb2ba1
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Malayalam.txt
new file mode 100644
index 00000000000..335bdf362a4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Oriya.txt
new file mode 100644
index 00000000000..08fcacc5397
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tamil_Telugu.txt b/Build/source/libs/icu-xetex/data/translit/Tamil_Telugu.txt
new file mode 100644
index 00000000000..69e95887325
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Tamil_Telugu.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Tamil_Telugu.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[0\u0B82-ஃஅ-ஊஎ-à®à®’-கங-சஜஞ-டண-தந-பம-வஷ-ஹா-ூெ-ைொ-\u0BCDௗ௧-௲ஶ];
+::NFD;
+::Tamil-InterIndic;
+::InterIndic-Telugu;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Bengali.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Bengali.txt
new file mode 100644
index 00000000000..a8a9b2292fe
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Bengali.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Bengali.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Bengali;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Devanagari.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Devanagari.txt
new file mode 100644
index 00000000000..744f13860bc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Devanagari.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Devanagari.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Devanagari;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Gujarati.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Gujarati.txt
new file mode 100644
index 00000000000..5a8878bf31b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Gujarati.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Gujarati.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Gujarati;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Gurmukhi.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Gurmukhi.txt
new file mode 100644
index 00000000000..acde8f546ff
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Gurmukhi.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Gurmukhi.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Gurmukhi;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_InterIndic.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_InterIndic.txt
index b8ce53064d5..d08cfef7b7e 100644
--- a/Build/source/libs/icu-xetex/data/translit/Telugu_InterIndic.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_InterIndic.txt
@@ -1,71 +1,73 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Telugu-InterIndic
-#:: NFD (NFC) ;
-\u0c46\u0c4d\u0c56>\ue048\ue04d;
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_InterIndic.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+\u0C46\u0C4D\u0C56>\uE048\uE04D;
\u0C46\u0C56>\uE048;# VOWEL SIGN AI
-\u0C01>\uE001; # SIGN CANDRABINDU
-\u0C02>\uE002; # SIGN ANUSVARA
-\u0C03>\uE003; # SIGN VISARGA
-\u0C05>\uE005; # LETTER A
-\u0C06>\uE006; # LETTER AA
-\u0C07>\uE007; # LETTER I
-\u0C08>\uE008; # LETTER II
-\u0C09>\uE009; # LETTER U
-\u0C0A>\uE00A; # LETTER UU
-\u0C0B>\uE00B; # LETTER VOCALIC R
-\u0C0C>\uE00C; # LETTER VOCALIC L
-\u0C0E>\uE00E; # LETTER E
-\u0C0F>\uE00F; # LETTER EE
-\u0C10>\uE010; # LETTER AI
-\u0C12>\uE012; # LETTER O
-\u0C13>\uE013; # LETTER OO
-\u0C14>\uE014; # LETTER AU
-\u0C15>\uE015; # LETTER KA
-\u0C16>\uE016; # LETTER KHA
-\u0C17>\uE017; # LETTER GA
-\u0C18>\uE018; # LETTER GHA
-\u0C19>\uE019; # LETTER NGA
-\u0C1A>\uE01A; # LETTER CA
-\u0C1B>\uE01B; # LETTER CHA
-\u0C1C>\uE01C; # LETTER JA
-\u0C1D>\uE01D; # LETTER JHA
-\u0C1E>\uE01E; # LETTER NYA
-\u0C1F>\uE01F; # LETTER TTA
-\u0C20>\uE020; # LETTER TTHA
-\u0C21>\uE021; # LETTER DDA
-\u0C22>\uE022; # LETTER DDHA
-\u0C23>\uE023; # LETTER NNA
-\u0C24>\uE024; # LETTER TA
-\u0C25>\uE025; # LETTER THA
-\u0C26>\uE026; # LETTER DA
-\u0C27>\uE027; # LETTER DHA
-\u0C28>\uE028; # LETTER NA
-\u0C2A>\uE02A; # LETTER PA
-\u0C2B>\uE02B; # LETTER PHA
-\u0C2C>\uE02C; # LETTER BA
-\u0C2D>\uE02D; # LETTER BHA
-\u0C2E>\uE02E; # LETTER MA
-\u0C2F>\uE02F; # LETTER YA
-\u0C30>\uE030; # LETTER RA
-\u0C31>\uE031; # LETTER RRA
-\u0C32>\uE032; # LETTER LA
-\u0C33>\uE033; # LETTER LLA
-\u0C35>\uE035; # LETTER VA
-\u0C36>\uE036; # LETTER SHA
-\u0C37>\uE037; # LETTER SSA
-\u0C38>\uE038; # LETTER SA
-\u0C39>\uE039; # LETTER HA
+à°>\uE001; # SIGN CANDRABINDU
+à°‚>\uE002; # SIGN ANUSVARA
+à°ƒ>\uE003; # SIGN VISARGA
+à°…>\uE005; # LETTER A
+à°†>\uE006; # LETTER AA
+à°‡>\uE007; # LETTER I
+à°ˆ>\uE008; # LETTER II
+à°‰>\uE009; # LETTER U
+à°Š>\uE00A; # LETTER UU
+à°‹>\uE00B; # LETTER VOCALIC R
+ఌ>\uE00C; # LETTER VOCALIC L
+à°Ž>\uE00E; # LETTER E
+à°>\uE00F; # LETTER EE
+à°>\uE010; # LETTER AI
+à°’>\uE012; # LETTER O
+à°“>\uE013; # LETTER OO
+à°”>\uE014; # LETTER AU
+à°•>\uE015; # LETTER KA
+à°–>\uE016; # LETTER KHA
+à°—>\uE017; # LETTER GA
+à°˜>\uE018; # LETTER GHA
+à°™>\uE019; # LETTER NGA
+à°š>\uE01A; # LETTER CA
+à°›>\uE01B; # LETTER CHA
+జ>\uE01C; # LETTER JA
+à°>\uE01D; # LETTER JHA
+à°ž>\uE01E; # LETTER NYA
+à°Ÿ>\uE01F; # LETTER TTA
+à° >\uE020; # LETTER TTHA
+à°¡>\uE021; # LETTER DDA
+à°¢>\uE022; # LETTER DDHA
+à°£>\uE023; # LETTER NNA
+à°¤>\uE024; # LETTER TA
+à°¥>\uE025; # LETTER THA
+à°¦>\uE026; # LETTER DA
+à°§>\uE027; # LETTER DHA
+à°¨>\uE028; # LETTER NA
+à°ª>\uE02A; # LETTER PA
+à°«>\uE02B; # LETTER PHA
+à°¬>\uE02C; # LETTER BA
+à°­>\uE02D; # LETTER BHA
+à°®>\uE02E; # LETTER MA
+à°¯>\uE02F; # LETTER YA
+à°°>\uE030; # LETTER RA
+à°±>\uE031; # LETTER RRA
+à°²>\uE032; # LETTER LA
+à°³>\uE033; # LETTER LLA
+à°µ>\uE035; # LETTER VA
+à°¶>\uE036; # LETTER SHA
+à°·>\uE037; # LETTER SSA
+à°¸>\uE038; # LETTER SA
+à°¹>\uE039; # LETTER HA
\u0C3E>\uE03E; # VOWEL SIGN AA
\u0C3F>\uE03F; # VOWEL SIGN I
\u0C40>\uE040; # VOWEL SIGN II
-\u0C41>\uE041; # VOWEL SIGN U
-\u0C42>\uE042; # VOWEL SIGN UU
-\u0C43>\uE043; # VOWEL SIGN VOCALIC R
-\u0C44>\uE044; # VOWEL SIGN VOCALIC RR
+à±>\uE041; # VOWEL SIGN U
+ూ>\uE042; # VOWEL SIGN UU
+ృ>\uE043; # VOWEL SIGN VOCALIC R
+ౄ>\uE044; # VOWEL SIGN VOCALIC RR
\u0C46>\uE046; # VOWEL SIGN E
\u0C47>\uE047; # VOWEL SIGN EE
\u0C4A>\uE04A; # VOWEL SIGN O
@@ -74,17 +76,15 @@
\u0C4D>\uE04D; # SIGN VIRAMA
\u0C55>\uE055; # LENGTH MARK
\u0C56>\uE056; # AI LENGTH MARK
-\u0C60>\uE060; # LETTER VOCALIC RR
-\u0C61>\uE061; # LETTER VOCALIC LL
-\u0C66>\uE066; # DIGIT ZERO
-\u0C67>\uE067; # DIGIT ONE
-\u0C68>\uE068; # DIGIT TWO
-\u0C69>\uE069; # DIGIT THREE
-\u0C6A>\uE06A; # DIGIT FOUR
-\u0C6B>\uE06B; # DIGIT FIVE
-\u0C6C>\uE06C; # DIGIT SIX
-\u0C6D>\uE06D; # DIGIT SEVEN
-\u0C6E>\uE06E; # DIGIT EIGHT
-\u0C6F>\uE06F; # DIGIT NINE
-# :: NFC (NFD) ;
-# eof
+à± >\uE060; # LETTER VOCALIC RR
+ౡ>\uE061; # LETTER VOCALIC LL
+౦>\uE066; # DIGIT ZERO
+౧>\uE067; # DIGIT ONE
+౨>\uE068; # DIGIT TWO
+౩>\uE069; # DIGIT THREE
+౪>\uE06A; # DIGIT FOUR
+౫>\uE06B; # DIGIT FIVE
+౬>\uE06C; # DIGIT SIX
+à±­>\uE06D; # DIGIT SEVEN
+à±®>\uE06E; # DIGIT EIGHT
+౯>\uE06F; # DIGIT NINE
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Kannada.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Kannada.txt
new file mode 100644
index 00000000000..5ef8d344374
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Kannada.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Kannada.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Kannada;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Latin.txt
new file mode 100644
index 00000000000..2ec4f785dbb
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Latin.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Malayalam.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Malayalam.txt
new file mode 100644
index 00000000000..76968131b44
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Malayalam.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Malayalam.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Malayalam;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Oriya.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Oriya.txt
new file mode 100644
index 00000000000..bc700a23b26
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Oriya.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Oriya.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Oriya;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Telugu_Tamil.txt b/Build/source/libs/icu-xetex/data/translit/Telugu_Tamil.txt
new file mode 100644
index 00000000000..5a3a9817e6d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Telugu_Tamil.txt
@@ -0,0 +1,14 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Telugu_Tamil.txt
+# Generated from CLDR: Thu Jul 20 16:27:18 PDT 2006
+#
+::[à°-ఃఅ-ఌఎ-à°à°’-నప-ళవ-à°¹\u0C3E-ౄ\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56à± -ౡ౦-౯];
+::NFD;
+::Telugu-InterIndic;
+::InterIndic-Tamil;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Thaana_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Thaana_Latin.txt
new file mode 100644
index 00000000000..c514eb8e075
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Thaana_Latin.txt
@@ -0,0 +1,440 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Thaana_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:19 PDT 2006
+#
+tta <> Þ˜\u07A6 ;
+ḥa <> ޙ\u07A6 ;
+kha <> Þš\u07A6 ;
+dha <> Þ›\u07A6 ;
+Å¡a < Þ\u07A6 ;
+á¹£a <> Þž\u07A6 ;
+á¸a <> ÞŸ\u07A6 ;
+t\u0324a <> Þ \u07A6 ;
+Ê¿a <> Þ¢\u07A6 ;
+ǧa <> ޣ\u07A6 ;
+qa <> Þ¤\u07A6 ;
+ha <> Þ€\u07A6 ;
+Å¡a <> Þ\u07A6 ;
+na <> Þ‚\u07A6 ;
+ra <> Þƒ\u07A6 ;
+ba <> Þ„\u07A6 ;
+ḷa <> ޅ\u07A6 ;
+ka <> Þ†\u07A6 ;
+‘a <> އ\u07A6 ;
+va <> Þˆ\u07A6 ;
+ma <> Þ‰\u07A6 ;
+fa <> ÞŠ\u07A6 ;
+da <> Þ‹\u07A6 ;
+ta <> ތ\u07A6 ;
+la <> Þ\u07A6 ;
+ga <> ÞŽ\u07A6 ;
+ña <> Þ\u07A6 ;
+sa <> Þ\u07A6 ;
+á¸a <> Þ‘\u07A6 ;
+ja <> Þ–\u07A6 ;
+Äa <> Þ—\u07A6 ;
+za <> Þ’\u07A6 ;
+á¹­a <> Þ“\u07A6 ;
+pa <> Þ•\u07A6 ;
+ya <> Þ”\u07A6 ;
+ttÄ <> Þ˜\u07A7 ;
+á¸¥Ä <> Þ™\u07A7 ;
+khÄ <> Þš\u07A7 ;
+dhÄ <> Þ›\u07A7 ;
+Å¡Ä < Þ\u07A7 ;
+á¹£Ä <> Þž\u07A7 ;
+á¸Ä <> ÞŸ\u07A7 ;
+t\u0324Ä <> Þ \u07A7 ;
+Ê¿Ä <> Þ¢\u07A7 ;
+Ç§Ä <> Þ£\u07A7 ;
+qÄ <> Þ¤\u07A7 ;
+hÄ <> Þ€\u07A7 ;
+Å¡Ä <> Þ\u07A7 ;
+nÄ <> Þ‚\u07A7 ;
+rÄ <> Þƒ\u07A7 ;
+bÄ <> Þ„\u07A7 ;
+á¸·Ä <> Þ…\u07A7 ;
+kÄ <> Þ†\u07A7 ;
+â€˜Ä <> Þ‡\u07A7 ;
+vÄ <> Þˆ\u07A7 ;
+mÄ <> Þ‰\u07A7 ;
+fÄ <> ÞŠ\u07A7 ;
+dÄ <> Þ‹\u07A7 ;
+tÄ <> ÞŒ\u07A7 ;
+lÄ <> Þ\u07A7 ;
+gÄ <> ÞŽ\u07A7 ;
+Ã±Ä <> Þ\u07A7 ;
+sÄ <> Þ\u07A7 ;
+á¸Ä <> Þ‘\u07A7 ;
+jÄ <> Þ–\u07A7 ;
+ÄÄ <> Þ—\u07A7 ;
+zÄ <> Þ’\u07A7 ;
+á¹­Ä <> Þ“\u07A7 ;
+pÄ <> Þ•\u07A7 ;
+yÄ <> Þ”\u07A7 ;
+tti <> Þ˜\u07A8 ;
+ḥi <> ޙ\u07A8 ;
+khi <> Þš\u07A8 ;
+dhi <> Þ›\u07A8 ;
+Å¡i < Þ\u07A8 ;
+á¹£i <> Þž\u07A8 ;
+á¸i <> ÞŸ\u07A8 ;
+t\u0324i <> Þ \u07A8 ;
+Ê¿i <> Þ¢\u07A8 ;
+ǧi <> ޣ\u07A8 ;
+qi <> Þ¤\u07A8 ;
+hi <> Þ€\u07A8 ;
+Å¡i <> Þ\u07A8 ;
+ni <> Þ‚\u07A8 ;
+ri <> Þƒ\u07A8 ;
+bi <> Þ„\u07A8 ;
+ḷi <> ޅ\u07A8 ;
+ki <> Þ†\u07A8 ;
+‘i <> އ\u07A8 ;
+vi <> Þˆ\u07A8 ;
+mi <> Þ‰\u07A8 ;
+fi <> ÞŠ\u07A8 ;
+di <> Þ‹\u07A8 ;
+ti <> ތ\u07A8 ;
+li <> Þ\u07A8 ;
+gi <> ÞŽ\u07A8 ;
+ñi <> Þ\u07A8 ;
+si <> Þ\u07A8 ;
+á¸i <> Þ‘\u07A8 ;
+ji <> Þ–\u07A8 ;
+Äi <> Þ—\u07A8 ;
+zi <> Þ’\u07A8 ;
+á¹­i <> Þ“\u07A8 ;
+pi <> Þ•\u07A8 ;
+yi <> Þ”\u07A8 ;
+ttī <> ޘ\u07A9 ;
+ḥī <> ޙ\u07A9 ;
+khī <> ޚ\u07A9 ;
+dhī <> ޛ\u07A9 ;
+Å¡Ä« < Þ\u07A9 ;
+ṣī <> ޞ\u07A9 ;
+á¸Ä« <> ÞŸ\u07A9 ;
+t\u0324Ä« <> Þ \u07A9 ;
+Ê¿Ä« <> Þ¢\u07A9 ;
+ǧī <> ޣ\u07A9 ;
+qī <> ޤ\u07A9 ;
+hī <> ހ\u07A9 ;
+Å¡Ä« <> Þ\u07A9 ;
+nī <> ނ\u07A9 ;
+rī <> ރ\u07A9 ;
+bī <> ބ\u07A9 ;
+ḷī <> ޅ\u07A9 ;
+kī <> ކ\u07A9 ;
+‘ī <> އ\u07A9 ;
+vī <> ވ\u07A9 ;
+mī <> މ\u07A9 ;
+fī <> ފ\u07A9 ;
+dī <> ދ\u07A9 ;
+tī <> ތ\u07A9 ;
+lÄ« <> Þ\u07A9 ;
+gī <> ގ\u07A9 ;
+ñī <> Þ\u07A9 ;
+sÄ« <> Þ\u07A9 ;
+á¸Ä« <> Þ‘\u07A9 ;
+jī <> ޖ\u07A9 ;
+ÄÄ« <> Þ—\u07A9 ;
+zī <> ޒ\u07A9 ;
+á¹­Ä« <> Þ“\u07A9 ;
+pī <> ޕ\u07A9 ;
+yī <> ޔ\u07A9 ;
+ttu <> Þ˜\u07AA ;
+ḥu <> ޙ\u07AA ;
+khu <> Þš\u07AA ;
+dhu <> Þ›\u07AA ;
+Å¡u < Þ\u07AA ;
+á¹£u <> Þž\u07AA ;
+á¸u <> ÞŸ\u07AA ;
+t\u0324u <> Þ \u07AA ;
+Ê¿u <> Þ¢\u07AA ;
+ǧu <> ޣ\u07AA ;
+qu <> Þ¤\u07AA ;
+hu <> Þ€\u07AA ;
+Å¡u <> Þ\u07AA ;
+nu <> Þ‚\u07AA ;
+ru <> Þƒ\u07AA ;
+bu <> Þ„\u07AA ;
+ḷu <> ޅ\u07AA ;
+ku <> Þ†\u07AA ;
+‘u <> އ\u07AA ;
+vu <> Þˆ\u07AA ;
+mu <> Þ‰\u07AA ;
+fu <> ÞŠ\u07AA ;
+du <> Þ‹\u07AA ;
+tu <> ތ\u07AA ;
+lu <> Þ\u07AA ;
+gu <> ÞŽ\u07AA ;
+ñu <> Þ\u07AA ;
+su <> Þ\u07AA ;
+á¸u <> Þ‘\u07AA ;
+ju <> Þ–\u07AA ;
+Äu <> Þ—\u07AA ;
+zu <> Þ’\u07AA ;
+á¹­u <> Þ“\u07AA ;
+pu <> Þ•\u07AA ;
+yu <> Þ”\u07AA ;
+ttū <> ޘ\u07AB ;
+ḥū <> ޙ\u07AB ;
+khū <> ޚ\u07AB ;
+dhū <> ޛ\u07AB ;
+Å¡Å« < Þ\u07AB ;
+ṣū <> ޞ\u07AB ;
+á¸Å« <> ÞŸ\u07AB ;
+t\u0324Å« <> Þ \u07AB ;
+Ê¿Å« <> Þ¢\u07AB ;
+ǧū <> ޣ\u07AB ;
+qū <> ޤ\u07AB ;
+hū <> ހ\u07AB ;
+Å¡Å« <> Þ\u07AB ;
+nū <> ނ\u07AB ;
+rū <> ރ\u07AB ;
+bū <> ބ\u07AB ;
+ḷū <> ޅ\u07AB ;
+kū <> ކ\u07AB ;
+‘ū <> އ\u07AB ;
+vū <> ވ\u07AB ;
+mū <> މ\u07AB ;
+fū <> ފ\u07AB ;
+dū <> ދ\u07AB ;
+tū <> ތ\u07AB ;
+lÅ« <> Þ\u07AB ;
+gū <> ގ\u07AB ;
+ñū <> Þ\u07AB ;
+sÅ« <> Þ\u07AB ;
+á¸Å« <> Þ‘\u07AB ;
+jū <> ޖ\u07AB ;
+ÄÅ« <> Þ—\u07AB ;
+zū <> ޒ\u07AB ;
+á¹­Å« <> Þ“\u07AB ;
+pū <> ޕ\u07AB ;
+yū <> ޔ\u07AB ;
+tte <> Þ˜\u07AC ;
+ḥe <> ޙ\u07AC ;
+khe <> Þš\u07AC ;
+dhe <> Þ›\u07AC ;
+Å¡e < Þ\u07AC ;
+á¹£e <> Þž\u07AC ;
+á¸e <> ÞŸ\u07AC ;
+t\u0324e <> Þ \u07AC ;
+Ê¿e <> Þ¢\u07AC ;
+ǧe <> ޣ\u07AC ;
+qe <> Þ¤\u07AC ;
+he <> Þ€\u07AC ;
+Å¡e <> Þ\u07AC ;
+ne <> Þ‚\u07AC ;
+re <> Þƒ\u07AC ;
+be <> Þ„\u07AC ;
+ḷe <> ޅ\u07AC ;
+ke <> Þ†\u07AC ;
+‘e <> އ\u07AC ;
+ve <> Þˆ\u07AC ;
+me <> Þ‰\u07AC ;
+fe <> ÞŠ\u07AC ;
+de <> Þ‹\u07AC ;
+te <> ތ\u07AC ;
+le <> Þ\u07AC ;
+ge <> ÞŽ\u07AC ;
+ñe <> Þ\u07AC ;
+se <> Þ\u07AC ;
+á¸e <> Þ‘\u07AC ;
+je <> Þ–\u07AC ;
+Äe <> Þ—\u07AC ;
+ze <> Þ’\u07AC ;
+á¹­e <> Þ“\u07AC ;
+pe <> Þ•\u07AC ;
+ye <> Þ”\u07AC ;
+ttē <> ޘ\u07AD ;
+ḥē <> ޙ\u07AD ;
+khē <> ޚ\u07AD ;
+dhē <> ޛ\u07AD ;
+Å¡Ä“ < Þ\u07AD ;
+ṣē <> ޞ\u07AD ;
+á¸Ä“ <> ÞŸ\u07AD ;
+t\u0324Ä“ <> Þ \u07AD ;
+Ê¿Ä“ <> Þ¢\u07AD ;
+ǧē <> ޣ\u07AD ;
+qē <> ޤ\u07AD ;
+hē <> ހ\u07AD ;
+Å¡Ä“ <> Þ\u07AD ;
+nē <> ނ\u07AD ;
+rē <> ރ\u07AD ;
+bē <> ބ\u07AD ;
+ḷē <> ޅ\u07AD ;
+kē <> ކ\u07AD ;
+‘ē <> އ\u07AD ;
+vē <> ވ\u07AD ;
+mē <> މ\u07AD ;
+fē <> ފ\u07AD ;
+dē <> ދ\u07AD ;
+tē <> ތ\u07AD ;
+lÄ“ <> Þ\u07AD ;
+gē <> ގ\u07AD ;
+ñē <> Þ\u07AD ;
+sÄ“ <> Þ\u07AD ;
+á¸Ä“ <> Þ‘\u07AD ;
+jē <> ޖ\u07AD ;
+ÄÄ“ <> Þ—\u07AD ;
+zē <> ޒ\u07AD ;
+á¹­Ä“ <> Þ“\u07AD ;
+pē <> ޕ\u07AD ;
+yē <> ޔ\u07AD ;
+tto <> Þ˜\u07AE ;
+ḥo <> ޙ\u07AE ;
+kho <> Þš\u07AE ;
+dho <> Þ›\u07AE ;
+Å¡o < Þ\u07AE ;
+á¹£o <> Þž\u07AE ;
+á¸o <> ÞŸ\u07AE ;
+t\u0324o <> Þ \u07AE ;
+Ê¿o <> Þ¢\u07AE ;
+ǧo <> ޣ\u07AE ;
+qo <> Þ¤\u07AE ;
+ho <> Þ€\u07AE ;
+Å¡o <> Þ\u07AE ;
+no <> Þ‚\u07AE ;
+ro <> Þƒ\u07AE ;
+bo <> Þ„\u07AE ;
+ḷo <> ޅ\u07AE ;
+ko <> Þ†\u07AE ;
+‘o <> އ\u07AE ;
+vo <> Þˆ\u07AE ;
+mo <> Þ‰\u07AE ;
+fo <> ÞŠ\u07AE ;
+do <> Þ‹\u07AE ;
+to <> ތ\u07AE ;
+lo <> Þ\u07AE ;
+go <> ÞŽ\u07AE ;
+ño <> Þ\u07AE ;
+so <> Þ\u07AE ;
+á¸o <> Þ‘\u07AE ;
+jo <> Þ–\u07AE ;
+Äo <> Þ—\u07AE ;
+zo <> Þ’\u07AE ;
+á¹­o <> Þ“\u07AE ;
+po <> Þ•\u07AE ;
+yo <> Þ”\u07AE ;
+ttÅ <> Þ˜\u07AF ;
+ḥŠ<> ޙ\u07AF ;
+khÅ <> Þš\u07AF ;
+dhÅ <> Þ›\u07AF ;
+Å¡Å < Þ\u07AF ;
+ṣŠ<> ޞ\u07AF ;
+á¸Å <> ÞŸ\u07AF ;
+t\u0324Å <> Þ \u07AF ;
+Ê¿Å <> Þ¢\u07AF ;
+ǧŠ<> ޣ\u07AF ;
+qÅ <> Þ¤\u07AF ;
+hÅ <> Þ€\u07AF ;
+Å¡Å <> Þ\u07AF ;
+nÅ <> Þ‚\u07AF ;
+rÅ <> Þƒ\u07AF ;
+bÅ <> Þ„\u07AF ;
+ḷŠ<> ޅ\u07AF ;
+kÅ <> Þ†\u07AF ;
+‘Š<> އ\u07AF ;
+vÅ <> Þˆ\u07AF ;
+mÅ <> Þ‰\u07AF ;
+fÅ <> ÞŠ\u07AF ;
+dÅ <> Þ‹\u07AF ;
+tŠ<> ތ\u07AF ;
+lÅ <> Þ\u07AF ;
+gÅ <> ÞŽ\u07AF ;
+ñŠ<> Þ\u07AF ;
+sÅ <> Þ\u07AF ;
+á¸Å <> Þ‘\u07AF ;
+jÅ <> Þ–\u07AF ;
+ÄÅ <> Þ—\u07AF ;
+zÅ <> Þ’\u07AF ;
+á¹­Å <> Þ“\u07AF ;
+pÅ <> Þ•\u07AF ;
+yÅ <> Þ”\u07AF ;
+tt <> Þ˜\u07B0 ;
+ḥ <> ޙ\u07B0 ;
+kh <> Þš\u07B0 ;
+dh <> Þ›\u07B0 ;
+Å¡ < Þ\u07B0 ;
+á¹£ <> Þž\u07B0 ;
+Ḡ<> ޟ\u07B0 ;
+t\u0324 <> Þ \u07B0 ;
+Ê¿ <> Þ¢\u07B0 ;
+ǧ <> ޣ\u07B0 ;
+q <> Þ¤\u07B0 ;
+h <> Þ€\u07B0 ;
+Å¡ <> Þ\u07B0 ;
+n <> Þ‚\u07B0 ;
+r <> Þƒ\u07B0 ;
+b <> Þ„\u07B0 ;
+ḷ <> ޅ\u07B0 ;
+k <> Þ†\u07B0 ;
+‘ <> އ\u07B0 ;
+v <> Þˆ\u07B0 ;
+m <> Þ‰\u07B0 ;
+f <> ÞŠ\u07B0 ;
+d <> Þ‹\u07B0 ;
+t <> ތ\u07B0 ;
+l <> Þ\u07B0 ;
+g <> ÞŽ\u07B0 ;
+ñ <> Þ\u07B0 ;
+s <> Þ\u07B0 ;
+Ḡ<> ޑ\u07B0 ;
+j <> Þ–\u07B0 ;
+Ä <> Þ—\u07B0 ;
+z <> Þ’\u07B0 ;
+á¹­ <> Þ“\u07B0 ;
+p <> Þ•\u07B0 ;
+y <> Þ”\u07B0 ;
+h < Þ€ ;
+Å¡ < Þ ;
+n < Þ‚ ;
+r < Þƒ ;
+b < Þ„ ;
+ḷ < ޅ ;
+k < Þ† ;
+‘ < އ ;
+v < Þˆ ;
+m < Þ‰ ;
+f < ÞŠ ;
+d < Þ‹ ;
+t < ތ ;
+l < Þ ;
+g < ÞŽ ;
+ñ < Þ ;
+s < Þ ;
+Ḡ< ޑ ;
+j < Þ– ;
+Ä < Þ— ;
+z < Þ’ ;
+á¹­ < Þ“ ;
+p < Þ• ;
+y < Þ” ;
+tt < Þ˜ ;
+ḥ < ޙ ;
+kh < Þš ;
+dh < Þ› ;
+Å¡ < Þ ;
+á¹£ < Þž ;
+Ḡ< ޟ ;
+t\u0324 < Þ  ;
+Ê¿ < Þ¢ ;
+ǧ < ޣ ;
+q < Þ¤ ;
+a <> \u07A6 ;
+Ä <> \u07A7 ;
+i <> \u07A8 ;
+Ä« <> \u07A9 ;
+u <> \u07AA ;
+Å« <> \u07AB ;
+e <> \u07AC ;
+Ä“ <> \u07AD ;
+o <> \u07AE ;
+Å <> \u07AF ;
+< \u07B0 ;
diff --git a/Build/source/libs/icu-xetex/data/translit/ThaiLogical_Latin.txt b/Build/source/libs/icu-xetex/data/translit/ThaiLogical_Latin.txt
index 558fd84a173..16a4ab61651 100644
--- a/Build/source/libs/icu-xetex/data/translit/ThaiLogical_Latin.txt
+++ b/Build/source/libs/icu-xetex/data/translit/ThaiLogical_Latin.txt
@@ -1,160 +1,102 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Thai-Latin
-# This set of rules follows ISO 11940
-# see http://homepage.mac.com/sirbinks/pdf/Thai.r2.pdf
-# except that that does not mention an implicit vowel, so we use ọ
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: ThaiLogical_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:19 PDT 2006
#
-# The transcription is fairly ugly, so we ought to also do the UNGEGN version
-# see: http://www.eki.ee/wgrs/rom1_th.pdf
-# and probably make that the main variant.
-
-# Note: this is an internal file. The NFD/NFC is handled externally, in the index
-# The insertion of spaces between words, the reversal of the vowels
-# and the conversion of space to semicolon are done *outside* of these rules.
-# So as far as these rules are concerned, the vowels are in logical order!
-
-# insert implicit vowel (and remove it going the other way)
-# COMMENTED out: the implicit vowel positions cannot be predicted algorithmically
-#$consonant = [à¸-ฮ];
-#$vowel = [ะ-ฺเ-ไ็];
-
-#{ ( $consonant ) } [^$vowel ] > | $1  ;
-# > ọ ;
-# < ọ ;
-
$notAbove = [^\p{ccc=0}\p{ccc=above}] ;
$notBelow = [^\p{ccc=0}\p{ccc=below}] ;
-
-# Consonants
-# Warning: the 'h's need to be handled carefully!
-# What we really want to say is the following, but we can't
-# $notHAccent = !($notAbove* ̄ | $notBelow* ̣) ;
-
-# Since the only accents we care about that could cause problems are free-standing accents below, we use instead:
$freeStandingBelow = [\u0325 ];
-$hAccent = [ ̄ ̣];
+$hAccent = [ \u0304 \u0323];
$notHAccent0 = [^$freeStandingBelow$hAccent];
$notHAccent1 = $freeStandingBelow [^$hAccent];
-
-ห > h̄ ; # THAI CHARACTER HO HIP
- ห | $1 < h ($notAbove*) ̄; # backward case, account for reordering
-ฮ <> ḥ ; # THAI CHARACTER HO NOKHUK
-
-ข <> k̄h ; # THAI CHARACTER KHO KHAI
-ฃ <> ḳ̄h ; # THAI CHARACTER KHO KHUAT
-ฅ <> kʹh ; # THAI CHARACTER KHO KHON
-ฆ <> ḳh ; # THAI CHARACTER KHO RAKHANG
-ค < kh } $notHAccent1 ; # THAI CHARACTER KHO KHWAI
-ค <> kh } $notHAccent0 ; # THAI CHARACTER KHO KHWAI
+ห > h\u0304 ; # THAI CHARACTER HO HIP
+ห | $1 < h ($notAbove*) \u0304; # backward case, account for reordering
+ฮ <> h\u0323 ; # THAI CHARACTER HO NOKHUK
+ข <> k\u0304h ; # THAI CHARACTER KHO KHAI
+ฃ <> k\u0323\u0304h ; # THAI CHARACTER KHO KHUAT
+ฅ <> kʹh ; # THAI CHARACTER KHO KHON
+ฆ <> k\u0323h ; # THAI CHARACTER KHO RAKHANG
+ค < kh } $notHAccent1 ; # THAI CHARACTER KHO KHWAI
+ค <> kh } $notHAccent0 ; # THAI CHARACTER KHO KHWAI
ภ<> k ; # THAI CHARACTER KO KAI
-
-ภ <> p̣h ; # THAI CHARACTER PHO SAMPHAO
-ผ <> p̄h ; # THAI CHARACTER PHO PHUNG
+ภ <> p\u0323h ; # THAI CHARACTER PHO SAMPHAO
+ผ <> p\u0304h ; # THAI CHARACTER PHO PHUNG
พ < ph } $notHAccent1 ; # THAI CHARACTER PHO PHAN
พ <> ph } $notHAccent0 ; # THAI CHARACTER PHO PHAN
ป <> p ; # THAI CHARACTER PO PLA
-
-ฉ <> c̄h ; # THAI CHARACTER CHO CHING
-ฌ <> c̣h ; # THAI CHARACTER CHO CHOE
+ฉ <> c\u0304h ; # THAI CHARACTER CHO CHING
+ฌ <> c\u0323h ; # THAI CHARACTER CHO CHOE
ช < ch } $notHAccent1 ; # THAI CHARACTER CHO CHANG
ช <> ch } $notHAccent0 ; # THAI CHARACTER CHO CHANG
จ <> c ; # THAI CHARACTER CHO CHAN
-
-ภ<> ṭ̄h ; # THAI CHARACTER THO THAN
-ฑ <> ṯh ; # THAI CHARACTER THO NANGMONTHO
+ภ<> t\u0323\u0304h ; # THAI CHARACTER THO THAN
+ฑ <> t\u0331h ; # THAI CHARACTER THO NANGMONTHO
ฒ <> tʹh ; # THAI CHARACTER THO PHUTHAO
-ถ <> t̄h ; # THAI CHARACTER THO THUNG
-ธ <> ṭh ; # THAI CHARACTER THO THONG
+ถ <> t\u0304h ; # THAI CHARACTER THO THUNG
+ธ <> t\u0323h ; # THAI CHARACTER THO THONG
ท < th } $notHAccent1 ; # THAI CHARACTER THO THAHAN
ท <> th } $notHAccent0 ; # THAI CHARACTER THO THAHAN
-#Note: TO PATAK deviates from ISO since t-dotunder + h would be ambigous. So it uses vertical tick.
-ภ<> t̩ ; # THAI CHARACTER TO PATAK
+ภ<> t\u0329 ; # THAI CHARACTER TO PATAK
ต <> t ; # THAI CHARACTER TO TAO
-
-# since there is no singleton g (generated), don't worry about that.
ง <> ng ; # THAI CHARACTER NGO NGU
-ณ <> ṇ ; # THAI CHARACTER NO NEN
+ณ <> n\u0323 ; # THAI CHARACTER NO NEN
น <> n ; # THAI CHARACTER NO NU
-
-ภ<> ỵ ; # THAI CHARACTER YO YING
-ฎ <> ḍ ; # THAI CHARACTER DO CHADA
+ภ<> y\u0323 ; # THAI CHARACTER YO YING
+ฎ <> d\u0323 ; # THAI CHARACTER DO CHADA
ด <> d ; # THAI CHARACTER DO DEK
-
บ <> b ; # THAI CHARACTER BO BAIMAI
-ภ<> f̄ ; # THAI CHARACTER FO FA
- ภ| $1 < f ($notAbove*) ̄; # backward case, account for reordering
-
+ภ<> f\u0304 ; # THAI CHARACTER FO FA
+ภ| $1 < f ($notAbove*) \u0304; # backward case, account for reordering
ม <> m ; # THAI CHARACTER MO MA
ย <> y ; # THAI CHARACTER YO YAK
ร <> r ; # THAI CHARACTER RO RUA
ฤ <> v ; # THAI CHARACTER RU
ฦ <> ł ; # THAI CHARACTER LU
ว <> w ; # THAI CHARACTER WO WAEN
-
-ศ <> ṣ̄ ; # THAI CHARACTER SO SALA***
- ศ | $1 < s ̣ ($notAbove*) ̄; # backward case, account for reordering
-ษ <> s̄ʹ ; # THAI CHARACTER SO RUSI
-ส > s̄ ; # THAI CHARACTER SO SUA***
- ส | $1 < s ($notAbove*) ̄; # backward case, account for reordering
-
-ฬ <> ḷ ; # THAI CHARACTER LO CHULA
+ศ <> s\u0323\u0304 ; # THAI CHARACTER SO SALA***
+ศ | $1 < s \u0323 ($notAbove*) \u0304; # backward case, account for reordering
+ษ <> s\u0304ʹ ; # THAI CHARACTER SO RUSI
+ส > s\u0304 ; # THAI CHARACTER SO SUA***
+ส | $1 < s ($notAbove*) \u0304; # backward case, account for reordering
+ฬ <> l\u0323 ; # THAI CHARACTER LO CHULA
ล <> l ; # THAI CHARACTER LO LING
ฟ <> f ; # THAI CHARACTER FO FAN
-
อ <> x ; # THAI CHARACTER O ANG
ซ <> s ; # THAI CHARACTER SO SO
-
-# vowels
-
- ั <> ạ ; # THAI CHARACTER MAI HAN-AKAT
-
-า > ā ; # THAI CHARACTER SARA AA
- า | $1 < a ($notAbove*) ̄; # backward case, account for reordering
-
-# We deviate from ISO for SARA AM for disambiguation
-ำ > a ̉; # THAI CHARACTER SARA AM
- ำ | $1 < a ($notAbove*) ̉ ; # backward case, account for reordering
-
+\u0E31 <> a\u0323 ; # THAI CHARACTER MAI HAN-AKAT
+า > a\u0304 ; # THAI CHARACTER SARA AA
+า | $1 < a ($notAbove*) \u0304; # backward case, account for reordering
+ำ > a \u0309; # THAI CHARACTER SARA AM
+ำ | $1 < a ($notAbove*) \u0309 ; # backward case, account for reordering
ะ <> a ; # THAI CHARACTER SARA A
- ี <> ī ; # THAI CHARACTER SARA II
- ี | $1 < i ($notAbove*) ̄ ; # backward case, account for reordering
-
- ื <> ụ̄ ; # THAI CHARACTER SARA UEE
- ื | $1 < u ̣ ($notAbove*) ̄ ; # backward case, account for reordering
-
- ึ <> ụ ; # THAI CHARACTER SARA UE
- ู <> ū ; # THAI CHARACTER SARA UU
- ู | $1 < u ($notAbove*) ̄ ; # backward case, account for reordering
-
- ุ <> u ; # THAI CHARACTER SARA U
-
+\u0E35 <> i\u0304 ; # THAI CHARACTER SARA II
+\u0E35 | $1 < i ($notAbove*) \u0304 ; # backward case, account for reordering
+\u0E37 <> u\u0323\u0304 ; # THAI CHARACTER SARA UEE
+\u0E37 | $1 < u \u0323 ($notAbove*) \u0304 ; # backward case, account for reordering
+\u0E36 <> u\u0323 ; # THAI CHARACTER SARA UE
+\u0E39 <> u\u0304 ; # THAI CHARACTER SARA UU
+\u0E39 | $1 < u ($notAbove*) \u0304 ; # backward case, account for reordering
+\u0E38 <> u ; # THAI CHARACTER SARA U
ฯ <> ‡ ; # THAI CHARACTER PAIYANNOI
-
-# ฿ <> XXX ; # THAI CURRENCY SYMBOL BAHT
-
เ <> e ; # THAI CHARACTER SARA E
๠<> æ ; # THAI CHARACTER SARA AE
โ <> o ; # THAI CHARACTER SARA O
ใ <> ı ; # THAI CHARACTER SARA AI MAIMUAN
-ไ <> ị ; # THAI CHARACTER SARA AI MAIMALAI
+ไ <> i\u0323 ; # THAI CHARACTER SARA AI MAIMALAI
ๅ <> ɨ ; # THAI CHARACTER LAKKHANGYAO
- ็ <> ̆ ; # THAI CHARACTER MAITAIKHU
- ่ <> ̀ ; # THAI CHARACTER MAI EK
- ้ <> ̂ ; # THAI CHARACTER MAI THO
- ๊ <> Ì ; # THAI CHARACTER MAI TRI
- ๋ <> ̌ ; # THAI CHARACTER MAI CHATTAWA
- ์ <> ̒ ; # THAI CHARACTER THANTHAKHAT
- ๎ <> '~' ; # THAI CHARACTER YAMAKKAN
-
-# We deviate from ISO for disambiguation
- ๠<> ̊ ; # THAI CHARACTER NIKHAHIT
-
-๠<> § ; # THAI CHARACTER FONGMAN
-
+\u0E47 <> \u0306 ; # THAI CHARACTER MAITAIKHU
+\u0E48 <> \u0300 ; # THAI CHARACTER MAI EK
+\u0E49 <> \u0302 ; # THAI CHARACTER MAI THO
+\u0E4A <> \u0301 ; # THAI CHARACTER MAI TRI
+\u0E4B <> \u030C ; # THAI CHARACTER MAI CHATTAWA
+\u0E4C <> \u0312 ; # THAI CHARACTER THANTHAKHAT
+\u0E4E <> '~' ; # THAI CHARACTER YAMAKKAN
+\u0E4D <> \u030A ; # THAI CHARACTER NIKHAHIT
+๠<> '§' ; # THAI CHARACTER FONGMAN
๠<> 0 ; # THAI DIGIT ZERO
๑ <> 1 ; # THAI DIGIT ONE
๒ <> 2 ; # THAI DIGIT TWO
@@ -165,23 +107,14 @@ $notHAccent1 = $freeStandingBelow [^$hAccent];
๗ <> 7 ; # THAI DIGIT SEVEN
๘ <> 8 ; # THAI DIGIT EIGHT
๙ <> 9 ; # THAI DIGIT NINE
-
๚ <> '||' ; # THAI CHARACTER ANGKHANKHU
-
๛ <> » ; # THAI CHARACTER KHOMUT
ๆ <> « ; # THAI CHARACTER MAIYAMOK
-
-# moved down to make shorter first
-#Note: PHINTHU deviates from ISO since underring causes canonical problems. So it uses spacing tick below.
- ฺ <> ˌ ; # THAI CHARACTER PHINTHU
- ิ <> i ; # THAI CHARACTER SARA I
-
-# fallbacks
-
+\u0E3A <> ˌ ; # THAI CHARACTER PHINTHU
+\u0E34 <> i ; # THAI CHARACTER SARA I
| k < g ;
| k < h ;
| c < j ;
| k < q ;
| s < z ;
-
:: (lower);
diff --git a/Build/source/libs/icu-xetex/data/translit/Thai_Latin.txt b/Build/source/libs/icu-xetex/data/translit/Thai_Latin.txt
new file mode 100644
index 00000000000..1ce874eb210
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/translit/Thai_Latin.txt
@@ -0,0 +1,16 @@
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Thai_Latin.txt
+# Generated from CLDR: Thu Jul 20 16:27:19 PDT 2006
+#
+::[[:thai:] à¸-\u0E3Aเ-๛];
+::NFD;
+::Thai-ThaiSemi;
+::Any-BreakInternal;
+::Thai-ThaiLogical;
+::ThaiLogical-Latin;
+::NFC;
diff --git a/Build/source/libs/icu-xetex/data/translit/Thai_ThaiLogical.txt b/Build/source/libs/icu-xetex/data/translit/Thai_ThaiLogical.txt
index 52764c55598..f4bb6d4d37f 100644
--- a/Build/source/libs/icu-xetex/data/translit/Thai_ThaiLogical.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Thai_ThaiLogical.txt
@@ -1,26 +1,16 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# This reverses the Thai LogicalOrderException vowels, and does (part of) spaces
-# The rules that convert space into semicolon are in another file;
-# since they have to come BEFORE the break iterator
-
-$thai = [[:thai:] \u0E01-\u0E3A\u0E40-\u0E5B] ;
-
-# First convert the semicolon back
-
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Thai_ThaiLogical.txt
+# Generated from CLDR: Thu Jul 20 16:27:19 PDT 2006
+#
+$thai = [[:thai:] à¸-\u0E3Aเ-๛] ;
' ' < $thai { '; ' } $thai;
-
-# Remove any other spaces between thai letters
-
< $thai { ' ' } $thai;
-
-# Now vowels
$thai_reversing = [[:Logical_Order_Exception:] & $thai];
$thai_non_reversing = [$thai - $thai_reversing ];
-
( $thai_reversing ) ( $thai_non_reversing ) > $2 $1;
-# other direction
-$2 $1 < ( $thai_non_reversing ) ( $thai_reversing ) ; \ No newline at end of file
+$2 $1 < ( $thai_non_reversing ) ( $thai_reversing ) ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Thai_ThaiSemi.txt b/Build/source/libs/icu-xetex/data/translit/Thai_ThaiSemi.txt
index ce1f3ff0ecb..64555f21f4f 100644
--- a/Build/source/libs/icu-xetex/data/translit/Thai_ThaiSemi.txt
+++ b/Build/source/libs/icu-xetex/data/translit/Thai_ThaiSemi.txt
@@ -1,11 +1,11 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# The rules that convert space into semicolon are in this file;
-# since they have to come BEFORE the break iterator.
-
-$thai = [[:thai:] \u0E01-\u0E3A\u0E40-\u0E5B] ;
-
-$thai { ' ' } $thai > '; ' ; \ No newline at end of file
+# ***************************************************************************
+# *
+# * Copyright (C) 2004-2006, International Business Machines
+# * Corporation; Unicode, Inc.; and others. All Rights Reserved.
+# *
+# ***************************************************************************
+# File: Thai_ThaiSemi.txt
+# Generated from CLDR: Thu Jul 20 16:27:19 PDT 2006
+#
+$thai = [[:thai:] à¸-\u0E3Aเ-๛] ;
+$thai { ' ' } $thai > '; ' ;
diff --git a/Build/source/libs/icu-xetex/data/translit/Tone_Digit.txt b/Build/source/libs/icu-xetex/data/translit/Tone_Digit.txt
deleted file mode 100644
index 489d79f1948..00000000000
--- a/Build/source/libs/icu-xetex/data/translit/Tone_Digit.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-#--------------------------------------------------------------------
-# Copyright (c) 1999-2004, International Business Machines
-# Corporation and others. All Rights Reserved.
-#--------------------------------------------------------------------
-
-# Only intended for internal use
-\u0304 <> 1;
-\u0301 <> 2;
-\u030C <> 3;
-\u0300 <> 4;
- < 5; \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/data/translit/el.txt b/Build/source/libs/icu-xetex/data/translit/el.txt
index 23cc342eed5..24416b35aed 100644
--- a/Build/source/libs/icu-xetex/data/translit/el.txt
+++ b/Build/source/libs/icu-xetex/data/translit/el.txt
@@ -1,6 +1,6 @@
// ***************************************************************************
// *
-// * Copyright (C) 2004, International Business Machines
+// * Copyright (C) 2004-2006, International Business Machines
// * Corporation and others. All Rights Reserved.
// *
// ***************************************************************************
diff --git a/Build/source/libs/icu-xetex/data/translit/en.txt b/Build/source/libs/icu-xetex/data/translit/en.txt
index 6c6ccd63e19..0dc8feb512c 100644
--- a/Build/source/libs/icu-xetex/data/translit/en.txt
+++ b/Build/source/libs/icu-xetex/data/translit/en.txt
@@ -1,6 +1,6 @@
// ***************************************************************************
// *
-// * Copyright (C) 2004, International Business Machines
+// * Copyright (C) 2004-2006, International Business Machines
// * Corporation and others. All Rights Reserved.
// *
// ***************************************************************************
diff --git a/Build/source/libs/icu-xetex/data/translit/root.txt b/Build/source/libs/icu-xetex/data/translit/root.txt
index 8675ff15817..d41f9d4c2b7 100644
--- a/Build/source/libs/icu-xetex/data/translit/root.txt
+++ b/Build/source/libs/icu-xetex/data/translit/root.txt
@@ -1,778 +1,1144 @@
-// ***************************************************************************
+// ***************************************************************************
// *
-// * Copyright (C) 2004-2005, International Business Machines
-// * Corporation and others. All Rights Reserved.
+// * Copyright (C) 2004-2006, International Business Machines
+// * Corporation; Unicode, Inc.; and others. All Rights Reserved.
// *
// ***************************************************************************
-//
-
-root{
-
- RuleBasedTransliteratorIDs{
-//--------------------------------------------------------------------
-//--------------------------------------------------------------------
-//
-// TRANSLITERATOR INDEX FILE. This file lists the non-algorithmic
-// system transliterators. It allows arbitrary mappings between
-// transliterator IDs and file names, and also allows the system to
-// define aliases for transliterators, so that "Latin-Hangul", for
-// example, can be implemented transparently as the compound
-// "Latin-Jamo;Jamo-Hangul". Internal IDs may also be defined; these
-// are invisible to the user, but can be composed together by the
-// system to create visible transliterators.
-//
-// Blank lines and lines beginning with '#' are ignored.
-//
-// Lines in this file have one of the following forms (text not
-// enclosed by <> is literal):
-//
-// <id>:file:<resource>:<encoding>:<direction>
-// <id>:internal:<resource>:<encoding>:<direction>
-// <id>:alias:<getInstanceArg>
-//
-// <id> is the ID of the system transliterator being defined. These
-// are public IDs enumerated by Transliterator.getAvailableIDs(),
-// unless the second field is "internal".
-//
-// <resource> is a ResourceReader resource name. Currently these refer
-// to file names under com/ibm/text/resources. This string is passed
-// directly to ResourceReader, together with <encoding>.
-//
-// <encoding> is the character encoding to use when reading <resource>;
-// passed directly to ResourceReader. E.g., "UTF8".
+// File: root.txt
+// Generated from CLDR: Thu Jul 20 16:27:11 PDT 2006
//
-// <direction> is either "FORWARD" or "REVERSE".
-//
-// <getInstanceArg> is a string to be passed directly to
-// Transliterator.getInstance(). The returned Transliterator object
-// then has its ID changed to <id> and is returned.
-
-
-// Bidirectional rule files
-
- Fullwidth-Halfwidth {
+root {
+ RuleBasedTransliteratorIDs {
+ Tone-Digit {
+ alias {"Pinyin-NumericPinyin"}
+ }
+ Digit-Tone {
+ alias {"NumericPinyin-Pinyin"}
+ }
+ Any-Accents {
file {
- resource:process(transliterator){"Fullwidth_Halfwidth.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Any_Accents.txt"}
+ direction {"FORWARD"}
+ }
}
- Halfwidth-Fullwidth {
+ Accents-Any {
file {
- resource:process(transliterator){"Fullwidth_Halfwidth.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Any_Accents.txt"}
+ direction {"REVERSE"}
+ }
}
- Latin-Cyrillic {
+ Any-Publishing {
file {
- resource:process(transliterator){"Cyrillic_Latin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Any_Publishing.txt"}
+ direction {"FORWARD"}
+ }
}
- Cyrillic-Latin {
+ Publishing-Any {
file {
- resource:process(transliterator){"Cyrillic_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Any_Publishing.txt"}
+ direction {"REVERSE"}
+ }
}
- Latin-Hebrew {
+ Arabic-Latin {
file {
- resource:process(transliterator){"Hebrew_Latin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Arabic_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Hebrew-Latin {
+ Latin-Arabic {
file {
- resource:process(transliterator){"Hebrew_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Arabic_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Latin-Arabic {
+ Bengali-Devanagari {
file {
- resource:process(transliterator){"Arabic_Latin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Bengali_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Arabic-Latin {
+
+ Bengali-Gujarati {
file {
- resource:process(transliterator){"Arabic_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Bengali_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Tone-Digit {
- internal {
- resource:process(transliterator){"Tone_Digit.txt"}
- direction{"FORWARD"}
- }
+ Bengali-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Bengali_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Digit-Tone {
+
+ Bengali-InterIndic {
internal {
- resource:process(transliterator){"Tone_Digit.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Bengali_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-NumericPinyin {
+ Bengali-Kannada {
file {
- resource:process(transliterator){"Latin_NumericPinyin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Bengali_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- NumericPinyin-Latin {
+
+ Bengali-Latin {
file {
- resource:process(transliterator){"Latin_NumericPinyin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Bengali_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Han-Spacedhan {
- internal {
- resource:process(transliterator){"Han_Spacedhan.txt"}
- direction{"FORWARD"}
- }
+ Bengali-Malayalam {
+ file {
+ resource:process(transliterator) {"Bengali_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Spacedhan-Han {
- alias {"null"}
+
+ Bengali-Oriya {
+ file {
+ resource:process(transliterator) {"Bengali_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Han-Latin {
+ Bengali-Tamil {
file {
- resource:process(transliterator){"Han_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Bengali_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
-//Latin-Han:file:Transliterator_Han_Latin.txt:UTF8:REVERSE # no round trip!
- Latin-Han {
- alias {"null"}
+
+ Bengali-Telugu {
+ file {
+ resource:process(transliterator) {"Bengali_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
-// Comment these out; they are only for testing
-// Latin-Han/definition:file:Transliterator_Han_Latin_Definition.txt:UTF8:REVERSE
-// Han-Latin/definition:file:Transliterator_Han_Latin_Definition.txt:UTF8:FORWARD
+ Cyrillic-Latin {
+ file {
+ resource:process(transliterator) {"Cyrillic_Latin.txt"}
+ direction {"FORWARD"}
+ }
+ }
+ Latin-Cyrillic {
+ file {
+ resource:process(transliterator) {"Cyrillic_Latin.txt"}
+ direction {"REVERSE"}
+ }
+ }
-//Latin-Han/EDICT:file:Transliterator_Han_Latin_EDICT.txt:UTF8:REVERSE
-//Han-Latin/EDICT:file:Transliterator_Han_Latin_EDICT.txt:UTF8:FORWARD
+ Devanagari-Bengali {
+ file {
+ resource:process(transliterator) {"Devanagari_Bengali.txt"}
+ direction {"FORWARD"}
+ }
+ }
- Latin-Greek {
+ Devanagari-Gujarati {
file {
- resource:process(transliterator){"Greek_Latin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Devanagari_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Greek-Latin {
+
+ Devanagari-Gurmukhi {
file {
- resource:process(transliterator){"Greek_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Devanagari_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Greek/UNGEGN {
+ Devanagari-InterIndic {
+ internal {
+ resource:process(transliterator) {"Devanagari_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
+ }
+
+ Devanagari-Kannada {
file {
- resource:process(transliterator){"Greek_Latin_UNGEGN.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Devanagari_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Greek-Latin/UNGEGN {
+
+ Devanagari-Latin {
file {
- resource:process(transliterator){"Greek_Latin_UNGEGN.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Devanagari_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Katakana {
+ Devanagari-Malayalam {
file {
- resource:process(transliterator){"Latin_Katakana.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Devanagari_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Katakana-Latin {
+
+ Devanagari-Oriya {
file {
- resource:process(transliterator){"Latin_Katakana.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Devanagari_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Hiragana {
+ Devanagari-Tamil {
file {
- resource:process(transliterator){"Hiragana_Latin.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Devanagari_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Hiragana-Latin {
+
+ Devanagari-Telugu {
file {
- resource:process(transliterator){"Hiragana_Latin.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Devanagari_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
-//Thai Stuff: will change if we get \b into Transliterator
+ Fullwidth-Halfwidth {
+ file {
+ resource:process(transliterator) {"Fullwidth_Halfwidth.txt"}
+ direction {"FORWARD"}
+ }
+ }
+ Halfwidth-Fullwidth {
+ file {
+ resource:process(transliterator) {"Fullwidth_Halfwidth.txt"}
+ direction {"REVERSE"}
+ }
+ }
- Thai-ThaiSemi {
- internal {
- resource:process(transliterator){"Thai_ThaiSemi.txt"}
- direction{"FORWARD"}
- }
+ Georgian-Latin {
+ file {
+ resource:process(transliterator) {"Georgian_Latin.txt"}
+ direction {"FORWARD"}
+ }
+ }
+ Latin-Georgian {
+ file {
+ resource:process(transliterator) {"Georgian_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Thai-ThaiLogical {
- internal {
- resource:process(transliterator){"Thai_ThaiLogical.txt"}
- direction{"FORWARD"}
- }
+ Greek-Latin {
+ file {
+ resource:process(transliterator) {"Greek_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- ThaiLogical-Thai {
- internal {
- resource:process(transliterator){"Thai_ThaiLogical.txt"}
- direction{"REVERSE"}
- }
+ Latin-Greek {
+ file {
+ resource:process(transliterator) {"Greek_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- ThaiLogical-Latin {
- internal {
- resource:process(transliterator){"ThaiLogical_Latin.txt"}
- direction{"FORWARD"}
- }
+ Greek-Latin/UNGEGN {
+ file {
+ resource:process(transliterator) {"Greek_Latin_UNGEGN.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-ThaiLogical {
- internal {
- resource:process(transliterator){"ThaiLogical_Latin.txt"}
- direction{"REVERSE"}
- }
+ Latin-Greek/UNGEGN {
+ file {
+ resource:process(transliterator) {"Greek_Latin_UNGEGN.txt"}
+ direction {"REVERSE"}
+ }
}
-// Must use the order below!
-// We need two separate passes because of the Thai vowel reversal
-// Thai-Logical also converts spaces to semicolons. That has to be done before we insert latin spaces
+ Gujarati-Bengali {
+ file {
+ resource:process(transliterator) {"Gujarati_Bengali.txt"}
+ direction {"FORWARD"}
+ }
+ }
- Thai-Latin {
- alias {"[[:thai:] \u0E01-\u0E3A\u0E40-\u0E5B];NFD;Thai-ThaiSemi;Any-BreakInternal;Thai-ThaiLogical;ThaiLogical-Latin;NFC"}
+ Gujarati-Devanagari {
+ file {
+ resource:process(transliterator) {"Gujarati_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Thai {
- alias {"[[:Latin:][:Mn:][:Me:] \\u0020 \;0-9|~\u00A7\u00AB\u00BB\u02B9\u0374\u2021\u02CC];NFD;Latin-ThaiLogical;ThaiLogical-Thai;NFC"}
+
+ Gujarati-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Gujarati_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
-// end of Thai Stuff
+ Gujarati-InterIndic {
+ internal {
+ resource:process(transliterator) {"Gujarati_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
+ }
- Hiragana-Katakana {
+ Gujarati-Kannada {
file {
- resource:process(transliterator){"Hiragana_Katakana.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Gujarati_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Katakana-Hiragana {
+
+ Gujarati-Latin {
file {
- resource:process(transliterator){"Hiragana_Katakana.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Gujarati_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Any-Accents {
+ Gujarati-Malayalam {
file {
- resource:process(transliterator){"Any_Accents.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Gujarati_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Accents-Any {
+
+ Gujarati-Oriya {
file {
- resource:process(transliterator){"Any_Accents.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Gujarati_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Any-Publishing {
+ Gujarati-Tamil {
file {
- resource:process(transliterator){"Any_Publishing.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Gujarati_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Publishing-Any {
+
+ Gujarati-Telugu {
+ file {
+ resource:process(transliterator) {"Gujarati_Telugu.txt"}
+ direction {"FORWARD"}
+ }
+ }
+
+ Gurmukhi-Bengali {
file {
- resource:process(transliterator){"Any_Publishing.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Gurmukhi_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
-// Korean
-// N.B. Don't end Latin-Jamo with NFC; that produces Hangul. For
-// Hangul output use Latin-Hangul.
+ Gurmukhi-Devanagari {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
+ }
- LowerLatin-Jamo {
- internal {
- resource:process(transliterator){"Latin_Jamo.txt"}
- direction{"FORWARD"}
- }
+ Gurmukhi-Gujarati {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Jamo-LowerLatin {
+
+ Gurmukhi-InterIndic {
internal {
- resource:process(transliterator){"Latin_Jamo.txt"}
- direction{"REVERSE"}
- }
+ resource:process(transliterator) {"Gurmukhi_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Jamo {
- alias {"['A-Za-z\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E1\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u01FB\u0200-\u021B\u021E-\u021F\u0226-\u0233\u1E00-\u1E99\u1EA0-\u1EF9\u212A-\u212B];NFD;Lower;LowerLatin-Jamo"}
+
+ Gurmukhi-Kannada {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Jamo-Latin {
- alias {"['\u1100-\u1112\u1161-\u1175\u11A8-\u11C2\uAC00-\uD7A3];NFD;Jamo-LowerLatin;NFC"}
+
+ Gurmukhi-Latin {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Hangul {
- alias {"['A-Za-z\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E1\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u01FB\u0200-\u021B\u021E-\u021F\u0226-\u0233\u1E00-\u1E99\u1EA0-\u1EF9\u212A-\u212B];NFD;Lower;LowerLatin-Jamo;NFC"}
+
+ Gurmukhi-Malayalam {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Hangul-Latin {
- alias {"['\u1100-\u1112\u1161-\u1175\u11A8-\u11C2\u3131-\u313F\u3141-\u3143\u3145-\u3163\u3200-\u321C\u3260-\u327B\uAC00-\uD7A3\uFF07\uFFA1-\uFFAF\uFFB1-\uFFB3\uFFB5-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC];NFKD;Jamo-LowerLatin;NFC"}
+
+ Gurmukhi-Oriya {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
-// Inter-Indic composed rules
- Latin-InterIndic {
- internal {
- resource:process(transliterator){"Latin_InterIndic.txt"}
- direction{"FORWARD"}
- }
+ Gurmukhi-Tamil {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-InterIndic {
- internal {
- resource:process(transliterator){"Devanagari_InterIndic.txt"}
- direction{"FORWARD"}
- }
+
+ Gurmukhi-Telugu {
+ file {
+ resource:process(transliterator) {"Gurmukhi_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-InterIndic {
- internal {
- resource:process(transliterator){"Bengali_InterIndic.txt"}
- direction{"FORWARD"}
- }
+
+ Han-Latin {
+ file {
+ resource:process(transliterator) {"Han_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-InterIndic {
- internal {
- resource:process(transliterator){"Gurmukhi_InterIndic.txt"}
- direction{"FORWARD"}
- }
+ Latin-Han {
+ file {
+ resource:process(transliterator) {"Han_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Gujarati-InterIndic {
+
+ Han-Spacedhan {
internal {
- resource:process(transliterator){"Gujarati_InterIndic.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Han_Spacedhan.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-InterIndic {
+ Spacedhan-Han {
internal {
- resource:process(transliterator){"Oriya_InterIndic.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"Han_Spacedhan.txt"}
+ direction {"REVERSE"}
+ }
}
- Tamil-InterIndic {
- internal {
- resource:process(transliterator){"Tamil_InterIndic.txt"}
- direction{"FORWARD"}
- }
+
+ Hangul-Latin {
+ file {
+ resource:process(transliterator) {"Hangul_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-InterIndic {
- internal {
- resource:process(transliterator){"Telugu_InterIndic.txt"}
- direction{"FORWARD"}
- }
+
+ Hebrew-Latin {
+ file {
+ resource:process(transliterator) {"Hebrew_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-InterIndic {
- internal {
- resource:process(transliterator){"Kannada_InterIndic.txt"}
- direction{"FORWARD"}
- }
+ Latin-Hebrew {
+ file {
+ resource:process(transliterator) {"Hebrew_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-InterIndic {
- internal {
- resource:process(transliterator){"Malayalam_InterIndic.txt"}
- direction{"FORWARD"}
- }
+
+ Hiragana-Katakana {
+ file {
+ resource:process(transliterator) {"Hiragana_Katakana.txt"}
+ direction {"FORWARD"}
+ }
+ }
+ Katakana-Hiragana {
+ file {
+ resource:process(transliterator) {"Hiragana_Katakana.txt"}
+ direction {"REVERSE"}
+ }
}
- InterIndic-Latin {
- internal {
- resource:process(transliterator){"InterIndic_Latin.txt"}
- direction{"FORWARD"}
- }
+ Hiragana-Latin {
+ file {
+ resource:process(transliterator) {"Hiragana_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- InterIndic-Devanagari {
- internal {
- resource:process(transliterator){"InterIndic_Devanagari.txt"}
- direction{"FORWARD"}
- }
+ Latin-Hiragana {
+ file {
+ resource:process(transliterator) {"Hiragana_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
+
InterIndic-Bengali {
internal {
- resource:process(transliterator){"InterIndic_Bengali.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- InterIndic-Gurmukhi {
+
+ InterIndic-Devanagari {
internal {
- resource:process(transliterator){"InterIndic_Gurmukhi.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
+
InterIndic-Gujarati {
internal {
- resource:process(transliterator){"InterIndic_Gujarati.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- InterIndic-Oriya {
- internal {
- resource:process(transliterator){"InterIndic_Oriya.txt"}
- direction{"FORWARD"}
- }
- }
- InterIndic-Tamil {
+
+ InterIndic-Gurmukhi {
internal {
- resource:process(transliterator){"InterIndic_Tamil.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- InterIndic-Telugu {
+
+ InterIndic-Kannada {
internal {
- resource:process(transliterator){"InterIndic_Telugu.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- InterIndic-Kannada {
+
+ InterIndic-Latin {
internal {
- resource:process(transliterator){"InterIndic_Kannada.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
+
InterIndic-Malayalam {
internal {
- resource:process(transliterator){"InterIndic_Malayalam.txt"}
- direction{"FORWARD"}
- }
+ resource:process(transliterator) {"InterIndic_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
-//Latin-Indic transliterators
- Latin-Devanagari {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Devanagari;NFC"}
- }
- Latin-Bengali {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Bengali;NFC"}
+ InterIndic-Oriya {
+ internal {
+ resource:process(transliterator) {"InterIndic_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Gurmukhi {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ InterIndic-Tamil {
+ internal {
+ resource:process(transliterator) {"InterIndic_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Gujarati {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Gujarati;NFC"}
+
+ InterIndic-Telugu {
+ internal {
+ resource:process(transliterator) {"InterIndic_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Oriya {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Oriya;NFC"}
+
+ Jamo-Latin {
+ file {
+ resource:process(transliterator) {"Jamo_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Tamil {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Tamil;NFC"}
+
+ Kannada-Bengali {
+ file {
+ resource:process(transliterator) {"Kannada_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Telugu {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Telugu;NFC"}
+
+ Kannada-Devanagari {
+ file {
+ resource:process(transliterator) {"Kannada_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Kannada {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Kannada;NFC"}
+
+ Kannada-Gujarati {
+ file {
+ resource:process(transliterator) {"Kannada_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Latin-Malayalam {
- alias {"['.0-9A-Za-z~\u00C0-\u00C5\u00C7-\u00CF\u00D1-\u00D6\u00D9-\u00DD\u00E0-\u00E5\u00E7-\u00EF\u00F1-\u00F6\u00F9-\u00FD\u00FF-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0294\u0301\u0303-\u0304\u0306-\u0307\u0310\u0314-\u0315\u0323\u0325\u0331\u0341\u0344\u0385-\u0386\u0388-\u038A\u038C\u038E-\u0390\u03AC-\u03B0\u03CC-\u03CE\u03D3\u0403\u040C\u040E\u0419\u0439\u0453\u045C\u045E\u04C1-\u04C2\u04D0-\u04D1\u04D6-\u04D7\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1F01\u1F03-\u1F05\u1F07\u1F09\u1F0B-\u1F0D\u1F0F\u1F11\u1F13-\u1F15\u1F19\u1F1B-\u1F1D\u1F21\u1F23-\u1F25\u1F27\u1F29\u1F2B-\u1F2D\u1F2F\u1F31\u1F33-\u1F35\u1F37\u1F39\u1F3B-\u1F3D\u1F3F\u1F41\u1F43-\u1F45\u1F49\u1F4B-\u1F4D\u1F51\u1F53-\u1F55\u1F57\u1F59\u1F5B\u1F5D\u1F5F\u1F61\u1F63-\u1F65\u1F67\u1F69\u1F6B-\u1F6D\u1F6F\u1F71\u1F73\u1F75\u1F77\u1F79\u1F7B\u1F7D\u1F81\u1F83-\u1F85\u1F87\u1F89\u1F8B-\u1F8D\u1F8F\u1F91\u1F93-\u1F95\u1F97\u1F99\u1F9B-\u1F9D\u1F9F\u1FA1\u1FA3-\u1FA5\u1FA7\u1FA9\u1FAB-\u1FAD\u1FAF-\u1FB1\u1FB4\u1FB8-\u1FB9\u1FBB\u1FC4\u1FC9\u1FCB\u1FCE\u1FD0-\u1FD1\u1FD3\u1FD8-\u1FD9\u1FDB\u1FDE\u1FE0-\u1FE1\u1FE3\u1FE5\u1FE8-\u1FE9\u1FEB-\u1FEC\u1FEE\u1FF4\u1FF9\u1FFB\u212A-\u212B\uE04D\uE064];NFD;Lower;Latin-InterIndic;InterIndic-Malayalam;NFC"}
+
+ Kannada-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Kannada_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
-
-//Indic-Latin transliterators
- Devanagari-Latin {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-InterIndic {
+ internal {
+ resource:process(transliterator) {"Kannada_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Latin {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-Latin {
+ file {
+ resource:process(transliterator) {"Kannada_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Latin {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-Malayalam {
+ file {
+ resource:process(transliterator) {"Kannada_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Latin {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-Oriya {
+ file {
+ resource:process(transliterator) {"Kannada_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Latin {
- alias {"[\u0964-\u0965\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35\u0B36-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B70\u0B71];NFD;Oriya-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-Tamil {
+ file {
+ resource:process(transliterator) {"Kannada_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Tamil-Latin {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Latin;NFC"}
+
+ Kannada-Telugu {
+ file {
+ resource:process(transliterator) {"Kannada_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-Latin {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Latin;NFC"}
+
+ Latin-Armenian {
+ file {
+ resource:process(transliterator) {"Latin_Armenian.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Latin {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Latin;NFC"}
+ Armenian-Latin {
+ file {
+ resource:process(transliterator) {"Latin_Armenian.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-Latin {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Latin;NFC"}
+
+ Latin-Bengali {
+ file {
+ resource:process(transliterator) {"Latin_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Bengali {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Bengali;NFC"}
+ Latin-ConjoiningJamo {
+ internal {
+ resource:process(transliterator) {"Latin_ConjoiningJamo.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Gurmukhi {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Gurmukhi;NFC"}
+ ConjoiningJamo-Latin {
+ internal {
+ resource:process(transliterator) {"Latin_ConjoiningJamo.txt"}
+ direction {"REVERSE"}
+ }
}
- Devanagari-Gujarati {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Gujarati;NFC"}
+
+ Latin-Devanagari {
+ file {
+ resource:process(transliterator) {"Latin_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Oriya {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Oriya;NFC"}
+
+ Latin-Gujarati {
+ file {
+ resource:process(transliterator) {"Latin_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Tamil {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Tamil;NFC"}
+
+ Latin-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Latin_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Telugu {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Telugu;NFC"}
+
+ Latin-Hangul {
+ file {
+ resource:process(transliterator) {"Latin_Hangul.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Kannada {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Kannada;NFC"}
+
+ Latin-InterIndic {
+ internal {
+ resource:process(transliterator) {"Latin_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Devanagari-Malayalam {
- alias {"[\u0901-\u0903\u0904\u0905-\u0939\u093C-\u094D\u0950-\u0954\u0958-\u096F\u097D];NFD;Devanagari-InterIndic;InterIndic-Malayalam;NFC"}
+
+ Latin-Jamo {
+ file {
+ resource:process(transliterator) {"Latin_Jamo.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Devanagari {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Devanagari;NFC"}
+ Latin-Kannada {
+ file {
+ resource:process(transliterator) {"Latin_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Gurmukhi {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ Latin-Katakana {
+ file {
+ resource:process(transliterator) {"Latin_Katakana.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Gujarati {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Gujarati;NFC"}
+ Katakana-Latin {
+ file {
+ resource:process(transliterator) {"Latin_Katakana.txt"}
+ direction {"REVERSE"}
+ }
}
- Bengali-Oriya {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Oriya;NFC"}
+
+ Latin-Malayalam {
+ file {
+ resource:process(transliterator) {"Latin_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Tamil {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Tamil;NFC"}
+
+ Latin-NumericPinyin {
+ file {
+ resource:process(transliterator) {"Latin_NumericPinyin.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Telugu {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Telugu;NFC"}
+ NumericPinyin-Latin {
+ file {
+ resource:process(transliterator) {"Latin_NumericPinyin.txt"}
+ direction {"REVERSE"}
+ }
}
- Bengali-Kannada {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Kannada;NFC"}
+
+ Latin-Oriya {
+ file {
+ resource:process(transliterator) {"Latin_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Bengali-Malayalam {
- alias {"[\u0964-\u0965\u0981-\u0983\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7-\u09C8\u09CB-\u09CD\u09D7\u09DC-\u09DD\u09DF-\u09E3\u09E6-\u09FA\u09ce];NFD;Bengali-InterIndic;InterIndic-Malayalam;NFC"}
+
+ Latin-Tamil {
+ file {
+ resource:process(transliterator) {"Latin_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Devanagari {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Devanagari;NFC"}
+ Latin-Telugu {
+ file {
+ resource:process(transliterator) {"Latin_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Bengali {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Bengali;NFC"}
+
+ Latin-Thai {
+ file {
+ resource:process(transliterator) {"Latin_Thai.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Gujarati {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Gujarati;NFC"}
+
+ Malayalam-Bengali {
+ file {
+ resource:process(transliterator) {"Malayalam_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Oriya {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Oriya;NFC"}
+
+ Malayalam-Devanagari {
+ file {
+ resource:process(transliterator) {"Malayalam_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Tamil {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Tamil;NFC"}
+
+ Malayalam-Gujarati {
+ file {
+ resource:process(transliterator) {"Malayalam_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Telugu {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Telugu;NFC"}
+
+ Malayalam-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Malayalam_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Kannada {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Kannada;NFC"}
+
+ Malayalam-InterIndic {
+ internal {
+ resource:process(transliterator) {"Malayalam_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Gurmukhi-Malayalam {
- alias {"[\u0964-\u0965\u0A01\u0A02\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A3C\u0A3E-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A59-\u0A5C\u0A5E\u0A66-\u0A74];NFD;Gurmukhi-InterIndic;InterIndic-Malayalam;NFC"}
+
+ Malayalam-Kannada {
+ file {
+ resource:process(transliterator) {"Malayalam_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Devanagari {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Devanagari;NFC"}
+ Malayalam-Latin {
+ file {
+ resource:process(transliterator) {"Malayalam_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Bengali {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Bengali;NFC"}
+
+ Malayalam-Oriya {
+ file {
+ resource:process(transliterator) {"Malayalam_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Gurmukhi {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ Malayalam-Tamil {
+ file {
+ resource:process(transliterator) {"Malayalam_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Oriya {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Oriya;NFC"}
+
+ Malayalam-Telugu {
+ file {
+ resource:process(transliterator) {"Malayalam_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Tamil {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Tamil;NFC"}
+
+ Oriya-Bengali {
+ file {
+ resource:process(transliterator) {"Oriya_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Telugu {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Telugu;NFC"}
+
+ Oriya-Devanagari {
+ file {
+ resource:process(transliterator) {"Oriya_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Kannada {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Kannada;NFC"}
+
+ Oriya-Gujarati {
+ file {
+ resource:process(transliterator) {"Oriya_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Gujarati-Malayalam {
- alias {"[\u0964-\u0965\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF];NFD;Gujarati-InterIndic;InterIndic-Malayalam;NFC"}
+
+ Oriya-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Oriya_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Devanagari {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Devanagari;NFC"}
+ Oriya-InterIndic {
+ internal {
+ resource:process(transliterator) {"Oriya_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Bengali {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Bengali;NFC"}
+
+ Oriya-Kannada {
+ file {
+ resource:process(transliterator) {"Oriya_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Gurmukhi {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ Oriya-Latin {
+ file {
+ resource:process(transliterator) {"Oriya_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Gujarati {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Gujarati;NFC"}
+
+ Oriya-Malayalam {
+ file {
+ resource:process(transliterator) {"Oriya_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
+
Oriya-Tamil {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Tamil;NFC"}
+ file {
+ resource:process(transliterator) {"Oriya_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
+
Oriya-Telugu {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Telugu;NFC"}
+ file {
+ resource:process(transliterator) {"Oriya_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Kannada {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Kannada;NFC"}
+
+ Pinyin-NumericPinyin {
+ file {
+ resource:process(transliterator) {"Pinyin_NumericPinyin.txt"}
+ direction {"FORWARD"}
+ }
}
- Oriya-Malayalam {
- alias {"[\u0B01-\u0B03\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3C-\u0B43\u0B47-\u0B48\u0B4B-\u0B4D\u0B56-\u0B57\u0B5C-\u0B5D\u0B5F-\u0B61\u0B66-\u0B71];NFD;Oriya-InterIndic;InterIndic-Malayalam;NFC"}
+ NumericPinyin-Pinyin {
+ file {
+ resource:process(transliterator) {"Pinyin_NumericPinyin.txt"}
+ direction {"REVERSE"}
+ }
}
- Tamil-Devanagari {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Devanagari;NFC"}
+ Syriac-Latin {
+ file {
+ resource:process(transliterator) {"Syriac_Latin.txt"}
+ direction {"FORWARD"}
+ }
+ }
+ Latin-Syriac {
+ file {
+ resource:process(transliterator) {"Syriac_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
+
Tamil-Bengali {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Bengali;NFC"}
+ file {
+ resource:process(transliterator) {"Tamil_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Tamil-Gurmukhi {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ Tamil-Devanagari {
+ file {
+ resource:process(transliterator) {"Tamil_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
+
Tamil-Gujarati {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Gujarati;NFC"}
+ file {
+ resource:process(transliterator) {"Tamil_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Tamil-Oriya {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Oriya;NFC"}
+
+ Tamil-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Tamil_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Tamil-Telugu {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Telugu;NFC"}
+
+ Tamil-InterIndic {
+ internal {
+ resource:process(transliterator) {"Tamil_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
+
Tamil-Kannada {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Kannada;NFC"}
+ file {
+ resource:process(transliterator) {"Tamil_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
+
+ Tamil-Latin {
+ file {
+ resource:process(transliterator) {"Tamil_Latin.txt"}
+ direction {"FORWARD"}
+ }
+ }
+
Tamil-Malayalam {
- alias {"[0\u0B82-\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE7-\u0BF2\u0BB6];NFD;Tamil-InterIndic;InterIndic-Malayalam;NFC"}
+ file {
+ resource:process(transliterator) {"Tamil_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-Devanagari {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Devanagari;NFC"}
+ Tamil-Oriya {
+ file {
+ resource:process(transliterator) {"Tamil_Oriya.txt"}
+ direction {"FORWARD"}
+ }
+ }
+
+ Tamil-Telugu {
+ file {
+ resource:process(transliterator) {"Tamil_Telugu.txt"}
+ direction {"FORWARD"}
+ }
}
+
Telugu-Bengali {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Bengali;NFC"}
+ file {
+ resource:process(transliterator) {"Telugu_Bengali.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-Gurmukhi {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Gurmukhi;NFC"}
+
+ Telugu-Devanagari {
+ file {
+ resource:process(transliterator) {"Telugu_Devanagari.txt"}
+ direction {"FORWARD"}
+ }
}
+
Telugu-Gujarati {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Gujarati;NFC"}
+ file {
+ resource:process(transliterator) {"Telugu_Gujarati.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-Oriya {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Oriya;NFC"}
+
+ Telugu-Gurmukhi {
+ file {
+ resource:process(transliterator) {"Telugu_Gurmukhi.txt"}
+ direction {"FORWARD"}
+ }
}
- Telugu-Tamil {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Tamil;NFC"}
+
+ Telugu-InterIndic {
+ internal {
+ resource:process(transliterator) {"Telugu_InterIndic.txt"}
+ direction {"FORWARD"}
+ }
}
+
Telugu-Kannada {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Kannada;NFC"}
- }
- Telugu-Malayalam {
- alias {"[\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C60-\u0C61\u0C66-\u0C6F];NFD;Telugu-InterIndic;InterIndic-Malayalam;NFC"}
+ file {
+ resource:process(transliterator) {"Telugu_Kannada.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Devanagari {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Devanagari;NFC"}
- }
- Kannada-Bengali {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Bengali;NFC"}
- }
- Kannada-Gurmukhi {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Gurmukhi;NFC"}
+ Telugu-Latin {
+ file {
+ resource:process(transliterator) {"Telugu_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Gujarati {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Gujarati;NFC"}
+
+ Telugu-Malayalam {
+ file {
+ resource:process(transliterator) {"Telugu_Malayalam.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Oriya {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Oriya;NFC"}
+
+ Telugu-Oriya {
+ file {
+ resource:process(transliterator) {"Telugu_Oriya.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Tamil {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Tamil;NFC"}
+
+ Telugu-Tamil {
+ file {
+ resource:process(transliterator) {"Telugu_Tamil.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Telugu {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Telugu;NFC"}
+
+ Thaana-Latin {
+ file {
+ resource:process(transliterator) {"Thaana_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Kannada-Malayalam {
- alias {"[\u0C82-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC\u0CBD\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5-\u0CD6\u0CDE\u0CE0-\u0CE1\u0CE6-\u0CEF];NFD;Kannada-InterIndic;InterIndic-Malayalam;NFC"}
+ Latin-Thaana {
+ file {
+ resource:process(transliterator) {"Thaana_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-Devanagari {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Devanagari;NFC"}
+ Thai-Latin {
+ file {
+ resource:process(transliterator) {"Thai_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Malayalam-Bengali {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Bengali;NFC"}
+
+ Thai-ThaiLogical {
+ internal {
+ resource:process(transliterator) {"Thai_ThaiLogical.txt"}
+ direction {"FORWARD"}
+ }
}
- Malayalam-Gurmukhi {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Gurmukhi;NFC"}
+ ThaiLogical-Thai {
+ internal {
+ resource:process(transliterator) {"Thai_ThaiLogical.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-Gujarati {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Gujarati;NFC"}
+
+ Thai-ThaiSemi {
+ internal {
+ resource:process(transliterator) {"Thai_ThaiSemi.txt"}
+ direction {"FORWARD"}
+ }
}
- Malayalam-Oriya {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Oriya;NFC"}
+ ThaiSemi-Thai {
+ internal {
+ resource:process(transliterator) {"Thai_ThaiSemi.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-Tamil {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Tamil;NFC"}
+
+ ThaiLogical-Latin {
+ internal {
+ resource:process(transliterator) {"ThaiLogical_Latin.txt"}
+ direction {"FORWARD"}
+ }
}
- Malayalam-Telugu {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Telugu;NFC"}
+ Latin-ThaiLogical {
+ internal {
+ resource:process(transliterator) {"ThaiLogical_Latin.txt"}
+ direction {"REVERSE"}
+ }
}
- Malayalam-Kannada {
- alias {"[\u0D02-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3E-\u0D43\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D60-\u0D61\u0D66-\u0D6F];NFD;Malayalam-InterIndic;InterIndic-Kannada;NFC"}
- }
- /*
- # Comment these out; they are only for testing
- Latin-Han/definition{
- file {
- resource:process(transliterator){"Han_Latin_Definition.txt"}
- direction{"REVERSE"}
- }
- }
- Han-Latin/definition{
- file {
- resource:process(transliterator){"Han_Latin_Definition.txt"}
- direction{"FORWARD"}
- }
- }
- Latin-Han/EDICT{
- file {
- resource:process(transliterator){"Han_Latin_EDICT.txt"}
- direction{"REVERSE"}
- }
- }
- Han-Latin/EDICT{
- file {
- resource:process(transliterator){"Han_Latin_EDICT.txt"}
- direction{"FORWARD"}
- }
- }
- */
-// eof
+
}
TransliteratorNamePattern {
// Format for the display name of a Transliterator.
// This is the language-neutral form of this resource.
"{0,choice,0#|1#{1}|2#{1}-{2}}" // Display name
}
-
// Transliterator display names
// This is the English form of this resource.
"%Translit%Hex" { "%Translit%Hex" }
"%Translit%UnicodeName" { "%Translit%UnicodeName" }
"%Translit%UnicodeChar" { "%Translit%UnicodeChar" }
-
TransliterateLATIN{
- "",
- ""
+ "",
+ ""
}
-
}
diff --git a/Build/source/libs/icu-xetex/data/translit/trnsfiles.mk b/Build/source/libs/icu-xetex/data/translit/trnsfiles.mk
index fedaa43e1cb..81078b44ea3 100644
--- a/Build/source/libs/icu-xetex/data/translit/trnsfiles.mk
+++ b/Build/source/libs/icu-xetex/data/translit/trnsfiles.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1997-2005, International Business Machines
+# * Copyright (C) 1997-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -23,6 +23,4 @@
#
#
-TRANSLIT_ALIAS_SOURCE=root.txt
-
-TRANSLIT_SOURCE=el.txt en.txt
+TRANSLIT_SOURCE=root.txt en.txt el.txt
diff --git a/Build/source/libs/icu-xetex/data/translit/trnslocal.mk b/Build/source/libs/icu-xetex/data/translit/trnslocal.mk
index ad11619c5e6..c3d990fea6c 100644
--- a/Build/source/libs/icu-xetex/data/translit/trnslocal.mk
+++ b/Build/source/libs/icu-xetex/data/translit/trnslocal.mk
@@ -1,4 +1,4 @@
-# * Copyright (C) 1997-2005, International Business Machines
+# * Copyright (C) 1997-2006, International Business Machines
# * Corporation and others. All Rights Reserved.
# A list of txt's to build
# Note:
@@ -23,8 +23,4 @@
#
#
-TRANSLIT_ALIAS_SOURCE=
-
-
TRANSLIT_SOURCE=
-
diff --git a/Build/source/libs/icu-xetex/data/unidata/BidiMirroring.txt b/Build/source/libs/icu-xetex/data/unidata/BidiMirroring.txt
index 45167fbb99c..f9a09c13455 100644
--- a/Build/source/libs/icu-xetex/data/unidata/BidiMirroring.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/BidiMirroring.txt
@@ -1,18 +1,18 @@
-# BidiMirroring-4.1.0.txt
-# Date: 2005-03-17, 15:21:00 PST [KW]
+# BidiMirroring-5.0.0.txt
+# Date: 2006-02-16, 16:11:00 PST [KW]
#
# Bidi_Mirroring_Glyph Property
#
# This file is an informative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# This data file lists characters that have the mirrored property
# where there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
-# The repertoire covered by the file is Unicode 4.1.0.
+# The repertoire covered by the file is Unicode 5.0.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
@@ -32,7 +32,7 @@
# at http://www.unicode.org/unicode/reports/tr9/
#
# This file was originally created by Markus Scherer.
-# Extended for Unicode 3.2, 4.0, and 4.1 by Ken Whistler.
+# Extended for Unicode 3.2, 4.0, 4.1, and 5.0 by Ken Whistler.
#
# ############################################################
@@ -46,6 +46,16 @@
007D; 007B # RIGHT CURLY BRACKET
00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+0F3A; 0F3B # TIBETAN MARK GUG RTAGS GYON
+0F3B; 0F3A # TIBETAN MARK GUG RTAGS GYAS
+0F3C; 0F3D # TIBETAN MARK ANG KHANG GYON
+0F3D; 0F3C # TIBETAN MARK ANG KHANG GYAS
+169B; 169C # OGHAM FEATHER MARK
+169C; 169B # OGHAM REVERSED FEATHER MARK
+2018; 2019 # [BEST FIT] LEFT SINGLE QUOTATION MARK
+2019; 2018 # [BEST FIT] RIGHT SINGLE QUOTATION MARK
+201C; 201D # [BEST FIT] LEFT DOUBLE QUOTATION MARK
+201D; 201C # [BEST FIT] RIGHT DOUBLE QUOTATION MARK
2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
2045; 2046 # LEFT SQUARE BRACKET WITH QUILL
@@ -356,6 +366,16 @@
3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET
301A; 301B # LEFT WHITE SQUARE BRACKET
301B; 301A # RIGHT WHITE SQUARE BRACKET
+301D; 301E # REVERSED DOUBLE PRIME QUOTATION MARK
+301E; 301D # DOUBLE PRIME QUOTATION MARK
+FE59; FE5A # SMALL LEFT PARENTHESIS
+FE5A; FE59 # SMALL RIGHT PARENTHESIS
+FE5B; FE5C # SMALL LEFT CURLY BRACKET
+FE5C; FE5B # SMALL RIGHT CURLY BRACKET
+FE5D; FE5E # SMALL LEFT TORTOISE SHELL BRACKET
+FE5E; FE5D # SMALL RIGHT TORTOISE SHELL BRACKET
+FE64; FE65 # SMALL LESS-THAN SIGN
+FE65; FE64 # SMALL GREATER-THAN SIGN
FF08; FF09 # FULLWIDTH LEFT PARENTHESIS
FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS
FF1C; FF1E # FULLWIDTH LESS-THAN SIGN
@@ -373,6 +393,10 @@ FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET
# For these characters it is up to the rendering system
# to provide mirrored glyphs.
+# 201A; SINGLE LOW-9 QUOTATION MARK
+# 201B; SINGLE HIGH-REVERSED-9 QUOTATION MARK
+# 201E; DOUBLE LOW-9 QUOTATION MARK
+# 201F; DOUBLE HIGH-REVERSED-9 QUOTATION MARK
# 2140; DOUBLE-STRUCK N-ARY SUMMATION
# 2201; COMPLEMENT
# 2202; PARTIAL DIFFERENTIAL
@@ -548,3 +572,11 @@ FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET
# 2AF3; PARALLEL WITH TILDE OPERATOR
# 2AFB; TRIPLE SOLIDUS BINARY RELATION
# 2AFD; DOUBLE SOLIDUS OPERATOR
+# 301F; LOW DOUBLE PRIME QUOTATION MARK
+# 1D6DB; MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+# 1D715; MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+# 1D74F; MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+# 1D789; MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+# 1D7C3; MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/Blocks.txt b/Build/source/libs/icu-xetex/data/unidata/Blocks.txt
index f2b95662745..9cc87547f26 100644
--- a/Build/source/libs/icu-xetex/data/unidata/Blocks.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/Blocks.txt
@@ -1,8 +1,8 @@
-# Blocks-4.1.0.txt
-# Date: 2005-1-31, 16:50 [KW]
+# Blocks-5.0.0.txt
+# Date: 2006-02-15, 15:40:00 [KW]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -24,6 +24,8 @@
# have the value No_Block.
# Property: Block
+#
+# @missing: 0000..10FFFF; No_Block
0000..007F; Basic Latin
0080..00FF; Latin-1 Supplement
@@ -41,6 +43,7 @@
0700..074F; Syriac
0750..077F; Arabic Supplement
0780..07BF; Thaana
+07C0..07FF; NKo
0900..097F; Devanagari
0980..09FF; Bengali
0A00..0A7F; Gurmukhi
@@ -74,6 +77,7 @@
1980..19DF; New Tai Lue
19E0..19FF; Khmer Symbols
1A00..1A1F; Buginese
+1B00..1B7F; Balinese
1D00..1D7F; Phonetic Extensions
1D80..1DBF; Phonetic Extensions Supplement
1DC0..1DFF; Combining Diacritical Marks Supplement
@@ -104,6 +108,7 @@
2A00..2AFF; Supplemental Mathematical Operators
2B00..2BFF; Miscellaneous Symbols and Arrows
2C00..2C5F; Glagolitic
+2C60..2C7F; Latin Extended-C
2C80..2CFF; Coptic
2D00..2D2F; Georgian Supplement
2D30..2D7F; Tifinagh
@@ -129,7 +134,9 @@
A000..A48F; Yi Syllables
A490..A4CF; Yi Radicals
A700..A71F; Modifier Tone Letters
+A720..A7FF; Latin Extended-D
A800..A82F; Syloti Nagri
+A840..A87F; Phags-pa
AC00..D7AF; Hangul Syllables
D800..DB7F; High Surrogates
DB80..DBFF; High Private Use Surrogates
@@ -158,11 +165,15 @@ FFF0..FFFF; Specials
10450..1047F; Shavian
10480..104AF; Osmanya
10800..1083F; Cypriot Syllabary
+10900..1091F; Phoenician
10A00..10A5F; Kharoshthi
+12000..123FF; Cuneiform
+12400..1247F; Cuneiform Numbers and Punctuation
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D300..1D35F; Tai Xuan Jing Symbols
+1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
20000..2A6DF; CJK Unified Ideographs Extension B
2F800..2FA1F; CJK Compatibility Ideographs Supplement
@@ -170,3 +181,5 @@ E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement
F0000..FFFFF; Supplementary Private Use Area-A
100000..10FFFF; Supplementary Private Use Area-B
+
+# EOF \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/data/unidata/CaseFolding.txt b/Build/source/libs/icu-xetex/data/unidata/CaseFolding.txt
index f25d9bfed4d..83a79b2fe21 100644
--- a/Build/source/libs/icu-xetex/data/unidata/CaseFolding.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/CaseFolding.txt
@@ -1,8 +1,8 @@
-# CaseFolding-4.1.0.txt
-# Date: 2005-03-26, 00:24:43 GMT [MD]
+# CaseFolding-5.0.0.txt
+# Date: 2006-03-03, 08:22:43 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -272,9 +272,19 @@
022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE
0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON
+023A; C; 2C65; # LATIN CAPITAL LETTER A WITH STROKE
023B; C; 023C; # LATIN CAPITAL LETTER C WITH STROKE
023D; C; 019A; # LATIN CAPITAL LETTER L WITH BAR
-0241; C; 0294; # LATIN CAPITAL LETTER GLOTTAL STOP
+023E; C; 2C66; # LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+0241; C; 0242; # LATIN CAPITAL LETTER GLOTTAL STOP
+0243; C; 0180; # LATIN CAPITAL LETTER B WITH STROKE
+0244; C; 0289; # LATIN CAPITAL LETTER U BAR
+0245; C; 028C; # LATIN CAPITAL LETTER TURNED V
+0246; C; 0247; # LATIN CAPITAL LETTER E WITH STROKE
+0248; C; 0249; # LATIN CAPITAL LETTER J WITH STROKE
+024A; C; 024B; # LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024C; C; 024D; # LATIN CAPITAL LETTER R WITH STROKE
+024E; C; 024F; # LATIN CAPITAL LETTER Y WITH STROKE
0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI
0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS
0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS
@@ -335,6 +345,9 @@
03F7; C; 03F8; # GREEK CAPITAL LETTER SHO
03F9; C; 03F2; # GREEK CAPITAL LUNATE SIGMA SYMBOL
03FA; C; 03FB; # GREEK CAPITAL LETTER SAN
+03FD; C; 037B; # GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+03FE; C; 037C; # GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+03FF; C; 037D; # GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE
0401; C; 0451; # CYRILLIC CAPITAL LETTER IO
0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE
@@ -427,6 +440,7 @@
04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA
04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE
04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0; C; 04CF; # CYRILLIC LETTER PALOCHKA
04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK
04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL
@@ -455,6 +469,9 @@
04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
04F6; C; 04F7; # CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04FA; C; 04FB; # CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FC; C; 04FD; # CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FE; C; 04FF; # CYRILLIC CAPITAL LETTER HA WITH STROKE
0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE
0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE
0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE
@@ -463,6 +480,8 @@
050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE
050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE
050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE
+0510; C; 0511; # CYRILLIC CAPITAL LETTER REVERSED ZE
+0512; C; 0513; # CYRILLIC CAPITAL LETTER EL WITH HOOK
0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB
0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN
0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM
@@ -845,6 +864,7 @@
2126; C; 03C9; # OHM SIGN
212A; C; 006B; # KELVIN SIGN
212B; C; 00E5; # ANGSTROM SIGN
+2132; C; 214E; # TURNED CAPITAL F
2160; C; 2170; # ROMAN NUMERAL ONE
2161; C; 2171; # ROMAN NUMERAL TWO
2162; C; 2172; # ROMAN NUMERAL THREE
@@ -861,6 +881,7 @@
216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED
216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED
216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND
+2183; C; 2184; # ROMAN NUMERAL REVERSED ONE HUNDRED
24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A
24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B
24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C
@@ -934,6 +955,14 @@
2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC
2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE
+2C64; C; 027D; # LATIN CAPITAL LETTER R WITH TAIL
+2C67; C; 2C68; # LATIN CAPITAL LETTER H WITH DESCENDER
+2C69; C; 2C6A; # LATIN CAPITAL LETTER K WITH DESCENDER
+2C6B; C; 2C6C; # LATIN CAPITAL LETTER Z WITH DESCENDER
+2C75; C; 2C76; # LATIN CAPITAL LETTER HALF H
2C80; C; 2C81; # COPTIC CAPITAL LETTER ALFA
2C82; C; 2C83; # COPTIC CAPITAL LETTER VIDA
2C84; C; 2C85; # COPTIC CAPITAL LETTER GAMMA
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedAge.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedAge.txt
index ae4cc7100ae..00f5a51a781 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedAge.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedAge.txt
@@ -1,8 +1,8 @@
-# DerivedAge-4.1.0.txt
-# Date: 2005-02-26, 02:31:13 GMT [MD]
+# DerivedAge-5.0.0.txt
+# Date: 2006-07-14, 17:25:00 PST [MD/KW]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -42,6 +42,8 @@
# All code points not explicitly listed for Age
# have the value unassigned.
+# @missing: 0000..10FFFF; unassigned
+
# ================================================
# Assigned as of Unicode 1.1.0 (June, 1993)
@@ -729,7 +731,7 @@ E0100..E01EF ; 4.0 # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# ================================================
-# Newly assigned in Unicode 4.1.0 (XXX, 2005)
+# Newly assigned in Unicode 4.1.0 (March, 2005)
0237..0241 ; 4.1 # [11] LATIN SMALL LETTER DOTLESS J..LATIN CAPITAL LETTER GLOTTAL STOP
0358..035C ; 4.1 # [5] COMBINING DOT ABOVE RIGHT..COMBINING DOUBLE BREVE BELOW
@@ -819,3 +821,47 @@ FE10..FE19 ; 4.1 # [10] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION F
1D6A4..1D6A5 ; 4.1 # [2] MATHEMATICAL ITALIC SMALL DOTLESS I..MATHEMATICAL ITALIC SMALL DOTLESS J
# Total code points: 1273
+
+# ================================================
+
+# Newly assigned in Unicode 5.0.0 (July, 2006)
+
+0242..024F ; 5.0 # [14] LATIN SMALL LETTER GLOTTAL STOP..LATIN SMALL LETTER Y WITH STROKE
+037B..037D ; 5.0 # [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+04CF ; 5.0 # CYRILLIC SMALL LETTER PALOCHKA
+04FA..04FF ; 5.0 # [6] CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK..CYRILLIC SMALL LETTER HA WITH STROKE
+0510..0513 ; 5.0 # [4] CYRILLIC CAPITAL LETTER REVERSED ZE..CYRILLIC SMALL LETTER EL WITH HOOK
+05BA ; 5.0 # HEBREW POINT HOLAM HASER FOR VAV
+07C0..07FA ; 5.0 # [59] NKO DIGIT ZERO..NKO LAJANYALAN
+097B..097C ; 5.0 # [2] DEVANAGARI LETTER GGA..DEVANAGARI LETTER JJA
+097E..097F ; 5.0 # [2] DEVANAGARI LETTER DDDA..DEVANAGARI LETTER BBA
+0CE2..0CE3 ; 5.0 # [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF1..0CF2 ; 5.0 # [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+1B00..1B4B ; 5.0 # [76] BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
+1B50..1B7C ; 5.0 # [45] BALINESE DIGIT ZERO..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1DC4..1DCA ; 5.0 # [7] COMBINING MACRON-ACUTE..COMBINING LATIN SMALL LETTER R BELOW
+1DFE..1DFF ; 5.0 # [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+20EC..20EF ; 5.0 # [4] COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW
+214D..214E ; 5.0 # [2] AKTIESELSKAB..TURNED SMALL F
+2184 ; 5.0 # LATIN SMALL LETTER REVERSED C
+23DC..23E7 ; 5.0 # [12] TOP PARENTHESIS..ELECTRICAL INTERSECTION
+26B2 ; 5.0 # NEUTER
+27C7..27CA ; 5.0 # [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+2B14..2B1A ; 5.0 # [7] SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK..DOTTED SQUARE
+2B20..2B23 ; 5.0 # [4] WHITE PENTAGON..HORIZONTAL BLACK HEXAGON
+2C60..2C6C ; 5.0 # [13] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN SMALL LETTER Z WITH DESCENDER
+2C74..2C77 ; 5.0 # [4] LATIN SMALL LETTER V WITH CURL..LATIN SMALL LETTER TAILLESS PHI
+A717..A71A ; 5.0 # [4] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A720..A721 ; 5.0 # [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A840..A877 ; 5.0 # [56] PHAGS-PA LETTER KA..PHAGS-PA MARK DOUBLE SHAD
+10900..10919 ; 5.0 # [26] PHOENICIAN LETTER ALF..PHOENICIAN NUMBER ONE HUNDRED
+1091F ; 5.0 # PHOENICIAN WORD SEPARATOR
+12000..1236E ; 5.0 # [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+12400..12462 ; 5.0 # [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12470..12473 ; 5.0 # [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+1D360..1D371 ; 5.0 # [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D7CA..1D7CB ; 5.0 # [2] MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
+
+# Total code points: 1369
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedBidiClass.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedBidiClass.txt
index 61aa2deeea3..d94a3f10c37 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedBidiClass.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedBidiClass.txt
@@ -1,8 +1,8 @@
-# DerivedBidiClass-4.1.0.txt
-# Date: 2005-03-30, 02:09:58 GMT [MD]
+# DerivedBidiClass-5.0.0.txt
+# Date: 2006-03-09, 23:13:34 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -22,6 +22,8 @@
# All code points not explicitly listed for Bidi_Class
# have the value Left_To_Right (L).
+# @missing: 0000..10FFFF; Left_To_Right
+
# ================================================
# Bidi_Class=Left_To_Right
@@ -37,14 +39,16 @@
01BB ; L # Lo LATIN LETTER TWO WITH STROKE
01BC..01BF ; L # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
01C0..01C3 ; L # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
-01C4..0241 ; L # L& [126] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER GLOTTAL STOP
-0250..02AF ; L # L& [96] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+01C4..0293 ; L # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL
+0294 ; L # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; L # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
02B0..02B8 ; L # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
02BB..02C1 ; L # Lm [7] MODIFIER LETTER TURNED COMMA..MODIFIER LETTER REVERSED GLOTTAL STOP
02D0..02D1 ; L # Lm [2] MODIFIER LETTER TRIANGULAR COLON..MODIFIER LETTER HALF TRIANGULAR COLON
02E0..02E4 ; L # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
02EE ; L # Lm MODIFIER LETTER DOUBLE APOSTROPHE
037A ; L # Lm GREEK YPOGEGRAMMENI
+037B..037D ; L # L& [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
0386 ; L # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
0388..038A ; L # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
038C ; L # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
@@ -53,9 +57,7 @@
03D0..03F5 ; L # L& [38] GREEK BETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
03F7..0481 ; L # L& [139] GREEK CAPITAL LETTER SHO..CYRILLIC SMALL LETTER KOPPA
0482 ; L # So CYRILLIC THOUSANDS SIGN
-048A..04CE ; L # L& [69] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EM WITH TAIL
-04D0..04F9 ; L # L& [42] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-0500..050F ; L # L& [16] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER KOMI TJE
+048A..0513 ; L # L& [138] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EL WITH HOOK
0531..0556 ; L # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
0559 ; L # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
055A..055F ; L # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
@@ -71,7 +73,7 @@
0964..0965 ; L # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
0966..096F ; L # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
0970 ; L # Po DEVANAGARI ABBREVIATION SIGN
-097D ; L # Lo DEVANAGARI LETTER GLOTTAL STOP
+097B..097F ; L # Lo [5] DEVANAGARI LETTER GGA..DEVANAGARI LETTER BBA
0982..0983 ; L # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
0985..098C ; L # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
098F..0990 ; L # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
@@ -327,6 +329,17 @@
1A00..1A16 ; L # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
1A19..1A1B ; L # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
1A1E..1A1F ; L # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1B04 ; L # Mc BALINESE SIGN BISAH
+1B05..1B33 ; L # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B35 ; L # Mc BALINESE VOWEL SIGN TEDUNG
+1B3B ; L # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3D..1B41 ; L # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B43..1B44 ; L # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4B ; L # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B50..1B59 ; L # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60 ; L # Po [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A ; L # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B74..1B7C ; L # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
1D00..1D2B ; L # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
1D2C..1D61 ; L # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
1D62..1D77 ; L # L& [22] LATIN SUBSCRIPT SMALL LETTER I..LATIN SMALL LETTER TURNED G
@@ -367,13 +380,14 @@
2126 ; L # L& OHM SIGN
2128 ; L # L& BLACK-LETTER CAPITAL Z
212A..212D ; L # L& [4] KELVIN SIGN..BLACK-LETTER CAPITAL C
-212F..2131 ; L # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
-2133..2134 ; L # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
+212F..2134 ; L # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
2135..2138 ; L # Lo [4] ALEF SYMBOL..DALET SYMBOL
2139 ; L # L& INFORMATION SOURCE
213C..213F ; L # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
2145..2149 ; L # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
-2160..2183 ; L # Nl [36] ROMAN NUMERAL ONE..ROMAN NUMERAL REVERSED ONE HUNDRED
+214E ; L # L& TURNED SMALL F
+2160..2182 ; L # Nl [35] ROMAN NUMERAL ONE..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; L # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
2336..237A ; L # So [69] APL FUNCTIONAL SYMBOL I-BEAM..APL FUNCTIONAL SYMBOL ALPHA
2395 ; L # So APL FUNCTIONAL SYMBOL QUAD
249C..24E9 ; L # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
@@ -381,6 +395,8 @@
2800..28FF ; L # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
2C00..2C2E ; L # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
2C30..2C5E ; L # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C60..2C6C ; L # L& [13] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN SMALL LETTER Z WITH DESCENDER
+2C74..2C77 ; L # L& [4] LATIN SMALL LETTER V WITH CURL..LATIN SMALL LETTER TAILLESS PHI
2C80..2CE4 ; L # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
2D00..2D25 ; L # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
2D30..2D65 ; L # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
@@ -438,6 +454,7 @@ A807..A80A ; L # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
A80C..A822 ; L # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
A823..A824 ; L # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
A827 ; L # Mc SYLOTI NAGRI VOWEL SIGN OO
+A840..A873 ; L # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
AC00..D7A3 ; L # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
E000..F8FF ; L # Co [6400] <private-use-E000>..<private-use-F8FF>
F900..FA2D ; L # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
@@ -469,16 +486,22 @@ FFDA..FFDC ; L # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
10137..1013F ; L # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
10300..1031E ; L # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
10320..10323 ; L # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
-10330..10349 ; L # Lo [26] GOTHIC LETTER AHSA..GOTHIC LETTER OTHAL
+10330..10340 ; L # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; L # Nl GOTHIC LETTER NINETY
+10342..10349 ; L # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
1034A ; L # Nl GOTHIC LETTER NINE HUNDRED
10380..1039D ; L # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
1039F ; L # Po UGARITIC WORD DIVIDER
103A0..103C3 ; L # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
103C8..103CF ; L # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
-103D0 ; L # So OLD PERSIAN WORD DIVIDER
+103D0 ; L # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; L # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
10400..1044F ; L # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
10450..1049D ; L # Lo [78] SHAVIAN LETTER PEEP..OSMANYA LETTER OO
104A0..104A9 ; L # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+12000..1236E ; L # Lo [879] CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+12400..12462 ; L # Nl [99] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12470..12473 ; L # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
1D000..1D0F5 ; L # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
1D100..1D126 ; L # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
1D12A..1D164 ; L # So [59] MUSICAL SYMBOL DOUBLE SHARP..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -488,6 +511,7 @@ FFDA..FFDC ; L # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
1D183..1D184 ; L # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
1D18C..1D1A9 ; L # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
1D1AE..1D1DD ; L # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
+1D360..1D371 ; L # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
1D400..1D454 ; L # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
1D456..1D49C ; L # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
1D49E..1D49F ; L # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
@@ -527,21 +551,20 @@ FFDA..FFDC ; L # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER
1D7A9 ; L # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
1D7AA..1D7C2 ; L # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C3 ; L # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4..1D7C9 ; L # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7C4..1D7CB ; L # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
20000..2A6D6 ; L # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
2F800..2FA1D ; L # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
F0000..FFFFD ; L # Co [65534] <private-use-F0000>..<private-use-FFFFD>
100000..10FFFD; L # Co [65534] <private-use-100000>..<private-use-10FFFD>
-# The above property value applies to 872685 code points not listed here.
-# Total code points: 1102298
+# The above property value applies to 871403 code points not listed here.
+# Total code points: 1102227
# ================================================
# Bidi_Class=Right_To_Left
0590 ; R # Cn <reserved-0590>
-05BA ; R # Cn <reserved-05BA>
05BE ; R # Po HEBREW PUNCTUATION MAQAF
05C0 ; R # Po HEBREW PUNCTUATION PASEQ
05C3 ; R # Po HEBREW PUNCTUATION SOF PASUQ
@@ -552,7 +575,11 @@ F0000..FFFFD ; L # Co [65534] <private-use-F0000>..<private-use-FFFFD>
05F0..05F2 ; R # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
05F3..05F4 ; R # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
05F5..05FF ; R # Cn [11] <reserved-05F5>..<reserved-05FF>
-07C0..08FF ; R # Cn [320] <reserved-07C0>..<reserved-08FF>
+07C0..07C9 ; R # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; R # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07F4..07F5 ; R # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07FA ; R # Lm NKO LAJANYALAN
+07FB..08FF ; R # Cn [261] <reserved-07FB>..<reserved-08FF>
200F ; R # Cf RIGHT-TO-LEFT MARK
FB1D ; R # Lo HEBREW LETTER YOD WITH HIRIQ
FB1F..FB28 ; R # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
@@ -578,7 +605,11 @@ FB46..FB4F ; R # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
1083C ; R # Lo CYPRIOT SYLLABLE ZA
1083D..1083E ; R # Cn [2] <reserved-1083D>..<reserved-1083E>
1083F ; R # Lo CYPRIOT SYLLABLE ZO
-10840..109FF ; R # Cn [448] <reserved-10840>..<reserved-109FF>
+10840..108FF ; R # Cn [192] <reserved-10840>..<reserved-108FF>
+10900..10915 ; R # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..10919 ; R # No [4] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+1091A..1091E ; R # Cn [5] <reserved-1091A>..<reserved-1091E>
+10920..109FF ; R # Cn [224] <reserved-10920>..<reserved-109FF>
10A00 ; R # Lo KHAROSHTHI LETTER A
10A04 ; R # Cn <reserved-10A04>
10A07..10A0B ; R # Cn [5] <reserved-10A07>..<reserved-10A0B>
@@ -594,7 +625,7 @@ FB46..FB4F ; R # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE AL
10A50..10A58 ; R # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
10A59..10FFF ; R # Cn [1447] <reserved-10A59>..<reserved-10FFF>
-# Total code points: 2467
+# Total code points: 2452
# ================================================
@@ -780,8 +811,11 @@ FF1A ; CS # Po FULLWIDTH COLON
058A ; ON # Pd ARMENIAN HYPHEN
060E..060F ; ON # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
06E9 ; ON # So ARABIC PLACE OF SAJDAH
+07F6 ; ON # So NKO SYMBOL OO DENNEN
+07F7..07F9 ; ON # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
0BF3..0BF8 ; ON # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
0BFA ; ON # So TAMIL NUMBER SIGN
+0CF1..0CF2 ; ON # So [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0F3A ; ON # Ps TIBETAN MARK GUG RTAGS GYON
0F3B ; ON # Pe TIBETAN MARK GUG RTAGS GYAS
0F3C ; ON # Ps TIBETAN MARK ANG KHANG GYON
@@ -841,12 +875,11 @@ FF1A ; CS # Po FULLWIDTH COLON
2125 ; ON # So OUNCE SIGN
2127 ; ON # So INVERTED OHM SIGN
2129 ; ON # So TURNED GREEK SMALL LETTER IOTA
-2132 ; ON # So TURNED CAPITAL F
213A..213B ; ON # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
2140..2144 ; ON # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
214A ; ON # So PROPERTY LINE
214B ; ON # Sm TURNED AMPERSAND
-214C ; ON # So PER SIGN
+214C..214D ; ON # So [2] PER SIGN..AKTIESELSKAB
2153..215F ; ON # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
2190..2194 ; ON # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
2195..2199 ; ON # So [5] UP DOWN ARROW..SOUTH WEST ARROW
@@ -881,10 +914,9 @@ FF1A ; CS # Po FULLWIDTH COLON
237D..2394 ; ON # So [24] SHOULDERED OPEN BOX..SOFTWARE-FUNCTION SYMBOL
2396..239A ; ON # So [5] DECIMAL SEPARATOR KEY SYMBOL..CLEAR SCREEN SYMBOL
239B..23B3 ; ON # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
-23B4 ; ON # Ps TOP SQUARE BRACKET
-23B5 ; ON # Pe BOTTOM SQUARE BRACKET
-23B6 ; ON # Po BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7..23DB ; ON # So [37] RADICAL SYMBOL BOTTOM..FUSE
+23B4..23DB ; ON # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; ON # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23E7 ; ON # So [6] WHITE TRAPEZIUM..ELECTRICAL INTERSECTION
2400..2426 ; ON # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
2440..244A ; ON # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
2460..2487 ; ON # No [40] CIRCLED DIGIT ONE..PARENTHESIZED NUMBER TWENTY
@@ -899,7 +931,7 @@ FF1A ; CS # Po FULLWIDTH COLON
266F ; ON # Sm MUSIC SHARP SIGN
2670..269C ; ON # So [45] WEST SYRIAC CROSS..FLEUR-DE-LIS
26A0..26AB ; ON # So [12] WARNING SIGN..MEDIUM BLACK CIRCLE
-26AD..26B1 ; ON # So [5] MARRIAGE SYMBOL..FUNERAL URN
+26AD..26B2 ; ON # So [6] MARRIAGE SYMBOL..NEUTER
2701..2704 ; ON # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
2706..2709 ; ON # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
270C..2727 ; ON # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
@@ -930,6 +962,7 @@ FF1A ; CS # Po FULLWIDTH COLON
27C0..27C4 ; ON # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
27C5 ; ON # Ps LEFT S-SHAPED BAG DELIMITER
27C6 ; ON # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27CA ; ON # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
27D0..27E5 ; ON # Sm [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
27E6 ; ON # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E7 ; ON # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
@@ -970,7 +1003,8 @@ FF1A ; CS # Po FULLWIDTH COLON
29FC ; ON # Ps LEFT-POINTING CURVED ANGLE BRACKET
29FD ; ON # Pe RIGHT-POINTING CURVED ANGLE BRACKET
29FE..2AFF ; ON # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
-2B00..2B13 ; ON # So [20] NORTH EAST WHITE ARROW..SQUARE WITH BOTTOM HALF BLACK
+2B00..2B1A ; ON # So [27] NORTH EAST WHITE ARROW..DOTTED SQUARE
+2B20..2B23 ; ON # So [4] WHITE PENTAGON..HORIZONTAL BLACK HEXAGON
2CE5..2CEA ; ON # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
2CF9..2CFC ; ON # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
2CFD ; ON # No COPTIC FRACTION ONE HALF
@@ -1039,7 +1073,10 @@ FF1A ; CS # Po FULLWIDTH COLON
4DC0..4DFF ; ON # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
A490..A4C6 ; ON # So [55] YI RADICAL QOT..YI RADICAL KE
A700..A716 ; ON # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71A ; ON # Lm [4] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A720..A721 ; ON # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
A828..A82B ; ON # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A874..A877 ; ON # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
FD3E ; ON # Ps ORNATE LEFT PARENTHESIS
FD3F ; ON # Pe ORNATE RIGHT PARENTHESIS
FDFD ; ON # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
@@ -1122,12 +1159,12 @@ FFFC..FFFD ; ON # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTE
10175..10178 ; ON # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
10179..10189 ; ON # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
1018A ; ON # No GREEK ZERO SIGN
-103D1..103D5 ; ON # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+1091F ; ON # Po PHOENICIAN WORD SEPARATOR
1D200..1D241 ; ON # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
1D245 ; ON # So GREEK MUSICAL LEIMMA
1D300..1D356 ; ON # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
-# Total code points: 3108
+# Total code points: 3148
# ================================================
@@ -1179,8 +1216,7 @@ FFFFE..FFFFF ; BN # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
0300..036F ; NSM # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0483..0486 ; NSM # Mn [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
0488..0489 ; NSM # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-0591..05B9 ; NSM # Mn [41] HEBREW ACCENT ETNAHTA..HEBREW POINT HOLAM
-05BB..05BD ; NSM # Mn [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
+0591..05BD ; NSM # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BF ; NSM # Mn HEBREW POINT RAFE
05C1..05C2 ; NSM # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4..05C5 ; NSM # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
@@ -1196,6 +1232,7 @@ FFFFE..FFFFF ; BN # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
0711 ; NSM # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A ; NSM # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; NSM # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; NSM # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
0901..0902 ; NSM # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
093C ; NSM # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; NSM # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -1234,6 +1271,7 @@ FFFFE..FFFFF ; BN # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
0C55..0C56 ; NSM # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0CBC ; NSM # Mn KANNADA SIGN NUKTA
0CCC..0CCD ; NSM # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CE2..0CE3 ; NSM # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0D41..0D43 ; NSM # Mn [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R
0D4D ; NSM # Mn MALAYALAM SIGN VIRAMA
0DCA ; NSM # Mn SINHALA SIGN AL-LAKUNA
@@ -1278,12 +1316,19 @@ FFFFE..FFFFF ; BN # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
1932 ; NSM # Mn LIMBU SMALL LETTER ANUSVARA
1939..193B ; NSM # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; NSM # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1DC0..1DC3 ; NSM # Mn [4] COMBINING DOTTED GRAVE ACCENT..COMBINING SUSPENSION MARK
+1B00..1B03 ; NSM # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B34 ; NSM # Mn BALINESE SIGN REREKAN
+1B36..1B3A ; NSM # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3C ; NSM # Mn BALINESE VOWEL SIGN LA LENGA
+1B42 ; NSM # Mn BALINESE VOWEL SIGN PEPET
+1B6B..1B73 ; NSM # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1DC0..1DCA ; NSM # Mn [11] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER R BELOW
+1DFE..1DFF ; NSM # Mn [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
20D0..20DC ; NSM # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; NSM # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; NSM # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; NSM # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5..20EB ; NSM # Mn [7] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING LONG DOUBLE SOLIDUS OVERLAY
+20E5..20EF ; NSM # Mn [11] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING RIGHT ARROW BELOW
302A..302F ; NSM # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
3099..309A ; NSM # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A802 ; NSM # Mc SYLOTI NAGRI SIGN DVISVARA
@@ -1305,7 +1350,7 @@ FE20..FE23 ; NSM # Mn [4] COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TI
1D242..1D244 ; NSM # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
E0100..E01EF ; NSM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 846
+# Total code points: 892
# ================================================
@@ -1403,3 +1448,5 @@ FEFD..FEFE ; AL # Cn [2] <reserved-FEFD>..<reserved-FEFE>
202C ; PDF # Cf POP DIRECTIONAL FORMATTING
# Total code points: 1
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedCoreProperties.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedCoreProperties.txt
index 261df67b883..c9505fae374 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedCoreProperties.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedCoreProperties.txt
@@ -1,8 +1,8 @@
-# DerivedCoreProperties-4.1.0.txt
-# Date: 2005-03-10, 02:04:29 GMT [MD]
+# DerivedCoreProperties-5.0.0.txt
+# Date: 2006-03-03, 08:22:53 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -40,6 +40,7 @@
20D0..20DC ; Math
20E1 ; Math
20E5..20E6 ; Math
+20EC..20EF ; Math
2102 ; Math
210A..2113 ; Math
2115 ; Math
@@ -71,6 +72,7 @@
239B..23B3 ; Math
23B7 ; Math
23D0 ; Math
+23DC..23E1 ; Math
25B7 ; Math
25C1 ; Math
25F8..25FF ; Math
@@ -78,6 +80,7 @@
27C0..27C4 ; Math
27C5 ; Math
27C6 ; Math
+27C7..27CA ; Math
27D0..27E5 ; Math
27E6 ; Math
27E7 ; Math
@@ -150,7 +153,7 @@ FFE9..FFEC ; Math
1D540..1D544 ; Math
1D546 ; Math
1D54A..1D550 ; Math
-1D552..1D6A3 ; Math
+1D552..1D6A5 ; Math
1D6A8..1D6C0 ; Math
1D6C1 ; Math
1D6C2..1D6DA ; Math
@@ -171,10 +174,10 @@ FFE9..FFEC ; Math
1D7A9 ; Math
1D7AA..1D7C2 ; Math
1D7C3 ; Math
-1D7C4..1D7C9 ; Math
+1D7C4..1D7CB ; Math
1D7CE..1D7FF ; Math
-# Total code points: 2006
+# Total code points: 2024
# ================================================
@@ -192,14 +195,16 @@ FFE9..FFEC ; Math
01BB ; Alphabetic
01BC..01BF ; Alphabetic
01C0..01C3 ; Alphabetic
-01C4..0241 ; Alphabetic
-0250..02AF ; Alphabetic
+01C4..0293 ; Alphabetic
+0294 ; Alphabetic
+0295..02AF ; Alphabetic
02B0..02C1 ; Alphabetic
02C6..02D1 ; Alphabetic
02E0..02E4 ; Alphabetic
02EE ; Alphabetic
0345 ; Alphabetic
037A ; Alphabetic
+037B..037D ; Alphabetic
0386 ; Alphabetic
0388..038A ; Alphabetic
038C ; Alphabetic
@@ -207,14 +212,11 @@ FFE9..FFEC ; Math
03A3..03CE ; Alphabetic
03D0..03F5 ; Alphabetic
03F7..0481 ; Alphabetic
-048A..04CE ; Alphabetic
-04D0..04F9 ; Alphabetic
-0500..050F ; Alphabetic
+048A..0513 ; Alphabetic
0531..0556 ; Alphabetic
0559 ; Alphabetic
0561..0587 ; Alphabetic
-05B0..05B9 ; Alphabetic
-05BB..05BD ; Alphabetic
+05B0..05BD ; Alphabetic
05BF ; Alphabetic
05C1..05C2 ; Alphabetic
05C4..05C5 ; Alphabetic
@@ -247,6 +249,9 @@ FFE9..FFEC ; Math
0780..07A5 ; Alphabetic
07A6..07B0 ; Alphabetic
07B1 ; Alphabetic
+07CA..07EA ; Alphabetic
+07F4..07F5 ; Alphabetic
+07FA ; Alphabetic
0901..0902 ; Alphabetic
0903 ; Alphabetic
0904..0939 ; Alphabetic
@@ -257,7 +262,7 @@ FFE9..FFEC ; Math
0950 ; Alphabetic
0958..0961 ; Alphabetic
0962..0963 ; Alphabetic
-097D ; Alphabetic
+097B..097F ; Alphabetic
0981 ; Alphabetic
0982..0983 ; Alphabetic
0985..098C ; Alphabetic
@@ -377,6 +382,7 @@ FFE9..FFEC ; Math
0CD5..0CD6 ; Alphabetic
0CDE ; Alphabetic
0CE0..0CE1 ; Alphabetic
+0CE2..0CE3 ; Alphabetic
0D02..0D03 ; Alphabetic
0D05..0D0C ; Alphabetic
0D0E..0D10 ; Alphabetic
@@ -518,6 +524,17 @@ FFE9..FFEC ; Math
1A00..1A16 ; Alphabetic
1A17..1A18 ; Alphabetic
1A19..1A1B ; Alphabetic
+1B00..1B03 ; Alphabetic
+1B04 ; Alphabetic
+1B05..1B33 ; Alphabetic
+1B35 ; Alphabetic
+1B36..1B3A ; Alphabetic
+1B3B ; Alphabetic
+1B3C ; Alphabetic
+1B3D..1B41 ; Alphabetic
+1B42 ; Alphabetic
+1B43 ; Alphabetic
+1B45..1B4B ; Alphabetic
1D00..1D2B ; Alphabetic
1D2C..1D61 ; Alphabetic
1D62..1D77 ; Alphabetic
@@ -557,16 +574,19 @@ FFE9..FFEC ; Math
2126 ; Alphabetic
2128 ; Alphabetic
212A..212D ; Alphabetic
-212F..2131 ; Alphabetic
-2133..2134 ; Alphabetic
+212F..2134 ; Alphabetic
2135..2138 ; Alphabetic
2139 ; Alphabetic
213C..213F ; Alphabetic
2145..2149 ; Alphabetic
-2160..2183 ; Alphabetic
+214E ; Alphabetic
+2160..2182 ; Alphabetic
+2183..2184 ; Alphabetic
24B6..24E9 ; Alphabetic
2C00..2C2E ; Alphabetic
2C30..2C5E ; Alphabetic
+2C60..2C6C ; Alphabetic
+2C74..2C77 ; Alphabetic
2C80..2CE4 ; Alphabetic
2D00..2D25 ; Alphabetic
2D30..2D65 ; Alphabetic
@@ -603,6 +623,7 @@ FFE9..FFEC ; Math
A000..A014 ; Alphabetic
A015 ; Alphabetic
A016..A48C ; Alphabetic
+A717..A71A ; Alphabetic
A800..A801 ; Alphabetic
A803..A805 ; Alphabetic
A807..A80A ; Alphabetic
@@ -610,6 +631,7 @@ A80C..A822 ; Alphabetic
A823..A824 ; Alphabetic
A825..A826 ; Alphabetic
A827 ; Alphabetic
+A840..A873 ; Alphabetic
AC00..D7A3 ; Alphabetic
F900..FA2D ; Alphabetic
FA30..FA6A ; Alphabetic
@@ -651,7 +673,9 @@ FFDA..FFDC ; Alphabetic
10080..100FA ; Alphabetic
10140..10174 ; Alphabetic
10300..1031E ; Alphabetic
-10330..10349 ; Alphabetic
+10330..10340 ; Alphabetic
+10341 ; Alphabetic
+10342..10349 ; Alphabetic
1034A ; Alphabetic
10380..1039D ; Alphabetic
103A0..103C3 ; Alphabetic
@@ -665,6 +689,7 @@ FFDA..FFDC ; Alphabetic
10837..10838 ; Alphabetic
1083C ; Alphabetic
1083F ; Alphabetic
+10900..10915 ; Alphabetic
10A00 ; Alphabetic
10A01..10A03 ; Alphabetic
10A05..10A06 ; Alphabetic
@@ -672,6 +697,8 @@ FFDA..FFDC ; Alphabetic
10A10..10A13 ; Alphabetic
10A15..10A17 ; Alphabetic
10A19..10A33 ; Alphabetic
+12000..1236E ; Alphabetic
+12400..12462 ; Alphabetic
1D400..1D454 ; Alphabetic
1D456..1D49C ; Alphabetic
1D49E..1D49F ; Alphabetic
@@ -701,11 +728,11 @@ FFDA..FFDC ; Alphabetic
1D770..1D788 ; Alphabetic
1D78A..1D7A8 ; Alphabetic
1D7AA..1D7C2 ; Alphabetic
-1D7C4..1D7C9 ; Alphabetic
+1D7C4..1D7CB ; Alphabetic
20000..2A6D6 ; Alphabetic
2F800..2FA1D ; Alphabetic
-# Total code points: 91994
+# Total code points: 93217
# ================================================
@@ -853,12 +880,19 @@ FFDA..FFDC ; Alphabetic
0233..0239 ; Lowercase
023C ; Lowercase
023F..0240 ; Lowercase
-0250..02AF ; Lowercase
+0242 ; Lowercase
+0247 ; Lowercase
+0249 ; Lowercase
+024B ; Lowercase
+024D ; Lowercase
+024F..0293 ; Lowercase
+0295..02AF ; Lowercase
02B0..02B8 ; Lowercase
02C0..02C1 ; Lowercase
02E0..02E4 ; Lowercase
0345 ; Lowercase
037A ; Lowercase
+037B..037D ; Lowercase
0390 ; Lowercase
03AC..03CE ; Lowercase
03D0..03D1 ; Lowercase
@@ -929,7 +963,7 @@ FFDA..FFDC ; Alphabetic
04C8 ; Lowercase
04CA ; Lowercase
04CC ; Lowercase
-04CE ; Lowercase
+04CE..04CF ; Lowercase
04D1 ; Lowercase
04D3 ; Lowercase
04D5 ; Lowercase
@@ -951,6 +985,9 @@ FFDA..FFDC ; Alphabetic
04F5 ; Lowercase
04F7 ; Lowercase
04F9 ; Lowercase
+04FB ; Lowercase
+04FD ; Lowercase
+04FF ; Lowercase
0501 ; Lowercase
0503 ; Lowercase
0505 ; Lowercase
@@ -959,6 +996,8 @@ FFDA..FFDC ; Alphabetic
050B ; Lowercase
050D ; Lowercase
050F ; Lowercase
+0511 ; Lowercase
+0513 ; Lowercase
0561..0587 ; Lowercase
1D00..1D2B ; Lowercase
1D2C..1D61 ; Lowercase
@@ -1118,9 +1157,18 @@ FFDA..FFDC ; Alphabetic
2139 ; Lowercase
213C..213D ; Lowercase
2146..2149 ; Lowercase
+214E ; Lowercase
2170..217F ; Lowercase
+2184 ; Lowercase
24D0..24E9 ; Lowercase
2C30..2C5E ; Lowercase
+2C61 ; Lowercase
+2C65..2C66 ; Lowercase
+2C68 ; Lowercase
+2C6A ; Lowercase
+2C6C ; Lowercase
+2C74 ; Lowercase
+2C76..2C77 ; Lowercase
2C81 ; Lowercase
2C83 ; Lowercase
2C85 ; Lowercase
@@ -1203,8 +1251,9 @@ FF41..FF5A ; Lowercase
1D78A..1D78F ; Lowercase
1D7AA..1D7C2 ; Lowercase
1D7C4..1D7C9 ; Lowercase
+1D7CB ; Lowercase
-# Total code points: 1765
+# Total code points: 1791
# ================================================
@@ -1350,6 +1399,11 @@ FF41..FF5A ; Lowercase
023A..023B ; Uppercase
023D..023E ; Uppercase
0241 ; Uppercase
+0243..0246 ; Uppercase
+0248 ; Uppercase
+024A ; Uppercase
+024C ; Uppercase
+024E ; Uppercase
0386 ; Uppercase
0388..038A ; Uppercase
038C ; Uppercase
@@ -1445,6 +1499,9 @@ FF41..FF5A ; Lowercase
04F4 ; Uppercase
04F6 ; Uppercase
04F8 ; Uppercase
+04FA ; Uppercase
+04FC ; Uppercase
+04FE ; Uppercase
0500 ; Uppercase
0502 ; Uppercase
0504 ; Uppercase
@@ -1453,6 +1510,8 @@ FF41..FF5A ; Lowercase
050A ; Uppercase
050C ; Uppercase
050E ; Uppercase
+0510 ; Uppercase
+0512 ; Uppercase
0531..0556 ; Uppercase
10A0..10C5 ; Uppercase
1E00 ; Uppercase
@@ -1600,13 +1659,19 @@ FF41..FF5A ; Lowercase
2126 ; Uppercase
2128 ; Uppercase
212A..212D ; Uppercase
-2130..2131 ; Uppercase
-2133 ; Uppercase
+2130..2133 ; Uppercase
213E..213F ; Uppercase
2145 ; Uppercase
2160..216F ; Uppercase
+2183 ; Uppercase
24B6..24CF ; Uppercase
2C00..2C2E ; Uppercase
+2C60 ; Uppercase
+2C62..2C64 ; Uppercase
+2C67 ; Uppercase
+2C69 ; Uppercase
+2C6B ; Uppercase
+2C75 ; Uppercase
2C80 ; Uppercase
2C82 ; Uppercase
2C84 ; Uppercase
@@ -1689,8 +1754,9 @@ FF21..FF3A ; Uppercase
1D71C..1D734 ; Uppercase
1D756..1D76E ; Uppercase
1D790..1D7A8 ; Uppercase
+1D7CA ; Uppercase
-# Total code points: 1338
+# Total code points: 1362
# ================================================
@@ -1710,13 +1776,15 @@ FF21..FF3A ; Uppercase
01BB ; ID_Start
01BC..01BF ; ID_Start
01C0..01C3 ; ID_Start
-01C4..0241 ; ID_Start
-0250..02AF ; ID_Start
+01C4..0293 ; ID_Start
+0294 ; ID_Start
+0295..02AF ; ID_Start
02B0..02C1 ; ID_Start
02C6..02D1 ; ID_Start
02E0..02E4 ; ID_Start
02EE ; ID_Start
037A ; ID_Start
+037B..037D ; ID_Start
0386 ; ID_Start
0388..038A ; ID_Start
038C ; ID_Start
@@ -1724,9 +1792,7 @@ FF21..FF3A ; Uppercase
03A3..03CE ; ID_Start
03D0..03F5 ; ID_Start
03F7..0481 ; ID_Start
-048A..04CE ; ID_Start
-04D0..04F9 ; ID_Start
-0500..050F ; ID_Start
+048A..0513 ; ID_Start
0531..0556 ; ID_Start
0559 ; ID_Start
0561..0587 ; ID_Start
@@ -1747,11 +1813,14 @@ FF21..FF3A ; Uppercase
074D..076D ; ID_Start
0780..07A5 ; ID_Start
07B1 ; ID_Start
+07CA..07EA ; ID_Start
+07F4..07F5 ; ID_Start
+07FA ; ID_Start
0904..0939 ; ID_Start
093D ; ID_Start
0950 ; ID_Start
0958..0961 ; ID_Start
-097D ; ID_Start
+097B..097F ; ID_Start
0985..098C ; ID_Start
098F..0990 ; ID_Start
0993..09A8 ; ID_Start
@@ -1903,6 +1972,8 @@ FF21..FF3A ; Uppercase
1980..19A9 ; ID_Start
19C1..19C7 ; ID_Start
1A00..1A16 ; ID_Start
+1B05..1B33 ; ID_Start
+1B45..1B4B ; ID_Start
1D00..1D2B ; ID_Start
1D2C..1D61 ; ID_Start
1D62..1D77 ; ID_Start
@@ -1944,15 +2015,18 @@ FF21..FF3A ; Uppercase
2128 ; ID_Start
212A..212D ; ID_Start
212E ; ID_Start
-212F..2131 ; ID_Start
-2133..2134 ; ID_Start
+212F..2134 ; ID_Start
2135..2138 ; ID_Start
2139 ; ID_Start
213C..213F ; ID_Start
2145..2149 ; ID_Start
-2160..2183 ; ID_Start
+214E ; ID_Start
+2160..2182 ; ID_Start
+2183..2184 ; ID_Start
2C00..2C2E ; ID_Start
2C30..2C5E ; ID_Start
+2C60..2C6C ; ID_Start
+2C74..2C77 ; ID_Start
2C80..2CE4 ; ID_Start
2D00..2D25 ; ID_Start
2D30..2D65 ; ID_Start
@@ -1990,10 +2064,12 @@ FF21..FF3A ; Uppercase
A000..A014 ; ID_Start
A015 ; ID_Start
A016..A48C ; ID_Start
+A717..A71A ; ID_Start
A800..A801 ; ID_Start
A803..A805 ; ID_Start
A807..A80A ; ID_Start
A80C..A822 ; ID_Start
+A840..A873 ; ID_Start
AC00..D7A3 ; ID_Start
F900..FA2D ; ID_Start
FA30..FA6A ; ID_Start
@@ -2034,7 +2110,9 @@ FFDA..FFDC ; ID_Start
10080..100FA ; ID_Start
10140..10174 ; ID_Start
10300..1031E ; ID_Start
-10330..10349 ; ID_Start
+10330..10340 ; ID_Start
+10341 ; ID_Start
+10342..10349 ; ID_Start
1034A ; ID_Start
10380..1039D ; ID_Start
103A0..103C3 ; ID_Start
@@ -2048,10 +2126,13 @@ FFDA..FFDC ; ID_Start
10837..10838 ; ID_Start
1083C ; ID_Start
1083F ; ID_Start
+10900..10915 ; ID_Start
10A00 ; ID_Start
10A10..10A13 ; ID_Start
10A15..10A17 ; ID_Start
10A19..10A33 ; ID_Start
+12000..1236E ; ID_Start
+12400..12462 ; ID_Start
1D400..1D454 ; ID_Start
1D456..1D49C ; ID_Start
1D49E..1D49F ; ID_Start
@@ -2081,11 +2162,11 @@ FFDA..FFDC ; ID_Start
1D770..1D788 ; ID_Start
1D78A..1D7A8 ; ID_Start
1D7AA..1D7C2 ; ID_Start
-1D7C4..1D7C9 ; ID_Start
+1D7C4..1D7CB ; ID_Start
20000..2A6D6 ; ID_Start
2F800..2FA1D ; ID_Start
-# Total code points: 91510
+# Total code points: 92710
# ================================================
@@ -2107,14 +2188,16 @@ FFDA..FFDC ; ID_Start
01BB ; ID_Continue
01BC..01BF ; ID_Continue
01C0..01C3 ; ID_Continue
-01C4..0241 ; ID_Continue
-0250..02AF ; ID_Continue
+01C4..0293 ; ID_Continue
+0294 ; ID_Continue
+0295..02AF ; ID_Continue
02B0..02C1 ; ID_Continue
02C6..02D1 ; ID_Continue
02E0..02E4 ; ID_Continue
02EE ; ID_Continue
0300..036F ; ID_Continue
037A ; ID_Continue
+037B..037D ; ID_Continue
0386 ; ID_Continue
0388..038A ; ID_Continue
038C ; ID_Continue
@@ -2123,14 +2206,11 @@ FFDA..FFDC ; ID_Start
03D0..03F5 ; ID_Continue
03F7..0481 ; ID_Continue
0483..0486 ; ID_Continue
-048A..04CE ; ID_Continue
-04D0..04F9 ; ID_Continue
-0500..050F ; ID_Continue
+048A..0513 ; ID_Continue
0531..0556 ; ID_Continue
0559 ; ID_Continue
0561..0587 ; ID_Continue
-0591..05B9 ; ID_Continue
-05BB..05BD ; ID_Continue
+0591..05BD ; ID_Continue
05BF ; ID_Continue
05C1..05C2 ; ID_Continue
05C4..05C5 ; ID_Continue
@@ -2164,6 +2244,11 @@ FFDA..FFDC ; ID_Start
0780..07A5 ; ID_Continue
07A6..07B0 ; ID_Continue
07B1 ; ID_Continue
+07C0..07C9 ; ID_Continue
+07CA..07EA ; ID_Continue
+07EB..07F3 ; ID_Continue
+07F4..07F5 ; ID_Continue
+07FA ; ID_Continue
0901..0902 ; ID_Continue
0903 ; ID_Continue
0904..0939 ; ID_Continue
@@ -2178,7 +2263,7 @@ FFDA..FFDC ; ID_Start
0958..0961 ; ID_Continue
0962..0963 ; ID_Continue
0966..096F ; ID_Continue
-097D ; ID_Continue
+097B..097F ; ID_Continue
0981 ; ID_Continue
0982..0983 ; ID_Continue
0985..098C ; ID_Continue
@@ -2313,6 +2398,7 @@ FFDA..FFDC ; ID_Start
0CD5..0CD6 ; ID_Continue
0CDE ; ID_Continue
0CE0..0CE1 ; ID_Continue
+0CE2..0CE3 ; ID_Continue
0CE6..0CEF ; ID_Continue
0D02..0D03 ; ID_Continue
0D05..0D0C ; ID_Continue
@@ -2479,13 +2565,28 @@ FFDA..FFDC ; ID_Start
1A00..1A16 ; ID_Continue
1A17..1A18 ; ID_Continue
1A19..1A1B ; ID_Continue
+1B00..1B03 ; ID_Continue
+1B04 ; ID_Continue
+1B05..1B33 ; ID_Continue
+1B34 ; ID_Continue
+1B35 ; ID_Continue
+1B36..1B3A ; ID_Continue
+1B3B ; ID_Continue
+1B3C ; ID_Continue
+1B3D..1B41 ; ID_Continue
+1B42 ; ID_Continue
+1B43..1B44 ; ID_Continue
+1B45..1B4B ; ID_Continue
+1B50..1B59 ; ID_Continue
+1B6B..1B73 ; ID_Continue
1D00..1D2B ; ID_Continue
1D2C..1D61 ; ID_Continue
1D62..1D77 ; ID_Continue
1D78 ; ID_Continue
1D79..1D9A ; ID_Continue
1D9B..1DBF ; ID_Continue
-1DC0..1DC3 ; ID_Continue
+1DC0..1DCA ; ID_Continue
+1DFE..1DFF ; ID_Continue
1E00..1E9B ; ID_Continue
1EA0..1EF9 ; ID_Continue
1F00..1F15 ; ID_Continue
@@ -2514,7 +2615,7 @@ FFDA..FFDC ; ID_Start
2090..2094 ; ID_Continue
20D0..20DC ; ID_Continue
20E1 ; ID_Continue
-20E5..20EB ; ID_Continue
+20E5..20EF ; ID_Continue
2102 ; ID_Continue
2107 ; ID_Continue
210A..2113 ; ID_Continue
@@ -2526,15 +2627,18 @@ FFDA..FFDC ; ID_Start
2128 ; ID_Continue
212A..212D ; ID_Continue
212E ; ID_Continue
-212F..2131 ; ID_Continue
-2133..2134 ; ID_Continue
+212F..2134 ; ID_Continue
2135..2138 ; ID_Continue
2139 ; ID_Continue
213C..213F ; ID_Continue
2145..2149 ; ID_Continue
-2160..2183 ; ID_Continue
+214E ; ID_Continue
+2160..2182 ; ID_Continue
+2183..2184 ; ID_Continue
2C00..2C2E ; ID_Continue
2C30..2C5E ; ID_Continue
+2C60..2C6C ; ID_Continue
+2C74..2C77 ; ID_Continue
2C80..2CE4 ; ID_Continue
2D00..2D25 ; ID_Continue
2D30..2D65 ; ID_Continue
@@ -2574,6 +2678,7 @@ FFDA..FFDC ; ID_Start
A000..A014 ; ID_Continue
A015 ; ID_Continue
A016..A48C ; ID_Continue
+A717..A71A ; ID_Continue
A800..A801 ; ID_Continue
A802 ; ID_Continue
A803..A805 ; ID_Continue
@@ -2584,6 +2689,7 @@ A80C..A822 ; ID_Continue
A823..A824 ; ID_Continue
A825..A826 ; ID_Continue
A827 ; ID_Continue
+A840..A873 ; ID_Continue
AC00..D7A3 ; ID_Continue
F900..FA2D ; ID_Continue
FA30..FA6A ; ID_Continue
@@ -2631,7 +2737,9 @@ FFDA..FFDC ; ID_Continue
10080..100FA ; ID_Continue
10140..10174 ; ID_Continue
10300..1031E ; ID_Continue
-10330..10349 ; ID_Continue
+10330..10340 ; ID_Continue
+10341 ; ID_Continue
+10342..10349 ; ID_Continue
1034A ; ID_Continue
10380..1039D ; ID_Continue
103A0..103C3 ; ID_Continue
@@ -2646,6 +2754,7 @@ FFDA..FFDC ; ID_Continue
10837..10838 ; ID_Continue
1083C ; ID_Continue
1083F ; ID_Continue
+10900..10915 ; ID_Continue
10A00 ; ID_Continue
10A01..10A03 ; ID_Continue
10A05..10A06 ; ID_Continue
@@ -2655,6 +2764,8 @@ FFDA..FFDC ; ID_Continue
10A19..10A33 ; ID_Continue
10A38..10A3A ; ID_Continue
10A3F ; ID_Continue
+12000..1236E ; ID_Continue
+12400..12462 ; ID_Continue
1D165..1D166 ; ID_Continue
1D167..1D169 ; ID_Continue
1D16D..1D172 ; ID_Continue
@@ -2691,13 +2802,13 @@ FFDA..FFDC ; ID_Continue
1D770..1D788 ; ID_Continue
1D78A..1D7A8 ; ID_Continue
1D7AA..1D7C2 ; ID_Continue
-1D7C4..1D7C9 ; ID_Continue
+1D7C4..1D7CB ; ID_Continue
1D7CE..1D7FF ; ID_Continue
20000..2A6D6 ; ID_Continue
2F800..2FA1D ; ID_Continue
E0100..E01EF ; ID_Continue
-# Total code points: 92798
+# Total code points: 94074
# ================================================
@@ -2719,12 +2830,14 @@ E0100..E01EF ; ID_Continue
01BB ; XID_Start
01BC..01BF ; XID_Start
01C0..01C3 ; XID_Start
-01C4..0241 ; XID_Start
-0250..02AF ; XID_Start
+01C4..0293 ; XID_Start
+0294 ; XID_Start
+0295..02AF ; XID_Start
02B0..02C1 ; XID_Start
02C6..02D1 ; XID_Start
02E0..02E4 ; XID_Start
02EE ; XID_Start
+037B..037D ; XID_Start
0386 ; XID_Start
0388..038A ; XID_Start
038C ; XID_Start
@@ -2732,9 +2845,7 @@ E0100..E01EF ; ID_Continue
03A3..03CE ; XID_Start
03D0..03F5 ; XID_Start
03F7..0481 ; XID_Start
-048A..04CE ; XID_Start
-04D0..04F9 ; XID_Start
-0500..050F ; XID_Start
+048A..0513 ; XID_Start
0531..0556 ; XID_Start
0559 ; XID_Start
0561..0587 ; XID_Start
@@ -2755,11 +2866,14 @@ E0100..E01EF ; ID_Continue
074D..076D ; XID_Start
0780..07A5 ; XID_Start
07B1 ; XID_Start
+07CA..07EA ; XID_Start
+07F4..07F5 ; XID_Start
+07FA ; XID_Start
0904..0939 ; XID_Start
093D ; XID_Start
0950 ; XID_Start
0958..0961 ; XID_Start
-097D ; XID_Start
+097B..097F ; XID_Start
0985..098C ; XID_Start
098F..0990 ; XID_Start
0993..09A8 ; XID_Start
@@ -2911,6 +3025,8 @@ E0100..E01EF ; ID_Continue
1980..19A9 ; XID_Start
19C1..19C7 ; XID_Start
1A00..1A16 ; XID_Start
+1B05..1B33 ; XID_Start
+1B45..1B4B ; XID_Start
1D00..1D2B ; XID_Start
1D2C..1D61 ; XID_Start
1D62..1D77 ; XID_Start
@@ -2952,15 +3068,18 @@ E0100..E01EF ; ID_Continue
2128 ; XID_Start
212A..212D ; XID_Start
212E ; XID_Start
-212F..2131 ; XID_Start
-2133..2134 ; XID_Start
+212F..2134 ; XID_Start
2135..2138 ; XID_Start
2139 ; XID_Start
213C..213F ; XID_Start
2145..2149 ; XID_Start
-2160..2183 ; XID_Start
+214E ; XID_Start
+2160..2182 ; XID_Start
+2183..2184 ; XID_Start
2C00..2C2E ; XID_Start
2C30..2C5E ; XID_Start
+2C60..2C6C ; XID_Start
+2C74..2C77 ; XID_Start
2C80..2CE4 ; XID_Start
2D00..2D25 ; XID_Start
2D30..2D65 ; XID_Start
@@ -2997,10 +3116,12 @@ E0100..E01EF ; ID_Continue
A000..A014 ; XID_Start
A015 ; XID_Start
A016..A48C ; XID_Start
+A717..A71A ; XID_Start
A800..A801 ; XID_Start
A803..A805 ; XID_Start
A807..A80A ; XID_Start
A80C..A822 ; XID_Start
+A840..A873 ; XID_Start
AC00..D7A3 ; XID_Start
F900..FA2D ; XID_Start
FA30..FA6A ; XID_Start
@@ -3046,7 +3167,9 @@ FFDA..FFDC ; XID_Start
10080..100FA ; XID_Start
10140..10174 ; XID_Start
10300..1031E ; XID_Start
-10330..10349 ; XID_Start
+10330..10340 ; XID_Start
+10341 ; XID_Start
+10342..10349 ; XID_Start
1034A ; XID_Start
10380..1039D ; XID_Start
103A0..103C3 ; XID_Start
@@ -3060,10 +3183,13 @@ FFDA..FFDC ; XID_Start
10837..10838 ; XID_Start
1083C ; XID_Start
1083F ; XID_Start
+10900..10915 ; XID_Start
10A00 ; XID_Start
10A10..10A13 ; XID_Start
10A15..10A17 ; XID_Start
10A19..10A33 ; XID_Start
+12000..1236E ; XID_Start
+12400..12462 ; XID_Start
1D400..1D454 ; XID_Start
1D456..1D49C ; XID_Start
1D49E..1D49F ; XID_Start
@@ -3093,11 +3219,11 @@ FFDA..FFDC ; XID_Start
1D770..1D788 ; XID_Start
1D78A..1D7A8 ; XID_Start
1D7AA..1D7C2 ; XID_Start
-1D7C4..1D7C9 ; XID_Start
+1D7C4..1D7CB ; XID_Start
20000..2A6D6 ; XID_Start
2F800..2FA1D ; XID_Start
-# Total code points: 91487
+# Total code points: 92687
# ================================================
@@ -3123,13 +3249,15 @@ FFDA..FFDC ; XID_Start
01BB ; XID_Continue
01BC..01BF ; XID_Continue
01C0..01C3 ; XID_Continue
-01C4..0241 ; XID_Continue
-0250..02AF ; XID_Continue
+01C4..0293 ; XID_Continue
+0294 ; XID_Continue
+0295..02AF ; XID_Continue
02B0..02C1 ; XID_Continue
02C6..02D1 ; XID_Continue
02E0..02E4 ; XID_Continue
02EE ; XID_Continue
0300..036F ; XID_Continue
+037B..037D ; XID_Continue
0386 ; XID_Continue
0388..038A ; XID_Continue
038C ; XID_Continue
@@ -3138,14 +3266,11 @@ FFDA..FFDC ; XID_Start
03D0..03F5 ; XID_Continue
03F7..0481 ; XID_Continue
0483..0486 ; XID_Continue
-048A..04CE ; XID_Continue
-04D0..04F9 ; XID_Continue
-0500..050F ; XID_Continue
+048A..0513 ; XID_Continue
0531..0556 ; XID_Continue
0559 ; XID_Continue
0561..0587 ; XID_Continue
-0591..05B9 ; XID_Continue
-05BB..05BD ; XID_Continue
+0591..05BD ; XID_Continue
05BF ; XID_Continue
05C1..05C2 ; XID_Continue
05C4..05C5 ; XID_Continue
@@ -3179,6 +3304,11 @@ FFDA..FFDC ; XID_Start
0780..07A5 ; XID_Continue
07A6..07B0 ; XID_Continue
07B1 ; XID_Continue
+07C0..07C9 ; XID_Continue
+07CA..07EA ; XID_Continue
+07EB..07F3 ; XID_Continue
+07F4..07F5 ; XID_Continue
+07FA ; XID_Continue
0901..0902 ; XID_Continue
0903 ; XID_Continue
0904..0939 ; XID_Continue
@@ -3193,7 +3323,7 @@ FFDA..FFDC ; XID_Start
0958..0961 ; XID_Continue
0962..0963 ; XID_Continue
0966..096F ; XID_Continue
-097D ; XID_Continue
+097B..097F ; XID_Continue
0981 ; XID_Continue
0982..0983 ; XID_Continue
0985..098C ; XID_Continue
@@ -3328,6 +3458,7 @@ FFDA..FFDC ; XID_Start
0CD5..0CD6 ; XID_Continue
0CDE ; XID_Continue
0CE0..0CE1 ; XID_Continue
+0CE2..0CE3 ; XID_Continue
0CE6..0CEF ; XID_Continue
0D02..0D03 ; XID_Continue
0D05..0D0C ; XID_Continue
@@ -3494,13 +3625,28 @@ FFDA..FFDC ; XID_Start
1A00..1A16 ; XID_Continue
1A17..1A18 ; XID_Continue
1A19..1A1B ; XID_Continue
+1B00..1B03 ; XID_Continue
+1B04 ; XID_Continue
+1B05..1B33 ; XID_Continue
+1B34 ; XID_Continue
+1B35 ; XID_Continue
+1B36..1B3A ; XID_Continue
+1B3B ; XID_Continue
+1B3C ; XID_Continue
+1B3D..1B41 ; XID_Continue
+1B42 ; XID_Continue
+1B43..1B44 ; XID_Continue
+1B45..1B4B ; XID_Continue
+1B50..1B59 ; XID_Continue
+1B6B..1B73 ; XID_Continue
1D00..1D2B ; XID_Continue
1D2C..1D61 ; XID_Continue
1D62..1D77 ; XID_Continue
1D78 ; XID_Continue
1D79..1D9A ; XID_Continue
1D9B..1DBF ; XID_Continue
-1DC0..1DC3 ; XID_Continue
+1DC0..1DCA ; XID_Continue
+1DFE..1DFF ; XID_Continue
1E00..1E9B ; XID_Continue
1EA0..1EF9 ; XID_Continue
1F00..1F15 ; XID_Continue
@@ -3529,7 +3675,7 @@ FFDA..FFDC ; XID_Start
2090..2094 ; XID_Continue
20D0..20DC ; XID_Continue
20E1 ; XID_Continue
-20E5..20EB ; XID_Continue
+20E5..20EF ; XID_Continue
2102 ; XID_Continue
2107 ; XID_Continue
210A..2113 ; XID_Continue
@@ -3541,15 +3687,18 @@ FFDA..FFDC ; XID_Start
2128 ; XID_Continue
212A..212D ; XID_Continue
212E ; XID_Continue
-212F..2131 ; XID_Continue
-2133..2134 ; XID_Continue
+212F..2134 ; XID_Continue
2135..2138 ; XID_Continue
2139 ; XID_Continue
213C..213F ; XID_Continue
2145..2149 ; XID_Continue
-2160..2183 ; XID_Continue
+214E ; XID_Continue
+2160..2182 ; XID_Continue
+2183..2184 ; XID_Continue
2C00..2C2E ; XID_Continue
2C30..2C5E ; XID_Continue
+2C60..2C6C ; XID_Continue
+2C74..2C77 ; XID_Continue
2C80..2CE4 ; XID_Continue
2D00..2D25 ; XID_Continue
2D30..2D65 ; XID_Continue
@@ -3588,6 +3737,7 @@ FFDA..FFDC ; XID_Start
A000..A014 ; XID_Continue
A015 ; XID_Continue
A016..A48C ; XID_Continue
+A717..A71A ; XID_Continue
A800..A801 ; XID_Continue
A802 ; XID_Continue
A803..A805 ; XID_Continue
@@ -3598,6 +3748,7 @@ A80C..A822 ; XID_Continue
A823..A824 ; XID_Continue
A825..A826 ; XID_Continue
A827 ; XID_Continue
+A840..A873 ; XID_Continue
AC00..D7A3 ; XID_Continue
F900..FA2D ; XID_Continue
FA30..FA6A ; XID_Continue
@@ -3651,7 +3802,9 @@ FFDA..FFDC ; XID_Continue
10080..100FA ; XID_Continue
10140..10174 ; XID_Continue
10300..1031E ; XID_Continue
-10330..10349 ; XID_Continue
+10330..10340 ; XID_Continue
+10341 ; XID_Continue
+10342..10349 ; XID_Continue
1034A ; XID_Continue
10380..1039D ; XID_Continue
103A0..103C3 ; XID_Continue
@@ -3666,6 +3819,7 @@ FFDA..FFDC ; XID_Continue
10837..10838 ; XID_Continue
1083C ; XID_Continue
1083F ; XID_Continue
+10900..10915 ; XID_Continue
10A00 ; XID_Continue
10A01..10A03 ; XID_Continue
10A05..10A06 ; XID_Continue
@@ -3675,6 +3829,8 @@ FFDA..FFDC ; XID_Continue
10A19..10A33 ; XID_Continue
10A38..10A3A ; XID_Continue
10A3F ; XID_Continue
+12000..1236E ; XID_Continue
+12400..12462 ; XID_Continue
1D165..1D166 ; XID_Continue
1D167..1D169 ; XID_Continue
1D16D..1D172 ; XID_Continue
@@ -3711,13 +3867,13 @@ FFDA..FFDC ; XID_Continue
1D770..1D788 ; XID_Continue
1D78A..1D7A8 ; XID_Continue
1D7AA..1D7C2 ; XID_Continue
-1D7C4..1D7C9 ; XID_Continue
+1D7C4..1D7CB ; XID_Continue
1D7CE..1D7FF ; XID_Continue
20000..2A6D6 ; XID_Continue
2F800..2FA1D ; XID_Continue
E0100..E01EF ; XID_Continue
-# Total code points: 92780
+# Total code points: 94056
# ================================================
@@ -3786,8 +3942,7 @@ FFFFE..FFFFF ; Default_Ignorable_Code_Point
0300..036F ; Grapheme_Extend
0483..0486 ; Grapheme_Extend
0488..0489 ; Grapheme_Extend
-0591..05B9 ; Grapheme_Extend
-05BB..05BD ; Grapheme_Extend
+0591..05BD ; Grapheme_Extend
05BF ; Grapheme_Extend
05C1..05C2 ; Grapheme_Extend
05C4..05C5 ; Grapheme_Extend
@@ -3803,6 +3958,7 @@ FFFFE..FFFFF ; Default_Ignorable_Code_Point
0711 ; Grapheme_Extend
0730..074A ; Grapheme_Extend
07A6..07B0 ; Grapheme_Extend
+07EB..07F3 ; Grapheme_Extend
0901..0902 ; Grapheme_Extend
093C ; Grapheme_Extend
0941..0948 ; Grapheme_Extend
@@ -3851,6 +4007,7 @@ FFFFE..FFFFF ; Default_Ignorable_Code_Point
0CC6 ; Grapheme_Extend
0CCC..0CCD ; Grapheme_Extend
0CD5..0CD6 ; Grapheme_Extend
+0CE2..0CE3 ; Grapheme_Extend
0D3E ; Grapheme_Extend
0D41..0D43 ; Grapheme_Extend
0D4D ; Grapheme_Extend
@@ -3898,13 +4055,20 @@ FFFFE..FFFFF ; Default_Ignorable_Code_Point
1932 ; Grapheme_Extend
1939..193B ; Grapheme_Extend
1A17..1A18 ; Grapheme_Extend
-1DC0..1DC3 ; Grapheme_Extend
+1B00..1B03 ; Grapheme_Extend
+1B34 ; Grapheme_Extend
+1B36..1B3A ; Grapheme_Extend
+1B3C ; Grapheme_Extend
+1B42 ; Grapheme_Extend
+1B6B..1B73 ; Grapheme_Extend
+1DC0..1DCA ; Grapheme_Extend
+1DFE..1DFF ; Grapheme_Extend
200C..200D ; Grapheme_Extend
20D0..20DC ; Grapheme_Extend
20DD..20E0 ; Grapheme_Extend
20E1 ; Grapheme_Extend
20E2..20E4 ; Grapheme_Extend
-20E5..20EB ; Grapheme_Extend
+20E5..20EF ; Grapheme_Extend
302A..302F ; Grapheme_Extend
3099..309A ; Grapheme_Extend
A806 ; Grapheme_Extend
@@ -3927,7 +4091,7 @@ FE20..FE23 ; Grapheme_Extend
1D242..1D244 ; Grapheme_Extend
E0100..E01EF ; Grapheme_Extend
-# Total code points: 865
+# Total code points: 911
# ================================================
@@ -3995,8 +4159,9 @@ E0100..E01EF ; Grapheme_Extend
01BB ; Grapheme_Base
01BC..01BF ; Grapheme_Base
01C0..01C3 ; Grapheme_Base
-01C4..0241 ; Grapheme_Base
-0250..02AF ; Grapheme_Base
+01C4..0293 ; Grapheme_Base
+0294 ; Grapheme_Base
+0295..02AF ; Grapheme_Base
02B0..02C1 ; Grapheme_Base
02C2..02C5 ; Grapheme_Base
02C6..02D1 ; Grapheme_Base
@@ -4007,6 +4172,7 @@ E0100..E01EF ; Grapheme_Extend
02EF..02FF ; Grapheme_Base
0374..0375 ; Grapheme_Base
037A ; Grapheme_Base
+037B..037D ; Grapheme_Base
037E ; Grapheme_Base
0384..0385 ; Grapheme_Base
0386 ; Grapheme_Base
@@ -4019,9 +4185,7 @@ E0100..E01EF ; Grapheme_Extend
03F6 ; Grapheme_Base
03F7..0481 ; Grapheme_Base
0482 ; Grapheme_Base
-048A..04CE ; Grapheme_Base
-04D0..04F9 ; Grapheme_Base
-0500..050F ; Grapheme_Base
+048A..0513 ; Grapheme_Base
0531..0556 ; Grapheme_Base
0559 ; Grapheme_Base
055A..055F ; Grapheme_Base
@@ -4062,6 +4226,12 @@ E0100..E01EF ; Grapheme_Extend
074D..076D ; Grapheme_Base
0780..07A5 ; Grapheme_Base
07B1 ; Grapheme_Base
+07C0..07C9 ; Grapheme_Base
+07CA..07EA ; Grapheme_Base
+07F4..07F5 ; Grapheme_Base
+07F6 ; Grapheme_Base
+07F7..07F9 ; Grapheme_Base
+07FA ; Grapheme_Base
0903 ; Grapheme_Base
0904..0939 ; Grapheme_Base
093D ; Grapheme_Base
@@ -4072,7 +4242,7 @@ E0100..E01EF ; Grapheme_Extend
0964..0965 ; Grapheme_Base
0966..096F ; Grapheme_Base
0970 ; Grapheme_Base
-097D ; Grapheme_Base
+097B..097F ; Grapheme_Base
0982..0983 ; Grapheme_Base
0985..098C ; Grapheme_Base
098F..0990 ; Grapheme_Base
@@ -4179,6 +4349,7 @@ E0100..E01EF ; Grapheme_Extend
0CDE ; Grapheme_Base
0CE0..0CE1 ; Grapheme_Base
0CE6..0CEF ; Grapheme_Base
+0CF1..0CF2 ; Grapheme_Base
0D02..0D03 ; Grapheme_Base
0D05..0D0C ; Grapheme_Base
0D0E..0D10 ; Grapheme_Base
@@ -4345,6 +4516,17 @@ E0100..E01EF ; Grapheme_Extend
1A00..1A16 ; Grapheme_Base
1A19..1A1B ; Grapheme_Base
1A1E..1A1F ; Grapheme_Base
+1B04 ; Grapheme_Base
+1B05..1B33 ; Grapheme_Base
+1B35 ; Grapheme_Base
+1B3B ; Grapheme_Base
+1B3D..1B41 ; Grapheme_Base
+1B43..1B44 ; Grapheme_Base
+1B45..1B4B ; Grapheme_Base
+1B50..1B59 ; Grapheme_Base
+1B5A..1B60 ; Grapheme_Base
+1B61..1B6A ; Grapheme_Base
+1B74..1B7C ; Grapheme_Base
1D00..1D2B ; Grapheme_Base
1D2C..1D61 ; Grapheme_Base
1D62..1D77 ; Grapheme_Base
@@ -4437,9 +4619,7 @@ E0100..E01EF ; Grapheme_Extend
2129 ; Grapheme_Base
212A..212D ; Grapheme_Base
212E ; Grapheme_Base
-212F..2131 ; Grapheme_Base
-2132 ; Grapheme_Base
-2133..2134 ; Grapheme_Base
+212F..2134 ; Grapheme_Base
2135..2138 ; Grapheme_Base
2139 ; Grapheme_Base
213A..213B ; Grapheme_Base
@@ -4448,9 +4628,11 @@ E0100..E01EF ; Grapheme_Extend
2145..2149 ; Grapheme_Base
214A ; Grapheme_Base
214B ; Grapheme_Base
-214C ; Grapheme_Base
+214C..214D ; Grapheme_Base
+214E ; Grapheme_Base
2153..215F ; Grapheme_Base
-2160..2183 ; Grapheme_Base
+2160..2182 ; Grapheme_Base
+2183..2184 ; Grapheme_Base
2190..2194 ; Grapheme_Base
2195..2199 ; Grapheme_Base
219A..219B ; Grapheme_Base
@@ -4481,10 +4663,9 @@ E0100..E01EF ; Grapheme_Extend
237C ; Grapheme_Base
237D..239A ; Grapheme_Base
239B..23B3 ; Grapheme_Base
-23B4 ; Grapheme_Base
-23B5 ; Grapheme_Base
-23B6 ; Grapheme_Base
-23B7..23DB ; Grapheme_Base
+23B4..23DB ; Grapheme_Base
+23DC..23E1 ; Grapheme_Base
+23E2..23E7 ; Grapheme_Base
2400..2426 ; Grapheme_Base
2440..244A ; Grapheme_Base
2460..249B ; Grapheme_Base
@@ -4499,7 +4680,7 @@ E0100..E01EF ; Grapheme_Extend
2600..266E ; Grapheme_Base
266F ; Grapheme_Base
2670..269C ; Grapheme_Base
-26A0..26B1 ; Grapheme_Base
+26A0..26B2 ; Grapheme_Base
2701..2704 ; Grapheme_Base
2706..2709 ; Grapheme_Base
270C..2727 ; Grapheme_Base
@@ -4530,6 +4711,7 @@ E0100..E01EF ; Grapheme_Extend
27C0..27C4 ; Grapheme_Base
27C5 ; Grapheme_Base
27C6 ; Grapheme_Base
+27C7..27CA ; Grapheme_Base
27D0..27E5 ; Grapheme_Base
27E6 ; Grapheme_Base
27E7 ; Grapheme_Base
@@ -4571,9 +4753,12 @@ E0100..E01EF ; Grapheme_Extend
29FC ; Grapheme_Base
29FD ; Grapheme_Base
29FE..2AFF ; Grapheme_Base
-2B00..2B13 ; Grapheme_Base
+2B00..2B1A ; Grapheme_Base
+2B20..2B23 ; Grapheme_Base
2C00..2C2E ; Grapheme_Base
2C30..2C5E ; Grapheme_Base
+2C60..2C6C ; Grapheme_Base
+2C74..2C77 ; Grapheme_Base
2C80..2CE4 ; Grapheme_Base
2CE5..2CEA ; Grapheme_Base
2CF9..2CFC ; Grapheme_Base
@@ -4684,6 +4869,8 @@ A015 ; Grapheme_Base
A016..A48C ; Grapheme_Base
A490..A4C6 ; Grapheme_Base
A700..A716 ; Grapheme_Base
+A717..A71A ; Grapheme_Base
+A720..A721 ; Grapheme_Base
A800..A801 ; Grapheme_Base
A802 ; Grapheme_Base
A803..A805 ; Grapheme_Base
@@ -4692,6 +4879,8 @@ A80C..A822 ; Grapheme_Base
A823..A824 ; Grapheme_Base
A827 ; Grapheme_Base
A828..A82B ; Grapheme_Base
+A840..A873 ; Grapheme_Base
+A874..A877 ; Grapheme_Base
AC00..D7A3 ; Grapheme_Base
F900..FA2D ; Grapheme_Base
FA30..FA6A ; Grapheme_Base
@@ -4828,7 +5017,9 @@ FFFC..FFFD ; Grapheme_Base
1018A ; Grapheme_Base
10300..1031E ; Grapheme_Base
10320..10323 ; Grapheme_Base
-10330..10349 ; Grapheme_Base
+10330..10340 ; Grapheme_Base
+10341 ; Grapheme_Base
+10342..10349 ; Grapheme_Base
1034A ; Grapheme_Base
10380..1039D ; Grapheme_Base
1039F ; Grapheme_Base
@@ -4845,12 +5036,18 @@ FFFC..FFFD ; Grapheme_Base
10837..10838 ; Grapheme_Base
1083C ; Grapheme_Base
1083F ; Grapheme_Base
+10900..10915 ; Grapheme_Base
+10916..10919 ; Grapheme_Base
+1091F ; Grapheme_Base
10A00 ; Grapheme_Base
10A10..10A13 ; Grapheme_Base
10A15..10A17 ; Grapheme_Base
10A19..10A33 ; Grapheme_Base
10A40..10A47 ; Grapheme_Base
10A50..10A58 ; Grapheme_Base
+12000..1236E ; Grapheme_Base
+12400..12462 ; Grapheme_Base
+12470..12473 ; Grapheme_Base
1D000..1D0F5 ; Grapheme_Base
1D100..1D126 ; Grapheme_Base
1D12A..1D164 ; Grapheme_Base
@@ -4863,6 +5060,7 @@ FFFC..FFFD ; Grapheme_Base
1D200..1D241 ; Grapheme_Base
1D245 ; Grapheme_Base
1D300..1D356 ; Grapheme_Base
+1D360..1D371 ; Grapheme_Base
1D400..1D454 ; Grapheme_Base
1D456..1D49C ; Grapheme_Base
1D49E..1D49F ; Grapheme_Base
@@ -4902,9 +5100,39 @@ FFFC..FFFD ; Grapheme_Base
1D7A9 ; Grapheme_Base
1D7AA..1D7C2 ; Grapheme_Base
1D7C3 ; Grapheme_Base
-1D7C4..1D7C9 ; Grapheme_Base
+1D7C4..1D7CB ; Grapheme_Base
1D7CE..1D7FF ; Grapheme_Base
20000..2A6D6 ; Grapheme_Base
2F800..2FA1D ; Grapheme_Base
-# Total code points: 96652
+# Total code points: 97975
+
+# ================================================
+
+# Derived Property: Grapheme_Link (deprecated)
+# Generated from: Canonical_Combining_Class=Virama
+# Use Canonical_Combining_Class=Virama directly instead
+
+094D ; Grapheme_Link
+09CD ; Grapheme_Link
+0A4D ; Grapheme_Link
+0ACD ; Grapheme_Link
+0B4D ; Grapheme_Link
+0BCD ; Grapheme_Link
+0C4D ; Grapheme_Link
+0CCD ; Grapheme_Link
+0D4D ; Grapheme_Link
+0DCA ; Grapheme_Link
+0E3A ; Grapheme_Link
+0F84 ; Grapheme_Link
+1039 ; Grapheme_Link
+1714 ; Grapheme_Link
+1734 ; Grapheme_Link
+17D2 ; Grapheme_Link
+1B44 ; Grapheme_Link
+A806 ; Grapheme_Link
+10A3F ; Grapheme_Link
+
+# Total code points: 19
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningGroup.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningGroup.txt
index ab7954cf57a..751581c0b0f 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningGroup.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningGroup.txt
@@ -1,8 +1,8 @@
-# DerivedJoiningGroup-4.1.0.txt
-# Date: 2004-12-15, 02:14:58 GMT [MD]
+# DerivedJoiningGroup-5.0.0.txt
+# Date: 2006-03-09, 23:13:48 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -13,6 +13,8 @@
# All code points not explicitly listed for Joining_Group
# have the value No_Joining_Group.
+# @missing: 0000..10FFFF; No_Joining_Group
+
# ================================================
0639..063A ; Ain # Lo [2] ARABIC LETTER AIN..ARABIC LETTER GHAIN
@@ -387,3 +389,5 @@
074F ; Fe # Lo SYRIAC LETTER SOGDIAN FE
# Total code points: 1
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningType.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningType.txt
index b57fa51a2c1..232c47025b2 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningType.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedJoiningType.txt
@@ -1,8 +1,8 @@
-# DerivedJoiningType-4.1.0.txt
-# Date: 2005-02-26, 02:36:56 GMT [MD]
+# DerivedJoiningType-5.0.0.txt
+# Date: 2006-03-09, 23:13:52 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -13,14 +13,17 @@
# All code points not explicitly listed for Joining_Type
# have the value Non_Joining (U).
+# @missing: 0000..10FFFF; Non_Joining
+
# ================================================
# Joining_Type=Join_Causing
0640 ; C # Lm ARABIC TATWEEL
+07FA ; C # Lm NKO LAJANYALAN
200D ; C # Cf ZERO WIDTH JOINER
-# Total code points: 2
+# Total code points: 3
# ================================================
@@ -50,8 +53,9 @@
074E..0758 ; D # Lo [11] SYRIAC LETTER SOGDIAN KHAPH..ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW
075C..076A ; D # Lo [15] ARABIC LETTER SEEN WITH FOUR DOTS ABOVE..ARABIC LETTER LAM WITH BAR
076D ; D # Lo ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+07CA..07EA ; D # Lo [33] NKO LETTER A..NKO LETTER JONA RA
-# Total code points: 137
+# Total code points: 170
# ================================================
@@ -93,8 +97,7 @@
0300..036F ; T # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
0483..0486 ; T # Mn [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
0488..0489 ; T # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-0591..05B9 ; T # Mn [41] HEBREW ACCENT ETNAHTA..HEBREW POINT HOLAM
-05BB..05BD ; T # Mn [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
+0591..05BD ; T # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
05BF ; T # Mn HEBREW POINT RAFE
05C1..05C2 ; T # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
05C4..05C5 ; T # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
@@ -111,6 +114,7 @@
0711 ; T # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
0730..074A ; T # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
07A6..07B0 ; T # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07EB..07F3 ; T # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
0901..0902 ; T # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
093C ; T # Mn DEVANAGARI SIGN NUKTA
0941..0948 ; T # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
@@ -151,6 +155,7 @@
0CBF ; T # Mn KANNADA VOWEL SIGN I
0CC6 ; T # Mn KANNADA VOWEL SIGN E
0CCC..0CCD ; T # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CE2..0CE3 ; T # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0D41..0D43 ; T # Mn [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R
0D4D ; T # Mn MALAYALAM SIGN VIRAMA
0DCA ; T # Mn SINHALA SIGN AL-LAKUNA
@@ -195,7 +200,14 @@
1932 ; T # Mn LIMBU SMALL LETTER ANUSVARA
1939..193B ; T # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
1A17..1A18 ; T # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1DC0..1DC3 ; T # Mn [4] COMBINING DOTTED GRAVE ACCENT..COMBINING SUSPENSION MARK
+1B00..1B03 ; T # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B34 ; T # Mn BALINESE SIGN REREKAN
+1B36..1B3A ; T # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3C ; T # Mn BALINESE VOWEL SIGN LA LENGA
+1B42 ; T # Mn BALINESE VOWEL SIGN PEPET
+1B6B..1B73 ; T # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1DC0..1DCA ; T # Mn [11] COMBINING DOTTED GRAVE ACCENT..COMBINING LATIN SMALL LETTER R BELOW
+1DFE..1DFF ; T # Mn [2] COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200B ; T # Cf ZERO WIDTH SPACE
200E..200F ; T # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
202A..202E ; T # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
@@ -205,7 +217,7 @@
20DD..20E0 ; T # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
20E1 ; T # Mn COMBINING LEFT RIGHT ARROW ABOVE
20E2..20E4 ; T # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5..20EB ; T # Mn [7] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING LONG DOUBLE SOLIDUS OVERLAY
+20E5..20EF ; T # Mn [11] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING RIGHT ARROW BELOW
302A..302F ; T # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
3099..309A ; T # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
A806 ; T # Mn SYLOTI NAGRI SIGN HASANTA
@@ -231,4 +243,6 @@ E0001 ; T # Cf LANGUAGE TAG
E0020..E007F ; T # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; T # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 975
+# Total code points: 1021
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedNormalizationProps.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedNormalizationProps.txt
index e8eb4ce6cc0..23f2901f49b 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedNormalizationProps.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedNormalizationProps.txt
@@ -1,8 +1,8 @@
-# DerivedNormalizationProps-4.1.0.txt
-# Date: 2005-02-26, 02:37:43 GMT [MD]
+# DerivedNormalizationProps-5.0.0.txt
+# Date: 2006-06-07, 17:42:44 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -578,8 +578,9 @@
1D7A7 ; FC_NFKC; 03C8
1D7A8 ; FC_NFKC; 03C9
1D7BB ; FC_NFKC; 03C3
+1D7CA ; FC_NFKC; 03DD
-# Total code points: 564
+# Total code points: 565
# ================================================
@@ -671,6 +672,8 @@ FB46..FB4E ; Full_Composition_Exclusion
# All code points not explicitly listed for NFD_Quick_Check
# have the value Yes (Y).
+# @missing: 0000..10FFFF; NFD_QC; Yes
+
# ================================================
# NFD_Quick_Check=No
@@ -776,6 +779,16 @@ FB46..FB4E ; Full_Composition_Exclusion
0FAC ; NFD_QC; N
0FB9 ; NFD_QC; N
1026 ; NFD_QC; N
+1B06 ; NFD_QC; N
+1B08 ; NFD_QC; N
+1B0A ; NFD_QC; N
+1B0C ; NFD_QC; N
+1B0E ; NFD_QC; N
+1B12 ; NFD_QC; N
+1B3B ; NFD_QC; N
+1B3D ; NFD_QC; N
+1B40..1B41 ; NFD_QC; N
+1B43 ; NFD_QC; N
1E00..1E99 ; NFD_QC; N
1E9B ; NFD_QC; N
1EA0..1EF9 ; NFD_QC; N
@@ -901,7 +914,7 @@ FB46..FB4E ; NFD_QC; N
1D1BB..1D1C0 ; NFD_QC; N
2F800..2FA1D ; NFD_QC; N
-# Total code points: 13204
+# Total code points: 13215
# ================================================
@@ -910,6 +923,8 @@ FB46..FB4E ; NFD_QC; N
# All code points not explicitly listed for NFC_Quick_Check
# have the value Yes (Y).
+# @missing: 0000..10FFFF; NFC_QC; Yes
+
# ================================================
# NFC_Quick_Check=No
@@ -1028,9 +1043,10 @@ FB46..FB4E ; NFC_QC; N
102E ; NFC_QC; M
1161..1175 ; NFC_QC; M
11A8..11C2 ; NFC_QC; M
+1B35 ; NFC_QC; M
3099..309A ; NFC_QC; M
-# Total code points: 101
+# Total code points: 102
# ================================================
@@ -1039,6 +1055,8 @@ FB46..FB4E ; NFC_QC; N
# All code points not explicitly listed for NFKD_Quick_Check
# have the value Yes (Y).
+# @missing: 0000..10FFFF; NFKD_QC; Yes
+
# ================================================
# NFKD_Quick_Check=No
@@ -1167,6 +1185,16 @@ FB46..FB4E ; NFC_QC; N
0FB9 ; NFKD_QC; N
1026 ; NFKD_QC; N
10FC ; NFKD_QC; N
+1B06 ; NFKD_QC; N
+1B08 ; NFKD_QC; N
+1B0A ; NFKD_QC; N
+1B0C ; NFKD_QC; N
+1B0E ; NFKD_QC; N
+1B12 ; NFKD_QC; N
+1B3B ; NFKD_QC; N
+1B3D ; NFKD_QC; N
+1B40..1B41 ; NFKD_QC; N
+1B43 ; NFKD_QC; N
1D2C..1D2E ; NFKD_QC; N
1D30..1D3A ; NFKD_QC; N
1D3C..1D4D ; NFKD_QC; N
@@ -1517,11 +1545,11 @@ FFED..FFEE ; NFKD_QC; N
1D7A9 ; NFKD_QC; N
1D7AA..1D7C2 ; NFKD_QC; N
1D7C3 ; NFKD_QC; N
-1D7C4..1D7C9 ; NFKD_QC; N
+1D7C4..1D7CB ; NFKD_QC; N
1D7CE..1D7FF ; NFKD_QC; N
2F800..2FA1D ; NFKD_QC; N
-# Total code points: 16561
+# Total code points: 16574
# ================================================
@@ -1530,6 +1558,8 @@ FFED..FFEE ; NFKD_QC; N
# All code points not explicitly listed for NFKC_Quick_Check
# have the value Yes (Y).
+# @missing: 0000..10FFFF; NFKC_QC; Yes
+
# ================================================
# NFKC_Quick_Check=No
@@ -1872,11 +1902,11 @@ FFED..FFEE ; NFKC_QC; N
1D7A9 ; NFKC_QC; N
1D7AA..1D7C2 ; NFKC_QC; N
1D7C3 ; NFKC_QC; N
-1D7C4..1D7C9 ; NFKC_QC; N
+1D7C4..1D7CB ; NFKC_QC; N
1D7CE..1D7FF ; NFKC_QC; N
2F800..2FA1D ; NFKC_QC; N
-# Total code points: 4484
+# Total code points: 4486
# ================================================
@@ -1914,9 +1944,10 @@ FFED..FFEE ; NFKC_QC; N
102E ; NFKC_QC; M
1161..1175 ; NFKC_QC; M
11A8..11C2 ; NFKC_QC; M
+1B35 ; NFKC_QC; M
3099..309A ; NFKC_QC; M
-# Total code points: 101
+# Total code points: 102
# ================================================
@@ -2023,6 +2054,16 @@ FFED..FFEE ; NFKC_QC; N
0FAC ; Expands_On_NFD
0FB9 ; Expands_On_NFD
1026 ; Expands_On_NFD
+1B06 ; Expands_On_NFD
+1B08 ; Expands_On_NFD
+1B0A ; Expands_On_NFD
+1B0C ; Expands_On_NFD
+1B0E ; Expands_On_NFD
+1B12 ; Expands_On_NFD
+1B3B ; Expands_On_NFD
+1B3D ; Expands_On_NFD
+1B40..1B41 ; Expands_On_NFD
+1B43 ; Expands_On_NFD
1E00..1E99 ; Expands_On_NFD
1E9B ; Expands_On_NFD
1EA0..1EF9 ; Expands_On_NFD
@@ -2131,7 +2172,7 @@ FB46..FB4E ; Expands_On_NFD
1D15E..1D164 ; Expands_On_NFD
1D1BB..1D1C0 ; Expands_On_NFD
-# Total code points: 12192
+# Total code points: 12203
# ================================================
@@ -2295,6 +2336,16 @@ FB46..FB4E ; Expands_On_NFC
0FAC ; Expands_On_NFKD
0FB9 ; Expands_On_NFKD
1026 ; Expands_On_NFKD
+1B06 ; Expands_On_NFKD
+1B08 ; Expands_On_NFKD
+1B0A ; Expands_On_NFKD
+1B0C ; Expands_On_NFKD
+1B0E ; Expands_On_NFKD
+1B12 ; Expands_On_NFKD
+1B3B ; Expands_On_NFKD
+1B3D ; Expands_On_NFKD
+1B40..1B41 ; Expands_On_NFKD
+1B43 ; Expands_On_NFKD
1E00..1E9B ; Expands_On_NFKD
1EA0..1EF9 ; Expands_On_NFKD
1F00..1F15 ; Expands_On_NFKD
@@ -2465,7 +2516,7 @@ FFE3 ; Expands_On_NFKD
1D15E..1D164 ; Expands_On_NFKD
1D1BB..1D1C0 ; Expands_On_NFKD
-# Total code points: 13299
+# Total code points: 13310
# ================================================
@@ -2595,3 +2646,5 @@ FFE3 ; Expands_On_NFKC
1D1BB..1D1C0 ; Expands_On_NFKC
# Total code points: 1171
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/DerivedNumericValues.txt b/Build/source/libs/icu-xetex/data/unidata/DerivedNumericValues.txt
index 3cc9c0faa42..bec3d54c8eb 100644
--- a/Build/source/libs/icu-xetex/data/unidata/DerivedNumericValues.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/DerivedNumericValues.txt
@@ -1,8 +1,8 @@
-# DerivedNumericValues-4.1.0.txt
-# Date: 2005-03-10, 03:07:57 GMT [MD]
+# DerivedNumericValues-5.0.0.txt
+# Date: 2006-02-27, 23:41:38 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -25,6 +25,7 @@
0030 ; 0.0 # Nd DIGIT ZERO
0660 ; 0.0 # Nd ARABIC-INDIC DIGIT ZERO
06F0 ; 0.0 # Nd EXTENDED ARABIC-INDIC DIGIT ZERO
+07C0 ; 0.0 # Nd NKO DIGIT ZERO
0966 ; 0.0 # Nd DEVANAGARI DIGIT ZERO
09E6 ; 0.0 # Nd BENGALI DIGIT ZERO
0A66 ; 0.0 # Nd GURMUKHI DIGIT ZERO
@@ -43,6 +44,7 @@
1810 ; 0.0 # Nd MONGOLIAN DIGIT ZERO
1946 ; 0.0 # Nd LIMBU DIGIT ZERO
19D0 ; 0.0 # Nd NEW TAI LUE DIGIT ZERO
+1B50 ; 0.0 # Nd BALINESE DIGIT ZERO
2070 ; 0.0 # No SUPERSCRIPT ZERO
2080 ; 0.0 # No SUBSCRIPT ZERO
24EA ; 0.0 # No CIRCLED DIGIT ZERO
@@ -58,19 +60,21 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
1D7EC ; 0.0 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
1D7F6 ; 0.0 # Nd MATHEMATICAL MONOSPACE DIGIT ZERO
-# Total code points: 35
+# Total code points: 37
# ================================================
215B ; 0.125 # No VULGAR FRACTION ONE EIGHTH
+1245F ; 0.125 # Nl CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH
-# Total code points: 1
+# Total code points: 2
# ================================================
2159 ; 0.16666667 # No VULGAR FRACTION ONE SIXTH
+12461 ; 0.16666667 # Nl CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH
-# Total code points: 1
+# Total code points: 2
# ================================================
@@ -82,14 +86,18 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
00BC ; 0.25 # No VULGAR FRACTION ONE QUARTER
10140 ; 0.25 # Nl GREEK ACROPHONIC ATTIC ONE QUARTER
+12460 ; 0.25 # Nl CUNEIFORM NUMERIC SIGN ONE QUARTER ASH
+12462 ; 0.25 # Nl CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
-# Total code points: 2
+# Total code points: 4
# ================================================
2153 ; 0.33333333 # No VULGAR FRACTION ONE THIRD
+1245A ; 0.33333333 # Nl CUNEIFORM NUMERIC SIGN ONE THIRD DISH
+1245D ; 0.33333333 # Nl CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A
-# Total code points: 1
+# Total code points: 3
# ================================================
@@ -129,8 +137,10 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
2154 ; 0.66666667 # No VULGAR FRACTION TWO THIRDS
10177 ; 0.66666667 # No GREEK TWO THIRDS SIGN
+1245B ; 0.66666667 # Nl CUNEIFORM NUMERIC SIGN TWO THIRDS DISH
+1245E ; 0.66666667 # Nl CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A
-# Total code points: 2
+# Total code points: 4
# ================================================
@@ -148,8 +158,9 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
# ================================================
215A ; 0.83333333 # No VULGAR FRACTION FIVE SIXTHS
+1245C ; 0.83333333 # Nl CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH
-# Total code points: 1
+# Total code points: 2
# ================================================
@@ -163,6 +174,7 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
00B9 ; 1.0 # No SUPERSCRIPT ONE
0661 ; 1.0 # Nd ARABIC-INDIC DIGIT ONE
06F1 ; 1.0 # Nd EXTENDED ARABIC-INDIC DIGIT ONE
+07C1 ; 1.0 # Nd NKO DIGIT ONE
0967 ; 1.0 # Nd DEVANAGARI DIGIT ONE
09E7 ; 1.0 # Nd BENGALI DIGIT ONE
09F4 ; 1.0 # No BENGALI CURRENCY NUMERATOR ONE
@@ -183,6 +195,7 @@ FF10 ; 0.0 # Nd FULLWIDTH DIGIT ZERO
1811 ; 1.0 # Nd MONGOLIAN DIGIT ONE
1947 ; 1.0 # Nd LIMBU DIGIT ONE
19D1 ; 1.0 # Nd NEW TAI LUE DIGIT ONE
+1B51 ; 1.0 # Nd BALINESE DIGIT ONE
2081 ; 1.0 # No SUBSCRIPT ONE
215F ; 1.0 # No FRACTION NUMERATOR ONE
2160 ; 1.0 # Nl ROMAN NUMERAL ONE
@@ -210,7 +223,15 @@ FF11 ; 1.0 # Nd FULLWIDTH DIGIT ONE
10320 ; 1.0 # No OLD ITALIC NUMERAL ONE
103D1 ; 1.0 # Nl OLD PERSIAN NUMBER ONE
104A1 ; 1.0 # Nd OSMANYA DIGIT ONE
+10916 ; 1.0 # No PHOENICIAN NUMBER ONE
10A40 ; 1.0 # No KHAROSHTHI DIGIT ONE
+12415 ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE GESH2
+1241E ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE GESHU
+1242C ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE SHARU
+12434 ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE BURU
+1244F ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE BAN2
+12458 ; 1.0 # Nl CUNEIFORM NUMERIC SIGN ONE ESHE3
+1D360 ; 1.0 # No COUNTING ROD UNIT DIGIT ONE
1D7CF ; 1.0 # Nd MATHEMATICAL BOLD DIGIT ONE
1D7D9 ; 1.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
1D7E3 ; 1.0 # Nd MATHEMATICAL SANS-SERIF DIGIT ONE
@@ -218,7 +239,7 @@ FF11 ; 1.0 # Nd FULLWIDTH DIGIT ONE
1D7F7 ; 1.0 # Nd MATHEMATICAL MONOSPACE DIGIT ONE
2092A ; 1.0 # Lo CJK UNIFIED IDEOGRAPH-2092A
-# Total code points: 60
+# Total code points: 70
# ================================================
@@ -232,6 +253,7 @@ FF11 ; 1.0 # Nd FULLWIDTH DIGIT ONE
00B2 ; 2.0 # No SUPERSCRIPT TWO
0662 ; 2.0 # Nd ARABIC-INDIC DIGIT TWO
06F2 ; 2.0 # Nd EXTENDED ARABIC-INDIC DIGIT TWO
+07C2 ; 2.0 # Nd NKO DIGIT TWO
0968 ; 2.0 # Nd DEVANAGARI DIGIT TWO
09E8 ; 2.0 # Nd BENGALI DIGIT TWO
09F5 ; 2.0 # No BENGALI CURRENCY NUMERATOR TWO
@@ -252,6 +274,7 @@ FF11 ; 1.0 # Nd FULLWIDTH DIGIT ONE
1812 ; 2.0 # Nd MONGOLIAN DIGIT TWO
1948 ; 2.0 # Nd LIMBU DIGIT TWO
19D2 ; 2.0 # Nd NEW TAI LUE DIGIT TWO
+1B52 ; 2.0 # Nd BALINESE DIGIT TWO
2082 ; 2.0 # No SUBSCRIPT TWO
2161 ; 2.0 # Nl ROMAN NUMERAL TWO
2171 ; 2.0 # Nl SMALL ROMAN NUMERAL TWO
@@ -280,6 +303,16 @@ FF12 ; 2.0 # Nd FULLWIDTH DIGIT TWO
103D2 ; 2.0 # Nl OLD PERSIAN NUMBER TWO
104A2 ; 2.0 # Nd OSMANYA DIGIT TWO
10A41 ; 2.0 # No KHAROSHTHI DIGIT TWO
+12400 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO ASH
+12416 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO GESH2
+1241F ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO GESHU
+12423 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO SHAR2
+1242D ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO SHARU
+12435 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO BURU
+1244A ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO ASH TENU
+12450 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO BAN2
+12459 ; 2.0 # Nl CUNEIFORM NUMERIC SIGN TWO ESHE3
+1D361 ; 2.0 # No COUNTING ROD UNIT DIGIT TWO
1D7D0 ; 2.0 # Nd MATHEMATICAL BOLD DIGIT TWO
1D7DA ; 2.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
1D7E4 ; 2.0 # Nd MATHEMATICAL SANS-SERIF DIGIT TWO
@@ -287,7 +320,7 @@ FF12 ; 2.0 # Nd FULLWIDTH DIGIT TWO
1D7F8 ; 2.0 # Nd MATHEMATICAL MONOSPACE DIGIT TWO
22390 ; 2.0 # Lo CJK UNIFIED IDEOGRAPH-22390
-# Total code points: 61
+# Total code points: 73
# ================================================
@@ -301,6 +334,7 @@ FF12 ; 2.0 # Nd FULLWIDTH DIGIT TWO
00B3 ; 3.0 # No SUPERSCRIPT THREE
0663 ; 3.0 # Nd ARABIC-INDIC DIGIT THREE
06F3 ; 3.0 # Nd EXTENDED ARABIC-INDIC DIGIT THREE
+07C3 ; 3.0 # Nd NKO DIGIT THREE
0969 ; 3.0 # Nd DEVANAGARI DIGIT THREE
09E9 ; 3.0 # Nd BENGALI DIGIT THREE
09F6 ; 3.0 # No BENGALI CURRENCY NUMERATOR THREE
@@ -321,6 +355,7 @@ FF12 ; 2.0 # Nd FULLWIDTH DIGIT TWO
1813 ; 3.0 # Nd MONGOLIAN DIGIT THREE
1949 ; 3.0 # Nd LIMBU DIGIT THREE
19D3 ; 3.0 # Nd NEW TAI LUE DIGIT THREE
+1B53 ; 3.0 # Nd BALINESE DIGIT THREE
2083 ; 3.0 # No SUBSCRIPT THREE
2162 ; 3.0 # Nl ROMAN NUMERAL THREE
2172 ; 3.0 # Nl SMALL ROMAN NUMERAL THREE
@@ -343,6 +378,17 @@ FF13 ; 3.0 # Nd FULLWIDTH DIGIT THREE
10109 ; 3.0 # No AEGEAN NUMBER THREE
104A3 ; 3.0 # Nd OSMANYA DIGIT THREE
10A42 ; 3.0 # No KHAROSHTHI DIGIT THREE
+12401 ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE ASH
+12408 ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE DISH
+12417 ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE GESH2
+12420 ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE GESHU
+12424..12425 ; 3.0 # Nl [2] CUNEIFORM NUMERIC SIGN THREE SHAR2..CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM
+1242E..1242F ; 3.0 # Nl [2] CUNEIFORM NUMERIC SIGN THREE SHARU..CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM
+12436..12437 ; 3.0 # Nl [2] CUNEIFORM NUMERIC SIGN THREE BURU..CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM
+1243A..1243B ; 3.0 # Nl [2] CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16..CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21
+1244B ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE ASH TENU
+12451 ; 3.0 # Nl CUNEIFORM NUMERIC SIGN THREE BAN2
+1D362 ; 3.0 # No COUNTING ROD UNIT DIGIT THREE
1D7D1 ; 3.0 # Nd MATHEMATICAL BOLD DIGIT THREE
1D7DB ; 3.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
1D7E5 ; 3.0 # Nd MATHEMATICAL SANS-SERIF DIGIT THREE
@@ -353,7 +399,7 @@ FF13 ; 3.0 # Nd FULLWIDTH DIGIT THREE
22998 ; 3.0 # Lo CJK UNIFIED IDEOGRAPH-22998
23B1B ; 3.0 # Lo CJK UNIFIED IDEOGRAPH-23B1B
-# Total code points: 58
+# Total code points: 75
# ================================================
@@ -366,6 +412,7 @@ FF13 ; 3.0 # Nd FULLWIDTH DIGIT THREE
0034 ; 4.0 # Nd DIGIT FOUR
0664 ; 4.0 # Nd ARABIC-INDIC DIGIT FOUR
06F4 ; 4.0 # Nd EXTENDED ARABIC-INDIC DIGIT FOUR
+07C4 ; 4.0 # Nd NKO DIGIT FOUR
096A ; 4.0 # Nd DEVANAGARI DIGIT FOUR
09EA ; 4.0 # Nd BENGALI DIGIT FOUR
09F7 ; 4.0 # No BENGALI CURRENCY NUMERATOR FOUR
@@ -386,6 +433,7 @@ FF13 ; 3.0 # Nd FULLWIDTH DIGIT THREE
1814 ; 4.0 # Nd MONGOLIAN DIGIT FOUR
194A ; 4.0 # Nd LIMBU DIGIT FOUR
19D4 ; 4.0 # Nd NEW TAI LUE DIGIT FOUR
+1B54 ; 4.0 # Nd BALINESE DIGIT FOUR
2074 ; 4.0 # No SUPERSCRIPT FOUR
2084 ; 4.0 # No SUBSCRIPT FOUR
2163 ; 4.0 # Nl ROMAN NUMERAL FOUR
@@ -408,6 +456,18 @@ FF14 ; 4.0 # Nd FULLWIDTH DIGIT FOUR
1010A ; 4.0 # No AEGEAN NUMBER FOUR
104A4 ; 4.0 # Nd OSMANYA DIGIT FOUR
10A43 ; 4.0 # No KHAROSHTHI DIGIT FOUR
+12402 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR ASH
+12409 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR DISH
+1240F ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR U
+12418 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR GESH2
+12421 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR GESHU
+12426 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR SHAR2
+12430 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR SHARU
+12438 ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR BURU
+1243C..1243F ; 4.0 # Nl [4] CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU..CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B
+1244C ; 4.0 # Nl CUNEIFORM NUMERIC SIGN FOUR ASH TENU
+12452..12453 ; 4.0 # Nl [2] CUNEIFORM NUMERIC SIGN FOUR BAN2..CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM
+1D363 ; 4.0 # No COUNTING ROD UNIT DIGIT FOUR
1D7D2 ; 4.0 # Nd MATHEMATICAL BOLD DIGIT FOUR
1D7DC ; 4.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
1D7E6 ; 4.0 # Nd MATHEMATICAL SANS-SERIF DIGIT FOUR
@@ -417,7 +477,7 @@ FF14 ; 4.0 # Nd FULLWIDTH DIGIT FOUR
200E2 ; 4.0 # Lo CJK UNIFIED IDEOGRAPH-200E2
2626D ; 4.0 # Lo CJK UNIFIED IDEOGRAPH-2626D
-# Total code points: 53
+# Total code points: 71
# ================================================
@@ -430,6 +490,7 @@ FF14 ; 4.0 # Nd FULLWIDTH DIGIT FOUR
0035 ; 5.0 # Nd DIGIT FIVE
0665 ; 5.0 # Nd ARABIC-INDIC DIGIT FIVE
06F5 ; 5.0 # Nd EXTENDED ARABIC-INDIC DIGIT FIVE
+07C5 ; 5.0 # Nd NKO DIGIT FIVE
096B ; 5.0 # Nd DEVANAGARI DIGIT FIVE
09EB ; 5.0 # Nd BENGALI DIGIT FIVE
0A6B ; 5.0 # Nd GURMUKHI DIGIT FIVE
@@ -449,6 +510,7 @@ FF14 ; 4.0 # Nd FULLWIDTH DIGIT FOUR
1815 ; 5.0 # Nd MONGOLIAN DIGIT FIVE
194B ; 5.0 # Nd LIMBU DIGIT FIVE
19D5 ; 5.0 # Nd NEW TAI LUE DIGIT FIVE
+1B55 ; 5.0 # Nd BALINESE DIGIT FIVE
2075 ; 5.0 # No SUPERSCRIPT FIVE
2085 ; 5.0 # No SUBSCRIPT FIVE
2164 ; 5.0 # Nl ROMAN NUMERAL FIVE
@@ -476,6 +538,17 @@ FF15 ; 5.0 # Nd FULLWIDTH DIGIT FIVE
10173 ; 5.0 # Nl GREEK ACROPHONIC DELPHIC FIVE MNAS
10321 ; 5.0 # No OLD ITALIC NUMERAL FIVE
104A5 ; 5.0 # Nd OSMANYA DIGIT FIVE
+12403 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE ASH
+1240A ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE DISH
+12410 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE U
+12419 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE GESH2
+12422 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE GESHU
+12427 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE SHAR2
+12431 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE SHARU
+12439 ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE BURU
+1244D ; 5.0 # Nl CUNEIFORM NUMERIC SIGN FIVE ASH TENU
+12454..12455 ; 5.0 # Nl [2] CUNEIFORM NUMERIC SIGN FIVE BAN2..CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM
+1D364 ; 5.0 # No COUNTING ROD UNIT DIGIT FIVE
1D7D3 ; 5.0 # Nd MATHEMATICAL BOLD DIGIT FIVE
1D7DD ; 5.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
1D7E7 ; 5.0 # Nd MATHEMATICAL SANS-SERIF DIGIT FIVE
@@ -483,7 +556,7 @@ FF15 ; 5.0 # Nd FULLWIDTH DIGIT FIVE
1D7FB ; 5.0 # Nd MATHEMATICAL MONOSPACE DIGIT FIVE
20121 ; 5.0 # Lo CJK UNIFIED IDEOGRAPH-20121
-# Total code points: 55
+# Total code points: 69
# ================================================
@@ -496,6 +569,7 @@ FF15 ; 5.0 # Nd FULLWIDTH DIGIT FIVE
0036 ; 6.0 # Nd DIGIT SIX
0666 ; 6.0 # Nd ARABIC-INDIC DIGIT SIX
06F6 ; 6.0 # Nd EXTENDED ARABIC-INDIC DIGIT SIX
+07C6 ; 6.0 # Nd NKO DIGIT SIX
096C ; 6.0 # Nd DEVANAGARI DIGIT SIX
09EC ; 6.0 # Nd BENGALI DIGIT SIX
0A6C ; 6.0 # Nd GURMUKHI DIGIT SIX
@@ -515,6 +589,7 @@ FF15 ; 5.0 # Nd FULLWIDTH DIGIT FIVE
1816 ; 6.0 # Nd MONGOLIAN DIGIT SIX
194C ; 6.0 # Nd LIMBU DIGIT SIX
19D6 ; 6.0 # Nd NEW TAI LUE DIGIT SIX
+1B56 ; 6.0 # Nd BALINESE DIGIT SIX
2076 ; 6.0 # No SUPERSCRIPT SIX
2086 ; 6.0 # No SUBSCRIPT SIX
2165 ; 6.0 # Nl ROMAN NUMERAL SIX
@@ -535,6 +610,14 @@ FF15 ; 5.0 # Nd FULLWIDTH DIGIT FIVE
FF16 ; 6.0 # Nd FULLWIDTH DIGIT SIX
1010C ; 6.0 # No AEGEAN NUMBER SIX
104A6 ; 6.0 # Nd OSMANYA DIGIT SIX
+12404 ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX ASH
+1240B ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX DISH
+12411 ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX U
+1241A ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX GESH2
+12428 ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX SHAR2
+12440 ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9
+1244E ; 6.0 # Nl CUNEIFORM NUMERIC SIGN SIX ASH TENU
+1D365 ; 6.0 # No COUNTING ROD UNIT DIGIT SIX
1D7D4 ; 6.0 # Nd MATHEMATICAL BOLD DIGIT SIX
1D7DE ; 6.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
1D7E8 ; 6.0 # Nd MATHEMATICAL SANS-SERIF DIGIT SIX
@@ -542,7 +625,7 @@ FF16 ; 6.0 # Nd FULLWIDTH DIGIT SIX
1D7FC ; 6.0 # Nd MATHEMATICAL MONOSPACE DIGIT SIX
20AEA ; 6.0 # Lo CJK UNIFIED IDEOGRAPH-20AEA
-# Total code points: 48
+# Total code points: 58
# ================================================
@@ -555,6 +638,7 @@ FF16 ; 6.0 # Nd FULLWIDTH DIGIT SIX
0037 ; 7.0 # Nd DIGIT SEVEN
0667 ; 7.0 # Nd ARABIC-INDIC DIGIT SEVEN
06F7 ; 7.0 # Nd EXTENDED ARABIC-INDIC DIGIT SEVEN
+07C7 ; 7.0 # Nd NKO DIGIT SEVEN
096D ; 7.0 # Nd DEVANAGARI DIGIT SEVEN
09ED ; 7.0 # Nd BENGALI DIGIT SEVEN
0A6D ; 7.0 # Nd GURMUKHI DIGIT SEVEN
@@ -574,6 +658,7 @@ FF16 ; 6.0 # Nd FULLWIDTH DIGIT SIX
1817 ; 7.0 # Nd MONGOLIAN DIGIT SEVEN
194D ; 7.0 # Nd LIMBU DIGIT SEVEN
19D7 ; 7.0 # Nd NEW TAI LUE DIGIT SEVEN
+1B57 ; 7.0 # Nd BALINESE DIGIT SEVEN
2077 ; 7.0 # No SUPERSCRIPT SEVEN
2087 ; 7.0 # No SUBSCRIPT SEVEN
2166 ; 7.0 # Nl ROMAN NUMERAL SEVEN
@@ -594,6 +679,13 @@ FF16 ; 6.0 # Nd FULLWIDTH DIGIT SIX
FF17 ; 7.0 # Nd FULLWIDTH DIGIT SEVEN
1010D ; 7.0 # No AEGEAN NUMBER SEVEN
104A7 ; 7.0 # Nd OSMANYA DIGIT SEVEN
+12405 ; 7.0 # Nl CUNEIFORM NUMERIC SIGN SEVEN ASH
+1240C ; 7.0 # Nl CUNEIFORM NUMERIC SIGN SEVEN DISH
+12412 ; 7.0 # Nl CUNEIFORM NUMERIC SIGN SEVEN U
+1241B ; 7.0 # Nl CUNEIFORM NUMERIC SIGN SEVEN GESH2
+12429 ; 7.0 # Nl CUNEIFORM NUMERIC SIGN SEVEN SHAR2
+12441..12443 ; 7.0 # Nl [3] CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3..CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B
+1D366 ; 7.0 # No COUNTING ROD UNIT DIGIT SEVEN
1D7D5 ; 7.0 # Nd MATHEMATICAL BOLD DIGIT SEVEN
1D7DF ; 7.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
1D7E9 ; 7.0 # Nd MATHEMATICAL SANS-SERIF DIGIT SEVEN
@@ -601,7 +693,7 @@ FF17 ; 7.0 # Nd FULLWIDTH DIGIT SEVEN
1D7FD ; 7.0 # Nd MATHEMATICAL MONOSPACE DIGIT SEVEN
20001 ; 7.0 # Lo CJK UNIFIED IDEOGRAPH-20001
-# Total code points: 48
+# Total code points: 59
# ================================================
@@ -614,6 +706,7 @@ FF17 ; 7.0 # Nd FULLWIDTH DIGIT SEVEN
0038 ; 8.0 # Nd DIGIT EIGHT
0668 ; 8.0 # Nd ARABIC-INDIC DIGIT EIGHT
06F8 ; 8.0 # Nd EXTENDED ARABIC-INDIC DIGIT EIGHT
+07C8 ; 8.0 # Nd NKO DIGIT EIGHT
096E ; 8.0 # Nd DEVANAGARI DIGIT EIGHT
09EE ; 8.0 # Nd BENGALI DIGIT EIGHT
0A6E ; 8.0 # Nd GURMUKHI DIGIT EIGHT
@@ -633,6 +726,7 @@ FF17 ; 7.0 # Nd FULLWIDTH DIGIT SEVEN
1818 ; 8.0 # Nd MONGOLIAN DIGIT EIGHT
194E ; 8.0 # Nd LIMBU DIGIT EIGHT
19D8 ; 8.0 # Nd NEW TAI LUE DIGIT EIGHT
+1B58 ; 8.0 # Nd BALINESE DIGIT EIGHT
2078 ; 8.0 # No SUPERSCRIPT EIGHT
2088 ; 8.0 # No SUBSCRIPT EIGHT
2167 ; 8.0 # Nl ROMAN NUMERAL EIGHT
@@ -652,13 +746,20 @@ FF17 ; 7.0 # Nd FULLWIDTH DIGIT SEVEN
FF18 ; 8.0 # Nd FULLWIDTH DIGIT EIGHT
1010E ; 8.0 # No AEGEAN NUMBER EIGHT
104A8 ; 8.0 # Nd OSMANYA DIGIT EIGHT
+12406 ; 8.0 # Nl CUNEIFORM NUMERIC SIGN EIGHT ASH
+1240D ; 8.0 # Nl CUNEIFORM NUMERIC SIGN EIGHT DISH
+12413 ; 8.0 # Nl CUNEIFORM NUMERIC SIGN EIGHT U
+1241C ; 8.0 # Nl CUNEIFORM NUMERIC SIGN EIGHT GESH2
+1242A ; 8.0 # Nl CUNEIFORM NUMERIC SIGN EIGHT SHAR2
+12444..12445 ; 8.0 # Nl [2] CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU..CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3
+1D367 ; 8.0 # No COUNTING ROD UNIT DIGIT EIGHT
1D7D6 ; 8.0 # Nd MATHEMATICAL BOLD DIGIT EIGHT
1D7E0 ; 8.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
1D7EA ; 8.0 # Nd MATHEMATICAL SANS-SERIF DIGIT EIGHT
1D7F4 ; 8.0 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
1D7FE ; 8.0 # Nd MATHEMATICAL MONOSPACE DIGIT EIGHT
-# Total code points: 46
+# Total code points: 56
# ================================================
@@ -671,6 +772,7 @@ FF18 ; 8.0 # Nd FULLWIDTH DIGIT EIGHT
0039 ; 9.0 # Nd DIGIT NINE
0669 ; 9.0 # Nd ARABIC-INDIC DIGIT NINE
06F9 ; 9.0 # Nd EXTENDED ARABIC-INDIC DIGIT NINE
+07C9 ; 9.0 # Nd NKO DIGIT NINE
096F ; 9.0 # Nd DEVANAGARI DIGIT NINE
09EF ; 9.0 # Nd BENGALI DIGIT NINE
0A6F ; 9.0 # Nd GURMUKHI DIGIT NINE
@@ -690,6 +792,7 @@ FF18 ; 8.0 # Nd FULLWIDTH DIGIT EIGHT
1819 ; 9.0 # Nd MONGOLIAN DIGIT NINE
194F ; 9.0 # Nd LIMBU DIGIT NINE
19D9 ; 9.0 # Nd NEW TAI LUE DIGIT NINE
+1B59 ; 9.0 # Nd BALINESE DIGIT NINE
2079 ; 9.0 # No SUPERSCRIPT NINE
2089 ; 9.0 # No SUBSCRIPT NINE
2168 ; 9.0 # Nl ROMAN NUMERAL NINE
@@ -710,13 +813,20 @@ FF18 ; 8.0 # Nd FULLWIDTH DIGIT EIGHT
FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
1010F ; 9.0 # No AEGEAN NUMBER NINE
104A9 ; 9.0 # Nd OSMANYA DIGIT NINE
+12407 ; 9.0 # Nl CUNEIFORM NUMERIC SIGN NINE ASH
+1240E ; 9.0 # Nl CUNEIFORM NUMERIC SIGN NINE DISH
+12414 ; 9.0 # Nl CUNEIFORM NUMERIC SIGN NINE U
+1241D ; 9.0 # Nl CUNEIFORM NUMERIC SIGN NINE GESH2
+1242B ; 9.0 # Nl CUNEIFORM NUMERIC SIGN NINE SHAR2
+12446..12449 ; 9.0 # Nl [4] CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU..CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A
+1D368 ; 9.0 # No COUNTING ROD UNIT DIGIT NINE
1D7D7 ; 9.0 # Nd MATHEMATICAL BOLD DIGIT NINE
1D7E1 ; 9.0 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
1D7EB ; 9.0 # Nd MATHEMATICAL SANS-SERIF DIGIT NINE
1D7F5 ; 9.0 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
1D7FF ; 9.0 # Nd MATHEMATICAL MONOSPACE DIGIT NINE
-# Total code points: 47
+# Total code points: 59
# ================================================
@@ -744,9 +854,11 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
10160..10164 ; 10.0 # Nl [5] GREEK ACROPHONIC TROEZENIAN TEN..GREEK ACROPHONIC THESPIAN TEN
10322 ; 10.0 # No OLD ITALIC NUMERAL TEN
103D3 ; 10.0 # Nl OLD PERSIAN NUMBER TEN
+10917 ; 10.0 # No PHOENICIAN NUMBER TEN
10A44 ; 10.0 # No KHAROSHTHI NUMBER TEN
+1D369 ; 10.0 # No COUNTING ROD TENS DIGIT ONE
-# Total code points: 29
+# Total code points: 31
# ================================================
@@ -849,9 +961,11 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
5EFF ; 20.0 # Lo CJK UNIFIED IDEOGRAPH-5EFF
10111 ; 20.0 # No AEGEAN NUMBER TWENTY
103D4 ; 20.0 # Nl OLD PERSIAN NUMBER TWENTY
+10918 ; 20.0 # No PHOENICIAN NUMBER TWENTY
10A45 ; 20.0 # No KHAROSHTHI NUMBER TWENTY
+1D36A ; 20.0 # No COUNTING ROD TENS DIGIT TWO
-# Total code points: 11
+# Total code points: 13
# ================================================
@@ -915,9 +1029,10 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
5345 ; 30.0 # Lo CJK UNIFIED IDEOGRAPH-5345
10112 ; 30.0 # No AEGEAN NUMBER THIRTY
10165 ; 30.0 # Nl GREEK ACROPHONIC THESPIAN THIRTY
+1D36B ; 30.0 # No COUNTING ROD TENS DIGIT THREE
20983 ; 30.0 # Lo CJK UNIFIED IDEOGRAPH-20983
-# Total code points: 7
+# Total code points: 8
# ================================================
@@ -979,10 +1094,11 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
32B5 ; 40.0 # No CIRCLED NUMBER FORTY
534C ; 40.0 # Lo CJK UNIFIED IDEOGRAPH-534C
10113 ; 40.0 # No AEGEAN NUMBER FORTY
+1D36C ; 40.0 # No COUNTING ROD TENS DIGIT FOUR
2098C ; 40.0 # Lo CJK UNIFIED IDEOGRAPH-2098C
2099C ; 40.0 # Lo CJK UNIFIED IDEOGRAPH-2099C
-# Total code points: 6
+# Total code points: 7
# ================================================
@@ -1051,36 +1167,42 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
10166..10169 ; 50.0 # Nl [4] GREEK ACROPHONIC TROEZENIAN FIFTY..GREEK ACROPHONIC THESPIAN FIFTY
10174 ; 50.0 # Nl GREEK ACROPHONIC STRATIAN FIFTY MNAS
10323 ; 50.0 # No OLD ITALIC NUMERAL FIFTY
+1D36D ; 50.0 # No COUNTING ROD TENS DIGIT FIVE
-# Total code points: 14
+# Total code points: 15
# ================================================
1377 ; 60.0 # No ETHIOPIC NUMBER SIXTY
10115 ; 60.0 # No AEGEAN NUMBER SIXTY
+1D36E ; 60.0 # No COUNTING ROD TENS DIGIT SIX
-# Total code points: 2
+# Total code points: 3
# ================================================
1378 ; 70.0 # No ETHIOPIC NUMBER SEVENTY
10116 ; 70.0 # No AEGEAN NUMBER SEVENTY
+1D36F ; 70.0 # No COUNTING ROD TENS DIGIT SEVEN
-# Total code points: 2
+# Total code points: 3
# ================================================
1379 ; 80.0 # No ETHIOPIC NUMBER EIGHTY
10117 ; 80.0 # No AEGEAN NUMBER EIGHTY
+1D370 ; 80.0 # No COUNTING ROD TENS DIGIT EIGHT
-# Total code points: 2
+# Total code points: 3
# ================================================
137A ; 90.0 # No ETHIOPIC NUMBER NINETY
10118 ; 90.0 # No AEGEAN NUMBER NINETY
+10341 ; 90.0 # Nl GOTHIC LETTER NINETY
+1D371 ; 90.0 # No COUNTING ROD TENS DIGIT NINE
-# Total code points: 2
+# Total code points: 4
# ================================================
@@ -1096,9 +1218,10 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
10152 ; 100.0 # Nl GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS
1016A ; 100.0 # Nl GREEK ACROPHONIC THESPIAN ONE HUNDRED
103D5 ; 100.0 # Nl OLD PERSIAN NUMBER HUNDRED
+10919 ; 100.0 # No PHOENICIAN NUMBER ONE HUNDRED
10A46 ; 100.0 # No KHAROSHTHI NUMBER ONE HUNDRED
-# Total code points: 13
+# Total code points: 14
# ================================================
@@ -1296,3 +1419,5 @@ FF19 ; 9.0 # Nd FULLWIDTH DIGIT NINE
5146 ; 1000000000000.0 # Lo CJK UNIFIED IDEOGRAPH-5146
# Total code points: 1
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/EastAsianWidth.txt b/Build/source/libs/icu-xetex/data/unidata/EastAsianWidth.txt
index 0bc4dc395c9..13fe27ad479 100644
--- a/Build/source/libs/icu-xetex/data/unidata/EastAsianWidth.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/EastAsianWidth.txt
@@ -1,12 +1,12 @@
-# EastAsianWidth-4.1.0.txt
-# Date: 2005-03-17, 15:21:00 PST [KW]
+# EastAsianWidth-5.0.0.txt
+# Date: 2006-02-15, 14:39:00 PST [KW]
#
# East Asian Width Properties
#
# This file is an informative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# The format is two fields separated by a semicolon.
@@ -22,6 +22,8 @@
# in identifying the characters.
#
# See UAX #11: East Asian Character Width, for more information.
+#
+# @missing: 0000..10FFFF; N
0000..001F;N
0020..007E;Na
007F..00A0;N
@@ -111,8 +113,7 @@
01DA;A
01DB;N
01DC;A
-01DD..0241;N
-0250;N
+01DD..0250;N
0251;A
0252..0260;N
0261;A
@@ -135,8 +136,7 @@
02E0..02FF;N
0300..036F;A
0374..0375;N
-037A;N
-037E;N
+037A..037E;N
0384..038A;N
038C;N
038E..0390;N
@@ -154,15 +154,12 @@
0450;N
0451;A
0452..0486;N
-0488..04CE;N
-04D0..04F9;N
-0500..050F;N
+0488..0513;N
0531..0556;N
0559..055F;N
0561..0587;N
0589..058A;N
-0591..05B9;N
-05BB..05C7;N
+0591..05C7;N
05D0..05EA;N
05F0..05F4;N
0600..0603;N
@@ -175,11 +172,12 @@
070F..074A;N
074D..076D;N
0780..07B1;N
+07C0..07FA;N
0901..0939;N
093C..094D;N
0950..0954;N
0958..0970;N
-097D;N
+097B..097F;N
0981..0983;N
0985..098C;N
098F..0990;N
@@ -275,8 +273,9 @@
0CCA..0CCD;N
0CD5..0CD6;N
0CDE;N
-0CE0..0CE1;N
+0CE0..0CE3;N
0CE6..0CEF;N
+0CF1..0CF2;N
0D02..0D03;N
0D05..0D0C;N
0D0E..0D10;N
@@ -385,8 +384,10 @@
19D0..19D9;N
19DE..1A1B;N
1A1E..1A1F;N
-1D00..1DC3;N
-1E00..1E9B;N
+1B00..1B4B;N
+1B50..1B7C;N
+1D00..1DCA;N
+1DFE..1E9B;N
1EA0..1EF9;N
1F00..1F15;N
1F18..1F1D;N
@@ -440,7 +441,7 @@
20AA..20AB;N
20AC;A
20AD..20B5;N
-20D0..20EB;N
+20D0..20EF;N
2100..2102;N
2103;A
2104;N
@@ -457,7 +458,7 @@
2126;A
2127..212A;N
212B;A
-212C..214C;N
+212C..214E;N
2153..2154;A
2155..215A;N
215B..215E;A
@@ -465,7 +466,7 @@
2160..216B;A
216C..216F;N
2170..2179;A
-217A..2183;N
+217A..2184;N
2190..2199;A
219A..21B7;N
21B8..21B9;A
@@ -535,7 +536,7 @@
2312;A
2313..2328;N
2329..232A;W
-232B..23DB;N
+232B..23E7;N
2400..2426;N
2440..244A;N
2460..24E9;A
@@ -596,7 +597,7 @@
266E;N
266F;A
2670..269C;N
-26A0..26B1;N
+26A0..26B2;N
2701..2704;N
2706..2709;N
270C..2727;N
@@ -612,14 +613,17 @@
2780..2794;N
2798..27AF;N
27B1..27BE;N
-27C0..27C6;N
+27C0..27CA;N
27D0..27E5;N
27E6..27EB;Na
27F0..2984;N
2985..2986;Na
-2987..2B13;N
+2987..2B1A;N
+2B20..2B23;N
2C00..2C2E;N
2C30..2C5E;N
+2C60..2C6C;N
+2C74..2C77;N
2C80..2CEA;N
2CF9..2D25;N
2D30..2D65;N
@@ -657,8 +661,10 @@
4E00..9FBB;W
A000..A48C;W
A490..A4C6;W
-A700..A716;N
+A700..A71A;N
+A720..A721;N
A800..A82B;N
+A840..A877;N
AC00..D7A3;W
D800..DB7F;N
DB80..DBFF;N
@@ -722,6 +728,8 @@ FFFD;A
10837..10838;N
1083C;N
1083F;N
+10900..10919;N
+1091F;N
10A00..10A03;N
10A05..10A06;N
10A0C..10A13;N
@@ -730,11 +738,15 @@ FFFD;A
10A38..10A3A;N
10A3F..10A47;N
10A50..10A58;N
+12000..1236E;N
+12400..12462;N
+12470..12473;N
1D000..1D0F5;N
1D100..1D126;N
1D12A..1D1DD;N
1D200..1D245;N
1D300..1D356;N
+1D360..1D371;N
1D400..1D454;N
1D456..1D49C;N
1D49E..1D49F;N
@@ -754,7 +766,7 @@ FFFD;A
1D546;N
1D54A..1D550;N
1D552..1D6A5;N
-1D6A8..1D7C9;N
+1D6A8..1D7CB;N
1D7CE..1D7FF;N
20000..2A6D6;W
2A6D7..2F7FF;W
@@ -766,3 +778,5 @@ E0020..E007F;N
E0100..E01EF;A
F0000..FFFFD;A
100000..10FFFD;A
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/FractionalUCA.txt b/Build/source/libs/icu-xetex/data/unidata/FractionalUCA.txt
index a41a9b9cc97..a009f7d9099 100644
--- a/Build/source/libs/icu-xetex/data/unidata/FractionalUCA.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/FractionalUCA.txt
@@ -1,6 +1,7 @@
# Fractional UCA Table, generated from standard UCA
-# 2005-05-03, 19:14:19 GMT [MD]
-# VERSION: UCA=4.1.0, UCD=4.1.0
+# 2006-06-10, 20:18:04 GMT [MD]
+# VERSION: UCA=5.0.0, UCD=5.0.0
+# Copyright (c) 1991-2006 Unicode, Inc.
# Generated processed version, as described in ICU design document.
# NOTES
@@ -17,7 +18,7 @@
# - Differs from previous version in that MAX value was introduced at 1F.
# All tertiary values are shifted down by 1, filling the gap at 7!
-[UCA version = 4.1.0]
+[UCA version = 5.0.0]
0000; [,,]
0001; [,,]
@@ -160,6 +161,15 @@
180C; [,,]
180D; [,,]
180E; [,,]
+1B6B; [,,]
+1B6C; [,,]
+1B6D; [,,]
+1B6E; [,,]
+1B6F; [,,]
+1B70; [,,]
+1B71; [,,]
+1B72; [,,]
+1B73; [,,]
200B; [,,]
200C; [,,]
200D; [,,]
@@ -750,219 +760,248 @@ FE20; [, D3 99, 05]
1DC1; [, D3 C9, 05]
1DC2; [, D3 D9, 05]
1DC3; [, D3 E9, 05]
-0483; [, D3 F9, 05]
-0484; [, D4 0D, 05]
-0485; [, D4 1D, 05]
-0486; [, D4 2D, 05]
-05B0; [, D4 3D, 05]
-05B1; [, D4 4D, 05]
-05B2; [, D4 5D, 05]
-05B3; [, D4 6D, 05]
-05B4; [, D4 7D, 05]
-05B5; [, D4 8D, 05]
-05B6; [, D4 9D, 05]
-05B7; [, D4 AD, 05]
-05B8; [, D4 BD, 05]
-05C7; [, D4 CD, 05]
-05B9; [, D4 DD, 05]
-05BB; [, D4 ED, 05]
-05C2; [, D4 FD, 05]
-05C1; [, D5 11, 05]
-05BC; [, D5 21, 05]
-05BF; [, D5 31, 05]
-FB1E; [, D5 41, 05]
-064B; [, D5 51, 05]
-FE71; [, D5 51, 2F]
-FE70; [, D5 51, 33]
-064C; [, D5 61, 05]
-FE72; [, D5 61, 33]
-064D; [, D5 71, 05]
-FE74; [, D5 71, 33]
-064E; [, D5 81, 05]
-FE77; [, D5 81, 2F]
-FE76; [, D5 81, 33]
-064F; [, D5 91, 05]
-FE79; [, D5 91, 2F]
-FE78; [, D5 91, 33]
-0650; [, D5 A1, 05]
-FE7B; [, D5 A1, 2F]
-FE7A; [, D5 A1, 33]
-0651; [, D5 B1, 05]
-FCF2; [, D5 B1, 2F]
-FCF3; [, D5 B1, 2F]
-FCF4; [, D5 B1, 2F]
-FE7D; [, D5 B1, 2F]
-FC5E; [, D5 B1, 33]
-FC5F; [, D5 B1, 33]
-FC60; [, D5 B1, 33]
-FC61; [, D5 B1, 33]
-FC62; [, D5 B1, 33]
-FE7C; [, D5 B1, 33]
-FC63; [, D5 B1, 33][, D6 95, 33]
-0652; [, D5 C1, 05]
-FE7F; [, D5 C1, 2F]
-FE7E; [, D5 C1, 33]
-0653; [, D5 D1, 05]
-0654; [, D5 E1, 05]
-0655; [, D5 F1, 05]
-0656; [, D6 05, 05]
-0657; [, D6 15, 05]
-0658; [, D6 25, 05]
-0659; [, D6 35, 05]
-065A; [, D6 45, 05]
-065B; [, D6 55, 05]
-065C; [, D6 65, 05]
-065D; [, D6 75, 05]
-065E; [, D6 85, 05]
-0670; [, D6 95, 05]
-0711; [, D6 A5, 05]
-0730; [, D6 B5, 05]
-0731; [, D6 C5, 05]
-0732; [, D6 D5, 05]
-0733; [, D6 E5, 05]
-0734; [, D6 F5, 05]
-0735; [, D7 09, 05]
-0736; [, D7 19, 05]
-0737; [, D7 29, 05]
-0738; [, D7 39, 05]
-0739; [, D7 49, 05]
-073A; [, D7 59, 05]
-073B; [, D7 69, 05]
-073C; [, D7 79, 05]
-073D; [, D7 89, 05]
-073E; [, D7 99, 05]
-073F; [, D7 A9, 05]
-0740; [, D7 B9, 05]
-0741; [, D7 C9, 05]
-0742; [, D7 D9, 05]
-0743; [, D7 E9, 05]
-0744; [, D7 F9, 05]
-0745; [, D8 0D, 05]
-0746; [, D8 1D, 05]
-0747; [, D8 2D, 05]
-0748; [, D8 3D, 05]
-0749; [, D8 4D, 05]
-074A; [, D8 5D, 05]
-093C; [, D8 6D, 05]
-0901; [, D8 7D, 05]
-0902; [, D8 8D, 05]
-0903; [, D8 9D, 05]
-0951; [, D8 AD, 05]
-0952; [, D8 BD, 05]
-0953; [, D8 CD, 05]
-0954; [, D8 DD, 05]
-09BC; [, D8 ED, 05]
-0981; [, D8 FD, 05]
-0982; [, D9 11, 05]
-0983; [, D9 21, 05]
-0A3C; [, D9 31, 05]
-0A01; [, D9 41, 05]
-0A02; [, D9 51, 05]
-0A03; [, D9 61, 05]
-0A70; [, D9 71, 05]
-0A71; [, D9 81, 05]
-0ABC; [, D9 91, 05]
-0A81; [, D9 A1, 05]
-0A82; [, D9 B1, 05]
-0A83; [, D9 C1, 05]
-0B3C; [, D9 D1, 05]
-0B01; [, D9 E1, 05]
-0B02; [, D9 F1, 05]
-0B03; [, DA 05, 05]
-0B82; [, DA 15, 05]
-0C01; [, DA 25, 05]
-0C02; [, DA 35, 05]
-0C03; [, DA 45, 05]
-0CBC; [, DA 55, 05]
-0C82; [, DA 65, 05]
-0C83; [, DA 75, 05]
-0D02; [, DA 85, 05]
-0D03; [, DA 95, 05]
-0D82; [, DA A5, 05]
-0D83; [, DA B5, 05]
-A80B; [, DA C5, 05]
-D802 DE0D; [, DA D5, 05]
-D802 DE0E; [, DA E5, 05]
-D802 DE0F; [, DA F5, 05]
-D802 DE38; [, DB 09, 05]
-D802 DE39; [, DB 19, 05]
-D802 DE3A; [, DB 29, 05]
-0E4E; [, DB 39, 05]
-0E47; [, DB 49, 05]
-0E48; [, DB 59, 05]
-0E49; [, DB 69, 05]
-0E4A; [, DB 79, 05]
-0E4B; [, DB 89, 05]
-0E4C; [, DB 99, 05]
-0E4D; [, DB A9, 05]
-0EC8; [, DB B9, 05]
-0EC9; [, DB C9, 05]
-0ECA; [, DB D9, 05]
-0ECB; [, DB E9, 05]
-0ECC; [, DB F9, 05]
-0ECD; [, DC 0D, 05]
-0F39; [, DC 1D, 05]
-0F7E; [, DC 2D, 05]
-0F7F; [, DC 3D, 05]
-1036; [, DC 4D, 05]
-1037; [, DC 5D, 05]
-1038; [, DC 6D, 05]
-135F; [, DC 7D, 05]
-17C6; [, DC 8D, 05]
-17C7; [, DC 9D, 05]
-17C8; [, DC AD, 05]
-17C9; [, DC BD, 05]
-17CA; [, DC CD, 05]
-17CB; [, DC DD, 05]
-17CC; [, DC ED, 05]
-17CD; [, DC FD, 05]
-17CE; [, DD 11, 05]
-17CF; [, DD 21, 05]
-17D0; [, DD 31, 05]
-17D1; [, DD 41, 05]
-17D3; [, DD 51, 05]
-17DD; [, DF 69, 05]
-1939; [, DF 79, 05]
-193A; [, DF 89, 05]
-193B; [, DF 99, 05]
-302A; [, E0 2D, 05]
-302B; [, E0 3D, 05]
-302C; [, E0 4D, 05]
-302D; [, E0 5D, 05]
-302E; [, E0 6D, 05]
-302F; [, E0 7D, 05]
-3099; [, E0 8D, 05]
-FF9E; [, E0 8D, A3]
-309A; [, E0 9D, 05]
-FF9F; [, E0 9D, A3]
-20D0; [, E0 AD, 05]
-20D1; [, E0 BD, 05]
-20D2; [, E0 CD, 05]
-20D3; [, E0 DD, 05]
-20D4; [, E0 ED, 05]
-20D5; [, E0 FD, 05]
-20D6; [, E1 11, 05]
-20D7; [, E1 21, 05]
-20D8; [, E1 31, 05]
-20D9; [, E1 41, 05]
-20DA; [, E1 51, 05]
-20DB; [, E1 61, 05]
-20DC; [, E1 71, 05]
-20DD; [, E1 81, 05]
-20DE; [, E1 91, 05]
-20DF; [, E1 A1, 05]
-20E0; [, E1 B1, 05]
-20E1; [, E1 C1, 05]
-20E2; [, E1 D1, 05]
-20E3; [, E1 E1, 05]
-20E4; [, E1 F1, 05]
-20E5; [, E2 05, 05]
-20E6; [, E2 15, 05]
-20E7; [, E2 25, 05]
-20E8; [, E2 35, 05]
-20E9; [, E2 45, 05]
-20EA; [, E2 55, 05]
-20EB; [, E2 65, 05]
+1DC4; [, D3 F9, 05]
+1DC5; [, D4 0D, 05]
+1DC6; [, D4 1D, 05]
+1DC7; [, D4 2D, 05]
+1DC8; [, D4 3D, 05]
+1DC9; [, D4 4D, 05]
+1DCA; [, D4 5D, 05]
+1DFE; [, D4 6D, 05]
+1DFF; [, D4 7D, 05]
+0483; [, D4 8D, 05]
+0484; [, D4 9D, 05]
+0485; [, D4 AD, 05]
+0486; [, D4 BD, 05]
+05B0; [, D4 CD, 05]
+05B1; [, D4 DD, 05]
+05B2; [, D4 ED, 05]
+05B3; [, D4 FD, 05]
+05B4; [, D5 11, 05]
+05B5; [, D5 21, 05]
+05B6; [, D5 31, 05]
+05B7; [, D5 41, 05]
+05B8; [, D5 51, 05]
+05C7; [, D5 61, 05]
+05B9; [, D5 71, 05]
+05BA; [, D5 81, 05]
+05BB; [, D5 91, 05]
+05C2; [, D5 A1, 05]
+05C1; [, D5 B1, 05]
+05BC; [, D5 C1, 05]
+05BF; [, D5 D1, 05]
+FB1E; [, D5 E1, 05]
+064B; [, D5 F1, 05]
+FE71; [, D5 F1, 2F]
+FE70; [, D5 F1, 33]
+064C; [, D6 05, 05]
+FE72; [, D6 05, 33]
+064D; [, D6 15, 05]
+FE74; [, D6 15, 33]
+064E; [, D6 25, 05]
+FE77; [, D6 25, 2F]
+FE76; [, D6 25, 33]
+064F; [, D6 35, 05]
+FE79; [, D6 35, 2F]
+FE78; [, D6 35, 33]
+0650; [, D6 45, 05]
+FE7B; [, D6 45, 2F]
+FE7A; [, D6 45, 33]
+0651; [, D6 55, 05]
+FCF2; [, D6 55, 2F]
+FCF3; [, D6 55, 2F]
+FCF4; [, D6 55, 2F]
+FE7D; [, D6 55, 2F]
+FC5E; [, D6 55, 33]
+FC5F; [, D6 55, 33]
+FC60; [, D6 55, 33]
+FC61; [, D6 55, 33]
+FC62; [, D6 55, 33]
+FE7C; [, D6 55, 33]
+FC63; [, D6 55, 33][, D7 39, 33]
+0652; [, D6 65, 05]
+FE7F; [, D6 65, 2F]
+FE7E; [, D6 65, 33]
+0653; [, D6 75, 05]
+0654; [, D6 85, 05]
+0655; [, D6 95, 05]
+0656; [, D6 A5, 05]
+0657; [, D6 B5, 05]
+0658; [, D6 C5, 05]
+0659; [, D6 D5, 05]
+065A; [, D6 E5, 05]
+065B; [, D6 F5, 05]
+065C; [, D7 09, 05]
+065D; [, D7 19, 05]
+065E; [, D7 29, 05]
+0670; [, D7 39, 05]
+0711; [, D7 49, 05]
+0730; [, D7 59, 05]
+0731; [, D7 69, 05]
+0732; [, D7 79, 05]
+0733; [, D7 89, 05]
+0734; [, D7 99, 05]
+0735; [, D7 A9, 05]
+0736; [, D7 B9, 05]
+0737; [, D7 C9, 05]
+0738; [, D7 D9, 05]
+0739; [, D7 E9, 05]
+073A; [, D7 F9, 05]
+073B; [, D8 0D, 05]
+073C; [, D8 1D, 05]
+073D; [, D8 2D, 05]
+073E; [, D8 3D, 05]
+073F; [, D8 4D, 05]
+0740; [, D8 5D, 05]
+0741; [, D8 6D, 05]
+0742; [, D8 7D, 05]
+0743; [, D8 8D, 05]
+0744; [, D8 9D, 05]
+0745; [, D8 AD, 05]
+0746; [, D8 BD, 05]
+0747; [, D8 CD, 05]
+0748; [, D8 DD, 05]
+0749; [, D8 ED, 05]
+074A; [, D8 FD, 05]
+07EB; [, D9 11, 05]
+07EC; [, D9 21, 05]
+07ED; [, D9 31, 05]
+07EE; [, D9 41, 05]
+07EF; [, D9 51, 05]
+07F0; [, D9 61, 05]
+07F1; [, D9 71, 05]
+07F2; [, D9 81, 05]
+07F3; [, D9 91, 05]
+093C; [, D9 A1, 05]
+0901; [, D9 B1, 05]
+0902; [, D9 C1, 05]
+0903; [, D9 D1, 05]
+0951; [, D9 E1, 05]
+0952; [, D9 F1, 05]
+0953; [, DA 05, 05]
+0954; [, DA 15, 05]
+09BC; [, DA 25, 05]
+0981; [, DA 35, 05]
+0982; [, DA 45, 05]
+0983; [, DA 55, 05]
+0A3C; [, DA 65, 05]
+0A01; [, DA 75, 05]
+0A02; [, DA 85, 05]
+0A03; [, DA 95, 05]
+0A70; [, DA A5, 05]
+0A71; [, DA B5, 05]
+0ABC; [, DA C5, 05]
+0A81; [, DA D5, 05]
+0A82; [, DA E5, 05]
+0A83; [, DA F5, 05]
+0B3C; [, DB 09, 05]
+0B01; [, DB 19, 05]
+0B02; [, DB 29, 05]
+0B03; [, DB 39, 05]
+0B82; [, DB 49, 05]
+0C01; [, DB 59, 05]
+0C02; [, DB 69, 05]
+0C03; [, DB 79, 05]
+0CBC; [, DB 89, 05]
+0C82; [, DB 99, 05]
+0C83; [, DB A9, 05]
+0D02; [, DB B9, 05]
+0D03; [, DB C9, 05]
+0D82; [, DB D9, 05]
+0D83; [, DB E9, 05]
+1B34; [, DB F9, 05]
+1B00; [, DC 0D, 05]
+1B01; [, DC 1D, 05]
+1B02; [, DC 2D, 05]
+1B03; [, DC 3D, 05]
+1B04; [, DC 4D, 05]
+A80B; [, DC 5D, 05]
+D802 DE0D; [, DC 6D, 05]
+D802 DE0E; [, DC 7D, 05]
+D802 DE0F; [, DC 8D, 05]
+D802 DE38; [, DC 9D, 05]
+D802 DE39; [, DC AD, 05]
+D802 DE3A; [, DC BD, 05]
+0E4E; [, DC CD, 05]
+0E47; [, DC DD, 05]
+0E48; [, DC ED, 05]
+0E49; [, DC FD, 05]
+0E4A; [, DD 11, 05]
+0E4B; [, DD 21, 05]
+0E4C; [, DD 31, 05]
+0E4D; [, DD 41, 05]
+0EC8; [, DD 51, 05]
+0EC9; [, DF 69, 05]
+0ECA; [, DF 79, 05]
+0ECB; [, DF 89, 05]
+0ECC; [, DF 99, 05]
+0ECD; [, E0 2D, 05]
+0F39; [, E0 3D, 05]
+0F7E; [, E0 4D, 05]
+0F7F; [, E0 5D, 05]
+1036; [, E0 6D, 05]
+1037; [, E0 7D, 05]
+1038; [, E0 8D, 05]
+135F; [, E0 9D, 05]
+17C6; [, E0 AD, 05]
+17C7; [, E0 BD, 05]
+17C8; [, E0 CD, 05]
+17C9; [, E0 DD, 05]
+17CA; [, E0 ED, 05]
+17CB; [, E0 FD, 05]
+17CC; [, E1 11, 05]
+17CD; [, E1 21, 05]
+17CE; [, E1 31, 05]
+17CF; [, E1 41, 05]
+17D0; [, E1 51, 05]
+17D1; [, E1 61, 05]
+17D3; [, E1 71, 05]
+17DD; [, E1 81, 05]
+1939; [, E1 91, 05]
+193A; [, E1 A1, 05]
+193B; [, E1 B1, 05]
+302A; [, E1 C1, 05]
+302B; [, E1 D1, 05]
+302C; [, E1 E1, 05]
+302D; [, E1 F1, 05]
+302E; [, E2 05, 05]
+302F; [, E2 15, 05]
+3099; [, E2 25, 05]
+FF9E; [, E2 25, A3]
+309A; [, E2 35, 05]
+FF9F; [, E2 35, A3]
+20D0; [, E2 45, 05]
+20D1; [, E2 55, 05]
+20D2; [, E2 65, 05]
+20D3; [, E2 75, 05]
+20D4; [, E2 85, 05]
+20D5; [, E2 95, 05]
+20D6; [, E2 A5, 05]
+20D7; [, E2 B5, 05]
+20D8; [, E2 C5, 05]
+20D9; [, E2 D5, 05]
+20DA; [, E2 E5, 05]
+20DB; [, E2 F5, 05]
+20DC; [, E3 09, 05]
+20DD; [, E3 19, 05]
+20DE; [, E3 29, 05]
+20DF; [, E3 39, 05]
+20E0; [, E3 49, 05]
+20E1; [, E3 59, 05]
+20E2; [, E3 69, 05]
+20E3; [, E3 79, 05]
+20E4; [, E3 89, 05]
+20E5; [, E3 99, 05]
+20E6; [, E3 A9, 05]
+20E7; [, E3 B9, 05]
+20E8; [, E3 C9, 05]
+20E9; [, E3 D9, 05]
+20EA; [, E3 E9, 05]
+20EB; [, E3 F9, 05]
+20EC; [, E4 0D, 05]
+20ED; [, E4 1D, 05]
+20EE; [, E4 2D, 05]
+20EF; [, E4 3D, 05]
# START OF VARIABLE SECTION!!!
@@ -1003,23539 +1042,26065 @@ FF9F; [, E0 9D, A3]
0640; [07 62, 05, 05]
-0060; [07 64, 05, 05]
-1FEF; [07 64, 05, 05]
-FF40; [07 64, 05, 07]
+07FA; [07 64, 05, 05]
-00B4; [07 66, 05, 05]
-0384; [07 66, 05, 05]
-1FFD; [07 66, 05, 05]
+0060; [07 66, 05, 05]
+1FEF; [07 66, 05, 05]
+FF40; [07 66, 05, 07]
-02DC; [07 68, 05, 05]
+00B4; [07 68, 05, 05]
+0384; [07 68, 05, 05]
+1FFD; [07 68, 05, 05]
-005E; [07 6A, 05, 05]
-FF3E; [07 6A, 05, 07]
+02DC; [07 6A, 05, 05]
-00AF; [07 6C, 05, 05]
-FFE3; [07 6C, 05, 07]
+005E; [07 6C, 05, 05]
+FF3E; [07 6C, 05, 07]
-203E; [07 6E, 05, 05]
-FE49; [07 6E, 05, 09]
-FE4A; [07 6E, 05, 09]
-FE4B; [07 6E, 05, 09]
-FE4C; [07 6E, 05, 09]
+00AF; [07 6E, 05, 05]
+FFE3; [07 6E, 05, 07]
-02D8; [07 70, 05, 05]
+203E; [07 70, 05, 05]
+FE49; [07 70, 05, 09]
+FE4A; [07 70, 05, 09]
+FE4B; [07 70, 05, 09]
+FE4C; [07 70, 05, 09]
-02D9; [07 72, 05, 05]
+02D8; [07 72, 05, 05]
-00A8; [07 74, 05, 05]
-0385; [07 74, 05, 05][, 8D, 05]
-1FEE; [07 74, 05, 05][, 8D, 05]
-1FED; [07 74, 05, 05][, 8F, 05]
-1FC1; [07 74, 05, 05][, 9B, 05]
+02D9; [07 74, 05, 05]
-02DA; [07 76, 05, 05]
+00A8; [07 76, 05, 05]
+0385; [07 76, 05, 05][, 8D, 05]
+1FEE; [07 76, 05, 05][, 8D, 05]
+1FED; [07 76, 05, 05][, 8F, 05]
+1FC1; [07 76, 05, 05][, 9B, 05]
-02DD; [07 78, 05, 05]
+02DA; [07 78, 05, 05]
-1FBD; [07 7A, 05, 05]
-1FBF; [07 7A, 05, 05]
-1FCE; [07 7A, 05, 05][, 8D, 05]
-1FCD; [07 7A, 05, 05][, 8F, 05]
-1FCF; [07 7A, 05, 05][, 9B, 05]
+02DD; [07 7A, 05, 05]
-1FFE; [07 7C, 05, 05]
-1FDE; [07 7C, 05, 05][, 8D, 05]
-1FDD; [07 7C, 05, 05][, 8F, 05]
-1FDF; [07 7C, 05, 05][, 9B, 05]
+1FBD; [07 7C, 05, 05]
+1FBF; [07 7C, 05, 05]
+1FCE; [07 7C, 05, 05][, 8D, 05]
+1FCD; [07 7C, 05, 05][, 8F, 05]
+1FCF; [07 7C, 05, 05][, 9B, 05]
-00B8; [07 7E, 05, 05]
+1FFE; [07 7E, 05, 05]
+1FDE; [07 7E, 05, 05][, 8D, 05]
+1FDD; [07 7E, 05, 05][, 8F, 05]
+1FDF; [07 7E, 05, 05][, 9B, 05]
-02DB; [07 80, 05, 05]
+00B8; [07 80, 05, 05]
-005F; [07 82, 05, 05]
-FF3F; [07 82, 05, 07]
-FE4D; [07 82, 05, 09]
-FE4E; [07 82, 05, 09]
-FE4F; [07 82, 05, 09]
-FE33; [07 82, 05, 2B]
-FE34; [07 82, 05, 2B]
+02DB; [07 82, 05, 05]
-2017; [07 84, 05, 05]
+005F; [07 84, 05, 05]
+FF3F; [07 84, 05, 07]
+FE4D; [07 84, 05, 09]
+FE4E; [07 84, 05, 09]
+FE4F; [07 84, 05, 09]
+FE33; [07 84, 05, 2B]
+FE34; [07 84, 05, 2B]
-1FC0; [07 86, 05, 05]
+2017; [07 86, 05, 05]
-309B; [07 88, 05, 05]
+1FC0; [07 88, 05, 05]
-309C; [07 8A, 05, 05]
+309B; [07 8A, 05, 05]
-00AD; [07 8C, 05, 05]
+309C; [07 8C, 05, 05]
-002D; [07 8E, 05, 05]
-FF0D; [07 8E, 05, 07]
-FE63; [07 8E, 05, 1D]
+00AD; [07 8E, 05, 05]
-058A; [07 90, 05, 05]
+002D; [07 90, 05, 05]
+FF0D; [07 90, 05, 07]
+FE63; [07 90, 05, 1D]
-1806; [07 92, 05, 05]
+058A; [07 92, 05, 05]
-1807; [07 94, 05, 05]
+1B60; [07 94, 05, 05]
-2010; [07 96, 05, 05]
-2011; [07 96, 05, 35]
+1806; [07 96, 05, 05]
-2012; [07 98, 05, 05]
+1807; [07 98, 05, 05]
-2013; [07 9A, 05, 05]
-FE32; [07 9A, 05, 2B]
+2010; [07 9A, 05, 05]
+2011; [07 9A, 05, 35]
-2014; [07 9C, 05, 05]
-FE58; [07 9C, 05, 1D]
-FE31; [07 9C, 05, 2B]
+2012; [07 9C, 05, 05]
-2015; [07 9E, 05, 05]
+2013; [07 9E, 05, 05]
+FE32; [07 9E, 05, 2B]
-2053; [07 A0, 05, 05]
+2014; [07 A0, 05, 05]
+FE58; [07 A0, 05, 1D]
+FE31; [07 A0, 05, 2B]
-2E17; [07 A2, 05, 05]
+2015; [07 A2, 05, 05]
-301C; [07 A4, 05, 05]
+2053; [07 A4, 05, 05]
-3030; [07 A6, 05, 05]
+2E17; [07 A6, 05, 05]
-30A0; [07 A8, 05, 05]
+301C; [07 A8, 05, 05]
-30FB; [07 AA, 05, 05]
-FF65; [07 AA, 05, A3]
+3030; [07 AA, 05, 05]
-002C; [07 AC, 05, 05]
-FF0C; [07 AC, 05, 07]
-FE50; [07 AC, 05, 1D]
-FE10; [07 AC, 05, 2B]
+30A0; [07 AC, 05, 05]
-055D; [07 AE, 05, 05]
+30FB; [07 AE, 05, 05]
+FF65; [07 AE, 05, A3]
-060C; [07 B0, 05, 05]
+002C; [07 B0, 05, 05]
+FF0C; [07 B0, 05, 07]
+FE50; [07 B0, 05, 1D]
+FE10; [07 B0, 05, 2B]
-060D; [07 B2, 05, 05]
+055D; [07 B2, 05, 05]
-066B; [07 B4, 05, 05]
+060C; [07 B4, 05, 05]
-066C; [07 B6, 05, 05]
+060D; [07 B6, 05, 05]
-1802; [07 B8, 05, 05]
+066B; [07 B8, 05, 05]
-1808; [07 BA, 05, 05]
+066C; [07 BA, 05, 05]
-3001; [07 BC, 05, 05]
-FE51; [07 BC, 05, 1D]
-FF64; [07 BC, 05, A3]
-FE11; [07 BC, 05, 2B]
+07F8; [07 BC, 05, 05]
-FE45; [07 BE, 05, 05]
+1802; [07 BE, 05, 05]
-FE46; [07 C0, 05, 05]
+1808; [07 C0, 05, 05]
-003B; [07 C2, 05, 05]
-037E; [07 C2, 05, 05]
-FF1B; [07 C2, 05, 07]
-FE54; [07 C2, 05, 1D]
-FE14; [07 C2, 05, 2B]
+3001; [07 C2, 05, 05]
+FE51; [07 C2, 05, 1D]
+FF64; [07 C2, 05, A3]
+FE11; [07 C2, 05, 2B]
-061B; [07 C4, 05, 05]
+FE45; [07 C4, 05, 05]
-204F; [07 C6, 05, 05]
+FE46; [07 C6, 05, 05]
-003A; [07 C8, 05, 05]
-FF1A; [07 C8, 05, 07]
-FE55; [07 C8, 05, 1D]
-FE13; [07 C8, 05, 2B]
-2A74; [07 C8, 05, 09][07 C8, 05, 09][0C 83, 05, 3D]
+003B; [07 C8, 05, 05]
+037E; [07 C8, 05, 05]
+FF1B; [07 C8, 05, 07]
+FE54; [07 C8, 05, 1D]
+FE14; [07 C8, 05, 2B]
-0589; [07 CA, 05, 05]
+061B; [07 CA, 05, 05]
-061E; [07 CC, 05, 05]
+204F; [07 CC, 05, 05]
-0703; [07 CE, 05, 05]
+003A; [07 CE, 05, 05]
+FF1A; [07 CE, 05, 07]
+FE55; [07 CE, 05, 1D]
+FE13; [07 CE, 05, 2B]
+2A74; [07 CE, 05, 09][07 CE, 05, 09][0C E3, 05, 3D]
-0704; [07 D0, 05, 05]
+0589; [07 D0, 05, 05]
-0705; [07 D2, 05, 05]
+061E; [07 D2, 05, 05]
-0706; [07 D4, 05, 05]
+0703; [07 D4, 05, 05]
-0707; [07 D6, 05, 05]
+0704; [07 D6, 05, 05]
-0708; [07 D8, 05, 05]
+0705; [07 D8, 05, 05]
-1361; [07 DA, 05, 05]
+0706; [07 DA, 05, 05]
-1363; [07 DC, 05, 05]
+0707; [07 DC, 05, 05]
-1364; [07 DE, 05, 05]
+0708; [07 DE, 05, 05]
-1365; [07 E0, 05, 05]
+1361; [07 E0, 05, 05]
-1366; [07 E2, 05, 05]
+1363; [07 E2, 05, 05]
-1804; [07 E4, 05, 05]
+1364; [07 E4, 05, 05]
-1805; [07 E6, 05, 05]
+1365; [07 E6, 05, 05]
-0F14; [07 E8, 05, 05]
+1366; [07 E8, 05, 05]
-17D6; [07 EA, 05, 05]
+1804; [07 EA, 05, 05]
-16EB; [07 EC, 05, 05]
+1805; [07 EC, 05, 05]
-16EC; [07 EE, 05, 05]
+0F14; [07 EE, 05, 05]
-16ED; [07 F0, 05, 05]
+17D6; [07 F0, 05, 05]
-0021; [07 F2, 05, 05]
-FF01; [07 F2, 05, 07]
-FE57; [07 F2, 05, 1D]
-FE15; [07 F2, 05, 2B]
-203C; [07 F2, 05, 09][07 F2, 05, 09]
-2049; [07 F2, 05, 09][07 FA, 05, 09]
+1B5D; [07 F2, 05, 05]
-00A1; [07 F4, 05, 05]
+16EB; [07 F4, 05, 05]
-055C; [07 F6, 05, 05]
+16EC; [07 F6, 05, 05]
-1944; [07 F8, 05, 05]
+16ED; [07 F8, 05, 05]
-003F; [07 FA, 05, 05]
-FF1F; [07 FA, 05, 07]
-FE56; [07 FA, 05, 1D]
-FE16; [07 FA, 05, 2B]
-2048; [07 FA, 05, 09][07 F2, 05, 09]
-2047; [07 FA, 05, 09][07 FA, 05, 09]
+0021; [07 FA, 05, 05]
+FF01; [07 FA, 05, 07]
+FE57; [07 FA, 05, 1D]
+FE15; [07 FA, 05, 2B]
+203C; [07 FA, 05, 09][07 FA, 05, 09]
+2049; [07 FA, 05, 09][08 09, 05, 09]
-00BF; [07 FC, 05, 05]
+00A1; [07 FC, 05, 05]
-055E; [07 FE, 05, 05]
+055C; [07 FE, 05, 05]
-061F; [08 05, 05, 05]
+07F9; [08 05, 05, 05]
-0709; [08 07, 05, 05]
+1944; [08 07, 05, 05]
-1367; [08 09, 05, 05]
+003F; [08 09, 05, 05]
+FF1F; [08 09, 05, 07]
+FE56; [08 09, 05, 1D]
+FE16; [08 09, 05, 2B]
+2048; [08 09, 05, 09][07 FA, 05, 09]
+2047; [08 09, 05, 09][08 09, 05, 09]
-1945; [08 0B, 05, 05]
+00BF; [08 0B, 05, 05]
-2CFA; [08 0D, 05, 05]
+055E; [08 0D, 05, 05]
-2CFB; [08 0F, 05, 05]
+061F; [08 0F, 05, 05]
-203D; [08 11, 05, 05]
+0709; [08 11, 05, 05]
-002E; [08 13, 05, 05]
-FF0E; [08 13, 05, 07]
-2024; [08 13, 05, 09]
-FE52; [08 13, 05, 1D]
-2025; [08 13, 05, 09][08 13, 05, 09]
-FE30; [08 13, 05, 2B][08 13, 05, 2B]
-2026; [08 13, 05, 09][08 13, 05, 09][08 13, 05, 3D]
-FE19; [08 13, 05, 2B][08 13, 05, 2B][08 13, 05, 3D]
+1367; [08 13, 05, 05]
-1801; [08 15, 05, 05]
+1945; [08 15, 05, 05]
-06D4; [08 17, 05, 05]
+2CFA; [08 17, 05, 05]
-0701; [08 19, 05, 05]
+2CFB; [08 19, 05, 05]
-0702; [08 1B, 05, 05]
+203D; [08 1B, 05, 05]
-1362; [08 1D, 05, 05]
+002E; [08 1D, 05, 05]
+FF0E; [08 1D, 05, 07]
+2024; [08 1D, 05, 09]
+FE52; [08 1D, 05, 1D]
+2025; [08 1D, 05, 09][08 1D, 05, 09]
+FE30; [08 1D, 05, 2B][08 1D, 05, 2B]
+2026; [08 1D, 05, 09][08 1D, 05, 09][08 1D, 05, 3D]
+FE19; [08 1D, 05, 2B][08 1D, 05, 2B][08 1D, 05, 3D]
-1803; [08 1F, 05, 05]
+1801; [08 1F, 05, 05]
-1809; [08 21, 05, 05]
+06D4; [08 21, 05, 05]
-166E; [08 23, 05, 05]
+0701; [08 23, 05, 05]
-2CF9; [08 25, 05, 05]
+0702; [08 25, 05, 05]
-2CFE; [08 27, 05, 05]
+1362; [08 27, 05, 05]
-3002; [08 29, 05, 05]
-FF61; [08 29, 05, A3]
-FE12; [08 29, 05, 2B]
+1803; [08 29, 05, 05]
-00B7; [08 2B, 05, 05]
-0387; [08 2B, 05, 05]
+1809; [08 2B, 05, 05]
-0964; [08 2D, 05, 05]
+166E; [08 2D, 05, 05]
-0965; [08 2F, 05, 05]
+1B5C; [08 2F, 05, 05]
-1735; [08 31, 05, 05]
+2CF9; [08 31, 05, 05]
-1736; [08 33, 05, 05]
+2CFE; [08 33, 05, 05]
-104A; [08 35, 05, 05]
+3002; [08 35, 05, 05]
+FF61; [08 35, 05, A3]
+FE12; [08 35, 05, 2B]
-104B; [08 37, 05, 05]
+00B7; [08 37, 05, 05]
+0387; [08 37, 05, 05]
-17D4; [08 39, 05, 05]
+0964; [08 39, 05, 05]
-17D5; [08 3B, 05, 05]
+0965; [08 3B, 05, 05]
-D802 DE56; [08 3D, 05, 05]
+A876; [08 3D, 05, 05]
-D802 DE57; [08 3F, 05, 05]
+A877; [08 3F, 05, 05]
-0700; [08 41, 05, 05]
+1735; [08 41, 05, 05]
-10FB; [08 43, 05, 05]
+1736; [08 43, 05, 05]
-1360; [08 45, 05, 05]
+104A; [08 45, 05, 05]
-1368; [08 47, 05, 05]
+104B; [08 47, 05, 05]
-1A1E; [08 49, 05, 05]
+17D4; [08 49, 05, 05]
-1A1F; [08 4B, 05, 05]
+17D5; [08 4B, 05, 05]
-2055; [08 4D, 05, 05]
+1B5E; [08 4D, 05, 05]
-2056; [08 4F, 05, 05]
+1B5F; [08 4F, 05, 05]
-2058; [08 51, 05, 05]
+D802 DE56; [08 51, 05, 05]
-2059; [08 53, 05, 05]
+D802 DE57; [08 53, 05, 05]
-205A; [08 55, 05, 05]
+0700; [08 55, 05, 05]
-205B; [08 57, 05, 05]
+07F7; [08 57, 05, 05]
-205C; [08 59, 05, 05]
+10FB; [08 59, 05, 05]
-205D; [08 5B, 05, 05]
+1360; [08 5B, 05, 05]
-205E; [08 5D, 05, 05]
+1368; [08 5D, 05, 05]
-2CFC; [08 5F, 05, 05]
+1A1E; [08 5F, 05, 05]
-2CFF; [08 61, 05, 05]
+1A1F; [08 61, 05, 05]
-D800 DD00; [08 63, 05, 05]
+1B5A; [08 63, 05, 05]
-D800 DD01; [08 65, 05, 05]
+1B5B; [08 65, 05, 05]
-D800 DD02; [08 67, 05, 05]
+2055; [08 67, 05, 05]
-D800 DF9F; [08 69, 05, 05]
+2056; [08 69, 05, 05]
-D800 DFD0; [08 6B, 05, 05]
+2058; [08 6B, 05, 05]
-0027; [08 6D, 05, 05]
-FF07; [08 6D, 05, 07]
+2059; [08 6D, 05, 05]
-2018; [08 6F, 05, 05]
+205A; [08 6F, 05, 05]
-2019; [08 71, 05, 05]
+205B; [08 71, 05, 05]
-201A; [08 73, 05, 05]
+205C; [08 73, 05, 05]
-201B; [08 75, 05, 05]
+205D; [08 75, 05, 05]
-2039; [08 77, 05, 05]
+205E; [08 77, 05, 05]
-203A; [08 79, 05, 05]
+2CFC; [08 79, 05, 05]
-0022; [08 7B, 05, 05]
-FF02; [08 7B, 05, 07]
+2CFF; [08 7B, 05, 05]
-201C; [08 7D, 05, 05]
+D800 DD00; [08 7D, 05, 05]
-201D; [08 7F, 05, 05]
+D800 DD01; [08 7F, 05, 05]
-201E; [08 81, 05, 05]
+D800 DD02; [08 81, 05, 05]
-201F; [08 83, 05, 05]
+D800 DF9F; [08 83, 05, 05]
-301D; [08 85, 05, 05]
+D800 DFD0; [08 85, 05, 05]
-301E; [08 87, 05, 05]
+D802 DD1F; [08 87, 05, 05]
-301F; [08 89, 05, 05]
+D809 DC70; [08 89, 05, 05]
-00AB; [08 8B, 05, 05]
+D809 DC71; [08 8B, 05, 05]
-00BB; [08 8D, 05, 05]
+D809 DC72; [08 8D, 05, 05]
-0028; [08 8F, 05, 05]
-FF08; [08 8F, 05, 07]
-FE59; [08 8F, 05, 1D]
-207D; [08 8F, 05, 27]
-208D; [08 8F, 05, 29]
-FE35; [08 8F, 05, 2B]
-2474; [08 8F, 05, 09][25 7C, 05, 09][08 91, 05, 3D]
-247D; [08 8F, 05, 09][25 7C, 05, 09][25 7A, 05, 3D][08 91, 05, 3D]
-247E; [08 8F, 05, 09][25 7C, 05, 09][25 7C, 05, 3D][08 91, 05, 3D]
-247F; [08 8F, 05, 09][25 7C, 05, 09][25 7E, 05, 3D][08 91, 05, 3D]
-2480; [08 8F, 05, 09][25 7C, 05, 09][25 80, 05, 3D][08 91, 05, 3D]
-2481; [08 8F, 05, 09][25 7C, 05, 09][25 82, 05, 3D][08 91, 05, 3D]
-2482; [08 8F, 05, 09][25 7C, 05, 09][25 84, 05, 3D][08 91, 05, 3D]
-2483; [08 8F, 05, 09][25 7C, 05, 09][25 86, 05, 3D][08 91, 05, 3D]
-2484; [08 8F, 05, 09][25 7C, 05, 09][25 88, 05, 3D][08 91, 05, 3D]
-2485; [08 8F, 05, 09][25 7C, 05, 09][25 8A, 05, 3D][08 91, 05, 3D]
-2486; [08 8F, 05, 09][25 7C, 05, 09][25 8C, 05, 3D][08 91, 05, 3D]
-2475; [08 8F, 05, 09][25 7E, 05, 09][08 91, 05, 3D]
-2487; [08 8F, 05, 09][25 7E, 05, 09][25 7A, 05, 3D][08 91, 05, 3D]
-2476; [08 8F, 05, 09][25 80, 05, 09][08 91, 05, 3D]
-2477; [08 8F, 05, 09][25 82, 05, 09][08 91, 05, 3D]
-2478; [08 8F, 05, 09][25 84, 05, 09][08 91, 05, 3D]
-2479; [08 8F, 05, 09][25 86, 05, 09][08 91, 05, 3D]
-247A; [08 8F, 05, 09][25 88, 05, 09][08 91, 05, 3D]
-247B; [08 8F, 05, 09][25 8A, 05, 09][08 91, 05, 3D]
-247C; [08 8F, 05, 09][25 8C, 05, 09][08 91, 05, 3D]
-249C; [08 8F, 05, 09][28, 05, 09][08 91, 05, 3D]
-249D; [08 8F, 05, 09][2A, 05, 09][08 91, 05, 3D]
-249E; [08 8F, 05, 09][2C, 05, 09][08 91, 05, 3D]
-249F; [08 8F, 05, 09][2E, 05, 09][08 91, 05, 3D]
-24A0; [08 8F, 05, 09][30, 05, 09][08 91, 05, 3D]
-24A1; [08 8F, 05, 09][32, 05, 09][08 91, 05, 3D]
-24A2; [08 8F, 05, 09][34, 05, 09][08 91, 05, 3D]
-24A3; [08 8F, 05, 09][36, 05, 09][08 91, 05, 3D]
-24A4; [08 8F, 05, 09][38, 05, 09][08 91, 05, 3D]
-24A5; [08 8F, 05, 09][3A, 05, 09][08 91, 05, 3D]
-24A6; [08 8F, 05, 09][3C, 05, 09][08 91, 05, 3D]
-24A7; [08 8F, 05, 09][3E, 05, 09][08 91, 05, 3D]
-24A8; [08 8F, 05, 09][40, 05, 09][08 91, 05, 3D]
-24A9; [08 8F, 05, 09][42, 05, 09][08 91, 05, 3D]
-24AA; [08 8F, 05, 09][44, 05, 09][08 91, 05, 3D]
-24AB; [08 8F, 05, 09][46, 05, 09][08 91, 05, 3D]
-24AC; [08 8F, 05, 09][48, 05, 09][08 91, 05, 3D]
-24AD; [08 8F, 05, 09][4A, 05, 09][08 91, 05, 3D]
-24AE; [08 8F, 05, 09][4C, 05, 09][08 91, 05, 3D]
-24AF; [08 8F, 05, 09][4E, 05, 09][08 91, 05, 3D]
-24B0; [08 8F, 05, 09][50, 05, 09][08 91, 05, 3D]
-24B1; [08 8F, 05, 09][52, 05, 09][08 91, 05, 3D]
-24B2; [08 8F, 05, 09][54, 05, 09][08 91, 05, 3D]
-24B3; [08 8F, 05, 09][56, 05, 09][08 91, 05, 3D]
-24B4; [08 8F, 05, 09][58, 05, 09][08 91, 05, 3D]
-24B5; [08 8F, 05, 09][5A, 05, 09][08 91, 05, 3D]
-3200; [08 8F, 05, 09][90 20, 05, 09][08 91, 05, 3D]
-320E; [08 8F, 05, 09][90 20, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3201; [08 8F, 05, 09][90 24, 05, 09][08 91, 05, 3D]
-320F; [08 8F, 05, 09][90 24, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3202; [08 8F, 05, 09][90 26, 05, 09][08 91, 05, 3D]
-3210; [08 8F, 05, 09][90 26, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3203; [08 8F, 05, 09][90 2A, 05, 09][08 91, 05, 3D]
-3211; [08 8F, 05, 09][90 2A, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3204; [08 8F, 05, 09][90 2C, 05, 09][08 91, 05, 3D]
-3212; [08 8F, 05, 09][90 2C, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3205; [08 8F, 05, 09][90 2E, 05, 09][08 91, 05, 3D]
-3213; [08 8F, 05, 09][90 2E, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3206; [08 8F, 05, 09][90 32, 05, 09][08 91, 05, 3D]
-3214; [08 8F, 05, 09][90 32, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3207; [08 8F, 05, 09][90 36, 05, 09][08 91, 05, 3D]
-3215; [08 8F, 05, 09][90 36, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-321D; [08 8F, 05, 09][90 36, 05, 09][90 58, 05, 3D][90 38, 05, 3D][90 50, 05, 3D][90 7A, 05, 3D][08 91, 05, 3D]
-321E; [08 8F, 05, 09][90 36, 05, 09][90 58, 05, 3D][90 44, 05, 3D][90 62, 05, 3D][08 91, 05, 3D]
-3208; [08 8F, 05, 09][90 38, 05, 09][08 91, 05, 3D]
-3216; [08 8F, 05, 09][90 38, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-321C; [08 8F, 05, 09][90 38, 05, 09][90 62, 05, 3D][08 91, 05, 3D]
-3209; [08 8F, 05, 09][90 3C, 05, 09][08 91, 05, 3D]
-3217; [08 8F, 05, 09][90 3C, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-320A; [08 8F, 05, 09][90 3E, 05, 09][08 91, 05, 3D]
-3218; [08 8F, 05, 09][90 3E, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-320B; [08 8F, 05, 09][90 40, 05, 09][08 91, 05, 3D]
-3219; [08 8F, 05, 09][90 40, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-320C; [08 8F, 05, 09][90 42, 05, 09][08 91, 05, 3D]
-321A; [08 8F, 05, 09][90 42, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-320D; [08 8F, 05, 09][90 44, 05, 09][08 91, 05, 3D]
-321B; [08 8F, 05, 09][90 44, 05, 09][90 48, 05, 3D][08 91, 05, 3D]
-3220; [08 8F, 05, 09][E0 04 06, 05, 09][08 91, 05, 3D]
-3226; [08 8F, 05, 09][E0 04 0C, 05, 09][08 91, 05, 3D]
-3222; [08 8F, 05, 09][E0 04 18, 05, 09][08 91, 05, 3D]
-3228; [08 8F, 05, 09][E0 04 C0, 05, 09][08 91, 05, 3D]
-3221; [08 8F, 05, 09][E0 05 24, 05, 09][08 91, 05, 3D]
-3224; [08 8F, 05, 09][E0 05 34, 05, 09][08 91, 05, 3D]
-3239; [08 8F, 05, 09][E0 05 D2, 05, 09][08 91, 05, 3D]
-323D; [08 8F, 05, 09][E0 06 14, 05, 09][08 91, 05, 3D]
-3241; [08 8F, 05, 09][E0 06 34, 05, 09][08 91, 05, 3D]
-3227; [08 8F, 05, 09][E0 0B 06, 05, 09][08 91, 05, 3D]
-3225; [08 8F, 05, 09][E0 0B 0A, 05, 09][08 91, 05, 3D]
-3238; [08 8F, 05, 09][E0 0D A4, 05, 09][08 91, 05, 3D]
-3229; [08 8F, 05, 09][E0 0E C4, 05, 09][08 91, 05, 3D]
-323F; [08 8F, 05, 09][E0 0E EA, 05, 09][08 91, 05, 3D]
-3234; [08 8F, 05, 09][E0 10 68, 05, 09][08 91, 05, 3D]
-323A; [08 8F, 05, 09][E0 11 4C, 05, 09][08 91, 05, 3D]
-3223; [08 8F, 05, 09][E0 16 28, 05, 09][08 91, 05, 3D]
-322F; [08 8F, 05, 09][E0 16 B0, 05, 09][08 91, 05, 3D]
-323B; [08 8F, 05, 09][E0 1F 74, 05, 09][08 91, 05, 3D]
-3230; [08 8F, 05, 09][E0 34 F0, 05, 09][08 91, 05, 3D]
-322A; [08 8F, 05, 09][E0 37 48, 05, 09][08 91, 05, 3D]
-3232; [08 8F, 05, 09][E0 37 4A, 05, 09][08 91, 05, 3D]
-322D; [08 8F, 05, 09][E0 37 88, 05, 09][08 91, 05, 3D]
-3231; [08 8F, 05, 09][E0 39 98, 05, 09][08 91, 05, 3D]
-322C; [08 8F, 05, 09][E0 41 DC, 05, 09][08 91, 05, 3D]
-322B; [08 8F, 05, 09][E0 4A 80, 05, 09][08 91, 05, 3D]
-3235; [08 8F, 05, 09][E0 4E B4, 05, 09][08 91, 05, 3D]
-323C; [08 8F, 05, 09][E0 57 BE, 05, 09][08 91, 05, 3D]
-3233; [08 8F, 05, 09][E0 5C 92, 05, 09][08 91, 05, 3D]
-3237; [08 8F, 05, 09][E0 5C D0, 05, 09][08 91, 05, 3D]
-3240; [08 8F, 05, 09][E0 5C F0, 05, 09][08 91, 05, 3D]
-3242; [08 8F, 05, 09][E0 6E 56, 05, 09][08 91, 05, 3D]
-3243; [08 8F, 05, 09][E0 6E 68, 05, 09][08 91, 05, 3D]
-3236; [08 8F, 05, 09][E0 84 48, 05, 09][08 91, 05, 3D]
-323E; [08 8F, 05, 09][E0 84 94, 05, 09][08 91, 05, 3D]
-322E; [08 8F, 05, 09][E0 8E E4, 05, 09][08 91, 05, 3D]
-
-0029; [08 91, 05, 05]
-FF09; [08 91, 05, 07]
-FE5A; [08 91, 05, 1D]
-207E; [08 91, 05, 27]
-208E; [08 91, 05, 29]
-FE36; [08 91, 05, 2B]
-
-005B; [08 93, 05, 05]
-FF3B; [08 93, 05, 07]
-FE47; [08 93, 05, 2B]
-
-005D; [08 95, 05, 05]
-FF3D; [08 95, 05, 07]
-FE48; [08 95, 05, 2B]
-
-007B; [08 97, 05, 05]
-FF5B; [08 97, 05, 07]
-FE5B; [08 97, 05, 1D]
-FE37; [08 97, 05, 2B]
+D809 DC73; [08 8F, 05, 05]
-007D; [08 99, 05, 05]
-FF5D; [08 99, 05, 07]
-FE5C; [08 99, 05, 1D]
-FE38; [08 99, 05, 2B]
+0027; [08 91, 05, 05]
+FF07; [08 91, 05, 07]
-0F3A; [08 9B, 05, 05]
+2018; [08 93, 05, 05]
-0F3B; [08 9D, 05, 05]
+2019; [08 95, 05, 05]
-0F3C; [08 9F, 05, 05]
+201A; [08 97, 05, 05]
-0F3D; [08 A1, 05, 05]
+201B; [08 99, 05, 05]
-169B; [08 A3, 05, 05]
+2039; [08 9B, 05, 05]
-169C; [08 A5, 05, 05]
+203A; [08 9D, 05, 05]
-2045; [08 A7, 05, 05]
+0022; [08 9F, 05, 05]
+FF02; [08 9F, 05, 07]
-2046; [08 A9, 05, 05]
+201C; [08 A1, 05, 05]
-29FC; [08 AB, 05, 05]
+201D; [08 A3, 05, 05]
-29FD; [08 AD, 05, 05]
+201E; [08 A5, 05, 05]
-2983; [08 AF, 05, 05]
+201F; [08 A7, 05, 05]
-2984; [08 B1, 05, 05]
+301D; [08 A9, 05, 05]
-2985; [08 B3, 05, 05]
-FF5F; [08 B3, 05, 07]
+301E; [08 AB, 05, 05]
-2986; [08 B5, 05, 05]
-FF60; [08 B5, 05, 07]
+301F; [08 AD, 05, 05]
-2987; [08 B7, 05, 05]
+00AB; [08 AF, 05, 05]
-2988; [08 B9, 05, 05]
+00BB; [08 B1, 05, 05]
-2989; [08 BB, 05, 05]
+0028; [08 B3, 05, 05]
+FF08; [08 B3, 05, 07]
+FE59; [08 B3, 05, 1D]
+207D; [08 B3, 05, 27]
+208D; [08 B3, 05, 29]
+FE35; [08 B3, 05, 2B]
+2474; [08 B3, 05, 09][26 7C, 05, 09][08 B5, 05, 3D]
+247D; [08 B3, 05, 09][26 7C, 05, 09][26 7A, 05, 3D][08 B5, 05, 3D]
+247E; [08 B3, 05, 09][26 7C, 05, 09][26 7C, 05, 3D][08 B5, 05, 3D]
+247F; [08 B3, 05, 09][26 7C, 05, 09][26 7E, 05, 3D][08 B5, 05, 3D]
+2480; [08 B3, 05, 09][26 7C, 05, 09][26 80, 05, 3D][08 B5, 05, 3D]
+2481; [08 B3, 05, 09][26 7C, 05, 09][26 82, 05, 3D][08 B5, 05, 3D]
+2482; [08 B3, 05, 09][26 7C, 05, 09][26 84, 05, 3D][08 B5, 05, 3D]
+2483; [08 B3, 05, 09][26 7C, 05, 09][26 86, 05, 3D][08 B5, 05, 3D]
+2484; [08 B3, 05, 09][26 7C, 05, 09][26 88, 05, 3D][08 B5, 05, 3D]
+2485; [08 B3, 05, 09][26 7C, 05, 09][26 8A, 05, 3D][08 B5, 05, 3D]
+2486; [08 B3, 05, 09][26 7C, 05, 09][26 8C, 05, 3D][08 B5, 05, 3D]
+2475; [08 B3, 05, 09][26 7E, 05, 09][08 B5, 05, 3D]
+2487; [08 B3, 05, 09][26 7E, 05, 09][26 7A, 05, 3D][08 B5, 05, 3D]
+2476; [08 B3, 05, 09][26 80, 05, 09][08 B5, 05, 3D]
+2477; [08 B3, 05, 09][26 82, 05, 09][08 B5, 05, 3D]
+2478; [08 B3, 05, 09][26 84, 05, 09][08 B5, 05, 3D]
+2479; [08 B3, 05, 09][26 86, 05, 09][08 B5, 05, 3D]
+247A; [08 B3, 05, 09][26 88, 05, 09][08 B5, 05, 3D]
+247B; [08 B3, 05, 09][26 8A, 05, 09][08 B5, 05, 3D]
+247C; [08 B3, 05, 09][26 8C, 05, 09][08 B5, 05, 3D]
+249C; [08 B3, 05, 09][29, 05, 09][08 B5, 05, 3D]
+249D; [08 B3, 05, 09][2B, 05, 09][08 B5, 05, 3D]
+249E; [08 B3, 05, 09][2D, 05, 09][08 B5, 05, 3D]
+249F; [08 B3, 05, 09][2F, 05, 09][08 B5, 05, 3D]
+24A0; [08 B3, 05, 09][31, 05, 09][08 B5, 05, 3D]
+24A1; [08 B3, 05, 09][33, 05, 09][08 B5, 05, 3D]
+24A2; [08 B3, 05, 09][35, 05, 09][08 B5, 05, 3D]
+24A3; [08 B3, 05, 09][37, 05, 09][08 B5, 05, 3D]
+24A4; [08 B3, 05, 09][39, 05, 09][08 B5, 05, 3D]
+24A5; [08 B3, 05, 09][3B, 05, 09][08 B5, 05, 3D]
+24A6; [08 B3, 05, 09][3D, 05, 09][08 B5, 05, 3D]
+24A7; [08 B3, 05, 09][3F, 05, 09][08 B5, 05, 3D]
+24A8; [08 B3, 05, 09][41, 05, 09][08 B5, 05, 3D]
+24A9; [08 B3, 05, 09][43, 05, 09][08 B5, 05, 3D]
+24AA; [08 B3, 05, 09][45, 05, 09][08 B5, 05, 3D]
+24AB; [08 B3, 05, 09][47, 05, 09][08 B5, 05, 3D]
+24AC; [08 B3, 05, 09][49, 05, 09][08 B5, 05, 3D]
+24AD; [08 B3, 05, 09][4B, 05, 09][08 B5, 05, 3D]
+24AE; [08 B3, 05, 09][4D, 05, 09][08 B5, 05, 3D]
+24AF; [08 B3, 05, 09][4F, 05, 09][08 B5, 05, 3D]
+24B0; [08 B3, 05, 09][51, 05, 09][08 B5, 05, 3D]
+24B1; [08 B3, 05, 09][53, 05, 09][08 B5, 05, 3D]
+24B2; [08 B3, 05, 09][55, 05, 09][08 B5, 05, 3D]
+24B3; [08 B3, 05, 09][57, 05, 09][08 B5, 05, 3D]
+24B4; [08 B3, 05, 09][59, 05, 09][08 B5, 05, 3D]
+24B5; [08 B3, 05, 09][5B, 05, 09][08 B5, 05, 3D]
+3200; [08 B3, 05, 09][94 20, 05, 09][08 B5, 05, 3D]
+320E; [08 B3, 05, 09][94 20, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3201; [08 B3, 05, 09][94 24, 05, 09][08 B5, 05, 3D]
+320F; [08 B3, 05, 09][94 24, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3202; [08 B3, 05, 09][94 26, 05, 09][08 B5, 05, 3D]
+3210; [08 B3, 05, 09][94 26, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3203; [08 B3, 05, 09][94 2A, 05, 09][08 B5, 05, 3D]
+3211; [08 B3, 05, 09][94 2A, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3204; [08 B3, 05, 09][94 2C, 05, 09][08 B5, 05, 3D]
+3212; [08 B3, 05, 09][94 2C, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3205; [08 B3, 05, 09][94 2E, 05, 09][08 B5, 05, 3D]
+3213; [08 B3, 05, 09][94 2E, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3206; [08 B3, 05, 09][94 32, 05, 09][08 B5, 05, 3D]
+3214; [08 B3, 05, 09][94 32, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3207; [08 B3, 05, 09][94 36, 05, 09][08 B5, 05, 3D]
+3215; [08 B3, 05, 09][94 36, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+321D; [08 B3, 05, 09][94 36, 05, 09][94 58, 05, 3D][94 38, 05, 3D][94 50, 05, 3D][94 7A, 05, 3D][08 B5, 05, 3D]
+321E; [08 B3, 05, 09][94 36, 05, 09][94 58, 05, 3D][94 44, 05, 3D][94 62, 05, 3D][08 B5, 05, 3D]
+3208; [08 B3, 05, 09][94 38, 05, 09][08 B5, 05, 3D]
+3216; [08 B3, 05, 09][94 38, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+321C; [08 B3, 05, 09][94 38, 05, 09][94 62, 05, 3D][08 B5, 05, 3D]
+3209; [08 B3, 05, 09][94 3C, 05, 09][08 B5, 05, 3D]
+3217; [08 B3, 05, 09][94 3C, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+320A; [08 B3, 05, 09][94 3E, 05, 09][08 B5, 05, 3D]
+3218; [08 B3, 05, 09][94 3E, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+320B; [08 B3, 05, 09][94 40, 05, 09][08 B5, 05, 3D]
+3219; [08 B3, 05, 09][94 40, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+320C; [08 B3, 05, 09][94 42, 05, 09][08 B5, 05, 3D]
+321A; [08 B3, 05, 09][94 42, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+320D; [08 B3, 05, 09][94 44, 05, 09][08 B5, 05, 3D]
+321B; [08 B3, 05, 09][94 44, 05, 09][94 48, 05, 3D][08 B5, 05, 3D]
+3220; [08 B3, 05, 09][E0 04 06, 05, 09][08 B5, 05, 3D]
+3226; [08 B3, 05, 09][E0 04 0C, 05, 09][08 B5, 05, 3D]
+3222; [08 B3, 05, 09][E0 04 18, 05, 09][08 B5, 05, 3D]
+3228; [08 B3, 05, 09][E0 04 C0, 05, 09][08 B5, 05, 3D]
+3221; [08 B3, 05, 09][E0 05 24, 05, 09][08 B5, 05, 3D]
+3224; [08 B3, 05, 09][E0 05 34, 05, 09][08 B5, 05, 3D]
+3239; [08 B3, 05, 09][E0 05 D2, 05, 09][08 B5, 05, 3D]
+323D; [08 B3, 05, 09][E0 06 14, 05, 09][08 B5, 05, 3D]
+3241; [08 B3, 05, 09][E0 06 34, 05, 09][08 B5, 05, 3D]
+3227; [08 B3, 05, 09][E0 0B 06, 05, 09][08 B5, 05, 3D]
+3225; [08 B3, 05, 09][E0 0B 0A, 05, 09][08 B5, 05, 3D]
+3238; [08 B3, 05, 09][E0 0D A4, 05, 09][08 B5, 05, 3D]
+3229; [08 B3, 05, 09][E0 0E C4, 05, 09][08 B5, 05, 3D]
+323F; [08 B3, 05, 09][E0 0E EA, 05, 09][08 B5, 05, 3D]
+3234; [08 B3, 05, 09][E0 10 68, 05, 09][08 B5, 05, 3D]
+323A; [08 B3, 05, 09][E0 11 4C, 05, 09][08 B5, 05, 3D]
+3223; [08 B3, 05, 09][E0 16 28, 05, 09][08 B5, 05, 3D]
+322F; [08 B3, 05, 09][E0 16 B0, 05, 09][08 B5, 05, 3D]
+323B; [08 B3, 05, 09][E0 1F 74, 05, 09][08 B5, 05, 3D]
+3230; [08 B3, 05, 09][E0 34 F0, 05, 09][08 B5, 05, 3D]
+322A; [08 B3, 05, 09][E0 37 48, 05, 09][08 B5, 05, 3D]
+3232; [08 B3, 05, 09][E0 37 4A, 05, 09][08 B5, 05, 3D]
+322D; [08 B3, 05, 09][E0 37 88, 05, 09][08 B5, 05, 3D]
+3231; [08 B3, 05, 09][E0 39 98, 05, 09][08 B5, 05, 3D]
+322C; [08 B3, 05, 09][E0 41 DC, 05, 09][08 B5, 05, 3D]
+322B; [08 B3, 05, 09][E0 4A 80, 05, 09][08 B5, 05, 3D]
+3235; [08 B3, 05, 09][E0 4E B4, 05, 09][08 B5, 05, 3D]
+323C; [08 B3, 05, 09][E0 57 BE, 05, 09][08 B5, 05, 3D]
+3233; [08 B3, 05, 09][E0 5C 92, 05, 09][08 B5, 05, 3D]
+3237; [08 B3, 05, 09][E0 5C D0, 05, 09][08 B5, 05, 3D]
+3240; [08 B3, 05, 09][E0 5C F0, 05, 09][08 B5, 05, 3D]
+3242; [08 B3, 05, 09][E0 6E 56, 05, 09][08 B5, 05, 3D]
+3243; [08 B3, 05, 09][E0 6E 68, 05, 09][08 B5, 05, 3D]
+3236; [08 B3, 05, 09][E0 84 48, 05, 09][08 B5, 05, 3D]
+323E; [08 B3, 05, 09][E0 84 94, 05, 09][08 B5, 05, 3D]
+322E; [08 B3, 05, 09][E0 8E E4, 05, 09][08 B5, 05, 3D]
+
+0029; [08 B5, 05, 05]
+FF09; [08 B5, 05, 07]
+FE5A; [08 B5, 05, 1D]
+207E; [08 B5, 05, 27]
+208E; [08 B5, 05, 29]
+FE36; [08 B5, 05, 2B]
+
+005B; [08 B7, 05, 05]
+FF3B; [08 B7, 05, 07]
+FE47; [08 B7, 05, 2B]
+
+005D; [08 B9, 05, 05]
+FF3D; [08 B9, 05, 07]
+FE48; [08 B9, 05, 2B]
+
+007B; [08 BB, 05, 05]
+FF5B; [08 BB, 05, 07]
+FE5B; [08 BB, 05, 1D]
+FE37; [08 BB, 05, 2B]
-298A; [08 BD, 05, 05]
+007D; [08 BD, 05, 05]
+FF5D; [08 BD, 05, 07]
+FE5C; [08 BD, 05, 1D]
+FE38; [08 BD, 05, 2B]
-298B; [08 BF, 05, 05]
+0F3A; [08 BF, 05, 05]
-298C; [08 C1, 05, 05]
+0F3B; [08 C1, 05, 05]
-298D; [08 C3, 05, 05]
+0F3C; [08 C3, 05, 05]
-298E; [08 C5, 05, 05]
+0F3D; [08 C5, 05, 05]
-298F; [08 C7, 05, 05]
+169B; [08 C7, 05, 05]
-2990; [08 C9, 05, 05]
+169C; [08 C9, 05, 05]
-2991; [08 CB, 05, 05]
+2045; [08 CB, 05, 05]
-2992; [08 CD, 05, 05]
+2046; [08 CD, 05, 05]
-2993; [08 CF, 05, 05]
+29FC; [08 CF, 05, 05]
-2994; [08 D1, 05, 05]
+29FD; [08 D1, 05, 05]
-2995; [08 D3, 05, 05]
+2983; [08 D3, 05, 05]
-2996; [08 D5, 05, 05]
+2984; [08 D5, 05, 05]
-2997; [08 D7, 05, 05]
+2985; [08 D7, 05, 05]
+FF5F; [08 D7, 05, 07]
-2998; [08 D9, 05, 05]
+2986; [08 D9, 05, 05]
+FF60; [08 D9, 05, 07]
-2E02; [08 DB, 05, 05]
+2987; [08 DB, 05, 05]
-2E03; [08 DD, 05, 05]
+2988; [08 DD, 05, 05]
-2E04; [08 DF, 05, 05]
+2989; [08 DF, 05, 05]
-2E05; [08 E1, 05, 05]
+298A; [08 E1, 05, 05]
-2E09; [08 E3, 05, 05]
+298B; [08 E3, 05, 05]
-2E0A; [08 E5, 05, 05]
+298C; [08 E5, 05, 05]
-2E0C; [08 E7, 05, 05]
+298D; [08 E7, 05, 05]
-2E0D; [08 E9, 05, 05]
+298E; [08 E9, 05, 05]
-2E1C; [08 EB, 05, 05]
+298F; [08 EB, 05, 05]
-2E1D; [08 ED, 05, 05]
+2990; [08 ED, 05, 05]
-2329; [08 EF, 05, 05]
-3008; [08 EF, 05, 05]
-FE3F; [08 EF, 05, 2B]
+2991; [08 EF, 05, 05]
-232A; [08 F1, 05, 05]
-3009; [08 F1, 05, 05]
-FE40; [08 F1, 05, 2B]
+2992; [08 F1, 05, 05]
-300A; [08 F3, 05, 05]
-FE3D; [08 F3, 05, 2B]
+2993; [08 F3, 05, 05]
-300B; [08 F5, 05, 05]
-FE3E; [08 F5, 05, 2B]
+2994; [08 F5, 05, 05]
-300C; [08 F7, 05, 05]
-FF62; [08 F7, 05, A3]
-FE41; [08 F7, 05, 2B]
+2995; [08 F7, 05, 05]
-300D; [08 F9, 05, 05]
-FF63; [08 F9, 05, A3]
-FE42; [08 F9, 05, 2B]
+2996; [08 F9, 05, 05]
-300E; [08 FB, 05, 05]
-FE43; [08 FB, 05, 2B]
+2997; [08 FB, 05, 05]
-300F; [08 FD, 05, 05]
-FE44; [08 FD, 05, 2B]
+2998; [08 FD, 05, 05]
-3010; [09 05, 05, 05]
-FE3B; [09 05, 05, 2B]
+2E02; [09 05, 05, 05]
-3011; [09 07, 05, 05]
-FE3C; [09 07, 05, 2B]
+2E03; [09 07, 05, 05]
-3014; [09 09, 05, 05]
-FE5D; [09 09, 05, 1D]
-FE39; [09 09, 05, 2B]
+2E04; [09 09, 05, 05]
-3015; [09 0B, 05, 05]
-FE5E; [09 0B, 05, 1D]
-FE3A; [09 0B, 05, 2B]
+2E05; [09 0B, 05, 05]
-3016; [09 0D, 05, 05]
-FE17; [09 0D, 05, 2B]
+2E09; [09 0D, 05, 05]
-3017; [09 0F, 05, 05]
-FE18; [09 0F, 05, 2B]
+2E0A; [09 0F, 05, 05]
-3018; [09 11, 05, 05]
+2E0C; [09 11, 05, 05]
-3019; [09 13, 05, 05]
+2E0D; [09 13, 05, 05]
-301A; [09 15, 05, 05]
+2E1C; [09 15, 05, 05]
-301B; [09 17, 05, 05]
+2E1D; [09 17, 05, 05]
-FD3E; [09 19, 05, 05]
+2329; [09 19, 05, 05]
+3008; [09 19, 05, 05]
+FE3F; [09 19, 05, 2B]
-FD3F; [09 1B, 05, 05]
+232A; [09 1B, 05, 05]
+3009; [09 1B, 05, 05]
+FE40; [09 1B, 05, 2B]
-00A7; [09 1D, 05, 05]
+300A; [09 1D, 05, 05]
+FE3D; [09 1D, 05, 2B]
-00B6; [09 1F, 05, 05]
+300B; [09 1F, 05, 05]
+FE3E; [09 1F, 05, 2B]
-204B; [09 21, 05, 05]
+300C; [09 21, 05, 05]
+FF62; [09 21, 05, A3]
+FE41; [09 21, 05, 2B]
-00A9; [09 23, 05, 05]
+300D; [09 23, 05, 05]
+FF63; [09 23, 05, A3]
+FE42; [09 23, 05, 2B]
-00AE; [09 25, 05, 05]
+300E; [09 25, 05, 05]
+FE43; [09 25, 05, 2B]
-0040; [09 27, 05, 05]
-FF20; [09 27, 05, 07]
-FE6B; [09 27, 05, 1D]
+300F; [09 27, 05, 05]
+FE44; [09 27, 05, 2B]
-002A; [09 29, 05, 05]
-FF0A; [09 29, 05, 07]
-FE61; [09 29, 05, 1D]
+3010; [09 29, 05, 05]
+FE3B; [09 29, 05, 2B]
-204E; [09 2B, 05, 05]
+3011; [09 2B, 05, 05]
+FE3C; [09 2B, 05, 2B]
-2051; [09 2D, 05, 05]
+3014; [09 2D, 05, 05]
+FE5D; [09 2D, 05, 1D]
+FE39; [09 2D, 05, 2B]
-066D; [09 2F, 05, 05]
+3015; [09 2F, 05, 05]
+FE5E; [09 2F, 05, 1D]
+FE3A; [09 2F, 05, 2B]
-002F; [09 31, 05, 05]
-FF0F; [09 31, 05, 07]
+3016; [09 31, 05, 05]
+FE17; [09 31, 05, 2B]
-2044; [09 33, 05, 05]
+3017; [09 33, 05, 05]
+FE18; [09 33, 05, 2B]
-005C; [09 35, 05, 05]
-FF3C; [09 35, 05, 07]
-FE68; [09 35, 05, 1D]
+3018; [09 35, 05, 05]
-0026; [09 37, 05, 05]
-FF06; [09 37, 05, 07]
-FE60; [09 37, 05, 1D]
+3019; [09 37, 05, 05]
-214B; [09 39, 05, 05]
+301A; [09 39, 05, 05]
-204A; [09 3B, 05, 05]
+301B; [09 3B, 05, 05]
-0023; [09 3D, 05, 05]
-FF03; [09 3D, 05, 07]
-FE5F; [09 3D, 05, 1D]
+FD3E; [09 3D, 05, 05]
-0025; [09 3F, 05, 05]
-FF05; [09 3F, 05, 07]
-FE6A; [09 3F, 05, 1D]
+FD3F; [09 3F, 05, 05]
-066A; [09 41, 05, 05]
+00A7; [09 41, 05, 05]
-2030; [09 43, 05, 05]
+00B6; [09 43, 05, 05]
-2031; [09 45, 05, 05]
+204B; [09 45, 05, 05]
-2052; [09 47, 05, 05]
+00A9; [09 47, 05, 05]
-2020; [09 49, 05, 05]
+00AE; [09 49, 05, 05]
-2021; [09 4B, 05, 05]
+0040; [09 4B, 05, 05]
+FF20; [09 4B, 05, 07]
+FE6B; [09 4B, 05, 1D]
-2022; [09 4D, 05, 05]
+002A; [09 4D, 05, 05]
+FF0A; [09 4D, 05, 07]
+FE61; [09 4D, 05, 1D]
-2023; [09 4F, 05, 05]
+204E; [09 4F, 05, 05]
-2027; [09 51, 05, 05]
+2051; [09 51, 05, 05]
-2043; [09 53, 05, 05]
+066D; [09 53, 05, 05]
-204C; [09 55, 05, 05]
+002F; [09 55, 05, 05]
+FF0F; [09 55, 05, 07]
-204D; [09 57, 05, 05]
+2044; [09 57, 05, 05]
-2032; [09 59, 05, 05]
-2033; [09 59, 05, 09][09 59, 05, 09]
-2034; [09 59, 05, 09][09 59, 05, 09][09 59, 05, 3D]
-2057; [09 59, 05, 09][09 59, 05, 09][09 59, 05, 3D][09 59, 05, 3D]
+005C; [09 59, 05, 05]
+FF3C; [09 59, 05, 07]
+FE68; [09 59, 05, 1D]
-2035; [09 5B, 05, 05]
-2036; [09 5B, 05, 09][09 5B, 05, 09]
-2037; [09 5B, 05, 09][09 5B, 05, 09][09 5B, 05, 3D]
+0026; [09 5B, 05, 05]
+FF06; [09 5B, 05, 07]
+FE60; [09 5B, 05, 1D]
-3003; [09 5D, 05, 05]
+214B; [09 5D, 05, 05]
-303D; [09 5F, 05, 05]
+204A; [09 5F, 05, 05]
-2038; [09 61, 05, 05]
+0023; [09 61, 05, 05]
+FF03; [09 61, 05, 07]
+FE5F; [09 61, 05, 1D]
-203B; [09 63, 05, 05]
+0025; [09 63, 05, 05]
+FF05; [09 63, 05, 07]
+FE6A; [09 63, 05, 1D]
-203F; [09 65, 05, 05]
+066A; [09 65, 05, 05]
-2054; [09 67, 05, 05]
+2030; [09 67, 05, 05]
-2040; [09 69, 05, 05]
+2031; [09 69, 05, 05]
-2050; [09 6B, 05, 05]
+2052; [09 6B, 05, 05]
-2041; [09 6D, 05, 05]
+2020; [09 6D, 05, 05]
-2042; [09 6F, 05, 05]
+2021; [09 6F, 05, 05]
-2E00; [09 71, 05, 05]
+2022; [09 71, 05, 05]
-2E01; [09 73, 05, 05]
+2023; [09 73, 05, 05]
-2E06; [09 75, 05, 05]
+2027; [09 75, 05, 05]
-2E07; [09 77, 05, 05]
+2043; [09 77, 05, 05]
-2E08; [09 79, 05, 05]
+204C; [09 79, 05, 05]
-2E0B; [09 7B, 05, 05]
+204D; [09 7B, 05, 05]
-2E0E; [09 7D, 05, 05]
+2032; [09 7D, 05, 05]
+2033; [09 7D, 05, 09][09 7D, 05, 09]
+2034; [09 7D, 05, 09][09 7D, 05, 09][09 7D, 05, 3D]
+2057; [09 7D, 05, 09][09 7D, 05, 09][09 7D, 05, 3D][09 7D, 05, 3D]
-2E0F; [09 7F, 05, 05]
+2035; [09 7F, 05, 05]
+2036; [09 7F, 05, 09][09 7F, 05, 09]
+2037; [09 7F, 05, 09][09 7F, 05, 09][09 7F, 05, 3D]
-2E10; [09 81, 05, 05]
+3003; [09 81, 05, 05]
-2E11; [09 83, 05, 05]
+303D; [09 83, 05, 05]
-2E12; [09 85, 05, 05]
+2038; [09 85, 05, 05]
-2E13; [09 87, 05, 05]
+203B; [09 87, 05, 05]
-2E14; [09 89, 05, 05]
+203F; [09 89, 05, 05]
-2E15; [09 8B, 05, 05]
+2054; [09 8B, 05, 05]
-2E16; [09 8D, 05, 05]
+2040; [09 8D, 05, 05]
-055A; [09 8F, 05, 05]
+2050; [09 8F, 05, 05]
-055B; [09 91, 05, 05]
+2041; [09 91, 05, 05]
-055F; [09 93, 05, 05]
+2042; [09 93, 05, 05]
-05BE; [09 95, 05, 05]
+2E00; [09 95, 05, 05]
-05C0; [09 97, 05, 05]
+2E01; [09 97, 05, 05]
-05C3; [09 99, 05, 05]
+2E06; [09 99, 05, 05]
-05C6; [09 9B, 05, 05]
+2E07; [09 9B, 05, 05]
-05F3; [09 9D, 05, 05]
+2E08; [09 9D, 05, 05]
-05F4; [09 9F, 05, 05]
+2E0B; [09 9F, 05, 05]
-070A; [09 A1, 05, 05]
+2E0E; [09 A1, 05, 05]
-070B; [09 A3, 05, 05]
+2E0F; [09 A3, 05, 05]
-070C; [09 A5, 05, 05]
+2E10; [09 A5, 05, 05]
-070D; [09 A7, 05, 05]
+2E11; [09 A7, 05, 05]
-1800; [09 A9, 05, 05]
+2E12; [09 A9, 05, 05]
-180A; [09 AB, 05, 05]
+2E13; [09 AB, 05, 05]
-0970; [09 AD, 05, 05]
+2E14; [09 AD, 05, 05]
-0DF4; [09 AF, 05, 05]
+2E15; [09 AF, 05, 05]
-0E5A; [09 B1, 05, 05]
+2E16; [09 B1, 05, 05]
-0E5B; [09 B3, 05, 05]
+055A; [09 B3, 05, 05]
-0F04; [09 B5, 05, 05]
+055B; [09 B5, 05, 05]
-0F05; [09 B7, 05, 05]
+055F; [09 B7, 05, 05]
-0F06; [09 B9, 05, 05]
+05BE; [09 B9, 05, 05]
-0F07; [09 BB, 05, 05]
+05C0; [09 BB, 05, 05]
-0F08; [09 BD, 05, 05]
+05C3; [09 BD, 05, 05]
-0F09; [09 BF, 05, 05]
+05C6; [09 BF, 05, 05]
-0F0A; [09 C1, 05, 05]
+05F3; [09 C1, 05, 05]
-0FD0; [09 C3, 05, 05]
+05F4; [09 C3, 05, 05]
-0FD1; [09 C5, 05, 05]
+070A; [09 C5, 05, 05]
-0F0B; [09 C7, 05, 05]
-0F0C; [09 C7, 05, 35]
+070B; [09 C7, 05, 05]
-0F0D; [09 C9, 05, 05]
+070C; [09 C9, 05, 05]
-0F0E; [09 CB, 05, 05]
+070D; [09 CB, 05, 05]
-0F0F; [09 CD, 05, 05]
+1800; [09 CD, 05, 05]
-0F10; [09 CF, 05, 05]
+180A; [09 CF, 05, 05]
-0F11; [09 D1, 05, 05]
+0970; [09 D1, 05, 05]
-0F12; [09 D3, 05, 05]
+0DF4; [09 D3, 05, 05]
-0F85; [09 D5, 05, 05]
+0E5A; [09 D5, 05, 05]
-1940; [09 D7, 05, 05]
+0E5B; [09 D7, 05, 05]
-104C; [09 D9, 05, 05]
+0F04; [09 D9, 05, 05]
-104D; [09 DB, 05, 05]
+0F05; [09 DB, 05, 05]
-104E; [09 DD, 05, 05]
+0F06; [09 DD, 05, 05]
-104F; [09 DF, 05, 05]
+0F07; [09 DF, 05, 05]
-17D7; [09 E1, 05, 05]
+0F08; [09 E1, 05, 05]
-17D8; [09 E3, 05, 05]
+0F09; [09 E3, 05, 05]
-17D9; [09 E5, 05, 05]
+0F0A; [09 E5, 05, 05]
-17DA; [09 E7, 05, 05]
+0FD0; [09 E7, 05, 05]
-166D; [09 E9, 05, 05]
+0FD1; [09 E9, 05, 05]
-D802 DE50; [09 EB, 05, 05]
+0F0B; [09 EB, 05, 05]
+0F0C; [09 EB, 05, 35]
-D802 DE51; [09 ED, 05, 05]
+0F0D; [09 ED, 05, 05]
-D802 DE52; [09 EF, 05, 05]
+0F0E; [09 EF, 05, 05]
-D802 DE53; [09 F1, 05, 05]
+0F0F; [09 F1, 05, 05]
-D802 DE54; [09 F3, 05, 05]
+0F10; [09 F3, 05, 05]
-D802 DE55; [09 F5, 05, 05]
+0F11; [09 F5, 05, 05]
-D802 DE58; [09 F7, 05, 05]
+0F12; [09 F7, 05, 05]
-02B9; [09 F9, 05, 05]
-0374; [09 F9, 05, 05]
+0F85; [09 F9, 05, 05]
-0375; [09 FB, 05, 05]
+1940; [09 FB, 05, 05]
-02BA; [09 FD, 05, 05]
+104C; [09 FD, 05, 05]
-02C2; [0A 05, 05, 05]
+104D; [0A 05, 05, 05]
-02C3; [0A 07, 05, 05]
+104E; [0A 07, 05, 05]
-02C4; [0A 09, 05, 05]
+104F; [0A 09, 05, 05]
-02C5; [0A 0B, 05, 05]
+17D7; [0A 0B, 05, 05]
-02C6; [0A 0D, 05, 05]
+17D8; [0A 0D, 05, 05]
-02C7; [0A 0F, 05, 05]
+17D9; [0A 0F, 05, 05]
-02C8; [0A 11, 05, 05]
+17DA; [0A 11, 05, 05]
-02C9; [0A 13, 05, 05]
+166D; [0A 13, 05, 05]
-02CA; [0A 15, 05, 05]
+A874; [0A 15, 05, 05]
-02CB; [0A 17, 05, 05]
+A875; [0A 17, 05, 05]
-02CC; [0A 19, 05, 05]
+D802 DE50; [0A 19, 05, 05]
-02CD; [0A 1B, 05, 05]
+D802 DE51; [0A 1B, 05, 05]
-02CE; [0A 1D, 05, 05]
+D802 DE52; [0A 1D, 05, 05]
-02CF; [0A 1F, 05, 05]
+D802 DE53; [0A 1F, 05, 05]
-02D2; [0A 21, 05, 05]
+D802 DE54; [0A 21, 05, 05]
-02D3; [0A 23, 05, 05]
+D802 DE55; [0A 23, 05, 05]
-02D4; [0A 25, 05, 05]
+D802 DE58; [0A 25, 05, 05]
-02D5; [0A 27, 05, 05]
+02B9; [0A 27, 05, 05]
+0374; [0A 27, 05, 05]
-02D6; [0A 29, 05, 05]
+0375; [0A 29, 05, 05]
-02D7; [0A 2B, 05, 05]
+02BA; [0A 2B, 05, 05]
-02DE; [0A 2D, 05, 05]
+02C2; [0A 2D, 05, 05]
-02DF; [0A 2F, 05, 05]
+02C3; [0A 2F, 05, 05]
-02E5; [0A 31, 05, 05]
+02C4; [0A 31, 05, 05]
-02E6; [0A 33, 05, 05]
+02C5; [0A 33, 05, 05]
-02E7; [0A 35, 05, 05]
+02C6; [0A 35, 05, 05]
-02E8; [0A 37, 05, 05]
+02C7; [0A 37, 05, 05]
-02E9; [0A 39, 05, 05]
+02C8; [0A 39, 05, 05]
-02EA; [0A 3B, 05, 05]
+02C9; [0A 3B, 05, 05]
-02EB; [0A 3D, 05, 05]
+02CA; [0A 3D, 05, 05]
-02EC; [0A 3F, 05, 05]
+02CB; [0A 3F, 05, 05]
-02ED; [0A 41, 05, 05]
+02CC; [0A 41, 05, 05]
-02EF; [0A 43, 05, 05]
+02CD; [0A 43, 05, 05]
-02F0; [0A 45, 05, 05]
+02CE; [0A 45, 05, 05]
-02F1; [0A 47, 05, 05]
+02CF; [0A 47, 05, 05]
-02F2; [0A 49, 05, 05]
+02D2; [0A 49, 05, 05]
-02F3; [0A 4B, 05, 05]
+02D3; [0A 4B, 05, 05]
-02F4; [0A 4D, 05, 05]
+02D4; [0A 4D, 05, 05]
-02F5; [0A 4F, 05, 05]
+02D5; [0A 4F, 05, 05]
-02F6; [0A 51, 05, 05]
+02D6; [0A 51, 05, 05]
-02F7; [0A 53, 05, 05]
+02D7; [0A 53, 05, 05]
-02F8; [0A 55, 05, 05]
+02DE; [0A 55, 05, 05]
-02F9; [0A 57, 05, 05]
+02DF; [0A 57, 05, 05]
-02FA; [0A 59, 05, 05]
+02E5; [0A 59, 05, 05]
-02FB; [0A 5B, 05, 05]
+02E6; [0A 5B, 05, 05]
-02FC; [0A 5D, 05, 05]
+02E7; [0A 5D, 05, 05]
-02FD; [0A 5F, 05, 05]
+02E8; [0A 5F, 05, 05]
-02FE; [0A 61, 05, 05]
+02E9; [0A 61, 05, 05]
-02FF; [0A 63, 05, 05]
+02EA; [0A 63, 05, 05]
-1390; [0A 65, 05, 05]
+02EB; [0A 65, 05, 05]
-1391; [0A 67, 05, 05]
+02EC; [0A 67, 05, 05]
-1392; [0A 69, 05, 05]
+02ED; [0A 69, 05, 05]
-1393; [0A 6B, 05, 05]
+02EF; [0A 6B, 05, 05]
-1394; [0A 6D, 05, 05]
+02F0; [0A 6D, 05, 05]
-1395; [0A 6F, 05, 05]
+02F1; [0A 6F, 05, 05]
-1396; [0A 71, 05, 05]
+02F2; [0A 71, 05, 05]
-1397; [0A 73, 05, 05]
+02F3; [0A 73, 05, 05]
-1398; [0A 75, 05, 05]
+02F4; [0A 75, 05, 05]
-1399; [0A 77, 05, 05]
+02F5; [0A 77, 05, 05]
-A700; [0A 79, 05, 05]
+02F6; [0A 79, 05, 05]
-A701; [0A 7B, 05, 05]
+02F7; [0A 7B, 05, 05]
-A702; [0A 7D, 05, 05]
+02F8; [0A 7D, 05, 05]
-A703; [0A 7F, 05, 05]
+02F9; [0A 7F, 05, 05]
-A704; [0A 81, 05, 05]
+02FA; [0A 81, 05, 05]
-A705; [0A 83, 05, 05]
+02FB; [0A 83, 05, 05]
-A706; [0A 85, 05, 05]
+02FC; [0A 85, 05, 05]
-A707; [0A 87, 05, 05]
+02FD; [0A 87, 05, 05]
-A708; [0A 89, 05, 05]
+02FE; [0A 89, 05, 05]
-A709; [0A 8B, 05, 05]
+02FF; [0A 8B, 05, 05]
-A70A; [0A 8D, 05, 05]
+1390; [0A 8D, 05, 05]
-A70B; [0A 8F, 05, 05]
+1391; [0A 8F, 05, 05]
-A70C; [0A 91, 05, 05]
+1392; [0A 91, 05, 05]
-A70D; [0A 93, 05, 05]
+1393; [0A 93, 05, 05]
-A70E; [0A 95, 05, 05]
+1394; [0A 95, 05, 05]
-A70F; [0A 97, 05, 05]
+1395; [0A 97, 05, 05]
-A710; [0A 99, 05, 05]
+1396; [0A 99, 05, 05]
-A711; [0A 9B, 05, 05]
+1397; [0A 9B, 05, 05]
-A712; [0A 9D, 05, 05]
+1398; [0A 9D, 05, 05]
-A713; [0A 9F, 05, 05]
+1399; [0A 9F, 05, 05]
-A714; [0A A1, 05, 05]
+A700; [0A A1, 05, 05]
-A715; [0A A3, 05, 05]
+A701; [0A A3, 05, 05]
-A716; [0A A5, 05, 05]
+A702; [0A A5, 05, 05]
-00B0; [0A A7, 05, 05]
-2103; [0A A7, 05, 09][2C, 05, 93]
-2109; [0A A7, 05, 09][32, 05, 93]
+A703; [0A A7, 05, 05]
-0482; [0A A9, 05, 05]
+A704; [0A A9, 05, 05]
-060E; [0A AB, 05, 05]
+A705; [0A AB, 05, 05]
-060F; [0A AD, 05, 05]
+A706; [0A AD, 05, 05]
-06E9; [0A AF, 05, 05]
+A707; [0A AF, 05, 05]
-FDFD; [0A B1, 05, 05]
+A708; [0A B1, 05, 05]
-09FA; [0A B3, 05, 05]
+A709; [0A B3, 05, 05]
-0B70; [0A B5, 05, 05]
+A70A; [0A B5, 05, 05]
-0BF3; [0A B7, 05, 05]
+A70B; [0A B7, 05, 05]
-0BF4; [0A B9, 05, 05]
+A70C; [0A B9, 05, 05]
-0BF5; [0A BB, 05, 05]
+A70D; [0A BB, 05, 05]
-0BF6; [0A BD, 05, 05]
+A70E; [0A BD, 05, 05]
-0BF7; [0A BF, 05, 05]
+A70F; [0A BF, 05, 05]
-0BF8; [0A C1, 05, 05]
+A710; [0A C1, 05, 05]
-0BFA; [0A C3, 05, 05]
+A711; [0A C3, 05, 05]
-A828; [0A C5, 05, 05]
+A712; [0A C5, 05, 05]
-A829; [0A C7, 05, 05]
+A713; [0A C7, 05, 05]
-A82A; [0A C9, 05, 05]
+A714; [0A C9, 05, 05]
-A82B; [0A CB, 05, 05]
+A715; [0A CB, 05, 05]
-0E4F; [0A CD, 05, 05]
+A716; [0A CD, 05, 05]
-0F01; [0A CF, 05, 05]
+A717; [0A CF, 05, 05]
-0F02; [0A D1, 05, 05]
+A718; [0A D1, 05, 05]
-0F03; [0A D3, 05, 05]
+A719; [0A D3, 05, 05]
-0F13; [0A D5, 05, 05]
+A71A; [0A D5, 05, 05]
-0F15; [0A D7, 05, 05]
+A720; [0A D7, 05, 05]
-0F16; [0A D9, 05, 05]
+A721; [0A D9, 05, 05]
-0F17; [0A DB, 05, 05]
+00B0; [0A DB, 05, 05]
+2103; [0A DB, 05, 09][2D, 05, 93]
+2109; [0A DB, 05, 09][33, 05, 93]
-0F1A; [0A DD, 05, 05]
+0482; [0A DD, 05, 05]
-0F1B; [0A DF, 05, 05]
+060E; [0A DF, 05, 05]
-0F1C; [0A E1, 05, 05]
+060F; [0A E1, 05, 05]
-0F1D; [0A E3, 05, 05]
+06E9; [0A E3, 05, 05]
-0F1E; [0A E5, 05, 05]
+FDFD; [0A E5, 05, 05]
-0F1F; [0A E7, 05, 05]
+07F6; [0A E7, 05, 05]
-0F34; [0A E9, 05, 05]
+09FA; [0A E9, 05, 05]
-0F36; [0A EB, 05, 05]
+0B70; [0A EB, 05, 05]
-0F38; [0A ED, 05, 05]
+0BF3; [0A ED, 05, 05]
-0F3E; [0A EF, 05, 05]
+0BF4; [0A EF, 05, 05]
-0F3F; [0A F1, 05, 05]
+0BF5; [0A F1, 05, 05]
-0FBE; [0A F3, 05, 05]
+0BF6; [0A F3, 05, 05]
-0FBF; [0A F5, 05, 05]
+0BF7; [0A F5, 05, 05]
-0FC0; [0A F7, 05, 05]
+0BF8; [0A F7, 05, 05]
-0FC1; [0A F9, 05, 05]
+0BFA; [0A F9, 05, 05]
-0FC2; [0A FB, 05, 05]
+0CF1; [0A FB, 05, 05]
-0FC3; [0A FD, 05, 05]
+0CF2; [0A FD, 05, 05]
-0FC4; [0B 05, 05, 05]
+A828; [0B 05, 05, 05]
-0FC5; [0B 07, 05, 05]
+A829; [0B 07, 05, 05]
-0FC7; [0B 09, 05, 05]
+A82A; [0B 09, 05, 05]
-0FC8; [0B 0B, 05, 05]
+A82B; [0B 0B, 05, 05]
-0FC9; [0B 0D, 05, 05]
+0E4F; [0B 0D, 05, 05]
-0FCA; [0B 0F, 05, 05]
+0F01; [0B 0F, 05, 05]
-0FCB; [0B 11, 05, 05]
+0F02; [0B 11, 05, 05]
-0FCC; [0B 13, 05, 05]
+0F03; [0B 13, 05, 05]
-0FCF; [0B 15, 05, 05]
+0F13; [0B 15, 05, 05]
-19E0; [0B 17, 05, 05]
+0F15; [0B 17, 05, 05]
-19E1; [0B 19, 05, 05]
+0F16; [0B 19, 05, 05]
-19E2; [0B 1B, 05, 05]
+0F17; [0B 1B, 05, 05]
-19E3; [0B 1D, 05, 05]
+0F1A; [0B 1D, 05, 05]
-19E4; [0B 1F, 05, 05]
+0F1B; [0B 1F, 05, 05]
-19E5; [0B 21, 05, 05]
+0F1C; [0B 21, 05, 05]
-19E6; [0B 23, 05, 05]
+0F1D; [0B 23, 05, 05]
-19E7; [0B 25, 05, 05]
+0F1E; [0B 25, 05, 05]
-19E8; [0B 27, 05, 05]
+0F1F; [0B 27, 05, 05]
-19E9; [0B 29, 05, 05]
+0F34; [0B 29, 05, 05]
-19EA; [0B 2B, 05, 05]
+0F36; [0B 2B, 05, 05]
-19EB; [0B 2D, 05, 05]
+0F38; [0B 2D, 05, 05]
-19EC; [0B 2F, 05, 05]
+0F3E; [0B 2F, 05, 05]
-19ED; [0B 31, 05, 05]
+0F3F; [0B 31, 05, 05]
-19EE; [0B 33, 05, 05]
+0FBE; [0B 33, 05, 05]
-19EF; [0B 35, 05, 05]
+0FBF; [0B 35, 05, 05]
-19F0; [0B 37, 05, 05]
+0FC0; [0B 37, 05, 05]
-19F1; [0B 39, 05, 05]
+0FC1; [0B 39, 05, 05]
-19F2; [0B 3B, 05, 05]
+0FC2; [0B 3B, 05, 05]
-19F3; [0B 3D, 05, 05]
+0FC3; [0B 3D, 05, 05]
-19F4; [0B 3F, 05, 05]
+0FC4; [0B 3F, 05, 05]
-19F5; [0B 41, 05, 05]
+0FC5; [0B 41, 05, 05]
-19F6; [0B 43, 05, 05]
+0FC7; [0B 43, 05, 05]
-19F7; [0B 45, 05, 05]
+0FC8; [0B 45, 05, 05]
-19F8; [0B 47, 05, 05]
+0FC9; [0B 47, 05, 05]
-19F9; [0B 49, 05, 05]
+0FCA; [0B 49, 05, 05]
-19FA; [0B 4B, 05, 05]
+0FCB; [0B 4B, 05, 05]
-19FB; [0B 4D, 05, 05]
+0FCC; [0B 4D, 05, 05]
-19FC; [0B 4F, 05, 05]
+0FCF; [0B 4F, 05, 05]
-19FD; [0B 51, 05, 05]
+19E0; [0B 51, 05, 05]
-19FE; [0B 53, 05, 05]
+19E1; [0B 53, 05, 05]
-19FF; [0B 55, 05, 05]
+19E2; [0B 55, 05, 05]
-2104; [0B 57, 05, 05]
+19E3; [0B 57, 05, 05]
-2108; [0B 59, 05, 05]
+19E4; [0B 59, 05, 05]
-2114; [0B 5B, 05, 05]
+19E5; [0B 5B, 05, 05]
-2117; [0B 5D, 05, 05]
+19E6; [0B 5D, 05, 05]
-2118; [0B 5F, 05, 05]
+19E7; [0B 5F, 05, 05]
-211E; [0B 61, 05, 05]
+19E8; [0B 61, 05, 05]
-211F; [0B 63, 05, 05]
+19E9; [0B 63, 05, 05]
-2123; [0B 65, 05, 05]
+19EA; [0B 65, 05, 05]
-2125; [0B 67, 05, 05]
+19EB; [0B 67, 05, 05]
-2127; [0B 69, 05, 05]
+19EC; [0B 69, 05, 05]
-2129; [0B 6B, 05, 05]
+19ED; [0B 6B, 05, 05]
-212E; [0B 6D, 05, 05]
+19EE; [0B 6D, 05, 05]
-2132; [0B 6F, 05, 05]
+19EF; [0B 6F, 05, 05]
-213A; [0B 71, 05, 05]
+19F0; [0B 71, 05, 05]
-2141; [0B 73, 05, 05]
+19F1; [0B 73, 05, 05]
-2142; [0B 75, 05, 05]
+19F2; [0B 75, 05, 05]
-2143; [0B 77, 05, 05]
+19F3; [0B 77, 05, 05]
-2144; [0B 79, 05, 05]
+19F4; [0B 79, 05, 05]
-214A; [0B 7B, 05, 05]
+19F5; [0B 7B, 05, 05]
-214C; [0B 7D, 05, 05]
+19F6; [0B 7D, 05, 05]
-2190; [0B 7F, 05, 05]
-FFE9; [0B 7F, 05, A3]
-219A; [0B 7F, 05, 05][, A5, 05]
+19F7; [0B 7F, 05, 05]
-2192; [0B 81, 05, 05]
-FFEB; [0B 81, 05, A3]
-219B; [0B 81, 05, 05][, A5, 05]
+19F8; [0B 81, 05, 05]
-2191; [0B 83, 05, 05]
-FFEA; [0B 83, 05, A3]
+19F9; [0B 83, 05, 05]
-2193; [0B 85, 05, 05]
-FFEC; [0B 85, 05, A3]
+19FA; [0B 85, 05, 05]
-2194; [0B 87, 05, 05]
-21AE; [0B 87, 05, 05][, A5, 05]
+19FB; [0B 87, 05, 05]
-2195; [0B 89, 05, 05]
+19FC; [0B 89, 05, 05]
-2196; [0B 8B, 05, 05]
+19FD; [0B 8B, 05, 05]
-2197; [0B 8D, 05, 05]
+19FE; [0B 8D, 05, 05]
-2198; [0B 8F, 05, 05]
+19FF; [0B 8F, 05, 05]
-2199; [0B 91, 05, 05]
+1B61; [0B 91, 05, 05]
-219C; [0B 93, 05, 05]
+1B62; [0B 93, 05, 05]
-219D; [0B 95, 05, 05]
+1B63; [0B 95, 05, 05]
-219E; [0B 97, 05, 05]
+1B64; [0B 97, 05, 05]
-219F; [0B 99, 05, 05]
+1B65; [0B 99, 05, 05]
-21A0; [0B 9B, 05, 05]
+1B66; [0B 9B, 05, 05]
-21A1; [0B 9D, 05, 05]
+1B67; [0B 9D, 05, 05]
-21A2; [0B 9F, 05, 05]
+1B68; [0B 9F, 05, 05]
-21A3; [0B A1, 05, 05]
+1B69; [0B A1, 05, 05]
-21A4; [0B A3, 05, 05]
+1B6A; [0B A3, 05, 05]
-21A5; [0B A5, 05, 05]
+1B74; [0B A5, 05, 05]
-21A6; [0B A7, 05, 05]
+1B75; [0B A7, 05, 05]
-21A7; [0B A9, 05, 05]
+1B76; [0B A9, 05, 05]
-21A8; [0B AB, 05, 05]
+1B77; [0B AB, 05, 05]
-21A9; [0B AD, 05, 05]
+1B78; [0B AD, 05, 05]
-21AA; [0B AF, 05, 05]
+1B79; [0B AF, 05, 05]
-21AB; [0B B1, 05, 05]
+1B7A; [0B B1, 05, 05]
-21AC; [0B B3, 05, 05]
+1B7B; [0B B3, 05, 05]
-21AD; [0B B5, 05, 05]
+1B7C; [0B B5, 05, 05]
-21AF; [0B B7, 05, 05]
+2104; [0B B7, 05, 05]
-21B0; [0B B9, 05, 05]
+2108; [0B B9, 05, 05]
-21B1; [0B BB, 05, 05]
+2114; [0B BB, 05, 05]
-21B2; [0B BD, 05, 05]
+2117; [0B BD, 05, 05]
-21B3; [0B BF, 05, 05]
+2118; [0B BF, 05, 05]
-21B4; [0B C1, 05, 05]
+211E; [0B C1, 05, 05]
-21B5; [0B C3, 05, 05]
+211F; [0B C3, 05, 05]
-21B6; [0B C5, 05, 05]
+2123; [0B C5, 05, 05]
-21B7; [0B C7, 05, 05]
+2125; [0B C7, 05, 05]
-21B8; [0B C9, 05, 05]
+2127; [0B C9, 05, 05]
-21B9; [0B CB, 05, 05]
+2129; [0B CB, 05, 05]
-21BA; [0B CD, 05, 05]
+212E; [0B CD, 05, 05]
-21BB; [0B CF, 05, 05]
+213A; [0B CF, 05, 05]
-21BC; [0B D1, 05, 05]
+2141; [0B D1, 05, 05]
-21BD; [0B D3, 05, 05]
+2142; [0B D3, 05, 05]
-21BE; [0B D5, 05, 05]
+2143; [0B D5, 05, 05]
-21BF; [0B D7, 05, 05]
+2144; [0B D7, 05, 05]
-21C0; [0B D9, 05, 05]
+214A; [0B D9, 05, 05]
-21C1; [0B DB, 05, 05]
+214C; [0B DB, 05, 05]
-21C2; [0B DD, 05, 05]
+214D; [0B DD, 05, 05]
-21C3; [0B DF, 05, 05]
+2190; [0B DF, 05, 05]
+FFE9; [0B DF, 05, A3]
+219A; [0B DF, 05, 05][, A5, 05]
-21C4; [0B E1, 05, 05]
+2192; [0B E1, 05, 05]
+FFEB; [0B E1, 05, A3]
+219B; [0B E1, 05, 05][, A5, 05]
-21C5; [0B E3, 05, 05]
+2191; [0B E3, 05, 05]
+FFEA; [0B E3, 05, A3]
-21C6; [0B E5, 05, 05]
+2193; [0B E5, 05, 05]
+FFEC; [0B E5, 05, A3]
-21C7; [0B E7, 05, 05]
+2194; [0B E7, 05, 05]
+21AE; [0B E7, 05, 05][, A5, 05]
-21C8; [0B E9, 05, 05]
+2195; [0B E9, 05, 05]
-21C9; [0B EB, 05, 05]
+2196; [0B EB, 05, 05]
-21CA; [0B ED, 05, 05]
+2197; [0B ED, 05, 05]
-21CB; [0B EF, 05, 05]
+2198; [0B EF, 05, 05]
-21CC; [0B F1, 05, 05]
+2199; [0B F1, 05, 05]
-21D0; [0B F3, 05, 05]
-21CD; [0B F3, 05, 05][, A5, 05]
+219C; [0B F3, 05, 05]
-21D1; [0B F5, 05, 05]
+219D; [0B F5, 05, 05]
-21D2; [0B F7, 05, 05]
-21CF; [0B F7, 05, 05][, A5, 05]
+219E; [0B F7, 05, 05]
-21D3; [0B F9, 05, 05]
+219F; [0B F9, 05, 05]
-21D4; [0B FB, 05, 05]
-21CE; [0B FB, 05, 05][, A5, 05]
+21A0; [0B FB, 05, 05]
-21D5; [0B FD, 05, 05]
+21A1; [0B FD, 05, 05]
-21D6; [0C 05, 05, 05]
+21A2; [0C 05, 05, 05]
-21D7; [0C 07, 05, 05]
+21A3; [0C 07, 05, 05]
-21D8; [0C 09, 05, 05]
+21A4; [0C 09, 05, 05]
-21D9; [0C 0B, 05, 05]
+21A5; [0C 0B, 05, 05]
-21DA; [0C 0D, 05, 05]
+21A6; [0C 0D, 05, 05]
-21DB; [0C 0F, 05, 05]
+21A7; [0C 0F, 05, 05]
-21DC; [0C 11, 05, 05]
+21A8; [0C 11, 05, 05]
-21DD; [0C 13, 05, 05]
+21A9; [0C 13, 05, 05]
-21DE; [0C 15, 05, 05]
+21AA; [0C 15, 05, 05]
-21DF; [0C 17, 05, 05]
+21AB; [0C 17, 05, 05]
-21E0; [0C 19, 05, 05]
+21AC; [0C 19, 05, 05]
-21E1; [0C 1B, 05, 05]
+21AD; [0C 1B, 05, 05]
-21E2; [0C 1D, 05, 05]
+21AF; [0C 1D, 05, 05]
-21E3; [0C 1F, 05, 05]
+21B0; [0C 1F, 05, 05]
-21E4; [0C 21, 05, 05]
+21B1; [0C 21, 05, 05]
-21E5; [0C 23, 05, 05]
+21B2; [0C 23, 05, 05]
-21E6; [0C 25, 05, 05]
+21B3; [0C 25, 05, 05]
-21E7; [0C 27, 05, 05]
+21B4; [0C 27, 05, 05]
-21E8; [0C 29, 05, 05]
+21B5; [0C 29, 05, 05]
-21E9; [0C 2B, 05, 05]
+21B6; [0C 2B, 05, 05]
-21EA; [0C 2D, 05, 05]
+21B7; [0C 2D, 05, 05]
-21EB; [0C 2F, 05, 05]
+21B8; [0C 2F, 05, 05]
-21EC; [0C 31, 05, 05]
+21B9; [0C 31, 05, 05]
-21ED; [0C 33, 05, 05]
+21BA; [0C 33, 05, 05]
-21EE; [0C 35, 05, 05]
+21BB; [0C 35, 05, 05]
-21EF; [0C 37, 05, 05]
+21BC; [0C 37, 05, 05]
-21F0; [0C 39, 05, 05]
+21BD; [0C 39, 05, 05]
-21F1; [0C 3B, 05, 05]
+21BE; [0C 3B, 05, 05]
-21F2; [0C 3D, 05, 05]
+21BF; [0C 3D, 05, 05]
-21F3; [0C 3F, 05, 05]
+21C0; [0C 3F, 05, 05]
-21F4; [0C 41, 05, 05]
+21C1; [0C 41, 05, 05]
-21F5; [0C 43, 05, 05]
+21C2; [0C 43, 05, 05]
-21F6; [0C 45, 05, 05]
+21C3; [0C 45, 05, 05]
-21F7; [0C 47, 05, 05]
+21C4; [0C 47, 05, 05]
-21F8; [0C 49, 05, 05]
+21C5; [0C 49, 05, 05]
-21F9; [0C 4B, 05, 05]
+21C6; [0C 4B, 05, 05]
-21FA; [0C 4D, 05, 05]
+21C7; [0C 4D, 05, 05]
-21FB; [0C 4F, 05, 05]
+21C8; [0C 4F, 05, 05]
-21FC; [0C 51, 05, 05]
+21C9; [0C 51, 05, 05]
-21FD; [0C 53, 05, 05]
+21CA; [0C 53, 05, 05]
-21FE; [0C 55, 05, 05]
+21CB; [0C 55, 05, 05]
-21FF; [0C 57, 05, 05]
+21CC; [0C 57, 05, 05]
-2200; [0C 59, 05, 05]
+21D0; [0C 59, 05, 05]
+21CD; [0C 59, 05, 05][, A5, 05]
-2201; [0C 5B, 05, 05]
+21D1; [0C 5B, 05, 05]
-2202; [0C 5D, 05, 05]
-D835 DEDB; [0C 5D, 05, 0B]
-D835 DF15; [0C 5D, 05, 0B]
-D835 DF4F; [0C 5D, 05, 0B]
-D835 DF89; [0C 5D, 05, 0B]
-D835 DFC3; [0C 5D, 05, 0B]
+21D2; [0C 5D, 05, 05]
+21CF; [0C 5D, 05, 05][, A5, 05]
-2203; [0C 5F, 05, 05]
-2204; [0C 5F, 05, 05][, A5, 05]
+21D3; [0C 5F, 05, 05]
-2205; [0C 61, 05, 05]
+21D4; [0C 61, 05, 05]
+21CE; [0C 61, 05, 05][, A5, 05]
-2206; [0C 63, 05, 05]
+21D5; [0C 63, 05, 05]
-2207; [0C 65, 05, 05]
-D835 DEC1; [0C 65, 05, 0B]
-D835 DEFB; [0C 65, 05, 0B]
-D835 DF35; [0C 65, 05, 0B]
-D835 DF6F; [0C 65, 05, 0B]
-D835 DFA9; [0C 65, 05, 0B]
+21D6; [0C 65, 05, 05]
-2208; [0C 67, 05, 05]
-2209; [0C 67, 05, 05][, A5, 05]
+21D7; [0C 67, 05, 05]
-220A; [0C 69, 05, 05]
+21D8; [0C 69, 05, 05]
-220B; [0C 6B, 05, 05]
-220C; [0C 6B, 05, 05][, A5, 05]
+21D9; [0C 6B, 05, 05]
-220D; [0C 6D, 05, 05]
+21DA; [0C 6D, 05, 05]
-03F6; [0C 6F, 05, 05]
+21DB; [0C 6F, 05, 05]
-220E; [0C 71, 05, 05]
+21DC; [0C 71, 05, 05]
-220F; [0C 73, 05, 05]
+21DD; [0C 73, 05, 05]
-2210; [0C 75, 05, 05]
+21DE; [0C 75, 05, 05]
-2211; [0C 77, 05, 05]
-2140; [0C 77, 05, 0B]
+21DF; [0C 77, 05, 05]
-002B; [0C 79, 05, 05]
-FF0B; [0C 79, 05, 07]
-FB29; [0C 79, 05, 0B]
-FE62; [0C 79, 05, 1D]
-207A; [0C 79, 05, 27]
-208A; [0C 79, 05, 29]
+21E0; [0C 79, 05, 05]
-00B1; [0C 7B, 05, 05]
+21E1; [0C 7B, 05, 05]
-00F7; [0C 7D, 05, 05]
+21E2; [0C 7D, 05, 05]
-00D7; [0C 7F, 05, 05]
+21E3; [0C 7F, 05, 05]
-003C; [0C 81, 05, 05]
-FF1C; [0C 81, 05, 07]
-FE64; [0C 81, 05, 1D]
-226E; [0C 81, 05, 05][, A5, 05]
+21E4; [0C 81, 05, 05]
-003D; [0C 83, 05, 05]
-FF1D; [0C 83, 05, 07]
-FE66; [0C 83, 05, 1D]
-207C; [0C 83, 05, 27]
-208C; [0C 83, 05, 29]
-2260; [0C 83, 05, 05][, A5, 05]
-2A75; [0C 83, 05, 09][0C 83, 05, 09]
-2A76; [0C 83, 05, 09][0C 83, 05, 09][0C 83, 05, 3D]
+21E5; [0C 83, 05, 05]
-003E; [0C 85, 05, 05]
-FF1E; [0C 85, 05, 07]
-FE65; [0C 85, 05, 1D]
-226F; [0C 85, 05, 05][, A5, 05]
+21E6; [0C 85, 05, 05]
-00AC; [0C 87, 05, 05]
-FFE2; [0C 87, 05, 07]
+21E7; [0C 87, 05, 05]
-007C; [0C 89, 05, 05]
-FF5C; [0C 89, 05, 07]
+21E8; [0C 89, 05, 05]
-00A6; [0C 8B, 05, 05]
-FFE4; [0C 8B, 05, 07]
+21E9; [0C 8B, 05, 05]
-2016; [0C 8D, 05, 05]
+21EA; [0C 8D, 05, 05]
-007E; [0C 8F, 05, 05]
-FF5E; [0C 8F, 05, 07]
+21EB; [0C 8F, 05, 05]
-2212; [0C 91, 05, 05]
-207B; [0C 91, 05, 27]
-208B; [0C 91, 05, 29]
+21EC; [0C 91, 05, 05]
-2213; [0C 93, 05, 05]
+21ED; [0C 93, 05, 05]
-2214; [0C 95, 05, 05]
+21EE; [0C 95, 05, 05]
-2215; [0C 97, 05, 05]
+21EF; [0C 97, 05, 05]
-2216; [0C 99, 05, 05]
+21F0; [0C 99, 05, 05]
-2217; [0C 9B, 05, 05]
+21F1; [0C 9B, 05, 05]
-2218; [0C 9D, 05, 05]
+21F2; [0C 9D, 05, 05]
-2219; [0C 9F, 05, 05]
+21F3; [0C 9F, 05, 05]
-221A; [0C A1, 05, 05]
+21F4; [0C A1, 05, 05]
-221B; [0C A3, 05, 05]
+21F5; [0C A3, 05, 05]
-221C; [0C A5, 05, 05]
+21F6; [0C A5, 05, 05]
-221D; [0C A7, 05, 05]
+21F7; [0C A7, 05, 05]
-221E; [0C A9, 05, 05]
+21F8; [0C A9, 05, 05]
-221F; [0C AB, 05, 05]
+21F9; [0C AB, 05, 05]
-2220; [0C AD, 05, 05]
+21FA; [0C AD, 05, 05]
-2221; [0C AF, 05, 05]
+21FB; [0C AF, 05, 05]
-2222; [0C B1, 05, 05]
+21FC; [0C B1, 05, 05]
-2223; [0C B3, 05, 05]
-2224; [0C B3, 05, 05][, A5, 05]
+21FD; [0C B3, 05, 05]
-2225; [0C B5, 05, 05]
-2226; [0C B5, 05, 05][, A5, 05]
+21FE; [0C B5, 05, 05]
-2227; [0C B7, 05, 05]
+21FF; [0C B7, 05, 05]
-2228; [0C B9, 05, 05]
+2200; [0C B9, 05, 05]
-2229; [0C BB, 05, 05]
+2201; [0C BB, 05, 05]
-222A; [0C BD, 05, 05]
+2202; [0C BD, 05, 05]
+D835 DEDB; [0C BD, 05, 0B]
+D835 DF15; [0C BD, 05, 0B]
+D835 DF4F; [0C BD, 05, 0B]
+D835 DF89; [0C BD, 05, 0B]
+D835 DFC3; [0C BD, 05, 0B]
-222B; [0C BF, 05, 05]
-222C; [0C BF, 05, 09][0C BF, 05, 09]
-222D; [0C BF, 05, 09][0C BF, 05, 09][0C BF, 05, 3D]
-2A0C; [0C BF, 05, 09][0C BF, 05, 09][0C BF, 05, 3D][0C BF, 05, 3D]
+2203; [0C BF, 05, 05]
+2204; [0C BF, 05, 05][, A5, 05]
-222E; [0C C1, 05, 05]
-222F; [0C C1, 05, 09][0C C1, 05, 09]
-2230; [0C C1, 05, 09][0C C1, 05, 09][0C C1, 05, 3D]
+2205; [0C C1, 05, 05]
-2231; [0C C3, 05, 05]
+2206; [0C C3, 05, 05]
-2232; [0C C5, 05, 05]
+2207; [0C C5, 05, 05]
+D835 DEC1; [0C C5, 05, 0B]
+D835 DEFB; [0C C5, 05, 0B]
+D835 DF35; [0C C5, 05, 0B]
+D835 DF6F; [0C C5, 05, 0B]
+D835 DFA9; [0C C5, 05, 0B]
-2233; [0C C7, 05, 05]
+2208; [0C C7, 05, 05]
+2209; [0C C7, 05, 05][, A5, 05]
-2234; [0C C9, 05, 05]
+220A; [0C C9, 05, 05]
-2235; [0C CB, 05, 05]
+220B; [0C CB, 05, 05]
+220C; [0C CB, 05, 05][, A5, 05]
-2236; [0C CD, 05, 05]
+220D; [0C CD, 05, 05]
-2237; [0C CF, 05, 05]
+03F6; [0C CF, 05, 05]
-2238; [0C D1, 05, 05]
+220E; [0C D1, 05, 05]
-2239; [0C D3, 05, 05]
+220F; [0C D3, 05, 05]
-223A; [0C D5, 05, 05]
+2210; [0C D5, 05, 05]
-223B; [0C D7, 05, 05]
+2211; [0C D7, 05, 05]
+2140; [0C D7, 05, 0B]
-223C; [0C D9, 05, 05]
-2241; [0C D9, 05, 05][, A5, 05]
+002B; [0C D9, 05, 05]
+FF0B; [0C D9, 05, 07]
+FB29; [0C D9, 05, 0B]
+FE62; [0C D9, 05, 1D]
+207A; [0C D9, 05, 27]
+208A; [0C D9, 05, 29]
-223D; [0C DB, 05, 05]
+00B1; [0C DB, 05, 05]
-223E; [0C DD, 05, 05]
+00F7; [0C DD, 05, 05]
-223F; [0C DF, 05, 05]
+00D7; [0C DF, 05, 05]
-2240; [0C E1, 05, 05]
+003C; [0C E1, 05, 05]
+FF1C; [0C E1, 05, 07]
+FE64; [0C E1, 05, 1D]
+226E; [0C E1, 05, 05][, A5, 05]
-2242; [0C E3, 05, 05]
+003D; [0C E3, 05, 05]
+FF1D; [0C E3, 05, 07]
+FE66; [0C E3, 05, 1D]
+207C; [0C E3, 05, 27]
+208C; [0C E3, 05, 29]
+2260; [0C E3, 05, 05][, A5, 05]
+2A75; [0C E3, 05, 09][0C E3, 05, 09]
+2A76; [0C E3, 05, 09][0C E3, 05, 09][0C E3, 05, 3D]
-2243; [0C E5, 05, 05]
-2244; [0C E5, 05, 05][, A5, 05]
+003E; [0C E5, 05, 05]
+FF1E; [0C E5, 05, 07]
+FE65; [0C E5, 05, 1D]
+226F; [0C E5, 05, 05][, A5, 05]
-2245; [0C E7, 05, 05]
-2247; [0C E7, 05, 05][, A5, 05]
+00AC; [0C E7, 05, 05]
+FFE2; [0C E7, 05, 07]
-2246; [0C E9, 05, 05]
+007C; [0C E9, 05, 05]
+FF5C; [0C E9, 05, 07]
-2248; [0C EB, 05, 05]
-2249; [0C EB, 05, 05][, A5, 05]
+00A6; [0C EB, 05, 05]
+FFE4; [0C EB, 05, 07]
-224A; [0C ED, 05, 05]
+2016; [0C ED, 05, 05]
-224B; [0C EF, 05, 05]
+007E; [0C EF, 05, 05]
+FF5E; [0C EF, 05, 07]
-224C; [0C F1, 05, 05]
+2212; [0C F1, 05, 05]
+207B; [0C F1, 05, 27]
+208B; [0C F1, 05, 29]
-224D; [0C F3, 05, 05]
-226D; [0C F3, 05, 05][, A5, 05]
+2213; [0C F3, 05, 05]
-224E; [0C F5, 05, 05]
+2214; [0C F5, 05, 05]
-224F; [0C F7, 05, 05]
+2215; [0C F7, 05, 05]
-2250; [0C F9, 05, 05]
+2216; [0C F9, 05, 05]
-2251; [0C FB, 05, 05]
+2217; [0C FB, 05, 05]
-2252; [0C FD, 05, 05]
+2218; [0C FD, 05, 05]
-2253; [0D 05, 05, 05]
+2219; [0D 05, 05, 05]
-2254; [0D 07, 05, 05]
+221A; [0D 07, 05, 05]
-2255; [0D 09, 05, 05]
+221B; [0D 09, 05, 05]
-2256; [0D 0B, 05, 05]
+221C; [0D 0B, 05, 05]
-2257; [0D 0D, 05, 05]
+221D; [0D 0D, 05, 05]
-2258; [0D 0F, 05, 05]
+221E; [0D 0F, 05, 05]
-2259; [0D 11, 05, 05]
+221F; [0D 11, 05, 05]
-225A; [0D 13, 05, 05]
+2220; [0D 13, 05, 05]
-225B; [0D 15, 05, 05]
+2221; [0D 15, 05, 05]
-225C; [0D 17, 05, 05]
+2222; [0D 17, 05, 05]
-225D; [0D 19, 05, 05]
+2223; [0D 19, 05, 05]
+2224; [0D 19, 05, 05][, A5, 05]
-225E; [0D 1B, 05, 05]
+2225; [0D 1B, 05, 05]
+2226; [0D 1B, 05, 05][, A5, 05]
-225F; [0D 1D, 05, 05]
+2227; [0D 1D, 05, 05]
-2261; [0D 1F, 05, 05]
-2262; [0D 1F, 05, 05][, A5, 05]
+2228; [0D 1F, 05, 05]
-2263; [0D 21, 05, 05]
+2229; [0D 21, 05, 05]
-2264; [0D 23, 05, 05]
-2270; [0D 23, 05, 05][, A5, 05]
+222A; [0D 23, 05, 05]
-2265; [0D 25, 05, 05]
-2271; [0D 25, 05, 05][, A5, 05]
+222B; [0D 25, 05, 05]
+222C; [0D 25, 05, 09][0D 25, 05, 09]
+222D; [0D 25, 05, 09][0D 25, 05, 09][0D 25, 05, 3D]
+2A0C; [0D 25, 05, 09][0D 25, 05, 09][0D 25, 05, 3D][0D 25, 05, 3D]
-2266; [0D 27, 05, 05]
+222E; [0D 27, 05, 05]
+222F; [0D 27, 05, 09][0D 27, 05, 09]
+2230; [0D 27, 05, 09][0D 27, 05, 09][0D 27, 05, 3D]
-2267; [0D 29, 05, 05]
+2231; [0D 29, 05, 05]
-2268; [0D 2B, 05, 05]
+2232; [0D 2B, 05, 05]
-2269; [0D 2D, 05, 05]
+2233; [0D 2D, 05, 05]
-226A; [0D 2F, 05, 05]
+2234; [0D 2F, 05, 05]
-226B; [0D 31, 05, 05]
+2235; [0D 31, 05, 05]
-226C; [0D 33, 05, 05]
+2236; [0D 33, 05, 05]
-2272; [0D 35, 05, 05]
-2274; [0D 35, 05, 05][, A5, 05]
+2237; [0D 35, 05, 05]
-2273; [0D 37, 05, 05]
-2275; [0D 37, 05, 05][, A5, 05]
+2238; [0D 37, 05, 05]
-2276; [0D 39, 05, 05]
-2278; [0D 39, 05, 05][, A5, 05]
+2239; [0D 39, 05, 05]
-2277; [0D 3B, 05, 05]
-2279; [0D 3B, 05, 05][, A5, 05]
+223A; [0D 3B, 05, 05]
-227A; [0D 3D, 05, 05]
-2280; [0D 3D, 05, 05][, A5, 05]
+223B; [0D 3D, 05, 05]
-227B; [0D 3F, 05, 05]
-2281; [0D 3F, 05, 05][, A5, 05]
+223C; [0D 3F, 05, 05]
+2241; [0D 3F, 05, 05][, A5, 05]
-227C; [0D 41, 05, 05]
-22E0; [0D 41, 05, 05][, A5, 05]
+223D; [0D 41, 05, 05]
-227D; [0D 43, 05, 05]
-22E1; [0D 43, 05, 05][, A5, 05]
+223E; [0D 43, 05, 05]
-227E; [0D 45, 05, 05]
+223F; [0D 45, 05, 05]
-227F; [0D 47, 05, 05]
+2240; [0D 47, 05, 05]
-2282; [0D 49, 05, 05]
-2284; [0D 49, 05, 05][, A5, 05]
+2242; [0D 49, 05, 05]
-2283; [0D 4B, 05, 05]
-2285; [0D 4B, 05, 05][, A5, 05]
+2243; [0D 4B, 05, 05]
+2244; [0D 4B, 05, 05][, A5, 05]
-2286; [0D 4D, 05, 05]
-2288; [0D 4D, 05, 05][, A5, 05]
+2245; [0D 4D, 05, 05]
+2247; [0D 4D, 05, 05][, A5, 05]
-2287; [0D 4F, 05, 05]
-2289; [0D 4F, 05, 05][, A5, 05]
+2246; [0D 4F, 05, 05]
-228A; [0D 51, 05, 05]
+2248; [0D 51, 05, 05]
+2249; [0D 51, 05, 05][, A5, 05]
-228B; [0D 53, 05, 05]
+224A; [0D 53, 05, 05]
-228C; [0D 55, 05, 05]
+224B; [0D 55, 05, 05]
-228D; [0D 57, 05, 05]
+224C; [0D 57, 05, 05]
-228E; [0D 59, 05, 05]
+224D; [0D 59, 05, 05]
+226D; [0D 59, 05, 05][, A5, 05]
-228F; [0D 5B, 05, 05]
+224E; [0D 5B, 05, 05]
-2290; [0D 5D, 05, 05]
+224F; [0D 5D, 05, 05]
-2291; [0D 5F, 05, 05]
-22E2; [0D 5F, 05, 05][, A5, 05]
+2250; [0D 5F, 05, 05]
-2292; [0D 61, 05, 05]
-22E3; [0D 61, 05, 05][, A5, 05]
+2251; [0D 61, 05, 05]
-2293; [0D 63, 05, 05]
+2252; [0D 63, 05, 05]
-2294; [0D 65, 05, 05]
+2253; [0D 65, 05, 05]
-2295; [0D 67, 05, 05]
+2254; [0D 67, 05, 05]
-2296; [0D 69, 05, 05]
+2255; [0D 69, 05, 05]
-2297; [0D 6B, 05, 05]
+2256; [0D 6B, 05, 05]
-2298; [0D 6D, 05, 05]
+2257; [0D 6D, 05, 05]
-2299; [0D 6F, 05, 05]
+2258; [0D 6F, 05, 05]
-229A; [0D 71, 05, 05]
+2259; [0D 71, 05, 05]
-229B; [0D 73, 05, 05]
+225A; [0D 73, 05, 05]
-229C; [0D 75, 05, 05]
+225B; [0D 75, 05, 05]
-229D; [0D 77, 05, 05]
+225C; [0D 77, 05, 05]
-229E; [0D 79, 05, 05]
+225D; [0D 79, 05, 05]
-229F; [0D 7B, 05, 05]
+225E; [0D 7B, 05, 05]
-22A0; [0D 7D, 05, 05]
+225F; [0D 7D, 05, 05]
-22A1; [0D 7F, 05, 05]
+2261; [0D 7F, 05, 05]
+2262; [0D 7F, 05, 05][, A5, 05]
-22A2; [0D 81, 05, 05]
-22AC; [0D 81, 05, 05][, A5, 05]
+2263; [0D 81, 05, 05]
-22A3; [0D 83, 05, 05]
+2264; [0D 83, 05, 05]
+2270; [0D 83, 05, 05][, A5, 05]
-22A4; [0D 85, 05, 05]
+2265; [0D 85, 05, 05]
+2271; [0D 85, 05, 05][, A5, 05]
-22A5; [0D 87, 05, 05]
+2266; [0D 87, 05, 05]
-22A6; [0D 89, 05, 05]
+2267; [0D 89, 05, 05]
-22A7; [0D 8B, 05, 05]
+2268; [0D 8B, 05, 05]
-22A8; [0D 8D, 05, 05]
-22AD; [0D 8D, 05, 05][, A5, 05]
+2269; [0D 8D, 05, 05]
-22A9; [0D 8F, 05, 05]
-22AE; [0D 8F, 05, 05][, A5, 05]
+226A; [0D 8F, 05, 05]
-22AA; [0D 91, 05, 05]
+226B; [0D 91, 05, 05]
-22AB; [0D 93, 05, 05]
-22AF; [0D 93, 05, 05][, A5, 05]
+226C; [0D 93, 05, 05]
-22B0; [0D 95, 05, 05]
+2272; [0D 95, 05, 05]
+2274; [0D 95, 05, 05][, A5, 05]
-22B1; [0D 97, 05, 05]
+2273; [0D 97, 05, 05]
+2275; [0D 97, 05, 05][, A5, 05]
-22B2; [0D 99, 05, 05]
-22EA; [0D 99, 05, 05][, A5, 05]
+2276; [0D 99, 05, 05]
+2278; [0D 99, 05, 05][, A5, 05]
-22B3; [0D 9B, 05, 05]
-22EB; [0D 9B, 05, 05][, A5, 05]
+2277; [0D 9B, 05, 05]
+2279; [0D 9B, 05, 05][, A5, 05]
-22B4; [0D 9D, 05, 05]
-22EC; [0D 9D, 05, 05][, A5, 05]
+227A; [0D 9D, 05, 05]
+2280; [0D 9D, 05, 05][, A5, 05]
-22B5; [0D 9F, 05, 05]
-22ED; [0D 9F, 05, 05][, A5, 05]
+227B; [0D 9F, 05, 05]
+2281; [0D 9F, 05, 05][, A5, 05]
-22B6; [0D A1, 05, 05]
+227C; [0D A1, 05, 05]
+22E0; [0D A1, 05, 05][, A5, 05]
-22B7; [0D A3, 05, 05]
+227D; [0D A3, 05, 05]
+22E1; [0D A3, 05, 05][, A5, 05]
-22B8; [0D A5, 05, 05]
+227E; [0D A5, 05, 05]
-22B9; [0D A7, 05, 05]
+227F; [0D A7, 05, 05]
-22BA; [0D A9, 05, 05]
+2282; [0D A9, 05, 05]
+2284; [0D A9, 05, 05][, A5, 05]
-22BB; [0D AB, 05, 05]
+2283; [0D AB, 05, 05]
+2285; [0D AB, 05, 05][, A5, 05]
-22BC; [0D AD, 05, 05]
+2286; [0D AD, 05, 05]
+2288; [0D AD, 05, 05][, A5, 05]
-22BD; [0D AF, 05, 05]
+2287; [0D AF, 05, 05]
+2289; [0D AF, 05, 05][, A5, 05]
-22BE; [0D B1, 05, 05]
+228A; [0D B1, 05, 05]
-22BF; [0D B3, 05, 05]
+228B; [0D B3, 05, 05]
-22C0; [0D B5, 05, 05]
+228C; [0D B5, 05, 05]
-22C1; [0D B7, 05, 05]
+228D; [0D B7, 05, 05]
-22C2; [0D B9, 05, 05]
+228E; [0D B9, 05, 05]
-22C3; [0D BB, 05, 05]
+228F; [0D BB, 05, 05]
-22C4; [0D BD, 05, 05]
+2290; [0D BD, 05, 05]
-22C5; [0D BF, 05, 05]
+2291; [0D BF, 05, 05]
+22E2; [0D BF, 05, 05][, A5, 05]
-22C6; [0D C1, 05, 05]
+2292; [0D C1, 05, 05]
+22E3; [0D C1, 05, 05][, A5, 05]
-22C7; [0D C3, 05, 05]
+2293; [0D C3, 05, 05]
-22C8; [0D C5, 05, 05]
+2294; [0D C5, 05, 05]
-22C9; [0D C7, 05, 05]
+2295; [0D C7, 05, 05]
-22CA; [0D C9, 05, 05]
+2296; [0D C9, 05, 05]
-22CB; [0D CB, 05, 05]
+2297; [0D CB, 05, 05]
-22CC; [0D CD, 05, 05]
+2298; [0D CD, 05, 05]
-22CD; [0D CF, 05, 05]
+2299; [0D CF, 05, 05]
-22CE; [0D D1, 05, 05]
+229A; [0D D1, 05, 05]
-22CF; [0D D3, 05, 05]
+229B; [0D D3, 05, 05]
-22D0; [0D D5, 05, 05]
+229C; [0D D5, 05, 05]
-22D1; [0D D7, 05, 05]
+229D; [0D D7, 05, 05]
-22D2; [0D D9, 05, 05]
+229E; [0D D9, 05, 05]
-22D3; [0D DB, 05, 05]
+229F; [0D DB, 05, 05]
-22D4; [0D DD, 05, 05]
+22A0; [0D DD, 05, 05]
-22D5; [0D DF, 05, 05]
+22A1; [0D DF, 05, 05]
-22D6; [0D E1, 05, 05]
+22A2; [0D E1, 05, 05]
+22AC; [0D E1, 05, 05][, A5, 05]
-22D7; [0D E3, 05, 05]
+22A3; [0D E3, 05, 05]
-22D8; [0D E5, 05, 05]
+22A4; [0D E5, 05, 05]
-22D9; [0D E7, 05, 05]
+22A5; [0D E7, 05, 05]
-22DA; [0D E9, 05, 05]
+22A6; [0D E9, 05, 05]
-22DB; [0D EB, 05, 05]
+22A7; [0D EB, 05, 05]
-22DC; [0D ED, 05, 05]
+22A8; [0D ED, 05, 05]
+22AD; [0D ED, 05, 05][, A5, 05]
-22DD; [0D EF, 05, 05]
+22A9; [0D EF, 05, 05]
+22AE; [0D EF, 05, 05][, A5, 05]
-22DE; [0D F1, 05, 05]
+22AA; [0D F1, 05, 05]
-22DF; [0D F3, 05, 05]
+22AB; [0D F3, 05, 05]
+22AF; [0D F3, 05, 05][, A5, 05]
-22E4; [0D F5, 05, 05]
+22B0; [0D F5, 05, 05]
-22E5; [0D F7, 05, 05]
+22B1; [0D F7, 05, 05]
-22E6; [0D F9, 05, 05]
+22B2; [0D F9, 05, 05]
+22EA; [0D F9, 05, 05][, A5, 05]
-22E7; [0D FB, 05, 05]
+22B3; [0D FB, 05, 05]
+22EB; [0D FB, 05, 05][, A5, 05]
-22E8; [0D FD, 05, 05]
+22B4; [0D FD, 05, 05]
+22EC; [0D FD, 05, 05][, A5, 05]
-22E9; [0E 05, 05, 05]
+22B5; [0E 05, 05, 05]
+22ED; [0E 05, 05, 05][, A5, 05]
-22EE; [0E 07, 05, 05]
+22B6; [0E 07, 05, 05]
-22EF; [0E 09, 05, 05]
+22B7; [0E 09, 05, 05]
-22F0; [0E 0B, 05, 05]
+22B8; [0E 0B, 05, 05]
-22F1; [0E 0D, 05, 05]
+22B9; [0E 0D, 05, 05]
-22F2; [0E 0F, 05, 05]
+22BA; [0E 0F, 05, 05]
-22F3; [0E 11, 05, 05]
+22BB; [0E 11, 05, 05]
-22F4; [0E 13, 05, 05]
+22BC; [0E 13, 05, 05]
-22F5; [0E 15, 05, 05]
+22BD; [0E 15, 05, 05]
-22F6; [0E 17, 05, 05]
+22BE; [0E 17, 05, 05]
-22F7; [0E 19, 05, 05]
+22BF; [0E 19, 05, 05]
-22F8; [0E 1B, 05, 05]
+22C0; [0E 1B, 05, 05]
-22F9; [0E 1D, 05, 05]
+22C1; [0E 1D, 05, 05]
-22FA; [0E 1F, 05, 05]
+22C2; [0E 1F, 05, 05]
-22FB; [0E 21, 05, 05]
+22C3; [0E 21, 05, 05]
-22FC; [0E 23, 05, 05]
+22C4; [0E 23, 05, 05]
-22FD; [0E 25, 05, 05]
+22C5; [0E 25, 05, 05]
-22FE; [0E 27, 05, 05]
+22C6; [0E 27, 05, 05]
-22FF; [0E 29, 05, 05]
+22C7; [0E 29, 05, 05]
-2300; [0E 2B, 05, 05]
+22C8; [0E 2B, 05, 05]
-2301; [0E 2D, 05, 05]
+22C9; [0E 2D, 05, 05]
-2302; [0E 2F, 05, 05]
+22CA; [0E 2F, 05, 05]
-2303; [0E 31, 05, 05]
+22CB; [0E 31, 05, 05]
-2304; [0E 33, 05, 05]
+22CC; [0E 33, 05, 05]
-2305; [0E 35, 05, 05]
+22CD; [0E 35, 05, 05]
-2306; [0E 37, 05, 05]
+22CE; [0E 37, 05, 05]
-2307; [0E 39, 05, 05]
+22CF; [0E 39, 05, 05]
-2308; [0E 3B, 05, 05]
+22D0; [0E 3B, 05, 05]
-2309; [0E 3D, 05, 05]
+22D1; [0E 3D, 05, 05]
-230A; [0E 3F, 05, 05]
+22D2; [0E 3F, 05, 05]
-230B; [0E 41, 05, 05]
+22D3; [0E 41, 05, 05]
-230C; [0E 43, 05, 05]
+22D4; [0E 43, 05, 05]
-230D; [0E 45, 05, 05]
+22D5; [0E 45, 05, 05]
-230E; [0E 47, 05, 05]
+22D6; [0E 47, 05, 05]
-230F; [0E 49, 05, 05]
+22D7; [0E 49, 05, 05]
-2310; [0E 4B, 05, 05]
+22D8; [0E 4B, 05, 05]
-2311; [0E 4D, 05, 05]
+22D9; [0E 4D, 05, 05]
-2312; [0E 4F, 05, 05]
+22DA; [0E 4F, 05, 05]
-2313; [0E 51, 05, 05]
+22DB; [0E 51, 05, 05]
-2314; [0E 53, 05, 05]
+22DC; [0E 53, 05, 05]
-2315; [0E 55, 05, 05]
+22DD; [0E 55, 05, 05]
-2316; [0E 57, 05, 05]
+22DE; [0E 57, 05, 05]
-2317; [0E 59, 05, 05]
+22DF; [0E 59, 05, 05]
-2318; [0E 5B, 05, 05]
+22E4; [0E 5B, 05, 05]
-2319; [0E 5D, 05, 05]
+22E5; [0E 5D, 05, 05]
-231A; [0E 5F, 05, 05]
+22E6; [0E 5F, 05, 05]
-231B; [0E 61, 05, 05]
+22E7; [0E 61, 05, 05]
-231C; [0E 63, 05, 05]
+22E8; [0E 63, 05, 05]
-231D; [0E 65, 05, 05]
+22E9; [0E 65, 05, 05]
-231E; [0E 67, 05, 05]
+22EE; [0E 67, 05, 05]
-231F; [0E 69, 05, 05]
+22EF; [0E 69, 05, 05]
-2320; [0E 6B, 05, 05]
+22F0; [0E 6B, 05, 05]
-2321; [0E 6D, 05, 05]
+22F1; [0E 6D, 05, 05]
-2322; [0E 6F, 05, 05]
+22F2; [0E 6F, 05, 05]
-2323; [0E 71, 05, 05]
+22F3; [0E 71, 05, 05]
-2324; [0E 73, 05, 05]
+22F4; [0E 73, 05, 05]
-2325; [0E 75, 05, 05]
+22F5; [0E 75, 05, 05]
-2326; [0E 77, 05, 05]
+22F6; [0E 77, 05, 05]
-2327; [0E 79, 05, 05]
+22F7; [0E 79, 05, 05]
-2328; [0E 7B, 05, 05]
+22F8; [0E 7B, 05, 05]
-232B; [0E 7D, 05, 05]
+22F9; [0E 7D, 05, 05]
-232C; [0E 7F, 05, 05]
+22FA; [0E 7F, 05, 05]
-232D; [0E 81, 05, 05]
+22FB; [0E 81, 05, 05]
-232E; [0E 83, 05, 05]
+22FC; [0E 83, 05, 05]
-232F; [0E 85, 05, 05]
+22FD; [0E 85, 05, 05]
-2330; [0E 87, 05, 05]
+22FE; [0E 87, 05, 05]
-2331; [0E 89, 05, 05]
+22FF; [0E 89, 05, 05]
-2332; [0E 8B, 05, 05]
+2300; [0E 8B, 05, 05]
-2333; [0E 8D, 05, 05]
+2301; [0E 8D, 05, 05]
-2334; [0E 8F, 05, 05]
+2302; [0E 8F, 05, 05]
-2335; [0E 91, 05, 05]
+2303; [0E 91, 05, 05]
-2336; [0E 93, 05, 05]
+2304; [0E 93, 05, 05]
-2337; [0E 95, 05, 05]
+2305; [0E 95, 05, 05]
-2338; [0E 97, 05, 05]
+2306; [0E 97, 05, 05]
-2339; [0E 99, 05, 05]
+2307; [0E 99, 05, 05]
-233A; [0E 9B, 05, 05]
+2308; [0E 9B, 05, 05]
-233B; [0E 9D, 05, 05]
+2309; [0E 9D, 05, 05]
-233C; [0E 9F, 05, 05]
+230A; [0E 9F, 05, 05]
-233D; [0E A1, 05, 05]
+230B; [0E A1, 05, 05]
-233E; [0E A3, 05, 05]
+230C; [0E A3, 05, 05]
-233F; [0E A5, 05, 05]
+230D; [0E A5, 05, 05]
-2340; [0E A7, 05, 05]
+230E; [0E A7, 05, 05]
-2341; [0E A9, 05, 05]
+230F; [0E A9, 05, 05]
-2342; [0E AB, 05, 05]
+2310; [0E AB, 05, 05]
-2343; [0E AD, 05, 05]
+2311; [0E AD, 05, 05]
-2344; [0E AF, 05, 05]
+2312; [0E AF, 05, 05]
-2345; [0E B1, 05, 05]
+2313; [0E B1, 05, 05]
-2346; [0E B3, 05, 05]
+2314; [0E B3, 05, 05]
-2347; [0E B5, 05, 05]
+2315; [0E B5, 05, 05]
-2348; [0E B7, 05, 05]
+2316; [0E B7, 05, 05]
-2349; [0E B9, 05, 05]
+2317; [0E B9, 05, 05]
-234A; [0E BB, 05, 05]
+2318; [0E BB, 05, 05]
-234B; [0E BD, 05, 05]
+2319; [0E BD, 05, 05]
-234C; [0E BF, 05, 05]
+231A; [0E BF, 05, 05]
-234D; [0E C1, 05, 05]
+231B; [0E C1, 05, 05]
-234E; [0E C3, 05, 05]
+231C; [0E C3, 05, 05]
-234F; [0E C5, 05, 05]
+231D; [0E C5, 05, 05]
-2350; [0E C7, 05, 05]
+231E; [0E C7, 05, 05]
-2351; [0E C9, 05, 05]
+231F; [0E C9, 05, 05]
-2352; [0E CB, 05, 05]
+2320; [0E CB, 05, 05]
-2353; [0E CD, 05, 05]
+2321; [0E CD, 05, 05]
-2354; [0E CF, 05, 05]
+2322; [0E CF, 05, 05]
-2355; [0E D1, 05, 05]
+2323; [0E D1, 05, 05]
-2356; [0E D3, 05, 05]
+2324; [0E D3, 05, 05]
-2357; [0E D5, 05, 05]
+2325; [0E D5, 05, 05]
-2358; [0E D7, 05, 05]
+2326; [0E D7, 05, 05]
-2359; [0E D9, 05, 05]
+2327; [0E D9, 05, 05]
-235A; [0E DB, 05, 05]
+2328; [0E DB, 05, 05]
-235B; [0E DD, 05, 05]
+232B; [0E DD, 05, 05]
-235C; [0E DF, 05, 05]
+232C; [0E DF, 05, 05]
-235D; [0E E1, 05, 05]
+232D; [0E E1, 05, 05]
-235E; [0E E3, 05, 05]
+232E; [0E E3, 05, 05]
-235F; [0E E5, 05, 05]
+232F; [0E E5, 05, 05]
-2360; [0E E7, 05, 05]
+2330; [0E E7, 05, 05]
-2361; [0E E9, 05, 05]
+2331; [0E E9, 05, 05]
-2362; [0E EB, 05, 05]
+2332; [0E EB, 05, 05]
-2363; [0E ED, 05, 05]
+2333; [0E ED, 05, 05]
-2364; [0E EF, 05, 05]
+2334; [0E EF, 05, 05]
-2365; [0E F1, 05, 05]
+2335; [0E F1, 05, 05]
-2366; [0E F3, 05, 05]
+2336; [0E F3, 05, 05]
-2367; [0E F5, 05, 05]
+2337; [0E F5, 05, 05]
-2368; [0E F7, 05, 05]
+2338; [0E F7, 05, 05]
-2369; [0E F9, 05, 05]
+2339; [0E F9, 05, 05]
-236A; [0E FB, 05, 05]
+233A; [0E FB, 05, 05]
-236B; [0E FD, 05, 05]
+233B; [0E FD, 05, 05]
-236C; [0F 05, 05, 05]
+233C; [0F 05, 05, 05]
-236D; [0F 07, 05, 05]
+233D; [0F 07, 05, 05]
-236E; [0F 09, 05, 05]
+233E; [0F 09, 05, 05]
-236F; [0F 0B, 05, 05]
+233F; [0F 0B, 05, 05]
-2370; [0F 0D, 05, 05]
+2340; [0F 0D, 05, 05]
-2371; [0F 0F, 05, 05]
+2341; [0F 0F, 05, 05]
-2372; [0F 11, 05, 05]
+2342; [0F 11, 05, 05]
-2373; [0F 13, 05, 05]
+2343; [0F 13, 05, 05]
-2374; [0F 15, 05, 05]
+2344; [0F 15, 05, 05]
-2375; [0F 17, 05, 05]
+2345; [0F 17, 05, 05]
-2376; [0F 19, 05, 05]
+2346; [0F 19, 05, 05]
-2377; [0F 1B, 05, 05]
+2347; [0F 1B, 05, 05]
-2378; [0F 1D, 05, 05]
+2348; [0F 1D, 05, 05]
-2379; [0F 1F, 05, 05]
+2349; [0F 1F, 05, 05]
-237A; [0F 21, 05, 05]
+234A; [0F 21, 05, 05]
-237B; [0F 23, 05, 05]
+234B; [0F 23, 05, 05]
-237C; [0F 25, 05, 05]
+234C; [0F 25, 05, 05]
-237D; [0F 27, 05, 05]
+234D; [0F 27, 05, 05]
-237E; [0F 29, 05, 05]
+234E; [0F 29, 05, 05]
-237F; [0F 2B, 05, 05]
+234F; [0F 2B, 05, 05]
-2380; [0F 2D, 05, 05]
+2350; [0F 2D, 05, 05]
-2381; [0F 2F, 05, 05]
+2351; [0F 2F, 05, 05]
-2382; [0F 31, 05, 05]
+2352; [0F 31, 05, 05]
-2383; [0F 33, 05, 05]
+2353; [0F 33, 05, 05]
-2384; [0F 35, 05, 05]
+2354; [0F 35, 05, 05]
-2385; [0F 37, 05, 05]
+2355; [0F 37, 05, 05]
-2386; [0F 39, 05, 05]
+2356; [0F 39, 05, 05]
-2387; [0F 3B, 05, 05]
+2357; [0F 3B, 05, 05]
-2388; [0F 3D, 05, 05]
+2358; [0F 3D, 05, 05]
-2389; [0F 3F, 05, 05]
+2359; [0F 3F, 05, 05]
-238A; [0F 41, 05, 05]
+235A; [0F 41, 05, 05]
-238B; [0F 43, 05, 05]
+235B; [0F 43, 05, 05]
-238C; [0F 45, 05, 05]
+235C; [0F 45, 05, 05]
-238D; [0F 47, 05, 05]
+235D; [0F 47, 05, 05]
-238E; [0F 49, 05, 05]
+235E; [0F 49, 05, 05]
-238F; [0F 4B, 05, 05]
+235F; [0F 4B, 05, 05]
-2390; [0F 4D, 05, 05]
+2360; [0F 4D, 05, 05]
-2391; [0F 4F, 05, 05]
+2361; [0F 4F, 05, 05]
-2392; [0F 51, 05, 05]
+2362; [0F 51, 05, 05]
-2393; [0F 53, 05, 05]
+2363; [0F 53, 05, 05]
-2394; [0F 55, 05, 05]
+2364; [0F 55, 05, 05]
-2395; [0F 57, 05, 05]
+2365; [0F 57, 05, 05]
-2396; [0F 59, 05, 05]
+2366; [0F 59, 05, 05]
-2397; [0F 5B, 05, 05]
+2367; [0F 5B, 05, 05]
-2398; [0F 5D, 05, 05]
+2368; [0F 5D, 05, 05]
-2399; [0F 5F, 05, 05]
+2369; [0F 5F, 05, 05]
-239A; [0F 61, 05, 05]
+236A; [0F 61, 05, 05]
-239B; [0F 63, 05, 05]
+236B; [0F 63, 05, 05]
-239C; [0F 65, 05, 05]
+236C; [0F 65, 05, 05]
-239D; [0F 67, 05, 05]
+236D; [0F 67, 05, 05]
-239E; [0F 69, 05, 05]
+236E; [0F 69, 05, 05]
-239F; [0F 6B, 05, 05]
+236F; [0F 6B, 05, 05]
-23A0; [0F 6D, 05, 05]
+2370; [0F 6D, 05, 05]
-23A1; [0F 6F, 05, 05]
+2371; [0F 6F, 05, 05]
-23A2; [0F 71, 05, 05]
+2372; [0F 71, 05, 05]
-23A3; [0F 73, 05, 05]
+2373; [0F 73, 05, 05]
-23A4; [0F 75, 05, 05]
+2374; [0F 75, 05, 05]
-23A5; [0F 77, 05, 05]
+2375; [0F 77, 05, 05]
-23A6; [0F 79, 05, 05]
+2376; [0F 79, 05, 05]
-23A7; [0F 7B, 05, 05]
+2377; [0F 7B, 05, 05]
-23A8; [0F 7D, 05, 05]
+2378; [0F 7D, 05, 05]
-23A9; [0F 7F, 05, 05]
+2379; [0F 7F, 05, 05]
-23AA; [0F 81, 05, 05]
+237A; [0F 81, 05, 05]
-23AB; [0F 83, 05, 05]
+237B; [0F 83, 05, 05]
-23AC; [0F 85, 05, 05]
+237C; [0F 85, 05, 05]
-23AD; [0F 87, 05, 05]
+237D; [0F 87, 05, 05]
-23AE; [0F 89, 05, 05]
+237E; [0F 89, 05, 05]
-23AF; [0F 8B, 05, 05]
+237F; [0F 8B, 05, 05]
-23B0; [0F 8D, 05, 05]
+2380; [0F 8D, 05, 05]
-23B1; [0F 8F, 05, 05]
+2381; [0F 8F, 05, 05]
-23B2; [0F 91, 05, 05]
+2382; [0F 91, 05, 05]
-23B3; [0F 93, 05, 05]
+2383; [0F 93, 05, 05]
-23B4; [0F 95, 05, 05]
+2384; [0F 95, 05, 05]
-23B5; [0F 97, 05, 05]
+2385; [0F 97, 05, 05]
-23B6; [0F 99, 05, 05]
+2386; [0F 99, 05, 05]
-23B7; [0F 9B, 05, 05]
+2387; [0F 9B, 05, 05]
-23B8; [0F 9D, 05, 05]
+2388; [0F 9D, 05, 05]
-23B9; [0F 9F, 05, 05]
+2389; [0F 9F, 05, 05]
-23BA; [0F A1, 05, 05]
+238A; [0F A1, 05, 05]
-23BB; [0F A3, 05, 05]
+238B; [0F A3, 05, 05]
-23BC; [0F A5, 05, 05]
+238C; [0F A5, 05, 05]
-23BD; [0F A7, 05, 05]
+238D; [0F A7, 05, 05]
-23BE; [0F A9, 05, 05]
+238E; [0F A9, 05, 05]
-23BF; [0F AB, 05, 05]
+238F; [0F AB, 05, 05]
-23C0; [0F AD, 05, 05]
+2390; [0F AD, 05, 05]
-23C1; [0F AF, 05, 05]
+2391; [0F AF, 05, 05]
-23C2; [0F B1, 05, 05]
+2392; [0F B1, 05, 05]
-23C3; [0F B3, 05, 05]
+2393; [0F B3, 05, 05]
-23C4; [0F B5, 05, 05]
+2394; [0F B5, 05, 05]
-23C5; [0F B7, 05, 05]
+2395; [0F B7, 05, 05]
-23C6; [0F B9, 05, 05]
+2396; [0F B9, 05, 05]
-23C7; [0F BB, 05, 05]
+2397; [0F BB, 05, 05]
-23C8; [0F BD, 05, 05]
+2398; [0F BD, 05, 05]
-23C9; [0F BF, 05, 05]
+2399; [0F BF, 05, 05]
-23CA; [0F C1, 05, 05]
+239A; [0F C1, 05, 05]
-23CB; [0F C3, 05, 05]
+239B; [0F C3, 05, 05]
-23CC; [0F C5, 05, 05]
+239C; [0F C5, 05, 05]
-23CD; [0F C7, 05, 05]
+239D; [0F C7, 05, 05]
-23CE; [0F C9, 05, 05]
+239E; [0F C9, 05, 05]
-23CF; [0F CB, 05, 05]
+239F; [0F CB, 05, 05]
-23D0; [0F CD, 05, 05]
+23A0; [0F CD, 05, 05]
-23D1; [0F CF, 05, 05]
+23A1; [0F CF, 05, 05]
-23D2; [0F D1, 05, 05]
+23A2; [0F D1, 05, 05]
-23D3; [0F D3, 05, 05]
+23A3; [0F D3, 05, 05]
-23D4; [0F D5, 05, 05]
+23A4; [0F D5, 05, 05]
-23D5; [0F D7, 05, 05]
+23A5; [0F D7, 05, 05]
-23D6; [0F D9, 05, 05]
+23A6; [0F D9, 05, 05]
-23D7; [0F DB, 05, 05]
+23A7; [0F DB, 05, 05]
-23D8; [0F DD, 05, 05]
+23A8; [0F DD, 05, 05]
-23D9; [0F DF, 05, 05]
+23A9; [0F DF, 05, 05]
-23DA; [0F E1, 05, 05]
+23AA; [0F E1, 05, 05]
-23DB; [0F E3, 05, 05]
+23AB; [0F E3, 05, 05]
-2400; [0F E5, 05, 05]
+23AC; [0F E5, 05, 05]
-2401; [0F E7, 05, 05]
+23AD; [0F E7, 05, 05]
-2402; [0F E9, 05, 05]
+23AE; [0F E9, 05, 05]
-2403; [0F EB, 05, 05]
+23AF; [0F EB, 05, 05]
-2404; [0F ED, 05, 05]
+23B0; [0F ED, 05, 05]
-2405; [0F EF, 05, 05]
+23B1; [0F EF, 05, 05]
-2406; [0F F1, 05, 05]
+23B2; [0F F1, 05, 05]
-2407; [0F F3, 05, 05]
+23B3; [0F F3, 05, 05]
-2408; [0F F5, 05, 05]
+23B4; [0F F5, 05, 05]
-2409; [0F F7, 05, 05]
+23B5; [0F F7, 05, 05]
-240A; [0F F9, 05, 05]
+23B6; [0F F9, 05, 05]
-240B; [0F FB, 05, 05]
+23B7; [0F FB, 05, 05]
-240C; [0F FD, 05, 05]
+23B8; [0F FD, 05, 05]
-240D; [10 05, 05, 05]
+23B9; [10 05, 05, 05]
-240E; [10 07, 05, 05]
+23BA; [10 07, 05, 05]
-240F; [10 09, 05, 05]
+23BB; [10 09, 05, 05]
-2410; [10 0B, 05, 05]
+23BC; [10 0B, 05, 05]
-2411; [10 0D, 05, 05]
+23BD; [10 0D, 05, 05]
-2412; [10 0F, 05, 05]
+23BE; [10 0F, 05, 05]
-2413; [10 11, 05, 05]
+23BF; [10 11, 05, 05]
-2414; [10 13, 05, 05]
+23C0; [10 13, 05, 05]
-2415; [10 15, 05, 05]
+23C1; [10 15, 05, 05]
-2416; [10 17, 05, 05]
+23C2; [10 17, 05, 05]
-2417; [10 19, 05, 05]
+23C3; [10 19, 05, 05]
-2418; [10 1B, 05, 05]
+23C4; [10 1B, 05, 05]
-2419; [10 1D, 05, 05]
+23C5; [10 1D, 05, 05]
-241A; [10 1F, 05, 05]
+23C6; [10 1F, 05, 05]
-241B; [10 21, 05, 05]
+23C7; [10 21, 05, 05]
-241C; [10 23, 05, 05]
+23C8; [10 23, 05, 05]
-241D; [10 25, 05, 05]
+23C9; [10 25, 05, 05]
-241E; [10 27, 05, 05]
+23CA; [10 27, 05, 05]
-241F; [10 29, 05, 05]
+23CB; [10 29, 05, 05]
-2420; [10 2B, 05, 05]
+23CC; [10 2B, 05, 05]
-2421; [10 2D, 05, 05]
+23CD; [10 2D, 05, 05]
-2422; [10 2F, 05, 05]
+23CE; [10 2F, 05, 05]
-2423; [10 31, 05, 05]
+23CF; [10 31, 05, 05]
-2424; [10 33, 05, 05]
+23D0; [10 33, 05, 05]
-2425; [10 35, 05, 05]
+23D1; [10 35, 05, 05]
-2426; [10 37, 05, 05]
+23D2; [10 37, 05, 05]
-2440; [10 39, 05, 05]
+23D3; [10 39, 05, 05]
-2441; [10 3B, 05, 05]
+23D4; [10 3B, 05, 05]
-2442; [10 3D, 05, 05]
+23D5; [10 3D, 05, 05]
-2443; [10 3F, 05, 05]
+23D6; [10 3F, 05, 05]
-2444; [10 41, 05, 05]
+23D7; [10 41, 05, 05]
-2445; [10 43, 05, 05]
+23D8; [10 43, 05, 05]
-2446; [10 45, 05, 05]
+23D9; [10 45, 05, 05]
-2447; [10 47, 05, 05]
+23DA; [10 47, 05, 05]
-2448; [10 49, 05, 05]
+23DB; [10 49, 05, 05]
-2449; [10 4B, 05, 05]
+23DC; [10 4B, 05, 05]
-244A; [10 4D, 05, 05]
+23DD; [10 4D, 05, 05]
-2500; [10 4F, 05, 05]
+23DE; [10 4F, 05, 05]
-2501; [10 51, 05, 05]
+23DF; [10 51, 05, 05]
-2502; [10 53, 05, 05]
-FFE8; [10 53, 05, A3]
+23E0; [10 53, 05, 05]
-2503; [10 55, 05, 05]
+23E1; [10 55, 05, 05]
-2504; [10 57, 05, 05]
+23E2; [10 57, 05, 05]
-2505; [10 59, 05, 05]
+23E3; [10 59, 05, 05]
-2506; [10 5B, 05, 05]
+23E4; [10 5B, 05, 05]
-2507; [10 5D, 05, 05]
+23E5; [10 5D, 05, 05]
-2508; [10 5F, 05, 05]
+23E6; [10 5F, 05, 05]
-2509; [10 61, 05, 05]
+23E7; [10 61, 05, 05]
-250A; [10 63, 05, 05]
+2400; [10 63, 05, 05]
-250B; [10 65, 05, 05]
+2401; [10 65, 05, 05]
-250C; [10 67, 05, 05]
+2402; [10 67, 05, 05]
-250D; [10 69, 05, 05]
+2403; [10 69, 05, 05]
-250E; [10 6B, 05, 05]
+2404; [10 6B, 05, 05]
-250F; [10 6D, 05, 05]
+2405; [10 6D, 05, 05]
-2510; [10 6F, 05, 05]
+2406; [10 6F, 05, 05]
-2511; [10 71, 05, 05]
+2407; [10 71, 05, 05]
-2512; [10 73, 05, 05]
+2408; [10 73, 05, 05]
-2513; [10 75, 05, 05]
+2409; [10 75, 05, 05]
-2514; [10 77, 05, 05]
+240A; [10 77, 05, 05]
-2515; [10 79, 05, 05]
+240B; [10 79, 05, 05]
-2516; [10 7B, 05, 05]
+240C; [10 7B, 05, 05]
-2517; [10 7D, 05, 05]
+240D; [10 7D, 05, 05]
-2518; [10 7F, 05, 05]
+240E; [10 7F, 05, 05]
-2519; [10 81, 05, 05]
+240F; [10 81, 05, 05]
-251A; [10 83, 05, 05]
+2410; [10 83, 05, 05]
-251B; [10 85, 05, 05]
+2411; [10 85, 05, 05]
-251C; [10 87, 05, 05]
+2412; [10 87, 05, 05]
-251D; [10 89, 05, 05]
+2413; [10 89, 05, 05]
-251E; [10 8B, 05, 05]
+2414; [10 8B, 05, 05]
-251F; [10 8D, 05, 05]
+2415; [10 8D, 05, 05]
-2520; [10 8F, 05, 05]
+2416; [10 8F, 05, 05]
-2521; [10 91, 05, 05]
+2417; [10 91, 05, 05]
-2522; [10 93, 05, 05]
+2418; [10 93, 05, 05]
-2523; [10 95, 05, 05]
+2419; [10 95, 05, 05]
-2524; [10 97, 05, 05]
+241A; [10 97, 05, 05]
-2525; [10 99, 05, 05]
+241B; [10 99, 05, 05]
-2526; [10 9B, 05, 05]
+241C; [10 9B, 05, 05]
-2527; [10 9D, 05, 05]
+241D; [10 9D, 05, 05]
-2528; [10 9F, 05, 05]
+241E; [10 9F, 05, 05]
-2529; [10 A1, 05, 05]
+241F; [10 A1, 05, 05]
-252A; [10 A3, 05, 05]
+2420; [10 A3, 05, 05]
-252B; [10 A5, 05, 05]
+2421; [10 A5, 05, 05]
-252C; [10 A7, 05, 05]
+2422; [10 A7, 05, 05]
-252D; [10 A9, 05, 05]
+2423; [10 A9, 05, 05]
-252E; [10 AB, 05, 05]
+2424; [10 AB, 05, 05]
-252F; [10 AD, 05, 05]
+2425; [10 AD, 05, 05]
-2530; [10 AF, 05, 05]
+2426; [10 AF, 05, 05]
-2531; [10 B1, 05, 05]
+2440; [10 B1, 05, 05]
-2532; [10 B3, 05, 05]
+2441; [10 B3, 05, 05]
-2533; [10 B5, 05, 05]
+2442; [10 B5, 05, 05]
-2534; [10 B7, 05, 05]
+2443; [10 B7, 05, 05]
-2535; [10 B9, 05, 05]
+2444; [10 B9, 05, 05]
-2536; [10 BB, 05, 05]
+2445; [10 BB, 05, 05]
-2537; [10 BD, 05, 05]
+2446; [10 BD, 05, 05]
-2538; [10 BF, 05, 05]
+2447; [10 BF, 05, 05]
-2539; [10 C1, 05, 05]
+2448; [10 C1, 05, 05]
-253A; [10 C3, 05, 05]
+2449; [10 C3, 05, 05]
-253B; [10 C5, 05, 05]
+244A; [10 C5, 05, 05]
-253C; [10 C7, 05, 05]
+2500; [10 C7, 05, 05]
-253D; [10 C9, 05, 05]
+2501; [10 C9, 05, 05]
-253E; [10 CB, 05, 05]
+2502; [10 CB, 05, 05]
+FFE8; [10 CB, 05, A3]
-253F; [10 CD, 05, 05]
+2503; [10 CD, 05, 05]
-2540; [10 CF, 05, 05]
+2504; [10 CF, 05, 05]
-2541; [10 D1, 05, 05]
+2505; [10 D1, 05, 05]
-2542; [10 D3, 05, 05]
+2506; [10 D3, 05, 05]
-2543; [10 D5, 05, 05]
+2507; [10 D5, 05, 05]
-2544; [10 D7, 05, 05]
+2508; [10 D7, 05, 05]
-2545; [10 D9, 05, 05]
+2509; [10 D9, 05, 05]
-2546; [10 DB, 05, 05]
+250A; [10 DB, 05, 05]
-2547; [10 DD, 05, 05]
+250B; [10 DD, 05, 05]
-2548; [10 DF, 05, 05]
+250C; [10 DF, 05, 05]
-2549; [10 E1, 05, 05]
+250D; [10 E1, 05, 05]
-254A; [10 E3, 05, 05]
+250E; [10 E3, 05, 05]
-254B; [10 E5, 05, 05]
+250F; [10 E5, 05, 05]
-254C; [10 E7, 05, 05]
+2510; [10 E7, 05, 05]
-254D; [10 E9, 05, 05]
+2511; [10 E9, 05, 05]
-254E; [10 EB, 05, 05]
+2512; [10 EB, 05, 05]
-254F; [10 ED, 05, 05]
+2513; [10 ED, 05, 05]
-2550; [10 EF, 05, 05]
+2514; [10 EF, 05, 05]
-2551; [10 F1, 05, 05]
+2515; [10 F1, 05, 05]
-2552; [10 F3, 05, 05]
+2516; [10 F3, 05, 05]
-2553; [10 F5, 05, 05]
+2517; [10 F5, 05, 05]
-2554; [10 F7, 05, 05]
+2518; [10 F7, 05, 05]
-2555; [10 F9, 05, 05]
+2519; [10 F9, 05, 05]
-2556; [10 FB, 05, 05]
+251A; [10 FB, 05, 05]
-2557; [10 FD, 05, 05]
+251B; [10 FD, 05, 05]
-2558; [11 05, 05, 05]
+251C; [11 05, 05, 05]
-2559; [11 07, 05, 05]
+251D; [11 07, 05, 05]
-255A; [11 09, 05, 05]
+251E; [11 09, 05, 05]
-255B; [11 0B, 05, 05]
+251F; [11 0B, 05, 05]
-255C; [11 0D, 05, 05]
+2520; [11 0D, 05, 05]
-255D; [11 0F, 05, 05]
+2521; [11 0F, 05, 05]
-255E; [11 11, 05, 05]
+2522; [11 11, 05, 05]
-255F; [11 13, 05, 05]
+2523; [11 13, 05, 05]
-2560; [11 15, 05, 05]
+2524; [11 15, 05, 05]
-2561; [11 17, 05, 05]
+2525; [11 17, 05, 05]
-2562; [11 19, 05, 05]
+2526; [11 19, 05, 05]
-2563; [11 1B, 05, 05]
+2527; [11 1B, 05, 05]
-2564; [11 1D, 05, 05]
+2528; [11 1D, 05, 05]
-2565; [11 1F, 05, 05]
+2529; [11 1F, 05, 05]
-2566; [11 21, 05, 05]
+252A; [11 21, 05, 05]
-2567; [11 23, 05, 05]
+252B; [11 23, 05, 05]
-2568; [11 25, 05, 05]
+252C; [11 25, 05, 05]
-2569; [11 27, 05, 05]
+252D; [11 27, 05, 05]
-256A; [11 29, 05, 05]
+252E; [11 29, 05, 05]
-256B; [11 2B, 05, 05]
+252F; [11 2B, 05, 05]
-256C; [11 2D, 05, 05]
+2530; [11 2D, 05, 05]
-256D; [11 2F, 05, 05]
+2531; [11 2F, 05, 05]
-256E; [11 31, 05, 05]
+2532; [11 31, 05, 05]
-256F; [11 33, 05, 05]
+2533; [11 33, 05, 05]
-2570; [11 35, 05, 05]
+2534; [11 35, 05, 05]
-2571; [11 37, 05, 05]
+2535; [11 37, 05, 05]
-2572; [11 39, 05, 05]
+2536; [11 39, 05, 05]
-2573; [11 3B, 05, 05]
+2537; [11 3B, 05, 05]
-2574; [11 3D, 05, 05]
+2538; [11 3D, 05, 05]
-2575; [11 3F, 05, 05]
+2539; [11 3F, 05, 05]
-2576; [11 41, 05, 05]
+253A; [11 41, 05, 05]
-2577; [11 43, 05, 05]
+253B; [11 43, 05, 05]
-2578; [11 45, 05, 05]
+253C; [11 45, 05, 05]
-2579; [11 47, 05, 05]
+253D; [11 47, 05, 05]
-257A; [11 49, 05, 05]
+253E; [11 49, 05, 05]
-257B; [11 4B, 05, 05]
+253F; [11 4B, 05, 05]
-257C; [11 4D, 05, 05]
+2540; [11 4D, 05, 05]
-257D; [11 4F, 05, 05]
+2541; [11 4F, 05, 05]
-257E; [11 51, 05, 05]
+2542; [11 51, 05, 05]
-257F; [11 53, 05, 05]
+2543; [11 53, 05, 05]
-2580; [11 55, 05, 05]
+2544; [11 55, 05, 05]
-2581; [11 57, 05, 05]
+2545; [11 57, 05, 05]
-2582; [11 59, 05, 05]
+2546; [11 59, 05, 05]
-2583; [11 5B, 05, 05]
+2547; [11 5B, 05, 05]
-2584; [11 5D, 05, 05]
+2548; [11 5D, 05, 05]
-2585; [11 5F, 05, 05]
+2549; [11 5F, 05, 05]
-2586; [11 61, 05, 05]
+254A; [11 61, 05, 05]
-2587; [11 63, 05, 05]
+254B; [11 63, 05, 05]
-2588; [11 65, 05, 05]
+254C; [11 65, 05, 05]
-2589; [11 67, 05, 05]
+254D; [11 67, 05, 05]
-258A; [11 69, 05, 05]
+254E; [11 69, 05, 05]
-258B; [11 6B, 05, 05]
+254F; [11 6B, 05, 05]
-258C; [11 6D, 05, 05]
+2550; [11 6D, 05, 05]
-258D; [11 6F, 05, 05]
+2551; [11 6F, 05, 05]
-258E; [11 71, 05, 05]
+2552; [11 71, 05, 05]
-258F; [11 73, 05, 05]
+2553; [11 73, 05, 05]
-2590; [11 75, 05, 05]
+2554; [11 75, 05, 05]
-2591; [11 77, 05, 05]
+2555; [11 77, 05, 05]
-2592; [11 79, 05, 05]
+2556; [11 79, 05, 05]
-2593; [11 7B, 05, 05]
+2557; [11 7B, 05, 05]
-2594; [11 7D, 05, 05]
+2558; [11 7D, 05, 05]
-2595; [11 7F, 05, 05]
+2559; [11 7F, 05, 05]
-2596; [11 81, 05, 05]
+255A; [11 81, 05, 05]
-2597; [11 83, 05, 05]
+255B; [11 83, 05, 05]
-2598; [11 85, 05, 05]
+255C; [11 85, 05, 05]
-2599; [11 87, 05, 05]
+255D; [11 87, 05, 05]
-259A; [11 89, 05, 05]
+255E; [11 89, 05, 05]
-259B; [11 8B, 05, 05]
+255F; [11 8B, 05, 05]
-259C; [11 8D, 05, 05]
+2560; [11 8D, 05, 05]
-259D; [11 8F, 05, 05]
+2561; [11 8F, 05, 05]
-259E; [11 91, 05, 05]
+2562; [11 91, 05, 05]
-259F; [11 93, 05, 05]
+2563; [11 93, 05, 05]
-25A0; [11 95, 05, 05]
-FFED; [11 95, 05, A3]
+2564; [11 95, 05, 05]
-25A1; [11 97, 05, 05]
+2565; [11 97, 05, 05]
-25A2; [11 99, 05, 05]
+2566; [11 99, 05, 05]
-25A3; [11 9B, 05, 05]
+2567; [11 9B, 05, 05]
-25A4; [11 9D, 05, 05]
+2568; [11 9D, 05, 05]
-25A5; [11 9F, 05, 05]
+2569; [11 9F, 05, 05]
-25A6; [11 A1, 05, 05]
+256A; [11 A1, 05, 05]
-25A7; [11 A3, 05, 05]
+256B; [11 A3, 05, 05]
-25A8; [11 A5, 05, 05]
+256C; [11 A5, 05, 05]
-25A9; [11 A7, 05, 05]
+256D; [11 A7, 05, 05]
-25AA; [11 A9, 05, 05]
+256E; [11 A9, 05, 05]
-25AB; [11 AB, 05, 05]
+256F; [11 AB, 05, 05]
-25AC; [11 AD, 05, 05]
+2570; [11 AD, 05, 05]
-25AD; [11 AF, 05, 05]
+2571; [11 AF, 05, 05]
-25AE; [11 B1, 05, 05]
+2572; [11 B1, 05, 05]
-25AF; [11 B3, 05, 05]
+2573; [11 B3, 05, 05]
-25B0; [11 B5, 05, 05]
+2574; [11 B5, 05, 05]
-25B1; [11 B7, 05, 05]
+2575; [11 B7, 05, 05]
-25B2; [11 B9, 05, 05]
+2576; [11 B9, 05, 05]
-25B3; [11 BB, 05, 05]
+2577; [11 BB, 05, 05]
-25B4; [11 BD, 05, 05]
+2578; [11 BD, 05, 05]
-25B5; [11 BF, 05, 05]
+2579; [11 BF, 05, 05]
-25B6; [11 C1, 05, 05]
+257A; [11 C1, 05, 05]
-25B7; [11 C3, 05, 05]
+257B; [11 C3, 05, 05]
-25B8; [11 C5, 05, 05]
+257C; [11 C5, 05, 05]
-25B9; [11 C7, 05, 05]
+257D; [11 C7, 05, 05]
-25BA; [11 C9, 05, 05]
+257E; [11 C9, 05, 05]
-25BB; [11 CB, 05, 05]
+257F; [11 CB, 05, 05]
-25BC; [11 CD, 05, 05]
+2580; [11 CD, 05, 05]
-25BD; [11 CF, 05, 05]
+2581; [11 CF, 05, 05]
-25BE; [11 D1, 05, 05]
+2582; [11 D1, 05, 05]
-25BF; [11 D3, 05, 05]
+2583; [11 D3, 05, 05]
-25C0; [11 D5, 05, 05]
+2584; [11 D5, 05, 05]
-25C1; [11 D7, 05, 05]
+2585; [11 D7, 05, 05]
-25C2; [11 D9, 05, 05]
+2586; [11 D9, 05, 05]
-25C3; [11 DB, 05, 05]
+2587; [11 DB, 05, 05]
-25C4; [11 DD, 05, 05]
+2588; [11 DD, 05, 05]
-25C5; [11 DF, 05, 05]
+2589; [11 DF, 05, 05]
-25C6; [11 E1, 05, 05]
+258A; [11 E1, 05, 05]
-25C7; [11 E3, 05, 05]
+258B; [11 E3, 05, 05]
-25C8; [11 E5, 05, 05]
+258C; [11 E5, 05, 05]
-25C9; [11 E7, 05, 05]
+258D; [11 E7, 05, 05]
-25CA; [11 E9, 05, 05]
+258E; [11 E9, 05, 05]
-25CB; [11 EB, 05, 05]
-FFEE; [11 EB, 05, A3]
+258F; [11 EB, 05, 05]
-25CC; [11 ED, 05, 05]
+2590; [11 ED, 05, 05]
-25CD; [11 EF, 05, 05]
+2591; [11 EF, 05, 05]
-25CE; [11 F1, 05, 05]
+2592; [11 F1, 05, 05]
-25CF; [11 F3, 05, 05]
+2593; [11 F3, 05, 05]
-25D0; [11 F5, 05, 05]
+2594; [11 F5, 05, 05]
-25D1; [11 F7, 05, 05]
+2595; [11 F7, 05, 05]
-25D2; [11 F9, 05, 05]
+2596; [11 F9, 05, 05]
-25D3; [11 FB, 05, 05]
+2597; [11 FB, 05, 05]
-25D4; [11 FD, 05, 05]
+2598; [11 FD, 05, 05]
-25D5; [12 05, 05, 05]
+2599; [12 05, 05, 05]
-25D6; [12 07, 05, 05]
+259A; [12 07, 05, 05]
-25D7; [12 09, 05, 05]
+259B; [12 09, 05, 05]
-25D8; [12 0B, 05, 05]
+259C; [12 0B, 05, 05]
-25D9; [12 0D, 05, 05]
+259D; [12 0D, 05, 05]
-25DA; [12 0F, 05, 05]
+259E; [12 0F, 05, 05]
-25DB; [12 11, 05, 05]
+259F; [12 11, 05, 05]
-25DC; [12 13, 05, 05]
+25A0; [12 13, 05, 05]
+FFED; [12 13, 05, A3]
-25DD; [12 15, 05, 05]
+25A1; [12 15, 05, 05]
-25DE; [12 17, 05, 05]
+25A2; [12 17, 05, 05]
-25DF; [12 19, 05, 05]
+25A3; [12 19, 05, 05]
-25E0; [12 1B, 05, 05]
+25A4; [12 1B, 05, 05]
-25E1; [12 1D, 05, 05]
+25A5; [12 1D, 05, 05]
-25E2; [12 1F, 05, 05]
+25A6; [12 1F, 05, 05]
-25E3; [12 21, 05, 05]
+25A7; [12 21, 05, 05]
-25E4; [12 23, 05, 05]
+25A8; [12 23, 05, 05]
-25E5; [12 25, 05, 05]
+25A9; [12 25, 05, 05]
-25E6; [12 27, 05, 05]
+25AA; [12 27, 05, 05]
-25E7; [12 29, 05, 05]
+25AB; [12 29, 05, 05]
-25E8; [12 2B, 05, 05]
+25AC; [12 2B, 05, 05]
-25E9; [12 2D, 05, 05]
+25AD; [12 2D, 05, 05]
-25EA; [12 2F, 05, 05]
+25AE; [12 2F, 05, 05]
-25EB; [12 31, 05, 05]
+25AF; [12 31, 05, 05]
-25EC; [12 33, 05, 05]
+25B0; [12 33, 05, 05]
-25ED; [12 35, 05, 05]
+25B1; [12 35, 05, 05]
-25EE; [12 37, 05, 05]
+25B2; [12 37, 05, 05]
-25EF; [12 39, 05, 05]
+25B3; [12 39, 05, 05]
-25F0; [12 3B, 05, 05]
+25B4; [12 3B, 05, 05]
-25F1; [12 3D, 05, 05]
+25B5; [12 3D, 05, 05]
-25F2; [12 3F, 05, 05]
+25B6; [12 3F, 05, 05]
-25F3; [12 41, 05, 05]
+25B7; [12 41, 05, 05]
-25F4; [12 43, 05, 05]
+25B8; [12 43, 05, 05]
-25F5; [12 45, 05, 05]
+25B9; [12 45, 05, 05]
-25F6; [12 47, 05, 05]
+25BA; [12 47, 05, 05]
-25F7; [12 49, 05, 05]
+25BB; [12 49, 05, 05]
-25F8; [12 4B, 05, 05]
+25BC; [12 4B, 05, 05]
-25F9; [12 4D, 05, 05]
+25BD; [12 4D, 05, 05]
-25FA; [12 4F, 05, 05]
+25BE; [12 4F, 05, 05]
-25FB; [12 51, 05, 05]
+25BF; [12 51, 05, 05]
-25FC; [12 53, 05, 05]
+25C0; [12 53, 05, 05]
-25FD; [12 55, 05, 05]
+25C1; [12 55, 05, 05]
-25FE; [12 57, 05, 05]
+25C2; [12 57, 05, 05]
-25FF; [12 59, 05, 05]
+25C3; [12 59, 05, 05]
-2600; [12 5B, 05, 05]
+25C4; [12 5B, 05, 05]
-2601; [12 5D, 05, 05]
+25C5; [12 5D, 05, 05]
-2602; [12 5F, 05, 05]
+25C6; [12 5F, 05, 05]
-2603; [12 61, 05, 05]
+25C7; [12 61, 05, 05]
-2604; [12 63, 05, 05]
+25C8; [12 63, 05, 05]
-2605; [12 65, 05, 05]
+25C9; [12 65, 05, 05]
-2606; [12 67, 05, 05]
+25CA; [12 67, 05, 05]
-2607; [12 69, 05, 05]
+25CB; [12 69, 05, 05]
+FFEE; [12 69, 05, A3]
-2608; [12 6B, 05, 05]
+25CC; [12 6B, 05, 05]
-2609; [12 6D, 05, 05]
+25CD; [12 6D, 05, 05]
-260A; [12 6F, 05, 05]
+25CE; [12 6F, 05, 05]
-260B; [12 71, 05, 05]
+25CF; [12 71, 05, 05]
-260C; [12 73, 05, 05]
+25D0; [12 73, 05, 05]
-260D; [12 75, 05, 05]
+25D1; [12 75, 05, 05]
-260E; [12 77, 05, 05]
+25D2; [12 77, 05, 05]
-260F; [12 79, 05, 05]
+25D3; [12 79, 05, 05]
-2610; [12 7B, 05, 05]
+25D4; [12 7B, 05, 05]
-2611; [12 7D, 05, 05]
+25D5; [12 7D, 05, 05]
-2612; [12 7F, 05, 05]
+25D6; [12 7F, 05, 05]
-2613; [12 81, 05, 05]
+25D7; [12 81, 05, 05]
-2614; [12 83, 05, 05]
+25D8; [12 83, 05, 05]
-2615; [12 85, 05, 05]
+25D9; [12 85, 05, 05]
-2616; [12 87, 05, 05]
+25DA; [12 87, 05, 05]
-2617; [12 89, 05, 05]
+25DB; [12 89, 05, 05]
-2618; [12 8B, 05, 05]
+25DC; [12 8B, 05, 05]
-2619; [12 8D, 05, 05]
+25DD; [12 8D, 05, 05]
-261A; [12 8F, 05, 05]
+25DE; [12 8F, 05, 05]
-261B; [12 91, 05, 05]
+25DF; [12 91, 05, 05]
-261C; [12 93, 05, 05]
+25E0; [12 93, 05, 05]
-261D; [12 95, 05, 05]
+25E1; [12 95, 05, 05]
-261E; [12 97, 05, 05]
+25E2; [12 97, 05, 05]
-261F; [12 99, 05, 05]
+25E3; [12 99, 05, 05]
-2620; [12 9B, 05, 05]
+25E4; [12 9B, 05, 05]
-2621; [12 9D, 05, 05]
+25E5; [12 9D, 05, 05]
-2622; [12 9F, 05, 05]
+25E6; [12 9F, 05, 05]
-2623; [12 A1, 05, 05]
+25E7; [12 A1, 05, 05]
-2624; [12 A3, 05, 05]
+25E8; [12 A3, 05, 05]
-2625; [12 A5, 05, 05]
+25E9; [12 A5, 05, 05]
-2626; [12 A7, 05, 05]
+25EA; [12 A7, 05, 05]
-2627; [12 A9, 05, 05]
+25EB; [12 A9, 05, 05]
-2628; [12 AB, 05, 05]
+25EC; [12 AB, 05, 05]
-2629; [12 AD, 05, 05]
+25ED; [12 AD, 05, 05]
-262A; [12 AF, 05, 05]
+25EE; [12 AF, 05, 05]
-262B; [12 B1, 05, 05]
+25EF; [12 B1, 05, 05]
-262C; [12 B3, 05, 05]
+25F0; [12 B3, 05, 05]
-262D; [12 B5, 05, 05]
+25F1; [12 B5, 05, 05]
-262E; [12 B7, 05, 05]
+25F2; [12 B7, 05, 05]
-262F; [12 B9, 05, 05]
+25F3; [12 B9, 05, 05]
-2638; [12 BB, 05, 05]
+25F4; [12 BB, 05, 05]
-2639; [12 BD, 05, 05]
+25F5; [12 BD, 05, 05]
-263A; [12 BF, 05, 05]
+25F6; [12 BF, 05, 05]
-263B; [12 C1, 05, 05]
+25F7; [12 C1, 05, 05]
-263C; [12 C3, 05, 05]
+25F8; [12 C3, 05, 05]
-263D; [12 C5, 05, 05]
+25F9; [12 C5, 05, 05]
-263E; [12 C7, 05, 05]
+25FA; [12 C7, 05, 05]
-263F; [12 C9, 05, 05]
+25FB; [12 C9, 05, 05]
-2640; [12 CB, 05, 05]
+25FC; [12 CB, 05, 05]
-2641; [12 CD, 05, 05]
+25FD; [12 CD, 05, 05]
-2642; [12 CF, 05, 05]
+25FE; [12 CF, 05, 05]
-2643; [12 D1, 05, 05]
+25FF; [12 D1, 05, 05]
-2644; [12 D3, 05, 05]
+2600; [12 D3, 05, 05]
-2645; [12 D5, 05, 05]
+2601; [12 D5, 05, 05]
-2646; [12 D7, 05, 05]
+2602; [12 D7, 05, 05]
-2647; [12 D9, 05, 05]
+2603; [12 D9, 05, 05]
-2648; [12 DB, 05, 05]
+2604; [12 DB, 05, 05]
-2649; [12 DD, 05, 05]
+2605; [12 DD, 05, 05]
-264A; [12 DF, 05, 05]
+2606; [12 DF, 05, 05]
-264B; [12 E1, 05, 05]
+2607; [12 E1, 05, 05]
-264C; [12 E3, 05, 05]
+2608; [12 E3, 05, 05]
-264D; [12 E5, 05, 05]
+2609; [12 E5, 05, 05]
-264E; [12 E7, 05, 05]
+260A; [12 E7, 05, 05]
-264F; [12 E9, 05, 05]
+260B; [12 E9, 05, 05]
-2650; [12 EB, 05, 05]
+260C; [12 EB, 05, 05]
-2651; [12 ED, 05, 05]
+260D; [12 ED, 05, 05]
-2652; [12 EF, 05, 05]
+260E; [12 EF, 05, 05]
-2653; [12 F1, 05, 05]
+260F; [12 F1, 05, 05]
-2654; [12 F3, 05, 05]
+2610; [12 F3, 05, 05]
-2655; [12 F5, 05, 05]
+2611; [12 F5, 05, 05]
-2656; [12 F7, 05, 05]
+2612; [12 F7, 05, 05]
-2657; [12 F9, 05, 05]
+2613; [12 F9, 05, 05]
-2658; [12 FB, 05, 05]
+2614; [12 FB, 05, 05]
-2659; [12 FD, 05, 05]
+2615; [12 FD, 05, 05]
-265A; [13 05, 05, 05]
+2616; [13 05, 05, 05]
-265B; [13 07, 05, 05]
+2617; [13 07, 05, 05]
-265C; [13 09, 05, 05]
+2618; [13 09, 05, 05]
-265D; [13 0B, 05, 05]
+2619; [13 0B, 05, 05]
-265E; [13 0D, 05, 05]
+261A; [13 0D, 05, 05]
-265F; [13 0F, 05, 05]
+261B; [13 0F, 05, 05]
-2660; [13 11, 05, 05]
+261C; [13 11, 05, 05]
-2661; [13 13, 05, 05]
+261D; [13 13, 05, 05]
-2662; [13 15, 05, 05]
+261E; [13 15, 05, 05]
-2663; [13 17, 05, 05]
+261F; [13 17, 05, 05]
-2664; [13 19, 05, 05]
+2620; [13 19, 05, 05]
-2665; [13 1B, 05, 05]
+2621; [13 1B, 05, 05]
-2666; [13 1D, 05, 05]
+2622; [13 1D, 05, 05]
-2667; [13 1F, 05, 05]
+2623; [13 1F, 05, 05]
-2668; [13 21, 05, 05]
+2624; [13 21, 05, 05]
-2669; [13 23, 05, 05]
+2625; [13 23, 05, 05]
-266A; [13 25, 05, 05]
+2626; [13 25, 05, 05]
-266B; [13 27, 05, 05]
+2627; [13 27, 05, 05]
-266C; [13 29, 05, 05]
+2628; [13 29, 05, 05]
-2670; [13 2B, 05, 05]
+2629; [13 2B, 05, 05]
-2671; [13 2D, 05, 05]
+262A; [13 2D, 05, 05]
-2672; [13 2F, 05, 05]
+262B; [13 2F, 05, 05]
-2673; [13 31, 05, 05]
+262C; [13 31, 05, 05]
-2674; [13 33, 05, 05]
+262D; [13 33, 05, 05]
-2675; [13 35, 05, 05]
+262E; [13 35, 05, 05]
-2676; [13 37, 05, 05]
+262F; [13 37, 05, 05]
-2677; [13 39, 05, 05]
+2638; [13 39, 05, 05]
-2678; [13 3B, 05, 05]
+2639; [13 3B, 05, 05]
-2679; [13 3D, 05, 05]
+263A; [13 3D, 05, 05]
-267A; [13 3F, 05, 05]
+263B; [13 3F, 05, 05]
-267B; [13 41, 05, 05]
+263C; [13 41, 05, 05]
-267C; [13 43, 05, 05]
+263D; [13 43, 05, 05]
-267D; [13 45, 05, 05]
+263E; [13 45, 05, 05]
-267E; [13 47, 05, 05]
+263F; [13 47, 05, 05]
-267F; [13 49, 05, 05]
+2640; [13 49, 05, 05]
-2680; [13 4B, 05, 05]
+2641; [13 4B, 05, 05]
-2681; [13 4D, 05, 05]
+2642; [13 4D, 05, 05]
-2682; [13 4F, 05, 05]
+2643; [13 4F, 05, 05]
-2683; [13 51, 05, 05]
+2644; [13 51, 05, 05]
-2684; [13 53, 05, 05]
+2645; [13 53, 05, 05]
-2685; [13 55, 05, 05]
+2646; [13 55, 05, 05]
-2686; [13 57, 05, 05]
+2647; [13 57, 05, 05]
-2687; [13 59, 05, 05]
+2648; [13 59, 05, 05]
-2688; [13 5B, 05, 05]
+2649; [13 5B, 05, 05]
-2689; [13 5D, 05, 05]
+264A; [13 5D, 05, 05]
-2690; [13 5F, 05, 05]
+264B; [13 5F, 05, 05]
-2691; [13 61, 05, 05]
+264C; [13 61, 05, 05]
-2692; [13 63, 05, 05]
+264D; [13 63, 05, 05]
-2693; [13 65, 05, 05]
+264E; [13 65, 05, 05]
-2694; [13 67, 05, 05]
+264F; [13 67, 05, 05]
-2695; [13 69, 05, 05]
+2650; [13 69, 05, 05]
-2696; [13 6B, 05, 05]
+2651; [13 6B, 05, 05]
-2697; [13 6D, 05, 05]
+2652; [13 6D, 05, 05]
-2698; [13 6F, 05, 05]
+2653; [13 6F, 05, 05]
-2699; [13 71, 05, 05]
+2654; [13 71, 05, 05]
-269A; [13 73, 05, 05]
+2655; [13 73, 05, 05]
-269B; [13 75, 05, 05]
+2656; [13 75, 05, 05]
-269C; [13 77, 05, 05]
+2657; [13 77, 05, 05]
-26A0; [13 79, 05, 05]
+2658; [13 79, 05, 05]
-26A1; [13 7B, 05, 05]
+2659; [13 7B, 05, 05]
-26A2; [13 7D, 05, 05]
+265A; [13 7D, 05, 05]
-26A3; [13 7F, 05, 05]
+265B; [13 7F, 05, 05]
-26A4; [13 81, 05, 05]
+265C; [13 81, 05, 05]
-26A5; [13 83, 05, 05]
+265D; [13 83, 05, 05]
-26A6; [13 85, 05, 05]
+265E; [13 85, 05, 05]
-26A7; [13 87, 05, 05]
+265F; [13 87, 05, 05]
-26A8; [13 89, 05, 05]
+2660; [13 89, 05, 05]
-26A9; [13 8B, 05, 05]
+2661; [13 8B, 05, 05]
-26AA; [13 8D, 05, 05]
+2662; [13 8D, 05, 05]
-26AB; [13 8F, 05, 05]
+2663; [13 8F, 05, 05]
-26AC; [13 91, 05, 05]
+2664; [13 91, 05, 05]
-26AD; [13 93, 05, 05]
+2665; [13 93, 05, 05]
-26AE; [13 95, 05, 05]
+2666; [13 95, 05, 05]
-26AF; [13 97, 05, 05]
+2667; [13 97, 05, 05]
-26B0; [13 99, 05, 05]
+2668; [13 99, 05, 05]
-26B1; [13 9B, 05, 05]
+2669; [13 9B, 05, 05]
-2701; [13 9D, 05, 05]
+266A; [13 9D, 05, 05]
-2702; [13 9F, 05, 05]
+266B; [13 9F, 05, 05]
-2703; [13 A1, 05, 05]
+266C; [13 A1, 05, 05]
-2704; [13 A3, 05, 05]
+2670; [13 A3, 05, 05]
-2706; [13 A5, 05, 05]
+2671; [13 A5, 05, 05]
-2707; [13 A7, 05, 05]
+2672; [13 A7, 05, 05]
-2708; [13 A9, 05, 05]
+2673; [13 A9, 05, 05]
-2709; [13 AB, 05, 05]
+2674; [13 AB, 05, 05]
-270C; [13 AD, 05, 05]
+2675; [13 AD, 05, 05]
-270D; [13 AF, 05, 05]
+2676; [13 AF, 05, 05]
-270E; [13 B1, 05, 05]
+2677; [13 B1, 05, 05]
-270F; [13 B3, 05, 05]
+2678; [13 B3, 05, 05]
-2710; [13 B5, 05, 05]
+2679; [13 B5, 05, 05]
-2711; [13 B7, 05, 05]
+267A; [13 B7, 05, 05]
-2712; [13 B9, 05, 05]
+267B; [13 B9, 05, 05]
-2713; [13 BB, 05, 05]
+267C; [13 BB, 05, 05]
-2714; [13 BD, 05, 05]
+267D; [13 BD, 05, 05]
-2715; [13 BF, 05, 05]
+267E; [13 BF, 05, 05]
-2716; [13 C1, 05, 05]
+267F; [13 C1, 05, 05]
-2717; [13 C3, 05, 05]
+2680; [13 C3, 05, 05]
-2718; [13 C5, 05, 05]
+2681; [13 C5, 05, 05]
-2719; [13 C7, 05, 05]
+2682; [13 C7, 05, 05]
-271A; [13 C9, 05, 05]
+2683; [13 C9, 05, 05]
-271B; [13 CB, 05, 05]
+2684; [13 CB, 05, 05]
-271C; [13 CD, 05, 05]
+2685; [13 CD, 05, 05]
-271D; [13 CF, 05, 05]
+2686; [13 CF, 05, 05]
-271E; [13 D1, 05, 05]
+2687; [13 D1, 05, 05]
-271F; [13 D3, 05, 05]
+2688; [13 D3, 05, 05]
-2720; [13 D5, 05, 05]
+2689; [13 D5, 05, 05]
-2721; [13 D7, 05, 05]
+2690; [13 D7, 05, 05]
-2722; [13 D9, 05, 05]
+2691; [13 D9, 05, 05]
-2723; [13 DB, 05, 05]
+2692; [13 DB, 05, 05]
-2724; [13 DD, 05, 05]
+2693; [13 DD, 05, 05]
-2725; [13 DF, 05, 05]
+2694; [13 DF, 05, 05]
-2726; [13 E1, 05, 05]
+2695; [13 E1, 05, 05]
-2727; [13 E3, 05, 05]
+2696; [13 E3, 05, 05]
-2729; [13 E5, 05, 05]
+2697; [13 E5, 05, 05]
-272A; [13 E7, 05, 05]
+2698; [13 E7, 05, 05]
-272B; [13 E9, 05, 05]
+2699; [13 E9, 05, 05]
-272C; [13 EB, 05, 05]
+269A; [13 EB, 05, 05]
-272D; [13 ED, 05, 05]
+269B; [13 ED, 05, 05]
-272E; [13 EF, 05, 05]
+269C; [13 EF, 05, 05]
-272F; [13 F1, 05, 05]
+26A0; [13 F1, 05, 05]
-2730; [13 F3, 05, 05]
+26A1; [13 F3, 05, 05]
-2731; [13 F5, 05, 05]
+26A2; [13 F5, 05, 05]
-2732; [13 F7, 05, 05]
+26A3; [13 F7, 05, 05]
-2733; [13 F9, 05, 05]
+26A4; [13 F9, 05, 05]
-2734; [13 FB, 05, 05]
+26A5; [13 FB, 05, 05]
-2735; [13 FD, 05, 05]
+26A6; [13 FD, 05, 05]
-2736; [14 05, 05, 05]
+26A7; [14 05, 05, 05]
-2737; [14 07, 05, 05]
+26A8; [14 07, 05, 05]
-2738; [14 09, 05, 05]
+26A9; [14 09, 05, 05]
-2739; [14 0B, 05, 05]
+26AA; [14 0B, 05, 05]
-273A; [14 0D, 05, 05]
+26AB; [14 0D, 05, 05]
-273B; [14 0F, 05, 05]
+26AC; [14 0F, 05, 05]
-273C; [14 11, 05, 05]
+26AD; [14 11, 05, 05]
-273D; [14 13, 05, 05]
+26AE; [14 13, 05, 05]
-273E; [14 15, 05, 05]
+26AF; [14 15, 05, 05]
-273F; [14 17, 05, 05]
+26B0; [14 17, 05, 05]
-2740; [14 19, 05, 05]
+26B1; [14 19, 05, 05]
-2741; [14 1B, 05, 05]
+26B2; [14 1B, 05, 05]
-2742; [14 1D, 05, 05]
+2701; [14 1D, 05, 05]
-2743; [14 1F, 05, 05]
+2702; [14 1F, 05, 05]
-2744; [14 21, 05, 05]
+2703; [14 21, 05, 05]
-2745; [14 23, 05, 05]
+2704; [14 23, 05, 05]
-2746; [14 25, 05, 05]
+2706; [14 25, 05, 05]
-2747; [14 27, 05, 05]
+2707; [14 27, 05, 05]
-2748; [14 29, 05, 05]
+2708; [14 29, 05, 05]
-2749; [14 2B, 05, 05]
+2709; [14 2B, 05, 05]
-274A; [14 2D, 05, 05]
+270C; [14 2D, 05, 05]
-274B; [14 2F, 05, 05]
+270D; [14 2F, 05, 05]
-274D; [14 31, 05, 05]
+270E; [14 31, 05, 05]
-274F; [14 33, 05, 05]
+270F; [14 33, 05, 05]
-2750; [14 35, 05, 05]
+2710; [14 35, 05, 05]
-2751; [14 37, 05, 05]
+2711; [14 37, 05, 05]
-2752; [14 39, 05, 05]
+2712; [14 39, 05, 05]
-2756; [14 3B, 05, 05]
+2713; [14 3B, 05, 05]
-2758; [14 3D, 05, 05]
+2714; [14 3D, 05, 05]
-2759; [14 3F, 05, 05]
+2715; [14 3F, 05, 05]
-275A; [14 41, 05, 05]
+2716; [14 41, 05, 05]
-275B; [14 43, 05, 05]
+2717; [14 43, 05, 05]
-275C; [14 45, 05, 05]
+2718; [14 45, 05, 05]
-275D; [14 47, 05, 05]
+2719; [14 47, 05, 05]
-275E; [14 49, 05, 05]
+271A; [14 49, 05, 05]
-2761; [14 4B, 05, 05]
+271B; [14 4B, 05, 05]
-2762; [14 4D, 05, 05]
+271C; [14 4D, 05, 05]
-2763; [14 4F, 05, 05]
+271D; [14 4F, 05, 05]
-2764; [14 51, 05, 05]
+271E; [14 51, 05, 05]
-2765; [14 53, 05, 05]
+271F; [14 53, 05, 05]
-2766; [14 55, 05, 05]
+2720; [14 55, 05, 05]
-2767; [14 57, 05, 05]
+2721; [14 57, 05, 05]
-2768; [14 59, 05, 05]
+2722; [14 59, 05, 05]
-2769; [14 5B, 05, 05]
+2723; [14 5B, 05, 05]
-276A; [14 5D, 05, 05]
+2724; [14 5D, 05, 05]
-276B; [14 5F, 05, 05]
+2725; [14 5F, 05, 05]
-276C; [14 61, 05, 05]
+2726; [14 61, 05, 05]
-276D; [14 63, 05, 05]
+2727; [14 63, 05, 05]
-276E; [14 65, 05, 05]
+2729; [14 65, 05, 05]
-276F; [14 67, 05, 05]
+272A; [14 67, 05, 05]
-2770; [14 69, 05, 05]
+272B; [14 69, 05, 05]
-2771; [14 6B, 05, 05]
+272C; [14 6B, 05, 05]
-2772; [14 6D, 05, 05]
+272D; [14 6D, 05, 05]
-2773; [14 6F, 05, 05]
+272E; [14 6F, 05, 05]
-2774; [14 71, 05, 05]
+272F; [14 71, 05, 05]
-2775; [14 73, 05, 05]
+2730; [14 73, 05, 05]
-2794; [14 75, 05, 05]
+2731; [14 75, 05, 05]
-2798; [14 77, 05, 05]
+2732; [14 77, 05, 05]
-2799; [14 79, 05, 05]
+2733; [14 79, 05, 05]
-279A; [14 7B, 05, 05]
+2734; [14 7B, 05, 05]
-279B; [14 7D, 05, 05]
+2735; [14 7D, 05, 05]
-279C; [14 7F, 05, 05]
+2736; [14 7F, 05, 05]
-279D; [14 81, 05, 05]
+2737; [14 81, 05, 05]
-279E; [14 83, 05, 05]
+2738; [14 83, 05, 05]
-279F; [14 85, 05, 05]
+2739; [14 85, 05, 05]
-27A0; [14 87, 05, 05]
+273A; [14 87, 05, 05]
-27A1; [14 89, 05, 05]
+273B; [14 89, 05, 05]
-27A2; [14 8B, 05, 05]
+273C; [14 8B, 05, 05]
-27A3; [14 8D, 05, 05]
+273D; [14 8D, 05, 05]
-27A4; [14 8F, 05, 05]
+273E; [14 8F, 05, 05]
-27A5; [14 91, 05, 05]
+273F; [14 91, 05, 05]
-27A6; [14 93, 05, 05]
+2740; [14 93, 05, 05]
-27A7; [14 95, 05, 05]
+2741; [14 95, 05, 05]
-27A8; [14 97, 05, 05]
+2742; [14 97, 05, 05]
-27A9; [14 99, 05, 05]
+2743; [14 99, 05, 05]
-27AA; [14 9B, 05, 05]
+2744; [14 9B, 05, 05]
-27AB; [14 9D, 05, 05]
+2745; [14 9D, 05, 05]
-27AC; [14 9F, 05, 05]
+2746; [14 9F, 05, 05]
-27AD; [14 A1, 05, 05]
+2747; [14 A1, 05, 05]
-27AE; [14 A3, 05, 05]
+2748; [14 A3, 05, 05]
-27AF; [14 A5, 05, 05]
+2749; [14 A5, 05, 05]
-27B1; [14 A7, 05, 05]
+274A; [14 A7, 05, 05]
-27B2; [14 A9, 05, 05]
+274B; [14 A9, 05, 05]
-27B3; [14 AB, 05, 05]
+274D; [14 AB, 05, 05]
-27B4; [14 AD, 05, 05]
+274F; [14 AD, 05, 05]
-27B5; [14 AF, 05, 05]
+2750; [14 AF, 05, 05]
-27B6; [14 B1, 05, 05]
+2751; [14 B1, 05, 05]
-27B7; [14 B3, 05, 05]
+2752; [14 B3, 05, 05]
-27B8; [14 B5, 05, 05]
+2756; [14 B5, 05, 05]
-27B9; [14 B7, 05, 05]
+2758; [14 B7, 05, 05]
-27BA; [14 B9, 05, 05]
+2759; [14 B9, 05, 05]
-27BB; [14 BB, 05, 05]
+275A; [14 BB, 05, 05]
-27BC; [14 BD, 05, 05]
+275B; [14 BD, 05, 05]
-27BD; [14 BF, 05, 05]
+275C; [14 BF, 05, 05]
-27BE; [14 C1, 05, 05]
+275D; [14 C1, 05, 05]
-27C0; [14 C3, 05, 05]
+275E; [14 C3, 05, 05]
-27C1; [14 C5, 05, 05]
+2761; [14 C5, 05, 05]
-27C2; [14 C7, 05, 05]
+2762; [14 C7, 05, 05]
-27C3; [14 C9, 05, 05]
+2763; [14 C9, 05, 05]
-27C4; [14 CB, 05, 05]
+2764; [14 CB, 05, 05]
-27C5; [15 20, 05, 05]
+2765; [15 20, 05, 05]
-27C6; [15 22, 05, 05]
+2766; [15 22, 05, 05]
-27D0; [15 24, 05, 05]
+2767; [15 24, 05, 05]
-27D1; [15 26, 05, 05]
+2768; [15 26, 05, 05]
-27D2; [15 28, 05, 05]
+2769; [15 28, 05, 05]
-27D3; [15 2A, 05, 05]
+276A; [15 2A, 05, 05]
-27D4; [15 2C, 05, 05]
+276B; [15 2C, 05, 05]
-27D5; [15 2E, 05, 05]
+276C; [15 2E, 05, 05]
-27D6; [15 30, 05, 05]
+276D; [15 30, 05, 05]
-27D7; [15 32, 05, 05]
+276E; [15 32, 05, 05]
-27D8; [15 34, 05, 05]
+276F; [15 34, 05, 05]
-27D9; [15 36, 05, 05]
+2770; [15 36, 05, 05]
-27DA; [15 38, 05, 05]
+2771; [15 38, 05, 05]
-27DB; [15 3A, 05, 05]
+2772; [15 3A, 05, 05]
-27DC; [15 3C, 05, 05]
+2773; [15 3C, 05, 05]
-27DD; [15 3E, 05, 05]
+2774; [15 3E, 05, 05]
-27DE; [15 40, 05, 05]
+2775; [15 40, 05, 05]
-27DF; [15 42, 05, 05]
+2794; [15 42, 05, 05]
-27E0; [15 44, 05, 05]
+2798; [15 44, 05, 05]
-27E1; [15 46, 05, 05]
+2799; [15 46, 05, 05]
-27E2; [15 48, 05, 05]
+279A; [15 48, 05, 05]
-27E3; [15 4A, 05, 05]
+279B; [15 4A, 05, 05]
-27E4; [15 4C, 05, 05]
+279C; [15 4C, 05, 05]
-27E5; [15 4E, 05, 05]
+279D; [15 4E, 05, 05]
-27E6; [15 50, 05, 05]
+279E; [15 50, 05, 05]
-27E7; [15 52, 05, 05]
+279F; [15 52, 05, 05]
-27E8; [15 54, 05, 05]
+27A0; [15 54, 05, 05]
-27E9; [15 56, 05, 05]
+27A1; [15 56, 05, 05]
-27EA; [15 58, 05, 05]
+27A2; [15 58, 05, 05]
-27EB; [15 5A, 05, 05]
+27A3; [15 5A, 05, 05]
-27F0; [15 5C, 05, 05]
+27A4; [15 5C, 05, 05]
-27F1; [15 5E, 05, 05]
+27A5; [15 5E, 05, 05]
-27F2; [15 60, 05, 05]
+27A6; [15 60, 05, 05]
-27F3; [15 62, 05, 05]
+27A7; [15 62, 05, 05]
-27F4; [15 64, 05, 05]
+27A8; [15 64, 05, 05]
-27F5; [15 66, 05, 05]
+27A9; [15 66, 05, 05]
-27F6; [15 68, 05, 05]
+27AA; [15 68, 05, 05]
-27F7; [15 6A, 05, 05]
+27AB; [15 6A, 05, 05]
-27F8; [15 6C, 05, 05]
+27AC; [15 6C, 05, 05]
-27F9; [15 6E, 05, 05]
+27AD; [15 6E, 05, 05]
-27FA; [15 70, 05, 05]
+27AE; [15 70, 05, 05]
-27FB; [15 72, 05, 05]
+27AF; [15 72, 05, 05]
-27FC; [15 74, 05, 05]
+27B1; [15 74, 05, 05]
-27FD; [15 76, 05, 05]
+27B2; [15 76, 05, 05]
-27FE; [15 78, 05, 05]
+27B3; [15 78, 05, 05]
-27FF; [15 7A, 05, 05]
+27B4; [15 7A, 05, 05]
-2900; [15 7C, 05, 05]
+27B5; [15 7C, 05, 05]
-2901; [15 7E, 05, 05]
+27B6; [15 7E, 05, 05]
-2902; [15 80, 05, 05]
+27B7; [15 80, 05, 05]
-2903; [15 82, 05, 05]
+27B8; [15 82, 05, 05]
-2904; [15 84, 05, 05]
+27B9; [15 84, 05, 05]
-2905; [15 86, 05, 05]
+27BA; [15 86, 05, 05]
-2906; [15 88, 05, 05]
+27BB; [15 88, 05, 05]
-2907; [15 8A, 05, 05]
+27BC; [15 8A, 05, 05]
-2908; [15 8C, 05, 05]
+27BD; [15 8C, 05, 05]
-2909; [15 8E, 05, 05]
+27BE; [15 8E, 05, 05]
-290A; [15 90, 05, 05]
+27C0; [15 90, 05, 05]
-290B; [15 92, 05, 05]
+27C1; [15 92, 05, 05]
-290C; [15 94, 05, 05]
+27C2; [15 94, 05, 05]
-290D; [15 96, 05, 05]
+27C3; [15 96, 05, 05]
-290E; [15 98, 05, 05]
+27C4; [15 98, 05, 05]
-290F; [15 9A, 05, 05]
+27C5; [15 9A, 05, 05]
-2910; [15 9C, 05, 05]
+27C6; [15 9C, 05, 05]
-2911; [15 9E, 05, 05]
+27C7; [15 9E, 05, 05]
-2912; [15 A0, 05, 05]
+27C8; [15 A0, 05, 05]
-2913; [15 A2, 05, 05]
+27C9; [15 A2, 05, 05]
-2914; [15 A4, 05, 05]
+27CA; [15 A4, 05, 05]
-2915; [15 A6, 05, 05]
+27D0; [15 A6, 05, 05]
-2916; [15 A8, 05, 05]
+27D1; [15 A8, 05, 05]
-2917; [15 AA, 05, 05]
+27D2; [15 AA, 05, 05]
-2918; [15 AC, 05, 05]
+27D3; [15 AC, 05, 05]
-2919; [15 AE, 05, 05]
+27D4; [15 AE, 05, 05]
-291A; [15 B0, 05, 05]
+27D5; [15 B0, 05, 05]
-291B; [15 B2, 05, 05]
+27D6; [15 B2, 05, 05]
-291C; [15 B4, 05, 05]
+27D7; [15 B4, 05, 05]
-291D; [15 B6, 05, 05]
+27D8; [15 B6, 05, 05]
-291E; [15 B8, 05, 05]
+27D9; [15 B8, 05, 05]
-291F; [15 BA, 05, 05]
+27DA; [15 BA, 05, 05]
-2920; [15 BC, 05, 05]
+27DB; [15 BC, 05, 05]
-2921; [15 BE, 05, 05]
+27DC; [15 BE, 05, 05]
-2922; [15 C0, 05, 05]
+27DD; [15 C0, 05, 05]
-2923; [15 C2, 05, 05]
+27DE; [15 C2, 05, 05]
-2924; [15 C4, 05, 05]
+27DF; [15 C4, 05, 05]
-2925; [15 C6, 05, 05]
+27E0; [15 C6, 05, 05]
-2926; [15 C8, 05, 05]
+27E1; [15 C8, 05, 05]
-2927; [15 CA, 05, 05]
+27E2; [15 CA, 05, 05]
-2928; [15 CC, 05, 05]
+27E3; [15 CC, 05, 05]
-2929; [15 CE, 05, 05]
+27E4; [15 CE, 05, 05]
-292A; [15 D0, 05, 05]
+27E5; [15 D0, 05, 05]
-292B; [15 D2, 05, 05]
+27E6; [15 D2, 05, 05]
-292C; [15 D4, 05, 05]
+27E7; [15 D4, 05, 05]
-292D; [15 D6, 05, 05]
+27E8; [15 D6, 05, 05]
-292E; [15 D8, 05, 05]
+27E9; [15 D8, 05, 05]
-292F; [15 DA, 05, 05]
+27EA; [15 DA, 05, 05]
-2930; [15 DC, 05, 05]
+27EB; [15 DC, 05, 05]
-2931; [15 DE, 05, 05]
+27F0; [15 DE, 05, 05]
-2932; [15 E0, 05, 05]
+27F1; [15 E0, 05, 05]
-2933; [15 E2, 05, 05]
+27F2; [15 E2, 05, 05]
-2934; [15 E4, 05, 05]
+27F3; [15 E4, 05, 05]
-2935; [15 E6, 05, 05]
+27F4; [15 E6, 05, 05]
-2936; [15 E8, 05, 05]
+27F5; [15 E8, 05, 05]
-2937; [15 EA, 05, 05]
+27F6; [15 EA, 05, 05]
-2938; [15 EC, 05, 05]
+27F7; [15 EC, 05, 05]
-2939; [15 EE, 05, 05]
+27F8; [15 EE, 05, 05]
-293A; [15 F0, 05, 05]
+27F9; [15 F0, 05, 05]
-293B; [15 F2, 05, 05]
+27FA; [15 F2, 05, 05]
-293C; [15 F4, 05, 05]
+27FB; [15 F4, 05, 05]
-293D; [15 F6, 05, 05]
+27FC; [15 F6, 05, 05]
-293E; [15 F8, 05, 05]
+27FD; [15 F8, 05, 05]
-293F; [15 FA, 05, 05]
+27FE; [15 FA, 05, 05]
-2940; [15 FC, 05, 05]
+27FF; [15 FC, 05, 05]
-2941; [15 FE, 05, 05]
+2900; [15 FE, 05, 05]
-2942; [16 05, 05, 05]
+2901; [16 05, 05, 05]
-2943; [16 07, 05, 05]
+2902; [16 07, 05, 05]
-2944; [16 09, 05, 05]
+2903; [16 09, 05, 05]
-2945; [16 0B, 05, 05]
+2904; [16 0B, 05, 05]
-2946; [16 0D, 05, 05]
+2905; [16 0D, 05, 05]
-2947; [16 0F, 05, 05]
+2906; [16 0F, 05, 05]
-2948; [16 11, 05, 05]
+2907; [16 11, 05, 05]
-2949; [16 13, 05, 05]
+2908; [16 13, 05, 05]
-294A; [16 15, 05, 05]
+2909; [16 15, 05, 05]
-294B; [16 17, 05, 05]
+290A; [16 17, 05, 05]
-294C; [16 19, 05, 05]
+290B; [16 19, 05, 05]
-294D; [16 1B, 05, 05]
+290C; [16 1B, 05, 05]
-294E; [16 1D, 05, 05]
+290D; [16 1D, 05, 05]
-294F; [16 1F, 05, 05]
+290E; [16 1F, 05, 05]
-2950; [16 21, 05, 05]
+290F; [16 21, 05, 05]
-2951; [16 23, 05, 05]
+2910; [16 23, 05, 05]
-2952; [16 25, 05, 05]
+2911; [16 25, 05, 05]
-2953; [16 27, 05, 05]
+2912; [16 27, 05, 05]
-2954; [16 29, 05, 05]
+2913; [16 29, 05, 05]
-2955; [16 2B, 05, 05]
+2914; [16 2B, 05, 05]
-2956; [16 2D, 05, 05]
+2915; [16 2D, 05, 05]
-2957; [16 2F, 05, 05]
+2916; [16 2F, 05, 05]
-2958; [16 31, 05, 05]
+2917; [16 31, 05, 05]
-2959; [16 33, 05, 05]
+2918; [16 33, 05, 05]
-295A; [16 35, 05, 05]
+2919; [16 35, 05, 05]
-295B; [16 37, 05, 05]
+291A; [16 37, 05, 05]
-295C; [16 39, 05, 05]
+291B; [16 39, 05, 05]
-295D; [16 3B, 05, 05]
+291C; [16 3B, 05, 05]
-295E; [16 3D, 05, 05]
+291D; [16 3D, 05, 05]
-295F; [16 3F, 05, 05]
+291E; [16 3F, 05, 05]
-2960; [16 41, 05, 05]
+291F; [16 41, 05, 05]
-2961; [16 43, 05, 05]
+2920; [16 43, 05, 05]
-2962; [16 45, 05, 05]
+2921; [16 45, 05, 05]
-2963; [16 47, 05, 05]
+2922; [16 47, 05, 05]
-2964; [16 49, 05, 05]
+2923; [16 49, 05, 05]
-2965; [16 4B, 05, 05]
+2924; [16 4B, 05, 05]
-2966; [16 4D, 05, 05]
+2925; [16 4D, 05, 05]
-2967; [16 4F, 05, 05]
+2926; [16 4F, 05, 05]
-2968; [16 51, 05, 05]
+2927; [16 51, 05, 05]
-2969; [16 53, 05, 05]
+2928; [16 53, 05, 05]
-296A; [16 55, 05, 05]
+2929; [16 55, 05, 05]
-296B; [16 57, 05, 05]
+292A; [16 57, 05, 05]
-296C; [16 59, 05, 05]
+292B; [16 59, 05, 05]
-296D; [16 5B, 05, 05]
+292C; [16 5B, 05, 05]
-296E; [16 5D, 05, 05]
+292D; [16 5D, 05, 05]
-296F; [16 5F, 05, 05]
+292E; [16 5F, 05, 05]
-2970; [16 61, 05, 05]
+292F; [16 61, 05, 05]
-2971; [16 63, 05, 05]
+2930; [16 63, 05, 05]
-2972; [16 65, 05, 05]
+2931; [16 65, 05, 05]
-2973; [16 67, 05, 05]
+2932; [16 67, 05, 05]
-2974; [16 69, 05, 05]
+2933; [16 69, 05, 05]
-2975; [16 6B, 05, 05]
+2934; [16 6B, 05, 05]
-2976; [16 6D, 05, 05]
+2935; [16 6D, 05, 05]
-2977; [16 6F, 05, 05]
+2936; [16 6F, 05, 05]
-2978; [16 71, 05, 05]
+2937; [16 71, 05, 05]
-2979; [16 73, 05, 05]
+2938; [16 73, 05, 05]
-297A; [16 75, 05, 05]
+2939; [16 75, 05, 05]
-297B; [16 77, 05, 05]
+293A; [16 77, 05, 05]
-297C; [16 79, 05, 05]
+293B; [16 79, 05, 05]
-297D; [16 7B, 05, 05]
+293C; [16 7B, 05, 05]
-297E; [16 7D, 05, 05]
+293D; [16 7D, 05, 05]
-297F; [16 7F, 05, 05]
+293E; [16 7F, 05, 05]
-2980; [16 81, 05, 05]
+293F; [16 81, 05, 05]
-2981; [16 83, 05, 05]
+2940; [16 83, 05, 05]
-2982; [16 85, 05, 05]
+2941; [16 85, 05, 05]
-2999; [16 87, 05, 05]
+2942; [16 87, 05, 05]
-299A; [16 89, 05, 05]
+2943; [16 89, 05, 05]
-299B; [16 8B, 05, 05]
+2944; [16 8B, 05, 05]
-299C; [16 8D, 05, 05]
+2945; [16 8D, 05, 05]
-299D; [16 8F, 05, 05]
+2946; [16 8F, 05, 05]
-299E; [16 91, 05, 05]
+2947; [16 91, 05, 05]
-299F; [16 93, 05, 05]
+2948; [16 93, 05, 05]
-29A0; [16 95, 05, 05]
+2949; [16 95, 05, 05]
-29A1; [16 97, 05, 05]
+294A; [16 97, 05, 05]
-29A2; [16 99, 05, 05]
+294B; [16 99, 05, 05]
-29A3; [16 9B, 05, 05]
+294C; [16 9B, 05, 05]
-29A4; [16 9D, 05, 05]
+294D; [16 9D, 05, 05]
-29A5; [16 9F, 05, 05]
+294E; [16 9F, 05, 05]
-29A6; [16 A1, 05, 05]
+294F; [16 A1, 05, 05]
-29A7; [16 A3, 05, 05]
+2950; [16 A3, 05, 05]
-29A8; [16 A5, 05, 05]
+2951; [16 A5, 05, 05]
-29A9; [16 A7, 05, 05]
+2952; [16 A7, 05, 05]
-29AA; [16 A9, 05, 05]
+2953; [16 A9, 05, 05]
-29AB; [16 AB, 05, 05]
+2954; [16 AB, 05, 05]
-29AC; [16 AD, 05, 05]
+2955; [16 AD, 05, 05]
-29AD; [16 AF, 05, 05]
+2956; [16 AF, 05, 05]
-29AE; [16 B1, 05, 05]
+2957; [16 B1, 05, 05]
-29AF; [16 B3, 05, 05]
+2958; [16 B3, 05, 05]
-29B0; [16 B5, 05, 05]
+2959; [16 B5, 05, 05]
-29B1; [16 B7, 05, 05]
+295A; [16 B7, 05, 05]
-29B2; [16 B9, 05, 05]
+295B; [16 B9, 05, 05]
-29B3; [16 BB, 05, 05]
+295C; [16 BB, 05, 05]
-29B4; [16 BD, 05, 05]
+295D; [16 BD, 05, 05]
-29B5; [16 BF, 05, 05]
+295E; [16 BF, 05, 05]
-29B6; [16 C1, 05, 05]
+295F; [16 C1, 05, 05]
-29B7; [16 C3, 05, 05]
+2960; [16 C3, 05, 05]
-29B8; [16 C5, 05, 05]
+2961; [16 C5, 05, 05]
-29B9; [16 C7, 05, 05]
+2962; [16 C7, 05, 05]
-29BA; [16 C9, 05, 05]
+2963; [16 C9, 05, 05]
-29BB; [16 CB, 05, 05]
+2964; [16 CB, 05, 05]
-29BC; [16 CD, 05, 05]
+2965; [16 CD, 05, 05]
-29BD; [16 CF, 05, 05]
+2966; [16 CF, 05, 05]
-29BE; [16 D1, 05, 05]
+2967; [16 D1, 05, 05]
-29BF; [16 D3, 05, 05]
+2968; [16 D3, 05, 05]
-29C0; [16 D5, 05, 05]
+2969; [16 D5, 05, 05]
-29C1; [16 D7, 05, 05]
+296A; [16 D7, 05, 05]
-29C2; [16 D9, 05, 05]
+296B; [16 D9, 05, 05]
-29C3; [16 DB, 05, 05]
+296C; [16 DB, 05, 05]
-29C4; [16 DD, 05, 05]
+296D; [16 DD, 05, 05]
-29C5; [16 DF, 05, 05]
+296E; [16 DF, 05, 05]
-29C6; [16 E1, 05, 05]
+296F; [16 E1, 05, 05]
-29C7; [16 E3, 05, 05]
+2970; [16 E3, 05, 05]
-29C8; [16 E5, 05, 05]
+2971; [16 E5, 05, 05]
-29C9; [16 E7, 05, 05]
+2972; [16 E7, 05, 05]
-29CA; [16 E9, 05, 05]
+2973; [16 E9, 05, 05]
-29CB; [16 EB, 05, 05]
+2974; [16 EB, 05, 05]
-29CC; [16 ED, 05, 05]
+2975; [16 ED, 05, 05]
-29CD; [16 EF, 05, 05]
+2976; [16 EF, 05, 05]
-29CE; [16 F1, 05, 05]
+2977; [16 F1, 05, 05]
-29CF; [16 F3, 05, 05]
+2978; [16 F3, 05, 05]
-29D0; [16 F5, 05, 05]
+2979; [16 F5, 05, 05]
-29D1; [16 F7, 05, 05]
+297A; [16 F7, 05, 05]
-29D2; [16 F9, 05, 05]
+297B; [16 F9, 05, 05]
-29D3; [16 FB, 05, 05]
+297C; [16 FB, 05, 05]
-29D4; [16 FD, 05, 05]
+297D; [16 FD, 05, 05]
-29D5; [17 05, 05, 05]
+297E; [17 05, 05, 05]
-29D6; [17 07, 05, 05]
+297F; [17 07, 05, 05]
-29D7; [17 09, 05, 05]
+2980; [17 09, 05, 05]
-29D8; [17 0B, 05, 05]
+2981; [17 0B, 05, 05]
-29D9; [17 0D, 05, 05]
+2982; [17 0D, 05, 05]
-29DA; [17 0F, 05, 05]
+2999; [17 0F, 05, 05]
-29DB; [17 11, 05, 05]
+299A; [17 11, 05, 05]
-29DC; [17 13, 05, 05]
+299B; [17 13, 05, 05]
-29DD; [17 15, 05, 05]
+299C; [17 15, 05, 05]
-29DE; [17 17, 05, 05]
+299D; [17 17, 05, 05]
-29DF; [17 19, 05, 05]
+299E; [17 19, 05, 05]
-29E0; [17 1B, 05, 05]
+299F; [17 1B, 05, 05]
-29E1; [17 1D, 05, 05]
+29A0; [17 1D, 05, 05]
-29E2; [17 1F, 05, 05]
+29A1; [17 1F, 05, 05]
-29E3; [17 21, 05, 05]
+29A2; [17 21, 05, 05]
-29E4; [17 23, 05, 05]
+29A3; [17 23, 05, 05]
-29E5; [17 25, 05, 05]
+29A4; [17 25, 05, 05]
-29E6; [17 27, 05, 05]
+29A5; [17 27, 05, 05]
-29E7; [17 29, 05, 05]
+29A6; [17 29, 05, 05]
-29E8; [17 2B, 05, 05]
+29A7; [17 2B, 05, 05]
-29E9; [17 2D, 05, 05]
+29A8; [17 2D, 05, 05]
-29EA; [17 2F, 05, 05]
+29A9; [17 2F, 05, 05]
-29EB; [17 31, 05, 05]
+29AA; [17 31, 05, 05]
-29EC; [17 33, 05, 05]
+29AB; [17 33, 05, 05]
-29ED; [17 35, 05, 05]
+29AC; [17 35, 05, 05]
-29EE; [17 37, 05, 05]
+29AD; [17 37, 05, 05]
-29EF; [17 39, 05, 05]
+29AE; [17 39, 05, 05]
-29F0; [17 3B, 05, 05]
+29AF; [17 3B, 05, 05]
-29F1; [17 3D, 05, 05]
+29B0; [17 3D, 05, 05]
-29F2; [17 3F, 05, 05]
+29B1; [17 3F, 05, 05]
-29F3; [17 41, 05, 05]
+29B2; [17 41, 05, 05]
-29F4; [17 43, 05, 05]
+29B3; [17 43, 05, 05]
-29F5; [17 45, 05, 05]
+29B4; [17 45, 05, 05]
-29F6; [17 47, 05, 05]
+29B5; [17 47, 05, 05]
-29F7; [17 49, 05, 05]
+29B6; [17 49, 05, 05]
-29F8; [17 4B, 05, 05]
+29B7; [17 4B, 05, 05]
-29F9; [17 4D, 05, 05]
+29B8; [17 4D, 05, 05]
-29FA; [17 4F, 05, 05]
+29B9; [17 4F, 05, 05]
-29FB; [17 51, 05, 05]
+29BA; [17 51, 05, 05]
-29FE; [17 53, 05, 05]
+29BB; [17 53, 05, 05]
-29FF; [17 55, 05, 05]
+29BC; [17 55, 05, 05]
-2A00; [17 57, 05, 05]
+29BD; [17 57, 05, 05]
-2A01; [17 59, 05, 05]
+29BE; [17 59, 05, 05]
-2A02; [17 5B, 05, 05]
+29BF; [17 5B, 05, 05]
-2A03; [17 5D, 05, 05]
+29C0; [17 5D, 05, 05]
-2A04; [17 5F, 05, 05]
+29C1; [17 5F, 05, 05]
-2A05; [17 61, 05, 05]
+29C2; [17 61, 05, 05]
-2A06; [17 63, 05, 05]
+29C3; [17 63, 05, 05]
-2A07; [17 65, 05, 05]
+29C4; [17 65, 05, 05]
-2A08; [17 67, 05, 05]
+29C5; [17 67, 05, 05]
-2A09; [17 69, 05, 05]
+29C6; [17 69, 05, 05]
-2A0A; [17 6B, 05, 05]
+29C7; [17 6B, 05, 05]
-2A0B; [17 6D, 05, 05]
+29C8; [17 6D, 05, 05]
-2A0D; [17 6F, 05, 05]
+29C9; [17 6F, 05, 05]
-2A0E; [17 71, 05, 05]
+29CA; [17 71, 05, 05]
-2A0F; [17 73, 05, 05]
+29CB; [17 73, 05, 05]
-2A10; [17 75, 05, 05]
+29CC; [17 75, 05, 05]
-2A11; [17 77, 05, 05]
+29CD; [17 77, 05, 05]
-2A12; [17 79, 05, 05]
+29CE; [17 79, 05, 05]
-2A13; [17 7B, 05, 05]
+29CF; [17 7B, 05, 05]
-2A14; [17 7D, 05, 05]
+29D0; [17 7D, 05, 05]
-2A15; [17 7F, 05, 05]
+29D1; [17 7F, 05, 05]
-2A16; [17 81, 05, 05]
+29D2; [17 81, 05, 05]
-2A17; [17 83, 05, 05]
+29D3; [17 83, 05, 05]
-2A18; [17 85, 05, 05]
+29D4; [17 85, 05, 05]
-2A19; [17 87, 05, 05]
+29D5; [17 87, 05, 05]
-2A1A; [17 89, 05, 05]
+29D6; [17 89, 05, 05]
-2A1B; [17 8B, 05, 05]
+29D7; [17 8B, 05, 05]
-2A1C; [17 8D, 05, 05]
+29D8; [17 8D, 05, 05]
-2A1D; [17 8F, 05, 05]
+29D9; [17 8F, 05, 05]
-2A1E; [17 91, 05, 05]
+29DA; [17 91, 05, 05]
-2A1F; [17 93, 05, 05]
+29DB; [17 93, 05, 05]
-2A20; [17 95, 05, 05]
+29DC; [17 95, 05, 05]
-2A21; [17 97, 05, 05]
+29DD; [17 97, 05, 05]
-2A22; [17 99, 05, 05]
+29DE; [17 99, 05, 05]
-2A23; [17 9B, 05, 05]
+29DF; [17 9B, 05, 05]
-2A24; [17 9D, 05, 05]
+29E0; [17 9D, 05, 05]
-2A25; [17 9F, 05, 05]
+29E1; [17 9F, 05, 05]
-2A26; [17 A1, 05, 05]
+29E2; [17 A1, 05, 05]
-2A27; [17 A3, 05, 05]
+29E3; [17 A3, 05, 05]
-2A28; [17 A5, 05, 05]
+29E4; [17 A5, 05, 05]
-2A29; [17 A7, 05, 05]
+29E5; [17 A7, 05, 05]
-2A2A; [17 A9, 05, 05]
+29E6; [17 A9, 05, 05]
-2A2B; [17 AB, 05, 05]
+29E7; [17 AB, 05, 05]
-2A2C; [17 AD, 05, 05]
+29E8; [17 AD, 05, 05]
-2A2D; [17 AF, 05, 05]
+29E9; [17 AF, 05, 05]
-2A2E; [17 B1, 05, 05]
+29EA; [17 B1, 05, 05]
-2A2F; [17 B3, 05, 05]
+29EB; [17 B3, 05, 05]
-2A30; [17 B5, 05, 05]
+29EC; [17 B5, 05, 05]
-2A31; [17 B7, 05, 05]
+29ED; [17 B7, 05, 05]
-2A32; [17 B9, 05, 05]
+29EE; [17 B9, 05, 05]
-2A33; [17 BB, 05, 05]
+29EF; [17 BB, 05, 05]
-2A34; [17 BD, 05, 05]
+29F0; [17 BD, 05, 05]
-2A35; [17 BF, 05, 05]
+29F1; [17 BF, 05, 05]
-2A36; [17 C1, 05, 05]
+29F2; [17 C1, 05, 05]
-2A37; [17 C3, 05, 05]
+29F3; [17 C3, 05, 05]
-2A38; [17 C5, 05, 05]
+29F4; [17 C5, 05, 05]
-2A39; [17 C7, 05, 05]
+29F5; [17 C7, 05, 05]
-2A3A; [17 C9, 05, 05]
+29F6; [17 C9, 05, 05]
-2A3B; [17 CB, 05, 05]
+29F7; [17 CB, 05, 05]
-2A3C; [17 CD, 05, 05]
+29F8; [17 CD, 05, 05]
-2A3D; [17 CF, 05, 05]
+29F9; [17 CF, 05, 05]
-2A3E; [17 D1, 05, 05]
+29FA; [17 D1, 05, 05]
-2A3F; [17 D3, 05, 05]
+29FB; [17 D3, 05, 05]
-2A40; [17 D5, 05, 05]
+29FE; [17 D5, 05, 05]
-2A41; [17 D7, 05, 05]
+29FF; [17 D7, 05, 05]
-2A42; [17 D9, 05, 05]
+2A00; [17 D9, 05, 05]
-2A43; [17 DB, 05, 05]
+2A01; [17 DB, 05, 05]
-2A44; [17 DD, 05, 05]
+2A02; [17 DD, 05, 05]
-2A45; [17 DF, 05, 05]
+2A03; [17 DF, 05, 05]
-2A46; [17 E1, 05, 05]
+2A04; [17 E1, 05, 05]
-2A47; [17 E3, 05, 05]
+2A05; [17 E3, 05, 05]
-2A48; [17 E5, 05, 05]
+2A06; [17 E5, 05, 05]
-2A49; [17 E7, 05, 05]
+2A07; [17 E7, 05, 05]
-2A4A; [17 E9, 05, 05]
+2A08; [17 E9, 05, 05]
-2A4B; [17 EB, 05, 05]
+2A09; [17 EB, 05, 05]
-2A4C; [17 ED, 05, 05]
+2A0A; [17 ED, 05, 05]
-2A4D; [17 EF, 05, 05]
+2A0B; [17 EF, 05, 05]
-2A4E; [17 F1, 05, 05]
+2A0D; [17 F1, 05, 05]
-2A4F; [17 F3, 05, 05]
+2A0E; [17 F3, 05, 05]
-2A50; [17 F5, 05, 05]
+2A0F; [17 F5, 05, 05]
-2A51; [17 F7, 05, 05]
+2A10; [17 F7, 05, 05]
-2A52; [17 F9, 05, 05]
+2A11; [17 F9, 05, 05]
-2A53; [17 FB, 05, 05]
+2A12; [17 FB, 05, 05]
-2A54; [17 FD, 05, 05]
+2A13; [17 FD, 05, 05]
-2A55; [18 05, 05, 05]
+2A14; [18 05, 05, 05]
-2A56; [18 07, 05, 05]
+2A15; [18 07, 05, 05]
-2A57; [18 09, 05, 05]
+2A16; [18 09, 05, 05]
-2A58; [18 0B, 05, 05]
+2A17; [18 0B, 05, 05]
-2A59; [18 0D, 05, 05]
+2A18; [18 0D, 05, 05]
-2A5A; [18 0F, 05, 05]
+2A19; [18 0F, 05, 05]
-2A5B; [18 11, 05, 05]
+2A1A; [18 11, 05, 05]
-2A5C; [18 13, 05, 05]
+2A1B; [18 13, 05, 05]
-2A5D; [18 15, 05, 05]
+2A1C; [18 15, 05, 05]
-2A5E; [18 17, 05, 05]
+2A1D; [18 17, 05, 05]
-2A5F; [18 19, 05, 05]
+2A1E; [18 19, 05, 05]
-2A60; [18 1B, 05, 05]
+2A1F; [18 1B, 05, 05]
-2A61; [18 1D, 05, 05]
+2A20; [18 1D, 05, 05]
-2A62; [18 1F, 05, 05]
+2A21; [18 1F, 05, 05]
-2A63; [18 21, 05, 05]
+2A22; [18 21, 05, 05]
-2A64; [18 23, 05, 05]
+2A23; [18 23, 05, 05]
-2A65; [18 25, 05, 05]
+2A24; [18 25, 05, 05]
-2A66; [18 27, 05, 05]
+2A25; [18 27, 05, 05]
-2A67; [18 29, 05, 05]
+2A26; [18 29, 05, 05]
-2A68; [18 2B, 05, 05]
+2A27; [18 2B, 05, 05]
-2A69; [18 2D, 05, 05]
+2A28; [18 2D, 05, 05]
-2A6A; [18 2F, 05, 05]
+2A29; [18 2F, 05, 05]
-2A6B; [18 31, 05, 05]
+2A2A; [18 31, 05, 05]
-2A6C; [18 33, 05, 05]
+2A2B; [18 33, 05, 05]
-2A6D; [18 35, 05, 05]
+2A2C; [18 35, 05, 05]
-2A6E; [18 37, 05, 05]
+2A2D; [18 37, 05, 05]
-2A6F; [18 39, 05, 05]
+2A2E; [18 39, 05, 05]
-2A70; [18 3B, 05, 05]
+2A2F; [18 3B, 05, 05]
-2A71; [18 3D, 05, 05]
+2A30; [18 3D, 05, 05]
-2A72; [18 3F, 05, 05]
+2A31; [18 3F, 05, 05]
-2A73; [18 41, 05, 05]
+2A32; [18 41, 05, 05]
-2A77; [18 43, 05, 05]
+2A33; [18 43, 05, 05]
-2A78; [18 45, 05, 05]
+2A34; [18 45, 05, 05]
-2A79; [18 47, 05, 05]
+2A35; [18 47, 05, 05]
-2A7A; [18 49, 05, 05]
+2A36; [18 49, 05, 05]
-2A7B; [18 4B, 05, 05]
+2A37; [18 4B, 05, 05]
-2A7C; [18 4D, 05, 05]
+2A38; [18 4D, 05, 05]
-2A7D; [18 4F, 05, 05]
+2A39; [18 4F, 05, 05]
-2A7E; [18 51, 05, 05]
+2A3A; [18 51, 05, 05]
-2A7F; [18 53, 05, 05]
+2A3B; [18 53, 05, 05]
-2A80; [18 55, 05, 05]
+2A3C; [18 55, 05, 05]
-2A81; [18 57, 05, 05]
+2A3D; [18 57, 05, 05]
-2A82; [18 59, 05, 05]
+2A3E; [18 59, 05, 05]
-2A83; [18 5B, 05, 05]
+2A3F; [18 5B, 05, 05]
-2A84; [18 5D, 05, 05]
+2A40; [18 5D, 05, 05]
-2A85; [18 5F, 05, 05]
+2A41; [18 5F, 05, 05]
-2A86; [18 61, 05, 05]
+2A42; [18 61, 05, 05]
-2A87; [18 63, 05, 05]
+2A43; [18 63, 05, 05]
-2A88; [18 65, 05, 05]
+2A44; [18 65, 05, 05]
-2A89; [18 67, 05, 05]
+2A45; [18 67, 05, 05]
-2A8A; [18 69, 05, 05]
+2A46; [18 69, 05, 05]
-2A8B; [18 6B, 05, 05]
+2A47; [18 6B, 05, 05]
-2A8C; [18 6D, 05, 05]
+2A48; [18 6D, 05, 05]
-2A8D; [18 6F, 05, 05]
+2A49; [18 6F, 05, 05]
-2A8E; [18 71, 05, 05]
+2A4A; [18 71, 05, 05]
-2A8F; [18 73, 05, 05]
+2A4B; [18 73, 05, 05]
-2A90; [18 75, 05, 05]
+2A4C; [18 75, 05, 05]
-2A91; [18 77, 05, 05]
+2A4D; [18 77, 05, 05]
-2A92; [18 79, 05, 05]
+2A4E; [18 79, 05, 05]
-2A93; [18 7B, 05, 05]
+2A4F; [18 7B, 05, 05]
-2A94; [18 7D, 05, 05]
+2A50; [18 7D, 05, 05]
-2A95; [18 7F, 05, 05]
+2A51; [18 7F, 05, 05]
-2A96; [18 81, 05, 05]
+2A52; [18 81, 05, 05]
-2A97; [18 83, 05, 05]
+2A53; [18 83, 05, 05]
-2A98; [18 85, 05, 05]
+2A54; [18 85, 05, 05]
-2A99; [18 87, 05, 05]
+2A55; [18 87, 05, 05]
-2A9A; [18 89, 05, 05]
+2A56; [18 89, 05, 05]
-2A9B; [18 8B, 05, 05]
+2A57; [18 8B, 05, 05]
-2A9C; [18 8D, 05, 05]
+2A58; [18 8D, 05, 05]
-2A9D; [18 8F, 05, 05]
+2A59; [18 8F, 05, 05]
-2A9E; [18 91, 05, 05]
+2A5A; [18 91, 05, 05]
-2A9F; [18 93, 05, 05]
+2A5B; [18 93, 05, 05]
-2AA0; [18 95, 05, 05]
+2A5C; [18 95, 05, 05]
-2AA1; [18 97, 05, 05]
+2A5D; [18 97, 05, 05]
-2AA2; [18 99, 05, 05]
+2A5E; [18 99, 05, 05]
-2AA3; [18 9B, 05, 05]
+2A5F; [18 9B, 05, 05]
-2AA4; [18 9D, 05, 05]
+2A60; [18 9D, 05, 05]
-2AA5; [18 9F, 05, 05]
+2A61; [18 9F, 05, 05]
-2AA6; [18 A1, 05, 05]
+2A62; [18 A1, 05, 05]
-2AA7; [18 A3, 05, 05]
+2A63; [18 A3, 05, 05]
-2AA8; [18 A5, 05, 05]
+2A64; [18 A5, 05, 05]
-2AA9; [18 A7, 05, 05]
+2A65; [18 A7, 05, 05]
-2AAA; [18 A9, 05, 05]
+2A66; [18 A9, 05, 05]
-2AAB; [18 AB, 05, 05]
+2A67; [18 AB, 05, 05]
-2AAC; [18 AD, 05, 05]
+2A68; [18 AD, 05, 05]
-2AAD; [18 AF, 05, 05]
+2A69; [18 AF, 05, 05]
-2AAE; [18 B1, 05, 05]
+2A6A; [18 B1, 05, 05]
-2AAF; [18 B3, 05, 05]
+2A6B; [18 B3, 05, 05]
-2AB0; [18 B5, 05, 05]
+2A6C; [18 B5, 05, 05]
-2AB1; [18 B7, 05, 05]
+2A6D; [18 B7, 05, 05]
-2AB2; [18 B9, 05, 05]
+2A6E; [18 B9, 05, 05]
-2AB3; [18 BB, 05, 05]
+2A6F; [18 BB, 05, 05]
-2AB4; [18 BD, 05, 05]
+2A70; [18 BD, 05, 05]
-2AB5; [18 BF, 05, 05]
+2A71; [18 BF, 05, 05]
-2AB6; [18 C1, 05, 05]
+2A72; [18 C1, 05, 05]
-2AB7; [18 C3, 05, 05]
+2A73; [18 C3, 05, 05]
-2AB8; [18 C5, 05, 05]
+2A77; [18 C5, 05, 05]
-2AB9; [18 C7, 05, 05]
+2A78; [18 C7, 05, 05]
-2ABA; [18 C9, 05, 05]
+2A79; [18 C9, 05, 05]
-2ABB; [18 CB, 05, 05]
+2A7A; [18 CB, 05, 05]
-2ABC; [18 CD, 05, 05]
+2A7B; [18 CD, 05, 05]
-2ABD; [18 CF, 05, 05]
+2A7C; [18 CF, 05, 05]
-2ABE; [18 D1, 05, 05]
+2A7D; [18 D1, 05, 05]
-2ABF; [18 D3, 05, 05]
+2A7E; [18 D3, 05, 05]
-2AC0; [18 D5, 05, 05]
+2A7F; [18 D5, 05, 05]
-2AC1; [18 D7, 05, 05]
+2A80; [18 D7, 05, 05]
-2AC2; [18 D9, 05, 05]
+2A81; [18 D9, 05, 05]
-2AC3; [18 DB, 05, 05]
+2A82; [18 DB, 05, 05]
-2AC4; [18 DD, 05, 05]
+2A83; [18 DD, 05, 05]
-2AC5; [18 DF, 05, 05]
+2A84; [18 DF, 05, 05]
-2AC6; [18 E1, 05, 05]
+2A85; [18 E1, 05, 05]
-2AC7; [18 E3, 05, 05]
+2A86; [18 E3, 05, 05]
-2AC8; [18 E5, 05, 05]
+2A87; [18 E5, 05, 05]
-2AC9; [18 E7, 05, 05]
+2A88; [18 E7, 05, 05]
-2ACA; [18 E9, 05, 05]
+2A89; [18 E9, 05, 05]
-2ACB; [18 EB, 05, 05]
+2A8A; [18 EB, 05, 05]
-2ACC; [18 ED, 05, 05]
+2A8B; [18 ED, 05, 05]
-2ACD; [18 EF, 05, 05]
+2A8C; [18 EF, 05, 05]
-2ACE; [18 F1, 05, 05]
+2A8D; [18 F1, 05, 05]
-2ACF; [18 F3, 05, 05]
+2A8E; [18 F3, 05, 05]
-2AD0; [18 F5, 05, 05]
+2A8F; [18 F5, 05, 05]
-2AD1; [18 F7, 05, 05]
+2A90; [18 F7, 05, 05]
-2AD2; [18 F9, 05, 05]
+2A91; [18 F9, 05, 05]
-2AD3; [18 FB, 05, 05]
+2A92; [18 FB, 05, 05]
-2AD4; [18 FD, 05, 05]
+2A93; [18 FD, 05, 05]
-2AD5; [19 05, 05, 05]
+2A94; [19 05, 05, 05]
-2AD6; [19 07, 05, 05]
+2A95; [19 07, 05, 05]
-2AD7; [19 09, 05, 05]
+2A96; [19 09, 05, 05]
-2AD8; [19 0B, 05, 05]
+2A97; [19 0B, 05, 05]
-2AD9; [19 0D, 05, 05]
+2A98; [19 0D, 05, 05]
-2ADA; [19 0F, 05, 05]
+2A99; [19 0F, 05, 05]
-2ADB; [19 11, 05, 05]
+2A9A; [19 11, 05, 05]
-2ADD; [19 13, 05, 05]
-2ADC; [19 13, 05, 05][, A5, 05]
+2A9B; [19 13, 05, 05]
-2ADE; [19 15, 05, 05]
+2A9C; [19 15, 05, 05]
-2ADF; [19 17, 05, 05]
+2A9D; [19 17, 05, 05]
-2AE0; [19 19, 05, 05]
+2A9E; [19 19, 05, 05]
-2AE1; [19 1B, 05, 05]
+2A9F; [19 1B, 05, 05]
-2AE2; [19 1D, 05, 05]
+2AA0; [19 1D, 05, 05]
-2AE3; [19 1F, 05, 05]
+2AA1; [19 1F, 05, 05]
-2AE4; [19 21, 05, 05]
+2AA2; [19 21, 05, 05]
-2AE5; [19 23, 05, 05]
+2AA3; [19 23, 05, 05]
-2AE6; [19 25, 05, 05]
+2AA4; [19 25, 05, 05]
-2AE7; [19 27, 05, 05]
+2AA5; [19 27, 05, 05]
-2AE8; [19 29, 05, 05]
+2AA6; [19 29, 05, 05]
-2AE9; [19 2B, 05, 05]
+2AA7; [19 2B, 05, 05]
-2AEA; [19 2D, 05, 05]
+2AA8; [19 2D, 05, 05]
-2AEB; [19 2F, 05, 05]
+2AA9; [19 2F, 05, 05]
-2AEC; [19 31, 05, 05]
+2AAA; [19 31, 05, 05]
-2AED; [19 33, 05, 05]
+2AAB; [19 33, 05, 05]
-2AEE; [19 35, 05, 05]
+2AAC; [19 35, 05, 05]
-2AEF; [19 37, 05, 05]
+2AAD; [19 37, 05, 05]
-2AF0; [19 39, 05, 05]
+2AAE; [19 39, 05, 05]
-2AF1; [19 3B, 05, 05]
+2AAF; [19 3B, 05, 05]
-2AF2; [19 3D, 05, 05]
+2AB0; [19 3D, 05, 05]
-2AF3; [19 3F, 05, 05]
+2AB1; [19 3F, 05, 05]
-2AF4; [19 41, 05, 05]
+2AB2; [19 41, 05, 05]
-2AF5; [19 43, 05, 05]
+2AB3; [19 43, 05, 05]
-2AF6; [19 45, 05, 05]
+2AB4; [19 45, 05, 05]
-2AF7; [19 47, 05, 05]
+2AB5; [19 47, 05, 05]
-2AF8; [19 49, 05, 05]
+2AB6; [19 49, 05, 05]
-2AF9; [19 4B, 05, 05]
+2AB7; [19 4B, 05, 05]
-2AFA; [19 4D, 05, 05]
+2AB8; [19 4D, 05, 05]
-2AFB; [19 4F, 05, 05]
+2AB9; [19 4F, 05, 05]
-2AFC; [19 51, 05, 05]
+2ABA; [19 51, 05, 05]
-2AFD; [19 53, 05, 05]
+2ABB; [19 53, 05, 05]
-2AFE; [19 55, 05, 05]
+2ABC; [19 55, 05, 05]
-2AFF; [19 57, 05, 05]
+2ABD; [19 57, 05, 05]
-2B00; [19 59, 05, 05]
+2ABE; [19 59, 05, 05]
-2B01; [19 5B, 05, 05]
+2ABF; [19 5B, 05, 05]
-2B02; [19 5D, 05, 05]
+2AC0; [19 5D, 05, 05]
-2B03; [19 5F, 05, 05]
+2AC1; [19 5F, 05, 05]
-2B04; [19 61, 05, 05]
+2AC2; [19 61, 05, 05]
-2B05; [19 63, 05, 05]
+2AC3; [19 63, 05, 05]
-2B06; [19 65, 05, 05]
+2AC4; [19 65, 05, 05]
-2B07; [19 67, 05, 05]
+2AC5; [19 67, 05, 05]
-2B08; [19 69, 05, 05]
+2AC6; [19 69, 05, 05]
-2B09; [19 6B, 05, 05]
+2AC7; [19 6B, 05, 05]
-2B0A; [19 6D, 05, 05]
+2AC8; [19 6D, 05, 05]
-2B0B; [19 6F, 05, 05]
+2AC9; [19 6F, 05, 05]
-2B0C; [19 71, 05, 05]
+2ACA; [19 71, 05, 05]
-2B0D; [19 73, 05, 05]
+2ACB; [19 73, 05, 05]
-2B0E; [19 75, 05, 05]
+2ACC; [19 75, 05, 05]
-2B0F; [19 77, 05, 05]
+2ACD; [19 77, 05, 05]
-2B10; [19 79, 05, 05]
+2ACE; [19 79, 05, 05]
-2B11; [19 7B, 05, 05]
+2ACF; [19 7B, 05, 05]
-2B12; [19 7D, 05, 05]
+2AD0; [19 7D, 05, 05]
-2B13; [19 7F, 05, 05]
+2AD1; [19 7F, 05, 05]
-2CE5; [19 81, 05, 05]
+2AD2; [19 81, 05, 05]
-2CE6; [19 83, 05, 05]
+2AD3; [19 83, 05, 05]
-2CE7; [19 85, 05, 05]
+2AD4; [19 85, 05, 05]
-2CE8; [19 87, 05, 05]
+2AD5; [19 87, 05, 05]
-2CE9; [19 89, 05, 05]
+2AD6; [19 89, 05, 05]
-2CEA; [19 8B, 05, 05]
+2AD7; [19 8B, 05, 05]
-2800; [19 8D, 05, 05]
+2AD8; [19 8D, 05, 05]
-2801; [19 8F, 05, 05]
+2AD9; [19 8F, 05, 05]
-2802; [19 91, 05, 05]
+2ADA; [19 91, 05, 05]
-2803; [19 93, 05, 05]
+2ADB; [19 93, 05, 05]
-2804; [19 95, 05, 05]
+2ADD; [19 95, 05, 05]
+2ADC; [19 95, 05, 05][, A5, 05]
-2805; [19 97, 05, 05]
+2ADE; [19 97, 05, 05]
-2806; [19 99, 05, 05]
+2ADF; [19 99, 05, 05]
-2807; [19 9B, 05, 05]
+2AE0; [19 9B, 05, 05]
-2808; [19 9D, 05, 05]
+2AE1; [19 9D, 05, 05]
-2809; [19 9F, 05, 05]
+2AE2; [19 9F, 05, 05]
-280A; [19 A1, 05, 05]
+2AE3; [19 A1, 05, 05]
-280B; [19 A3, 05, 05]
+2AE4; [19 A3, 05, 05]
-280C; [19 A5, 05, 05]
+2AE5; [19 A5, 05, 05]
-280D; [19 A7, 05, 05]
+2AE6; [19 A7, 05, 05]
-280E; [19 A9, 05, 05]
+2AE7; [19 A9, 05, 05]
-280F; [19 AB, 05, 05]
+2AE8; [19 AB, 05, 05]
-2810; [19 AD, 05, 05]
+2AE9; [19 AD, 05, 05]
-2811; [19 AF, 05, 05]
+2AEA; [19 AF, 05, 05]
-2812; [19 B1, 05, 05]
+2AEB; [19 B1, 05, 05]
-2813; [19 B3, 05, 05]
+2AEC; [19 B3, 05, 05]
-2814; [19 B5, 05, 05]
+2AED; [19 B5, 05, 05]
-2815; [19 B7, 05, 05]
+2AEE; [19 B7, 05, 05]
-2816; [19 B9, 05, 05]
+2AEF; [19 B9, 05, 05]
-2817; [19 BB, 05, 05]
+2AF0; [19 BB, 05, 05]
-2818; [19 BD, 05, 05]
+2AF1; [19 BD, 05, 05]
-2819; [19 BF, 05, 05]
+2AF2; [19 BF, 05, 05]
-281A; [19 C1, 05, 05]
+2AF3; [19 C1, 05, 05]
-281B; [19 C3, 05, 05]
+2AF4; [19 C3, 05, 05]
-281C; [19 C5, 05, 05]
+2AF5; [19 C5, 05, 05]
-281D; [19 C7, 05, 05]
+2AF6; [19 C7, 05, 05]
-281E; [19 C9, 05, 05]
+2AF7; [19 C9, 05, 05]
-281F; [19 CB, 05, 05]
+2AF8; [19 CB, 05, 05]
-2820; [19 CD, 05, 05]
+2AF9; [19 CD, 05, 05]
-2821; [19 CF, 05, 05]
+2AFA; [19 CF, 05, 05]
-2822; [19 D1, 05, 05]
+2AFB; [19 D1, 05, 05]
-2823; [19 D3, 05, 05]
+2AFC; [19 D3, 05, 05]
-2824; [19 D5, 05, 05]
+2AFD; [19 D5, 05, 05]
-2825; [19 D7, 05, 05]
+2AFE; [19 D7, 05, 05]
-2826; [19 D9, 05, 05]
+2AFF; [19 D9, 05, 05]
-2827; [19 DB, 05, 05]
+2B00; [19 DB, 05, 05]
-2828; [19 DD, 05, 05]
+2B01; [19 DD, 05, 05]
-2829; [19 DF, 05, 05]
+2B02; [19 DF, 05, 05]
-282A; [19 E1, 05, 05]
+2B03; [19 E1, 05, 05]
-282B; [19 E3, 05, 05]
+2B04; [19 E3, 05, 05]
-282C; [19 E5, 05, 05]
+2B05; [19 E5, 05, 05]
-282D; [19 E7, 05, 05]
+2B06; [19 E7, 05, 05]
-282E; [19 E9, 05, 05]
+2B07; [19 E9, 05, 05]
-282F; [19 EB, 05, 05]
+2B08; [19 EB, 05, 05]
-2830; [19 ED, 05, 05]
+2B09; [19 ED, 05, 05]
-2831; [19 EF, 05, 05]
+2B0A; [19 EF, 05, 05]
-2832; [19 F1, 05, 05]
+2B0B; [19 F1, 05, 05]
-2833; [19 F3, 05, 05]
+2B0C; [19 F3, 05, 05]
-2834; [19 F5, 05, 05]
+2B0D; [19 F5, 05, 05]
-2835; [19 F7, 05, 05]
+2B0E; [19 F7, 05, 05]
-2836; [19 F9, 05, 05]
+2B0F; [19 F9, 05, 05]
-2837; [19 FB, 05, 05]
+2B10; [19 FB, 05, 05]
-2838; [19 FD, 05, 05]
+2B11; [19 FD, 05, 05]
-2839; [1A 05, 05, 05]
+2B12; [1A 05, 05, 05]
-283A; [1A 07, 05, 05]
+2B13; [1A 07, 05, 05]
-283B; [1A 09, 05, 05]
+2B14; [1A 09, 05, 05]
-283C; [1A 0B, 05, 05]
+2B15; [1A 0B, 05, 05]
-283D; [1A 0D, 05, 05]
+2B16; [1A 0D, 05, 05]
-283E; [1A 0F, 05, 05]
+2B17; [1A 0F, 05, 05]
-283F; [1A 11, 05, 05]
+2B18; [1A 11, 05, 05]
-2840; [1A 13, 05, 05]
+2B19; [1A 13, 05, 05]
-2841; [1A 15, 05, 05]
+2B1A; [1A 15, 05, 05]
-2842; [1A 17, 05, 05]
+2B20; [1A 17, 05, 05]
-2843; [1A 19, 05, 05]
+2B21; [1A 19, 05, 05]
-2844; [1A 1B, 05, 05]
+2B22; [1A 1B, 05, 05]
-2845; [1A 1D, 05, 05]
+2B23; [1A 1D, 05, 05]
-2846; [1A 1F, 05, 05]
+2CE5; [1A 1F, 05, 05]
-2847; [1A 21, 05, 05]
+2CE6; [1A 21, 05, 05]
-2848; [1A 23, 05, 05]
+2CE7; [1A 23, 05, 05]
-2849; [1A 25, 05, 05]
+2CE8; [1A 25, 05, 05]
-284A; [1A 27, 05, 05]
+2CE9; [1A 27, 05, 05]
-284B; [1A 29, 05, 05]
+2CEA; [1A 29, 05, 05]
-284C; [1A 2B, 05, 05]
+2800; [1A 2B, 05, 05]
-284D; [1A 2D, 05, 05]
+2801; [1A 2D, 05, 05]
-284E; [1A 2F, 05, 05]
+2802; [1A 2F, 05, 05]
-284F; [1A 31, 05, 05]
+2803; [1A 31, 05, 05]
-2850; [1A 33, 05, 05]
+2804; [1A 33, 05, 05]
-2851; [1A 35, 05, 05]
+2805; [1A 35, 05, 05]
-2852; [1A 37, 05, 05]
+2806; [1A 37, 05, 05]
-2853; [1A 39, 05, 05]
+2807; [1A 39, 05, 05]
-2854; [1A 3B, 05, 05]
+2808; [1A 3B, 05, 05]
-2855; [1A 3D, 05, 05]
+2809; [1A 3D, 05, 05]
-2856; [1A 3F, 05, 05]
+280A; [1A 3F, 05, 05]
-2857; [1A 41, 05, 05]
+280B; [1A 41, 05, 05]
-2858; [1A 43, 05, 05]
+280C; [1A 43, 05, 05]
-2859; [1A 45, 05, 05]
+280D; [1A 45, 05, 05]
-285A; [1A 47, 05, 05]
+280E; [1A 47, 05, 05]
-285B; [1A 49, 05, 05]
+280F; [1A 49, 05, 05]
-285C; [1A 4B, 05, 05]
+2810; [1A 4B, 05, 05]
-285D; [1A 4D, 05, 05]
+2811; [1A 4D, 05, 05]
-285E; [1A 4F, 05, 05]
+2812; [1A 4F, 05, 05]
-285F; [1A 51, 05, 05]
+2813; [1A 51, 05, 05]
-2860; [1A 53, 05, 05]
+2814; [1A 53, 05, 05]
-2861; [1A 55, 05, 05]
+2815; [1A 55, 05, 05]
-2862; [1A 57, 05, 05]
+2816; [1A 57, 05, 05]
-2863; [1A 59, 05, 05]
+2817; [1A 59, 05, 05]
-2864; [1A 5B, 05, 05]
+2818; [1A 5B, 05, 05]
-2865; [1A 5D, 05, 05]
+2819; [1A 5D, 05, 05]
-2866; [1A 5F, 05, 05]
+281A; [1A 5F, 05, 05]
-2867; [1A 61, 05, 05]
+281B; [1A 61, 05, 05]
-2868; [1A 63, 05, 05]
+281C; [1A 63, 05, 05]
-2869; [1A 65, 05, 05]
+281D; [1A 65, 05, 05]
-286A; [1A 67, 05, 05]
+281E; [1A 67, 05, 05]
-286B; [1A 69, 05, 05]
+281F; [1A 69, 05, 05]
-286C; [1A 6B, 05, 05]
+2820; [1A 6B, 05, 05]
-286D; [1A 6D, 05, 05]
+2821; [1A 6D, 05, 05]
-286E; [1A 6F, 05, 05]
+2822; [1A 6F, 05, 05]
-286F; [1A 71, 05, 05]
+2823; [1A 71, 05, 05]
-2870; [1A 73, 05, 05]
+2824; [1A 73, 05, 05]
-2871; [1A 75, 05, 05]
+2825; [1A 75, 05, 05]
-2872; [1A 77, 05, 05]
+2826; [1A 77, 05, 05]
-2873; [1A 79, 05, 05]
+2827; [1A 79, 05, 05]
-2874; [1A 7B, 05, 05]
+2828; [1A 7B, 05, 05]
-2875; [1A 7D, 05, 05]
+2829; [1A 7D, 05, 05]
-2876; [1A 7F, 05, 05]
+282A; [1A 7F, 05, 05]
-2877; [1A 81, 05, 05]
+282B; [1A 81, 05, 05]
-2878; [1A 83, 05, 05]
+282C; [1A 83, 05, 05]
-2879; [1A 85, 05, 05]
+282D; [1A 85, 05, 05]
-287A; [1A 87, 05, 05]
+282E; [1A 87, 05, 05]
-287B; [1A 89, 05, 05]
+282F; [1A 89, 05, 05]
-287C; [1A 8B, 05, 05]
+2830; [1A 8B, 05, 05]
-287D; [1A 8D, 05, 05]
+2831; [1A 8D, 05, 05]
-287E; [1A 8F, 05, 05]
+2832; [1A 8F, 05, 05]
-287F; [1A 91, 05, 05]
+2833; [1A 91, 05, 05]
-2880; [1A 93, 05, 05]
+2834; [1A 93, 05, 05]
-2881; [1A 95, 05, 05]
+2835; [1A 95, 05, 05]
-2882; [1A 97, 05, 05]
+2836; [1A 97, 05, 05]
-2883; [1A 99, 05, 05]
+2837; [1A 99, 05, 05]
-2884; [1A 9B, 05, 05]
+2838; [1A 9B, 05, 05]
-2885; [1A 9D, 05, 05]
+2839; [1A 9D, 05, 05]
-2886; [1A 9F, 05, 05]
+283A; [1A 9F, 05, 05]
-2887; [1A A1, 05, 05]
+283B; [1A A1, 05, 05]
-2888; [1A A3, 05, 05]
+283C; [1A A3, 05, 05]
-2889; [1A A5, 05, 05]
+283D; [1A A5, 05, 05]
-288A; [1A A7, 05, 05]
+283E; [1A A7, 05, 05]
-288B; [1A A9, 05, 05]
+283F; [1A A9, 05, 05]
-288C; [1A AB, 05, 05]
+2840; [1A AB, 05, 05]
-288D; [1A AD, 05, 05]
+2841; [1A AD, 05, 05]
-288E; [1A AF, 05, 05]
+2842; [1A AF, 05, 05]
-288F; [1A B1, 05, 05]
+2843; [1A B1, 05, 05]
-2890; [1A B3, 05, 05]
+2844; [1A B3, 05, 05]
-2891; [1A B5, 05, 05]
+2845; [1A B5, 05, 05]
-2892; [1A B7, 05, 05]
+2846; [1A B7, 05, 05]
-2893; [1A B9, 05, 05]
+2847; [1A B9, 05, 05]
-2894; [1A BB, 05, 05]
+2848; [1A BB, 05, 05]
-2895; [1A BD, 05, 05]
+2849; [1A BD, 05, 05]
-2896; [1A BF, 05, 05]
+284A; [1A BF, 05, 05]
-2897; [1A C1, 05, 05]
+284B; [1A C1, 05, 05]
-2898; [1A C3, 05, 05]
+284C; [1A C3, 05, 05]
-2899; [1A C5, 05, 05]
+284D; [1A C5, 05, 05]
-289A; [1A C7, 05, 05]
+284E; [1A C7, 05, 05]
-289B; [1A C9, 05, 05]
+284F; [1A C9, 05, 05]
-289C; [1A CB, 05, 05]
+2850; [1A CB, 05, 05]
-289D; [1A CD, 05, 05]
+2851; [1A CD, 05, 05]
-289E; [1A CF, 05, 05]
+2852; [1A CF, 05, 05]
-289F; [1A D1, 05, 05]
+2853; [1A D1, 05, 05]
-28A0; [1A D3, 05, 05]
+2854; [1A D3, 05, 05]
-28A1; [1A D5, 05, 05]
+2855; [1A D5, 05, 05]
-28A2; [1A D7, 05, 05]
+2856; [1A D7, 05, 05]
-28A3; [1A D9, 05, 05]
+2857; [1A D9, 05, 05]
-28A4; [1A DB, 05, 05]
+2858; [1A DB, 05, 05]
-28A5; [1A DD, 05, 05]
+2859; [1A DD, 05, 05]
-28A6; [1A DF, 05, 05]
+285A; [1A DF, 05, 05]
-28A7; [1A E1, 05, 05]
+285B; [1A E1, 05, 05]
-28A8; [1A E3, 05, 05]
+285C; [1A E3, 05, 05]
-28A9; [1A E5, 05, 05]
+285D; [1A E5, 05, 05]
-28AA; [1A E7, 05, 05]
+285E; [1A E7, 05, 05]
-28AB; [1A E9, 05, 05]
+285F; [1A E9, 05, 05]
-28AC; [1A EB, 05, 05]
+2860; [1A EB, 05, 05]
-28AD; [1A ED, 05, 05]
+2861; [1A ED, 05, 05]
-28AE; [1A EF, 05, 05]
+2862; [1A EF, 05, 05]
-28AF; [1A F1, 05, 05]
+2863; [1A F1, 05, 05]
-28B0; [1A F3, 05, 05]
+2864; [1A F3, 05, 05]
-28B1; [1A F5, 05, 05]
+2865; [1A F5, 05, 05]
-28B2; [1A F7, 05, 05]
+2866; [1A F7, 05, 05]
-28B3; [1A F9, 05, 05]
+2867; [1A F9, 05, 05]
-28B4; [1A FB, 05, 05]
+2868; [1A FB, 05, 05]
-28B5; [1A FD, 05, 05]
+2869; [1A FD, 05, 05]
-28B6; [1B 05, 05, 05]
+286A; [1B 05, 05, 05]
-28B7; [1B 07, 05, 05]
+286B; [1B 07, 05, 05]
-28B8; [1B 09, 05, 05]
+286C; [1B 09, 05, 05]
-28B9; [1B 0B, 05, 05]
+286D; [1B 0B, 05, 05]
-28BA; [1B 0D, 05, 05]
+286E; [1B 0D, 05, 05]
-28BB; [1B 0F, 05, 05]
+286F; [1B 0F, 05, 05]
-28BC; [1B 11, 05, 05]
+2870; [1B 11, 05, 05]
-28BD; [1B 13, 05, 05]
+2871; [1B 13, 05, 05]
-28BE; [1B 15, 05, 05]
+2872; [1B 15, 05, 05]
-28BF; [1B 17, 05, 05]
+2873; [1B 17, 05, 05]
-28C0; [1B 19, 05, 05]
+2874; [1B 19, 05, 05]
-28C1; [1B 1B, 05, 05]
+2875; [1B 1B, 05, 05]
-28C2; [1B 1D, 05, 05]
+2876; [1B 1D, 05, 05]
-28C3; [1B 1F, 05, 05]
+2877; [1B 1F, 05, 05]
-28C4; [1B 21, 05, 05]
+2878; [1B 21, 05, 05]
-28C5; [1B 23, 05, 05]
+2879; [1B 23, 05, 05]
-28C6; [1B 25, 05, 05]
+287A; [1B 25, 05, 05]
-28C7; [1B 27, 05, 05]
+287B; [1B 27, 05, 05]
-28C8; [1B 29, 05, 05]
+287C; [1B 29, 05, 05]
-28C9; [1B 2B, 05, 05]
+287D; [1B 2B, 05, 05]
-28CA; [1B 2D, 05, 05]
+287E; [1B 2D, 05, 05]
-28CB; [1B 2F, 05, 05]
+287F; [1B 2F, 05, 05]
-28CC; [1B 31, 05, 05]
+2880; [1B 31, 05, 05]
-28CD; [1B 33, 05, 05]
+2881; [1B 33, 05, 05]
-28CE; [1B 35, 05, 05]
+2882; [1B 35, 05, 05]
-28CF; [1B 37, 05, 05]
+2883; [1B 37, 05, 05]
-28D0; [1B 39, 05, 05]
+2884; [1B 39, 05, 05]
-28D1; [1B 3B, 05, 05]
+2885; [1B 3B, 05, 05]
-28D2; [1B 3D, 05, 05]
+2886; [1B 3D, 05, 05]
-28D3; [1B 3F, 05, 05]
+2887; [1B 3F, 05, 05]
-28D4; [1B 41, 05, 05]
+2888; [1B 41, 05, 05]
-28D5; [1B 43, 05, 05]
+2889; [1B 43, 05, 05]
-28D6; [1B 45, 05, 05]
+288A; [1B 45, 05, 05]
-28D7; [1B 47, 05, 05]
+288B; [1B 47, 05, 05]
-28D8; [1B 49, 05, 05]
+288C; [1B 49, 05, 05]
-28D9; [1B 4B, 05, 05]
+288D; [1B 4B, 05, 05]
-28DA; [1B 4D, 05, 05]
+288E; [1B 4D, 05, 05]
-28DB; [1B 4F, 05, 05]
+288F; [1B 4F, 05, 05]
-28DC; [1B 51, 05, 05]
+2890; [1B 51, 05, 05]
-28DD; [1B 53, 05, 05]
+2891; [1B 53, 05, 05]
-28DE; [1B 55, 05, 05]
+2892; [1B 55, 05, 05]
-28DF; [1B 57, 05, 05]
+2893; [1B 57, 05, 05]
-28E0; [1B 59, 05, 05]
+2894; [1B 59, 05, 05]
-28E1; [1B 5B, 05, 05]
+2895; [1B 5B, 05, 05]
-28E2; [1B 5D, 05, 05]
+2896; [1B 5D, 05, 05]
-28E3; [1B 5F, 05, 05]
+2897; [1B 5F, 05, 05]
-28E4; [1B 61, 05, 05]
+2898; [1B 61, 05, 05]
-28E5; [1B 63, 05, 05]
+2899; [1B 63, 05, 05]
-28E6; [1B 65, 05, 05]
+289A; [1B 65, 05, 05]
-28E7; [1B 67, 05, 05]
+289B; [1B 67, 05, 05]
-28E8; [1B 69, 05, 05]
+289C; [1B 69, 05, 05]
-28E9; [1B 6B, 05, 05]
+289D; [1B 6B, 05, 05]
-28EA; [1B 6D, 05, 05]
+289E; [1B 6D, 05, 05]
-28EB; [1B 6F, 05, 05]
+289F; [1B 6F, 05, 05]
-28EC; [1B 71, 05, 05]
+28A0; [1B 71, 05, 05]
-28ED; [1B 73, 05, 05]
+28A1; [1B 73, 05, 05]
-28EE; [1B 75, 05, 05]
+28A2; [1B 75, 05, 05]
-28EF; [1B 77, 05, 05]
+28A3; [1B 77, 05, 05]
-28F0; [1B 79, 05, 05]
+28A4; [1B 79, 05, 05]
-28F1; [1B 7B, 05, 05]
+28A5; [1B 7B, 05, 05]
-28F2; [1B 7D, 05, 05]
+28A6; [1B 7D, 05, 05]
-28F3; [1B 7F, 05, 05]
+28A7; [1B 7F, 05, 05]
-28F4; [1B 81, 05, 05]
+28A8; [1B 81, 05, 05]
-28F5; [1B 83, 05, 05]
+28A9; [1B 83, 05, 05]
-28F6; [1B 85, 05, 05]
+28AA; [1B 85, 05, 05]
-28F7; [1B 87, 05, 05]
+28AB; [1B 87, 05, 05]
-28F8; [1B 89, 05, 05]
+28AC; [1B 89, 05, 05]
-28F9; [1B 8B, 05, 05]
+28AD; [1B 8B, 05, 05]
-28FA; [1B 8D, 05, 05]
+28AE; [1B 8D, 05, 05]
-28FB; [1B 8F, 05, 05]
+28AF; [1B 8F, 05, 05]
-28FC; [1B 91, 05, 05]
+28B0; [1B 91, 05, 05]
-28FD; [1B 93, 05, 05]
+28B1; [1B 93, 05, 05]
-28FE; [1B 95, 05, 05]
+28B2; [1B 95, 05, 05]
-28FF; [1B 97, 05, 05]
+28B3; [1B 97, 05, 05]
-268A; [1B 99, 05, 05]
+28B4; [1B 99, 05, 05]
-268B; [1B 9B, 05, 05]
+28B5; [1B 9B, 05, 05]
-268C; [1B 9D, 05, 05]
+28B6; [1B 9D, 05, 05]
-268D; [1B 9F, 05, 05]
+28B7; [1B 9F, 05, 05]
-268E; [1B A1, 05, 05]
+28B8; [1B A1, 05, 05]
-268F; [1B A3, 05, 05]
+28B9; [1B A3, 05, 05]
-2630; [1B A5, 05, 05]
+28BA; [1B A5, 05, 05]
-2631; [1B A7, 05, 05]
+28BB; [1B A7, 05, 05]
-2632; [1B A9, 05, 05]
+28BC; [1B A9, 05, 05]
-2633; [1B AB, 05, 05]
+28BD; [1B AB, 05, 05]
-2634; [1B AD, 05, 05]
+28BE; [1B AD, 05, 05]
-2635; [1B AF, 05, 05]
+28BF; [1B AF, 05, 05]
-2636; [1B B1, 05, 05]
+28C0; [1B B1, 05, 05]
-2637; [1B B3, 05, 05]
+28C1; [1B B3, 05, 05]
-4DC0; [1B B5, 05, 05]
+28C2; [1B B5, 05, 05]
-4DC1; [1B B7, 05, 05]
+28C3; [1B B7, 05, 05]
-4DC2; [1B B9, 05, 05]
+28C4; [1B B9, 05, 05]
-4DC3; [1B BB, 05, 05]
+28C5; [1B BB, 05, 05]
-4DC4; [1B BD, 05, 05]
+28C6; [1B BD, 05, 05]
-4DC5; [1B BF, 05, 05]
+28C7; [1B BF, 05, 05]
-4DC6; [1B C1, 05, 05]
+28C8; [1B C1, 05, 05]
-4DC7; [1B C3, 05, 05]
+28C9; [1B C3, 05, 05]
-4DC8; [1B C5, 05, 05]
+28CA; [1B C5, 05, 05]
-4DC9; [1B C7, 05, 05]
+28CB; [1B C7, 05, 05]
-4DCA; [1B C9, 05, 05]
+28CC; [1B C9, 05, 05]
-4DCB; [1B CB, 05, 05]
+28CD; [1B CB, 05, 05]
-4DCC; [1B CD, 05, 05]
+28CE; [1B CD, 05, 05]
-4DCD; [1B CF, 05, 05]
+28CF; [1B CF, 05, 05]
-4DCE; [1B D1, 05, 05]
+28D0; [1B D1, 05, 05]
-4DCF; [1B D3, 05, 05]
+28D1; [1B D3, 05, 05]
-4DD0; [1B D5, 05, 05]
+28D2; [1B D5, 05, 05]
-4DD1; [1B D7, 05, 05]
+28D3; [1B D7, 05, 05]
-4DD2; [1B D9, 05, 05]
+28D4; [1B D9, 05, 05]
-4DD3; [1B DB, 05, 05]
+28D5; [1B DB, 05, 05]
-4DD4; [1B DD, 05, 05]
+28D6; [1B DD, 05, 05]
-4DD5; [1B DF, 05, 05]
+28D7; [1B DF, 05, 05]
-4DD6; [1B E1, 05, 05]
+28D8; [1B E1, 05, 05]
-4DD7; [1B E3, 05, 05]
+28D9; [1B E3, 05, 05]
-4DD8; [1B E5, 05, 05]
+28DA; [1B E5, 05, 05]
-4DD9; [1B E7, 05, 05]
+28DB; [1B E7, 05, 05]
-4DDA; [1B E9, 05, 05]
+28DC; [1B E9, 05, 05]
-4DDB; [1B EB, 05, 05]
+28DD; [1B EB, 05, 05]
-4DDC; [1B ED, 05, 05]
+28DE; [1B ED, 05, 05]
-4DDD; [1B EF, 05, 05]
+28DF; [1B EF, 05, 05]
-4DDE; [1B F1, 05, 05]
+28E0; [1B F1, 05, 05]
-4DDF; [1B F3, 05, 05]
+28E1; [1B F3, 05, 05]
-4DE0; [1B F5, 05, 05]
+28E2; [1B F5, 05, 05]
-4DE1; [1B F7, 05, 05]
+28E3; [1B F7, 05, 05]
-4DE2; [1B F9, 05, 05]
+28E4; [1B F9, 05, 05]
-4DE3; [1B FB, 05, 05]
+28E5; [1B FB, 05, 05]
-4DE4; [1B FD, 05, 05]
+28E6; [1B FD, 05, 05]
-4DE5; [1C 05, 05, 05]
+28E7; [1C 05, 05, 05]
-4DE6; [1C 07, 05, 05]
+28E8; [1C 07, 05, 05]
-4DE7; [1C 09, 05, 05]
+28E9; [1C 09, 05, 05]
-4DE8; [1C 0B, 05, 05]
+28EA; [1C 0B, 05, 05]
-4DE9; [1C 0D, 05, 05]
+28EB; [1C 0D, 05, 05]
-4DEA; [1C 0F, 05, 05]
+28EC; [1C 0F, 05, 05]
-4DEB; [1C 11, 05, 05]
+28ED; [1C 11, 05, 05]
-4DEC; [1C 13, 05, 05]
+28EE; [1C 13, 05, 05]
-4DED; [1C 15, 05, 05]
+28EF; [1C 15, 05, 05]
-4DEE; [1C 17, 05, 05]
+28F0; [1C 17, 05, 05]
-4DEF; [1C 19, 05, 05]
+28F1; [1C 19, 05, 05]
-4DF0; [1C 1B, 05, 05]
+28F2; [1C 1B, 05, 05]
-4DF1; [1C 1D, 05, 05]
+28F3; [1C 1D, 05, 05]
-4DF2; [1C 1F, 05, 05]
+28F4; [1C 1F, 05, 05]
-4DF3; [1C 21, 05, 05]
+28F5; [1C 21, 05, 05]
-4DF4; [1C 23, 05, 05]
+28F6; [1C 23, 05, 05]
-4DF5; [1C 25, 05, 05]
+28F7; [1C 25, 05, 05]
-4DF6; [1C 27, 05, 05]
+28F8; [1C 27, 05, 05]
-4DF7; [1C 29, 05, 05]
+28F9; [1C 29, 05, 05]
-4DF8; [1C 2B, 05, 05]
+28FA; [1C 2B, 05, 05]
-4DF9; [1C 2D, 05, 05]
+28FB; [1C 2D, 05, 05]
-4DFA; [1C 2F, 05, 05]
+28FC; [1C 2F, 05, 05]
-4DFB; [1C 31, 05, 05]
+28FD; [1C 31, 05, 05]
-4DFC; [1C 33, 05, 05]
+28FE; [1C 33, 05, 05]
-4DFD; [1C 35, 05, 05]
+28FF; [1C 35, 05, 05]
-4DFE; [1C 37, 05, 05]
+268A; [1C 37, 05, 05]
-4DFF; [1C 39, 05, 05]
+268B; [1C 39, 05, 05]
-D834 DF00; [1C 3B, 05, 05]
+268C; [1C 3B, 05, 05]
-D834 DF01; [1C 3D, 05, 05]
+268D; [1C 3D, 05, 05]
-D834 DF02; [1C 3F, 05, 05]
+268E; [1C 3F, 05, 05]
-D834 DF03; [1C 41, 05, 05]
+268F; [1C 41, 05, 05]
-D834 DF04; [1C 43, 05, 05]
+2630; [1C 43, 05, 05]
-D834 DF05; [1C 45, 05, 05]
+2631; [1C 45, 05, 05]
-D834 DF06; [1C 47, 05, 05]
+2632; [1C 47, 05, 05]
-D834 DF07; [1C 49, 05, 05]
+2633; [1C 49, 05, 05]
-D834 DF08; [1C 4B, 05, 05]
+2634; [1C 4B, 05, 05]
-D834 DF09; [1C 4D, 05, 05]
+2635; [1C 4D, 05, 05]
-D834 DF0A; [1C 4F, 05, 05]
+2636; [1C 4F, 05, 05]
-D834 DF0B; [1C 51, 05, 05]
+2637; [1C 51, 05, 05]
-D834 DF0C; [1C 53, 05, 05]
+4DC0; [1C 53, 05, 05]
-D834 DF0D; [1C 55, 05, 05]
+4DC1; [1C 55, 05, 05]
-D834 DF0E; [1C 57, 05, 05]
+4DC2; [1C 57, 05, 05]
-D834 DF0F; [1C 59, 05, 05]
+4DC3; [1C 59, 05, 05]
-D834 DF10; [1C 5B, 05, 05]
+4DC4; [1C 5B, 05, 05]
-D834 DF11; [1C 5D, 05, 05]
+4DC5; [1C 5D, 05, 05]
-D834 DF12; [1C 5F, 05, 05]
+4DC6; [1C 5F, 05, 05]
-D834 DF13; [1C 61, 05, 05]
+4DC7; [1C 61, 05, 05]
-D834 DF14; [1C 63, 05, 05]
+4DC8; [1C 63, 05, 05]
-D834 DF15; [1C 65, 05, 05]
+4DC9; [1C 65, 05, 05]
-D834 DF16; [1C 67, 05, 05]
+4DCA; [1C 67, 05, 05]
-D834 DF17; [1C 69, 05, 05]
+4DCB; [1C 69, 05, 05]
-D834 DF18; [1C 6B, 05, 05]
+4DCC; [1C 6B, 05, 05]
-D834 DF19; [1C 6D, 05, 05]
+4DCD; [1C 6D, 05, 05]
-D834 DF1A; [1C 6F, 05, 05]
+4DCE; [1C 6F, 05, 05]
-D834 DF1B; [1C 71, 05, 05]
+4DCF; [1C 71, 05, 05]
-D834 DF1C; [1C 73, 05, 05]
+4DD0; [1C 73, 05, 05]
-D834 DF1D; [1C 75, 05, 05]
+4DD1; [1C 75, 05, 05]
-D834 DF1E; [1C 77, 05, 05]
+4DD2; [1C 77, 05, 05]
-D834 DF1F; [1C 79, 05, 05]
+4DD3; [1C 79, 05, 05]
-D834 DF20; [1C 7B, 05, 05]
+4DD4; [1C 7B, 05, 05]
-D834 DF21; [1C 7D, 05, 05]
+4DD5; [1C 7D, 05, 05]
-D834 DF22; [1C 7F, 05, 05]
+4DD6; [1C 7F, 05, 05]
-D834 DF23; [1C 81, 05, 05]
+4DD7; [1C 81, 05, 05]
-D834 DF24; [1C 83, 05, 05]
+4DD8; [1C 83, 05, 05]
-D834 DF25; [1C 85, 05, 05]
+4DD9; [1C 85, 05, 05]
-D834 DF26; [1C 87, 05, 05]
+4DDA; [1C 87, 05, 05]
-D834 DF27; [1C 89, 05, 05]
+4DDB; [1C 89, 05, 05]
-D834 DF28; [1C 8B, 05, 05]
+4DDC; [1C 8B, 05, 05]
-D834 DF29; [1C 8D, 05, 05]
+4DDD; [1C 8D, 05, 05]
-D834 DF2A; [1C 8F, 05, 05]
+4DDE; [1C 8F, 05, 05]
-D834 DF2B; [1C 91, 05, 05]
+4DDF; [1C 91, 05, 05]
-D834 DF2C; [1C 93, 05, 05]
+4DE0; [1C 93, 05, 05]
-D834 DF2D; [1C 95, 05, 05]
+4DE1; [1C 95, 05, 05]
-D834 DF2E; [1C 97, 05, 05]
+4DE2; [1C 97, 05, 05]
-D834 DF2F; [1C 99, 05, 05]
+4DE3; [1C 99, 05, 05]
-D834 DF30; [1C 9B, 05, 05]
+4DE4; [1C 9B, 05, 05]
-D834 DF31; [1C 9D, 05, 05]
+4DE5; [1C 9D, 05, 05]
-D834 DF32; [1C 9F, 05, 05]
+4DE6; [1C 9F, 05, 05]
-D834 DF33; [1C A1, 05, 05]
+4DE7; [1C A1, 05, 05]
-D834 DF34; [1C A3, 05, 05]
+4DE8; [1C A3, 05, 05]
-D834 DF35; [1C A5, 05, 05]
+4DE9; [1C A5, 05, 05]
-D834 DF36; [1C A7, 05, 05]
+4DEA; [1C A7, 05, 05]
-D834 DF37; [1C A9, 05, 05]
+4DEB; [1C A9, 05, 05]
-D834 DF38; [1C AB, 05, 05]
+4DEC; [1C AB, 05, 05]
-D834 DF39; [1C AD, 05, 05]
+4DED; [1C AD, 05, 05]
-D834 DF3A; [1C AF, 05, 05]
+4DEE; [1C AF, 05, 05]
-D834 DF3B; [1C B1, 05, 05]
+4DEF; [1C B1, 05, 05]
-D834 DF3C; [1C B3, 05, 05]
+4DF0; [1C B3, 05, 05]
-D834 DF3D; [1C B5, 05, 05]
+4DF1; [1C B5, 05, 05]
-D834 DF3E; [1C B7, 05, 05]
+4DF2; [1C B7, 05, 05]
-D834 DF3F; [1C B9, 05, 05]
+4DF3; [1C B9, 05, 05]
-D834 DF40; [1C BB, 05, 05]
+4DF4; [1C BB, 05, 05]
-D834 DF41; [1C BD, 05, 05]
+4DF5; [1C BD, 05, 05]
-D834 DF42; [1C BF, 05, 05]
+4DF6; [1C BF, 05, 05]
-D834 DF43; [1C C1, 05, 05]
+4DF7; [1C C1, 05, 05]
-D834 DF44; [1C C3, 05, 05]
+4DF8; [1C C3, 05, 05]
-D834 DF45; [1C C5, 05, 05]
+4DF9; [1C C5, 05, 05]
-D834 DF46; [1C C7, 05, 05]
+4DFA; [1C C7, 05, 05]
-D834 DF47; [1C C9, 05, 05]
+4DFB; [1C C9, 05, 05]
-D834 DF48; [1C CB, 05, 05]
+4DFC; [1C CB, 05, 05]
-D834 DF49; [1C CD, 05, 05]
+4DFD; [1C CD, 05, 05]
-D834 DF4A; [1C CF, 05, 05]
+4DFE; [1C CF, 05, 05]
-D834 DF4B; [1C D1, 05, 05]
+4DFF; [1C D1, 05, 05]
-D834 DF4C; [1C D3, 05, 05]
+D834 DF00; [1C D3, 05, 05]
-D834 DF4D; [1C D5, 05, 05]
+D834 DF01; [1C D5, 05, 05]
-D834 DF4E; [1C D7, 05, 05]
+D834 DF02; [1C D7, 05, 05]
-D834 DF4F; [1C D9, 05, 05]
+D834 DF03; [1C D9, 05, 05]
-D834 DF50; [1C DB, 05, 05]
+D834 DF04; [1C DB, 05, 05]
-D834 DF51; [1C DD, 05, 05]
+D834 DF05; [1C DD, 05, 05]
-D834 DF52; [1C DF, 05, 05]
+D834 DF06; [1C DF, 05, 05]
-D834 DF53; [1C E1, 05, 05]
+D834 DF07; [1C E1, 05, 05]
-D834 DF54; [1C E3, 05, 05]
+D834 DF08; [1C E3, 05, 05]
-D834 DF55; [1C E5, 05, 05]
+D834 DF09; [1C E5, 05, 05]
-D834 DF56; [1C E7, 05, 05]
+D834 DF0A; [1C E7, 05, 05]
-A490; [1C E9, 05, 05]
+D834 DF0B; [1C E9, 05, 05]
-A491; [1C EB, 05, 05]
+D834 DF0C; [1C EB, 05, 05]
-A492; [1C ED, 05, 05]
+D834 DF0D; [1C ED, 05, 05]
-A493; [1C EF, 05, 05]
+D834 DF0E; [1C EF, 05, 05]
-A494; [1C F1, 05, 05]
+D834 DF0F; [1C F1, 05, 05]
-A495; [1C F3, 05, 05]
+D834 DF10; [1C F3, 05, 05]
-A496; [1C F5, 05, 05]
+D834 DF11; [1C F5, 05, 05]
-A497; [1C F7, 05, 05]
+D834 DF12; [1C F7, 05, 05]
-A498; [1C F9, 05, 05]
+D834 DF13; [1C F9, 05, 05]
-A499; [1C FB, 05, 05]
+D834 DF14; [1C FB, 05, 05]
-A49A; [1C FD, 05, 05]
+D834 DF15; [1C FD, 05, 05]
-A49B; [1D 05, 05, 05]
+D834 DF16; [1D 05, 05, 05]
-A49C; [1D 07, 05, 05]
+D834 DF17; [1D 07, 05, 05]
-A49D; [1D 09, 05, 05]
+D834 DF18; [1D 09, 05, 05]
-A49E; [1D 0B, 05, 05]
+D834 DF19; [1D 0B, 05, 05]
-A49F; [1D 0D, 05, 05]
+D834 DF1A; [1D 0D, 05, 05]
-A4A0; [1D 0F, 05, 05]
+D834 DF1B; [1D 0F, 05, 05]
-A4A1; [1D 11, 05, 05]
+D834 DF1C; [1D 11, 05, 05]
-A4A2; [1D 13, 05, 05]
+D834 DF1D; [1D 13, 05, 05]
-A4A3; [1D 15, 05, 05]
+D834 DF1E; [1D 15, 05, 05]
-A4A4; [1D 17, 05, 05]
+D834 DF1F; [1D 17, 05, 05]
-A4A5; [1D 19, 05, 05]
+D834 DF20; [1D 19, 05, 05]
-A4A6; [1D 1B, 05, 05]
+D834 DF21; [1D 1B, 05, 05]
-A4A7; [1D 1D, 05, 05]
+D834 DF22; [1D 1D, 05, 05]
-A4A8; [1D 1F, 05, 05]
+D834 DF23; [1D 1F, 05, 05]
-A4A9; [1D 21, 05, 05]
+D834 DF24; [1D 21, 05, 05]
-A4AA; [1D 23, 05, 05]
+D834 DF25; [1D 23, 05, 05]
-A4AB; [1D 25, 05, 05]
+D834 DF26; [1D 25, 05, 05]
-A4AC; [1D 27, 05, 05]
+D834 DF27; [1D 27, 05, 05]
-A4AD; [1D 29, 05, 05]
+D834 DF28; [1D 29, 05, 05]
-A4AE; [1D 2B, 05, 05]
+D834 DF29; [1D 2B, 05, 05]
-A4AF; [1D 2D, 05, 05]
+D834 DF2A; [1D 2D, 05, 05]
-A4B0; [1D 2F, 05, 05]
+D834 DF2B; [1D 2F, 05, 05]
-A4B1; [1D 31, 05, 05]
+D834 DF2C; [1D 31, 05, 05]
-A4B2; [1D 33, 05, 05]
+D834 DF2D; [1D 33, 05, 05]
-A4B3; [1D 35, 05, 05]
+D834 DF2E; [1D 35, 05, 05]
-A4B4; [1D 37, 05, 05]
+D834 DF2F; [1D 37, 05, 05]
-A4B5; [1D 39, 05, 05]
+D834 DF30; [1D 39, 05, 05]
-A4B6; [1D 3B, 05, 05]
+D834 DF31; [1D 3B, 05, 05]
-A4B7; [1D 3D, 05, 05]
+D834 DF32; [1D 3D, 05, 05]
-A4B8; [1D 3F, 05, 05]
+D834 DF33; [1D 3F, 05, 05]
-A4B9; [1D 41, 05, 05]
+D834 DF34; [1D 41, 05, 05]
-A4BA; [1D 43, 05, 05]
+D834 DF35; [1D 43, 05, 05]
-A4BB; [1D 45, 05, 05]
+D834 DF36; [1D 45, 05, 05]
-A4BC; [1D 47, 05, 05]
+D834 DF37; [1D 47, 05, 05]
-A4BD; [1D 49, 05, 05]
+D834 DF38; [1D 49, 05, 05]
-A4BE; [1D 4B, 05, 05]
+D834 DF39; [1D 4B, 05, 05]
-A4BF; [1D 4D, 05, 05]
+D834 DF3A; [1D 4D, 05, 05]
-A4C0; [1D 4F, 05, 05]
+D834 DF3B; [1D 4F, 05, 05]
-A4C1; [1D 51, 05, 05]
+D834 DF3C; [1D 51, 05, 05]
-A4C2; [1D 53, 05, 05]
+D834 DF3D; [1D 53, 05, 05]
-A4C3; [1D 55, 05, 05]
+D834 DF3E; [1D 55, 05, 05]
-A4C4; [1D 57, 05, 05]
+D834 DF3F; [1D 57, 05, 05]
-A4C5; [1D 59, 05, 05]
+D834 DF40; [1D 59, 05, 05]
-A4C6; [1D 5B, 05, 05]
+D834 DF41; [1D 5B, 05, 05]
-D800 DD37; [1D 5D, 05, 05]
+D834 DF42; [1D 5D, 05, 05]
-D800 DD38; [1D 5F, 05, 05]
+D834 DF43; [1D 5F, 05, 05]
-D800 DD39; [1D 61, 05, 05]
+D834 DF44; [1D 61, 05, 05]
-D800 DD3A; [1D 63, 05, 05]
+D834 DF45; [1D 63, 05, 05]
-D800 DD3B; [1D 65, 05, 05]
+D834 DF46; [1D 65, 05, 05]
-D800 DD3C; [1D 67, 05, 05]
+D834 DF47; [1D 67, 05, 05]
-D800 DD3D; [1D 69, 05, 05]
+D834 DF48; [1D 69, 05, 05]
-D800 DD3E; [1D 6B, 05, 05]
+D834 DF49; [1D 6B, 05, 05]
-D800 DD3F; [1D 6D, 05, 05]
+D834 DF4A; [1D 6D, 05, 05]
-D800 DD79; [1D 6F, 05, 05]
+D834 DF4B; [1D 6F, 05, 05]
-D800 DD7A; [1D 71, 05, 05]
+D834 DF4C; [1D 71, 05, 05]
-D800 DD7B; [1D 73, 05, 05]
+D834 DF4D; [1D 73, 05, 05]
-D800 DD7C; [1D 75, 05, 05]
+D834 DF4E; [1D 75, 05, 05]
-D800 DD7D; [1D 77, 05, 05]
+D834 DF4F; [1D 77, 05, 05]
-D800 DD7E; [1D 79, 05, 05]
+D834 DF50; [1D 79, 05, 05]
-D800 DD7F; [1D 7B, 05, 05]
+D834 DF51; [1D 7B, 05, 05]
-D800 DD80; [1D 7D, 05, 05]
+D834 DF52; [1D 7D, 05, 05]
-D800 DD81; [1D 7F, 05, 05]
+D834 DF53; [1D 7F, 05, 05]
-D800 DD82; [1D 81, 05, 05]
+D834 DF54; [1D 81, 05, 05]
-D800 DD83; [1D 83, 05, 05]
+D834 DF55; [1D 83, 05, 05]
-D800 DD84; [1D 85, 05, 05]
+D834 DF56; [1D 85, 05, 05]
-D800 DD85; [1D 87, 05, 05]
+A490; [1D 87, 05, 05]
-D800 DD86; [1D 89, 05, 05]
+A491; [1D 89, 05, 05]
-D800 DD87; [1D 8B, 05, 05]
+A492; [1D 8B, 05, 05]
-D800 DD88; [1D 8D, 05, 05]
+A493; [1D 8D, 05, 05]
-D800 DD89; [1D 8F, 05, 05]
+A494; [1D 8F, 05, 05]
-D834 DC00; [1D 91, 05, 05]
+A495; [1D 91, 05, 05]
-D834 DC01; [1D 93, 05, 05]
+A496; [1D 93, 05, 05]
-D834 DC02; [1D 95, 05, 05]
+A497; [1D 95, 05, 05]
-D834 DC03; [1D 97, 05, 05]
+A498; [1D 97, 05, 05]
-D834 DC04; [1D 99, 05, 05]
+A499; [1D 99, 05, 05]
-D834 DC05; [1D 9B, 05, 05]
+A49A; [1D 9B, 05, 05]
-D834 DC06; [1D 9D, 05, 05]
+A49B; [1D 9D, 05, 05]
-D834 DC07; [1D 9F, 05, 05]
+A49C; [1D 9F, 05, 05]
-D834 DC08; [1D A1, 05, 05]
+A49D; [1D A1, 05, 05]
-D834 DC09; [1D A3, 05, 05]
+A49E; [1D A3, 05, 05]
-D834 DC0A; [1D A5, 05, 05]
+A49F; [1D A5, 05, 05]
-D834 DC0B; [1D A7, 05, 05]
+A4A0; [1D A7, 05, 05]
-D834 DC0C; [1D A9, 05, 05]
+A4A1; [1D A9, 05, 05]
-D834 DC0D; [1D AB, 05, 05]
+A4A2; [1D AB, 05, 05]
-D834 DC0E; [1D AD, 05, 05]
+A4A3; [1D AD, 05, 05]
-D834 DC0F; [1D AF, 05, 05]
+A4A4; [1D AF, 05, 05]
-D834 DC10; [1D B1, 05, 05]
+A4A5; [1D B1, 05, 05]
-D834 DC11; [1D B3, 05, 05]
+A4A6; [1D B3, 05, 05]
-D834 DC12; [1D B5, 05, 05]
+A4A7; [1D B5, 05, 05]
-D834 DC13; [1D B7, 05, 05]
+A4A8; [1D B7, 05, 05]
-D834 DC14; [1D B9, 05, 05]
+A4A9; [1D B9, 05, 05]
-D834 DC15; [1D BB, 05, 05]
+A4AA; [1D BB, 05, 05]
-D834 DC16; [1D BD, 05, 05]
+A4AB; [1D BD, 05, 05]
-D834 DC17; [1D BF, 05, 05]
+A4AC; [1D BF, 05, 05]
-D834 DC18; [1D C1, 05, 05]
+A4AD; [1D C1, 05, 05]
-D834 DC19; [1D C3, 05, 05]
+A4AE; [1D C3, 05, 05]
-D834 DC1A; [1D C5, 05, 05]
+A4AF; [1D C5, 05, 05]
-D834 DC1B; [1D C7, 05, 05]
+A4B0; [1D C7, 05, 05]
-D834 DC1C; [1D C9, 05, 05]
+A4B1; [1D C9, 05, 05]
-D834 DC1D; [1D CB, 05, 05]
+A4B2; [1D CB, 05, 05]
-D834 DC1E; [1D CD, 05, 05]
+A4B3; [1D CD, 05, 05]
-D834 DC1F; [1D CF, 05, 05]
+A4B4; [1D CF, 05, 05]
-D834 DC20; [1D D1, 05, 05]
+A4B5; [1D D1, 05, 05]
-D834 DC21; [1D D3, 05, 05]
+A4B6; [1D D3, 05, 05]
-D834 DC22; [1D D5, 05, 05]
+A4B7; [1D D5, 05, 05]
-D834 DC23; [1D D7, 05, 05]
+A4B8; [1D D7, 05, 05]
-D834 DC24; [1D D9, 05, 05]
+A4B9; [1D D9, 05, 05]
-D834 DC25; [1D DB, 05, 05]
+A4BA; [1D DB, 05, 05]
-D834 DC26; [1D DD, 05, 05]
+A4BB; [1D DD, 05, 05]
-D834 DC27; [1D DF, 05, 05]
+A4BC; [1D DF, 05, 05]
-D834 DC28; [1D E1, 05, 05]
+A4BD; [1D E1, 05, 05]
-D834 DC29; [1D E3, 05, 05]
+A4BE; [1D E3, 05, 05]
-D834 DC2A; [1D E5, 05, 05]
+A4BF; [1D E5, 05, 05]
-D834 DC2B; [1D E7, 05, 05]
+A4C0; [1D E7, 05, 05]
-D834 DC2C; [1D E9, 05, 05]
+A4C1; [1D E9, 05, 05]
-D834 DC2D; [1D EB, 05, 05]
+A4C2; [1D EB, 05, 05]
-D834 DC2E; [1D ED, 05, 05]
+A4C3; [1D ED, 05, 05]
-D834 DC2F; [1D EF, 05, 05]
+A4C4; [1D EF, 05, 05]
-D834 DC30; [1D F1, 05, 05]
+A4C5; [1D F1, 05, 05]
-D834 DC31; [1D F3, 05, 05]
+A4C6; [1D F3, 05, 05]
-D834 DC32; [1D F5, 05, 05]
+D800 DD37; [1D F5, 05, 05]
-D834 DC33; [1D F7, 05, 05]
+D800 DD38; [1D F7, 05, 05]
-D834 DC34; [1D F9, 05, 05]
+D800 DD39; [1D F9, 05, 05]
-D834 DC35; [1D FB, 05, 05]
+D800 DD3A; [1D FB, 05, 05]
-D834 DC36; [1D FD, 05, 05]
+D800 DD3B; [1D FD, 05, 05]
-D834 DC37; [1E 05, 05, 05]
+D800 DD3C; [1E 05, 05, 05]
-D834 DC38; [1E 07, 05, 05]
+D800 DD3D; [1E 07, 05, 05]
-D834 DC39; [1E 09, 05, 05]
+D800 DD3E; [1E 09, 05, 05]
-D834 DC3A; [1E 0B, 05, 05]
+D800 DD3F; [1E 0B, 05, 05]
-D834 DC3B; [1E 0D, 05, 05]
+D800 DD79; [1E 0D, 05, 05]
-D834 DC3C; [1E 0F, 05, 05]
+D800 DD7A; [1E 0F, 05, 05]
-D834 DC3D; [1E 11, 05, 05]
+D800 DD7B; [1E 11, 05, 05]
-D834 DC3E; [1E 13, 05, 05]
+D800 DD7C; [1E 13, 05, 05]
-D834 DC3F; [1E 15, 05, 05]
+D800 DD7D; [1E 15, 05, 05]
-D834 DC40; [1E 17, 05, 05]
+D800 DD7E; [1E 17, 05, 05]
-D834 DC41; [1E 19, 05, 05]
+D800 DD7F; [1E 19, 05, 05]
-D834 DC42; [1E 1B, 05, 05]
+D800 DD80; [1E 1B, 05, 05]
-D834 DC43; [1E 1D, 05, 05]
+D800 DD81; [1E 1D, 05, 05]
-D834 DC44; [1E 1F, 05, 05]
+D800 DD82; [1E 1F, 05, 05]
-D834 DC45; [1E 21, 05, 05]
+D800 DD83; [1E 21, 05, 05]
-D834 DC46; [1E 23, 05, 05]
+D800 DD84; [1E 23, 05, 05]
-D834 DC47; [1E 25, 05, 05]
+D800 DD85; [1E 25, 05, 05]
-D834 DC48; [1E 27, 05, 05]
+D800 DD86; [1E 27, 05, 05]
-D834 DC49; [1E 29, 05, 05]
+D800 DD87; [1E 29, 05, 05]
-D834 DC4A; [1E 2B, 05, 05]
+D800 DD88; [1E 2B, 05, 05]
-D834 DC4B; [1E 2D, 05, 05]
+D800 DD89; [1E 2D, 05, 05]
-D834 DC4C; [1E 2F, 05, 05]
+D834 DC00; [1E 2F, 05, 05]
-D834 DC4D; [1E 31, 05, 05]
+D834 DC01; [1E 31, 05, 05]
-D834 DC4E; [1E 33, 05, 05]
+D834 DC02; [1E 33, 05, 05]
-D834 DC4F; [1E 35, 05, 05]
+D834 DC03; [1E 35, 05, 05]
-D834 DC50; [1E 37, 05, 05]
+D834 DC04; [1E 37, 05, 05]
-D834 DC51; [1E 39, 05, 05]
+D834 DC05; [1E 39, 05, 05]
-D834 DC52; [1E 3B, 05, 05]
+D834 DC06; [1E 3B, 05, 05]
-D834 DC53; [1E 3D, 05, 05]
+D834 DC07; [1E 3D, 05, 05]
-D834 DC54; [1E 3F, 05, 05]
+D834 DC08; [1E 3F, 05, 05]
-D834 DC55; [1E 41, 05, 05]
+D834 DC09; [1E 41, 05, 05]
-D834 DC56; [1E 43, 05, 05]
+D834 DC0A; [1E 43, 05, 05]
-D834 DC57; [1E 45, 05, 05]
+D834 DC0B; [1E 45, 05, 05]
-D834 DC58; [1E 47, 05, 05]
+D834 DC0C; [1E 47, 05, 05]
-D834 DC59; [1E 49, 05, 05]
+D834 DC0D; [1E 49, 05, 05]
-D834 DC5A; [1E 4B, 05, 05]
+D834 DC0E; [1E 4B, 05, 05]
-D834 DC5B; [1E 4D, 05, 05]
+D834 DC0F; [1E 4D, 05, 05]
-D834 DC5C; [1E 4F, 05, 05]
+D834 DC10; [1E 4F, 05, 05]
-D834 DC5D; [1E 51, 05, 05]
+D834 DC11; [1E 51, 05, 05]
-D834 DC5E; [1E 53, 05, 05]
+D834 DC12; [1E 53, 05, 05]
-D834 DC5F; [1E 55, 05, 05]
+D834 DC13; [1E 55, 05, 05]
-D834 DC60; [1E 57, 05, 05]
+D834 DC14; [1E 57, 05, 05]
-D834 DC61; [1E 59, 05, 05]
+D834 DC15; [1E 59, 05, 05]
-D834 DC62; [1E 5B, 05, 05]
+D834 DC16; [1E 5B, 05, 05]
-D834 DC63; [1E 5D, 05, 05]
+D834 DC17; [1E 5D, 05, 05]
-D834 DC64; [1E 5F, 05, 05]
+D834 DC18; [1E 5F, 05, 05]
-D834 DC65; [1E 61, 05, 05]
+D834 DC19; [1E 61, 05, 05]
-D834 DC66; [1E 63, 05, 05]
+D834 DC1A; [1E 63, 05, 05]
-D834 DC67; [1E 65, 05, 05]
+D834 DC1B; [1E 65, 05, 05]
-D834 DC68; [1E 67, 05, 05]
+D834 DC1C; [1E 67, 05, 05]
-D834 DC69; [1E 69, 05, 05]
+D834 DC1D; [1E 69, 05, 05]
-D834 DC6A; [1E 6B, 05, 05]
+D834 DC1E; [1E 6B, 05, 05]
-D834 DC6B; [1E 6D, 05, 05]
+D834 DC1F; [1E 6D, 05, 05]
-D834 DC6C; [1E 6F, 05, 05]
+D834 DC20; [1E 6F, 05, 05]
-D834 DC6D; [1E 71, 05, 05]
+D834 DC21; [1E 71, 05, 05]
-D834 DC6E; [1E 73, 05, 05]
+D834 DC22; [1E 73, 05, 05]
-D834 DC6F; [1E 75, 05, 05]
+D834 DC23; [1E 75, 05, 05]
-D834 DC70; [1E 77, 05, 05]
+D834 DC24; [1E 77, 05, 05]
-D834 DC71; [1E 79, 05, 05]
+D834 DC25; [1E 79, 05, 05]
-D834 DC72; [1E 7B, 05, 05]
+D834 DC26; [1E 7B, 05, 05]
-D834 DC73; [1E 7D, 05, 05]
+D834 DC27; [1E 7D, 05, 05]
-D834 DC74; [1E 7F, 05, 05]
+D834 DC28; [1E 7F, 05, 05]
-D834 DC75; [1E 81, 05, 05]
+D834 DC29; [1E 81, 05, 05]
-D834 DC76; [1E 83, 05, 05]
+D834 DC2A; [1E 83, 05, 05]
-D834 DC77; [1E 85, 05, 05]
+D834 DC2B; [1E 85, 05, 05]
-D834 DC78; [1E 87, 05, 05]
+D834 DC2C; [1E 87, 05, 05]
-D834 DC79; [1E 89, 05, 05]
+D834 DC2D; [1E 89, 05, 05]
-D834 DC7A; [1E 8B, 05, 05]
+D834 DC2E; [1E 8B, 05, 05]
-D834 DC7B; [1E 8D, 05, 05]
+D834 DC2F; [1E 8D, 05, 05]
-D834 DC7C; [1E 8F, 05, 05]
+D834 DC30; [1E 8F, 05, 05]
-D834 DC7D; [1E 91, 05, 05]
+D834 DC31; [1E 91, 05, 05]
-D834 DC7E; [1E 93, 05, 05]
+D834 DC32; [1E 93, 05, 05]
-D834 DC7F; [1E 95, 05, 05]
+D834 DC33; [1E 95, 05, 05]
-D834 DC80; [1E 97, 05, 05]
+D834 DC34; [1E 97, 05, 05]
-D834 DC81; [1E 99, 05, 05]
+D834 DC35; [1E 99, 05, 05]
-D834 DC82; [1E 9B, 05, 05]
+D834 DC36; [1E 9B, 05, 05]
-D834 DC83; [1E 9D, 05, 05]
+D834 DC37; [1E 9D, 05, 05]
-D834 DC84; [1E 9F, 05, 05]
+D834 DC38; [1E 9F, 05, 05]
-D834 DC85; [1E A1, 05, 05]
+D834 DC39; [1E A1, 05, 05]
-D834 DC86; [1E A3, 05, 05]
+D834 DC3A; [1E A3, 05, 05]
-D834 DC87; [1E A5, 05, 05]
+D834 DC3B; [1E A5, 05, 05]
-D834 DC88; [1E A7, 05, 05]
+D834 DC3C; [1E A7, 05, 05]
-D834 DC89; [1E A9, 05, 05]
+D834 DC3D; [1E A9, 05, 05]
-D834 DC8A; [1E AB, 05, 05]
+D834 DC3E; [1E AB, 05, 05]
-D834 DC8B; [1E AD, 05, 05]
+D834 DC3F; [1E AD, 05, 05]
-D834 DC8C; [1E AF, 05, 05]
+D834 DC40; [1E AF, 05, 05]
-D834 DC8D; [1E B1, 05, 05]
+D834 DC41; [1E B1, 05, 05]
-D834 DC8E; [1E B3, 05, 05]
+D834 DC42; [1E B3, 05, 05]
-D834 DC8F; [1E B5, 05, 05]
+D834 DC43; [1E B5, 05, 05]
-D834 DC90; [1E B7, 05, 05]
+D834 DC44; [1E B7, 05, 05]
-D834 DC91; [1E B9, 05, 05]
+D834 DC45; [1E B9, 05, 05]
-D834 DC92; [1E BB, 05, 05]
+D834 DC46; [1E BB, 05, 05]
-D834 DC93; [1E BD, 05, 05]
+D834 DC47; [1E BD, 05, 05]
-D834 DC94; [1E BF, 05, 05]
+D834 DC48; [1E BF, 05, 05]
-D834 DC95; [1E C1, 05, 05]
+D834 DC49; [1E C1, 05, 05]
-D834 DC96; [1E C3, 05, 05]
+D834 DC4A; [1E C3, 05, 05]
-D834 DC97; [1E C5, 05, 05]
+D834 DC4B; [1E C5, 05, 05]
-D834 DC98; [1E C7, 05, 05]
+D834 DC4C; [1E C7, 05, 05]
-D834 DC99; [1E C9, 05, 05]
+D834 DC4D; [1E C9, 05, 05]
-D834 DC9A; [1E CB, 05, 05]
+D834 DC4E; [1E CB, 05, 05]
-D834 DC9B; [1E CD, 05, 05]
+D834 DC4F; [1E CD, 05, 05]
-D834 DC9C; [1E CF, 05, 05]
+D834 DC50; [1E CF, 05, 05]
-D834 DC9D; [1E D1, 05, 05]
+D834 DC51; [1E D1, 05, 05]
-D834 DC9E; [1E D3, 05, 05]
+D834 DC52; [1E D3, 05, 05]
-D834 DC9F; [1E D5, 05, 05]
+D834 DC53; [1E D5, 05, 05]
-D834 DCA0; [1E D7, 05, 05]
+D834 DC54; [1E D7, 05, 05]
-D834 DCA1; [1E D9, 05, 05]
+D834 DC55; [1E D9, 05, 05]
-D834 DCA2; [1E DB, 05, 05]
+D834 DC56; [1E DB, 05, 05]
-D834 DCA3; [1E DD, 05, 05]
+D834 DC57; [1E DD, 05, 05]
-D834 DCA4; [1E DF, 05, 05]
+D834 DC58; [1E DF, 05, 05]
-D834 DCA5; [1E E1, 05, 05]
+D834 DC59; [1E E1, 05, 05]
-D834 DCA6; [1E E3, 05, 05]
+D834 DC5A; [1E E3, 05, 05]
-D834 DCA7; [1E E5, 05, 05]
+D834 DC5B; [1E E5, 05, 05]
-D834 DCA8; [1E E7, 05, 05]
+D834 DC5C; [1E E7, 05, 05]
-D834 DCA9; [1E E9, 05, 05]
+D834 DC5D; [1E E9, 05, 05]
-D834 DCAA; [1E EB, 05, 05]
+D834 DC5E; [1E EB, 05, 05]
-D834 DCAB; [1E ED, 05, 05]
+D834 DC5F; [1E ED, 05, 05]
-D834 DCAC; [1E EF, 05, 05]
+D834 DC60; [1E EF, 05, 05]
-D834 DCAD; [1E F1, 05, 05]
+D834 DC61; [1E F1, 05, 05]
-D834 DCAE; [1E F3, 05, 05]
+D834 DC62; [1E F3, 05, 05]
-D834 DCAF; [1E F5, 05, 05]
+D834 DC63; [1E F5, 05, 05]
-D834 DCB0; [1E F7, 05, 05]
+D834 DC64; [1E F7, 05, 05]
-D834 DCB1; [1E F9, 05, 05]
+D834 DC65; [1E F9, 05, 05]
-D834 DCB2; [1E FB, 05, 05]
+D834 DC66; [1E FB, 05, 05]
-D834 DCB3; [1E FD, 05, 05]
+D834 DC67; [1E FD, 05, 05]
-D834 DCB4; [1F 05, 05, 05]
+D834 DC68; [1F 05, 05, 05]
-D834 DCB5; [1F 07, 05, 05]
+D834 DC69; [1F 07, 05, 05]
-D834 DCB6; [1F 09, 05, 05]
+D834 DC6A; [1F 09, 05, 05]
-D834 DCB7; [1F 0B, 05, 05]
+D834 DC6B; [1F 0B, 05, 05]
-D834 DCB8; [1F 0D, 05, 05]
+D834 DC6C; [1F 0D, 05, 05]
-D834 DCB9; [1F 0F, 05, 05]
+D834 DC6D; [1F 0F, 05, 05]
-D834 DCBA; [1F 11, 05, 05]
+D834 DC6E; [1F 11, 05, 05]
-D834 DCBB; [1F 13, 05, 05]
+D834 DC6F; [1F 13, 05, 05]
-D834 DCBC; [1F 15, 05, 05]
+D834 DC70; [1F 15, 05, 05]
-D834 DCBD; [1F 17, 05, 05]
+D834 DC71; [1F 17, 05, 05]
-D834 DCBE; [1F 19, 05, 05]
+D834 DC72; [1F 19, 05, 05]
-D834 DCBF; [1F 1B, 05, 05]
+D834 DC73; [1F 1B, 05, 05]
-D834 DCC0; [1F 1D, 05, 05]
+D834 DC74; [1F 1D, 05, 05]
-D834 DCC1; [1F 1F, 05, 05]
+D834 DC75; [1F 1F, 05, 05]
-D834 DCC2; [1F 21, 05, 05]
+D834 DC76; [1F 21, 05, 05]
-D834 DCC3; [1F 23, 05, 05]
+D834 DC77; [1F 23, 05, 05]
-D834 DCC4; [1F 25, 05, 05]
+D834 DC78; [1F 25, 05, 05]
-D834 DCC5; [1F 27, 05, 05]
+D834 DC79; [1F 27, 05, 05]
-D834 DCC6; [1F 29, 05, 05]
+D834 DC7A; [1F 29, 05, 05]
-D834 DCC7; [1F 2B, 05, 05]
+D834 DC7B; [1F 2B, 05, 05]
-D834 DCC8; [1F 2D, 05, 05]
+D834 DC7C; [1F 2D, 05, 05]
-D834 DCC9; [1F 2F, 05, 05]
+D834 DC7D; [1F 2F, 05, 05]
-D834 DCCA; [1F 31, 05, 05]
+D834 DC7E; [1F 31, 05, 05]
-D834 DCCB; [1F 33, 05, 05]
+D834 DC7F; [1F 33, 05, 05]
-D834 DCCC; [1F 35, 05, 05]
+D834 DC80; [1F 35, 05, 05]
-D834 DCCD; [1F 37, 05, 05]
+D834 DC81; [1F 37, 05, 05]
-D834 DCCE; [1F 39, 05, 05]
+D834 DC82; [1F 39, 05, 05]
-D834 DCCF; [1F 3B, 05, 05]
+D834 DC83; [1F 3B, 05, 05]
-D834 DCD0; [1F 3D, 05, 05]
+D834 DC84; [1F 3D, 05, 05]
-D834 DCD1; [1F 3F, 05, 05]
+D834 DC85; [1F 3F, 05, 05]
-D834 DCD2; [1F 41, 05, 05]
+D834 DC86; [1F 41, 05, 05]
-D834 DCD3; [1F 43, 05, 05]
+D834 DC87; [1F 43, 05, 05]
-D834 DCD4; [1F 45, 05, 05]
+D834 DC88; [1F 45, 05, 05]
-D834 DCD5; [1F 47, 05, 05]
+D834 DC89; [1F 47, 05, 05]
-D834 DCD6; [1F 49, 05, 05]
+D834 DC8A; [1F 49, 05, 05]
-D834 DCD7; [1F 4B, 05, 05]
+D834 DC8B; [1F 4B, 05, 05]
-D834 DCD8; [1F 4D, 05, 05]
+D834 DC8C; [1F 4D, 05, 05]
-D834 DCD9; [1F 4F, 05, 05]
+D834 DC8D; [1F 4F, 05, 05]
-D834 DCDA; [1F 51, 05, 05]
+D834 DC8E; [1F 51, 05, 05]
-D834 DCDB; [1F 53, 05, 05]
+D834 DC8F; [1F 53, 05, 05]
-D834 DCDC; [1F 55, 05, 05]
+D834 DC90; [1F 55, 05, 05]
-D834 DCDD; [1F 57, 05, 05]
+D834 DC91; [1F 57, 05, 05]
-D834 DCDE; [1F 59, 05, 05]
+D834 DC92; [1F 59, 05, 05]
-D834 DCDF; [1F 5B, 05, 05]
+D834 DC93; [1F 5B, 05, 05]
-D834 DCE0; [1F 5D, 05, 05]
+D834 DC94; [1F 5D, 05, 05]
-D834 DCE1; [1F 5F, 05, 05]
+D834 DC95; [1F 5F, 05, 05]
-D834 DCE2; [1F 61, 05, 05]
+D834 DC96; [1F 61, 05, 05]
-D834 DCE3; [1F 63, 05, 05]
+D834 DC97; [1F 63, 05, 05]
-D834 DCE4; [1F 65, 05, 05]
+D834 DC98; [1F 65, 05, 05]
-D834 DCE5; [1F 67, 05, 05]
+D834 DC99; [1F 67, 05, 05]
-D834 DCE6; [1F 69, 05, 05]
+D834 DC9A; [1F 69, 05, 05]
-D834 DCE7; [1F 6B, 05, 05]
+D834 DC9B; [1F 6B, 05, 05]
-D834 DCE8; [1F 6D, 05, 05]
+D834 DC9C; [1F 6D, 05, 05]
-D834 DCE9; [1F 6F, 05, 05]
+D834 DC9D; [1F 6F, 05, 05]
-D834 DCEA; [1F 71, 05, 05]
+D834 DC9E; [1F 71, 05, 05]
-D834 DCEB; [1F 73, 05, 05]
+D834 DC9F; [1F 73, 05, 05]
-D834 DCEC; [1F 75, 05, 05]
+D834 DCA0; [1F 75, 05, 05]
-D834 DCED; [1F 77, 05, 05]
+D834 DCA1; [1F 77, 05, 05]
-D834 DCEE; [1F 79, 05, 05]
+D834 DCA2; [1F 79, 05, 05]
-D834 DCEF; [1F 7B, 05, 05]
+D834 DCA3; [1F 7B, 05, 05]
-D834 DCF0; [1F 7D, 05, 05]
+D834 DCA4; [1F 7D, 05, 05]
-D834 DCF1; [1F 7F, 05, 05]
+D834 DCA5; [1F 7F, 05, 05]
-D834 DCF2; [1F 81, 05, 05]
+D834 DCA6; [1F 81, 05, 05]
-D834 DCF3; [1F 83, 05, 05]
+D834 DCA7; [1F 83, 05, 05]
-D834 DCF4; [1F 85, 05, 05]
+D834 DCA8; [1F 85, 05, 05]
-D834 DCF5; [1F 87, 05, 05]
+D834 DCA9; [1F 87, 05, 05]
-D834 DD00; [1F 89, 05, 05]
+D834 DCAA; [1F 89, 05, 05]
-D834 DD01; [1F 8B, 05, 05]
+D834 DCAB; [1F 8B, 05, 05]
-D834 DD02; [1F 8D, 05, 05]
+D834 DCAC; [1F 8D, 05, 05]
-D834 DD03; [1F 8F, 05, 05]
+D834 DCAD; [1F 8F, 05, 05]
-D834 DD04; [1F 91, 05, 05]
+D834 DCAE; [1F 91, 05, 05]
-D834 DD05; [1F 93, 05, 05]
+D834 DCAF; [1F 93, 05, 05]
-D834 DD06; [1F 95, 05, 05]
+D834 DCB0; [1F 95, 05, 05]
-D834 DD07; [1F 97, 05, 05]
+D834 DCB1; [1F 97, 05, 05]
-D834 DD08; [1F 99, 05, 05]
+D834 DCB2; [1F 99, 05, 05]
-D834 DD09; [1F 9B, 05, 05]
+D834 DCB3; [1F 9B, 05, 05]
-D834 DD0A; [1F 9D, 05, 05]
+D834 DCB4; [1F 9D, 05, 05]
-D834 DD0B; [1F 9F, 05, 05]
+D834 DCB5; [1F 9F, 05, 05]
-D834 DD0C; [1F A1, 05, 05]
+D834 DCB6; [1F A1, 05, 05]
-D834 DD0D; [1F A3, 05, 05]
+D834 DCB7; [1F A3, 05, 05]
-D834 DD0E; [1F A5, 05, 05]
+D834 DCB8; [1F A5, 05, 05]
-D834 DD0F; [1F A7, 05, 05]
+D834 DCB9; [1F A7, 05, 05]
-D834 DD10; [1F A9, 05, 05]
+D834 DCBA; [1F A9, 05, 05]
-D834 DD11; [1F AB, 05, 05]
+D834 DCBB; [1F AB, 05, 05]
-D834 DD12; [1F AD, 05, 05]
+D834 DCBC; [1F AD, 05, 05]
-D834 DD13; [1F AF, 05, 05]
+D834 DCBD; [1F AF, 05, 05]
-D834 DD14; [1F B1, 05, 05]
+D834 DCBE; [1F B1, 05, 05]
-D834 DD15; [1F B3, 05, 05]
+D834 DCBF; [1F B3, 05, 05]
-D834 DD16; [1F B5, 05, 05]
+D834 DCC0; [1F B5, 05, 05]
-D834 DD17; [1F B7, 05, 05]
+D834 DCC1; [1F B7, 05, 05]
-D834 DD18; [1F B9, 05, 05]
+D834 DCC2; [1F B9, 05, 05]
-D834 DD19; [1F BB, 05, 05]
+D834 DCC3; [1F BB, 05, 05]
-D834 DD1A; [1F BD, 05, 05]
+D834 DCC4; [1F BD, 05, 05]
-D834 DD1B; [1F BF, 05, 05]
+D834 DCC5; [1F BF, 05, 05]
-D834 DD1C; [1F C1, 05, 05]
+D834 DCC6; [1F C1, 05, 05]
-D834 DD1D; [1F C3, 05, 05]
+D834 DCC7; [1F C3, 05, 05]
-D834 DD1E; [1F C5, 05, 05]
+D834 DCC8; [1F C5, 05, 05]
-D834 DD1F; [1F C7, 05, 05]
+D834 DCC9; [1F C7, 05, 05]
-D834 DD20; [1F C9, 05, 05]
+D834 DCCA; [1F C9, 05, 05]
-D834 DD21; [1F CB, 05, 05]
+D834 DCCB; [1F CB, 05, 05]
-D834 DD22; [1F CD, 05, 05]
+D834 DCCC; [1F CD, 05, 05]
-D834 DD23; [1F CF, 05, 05]
+D834 DCCD; [1F CF, 05, 05]
-D834 DD24; [1F D1, 05, 05]
+D834 DCCE; [1F D1, 05, 05]
-D834 DD25; [1F D3, 05, 05]
+D834 DCCF; [1F D3, 05, 05]
-D834 DD26; [1F D5, 05, 05]
+D834 DCD0; [1F D5, 05, 05]
-266D; [1F D7, 05, 05]
+D834 DCD1; [1F D7, 05, 05]
-266E; [1F D9, 05, 05]
+D834 DCD2; [1F D9, 05, 05]
-266F; [1F DB, 05, 05]
+D834 DCD3; [1F DB, 05, 05]
-D834 DD2A; [1F DD, 05, 05]
+D834 DCD4; [1F DD, 05, 05]
-D834 DD2B; [1F DF, 05, 05]
+D834 DCD5; [1F DF, 05, 05]
-D834 DD2C; [1F E1, 05, 05]
+D834 DCD6; [1F E1, 05, 05]
-D834 DD2D; [1F E3, 05, 05]
+D834 DCD7; [1F E3, 05, 05]
-D834 DD2E; [1F E5, 05, 05]
+D834 DCD8; [1F E5, 05, 05]
-D834 DD2F; [1F E7, 05, 05]
+D834 DCD9; [1F E7, 05, 05]
-D834 DD30; [1F E9, 05, 05]
+D834 DCDA; [1F E9, 05, 05]
-D834 DD31; [1F EB, 05, 05]
+D834 DCDB; [1F EB, 05, 05]
-D834 DD32; [1F ED, 05, 05]
+D834 DCDC; [1F ED, 05, 05]
-D834 DD33; [1F EF, 05, 05]
+D834 DCDD; [1F EF, 05, 05]
-D834 DD34; [1F F1, 05, 05]
+D834 DCDE; [1F F1, 05, 05]
-D834 DD35; [1F F3, 05, 05]
+D834 DCDF; [1F F3, 05, 05]
-D834 DD36; [1F F5, 05, 05]
+D834 DCE0; [1F F5, 05, 05]
-D834 DD37; [1F F7, 05, 05]
+D834 DCE1; [1F F7, 05, 05]
-D834 DD38; [1F F9, 05, 05]
+D834 DCE2; [1F F9, 05, 05]
-D834 DD39; [1F FB, 05, 05]
+D834 DCE3; [1F FB, 05, 05]
-D834 DD3A; [1F FD, 05, 05]
+D834 DCE4; [1F FD, 05, 05]
-D834 DD3B; [20 05, 05, 05]
+D834 DCE5; [20 05, 05, 05]
-D834 DD3C; [20 07, 05, 05]
+D834 DCE6; [20 07, 05, 05]
-D834 DD3D; [20 09, 05, 05]
+D834 DCE7; [20 09, 05, 05]
-D834 DD3E; [20 0B, 05, 05]
+D834 DCE8; [20 0B, 05, 05]
-D834 DD3F; [20 0D, 05, 05]
+D834 DCE9; [20 0D, 05, 05]
-D834 DD40; [20 0F, 05, 05]
+D834 DCEA; [20 0F, 05, 05]
-D834 DD41; [20 11, 05, 05]
+D834 DCEB; [20 11, 05, 05]
-D834 DD42; [20 13, 05, 05]
+D834 DCEC; [20 13, 05, 05]
-D834 DD43; [20 15, 05, 05]
+D834 DCED; [20 15, 05, 05]
-D834 DD44; [20 17, 05, 05]
+D834 DCEE; [20 17, 05, 05]
-D834 DD45; [20 19, 05, 05]
+D834 DCEF; [20 19, 05, 05]
-D834 DD46; [20 1B, 05, 05]
+D834 DCF0; [20 1B, 05, 05]
-D834 DD47; [20 1D, 05, 05]
+D834 DCF1; [20 1D, 05, 05]
-D834 DD48; [20 1F, 05, 05]
+D834 DCF2; [20 1F, 05, 05]
-D834 DD49; [20 21, 05, 05]
+D834 DCF3; [20 21, 05, 05]
-D834 DD4A; [20 23, 05, 05]
+D834 DCF4; [20 23, 05, 05]
-D834 DD4B; [20 25, 05, 05]
+D834 DCF5; [20 25, 05, 05]
-D834 DD4C; [20 27, 05, 05]
+D834 DD00; [20 27, 05, 05]
-D834 DD4D; [20 29, 05, 05]
+D834 DD01; [20 29, 05, 05]
-D834 DD4E; [20 2B, 05, 05]
+D834 DD02; [20 2B, 05, 05]
-D834 DD4F; [20 2D, 05, 05]
+D834 DD03; [20 2D, 05, 05]
-D834 DD50; [20 2F, 05, 05]
+D834 DD04; [20 2F, 05, 05]
-D834 DD51; [20 31, 05, 05]
+D834 DD05; [20 31, 05, 05]
-D834 DD52; [20 33, 05, 05]
+D834 DD06; [20 33, 05, 05]
-D834 DD53; [20 35, 05, 05]
+D834 DD07; [20 35, 05, 05]
-D834 DD54; [20 37, 05, 05]
+D834 DD08; [20 37, 05, 05]
-D834 DD55; [20 39, 05, 05]
+D834 DD09; [20 39, 05, 05]
-D834 DD56; [20 3B, 05, 05]
+D834 DD0A; [20 3B, 05, 05]
-D834 DD57; [20 3D, 05, 05]
-D834 DD5E; [20 3D, 05, 05]
+D834 DD0B; [20 3D, 05, 05]
-D834 DD58; [20 3F, 05, 05]
-D834 DD5F; [20 3F, 05, 05]
-D834 DD60; [20 3F, 05, 05]
-D834 DD61; [20 3F, 05, 05]
-D834 DD62; [20 3F, 05, 05]
-D834 DD63; [20 3F, 05, 05]
-D834 DD64; [20 3F, 05, 05]
+D834 DD0C; [20 3F, 05, 05]
-D834 DD59; [20 41, 05, 05]
+D834 DD0D; [20 41, 05, 05]
-D834 DD5A; [20 43, 05, 05]
+D834 DD0E; [20 43, 05, 05]
-D834 DD5B; [20 45, 05, 05]
+D834 DD0F; [20 45, 05, 05]
-D834 DD5C; [20 47, 05, 05]
+D834 DD10; [20 47, 05, 05]
-D834 DD5D; [20 49, 05, 05]
+D834 DD11; [20 49, 05, 05]
-D834 DD6A; [20 4B, 05, 05]
+D834 DD12; [20 4B, 05, 05]
-D834 DD6B; [20 4D, 05, 05]
+D834 DD13; [20 4D, 05, 05]
-D834 DD6C; [20 4F, 05, 05]
+D834 DD14; [20 4F, 05, 05]
-D834 DD83; [20 51, 05, 05]
+D834 DD15; [20 51, 05, 05]
-D834 DD84; [20 53, 05, 05]
+D834 DD16; [20 53, 05, 05]
-D834 DD8C; [20 55, 05, 05]
+D834 DD17; [20 55, 05, 05]
-D834 DD8D; [20 57, 05, 05]
+D834 DD18; [20 57, 05, 05]
-D834 DD8E; [20 59, 05, 05]
+D834 DD19; [20 59, 05, 05]
-D834 DD8F; [20 5B, 05, 05]
+D834 DD1A; [20 5B, 05, 05]
-D834 DD90; [20 5D, 05, 05]
+D834 DD1B; [20 5D, 05, 05]
-D834 DD91; [20 5F, 05, 05]
+D834 DD1C; [20 5F, 05, 05]
-D834 DD92; [20 61, 05, 05]
+D834 DD1D; [20 61, 05, 05]
-D834 DD93; [20 63, 05, 05]
+D834 DD1E; [20 63, 05, 05]
-D834 DD94; [20 65, 05, 05]
+D834 DD1F; [20 65, 05, 05]
-D834 DD95; [20 67, 05, 05]
+D834 DD20; [20 67, 05, 05]
-D834 DD96; [20 69, 05, 05]
+D834 DD21; [20 69, 05, 05]
-D834 DD97; [20 6B, 05, 05]
+D834 DD22; [20 6B, 05, 05]
-D834 DD98; [20 6D, 05, 05]
+D834 DD23; [20 6D, 05, 05]
-D834 DD99; [20 6F, 05, 05]
+D834 DD24; [20 6F, 05, 05]
-D834 DD9A; [20 71, 05, 05]
+D834 DD25; [20 71, 05, 05]
-D834 DD9B; [20 73, 05, 05]
+D834 DD26; [20 73, 05, 05]
-D834 DD9C; [20 75, 05, 05]
+266D; [20 75, 05, 05]
-D834 DD9D; [20 77, 05, 05]
+266E; [20 77, 05, 05]
-D834 DD9E; [20 79, 05, 05]
+266F; [20 79, 05, 05]
-D834 DD9F; [20 7B, 05, 05]
+D834 DD2A; [20 7B, 05, 05]
-D834 DDA0; [20 7D, 05, 05]
+D834 DD2B; [20 7D, 05, 05]
-D834 DDA1; [20 7F, 05, 05]
+D834 DD2C; [20 7F, 05, 05]
-D834 DDA2; [20 81, 05, 05]
+D834 DD2D; [20 81, 05, 05]
-D834 DDA3; [20 83, 05, 05]
+D834 DD2E; [20 83, 05, 05]
-D834 DDA4; [20 85, 05, 05]
+D834 DD2F; [20 85, 05, 05]
-D834 DDA5; [20 87, 05, 05]
+D834 DD30; [20 87, 05, 05]
-D834 DDA6; [20 89, 05, 05]
+D834 DD31; [20 89, 05, 05]
-D834 DDA7; [20 8B, 05, 05]
+D834 DD32; [20 8B, 05, 05]
-D834 DDA8; [20 8D, 05, 05]
+D834 DD33; [20 8D, 05, 05]
-D834 DDA9; [20 8F, 05, 05]
+D834 DD34; [20 8F, 05, 05]
-D834 DDAE; [20 91, 05, 05]
+D834 DD35; [20 91, 05, 05]
-D834 DDAF; [20 93, 05, 05]
+D834 DD36; [20 93, 05, 05]
-D834 DDB0; [20 95, 05, 05]
+D834 DD37; [20 95, 05, 05]
-D834 DDB1; [20 97, 05, 05]
+D834 DD38; [20 97, 05, 05]
-D834 DDB2; [20 99, 05, 05]
+D834 DD39; [20 99, 05, 05]
-D834 DDB3; [20 9B, 05, 05]
+D834 DD3A; [20 9B, 05, 05]
-D834 DDB4; [20 9D, 05, 05]
+D834 DD3B; [20 9D, 05, 05]
-D834 DDB5; [20 9F, 05, 05]
+D834 DD3C; [20 9F, 05, 05]
-D834 DDB6; [20 A1, 05, 05]
+D834 DD3D; [20 A1, 05, 05]
-D834 DDB7; [20 A3, 05, 05]
+D834 DD3E; [20 A3, 05, 05]
-D834 DDB8; [20 A5, 05, 05]
+D834 DD3F; [20 A5, 05, 05]
-D834 DDB9; [20 A7, 05, 05]
-D834 DDBB; [20 A7, 05, 05]
-D834 DDBD; [20 A7, 05, 05]
-D834 DDBF; [20 A7, 05, 05]
+D834 DD40; [20 A7, 05, 05]
-D834 DDBA; [20 A9, 05, 05]
-D834 DDBC; [20 A9, 05, 05]
-D834 DDBE; [20 A9, 05, 05]
-D834 DDC0; [20 A9, 05, 05]
+D834 DD41; [20 A9, 05, 05]
-D834 DDC1; [20 AB, 05, 05]
+D834 DD42; [20 AB, 05, 05]
-D834 DDC2; [20 AD, 05, 05]
+D834 DD43; [20 AD, 05, 05]
-D834 DDC3; [20 AF, 05, 05]
+D834 DD44; [20 AF, 05, 05]
-D834 DDC4; [20 B1, 05, 05]
+D834 DD45; [20 B1, 05, 05]
-D834 DDC5; [20 B3, 05, 05]
+D834 DD46; [20 B3, 05, 05]
-D834 DDC6; [20 B5, 05, 05]
+D834 DD47; [20 B5, 05, 05]
-D834 DDC7; [20 B7, 05, 05]
+D834 DD48; [20 B7, 05, 05]
-D834 DDC8; [20 B9, 05, 05]
+D834 DD49; [20 B9, 05, 05]
-D834 DDC9; [20 BB, 05, 05]
+D834 DD4A; [20 BB, 05, 05]
-D834 DDCA; [20 BD, 05, 05]
+D834 DD4B; [20 BD, 05, 05]
-D834 DDCB; [20 BF, 05, 05]
+D834 DD4C; [20 BF, 05, 05]
-D834 DDCC; [20 C1, 05, 05]
+D834 DD4D; [20 C1, 05, 05]
-D834 DDCD; [20 C3, 05, 05]
+D834 DD4E; [20 C3, 05, 05]
-D834 DDCE; [20 C5, 05, 05]
+D834 DD4F; [20 C5, 05, 05]
-D834 DDCF; [20 C7, 05, 05]
+D834 DD50; [20 C7, 05, 05]
-D834 DDD0; [20 C9, 05, 05]
+D834 DD51; [20 C9, 05, 05]
-D834 DDD1; [20 CB, 05, 05]
+D834 DD52; [20 CB, 05, 05]
-D834 DDD2; [20 CD, 05, 05]
+D834 DD53; [20 CD, 05, 05]
-D834 DDD3; [20 CF, 05, 05]
+D834 DD54; [20 CF, 05, 05]
-D834 DDD4; [20 D1, 05, 05]
+D834 DD55; [20 D1, 05, 05]
-D834 DDD5; [20 D3, 05, 05]
+D834 DD56; [20 D3, 05, 05]
-D834 DDD6; [20 D5, 05, 05]
+D834 DD57; [20 D5, 05, 05]
+D834 DD5E; [20 D5, 05, 05]
-D834 DDD7; [20 D7, 05, 05]
+D834 DD58; [20 D7, 05, 05]
+D834 DD5F; [20 D7, 05, 05]
+D834 DD60; [20 D7, 05, 05]
+D834 DD61; [20 D7, 05, 05]
+D834 DD62; [20 D7, 05, 05]
+D834 DD63; [20 D7, 05, 05]
+D834 DD64; [20 D7, 05, 05]
-D834 DDD8; [20 D9, 05, 05]
+D834 DD59; [20 D9, 05, 05]
-D834 DDD9; [20 DB, 05, 05]
+D834 DD5A; [20 DB, 05, 05]
-D834 DDDA; [20 DD, 05, 05]
+D834 DD5B; [20 DD, 05, 05]
-D834 DDDB; [20 DF, 05, 05]
+D834 DD5C; [20 DF, 05, 05]
-D834 DDDC; [20 E1, 05, 05]
+D834 DD5D; [20 E1, 05, 05]
-D834 DDDD; [20 E3, 05, 05]
+D834 DD6A; [20 E3, 05, 05]
-D834 DE00; [20 E5, 05, 05]
+D834 DD6B; [20 E5, 05, 05]
-D834 DE01; [20 E7, 05, 05]
+D834 DD6C; [20 E7, 05, 05]
-D834 DE02; [20 E9, 05, 05]
+D834 DD83; [20 E9, 05, 05]
-D834 DE03; [20 EB, 05, 05]
+D834 DD84; [20 EB, 05, 05]
-D834 DE04; [20 ED, 05, 05]
+D834 DD8C; [20 ED, 05, 05]
-D834 DE05; [20 EF, 05, 05]
+D834 DD8D; [20 EF, 05, 05]
-D834 DE06; [20 F1, 05, 05]
+D834 DD8E; [20 F1, 05, 05]
-D834 DE07; [20 F3, 05, 05]
+D834 DD8F; [20 F3, 05, 05]
-D834 DE08; [20 F5, 05, 05]
+D834 DD90; [20 F5, 05, 05]
-D834 DE09; [20 F7, 05, 05]
+D834 DD91; [20 F7, 05, 05]
-D834 DE0A; [20 F9, 05, 05]
+D834 DD92; [20 F9, 05, 05]
-D834 DE0B; [20 FB, 05, 05]
+D834 DD93; [20 FB, 05, 05]
-D834 DE0C; [20 FD, 05, 05]
+D834 DD94; [20 FD, 05, 05]
-D834 DE0D; [21 05, 05, 05]
+D834 DD95; [21 05, 05, 05]
-D834 DE0E; [21 07, 05, 05]
+D834 DD96; [21 07, 05, 05]
-D834 DE0F; [21 09, 05, 05]
+D834 DD97; [21 09, 05, 05]
-D834 DE10; [21 0B, 05, 05]
+D834 DD98; [21 0B, 05, 05]
-D834 DE11; [21 0D, 05, 05]
+D834 DD99; [21 0D, 05, 05]
-D834 DE12; [21 0F, 05, 05]
+D834 DD9A; [21 0F, 05, 05]
-D834 DE13; [21 11, 05, 05]
+D834 DD9B; [21 11, 05, 05]
-D834 DE14; [21 13, 05, 05]
+D834 DD9C; [21 13, 05, 05]
-D834 DE15; [21 15, 05, 05]
+D834 DD9D; [21 15, 05, 05]
-D834 DE16; [21 17, 05, 05]
+D834 DD9E; [21 17, 05, 05]
-D834 DE17; [21 19, 05, 05]
+D834 DD9F; [21 19, 05, 05]
-D834 DE18; [21 1B, 05, 05]
+D834 DDA0; [21 1B, 05, 05]
-D834 DE19; [21 1D, 05, 05]
+D834 DDA1; [21 1D, 05, 05]
-D834 DE1A; [21 1F, 05, 05]
+D834 DDA2; [21 1F, 05, 05]
-D834 DE1B; [21 21, 05, 05]
+D834 DDA3; [21 21, 05, 05]
-D834 DE1C; [21 23, 05, 05]
+D834 DDA4; [21 23, 05, 05]
-D834 DE1D; [21 25, 05, 05]
+D834 DDA5; [21 25, 05, 05]
-D834 DE1E; [21 27, 05, 05]
+D834 DDA6; [21 27, 05, 05]
-D834 DE1F; [21 29, 05, 05]
+D834 DDA7; [21 29, 05, 05]
-D834 DE20; [21 2B, 05, 05]
+D834 DDA8; [21 2B, 05, 05]
-D834 DE21; [21 2D, 05, 05]
+D834 DDA9; [21 2D, 05, 05]
-D834 DE22; [21 2F, 05, 05]
+D834 DDAE; [21 2F, 05, 05]
-D834 DE23; [21 31, 05, 05]
+D834 DDAF; [21 31, 05, 05]
-D834 DE24; [21 33, 05, 05]
+D834 DDB0; [21 33, 05, 05]
-D834 DE25; [21 35, 05, 05]
+D834 DDB1; [21 35, 05, 05]
-D834 DE26; [21 37, 05, 05]
+D834 DDB2; [21 37, 05, 05]
-D834 DE27; [21 39, 05, 05]
+D834 DDB3; [21 39, 05, 05]
-D834 DE28; [21 3B, 05, 05]
+D834 DDB4; [21 3B, 05, 05]
-D834 DE29; [21 3D, 05, 05]
+D834 DDB5; [21 3D, 05, 05]
-D834 DE2A; [21 3F, 05, 05]
+D834 DDB6; [21 3F, 05, 05]
-D834 DE2B; [21 41, 05, 05]
+D834 DDB7; [21 41, 05, 05]
-D834 DE2C; [21 43, 05, 05]
+D834 DDB8; [21 43, 05, 05]
-D834 DE2D; [21 45, 05, 05]
+D834 DDB9; [21 45, 05, 05]
+D834 DDBB; [21 45, 05, 05]
+D834 DDBD; [21 45, 05, 05]
+D834 DDBF; [21 45, 05, 05]
-D834 DE2E; [21 47, 05, 05]
+D834 DDBA; [21 47, 05, 05]
+D834 DDBC; [21 47, 05, 05]
+D834 DDBE; [21 47, 05, 05]
+D834 DDC0; [21 47, 05, 05]
-D834 DE2F; [21 49, 05, 05]
+D834 DDC1; [21 49, 05, 05]
-D834 DE30; [21 4B, 05, 05]
+D834 DDC2; [21 4B, 05, 05]
-D834 DE31; [21 4D, 05, 05]
+D834 DDC3; [21 4D, 05, 05]
-D834 DE32; [21 4F, 05, 05]
+D834 DDC4; [21 4F, 05, 05]
-D834 DE33; [21 51, 05, 05]
+D834 DDC5; [21 51, 05, 05]
-D834 DE34; [21 53, 05, 05]
+D834 DDC6; [21 53, 05, 05]
-D834 DE35; [21 55, 05, 05]
+D834 DDC7; [21 55, 05, 05]
-D834 DE36; [21 57, 05, 05]
+D834 DDC8; [21 57, 05, 05]
-D834 DE37; [21 59, 05, 05]
+D834 DDC9; [21 59, 05, 05]
-D834 DE38; [21 5B, 05, 05]
+D834 DDCA; [21 5B, 05, 05]
-D834 DE39; [21 5D, 05, 05]
+D834 DDCB; [21 5D, 05, 05]
-D834 DE3A; [21 5F, 05, 05]
+D834 DDCC; [21 5F, 05, 05]
-D834 DE3B; [21 61, 05, 05]
+D834 DDCD; [21 61, 05, 05]
-D834 DE3C; [21 63, 05, 05]
+D834 DDCE; [21 63, 05, 05]
-D834 DE3D; [21 65, 05, 05]
+D834 DDCF; [21 65, 05, 05]
-D834 DE3E; [21 67, 05, 05]
+D834 DDD0; [21 67, 05, 05]
-D834 DE3F; [21 69, 05, 05]
+D834 DDD1; [21 69, 05, 05]
-D834 DE40; [21 6B, 05, 05]
+D834 DDD2; [21 6B, 05, 05]
-D834 DE41; [21 6D, 05, 05]
+D834 DDD3; [21 6D, 05, 05]
-D834 DE45; [21 6F, 05, 05]
+D834 DDD4; [21 6F, 05, 05]
-2FF0; [21 71, 05, 05]
+D834 DDD5; [21 71, 05, 05]
-2FF1; [21 73, 05, 05]
+D834 DDD6; [21 73, 05, 05]
-2FF2; [21 75, 05, 05]
+D834 DDD7; [21 75, 05, 05]
-2FF3; [21 77, 05, 05]
+D834 DDD8; [21 77, 05, 05]
-2FF4; [21 79, 05, 05]
+D834 DDD9; [21 79, 05, 05]
-2FF5; [21 7B, 05, 05]
+D834 DDDA; [21 7B, 05, 05]
-2FF6; [21 7D, 05, 05]
+D834 DDDB; [21 7D, 05, 05]
-2FF7; [21 7F, 05, 05]
+D834 DDDC; [21 7F, 05, 05]
-2FF8; [21 81, 05, 05]
+D834 DDDD; [21 81, 05, 05]
-2FF9; [21 83, 05, 05]
+D834 DE00; [21 83, 05, 05]
-2FFA; [21 85, 05, 05]
+D834 DE01; [21 85, 05, 05]
-2FFB; [21 87, 05, 05]
+D834 DE02; [21 87, 05, 05]
-31C0; [21 89, 05, 05]
+D834 DE03; [21 89, 05, 05]
-31C1; [21 8B, 05, 05]
+D834 DE04; [21 8B, 05, 05]
-31C2; [21 8D, 05, 05]
+D834 DE05; [21 8D, 05, 05]
-31C3; [21 8F, 05, 05]
+D834 DE06; [21 8F, 05, 05]
-31C4; [21 91, 05, 05]
+D834 DE07; [21 91, 05, 05]
-31C5; [21 93, 05, 05]
+D834 DE08; [21 93, 05, 05]
-31C6; [21 95, 05, 05]
+D834 DE09; [21 95, 05, 05]
-31C7; [21 97, 05, 05]
+D834 DE0A; [21 97, 05, 05]
-31C8; [21 99, 05, 05]
+D834 DE0B; [21 99, 05, 05]
-31C9; [21 9B, 05, 05]
+D834 DE0C; [21 9B, 05, 05]
-31CA; [21 9D, 05, 05]
+D834 DE0D; [21 9D, 05, 05]
-31CB; [21 9F, 05, 05]
+D834 DE0E; [21 9F, 05, 05]
-31CC; [21 A1, 05, 05]
+D834 DE0F; [21 A1, 05, 05]
-31CD; [21 A3, 05, 05]
+D834 DE10; [21 A3, 05, 05]
-31CE; [21 A5, 05, 05]
+D834 DE11; [21 A5, 05, 05]
-31CF; [21 A7, 05, 05]
+D834 DE12; [21 A7, 05, 05]
-3004; [21 A9, 05, 05]
+D834 DE13; [21 A9, 05, 05]
-3012; [21 AB, 05, 05]
-3036; [21 AB, 05, 09]
+D834 DE14; [21 AB, 05, 05]
-3013; [21 AD, 05, 05]
+D834 DE15; [21 AD, 05, 05]
-3020; [21 AF, 05, 05]
+D834 DE16; [21 AF, 05, 05]
-3037; [21 B1, 05, 05]
+D834 DE17; [21 B1, 05, 05]
-303E; [21 B3, 05, 05]
+D834 DE18; [21 B3, 05, 05]
-303F; [21 B5, 05, 05]
+D834 DE19; [21 B5, 05, 05]
-3190; [21 B7, 05, 05]
+D834 DE1A; [21 B7, 05, 05]
-3191; [21 B9, 05, 05]
+D834 DE1B; [21 B9, 05, 05]
-327F; [21 BB, 05, 05]
+D834 DE1C; [21 BB, 05, 05]
-FFFC; [21 BD, 05, 05]
+D834 DE1D; [21 BD, 05, 05]
-FFFD; [21 BF, 05, 05]
+D834 DE1E; [21 BF, 05, 05]
-09F8; [21 C1, 05, 05]
+D834 DE1F; [21 C1, 05, 05]
-09F9; [21 C3, 05, 05]
+D834 DE20; [21 C3, 05, 05]
-0BF0; [21 C5, 05, 05]
+D834 DE21; [21 C5, 05, 05]
-0BF1; [21 C7, 05, 05]
+D834 DE22; [21 C7, 05, 05]
-0BF2; [21 C9, 05, 05]
+D834 DE23; [21 C9, 05, 05]
-1372; [21 CB, 05, 05]
+D834 DE24; [21 CB, 05, 05]
-1373; [21 CD, 05, 05]
+D834 DE25; [21 CD, 05, 05]
-1374; [21 CF, 05, 05]
+D834 DE26; [21 CF, 05, 05]
-1375; [21 D1, 05, 05]
+D834 DE27; [21 D1, 05, 05]
-1376; [21 D3, 05, 05]
+D834 DE28; [21 D3, 05, 05]
-1377; [21 D5, 05, 05]
+D834 DE29; [21 D5, 05, 05]
-1378; [21 D7, 05, 05]
+D834 DE2A; [21 D7, 05, 05]
-1379; [21 D9, 05, 05]
+D834 DE2B; [21 D9, 05, 05]
-137A; [21 DB, 05, 05]
+D834 DE2C; [21 DB, 05, 05]
-137B; [21 DD, 05, 05]
+D834 DE2D; [21 DD, 05, 05]
-137C; [21 DF, 05, 05]
+D834 DE2E; [21 DF, 05, 05]
-2180; [21 E1, 05, 05]
+D834 DE2F; [21 E1, 05, 05]
-2181; [21 E3, 05, 05]
+D834 DE30; [21 E3, 05, 05]
-2182; [21 E5, 05, 05]
+D834 DE31; [21 E5, 05, 05]
-2183; [21 E7, 05, 05]
+D834 DE32; [21 E7, 05, 05]
-2CFD; [21 E9, 05, 05]
+D834 DE33; [21 E9, 05, 05]
-D800 DF22; [21 EB, 05, 05]
+D834 DE34; [21 EB, 05, 05]
-D800 DF23; [21 ED, 05, 05]
+D834 DE35; [21 ED, 05, 05]
-D800 DD10; [21 EF, 05, 05]
+D834 DE36; [21 EF, 05, 05]
-D800 DD11; [21 F1, 05, 05]
+D834 DE37; [21 F1, 05, 05]
-D800 DD12; [21 F3, 05, 05]
+D834 DE38; [21 F3, 05, 05]
-D800 DD13; [21 F5, 05, 05]
+D834 DE39; [21 F5, 05, 05]
-D800 DD14; [21 F7, 05, 05]
+D834 DE3A; [21 F7, 05, 05]
-D800 DD15; [21 F9, 05, 05]
+D834 DE3B; [21 F9, 05, 05]
-D800 DD16; [21 FB, 05, 05]
+D834 DE3C; [21 FB, 05, 05]
-D800 DD17; [21 FD, 05, 05]
+D834 DE3D; [21 FD, 05, 05]
-D800 DD18; [22 05, 05, 05]
+D834 DE3E; [22 05, 05, 05]
-D800 DD19; [22 07, 05, 05]
+D834 DE3F; [22 07, 05, 05]
-D800 DD1A; [22 09, 05, 05]
+D834 DE40; [22 09, 05, 05]
-D800 DD1B; [22 0B, 05, 05]
+D834 DE41; [22 0B, 05, 05]
-D800 DD1C; [22 0D, 05, 05]
+D834 DE45; [22 0D, 05, 05]
-D800 DD1D; [22 0F, 05, 05]
+2FF0; [22 0F, 05, 05]
-D800 DD1E; [22 11, 05, 05]
+2FF1; [22 11, 05, 05]
-D800 DD1F; [22 13, 05, 05]
+2FF2; [22 13, 05, 05]
-D800 DD20; [22 15, 05, 05]
+2FF3; [22 15, 05, 05]
-D800 DD21; [22 17, 05, 05]
+2FF4; [22 17, 05, 05]
-D800 DD22; [22 19, 05, 05]
+2FF5; [22 19, 05, 05]
-D800 DD23; [22 1B, 05, 05]
+2FF6; [22 1B, 05, 05]
-D800 DD24; [22 1D, 05, 05]
+2FF7; [22 1D, 05, 05]
-D800 DD25; [22 1F, 05, 05]
+2FF8; [22 1F, 05, 05]
-D800 DD26; [22 21, 05, 05]
+2FF9; [22 21, 05, 05]
-D800 DD27; [22 23, 05, 05]
+2FFA; [22 23, 05, 05]
-D800 DD28; [22 25, 05, 05]
+2FFB; [22 25, 05, 05]
-D800 DD29; [22 27, 05, 05]
+31C0; [22 27, 05, 05]
-D800 DD2A; [22 29, 05, 05]
+31C1; [22 29, 05, 05]
-D800 DD2B; [22 2B, 05, 05]
+31C2; [22 2B, 05, 05]
-D800 DD2C; [22 2D, 05, 05]
+31C3; [22 2D, 05, 05]
-D800 DD2D; [22 2F, 05, 05]
+31C4; [22 2F, 05, 05]
-D800 DD2E; [22 31, 05, 05]
+31C5; [22 31, 05, 05]
-D800 DD2F; [22 33, 05, 05]
+31C6; [22 33, 05, 05]
-D800 DD30; [22 35, 05, 05]
+31C7; [22 35, 05, 05]
-D800 DD31; [22 37, 05, 05]
+31C8; [22 37, 05, 05]
-D800 DD32; [22 39, 05, 05]
+31C9; [22 39, 05, 05]
-D800 DD33; [22 3B, 05, 05]
+31CA; [22 3B, 05, 05]
-D800 DD40; [22 3D, 05, 05]
+31CB; [22 3D, 05, 05]
-D800 DD41; [22 3F, 05, 05]
+31CC; [22 3F, 05, 05]
-D800 DD44; [22 41, 05, 05]
+31CD; [22 41, 05, 05]
-D800 DD45; [22 43, 05, 05]
+31CE; [22 43, 05, 05]
-D800 DD46; [22 45, 05, 05]
+31CF; [22 45, 05, 05]
-D800 DD47; [22 47, 05, 05]
+3004; [22 47, 05, 05]
-D800 DD49; [22 49, 05, 05]
+3012; [22 49, 05, 05]
+3036; [22 49, 05, 09]
-D800 DD4A; [22 4B, 05, 05]
+3013; [22 4B, 05, 05]
-D800 DD4B; [22 4D, 05, 05]
+3020; [22 4D, 05, 05]
-D800 DD4C; [22 4F, 05, 05]
+3037; [22 4F, 05, 05]
-D800 DD4D; [22 51, 05, 05]
+303E; [22 51, 05, 05]
-D800 DD4E; [22 53, 05, 05]
+303F; [22 53, 05, 05]
-D800 DD50; [22 55, 05, 05]
+3190; [22 55, 05, 05]
-D800 DD51; [22 57, 05, 05]
+3191; [22 57, 05, 05]
-D800 DD52; [22 59, 05, 05]
+327F; [22 59, 05, 05]
-D800 DD53; [22 5B, 05, 05]
+FFFC; [22 5B, 05, 05]
-D800 DD54; [22 5D, 05, 05]
+FFFD; [22 5D, 05, 05]
-D800 DD55; [22 5F, 05, 05]
+09F8; [22 5F, 05, 05]
-D800 DD56; [22 61, 05, 05]
+09F9; [22 61, 05, 05]
-D800 DD57; [22 63, 05, 05]
+0BF0; [22 63, 05, 05]
-D800 DD60; [22 65, 05, 05]
+0BF1; [22 65, 05, 05]
-D800 DD61; [22 67, 05, 05]
+0BF2; [22 67, 05, 05]
-D800 DD62; [22 69, 05, 05]
+1372; [22 69, 05, 05]
-D800 DD63; [22 6B, 05, 05]
+1373; [22 6B, 05, 05]
-D800 DD64; [22 6D, 05, 05]
+1374; [22 6D, 05, 05]
-D800 DD65; [22 6F, 05, 05]
+1375; [22 6F, 05, 05]
-D800 DD66; [22 71, 05, 05]
+1376; [22 71, 05, 05]
-D800 DD67; [22 73, 05, 05]
+1377; [22 73, 05, 05]
-D800 DD68; [22 75, 05, 05]
+1378; [22 75, 05, 05]
-D800 DD69; [22 77, 05, 05]
+1379; [22 77, 05, 05]
-D800 DD6A; [22 79, 05, 05]
+137A; [22 79, 05, 05]
-D800 DD6B; [22 7B, 05, 05]
+137B; [22 7B, 05, 05]
-D800 DD6C; [22 7D, 05, 05]
+137C; [22 7D, 05, 05]
-D800 DD6D; [22 7F, 05, 05]
+2180; [22 7F, 05, 05]
-D800 DD6E; [22 81, 05, 05]
+2181; [22 81, 05, 05]
-D800 DD6F; [22 83, 05, 05]
+2182; [22 83, 05, 05]
-D800 DD70; [22 85, 05, 05]
+2CFD; [22 85, 05, 05]
-D800 DD71; [22 87, 05, 05]
+D800 DF22; [22 87, 05, 05]
-D800 DD72; [22 89, 05, 05]
+D800 DF23; [22 89, 05, 05]
-D800 DD74; [22 8B, 05, 05]
+D800 DD10; [22 8B, 05, 05]
-D800 DD75; [22 8D, 05, 05]
+D800 DD11; [22 8D, 05, 05]
-D800 DD76; [22 8F, 05, 05]
+D800 DD12; [22 8F, 05, 05]
-D800 DD77; [22 91, 05, 05]
+D800 DD13; [22 91, 05, 05]
-D800 DD78; [22 93, 05, 05]
+D800 DD14; [22 93, 05, 05]
-D800 DFD3; [22 95, 05, 05]
+D800 DD15; [22 95, 05, 05]
-D800 DFD4; [22 97, 05, 05]
+D800 DD16; [22 97, 05, 05]
-D800 DFD5; [22 99, 05, 05]
+D800 DD17; [22 99, 05, 05]
-D802 DE44; [22 9B, 05, 05]
+D800 DD18; [22 9B, 05, 05]
-D802 DE45; [22 9D, 05, 05]
+D800 DD19; [22 9D, 05, 05]
-D802 DE46; [22 9F, 05, 05]
+D800 DD1A; [22 9F, 05, 05]
-D802 DE47; [22 A1, 05, 05]
+D800 DD1B; [22 A1, 05, 05]
-[variable top = 22A1] # END OF VARIABLE SECTION!!!
+D800 DD1C; [22 A3, 05, 05]
-02D0; [25 20, 05, 05]
+D800 DD1D; [22 A5, 05, 05]
-02D1; [25 22, 05, 05]
+D800 DD1E; [22 A7, 05, 05]
-0E46; [25 24, 05, 05]
+D800 DD1F; [22 A9, 05, 05]
-0EC6; [25 26, 05, 05]
+D800 DD20; [22 AB, 05, 05]
-3005; [25 28, 05, 05]
+D800 DD21; [22 AD, 05, 05]
-303B; [25 2A, 05, 05]
+D800 DD22; [22 AF, 05, 05]
-3031; [25 2C, 05, 05]
-3032; [25 2C, 05, 05][, E0 8D, 05]
+D800 DD23; [22 B1, 05, 05]
-3033; [25 2E, 05, 05]
-3034; [25 2E, 05, 05][, E0 8D, 05]
+D800 DD24; [22 B3, 05, 05]
-3035; [25 30, 05, 05]
+D800 DD25; [22 B5, 05, 05]
-309D; [25 32, 05, 05]
-309E; [25 32, 05, 05][, E0 8D, 05]
+D800 DD26; [22 B7, 05, 05]
-30FC; [25 34, 05, 05]
-FF70; [25 34, 05, A3]
+D800 DD27; [22 B9, 05, 05]
-30FD; [25 36, 05, 05]
-30FE; [25 36, 05, 05][, E0 8D, 05]
+D800 DD28; [22 BB, 05, 05]
-00A4; [25 38, 05, 05]
+D800 DD29; [22 BD, 05, 05]
-00A2; [25 3A, 05, 05]
-FFE0; [25 3A, 05, 07]
+D800 DD2A; [22 BF, 05, 05]
-0024; [25 3C, 05, 05]
-FF04; [25 3C, 05, 07]
-FE69; [25 3C, 05, 1D]
+D800 DD2B; [22 C1, 05, 05]
-00A3; [25 3E, 05, 05]
-FFE1; [25 3E, 05, 07]
+D800 DD2C; [22 C3, 05, 05]
-00A5; [25 40, 05, 05]
-FFE5; [25 40, 05, 07]
+D800 DD2D; [22 C5, 05, 05]
-060B; [25 42, 05, 05]
+D800 DD2E; [22 C7, 05, 05]
-09F2; [25 44, 05, 05]
+D800 DD2F; [22 C9, 05, 05]
-09F3; [25 46, 05, 05]
+D800 DD30; [22 CB, 05, 05]
-0AF1; [25 48, 05, 05]
+D800 DD31; [22 CD, 05, 05]
-0BF9; [25 4A, 05, 05]
+D800 DD32; [22 CF, 05, 05]
-0E3F; [25 4C, 05, 05]
+D800 DD33; [22 D1, 05, 05]
-17DB; [25 4E, 05, 05]
+D800 DD40; [22 D3, 05, 05]
-20A0; [25 50, 05, 05]
+D800 DD41; [22 D5, 05, 05]
-20A1; [25 52, 05, 05]
+D800 DD44; [22 D7, 05, 05]
-20A2; [25 54, 05, 05]
+D800 DD45; [22 D9, 05, 05]
-20A3; [25 56, 05, 05]
+D800 DD46; [22 DB, 05, 05]
-20A4; [25 58, 05, 05]
+D800 DD47; [22 DD, 05, 05]
-20A5; [25 5A, 05, 05]
+D800 DD49; [22 DF, 05, 05]
-20A6; [25 5C, 05, 05]
+D800 DD4A; [22 E1, 05, 05]
-20A7; [25 5E, 05, 05]
+D800 DD4B; [22 E3, 05, 05]
-20A9; [25 60, 05, 05]
-FFE6; [25 60, 05, 07]
+D800 DD4C; [22 E5, 05, 05]
-20AA; [25 62, 05, 05]
+D800 DD4D; [22 E7, 05, 05]
-20AB; [25 64, 05, 05]
+D800 DD4E; [22 E9, 05, 05]
-20AC; [25 66, 05, 05]
+D800 DD50; [22 EB, 05, 05]
-20AD; [25 68, 05, 05]
+D800 DD51; [22 ED, 05, 05]
-20AE; [25 6A, 05, 05]
+D800 DD52; [22 EF, 05, 05]
-20AF; [25 6C, 05, 05]
+D800 DD53; [22 F1, 05, 05]
-20B0; [25 6E, 05, 05]
+D800 DD54; [22 F3, 05, 05]
-20B1; [25 70, 05, 05]
+D800 DD55; [22 F5, 05, 05]
-20B2; [25 72, 05, 05]
-
-20B3; [25 74, 05, 05]
-
-20B4; [25 76, 05, 05]
-
-20B5; [25 78, 05, 05]
-
-0030; [25 7A, 05, 05]
-FF10; [25 7A, 05, 07]
-D835 DFCE; [25 7A, 05, 0B]
-D835 DFD8; [25 7A, 05, 0B]
-D835 DFE2; [25 7A, 05, 0B]
-D835 DFEC; [25 7A, 05, 0B]
-D835 DFF6; [25 7A, 05, 0B]
-24EA; [25 7A, 05, 0D]
-24FF; [25 7A, 05, 0D]
-2070; [25 7A, 05, 27]
-2080; [25 7A, 05, 29]
-0660; [25 7A, 05, 05][, E2 C5, 05]
-06F0; [25 7A, 05, 05][, E2 D5, 05]
-D801 DCA0; [25 7A, 05, 05][, E2 F5, 05]
-0966; [25 7A, 05, 05][, E3 09, 05]
-09E6; [25 7A, 05, 05][, E3 19, 05]
-0A66; [25 7A, 05, 05][, E3 39, 05]
-0AE6; [25 7A, 05, 05][, E3 49, 05]
-0B66; [25 7A, 05, 05][, E3 59, 05]
-0BE6; [25 7A, 05, 05][, E3 69, 05]
-0C66; [25 7A, 05, 05][, E3 79, 05]
-0CE6; [25 7A, 05, 05][, E3 89, 05]
-0D66; [25 7A, 05, 05][, E3 99, 05]
-1946; [25 7A, 05, 05][, E3 A9, 05]
-19D0; [25 7A, 05, 05][, E3 B9, 05]
-0E50; [25 7A, 05, 05][, E3 C9, 05]
-0ED0; [25 7A, 05, 05][, E3 D9, 05]
-0F20; [25 7A, 05, 05][, E3 E9, 05]
-0F33; [25 7A, 05, 09][, E3 E9, 09]
-1040; [25 7A, 05, 05][, E3 F9, 05]
-17E0; [25 7A, 05, 05][, E4 0D, 05]
-17F0; [25 7A, 05, 05][, E4 1D, 05]
-1810; [25 7A, 05, 05][, E4 2D, 05]
-3007; [25 7A, 05, 05][, E4 3D, 05]
-D800 DD8A; [25 7A, 05, 05][, E4 5D, 05]
-3358; [25 7A, 05, 09][E0 4B 22, 05, 09]
-
-0031; [25 7C, 05, 05]
-FF11; [25 7C, 05, 07]
-D835 DFCF; [25 7C, 05, 0B]
-D835 DFD9; [25 7C, 05, 0B]
-D835 DFE3; [25 7C, 05, 0B]
-D835 DFED; [25 7C, 05, 0B]
-D835 DFF7; [25 7C, 05, 0B]
-2460; [25 7C, 05, 0D]
-24F5; [25 7C, 05, 0D]
-2776; [25 7C, 05, 0D]
-2780; [25 7C, 05, 0D]
-278A; [25 7C, 05, 0D]
-00B9; [25 7C, 05, 27]
-2081; [25 7C, 05, 29]
-0661; [25 7C, 05, 05][, E2 C5, 05]
-06F1; [25 7C, 05, 05][, E2 D5, 05]
-1369; [25 7C, 05, 05][, E2 E5, 05]
-D801 DCA1; [25 7C, 05, 05][, E2 F5, 05]
-0967; [25 7C, 05, 05][, E3 09, 05]
-09E7; [25 7C, 05, 05][, E3 19, 05]
-09F4; [25 7C, 05, 05][, E3 29, 05]
-0A67; [25 7C, 05, 05][, E3 39, 05]
-0AE7; [25 7C, 05, 05][, E3 49, 05]
-0B67; [25 7C, 05, 05][, E3 59, 05]
-0BE7; [25 7C, 05, 05][, E3 69, 05]
-0C67; [25 7C, 05, 05][, E3 79, 05]
-0CE7; [25 7C, 05, 05][, E3 89, 05]
-0D67; [25 7C, 05, 05][, E3 99, 05]
-1947; [25 7C, 05, 05][, E3 A9, 05]
-19D1; [25 7C, 05, 05][, E3 B9, 05]
-0E51; [25 7C, 05, 05][, E3 C9, 05]
-0ED1; [25 7C, 05, 05][, E3 D9, 05]
-0F21; [25 7C, 05, 05][, E3 E9, 05]
-0F2A; [25 7C, 05, 09][, E3 E9, 09]
-1041; [25 7C, 05, 05][, E3 F9, 05]
-17E1; [25 7C, 05, 05][, E4 0D, 05]
-17F1; [25 7C, 05, 05][, E4 1D, 05]
-1811; [25 7C, 05, 05][, E4 2D, 05]
-3021; [25 7C, 05, 05][, E4 3D, 05]
-D800 DD07; [25 7C, 05, 05][, E4 4D, 05]
-D800 DD42; [25 7C, 05, 05][, E4 5D, 05]
-D800 DD58; [25 7C, 05, 05][, E4 5D, 05]
-D800 DD59; [25 7C, 05, 05][, E4 5D, 05]
-D800 DD5A; [25 7C, 05, 05][, E4 5D, 05]
-D800 DF20; [25 7C, 05, 05][, E4 6D, 05]
-D800 DFD1; [25 7C, 05, 05][, E4 7D, 05]
-D802 DE40; [25 7C, 05, 05][, E4 8D, 05]
-2488; [25 7C, 05, 09][08 13, 05, 09]
-215F; [25 7C, 05, 3B][09 33, 05, 3B]
-00BD; [25 7C, 05, 3B][09 33, 05, 3B][25 7E, 05, 3D]
-2153; [25 7C, 05, 3B][09 33, 05, 3B][25 80, 05, 3D]
-00BC; [25 7C, 05, 3B][09 33, 05, 3B][25 82, 05, 3D]
-2155; [25 7C, 05, 3B][09 33, 05, 3B][25 84, 05, 3D]
-2159; [25 7C, 05, 3B][09 33, 05, 3B][25 86, 05, 3D]
-215B; [25 7C, 05, 3B][09 33, 05, 3B][25 8A, 05, 3D]
-2469; [25 7C, 05, 0D][25 7A, 05, 0D]
-24FE; [25 7C, 05, 0D][25 7A, 05, 0D]
-277F; [25 7C, 05, 0D][25 7A, 05, 0D]
-2789; [25 7C, 05, 0D][25 7A, 05, 0D]
-2793; [25 7C, 05, 0D][25 7A, 05, 0D]
-2491; [25 7C, 05, 09][25 7A, 05, 09][08 13, 05, 3D]
-33E9; [25 7C, 05, 09][25 7A, 05, 09][E0 34 F0, 05, 3D]
-32C9; [25 7C, 05, 09][25 7A, 05, 09][E0 37 48, 05, 3D]
-3362; [25 7C, 05, 09][25 7A, 05, 09][E0 4B 22, 05, 3D]
-246A; [25 7C, 05, 0D][25 7C, 05, 0D]
-24EB; [25 7C, 05, 0D][25 7C, 05, 0D]
-2492; [25 7C, 05, 09][25 7C, 05, 09][08 13, 05, 3D]
-33EA; [25 7C, 05, 09][25 7C, 05, 09][E0 34 F0, 05, 3D]
-32CA; [25 7C, 05, 09][25 7C, 05, 09][E0 37 48, 05, 3D]
-3363; [25 7C, 05, 09][25 7C, 05, 09][E0 4B 22, 05, 3D]
-246B; [25 7C, 05, 0D][25 7E, 05, 0D]
-24EC; [25 7C, 05, 0D][25 7E, 05, 0D]
-2493; [25 7C, 05, 09][25 7E, 05, 09][08 13, 05, 3D]
-33EB; [25 7C, 05, 09][25 7E, 05, 09][E0 34 F0, 05, 3D]
-32CB; [25 7C, 05, 09][25 7E, 05, 09][E0 37 48, 05, 3D]
-3364; [25 7C, 05, 09][25 7E, 05, 09][E0 4B 22, 05, 3D]
-246C; [25 7C, 05, 0D][25 80, 05, 0D]
-24ED; [25 7C, 05, 0D][25 80, 05, 0D]
-2494; [25 7C, 05, 09][25 80, 05, 09][08 13, 05, 3D]
-33EC; [25 7C, 05, 09][25 80, 05, 09][E0 34 F0, 05, 3D]
-3365; [25 7C, 05, 09][25 80, 05, 09][E0 4B 22, 05, 3D]
-246D; [25 7C, 05, 0D][25 82, 05, 0D]
-24EE; [25 7C, 05, 0D][25 82, 05, 0D]
-2495; [25 7C, 05, 09][25 82, 05, 09][08 13, 05, 3D]
-33ED; [25 7C, 05, 09][25 82, 05, 09][E0 34 F0, 05, 3D]
-3366; [25 7C, 05, 09][25 82, 05, 09][E0 4B 22, 05, 3D]
-246E; [25 7C, 05, 0D][25 84, 05, 0D]
-24EF; [25 7C, 05, 0D][25 84, 05, 0D]
-2496; [25 7C, 05, 09][25 84, 05, 09][08 13, 05, 3D]
-33EE; [25 7C, 05, 09][25 84, 05, 09][E0 34 F0, 05, 3D]
-3367; [25 7C, 05, 09][25 84, 05, 09][E0 4B 22, 05, 3D]
-246F; [25 7C, 05, 0D][25 86, 05, 0D]
-24F0; [25 7C, 05, 0D][25 86, 05, 0D]
-2497; [25 7C, 05, 09][25 86, 05, 09][08 13, 05, 3D]
-33EF; [25 7C, 05, 09][25 86, 05, 09][E0 34 F0, 05, 3D]
-3368; [25 7C, 05, 09][25 86, 05, 09][E0 4B 22, 05, 3D]
-2470; [25 7C, 05, 0D][25 88, 05, 0D]
-24F1; [25 7C, 05, 0D][25 88, 05, 0D]
-2498; [25 7C, 05, 09][25 88, 05, 09][08 13, 05, 3D]
-33F0; [25 7C, 05, 09][25 88, 05, 09][E0 34 F0, 05, 3D]
-3369; [25 7C, 05, 09][25 88, 05, 09][E0 4B 22, 05, 3D]
-2471; [25 7C, 05, 0D][25 8A, 05, 0D]
-24F2; [25 7C, 05, 0D][25 8A, 05, 0D]
-2499; [25 7C, 05, 09][25 8A, 05, 09][08 13, 05, 3D]
-33F1; [25 7C, 05, 09][25 8A, 05, 09][E0 34 F0, 05, 3D]
-336A; [25 7C, 05, 09][25 8A, 05, 09][E0 4B 22, 05, 3D]
-2472; [25 7C, 05, 0D][25 8C, 05, 0D]
-24F3; [25 7C, 05, 0D][25 8C, 05, 0D]
-249A; [25 7C, 05, 09][25 8C, 05, 09][08 13, 05, 3D]
-33F2; [25 7C, 05, 09][25 8C, 05, 09][E0 34 F0, 05, 3D]
-336B; [25 7C, 05, 09][25 8C, 05, 09][E0 4B 22, 05, 3D]
-33E0; [25 7C, 05, 09][E0 34 F0, 05, 09]
-32C0; [25 7C, 05, 09][E0 37 48, 05, 09]
-3359; [25 7C, 05, 09][E0 4B 22, 05, 09]
-
-0032; [25 7E, 05, 05]
-FF12; [25 7E, 05, 07]
-D835 DFD0; [25 7E, 05, 0B]
-D835 DFDA; [25 7E, 05, 0B]
-D835 DFE4; [25 7E, 05, 0B]
-D835 DFEE; [25 7E, 05, 0B]
-D835 DFF8; [25 7E, 05, 0B]
-2461; [25 7E, 05, 0D]
-24F6; [25 7E, 05, 0D]
-2777; [25 7E, 05, 0D]
-2781; [25 7E, 05, 0D]
-278B; [25 7E, 05, 0D]
-00B2; [25 7E, 05, 27]
-2082; [25 7E, 05, 29]
-0662; [25 7E, 05, 05][, E2 C5, 05]
-06F2; [25 7E, 05, 05][, E2 D5, 05]
-136A; [25 7E, 05, 05][, E2 E5, 05]
-D801 DCA2; [25 7E, 05, 05][, E2 F5, 05]
-0968; [25 7E, 05, 05][, E3 09, 05]
-09E8; [25 7E, 05, 05][, E3 19, 05]
-09F5; [25 7E, 05, 05][, E3 29, 05]
-0A68; [25 7E, 05, 05][, E3 39, 05]
-0AE8; [25 7E, 05, 05][, E3 49, 05]
-0B68; [25 7E, 05, 05][, E3 59, 05]
-0BE8; [25 7E, 05, 05][, E3 69, 05]
-0C68; [25 7E, 05, 05][, E3 79, 05]
-0CE8; [25 7E, 05, 05][, E3 89, 05]
-0D68; [25 7E, 05, 05][, E3 99, 05]
-1948; [25 7E, 05, 05][, E3 A9, 05]
-19D2; [25 7E, 05, 05][, E3 B9, 05]
-0E52; [25 7E, 05, 05][, E3 C9, 05]
-0ED2; [25 7E, 05, 05][, E3 D9, 05]
-0F22; [25 7E, 05, 05][, E3 E9, 05]
-0F2B; [25 7E, 05, 09][, E3 E9, 09]
-1042; [25 7E, 05, 05][, E3 F9, 05]
-17E2; [25 7E, 05, 05][, E4 0D, 05]
-17F2; [25 7E, 05, 05][, E4 1D, 05]
-1812; [25 7E, 05, 05][, E4 2D, 05]
-3022; [25 7E, 05, 05][, E4 3D, 05]
-D800 DD08; [25 7E, 05, 05][, E4 4D, 05]
-D800 DD5B; [25 7E, 05, 05][, E4 5D, 05]
-D800 DD5C; [25 7E, 05, 05][, E4 5D, 05]
-D800 DD5D; [25 7E, 05, 05][, E4 5D, 05]
-D800 DD5E; [25 7E, 05, 05][, E4 5D, 05]
-D800 DFD2; [25 7E, 05, 05][, E4 7D, 05]
-D802 DE41; [25 7E, 05, 05][, E4 8D, 05]
-2489; [25 7E, 05, 09][08 13, 05, 09]
-2154; [25 7E, 05, 3B][09 33, 05, 3B][25 80, 05, 3D]
-2156; [25 7E, 05, 3B][09 33, 05, 3B][25 84, 05, 3D]
-2473; [25 7E, 05, 0D][25 7A, 05, 0D]
-24F4; [25 7E, 05, 0D][25 7A, 05, 0D]
-249B; [25 7E, 05, 09][25 7A, 05, 09][08 13, 05, 3D]
-33F3; [25 7E, 05, 09][25 7A, 05, 09][E0 34 F0, 05, 3D]
-336C; [25 7E, 05, 09][25 7A, 05, 09][E0 4B 22, 05, 3D]
-3251; [25 7E, 05, 0D][25 7C, 05, 0D]
-33F4; [25 7E, 05, 09][25 7C, 05, 09][E0 34 F0, 05, 3D]
-336D; [25 7E, 05, 09][25 7C, 05, 09][E0 4B 22, 05, 3D]
-3252; [25 7E, 05, 0D][25 7E, 05, 0D]
-33F5; [25 7E, 05, 09][25 7E, 05, 09][E0 34 F0, 05, 3D]
-336E; [25 7E, 05, 09][25 7E, 05, 09][E0 4B 22, 05, 3D]
-3253; [25 7E, 05, 0D][25 80, 05, 0D]
-33F6; [25 7E, 05, 09][25 80, 05, 09][E0 34 F0, 05, 3D]
-336F; [25 7E, 05, 09][25 80, 05, 09][E0 4B 22, 05, 3D]
-3254; [25 7E, 05, 0D][25 82, 05, 0D]
-33F7; [25 7E, 05, 09][25 82, 05, 09][E0 34 F0, 05, 3D]
-3370; [25 7E, 05, 09][25 82, 05, 09][E0 4B 22, 05, 3D]
-3255; [25 7E, 05, 0D][25 84, 05, 0D]
-33F8; [25 7E, 05, 09][25 84, 05, 09][E0 34 F0, 05, 3D]
-3256; [25 7E, 05, 0D][25 86, 05, 0D]
-33F9; [25 7E, 05, 09][25 86, 05, 09][E0 34 F0, 05, 3D]
-3257; [25 7E, 05, 0D][25 88, 05, 0D]
-33FA; [25 7E, 05, 09][25 88, 05, 09][E0 34 F0, 05, 3D]
-3258; [25 7E, 05, 0D][25 8A, 05, 0D]
-33FB; [25 7E, 05, 09][25 8A, 05, 09][E0 34 F0, 05, 3D]
-3259; [25 7E, 05, 0D][25 8C, 05, 0D]
-33FC; [25 7E, 05, 09][25 8C, 05, 09][E0 34 F0, 05, 3D]
-33E1; [25 7E, 05, 09][E0 34 F0, 05, 09]
-32C1; [25 7E, 05, 09][E0 37 48, 05, 09]
-335A; [25 7E, 05, 09][E0 4B 22, 05, 09]
-
-0033; [25 80, 05, 05]
-FF13; [25 80, 05, 07]
-D835 DFD1; [25 80, 05, 0B]
-D835 DFDB; [25 80, 05, 0B]
-D835 DFE5; [25 80, 05, 0B]
-D835 DFEF; [25 80, 05, 0B]
-D835 DFF9; [25 80, 05, 0B]
-2462; [25 80, 05, 0D]
-24F7; [25 80, 05, 0D]
-2778; [25 80, 05, 0D]
-2782; [25 80, 05, 0D]
-278C; [25 80, 05, 0D]
-00B3; [25 80, 05, 27]
-2083; [25 80, 05, 29]
-0663; [25 80, 05, 05][, E2 C5, 05]
-06F3; [25 80, 05, 05][, E2 D5, 05]
-136B; [25 80, 05, 05][, E2 E5, 05]
-D801 DCA3; [25 80, 05, 05][, E2 F5, 05]
-0969; [25 80, 05, 05][, E3 09, 05]
-09E9; [25 80, 05, 05][, E3 19, 05]
-09F6; [25 80, 05, 05][, E3 29, 05]
-0A69; [25 80, 05, 05][, E3 39, 05]
-0AE9; [25 80, 05, 05][, E3 49, 05]
-0B69; [25 80, 05, 05][, E3 59, 05]
-0BE9; [25 80, 05, 05][, E3 69, 05]
-0C69; [25 80, 05, 05][, E3 79, 05]
-0CE9; [25 80, 05, 05][, E3 89, 05]
-0D69; [25 80, 05, 05][, E3 99, 05]
-1949; [25 80, 05, 05][, E3 A9, 05]
-19D3; [25 80, 05, 05][, E3 B9, 05]
-0E53; [25 80, 05, 05][, E3 C9, 05]
-0ED3; [25 80, 05, 05][, E3 D9, 05]
-0F23; [25 80, 05, 05][, E3 E9, 05]
-0F2C; [25 80, 05, 09][, E3 E9, 09]
-1043; [25 80, 05, 05][, E3 F9, 05]
-17E3; [25 80, 05, 05][, E4 0D, 05]
-17F3; [25 80, 05, 05][, E4 1D, 05]
-1813; [25 80, 05, 05][, E4 2D, 05]
-3023; [25 80, 05, 05][, E4 3D, 05]
-D800 DD09; [25 80, 05, 05][, E4 4D, 05]
-D802 DE42; [25 80, 05, 05][, E4 8D, 05]
-248A; [25 80, 05, 09][08 13, 05, 09]
-00BE; [25 80, 05, 3B][09 33, 05, 3B][25 82, 05, 3D]
-2157; [25 80, 05, 3B][09 33, 05, 3B][25 84, 05, 3D]
-215C; [25 80, 05, 3B][09 33, 05, 3B][25 8A, 05, 3D]
-325A; [25 80, 05, 0D][25 7A, 05, 0D]
-33FD; [25 80, 05, 09][25 7A, 05, 09][E0 34 F0, 05, 3D]
-325B; [25 80, 05, 0D][25 7C, 05, 0D]
-33FE; [25 80, 05, 09][25 7C, 05, 09][E0 34 F0, 05, 3D]
-325C; [25 80, 05, 0D][25 7E, 05, 0D]
-325D; [25 80, 05, 0D][25 80, 05, 0D]
-325E; [25 80, 05, 0D][25 82, 05, 0D]
-325F; [25 80, 05, 0D][25 84, 05, 0D]
-32B1; [25 80, 05, 0D][25 86, 05, 0D]
-32B2; [25 80, 05, 0D][25 88, 05, 0D]
-32B3; [25 80, 05, 0D][25 8A, 05, 0D]
-32B4; [25 80, 05, 0D][25 8C, 05, 0D]
-33E2; [25 80, 05, 09][E0 34 F0, 05, 09]
-32C2; [25 80, 05, 09][E0 37 48, 05, 09]
-335B; [25 80, 05, 09][E0 4B 22, 05, 09]
-
-0034; [25 82, 05, 05]
-FF14; [25 82, 05, 07]
-D835 DFD2; [25 82, 05, 0B]
-D835 DFDC; [25 82, 05, 0B]
-D835 DFE6; [25 82, 05, 0B]
-D835 DFF0; [25 82, 05, 0B]
-D835 DFFA; [25 82, 05, 0B]
-2463; [25 82, 05, 0D]
-24F8; [25 82, 05, 0D]
-2779; [25 82, 05, 0D]
-2783; [25 82, 05, 0D]
-278D; [25 82, 05, 0D]
-2074; [25 82, 05, 27]
-2084; [25 82, 05, 29]
-0664; [25 82, 05, 05][, E2 C5, 05]
-06F4; [25 82, 05, 05][, E2 D5, 05]
-136C; [25 82, 05, 05][, E2 E5, 05]
-D801 DCA4; [25 82, 05, 05][, E2 F5, 05]
-096A; [25 82, 05, 05][, E3 09, 05]
-09EA; [25 82, 05, 05][, E3 19, 05]
-09F7; [25 82, 05, 05][, E3 29, 05]
-0A6A; [25 82, 05, 05][, E3 39, 05]
-0AEA; [25 82, 05, 05][, E3 49, 05]
-0B6A; [25 82, 05, 05][, E3 59, 05]
-0BEA; [25 82, 05, 05][, E3 69, 05]
-0C6A; [25 82, 05, 05][, E3 79, 05]
-0CEA; [25 82, 05, 05][, E3 89, 05]
-0D6A; [25 82, 05, 05][, E3 99, 05]
-194A; [25 82, 05, 05][, E3 A9, 05]
-19D4; [25 82, 05, 05][, E3 B9, 05]
-0E54; [25 82, 05, 05][, E3 C9, 05]
-0ED4; [25 82, 05, 05][, E3 D9, 05]
-0F24; [25 82, 05, 05][, E3 E9, 05]
-0F2D; [25 82, 05, 09][, E3 E9, 09]
-1044; [25 82, 05, 05][, E3 F9, 05]
-17E4; [25 82, 05, 05][, E4 0D, 05]
-17F4; [25 82, 05, 05][, E4 1D, 05]
-1814; [25 82, 05, 05][, E4 2D, 05]
-3024; [25 82, 05, 05][, E4 3D, 05]
-D800 DD0A; [25 82, 05, 05][, E4 4D, 05]
-D802 DE43; [25 82, 05, 05][, E4 8D, 05]
-248B; [25 82, 05, 09][08 13, 05, 09]
-2158; [25 82, 05, 3B][09 33, 05, 3B][25 84, 05, 3D]
-32B5; [25 82, 05, 0D][25 7A, 05, 0D]
-32B6; [25 82, 05, 0D][25 7C, 05, 0D]
-32B7; [25 82, 05, 0D][25 7E, 05, 0D]
-32B8; [25 82, 05, 0D][25 80, 05, 0D]
-32B9; [25 82, 05, 0D][25 82, 05, 0D]
-32BA; [25 82, 05, 0D][25 84, 05, 0D]
-32BB; [25 82, 05, 0D][25 86, 05, 0D]
-32BC; [25 82, 05, 0D][25 88, 05, 0D]
-32BD; [25 82, 05, 0D][25 8A, 05, 0D]
-32BE; [25 82, 05, 0D][25 8C, 05, 0D]
-33E3; [25 82, 05, 09][E0 34 F0, 05, 09]
-32C3; [25 82, 05, 09][E0 37 48, 05, 09]
-335C; [25 82, 05, 09][E0 4B 22, 05, 09]
-
-0035; [25 84, 05, 05]
-FF15; [25 84, 05, 07]
-D835 DFD3; [25 84, 05, 0B]
-D835 DFDD; [25 84, 05, 0B]
-D835 DFE7; [25 84, 05, 0B]
-D835 DFF1; [25 84, 05, 0B]
-D835 DFFB; [25 84, 05, 0B]
-2464; [25 84, 05, 0D]
-24F9; [25 84, 05, 0D]
-277A; [25 84, 05, 0D]
-2784; [25 84, 05, 0D]
-278E; [25 84, 05, 0D]
-2075; [25 84, 05, 27]
-2085; [25 84, 05, 29]
-0665; [25 84, 05, 05][, E2 C5, 05]
-06F5; [25 84, 05, 05][, E2 D5, 05]
-136D; [25 84, 05, 05][, E2 E5, 05]
-D801 DCA5; [25 84, 05, 05][, E2 F5, 05]
-096B; [25 84, 05, 05][, E3 09, 05]
-09EB; [25 84, 05, 05][, E3 19, 05]
-0A6B; [25 84, 05, 05][, E3 39, 05]
-0AEB; [25 84, 05, 05][, E3 49, 05]
-0B6B; [25 84, 05, 05][, E3 59, 05]
-0BEB; [25 84, 05, 05][, E3 69, 05]
-0C6B; [25 84, 05, 05][, E3 79, 05]
-0CEB; [25 84, 05, 05][, E3 89, 05]
-0D6B; [25 84, 05, 05][, E3 99, 05]
-194B; [25 84, 05, 05][, E3 A9, 05]
-19D5; [25 84, 05, 05][, E3 B9, 05]
-0E55; [25 84, 05, 05][, E3 C9, 05]
-0ED5; [25 84, 05, 05][, E3 D9, 05]
-0F25; [25 84, 05, 05][, E3 E9, 05]
-0F2E; [25 84, 05, 09][, E3 E9, 09]
-1045; [25 84, 05, 05][, E3 F9, 05]
-17E5; [25 84, 05, 05][, E4 0D, 05]
-17F5; [25 84, 05, 05][, E4 1D, 05]
-1815; [25 84, 05, 05][, E4 2D, 05]
-3025; [25 84, 05, 05][, E4 3D, 05]
-D800 DD0B; [25 84, 05, 05][, E4 4D, 05]
-D800 DD43; [25 84, 05, 05][, E4 5D, 05]
-D800 DD48; [25 84, 05, 05][, E4 5D, 05]
-D800 DD4F; [25 84, 05, 05][, E4 5D, 05]
-D800 DD5F; [25 84, 05, 05][, E4 5D, 05]
-D800 DD73; [25 84, 05, 05][, E4 5D, 05]
-D800 DF21; [25 84, 05, 05][, E4 6D, 05]
-248C; [25 84, 05, 09][08 13, 05, 09]
-215A; [25 84, 05, 3B][09 33, 05, 3B][25 86, 05, 3D]
-215D; [25 84, 05, 3B][09 33, 05, 3B][25 8A, 05, 3D]
-32BF; [25 84, 05, 0D][25 7A, 05, 0D]
-33E4; [25 84, 05, 09][E0 34 F0, 05, 09]
-32C4; [25 84, 05, 09][E0 37 48, 05, 09]
-335D; [25 84, 05, 09][E0 4B 22, 05, 09]
-
-0036; [25 86, 05, 05]
-FF16; [25 86, 05, 07]
-D835 DFD4; [25 86, 05, 0B]
-D835 DFDE; [25 86, 05, 0B]
-D835 DFE8; [25 86, 05, 0B]
-D835 DFF2; [25 86, 05, 0B]
-D835 DFFC; [25 86, 05, 0B]
-2465; [25 86, 05, 0D]
-24FA; [25 86, 05, 0D]
-277B; [25 86, 05, 0D]
-2785; [25 86, 05, 0D]
-278F; [25 86, 05, 0D]
-2076; [25 86, 05, 27]
-2086; [25 86, 05, 29]
-0666; [25 86, 05, 05][, E2 C5, 05]
-06F6; [25 86, 05, 05][, E2 D5, 05]
-136E; [25 86, 05, 05][, E2 E5, 05]
-D801 DCA6; [25 86, 05, 05][, E2 F5, 05]
-096C; [25 86, 05, 05][, E3 09, 05]
-09EC; [25 86, 05, 05][, E3 19, 05]
-0A6C; [25 86, 05, 05][, E3 39, 05]
-0AEC; [25 86, 05, 05][, E3 49, 05]
-0B6C; [25 86, 05, 05][, E3 59, 05]
-0BEC; [25 86, 05, 05][, E3 69, 05]
-0C6C; [25 86, 05, 05][, E3 79, 05]
-0CEC; [25 86, 05, 05][, E3 89, 05]
-0D6C; [25 86, 05, 05][, E3 99, 05]
-194C; [25 86, 05, 05][, E3 A9, 05]
-19D6; [25 86, 05, 05][, E3 B9, 05]
-0E56; [25 86, 05, 05][, E3 C9, 05]
-0ED6; [25 86, 05, 05][, E3 D9, 05]
-0F26; [25 86, 05, 05][, E3 E9, 05]
-0F2F; [25 86, 05, 09][, E3 E9, 09]
-1046; [25 86, 05, 05][, E3 F9, 05]
-17E6; [25 86, 05, 05][, E4 0D, 05]
-17F6; [25 86, 05, 05][, E4 1D, 05]
-1816; [25 86, 05, 05][, E4 2D, 05]
-3026; [25 86, 05, 05][, E4 3D, 05]
-D800 DD0C; [25 86, 05, 05][, E4 4D, 05]
-248D; [25 86, 05, 09][08 13, 05, 09]
-33E5; [25 86, 05, 09][E0 34 F0, 05, 09]
-32C5; [25 86, 05, 09][E0 37 48, 05, 09]
-335E; [25 86, 05, 09][E0 4B 22, 05, 09]
-
-0037; [25 88, 05, 05]
-FF17; [25 88, 05, 07]
-D835 DFD5; [25 88, 05, 0B]
-D835 DFDF; [25 88, 05, 0B]
-D835 DFE9; [25 88, 05, 0B]
-D835 DFF3; [25 88, 05, 0B]
-D835 DFFD; [25 88, 05, 0B]
-2466; [25 88, 05, 0D]
-24FB; [25 88, 05, 0D]
-277C; [25 88, 05, 0D]
-2786; [25 88, 05, 0D]
-2790; [25 88, 05, 0D]
-2077; [25 88, 05, 27]
-2087; [25 88, 05, 29]
-0667; [25 88, 05, 05][, E2 C5, 05]
-06F7; [25 88, 05, 05][, E2 D5, 05]
-136F; [25 88, 05, 05][, E2 E5, 05]
-D801 DCA7; [25 88, 05, 05][, E2 F5, 05]
-096D; [25 88, 05, 05][, E3 09, 05]
-09ED; [25 88, 05, 05][, E3 19, 05]
-0A6D; [25 88, 05, 05][, E3 39, 05]
-0AED; [25 88, 05, 05][, E3 49, 05]
-0B6D; [25 88, 05, 05][, E3 59, 05]
-0BED; [25 88, 05, 05][, E3 69, 05]
-0C6D; [25 88, 05, 05][, E3 79, 05]
-0CED; [25 88, 05, 05][, E3 89, 05]
-0D6D; [25 88, 05, 05][, E3 99, 05]
-194D; [25 88, 05, 05][, E3 A9, 05]
-19D7; [25 88, 05, 05][, E3 B9, 05]
-0E57; [25 88, 05, 05][, E3 C9, 05]
-0ED7; [25 88, 05, 05][, E3 D9, 05]
-0F27; [25 88, 05, 05][, E3 E9, 05]
-0F30; [25 88, 05, 09][, E3 E9, 09]
-1047; [25 88, 05, 05][, E3 F9, 05]
-17E7; [25 88, 05, 05][, E4 0D, 05]
-17F7; [25 88, 05, 05][, E4 1D, 05]
-1817; [25 88, 05, 05][, E4 2D, 05]
-3027; [25 88, 05, 05][, E4 3D, 05]
-D800 DD0D; [25 88, 05, 05][, E4 4D, 05]
-248E; [25 88, 05, 09][08 13, 05, 09]
-215E; [25 88, 05, 3B][09 33, 05, 3B][25 8A, 05, 3D]
-33E6; [25 88, 05, 09][E0 34 F0, 05, 09]
-32C6; [25 88, 05, 09][E0 37 48, 05, 09]
-335F; [25 88, 05, 09][E0 4B 22, 05, 09]
-
-0038; [25 8A, 05, 05]
-FF18; [25 8A, 05, 07]
-D835 DFD6; [25 8A, 05, 0B]
-D835 DFE0; [25 8A, 05, 0B]
-D835 DFEA; [25 8A, 05, 0B]
-D835 DFF4; [25 8A, 05, 0B]
-D835 DFFE; [25 8A, 05, 0B]
-2467; [25 8A, 05, 0D]
-24FC; [25 8A, 05, 0D]
-277D; [25 8A, 05, 0D]
-2787; [25 8A, 05, 0D]
-2791; [25 8A, 05, 0D]
-2078; [25 8A, 05, 27]
-2088; [25 8A, 05, 29]
-0668; [25 8A, 05, 05][, E2 C5, 05]
-06F8; [25 8A, 05, 05][, E2 D5, 05]
-1370; [25 8A, 05, 05][, E2 E5, 05]
-D801 DCA8; [25 8A, 05, 05][, E2 F5, 05]
-096E; [25 8A, 05, 05][, E3 09, 05]
-09EE; [25 8A, 05, 05][, E3 19, 05]
-0A6E; [25 8A, 05, 05][, E3 39, 05]
-0AEE; [25 8A, 05, 05][, E3 49, 05]
-0B6E; [25 8A, 05, 05][, E3 59, 05]
-0BEE; [25 8A, 05, 05][, E3 69, 05]
-0C6E; [25 8A, 05, 05][, E3 79, 05]
-0CEE; [25 8A, 05, 05][, E3 89, 05]
-0D6E; [25 8A, 05, 05][, E3 99, 05]
-194E; [25 8A, 05, 05][, E3 A9, 05]
-19D8; [25 8A, 05, 05][, E3 B9, 05]
-0E58; [25 8A, 05, 05][, E3 C9, 05]
-0ED8; [25 8A, 05, 05][, E3 D9, 05]
-0F28; [25 8A, 05, 05][, E3 E9, 05]
-0F31; [25 8A, 05, 09][, E3 E9, 09]
-1048; [25 8A, 05, 05][, E3 F9, 05]
-17E8; [25 8A, 05, 05][, E4 0D, 05]
-17F8; [25 8A, 05, 05][, E4 1D, 05]
-1818; [25 8A, 05, 05][, E4 2D, 05]
-3028; [25 8A, 05, 05][, E4 3D, 05]
-D800 DD0E; [25 8A, 05, 05][, E4 4D, 05]
-248F; [25 8A, 05, 09][08 13, 05, 09]
-33E7; [25 8A, 05, 09][E0 34 F0, 05, 09]
-32C7; [25 8A, 05, 09][E0 37 48, 05, 09]
-3360; [25 8A, 05, 09][E0 4B 22, 05, 09]
-
-0039; [25 8C, 05, 05]
-FF19; [25 8C, 05, 07]
-D835 DFD7; [25 8C, 05, 0B]
-D835 DFE1; [25 8C, 05, 0B]
-D835 DFEB; [25 8C, 05, 0B]
-D835 DFF5; [25 8C, 05, 0B]
-D835 DFFF; [25 8C, 05, 0B]
-2468; [25 8C, 05, 0D]
-24FD; [25 8C, 05, 0D]
-277E; [25 8C, 05, 0D]
-2788; [25 8C, 05, 0D]
-2792; [25 8C, 05, 0D]
-2079; [25 8C, 05, 27]
-2089; [25 8C, 05, 29]
-0669; [25 8C, 05, 05][, E2 C5, 05]
-06F9; [25 8C, 05, 05][, E2 D5, 05]
-1371; [25 8C, 05, 05][, E2 E5, 05]
-D801 DCA9; [25 8C, 05, 05][, E2 F5, 05]
-096F; [25 8C, 05, 05][, E3 09, 05]
-09EF; [25 8C, 05, 05][, E3 19, 05]
-0A6F; [25 8C, 05, 05][, E3 39, 05]
-0AEF; [25 8C, 05, 05][, E3 49, 05]
-0B6F; [25 8C, 05, 05][, E3 59, 05]
-0BEF; [25 8C, 05, 05][, E3 69, 05]
-0C6F; [25 8C, 05, 05][, E3 79, 05]
-0CEF; [25 8C, 05, 05][, E3 89, 05]
-0D6F; [25 8C, 05, 05][, E3 99, 05]
-194F; [25 8C, 05, 05][, E3 A9, 05]
-19D9; [25 8C, 05, 05][, E3 B9, 05]
-0E59; [25 8C, 05, 05][, E3 C9, 05]
-0ED9; [25 8C, 05, 05][, E3 D9, 05]
-0F29; [25 8C, 05, 05][, E3 E9, 05]
-0F32; [25 8C, 05, 09][, E3 E9, 09]
-1049; [25 8C, 05, 05][, E3 F9, 05]
-17E9; [25 8C, 05, 05][, E4 0D, 05]
-17F9; [25 8C, 05, 05][, E4 1D, 05]
-1819; [25 8C, 05, 05][, E4 2D, 05]
-3029; [25 8C, 05, 05][, E4 3D, 05]
-D800 DD0F; [25 8C, 05, 05][, E4 4D, 05]
-2490; [25 8C, 05, 09][08 13, 05, 09]
-33E8; [25 8C, 05, 09][E0 34 F0, 05, 09]
-32C8; [25 8C, 05, 09][E0 37 48, 05, 09]
-3361; [25 8C, 05, 09][E0 4B 22, 05, 09]
-
-0061; [28, 05, 05]
-FF41; [28, 05, 07]
-0363; [28, 05, 09]
-D835 DC1A; [28, 05, 0B]
-D835 DC4E; [28, 05, 0B]
-D835 DC82; [28, 05, 0B]
-D835 DCB6; [28, 05, 0B]
-D835 DCEA; [28, 05, 0B]
-D835 DD1E; [28, 05, 0B]
-D835 DD52; [28, 05, 0B]
-D835 DD86; [28, 05, 0B]
-D835 DDBA; [28, 05, 0B]
-D835 DDEE; [28, 05, 0B]
-D835 DE22; [28, 05, 0B]
-D835 DE56; [28, 05, 0B]
-D835 DE8A; [28, 05, 0B]
-24D0; [28, 05, 0D]
-0041; [28, 05, 8F]
-FF21; [28, 05, 91]
-D835 DC00; [28, 05, 95]
-D835 DC34; [28, 05, 95]
-D835 DC68; [28, 05, 95]
-D835 DC9C; [28, 05, 95]
-D835 DCD0; [28, 05, 95]
-D835 DD04; [28, 05, 95]
-D835 DD38; [28, 05, 95]
-D835 DD6C; [28, 05, 95]
-D835 DDA0; [28, 05, 95]
-D835 DDD4; [28, 05, 95]
-D835 DE08; [28, 05, 95]
-D835 DE3C; [28, 05, 95]
-D835 DE70; [28, 05, 95]
-24B6; [28, 05, 97]
-00AA; [28, 05, 27]
-1D43; [28, 05, 27]
-2090; [28, 05, 29]
-1D2C; [28, 05, B9]
-00E1; [28, 05, 05][, 8D, 05]
-00C1; [28, 05, 8F][, 8D, 05]
-00E0; [28, 05, 05][, 8F, 05]
-00C0; [28, 05, 8F][, 8F, 05]
-0103; [28, 05, 05][, 91, 05]
-0102; [28, 05, 8F][, 91, 05]
-1EAF; [28, 05, 05][, 91, 05][, 8D, 05]
-1EAE; [28, 05, 8F][, 91, 05][, 8D, 05]
-1EB1; [28, 05, 05][, 91, 05][, 8F, 05]
-1EB0; [28, 05, 8F][, 91, 05][, 8F, 05]
-1EB5; [28, 05, 05][, 91, 05][, A1, 05]
-1EB4; [28, 05, 8F][, 91, 05][, A1, 05]
-1EB3; [28, 05, 05][, 91, 05][, AF, 05]
-1EB2; [28, 05, 8F][, 91, 05][, AF, 05]
-00E2; [28, 05, 05][, 93, 05]
-00C2; [28, 05, 8F][, 93, 05]
-1EA5; [28, 05, 05][, 93, 05][, 8D, 05]
-1EA4; [28, 05, 8F][, 93, 05][, 8D, 05]
-1EA7; [28, 05, 05][, 93, 05][, 8F, 05]
-1EA6; [28, 05, 8F][, 93, 05][, 8F, 05]
-1EAB; [28, 05, 05][, 93, 05][, A1, 05]
-1EAA; [28, 05, 8F][, 93, 05][, A1, 05]
-1EA9; [28, 05, 05][, 93, 05][, AF, 05]
-1EA8; [28, 05, 8F][, 93, 05][, AF, 05]
-01CE; [28, 05, 05][, 97, 05]
-01CD; [28, 05, 8F][, 97, 05]
-00E5; [28, 05, 05][, 99, 05]
-00C5; [28, 05, 8F][, 99, 05]
-212B; [28, 05, 8F][, 99, 05]
-01FB; [28, 05, 05][, 99, 05][, 8D, 05]
-01FA; [28, 05, 8F][, 99, 05][, 8D, 05]
-00E4; [28, 05, 05][, 9D, 05]
-00C4; [28, 05, 8F][, 9D, 05]
-01DF; [28, 05, 05][, 9D, 05][, AB, 05]
-01DE; [28, 05, 8F][, 9D, 05][, AB, 05]
-00E3; [28, 05, 05][, A1, 05]
-00C3; [28, 05, 8F][, A1, 05]
-0227; [28, 05, 05][, A3, 05]
-0226; [28, 05, 8F][, A3, 05]
-01E1; [28, 05, 05][, A3, 05][, AB, 05]
-01E0; [28, 05, 8F][, A3, 05][, AB, 05]
-0105; [28, 05, 05][, A9, 05]
-0104; [28, 05, 8F][, A9, 05]
-0101; [28, 05, 05][, AB, 05]
-0100; [28, 05, 8F][, AB, 05]
-1EA3; [28, 05, 05][, AF, 05]
-1EA2; [28, 05, 8F][, AF, 05]
-0201; [28, 05, 05][, B5, 05]
-0200; [28, 05, 8F][, B5, 05]
-0203; [28, 05, 05][, B9, 05]
-0202; [28, 05, 8F][, B9, 05]
-1EA1; [28, 05, 05][, D0 4D, 05]
-1EA0; [28, 05, 8F][, D0 4D, 05]
-1EB7; [28, 05, 05][, D0 4D, 05][, 91, 05]
-1EB6; [28, 05, 8F][, D0 4D, 05][, 91, 05]
-1EAD; [28, 05, 05][, D0 4D, 05][, 93, 05]
-1EAC; [28, 05, 8F][, D0 4D, 05][, 93, 05]
-1E01; [28, 05, 05][, D0 6D, 05]
-1E00; [28, 05, 8F][, D0 6D, 05]
-33C2; [28, 05, 37][08 13, 05, 37][40, 05, 3D][08 13, 05, 3D]
-2100; [28, 05, 09][09 31, 05, 09][2C, 05, 3D]
-2101; [28, 05, 09][09 31, 05, 09][4C, 05, 3D]
-33DF; [28, 05, B9][0C 97, 05, 37][40, 05, 3D]
-00E6; [28, 05, 09][, E2 75, 09][30, 05, 3D]
-00C6; [28, 05, 93][, E2 75, 09][30, 05, 3D]
-1D2D; [28, 05, 27][, E2 75, 27][30, 05, 3D]
-01FD; [28, 05, 09][, E2 75, 09][30, 05, 3D][, 8D, 05]
-01FC; [28, 05, 93][, E2 75, 09][30, 05, 3D][, 8D, 05]
-01E3; [28, 05, 09][, E2 75, 09][30, 05, 3D][, AB, 05]
-01E2; [28, 05, 93][, E2 75, 09][30, 05, 3D][, AB, 05]
-3373; [28, 05, B9][50, 05, B9]
-1E9A; [28, 05, 09][5B 92, 05, 09]
-
-1D00; [29 60, 05, 05]
-
-023A; [29 62, 05, 8F]
-
-1D8F; [29 64, 05, 05]
-
-1D01; [29 66, 05, 05]
-
-1D02; [29 68, 05, 05]
-1D46; [29 68, 05, 27]
-
-0250; [29 6A, 05, 05]
-1D44; [29 6A, 05, 27]
-
-0251; [29 6C, 05, 05]
-1D45; [29 6C, 05, 27]
-
-1D90; [29 6E, 05, 05]
-
-0252; [29 70, 05, 05]
-1D9B; [29 70, 05, 27]
-
-0062; [2A, 05, 05]
-FF42; [2A, 05, 07]
-D835 DC1B; [2A, 05, 0B]
-D835 DC4F; [2A, 05, 0B]
-D835 DC83; [2A, 05, 0B]
-D835 DCB7; [2A, 05, 0B]
-D835 DCEB; [2A, 05, 0B]
-D835 DD1F; [2A, 05, 0B]
-D835 DD53; [2A, 05, 0B]
-D835 DD87; [2A, 05, 0B]
-D835 DDBB; [2A, 05, 0B]
-D835 DDEF; [2A, 05, 0B]
-D835 DE23; [2A, 05, 0B]
-D835 DE57; [2A, 05, 0B]
-D835 DE8B; [2A, 05, 0B]
-24D1; [2A, 05, 0D]
-0042; [2A, 05, 8F]
-FF22; [2A, 05, 91]
-212C; [2A, 05, 95]
-D835 DC01; [2A, 05, 95]
-D835 DC35; [2A, 05, 95]
-D835 DC69; [2A, 05, 95]
-D835 DCD1; [2A, 05, 95]
-D835 DD05; [2A, 05, 95]
-D835 DD39; [2A, 05, 95]
-D835 DD6D; [2A, 05, 95]
-D835 DDA1; [2A, 05, 95]
-D835 DDD5; [2A, 05, 95]
-D835 DE09; [2A, 05, 95]
-D835 DE3D; [2A, 05, 95]
-D835 DE71; [2A, 05, 95]
-24B7; [2A, 05, 97]
-1D47; [2A, 05, 27]
-1D2E; [2A, 05, B9]
-1E03; [2A, 05, 05][, A3, 05]
-1E02; [2A, 05, 8F][, A3, 05]
-1E05; [2A, 05, 05][, D0 4D, 05]
-1E04; [2A, 05, 8F][, D0 4D, 05]
-1E07; [2A, 05, 05][, D1 11, 05]
-1E06; [2A, 05, 8F][, D1 11, 05]
-3374; [2A, 05, 37][28, 05, 37][4A, 05, 3D]
-33C3; [2A, 05, B9][48, 05, 37]
-
-0299; [2B 60, 05, 05]
-
-0180; [2B 62, 05, 05]
-
-1D2F; [2B 64, 05, 05]
-
-1D03; [2B 66, 05, 05]
-
-1D6C; [2B 68, 05, 05]
-
-1D80; [2B 6A, 05, 05]
-
-0253; [2B 6C, 05, 05]
-0181; [2B 6C, 05, 8F]
-
-0183; [2B 6E, 05, 05]
-0182; [2B 6E, 05, 8F]
-
-0063; [2C, 05, 05]
-FF43; [2C, 05, 07]
-0368; [2C, 05, 09]
-217D; [2C, 05, 09]
-D835 DC1C; [2C, 05, 0B]
-D835 DC50; [2C, 05, 0B]
-D835 DC84; [2C, 05, 0B]
-D835 DCB8; [2C, 05, 0B]
-D835 DCEC; [2C, 05, 0B]
-D835 DD20; [2C, 05, 0B]
-D835 DD54; [2C, 05, 0B]
-D835 DD88; [2C, 05, 0B]
-D835 DDBC; [2C, 05, 0B]
-D835 DDF0; [2C, 05, 0B]
-D835 DE24; [2C, 05, 0B]
-D835 DE58; [2C, 05, 0B]
-D835 DE8C; [2C, 05, 0B]
-24D2; [2C, 05, 0D]
-0043; [2C, 05, 8F]
-FF23; [2C, 05, 91]
-216D; [2C, 05, 93]
-2102; [2C, 05, 95]
-212D; [2C, 05, 95]
-D835 DC02; [2C, 05, 95]
-D835 DC36; [2C, 05, 95]
-D835 DC6A; [2C, 05, 95]
-D835 DC9E; [2C, 05, 95]
-D835 DCD2; [2C, 05, 95]
-D835 DD6E; [2C, 05, 95]
-D835 DDA2; [2C, 05, 95]
-D835 DDD6; [2C, 05, 95]
-D835 DE0A; [2C, 05, 95]
-D835 DE3E; [2C, 05, 95]
-D835 DE72; [2C, 05, 95]
-24B8; [2C, 05, 97]
-1D9C; [2C, 05, 27]
-0107; [2C, 05, 05][, 8D, 05]
-0106; [2C, 05, 8F][, 8D, 05]
-0109; [2C, 05, 05][, 93, 05]
-0108; [2C, 05, 8F][, 93, 05]
-010D; [2C, 05, 05][, 97, 05]
-010C; [2C, 05, 8F][, 97, 05]
-010B; [2C, 05, 05][, A3, 05]
-010A; [2C, 05, 8F][, A3, 05]
-00E7; [2C, 05, 05][, A7, 05]
-00C7; [2C, 05, 8F][, A7, 05]
-1E09; [2C, 05, 05][, A7, 05][, 8D, 05]
-1E08; [2C, 05, 8F][, A7, 05][, 8D, 05]
-2105; [2C, 05, 09][09 31, 05, 09][44, 05, 3D]
-2106; [2C, 05, 09][09 31, 05, 09][50, 05, 3D]
-33C6; [2C, 05, B9][0C 97, 05, 37][3C, 05, 3D][34, 05, 3D]
-3388; [2C, 05, 37][28, 05, 37][3E, 05, 3D]
-33C4; [2C, 05, 37][2C, 05, 37]
-33C5; [2C, 05, 37][2E, 05, 37]
-339D; [2C, 05, 37][40, 05, 37]
-33A0; [2C, 05, 37][40, 05, 37][25 7E, 05, 3D]
-33A4; [2C, 05, 37][40, 05, 37][25 80, 05, 3D]
-33C7; [2C, 05, B9][44, 05, 37][08 13, 05, 3D]
-
-1D04; [2D 60, 05, 05]
-
-023C; [2D 62, 05, 05]
-023B; [2D 62, 05, 8F]
-
-0188; [2D 64, 05, 05]
-0187; [2D 64, 05, 8F]
-
-0255; [2D 66, 05, 05]
-1D9D; [2D 66, 05, 27]
-
-0064; [2E, 05, 05]
-FF44; [2E, 05, 07]
-0369; [2E, 05, 09]
-217E; [2E, 05, 09]
-2146; [2E, 05, 0B]
-D835 DC1D; [2E, 05, 0B]
-D835 DC51; [2E, 05, 0B]
-D835 DC85; [2E, 05, 0B]
-D835 DCB9; [2E, 05, 0B]
-D835 DCED; [2E, 05, 0B]
-D835 DD21; [2E, 05, 0B]
-D835 DD55; [2E, 05, 0B]
-D835 DD89; [2E, 05, 0B]
-D835 DDBD; [2E, 05, 0B]
-D835 DDF1; [2E, 05, 0B]
-D835 DE25; [2E, 05, 0B]
-D835 DE59; [2E, 05, 0B]
-D835 DE8D; [2E, 05, 0B]
-24D3; [2E, 05, 0D]
-0044; [2E, 05, 8F]
-FF24; [2E, 05, 91]
-216E; [2E, 05, 93]
-2145; [2E, 05, 95]
-D835 DC03; [2E, 05, 95]
-D835 DC37; [2E, 05, 95]
-D835 DC6B; [2E, 05, 95]
-D835 DC9F; [2E, 05, 95]
-D835 DCD3; [2E, 05, 95]
-D835 DD07; [2E, 05, 95]
-D835 DD3B; [2E, 05, 95]
-D835 DD6F; [2E, 05, 95]
-D835 DDA3; [2E, 05, 95]
-D835 DDD7; [2E, 05, 95]
-D835 DE0B; [2E, 05, 95]
-D835 DE3F; [2E, 05, 95]
-D835 DE73; [2E, 05, 95]
-24B9; [2E, 05, 97]
-1D48; [2E, 05, 27]
-1D30; [2E, 05, B9]
-010F; [2E, 05, 05][, 97, 05]
-010E; [2E, 05, 8F][, 97, 05]
-1E0B; [2E, 05, 05][, A3, 05]
-1E0A; [2E, 05, 8F][, A3, 05]
-1E11; [2E, 05, 05][, A7, 05]
-1E10; [2E, 05, 8F][, A7, 05]
-1E0D; [2E, 05, 05][, D0 4D, 05]
-1E0C; [2E, 05, 8F][, D0 4D, 05]
-1E13; [2E, 05, 05][, D0 CD, 05]
-1E12; [2E, 05, 8F][, D0 CD, 05]
-1E0F; [2E, 05, 05][, D1 11, 05]
-1E0E; [2E, 05, 8F][, D1 11, 05]
-0111; [2E, 05, 05][, D1 41, 05]
-0110; [2E, 05, 8F][, D1 41, 05]
-00F0; [2E, 05, 09][, E2 75, 09]
-00D0; [2E, 05, 93][, E2 75, 09]
-1D9E; [2E, 05, 27][, E2 75, 27]
-3372; [2E, 05, 37][28, 05, 37]
-0238; [2E, 05, 09][2A, 05, 09]
-33C8; [2E, 05, 37][2A, 05, B9]
-3397; [2E, 05, 37][3E, 05, 37]
-3377; [2E, 05, 37][40, 05, 37]
-3378; [2E, 05, 37][40, 05, 37][25 7E, 05, 3D]
-3379; [2E, 05, 37][40, 05, 37][25 80, 05, 3D]
-01F3; [2E, 05, 09][5A, 05, 09]
-02A3; [2E, 05, 09][5A, 05, 09]
-01F2; [2E, 05, 93][5A, 05, 09]
-01F1; [2E, 05, 93][5A, 05, 93]
-01C6; [2E, 05, 09][5A, 05, 09][, 97, 3D]
-01C5; [2E, 05, 93][5A, 05, 09][, 97, 3D]
-01C4; [2E, 05, 93][5A, 05, 93][, 97, 3D]
-02A5; [2E, 05, 09][5B 6C, 05, 09]
-02A4; [2E, 05, 09][5B 70, 05, 09]
-
-1D05; [2F 60, 05, 05]
-
-1D06; [2F 62, 05, 05]
-
-1D6D; [2F 64, 05, 05]
-
-1D81; [2F 66, 05, 05]
-
-0256; [2F 68, 05, 05]
-0189; [2F 68, 05, 8F]
-
-0257; [2F 6A, 05, 05]
-018A; [2F 6A, 05, 8F]
-
-1D91; [2F 6C, 05, 05]
-
-018C; [2F 6E, 05, 05]
-018B; [2F 6E, 05, 8F]
-
-0221; [2F 70, 05, 05]
-
-0065; [30, 05, 05]
-FF45; [30, 05, 07]
-0364; [30, 05, 09]
-212F; [30, 05, 0B]
-2147; [30, 05, 0B]
-D835 DC1E; [30, 05, 0B]
-D835 DC52; [30, 05, 0B]
-D835 DC86; [30, 05, 0B]
-D835 DCEE; [30, 05, 0B]
-D835 DD22; [30, 05, 0B]
-D835 DD56; [30, 05, 0B]
-D835 DD8A; [30, 05, 0B]
-D835 DDBE; [30, 05, 0B]
-D835 DDF2; [30, 05, 0B]
-D835 DE26; [30, 05, 0B]
-D835 DE5A; [30, 05, 0B]
-D835 DE8E; [30, 05, 0B]
-24D4; [30, 05, 0D]
-0045; [30, 05, 8F]
-FF25; [30, 05, 91]
-2130; [30, 05, 95]
-D835 DC04; [30, 05, 95]
-D835 DC38; [30, 05, 95]
-D835 DC6C; [30, 05, 95]
-D835 DCD4; [30, 05, 95]
-D835 DD08; [30, 05, 95]
-D835 DD3C; [30, 05, 95]
-D835 DD70; [30, 05, 95]
-D835 DDA4; [30, 05, 95]
-D835 DDD8; [30, 05, 95]
-D835 DE0C; [30, 05, 95]
-D835 DE40; [30, 05, 95]
-D835 DE74; [30, 05, 95]
-24BA; [30, 05, 97]
-1D49; [30, 05, 27]
-2091; [30, 05, 29]
-1D31; [30, 05, B9]
-00E9; [30, 05, 05][, 8D, 05]
-00C9; [30, 05, 8F][, 8D, 05]
-00E8; [30, 05, 05][, 8F, 05]
-00C8; [30, 05, 8F][, 8F, 05]
-0115; [30, 05, 05][, 91, 05]
-0114; [30, 05, 8F][, 91, 05]
-00EA; [30, 05, 05][, 93, 05]
-00CA; [30, 05, 8F][, 93, 05]
-1EBF; [30, 05, 05][, 93, 05][, 8D, 05]
-1EBE; [30, 05, 8F][, 93, 05][, 8D, 05]
-1EC1; [30, 05, 05][, 93, 05][, 8F, 05]
-1EC0; [30, 05, 8F][, 93, 05][, 8F, 05]
-1EC5; [30, 05, 05][, 93, 05][, A1, 05]
-1EC4; [30, 05, 8F][, 93, 05][, A1, 05]
-1EC3; [30, 05, 05][, 93, 05][, AF, 05]
-1EC2; [30, 05, 8F][, 93, 05][, AF, 05]
-011B; [30, 05, 05][, 97, 05]
-011A; [30, 05, 8F][, 97, 05]
-00EB; [30, 05, 05][, 9D, 05]
-00CB; [30, 05, 8F][, 9D, 05]
-1EBD; [30, 05, 05][, A1, 05]
-1EBC; [30, 05, 8F][, A1, 05]
-0117; [30, 05, 05][, A3, 05]
-0116; [30, 05, 8F][, A3, 05]
-0229; [30, 05, 05][, A7, 05]
-0228; [30, 05, 8F][, A7, 05]
-1E1D; [30, 05, 05][, A7, 05][, 91, 05]
-1E1C; [30, 05, 8F][, A7, 05][, 91, 05]
-0119; [30, 05, 05][, A9, 05]
-0118; [30, 05, 8F][, A9, 05]
-0113; [30, 05, 05][, AB, 05]
-0112; [30, 05, 8F][, AB, 05]
-1E17; [30, 05, 05][, AB, 05][, 8D, 05]
-1E16; [30, 05, 8F][, AB, 05][, 8D, 05]
-1E15; [30, 05, 05][, AB, 05][, 8F, 05]
-1E14; [30, 05, 8F][, AB, 05][, 8F, 05]
-1EBB; [30, 05, 05][, AF, 05]
-1EBA; [30, 05, 8F][, AF, 05]
-0205; [30, 05, 05][, B5, 05]
-0204; [30, 05, 8F][, B5, 05]
-0207; [30, 05, 05][, B9, 05]
-0206; [30, 05, 8F][, B9, 05]
-1EB9; [30, 05, 05][, D0 4D, 05]
-1EB8; [30, 05, 8F][, D0 4D, 05]
-1EC7; [30, 05, 05][, D0 4D, 05][, 93, 05]
-1EC6; [30, 05, 8F][, D0 4D, 05][, 93, 05]
-1E19; [30, 05, 05][, D0 CD, 05]
-1E18; [30, 05, 8F][, D0 CD, 05]
-1E1B; [30, 05, 05][, D0 FD, 05]
-1E1A; [30, 05, 8F][, D0 FD, 05]
-32CD; [30, 05, 37][4A, 05, 37][34, 05, 3D]
-32CE; [30, 05, 37][52, 05, B9]
-
-1D07; [31 60, 05, 05]
-
-1D92; [31 62, 05, 05]
-
-01DD; [31 64, 05, 05]
-018E; [31 64, 05, 8F]
-1D32; [31 64, 05, B9]
-
-0259; [31 66, 05, 05]
-018F; [31 66, 05, 8F]
-1D4A; [31 66, 05, 27]
-2094; [31 66, 05, 29]
-
-1D95; [31 68, 05, 05]
-
-025B; [31 6A, 05, 05]
-0190; [31 6A, 05, 8F]
-2107; [31 6A, 05, 93]
-1D4B; [31 6A, 05, 27]
-
-1D93; [31 6C, 05, 05]
-
-0258; [31 6E, 05, 05]
-
-025A; [31 70, 05, 05]
-
-025C; [31 72, 05, 05]
-1D9F; [31 72, 05, 27]
-
-1D94; [31 74, 05, 05]
-
-1D08; [31 76, 05, 05]
-1D4C; [31 76, 05, 27]
-
-025D; [31 78, 05, 05]
-
-025E; [31 7A, 05, 05]
-
-029A; [31 7C, 05, 05]
-
-0264; [31 7E, 05, 05]
-
-0066; [32, 05, 05]
-FF46; [32, 05, 07]
-D835 DC1F; [32, 05, 0B]
-D835 DC53; [32, 05, 0B]
-D835 DC87; [32, 05, 0B]
-D835 DCBB; [32, 05, 0B]
-D835 DCEF; [32, 05, 0B]
-D835 DD23; [32, 05, 0B]
-D835 DD57; [32, 05, 0B]
-D835 DD8B; [32, 05, 0B]
-D835 DDBF; [32, 05, 0B]
-D835 DDF3; [32, 05, 0B]
-D835 DE27; [32, 05, 0B]
-D835 DE5B; [32, 05, 0B]
-D835 DE8F; [32, 05, 0B]
-24D5; [32, 05, 0D]
-0046; [32, 05, 8F]
-FF26; [32, 05, 91]
-2131; [32, 05, 95]
-D835 DC05; [32, 05, 95]
-D835 DC39; [32, 05, 95]
-D835 DC6D; [32, 05, 95]
-D835 DCD5; [32, 05, 95]
-D835 DD09; [32, 05, 95]
-D835 DD3D; [32, 05, 95]
-D835 DD71; [32, 05, 95]
-D835 DDA5; [32, 05, 95]
-D835 DDD9; [32, 05, 95]
-D835 DE0D; [32, 05, 95]
-D835 DE41; [32, 05, 95]
-D835 DE75; [32, 05, 95]
-24BB; [32, 05, 97]
-1DA0; [32, 05, 27]
-1E1F; [32, 05, 05][, A3, 05]
-1E1E; [32, 05, 8F][, A3, 05]
-213B; [32, 05, 93][28, 05, 93][56, 05, 3D]
-FB00; [32, 05, 09][32, 05, 09]
-FB03; [32, 05, 09][32, 05, 09][38, 05, 3D]
-FB04; [32, 05, 09][32, 05, 09][3E, 05, 3D]
-FB01; [32, 05, 09][38, 05, 09]
-FB02; [32, 05, 09][3E, 05, 09]
-3399; [32, 05, 37][40, 05, 37]
-02A9; [32, 05, 09][43 72, 05, 09]
-
-1D6E; [33 60, 05, 05]
-
-1D82; [33 62, 05, 05]
-
-0192; [33 64, 05, 05]
-0191; [33 64, 05, 8F]
-
-0067; [34, 05, 05]
-FF47; [34, 05, 07]
-210A; [34, 05, 0B]
-D835 DC20; [34, 05, 0B]
-D835 DC54; [34, 05, 0B]
-D835 DC88; [34, 05, 0B]
-D835 DCF0; [34, 05, 0B]
-D835 DD24; [34, 05, 0B]
-D835 DD58; [34, 05, 0B]
-D835 DD8C; [34, 05, 0B]
-D835 DDC0; [34, 05, 0B]
-D835 DDF4; [34, 05, 0B]
-D835 DE28; [34, 05, 0B]
-D835 DE5C; [34, 05, 0B]
-D835 DE90; [34, 05, 0B]
-24D6; [34, 05, 0D]
-0047; [34, 05, 8F]
-FF27; [34, 05, 91]
-D835 DC06; [34, 05, 95]
-D835 DC3A; [34, 05, 95]
-D835 DC6E; [34, 05, 95]
-D835 DCA2; [34, 05, 95]
-D835 DCD6; [34, 05, 95]
-D835 DD0A; [34, 05, 95]
-D835 DD3E; [34, 05, 95]
-D835 DD72; [34, 05, 95]
-D835 DDA6; [34, 05, 95]
-D835 DDDA; [34, 05, 95]
-D835 DE0E; [34, 05, 95]
-D835 DE42; [34, 05, 95]
-D835 DE76; [34, 05, 95]
-24BC; [34, 05, 97]
-1D4D; [34, 05, 27]
-1D33; [34, 05, B9]
-01F5; [34, 05, 05][, 8D, 05]
-01F4; [34, 05, 8F][, 8D, 05]
-011F; [34, 05, 05][, 91, 05]
-011E; [34, 05, 8F][, 91, 05]
-011D; [34, 05, 05][, 93, 05]
-011C; [34, 05, 8F][, 93, 05]
-01E7; [34, 05, 05][, 97, 05]
-01E6; [34, 05, 8F][, 97, 05]
-0121; [34, 05, 05][, A3, 05]
-0120; [34, 05, 8F][, A3, 05]
-0123; [34, 05, 05][, A7, 05]
-0122; [34, 05, 8F][, A7, 05]
-1E21; [34, 05, 05][, AB, 05]
-1E20; [34, 05, 8F][, AB, 05]
-33FF; [34, 05, 37][28, 05, 37][3E, 05, 3D]
-3387; [34, 05, B9][2A, 05, B9]
-3393; [34, 05, B9][36, 05, B9][5A, 05, 3D]
-33AC; [34, 05, B9][46, 05, B9][28, 05, 3D]
-33C9; [34, 05, B9][58, 05, 37]
-
-0261; [35 60, 05, 05]
-1DA2; [35 60, 05, 27]
-
-1D79; [35 62, 05, 05]
-
-0262; [35 64, 05, 05]
-
-01E5; [35 66, 05, 05]
-01E4; [35 66, 05, 8F]
-
-1D83; [35 68, 05, 05]
-
-0260; [35 6A, 05, 05]
-0193; [35 6A, 05, 8F]
-
-029B; [35 6C, 05, 05]
-
-1D77; [35 6E, 05, 05]
-
-0263; [35 70, 05, 05]
-0194; [35 70, 05, 8F]
-02E0; [35 70, 05, 27]
-
-01A3; [35 72, 05, 05]
-01A2; [35 72, 05, 8F]
-
-0068; [36, 05, 05]
-FF48; [36, 05, 07]
-036A; [36, 05, 09]
-210E; [36, 05, 0B]
-D835 DC21; [36, 05, 0B]
-D835 DC89; [36, 05, 0B]
-D835 DCBD; [36, 05, 0B]
-D835 DCF1; [36, 05, 0B]
-D835 DD25; [36, 05, 0B]
-D835 DD59; [36, 05, 0B]
-D835 DD8D; [36, 05, 0B]
-D835 DDC1; [36, 05, 0B]
-D835 DDF5; [36, 05, 0B]
-D835 DE29; [36, 05, 0B]
-D835 DE5D; [36, 05, 0B]
-D835 DE91; [36, 05, 0B]
-24D7; [36, 05, 0D]
-0048; [36, 05, 8F]
-FF28; [36, 05, 91]
-210B; [36, 05, 95]
-210C; [36, 05, 95]
-210D; [36, 05, 95]
-D835 DC07; [36, 05, 95]
-D835 DC3B; [36, 05, 95]
-D835 DC6F; [36, 05, 95]
-D835 DCD7; [36, 05, 95]
-D835 DD73; [36, 05, 95]
-D835 DDA7; [36, 05, 95]
-D835 DDDB; [36, 05, 95]
-D835 DE0F; [36, 05, 95]
-D835 DE43; [36, 05, 95]
-D835 DE77; [36, 05, 95]
-24BD; [36, 05, 97]
-02B0; [36, 05, 27]
-1D34; [36, 05, B9]
-0125; [36, 05, 05][, 93, 05]
-0124; [36, 05, 8F][, 93, 05]
-021F; [36, 05, 05][, 97, 05]
-021E; [36, 05, 8F][, 97, 05]
-1E27; [36, 05, 05][, 9D, 05]
-1E26; [36, 05, 8F][, 9D, 05]
-1E23; [36, 05, 05][, A3, 05]
-1E22; [36, 05, 8F][, A3, 05]
-1E29; [36, 05, 05][, A7, 05]
-1E28; [36, 05, 8F][, A7, 05]
-1E25; [36, 05, 05][, D0 4D, 05]
-1E24; [36, 05, 8F][, D0 4D, 05]
-1E2B; [36, 05, 05][, D0 DD, 05]
-1E2A; [36, 05, 8F][, D0 DD, 05]
-1E96; [36, 05, 05][, D1 11, 05]
-0127; [36, 05, 05][, D1 41, 05]
-210F; [36, 05, 05][, D1 41, 05]
-0126; [36, 05, 8F][, D1 41, 05]
-33CA; [36, 05, 37][28, 05, 37]
-32CC; [36, 05, B9][34, 05, 37]
-33CB; [36, 05, B9][46, 05, B9]
-3371; [36, 05, 37][46, 05, B9][28, 05, 3D]
-3390; [36, 05, B9][5A, 05, 37]
-
-029C; [37 60, 05, 05]
-
-0195; [37 62, 05, 05]
-01F6; [37 62, 05, 8F]
-
-0266; [37 64, 05, 05]
-02B1; [37 64, 05, 27]
-
-0267; [37 66, 05, 05]
-
-02BB; [37 68, 05, 05]
-
-02BD; [37 6A, 05, 05]
-
-0069; [38, 05, 05]
-FF49; [38, 05, 07]
-0365; [38, 05, 09]
-2170; [38, 05, 09]
-2139; [38, 05, 0B]
-2148; [38, 05, 0B]
-D835 DC22; [38, 05, 0B]
-D835 DC56; [38, 05, 0B]
-D835 DC8A; [38, 05, 0B]
-D835 DCBE; [38, 05, 0B]
-D835 DCF2; [38, 05, 0B]
-D835 DD26; [38, 05, 0B]
-D835 DD5A; [38, 05, 0B]
-D835 DD8E; [38, 05, 0B]
-D835 DDC2; [38, 05, 0B]
-D835 DDF6; [38, 05, 0B]
-D835 DE2A; [38, 05, 0B]
-D835 DE5E; [38, 05, 0B]
-D835 DE92; [38, 05, 0B]
-24D8; [38, 05, 0D]
-0049; [38, 05, 8F]
-FF29; [38, 05, 91]
-2160; [38, 05, 93]
-2110; [38, 05, 95]
-2111; [38, 05, 95]
-D835 DC08; [38, 05, 95]
-D835 DC3C; [38, 05, 95]
-D835 DC70; [38, 05, 95]
-D835 DCD8; [38, 05, 95]
-D835 DD40; [38, 05, 95]
-D835 DD74; [38, 05, 95]
-D835 DDA8; [38, 05, 95]
-D835 DDDC; [38, 05, 95]
-D835 DE10; [38, 05, 95]
-D835 DE44; [38, 05, 95]
-D835 DE78; [38, 05, 95]
-24BE; [38, 05, 97]
-2071; [38, 05, 27]
-1D62; [38, 05, 29]
-1D35; [38, 05, B9]
-00ED; [38, 05, 05][, 8D, 05]
-00CD; [38, 05, 8F][, 8D, 05]
-00EC; [38, 05, 05][, 8F, 05]
-00CC; [38, 05, 8F][, 8F, 05]
-012D; [38, 05, 05][, 91, 05]
-012C; [38, 05, 8F][, 91, 05]
-00EE; [38, 05, 05][, 93, 05]
-00CE; [38, 05, 8F][, 93, 05]
-01D0; [38, 05, 05][, 97, 05]
-01CF; [38, 05, 8F][, 97, 05]
-00EF; [38, 05, 05][, 9D, 05]
-00CF; [38, 05, 8F][, 9D, 05]
-1E2F; [38, 05, 05][, 9D, 05][, 8D, 05]
-1E2E; [38, 05, 8F][, 9D, 05][, 8D, 05]
-0129; [38, 05, 05][, A1, 05]
-0128; [38, 05, 8F][, A1, 05]
-0130; [38, 05, 8F][, A3, 05]
-012F; [38, 05, 05][, A9, 05]
-012E; [38, 05, 8F][, A9, 05]
-012B; [38, 05, 05][, AB, 05]
-012A; [38, 05, 8F][, AB, 05]
-1EC9; [38, 05, 05][, AF, 05]
-1EC8; [38, 05, 8F][, AF, 05]
-0209; [38, 05, 05][, B5, 05]
-0208; [38, 05, 8F][, B5, 05]
-020B; [38, 05, 05][, B9, 05]
-020A; [38, 05, 8F][, B9, 05]
-1ECB; [38, 05, 05][, D0 4D, 05]
-1ECA; [38, 05, 8F][, D0 4D, 05]
-1E2D; [38, 05, 05][, D0 FD, 05]
-1E2C; [38, 05, 8F][, D0 FD, 05]
-2171; [38, 05, 09][38, 05, 09]
-2161; [38, 05, 93][38, 05, 93]
-2172; [38, 05, 09][38, 05, 09][38, 05, 3D]
-2162; [38, 05, 93][38, 05, 93][38, 05, 3D]
-0133; [38, 05, 09][3A, 05, 09]
-0132; [38, 05, 93][3A, 05, 93]
-33CC; [38, 05, 37][42, 05, 37]
-337A; [38, 05, B9][50, 05, B9]
-2173; [38, 05, 09][52, 05, 09]
-2163; [38, 05, 93][52, 05, 93]
-2178; [38, 05, 09][56, 05, 09]
-2168; [38, 05, 93][56, 05, 93]
-
-0131; [39 60, 05, 05]
-D835 DEA4; [39 60, 05, 0B]
-
-026A; [39 62, 05, 05]
-1DA6; [39 62, 05, 27]
-
-1D09; [39 64, 05, 05]
-1D4E; [39 64, 05, 27]
-
-0268; [39 66, 05, 05]
-0197; [39 66, 05, 8F]
-1DA4; [39 66, 05, 27]
-
-1D7B; [39 68, 05, 05]
-1DA7; [39 68, 05, 27]
-
-1D96; [39 6A, 05, 05]
-
-0269; [39 6C, 05, 05]
-0196; [39 6C, 05, 8F]
-1DA5; [39 6C, 05, 27]
-
-1D7C; [39 6E, 05, 05]
-
-006A; [3A, 05, 05]
-FF4A; [3A, 05, 07]
-2149; [3A, 05, 0B]
-D835 DC23; [3A, 05, 0B]
-D835 DC57; [3A, 05, 0B]
-D835 DC8B; [3A, 05, 0B]
-D835 DCBF; [3A, 05, 0B]
-D835 DCF3; [3A, 05, 0B]
-D835 DD27; [3A, 05, 0B]
-D835 DD5B; [3A, 05, 0B]
-D835 DD8F; [3A, 05, 0B]
-D835 DDC3; [3A, 05, 0B]
-D835 DDF7; [3A, 05, 0B]
-D835 DE2B; [3A, 05, 0B]
-D835 DE5F; [3A, 05, 0B]
-D835 DE93; [3A, 05, 0B]
-24D9; [3A, 05, 0D]
-004A; [3A, 05, 8F]
-FF2A; [3A, 05, 91]
-D835 DC09; [3A, 05, 95]
-D835 DC3D; [3A, 05, 95]
-D835 DC71; [3A, 05, 95]
-D835 DCA5; [3A, 05, 95]
-D835 DCD9; [3A, 05, 95]
-D835 DD0D; [3A, 05, 95]
-D835 DD41; [3A, 05, 95]
-D835 DD75; [3A, 05, 95]
-D835 DDA9; [3A, 05, 95]
-D835 DDDD; [3A, 05, 95]
-D835 DE11; [3A, 05, 95]
-D835 DE45; [3A, 05, 95]
-D835 DE79; [3A, 05, 95]
-24BF; [3A, 05, 97]
-02B2; [3A, 05, 27]
-1D36; [3A, 05, B9]
-0135; [3A, 05, 05][, 93, 05]
-0134; [3A, 05, 8F][, 93, 05]
-01F0; [3A, 05, 05][, 97, 05]
-
-0237; [3B 60, 05, 05]
-D835 DEA5; [3B 60, 05, 0B]
-
-1D0A; [3B 62, 05, 05]
-
-029D; [3B 64, 05, 05]
-1DA8; [3B 64, 05, 27]
-
-025F; [3B 66, 05, 05]
-1DA1; [3B 66, 05, 27]
-
-0284; [3B 68, 05, 05]
-
-006B; [3C, 05, 05]
-FF4B; [3C, 05, 07]
-D835 DC24; [3C, 05, 0B]
-D835 DC58; [3C, 05, 0B]
-D835 DC8C; [3C, 05, 0B]
-D835 DCC0; [3C, 05, 0B]
-D835 DCF4; [3C, 05, 0B]
-D835 DD28; [3C, 05, 0B]
-D835 DD5C; [3C, 05, 0B]
-D835 DD90; [3C, 05, 0B]
-D835 DDC4; [3C, 05, 0B]
-D835 DDF8; [3C, 05, 0B]
-D835 DE2C; [3C, 05, 0B]
-D835 DE60; [3C, 05, 0B]
-D835 DE94; [3C, 05, 0B]
-24DA; [3C, 05, 0D]
-004B; [3C, 05, 8F]
-212A; [3C, 05, 8F]
-FF2B; [3C, 05, 91]
-D835 DC0A; [3C, 05, 95]
-D835 DC3E; [3C, 05, 95]
-D835 DC72; [3C, 05, 95]
-D835 DCA6; [3C, 05, 95]
-D835 DCDA; [3C, 05, 95]
-D835 DD0E; [3C, 05, 95]
-D835 DD42; [3C, 05, 95]
-D835 DD76; [3C, 05, 95]
-D835 DDAA; [3C, 05, 95]
-D835 DDDE; [3C, 05, 95]
-D835 DE12; [3C, 05, 95]
-D835 DE46; [3C, 05, 95]
-D835 DE7A; [3C, 05, 95]
-24C0; [3C, 05, 97]
-1D4F; [3C, 05, 27]
-1D37; [3C, 05, B9]
-1E31; [3C, 05, 05][, 8D, 05]
-1E30; [3C, 05, 8F][, 8D, 05]
-01E9; [3C, 05, 05][, 97, 05]
-01E8; [3C, 05, 8F][, 97, 05]
-0137; [3C, 05, 05][, A7, 05]
-0136; [3C, 05, 8F][, A7, 05]
-1E33; [3C, 05, 05][, D0 4D, 05]
-1E32; [3C, 05, 8F][, D0 4D, 05]
-1E35; [3C, 05, 05][, D1 11, 05]
-1E34; [3C, 05, 8F][, D1 11, 05]
-3384; [3C, 05, 37][28, 05, B9]
-3385; [3C, 05, B9][2A, 05, B9]
-3389; [3C, 05, 37][2C, 05, 37][28, 05, 3D][3E, 05, 3D]
-338F; [3C, 05, 37][34, 05, 37]
-3391; [3C, 05, 37][36, 05, B9][5A, 05, 3D]
-33CD; [3C, 05, B9][3C, 05, B9]
-3398; [3C, 05, 37][3E, 05, 37]
-339E; [3C, 05, 37][40, 05, 37]
-33CE; [3C, 05, B9][40, 05, B9]
-33A2; [3C, 05, 37][40, 05, 37][25 7E, 05, 3D]
-33A6; [3C, 05, 37][40, 05, 37][25 80, 05, 3D]
-33AA; [3C, 05, 37][46, 05, B9][28, 05, 3D]
-33CF; [3C, 05, 37][4E, 05, 37]
-33B8; [3C, 05, 37][52, 05, B9]
-33BE; [3C, 05, 37][54, 05, B9]
-33C0; [3C, 05, 37][5C 68, 05, B9]
-
-1D0B; [3D 60, 05, 05]
-
-1D84; [3D 62, 05, 05]
-
-0199; [3D 64, 05, 05]
-0198; [3D 64, 05, 8F]
-
-029E; [3D 66, 05, 05]
-
-006C; [3E, 05, 05]
-FF4C; [3E, 05, 07]
-217C; [3E, 05, 09]
-2113; [3E, 05, 0B]
-D835 DC25; [3E, 05, 0B]
-D835 DC59; [3E, 05, 0B]
-D835 DC8D; [3E, 05, 0B]
-D835 DCC1; [3E, 05, 0B]
-D835 DCF5; [3E, 05, 0B]
-D835 DD29; [3E, 05, 0B]
-D835 DD5D; [3E, 05, 0B]
-D835 DD91; [3E, 05, 0B]
-D835 DDC5; [3E, 05, 0B]
-D835 DDF9; [3E, 05, 0B]
-D835 DE2D; [3E, 05, 0B]
-D835 DE61; [3E, 05, 0B]
-D835 DE95; [3E, 05, 0B]
-24DB; [3E, 05, 0D]
-004C; [3E, 05, 8F]
-FF2C; [3E, 05, 91]
-216C; [3E, 05, 93]
-2112; [3E, 05, 95]
-D835 DC0B; [3E, 05, 95]
-D835 DC3F; [3E, 05, 95]
-D835 DC73; [3E, 05, 95]
-D835 DCDB; [3E, 05, 95]
-D835 DD0F; [3E, 05, 95]
-D835 DD43; [3E, 05, 95]
-D835 DD77; [3E, 05, 95]
-D835 DDAB; [3E, 05, 95]
-D835 DDDF; [3E, 05, 95]
-D835 DE13; [3E, 05, 95]
-D835 DE47; [3E, 05, 95]
-D835 DE7B; [3E, 05, 95]
-24C1; [3E, 05, 97]
-02E1; [3E, 05, 27]
-1D38; [3E, 05, B9]
-013A; [3E, 05, 05][, 8D, 05]
-0139; [3E, 05, 8F][, 8D, 05]
-013E; [3E, 05, 05][, 97, 05]
-013D; [3E, 05, 8F][, 97, 05]
-013C; [3E, 05, 05][, A7, 05]
-013B; [3E, 05, 8F][, A7, 05]
-1E37; [3E, 05, 05][, D0 4D, 05]
-1E36; [3E, 05, 8F][, D0 4D, 05]
-1E39; [3E, 05, 05][, D0 4D, 05][, AB, 05]
-1E38; [3E, 05, 8F][, D0 4D, 05][, AB, 05]
-1E3D; [3E, 05, 05][, D0 CD, 05]
-1E3C; [3E, 05, 8F][, D0 CD, 05]
-1E3B; [3E, 05, 05][, D1 11, 05]
-1E3A; [3E, 05, 8F][, D1 11, 05]
-0142; [3E, 05, 05][, D1 41, 05]
-0141; [3E, 05, 8F][, D1 41, 05]
-0140; [3E, 05, 09][, E2 75, 09][08 2B, 05, 3D]
-013F; [3E, 05, 93][, E2 75, 09][08 2B, 05, 3D]
-01C9; [3E, 05, 09][3A, 05, 09]
-01C8; [3E, 05, 93][3A, 05, 09]
-01C7; [3E, 05, 93][3A, 05, 93]
-33D0; [3E, 05, 37][40, 05, 37]
-33D1; [3E, 05, 37][42, 05, 37]
-33D2; [3E, 05, 37][44, 05, 37][34, 05, 3D]
-02AA; [3E, 05, 09][4C, 05, 09]
-32CF; [3E, 05, B9][4E, 05, B9][2E, 05, 3D]
-33D3; [3E, 05, 37][56, 05, 37]
-02AB; [3E, 05, 09][5A, 05, 09]
-
-029F; [3F 60, 05, 05]
-1DAB; [3F 60, 05, 27]
-
-1D0C; [3F 62, 05, 05]
-
-019A; [3F 64, 05, 05]
-023D; [3F 64, 05, 8F]
-
-026B; [3F 66, 05, 05]
-
-026C; [3F 68, 05, 05]
-
-1D85; [3F 6A, 05, 05]
-1DAA; [3F 6A, 05, 27]
-
-026D; [3F 6C, 05, 05]
-1DA9; [3F 6C, 05, 27]
-
-0234; [3F 6E, 05, 05]
-
-026E; [3F 70, 05, 05]
-
-019B; [3F 72, 05, 05]
-
-028E; [3F 74, 05, 05]
-
-006D; [40, 05, 05]
-FF4D; [40, 05, 07]
-036B; [40, 05, 09]
-217F; [40, 05, 09]
-D835 DC26; [40, 05, 0B]
-D835 DC5A; [40, 05, 0B]
-D835 DC8E; [40, 05, 0B]
-D835 DCC2; [40, 05, 0B]
-D835 DCF6; [40, 05, 0B]
-D835 DD2A; [40, 05, 0B]
-D835 DD5E; [40, 05, 0B]
-D835 DD92; [40, 05, 0B]
-D835 DDC6; [40, 05, 0B]
-D835 DDFA; [40, 05, 0B]
-D835 DE2E; [40, 05, 0B]
-D835 DE62; [40, 05, 0B]
-D835 DE96; [40, 05, 0B]
-24DC; [40, 05, 0D]
-004D; [40, 05, 8F]
-FF2D; [40, 05, 91]
-216F; [40, 05, 93]
-2133; [40, 05, 95]
-D835 DC0C; [40, 05, 95]
-D835 DC40; [40, 05, 95]
-D835 DC74; [40, 05, 95]
-D835 DCDC; [40, 05, 95]
-D835 DD10; [40, 05, 95]
-D835 DD44; [40, 05, 95]
-D835 DD78; [40, 05, 95]
-D835 DDAC; [40, 05, 95]
-D835 DDE0; [40, 05, 95]
-D835 DE14; [40, 05, 95]
-D835 DE48; [40, 05, 95]
-D835 DE7C; [40, 05, 95]
-24C2; [40, 05, 97]
-1D50; [40, 05, 27]
-1D39; [40, 05, B9]
-1E3F; [40, 05, 05][, 8D, 05]
-1E3E; [40, 05, 8F][, 8D, 05]
-1E41; [40, 05, 05][, A3, 05]
-1E40; [40, 05, 8F][, A3, 05]
-1E43; [40, 05, 05][, D0 4D, 05]
-1E42; [40, 05, 8F][, D0 4D, 05]
-33A7; [40, 05, 37][0C 97, 05, 37][4C, 05, 3D]
-33A8; [40, 05, 37][0C 97, 05, 37][4C, 05, 3D][25 7E, 05, 3D]
-33A1; [40, 05, 37][25 7E, 05, 37]
-33A5; [40, 05, 37][25 80, 05, 37]
-3383; [40, 05, 37][28, 05, B9]
-33D4; [40, 05, 37][2A, 05, 37]
-3386; [40, 05, B9][2A, 05, B9]
-338E; [40, 05, 37][34, 05, 37]
-3392; [40, 05, B9][36, 05, B9][5A, 05, 3D]
-33D5; [40, 05, 37][38, 05, 37][3E, 05, 3D]
-3396; [40, 05, 37][3E, 05, 37]
-339C; [40, 05, 37][40, 05, 37]
-339F; [40, 05, 37][40, 05, 37][25 7E, 05, 3D]
-33A3; [40, 05, 37][40, 05, 37][25 80, 05, 3D]
-33D6; [40, 05, 37][44, 05, 37][3E, 05, 3D]
-33AB; [40, 05, B9][46, 05, B9][28, 05, 3D]
-33B3; [40, 05, 37][4C, 05, 37]
-33B7; [40, 05, 37][52, 05, B9]
-33B9; [40, 05, B9][52, 05, B9]
-33BD; [40, 05, 37][54, 05, B9]
-33BF; [40, 05, B9][54, 05, B9]
-33C1; [40, 05, B9][5C 68, 05, B9]
-
-1D0D; [41 60, 05, 05]
-
-1D6F; [41 62, 05, 05]
-
-1D86; [41 64, 05, 05]
-
-0271; [41 66, 05, 05]
-1DAC; [41 66, 05, 27]
-
-006E; [42, 05, 05]
-FF4E; [42, 05, 07]
-D835 DC27; [42, 05, 0B]
-D835 DC5B; [42, 05, 0B]
-D835 DC8F; [42, 05, 0B]
-D835 DCC3; [42, 05, 0B]
-D835 DCF7; [42, 05, 0B]
-D835 DD2B; [42, 05, 0B]
-D835 DD5F; [42, 05, 0B]
-D835 DD93; [42, 05, 0B]
-D835 DDC7; [42, 05, 0B]
-D835 DDFB; [42, 05, 0B]
-D835 DE2F; [42, 05, 0B]
-D835 DE63; [42, 05, 0B]
-D835 DE97; [42, 05, 0B]
-24DD; [42, 05, 0D]
-004E; [42, 05, 8F]
-FF2E; [42, 05, 91]
-2115; [42, 05, 95]
-D835 DC0D; [42, 05, 95]
-D835 DC41; [42, 05, 95]
-D835 DC75; [42, 05, 95]
-D835 DCA9; [42, 05, 95]
-D835 DCDD; [42, 05, 95]
-D835 DD11; [42, 05, 95]
-D835 DD79; [42, 05, 95]
-D835 DDAD; [42, 05, 95]
-D835 DDE1; [42, 05, 95]
-D835 DE15; [42, 05, 95]
-D835 DE49; [42, 05, 95]
-D835 DE7D; [42, 05, 95]
-24C3; [42, 05, 97]
-207F; [42, 05, 27]
-1D3A; [42, 05, B9]
-0144; [42, 05, 05][, 8D, 05]
-0143; [42, 05, 8F][, 8D, 05]
-01F9; [42, 05, 05][, 8F, 05]
-01F8; [42, 05, 8F][, 8F, 05]
-0148; [42, 05, 05][, 97, 05]
-0147; [42, 05, 8F][, 97, 05]
-00F1; [42, 05, 05][, A1, 05]
-00D1; [42, 05, 8F][, A1, 05]
-1E45; [42, 05, 05][, A3, 05]
-1E44; [42, 05, 8F][, A3, 05]
-0146; [42, 05, 05][, A7, 05]
-0145; [42, 05, 8F][, A7, 05]
-1E47; [42, 05, 05][, D0 4D, 05]
-1E46; [42, 05, 8F][, D0 4D, 05]
-1E4B; [42, 05, 05][, D0 CD, 05]
-1E4A; [42, 05, 8F][, D0 CD, 05]
-1E49; [42, 05, 05][, D1 11, 05]
-1E48; [42, 05, 8F][, D1 11, 05]
-3381; [42, 05, 37][28, 05, B9]
-338B; [42, 05, 37][32, 05, B9]
-01CC; [42, 05, 09][3A, 05, 09]
-01CB; [42, 05, 93][3A, 05, 09]
-01CA; [42, 05, 93][3A, 05, 93]
-339A; [42, 05, 37][40, 05, 37]
-2116; [42, 05, 93][44, 05, 09]
-33B1; [42, 05, 37][4C, 05, 37]
-33B5; [42, 05, 37][52, 05, B9]
-33BB; [42, 05, 37][54, 05, B9]
-
-0274; [43 60, 05, 05]
-1DB0; [43 60, 05, 27]
-
-1D3B; [43 62, 05, 05]
-
-1D0E; [43 64, 05, 05]
-
-1D70; [43 66, 05, 05]
-
-0272; [43 68, 05, 05]
-019D; [43 68, 05, 8F]
-1DAE; [43 68, 05, 27]
-
-019E; [43 6A, 05, 05]
-0220; [43 6A, 05, 8F]
-
-1D87; [43 6C, 05, 05]
-
-0273; [43 6E, 05, 05]
-1DAF; [43 6E, 05, 27]
-
-0235; [43 70, 05, 05]
-
-014B; [43 72, 05, 05]
-014A; [43 72, 05, 8F]
-1D51; [43 72, 05, 27]
-
-006F; [44, 05, 05]
-FF4F; [44, 05, 07]
-0366; [44, 05, 09]
-2134; [44, 05, 0B]
-D835 DC28; [44, 05, 0B]
-D835 DC5C; [44, 05, 0B]
-D835 DC90; [44, 05, 0B]
-D835 DCF8; [44, 05, 0B]
-D835 DD2C; [44, 05, 0B]
-D835 DD60; [44, 05, 0B]
-D835 DD94; [44, 05, 0B]
-D835 DDC8; [44, 05, 0B]
-D835 DDFC; [44, 05, 0B]
-D835 DE30; [44, 05, 0B]
-D835 DE64; [44, 05, 0B]
-D835 DE98; [44, 05, 0B]
-24DE; [44, 05, 0D]
-004F; [44, 05, 8F]
-FF2F; [44, 05, 91]
-D835 DC0E; [44, 05, 95]
-D835 DC42; [44, 05, 95]
-D835 DC76; [44, 05, 95]
-D835 DCAA; [44, 05, 95]
-D835 DCDE; [44, 05, 95]
-D835 DD12; [44, 05, 95]
-D835 DD46; [44, 05, 95]
-D835 DD7A; [44, 05, 95]
-D835 DDAE; [44, 05, 95]
-D835 DDE2; [44, 05, 95]
-D835 DE16; [44, 05, 95]
-D835 DE4A; [44, 05, 95]
-D835 DE7E; [44, 05, 95]
-24C4; [44, 05, 97]
-00BA; [44, 05, 27]
-1D52; [44, 05, 27]
-2092; [44, 05, 29]
-1D3C; [44, 05, B9]
-00F3; [44, 05, 05][, 8D, 05]
-00D3; [44, 05, 8F][, 8D, 05]
-00F2; [44, 05, 05][, 8F, 05]
-00D2; [44, 05, 8F][, 8F, 05]
-014F; [44, 05, 05][, 91, 05]
-014E; [44, 05, 8F][, 91, 05]
-00F4; [44, 05, 05][, 93, 05]
-00D4; [44, 05, 8F][, 93, 05]
-1ED1; [44, 05, 05][, 93, 05][, 8D, 05]
-1ED0; [44, 05, 8F][, 93, 05][, 8D, 05]
-1ED3; [44, 05, 05][, 93, 05][, 8F, 05]
-1ED2; [44, 05, 8F][, 93, 05][, 8F, 05]
-1ED7; [44, 05, 05][, 93, 05][, A1, 05]
-1ED6; [44, 05, 8F][, 93, 05][, A1, 05]
-1ED5; [44, 05, 05][, 93, 05][, AF, 05]
-1ED4; [44, 05, 8F][, 93, 05][, AF, 05]
-01D2; [44, 05, 05][, 97, 05]
-01D1; [44, 05, 8F][, 97, 05]
-00F6; [44, 05, 05][, 9D, 05]
-00D6; [44, 05, 8F][, 9D, 05]
-022B; [44, 05, 05][, 9D, 05][, AB, 05]
-022A; [44, 05, 8F][, 9D, 05][, AB, 05]
-0151; [44, 05, 05][, 9F, 05]
-0150; [44, 05, 8F][, 9F, 05]
-00F5; [44, 05, 05][, A1, 05]
-00D5; [44, 05, 8F][, A1, 05]
-1E4D; [44, 05, 05][, A1, 05][, 8D, 05]
-1E4C; [44, 05, 8F][, A1, 05][, 8D, 05]
-1E4F; [44, 05, 05][, A1, 05][, 9D, 05]
-1E4E; [44, 05, 8F][, A1, 05][, 9D, 05]
-022D; [44, 05, 05][, A1, 05][, AB, 05]
-022C; [44, 05, 8F][, A1, 05][, AB, 05]
-022F; [44, 05, 05][, A3, 05]
-022E; [44, 05, 8F][, A3, 05]
-0231; [44, 05, 05][, A3, 05][, AB, 05]
-0230; [44, 05, 8F][, A3, 05][, AB, 05]
-00F8; [44, 05, 05][, A5, 05]
-00D8; [44, 05, 8F][, A5, 05]
-01FF; [44, 05, 05][, A5, 05][, 8D, 05]
-01FE; [44, 05, 8F][, A5, 05][, 8D, 05]
-01EB; [44, 05, 05][, A9, 05]
-01EA; [44, 05, 8F][, A9, 05]
-01ED; [44, 05, 05][, A9, 05][, AB, 05]
-01EC; [44, 05, 8F][, A9, 05][, AB, 05]
-014D; [44, 05, 05][, AB, 05]
-014C; [44, 05, 8F][, AB, 05]
-1E53; [44, 05, 05][, AB, 05][, 8D, 05]
-1E52; [44, 05, 8F][, AB, 05][, 8D, 05]
-1E51; [44, 05, 05][, AB, 05][, 8F, 05]
-1E50; [44, 05, 8F][, AB, 05][, 8F, 05]
-1ECF; [44, 05, 05][, AF, 05]
-1ECE; [44, 05, 8F][, AF, 05]
-020D; [44, 05, 05][, B5, 05]
-020C; [44, 05, 8F][, B5, 05]
-020F; [44, 05, 05][, B9, 05]
-020E; [44, 05, 8F][, B9, 05]
-01A1; [44, 05, 05][, C9, 05]
-01A0; [44, 05, 8F][, C9, 05]
-1EDB; [44, 05, 05][, C9, 05][, 8D, 05]
-1EDA; [44, 05, 8F][, C9, 05][, 8D, 05]
-1EDD; [44, 05, 05][, C9, 05][, 8F, 05]
-1EDC; [44, 05, 8F][, C9, 05][, 8F, 05]
-1EE1; [44, 05, 05][, C9, 05][, A1, 05]
-1EE0; [44, 05, 8F][, C9, 05][, A1, 05]
-1EDF; [44, 05, 05][, C9, 05][, AF, 05]
-1EDE; [44, 05, 8F][, C9, 05][, AF, 05]
-1EE3; [44, 05, 05][, C9, 05][, D0 4D, 05]
-1EE2; [44, 05, 8F][, C9, 05][, D0 4D, 05]
-1ECD; [44, 05, 05][, D0 4D, 05]
-1ECC; [44, 05, 8F][, D0 4D, 05]
-1ED9; [44, 05, 05][, D0 4D, 05][, 93, 05]
-1ED8; [44, 05, 8F][, D0 4D, 05][, 93, 05]
-0153; [44, 05, 09][, E2 75, 09][30, 05, 3D]
-0152; [44, 05, 93][, E2 75, 09][30, 05, 3D]
-3375; [44, 05, 37][52, 05, B9]
-
-1D0F; [45 60, 05, 05]
-
-1D11; [45 62, 05, 05]
-
-0276; [45 64, 05, 05]
-
-1D14; [45 66, 05, 05]
-
-1D13; [45 68, 05, 05]
-
-0254; [45 6A, 05, 05]
-0186; [45 6A, 05, 8F]
-1D53; [45 6A, 05, 27]
-
-1D10; [45 6C, 05, 05]
-
-1D12; [45 6E, 05, 05]
-
-1D97; [45 70, 05, 05]
-
-1D16; [45 72, 05, 05]
-1D54; [45 72, 05, 27]
-
-1D17; [45 74, 05, 05]
-1D55; [45 74, 05, 27]
-
-0275; [45 76, 05, 05]
-019F; [45 76, 05, 8F]
-1DB1; [45 76, 05, 27]
-
-0277; [45 78, 05, 05]
-
-0223; [45 7A, 05, 05]
-0222; [45 7A, 05, 8F]
-1D3D; [45 7A, 05, B9]
-
-1D15; [45 7C, 05, 05]
-
-0070; [46, 05, 05]
-FF50; [46, 05, 07]
-D835 DC29; [46, 05, 0B]
-D835 DC5D; [46, 05, 0B]
-D835 DC91; [46, 05, 0B]
-D835 DCC5; [46, 05, 0B]
-D835 DCF9; [46, 05, 0B]
-D835 DD2D; [46, 05, 0B]
-D835 DD61; [46, 05, 0B]
-D835 DD95; [46, 05, 0B]
-D835 DDC9; [46, 05, 0B]
-D835 DDFD; [46, 05, 0B]
-D835 DE31; [46, 05, 0B]
-D835 DE65; [46, 05, 0B]
-D835 DE99; [46, 05, 0B]
-24DF; [46, 05, 0D]
-0050; [46, 05, 8F]
-FF30; [46, 05, 91]
-2119; [46, 05, 95]
-D835 DC0F; [46, 05, 95]
-D835 DC43; [46, 05, 95]
-D835 DC77; [46, 05, 95]
-D835 DCAB; [46, 05, 95]
-D835 DCDF; [46, 05, 95]
-D835 DD13; [46, 05, 95]
-D835 DD7B; [46, 05, 95]
-D835 DDAF; [46, 05, 95]
-D835 DDE3; [46, 05, 95]
-D835 DE17; [46, 05, 95]
-D835 DE4B; [46, 05, 95]
-D835 DE7F; [46, 05, 95]
-24C5; [46, 05, 97]
-1D56; [46, 05, 27]
-1D3E; [46, 05, B9]
-1E55; [46, 05, 05][, 8D, 05]
-1E54; [46, 05, 8F][, 8D, 05]
-1E57; [46, 05, 05][, A3, 05]
-1E56; [46, 05, 8F][, A3, 05]
-33D8; [46, 05, 37][08 13, 05, 37][40, 05, 3D][08 13, 05, 3D]
-3380; [46, 05, 37][28, 05, B9]
-33A9; [46, 05, B9][28, 05, 37]
-3376; [46, 05, 37][2C, 05, 37]
-338A; [46, 05, 37][32, 05, B9]
-33D7; [46, 05, B9][36, 05, B9]
-33D9; [46, 05, B9][46, 05, B9][40, 05, 3D]
-33DA; [46, 05, B9][4A, 05, B9]
-33B0; [46, 05, 37][4C, 05, 37]
-3250; [46, 05, B9][4E, 05, B9][30, 05, 3D]
-33B4; [46, 05, 37][52, 05, B9]
-33BA; [46, 05, 37][54, 05, B9]
-
-1D18; [47 60, 05, 05]
-
-1D7D; [47 62, 05, 05]
-
-1D71; [47 64, 05, 05]
-
-1D88; [47 66, 05, 05]
-
-01A5; [47 68, 05, 05]
-01A4; [47 68, 05, 8F]
-
-0278; [47 6A, 05, 05]
-1DB2; [47 6A, 05, 27]
-
-0071; [48, 05, 05]
-FF51; [48, 05, 07]
-D835 DC2A; [48, 05, 0B]
-D835 DC5E; [48, 05, 0B]
-D835 DC92; [48, 05, 0B]
-D835 DCC6; [48, 05, 0B]
-D835 DCFA; [48, 05, 0B]
-D835 DD2E; [48, 05, 0B]
-D835 DD62; [48, 05, 0B]
-D835 DD96; [48, 05, 0B]
-D835 DDCA; [48, 05, 0B]
-D835 DDFE; [48, 05, 0B]
-D835 DE32; [48, 05, 0B]
-D835 DE66; [48, 05, 0B]
-D835 DE9A; [48, 05, 0B]
-24E0; [48, 05, 0D]
-0051; [48, 05, 8F]
-FF31; [48, 05, 91]
-211A; [48, 05, 95]
-D835 DC10; [48, 05, 95]
-D835 DC44; [48, 05, 95]
-D835 DC78; [48, 05, 95]
-D835 DCAC; [48, 05, 95]
-D835 DCE0; [48, 05, 95]
-D835 DD14; [48, 05, 95]
-D835 DD7C; [48, 05, 95]
-D835 DDB0; [48, 05, 95]
-D835 DDE4; [48, 05, 95]
-D835 DE18; [48, 05, 95]
-D835 DE4C; [48, 05, 95]
-D835 DE80; [48, 05, 95]
-24C6; [48, 05, 97]
-0239; [48, 05, 09][46, 05, 09]
-
-02A0; [49 60, 05, 05]
-
-0138; [49 62, 05, 05]
-
-0072; [4A, 05, 05]
-FF52; [4A, 05, 07]
-036C; [4A, 05, 09]
-D835 DC2B; [4A, 05, 0B]
-D835 DC5F; [4A, 05, 0B]
-D835 DC93; [4A, 05, 0B]
-D835 DCC7; [4A, 05, 0B]
-D835 DCFB; [4A, 05, 0B]
-D835 DD2F; [4A, 05, 0B]
-D835 DD63; [4A, 05, 0B]
-D835 DD97; [4A, 05, 0B]
-D835 DDCB; [4A, 05, 0B]
-D835 DDFF; [4A, 05, 0B]
-D835 DE33; [4A, 05, 0B]
-D835 DE67; [4A, 05, 0B]
-D835 DE9B; [4A, 05, 0B]
-24E1; [4A, 05, 0D]
-0052; [4A, 05, 8F]
-FF32; [4A, 05, 91]
-211B; [4A, 05, 95]
-211C; [4A, 05, 95]
-211D; [4A, 05, 95]
-D835 DC11; [4A, 05, 95]
-D835 DC45; [4A, 05, 95]
-D835 DC79; [4A, 05, 95]
-D835 DCE1; [4A, 05, 95]
-D835 DD7D; [4A, 05, 95]
-D835 DDB1; [4A, 05, 95]
-D835 DDE5; [4A, 05, 95]
-D835 DE19; [4A, 05, 95]
-D835 DE4D; [4A, 05, 95]
-D835 DE81; [4A, 05, 95]
-24C7; [4A, 05, 97]
-02B3; [4A, 05, 27]
-1D63; [4A, 05, 29]
-1D3F; [4A, 05, B9]
-0155; [4A, 05, 05][, 8D, 05]
-0154; [4A, 05, 8F][, 8D, 05]
-0159; [4A, 05, 05][, 97, 05]
-0158; [4A, 05, 8F][, 97, 05]
-1E59; [4A, 05, 05][, A3, 05]
-1E58; [4A, 05, 8F][, A3, 05]
-0157; [4A, 05, 05][, A7, 05]
-0156; [4A, 05, 8F][, A7, 05]
-0211; [4A, 05, 05][, B5, 05]
-0210; [4A, 05, 8F][, B5, 05]
-0213; [4A, 05, 05][, B9, 05]
-0212; [4A, 05, 8F][, B9, 05]
-1E5B; [4A, 05, 05][, D0 4D, 05]
-1E5A; [4A, 05, 8F][, D0 4D, 05]
-1E5D; [4A, 05, 05][, D0 4D, 05][, AB, 05]
-1E5C; [4A, 05, 8F][, D0 4D, 05][, AB, 05]
-1E5F; [4A, 05, 05][, D1 11, 05]
-1E5E; [4A, 05, 8F][, D1 11, 05]
-33AD; [4A, 05, 37][28, 05, 37][2E, 05, 3D]
-33AE; [4A, 05, 37][28, 05, 37][2E, 05, 3D][0C 97, 05, 3D][4C, 05, 3D]
-33AF; [4A, 05, 37][28, 05, 37][2E, 05, 3D][0C 97, 05, 3D][4C, 05, 3D][25 7E, 05, 3D]
-20A8; [4A, 05, 93][4C, 05, 09]
-
-0280; [4B 60, 05, 05]
-01A6; [4B 60, 05, 8F]
-
-1D19; [4B 62, 05, 05]
-
-1D72; [4B 64, 05, 05]
-
-0279; [4B 66, 05, 05]
-02B4; [4B 66, 05, 27]
-
-1D1A; [4B 68, 05, 05]
-
-027A; [4B 6A, 05, 05]
-
-1D89; [4B 6C, 05, 05]
-
-027B; [4B 6E, 05, 05]
-02B5; [4B 6E, 05, 27]
-
-027C; [4B 70, 05, 05]
-
-027D; [4B 72, 05, 05]
-
-027E; [4B 74, 05, 05]
-
-1D73; [4B 76, 05, 05]
-
-027F; [4B 78, 05, 05]
-
-0281; [4B 7A, 05, 05]
-02B6; [4B 7A, 05, 27]
-
-0073; [4C, 05, 05]
-FF53; [4C, 05, 07]
-D835 DC2C; [4C, 05, 0B]
-D835 DC60; [4C, 05, 0B]
-D835 DC94; [4C, 05, 0B]
-D835 DCC8; [4C, 05, 0B]
-D835 DCFC; [4C, 05, 0B]
-D835 DD30; [4C, 05, 0B]
-D835 DD64; [4C, 05, 0B]
-D835 DD98; [4C, 05, 0B]
-D835 DDCC; [4C, 05, 0B]
-D835 DE00; [4C, 05, 0B]
-D835 DE34; [4C, 05, 0B]
-D835 DE68; [4C, 05, 0B]
-D835 DE9C; [4C, 05, 0B]
-24E2; [4C, 05, 0D]
-0053; [4C, 05, 8F]
-FF33; [4C, 05, 91]
-D835 DC12; [4C, 05, 95]
-D835 DC46; [4C, 05, 95]
-D835 DC7A; [4C, 05, 95]
-D835 DCAE; [4C, 05, 95]
-D835 DCE2; [4C, 05, 95]
-D835 DD16; [4C, 05, 95]
-D835 DD4A; [4C, 05, 95]
-D835 DD7E; [4C, 05, 95]
-D835 DDB2; [4C, 05, 95]
-D835 DDE6; [4C, 05, 95]
-D835 DE1A; [4C, 05, 95]
-D835 DE4E; [4C, 05, 95]
-D835 DE82; [4C, 05, 95]
-24C8; [4C, 05, 97]
-02E2; [4C, 05, 27]
-015B; [4C, 05, 05][, 8D, 05]
-015A; [4C, 05, 8F][, 8D, 05]
-1E65; [4C, 05, 05][, 8D, 05][, A3, 05]
-1E64; [4C, 05, 8F][, 8D, 05][, A3, 05]
-015D; [4C, 05, 05][, 93, 05]
-015C; [4C, 05, 8F][, 93, 05]
-0161; [4C, 05, 05][, 97, 05]
-0160; [4C, 05, 8F][, 97, 05]
-1E67; [4C, 05, 05][, 97, 05][, A3, 05]
-1E66; [4C, 05, 8F][, 97, 05][, A3, 05]
-1E61; [4C, 05, 05][, A3, 05]
-1E60; [4C, 05, 8F][, A3, 05]
-015F; [4C, 05, 05][, A7, 05]
-015E; [4C, 05, 8F][, A7, 05]
-1E63; [4C, 05, 05][, D0 4D, 05]
-1E62; [4C, 05, 8F][, D0 4D, 05]
-1E69; [4C, 05, 05][, D0 4D, 05][, A3, 05]
-1E68; [4C, 05, 8F][, D0 4D, 05][, A3, 05]
-0219; [4C, 05, 05][, D0 7D, 05]
-0218; [4C, 05, 8F][, D0 7D, 05]
-017F; [4C, 05, 09][, E2 85, 09]
-1E9B; [4C, 05, 09][, E2 85, 09][, A3, 05]
-2120; [4C, 05, 27][40, 05, 27]
-33DB; [4C, 05, 37][4A, 05, 37]
-00DF; [4C, 05, 09][, E2 75, 09][4C, 05, 3D]
-FB06; [4C, 05, 09][4E, 05, 09]
-FB05; [4C, 05, 09][, E2 85, 09][4E, 05, 3D]
-33DC; [4C, 05, B9][52, 05, 37]
-
-1D74; [4D 60, 05, 05]
-
-1D8A; [4D 62, 05, 05]
-
-0282; [4D 64, 05, 05]
-1DB3; [4D 64, 05, 27]
-
-023F; [4D 66, 05, 05]
-
-0283; [4D 68, 05, 05]
-01A9; [4D 68, 05, 8F]
-1DB4; [4D 68, 05, 27]
-
-1D8B; [4D 6A, 05, 05]
-
-01AA; [4D 6C, 05, 05]
-
-0285; [4D 6E, 05, 05]
-
-1D98; [4D 70, 05, 05]
-
-0286; [4D 72, 05, 05]
-
-0074; [4E, 05, 05]
-FF54; [4E, 05, 07]
-036D; [4E, 05, 09]
-D835 DC2D; [4E, 05, 0B]
-D835 DC61; [4E, 05, 0B]
-D835 DC95; [4E, 05, 0B]
-D835 DCC9; [4E, 05, 0B]
-D835 DCFD; [4E, 05, 0B]
-D835 DD31; [4E, 05, 0B]
-D835 DD65; [4E, 05, 0B]
-D835 DD99; [4E, 05, 0B]
-D835 DDCD; [4E, 05, 0B]
-D835 DE01; [4E, 05, 0B]
-D835 DE35; [4E, 05, 0B]
-D835 DE69; [4E, 05, 0B]
-D835 DE9D; [4E, 05, 0B]
-24E3; [4E, 05, 0D]
-0054; [4E, 05, 8F]
-FF34; [4E, 05, 91]
-D835 DC13; [4E, 05, 95]
-D835 DC47; [4E, 05, 95]
-D835 DC7B; [4E, 05, 95]
-D835 DCAF; [4E, 05, 95]
-D835 DCE3; [4E, 05, 95]
-D835 DD17; [4E, 05, 95]
-D835 DD4B; [4E, 05, 95]
-D835 DD7F; [4E, 05, 95]
-D835 DDB3; [4E, 05, 95]
-D835 DDE7; [4E, 05, 95]
-D835 DE1B; [4E, 05, 95]
-D835 DE4F; [4E, 05, 95]
-D835 DE83; [4E, 05, 95]
-24C9; [4E, 05, 97]
-1D57; [4E, 05, 27]
-1D40; [4E, 05, B9]
-0165; [4E, 05, 05][, 97, 05]
-0164; [4E, 05, 8F][, 97, 05]
-1E97; [4E, 05, 05][, 9D, 05]
-1E6B; [4E, 05, 05][, A3, 05]
-1E6A; [4E, 05, 8F][, A3, 05]
-0163; [4E, 05, 05][, A7, 05]
-0162; [4E, 05, 8F][, A7, 05]
-1E6D; [4E, 05, 05][, D0 4D, 05]
-1E6C; [4E, 05, 8F][, D0 4D, 05]
-021B; [4E, 05, 05][, D0 7D, 05]
-021A; [4E, 05, 8F][, D0 7D, 05]
-1E71; [4E, 05, 05][, D0 CD, 05]
-1E70; [4E, 05, 8F][, D0 CD, 05]
-1E6F; [4E, 05, 05][, D1 11, 05]
-1E6E; [4E, 05, 8F][, D1 11, 05]
-02A8; [4E, 05, 09][2D 66, 05, 09]
-2121; [4E, 05, 93][30, 05, 93][3E, 05, 3D]
-1D7A; [4E, 05, 09][, E2 85, 09][36, 05, 3D]
-3394; [4E, 05, B9][36, 05, B9][5A, 05, 3D]
-2122; [4E, 05, 27][40, 05, 27]
-01BE; [4E, 05, 09][4C, 05, 09]
-02A6; [4E, 05, 09][4C, 05, 09]
-02A7; [4E, 05, 09][4D 68, 05, 09]
-
-1D1B; [4F 60, 05, 05]
-
-0167; [4F 62, 05, 05]
-0166; [4F 62, 05, 8F]
-
-023E; [4F 64, 05, 8F]
-
-1D75; [4F 66, 05, 05]
-
-01AB; [4F 68, 05, 05]
-1DB5; [4F 68, 05, 27]
-
-01AD; [4F 6A, 05, 05]
-01AC; [4F 6A, 05, 8F]
-
-0288; [4F 6C, 05, 05]
-01AE; [4F 6C, 05, 8F]
-
-0236; [4F 6E, 05, 05]
-
-0287; [4F 70, 05, 05]
-
-0075; [50, 05, 05]
-FF55; [50, 05, 07]
-0367; [50, 05, 09]
-D835 DC2E; [50, 05, 0B]
-D835 DC62; [50, 05, 0B]
-D835 DC96; [50, 05, 0B]
-D835 DCCA; [50, 05, 0B]
-D835 DCFE; [50, 05, 0B]
-D835 DD32; [50, 05, 0B]
-D835 DD66; [50, 05, 0B]
-D835 DD9A; [50, 05, 0B]
-D835 DDCE; [50, 05, 0B]
-D835 DE02; [50, 05, 0B]
-D835 DE36; [50, 05, 0B]
-D835 DE6A; [50, 05, 0B]
-D835 DE9E; [50, 05, 0B]
-24E4; [50, 05, 0D]
-0055; [50, 05, 8F]
-FF35; [50, 05, 91]
-D835 DC14; [50, 05, 95]
-D835 DC48; [50, 05, 95]
-D835 DC7C; [50, 05, 95]
-D835 DCB0; [50, 05, 95]
-D835 DCE4; [50, 05, 95]
-D835 DD18; [50, 05, 95]
-D835 DD4C; [50, 05, 95]
-D835 DD80; [50, 05, 95]
-D835 DDB4; [50, 05, 95]
-D835 DDE8; [50, 05, 95]
-D835 DE1C; [50, 05, 95]
-D835 DE50; [50, 05, 95]
-D835 DE84; [50, 05, 95]
-24CA; [50, 05, 97]
-1D58; [50, 05, 27]
-1D64; [50, 05, 29]
-1D41; [50, 05, B9]
-00FA; [50, 05, 05][, 8D, 05]
-00DA; [50, 05, 8F][, 8D, 05]
-00F9; [50, 05, 05][, 8F, 05]
-00D9; [50, 05, 8F][, 8F, 05]
-016D; [50, 05, 05][, 91, 05]
-016C; [50, 05, 8F][, 91, 05]
-00FB; [50, 05, 05][, 93, 05]
-00DB; [50, 05, 8F][, 93, 05]
-01D4; [50, 05, 05][, 97, 05]
-01D3; [50, 05, 8F][, 97, 05]
-016F; [50, 05, 05][, 99, 05]
-016E; [50, 05, 8F][, 99, 05]
-00FC; [50, 05, 05][, 9D, 05]
-00DC; [50, 05, 8F][, 9D, 05]
-01D8; [50, 05, 05][, 9D, 05][, 8D, 05]
-01D7; [50, 05, 8F][, 9D, 05][, 8D, 05]
-01DC; [50, 05, 05][, 9D, 05][, 8F, 05]
-01DB; [50, 05, 8F][, 9D, 05][, 8F, 05]
-01DA; [50, 05, 05][, 9D, 05][, 97, 05]
-01D9; [50, 05, 8F][, 9D, 05][, 97, 05]
-01D6; [50, 05, 05][, 9D, 05][, AB, 05]
-01D5; [50, 05, 8F][, 9D, 05][, AB, 05]
-0171; [50, 05, 05][, 9F, 05]
-0170; [50, 05, 8F][, 9F, 05]
-0169; [50, 05, 05][, A1, 05]
-0168; [50, 05, 8F][, A1, 05]
-1E79; [50, 05, 05][, A1, 05][, 8D, 05]
-1E78; [50, 05, 8F][, A1, 05][, 8D, 05]
-0173; [50, 05, 05][, A9, 05]
-0172; [50, 05, 8F][, A9, 05]
-016B; [50, 05, 05][, AB, 05]
-016A; [50, 05, 8F][, AB, 05]
-1E7B; [50, 05, 05][, AB, 05][, 9D, 05]
-1E7A; [50, 05, 8F][, AB, 05][, 9D, 05]
-1EE7; [50, 05, 05][, AF, 05]
-1EE6; [50, 05, 8F][, AF, 05]
-0215; [50, 05, 05][, B5, 05]
-0214; [50, 05, 8F][, B5, 05]
-0217; [50, 05, 05][, B9, 05]
-0216; [50, 05, 8F][, B9, 05]
-01B0; [50, 05, 05][, C9, 05]
-01AF; [50, 05, 8F][, C9, 05]
-1EE9; [50, 05, 05][, C9, 05][, 8D, 05]
-1EE8; [50, 05, 8F][, C9, 05][, 8D, 05]
-1EEB; [50, 05, 05][, C9, 05][, 8F, 05]
-1EEA; [50, 05, 8F][, C9, 05][, 8F, 05]
-1EEF; [50, 05, 05][, C9, 05][, A1, 05]
-1EEE; [50, 05, 8F][, C9, 05][, A1, 05]
-1EED; [50, 05, 05][, C9, 05][, AF, 05]
-1EEC; [50, 05, 8F][, C9, 05][, AF, 05]
-1EF1; [50, 05, 05][, C9, 05][, D0 4D, 05]
-1EF0; [50, 05, 8F][, C9, 05][, D0 4D, 05]
-1EE5; [50, 05, 05][, D0 4D, 05]
-1EE4; [50, 05, 8F][, D0 4D, 05]
-1E73; [50, 05, 05][, D0 5D, 05]
-1E72; [50, 05, 8F][, D0 5D, 05]
-1E77; [50, 05, 05][, D0 CD, 05]
-1E76; [50, 05, 8F][, D0 CD, 05]
-1E75; [50, 05, 05][, D0 FD, 05]
-1E74; [50, 05, 8F][, D0 FD, 05]
-
-1D1C; [51 60, 05, 05]
-1DB8; [51 60, 05, 27]
-
-1D1D; [51 62, 05, 05]
-1D59; [51 62, 05, 27]
-
-1D1E; [51 64, 05, 05]
-
-1D6B; [51 66, 05, 05]
-
-0289; [51 68, 05, 05]
-1DB6; [51 68, 05, 27]
-
-1D7E; [51 6A, 05, 05]
-
-1D99; [51 6C, 05, 05]
-
-0265; [51 6E, 05, 05]
-1DA3; [51 6E, 05, 27]
-
-02AE; [51 70, 05, 05]
-
-02AF; [51 72, 05, 05]
-
-026F; [51 74, 05, 05]
-019C; [51 74, 05, 8F]
-1D5A; [51 74, 05, 27]
-
-1D1F; [51 76, 05, 05]
-
-0270; [51 78, 05, 05]
-1DAD; [51 78, 05, 27]
-
-028A; [51 7A, 05, 05]
-01B1; [51 7A, 05, 8F]
-1DB7; [51 7A, 05, 27]
-
-1D7F; [51 7C, 05, 05]
-
-0076; [52, 05, 05]
-FF56; [52, 05, 07]
-036E; [52, 05, 09]
-2174; [52, 05, 09]
-D835 DC2F; [52, 05, 0B]
-D835 DC63; [52, 05, 0B]
-D835 DC97; [52, 05, 0B]
-D835 DCCB; [52, 05, 0B]
-D835 DCFF; [52, 05, 0B]
-D835 DD33; [52, 05, 0B]
-D835 DD67; [52, 05, 0B]
-D835 DD9B; [52, 05, 0B]
-D835 DDCF; [52, 05, 0B]
-D835 DE03; [52, 05, 0B]
-D835 DE37; [52, 05, 0B]
-D835 DE6B; [52, 05, 0B]
-D835 DE9F; [52, 05, 0B]
-24E5; [52, 05, 0D]
-0056; [52, 05, 8F]
-FF36; [52, 05, 91]
-2164; [52, 05, 93]
-D835 DC15; [52, 05, 95]
-D835 DC49; [52, 05, 95]
-D835 DC7D; [52, 05, 95]
-D835 DCB1; [52, 05, 95]
-D835 DCE5; [52, 05, 95]
-D835 DD19; [52, 05, 95]
-D835 DD4D; [52, 05, 95]
-D835 DD81; [52, 05, 95]
-D835 DDB5; [52, 05, 95]
-D835 DDE9; [52, 05, 95]
-D835 DE1D; [52, 05, 95]
-D835 DE51; [52, 05, 95]
-D835 DE85; [52, 05, 95]
-24CB; [52, 05, 97]
-1D5B; [52, 05, 27]
-1D65; [52, 05, 29]
-1E7D; [52, 05, 05][, A1, 05]
-1E7C; [52, 05, 8F][, A1, 05]
-1E7F; [52, 05, 05][, D0 4D, 05]
-1E7E; [52, 05, 8F][, D0 4D, 05]
-33DE; [52, 05, B9][0C 97, 05, 37][40, 05, 3D]
-2175; [52, 05, 09][38, 05, 09]
-2165; [52, 05, 93][38, 05, 93]
-2176; [52, 05, 09][38, 05, 09][38, 05, 3D]
-2166; [52, 05, 93][38, 05, 93][38, 05, 3D]
-2177; [52, 05, 09][38, 05, 09][38, 05, 3D][38, 05, 3D]
-2167; [52, 05, 93][38, 05, 93][38, 05, 3D][38, 05, 3D]
-
-1D20; [53 60, 05, 05]
-
-1D8C; [53 62, 05, 05]
-
-028B; [53 64, 05, 05]
-01B2; [53 64, 05, 8F]
-1DB9; [53 64, 05, 27]
-
-028C; [53 66, 05, 05]
-1DBA; [53 66, 05, 27]
-
-0077; [54, 05, 05]
-FF57; [54, 05, 07]
-D835 DC30; [54, 05, 0B]
-D835 DC64; [54, 05, 0B]
-D835 DC98; [54, 05, 0B]
-D835 DCCC; [54, 05, 0B]
-D835 DD00; [54, 05, 0B]
-D835 DD34; [54, 05, 0B]
-D835 DD68; [54, 05, 0B]
-D835 DD9C; [54, 05, 0B]
-D835 DDD0; [54, 05, 0B]
-D835 DE04; [54, 05, 0B]
-D835 DE38; [54, 05, 0B]
-D835 DE6C; [54, 05, 0B]
-D835 DEA0; [54, 05, 0B]
-24E6; [54, 05, 0D]
-0057; [54, 05, 8F]
-FF37; [54, 05, 91]
-D835 DC16; [54, 05, 95]
-D835 DC4A; [54, 05, 95]
-D835 DC7E; [54, 05, 95]
-D835 DCB2; [54, 05, 95]
-D835 DCE6; [54, 05, 95]
-D835 DD1A; [54, 05, 95]
-D835 DD4E; [54, 05, 95]
-D835 DD82; [54, 05, 95]
-D835 DDB6; [54, 05, 95]
-D835 DDEA; [54, 05, 95]
-D835 DE1E; [54, 05, 95]
-D835 DE52; [54, 05, 95]
-D835 DE86; [54, 05, 95]
-24CC; [54, 05, 97]
-02B7; [54, 05, 27]
-1D42; [54, 05, B9]
-1E83; [54, 05, 05][, 8D, 05]
-1E82; [54, 05, 8F][, 8D, 05]
-1E81; [54, 05, 05][, 8F, 05]
-1E80; [54, 05, 8F][, 8F, 05]
-0175; [54, 05, 05][, 93, 05]
-0174; [54, 05, 8F][, 93, 05]
-1E98; [54, 05, 05][, 99, 05]
-1E85; [54, 05, 05][, 9D, 05]
-1E84; [54, 05, 8F][, 9D, 05]
-1E87; [54, 05, 05][, A3, 05]
-1E86; [54, 05, 8F][, A3, 05]
-1E89; [54, 05, 05][, D0 4D, 05]
-1E88; [54, 05, 8F][, D0 4D, 05]
-33DD; [54, 05, B9][2A, 05, 37]
-
-1D21; [55 60, 05, 05]
-
-028D; [55 62, 05, 05]
-
-0078; [56, 05, 05]
-FF58; [56, 05, 07]
-036F; [56, 05, 09]
-2179; [56, 05, 09]
-D835 DC31; [56, 05, 0B]
-D835 DC65; [56, 05, 0B]
-D835 DC99; [56, 05, 0B]
-D835 DCCD; [56, 05, 0B]
-D835 DD01; [56, 05, 0B]
-D835 DD35; [56, 05, 0B]
-D835 DD69; [56, 05, 0B]
-D835 DD9D; [56, 05, 0B]
-D835 DDD1; [56, 05, 0B]
-D835 DE05; [56, 05, 0B]
-D835 DE39; [56, 05, 0B]
-D835 DE6D; [56, 05, 0B]
-D835 DEA1; [56, 05, 0B]
-24E7; [56, 05, 0D]
-0058; [56, 05, 8F]
-FF38; [56, 05, 91]
-2169; [56, 05, 93]
-D835 DC17; [56, 05, 95]
-D835 DC4B; [56, 05, 95]
-D835 DC7F; [56, 05, 95]
-D835 DCB3; [56, 05, 95]
-D835 DCE7; [56, 05, 95]
-D835 DD1B; [56, 05, 95]
-D835 DD4F; [56, 05, 95]
-D835 DD83; [56, 05, 95]
-D835 DDB7; [56, 05, 95]
-D835 DDEB; [56, 05, 95]
-D835 DE1F; [56, 05, 95]
-D835 DE53; [56, 05, 95]
-D835 DE87; [56, 05, 95]
-24CD; [56, 05, 97]
-02E3; [56, 05, 27]
-2093; [56, 05, 29]
-1E8D; [56, 05, 05][, 9D, 05]
-1E8C; [56, 05, 8F][, 9D, 05]
-1E8B; [56, 05, 05][, A3, 05]
-1E8A; [56, 05, 8F][, A3, 05]
-217A; [56, 05, 09][38, 05, 09]
-216A; [56, 05, 93][38, 05, 93]
-217B; [56, 05, 09][38, 05, 09][38, 05, 3D]
-216B; [56, 05, 93][38, 05, 93][38, 05, 3D]
-
-1D8D; [57 60, 05, 05]
-
-0079; [58, 05, 05]
-FF59; [58, 05, 07]
-D835 DC32; [58, 05, 0B]
-D835 DC66; [58, 05, 0B]
-D835 DC9A; [58, 05, 0B]
-D835 DCCE; [58, 05, 0B]
-D835 DD02; [58, 05, 0B]
-D835 DD36; [58, 05, 0B]
-D835 DD6A; [58, 05, 0B]
-D835 DD9E; [58, 05, 0B]
-D835 DDD2; [58, 05, 0B]
-D835 DE06; [58, 05, 0B]
-D835 DE3A; [58, 05, 0B]
-D835 DE6E; [58, 05, 0B]
-D835 DEA2; [58, 05, 0B]
-24E8; [58, 05, 0D]
-0059; [58, 05, 8F]
-FF39; [58, 05, 91]
-D835 DC18; [58, 05, 95]
-D835 DC4C; [58, 05, 95]
-D835 DC80; [58, 05, 95]
-D835 DCB4; [58, 05, 95]
-D835 DCE8; [58, 05, 95]
-D835 DD1C; [58, 05, 95]
-D835 DD50; [58, 05, 95]
-D835 DD84; [58, 05, 95]
-D835 DDB8; [58, 05, 95]
-D835 DDEC; [58, 05, 95]
-D835 DE20; [58, 05, 95]
-D835 DE54; [58, 05, 95]
-D835 DE88; [58, 05, 95]
-24CE; [58, 05, 97]
-02B8; [58, 05, 27]
-00FD; [58, 05, 05][, 8D, 05]
-00DD; [58, 05, 8F][, 8D, 05]
-1EF3; [58, 05, 05][, 8F, 05]
-1EF2; [58, 05, 8F][, 8F, 05]
-0177; [58, 05, 05][, 93, 05]
-0176; [58, 05, 8F][, 93, 05]
-1E99; [58, 05, 05][, 99, 05]
-00FF; [58, 05, 05][, 9D, 05]
-0178; [58, 05, 8F][, 9D, 05]
-1EF9; [58, 05, 05][, A1, 05]
-1EF8; [58, 05, 8F][, A1, 05]
-1E8F; [58, 05, 05][, A3, 05]
-1E8E; [58, 05, 8F][, A3, 05]
-0233; [58, 05, 05][, AB, 05]
-0232; [58, 05, 8F][, AB, 05]
-1EF7; [58, 05, 05][, AF, 05]
-1EF6; [58, 05, 8F][, AF, 05]
-1EF5; [58, 05, 05][, D0 4D, 05]
-1EF4; [58, 05, 8F][, D0 4D, 05]
-
-028F; [59 60, 05, 05]
-
-01B4; [59 62, 05, 05]
-01B3; [59 62, 05, 8F]
-
-007A; [5A, 05, 05]
-FF5A; [5A, 05, 07]
-D835 DC33; [5A, 05, 0B]
-D835 DC67; [5A, 05, 0B]
-D835 DC9B; [5A, 05, 0B]
-D835 DCCF; [5A, 05, 0B]
-D835 DD03; [5A, 05, 0B]
-D835 DD37; [5A, 05, 0B]
-D835 DD6B; [5A, 05, 0B]
-D835 DD9F; [5A, 05, 0B]
-D835 DDD3; [5A, 05, 0B]
-D835 DE07; [5A, 05, 0B]
-D835 DE3B; [5A, 05, 0B]
-D835 DE6F; [5A, 05, 0B]
-D835 DEA3; [5A, 05, 0B]
-24E9; [5A, 05, 0D]
-005A; [5A, 05, 8F]
-FF3A; [5A, 05, 91]
-2124; [5A, 05, 95]
-2128; [5A, 05, 95]
-D835 DC19; [5A, 05, 95]
-D835 DC4D; [5A, 05, 95]
-D835 DC81; [5A, 05, 95]
-D835 DCB5; [5A, 05, 95]
-D835 DCE9; [5A, 05, 95]
-D835 DD85; [5A, 05, 95]
-D835 DDB9; [5A, 05, 95]
-D835 DDED; [5A, 05, 95]
-D835 DE21; [5A, 05, 95]
-D835 DE55; [5A, 05, 95]
-D835 DE89; [5A, 05, 95]
-24CF; [5A, 05, 97]
-1DBB; [5A, 05, 27]
-017A; [5A, 05, 05][, 8D, 05]
-0179; [5A, 05, 8F][, 8D, 05]
-1E91; [5A, 05, 05][, 93, 05]
-1E90; [5A, 05, 8F][, 93, 05]
-017E; [5A, 05, 05][, 97, 05]
-017D; [5A, 05, 8F][, 97, 05]
-017C; [5A, 05, 05][, A3, 05]
-017B; [5A, 05, 8F][, A3, 05]
-1E93; [5A, 05, 05][, D0 4D, 05]
-1E92; [5A, 05, 8F][, D0 4D, 05]
-1E95; [5A, 05, 05][, D1 11, 05]
-1E94; [5A, 05, 8F][, D1 11, 05]
-018D; [5A, 05, 09][54, 05, 09]
-
-1D22; [5B 60, 05, 05]
-
-01B6; [5B 62, 05, 05]
-01B5; [5B 62, 05, 8F]
-
-1D76; [5B 64, 05, 05]
-
-1D8E; [5B 66, 05, 05]
-
-0225; [5B 68, 05, 05]
-0224; [5B 68, 05, 8F]
-
-0290; [5B 6A, 05, 05]
-1DBC; [5B 6A, 05, 27]
-
-0291; [5B 6C, 05, 05]
-1DBD; [5B 6C, 05, 27]
-
-0240; [5B 6E, 05, 05]
-
-0292; [5B 70, 05, 05]
-01B7; [5B 70, 05, 8F]
-1DBE; [5B 70, 05, 27]
-01EF; [5B 70, 05, 05][, 97, 05]
-01EE; [5B 70, 05, 8F][, 97, 05]
-
-1D23; [5B 72, 05, 05]
-
-01B9; [5B 74, 05, 05]
-01B8; [5B 74, 05, 8F]
-
-1D9A; [5B 76, 05, 05]
-
-01BA; [5B 78, 05, 05]
-
-0293; [5B 7A, 05, 05]
-
-021D; [5B 7C, 05, 05]
-021C; [5B 7C, 05, 8F]
-
-00FE; [5B 7E, 05, 05]
-00DE; [5B 7E, 05, 8F]
-
-01BF; [5B 80, 05, 05]
-01F7; [5B 80, 05, 8F]
-
-01BB; [5B 82, 05, 05]
-
-01A8; [5B 84, 05, 05]
-01A7; [5B 84, 05, 8F]
-
-01BD; [5B 86, 05, 05]
-01BC; [5B 86, 05, 8F]
-
-0185; [5B 88, 05, 05]
-0184; [5B 88, 05, 8F]
-
-0294; [5B 8A, 05, 05]
-0241; [5B 8A, 05, 8F]
-
-02C0; [5B 8C, 05, 05]
-
-02BC; [5B 8E, 05, 05]
-0149; [5B 8E, 05, 09][42, 05, 09]
-
-02EE; [5B 90, 05, 05]
-
-02BE; [5B 92, 05, 05]
-
-0295; [5B 94, 05, 05]
-02E4; [5B 94, 05, 27]
-
-02BF; [5B 96, 05, 05]
-
-02C1; [5B 98, 05, 05]
-
-1D24; [5B 9A, 05, 05]
-
-1D25; [5B 9C, 05, 05]
-1D5C; [5B 9C, 05, 27]
-
-02A1; [5B 9E, 05, 05]
-
-02A2; [5B A0, 05, 05]
-
-0296; [5B A2, 05, 05]
-
-01C0; [5B A4, 05, 05]
-
-01C1; [5B A6, 05, 05]
-
-01C2; [5B A8, 05, 05]
-
-01C3; [5B AA, 05, 05]
-
-0297; [5B AC, 05, 05]
-
-0298; [5B AE, 05, 05]
-
-02AC; [5B B0, 05, 05]
-
-02AD; [5B B2, 05, 05]
-
-03B1; [5C 20, 05, 05]
-D835 DEC2; [5C 20, 05, 0B]
-D835 DEFC; [5C 20, 05, 0B]
-D835 DF36; [5C 20, 05, 0B]
-D835 DF70; [5C 20, 05, 0B]
-D835 DFAA; [5C 20, 05, 0B]
-0391; [5C 20, 05, 8F]
-D835 DEA8; [5C 20, 05, 95]
-D835 DEE2; [5C 20, 05, 95]
-D835 DF1C; [5C 20, 05, 95]
-D835 DF56; [5C 20, 05, 95]
-D835 DF90; [5C 20, 05, 95]
-1F00; [5C 20, 05, 05][, 89, 05]
-1F08; [5C 20, 05, 8F][, 89, 05]
-1F04; [5C 20, 05, 05][, 89, 05][, 8D, 05]
-1F0C; [5C 20, 05, 8F][, 89, 05][, 8D, 05]
-1F84; [5C 20, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
-1F8C; [5C 20, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
-1F02; [5C 20, 05, 05][, 89, 05][, 8F, 05]
-1F0A; [5C 20, 05, 8F][, 89, 05][, 8F, 05]
-1F82; [5C 20, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
-1F8A; [5C 20, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
-1F06; [5C 20, 05, 05][, 89, 05][, 9B, 05]
-1F0E; [5C 20, 05, 8F][, 89, 05][, 9B, 05]
-1F86; [5C 20, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
-1F8E; [5C 20, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
-1F80; [5C 20, 05, 05][, 89, 05][, D1 E1, 05]
-1F88; [5C 20, 05, 8F][, 89, 05][, D1 E1, 05]
-1F01; [5C 20, 05, 05][, 8B, 05]
-1F09; [5C 20, 05, 8F][, 8B, 05]
-1F05; [5C 20, 05, 05][, 8B, 05][, 8D, 05]
-1F0D; [5C 20, 05, 8F][, 8B, 05][, 8D, 05]
-1F85; [5C 20, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1F8D; [5C 20, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1F03; [5C 20, 05, 05][, 8B, 05][, 8F, 05]
-1F0B; [5C 20, 05, 8F][, 8B, 05][, 8F, 05]
-1F83; [5C 20, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1F8B; [5C 20, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1F07; [5C 20, 05, 05][, 8B, 05][, 9B, 05]
-1F0F; [5C 20, 05, 8F][, 8B, 05][, 9B, 05]
-1F87; [5C 20, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1F8F; [5C 20, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1F81; [5C 20, 05, 05][, 8B, 05][, D1 E1, 05]
-1F89; [5C 20, 05, 8F][, 8B, 05][, D1 E1, 05]
-03AC; [5C 20, 05, 05][, 8D, 05]
-1F71; [5C 20, 05, 05][, 8D, 05]
-0386; [5C 20, 05, 8F][, 8D, 05]
-1FBB; [5C 20, 05, 8F][, 8D, 05]
-1FB4; [5C 20, 05, 05][, 8D, 05][, D1 E1, 05]
-1F70; [5C 20, 05, 05][, 8F, 05]
-1FBA; [5C 20, 05, 8F][, 8F, 05]
-1FB2; [5C 20, 05, 05][, 8F, 05][, D1 E1, 05]
-1FB0; [5C 20, 05, 05][, 91, 05]
-1FB8; [5C 20, 05, 8F][, 91, 05]
-1FB6; [5C 20, 05, 05][, 9B, 05]
-1FB7; [5C 20, 05, 05][, 9B, 05][, D1 E1, 05]
-1FB1; [5C 20, 05, 05][, AB, 05]
-1FB9; [5C 20, 05, 8F][, AB, 05]
-1FB3; [5C 20, 05, 05][, D1 E1, 05]
-1FBC; [5C 20, 05, 8F][, D1 E1, 05]
-
-03B2; [5C 22, 05, 05]
-03D0; [5C 22, 05, 09]
-D835 DEC3; [5C 22, 05, 0B]
-D835 DEFD; [5C 22, 05, 0B]
-D835 DF37; [5C 22, 05, 0B]
-D835 DF71; [5C 22, 05, 0B]
-D835 DFAB; [5C 22, 05, 0B]
-0392; [5C 22, 05, 8F]
-D835 DEA9; [5C 22, 05, 95]
-D835 DEE3; [5C 22, 05, 95]
-D835 DF1D; [5C 22, 05, 95]
-D835 DF57; [5C 22, 05, 95]
-D835 DF91; [5C 22, 05, 95]
-1D5D; [5C 22, 05, 27]
-1D66; [5C 22, 05, 29]
-
-03B3; [5C 24, 05, 05]
-213D; [5C 24, 05, 0B]
-D835 DEC4; [5C 24, 05, 0B]
-D835 DEFE; [5C 24, 05, 0B]
-D835 DF38; [5C 24, 05, 0B]
-D835 DF72; [5C 24, 05, 0B]
-D835 DFAC; [5C 24, 05, 0B]
-0393; [5C 24, 05, 8F]
-213E; [5C 24, 05, 95]
-D835 DEAA; [5C 24, 05, 95]
-D835 DEE4; [5C 24, 05, 95]
-D835 DF1E; [5C 24, 05, 95]
-D835 DF58; [5C 24, 05, 95]
-D835 DF92; [5C 24, 05, 95]
-1D5E; [5C 24, 05, 27]
-1D67; [5C 24, 05, 29]
-
-1D26; [5C 26, 05, 05]
-
-03B4; [5C 28, 05, 05]
-D835 DEC5; [5C 28, 05, 0B]
-D835 DEFF; [5C 28, 05, 0B]
-D835 DF39; [5C 28, 05, 0B]
-D835 DF73; [5C 28, 05, 0B]
-D835 DFAD; [5C 28, 05, 0B]
-0394; [5C 28, 05, 8F]
-D835 DEAB; [5C 28, 05, 95]
-D835 DEE5; [5C 28, 05, 95]
-D835 DF1F; [5C 28, 05, 95]
-D835 DF59; [5C 28, 05, 95]
-D835 DF93; [5C 28, 05, 95]
-1D5F; [5C 28, 05, 27]
-
-03B5; [5C 2A, 05, 05]
-03F5; [5C 2A, 05, 09]
-D835 DEC6; [5C 2A, 05, 0B]
-D835 DEDC; [5C 2A, 05, 0B]
-D835 DF00; [5C 2A, 05, 0B]
-D835 DF16; [5C 2A, 05, 0B]
-D835 DF3A; [5C 2A, 05, 0B]
-D835 DF50; [5C 2A, 05, 0B]
-D835 DF74; [5C 2A, 05, 0B]
-D835 DF8A; [5C 2A, 05, 0B]
-D835 DFAE; [5C 2A, 05, 0B]
-D835 DFC4; [5C 2A, 05, 0B]
-0395; [5C 2A, 05, 8F]
-D835 DEAC; [5C 2A, 05, 95]
-D835 DEE6; [5C 2A, 05, 95]
-D835 DF20; [5C 2A, 05, 95]
-D835 DF5A; [5C 2A, 05, 95]
-D835 DF94; [5C 2A, 05, 95]
-1F10; [5C 2A, 05, 05][, 89, 05]
-1F18; [5C 2A, 05, 8F][, 89, 05]
-1F14; [5C 2A, 05, 05][, 89, 05][, 8D, 05]
-1F1C; [5C 2A, 05, 8F][, 89, 05][, 8D, 05]
-1F12; [5C 2A, 05, 05][, 89, 05][, 8F, 05]
-1F1A; [5C 2A, 05, 8F][, 89, 05][, 8F, 05]
-1F11; [5C 2A, 05, 05][, 8B, 05]
-1F19; [5C 2A, 05, 8F][, 8B, 05]
-1F15; [5C 2A, 05, 05][, 8B, 05][, 8D, 05]
-1F1D; [5C 2A, 05, 8F][, 8B, 05][, 8D, 05]
-1F13; [5C 2A, 05, 05][, 8B, 05][, 8F, 05]
-1F1B; [5C 2A, 05, 8F][, 8B, 05][, 8F, 05]
-03AD; [5C 2A, 05, 05][, 8D, 05]
-1F73; [5C 2A, 05, 05][, 8D, 05]
-0388; [5C 2A, 05, 8F][, 8D, 05]
-1FC9; [5C 2A, 05, 8F][, 8D, 05]
-1F72; [5C 2A, 05, 05][, 8F, 05]
-1FC8; [5C 2A, 05, 8F][, 8F, 05]
-
-03DD; [5C 2C, 05, 05]
-03DC; [5C 2C, 05, 8F]
-
-03DB; [5C 2E, 05, 05]
-03DA; [5C 2E, 05, 8F]
-
-03B6; [5C 30, 05, 05]
-D835 DEC7; [5C 30, 05, 0B]
-D835 DF01; [5C 30, 05, 0B]
-D835 DF3B; [5C 30, 05, 0B]
-D835 DF75; [5C 30, 05, 0B]
-D835 DFAF; [5C 30, 05, 0B]
-0396; [5C 30, 05, 8F]
-D835 DEAD; [5C 30, 05, 95]
-D835 DEE7; [5C 30, 05, 95]
-D835 DF21; [5C 30, 05, 95]
-D835 DF5B; [5C 30, 05, 95]
-D835 DF95; [5C 30, 05, 95]
-
-03B7; [5C 32, 05, 05]
-D835 DEC8; [5C 32, 05, 0B]
-D835 DF02; [5C 32, 05, 0B]
-D835 DF3C; [5C 32, 05, 0B]
-D835 DF76; [5C 32, 05, 0B]
-D835 DFB0; [5C 32, 05, 0B]
-0397; [5C 32, 05, 8F]
-D835 DEAE; [5C 32, 05, 95]
-D835 DEE8; [5C 32, 05, 95]
-D835 DF22; [5C 32, 05, 95]
-D835 DF5C; [5C 32, 05, 95]
-D835 DF96; [5C 32, 05, 95]
-1F20; [5C 32, 05, 05][, 89, 05]
-1F28; [5C 32, 05, 8F][, 89, 05]
-1F24; [5C 32, 05, 05][, 89, 05][, 8D, 05]
-1F2C; [5C 32, 05, 8F][, 89, 05][, 8D, 05]
-1F94; [5C 32, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
-1F9C; [5C 32, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
-1F22; [5C 32, 05, 05][, 89, 05][, 8F, 05]
-1F2A; [5C 32, 05, 8F][, 89, 05][, 8F, 05]
-1F92; [5C 32, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
-1F9A; [5C 32, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
-1F26; [5C 32, 05, 05][, 89, 05][, 9B, 05]
-1F2E; [5C 32, 05, 8F][, 89, 05][, 9B, 05]
-1F96; [5C 32, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
-1F9E; [5C 32, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
-1F90; [5C 32, 05, 05][, 89, 05][, D1 E1, 05]
-1F98; [5C 32, 05, 8F][, 89, 05][, D1 E1, 05]
-1F21; [5C 32, 05, 05][, 8B, 05]
-1F29; [5C 32, 05, 8F][, 8B, 05]
-1F25; [5C 32, 05, 05][, 8B, 05][, 8D, 05]
-1F2D; [5C 32, 05, 8F][, 8B, 05][, 8D, 05]
-1F95; [5C 32, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1F9D; [5C 32, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1F23; [5C 32, 05, 05][, 8B, 05][, 8F, 05]
-1F2B; [5C 32, 05, 8F][, 8B, 05][, 8F, 05]
-1F93; [5C 32, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1F9B; [5C 32, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1F27; [5C 32, 05, 05][, 8B, 05][, 9B, 05]
-1F2F; [5C 32, 05, 8F][, 8B, 05][, 9B, 05]
-1F97; [5C 32, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1F9F; [5C 32, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1F91; [5C 32, 05, 05][, 8B, 05][, D1 E1, 05]
-1F99; [5C 32, 05, 8F][, 8B, 05][, D1 E1, 05]
-03AE; [5C 32, 05, 05][, 8D, 05]
-1F75; [5C 32, 05, 05][, 8D, 05]
-0389; [5C 32, 05, 8F][, 8D, 05]
-1FCB; [5C 32, 05, 8F][, 8D, 05]
-1FC4; [5C 32, 05, 05][, 8D, 05][, D1 E1, 05]
-1F74; [5C 32, 05, 05][, 8F, 05]
-1FCA; [5C 32, 05, 8F][, 8F, 05]
-1FC2; [5C 32, 05, 05][, 8F, 05][, D1 E1, 05]
-1FC6; [5C 32, 05, 05][, 9B, 05]
-1FC7; [5C 32, 05, 05][, 9B, 05][, D1 E1, 05]
-1FC3; [5C 32, 05, 05][, D1 E1, 05]
-1FCC; [5C 32, 05, 8F][, D1 E1, 05]
-
-03B8; [5C 34, 05, 05]
-03D1; [5C 34, 05, 09]
-D835 DEC9; [5C 34, 05, 0B]
-D835 DEDD; [5C 34, 05, 0B]
-D835 DF03; [5C 34, 05, 0B]
-D835 DF17; [5C 34, 05, 0B]
-D835 DF3D; [5C 34, 05, 0B]
-D835 DF51; [5C 34, 05, 0B]
-D835 DF77; [5C 34, 05, 0B]
-D835 DF8B; [5C 34, 05, 0B]
-D835 DFB1; [5C 34, 05, 0B]
-D835 DFC5; [5C 34, 05, 0B]
-0398; [5C 34, 05, 8F]
-03F4; [5C 34, 05, 93]
-D835 DEAF; [5C 34, 05, 95]
-D835 DEB9; [5C 34, 05, 95]
-D835 DEE9; [5C 34, 05, 95]
-D835 DEF3; [5C 34, 05, 95]
-D835 DF23; [5C 34, 05, 95]
-D835 DF2D; [5C 34, 05, 95]
-D835 DF5D; [5C 34, 05, 95]
-D835 DF67; [5C 34, 05, 95]
-D835 DF97; [5C 34, 05, 95]
-D835 DFA1; [5C 34, 05, 95]
-1DBF; [5C 34, 05, 27]
-
-03B9; [5C 36, 05, 05]
-1FBE; [5C 36, 05, 05]
-037A; [5C 36, 05, 09]
-D835 DECA; [5C 36, 05, 0B]
-D835 DF04; [5C 36, 05, 0B]
-D835 DF3E; [5C 36, 05, 0B]
-D835 DF78; [5C 36, 05, 0B]
-D835 DFB2; [5C 36, 05, 0B]
-0399; [5C 36, 05, 8F]
-D835 DEB0; [5C 36, 05, 95]
-D835 DEEA; [5C 36, 05, 95]
-D835 DF24; [5C 36, 05, 95]
-D835 DF5E; [5C 36, 05, 95]
-D835 DF98; [5C 36, 05, 95]
-1F30; [5C 36, 05, 05][, 89, 05]
-1F38; [5C 36, 05, 8F][, 89, 05]
-1F34; [5C 36, 05, 05][, 89, 05][, 8D, 05]
-1F3C; [5C 36, 05, 8F][, 89, 05][, 8D, 05]
-1F32; [5C 36, 05, 05][, 89, 05][, 8F, 05]
-1F3A; [5C 36, 05, 8F][, 89, 05][, 8F, 05]
-1F36; [5C 36, 05, 05][, 89, 05][, 9B, 05]
-1F3E; [5C 36, 05, 8F][, 89, 05][, 9B, 05]
-1F31; [5C 36, 05, 05][, 8B, 05]
-1F39; [5C 36, 05, 8F][, 8B, 05]
-1F35; [5C 36, 05, 05][, 8B, 05][, 8D, 05]
-1F3D; [5C 36, 05, 8F][, 8B, 05][, 8D, 05]
-1F33; [5C 36, 05, 05][, 8B, 05][, 8F, 05]
-1F3B; [5C 36, 05, 8F][, 8B, 05][, 8F, 05]
-1F37; [5C 36, 05, 05][, 8B, 05][, 9B, 05]
-1F3F; [5C 36, 05, 8F][, 8B, 05][, 9B, 05]
-03AF; [5C 36, 05, 05][, 8D, 05]
-1F77; [5C 36, 05, 05][, 8D, 05]
-038A; [5C 36, 05, 8F][, 8D, 05]
-1FDB; [5C 36, 05, 8F][, 8D, 05]
-1F76; [5C 36, 05, 05][, 8F, 05]
-1FDA; [5C 36, 05, 8F][, 8F, 05]
-1FD0; [5C 36, 05, 05][, 91, 05]
-1FD8; [5C 36, 05, 8F][, 91, 05]
-1FD6; [5C 36, 05, 05][, 9B, 05]
-03CA; [5C 36, 05, 05][, 9D, 05]
-03AA; [5C 36, 05, 8F][, 9D, 05]
-0390; [5C 36, 05, 05][, 9D, 05][, 8D, 05]
-1FD3; [5C 36, 05, 05][, 9D, 05][, 8D, 05]
-1FD2; [5C 36, 05, 05][, 9D, 05][, 8F, 05]
-1FD7; [5C 36, 05, 05][, 9D, 05][, 9B, 05]
-1FD1; [5C 36, 05, 05][, AB, 05]
-1FD9; [5C 36, 05, 8F][, AB, 05]
-
-03F3; [5C 38, 05, 05]
-
-03BA; [5C 3A, 05, 05]
-03F0; [5C 3A, 05, 09]
-D835 DECB; [5C 3A, 05, 0B]
-D835 DEDE; [5C 3A, 05, 0B]
-D835 DF05; [5C 3A, 05, 0B]
-D835 DF18; [5C 3A, 05, 0B]
-D835 DF3F; [5C 3A, 05, 0B]
-D835 DF52; [5C 3A, 05, 0B]
-D835 DF79; [5C 3A, 05, 0B]
-D835 DF8C; [5C 3A, 05, 0B]
-D835 DFB3; [5C 3A, 05, 0B]
-D835 DFC6; [5C 3A, 05, 0B]
-039A; [5C 3A, 05, 8F]
-D835 DEB1; [5C 3A, 05, 95]
-D835 DEEB; [5C 3A, 05, 95]
-D835 DF25; [5C 3A, 05, 95]
-D835 DF5F; [5C 3A, 05, 95]
-D835 DF99; [5C 3A, 05, 95]
-03D7; [5C 3A, 05, 09][5C 20, 05, 09][5C 36, 05, 3D]
-
-03BB; [5C 3C, 05, 05]
-D835 DECC; [5C 3C, 05, 0B]
-D835 DF06; [5C 3C, 05, 0B]
-D835 DF40; [5C 3C, 05, 0B]
-D835 DF7A; [5C 3C, 05, 0B]
-D835 DFB4; [5C 3C, 05, 0B]
-039B; [5C 3C, 05, 8F]
-D835 DEB2; [5C 3C, 05, 95]
-D835 DEEC; [5C 3C, 05, 95]
-D835 DF26; [5C 3C, 05, 95]
-D835 DF60; [5C 3C, 05, 95]
-D835 DF9A; [5C 3C, 05, 95]
-
-1D27; [5C 3E, 05, 05]
-
-03BC; [5C 40, 05, 05]
-00B5; [5C 40, 05, 09]
-D835 DECD; [5C 40, 05, 0B]
-D835 DF07; [5C 40, 05, 0B]
-D835 DF41; [5C 40, 05, 0B]
-D835 DF7B; [5C 40, 05, 0B]
-D835 DFB5; [5C 40, 05, 0B]
-039C; [5C 40, 05, 8F]
-D835 DEB3; [5C 40, 05, 95]
-D835 DEED; [5C 40, 05, 95]
-D835 DF27; [5C 40, 05, 95]
-D835 DF61; [5C 40, 05, 95]
-D835 DF9B; [5C 40, 05, 95]
-3382; [5C 40, 05, 37][28, 05, B9]
-338C; [5C 40, 05, 37][32, 05, B9]
-338D; [5C 40, 05, 37][34, 05, 37]
-3395; [5C 40, 05, 37][3E, 05, 37]
-339B; [5C 40, 05, 37][40, 05, 37]
-33B2; [5C 40, 05, 37][4C, 05, 37]
-33B6; [5C 40, 05, 37][52, 05, B9]
-33BC; [5C 40, 05, 37][54, 05, B9]
-
-03BD; [5C 42, 05, 05]
-D835 DECE; [5C 42, 05, 0B]
-D835 DF08; [5C 42, 05, 0B]
-D835 DF42; [5C 42, 05, 0B]
-D835 DF7C; [5C 42, 05, 0B]
-D835 DFB6; [5C 42, 05, 0B]
-039D; [5C 42, 05, 8F]
-D835 DEB4; [5C 42, 05, 95]
-D835 DEEE; [5C 42, 05, 95]
-D835 DF28; [5C 42, 05, 95]
-D835 DF62; [5C 42, 05, 95]
-D835 DF9C; [5C 42, 05, 95]
-
-03BE; [5C 44, 05, 05]
-D835 DECF; [5C 44, 05, 0B]
-D835 DF09; [5C 44, 05, 0B]
-D835 DF43; [5C 44, 05, 0B]
-D835 DF7D; [5C 44, 05, 0B]
-D835 DFB7; [5C 44, 05, 0B]
-039E; [5C 44, 05, 8F]
-D835 DEB5; [5C 44, 05, 95]
-D835 DEEF; [5C 44, 05, 95]
-D835 DF29; [5C 44, 05, 95]
-D835 DF63; [5C 44, 05, 95]
-D835 DF9D; [5C 44, 05, 95]
-
-03BF; [5C 46, 05, 05]
-D835 DED0; [5C 46, 05, 0B]
-D835 DF0A; [5C 46, 05, 0B]
-D835 DF44; [5C 46, 05, 0B]
-D835 DF7E; [5C 46, 05, 0B]
-D835 DFB8; [5C 46, 05, 0B]
-039F; [5C 46, 05, 8F]
-D835 DEB6; [5C 46, 05, 95]
-D835 DEF0; [5C 46, 05, 95]
-D835 DF2A; [5C 46, 05, 95]
-D835 DF64; [5C 46, 05, 95]
-D835 DF9E; [5C 46, 05, 95]
-1F40; [5C 46, 05, 05][, 89, 05]
-1F48; [5C 46, 05, 8F][, 89, 05]
-1F44; [5C 46, 05, 05][, 89, 05][, 8D, 05]
-1F4C; [5C 46, 05, 8F][, 89, 05][, 8D, 05]
-1F42; [5C 46, 05, 05][, 89, 05][, 8F, 05]
-1F4A; [5C 46, 05, 8F][, 89, 05][, 8F, 05]
-1F41; [5C 46, 05, 05][, 8B, 05]
-1F49; [5C 46, 05, 8F][, 8B, 05]
-1F45; [5C 46, 05, 05][, 8B, 05][, 8D, 05]
-1F4D; [5C 46, 05, 8F][, 8B, 05][, 8D, 05]
-1F43; [5C 46, 05, 05][, 8B, 05][, 8F, 05]
-1F4B; [5C 46, 05, 8F][, 8B, 05][, 8F, 05]
-03CC; [5C 46, 05, 05][, 8D, 05]
-1F79; [5C 46, 05, 05][, 8D, 05]
-038C; [5C 46, 05, 8F][, 8D, 05]
-1FF9; [5C 46, 05, 8F][, 8D, 05]
-1F78; [5C 46, 05, 05][, 8F, 05]
-1FF8; [5C 46, 05, 8F][, 8F, 05]
-
-03C0; [5C 48, 05, 05]
-03D6; [5C 48, 05, 09]
-213C; [5C 48, 05, 0B]
-D835 DED1; [5C 48, 05, 0B]
-D835 DEE1; [5C 48, 05, 0B]
-D835 DF0B; [5C 48, 05, 0B]
-D835 DF1B; [5C 48, 05, 0B]
-D835 DF45; [5C 48, 05, 0B]
-D835 DF55; [5C 48, 05, 0B]
-D835 DF7F; [5C 48, 05, 0B]
-D835 DF8F; [5C 48, 05, 0B]
-D835 DFB9; [5C 48, 05, 0B]
-D835 DFC9; [5C 48, 05, 0B]
-03A0; [5C 48, 05, 8F]
-213F; [5C 48, 05, 95]
-D835 DEB7; [5C 48, 05, 95]
-D835 DEF1; [5C 48, 05, 95]
-D835 DF2B; [5C 48, 05, 95]
-D835 DF65; [5C 48, 05, 95]
-D835 DF9F; [5C 48, 05, 95]
-
-1D28; [5C 4A, 05, 05]
-
-03FB; [5C 4C, 05, 05]
-03FA; [5C 4C, 05, 8F]
-
-03DF; [5C 4E, 05, 05]
-03DE; [5C 4E, 05, 8F]
-
-03D9; [5C 50, 05, 05]
-03D8; [5C 50, 05, 8F]
-
-03C1; [5C 52, 05, 05]
-03F1; [5C 52, 05, 09]
-D835 DED2; [5C 52, 05, 0B]
-D835 DEE0; [5C 52, 05, 0B]
-D835 DF0C; [5C 52, 05, 0B]
-D835 DF1A; [5C 52, 05, 0B]
-D835 DF46; [5C 52, 05, 0B]
-D835 DF54; [5C 52, 05, 0B]
-D835 DF80; [5C 52, 05, 0B]
-D835 DF8E; [5C 52, 05, 0B]
-D835 DFBA; [5C 52, 05, 0B]
-D835 DFC8; [5C 52, 05, 0B]
-03A1; [5C 52, 05, 8F]
-D835 DEB8; [5C 52, 05, 95]
-D835 DEF2; [5C 52, 05, 95]
-D835 DF2C; [5C 52, 05, 95]
-D835 DF66; [5C 52, 05, 95]
-D835 DFA0; [5C 52, 05, 95]
-1D68; [5C 52, 05, 29]
-1FE4; [5C 52, 05, 05][, 89, 05]
-1FE5; [5C 52, 05, 05][, 8B, 05]
-1FEC; [5C 52, 05, 8F][, 8B, 05]
-
-1D29; [5C 54, 05, 05]
-
-03FC; [5C 56, 05, 05]
-
-03C3; [5C 58, 05, 05]
-03F2; [5C 58, 05, 09]
-D835 DED3; [5C 58, 05, 0B]
-D835 DED4; [5C 58, 05, 0B]
-D835 DF0D; [5C 58, 05, 0B]
-D835 DF0E; [5C 58, 05, 0B]
-D835 DF47; [5C 58, 05, 0B]
-D835 DF48; [5C 58, 05, 0B]
-D835 DF81; [5C 58, 05, 0B]
-D835 DF82; [5C 58, 05, 0B]
-D835 DFBB; [5C 58, 05, 0B]
-D835 DFBC; [5C 58, 05, 0B]
-03A3; [5C 58, 05, 8F]
-03F9; [5C 58, 05, 93]
-D835 DEBA; [5C 58, 05, 95]
-D835 DEF4; [5C 58, 05, 95]
-D835 DF2E; [5C 58, 05, 95]
-D835 DF68; [5C 58, 05, 95]
-D835 DFA2; [5C 58, 05, 95]
-03C2; [5C 58, 05, 31]
-03FE; [5C 58, 05, 93][7A BC, 05, 09]
-
-03FD; [5C 5A, 05, 8F]
-03FF; [5C 5A, 05, 93][7A BC, 05, 09]
-
-03C4; [5C 5C, 05, 05]
-D835 DED5; [5C 5C, 05, 0B]
-D835 DF0F; [5C 5C, 05, 0B]
-D835 DF49; [5C 5C, 05, 0B]
-D835 DF83; [5C 5C, 05, 0B]
-D835 DFBD; [5C 5C, 05, 0B]
-03A4; [5C 5C, 05, 8F]
-D835 DEBB; [5C 5C, 05, 95]
-D835 DEF5; [5C 5C, 05, 95]
-D835 DF2F; [5C 5C, 05, 95]
-D835 DF69; [5C 5C, 05, 95]
-D835 DFA3; [5C 5C, 05, 95]
-
-03C5; [5C 5E, 05, 05]
-D835 DED6; [5C 5E, 05, 0B]
-D835 DF10; [5C 5E, 05, 0B]
-D835 DF4A; [5C 5E, 05, 0B]
-D835 DF84; [5C 5E, 05, 0B]
-D835 DFBE; [5C 5E, 05, 0B]
-03A5; [5C 5E, 05, 8F]
-03D2; [5C 5E, 05, 93]
-D835 DEBC; [5C 5E, 05, 95]
-D835 DEF6; [5C 5E, 05, 95]
-D835 DF30; [5C 5E, 05, 95]
-D835 DF6A; [5C 5E, 05, 95]
-D835 DFA4; [5C 5E, 05, 95]
-1F50; [5C 5E, 05, 05][, 89, 05]
-1F54; [5C 5E, 05, 05][, 89, 05][, 8D, 05]
-1F52; [5C 5E, 05, 05][, 89, 05][, 8F, 05]
-1F56; [5C 5E, 05, 05][, 89, 05][, 9B, 05]
-1F51; [5C 5E, 05, 05][, 8B, 05]
-1F59; [5C 5E, 05, 8F][, 8B, 05]
-1F55; [5C 5E, 05, 05][, 8B, 05][, 8D, 05]
-1F5D; [5C 5E, 05, 8F][, 8B, 05][, 8D, 05]
-1F53; [5C 5E, 05, 05][, 8B, 05][, 8F, 05]
-1F5B; [5C 5E, 05, 8F][, 8B, 05][, 8F, 05]
-1F57; [5C 5E, 05, 05][, 8B, 05][, 9B, 05]
-1F5F; [5C 5E, 05, 8F][, 8B, 05][, 9B, 05]
-03CD; [5C 5E, 05, 05][, 8D, 05]
-1F7B; [5C 5E, 05, 05][, 8D, 05]
-038E; [5C 5E, 05, 8F][, 8D, 05]
-1FEB; [5C 5E, 05, 8F][, 8D, 05]
-03D3; [5C 5E, 05, 93][, 8D, 05]
-1F7A; [5C 5E, 05, 05][, 8F, 05]
-1FEA; [5C 5E, 05, 8F][, 8F, 05]
-1FE0; [5C 5E, 05, 05][, 91, 05]
-1FE8; [5C 5E, 05, 8F][, 91, 05]
-1FE6; [5C 5E, 05, 05][, 9B, 05]
-03CB; [5C 5E, 05, 05][, 9D, 05]
-03AB; [5C 5E, 05, 8F][, 9D, 05]
-03D4; [5C 5E, 05, 93][, 9D, 05]
-03B0; [5C 5E, 05, 05][, 9D, 05][, 8D, 05]
-1FE3; [5C 5E, 05, 05][, 9D, 05][, 8D, 05]
-1FE2; [5C 5E, 05, 05][, 9D, 05][, 8F, 05]
-1FE7; [5C 5E, 05, 05][, 9D, 05][, 9B, 05]
-1FE1; [5C 5E, 05, 05][, AB, 05]
-1FE9; [5C 5E, 05, 8F][, AB, 05]
-
-03C6; [5C 60, 05, 05]
-03D5; [5C 60, 05, 09]
-D835 DED7; [5C 60, 05, 0B]
-D835 DEDF; [5C 60, 05, 0B]
-D835 DF11; [5C 60, 05, 0B]
-D835 DF19; [5C 60, 05, 0B]
-D835 DF4B; [5C 60, 05, 0B]
-D835 DF53; [5C 60, 05, 0B]
-D835 DF85; [5C 60, 05, 0B]
-D835 DF8D; [5C 60, 05, 0B]
-D835 DFBF; [5C 60, 05, 0B]
-D835 DFC7; [5C 60, 05, 0B]
-03A6; [5C 60, 05, 8F]
-D835 DEBD; [5C 60, 05, 95]
-D835 DEF7; [5C 60, 05, 95]
-D835 DF31; [5C 60, 05, 95]
-D835 DF6B; [5C 60, 05, 95]
-D835 DFA5; [5C 60, 05, 95]
-1D60; [5C 60, 05, 27]
-1D69; [5C 60, 05, 29]
-
-03C7; [5C 62, 05, 05]
-D835 DED8; [5C 62, 05, 0B]
-D835 DF12; [5C 62, 05, 0B]
-D835 DF4C; [5C 62, 05, 0B]
-D835 DF86; [5C 62, 05, 0B]
-D835 DFC0; [5C 62, 05, 0B]
-03A7; [5C 62, 05, 8F]
-D835 DEBE; [5C 62, 05, 95]
-D835 DEF8; [5C 62, 05, 95]
-D835 DF32; [5C 62, 05, 95]
-D835 DF6C; [5C 62, 05, 95]
-D835 DFA6; [5C 62, 05, 95]
-1D61; [5C 62, 05, 27]
-1D6A; [5C 62, 05, 29]
-
-03C8; [5C 64, 05, 05]
-D835 DED9; [5C 64, 05, 0B]
-D835 DF13; [5C 64, 05, 0B]
-D835 DF4D; [5C 64, 05, 0B]
-D835 DF87; [5C 64, 05, 0B]
-D835 DFC1; [5C 64, 05, 0B]
-03A8; [5C 64, 05, 8F]
-D835 DEBF; [5C 64, 05, 95]
-D835 DEF9; [5C 64, 05, 95]
-D835 DF33; [5C 64, 05, 95]
-D835 DF6D; [5C 64, 05, 95]
-D835 DFA7; [5C 64, 05, 95]
-
-1D2A; [5C 66, 05, 05]
-
-03C9; [5C 68, 05, 05]
-D835 DEDA; [5C 68, 05, 0B]
-D835 DF14; [5C 68, 05, 0B]
-D835 DF4E; [5C 68, 05, 0B]
-D835 DF88; [5C 68, 05, 0B]
-D835 DFC2; [5C 68, 05, 0B]
-03A9; [5C 68, 05, 8F]
-2126; [5C 68, 05, 8F]
-D835 DEC0; [5C 68, 05, 95]
-D835 DEFA; [5C 68, 05, 95]
-D835 DF34; [5C 68, 05, 95]
-D835 DF6E; [5C 68, 05, 95]
-D835 DFA8; [5C 68, 05, 95]
-1F60; [5C 68, 05, 05][, 89, 05]
-1F68; [5C 68, 05, 8F][, 89, 05]
-1F64; [5C 68, 05, 05][, 89, 05][, 8D, 05]
-1F6C; [5C 68, 05, 8F][, 89, 05][, 8D, 05]
-1FA4; [5C 68, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
-1FAC; [5C 68, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
-1F62; [5C 68, 05, 05][, 89, 05][, 8F, 05]
-1F6A; [5C 68, 05, 8F][, 89, 05][, 8F, 05]
-1FA2; [5C 68, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
-1FAA; [5C 68, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
-1F66; [5C 68, 05, 05][, 89, 05][, 9B, 05]
-1F6E; [5C 68, 05, 8F][, 89, 05][, 9B, 05]
-1FA6; [5C 68, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
-1FAE; [5C 68, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
-1FA0; [5C 68, 05, 05][, 89, 05][, D1 E1, 05]
-1FA8; [5C 68, 05, 8F][, 89, 05][, D1 E1, 05]
-1F61; [5C 68, 05, 05][, 8B, 05]
-1F69; [5C 68, 05, 8F][, 8B, 05]
-1F65; [5C 68, 05, 05][, 8B, 05][, 8D, 05]
-1F6D; [5C 68, 05, 8F][, 8B, 05][, 8D, 05]
-1FA5; [5C 68, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1FAD; [5C 68, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
-1F63; [5C 68, 05, 05][, 8B, 05][, 8F, 05]
-1F6B; [5C 68, 05, 8F][, 8B, 05][, 8F, 05]
-1FA3; [5C 68, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1FAB; [5C 68, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
-1F67; [5C 68, 05, 05][, 8B, 05][, 9B, 05]
-1F6F; [5C 68, 05, 8F][, 8B, 05][, 9B, 05]
-1FA7; [5C 68, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1FAF; [5C 68, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
-1FA1; [5C 68, 05, 05][, 8B, 05][, D1 E1, 05]
-1FA9; [5C 68, 05, 8F][, 8B, 05][, D1 E1, 05]
-03CE; [5C 68, 05, 05][, 8D, 05]
-1F7D; [5C 68, 05, 05][, 8D, 05]
-038F; [5C 68, 05, 8F][, 8D, 05]
-1FFB; [5C 68, 05, 8F][, 8D, 05]
-1FF4; [5C 68, 05, 05][, 8D, 05][, D1 E1, 05]
-1F7C; [5C 68, 05, 05][, 8F, 05]
-1FFA; [5C 68, 05, 8F][, 8F, 05]
-1FF2; [5C 68, 05, 05][, 8F, 05][, D1 E1, 05]
-1FF6; [5C 68, 05, 05][, 9B, 05]
-1FF7; [5C 68, 05, 05][, 9B, 05][, D1 E1, 05]
-1FF3; [5C 68, 05, 05][, D1 E1, 05]
-1FFC; [5C 68, 05, 8F][, D1 E1, 05]
-
-03E1; [5C 6A, 05, 05]
-03E0; [5C 6A, 05, 8F]
-
-03F8; [5C 6C, 05, 05]
-03F7; [5C 6C, 05, 8F]
-
-2C81; [5D 20, 05, 05]
-2C80; [5D 20, 05, 8F]
-
-2C83; [5D 22, 05, 05]
-2C82; [5D 22, 05, 8F]
-
-2C85; [5D 24, 05, 05]
-2C84; [5D 24, 05, 8F]
-
-2C87; [5D 26, 05, 05]
-2C86; [5D 26, 05, 8F]
-
-2C89; [5D 28, 05, 05]
-2C88; [5D 28, 05, 8F]
-
-2CB7; [5D 2A, 05, 05]
-2CB6; [5D 2A, 05, 8F]
-
-2C8B; [5D 2C, 05, 05]
-2C8A; [5D 2C, 05, 8F]
-
-2C8D; [5D 2E, 05, 05]
-2C8C; [5D 2E, 05, 8F]
-
-2C8F; [5D 30, 05, 05]
-2C8E; [5D 30, 05, 8F]
-
-2C91; [5D 32, 05, 05]
-2C90; [5D 32, 05, 8F]
-
-2C93; [5D 34, 05, 05]
-2C92; [5D 34, 05, 8F]
-
-2C95; [5D 36, 05, 05]
-2C94; [5D 36, 05, 8F]
-2CE4; [5D 36, 05, 09][5D 20, 05, 09][5D 34, 05, 3D]
-
-2CB9; [5D 38, 05, 05]
-2CB8; [5D 38, 05, 8F]
-
-2C97; [5D 3A, 05, 05]
-2C96; [5D 3A, 05, 8F]
+D800 DD56; [22 F7, 05, 05]
-2C99; [5D 3C, 05, 05]
-2C98; [5D 3C, 05, 8F]
+D800 DD57; [22 F9, 05, 05]
-2C9B; [5D 3E, 05, 05]
-2C9A; [5D 3E, 05, 8F]
+D800 DD60; [22 FB, 05, 05]
-2CBB; [5D 40, 05, 05]
-2CBA; [5D 40, 05, 8F]
+D800 DD61; [22 FD, 05, 05]
-2CBD; [5D 42, 05, 05]
-2CBC; [5D 42, 05, 8F]
+D800 DD62; [23 05, 05, 05]
-2C9D; [5D 44, 05, 05]
-2C9C; [5D 44, 05, 8F]
+D800 DD63; [23 07, 05, 05]
-2C9F; [5D 46, 05, 05]
-2C9E; [5D 46, 05, 8F]
+D800 DD64; [23 09, 05, 05]
-2CA1; [5D 48, 05, 05]
-2CA0; [5D 48, 05, 8F]
+D800 DD65; [23 0B, 05, 05]
-2CA3; [5D 4A, 05, 05]
-2CA2; [5D 4A, 05, 8F]
+D800 DD66; [23 0D, 05, 05]
-2CA5; [5D 4C, 05, 05]
-2CA4; [5D 4C, 05, 8F]
+D800 DD67; [23 0F, 05, 05]
-2CA7; [5D 4E, 05, 05]
-2CA6; [5D 4E, 05, 8F]
+D800 DD68; [23 11, 05, 05]
-2CA9; [5D 50, 05, 05]
-2CA8; [5D 50, 05, 8F]
+D800 DD69; [23 13, 05, 05]
-2CAB; [5D 52, 05, 05]
-2CAA; [5D 52, 05, 8F]
+D800 DD6A; [23 15, 05, 05]
-2CAD; [5D 54, 05, 05]
-2CAC; [5D 54, 05, 8F]
+D800 DD6B; [23 17, 05, 05]
-2CAF; [5D 56, 05, 05]
-2CAE; [5D 56, 05, 8F]
+D800 DD6C; [23 19, 05, 05]
-2CB1; [5D 58, 05, 05]
-2CB0; [5D 58, 05, 8F]
+D800 DD6D; [23 1B, 05, 05]
-2CBF; [5D 5A, 05, 05]
-2CBE; [5D 5A, 05, 8F]
+D800 DD6E; [23 1D, 05, 05]
-2CC1; [5D 5C, 05, 05]
-2CC0; [5D 5C, 05, 8F]
+D800 DD6F; [23 1F, 05, 05]
-03E3; [5D 5E, 05, 05]
-03E2; [5D 5E, 05, 8F]
+D800 DD70; [23 21, 05, 05]
-2CC3; [5D 60, 05, 05]
-2CC2; [5D 60, 05, 8F]
+D800 DD71; [23 23, 05, 05]
-2CC5; [5D 62, 05, 05]
-2CC4; [5D 62, 05, 8F]
+D800 DD72; [23 25, 05, 05]
-2CC7; [5D 64, 05, 05]
-2CC6; [5D 64, 05, 8F]
+D800 DD74; [23 27, 05, 05]
-03E5; [5D 66, 05, 05]
-03E4; [5D 66, 05, 8F]
+D800 DD75; [23 29, 05, 05]
-03E7; [5D 68, 05, 05]
-03E6; [5D 68, 05, 8F]
+D800 DD76; [23 2B, 05, 05]
-2CC9; [5D 6A, 05, 05]
-2CC8; [5D 6A, 05, 8F]
+D800 DD77; [23 2D, 05, 05]
-03E9; [5D 6C, 05, 05]
-03E8; [5D 6C, 05, 8F]
+D800 DD78; [23 2F, 05, 05]
-2CCB; [5D 6E, 05, 05]
-2CCA; [5D 6E, 05, 8F]
+D800 DFD3; [23 31, 05, 05]
-2CCD; [5D 70, 05, 05]
-2CCC; [5D 70, 05, 8F]
+D800 DFD4; [23 33, 05, 05]
-2CCF; [5D 72, 05, 05]
-2CCE; [5D 72, 05, 8F]
+D800 DFD5; [23 35, 05, 05]
-2CD1; [5D 74, 05, 05]
-2CD0; [5D 74, 05, 8F]
+D802 DD17; [23 37, 05, 05]
-2CD3; [5D 76, 05, 05]
-2CD2; [5D 76, 05, 8F]
+D802 DD18; [23 39, 05, 05]
-2CD5; [5D 78, 05, 05]
-2CD4; [5D 78, 05, 8F]
+D802 DD19; [23 3B, 05, 05]
-03EB; [5D 7A, 05, 05]
-03EA; [5D 7A, 05, 8F]
+D802 DE44; [23 3D, 05, 05]
-2CD7; [5D 7C, 05, 05]
-2CD6; [5D 7C, 05, 8F]
+D802 DE45; [23 3F, 05, 05]
-03ED; [5D 7E, 05, 05]
-03EC; [5D 7E, 05, 8F]
+D802 DE46; [23 41, 05, 05]
-2CD9; [5D 80, 05, 05]
-2CD8; [5D 80, 05, 8F]
+D802 DE47; [23 43, 05, 05]
-2CDB; [5D 82, 05, 05]
-2CDA; [5D 82, 05, 8F]
+D809 DC32; [23 45, 05, 05]
-2CDD; [5D 84, 05, 05]
-2CDC; [5D 84, 05, 8F]
+D809 DC33; [23 47, 05, 05]
-03EF; [5D 86, 05, 05]
-03EE; [5D 86, 05, 8F]
+D809 DC56; [23 49, 05, 05]
-2CB3; [5D 88, 05, 05]
-2CB2; [5D 88, 05, 8F]
+D809 DC57; [23 4B, 05, 05]
-2CB5; [5D 8A, 05, 05]
-2CB4; [5D 8A, 05, 8F]
+D809 DC5A; [23 4D, 05, 05]
-2CDF; [5D 8C, 05, 05]
-2CDE; [5D 8C, 05, 8F]
+D809 DC5B; [23 4F, 05, 05]
-2CE1; [5D 8E, 05, 05]
-2CE0; [5D 8E, 05, 8F]
+D809 DC5C; [23 51, 05, 05]
-2CE3; [5D 90, 05, 05]
-2CE2; [5D 90, 05, 8F]
+D809 DC5D; [23 53, 05, 05]
-0430; [5E 20, 05, 05]
-0410; [5E 20, 05, 8F]
+D809 DC5E; [23 55, 05, 05]
-0430 0306; [5E 22, 05, 05]
-04D1; [5E 22, 05, 05]
-0410 0306; [5E 22, 05, 8F]
-04D0; [5E 22, 05, 8F]
+D809 DC5F; [23 57, 05, 05]
-0430 0308; [5E 24, 05, 05]
-04D3; [5E 24, 05, 05]
-0410 0308; [5E 24, 05, 8F]
-04D2; [5E 24, 05, 8F]
+D809 DC60; [23 59, 05, 05]
-04D9; [5E 26, 05, 05]
-04D8; [5E 26, 05, 8F]
+D809 DC61; [23 5B, 05, 05]
-04D9 0308; [5E 28, 05, 05]
-04DB; [5E 28, 05, 05]
-04D8 0308; [5E 28, 05, 8F]
-04DA; [5E 28, 05, 8F]
+D809 DC62; [23 5D, 05, 05]
-04D5; [5E 2A, 05, 05]
-04D4; [5E 2A, 05, 8F]
+D834 DF69; [23 5F, 05, 05]
-0431; [5E 2C, 05, 05]
-0411; [5E 2C, 05, 8F]
+D834 DF6A; [23 61, 05, 05]
-0432; [5E 2E, 05, 05]
-0412; [5E 2E, 05, 8F]
+D834 DF6B; [23 63, 05, 05]
-0433; [5E 30, 05, 05]
-0413; [5E 30, 05, 8F]
-0491; [5E 30, 05, 09][, E2 85, 09]
-0490; [5E 30, 05, 93][, E2 85, 09]
+D834 DF6C; [23 65, 05, 05]
-0493; [5E 32, 05, 05]
-0492; [5E 32, 05, 8F]
+D834 DF6D; [23 67, 05, 05]
-0495; [5E 34, 05, 05]
-0494; [5E 34, 05, 8F]
+D834 DF6E; [23 69, 05, 05]
-04F7; [5E 36, 05, 05]
-04F6; [5E 36, 05, 8F]
+D834 DF6F; [23 6B, 05, 05]
-0434; [5E 38, 05, 05]
-0414; [5E 38, 05, 8F]
+D834 DF70; [23 6D, 05, 05]
-0501; [5E 3A, 05, 05]
-0500; [5E 3A, 05, 8F]
+D834 DF71; [23 6F, 05, 05]
-0452; [5E 3C, 05, 05]
-0402; [5E 3C, 05, 8F]
+[variable top = 236F] # END OF VARIABLE SECTION!!!
-0503; [5E 3E, 05, 05]
-0502; [5E 3E, 05, 8F]
+02D0; [26 20, 05, 05]
-0433 0301; [5E 40, 05, 05]
-0433 0341; [5E 40, 05, 05]
-0453; [5E 40, 05, 05]
-0403; [5E 40, 05, 8F]
-0413 0301; [5E 40, 05, 8F]
-0413 0341; [5E 40, 05, 8F]
+02D1; [26 22, 05, 05]
-0499; [5E 42, 05, 05]
-0498; [5E 42, 05, 8F]
+0E46; [26 24, 05, 05]
-0435; [5E 44, 05, 05]
-0415; [5E 44, 05, 8F]
-0450; [5E 44, 05, 05][, 8F, 05]
-0400; [5E 44, 05, 8F][, 8F, 05]
-0451; [5E 44, 05, 05][, 9D, 05]
-0401; [5E 44, 05, 8F][, 9D, 05]
+0EC6; [26 26, 05, 05]
-0435 0306; [5E 46, 05, 05]
-04D7; [5E 46, 05, 05]
-0415 0306; [5E 46, 05, 8F]
-04D6; [5E 46, 05, 8F]
+3005; [26 28, 05, 05]
-0454; [5E 48, 05, 05]
-0404; [5E 48, 05, 8F]
+303B; [26 2A, 05, 05]
-0436; [5E 4A, 05, 05]
-0416; [5E 4A, 05, 8F]
-04C2; [5E 4A, 05, 05][, 91, 05]
-04C1; [5E 4A, 05, 8F][, 91, 05]
+3031; [26 2C, 05, 05]
+3032; [26 2C, 05, 05][, E2 25, 05]
-0436 0308; [5E 4C, 05, 05]
-04DD; [5E 4C, 05, 05]
-0416 0308; [5E 4C, 05, 8F]
-04DC; [5E 4C, 05, 8F]
+3033; [26 2E, 05, 05]
+3034; [26 2E, 05, 05][, E2 25, 05]
-0497; [5E 4E, 05, 05]
-0496; [5E 4E, 05, 8F]
+3035; [26 30, 05, 05]
-0437; [5E 50, 05, 05]
-0417; [5E 50, 05, 8F]
+309D; [26 32, 05, 05]
+309E; [26 32, 05, 05][, E2 25, 05]
-0505; [5E 52, 05, 05]
-0504; [5E 52, 05, 8F]
+30FC; [26 34, 05, 05]
+FF70; [26 34, 05, A3]
-0437 0308; [5E 54, 05, 05]
-04DF; [5E 54, 05, 05]
-0417 0308; [5E 54, 05, 8F]
-04DE; [5E 54, 05, 8F]
+30FD; [26 36, 05, 05]
+30FE; [26 36, 05, 05][, E2 25, 05]
-0455; [5E 56, 05, 05]
-0405; [5E 56, 05, 8F]
+00A4; [26 38, 05, 05]
-04E1; [5E 58, 05, 05]
-04E0; [5E 58, 05, 8F]
+00A2; [26 3A, 05, 05]
+FFE0; [26 3A, 05, 07]
-0507; [5E 5A, 05, 05]
-0506; [5E 5A, 05, 8F]
+0024; [26 3C, 05, 05]
+FF04; [26 3C, 05, 07]
+FE69; [26 3C, 05, 1D]
-0438; [5E 5C, 05, 05]
-0418; [5E 5C, 05, 8F]
-045D; [5E 5C, 05, 05][, 8F, 05]
-040D; [5E 5C, 05, 8F][, 8F, 05]
-04E3; [5E 5C, 05, 05][, AB, 05]
-04E2; [5E 5C, 05, 8F][, AB, 05]
+00A3; [26 3E, 05, 05]
+FFE1; [26 3E, 05, 07]
-048B; [5E 5E, 05, 05]
-048A; [5E 5E, 05, 8F]
+00A5; [26 40, 05, 05]
+FFE5; [26 40, 05, 07]
-0438 0308; [5E 60, 05, 05]
-04E5; [5E 60, 05, 05]
-0418 0308; [5E 60, 05, 8F]
-04E4; [5E 60, 05, 8F]
+060B; [26 42, 05, 05]
-0456; [5E 62, 05, 05]
-0406; [5E 62, 05, 8F]
+09F2; [26 44, 05, 05]
-0456 0308; [5E 64, 05, 05]
-0457; [5E 64, 05, 05]
-0406 0308; [5E 64, 05, 8F]
-0407; [5E 64, 05, 8F]
+09F3; [26 46, 05, 05]
-0438 0306; [5E 66, 05, 05]
-0439; [5E 66, 05, 05]
-0418 0306; [5E 66, 05, 8F]
-0419; [5E 66, 05, 8F]
+0AF1; [26 48, 05, 05]
-0458; [5E 68, 05, 05]
-0408; [5E 68, 05, 8F]
+0BF9; [26 4A, 05, 05]
-043A; [5E 6A, 05, 05]
-041A; [5E 6A, 05, 8F]
+0E3F; [26 4C, 05, 05]
-049B; [5E 6C, 05, 05]
-049A; [5E 6C, 05, 8F]
+17DB; [26 4E, 05, 05]
-04C4; [5E 6E, 05, 05]
-04C3; [5E 6E, 05, 8F]
+20A0; [26 50, 05, 05]
-04A1; [5E 70, 05, 05]
-04A0; [5E 70, 05, 8F]
+20A1; [26 52, 05, 05]
-049F; [5E 72, 05, 05]
-049E; [5E 72, 05, 8F]
+20A2; [26 54, 05, 05]
-049D; [5E 74, 05, 05]
-049C; [5E 74, 05, 8F]
+20A3; [26 56, 05, 05]
-043B; [5E 76, 05, 05]
-041B; [5E 76, 05, 8F]
+20A4; [26 58, 05, 05]
-1D2B; [5E 78, 05, 05]
+20A5; [26 5A, 05, 05]
-04C6; [5E 7A, 05, 05]
-04C5; [5E 7A, 05, 8F]
+20A6; [26 5C, 05, 05]
-0459; [5E 7C, 05, 05]
-0409; [5E 7C, 05, 8F]
+20A7; [26 5E, 05, 05]
-0509; [5E 7E, 05, 05]
-0508; [5E 7E, 05, 8F]
+20A9; [26 60, 05, 05]
+FFE6; [26 60, 05, 07]
-043C; [5E 80, 05, 05]
-041C; [5E 80, 05, 8F]
+20AA; [26 62, 05, 05]
-04CE; [5E 82, 05, 05]
-04CD; [5E 82, 05, 8F]
+20AB; [26 64, 05, 05]
-043D; [5E 84, 05, 05]
-041D; [5E 84, 05, 8F]
-1D78; [5E 84, 05, 27]
+20AC; [26 66, 05, 05]
-04CA; [5E 86, 05, 05]
-04C9; [5E 86, 05, 8F]
+20AD; [26 68, 05, 05]
-04A3; [5E 88, 05, 05]
-04A2; [5E 88, 05, 8F]
+20AE; [26 6A, 05, 05]
-04C8; [5E 8A, 05, 05]
-04C7; [5E 8A, 05, 8F]
+20AF; [26 6C, 05, 05]
-04A5; [5E 8C, 05, 05]
-04A4; [5E 8C, 05, 8F]
+20B0; [26 6E, 05, 05]
-045A; [5E 8E, 05, 05]
-040A; [5E 8E, 05, 8F]
+20B1; [26 70, 05, 05]
-050B; [5E 90, 05, 05]
-050A; [5E 90, 05, 8F]
+20B2; [26 72, 05, 05]
+
+20B3; [26 74, 05, 05]
+
+20B4; [26 76, 05, 05]
+
+20B5; [26 78, 05, 05]
+
+0030; [26 7A, 05, 05]
+FF10; [26 7A, 05, 07]
+D835 DFCE; [26 7A, 05, 0B]
+D835 DFD8; [26 7A, 05, 0B]
+D835 DFE2; [26 7A, 05, 0B]
+D835 DFEC; [26 7A, 05, 0B]
+D835 DFF6; [26 7A, 05, 0B]
+24EA; [26 7A, 05, 0D]
+24FF; [26 7A, 05, 0D]
+2070; [26 7A, 05, 27]
+2080; [26 7A, 05, 29]
+0660; [26 7A, 05, 05][, E4 9D, 05]
+06F0; [26 7A, 05, 05][, E4 AD, 05]
+07C0; [26 7A, 05, 05][, E4 BD, 05]
+D801 DCA0; [26 7A, 05, 05][, E4 DD, 05]
+0966; [26 7A, 05, 05][, E4 ED, 05]
+09E6; [26 7A, 05, 05][, E4 FD, 05]
+0A66; [26 7A, 05, 05][, E5 11, 05]
+0AE6; [26 7A, 05, 05][, E5 21, 05]
+0B66; [26 7A, 05, 05][, E5 31, 05]
+0BE6; [26 7A, 05, 05][, E5 41, 05]
+0C66; [26 7A, 05, 05][, E5 51, 05]
+0CE6; [26 7A, 05, 05][, E5 61, 05]
+0D66; [26 7A, 05, 05][, E5 71, 05]
+1946; [26 7A, 05, 05][, E5 81, 05]
+19D0; [26 7A, 05, 05][, E5 91, 05]
+0E50; [26 7A, 05, 05][, E5 A1, 05]
+0ED0; [26 7A, 05, 05][, E5 B1, 05]
+0F20; [26 7A, 05, 05][, E5 C1, 05]
+0F33; [26 7A, 05, 09][, E5 C1, 09]
+1040; [26 7A, 05, 05][, E5 D1, 05]
+17E0; [26 7A, 05, 05][, E5 E1, 05]
+17F0; [26 7A, 05, 05][, E5 F1, 05]
+1B50; [26 7A, 05, 05][, E6 05, 05]
+1810; [26 7A, 05, 05][, E6 15, 05]
+3007; [26 7A, 05, 05][, E6 25, 05]
+D800 DD8A; [26 7A, 05, 05][, E6 45, 05]
+3358; [26 7A, 05, 09][E0 4B 22, 05, 09]
+
+0031; [26 7C, 05, 05]
+FF11; [26 7C, 05, 07]
+D835 DFCF; [26 7C, 05, 0B]
+D835 DFD9; [26 7C, 05, 0B]
+D835 DFE3; [26 7C, 05, 0B]
+D835 DFED; [26 7C, 05, 0B]
+D835 DFF7; [26 7C, 05, 0B]
+2460; [26 7C, 05, 0D]
+24F5; [26 7C, 05, 0D]
+2776; [26 7C, 05, 0D]
+2780; [26 7C, 05, 0D]
+278A; [26 7C, 05, 0D]
+00B9; [26 7C, 05, 27]
+2081; [26 7C, 05, 29]
+0661; [26 7C, 05, 05][, E4 9D, 05]
+06F1; [26 7C, 05, 05][, E4 AD, 05]
+07C1; [26 7C, 05, 05][, E4 BD, 05]
+1369; [26 7C, 05, 05][, E4 CD, 05]
+D801 DCA1; [26 7C, 05, 05][, E4 DD, 05]
+0967; [26 7C, 05, 05][, E4 ED, 05]
+09E7; [26 7C, 05, 05][, E4 FD, 05]
+09F4; [26 7C, 05, 05][, E4 FD, 05]
+0A67; [26 7C, 05, 05][, E5 11, 05]
+0AE7; [26 7C, 05, 05][, E5 21, 05]
+0B67; [26 7C, 05, 05][, E5 31, 05]
+0BE7; [26 7C, 05, 05][, E5 41, 05]
+0C67; [26 7C, 05, 05][, E5 51, 05]
+0CE7; [26 7C, 05, 05][, E5 61, 05]
+0D67; [26 7C, 05, 05][, E5 71, 05]
+1947; [26 7C, 05, 05][, E5 81, 05]
+19D1; [26 7C, 05, 05][, E5 91, 05]
+0E51; [26 7C, 05, 05][, E5 A1, 05]
+0ED1; [26 7C, 05, 05][, E5 B1, 05]
+0F21; [26 7C, 05, 05][, E5 C1, 05]
+0F2A; [26 7C, 05, 09][, E5 C1, 09]
+1041; [26 7C, 05, 05][, E5 D1, 05]
+17E1; [26 7C, 05, 05][, E5 E1, 05]
+17F1; [26 7C, 05, 05][, E5 F1, 05]
+1B51; [26 7C, 05, 05][, E6 05, 05]
+1811; [26 7C, 05, 05][, E6 15, 05]
+3021; [26 7C, 05, 05][, E6 25, 05]
+D800 DD07; [26 7C, 05, 05][, E6 35, 05]
+D800 DD42; [26 7C, 05, 05][, E6 45, 05]
+D800 DD58; [26 7C, 05, 05][, E6 45, 05]
+D800 DD59; [26 7C, 05, 05][, E6 45, 05]
+D800 DD5A; [26 7C, 05, 05][, E6 45, 05]
+D800 DF20; [26 7C, 05, 05][, E6 55, 05]
+D800 DFD1; [26 7C, 05, 05][, E6 65, 05]
+D809 DC15; [26 7C, 05, 05][, E6 75, 05]
+D809 DC1E; [26 7C, 05, 05][, E6 75, 05]
+D809 DC2C; [26 7C, 05, 05][, E6 75, 05]
+D809 DC34; [26 7C, 05, 05][, E6 75, 05]
+D809 DC4F; [26 7C, 05, 05][, E6 75, 05]
+D809 DC58; [26 7C, 05, 05][, E6 75, 05]
+D802 DD16; [26 7C, 05, 05][, E6 85, 05]
+D802 DE40; [26 7C, 05, 05][, E6 95, 05]
+D834 DF60; [26 7C, 05, 05][, E6 A5, 05]
+2488; [26 7C, 05, 09][08 1D, 05, 09]
+215F; [26 7C, 05, 3B][09 57, 05, 3B]
+00BD; [26 7C, 05, 3B][09 57, 05, 3B][26 7E, 05, 3D]
+2153; [26 7C, 05, 3B][09 57, 05, 3B][26 80, 05, 3D]
+00BC; [26 7C, 05, 3B][09 57, 05, 3B][26 82, 05, 3D]
+2155; [26 7C, 05, 3B][09 57, 05, 3B][26 84, 05, 3D]
+2159; [26 7C, 05, 3B][09 57, 05, 3B][26 86, 05, 3D]
+215B; [26 7C, 05, 3B][09 57, 05, 3B][26 8A, 05, 3D]
+2469; [26 7C, 05, 0D][26 7A, 05, 0D]
+24FE; [26 7C, 05, 0D][26 7A, 05, 0D]
+277F; [26 7C, 05, 0D][26 7A, 05, 0D]
+2789; [26 7C, 05, 0D][26 7A, 05, 0D]
+2793; [26 7C, 05, 0D][26 7A, 05, 0D]
+2491; [26 7C, 05, 09][26 7A, 05, 09][08 1D, 05, 3D]
+33E9; [26 7C, 05, 09][26 7A, 05, 09][E0 34 F0, 05, 3D]
+32C9; [26 7C, 05, 09][26 7A, 05, 09][E0 37 48, 05, 3D]
+3362; [26 7C, 05, 09][26 7A, 05, 09][E0 4B 22, 05, 3D]
+246A; [26 7C, 05, 0D][26 7C, 05, 0D]
+24EB; [26 7C, 05, 0D][26 7C, 05, 0D]
+2492; [26 7C, 05, 09][26 7C, 05, 09][08 1D, 05, 3D]
+33EA; [26 7C, 05, 09][26 7C, 05, 09][E0 34 F0, 05, 3D]
+32CA; [26 7C, 05, 09][26 7C, 05, 09][E0 37 48, 05, 3D]
+3363; [26 7C, 05, 09][26 7C, 05, 09][E0 4B 22, 05, 3D]
+246B; [26 7C, 05, 0D][26 7E, 05, 0D]
+24EC; [26 7C, 05, 0D][26 7E, 05, 0D]
+2493; [26 7C, 05, 09][26 7E, 05, 09][08 1D, 05, 3D]
+33EB; [26 7C, 05, 09][26 7E, 05, 09][E0 34 F0, 05, 3D]
+32CB; [26 7C, 05, 09][26 7E, 05, 09][E0 37 48, 05, 3D]
+3364; [26 7C, 05, 09][26 7E, 05, 09][E0 4B 22, 05, 3D]
+246C; [26 7C, 05, 0D][26 80, 05, 0D]
+24ED; [26 7C, 05, 0D][26 80, 05, 0D]
+2494; [26 7C, 05, 09][26 80, 05, 09][08 1D, 05, 3D]
+33EC; [26 7C, 05, 09][26 80, 05, 09][E0 34 F0, 05, 3D]
+3365; [26 7C, 05, 09][26 80, 05, 09][E0 4B 22, 05, 3D]
+246D; [26 7C, 05, 0D][26 82, 05, 0D]
+24EE; [26 7C, 05, 0D][26 82, 05, 0D]
+2495; [26 7C, 05, 09][26 82, 05, 09][08 1D, 05, 3D]
+33ED; [26 7C, 05, 09][26 82, 05, 09][E0 34 F0, 05, 3D]
+3366; [26 7C, 05, 09][26 82, 05, 09][E0 4B 22, 05, 3D]
+246E; [26 7C, 05, 0D][26 84, 05, 0D]
+24EF; [26 7C, 05, 0D][26 84, 05, 0D]
+2496; [26 7C, 05, 09][26 84, 05, 09][08 1D, 05, 3D]
+33EE; [26 7C, 05, 09][26 84, 05, 09][E0 34 F0, 05, 3D]
+3367; [26 7C, 05, 09][26 84, 05, 09][E0 4B 22, 05, 3D]
+246F; [26 7C, 05, 0D][26 86, 05, 0D]
+24F0; [26 7C, 05, 0D][26 86, 05, 0D]
+2497; [26 7C, 05, 09][26 86, 05, 09][08 1D, 05, 3D]
+33EF; [26 7C, 05, 09][26 86, 05, 09][E0 34 F0, 05, 3D]
+3368; [26 7C, 05, 09][26 86, 05, 09][E0 4B 22, 05, 3D]
+2470; [26 7C, 05, 0D][26 88, 05, 0D]
+24F1; [26 7C, 05, 0D][26 88, 05, 0D]
+2498; [26 7C, 05, 09][26 88, 05, 09][08 1D, 05, 3D]
+33F0; [26 7C, 05, 09][26 88, 05, 09][E0 34 F0, 05, 3D]
+3369; [26 7C, 05, 09][26 88, 05, 09][E0 4B 22, 05, 3D]
+2471; [26 7C, 05, 0D][26 8A, 05, 0D]
+24F2; [26 7C, 05, 0D][26 8A, 05, 0D]
+2499; [26 7C, 05, 09][26 8A, 05, 09][08 1D, 05, 3D]
+33F1; [26 7C, 05, 09][26 8A, 05, 09][E0 34 F0, 05, 3D]
+336A; [26 7C, 05, 09][26 8A, 05, 09][E0 4B 22, 05, 3D]
+2472; [26 7C, 05, 0D][26 8C, 05, 0D]
+24F3; [26 7C, 05, 0D][26 8C, 05, 0D]
+249A; [26 7C, 05, 09][26 8C, 05, 09][08 1D, 05, 3D]
+33F2; [26 7C, 05, 09][26 8C, 05, 09][E0 34 F0, 05, 3D]
+336B; [26 7C, 05, 09][26 8C, 05, 09][E0 4B 22, 05, 3D]
+33E0; [26 7C, 05, 09][E0 34 F0, 05, 09]
+32C0; [26 7C, 05, 09][E0 37 48, 05, 09]
+3359; [26 7C, 05, 09][E0 4B 22, 05, 09]
+
+0032; [26 7E, 05, 05]
+FF12; [26 7E, 05, 07]
+D835 DFD0; [26 7E, 05, 0B]
+D835 DFDA; [26 7E, 05, 0B]
+D835 DFE4; [26 7E, 05, 0B]
+D835 DFEE; [26 7E, 05, 0B]
+D835 DFF8; [26 7E, 05, 0B]
+2461; [26 7E, 05, 0D]
+24F6; [26 7E, 05, 0D]
+2777; [26 7E, 05, 0D]
+2781; [26 7E, 05, 0D]
+278B; [26 7E, 05, 0D]
+00B2; [26 7E, 05, 27]
+2082; [26 7E, 05, 29]
+0662; [26 7E, 05, 05][, E4 9D, 05]
+06F2; [26 7E, 05, 05][, E4 AD, 05]
+07C2; [26 7E, 05, 05][, E4 BD, 05]
+136A; [26 7E, 05, 05][, E4 CD, 05]
+D801 DCA2; [26 7E, 05, 05][, E4 DD, 05]
+0968; [26 7E, 05, 05][, E4 ED, 05]
+09E8; [26 7E, 05, 05][, E4 FD, 05]
+09F5; [26 7E, 05, 05][, E4 FD, 05]
+0A68; [26 7E, 05, 05][, E5 11, 05]
+0AE8; [26 7E, 05, 05][, E5 21, 05]
+0B68; [26 7E, 05, 05][, E5 31, 05]
+0BE8; [26 7E, 05, 05][, E5 41, 05]
+0C68; [26 7E, 05, 05][, E5 51, 05]
+0CE8; [26 7E, 05, 05][, E5 61, 05]
+0D68; [26 7E, 05, 05][, E5 71, 05]
+1948; [26 7E, 05, 05][, E5 81, 05]
+19D2; [26 7E, 05, 05][, E5 91, 05]
+0E52; [26 7E, 05, 05][, E5 A1, 05]
+0ED2; [26 7E, 05, 05][, E5 B1, 05]
+0F22; [26 7E, 05, 05][, E5 C1, 05]
+0F2B; [26 7E, 05, 09][, E5 C1, 09]
+1042; [26 7E, 05, 05][, E5 D1, 05]
+17E2; [26 7E, 05, 05][, E5 E1, 05]
+17F2; [26 7E, 05, 05][, E5 F1, 05]
+1B52; [26 7E, 05, 05][, E6 05, 05]
+1812; [26 7E, 05, 05][, E6 15, 05]
+3022; [26 7E, 05, 05][, E6 25, 05]
+D800 DD08; [26 7E, 05, 05][, E6 35, 05]
+D800 DD5B; [26 7E, 05, 05][, E6 45, 05]
+D800 DD5C; [26 7E, 05, 05][, E6 45, 05]
+D800 DD5D; [26 7E, 05, 05][, E6 45, 05]
+D800 DD5E; [26 7E, 05, 05][, E6 45, 05]
+D800 DFD2; [26 7E, 05, 05][, E6 65, 05]
+D809 DC00; [26 7E, 05, 05][, E6 75, 05]
+D809 DC16; [26 7E, 05, 05][, E6 75, 05]
+D809 DC1F; [26 7E, 05, 05][, E6 75, 05]
+D809 DC23; [26 7E, 05, 05][, E6 75, 05]
+D809 DC2D; [26 7E, 05, 05][, E6 75, 05]
+D809 DC35; [26 7E, 05, 05][, E6 75, 05]
+D809 DC4A; [26 7E, 05, 05][, E6 75, 05]
+D809 DC50; [26 7E, 05, 05][, E6 75, 05]
+D809 DC59; [26 7E, 05, 05][, E6 75, 05]
+D802 DE41; [26 7E, 05, 05][, E6 95, 05]
+D834 DF61; [26 7E, 05, 05][, E6 A5, 05]
+2489; [26 7E, 05, 09][08 1D, 05, 09]
+2154; [26 7E, 05, 3B][09 57, 05, 3B][26 80, 05, 3D]
+2156; [26 7E, 05, 3B][09 57, 05, 3B][26 84, 05, 3D]
+2473; [26 7E, 05, 0D][26 7A, 05, 0D]
+24F4; [26 7E, 05, 0D][26 7A, 05, 0D]
+249B; [26 7E, 05, 09][26 7A, 05, 09][08 1D, 05, 3D]
+33F3; [26 7E, 05, 09][26 7A, 05, 09][E0 34 F0, 05, 3D]
+336C; [26 7E, 05, 09][26 7A, 05, 09][E0 4B 22, 05, 3D]
+3251; [26 7E, 05, 0D][26 7C, 05, 0D]
+33F4; [26 7E, 05, 09][26 7C, 05, 09][E0 34 F0, 05, 3D]
+336D; [26 7E, 05, 09][26 7C, 05, 09][E0 4B 22, 05, 3D]
+3252; [26 7E, 05, 0D][26 7E, 05, 0D]
+33F5; [26 7E, 05, 09][26 7E, 05, 09][E0 34 F0, 05, 3D]
+336E; [26 7E, 05, 09][26 7E, 05, 09][E0 4B 22, 05, 3D]
+3253; [26 7E, 05, 0D][26 80, 05, 0D]
+33F6; [26 7E, 05, 09][26 80, 05, 09][E0 34 F0, 05, 3D]
+336F; [26 7E, 05, 09][26 80, 05, 09][E0 4B 22, 05, 3D]
+3254; [26 7E, 05, 0D][26 82, 05, 0D]
+33F7; [26 7E, 05, 09][26 82, 05, 09][E0 34 F0, 05, 3D]
+3370; [26 7E, 05, 09][26 82, 05, 09][E0 4B 22, 05, 3D]
+3255; [26 7E, 05, 0D][26 84, 05, 0D]
+33F8; [26 7E, 05, 09][26 84, 05, 09][E0 34 F0, 05, 3D]
+3256; [26 7E, 05, 0D][26 86, 05, 0D]
+33F9; [26 7E, 05, 09][26 86, 05, 09][E0 34 F0, 05, 3D]
+3257; [26 7E, 05, 0D][26 88, 05, 0D]
+33FA; [26 7E, 05, 09][26 88, 05, 09][E0 34 F0, 05, 3D]
+3258; [26 7E, 05, 0D][26 8A, 05, 0D]
+33FB; [26 7E, 05, 09][26 8A, 05, 09][E0 34 F0, 05, 3D]
+3259; [26 7E, 05, 0D][26 8C, 05, 0D]
+33FC; [26 7E, 05, 09][26 8C, 05, 09][E0 34 F0, 05, 3D]
+33E1; [26 7E, 05, 09][E0 34 F0, 05, 09]
+32C1; [26 7E, 05, 09][E0 37 48, 05, 09]
+335A; [26 7E, 05, 09][E0 4B 22, 05, 09]
+
+0033; [26 80, 05, 05]
+FF13; [26 80, 05, 07]
+D835 DFD1; [26 80, 05, 0B]
+D835 DFDB; [26 80, 05, 0B]
+D835 DFE5; [26 80, 05, 0B]
+D835 DFEF; [26 80, 05, 0B]
+D835 DFF9; [26 80, 05, 0B]
+2462; [26 80, 05, 0D]
+24F7; [26 80, 05, 0D]
+2778; [26 80, 05, 0D]
+2782; [26 80, 05, 0D]
+278C; [26 80, 05, 0D]
+00B3; [26 80, 05, 27]
+2083; [26 80, 05, 29]
+0663; [26 80, 05, 05][, E4 9D, 05]
+06F3; [26 80, 05, 05][, E4 AD, 05]
+07C3; [26 80, 05, 05][, E4 BD, 05]
+136B; [26 80, 05, 05][, E4 CD, 05]
+D801 DCA3; [26 80, 05, 05][, E4 DD, 05]
+0969; [26 80, 05, 05][, E4 ED, 05]
+09E9; [26 80, 05, 05][, E4 FD, 05]
+09F6; [26 80, 05, 05][, E4 FD, 05]
+0A69; [26 80, 05, 05][, E5 11, 05]
+0AE9; [26 80, 05, 05][, E5 21, 05]
+0B69; [26 80, 05, 05][, E5 31, 05]
+0BE9; [26 80, 05, 05][, E5 41, 05]
+0C69; [26 80, 05, 05][, E5 51, 05]
+0CE9; [26 80, 05, 05][, E5 61, 05]
+0D69; [26 80, 05, 05][, E5 71, 05]
+1949; [26 80, 05, 05][, E5 81, 05]
+19D3; [26 80, 05, 05][, E5 91, 05]
+0E53; [26 80, 05, 05][, E5 A1, 05]
+0ED3; [26 80, 05, 05][, E5 B1, 05]
+0F23; [26 80, 05, 05][, E5 C1, 05]
+0F2C; [26 80, 05, 09][, E5 C1, 09]
+1043; [26 80, 05, 05][, E5 D1, 05]
+17E3; [26 80, 05, 05][, E5 E1, 05]
+17F3; [26 80, 05, 05][, E5 F1, 05]
+1B53; [26 80, 05, 05][, E6 05, 05]
+1813; [26 80, 05, 05][, E6 15, 05]
+3023; [26 80, 05, 05][, E6 25, 05]
+D800 DD09; [26 80, 05, 05][, E6 35, 05]
+D809 DC01; [26 80, 05, 05][, E6 75, 05]
+D809 DC08; [26 80, 05, 05][, E6 75, 05]
+D809 DC17; [26 80, 05, 05][, E6 75, 05]
+D809 DC20; [26 80, 05, 05][, E6 75, 05]
+D809 DC24; [26 80, 05, 05][, E6 75, 05]
+D809 DC25; [26 80, 05, 05][, E6 75, 05]
+D809 DC2E; [26 80, 05, 05][, E6 75, 05]
+D809 DC2F; [26 80, 05, 05][, E6 75, 05]
+D809 DC36; [26 80, 05, 05][, E6 75, 05]
+D809 DC37; [26 80, 05, 05][, E6 75, 05]
+D809 DC3A; [26 80, 05, 05][, E6 75, 05]
+D809 DC3B; [26 80, 05, 05][, E6 75, 05]
+D809 DC4B; [26 80, 05, 05][, E6 75, 05]
+D809 DC51; [26 80, 05, 05][, E6 75, 05]
+D802 DE42; [26 80, 05, 05][, E6 95, 05]
+D834 DF62; [26 80, 05, 05][, E6 A5, 05]
+248A; [26 80, 05, 09][08 1D, 05, 09]
+00BE; [26 80, 05, 3B][09 57, 05, 3B][26 82, 05, 3D]
+2157; [26 80, 05, 3B][09 57, 05, 3B][26 84, 05, 3D]
+215C; [26 80, 05, 3B][09 57, 05, 3B][26 8A, 05, 3D]
+325A; [26 80, 05, 0D][26 7A, 05, 0D]
+33FD; [26 80, 05, 09][26 7A, 05, 09][E0 34 F0, 05, 3D]
+325B; [26 80, 05, 0D][26 7C, 05, 0D]
+33FE; [26 80, 05, 09][26 7C, 05, 09][E0 34 F0, 05, 3D]
+325C; [26 80, 05, 0D][26 7E, 05, 0D]
+325D; [26 80, 05, 0D][26 80, 05, 0D]
+325E; [26 80, 05, 0D][26 82, 05, 0D]
+325F; [26 80, 05, 0D][26 84, 05, 0D]
+32B1; [26 80, 05, 0D][26 86, 05, 0D]
+32B2; [26 80, 05, 0D][26 88, 05, 0D]
+32B3; [26 80, 05, 0D][26 8A, 05, 0D]
+32B4; [26 80, 05, 0D][26 8C, 05, 0D]
+33E2; [26 80, 05, 09][E0 34 F0, 05, 09]
+32C2; [26 80, 05, 09][E0 37 48, 05, 09]
+335B; [26 80, 05, 09][E0 4B 22, 05, 09]
+
+0034; [26 82, 05, 05]
+FF14; [26 82, 05, 07]
+D835 DFD2; [26 82, 05, 0B]
+D835 DFDC; [26 82, 05, 0B]
+D835 DFE6; [26 82, 05, 0B]
+D835 DFF0; [26 82, 05, 0B]
+D835 DFFA; [26 82, 05, 0B]
+2463; [26 82, 05, 0D]
+24F8; [26 82, 05, 0D]
+2779; [26 82, 05, 0D]
+2783; [26 82, 05, 0D]
+278D; [26 82, 05, 0D]
+2074; [26 82, 05, 27]
+2084; [26 82, 05, 29]
+0664; [26 82, 05, 05][, E4 9D, 05]
+06F4; [26 82, 05, 05][, E4 AD, 05]
+07C4; [26 82, 05, 05][, E4 BD, 05]
+136C; [26 82, 05, 05][, E4 CD, 05]
+D801 DCA4; [26 82, 05, 05][, E4 DD, 05]
+096A; [26 82, 05, 05][, E4 ED, 05]
+09EA; [26 82, 05, 05][, E4 FD, 05]
+09F7; [26 82, 05, 05][, E4 FD, 05]
+0A6A; [26 82, 05, 05][, E5 11, 05]
+0AEA; [26 82, 05, 05][, E5 21, 05]
+0B6A; [26 82, 05, 05][, E5 31, 05]
+0BEA; [26 82, 05, 05][, E5 41, 05]
+0C6A; [26 82, 05, 05][, E5 51, 05]
+0CEA; [26 82, 05, 05][, E5 61, 05]
+0D6A; [26 82, 05, 05][, E5 71, 05]
+194A; [26 82, 05, 05][, E5 81, 05]
+19D4; [26 82, 05, 05][, E5 91, 05]
+0E54; [26 82, 05, 05][, E5 A1, 05]
+0ED4; [26 82, 05, 05][, E5 B1, 05]
+0F24; [26 82, 05, 05][, E5 C1, 05]
+0F2D; [26 82, 05, 09][, E5 C1, 09]
+1044; [26 82, 05, 05][, E5 D1, 05]
+17E4; [26 82, 05, 05][, E5 E1, 05]
+17F4; [26 82, 05, 05][, E5 F1, 05]
+1B54; [26 82, 05, 05][, E6 05, 05]
+1814; [26 82, 05, 05][, E6 15, 05]
+3024; [26 82, 05, 05][, E6 25, 05]
+D800 DD0A; [26 82, 05, 05][, E6 35, 05]
+D809 DC02; [26 82, 05, 05][, E6 75, 05]
+D809 DC09; [26 82, 05, 05][, E6 75, 05]
+D809 DC0F; [26 82, 05, 05][, E6 75, 05]
+D809 DC18; [26 82, 05, 05][, E6 75, 05]
+D809 DC21; [26 82, 05, 05][, E6 75, 05]
+D809 DC26; [26 82, 05, 05][, E6 75, 05]
+D809 DC30; [26 82, 05, 05][, E6 75, 05]
+D809 DC38; [26 82, 05, 05][, E6 75, 05]
+D809 DC3C; [26 82, 05, 05][, E6 75, 05]
+D809 DC3D; [26 82, 05, 05][, E6 75, 05]
+D809 DC3E; [26 82, 05, 05][, E6 75, 05]
+D809 DC3F; [26 82, 05, 05][, E6 75, 05]
+D809 DC4C; [26 82, 05, 05][, E6 75, 05]
+D809 DC52; [26 82, 05, 05][, E6 75, 05]
+D809 DC53; [26 82, 05, 05][, E6 75, 05]
+D802 DE43; [26 82, 05, 05][, E6 95, 05]
+D834 DF63; [26 82, 05, 05][, E6 A5, 05]
+248B; [26 82, 05, 09][08 1D, 05, 09]
+2158; [26 82, 05, 3B][09 57, 05, 3B][26 84, 05, 3D]
+32B5; [26 82, 05, 0D][26 7A, 05, 0D]
+32B6; [26 82, 05, 0D][26 7C, 05, 0D]
+32B7; [26 82, 05, 0D][26 7E, 05, 0D]
+32B8; [26 82, 05, 0D][26 80, 05, 0D]
+32B9; [26 82, 05, 0D][26 82, 05, 0D]
+32BA; [26 82, 05, 0D][26 84, 05, 0D]
+32BB; [26 82, 05, 0D][26 86, 05, 0D]
+32BC; [26 82, 05, 0D][26 88, 05, 0D]
+32BD; [26 82, 05, 0D][26 8A, 05, 0D]
+32BE; [26 82, 05, 0D][26 8C, 05, 0D]
+33E3; [26 82, 05, 09][E0 34 F0, 05, 09]
+32C3; [26 82, 05, 09][E0 37 48, 05, 09]
+335C; [26 82, 05, 09][E0 4B 22, 05, 09]
+
+0035; [26 84, 05, 05]
+FF15; [26 84, 05, 07]
+D835 DFD3; [26 84, 05, 0B]
+D835 DFDD; [26 84, 05, 0B]
+D835 DFE7; [26 84, 05, 0B]
+D835 DFF1; [26 84, 05, 0B]
+D835 DFFB; [26 84, 05, 0B]
+2464; [26 84, 05, 0D]
+24F9; [26 84, 05, 0D]
+277A; [26 84, 05, 0D]
+2784; [26 84, 05, 0D]
+278E; [26 84, 05, 0D]
+2075; [26 84, 05, 27]
+2085; [26 84, 05, 29]
+0665; [26 84, 05, 05][, E4 9D, 05]
+06F5; [26 84, 05, 05][, E4 AD, 05]
+07C5; [26 84, 05, 05][, E4 BD, 05]
+136D; [26 84, 05, 05][, E4 CD, 05]
+D801 DCA5; [26 84, 05, 05][, E4 DD, 05]
+096B; [26 84, 05, 05][, E4 ED, 05]
+09EB; [26 84, 05, 05][, E4 FD, 05]
+0A6B; [26 84, 05, 05][, E5 11, 05]
+0AEB; [26 84, 05, 05][, E5 21, 05]
+0B6B; [26 84, 05, 05][, E5 31, 05]
+0BEB; [26 84, 05, 05][, E5 41, 05]
+0C6B; [26 84, 05, 05][, E5 51, 05]
+0CEB; [26 84, 05, 05][, E5 61, 05]
+0D6B; [26 84, 05, 05][, E5 71, 05]
+194B; [26 84, 05, 05][, E5 81, 05]
+19D5; [26 84, 05, 05][, E5 91, 05]
+0E55; [26 84, 05, 05][, E5 A1, 05]
+0ED5; [26 84, 05, 05][, E5 B1, 05]
+0F25; [26 84, 05, 05][, E5 C1, 05]
+0F2E; [26 84, 05, 09][, E5 C1, 09]
+1045; [26 84, 05, 05][, E5 D1, 05]
+17E5; [26 84, 05, 05][, E5 E1, 05]
+17F5; [26 84, 05, 05][, E5 F1, 05]
+1B55; [26 84, 05, 05][, E6 05, 05]
+1815; [26 84, 05, 05][, E6 15, 05]
+3025; [26 84, 05, 05][, E6 25, 05]
+D800 DD0B; [26 84, 05, 05][, E6 35, 05]
+D800 DD43; [26 84, 05, 05][, E6 45, 05]
+D800 DD48; [26 84, 05, 05][, E6 45, 05]
+D800 DD4F; [26 84, 05, 05][, E6 45, 05]
+D800 DD5F; [26 84, 05, 05][, E6 45, 05]
+D800 DD73; [26 84, 05, 05][, E6 45, 05]
+D800 DF21; [26 84, 05, 05][, E6 55, 05]
+D809 DC03; [26 84, 05, 05][, E6 75, 05]
+D809 DC0A; [26 84, 05, 05][, E6 75, 05]
+D809 DC10; [26 84, 05, 05][, E6 75, 05]
+D809 DC19; [26 84, 05, 05][, E6 75, 05]
+D809 DC22; [26 84, 05, 05][, E6 75, 05]
+D809 DC27; [26 84, 05, 05][, E6 75, 05]
+D809 DC31; [26 84, 05, 05][, E6 75, 05]
+D809 DC39; [26 84, 05, 05][, E6 75, 05]
+D809 DC4D; [26 84, 05, 05][, E6 75, 05]
+D809 DC54; [26 84, 05, 05][, E6 75, 05]
+D809 DC55; [26 84, 05, 05][, E6 75, 05]
+D834 DF64; [26 84, 05, 05][, E6 A5, 05]
+248C; [26 84, 05, 09][08 1D, 05, 09]
+215A; [26 84, 05, 3B][09 57, 05, 3B][26 86, 05, 3D]
+215D; [26 84, 05, 3B][09 57, 05, 3B][26 8A, 05, 3D]
+32BF; [26 84, 05, 0D][26 7A, 05, 0D]
+33E4; [26 84, 05, 09][E0 34 F0, 05, 09]
+32C4; [26 84, 05, 09][E0 37 48, 05, 09]
+335D; [26 84, 05, 09][E0 4B 22, 05, 09]
+
+0036; [26 86, 05, 05]
+FF16; [26 86, 05, 07]
+D835 DFD4; [26 86, 05, 0B]
+D835 DFDE; [26 86, 05, 0B]
+D835 DFE8; [26 86, 05, 0B]
+D835 DFF2; [26 86, 05, 0B]
+D835 DFFC; [26 86, 05, 0B]
+2465; [26 86, 05, 0D]
+24FA; [26 86, 05, 0D]
+277B; [26 86, 05, 0D]
+2785; [26 86, 05, 0D]
+278F; [26 86, 05, 0D]
+2076; [26 86, 05, 27]
+2086; [26 86, 05, 29]
+0666; [26 86, 05, 05][, E4 9D, 05]
+06F6; [26 86, 05, 05][, E4 AD, 05]
+07C6; [26 86, 05, 05][, E4 BD, 05]
+136E; [26 86, 05, 05][, E4 CD, 05]
+D801 DCA6; [26 86, 05, 05][, E4 DD, 05]
+096C; [26 86, 05, 05][, E4 ED, 05]
+09EC; [26 86, 05, 05][, E4 FD, 05]
+0A6C; [26 86, 05, 05][, E5 11, 05]
+0AEC; [26 86, 05, 05][, E5 21, 05]
+0B6C; [26 86, 05, 05][, E5 31, 05]
+0BEC; [26 86, 05, 05][, E5 41, 05]
+0C6C; [26 86, 05, 05][, E5 51, 05]
+0CEC; [26 86, 05, 05][, E5 61, 05]
+0D6C; [26 86, 05, 05][, E5 71, 05]
+194C; [26 86, 05, 05][, E5 81, 05]
+19D6; [26 86, 05, 05][, E5 91, 05]
+0E56; [26 86, 05, 05][, E5 A1, 05]
+0ED6; [26 86, 05, 05][, E5 B1, 05]
+0F26; [26 86, 05, 05][, E5 C1, 05]
+0F2F; [26 86, 05, 09][, E5 C1, 09]
+1046; [26 86, 05, 05][, E5 D1, 05]
+17E6; [26 86, 05, 05][, E5 E1, 05]
+17F6; [26 86, 05, 05][, E5 F1, 05]
+1B56; [26 86, 05, 05][, E6 05, 05]
+1816; [26 86, 05, 05][, E6 15, 05]
+3026; [26 86, 05, 05][, E6 25, 05]
+D800 DD0C; [26 86, 05, 05][, E6 35, 05]
+D809 DC04; [26 86, 05, 05][, E6 75, 05]
+D809 DC0B; [26 86, 05, 05][, E6 75, 05]
+D809 DC11; [26 86, 05, 05][, E6 75, 05]
+D809 DC1A; [26 86, 05, 05][, E6 75, 05]
+D809 DC28; [26 86, 05, 05][, E6 75, 05]
+D809 DC40; [26 86, 05, 05][, E6 75, 05]
+D809 DC4E; [26 86, 05, 05][, E6 75, 05]
+D834 DF65; [26 86, 05, 05][, E6 A5, 05]
+248D; [26 86, 05, 09][08 1D, 05, 09]
+33E5; [26 86, 05, 09][E0 34 F0, 05, 09]
+32C5; [26 86, 05, 09][E0 37 48, 05, 09]
+335E; [26 86, 05, 09][E0 4B 22, 05, 09]
+
+0037; [26 88, 05, 05]
+FF17; [26 88, 05, 07]
+D835 DFD5; [26 88, 05, 0B]
+D835 DFDF; [26 88, 05, 0B]
+D835 DFE9; [26 88, 05, 0B]
+D835 DFF3; [26 88, 05, 0B]
+D835 DFFD; [26 88, 05, 0B]
+2466; [26 88, 05, 0D]
+24FB; [26 88, 05, 0D]
+277C; [26 88, 05, 0D]
+2786; [26 88, 05, 0D]
+2790; [26 88, 05, 0D]
+2077; [26 88, 05, 27]
+2087; [26 88, 05, 29]
+0667; [26 88, 05, 05][, E4 9D, 05]
+06F7; [26 88, 05, 05][, E4 AD, 05]
+07C7; [26 88, 05, 05][, E4 BD, 05]
+136F; [26 88, 05, 05][, E4 CD, 05]
+D801 DCA7; [26 88, 05, 05][, E4 DD, 05]
+096D; [26 88, 05, 05][, E4 ED, 05]
+09ED; [26 88, 05, 05][, E4 FD, 05]
+0A6D; [26 88, 05, 05][, E5 11, 05]
+0AED; [26 88, 05, 05][, E5 21, 05]
+0B6D; [26 88, 05, 05][, E5 31, 05]
+0BED; [26 88, 05, 05][, E5 41, 05]
+0C6D; [26 88, 05, 05][, E5 51, 05]
+0CED; [26 88, 05, 05][, E5 61, 05]
+0D6D; [26 88, 05, 05][, E5 71, 05]
+194D; [26 88, 05, 05][, E5 81, 05]
+19D7; [26 88, 05, 05][, E5 91, 05]
+0E57; [26 88, 05, 05][, E5 A1, 05]
+0ED7; [26 88, 05, 05][, E5 B1, 05]
+0F27; [26 88, 05, 05][, E5 C1, 05]
+0F30; [26 88, 05, 09][, E5 C1, 09]
+1047; [26 88, 05, 05][, E5 D1, 05]
+17E7; [26 88, 05, 05][, E5 E1, 05]
+17F7; [26 88, 05, 05][, E5 F1, 05]
+1B57; [26 88, 05, 05][, E6 05, 05]
+1817; [26 88, 05, 05][, E6 15, 05]
+3027; [26 88, 05, 05][, E6 25, 05]
+D800 DD0D; [26 88, 05, 05][, E6 35, 05]
+D809 DC05; [26 88, 05, 05][, E6 75, 05]
+D809 DC0C; [26 88, 05, 05][, E6 75, 05]
+D809 DC12; [26 88, 05, 05][, E6 75, 05]
+D809 DC1B; [26 88, 05, 05][, E6 75, 05]
+D809 DC29; [26 88, 05, 05][, E6 75, 05]
+D809 DC41; [26 88, 05, 05][, E6 75, 05]
+D809 DC42; [26 88, 05, 05][, E6 75, 05]
+D809 DC43; [26 88, 05, 05][, E6 75, 05]
+D834 DF66; [26 88, 05, 05][, E6 A5, 05]
+248E; [26 88, 05, 09][08 1D, 05, 09]
+215E; [26 88, 05, 3B][09 57, 05, 3B][26 8A, 05, 3D]
+33E6; [26 88, 05, 09][E0 34 F0, 05, 09]
+32C6; [26 88, 05, 09][E0 37 48, 05, 09]
+335F; [26 88, 05, 09][E0 4B 22, 05, 09]
+
+0038; [26 8A, 05, 05]
+FF18; [26 8A, 05, 07]
+D835 DFD6; [26 8A, 05, 0B]
+D835 DFE0; [26 8A, 05, 0B]
+D835 DFEA; [26 8A, 05, 0B]
+D835 DFF4; [26 8A, 05, 0B]
+D835 DFFE; [26 8A, 05, 0B]
+2467; [26 8A, 05, 0D]
+24FC; [26 8A, 05, 0D]
+277D; [26 8A, 05, 0D]
+2787; [26 8A, 05, 0D]
+2791; [26 8A, 05, 0D]
+2078; [26 8A, 05, 27]
+2088; [26 8A, 05, 29]
+0668; [26 8A, 05, 05][, E4 9D, 05]
+06F8; [26 8A, 05, 05][, E4 AD, 05]
+07C8; [26 8A, 05, 05][, E4 BD, 05]
+1370; [26 8A, 05, 05][, E4 CD, 05]
+D801 DCA8; [26 8A, 05, 05][, E4 DD, 05]
+096E; [26 8A, 05, 05][, E4 ED, 05]
+09EE; [26 8A, 05, 05][, E4 FD, 05]
+0A6E; [26 8A, 05, 05][, E5 11, 05]
+0AEE; [26 8A, 05, 05][, E5 21, 05]
+0B6E; [26 8A, 05, 05][, E5 31, 05]
+0BEE; [26 8A, 05, 05][, E5 41, 05]
+0C6E; [26 8A, 05, 05][, E5 51, 05]
+0CEE; [26 8A, 05, 05][, E5 61, 05]
+0D6E; [26 8A, 05, 05][, E5 71, 05]
+194E; [26 8A, 05, 05][, E5 81, 05]
+19D8; [26 8A, 05, 05][, E5 91, 05]
+0E58; [26 8A, 05, 05][, E5 A1, 05]
+0ED8; [26 8A, 05, 05][, E5 B1, 05]
+0F28; [26 8A, 05, 05][, E5 C1, 05]
+0F31; [26 8A, 05, 09][, E5 C1, 09]
+1048; [26 8A, 05, 05][, E5 D1, 05]
+17E8; [26 8A, 05, 05][, E5 E1, 05]
+17F8; [26 8A, 05, 05][, E5 F1, 05]
+1B58; [26 8A, 05, 05][, E6 05, 05]
+1818; [26 8A, 05, 05][, E6 15, 05]
+3028; [26 8A, 05, 05][, E6 25, 05]
+D800 DD0E; [26 8A, 05, 05][, E6 35, 05]
+D809 DC06; [26 8A, 05, 05][, E6 75, 05]
+D809 DC0D; [26 8A, 05, 05][, E6 75, 05]
+D809 DC13; [26 8A, 05, 05][, E6 75, 05]
+D809 DC1C; [26 8A, 05, 05][, E6 75, 05]
+D809 DC2A; [26 8A, 05, 05][, E6 75, 05]
+D809 DC44; [26 8A, 05, 05][, E6 75, 05]
+D809 DC45; [26 8A, 05, 05][, E6 75, 05]
+D834 DF67; [26 8A, 05, 05][, E6 A5, 05]
+248F; [26 8A, 05, 09][08 1D, 05, 09]
+33E7; [26 8A, 05, 09][E0 34 F0, 05, 09]
+32C7; [26 8A, 05, 09][E0 37 48, 05, 09]
+3360; [26 8A, 05, 09][E0 4B 22, 05, 09]
+
+0039; [26 8C, 05, 05]
+FF19; [26 8C, 05, 07]
+D835 DFD7; [26 8C, 05, 0B]
+D835 DFE1; [26 8C, 05, 0B]
+D835 DFEB; [26 8C, 05, 0B]
+D835 DFF5; [26 8C, 05, 0B]
+D835 DFFF; [26 8C, 05, 0B]
+2468; [26 8C, 05, 0D]
+24FD; [26 8C, 05, 0D]
+277E; [26 8C, 05, 0D]
+2788; [26 8C, 05, 0D]
+2792; [26 8C, 05, 0D]
+2079; [26 8C, 05, 27]
+2089; [26 8C, 05, 29]
+0669; [26 8C, 05, 05][, E4 9D, 05]
+06F9; [26 8C, 05, 05][, E4 AD, 05]
+07C9; [26 8C, 05, 05][, E4 BD, 05]
+1371; [26 8C, 05, 05][, E4 CD, 05]
+D801 DCA9; [26 8C, 05, 05][, E4 DD, 05]
+096F; [26 8C, 05, 05][, E4 ED, 05]
+09EF; [26 8C, 05, 05][, E4 FD, 05]
+0A6F; [26 8C, 05, 05][, E5 11, 05]
+0AEF; [26 8C, 05, 05][, E5 21, 05]
+0B6F; [26 8C, 05, 05][, E5 31, 05]
+0BEF; [26 8C, 05, 05][, E5 41, 05]
+0C6F; [26 8C, 05, 05][, E5 51, 05]
+0CEF; [26 8C, 05, 05][, E5 61, 05]
+0D6F; [26 8C, 05, 05][, E5 71, 05]
+194F; [26 8C, 05, 05][, E5 81, 05]
+19D9; [26 8C, 05, 05][, E5 91, 05]
+0E59; [26 8C, 05, 05][, E5 A1, 05]
+0ED9; [26 8C, 05, 05][, E5 B1, 05]
+0F29; [26 8C, 05, 05][, E5 C1, 05]
+0F32; [26 8C, 05, 09][, E5 C1, 09]
+1049; [26 8C, 05, 05][, E5 D1, 05]
+17E9; [26 8C, 05, 05][, E5 E1, 05]
+17F9; [26 8C, 05, 05][, E5 F1, 05]
+1B59; [26 8C, 05, 05][, E6 05, 05]
+1819; [26 8C, 05, 05][, E6 15, 05]
+3029; [26 8C, 05, 05][, E6 25, 05]
+D800 DD0F; [26 8C, 05, 05][, E6 35, 05]
+D809 DC07; [26 8C, 05, 05][, E6 75, 05]
+D809 DC0E; [26 8C, 05, 05][, E6 75, 05]
+D809 DC14; [26 8C, 05, 05][, E6 75, 05]
+D809 DC1D; [26 8C, 05, 05][, E6 75, 05]
+D809 DC2B; [26 8C, 05, 05][, E6 75, 05]
+D809 DC46; [26 8C, 05, 05][, E6 75, 05]
+D809 DC47; [26 8C, 05, 05][, E6 75, 05]
+D809 DC48; [26 8C, 05, 05][, E6 75, 05]
+D809 DC49; [26 8C, 05, 05][, E6 75, 05]
+D834 DF68; [26 8C, 05, 05][, E6 A5, 05]
+2490; [26 8C, 05, 09][08 1D, 05, 09]
+33E8; [26 8C, 05, 09][E0 34 F0, 05, 09]
+32C8; [26 8C, 05, 09][E0 37 48, 05, 09]
+3361; [26 8C, 05, 09][E0 4B 22, 05, 09]
+
+0061; [29, 05, 05]
+FF41; [29, 05, 07]
+0363; [29, 05, 09]
+D835 DC1A; [29, 05, 0B]
+D835 DC4E; [29, 05, 0B]
+D835 DC82; [29, 05, 0B]
+D835 DCB6; [29, 05, 0B]
+D835 DCEA; [29, 05, 0B]
+D835 DD1E; [29, 05, 0B]
+D835 DD52; [29, 05, 0B]
+D835 DD86; [29, 05, 0B]
+D835 DDBA; [29, 05, 0B]
+D835 DDEE; [29, 05, 0B]
+D835 DE22; [29, 05, 0B]
+D835 DE56; [29, 05, 0B]
+D835 DE8A; [29, 05, 0B]
+24D0; [29, 05, 0D]
+0041; [29, 05, 8F]
+FF21; [29, 05, 91]
+D835 DC00; [29, 05, 95]
+D835 DC34; [29, 05, 95]
+D835 DC68; [29, 05, 95]
+D835 DC9C; [29, 05, 95]
+D835 DCD0; [29, 05, 95]
+D835 DD04; [29, 05, 95]
+D835 DD38; [29, 05, 95]
+D835 DD6C; [29, 05, 95]
+D835 DDA0; [29, 05, 95]
+D835 DDD4; [29, 05, 95]
+D835 DE08; [29, 05, 95]
+D835 DE3C; [29, 05, 95]
+D835 DE70; [29, 05, 95]
+24B6; [29, 05, 97]
+00AA; [29, 05, 27]
+1D43; [29, 05, 27]
+2090; [29, 05, 29]
+1D2C; [29, 05, B9]
+00E1; [29, 05, 05][, 8D, 05]
+00C1; [29, 05, 8F][, 8D, 05]
+00E0; [29, 05, 05][, 8F, 05]
+00C0; [29, 05, 8F][, 8F, 05]
+0103; [29, 05, 05][, 91, 05]
+0102; [29, 05, 8F][, 91, 05]
+1EAF; [29, 05, 05][, 91, 05][, 8D, 05]
+1EAE; [29, 05, 8F][, 91, 05][, 8D, 05]
+1EB1; [29, 05, 05][, 91, 05][, 8F, 05]
+1EB0; [29, 05, 8F][, 91, 05][, 8F, 05]
+1EB5; [29, 05, 05][, 91, 05][, A1, 05]
+1EB4; [29, 05, 8F][, 91, 05][, A1, 05]
+1EB3; [29, 05, 05][, 91, 05][, AF, 05]
+1EB2; [29, 05, 8F][, 91, 05][, AF, 05]
+00E2; [29, 05, 05][, 93, 05]
+00C2; [29, 05, 8F][, 93, 05]
+1EA5; [29, 05, 05][, 93, 05][, 8D, 05]
+1EA4; [29, 05, 8F][, 93, 05][, 8D, 05]
+1EA7; [29, 05, 05][, 93, 05][, 8F, 05]
+1EA6; [29, 05, 8F][, 93, 05][, 8F, 05]
+1EAB; [29, 05, 05][, 93, 05][, A1, 05]
+1EAA; [29, 05, 8F][, 93, 05][, A1, 05]
+1EA9; [29, 05, 05][, 93, 05][, AF, 05]
+1EA8; [29, 05, 8F][, 93, 05][, AF, 05]
+01CE; [29, 05, 05][, 97, 05]
+01CD; [29, 05, 8F][, 97, 05]
+00E5; [29, 05, 05][, 99, 05]
+00C5; [29, 05, 8F][, 99, 05]
+212B; [29, 05, 8F][, 99, 05]
+01FB; [29, 05, 05][, 99, 05][, 8D, 05]
+01FA; [29, 05, 8F][, 99, 05][, 8D, 05]
+00E4; [29, 05, 05][, 9D, 05]
+00C4; [29, 05, 8F][, 9D, 05]
+01DF; [29, 05, 05][, 9D, 05][, AB, 05]
+01DE; [29, 05, 8F][, 9D, 05][, AB, 05]
+00E3; [29, 05, 05][, A1, 05]
+00C3; [29, 05, 8F][, A1, 05]
+0227; [29, 05, 05][, A3, 05]
+0226; [29, 05, 8F][, A3, 05]
+01E1; [29, 05, 05][, A3, 05][, AB, 05]
+01E0; [29, 05, 8F][, A3, 05][, AB, 05]
+0105; [29, 05, 05][, A9, 05]
+0104; [29, 05, 8F][, A9, 05]
+0101; [29, 05, 05][, AB, 05]
+0100; [29, 05, 8F][, AB, 05]
+1EA3; [29, 05, 05][, AF, 05]
+1EA2; [29, 05, 8F][, AF, 05]
+0201; [29, 05, 05][, B5, 05]
+0200; [29, 05, 8F][, B5, 05]
+0203; [29, 05, 05][, B9, 05]
+0202; [29, 05, 8F][, B9, 05]
+1EA1; [29, 05, 05][, D0 4D, 05]
+1EA0; [29, 05, 8F][, D0 4D, 05]
+1EB7; [29, 05, 05][, D0 4D, 05][, 91, 05]
+1EB6; [29, 05, 8F][, D0 4D, 05][, 91, 05]
+1EAD; [29, 05, 05][, D0 4D, 05][, 93, 05]
+1EAC; [29, 05, 8F][, D0 4D, 05][, 93, 05]
+1E01; [29, 05, 05][, D0 6D, 05]
+1E00; [29, 05, 8F][, D0 6D, 05]
+33C2; [29, 05, 37][08 1D, 05, 37][41, 05, 3D][08 1D, 05, 3D]
+2100; [29, 05, 09][09 55, 05, 09][2D, 05, 3D]
+2101; [29, 05, 09][09 55, 05, 09][4D, 05, 3D]
+33DF; [29, 05, B9][0C F7, 05, 37][41, 05, 3D]
+00E6; [29, 05, 09][, E4 4D, 09][31, 05, 3D]
+00C6; [29, 05, 93][, E4 4D, 09][31, 05, 3D]
+1D2D; [29, 05, 27][, E4 4D, 27][31, 05, 3D]
+01FD; [29, 05, 09][, E4 4D, 09][31, 05, 3D][, 8D, 05]
+01FC; [29, 05, 93][, E4 4D, 09][31, 05, 3D][, 8D, 05]
+01E3; [29, 05, 09][, E4 4D, 09][31, 05, 3D][, AB, 05]
+01E2; [29, 05, 93][, E4 4D, 09][31, 05, 3D][, AB, 05]
+3373; [29, 05, B9][51, 05, B9]
+1E9A; [29, 05, 09][5C 96, 05, 09]
+
+1D00; [2A 60, 05, 05]
+
+2C65; [2A 62, 05, 05]
+023A; [2A 62, 05, 8F]
+
+1D8F; [2A 64, 05, 05]
+
+1D01; [2A 66, 05, 05]
+
+1D02; [2A 68, 05, 05]
+1D46; [2A 68, 05, 27]
+
+0250; [2A 6A, 05, 05]
+1D44; [2A 6A, 05, 27]
+
+0251; [2A 6C, 05, 05]
+1D45; [2A 6C, 05, 27]
+
+1D90; [2A 6E, 05, 05]
+
+0252; [2A 70, 05, 05]
+1D9B; [2A 70, 05, 27]
+
+0062; [2B, 05, 05]
+FF42; [2B, 05, 07]
+D835 DC1B; [2B, 05, 0B]
+D835 DC4F; [2B, 05, 0B]
+D835 DC83; [2B, 05, 0B]
+D835 DCB7; [2B, 05, 0B]
+D835 DCEB; [2B, 05, 0B]
+D835 DD1F; [2B, 05, 0B]
+D835 DD53; [2B, 05, 0B]
+D835 DD87; [2B, 05, 0B]
+D835 DDBB; [2B, 05, 0B]
+D835 DDEF; [2B, 05, 0B]
+D835 DE23; [2B, 05, 0B]
+D835 DE57; [2B, 05, 0B]
+D835 DE8B; [2B, 05, 0B]
+24D1; [2B, 05, 0D]
+0042; [2B, 05, 8F]
+FF22; [2B, 05, 91]
+212C; [2B, 05, 95]
+D835 DC01; [2B, 05, 95]
+D835 DC35; [2B, 05, 95]
+D835 DC69; [2B, 05, 95]
+D835 DCD1; [2B, 05, 95]
+D835 DD05; [2B, 05, 95]
+D835 DD39; [2B, 05, 95]
+D835 DD6D; [2B, 05, 95]
+D835 DDA1; [2B, 05, 95]
+D835 DDD5; [2B, 05, 95]
+D835 DE09; [2B, 05, 95]
+D835 DE3D; [2B, 05, 95]
+D835 DE71; [2B, 05, 95]
+24B7; [2B, 05, 97]
+1D47; [2B, 05, 27]
+1D2E; [2B, 05, B9]
+1E03; [2B, 05, 05][, A3, 05]
+1E02; [2B, 05, 8F][, A3, 05]
+1E05; [2B, 05, 05][, D0 4D, 05]
+1E04; [2B, 05, 8F][, D0 4D, 05]
+1E07; [2B, 05, 05][, D1 11, 05]
+1E06; [2B, 05, 8F][, D1 11, 05]
+3374; [2B, 05, 37][29, 05, 37][4B, 05, 3D]
+33C3; [2B, 05, B9][49, 05, 37]
+
+0299; [2C 60, 05, 05]
+
+0180; [2C 62, 05, 05]
+0243; [2C 62, 05, 8F]
+
+1D2F; [2C 64, 05, 05]
+
+1D03; [2C 66, 05, 05]
+
+1D6C; [2C 68, 05, 05]
+
+1D80; [2C 6A, 05, 05]
+
+0253; [2C 6C, 05, 05]
+0181; [2C 6C, 05, 8F]
+
+0183; [2C 6E, 05, 05]
+0182; [2C 6E, 05, 8F]
+
+0063; [2D, 05, 05]
+FF43; [2D, 05, 07]
+0368; [2D, 05, 09]
+217D; [2D, 05, 09]
+D835 DC1C; [2D, 05, 0B]
+D835 DC50; [2D, 05, 0B]
+D835 DC84; [2D, 05, 0B]
+D835 DCB8; [2D, 05, 0B]
+D835 DCEC; [2D, 05, 0B]
+D835 DD20; [2D, 05, 0B]
+D835 DD54; [2D, 05, 0B]
+D835 DD88; [2D, 05, 0B]
+D835 DDBC; [2D, 05, 0B]
+D835 DDF0; [2D, 05, 0B]
+D835 DE24; [2D, 05, 0B]
+D835 DE58; [2D, 05, 0B]
+D835 DE8C; [2D, 05, 0B]
+24D2; [2D, 05, 0D]
+0043; [2D, 05, 8F]
+FF23; [2D, 05, 91]
+216D; [2D, 05, 93]
+2102; [2D, 05, 95]
+212D; [2D, 05, 95]
+D835 DC02; [2D, 05, 95]
+D835 DC36; [2D, 05, 95]
+D835 DC6A; [2D, 05, 95]
+D835 DC9E; [2D, 05, 95]
+D835 DCD2; [2D, 05, 95]
+D835 DD6E; [2D, 05, 95]
+D835 DDA2; [2D, 05, 95]
+D835 DDD6; [2D, 05, 95]
+D835 DE0A; [2D, 05, 95]
+D835 DE3E; [2D, 05, 95]
+D835 DE72; [2D, 05, 95]
+24B8; [2D, 05, 97]
+1D9C; [2D, 05, 27]
+0107; [2D, 05, 05][, 8D, 05]
+0106; [2D, 05, 8F][, 8D, 05]
+0109; [2D, 05, 05][, 93, 05]
+0108; [2D, 05, 8F][, 93, 05]
+010D; [2D, 05, 05][, 97, 05]
+010C; [2D, 05, 8F][, 97, 05]
+010B; [2D, 05, 05][, A3, 05]
+010A; [2D, 05, 8F][, A3, 05]
+00E7; [2D, 05, 05][, A7, 05]
+00C7; [2D, 05, 8F][, A7, 05]
+1E09; [2D, 05, 05][, A7, 05][, 8D, 05]
+1E08; [2D, 05, 8F][, A7, 05][, 8D, 05]
+2105; [2D, 05, 09][09 55, 05, 09][45, 05, 3D]
+2106; [2D, 05, 09][09 55, 05, 09][51, 05, 3D]
+33C6; [2D, 05, B9][0C F7, 05, 37][3D, 05, 3D][35, 05, 3D]
+3388; [2D, 05, 37][29, 05, 37][3F, 05, 3D]
+33C4; [2D, 05, 37][2D, 05, 37]
+33C5; [2D, 05, 37][2F, 05, 37]
+339D; [2D, 05, 37][41, 05, 37]
+33A0; [2D, 05, 37][41, 05, 37][26 7E, 05, 3D]
+33A4; [2D, 05, 37][41, 05, 37][26 80, 05, 3D]
+33C7; [2D, 05, B9][45, 05, 37][08 1D, 05, 3D]
+
+1D04; [2E 60, 05, 05]
+
+023C; [2E 62, 05, 05]
+023B; [2E 62, 05, 8F]
+
+0188; [2E 64, 05, 05]
+0187; [2E 64, 05, 8F]
+
+0255; [2E 66, 05, 05]
+1D9D; [2E 66, 05, 27]
+
+2184; [2E 68, 05, 05]
+2183; [2E 68, 05, 8F]
+
+0064; [2F, 05, 05]
+FF44; [2F, 05, 07]
+0369; [2F, 05, 09]
+217E; [2F, 05, 09]
+2146; [2F, 05, 0B]
+D835 DC1D; [2F, 05, 0B]
+D835 DC51; [2F, 05, 0B]
+D835 DC85; [2F, 05, 0B]
+D835 DCB9; [2F, 05, 0B]
+D835 DCED; [2F, 05, 0B]
+D835 DD21; [2F, 05, 0B]
+D835 DD55; [2F, 05, 0B]
+D835 DD89; [2F, 05, 0B]
+D835 DDBD; [2F, 05, 0B]
+D835 DDF1; [2F, 05, 0B]
+D835 DE25; [2F, 05, 0B]
+D835 DE59; [2F, 05, 0B]
+D835 DE8D; [2F, 05, 0B]
+24D3; [2F, 05, 0D]
+0044; [2F, 05, 8F]
+FF24; [2F, 05, 91]
+216E; [2F, 05, 93]
+2145; [2F, 05, 95]
+D835 DC03; [2F, 05, 95]
+D835 DC37; [2F, 05, 95]
+D835 DC6B; [2F, 05, 95]
+D835 DC9F; [2F, 05, 95]
+D835 DCD3; [2F, 05, 95]
+D835 DD07; [2F, 05, 95]
+D835 DD3B; [2F, 05, 95]
+D835 DD6F; [2F, 05, 95]
+D835 DDA3; [2F, 05, 95]
+D835 DDD7; [2F, 05, 95]
+D835 DE0B; [2F, 05, 95]
+D835 DE3F; [2F, 05, 95]
+D835 DE73; [2F, 05, 95]
+24B9; [2F, 05, 97]
+1D48; [2F, 05, 27]
+1D30; [2F, 05, B9]
+010F; [2F, 05, 05][, 97, 05]
+010E; [2F, 05, 8F][, 97, 05]
+1E0B; [2F, 05, 05][, A3, 05]
+1E0A; [2F, 05, 8F][, A3, 05]
+1E11; [2F, 05, 05][, A7, 05]
+1E10; [2F, 05, 8F][, A7, 05]
+1E0D; [2F, 05, 05][, D0 4D, 05]
+1E0C; [2F, 05, 8F][, D0 4D, 05]
+1E13; [2F, 05, 05][, D0 CD, 05]
+1E12; [2F, 05, 8F][, D0 CD, 05]
+1E0F; [2F, 05, 05][, D1 11, 05]
+1E0E; [2F, 05, 8F][, D1 11, 05]
+0111; [2F, 05, 05][, D1 41, 05]
+0110; [2F, 05, 8F][, D1 41, 05]
+00F0; [2F, 05, 09][, E4 4D, 09]
+00D0; [2F, 05, 93][, E4 4D, 09]
+1D9E; [2F, 05, 27][, E4 4D, 27]
+3372; [2F, 05, 37][29, 05, 37]
+0238; [2F, 05, 09][2B, 05, 09]
+33C8; [2F, 05, 37][2B, 05, B9]
+3397; [2F, 05, 37][3F, 05, 37]
+3377; [2F, 05, 37][41, 05, 37]
+3378; [2F, 05, 37][41, 05, 37][26 7E, 05, 3D]
+3379; [2F, 05, 37][41, 05, 37][26 80, 05, 3D]
+01F3; [2F, 05, 09][5B, 05, 09]
+02A3; [2F, 05, 09][5B, 05, 09]
+01F2; [2F, 05, 93][5B, 05, 09]
+01F1; [2F, 05, 93][5B, 05, 93]
+01C6; [2F, 05, 09][5B, 05, 09][, 97, 3D]
+01C5; [2F, 05, 93][5B, 05, 09][, 97, 3D]
+01C4; [2F, 05, 93][5B, 05, 93][, 97, 3D]
+02A5; [2F, 05, 09][5C 6C, 05, 09]
+02A4; [2F, 05, 09][5C 72, 05, 09]
+
+1D05; [30 60, 05, 05]
+
+1D06; [30 62, 05, 05]
+
+1D6D; [30 64, 05, 05]
+
+1D81; [30 66, 05, 05]
+
+0256; [30 68, 05, 05]
+0189; [30 68, 05, 8F]
+
+0257; [30 6A, 05, 05]
+018A; [30 6A, 05, 8F]
+
+1D91; [30 6C, 05, 05]
+
+018C; [30 6E, 05, 05]
+018B; [30 6E, 05, 8F]
+
+0221; [30 70, 05, 05]
+
+0065; [31, 05, 05]
+FF45; [31, 05, 07]
+0364; [31, 05, 09]
+212F; [31, 05, 0B]
+2147; [31, 05, 0B]
+D835 DC1E; [31, 05, 0B]
+D835 DC52; [31, 05, 0B]
+D835 DC86; [31, 05, 0B]
+D835 DCEE; [31, 05, 0B]
+D835 DD22; [31, 05, 0B]
+D835 DD56; [31, 05, 0B]
+D835 DD8A; [31, 05, 0B]
+D835 DDBE; [31, 05, 0B]
+D835 DDF2; [31, 05, 0B]
+D835 DE26; [31, 05, 0B]
+D835 DE5A; [31, 05, 0B]
+D835 DE8E; [31, 05, 0B]
+24D4; [31, 05, 0D]
+0045; [31, 05, 8F]
+FF25; [31, 05, 91]
+2130; [31, 05, 95]
+D835 DC04; [31, 05, 95]
+D835 DC38; [31, 05, 95]
+D835 DC6C; [31, 05, 95]
+D835 DCD4; [31, 05, 95]
+D835 DD08; [31, 05, 95]
+D835 DD3C; [31, 05, 95]
+D835 DD70; [31, 05, 95]
+D835 DDA4; [31, 05, 95]
+D835 DDD8; [31, 05, 95]
+D835 DE0C; [31, 05, 95]
+D835 DE40; [31, 05, 95]
+D835 DE74; [31, 05, 95]
+24BA; [31, 05, 97]
+1D49; [31, 05, 27]
+2091; [31, 05, 29]
+1D31; [31, 05, B9]
+00E9; [31, 05, 05][, 8D, 05]
+00C9; [31, 05, 8F][, 8D, 05]
+00E8; [31, 05, 05][, 8F, 05]
+00C8; [31, 05, 8F][, 8F, 05]
+0115; [31, 05, 05][, 91, 05]
+0114; [31, 05, 8F][, 91, 05]
+00EA; [31, 05, 05][, 93, 05]
+00CA; [31, 05, 8F][, 93, 05]
+1EBF; [31, 05, 05][, 93, 05][, 8D, 05]
+1EBE; [31, 05, 8F][, 93, 05][, 8D, 05]
+1EC1; [31, 05, 05][, 93, 05][, 8F, 05]
+1EC0; [31, 05, 8F][, 93, 05][, 8F, 05]
+1EC5; [31, 05, 05][, 93, 05][, A1, 05]
+1EC4; [31, 05, 8F][, 93, 05][, A1, 05]
+1EC3; [31, 05, 05][, 93, 05][, AF, 05]
+1EC2; [31, 05, 8F][, 93, 05][, AF, 05]
+011B; [31, 05, 05][, 97, 05]
+011A; [31, 05, 8F][, 97, 05]
+00EB; [31, 05, 05][, 9D, 05]
+00CB; [31, 05, 8F][, 9D, 05]
+1EBD; [31, 05, 05][, A1, 05]
+1EBC; [31, 05, 8F][, A1, 05]
+0117; [31, 05, 05][, A3, 05]
+0116; [31, 05, 8F][, A3, 05]
+0229; [31, 05, 05][, A7, 05]
+0228; [31, 05, 8F][, A7, 05]
+1E1D; [31, 05, 05][, A7, 05][, 91, 05]
+1E1C; [31, 05, 8F][, A7, 05][, 91, 05]
+0119; [31, 05, 05][, A9, 05]
+0118; [31, 05, 8F][, A9, 05]
+0113; [31, 05, 05][, AB, 05]
+0112; [31, 05, 8F][, AB, 05]
+1E17; [31, 05, 05][, AB, 05][, 8D, 05]
+1E16; [31, 05, 8F][, AB, 05][, 8D, 05]
+1E15; [31, 05, 05][, AB, 05][, 8F, 05]
+1E14; [31, 05, 8F][, AB, 05][, 8F, 05]
+1EBB; [31, 05, 05][, AF, 05]
+1EBA; [31, 05, 8F][, AF, 05]
+0205; [31, 05, 05][, B5, 05]
+0204; [31, 05, 8F][, B5, 05]
+0207; [31, 05, 05][, B9, 05]
+0206; [31, 05, 8F][, B9, 05]
+1EB9; [31, 05, 05][, D0 4D, 05]
+1EB8; [31, 05, 8F][, D0 4D, 05]
+1EC7; [31, 05, 05][, D0 4D, 05][, 93, 05]
+1EC6; [31, 05, 8F][, D0 4D, 05][, 93, 05]
+1E19; [31, 05, 05][, D0 CD, 05]
+1E18; [31, 05, 8F][, D0 CD, 05]
+1E1B; [31, 05, 05][, D0 FD, 05]
+1E1A; [31, 05, 8F][, D0 FD, 05]
+32CD; [31, 05, 37][4B, 05, 37][35, 05, 3D]
+32CE; [31, 05, 37][53, 05, B9]
+
+1D07; [32 60, 05, 05]
+
+0247; [32 62, 05, 05]
+0246; [32 62, 05, 8F]
+
+1D92; [32 64, 05, 05]
+
+01DD; [32 66, 05, 05]
+018E; [32 66, 05, 8F]
+1D32; [32 66, 05, B9]
+
+0259; [32 68, 05, 05]
+018F; [32 68, 05, 8F]
+1D4A; [32 68, 05, 27]
+2094; [32 68, 05, 29]
+
+1D95; [32 6A, 05, 05]
+
+025B; [32 6C, 05, 05]
+0190; [32 6C, 05, 8F]
+2107; [32 6C, 05, 93]
+1D4B; [32 6C, 05, 27]
+
+1D93; [32 6E, 05, 05]
+
+0258; [32 70, 05, 05]
+
+025A; [32 72, 05, 05]
+
+025C; [32 74, 05, 05]
+1D9F; [32 74, 05, 27]
+
+1D94; [32 76, 05, 05]
+
+1D08; [32 78, 05, 05]
+1D4C; [32 78, 05, 27]
+
+025D; [32 7A, 05, 05]
+
+025E; [32 7C, 05, 05]
+
+029A; [32 7E, 05, 05]
+
+0264; [32 80, 05, 05]
+
+0066; [33, 05, 05]
+FF46; [33, 05, 07]
+D835 DC1F; [33, 05, 0B]
+D835 DC53; [33, 05, 0B]
+D835 DC87; [33, 05, 0B]
+D835 DCBB; [33, 05, 0B]
+D835 DCEF; [33, 05, 0B]
+D835 DD23; [33, 05, 0B]
+D835 DD57; [33, 05, 0B]
+D835 DD8B; [33, 05, 0B]
+D835 DDBF; [33, 05, 0B]
+D835 DDF3; [33, 05, 0B]
+D835 DE27; [33, 05, 0B]
+D835 DE5B; [33, 05, 0B]
+D835 DE8F; [33, 05, 0B]
+24D5; [33, 05, 0D]
+0046; [33, 05, 8F]
+FF26; [33, 05, 91]
+2131; [33, 05, 95]
+D835 DC05; [33, 05, 95]
+D835 DC39; [33, 05, 95]
+D835 DC6D; [33, 05, 95]
+D835 DCD5; [33, 05, 95]
+D835 DD09; [33, 05, 95]
+D835 DD3D; [33, 05, 95]
+D835 DD71; [33, 05, 95]
+D835 DDA5; [33, 05, 95]
+D835 DDD9; [33, 05, 95]
+D835 DE0D; [33, 05, 95]
+D835 DE41; [33, 05, 95]
+D835 DE75; [33, 05, 95]
+24BB; [33, 05, 97]
+1DA0; [33, 05, 27]
+1E1F; [33, 05, 05][, A3, 05]
+1E1E; [33, 05, 8F][, A3, 05]
+213B; [33, 05, 93][29, 05, 93][57, 05, 3D]
+FB00; [33, 05, 09][33, 05, 09]
+FB03; [33, 05, 09][33, 05, 09][39, 05, 3D]
+FB04; [33, 05, 09][33, 05, 09][3F, 05, 3D]
+FB01; [33, 05, 09][39, 05, 09]
+FB02; [33, 05, 09][3F, 05, 09]
+3399; [33, 05, 37][41, 05, 37]
+02A9; [33, 05, 09][44 72, 05, 09]
+
+1D6E; [34 60, 05, 05]
+
+1D82; [34 62, 05, 05]
+
+0192; [34 64, 05, 05]
+0191; [34 64, 05, 8F]
+
+214E; [34 66, 05, 05]
+2132; [34 66, 05, 8F]
+
+0067; [35, 05, 05]
+FF47; [35, 05, 07]
+210A; [35, 05, 0B]
+D835 DC20; [35, 05, 0B]
+D835 DC54; [35, 05, 0B]
+D835 DC88; [35, 05, 0B]
+D835 DCF0; [35, 05, 0B]
+D835 DD24; [35, 05, 0B]
+D835 DD58; [35, 05, 0B]
+D835 DD8C; [35, 05, 0B]
+D835 DDC0; [35, 05, 0B]
+D835 DDF4; [35, 05, 0B]
+D835 DE28; [35, 05, 0B]
+D835 DE5C; [35, 05, 0B]
+D835 DE90; [35, 05, 0B]
+24D6; [35, 05, 0D]
+0047; [35, 05, 8F]
+FF27; [35, 05, 91]
+D835 DC06; [35, 05, 95]
+D835 DC3A; [35, 05, 95]
+D835 DC6E; [35, 05, 95]
+D835 DCA2; [35, 05, 95]
+D835 DCD6; [35, 05, 95]
+D835 DD0A; [35, 05, 95]
+D835 DD3E; [35, 05, 95]
+D835 DD72; [35, 05, 95]
+D835 DDA6; [35, 05, 95]
+D835 DDDA; [35, 05, 95]
+D835 DE0E; [35, 05, 95]
+D835 DE42; [35, 05, 95]
+D835 DE76; [35, 05, 95]
+24BC; [35, 05, 97]
+1D4D; [35, 05, 27]
+1D33; [35, 05, B9]
+01F5; [35, 05, 05][, 8D, 05]
+01F4; [35, 05, 8F][, 8D, 05]
+011F; [35, 05, 05][, 91, 05]
+011E; [35, 05, 8F][, 91, 05]
+011D; [35, 05, 05][, 93, 05]
+011C; [35, 05, 8F][, 93, 05]
+01E7; [35, 05, 05][, 97, 05]
+01E6; [35, 05, 8F][, 97, 05]
+0121; [35, 05, 05][, A3, 05]
+0120; [35, 05, 8F][, A3, 05]
+0123; [35, 05, 05][, A7, 05]
+0122; [35, 05, 8F][, A7, 05]
+1E21; [35, 05, 05][, AB, 05]
+1E20; [35, 05, 8F][, AB, 05]
+33FF; [35, 05, 37][29, 05, 37][3F, 05, 3D]
+3387; [35, 05, B9][2B, 05, B9]
+3393; [35, 05, B9][37, 05, B9][5B, 05, 3D]
+33AC; [35, 05, B9][47, 05, B9][29, 05, 3D]
+33C9; [35, 05, B9][59, 05, 37]
+
+0261; [36 60, 05, 05]
+1DA2; [36 60, 05, 27]
+
+1D79; [36 62, 05, 05]
+
+0262; [36 64, 05, 05]
+
+01E5; [36 66, 05, 05]
+01E4; [36 66, 05, 8F]
+
+1D83; [36 68, 05, 05]
+
+0260; [36 6A, 05, 05]
+0193; [36 6A, 05, 8F]
+
+029B; [36 6C, 05, 05]
+
+1D77; [36 6E, 05, 05]
+
+0263; [36 70, 05, 05]
+0194; [36 70, 05, 8F]
+02E0; [36 70, 05, 27]
+
+01A3; [36 72, 05, 05]
+01A2; [36 72, 05, 8F]
+
+0068; [37, 05, 05]
+FF48; [37, 05, 07]
+036A; [37, 05, 09]
+210E; [37, 05, 0B]
+D835 DC21; [37, 05, 0B]
+D835 DC89; [37, 05, 0B]
+D835 DCBD; [37, 05, 0B]
+D835 DCF1; [37, 05, 0B]
+D835 DD25; [37, 05, 0B]
+D835 DD59; [37, 05, 0B]
+D835 DD8D; [37, 05, 0B]
+D835 DDC1; [37, 05, 0B]
+D835 DDF5; [37, 05, 0B]
+D835 DE29; [37, 05, 0B]
+D835 DE5D; [37, 05, 0B]
+D835 DE91; [37, 05, 0B]
+24D7; [37, 05, 0D]
+0048; [37, 05, 8F]
+FF28; [37, 05, 91]
+210B; [37, 05, 95]
+210C; [37, 05, 95]
+210D; [37, 05, 95]
+D835 DC07; [37, 05, 95]
+D835 DC3B; [37, 05, 95]
+D835 DC6F; [37, 05, 95]
+D835 DCD7; [37, 05, 95]
+D835 DD73; [37, 05, 95]
+D835 DDA7; [37, 05, 95]
+D835 DDDB; [37, 05, 95]
+D835 DE0F; [37, 05, 95]
+D835 DE43; [37, 05, 95]
+D835 DE77; [37, 05, 95]
+24BD; [37, 05, 97]
+02B0; [37, 05, 27]
+1D34; [37, 05, B9]
+0125; [37, 05, 05][, 93, 05]
+0124; [37, 05, 8F][, 93, 05]
+021F; [37, 05, 05][, 97, 05]
+021E; [37, 05, 8F][, 97, 05]
+1E27; [37, 05, 05][, 9D, 05]
+1E26; [37, 05, 8F][, 9D, 05]
+1E23; [37, 05, 05][, A3, 05]
+1E22; [37, 05, 8F][, A3, 05]
+1E29; [37, 05, 05][, A7, 05]
+1E28; [37, 05, 8F][, A7, 05]
+1E25; [37, 05, 05][, D0 4D, 05]
+1E24; [37, 05, 8F][, D0 4D, 05]
+1E2B; [37, 05, 05][, D0 DD, 05]
+1E2A; [37, 05, 8F][, D0 DD, 05]
+1E96; [37, 05, 05][, D1 11, 05]
+0127; [37, 05, 05][, D1 41, 05]
+210F; [37, 05, 05][, D1 41, 05]
+0126; [37, 05, 8F][, D1 41, 05]
+33CA; [37, 05, 37][29, 05, 37]
+32CC; [37, 05, B9][35, 05, 37]
+33CB; [37, 05, B9][47, 05, B9]
+3371; [37, 05, 37][47, 05, B9][29, 05, 3D]
+3390; [37, 05, B9][5B, 05, 37]
+
+029C; [38 60, 05, 05]
+
+0195; [38 62, 05, 05]
+01F6; [38 62, 05, 8F]
+
+0266; [38 64, 05, 05]
+02B1; [38 64, 05, 27]
+
+2C68; [38 66, 05, 05]
+2C67; [38 66, 05, 8F]
+
+2C76; [38 68, 05, 05]
+2C75; [38 68, 05, 8F]
+
+0267; [38 6A, 05, 05]
+
+02BB; [38 6C, 05, 05]
+
+02BD; [38 6E, 05, 05]
+
+0069; [39, 05, 05]
+FF49; [39, 05, 07]
+0365; [39, 05, 09]
+2170; [39, 05, 09]
+2139; [39, 05, 0B]
+2148; [39, 05, 0B]
+D835 DC22; [39, 05, 0B]
+D835 DC56; [39, 05, 0B]
+D835 DC8A; [39, 05, 0B]
+D835 DCBE; [39, 05, 0B]
+D835 DCF2; [39, 05, 0B]
+D835 DD26; [39, 05, 0B]
+D835 DD5A; [39, 05, 0B]
+D835 DD8E; [39, 05, 0B]
+D835 DDC2; [39, 05, 0B]
+D835 DDF6; [39, 05, 0B]
+D835 DE2A; [39, 05, 0B]
+D835 DE5E; [39, 05, 0B]
+D835 DE92; [39, 05, 0B]
+24D8; [39, 05, 0D]
+0049; [39, 05, 8F]
+FF29; [39, 05, 91]
+2160; [39, 05, 93]
+2110; [39, 05, 95]
+2111; [39, 05, 95]
+D835 DC08; [39, 05, 95]
+D835 DC3C; [39, 05, 95]
+D835 DC70; [39, 05, 95]
+D835 DCD8; [39, 05, 95]
+D835 DD40; [39, 05, 95]
+D835 DD74; [39, 05, 95]
+D835 DDA8; [39, 05, 95]
+D835 DDDC; [39, 05, 95]
+D835 DE10; [39, 05, 95]
+D835 DE44; [39, 05, 95]
+D835 DE78; [39, 05, 95]
+24BE; [39, 05, 97]
+2071; [39, 05, 27]
+1D62; [39, 05, 29]
+1D35; [39, 05, B9]
+00ED; [39, 05, 05][, 8D, 05]
+00CD; [39, 05, 8F][, 8D, 05]
+00EC; [39, 05, 05][, 8F, 05]
+00CC; [39, 05, 8F][, 8F, 05]
+012D; [39, 05, 05][, 91, 05]
+012C; [39, 05, 8F][, 91, 05]
+00EE; [39, 05, 05][, 93, 05]
+00CE; [39, 05, 8F][, 93, 05]
+01D0; [39, 05, 05][, 97, 05]
+01CF; [39, 05, 8F][, 97, 05]
+00EF; [39, 05, 05][, 9D, 05]
+00CF; [39, 05, 8F][, 9D, 05]
+1E2F; [39, 05, 05][, 9D, 05][, 8D, 05]
+1E2E; [39, 05, 8F][, 9D, 05][, 8D, 05]
+0129; [39, 05, 05][, A1, 05]
+0128; [39, 05, 8F][, A1, 05]
+0130; [39, 05, 8F][, A3, 05]
+012F; [39, 05, 05][, A9, 05]
+012E; [39, 05, 8F][, A9, 05]
+012B; [39, 05, 05][, AB, 05]
+012A; [39, 05, 8F][, AB, 05]
+1EC9; [39, 05, 05][, AF, 05]
+1EC8; [39, 05, 8F][, AF, 05]
+0209; [39, 05, 05][, B5, 05]
+0208; [39, 05, 8F][, B5, 05]
+020B; [39, 05, 05][, B9, 05]
+020A; [39, 05, 8F][, B9, 05]
+1ECB; [39, 05, 05][, D0 4D, 05]
+1ECA; [39, 05, 8F][, D0 4D, 05]
+1E2D; [39, 05, 05][, D0 FD, 05]
+1E2C; [39, 05, 8F][, D0 FD, 05]
+2171; [39, 05, 09][39, 05, 09]
+2161; [39, 05, 93][39, 05, 93]
+2172; [39, 05, 09][39, 05, 09][39, 05, 3D]
+2162; [39, 05, 93][39, 05, 93][39, 05, 3D]
+0133; [39, 05, 09][3B, 05, 09]
+0132; [39, 05, 93][3B, 05, 93]
+33CC; [39, 05, 37][43, 05, 37]
+337A; [39, 05, B9][51, 05, B9]
+2173; [39, 05, 09][53, 05, 09]
+2163; [39, 05, 93][53, 05, 93]
+2178; [39, 05, 09][57, 05, 09]
+2168; [39, 05, 93][57, 05, 93]
+
+0131; [3A 60, 05, 05]
+D835 DEA4; [3A 60, 05, 0B]
+
+026A; [3A 62, 05, 05]
+1DA6; [3A 62, 05, 27]
+
+1D09; [3A 64, 05, 05]
+1D4E; [3A 64, 05, 27]
+
+0268; [3A 66, 05, 05]
+0197; [3A 66, 05, 8F]
+1DA4; [3A 66, 05, 27]
+
+1D7B; [3A 68, 05, 05]
+1DA7; [3A 68, 05, 27]
+
+1D96; [3A 6A, 05, 05]
+
+0269; [3A 6C, 05, 05]
+0196; [3A 6C, 05, 8F]
+1DA5; [3A 6C, 05, 27]
+
+1D7C; [3A 6E, 05, 05]
+
+006A; [3B, 05, 05]
+FF4A; [3B, 05, 07]
+2149; [3B, 05, 0B]
+D835 DC23; [3B, 05, 0B]
+D835 DC57; [3B, 05, 0B]
+D835 DC8B; [3B, 05, 0B]
+D835 DCBF; [3B, 05, 0B]
+D835 DCF3; [3B, 05, 0B]
+D835 DD27; [3B, 05, 0B]
+D835 DD5B; [3B, 05, 0B]
+D835 DD8F; [3B, 05, 0B]
+D835 DDC3; [3B, 05, 0B]
+D835 DDF7; [3B, 05, 0B]
+D835 DE2B; [3B, 05, 0B]
+D835 DE5F; [3B, 05, 0B]
+D835 DE93; [3B, 05, 0B]
+24D9; [3B, 05, 0D]
+004A; [3B, 05, 8F]
+FF2A; [3B, 05, 91]
+D835 DC09; [3B, 05, 95]
+D835 DC3D; [3B, 05, 95]
+D835 DC71; [3B, 05, 95]
+D835 DCA5; [3B, 05, 95]
+D835 DCD9; [3B, 05, 95]
+D835 DD0D; [3B, 05, 95]
+D835 DD41; [3B, 05, 95]
+D835 DD75; [3B, 05, 95]
+D835 DDA9; [3B, 05, 95]
+D835 DDDD; [3B, 05, 95]
+D835 DE11; [3B, 05, 95]
+D835 DE45; [3B, 05, 95]
+D835 DE79; [3B, 05, 95]
+24BF; [3B, 05, 97]
+02B2; [3B, 05, 27]
+1D36; [3B, 05, B9]
+0135; [3B, 05, 05][, 93, 05]
+0134; [3B, 05, 8F][, 93, 05]
+01F0; [3B, 05, 05][, 97, 05]
+
+0237; [3C 60, 05, 05]
+D835 DEA5; [3C 60, 05, 0B]
+
+1D0A; [3C 62, 05, 05]
+
+0249; [3C 64, 05, 05]
+0248; [3C 64, 05, 8F]
+
+029D; [3C 66, 05, 05]
+1DA8; [3C 66, 05, 27]
+
+025F; [3C 68, 05, 05]
+1DA1; [3C 68, 05, 27]
+
+0284; [3C 6A, 05, 05]
+
+006B; [3D, 05, 05]
+FF4B; [3D, 05, 07]
+D835 DC24; [3D, 05, 0B]
+D835 DC58; [3D, 05, 0B]
+D835 DC8C; [3D, 05, 0B]
+D835 DCC0; [3D, 05, 0B]
+D835 DCF4; [3D, 05, 0B]
+D835 DD28; [3D, 05, 0B]
+D835 DD5C; [3D, 05, 0B]
+D835 DD90; [3D, 05, 0B]
+D835 DDC4; [3D, 05, 0B]
+D835 DDF8; [3D, 05, 0B]
+D835 DE2C; [3D, 05, 0B]
+D835 DE60; [3D, 05, 0B]
+D835 DE94; [3D, 05, 0B]
+24DA; [3D, 05, 0D]
+004B; [3D, 05, 8F]
+212A; [3D, 05, 8F]
+FF2B; [3D, 05, 91]
+D835 DC0A; [3D, 05, 95]
+D835 DC3E; [3D, 05, 95]
+D835 DC72; [3D, 05, 95]
+D835 DCA6; [3D, 05, 95]
+D835 DCDA; [3D, 05, 95]
+D835 DD0E; [3D, 05, 95]
+D835 DD42; [3D, 05, 95]
+D835 DD76; [3D, 05, 95]
+D835 DDAA; [3D, 05, 95]
+D835 DDDE; [3D, 05, 95]
+D835 DE12; [3D, 05, 95]
+D835 DE46; [3D, 05, 95]
+D835 DE7A; [3D, 05, 95]
+24C0; [3D, 05, 97]
+1D4F; [3D, 05, 27]
+1D37; [3D, 05, B9]
+1E31; [3D, 05, 05][, 8D, 05]
+1E30; [3D, 05, 8F][, 8D, 05]
+01E9; [3D, 05, 05][, 97, 05]
+01E8; [3D, 05, 8F][, 97, 05]
+0137; [3D, 05, 05][, A7, 05]
+0136; [3D, 05, 8F][, A7, 05]
+1E33; [3D, 05, 05][, D0 4D, 05]
+1E32; [3D, 05, 8F][, D0 4D, 05]
+1E35; [3D, 05, 05][, D1 11, 05]
+1E34; [3D, 05, 8F][, D1 11, 05]
+3384; [3D, 05, 37][29, 05, B9]
+3385; [3D, 05, B9][2B, 05, B9]
+3389; [3D, 05, 37][2D, 05, 37][29, 05, 3D][3F, 05, 3D]
+338F; [3D, 05, 37][35, 05, 37]
+3391; [3D, 05, 37][37, 05, B9][5B, 05, 3D]
+33CD; [3D, 05, B9][3D, 05, B9]
+3398; [3D, 05, 37][3F, 05, 37]
+339E; [3D, 05, 37][41, 05, 37]
+33CE; [3D, 05, B9][41, 05, B9]
+33A2; [3D, 05, 37][41, 05, 37][26 7E, 05, 3D]
+33A6; [3D, 05, 37][41, 05, 37][26 80, 05, 3D]
+33AA; [3D, 05, 37][47, 05, B9][29, 05, 3D]
+33CF; [3D, 05, 37][4F, 05, 37]
+33B8; [3D, 05, 37][53, 05, B9]
+33BE; [3D, 05, 37][55, 05, B9]
+33C0; [3D, 05, 37][5D 6C, 05, B9]
+
+1D0B; [3E 60, 05, 05]
+
+1D84; [3E 62, 05, 05]
+
+0199; [3E 64, 05, 05]
+0198; [3E 64, 05, 8F]
+
+2C6A; [3E 66, 05, 05]
+2C69; [3E 66, 05, 8F]
+
+029E; [3E 68, 05, 05]
+
+006C; [3F, 05, 05]
+FF4C; [3F, 05, 07]
+217C; [3F, 05, 09]
+2113; [3F, 05, 0B]
+D835 DC25; [3F, 05, 0B]
+D835 DC59; [3F, 05, 0B]
+D835 DC8D; [3F, 05, 0B]
+D835 DCC1; [3F, 05, 0B]
+D835 DCF5; [3F, 05, 0B]
+D835 DD29; [3F, 05, 0B]
+D835 DD5D; [3F, 05, 0B]
+D835 DD91; [3F, 05, 0B]
+D835 DDC5; [3F, 05, 0B]
+D835 DDF9; [3F, 05, 0B]
+D835 DE2D; [3F, 05, 0B]
+D835 DE61; [3F, 05, 0B]
+D835 DE95; [3F, 05, 0B]
+24DB; [3F, 05, 0D]
+004C; [3F, 05, 8F]
+FF2C; [3F, 05, 91]
+216C; [3F, 05, 93]
+2112; [3F, 05, 95]
+D835 DC0B; [3F, 05, 95]
+D835 DC3F; [3F, 05, 95]
+D835 DC73; [3F, 05, 95]
+D835 DCDB; [3F, 05, 95]
+D835 DD0F; [3F, 05, 95]
+D835 DD43; [3F, 05, 95]
+D835 DD77; [3F, 05, 95]
+D835 DDAB; [3F, 05, 95]
+D835 DDDF; [3F, 05, 95]
+D835 DE13; [3F, 05, 95]
+D835 DE47; [3F, 05, 95]
+D835 DE7B; [3F, 05, 95]
+24C1; [3F, 05, 97]
+02E1; [3F, 05, 27]
+1D38; [3F, 05, B9]
+013A; [3F, 05, 05][, 8D, 05]
+0139; [3F, 05, 8F][, 8D, 05]
+013E; [3F, 05, 05][, 97, 05]
+013D; [3F, 05, 8F][, 97, 05]
+013C; [3F, 05, 05][, A7, 05]
+013B; [3F, 05, 8F][, A7, 05]
+1E37; [3F, 05, 05][, D0 4D, 05]
+1E36; [3F, 05, 8F][, D0 4D, 05]
+1E39; [3F, 05, 05][, D0 4D, 05][, AB, 05]
+1E38; [3F, 05, 8F][, D0 4D, 05][, AB, 05]
+1E3D; [3F, 05, 05][, D0 CD, 05]
+1E3C; [3F, 05, 8F][, D0 CD, 05]
+1E3B; [3F, 05, 05][, D1 11, 05]
+1E3A; [3F, 05, 8F][, D1 11, 05]
+0142; [3F, 05, 05][, D1 41, 05]
+0141; [3F, 05, 8F][, D1 41, 05]
+0140; [3F, 05, 09][, E4 4D, 09][08 37, 05, 3D]
+013F; [3F, 05, 93][, E4 4D, 09][08 37, 05, 3D]
+01C9; [3F, 05, 09][3B, 05, 09]
+01C8; [3F, 05, 93][3B, 05, 09]
+01C7; [3F, 05, 93][3B, 05, 93]
+33D0; [3F, 05, 37][41, 05, 37]
+33D1; [3F, 05, 37][43, 05, 37]
+33D2; [3F, 05, 37][45, 05, 37][35, 05, 3D]
+02AA; [3F, 05, 09][4D, 05, 09]
+32CF; [3F, 05, B9][4F, 05, B9][2F, 05, 3D]
+33D3; [3F, 05, 37][57, 05, 37]
+02AB; [3F, 05, 09][5B, 05, 09]
+
+029F; [40 60, 05, 05]
+1DAB; [40 60, 05, 27]
+
+1D0C; [40 62, 05, 05]
+
+019A; [40 64, 05, 05]
+023D; [40 64, 05, 8F]
+
+2C61; [40 66, 05, 05]
+2C60; [40 66, 05, 8F]
+
+026B; [40 68, 05, 05]
+2C62; [40 68, 05, 8F]
+
+026C; [40 6A, 05, 05]
+
+1D85; [40 6C, 05, 05]
+1DAA; [40 6C, 05, 27]
+
+026D; [40 6E, 05, 05]
+1DA9; [40 6E, 05, 27]
+
+0234; [40 70, 05, 05]
+
+026E; [40 72, 05, 05]
+
+019B; [40 74, 05, 05]
+
+028E; [40 76, 05, 05]
+
+006D; [41, 05, 05]
+FF4D; [41, 05, 07]
+036B; [41, 05, 09]
+217F; [41, 05, 09]
+D835 DC26; [41, 05, 0B]
+D835 DC5A; [41, 05, 0B]
+D835 DC8E; [41, 05, 0B]
+D835 DCC2; [41, 05, 0B]
+D835 DCF6; [41, 05, 0B]
+D835 DD2A; [41, 05, 0B]
+D835 DD5E; [41, 05, 0B]
+D835 DD92; [41, 05, 0B]
+D835 DDC6; [41, 05, 0B]
+D835 DDFA; [41, 05, 0B]
+D835 DE2E; [41, 05, 0B]
+D835 DE62; [41, 05, 0B]
+D835 DE96; [41, 05, 0B]
+24DC; [41, 05, 0D]
+004D; [41, 05, 8F]
+FF2D; [41, 05, 91]
+216F; [41, 05, 93]
+2133; [41, 05, 95]
+D835 DC0C; [41, 05, 95]
+D835 DC40; [41, 05, 95]
+D835 DC74; [41, 05, 95]
+D835 DCDC; [41, 05, 95]
+D835 DD10; [41, 05, 95]
+D835 DD44; [41, 05, 95]
+D835 DD78; [41, 05, 95]
+D835 DDAC; [41, 05, 95]
+D835 DDE0; [41, 05, 95]
+D835 DE14; [41, 05, 95]
+D835 DE48; [41, 05, 95]
+D835 DE7C; [41, 05, 95]
+24C2; [41, 05, 97]
+1D50; [41, 05, 27]
+1D39; [41, 05, B9]
+1E3F; [41, 05, 05][, 8D, 05]
+1E3E; [41, 05, 8F][, 8D, 05]
+1E41; [41, 05, 05][, A3, 05]
+1E40; [41, 05, 8F][, A3, 05]
+1E43; [41, 05, 05][, D0 4D, 05]
+1E42; [41, 05, 8F][, D0 4D, 05]
+33A7; [41, 05, 37][0C F7, 05, 37][4D, 05, 3D]
+33A8; [41, 05, 37][0C F7, 05, 37][4D, 05, 3D][26 7E, 05, 3D]
+33A1; [41, 05, 37][26 7E, 05, 37]
+33A5; [41, 05, 37][26 80, 05, 37]
+3383; [41, 05, 37][29, 05, B9]
+33D4; [41, 05, 37][2B, 05, 37]
+3386; [41, 05, B9][2B, 05, B9]
+338E; [41, 05, 37][35, 05, 37]
+3392; [41, 05, B9][37, 05, B9][5B, 05, 3D]
+33D5; [41, 05, 37][39, 05, 37][3F, 05, 3D]
+3396; [41, 05, 37][3F, 05, 37]
+339C; [41, 05, 37][41, 05, 37]
+339F; [41, 05, 37][41, 05, 37][26 7E, 05, 3D]
+33A3; [41, 05, 37][41, 05, 37][26 80, 05, 3D]
+33D6; [41, 05, 37][45, 05, 37][3F, 05, 3D]
+33AB; [41, 05, B9][47, 05, B9][29, 05, 3D]
+33B3; [41, 05, 37][4D, 05, 37]
+33B7; [41, 05, 37][53, 05, B9]
+33B9; [41, 05, B9][53, 05, B9]
+33BD; [41, 05, 37][55, 05, B9]
+33BF; [41, 05, B9][55, 05, B9]
+33C1; [41, 05, B9][5D 6C, 05, B9]
+
+1D0D; [42 60, 05, 05]
+
+1D6F; [42 62, 05, 05]
+
+1D86; [42 64, 05, 05]
+
+0271; [42 66, 05, 05]
+1DAC; [42 66, 05, 27]
+
+006E; [43, 05, 05]
+FF4E; [43, 05, 07]
+D835 DC27; [43, 05, 0B]
+D835 DC5B; [43, 05, 0B]
+D835 DC8F; [43, 05, 0B]
+D835 DCC3; [43, 05, 0B]
+D835 DCF7; [43, 05, 0B]
+D835 DD2B; [43, 05, 0B]
+D835 DD5F; [43, 05, 0B]
+D835 DD93; [43, 05, 0B]
+D835 DDC7; [43, 05, 0B]
+D835 DDFB; [43, 05, 0B]
+D835 DE2F; [43, 05, 0B]
+D835 DE63; [43, 05, 0B]
+D835 DE97; [43, 05, 0B]
+24DD; [43, 05, 0D]
+004E; [43, 05, 8F]
+FF2E; [43, 05, 91]
+2115; [43, 05, 95]
+D835 DC0D; [43, 05, 95]
+D835 DC41; [43, 05, 95]
+D835 DC75; [43, 05, 95]
+D835 DCA9; [43, 05, 95]
+D835 DCDD; [43, 05, 95]
+D835 DD11; [43, 05, 95]
+D835 DD79; [43, 05, 95]
+D835 DDAD; [43, 05, 95]
+D835 DDE1; [43, 05, 95]
+D835 DE15; [43, 05, 95]
+D835 DE49; [43, 05, 95]
+D835 DE7D; [43, 05, 95]
+24C3; [43, 05, 97]
+207F; [43, 05, 27]
+1D3A; [43, 05, B9]
+0144; [43, 05, 05][, 8D, 05]
+0143; [43, 05, 8F][, 8D, 05]
+01F9; [43, 05, 05][, 8F, 05]
+01F8; [43, 05, 8F][, 8F, 05]
+0148; [43, 05, 05][, 97, 05]
+0147; [43, 05, 8F][, 97, 05]
+00F1; [43, 05, 05][, A1, 05]
+00D1; [43, 05, 8F][, A1, 05]
+1E45; [43, 05, 05][, A3, 05]
+1E44; [43, 05, 8F][, A3, 05]
+0146; [43, 05, 05][, A7, 05]
+0145; [43, 05, 8F][, A7, 05]
+1E47; [43, 05, 05][, D0 4D, 05]
+1E46; [43, 05, 8F][, D0 4D, 05]
+1E4B; [43, 05, 05][, D0 CD, 05]
+1E4A; [43, 05, 8F][, D0 CD, 05]
+1E49; [43, 05, 05][, D1 11, 05]
+1E48; [43, 05, 8F][, D1 11, 05]
+3381; [43, 05, 37][29, 05, B9]
+338B; [43, 05, 37][33, 05, B9]
+01CC; [43, 05, 09][3B, 05, 09]
+01CB; [43, 05, 93][3B, 05, 09]
+01CA; [43, 05, 93][3B, 05, 93]
+339A; [43, 05, 37][41, 05, 37]
+2116; [43, 05, 93][45, 05, 09]
+33B1; [43, 05, 37][4D, 05, 37]
+33B5; [43, 05, 37][53, 05, B9]
+33BB; [43, 05, 37][55, 05, B9]
+
+0274; [44 60, 05, 05]
+1DB0; [44 60, 05, 27]
+
+1D3B; [44 62, 05, 05]
+
+1D0E; [44 64, 05, 05]
+
+1D70; [44 66, 05, 05]
+
+0272; [44 68, 05, 05]
+019D; [44 68, 05, 8F]
+1DAE; [44 68, 05, 27]
+
+019E; [44 6A, 05, 05]
+0220; [44 6A, 05, 8F]
+
+1D87; [44 6C, 05, 05]
+
+0273; [44 6E, 05, 05]
+1DAF; [44 6E, 05, 27]
+
+0235; [44 70, 05, 05]
+
+014B; [44 72, 05, 05]
+014A; [44 72, 05, 8F]
+1D51; [44 72, 05, 27]
+
+006F; [45, 05, 05]
+FF4F; [45, 05, 07]
+0366; [45, 05, 09]
+2134; [45, 05, 0B]
+D835 DC28; [45, 05, 0B]
+D835 DC5C; [45, 05, 0B]
+D835 DC90; [45, 05, 0B]
+D835 DCF8; [45, 05, 0B]
+D835 DD2C; [45, 05, 0B]
+D835 DD60; [45, 05, 0B]
+D835 DD94; [45, 05, 0B]
+D835 DDC8; [45, 05, 0B]
+D835 DDFC; [45, 05, 0B]
+D835 DE30; [45, 05, 0B]
+D835 DE64; [45, 05, 0B]
+D835 DE98; [45, 05, 0B]
+24DE; [45, 05, 0D]
+004F; [45, 05, 8F]
+FF2F; [45, 05, 91]
+D835 DC0E; [45, 05, 95]
+D835 DC42; [45, 05, 95]
+D835 DC76; [45, 05, 95]
+D835 DCAA; [45, 05, 95]
+D835 DCDE; [45, 05, 95]
+D835 DD12; [45, 05, 95]
+D835 DD46; [45, 05, 95]
+D835 DD7A; [45, 05, 95]
+D835 DDAE; [45, 05, 95]
+D835 DDE2; [45, 05, 95]
+D835 DE16; [45, 05, 95]
+D835 DE4A; [45, 05, 95]
+D835 DE7E; [45, 05, 95]
+24C4; [45, 05, 97]
+00BA; [45, 05, 27]
+1D52; [45, 05, 27]
+2092; [45, 05, 29]
+1D3C; [45, 05, B9]
+00F3; [45, 05, 05][, 8D, 05]
+00D3; [45, 05, 8F][, 8D, 05]
+00F2; [45, 05, 05][, 8F, 05]
+00D2; [45, 05, 8F][, 8F, 05]
+014F; [45, 05, 05][, 91, 05]
+014E; [45, 05, 8F][, 91, 05]
+00F4; [45, 05, 05][, 93, 05]
+00D4; [45, 05, 8F][, 93, 05]
+1ED1; [45, 05, 05][, 93, 05][, 8D, 05]
+1ED0; [45, 05, 8F][, 93, 05][, 8D, 05]
+1ED3; [45, 05, 05][, 93, 05][, 8F, 05]
+1ED2; [45, 05, 8F][, 93, 05][, 8F, 05]
+1ED7; [45, 05, 05][, 93, 05][, A1, 05]
+1ED6; [45, 05, 8F][, 93, 05][, A1, 05]
+1ED5; [45, 05, 05][, 93, 05][, AF, 05]
+1ED4; [45, 05, 8F][, 93, 05][, AF, 05]
+01D2; [45, 05, 05][, 97, 05]
+01D1; [45, 05, 8F][, 97, 05]
+00F6; [45, 05, 05][, 9D, 05]
+00D6; [45, 05, 8F][, 9D, 05]
+022B; [45, 05, 05][, 9D, 05][, AB, 05]
+022A; [45, 05, 8F][, 9D, 05][, AB, 05]
+0151; [45, 05, 05][, 9F, 05]
+0150; [45, 05, 8F][, 9F, 05]
+00F5; [45, 05, 05][, A1, 05]
+00D5; [45, 05, 8F][, A1, 05]
+1E4D; [45, 05, 05][, A1, 05][, 8D, 05]
+1E4C; [45, 05, 8F][, A1, 05][, 8D, 05]
+1E4F; [45, 05, 05][, A1, 05][, 9D, 05]
+1E4E; [45, 05, 8F][, A1, 05][, 9D, 05]
+022D; [45, 05, 05][, A1, 05][, AB, 05]
+022C; [45, 05, 8F][, A1, 05][, AB, 05]
+022F; [45, 05, 05][, A3, 05]
+022E; [45, 05, 8F][, A3, 05]
+0231; [45, 05, 05][, A3, 05][, AB, 05]
+0230; [45, 05, 8F][, A3, 05][, AB, 05]
+00F8; [45, 05, 05][, A5, 05]
+00D8; [45, 05, 8F][, A5, 05]
+01FF; [45, 05, 05][, A5, 05][, 8D, 05]
+01FE; [45, 05, 8F][, A5, 05][, 8D, 05]
+01EB; [45, 05, 05][, A9, 05]
+01EA; [45, 05, 8F][, A9, 05]
+01ED; [45, 05, 05][, A9, 05][, AB, 05]
+01EC; [45, 05, 8F][, A9, 05][, AB, 05]
+014D; [45, 05, 05][, AB, 05]
+014C; [45, 05, 8F][, AB, 05]
+1E53; [45, 05, 05][, AB, 05][, 8D, 05]
+1E52; [45, 05, 8F][, AB, 05][, 8D, 05]
+1E51; [45, 05, 05][, AB, 05][, 8F, 05]
+1E50; [45, 05, 8F][, AB, 05][, 8F, 05]
+1ECF; [45, 05, 05][, AF, 05]
+1ECE; [45, 05, 8F][, AF, 05]
+020D; [45, 05, 05][, B5, 05]
+020C; [45, 05, 8F][, B5, 05]
+020F; [45, 05, 05][, B9, 05]
+020E; [45, 05, 8F][, B9, 05]
+01A1; [45, 05, 05][, C9, 05]
+01A0; [45, 05, 8F][, C9, 05]
+1EDB; [45, 05, 05][, C9, 05][, 8D, 05]
+1EDA; [45, 05, 8F][, C9, 05][, 8D, 05]
+1EDD; [45, 05, 05][, C9, 05][, 8F, 05]
+1EDC; [45, 05, 8F][, C9, 05][, 8F, 05]
+1EE1; [45, 05, 05][, C9, 05][, A1, 05]
+1EE0; [45, 05, 8F][, C9, 05][, A1, 05]
+1EDF; [45, 05, 05][, C9, 05][, AF, 05]
+1EDE; [45, 05, 8F][, C9, 05][, AF, 05]
+1EE3; [45, 05, 05][, C9, 05][, D0 4D, 05]
+1EE2; [45, 05, 8F][, C9, 05][, D0 4D, 05]
+1ECD; [45, 05, 05][, D0 4D, 05]
+1ECC; [45, 05, 8F][, D0 4D, 05]
+1ED9; [45, 05, 05][, D0 4D, 05][, 93, 05]
+1ED8; [45, 05, 8F][, D0 4D, 05][, 93, 05]
+0153; [45, 05, 09][, E4 4D, 09][31, 05, 3D]
+0152; [45, 05, 93][, E4 4D, 09][31, 05, 3D]
+3375; [45, 05, 37][53, 05, B9]
+
+1D0F; [46 60, 05, 05]
+
+1D11; [46 62, 05, 05]
+
+0276; [46 64, 05, 05]
+
+1D14; [46 66, 05, 05]
+
+1D13; [46 68, 05, 05]
+
+0254; [46 6A, 05, 05]
+0186; [46 6A, 05, 8F]
+1D53; [46 6A, 05, 27]
+
+1D10; [46 6C, 05, 05]
+
+1D12; [46 6E, 05, 05]
+
+1D97; [46 70, 05, 05]
+
+1D16; [46 72, 05, 05]
+1D54; [46 72, 05, 27]
+
+1D17; [46 74, 05, 05]
+1D55; [46 74, 05, 27]
+
+0275; [46 76, 05, 05]
+019F; [46 76, 05, 8F]
+1DB1; [46 76, 05, 27]
+
+0277; [46 78, 05, 05]
+
+0223; [46 7A, 05, 05]
+0222; [46 7A, 05, 8F]
+1D3D; [46 7A, 05, B9]
+
+1D15; [46 7C, 05, 05]
+
+0070; [47, 05, 05]
+FF50; [47, 05, 07]
+D835 DC29; [47, 05, 0B]
+D835 DC5D; [47, 05, 0B]
+D835 DC91; [47, 05, 0B]
+D835 DCC5; [47, 05, 0B]
+D835 DCF9; [47, 05, 0B]
+D835 DD2D; [47, 05, 0B]
+D835 DD61; [47, 05, 0B]
+D835 DD95; [47, 05, 0B]
+D835 DDC9; [47, 05, 0B]
+D835 DDFD; [47, 05, 0B]
+D835 DE31; [47, 05, 0B]
+D835 DE65; [47, 05, 0B]
+D835 DE99; [47, 05, 0B]
+24DF; [47, 05, 0D]
+0050; [47, 05, 8F]
+FF30; [47, 05, 91]
+2119; [47, 05, 95]
+D835 DC0F; [47, 05, 95]
+D835 DC43; [47, 05, 95]
+D835 DC77; [47, 05, 95]
+D835 DCAB; [47, 05, 95]
+D835 DCDF; [47, 05, 95]
+D835 DD13; [47, 05, 95]
+D835 DD7B; [47, 05, 95]
+D835 DDAF; [47, 05, 95]
+D835 DDE3; [47, 05, 95]
+D835 DE17; [47, 05, 95]
+D835 DE4B; [47, 05, 95]
+D835 DE7F; [47, 05, 95]
+24C5; [47, 05, 97]
+1D56; [47, 05, 27]
+1D3E; [47, 05, B9]
+1E55; [47, 05, 05][, 8D, 05]
+1E54; [47, 05, 8F][, 8D, 05]
+1E57; [47, 05, 05][, A3, 05]
+1E56; [47, 05, 8F][, A3, 05]
+33D8; [47, 05, 37][08 1D, 05, 37][41, 05, 3D][08 1D, 05, 3D]
+3380; [47, 05, 37][29, 05, B9]
+33A9; [47, 05, B9][29, 05, 37]
+3376; [47, 05, 37][2D, 05, 37]
+338A; [47, 05, 37][33, 05, B9]
+33D7; [47, 05, B9][37, 05, B9]
+33D9; [47, 05, B9][47, 05, B9][41, 05, 3D]
+33DA; [47, 05, B9][4B, 05, B9]
+33B0; [47, 05, 37][4D, 05, 37]
+3250; [47, 05, B9][4F, 05, B9][31, 05, 3D]
+33B4; [47, 05, 37][53, 05, B9]
+33BA; [47, 05, 37][55, 05, B9]
+
+1D18; [48 60, 05, 05]
+
+1D7D; [48 62, 05, 05]
+2C63; [48 62, 05, 8F]
+
+1D71; [48 64, 05, 05]
+
+1D88; [48 66, 05, 05]
+
+01A5; [48 68, 05, 05]
+01A4; [48 68, 05, 8F]
+
+0278; [48 6A, 05, 05]
+1DB2; [48 6A, 05, 27]
+
+2C77; [48 6C, 05, 05]
+
+0071; [49, 05, 05]
+FF51; [49, 05, 07]
+D835 DC2A; [49, 05, 0B]
+D835 DC5E; [49, 05, 0B]
+D835 DC92; [49, 05, 0B]
+D835 DCC6; [49, 05, 0B]
+D835 DCFA; [49, 05, 0B]
+D835 DD2E; [49, 05, 0B]
+D835 DD62; [49, 05, 0B]
+D835 DD96; [49, 05, 0B]
+D835 DDCA; [49, 05, 0B]
+D835 DDFE; [49, 05, 0B]
+D835 DE32; [49, 05, 0B]
+D835 DE66; [49, 05, 0B]
+D835 DE9A; [49, 05, 0B]
+24E0; [49, 05, 0D]
+0051; [49, 05, 8F]
+FF31; [49, 05, 91]
+211A; [49, 05, 95]
+D835 DC10; [49, 05, 95]
+D835 DC44; [49, 05, 95]
+D835 DC78; [49, 05, 95]
+D835 DCAC; [49, 05, 95]
+D835 DCE0; [49, 05, 95]
+D835 DD14; [49, 05, 95]
+D835 DD7C; [49, 05, 95]
+D835 DDB0; [49, 05, 95]
+D835 DDE4; [49, 05, 95]
+D835 DE18; [49, 05, 95]
+D835 DE4C; [49, 05, 95]
+D835 DE80; [49, 05, 95]
+24C6; [49, 05, 97]
+0239; [49, 05, 09][47, 05, 09]
+
+02A0; [4A 60, 05, 05]
+
+024B; [4A 62, 05, 05]
+024A; [4A 62, 05, 8F]
+
+0138; [4A 64, 05, 05]
+
+0072; [4B, 05, 05]
+FF52; [4B, 05, 07]
+036C; [4B, 05, 09]
+D835 DC2B; [4B, 05, 0B]
+D835 DC5F; [4B, 05, 0B]
+D835 DC93; [4B, 05, 0B]
+D835 DCC7; [4B, 05, 0B]
+D835 DCFB; [4B, 05, 0B]
+D835 DD2F; [4B, 05, 0B]
+D835 DD63; [4B, 05, 0B]
+D835 DD97; [4B, 05, 0B]
+D835 DDCB; [4B, 05, 0B]
+D835 DDFF; [4B, 05, 0B]
+D835 DE33; [4B, 05, 0B]
+D835 DE67; [4B, 05, 0B]
+D835 DE9B; [4B, 05, 0B]
+24E1; [4B, 05, 0D]
+0052; [4B, 05, 8F]
+FF32; [4B, 05, 91]
+211B; [4B, 05, 95]
+211C; [4B, 05, 95]
+211D; [4B, 05, 95]
+D835 DC11; [4B, 05, 95]
+D835 DC45; [4B, 05, 95]
+D835 DC79; [4B, 05, 95]
+D835 DCE1; [4B, 05, 95]
+D835 DD7D; [4B, 05, 95]
+D835 DDB1; [4B, 05, 95]
+D835 DDE5; [4B, 05, 95]
+D835 DE19; [4B, 05, 95]
+D835 DE4D; [4B, 05, 95]
+D835 DE81; [4B, 05, 95]
+24C7; [4B, 05, 97]
+02B3; [4B, 05, 27]
+1D63; [4B, 05, 29]
+1D3F; [4B, 05, B9]
+0155; [4B, 05, 05][, 8D, 05]
+0154; [4B, 05, 8F][, 8D, 05]
+0159; [4B, 05, 05][, 97, 05]
+0158; [4B, 05, 8F][, 97, 05]
+1E59; [4B, 05, 05][, A3, 05]
+1E58; [4B, 05, 8F][, A3, 05]
+0157; [4B, 05, 05][, A7, 05]
+0156; [4B, 05, 8F][, A7, 05]
+0211; [4B, 05, 05][, B5, 05]
+0210; [4B, 05, 8F][, B5, 05]
+0213; [4B, 05, 05][, B9, 05]
+0212; [4B, 05, 8F][, B9, 05]
+1E5B; [4B, 05, 05][, D0 4D, 05]
+1E5A; [4B, 05, 8F][, D0 4D, 05]
+1E5D; [4B, 05, 05][, D0 4D, 05][, AB, 05]
+1E5C; [4B, 05, 8F][, D0 4D, 05][, AB, 05]
+1E5F; [4B, 05, 05][, D1 11, 05]
+1E5E; [4B, 05, 8F][, D1 11, 05]
+33AD; [4B, 05, 37][29, 05, 37][2F, 05, 3D]
+33AE; [4B, 05, 37][29, 05, 37][2F, 05, 3D][0C F7, 05, 3D][4D, 05, 3D]
+33AF; [4B, 05, 37][29, 05, 37][2F, 05, 3D][0C F7, 05, 3D][4D, 05, 3D][26 7E, 05, 3D]
+20A8; [4B, 05, 93][4D, 05, 09]
+
+0280; [4C 60, 05, 05]
+01A6; [4C 60, 05, 8F]
+
+1D19; [4C 62, 05, 05]
+
+024D; [4C 64, 05, 05]
+024C; [4C 64, 05, 8F]
+
+1D72; [4C 66, 05, 05]
+
+0279; [4C 68, 05, 05]
+02B4; [4C 68, 05, 27]
+
+1D1A; [4C 6A, 05, 05]
+
+027A; [4C 6C, 05, 05]
+
+1D89; [4C 6E, 05, 05]
+
+027B; [4C 70, 05, 05]
+02B5; [4C 70, 05, 27]
+
+027C; [4C 72, 05, 05]
+
+027D; [4C 74, 05, 05]
+2C64; [4C 74, 05, 8F]
+
+027E; [4C 76, 05, 05]
+
+1D73; [4C 78, 05, 05]
+
+027F; [4C 7A, 05, 05]
+
+0281; [4C 7C, 05, 05]
+02B6; [4C 7C, 05, 27]
+
+0073; [4D, 05, 05]
+FF53; [4D, 05, 07]
+D835 DC2C; [4D, 05, 0B]
+D835 DC60; [4D, 05, 0B]
+D835 DC94; [4D, 05, 0B]
+D835 DCC8; [4D, 05, 0B]
+D835 DCFC; [4D, 05, 0B]
+D835 DD30; [4D, 05, 0B]
+D835 DD64; [4D, 05, 0B]
+D835 DD98; [4D, 05, 0B]
+D835 DDCC; [4D, 05, 0B]
+D835 DE00; [4D, 05, 0B]
+D835 DE34; [4D, 05, 0B]
+D835 DE68; [4D, 05, 0B]
+D835 DE9C; [4D, 05, 0B]
+24E2; [4D, 05, 0D]
+0053; [4D, 05, 8F]
+FF33; [4D, 05, 91]
+D835 DC12; [4D, 05, 95]
+D835 DC46; [4D, 05, 95]
+D835 DC7A; [4D, 05, 95]
+D835 DCAE; [4D, 05, 95]
+D835 DCE2; [4D, 05, 95]
+D835 DD16; [4D, 05, 95]
+D835 DD4A; [4D, 05, 95]
+D835 DD7E; [4D, 05, 95]
+D835 DDB2; [4D, 05, 95]
+D835 DDE6; [4D, 05, 95]
+D835 DE1A; [4D, 05, 95]
+D835 DE4E; [4D, 05, 95]
+D835 DE82; [4D, 05, 95]
+24C8; [4D, 05, 97]
+02E2; [4D, 05, 27]
+015B; [4D, 05, 05][, 8D, 05]
+015A; [4D, 05, 8F][, 8D, 05]
+1E65; [4D, 05, 05][, 8D, 05][, A3, 05]
+1E64; [4D, 05, 8F][, 8D, 05][, A3, 05]
+015D; [4D, 05, 05][, 93, 05]
+015C; [4D, 05, 8F][, 93, 05]
+0161; [4D, 05, 05][, 97, 05]
+0160; [4D, 05, 8F][, 97, 05]
+1E67; [4D, 05, 05][, 97, 05][, A3, 05]
+1E66; [4D, 05, 8F][, 97, 05][, A3, 05]
+1E61; [4D, 05, 05][, A3, 05]
+1E60; [4D, 05, 8F][, A3, 05]
+015F; [4D, 05, 05][, A7, 05]
+015E; [4D, 05, 8F][, A7, 05]
+1E63; [4D, 05, 05][, D0 4D, 05]
+1E62; [4D, 05, 8F][, D0 4D, 05]
+1E69; [4D, 05, 05][, D0 4D, 05][, A3, 05]
+1E68; [4D, 05, 8F][, D0 4D, 05][, A3, 05]
+0219; [4D, 05, 05][, D0 7D, 05]
+0218; [4D, 05, 8F][, D0 7D, 05]
+017F; [4D, 05, 09][, E4 5D, 09]
+1E9B; [4D, 05, 09][, E4 5D, 09][, A3, 05]
+2120; [4D, 05, 27][41, 05, 27]
+33DB; [4D, 05, 37][4B, 05, 37]
+00DF; [4D, 05, 09][, E4 4D, 09][4D, 05, 3D]
+FB06; [4D, 05, 09][4F, 05, 09]
+FB05; [4D, 05, 09][, E4 5D, 09][4F, 05, 3D]
+33DC; [4D, 05, B9][53, 05, 37]
+
+1D74; [4E 60, 05, 05]
+
+1D8A; [4E 62, 05, 05]
+
+0282; [4E 64, 05, 05]
+1DB3; [4E 64, 05, 27]
+
+023F; [4E 66, 05, 05]
+
+0283; [4E 68, 05, 05]
+01A9; [4E 68, 05, 8F]
+1DB4; [4E 68, 05, 27]
+
+1D8B; [4E 6A, 05, 05]
+
+01AA; [4E 6C, 05, 05]
+
+0285; [4E 6E, 05, 05]
+
+1D98; [4E 70, 05, 05]
+
+0286; [4E 72, 05, 05]
+
+0074; [4F, 05, 05]
+FF54; [4F, 05, 07]
+036D; [4F, 05, 09]
+D835 DC2D; [4F, 05, 0B]
+D835 DC61; [4F, 05, 0B]
+D835 DC95; [4F, 05, 0B]
+D835 DCC9; [4F, 05, 0B]
+D835 DCFD; [4F, 05, 0B]
+D835 DD31; [4F, 05, 0B]
+D835 DD65; [4F, 05, 0B]
+D835 DD99; [4F, 05, 0B]
+D835 DDCD; [4F, 05, 0B]
+D835 DE01; [4F, 05, 0B]
+D835 DE35; [4F, 05, 0B]
+D835 DE69; [4F, 05, 0B]
+D835 DE9D; [4F, 05, 0B]
+24E3; [4F, 05, 0D]
+0054; [4F, 05, 8F]
+FF34; [4F, 05, 91]
+D835 DC13; [4F, 05, 95]
+D835 DC47; [4F, 05, 95]
+D835 DC7B; [4F, 05, 95]
+D835 DCAF; [4F, 05, 95]
+D835 DCE3; [4F, 05, 95]
+D835 DD17; [4F, 05, 95]
+D835 DD4B; [4F, 05, 95]
+D835 DD7F; [4F, 05, 95]
+D835 DDB3; [4F, 05, 95]
+D835 DDE7; [4F, 05, 95]
+D835 DE1B; [4F, 05, 95]
+D835 DE4F; [4F, 05, 95]
+D835 DE83; [4F, 05, 95]
+24C9; [4F, 05, 97]
+1D57; [4F, 05, 27]
+1D40; [4F, 05, B9]
+0165; [4F, 05, 05][, 97, 05]
+0164; [4F, 05, 8F][, 97, 05]
+1E97; [4F, 05, 05][, 9D, 05]
+1E6B; [4F, 05, 05][, A3, 05]
+1E6A; [4F, 05, 8F][, A3, 05]
+0163; [4F, 05, 05][, A7, 05]
+0162; [4F, 05, 8F][, A7, 05]
+1E6D; [4F, 05, 05][, D0 4D, 05]
+1E6C; [4F, 05, 8F][, D0 4D, 05]
+021B; [4F, 05, 05][, D0 7D, 05]
+021A; [4F, 05, 8F][, D0 7D, 05]
+1E71; [4F, 05, 05][, D0 CD, 05]
+1E70; [4F, 05, 8F][, D0 CD, 05]
+1E6F; [4F, 05, 05][, D1 11, 05]
+1E6E; [4F, 05, 8F][, D1 11, 05]
+02A8; [4F, 05, 09][2E 66, 05, 09]
+2121; [4F, 05, 93][31, 05, 93][3F, 05, 3D]
+1D7A; [4F, 05, 09][, E4 5D, 09][37, 05, 3D]
+3394; [4F, 05, B9][37, 05, B9][5B, 05, 3D]
+2122; [4F, 05, 27][41, 05, 27]
+01BE; [4F, 05, 09][4D, 05, 09]
+02A6; [4F, 05, 09][4D, 05, 09]
+02A7; [4F, 05, 09][4E 68, 05, 09]
+
+1D1B; [50 60, 05, 05]
+
+0167; [50 62, 05, 05]
+0166; [50 62, 05, 8F]
+
+2C66; [50 64, 05, 05]
+023E; [50 64, 05, 8F]
+
+1D75; [50 66, 05, 05]
+
+01AB; [50 68, 05, 05]
+1DB5; [50 68, 05, 27]
+
+01AD; [50 6A, 05, 05]
+01AC; [50 6A, 05, 8F]
+
+0288; [50 6C, 05, 05]
+01AE; [50 6C, 05, 8F]
+
+0236; [50 6E, 05, 05]
+
+0287; [50 70, 05, 05]
+
+0075; [51, 05, 05]
+FF55; [51, 05, 07]
+0367; [51, 05, 09]
+D835 DC2E; [51, 05, 0B]
+D835 DC62; [51, 05, 0B]
+D835 DC96; [51, 05, 0B]
+D835 DCCA; [51, 05, 0B]
+D835 DCFE; [51, 05, 0B]
+D835 DD32; [51, 05, 0B]
+D835 DD66; [51, 05, 0B]
+D835 DD9A; [51, 05, 0B]
+D835 DDCE; [51, 05, 0B]
+D835 DE02; [51, 05, 0B]
+D835 DE36; [51, 05, 0B]
+D835 DE6A; [51, 05, 0B]
+D835 DE9E; [51, 05, 0B]
+24E4; [51, 05, 0D]
+0055; [51, 05, 8F]
+FF35; [51, 05, 91]
+D835 DC14; [51, 05, 95]
+D835 DC48; [51, 05, 95]
+D835 DC7C; [51, 05, 95]
+D835 DCB0; [51, 05, 95]
+D835 DCE4; [51, 05, 95]
+D835 DD18; [51, 05, 95]
+D835 DD4C; [51, 05, 95]
+D835 DD80; [51, 05, 95]
+D835 DDB4; [51, 05, 95]
+D835 DDE8; [51, 05, 95]
+D835 DE1C; [51, 05, 95]
+D835 DE50; [51, 05, 95]
+D835 DE84; [51, 05, 95]
+24CA; [51, 05, 97]
+1D58; [51, 05, 27]
+1D64; [51, 05, 29]
+1D41; [51, 05, B9]
+00FA; [51, 05, 05][, 8D, 05]
+00DA; [51, 05, 8F][, 8D, 05]
+00F9; [51, 05, 05][, 8F, 05]
+00D9; [51, 05, 8F][, 8F, 05]
+016D; [51, 05, 05][, 91, 05]
+016C; [51, 05, 8F][, 91, 05]
+00FB; [51, 05, 05][, 93, 05]
+00DB; [51, 05, 8F][, 93, 05]
+01D4; [51, 05, 05][, 97, 05]
+01D3; [51, 05, 8F][, 97, 05]
+016F; [51, 05, 05][, 99, 05]
+016E; [51, 05, 8F][, 99, 05]
+00FC; [51, 05, 05][, 9D, 05]
+00DC; [51, 05, 8F][, 9D, 05]
+01D8; [51, 05, 05][, 9D, 05][, 8D, 05]
+01D7; [51, 05, 8F][, 9D, 05][, 8D, 05]
+01DC; [51, 05, 05][, 9D, 05][, 8F, 05]
+01DB; [51, 05, 8F][, 9D, 05][, 8F, 05]
+01DA; [51, 05, 05][, 9D, 05][, 97, 05]
+01D9; [51, 05, 8F][, 9D, 05][, 97, 05]
+01D6; [51, 05, 05][, 9D, 05][, AB, 05]
+01D5; [51, 05, 8F][, 9D, 05][, AB, 05]
+0171; [51, 05, 05][, 9F, 05]
+0170; [51, 05, 8F][, 9F, 05]
+0169; [51, 05, 05][, A1, 05]
+0168; [51, 05, 8F][, A1, 05]
+1E79; [51, 05, 05][, A1, 05][, 8D, 05]
+1E78; [51, 05, 8F][, A1, 05][, 8D, 05]
+0173; [51, 05, 05][, A9, 05]
+0172; [51, 05, 8F][, A9, 05]
+016B; [51, 05, 05][, AB, 05]
+016A; [51, 05, 8F][, AB, 05]
+1E7B; [51, 05, 05][, AB, 05][, 9D, 05]
+1E7A; [51, 05, 8F][, AB, 05][, 9D, 05]
+1EE7; [51, 05, 05][, AF, 05]
+1EE6; [51, 05, 8F][, AF, 05]
+0215; [51, 05, 05][, B5, 05]
+0214; [51, 05, 8F][, B5, 05]
+0217; [51, 05, 05][, B9, 05]
+0216; [51, 05, 8F][, B9, 05]
+01B0; [51, 05, 05][, C9, 05]
+01AF; [51, 05, 8F][, C9, 05]
+1EE9; [51, 05, 05][, C9, 05][, 8D, 05]
+1EE8; [51, 05, 8F][, C9, 05][, 8D, 05]
+1EEB; [51, 05, 05][, C9, 05][, 8F, 05]
+1EEA; [51, 05, 8F][, C9, 05][, 8F, 05]
+1EEF; [51, 05, 05][, C9, 05][, A1, 05]
+1EEE; [51, 05, 8F][, C9, 05][, A1, 05]
+1EED; [51, 05, 05][, C9, 05][, AF, 05]
+1EEC; [51, 05, 8F][, C9, 05][, AF, 05]
+1EF1; [51, 05, 05][, C9, 05][, D0 4D, 05]
+1EF0; [51, 05, 8F][, C9, 05][, D0 4D, 05]
+1EE5; [51, 05, 05][, D0 4D, 05]
+1EE4; [51, 05, 8F][, D0 4D, 05]
+1E73; [51, 05, 05][, D0 5D, 05]
+1E72; [51, 05, 8F][, D0 5D, 05]
+1E77; [51, 05, 05][, D0 CD, 05]
+1E76; [51, 05, 8F][, D0 CD, 05]
+1E75; [51, 05, 05][, D0 FD, 05]
+1E74; [51, 05, 8F][, D0 FD, 05]
+
+1D1C; [52 60, 05, 05]
+1DB8; [52 60, 05, 27]
+
+1D1D; [52 62, 05, 05]
+1D59; [52 62, 05, 27]
+
+1D1E; [52 64, 05, 05]
+
+1D6B; [52 66, 05, 05]
+
+0289; [52 68, 05, 05]
+0244; [52 68, 05, 8F]
+1DB6; [52 68, 05, 27]
+
+1D7E; [52 6A, 05, 05]
+
+1D99; [52 6C, 05, 05]
+
+0265; [52 6E, 05, 05]
+1DA3; [52 6E, 05, 27]
+
+02AE; [52 70, 05, 05]
+
+02AF; [52 72, 05, 05]
+
+026F; [52 74, 05, 05]
+019C; [52 74, 05, 8F]
+1D5A; [52 74, 05, 27]
+
+1D1F; [52 76, 05, 05]
+
+0270; [52 78, 05, 05]
+1DAD; [52 78, 05, 27]
+
+028A; [52 7A, 05, 05]
+01B1; [52 7A, 05, 8F]
+1DB7; [52 7A, 05, 27]
+
+1D7F; [52 7C, 05, 05]
+
+0076; [53, 05, 05]
+FF56; [53, 05, 07]
+036E; [53, 05, 09]
+2174; [53, 05, 09]
+D835 DC2F; [53, 05, 0B]
+D835 DC63; [53, 05, 0B]
+D835 DC97; [53, 05, 0B]
+D835 DCCB; [53, 05, 0B]
+D835 DCFF; [53, 05, 0B]
+D835 DD33; [53, 05, 0B]
+D835 DD67; [53, 05, 0B]
+D835 DD9B; [53, 05, 0B]
+D835 DDCF; [53, 05, 0B]
+D835 DE03; [53, 05, 0B]
+D835 DE37; [53, 05, 0B]
+D835 DE6B; [53, 05, 0B]
+D835 DE9F; [53, 05, 0B]
+24E5; [53, 05, 0D]
+0056; [53, 05, 8F]
+FF36; [53, 05, 91]
+2164; [53, 05, 93]
+D835 DC15; [53, 05, 95]
+D835 DC49; [53, 05, 95]
+D835 DC7D; [53, 05, 95]
+D835 DCB1; [53, 05, 95]
+D835 DCE5; [53, 05, 95]
+D835 DD19; [53, 05, 95]
+D835 DD4D; [53, 05, 95]
+D835 DD81; [53, 05, 95]
+D835 DDB5; [53, 05, 95]
+D835 DDE9; [53, 05, 95]
+D835 DE1D; [53, 05, 95]
+D835 DE51; [53, 05, 95]
+D835 DE85; [53, 05, 95]
+24CB; [53, 05, 97]
+1D5B; [53, 05, 27]
+1D65; [53, 05, 29]
+1E7D; [53, 05, 05][, A1, 05]
+1E7C; [53, 05, 8F][, A1, 05]
+1E7F; [53, 05, 05][, D0 4D, 05]
+1E7E; [53, 05, 8F][, D0 4D, 05]
+33DE; [53, 05, B9][0C F7, 05, 37][41, 05, 3D]
+2175; [53, 05, 09][39, 05, 09]
+2165; [53, 05, 93][39, 05, 93]
+2176; [53, 05, 09][39, 05, 09][39, 05, 3D]
+2166; [53, 05, 93][39, 05, 93][39, 05, 3D]
+2177; [53, 05, 09][39, 05, 09][39, 05, 3D][39, 05, 3D]
+2167; [53, 05, 93][39, 05, 93][39, 05, 3D][39, 05, 3D]
+
+1D20; [54 60, 05, 05]
+
+1D8C; [54 62, 05, 05]
+
+028B; [54 64, 05, 05]
+01B2; [54 64, 05, 8F]
+1DB9; [54 64, 05, 27]
+
+2C74; [54 66, 05, 05]
+
+028C; [54 68, 05, 05]
+0245; [54 68, 05, 8F]
+1DBA; [54 68, 05, 27]
+
+0077; [55, 05, 05]
+FF57; [55, 05, 07]
+D835 DC30; [55, 05, 0B]
+D835 DC64; [55, 05, 0B]
+D835 DC98; [55, 05, 0B]
+D835 DCCC; [55, 05, 0B]
+D835 DD00; [55, 05, 0B]
+D835 DD34; [55, 05, 0B]
+D835 DD68; [55, 05, 0B]
+D835 DD9C; [55, 05, 0B]
+D835 DDD0; [55, 05, 0B]
+D835 DE04; [55, 05, 0B]
+D835 DE38; [55, 05, 0B]
+D835 DE6C; [55, 05, 0B]
+D835 DEA0; [55, 05, 0B]
+24E6; [55, 05, 0D]
+0057; [55, 05, 8F]
+FF37; [55, 05, 91]
+D835 DC16; [55, 05, 95]
+D835 DC4A; [55, 05, 95]
+D835 DC7E; [55, 05, 95]
+D835 DCB2; [55, 05, 95]
+D835 DCE6; [55, 05, 95]
+D835 DD1A; [55, 05, 95]
+D835 DD4E; [55, 05, 95]
+D835 DD82; [55, 05, 95]
+D835 DDB6; [55, 05, 95]
+D835 DDEA; [55, 05, 95]
+D835 DE1E; [55, 05, 95]
+D835 DE52; [55, 05, 95]
+D835 DE86; [55, 05, 95]
+24CC; [55, 05, 97]
+02B7; [55, 05, 27]
+1D42; [55, 05, B9]
+1E83; [55, 05, 05][, 8D, 05]
+1E82; [55, 05, 8F][, 8D, 05]
+1E81; [55, 05, 05][, 8F, 05]
+1E80; [55, 05, 8F][, 8F, 05]
+0175; [55, 05, 05][, 93, 05]
+0174; [55, 05, 8F][, 93, 05]
+1E98; [55, 05, 05][, 99, 05]
+1E85; [55, 05, 05][, 9D, 05]
+1E84; [55, 05, 8F][, 9D, 05]
+1E87; [55, 05, 05][, A3, 05]
+1E86; [55, 05, 8F][, A3, 05]
+1E89; [55, 05, 05][, D0 4D, 05]
+1E88; [55, 05, 8F][, D0 4D, 05]
+33DD; [55, 05, B9][2B, 05, 37]
+
+1D21; [56 60, 05, 05]
+
+028D; [56 62, 05, 05]
+
+0078; [57, 05, 05]
+FF58; [57, 05, 07]
+036F; [57, 05, 09]
+2179; [57, 05, 09]
+D835 DC31; [57, 05, 0B]
+D835 DC65; [57, 05, 0B]
+D835 DC99; [57, 05, 0B]
+D835 DCCD; [57, 05, 0B]
+D835 DD01; [57, 05, 0B]
+D835 DD35; [57, 05, 0B]
+D835 DD69; [57, 05, 0B]
+D835 DD9D; [57, 05, 0B]
+D835 DDD1; [57, 05, 0B]
+D835 DE05; [57, 05, 0B]
+D835 DE39; [57, 05, 0B]
+D835 DE6D; [57, 05, 0B]
+D835 DEA1; [57, 05, 0B]
+24E7; [57, 05, 0D]
+0058; [57, 05, 8F]
+FF38; [57, 05, 91]
+2169; [57, 05, 93]
+D835 DC17; [57, 05, 95]
+D835 DC4B; [57, 05, 95]
+D835 DC7F; [57, 05, 95]
+D835 DCB3; [57, 05, 95]
+D835 DCE7; [57, 05, 95]
+D835 DD1B; [57, 05, 95]
+D835 DD4F; [57, 05, 95]
+D835 DD83; [57, 05, 95]
+D835 DDB7; [57, 05, 95]
+D835 DDEB; [57, 05, 95]
+D835 DE1F; [57, 05, 95]
+D835 DE53; [57, 05, 95]
+D835 DE87; [57, 05, 95]
+24CD; [57, 05, 97]
+02E3; [57, 05, 27]
+2093; [57, 05, 29]
+1E8D; [57, 05, 05][, 9D, 05]
+1E8C; [57, 05, 8F][, 9D, 05]
+1E8B; [57, 05, 05][, A3, 05]
+1E8A; [57, 05, 8F][, A3, 05]
+217A; [57, 05, 09][39, 05, 09]
+216A; [57, 05, 93][39, 05, 93]
+217B; [57, 05, 09][39, 05, 09][39, 05, 3D]
+216B; [57, 05, 93][39, 05, 93][39, 05, 3D]
+
+1D8D; [58 60, 05, 05]
+
+0079; [59, 05, 05]
+FF59; [59, 05, 07]
+D835 DC32; [59, 05, 0B]
+D835 DC66; [59, 05, 0B]
+D835 DC9A; [59, 05, 0B]
+D835 DCCE; [59, 05, 0B]
+D835 DD02; [59, 05, 0B]
+D835 DD36; [59, 05, 0B]
+D835 DD6A; [59, 05, 0B]
+D835 DD9E; [59, 05, 0B]
+D835 DDD2; [59, 05, 0B]
+D835 DE06; [59, 05, 0B]
+D835 DE3A; [59, 05, 0B]
+D835 DE6E; [59, 05, 0B]
+D835 DEA2; [59, 05, 0B]
+24E8; [59, 05, 0D]
+0059; [59, 05, 8F]
+FF39; [59, 05, 91]
+D835 DC18; [59, 05, 95]
+D835 DC4C; [59, 05, 95]
+D835 DC80; [59, 05, 95]
+D835 DCB4; [59, 05, 95]
+D835 DCE8; [59, 05, 95]
+D835 DD1C; [59, 05, 95]
+D835 DD50; [59, 05, 95]
+D835 DD84; [59, 05, 95]
+D835 DDB8; [59, 05, 95]
+D835 DDEC; [59, 05, 95]
+D835 DE20; [59, 05, 95]
+D835 DE54; [59, 05, 95]
+D835 DE88; [59, 05, 95]
+24CE; [59, 05, 97]
+02B8; [59, 05, 27]
+00FD; [59, 05, 05][, 8D, 05]
+00DD; [59, 05, 8F][, 8D, 05]
+1EF3; [59, 05, 05][, 8F, 05]
+1EF2; [59, 05, 8F][, 8F, 05]
+0177; [59, 05, 05][, 93, 05]
+0176; [59, 05, 8F][, 93, 05]
+1E99; [59, 05, 05][, 99, 05]
+00FF; [59, 05, 05][, 9D, 05]
+0178; [59, 05, 8F][, 9D, 05]
+1EF9; [59, 05, 05][, A1, 05]
+1EF8; [59, 05, 8F][, A1, 05]
+1E8F; [59, 05, 05][, A3, 05]
+1E8E; [59, 05, 8F][, A3, 05]
+0233; [59, 05, 05][, AB, 05]
+0232; [59, 05, 8F][, AB, 05]
+1EF7; [59, 05, 05][, AF, 05]
+1EF6; [59, 05, 8F][, AF, 05]
+1EF5; [59, 05, 05][, D0 4D, 05]
+1EF4; [59, 05, 8F][, D0 4D, 05]
+
+028F; [5A 60, 05, 05]
+
+024F; [5A 62, 05, 05]
+024E; [5A 62, 05, 8F]
+
+01B4; [5A 64, 05, 05]
+01B3; [5A 64, 05, 8F]
+
+007A; [5B, 05, 05]
+FF5A; [5B, 05, 07]
+D835 DC33; [5B, 05, 0B]
+D835 DC67; [5B, 05, 0B]
+D835 DC9B; [5B, 05, 0B]
+D835 DCCF; [5B, 05, 0B]
+D835 DD03; [5B, 05, 0B]
+D835 DD37; [5B, 05, 0B]
+D835 DD6B; [5B, 05, 0B]
+D835 DD9F; [5B, 05, 0B]
+D835 DDD3; [5B, 05, 0B]
+D835 DE07; [5B, 05, 0B]
+D835 DE3B; [5B, 05, 0B]
+D835 DE6F; [5B, 05, 0B]
+D835 DEA3; [5B, 05, 0B]
+24E9; [5B, 05, 0D]
+005A; [5B, 05, 8F]
+FF3A; [5B, 05, 91]
+2124; [5B, 05, 95]
+2128; [5B, 05, 95]
+D835 DC19; [5B, 05, 95]
+D835 DC4D; [5B, 05, 95]
+D835 DC81; [5B, 05, 95]
+D835 DCB5; [5B, 05, 95]
+D835 DCE9; [5B, 05, 95]
+D835 DD85; [5B, 05, 95]
+D835 DDB9; [5B, 05, 95]
+D835 DDED; [5B, 05, 95]
+D835 DE21; [5B, 05, 95]
+D835 DE55; [5B, 05, 95]
+D835 DE89; [5B, 05, 95]
+24CF; [5B, 05, 97]
+1DBB; [5B, 05, 27]
+017A; [5B, 05, 05][, 8D, 05]
+0179; [5B, 05, 8F][, 8D, 05]
+1E91; [5B, 05, 05][, 93, 05]
+1E90; [5B, 05, 8F][, 93, 05]
+017E; [5B, 05, 05][, 97, 05]
+017D; [5B, 05, 8F][, 97, 05]
+017C; [5B, 05, 05][, A3, 05]
+017B; [5B, 05, 8F][, A3, 05]
+1E93; [5B, 05, 05][, D0 4D, 05]
+1E92; [5B, 05, 8F][, D0 4D, 05]
+1E95; [5B, 05, 05][, D1 11, 05]
+1E94; [5B, 05, 8F][, D1 11, 05]
+018D; [5B, 05, 09][55, 05, 09]
+
+1D22; [5C 60, 05, 05]
+
+01B6; [5C 62, 05, 05]
+01B5; [5C 62, 05, 8F]
+
+1D76; [5C 64, 05, 05]
+
+1D8E; [5C 66, 05, 05]
+
+0225; [5C 68, 05, 05]
+0224; [5C 68, 05, 8F]
+
+0290; [5C 6A, 05, 05]
+1DBC; [5C 6A, 05, 27]
+
+0291; [5C 6C, 05, 05]
+1DBD; [5C 6C, 05, 27]
+
+0240; [5C 6E, 05, 05]
+
+2C6C; [5C 70, 05, 05]
+2C6B; [5C 70, 05, 8F]
+
+0292; [5C 72, 05, 05]
+01B7; [5C 72, 05, 8F]
+1DBE; [5C 72, 05, 27]
+01EF; [5C 72, 05, 05][, 97, 05]
+01EE; [5C 72, 05, 8F][, 97, 05]
+
+1D23; [5C 74, 05, 05]
+
+01B9; [5C 76, 05, 05]
+01B8; [5C 76, 05, 8F]
+
+1D9A; [5C 78, 05, 05]
+
+01BA; [5C 7A, 05, 05]
+
+0293; [5C 7C, 05, 05]
+
+021D; [5C 7E, 05, 05]
+021C; [5C 7E, 05, 8F]
+
+00FE; [5C 80, 05, 05]
+00DE; [5C 80, 05, 8F]
+
+01BF; [5C 82, 05, 05]
+01F7; [5C 82, 05, 8F]
+
+01BB; [5C 84, 05, 05]
+
+01A8; [5C 86, 05, 05]
+01A7; [5C 86, 05, 8F]
+
+01BD; [5C 88, 05, 05]
+01BC; [5C 88, 05, 8F]
+
+0185; [5C 8A, 05, 05]
+0184; [5C 8A, 05, 8F]
+
+0294; [5C 8C, 05, 05]
+
+0242; [5C 8E, 05, 05]
+0241; [5C 8E, 05, 8F]
+
+02C0; [5C 90, 05, 05]
+
+02BC; [5C 92, 05, 05]
+0149; [5C 92, 05, 09][43, 05, 09]
+
+02EE; [5C 94, 05, 05]
+
+02BE; [5C 96, 05, 05]
+
+0295; [5C 98, 05, 05]
+02E4; [5C 98, 05, 27]
+
+02BF; [5C 9A, 05, 05]
+
+02C1; [5C 9C, 05, 05]
+
+1D24; [5C 9E, 05, 05]
+
+1D25; [5C A0, 05, 05]
+1D5C; [5C A0, 05, 27]
+
+02A1; [5C A2, 05, 05]
+
+02A2; [5C A4, 05, 05]
+
+0296; [5C A6, 05, 05]
+
+01C0; [5C A8, 05, 05]
+
+01C1; [5C AA, 05, 05]
+
+01C2; [5C AC, 05, 05]
+
+01C3; [5C AE, 05, 05]
+
+0297; [5C B0, 05, 05]
+
+0298; [5C B2, 05, 05]
+
+02AC; [5C B4, 05, 05]
+
+02AD; [5C B6, 05, 05]
+
+03B1; [5D 20, 05, 05]
+D835 DEC2; [5D 20, 05, 0B]
+D835 DEFC; [5D 20, 05, 0B]
+D835 DF36; [5D 20, 05, 0B]
+D835 DF70; [5D 20, 05, 0B]
+D835 DFAA; [5D 20, 05, 0B]
+0391; [5D 20, 05, 8F]
+D835 DEA8; [5D 20, 05, 95]
+D835 DEE2; [5D 20, 05, 95]
+D835 DF1C; [5D 20, 05, 95]
+D835 DF56; [5D 20, 05, 95]
+D835 DF90; [5D 20, 05, 95]
+1F00; [5D 20, 05, 05][, 89, 05]
+1F08; [5D 20, 05, 8F][, 89, 05]
+1F04; [5D 20, 05, 05][, 89, 05][, 8D, 05]
+1F0C; [5D 20, 05, 8F][, 89, 05][, 8D, 05]
+1F84; [5D 20, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
+1F8C; [5D 20, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
+1F02; [5D 20, 05, 05][, 89, 05][, 8F, 05]
+1F0A; [5D 20, 05, 8F][, 89, 05][, 8F, 05]
+1F82; [5D 20, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
+1F8A; [5D 20, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
+1F06; [5D 20, 05, 05][, 89, 05][, 9B, 05]
+1F0E; [5D 20, 05, 8F][, 89, 05][, 9B, 05]
+1F86; [5D 20, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
+1F8E; [5D 20, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
+1F80; [5D 20, 05, 05][, 89, 05][, D1 E1, 05]
+1F88; [5D 20, 05, 8F][, 89, 05][, D1 E1, 05]
+1F01; [5D 20, 05, 05][, 8B, 05]
+1F09; [5D 20, 05, 8F][, 8B, 05]
+1F05; [5D 20, 05, 05][, 8B, 05][, 8D, 05]
+1F0D; [5D 20, 05, 8F][, 8B, 05][, 8D, 05]
+1F85; [5D 20, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1F8D; [5D 20, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1F03; [5D 20, 05, 05][, 8B, 05][, 8F, 05]
+1F0B; [5D 20, 05, 8F][, 8B, 05][, 8F, 05]
+1F83; [5D 20, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1F8B; [5D 20, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1F07; [5D 20, 05, 05][, 8B, 05][, 9B, 05]
+1F0F; [5D 20, 05, 8F][, 8B, 05][, 9B, 05]
+1F87; [5D 20, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1F8F; [5D 20, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1F81; [5D 20, 05, 05][, 8B, 05][, D1 E1, 05]
+1F89; [5D 20, 05, 8F][, 8B, 05][, D1 E1, 05]
+03AC; [5D 20, 05, 05][, 8D, 05]
+1F71; [5D 20, 05, 05][, 8D, 05]
+0386; [5D 20, 05, 8F][, 8D, 05]
+1FBB; [5D 20, 05, 8F][, 8D, 05]
+1FB4; [5D 20, 05, 05][, 8D, 05][, D1 E1, 05]
+1F70; [5D 20, 05, 05][, 8F, 05]
+1FBA; [5D 20, 05, 8F][, 8F, 05]
+1FB2; [5D 20, 05, 05][, 8F, 05][, D1 E1, 05]
+1FB0; [5D 20, 05, 05][, 91, 05]
+1FB8; [5D 20, 05, 8F][, 91, 05]
+1FB6; [5D 20, 05, 05][, 9B, 05]
+1FB7; [5D 20, 05, 05][, 9B, 05][, D1 E1, 05]
+1FB1; [5D 20, 05, 05][, AB, 05]
+1FB9; [5D 20, 05, 8F][, AB, 05]
+1FB3; [5D 20, 05, 05][, D1 E1, 05]
+1FBC; [5D 20, 05, 8F][, D1 E1, 05]
+
+03B2; [5D 22, 05, 05]
+03D0; [5D 22, 05, 09]
+D835 DEC3; [5D 22, 05, 0B]
+D835 DEFD; [5D 22, 05, 0B]
+D835 DF37; [5D 22, 05, 0B]
+D835 DF71; [5D 22, 05, 0B]
+D835 DFAB; [5D 22, 05, 0B]
+0392; [5D 22, 05, 8F]
+D835 DEA9; [5D 22, 05, 95]
+D835 DEE3; [5D 22, 05, 95]
+D835 DF1D; [5D 22, 05, 95]
+D835 DF57; [5D 22, 05, 95]
+D835 DF91; [5D 22, 05, 95]
+1D5D; [5D 22, 05, 27]
+1D66; [5D 22, 05, 29]
+
+03B3; [5D 24, 05, 05]
+213D; [5D 24, 05, 0B]
+D835 DEC4; [5D 24, 05, 0B]
+D835 DEFE; [5D 24, 05, 0B]
+D835 DF38; [5D 24, 05, 0B]
+D835 DF72; [5D 24, 05, 0B]
+D835 DFAC; [5D 24, 05, 0B]
+0393; [5D 24, 05, 8F]
+213E; [5D 24, 05, 95]
+D835 DEAA; [5D 24, 05, 95]
+D835 DEE4; [5D 24, 05, 95]
+D835 DF1E; [5D 24, 05, 95]
+D835 DF58; [5D 24, 05, 95]
+D835 DF92; [5D 24, 05, 95]
+1D5E; [5D 24, 05, 27]
+1D67; [5D 24, 05, 29]
+
+1D26; [5D 26, 05, 05]
+
+03B4; [5D 28, 05, 05]
+D835 DEC5; [5D 28, 05, 0B]
+D835 DEFF; [5D 28, 05, 0B]
+D835 DF39; [5D 28, 05, 0B]
+D835 DF73; [5D 28, 05, 0B]
+D835 DFAD; [5D 28, 05, 0B]
+0394; [5D 28, 05, 8F]
+D835 DEAB; [5D 28, 05, 95]
+D835 DEE5; [5D 28, 05, 95]
+D835 DF1F; [5D 28, 05, 95]
+D835 DF59; [5D 28, 05, 95]
+D835 DF93; [5D 28, 05, 95]
+1D5F; [5D 28, 05, 27]
+
+03B5; [5D 2A, 05, 05]
+03F5; [5D 2A, 05, 09]
+D835 DEC6; [5D 2A, 05, 0B]
+D835 DEDC; [5D 2A, 05, 0B]
+D835 DF00; [5D 2A, 05, 0B]
+D835 DF16; [5D 2A, 05, 0B]
+D835 DF3A; [5D 2A, 05, 0B]
+D835 DF50; [5D 2A, 05, 0B]
+D835 DF74; [5D 2A, 05, 0B]
+D835 DF8A; [5D 2A, 05, 0B]
+D835 DFAE; [5D 2A, 05, 0B]
+D835 DFC4; [5D 2A, 05, 0B]
+0395; [5D 2A, 05, 8F]
+D835 DEAC; [5D 2A, 05, 95]
+D835 DEE6; [5D 2A, 05, 95]
+D835 DF20; [5D 2A, 05, 95]
+D835 DF5A; [5D 2A, 05, 95]
+D835 DF94; [5D 2A, 05, 95]
+1F10; [5D 2A, 05, 05][, 89, 05]
+1F18; [5D 2A, 05, 8F][, 89, 05]
+1F14; [5D 2A, 05, 05][, 89, 05][, 8D, 05]
+1F1C; [5D 2A, 05, 8F][, 89, 05][, 8D, 05]
+1F12; [5D 2A, 05, 05][, 89, 05][, 8F, 05]
+1F1A; [5D 2A, 05, 8F][, 89, 05][, 8F, 05]
+1F11; [5D 2A, 05, 05][, 8B, 05]
+1F19; [5D 2A, 05, 8F][, 8B, 05]
+1F15; [5D 2A, 05, 05][, 8B, 05][, 8D, 05]
+1F1D; [5D 2A, 05, 8F][, 8B, 05][, 8D, 05]
+1F13; [5D 2A, 05, 05][, 8B, 05][, 8F, 05]
+1F1B; [5D 2A, 05, 8F][, 8B, 05][, 8F, 05]
+03AD; [5D 2A, 05, 05][, 8D, 05]
+1F73; [5D 2A, 05, 05][, 8D, 05]
+0388; [5D 2A, 05, 8F][, 8D, 05]
+1FC9; [5D 2A, 05, 8F][, 8D, 05]
+1F72; [5D 2A, 05, 05][, 8F, 05]
+1FC8; [5D 2A, 05, 8F][, 8F, 05]
+
+03DD; [5D 2C, 05, 05]
+D835 DFCB; [5D 2C, 05, 0B]
+03DC; [5D 2C, 05, 8F]
+D835 DFCA; [5D 2C, 05, 95]
+
+03DB; [5D 2E, 05, 05]
+03DA; [5D 2E, 05, 8F]
+
+03B6; [5D 30, 05, 05]
+D835 DEC7; [5D 30, 05, 0B]
+D835 DF01; [5D 30, 05, 0B]
+D835 DF3B; [5D 30, 05, 0B]
+D835 DF75; [5D 30, 05, 0B]
+D835 DFAF; [5D 30, 05, 0B]
+0396; [5D 30, 05, 8F]
+D835 DEAD; [5D 30, 05, 95]
+D835 DEE7; [5D 30, 05, 95]
+D835 DF21; [5D 30, 05, 95]
+D835 DF5B; [5D 30, 05, 95]
+D835 DF95; [5D 30, 05, 95]
+
+03B7; [5D 32, 05, 05]
+D835 DEC8; [5D 32, 05, 0B]
+D835 DF02; [5D 32, 05, 0B]
+D835 DF3C; [5D 32, 05, 0B]
+D835 DF76; [5D 32, 05, 0B]
+D835 DFB0; [5D 32, 05, 0B]
+0397; [5D 32, 05, 8F]
+D835 DEAE; [5D 32, 05, 95]
+D835 DEE8; [5D 32, 05, 95]
+D835 DF22; [5D 32, 05, 95]
+D835 DF5C; [5D 32, 05, 95]
+D835 DF96; [5D 32, 05, 95]
+1F20; [5D 32, 05, 05][, 89, 05]
+1F28; [5D 32, 05, 8F][, 89, 05]
+1F24; [5D 32, 05, 05][, 89, 05][, 8D, 05]
+1F2C; [5D 32, 05, 8F][, 89, 05][, 8D, 05]
+1F94; [5D 32, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
+1F9C; [5D 32, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
+1F22; [5D 32, 05, 05][, 89, 05][, 8F, 05]
+1F2A; [5D 32, 05, 8F][, 89, 05][, 8F, 05]
+1F92; [5D 32, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
+1F9A; [5D 32, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
+1F26; [5D 32, 05, 05][, 89, 05][, 9B, 05]
+1F2E; [5D 32, 05, 8F][, 89, 05][, 9B, 05]
+1F96; [5D 32, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
+1F9E; [5D 32, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
+1F90; [5D 32, 05, 05][, 89, 05][, D1 E1, 05]
+1F98; [5D 32, 05, 8F][, 89, 05][, D1 E1, 05]
+1F21; [5D 32, 05, 05][, 8B, 05]
+1F29; [5D 32, 05, 8F][, 8B, 05]
+1F25; [5D 32, 05, 05][, 8B, 05][, 8D, 05]
+1F2D; [5D 32, 05, 8F][, 8B, 05][, 8D, 05]
+1F95; [5D 32, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1F9D; [5D 32, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1F23; [5D 32, 05, 05][, 8B, 05][, 8F, 05]
+1F2B; [5D 32, 05, 8F][, 8B, 05][, 8F, 05]
+1F93; [5D 32, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1F9B; [5D 32, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1F27; [5D 32, 05, 05][, 8B, 05][, 9B, 05]
+1F2F; [5D 32, 05, 8F][, 8B, 05][, 9B, 05]
+1F97; [5D 32, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1F9F; [5D 32, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1F91; [5D 32, 05, 05][, 8B, 05][, D1 E1, 05]
+1F99; [5D 32, 05, 8F][, 8B, 05][, D1 E1, 05]
+03AE; [5D 32, 05, 05][, 8D, 05]
+1F75; [5D 32, 05, 05][, 8D, 05]
+0389; [5D 32, 05, 8F][, 8D, 05]
+1FCB; [5D 32, 05, 8F][, 8D, 05]
+1FC4; [5D 32, 05, 05][, 8D, 05][, D1 E1, 05]
+1F74; [5D 32, 05, 05][, 8F, 05]
+1FCA; [5D 32, 05, 8F][, 8F, 05]
+1FC2; [5D 32, 05, 05][, 8F, 05][, D1 E1, 05]
+1FC6; [5D 32, 05, 05][, 9B, 05]
+1FC7; [5D 32, 05, 05][, 9B, 05][, D1 E1, 05]
+1FC3; [5D 32, 05, 05][, D1 E1, 05]
+1FCC; [5D 32, 05, 8F][, D1 E1, 05]
+
+03B8; [5D 34, 05, 05]
+03D1; [5D 34, 05, 09]
+D835 DEC9; [5D 34, 05, 0B]
+D835 DEDD; [5D 34, 05, 0B]
+D835 DF03; [5D 34, 05, 0B]
+D835 DF17; [5D 34, 05, 0B]
+D835 DF3D; [5D 34, 05, 0B]
+D835 DF51; [5D 34, 05, 0B]
+D835 DF77; [5D 34, 05, 0B]
+D835 DF8B; [5D 34, 05, 0B]
+D835 DFB1; [5D 34, 05, 0B]
+D835 DFC5; [5D 34, 05, 0B]
+0398; [5D 34, 05, 8F]
+03F4; [5D 34, 05, 93]
+D835 DEAF; [5D 34, 05, 95]
+D835 DEB9; [5D 34, 05, 95]
+D835 DEE9; [5D 34, 05, 95]
+D835 DEF3; [5D 34, 05, 95]
+D835 DF23; [5D 34, 05, 95]
+D835 DF2D; [5D 34, 05, 95]
+D835 DF5D; [5D 34, 05, 95]
+D835 DF67; [5D 34, 05, 95]
+D835 DF97; [5D 34, 05, 95]
+D835 DFA1; [5D 34, 05, 95]
+1DBF; [5D 34, 05, 27]
+
+03B9; [5D 36, 05, 05]
+1FBE; [5D 36, 05, 05]
+037A; [5D 36, 05, 09]
+D835 DECA; [5D 36, 05, 0B]
+D835 DF04; [5D 36, 05, 0B]
+D835 DF3E; [5D 36, 05, 0B]
+D835 DF78; [5D 36, 05, 0B]
+D835 DFB2; [5D 36, 05, 0B]
+0399; [5D 36, 05, 8F]
+D835 DEB0; [5D 36, 05, 95]
+D835 DEEA; [5D 36, 05, 95]
+D835 DF24; [5D 36, 05, 95]
+D835 DF5E; [5D 36, 05, 95]
+D835 DF98; [5D 36, 05, 95]
+1F30; [5D 36, 05, 05][, 89, 05]
+1F38; [5D 36, 05, 8F][, 89, 05]
+1F34; [5D 36, 05, 05][, 89, 05][, 8D, 05]
+1F3C; [5D 36, 05, 8F][, 89, 05][, 8D, 05]
+1F32; [5D 36, 05, 05][, 89, 05][, 8F, 05]
+1F3A; [5D 36, 05, 8F][, 89, 05][, 8F, 05]
+1F36; [5D 36, 05, 05][, 89, 05][, 9B, 05]
+1F3E; [5D 36, 05, 8F][, 89, 05][, 9B, 05]
+1F31; [5D 36, 05, 05][, 8B, 05]
+1F39; [5D 36, 05, 8F][, 8B, 05]
+1F35; [5D 36, 05, 05][, 8B, 05][, 8D, 05]
+1F3D; [5D 36, 05, 8F][, 8B, 05][, 8D, 05]
+1F33; [5D 36, 05, 05][, 8B, 05][, 8F, 05]
+1F3B; [5D 36, 05, 8F][, 8B, 05][, 8F, 05]
+1F37; [5D 36, 05, 05][, 8B, 05][, 9B, 05]
+1F3F; [5D 36, 05, 8F][, 8B, 05][, 9B, 05]
+03AF; [5D 36, 05, 05][, 8D, 05]
+1F77; [5D 36, 05, 05][, 8D, 05]
+038A; [5D 36, 05, 8F][, 8D, 05]
+1FDB; [5D 36, 05, 8F][, 8D, 05]
+1F76; [5D 36, 05, 05][, 8F, 05]
+1FDA; [5D 36, 05, 8F][, 8F, 05]
+1FD0; [5D 36, 05, 05][, 91, 05]
+1FD8; [5D 36, 05, 8F][, 91, 05]
+1FD6; [5D 36, 05, 05][, 9B, 05]
+03CA; [5D 36, 05, 05][, 9D, 05]
+03AA; [5D 36, 05, 8F][, 9D, 05]
+0390; [5D 36, 05, 05][, 9D, 05][, 8D, 05]
+1FD3; [5D 36, 05, 05][, 9D, 05][, 8D, 05]
+1FD2; [5D 36, 05, 05][, 9D, 05][, 8F, 05]
+1FD7; [5D 36, 05, 05][, 9D, 05][, 9B, 05]
+1FD1; [5D 36, 05, 05][, AB, 05]
+1FD9; [5D 36, 05, 8F][, AB, 05]
+
+03F3; [5D 38, 05, 05]
+
+03BA; [5D 3A, 05, 05]
+03F0; [5D 3A, 05, 09]
+D835 DECB; [5D 3A, 05, 0B]
+D835 DEDE; [5D 3A, 05, 0B]
+D835 DF05; [5D 3A, 05, 0B]
+D835 DF18; [5D 3A, 05, 0B]
+D835 DF3F; [5D 3A, 05, 0B]
+D835 DF52; [5D 3A, 05, 0B]
+D835 DF79; [5D 3A, 05, 0B]
+D835 DF8C; [5D 3A, 05, 0B]
+D835 DFB3; [5D 3A, 05, 0B]
+D835 DFC6; [5D 3A, 05, 0B]
+039A; [5D 3A, 05, 8F]
+D835 DEB1; [5D 3A, 05, 95]
+D835 DEEB; [5D 3A, 05, 95]
+D835 DF25; [5D 3A, 05, 95]
+D835 DF5F; [5D 3A, 05, 95]
+D835 DF99; [5D 3A, 05, 95]
+03D7; [5D 3A, 05, 09][5D 20, 05, 09][5D 36, 05, 3D]
+
+03BB; [5D 3C, 05, 05]
+D835 DECC; [5D 3C, 05, 0B]
+D835 DF06; [5D 3C, 05, 0B]
+D835 DF40; [5D 3C, 05, 0B]
+D835 DF7A; [5D 3C, 05, 0B]
+D835 DFB4; [5D 3C, 05, 0B]
+039B; [5D 3C, 05, 8F]
+D835 DEB2; [5D 3C, 05, 95]
+D835 DEEC; [5D 3C, 05, 95]
+D835 DF26; [5D 3C, 05, 95]
+D835 DF60; [5D 3C, 05, 95]
+D835 DF9A; [5D 3C, 05, 95]
+
+1D27; [5D 3E, 05, 05]
+
+03BC; [5D 40, 05, 05]
+00B5; [5D 40, 05, 09]
+D835 DECD; [5D 40, 05, 0B]
+D835 DF07; [5D 40, 05, 0B]
+D835 DF41; [5D 40, 05, 0B]
+D835 DF7B; [5D 40, 05, 0B]
+D835 DFB5; [5D 40, 05, 0B]
+039C; [5D 40, 05, 8F]
+D835 DEB3; [5D 40, 05, 95]
+D835 DEED; [5D 40, 05, 95]
+D835 DF27; [5D 40, 05, 95]
+D835 DF61; [5D 40, 05, 95]
+D835 DF9B; [5D 40, 05, 95]
+3382; [5D 40, 05, 37][29, 05, B9]
+338C; [5D 40, 05, 37][33, 05, B9]
+338D; [5D 40, 05, 37][35, 05, 37]
+3395; [5D 40, 05, 37][3F, 05, 37]
+339B; [5D 40, 05, 37][41, 05, 37]
+33B2; [5D 40, 05, 37][4D, 05, 37]
+33B6; [5D 40, 05, 37][53, 05, B9]
+33BC; [5D 40, 05, 37][55, 05, B9]
+
+03BD; [5D 42, 05, 05]
+D835 DECE; [5D 42, 05, 0B]
+D835 DF08; [5D 42, 05, 0B]
+D835 DF42; [5D 42, 05, 0B]
+D835 DF7C; [5D 42, 05, 0B]
+D835 DFB6; [5D 42, 05, 0B]
+039D; [5D 42, 05, 8F]
+D835 DEB4; [5D 42, 05, 95]
+D835 DEEE; [5D 42, 05, 95]
+D835 DF28; [5D 42, 05, 95]
+D835 DF62; [5D 42, 05, 95]
+D835 DF9C; [5D 42, 05, 95]
+
+03BE; [5D 44, 05, 05]
+D835 DECF; [5D 44, 05, 0B]
+D835 DF09; [5D 44, 05, 0B]
+D835 DF43; [5D 44, 05, 0B]
+D835 DF7D; [5D 44, 05, 0B]
+D835 DFB7; [5D 44, 05, 0B]
+039E; [5D 44, 05, 8F]
+D835 DEB5; [5D 44, 05, 95]
+D835 DEEF; [5D 44, 05, 95]
+D835 DF29; [5D 44, 05, 95]
+D835 DF63; [5D 44, 05, 95]
+D835 DF9D; [5D 44, 05, 95]
+
+03BF; [5D 46, 05, 05]
+D835 DED0; [5D 46, 05, 0B]
+D835 DF0A; [5D 46, 05, 0B]
+D835 DF44; [5D 46, 05, 0B]
+D835 DF7E; [5D 46, 05, 0B]
+D835 DFB8; [5D 46, 05, 0B]
+039F; [5D 46, 05, 8F]
+D835 DEB6; [5D 46, 05, 95]
+D835 DEF0; [5D 46, 05, 95]
+D835 DF2A; [5D 46, 05, 95]
+D835 DF64; [5D 46, 05, 95]
+D835 DF9E; [5D 46, 05, 95]
+1F40; [5D 46, 05, 05][, 89, 05]
+1F48; [5D 46, 05, 8F][, 89, 05]
+1F44; [5D 46, 05, 05][, 89, 05][, 8D, 05]
+1F4C; [5D 46, 05, 8F][, 89, 05][, 8D, 05]
+1F42; [5D 46, 05, 05][, 89, 05][, 8F, 05]
+1F4A; [5D 46, 05, 8F][, 89, 05][, 8F, 05]
+1F41; [5D 46, 05, 05][, 8B, 05]
+1F49; [5D 46, 05, 8F][, 8B, 05]
+1F45; [5D 46, 05, 05][, 8B, 05][, 8D, 05]
+1F4D; [5D 46, 05, 8F][, 8B, 05][, 8D, 05]
+1F43; [5D 46, 05, 05][, 8B, 05][, 8F, 05]
+1F4B; [5D 46, 05, 8F][, 8B, 05][, 8F, 05]
+03CC; [5D 46, 05, 05][, 8D, 05]
+1F79; [5D 46, 05, 05][, 8D, 05]
+038C; [5D 46, 05, 8F][, 8D, 05]
+1FF9; [5D 46, 05, 8F][, 8D, 05]
+1F78; [5D 46, 05, 05][, 8F, 05]
+1FF8; [5D 46, 05, 8F][, 8F, 05]
+
+03C0; [5D 48, 05, 05]
+03D6; [5D 48, 05, 09]
+213C; [5D 48, 05, 0B]
+D835 DED1; [5D 48, 05, 0B]
+D835 DEE1; [5D 48, 05, 0B]
+D835 DF0B; [5D 48, 05, 0B]
+D835 DF1B; [5D 48, 05, 0B]
+D835 DF45; [5D 48, 05, 0B]
+D835 DF55; [5D 48, 05, 0B]
+D835 DF7F; [5D 48, 05, 0B]
+D835 DF8F; [5D 48, 05, 0B]
+D835 DFB9; [5D 48, 05, 0B]
+D835 DFC9; [5D 48, 05, 0B]
+03A0; [5D 48, 05, 8F]
+213F; [5D 48, 05, 95]
+D835 DEB7; [5D 48, 05, 95]
+D835 DEF1; [5D 48, 05, 95]
+D835 DF2B; [5D 48, 05, 95]
+D835 DF65; [5D 48, 05, 95]
+D835 DF9F; [5D 48, 05, 95]
+
+1D28; [5D 4A, 05, 05]
+
+03FB; [5D 4C, 05, 05]
+03FA; [5D 4C, 05, 8F]
+
+03DF; [5D 4E, 05, 05]
+03DE; [5D 4E, 05, 8F]
+
+03D9; [5D 50, 05, 05]
+03D8; [5D 50, 05, 8F]
+
+03C1; [5D 52, 05, 05]
+03F1; [5D 52, 05, 09]
+D835 DED2; [5D 52, 05, 0B]
+D835 DEE0; [5D 52, 05, 0B]
+D835 DF0C; [5D 52, 05, 0B]
+D835 DF1A; [5D 52, 05, 0B]
+D835 DF46; [5D 52, 05, 0B]
+D835 DF54; [5D 52, 05, 0B]
+D835 DF80; [5D 52, 05, 0B]
+D835 DF8E; [5D 52, 05, 0B]
+D835 DFBA; [5D 52, 05, 0B]
+D835 DFC8; [5D 52, 05, 0B]
+03A1; [5D 52, 05, 8F]
+D835 DEB8; [5D 52, 05, 95]
+D835 DEF2; [5D 52, 05, 95]
+D835 DF2C; [5D 52, 05, 95]
+D835 DF66; [5D 52, 05, 95]
+D835 DFA0; [5D 52, 05, 95]
+1D68; [5D 52, 05, 29]
+1FE4; [5D 52, 05, 05][, 89, 05]
+1FE5; [5D 52, 05, 05][, 8B, 05]
+1FEC; [5D 52, 05, 8F][, 8B, 05]
+
+1D29; [5D 54, 05, 05]
+
+03FC; [5D 56, 05, 05]
+
+03C3; [5D 58, 05, 05]
+03F2; [5D 58, 05, 09]
+D835 DED3; [5D 58, 05, 0B]
+D835 DED4; [5D 58, 05, 0B]
+D835 DF0D; [5D 58, 05, 0B]
+D835 DF0E; [5D 58, 05, 0B]
+D835 DF47; [5D 58, 05, 0B]
+D835 DF48; [5D 58, 05, 0B]
+D835 DF81; [5D 58, 05, 0B]
+D835 DF82; [5D 58, 05, 0B]
+D835 DFBB; [5D 58, 05, 0B]
+D835 DFBC; [5D 58, 05, 0B]
+03A3; [5D 58, 05, 8F]
+03F9; [5D 58, 05, 93]
+D835 DEBA; [5D 58, 05, 95]
+D835 DEF4; [5D 58, 05, 95]
+D835 DF2E; [5D 58, 05, 95]
+D835 DF68; [5D 58, 05, 95]
+D835 DFA2; [5D 58, 05, 95]
+03C2; [5D 58, 05, 31]
+
+037C; [5D 5A, 05, 05]
+03FE; [5D 5A, 05, 8F]
+
+037B; [5D 5C, 05, 05]
+03FD; [5D 5C, 05, 8F]
+
+037D; [5D 5E, 05, 05]
+03FF; [5D 5E, 05, 8F]
+
+03C4; [5D 60, 05, 05]
+D835 DED5; [5D 60, 05, 0B]
+D835 DF0F; [5D 60, 05, 0B]
+D835 DF49; [5D 60, 05, 0B]
+D835 DF83; [5D 60, 05, 0B]
+D835 DFBD; [5D 60, 05, 0B]
+03A4; [5D 60, 05, 8F]
+D835 DEBB; [5D 60, 05, 95]
+D835 DEF5; [5D 60, 05, 95]
+D835 DF2F; [5D 60, 05, 95]
+D835 DF69; [5D 60, 05, 95]
+D835 DFA3; [5D 60, 05, 95]
+
+03C5; [5D 62, 05, 05]
+D835 DED6; [5D 62, 05, 0B]
+D835 DF10; [5D 62, 05, 0B]
+D835 DF4A; [5D 62, 05, 0B]
+D835 DF84; [5D 62, 05, 0B]
+D835 DFBE; [5D 62, 05, 0B]
+03A5; [5D 62, 05, 8F]
+03D2; [5D 62, 05, 93]
+D835 DEBC; [5D 62, 05, 95]
+D835 DEF6; [5D 62, 05, 95]
+D835 DF30; [5D 62, 05, 95]
+D835 DF6A; [5D 62, 05, 95]
+D835 DFA4; [5D 62, 05, 95]
+1F50; [5D 62, 05, 05][, 89, 05]
+1F54; [5D 62, 05, 05][, 89, 05][, 8D, 05]
+1F52; [5D 62, 05, 05][, 89, 05][, 8F, 05]
+1F56; [5D 62, 05, 05][, 89, 05][, 9B, 05]
+1F51; [5D 62, 05, 05][, 8B, 05]
+1F59; [5D 62, 05, 8F][, 8B, 05]
+1F55; [5D 62, 05, 05][, 8B, 05][, 8D, 05]
+1F5D; [5D 62, 05, 8F][, 8B, 05][, 8D, 05]
+1F53; [5D 62, 05, 05][, 8B, 05][, 8F, 05]
+1F5B; [5D 62, 05, 8F][, 8B, 05][, 8F, 05]
+1F57; [5D 62, 05, 05][, 8B, 05][, 9B, 05]
+1F5F; [5D 62, 05, 8F][, 8B, 05][, 9B, 05]
+03CD; [5D 62, 05, 05][, 8D, 05]
+1F7B; [5D 62, 05, 05][, 8D, 05]
+038E; [5D 62, 05, 8F][, 8D, 05]
+1FEB; [5D 62, 05, 8F][, 8D, 05]
+03D3; [5D 62, 05, 93][, 8D, 05]
+1F7A; [5D 62, 05, 05][, 8F, 05]
+1FEA; [5D 62, 05, 8F][, 8F, 05]
+1FE0; [5D 62, 05, 05][, 91, 05]
+1FE8; [5D 62, 05, 8F][, 91, 05]
+1FE6; [5D 62, 05, 05][, 9B, 05]
+03CB; [5D 62, 05, 05][, 9D, 05]
+03AB; [5D 62, 05, 8F][, 9D, 05]
+03D4; [5D 62, 05, 93][, 9D, 05]
+03B0; [5D 62, 05, 05][, 9D, 05][, 8D, 05]
+1FE3; [5D 62, 05, 05][, 9D, 05][, 8D, 05]
+1FE2; [5D 62, 05, 05][, 9D, 05][, 8F, 05]
+1FE7; [5D 62, 05, 05][, 9D, 05][, 9B, 05]
+1FE1; [5D 62, 05, 05][, AB, 05]
+1FE9; [5D 62, 05, 8F][, AB, 05]
+
+03C6; [5D 64, 05, 05]
+03D5; [5D 64, 05, 09]
+D835 DED7; [5D 64, 05, 0B]
+D835 DEDF; [5D 64, 05, 0B]
+D835 DF11; [5D 64, 05, 0B]
+D835 DF19; [5D 64, 05, 0B]
+D835 DF4B; [5D 64, 05, 0B]
+D835 DF53; [5D 64, 05, 0B]
+D835 DF85; [5D 64, 05, 0B]
+D835 DF8D; [5D 64, 05, 0B]
+D835 DFBF; [5D 64, 05, 0B]
+D835 DFC7; [5D 64, 05, 0B]
+03A6; [5D 64, 05, 8F]
+D835 DEBD; [5D 64, 05, 95]
+D835 DEF7; [5D 64, 05, 95]
+D835 DF31; [5D 64, 05, 95]
+D835 DF6B; [5D 64, 05, 95]
+D835 DFA5; [5D 64, 05, 95]
+1D60; [5D 64, 05, 27]
+1D69; [5D 64, 05, 29]
+
+03C7; [5D 66, 05, 05]
+D835 DED8; [5D 66, 05, 0B]
+D835 DF12; [5D 66, 05, 0B]
+D835 DF4C; [5D 66, 05, 0B]
+D835 DF86; [5D 66, 05, 0B]
+D835 DFC0; [5D 66, 05, 0B]
+03A7; [5D 66, 05, 8F]
+D835 DEBE; [5D 66, 05, 95]
+D835 DEF8; [5D 66, 05, 95]
+D835 DF32; [5D 66, 05, 95]
+D835 DF6C; [5D 66, 05, 95]
+D835 DFA6; [5D 66, 05, 95]
+1D61; [5D 66, 05, 27]
+1D6A; [5D 66, 05, 29]
+
+03C8; [5D 68, 05, 05]
+D835 DED9; [5D 68, 05, 0B]
+D835 DF13; [5D 68, 05, 0B]
+D835 DF4D; [5D 68, 05, 0B]
+D835 DF87; [5D 68, 05, 0B]
+D835 DFC1; [5D 68, 05, 0B]
+03A8; [5D 68, 05, 8F]
+D835 DEBF; [5D 68, 05, 95]
+D835 DEF9; [5D 68, 05, 95]
+D835 DF33; [5D 68, 05, 95]
+D835 DF6D; [5D 68, 05, 95]
+D835 DFA7; [5D 68, 05, 95]
+
+1D2A; [5D 6A, 05, 05]
+
+03C9; [5D 6C, 05, 05]
+D835 DEDA; [5D 6C, 05, 0B]
+D835 DF14; [5D 6C, 05, 0B]
+D835 DF4E; [5D 6C, 05, 0B]
+D835 DF88; [5D 6C, 05, 0B]
+D835 DFC2; [5D 6C, 05, 0B]
+03A9; [5D 6C, 05, 8F]
+2126; [5D 6C, 05, 8F]
+D835 DEC0; [5D 6C, 05, 95]
+D835 DEFA; [5D 6C, 05, 95]
+D835 DF34; [5D 6C, 05, 95]
+D835 DF6E; [5D 6C, 05, 95]
+D835 DFA8; [5D 6C, 05, 95]
+1F60; [5D 6C, 05, 05][, 89, 05]
+1F68; [5D 6C, 05, 8F][, 89, 05]
+1F64; [5D 6C, 05, 05][, 89, 05][, 8D, 05]
+1F6C; [5D 6C, 05, 8F][, 89, 05][, 8D, 05]
+1FA4; [5D 6C, 05, 05][, 89, 05][, 8D, 05][, D1 E1, 05]
+1FAC; [5D 6C, 05, 8F][, 89, 05][, 8D, 05][, D1 E1, 05]
+1F62; [5D 6C, 05, 05][, 89, 05][, 8F, 05]
+1F6A; [5D 6C, 05, 8F][, 89, 05][, 8F, 05]
+1FA2; [5D 6C, 05, 05][, 89, 05][, 8F, 05][, D1 E1, 05]
+1FAA; [5D 6C, 05, 8F][, 89, 05][, 8F, 05][, D1 E1, 05]
+1F66; [5D 6C, 05, 05][, 89, 05][, 9B, 05]
+1F6E; [5D 6C, 05, 8F][, 89, 05][, 9B, 05]
+1FA6; [5D 6C, 05, 05][, 89, 05][, 9B, 05][, D1 E1, 05]
+1FAE; [5D 6C, 05, 8F][, 89, 05][, 9B, 05][, D1 E1, 05]
+1FA0; [5D 6C, 05, 05][, 89, 05][, D1 E1, 05]
+1FA8; [5D 6C, 05, 8F][, 89, 05][, D1 E1, 05]
+1F61; [5D 6C, 05, 05][, 8B, 05]
+1F69; [5D 6C, 05, 8F][, 8B, 05]
+1F65; [5D 6C, 05, 05][, 8B, 05][, 8D, 05]
+1F6D; [5D 6C, 05, 8F][, 8B, 05][, 8D, 05]
+1FA5; [5D 6C, 05, 05][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1FAD; [5D 6C, 05, 8F][, 8B, 05][, 8D, 05][, D1 E1, 05]
+1F63; [5D 6C, 05, 05][, 8B, 05][, 8F, 05]
+1F6B; [5D 6C, 05, 8F][, 8B, 05][, 8F, 05]
+1FA3; [5D 6C, 05, 05][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1FAB; [5D 6C, 05, 8F][, 8B, 05][, 8F, 05][, D1 E1, 05]
+1F67; [5D 6C, 05, 05][, 8B, 05][, 9B, 05]
+1F6F; [5D 6C, 05, 8F][, 8B, 05][, 9B, 05]
+1FA7; [5D 6C, 05, 05][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1FAF; [5D 6C, 05, 8F][, 8B, 05][, 9B, 05][, D1 E1, 05]
+1FA1; [5D 6C, 05, 05][, 8B, 05][, D1 E1, 05]
+1FA9; [5D 6C, 05, 8F][, 8B, 05][, D1 E1, 05]
+03CE; [5D 6C, 05, 05][, 8D, 05]
+1F7D; [5D 6C, 05, 05][, 8D, 05]
+038F; [5D 6C, 05, 8F][, 8D, 05]
+1FFB; [5D 6C, 05, 8F][, 8D, 05]
+1FF4; [5D 6C, 05, 05][, 8D, 05][, D1 E1, 05]
+1F7C; [5D 6C, 05, 05][, 8F, 05]
+1FFA; [5D 6C, 05, 8F][, 8F, 05]
+1FF2; [5D 6C, 05, 05][, 8F, 05][, D1 E1, 05]
+1FF6; [5D 6C, 05, 05][, 9B, 05]
+1FF7; [5D 6C, 05, 05][, 9B, 05][, D1 E1, 05]
+1FF3; [5D 6C, 05, 05][, D1 E1, 05]
+1FFC; [5D 6C, 05, 8F][, D1 E1, 05]
+
+03E1; [5D 6E, 05, 05]
+03E0; [5D 6E, 05, 8F]
+
+03F8; [5D 70, 05, 05]
+03F7; [5D 70, 05, 8F]
+
+2C81; [5E 20, 05, 05]
+2C80; [5E 20, 05, 8F]
+
+2C83; [5E 22, 05, 05]
+2C82; [5E 22, 05, 8F]
+
+2C85; [5E 24, 05, 05]
+2C84; [5E 24, 05, 8F]
+
+2C87; [5E 26, 05, 05]
+2C86; [5E 26, 05, 8F]
+
+2C89; [5E 28, 05, 05]
+2C88; [5E 28, 05, 8F]
+
+2CB7; [5E 2A, 05, 05]
+2CB6; [5E 2A, 05, 8F]
+
+2C8B; [5E 2C, 05, 05]
+2C8A; [5E 2C, 05, 8F]
+
+2C8D; [5E 2E, 05, 05]
+2C8C; [5E 2E, 05, 8F]
+
+2C8F; [5E 30, 05, 05]
+2C8E; [5E 30, 05, 8F]
+
+2C91; [5E 32, 05, 05]
+2C90; [5E 32, 05, 8F]
+
+2C93; [5E 34, 05, 05]
+2C92; [5E 34, 05, 8F]
+
+2C95; [5E 36, 05, 05]
+2C94; [5E 36, 05, 8F]
+2CE4; [5E 36, 05, 09][5E 20, 05, 09][5E 34, 05, 3D]
+
+2CB9; [5E 38, 05, 05]
+2CB8; [5E 38, 05, 8F]
+
+2C97; [5E 3A, 05, 05]
+2C96; [5E 3A, 05, 8F]
-043E; [5E 92, 05, 05]
-041E; [5E 92, 05, 8F]
+2C99; [5E 3C, 05, 05]
+2C98; [5E 3C, 05, 8F]
-043E 0308; [5E 94, 05, 05]
-04E7; [5E 94, 05, 05]
-041E 0308; [5E 94, 05, 8F]
-04E6; [5E 94, 05, 8F]
+2C9B; [5E 3E, 05, 05]
+2C9A; [5E 3E, 05, 8F]
-04E9; [5E 96, 05, 05]
-04E8; [5E 96, 05, 8F]
+2CBB; [5E 40, 05, 05]
+2CBA; [5E 40, 05, 8F]
-04E9 0308; [5E 98, 05, 05]
-04EB; [5E 98, 05, 05]
-04E8 0308; [5E 98, 05, 8F]
-04EA; [5E 98, 05, 8F]
+2CBD; [5E 42, 05, 05]
+2CBC; [5E 42, 05, 8F]
-043F; [5E 9A, 05, 05]
-041F; [5E 9A, 05, 8F]
+2C9D; [5E 44, 05, 05]
+2C9C; [5E 44, 05, 8F]
-04A7; [5E 9C, 05, 05]
-04A6; [5E 9C, 05, 8F]
+2C9F; [5E 46, 05, 05]
+2C9E; [5E 46, 05, 8F]
-0481; [5E 9E, 05, 05]
-0480; [5E 9E, 05, 8F]
+2CA1; [5E 48, 05, 05]
+2CA0; [5E 48, 05, 8F]
-0440; [5E A0, 05, 05]
-0420; [5E A0, 05, 8F]
+2CA3; [5E 4A, 05, 05]
+2CA2; [5E 4A, 05, 8F]
-048F; [5E A2, 05, 05]
-048E; [5E A2, 05, 8F]
+2CA5; [5E 4C, 05, 05]
+2CA4; [5E 4C, 05, 8F]
-0441; [5E A4, 05, 05]
-0421; [5E A4, 05, 8F]
+2CA7; [5E 4E, 05, 05]
+2CA6; [5E 4E, 05, 8F]
-050D; [5E A6, 05, 05]
-050C; [5E A6, 05, 8F]
+2CA9; [5E 50, 05, 05]
+2CA8; [5E 50, 05, 8F]
-04AB; [5E A8, 05, 05]
-04AA; [5E A8, 05, 8F]
+2CAB; [5E 52, 05, 05]
+2CAA; [5E 52, 05, 8F]
-0442; [5E AA, 05, 05]
-0422; [5E AA, 05, 8F]
+2CAD; [5E 54, 05, 05]
+2CAC; [5E 54, 05, 8F]
-050F; [5E AC, 05, 05]
-050E; [5E AC, 05, 8F]
+2CAF; [5E 56, 05, 05]
+2CAE; [5E 56, 05, 8F]
-04AD; [5E AE, 05, 05]
-04AC; [5E AE, 05, 8F]
+2CB1; [5E 58, 05, 05]
+2CB0; [5E 58, 05, 8F]
-045B; [5E B0, 05, 05]
-040B; [5E B0, 05, 8F]
+2CBF; [5E 5A, 05, 05]
+2CBE; [5E 5A, 05, 8F]
-043A 0301; [5E B2, 05, 05]
-043A 0341; [5E B2, 05, 05]
-045C; [5E B2, 05, 05]
-040C; [5E B2, 05, 8F]
-041A 0301; [5E B2, 05, 8F]
-041A 0341; [5E B2, 05, 8F]
+2CC1; [5E 5C, 05, 05]
+2CC0; [5E 5C, 05, 8F]
-0443; [5E B4, 05, 05]
-0423; [5E B4, 05, 8F]
-04EF; [5E B4, 05, 05][, AB, 05]
-04EE; [5E B4, 05, 8F][, AB, 05]
+03E3; [5E 5E, 05, 05]
+03E2; [5E 5E, 05, 8F]
-0443 0306; [5E B6, 05, 05]
-045E; [5E B6, 05, 05]
-040E; [5E B6, 05, 8F]
-0423 0306; [5E B6, 05, 8F]
+2CC3; [5E 60, 05, 05]
+2CC2; [5E 60, 05, 8F]
-0443 0308; [5E B8, 05, 05]
-04F1; [5E B8, 05, 05]
-0423 0308; [5E B8, 05, 8F]
-04F0; [5E B8, 05, 8F]
+2CC5; [5E 62, 05, 05]
+2CC4; [5E 62, 05, 8F]
-0443 030B; [5E BA, 05, 05]
-04F3; [5E BA, 05, 05]
-0423 030B; [5E BA, 05, 8F]
-04F2; [5E BA, 05, 8F]
+2CC7; [5E 64, 05, 05]
+2CC6; [5E 64, 05, 8F]
-04AF; [5E BC, 05, 05]
-04AE; [5E BC, 05, 8F]
+03E5; [5E 66, 05, 05]
+03E4; [5E 66, 05, 8F]
-04B1; [5E BE, 05, 05]
-04B0; [5E BE, 05, 8F]
+03E7; [5E 68, 05, 05]
+03E6; [5E 68, 05, 8F]
-0479; [5E C0, 05, 05]
-0478; [5E C0, 05, 8F]
+2CC9; [5E 6A, 05, 05]
+2CC8; [5E 6A, 05, 8F]
-0444; [5E C2, 05, 05]
-0424; [5E C2, 05, 8F]
+03E9; [5E 6C, 05, 05]
+03E8; [5E 6C, 05, 8F]
-0445; [5E C4, 05, 05]
-0425; [5E C4, 05, 8F]
+2CCB; [5E 6E, 05, 05]
+2CCA; [5E 6E, 05, 8F]
-04B3; [5E C6, 05, 05]
-04B2; [5E C6, 05, 8F]
+2CCD; [5E 70, 05, 05]
+2CCC; [5E 70, 05, 8F]
-04BB; [5E C8, 05, 05]
-04BA; [5E C8, 05, 8F]
+2CCF; [5E 72, 05, 05]
+2CCE; [5E 72, 05, 8F]
-0461; [5E CA, 05, 05]
-0460; [5E CA, 05, 8F]
+2CD1; [5E 74, 05, 05]
+2CD0; [5E 74, 05, 8F]
-047F; [5E CC, 05, 05]
-047E; [5E CC, 05, 8F]
+2CD3; [5E 76, 05, 05]
+2CD2; [5E 76, 05, 8F]
-047D; [5E CE, 05, 05]
-047C; [5E CE, 05, 8F]
+2CD5; [5E 78, 05, 05]
+2CD4; [5E 78, 05, 8F]
-047B; [5E D0, 05, 05]
-047A; [5E D0, 05, 8F]
+03EB; [5E 7A, 05, 05]
+03EA; [5E 7A, 05, 8F]
-0446; [5E D2, 05, 05]
-0426; [5E D2, 05, 8F]
+2CD7; [5E 7C, 05, 05]
+2CD6; [5E 7C, 05, 8F]
-04B5; [5E D4, 05, 05]
-04B4; [5E D4, 05, 8F]
+03ED; [5E 7E, 05, 05]
+03EC; [5E 7E, 05, 8F]
-0447; [5E D6, 05, 05]
-0427; [5E D6, 05, 8F]
+2CD9; [5E 80, 05, 05]
+2CD8; [5E 80, 05, 8F]
-0447 0308; [5E D8, 05, 05]
-04F5; [5E D8, 05, 05]
-0427 0308; [5E D8, 05, 8F]
-04F4; [5E D8, 05, 8F]
+2CDB; [5E 82, 05, 05]
+2CDA; [5E 82, 05, 8F]
-04B7; [5E DA, 05, 05]
-04B6; [5E DA, 05, 8F]
+2CDD; [5E 84, 05, 05]
+2CDC; [5E 84, 05, 8F]
-04CC; [5E DC, 05, 05]
-04CB; [5E DC, 05, 8F]
+03EF; [5E 86, 05, 05]
+03EE; [5E 86, 05, 8F]
-04B9; [5E DE, 05, 05]
-04B8; [5E DE, 05, 8F]
+2CB3; [5E 88, 05, 05]
+2CB2; [5E 88, 05, 8F]
-04BD; [5E E0, 05, 05]
-04BC; [5E E0, 05, 8F]
+2CB5; [5E 8A, 05, 05]
+2CB4; [5E 8A, 05, 8F]
-04BF; [5E E2, 05, 05]
-04BE; [5E E2, 05, 8F]
+2CDF; [5E 8C, 05, 05]
+2CDE; [5E 8C, 05, 8F]
-045F; [5E E4, 05, 05]
-040F; [5E E4, 05, 8F]
+2CE1; [5E 8E, 05, 05]
+2CE0; [5E 8E, 05, 8F]
-0448; [5E E6, 05, 05]
-0428; [5E E6, 05, 8F]
+2CE3; [5E 90, 05, 05]
+2CE2; [5E 90, 05, 8F]
-0449; [5E E8, 05, 05]
-0429; [5E E8, 05, 8F]
+0430; [5F 20, 05, 05]
+0410; [5F 20, 05, 8F]
-044A; [5E EA, 05, 05]
-042A; [5E EA, 05, 8F]
+0430 0306; [5F 22, 05, 05]
+04D1; [5F 22, 05, 05]
+0410 0306; [5F 22, 05, 8F]
+04D0; [5F 22, 05, 8F]
-044B; [5E EC, 05, 05]
-042B; [5E EC, 05, 8F]
+0430 0308; [5F 24, 05, 05]
+04D3; [5F 24, 05, 05]
+0410 0308; [5F 24, 05, 8F]
+04D2; [5F 24, 05, 8F]
-044B 0308; [5E EE, 05, 05]
-04F9; [5E EE, 05, 05]
-042B 0308; [5E EE, 05, 8F]
-04F8; [5E EE, 05, 8F]
+04D9; [5F 26, 05, 05]
+04D8; [5F 26, 05, 8F]
-044C; [5E F0, 05, 05]
-042C; [5E F0, 05, 8F]
+04D9 0308; [5F 28, 05, 05]
+04DB; [5F 28, 05, 05]
+04D8 0308; [5F 28, 05, 8F]
+04DA; [5F 28, 05, 8F]
-048D; [5E F2, 05, 05]
-048C; [5E F2, 05, 8F]
+04D5; [5F 2A, 05, 05]
+04D4; [5F 2A, 05, 8F]
-0463; [5E F4, 05, 05]
-0462; [5E F4, 05, 8F]
+0431; [5F 2C, 05, 05]
+0411; [5F 2C, 05, 8F]
-044D; [5E F6, 05, 05]
-042D; [5E F6, 05, 8F]
+0432; [5F 2E, 05, 05]
+0412; [5F 2E, 05, 8F]
-044D 0308; [5E F8, 05, 05]
-04ED; [5E F8, 05, 05]
-042D 0308; [5E F8, 05, 8F]
-04EC; [5E F8, 05, 8F]
+0433; [5F 30, 05, 05]
+0413; [5F 30, 05, 8F]
+0491; [5F 30, 05, 09][, E4 5D, 09]
+0490; [5F 30, 05, 93][, E4 5D, 09]
-044E; [5E FA, 05, 05]
-042E; [5E FA, 05, 8F]
+0493; [5F 32, 05, 05]
+0492; [5F 32, 05, 8F]
-044F; [5E FC, 05, 05]
-042F; [5E FC, 05, 8F]
+04FB; [5F 34, 05, 05]
+04FA; [5F 34, 05, 8F]
-0465; [5E FE, 05, 05]
-0464; [5E FE, 05, 8F]
+0495; [5F 36, 05, 05]
+0494; [5F 36, 05, 8F]
-0467; [5F 05, 05, 05]
-0466; [5F 05, 05, 8F]
+04F7; [5F 38, 05, 05]
+04F6; [5F 38, 05, 8F]
-046B; [5F 07, 05, 05]
-046A; [5F 07, 05, 8F]
+0434; [5F 3A, 05, 05]
+0414; [5F 3A, 05, 8F]
-0469; [5F 09, 05, 05]
-0468; [5F 09, 05, 8F]
+0501; [5F 3C, 05, 05]
+0500; [5F 3C, 05, 8F]
-046D; [5F 0B, 05, 05]
-046C; [5F 0B, 05, 8F]
+0452; [5F 3E, 05, 05]
+0402; [5F 3E, 05, 8F]
-046F; [5F 0D, 05, 05]
-046E; [5F 0D, 05, 8F]
+0503; [5F 40, 05, 05]
+0502; [5F 40, 05, 8F]
-0471; [5F 0F, 05, 05]
-0470; [5F 0F, 05, 8F]
+0433 0301; [5F 42, 05, 05]
+0433 0341; [5F 42, 05, 05]
+0453; [5F 42, 05, 05]
+0403; [5F 42, 05, 8F]
+0413 0301; [5F 42, 05, 8F]
+0413 0341; [5F 42, 05, 8F]
-0473; [5F 11, 05, 05]
-0472; [5F 11, 05, 8F]
+0499; [5F 44, 05, 05]
+0498; [5F 44, 05, 8F]
-0475; [5F 13, 05, 05]
-0474; [5F 13, 05, 8F]
+0435; [5F 46, 05, 05]
+0415; [5F 46, 05, 8F]
+0450; [5F 46, 05, 05][, 8F, 05]
+0400; [5F 46, 05, 8F][, 8F, 05]
+0451; [5F 46, 05, 05][, 9D, 05]
+0401; [5F 46, 05, 8F][, 9D, 05]
-0475 030F; [5F 15, 05, 05]
-0477; [5F 15, 05, 05]
-0474 030F; [5F 15, 05, 8F]
-0476; [5F 15, 05, 8F]
+0435 0306; [5F 48, 05, 05]
+04D7; [5F 48, 05, 05]
+0415 0306; [5F 48, 05, 8F]
+04D6; [5F 48, 05, 8F]
-04A9; [5F 17, 05, 05]
-04A8; [5F 17, 05, 8F]
+0454; [5F 4A, 05, 05]
+0404; [5F 4A, 05, 8F]
-04C0; [5F 19, 05, 8F]
+0436; [5F 4C, 05, 05]
+0416; [5F 4C, 05, 8F]
+04C2; [5F 4C, 05, 05][, 91, 05]
+04C1; [5F 4C, 05, 8F][, 91, 05]
-2C30; [60 20, 05, 05]
-2C00; [60 20, 05, 8F]
+0436 0308; [5F 4E, 05, 05]
+04DD; [5F 4E, 05, 05]
+0416 0308; [5F 4E, 05, 8F]
+04DC; [5F 4E, 05, 8F]
-2C31; [60 22, 05, 05]
-2C01; [60 22, 05, 8F]
+0497; [5F 50, 05, 05]
+0496; [5F 50, 05, 8F]
-2C32; [60 24, 05, 05]
-2C02; [60 24, 05, 8F]
+0437; [5F 52, 05, 05]
+0417; [5F 52, 05, 8F]
-2C33; [60 26, 05, 05]
-2C03; [60 26, 05, 8F]
+0505; [5F 54, 05, 05]
+0504; [5F 54, 05, 8F]
-2C34; [60 28, 05, 05]
-2C04; [60 28, 05, 8F]
+0511; [5F 56, 05, 05]
+0510; [5F 56, 05, 8F]
-2C35; [60 2A, 05, 05]
-2C05; [60 2A, 05, 8F]
+0437 0308; [5F 58, 05, 05]
+04DF; [5F 58, 05, 05]
+0417 0308; [5F 58, 05, 8F]
+04DE; [5F 58, 05, 8F]
-2C36; [60 2C, 05, 05]
-2C06; [60 2C, 05, 8F]
+0455; [5F 5A, 05, 05]
+0405; [5F 5A, 05, 8F]
-2C37; [60 2E, 05, 05]
-2C07; [60 2E, 05, 8F]
+04E1; [5F 5C, 05, 05]
+04E0; [5F 5C, 05, 8F]
-2C38; [60 30, 05, 05]
-2C08; [60 30, 05, 8F]
+0507; [5F 5E, 05, 05]
+0506; [5F 5E, 05, 8F]
-2C39; [60 32, 05, 05]
-2C09; [60 32, 05, 8F]
+0438; [5F 60, 05, 05]
+0418; [5F 60, 05, 8F]
+045D; [5F 60, 05, 05][, 8F, 05]
+040D; [5F 60, 05, 8F][, 8F, 05]
+04E3; [5F 60, 05, 05][, AB, 05]
+04E2; [5F 60, 05, 8F][, AB, 05]
-2C3A; [60 34, 05, 05]
-2C0A; [60 34, 05, 8F]
+048B; [5F 62, 05, 05]
+048A; [5F 62, 05, 8F]
-2C3B; [60 36, 05, 05]
-2C0B; [60 36, 05, 8F]
+0438 0308; [5F 64, 05, 05]
+04E5; [5F 64, 05, 05]
+0418 0308; [5F 64, 05, 8F]
+04E4; [5F 64, 05, 8F]
-2C3C; [60 38, 05, 05]
-2C0C; [60 38, 05, 8F]
+0456; [5F 66, 05, 05]
+0406; [5F 66, 05, 8F]
-2C3D; [60 3A, 05, 05]
-2C0D; [60 3A, 05, 8F]
+0456 0308; [5F 68, 05, 05]
+0457; [5F 68, 05, 05]
+0406 0308; [5F 68, 05, 8F]
+0407; [5F 68, 05, 8F]
-2C3E; [60 3C, 05, 05]
-2C0E; [60 3C, 05, 8F]
+0438 0306; [5F 6A, 05, 05]
+0439; [5F 6A, 05, 05]
+0418 0306; [5F 6A, 05, 8F]
+0419; [5F 6A, 05, 8F]
-2C3F; [60 3E, 05, 05]
-2C0F; [60 3E, 05, 8F]
+0458; [5F 6C, 05, 05]
+0408; [5F 6C, 05, 8F]
-2C40; [60 40, 05, 05]
-2C10; [60 40, 05, 8F]
+043A; [5F 6E, 05, 05]
+041A; [5F 6E, 05, 8F]
-2C41; [60 42, 05, 05]
-2C11; [60 42, 05, 8F]
+049B; [5F 70, 05, 05]
+049A; [5F 70, 05, 8F]
-2C42; [60 44, 05, 05]
-2C12; [60 44, 05, 8F]
+04C4; [5F 72, 05, 05]
+04C3; [5F 72, 05, 8F]
-2C43; [60 46, 05, 05]
-2C13; [60 46, 05, 8F]
+04A1; [5F 74, 05, 05]
+04A0; [5F 74, 05, 8F]
-2C44; [60 48, 05, 05]
-2C14; [60 48, 05, 8F]
+049F; [5F 76, 05, 05]
+049E; [5F 76, 05, 8F]
-2C45; [60 4A, 05, 05]
-2C15; [60 4A, 05, 8F]
+049D; [5F 78, 05, 05]
+049C; [5F 78, 05, 8F]
-2C46; [60 4C, 05, 05]
-2C16; [60 4C, 05, 8F]
+043B; [5F 7A, 05, 05]
+041B; [5F 7A, 05, 8F]
-2C47; [60 4E, 05, 05]
-2C17; [60 4E, 05, 8F]
+1D2B; [5F 7C, 05, 05]
-2C48; [60 50, 05, 05]
-2C18; [60 50, 05, 8F]
+04C6; [5F 7E, 05, 05]
+04C5; [5F 7E, 05, 8F]
-2C49; [60 52, 05, 05]
-2C19; [60 52, 05, 8F]
+0513; [5F 80, 05, 05]
+0512; [5F 80, 05, 8F]
-2C4A; [60 54, 05, 05]
-2C1A; [60 54, 05, 8F]
+0459; [5F 82, 05, 05]
+0409; [5F 82, 05, 8F]
-2C4B; [60 56, 05, 05]
-2C1B; [60 56, 05, 8F]
+0509; [5F 84, 05, 05]
+0508; [5F 84, 05, 8F]
-2C4C; [60 58, 05, 05]
-2C1C; [60 58, 05, 8F]
+043C; [5F 86, 05, 05]
+041C; [5F 86, 05, 8F]
-2C4D; [60 5A, 05, 05]
-2C1D; [60 5A, 05, 8F]
+04CE; [5F 88, 05, 05]
+04CD; [5F 88, 05, 8F]
-2C4E; [60 5C, 05, 05]
-2C1E; [60 5C, 05, 8F]
+043D; [5F 8A, 05, 05]
+041D; [5F 8A, 05, 8F]
+1D78; [5F 8A, 05, 27]
-2C4F; [60 5E, 05, 05]
-2C1F; [60 5E, 05, 8F]
+04CA; [5F 8C, 05, 05]
+04C9; [5F 8C, 05, 8F]
-2C50; [60 60, 05, 05]
-2C20; [60 60, 05, 8F]
+04A3; [5F 8E, 05, 05]
+04A2; [5F 8E, 05, 8F]
-2C51; [60 62, 05, 05]
-2C21; [60 62, 05, 8F]
+04C8; [5F 90, 05, 05]
+04C7; [5F 90, 05, 8F]
-2C52; [60 64, 05, 05]
-2C22; [60 64, 05, 8F]
+04A5; [5F 92, 05, 05]
+04A4; [5F 92, 05, 8F]
-2C53; [60 66, 05, 05]
-2C23; [60 66, 05, 8F]
+045A; [5F 94, 05, 05]
+040A; [5F 94, 05, 8F]
-2C54; [60 68, 05, 05]
-2C24; [60 68, 05, 8F]
+050B; [5F 96, 05, 05]
+050A; [5F 96, 05, 8F]
-2C55; [60 6A, 05, 05]
-2C25; [60 6A, 05, 8F]
+043E; [5F 98, 05, 05]
+041E; [5F 98, 05, 8F]
-2C56; [60 6C, 05, 05]
-2C26; [60 6C, 05, 8F]
+043E 0308; [5F 9A, 05, 05]
+04E7; [5F 9A, 05, 05]
+041E 0308; [5F 9A, 05, 8F]
+04E6; [5F 9A, 05, 8F]
-2C57; [60 6E, 05, 05]
-2C27; [60 6E, 05, 8F]
+04E9; [5F 9C, 05, 05]
+04E8; [5F 9C, 05, 8F]
-2C58; [60 70, 05, 05]
-2C28; [60 70, 05, 8F]
+04E9 0308; [5F 9E, 05, 05]
+04EB; [5F 9E, 05, 05]
+04E8 0308; [5F 9E, 05, 8F]
+04EA; [5F 9E, 05, 8F]
-2C59; [60 72, 05, 05]
-2C29; [60 72, 05, 8F]
+043F; [5F A0, 05, 05]
+041F; [5F A0, 05, 8F]
-2C5A; [60 74, 05, 05]
-2C2A; [60 74, 05, 8F]
+04A7; [5F A2, 05, 05]
+04A6; [5F A2, 05, 8F]
-2C5B; [60 76, 05, 05]
-2C2B; [60 76, 05, 8F]
+0481; [5F A4, 05, 05]
+0480; [5F A4, 05, 8F]
-2C5C; [60 78, 05, 05]
-2C2C; [60 78, 05, 8F]
+0440; [5F A6, 05, 05]
+0420; [5F A6, 05, 8F]
-2C5D; [60 7A, 05, 05]
-2C2D; [60 7A, 05, 8F]
+048F; [5F A8, 05, 05]
+048E; [5F A8, 05, 8F]
-2C5E; [60 7C, 05, 05]
-2C2E; [60 7C, 05, 8F]
+0441; [5F AA, 05, 05]
+0421; [5F AA, 05, 8F]
-10D0; [61 20, 05, 05]
+050D; [5F AC, 05, 05]
+050C; [5F AC, 05, 8F]
-2D00; [61 22, 05, 05]
-10A0; [61 22, 05, 8F]
+04AB; [5F AE, 05, 05]
+04AA; [5F AE, 05, 8F]
-10D1; [61 24, 05, 05]
+0442; [5F B0, 05, 05]
+0422; [5F B0, 05, 8F]
-2D01; [61 26, 05, 05]
-10A1; [61 26, 05, 8F]
+050F; [5F B2, 05, 05]
+050E; [5F B2, 05, 8F]
-10D2; [61 28, 05, 05]
+04AD; [5F B4, 05, 05]
+04AC; [5F B4, 05, 8F]
-2D02; [61 2A, 05, 05]
-10A2; [61 2A, 05, 8F]
+045B; [5F B6, 05, 05]
+040B; [5F B6, 05, 8F]
-10D3; [61 2C, 05, 05]
+043A 0301; [5F B8, 05, 05]
+043A 0341; [5F B8, 05, 05]
+045C; [5F B8, 05, 05]
+040C; [5F B8, 05, 8F]
+041A 0301; [5F B8, 05, 8F]
+041A 0341; [5F B8, 05, 8F]
-2D03; [61 2E, 05, 05]
-10A3; [61 2E, 05, 8F]
+0443; [5F BA, 05, 05]
+0423; [5F BA, 05, 8F]
+04EF; [5F BA, 05, 05][, AB, 05]
+04EE; [5F BA, 05, 8F][, AB, 05]
-10D4; [61 30, 05, 05]
+0443 0306; [5F BC, 05, 05]
+045E; [5F BC, 05, 05]
+040E; [5F BC, 05, 8F]
+0423 0306; [5F BC, 05, 8F]
-2D04; [61 32, 05, 05]
-10A4; [61 32, 05, 8F]
+0443 0308; [5F BE, 05, 05]
+04F1; [5F BE, 05, 05]
+0423 0308; [5F BE, 05, 8F]
+04F0; [5F BE, 05, 8F]
-10D5; [61 34, 05, 05]
+0443 030B; [5F C0, 05, 05]
+04F3; [5F C0, 05, 05]
+0423 030B; [5F C0, 05, 8F]
+04F2; [5F C0, 05, 8F]
-2D05; [61 36, 05, 05]
-10A5; [61 36, 05, 8F]
+04AF; [5F C2, 05, 05]
+04AE; [5F C2, 05, 8F]
-10D6; [61 38, 05, 05]
+04B1; [5F C4, 05, 05]
+04B0; [5F C4, 05, 8F]
-2D06; [61 3A, 05, 05]
-10A6; [61 3A, 05, 8F]
+0479; [5F C6, 05, 05]
+0478; [5F C6, 05, 8F]
-10F1; [61 3C, 05, 05]
+0444; [5F C8, 05, 05]
+0424; [5F C8, 05, 8F]
-2D21; [61 3E, 05, 05]
-10C1; [61 3E, 05, 8F]
+0445; [5F CA, 05, 05]
+0425; [5F CA, 05, 8F]
-10D7; [61 40, 05, 05]
+04FD; [5F CC, 05, 05]
+04FC; [5F CC, 05, 8F]
-2D07; [61 42, 05, 05]
-10A7; [61 42, 05, 8F]
+04FF; [5F CE, 05, 05]
+04FE; [5F CE, 05, 8F]
-10D8; [61 44, 05, 05]
+04B3; [5F D0, 05, 05]
+04B2; [5F D0, 05, 8F]
-2D08; [61 46, 05, 05]
-10A8; [61 46, 05, 8F]
+04BB; [5F D2, 05, 05]
+04BA; [5F D2, 05, 8F]
-10D9; [61 48, 05, 05]
+0461; [5F D4, 05, 05]
+0460; [5F D4, 05, 8F]
-2D09; [61 4A, 05, 05]
-10A9; [61 4A, 05, 8F]
+047F; [5F D6, 05, 05]
+047E; [5F D6, 05, 8F]
-10DA; [61 4C, 05, 05]
+047D; [5F D8, 05, 05]
+047C; [5F D8, 05, 8F]
-2D0A; [61 4E, 05, 05]
-10AA; [61 4E, 05, 8F]
+047B; [5F DA, 05, 05]
+047A; [5F DA, 05, 8F]
-10DB; [61 50, 05, 05]
+0446; [5F DC, 05, 05]
+0426; [5F DC, 05, 8F]
-2D0B; [61 52, 05, 05]
-10AB; [61 52, 05, 8F]
+04B5; [5F DE, 05, 05]
+04B4; [5F DE, 05, 8F]
-10DC; [61 54, 05, 05]
-10FC; [61 54, 05, 27]
+0447; [5F E0, 05, 05]
+0427; [5F E0, 05, 8F]
-2D0C; [61 56, 05, 05]
-10AC; [61 56, 05, 8F]
+0447 0308; [5F E2, 05, 05]
+04F5; [5F E2, 05, 05]
+0427 0308; [5F E2, 05, 8F]
+04F4; [5F E2, 05, 8F]
-10F2; [61 58, 05, 05]
+04B7; [5F E4, 05, 05]
+04B6; [5F E4, 05, 8F]
-2D22; [61 5A, 05, 05]
-10C2; [61 5A, 05, 8F]
+04CC; [5F E6, 05, 05]
+04CB; [5F E6, 05, 8F]
-10DD; [61 5C, 05, 05]
+04B9; [5F E8, 05, 05]
+04B8; [5F E8, 05, 8F]
-2D0D; [61 5E, 05, 05]
-10AD; [61 5E, 05, 8F]
+04BD; [5F EA, 05, 05]
+04BC; [5F EA, 05, 8F]
-10DE; [61 60, 05, 05]
+04BF; [5F EC, 05, 05]
+04BE; [5F EC, 05, 8F]
-2D0E; [61 62, 05, 05]
-10AE; [61 62, 05, 8F]
+045F; [5F EE, 05, 05]
+040F; [5F EE, 05, 8F]
-10DF; [61 64, 05, 05]
+0448; [5F F0, 05, 05]
+0428; [5F F0, 05, 8F]
-2D0F; [61 66, 05, 05]
-10AF; [61 66, 05, 8F]
+0449; [5F F2, 05, 05]
+0429; [5F F2, 05, 8F]
-10E0; [61 68, 05, 05]
+044A; [5F F4, 05, 05]
+042A; [5F F4, 05, 8F]
-2D10; [61 6A, 05, 05]
-10B0; [61 6A, 05, 8F]
+044B; [5F F6, 05, 05]
+042B; [5F F6, 05, 8F]
-10E1; [61 6C, 05, 05]
+044B 0308; [5F F8, 05, 05]
+04F9; [5F F8, 05, 05]
+042B 0308; [5F F8, 05, 8F]
+04F8; [5F F8, 05, 8F]
-2D11; [61 6E, 05, 05]
-10B1; [61 6E, 05, 8F]
+044C; [5F FA, 05, 05]
+042C; [5F FA, 05, 8F]
-10E2; [61 70, 05, 05]
+048D; [5F FC, 05, 05]
+048C; [5F FC, 05, 8F]
-2D12; [61 72, 05, 05]
-10B2; [61 72, 05, 8F]
+0463; [5F FE, 05, 05]
+0462; [5F FE, 05, 8F]
-10F3; [61 74, 05, 05]
+044D; [60 05, 05, 05]
+042D; [60 05, 05, 8F]
-2D23; [61 76, 05, 05]
-10C3; [61 76, 05, 8F]
+044D 0308; [60 07, 05, 05]
+04ED; [60 07, 05, 05]
+042D 0308; [60 07, 05, 8F]
+04EC; [60 07, 05, 8F]
-10E3; [61 78, 05, 05]
+044E; [60 09, 05, 05]
+042E; [60 09, 05, 8F]
-2D13; [61 7A, 05, 05]
-10B3; [61 7A, 05, 8F]
+044F; [60 0B, 05, 05]
+042F; [60 0B, 05, 8F]
-10E4; [61 7C, 05, 05]
+0465; [60 0D, 05, 05]
+0464; [60 0D, 05, 8F]
-2D14; [61 7E, 05, 05]
-10B4; [61 7E, 05, 8F]
+0467; [60 0F, 05, 05]
+0466; [60 0F, 05, 8F]
-10E5; [61 80, 05, 05]
+046B; [60 11, 05, 05]
+046A; [60 11, 05, 8F]
-2D15; [61 82, 05, 05]
-10B5; [61 82, 05, 8F]
+0469; [60 13, 05, 05]
+0468; [60 13, 05, 8F]
-10E6; [61 84, 05, 05]
+046D; [60 15, 05, 05]
+046C; [60 15, 05, 8F]
-2D16; [61 86, 05, 05]
-10B6; [61 86, 05, 8F]
+046F; [60 17, 05, 05]
+046E; [60 17, 05, 8F]
-10E7; [61 88, 05, 05]
+0471; [60 19, 05, 05]
+0470; [60 19, 05, 8F]
-2D17; [61 8A, 05, 05]
-10B7; [61 8A, 05, 8F]
+0473; [60 1B, 05, 05]
+0472; [60 1B, 05, 8F]
-10E8; [61 8C, 05, 05]
+0475; [60 1D, 05, 05]
+0474; [60 1D, 05, 8F]
-2D18; [61 8E, 05, 05]
-10B8; [61 8E, 05, 8F]
+0475 030F; [60 1F, 05, 05]
+0477; [60 1F, 05, 05]
+0474 030F; [60 1F, 05, 8F]
+0476; [60 1F, 05, 8F]
-10E9; [61 90, 05, 05]
+04A9; [60 21, 05, 05]
+04A8; [60 21, 05, 8F]
-2D19; [61 92, 05, 05]
-10B9; [61 92, 05, 8F]
+04CF; [60 23, 05, 05]
+04C0; [60 23, 05, 8F]
-10EA; [61 94, 05, 05]
+2C30; [61 20, 05, 05]
+2C00; [61 20, 05, 8F]
-2D1A; [61 96, 05, 05]
-10BA; [61 96, 05, 8F]
+2C31; [61 22, 05, 05]
+2C01; [61 22, 05, 8F]
-10EB; [61 98, 05, 05]
+2C32; [61 24, 05, 05]
+2C02; [61 24, 05, 8F]
-2D1B; [61 9A, 05, 05]
-10BB; [61 9A, 05, 8F]
+2C33; [61 26, 05, 05]
+2C03; [61 26, 05, 8F]
-10EC; [61 9C, 05, 05]
+2C34; [61 28, 05, 05]
+2C04; [61 28, 05, 8F]
-2D1C; [61 9E, 05, 05]
-10BC; [61 9E, 05, 8F]
+2C35; [61 2A, 05, 05]
+2C05; [61 2A, 05, 8F]
-10ED; [61 A0, 05, 05]
+2C36; [61 2C, 05, 05]
+2C06; [61 2C, 05, 8F]
-2D1D; [61 A2, 05, 05]
-10BD; [61 A2, 05, 8F]
+2C37; [61 2E, 05, 05]
+2C07; [61 2E, 05, 8F]
-10EE; [61 A4, 05, 05]
+2C38; [61 30, 05, 05]
+2C08; [61 30, 05, 8F]
-2D1E; [61 A6, 05, 05]
-10BE; [61 A6, 05, 8F]
+2C39; [61 32, 05, 05]
+2C09; [61 32, 05, 8F]
-10F4; [61 A8, 05, 05]
+2C3A; [61 34, 05, 05]
+2C0A; [61 34, 05, 8F]
-2D24; [61 AA, 05, 05]
-10C4; [61 AA, 05, 8F]
+2C3B; [61 36, 05, 05]
+2C0B; [61 36, 05, 8F]
-10EF; [61 AC, 05, 05]
+2C3C; [61 38, 05, 05]
+2C0C; [61 38, 05, 8F]
-2D1F; [61 AE, 05, 05]
-10BF; [61 AE, 05, 8F]
+2C3D; [61 3A, 05, 05]
+2C0D; [61 3A, 05, 8F]
-10F0; [61 B0, 05, 05]
+2C3E; [61 3C, 05, 05]
+2C0E; [61 3C, 05, 8F]
-2D20; [61 B2, 05, 05]
-10C0; [61 B2, 05, 8F]
+2C3F; [61 3E, 05, 05]
+2C0F; [61 3E, 05, 8F]
-10F5; [61 B4, 05, 05]
+2C40; [61 40, 05, 05]
+2C10; [61 40, 05, 8F]
-2D25; [61 B6, 05, 05]
-10C5; [61 B6, 05, 8F]
+2C41; [61 42, 05, 05]
+2C11; [61 42, 05, 8F]
-10F6; [61 B8, 05, 05]
+2C42; [61 44, 05, 05]
+2C12; [61 44, 05, 8F]
-10F7; [61 BA, 05, 05]
+2C43; [61 46, 05, 05]
+2C13; [61 46, 05, 8F]
-10F8; [61 BC, 05, 05]
+2C44; [61 48, 05, 05]
+2C14; [61 48, 05, 8F]
-10F9; [61 BE, 05, 05]
+2C45; [61 4A, 05, 05]
+2C15; [61 4A, 05, 8F]
-10FA; [61 C0, 05, 05]
+2C46; [61 4C, 05, 05]
+2C16; [61 4C, 05, 8F]
-0561; [62 20, 05, 05]
-0531; [62 20, 05, 8F]
+2C47; [61 4E, 05, 05]
+2C17; [61 4E, 05, 8F]
-0562; [62 22, 05, 05]
-0532; [62 22, 05, 8F]
+2C48; [61 50, 05, 05]
+2C18; [61 50, 05, 8F]
-0563; [62 24, 05, 05]
-0533; [62 24, 05, 8F]
+2C49; [61 52, 05, 05]
+2C19; [61 52, 05, 8F]
-0564; [62 26, 05, 05]
-0534; [62 26, 05, 8F]
+2C4A; [61 54, 05, 05]
+2C1A; [61 54, 05, 8F]
-0565; [62 28, 05, 05]
-0535; [62 28, 05, 8F]
-0587; [62 28, 05, 09][62 62, 05, 09]
+2C4B; [61 56, 05, 05]
+2C1B; [61 56, 05, 8F]
-0566; [62 2A, 05, 05]
-0536; [62 2A, 05, 8F]
+2C4C; [61 58, 05, 05]
+2C1C; [61 58, 05, 8F]
-0567; [62 2C, 05, 05]
-0537; [62 2C, 05, 8F]
+2C4D; [61 5A, 05, 05]
+2C1D; [61 5A, 05, 8F]
-0568; [62 2E, 05, 05]
-0538; [62 2E, 05, 8F]
+2C4E; [61 5C, 05, 05]
+2C1E; [61 5C, 05, 8F]
-0569; [62 30, 05, 05]
-0539; [62 30, 05, 8F]
+2C4F; [61 5E, 05, 05]
+2C1F; [61 5E, 05, 8F]
-056A; [62 32, 05, 05]
-053A; [62 32, 05, 8F]
+2C50; [61 60, 05, 05]
+2C20; [61 60, 05, 8F]
-056B; [62 34, 05, 05]
-053B; [62 34, 05, 8F]
+2C51; [61 62, 05, 05]
+2C21; [61 62, 05, 8F]
-056C; [62 36, 05, 05]
-053C; [62 36, 05, 8F]
+2C52; [61 64, 05, 05]
+2C22; [61 64, 05, 8F]
-056D; [62 38, 05, 05]
-053D; [62 38, 05, 8F]
+2C53; [61 66, 05, 05]
+2C23; [61 66, 05, 8F]
-056E; [62 3A, 05, 05]
-053E; [62 3A, 05, 8F]
+2C54; [61 68, 05, 05]
+2C24; [61 68, 05, 8F]
-056F; [62 3C, 05, 05]
-053F; [62 3C, 05, 8F]
+2C55; [61 6A, 05, 05]
+2C25; [61 6A, 05, 8F]
-0570; [62 3E, 05, 05]
-0540; [62 3E, 05, 8F]
+2C56; [61 6C, 05, 05]
+2C26; [61 6C, 05, 8F]
-0571; [62 40, 05, 05]
-0541; [62 40, 05, 8F]
+2C57; [61 6E, 05, 05]
+2C27; [61 6E, 05, 8F]
-0572; [62 42, 05, 05]
-0542; [62 42, 05, 8F]
+2C58; [61 70, 05, 05]
+2C28; [61 70, 05, 8F]
-0573; [62 44, 05, 05]
-0543; [62 44, 05, 8F]
+2C59; [61 72, 05, 05]
+2C29; [61 72, 05, 8F]
-0574; [62 46, 05, 05]
-0544; [62 46, 05, 8F]
-FB14; [62 46, 05, 09][62 28, 05, 09]
-FB15; [62 46, 05, 09][62 34, 05, 09]
-FB17; [62 46, 05, 09][62 38, 05, 09]
-FB13; [62 46, 05, 09][62 4A, 05, 09]
+2C5A; [61 74, 05, 05]
+2C2A; [61 74, 05, 8F]
-0575; [62 48, 05, 05]
-0545; [62 48, 05, 8F]
+2C5B; [61 76, 05, 05]
+2C2B; [61 76, 05, 8F]
-0576; [62 4A, 05, 05]
-0546; [62 4A, 05, 8F]
+2C5C; [61 78, 05, 05]
+2C2C; [61 78, 05, 8F]
-0577; [62 4C, 05, 05]
-0547; [62 4C, 05, 8F]
+2C5D; [61 7A, 05, 05]
+2C2D; [61 7A, 05, 8F]
-0578; [62 4E, 05, 05]
-0548; [62 4E, 05, 8F]
+2C5E; [61 7C, 05, 05]
+2C2E; [61 7C, 05, 8F]
-0579; [62 50, 05, 05]
-0549; [62 50, 05, 8F]
+10D0; [62 20, 05, 05]
-057A; [62 52, 05, 05]
-054A; [62 52, 05, 8F]
+2D00; [62 22, 05, 05]
+10A0; [62 22, 05, 8F]
-057B; [62 54, 05, 05]
-054B; [62 54, 05, 8F]
+10D1; [62 24, 05, 05]
-057C; [62 56, 05, 05]
-054C; [62 56, 05, 8F]
+2D01; [62 26, 05, 05]
+10A1; [62 26, 05, 8F]
-057D; [62 58, 05, 05]
-054D; [62 58, 05, 8F]
+10D2; [62 28, 05, 05]
-057E; [62 5A, 05, 05]
-054E; [62 5A, 05, 8F]
-FB16; [62 5A, 05, 09][62 4A, 05, 09]
+2D02; [62 2A, 05, 05]
+10A2; [62 2A, 05, 8F]
-057F; [62 5C, 05, 05]
-054F; [62 5C, 05, 8F]
+10D3; [62 2C, 05, 05]
-0580; [62 5E, 05, 05]
-0550; [62 5E, 05, 8F]
+2D03; [62 2E, 05, 05]
+10A3; [62 2E, 05, 8F]
-0581; [62 60, 05, 05]
-0551; [62 60, 05, 8F]
+10D4; [62 30, 05, 05]
-0582; [62 62, 05, 05]
-0552; [62 62, 05, 8F]
+2D04; [62 32, 05, 05]
+10A4; [62 32, 05, 8F]
-0583; [62 64, 05, 05]
-0553; [62 64, 05, 8F]
+10D5; [62 34, 05, 05]
-0584; [62 66, 05, 05]
-0554; [62 66, 05, 8F]
+2D05; [62 36, 05, 05]
+10A5; [62 36, 05, 8F]
-0585; [62 68, 05, 05]
-0555; [62 68, 05, 8F]
+10D6; [62 38, 05, 05]
-0586; [62 6A, 05, 05]
-0556; [62 6A, 05, 8F]
+2D06; [62 3A, 05, 05]
+10A6; [62 3A, 05, 8F]
-0559; [62 6C, 05, 05]
+10F1; [62 3C, 05, 05]
-05D0; [63 20, 05, 05]
-2135; [63 20, 05, 09]
-FB21; [63 20, 05, 0B]
-FB2E; [63 20, 05, 05][, D4 AD, 05]
-FB2F; [63 20, 05, 05][, D4 BD, 05]
-FB30; [63 20, 05, 05][, D5 21, 05]
-FB4F; [63 20, 05, 09][63 36, 05, 09]
+2D21; [62 3E, 05, 05]
+10C1; [62 3E, 05, 8F]
-05D1; [63 22, 05, 05]
-2136; [63 22, 05, 09]
-FB31; [63 22, 05, 05][, D5 21, 05]
-FB4C; [63 22, 05, 05][, D5 31, 05]
+10D7; [62 40, 05, 05]
-05D2; [63 24, 05, 05]
-2137; [63 24, 05, 09]
-FB32; [63 24, 05, 05][, D5 21, 05]
+2D07; [62 42, 05, 05]
+10A7; [62 42, 05, 8F]
-05D3; [63 26, 05, 05]
-2138; [63 26, 05, 09]
-FB22; [63 26, 05, 0B]
-FB33; [63 26, 05, 05][, D5 21, 05]
+10D8; [62 44, 05, 05]
-05D4; [63 28, 05, 05]
-FB23; [63 28, 05, 0B]
-FB34; [63 28, 05, 05][, D5 21, 05]
+2D08; [62 46, 05, 05]
+10A8; [62 46, 05, 8F]
-05D5; [63 2A, 05, 05]
-FB4B; [63 2A, 05, 05][, D4 DD, 05]
-FB35; [63 2A, 05, 05][, D5 21, 05]
-05F0; [63 2A, 05, 09][63 2A, 05, 09]
-05F1; [63 2A, 05, 09][63 32, 05, 09]
+10D9; [62 48, 05, 05]
-05D6; [63 2C, 05, 05]
-FB36; [63 2C, 05, 05][, D5 21, 05]
+2D09; [62 4A, 05, 05]
+10A9; [62 4A, 05, 8F]
-05D7; [63 2E, 05, 05]
+10DA; [62 4C, 05, 05]
-05D8; [63 30, 05, 05]
-FB38; [63 30, 05, 05][, D5 21, 05]
+2D0A; [62 4E, 05, 05]
+10AA; [62 4E, 05, 8F]
-05D9; [63 32, 05, 05]
-FB1D; [63 32, 05, 05][, D4 7D, 05]
-FB39; [63 32, 05, 05][, D5 21, 05]
-05F2; [63 32, 05, 09][63 32, 05, 09]
-FB1F; [63 32, 05, 09][63 32, 05, 09][, D4 AD, 05]
-
-05DB; [63 34, 05, 05]
-FB24; [63 34, 05, 0B]
-05DA; [63 34, 05, 31]
-FB3B; [63 34, 05, 05][, D5 21, 05]
-FB3A; [63 34, 05, 31][, D5 21, 05]
-FB4D; [63 34, 05, 05][, D5 31, 05]
-
-05DC; [63 36, 05, 05]
-FB25; [63 36, 05, 0B]
-FB3C; [63 36, 05, 05][, D5 21, 05]
-
-05DE; [63 38, 05, 05]
-FB26; [63 38, 05, 0B]
-05DD; [63 38, 05, 31]
-FB3E; [63 38, 05, 05][, D5 21, 05]
-
-05E0; [63 3A, 05, 05]
-05DF; [63 3A, 05, 31]
-FB40; [63 3A, 05, 05][, D5 21, 05]
-
-05E1; [63 3C, 05, 05]
-FB41; [63 3C, 05, 05][, D5 21, 05]
-
-05E2; [63 3E, 05, 05]
-FB20; [63 3E, 05, 0B]
-
-05E4; [63 40, 05, 05]
-05E3; [63 40, 05, 31]
-FB44; [63 40, 05, 05][, D5 21, 05]
-FB43; [63 40, 05, 31][, D5 21, 05]
-FB4E; [63 40, 05, 05][, D5 31, 05]
-
-05E6; [63 42, 05, 05]
-05E5; [63 42, 05, 31]
-FB46; [63 42, 05, 05][, D5 21, 05]
-
-05E7; [63 44, 05, 05]
-FB47; [63 44, 05, 05][, D5 21, 05]
-
-05E8; [63 46, 05, 05]
-FB27; [63 46, 05, 0B]
-FB48; [63 46, 05, 05][, D5 21, 05]
-
-05E9; [63 48, 05, 05]
-FB2B; [63 48, 05, 05][, D4 FD, 05]
-FB2A; [63 48, 05, 05][, D5 11, 05]
-FB49; [63 48, 05, 05][, D5 21, 05]
-FB2D; [63 48, 05, 05][, D5 21, 05][, D4 FD, 05]
-FB2C; [63 48, 05, 05][, D5 21, 05][, D5 11, 05]
-
-05EA; [63 4A, 05, 05]
-FB28; [63 4A, 05, 0B]
-FB4A; [63 4A, 05, 05][, D5 21, 05]
-
-0621; [64 20, 05, 05]
-0674; [64 20, 05, 09]
-FE80; [64 20, 05, 33]
-06FD; [64 20, 05, 09][, E2 85, 09]
-
-0622; [64 22, 05, 05]
-0627 0653; [64 22, 05, 05]
-FE82; [64 22, 05, 31]
-FE81; [64 22, 05, 33]
-
-0623; [64 24, 05, 05]
-0627 0654; [64 24, 05, 05]
-FE84; [64 24, 05, 31]
-FE83; [64 24, 05, 33]
-
-0672; [64 26, 05, 05]
-
-0671; [64 28, 05, 05]
-FB51; [64 28, 05, 31]
-FB50; [64 28, 05, 33]
-
-0624; [64 2A, 05, 05]
-0648 0654; [64 2A, 05, 05]
-FE86; [64 2A, 05, 31]
-FE85; [64 2A, 05, 33]
-
-0625; [64 2C, 05, 05]
-0627 0655; [64 2C, 05, 05]
-FE88; [64 2C, 05, 31]
-FE87; [64 2C, 05, 33]
-
-0673; [64 2E, 05, 05]
-
-0626; [64 30, 05, 05]
-064A 0654; [64 30, 05, 05]
-FE8B; [64 30, 05, 2D]
-FE8C; [64 30, 05, 2F]
-FE8A; [64 30, 05, 31]
-FE89; [64 30, 05, 33]
-FBEB; [64 30, 05, 31][64 32, 05, 31]
-FBEA; [64 30, 05, 33][64 32, 05, 33]
-FC97; [64 30, 05, 2D][64 5C, 05, 2D]
-FC00; [64 30, 05, 33][64 5C, 05, 33]
-FC98; [64 30, 05, 2D][64 68, 05, 2D]
-FC01; [64 30, 05, 33][64 68, 05, 33]
-FC99; [64 30, 05, 2D][64 6A, 05, 2D]
-FC64; [64 30, 05, 31][64 92, 05, 31]
-FC65; [64 30, 05, 31][64 94, 05, 31]
-FC9A; [64 30, 05, 2D][65 29, 05, 2D]
-FCDF; [64 30, 05, 2F][65 29, 05, 2F]
-FC66; [64 30, 05, 31][65 29, 05, 31]
-FC02; [64 30, 05, 33][65 29, 05, 33]
-FC67; [64 30, 05, 31][65 2F, 05, 31]
-FC9B; [64 30, 05, 2D][65 41, 05, 2D]
-FCE0; [64 30, 05, 2F][65 41, 05, 2F]
-FBED; [64 30, 05, 31][65 4B, 05, 31]
-FBEC; [64 30, 05, 33][65 4B, 05, 33]
-FBEF; [64 30, 05, 31][65 4D, 05, 31]
-FBEE; [64 30, 05, 33][65 4D, 05, 33]
-FBF3; [64 30, 05, 31][65 53, 05, 31]
-FBF2; [64 30, 05, 33][65 53, 05, 33]
-FBF1; [64 30, 05, 31][65 55, 05, 31]
-FBF0; [64 30, 05, 33][65 55, 05, 33]
-FBF5; [64 30, 05, 31][65 57, 05, 31]
-FBF4; [64 30, 05, 33][65 57, 05, 33]
-FBFB; [64 30, 05, 2D][65 61, 05, 2D]
-FBFA; [64 30, 05, 31][65 61, 05, 31]
-FC68; [64 30, 05, 31][65 61, 05, 31]
-FBF9; [64 30, 05, 33][65 61, 05, 33]
-FC03; [64 30, 05, 33][65 61, 05, 33]
-FC69; [64 30, 05, 31][65 63, 05, 31]
-FC04; [64 30, 05, 33][65 63, 05, 33]
-FBF8; [64 30, 05, 2D][65 6B, 05, 2D]
-FBF7; [64 30, 05, 31][65 6B, 05, 31]
-FBF6; [64 30, 05, 33][65 6B, 05, 33]
-
-0627; [64 32, 05, 05]
-FE8E; [64 32, 05, 31]
-FE8D; [64 32, 05, 33]
-FD3C; [64 32, 05, 31][, D5 51, 31]
-FD3D; [64 32, 05, 33][, D5 51, 33]
-0675; [64 32, 05, 09][64 20, 05, 09]
-FDF3; [64 32, 05, 33][64 F8, 05, 33][64 36, 05, 3D][64 92, 05, 3D]
-FDF2; [64 32, 05, 33][65 1D, 05, 33][65 1D, 05, 3D][65 41, 05, 3D]
-
-066E; [64 34, 05, 05]
-
-0628; [64 36, 05, 05]
-FE91; [64 36, 05, 2D]
-FE92; [64 36, 05, 2F]
-FE90; [64 36, 05, 31]
-FE8F; [64 36, 05, 33]
-FC9C; [64 36, 05, 2D][64 5C, 05, 2D]
-FC05; [64 36, 05, 33][64 5C, 05, 33]
-FC9D; [64 36, 05, 2D][64 68, 05, 2D]
-FC06; [64 36, 05, 33][64 68, 05, 33]
-FDC2; [64 36, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FC9E; [64 36, 05, 2D][64 6A, 05, 2D]
-FC07; [64 36, 05, 33][64 6A, 05, 33]
-FD9E; [64 36, 05, 31][64 6A, 05, 31][65 63, 05, 3D]
-FC6A; [64 36, 05, 31][64 92, 05, 31]
-FC6B; [64 36, 05, 31][64 94, 05, 31]
-FC9F; [64 36, 05, 2D][65 29, 05, 2D]
-FCE1; [64 36, 05, 2F][65 29, 05, 2F]
-FC6C; [64 36, 05, 31][65 29, 05, 31]
-FC08; [64 36, 05, 33][65 29, 05, 33]
-FC6D; [64 36, 05, 31][65 2F, 05, 31]
-FCA0; [64 36, 05, 2D][65 41, 05, 2D]
-FCE2; [64 36, 05, 2F][65 41, 05, 2F]
-FC6E; [64 36, 05, 31][65 61, 05, 31]
-FC09; [64 36, 05, 33][65 61, 05, 33]
-FC6F; [64 36, 05, 31][65 63, 05, 31]
-FC0A; [64 36, 05, 33][65 63, 05, 33]
-
-067B; [64 38, 05, 05]
-FB54; [64 38, 05, 2D]
-FB55; [64 38, 05, 2F]
-FB53; [64 38, 05, 31]
-FB52; [64 38, 05, 33]
-
-067E; [64 3A, 05, 05]
-FB58; [64 3A, 05, 2D]
-FB59; [64 3A, 05, 2F]
-FB57; [64 3A, 05, 31]
-FB56; [64 3A, 05, 33]
-
-0680; [64 3C, 05, 05]
-FB5C; [64 3C, 05, 2D]
-FB5D; [64 3C, 05, 2F]
-FB5B; [64 3C, 05, 31]
-FB5A; [64 3C, 05, 33]
-
-0750; [64 3E, 05, 05]
-
-0751; [64 40, 05, 05]
-
-0752; [64 42, 05, 05]
-
-0753; [64 44, 05, 05]
-
-0754; [64 46, 05, 05]
-
-0755; [64 48, 05, 05]
-
-0756; [64 4A, 05, 05]
-
-0629; [64 4C, 05, 05]
-FE94; [64 4C, 05, 31]
-FE93; [64 4C, 05, 33]
-
-062A; [64 4E, 05, 05]
-FE97; [64 4E, 05, 2D]
-FE98; [64 4E, 05, 2F]
-FE96; [64 4E, 05, 31]
-FE95; [64 4E, 05, 33]
-FCA1; [64 4E, 05, 2D][64 5C, 05, 2D]
-FC0B; [64 4E, 05, 33][64 5C, 05, 33]
-FD50; [64 4E, 05, 2D][64 5C, 05, 2D][65 29, 05, 3D]
-FDA0; [64 4E, 05, 31][64 5C, 05, 31][65 61, 05, 3D]
-FD9F; [64 4E, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCA2; [64 4E, 05, 2D][64 68, 05, 2D]
-FC0C; [64 4E, 05, 33][64 68, 05, 33]
-FD52; [64 4E, 05, 2D][64 68, 05, 2D][64 5C, 05, 3D]
-FD51; [64 4E, 05, 31][64 68, 05, 31][64 5C, 05, 3D]
-FD53; [64 4E, 05, 2D][64 68, 05, 2D][65 29, 05, 3D]
-FCA3; [64 4E, 05, 2D][64 6A, 05, 2D]
-FC0D; [64 4E, 05, 33][64 6A, 05, 33]
-FD54; [64 4E, 05, 2D][64 6A, 05, 2D][65 29, 05, 3D]
-FDA2; [64 4E, 05, 31][64 6A, 05, 31][65 61, 05, 3D]
-FDA1; [64 4E, 05, 31][64 6A, 05, 31][65 63, 05, 3D]
-FC70; [64 4E, 05, 31][64 92, 05, 31]
-FC71; [64 4E, 05, 31][64 94, 05, 31]
-FCA4; [64 4E, 05, 2D][65 29, 05, 2D]
-FCE3; [64 4E, 05, 2F][65 29, 05, 2F]
-FC72; [64 4E, 05, 31][65 29, 05, 31]
-FC0E; [64 4E, 05, 33][65 29, 05, 33]
-FD55; [64 4E, 05, 2D][65 29, 05, 2D][64 5C, 05, 3D]
-FD56; [64 4E, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD57; [64 4E, 05, 2D][65 29, 05, 2D][64 6A, 05, 3D]
-FDA4; [64 4E, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FDA3; [64 4E, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC73; [64 4E, 05, 31][65 2F, 05, 31]
-FCA5; [64 4E, 05, 2D][65 41, 05, 2D]
-FCE4; [64 4E, 05, 2F][65 41, 05, 2F]
-FC74; [64 4E, 05, 31][65 61, 05, 31]
-FC0F; [64 4E, 05, 33][65 61, 05, 33]
-FC75; [64 4E, 05, 31][65 63, 05, 31]
-FC10; [64 4E, 05, 33][65 63, 05, 33]
-
-062B; [64 50, 05, 05]
-FE9B; [64 50, 05, 2D]
-FE9C; [64 50, 05, 2F]
-FE9A; [64 50, 05, 31]
-FE99; [64 50, 05, 33]
-FC11; [64 50, 05, 33][64 5C, 05, 33]
-FC76; [64 50, 05, 31][64 92, 05, 31]
-FC77; [64 50, 05, 31][64 94, 05, 31]
-FCA6; [64 50, 05, 2D][65 29, 05, 2D]
-FCE5; [64 50, 05, 2F][65 29, 05, 2F]
-FC78; [64 50, 05, 31][65 29, 05, 31]
-FC12; [64 50, 05, 33][65 29, 05, 33]
-FC79; [64 50, 05, 31][65 2F, 05, 31]
-FCE6; [64 50, 05, 2F][65 41, 05, 2F]
-FC7A; [64 50, 05, 31][65 61, 05, 31]
-FC13; [64 50, 05, 33][65 61, 05, 33]
-FC7B; [64 50, 05, 31][65 63, 05, 31]
-FC14; [64 50, 05, 33][65 63, 05, 33]
-
-0679; [64 52, 05, 05]
-FB68; [64 52, 05, 2D]
-FB69; [64 52, 05, 2F]
-FB67; [64 52, 05, 31]
-FB66; [64 52, 05, 33]
-
-067A; [64 54, 05, 05]
-FB60; [64 54, 05, 2D]
-FB61; [64 54, 05, 2F]
-FB5F; [64 54, 05, 31]
-FB5E; [64 54, 05, 33]
-
-067C; [64 56, 05, 05]
-
-067D; [64 58, 05, 05]
-
-067F; [64 5A, 05, 05]
-FB64; [64 5A, 05, 2D]
-FB65; [64 5A, 05, 2F]
-FB63; [64 5A, 05, 31]
-FB62; [64 5A, 05, 33]
-
-062C; [64 5C, 05, 05]
-FE9F; [64 5C, 05, 2D]
-FEA0; [64 5C, 05, 2F]
-FE9E; [64 5C, 05, 31]
-FE9D; [64 5C, 05, 33]
-FCA7; [64 5C, 05, 2D][64 68, 05, 2D]
-FC15; [64 5C, 05, 33][64 68, 05, 33]
-FDA6; [64 5C, 05, 31][64 68, 05, 31][65 61, 05, 3D]
-FDBE; [64 5C, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FDFB; [64 5C, 05, 33][65 1D, 05, 33][06, 05, 3D][64 5C, 05, 3D][65 1D, 05, 3D][64 32, 05, 3D][65 1D, 05, 3D][65 41, 05, 3D]
-FCA8; [64 5C, 05, 2D][65 29, 05, 2D]
-FC16; [64 5C, 05, 33][65 29, 05, 33]
-FD59; [64 5C, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD58; [64 5C, 05, 31][65 29, 05, 31][64 68, 05, 3D]
-FDA7; [64 5C, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FDA5; [64 5C, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FD1D; [64 5C, 05, 31][65 61, 05, 31]
-FD01; [64 5C, 05, 33][65 61, 05, 33]
-FD1E; [64 5C, 05, 31][65 63, 05, 31]
-FD02; [64 5C, 05, 33][65 63, 05, 33]
-
-0683; [64 5E, 05, 05]
-FB78; [64 5E, 05, 2D]
-FB79; [64 5E, 05, 2F]
-FB77; [64 5E, 05, 31]
-FB76; [64 5E, 05, 33]
-
-0684; [64 60, 05, 05]
-FB74; [64 60, 05, 2D]
-FB75; [64 60, 05, 2F]
-FB73; [64 60, 05, 31]
-FB72; [64 60, 05, 33]
-
-0686; [64 62, 05, 05]
-FB7C; [64 62, 05, 2D]
-FB7D; [64 62, 05, 2F]
-FB7B; [64 62, 05, 31]
-FB7A; [64 62, 05, 33]
-
-06BF; [64 64, 05, 05]
-
-0687; [64 66, 05, 05]
-FB80; [64 66, 05, 2D]
-FB81; [64 66, 05, 2F]
-FB7F; [64 66, 05, 31]
-FB7E; [64 66, 05, 33]
-
-062D; [64 68, 05, 05]
-FEA3; [64 68, 05, 2D]
-FEA4; [64 68, 05, 2F]
-FEA2; [64 68, 05, 31]
-FEA1; [64 68, 05, 33]
-FCA9; [64 68, 05, 2D][64 5C, 05, 2D]
-FC17; [64 68, 05, 33][64 5C, 05, 33]
-FDBF; [64 68, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCAA; [64 68, 05, 2D][65 29, 05, 2D]
-FC18; [64 68, 05, 33][65 29, 05, 33]
-FD5B; [64 68, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FD5A; [64 68, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FD1B; [64 68, 05, 31][65 61, 05, 31]
-FCFF; [64 68, 05, 33][65 61, 05, 33]
-FD1C; [64 68, 05, 31][65 63, 05, 31]
-FD00; [64 68, 05, 33][65 63, 05, 33]
-
-062E; [64 6A, 05, 05]
-FEA7; [64 6A, 05, 2D]
-FEA8; [64 6A, 05, 2F]
-FEA6; [64 6A, 05, 31]
-FEA5; [64 6A, 05, 33]
-FCAB; [64 6A, 05, 2D][64 5C, 05, 2D]
-FC19; [64 6A, 05, 33][64 5C, 05, 33]
-FC1A; [64 6A, 05, 33][64 68, 05, 33]
-FCAC; [64 6A, 05, 2D][65 29, 05, 2D]
-FC1B; [64 6A, 05, 33][65 29, 05, 33]
-FD1F; [64 6A, 05, 31][65 61, 05, 31]
-FD03; [64 6A, 05, 33][65 61, 05, 33]
-FD20; [64 6A, 05, 31][65 63, 05, 31]
-FD04; [64 6A, 05, 33][65 63, 05, 33]
-
-0681; [64 6C, 05, 05]
-
-0682; [64 6E, 05, 05]
-
-0685; [64 70, 05, 05]
-
-0757; [64 72, 05, 05]
-
-0758; [64 74, 05, 05]
-
-062F; [64 76, 05, 05]
-FEAA; [64 76, 05, 31]
-FEA9; [64 76, 05, 33]
-
-0630; [64 78, 05, 05]
-FEAC; [64 78, 05, 31]
-FEAB; [64 78, 05, 33]
-FC5B; [64 78, 05, 33][, D6 95, 33]
-
-0688; [64 7A, 05, 05]
-FB89; [64 7A, 05, 31]
-FB88; [64 7A, 05, 33]
-
-0689; [64 7C, 05, 05]
-
-068A; [64 7E, 05, 05]
-
-068B; [64 80, 05, 05]
-
-068C; [64 82, 05, 05]
-FB85; [64 82, 05, 31]
-FB84; [64 82, 05, 33]
-
-068D; [64 84, 05, 05]
-FB83; [64 84, 05, 31]
-FB82; [64 84, 05, 33]
-
-068E; [64 86, 05, 05]
-FB87; [64 86, 05, 31]
-FB86; [64 86, 05, 33]
-
-068F; [64 88, 05, 05]
-
-0690; [64 8A, 05, 05]
-
-06EE; [64 8C, 05, 05]
-
-0759; [64 8E, 05, 05]
-
-075A; [64 90, 05, 05]
-
-0631; [64 92, 05, 05]
-FEAE; [64 92, 05, 31]
-FEAD; [64 92, 05, 33]
-FC5C; [64 92, 05, 33][, D6 95, 33]
-FDF6; [64 92, 05, 33][64 B0, 05, 33][65 4D, 05, 3D][65 1D, 05, 3D]
-FDFC; [64 92, 05, 33][65 65, 05, 33][64 32, 05, 3D][65 1D, 05, 3D]
-
-0632; [64 94, 05, 05]
-FEB0; [64 94, 05, 31]
-FEAF; [64 94, 05, 33]
-
-0691; [64 96, 05, 05]
-FB8D; [64 96, 05, 31]
-FB8C; [64 96, 05, 33]
-
-0692; [64 98, 05, 05]
-
-0693; [64 9A, 05, 05]
-
-0694; [64 9C, 05, 05]
-
-0695; [64 9E, 05, 05]
-
-0696; [64 A0, 05, 05]
-
-0697; [64 A2, 05, 05]
-
-0698; [64 A4, 05, 05]
-FB8B; [64 A4, 05, 31]
-FB8A; [64 A4, 05, 33]
-
-0699; [64 A6, 05, 05]
-
-06EF; [64 A8, 05, 05]
-
-075B; [64 AA, 05, 05]
-
-076B; [64 AC, 05, 05]
-
-076C; [64 AE, 05, 05]
-
-0633; [64 B0, 05, 05]
-FEB3; [64 B0, 05, 2D]
-FEB4; [64 B0, 05, 2F]
-FEB2; [64 B0, 05, 31]
-FEB1; [64 B0, 05, 33]
-FCAD; [64 B0, 05, 2D][64 5C, 05, 2D]
-FD34; [64 B0, 05, 2F][64 5C, 05, 2F]
-FC1C; [64 B0, 05, 33][64 5C, 05, 33]
-FD5D; [64 B0, 05, 2D][64 5C, 05, 2D][64 68, 05, 3D]
-FD5E; [64 B0, 05, 31][64 5C, 05, 31][65 61, 05, 3D]
-FCAE; [64 B0, 05, 2D][64 68, 05, 2D]
-FD35; [64 B0, 05, 2F][64 68, 05, 2F]
-FC1D; [64 B0, 05, 33][64 68, 05, 33]
-FD5C; [64 B0, 05, 2D][64 68, 05, 2D][64 5C, 05, 3D]
-FCAF; [64 B0, 05, 2D][64 6A, 05, 2D]
-FD36; [64 B0, 05, 2F][64 6A, 05, 2F]
-FC1E; [64 B0, 05, 33][64 6A, 05, 33]
-FDA8; [64 B0, 05, 31][64 6A, 05, 31][65 61, 05, 3D]
-FDC6; [64 B0, 05, 31][64 6A, 05, 31][65 63, 05, 3D]
-FD2A; [64 B0, 05, 31][64 92, 05, 31]
-FD0E; [64 B0, 05, 33][64 92, 05, 33]
-FCB0; [64 B0, 05, 2D][65 29, 05, 2D]
-FCE7; [64 B0, 05, 2F][65 29, 05, 2F]
-FC1F; [64 B0, 05, 33][65 29, 05, 33]
-FD61; [64 B0, 05, 2D][65 29, 05, 2D][64 5C, 05, 3D]
-FD60; [64 B0, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD5F; [64 B0, 05, 31][65 29, 05, 31][64 68, 05, 3D]
-FD63; [64 B0, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD62; [64 B0, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FD31; [64 B0, 05, 2D][65 41, 05, 2D]
-FCE8; [64 B0, 05, 2F][65 41, 05, 2F]
-FD17; [64 B0, 05, 31][65 61, 05, 31]
-FCFB; [64 B0, 05, 33][65 61, 05, 33]
-FD18; [64 B0, 05, 31][65 63, 05, 31]
-FCFC; [64 B0, 05, 33][65 63, 05, 33]
-
-0634; [64 B2, 05, 05]
-FEB7; [64 B2, 05, 2D]
-FEB8; [64 B2, 05, 2F]
-FEB6; [64 B2, 05, 31]
-FEB5; [64 B2, 05, 33]
-FD2D; [64 B2, 05, 2D][64 5C, 05, 2D]
-FD37; [64 B2, 05, 2F][64 5C, 05, 2F]
-FD25; [64 B2, 05, 31][64 5C, 05, 31]
-FD09; [64 B2, 05, 33][64 5C, 05, 33]
-FD69; [64 B2, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FD2E; [64 B2, 05, 2D][64 68, 05, 2D]
-FD38; [64 B2, 05, 2F][64 68, 05, 2F]
-FD26; [64 B2, 05, 31][64 68, 05, 31]
-FD0A; [64 B2, 05, 33][64 68, 05, 33]
-FD68; [64 B2, 05, 2D][64 68, 05, 2D][65 29, 05, 3D]
-FD67; [64 B2, 05, 31][64 68, 05, 31][65 29, 05, 3D]
-FDAA; [64 B2, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FD2F; [64 B2, 05, 2D][64 6A, 05, 2D]
-FD39; [64 B2, 05, 2F][64 6A, 05, 2F]
-FD27; [64 B2, 05, 31][64 6A, 05, 31]
-FD0B; [64 B2, 05, 33][64 6A, 05, 33]
-FD29; [64 B2, 05, 31][64 92, 05, 31]
-FD0D; [64 B2, 05, 33][64 92, 05, 33]
-FD30; [64 B2, 05, 2D][65 29, 05, 2D]
-FCE9; [64 B2, 05, 2F][65 29, 05, 2F]
-FD28; [64 B2, 05, 31][65 29, 05, 31]
-FD0C; [64 B2, 05, 33][65 29, 05, 33]
-FD6B; [64 B2, 05, 2D][65 29, 05, 2D][64 6A, 05, 3D]
-FD6A; [64 B2, 05, 31][65 29, 05, 31][64 6A, 05, 3D]
-FD6D; [64 B2, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD6C; [64 B2, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FD32; [64 B2, 05, 2D][65 41, 05, 2D]
-FCEA; [64 B2, 05, 2F][65 41, 05, 2F]
-FD19; [64 B2, 05, 31][65 61, 05, 31]
-FCFD; [64 B2, 05, 33][65 61, 05, 33]
-FD1A; [64 B2, 05, 31][65 63, 05, 31]
-FCFE; [64 B2, 05, 33][65 63, 05, 33]
-
-069A; [64 B4, 05, 05]
-
-069B; [64 B6, 05, 05]
-
-069C; [64 B8, 05, 05]
-
-06FA; [64 BA, 05, 05]
-
-075C; [64 BC, 05, 05]
-
-076D; [64 BE, 05, 05]
-
-0635; [64 C0, 05, 05]
-FEBB; [64 C0, 05, 2D]
-FEBC; [64 C0, 05, 2F]
-FEBA; [64 C0, 05, 31]
-FEB9; [64 C0, 05, 33]
-FCB1; [64 C0, 05, 2D][64 68, 05, 2D]
-FC20; [64 C0, 05, 33][64 68, 05, 33]
-FD65; [64 C0, 05, 2D][64 68, 05, 2D][64 68, 05, 3D]
-FD64; [64 C0, 05, 31][64 68, 05, 31][64 68, 05, 3D]
-FDA9; [64 C0, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCB2; [64 C0, 05, 2D][64 6A, 05, 2D]
-FD2B; [64 C0, 05, 31][64 92, 05, 31]
-FD0F; [64 C0, 05, 33][64 92, 05, 33]
-FDF5; [64 C0, 05, 33][65 1D, 05, 33][64 D0, 05, 3D][65 29, 05, 3D]
-FDF9; [64 C0, 05, 33][65 1D, 05, 33][65 61, 05, 3D]
-FDFA; [64 C0, 05, 33][65 1D, 05, 33][65 61, 05, 3D][06, 05, 3D][64 32, 05, 3D][65 1D, 05, 3D][65 1D, 05, 3D][65 41, 05, 3D][06, 05, 3D][64 D0, 05, 3D][65 1D, 05, 3D][65 63, 05, 3D][65 41, 05, 3D][06, 05, 3D][65 4D, 05, 3D][64 B0, 05, 3D][65 1D, 05, 3D][65 29, 05, 3D]
-FDF0; [64 C0, 05, 33][65 1D, 05, 33][65 6F, 05, 3D]
-FCB3; [64 C0, 05, 2D][65 29, 05, 2D]
-FC21; [64 C0, 05, 33][65 29, 05, 33]
-FDC5; [64 C0, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD66; [64 C0, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FD21; [64 C0, 05, 31][65 61, 05, 31]
-FD05; [64 C0, 05, 33][65 61, 05, 33]
-FD22; [64 C0, 05, 31][65 63, 05, 31]
-FD06; [64 C0, 05, 33][65 63, 05, 33]
-
-0636; [64 C2, 05, 05]
-FEBF; [64 C2, 05, 2D]
-FEC0; [64 C2, 05, 2F]
-FEBE; [64 C2, 05, 31]
-FEBD; [64 C2, 05, 33]
-FCB4; [64 C2, 05, 2D][64 5C, 05, 2D]
-FC22; [64 C2, 05, 33][64 5C, 05, 33]
-FCB5; [64 C2, 05, 2D][64 68, 05, 2D]
-FC23; [64 C2, 05, 33][64 68, 05, 33]
-FD6E; [64 C2, 05, 31][64 68, 05, 31][65 61, 05, 3D]
-FDAB; [64 C2, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCB6; [64 C2, 05, 2D][64 6A, 05, 2D]
-FC24; [64 C2, 05, 33][64 6A, 05, 33]
-FD70; [64 C2, 05, 2D][64 6A, 05, 2D][65 29, 05, 3D]
-FD6F; [64 C2, 05, 31][64 6A, 05, 31][65 29, 05, 3D]
-FD2C; [64 C2, 05, 31][64 92, 05, 31]
-FD10; [64 C2, 05, 33][64 92, 05, 33]
-FCB7; [64 C2, 05, 2D][65 29, 05, 2D]
-FC25; [64 C2, 05, 33][65 29, 05, 33]
-FD23; [64 C2, 05, 31][65 61, 05, 31]
-FD07; [64 C2, 05, 33][65 61, 05, 33]
-FD24; [64 C2, 05, 31][65 63, 05, 31]
-FD08; [64 C2, 05, 33][65 63, 05, 33]
-
-069D; [64 C4, 05, 05]
-
-069E; [64 C6, 05, 05]
-
-06FB; [64 C8, 05, 05]
-
-0637; [64 CA, 05, 05]
-FEC3; [64 CA, 05, 2D]
-FEC4; [64 CA, 05, 2F]
-FEC2; [64 CA, 05, 31]
-FEC1; [64 CA, 05, 33]
-FCB8; [64 CA, 05, 2D][64 68, 05, 2D]
-FC26; [64 CA, 05, 33][64 68, 05, 33]
-FD33; [64 CA, 05, 2D][65 29, 05, 2D]
-FD3A; [64 CA, 05, 2F][65 29, 05, 2F]
-FC27; [64 CA, 05, 33][65 29, 05, 33]
-FD72; [64 CA, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD71; [64 CA, 05, 31][65 29, 05, 31][64 68, 05, 3D]
-FD73; [64 CA, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD74; [64 CA, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FD11; [64 CA, 05, 31][65 61, 05, 31]
-FCF5; [64 CA, 05, 33][65 61, 05, 33]
-FD12; [64 CA, 05, 31][65 63, 05, 31]
-FCF6; [64 CA, 05, 33][65 63, 05, 33]
-
-0638; [64 CC, 05, 05]
-FEC7; [64 CC, 05, 2D]
-FEC8; [64 CC, 05, 2F]
-FEC6; [64 CC, 05, 31]
-FEC5; [64 CC, 05, 33]
-FCB9; [64 CC, 05, 2D][65 29, 05, 2D]
-FD3B; [64 CC, 05, 2F][65 29, 05, 2F]
-FC28; [64 CC, 05, 33][65 29, 05, 33]
-
-069F; [64 CE, 05, 05]
-
-0639; [64 D0, 05, 05]
-FECB; [64 D0, 05, 2D]
-FECC; [64 D0, 05, 2F]
-FECA; [64 D0, 05, 31]
-FEC9; [64 D0, 05, 33]
-FCBA; [64 D0, 05, 2D][64 5C, 05, 2D]
-FC29; [64 D0, 05, 33][64 5C, 05, 33]
-FDC4; [64 D0, 05, 2D][64 5C, 05, 2D][65 29, 05, 3D]
-FD75; [64 D0, 05, 31][64 5C, 05, 31][65 29, 05, 3D]
-FDF7; [64 D0, 05, 33][65 1D, 05, 33][65 63, 05, 3D][65 41, 05, 3D]
-FCBB; [64 D0, 05, 2D][65 29, 05, 2D]
-FC2A; [64 D0, 05, 33][65 29, 05, 33]
-FD77; [64 D0, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD76; [64 D0, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FD78; [64 D0, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FDB6; [64 D0, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FD13; [64 D0, 05, 31][65 61, 05, 31]
-FCF7; [64 D0, 05, 33][65 61, 05, 33]
-FD14; [64 D0, 05, 31][65 63, 05, 31]
-FCF8; [64 D0, 05, 33][65 63, 05, 33]
-
-063A; [64 D2, 05, 05]
-FECF; [64 D2, 05, 2D]
-FED0; [64 D2, 05, 2F]
-FECE; [64 D2, 05, 31]
-FECD; [64 D2, 05, 33]
-FCBC; [64 D2, 05, 2D][64 5C, 05, 2D]
-FC2B; [64 D2, 05, 33][64 5C, 05, 33]
-FCBD; [64 D2, 05, 2D][65 29, 05, 2D]
-FC2C; [64 D2, 05, 33][65 29, 05, 33]
-FD79; [64 D2, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FD7B; [64 D2, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FD7A; [64 D2, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FD15; [64 D2, 05, 31][65 61, 05, 31]
-FCF9; [64 D2, 05, 33][65 61, 05, 33]
-FD16; [64 D2, 05, 31][65 63, 05, 31]
-FCFA; [64 D2, 05, 33][65 63, 05, 33]
-
-06A0; [64 D4, 05, 05]
-
-06FC; [64 D6, 05, 05]
-
-075D; [64 D8, 05, 05]
-
-075E; [64 DA, 05, 05]
-
-075F; [64 DC, 05, 05]
-
-0641; [64 DE, 05, 05]
-FED3; [64 DE, 05, 2D]
-FED4; [64 DE, 05, 2F]
-FED2; [64 DE, 05, 31]
-FED1; [64 DE, 05, 33]
-FCBE; [64 DE, 05, 2D][64 5C, 05, 2D]
-FC2D; [64 DE, 05, 33][64 5C, 05, 33]
-FCBF; [64 DE, 05, 2D][64 68, 05, 2D]
-FC2E; [64 DE, 05, 33][64 68, 05, 33]
-FCC0; [64 DE, 05, 2D][64 6A, 05, 2D]
-FC2F; [64 DE, 05, 33][64 6A, 05, 33]
-FD7D; [64 DE, 05, 2D][64 6A, 05, 2D][65 29, 05, 3D]
-FD7C; [64 DE, 05, 31][64 6A, 05, 31][65 29, 05, 3D]
-FCC1; [64 DE, 05, 2D][65 29, 05, 2D]
-FC30; [64 DE, 05, 33][65 29, 05, 33]
-FDC1; [64 DE, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC7C; [64 DE, 05, 31][65 61, 05, 31]
-FC31; [64 DE, 05, 33][65 61, 05, 33]
-FC7D; [64 DE, 05, 31][65 63, 05, 31]
-FC32; [64 DE, 05, 33][65 63, 05, 33]
-
-06A1; [64 E0, 05, 05]
-
-06A2; [64 E2, 05, 05]
-
-06A3; [64 E4, 05, 05]
-
-06A4; [64 E6, 05, 05]
-FB6C; [64 E6, 05, 2D]
-FB6D; [64 E6, 05, 2F]
-FB6B; [64 E6, 05, 31]
-FB6A; [64 E6, 05, 33]
-
-06A5; [64 E8, 05, 05]
-
-06A6; [64 EA, 05, 05]
-FB70; [64 EA, 05, 2D]
-FB71; [64 EA, 05, 2F]
-FB6F; [64 EA, 05, 31]
-FB6E; [64 EA, 05, 33]
-
-0760; [64 EC, 05, 05]
-
-0761; [64 EE, 05, 05]
-
-066F; [64 F0, 05, 05]
-
-0642; [64 F2, 05, 05]
-FED7; [64 F2, 05, 2D]
-FED8; [64 F2, 05, 2F]
-FED6; [64 F2, 05, 31]
-FED5; [64 F2, 05, 33]
-FCC2; [64 F2, 05, 2D][64 68, 05, 2D]
-FC33; [64 F2, 05, 33][64 68, 05, 33]
-FDF1; [64 F2, 05, 33][65 1D, 05, 33][65 6F, 05, 3D]
-FCC3; [64 F2, 05, 2D][65 29, 05, 2D]
-FC34; [64 F2, 05, 33][65 29, 05, 33]
-FDB4; [64 F2, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD7E; [64 F2, 05, 31][65 29, 05, 31][64 68, 05, 3D]
-FD7F; [64 F2, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FDB2; [64 F2, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC7E; [64 F2, 05, 31][65 61, 05, 31]
-FC35; [64 F2, 05, 33][65 61, 05, 33]
-FC7F; [64 F2, 05, 31][65 63, 05, 31]
-FC36; [64 F2, 05, 33][65 63, 05, 33]
-
-06A7; [64 F4, 05, 05]
-
-06A8; [64 F6, 05, 05]
-
-0643; [64 F8, 05, 05]
-FEDB; [64 F8, 05, 2D]
-FEDC; [64 F8, 05, 2F]
-FEDA; [64 F8, 05, 31]
-FED9; [64 F8, 05, 33]
-FC80; [64 F8, 05, 31][64 32, 05, 31]
-FC37; [64 F8, 05, 33][64 32, 05, 33]
-FCC4; [64 F8, 05, 2D][64 5C, 05, 2D]
-FC38; [64 F8, 05, 33][64 5C, 05, 33]
-FCC5; [64 F8, 05, 2D][64 68, 05, 2D]
-FC39; [64 F8, 05, 33][64 68, 05, 33]
-FCC6; [64 F8, 05, 2D][64 6A, 05, 2D]
-FC3A; [64 F8, 05, 33][64 6A, 05, 33]
-FCC7; [64 F8, 05, 2D][65 1D, 05, 2D]
-FCEB; [64 F8, 05, 2F][65 1D, 05, 2F]
-FC81; [64 F8, 05, 31][65 1D, 05, 31]
-FC3B; [64 F8, 05, 33][65 1D, 05, 33]
-FCC8; [64 F8, 05, 2D][65 29, 05, 2D]
-FCEC; [64 F8, 05, 2F][65 29, 05, 2F]
-FC82; [64 F8, 05, 31][65 29, 05, 31]
-FC3C; [64 F8, 05, 33][65 29, 05, 33]
-FDC3; [64 F8, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FDBB; [64 F8, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FDB7; [64 F8, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC83; [64 F8, 05, 31][65 61, 05, 31]
-FC3D; [64 F8, 05, 33][65 61, 05, 33]
-FC84; [64 F8, 05, 31][65 63, 05, 31]
-FC3E; [64 F8, 05, 33][65 63, 05, 33]
-
-06A9; [64 FA, 05, 05]
-FB90; [64 FA, 05, 2D]
-FB91; [64 FA, 05, 2F]
-FB8F; [64 FA, 05, 31]
-FB8E; [64 FA, 05, 33]
-
-06AA; [64 FC, 05, 05]
-
-06AB; [64 FE, 05, 05]
-
-06AC; [65 05, 05, 05]
-
-06AD; [65 07, 05, 05]
-FBD5; [65 07, 05, 2D]
-FBD6; [65 07, 05, 2F]
-FBD4; [65 07, 05, 31]
-FBD3; [65 07, 05, 33]
-
-06AE; [65 09, 05, 05]
-
-06AF; [65 0B, 05, 05]
-FB94; [65 0B, 05, 2D]
-FB95; [65 0B, 05, 2F]
-FB93; [65 0B, 05, 31]
-FB92; [65 0B, 05, 33]
-
-06B0; [65 0D, 05, 05]
-
-06B1; [65 0F, 05, 05]
-FB9C; [65 0F, 05, 2D]
-FB9D; [65 0F, 05, 2F]
-FB9B; [65 0F, 05, 31]
-FB9A; [65 0F, 05, 33]
-
-06B2; [65 11, 05, 05]
-
-06B3; [65 13, 05, 05]
-FB98; [65 13, 05, 2D]
-FB99; [65 13, 05, 2F]
-FB97; [65 13, 05, 31]
-FB96; [65 13, 05, 33]
-
-06B4; [65 15, 05, 05]
-
-0762; [65 17, 05, 05]
-
-0763; [65 19, 05, 05]
-
-0764; [65 1B, 05, 05]
-
-0644; [65 1D, 05, 05]
-FEDF; [65 1D, 05, 2D]
-FEE0; [65 1D, 05, 2F]
-FEDE; [65 1D, 05, 31]
-FEDD; [65 1D, 05, 33]
-FEF6; [65 1D, 05, 31][64 22, 05, 31]
-FEF5; [65 1D, 05, 33][64 22, 05, 33]
-FEF8; [65 1D, 05, 31][64 24, 05, 31]
-FEF7; [65 1D, 05, 33][64 24, 05, 33]
-FEFA; [65 1D, 05, 31][64 2C, 05, 31]
-FEF9; [65 1D, 05, 33][64 2C, 05, 33]
-FEFC; [65 1D, 05, 31][64 32, 05, 31]
-FEFB; [65 1D, 05, 33][64 32, 05, 33]
-FCC9; [65 1D, 05, 2D][64 5C, 05, 2D]
-FC3F; [65 1D, 05, 33][64 5C, 05, 33]
-FD83; [65 1D, 05, 2D][64 5C, 05, 2D][64 5C, 05, 3D]
-FD84; [65 1D, 05, 31][64 5C, 05, 31][64 5C, 05, 3D]
-FDBA; [65 1D, 05, 2D][64 5C, 05, 2D][65 29, 05, 3D]
-FDBC; [65 1D, 05, 31][64 5C, 05, 31][65 29, 05, 3D]
-FDAC; [65 1D, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCCA; [65 1D, 05, 2D][64 68, 05, 2D]
-FC40; [65 1D, 05, 33][64 68, 05, 33]
-FDB5; [65 1D, 05, 2D][64 68, 05, 2D][65 29, 05, 3D]
-FD80; [65 1D, 05, 31][64 68, 05, 31][65 29, 05, 3D]
-FD82; [65 1D, 05, 31][64 68, 05, 31][65 61, 05, 3D]
-FD81; [65 1D, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCCB; [65 1D, 05, 2D][64 6A, 05, 2D]
-FC41; [65 1D, 05, 33][64 6A, 05, 33]
-FD86; [65 1D, 05, 2D][64 6A, 05, 2D][65 29, 05, 3D]
-FD85; [65 1D, 05, 31][64 6A, 05, 31][65 29, 05, 3D]
-FCCC; [65 1D, 05, 2D][65 29, 05, 2D]
-FCED; [65 1D, 05, 2F][65 29, 05, 2F]
-FC85; [65 1D, 05, 31][65 29, 05, 31]
-FC42; [65 1D, 05, 33][65 29, 05, 33]
-FD88; [65 1D, 05, 2D][65 29, 05, 2D][64 68, 05, 3D]
-FD87; [65 1D, 05, 31][65 29, 05, 31][64 68, 05, 3D]
-FDAD; [65 1D, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FCCD; [65 1D, 05, 2D][65 41, 05, 2D]
-FC86; [65 1D, 05, 31][65 61, 05, 31]
-FC43; [65 1D, 05, 33][65 61, 05, 33]
-FC87; [65 1D, 05, 31][65 63, 05, 31]
-FC44; [65 1D, 05, 33][65 63, 05, 33]
-
-06B5; [65 1F, 05, 05]
-
-06B6; [65 21, 05, 05]
-
-06B7; [65 23, 05, 05]
-
-06B8; [65 25, 05, 05]
-
-076A; [65 27, 05, 05]
-
-0645; [65 29, 05, 05]
-FEE3; [65 29, 05, 2D]
-FEE4; [65 29, 05, 2F]
-FEE2; [65 29, 05, 31]
-FEE1; [65 29, 05, 33]
-06FE; [65 29, 05, 09][, E2 85, 09]
-FC88; [65 29, 05, 31][64 32, 05, 31]
-FCCE; [65 29, 05, 2D][64 5C, 05, 2D]
-FC45; [65 29, 05, 33][64 5C, 05, 33]
-FD8C; [65 29, 05, 2D][64 5C, 05, 2D][64 68, 05, 3D]
-FD92; [65 29, 05, 2D][64 5C, 05, 2D][64 6A, 05, 3D]
-FD8D; [65 29, 05, 2D][64 5C, 05, 2D][65 29, 05, 3D]
-FDC0; [65 29, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCCF; [65 29, 05, 2D][64 68, 05, 2D]
-FC46; [65 29, 05, 33][64 68, 05, 33]
-FD89; [65 29, 05, 2D][64 68, 05, 2D][64 5C, 05, 3D]
-FD8A; [65 29, 05, 2D][64 68, 05, 2D][65 29, 05, 3D]
-FDF4; [65 29, 05, 33][64 68, 05, 33][65 29, 05, 3D][64 76, 05, 3D]
-FD8B; [65 29, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCD0; [65 29, 05, 2D][64 6A, 05, 2D]
-FC47; [65 29, 05, 33][64 6A, 05, 33]
-FD8E; [65 29, 05, 2D][64 6A, 05, 2D][64 5C, 05, 3D]
-FD8F; [65 29, 05, 2D][64 6A, 05, 2D][65 29, 05, 3D]
-FDB9; [65 29, 05, 31][64 6A, 05, 31][65 63, 05, 3D]
-FCD1; [65 29, 05, 2D][65 29, 05, 2D]
-FC89; [65 29, 05, 31][65 29, 05, 31]
-FC48; [65 29, 05, 33][65 29, 05, 33]
-FDB1; [65 29, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC49; [65 29, 05, 33][65 61, 05, 33]
-FC4A; [65 29, 05, 33][65 63, 05, 33]
-
-0765; [65 2B, 05, 05]
-
-0766; [65 2D, 05, 05]
-
-0646; [65 2F, 05, 05]
-FEE7; [65 2F, 05, 2D]
-FEE8; [65 2F, 05, 2F]
-FEE6; [65 2F, 05, 31]
-FEE5; [65 2F, 05, 33]
-FCD2; [65 2F, 05, 2D][64 5C, 05, 2D]
-FC4B; [65 2F, 05, 33][64 5C, 05, 33]
-FDB8; [65 2F, 05, 2D][64 5C, 05, 2D][64 68, 05, 3D]
-FDBD; [65 2F, 05, 31][64 5C, 05, 31][64 68, 05, 3D]
-FD98; [65 2F, 05, 2D][64 5C, 05, 2D][65 29, 05, 3D]
-FD97; [65 2F, 05, 31][64 5C, 05, 31][65 29, 05, 3D]
-FD99; [65 2F, 05, 31][64 5C, 05, 31][65 61, 05, 3D]
-FDC7; [65 2F, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCD3; [65 2F, 05, 2D][64 68, 05, 2D]
-FC4C; [65 2F, 05, 33][64 68, 05, 33]
-FD95; [65 2F, 05, 2D][64 68, 05, 2D][65 29, 05, 3D]
-FD96; [65 2F, 05, 31][64 68, 05, 31][65 61, 05, 3D]
-FDB3; [65 2F, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCD4; [65 2F, 05, 2D][64 6A, 05, 2D]
-FC4D; [65 2F, 05, 33][64 6A, 05, 33]
-FC8A; [65 2F, 05, 31][64 92, 05, 31]
-FC8B; [65 2F, 05, 31][64 94, 05, 31]
-FCD5; [65 2F, 05, 2D][65 29, 05, 2D]
-FCEE; [65 2F, 05, 2F][65 29, 05, 2F]
-FC8C; [65 2F, 05, 31][65 29, 05, 31]
-FC4E; [65 2F, 05, 33][65 29, 05, 33]
-FD9B; [65 2F, 05, 31][65 29, 05, 31][65 61, 05, 3D]
-FD9A; [65 2F, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC8D; [65 2F, 05, 31][65 2F, 05, 31]
-FCD6; [65 2F, 05, 2D][65 41, 05, 2D]
-FCEF; [65 2F, 05, 2F][65 41, 05, 2F]
-FC8E; [65 2F, 05, 31][65 61, 05, 31]
-FC4F; [65 2F, 05, 33][65 61, 05, 33]
-FC8F; [65 2F, 05, 31][65 63, 05, 31]
-FC50; [65 2F, 05, 33][65 63, 05, 33]
-
-06BA; [65 31, 05, 05]
-FB9F; [65 31, 05, 31]
-FB9E; [65 31, 05, 33]
-
-06BB; [65 33, 05, 05]
-FBA2; [65 33, 05, 2D]
-FBA3; [65 33, 05, 2F]
-FBA1; [65 33, 05, 31]
-FBA0; [65 33, 05, 33]
-
-06BC; [65 35, 05, 05]
-
-06BD; [65 37, 05, 05]
-
-06B9; [65 39, 05, 05]
-
-0767; [65 3B, 05, 05]
-
-0768; [65 3D, 05, 05]
-
-0769; [65 3F, 05, 05]
-
-0647; [65 41, 05, 05]
-FEEB; [65 41, 05, 2D]
-FEEC; [65 41, 05, 2F]
-FEEA; [65 41, 05, 31]
-FEE9; [65 41, 05, 33]
-FCD9; [65 41, 05, 2D][, D6 95, 2D]
-FCD7; [65 41, 05, 2D][64 5C, 05, 2D]
-FC51; [65 41, 05, 33][64 5C, 05, 33]
-FCD8; [65 41, 05, 2D][65 29, 05, 2D]
-FC52; [65 41, 05, 33][65 29, 05, 33]
-FD93; [65 41, 05, 2D][65 29, 05, 2D][64 5C, 05, 3D]
-FD94; [65 41, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FC53; [65 41, 05, 33][65 61, 05, 33]
-FC54; [65 41, 05, 33][65 63, 05, 33]
-
-06BE; [65 43, 05, 05]
-FBAC; [65 43, 05, 2D]
-FBAD; [65 43, 05, 2F]
-FBAB; [65 43, 05, 31]
-FBAA; [65 43, 05, 33]
-
-06C1; [65 45, 05, 05]
-FBA8; [65 45, 05, 2D]
-FBA9; [65 45, 05, 2F]
-FBA7; [65 45, 05, 31]
-FBA6; [65 45, 05, 33]
-06C2; [65 45, 05, 05][, D5 E1, 05]
-
-06C3; [65 47, 05, 05]
-
-06FF; [65 49, 05, 05]
-
-06D5; [65 4B, 05, 05]
-06C0; [65 4B, 05, 05][, D5 E1, 05]
-FBA5; [65 4B, 05, 31][, D5 E1, 31]
-FBA4; [65 4B, 05, 33][, D5 E1, 33]
-
-0648; [65 4D, 05, 05]
-06E5; [65 4D, 05, 09]
-FEEE; [65 4D, 05, 31]
-FEED; [65 4D, 05, 33]
-0676; [65 4D, 05, 09][64 20, 05, 09]
-FDF8; [65 4D, 05, 33][64 B0, 05, 33][65 1D, 05, 3D][65 29, 05, 3D]
-
-06C4; [65 4F, 05, 05]
-
-06C5; [65 51, 05, 05]
-FBE1; [65 51, 05, 31]
-FBE0; [65 51, 05, 33]
-
-06C6; [65 53, 05, 05]
-FBDA; [65 53, 05, 31]
-FBD9; [65 53, 05, 33]
-
-06C7; [65 55, 05, 05]
-FBD8; [65 55, 05, 31]
-FBD7; [65 55, 05, 33]
-0677; [65 55, 05, 09][64 20, 05, 09]
-FBDD; [65 55, 05, 33][64 20, 05, 33]
-
-06C8; [65 57, 05, 05]
-FBDC; [65 57, 05, 31]
-FBDB; [65 57, 05, 33]
-
-06C9; [65 59, 05, 05]
-FBE3; [65 59, 05, 31]
-FBE2; [65 59, 05, 33]
-
-06CA; [65 5B, 05, 05]
-
-06CB; [65 5D, 05, 05]
-FBDF; [65 5D, 05, 31]
-FBDE; [65 5D, 05, 33]
-
-06CF; [65 5F, 05, 05]
-
-0649; [65 61, 05, 05]
-FBE8; [65 61, 05, 2D]
-FBE9; [65 61, 05, 2F]
-FEF0; [65 61, 05, 31]
-FEEF; [65 61, 05, 33]
-FC90; [65 61, 05, 31][, D6 95, 31]
-FC5D; [65 61, 05, 33][, D6 95, 33]
-
-064A; [65 63, 05, 05]
-06E6; [65 63, 05, 09]
-FEF3; [65 63, 05, 2D]
-FEF4; [65 63, 05, 2F]
-FEF2; [65 63, 05, 31]
-FEF1; [65 63, 05, 33]
-0678; [65 63, 05, 09][64 20, 05, 09]
-FCDA; [65 63, 05, 2D][64 5C, 05, 2D]
-FC55; [65 63, 05, 33][64 5C, 05, 33]
-FDAF; [65 63, 05, 31][64 5C, 05, 31][65 63, 05, 3D]
-FCDB; [65 63, 05, 2D][64 68, 05, 2D]
-FC56; [65 63, 05, 33][64 68, 05, 33]
-FDAE; [65 63, 05, 31][64 68, 05, 31][65 63, 05, 3D]
-FCDC; [65 63, 05, 2D][64 6A, 05, 2D]
-FC57; [65 63, 05, 33][64 6A, 05, 33]
-FC91; [65 63, 05, 31][64 92, 05, 31]
-FC92; [65 63, 05, 31][64 94, 05, 31]
-FCDD; [65 63, 05, 2D][65 29, 05, 2D]
-FCF0; [65 63, 05, 2F][65 29, 05, 2F]
-FC93; [65 63, 05, 31][65 29, 05, 31]
-FC58; [65 63, 05, 33][65 29, 05, 33]
-FD9D; [65 63, 05, 2D][65 29, 05, 2D][65 29, 05, 3D]
-FD9C; [65 63, 05, 31][65 29, 05, 31][65 29, 05, 3D]
-FDB0; [65 63, 05, 31][65 29, 05, 31][65 63, 05, 3D]
-FC94; [65 63, 05, 31][65 2F, 05, 31]
-FCDE; [65 63, 05, 2D][65 41, 05, 2D]
-FCF1; [65 63, 05, 2F][65 41, 05, 2F]
-FC95; [65 63, 05, 31][65 61, 05, 31]
-FC59; [65 63, 05, 33][65 61, 05, 33]
-FC96; [65 63, 05, 31][65 63, 05, 31]
-FC5A; [65 63, 05, 33][65 63, 05, 33]
+10DB; [62 50, 05, 05]
-06CC; [65 65, 05, 05]
-FBFE; [65 65, 05, 2D]
-FBFF; [65 65, 05, 2F]
-FBFD; [65 65, 05, 31]
-FBFC; [65 65, 05, 33]
+2D0B; [62 52, 05, 05]
+10AB; [62 52, 05, 8F]
-06CD; [65 67, 05, 05]
+10DC; [62 54, 05, 05]
+10FC; [62 54, 05, 27]
-06CE; [65 69, 05, 05]
+2D0C; [62 56, 05, 05]
+10AC; [62 56, 05, 8F]
-06D0; [65 6B, 05, 05]
-FBE6; [65 6B, 05, 2D]
-FBE7; [65 6B, 05, 2F]
-FBE5; [65 6B, 05, 31]
-FBE4; [65 6B, 05, 33]
+10F2; [62 58, 05, 05]
-06D1; [65 6D, 05, 05]
+2D22; [62 5A, 05, 05]
+10C2; [62 5A, 05, 8F]
-06D2; [65 6F, 05, 05]
-FBAF; [65 6F, 05, 31]
-FBAE; [65 6F, 05, 33]
-06D3; [65 6F, 05, 05][, D5 E1, 05]
-FBB1; [65 6F, 05, 31][, D5 E1, 31]
-FBB0; [65 6F, 05, 33][, D5 E1, 33]
+10DD; [62 5C, 05, 05]
-0710; [66 20, 05, 05]
+2D0D; [62 5E, 05, 05]
+10AD; [62 5E, 05, 8F]
-0712; [66 22, 05, 05]
-072D; [66 22, 05, 09][, E2 95, 09]
+10DE; [62 60, 05, 05]
-0713; [66 24, 05, 05]
-0714; [66 24, 05, 09][, E2 85, 09]
-072E; [66 24, 05, 09][, E2 95, 09]
+2D0E; [62 62, 05, 05]
+10AE; [62 62, 05, 8F]
-0716; [66 26, 05, 05]
+10DF; [62 64, 05, 05]
-0715; [66 28, 05, 05]
-072F; [66 28, 05, 09][, E2 95, 09]
+2D0F; [62 66, 05, 05]
+10AF; [62 66, 05, 8F]
-0717; [66 2A, 05, 05]
+10E0; [62 68, 05, 05]
-0718; [66 2C, 05, 05]
+2D10; [62 6A, 05, 05]
+10B0; [62 6A, 05, 8F]
-0719; [66 2E, 05, 05]
+10E1; [62 6C, 05, 05]
-074D; [66 30, 05, 05]
+2D11; [62 6E, 05, 05]
+10B1; [62 6E, 05, 8F]
-071A; [66 32, 05, 05]
+10E2; [62 70, 05, 05]
-071B; [66 34, 05, 05]
-071C; [66 34, 05, 09][, E2 85, 09]
+2D12; [62 72, 05, 05]
+10B2; [62 72, 05, 8F]
-071D; [66 36, 05, 05]
+10F3; [62 74, 05, 05]
-071E; [66 38, 05, 05]
+2D23; [62 76, 05, 05]
+10C3; [62 76, 05, 8F]
-071F; [66 3A, 05, 05]
+10E3; [62 78, 05, 05]
-074E; [66 3C, 05, 05]
+2D13; [62 7A, 05, 05]
+10B3; [62 7A, 05, 8F]
-0720; [66 3E, 05, 05]
+10E4; [62 7C, 05, 05]
-0721; [66 40, 05, 05]
+2D14; [62 7E, 05, 05]
+10B4; [62 7E, 05, 8F]
-0722; [66 42, 05, 05]
+10E5; [62 80, 05, 05]
-0723; [66 44, 05, 05]
-0724; [66 44, 05, 31]
+2D15; [62 82, 05, 05]
+10B5; [62 82, 05, 8F]
-0725; [66 46, 05, 05]
+10E6; [62 84, 05, 05]
-0726; [66 48, 05, 05]
-0727; [66 48, 05, 09][, E2 85, 09]
+2D16; [62 86, 05, 05]
+10B6; [62 86, 05, 8F]
-074F; [66 4A, 05, 05]
+10E7; [62 88, 05, 05]
-0728; [66 4C, 05, 05]
+2D17; [62 8A, 05, 05]
+10B7; [62 8A, 05, 8F]
-0729; [66 4E, 05, 05]
+10E8; [62 8C, 05, 05]
-072A; [66 50, 05, 05]
+2D18; [62 8E, 05, 05]
+10B8; [62 8E, 05, 8F]
-072B; [66 52, 05, 05]
+10E9; [62 90, 05, 05]
-072C; [66 54, 05, 05]
+2D19; [62 92, 05, 05]
+10B9; [62 92, 05, 8F]
-0780; [67 20, 05, 05]
+10EA; [62 94, 05, 05]
-0799; [67 22, 05, 05]
+2D1A; [62 96, 05, 05]
+10BA; [62 96, 05, 8F]
-079A; [67 24, 05, 05]
+10EB; [62 98, 05, 05]
-0781; [67 26, 05, 05]
+2D1B; [62 9A, 05, 05]
+10BB; [62 9A, 05, 8F]
-0782; [67 28, 05, 05]
+10EC; [62 9C, 05, 05]
-0783; [67 2A, 05, 05]
+2D1C; [62 9E, 05, 05]
+10BC; [62 9E, 05, 8F]
-079C; [67 2C, 05, 05]
+10ED; [62 A0, 05, 05]
-0784; [67 2E, 05, 05]
+2D1D; [62 A2, 05, 05]
+10BD; [62 A2, 05, 8F]
-0785; [67 30, 05, 05]
+10EE; [62 A4, 05, 05]
-0786; [67 32, 05, 05]
+2D1E; [62 A6, 05, 05]
+10BE; [62 A6, 05, 8F]
-0787; [67 34, 05, 05]
+10F4; [62 A8, 05, 05]
-07A2; [67 36, 05, 05]
+2D24; [62 AA, 05, 05]
+10C4; [62 AA, 05, 8F]
-07A3; [67 38, 05, 05]
+10EF; [62 AC, 05, 05]
-0788; [67 3A, 05, 05]
+2D1F; [62 AE, 05, 05]
+10BF; [62 AE, 05, 8F]
-07A5; [67 3C, 05, 05]
+10F0; [62 B0, 05, 05]
-0789; [67 3E, 05, 05]
+2D20; [62 B2, 05, 05]
+10C0; [62 B2, 05, 8F]
-078A; [67 40, 05, 05]
+10F5; [62 B4, 05, 05]
-078B; [67 42, 05, 05]
+2D25; [62 B6, 05, 05]
+10C5; [62 B6, 05, 8F]
-079B; [67 44, 05, 05]
+10F6; [62 B8, 05, 05]
-078C; [67 46, 05, 05]
+10F7; [62 BA, 05, 05]
-0798; [67 48, 05, 05]
+10F8; [62 BC, 05, 05]
-07A0; [67 4A, 05, 05]
+10F9; [62 BE, 05, 05]
-07A1; [67 4C, 05, 05]
+10FA; [62 C0, 05, 05]
-078D; [67 4E, 05, 05]
+0561; [63 20, 05, 05]
+0531; [63 20, 05, 8F]
-078E; [67 50, 05, 05]
+0562; [63 22, 05, 05]
+0532; [63 22, 05, 8F]
-07A4; [67 52, 05, 05]
+0563; [63 24, 05, 05]
+0533; [63 24, 05, 8F]
-078F; [67 54, 05, 05]
+0564; [63 26, 05, 05]
+0534; [63 26, 05, 8F]
-0790; [67 56, 05, 05]
+0565; [63 28, 05, 05]
+0535; [63 28, 05, 8F]
+0587; [63 28, 05, 09][63 62, 05, 09]
-079D; [67 58, 05, 05]
+0566; [63 2A, 05, 05]
+0536; [63 2A, 05, 8F]
-079E; [67 5A, 05, 05]
+0567; [63 2C, 05, 05]
+0537; [63 2C, 05, 8F]
-079F; [67 5C, 05, 05]
+0568; [63 2E, 05, 05]
+0538; [63 2E, 05, 8F]
-0791; [67 5E, 05, 05]
+0569; [63 30, 05, 05]
+0539; [63 30, 05, 8F]
-0792; [67 60, 05, 05]
+056A; [63 32, 05, 05]
+053A; [63 32, 05, 8F]
-0793; [67 62, 05, 05]
+056B; [63 34, 05, 05]
+053B; [63 34, 05, 8F]
-0794; [67 64, 05, 05]
+056C; [63 36, 05, 05]
+053C; [63 36, 05, 8F]
-0795; [67 66, 05, 05]
+056D; [63 38, 05, 05]
+053D; [63 38, 05, 8F]
-0796; [67 68, 05, 05]
+056E; [63 3A, 05, 05]
+053E; [63 3A, 05, 8F]
-0797; [67 6A, 05, 05]
+056F; [63 3C, 05, 05]
+053F; [63 3C, 05, 8F]
-07B1; [67 6C, 05, 05]
+0570; [63 3E, 05, 05]
+0540; [63 3E, 05, 8F]
-07A6; [67 6E, 05, 05]
+0571; [63 40, 05, 05]
+0541; [63 40, 05, 8F]
-07A7; [67 70, 05, 05]
+0572; [63 42, 05, 05]
+0542; [63 42, 05, 8F]
-07A8; [67 72, 05, 05]
+0573; [63 44, 05, 05]
+0543; [63 44, 05, 8F]
-07A9; [67 74, 05, 05]
+0574; [63 46, 05, 05]
+0544; [63 46, 05, 8F]
+FB14; [63 46, 05, 09][63 28, 05, 09]
+FB15; [63 46, 05, 09][63 34, 05, 09]
+FB17; [63 46, 05, 09][63 38, 05, 09]
+FB13; [63 46, 05, 09][63 4A, 05, 09]
-07AA; [67 76, 05, 05]
+0575; [63 48, 05, 05]
+0545; [63 48, 05, 8F]
-07AB; [67 78, 05, 05]
+0576; [63 4A, 05, 05]
+0546; [63 4A, 05, 8F]
-07AC; [67 7A, 05, 05]
+0577; [63 4C, 05, 05]
+0547; [63 4C, 05, 8F]
-07AD; [67 7C, 05, 05]
+0578; [63 4E, 05, 05]
+0548; [63 4E, 05, 8F]
-07AE; [67 7E, 05, 05]
+0579; [63 50, 05, 05]
+0549; [63 50, 05, 8F]
-07AF; [67 80, 05, 05]
+057A; [63 52, 05, 05]
+054A; [63 52, 05, 8F]
-07B0; [67 82, 05, 05]
+057B; [63 54, 05, 05]
+054B; [63 54, 05, 8F]
-2D30; [68 20, 05, 05]
+057C; [63 56, 05, 05]
+054C; [63 56, 05, 8F]
-2D31; [68 22, 05, 05]
+057D; [63 58, 05, 05]
+054D; [63 58, 05, 8F]
-2D32; [68 24, 05, 05]
+057E; [63 5A, 05, 05]
+054E; [63 5A, 05, 8F]
+FB16; [63 5A, 05, 09][63 4A, 05, 09]
-2D33; [68 26, 05, 05]
+057F; [63 5C, 05, 05]
+054F; [63 5C, 05, 8F]
-2D34; [68 28, 05, 05]
+0580; [63 5E, 05, 05]
+0550; [63 5E, 05, 8F]
-2D35; [68 2A, 05, 05]
+0581; [63 60, 05, 05]
+0551; [63 60, 05, 8F]
-2D36; [68 2C, 05, 05]
+0582; [63 62, 05, 05]
+0552; [63 62, 05, 8F]
-2D37; [68 2E, 05, 05]
+0583; [63 64, 05, 05]
+0553; [63 64, 05, 8F]
-2D38; [68 30, 05, 05]
+0584; [63 66, 05, 05]
+0554; [63 66, 05, 8F]
-2D39; [68 32, 05, 05]
+0585; [63 68, 05, 05]
+0555; [63 68, 05, 8F]
-2D3A; [68 34, 05, 05]
+0586; [63 6A, 05, 05]
+0556; [63 6A, 05, 8F]
-2D3B; [68 36, 05, 05]
+0559; [63 6C, 05, 05]
-2D3C; [68 38, 05, 05]
+05D0; [64 20, 05, 05]
+2135; [64 20, 05, 09]
+FB21; [64 20, 05, 0B]
+FB2E; [64 20, 05, 05][, D5 41, 05]
+FB2F; [64 20, 05, 05][, D5 51, 05]
+FB30; [64 20, 05, 05][, D5 C1, 05]
+FB4F; [64 20, 05, 09][64 36, 05, 09]
-2D3D; [68 3A, 05, 05]
+05D1; [64 22, 05, 05]
+2136; [64 22, 05, 09]
+FB31; [64 22, 05, 05][, D5 C1, 05]
+FB4C; [64 22, 05, 05][, D5 D1, 05]
-2D3E; [68 3C, 05, 05]
+05D2; [64 24, 05, 05]
+2137; [64 24, 05, 09]
+FB32; [64 24, 05, 05][, D5 C1, 05]
-2D3F; [68 3E, 05, 05]
+05D3; [64 26, 05, 05]
+2138; [64 26, 05, 09]
+FB22; [64 26, 05, 0B]
+FB33; [64 26, 05, 05][, D5 C1, 05]
-2D40; [68 40, 05, 05]
+05D4; [64 28, 05, 05]
+FB23; [64 28, 05, 0B]
+FB34; [64 28, 05, 05][, D5 C1, 05]
-2D41; [68 42, 05, 05]
+05D5; [64 2A, 05, 05]
+FB4B; [64 2A, 05, 05][, D5 71, 05]
+FB35; [64 2A, 05, 05][, D5 C1, 05]
+05F0; [64 2A, 05, 09][64 2A, 05, 09]
+05F1; [64 2A, 05, 09][64 32, 05, 09]
-2D42; [68 44, 05, 05]
+05D6; [64 2C, 05, 05]
+FB36; [64 2C, 05, 05][, D5 C1, 05]
-2D43; [68 46, 05, 05]
+05D7; [64 2E, 05, 05]
-2D44; [68 48, 05, 05]
+05D8; [64 30, 05, 05]
+FB38; [64 30, 05, 05][, D5 C1, 05]
-2D45; [68 4A, 05, 05]
+05D9; [64 32, 05, 05]
+FB1D; [64 32, 05, 05][, D5 11, 05]
+FB39; [64 32, 05, 05][, D5 C1, 05]
+05F2; [64 32, 05, 09][64 32, 05, 09]
+FB1F; [64 32, 05, 09][64 32, 05, 09][, D5 41, 05]
-2D46; [68 4C, 05, 05]
+05DB; [64 34, 05, 05]
+FB24; [64 34, 05, 0B]
+05DA; [64 34, 05, 31]
+FB3B; [64 34, 05, 05][, D5 C1, 05]
+FB3A; [64 34, 05, 31][, D5 C1, 05]
+FB4D; [64 34, 05, 05][, D5 D1, 05]
-2D47; [68 4E, 05, 05]
+05DC; [64 36, 05, 05]
+FB25; [64 36, 05, 0B]
+FB3C; [64 36, 05, 05][, D5 C1, 05]
-2D48; [68 50, 05, 05]
+05DE; [64 38, 05, 05]
+FB26; [64 38, 05, 0B]
+05DD; [64 38, 05, 31]
+FB3E; [64 38, 05, 05][, D5 C1, 05]
-2D49; [68 52, 05, 05]
+05E0; [64 3A, 05, 05]
+05DF; [64 3A, 05, 31]
+FB40; [64 3A, 05, 05][, D5 C1, 05]
-2D4A; [68 54, 05, 05]
+05E1; [64 3C, 05, 05]
+FB41; [64 3C, 05, 05][, D5 C1, 05]
-2D4B; [68 56, 05, 05]
+05E2; [64 3E, 05, 05]
+FB20; [64 3E, 05, 0B]
-2D4C; [68 58, 05, 05]
+05E4; [64 40, 05, 05]
+05E3; [64 40, 05, 31]
+FB44; [64 40, 05, 05][, D5 C1, 05]
+FB43; [64 40, 05, 31][, D5 C1, 05]
+FB4E; [64 40, 05, 05][, D5 D1, 05]
-2D4D; [68 5A, 05, 05]
+05E6; [64 42, 05, 05]
+05E5; [64 42, 05, 31]
+FB46; [64 42, 05, 05][, D5 C1, 05]
-2D4E; [68 5C, 05, 05]
+05E7; [64 44, 05, 05]
+FB47; [64 44, 05, 05][, D5 C1, 05]
-2D4F; [68 5E, 05, 05]
+05E8; [64 46, 05, 05]
+FB27; [64 46, 05, 0B]
+FB48; [64 46, 05, 05][, D5 C1, 05]
-2D50; [68 60, 05, 05]
+05E9; [64 48, 05, 05]
+FB2B; [64 48, 05, 05][, D5 A1, 05]
+FB2A; [64 48, 05, 05][, D5 B1, 05]
+FB49; [64 48, 05, 05][, D5 C1, 05]
+FB2D; [64 48, 05, 05][, D5 C1, 05][, D5 A1, 05]
+FB2C; [64 48, 05, 05][, D5 C1, 05][, D5 B1, 05]
-2D51; [68 62, 05, 05]
+05EA; [64 4A, 05, 05]
+FB28; [64 4A, 05, 0B]
+FB4A; [64 4A, 05, 05][, D5 C1, 05]
-2D52; [68 64, 05, 05]
+D802 DD00; [64 4C, 05, 05]
-2D53; [68 66, 05, 05]
+D802 DD01; [64 4E, 05, 05]
-2D54; [68 68, 05, 05]
+D802 DD02; [64 50, 05, 05]
-2D55; [68 6A, 05, 05]
+D802 DD03; [64 52, 05, 05]
-2D56; [68 6C, 05, 05]
+D802 DD04; [64 54, 05, 05]
-2D57; [68 6E, 05, 05]
+D802 DD05; [64 56, 05, 05]
-2D58; [68 70, 05, 05]
+D802 DD06; [64 58, 05, 05]
-2D59; [68 72, 05, 05]
+D802 DD07; [64 5A, 05, 05]
-2D5A; [68 74, 05, 05]
+D802 DD08; [64 5C, 05, 05]
+
+D802 DD09; [64 5E, 05, 05]
-2D5B; [68 76, 05, 05]
+D802 DD0A; [64 60, 05, 05]
-2D5C; [68 78, 05, 05]
+D802 DD0B; [64 62, 05, 05]
+
+D802 DD0C; [64 64, 05, 05]
+
+D802 DD0D; [64 66, 05, 05]
+
+D802 DD0E; [64 68, 05, 05]
+
+D802 DD0F; [64 6A, 05, 05]
-2D5D; [68 7A, 05, 05]
+D802 DD10; [64 6C, 05, 05]
+
+D802 DD11; [64 6E, 05, 05]
+
+D802 DD12; [64 70, 05, 05]
+
+D802 DD13; [64 72, 05, 05]
+
+D802 DD14; [64 74, 05, 05]
+
+D802 DD15; [64 76, 05, 05]
+
+0621; [65 20, 05, 05]
+0674; [65 20, 05, 09]
+FE80; [65 20, 05, 33]
+06FD; [65 20, 05, 09][, E4 5D, 09]
+
+0622; [65 22, 05, 05]
+0627 0653; [65 22, 05, 05]
+FE82; [65 22, 05, 31]
+FE81; [65 22, 05, 33]
+
+0623; [65 24, 05, 05]
+0627 0654; [65 24, 05, 05]
+FE84; [65 24, 05, 31]
+FE83; [65 24, 05, 33]
+
+0672; [65 26, 05, 05]
+
+0671; [65 28, 05, 05]
+FB51; [65 28, 05, 31]
+FB50; [65 28, 05, 33]
+
+0624; [65 2A, 05, 05]
+0648 0654; [65 2A, 05, 05]
+FE86; [65 2A, 05, 31]
+FE85; [65 2A, 05, 33]
+
+0625; [65 2C, 05, 05]
+0627 0655; [65 2C, 05, 05]
+FE88; [65 2C, 05, 31]
+FE87; [65 2C, 05, 33]
+
+0673; [65 2E, 05, 05]
+
+0626; [65 30, 05, 05]
+064A 0654; [65 30, 05, 05]
+FE8B; [65 30, 05, 2D]
+FE8C; [65 30, 05, 2F]
+FE8A; [65 30, 05, 31]
+FE89; [65 30, 05, 33]
+FBEB; [65 30, 05, 31][65 32, 05, 31]
+FBEA; [65 30, 05, 33][65 32, 05, 33]
+FC97; [65 30, 05, 2D][65 5C, 05, 2D]
+FC00; [65 30, 05, 33][65 5C, 05, 33]
+FC98; [65 30, 05, 2D][65 68, 05, 2D]
+FC01; [65 30, 05, 33][65 68, 05, 33]
+FC99; [65 30, 05, 2D][65 6A, 05, 2D]
+FC64; [65 30, 05, 31][65 92, 05, 31]
+FC65; [65 30, 05, 31][65 94, 05, 31]
+FC9A; [65 30, 05, 2D][66 29, 05, 2D]
+FCDF; [65 30, 05, 2F][66 29, 05, 2F]
+FC66; [65 30, 05, 31][66 29, 05, 31]
+FC02; [65 30, 05, 33][66 29, 05, 33]
+FC67; [65 30, 05, 31][66 2F, 05, 31]
+FC9B; [65 30, 05, 2D][66 41, 05, 2D]
+FCE0; [65 30, 05, 2F][66 41, 05, 2F]
+FBED; [65 30, 05, 31][66 4B, 05, 31]
+FBEC; [65 30, 05, 33][66 4B, 05, 33]
+FBEF; [65 30, 05, 31][66 4D, 05, 31]
+FBEE; [65 30, 05, 33][66 4D, 05, 33]
+FBF3; [65 30, 05, 31][66 53, 05, 31]
+FBF2; [65 30, 05, 33][66 53, 05, 33]
+FBF1; [65 30, 05, 31][66 55, 05, 31]
+FBF0; [65 30, 05, 33][66 55, 05, 33]
+FBF5; [65 30, 05, 31][66 57, 05, 31]
+FBF4; [65 30, 05, 33][66 57, 05, 33]
+FBFB; [65 30, 05, 2D][66 61, 05, 2D]
+FBFA; [65 30, 05, 31][66 61, 05, 31]
+FC68; [65 30, 05, 31][66 61, 05, 31]
+FBF9; [65 30, 05, 33][66 61, 05, 33]
+FC03; [65 30, 05, 33][66 61, 05, 33]
+FC69; [65 30, 05, 31][66 63, 05, 31]
+FC04; [65 30, 05, 33][66 63, 05, 33]
+FBF8; [65 30, 05, 2D][66 6B, 05, 2D]
+FBF7; [65 30, 05, 31][66 6B, 05, 31]
+FBF6; [65 30, 05, 33][66 6B, 05, 33]
+
+0627; [65 32, 05, 05]
+FE8E; [65 32, 05, 31]
+FE8D; [65 32, 05, 33]
+FD3C; [65 32, 05, 31][, D5 F1, 31]
+FD3D; [65 32, 05, 33][, D5 F1, 33]
+0675; [65 32, 05, 09][65 20, 05, 09]
+FDF3; [65 32, 05, 33][65 F8, 05, 33][65 36, 05, 3D][65 92, 05, 3D]
+FDF2; [65 32, 05, 33][66 1D, 05, 33][66 1D, 05, 3D][66 41, 05, 3D]
+
+066E; [65 34, 05, 05]
+
+0628; [65 36, 05, 05]
+FE91; [65 36, 05, 2D]
+FE92; [65 36, 05, 2F]
+FE90; [65 36, 05, 31]
+FE8F; [65 36, 05, 33]
+FC9C; [65 36, 05, 2D][65 5C, 05, 2D]
+FC05; [65 36, 05, 33][65 5C, 05, 33]
+FC9D; [65 36, 05, 2D][65 68, 05, 2D]
+FC06; [65 36, 05, 33][65 68, 05, 33]
+FDC2; [65 36, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FC9E; [65 36, 05, 2D][65 6A, 05, 2D]
+FC07; [65 36, 05, 33][65 6A, 05, 33]
+FD9E; [65 36, 05, 31][65 6A, 05, 31][66 63, 05, 3D]
+FC6A; [65 36, 05, 31][65 92, 05, 31]
+FC6B; [65 36, 05, 31][65 94, 05, 31]
+FC9F; [65 36, 05, 2D][66 29, 05, 2D]
+FCE1; [65 36, 05, 2F][66 29, 05, 2F]
+FC6C; [65 36, 05, 31][66 29, 05, 31]
+FC08; [65 36, 05, 33][66 29, 05, 33]
+FC6D; [65 36, 05, 31][66 2F, 05, 31]
+FCA0; [65 36, 05, 2D][66 41, 05, 2D]
+FCE2; [65 36, 05, 2F][66 41, 05, 2F]
+FC6E; [65 36, 05, 31][66 61, 05, 31]
+FC09; [65 36, 05, 33][66 61, 05, 33]
+FC6F; [65 36, 05, 31][66 63, 05, 31]
+FC0A; [65 36, 05, 33][66 63, 05, 33]
+
+067B; [65 38, 05, 05]
+FB54; [65 38, 05, 2D]
+FB55; [65 38, 05, 2F]
+FB53; [65 38, 05, 31]
+FB52; [65 38, 05, 33]
+
+067E; [65 3A, 05, 05]
+FB58; [65 3A, 05, 2D]
+FB59; [65 3A, 05, 2F]
+FB57; [65 3A, 05, 31]
+FB56; [65 3A, 05, 33]
+
+0680; [65 3C, 05, 05]
+FB5C; [65 3C, 05, 2D]
+FB5D; [65 3C, 05, 2F]
+FB5B; [65 3C, 05, 31]
+FB5A; [65 3C, 05, 33]
+
+0750; [65 3E, 05, 05]
+
+0751; [65 40, 05, 05]
+
+0752; [65 42, 05, 05]
+
+0753; [65 44, 05, 05]
+
+0754; [65 46, 05, 05]
+
+0755; [65 48, 05, 05]
+
+0756; [65 4A, 05, 05]
+
+0629; [65 4C, 05, 05]
+FE94; [65 4C, 05, 31]
+FE93; [65 4C, 05, 33]
+
+062A; [65 4E, 05, 05]
+FE97; [65 4E, 05, 2D]
+FE98; [65 4E, 05, 2F]
+FE96; [65 4E, 05, 31]
+FE95; [65 4E, 05, 33]
+FCA1; [65 4E, 05, 2D][65 5C, 05, 2D]
+FC0B; [65 4E, 05, 33][65 5C, 05, 33]
+FD50; [65 4E, 05, 2D][65 5C, 05, 2D][66 29, 05, 3D]
+FDA0; [65 4E, 05, 31][65 5C, 05, 31][66 61, 05, 3D]
+FD9F; [65 4E, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCA2; [65 4E, 05, 2D][65 68, 05, 2D]
+FC0C; [65 4E, 05, 33][65 68, 05, 33]
+FD52; [65 4E, 05, 2D][65 68, 05, 2D][65 5C, 05, 3D]
+FD51; [65 4E, 05, 31][65 68, 05, 31][65 5C, 05, 3D]
+FD53; [65 4E, 05, 2D][65 68, 05, 2D][66 29, 05, 3D]
+FCA3; [65 4E, 05, 2D][65 6A, 05, 2D]
+FC0D; [65 4E, 05, 33][65 6A, 05, 33]
+FD54; [65 4E, 05, 2D][65 6A, 05, 2D][66 29, 05, 3D]
+FDA2; [65 4E, 05, 31][65 6A, 05, 31][66 61, 05, 3D]
+FDA1; [65 4E, 05, 31][65 6A, 05, 31][66 63, 05, 3D]
+FC70; [65 4E, 05, 31][65 92, 05, 31]
+FC71; [65 4E, 05, 31][65 94, 05, 31]
+FCA4; [65 4E, 05, 2D][66 29, 05, 2D]
+FCE3; [65 4E, 05, 2F][66 29, 05, 2F]
+FC72; [65 4E, 05, 31][66 29, 05, 31]
+FC0E; [65 4E, 05, 33][66 29, 05, 33]
+FD55; [65 4E, 05, 2D][66 29, 05, 2D][65 5C, 05, 3D]
+FD56; [65 4E, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD57; [65 4E, 05, 2D][66 29, 05, 2D][65 6A, 05, 3D]
+FDA4; [65 4E, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FDA3; [65 4E, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC73; [65 4E, 05, 31][66 2F, 05, 31]
+FCA5; [65 4E, 05, 2D][66 41, 05, 2D]
+FCE4; [65 4E, 05, 2F][66 41, 05, 2F]
+FC74; [65 4E, 05, 31][66 61, 05, 31]
+FC0F; [65 4E, 05, 33][66 61, 05, 33]
+FC75; [65 4E, 05, 31][66 63, 05, 31]
+FC10; [65 4E, 05, 33][66 63, 05, 33]
+
+062B; [65 50, 05, 05]
+FE9B; [65 50, 05, 2D]
+FE9C; [65 50, 05, 2F]
+FE9A; [65 50, 05, 31]
+FE99; [65 50, 05, 33]
+FC11; [65 50, 05, 33][65 5C, 05, 33]
+FC76; [65 50, 05, 31][65 92, 05, 31]
+FC77; [65 50, 05, 31][65 94, 05, 31]
+FCA6; [65 50, 05, 2D][66 29, 05, 2D]
+FCE5; [65 50, 05, 2F][66 29, 05, 2F]
+FC78; [65 50, 05, 31][66 29, 05, 31]
+FC12; [65 50, 05, 33][66 29, 05, 33]
+FC79; [65 50, 05, 31][66 2F, 05, 31]
+FCE6; [65 50, 05, 2F][66 41, 05, 2F]
+FC7A; [65 50, 05, 31][66 61, 05, 31]
+FC13; [65 50, 05, 33][66 61, 05, 33]
+FC7B; [65 50, 05, 31][66 63, 05, 31]
+FC14; [65 50, 05, 33][66 63, 05, 33]
+
+0679; [65 52, 05, 05]
+FB68; [65 52, 05, 2D]
+FB69; [65 52, 05, 2F]
+FB67; [65 52, 05, 31]
+FB66; [65 52, 05, 33]
+
+067A; [65 54, 05, 05]
+FB60; [65 54, 05, 2D]
+FB61; [65 54, 05, 2F]
+FB5F; [65 54, 05, 31]
+FB5E; [65 54, 05, 33]
+
+067C; [65 56, 05, 05]
+
+067D; [65 58, 05, 05]
+
+067F; [65 5A, 05, 05]
+FB64; [65 5A, 05, 2D]
+FB65; [65 5A, 05, 2F]
+FB63; [65 5A, 05, 31]
+FB62; [65 5A, 05, 33]
+
+062C; [65 5C, 05, 05]
+FE9F; [65 5C, 05, 2D]
+FEA0; [65 5C, 05, 2F]
+FE9E; [65 5C, 05, 31]
+FE9D; [65 5C, 05, 33]
+FCA7; [65 5C, 05, 2D][65 68, 05, 2D]
+FC15; [65 5C, 05, 33][65 68, 05, 33]
+FDA6; [65 5C, 05, 31][65 68, 05, 31][66 61, 05, 3D]
+FDBE; [65 5C, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FDFB; [65 5C, 05, 33][66 1D, 05, 33][06, 05, 3D][65 5C, 05, 3D][66 1D, 05, 3D][65 32, 05, 3D][66 1D, 05, 3D][66 41, 05, 3D]
+FCA8; [65 5C, 05, 2D][66 29, 05, 2D]
+FC16; [65 5C, 05, 33][66 29, 05, 33]
+FD59; [65 5C, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD58; [65 5C, 05, 31][66 29, 05, 31][65 68, 05, 3D]
+FDA7; [65 5C, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FDA5; [65 5C, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FD1D; [65 5C, 05, 31][66 61, 05, 31]
+FD01; [65 5C, 05, 33][66 61, 05, 33]
+FD1E; [65 5C, 05, 31][66 63, 05, 31]
+FD02; [65 5C, 05, 33][66 63, 05, 33]
+
+0683; [65 5E, 05, 05]
+FB78; [65 5E, 05, 2D]
+FB79; [65 5E, 05, 2F]
+FB77; [65 5E, 05, 31]
+FB76; [65 5E, 05, 33]
+
+0684; [65 60, 05, 05]
+FB74; [65 60, 05, 2D]
+FB75; [65 60, 05, 2F]
+FB73; [65 60, 05, 31]
+FB72; [65 60, 05, 33]
+
+0686; [65 62, 05, 05]
+FB7C; [65 62, 05, 2D]
+FB7D; [65 62, 05, 2F]
+FB7B; [65 62, 05, 31]
+FB7A; [65 62, 05, 33]
+
+06BF; [65 64, 05, 05]
+
+0687; [65 66, 05, 05]
+FB80; [65 66, 05, 2D]
+FB81; [65 66, 05, 2F]
+FB7F; [65 66, 05, 31]
+FB7E; [65 66, 05, 33]
+
+062D; [65 68, 05, 05]
+FEA3; [65 68, 05, 2D]
+FEA4; [65 68, 05, 2F]
+FEA2; [65 68, 05, 31]
+FEA1; [65 68, 05, 33]
+FCA9; [65 68, 05, 2D][65 5C, 05, 2D]
+FC17; [65 68, 05, 33][65 5C, 05, 33]
+FDBF; [65 68, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCAA; [65 68, 05, 2D][66 29, 05, 2D]
+FC18; [65 68, 05, 33][66 29, 05, 33]
+FD5B; [65 68, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FD5A; [65 68, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FD1B; [65 68, 05, 31][66 61, 05, 31]
+FCFF; [65 68, 05, 33][66 61, 05, 33]
+FD1C; [65 68, 05, 31][66 63, 05, 31]
+FD00; [65 68, 05, 33][66 63, 05, 33]
+
+062E; [65 6A, 05, 05]
+FEA7; [65 6A, 05, 2D]
+FEA8; [65 6A, 05, 2F]
+FEA6; [65 6A, 05, 31]
+FEA5; [65 6A, 05, 33]
+FCAB; [65 6A, 05, 2D][65 5C, 05, 2D]
+FC19; [65 6A, 05, 33][65 5C, 05, 33]
+FC1A; [65 6A, 05, 33][65 68, 05, 33]
+FCAC; [65 6A, 05, 2D][66 29, 05, 2D]
+FC1B; [65 6A, 05, 33][66 29, 05, 33]
+FD1F; [65 6A, 05, 31][66 61, 05, 31]
+FD03; [65 6A, 05, 33][66 61, 05, 33]
+FD20; [65 6A, 05, 31][66 63, 05, 31]
+FD04; [65 6A, 05, 33][66 63, 05, 33]
+
+0681; [65 6C, 05, 05]
+
+0682; [65 6E, 05, 05]
+
+0685; [65 70, 05, 05]
+
+0757; [65 72, 05, 05]
+
+0758; [65 74, 05, 05]
+
+062F; [65 76, 05, 05]
+FEAA; [65 76, 05, 31]
+FEA9; [65 76, 05, 33]
+
+0630; [65 78, 05, 05]
+FEAC; [65 78, 05, 31]
+FEAB; [65 78, 05, 33]
+FC5B; [65 78, 05, 33][, D7 39, 33]
+
+0688; [65 7A, 05, 05]
+FB89; [65 7A, 05, 31]
+FB88; [65 7A, 05, 33]
+
+0689; [65 7C, 05, 05]
+
+068A; [65 7E, 05, 05]
+
+068B; [65 80, 05, 05]
+
+068C; [65 82, 05, 05]
+FB85; [65 82, 05, 31]
+FB84; [65 82, 05, 33]
+
+068D; [65 84, 05, 05]
+FB83; [65 84, 05, 31]
+FB82; [65 84, 05, 33]
+
+068E; [65 86, 05, 05]
+FB87; [65 86, 05, 31]
+FB86; [65 86, 05, 33]
+
+068F; [65 88, 05, 05]
+
+0690; [65 8A, 05, 05]
+
+06EE; [65 8C, 05, 05]
+
+0759; [65 8E, 05, 05]
+
+075A; [65 90, 05, 05]
+
+0631; [65 92, 05, 05]
+FEAE; [65 92, 05, 31]
+FEAD; [65 92, 05, 33]
+FC5C; [65 92, 05, 33][, D7 39, 33]
+FDF6; [65 92, 05, 33][65 B0, 05, 33][66 4D, 05, 3D][66 1D, 05, 3D]
+FDFC; [65 92, 05, 33][66 65, 05, 33][65 32, 05, 3D][66 1D, 05, 3D]
+
+0632; [65 94, 05, 05]
+FEB0; [65 94, 05, 31]
+FEAF; [65 94, 05, 33]
+
+0691; [65 96, 05, 05]
+FB8D; [65 96, 05, 31]
+FB8C; [65 96, 05, 33]
+
+0692; [65 98, 05, 05]
+
+0693; [65 9A, 05, 05]
+
+0694; [65 9C, 05, 05]
+
+0695; [65 9E, 05, 05]
+
+0696; [65 A0, 05, 05]
+
+0697; [65 A2, 05, 05]
+
+0698; [65 A4, 05, 05]
+FB8B; [65 A4, 05, 31]
+FB8A; [65 A4, 05, 33]
+
+0699; [65 A6, 05, 05]
+
+06EF; [65 A8, 05, 05]
+
+075B; [65 AA, 05, 05]
+
+076B; [65 AC, 05, 05]
+
+076C; [65 AE, 05, 05]
+
+0633; [65 B0, 05, 05]
+FEB3; [65 B0, 05, 2D]
+FEB4; [65 B0, 05, 2F]
+FEB2; [65 B0, 05, 31]
+FEB1; [65 B0, 05, 33]
+FCAD; [65 B0, 05, 2D][65 5C, 05, 2D]
+FD34; [65 B0, 05, 2F][65 5C, 05, 2F]
+FC1C; [65 B0, 05, 33][65 5C, 05, 33]
+FD5D; [65 B0, 05, 2D][65 5C, 05, 2D][65 68, 05, 3D]
+FD5E; [65 B0, 05, 31][65 5C, 05, 31][66 61, 05, 3D]
+FCAE; [65 B0, 05, 2D][65 68, 05, 2D]
+FD35; [65 B0, 05, 2F][65 68, 05, 2F]
+FC1D; [65 B0, 05, 33][65 68, 05, 33]
+FD5C; [65 B0, 05, 2D][65 68, 05, 2D][65 5C, 05, 3D]
+FCAF; [65 B0, 05, 2D][65 6A, 05, 2D]
+FD36; [65 B0, 05, 2F][65 6A, 05, 2F]
+FC1E; [65 B0, 05, 33][65 6A, 05, 33]
+FDA8; [65 B0, 05, 31][65 6A, 05, 31][66 61, 05, 3D]
+FDC6; [65 B0, 05, 31][65 6A, 05, 31][66 63, 05, 3D]
+FD2A; [65 B0, 05, 31][65 92, 05, 31]
+FD0E; [65 B0, 05, 33][65 92, 05, 33]
+FCB0; [65 B0, 05, 2D][66 29, 05, 2D]
+FCE7; [65 B0, 05, 2F][66 29, 05, 2F]
+FC1F; [65 B0, 05, 33][66 29, 05, 33]
+FD61; [65 B0, 05, 2D][66 29, 05, 2D][65 5C, 05, 3D]
+FD60; [65 B0, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD5F; [65 B0, 05, 31][66 29, 05, 31][65 68, 05, 3D]
+FD63; [65 B0, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD62; [65 B0, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FD31; [65 B0, 05, 2D][66 41, 05, 2D]
+FCE8; [65 B0, 05, 2F][66 41, 05, 2F]
+FD17; [65 B0, 05, 31][66 61, 05, 31]
+FCFB; [65 B0, 05, 33][66 61, 05, 33]
+FD18; [65 B0, 05, 31][66 63, 05, 31]
+FCFC; [65 B0, 05, 33][66 63, 05, 33]
+
+0634; [65 B2, 05, 05]
+FEB7; [65 B2, 05, 2D]
+FEB8; [65 B2, 05, 2F]
+FEB6; [65 B2, 05, 31]
+FEB5; [65 B2, 05, 33]
+FD2D; [65 B2, 05, 2D][65 5C, 05, 2D]
+FD37; [65 B2, 05, 2F][65 5C, 05, 2F]
+FD25; [65 B2, 05, 31][65 5C, 05, 31]
+FD09; [65 B2, 05, 33][65 5C, 05, 33]
+FD69; [65 B2, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FD2E; [65 B2, 05, 2D][65 68, 05, 2D]
+FD38; [65 B2, 05, 2F][65 68, 05, 2F]
+FD26; [65 B2, 05, 31][65 68, 05, 31]
+FD0A; [65 B2, 05, 33][65 68, 05, 33]
+FD68; [65 B2, 05, 2D][65 68, 05, 2D][66 29, 05, 3D]
+FD67; [65 B2, 05, 31][65 68, 05, 31][66 29, 05, 3D]
+FDAA; [65 B2, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FD2F; [65 B2, 05, 2D][65 6A, 05, 2D]
+FD39; [65 B2, 05, 2F][65 6A, 05, 2F]
+FD27; [65 B2, 05, 31][65 6A, 05, 31]
+FD0B; [65 B2, 05, 33][65 6A, 05, 33]
+FD29; [65 B2, 05, 31][65 92, 05, 31]
+FD0D; [65 B2, 05, 33][65 92, 05, 33]
+FD30; [65 B2, 05, 2D][66 29, 05, 2D]
+FCE9; [65 B2, 05, 2F][66 29, 05, 2F]
+FD28; [65 B2, 05, 31][66 29, 05, 31]
+FD0C; [65 B2, 05, 33][66 29, 05, 33]
+FD6B; [65 B2, 05, 2D][66 29, 05, 2D][65 6A, 05, 3D]
+FD6A; [65 B2, 05, 31][66 29, 05, 31][65 6A, 05, 3D]
+FD6D; [65 B2, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD6C; [65 B2, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FD32; [65 B2, 05, 2D][66 41, 05, 2D]
+FCEA; [65 B2, 05, 2F][66 41, 05, 2F]
+FD19; [65 B2, 05, 31][66 61, 05, 31]
+FCFD; [65 B2, 05, 33][66 61, 05, 33]
+FD1A; [65 B2, 05, 31][66 63, 05, 31]
+FCFE; [65 B2, 05, 33][66 63, 05, 33]
+
+069A; [65 B4, 05, 05]
+
+069B; [65 B6, 05, 05]
+
+069C; [65 B8, 05, 05]
+
+06FA; [65 BA, 05, 05]
+
+075C; [65 BC, 05, 05]
+
+076D; [65 BE, 05, 05]
+
+0635; [65 C0, 05, 05]
+FEBB; [65 C0, 05, 2D]
+FEBC; [65 C0, 05, 2F]
+FEBA; [65 C0, 05, 31]
+FEB9; [65 C0, 05, 33]
+FCB1; [65 C0, 05, 2D][65 68, 05, 2D]
+FC20; [65 C0, 05, 33][65 68, 05, 33]
+FD65; [65 C0, 05, 2D][65 68, 05, 2D][65 68, 05, 3D]
+FD64; [65 C0, 05, 31][65 68, 05, 31][65 68, 05, 3D]
+FDA9; [65 C0, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCB2; [65 C0, 05, 2D][65 6A, 05, 2D]
+FD2B; [65 C0, 05, 31][65 92, 05, 31]
+FD0F; [65 C0, 05, 33][65 92, 05, 33]
+FDF5; [65 C0, 05, 33][66 1D, 05, 33][65 D0, 05, 3D][66 29, 05, 3D]
+FDF9; [65 C0, 05, 33][66 1D, 05, 33][66 61, 05, 3D]
+FDFA; [65 C0, 05, 33][66 1D, 05, 33][66 61, 05, 3D][06, 05, 3D][65 32, 05, 3D][66 1D, 05, 3D][66 1D, 05, 3D][66 41, 05, 3D][06, 05, 3D][65 D0, 05, 3D][66 1D, 05, 3D][66 63, 05, 3D][66 41, 05, 3D][06, 05, 3D][66 4D, 05, 3D][65 B0, 05, 3D][66 1D, 05, 3D][66 29, 05, 3D]
+FDF0; [65 C0, 05, 33][66 1D, 05, 33][66 6F, 05, 3D]
+FCB3; [65 C0, 05, 2D][66 29, 05, 2D]
+FC21; [65 C0, 05, 33][66 29, 05, 33]
+FDC5; [65 C0, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD66; [65 C0, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FD21; [65 C0, 05, 31][66 61, 05, 31]
+FD05; [65 C0, 05, 33][66 61, 05, 33]
+FD22; [65 C0, 05, 31][66 63, 05, 31]
+FD06; [65 C0, 05, 33][66 63, 05, 33]
+
+0636; [65 C2, 05, 05]
+FEBF; [65 C2, 05, 2D]
+FEC0; [65 C2, 05, 2F]
+FEBE; [65 C2, 05, 31]
+FEBD; [65 C2, 05, 33]
+FCB4; [65 C2, 05, 2D][65 5C, 05, 2D]
+FC22; [65 C2, 05, 33][65 5C, 05, 33]
+FCB5; [65 C2, 05, 2D][65 68, 05, 2D]
+FC23; [65 C2, 05, 33][65 68, 05, 33]
+FD6E; [65 C2, 05, 31][65 68, 05, 31][66 61, 05, 3D]
+FDAB; [65 C2, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCB6; [65 C2, 05, 2D][65 6A, 05, 2D]
+FC24; [65 C2, 05, 33][65 6A, 05, 33]
+FD70; [65 C2, 05, 2D][65 6A, 05, 2D][66 29, 05, 3D]
+FD6F; [65 C2, 05, 31][65 6A, 05, 31][66 29, 05, 3D]
+FD2C; [65 C2, 05, 31][65 92, 05, 31]
+FD10; [65 C2, 05, 33][65 92, 05, 33]
+FCB7; [65 C2, 05, 2D][66 29, 05, 2D]
+FC25; [65 C2, 05, 33][66 29, 05, 33]
+FD23; [65 C2, 05, 31][66 61, 05, 31]
+FD07; [65 C2, 05, 33][66 61, 05, 33]
+FD24; [65 C2, 05, 31][66 63, 05, 31]
+FD08; [65 C2, 05, 33][66 63, 05, 33]
+
+069D; [65 C4, 05, 05]
+
+069E; [65 C6, 05, 05]
+
+06FB; [65 C8, 05, 05]
+
+0637; [65 CA, 05, 05]
+FEC3; [65 CA, 05, 2D]
+FEC4; [65 CA, 05, 2F]
+FEC2; [65 CA, 05, 31]
+FEC1; [65 CA, 05, 33]
+FCB8; [65 CA, 05, 2D][65 68, 05, 2D]
+FC26; [65 CA, 05, 33][65 68, 05, 33]
+FD33; [65 CA, 05, 2D][66 29, 05, 2D]
+FD3A; [65 CA, 05, 2F][66 29, 05, 2F]
+FC27; [65 CA, 05, 33][66 29, 05, 33]
+FD72; [65 CA, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD71; [65 CA, 05, 31][66 29, 05, 31][65 68, 05, 3D]
+FD73; [65 CA, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD74; [65 CA, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FD11; [65 CA, 05, 31][66 61, 05, 31]
+FCF5; [65 CA, 05, 33][66 61, 05, 33]
+FD12; [65 CA, 05, 31][66 63, 05, 31]
+FCF6; [65 CA, 05, 33][66 63, 05, 33]
+
+0638; [65 CC, 05, 05]
+FEC7; [65 CC, 05, 2D]
+FEC8; [65 CC, 05, 2F]
+FEC6; [65 CC, 05, 31]
+FEC5; [65 CC, 05, 33]
+FCB9; [65 CC, 05, 2D][66 29, 05, 2D]
+FD3B; [65 CC, 05, 2F][66 29, 05, 2F]
+FC28; [65 CC, 05, 33][66 29, 05, 33]
+
+069F; [65 CE, 05, 05]
+
+0639; [65 D0, 05, 05]
+FECB; [65 D0, 05, 2D]
+FECC; [65 D0, 05, 2F]
+FECA; [65 D0, 05, 31]
+FEC9; [65 D0, 05, 33]
+FCBA; [65 D0, 05, 2D][65 5C, 05, 2D]
+FC29; [65 D0, 05, 33][65 5C, 05, 33]
+FDC4; [65 D0, 05, 2D][65 5C, 05, 2D][66 29, 05, 3D]
+FD75; [65 D0, 05, 31][65 5C, 05, 31][66 29, 05, 3D]
+FDF7; [65 D0, 05, 33][66 1D, 05, 33][66 63, 05, 3D][66 41, 05, 3D]
+FCBB; [65 D0, 05, 2D][66 29, 05, 2D]
+FC2A; [65 D0, 05, 33][66 29, 05, 33]
+FD77; [65 D0, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD76; [65 D0, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FD78; [65 D0, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FDB6; [65 D0, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FD13; [65 D0, 05, 31][66 61, 05, 31]
+FCF7; [65 D0, 05, 33][66 61, 05, 33]
+FD14; [65 D0, 05, 31][66 63, 05, 31]
+FCF8; [65 D0, 05, 33][66 63, 05, 33]
+
+063A; [65 D2, 05, 05]
+FECF; [65 D2, 05, 2D]
+FED0; [65 D2, 05, 2F]
+FECE; [65 D2, 05, 31]
+FECD; [65 D2, 05, 33]
+FCBC; [65 D2, 05, 2D][65 5C, 05, 2D]
+FC2B; [65 D2, 05, 33][65 5C, 05, 33]
+FCBD; [65 D2, 05, 2D][66 29, 05, 2D]
+FC2C; [65 D2, 05, 33][66 29, 05, 33]
+FD79; [65 D2, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FD7B; [65 D2, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FD7A; [65 D2, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FD15; [65 D2, 05, 31][66 61, 05, 31]
+FCF9; [65 D2, 05, 33][66 61, 05, 33]
+FD16; [65 D2, 05, 31][66 63, 05, 31]
+FCFA; [65 D2, 05, 33][66 63, 05, 33]
+
+06A0; [65 D4, 05, 05]
+
+06FC; [65 D6, 05, 05]
+
+075D; [65 D8, 05, 05]
+
+075E; [65 DA, 05, 05]
+
+075F; [65 DC, 05, 05]
+
+0641; [65 DE, 05, 05]
+FED3; [65 DE, 05, 2D]
+FED4; [65 DE, 05, 2F]
+FED2; [65 DE, 05, 31]
+FED1; [65 DE, 05, 33]
+FCBE; [65 DE, 05, 2D][65 5C, 05, 2D]
+FC2D; [65 DE, 05, 33][65 5C, 05, 33]
+FCBF; [65 DE, 05, 2D][65 68, 05, 2D]
+FC2E; [65 DE, 05, 33][65 68, 05, 33]
+FCC0; [65 DE, 05, 2D][65 6A, 05, 2D]
+FC2F; [65 DE, 05, 33][65 6A, 05, 33]
+FD7D; [65 DE, 05, 2D][65 6A, 05, 2D][66 29, 05, 3D]
+FD7C; [65 DE, 05, 31][65 6A, 05, 31][66 29, 05, 3D]
+FCC1; [65 DE, 05, 2D][66 29, 05, 2D]
+FC30; [65 DE, 05, 33][66 29, 05, 33]
+FDC1; [65 DE, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC7C; [65 DE, 05, 31][66 61, 05, 31]
+FC31; [65 DE, 05, 33][66 61, 05, 33]
+FC7D; [65 DE, 05, 31][66 63, 05, 31]
+FC32; [65 DE, 05, 33][66 63, 05, 33]
+
+06A1; [65 E0, 05, 05]
+
+06A2; [65 E2, 05, 05]
+
+06A3; [65 E4, 05, 05]
+
+06A4; [65 E6, 05, 05]
+FB6C; [65 E6, 05, 2D]
+FB6D; [65 E6, 05, 2F]
+FB6B; [65 E6, 05, 31]
+FB6A; [65 E6, 05, 33]
+
+06A5; [65 E8, 05, 05]
+
+06A6; [65 EA, 05, 05]
+FB70; [65 EA, 05, 2D]
+FB71; [65 EA, 05, 2F]
+FB6F; [65 EA, 05, 31]
+FB6E; [65 EA, 05, 33]
+
+0760; [65 EC, 05, 05]
+
+0761; [65 EE, 05, 05]
+
+066F; [65 F0, 05, 05]
+
+0642; [65 F2, 05, 05]
+FED7; [65 F2, 05, 2D]
+FED8; [65 F2, 05, 2F]
+FED6; [65 F2, 05, 31]
+FED5; [65 F2, 05, 33]
+FCC2; [65 F2, 05, 2D][65 68, 05, 2D]
+FC33; [65 F2, 05, 33][65 68, 05, 33]
+FDF1; [65 F2, 05, 33][66 1D, 05, 33][66 6F, 05, 3D]
+FCC3; [65 F2, 05, 2D][66 29, 05, 2D]
+FC34; [65 F2, 05, 33][66 29, 05, 33]
+FDB4; [65 F2, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD7E; [65 F2, 05, 31][66 29, 05, 31][65 68, 05, 3D]
+FD7F; [65 F2, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FDB2; [65 F2, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC7E; [65 F2, 05, 31][66 61, 05, 31]
+FC35; [65 F2, 05, 33][66 61, 05, 33]
+FC7F; [65 F2, 05, 31][66 63, 05, 31]
+FC36; [65 F2, 05, 33][66 63, 05, 33]
+
+06A7; [65 F4, 05, 05]
+
+06A8; [65 F6, 05, 05]
+
+0643; [65 F8, 05, 05]
+FEDB; [65 F8, 05, 2D]
+FEDC; [65 F8, 05, 2F]
+FEDA; [65 F8, 05, 31]
+FED9; [65 F8, 05, 33]
+FC80; [65 F8, 05, 31][65 32, 05, 31]
+FC37; [65 F8, 05, 33][65 32, 05, 33]
+FCC4; [65 F8, 05, 2D][65 5C, 05, 2D]
+FC38; [65 F8, 05, 33][65 5C, 05, 33]
+FCC5; [65 F8, 05, 2D][65 68, 05, 2D]
+FC39; [65 F8, 05, 33][65 68, 05, 33]
+FCC6; [65 F8, 05, 2D][65 6A, 05, 2D]
+FC3A; [65 F8, 05, 33][65 6A, 05, 33]
+FCC7; [65 F8, 05, 2D][66 1D, 05, 2D]
+FCEB; [65 F8, 05, 2F][66 1D, 05, 2F]
+FC81; [65 F8, 05, 31][66 1D, 05, 31]
+FC3B; [65 F8, 05, 33][66 1D, 05, 33]
+FCC8; [65 F8, 05, 2D][66 29, 05, 2D]
+FCEC; [65 F8, 05, 2F][66 29, 05, 2F]
+FC82; [65 F8, 05, 31][66 29, 05, 31]
+FC3C; [65 F8, 05, 33][66 29, 05, 33]
+FDC3; [65 F8, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FDBB; [65 F8, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FDB7; [65 F8, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC83; [65 F8, 05, 31][66 61, 05, 31]
+FC3D; [65 F8, 05, 33][66 61, 05, 33]
+FC84; [65 F8, 05, 31][66 63, 05, 31]
+FC3E; [65 F8, 05, 33][66 63, 05, 33]
+
+06A9; [65 FA, 05, 05]
+FB90; [65 FA, 05, 2D]
+FB91; [65 FA, 05, 2F]
+FB8F; [65 FA, 05, 31]
+FB8E; [65 FA, 05, 33]
+
+06AA; [65 FC, 05, 05]
+
+06AB; [65 FE, 05, 05]
+
+06AC; [66 05, 05, 05]
+
+06AD; [66 07, 05, 05]
+FBD5; [66 07, 05, 2D]
+FBD6; [66 07, 05, 2F]
+FBD4; [66 07, 05, 31]
+FBD3; [66 07, 05, 33]
+
+06AE; [66 09, 05, 05]
+
+06AF; [66 0B, 05, 05]
+FB94; [66 0B, 05, 2D]
+FB95; [66 0B, 05, 2F]
+FB93; [66 0B, 05, 31]
+FB92; [66 0B, 05, 33]
+
+06B0; [66 0D, 05, 05]
+
+06B1; [66 0F, 05, 05]
+FB9C; [66 0F, 05, 2D]
+FB9D; [66 0F, 05, 2F]
+FB9B; [66 0F, 05, 31]
+FB9A; [66 0F, 05, 33]
+
+06B2; [66 11, 05, 05]
+
+06B3; [66 13, 05, 05]
+FB98; [66 13, 05, 2D]
+FB99; [66 13, 05, 2F]
+FB97; [66 13, 05, 31]
+FB96; [66 13, 05, 33]
+
+06B4; [66 15, 05, 05]
+
+0762; [66 17, 05, 05]
+
+0763; [66 19, 05, 05]
+
+0764; [66 1B, 05, 05]
+
+0644; [66 1D, 05, 05]
+FEDF; [66 1D, 05, 2D]
+FEE0; [66 1D, 05, 2F]
+FEDE; [66 1D, 05, 31]
+FEDD; [66 1D, 05, 33]
+FEF6; [66 1D, 05, 31][65 22, 05, 31]
+FEF5; [66 1D, 05, 33][65 22, 05, 33]
+FEF8; [66 1D, 05, 31][65 24, 05, 31]
+FEF7; [66 1D, 05, 33][65 24, 05, 33]
+FEFA; [66 1D, 05, 31][65 2C, 05, 31]
+FEF9; [66 1D, 05, 33][65 2C, 05, 33]
+FEFC; [66 1D, 05, 31][65 32, 05, 31]
+FEFB; [66 1D, 05, 33][65 32, 05, 33]
+FCC9; [66 1D, 05, 2D][65 5C, 05, 2D]
+FC3F; [66 1D, 05, 33][65 5C, 05, 33]
+FD83; [66 1D, 05, 2D][65 5C, 05, 2D][65 5C, 05, 3D]
+FD84; [66 1D, 05, 31][65 5C, 05, 31][65 5C, 05, 3D]
+FDBA; [66 1D, 05, 2D][65 5C, 05, 2D][66 29, 05, 3D]
+FDBC; [66 1D, 05, 31][65 5C, 05, 31][66 29, 05, 3D]
+FDAC; [66 1D, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCCA; [66 1D, 05, 2D][65 68, 05, 2D]
+FC40; [66 1D, 05, 33][65 68, 05, 33]
+FDB5; [66 1D, 05, 2D][65 68, 05, 2D][66 29, 05, 3D]
+FD80; [66 1D, 05, 31][65 68, 05, 31][66 29, 05, 3D]
+FD82; [66 1D, 05, 31][65 68, 05, 31][66 61, 05, 3D]
+FD81; [66 1D, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCCB; [66 1D, 05, 2D][65 6A, 05, 2D]
+FC41; [66 1D, 05, 33][65 6A, 05, 33]
+FD86; [66 1D, 05, 2D][65 6A, 05, 2D][66 29, 05, 3D]
+FD85; [66 1D, 05, 31][65 6A, 05, 31][66 29, 05, 3D]
+FCCC; [66 1D, 05, 2D][66 29, 05, 2D]
+FCED; [66 1D, 05, 2F][66 29, 05, 2F]
+FC85; [66 1D, 05, 31][66 29, 05, 31]
+FC42; [66 1D, 05, 33][66 29, 05, 33]
+FD88; [66 1D, 05, 2D][66 29, 05, 2D][65 68, 05, 3D]
+FD87; [66 1D, 05, 31][66 29, 05, 31][65 68, 05, 3D]
+FDAD; [66 1D, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FCCD; [66 1D, 05, 2D][66 41, 05, 2D]
+FC86; [66 1D, 05, 31][66 61, 05, 31]
+FC43; [66 1D, 05, 33][66 61, 05, 33]
+FC87; [66 1D, 05, 31][66 63, 05, 31]
+FC44; [66 1D, 05, 33][66 63, 05, 33]
+
+06B5; [66 1F, 05, 05]
+
+06B6; [66 21, 05, 05]
+
+06B7; [66 23, 05, 05]
+
+06B8; [66 25, 05, 05]
+
+076A; [66 27, 05, 05]
+
+0645; [66 29, 05, 05]
+FEE3; [66 29, 05, 2D]
+FEE4; [66 29, 05, 2F]
+FEE2; [66 29, 05, 31]
+FEE1; [66 29, 05, 33]
+06FE; [66 29, 05, 09][, E4 5D, 09]
+FC88; [66 29, 05, 31][65 32, 05, 31]
+FCCE; [66 29, 05, 2D][65 5C, 05, 2D]
+FC45; [66 29, 05, 33][65 5C, 05, 33]
+FD8C; [66 29, 05, 2D][65 5C, 05, 2D][65 68, 05, 3D]
+FD92; [66 29, 05, 2D][65 5C, 05, 2D][65 6A, 05, 3D]
+FD8D; [66 29, 05, 2D][65 5C, 05, 2D][66 29, 05, 3D]
+FDC0; [66 29, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCCF; [66 29, 05, 2D][65 68, 05, 2D]
+FC46; [66 29, 05, 33][65 68, 05, 33]
+FD89; [66 29, 05, 2D][65 68, 05, 2D][65 5C, 05, 3D]
+FD8A; [66 29, 05, 2D][65 68, 05, 2D][66 29, 05, 3D]
+FDF4; [66 29, 05, 33][65 68, 05, 33][66 29, 05, 3D][65 76, 05, 3D]
+FD8B; [66 29, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCD0; [66 29, 05, 2D][65 6A, 05, 2D]
+FC47; [66 29, 05, 33][65 6A, 05, 33]
+FD8E; [66 29, 05, 2D][65 6A, 05, 2D][65 5C, 05, 3D]
+FD8F; [66 29, 05, 2D][65 6A, 05, 2D][66 29, 05, 3D]
+FDB9; [66 29, 05, 31][65 6A, 05, 31][66 63, 05, 3D]
+FCD1; [66 29, 05, 2D][66 29, 05, 2D]
+FC89; [66 29, 05, 31][66 29, 05, 31]
+FC48; [66 29, 05, 33][66 29, 05, 33]
+FDB1; [66 29, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC49; [66 29, 05, 33][66 61, 05, 33]
+FC4A; [66 29, 05, 33][66 63, 05, 33]
+
+0765; [66 2B, 05, 05]
+
+0766; [66 2D, 05, 05]
+
+0646; [66 2F, 05, 05]
+FEE7; [66 2F, 05, 2D]
+FEE8; [66 2F, 05, 2F]
+FEE6; [66 2F, 05, 31]
+FEE5; [66 2F, 05, 33]
+FCD2; [66 2F, 05, 2D][65 5C, 05, 2D]
+FC4B; [66 2F, 05, 33][65 5C, 05, 33]
+FDB8; [66 2F, 05, 2D][65 5C, 05, 2D][65 68, 05, 3D]
+FDBD; [66 2F, 05, 31][65 5C, 05, 31][65 68, 05, 3D]
+FD98; [66 2F, 05, 2D][65 5C, 05, 2D][66 29, 05, 3D]
+FD97; [66 2F, 05, 31][65 5C, 05, 31][66 29, 05, 3D]
+FD99; [66 2F, 05, 31][65 5C, 05, 31][66 61, 05, 3D]
+FDC7; [66 2F, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCD3; [66 2F, 05, 2D][65 68, 05, 2D]
+FC4C; [66 2F, 05, 33][65 68, 05, 33]
+FD95; [66 2F, 05, 2D][65 68, 05, 2D][66 29, 05, 3D]
+FD96; [66 2F, 05, 31][65 68, 05, 31][66 61, 05, 3D]
+FDB3; [66 2F, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCD4; [66 2F, 05, 2D][65 6A, 05, 2D]
+FC4D; [66 2F, 05, 33][65 6A, 05, 33]
+FC8A; [66 2F, 05, 31][65 92, 05, 31]
+FC8B; [66 2F, 05, 31][65 94, 05, 31]
+FCD5; [66 2F, 05, 2D][66 29, 05, 2D]
+FCEE; [66 2F, 05, 2F][66 29, 05, 2F]
+FC8C; [66 2F, 05, 31][66 29, 05, 31]
+FC4E; [66 2F, 05, 33][66 29, 05, 33]
+FD9B; [66 2F, 05, 31][66 29, 05, 31][66 61, 05, 3D]
+FD9A; [66 2F, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC8D; [66 2F, 05, 31][66 2F, 05, 31]
+FCD6; [66 2F, 05, 2D][66 41, 05, 2D]
+FCEF; [66 2F, 05, 2F][66 41, 05, 2F]
+FC8E; [66 2F, 05, 31][66 61, 05, 31]
+FC4F; [66 2F, 05, 33][66 61, 05, 33]
+FC8F; [66 2F, 05, 31][66 63, 05, 31]
+FC50; [66 2F, 05, 33][66 63, 05, 33]
+
+06BA; [66 31, 05, 05]
+FB9F; [66 31, 05, 31]
+FB9E; [66 31, 05, 33]
+
+06BB; [66 33, 05, 05]
+FBA2; [66 33, 05, 2D]
+FBA3; [66 33, 05, 2F]
+FBA1; [66 33, 05, 31]
+FBA0; [66 33, 05, 33]
+
+06BC; [66 35, 05, 05]
+
+06BD; [66 37, 05, 05]
+
+06B9; [66 39, 05, 05]
+
+0767; [66 3B, 05, 05]
+
+0768; [66 3D, 05, 05]
+
+0769; [66 3F, 05, 05]
+
+0647; [66 41, 05, 05]
+FEEB; [66 41, 05, 2D]
+FEEC; [66 41, 05, 2F]
+FEEA; [66 41, 05, 31]
+FEE9; [66 41, 05, 33]
+FCD9; [66 41, 05, 2D][, D7 39, 2D]
+FCD7; [66 41, 05, 2D][65 5C, 05, 2D]
+FC51; [66 41, 05, 33][65 5C, 05, 33]
+FCD8; [66 41, 05, 2D][66 29, 05, 2D]
+FC52; [66 41, 05, 33][66 29, 05, 33]
+FD93; [66 41, 05, 2D][66 29, 05, 2D][65 5C, 05, 3D]
+FD94; [66 41, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FC53; [66 41, 05, 33][66 61, 05, 33]
+FC54; [66 41, 05, 33][66 63, 05, 33]
+
+06BE; [66 43, 05, 05]
+FBAC; [66 43, 05, 2D]
+FBAD; [66 43, 05, 2F]
+FBAB; [66 43, 05, 31]
+FBAA; [66 43, 05, 33]
+
+06C1; [66 45, 05, 05]
+FBA8; [66 45, 05, 2D]
+FBA9; [66 45, 05, 2F]
+FBA7; [66 45, 05, 31]
+FBA6; [66 45, 05, 33]
+06C2; [66 45, 05, 05][, D6 85, 05]
+
+06C3; [66 47, 05, 05]
+
+06FF; [66 49, 05, 05]
+
+06D5; [66 4B, 05, 05]
+06C0; [66 4B, 05, 05][, D6 85, 05]
+FBA5; [66 4B, 05, 31][, D6 85, 31]
+FBA4; [66 4B, 05, 33][, D6 85, 33]
+
+0648; [66 4D, 05, 05]
+06E5; [66 4D, 05, 09]
+FEEE; [66 4D, 05, 31]
+FEED; [66 4D, 05, 33]
+0676; [66 4D, 05, 09][65 20, 05, 09]
+FDF8; [66 4D, 05, 33][65 B0, 05, 33][66 1D, 05, 3D][66 29, 05, 3D]
+
+06C4; [66 4F, 05, 05]
+
+06C5; [66 51, 05, 05]
+FBE1; [66 51, 05, 31]
+FBE0; [66 51, 05, 33]
+
+06C6; [66 53, 05, 05]
+FBDA; [66 53, 05, 31]
+FBD9; [66 53, 05, 33]
+
+06C7; [66 55, 05, 05]
+FBD8; [66 55, 05, 31]
+FBD7; [66 55, 05, 33]
+0677; [66 55, 05, 09][65 20, 05, 09]
+FBDD; [66 55, 05, 33][65 20, 05, 33]
+
+06C8; [66 57, 05, 05]
+FBDC; [66 57, 05, 31]
+FBDB; [66 57, 05, 33]
+
+06C9; [66 59, 05, 05]
+FBE3; [66 59, 05, 31]
+FBE2; [66 59, 05, 33]
+
+06CA; [66 5B, 05, 05]
+
+06CB; [66 5D, 05, 05]
+FBDF; [66 5D, 05, 31]
+FBDE; [66 5D, 05, 33]
+
+06CF; [66 5F, 05, 05]
+
+0649; [66 61, 05, 05]
+FBE8; [66 61, 05, 2D]
+FBE9; [66 61, 05, 2F]
+FEF0; [66 61, 05, 31]
+FEEF; [66 61, 05, 33]
+FC90; [66 61, 05, 31][, D7 39, 31]
+FC5D; [66 61, 05, 33][, D7 39, 33]
+
+064A; [66 63, 05, 05]
+06E6; [66 63, 05, 09]
+FEF3; [66 63, 05, 2D]
+FEF4; [66 63, 05, 2F]
+FEF2; [66 63, 05, 31]
+FEF1; [66 63, 05, 33]
+0678; [66 63, 05, 09][65 20, 05, 09]
+FCDA; [66 63, 05, 2D][65 5C, 05, 2D]
+FC55; [66 63, 05, 33][65 5C, 05, 33]
+FDAF; [66 63, 05, 31][65 5C, 05, 31][66 63, 05, 3D]
+FCDB; [66 63, 05, 2D][65 68, 05, 2D]
+FC56; [66 63, 05, 33][65 68, 05, 33]
+FDAE; [66 63, 05, 31][65 68, 05, 31][66 63, 05, 3D]
+FCDC; [66 63, 05, 2D][65 6A, 05, 2D]
+FC57; [66 63, 05, 33][65 6A, 05, 33]
+FC91; [66 63, 05, 31][65 92, 05, 31]
+FC92; [66 63, 05, 31][65 94, 05, 31]
+FCDD; [66 63, 05, 2D][66 29, 05, 2D]
+FCF0; [66 63, 05, 2F][66 29, 05, 2F]
+FC93; [66 63, 05, 31][66 29, 05, 31]
+FC58; [66 63, 05, 33][66 29, 05, 33]
+FD9D; [66 63, 05, 2D][66 29, 05, 2D][66 29, 05, 3D]
+FD9C; [66 63, 05, 31][66 29, 05, 31][66 29, 05, 3D]
+FDB0; [66 63, 05, 31][66 29, 05, 31][66 63, 05, 3D]
+FC94; [66 63, 05, 31][66 2F, 05, 31]
+FCDE; [66 63, 05, 2D][66 41, 05, 2D]
+FCF1; [66 63, 05, 2F][66 41, 05, 2F]
+FC95; [66 63, 05, 31][66 61, 05, 31]
+FC59; [66 63, 05, 33][66 61, 05, 33]
+FC96; [66 63, 05, 31][66 63, 05, 31]
+FC5A; [66 63, 05, 33][66 63, 05, 33]
-2D5E; [68 7C, 05, 05]
+06CC; [66 65, 05, 05]
+FBFE; [66 65, 05, 2D]
+FBFF; [66 65, 05, 2F]
+FBFD; [66 65, 05, 31]
+FBFC; [66 65, 05, 33]
-2D5F; [68 7E, 05, 05]
+06CD; [66 67, 05, 05]
-2D60; [68 80, 05, 05]
+06CE; [66 69, 05, 05]
-2D61; [68 82, 05, 05]
-2D6F; [68 82, 05, 27]
+06D0; [66 6B, 05, 05]
+FBE6; [66 6B, 05, 2D]
+FBE7; [66 6B, 05, 2F]
+FBE5; [66 6B, 05, 31]
+FBE4; [66 6B, 05, 33]
-2D62; [68 84, 05, 05]
+06D1; [66 6D, 05, 05]
-2D63; [68 86, 05, 05]
+06D2; [66 6F, 05, 05]
+FBAF; [66 6F, 05, 31]
+FBAE; [66 6F, 05, 33]
+06D3; [66 6F, 05, 05][, D6 85, 05]
+FBB1; [66 6F, 05, 31][, D6 85, 31]
+FBB0; [66 6F, 05, 33][, D6 85, 33]
-2D64; [68 88, 05, 05]
+0710; [67 20, 05, 05]
-2D65; [68 8A, 05, 05]
+0712; [67 22, 05, 05]
+072D; [67 22, 05, 09][, E4 6D, 09]
-1200; [69 20, 05, 05]
+0713; [67 24, 05, 05]
+0714; [67 24, 05, 09][, E4 5D, 09]
+072E; [67 24, 05, 09][, E4 6D, 09]
-1201; [69 22, 05, 05]
+0716; [67 26, 05, 05]
-1202; [69 24, 05, 05]
+0715; [67 28, 05, 05]
+072F; [67 28, 05, 09][, E4 6D, 09]
-1203; [69 26, 05, 05]
+0717; [67 2A, 05, 05]
-1204; [69 28, 05, 05]
+0718; [67 2C, 05, 05]
-1205; [69 2A, 05, 05]
+0719; [67 2E, 05, 05]
-1206; [69 2C, 05, 05]
+074D; [67 30, 05, 05]
-1207; [69 2E, 05, 05]
+071A; [67 32, 05, 05]
-1208; [69 30, 05, 05]
+071B; [67 34, 05, 05]
+071C; [67 34, 05, 09][, E4 5D, 09]
-1209; [69 32, 05, 05]
+071D; [67 36, 05, 05]
-120A; [69 34, 05, 05]
+071E; [67 38, 05, 05]
-120B; [69 36, 05, 05]
+071F; [67 3A, 05, 05]
-120C; [69 38, 05, 05]
+074E; [67 3C, 05, 05]
-120D; [69 3A, 05, 05]
+0720; [67 3E, 05, 05]
-120E; [69 3C, 05, 05]
+0721; [67 40, 05, 05]
-120F; [69 3E, 05, 05]
+0722; [67 42, 05, 05]
-2D80; [69 40, 05, 05]
+0723; [67 44, 05, 05]
+0724; [67 44, 05, 31]
-1210; [69 42, 05, 05]
+0725; [67 46, 05, 05]
-1211; [69 44, 05, 05]
+0726; [67 48, 05, 05]
+0727; [67 48, 05, 09][, E4 5D, 09]
-1212; [69 46, 05, 05]
+074F; [67 4A, 05, 05]
-1213; [69 48, 05, 05]
+0728; [67 4C, 05, 05]
-1214; [69 4A, 05, 05]
+0729; [67 4E, 05, 05]
-1215; [69 4C, 05, 05]
+072A; [67 50, 05, 05]
-1216; [69 4E, 05, 05]
+072B; [67 52, 05, 05]
-1217; [69 50, 05, 05]
+072C; [67 54, 05, 05]
-1218; [69 52, 05, 05]
+0780; [68 20, 05, 05]
-1219; [69 54, 05, 05]
+0799; [68 22, 05, 05]
-121A; [69 56, 05, 05]
+079A; [68 24, 05, 05]
-121B; [69 58, 05, 05]
+0781; [68 26, 05, 05]
-121C; [69 5A, 05, 05]
+0782; [68 28, 05, 05]
-121D; [69 5C, 05, 05]
+0783; [68 2A, 05, 05]
-121E; [69 5E, 05, 05]
+079C; [68 2C, 05, 05]
-121F; [69 60, 05, 05]
+0784; [68 2E, 05, 05]
-1380; [69 62, 05, 05]
+0785; [68 30, 05, 05]
-1381; [69 64, 05, 05]
+0786; [68 32, 05, 05]
-1382; [69 66, 05, 05]
+0787; [68 34, 05, 05]
-1383; [69 68, 05, 05]
+07A2; [68 36, 05, 05]
-2D81; [69 6A, 05, 05]
+07A3; [68 38, 05, 05]
-1220; [69 6C, 05, 05]
+0788; [68 3A, 05, 05]
-1221; [69 6E, 05, 05]
+07A5; [68 3C, 05, 05]
-1222; [69 70, 05, 05]
+0789; [68 3E, 05, 05]
-1223; [69 72, 05, 05]
+078A; [68 40, 05, 05]
-1224; [69 74, 05, 05]
+078B; [68 42, 05, 05]
-1225; [69 76, 05, 05]
+079B; [68 44, 05, 05]
-1226; [69 78, 05, 05]
+078C; [68 46, 05, 05]
-1227; [69 7A, 05, 05]
+0798; [68 48, 05, 05]
-1228; [69 7C, 05, 05]
+07A0; [68 4A, 05, 05]
-1229; [69 7E, 05, 05]
+07A1; [68 4C, 05, 05]
-122A; [69 80, 05, 05]
+078D; [68 4E, 05, 05]
-122B; [69 82, 05, 05]
+078E; [68 50, 05, 05]
-122C; [69 84, 05, 05]
+07A4; [68 52, 05, 05]
-122D; [69 86, 05, 05]
+078F; [68 54, 05, 05]
-122E; [69 88, 05, 05]
+0790; [68 56, 05, 05]
-122F; [69 8A, 05, 05]
+079D; [68 58, 05, 05]
-2D82; [69 8C, 05, 05]
+079E; [68 5A, 05, 05]
-1230; [69 8E, 05, 05]
+079F; [68 5C, 05, 05]
-1231; [69 90, 05, 05]
+0791; [68 5E, 05, 05]
-1232; [69 92, 05, 05]
+0792; [68 60, 05, 05]
-1233; [69 94, 05, 05]
+0793; [68 62, 05, 05]
-1234; [69 96, 05, 05]
+0794; [68 64, 05, 05]
-1235; [69 98, 05, 05]
+0795; [68 66, 05, 05]
-1236; [69 9A, 05, 05]
+0796; [68 68, 05, 05]
-1237; [69 9C, 05, 05]
+0797; [68 6A, 05, 05]
-2D83; [69 9E, 05, 05]
+07B1; [68 6C, 05, 05]
-1238; [69 A0, 05, 05]
+07A6; [68 6E, 05, 05]
-1239; [69 A2, 05, 05]
+07A7; [68 70, 05, 05]
-123A; [69 A4, 05, 05]
+07A8; [68 72, 05, 05]
-123B; [69 A6, 05, 05]
+07A9; [68 74, 05, 05]
-123C; [69 A8, 05, 05]
+07AA; [68 76, 05, 05]
-123D; [69 AA, 05, 05]
+07AB; [68 78, 05, 05]
-123E; [69 AC, 05, 05]
+07AC; [68 7A, 05, 05]
-123F; [69 AE, 05, 05]
+07AD; [68 7C, 05, 05]
-2D84; [69 B0, 05, 05]
+07AE; [68 7E, 05, 05]
-1240; [69 B2, 05, 05]
+07AF; [68 80, 05, 05]
-1241; [69 B4, 05, 05]
+07B0; [68 82, 05, 05]
-1242; [69 B6, 05, 05]
+07CA; [69 20, 05, 05]
-1243; [69 B8, 05, 05]
+07CB; [69 22, 05, 05]
-1244; [69 BA, 05, 05]
+07CC; [69 24, 05, 05]
-1245; [69 BC, 05, 05]
+07CD; [69 26, 05, 05]
-1246; [69 BE, 05, 05]
+07CE; [69 28, 05, 05]
-1247; [69 C0, 05, 05]
+07CF; [69 2A, 05, 05]
-1248; [69 C2, 05, 05]
+07D0; [69 2C, 05, 05]
-124A; [69 C4, 05, 05]
+07D1; [69 2E, 05, 05]
-124B; [69 C6, 05, 05]
+07D2; [69 30, 05, 05]
-124C; [69 C8, 05, 05]
+07D3; [69 32, 05, 05]
-124D; [69 CA, 05, 05]
+07D4; [69 34, 05, 05]
-1250; [69 CC, 05, 05]
+07D5; [69 36, 05, 05]
-1251; [69 CE, 05, 05]
+07D6; [69 38, 05, 05]
+07E8; [69 38, 05, 09][, E4 4D, 09]
-1252; [69 D0, 05, 05]
+07D7; [69 3A, 05, 05]
+07E9; [69 3A, 05, 09][, E4 4D, 09]
-1253; [69 D2, 05, 05]
+07D8; [69 3C, 05, 05]
-1254; [69 D4, 05, 05]
+07D9; [69 3E, 05, 05]
+07EA; [69 3E, 05, 09][, E4 4D, 09]
-1255; [69 D6, 05, 05]
+07DA; [69 40, 05, 05]
-1256; [69 D8, 05, 05]
+07DB; [69 42, 05, 05]
-1258; [69 DA, 05, 05]
+07DC; [69 44, 05, 05]
-125A; [69 DC, 05, 05]
+07DD; [69 46, 05, 05]
-125B; [69 DE, 05, 05]
+07DE; [69 48, 05, 05]
-125C; [69 E0, 05, 05]
+07DF; [69 4A, 05, 05]
-125D; [69 E2, 05, 05]
+07E0; [69 4C, 05, 05]
-1260; [69 E4, 05, 05]
+07E1; [69 4E, 05, 05]
-1261; [69 E6, 05, 05]
+07E2; [69 50, 05, 05]
-1262; [69 E8, 05, 05]
+07E3; [69 52, 05, 05]
-1263; [69 EA, 05, 05]
+07E4; [69 54, 05, 05]
-1264; [69 EC, 05, 05]
+07E5; [69 56, 05, 05]
-1265; [69 EE, 05, 05]
+07E6; [69 58, 05, 05]
-1266; [69 F0, 05, 05]
+07E7; [69 5A, 05, 05]
-1267; [69 F2, 05, 05]
+07F4; [69 5C, 05, 05]
-1384; [69 F4, 05, 05]
+07F5; [69 5E, 05, 05]
-1385; [69 F6, 05, 05]
+2D30; [6A 20, 05, 05]
-1386; [69 F8, 05, 05]
+2D31; [6A 22, 05, 05]
-1387; [69 FA, 05, 05]
+2D32; [6A 24, 05, 05]
-2D85; [69 FC, 05, 05]
+2D33; [6A 26, 05, 05]
-1268; [69 FE, 05, 05]
+2D34; [6A 28, 05, 05]
-1269; [6A 05, 05, 05]
+2D35; [6A 2A, 05, 05]
-126A; [6A 07, 05, 05]
+2D36; [6A 2C, 05, 05]
-126B; [6A 09, 05, 05]
+2D37; [6A 2E, 05, 05]
-126C; [6A 0B, 05, 05]
+2D38; [6A 30, 05, 05]
-126D; [6A 0D, 05, 05]
+2D39; [6A 32, 05, 05]
-126E; [6A 0F, 05, 05]
+2D3A; [6A 34, 05, 05]
-126F; [6A 11, 05, 05]
+2D3B; [6A 36, 05, 05]
-1270; [6A 13, 05, 05]
+2D3C; [6A 38, 05, 05]
-1271; [6A 15, 05, 05]
+2D3D; [6A 3A, 05, 05]
-1272; [6A 17, 05, 05]
+2D3E; [6A 3C, 05, 05]
-1273; [6A 19, 05, 05]
+2D3F; [6A 3E, 05, 05]
-1274; [6A 1B, 05, 05]
+2D40; [6A 40, 05, 05]
-1275; [6A 1D, 05, 05]
+2D41; [6A 42, 05, 05]
-1276; [6A 1F, 05, 05]
+2D42; [6A 44, 05, 05]
-1277; [6A 21, 05, 05]
+2D43; [6A 46, 05, 05]
-2D86; [6A 23, 05, 05]
+2D44; [6A 48, 05, 05]
-1278; [6A 25, 05, 05]
+2D45; [6A 4A, 05, 05]
-1279; [6A 27, 05, 05]
+2D46; [6A 4C, 05, 05]
-127A; [6A 29, 05, 05]
+2D47; [6A 4E, 05, 05]
-127B; [6A 2B, 05, 05]
+2D48; [6A 50, 05, 05]
-127C; [6A 2D, 05, 05]
+2D49; [6A 52, 05, 05]
-127D; [6A 2F, 05, 05]
+2D4A; [6A 54, 05, 05]
-127E; [6A 31, 05, 05]
+2D4B; [6A 56, 05, 05]
-127F; [6A 33, 05, 05]
+2D4C; [6A 58, 05, 05]
-2D87; [6A 35, 05, 05]
+2D4D; [6A 5A, 05, 05]
-1280; [6A 37, 05, 05]
+2D4E; [6A 5C, 05, 05]
-1281; [6A 39, 05, 05]
+2D4F; [6A 5E, 05, 05]
-1282; [6A 3B, 05, 05]
+2D50; [6A 60, 05, 05]
-1283; [6A 3D, 05, 05]
+2D51; [6A 62, 05, 05]
-1284; [6A 3F, 05, 05]
+2D52; [6A 64, 05, 05]
-1285; [6A 41, 05, 05]
+2D53; [6A 66, 05, 05]
-1286; [6A 43, 05, 05]
+2D54; [6A 68, 05, 05]
-1287; [6A 45, 05, 05]
+2D55; [6A 6A, 05, 05]
-1288; [6A 47, 05, 05]
+2D56; [6A 6C, 05, 05]
-128A; [6A 49, 05, 05]
+2D57; [6A 6E, 05, 05]
-128B; [6A 4B, 05, 05]
+2D58; [6A 70, 05, 05]
-128C; [6A 4D, 05, 05]
+2D59; [6A 72, 05, 05]
-128D; [6A 4F, 05, 05]
+2D5A; [6A 74, 05, 05]
-1290; [6A 51, 05, 05]
+2D5B; [6A 76, 05, 05]
-1291; [6A 53, 05, 05]
+2D5C; [6A 78, 05, 05]
-1292; [6A 55, 05, 05]
+2D5D; [6A 7A, 05, 05]
-1293; [6A 57, 05, 05]
+2D5E; [6A 7C, 05, 05]
-1294; [6A 59, 05, 05]
+2D5F; [6A 7E, 05, 05]
-1295; [6A 5B, 05, 05]
+2D60; [6A 80, 05, 05]
-1296; [6A 5D, 05, 05]
+2D61; [6A 82, 05, 05]
-1297; [6A 5F, 05, 05]
+2D62; [6A 84, 05, 05]
-2D88; [6A 61, 05, 05]
+2D63; [6A 86, 05, 05]
-1298; [6A 63, 05, 05]
+2D64; [6A 88, 05, 05]
-1299; [6A 65, 05, 05]
+2D65; [6A 8A, 05, 05]
-129A; [6A 67, 05, 05]
+2D6F; [6A 8C, 05, 05]
-129B; [6A 69, 05, 05]
+1200; [6B 20, 05, 05]
-129C; [6A 6B, 05, 05]
+1201; [6B 22, 05, 05]
-129D; [6A 6D, 05, 05]
+1202; [6B 24, 05, 05]
-129E; [6A 6F, 05, 05]
+1203; [6B 26, 05, 05]
-129F; [6A 71, 05, 05]
+1204; [6B 28, 05, 05]
-2D89; [6A 73, 05, 05]
+1205; [6B 2A, 05, 05]
-12A0; [6A 75, 05, 05]
+1206; [6B 2C, 05, 05]
-12A1; [6A 77, 05, 05]
+1207; [6B 2E, 05, 05]
-12A2; [6A 79, 05, 05]
+1208; [6B 30, 05, 05]
-12A3; [6A 7B, 05, 05]
+1209; [6B 32, 05, 05]
-12A4; [6A 7D, 05, 05]
+120A; [6B 34, 05, 05]
-12A5; [6A 7F, 05, 05]
+120B; [6B 36, 05, 05]
-12A6; [6A 81, 05, 05]
+120C; [6B 38, 05, 05]
-12A7; [6A 83, 05, 05]
+120D; [6B 3A, 05, 05]
-2D8A; [6A 85, 05, 05]
+120E; [6B 3C, 05, 05]
-12A8; [6A 87, 05, 05]
+120F; [6B 3E, 05, 05]
-12A9; [6A 89, 05, 05]
+2D80; [6B 40, 05, 05]
-12AA; [6A 8B, 05, 05]
+1210; [6B 42, 05, 05]
-12AB; [6A 8D, 05, 05]
+1211; [6B 44, 05, 05]
-12AC; [6A 8F, 05, 05]
+1212; [6B 46, 05, 05]
-12AD; [6A 91, 05, 05]
+1213; [6B 48, 05, 05]
-12AE; [6A 93, 05, 05]
+1214; [6B 4A, 05, 05]
-12AF; [6A 95, 05, 05]
+1215; [6B 4C, 05, 05]
-12B0; [6A 97, 05, 05]
+1216; [6B 4E, 05, 05]
-12B2; [6A 99, 05, 05]
+1217; [6B 50, 05, 05]
-12B3; [6A 9B, 05, 05]
+1218; [6B 52, 05, 05]
-12B4; [6A 9D, 05, 05]
+1219; [6B 54, 05, 05]
-12B5; [6A 9F, 05, 05]
+121A; [6B 56, 05, 05]
-12B8; [6A A1, 05, 05]
+121B; [6B 58, 05, 05]
-12B9; [6A A3, 05, 05]
+121C; [6B 5A, 05, 05]
-12BA; [6A A5, 05, 05]
+121D; [6B 5C, 05, 05]
-12BB; [6A A7, 05, 05]
+121E; [6B 5E, 05, 05]
-12BC; [6A A9, 05, 05]
+121F; [6B 60, 05, 05]
-12BD; [6A AB, 05, 05]
+1380; [6B 62, 05, 05]
-12BE; [6A AD, 05, 05]
+1381; [6B 64, 05, 05]
-12C0; [6A AF, 05, 05]
+1382; [6B 66, 05, 05]
-12C2; [6A B1, 05, 05]
+1383; [6B 68, 05, 05]
-12C3; [6A B3, 05, 05]
+2D81; [6B 6A, 05, 05]
-12C4; [6A B5, 05, 05]
+1220; [6B 6C, 05, 05]
-12C5; [6A B7, 05, 05]
+1221; [6B 6E, 05, 05]
-12C8; [6A B9, 05, 05]
+1222; [6B 70, 05, 05]
-12C9; [6A BB, 05, 05]
+1223; [6B 72, 05, 05]
-12CA; [6A BD, 05, 05]
+1224; [6B 74, 05, 05]
-12CB; [6A BF, 05, 05]
+1225; [6B 76, 05, 05]
-12CC; [6A C1, 05, 05]
+1226; [6B 78, 05, 05]
-12CD; [6A C3, 05, 05]
+1227; [6B 7A, 05, 05]
-12CE; [6A C5, 05, 05]
+1228; [6B 7C, 05, 05]
-12CF; [6A C7, 05, 05]
+1229; [6B 7E, 05, 05]
-12D0; [6A C9, 05, 05]
+122A; [6B 80, 05, 05]
-12D1; [6A CB, 05, 05]
+122B; [6B 82, 05, 05]
-12D2; [6A CD, 05, 05]
+122C; [6B 84, 05, 05]
-12D3; [6A CF, 05, 05]
+122D; [6B 86, 05, 05]
-12D4; [6A D1, 05, 05]
+122E; [6B 88, 05, 05]
-12D5; [6A D3, 05, 05]
+122F; [6B 8A, 05, 05]
-12D6; [6A D5, 05, 05]
+2D82; [6B 8C, 05, 05]
-12D8; [6A D7, 05, 05]
+1230; [6B 8E, 05, 05]
-12D9; [6A D9, 05, 05]
+1231; [6B 90, 05, 05]
-12DA; [6A DB, 05, 05]
+1232; [6B 92, 05, 05]
-12DB; [6A DD, 05, 05]
+1233; [6B 94, 05, 05]
-12DC; [6A DF, 05, 05]
+1234; [6B 96, 05, 05]
-12DD; [6A E1, 05, 05]
+1235; [6B 98, 05, 05]
-12DE; [6A E3, 05, 05]
+1236; [6B 9A, 05, 05]
-12DF; [6A E5, 05, 05]
+1237; [6B 9C, 05, 05]
-2D8B; [6A E7, 05, 05]
+2D83; [6B 9E, 05, 05]
-12E0; [6A E9, 05, 05]
+1238; [6B A0, 05, 05]
-12E1; [6A EB, 05, 05]
+1239; [6B A2, 05, 05]
-12E2; [6A ED, 05, 05]
+123A; [6B A4, 05, 05]
-12E3; [6A EF, 05, 05]
+123B; [6B A6, 05, 05]
-12E4; [6A F1, 05, 05]
+123C; [6B A8, 05, 05]
-12E5; [6A F3, 05, 05]
+123D; [6B AA, 05, 05]
-12E6; [6A F5, 05, 05]
+123E; [6B AC, 05, 05]
-12E7; [6A F7, 05, 05]
+123F; [6B AE, 05, 05]
-12E8; [6A F9, 05, 05]
+2D84; [6B B0, 05, 05]
-12E9; [6A FB, 05, 05]
+1240; [6B B2, 05, 05]
-12EA; [6A FD, 05, 05]
+1241; [6B B4, 05, 05]
-12EB; [6B 05, 05, 05]
+1242; [6B B6, 05, 05]
-12EC; [6B 07, 05, 05]
+1243; [6B B8, 05, 05]
-12ED; [6B 09, 05, 05]
+1244; [6B BA, 05, 05]
-12EE; [6B 0B, 05, 05]
+1245; [6B BC, 05, 05]
-12EF; [6B 0D, 05, 05]
+1246; [6B BE, 05, 05]
-12F0; [6B 0F, 05, 05]
+1247; [6B C0, 05, 05]
-12F1; [6B 11, 05, 05]
+1248; [6B C2, 05, 05]
-12F2; [6B 13, 05, 05]
+124A; [6B C4, 05, 05]
-12F3; [6B 15, 05, 05]
+124B; [6B C6, 05, 05]
-12F4; [6B 17, 05, 05]
+124C; [6B C8, 05, 05]
-12F5; [6B 19, 05, 05]
+124D; [6B CA, 05, 05]
-12F6; [6B 1B, 05, 05]
+1250; [6B CC, 05, 05]
-12F7; [6B 1D, 05, 05]
+1251; [6B CE, 05, 05]
-2D8C; [6B 1F, 05, 05]
+1252; [6B D0, 05, 05]
-12F8; [6B 21, 05, 05]
+1253; [6B D2, 05, 05]
-12F9; [6B 23, 05, 05]
+1254; [6B D4, 05, 05]
-12FA; [6B 25, 05, 05]
+1255; [6B D6, 05, 05]
-12FB; [6B 27, 05, 05]
+1256; [6B D8, 05, 05]
-12FC; [6B 29, 05, 05]
+1258; [6B DA, 05, 05]
-12FD; [6B 2B, 05, 05]
+125A; [6B DC, 05, 05]
-12FE; [6B 2D, 05, 05]
+125B; [6B DE, 05, 05]
-12FF; [6B 2F, 05, 05]
+125C; [6B E0, 05, 05]
-2D8D; [6B 31, 05, 05]
+125D; [6B E2, 05, 05]
-1300; [6B 33, 05, 05]
+1260; [6B E4, 05, 05]
-1301; [6B 35, 05, 05]
+1261; [6B E6, 05, 05]
-1302; [6B 37, 05, 05]
+1262; [6B E8, 05, 05]
-1303; [6B 39, 05, 05]
+1263; [6B EA, 05, 05]
-1304; [6B 3B, 05, 05]
+1264; [6B EC, 05, 05]
-1305; [6B 3D, 05, 05]
+1265; [6B EE, 05, 05]
-1306; [6B 3F, 05, 05]
+1266; [6B F0, 05, 05]
-1307; [6B 41, 05, 05]
+1267; [6B F2, 05, 05]
-2D8E; [6B 43, 05, 05]
+1384; [6B F4, 05, 05]
-1308; [6B 45, 05, 05]
+1385; [6B F6, 05, 05]
-1309; [6B 47, 05, 05]
+1386; [6B F8, 05, 05]
-130A; [6B 49, 05, 05]
+1387; [6B FA, 05, 05]
-130B; [6B 4B, 05, 05]
+2D85; [6B FC, 05, 05]
-130C; [6B 4D, 05, 05]
+1268; [6B FE, 05, 05]
-130D; [6B 4F, 05, 05]
+1269; [6C 05, 05, 05]
-130E; [6B 51, 05, 05]
+126A; [6C 07, 05, 05]
-130F; [6B 53, 05, 05]
+126B; [6C 09, 05, 05]
-1310; [6B 55, 05, 05]
+126C; [6C 0B, 05, 05]
-1312; [6B 57, 05, 05]
+126D; [6C 0D, 05, 05]
-1313; [6B 59, 05, 05]
+126E; [6C 0F, 05, 05]
-1314; [6B 5B, 05, 05]
+126F; [6C 11, 05, 05]
-1315; [6B 5D, 05, 05]
+1270; [6C 13, 05, 05]
-1318; [6B 5F, 05, 05]
+1271; [6C 15, 05, 05]
-1319; [6B 61, 05, 05]
+1272; [6C 17, 05, 05]
-131A; [6B 63, 05, 05]
+1273; [6C 19, 05, 05]
-131B; [6B 65, 05, 05]
+1274; [6C 1B, 05, 05]
-131C; [6B 67, 05, 05]
+1275; [6C 1D, 05, 05]
-131D; [6B 69, 05, 05]
+1276; [6C 1F, 05, 05]
-131E; [6B 6B, 05, 05]
+1277; [6C 21, 05, 05]
-131F; [6B 6D, 05, 05]
+2D86; [6C 23, 05, 05]
-2D93; [6B 6F, 05, 05]
+1278; [6C 25, 05, 05]
-2D94; [6B 71, 05, 05]
+1279; [6C 27, 05, 05]
-2D95; [6B 73, 05, 05]
+127A; [6C 29, 05, 05]
-2D96; [6B 75, 05, 05]
+127B; [6C 2B, 05, 05]
-1320; [6B 77, 05, 05]
+127C; [6C 2D, 05, 05]
-1321; [6B 79, 05, 05]
+127D; [6C 2F, 05, 05]
-1322; [6B 7B, 05, 05]
+127E; [6C 31, 05, 05]
-1323; [6B 7D, 05, 05]
+127F; [6C 33, 05, 05]
-1324; [6B 7F, 05, 05]
+2D87; [6C 35, 05, 05]
-1325; [6B 81, 05, 05]
+1280; [6C 37, 05, 05]
-1326; [6B 83, 05, 05]
+1281; [6C 39, 05, 05]
-1327; [6B 85, 05, 05]
+1282; [6C 3B, 05, 05]
-2D8F; [6B 87, 05, 05]
+1283; [6C 3D, 05, 05]
-1328; [6B 89, 05, 05]
+1284; [6C 3F, 05, 05]
-1329; [6B 8B, 05, 05]
+1285; [6C 41, 05, 05]
-132A; [6B 8D, 05, 05]
+1286; [6C 43, 05, 05]
-132B; [6B 8F, 05, 05]
+1287; [6C 45, 05, 05]
-132C; [6B 91, 05, 05]
+1288; [6C 47, 05, 05]
-132D; [6B 93, 05, 05]
+128A; [6C 49, 05, 05]
-132E; [6B 95, 05, 05]
+128B; [6C 4B, 05, 05]
-132F; [6B 97, 05, 05]
+128C; [6C 4D, 05, 05]
-2D90; [6B 99, 05, 05]
+128D; [6C 4F, 05, 05]
-1330; [6B 9B, 05, 05]
+1290; [6C 51, 05, 05]
-1331; [6B 9D, 05, 05]
+1291; [6C 53, 05, 05]
-1332; [6B 9F, 05, 05]
+1292; [6C 55, 05, 05]
-1333; [6B A1, 05, 05]
+1293; [6C 57, 05, 05]
-1334; [6B A3, 05, 05]
+1294; [6C 59, 05, 05]
-1335; [6B A5, 05, 05]
+1295; [6C 5B, 05, 05]
-1336; [6B A7, 05, 05]
+1296; [6C 5D, 05, 05]
-1337; [6B A9, 05, 05]
+1297; [6C 5F, 05, 05]
-2D91; [6B AB, 05, 05]
+2D88; [6C 61, 05, 05]
-1338; [6B AD, 05, 05]
+1298; [6C 63, 05, 05]
-1339; [6B AF, 05, 05]
+1299; [6C 65, 05, 05]
-133A; [6B B1, 05, 05]
+129A; [6C 67, 05, 05]
-133B; [6B B3, 05, 05]
+129B; [6C 69, 05, 05]
-133C; [6B B5, 05, 05]
+129C; [6C 6B, 05, 05]
-133D; [6B B7, 05, 05]
+129D; [6C 6D, 05, 05]
-133E; [6B B9, 05, 05]
+129E; [6C 6F, 05, 05]
-133F; [6B BB, 05, 05]
+129F; [6C 71, 05, 05]
-1340; [6B BD, 05, 05]
+2D89; [6C 73, 05, 05]
-1341; [6B BF, 05, 05]
+12A0; [6C 75, 05, 05]
-1342; [6B C1, 05, 05]
+12A1; [6C 77, 05, 05]
-1343; [6B C3, 05, 05]
+12A2; [6C 79, 05, 05]
-1344; [6B C5, 05, 05]
+12A3; [6C 7B, 05, 05]
-1345; [6B C7, 05, 05]
+12A4; [6C 7D, 05, 05]
-1346; [6B C9, 05, 05]
+12A5; [6C 7F, 05, 05]
-1347; [6B CB, 05, 05]
+12A6; [6C 81, 05, 05]
-1348; [6B CD, 05, 05]
+12A7; [6C 83, 05, 05]
-1349; [6B CF, 05, 05]
+2D8A; [6C 85, 05, 05]
-134A; [6B D1, 05, 05]
+12A8; [6C 87, 05, 05]
-134B; [6B D3, 05, 05]
+12A9; [6C 89, 05, 05]
-134C; [6B D5, 05, 05]
+12AA; [6C 8B, 05, 05]
-134D; [6B D7, 05, 05]
+12AB; [6C 8D, 05, 05]
-134E; [6B D9, 05, 05]
+12AC; [6C 8F, 05, 05]
-134F; [6B DB, 05, 05]
+12AD; [6C 91, 05, 05]
-1388; [6B DD, 05, 05]
+12AE; [6C 93, 05, 05]
-1389; [6B DF, 05, 05]
+12AF; [6C 95, 05, 05]
-138A; [6B E1, 05, 05]
+12B0; [6C 97, 05, 05]
-138B; [6B E3, 05, 05]
+12B2; [6C 99, 05, 05]
-1350; [6B E5, 05, 05]
+12B3; [6C 9B, 05, 05]
-1351; [6B E7, 05, 05]
+12B4; [6C 9D, 05, 05]
-1352; [6B E9, 05, 05]
+12B5; [6C 9F, 05, 05]
-1353; [6B EB, 05, 05]
+12B8; [6C A1, 05, 05]
-1354; [6B ED, 05, 05]
+12B9; [6C A3, 05, 05]
-1355; [6B EF, 05, 05]
+12BA; [6C A5, 05, 05]
-1356; [6B F1, 05, 05]
+12BB; [6C A7, 05, 05]
-1357; [6B F3, 05, 05]
+12BC; [6C A9, 05, 05]
-138C; [6B F5, 05, 05]
+12BD; [6C AB, 05, 05]
-138D; [6B F7, 05, 05]
+12BE; [6C AD, 05, 05]
-138E; [6B F9, 05, 05]
+12C0; [6C AF, 05, 05]
-138F; [6B FB, 05, 05]
+12C2; [6C B1, 05, 05]
-2D92; [6B FD, 05, 05]
+12C3; [6C B3, 05, 05]
-1358; [6C 05, 05, 05]
+12C4; [6C B5, 05, 05]
-1359; [6C 07, 05, 05]
+12C5; [6C B7, 05, 05]
-135A; [6C 09, 05, 05]
+12C8; [6C B9, 05, 05]
-2DA0; [6C 0B, 05, 05]
+12C9; [6C BB, 05, 05]
-2DA1; [6C 0D, 05, 05]
+12CA; [6C BD, 05, 05]
-2DA2; [6C 0F, 05, 05]
+12CB; [6C BF, 05, 05]
-2DA3; [6C 11, 05, 05]
+12CC; [6C C1, 05, 05]
-2DA4; [6C 13, 05, 05]
+12CD; [6C C3, 05, 05]
-2DA5; [6C 15, 05, 05]
+12CE; [6C C5, 05, 05]
-2DA6; [6C 17, 05, 05]
+12CF; [6C C7, 05, 05]
-2DA8; [6C 19, 05, 05]
+12D0; [6C C9, 05, 05]
-2DA9; [6C 1B, 05, 05]
+12D1; [6C CB, 05, 05]
-2DAA; [6C 1D, 05, 05]
+12D2; [6C CD, 05, 05]
-2DAB; [6C 1F, 05, 05]
+12D3; [6C CF, 05, 05]
-2DAC; [6C 21, 05, 05]
+12D4; [6C D1, 05, 05]
-2DAD; [6C 23, 05, 05]
+12D5; [6C D3, 05, 05]
-2DAE; [6C 25, 05, 05]
+12D6; [6C D5, 05, 05]
-2DB0; [6C 27, 05, 05]
+12D8; [6C D7, 05, 05]
-2DB1; [6C 29, 05, 05]
+12D9; [6C D9, 05, 05]
-2DB2; [6C 2B, 05, 05]
+12DA; [6C DB, 05, 05]
-2DB3; [6C 2D, 05, 05]
+12DB; [6C DD, 05, 05]
-2DB4; [6C 2F, 05, 05]
+12DC; [6C DF, 05, 05]
-2DB5; [6C 31, 05, 05]
+12DD; [6C E1, 05, 05]
-2DB6; [6C 33, 05, 05]
+12DE; [6C E3, 05, 05]
-2DB8; [6C 35, 05, 05]
+12DF; [6C E5, 05, 05]
-2DB9; [6C 37, 05, 05]
+2D8B; [6C E7, 05, 05]
-2DBA; [6C 39, 05, 05]
+12E0; [6C E9, 05, 05]
-2DBB; [6C 3B, 05, 05]
+12E1; [6C EB, 05, 05]
-2DBC; [6C 3D, 05, 05]
+12E2; [6C ED, 05, 05]
-2DBD; [6C 3F, 05, 05]
+12E3; [6C EF, 05, 05]
-2DBE; [6C 41, 05, 05]
+12E4; [6C F1, 05, 05]
-2DC0; [6C 43, 05, 05]
+12E5; [6C F3, 05, 05]
-2DC1; [6C 45, 05, 05]
+12E6; [6C F5, 05, 05]
-2DC2; [6C 47, 05, 05]
+12E7; [6C F7, 05, 05]
-2DC3; [6C 49, 05, 05]
+12E8; [6C F9, 05, 05]
-2DC4; [6C 4B, 05, 05]
+12E9; [6C FB, 05, 05]
-2DC5; [6C 4D, 05, 05]
+12EA; [6C FD, 05, 05]
-2DC6; [6C 4F, 05, 05]
+12EB; [6D 05, 05, 05]
-2DC8; [6C 51, 05, 05]
+12EC; [6D 07, 05, 05]
-2DC9; [6C 53, 05, 05]
+12ED; [6D 09, 05, 05]
-2DCA; [6C 55, 05, 05]
+12EE; [6D 0B, 05, 05]
-2DCB; [6C 57, 05, 05]
+12EF; [6D 0D, 05, 05]
-2DCC; [6C 59, 05, 05]
+12F0; [6D 0F, 05, 05]
-2DCD; [6C 5B, 05, 05]
+12F1; [6D 11, 05, 05]
-2DCE; [6C 5D, 05, 05]
+12F2; [6D 13, 05, 05]
-2DD0; [6C 5F, 05, 05]
+12F3; [6D 15, 05, 05]
-2DD1; [6C 61, 05, 05]
+12F4; [6D 17, 05, 05]
-2DD2; [6C 63, 05, 05]
+12F5; [6D 19, 05, 05]
-2DD3; [6C 65, 05, 05]
+12F6; [6D 1B, 05, 05]
-2DD4; [6C 67, 05, 05]
+12F7; [6D 1D, 05, 05]
-2DD5; [6C 69, 05, 05]
+2D8C; [6D 1F, 05, 05]
-2DD6; [6C 6B, 05, 05]
+12F8; [6D 21, 05, 05]
-2DD8; [6C 6D, 05, 05]
+12F9; [6D 23, 05, 05]
-2DD9; [6C 6F, 05, 05]
+12FA; [6D 25, 05, 05]
-2DDA; [6C 71, 05, 05]
+12FB; [6D 27, 05, 05]
-2DDB; [6C 73, 05, 05]
+12FC; [6D 29, 05, 05]
-2DDC; [6C 75, 05, 05]
+12FD; [6D 2B, 05, 05]
-2DDD; [6C 77, 05, 05]
+12FE; [6D 2D, 05, 05]
-2DDE; [6C 79, 05, 05]
+12FF; [6D 2F, 05, 05]
-0950; [6D 20, 05, 05]
+2D8D; [6D 31, 05, 05]
-0904; [6D 22, 05, 05]
+1300; [6D 33, 05, 05]
-0905; [6D 24, 05, 05]
+1301; [6D 35, 05, 05]
-0906; [6D 26, 05, 05]
+1302; [6D 37, 05, 05]
-0907; [6D 28, 05, 05]
+1303; [6D 39, 05, 05]
-0908; [6D 2A, 05, 05]
+1304; [6D 3B, 05, 05]
-0909; [6D 2C, 05, 05]
+1305; [6D 3D, 05, 05]
-090A; [6D 2E, 05, 05]
+1306; [6D 3F, 05, 05]
-090B; [6D 30, 05, 05]
+1307; [6D 41, 05, 05]
-0960; [6D 32, 05, 05]
+2D8E; [6D 43, 05, 05]
-090C; [6D 34, 05, 05]
+1308; [6D 45, 05, 05]
-0961; [6D 36, 05, 05]
+1309; [6D 47, 05, 05]
-090D; [6D 38, 05, 05]
+130A; [6D 49, 05, 05]
-090E; [6D 3A, 05, 05]
+130B; [6D 4B, 05, 05]
-090F; [6D 3C, 05, 05]
+130C; [6D 4D, 05, 05]
-0910; [6D 3E, 05, 05]
+130D; [6D 4F, 05, 05]
-0911; [6D 40, 05, 05]
+130E; [6D 51, 05, 05]
-0912; [6D 42, 05, 05]
+130F; [6D 53, 05, 05]
-0913; [6D 44, 05, 05]
+1310; [6D 55, 05, 05]
-0914; [6D 46, 05, 05]
+1312; [6D 57, 05, 05]
-0915; [6D 48, 05, 05]
-0958; [6D 48, 05, 05][, D8 6D, 05]
+1313; [6D 59, 05, 05]
-0916; [6D 4A, 05, 05]
-0959; [6D 4A, 05, 05][, D8 6D, 05]
+1314; [6D 5B, 05, 05]
-0917; [6D 4C, 05, 05]
-095A; [6D 4C, 05, 05][, D8 6D, 05]
+1315; [6D 5D, 05, 05]
-0918; [6D 4E, 05, 05]
+1318; [6D 5F, 05, 05]
-0919; [6D 50, 05, 05]
+1319; [6D 61, 05, 05]
-091A; [6D 52, 05, 05]
+131A; [6D 63, 05, 05]
-091B; [6D 54, 05, 05]
+131B; [6D 65, 05, 05]
-091C; [6D 56, 05, 05]
-095B; [6D 56, 05, 05][, D8 6D, 05]
+131C; [6D 67, 05, 05]
-091D; [6D 58, 05, 05]
+131D; [6D 69, 05, 05]
-091E; [6D 5A, 05, 05]
+131E; [6D 6B, 05, 05]
-091F; [6D 5C, 05, 05]
+131F; [6D 6D, 05, 05]
-0920; [6D 5E, 05, 05]
+2D93; [6D 6F, 05, 05]
-0921; [6D 60, 05, 05]
-095C; [6D 60, 05, 05][, D8 6D, 05]
+2D94; [6D 71, 05, 05]
-0922; [6D 62, 05, 05]
-095D; [6D 62, 05, 05][, D8 6D, 05]
+2D95; [6D 73, 05, 05]
-0923; [6D 64, 05, 05]
+2D96; [6D 75, 05, 05]
-0924; [6D 66, 05, 05]
+1320; [6D 77, 05, 05]
-0925; [6D 68, 05, 05]
+1321; [6D 79, 05, 05]
-0926; [6D 6A, 05, 05]
+1322; [6D 7B, 05, 05]
-0927; [6D 6C, 05, 05]
+1323; [6D 7D, 05, 05]
-0928; [6D 6E, 05, 05]
-0929; [6D 6E, 05, 05][, D8 6D, 05]
+1324; [6D 7F, 05, 05]
-092A; [6D 70, 05, 05]
+1325; [6D 81, 05, 05]
-092B; [6D 72, 05, 05]
-095E; [6D 72, 05, 05][, D8 6D, 05]
+1326; [6D 83, 05, 05]
-092C; [6D 74, 05, 05]
+1327; [6D 85, 05, 05]
-092D; [6D 76, 05, 05]
+2D8F; [6D 87, 05, 05]
-092E; [6D 78, 05, 05]
+1328; [6D 89, 05, 05]
-092F; [6D 7A, 05, 05]
-095F; [6D 7A, 05, 05][, D8 6D, 05]
+1329; [6D 8B, 05, 05]
-0930; [6D 7C, 05, 05]
-0931; [6D 7C, 05, 05][, D8 6D, 05]
+132A; [6D 8D, 05, 05]
-0932; [6D 7E, 05, 05]
+132B; [6D 8F, 05, 05]
-0933; [6D 80, 05, 05]
-0934; [6D 80, 05, 05][, D8 6D, 05]
+132C; [6D 91, 05, 05]
-0935; [6D 82, 05, 05]
+132D; [6D 93, 05, 05]
-0936; [6D 84, 05, 05]
+132E; [6D 95, 05, 05]
-0937; [6D 86, 05, 05]
+132F; [6D 97, 05, 05]
-0938; [6D 88, 05, 05]
+2D90; [6D 99, 05, 05]
-0939; [6D 8A, 05, 05]
+1330; [6D 9B, 05, 05]
-093D; [6D 8C, 05, 05]
+1331; [6D 9D, 05, 05]
-097D; [6D 8E, 05, 05]
+1332; [6D 9F, 05, 05]
-093E; [6D 90, 05, 05]
+1333; [6D A1, 05, 05]
-093F; [6D 92, 05, 05]
+1334; [6D A3, 05, 05]
-0940; [6D 94, 05, 05]
+1335; [6D A5, 05, 05]
-0941; [6D 96, 05, 05]
+1336; [6D A7, 05, 05]
-0942; [6D 98, 05, 05]
+1337; [6D A9, 05, 05]
-0943; [6D 9A, 05, 05]
+2D91; [6D AB, 05, 05]
-0944; [6D 9C, 05, 05]
+1338; [6D AD, 05, 05]
-0962; [6D 9E, 05, 05]
+1339; [6D AF, 05, 05]
-0963; [6D A0, 05, 05]
+133A; [6D B1, 05, 05]
-0945; [6D A2, 05, 05]
+133B; [6D B3, 05, 05]
-0946; [6D A4, 05, 05]
+133C; [6D B5, 05, 05]
-0947; [6D A6, 05, 05]
+133D; [6D B7, 05, 05]
-0948; [6D A8, 05, 05]
+133E; [6D B9, 05, 05]
-0949; [6D AA, 05, 05]
+133F; [6D BB, 05, 05]
-094A; [6D AC, 05, 05]
+1340; [6D BD, 05, 05]
-094B; [6D AE, 05, 05]
+1341; [6D BF, 05, 05]
-094C; [6D B0, 05, 05]
+1342; [6D C1, 05, 05]
-094D; [6D B2, 05, 05]
+1343; [6D C3, 05, 05]
-0985; [6E 20, 05, 05]
+1344; [6D C5, 05, 05]
-0986; [6E 22, 05, 05]
+1345; [6D C7, 05, 05]
-0987; [6E 24, 05, 05]
+1346; [6D C9, 05, 05]
-0988; [6E 26, 05, 05]
+1347; [6D CB, 05, 05]
-0989; [6E 28, 05, 05]
+1348; [6D CD, 05, 05]
-098A; [6E 2A, 05, 05]
+1349; [6D CF, 05, 05]
-098B; [6E 2C, 05, 05]
+134A; [6D D1, 05, 05]
-09E0; [6E 2E, 05, 05]
+134B; [6D D3, 05, 05]
-098C; [6E 30, 05, 05]
+134C; [6D D5, 05, 05]
-09E1; [6E 32, 05, 05]
+134D; [6D D7, 05, 05]
-098F; [6E 34, 05, 05]
+134E; [6D D9, 05, 05]
-0990; [6E 36, 05, 05]
+134F; [6D DB, 05, 05]
-0993; [6E 38, 05, 05]
+1388; [6D DD, 05, 05]
-0994; [6E 3A, 05, 05]
+1389; [6D DF, 05, 05]
-0995; [6E 3C, 05, 05]
+138A; [6D E1, 05, 05]
-0996; [6E 3E, 05, 05]
+138B; [6D E3, 05, 05]
-0997; [6E 40, 05, 05]
+1350; [6D E5, 05, 05]
-0998; [6E 42, 05, 05]
+1351; [6D E7, 05, 05]
-0999; [6E 44, 05, 05]
+1352; [6D E9, 05, 05]
-099A; [6E 46, 05, 05]
+1353; [6D EB, 05, 05]
-099B; [6E 48, 05, 05]
+1354; [6D ED, 05, 05]
-099C; [6E 4A, 05, 05]
+1355; [6D EF, 05, 05]
-099D; [6E 4C, 05, 05]
+1356; [6D F1, 05, 05]
-099E; [6E 4E, 05, 05]
+1357; [6D F3, 05, 05]
-099F; [6E 50, 05, 05]
+138C; [6D F5, 05, 05]
-09A0; [6E 52, 05, 05]
+138D; [6D F7, 05, 05]
-09A1; [6E 54, 05, 05]
-09DC; [6E 54, 05, 05][, D8 ED, 05]
+138E; [6D F9, 05, 05]
-09A2; [6E 56, 05, 05]
-09DD; [6E 56, 05, 05][, D8 ED, 05]
+138F; [6D FB, 05, 05]
-09A3; [6E 58, 05, 05]
+2D92; [6D FD, 05, 05]
-09A4; [6E 5A, 05, 05]
-09CE; [6E 5A, 05, 09][6E 9C, 05, 09]
+1358; [6E 05, 05, 05]
-09A5; [6E 5C, 05, 05]
+1359; [6E 07, 05, 05]
-09A6; [6E 5E, 05, 05]
+135A; [6E 09, 05, 05]
-09A7; [6E 60, 05, 05]
+2DA0; [6E 0B, 05, 05]
-09A8; [6E 62, 05, 05]
+2DA1; [6E 0D, 05, 05]
-09AA; [6E 64, 05, 05]
+2DA2; [6E 0F, 05, 05]
-09AB; [6E 66, 05, 05]
+2DA3; [6E 11, 05, 05]
-09AC; [6E 68, 05, 05]
+2DA4; [6E 13, 05, 05]
-09AD; [6E 6A, 05, 05]
+2DA5; [6E 15, 05, 05]
-09AE; [6E 6C, 05, 05]
+2DA6; [6E 17, 05, 05]
-09AF; [6E 6E, 05, 05]
-09DF; [6E 6E, 05, 05][, D8 ED, 05]
+2DA8; [6E 19, 05, 05]
-09B0; [6E 70, 05, 05]
+2DA9; [6E 1B, 05, 05]
-09F0; [6E 72, 05, 05]
+2DAA; [6E 1D, 05, 05]
-09B2; [6E 74, 05, 05]
+2DAB; [6E 1F, 05, 05]
-09F1; [6E 76, 05, 05]
+2DAC; [6E 21, 05, 05]
-09B6; [6E 78, 05, 05]
+2DAD; [6E 23, 05, 05]
-09B7; [6E 7A, 05, 05]
+2DAE; [6E 25, 05, 05]
-09B8; [6E 7C, 05, 05]
+2DB0; [6E 27, 05, 05]
-09B9; [6E 7E, 05, 05]
+2DB1; [6E 29, 05, 05]
-09BD; [6E 80, 05, 05]
+2DB2; [6E 2B, 05, 05]
-09BE; [6E 82, 05, 05]
+2DB3; [6E 2D, 05, 05]
-09BF; [6E 84, 05, 05]
+2DB4; [6E 2F, 05, 05]
-09C0; [6E 86, 05, 05]
+2DB5; [6E 31, 05, 05]
-09C1; [6E 88, 05, 05]
+2DB6; [6E 33, 05, 05]
-09C2; [6E 8A, 05, 05]
+2DB8; [6E 35, 05, 05]
-09C3; [6E 8C, 05, 05]
+2DB9; [6E 37, 05, 05]
-09C4; [6E 8E, 05, 05]
+2DBA; [6E 39, 05, 05]
-09E2; [6E 90, 05, 05]
+2DBB; [6E 3B, 05, 05]
-09E3; [6E 92, 05, 05]
+2DBC; [6E 3D, 05, 05]
-09C7; [6E 94, 05, 05]
+2DBD; [6E 3F, 05, 05]
-09C8; [6E 96, 05, 05]
+2DBE; [6E 41, 05, 05]
-09C7 09BE; [6E 98, 05, 05]
-09CB; [6E 98, 05, 05]
+2DC0; [6E 43, 05, 05]
-09C7 09D7; [6E 9A, 05, 05]
-09CC; [6E 9A, 05, 05]
+2DC1; [6E 45, 05, 05]
-09CD; [6E 9C, 05, 05]
+2DC2; [6E 47, 05, 05]
-09D7; [6E 9E, 05, 05]
+2DC3; [6E 49, 05, 05]
-0A74; [6F 20, 05, 05]
+2DC4; [6E 4B, 05, 05]
-0A73; [6F 22, 05, 05]
+2DC5; [6E 4D, 05, 05]
-0A09; [6F 24, 05, 05]
+2DC6; [6E 4F, 05, 05]
-0A0A; [6F 26, 05, 05]
+2DC8; [6E 51, 05, 05]
-0A13; [6F 28, 05, 05]
+2DC9; [6E 53, 05, 05]
-0A05; [6F 2A, 05, 05]
+2DCA; [6E 55, 05, 05]
-0A06; [6F 2C, 05, 05]
+2DCB; [6E 57, 05, 05]
-0A10; [6F 2E, 05, 05]
+2DCC; [6E 59, 05, 05]
-0A14; [6F 30, 05, 05]
+2DCD; [6E 5B, 05, 05]
-0A72; [6F 32, 05, 05]
+2DCE; [6E 5D, 05, 05]
-0A07; [6F 34, 05, 05]
+2DD0; [6E 5F, 05, 05]
-0A08; [6F 36, 05, 05]
+2DD1; [6E 61, 05, 05]
-0A0F; [6F 38, 05, 05]
+2DD2; [6E 63, 05, 05]
-0A38; [6F 3A, 05, 05]
-0A36; [6F 3A, 05, 05][, D9 31, 05]
+2DD3; [6E 65, 05, 05]
-0A39; [6F 3C, 05, 05]
+2DD4; [6E 67, 05, 05]
-0A15; [6F 3E, 05, 05]
+2DD5; [6E 69, 05, 05]
-0A16; [6F 40, 05, 05]
-0A59; [6F 40, 05, 05][, D9 31, 05]
+2DD6; [6E 6B, 05, 05]
-0A17; [6F 42, 05, 05]
-0A5A; [6F 42, 05, 05][, D9 31, 05]
+2DD8; [6E 6D, 05, 05]
-0A18; [6F 44, 05, 05]
+2DD9; [6E 6F, 05, 05]
-0A19; [6F 46, 05, 05]
+2DDA; [6E 71, 05, 05]
-0A1A; [6F 48, 05, 05]
+2DDB; [6E 73, 05, 05]
-0A1B; [6F 4A, 05, 05]
+2DDC; [6E 75, 05, 05]
-0A1C; [6F 4C, 05, 05]
-0A5B; [6F 4C, 05, 05][, D9 31, 05]
+2DDD; [6E 77, 05, 05]
-0A1D; [6F 4E, 05, 05]
+2DDE; [6E 79, 05, 05]
-0A1E; [6F 50, 05, 05]
+0950; [6F 20, 05, 05]
-0A1F; [6F 52, 05, 05]
+0904; [6F 22, 05, 05]
-0A20; [6F 54, 05, 05]
+0905; [6F 24, 05, 05]
-0A21; [6F 56, 05, 05]
+0906; [6F 26, 05, 05]
-0A22; [6F 58, 05, 05]
+0907; [6F 28, 05, 05]
-0A23; [6F 5A, 05, 05]
+0908; [6F 2A, 05, 05]
-0A24; [6F 5C, 05, 05]
+0909; [6F 2C, 05, 05]
-0A25; [6F 5E, 05, 05]
+090A; [6F 2E, 05, 05]
-0A26; [6F 60, 05, 05]
+090B; [6F 30, 05, 05]
-0A27; [6F 62, 05, 05]
+0960; [6F 32, 05, 05]
-0A28; [6F 64, 05, 05]
+090C; [6F 34, 05, 05]
-0A2A; [6F 66, 05, 05]
+0961; [6F 36, 05, 05]
-0A2B; [6F 68, 05, 05]
-0A5E; [6F 68, 05, 05][, D9 31, 05]
+090D; [6F 38, 05, 05]
-0A2C; [6F 6A, 05, 05]
+090E; [6F 3A, 05, 05]
-0A2D; [6F 6C, 05, 05]
+090F; [6F 3C, 05, 05]
-0A2E; [6F 6E, 05, 05]
+0910; [6F 3E, 05, 05]
-0A2F; [6F 70, 05, 05]
+0911; [6F 40, 05, 05]
-0A30; [6F 72, 05, 05]
+0912; [6F 42, 05, 05]
-0A32; [6F 74, 05, 05]
-0A33; [6F 74, 05, 05][, D9 31, 05]
+0913; [6F 44, 05, 05]
-0A35; [6F 76, 05, 05]
+0914; [6F 46, 05, 05]
-0A5C; [6F 78, 05, 05]
+0915; [6F 48, 05, 05]
+0958; [6F 48, 05, 05][, D9 A1, 05]
-0A3E; [6F 7A, 05, 05]
+0916; [6F 4A, 05, 05]
+0959; [6F 4A, 05, 05][, D9 A1, 05]
-0A3F; [6F 7C, 05, 05]
+0917; [6F 4C, 05, 05]
+095A; [6F 4C, 05, 05][, D9 A1, 05]
-0A40; [6F 7E, 05, 05]
+097B; [6F 4E, 05, 05]
-0A41; [6F 80, 05, 05]
+0918; [6F 50, 05, 05]
-0A42; [6F 82, 05, 05]
+0919; [6F 52, 05, 05]
-0A47; [6F 84, 05, 05]
+091A; [6F 54, 05, 05]
-0A48; [6F 86, 05, 05]
+091B; [6F 56, 05, 05]
-0A4B; [6F 88, 05, 05]
+091C; [6F 58, 05, 05]
+095B; [6F 58, 05, 05][, D9 A1, 05]
-0A4C; [6F 8A, 05, 05]
+097C; [6F 5A, 05, 05]
-0A4D; [6F 8C, 05, 05]
+091D; [6F 5C, 05, 05]
-0AD0; [70 20, 05, 05]
+091E; [6F 5E, 05, 05]
-0A85; [70 22, 05, 05]
+091F; [6F 60, 05, 05]
-0A86; [70 24, 05, 05]
+0920; [6F 62, 05, 05]
-0A87; [70 26, 05, 05]
+0921; [6F 64, 05, 05]
+095C; [6F 64, 05, 05][, D9 A1, 05]
-0A88; [70 28, 05, 05]
+097E; [6F 66, 05, 05]
-0A89; [70 2A, 05, 05]
+0922; [6F 68, 05, 05]
+095D; [6F 68, 05, 05][, D9 A1, 05]
-0A8A; [70 2C, 05, 05]
+0923; [6F 6A, 05, 05]
-0A8B; [70 2E, 05, 05]
+0924; [6F 6C, 05, 05]
-0AE0; [70 30, 05, 05]
+0925; [6F 6E, 05, 05]
-0A8C; [70 32, 05, 05]
+0926; [6F 70, 05, 05]
-0AE1; [70 34, 05, 05]
+0927; [6F 72, 05, 05]
-0A8D; [70 36, 05, 05]
+0928; [6F 74, 05, 05]
+0929; [6F 74, 05, 05][, D9 A1, 05]
-0A8F; [70 38, 05, 05]
+092A; [6F 76, 05, 05]
-0A90; [70 3A, 05, 05]
+092B; [6F 78, 05, 05]
+095E; [6F 78, 05, 05][, D9 A1, 05]
-0A91; [70 3C, 05, 05]
+092C; [6F 7A, 05, 05]
-0A93; [70 3E, 05, 05]
+097F; [6F 7C, 05, 05]
-0A94; [70 40, 05, 05]
+092D; [6F 7E, 05, 05]
-0A95; [70 42, 05, 05]
+092E; [6F 80, 05, 05]
-0A96; [70 44, 05, 05]
+092F; [6F 82, 05, 05]
+095F; [6F 82, 05, 05][, D9 A1, 05]
-0A97; [70 46, 05, 05]
+0930; [6F 84, 05, 05]
+0931; [6F 84, 05, 05][, D9 A1, 05]
-0A98; [70 48, 05, 05]
+0932; [6F 86, 05, 05]
-0A99; [70 4A, 05, 05]
+0933; [6F 88, 05, 05]
+0934; [6F 88, 05, 05][, D9 A1, 05]
-0A9A; [70 4C, 05, 05]
+0935; [6F 8A, 05, 05]
-0A9B; [70 4E, 05, 05]
+0936; [6F 8C, 05, 05]
-0A9C; [70 50, 05, 05]
+0937; [6F 8E, 05, 05]
-0A9D; [70 52, 05, 05]
+0938; [6F 90, 05, 05]
-0A9E; [70 54, 05, 05]
+0939; [6F 92, 05, 05]
-0A9F; [70 56, 05, 05]
+093D; [6F 94, 05, 05]
-0AA0; [70 58, 05, 05]
+097D; [6F 96, 05, 05]
-0AA1; [70 5A, 05, 05]
+093E; [6F 98, 05, 05]
-0AA2; [70 5C, 05, 05]
+093F; [6F 9A, 05, 05]
-0AA3; [70 5E, 05, 05]
+0940; [6F 9C, 05, 05]
-0AA4; [70 60, 05, 05]
+0941; [6F 9E, 05, 05]
-0AA5; [70 62, 05, 05]
+0942; [6F A0, 05, 05]
-0AA6; [70 64, 05, 05]
+0943; [6F A2, 05, 05]
-0AA7; [70 66, 05, 05]
+0944; [6F A4, 05, 05]
-0AA8; [70 68, 05, 05]
+0962; [6F A6, 05, 05]
-0AAA; [70 6A, 05, 05]
+0963; [6F A8, 05, 05]
-0AAB; [70 6C, 05, 05]
+0945; [6F AA, 05, 05]
-0AAC; [70 6E, 05, 05]
+0946; [6F AC, 05, 05]
-0AAD; [70 70, 05, 05]
+0947; [6F AE, 05, 05]
-0AAE; [70 72, 05, 05]
+0948; [6F B0, 05, 05]
-0AAF; [70 74, 05, 05]
+0949; [6F B2, 05, 05]
-0AB0; [70 76, 05, 05]
+094A; [6F B4, 05, 05]
-0AB2; [70 78, 05, 05]
+094B; [6F B6, 05, 05]
-0AB3; [70 7A, 05, 05]
+094C; [6F B8, 05, 05]
-0AB5; [70 7C, 05, 05]
+094D; [6F BA, 05, 05]
-0AB6; [70 7E, 05, 05]
+0985; [70 20, 05, 05]
-0AB7; [70 80, 05, 05]
+0986; [70 22, 05, 05]
-0AB8; [70 82, 05, 05]
+0987; [70 24, 05, 05]
-0AB9; [70 84, 05, 05]
+0988; [70 26, 05, 05]
-0ABD; [70 86, 05, 05]
+0989; [70 28, 05, 05]
-0ABE; [70 88, 05, 05]
+098A; [70 2A, 05, 05]
-0ABF; [70 8A, 05, 05]
+098B; [70 2C, 05, 05]
-0AC0; [70 8C, 05, 05]
+09E0; [70 2E, 05, 05]
-0AC1; [70 8E, 05, 05]
+098C; [70 30, 05, 05]
-0AC2; [70 90, 05, 05]
+09E1; [70 32, 05, 05]
-0AC3; [70 92, 05, 05]
+098F; [70 34, 05, 05]
-0AC4; [70 94, 05, 05]
+0990; [70 36, 05, 05]
-0AE2; [70 96, 05, 05]
+0993; [70 38, 05, 05]
-0AE3; [70 98, 05, 05]
+0994; [70 3A, 05, 05]
-0AC5; [70 9A, 05, 05]
+0995; [70 3C, 05, 05]
-0AC7; [70 9C, 05, 05]
+0996; [70 3E, 05, 05]
-0AC8; [70 9E, 05, 05]
+0997; [70 40, 05, 05]
-0AC9; [70 A0, 05, 05]
+0998; [70 42, 05, 05]
-0ACB; [70 A2, 05, 05]
+0999; [70 44, 05, 05]
-0ACC; [70 A4, 05, 05]
+099A; [70 46, 05, 05]
-0ACD; [70 A6, 05, 05]
+099B; [70 48, 05, 05]
-0B05; [71 20, 05, 05]
+099C; [70 4A, 05, 05]
-0B06; [71 22, 05, 05]
+099D; [70 4C, 05, 05]
-0B07; [71 24, 05, 05]
+099E; [70 4E, 05, 05]
-0B08; [71 26, 05, 05]
+099F; [70 50, 05, 05]
-0B09; [71 28, 05, 05]
+09A0; [70 52, 05, 05]
-0B0A; [71 2A, 05, 05]
+09A1; [70 54, 05, 05]
+09DC; [70 54, 05, 05][, DA 25, 05]
-0B0B; [71 2C, 05, 05]
+09A2; [70 56, 05, 05]
+09DD; [70 56, 05, 05][, DA 25, 05]
-0B60; [71 2E, 05, 05]
+09A3; [70 58, 05, 05]
-0B0C; [71 30, 05, 05]
+09A4; [70 5A, 05, 05]
+09CE; [70 5A, 05, 09][70 9C, 05, 09]
-0B61; [71 32, 05, 05]
+09A5; [70 5C, 05, 05]
-0B0F; [71 34, 05, 05]
+09A6; [70 5E, 05, 05]
-0B10; [71 36, 05, 05]
+09A7; [70 60, 05, 05]
-0B13; [71 38, 05, 05]
+09A8; [70 62, 05, 05]
-0B14; [71 3A, 05, 05]
+09AA; [70 64, 05, 05]
-0B15; [71 3C, 05, 05]
+09AB; [70 66, 05, 05]
-0B16; [71 3E, 05, 05]
+09AC; [70 68, 05, 05]
-0B17; [71 40, 05, 05]
+09AD; [70 6A, 05, 05]
-0B18; [71 42, 05, 05]
+09AE; [70 6C, 05, 05]
-0B19; [71 44, 05, 05]
+09AF; [70 6E, 05, 05]
+09DF; [70 6E, 05, 05][, DA 25, 05]
-0B1A; [71 46, 05, 05]
+09B0; [70 70, 05, 05]
-0B1B; [71 48, 05, 05]
+09F0; [70 72, 05, 05]
-0B1C; [71 4A, 05, 05]
+09B2; [70 74, 05, 05]
-0B1D; [71 4C, 05, 05]
+09F1; [70 76, 05, 05]
-0B1E; [71 4E, 05, 05]
+09B6; [70 78, 05, 05]
-0B1F; [71 50, 05, 05]
+09B7; [70 7A, 05, 05]
-0B20; [71 52, 05, 05]
+09B8; [70 7C, 05, 05]
-0B21; [71 54, 05, 05]
-0B5C; [71 54, 05, 05][, D9 D1, 05]
+09B9; [70 7E, 05, 05]
-0B22; [71 56, 05, 05]
-0B5D; [71 56, 05, 05][, D9 D1, 05]
+09BD; [70 80, 05, 05]
-0B23; [71 58, 05, 05]
+09BE; [70 82, 05, 05]
-0B24; [71 5A, 05, 05]
+09BF; [70 84, 05, 05]
-0B25; [71 5C, 05, 05]
+09C0; [70 86, 05, 05]
-0B26; [71 5E, 05, 05]
+09C1; [70 88, 05, 05]
-0B27; [71 60, 05, 05]
+09C2; [70 8A, 05, 05]
-0B28; [71 62, 05, 05]
+09C3; [70 8C, 05, 05]
-0B2A; [71 64, 05, 05]
+09C4; [70 8E, 05, 05]
-0B2B; [71 66, 05, 05]
+09E2; [70 90, 05, 05]
-0B2C; [71 68, 05, 05]
+09E3; [70 92, 05, 05]
-0B2D; [71 6A, 05, 05]
+09C7; [70 94, 05, 05]
-0B2E; [71 6C, 05, 05]
+09C8; [70 96, 05, 05]
-0B2F; [71 6E, 05, 05]
+09C7 09BE; [70 98, 05, 05]
+09CB; [70 98, 05, 05]
-0B5F; [71 70, 05, 05]
+09C7 09D7; [70 9A, 05, 05]
+09CC; [70 9A, 05, 05]
-0B30; [71 72, 05, 05]
+09CD; [70 9C, 05, 05]
-0B32; [71 74, 05, 05]
+09D7; [70 9E, 05, 05]
-0B33; [71 76, 05, 05]
+0A74; [71 20, 05, 05]
-0B35; [71 78, 05, 05]
+0A73; [71 22, 05, 05]
-0B71; [71 7A, 05, 05]
+0A09; [71 24, 05, 05]
-0B36; [71 7C, 05, 05]
+0A0A; [71 26, 05, 05]
-0B37; [71 7E, 05, 05]
+0A13; [71 28, 05, 05]
-0B38; [71 80, 05, 05]
+0A05; [71 2A, 05, 05]
-0B39; [71 82, 05, 05]
+0A06; [71 2C, 05, 05]
-0B3D; [71 84, 05, 05]
+0A10; [71 2E, 05, 05]
-0B3E; [71 86, 05, 05]
+0A14; [71 30, 05, 05]
-0B3F; [71 88, 05, 05]
+0A72; [71 32, 05, 05]
-0B40; [71 8A, 05, 05]
+0A07; [71 34, 05, 05]
-0B41; [71 8C, 05, 05]
+0A08; [71 36, 05, 05]
-0B42; [71 8E, 05, 05]
+0A0F; [71 38, 05, 05]
-0B43; [71 90, 05, 05]
+0A38; [71 3A, 05, 05]
+0A36; [71 3A, 05, 05][, DA 65, 05]
-0B47; [71 92, 05, 05]
+0A39; [71 3C, 05, 05]
-0B47 0B56; [71 94, 05, 05]
-0B48; [71 94, 05, 05]
+0A15; [71 3E, 05, 05]
-0B47 0B3E; [71 96, 05, 05]
-0B4B; [71 96, 05, 05]
+0A16; [71 40, 05, 05]
+0A59; [71 40, 05, 05][, DA 65, 05]
-0B47 0B57; [71 98, 05, 05]
-0B4C; [71 98, 05, 05]
+0A17; [71 42, 05, 05]
+0A5A; [71 42, 05, 05][, DA 65, 05]
-0B4D; [71 9A, 05, 05]
+0A18; [71 44, 05, 05]
-0B56; [71 9C, 05, 05]
+0A19; [71 46, 05, 05]
-0B57; [71 9E, 05, 05]
+0A1A; [71 48, 05, 05]
-0B83; [72 20, 05, 05]
+0A1B; [71 4A, 05, 05]
-0B85; [72 22, 05, 05]
+0A1C; [71 4C, 05, 05]
+0A5B; [71 4C, 05, 05][, DA 65, 05]
-0B86; [72 24, 05, 05]
+0A1D; [71 4E, 05, 05]
-0B87; [72 26, 05, 05]
+0A1E; [71 50, 05, 05]
-0B88; [72 28, 05, 05]
+0A1F; [71 52, 05, 05]
-0B89; [72 2A, 05, 05]
+0A20; [71 54, 05, 05]
-0B8A; [72 2C, 05, 05]
+0A21; [71 56, 05, 05]
-0B8E; [72 2E, 05, 05]
+0A22; [71 58, 05, 05]
-0B8F; [72 30, 05, 05]
+0A23; [71 5A, 05, 05]
-0B90; [72 32, 05, 05]
+0A24; [71 5C, 05, 05]
-0B92; [72 34, 05, 05]
+0A25; [71 5E, 05, 05]
-0B93; [72 36, 05, 05]
+0A26; [71 60, 05, 05]
-0B92 0BD7; [72 38, 05, 05]
-0B94; [72 38, 05, 05]
+0A27; [71 62, 05, 05]
-0B95; [72 3A, 05, 05]
+0A28; [71 64, 05, 05]
-0B99; [72 3C, 05, 05]
+0A2A; [71 66, 05, 05]
-0B9A; [72 3E, 05, 05]
+0A2B; [71 68, 05, 05]
+0A5E; [71 68, 05, 05][, DA 65, 05]
-0B9C; [72 40, 05, 05]
+0A2C; [71 6A, 05, 05]
-0B9E; [72 42, 05, 05]
+0A2D; [71 6C, 05, 05]
-0B9F; [72 44, 05, 05]
+0A2E; [71 6E, 05, 05]
-0BA3; [72 46, 05, 05]
+0A2F; [71 70, 05, 05]
-0BA4; [72 48, 05, 05]
+0A30; [71 72, 05, 05]
-0BA8; [72 4A, 05, 05]
+0A32; [71 74, 05, 05]
+0A33; [71 74, 05, 05][, DA 65, 05]
-0BA9; [72 4C, 05, 05]
+0A35; [71 76, 05, 05]
-0BAA; [72 4E, 05, 05]
+0A5C; [71 78, 05, 05]
-0BAE; [72 50, 05, 05]
+0A3E; [71 7A, 05, 05]
-0BAF; [72 52, 05, 05]
+0A3F; [71 7C, 05, 05]
-0BB0; [72 54, 05, 05]
+0A40; [71 7E, 05, 05]
-0BB1; [72 56, 05, 05]
+0A41; [71 80, 05, 05]
-0BB2; [72 58, 05, 05]
+0A42; [71 82, 05, 05]
-0BB3; [72 5A, 05, 05]
+0A47; [71 84, 05, 05]
-0BB4; [72 5C, 05, 05]
+0A48; [71 86, 05, 05]
-0BB5; [72 5E, 05, 05]
+0A4B; [71 88, 05, 05]
-0BB6; [72 60, 05, 05]
+0A4C; [71 8A, 05, 05]
-0BB7; [72 62, 05, 05]
+0A4D; [71 8C, 05, 05]
-0BB8; [72 64, 05, 05]
+0AD0; [72 20, 05, 05]
-0BB9; [72 66, 05, 05]
+0A85; [72 22, 05, 05]
-0BBE; [72 68, 05, 05]
+0A86; [72 24, 05, 05]
-0BBF; [72 6A, 05, 05]
+0A87; [72 26, 05, 05]
-0BC0; [72 6C, 05, 05]
+0A88; [72 28, 05, 05]
-0BC1; [72 6E, 05, 05]
+0A89; [72 2A, 05, 05]
-0BC2; [72 70, 05, 05]
+0A8A; [72 2C, 05, 05]
-0BC6; [72 72, 05, 05]
+0A8B; [72 2E, 05, 05]
-0BC7; [72 74, 05, 05]
+0AE0; [72 30, 05, 05]
-0BC8; [72 76, 05, 05]
+0A8C; [72 32, 05, 05]
-0BC6 0BBE; [72 78, 05, 05]
-0BCA; [72 78, 05, 05]
+0AE1; [72 34, 05, 05]
-0BC7 0BBE; [72 7A, 05, 05]
-0BCB; [72 7A, 05, 05]
+0A8D; [72 36, 05, 05]
-0BC6 0BD7; [72 7C, 05, 05]
-0BCC; [72 7C, 05, 05]
+0A8F; [72 38, 05, 05]
-0BCD; [72 7E, 05, 05]
+0A90; [72 3A, 05, 05]
-0BD7; [72 80, 05, 05]
+0A91; [72 3C, 05, 05]
-0C05; [73 20, 05, 05]
+0A93; [72 3E, 05, 05]
-0C06; [73 22, 05, 05]
+0A94; [72 40, 05, 05]
-0C07; [73 24, 05, 05]
+0A95; [72 42, 05, 05]
-0C08; [73 26, 05, 05]
+0A96; [72 44, 05, 05]
-0C09; [73 28, 05, 05]
+0A97; [72 46, 05, 05]
-0C0A; [73 2A, 05, 05]
+0A98; [72 48, 05, 05]
-0C0B; [73 2C, 05, 05]
+0A99; [72 4A, 05, 05]
-0C60; [73 2E, 05, 05]
+0A9A; [72 4C, 05, 05]
-0C0C; [73 30, 05, 05]
+0A9B; [72 4E, 05, 05]
-0C61; [73 32, 05, 05]
+0A9C; [72 50, 05, 05]
-0C0E; [73 34, 05, 05]
+0A9D; [72 52, 05, 05]
-0C0F; [73 36, 05, 05]
+0A9E; [72 54, 05, 05]
-0C10; [73 38, 05, 05]
+0A9F; [72 56, 05, 05]
-0C12; [73 3A, 05, 05]
+0AA0; [72 58, 05, 05]
-0C13; [73 3C, 05, 05]
+0AA1; [72 5A, 05, 05]
-0C14; [73 3E, 05, 05]
+0AA2; [72 5C, 05, 05]
-0C15; [73 40, 05, 05]
+0AA3; [72 5E, 05, 05]
-0C16; [73 42, 05, 05]
+0AA4; [72 60, 05, 05]
-0C17; [73 44, 05, 05]
+0AA5; [72 62, 05, 05]
-0C18; [73 46, 05, 05]
+0AA6; [72 64, 05, 05]
-0C19; [73 48, 05, 05]
+0AA7; [72 66, 05, 05]
-0C1A; [73 4A, 05, 05]
+0AA8; [72 68, 05, 05]
-0C1B; [73 4C, 05, 05]
+0AAA; [72 6A, 05, 05]
-0C1C; [73 4E, 05, 05]
+0AAB; [72 6C, 05, 05]
-0C1D; [73 50, 05, 05]
+0AAC; [72 6E, 05, 05]
-0C1E; [73 52, 05, 05]
+0AAD; [72 70, 05, 05]
-0C1F; [73 54, 05, 05]
+0AAE; [72 72, 05, 05]
-0C20; [73 56, 05, 05]
+0AAF; [72 74, 05, 05]
-0C21; [73 58, 05, 05]
+0AB0; [72 76, 05, 05]
-0C22; [73 5A, 05, 05]
+0AB2; [72 78, 05, 05]
-0C23; [73 5C, 05, 05]
+0AB3; [72 7A, 05, 05]
-0C24; [73 5E, 05, 05]
+0AB5; [72 7C, 05, 05]
-0C25; [73 60, 05, 05]
+0AB6; [72 7E, 05, 05]
-0C26; [73 62, 05, 05]
+0AB7; [72 80, 05, 05]
-0C27; [73 64, 05, 05]
+0AB8; [72 82, 05, 05]
-0C28; [73 66, 05, 05]
+0AB9; [72 84, 05, 05]
-0C2A; [73 68, 05, 05]
+0ABD; [72 86, 05, 05]
-0C2B; [73 6A, 05, 05]
+0ABE; [72 88, 05, 05]
-0C2C; [73 6C, 05, 05]
+0ABF; [72 8A, 05, 05]
-0C2D; [73 6E, 05, 05]
+0AC0; [72 8C, 05, 05]
-0C2E; [73 70, 05, 05]
+0AC1; [72 8E, 05, 05]
-0C2F; [73 72, 05, 05]
+0AC2; [72 90, 05, 05]
-0C30; [73 74, 05, 05]
+0AC3; [72 92, 05, 05]
-0C31; [73 76, 05, 05]
+0AC4; [72 94, 05, 05]
-0C32; [73 78, 05, 05]
+0AE2; [72 96, 05, 05]
-0C33; [73 7A, 05, 05]
+0AE3; [72 98, 05, 05]
-0C35; [73 7C, 05, 05]
+0AC5; [72 9A, 05, 05]
-0C36; [73 7E, 05, 05]
+0AC7; [72 9C, 05, 05]
-0C37; [73 80, 05, 05]
+0AC8; [72 9E, 05, 05]
-0C38; [73 82, 05, 05]
+0AC9; [72 A0, 05, 05]
-0C39; [73 84, 05, 05]
+0ACB; [72 A2, 05, 05]
-0C3E; [73 86, 05, 05]
+0ACC; [72 A4, 05, 05]
-0C3F; [73 88, 05, 05]
+0ACD; [72 A6, 05, 05]
-0C40; [73 8A, 05, 05]
+0B05; [73 20, 05, 05]
-0C41; [73 8C, 05, 05]
+0B06; [73 22, 05, 05]
-0C42; [73 8E, 05, 05]
+0B07; [73 24, 05, 05]
-0C43; [73 90, 05, 05]
+0B08; [73 26, 05, 05]
-0C44; [73 92, 05, 05]
+0B09; [73 28, 05, 05]
-0C46; [73 94, 05, 05]
+0B0A; [73 2A, 05, 05]
-0C47; [73 96, 05, 05]
+0B0B; [73 2C, 05, 05]
-0C46 0C56; [73 98, 05, 05]
-0C48; [73 98, 05, 05]
+0B60; [73 2E, 05, 05]
-0C4A; [73 9A, 05, 05]
+0B0C; [73 30, 05, 05]
-0C4B; [73 9C, 05, 05]
+0B61; [73 32, 05, 05]
-0C4C; [73 9E, 05, 05]
+0B0F; [73 34, 05, 05]
-0C4D; [73 A0, 05, 05]
+0B10; [73 36, 05, 05]
-0C55; [73 A2, 05, 05]
+0B13; [73 38, 05, 05]
-0C56; [73 A4, 05, 05]
+0B14; [73 3A, 05, 05]
-0C85; [74 20, 05, 05]
+0B15; [73 3C, 05, 05]
-0C86; [74 22, 05, 05]
+0B16; [73 3E, 05, 05]
-0C87; [74 24, 05, 05]
+0B17; [73 40, 05, 05]
-0C88; [74 26, 05, 05]
+0B18; [73 42, 05, 05]
-0C89; [74 28, 05, 05]
+0B19; [73 44, 05, 05]
-0C8A; [74 2A, 05, 05]
+0B1A; [73 46, 05, 05]
-0C8B; [74 2C, 05, 05]
+0B1B; [73 48, 05, 05]
-0CE0; [74 2E, 05, 05]
+0B1C; [73 4A, 05, 05]
-0C8C; [74 30, 05, 05]
+0B1D; [73 4C, 05, 05]
-0CE1; [74 32, 05, 05]
+0B1E; [73 4E, 05, 05]
-0C8E; [74 34, 05, 05]
+0B1F; [73 50, 05, 05]
-0C8F; [74 36, 05, 05]
+0B20; [73 52, 05, 05]
-0C90; [74 38, 05, 05]
+0B21; [73 54, 05, 05]
+0B5C; [73 54, 05, 05][, DB 09, 05]
-0C92; [74 3A, 05, 05]
+0B22; [73 56, 05, 05]
+0B5D; [73 56, 05, 05][, DB 09, 05]
-0C93; [74 3C, 05, 05]
+0B23; [73 58, 05, 05]
-0C94; [74 3E, 05, 05]
+0B24; [73 5A, 05, 05]
-0C95; [74 40, 05, 05]
+0B25; [73 5C, 05, 05]
-0C96; [74 42, 05, 05]
+0B26; [73 5E, 05, 05]
-0C97; [74 44, 05, 05]
+0B27; [73 60, 05, 05]
-0C98; [74 46, 05, 05]
+0B28; [73 62, 05, 05]
-0C99; [74 48, 05, 05]
+0B2A; [73 64, 05, 05]
-0C9A; [74 4A, 05, 05]
+0B2B; [73 66, 05, 05]
-0C9B; [74 4C, 05, 05]
+0B2C; [73 68, 05, 05]
-0C9C; [74 4E, 05, 05]
+0B2D; [73 6A, 05, 05]
-0C9D; [74 50, 05, 05]
+0B2E; [73 6C, 05, 05]
-0C9E; [74 52, 05, 05]
+0B2F; [73 6E, 05, 05]
-0C9F; [74 54, 05, 05]
+0B5F; [73 70, 05, 05]
-0CA0; [74 56, 05, 05]
+0B30; [73 72, 05, 05]
-0CA1; [74 58, 05, 05]
+0B32; [73 74, 05, 05]
-0CA2; [74 5A, 05, 05]
+0B33; [73 76, 05, 05]
-0CA3; [74 5C, 05, 05]
+0B35; [73 78, 05, 05]
-0CA4; [74 5E, 05, 05]
+0B71; [73 7A, 05, 05]
-0CA5; [74 60, 05, 05]
+0B36; [73 7C, 05, 05]
-0CA6; [74 62, 05, 05]
+0B37; [73 7E, 05, 05]
-0CA7; [74 64, 05, 05]
+0B38; [73 80, 05, 05]
-0CA8; [74 66, 05, 05]
+0B39; [73 82, 05, 05]
-0CAA; [74 68, 05, 05]
+0B3D; [73 84, 05, 05]
-0CAB; [74 6A, 05, 05]
+0B3E; [73 86, 05, 05]
-0CAC; [74 6C, 05, 05]
+0B3F; [73 88, 05, 05]
-0CAD; [74 6E, 05, 05]
+0B40; [73 8A, 05, 05]
-0CAE; [74 70, 05, 05]
+0B41; [73 8C, 05, 05]
-0CAF; [74 72, 05, 05]
+0B42; [73 8E, 05, 05]
-0CB0; [74 74, 05, 05]
+0B43; [73 90, 05, 05]
-0CB1; [74 76, 05, 05]
+0B47; [73 92, 05, 05]
-0CB2; [74 78, 05, 05]
+0B47 0B56; [73 94, 05, 05]
+0B48; [73 94, 05, 05]
-0CB5; [74 7A, 05, 05]
+0B47 0B3E; [73 96, 05, 05]
+0B4B; [73 96, 05, 05]
-0CB6; [74 7C, 05, 05]
+0B47 0B57; [73 98, 05, 05]
+0B4C; [73 98, 05, 05]
-0CB7; [74 7E, 05, 05]
+0B4D; [73 9A, 05, 05]
-0CB8; [74 80, 05, 05]
+0B56; [73 9C, 05, 05]
-0CB9; [74 82, 05, 05]
+0B57; [73 9E, 05, 05]
-0CB3; [74 84, 05, 05]
+0B83; [74 20, 05, 05]
-0CDE; [74 86, 05, 05]
+0B85; [74 22, 05, 05]
-0CBD; [74 88, 05, 05]
+0B86; [74 24, 05, 05]
-0CBE; [74 8A, 05, 05]
+0B87; [74 26, 05, 05]
-0CBF; [74 8C, 05, 05]
+0B88; [74 28, 05, 05]
-0CBF 0CD5; [74 8E, 05, 05]
-0CC0; [74 8E, 05, 05]
+0B89; [74 2A, 05, 05]
-0CC1; [74 90, 05, 05]
+0B8A; [74 2C, 05, 05]
-0CC2; [74 92, 05, 05]
+0B8E; [74 2E, 05, 05]
-0CC3; [74 94, 05, 05]
+0B8F; [74 30, 05, 05]
-0CC4; [74 96, 05, 05]
+0B90; [74 32, 05, 05]
-0CC6; [74 98, 05, 05]
+0B92; [74 34, 05, 05]
-0CC6 0CD5; [74 9A, 05, 05]
-0CC7; [74 9A, 05, 05]
+0B93; [74 36, 05, 05]
-0CC6 0CD6; [74 9C, 05, 05]
-0CC8; [74 9C, 05, 05]
+0B92 0BD7; [74 38, 05, 05]
+0B94; [74 38, 05, 05]
-0CC6 0CC2; [74 9E, 05, 05]
-0CCA; [74 9E, 05, 05]
+0B95; [74 3A, 05, 05]
-0CC6 0CC2 0CD5; [74 A0, 05, 05]
-0CCA 0CD5; [74 A0, 05, 05]
-0CCB; [74 A0, 05, 05]
+0B99; [74 3C, 05, 05]
-0CCC; [74 A2, 05, 05]
+0B9A; [74 3E, 05, 05]
-0CCD; [74 A4, 05, 05]
+0B9C; [74 40, 05, 05]
-0CD5; [74 A6, 05, 05]
+0B9E; [74 42, 05, 05]
-0CD6; [74 A8, 05, 05]
+0B9F; [74 44, 05, 05]
-0D05; [75 20, 05, 05]
+0BA3; [74 46, 05, 05]
-0D06; [75 22, 05, 05]
+0BA4; [74 48, 05, 05]
-0D07; [75 24, 05, 05]
+0BA8; [74 4A, 05, 05]
-0D08; [75 26, 05, 05]
+0BA9; [74 4C, 05, 05]
-0D09; [75 28, 05, 05]
+0BAA; [74 4E, 05, 05]
-0D0A; [75 2A, 05, 05]
+0BAE; [74 50, 05, 05]
-0D0B; [75 2C, 05, 05]
+0BAF; [74 52, 05, 05]
-0D60; [75 2E, 05, 05]
+0BB0; [74 54, 05, 05]
-0D0C; [75 30, 05, 05]
+0BB1; [74 56, 05, 05]
-0D61; [75 32, 05, 05]
+0BB2; [74 58, 05, 05]
-0D0E; [75 34, 05, 05]
+0BB3; [74 5A, 05, 05]
-0D0F; [75 36, 05, 05]
+0BB4; [74 5C, 05, 05]
-0D10; [75 38, 05, 05]
+0BB5; [74 5E, 05, 05]
-0D12; [75 3A, 05, 05]
+0BB6; [74 60, 05, 05]
-0D13; [75 3C, 05, 05]
+0BB7; [74 62, 05, 05]
-0D14; [75 3E, 05, 05]
+0BB8; [74 64, 05, 05]
-0D15; [75 40, 05, 05]
+0BB9; [74 66, 05, 05]
-0D16; [75 42, 05, 05]
+0BBE; [74 68, 05, 05]
-0D17; [75 44, 05, 05]
+0BBF; [74 6A, 05, 05]
-0D18; [75 46, 05, 05]
+0BC0; [74 6C, 05, 05]
-0D19; [75 48, 05, 05]
+0BC1; [74 6E, 05, 05]
-0D1A; [75 4A, 05, 05]
+0BC2; [74 70, 05, 05]
-0D1B; [75 4C, 05, 05]
+0BC6; [74 72, 05, 05]
-0D1C; [75 4E, 05, 05]
+0BC7; [74 74, 05, 05]
-0D1D; [75 50, 05, 05]
+0BC8; [74 76, 05, 05]
-0D1E; [75 52, 05, 05]
+0BC6 0BBE; [74 78, 05, 05]
+0BCA; [74 78, 05, 05]
-0D1F; [75 54, 05, 05]
+0BC7 0BBE; [74 7A, 05, 05]
+0BCB; [74 7A, 05, 05]
-0D20; [75 56, 05, 05]
+0BC6 0BD7; [74 7C, 05, 05]
+0BCC; [74 7C, 05, 05]
-0D21; [75 58, 05, 05]
+0BCD; [74 7E, 05, 05]
-0D22; [75 5A, 05, 05]
+0BD7; [74 80, 05, 05]
-0D23; [75 5C, 05, 05]
+0C05; [75 20, 05, 05]
-0D24; [75 5E, 05, 05]
+0C06; [75 22, 05, 05]
-0D25; [75 60, 05, 05]
+0C07; [75 24, 05, 05]
-0D26; [75 62, 05, 05]
+0C08; [75 26, 05, 05]
-0D27; [75 64, 05, 05]
+0C09; [75 28, 05, 05]
-0D28; [75 66, 05, 05]
+0C0A; [75 2A, 05, 05]
-0D2A; [75 68, 05, 05]
+0C0B; [75 2C, 05, 05]
-0D2B; [75 6A, 05, 05]
+0C60; [75 2E, 05, 05]
-0D2C; [75 6C, 05, 05]
+0C0C; [75 30, 05, 05]
-0D2D; [75 6E, 05, 05]
+0C61; [75 32, 05, 05]
-0D2E; [75 70, 05, 05]
+0C0E; [75 34, 05, 05]
-0D2F; [75 72, 05, 05]
+0C0F; [75 36, 05, 05]
-0D30; [75 74, 05, 05]
+0C10; [75 38, 05, 05]
-0D31; [75 76, 05, 05]
+0C12; [75 3A, 05, 05]
-0D32; [75 78, 05, 05]
+0C13; [75 3C, 05, 05]
-0D33; [75 7A, 05, 05]
+0C14; [75 3E, 05, 05]
-0D34; [75 7C, 05, 05]
+0C15; [75 40, 05, 05]
-0D35; [75 7E, 05, 05]
+0C16; [75 42, 05, 05]
-0D36; [75 80, 05, 05]
+0C17; [75 44, 05, 05]
-0D37; [75 82, 05, 05]
+0C18; [75 46, 05, 05]
-0D38; [75 84, 05, 05]
+0C19; [75 48, 05, 05]
-0D39; [75 86, 05, 05]
+0C1A; [75 4A, 05, 05]
-0D3E; [75 88, 05, 05]
+0C1B; [75 4C, 05, 05]
-0D3F; [75 8A, 05, 05]
+0C1C; [75 4E, 05, 05]
-0D40; [75 8C, 05, 05]
+0C1D; [75 50, 05, 05]
-0D41; [75 8E, 05, 05]
+0C1E; [75 52, 05, 05]
-0D42; [75 90, 05, 05]
+0C1F; [75 54, 05, 05]
-0D43; [75 92, 05, 05]
+0C20; [75 56, 05, 05]
-0D46; [75 94, 05, 05]
+0C21; [75 58, 05, 05]
-0D47; [75 96, 05, 05]
+0C22; [75 5A, 05, 05]
-0D48; [75 98, 05, 05]
+0C23; [75 5C, 05, 05]
-0D46 0D3E; [75 9A, 05, 05]
-0D4A; [75 9A, 05, 05]
+0C24; [75 5E, 05, 05]
-0D47 0D3E; [75 9C, 05, 05]
-0D4B; [75 9C, 05, 05]
+0C25; [75 60, 05, 05]
-0D46 0D57; [75 9E, 05, 05]
-0D4C; [75 9E, 05, 05]
+0C26; [75 62, 05, 05]
-0D4D; [75 A0, 05, 05]
+0C27; [75 64, 05, 05]
-0D57; [75 A2, 05, 05]
+0C28; [75 66, 05, 05]
-0D85; [76 20, 05, 05]
+0C2A; [75 68, 05, 05]
-0D86; [76 22, 05, 05]
+0C2B; [75 6A, 05, 05]
-0D87; [76 24, 05, 05]
+0C2C; [75 6C, 05, 05]
-0D88; [76 26, 05, 05]
+0C2D; [75 6E, 05, 05]
-0D89; [76 28, 05, 05]
+0C2E; [75 70, 05, 05]
-0D8A; [76 2A, 05, 05]
+0C2F; [75 72, 05, 05]
-0D8B; [76 2C, 05, 05]
+0C30; [75 74, 05, 05]
-0D8C; [76 2E, 05, 05]
+0C31; [75 76, 05, 05]
-0D8D; [76 30, 05, 05]
+0C32; [75 78, 05, 05]
-0D8E; [76 32, 05, 05]
+0C33; [75 7A, 05, 05]
-0D8F; [76 34, 05, 05]
+0C35; [75 7C, 05, 05]
-0D90; [76 36, 05, 05]
+0C36; [75 7E, 05, 05]
-0D91; [76 38, 05, 05]
+0C37; [75 80, 05, 05]
-0D92; [76 3A, 05, 05]
+0C38; [75 82, 05, 05]
-0D93; [76 3C, 05, 05]
+0C39; [75 84, 05, 05]
-0D94; [76 3E, 05, 05]
+0C3E; [75 86, 05, 05]
-0D95; [76 40, 05, 05]
+0C3F; [75 88, 05, 05]
-0D96; [76 42, 05, 05]
+0C40; [75 8A, 05, 05]
-0D9A; [76 44, 05, 05]
+0C41; [75 8C, 05, 05]
-0D9B; [76 46, 05, 05]
+0C42; [75 8E, 05, 05]
-0D9C; [76 48, 05, 05]
+0C43; [75 90, 05, 05]
-0D9D; [76 4A, 05, 05]
+0C44; [75 92, 05, 05]
-0D9E; [76 4C, 05, 05]
+0C46; [75 94, 05, 05]
-0D9F; [76 4E, 05, 05]
+0C47; [75 96, 05, 05]
-0DA0; [76 50, 05, 05]
+0C46 0C56; [75 98, 05, 05]
+0C48; [75 98, 05, 05]
-0DA1; [76 52, 05, 05]
+0C4A; [75 9A, 05, 05]
-0DA2; [76 54, 05, 05]
+0C4B; [75 9C, 05, 05]
-0DA3; [76 56, 05, 05]
+0C4C; [75 9E, 05, 05]
-0DA4; [76 58, 05, 05]
+0C4D; [75 A0, 05, 05]
-0DA5; [76 5A, 05, 05]
+0C55; [75 A2, 05, 05]
-0DA6; [76 5C, 05, 05]
+0C56; [75 A4, 05, 05]
-0DA7; [76 5E, 05, 05]
+0C85; [76 20, 05, 05]
-0DA8; [76 60, 05, 05]
+0C86; [76 22, 05, 05]
-0DA9; [76 62, 05, 05]
+0C87; [76 24, 05, 05]
-0DAA; [76 64, 05, 05]
+0C88; [76 26, 05, 05]
-0DAB; [76 66, 05, 05]
+0C89; [76 28, 05, 05]
-0DAC; [76 68, 05, 05]
+0C8A; [76 2A, 05, 05]
-0DAD; [76 6A, 05, 05]
+0C8B; [76 2C, 05, 05]
-0DAE; [76 6C, 05, 05]
+0CE0; [76 2E, 05, 05]
-0DAF; [76 6E, 05, 05]
+0C8C; [76 30, 05, 05]
-0DB0; [76 70, 05, 05]
+0CE1; [76 32, 05, 05]
-0DB1; [76 72, 05, 05]
+0C8E; [76 34, 05, 05]
-0DB3; [76 74, 05, 05]
+0C8F; [76 36, 05, 05]
-0DB4; [76 76, 05, 05]
+0C90; [76 38, 05, 05]
-0DB5; [76 78, 05, 05]
+0C92; [76 3A, 05, 05]
-0DB6; [76 7A, 05, 05]
+0C93; [76 3C, 05, 05]
-0DB7; [76 7C, 05, 05]
+0C94; [76 3E, 05, 05]
-0DB8; [76 7E, 05, 05]
+0C95; [76 40, 05, 05]
-0DB9; [76 80, 05, 05]
+0C96; [76 42, 05, 05]
-0DBA; [76 82, 05, 05]
+0C97; [76 44, 05, 05]
-0DBB; [76 84, 05, 05]
+0C98; [76 46, 05, 05]
-0DBD; [76 86, 05, 05]
+0C99; [76 48, 05, 05]
-0DC0; [76 88, 05, 05]
+0C9A; [76 4A, 05, 05]
-0DC1; [76 8A, 05, 05]
+0C9B; [76 4C, 05, 05]
-0DC2; [76 8C, 05, 05]
+0C9C; [76 4E, 05, 05]
-0DC3; [76 8E, 05, 05]
+0C9D; [76 50, 05, 05]
-0DC4; [76 90, 05, 05]
+0C9E; [76 52, 05, 05]
-0DC5; [76 92, 05, 05]
+0C9F; [76 54, 05, 05]
-0DC6; [76 94, 05, 05]
+0CA0; [76 56, 05, 05]
-0DCA; [76 96, 05, 05]
+0CA1; [76 58, 05, 05]
-0DCF; [76 98, 05, 05]
+0CA2; [76 5A, 05, 05]
-0DD0; [76 9A, 05, 05]
+0CA3; [76 5C, 05, 05]
-0DD1; [76 9C, 05, 05]
+0CA4; [76 5E, 05, 05]
-0DD2; [76 9E, 05, 05]
+0CA5; [76 60, 05, 05]
-0DD3; [76 A0, 05, 05]
+0CA6; [76 62, 05, 05]
-0DD4; [76 A2, 05, 05]
+0CA7; [76 64, 05, 05]
-0DD6; [76 A4, 05, 05]
+0CA8; [76 66, 05, 05]
-0DD8; [76 A6, 05, 05]
+0CAA; [76 68, 05, 05]
-0DD9; [76 A8, 05, 05]
+0CAB; [76 6A, 05, 05]
-0DD9 0DCA; [76 AA, 05, 05]
-0DDA; [76 AA, 05, 05]
+0CAC; [76 6C, 05, 05]
-0DDB; [76 AC, 05, 05]
+0CAD; [76 6E, 05, 05]
-0DD9 0DCF; [76 AE, 05, 05]
-0DDC; [76 AE, 05, 05]
+0CAE; [76 70, 05, 05]
-0DD9 0DCF 0DCA; [76 B0, 05, 05]
-0DDC 0DCA; [76 B0, 05, 05]
-0DDD; [76 B0, 05, 05]
+0CAF; [76 72, 05, 05]
-0DD9 0DDF; [76 B2, 05, 05]
-0DDE; [76 B2, 05, 05]
+0CB0; [76 74, 05, 05]
-0DDF; [76 B4, 05, 05]
+0CB1; [76 76, 05, 05]
-0DF2; [76 B6, 05, 05]
+0CB2; [76 78, 05, 05]
-0DF3; [76 B8, 05, 05]
+0CB5; [76 7A, 05, 05]
-A800; [77 20, 05, 05]
+0CB6; [76 7C, 05, 05]
-A801; [77 22, 05, 05]
+0CB7; [76 7E, 05, 05]
-A802; [77 24, 05, 05]
+0CB8; [76 80, 05, 05]
-A803; [77 26, 05, 05]
+0CB9; [76 82, 05, 05]
-A804; [77 28, 05, 05]
+0CB3; [76 84, 05, 05]
-A805; [77 2A, 05, 05]
+0CDE; [76 86, 05, 05]
-A806; [77 2C, 05, 05]
+0CBD; [76 88, 05, 05]
-A807; [77 2E, 05, 05]
+0CBE; [76 8A, 05, 05]
-A808; [77 30, 05, 05]
+0CBF; [76 8C, 05, 05]
-A809; [77 32, 05, 05]
+0CBF 0CD5; [76 8E, 05, 05]
+0CC0; [76 8E, 05, 05]
-A80A; [77 34, 05, 05]
+0CC1; [76 90, 05, 05]
-A80C; [77 36, 05, 05]
+0CC2; [76 92, 05, 05]
-A80D; [77 38, 05, 05]
+0CC3; [76 94, 05, 05]
-A80E; [77 3A, 05, 05]
+0CC4; [76 96, 05, 05]
-A80F; [77 3C, 05, 05]
+0CE2; [76 98, 05, 05]
-A810; [77 3E, 05, 05]
+0CE3; [76 9A, 05, 05]
-A811; [77 40, 05, 05]
+0CC6; [76 9C, 05, 05]
-A812; [77 42, 05, 05]
+0CC6 0CD5; [76 9E, 05, 05]
+0CC7; [76 9E, 05, 05]
-A813; [77 44, 05, 05]
+0CC6 0CD6; [76 A0, 05, 05]
+0CC8; [76 A0, 05, 05]
-A814; [77 46, 05, 05]
+0CC6 0CC2; [76 A2, 05, 05]
+0CCA; [76 A2, 05, 05]
-A815; [77 48, 05, 05]
+0CC6 0CC2 0CD5; [76 A4, 05, 05]
+0CCA 0CD5; [76 A4, 05, 05]
+0CCB; [76 A4, 05, 05]
-A816; [77 4A, 05, 05]
+0CCC; [76 A6, 05, 05]
-A817; [77 4C, 05, 05]
+0CCD; [76 A8, 05, 05]
-A818; [77 4E, 05, 05]
+0CD5; [76 AA, 05, 05]
-A819; [77 50, 05, 05]
+0CD6; [76 AC, 05, 05]
-A81A; [77 52, 05, 05]
+0D05; [77 20, 05, 05]
-A81B; [77 54, 05, 05]
+0D06; [77 22, 05, 05]
-A81C; [77 56, 05, 05]
+0D07; [77 24, 05, 05]
-A81D; [77 58, 05, 05]
+0D08; [77 26, 05, 05]
-A81E; [77 5A, 05, 05]
+0D09; [77 28, 05, 05]
-A81F; [77 5C, 05, 05]
+0D0A; [77 2A, 05, 05]
-A820; [77 5E, 05, 05]
+0D0B; [77 2C, 05, 05]
-A821; [77 60, 05, 05]
+0D60; [77 2E, 05, 05]
-A822; [77 62, 05, 05]
+0D0C; [77 30, 05, 05]
-A823; [77 64, 05, 05]
+0D61; [77 32, 05, 05]
-A824; [77 66, 05, 05]
+0D0E; [77 34, 05, 05]
-A825; [77 68, 05, 05]
+0D0F; [77 36, 05, 05]
-A826; [77 6A, 05, 05]
+0D10; [77 38, 05, 05]
-A827; [77 6C, 05, 05]
+0D12; [77 3A, 05, 05]
-D802 DE00; [77 6E, 05, 05]
+0D13; [77 3C, 05, 05]
-D802 DE01; [77 70, 05, 05]
+0D14; [77 3E, 05, 05]
-D802 DE02; [77 72, 05, 05]
+0D15; [77 40, 05, 05]
-D802 DE03; [77 74, 05, 05]
+0D16; [77 42, 05, 05]
-D802 DE05; [77 76, 05, 05]
+0D17; [77 44, 05, 05]
-D802 DE06; [77 78, 05, 05]
+0D18; [77 46, 05, 05]
-D802 DE0C; [77 7A, 05, 05]
+0D19; [77 48, 05, 05]
-D802 DE10; [77 7C, 05, 05]
+0D1A; [77 4A, 05, 05]
-D802 DE11; [77 7E, 05, 05]
+0D1B; [77 4C, 05, 05]
-D802 DE12; [77 80, 05, 05]
+0D1C; [77 4E, 05, 05]
-D802 DE13; [77 82, 05, 05]
+0D1D; [77 50, 05, 05]
-D802 DE15; [77 84, 05, 05]
+0D1E; [77 52, 05, 05]
-D802 DE16; [77 86, 05, 05]
+0D1F; [77 54, 05, 05]
-D802 DE17; [77 88, 05, 05]
+0D20; [77 56, 05, 05]
-D802 DE19; [77 8A, 05, 05]
+0D21; [77 58, 05, 05]
-D802 DE1A; [77 8C, 05, 05]
+0D22; [77 5A, 05, 05]
-D802 DE1B; [77 8E, 05, 05]
+0D23; [77 5C, 05, 05]
-D802 DE1C; [77 90, 05, 05]
+0D24; [77 5E, 05, 05]
-D802 DE1D; [77 92, 05, 05]
+0D25; [77 60, 05, 05]
-D802 DE1E; [77 94, 05, 05]
+0D26; [77 62, 05, 05]
-D802 DE1F; [77 96, 05, 05]
+0D27; [77 64, 05, 05]
-D802 DE20; [77 98, 05, 05]
+0D28; [77 66, 05, 05]
-D802 DE21; [77 9A, 05, 05]
+0D2A; [77 68, 05, 05]
-D802 DE22; [77 9C, 05, 05]
+0D2B; [77 6A, 05, 05]
-D802 DE23; [77 9E, 05, 05]
+0D2C; [77 6C, 05, 05]
-D802 DE24; [77 A0, 05, 05]
+0D2D; [77 6E, 05, 05]
-D802 DE25; [77 A2, 05, 05]
+0D2E; [77 70, 05, 05]
-D802 DE26; [77 A4, 05, 05]
+0D2F; [77 72, 05, 05]
-D802 DE27; [77 A6, 05, 05]
+0D30; [77 74, 05, 05]
-D802 DE28; [77 A8, 05, 05]
+0D31; [77 76, 05, 05]
-D802 DE29; [77 AA, 05, 05]
+0D32; [77 78, 05, 05]
-D802 DE2A; [77 AC, 05, 05]
+0D33; [77 7A, 05, 05]
-D802 DE2B; [77 AE, 05, 05]
+0D34; [77 7C, 05, 05]
-D802 DE2C; [77 B0, 05, 05]
+0D35; [77 7E, 05, 05]
-D802 DE2D; [77 B2, 05, 05]
+0D36; [77 80, 05, 05]
-D802 DE2E; [77 B4, 05, 05]
+0D37; [77 82, 05, 05]
-D802 DE2F; [77 B6, 05, 05]
+0D38; [77 84, 05, 05]
-D802 DE30; [77 B8, 05, 05]
+0D39; [77 86, 05, 05]
-D802 DE31; [77 BA, 05, 05]
+0D3E; [77 88, 05, 05]
-D802 DE32; [77 BC, 05, 05]
+0D3F; [77 8A, 05, 05]
-D802 DE33; [77 BE, 05, 05]
+0D40; [77 8C, 05, 05]
-D802 DE3F; [77 C0, 05, 05]
+0D41; [77 8E, 05, 05]
-0E01; [78 20, 05, 05]
-0E40 0E01; [78 20, 05, 05][78 94, 05, 3D]
-0E41 0E01; [78 20, 05, 05][78 96, 05, 3D]
-0E42 0E01; [78 20, 05, 05][78 98, 05, 3D]
-0E43 0E01; [78 20, 05, 05][78 9A, 05, 3D]
-0E44 0E01; [78 20, 05, 05][78 9C, 05, 3D]
+0D42; [77 90, 05, 05]
-0E02; [78 22, 05, 05]
-0E40 0E02; [78 22, 05, 05][78 94, 05, 3D]
-0E41 0E02; [78 22, 05, 05][78 96, 05, 3D]
-0E42 0E02; [78 22, 05, 05][78 98, 05, 3D]
-0E43 0E02; [78 22, 05, 05][78 9A, 05, 3D]
-0E44 0E02; [78 22, 05, 05][78 9C, 05, 3D]
+0D43; [77 92, 05, 05]
-0E03; [78 24, 05, 05]
-0E40 0E03; [78 24, 05, 05][78 94, 05, 3D]
-0E41 0E03; [78 24, 05, 05][78 96, 05, 3D]
-0E42 0E03; [78 24, 05, 05][78 98, 05, 3D]
-0E43 0E03; [78 24, 05, 05][78 9A, 05, 3D]
-0E44 0E03; [78 24, 05, 05][78 9C, 05, 3D]
+0D46; [77 94, 05, 05]
-0E04; [78 26, 05, 05]
-0E40 0E04; [78 26, 05, 05][78 94, 05, 3D]
-0E41 0E04; [78 26, 05, 05][78 96, 05, 3D]
-0E42 0E04; [78 26, 05, 05][78 98, 05, 3D]
-0E43 0E04; [78 26, 05, 05][78 9A, 05, 3D]
-0E44 0E04; [78 26, 05, 05][78 9C, 05, 3D]
+0D47; [77 96, 05, 05]
-0E05; [78 28, 05, 05]
-0E40 0E05; [78 28, 05, 05][78 94, 05, 3D]
-0E41 0E05; [78 28, 05, 05][78 96, 05, 3D]
-0E42 0E05; [78 28, 05, 05][78 98, 05, 3D]
-0E43 0E05; [78 28, 05, 05][78 9A, 05, 3D]
-0E44 0E05; [78 28, 05, 05][78 9C, 05, 3D]
+0D48; [77 98, 05, 05]
-0E06; [78 2A, 05, 05]
-0E40 0E06; [78 2A, 05, 05][78 94, 05, 3D]
-0E41 0E06; [78 2A, 05, 05][78 96, 05, 3D]
-0E42 0E06; [78 2A, 05, 05][78 98, 05, 3D]
-0E43 0E06; [78 2A, 05, 05][78 9A, 05, 3D]
-0E44 0E06; [78 2A, 05, 05][78 9C, 05, 3D]
+0D46 0D3E; [77 9A, 05, 05]
+0D4A; [77 9A, 05, 05]
-0E07; [78 2C, 05, 05]
-0E40 0E07; [78 2C, 05, 05][78 94, 05, 3D]
-0E41 0E07; [78 2C, 05, 05][78 96, 05, 3D]
-0E42 0E07; [78 2C, 05, 05][78 98, 05, 3D]
-0E43 0E07; [78 2C, 05, 05][78 9A, 05, 3D]
-0E44 0E07; [78 2C, 05, 05][78 9C, 05, 3D]
-
-0E08; [78 2E, 05, 05]
-0E40 0E08; [78 2E, 05, 05][78 94, 05, 3D]
-0E41 0E08; [78 2E, 05, 05][78 96, 05, 3D]
-0E42 0E08; [78 2E, 05, 05][78 98, 05, 3D]
-0E43 0E08; [78 2E, 05, 05][78 9A, 05, 3D]
-0E44 0E08; [78 2E, 05, 05][78 9C, 05, 3D]
-
-0E09; [78 30, 05, 05]
-0E40 0E09; [78 30, 05, 05][78 94, 05, 3D]
-0E41 0E09; [78 30, 05, 05][78 96, 05, 3D]
-0E42 0E09; [78 30, 05, 05][78 98, 05, 3D]
-0E43 0E09; [78 30, 05, 05][78 9A, 05, 3D]
-0E44 0E09; [78 30, 05, 05][78 9C, 05, 3D]
-
-0E0A; [78 32, 05, 05]
-0E40 0E0A; [78 32, 05, 05][78 94, 05, 3D]
-0E41 0E0A; [78 32, 05, 05][78 96, 05, 3D]
-0E42 0E0A; [78 32, 05, 05][78 98, 05, 3D]
-0E43 0E0A; [78 32, 05, 05][78 9A, 05, 3D]
-0E44 0E0A; [78 32, 05, 05][78 9C, 05, 3D]
-
-0E0B; [78 34, 05, 05]
-0E40 0E0B; [78 34, 05, 05][78 94, 05, 3D]
-0E41 0E0B; [78 34, 05, 05][78 96, 05, 3D]
-0E42 0E0B; [78 34, 05, 05][78 98, 05, 3D]
-0E43 0E0B; [78 34, 05, 05][78 9A, 05, 3D]
-0E44 0E0B; [78 34, 05, 05][78 9C, 05, 3D]
-
-0E0C; [78 36, 05, 05]
-0E40 0E0C; [78 36, 05, 05][78 94, 05, 3D]
-0E41 0E0C; [78 36, 05, 05][78 96, 05, 3D]
-0E42 0E0C; [78 36, 05, 05][78 98, 05, 3D]
-0E43 0E0C; [78 36, 05, 05][78 9A, 05, 3D]
-0E44 0E0C; [78 36, 05, 05][78 9C, 05, 3D]
-
-0E0D; [78 38, 05, 05]
-0E40 0E0D; [78 38, 05, 05][78 94, 05, 3D]
-0E41 0E0D; [78 38, 05, 05][78 96, 05, 3D]
-0E42 0E0D; [78 38, 05, 05][78 98, 05, 3D]
-0E43 0E0D; [78 38, 05, 05][78 9A, 05, 3D]
-0E44 0E0D; [78 38, 05, 05][78 9C, 05, 3D]
-
-0E0E; [78 3A, 05, 05]
-0E40 0E0E; [78 3A, 05, 05][78 94, 05, 3D]
-0E41 0E0E; [78 3A, 05, 05][78 96, 05, 3D]
-0E42 0E0E; [78 3A, 05, 05][78 98, 05, 3D]
-0E43 0E0E; [78 3A, 05, 05][78 9A, 05, 3D]
-0E44 0E0E; [78 3A, 05, 05][78 9C, 05, 3D]
-
-0E0F; [78 3C, 05, 05]
-0E40 0E0F; [78 3C, 05, 05][78 94, 05, 3D]
-0E41 0E0F; [78 3C, 05, 05][78 96, 05, 3D]
-0E42 0E0F; [78 3C, 05, 05][78 98, 05, 3D]
-0E43 0E0F; [78 3C, 05, 05][78 9A, 05, 3D]
-0E44 0E0F; [78 3C, 05, 05][78 9C, 05, 3D]
-
-0E10; [78 3E, 05, 05]
-0E40 0E10; [78 3E, 05, 05][78 94, 05, 3D]
-0E41 0E10; [78 3E, 05, 05][78 96, 05, 3D]
-0E42 0E10; [78 3E, 05, 05][78 98, 05, 3D]
-0E43 0E10; [78 3E, 05, 05][78 9A, 05, 3D]
-0E44 0E10; [78 3E, 05, 05][78 9C, 05, 3D]
-
-0E11; [78 40, 05, 05]
-0E40 0E11; [78 40, 05, 05][78 94, 05, 3D]
-0E41 0E11; [78 40, 05, 05][78 96, 05, 3D]
-0E42 0E11; [78 40, 05, 05][78 98, 05, 3D]
-0E43 0E11; [78 40, 05, 05][78 9A, 05, 3D]
-0E44 0E11; [78 40, 05, 05][78 9C, 05, 3D]
-
-0E12; [78 42, 05, 05]
-0E40 0E12; [78 42, 05, 05][78 94, 05, 3D]
-0E41 0E12; [78 42, 05, 05][78 96, 05, 3D]
-0E42 0E12; [78 42, 05, 05][78 98, 05, 3D]
-0E43 0E12; [78 42, 05, 05][78 9A, 05, 3D]
-0E44 0E12; [78 42, 05, 05][78 9C, 05, 3D]
-
-0E13; [78 44, 05, 05]
-0E40 0E13; [78 44, 05, 05][78 94, 05, 3D]
-0E41 0E13; [78 44, 05, 05][78 96, 05, 3D]
-0E42 0E13; [78 44, 05, 05][78 98, 05, 3D]
-0E43 0E13; [78 44, 05, 05][78 9A, 05, 3D]
-0E44 0E13; [78 44, 05, 05][78 9C, 05, 3D]
-
-0E14; [78 46, 05, 05]
-0E40 0E14; [78 46, 05, 05][78 94, 05, 3D]
-0E41 0E14; [78 46, 05, 05][78 96, 05, 3D]
-0E42 0E14; [78 46, 05, 05][78 98, 05, 3D]
-0E43 0E14; [78 46, 05, 05][78 9A, 05, 3D]
-0E44 0E14; [78 46, 05, 05][78 9C, 05, 3D]
-
-0E15; [78 48, 05, 05]
-0E40 0E15; [78 48, 05, 05][78 94, 05, 3D]
-0E41 0E15; [78 48, 05, 05][78 96, 05, 3D]
-0E42 0E15; [78 48, 05, 05][78 98, 05, 3D]
-0E43 0E15; [78 48, 05, 05][78 9A, 05, 3D]
-0E44 0E15; [78 48, 05, 05][78 9C, 05, 3D]
-
-0E16; [78 4A, 05, 05]
-0E40 0E16; [78 4A, 05, 05][78 94, 05, 3D]
-0E41 0E16; [78 4A, 05, 05][78 96, 05, 3D]
-0E42 0E16; [78 4A, 05, 05][78 98, 05, 3D]
-0E43 0E16; [78 4A, 05, 05][78 9A, 05, 3D]
-0E44 0E16; [78 4A, 05, 05][78 9C, 05, 3D]
-
-0E17; [78 4C, 05, 05]
-0E40 0E17; [78 4C, 05, 05][78 94, 05, 3D]
-0E41 0E17; [78 4C, 05, 05][78 96, 05, 3D]
-0E42 0E17; [78 4C, 05, 05][78 98, 05, 3D]
-0E43 0E17; [78 4C, 05, 05][78 9A, 05, 3D]
-0E44 0E17; [78 4C, 05, 05][78 9C, 05, 3D]
-
-0E18; [78 4E, 05, 05]
-0E40 0E18; [78 4E, 05, 05][78 94, 05, 3D]
-0E41 0E18; [78 4E, 05, 05][78 96, 05, 3D]
-0E42 0E18; [78 4E, 05, 05][78 98, 05, 3D]
-0E43 0E18; [78 4E, 05, 05][78 9A, 05, 3D]
-0E44 0E18; [78 4E, 05, 05][78 9C, 05, 3D]
-
-0E19; [78 50, 05, 05]
-0E40 0E19; [78 50, 05, 05][78 94, 05, 3D]
-0E41 0E19; [78 50, 05, 05][78 96, 05, 3D]
-0E42 0E19; [78 50, 05, 05][78 98, 05, 3D]
-0E43 0E19; [78 50, 05, 05][78 9A, 05, 3D]
-0E44 0E19; [78 50, 05, 05][78 9C, 05, 3D]
-
-0E1A; [78 52, 05, 05]
-0E40 0E1A; [78 52, 05, 05][78 94, 05, 3D]
-0E41 0E1A; [78 52, 05, 05][78 96, 05, 3D]
-0E42 0E1A; [78 52, 05, 05][78 98, 05, 3D]
-0E43 0E1A; [78 52, 05, 05][78 9A, 05, 3D]
-0E44 0E1A; [78 52, 05, 05][78 9C, 05, 3D]
-
-0E1B; [78 54, 05, 05]
-0E40 0E1B; [78 54, 05, 05][78 94, 05, 3D]
-0E41 0E1B; [78 54, 05, 05][78 96, 05, 3D]
-0E42 0E1B; [78 54, 05, 05][78 98, 05, 3D]
-0E43 0E1B; [78 54, 05, 05][78 9A, 05, 3D]
-0E44 0E1B; [78 54, 05, 05][78 9C, 05, 3D]
-
-0E1C; [78 56, 05, 05]
-0E40 0E1C; [78 56, 05, 05][78 94, 05, 3D]
-0E41 0E1C; [78 56, 05, 05][78 96, 05, 3D]
-0E42 0E1C; [78 56, 05, 05][78 98, 05, 3D]
-0E43 0E1C; [78 56, 05, 05][78 9A, 05, 3D]
-0E44 0E1C; [78 56, 05, 05][78 9C, 05, 3D]
-
-0E1D; [78 58, 05, 05]
-0E40 0E1D; [78 58, 05, 05][78 94, 05, 3D]
-0E41 0E1D; [78 58, 05, 05][78 96, 05, 3D]
-0E42 0E1D; [78 58, 05, 05][78 98, 05, 3D]
-0E43 0E1D; [78 58, 05, 05][78 9A, 05, 3D]
-0E44 0E1D; [78 58, 05, 05][78 9C, 05, 3D]
-
-0E1E; [78 5A, 05, 05]
-0E40 0E1E; [78 5A, 05, 05][78 94, 05, 3D]
-0E41 0E1E; [78 5A, 05, 05][78 96, 05, 3D]
-0E42 0E1E; [78 5A, 05, 05][78 98, 05, 3D]
-0E43 0E1E; [78 5A, 05, 05][78 9A, 05, 3D]
-0E44 0E1E; [78 5A, 05, 05][78 9C, 05, 3D]
-
-0E1F; [78 5C, 05, 05]
-0E40 0E1F; [78 5C, 05, 05][78 94, 05, 3D]
-0E41 0E1F; [78 5C, 05, 05][78 96, 05, 3D]
-0E42 0E1F; [78 5C, 05, 05][78 98, 05, 3D]
-0E43 0E1F; [78 5C, 05, 05][78 9A, 05, 3D]
-0E44 0E1F; [78 5C, 05, 05][78 9C, 05, 3D]
-
-0E20; [78 5E, 05, 05]
-0E40 0E20; [78 5E, 05, 05][78 94, 05, 3D]
-0E41 0E20; [78 5E, 05, 05][78 96, 05, 3D]
-0E42 0E20; [78 5E, 05, 05][78 98, 05, 3D]
-0E43 0E20; [78 5E, 05, 05][78 9A, 05, 3D]
-0E44 0E20; [78 5E, 05, 05][78 9C, 05, 3D]
-
-0E21; [78 60, 05, 05]
-0E40 0E21; [78 60, 05, 05][78 94, 05, 3D]
-0E41 0E21; [78 60, 05, 05][78 96, 05, 3D]
-0E42 0E21; [78 60, 05, 05][78 98, 05, 3D]
-0E43 0E21; [78 60, 05, 05][78 9A, 05, 3D]
-0E44 0E21; [78 60, 05, 05][78 9C, 05, 3D]
-
-0E22; [78 62, 05, 05]
-0E40 0E22; [78 62, 05, 05][78 94, 05, 3D]
-0E41 0E22; [78 62, 05, 05][78 96, 05, 3D]
-0E42 0E22; [78 62, 05, 05][78 98, 05, 3D]
-0E43 0E22; [78 62, 05, 05][78 9A, 05, 3D]
-0E44 0E22; [78 62, 05, 05][78 9C, 05, 3D]
-
-0E23; [78 64, 05, 05]
-0E40 0E23; [78 64, 05, 05][78 94, 05, 3D]
-0E41 0E23; [78 64, 05, 05][78 96, 05, 3D]
-0E42 0E23; [78 64, 05, 05][78 98, 05, 3D]
-0E43 0E23; [78 64, 05, 05][78 9A, 05, 3D]
-0E44 0E23; [78 64, 05, 05][78 9C, 05, 3D]
-
-0E24; [78 66, 05, 05]
-0E40 0E24; [78 66, 05, 05][78 94, 05, 3D]
-0E41 0E24; [78 66, 05, 05][78 96, 05, 3D]
-0E42 0E24; [78 66, 05, 05][78 98, 05, 3D]
-0E43 0E24; [78 66, 05, 05][78 9A, 05, 3D]
-0E44 0E24; [78 66, 05, 05][78 9C, 05, 3D]
-
-0E25; [78 68, 05, 05]
-0E40 0E25; [78 68, 05, 05][78 94, 05, 3D]
-0E41 0E25; [78 68, 05, 05][78 96, 05, 3D]
-0E42 0E25; [78 68, 05, 05][78 98, 05, 3D]
-0E43 0E25; [78 68, 05, 05][78 9A, 05, 3D]
-0E44 0E25; [78 68, 05, 05][78 9C, 05, 3D]
-
-0E26; [78 6A, 05, 05]
-0E40 0E26; [78 6A, 05, 05][78 94, 05, 3D]
-0E41 0E26; [78 6A, 05, 05][78 96, 05, 3D]
-0E42 0E26; [78 6A, 05, 05][78 98, 05, 3D]
-0E43 0E26; [78 6A, 05, 05][78 9A, 05, 3D]
-0E44 0E26; [78 6A, 05, 05][78 9C, 05, 3D]
-
-0E27; [78 6C, 05, 05]
-0E40 0E27; [78 6C, 05, 05][78 94, 05, 3D]
-0E41 0E27; [78 6C, 05, 05][78 96, 05, 3D]
-0E42 0E27; [78 6C, 05, 05][78 98, 05, 3D]
-0E43 0E27; [78 6C, 05, 05][78 9A, 05, 3D]
-0E44 0E27; [78 6C, 05, 05][78 9C, 05, 3D]
-
-0E28; [78 6E, 05, 05]
-0E40 0E28; [78 6E, 05, 05][78 94, 05, 3D]
-0E41 0E28; [78 6E, 05, 05][78 96, 05, 3D]
-0E42 0E28; [78 6E, 05, 05][78 98, 05, 3D]
-0E43 0E28; [78 6E, 05, 05][78 9A, 05, 3D]
-0E44 0E28; [78 6E, 05, 05][78 9C, 05, 3D]
-
-0E29; [78 70, 05, 05]
-0E40 0E29; [78 70, 05, 05][78 94, 05, 3D]
-0E41 0E29; [78 70, 05, 05][78 96, 05, 3D]
-0E42 0E29; [78 70, 05, 05][78 98, 05, 3D]
-0E43 0E29; [78 70, 05, 05][78 9A, 05, 3D]
-0E44 0E29; [78 70, 05, 05][78 9C, 05, 3D]
-
-0E2A; [78 72, 05, 05]
-0E40 0E2A; [78 72, 05, 05][78 94, 05, 3D]
-0E41 0E2A; [78 72, 05, 05][78 96, 05, 3D]
-0E42 0E2A; [78 72, 05, 05][78 98, 05, 3D]
-0E43 0E2A; [78 72, 05, 05][78 9A, 05, 3D]
-0E44 0E2A; [78 72, 05, 05][78 9C, 05, 3D]
-
-0E2B; [78 74, 05, 05]
-0E40 0E2B; [78 74, 05, 05][78 94, 05, 3D]
-0E41 0E2B; [78 74, 05, 05][78 96, 05, 3D]
-0E42 0E2B; [78 74, 05, 05][78 98, 05, 3D]
-0E43 0E2B; [78 74, 05, 05][78 9A, 05, 3D]
-0E44 0E2B; [78 74, 05, 05][78 9C, 05, 3D]
-
-0E2C; [78 76, 05, 05]
-0E40 0E2C; [78 76, 05, 05][78 94, 05, 3D]
-0E41 0E2C; [78 76, 05, 05][78 96, 05, 3D]
-0E42 0E2C; [78 76, 05, 05][78 98, 05, 3D]
-0E43 0E2C; [78 76, 05, 05][78 9A, 05, 3D]
-0E44 0E2C; [78 76, 05, 05][78 9C, 05, 3D]
-
-0E2D; [78 78, 05, 05]
-0E40 0E2D; [78 78, 05, 05][78 94, 05, 3D]
-0E41 0E2D; [78 78, 05, 05][78 96, 05, 3D]
-0E42 0E2D; [78 78, 05, 05][78 98, 05, 3D]
-0E43 0E2D; [78 78, 05, 05][78 9A, 05, 3D]
-0E44 0E2D; [78 78, 05, 05][78 9C, 05, 3D]
-
-0E2E; [78 7A, 05, 05]
-0E40 0E2E; [78 7A, 05, 05][78 94, 05, 3D]
-0E41 0E2E; [78 7A, 05, 05][78 96, 05, 3D]
-0E42 0E2E; [78 7A, 05, 05][78 98, 05, 3D]
-0E43 0E2E; [78 7A, 05, 05][78 9A, 05, 3D]
-0E44 0E2E; [78 7A, 05, 05][78 9C, 05, 3D]
-
-0E2F; [78 7C, 05, 05]
-
-0E30; [78 7E, 05, 05]
-
-0E31; [78 80, 05, 05]
-
-0E32; [78 82, 05, 05]
-
-0E33; [78 84, 05, 05]
-0E4D 0E32; [78 84, 05, 05]
-
-0E34; [78 86, 05, 05]
-
-0E35; [78 88, 05, 05]
-
-0E36; [78 8A, 05, 05]
-
-0E37; [78 8C, 05, 05]
-
-0E38; [78 8E, 05, 05]
-
-0E39; [78 90, 05, 05]
-
-0E3A; [78 92, 05, 05]
-
-0E40; [78 94, 05, 05]
-
-0E41; [78 96, 05, 05]
-
-0E42; [78 98, 05, 05]
-
-0E43; [78 9A, 05, 05]
-
-0E44; [78 9C, 05, 05]
-
-0E45; [78 9E, 05, 05]
-
-0E81; [79 20, 05, 05]
-0EC0 0E81; [79 20, 05, 05][79 72, 05, 3D]
-0EC1 0E81; [79 20, 05, 05][79 74, 05, 3D]
-0EC2 0E81; [79 20, 05, 05][79 76, 05, 3D]
-0EC3 0E81; [79 20, 05, 05][79 78, 05, 3D]
-0EC4 0E81; [79 20, 05, 05][79 7A, 05, 3D]
-
-0E82; [79 22, 05, 05]
-0EC0 0E82; [79 22, 05, 05][79 72, 05, 3D]
-0EC1 0E82; [79 22, 05, 05][79 74, 05, 3D]
-0EC2 0E82; [79 22, 05, 05][79 76, 05, 3D]
-0EC3 0E82; [79 22, 05, 05][79 78, 05, 3D]
-0EC4 0E82; [79 22, 05, 05][79 7A, 05, 3D]
-
-0E84; [79 24, 05, 05]
-0EC0 0E84; [79 24, 05, 05][79 72, 05, 3D]
-0EC1 0E84; [79 24, 05, 05][79 74, 05, 3D]
-0EC2 0E84; [79 24, 05, 05][79 76, 05, 3D]
-0EC3 0E84; [79 24, 05, 05][79 78, 05, 3D]
-0EC4 0E84; [79 24, 05, 05][79 7A, 05, 3D]
-
-0E87; [79 26, 05, 05]
-0EC0 0E87; [79 26, 05, 05][79 72, 05, 3D]
-0EC1 0E87; [79 26, 05, 05][79 74, 05, 3D]
-0EC2 0E87; [79 26, 05, 05][79 76, 05, 3D]
-0EC3 0E87; [79 26, 05, 05][79 78, 05, 3D]
-0EC4 0E87; [79 26, 05, 05][79 7A, 05, 3D]
-
-0E88; [79 28, 05, 05]
-0EC0 0E88; [79 28, 05, 05][79 72, 05, 3D]
-0EC1 0E88; [79 28, 05, 05][79 74, 05, 3D]
-0EC2 0E88; [79 28, 05, 05][79 76, 05, 3D]
-0EC3 0E88; [79 28, 05, 05][79 78, 05, 3D]
-0EC4 0E88; [79 28, 05, 05][79 7A, 05, 3D]
-
-0E8A; [79 2A, 05, 05]
-0EC0 0E8A; [79 2A, 05, 05][79 72, 05, 3D]
-0EC1 0E8A; [79 2A, 05, 05][79 74, 05, 3D]
-0EC2 0E8A; [79 2A, 05, 05][79 76, 05, 3D]
-0EC3 0E8A; [79 2A, 05, 05][79 78, 05, 3D]
-0EC4 0E8A; [79 2A, 05, 05][79 7A, 05, 3D]
-
-0E8D; [79 2C, 05, 05]
-0EC0 0E8D; [79 2C, 05, 05][79 72, 05, 3D]
-0EC1 0E8D; [79 2C, 05, 05][79 74, 05, 3D]
-0EC2 0E8D; [79 2C, 05, 05][79 76, 05, 3D]
-0EC3 0E8D; [79 2C, 05, 05][79 78, 05, 3D]
-0EC4 0E8D; [79 2C, 05, 05][79 7A, 05, 3D]
-
-0E94; [79 2E, 05, 05]
-0EC0 0E94; [79 2E, 05, 05][79 72, 05, 3D]
-0EC1 0E94; [79 2E, 05, 05][79 74, 05, 3D]
-0EC2 0E94; [79 2E, 05, 05][79 76, 05, 3D]
-0EC3 0E94; [79 2E, 05, 05][79 78, 05, 3D]
-0EC4 0E94; [79 2E, 05, 05][79 7A, 05, 3D]
-
-0E95; [79 30, 05, 05]
-0EC0 0E95; [79 30, 05, 05][79 72, 05, 3D]
-0EC1 0E95; [79 30, 05, 05][79 74, 05, 3D]
-0EC2 0E95; [79 30, 05, 05][79 76, 05, 3D]
-0EC3 0E95; [79 30, 05, 05][79 78, 05, 3D]
-0EC4 0E95; [79 30, 05, 05][79 7A, 05, 3D]
-
-0E96; [79 32, 05, 05]
-0EC0 0E96; [79 32, 05, 05][79 72, 05, 3D]
-0EC1 0E96; [79 32, 05, 05][79 74, 05, 3D]
-0EC2 0E96; [79 32, 05, 05][79 76, 05, 3D]
-0EC3 0E96; [79 32, 05, 05][79 78, 05, 3D]
-0EC4 0E96; [79 32, 05, 05][79 7A, 05, 3D]
-
-0E97; [79 34, 05, 05]
-0EC0 0E97; [79 34, 05, 05][79 72, 05, 3D]
-0EC1 0E97; [79 34, 05, 05][79 74, 05, 3D]
-0EC2 0E97; [79 34, 05, 05][79 76, 05, 3D]
-0EC3 0E97; [79 34, 05, 05][79 78, 05, 3D]
-0EC4 0E97; [79 34, 05, 05][79 7A, 05, 3D]
-
-0E99; [79 36, 05, 05]
-0EC0 0E99; [79 36, 05, 05][79 72, 05, 3D]
-0EC1 0E99; [79 36, 05, 05][79 74, 05, 3D]
-0EC2 0E99; [79 36, 05, 05][79 76, 05, 3D]
-0EC3 0E99; [79 36, 05, 05][79 78, 05, 3D]
-0EC4 0E99; [79 36, 05, 05][79 7A, 05, 3D]
-
-0E9A; [79 38, 05, 05]
-0EC0 0E9A; [79 38, 05, 05][79 72, 05, 3D]
-0EC1 0E9A; [79 38, 05, 05][79 74, 05, 3D]
-0EC2 0E9A; [79 38, 05, 05][79 76, 05, 3D]
-0EC3 0E9A; [79 38, 05, 05][79 78, 05, 3D]
-0EC4 0E9A; [79 38, 05, 05][79 7A, 05, 3D]
-
-0E9B; [79 3A, 05, 05]
-0EC0 0E9B; [79 3A, 05, 05][79 72, 05, 3D]
-0EC1 0E9B; [79 3A, 05, 05][79 74, 05, 3D]
-0EC2 0E9B; [79 3A, 05, 05][79 76, 05, 3D]
-0EC3 0E9B; [79 3A, 05, 05][79 78, 05, 3D]
-0EC4 0E9B; [79 3A, 05, 05][79 7A, 05, 3D]
-
-0E9C; [79 3C, 05, 05]
-0EC0 0E9C; [79 3C, 05, 05][79 72, 05, 3D]
-0EC1 0E9C; [79 3C, 05, 05][79 74, 05, 3D]
-0EC2 0E9C; [79 3C, 05, 05][79 76, 05, 3D]
-0EC3 0E9C; [79 3C, 05, 05][79 78, 05, 3D]
-0EC4 0E9C; [79 3C, 05, 05][79 7A, 05, 3D]
-
-0E9D; [79 3E, 05, 05]
-0EC0 0E9D; [79 3E, 05, 05][79 72, 05, 3D]
-0EC1 0E9D; [79 3E, 05, 05][79 74, 05, 3D]
-0EC2 0E9D; [79 3E, 05, 05][79 76, 05, 3D]
-0EC3 0E9D; [79 3E, 05, 05][79 78, 05, 3D]
-0EC4 0E9D; [79 3E, 05, 05][79 7A, 05, 3D]
-
-0E9E; [79 40, 05, 05]
-0EC0 0E9E; [79 40, 05, 05][79 72, 05, 3D]
-0EC1 0E9E; [79 40, 05, 05][79 74, 05, 3D]
-0EC2 0E9E; [79 40, 05, 05][79 76, 05, 3D]
-0EC3 0E9E; [79 40, 05, 05][79 78, 05, 3D]
-0EC4 0E9E; [79 40, 05, 05][79 7A, 05, 3D]
-
-0E9F; [79 42, 05, 05]
-0EC0 0E9F; [79 42, 05, 05][79 72, 05, 3D]
-0EC1 0E9F; [79 42, 05, 05][79 74, 05, 3D]
-0EC2 0E9F; [79 42, 05, 05][79 76, 05, 3D]
-0EC3 0E9F; [79 42, 05, 05][79 78, 05, 3D]
-0EC4 0E9F; [79 42, 05, 05][79 7A, 05, 3D]
-
-0EA1; [79 44, 05, 05]
-0EC0 0EA1; [79 44, 05, 05][79 72, 05, 3D]
-0EC1 0EA1; [79 44, 05, 05][79 74, 05, 3D]
-0EC2 0EA1; [79 44, 05, 05][79 76, 05, 3D]
-0EC3 0EA1; [79 44, 05, 05][79 78, 05, 3D]
-0EC4 0EA1; [79 44, 05, 05][79 7A, 05, 3D]
-
-0EA2; [79 46, 05, 05]
-0EC0 0EA2; [79 46, 05, 05][79 72, 05, 3D]
-0EC1 0EA2; [79 46, 05, 05][79 74, 05, 3D]
-0EC2 0EA2; [79 46, 05, 05][79 76, 05, 3D]
-0EC3 0EA2; [79 46, 05, 05][79 78, 05, 3D]
-0EC4 0EA2; [79 46, 05, 05][79 7A, 05, 3D]
-
-0EA3; [79 48, 05, 05]
-0EC0 0EA3; [79 48, 05, 05][79 72, 05, 3D]
-0EC1 0EA3; [79 48, 05, 05][79 74, 05, 3D]
-0EC2 0EA3; [79 48, 05, 05][79 76, 05, 3D]
-0EC3 0EA3; [79 48, 05, 05][79 78, 05, 3D]
-0EC4 0EA3; [79 48, 05, 05][79 7A, 05, 3D]
-
-0EA5; [79 4A, 05, 05]
-0EC0 0EA5; [79 4A, 05, 05][79 72, 05, 3D]
-0EC1 0EA5; [79 4A, 05, 05][79 74, 05, 3D]
-0EC2 0EA5; [79 4A, 05, 05][79 76, 05, 3D]
-0EC3 0EA5; [79 4A, 05, 05][79 78, 05, 3D]
-0EC4 0EA5; [79 4A, 05, 05][79 7A, 05, 3D]
-
-0EA7; [79 4C, 05, 05]
-0EC0 0EA7; [79 4C, 05, 05][79 72, 05, 3D]
-0EC1 0EA7; [79 4C, 05, 05][79 74, 05, 3D]
-0EC2 0EA7; [79 4C, 05, 05][79 76, 05, 3D]
-0EC3 0EA7; [79 4C, 05, 05][79 78, 05, 3D]
-0EC4 0EA7; [79 4C, 05, 05][79 7A, 05, 3D]
-
-0EAA; [79 4E, 05, 05]
-0EC0 0EAA; [79 4E, 05, 05][79 72, 05, 3D]
-0EC1 0EAA; [79 4E, 05, 05][79 74, 05, 3D]
-0EC2 0EAA; [79 4E, 05, 05][79 76, 05, 3D]
-0EC3 0EAA; [79 4E, 05, 05][79 78, 05, 3D]
-0EC4 0EAA; [79 4E, 05, 05][79 7A, 05, 3D]
-
-0EAB; [79 50, 05, 05]
-0EDC; [79 50, 05, 09][79 36, 05, 09]
-0EC0 0EDC; [79 50, 05, 09][79 36, 05, 09][79 72, 05, 3D]
-0EC1 0EDC; [79 50, 05, 09][79 36, 05, 09][79 74, 05, 3D]
-0EC2 0EDC; [79 50, 05, 09][79 36, 05, 09][79 76, 05, 3D]
-0EC3 0EDC; [79 50, 05, 09][79 36, 05, 09][79 78, 05, 3D]
-0EC4 0EDC; [79 50, 05, 09][79 36, 05, 09][79 7A, 05, 3D]
-0EDD; [79 50, 05, 09][79 44, 05, 09]
-0EC0 0EDD; [79 50, 05, 09][79 44, 05, 09][79 72, 05, 3D]
-0EC1 0EDD; [79 50, 05, 09][79 44, 05, 09][79 74, 05, 3D]
-0EC2 0EDD; [79 50, 05, 09][79 44, 05, 09][79 76, 05, 3D]
-0EC3 0EDD; [79 50, 05, 09][79 44, 05, 09][79 78, 05, 3D]
-0EC4 0EDD; [79 50, 05, 09][79 44, 05, 09][79 7A, 05, 3D]
-0EC0 0EAB; [79 50, 05, 05][79 72, 05, 3D]
-0EC1 0EAB; [79 50, 05, 05][79 74, 05, 3D]
-0EC2 0EAB; [79 50, 05, 05][79 76, 05, 3D]
-0EC3 0EAB; [79 50, 05, 05][79 78, 05, 3D]
-0EC4 0EAB; [79 50, 05, 05][79 7A, 05, 3D]
+0D47 0D3E; [77 9C, 05, 05]
+0D4B; [77 9C, 05, 05]
-0EAD; [79 52, 05, 05]
-0EC0 0EAD; [79 52, 05, 05][79 72, 05, 3D]
-0EC1 0EAD; [79 52, 05, 05][79 74, 05, 3D]
-0EC2 0EAD; [79 52, 05, 05][79 76, 05, 3D]
-0EC3 0EAD; [79 52, 05, 05][79 78, 05, 3D]
-0EC4 0EAD; [79 52, 05, 05][79 7A, 05, 3D]
+0D46 0D57; [77 9E, 05, 05]
+0D4C; [77 9E, 05, 05]
-0EAE; [79 54, 05, 05]
-0EC0 0EAE; [79 54, 05, 05][79 72, 05, 3D]
-0EC1 0EAE; [79 54, 05, 05][79 74, 05, 3D]
-0EC2 0EAE; [79 54, 05, 05][79 76, 05, 3D]
-0EC3 0EAE; [79 54, 05, 05][79 78, 05, 3D]
-0EC4 0EAE; [79 54, 05, 05][79 7A, 05, 3D]
+0D57; [77 A0, 05, 05]
-0EAF; [79 56, 05, 05]
+0D4D; [77 A2, 05, 05]
-0EB0; [79 58, 05, 05]
+0D85; [78 20, 05, 05]
-0EB1; [79 5A, 05, 05]
+0D86; [78 22, 05, 05]
-0EB2; [79 5C, 05, 05]
+0D87; [78 24, 05, 05]
-0EB3; [79 5E, 05, 05]
-0ECD 0EB2; [79 5E, 05, 05]
+0D88; [78 26, 05, 05]
-0EB4; [79 60, 05, 05]
+0D89; [78 28, 05, 05]
-0EB5; [79 62, 05, 05]
+0D8A; [78 2A, 05, 05]
-0EB6; [79 64, 05, 05]
+0D8B; [78 2C, 05, 05]
-0EB7; [79 66, 05, 05]
+0D8C; [78 2E, 05, 05]
-0EB8; [79 68, 05, 05]
+0D8D; [78 30, 05, 05]
-0EB9; [79 6A, 05, 05]
+0D8E; [78 32, 05, 05]
-0EBB; [79 6C, 05, 05]
+0D8F; [78 34, 05, 05]
-0EBC; [79 6E, 05, 05]
+0D90; [78 36, 05, 05]
-0EBD; [79 70, 05, 05]
+0D91; [78 38, 05, 05]
-0EC0; [79 72, 05, 05]
+0D92; [78 3A, 05, 05]
-0EC1; [79 74, 05, 05]
+0D93; [78 3C, 05, 05]
-0EC2; [79 76, 05, 05]
+0D94; [78 3E, 05, 05]
-0EC3; [79 78, 05, 05]
+0D95; [78 40, 05, 05]
-0EC4; [79 7A, 05, 05]
+0D96; [78 42, 05, 05]
-0F40; [7A 20, 05, 05]
-0F69; [7A 20, 05, 05][7A 9E, 05, 05]
+0D9A; [78 44, 05, 05]
-0F90; [7A 22, 05, 05]
-0FB9; [7A 22, 05, 05][7A 9E, 05, 05]
+0D9B; [78 46, 05, 05]
-0F41; [7A 24, 05, 05]
+0D9C; [78 48, 05, 05]
-0F91; [7A 26, 05, 05]
+0D9D; [78 4A, 05, 05]
-0F42; [7A 28, 05, 05]
-0F43; [7A 28, 05, 05][7A A6, 05, 05]
+0D9E; [78 4C, 05, 05]
-0F92; [7A 2A, 05, 05]
-0F93; [7A 2A, 05, 05][7A A6, 05, 05]
+0D9F; [78 4E, 05, 05]
-0F44; [7A 2C, 05, 05]
+0DA0; [78 50, 05, 05]
-0F94; [7A 2E, 05, 05]
+0DA1; [78 52, 05, 05]
-0F45; [7A 30, 05, 05]
+0DA2; [78 54, 05, 05]
-0F95; [7A 32, 05, 05]
+0DA3; [78 56, 05, 05]
-0F46; [7A 34, 05, 05]
+0DA4; [78 58, 05, 05]
-0F96; [7A 36, 05, 05]
+0DA5; [78 5A, 05, 05]
-0F47; [7A 38, 05, 05]
+0DA6; [78 5C, 05, 05]
-0F97; [7A 3A, 05, 05]
+0DA7; [78 5E, 05, 05]
-0F49; [7A 3C, 05, 05]
+0DA8; [78 60, 05, 05]
-0F99; [7A 3E, 05, 05]
+0DA9; [78 62, 05, 05]
-0F4A; [7A 40, 05, 05]
+0DAA; [78 64, 05, 05]
-0F9A; [7A 42, 05, 05]
+0DAB; [78 66, 05, 05]
-0F4B; [7A 44, 05, 05]
+0DAC; [78 68, 05, 05]
-0F9B; [7A 46, 05, 05]
+0DAD; [78 6A, 05, 05]
-0F4C; [7A 48, 05, 05]
-0F4D; [7A 48, 05, 05][7A A6, 05, 05]
+0DAE; [78 6C, 05, 05]
-0F9C; [7A 4A, 05, 05]
-0F9D; [7A 4A, 05, 05][7A A6, 05, 05]
+0DAF; [78 6E, 05, 05]
-0F4E; [7A 4C, 05, 05]
+0DB0; [78 70, 05, 05]
-0F9E; [7A 4E, 05, 05]
+0DB1; [78 72, 05, 05]
-0F4F; [7A 50, 05, 05]
+0DB3; [78 74, 05, 05]
-0F9F; [7A 52, 05, 05]
+0DB4; [78 76, 05, 05]
-0F50; [7A 54, 05, 05]
+0DB5; [78 78, 05, 05]
-0FA0; [7A 56, 05, 05]
+0DB6; [78 7A, 05, 05]
-0F51; [7A 58, 05, 05]
-0F52; [7A 58, 05, 05][7A A6, 05, 05]
+0DB7; [78 7C, 05, 05]
-0FA1; [7A 5A, 05, 05]
-0FA2; [7A 5A, 05, 05][7A A6, 05, 05]
+0DB8; [78 7E, 05, 05]
-0F53; [7A 5C, 05, 05]
+0DB9; [78 80, 05, 05]
-0FA3; [7A 5E, 05, 05]
+0DBA; [78 82, 05, 05]
-0F54; [7A 60, 05, 05]
+0DBB; [78 84, 05, 05]
-0FA4; [7A 62, 05, 05]
+0DBD; [78 86, 05, 05]
-0F55; [7A 64, 05, 05]
+0DC0; [78 88, 05, 05]
-0FA5; [7A 66, 05, 05]
+0DC1; [78 8A, 05, 05]
-0F56; [7A 68, 05, 05]
-0F57; [7A 68, 05, 05][7A A6, 05, 05]
+0DC2; [78 8C, 05, 05]
-0FA6; [7A 6A, 05, 05]
-0FA7; [7A 6A, 05, 05][7A A6, 05, 05]
+0DC3; [78 8E, 05, 05]
-0F58; [7A 6C, 05, 05]
+0DC4; [78 90, 05, 05]
-0FA8; [7A 6E, 05, 05]
+0DC5; [78 92, 05, 05]
-0F59; [7A 70, 05, 05]
+0DC6; [78 94, 05, 05]
-0FA9; [7A 72, 05, 05]
+0DCA; [78 96, 05, 05]
-0F5A; [7A 74, 05, 05]
+0DCF; [78 98, 05, 05]
-0FAA; [7A 76, 05, 05]
+0DD0; [78 9A, 05, 05]
-0F5B; [7A 78, 05, 05]
-0F5C; [7A 78, 05, 05][7A A6, 05, 05]
+0DD1; [78 9C, 05, 05]
-0FAB; [7A 7A, 05, 05]
-0FAC; [7A 7A, 05, 05][7A A6, 05, 05]
+0DD2; [78 9E, 05, 05]
-0F5D; [7A 7C, 05, 05]
+0DD3; [78 A0, 05, 05]
-0FAD; [7A 7E, 05, 05]
-0FBA; [7A 7E, 05, 09][, E2 85, 09]
+0DD4; [78 A2, 05, 05]
-0F5E; [7A 80, 05, 05]
+0DD6; [78 A4, 05, 05]
-0FAE; [7A 82, 05, 05]
+0DD8; [78 A6, 05, 05]
-0F5F; [7A 84, 05, 05]
+0DD9; [78 A8, 05, 05]
-0FAF; [7A 86, 05, 05]
+0DD9 0DCA; [78 AA, 05, 05]
+0DDA; [78 AA, 05, 05]
-0F60; [7A 88, 05, 05]
+0DDB; [78 AC, 05, 05]
-0FB0; [7A 8A, 05, 05]
+0DD9 0DCF; [78 AE, 05, 05]
+0DDC; [78 AE, 05, 05]
-0F61; [7A 8C, 05, 05]
+0DD9 0DCF 0DCA; [78 B0, 05, 05]
+0DDC 0DCA; [78 B0, 05, 05]
+0DDD; [78 B0, 05, 05]
-0FB1; [7A 8E, 05, 05]
-0FBB; [7A 8E, 05, 09][, E2 85, 09]
+0DD9 0DDF; [78 B2, 05, 05]
+0DDE; [78 B2, 05, 05]
-0F62; [7A 90, 05, 05]
-0F6A; [7A 90, 05, 09][, E2 85, 09]
+0DDF; [78 B4, 05, 05]
-0FB2; [7A 92, 05, 05]
-0FBC; [7A 92, 05, 09][, E2 85, 09]
-0FB2 0F71; [7A 92, 05, 05][7A B4, 05, 05]
+0DF2; [78 B6, 05, 05]
-0F63; [7A 94, 05, 05]
+0DF3; [78 B8, 05, 05]
-0FB3; [7A 96, 05, 05]
-0FB3 0F71; [7A 96, 05, 05][7A B4, 05, 05]
+A800; [79 20, 05, 05]
-0F64; [7A 98, 05, 05]
+A801; [79 22, 05, 05]
-0FB4; [7A 9A, 05, 05]
+A802; [79 24, 05, 05]
-0F65; [7A 9C, 05, 05]
+A803; [79 26, 05, 05]
-0FB5; [7A 9E, 05, 05]
+A804; [79 28, 05, 05]
-0F66; [7A A0, 05, 05]
+A805; [79 2A, 05, 05]
-0FB6; [7A A2, 05, 05]
+A806; [79 2C, 05, 05]
-0F67; [7A A4, 05, 05]
+A807; [79 2E, 05, 05]
-0FB7; [7A A6, 05, 05]
+A808; [79 30, 05, 05]
-0F68; [7A A8, 05, 05]
-0F00; [7A A8, 05, 09][7A CE, 05, 09][, DC 2D, 3D]
+A809; [79 32, 05, 05]
-0FB8; [7A AA, 05, 05]
+A80A; [79 34, 05, 05]
-0F88; [7A AC, 05, 05]
+A80C; [79 36, 05, 05]
-0F89; [7A AE, 05, 05]
+A80D; [79 38, 05, 05]
-0F8A; [7A B0, 05, 05]
+A80E; [79 3A, 05, 05]
-0F8B; [7A B2, 05, 05]
+A80F; [79 3C, 05, 05]
-0F71; [7A B4, 05, 05]
+A810; [79 3E, 05, 05]
-0F72; [7A B6, 05, 05]
+A811; [79 40, 05, 05]
-0F71 0F72; [7A B8, 05, 05]
-0F73; [7A B8, 05, 05]
+A812; [79 42, 05, 05]
-0F80; [7A BA, 05, 05]
+A813; [79 44, 05, 05]
-0F71 0F80; [7A BC, 05, 05]
-0F81; [7A BC, 05, 05]
+A814; [79 46, 05, 05]
-0F74; [7A BE, 05, 05]
+A815; [79 48, 05, 05]
-0F71 0F74; [7A C0, 05, 05]
-0F75; [7A C0, 05, 05]
+A816; [79 4A, 05, 05]
-0F76; [7A C2, 05, 05]
-0FB2 0F80; [7A C2, 05, 05]
+A817; [79 4C, 05, 05]
-0F77; [7A C4, 05, 05]
-0FB2 0F71 0F80; [7A C4, 05, 05]
-0FB2 0F81; [7A C4, 05, 05]
+A818; [79 4E, 05, 05]
-0F78; [7A C6, 05, 05]
-0FB3 0F80; [7A C6, 05, 05]
+A819; [79 50, 05, 05]
-0F79; [7A C8, 05, 05]
-0FB3 0F71 0F80; [7A C8, 05, 05]
-0FB3 0F81; [7A C8, 05, 05]
+A81A; [79 52, 05, 05]
-0F7A; [7A CA, 05, 05]
+A81B; [79 54, 05, 05]
-0F7B; [7A CC, 05, 05]
+A81C; [79 56, 05, 05]
-0F7C; [7A CE, 05, 05]
+A81D; [79 58, 05, 05]
-0F7D; [7A D0, 05, 05]
+A81E; [79 5A, 05, 05]
-0F84; [7A D2, 05, 05]
+A81F; [79 5C, 05, 05]
-1900; [7B 20, 05, 05]
+A820; [79 5E, 05, 05]
-1901; [7B 22, 05, 05]
+A821; [79 60, 05, 05]
-1902; [7B 24, 05, 05]
+A822; [79 62, 05, 05]
-1903; [7B 26, 05, 05]
+A823; [79 64, 05, 05]
-1904; [7B 28, 05, 05]
+A824; [79 66, 05, 05]
-1905; [7B 2A, 05, 05]
+A825; [79 68, 05, 05]
-1906; [7B 2C, 05, 05]
+A826; [79 6A, 05, 05]
-1907; [7B 2E, 05, 05]
+A827; [79 6C, 05, 05]
-1908; [7B 30, 05, 05]
+D802 DE00; [79 6E, 05, 05]
-1909; [7B 32, 05, 05]
+D802 DE01; [79 70, 05, 05]
-190A; [7B 34, 05, 05]
+D802 DE02; [79 72, 05, 05]
-190B; [7B 36, 05, 05]
+D802 DE03; [79 74, 05, 05]
-190C; [7B 38, 05, 05]
+D802 DE05; [79 76, 05, 05]
-190D; [7B 3A, 05, 05]
+D802 DE06; [79 78, 05, 05]
-190E; [7B 3C, 05, 05]
+D802 DE0C; [79 7A, 05, 05]
-190F; [7B 3E, 05, 05]
+D802 DE10; [79 7C, 05, 05]
-1910; [7B 40, 05, 05]
+D802 DE11; [79 7E, 05, 05]
-1911; [7B 42, 05, 05]
+D802 DE12; [79 80, 05, 05]
-1912; [7B 44, 05, 05]
+D802 DE13; [79 82, 05, 05]
-1913; [7B 46, 05, 05]
+D802 DE15; [79 84, 05, 05]
-1914; [7B 48, 05, 05]
+D802 DE16; [79 86, 05, 05]
-1915; [7B 4A, 05, 05]
+D802 DE17; [79 88, 05, 05]
-1916; [7B 4C, 05, 05]
+D802 DE19; [79 8A, 05, 05]
-1917; [7B 4E, 05, 05]
+D802 DE1A; [79 8C, 05, 05]
-1918; [7B 50, 05, 05]
+D802 DE1B; [79 8E, 05, 05]
-1919; [7B 52, 05, 05]
+D802 DE1C; [79 90, 05, 05]
-191A; [7B 54, 05, 05]
+D802 DE1D; [79 92, 05, 05]
-191B; [7B 56, 05, 05]
+D802 DE1E; [79 94, 05, 05]
-191C; [7B 58, 05, 05]
+D802 DE1F; [79 96, 05, 05]
-1920; [7B 5A, 05, 05]
+D802 DE20; [79 98, 05, 05]
-1921; [7B 5C, 05, 05]
+D802 DE21; [79 9A, 05, 05]
-1922; [7B 5E, 05, 05]
+D802 DE22; [79 9C, 05, 05]
-1923; [7B 60, 05, 05]
+D802 DE23; [79 9E, 05, 05]
-1924; [7B 62, 05, 05]
+D802 DE24; [79 A0, 05, 05]
-1925; [7B 64, 05, 05]
+D802 DE25; [79 A2, 05, 05]
-1926; [7B 66, 05, 05]
+D802 DE26; [79 A4, 05, 05]
-1927; [7B 68, 05, 05]
+D802 DE27; [79 A6, 05, 05]
-1928; [7B 6A, 05, 05]
+D802 DE28; [79 A8, 05, 05]
-1929; [7B 6C, 05, 05]
+D802 DE29; [79 AA, 05, 05]
-192A; [7B 6E, 05, 05]
+D802 DE2A; [79 AC, 05, 05]
-192B; [7B 70, 05, 05]
+D802 DE2B; [79 AE, 05, 05]
-1930; [7B 72, 05, 05]
+D802 DE2C; [79 B0, 05, 05]
-1931; [7B 74, 05, 05]
+D802 DE2D; [79 B2, 05, 05]
-1932; [7B 76, 05, 05]
+D802 DE2E; [79 B4, 05, 05]
-1933; [7B 78, 05, 05]
+D802 DE2F; [79 B6, 05, 05]
-1934; [7B 7A, 05, 05]
+D802 DE30; [79 B8, 05, 05]
-1935; [7B 7C, 05, 05]
+D802 DE31; [79 BA, 05, 05]
-1936; [7B 7E, 05, 05]
+D802 DE32; [79 BC, 05, 05]
-1937; [7B 80, 05, 05]
+D802 DE33; [79 BE, 05, 05]
-1938; [7B 82, 05, 05]
+D802 DE3F; [79 C0, 05, 05]
-1700; [7C 20, 05, 05]
+0E01; [7A 20, 05, 05]
+0E40 0E01; [7A 20, 05, 05][7A 94, 05, 3D]
+0E41 0E01; [7A 20, 05, 05][7A 96, 05, 3D]
+0E42 0E01; [7A 20, 05, 05][7A 98, 05, 3D]
+0E43 0E01; [7A 20, 05, 05][7A 9A, 05, 3D]
+0E44 0E01; [7A 20, 05, 05][7A 9C, 05, 3D]
-1701; [7C 22, 05, 05]
+0E02; [7A 22, 05, 05]
+0E40 0E02; [7A 22, 05, 05][7A 94, 05, 3D]
+0E41 0E02; [7A 22, 05, 05][7A 96, 05, 3D]
+0E42 0E02; [7A 22, 05, 05][7A 98, 05, 3D]
+0E43 0E02; [7A 22, 05, 05][7A 9A, 05, 3D]
+0E44 0E02; [7A 22, 05, 05][7A 9C, 05, 3D]
-1702; [7C 24, 05, 05]
+0E03; [7A 24, 05, 05]
+0E40 0E03; [7A 24, 05, 05][7A 94, 05, 3D]
+0E41 0E03; [7A 24, 05, 05][7A 96, 05, 3D]
+0E42 0E03; [7A 24, 05, 05][7A 98, 05, 3D]
+0E43 0E03; [7A 24, 05, 05][7A 9A, 05, 3D]
+0E44 0E03; [7A 24, 05, 05][7A 9C, 05, 3D]
-1703; [7C 26, 05, 05]
+0E04; [7A 26, 05, 05]
+0E40 0E04; [7A 26, 05, 05][7A 94, 05, 3D]
+0E41 0E04; [7A 26, 05, 05][7A 96, 05, 3D]
+0E42 0E04; [7A 26, 05, 05][7A 98, 05, 3D]
+0E43 0E04; [7A 26, 05, 05][7A 9A, 05, 3D]
+0E44 0E04; [7A 26, 05, 05][7A 9C, 05, 3D]
-1704; [7C 28, 05, 05]
+0E05; [7A 28, 05, 05]
+0E40 0E05; [7A 28, 05, 05][7A 94, 05, 3D]
+0E41 0E05; [7A 28, 05, 05][7A 96, 05, 3D]
+0E42 0E05; [7A 28, 05, 05][7A 98, 05, 3D]
+0E43 0E05; [7A 28, 05, 05][7A 9A, 05, 3D]
+0E44 0E05; [7A 28, 05, 05][7A 9C, 05, 3D]
-1705; [7C 2A, 05, 05]
+0E06; [7A 2A, 05, 05]
+0E40 0E06; [7A 2A, 05, 05][7A 94, 05, 3D]
+0E41 0E06; [7A 2A, 05, 05][7A 96, 05, 3D]
+0E42 0E06; [7A 2A, 05, 05][7A 98, 05, 3D]
+0E43 0E06; [7A 2A, 05, 05][7A 9A, 05, 3D]
+0E44 0E06; [7A 2A, 05, 05][7A 9C, 05, 3D]
-1706; [7C 2C, 05, 05]
+0E07; [7A 2C, 05, 05]
+0E40 0E07; [7A 2C, 05, 05][7A 94, 05, 3D]
+0E41 0E07; [7A 2C, 05, 05][7A 96, 05, 3D]
+0E42 0E07; [7A 2C, 05, 05][7A 98, 05, 3D]
+0E43 0E07; [7A 2C, 05, 05][7A 9A, 05, 3D]
+0E44 0E07; [7A 2C, 05, 05][7A 9C, 05, 3D]
+
+0E08; [7A 2E, 05, 05]
+0E40 0E08; [7A 2E, 05, 05][7A 94, 05, 3D]
+0E41 0E08; [7A 2E, 05, 05][7A 96, 05, 3D]
+0E42 0E08; [7A 2E, 05, 05][7A 98, 05, 3D]
+0E43 0E08; [7A 2E, 05, 05][7A 9A, 05, 3D]
+0E44 0E08; [7A 2E, 05, 05][7A 9C, 05, 3D]
+
+0E09; [7A 30, 05, 05]
+0E40 0E09; [7A 30, 05, 05][7A 94, 05, 3D]
+0E41 0E09; [7A 30, 05, 05][7A 96, 05, 3D]
+0E42 0E09; [7A 30, 05, 05][7A 98, 05, 3D]
+0E43 0E09; [7A 30, 05, 05][7A 9A, 05, 3D]
+0E44 0E09; [7A 30, 05, 05][7A 9C, 05, 3D]
+
+0E0A; [7A 32, 05, 05]
+0E40 0E0A; [7A 32, 05, 05][7A 94, 05, 3D]
+0E41 0E0A; [7A 32, 05, 05][7A 96, 05, 3D]
+0E42 0E0A; [7A 32, 05, 05][7A 98, 05, 3D]
+0E43 0E0A; [7A 32, 05, 05][7A 9A, 05, 3D]
+0E44 0E0A; [7A 32, 05, 05][7A 9C, 05, 3D]
+
+0E0B; [7A 34, 05, 05]
+0E40 0E0B; [7A 34, 05, 05][7A 94, 05, 3D]
+0E41 0E0B; [7A 34, 05, 05][7A 96, 05, 3D]
+0E42 0E0B; [7A 34, 05, 05][7A 98, 05, 3D]
+0E43 0E0B; [7A 34, 05, 05][7A 9A, 05, 3D]
+0E44 0E0B; [7A 34, 05, 05][7A 9C, 05, 3D]
+
+0E0C; [7A 36, 05, 05]
+0E40 0E0C; [7A 36, 05, 05][7A 94, 05, 3D]
+0E41 0E0C; [7A 36, 05, 05][7A 96, 05, 3D]
+0E42 0E0C; [7A 36, 05, 05][7A 98, 05, 3D]
+0E43 0E0C; [7A 36, 05, 05][7A 9A, 05, 3D]
+0E44 0E0C; [7A 36, 05, 05][7A 9C, 05, 3D]
+
+0E0D; [7A 38, 05, 05]
+0E40 0E0D; [7A 38, 05, 05][7A 94, 05, 3D]
+0E41 0E0D; [7A 38, 05, 05][7A 96, 05, 3D]
+0E42 0E0D; [7A 38, 05, 05][7A 98, 05, 3D]
+0E43 0E0D; [7A 38, 05, 05][7A 9A, 05, 3D]
+0E44 0E0D; [7A 38, 05, 05][7A 9C, 05, 3D]
+
+0E0E; [7A 3A, 05, 05]
+0E40 0E0E; [7A 3A, 05, 05][7A 94, 05, 3D]
+0E41 0E0E; [7A 3A, 05, 05][7A 96, 05, 3D]
+0E42 0E0E; [7A 3A, 05, 05][7A 98, 05, 3D]
+0E43 0E0E; [7A 3A, 05, 05][7A 9A, 05, 3D]
+0E44 0E0E; [7A 3A, 05, 05][7A 9C, 05, 3D]
+
+0E0F; [7A 3C, 05, 05]
+0E40 0E0F; [7A 3C, 05, 05][7A 94, 05, 3D]
+0E41 0E0F; [7A 3C, 05, 05][7A 96, 05, 3D]
+0E42 0E0F; [7A 3C, 05, 05][7A 98, 05, 3D]
+0E43 0E0F; [7A 3C, 05, 05][7A 9A, 05, 3D]
+0E44 0E0F; [7A 3C, 05, 05][7A 9C, 05, 3D]
+
+0E10; [7A 3E, 05, 05]
+0E40 0E10; [7A 3E, 05, 05][7A 94, 05, 3D]
+0E41 0E10; [7A 3E, 05, 05][7A 96, 05, 3D]
+0E42 0E10; [7A 3E, 05, 05][7A 98, 05, 3D]
+0E43 0E10; [7A 3E, 05, 05][7A 9A, 05, 3D]
+0E44 0E10; [7A 3E, 05, 05][7A 9C, 05, 3D]
+
+0E11; [7A 40, 05, 05]
+0E40 0E11; [7A 40, 05, 05][7A 94, 05, 3D]
+0E41 0E11; [7A 40, 05, 05][7A 96, 05, 3D]
+0E42 0E11; [7A 40, 05, 05][7A 98, 05, 3D]
+0E43 0E11; [7A 40, 05, 05][7A 9A, 05, 3D]
+0E44 0E11; [7A 40, 05, 05][7A 9C, 05, 3D]
+
+0E12; [7A 42, 05, 05]
+0E40 0E12; [7A 42, 05, 05][7A 94, 05, 3D]
+0E41 0E12; [7A 42, 05, 05][7A 96, 05, 3D]
+0E42 0E12; [7A 42, 05, 05][7A 98, 05, 3D]
+0E43 0E12; [7A 42, 05, 05][7A 9A, 05, 3D]
+0E44 0E12; [7A 42, 05, 05][7A 9C, 05, 3D]
+
+0E13; [7A 44, 05, 05]
+0E40 0E13; [7A 44, 05, 05][7A 94, 05, 3D]
+0E41 0E13; [7A 44, 05, 05][7A 96, 05, 3D]
+0E42 0E13; [7A 44, 05, 05][7A 98, 05, 3D]
+0E43 0E13; [7A 44, 05, 05][7A 9A, 05, 3D]
+0E44 0E13; [7A 44, 05, 05][7A 9C, 05, 3D]
+
+0E14; [7A 46, 05, 05]
+0E40 0E14; [7A 46, 05, 05][7A 94, 05, 3D]
+0E41 0E14; [7A 46, 05, 05][7A 96, 05, 3D]
+0E42 0E14; [7A 46, 05, 05][7A 98, 05, 3D]
+0E43 0E14; [7A 46, 05, 05][7A 9A, 05, 3D]
+0E44 0E14; [7A 46, 05, 05][7A 9C, 05, 3D]
+
+0E15; [7A 48, 05, 05]
+0E40 0E15; [7A 48, 05, 05][7A 94, 05, 3D]
+0E41 0E15; [7A 48, 05, 05][7A 96, 05, 3D]
+0E42 0E15; [7A 48, 05, 05][7A 98, 05, 3D]
+0E43 0E15; [7A 48, 05, 05][7A 9A, 05, 3D]
+0E44 0E15; [7A 48, 05, 05][7A 9C, 05, 3D]
+
+0E16; [7A 4A, 05, 05]
+0E40 0E16; [7A 4A, 05, 05][7A 94, 05, 3D]
+0E41 0E16; [7A 4A, 05, 05][7A 96, 05, 3D]
+0E42 0E16; [7A 4A, 05, 05][7A 98, 05, 3D]
+0E43 0E16; [7A 4A, 05, 05][7A 9A, 05, 3D]
+0E44 0E16; [7A 4A, 05, 05][7A 9C, 05, 3D]
+
+0E17; [7A 4C, 05, 05]
+0E40 0E17; [7A 4C, 05, 05][7A 94, 05, 3D]
+0E41 0E17; [7A 4C, 05, 05][7A 96, 05, 3D]
+0E42 0E17; [7A 4C, 05, 05][7A 98, 05, 3D]
+0E43 0E17; [7A 4C, 05, 05][7A 9A, 05, 3D]
+0E44 0E17; [7A 4C, 05, 05][7A 9C, 05, 3D]
+
+0E18; [7A 4E, 05, 05]
+0E40 0E18; [7A 4E, 05, 05][7A 94, 05, 3D]
+0E41 0E18; [7A 4E, 05, 05][7A 96, 05, 3D]
+0E42 0E18; [7A 4E, 05, 05][7A 98, 05, 3D]
+0E43 0E18; [7A 4E, 05, 05][7A 9A, 05, 3D]
+0E44 0E18; [7A 4E, 05, 05][7A 9C, 05, 3D]
+
+0E19; [7A 50, 05, 05]
+0E40 0E19; [7A 50, 05, 05][7A 94, 05, 3D]
+0E41 0E19; [7A 50, 05, 05][7A 96, 05, 3D]
+0E42 0E19; [7A 50, 05, 05][7A 98, 05, 3D]
+0E43 0E19; [7A 50, 05, 05][7A 9A, 05, 3D]
+0E44 0E19; [7A 50, 05, 05][7A 9C, 05, 3D]
+
+0E1A; [7A 52, 05, 05]
+0E40 0E1A; [7A 52, 05, 05][7A 94, 05, 3D]
+0E41 0E1A; [7A 52, 05, 05][7A 96, 05, 3D]
+0E42 0E1A; [7A 52, 05, 05][7A 98, 05, 3D]
+0E43 0E1A; [7A 52, 05, 05][7A 9A, 05, 3D]
+0E44 0E1A; [7A 52, 05, 05][7A 9C, 05, 3D]
+
+0E1B; [7A 54, 05, 05]
+0E40 0E1B; [7A 54, 05, 05][7A 94, 05, 3D]
+0E41 0E1B; [7A 54, 05, 05][7A 96, 05, 3D]
+0E42 0E1B; [7A 54, 05, 05][7A 98, 05, 3D]
+0E43 0E1B; [7A 54, 05, 05][7A 9A, 05, 3D]
+0E44 0E1B; [7A 54, 05, 05][7A 9C, 05, 3D]
+
+0E1C; [7A 56, 05, 05]
+0E40 0E1C; [7A 56, 05, 05][7A 94, 05, 3D]
+0E41 0E1C; [7A 56, 05, 05][7A 96, 05, 3D]
+0E42 0E1C; [7A 56, 05, 05][7A 98, 05, 3D]
+0E43 0E1C; [7A 56, 05, 05][7A 9A, 05, 3D]
+0E44 0E1C; [7A 56, 05, 05][7A 9C, 05, 3D]
+
+0E1D; [7A 58, 05, 05]
+0E40 0E1D; [7A 58, 05, 05][7A 94, 05, 3D]
+0E41 0E1D; [7A 58, 05, 05][7A 96, 05, 3D]
+0E42 0E1D; [7A 58, 05, 05][7A 98, 05, 3D]
+0E43 0E1D; [7A 58, 05, 05][7A 9A, 05, 3D]
+0E44 0E1D; [7A 58, 05, 05][7A 9C, 05, 3D]
+
+0E1E; [7A 5A, 05, 05]
+0E40 0E1E; [7A 5A, 05, 05][7A 94, 05, 3D]
+0E41 0E1E; [7A 5A, 05, 05][7A 96, 05, 3D]
+0E42 0E1E; [7A 5A, 05, 05][7A 98, 05, 3D]
+0E43 0E1E; [7A 5A, 05, 05][7A 9A, 05, 3D]
+0E44 0E1E; [7A 5A, 05, 05][7A 9C, 05, 3D]
+
+0E1F; [7A 5C, 05, 05]
+0E40 0E1F; [7A 5C, 05, 05][7A 94, 05, 3D]
+0E41 0E1F; [7A 5C, 05, 05][7A 96, 05, 3D]
+0E42 0E1F; [7A 5C, 05, 05][7A 98, 05, 3D]
+0E43 0E1F; [7A 5C, 05, 05][7A 9A, 05, 3D]
+0E44 0E1F; [7A 5C, 05, 05][7A 9C, 05, 3D]
+
+0E20; [7A 5E, 05, 05]
+0E40 0E20; [7A 5E, 05, 05][7A 94, 05, 3D]
+0E41 0E20; [7A 5E, 05, 05][7A 96, 05, 3D]
+0E42 0E20; [7A 5E, 05, 05][7A 98, 05, 3D]
+0E43 0E20; [7A 5E, 05, 05][7A 9A, 05, 3D]
+0E44 0E20; [7A 5E, 05, 05][7A 9C, 05, 3D]
+
+0E21; [7A 60, 05, 05]
+0E40 0E21; [7A 60, 05, 05][7A 94, 05, 3D]
+0E41 0E21; [7A 60, 05, 05][7A 96, 05, 3D]
+0E42 0E21; [7A 60, 05, 05][7A 98, 05, 3D]
+0E43 0E21; [7A 60, 05, 05][7A 9A, 05, 3D]
+0E44 0E21; [7A 60, 05, 05][7A 9C, 05, 3D]
+
+0E22; [7A 62, 05, 05]
+0E40 0E22; [7A 62, 05, 05][7A 94, 05, 3D]
+0E41 0E22; [7A 62, 05, 05][7A 96, 05, 3D]
+0E42 0E22; [7A 62, 05, 05][7A 98, 05, 3D]
+0E43 0E22; [7A 62, 05, 05][7A 9A, 05, 3D]
+0E44 0E22; [7A 62, 05, 05][7A 9C, 05, 3D]
+
+0E23; [7A 64, 05, 05]
+0E40 0E23; [7A 64, 05, 05][7A 94, 05, 3D]
+0E41 0E23; [7A 64, 05, 05][7A 96, 05, 3D]
+0E42 0E23; [7A 64, 05, 05][7A 98, 05, 3D]
+0E43 0E23; [7A 64, 05, 05][7A 9A, 05, 3D]
+0E44 0E23; [7A 64, 05, 05][7A 9C, 05, 3D]
+
+0E24; [7A 66, 05, 05]
+0E40 0E24; [7A 66, 05, 05][7A 94, 05, 3D]
+0E41 0E24; [7A 66, 05, 05][7A 96, 05, 3D]
+0E42 0E24; [7A 66, 05, 05][7A 98, 05, 3D]
+0E43 0E24; [7A 66, 05, 05][7A 9A, 05, 3D]
+0E44 0E24; [7A 66, 05, 05][7A 9C, 05, 3D]
+
+0E25; [7A 68, 05, 05]
+0E40 0E25; [7A 68, 05, 05][7A 94, 05, 3D]
+0E41 0E25; [7A 68, 05, 05][7A 96, 05, 3D]
+0E42 0E25; [7A 68, 05, 05][7A 98, 05, 3D]
+0E43 0E25; [7A 68, 05, 05][7A 9A, 05, 3D]
+0E44 0E25; [7A 68, 05, 05][7A 9C, 05, 3D]
+
+0E26; [7A 6A, 05, 05]
+0E40 0E26; [7A 6A, 05, 05][7A 94, 05, 3D]
+0E41 0E26; [7A 6A, 05, 05][7A 96, 05, 3D]
+0E42 0E26; [7A 6A, 05, 05][7A 98, 05, 3D]
+0E43 0E26; [7A 6A, 05, 05][7A 9A, 05, 3D]
+0E44 0E26; [7A 6A, 05, 05][7A 9C, 05, 3D]
+
+0E27; [7A 6C, 05, 05]
+0E40 0E27; [7A 6C, 05, 05][7A 94, 05, 3D]
+0E41 0E27; [7A 6C, 05, 05][7A 96, 05, 3D]
+0E42 0E27; [7A 6C, 05, 05][7A 98, 05, 3D]
+0E43 0E27; [7A 6C, 05, 05][7A 9A, 05, 3D]
+0E44 0E27; [7A 6C, 05, 05][7A 9C, 05, 3D]
+
+0E28; [7A 6E, 05, 05]
+0E40 0E28; [7A 6E, 05, 05][7A 94, 05, 3D]
+0E41 0E28; [7A 6E, 05, 05][7A 96, 05, 3D]
+0E42 0E28; [7A 6E, 05, 05][7A 98, 05, 3D]
+0E43 0E28; [7A 6E, 05, 05][7A 9A, 05, 3D]
+0E44 0E28; [7A 6E, 05, 05][7A 9C, 05, 3D]
+
+0E29; [7A 70, 05, 05]
+0E40 0E29; [7A 70, 05, 05][7A 94, 05, 3D]
+0E41 0E29; [7A 70, 05, 05][7A 96, 05, 3D]
+0E42 0E29; [7A 70, 05, 05][7A 98, 05, 3D]
+0E43 0E29; [7A 70, 05, 05][7A 9A, 05, 3D]
+0E44 0E29; [7A 70, 05, 05][7A 9C, 05, 3D]
+
+0E2A; [7A 72, 05, 05]
+0E40 0E2A; [7A 72, 05, 05][7A 94, 05, 3D]
+0E41 0E2A; [7A 72, 05, 05][7A 96, 05, 3D]
+0E42 0E2A; [7A 72, 05, 05][7A 98, 05, 3D]
+0E43 0E2A; [7A 72, 05, 05][7A 9A, 05, 3D]
+0E44 0E2A; [7A 72, 05, 05][7A 9C, 05, 3D]
+
+0E2B; [7A 74, 05, 05]
+0E40 0E2B; [7A 74, 05, 05][7A 94, 05, 3D]
+0E41 0E2B; [7A 74, 05, 05][7A 96, 05, 3D]
+0E42 0E2B; [7A 74, 05, 05][7A 98, 05, 3D]
+0E43 0E2B; [7A 74, 05, 05][7A 9A, 05, 3D]
+0E44 0E2B; [7A 74, 05, 05][7A 9C, 05, 3D]
+
+0E2C; [7A 76, 05, 05]
+0E40 0E2C; [7A 76, 05, 05][7A 94, 05, 3D]
+0E41 0E2C; [7A 76, 05, 05][7A 96, 05, 3D]
+0E42 0E2C; [7A 76, 05, 05][7A 98, 05, 3D]
+0E43 0E2C; [7A 76, 05, 05][7A 9A, 05, 3D]
+0E44 0E2C; [7A 76, 05, 05][7A 9C, 05, 3D]
+
+0E2D; [7A 78, 05, 05]
+0E40 0E2D; [7A 78, 05, 05][7A 94, 05, 3D]
+0E41 0E2D; [7A 78, 05, 05][7A 96, 05, 3D]
+0E42 0E2D; [7A 78, 05, 05][7A 98, 05, 3D]
+0E43 0E2D; [7A 78, 05, 05][7A 9A, 05, 3D]
+0E44 0E2D; [7A 78, 05, 05][7A 9C, 05, 3D]
+
+0E2E; [7A 7A, 05, 05]
+0E40 0E2E; [7A 7A, 05, 05][7A 94, 05, 3D]
+0E41 0E2E; [7A 7A, 05, 05][7A 96, 05, 3D]
+0E42 0E2E; [7A 7A, 05, 05][7A 98, 05, 3D]
+0E43 0E2E; [7A 7A, 05, 05][7A 9A, 05, 3D]
+0E44 0E2E; [7A 7A, 05, 05][7A 9C, 05, 3D]
+
+0E2F; [7A 7C, 05, 05]
+
+0E30; [7A 7E, 05, 05]
+
+0E31; [7A 80, 05, 05]
+
+0E32; [7A 82, 05, 05]
+
+0E33; [7A 84, 05, 05]
+0E4D 0E32; [7A 84, 05, 05]
+
+0E34; [7A 86, 05, 05]
+
+0E35; [7A 88, 05, 05]
+
+0E36; [7A 8A, 05, 05]
+
+0E37; [7A 8C, 05, 05]
+
+0E38; [7A 8E, 05, 05]
+
+0E39; [7A 90, 05, 05]
+
+0E3A; [7A 92, 05, 05]
+
+0E40; [7A 94, 05, 05]
+
+0E41; [7A 96, 05, 05]
+
+0E42; [7A 98, 05, 05]
+
+0E43; [7A 9A, 05, 05]
+
+0E44; [7A 9C, 05, 05]
+
+0E45; [7A 9E, 05, 05]
+
+0E81; [7B 20, 05, 05]
+0EC0 0E81; [7B 20, 05, 05][7B 72, 05, 3D]
+0EC1 0E81; [7B 20, 05, 05][7B 74, 05, 3D]
+0EC2 0E81; [7B 20, 05, 05][7B 76, 05, 3D]
+0EC3 0E81; [7B 20, 05, 05][7B 78, 05, 3D]
+0EC4 0E81; [7B 20, 05, 05][7B 7A, 05, 3D]
+
+0E82; [7B 22, 05, 05]
+0EC0 0E82; [7B 22, 05, 05][7B 72, 05, 3D]
+0EC1 0E82; [7B 22, 05, 05][7B 74, 05, 3D]
+0EC2 0E82; [7B 22, 05, 05][7B 76, 05, 3D]
+0EC3 0E82; [7B 22, 05, 05][7B 78, 05, 3D]
+0EC4 0E82; [7B 22, 05, 05][7B 7A, 05, 3D]
+
+0E84; [7B 24, 05, 05]
+0EC0 0E84; [7B 24, 05, 05][7B 72, 05, 3D]
+0EC1 0E84; [7B 24, 05, 05][7B 74, 05, 3D]
+0EC2 0E84; [7B 24, 05, 05][7B 76, 05, 3D]
+0EC3 0E84; [7B 24, 05, 05][7B 78, 05, 3D]
+0EC4 0E84; [7B 24, 05, 05][7B 7A, 05, 3D]
+
+0E87; [7B 26, 05, 05]
+0EC0 0E87; [7B 26, 05, 05][7B 72, 05, 3D]
+0EC1 0E87; [7B 26, 05, 05][7B 74, 05, 3D]
+0EC2 0E87; [7B 26, 05, 05][7B 76, 05, 3D]
+0EC3 0E87; [7B 26, 05, 05][7B 78, 05, 3D]
+0EC4 0E87; [7B 26, 05, 05][7B 7A, 05, 3D]
+
+0E88; [7B 28, 05, 05]
+0EC0 0E88; [7B 28, 05, 05][7B 72, 05, 3D]
+0EC1 0E88; [7B 28, 05, 05][7B 74, 05, 3D]
+0EC2 0E88; [7B 28, 05, 05][7B 76, 05, 3D]
+0EC3 0E88; [7B 28, 05, 05][7B 78, 05, 3D]
+0EC4 0E88; [7B 28, 05, 05][7B 7A, 05, 3D]
+
+0E8A; [7B 2A, 05, 05]
+0EC0 0E8A; [7B 2A, 05, 05][7B 72, 05, 3D]
+0EC1 0E8A; [7B 2A, 05, 05][7B 74, 05, 3D]
+0EC2 0E8A; [7B 2A, 05, 05][7B 76, 05, 3D]
+0EC3 0E8A; [7B 2A, 05, 05][7B 78, 05, 3D]
+0EC4 0E8A; [7B 2A, 05, 05][7B 7A, 05, 3D]
+
+0E8D; [7B 2C, 05, 05]
+0EC0 0E8D; [7B 2C, 05, 05][7B 72, 05, 3D]
+0EC1 0E8D; [7B 2C, 05, 05][7B 74, 05, 3D]
+0EC2 0E8D; [7B 2C, 05, 05][7B 76, 05, 3D]
+0EC3 0E8D; [7B 2C, 05, 05][7B 78, 05, 3D]
+0EC4 0E8D; [7B 2C, 05, 05][7B 7A, 05, 3D]
+
+0E94; [7B 2E, 05, 05]
+0EC0 0E94; [7B 2E, 05, 05][7B 72, 05, 3D]
+0EC1 0E94; [7B 2E, 05, 05][7B 74, 05, 3D]
+0EC2 0E94; [7B 2E, 05, 05][7B 76, 05, 3D]
+0EC3 0E94; [7B 2E, 05, 05][7B 78, 05, 3D]
+0EC4 0E94; [7B 2E, 05, 05][7B 7A, 05, 3D]
+
+0E95; [7B 30, 05, 05]
+0EC0 0E95; [7B 30, 05, 05][7B 72, 05, 3D]
+0EC1 0E95; [7B 30, 05, 05][7B 74, 05, 3D]
+0EC2 0E95; [7B 30, 05, 05][7B 76, 05, 3D]
+0EC3 0E95; [7B 30, 05, 05][7B 78, 05, 3D]
+0EC4 0E95; [7B 30, 05, 05][7B 7A, 05, 3D]
+
+0E96; [7B 32, 05, 05]
+0EC0 0E96; [7B 32, 05, 05][7B 72, 05, 3D]
+0EC1 0E96; [7B 32, 05, 05][7B 74, 05, 3D]
+0EC2 0E96; [7B 32, 05, 05][7B 76, 05, 3D]
+0EC3 0E96; [7B 32, 05, 05][7B 78, 05, 3D]
+0EC4 0E96; [7B 32, 05, 05][7B 7A, 05, 3D]
+
+0E97; [7B 34, 05, 05]
+0EC0 0E97; [7B 34, 05, 05][7B 72, 05, 3D]
+0EC1 0E97; [7B 34, 05, 05][7B 74, 05, 3D]
+0EC2 0E97; [7B 34, 05, 05][7B 76, 05, 3D]
+0EC3 0E97; [7B 34, 05, 05][7B 78, 05, 3D]
+0EC4 0E97; [7B 34, 05, 05][7B 7A, 05, 3D]
+
+0E99; [7B 36, 05, 05]
+0EC0 0E99; [7B 36, 05, 05][7B 72, 05, 3D]
+0EC1 0E99; [7B 36, 05, 05][7B 74, 05, 3D]
+0EC2 0E99; [7B 36, 05, 05][7B 76, 05, 3D]
+0EC3 0E99; [7B 36, 05, 05][7B 78, 05, 3D]
+0EC4 0E99; [7B 36, 05, 05][7B 7A, 05, 3D]
+
+0E9A; [7B 38, 05, 05]
+0EC0 0E9A; [7B 38, 05, 05][7B 72, 05, 3D]
+0EC1 0E9A; [7B 38, 05, 05][7B 74, 05, 3D]
+0EC2 0E9A; [7B 38, 05, 05][7B 76, 05, 3D]
+0EC3 0E9A; [7B 38, 05, 05][7B 78, 05, 3D]
+0EC4 0E9A; [7B 38, 05, 05][7B 7A, 05, 3D]
+
+0E9B; [7B 3A, 05, 05]
+0EC0 0E9B; [7B 3A, 05, 05][7B 72, 05, 3D]
+0EC1 0E9B; [7B 3A, 05, 05][7B 74, 05, 3D]
+0EC2 0E9B; [7B 3A, 05, 05][7B 76, 05, 3D]
+0EC3 0E9B; [7B 3A, 05, 05][7B 78, 05, 3D]
+0EC4 0E9B; [7B 3A, 05, 05][7B 7A, 05, 3D]
+
+0E9C; [7B 3C, 05, 05]
+0EC0 0E9C; [7B 3C, 05, 05][7B 72, 05, 3D]
+0EC1 0E9C; [7B 3C, 05, 05][7B 74, 05, 3D]
+0EC2 0E9C; [7B 3C, 05, 05][7B 76, 05, 3D]
+0EC3 0E9C; [7B 3C, 05, 05][7B 78, 05, 3D]
+0EC4 0E9C; [7B 3C, 05, 05][7B 7A, 05, 3D]
+
+0E9D; [7B 3E, 05, 05]
+0EC0 0E9D; [7B 3E, 05, 05][7B 72, 05, 3D]
+0EC1 0E9D; [7B 3E, 05, 05][7B 74, 05, 3D]
+0EC2 0E9D; [7B 3E, 05, 05][7B 76, 05, 3D]
+0EC3 0E9D; [7B 3E, 05, 05][7B 78, 05, 3D]
+0EC4 0E9D; [7B 3E, 05, 05][7B 7A, 05, 3D]
+
+0E9E; [7B 40, 05, 05]
+0EC0 0E9E; [7B 40, 05, 05][7B 72, 05, 3D]
+0EC1 0E9E; [7B 40, 05, 05][7B 74, 05, 3D]
+0EC2 0E9E; [7B 40, 05, 05][7B 76, 05, 3D]
+0EC3 0E9E; [7B 40, 05, 05][7B 78, 05, 3D]
+0EC4 0E9E; [7B 40, 05, 05][7B 7A, 05, 3D]
+
+0E9F; [7B 42, 05, 05]
+0EC0 0E9F; [7B 42, 05, 05][7B 72, 05, 3D]
+0EC1 0E9F; [7B 42, 05, 05][7B 74, 05, 3D]
+0EC2 0E9F; [7B 42, 05, 05][7B 76, 05, 3D]
+0EC3 0E9F; [7B 42, 05, 05][7B 78, 05, 3D]
+0EC4 0E9F; [7B 42, 05, 05][7B 7A, 05, 3D]
+
+0EA1; [7B 44, 05, 05]
+0EC0 0EA1; [7B 44, 05, 05][7B 72, 05, 3D]
+0EC1 0EA1; [7B 44, 05, 05][7B 74, 05, 3D]
+0EC2 0EA1; [7B 44, 05, 05][7B 76, 05, 3D]
+0EC3 0EA1; [7B 44, 05, 05][7B 78, 05, 3D]
+0EC4 0EA1; [7B 44, 05, 05][7B 7A, 05, 3D]
+
+0EA2; [7B 46, 05, 05]
+0EC0 0EA2; [7B 46, 05, 05][7B 72, 05, 3D]
+0EC1 0EA2; [7B 46, 05, 05][7B 74, 05, 3D]
+0EC2 0EA2; [7B 46, 05, 05][7B 76, 05, 3D]
+0EC3 0EA2; [7B 46, 05, 05][7B 78, 05, 3D]
+0EC4 0EA2; [7B 46, 05, 05][7B 7A, 05, 3D]
+
+0EA3; [7B 48, 05, 05]
+0EC0 0EA3; [7B 48, 05, 05][7B 72, 05, 3D]
+0EC1 0EA3; [7B 48, 05, 05][7B 74, 05, 3D]
+0EC2 0EA3; [7B 48, 05, 05][7B 76, 05, 3D]
+0EC3 0EA3; [7B 48, 05, 05][7B 78, 05, 3D]
+0EC4 0EA3; [7B 48, 05, 05][7B 7A, 05, 3D]
+
+0EA5; [7B 4A, 05, 05]
+0EC0 0EA5; [7B 4A, 05, 05][7B 72, 05, 3D]
+0EC1 0EA5; [7B 4A, 05, 05][7B 74, 05, 3D]
+0EC2 0EA5; [7B 4A, 05, 05][7B 76, 05, 3D]
+0EC3 0EA5; [7B 4A, 05, 05][7B 78, 05, 3D]
+0EC4 0EA5; [7B 4A, 05, 05][7B 7A, 05, 3D]
+
+0EA7; [7B 4C, 05, 05]
+0EC0 0EA7; [7B 4C, 05, 05][7B 72, 05, 3D]
+0EC1 0EA7; [7B 4C, 05, 05][7B 74, 05, 3D]
+0EC2 0EA7; [7B 4C, 05, 05][7B 76, 05, 3D]
+0EC3 0EA7; [7B 4C, 05, 05][7B 78, 05, 3D]
+0EC4 0EA7; [7B 4C, 05, 05][7B 7A, 05, 3D]
+
+0EAA; [7B 4E, 05, 05]
+0EC0 0EAA; [7B 4E, 05, 05][7B 72, 05, 3D]
+0EC1 0EAA; [7B 4E, 05, 05][7B 74, 05, 3D]
+0EC2 0EAA; [7B 4E, 05, 05][7B 76, 05, 3D]
+0EC3 0EAA; [7B 4E, 05, 05][7B 78, 05, 3D]
+0EC4 0EAA; [7B 4E, 05, 05][7B 7A, 05, 3D]
+
+0EAB; [7B 50, 05, 05]
+0EDC; [7B 50, 05, 09][7B 36, 05, 09]
+0EC0 0EDC; [7B 50, 05, 09][7B 36, 05, 09][7B 72, 05, 3D]
+0EC1 0EDC; [7B 50, 05, 09][7B 36, 05, 09][7B 74, 05, 3D]
+0EC2 0EDC; [7B 50, 05, 09][7B 36, 05, 09][7B 76, 05, 3D]
+0EC3 0EDC; [7B 50, 05, 09][7B 36, 05, 09][7B 78, 05, 3D]
+0EC4 0EDC; [7B 50, 05, 09][7B 36, 05, 09][7B 7A, 05, 3D]
+0EDD; [7B 50, 05, 09][7B 44, 05, 09]
+0EC0 0EDD; [7B 50, 05, 09][7B 44, 05, 09][7B 72, 05, 3D]
+0EC1 0EDD; [7B 50, 05, 09][7B 44, 05, 09][7B 74, 05, 3D]
+0EC2 0EDD; [7B 50, 05, 09][7B 44, 05, 09][7B 76, 05, 3D]
+0EC3 0EDD; [7B 50, 05, 09][7B 44, 05, 09][7B 78, 05, 3D]
+0EC4 0EDD; [7B 50, 05, 09][7B 44, 05, 09][7B 7A, 05, 3D]
+0EC0 0EAB; [7B 50, 05, 05][7B 72, 05, 3D]
+0EC1 0EAB; [7B 50, 05, 05][7B 74, 05, 3D]
+0EC2 0EAB; [7B 50, 05, 05][7B 76, 05, 3D]
+0EC3 0EAB; [7B 50, 05, 05][7B 78, 05, 3D]
+0EC4 0EAB; [7B 50, 05, 05][7B 7A, 05, 3D]
-1707; [7C 2E, 05, 05]
+0EAD; [7B 52, 05, 05]
+0EC0 0EAD; [7B 52, 05, 05][7B 72, 05, 3D]
+0EC1 0EAD; [7B 52, 05, 05][7B 74, 05, 3D]
+0EC2 0EAD; [7B 52, 05, 05][7B 76, 05, 3D]
+0EC3 0EAD; [7B 52, 05, 05][7B 78, 05, 3D]
+0EC4 0EAD; [7B 52, 05, 05][7B 7A, 05, 3D]
-1708; [7C 30, 05, 05]
+0EAE; [7B 54, 05, 05]
+0EC0 0EAE; [7B 54, 05, 05][7B 72, 05, 3D]
+0EC1 0EAE; [7B 54, 05, 05][7B 74, 05, 3D]
+0EC2 0EAE; [7B 54, 05, 05][7B 76, 05, 3D]
+0EC3 0EAE; [7B 54, 05, 05][7B 78, 05, 3D]
+0EC4 0EAE; [7B 54, 05, 05][7B 7A, 05, 3D]
-1709; [7C 32, 05, 05]
+0EAF; [7B 56, 05, 05]
-170A; [7C 34, 05, 05]
+0EB0; [7B 58, 05, 05]
-170B; [7C 36, 05, 05]
+0EB1; [7B 5A, 05, 05]
-170C; [7C 38, 05, 05]
+0EB2; [7B 5C, 05, 05]
-170E; [7C 3A, 05, 05]
+0EB3; [7B 5E, 05, 05]
+0ECD 0EB2; [7B 5E, 05, 05]
-170F; [7C 3C, 05, 05]
+0EB4; [7B 60, 05, 05]
-1710; [7C 3E, 05, 05]
+0EB5; [7B 62, 05, 05]
-1711; [7C 40, 05, 05]
+0EB6; [7B 64, 05, 05]
-1712; [7C 42, 05, 05]
+0EB7; [7B 66, 05, 05]
-1713; [7C 44, 05, 05]
+0EB8; [7B 68, 05, 05]
-1714; [7C 46, 05, 05]
+0EB9; [7B 6A, 05, 05]
-1720; [7D 20, 05, 05]
+0EBB; [7B 6C, 05, 05]
-1721; [7D 22, 05, 05]
+0EBC; [7B 6E, 05, 05]
-1722; [7D 24, 05, 05]
+0EBD; [7B 70, 05, 05]
-1723; [7D 26, 05, 05]
+0EC0; [7B 72, 05, 05]
-1724; [7D 28, 05, 05]
+0EC1; [7B 74, 05, 05]
-1725; [7D 2A, 05, 05]
+0EC2; [7B 76, 05, 05]
-1726; [7D 2C, 05, 05]
+0EC3; [7B 78, 05, 05]
-1727; [7D 2E, 05, 05]
+0EC4; [7B 7A, 05, 05]
-1728; [7D 30, 05, 05]
+0F40; [7C 20, 05, 05]
+0F69; [7C 20, 05, 05][7C 9E, 05, 05]
-1729; [7D 32, 05, 05]
+0F90; [7C 22, 05, 05]
+0FB9; [7C 22, 05, 05][7C 9E, 05, 05]
-172A; [7D 34, 05, 05]
+0F41; [7C 24, 05, 05]
-172B; [7D 36, 05, 05]
+0F91; [7C 26, 05, 05]
-172C; [7D 38, 05, 05]
+0F42; [7C 28, 05, 05]
+0F43; [7C 28, 05, 05][7C A6, 05, 05]
-172D; [7D 3A, 05, 05]
+0F92; [7C 2A, 05, 05]
+0F93; [7C 2A, 05, 05][7C A6, 05, 05]
-172E; [7D 3C, 05, 05]
+0F44; [7C 2C, 05, 05]
-172F; [7D 3E, 05, 05]
+0F94; [7C 2E, 05, 05]
-1730; [7D 40, 05, 05]
+0F45; [7C 30, 05, 05]
-1731; [7D 42, 05, 05]
+0F95; [7C 32, 05, 05]
-1732; [7D 44, 05, 05]
+0F46; [7C 34, 05, 05]
-1733; [7D 46, 05, 05]
+0F96; [7C 36, 05, 05]
-1734; [7D 48, 05, 05]
+0F47; [7C 38, 05, 05]
-1740; [7E 20, 05, 05]
+0F97; [7C 3A, 05, 05]
-1741; [7E 22, 05, 05]
+0F49; [7C 3C, 05, 05]
-1742; [7E 24, 05, 05]
+0F99; [7C 3E, 05, 05]
-1743; [7E 26, 05, 05]
+0F4A; [7C 40, 05, 05]
-1744; [7E 28, 05, 05]
+0F9A; [7C 42, 05, 05]
-1745; [7E 2A, 05, 05]
+0F4B; [7C 44, 05, 05]
-1746; [7E 2C, 05, 05]
+0F9B; [7C 46, 05, 05]
-1747; [7E 2E, 05, 05]
+0F4C; [7C 48, 05, 05]
+0F4D; [7C 48, 05, 05][7C A6, 05, 05]
-1748; [7E 30, 05, 05]
+0F9C; [7C 4A, 05, 05]
+0F9D; [7C 4A, 05, 05][7C A6, 05, 05]
-1749; [7E 32, 05, 05]
+0F4E; [7C 4C, 05, 05]
-174A; [7E 34, 05, 05]
+0F9E; [7C 4E, 05, 05]
-174B; [7E 36, 05, 05]
+0F4F; [7C 50, 05, 05]
-174C; [7E 38, 05, 05]
+0F9F; [7C 52, 05, 05]
-174D; [7E 3A, 05, 05]
+0F50; [7C 54, 05, 05]
-174E; [7E 3C, 05, 05]
+0FA0; [7C 56, 05, 05]
-174F; [7E 3E, 05, 05]
+0F51; [7C 58, 05, 05]
+0F52; [7C 58, 05, 05][7C A6, 05, 05]
-1750; [7E 40, 05, 05]
+0FA1; [7C 5A, 05, 05]
+0FA2; [7C 5A, 05, 05][7C A6, 05, 05]
-1751; [7E 42, 05, 05]
+0F53; [7C 5C, 05, 05]
-1752; [7E 44, 05, 05]
+0FA3; [7C 5E, 05, 05]
-1753; [7E 46, 05, 05]
+0F54; [7C 60, 05, 05]
-1760; [7F 20, 05, 05]
+0FA4; [7C 62, 05, 05]
-1761; [7F 22, 05, 05]
+0F55; [7C 64, 05, 05]
-1762; [7F 24, 05, 05]
+0FA5; [7C 66, 05, 05]
-1763; [7F 26, 05, 05]
+0F56; [7C 68, 05, 05]
+0F57; [7C 68, 05, 05][7C A6, 05, 05]
-1764; [7F 28, 05, 05]
+0FA6; [7C 6A, 05, 05]
+0FA7; [7C 6A, 05, 05][7C A6, 05, 05]
-1765; [7F 2A, 05, 05]
+0F58; [7C 6C, 05, 05]
-1766; [7F 2C, 05, 05]
+0FA8; [7C 6E, 05, 05]
-1767; [7F 2E, 05, 05]
+0F59; [7C 70, 05, 05]
-1768; [7F 30, 05, 05]
+0FA9; [7C 72, 05, 05]
-1769; [7F 32, 05, 05]
+0F5A; [7C 74, 05, 05]
-176A; [7F 34, 05, 05]
+0FAA; [7C 76, 05, 05]
-176B; [7F 36, 05, 05]
+0F5B; [7C 78, 05, 05]
+0F5C; [7C 78, 05, 05][7C A6, 05, 05]
-176C; [7F 38, 05, 05]
+0FAB; [7C 7A, 05, 05]
+0FAC; [7C 7A, 05, 05][7C A6, 05, 05]
-176E; [7F 3A, 05, 05]
+0F5D; [7C 7C, 05, 05]
-176F; [7F 3C, 05, 05]
+0FAD; [7C 7E, 05, 05]
+0FBA; [7C 7E, 05, 09][, E4 5D, 09]
-1770; [7F 3E, 05, 05]
+0F5E; [7C 80, 05, 05]
-1772; [7F 40, 05, 05]
+0FAE; [7C 82, 05, 05]
-1773; [7F 42, 05, 05]
+0F5F; [7C 84, 05, 05]
-1A00; [80 20, 05, 05]
+0FAF; [7C 86, 05, 05]
-1A01; [80 22, 05, 05]
+0F60; [7C 88, 05, 05]
-1A02; [80 24, 05, 05]
+0FB0; [7C 8A, 05, 05]
-1A03; [80 26, 05, 05]
+0F61; [7C 8C, 05, 05]
-1A04; [80 28, 05, 05]
+0FB1; [7C 8E, 05, 05]
+0FBB; [7C 8E, 05, 09][, E4 5D, 09]
-1A05; [80 2A, 05, 05]
+0F62; [7C 90, 05, 05]
+0F6A; [7C 90, 05, 09][, E4 5D, 09]
-1A06; [80 2C, 05, 05]
+0FB2; [7C 92, 05, 05]
+0FBC; [7C 92, 05, 09][, E4 5D, 09]
+0FB2 0F71; [7C 92, 05, 05][7C B4, 05, 05]
-1A07; [80 2E, 05, 05]
+0F63; [7C 94, 05, 05]
-1A08; [80 30, 05, 05]
+0FB3; [7C 96, 05, 05]
+0FB3 0F71; [7C 96, 05, 05][7C B4, 05, 05]
-1A09; [80 32, 05, 05]
+0F64; [7C 98, 05, 05]
-1A0A; [80 34, 05, 05]
+0FB4; [7C 9A, 05, 05]
-1A0B; [80 36, 05, 05]
+0F65; [7C 9C, 05, 05]
-1A0C; [80 38, 05, 05]
+0FB5; [7C 9E, 05, 05]
-1A0D; [80 3A, 05, 05]
+0F66; [7C A0, 05, 05]
-1A0E; [80 3C, 05, 05]
+0FB6; [7C A2, 05, 05]
-1A0F; [80 3E, 05, 05]
+0F67; [7C A4, 05, 05]
-1A10; [80 40, 05, 05]
+0FB7; [7C A6, 05, 05]
-1A11; [80 42, 05, 05]
+0F68; [7C A8, 05, 05]
+0F00; [7C A8, 05, 09][7C CE, 05, 09][, E0 4D, 3D]
-1A12; [80 44, 05, 05]
+0FB8; [7C AA, 05, 05]
-1A13; [80 46, 05, 05]
+0F88; [7C AC, 05, 05]
-1A14; [80 48, 05, 05]
+0F89; [7C AE, 05, 05]
-1A15; [80 4A, 05, 05]
+0F8A; [7C B0, 05, 05]
-1A16; [80 4C, 05, 05]
+0F8B; [7C B2, 05, 05]
-1A17; [80 4E, 05, 05]
+0F71; [7C B4, 05, 05]
-1A18; [80 50, 05, 05]
+0F72; [7C B6, 05, 05]
-1A19; [80 52, 05, 05]
+0F71 0F72; [7C B8, 05, 05]
+0F73; [7C B8, 05, 05]
-1A1A; [80 54, 05, 05]
+0F80; [7C BA, 05, 05]
-1A1B; [80 56, 05, 05]
+0F71 0F80; [7C BC, 05, 05]
+0F81; [7C BC, 05, 05]
-1000; [81 20, 05, 05]
+0F74; [7C BE, 05, 05]
-1001; [81 22, 05, 05]
+0F71 0F74; [7C C0, 05, 05]
+0F75; [7C C0, 05, 05]
-1002; [81 24, 05, 05]
+0F76; [7C C2, 05, 05]
+0FB2 0F80; [7C C2, 05, 05]
-1003; [81 26, 05, 05]
+0F77; [7C C4, 05, 05]
+0FB2 0F71 0F80; [7C C4, 05, 05]
+0FB2 0F81; [7C C4, 05, 05]
-1004; [81 28, 05, 05]
+0F78; [7C C6, 05, 05]
+0FB3 0F80; [7C C6, 05, 05]
-1005; [81 2A, 05, 05]
+0F79; [7C C8, 05, 05]
+0FB3 0F71 0F80; [7C C8, 05, 05]
+0FB3 0F81; [7C C8, 05, 05]
-1006; [81 2C, 05, 05]
+0F7A; [7C CA, 05, 05]
-1007; [81 2E, 05, 05]
+0F7B; [7C CC, 05, 05]
-1008; [81 30, 05, 05]
+0F7C; [7C CE, 05, 05]
-1009; [81 32, 05, 05]
+0F7D; [7C D0, 05, 05]
-100A; [81 34, 05, 05]
+0F84; [7C D2, 05, 05]
-100B; [81 36, 05, 05]
+A840; [7D 20, 05, 05]
-100C; [81 38, 05, 05]
+A841; [7D 22, 05, 05]
-100D; [81 3A, 05, 05]
+A842; [7D 24, 05, 05]
-100E; [81 3C, 05, 05]
+A843; [7D 26, 05, 05]
-100F; [81 3E, 05, 05]
+A844; [7D 28, 05, 05]
-1010; [81 40, 05, 05]
+A845; [7D 2A, 05, 05]
-1011; [81 42, 05, 05]
+A846; [7D 2C, 05, 05]
-1012; [81 44, 05, 05]
+A847; [7D 2E, 05, 05]
-1013; [81 46, 05, 05]
+A869; [7D 30, 05, 05]
-1014; [81 48, 05, 05]
+A86A; [7D 32, 05, 05]
-1015; [81 4A, 05, 05]
+A86B; [7D 34, 05, 05]
-1016; [81 4C, 05, 05]
+A86C; [7D 36, 05, 05]
-1017; [81 4E, 05, 05]
+A848; [7D 38, 05, 05]
-1018; [81 50, 05, 05]
+A849; [7D 3A, 05, 05]
-1019; [81 52, 05, 05]
+A84A; [7D 3C, 05, 05]
-101A; [81 54, 05, 05]
+A84B; [7D 3E, 05, 05]
-101B; [81 56, 05, 05]
+A84C; [7D 40, 05, 05]
-101C; [81 58, 05, 05]
+A84D; [7D 42, 05, 05]
-101D; [81 5A, 05, 05]
+A84E; [7D 44, 05, 05]
-1050; [81 5C, 05, 05]
+A84F; [7D 46, 05, 05]
-1051; [81 5E, 05, 05]
+A850; [7D 48, 05, 05]
-101E; [81 60, 05, 05]
+A851; [7D 4A, 05, 05]
-101F; [81 62, 05, 05]
+A852; [7D 4C, 05, 05]
-1020; [81 64, 05, 05]
+A853; [7D 4E, 05, 05]
-1021; [81 66, 05, 05]
+A867; [7D 50, 05, 05]
-1023; [81 68, 05, 05]
+A854; [7D 52, 05, 05]
-1024; [81 6A, 05, 05]
+A855; [7D 54, 05, 05]
-1025; [81 6C, 05, 05]
+A856; [7D 56, 05, 05]
-1025 102E; [81 6E, 05, 05]
-1026; [81 6E, 05, 05]
+A857; [7D 58, 05, 05]
-1027; [81 70, 05, 05]
+A868; [7D 5A, 05, 05]
-1029; [81 72, 05, 05]
+A86D; [7D 5C, 05, 05]
-102A; [81 74, 05, 05]
+A858; [7D 5E, 05, 05]
-1052; [81 76, 05, 05]
+A871; [7D 60, 05, 05]
-1053; [81 78, 05, 05]
+A872; [7D 62, 05, 05]
-1054; [81 7A, 05, 05]
+A859; [7D 64, 05, 05]
-1055; [81 7C, 05, 05]
+A85A; [7D 66, 05, 05]
-102C; [81 7E, 05, 05]
+A86E; [7D 68, 05, 05]
-102D; [81 80, 05, 05]
+A85B; [7D 6A, 05, 05]
-102E; [81 82, 05, 05]
+A85C; [7D 6C, 05, 05]
-102F; [81 84, 05, 05]
+A86F; [7D 6E, 05, 05]
-1030; [81 86, 05, 05]
+A870; [7D 70, 05, 05]
-1031; [81 88, 05, 05]
+A85D; [7D 72, 05, 05]
-1032; [81 8A, 05, 05]
+A862; [7D 74, 05, 05]
-1056; [81 8C, 05, 05]
+A863; [7D 76, 05, 05]
-1057; [81 8E, 05, 05]
+A864; [7D 78, 05, 05]
-1058; [81 90, 05, 05]
+A865; [7D 7A, 05, 05]
-1059; [81 92, 05, 05]
+A85E; [7D 7C, 05, 05]
-1039; [81 94, 05, 05]
+A85F; [7D 7E, 05, 05]
-1780; [82 20, 05, 05]
+A860; [7D 80, 05, 05]
-1781; [82 22, 05, 05]
+A861; [7D 82, 05, 05]
-1782; [82 24, 05, 05]
+A866; [7D 84, 05, 05]
-1783; [82 26, 05, 05]
+A873; [7D 86, 05, 05]
-1784; [82 28, 05, 05]
+1900; [7E 20, 05, 05]
-1785; [82 2A, 05, 05]
+1901; [7E 22, 05, 05]
-1786; [82 2C, 05, 05]
+1902; [7E 24, 05, 05]
-1787; [82 2E, 05, 05]
+1903; [7E 26, 05, 05]
-1788; [82 30, 05, 05]
+1904; [7E 28, 05, 05]
-1789; [82 32, 05, 05]
+1905; [7E 2A, 05, 05]
-178A; [82 34, 05, 05]
+1906; [7E 2C, 05, 05]
-178B; [82 36, 05, 05]
+1907; [7E 2E, 05, 05]
-178C; [82 38, 05, 05]
+1908; [7E 30, 05, 05]
-178D; [82 3A, 05, 05]
+1909; [7E 32, 05, 05]
-178E; [82 3C, 05, 05]
+190A; [7E 34, 05, 05]
-178F; [82 3E, 05, 05]
+190B; [7E 36, 05, 05]
-1790; [82 40, 05, 05]
+190C; [7E 38, 05, 05]
-1791; [82 42, 05, 05]
+190D; [7E 3A, 05, 05]
-1792; [82 44, 05, 05]
+190E; [7E 3C, 05, 05]
-1793; [82 46, 05, 05]
+190F; [7E 3E, 05, 05]
-1794; [82 48, 05, 05]
+1910; [7E 40, 05, 05]
-1795; [82 4A, 05, 05]
+1911; [7E 42, 05, 05]
-1796; [82 4C, 05, 05]
+1912; [7E 44, 05, 05]
-1797; [82 4E, 05, 05]
+1913; [7E 46, 05, 05]
-1798; [82 50, 05, 05]
+1914; [7E 48, 05, 05]
-1799; [82 52, 05, 05]
+1915; [7E 4A, 05, 05]
-179A; [82 54, 05, 05]
+1916; [7E 4C, 05, 05]
-179B; [82 56, 05, 05]
+1917; [7E 4E, 05, 05]
-179C; [82 58, 05, 05]
+1918; [7E 50, 05, 05]
-179D; [82 5A, 05, 05]
+1919; [7E 52, 05, 05]
-179E; [82 5C, 05, 05]
+191A; [7E 54, 05, 05]
-179F; [82 5E, 05, 05]
+191B; [7E 56, 05, 05]
-17A0; [82 60, 05, 05]
+191C; [7E 58, 05, 05]
-17A1; [82 62, 05, 05]
+1920; [7E 5A, 05, 05]
-17A2; [82 64, 05, 05]
+1921; [7E 5C, 05, 05]
-17DC; [82 66, 05, 05]
+1922; [7E 5E, 05, 05]
-17A3; [82 68, 05, 05]
+1923; [7E 60, 05, 05]
-17A4; [82 6A, 05, 05]
+1924; [7E 62, 05, 05]
-17A5; [82 6C, 05, 05]
+1925; [7E 64, 05, 05]
-17A6; [82 6E, 05, 05]
+1926; [7E 66, 05, 05]
-17A7; [82 70, 05, 05]
+1927; [7E 68, 05, 05]
-17A8; [82 72, 05, 05]
+1928; [7E 6A, 05, 05]
-17A9; [82 74, 05, 05]
+1929; [7E 6C, 05, 05]
-17AA; [82 76, 05, 05]
+192A; [7E 6E, 05, 05]
-17AB; [82 78, 05, 05]
+192B; [7E 70, 05, 05]
-17AC; [82 7A, 05, 05]
+1930; [7E 72, 05, 05]
-17AD; [82 7C, 05, 05]
+1931; [7E 74, 05, 05]
-17AE; [82 7E, 05, 05]
+1932; [7E 76, 05, 05]
-17AF; [82 80, 05, 05]
+1933; [7E 78, 05, 05]
-17B0; [82 82, 05, 05]
+1934; [7E 7A, 05, 05]
-17B1; [82 84, 05, 05]
+1935; [7E 7C, 05, 05]
-17B2; [82 86, 05, 05]
+1936; [7E 7E, 05, 05]
-17B3; [82 88, 05, 05]
+1937; [7E 80, 05, 05]
-17B4; [82 8A, 05, 05]
+1938; [7E 82, 05, 05]
-17B5; [82 8C, 05, 05]
+1700; [7F 20, 05, 05]
-17B6; [82 8E, 05, 05]
+1701; [7F 22, 05, 05]
-17B7; [82 90, 05, 05]
+1702; [7F 24, 05, 05]
-17B8; [82 92, 05, 05]
+1703; [7F 26, 05, 05]
-17B9; [82 94, 05, 05]
+1704; [7F 28, 05, 05]
-17BA; [82 96, 05, 05]
+1705; [7F 2A, 05, 05]
-17BB; [82 98, 05, 05]
+1706; [7F 2C, 05, 05]
-17BC; [82 9A, 05, 05]
+1707; [7F 2E, 05, 05]
-17BD; [82 9C, 05, 05]
+1708; [7F 30, 05, 05]
-17BE; [82 9E, 05, 05]
+1709; [7F 32, 05, 05]
-17BF; [82 A0, 05, 05]
+170A; [7F 34, 05, 05]
-17C0; [82 A2, 05, 05]
+170B; [7F 36, 05, 05]
-17C1; [82 A4, 05, 05]
+170C; [7F 38, 05, 05]
-17C2; [82 A6, 05, 05]
+170E; [7F 3A, 05, 05]
-17C3; [82 A8, 05, 05]
+170F; [7F 3C, 05, 05]
-17C4; [82 AA, 05, 05]
+1710; [7F 3E, 05, 05]
-17C5; [82 AC, 05, 05]
+1711; [7F 40, 05, 05]
-17D2; [82 AE, 05, 05]
+1712; [7F 42, 05, 05]
-1950; [83 20, 05, 05]
+1713; [7F 44, 05, 05]
-1951; [83 22, 05, 05]
+1714; [7F 46, 05, 05]
-1952; [83 24, 05, 05]
+1720; [80 20, 05, 05]
-1953; [83 26, 05, 05]
+1721; [80 22, 05, 05]
-1954; [83 28, 05, 05]
+1722; [80 24, 05, 05]
-1955; [83 2A, 05, 05]
+1723; [80 26, 05, 05]
-1956; [83 2C, 05, 05]
+1724; [80 28, 05, 05]
-1957; [83 2E, 05, 05]
+1725; [80 2A, 05, 05]
-1958; [83 30, 05, 05]
+1726; [80 2C, 05, 05]
-1959; [83 32, 05, 05]
+1727; [80 2E, 05, 05]
-195A; [83 34, 05, 05]
+1728; [80 30, 05, 05]
-195B; [83 36, 05, 05]
+1729; [80 32, 05, 05]
-195C; [83 38, 05, 05]
+172A; [80 34, 05, 05]
-195D; [83 3A, 05, 05]
+172B; [80 36, 05, 05]
-195E; [83 3C, 05, 05]
+172C; [80 38, 05, 05]
-195F; [83 3E, 05, 05]
+172D; [80 3A, 05, 05]
-1960; [83 40, 05, 05]
+172E; [80 3C, 05, 05]
-1961; [83 42, 05, 05]
+172F; [80 3E, 05, 05]
-1962; [83 44, 05, 05]
+1730; [80 40, 05, 05]
-1963; [83 46, 05, 05]
+1731; [80 42, 05, 05]
-1964; [83 48, 05, 05]
+1732; [80 44, 05, 05]
-1965; [83 4A, 05, 05]
+1733; [80 46, 05, 05]
-1966; [83 4C, 05, 05]
+1734; [80 48, 05, 05]
-1967; [83 4E, 05, 05]
+1740; [81 20, 05, 05]
-1968; [83 50, 05, 05]
+1741; [81 22, 05, 05]
-1969; [83 52, 05, 05]
+1742; [81 24, 05, 05]
-196A; [83 54, 05, 05]
+1743; [81 26, 05, 05]
-196B; [83 56, 05, 05]
+1744; [81 28, 05, 05]
-196C; [83 58, 05, 05]
+1745; [81 2A, 05, 05]
-196D; [83 5A, 05, 05]
+1746; [81 2C, 05, 05]
-1970; [83 5C, 05, 05]
+1747; [81 2E, 05, 05]
-1971; [83 5E, 05, 05]
+1748; [81 30, 05, 05]
-1972; [83 60, 05, 05]
+1749; [81 32, 05, 05]
-1973; [83 62, 05, 05]
+174A; [81 34, 05, 05]
-1974; [83 64, 05, 05]
+174B; [81 36, 05, 05]
-1980; [84 20, 05, 05]
+174C; [81 38, 05, 05]
-1981; [84 22, 05, 05]
+174D; [81 3A, 05, 05]
-1982; [84 24, 05, 05]
+174E; [81 3C, 05, 05]
-1983; [84 26, 05, 05]
+174F; [81 3E, 05, 05]
-1984; [84 28, 05, 05]
+1750; [81 40, 05, 05]
-1985; [84 2A, 05, 05]
+1751; [81 42, 05, 05]
-1986; [84 2C, 05, 05]
+1752; [81 44, 05, 05]
-1987; [84 2E, 05, 05]
+1753; [81 46, 05, 05]
-1988; [84 30, 05, 05]
+1760; [82 20, 05, 05]
-1989; [84 32, 05, 05]
+1761; [82 22, 05, 05]
-198A; [84 34, 05, 05]
+1762; [82 24, 05, 05]
-198B; [84 36, 05, 05]
+1763; [82 26, 05, 05]
-198C; [84 38, 05, 05]
+1764; [82 28, 05, 05]
-198D; [84 3A, 05, 05]
+1765; [82 2A, 05, 05]
-198E; [84 3C, 05, 05]
+1766; [82 2C, 05, 05]
-198F; [84 3E, 05, 05]
+1767; [82 2E, 05, 05]
-1990; [84 40, 05, 05]
+1768; [82 30, 05, 05]
-1991; [84 42, 05, 05]
+1769; [82 32, 05, 05]
-1992; [84 44, 05, 05]
+176A; [82 34, 05, 05]
-1993; [84 46, 05, 05]
+176B; [82 36, 05, 05]
-1994; [84 48, 05, 05]
+176C; [82 38, 05, 05]
-1995; [84 4A, 05, 05]
+176E; [82 3A, 05, 05]
-1996; [84 4C, 05, 05]
+176F; [82 3C, 05, 05]
-1997; [84 4E, 05, 05]
+1770; [82 3E, 05, 05]
-1998; [84 50, 05, 05]
+1772; [82 40, 05, 05]
-1999; [84 52, 05, 05]
+1773; [82 42, 05, 05]
-199A; [84 54, 05, 05]
+1A00; [83 20, 05, 05]
-199B; [84 56, 05, 05]
+1A01; [83 22, 05, 05]
-199C; [84 58, 05, 05]
-19DE; [84 58, 05, 09][84 80, 05, 09]
-19DF; [84 58, 05, 09][84 80, 05, 09][84 96, 05, 3D]
+1A02; [83 24, 05, 05]
-199D; [84 5A, 05, 05]
+1A03; [83 26, 05, 05]
-199E; [84 5C, 05, 05]
+1A04; [83 28, 05, 05]
-199F; [84 5E, 05, 05]
+1A05; [83 2A, 05, 05]
-19A0; [84 60, 05, 05]
+1A06; [83 2C, 05, 05]
-19A1; [84 62, 05, 05]
+1A07; [83 2E, 05, 05]
-19A2; [84 64, 05, 05]
+1A08; [83 30, 05, 05]
-19A3; [84 66, 05, 05]
+1A09; [83 32, 05, 05]
-19A4; [84 68, 05, 05]
+1A0A; [83 34, 05, 05]
-19A5; [84 6A, 05, 05]
+1A0B; [83 36, 05, 05]
-19A6; [84 6C, 05, 05]
+1A0C; [83 38, 05, 05]
-19A7; [84 6E, 05, 05]
+1A0D; [83 3A, 05, 05]
-19A8; [84 70, 05, 05]
+1A0E; [83 3C, 05, 05]
-19A9; [84 72, 05, 05]
+1A0F; [83 3E, 05, 05]
-19B0; [84 74, 05, 05]
+1A10; [83 40, 05, 05]
-19B1; [84 76, 05, 05]
+1A11; [83 42, 05, 05]
-19B2; [84 78, 05, 05]
+1A12; [83 44, 05, 05]
-19B3; [84 7A, 05, 05]
+1A13; [83 46, 05, 05]
-19B4; [84 7C, 05, 05]
+1A14; [83 48, 05, 05]
-19B5; [84 7E, 05, 05]
+1A15; [83 4A, 05, 05]
-19B6; [84 80, 05, 05]
+1A16; [83 4C, 05, 05]
-19B7; [84 82, 05, 05]
+1A17; [83 4E, 05, 05]
-19B8; [84 84, 05, 05]
+1A18; [83 50, 05, 05]
-19B9; [84 86, 05, 05]
+1A19; [83 52, 05, 05]
-19BA; [84 88, 05, 05]
+1A1A; [83 54, 05, 05]
-19BB; [84 8A, 05, 05]
+1A1B; [83 56, 05, 05]
-19BC; [84 8C, 05, 05]
+1000; [84 20, 05, 05]
-19BD; [84 8E, 05, 05]
+1001; [84 22, 05, 05]
-19BE; [84 90, 05, 05]
+1002; [84 24, 05, 05]
-19BF; [84 92, 05, 05]
+1003; [84 26, 05, 05]
-19C0; [84 94, 05, 05]
+1004; [84 28, 05, 05]
-19C1; [84 96, 05, 05]
+1005; [84 2A, 05, 05]
-19C2; [84 98, 05, 05]
+1006; [84 2C, 05, 05]
-19C3; [84 9A, 05, 05]
+1007; [84 2E, 05, 05]
-19C4; [84 9C, 05, 05]
+1008; [84 30, 05, 05]
-19C5; [84 9E, 05, 05]
+1009; [84 32, 05, 05]
-19C6; [84 A0, 05, 05]
+100A; [84 34, 05, 05]
-19C7; [84 A2, 05, 05]
+100B; [84 36, 05, 05]
-19C8; [84 A4, 05, 05]
+100C; [84 38, 05, 05]
-19C9; [84 A6, 05, 05]
+100D; [84 3A, 05, 05]
-1880; [85 20, 05, 05]
+100E; [84 3C, 05, 05]
-1881; [85 22, 05, 05]
+100F; [84 3E, 05, 05]
-1882; [85 24, 05, 05]
+1010; [84 40, 05, 05]
-1883; [85 26, 05, 05]
+1011; [84 42, 05, 05]
-1884; [85 28, 05, 05]
+1012; [84 44, 05, 05]
-1885; [85 2A, 05, 05]
+1013; [84 46, 05, 05]
-1886; [85 2C, 05, 05]
+1014; [84 48, 05, 05]
-1843; [85 2E, 05, 05]
+1015; [84 4A, 05, 05]
-1820; [85 30, 05, 05]
+1016; [84 4C, 05, 05]
-1887; [85 32, 05, 05]
+1017; [84 4E, 05, 05]
-1821; [85 34, 05, 05]
+1018; [84 50, 05, 05]
-1844; [85 36, 05, 05]
+1019; [84 52, 05, 05]
-185D; [85 38, 05, 05]
+101A; [84 54, 05, 05]
-1822; [85 3A, 05, 05]
+101B; [84 56, 05, 05]
-1845; [85 3C, 05, 05]
+101C; [84 58, 05, 05]
-185E; [85 3E, 05, 05]
+101D; [84 5A, 05, 05]
-1873; [85 40, 05, 05]
+1050; [84 5C, 05, 05]
-1888; [85 42, 05, 05]
+1051; [84 5E, 05, 05]
-185F; [85 44, 05, 05]
+101E; [84 60, 05, 05]
-1823; [85 46, 05, 05]
+101F; [84 62, 05, 05]
-1846; [85 48, 05, 05]
+1020; [84 64, 05, 05]
-1824; [85 4A, 05, 05]
+1021; [84 66, 05, 05]
-1847; [85 4C, 05, 05]
+1023; [84 68, 05, 05]
-1861; [85 4E, 05, 05]
+1024; [84 6A, 05, 05]
-1825; [85 50, 05, 05]
+1025; [84 6C, 05, 05]
-1848; [85 52, 05, 05]
+1025 102E; [84 6E, 05, 05]
+1026; [84 6E, 05, 05]
-1826; [85 54, 05, 05]
+1027; [84 70, 05, 05]
-1849; [85 56, 05, 05]
+1029; [84 72, 05, 05]
-1860; [85 58, 05, 05]
+102A; [84 74, 05, 05]
-1827; [85 5A, 05, 05]
+1052; [84 76, 05, 05]
-1828; [85 5C, 05, 05]
+1053; [84 78, 05, 05]
-1829; [85 5E, 05, 05]
+1054; [84 7A, 05, 05]
-184A; [85 60, 05, 05]
+1055; [84 7C, 05, 05]
-1862; [85 62, 05, 05]
+102C; [84 7E, 05, 05]
-188A; [85 64, 05, 05]
+102D; [84 80, 05, 05]
-189B; [85 66, 05, 05]
+102E; [84 82, 05, 05]
-182A; [85 68, 05, 05]
+102F; [84 84, 05, 05]
-184B; [85 6A, 05, 05]
+1030; [84 86, 05, 05]
-182B; [85 6C, 05, 05]
+1031; [84 88, 05, 05]
-184C; [85 6E, 05, 05]
+1032; [84 8A, 05, 05]
-1866; [85 70, 05, 05]
+1056; [84 8C, 05, 05]
-182C; [85 72, 05, 05]
+1057; [84 8E, 05, 05]
-184D; [85 74, 05, 05]
+1058; [84 90, 05, 05]
-182D; [85 76, 05, 05]
+1059; [84 92, 05, 05]
-184E; [85 78, 05, 05]
+1039; [84 94, 05, 05]
-1864; [85 7A, 05, 05]
+1780; [85 20, 05, 05]
-189A; [85 7C, 05, 05]
+1781; [85 22, 05, 05]
-1865; [85 7E, 05, 05]
+1782; [85 24, 05, 05]
-182E; [85 80, 05, 05]
+1783; [85 26, 05, 05]
-184F; [85 82, 05, 05]
+1784; [85 28, 05, 05]
-182F; [85 84, 05, 05]
+1785; [85 2A, 05, 05]
-1830; [85 86, 05, 05]
+1786; [85 2C, 05, 05]
-1831; [85 88, 05, 05]
+1787; [85 2E, 05, 05]
-1867; [85 8A, 05, 05]
+1788; [85 30, 05, 05]
-189C; [85 8C, 05, 05]
+1789; [85 32, 05, 05]
-189D; [85 8E, 05, 05]
+178A; [85 34, 05, 05]
-18A2; [85 90, 05, 05]
+178B; [85 36, 05, 05]
-18A4; [85 92, 05, 05]
+178C; [85 38, 05, 05]
-18A5; [85 94, 05, 05]
+178D; [85 3A, 05, 05]
-1832; [85 96, 05, 05]
+178E; [85 3C, 05, 05]
-1850; [85 98, 05, 05]
+178F; [85 3E, 05, 05]
-1868; [85 9A, 05, 05]
+1790; [85 40, 05, 05]
-1833; [85 9C, 05, 05]
+1791; [85 42, 05, 05]
-1851; [85 9E, 05, 05]
+1792; [85 44, 05, 05]
-1869; [85 A0, 05, 05]
+1793; [85 46, 05, 05]
-1834; [85 A2, 05, 05]
+1794; [85 48, 05, 05]
-1852; [85 A4, 05, 05]
+1795; [85 4A, 05, 05]
-1871; [85 A6, 05, 05]
+1796; [85 4C, 05, 05]
-185C; [85 A8, 05, 05]
+1797; [85 4E, 05, 05]
-188B; [85 AA, 05, 05]
+1798; [85 50, 05, 05]
-1835; [85 AC, 05, 05]
+1799; [85 52, 05, 05]
-1853; [85 AE, 05, 05]
+179A; [85 54, 05, 05]
-186A; [85 B0, 05, 05]
+179B; [85 56, 05, 05]
-1877; [85 B2, 05, 05]
+179C; [85 58, 05, 05]
-1836; [85 B4, 05, 05]
+179D; [85 5A, 05, 05]
-1855; [85 B6, 05, 05]
+179E; [85 5C, 05, 05]
-1872; [85 B8, 05, 05]
+179F; [85 5E, 05, 05]
-1837; [85 BA, 05, 05]
+17A0; [85 60, 05, 05]
-1875; [85 BC, 05, 05]
+17A1; [85 62, 05, 05]
-1838; [85 BE, 05, 05]
+17A2; [85 64, 05, 05]
-1856; [85 C0, 05, 05]
+17DC; [85 66, 05, 05]
-1839; [85 C2, 05, 05]
+17A3; [85 68, 05, 05]
-186B; [85 C4, 05, 05]
+17A4; [85 6A, 05, 05]
-1876; [85 C6, 05, 05]
+17A5; [85 6C, 05, 05]
-183A; [85 C8, 05, 05]
+17A6; [85 6E, 05, 05]
-1857; [85 CA, 05, 05]
+17A7; [85 70, 05, 05]
-1863; [85 CC, 05, 05]
+17A8; [85 72, 05, 05]
-1874; [85 CE, 05, 05]
+17A9; [85 74, 05, 05]
-1889; [85 D0, 05, 05]
+17AA; [85 76, 05, 05]
-183B; [85 D2, 05, 05]
+17AB; [85 78, 05, 05]
-183C; [85 D4, 05, 05]
+17AC; [85 7A, 05, 05]
-1854; [85 D6, 05, 05]
+17AD; [85 7C, 05, 05]
-186E; [85 D8, 05, 05]
+17AE; [85 7E, 05, 05]
-183D; [85 DA, 05, 05]
+17AF; [85 80, 05, 05]
-186F; [85 DC, 05, 05]
+17B0; [85 82, 05, 05]
-1858; [85 DE, 05, 05]
+17B1; [85 84, 05, 05]
-186C; [85 E0, 05, 05]
+17B2; [85 86, 05, 05]
-183E; [85 E2, 05, 05]
+17B3; [85 88, 05, 05]
-1859; [85 E4, 05, 05]
+17B4; [85 8A, 05, 05]
-186D; [85 E6, 05, 05]
+17B5; [85 8C, 05, 05]
-183F; [85 E8, 05, 05]
+17B6; [85 8E, 05, 05]
-1840; [85 EA, 05, 05]
+17B7; [85 90, 05, 05]
-1841; [85 EC, 05, 05]
+17B8; [85 92, 05, 05]
-1842; [85 EE, 05, 05]
+17B9; [85 94, 05, 05]
-185A; [85 F0, 05, 05]
+17BA; [85 96, 05, 05]
-185B; [85 F2, 05, 05]
+17BB; [85 98, 05, 05]
-1870; [85 F4, 05, 05]
+17BC; [85 9A, 05, 05]
-188C; [85 F6, 05, 05]
+17BD; [85 9C, 05, 05]
-189E; [85 F8, 05, 05]
+17BE; [85 9E, 05, 05]
-188D; [85 FA, 05, 05]
+17BF; [85 A0, 05, 05]
-188E; [85 FC, 05, 05]
+17C0; [85 A2, 05, 05]
-189F; [85 FE, 05, 05]
+17C1; [85 A4, 05, 05]
-188F; [86 05, 05, 05]
+17C2; [85 A6, 05, 05]
-1890; [86 07, 05, 05]
+17C3; [85 A8, 05, 05]
-1898; [86 09, 05, 05]
+17C4; [85 AA, 05, 05]
-18A0; [86 0B, 05, 05]
+17C5; [85 AC, 05, 05]
-1891; [86 0D, 05, 05]
+17D2; [85 AE, 05, 05]
-18A1; [86 0F, 05, 05]
+1950; [86 20, 05, 05]
-1892; [86 11, 05, 05]
+1951; [86 22, 05, 05]
-1893; [86 13, 05, 05]
+1952; [86 24, 05, 05]
-18A8; [86 15, 05, 05]
+1953; [86 26, 05, 05]
-1894; [86 17, 05, 05]
+1954; [86 28, 05, 05]
-18A3; [86 19, 05, 05]
+1955; [86 2A, 05, 05]
-1895; [86 1B, 05, 05]
+1956; [86 2C, 05, 05]
-1899; [86 1D, 05, 05]
+1957; [86 2E, 05, 05]
-1896; [86 1F, 05, 05]
+1958; [86 30, 05, 05]
-1897; [86 21, 05, 05]
+1959; [86 32, 05, 05]
-18A6; [86 23, 05, 05]
+195A; [86 34, 05, 05]
-18A7; [86 25, 05, 05]
+195B; [86 36, 05, 05]
-18A9; [86 27, 05, 05]
+195C; [86 38, 05, 05]
-13A0; [87 20, 05, 05]
+195D; [86 3A, 05, 05]
-13A1; [87 22, 05, 05]
+195E; [86 3C, 05, 05]
-13A2; [87 24, 05, 05]
+195F; [86 3E, 05, 05]
-13A3; [87 26, 05, 05]
+1960; [86 40, 05, 05]
-13A4; [87 28, 05, 05]
+1961; [86 42, 05, 05]
-13A5; [87 2A, 05, 05]
+1962; [86 44, 05, 05]
-13A6; [87 2C, 05, 05]
+1963; [86 46, 05, 05]
-13A7; [87 2E, 05, 05]
+1964; [86 48, 05, 05]
-13A8; [87 30, 05, 05]
+1965; [86 4A, 05, 05]
-13A9; [87 32, 05, 05]
+1966; [86 4C, 05, 05]
-13AA; [87 34, 05, 05]
+1967; [86 4E, 05, 05]
-13AB; [87 36, 05, 05]
+1968; [86 50, 05, 05]
-13AC; [87 38, 05, 05]
+1969; [86 52, 05, 05]
-13AD; [87 3A, 05, 05]
+196A; [86 54, 05, 05]
-13AE; [87 3C, 05, 05]
+196B; [86 56, 05, 05]
-13AF; [87 3E, 05, 05]
+196C; [86 58, 05, 05]
-13B0; [87 40, 05, 05]
+196D; [86 5A, 05, 05]
-13B1; [87 42, 05, 05]
+1970; [86 5C, 05, 05]
-13B2; [87 44, 05, 05]
+1971; [86 5E, 05, 05]
-13B3; [87 46, 05, 05]
+1972; [86 60, 05, 05]
-13B4; [87 48, 05, 05]
+1973; [86 62, 05, 05]
-13B5; [87 4A, 05, 05]
+1974; [86 64, 05, 05]
-13B6; [87 4C, 05, 05]
+1980; [87 20, 05, 05]
-13B7; [87 4E, 05, 05]
+1981; [87 22, 05, 05]
-13B8; [87 50, 05, 05]
+1982; [87 24, 05, 05]
-13B9; [87 52, 05, 05]
+1983; [87 26, 05, 05]
-13BA; [87 54, 05, 05]
+1984; [87 28, 05, 05]
-13BB; [87 56, 05, 05]
+1985; [87 2A, 05, 05]
-13BC; [87 58, 05, 05]
+1986; [87 2C, 05, 05]
-13BD; [87 5A, 05, 05]
+1987; [87 2E, 05, 05]
-13BE; [87 5C, 05, 05]
+1988; [87 30, 05, 05]
-13BF; [87 5E, 05, 05]
+1989; [87 32, 05, 05]
-13C0; [87 60, 05, 05]
+198A; [87 34, 05, 05]
-13C1; [87 62, 05, 05]
+198B; [87 36, 05, 05]
-13C2; [87 64, 05, 05]
+198C; [87 38, 05, 05]
-13C3; [87 66, 05, 05]
+198D; [87 3A, 05, 05]
-13C4; [87 68, 05, 05]
+198E; [87 3C, 05, 05]
-13C5; [87 6A, 05, 05]
+198F; [87 3E, 05, 05]
-13C6; [87 6C, 05, 05]
+1990; [87 40, 05, 05]
-13C7; [87 6E, 05, 05]
+1991; [87 42, 05, 05]
-13C8; [87 70, 05, 05]
+1992; [87 44, 05, 05]
-13C9; [87 72, 05, 05]
+1993; [87 46, 05, 05]
-13CA; [87 74, 05, 05]
+1994; [87 48, 05, 05]
-13CB; [87 76, 05, 05]
+1995; [87 4A, 05, 05]
-13CC; [87 78, 05, 05]
+1996; [87 4C, 05, 05]
-13CD; [87 7A, 05, 05]
+1997; [87 4E, 05, 05]
-13CE; [87 7C, 05, 05]
+1998; [87 50, 05, 05]
-13CF; [87 7E, 05, 05]
+1999; [87 52, 05, 05]
-13D0; [87 80, 05, 05]
+199A; [87 54, 05, 05]
-13D1; [87 82, 05, 05]
+199B; [87 56, 05, 05]
-13D2; [87 84, 05, 05]
+199C; [87 58, 05, 05]
+19DE; [87 58, 05, 09][87 80, 05, 09]
+19DF; [87 58, 05, 09][87 80, 05, 09][87 96, 05, 3D]
-13D3; [87 86, 05, 05]
+199D; [87 5A, 05, 05]
-13D4; [87 88, 05, 05]
+199E; [87 5C, 05, 05]
-13D5; [87 8A, 05, 05]
+199F; [87 5E, 05, 05]
-13D6; [87 8C, 05, 05]
+19A0; [87 60, 05, 05]
-13D7; [87 8E, 05, 05]
+19A1; [87 62, 05, 05]
-13D8; [87 90, 05, 05]
+19A2; [87 64, 05, 05]
-13D9; [87 92, 05, 05]
+19A3; [87 66, 05, 05]
-13DA; [87 94, 05, 05]
+19A4; [87 68, 05, 05]
-13DB; [87 96, 05, 05]
+19A5; [87 6A, 05, 05]
-13DC; [87 98, 05, 05]
+19A6; [87 6C, 05, 05]
-13DD; [87 9A, 05, 05]
+19A7; [87 6E, 05, 05]
-13DE; [87 9C, 05, 05]
+19A8; [87 70, 05, 05]
-13DF; [87 9E, 05, 05]
+19A9; [87 72, 05, 05]
-13E0; [87 A0, 05, 05]
+19B0; [87 74, 05, 05]
-13E1; [87 A2, 05, 05]
+19B1; [87 76, 05, 05]
-13E2; [87 A4, 05, 05]
+19B2; [87 78, 05, 05]
-13E3; [87 A6, 05, 05]
+19B3; [87 7A, 05, 05]
-13E4; [87 A8, 05, 05]
+19B4; [87 7C, 05, 05]
-13E5; [87 AA, 05, 05]
+19B5; [87 7E, 05, 05]
-13E6; [87 AC, 05, 05]
+19B6; [87 80, 05, 05]
-13E7; [87 AE, 05, 05]
+19B7; [87 82, 05, 05]
-13E8; [87 B0, 05, 05]
+19B8; [87 84, 05, 05]
-13E9; [87 B2, 05, 05]
+19B9; [87 86, 05, 05]
-13EA; [87 B4, 05, 05]
+19BA; [87 88, 05, 05]
-13EB; [87 B6, 05, 05]
+19BB; [87 8A, 05, 05]
-13EC; [87 B8, 05, 05]
+19BC; [87 8C, 05, 05]
-13ED; [87 BA, 05, 05]
+19BD; [87 8E, 05, 05]
-13EE; [87 BC, 05, 05]
+19BE; [87 90, 05, 05]
-13EF; [87 BE, 05, 05]
+19BF; [87 92, 05, 05]
-13F0; [87 C0, 05, 05]
+19C0; [87 94, 05, 05]
-13F1; [87 C2, 05, 05]
+19C1; [87 96, 05, 05]
-13F2; [87 C4, 05, 05]
+19C2; [87 98, 05, 05]
-13F3; [87 C6, 05, 05]
+19C3; [87 9A, 05, 05]
-13F4; [87 C8, 05, 05]
+19C4; [87 9C, 05, 05]
-1401; [88 20, 05, 05]
+19C5; [87 9E, 05, 05]
-1402; [88 22, 05, 05]
+19C6; [87 A0, 05, 05]
-1403; [88 24, 05, 05]
+19C7; [87 A2, 05, 05]
-1404; [88 26, 05, 05]
+19C8; [87 A4, 05, 05]
-1405; [88 28, 05, 05]
+19C9; [87 A6, 05, 05]
-1406; [88 2A, 05, 05]
+1B05; [88 20, 05, 05]
-1407; [88 2C, 05, 05]
+1B05 1B35; [88 22, 05, 05]
+1B06; [88 22, 05, 05]
-1408; [88 2E, 05, 05]
+1B07; [88 24, 05, 05]
-1409; [88 30, 05, 05]
+1B07 1B35; [88 26, 05, 05]
+1B08; [88 26, 05, 05]
-140A; [88 32, 05, 05]
+1B09; [88 28, 05, 05]
-140B; [88 34, 05, 05]
+1B09 1B35; [88 2A, 05, 05]
+1B0A; [88 2A, 05, 05]
-140C; [88 36, 05, 05]
+1B0B; [88 2C, 05, 05]
-140D; [88 38, 05, 05]
+1B0B 1B35; [88 2E, 05, 05]
+1B0C; [88 2E, 05, 05]
-140E; [88 3A, 05, 05]
+1B0D; [88 30, 05, 05]
-140F; [88 3C, 05, 05]
+1B0D 1B35; [88 32, 05, 05]
+1B0E; [88 32, 05, 05]
-1410; [88 3E, 05, 05]
+1B0F; [88 34, 05, 05]
-1411; [88 40, 05, 05]
+1B10; [88 36, 05, 05]
-1412; [88 42, 05, 05]
+1B11; [88 38, 05, 05]
-1413; [88 44, 05, 05]
+1B11 1B35; [88 3A, 05, 05]
+1B12; [88 3A, 05, 05]
-1414; [88 46, 05, 05]
+1B13; [88 3C, 05, 05]
-1415; [88 48, 05, 05]
+1B45; [88 3E, 05, 05]
-1416; [88 4A, 05, 05]
+1B46; [88 40, 05, 05]
-1417; [88 4C, 05, 05]
+1B14; [88 42, 05, 05]
-1418; [88 4E, 05, 05]
+1B15; [88 44, 05, 05]
-1419; [88 50, 05, 05]
+1B16; [88 46, 05, 05]
-141A; [88 52, 05, 05]
+1B17; [88 48, 05, 05]
-141B; [88 54, 05, 05]
+1B18; [88 4A, 05, 05]
-141C; [88 56, 05, 05]
+1B19; [88 4C, 05, 05]
-141D; [88 58, 05, 05]
+1B1A; [88 4E, 05, 05]
-141E; [88 5A, 05, 05]
+1B1B; [88 50, 05, 05]
-141F; [88 5C, 05, 05]
+1B1C; [88 52, 05, 05]
-1420; [88 5E, 05, 05]
+1B1D; [88 54, 05, 05]
-1421; [88 60, 05, 05]
+1B1E; [88 56, 05, 05]
-1422; [88 62, 05, 05]
+1B1F; [88 58, 05, 05]
-1423; [88 64, 05, 05]
+1B20; [88 5A, 05, 05]
-1424; [88 66, 05, 05]
+1B21; [88 5C, 05, 05]
-1425; [88 68, 05, 05]
+1B22; [88 5E, 05, 05]
-1426; [88 6A, 05, 05]
+1B47; [88 60, 05, 05]
-1427; [88 6C, 05, 05]
+1B23; [88 62, 05, 05]
-1428; [88 6E, 05, 05]
+1B24; [88 64, 05, 05]
-1429; [88 70, 05, 05]
+1B25; [88 66, 05, 05]
-142A; [88 72, 05, 05]
+1B26; [88 68, 05, 05]
-142B; [88 74, 05, 05]
+1B27; [88 6A, 05, 05]
-142C; [88 76, 05, 05]
+1B48; [88 6C, 05, 05]
-142D; [88 78, 05, 05]
+1B28; [88 6E, 05, 05]
-142E; [88 7A, 05, 05]
+1B29; [88 70, 05, 05]
-142F; [88 7C, 05, 05]
+1B2A; [88 72, 05, 05]
-1430; [88 7E, 05, 05]
+1B2B; [88 74, 05, 05]
-1431; [88 80, 05, 05]
+1B2C; [88 76, 05, 05]
-1432; [88 82, 05, 05]
+1B2D; [88 78, 05, 05]
-1433; [88 84, 05, 05]
+1B2E; [88 7A, 05, 05]
-1434; [88 86, 05, 05]
+1B2F; [88 7C, 05, 05]
-1435; [88 88, 05, 05]
+1B49; [88 7E, 05, 05]
-1436; [88 8A, 05, 05]
+1B30; [88 80, 05, 05]
-1437; [88 8C, 05, 05]
+1B31; [88 82, 05, 05]
-1438; [88 8E, 05, 05]
+1B32; [88 84, 05, 05]
-1439; [88 90, 05, 05]
+1B4A; [88 86, 05, 05]
-143A; [88 92, 05, 05]
+1B4B; [88 88, 05, 05]
-143B; [88 94, 05, 05]
+1B33; [88 8A, 05, 05]
-143C; [88 96, 05, 05]
+1B35; [88 8C, 05, 05]
-143D; [88 98, 05, 05]
+1B36; [88 8E, 05, 05]
-143E; [88 9A, 05, 05]
+1B37; [88 90, 05, 05]
-143F; [88 9C, 05, 05]
+1B38; [88 92, 05, 05]
-1440; [88 9E, 05, 05]
+1B39; [88 94, 05, 05]
-1441; [88 A0, 05, 05]
+1B3A; [88 96, 05, 05]
-1442; [88 A2, 05, 05]
+1B3A 1B35; [88 98, 05, 05]
+1B3B; [88 98, 05, 05]
-1443; [88 A4, 05, 05]
+1B3C; [88 9A, 05, 05]
-1444; [88 A6, 05, 05]
+1B3C 1B35; [88 9C, 05, 05]
+1B3D; [88 9C, 05, 05]
-1445; [88 A8, 05, 05]
+1B3E; [88 9E, 05, 05]
-1446; [88 AA, 05, 05]
+1B3F; [88 A0, 05, 05]
-1447; [88 AC, 05, 05]
+1B3E 1B35; [88 A2, 05, 05]
+1B40; [88 A2, 05, 05]
-1448; [88 AE, 05, 05]
+1B3F 1B35; [88 A4, 05, 05]
+1B41; [88 A4, 05, 05]
-1449; [88 B0, 05, 05]
+1B42; [88 A6, 05, 05]
-144A; [88 B2, 05, 05]
+1B42 1B35; [88 A8, 05, 05]
+1B43; [88 A8, 05, 05]
-144B; [88 B4, 05, 05]
+1B44; [88 AA, 05, 05]
-144C; [88 B6, 05, 05]
+1880; [89 20, 05, 05]
-144D; [88 B8, 05, 05]
+1881; [89 22, 05, 05]
-144E; [88 BA, 05, 05]
+1882; [89 24, 05, 05]
-144F; [88 BC, 05, 05]
+1883; [89 26, 05, 05]
-1450; [88 BE, 05, 05]
+1884; [89 28, 05, 05]
-1451; [88 C0, 05, 05]
+1885; [89 2A, 05, 05]
-1452; [88 C2, 05, 05]
+1886; [89 2C, 05, 05]
-1453; [88 C4, 05, 05]
+1843; [89 2E, 05, 05]
-1454; [88 C6, 05, 05]
+1820; [89 30, 05, 05]
-1455; [88 C8, 05, 05]
+1887; [89 32, 05, 05]
-1456; [88 CA, 05, 05]
+1821; [89 34, 05, 05]
-1457; [88 CC, 05, 05]
+1844; [89 36, 05, 05]
-1458; [88 CE, 05, 05]
+185D; [89 38, 05, 05]
-1459; [88 D0, 05, 05]
+1822; [89 3A, 05, 05]
-145A; [88 D2, 05, 05]
+1845; [89 3C, 05, 05]
-145B; [88 D4, 05, 05]
+185E; [89 3E, 05, 05]
-145C; [88 D6, 05, 05]
+1873; [89 40, 05, 05]
-145D; [88 D8, 05, 05]
+1888; [89 42, 05, 05]
-145E; [88 DA, 05, 05]
+185F; [89 44, 05, 05]
-145F; [88 DC, 05, 05]
+1823; [89 46, 05, 05]
-1460; [88 DE, 05, 05]
+1846; [89 48, 05, 05]
-1461; [88 E0, 05, 05]
+1824; [89 4A, 05, 05]
-1462; [88 E2, 05, 05]
+1847; [89 4C, 05, 05]
-1463; [88 E4, 05, 05]
+1861; [89 4E, 05, 05]
-1464; [88 E6, 05, 05]
+1825; [89 50, 05, 05]
-1465; [88 E8, 05, 05]
+1848; [89 52, 05, 05]
-1466; [88 EA, 05, 05]
+1826; [89 54, 05, 05]
-1467; [88 EC, 05, 05]
+1849; [89 56, 05, 05]
-1468; [88 EE, 05, 05]
+1860; [89 58, 05, 05]
-1469; [88 F0, 05, 05]
+1827; [89 5A, 05, 05]
-146A; [88 F2, 05, 05]
+1828; [89 5C, 05, 05]
-146B; [88 F4, 05, 05]
+1829; [89 5E, 05, 05]
-146C; [88 F6, 05, 05]
+184A; [89 60, 05, 05]
-146D; [88 F8, 05, 05]
+1862; [89 62, 05, 05]
-146E; [88 FA, 05, 05]
+188A; [89 64, 05, 05]
-146F; [88 FC, 05, 05]
+189B; [89 66, 05, 05]
-1470; [88 FE, 05, 05]
+182A; [89 68, 05, 05]
-1471; [89 05, 05, 05]
+184B; [89 6A, 05, 05]
-1472; [89 07, 05, 05]
+182B; [89 6C, 05, 05]
-1473; [89 09, 05, 05]
+184C; [89 6E, 05, 05]
-1474; [89 0B, 05, 05]
+1866; [89 70, 05, 05]
-1475; [89 0D, 05, 05]
+182C; [89 72, 05, 05]
-1476; [89 0F, 05, 05]
+184D; [89 74, 05, 05]
-1477; [89 11, 05, 05]
+182D; [89 76, 05, 05]
-1478; [89 13, 05, 05]
+184E; [89 78, 05, 05]
-1479; [89 15, 05, 05]
+1864; [89 7A, 05, 05]
-147A; [89 17, 05, 05]
+189A; [89 7C, 05, 05]
-147B; [89 19, 05, 05]
+1865; [89 7E, 05, 05]
-147C; [89 1B, 05, 05]
+182E; [89 80, 05, 05]
-147D; [89 1D, 05, 05]
+184F; [89 82, 05, 05]
-147E; [89 1F, 05, 05]
+182F; [89 84, 05, 05]
-147F; [89 21, 05, 05]
+1830; [89 86, 05, 05]
-1480; [89 23, 05, 05]
+1831; [89 88, 05, 05]
-1481; [89 25, 05, 05]
+1867; [89 8A, 05, 05]
-1482; [89 27, 05, 05]
+189C; [89 8C, 05, 05]
-1483; [89 29, 05, 05]
+189D; [89 8E, 05, 05]
-1484; [89 2B, 05, 05]
+18A2; [89 90, 05, 05]
-1485; [89 2D, 05, 05]
+18A4; [89 92, 05, 05]
-1486; [89 2F, 05, 05]
+18A5; [89 94, 05, 05]
-1487; [89 31, 05, 05]
+1832; [89 96, 05, 05]
-1488; [89 33, 05, 05]
+1850; [89 98, 05, 05]
-1489; [89 35, 05, 05]
+1868; [89 9A, 05, 05]
-148A; [89 37, 05, 05]
+1833; [89 9C, 05, 05]
-148B; [89 39, 05, 05]
+1851; [89 9E, 05, 05]
-148C; [89 3B, 05, 05]
+1869; [89 A0, 05, 05]
-148D; [89 3D, 05, 05]
+1834; [89 A2, 05, 05]
-148E; [89 3F, 05, 05]
+1852; [89 A4, 05, 05]
-148F; [89 41, 05, 05]
+1871; [89 A6, 05, 05]
-1490; [89 43, 05, 05]
+185C; [89 A8, 05, 05]
-1491; [89 45, 05, 05]
+188B; [89 AA, 05, 05]
-1492; [89 47, 05, 05]
+1835; [89 AC, 05, 05]
-1493; [89 49, 05, 05]
+1853; [89 AE, 05, 05]
-1494; [89 4B, 05, 05]
+186A; [89 B0, 05, 05]
-1495; [89 4D, 05, 05]
+1877; [89 B2, 05, 05]
-1496; [89 4F, 05, 05]
+1836; [89 B4, 05, 05]
-1497; [89 51, 05, 05]
+1855; [89 B6, 05, 05]
-1498; [89 53, 05, 05]
+1872; [89 B8, 05, 05]
-1499; [89 55, 05, 05]
+1837; [89 BA, 05, 05]
-149A; [89 57, 05, 05]
+1875; [89 BC, 05, 05]
-149B; [89 59, 05, 05]
+1838; [89 BE, 05, 05]
-149C; [89 5B, 05, 05]
+1856; [89 C0, 05, 05]
-149D; [89 5D, 05, 05]
+1839; [89 C2, 05, 05]
-149E; [89 5F, 05, 05]
+186B; [89 C4, 05, 05]
-149F; [89 61, 05, 05]
+1876; [89 C6, 05, 05]
-14A0; [89 63, 05, 05]
+183A; [89 C8, 05, 05]
-14A1; [89 65, 05, 05]
+1857; [89 CA, 05, 05]
-14A2; [89 67, 05, 05]
+1863; [89 CC, 05, 05]
-14A3; [89 69, 05, 05]
+1874; [89 CE, 05, 05]
-14A4; [89 6B, 05, 05]
+1889; [89 D0, 05, 05]
-14A5; [89 6D, 05, 05]
+183B; [89 D2, 05, 05]
-14A6; [89 6F, 05, 05]
+183C; [89 D4, 05, 05]
-14A7; [89 71, 05, 05]
+1854; [89 D6, 05, 05]
-14A8; [89 73, 05, 05]
+186E; [89 D8, 05, 05]
-14A9; [89 75, 05, 05]
+183D; [89 DA, 05, 05]
-14AA; [89 77, 05, 05]
+186F; [89 DC, 05, 05]
-14AB; [89 79, 05, 05]
+1858; [89 DE, 05, 05]
-14AC; [89 7B, 05, 05]
+186C; [89 E0, 05, 05]
-14AD; [89 7D, 05, 05]
+183E; [89 E2, 05, 05]
-14AE; [89 7F, 05, 05]
+1859; [89 E4, 05, 05]
-14AF; [89 81, 05, 05]
+186D; [89 E6, 05, 05]
-14B0; [89 83, 05, 05]
+183F; [89 E8, 05, 05]
-14B1; [89 85, 05, 05]
+1840; [89 EA, 05, 05]
-14B2; [89 87, 05, 05]
+1841; [89 EC, 05, 05]
-14B3; [89 89, 05, 05]
+1842; [89 EE, 05, 05]
-14B4; [89 8B, 05, 05]
+185A; [89 F0, 05, 05]
-14B5; [89 8D, 05, 05]
+185B; [89 F2, 05, 05]
-14B6; [89 8F, 05, 05]
+1870; [89 F4, 05, 05]
-14B7; [89 91, 05, 05]
+188C; [89 F6, 05, 05]
-14B8; [89 93, 05, 05]
+189E; [89 F8, 05, 05]
-14B9; [89 95, 05, 05]
+188D; [89 FA, 05, 05]
-14BA; [89 97, 05, 05]
+188E; [89 FC, 05, 05]
-14BB; [89 99, 05, 05]
+189F; [89 FE, 05, 05]
-14BC; [89 9B, 05, 05]
+188F; [8A 05, 05, 05]
-14BD; [89 9D, 05, 05]
+1890; [8A 07, 05, 05]
-14BE; [89 9F, 05, 05]
+1898; [8A 09, 05, 05]
-14BF; [89 A1, 05, 05]
+18A0; [8A 0B, 05, 05]
-14C0; [89 A3, 05, 05]
+1891; [8A 0D, 05, 05]
-14C1; [89 A5, 05, 05]
+18A1; [8A 0F, 05, 05]
-14C2; [89 A7, 05, 05]
+1892; [8A 11, 05, 05]
-14C3; [89 A9, 05, 05]
+1893; [8A 13, 05, 05]
-14C4; [89 AB, 05, 05]
+18A8; [8A 15, 05, 05]
-14C5; [89 AD, 05, 05]
+1894; [8A 17, 05, 05]
-14C6; [89 AF, 05, 05]
+18A3; [8A 19, 05, 05]
-14C7; [89 B1, 05, 05]
+1895; [8A 1B, 05, 05]
-14C8; [89 B3, 05, 05]
+1899; [8A 1D, 05, 05]
-14C9; [89 B5, 05, 05]
+1896; [8A 1F, 05, 05]
-14CA; [89 B7, 05, 05]
+1897; [8A 21, 05, 05]
-14CB; [89 B9, 05, 05]
+18A6; [8A 23, 05, 05]
-14CC; [89 BB, 05, 05]
+18A7; [8A 25, 05, 05]
-14CD; [89 BD, 05, 05]
+18A9; [8A 27, 05, 05]
-14CE; [89 BF, 05, 05]
+13A0; [8B 20, 05, 05]
-14CF; [89 C1, 05, 05]
+13A1; [8B 22, 05, 05]
-14D0; [89 C3, 05, 05]
+13A2; [8B 24, 05, 05]
-14D1; [89 C5, 05, 05]
+13A3; [8B 26, 05, 05]
-14D2; [89 C7, 05, 05]
+13A4; [8B 28, 05, 05]
-14D3; [89 C9, 05, 05]
+13A5; [8B 2A, 05, 05]
-14D4; [89 CB, 05, 05]
+13A6; [8B 2C, 05, 05]
-14D5; [89 CD, 05, 05]
+13A7; [8B 2E, 05, 05]
-14D6; [89 CF, 05, 05]
+13A8; [8B 30, 05, 05]
-14D7; [89 D1, 05, 05]
+13A9; [8B 32, 05, 05]
-14D8; [89 D3, 05, 05]
+13AA; [8B 34, 05, 05]
-14D9; [89 D5, 05, 05]
+13AB; [8B 36, 05, 05]
-14DA; [89 D7, 05, 05]
+13AC; [8B 38, 05, 05]
-14DB; [89 D9, 05, 05]
+13AD; [8B 3A, 05, 05]
-14DC; [89 DB, 05, 05]
+13AE; [8B 3C, 05, 05]
-14DD; [89 DD, 05, 05]
+13AF; [8B 3E, 05, 05]
-14DE; [89 DF, 05, 05]
+13B0; [8B 40, 05, 05]
-14DF; [89 E1, 05, 05]
+13B1; [8B 42, 05, 05]
-14E0; [89 E3, 05, 05]
+13B2; [8B 44, 05, 05]
-14E1; [89 E5, 05, 05]
+13B3; [8B 46, 05, 05]
-14E2; [89 E7, 05, 05]
+13B4; [8B 48, 05, 05]
-14E3; [89 E9, 05, 05]
+13B5; [8B 4A, 05, 05]
-14E4; [89 EB, 05, 05]
+13B6; [8B 4C, 05, 05]
-14E5; [89 ED, 05, 05]
+13B7; [8B 4E, 05, 05]
-14E6; [89 EF, 05, 05]
+13B8; [8B 50, 05, 05]
-14E7; [89 F1, 05, 05]
+13B9; [8B 52, 05, 05]
-14E8; [89 F3, 05, 05]
+13BA; [8B 54, 05, 05]
-14E9; [89 F5, 05, 05]
+13BB; [8B 56, 05, 05]
-14EA; [89 F7, 05, 05]
+13BC; [8B 58, 05, 05]
-14EB; [89 F9, 05, 05]
+13BD; [8B 5A, 05, 05]
-14EC; [89 FB, 05, 05]
+13BE; [8B 5C, 05, 05]
-14ED; [89 FD, 05, 05]
+13BF; [8B 5E, 05, 05]
-14EE; [8A 05, 05, 05]
+13C0; [8B 60, 05, 05]
-14EF; [8A 07, 05, 05]
+13C1; [8B 62, 05, 05]
-14F0; [8A 09, 05, 05]
+13C2; [8B 64, 05, 05]
-14F1; [8A 0B, 05, 05]
+13C3; [8B 66, 05, 05]
-14F2; [8A 0D, 05, 05]
+13C4; [8B 68, 05, 05]
-14F3; [8A 0F, 05, 05]
+13C5; [8B 6A, 05, 05]
-14F4; [8A 11, 05, 05]
+13C6; [8B 6C, 05, 05]
-14F5; [8A 13, 05, 05]
+13C7; [8B 6E, 05, 05]
-14F6; [8A 15, 05, 05]
+13C8; [8B 70, 05, 05]
-14F7; [8A 17, 05, 05]
+13C9; [8B 72, 05, 05]
-14F8; [8A 19, 05, 05]
+13CA; [8B 74, 05, 05]
-14F9; [8A 1B, 05, 05]
+13CB; [8B 76, 05, 05]
-14FA; [8A 1D, 05, 05]
+13CC; [8B 78, 05, 05]
-14FB; [8A 1F, 05, 05]
+13CD; [8B 7A, 05, 05]
-14FC; [8A 21, 05, 05]
+13CE; [8B 7C, 05, 05]
-14FD; [8A 23, 05, 05]
+13CF; [8B 7E, 05, 05]
-14FE; [8A 25, 05, 05]
+13D0; [8B 80, 05, 05]
-14FF; [8A 27, 05, 05]
+13D1; [8B 82, 05, 05]
-1500; [8A 29, 05, 05]
+13D2; [8B 84, 05, 05]
-1501; [8A 2B, 05, 05]
+13D3; [8B 86, 05, 05]
-1502; [8A 2D, 05, 05]
+13D4; [8B 88, 05, 05]
-1503; [8A 2F, 05, 05]
+13D5; [8B 8A, 05, 05]
-1504; [8A 31, 05, 05]
+13D6; [8B 8C, 05, 05]
-1505; [8A 33, 05, 05]
+13D7; [8B 8E, 05, 05]
-1506; [8A 35, 05, 05]
+13D8; [8B 90, 05, 05]
-1507; [8A 37, 05, 05]
+13D9; [8B 92, 05, 05]
-1508; [8A 39, 05, 05]
+13DA; [8B 94, 05, 05]
-1509; [8A 3B, 05, 05]
+13DB; [8B 96, 05, 05]
-150A; [8A 3D, 05, 05]
+13DC; [8B 98, 05, 05]
-150B; [8A 3F, 05, 05]
+13DD; [8B 9A, 05, 05]
-150C; [8A 41, 05, 05]
+13DE; [8B 9C, 05, 05]
-150D; [8A 43, 05, 05]
+13DF; [8B 9E, 05, 05]
-150E; [8A 45, 05, 05]
+13E0; [8B A0, 05, 05]
-150F; [8A 47, 05, 05]
+13E1; [8B A2, 05, 05]
-1510; [8A 49, 05, 05]
+13E2; [8B A4, 05, 05]
-1511; [8A 4B, 05, 05]
+13E3; [8B A6, 05, 05]
-1512; [8A 4D, 05, 05]
+13E4; [8B A8, 05, 05]
-1513; [8A 4F, 05, 05]
+13E5; [8B AA, 05, 05]
-1514; [8A 51, 05, 05]
+13E6; [8B AC, 05, 05]
-1515; [8A 53, 05, 05]
+13E7; [8B AE, 05, 05]
-1516; [8A 55, 05, 05]
+13E8; [8B B0, 05, 05]
-1517; [8A 57, 05, 05]
+13E9; [8B B2, 05, 05]
-1518; [8A 59, 05, 05]
+13EA; [8B B4, 05, 05]
-1519; [8A 5B, 05, 05]
+13EB; [8B B6, 05, 05]
-151A; [8A 5D, 05, 05]
+13EC; [8B B8, 05, 05]
-151B; [8A 5F, 05, 05]
+13ED; [8B BA, 05, 05]
-151C; [8A 61, 05, 05]
+13EE; [8B BC, 05, 05]
-151D; [8A 63, 05, 05]
+13EF; [8B BE, 05, 05]
-151E; [8A 65, 05, 05]
+13F0; [8B C0, 05, 05]
-151F; [8A 67, 05, 05]
+13F1; [8B C2, 05, 05]
-1520; [8A 69, 05, 05]
+13F2; [8B C4, 05, 05]
-1521; [8A 6B, 05, 05]
+13F3; [8B C6, 05, 05]
-1522; [8A 6D, 05, 05]
+13F4; [8B C8, 05, 05]
-1523; [8A 6F, 05, 05]
+1401; [8C 20, 05, 05]
-1524; [8A 71, 05, 05]
+1402; [8C 22, 05, 05]
-1525; [8A 73, 05, 05]
+1403; [8C 24, 05, 05]
-1526; [8A 75, 05, 05]
+1404; [8C 26, 05, 05]
-1527; [8A 77, 05, 05]
+1405; [8C 28, 05, 05]
-1528; [8A 79, 05, 05]
+1406; [8C 2A, 05, 05]
-1529; [8A 7B, 05, 05]
+1407; [8C 2C, 05, 05]
-152A; [8A 7D, 05, 05]
+1408; [8C 2E, 05, 05]
-152B; [8A 7F, 05, 05]
+1409; [8C 30, 05, 05]
-152C; [8A 81, 05, 05]
+140A; [8C 32, 05, 05]
-152D; [8A 83, 05, 05]
+140B; [8C 34, 05, 05]
-152E; [8A 85, 05, 05]
+140C; [8C 36, 05, 05]
-152F; [8A 87, 05, 05]
+140D; [8C 38, 05, 05]
-1530; [8A 89, 05, 05]
+140E; [8C 3A, 05, 05]
-1531; [8A 8B, 05, 05]
+140F; [8C 3C, 05, 05]
-1532; [8A 8D, 05, 05]
+1410; [8C 3E, 05, 05]
-1533; [8A 8F, 05, 05]
+1411; [8C 40, 05, 05]
-1534; [8A 91, 05, 05]
+1412; [8C 42, 05, 05]
-1535; [8A 93, 05, 05]
+1413; [8C 44, 05, 05]
-1536; [8A 95, 05, 05]
+1414; [8C 46, 05, 05]
-1537; [8A 97, 05, 05]
+1415; [8C 48, 05, 05]
-1538; [8A 99, 05, 05]
+1416; [8C 4A, 05, 05]
-1539; [8A 9B, 05, 05]
+1417; [8C 4C, 05, 05]
-153A; [8A 9D, 05, 05]
+1418; [8C 4E, 05, 05]
-153B; [8A 9F, 05, 05]
+1419; [8C 50, 05, 05]
-153C; [8A A1, 05, 05]
+141A; [8C 52, 05, 05]
-153D; [8A A3, 05, 05]
+141B; [8C 54, 05, 05]
-153E; [8A A5, 05, 05]
+141C; [8C 56, 05, 05]
-153F; [8A A7, 05, 05]
+141D; [8C 58, 05, 05]
-1540; [8A A9, 05, 05]
+141E; [8C 5A, 05, 05]
-1541; [8A AB, 05, 05]
+141F; [8C 5C, 05, 05]
-1542; [8A AD, 05, 05]
+1420; [8C 5E, 05, 05]
-1543; [8A AF, 05, 05]
+1421; [8C 60, 05, 05]
-1544; [8A B1, 05, 05]
+1422; [8C 62, 05, 05]
-1545; [8A B3, 05, 05]
+1423; [8C 64, 05, 05]
-1546; [8A B5, 05, 05]
+1424; [8C 66, 05, 05]
-1547; [8A B7, 05, 05]
+1425; [8C 68, 05, 05]
-1548; [8A B9, 05, 05]
+1426; [8C 6A, 05, 05]
-1549; [8A BB, 05, 05]
+1427; [8C 6C, 05, 05]
-154A; [8A BD, 05, 05]
+1428; [8C 6E, 05, 05]
-154B; [8A BF, 05, 05]
+1429; [8C 70, 05, 05]
-154C; [8A C1, 05, 05]
+142A; [8C 72, 05, 05]
-154D; [8A C3, 05, 05]
+142B; [8C 74, 05, 05]
-154E; [8A C5, 05, 05]
+142C; [8C 76, 05, 05]
-154F; [8A C7, 05, 05]
+142D; [8C 78, 05, 05]
-1550; [8A C9, 05, 05]
+142E; [8C 7A, 05, 05]
-1551; [8A CB, 05, 05]
+142F; [8C 7C, 05, 05]
-1552; [8A CD, 05, 05]
+1430; [8C 7E, 05, 05]
-1553; [8A CF, 05, 05]
+1431; [8C 80, 05, 05]
-1554; [8A D1, 05, 05]
+1432; [8C 82, 05, 05]
-1555; [8A D3, 05, 05]
+1433; [8C 84, 05, 05]
-1556; [8A D5, 05, 05]
+1434; [8C 86, 05, 05]
-1557; [8A D7, 05, 05]
+1435; [8C 88, 05, 05]
-1558; [8A D9, 05, 05]
+1436; [8C 8A, 05, 05]
-1559; [8A DB, 05, 05]
+1437; [8C 8C, 05, 05]
-155A; [8A DD, 05, 05]
+1438; [8C 8E, 05, 05]
-155B; [8A DF, 05, 05]
+1439; [8C 90, 05, 05]
-155C; [8A E1, 05, 05]
+143A; [8C 92, 05, 05]
-155D; [8A E3, 05, 05]
+143B; [8C 94, 05, 05]
-155E; [8A E5, 05, 05]
+143C; [8C 96, 05, 05]
-155F; [8A E7, 05, 05]
+143D; [8C 98, 05, 05]
-1560; [8A E9, 05, 05]
+143E; [8C 9A, 05, 05]
-1561; [8A EB, 05, 05]
+143F; [8C 9C, 05, 05]
-1562; [8A ED, 05, 05]
+1440; [8C 9E, 05, 05]
-1563; [8A EF, 05, 05]
+1441; [8C A0, 05, 05]
-1564; [8A F1, 05, 05]
+1442; [8C A2, 05, 05]
-1565; [8A F3, 05, 05]
+1443; [8C A4, 05, 05]
-1566; [8A F5, 05, 05]
+1444; [8C A6, 05, 05]
-1567; [8A F7, 05, 05]
+1445; [8C A8, 05, 05]
-1568; [8A F9, 05, 05]
+1446; [8C AA, 05, 05]
-1569; [8A FB, 05, 05]
+1447; [8C AC, 05, 05]
-156A; [8A FD, 05, 05]
+1448; [8C AE, 05, 05]
-156B; [8B 05, 05, 05]
+1449; [8C B0, 05, 05]
-156C; [8B 07, 05, 05]
+144A; [8C B2, 05, 05]
-156D; [8B 09, 05, 05]
+144B; [8C B4, 05, 05]
-156E; [8B 0B, 05, 05]
+144C; [8C B6, 05, 05]
-156F; [8B 0D, 05, 05]
+144D; [8C B8, 05, 05]
-1570; [8B 0F, 05, 05]
+144E; [8C BA, 05, 05]
-1571; [8B 11, 05, 05]
+144F; [8C BC, 05, 05]
-1572; [8B 13, 05, 05]
+1450; [8C BE, 05, 05]
-1573; [8B 15, 05, 05]
+1451; [8C C0, 05, 05]
-1574; [8B 17, 05, 05]
+1452; [8C C2, 05, 05]
-1575; [8B 19, 05, 05]
+1453; [8C C4, 05, 05]
-1576; [8B 1B, 05, 05]
+1454; [8C C6, 05, 05]
-1577; [8B 1D, 05, 05]
+1455; [8C C8, 05, 05]
-1578; [8B 1F, 05, 05]
+1456; [8C CA, 05, 05]
-1579; [8B 21, 05, 05]
+1457; [8C CC, 05, 05]
-157A; [8B 23, 05, 05]
+1458; [8C CE, 05, 05]
-157B; [8B 25, 05, 05]
+1459; [8C D0, 05, 05]
-157D; [8B 27, 05, 05]
+145A; [8C D2, 05, 05]
-166F; [8B 29, 05, 05]
+145B; [8C D4, 05, 05]
-157E; [8B 2B, 05, 05]
+145C; [8C D6, 05, 05]
-157F; [8B 2D, 05, 05]
+145D; [8C D8, 05, 05]
-1580; [8B 2F, 05, 05]
+145E; [8C DA, 05, 05]
-1581; [8B 31, 05, 05]
+145F; [8C DC, 05, 05]
-1582; [8B 33, 05, 05]
+1460; [8C DE, 05, 05]
-1583; [8B 35, 05, 05]
+1461; [8C E0, 05, 05]
-1584; [8B 37, 05, 05]
+1462; [8C E2, 05, 05]
-1585; [8B 39, 05, 05]
+1463; [8C E4, 05, 05]
-1586; [8B 3B, 05, 05]
+1464; [8C E6, 05, 05]
-1587; [8B 3D, 05, 05]
+1465; [8C E8, 05, 05]
-1588; [8B 3F, 05, 05]
+1466; [8C EA, 05, 05]
-1589; [8B 41, 05, 05]
+1467; [8C EC, 05, 05]
-158A; [8B 43, 05, 05]
+1468; [8C EE, 05, 05]
-158B; [8B 45, 05, 05]
+1469; [8C F0, 05, 05]
-158C; [8B 47, 05, 05]
+146A; [8C F2, 05, 05]
-158D; [8B 49, 05, 05]
+146B; [8C F4, 05, 05]
-1670; [8B 4B, 05, 05]
+146C; [8C F6, 05, 05]
-158E; [8B 4D, 05, 05]
+146D; [8C F8, 05, 05]
-158F; [8B 4F, 05, 05]
+146E; [8C FA, 05, 05]
-1590; [8B 51, 05, 05]
+146F; [8C FC, 05, 05]
-1591; [8B 53, 05, 05]
+1470; [8C FE, 05, 05]
-1592; [8B 55, 05, 05]
+1471; [8D 05, 05, 05]
-1593; [8B 57, 05, 05]
+1472; [8D 07, 05, 05]
-1594; [8B 59, 05, 05]
+1473; [8D 09, 05, 05]
-1595; [8B 5B, 05, 05]
+1474; [8D 0B, 05, 05]
-1671; [8B 5D, 05, 05]
+1475; [8D 0D, 05, 05]
-1672; [8B 5F, 05, 05]
+1476; [8D 0F, 05, 05]
-1673; [8B 61, 05, 05]
+1477; [8D 11, 05, 05]
-1674; [8B 63, 05, 05]
+1478; [8D 13, 05, 05]
-1675; [8B 65, 05, 05]
+1479; [8D 15, 05, 05]
-1676; [8B 67, 05, 05]
+147A; [8D 17, 05, 05]
-1596; [8B 69, 05, 05]
+147B; [8D 19, 05, 05]
-1597; [8B 6B, 05, 05]
+147C; [8D 1B, 05, 05]
-1598; [8B 6D, 05, 05]
+147D; [8D 1D, 05, 05]
-1599; [8B 6F, 05, 05]
+147E; [8D 1F, 05, 05]
-159A; [8B 71, 05, 05]
+147F; [8D 21, 05, 05]
-159B; [8B 73, 05, 05]
+1480; [8D 23, 05, 05]
-159C; [8B 75, 05, 05]
+1481; [8D 25, 05, 05]
-159D; [8B 77, 05, 05]
+1482; [8D 27, 05, 05]
-159E; [8B 79, 05, 05]
+1483; [8D 29, 05, 05]
-159F; [8B 7B, 05, 05]
+1484; [8D 2B, 05, 05]
-15A0; [8B 7D, 05, 05]
+1485; [8D 2D, 05, 05]
-15A1; [8B 7F, 05, 05]
+1486; [8D 2F, 05, 05]
-15A2; [8B 81, 05, 05]
+1487; [8D 31, 05, 05]
-15A3; [8B 83, 05, 05]
+1488; [8D 33, 05, 05]
-15A4; [8B 85, 05, 05]
+1489; [8D 35, 05, 05]
-15A5; [8B 87, 05, 05]
+148A; [8D 37, 05, 05]
-15A6; [8B 89, 05, 05]
+148B; [8D 39, 05, 05]
-157C; [8B 8B, 05, 05]
+148C; [8D 3B, 05, 05]
-15A7; [8B 8D, 05, 05]
+148D; [8D 3D, 05, 05]
-15A8; [8B 8F, 05, 05]
+148E; [8D 3F, 05, 05]
-15A9; [8B 91, 05, 05]
+148F; [8D 41, 05, 05]
-15AA; [8B 93, 05, 05]
+1490; [8D 43, 05, 05]
-15AB; [8B 95, 05, 05]
+1491; [8D 45, 05, 05]
-15AC; [8B 97, 05, 05]
+1492; [8D 47, 05, 05]
-15AD; [8B 99, 05, 05]
+1493; [8D 49, 05, 05]
-15AE; [8B 9B, 05, 05]
+1494; [8D 4B, 05, 05]
-15AF; [8B 9D, 05, 05]
+1495; [8D 4D, 05, 05]
-15B0; [8B 9F, 05, 05]
+1496; [8D 4F, 05, 05]
-15B1; [8B A1, 05, 05]
+1497; [8D 51, 05, 05]
-15B2; [8B A3, 05, 05]
+1498; [8D 53, 05, 05]
-15B3; [8B A5, 05, 05]
+1499; [8D 55, 05, 05]
-15B4; [8B A7, 05, 05]
+149A; [8D 57, 05, 05]
-15B5; [8B A9, 05, 05]
+149B; [8D 59, 05, 05]
-15B6; [8B AB, 05, 05]
+149C; [8D 5B, 05, 05]
-15B7; [8B AD, 05, 05]
+149D; [8D 5D, 05, 05]
-15B8; [8B AF, 05, 05]
+149E; [8D 5F, 05, 05]
-15B9; [8B B1, 05, 05]
+149F; [8D 61, 05, 05]
-15BA; [8B B3, 05, 05]
+14A0; [8D 63, 05, 05]
-15BB; [8B B5, 05, 05]
+14A1; [8D 65, 05, 05]
-15BC; [8B B7, 05, 05]
+14A2; [8D 67, 05, 05]
-15BD; [8B B9, 05, 05]
+14A3; [8D 69, 05, 05]
-15BE; [8B BB, 05, 05]
+14A4; [8D 6B, 05, 05]
-15BF; [8B BD, 05, 05]
+14A5; [8D 6D, 05, 05]
-15C0; [8B BF, 05, 05]
+14A6; [8D 6F, 05, 05]
-15C1; [8B C1, 05, 05]
+14A7; [8D 71, 05, 05]
-15C2; [8B C3, 05, 05]
+14A8; [8D 73, 05, 05]
-15C3; [8B C5, 05, 05]
+14A9; [8D 75, 05, 05]
-15C4; [8B C7, 05, 05]
+14AA; [8D 77, 05, 05]
-15C5; [8B C9, 05, 05]
+14AB; [8D 79, 05, 05]
-15C6; [8B CB, 05, 05]
+14AC; [8D 7B, 05, 05]
-15C7; [8B CD, 05, 05]
+14AD; [8D 7D, 05, 05]
-15C8; [8B CF, 05, 05]
+14AE; [8D 7F, 05, 05]
-15C9; [8B D1, 05, 05]
+14AF; [8D 81, 05, 05]
-15CA; [8B D3, 05, 05]
+14B0; [8D 83, 05, 05]
-15CB; [8B D5, 05, 05]
+14B1; [8D 85, 05, 05]
-15CC; [8B D7, 05, 05]
+14B2; [8D 87, 05, 05]
-15CD; [8B D9, 05, 05]
+14B3; [8D 89, 05, 05]
-15CE; [8B DB, 05, 05]
+14B4; [8D 8B, 05, 05]
-15CF; [8B DD, 05, 05]
+14B5; [8D 8D, 05, 05]
-15D0; [8B DF, 05, 05]
+14B6; [8D 8F, 05, 05]
-15D1; [8B E1, 05, 05]
+14B7; [8D 91, 05, 05]
-15D2; [8B E3, 05, 05]
+14B8; [8D 93, 05, 05]
-15D3; [8B E5, 05, 05]
+14B9; [8D 95, 05, 05]
-15D4; [8B E7, 05, 05]
+14BA; [8D 97, 05, 05]
-15D5; [8B E9, 05, 05]
+14BB; [8D 99, 05, 05]
-15D6; [8B EB, 05, 05]
+14BC; [8D 9B, 05, 05]
-15D7; [8B ED, 05, 05]
+14BD; [8D 9D, 05, 05]
-15D8; [8B EF, 05, 05]
+14BE; [8D 9F, 05, 05]
-15D9; [8B F1, 05, 05]
+14BF; [8D A1, 05, 05]
-15DA; [8B F3, 05, 05]
+14C0; [8D A3, 05, 05]
-15DB; [8B F5, 05, 05]
+14C1; [8D A5, 05, 05]
-15DC; [8B F7, 05, 05]
+14C2; [8D A7, 05, 05]
-15DD; [8B F9, 05, 05]
+14C3; [8D A9, 05, 05]
-15DE; [8B FB, 05, 05]
+14C4; [8D AB, 05, 05]
-15DF; [8B FD, 05, 05]
+14C5; [8D AD, 05, 05]
-15E0; [8C 05, 05, 05]
+14C6; [8D AF, 05, 05]
-15E1; [8C 07, 05, 05]
+14C7; [8D B1, 05, 05]
-15E2; [8C 09, 05, 05]
+14C8; [8D B3, 05, 05]
-15E3; [8C 0B, 05, 05]
+14C9; [8D B5, 05, 05]
-15E4; [8C 0D, 05, 05]
+14CA; [8D B7, 05, 05]
-15E5; [8C 0F, 05, 05]
+14CB; [8D B9, 05, 05]
-15E6; [8C 11, 05, 05]
+14CC; [8D BB, 05, 05]
-15E7; [8C 13, 05, 05]
+14CD; [8D BD, 05, 05]
-15E8; [8C 15, 05, 05]
+14CE; [8D BF, 05, 05]
-15E9; [8C 17, 05, 05]
+14CF; [8D C1, 05, 05]
-15EA; [8C 19, 05, 05]
+14D0; [8D C3, 05, 05]
-15EB; [8C 1B, 05, 05]
+14D1; [8D C5, 05, 05]
-15EC; [8C 1D, 05, 05]
+14D2; [8D C7, 05, 05]
-15ED; [8C 1F, 05, 05]
+14D3; [8D C9, 05, 05]
-15EE; [8C 21, 05, 05]
+14D4; [8D CB, 05, 05]
-15EF; [8C 23, 05, 05]
+14D5; [8D CD, 05, 05]
-15F0; [8C 25, 05, 05]
+14D6; [8D CF, 05, 05]
-15F1; [8C 27, 05, 05]
+14D7; [8D D1, 05, 05]
-15F2; [8C 29, 05, 05]
+14D8; [8D D3, 05, 05]
-15F3; [8C 2B, 05, 05]
+14D9; [8D D5, 05, 05]
-15F4; [8C 2D, 05, 05]
+14DA; [8D D7, 05, 05]
-15F5; [8C 2F, 05, 05]
+14DB; [8D D9, 05, 05]
-15F6; [8C 31, 05, 05]
+14DC; [8D DB, 05, 05]
-15F7; [8C 33, 05, 05]
+14DD; [8D DD, 05, 05]
-15F8; [8C 35, 05, 05]
+14DE; [8D DF, 05, 05]
-15F9; [8C 37, 05, 05]
+14DF; [8D E1, 05, 05]
-15FA; [8C 39, 05, 05]
+14E0; [8D E3, 05, 05]
-15FB; [8C 3B, 05, 05]
+14E1; [8D E5, 05, 05]
-15FC; [8C 3D, 05, 05]
+14E2; [8D E7, 05, 05]
-15FD; [8C 3F, 05, 05]
+14E3; [8D E9, 05, 05]
-15FE; [8C 41, 05, 05]
+14E4; [8D EB, 05, 05]
-15FF; [8C 43, 05, 05]
+14E5; [8D ED, 05, 05]
-1600; [8C 45, 05, 05]
+14E6; [8D EF, 05, 05]
-1601; [8C 47, 05, 05]
+14E7; [8D F1, 05, 05]
-1602; [8C 49, 05, 05]
+14E8; [8D F3, 05, 05]
-1603; [8C 4B, 05, 05]
+14E9; [8D F5, 05, 05]
-1604; [8C 4D, 05, 05]
+14EA; [8D F7, 05, 05]
-1605; [8C 4F, 05, 05]
+14EB; [8D F9, 05, 05]
-1606; [8C 51, 05, 05]
+14EC; [8D FB, 05, 05]
-1607; [8C 53, 05, 05]
+14ED; [8D FD, 05, 05]
-1608; [8C 55, 05, 05]
+14EE; [8E 05, 05, 05]
-1609; [8C 57, 05, 05]
+14EF; [8E 07, 05, 05]
-160A; [8C 59, 05, 05]
+14F0; [8E 09, 05, 05]
-160B; [8C 5B, 05, 05]
+14F1; [8E 0B, 05, 05]
-160C; [8C 5D, 05, 05]
+14F2; [8E 0D, 05, 05]
-160D; [8C 5F, 05, 05]
+14F3; [8E 0F, 05, 05]
-160E; [8C 61, 05, 05]
+14F4; [8E 11, 05, 05]
-160F; [8C 63, 05, 05]
+14F5; [8E 13, 05, 05]
-1610; [8C 65, 05, 05]
+14F6; [8E 15, 05, 05]
-1611; [8C 67, 05, 05]
+14F7; [8E 17, 05, 05]
-1612; [8C 69, 05, 05]
+14F8; [8E 19, 05, 05]
-1613; [8C 6B, 05, 05]
+14F9; [8E 1B, 05, 05]
-1614; [8C 6D, 05, 05]
+14FA; [8E 1D, 05, 05]
-1615; [8C 6F, 05, 05]
+14FB; [8E 1F, 05, 05]
-1616; [8C 71, 05, 05]
+14FC; [8E 21, 05, 05]
-1617; [8C 73, 05, 05]
+14FD; [8E 23, 05, 05]
-1618; [8C 75, 05, 05]
+14FE; [8E 25, 05, 05]
-1619; [8C 77, 05, 05]
+14FF; [8E 27, 05, 05]
-161A; [8C 79, 05, 05]
+1500; [8E 29, 05, 05]
-161B; [8C 7B, 05, 05]
+1501; [8E 2B, 05, 05]
-161C; [8C 7D, 05, 05]
+1502; [8E 2D, 05, 05]
-161D; [8C 7F, 05, 05]
+1503; [8E 2F, 05, 05]
-161E; [8C 81, 05, 05]
+1504; [8E 31, 05, 05]
-161F; [8C 83, 05, 05]
+1505; [8E 33, 05, 05]
-1620; [8C 85, 05, 05]
+1506; [8E 35, 05, 05]
-1621; [8C 87, 05, 05]
+1507; [8E 37, 05, 05]
-1622; [8C 89, 05, 05]
+1508; [8E 39, 05, 05]
-1623; [8C 8B, 05, 05]
+1509; [8E 3B, 05, 05]
-1624; [8C 8D, 05, 05]
+150A; [8E 3D, 05, 05]
-1625; [8C 8F, 05, 05]
+150B; [8E 3F, 05, 05]
-1626; [8C 91, 05, 05]
+150C; [8E 41, 05, 05]
-1627; [8C 93, 05, 05]
+150D; [8E 43, 05, 05]
-1628; [8C 95, 05, 05]
+150E; [8E 45, 05, 05]
-1629; [8C 97, 05, 05]
+150F; [8E 47, 05, 05]
-162A; [8C 99, 05, 05]
+1510; [8E 49, 05, 05]
-162B; [8C 9B, 05, 05]
+1511; [8E 4B, 05, 05]
-162C; [8C 9D, 05, 05]
+1512; [8E 4D, 05, 05]
-162D; [8C 9F, 05, 05]
+1513; [8E 4F, 05, 05]
-162E; [8C A1, 05, 05]
+1514; [8E 51, 05, 05]
-162F; [8C A3, 05, 05]
+1515; [8E 53, 05, 05]
-1630; [8C A5, 05, 05]
+1516; [8E 55, 05, 05]
-1631; [8C A7, 05, 05]
+1517; [8E 57, 05, 05]
-1632; [8C A9, 05, 05]
+1518; [8E 59, 05, 05]
-1633; [8C AB, 05, 05]
+1519; [8E 5B, 05, 05]
-1634; [8C AD, 05, 05]
+151A; [8E 5D, 05, 05]
-1635; [8C AF, 05, 05]
+151B; [8E 5F, 05, 05]
-1636; [8C B1, 05, 05]
+151C; [8E 61, 05, 05]
-1637; [8C B3, 05, 05]
+151D; [8E 63, 05, 05]
-1638; [8C B5, 05, 05]
+151E; [8E 65, 05, 05]
-1639; [8C B7, 05, 05]
+151F; [8E 67, 05, 05]
-163A; [8C B9, 05, 05]
+1520; [8E 69, 05, 05]
-163B; [8C BB, 05, 05]
+1521; [8E 6B, 05, 05]
-163C; [8C BD, 05, 05]
+1522; [8E 6D, 05, 05]
-163D; [8C BF, 05, 05]
+1523; [8E 6F, 05, 05]
-163E; [8C C1, 05, 05]
+1524; [8E 71, 05, 05]
-163F; [8C C3, 05, 05]
+1525; [8E 73, 05, 05]
-1640; [8C C5, 05, 05]
+1526; [8E 75, 05, 05]
-1641; [8C C7, 05, 05]
+1527; [8E 77, 05, 05]
-1642; [8C C9, 05, 05]
+1528; [8E 79, 05, 05]
-1643; [8C CB, 05, 05]
+1529; [8E 7B, 05, 05]
-1644; [8C CD, 05, 05]
+152A; [8E 7D, 05, 05]
-1645; [8C CF, 05, 05]
+152B; [8E 7F, 05, 05]
-1646; [8C D1, 05, 05]
+152C; [8E 81, 05, 05]
-1647; [8C D3, 05, 05]
+152D; [8E 83, 05, 05]
-1648; [8C D5, 05, 05]
+152E; [8E 85, 05, 05]
-1649; [8C D7, 05, 05]
+152F; [8E 87, 05, 05]
-164A; [8C D9, 05, 05]
+1530; [8E 89, 05, 05]
-164B; [8C DB, 05, 05]
+1531; [8E 8B, 05, 05]
-164C; [8C DD, 05, 05]
+1532; [8E 8D, 05, 05]
-164D; [8C DF, 05, 05]
+1533; [8E 8F, 05, 05]
-164E; [8C E1, 05, 05]
+1534; [8E 91, 05, 05]
-164F; [8C E3, 05, 05]
+1535; [8E 93, 05, 05]
-1650; [8C E5, 05, 05]
+1536; [8E 95, 05, 05]
-1651; [8C E7, 05, 05]
+1537; [8E 97, 05, 05]
-1652; [8C E9, 05, 05]
+1538; [8E 99, 05, 05]
-1653; [8C EB, 05, 05]
+1539; [8E 9B, 05, 05]
-1654; [8C ED, 05, 05]
+153A; [8E 9D, 05, 05]
-1655; [8C EF, 05, 05]
+153B; [8E 9F, 05, 05]
-1656; [8C F1, 05, 05]
+153C; [8E A1, 05, 05]
-1657; [8C F3, 05, 05]
+153D; [8E A3, 05, 05]
-1658; [8C F5, 05, 05]
+153E; [8E A5, 05, 05]
-1659; [8C F7, 05, 05]
+153F; [8E A7, 05, 05]
-165A; [8C F9, 05, 05]
+1540; [8E A9, 05, 05]
-165B; [8C FB, 05, 05]
+1541; [8E AB, 05, 05]
-165C; [8C FD, 05, 05]
+1542; [8E AD, 05, 05]
-165D; [8D 05, 05, 05]
+1543; [8E AF, 05, 05]
-165E; [8D 07, 05, 05]
+1544; [8E B1, 05, 05]
-165F; [8D 09, 05, 05]
+1545; [8E B3, 05, 05]
-1660; [8D 0B, 05, 05]
+1546; [8E B5, 05, 05]
-1661; [8D 0D, 05, 05]
+1547; [8E B7, 05, 05]
-1662; [8D 0F, 05, 05]
+1548; [8E B9, 05, 05]
-1663; [8D 11, 05, 05]
+1549; [8E BB, 05, 05]
-1664; [8D 13, 05, 05]
+154A; [8E BD, 05, 05]
-1665; [8D 15, 05, 05]
+154B; [8E BF, 05, 05]
-1666; [8D 17, 05, 05]
+154C; [8E C1, 05, 05]
-1667; [8D 19, 05, 05]
+154D; [8E C3, 05, 05]
-1668; [8D 1B, 05, 05]
+154E; [8E C5, 05, 05]
-1669; [8D 1D, 05, 05]
+154F; [8E C7, 05, 05]
-166A; [8D 1F, 05, 05]
+1550; [8E C9, 05, 05]
-166B; [8D 21, 05, 05]
+1551; [8E CB, 05, 05]
-166C; [8D 23, 05, 05]
+1552; [8E CD, 05, 05]
-1681; [8E 20, 05, 05]
+1553; [8E CF, 05, 05]
-1682; [8E 22, 05, 05]
+1554; [8E D1, 05, 05]
-1683; [8E 24, 05, 05]
+1555; [8E D3, 05, 05]
-1684; [8E 26, 05, 05]
+1556; [8E D5, 05, 05]
-1685; [8E 28, 05, 05]
+1557; [8E D7, 05, 05]
-1686; [8E 2A, 05, 05]
+1558; [8E D9, 05, 05]
-1687; [8E 2C, 05, 05]
+1559; [8E DB, 05, 05]
-1688; [8E 2E, 05, 05]
+155A; [8E DD, 05, 05]
-1689; [8E 30, 05, 05]
+155B; [8E DF, 05, 05]
-168A; [8E 32, 05, 05]
+155C; [8E E1, 05, 05]
-168B; [8E 34, 05, 05]
+155D; [8E E3, 05, 05]
-168C; [8E 36, 05, 05]
+155E; [8E E5, 05, 05]
-168D; [8E 38, 05, 05]
+155F; [8E E7, 05, 05]
-168E; [8E 3A, 05, 05]
+1560; [8E E9, 05, 05]
-168F; [8E 3C, 05, 05]
+1561; [8E EB, 05, 05]
-1690; [8E 3E, 05, 05]
+1562; [8E ED, 05, 05]
-1691; [8E 40, 05, 05]
+1563; [8E EF, 05, 05]
-1692; [8E 42, 05, 05]
+1564; [8E F1, 05, 05]
-1693; [8E 44, 05, 05]
+1565; [8E F3, 05, 05]
-1694; [8E 46, 05, 05]
+1566; [8E F5, 05, 05]
-1695; [8E 48, 05, 05]
+1567; [8E F7, 05, 05]
-1696; [8E 4A, 05, 05]
+1568; [8E F9, 05, 05]
-1697; [8E 4C, 05, 05]
+1569; [8E FB, 05, 05]
-1698; [8E 4E, 05, 05]
+156A; [8E FD, 05, 05]
-1699; [8E 50, 05, 05]
+156B; [8F 05, 05, 05]
-169A; [8E 52, 05, 05]
+156C; [8F 07, 05, 05]
-16A0; [8F 20, 05, 05]
-16A1; [8F 20, 05, 09][, E2 75, 09]
+156D; [8F 09, 05, 05]
-16A2; [8F 22, 05, 05]
-16A4; [8F 22, 05, 09][, E2 75, 09]
-16A5; [8F 22, 05, 09][, E2 85, 09]
+156E; [8F 0B, 05, 05]
-16A6; [8F 24, 05, 05]
-16A7; [8F 24, 05, 09][, E2 75, 09]
-16F0; [8F 24, 05, 09][8F 24, 05, 09]
+156F; [8F 0D, 05, 05]
-16A8; [8F 26, 05, 05]
-16A9; [8F 26, 05, 09][, E2 75, 09]
-16AC; [8F 26, 05, 09][, E2 85, 09]
-16AD; [8F 26, 05, 09][, E2 95, 09]
-16AE; [8F 26, 05, 09][, E2 A5, 09]
+1570; [8F 0F, 05, 05]
-16AF; [8F 28, 05, 05]
+1571; [8F 11, 05, 05]
-16B0; [8F 2A, 05, 05]
+1572; [8F 13, 05, 05]
-16B1; [8F 2C, 05, 05]
+1573; [8F 15, 05, 05]
-16B2; [8F 2E, 05, 05]
-16B3; [8F 2E, 05, 09][, E2 75, 09]
-16B4; [8F 2E, 05, 09][, E2 85, 09]
-16B5; [8F 2E, 05, 09][, E2 95, 09]
-16B6; [8F 2E, 05, 09][, E2 A5, 09]
+1574; [8F 17, 05, 05]
-16B7; [8F 30, 05, 05]
+1575; [8F 19, 05, 05]
-16B9; [8F 32, 05, 05]
-16E9; [8F 32, 05, 09][, E2 75, 09]
+1576; [8F 1B, 05, 05]
-16BA; [8F 34, 05, 05]
-16BB; [8F 34, 05, 09][, E2 75, 09]
-16BC; [8F 34, 05, 09][, E2 85, 09]
-16BD; [8F 34, 05, 09][, E2 95, 09]
+1577; [8F 1D, 05, 05]
-16BE; [8F 36, 05, 05]
-16BF; [8F 36, 05, 09][, E2 75, 09]
-16C0; [8F 36, 05, 09][, E2 85, 09]
+1578; [8F 1F, 05, 05]
-16C1; [8F 38, 05, 05]
-16C2; [8F 38, 05, 09][, E2 75, 09]
+1579; [8F 21, 05, 05]
-16C3; [8F 3A, 05, 05]
-16C4; [8F 3A, 05, 09][, E2 75, 09]
+157A; [8F 23, 05, 05]
-16C5; [8F 3C, 05, 05]
-16C6; [8F 3C, 05, 09][, E2 75, 09]
-16EE; [8F 3C, 05, 09][8F 4E, 05, 09]
+157B; [8F 25, 05, 05]
-16C7; [8F 3E, 05, 05]
+157D; [8F 27, 05, 05]
-16C8; [8F 40, 05, 05]
-16D5; [8F 40, 05, 09][, E2 75, 09]
+166F; [8F 29, 05, 05]
-16C9; [8F 42, 05, 05]
+157E; [8F 2B, 05, 05]
-16CA; [8F 44, 05, 05]
-16CB; [8F 44, 05, 09][, E2 75, 09]
-16EA; [8F 44, 05, 09][, E2 85, 09]
-16CC; [8F 44, 05, 09][, E2 95, 09]
-16CD; [8F 44, 05, 09][, E2 A5, 09]
-16CE; [8F 44, 05, 09][, E2 B5, 09]
+157F; [8F 2D, 05, 05]
-16CF; [8F 46, 05, 05]
-16D0; [8F 46, 05, 09][, E2 75, 09]
-16D1; [8F 46, 05, 09][, E2 85, 09]
+1580; [8F 2F, 05, 05]
-16D2; [8F 48, 05, 05]
-16D3; [8F 48, 05, 09][, E2 75, 09]
-16D4; [8F 48, 05, 09][, E2 85, 09]
+1581; [8F 31, 05, 05]
-16D6; [8F 4A, 05, 05]
+1582; [8F 33, 05, 05]
-16D7; [8F 4C, 05, 05]
-16D8; [8F 4C, 05, 09][, E2 75, 09]
-16D9; [8F 4C, 05, 09][, E2 85, 09]
-16EF; [8F 4C, 05, 09][, E2 75, 09][8F 4C, 05, 3D][, E2 75, 3D]
+1583; [8F 35, 05, 05]
-16DA; [8F 4E, 05, 05]
-16DB; [8F 4E, 05, 09][, E2 75, 09]
+1584; [8F 37, 05, 05]
-16DC; [8F 50, 05, 05]
-16DD; [8F 50, 05, 09][, E2 75, 09]
+1585; [8F 39, 05, 05]
-16DE; [8F 52, 05, 05]
+1586; [8F 3B, 05, 05]
-16DF; [8F 54, 05, 05]
+1587; [8F 3D, 05, 05]
-16AA; [8F 56, 05, 05]
+1588; [8F 3F, 05, 05]
-16AB; [8F 58, 05, 05]
+1589; [8F 41, 05, 05]
-16A3; [8F 5A, 05, 05]
+158A; [8F 43, 05, 05]
-16E0; [8F 5C, 05, 05]
+158B; [8F 45, 05, 05]
-16E3; [8F 5E, 05, 05]
+158C; [8F 47, 05, 05]
-16B8; [8F 60, 05, 05]
+158D; [8F 49, 05, 05]
-16E4; [8F 62, 05, 05]
+1670; [8F 4B, 05, 05]
-16E1; [8F 64, 05, 05]
+158E; [8F 4D, 05, 05]
-16E2; [8F 66, 05, 05]
+158F; [8F 4F, 05, 05]
-16E5; [8F 68, 05, 05]
+1590; [8F 51, 05, 05]
-16E6; [8F 6A, 05, 05]
-16E7; [8F 6A, 05, 09][, E2 75, 09]
-16E8; [8F 6A, 05, 09][, E2 85, 09]
+1591; [8F 53, 05, 05]
-1100; [90 20, 05, 05]
-3131; [90 20, 05, 09]
-3260; [90 20, 05, 0D]
-FFA1; [90 20, 05, A3]
-326E; [90 20, 05, 0D][90 48, 05, 0D]
+1592; [8F 55, 05, 05]
-1101; [90 22, 05, 05]
-3132; [90 22, 05, 09]
-FFA2; [90 22, 05, A3]
+1593; [8F 57, 05, 05]
-1102; [90 24, 05, 05]
-3134; [90 24, 05, 09]
-3261; [90 24, 05, 0D]
-FFA4; [90 24, 05, A3]
-326F; [90 24, 05, 0D][90 48, 05, 0D]
+1594; [8F 59, 05, 05]
-1103; [90 26, 05, 05]
-3137; [90 26, 05, 09]
-3262; [90 26, 05, 0D]
-FFA7; [90 26, 05, A3]
-3270; [90 26, 05, 0D][90 48, 05, 0D]
+1595; [8F 5B, 05, 05]
-1104; [90 28, 05, 05]
-3138; [90 28, 05, 09]
-FFA8; [90 28, 05, A3]
+1671; [8F 5D, 05, 05]
-1105; [90 2A, 05, 05]
-3139; [90 2A, 05, 09]
-3263; [90 2A, 05, 0D]
-FFA9; [90 2A, 05, A3]
-3271; [90 2A, 05, 0D][90 48, 05, 0D]
+1672; [8F 5F, 05, 05]
-1106; [90 2C, 05, 05]
-3141; [90 2C, 05, 09]
-3264; [90 2C, 05, 0D]
-FFB1; [90 2C, 05, A3]
-3272; [90 2C, 05, 0D][90 48, 05, 0D]
+1673; [8F 61, 05, 05]
-1107; [90 2E, 05, 05]
-3142; [90 2E, 05, 09]
-3265; [90 2E, 05, 0D]
-FFB2; [90 2E, 05, A3]
-3273; [90 2E, 05, 0D][90 48, 05, 0D]
+1674; [8F 63, 05, 05]
-1108; [90 30, 05, 05]
-3143; [90 30, 05, 09]
-FFB3; [90 30, 05, A3]
+1675; [8F 65, 05, 05]
-1109; [90 32, 05, 05]
-3145; [90 32, 05, 09]
-3266; [90 32, 05, 0D]
-FFB5; [90 32, 05, A3]
-3274; [90 32, 05, 0D][90 48, 05, 0D]
+1676; [8F 67, 05, 05]
-110A; [90 34, 05, 05]
-3146; [90 34, 05, 09]
-FFB6; [90 34, 05, A3]
+1596; [8F 69, 05, 05]
-110B; [90 36, 05, 05]
-3147; [90 36, 05, 09]
-3267; [90 36, 05, 0D]
-FFB7; [90 36, 05, A3]
-3275; [90 36, 05, 0D][90 48, 05, 0D]
-327E; [90 36, 05, 0D][90 62, 05, 0D]
+1597; [8F 6B, 05, 05]
-110C; [90 38, 05, 05]
-3148; [90 38, 05, 09]
-3268; [90 38, 05, 0D]
-FFB8; [90 38, 05, A3]
-3276; [90 38, 05, 0D][90 48, 05, 0D]
-327D; [90 38, 05, 0D][90 62, 05, 0D][90 36, 05, 3D][90 6E, 05, 3D]
+1598; [8F 6D, 05, 05]
-110D; [90 3A, 05, 05]
-3149; [90 3A, 05, 09]
-FFB9; [90 3A, 05, A3]
+1599; [8F 6F, 05, 05]
-110E; [90 3C, 05, 05]
-314A; [90 3C, 05, 09]
-3269; [90 3C, 05, 0D]
-FFBA; [90 3C, 05, A3]
-3277; [90 3C, 05, 0D][90 48, 05, 0D]
-327C; [90 3C, 05, 0D][90 48, 05, 0D][90 92, 05, 3D][90 20, 05, 3D][90 58, 05, 3D]
+159A; [8F 71, 05, 05]
-110F; [90 3E, 05, 05]
-314B; [90 3E, 05, 09]
-326A; [90 3E, 05, 0D]
-FFBB; [90 3E, 05, A3]
-3278; [90 3E, 05, 0D][90 48, 05, 0D]
+159B; [8F 73, 05, 05]
-1110; [90 40, 05, 05]
-314C; [90 40, 05, 09]
-326B; [90 40, 05, 0D]
-FFBC; [90 40, 05, A3]
-3279; [90 40, 05, 0D][90 48, 05, 0D]
+159C; [8F 75, 05, 05]
-1111; [90 42, 05, 05]
-314D; [90 42, 05, 09]
-326C; [90 42, 05, 0D]
-FFBD; [90 42, 05, A3]
-327A; [90 42, 05, 0D][90 48, 05, 0D]
+159D; [8F 77, 05, 05]
-1112; [90 44, 05, 05]
-314E; [90 44, 05, 09]
-326D; [90 44, 05, 0D]
-FFBE; [90 44, 05, A3]
-327B; [90 44, 05, 0D][90 48, 05, 0D]
+159E; [8F 79, 05, 05]
-1113; [90 46 10, 05, 05]
+159F; [8F 7B, 05, 05]
-1114; [90 46 13, 05, 05]
-3165; [90 46 13, 05, 09]
+15A0; [8F 7D, 05, 05]
-1115; [90 46 16, 05, 05]
-3166; [90 46 16, 05, 09]
+15A1; [8F 7F, 05, 05]
-1116; [90 46 19, 05, 05]
+15A2; [8F 81, 05, 05]
-1117; [90 46 1C, 05, 05]
+15A3; [8F 83, 05, 05]
-1118; [90 46 1F, 05, 05]
+15A4; [8F 85, 05, 05]
-1119; [90 46 22, 05, 05]
+15A5; [8F 87, 05, 05]
-111A; [90 46 25, 05, 05]
-3140; [90 46 25, 05, 09]
-FFB0; [90 46 25, 05, A3]
+15A6; [8F 89, 05, 05]
-111B; [90 46 28, 05, 05]
+157C; [8F 8B, 05, 05]
-111C; [90 46 2B, 05, 05]
-316E; [90 46 2B, 05, 09]
+15A7; [8F 8D, 05, 05]
-111D; [90 46 2E, 05, 05]
-3171; [90 46 2E, 05, 09]
+15A8; [8F 8F, 05, 05]
-111E; [90 46 31, 05, 05]
-3172; [90 46 31, 05, 09]
+15A9; [8F 91, 05, 05]
-111F; [90 46 34, 05, 05]
+15AA; [8F 93, 05, 05]
-1120; [90 46 37, 05, 05]
-3173; [90 46 37, 05, 09]
+15AB; [8F 95, 05, 05]
-1121; [90 46 3A, 05, 05]
-3144; [90 46 3A, 05, 09]
-FFB4; [90 46 3A, 05, A3]
+15AC; [8F 97, 05, 05]
-1122; [90 46 3D, 05, 05]
-3174; [90 46 3D, 05, 09]
+15AD; [8F 99, 05, 05]
-1123; [90 46 40, 05, 05]
-3175; [90 46 40, 05, 09]
+15AE; [8F 9B, 05, 05]
-1124; [90 46 43, 05, 05]
+15AF; [8F 9D, 05, 05]
-1125; [90 46 46, 05, 05]
+15B0; [8F 9F, 05, 05]
-1126; [90 46 49, 05, 05]
+15B1; [8F A1, 05, 05]
-1127; [90 46 4C, 05, 05]
-3176; [90 46 4C, 05, 09]
+15B2; [8F A3, 05, 05]
-1128; [90 46 4F, 05, 05]
+15B3; [8F A5, 05, 05]
-1129; [90 46 52, 05, 05]
-3177; [90 46 52, 05, 09]
+15B4; [8F A7, 05, 05]
-112A; [90 46 55, 05, 05]
+15B5; [8F A9, 05, 05]
-112B; [90 46 58, 05, 05]
-3178; [90 46 58, 05, 09]
+15B6; [8F AB, 05, 05]
-112C; [90 46 5B, 05, 05]
-3179; [90 46 5B, 05, 09]
+15B7; [8F AD, 05, 05]
-112D; [90 46 5E, 05, 05]
-317A; [90 46 5E, 05, 09]
+15B8; [8F AF, 05, 05]
-112E; [90 46 61, 05, 05]
-317B; [90 46 61, 05, 09]
+15B9; [8F B1, 05, 05]
-112F; [90 46 64, 05, 05]
-317C; [90 46 64, 05, 09]
+15BA; [8F B3, 05, 05]
-1130; [90 46 67, 05, 05]
+15BB; [8F B5, 05, 05]
-1131; [90 46 6A, 05, 05]
+15BC; [8F B7, 05, 05]
-1132; [90 46 6D, 05, 05]
-317D; [90 46 6D, 05, 09]
+15BD; [8F B9, 05, 05]
-1133; [90 46 70, 05, 05]
+15BE; [8F BB, 05, 05]
-1134; [90 46 73, 05, 05]
+15BF; [8F BD, 05, 05]
-1135; [90 46 76, 05, 05]
+15C0; [8F BF, 05, 05]
-1136; [90 46 79, 05, 05]
-317E; [90 46 79, 05, 09]
+15C1; [8F C1, 05, 05]
-1137; [90 46 7C, 05, 05]
+15C2; [8F C3, 05, 05]
-1138; [90 46 7F, 05, 05]
+15C3; [8F C5, 05, 05]
-1139; [90 46 82, 05, 05]
+15C4; [8F C7, 05, 05]
-113A; [90 46 85, 05, 05]
+15C5; [8F C9, 05, 05]
-113B; [90 46 88, 05, 05]
+15C6; [8F CB, 05, 05]
-113C; [90 46 8B, 05, 05]
+15C7; [8F CD, 05, 05]
-113D; [90 46 8E, 05, 05]
+15C8; [8F CF, 05, 05]
-113E; [90 46 91, 05, 05]
+15C9; [8F D1, 05, 05]
-113F; [90 46 94, 05, 05]
+15CA; [8F D3, 05, 05]
-1140; [90 46 97, 05, 05]
-317F; [90 46 97, 05, 09]
+15CB; [8F D5, 05, 05]
-1141; [90 46 9A, 05, 05]
+15CC; [8F D7, 05, 05]
-1142; [90 46 9D, 05, 05]
+15CD; [8F D9, 05, 05]
-1143; [90 46 A0, 05, 05]
+15CE; [8F DB, 05, 05]
-1144; [90 46 A3, 05, 05]
+15CF; [8F DD, 05, 05]
-1145; [90 46 A6, 05, 05]
+15D0; [8F DF, 05, 05]
-1146; [90 46 A9, 05, 05]
+15D1; [8F E1, 05, 05]
-1147; [90 46 AC, 05, 05]
-3180; [90 46 AC, 05, 09]
+15D2; [8F E3, 05, 05]
-1148; [90 46 AF, 05, 05]
+15D3; [8F E5, 05, 05]
-1149; [90 46 B2, 05, 05]
+15D4; [8F E7, 05, 05]
-114A; [90 46 B5, 05, 05]
+15D5; [8F E9, 05, 05]
-114B; [90 46 B8, 05, 05]
+15D6; [8F EB, 05, 05]
-114C; [90 46 BB, 05, 05]
-3181; [90 46 BB, 05, 09]
+15D7; [8F ED, 05, 05]
-114D; [90 46 BE, 05, 05]
+15D8; [8F EF, 05, 05]
-114E; [90 46 C1, 05, 05]
+15D9; [8F F1, 05, 05]
-114F; [90 46 C4, 05, 05]
+15DA; [8F F3, 05, 05]
-1150; [90 46 C7, 05, 05]
+15DB; [8F F5, 05, 05]
-1151; [90 46 CA, 05, 05]
+15DC; [8F F7, 05, 05]
-1152; [90 46 CD, 05, 05]
+15DD; [8F F9, 05, 05]
-1153; [90 46 D0, 05, 05]
+15DE; [8F FB, 05, 05]
-1154; [90 46 D3, 05, 05]
+15DF; [8F FD, 05, 05]
-1155; [90 46 D6, 05, 05]
+15E0; [90 05, 05, 05]
-1156; [90 46 D9, 05, 05]
+15E1; [90 07, 05, 05]
-1157; [90 46 DC, 05, 05]
-3184; [90 46 DC, 05, 09]
+15E2; [90 09, 05, 05]
-1158; [90 46 DF, 05, 05]
-3185; [90 46 DF, 05, 09]
+15E3; [90 0B, 05, 05]
-1159; [90 46 E2, 05, 05]
-3186; [90 46 E2, 05, 09]
+15E4; [90 0D, 05, 05]
-115F; [90 46 E5, 05, 05]
+15E5; [90 0F, 05, 05]
-1160; [90 46 E8, 05, 05]
-3164; [90 46 E8, 05, 09]
-FFA0; [90 46 E8, 05, A3]
+15E6; [90 11, 05, 05]
-1161; [90 48, 05, 05]
-314F; [90 48, 05, 09]
-FFC2; [90 48, 05, A3]
+15E7; [90 13, 05, 05]
-1162; [90 4A, 05, 05]
-3150; [90 4A, 05, 09]
-FFC3; [90 4A, 05, A3]
+15E8; [90 15, 05, 05]
-1163; [90 4C, 05, 05]
-3151; [90 4C, 05, 09]
-FFC4; [90 4C, 05, A3]
+15E9; [90 17, 05, 05]
-1164; [90 4E, 05, 05]
-3152; [90 4E, 05, 09]
-FFC5; [90 4E, 05, A3]
+15EA; [90 19, 05, 05]
-1165; [90 50, 05, 05]
-3153; [90 50, 05, 09]
-FFC6; [90 50, 05, A3]
+15EB; [90 1B, 05, 05]
-1166; [90 52, 05, 05]
-3154; [90 52, 05, 09]
-FFC7; [90 52, 05, A3]
+15EC; [90 1D, 05, 05]
-1167; [90 54, 05, 05]
-3155; [90 54, 05, 09]
-FFCA; [90 54, 05, A3]
+15ED; [90 1F, 05, 05]
-1168; [90 56, 05, 05]
-3156; [90 56, 05, 09]
-FFCB; [90 56, 05, A3]
+15EE; [90 21, 05, 05]
-1169; [90 58, 05, 05]
-3157; [90 58, 05, 09]
-FFCC; [90 58, 05, A3]
+15EF; [90 23, 05, 05]
-116A; [90 5A, 05, 05]
-3158; [90 5A, 05, 09]
-FFCD; [90 5A, 05, A3]
+15F0; [90 25, 05, 05]
-116B; [90 5C, 05, 05]
-3159; [90 5C, 05, 09]
-FFCE; [90 5C, 05, A3]
+15F1; [90 27, 05, 05]
-116C; [90 5E, 05, 05]
-315A; [90 5E, 05, 09]
-FFCF; [90 5E, 05, A3]
+15F2; [90 29, 05, 05]
-116D; [90 60, 05, 05]
-315B; [90 60, 05, 09]
-FFD2; [90 60, 05, A3]
+15F3; [90 2B, 05, 05]
-116E; [90 62, 05, 05]
-315C; [90 62, 05, 09]
-FFD3; [90 62, 05, A3]
+15F4; [90 2D, 05, 05]
-116F; [90 64, 05, 05]
-315D; [90 64, 05, 09]
-FFD4; [90 64, 05, A3]
+15F5; [90 2F, 05, 05]
-1170; [90 66, 05, 05]
-315E; [90 66, 05, 09]
-FFD5; [90 66, 05, A3]
+15F6; [90 31, 05, 05]
-1171; [90 68, 05, 05]
-315F; [90 68, 05, 09]
-FFD6; [90 68, 05, A3]
+15F7; [90 33, 05, 05]
-1172; [90 6A, 05, 05]
-3160; [90 6A, 05, 09]
-FFD7; [90 6A, 05, A3]
+15F8; [90 35, 05, 05]
-1173; [90 6C, 05, 05]
-3161; [90 6C, 05, 09]
-FFDA; [90 6C, 05, A3]
+15F9; [90 37, 05, 05]
-1174; [90 6E, 05, 05]
-3162; [90 6E, 05, 09]
-FFDB; [90 6E, 05, A3]
+15FA; [90 39, 05, 05]
-1175; [90 70, 05, 05]
-3163; [90 70, 05, 09]
-FFDC; [90 70, 05, A3]
+15FB; [90 3B, 05, 05]
-1176; [90 72 10, 05, 05]
+15FC; [90 3D, 05, 05]
-1177; [90 72 13, 05, 05]
+15FD; [90 3F, 05, 05]
-1178; [90 72 16, 05, 05]
+15FE; [90 41, 05, 05]
-1179; [90 72 19, 05, 05]
+15FF; [90 43, 05, 05]
-117A; [90 72 1C, 05, 05]
+1600; [90 45, 05, 05]
-117B; [90 72 1F, 05, 05]
+1601; [90 47, 05, 05]
-117C; [90 72 22, 05, 05]
+1602; [90 49, 05, 05]
-117D; [90 72 25, 05, 05]
+1603; [90 4B, 05, 05]
-117E; [90 72 28, 05, 05]
+1604; [90 4D, 05, 05]
-117F; [90 72 2B, 05, 05]
+1605; [90 4F, 05, 05]
-1180; [90 72 2E, 05, 05]
+1606; [90 51, 05, 05]
-1181; [90 72 31, 05, 05]
+1607; [90 53, 05, 05]
-1182; [90 72 34, 05, 05]
+1608; [90 55, 05, 05]
-1183; [90 72 37, 05, 05]
+1609; [90 57, 05, 05]
-1184; [90 72 3A, 05, 05]
-3187; [90 72 3A, 05, 09]
+160A; [90 59, 05, 05]
-1185; [90 72 3D, 05, 05]
-3188; [90 72 3D, 05, 09]
+160B; [90 5B, 05, 05]
-1186; [90 72 40, 05, 05]
+160C; [90 5D, 05, 05]
-1187; [90 72 43, 05, 05]
+160D; [90 5F, 05, 05]
-1188; [90 72 46, 05, 05]
-3189; [90 72 46, 05, 09]
+160E; [90 61, 05, 05]
-1189; [90 72 49, 05, 05]
+160F; [90 63, 05, 05]
-118A; [90 72 4C, 05, 05]
+1610; [90 65, 05, 05]
-118B; [90 72 4F, 05, 05]
+1611; [90 67, 05, 05]
-118C; [90 72 52, 05, 05]
+1612; [90 69, 05, 05]
-118D; [90 72 55, 05, 05]
+1613; [90 6B, 05, 05]
-118E; [90 72 58, 05, 05]
+1614; [90 6D, 05, 05]
-118F; [90 72 5B, 05, 05]
+1615; [90 6F, 05, 05]
-1190; [90 72 5E, 05, 05]
+1616; [90 71, 05, 05]
-1191; [90 72 61, 05, 05]
-318A; [90 72 61, 05, 09]
+1617; [90 73, 05, 05]
-1192; [90 72 64, 05, 05]
-318B; [90 72 64, 05, 09]
+1618; [90 75, 05, 05]
-1193; [90 72 67, 05, 05]
+1619; [90 77, 05, 05]
-1194; [90 72 6A, 05, 05]
-318C; [90 72 6A, 05, 09]
+161A; [90 79, 05, 05]
-1195; [90 72 6D, 05, 05]
+161B; [90 7B, 05, 05]
-1196; [90 72 70, 05, 05]
+161C; [90 7D, 05, 05]
-1197; [90 72 73, 05, 05]
+161D; [90 7F, 05, 05]
-1198; [90 72 76, 05, 05]
+161E; [90 81, 05, 05]
-1199; [90 72 79, 05, 05]
+161F; [90 83, 05, 05]
-119A; [90 72 7C, 05, 05]
+1620; [90 85, 05, 05]
-119B; [90 72 7F, 05, 05]
+1621; [90 87, 05, 05]
-119C; [90 72 82, 05, 05]
+1622; [90 89, 05, 05]
-119D; [90 72 85, 05, 05]
+1623; [90 8B, 05, 05]
-119E; [90 72 88, 05, 05]
-318D; [90 72 88, 05, 09]
+1624; [90 8D, 05, 05]
-119F; [90 72 8B, 05, 05]
+1625; [90 8F, 05, 05]
-11A0; [90 72 8E, 05, 05]
+1626; [90 91, 05, 05]
-11A1; [90 72 91, 05, 05]
-318E; [90 72 91, 05, 09]
+1627; [90 93, 05, 05]
-11A2; [90 72 94, 05, 05]
+1628; [90 95, 05, 05]
-11A8; [90 74, 05, 05]
+1629; [90 97, 05, 05]
-11A9; [90 76, 05, 05]
+162A; [90 99, 05, 05]
-11AA; [90 78, 05, 05]
-3133; [90 78, 05, 09]
-FFA3; [90 78, 05, A3]
+162B; [90 9B, 05, 05]
-11AB; [90 7A, 05, 05]
+162C; [90 9D, 05, 05]
-11AC; [90 7C, 05, 05]
-3135; [90 7C, 05, 09]
-FFA5; [90 7C, 05, A3]
+162D; [90 9F, 05, 05]
-11AD; [90 7E, 05, 05]
-3136; [90 7E, 05, 09]
-FFA6; [90 7E, 05, A3]
+162E; [90 A1, 05, 05]
-11AE; [90 80, 05, 05]
+162F; [90 A3, 05, 05]
-11AF; [90 82, 05, 05]
+1630; [90 A5, 05, 05]
-11B0; [90 84, 05, 05]
-313A; [90 84, 05, 09]
-FFAA; [90 84, 05, A3]
+1631; [90 A7, 05, 05]
-11B1; [90 86, 05, 05]
-313B; [90 86, 05, 09]
-FFAB; [90 86, 05, A3]
+1632; [90 A9, 05, 05]
-11B2; [90 88, 05, 05]
-313C; [90 88, 05, 09]
-FFAC; [90 88, 05, A3]
+1633; [90 AB, 05, 05]
-11B3; [90 8A, 05, 05]
-313D; [90 8A, 05, 09]
-FFAD; [90 8A, 05, A3]
+1634; [90 AD, 05, 05]
-11B4; [90 8C, 05, 05]
-313E; [90 8C, 05, 09]
-FFAE; [90 8C, 05, A3]
+1635; [90 AF, 05, 05]
-11B5; [90 8E, 05, 05]
-313F; [90 8E, 05, 09]
-FFAF; [90 8E, 05, A3]
+1636; [90 B1, 05, 05]
-11B6; [90 90, 05, 05]
+1637; [90 B3, 05, 05]
-11B7; [90 92, 05, 05]
+1638; [90 B5, 05, 05]
-11B8; [90 94, 05, 05]
+1639; [90 B7, 05, 05]
-11B9; [90 96, 05, 05]
+163A; [90 B9, 05, 05]
-11BA; [90 98, 05, 05]
+163B; [90 BB, 05, 05]
-11BB; [90 9A, 05, 05]
+163C; [90 BD, 05, 05]
-11BC; [90 9C, 05, 05]
+163D; [90 BF, 05, 05]
-11BD; [90 9E, 05, 05]
+163E; [90 C1, 05, 05]
-11BE; [90 A0, 05, 05]
+163F; [90 C3, 05, 05]
-11BF; [90 A2, 05, 05]
+1640; [90 C5, 05, 05]
-11C0; [90 A4, 05, 05]
+1641; [90 C7, 05, 05]
-11C1; [90 A6, 05, 05]
+1642; [90 C9, 05, 05]
-11C2; [90 A8, 05, 05]
+1643; [90 CB, 05, 05]
-11C3; [90 AA 10, 05, 05]
+1644; [90 CD, 05, 05]
-11C4; [90 AA 13, 05, 05]
+1645; [90 CF, 05, 05]
-11C5; [90 AA 16, 05, 05]
+1646; [90 D1, 05, 05]
-11C6; [90 AA 19, 05, 05]
+1647; [90 D3, 05, 05]
-11C7; [90 AA 1C, 05, 05]
-3167; [90 AA 1C, 05, 09]
+1648; [90 D5, 05, 05]
-11C8; [90 AA 1F, 05, 05]
-3168; [90 AA 1F, 05, 09]
+1649; [90 D7, 05, 05]
-11C9; [90 AA 22, 05, 05]
+164A; [90 D9, 05, 05]
-11CA; [90 AA 25, 05, 05]
+164B; [90 DB, 05, 05]
-11CB; [90 AA 28, 05, 05]
+164C; [90 DD, 05, 05]
-11CC; [90 AA 2B, 05, 05]
-3169; [90 AA 2B, 05, 09]
+164D; [90 DF, 05, 05]
-11CD; [90 AA 2E, 05, 05]
+164E; [90 E1, 05, 05]
-11CE; [90 AA 31, 05, 05]
-316A; [90 AA 31, 05, 09]
+164F; [90 E3, 05, 05]
-11CF; [90 AA 34, 05, 05]
+1650; [90 E5, 05, 05]
-11D0; [90 AA 37, 05, 05]
+1651; [90 E7, 05, 05]
-11D1; [90 AA 3A, 05, 05]
+1652; [90 E9, 05, 05]
-11D2; [90 AA 3D, 05, 05]
+1653; [90 EB, 05, 05]
-11D3; [90 AA 40, 05, 05]
-316B; [90 AA 40, 05, 09]
+1654; [90 ED, 05, 05]
-11D4; [90 AA 43, 05, 05]
+1655; [90 EF, 05, 05]
-11D5; [90 AA 46, 05, 05]
+1656; [90 F1, 05, 05]
-11D6; [90 AA 49, 05, 05]
+1657; [90 F3, 05, 05]
-11D7; [90 AA 4C, 05, 05]
-316C; [90 AA 4C, 05, 09]
+1658; [90 F5, 05, 05]
-11D8; [90 AA 4F, 05, 05]
+1659; [90 F7, 05, 05]
-11D9; [90 AA 52, 05, 05]
-316D; [90 AA 52, 05, 09]
+165A; [90 F9, 05, 05]
-11DA; [90 AA 55, 05, 05]
+165B; [90 FB, 05, 05]
-11DB; [90 AA 58, 05, 05]
+165C; [90 FD, 05, 05]
-11DC; [90 AA 5B, 05, 05]
+165D; [91 05, 05, 05]
-11DD; [90 AA 5E, 05, 05]
-316F; [90 AA 5E, 05, 09]
+165E; [91 07, 05, 05]
-11DE; [90 AA 61, 05, 05]
+165F; [91 09, 05, 05]
-11DF; [90 AA 64, 05, 05]
-3170; [90 AA 64, 05, 09]
+1660; [91 0B, 05, 05]
-11E0; [90 AA 67, 05, 05]
+1661; [91 0D, 05, 05]
-11E1; [90 AA 6A, 05, 05]
+1662; [91 0F, 05, 05]
-11E2; [90 AA 6D, 05, 05]
+1663; [91 11, 05, 05]
-11E3; [90 AA 70, 05, 05]
+1664; [91 13, 05, 05]
-11E4; [90 AA 73, 05, 05]
+1665; [91 15, 05, 05]
-11E5; [90 AA 76, 05, 05]
+1666; [91 17, 05, 05]
-11E6; [90 AA 79, 05, 05]
+1667; [91 19, 05, 05]
-11E7; [90 AA 7C, 05, 05]
+1668; [91 1B, 05, 05]
-11E8; [90 AA 7F, 05, 05]
+1669; [91 1D, 05, 05]
-11E9; [90 AA 82, 05, 05]
+166A; [91 1F, 05, 05]
-11EA; [90 AA 85, 05, 05]
+166B; [91 21, 05, 05]
-11EB; [90 AA 88, 05, 05]
+166C; [91 23, 05, 05]
-11EC; [90 AA 8B, 05, 05]
+1681; [92 20, 05, 05]
-11ED; [90 AA 8E, 05, 05]
+1682; [92 22, 05, 05]
-11EE; [90 AA 91, 05, 05]
+1683; [92 24, 05, 05]
-11EF; [90 AA 94, 05, 05]
+1684; [92 26, 05, 05]
-11F0; [90 AA 97, 05, 05]
+1685; [92 28, 05, 05]
-11F1; [90 AA 9A, 05, 05]
-3182; [90 AA 9A, 05, 09]
+1686; [92 2A, 05, 05]
-11F2; [90 AA 9D, 05, 05]
-3183; [90 AA 9D, 05, 09]
+1687; [92 2C, 05, 05]
-11F3; [90 AA A0, 05, 05]
+1688; [92 2E, 05, 05]
-11F4; [90 AA A3, 05, 05]
+1689; [92 30, 05, 05]
-11F5; [90 AA A6, 05, 05]
+168A; [92 32, 05, 05]
-11F6; [90 AA A9, 05, 05]
+168B; [92 34, 05, 05]
-11F7; [90 AA AC, 05, 05]
+168C; [92 36, 05, 05]
-11F8; [90 AA AF, 05, 05]
+168D; [92 38, 05, 05]
-11F9; [90 AA B2, 05, 05]
+168E; [92 3A, 05, 05]
-3041; [91 20, 05, 19]
-3042; [91 20, 05, 9B]
-30A1; [91 20, 05, 1D]
-FF67; [91 20, 05, 1F]
-30A2; [91 20, 05, A1]
-FF71; [91 20, 05, A3]
-32D0; [91 20, 05, 25]
-3303; [91 20, 05, 37][25 34, 05, 37][91 70, 05, 3D]
-3300; [91 20, 05, 37][91 52, 05, 37][, E0 9D, 3D][25 34, 05, 3D][91 46, 05, 3D]
-3301; [91 20, 05, 37][91 70, 05, 37][91 56, 05, 3D][91 20, 05, 3D]
-3302; [91 20, 05, 37][91 7E, 05, 37][91 58, 05, 3D][, E0 9D, 3D][91 20, 05, 3D]
+168F; [92 3C, 05, 05]
-3043; [91 22, 05, 19]
-3044; [91 22, 05, 9B]
-30A3; [91 22, 05, 1D]
-FF68; [91 22, 05, 1F]
-30A4; [91 22, 05, A1]
-FF72; [91 22, 05, A3]
-32D1; [91 22, 05, 25]
-3304; [91 22, 05, 37][91 4A, 05, 37][91 7E, 05, 3D][91 2E, 05, 3D][, E0 8D, 3D]
-3305; [91 22, 05, 37][91 7E, 05, 37][91 40, 05, 3D]
-
-3045; [91 24, 05, 19]
-3046; [91 24, 05, 9B]
-30A5; [91 24, 05, 1D]
-FF69; [91 24, 05, 1F]
-30A6; [91 24, 05, A1]
-FF73; [91 24, 05, A3]
-32D2; [91 24, 05, 25]
-3094; [91 24, 05, 9B][, E0 8D, 05]
-30F4; [91 24, 05, A1][, E0 8D, 05]
-3306; [91 24, 05, 37][91 28, 05, 37][91 7E, 05, 3D]
-
-3047; [91 26, 05, 19]
-3048; [91 26, 05, 9B]
-30A7; [91 26, 05, 1D]
-FF6A; [91 26, 05, 1F]
-30A8; [91 26, 05, A1]
-FF74; [91 26, 05, A3]
-32D3; [91 26, 05, 25]
-3308; [91 26, 05, 37][25 34, 05, 37][91 2A, 05, 3D][25 34, 05, 3D]
-3307; [91 26, 05, 37][91 38, 05, 37][91 2E, 05, 3D][25 34, 05, 3D][91 46, 05, 3D][, E0 8D, 3D]
-
-3049; [91 28, 05, 19]
-304A; [91 28, 05, 9B]
-30A9; [91 28, 05, 1D]
-FF6B; [91 28, 05, 1F]
-30AA; [91 28, 05, A1]
-FF75; [91 28, 05, A3]
-32D4; [91 28, 05, 25]
-330A; [91 28, 05, 37][25 34, 05, 37][91 60, 05, 3D]
-3309; [91 28, 05, 37][91 7E, 05, 37][91 38, 05, 3D]
-
-3095; [91 2A, 05, 19]
-304B; [91 2A, 05, 9B]
-30F5; [91 2A, 05, 1D]
-30AB; [91 2A, 05, A1]
-FF76; [91 2A, 05, A3]
-32D5; [91 2A, 05, 25]
-304C; [91 2A, 05, 9B][, E0 8D, 05]
-30AC; [91 2A, 05, A1][, E0 8D, 05]
-330B; [91 2A, 05, 37][91 22, 05, 37][91 6E, 05, 3D]
-330C; [91 2A, 05, 37][91 6C, 05, 37][91 42, 05, 3D][91 46, 05, 3D]
-330D; [91 2A, 05, 37][91 74, 05, 37][91 6E, 05, 3D][25 34, 05, 3D]
-330E; [91 2A, 05, 37][, E0 8D, 37][91 74, 05, 3D][91 7E, 05, 3D]
-330F; [91 2A, 05, 37][, E0 8D, 37][91 7E, 05, 3D][91 5C, 05, 3D]
-
-304D; [91 2C, 05, 9B]
-30AD; [91 2C, 05, A1]
-FF77; [91 2C, 05, A3]
-32D6; [91 2C, 05, 25]
-304E; [91 2C, 05, 9B][, E0 8D, 05]
-30AE; [91 2C, 05, A1][, E0 8D, 05]
-3310; [91 2C, 05, 37][, E0 8D, 37][91 2A, 05, 3D][, E0 8D, 3D]
-3311; [91 2C, 05, 37][, E0 8D, 37][91 4A, 05, 3D][25 34, 05, 3D]
-3312; [91 2C, 05, 37][91 68, 05, 37][91 6E, 05, 3D][25 34, 05, 3D]
-3313; [91 2C, 05, 37][, E0 8D, 37][91 70, 05, 3D][91 3E, 05, 3D][, E0 8D, 3D][25 34, 05, 3D]
-3314; [91 2C, 05, 37][91 74, 05, 37]
-3315; [91 2C, 05, 37][91 74, 05, 37][91 2E, 05, 3D][, E0 8D, 3D][91 6C, 05, 3D][91 60, 05, 3D]
-3316; [91 2C, 05, 37][91 74, 05, 37][91 62, 05, 3D][25 34, 05, 3D][91 46, 05, 3D][91 70, 05, 3D]
-3317; [91 2C, 05, 37][91 74, 05, 37][91 76, 05, 3D][91 42, 05, 3D][91 46, 05, 3D]
-
-304F; [91 2E, 05, 9B]
-31F0; [91 2E, 05, 1D]
-30AF; [91 2E, 05, A1]
-FF78; [91 2E, 05, A3]
-32D7; [91 2E, 05, 25]
-3050; [91 2E, 05, 9B][, E0 8D, 05]
-30B0; [91 2E, 05, A1][, E0 8D, 05]
-3318; [91 2E, 05, 37][, E0 8D, 37][91 6C, 05, 3D][91 60, 05, 3D]
-3319; [91 2E, 05, 37][, E0 8D, 37][91 6C, 05, 3D][91 60, 05, 3D][91 46, 05, 3D][91 7E, 05, 3D]
-331A; [91 2E, 05, 37][91 70, 05, 37][91 3A, 05, 3D][, E0 8D, 3D][91 22, 05, 3D][91 74, 05, 3D]
-331B; [91 2E, 05, 37][91 74, 05, 37][25 34, 05, 3D][91 4E, 05, 3D]
-
-3096; [91 30, 05, 19]
-3051; [91 30, 05, 9B]
-30F6; [91 30, 05, 1D]
-30B1; [91 30, 05, A1]
-FF79; [91 30, 05, A3]
-32D8; [91 30, 05, 25]
-3052; [91 30, 05, 9B][, E0 8D, 05]
-30B2; [91 30, 05, A1][, E0 8D, 05]
-331C; [91 30, 05, 37][25 34, 05, 37][91 38, 05, 3D]
-
-3053; [91 32, 05, 9B]
-30B3; [91 32, 05, A1]
-FF7A; [91 32, 05, A3]
-32D9; [91 32, 05, 25]
-3054; [91 32, 05, 9B][, E0 8D, 05]
-30B4; [91 32, 05, A1][, E0 8D, 05]
-331E; [91 32, 05, 37][25 34, 05, 37][91 5A, 05, 3D][, E0 9D, 3D]
-30FF; [91 32, 05, 2B][91 46, 05, 2B]
-331D; [91 32, 05, 37][91 70, 05, 37][91 48, 05, 3D]
-
-3055; [91 34, 05, 9B]
-30B5; [91 34, 05, A1]
-FF7B; [91 34, 05, A3]
-32DA; [91 34, 05, 25]
-3056; [91 34, 05, 9B][, E0 8D, 05]
-30B6; [91 34, 05, A1][, E0 8D, 05]
-331F; [91 34, 05, 37][91 22, 05, 37][91 2E, 05, 3D][91 70, 05, 3D]
-3320; [91 34, 05, 37][91 7E, 05, 37][91 40, 05, 3D][25 34, 05, 3D][91 60, 05, 3D]
-
-3057; [91 36, 05, 9B]
-31F1; [91 36, 05, 1D]
-30B7; [91 36, 05, A1]
-FF7C; [91 36, 05, A3]
-32DB; [91 36, 05, 25]
-3058; [91 36, 05, 9B][, E0 8D, 05]
-30B8; [91 36, 05, A1][, E0 8D, 05]
-3006; [91 36, 05, 09][91 62, 05, 09]
-3321; [91 36, 05, 37][91 6E, 05, 37][91 7E, 05, 3D][91 2E, 05, 3D][, E0 8D, 3D]
-
-3059; [91 38, 05, 9B]
-31F2; [91 38, 05, 1D]
-30B9; [91 38, 05, A1]
-FF7D; [91 38, 05, A3]
-32DC; [91 38, 05, 25]
-305A; [91 38, 05, 9B][, E0 8D, 05]
-30BA; [91 38, 05, A1][, E0 8D, 05]
-
-305B; [91 3A, 05, 9B]
-30BB; [91 3A, 05, A1]
-FF7E; [91 3A, 05, A3]
-32DD; [91 3A, 05, 25]
-305C; [91 3A, 05, 9B][, E0 8D, 05]
-30BC; [91 3A, 05, A1][, E0 8D, 05]
-3322; [91 3A, 05, 37][91 7E, 05, 37][91 40, 05, 3D]
-3323; [91 3A, 05, 37][91 7E, 05, 37][91 46, 05, 3D]
-
-305D; [91 3C, 05, 9B]
-30BD; [91 3C, 05, A1]
-FF7F; [91 3C, 05, A3]
-32DE; [91 3C, 05, 25]
-305E; [91 3C, 05, 9B][, E0 8D, 05]
-30BE; [91 3C, 05, A1][, E0 8D, 05]
-
-305F; [91 3E, 05, 9B]
-30BF; [91 3E, 05, A1]
-FF80; [91 3E, 05, A3]
-32DF; [91 3E, 05, 25]
-3060; [91 3E, 05, 9B][, E0 8D, 05]
-30C0; [91 3E, 05, A1][, E0 8D, 05]
-3324; [91 3E, 05, 37][, E0 8D, 37][25 34, 05, 3D][91 38, 05, 3D]
-
-3061; [91 40, 05, 9B]
-30C1; [91 40, 05, A1]
-FF81; [91 40, 05, A3]
-32E0; [91 40, 05, 25]
-3062; [91 40, 05, 9B][, E0 8D, 05]
-30C2; [91 40, 05, A1][, E0 8D, 05]
-
-3063; [91 42, 05, 19]
-3064; [91 42, 05, 9B]
-30C3; [91 42, 05, 1D]
-FF6F; [91 42, 05, 1F]
-30C4; [91 42, 05, A1]
-FF82; [91 42, 05, A3]
-32E1; [91 42, 05, 25]
-3065; [91 42, 05, 9B][, E0 8D, 05]
-30C5; [91 42, 05, A1][, E0 8D, 05]
-
-3066; [91 44, 05, 9B]
-30C6; [91 44, 05, A1]
-FF83; [91 44, 05, A3]
-32E2; [91 44, 05, 25]
-3067; [91 44, 05, 9B][, E0 8D, 05]
-30C7; [91 44, 05, A1][, E0 8D, 05]
-3325; [91 44, 05, 37][, E0 8D, 37][91 36, 05, 3D]
-
-3068; [91 46, 05, 9B]
-31F3; [91 46, 05, 1D]
-30C8; [91 46, 05, A1]
-FF84; [91 46, 05, A3]
-32E3; [91 46, 05, 25]
-3069; [91 46, 05, 9B][, E0 8D, 05]
-30C9; [91 46, 05, A1][, E0 8D, 05]
-3326; [91 46, 05, 37][, E0 8D, 37][91 70, 05, 3D]
-3327; [91 46, 05, 37][91 7E, 05, 37]
-
-306A; [91 48, 05, 9B]
-30CA; [91 48, 05, A1]
-FF85; [91 48, 05, A3]
-32E4; [91 48, 05, 25]
-3328; [91 48, 05, 37][91 50, 05, 37]
-
-306B; [91 4A, 05, 9B]
-30CB; [91 4A, 05, A1]
-FF86; [91 4A, 05, A3]
-32E5; [91 4A, 05, 25]
-
-306C; [91 4C, 05, 9B]
-31F4; [91 4C, 05, 1D]
-30CC; [91 4C, 05, A1]
-FF87; [91 4C, 05, A3]
-32E6; [91 4C, 05, 25]
-
-306D; [91 4E, 05, 9B]
-30CD; [91 4E, 05, A1]
-FF88; [91 4E, 05, A3]
-32E7; [91 4E, 05, 25]
-
-306E; [91 50, 05, 9B]
-30CE; [91 50, 05, A1]
-FF89; [91 50, 05, A3]
-32E8; [91 50, 05, 25]
-3329; [91 50, 05, 37][91 42, 05, 37][91 46, 05, 3D]
-
-306F; [91 52, 05, 9B]
-31F5; [91 52, 05, 1D]
-30CF; [91 52, 05, A1]
-FF8A; [91 52, 05, A3]
-32E9; [91 52, 05, 25]
-3070; [91 52, 05, 9B][, E0 8D, 05]
-30D0; [91 52, 05, A1][, E0 8D, 05]
-3071; [91 52, 05, 9B][, E0 9D, 05]
-30D1; [91 52, 05, A1][, E0 9D, 05]
-332B; [91 52, 05, 37][, E0 9D, 37][25 34, 05, 3D][91 3A, 05, 3D][91 7E, 05, 3D][91 46, 05, 3D]
-332C; [91 52, 05, 37][, E0 9D, 37][25 34, 05, 3D][91 42, 05, 3D]
-332D; [91 52, 05, 37][, E0 8D, 37][25 34, 05, 3D][91 72, 05, 3D][91 70, 05, 3D]
-332A; [91 52, 05, 37][91 22, 05, 37][91 42, 05, 3D]
-
-3072; [91 54, 05, 9B]
-31F6; [91 54, 05, 1D]
-30D2; [91 54, 05, A1]
-FF8B; [91 54, 05, A3]
-32EA; [91 54, 05, 25]
-3073; [91 54, 05, 9B][, E0 8D, 05]
-30D3; [91 54, 05, A1][, E0 8D, 05]
-3074; [91 54, 05, 9B][, E0 9D, 05]
-30D4; [91 54, 05, A1][, E0 9D, 05]
-332E; [91 54, 05, 37][, E0 9D, 37][91 20, 05, 3D][91 38, 05, 3D][91 46, 05, 3D][91 70, 05, 3D]
-332F; [91 54, 05, 37][, E0 9D, 37][91 2E, 05, 3D][91 70, 05, 3D]
-3330; [91 54, 05, 37][, E0 9D, 37][91 32, 05, 3D]
-3331; [91 54, 05, 37][, E0 8D, 37][91 70, 05, 3D]
-
-3075; [91 56, 05, 9B]
-31F7; [91 56, 05, 1D]
-30D5; [91 56, 05, A1]
-FF8C; [91 56, 05, A3]
-32EB; [91 56, 05, 25]
-3076; [91 56, 05, 9B][, E0 8D, 05]
-30D6; [91 56, 05, A1][, E0 8D, 05]
-3077; [91 56, 05, 9B][, E0 9D, 05]
-30D7; [91 56, 05, A1][, E0 9D, 05]
-3332; [91 56, 05, 37][91 20, 05, 37][91 6C, 05, 3D][91 42, 05, 3D][91 46, 05, 3D][, E0 8D, 3D]
-3333; [91 56, 05, 37][91 22, 05, 37][25 34, 05, 3D][91 46, 05, 3D]
-3334; [91 56, 05, 37][, E0 8D, 37][91 42, 05, 3D][91 36, 05, 3D][91 26, 05, 3D][91 70, 05, 3D]
-3335; [91 56, 05, 37][91 6C, 05, 37][91 7E, 05, 3D]
-
-3078; [91 58, 05, 9B]
-31F8; [91 58, 05, 1D]
-30D8; [91 58, 05, A1]
-FF8D; [91 58, 05, A3]
-32EC; [91 58, 05, 25]
-3079; [91 58, 05, 9B][, E0 8D, 05]
-30D9; [91 58, 05, A1][, E0 8D, 05]
-307A; [91 58, 05, 9B][, E0 9D, 05]
-30DA; [91 58, 05, A1][, E0 9D, 05]
-333B; [91 58, 05, 37][, E0 9D, 37][25 34, 05, 3D][91 36, 05, 3D][, E0 8D, 3D]
-333C; [91 58, 05, 37][, E0 8D, 37][25 34, 05, 3D][91 3E, 05, 3D]
-3336; [91 58, 05, 37][91 2E, 05, 37][91 3E, 05, 3D][25 34, 05, 3D][91 70, 05, 3D]
-3337; [91 58, 05, 37][, E0 9D, 37][91 3C, 05, 3D]
-3338; [91 58, 05, 37][, E0 9D, 37][91 4A, 05, 3D][91 54, 05, 3D]
-3339; [91 58, 05, 37][91 70, 05, 37][91 42, 05, 3D]
-333A; [91 58, 05, 37][, E0 9D, 37][91 7E, 05, 3D][91 38, 05, 3D]
-
-307B; [91 5A, 05, 9B]
-31F9; [91 5A, 05, 1D]
-30DB; [91 5A, 05, A1]
-FF8E; [91 5A, 05, A3]
-32ED; [91 5A, 05, 25]
-307C; [91 5A, 05, 9B][, E0 8D, 05]
-30DC; [91 5A, 05, A1][, E0 8D, 05]
-307D; [91 5A, 05, 9B][, E0 9D, 05]
-30DD; [91 5A, 05, A1][, E0 9D, 05]
-3341; [91 5A, 05, 37][25 34, 05, 37][91 70, 05, 3D]
-3342; [91 5A, 05, 37][25 34, 05, 37][91 7E, 05, 3D]
-333D; [91 5A, 05, 37][, E0 9D, 37][91 22, 05, 3D][91 7E, 05, 3D][91 46, 05, 3D]
-333E; [91 5A, 05, 37][, E0 8D, 37][91 70, 05, 3D][91 46, 05, 3D]
-333F; [91 5A, 05, 37][91 7E, 05, 37]
-3340; [91 5A, 05, 37][, E0 9D, 37][91 7E, 05, 3D][91 46, 05, 3D][, E0 8D, 3D]
-
-307E; [91 5C, 05, 9B]
-30DE; [91 5C, 05, A1]
-FF8F; [91 5C, 05, A3]
-32EE; [91 5C, 05, 25]
-3343; [91 5C, 05, 37][91 22, 05, 37][91 2E, 05, 3D][91 74, 05, 3D]
-3344; [91 5C, 05, 37][91 22, 05, 37][91 70, 05, 3D]
-303C; [91 5C, 05, 09][91 38, 05, 09]
-3345; [91 5C, 05, 37][91 42, 05, 37][91 52, 05, 3D]
-3346; [91 5C, 05, 37][91 70, 05, 37][91 2E, 05, 3D]
-3347; [91 5C, 05, 37][91 7E, 05, 37][91 36, 05, 3D][91 6A, 05, 3D][91 7E, 05, 3D]
-
-307F; [91 5E, 05, 9B]
-30DF; [91 5E, 05, A1]
-FF90; [91 5E, 05, A3]
-32EF; [91 5E, 05, 25]
-3348; [91 5E, 05, 37][91 2E, 05, 37][91 74, 05, 3D][91 7E, 05, 3D]
-3349; [91 5E, 05, 37][91 6E, 05, 37]
-334A; [91 5E, 05, 37][91 6E, 05, 37][91 52, 05, 3D][, E0 8D, 3D][25 34, 05, 3D][91 70, 05, 3D]
-
-3080; [91 60, 05, 9B]
-31FA; [91 60, 05, 1D]
-30E0; [91 60, 05, A1]
-FF91; [91 60, 05, A3]
-32F0; [91 60, 05, 25]
-
-3081; [91 62, 05, 9B]
-30E1; [91 62, 05, A1]
-FF92; [91 62, 05, A3]
-32F1; [91 62, 05, 25]
-334D; [91 62, 05, 37][25 34, 05, 37][91 46, 05, 3D][91 70, 05, 3D]
-334B; [91 62, 05, 37][91 2A, 05, 37][, E0 8D, 3D]
-334C; [91 62, 05, 37][91 2A, 05, 37][, E0 8D, 3D][91 46, 05, 3D][91 7E, 05, 3D]
-
-3082; [91 64, 05, 9B]
-30E2; [91 64, 05, A1]
-FF93; [91 64, 05, A3]
-32F2; [91 64, 05, 25]
-
-3083; [91 66, 05, 19]
-3084; [91 66, 05, 9B]
-30E3; [91 66, 05, 1D]
-FF6C; [91 66, 05, 1F]
-30E4; [91 66, 05, A1]
-FF94; [91 66, 05, A3]
-32F3; [91 66, 05, 25]
-334E; [91 66, 05, 37][25 34, 05, 37][91 46, 05, 3D][, E0 8D, 3D]
-334F; [91 66, 05, 37][25 34, 05, 37][91 70, 05, 3D]
-
-3085; [91 68, 05, 19]
-3086; [91 68, 05, 9B]
-30E5; [91 68, 05, 1D]
-FF6D; [91 68, 05, 1F]
-30E6; [91 68, 05, A1]
-FF95; [91 68, 05, A3]
-32F4; [91 68, 05, 25]
-3350; [91 68, 05, 37][91 20, 05, 37][91 7E, 05, 3D]
-
-3087; [91 6A, 05, 19]
-3088; [91 6A, 05, 9B]
-30E7; [91 6A, 05, 1D]
-FF6E; [91 6A, 05, 1F]
-30E8; [91 6A, 05, A1]
-FF96; [91 6A, 05, A3]
-32F5; [91 6A, 05, 25]
-309F; [91 6A, 05, 2B][91 6E, 05, 2B]
-
-3089; [91 6C, 05, 9B]
-31FB; [91 6C, 05, 1D]
-30E9; [91 6C, 05, A1]
-FF97; [91 6C, 05, A3]
-32F6; [91 6C, 05, 25]
-
-308A; [91 6E, 05, 9B]
-31FC; [91 6E, 05, 1D]
-30EA; [91 6E, 05, A1]
-FF98; [91 6E, 05, A3]
-32F7; [91 6E, 05, 25]
-3351; [91 6E, 05, 37][91 42, 05, 37][91 46, 05, 3D][91 70, 05, 3D]
-3352; [91 6E, 05, 37][91 6C, 05, 37]
-
-308B; [91 70, 05, 9B]
-31FD; [91 70, 05, 1D]
-30EB; [91 70, 05, A1]
-FF99; [91 70, 05, A3]
-32F8; [91 70, 05, 25]
-3354; [91 70, 05, 37][25 34, 05, 37][91 56, 05, 3D][, E0 8D, 3D][91 70, 05, 3D]
-3353; [91 70, 05, 37][91 54, 05, 37][, E0 9D, 3D][25 34, 05, 3D]
-
-308C; [91 72, 05, 9B]
-31FE; [91 72, 05, 1D]
-30EC; [91 72, 05, A1]
-FF9A; [91 72, 05, A3]
-32F9; [91 72, 05, 25]
-3355; [91 72, 05, 37][91 60, 05, 37]
-3356; [91 72, 05, 37][91 7E, 05, 37][91 46, 05, 3D][91 30, 05, 3D][, E0 8D, 3D][91 7E, 05, 3D]
-
-308D; [91 74, 05, 9B]
-31FF; [91 74, 05, 1D]
-30ED; [91 74, 05, A1]
-FF9B; [91 74, 05, A3]
-32FA; [91 74, 05, 25]
-
-308E; [91 76, 05, 19]
-308F; [91 76, 05, 9B]
-30EE; [91 76, 05, 1D]
-30EF; [91 76, 05, A1]
-FF9C; [91 76, 05, A3]
-32FB; [91 76, 05, 25]
-30F7; [91 76, 05, A1][, E0 8D, 05]
-3357; [91 76, 05, 37][91 42, 05, 37][91 46, 05, 3D]
+1690; [92 3E, 05, 05]
-3090; [91 78, 05, 9B]
-30F0; [91 78, 05, A1]
-32FC; [91 78, 05, 25]
-30F8; [91 78, 05, A1][, E0 8D, 05]
+1691; [92 40, 05, 05]
-3091; [91 7A, 05, 9B]
-30F1; [91 7A, 05, A1]
-32FD; [91 7A, 05, 25]
-30F9; [91 7A, 05, A1][, E0 8D, 05]
+1692; [92 42, 05, 05]
-3092; [91 7C, 05, 9B]
-30F2; [91 7C, 05, A1]
-FF66; [91 7C, 05, A3]
-32FE; [91 7C, 05, 25]
-30FA; [91 7C, 05, A1][, E0 8D, 05]
+1693; [92 44, 05, 05]
-3093; [91 7E, 05, 9B]
-30F3; [91 7E, 05, A1]
-FF9D; [91 7E, 05, A3]
+1694; [92 46, 05, 05]
-3105; [92 20, 05, 05]
-31A0; [92 20, 05, 09][, E2 85, 09]
+1695; [92 48, 05, 05]
-3106; [92 22, 05, 05]
-31B4; [92 22, 05, 31]
+1696; [92 4A, 05, 05]
-3107; [92 24, 05, 05]
+1697; [92 4C, 05, 05]
-3108; [92 26, 05, 05]
+1698; [92 4E, 05, 05]
-312A; [92 28, 05, 05]
+1699; [92 50, 05, 05]
-3109; [92 2A, 05, 05]
+169A; [92 52, 05, 05]
-310A; [92 2C, 05, 05]
-31B5; [92 2C, 05, 31]
+16A0; [93 20, 05, 05]
+16A1; [93 20, 05, 09][, E4 4D, 09]
-310B; [92 2E, 05, 05]
+16A2; [93 22, 05, 05]
+16A4; [93 22, 05, 09][, E4 4D, 09]
+16A5; [93 22, 05, 09][, E4 5D, 09]
-310C; [92 30, 05, 05]
+16A6; [93 24, 05, 05]
+16A7; [93 24, 05, 09][, E4 4D, 09]
+16F0; [93 24, 05, 09][93 24, 05, 09]
-310D; [92 32, 05, 05]
-31A3; [92 32, 05, 09][, E2 85, 09]
+16A8; [93 26, 05, 05]
+16A9; [93 26, 05, 09][, E4 4D, 09]
+16AC; [93 26, 05, 09][, E4 5D, 09]
+16AD; [93 26, 05, 09][, E4 6D, 09]
+16AE; [93 26, 05, 09][, E4 7D, 09]
-310E; [92 34, 05, 05]
-31B6; [92 34, 05, 31]
+16AF; [93 28, 05, 05]
-312B; [92 36, 05, 05]
+16B0; [93 2A, 05, 05]
-31AD; [92 38, 05, 05]
+16B1; [93 2C, 05, 05]
-310F; [92 3A, 05, 05]
-31B7; [92 3A, 05, 31]
+16B2; [93 2E, 05, 05]
+16B3; [93 2E, 05, 09][, E4 4D, 09]
+16B4; [93 2E, 05, 09][, E4 5D, 09]
+16B5; [93 2E, 05, 09][, E4 6D, 09]
+16B6; [93 2E, 05, 09][, E4 7D, 09]
-3110; [92 3C, 05, 05]
-31A2; [92 3C, 05, 09][, E2 85, 09]
+16B7; [93 30, 05, 05]
-3111; [92 3E, 05, 05]
+16B9; [93 32, 05, 05]
+16E9; [93 32, 05, 09][, E4 4D, 09]
-3112; [92 40, 05, 05]
+16BA; [93 34, 05, 05]
+16BB; [93 34, 05, 09][, E4 4D, 09]
+16BC; [93 34, 05, 09][, E4 5D, 09]
+16BD; [93 34, 05, 09][, E4 6D, 09]
-312C; [92 42, 05, 05]
+16BE; [93 36, 05, 05]
+16BF; [93 36, 05, 09][, E4 4D, 09]
+16C0; [93 36, 05, 09][, E4 5D, 09]
-3113; [92 44, 05, 05]
+16C1; [93 38, 05, 05]
+16C2; [93 38, 05, 09][, E4 4D, 09]
-3114; [92 46, 05, 05]
+16C3; [93 3A, 05, 05]
+16C4; [93 3A, 05, 09][, E4 4D, 09]
-3115; [92 48, 05, 05]
+16C5; [93 3C, 05, 05]
+16C6; [93 3C, 05, 09][, E4 4D, 09]
+16EE; [93 3C, 05, 09][93 4E, 05, 09]
-3116; [92 4A, 05, 05]
+16C7; [93 3E, 05, 05]
-3117; [92 4C, 05, 05]
-31A1; [92 4C, 05, 09][, E2 85, 09]
+16C8; [93 40, 05, 05]
+16D5; [93 40, 05, 09][, E4 4D, 09]
-3118; [92 4E, 05, 05]
+16C9; [93 42, 05, 05]
-3119; [92 50, 05, 05]
+16CA; [93 44, 05, 05]
+16CB; [93 44, 05, 09][, E4 4D, 09]
+16EA; [93 44, 05, 09][, E4 5D, 09]
+16CC; [93 44, 05, 09][, E4 6D, 09]
+16CD; [93 44, 05, 09][, E4 7D, 09]
+16CE; [93 44, 05, 09][, E4 8D, 09]
-311A; [92 52, 05, 05]
-31A9; [92 52, 05, 09][, E2 85, 09]
+16CF; [93 46, 05, 05]
+16D0; [93 46, 05, 09][, E4 4D, 09]
+16D1; [93 46, 05, 09][, E4 5D, 09]
-311B; [92 54, 05, 05]
-31A7; [92 54, 05, 09][, E2 85, 09]
+16D2; [93 48, 05, 05]
+16D3; [93 48, 05, 09][, E4 4D, 09]
+16D4; [93 48, 05, 09][, E4 5D, 09]
-31A6; [92 56, 05, 05]
+16D6; [93 4A, 05, 05]
-311C; [92 58, 05, 05]
+16D7; [93 4C, 05, 05]
+16D8; [93 4C, 05, 09][, E4 4D, 09]
+16D9; [93 4C, 05, 09][, E4 5D, 09]
+16EF; [93 4C, 05, 09][, E4 4D, 09][93 4C, 05, 3D][, E4 4D, 3D]
-311D; [92 5A, 05, 05]
+16DA; [93 4E, 05, 05]
+16DB; [93 4E, 05, 09][, E4 4D, 09]
-31A4; [92 5C, 05, 05]
-31A5; [92 5C, 05, 09][, E2 85, 09]
+16DC; [93 50, 05, 05]
+16DD; [93 50, 05, 09][, E4 4D, 09]
-311E; [92 5E, 05, 05]
-31AE; [92 5E, 05, 09][, E2 85, 09]
+16DE; [93 52, 05, 05]
-311F; [92 60, 05, 05]
+16DF; [93 54, 05, 05]
-3120; [92 62, 05, 05]
-31AF; [92 62, 05, 09][, E2 85, 09]
+16AA; [93 56, 05, 05]
-3121; [92 64, 05, 05]
+16AB; [93 58, 05, 05]
-3122; [92 66, 05, 05]
+16A3; [93 5A, 05, 05]
-3123; [92 68, 05, 05]
+16E0; [93 5C, 05, 05]
-3124; [92 6A, 05, 05]
+16E3; [93 5E, 05, 05]
-31B2; [92 6C, 05, 05]
+16B8; [93 60, 05, 05]
-3125; [92 6E, 05, 05]
+16E4; [93 62, 05, 05]
-31B0; [92 70, 05, 05]
+16E1; [93 64, 05, 05]
-31B1; [92 72, 05, 05]
+16E2; [93 66, 05, 05]
-31AC; [92 74, 05, 05]
+16E5; [93 68, 05, 05]
-3126; [92 76, 05, 05]
+16E6; [93 6A, 05, 05]
+16E7; [93 6A, 05, 09][, E4 4D, 09]
+16E8; [93 6A, 05, 09][, E4 5D, 09]
-3127; [92 78, 05, 05]
-31AA; [92 78, 05, 09][, E2 85, 09]
-31B3; [92 78, 05, 2B][, E2 85, 2B]
+1100; [94 20, 05, 05]
+3131; [94 20, 05, 09]
+3260; [94 20, 05, 0D]
+FFA1; [94 20, 05, A3]
+326E; [94 20, 05, 0D][94 48, 05, 0D]
-3128; [92 7A, 05, 05]
-31AB; [92 7A, 05, 09][, E2 85, 09]
-31A8; [92 7A, 05, 09][, E2 95, 09]
+1101; [94 22, 05, 05]
+3132; [94 22, 05, 09]
+FFA2; [94 22, 05, A3]
-3129; [92 7C, 05, 05]
+1102; [94 24, 05, 05]
+3134; [94 24, 05, 09]
+3261; [94 24, 05, 0D]
+FFA4; [94 24, 05, A3]
+326F; [94 24, 05, 0D][94 48, 05, 0D]
-A000; [93 20, 05, 05]
+1103; [94 26, 05, 05]
+3137; [94 26, 05, 09]
+3262; [94 26, 05, 0D]
+FFA7; [94 26, 05, A3]
+3270; [94 26, 05, 0D][94 48, 05, 0D]
-A001; [93 22, 05, 05]
+1104; [94 28, 05, 05]
+3138; [94 28, 05, 09]
+FFA8; [94 28, 05, A3]
-A002; [93 24, 05, 05]
+1105; [94 2A, 05, 05]
+3139; [94 2A, 05, 09]
+3263; [94 2A, 05, 0D]
+FFA9; [94 2A, 05, A3]
+3271; [94 2A, 05, 0D][94 48, 05, 0D]
-A003; [93 26, 05, 05]
+1106; [94 2C, 05, 05]
+3141; [94 2C, 05, 09]
+3264; [94 2C, 05, 0D]
+FFB1; [94 2C, 05, A3]
+3272; [94 2C, 05, 0D][94 48, 05, 0D]
-A004; [93 28, 05, 05]
+1107; [94 2E, 05, 05]
+3142; [94 2E, 05, 09]
+3265; [94 2E, 05, 0D]
+FFB2; [94 2E, 05, A3]
+3273; [94 2E, 05, 0D][94 48, 05, 0D]
-A005; [93 2A, 05, 05]
+1108; [94 30, 05, 05]
+3143; [94 30, 05, 09]
+FFB3; [94 30, 05, A3]
-A006; [93 2C, 05, 05]
+1109; [94 32, 05, 05]
+3145; [94 32, 05, 09]
+3266; [94 32, 05, 0D]
+FFB5; [94 32, 05, A3]
+3274; [94 32, 05, 0D][94 48, 05, 0D]
-A007; [93 2E, 05, 05]
+110A; [94 34, 05, 05]
+3146; [94 34, 05, 09]
+FFB6; [94 34, 05, A3]
-A008; [93 30, 05, 05]
+110B; [94 36, 05, 05]
+3147; [94 36, 05, 09]
+3267; [94 36, 05, 0D]
+FFB7; [94 36, 05, A3]
+3275; [94 36, 05, 0D][94 48, 05, 0D]
+327E; [94 36, 05, 0D][94 62, 05, 0D]
-A009; [93 32, 05, 05]
+110C; [94 38, 05, 05]
+3148; [94 38, 05, 09]
+3268; [94 38, 05, 0D]
+FFB8; [94 38, 05, A3]
+3276; [94 38, 05, 0D][94 48, 05, 0D]
+327D; [94 38, 05, 0D][94 62, 05, 0D][94 36, 05, 3D][94 6E, 05, 3D]
-A00A; [93 34, 05, 05]
+110D; [94 3A, 05, 05]
+3149; [94 3A, 05, 09]
+FFB9; [94 3A, 05, A3]
-A00B; [93 36, 05, 05]
+110E; [94 3C, 05, 05]
+314A; [94 3C, 05, 09]
+3269; [94 3C, 05, 0D]
+FFBA; [94 3C, 05, A3]
+3277; [94 3C, 05, 0D][94 48, 05, 0D]
+327C; [94 3C, 05, 0D][94 48, 05, 0D][94 92, 05, 3D][94 20, 05, 3D][94 58, 05, 3D]
-A00C; [93 38, 05, 05]
+110F; [94 3E, 05, 05]
+314B; [94 3E, 05, 09]
+326A; [94 3E, 05, 0D]
+FFBB; [94 3E, 05, A3]
+3278; [94 3E, 05, 0D][94 48, 05, 0D]
-A00D; [93 3A, 05, 05]
+1110; [94 40, 05, 05]
+314C; [94 40, 05, 09]
+326B; [94 40, 05, 0D]
+FFBC; [94 40, 05, A3]
+3279; [94 40, 05, 0D][94 48, 05, 0D]
-A00E; [93 3C, 05, 05]
+1111; [94 42, 05, 05]
+314D; [94 42, 05, 09]
+326C; [94 42, 05, 0D]
+FFBD; [94 42, 05, A3]
+327A; [94 42, 05, 0D][94 48, 05, 0D]
-A00F; [93 3E, 05, 05]
+1112; [94 44, 05, 05]
+314E; [94 44, 05, 09]
+326D; [94 44, 05, 0D]
+FFBE; [94 44, 05, A3]
+327B; [94 44, 05, 0D][94 48, 05, 0D]
-A010; [93 40, 05, 05]
+1113; [94 46 10, 05, 05]
-A011; [93 42, 05, 05]
+1114; [94 46 13, 05, 05]
+3165; [94 46 13, 05, 09]
-A012; [93 44, 05, 05]
+1115; [94 46 16, 05, 05]
+3166; [94 46 16, 05, 09]
-A013; [93 46, 05, 05]
+1116; [94 46 19, 05, 05]
-A014; [93 48, 05, 05]
+1117; [94 46 1C, 05, 05]
-A015; [93 4A, 05, 05]
+1118; [94 46 1F, 05, 05]
-A016; [93 4C, 05, 05]
+1119; [94 46 22, 05, 05]
-A017; [93 4E, 05, 05]
+111A; [94 46 25, 05, 05]
+3140; [94 46 25, 05, 09]
+FFB0; [94 46 25, 05, A3]
-A018; [93 50, 05, 05]
+111B; [94 46 28, 05, 05]
-A019; [93 52, 05, 05]
+111C; [94 46 2B, 05, 05]
+316E; [94 46 2B, 05, 09]
-A01A; [93 54, 05, 05]
+111D; [94 46 2E, 05, 05]
+3171; [94 46 2E, 05, 09]
-A01B; [93 56, 05, 05]
+111E; [94 46 31, 05, 05]
+3172; [94 46 31, 05, 09]
-A01C; [93 58, 05, 05]
+111F; [94 46 34, 05, 05]
-A01D; [93 5A, 05, 05]
+1120; [94 46 37, 05, 05]
+3173; [94 46 37, 05, 09]
-A01E; [93 5C, 05, 05]
+1121; [94 46 3A, 05, 05]
+3144; [94 46 3A, 05, 09]
+FFB4; [94 46 3A, 05, A3]
-A01F; [93 5E, 05, 05]
+1122; [94 46 3D, 05, 05]
+3174; [94 46 3D, 05, 09]
-A020; [93 60, 05, 05]
+1123; [94 46 40, 05, 05]
+3175; [94 46 40, 05, 09]
-A021; [93 62, 05, 05]
+1124; [94 46 43, 05, 05]
-A022; [93 64, 05, 05]
+1125; [94 46 46, 05, 05]
-A023; [93 66, 05, 05]
+1126; [94 46 49, 05, 05]
-A024; [93 68, 05, 05]
+1127; [94 46 4C, 05, 05]
+3176; [94 46 4C, 05, 09]
-A025; [93 6A, 05, 05]
+1128; [94 46 4F, 05, 05]
-A026; [93 6C, 05, 05]
+1129; [94 46 52, 05, 05]
+3177; [94 46 52, 05, 09]
-A027; [93 6E, 05, 05]
+112A; [94 46 55, 05, 05]
-A028; [93 70, 05, 05]
+112B; [94 46 58, 05, 05]
+3178; [94 46 58, 05, 09]
-A029; [93 72, 05, 05]
+112C; [94 46 5B, 05, 05]
+3179; [94 46 5B, 05, 09]
-A02A; [93 74, 05, 05]
+112D; [94 46 5E, 05, 05]
+317A; [94 46 5E, 05, 09]
-A02B; [93 76, 05, 05]
+112E; [94 46 61, 05, 05]
+317B; [94 46 61, 05, 09]
-A02C; [93 78, 05, 05]
+112F; [94 46 64, 05, 05]
+317C; [94 46 64, 05, 09]
-A02D; [93 7A, 05, 05]
+1130; [94 46 67, 05, 05]
-A02E; [93 7C, 05, 05]
+1131; [94 46 6A, 05, 05]
-A02F; [93 7E, 05, 05]
+1132; [94 46 6D, 05, 05]
+317D; [94 46 6D, 05, 09]
-A030; [93 80, 05, 05]
+1133; [94 46 70, 05, 05]
-A031; [93 82, 05, 05]
+1134; [94 46 73, 05, 05]
-A032; [93 84, 05, 05]
+1135; [94 46 76, 05, 05]
-A033; [93 86, 05, 05]
+1136; [94 46 79, 05, 05]
+317E; [94 46 79, 05, 09]
-A034; [93 88, 05, 05]
+1137; [94 46 7C, 05, 05]
-A035; [93 8A, 05, 05]
+1138; [94 46 7F, 05, 05]
-A036; [93 8C, 05, 05]
+1139; [94 46 82, 05, 05]
-A037; [93 8E, 05, 05]
+113A; [94 46 85, 05, 05]
-A038; [93 90, 05, 05]
+113B; [94 46 88, 05, 05]
-A039; [93 92, 05, 05]
+113C; [94 46 8B, 05, 05]
-A03A; [93 94, 05, 05]
+113D; [94 46 8E, 05, 05]
-A03B; [93 96, 05, 05]
+113E; [94 46 91, 05, 05]
-A03C; [93 98, 05, 05]
+113F; [94 46 94, 05, 05]
-A03D; [93 9A, 05, 05]
+1140; [94 46 97, 05, 05]
+317F; [94 46 97, 05, 09]
-A03E; [93 9C, 05, 05]
+1141; [94 46 9A, 05, 05]
-A03F; [93 9E, 05, 05]
+1142; [94 46 9D, 05, 05]
-A040; [93 A0, 05, 05]
+1143; [94 46 A0, 05, 05]
-A041; [93 A2, 05, 05]
+1144; [94 46 A3, 05, 05]
-A042; [93 A4, 05, 05]
+1145; [94 46 A6, 05, 05]
-A043; [93 A6, 05, 05]
+1146; [94 46 A9, 05, 05]
-A044; [93 A8, 05, 05]
+1147; [94 46 AC, 05, 05]
+3180; [94 46 AC, 05, 09]
-A045; [93 AA, 05, 05]
+1148; [94 46 AF, 05, 05]
-A046; [93 AC, 05, 05]
+1149; [94 46 B2, 05, 05]
-A047; [93 AE, 05, 05]
+114A; [94 46 B5, 05, 05]
-A048; [93 B0, 05, 05]
+114B; [94 46 B8, 05, 05]
-A049; [93 B2, 05, 05]
+114C; [94 46 BB, 05, 05]
+3181; [94 46 BB, 05, 09]
-A04A; [93 B4, 05, 05]
+114D; [94 46 BE, 05, 05]
-A04B; [93 B6, 05, 05]
+114E; [94 46 C1, 05, 05]
-A04C; [93 B8, 05, 05]
+114F; [94 46 C4, 05, 05]
-A04D; [93 BA, 05, 05]
+1150; [94 46 C7, 05, 05]
-A04E; [93 BC, 05, 05]
+1151; [94 46 CA, 05, 05]
-A04F; [93 BE, 05, 05]
+1152; [94 46 CD, 05, 05]
-A050; [93 C0, 05, 05]
+1153; [94 46 D0, 05, 05]
-A051; [93 C2, 05, 05]
+1154; [94 46 D3, 05, 05]
-A052; [93 C4, 05, 05]
+1155; [94 46 D6, 05, 05]
-A053; [93 C6, 05, 05]
+1156; [94 46 D9, 05, 05]
-A054; [93 C8, 05, 05]
+1157; [94 46 DC, 05, 05]
+3184; [94 46 DC, 05, 09]
-A055; [93 CA, 05, 05]
+1158; [94 46 DF, 05, 05]
+3185; [94 46 DF, 05, 09]
-A056; [93 CC, 05, 05]
+1159; [94 46 E2, 05, 05]
+3186; [94 46 E2, 05, 09]
-A057; [93 CE, 05, 05]
+115F; [94 46 E5, 05, 05]
-A058; [93 D0, 05, 05]
+1160; [94 46 E8, 05, 05]
+3164; [94 46 E8, 05, 09]
+FFA0; [94 46 E8, 05, A3]
-A059; [93 D2, 05, 05]
+1161; [94 48, 05, 05]
+314F; [94 48, 05, 09]
+FFC2; [94 48, 05, A3]
-A05A; [93 D4, 05, 05]
+1162; [94 4A, 05, 05]
+3150; [94 4A, 05, 09]
+FFC3; [94 4A, 05, A3]
-A05B; [93 D6, 05, 05]
+1163; [94 4C, 05, 05]
+3151; [94 4C, 05, 09]
+FFC4; [94 4C, 05, A3]
-A05C; [93 D8, 05, 05]
+1164; [94 4E, 05, 05]
+3152; [94 4E, 05, 09]
+FFC5; [94 4E, 05, A3]
-A05D; [93 DA, 05, 05]
+1165; [94 50, 05, 05]
+3153; [94 50, 05, 09]
+FFC6; [94 50, 05, A3]
-A05E; [93 DC, 05, 05]
+1166; [94 52, 05, 05]
+3154; [94 52, 05, 09]
+FFC7; [94 52, 05, A3]
-A05F; [93 DE, 05, 05]
+1167; [94 54, 05, 05]
+3155; [94 54, 05, 09]
+FFCA; [94 54, 05, A3]
-A060; [93 E0, 05, 05]
+1168; [94 56, 05, 05]
+3156; [94 56, 05, 09]
+FFCB; [94 56, 05, A3]
-A061; [93 E2, 05, 05]
+1169; [94 58, 05, 05]
+3157; [94 58, 05, 09]
+FFCC; [94 58, 05, A3]
-A062; [93 E4, 05, 05]
+116A; [94 5A, 05, 05]
+3158; [94 5A, 05, 09]
+FFCD; [94 5A, 05, A3]
-A063; [93 E6, 05, 05]
+116B; [94 5C, 05, 05]
+3159; [94 5C, 05, 09]
+FFCE; [94 5C, 05, A3]
-A064; [93 E8, 05, 05]
+116C; [94 5E, 05, 05]
+315A; [94 5E, 05, 09]
+FFCF; [94 5E, 05, A3]
-A065; [93 EA, 05, 05]
+116D; [94 60, 05, 05]
+315B; [94 60, 05, 09]
+FFD2; [94 60, 05, A3]
-A066; [93 EC, 05, 05]
+116E; [94 62, 05, 05]
+315C; [94 62, 05, 09]
+FFD3; [94 62, 05, A3]
-A067; [93 EE, 05, 05]
+116F; [94 64, 05, 05]
+315D; [94 64, 05, 09]
+FFD4; [94 64, 05, A3]
-A068; [93 F0, 05, 05]
+1170; [94 66, 05, 05]
+315E; [94 66, 05, 09]
+FFD5; [94 66, 05, A3]
-A069; [93 F2, 05, 05]
+1171; [94 68, 05, 05]
+315F; [94 68, 05, 09]
+FFD6; [94 68, 05, A3]
-A06A; [93 F4, 05, 05]
+1172; [94 6A, 05, 05]
+3160; [94 6A, 05, 09]
+FFD7; [94 6A, 05, A3]
-A06B; [93 F6, 05, 05]
+1173; [94 6C, 05, 05]
+3161; [94 6C, 05, 09]
+FFDA; [94 6C, 05, A3]
-A06C; [93 F8, 05, 05]
+1174; [94 6E, 05, 05]
+3162; [94 6E, 05, 09]
+FFDB; [94 6E, 05, A3]
-A06D; [93 FA, 05, 05]
+1175; [94 70, 05, 05]
+3163; [94 70, 05, 09]
+FFDC; [94 70, 05, A3]
-A06E; [93 FC, 05, 05]
+1176; [94 72 10, 05, 05]
-A06F; [93 FE, 05, 05]
+1177; [94 72 13, 05, 05]
-A070; [94 05, 05, 05]
+1178; [94 72 16, 05, 05]
-A071; [94 07, 05, 05]
+1179; [94 72 19, 05, 05]
-A072; [94 09, 05, 05]
+117A; [94 72 1C, 05, 05]
-A073; [94 0B, 05, 05]
+117B; [94 72 1F, 05, 05]
-A074; [94 0D, 05, 05]
+117C; [94 72 22, 05, 05]
-A075; [94 0F, 05, 05]
+117D; [94 72 25, 05, 05]
-A076; [94 11, 05, 05]
+117E; [94 72 28, 05, 05]
-A077; [94 13, 05, 05]
+117F; [94 72 2B, 05, 05]
-A078; [94 15, 05, 05]
+1180; [94 72 2E, 05, 05]
-A079; [94 17, 05, 05]
+1181; [94 72 31, 05, 05]
-A07A; [94 19, 05, 05]
+1182; [94 72 34, 05, 05]
-A07B; [94 1B, 05, 05]
+1183; [94 72 37, 05, 05]
-A07C; [94 1D, 05, 05]
+1184; [94 72 3A, 05, 05]
+3187; [94 72 3A, 05, 09]
-A07D; [94 1F, 05, 05]
+1185; [94 72 3D, 05, 05]
+3188; [94 72 3D, 05, 09]
-A07E; [94 21, 05, 05]
+1186; [94 72 40, 05, 05]
-A07F; [94 23, 05, 05]
+1187; [94 72 43, 05, 05]
-A080; [94 25, 05, 05]
+1188; [94 72 46, 05, 05]
+3189; [94 72 46, 05, 09]
-A081; [94 27, 05, 05]
+1189; [94 72 49, 05, 05]
-A082; [94 29, 05, 05]
+118A; [94 72 4C, 05, 05]
-A083; [94 2B, 05, 05]
+118B; [94 72 4F, 05, 05]
-A084; [94 2D, 05, 05]
+118C; [94 72 52, 05, 05]
-A085; [94 2F, 05, 05]
+118D; [94 72 55, 05, 05]
-A086; [94 31, 05, 05]
+118E; [94 72 58, 05, 05]
-A087; [94 33, 05, 05]
+118F; [94 72 5B, 05, 05]
-A088; [94 35, 05, 05]
+1190; [94 72 5E, 05, 05]
-A089; [94 37, 05, 05]
+1191; [94 72 61, 05, 05]
+318A; [94 72 61, 05, 09]
-A08A; [94 39, 05, 05]
+1192; [94 72 64, 05, 05]
+318B; [94 72 64, 05, 09]
-A08B; [94 3B, 05, 05]
+1193; [94 72 67, 05, 05]
-A08C; [94 3D, 05, 05]
+1194; [94 72 6A, 05, 05]
+318C; [94 72 6A, 05, 09]
-A08D; [94 3F, 05, 05]
+1195; [94 72 6D, 05, 05]
-A08E; [94 41, 05, 05]
+1196; [94 72 70, 05, 05]
-A08F; [94 43, 05, 05]
+1197; [94 72 73, 05, 05]
-A090; [94 45, 05, 05]
+1198; [94 72 76, 05, 05]
-A091; [94 47, 05, 05]
+1199; [94 72 79, 05, 05]
-A092; [94 49, 05, 05]
+119A; [94 72 7C, 05, 05]
-A093; [94 4B, 05, 05]
+119B; [94 72 7F, 05, 05]
-A094; [94 4D, 05, 05]
+119C; [94 72 82, 05, 05]
-A095; [94 4F, 05, 05]
+119D; [94 72 85, 05, 05]
-A096; [94 51, 05, 05]
+119E; [94 72 88, 05, 05]
+318D; [94 72 88, 05, 09]
-A097; [94 53, 05, 05]
+119F; [94 72 8B, 05, 05]
-A098; [94 55, 05, 05]
+11A0; [94 72 8E, 05, 05]
-A099; [94 57, 05, 05]
+11A1; [94 72 91, 05, 05]
+318E; [94 72 91, 05, 09]
-A09A; [94 59, 05, 05]
+11A2; [94 72 94, 05, 05]
-A09B; [94 5B, 05, 05]
+11A8; [94 74, 05, 05]
-A09C; [94 5D, 05, 05]
+11A9; [94 76, 05, 05]
-A09D; [94 5F, 05, 05]
+11AA; [94 78, 05, 05]
+3133; [94 78, 05, 09]
+FFA3; [94 78, 05, A3]
-A09E; [94 61, 05, 05]
+11AB; [94 7A, 05, 05]
-A09F; [94 63, 05, 05]
+11AC; [94 7C, 05, 05]
+3135; [94 7C, 05, 09]
+FFA5; [94 7C, 05, A3]
-A0A0; [94 65, 05, 05]
+11AD; [94 7E, 05, 05]
+3136; [94 7E, 05, 09]
+FFA6; [94 7E, 05, A3]
-A0A1; [94 67, 05, 05]
+11AE; [94 80, 05, 05]
-A0A2; [94 69, 05, 05]
+11AF; [94 82, 05, 05]
-A0A3; [94 6B, 05, 05]
+11B0; [94 84, 05, 05]
+313A; [94 84, 05, 09]
+FFAA; [94 84, 05, A3]
-A0A4; [94 6D, 05, 05]
+11B1; [94 86, 05, 05]
+313B; [94 86, 05, 09]
+FFAB; [94 86, 05, A3]
-A0A5; [94 6F, 05, 05]
+11B2; [94 88, 05, 05]
+313C; [94 88, 05, 09]
+FFAC; [94 88, 05, A3]
-A0A6; [94 71, 05, 05]
+11B3; [94 8A, 05, 05]
+313D; [94 8A, 05, 09]
+FFAD; [94 8A, 05, A3]
-A0A7; [94 73, 05, 05]
+11B4; [94 8C, 05, 05]
+313E; [94 8C, 05, 09]
+FFAE; [94 8C, 05, A3]
-A0A8; [94 75, 05, 05]
+11B5; [94 8E, 05, 05]
+313F; [94 8E, 05, 09]
+FFAF; [94 8E, 05, A3]
-A0A9; [94 77, 05, 05]
+11B6; [94 90, 05, 05]
-A0AA; [94 79, 05, 05]
+11B7; [94 92, 05, 05]
-A0AB; [94 7B, 05, 05]
+11B8; [94 94, 05, 05]
-A0AC; [94 7D, 05, 05]
+11B9; [94 96, 05, 05]
-A0AD; [94 7F, 05, 05]
+11BA; [94 98, 05, 05]
-A0AE; [94 81, 05, 05]
+11BB; [94 9A, 05, 05]
-A0AF; [94 83, 05, 05]
+11BC; [94 9C, 05, 05]
-A0B0; [94 85, 05, 05]
+11BD; [94 9E, 05, 05]
-A0B1; [94 87, 05, 05]
+11BE; [94 A0, 05, 05]
-A0B2; [94 89, 05, 05]
+11BF; [94 A2, 05, 05]
-A0B3; [94 8B, 05, 05]
+11C0; [94 A4, 05, 05]
-A0B4; [94 8D, 05, 05]
+11C1; [94 A6, 05, 05]
-A0B5; [94 8F, 05, 05]
+11C2; [94 A8, 05, 05]
-A0B6; [94 91, 05, 05]
+11C3; [94 AA 10, 05, 05]
-A0B7; [94 93, 05, 05]
+11C4; [94 AA 13, 05, 05]
-A0B8; [94 95, 05, 05]
+11C5; [94 AA 16, 05, 05]
-A0B9; [94 97, 05, 05]
+11C6; [94 AA 19, 05, 05]
-A0BA; [94 99, 05, 05]
+11C7; [94 AA 1C, 05, 05]
+3167; [94 AA 1C, 05, 09]
-A0BB; [94 9B, 05, 05]
+11C8; [94 AA 1F, 05, 05]
+3168; [94 AA 1F, 05, 09]
-A0BC; [94 9D, 05, 05]
+11C9; [94 AA 22, 05, 05]
-A0BD; [94 9F, 05, 05]
+11CA; [94 AA 25, 05, 05]
-A0BE; [94 A1, 05, 05]
+11CB; [94 AA 28, 05, 05]
-A0BF; [94 A3, 05, 05]
+11CC; [94 AA 2B, 05, 05]
+3169; [94 AA 2B, 05, 09]
-A0C0; [94 A5, 05, 05]
+11CD; [94 AA 2E, 05, 05]
-A0C1; [94 A7, 05, 05]
+11CE; [94 AA 31, 05, 05]
+316A; [94 AA 31, 05, 09]
-A0C2; [94 A9, 05, 05]
+11CF; [94 AA 34, 05, 05]
-A0C3; [94 AB, 05, 05]
+11D0; [94 AA 37, 05, 05]
-A0C4; [94 AD, 05, 05]
+11D1; [94 AA 3A, 05, 05]
-A0C5; [94 AF, 05, 05]
+11D2; [94 AA 3D, 05, 05]
-A0C6; [94 B1, 05, 05]
+11D3; [94 AA 40, 05, 05]
+316B; [94 AA 40, 05, 09]
-A0C7; [94 B3, 05, 05]
+11D4; [94 AA 43, 05, 05]
-A0C8; [94 B5, 05, 05]
+11D5; [94 AA 46, 05, 05]
-A0C9; [94 B7, 05, 05]
+11D6; [94 AA 49, 05, 05]
-A0CA; [94 B9, 05, 05]
+11D7; [94 AA 4C, 05, 05]
+316C; [94 AA 4C, 05, 09]
-A0CB; [94 BB, 05, 05]
+11D8; [94 AA 4F, 05, 05]
-A0CC; [94 BD, 05, 05]
+11D9; [94 AA 52, 05, 05]
+316D; [94 AA 52, 05, 09]
-A0CD; [94 BF, 05, 05]
+11DA; [94 AA 55, 05, 05]
-A0CE; [94 C1, 05, 05]
+11DB; [94 AA 58, 05, 05]
-A0CF; [94 C3, 05, 05]
+11DC; [94 AA 5B, 05, 05]
-A0D0; [94 C5, 05, 05]
+11DD; [94 AA 5E, 05, 05]
+316F; [94 AA 5E, 05, 09]
-A0D1; [94 C7, 05, 05]
+11DE; [94 AA 61, 05, 05]
-A0D2; [94 C9, 05, 05]
+11DF; [94 AA 64, 05, 05]
+3170; [94 AA 64, 05, 09]
-A0D3; [94 CB, 05, 05]
+11E0; [94 AA 67, 05, 05]
-A0D4; [94 CD, 05, 05]
+11E1; [94 AA 6A, 05, 05]
-A0D5; [94 CF, 05, 05]
+11E2; [94 AA 6D, 05, 05]
-A0D6; [94 D1, 05, 05]
+11E3; [94 AA 70, 05, 05]
-A0D7; [94 D3, 05, 05]
+11E4; [94 AA 73, 05, 05]
-A0D8; [94 D5, 05, 05]
+11E5; [94 AA 76, 05, 05]
-A0D9; [94 D7, 05, 05]
+11E6; [94 AA 79, 05, 05]
-A0DA; [94 D9, 05, 05]
+11E7; [94 AA 7C, 05, 05]
-A0DB; [94 DB, 05, 05]
+11E8; [94 AA 7F, 05, 05]
-A0DC; [94 DD, 05, 05]
+11E9; [94 AA 82, 05, 05]
-A0DD; [94 DF, 05, 05]
+11EA; [94 AA 85, 05, 05]
-A0DE; [94 E1, 05, 05]
+11EB; [94 AA 88, 05, 05]
-A0DF; [94 E3, 05, 05]
+11EC; [94 AA 8B, 05, 05]
-A0E0; [94 E5, 05, 05]
+11ED; [94 AA 8E, 05, 05]
-A0E1; [94 E7, 05, 05]
+11EE; [94 AA 91, 05, 05]
-A0E2; [94 E9, 05, 05]
+11EF; [94 AA 94, 05, 05]
-A0E3; [94 EB, 05, 05]
+11F0; [94 AA 97, 05, 05]
-A0E4; [94 ED, 05, 05]
+11F1; [94 AA 9A, 05, 05]
+3182; [94 AA 9A, 05, 09]
-A0E5; [94 EF, 05, 05]
+11F2; [94 AA 9D, 05, 05]
+3183; [94 AA 9D, 05, 09]
-A0E6; [94 F1, 05, 05]
+11F3; [94 AA A0, 05, 05]
-A0E7; [94 F3, 05, 05]
+11F4; [94 AA A3, 05, 05]
-A0E8; [94 F5, 05, 05]
+11F5; [94 AA A6, 05, 05]
-A0E9; [94 F7, 05, 05]
+11F6; [94 AA A9, 05, 05]
-A0EA; [94 F9, 05, 05]
+11F7; [94 AA AC, 05, 05]
-A0EB; [94 FB, 05, 05]
+11F8; [94 AA AF, 05, 05]
-A0EC; [94 FD, 05, 05]
+11F9; [94 AA B2, 05, 05]
-A0ED; [95 05, 05, 05]
+3041; [95 20, 05, 19]
+3042; [95 20, 05, 9B]
+30A1; [95 20, 05, 1D]
+FF67; [95 20, 05, 1F]
+30A2; [95 20, 05, A1]
+FF71; [95 20, 05, A3]
+32D0; [95 20, 05, 25]
+3303; [95 20, 05, 37][26 34, 05, 37][95 70, 05, 3D]
+3300; [95 20, 05, 37][95 52, 05, 37][, E2 35, 3D][26 34, 05, 3D][95 46, 05, 3D]
+3301; [95 20, 05, 37][95 70, 05, 37][95 56, 05, 3D][95 20, 05, 3D]
+3302; [95 20, 05, 37][95 7E, 05, 37][95 58, 05, 3D][, E2 35, 3D][95 20, 05, 3D]
-A0EE; [95 07, 05, 05]
+3043; [95 22, 05, 19]
+3044; [95 22, 05, 9B]
+30A3; [95 22, 05, 1D]
+FF68; [95 22, 05, 1F]
+30A4; [95 22, 05, A1]
+FF72; [95 22, 05, A3]
+32D1; [95 22, 05, 25]
+3304; [95 22, 05, 37][95 4A, 05, 37][95 7E, 05, 3D][95 2E, 05, 3D][, E2 25, 3D]
+3305; [95 22, 05, 37][95 7E, 05, 37][95 40, 05, 3D]
+
+3045; [95 24, 05, 19]
+3046; [95 24, 05, 9B]
+30A5; [95 24, 05, 1D]
+FF69; [95 24, 05, 1F]
+30A6; [95 24, 05, A1]
+FF73; [95 24, 05, A3]
+32D2; [95 24, 05, 25]
+3094; [95 24, 05, 9B][, E2 25, 05]
+30F4; [95 24, 05, A1][, E2 25, 05]
+3306; [95 24, 05, 37][95 28, 05, 37][95 7E, 05, 3D]
+
+3047; [95 26, 05, 19]
+3048; [95 26, 05, 9B]
+30A7; [95 26, 05, 1D]
+FF6A; [95 26, 05, 1F]
+30A8; [95 26, 05, A1]
+FF74; [95 26, 05, A3]
+32D3; [95 26, 05, 25]
+3308; [95 26, 05, 37][26 34, 05, 37][95 2A, 05, 3D][26 34, 05, 3D]
+3307; [95 26, 05, 37][95 38, 05, 37][95 2E, 05, 3D][26 34, 05, 3D][95 46, 05, 3D][, E2 25, 3D]
+
+3049; [95 28, 05, 19]
+304A; [95 28, 05, 9B]
+30A9; [95 28, 05, 1D]
+FF6B; [95 28, 05, 1F]
+30AA; [95 28, 05, A1]
+FF75; [95 28, 05, A3]
+32D4; [95 28, 05, 25]
+330A; [95 28, 05, 37][26 34, 05, 37][95 60, 05, 3D]
+3309; [95 28, 05, 37][95 7E, 05, 37][95 38, 05, 3D]
+
+3095; [95 2A, 05, 19]
+304B; [95 2A, 05, 9B]
+30F5; [95 2A, 05, 1D]
+30AB; [95 2A, 05, A1]
+FF76; [95 2A, 05, A3]
+32D5; [95 2A, 05, 25]
+304C; [95 2A, 05, 9B][, E2 25, 05]
+30AC; [95 2A, 05, A1][, E2 25, 05]
+330B; [95 2A, 05, 37][95 22, 05, 37][95 6E, 05, 3D]
+330C; [95 2A, 05, 37][95 6C, 05, 37][95 42, 05, 3D][95 46, 05, 3D]
+330D; [95 2A, 05, 37][95 74, 05, 37][95 6E, 05, 3D][26 34, 05, 3D]
+330E; [95 2A, 05, 37][, E2 25, 37][95 74, 05, 3D][95 7E, 05, 3D]
+330F; [95 2A, 05, 37][, E2 25, 37][95 7E, 05, 3D][95 5C, 05, 3D]
+
+304D; [95 2C, 05, 9B]
+30AD; [95 2C, 05, A1]
+FF77; [95 2C, 05, A3]
+32D6; [95 2C, 05, 25]
+304E; [95 2C, 05, 9B][, E2 25, 05]
+30AE; [95 2C, 05, A1][, E2 25, 05]
+3310; [95 2C, 05, 37][, E2 25, 37][95 2A, 05, 3D][, E2 25, 3D]
+3311; [95 2C, 05, 37][, E2 25, 37][95 4A, 05, 3D][26 34, 05, 3D]
+3312; [95 2C, 05, 37][95 68, 05, 37][95 6E, 05, 3D][26 34, 05, 3D]
+3313; [95 2C, 05, 37][, E2 25, 37][95 70, 05, 3D][95 3E, 05, 3D][, E2 25, 3D][26 34, 05, 3D]
+3314; [95 2C, 05, 37][95 74, 05, 37]
+3315; [95 2C, 05, 37][95 74, 05, 37][95 2E, 05, 3D][, E2 25, 3D][95 6C, 05, 3D][95 60, 05, 3D]
+3316; [95 2C, 05, 37][95 74, 05, 37][95 62, 05, 3D][26 34, 05, 3D][95 46, 05, 3D][95 70, 05, 3D]
+3317; [95 2C, 05, 37][95 74, 05, 37][95 76, 05, 3D][95 42, 05, 3D][95 46, 05, 3D]
+
+304F; [95 2E, 05, 9B]
+31F0; [95 2E, 05, 1D]
+30AF; [95 2E, 05, A1]
+FF78; [95 2E, 05, A3]
+32D7; [95 2E, 05, 25]
+3050; [95 2E, 05, 9B][, E2 25, 05]
+30B0; [95 2E, 05, A1][, E2 25, 05]
+3318; [95 2E, 05, 37][, E2 25, 37][95 6C, 05, 3D][95 60, 05, 3D]
+3319; [95 2E, 05, 37][, E2 25, 37][95 6C, 05, 3D][95 60, 05, 3D][95 46, 05, 3D][95 7E, 05, 3D]
+331A; [95 2E, 05, 37][95 70, 05, 37][95 3A, 05, 3D][, E2 25, 3D][95 22, 05, 3D][95 74, 05, 3D]
+331B; [95 2E, 05, 37][95 74, 05, 37][26 34, 05, 3D][95 4E, 05, 3D]
+
+3096; [95 30, 05, 19]
+3051; [95 30, 05, 9B]
+30F6; [95 30, 05, 1D]
+30B1; [95 30, 05, A1]
+FF79; [95 30, 05, A3]
+32D8; [95 30, 05, 25]
+3052; [95 30, 05, 9B][, E2 25, 05]
+30B2; [95 30, 05, A1][, E2 25, 05]
+331C; [95 30, 05, 37][26 34, 05, 37][95 38, 05, 3D]
+
+3053; [95 32, 05, 9B]
+30B3; [95 32, 05, A1]
+FF7A; [95 32, 05, A3]
+32D9; [95 32, 05, 25]
+3054; [95 32, 05, 9B][, E2 25, 05]
+30B4; [95 32, 05, A1][, E2 25, 05]
+331E; [95 32, 05, 37][26 34, 05, 37][95 5A, 05, 3D][, E2 35, 3D]
+30FF; [95 32, 05, 2B][95 46, 05, 2B]
+331D; [95 32, 05, 37][95 70, 05, 37][95 48, 05, 3D]
+
+3055; [95 34, 05, 9B]
+30B5; [95 34, 05, A1]
+FF7B; [95 34, 05, A3]
+32DA; [95 34, 05, 25]
+3056; [95 34, 05, 9B][, E2 25, 05]
+30B6; [95 34, 05, A1][, E2 25, 05]
+331F; [95 34, 05, 37][95 22, 05, 37][95 2E, 05, 3D][95 70, 05, 3D]
+3320; [95 34, 05, 37][95 7E, 05, 37][95 40, 05, 3D][26 34, 05, 3D][95 60, 05, 3D]
+
+3057; [95 36, 05, 9B]
+31F1; [95 36, 05, 1D]
+30B7; [95 36, 05, A1]
+FF7C; [95 36, 05, A3]
+32DB; [95 36, 05, 25]
+3058; [95 36, 05, 9B][, E2 25, 05]
+30B8; [95 36, 05, A1][, E2 25, 05]
+3006; [95 36, 05, 09][95 62, 05, 09]
+3321; [95 36, 05, 37][95 6E, 05, 37][95 7E, 05, 3D][95 2E, 05, 3D][, E2 25, 3D]
+
+3059; [95 38, 05, 9B]
+31F2; [95 38, 05, 1D]
+30B9; [95 38, 05, A1]
+FF7D; [95 38, 05, A3]
+32DC; [95 38, 05, 25]
+305A; [95 38, 05, 9B][, E2 25, 05]
+30BA; [95 38, 05, A1][, E2 25, 05]
+
+305B; [95 3A, 05, 9B]
+30BB; [95 3A, 05, A1]
+FF7E; [95 3A, 05, A3]
+32DD; [95 3A, 05, 25]
+305C; [95 3A, 05, 9B][, E2 25, 05]
+30BC; [95 3A, 05, A1][, E2 25, 05]
+3322; [95 3A, 05, 37][95 7E, 05, 37][95 40, 05, 3D]
+3323; [95 3A, 05, 37][95 7E, 05, 37][95 46, 05, 3D]
+
+305D; [95 3C, 05, 9B]
+30BD; [95 3C, 05, A1]
+FF7F; [95 3C, 05, A3]
+32DE; [95 3C, 05, 25]
+305E; [95 3C, 05, 9B][, E2 25, 05]
+30BE; [95 3C, 05, A1][, E2 25, 05]
+
+305F; [95 3E, 05, 9B]
+30BF; [95 3E, 05, A1]
+FF80; [95 3E, 05, A3]
+32DF; [95 3E, 05, 25]
+3060; [95 3E, 05, 9B][, E2 25, 05]
+30C0; [95 3E, 05, A1][, E2 25, 05]
+3324; [95 3E, 05, 37][, E2 25, 37][26 34, 05, 3D][95 38, 05, 3D]
+
+3061; [95 40, 05, 9B]
+30C1; [95 40, 05, A1]
+FF81; [95 40, 05, A3]
+32E0; [95 40, 05, 25]
+3062; [95 40, 05, 9B][, E2 25, 05]
+30C2; [95 40, 05, A1][, E2 25, 05]
+
+3063; [95 42, 05, 19]
+3064; [95 42, 05, 9B]
+30C3; [95 42, 05, 1D]
+FF6F; [95 42, 05, 1F]
+30C4; [95 42, 05, A1]
+FF82; [95 42, 05, A3]
+32E1; [95 42, 05, 25]
+3065; [95 42, 05, 9B][, E2 25, 05]
+30C5; [95 42, 05, A1][, E2 25, 05]
+
+3066; [95 44, 05, 9B]
+30C6; [95 44, 05, A1]
+FF83; [95 44, 05, A3]
+32E2; [95 44, 05, 25]
+3067; [95 44, 05, 9B][, E2 25, 05]
+30C7; [95 44, 05, A1][, E2 25, 05]
+3325; [95 44, 05, 37][, E2 25, 37][95 36, 05, 3D]
+
+3068; [95 46, 05, 9B]
+31F3; [95 46, 05, 1D]
+30C8; [95 46, 05, A1]
+FF84; [95 46, 05, A3]
+32E3; [95 46, 05, 25]
+3069; [95 46, 05, 9B][, E2 25, 05]
+30C9; [95 46, 05, A1][, E2 25, 05]
+3326; [95 46, 05, 37][, E2 25, 37][95 70, 05, 3D]
+3327; [95 46, 05, 37][95 7E, 05, 37]
+
+306A; [95 48, 05, 9B]
+30CA; [95 48, 05, A1]
+FF85; [95 48, 05, A3]
+32E4; [95 48, 05, 25]
+3328; [95 48, 05, 37][95 50, 05, 37]
+
+306B; [95 4A, 05, 9B]
+30CB; [95 4A, 05, A1]
+FF86; [95 4A, 05, A3]
+32E5; [95 4A, 05, 25]
+
+306C; [95 4C, 05, 9B]
+31F4; [95 4C, 05, 1D]
+30CC; [95 4C, 05, A1]
+FF87; [95 4C, 05, A3]
+32E6; [95 4C, 05, 25]
+
+306D; [95 4E, 05, 9B]
+30CD; [95 4E, 05, A1]
+FF88; [95 4E, 05, A3]
+32E7; [95 4E, 05, 25]
+
+306E; [95 50, 05, 9B]
+30CE; [95 50, 05, A1]
+FF89; [95 50, 05, A3]
+32E8; [95 50, 05, 25]
+3329; [95 50, 05, 37][95 42, 05, 37][95 46, 05, 3D]
+
+306F; [95 52, 05, 9B]
+31F5; [95 52, 05, 1D]
+30CF; [95 52, 05, A1]
+FF8A; [95 52, 05, A3]
+32E9; [95 52, 05, 25]
+3070; [95 52, 05, 9B][, E2 25, 05]
+30D0; [95 52, 05, A1][, E2 25, 05]
+3071; [95 52, 05, 9B][, E2 35, 05]
+30D1; [95 52, 05, A1][, E2 35, 05]
+332B; [95 52, 05, 37][, E2 35, 37][26 34, 05, 3D][95 3A, 05, 3D][95 7E, 05, 3D][95 46, 05, 3D]
+332C; [95 52, 05, 37][, E2 35, 37][26 34, 05, 3D][95 42, 05, 3D]
+332D; [95 52, 05, 37][, E2 25, 37][26 34, 05, 3D][95 72, 05, 3D][95 70, 05, 3D]
+332A; [95 52, 05, 37][95 22, 05, 37][95 42, 05, 3D]
+
+3072; [95 54, 05, 9B]
+31F6; [95 54, 05, 1D]
+30D2; [95 54, 05, A1]
+FF8B; [95 54, 05, A3]
+32EA; [95 54, 05, 25]
+3073; [95 54, 05, 9B][, E2 25, 05]
+30D3; [95 54, 05, A1][, E2 25, 05]
+3074; [95 54, 05, 9B][, E2 35, 05]
+30D4; [95 54, 05, A1][, E2 35, 05]
+332E; [95 54, 05, 37][, E2 35, 37][95 20, 05, 3D][95 38, 05, 3D][95 46, 05, 3D][95 70, 05, 3D]
+332F; [95 54, 05, 37][, E2 35, 37][95 2E, 05, 3D][95 70, 05, 3D]
+3330; [95 54, 05, 37][, E2 35, 37][95 32, 05, 3D]
+3331; [95 54, 05, 37][, E2 25, 37][95 70, 05, 3D]
+
+3075; [95 56, 05, 9B]
+31F7; [95 56, 05, 1D]
+30D5; [95 56, 05, A1]
+FF8C; [95 56, 05, A3]
+32EB; [95 56, 05, 25]
+3076; [95 56, 05, 9B][, E2 25, 05]
+30D6; [95 56, 05, A1][, E2 25, 05]
+3077; [95 56, 05, 9B][, E2 35, 05]
+30D7; [95 56, 05, A1][, E2 35, 05]
+3332; [95 56, 05, 37][95 20, 05, 37][95 6C, 05, 3D][95 42, 05, 3D][95 46, 05, 3D][, E2 25, 3D]
+3333; [95 56, 05, 37][95 22, 05, 37][26 34, 05, 3D][95 46, 05, 3D]
+3334; [95 56, 05, 37][, E2 25, 37][95 42, 05, 3D][95 36, 05, 3D][95 26, 05, 3D][95 70, 05, 3D]
+3335; [95 56, 05, 37][95 6C, 05, 37][95 7E, 05, 3D]
+
+3078; [95 58, 05, 9B]
+31F8; [95 58, 05, 1D]
+30D8; [95 58, 05, A1]
+FF8D; [95 58, 05, A3]
+32EC; [95 58, 05, 25]
+3079; [95 58, 05, 9B][, E2 25, 05]
+30D9; [95 58, 05, A1][, E2 25, 05]
+307A; [95 58, 05, 9B][, E2 35, 05]
+30DA; [95 58, 05, A1][, E2 35, 05]
+333B; [95 58, 05, 37][, E2 35, 37][26 34, 05, 3D][95 36, 05, 3D][, E2 25, 3D]
+333C; [95 58, 05, 37][, E2 25, 37][26 34, 05, 3D][95 3E, 05, 3D]
+3336; [95 58, 05, 37][95 2E, 05, 37][95 3E, 05, 3D][26 34, 05, 3D][95 70, 05, 3D]
+3337; [95 58, 05, 37][, E2 35, 37][95 3C, 05, 3D]
+3338; [95 58, 05, 37][, E2 35, 37][95 4A, 05, 3D][95 54, 05, 3D]
+3339; [95 58, 05, 37][95 70, 05, 37][95 42, 05, 3D]
+333A; [95 58, 05, 37][, E2 35, 37][95 7E, 05, 3D][95 38, 05, 3D]
+
+307B; [95 5A, 05, 9B]
+31F9; [95 5A, 05, 1D]
+30DB; [95 5A, 05, A1]
+FF8E; [95 5A, 05, A3]
+32ED; [95 5A, 05, 25]
+307C; [95 5A, 05, 9B][, E2 25, 05]
+30DC; [95 5A, 05, A1][, E2 25, 05]
+307D; [95 5A, 05, 9B][, E2 35, 05]
+30DD; [95 5A, 05, A1][, E2 35, 05]
+3341; [95 5A, 05, 37][26 34, 05, 37][95 70, 05, 3D]
+3342; [95 5A, 05, 37][26 34, 05, 37][95 7E, 05, 3D]
+333D; [95 5A, 05, 37][, E2 35, 37][95 22, 05, 3D][95 7E, 05, 3D][95 46, 05, 3D]
+333E; [95 5A, 05, 37][, E2 25, 37][95 70, 05, 3D][95 46, 05, 3D]
+333F; [95 5A, 05, 37][95 7E, 05, 37]
+3340; [95 5A, 05, 37][, E2 35, 37][95 7E, 05, 3D][95 46, 05, 3D][, E2 25, 3D]
+
+307E; [95 5C, 05, 9B]
+30DE; [95 5C, 05, A1]
+FF8F; [95 5C, 05, A3]
+32EE; [95 5C, 05, 25]
+3343; [95 5C, 05, 37][95 22, 05, 37][95 2E, 05, 3D][95 74, 05, 3D]
+3344; [95 5C, 05, 37][95 22, 05, 37][95 70, 05, 3D]
+303C; [95 5C, 05, 09][95 38, 05, 09]
+3345; [95 5C, 05, 37][95 42, 05, 37][95 52, 05, 3D]
+3346; [95 5C, 05, 37][95 70, 05, 37][95 2E, 05, 3D]
+3347; [95 5C, 05, 37][95 7E, 05, 37][95 36, 05, 3D][95 6A, 05, 3D][95 7E, 05, 3D]
+
+307F; [95 5E, 05, 9B]
+30DF; [95 5E, 05, A1]
+FF90; [95 5E, 05, A3]
+32EF; [95 5E, 05, 25]
+3348; [95 5E, 05, 37][95 2E, 05, 37][95 74, 05, 3D][95 7E, 05, 3D]
+3349; [95 5E, 05, 37][95 6E, 05, 37]
+334A; [95 5E, 05, 37][95 6E, 05, 37][95 52, 05, 3D][, E2 25, 3D][26 34, 05, 3D][95 70, 05, 3D]
+
+3080; [95 60, 05, 9B]
+31FA; [95 60, 05, 1D]
+30E0; [95 60, 05, A1]
+FF91; [95 60, 05, A3]
+32F0; [95 60, 05, 25]
+
+3081; [95 62, 05, 9B]
+30E1; [95 62, 05, A1]
+FF92; [95 62, 05, A3]
+32F1; [95 62, 05, 25]
+334D; [95 62, 05, 37][26 34, 05, 37][95 46, 05, 3D][95 70, 05, 3D]
+334B; [95 62, 05, 37][95 2A, 05, 37][, E2 25, 3D]
+334C; [95 62, 05, 37][95 2A, 05, 37][, E2 25, 3D][95 46, 05, 3D][95 7E, 05, 3D]
+
+3082; [95 64, 05, 9B]
+30E2; [95 64, 05, A1]
+FF93; [95 64, 05, A3]
+32F2; [95 64, 05, 25]
+
+3083; [95 66, 05, 19]
+3084; [95 66, 05, 9B]
+30E3; [95 66, 05, 1D]
+FF6C; [95 66, 05, 1F]
+30E4; [95 66, 05, A1]
+FF94; [95 66, 05, A3]
+32F3; [95 66, 05, 25]
+334E; [95 66, 05, 37][26 34, 05, 37][95 46, 05, 3D][, E2 25, 3D]
+334F; [95 66, 05, 37][26 34, 05, 37][95 70, 05, 3D]
+
+3085; [95 68, 05, 19]
+3086; [95 68, 05, 9B]
+30E5; [95 68, 05, 1D]
+FF6D; [95 68, 05, 1F]
+30E6; [95 68, 05, A1]
+FF95; [95 68, 05, A3]
+32F4; [95 68, 05, 25]
+3350; [95 68, 05, 37][95 20, 05, 37][95 7E, 05, 3D]
+
+3087; [95 6A, 05, 19]
+3088; [95 6A, 05, 9B]
+30E7; [95 6A, 05, 1D]
+FF6E; [95 6A, 05, 1F]
+30E8; [95 6A, 05, A1]
+FF96; [95 6A, 05, A3]
+32F5; [95 6A, 05, 25]
+309F; [95 6A, 05, 2B][95 6E, 05, 2B]
+
+3089; [95 6C, 05, 9B]
+31FB; [95 6C, 05, 1D]
+30E9; [95 6C, 05, A1]
+FF97; [95 6C, 05, A3]
+32F6; [95 6C, 05, 25]
+
+308A; [95 6E, 05, 9B]
+31FC; [95 6E, 05, 1D]
+30EA; [95 6E, 05, A1]
+FF98; [95 6E, 05, A3]
+32F7; [95 6E, 05, 25]
+3351; [95 6E, 05, 37][95 42, 05, 37][95 46, 05, 3D][95 70, 05, 3D]
+3352; [95 6E, 05, 37][95 6C, 05, 37]
+
+308B; [95 70, 05, 9B]
+31FD; [95 70, 05, 1D]
+30EB; [95 70, 05, A1]
+FF99; [95 70, 05, A3]
+32F8; [95 70, 05, 25]
+3354; [95 70, 05, 37][26 34, 05, 37][95 56, 05, 3D][, E2 25, 3D][95 70, 05, 3D]
+3353; [95 70, 05, 37][95 54, 05, 37][, E2 35, 3D][26 34, 05, 3D]
+
+308C; [95 72, 05, 9B]
+31FE; [95 72, 05, 1D]
+30EC; [95 72, 05, A1]
+FF9A; [95 72, 05, A3]
+32F9; [95 72, 05, 25]
+3355; [95 72, 05, 37][95 60, 05, 37]
+3356; [95 72, 05, 37][95 7E, 05, 37][95 46, 05, 3D][95 30, 05, 3D][, E2 25, 3D][95 7E, 05, 3D]
+
+308D; [95 74, 05, 9B]
+31FF; [95 74, 05, 1D]
+30ED; [95 74, 05, A1]
+FF9B; [95 74, 05, A3]
+32FA; [95 74, 05, 25]
+
+308E; [95 76, 05, 19]
+308F; [95 76, 05, 9B]
+30EE; [95 76, 05, 1D]
+30EF; [95 76, 05, A1]
+FF9C; [95 76, 05, A3]
+32FB; [95 76, 05, 25]
+30F7; [95 76, 05, A1][, E2 25, 05]
+3357; [95 76, 05, 37][95 42, 05, 37][95 46, 05, 3D]
-A0EF; [95 09, 05, 05]
+3090; [95 78, 05, 9B]
+30F0; [95 78, 05, A1]
+32FC; [95 78, 05, 25]
+30F8; [95 78, 05, A1][, E2 25, 05]
-A0F0; [95 0B, 05, 05]
+3091; [95 7A, 05, 9B]
+30F1; [95 7A, 05, A1]
+32FD; [95 7A, 05, 25]
+30F9; [95 7A, 05, A1][, E2 25, 05]
-A0F1; [95 0D, 05, 05]
+3092; [95 7C, 05, 9B]
+30F2; [95 7C, 05, A1]
+FF66; [95 7C, 05, A3]
+32FE; [95 7C, 05, 25]
+30FA; [95 7C, 05, A1][, E2 25, 05]
-A0F2; [95 0F, 05, 05]
+3093; [95 7E, 05, 9B]
+30F3; [95 7E, 05, A1]
+FF9D; [95 7E, 05, A3]
-A0F3; [95 11, 05, 05]
+3105; [96 20, 05, 05]
+31A0; [96 20, 05, 09][, E4 5D, 09]
-A0F4; [95 13, 05, 05]
+3106; [96 22, 05, 05]
+31B4; [96 22, 05, 31]
-A0F5; [95 15, 05, 05]
+3107; [96 24, 05, 05]
-A0F6; [95 17, 05, 05]
+3108; [96 26, 05, 05]
-A0F7; [95 19, 05, 05]
+312A; [96 28, 05, 05]
-A0F8; [95 1B, 05, 05]
+3109; [96 2A, 05, 05]
-A0F9; [95 1D, 05, 05]
+310A; [96 2C, 05, 05]
+31B5; [96 2C, 05, 31]
-A0FA; [95 1F, 05, 05]
+310B; [96 2E, 05, 05]
-A0FB; [95 21, 05, 05]
+310C; [96 30, 05, 05]
-A0FC; [95 23, 05, 05]
+310D; [96 32, 05, 05]
+31A3; [96 32, 05, 09][, E4 5D, 09]
-A0FD; [95 25, 05, 05]
+310E; [96 34, 05, 05]
+31B6; [96 34, 05, 31]
-A0FE; [95 27, 05, 05]
+312B; [96 36, 05, 05]
-A0FF; [95 29, 05, 05]
+31AD; [96 38, 05, 05]
-A100; [95 2B, 05, 05]
+310F; [96 3A, 05, 05]
+31B7; [96 3A, 05, 31]
-A101; [95 2D, 05, 05]
+3110; [96 3C, 05, 05]
+31A2; [96 3C, 05, 09][, E4 5D, 09]
-A102; [95 2F, 05, 05]
+3111; [96 3E, 05, 05]
-A103; [95 31, 05, 05]
+3112; [96 40, 05, 05]
-A104; [95 33, 05, 05]
+312C; [96 42, 05, 05]
-A105; [95 35, 05, 05]
+3113; [96 44, 05, 05]
-A106; [95 37, 05, 05]
+3114; [96 46, 05, 05]
-A107; [95 39, 05, 05]
+3115; [96 48, 05, 05]
-A108; [95 3B, 05, 05]
+3116; [96 4A, 05, 05]
-A109; [95 3D, 05, 05]
+3117; [96 4C, 05, 05]
+31A1; [96 4C, 05, 09][, E4 5D, 09]
-A10A; [95 3F, 05, 05]
+3118; [96 4E, 05, 05]
-A10B; [95 41, 05, 05]
+3119; [96 50, 05, 05]
-A10C; [95 43, 05, 05]
+311A; [96 52, 05, 05]
+31A9; [96 52, 05, 09][, E4 5D, 09]
-A10D; [95 45, 05, 05]
+311B; [96 54, 05, 05]
+31A7; [96 54, 05, 09][, E4 5D, 09]
-A10E; [95 47, 05, 05]
+31A6; [96 56, 05, 05]
-A10F; [95 49, 05, 05]
+311C; [96 58, 05, 05]
-A110; [95 4B, 05, 05]
+311D; [96 5A, 05, 05]
-A111; [95 4D, 05, 05]
+31A4; [96 5C, 05, 05]
+31A5; [96 5C, 05, 09][, E4 5D, 09]
-A112; [95 4F, 05, 05]
+311E; [96 5E, 05, 05]
+31AE; [96 5E, 05, 09][, E4 5D, 09]
-A113; [95 51, 05, 05]
+311F; [96 60, 05, 05]
-A114; [95 53, 05, 05]
+3120; [96 62, 05, 05]
+31AF; [96 62, 05, 09][, E4 5D, 09]
-A115; [95 55, 05, 05]
+3121; [96 64, 05, 05]
-A116; [95 57, 05, 05]
+3122; [96 66, 05, 05]
-A117; [95 59, 05, 05]
+3123; [96 68, 05, 05]
-A118; [95 5B, 05, 05]
+3124; [96 6A, 05, 05]
-A119; [95 5D, 05, 05]
+31B2; [96 6C, 05, 05]
-A11A; [95 5F, 05, 05]
+3125; [96 6E, 05, 05]
-A11B; [95 61, 05, 05]
+31B0; [96 70, 05, 05]
-A11C; [95 63, 05, 05]
+31B1; [96 72, 05, 05]
-A11D; [95 65, 05, 05]
+31AC; [96 74, 05, 05]
-A11E; [95 67, 05, 05]
+3126; [96 76, 05, 05]
-A11F; [95 69, 05, 05]
+3127; [96 78, 05, 05]
+31AA; [96 78, 05, 09][, E4 5D, 09]
+31B3; [96 78, 05, 2B][, E4 5D, 2B]
-A120; [95 6B, 05, 05]
+3128; [96 7A, 05, 05]
+31AB; [96 7A, 05, 09][, E4 5D, 09]
+31A8; [96 7A, 05, 09][, E4 6D, 09]
-A121; [95 6D, 05, 05]
+3129; [96 7C, 05, 05]
-A122; [95 6F, 05, 05]
+A000; [97 20, 05, 05]
-A123; [95 71, 05, 05]
+A001; [97 22, 05, 05]
-A124; [95 73, 05, 05]
+A002; [97 24, 05, 05]
-A125; [95 75, 05, 05]
+A003; [97 26, 05, 05]
-A126; [95 77, 05, 05]
+A004; [97 28, 05, 05]
-A127; [95 79, 05, 05]
+A005; [97 2A, 05, 05]
-A128; [95 7B, 05, 05]
+A006; [97 2C, 05, 05]
-A129; [95 7D, 05, 05]
+A007; [97 2E, 05, 05]
-A12A; [95 7F, 05, 05]
+A008; [97 30, 05, 05]
-A12B; [95 81, 05, 05]
+A009; [97 32, 05, 05]
-A12C; [95 83, 05, 05]
+A00A; [97 34, 05, 05]
-A12D; [95 85, 05, 05]
+A00B; [97 36, 05, 05]
-A12E; [95 87, 05, 05]
+A00C; [97 38, 05, 05]
-A12F; [95 89, 05, 05]
+A00D; [97 3A, 05, 05]
-A130; [95 8B, 05, 05]
+A00E; [97 3C, 05, 05]
-A131; [95 8D, 05, 05]
+A00F; [97 3E, 05, 05]
-A132; [95 8F, 05, 05]
+A010; [97 40, 05, 05]
-A133; [95 91, 05, 05]
+A011; [97 42, 05, 05]
-A134; [95 93, 05, 05]
+A012; [97 44, 05, 05]
-A135; [95 95, 05, 05]
+A013; [97 46, 05, 05]
-A136; [95 97, 05, 05]
+A014; [97 48, 05, 05]
-A137; [95 99, 05, 05]
+A015; [97 4A, 05, 05]
-A138; [95 9B, 05, 05]
+A016; [97 4C, 05, 05]
-A139; [95 9D, 05, 05]
+A017; [97 4E, 05, 05]
-A13A; [95 9F, 05, 05]
+A018; [97 50, 05, 05]
-A13B; [95 A1, 05, 05]
+A019; [97 52, 05, 05]
-A13C; [95 A3, 05, 05]
+A01A; [97 54, 05, 05]
-A13D; [95 A5, 05, 05]
+A01B; [97 56, 05, 05]
-A13E; [95 A7, 05, 05]
+A01C; [97 58, 05, 05]
-A13F; [95 A9, 05, 05]
+A01D; [97 5A, 05, 05]
-A140; [95 AB, 05, 05]
+A01E; [97 5C, 05, 05]
-A141; [95 AD, 05, 05]
+A01F; [97 5E, 05, 05]
-A142; [95 AF, 05, 05]
+A020; [97 60, 05, 05]
-A143; [95 B1, 05, 05]
+A021; [97 62, 05, 05]
-A144; [95 B3, 05, 05]
+A022; [97 64, 05, 05]
-A145; [95 B5, 05, 05]
+A023; [97 66, 05, 05]
-A146; [95 B7, 05, 05]
+A024; [97 68, 05, 05]
-A147; [95 B9, 05, 05]
+A025; [97 6A, 05, 05]
-A148; [95 BB, 05, 05]
+A026; [97 6C, 05, 05]
-A149; [95 BD, 05, 05]
+A027; [97 6E, 05, 05]
-A14A; [95 BF, 05, 05]
+A028; [97 70, 05, 05]
-A14B; [95 C1, 05, 05]
+A029; [97 72, 05, 05]
-A14C; [95 C3, 05, 05]
+A02A; [97 74, 05, 05]
-A14D; [95 C5, 05, 05]
+A02B; [97 76, 05, 05]
-A14E; [95 C7, 05, 05]
+A02C; [97 78, 05, 05]
-A14F; [95 C9, 05, 05]
+A02D; [97 7A, 05, 05]
-A150; [95 CB, 05, 05]
+A02E; [97 7C, 05, 05]
-A151; [95 CD, 05, 05]
+A02F; [97 7E, 05, 05]
-A152; [95 CF, 05, 05]
+A030; [97 80, 05, 05]
-A153; [95 D1, 05, 05]
+A031; [97 82, 05, 05]
-A154; [95 D3, 05, 05]
+A032; [97 84, 05, 05]
-A155; [95 D5, 05, 05]
+A033; [97 86, 05, 05]
-A156; [95 D7, 05, 05]
+A034; [97 88, 05, 05]
-A157; [95 D9, 05, 05]
+A035; [97 8A, 05, 05]
-A158; [95 DB, 05, 05]
+A036; [97 8C, 05, 05]
-A159; [95 DD, 05, 05]
+A037; [97 8E, 05, 05]
-A15A; [95 DF, 05, 05]
+A038; [97 90, 05, 05]
-A15B; [95 E1, 05, 05]
+A039; [97 92, 05, 05]
-A15C; [95 E3, 05, 05]
+A03A; [97 94, 05, 05]
-A15D; [95 E5, 05, 05]
+A03B; [97 96, 05, 05]
-A15E; [95 E7, 05, 05]
+A03C; [97 98, 05, 05]
-A15F; [95 E9, 05, 05]
+A03D; [97 9A, 05, 05]
-A160; [95 EB, 05, 05]
+A03E; [97 9C, 05, 05]
-A161; [95 ED, 05, 05]
+A03F; [97 9E, 05, 05]
-A162; [95 EF, 05, 05]
+A040; [97 A0, 05, 05]
-A163; [95 F1, 05, 05]
+A041; [97 A2, 05, 05]
-A164; [95 F3, 05, 05]
+A042; [97 A4, 05, 05]
-A165; [95 F5, 05, 05]
+A043; [97 A6, 05, 05]
-A166; [95 F7, 05, 05]
+A044; [97 A8, 05, 05]
-A167; [95 F9, 05, 05]
+A045; [97 AA, 05, 05]
-A168; [95 FB, 05, 05]
+A046; [97 AC, 05, 05]
-A169; [95 FD, 05, 05]
+A047; [97 AE, 05, 05]
-A16A; [96 05, 05, 05]
+A048; [97 B0, 05, 05]
-A16B; [96 07, 05, 05]
+A049; [97 B2, 05, 05]
-A16C; [96 09, 05, 05]
+A04A; [97 B4, 05, 05]
-A16D; [96 0B, 05, 05]
+A04B; [97 B6, 05, 05]
-A16E; [96 0D, 05, 05]
+A04C; [97 B8, 05, 05]
-A16F; [96 0F, 05, 05]
+A04D; [97 BA, 05, 05]
-A170; [96 11, 05, 05]
+A04E; [97 BC, 05, 05]
-A171; [96 13, 05, 05]
+A04F; [97 BE, 05, 05]
-A172; [96 15, 05, 05]
+A050; [97 C0, 05, 05]
-A173; [96 17, 05, 05]
+A051; [97 C2, 05, 05]
-A174; [96 19, 05, 05]
+A052; [97 C4, 05, 05]
-A175; [96 1B, 05, 05]
+A053; [97 C6, 05, 05]
-A176; [96 1D, 05, 05]
+A054; [97 C8, 05, 05]
-A177; [96 1F, 05, 05]
+A055; [97 CA, 05, 05]
-A178; [96 21, 05, 05]
+A056; [97 CC, 05, 05]
-A179; [96 23, 05, 05]
+A057; [97 CE, 05, 05]
-A17A; [96 25, 05, 05]
+A058; [97 D0, 05, 05]
-A17B; [96 27, 05, 05]
+A059; [97 D2, 05, 05]
-A17C; [96 29, 05, 05]
+A05A; [97 D4, 05, 05]
-A17D; [96 2B, 05, 05]
+A05B; [97 D6, 05, 05]
-A17E; [96 2D, 05, 05]
+A05C; [97 D8, 05, 05]
-A17F; [96 2F, 05, 05]
+A05D; [97 DA, 05, 05]
-A180; [96 31, 05, 05]
+A05E; [97 DC, 05, 05]
-A181; [96 33, 05, 05]
+A05F; [97 DE, 05, 05]
-A182; [96 35, 05, 05]
+A060; [97 E0, 05, 05]
-A183; [96 37, 05, 05]
+A061; [97 E2, 05, 05]
-A184; [96 39, 05, 05]
+A062; [97 E4, 05, 05]
-A185; [96 3B, 05, 05]
+A063; [97 E6, 05, 05]
-A186; [96 3D, 05, 05]
+A064; [97 E8, 05, 05]
-A187; [96 3F, 05, 05]
+A065; [97 EA, 05, 05]
-A188; [96 41, 05, 05]
+A066; [97 EC, 05, 05]
-A189; [96 43, 05, 05]
+A067; [97 EE, 05, 05]
-A18A; [96 45, 05, 05]
+A068; [97 F0, 05, 05]
-A18B; [96 47, 05, 05]
+A069; [97 F2, 05, 05]
-A18C; [96 49, 05, 05]
+A06A; [97 F4, 05, 05]
-A18D; [96 4B, 05, 05]
+A06B; [97 F6, 05, 05]
-A18E; [96 4D, 05, 05]
+A06C; [97 F8, 05, 05]
-A18F; [96 4F, 05, 05]
+A06D; [97 FA, 05, 05]
-A190; [96 51, 05, 05]
+A06E; [97 FC, 05, 05]
-A191; [96 53, 05, 05]
+A06F; [97 FE, 05, 05]
-A192; [96 55, 05, 05]
+A070; [98 05, 05, 05]
-A193; [96 57, 05, 05]
+A071; [98 07, 05, 05]
-A194; [96 59, 05, 05]
+A072; [98 09, 05, 05]
-A195; [96 5B, 05, 05]
+A073; [98 0B, 05, 05]
-A196; [96 5D, 05, 05]
+A074; [98 0D, 05, 05]
-A197; [96 5F, 05, 05]
+A075; [98 0F, 05, 05]
-A198; [96 61, 05, 05]
+A076; [98 11, 05, 05]
-A199; [96 63, 05, 05]
+A077; [98 13, 05, 05]
-A19A; [96 65, 05, 05]
+A078; [98 15, 05, 05]
-A19B; [96 67, 05, 05]
+A079; [98 17, 05, 05]
-A19C; [96 69, 05, 05]
+A07A; [98 19, 05, 05]
-A19D; [96 6B, 05, 05]
+A07B; [98 1B, 05, 05]
-A19E; [96 6D, 05, 05]
+A07C; [98 1D, 05, 05]
-A19F; [96 6F, 05, 05]
+A07D; [98 1F, 05, 05]
-A1A0; [96 71, 05, 05]
+A07E; [98 21, 05, 05]
-A1A1; [96 73, 05, 05]
+A07F; [98 23, 05, 05]
-A1A2; [96 75, 05, 05]
+A080; [98 25, 05, 05]
-A1A3; [96 77, 05, 05]
+A081; [98 27, 05, 05]
-A1A4; [96 79, 05, 05]
+A082; [98 29, 05, 05]
-A1A5; [96 7B, 05, 05]
+A083; [98 2B, 05, 05]
-A1A6; [96 7D, 05, 05]
+A084; [98 2D, 05, 05]
-A1A7; [96 7F, 05, 05]
+A085; [98 2F, 05, 05]
-A1A8; [96 81, 05, 05]
+A086; [98 31, 05, 05]
-A1A9; [96 83, 05, 05]
+A087; [98 33, 05, 05]
-A1AA; [96 85, 05, 05]
+A088; [98 35, 05, 05]
-A1AB; [96 87, 05, 05]
+A089; [98 37, 05, 05]
-A1AC; [96 89, 05, 05]
+A08A; [98 39, 05, 05]
-A1AD; [96 8B, 05, 05]
+A08B; [98 3B, 05, 05]
-A1AE; [96 8D, 05, 05]
+A08C; [98 3D, 05, 05]
-A1AF; [96 8F, 05, 05]
+A08D; [98 3F, 05, 05]
-A1B0; [96 91, 05, 05]
+A08E; [98 41, 05, 05]
-A1B1; [96 93, 05, 05]
+A08F; [98 43, 05, 05]
-A1B2; [96 95, 05, 05]
+A090; [98 45, 05, 05]
-A1B3; [96 97, 05, 05]
+A091; [98 47, 05, 05]
-A1B4; [96 99, 05, 05]
+A092; [98 49, 05, 05]
-A1B5; [96 9B, 05, 05]
+A093; [98 4B, 05, 05]
-A1B6; [96 9D, 05, 05]
+A094; [98 4D, 05, 05]
-A1B7; [96 9F, 05, 05]
+A095; [98 4F, 05, 05]
-A1B8; [96 A1, 05, 05]
+A096; [98 51, 05, 05]
-A1B9; [96 A3, 05, 05]
+A097; [98 53, 05, 05]
-A1BA; [96 A5, 05, 05]
+A098; [98 55, 05, 05]
-A1BB; [96 A7, 05, 05]
+A099; [98 57, 05, 05]
-A1BC; [96 A9, 05, 05]
+A09A; [98 59, 05, 05]
-A1BD; [96 AB, 05, 05]
+A09B; [98 5B, 05, 05]
-A1BE; [96 AD, 05, 05]
+A09C; [98 5D, 05, 05]
-A1BF; [96 AF, 05, 05]
+A09D; [98 5F, 05, 05]
-A1C0; [96 B1, 05, 05]
+A09E; [98 61, 05, 05]
-A1C1; [96 B3, 05, 05]
+A09F; [98 63, 05, 05]
-A1C2; [96 B5, 05, 05]
+A0A0; [98 65, 05, 05]
-A1C3; [96 B7, 05, 05]
+A0A1; [98 67, 05, 05]
-A1C4; [96 B9, 05, 05]
+A0A2; [98 69, 05, 05]
-A1C5; [96 BB, 05, 05]
+A0A3; [98 6B, 05, 05]
-A1C6; [96 BD, 05, 05]
+A0A4; [98 6D, 05, 05]
-A1C7; [96 BF, 05, 05]
+A0A5; [98 6F, 05, 05]
-A1C8; [96 C1, 05, 05]
+A0A6; [98 71, 05, 05]
-A1C9; [96 C3, 05, 05]
+A0A7; [98 73, 05, 05]
-A1CA; [96 C5, 05, 05]
+A0A8; [98 75, 05, 05]
-A1CB; [96 C7, 05, 05]
+A0A9; [98 77, 05, 05]
-A1CC; [96 C9, 05, 05]
+A0AA; [98 79, 05, 05]
-A1CD; [96 CB, 05, 05]
+A0AB; [98 7B, 05, 05]
-A1CE; [96 CD, 05, 05]
+A0AC; [98 7D, 05, 05]
-A1CF; [96 CF, 05, 05]
+A0AD; [98 7F, 05, 05]
-A1D0; [96 D1, 05, 05]
+A0AE; [98 81, 05, 05]
-A1D1; [96 D3, 05, 05]
+A0AF; [98 83, 05, 05]
-A1D2; [96 D5, 05, 05]
+A0B0; [98 85, 05, 05]
-A1D3; [96 D7, 05, 05]
+A0B1; [98 87, 05, 05]
-A1D4; [96 D9, 05, 05]
+A0B2; [98 89, 05, 05]
-A1D5; [96 DB, 05, 05]
+A0B3; [98 8B, 05, 05]
-A1D6; [96 DD, 05, 05]
+A0B4; [98 8D, 05, 05]
-A1D7; [96 DF, 05, 05]
+A0B5; [98 8F, 05, 05]
-A1D8; [96 E1, 05, 05]
+A0B6; [98 91, 05, 05]
-A1D9; [96 E3, 05, 05]
+A0B7; [98 93, 05, 05]
-A1DA; [96 E5, 05, 05]
+A0B8; [98 95, 05, 05]
-A1DB; [96 E7, 05, 05]
+A0B9; [98 97, 05, 05]
-A1DC; [96 E9, 05, 05]
+A0BA; [98 99, 05, 05]
-A1DD; [96 EB, 05, 05]
+A0BB; [98 9B, 05, 05]
-A1DE; [96 ED, 05, 05]
+A0BC; [98 9D, 05, 05]
-A1DF; [96 EF, 05, 05]
+A0BD; [98 9F, 05, 05]
-A1E0; [96 F1, 05, 05]
+A0BE; [98 A1, 05, 05]
-A1E1; [96 F3, 05, 05]
+A0BF; [98 A3, 05, 05]
-A1E2; [96 F5, 05, 05]
+A0C0; [98 A5, 05, 05]
-A1E3; [96 F7, 05, 05]
+A0C1; [98 A7, 05, 05]
-A1E4; [96 F9, 05, 05]
+A0C2; [98 A9, 05, 05]
-A1E5; [96 FB, 05, 05]
+A0C3; [98 AB, 05, 05]
-A1E6; [96 FD, 05, 05]
+A0C4; [98 AD, 05, 05]
-A1E7; [97 05, 05, 05]
+A0C5; [98 AF, 05, 05]
-A1E8; [97 07, 05, 05]
+A0C6; [98 B1, 05, 05]
-A1E9; [97 09, 05, 05]
+A0C7; [98 B3, 05, 05]
-A1EA; [97 0B, 05, 05]
+A0C8; [98 B5, 05, 05]
-A1EB; [97 0D, 05, 05]
+A0C9; [98 B7, 05, 05]
-A1EC; [97 0F, 05, 05]
+A0CA; [98 B9, 05, 05]
-A1ED; [97 11, 05, 05]
+A0CB; [98 BB, 05, 05]
-A1EE; [97 13, 05, 05]
+A0CC; [98 BD, 05, 05]
-A1EF; [97 15, 05, 05]
+A0CD; [98 BF, 05, 05]
-A1F0; [97 17, 05, 05]
+A0CE; [98 C1, 05, 05]
-A1F1; [97 19, 05, 05]
+A0CF; [98 C3, 05, 05]
-A1F2; [97 1B, 05, 05]
+A0D0; [98 C5, 05, 05]
-A1F3; [97 1D, 05, 05]
+A0D1; [98 C7, 05, 05]
-A1F4; [97 1F, 05, 05]
+A0D2; [98 C9, 05, 05]
-A1F5; [97 21, 05, 05]
+A0D3; [98 CB, 05, 05]
-A1F6; [97 23, 05, 05]
+A0D4; [98 CD, 05, 05]
-A1F7; [97 25, 05, 05]
+A0D5; [98 CF, 05, 05]
-A1F8; [97 27, 05, 05]
+A0D6; [98 D1, 05, 05]
-A1F9; [97 29, 05, 05]
+A0D7; [98 D3, 05, 05]
-A1FA; [97 2B, 05, 05]
+A0D8; [98 D5, 05, 05]
-A1FB; [97 2D, 05, 05]
+A0D9; [98 D7, 05, 05]
-A1FC; [97 2F, 05, 05]
+A0DA; [98 D9, 05, 05]
-A1FD; [97 31, 05, 05]
+A0DB; [98 DB, 05, 05]
-A1FE; [97 33, 05, 05]
+A0DC; [98 DD, 05, 05]
-A1FF; [97 35, 05, 05]
+A0DD; [98 DF, 05, 05]
-A200; [97 37, 05, 05]
+A0DE; [98 E1, 05, 05]
-A201; [97 39, 05, 05]
+A0DF; [98 E3, 05, 05]
-A202; [97 3B, 05, 05]
+A0E0; [98 E5, 05, 05]
-A203; [97 3D, 05, 05]
+A0E1; [98 E7, 05, 05]
-A204; [97 3F, 05, 05]
+A0E2; [98 E9, 05, 05]
-A205; [97 41, 05, 05]
+A0E3; [98 EB, 05, 05]
-A206; [97 43, 05, 05]
+A0E4; [98 ED, 05, 05]
-A207; [97 45, 05, 05]
+A0E5; [98 EF, 05, 05]
-A208; [97 47, 05, 05]
+A0E6; [98 F1, 05, 05]
-A209; [97 49, 05, 05]
+A0E7; [98 F3, 05, 05]
-A20A; [97 4B, 05, 05]
+A0E8; [98 F5, 05, 05]
-A20B; [97 4D, 05, 05]
+A0E9; [98 F7, 05, 05]
-A20C; [97 4F, 05, 05]
+A0EA; [98 F9, 05, 05]
-A20D; [97 51, 05, 05]
+A0EB; [98 FB, 05, 05]
-A20E; [97 53, 05, 05]
+A0EC; [98 FD, 05, 05]
-A20F; [97 55, 05, 05]
+A0ED; [99 05, 05, 05]
-A210; [97 57, 05, 05]
+A0EE; [99 07, 05, 05]
-A211; [97 59, 05, 05]
+A0EF; [99 09, 05, 05]
-A212; [97 5B, 05, 05]
+A0F0; [99 0B, 05, 05]
-A213; [97 5D, 05, 05]
+A0F1; [99 0D, 05, 05]
-A214; [97 5F, 05, 05]
+A0F2; [99 0F, 05, 05]
-A215; [97 61, 05, 05]
+A0F3; [99 11, 05, 05]
-A216; [97 63, 05, 05]
+A0F4; [99 13, 05, 05]
-A217; [97 65, 05, 05]
+A0F5; [99 15, 05, 05]
-A218; [97 67, 05, 05]
+A0F6; [99 17, 05, 05]
-A219; [97 69, 05, 05]
+A0F7; [99 19, 05, 05]
-A21A; [97 6B, 05, 05]
+A0F8; [99 1B, 05, 05]
-A21B; [97 6D, 05, 05]
+A0F9; [99 1D, 05, 05]
-A21C; [97 6F, 05, 05]
+A0FA; [99 1F, 05, 05]
-A21D; [97 71, 05, 05]
+A0FB; [99 21, 05, 05]
-A21E; [97 73, 05, 05]
+A0FC; [99 23, 05, 05]
-A21F; [97 75, 05, 05]
+A0FD; [99 25, 05, 05]
-A220; [97 77, 05, 05]
+A0FE; [99 27, 05, 05]
-A221; [97 79, 05, 05]
+A0FF; [99 29, 05, 05]
-A222; [97 7B, 05, 05]
+A100; [99 2B, 05, 05]
-A223; [97 7D, 05, 05]
+A101; [99 2D, 05, 05]
-A224; [97 7F, 05, 05]
+A102; [99 2F, 05, 05]
-A225; [97 81, 05, 05]
+A103; [99 31, 05, 05]
-A226; [97 83, 05, 05]
+A104; [99 33, 05, 05]
-A227; [97 85, 05, 05]
+A105; [99 35, 05, 05]
-A228; [97 87, 05, 05]
+A106; [99 37, 05, 05]
-A229; [97 89, 05, 05]
+A107; [99 39, 05, 05]
-A22A; [97 8B, 05, 05]
+A108; [99 3B, 05, 05]
-A22B; [97 8D, 05, 05]
+A109; [99 3D, 05, 05]
-A22C; [97 8F, 05, 05]
+A10A; [99 3F, 05, 05]
-A22D; [97 91, 05, 05]
+A10B; [99 41, 05, 05]
-A22E; [97 93, 05, 05]
+A10C; [99 43, 05, 05]
-A22F; [97 95, 05, 05]
+A10D; [99 45, 05, 05]
-A230; [97 97, 05, 05]
+A10E; [99 47, 05, 05]
-A231; [97 99, 05, 05]
+A10F; [99 49, 05, 05]
-A232; [97 9B, 05, 05]
+A110; [99 4B, 05, 05]
-A233; [97 9D, 05, 05]
+A111; [99 4D, 05, 05]
-A234; [97 9F, 05, 05]
+A112; [99 4F, 05, 05]
-A235; [97 A1, 05, 05]
+A113; [99 51, 05, 05]
-A236; [97 A3, 05, 05]
+A114; [99 53, 05, 05]
-A237; [97 A5, 05, 05]
+A115; [99 55, 05, 05]
-A238; [97 A7, 05, 05]
+A116; [99 57, 05, 05]
-A239; [97 A9, 05, 05]
+A117; [99 59, 05, 05]
-A23A; [97 AB, 05, 05]
+A118; [99 5B, 05, 05]
-A23B; [97 AD, 05, 05]
+A119; [99 5D, 05, 05]
-A23C; [97 AF, 05, 05]
+A11A; [99 5F, 05, 05]
-A23D; [97 B1, 05, 05]
+A11B; [99 61, 05, 05]
-A23E; [97 B3, 05, 05]
+A11C; [99 63, 05, 05]
-A23F; [97 B5, 05, 05]
+A11D; [99 65, 05, 05]
-A240; [97 B7, 05, 05]
+A11E; [99 67, 05, 05]
-A241; [97 B9, 05, 05]
+A11F; [99 69, 05, 05]
-A242; [97 BB, 05, 05]
+A120; [99 6B, 05, 05]
-A243; [97 BD, 05, 05]
+A121; [99 6D, 05, 05]
-A244; [97 BF, 05, 05]
+A122; [99 6F, 05, 05]
-A245; [97 C1, 05, 05]
+A123; [99 71, 05, 05]
-A246; [97 C3, 05, 05]
+A124; [99 73, 05, 05]
-A247; [97 C5, 05, 05]
+A125; [99 75, 05, 05]
-A248; [97 C7, 05, 05]
+A126; [99 77, 05, 05]
-A249; [97 C9, 05, 05]
+A127; [99 79, 05, 05]
-A24A; [97 CB, 05, 05]
+A128; [99 7B, 05, 05]
-A24B; [97 CD, 05, 05]
+A129; [99 7D, 05, 05]
-A24C; [97 CF, 05, 05]
+A12A; [99 7F, 05, 05]
-A24D; [97 D1, 05, 05]
+A12B; [99 81, 05, 05]
-A24E; [97 D3, 05, 05]
+A12C; [99 83, 05, 05]
-A24F; [97 D5, 05, 05]
+A12D; [99 85, 05, 05]
-A250; [97 D7, 05, 05]
+A12E; [99 87, 05, 05]
-A251; [97 D9, 05, 05]
+A12F; [99 89, 05, 05]
-A252; [97 DB, 05, 05]
+A130; [99 8B, 05, 05]
-A253; [97 DD, 05, 05]
+A131; [99 8D, 05, 05]
-A254; [97 DF, 05, 05]
+A132; [99 8F, 05, 05]
-A255; [97 E1, 05, 05]
+A133; [99 91, 05, 05]
-A256; [97 E3, 05, 05]
+A134; [99 93, 05, 05]
-A257; [97 E5, 05, 05]
+A135; [99 95, 05, 05]
-A258; [97 E7, 05, 05]
+A136; [99 97, 05, 05]
-A259; [97 E9, 05, 05]
+A137; [99 99, 05, 05]
-A25A; [97 EB, 05, 05]
+A138; [99 9B, 05, 05]
-A25B; [97 ED, 05, 05]
+A139; [99 9D, 05, 05]
-A25C; [97 EF, 05, 05]
+A13A; [99 9F, 05, 05]
-A25D; [97 F1, 05, 05]
+A13B; [99 A1, 05, 05]
-A25E; [97 F3, 05, 05]
+A13C; [99 A3, 05, 05]
-A25F; [97 F5, 05, 05]
+A13D; [99 A5, 05, 05]
-A260; [97 F7, 05, 05]
+A13E; [99 A7, 05, 05]
-A261; [97 F9, 05, 05]
+A13F; [99 A9, 05, 05]
-A262; [97 FB, 05, 05]
+A140; [99 AB, 05, 05]
-A263; [97 FD, 05, 05]
+A141; [99 AD, 05, 05]
-A264; [98 05, 05, 05]
+A142; [99 AF, 05, 05]
-A265; [98 07, 05, 05]
+A143; [99 B1, 05, 05]
-A266; [98 09, 05, 05]
+A144; [99 B3, 05, 05]
-A267; [98 0B, 05, 05]
+A145; [99 B5, 05, 05]
-A268; [98 0D, 05, 05]
+A146; [99 B7, 05, 05]
-A269; [98 0F, 05, 05]
+A147; [99 B9, 05, 05]
-A26A; [98 11, 05, 05]
+A148; [99 BB, 05, 05]
-A26B; [98 13, 05, 05]
+A149; [99 BD, 05, 05]
-A26C; [98 15, 05, 05]
+A14A; [99 BF, 05, 05]
-A26D; [98 17, 05, 05]
+A14B; [99 C1, 05, 05]
-A26E; [98 19, 05, 05]
+A14C; [99 C3, 05, 05]
-A26F; [98 1B, 05, 05]
+A14D; [99 C5, 05, 05]
-A270; [98 1D, 05, 05]
+A14E; [99 C7, 05, 05]
-A271; [98 1F, 05, 05]
+A14F; [99 C9, 05, 05]
-A272; [98 21, 05, 05]
+A150; [99 CB, 05, 05]
-A273; [98 23, 05, 05]
+A151; [99 CD, 05, 05]
-A274; [98 25, 05, 05]
+A152; [99 CF, 05, 05]
-A275; [98 27, 05, 05]
+A153; [99 D1, 05, 05]
-A276; [98 29, 05, 05]
+A154; [99 D3, 05, 05]
-A277; [98 2B, 05, 05]
+A155; [99 D5, 05, 05]
-A278; [98 2D, 05, 05]
+A156; [99 D7, 05, 05]
-A279; [98 2F, 05, 05]
+A157; [99 D9, 05, 05]
-A27A; [98 31, 05, 05]
+A158; [99 DB, 05, 05]
-A27B; [98 33, 05, 05]
+A159; [99 DD, 05, 05]
-A27C; [98 35, 05, 05]
+A15A; [99 DF, 05, 05]
-A27D; [98 37, 05, 05]
+A15B; [99 E1, 05, 05]
-A27E; [98 39, 05, 05]
+A15C; [99 E3, 05, 05]
-A27F; [98 3B, 05, 05]
+A15D; [99 E5, 05, 05]
-A280; [98 3D, 05, 05]
+A15E; [99 E7, 05, 05]
-A281; [98 3F, 05, 05]
+A15F; [99 E9, 05, 05]
-A282; [98 41, 05, 05]
+A160; [99 EB, 05, 05]
-A283; [98 43, 05, 05]
+A161; [99 ED, 05, 05]
-A284; [98 45, 05, 05]
+A162; [99 EF, 05, 05]
-A285; [98 47, 05, 05]
+A163; [99 F1, 05, 05]
-A286; [98 49, 05, 05]
+A164; [99 F3, 05, 05]
-A287; [98 4B, 05, 05]
+A165; [99 F5, 05, 05]
-A288; [98 4D, 05, 05]
+A166; [99 F7, 05, 05]
-A289; [98 4F, 05, 05]
+A167; [99 F9, 05, 05]
-A28A; [98 51, 05, 05]
+A168; [99 FB, 05, 05]
-A28B; [98 53, 05, 05]
+A169; [99 FD, 05, 05]
-A28C; [98 55, 05, 05]
+A16A; [9A 05, 05, 05]
-A28D; [98 57, 05, 05]
+A16B; [9A 07, 05, 05]
-A28E; [98 59, 05, 05]
+A16C; [9A 09, 05, 05]
-A28F; [98 5B, 05, 05]
+A16D; [9A 0B, 05, 05]
-A290; [98 5D, 05, 05]
+A16E; [9A 0D, 05, 05]
-A291; [98 5F, 05, 05]
+A16F; [9A 0F, 05, 05]
-A292; [98 61, 05, 05]
+A170; [9A 11, 05, 05]
-A293; [98 63, 05, 05]
+A171; [9A 13, 05, 05]
-A294; [98 65, 05, 05]
+A172; [9A 15, 05, 05]
-A295; [98 67, 05, 05]
+A173; [9A 17, 05, 05]
-A296; [98 69, 05, 05]
+A174; [9A 19, 05, 05]
-A297; [98 6B, 05, 05]
+A175; [9A 1B, 05, 05]
-A298; [98 6D, 05, 05]
+A176; [9A 1D, 05, 05]
-A299; [98 6F, 05, 05]
+A177; [9A 1F, 05, 05]
-A29A; [98 71, 05, 05]
+A178; [9A 21, 05, 05]
-A29B; [98 73, 05, 05]
+A179; [9A 23, 05, 05]
-A29C; [98 75, 05, 05]
+A17A; [9A 25, 05, 05]
-A29D; [98 77, 05, 05]
+A17B; [9A 27, 05, 05]
-A29E; [98 79, 05, 05]
+A17C; [9A 29, 05, 05]
-A29F; [98 7B, 05, 05]
+A17D; [9A 2B, 05, 05]
-A2A0; [98 7D, 05, 05]
+A17E; [9A 2D, 05, 05]
-A2A1; [98 7F, 05, 05]
+A17F; [9A 2F, 05, 05]
-A2A2; [98 81, 05, 05]
+A180; [9A 31, 05, 05]
-A2A3; [98 83, 05, 05]
+A181; [9A 33, 05, 05]
-A2A4; [98 85, 05, 05]
+A182; [9A 35, 05, 05]
-A2A5; [98 87, 05, 05]
+A183; [9A 37, 05, 05]
-A2A6; [98 89, 05, 05]
+A184; [9A 39, 05, 05]
-A2A7; [98 8B, 05, 05]
+A185; [9A 3B, 05, 05]
-A2A8; [98 8D, 05, 05]
+A186; [9A 3D, 05, 05]
-A2A9; [98 8F, 05, 05]
+A187; [9A 3F, 05, 05]
-A2AA; [98 91, 05, 05]
+A188; [9A 41, 05, 05]
-A2AB; [98 93, 05, 05]
+A189; [9A 43, 05, 05]
-A2AC; [98 95, 05, 05]
+A18A; [9A 45, 05, 05]
-A2AD; [98 97, 05, 05]
+A18B; [9A 47, 05, 05]
-A2AE; [98 99, 05, 05]
+A18C; [9A 49, 05, 05]
-A2AF; [98 9B, 05, 05]
+A18D; [9A 4B, 05, 05]
-A2B0; [98 9D, 05, 05]
+A18E; [9A 4D, 05, 05]
-A2B1; [98 9F, 05, 05]
+A18F; [9A 4F, 05, 05]
-A2B2; [98 A1, 05, 05]
+A190; [9A 51, 05, 05]
-A2B3; [98 A3, 05, 05]
+A191; [9A 53, 05, 05]
-A2B4; [98 A5, 05, 05]
+A192; [9A 55, 05, 05]
-A2B5; [98 A7, 05, 05]
+A193; [9A 57, 05, 05]
-A2B6; [98 A9, 05, 05]
+A194; [9A 59, 05, 05]
-A2B7; [98 AB, 05, 05]
+A195; [9A 5B, 05, 05]
-A2B8; [98 AD, 05, 05]
+A196; [9A 5D, 05, 05]
-A2B9; [98 AF, 05, 05]
+A197; [9A 5F, 05, 05]
-A2BA; [98 B1, 05, 05]
+A198; [9A 61, 05, 05]
-A2BB; [98 B3, 05, 05]
+A199; [9A 63, 05, 05]
-A2BC; [98 B5, 05, 05]
+A19A; [9A 65, 05, 05]
-A2BD; [98 B7, 05, 05]
+A19B; [9A 67, 05, 05]
-A2BE; [98 B9, 05, 05]
+A19C; [9A 69, 05, 05]
-A2BF; [98 BB, 05, 05]
+A19D; [9A 6B, 05, 05]
-A2C0; [98 BD, 05, 05]
+A19E; [9A 6D, 05, 05]
-A2C1; [98 BF, 05, 05]
+A19F; [9A 6F, 05, 05]
-A2C2; [98 C1, 05, 05]
+A1A0; [9A 71, 05, 05]
-A2C3; [98 C3, 05, 05]
+A1A1; [9A 73, 05, 05]
-A2C4; [98 C5, 05, 05]
+A1A2; [9A 75, 05, 05]
-A2C5; [98 C7, 05, 05]
+A1A3; [9A 77, 05, 05]
-A2C6; [98 C9, 05, 05]
+A1A4; [9A 79, 05, 05]
-A2C7; [98 CB, 05, 05]
+A1A5; [9A 7B, 05, 05]
-A2C8; [98 CD, 05, 05]
+A1A6; [9A 7D, 05, 05]
-A2C9; [98 CF, 05, 05]
+A1A7; [9A 7F, 05, 05]
-A2CA; [98 D1, 05, 05]
+A1A8; [9A 81, 05, 05]
-A2CB; [98 D3, 05, 05]
+A1A9; [9A 83, 05, 05]
-A2CC; [98 D5, 05, 05]
+A1AA; [9A 85, 05, 05]
-A2CD; [98 D7, 05, 05]
+A1AB; [9A 87, 05, 05]
-A2CE; [98 D9, 05, 05]
+A1AC; [9A 89, 05, 05]
-A2CF; [98 DB, 05, 05]
+A1AD; [9A 8B, 05, 05]
-A2D0; [98 DD, 05, 05]
+A1AE; [9A 8D, 05, 05]
-A2D1; [98 DF, 05, 05]
+A1AF; [9A 8F, 05, 05]
-A2D2; [98 E1, 05, 05]
+A1B0; [9A 91, 05, 05]
-A2D3; [98 E3, 05, 05]
+A1B1; [9A 93, 05, 05]
-A2D4; [98 E5, 05, 05]
+A1B2; [9A 95, 05, 05]
-A2D5; [98 E7, 05, 05]
+A1B3; [9A 97, 05, 05]
-A2D6; [98 E9, 05, 05]
+A1B4; [9A 99, 05, 05]
-A2D7; [98 EB, 05, 05]
+A1B5; [9A 9B, 05, 05]
-A2D8; [98 ED, 05, 05]
+A1B6; [9A 9D, 05, 05]
-A2D9; [98 EF, 05, 05]
+A1B7; [9A 9F, 05, 05]
-A2DA; [98 F1, 05, 05]
+A1B8; [9A A1, 05, 05]
-A2DB; [98 F3, 05, 05]
+A1B9; [9A A3, 05, 05]
-A2DC; [98 F5, 05, 05]
+A1BA; [9A A5, 05, 05]
-A2DD; [98 F7, 05, 05]
+A1BB; [9A A7, 05, 05]
-A2DE; [98 F9, 05, 05]
+A1BC; [9A A9, 05, 05]
-A2DF; [98 FB, 05, 05]
+A1BD; [9A AB, 05, 05]
-A2E0; [98 FD, 05, 05]
+A1BE; [9A AD, 05, 05]
-A2E1; [99 05, 05, 05]
+A1BF; [9A AF, 05, 05]
-A2E2; [99 07, 05, 05]
+A1C0; [9A B1, 05, 05]
-A2E3; [99 09, 05, 05]
+A1C1; [9A B3, 05, 05]
-A2E4; [99 0B, 05, 05]
+A1C2; [9A B5, 05, 05]
-A2E5; [99 0D, 05, 05]
+A1C3; [9A B7, 05, 05]
-A2E6; [99 0F, 05, 05]
+A1C4; [9A B9, 05, 05]
-A2E7; [99 11, 05, 05]
+A1C5; [9A BB, 05, 05]
-A2E8; [99 13, 05, 05]
+A1C6; [9A BD, 05, 05]
-A2E9; [99 15, 05, 05]
+A1C7; [9A BF, 05, 05]
-A2EA; [99 17, 05, 05]
+A1C8; [9A C1, 05, 05]
-A2EB; [99 19, 05, 05]
+A1C9; [9A C3, 05, 05]
-A2EC; [99 1B, 05, 05]
+A1CA; [9A C5, 05, 05]
-A2ED; [99 1D, 05, 05]
+A1CB; [9A C7, 05, 05]
-A2EE; [99 1F, 05, 05]
+A1CC; [9A C9, 05, 05]
-A2EF; [99 21, 05, 05]
+A1CD; [9A CB, 05, 05]
-A2F0; [99 23, 05, 05]
+A1CE; [9A CD, 05, 05]
-A2F1; [99 25, 05, 05]
+A1CF; [9A CF, 05, 05]
-A2F2; [99 27, 05, 05]
+A1D0; [9A D1, 05, 05]
-A2F3; [99 29, 05, 05]
+A1D1; [9A D3, 05, 05]
-A2F4; [99 2B, 05, 05]
+A1D2; [9A D5, 05, 05]
-A2F5; [99 2D, 05, 05]
+A1D3; [9A D7, 05, 05]
-A2F6; [99 2F, 05, 05]
+A1D4; [9A D9, 05, 05]
-A2F7; [99 31, 05, 05]
+A1D5; [9A DB, 05, 05]
-A2F8; [99 33, 05, 05]
+A1D6; [9A DD, 05, 05]
-A2F9; [99 35, 05, 05]
+A1D7; [9A DF, 05, 05]
-A2FA; [99 37, 05, 05]
+A1D8; [9A E1, 05, 05]
-A2FB; [99 39, 05, 05]
+A1D9; [9A E3, 05, 05]
-A2FC; [99 3B, 05, 05]
+A1DA; [9A E5, 05, 05]
-A2FD; [99 3D, 05, 05]
+A1DB; [9A E7, 05, 05]
-A2FE; [99 3F, 05, 05]
+A1DC; [9A E9, 05, 05]
-A2FF; [99 41, 05, 05]
+A1DD; [9A EB, 05, 05]
-A300; [99 43, 05, 05]
+A1DE; [9A ED, 05, 05]
-A301; [99 45, 05, 05]
+A1DF; [9A EF, 05, 05]
-A302; [99 47, 05, 05]
+A1E0; [9A F1, 05, 05]
-A303; [99 49, 05, 05]
+A1E1; [9A F3, 05, 05]
-A304; [99 4B, 05, 05]
+A1E2; [9A F5, 05, 05]
-A305; [99 4D, 05, 05]
+A1E3; [9A F7, 05, 05]
-A306; [99 4F, 05, 05]
+A1E4; [9A F9, 05, 05]
-A307; [99 51, 05, 05]
+A1E5; [9A FB, 05, 05]
-A308; [99 53, 05, 05]
+A1E6; [9A FD, 05, 05]
-A309; [99 55, 05, 05]
+A1E7; [9B 05, 05, 05]
-A30A; [99 57, 05, 05]
+A1E8; [9B 07, 05, 05]
-A30B; [99 59, 05, 05]
+A1E9; [9B 09, 05, 05]
-A30C; [99 5B, 05, 05]
+A1EA; [9B 0B, 05, 05]
-A30D; [99 5D, 05, 05]
+A1EB; [9B 0D, 05, 05]
-A30E; [99 5F, 05, 05]
+A1EC; [9B 0F, 05, 05]
-A30F; [99 61, 05, 05]
+A1ED; [9B 11, 05, 05]
-A310; [99 63, 05, 05]
+A1EE; [9B 13, 05, 05]
-A311; [99 65, 05, 05]
+A1EF; [9B 15, 05, 05]
-A312; [99 67, 05, 05]
+A1F0; [9B 17, 05, 05]
-A313; [99 69, 05, 05]
+A1F1; [9B 19, 05, 05]
-A314; [99 6B, 05, 05]
+A1F2; [9B 1B, 05, 05]
-A315; [99 6D, 05, 05]
+A1F3; [9B 1D, 05, 05]
-A316; [99 6F, 05, 05]
+A1F4; [9B 1F, 05, 05]
-A317; [99 71, 05, 05]
+A1F5; [9B 21, 05, 05]
-A318; [99 73, 05, 05]
+A1F6; [9B 23, 05, 05]
-A319; [99 75, 05, 05]
+A1F7; [9B 25, 05, 05]
-A31A; [99 77, 05, 05]
+A1F8; [9B 27, 05, 05]
-A31B; [99 79, 05, 05]
+A1F9; [9B 29, 05, 05]
-A31C; [99 7B, 05, 05]
+A1FA; [9B 2B, 05, 05]
-A31D; [99 7D, 05, 05]
+A1FB; [9B 2D, 05, 05]
-A31E; [99 7F, 05, 05]
+A1FC; [9B 2F, 05, 05]
-A31F; [99 81, 05, 05]
+A1FD; [9B 31, 05, 05]
-A320; [99 83, 05, 05]
+A1FE; [9B 33, 05, 05]
-A321; [99 85, 05, 05]
+A1FF; [9B 35, 05, 05]
-A322; [99 87, 05, 05]
+A200; [9B 37, 05, 05]
-A323; [99 89, 05, 05]
+A201; [9B 39, 05, 05]
-A324; [99 8B, 05, 05]
+A202; [9B 3B, 05, 05]
-A325; [99 8D, 05, 05]
+A203; [9B 3D, 05, 05]
-A326; [99 8F, 05, 05]
+A204; [9B 3F, 05, 05]
-A327; [99 91, 05, 05]
+A205; [9B 41, 05, 05]
-A328; [99 93, 05, 05]
+A206; [9B 43, 05, 05]
-A329; [99 95, 05, 05]
+A207; [9B 45, 05, 05]
-A32A; [99 97, 05, 05]
+A208; [9B 47, 05, 05]
-A32B; [99 99, 05, 05]
+A209; [9B 49, 05, 05]
-A32C; [99 9B, 05, 05]
+A20A; [9B 4B, 05, 05]
-A32D; [99 9D, 05, 05]
+A20B; [9B 4D, 05, 05]
-A32E; [99 9F, 05, 05]
+A20C; [9B 4F, 05, 05]
-A32F; [99 A1, 05, 05]
+A20D; [9B 51, 05, 05]
-A330; [99 A3, 05, 05]
+A20E; [9B 53, 05, 05]
-A331; [99 A5, 05, 05]
+A20F; [9B 55, 05, 05]
-A332; [99 A7, 05, 05]
+A210; [9B 57, 05, 05]
-A333; [99 A9, 05, 05]
+A211; [9B 59, 05, 05]
-A334; [99 AB, 05, 05]
+A212; [9B 5B, 05, 05]
-A335; [99 AD, 05, 05]
+A213; [9B 5D, 05, 05]
-A336; [99 AF, 05, 05]
+A214; [9B 5F, 05, 05]
-A337; [99 B1, 05, 05]
+A215; [9B 61, 05, 05]
-A338; [99 B3, 05, 05]
+A216; [9B 63, 05, 05]
-A339; [99 B5, 05, 05]
+A217; [9B 65, 05, 05]
-A33A; [99 B7, 05, 05]
+A218; [9B 67, 05, 05]
-A33B; [99 B9, 05, 05]
+A219; [9B 69, 05, 05]
-A33C; [99 BB, 05, 05]
+A21A; [9B 6B, 05, 05]
-A33D; [99 BD, 05, 05]
+A21B; [9B 6D, 05, 05]
-A33E; [99 BF, 05, 05]
+A21C; [9B 6F, 05, 05]
-A33F; [99 C1, 05, 05]
+A21D; [9B 71, 05, 05]
-A340; [99 C3, 05, 05]
+A21E; [9B 73, 05, 05]
-A341; [99 C5, 05, 05]
+A21F; [9B 75, 05, 05]
-A342; [99 C7, 05, 05]
+A220; [9B 77, 05, 05]
-A343; [99 C9, 05, 05]
+A221; [9B 79, 05, 05]
-A344; [99 CB, 05, 05]
+A222; [9B 7B, 05, 05]
-A345; [99 CD, 05, 05]
+A223; [9B 7D, 05, 05]
-A346; [99 CF, 05, 05]
+A224; [9B 7F, 05, 05]
-A347; [99 D1, 05, 05]
+A225; [9B 81, 05, 05]
-A348; [99 D3, 05, 05]
+A226; [9B 83, 05, 05]
-A349; [99 D5, 05, 05]
+A227; [9B 85, 05, 05]
-A34A; [99 D7, 05, 05]
+A228; [9B 87, 05, 05]
-A34B; [99 D9, 05, 05]
+A229; [9B 89, 05, 05]
-A34C; [99 DB, 05, 05]
+A22A; [9B 8B, 05, 05]
-A34D; [99 DD, 05, 05]
+A22B; [9B 8D, 05, 05]
-A34E; [99 DF, 05, 05]
+A22C; [9B 8F, 05, 05]
-A34F; [99 E1, 05, 05]
+A22D; [9B 91, 05, 05]
-A350; [99 E3, 05, 05]
+A22E; [9B 93, 05, 05]
-A351; [99 E5, 05, 05]
+A22F; [9B 95, 05, 05]
-A352; [99 E7, 05, 05]
+A230; [9B 97, 05, 05]
-A353; [99 E9, 05, 05]
+A231; [9B 99, 05, 05]
-A354; [99 EB, 05, 05]
+A232; [9B 9B, 05, 05]
-A355; [99 ED, 05, 05]
+A233; [9B 9D, 05, 05]
-A356; [99 EF, 05, 05]
+A234; [9B 9F, 05, 05]
-A357; [99 F1, 05, 05]
+A235; [9B A1, 05, 05]
-A358; [99 F3, 05, 05]
+A236; [9B A3, 05, 05]
-A359; [99 F5, 05, 05]
+A237; [9B A5, 05, 05]
-A35A; [99 F7, 05, 05]
+A238; [9B A7, 05, 05]
-A35B; [99 F9, 05, 05]
+A239; [9B A9, 05, 05]
-A35C; [99 FB, 05, 05]
+A23A; [9B AB, 05, 05]
-A35D; [99 FD, 05, 05]
+A23B; [9B AD, 05, 05]
-A35E; [9A 05, 05, 05]
+A23C; [9B AF, 05, 05]
-A35F; [9A 07, 05, 05]
+A23D; [9B B1, 05, 05]
-A360; [9A 09, 05, 05]
+A23E; [9B B3, 05, 05]
-A361; [9A 0B, 05, 05]
+A23F; [9B B5, 05, 05]
-A362; [9A 0D, 05, 05]
+A240; [9B B7, 05, 05]
-A363; [9A 0F, 05, 05]
+A241; [9B B9, 05, 05]
-A364; [9A 11, 05, 05]
+A242; [9B BB, 05, 05]
-A365; [9A 13, 05, 05]
+A243; [9B BD, 05, 05]
-A366; [9A 15, 05, 05]
+A244; [9B BF, 05, 05]
-A367; [9A 17, 05, 05]
+A245; [9B C1, 05, 05]
-A368; [9A 19, 05, 05]
+A246; [9B C3, 05, 05]
-A369; [9A 1B, 05, 05]
+A247; [9B C5, 05, 05]
-A36A; [9A 1D, 05, 05]
+A248; [9B C7, 05, 05]
-A36B; [9A 1F, 05, 05]
+A249; [9B C9, 05, 05]
-A36C; [9A 21, 05, 05]
+A24A; [9B CB, 05, 05]
-A36D; [9A 23, 05, 05]
+A24B; [9B CD, 05, 05]
-A36E; [9A 25, 05, 05]
+A24C; [9B CF, 05, 05]
-A36F; [9A 27, 05, 05]
+A24D; [9B D1, 05, 05]
-A370; [9A 29, 05, 05]
+A24E; [9B D3, 05, 05]
-A371; [9A 2B, 05, 05]
+A24F; [9B D5, 05, 05]
-A372; [9A 2D, 05, 05]
+A250; [9B D7, 05, 05]
-A373; [9A 2F, 05, 05]
+A251; [9B D9, 05, 05]
-A374; [9A 31, 05, 05]
+A252; [9B DB, 05, 05]
-A375; [9A 33, 05, 05]
+A253; [9B DD, 05, 05]
-A376; [9A 35, 05, 05]
+A254; [9B DF, 05, 05]
-A377; [9A 37, 05, 05]
+A255; [9B E1, 05, 05]
-A378; [9A 39, 05, 05]
+A256; [9B E3, 05, 05]
-A379; [9A 3B, 05, 05]
+A257; [9B E5, 05, 05]
-A37A; [9A 3D, 05, 05]
+A258; [9B E7, 05, 05]
-A37B; [9A 3F, 05, 05]
+A259; [9B E9, 05, 05]
-A37C; [9A 41, 05, 05]
+A25A; [9B EB, 05, 05]
-A37D; [9A 43, 05, 05]
+A25B; [9B ED, 05, 05]
-A37E; [9A 45, 05, 05]
+A25C; [9B EF, 05, 05]
-A37F; [9A 47, 05, 05]
+A25D; [9B F1, 05, 05]
-A380; [9A 49, 05, 05]
+A25E; [9B F3, 05, 05]
-A381; [9A 4B, 05, 05]
+A25F; [9B F5, 05, 05]
-A382; [9A 4D, 05, 05]
+A260; [9B F7, 05, 05]
-A383; [9A 4F, 05, 05]
+A261; [9B F9, 05, 05]
-A384; [9A 51, 05, 05]
+A262; [9B FB, 05, 05]
-A385; [9A 53, 05, 05]
+A263; [9B FD, 05, 05]
-A386; [9A 55, 05, 05]
+A264; [9C 05, 05, 05]
-A387; [9A 57, 05, 05]
+A265; [9C 07, 05, 05]
-A388; [9A 59, 05, 05]
+A266; [9C 09, 05, 05]
-A389; [9A 5B, 05, 05]
+A267; [9C 0B, 05, 05]
-A38A; [9A 5D, 05, 05]
+A268; [9C 0D, 05, 05]
-A38B; [9A 5F, 05, 05]
+A269; [9C 0F, 05, 05]
-A38C; [9A 61, 05, 05]
+A26A; [9C 11, 05, 05]
-A38D; [9A 63, 05, 05]
+A26B; [9C 13, 05, 05]
-A38E; [9A 65, 05, 05]
+A26C; [9C 15, 05, 05]
-A38F; [9A 67, 05, 05]
+A26D; [9C 17, 05, 05]
-A390; [9A 69, 05, 05]
+A26E; [9C 19, 05, 05]
-A391; [9A 6B, 05, 05]
+A26F; [9C 1B, 05, 05]
-A392; [9A 6D, 05, 05]
+A270; [9C 1D, 05, 05]
-A393; [9A 6F, 05, 05]
+A271; [9C 1F, 05, 05]
-A394; [9A 71, 05, 05]
+A272; [9C 21, 05, 05]
-A395; [9A 73, 05, 05]
+A273; [9C 23, 05, 05]
-A396; [9A 75, 05, 05]
+A274; [9C 25, 05, 05]
-A397; [9A 77, 05, 05]
+A275; [9C 27, 05, 05]
-A398; [9A 79, 05, 05]
+A276; [9C 29, 05, 05]
-A399; [9A 7B, 05, 05]
+A277; [9C 2B, 05, 05]
-A39A; [9A 7D, 05, 05]
+A278; [9C 2D, 05, 05]
-A39B; [9A 7F, 05, 05]
+A279; [9C 2F, 05, 05]
-A39C; [9A 81, 05, 05]
+A27A; [9C 31, 05, 05]
-A39D; [9A 83, 05, 05]
+A27B; [9C 33, 05, 05]
-A39E; [9A 85, 05, 05]
+A27C; [9C 35, 05, 05]
-A39F; [9A 87, 05, 05]
+A27D; [9C 37, 05, 05]
-A3A0; [9A 89, 05, 05]
+A27E; [9C 39, 05, 05]
-A3A1; [9A 8B, 05, 05]
+A27F; [9C 3B, 05, 05]
-A3A2; [9A 8D, 05, 05]
+A280; [9C 3D, 05, 05]
-A3A3; [9A 8F, 05, 05]
+A281; [9C 3F, 05, 05]
-A3A4; [9A 91, 05, 05]
+A282; [9C 41, 05, 05]
-A3A5; [9A 93, 05, 05]
+A283; [9C 43, 05, 05]
-A3A6; [9A 95, 05, 05]
+A284; [9C 45, 05, 05]
-A3A7; [9A 97, 05, 05]
+A285; [9C 47, 05, 05]
-A3A8; [9A 99, 05, 05]
+A286; [9C 49, 05, 05]
-A3A9; [9A 9B, 05, 05]
+A287; [9C 4B, 05, 05]
-A3AA; [9A 9D, 05, 05]
+A288; [9C 4D, 05, 05]
-A3AB; [9A 9F, 05, 05]
+A289; [9C 4F, 05, 05]
-A3AC; [9A A1, 05, 05]
+A28A; [9C 51, 05, 05]
-A3AD; [9A A3, 05, 05]
+A28B; [9C 53, 05, 05]
-A3AE; [9A A5, 05, 05]
+A28C; [9C 55, 05, 05]
-A3AF; [9A A7, 05, 05]
+A28D; [9C 57, 05, 05]
-A3B0; [9A A9, 05, 05]
+A28E; [9C 59, 05, 05]
-A3B1; [9A AB, 05, 05]
+A28F; [9C 5B, 05, 05]
-A3B2; [9A AD, 05, 05]
+A290; [9C 5D, 05, 05]
-A3B3; [9A AF, 05, 05]
+A291; [9C 5F, 05, 05]
-A3B4; [9A B1, 05, 05]
+A292; [9C 61, 05, 05]
-A3B5; [9A B3, 05, 05]
+A293; [9C 63, 05, 05]
-A3B6; [9A B5, 05, 05]
+A294; [9C 65, 05, 05]
-A3B7; [9A B7, 05, 05]
+A295; [9C 67, 05, 05]
-A3B8; [9A B9, 05, 05]
+A296; [9C 69, 05, 05]
-A3B9; [9A BB, 05, 05]
+A297; [9C 6B, 05, 05]
-A3BA; [9A BD, 05, 05]
+A298; [9C 6D, 05, 05]
-A3BB; [9A BF, 05, 05]
+A299; [9C 6F, 05, 05]
-A3BC; [9A C1, 05, 05]
+A29A; [9C 71, 05, 05]
-A3BD; [9A C3, 05, 05]
+A29B; [9C 73, 05, 05]
-A3BE; [9A C5, 05, 05]
+A29C; [9C 75, 05, 05]
-A3BF; [9A C7, 05, 05]
+A29D; [9C 77, 05, 05]
-A3C0; [9A C9, 05, 05]
+A29E; [9C 79, 05, 05]
-A3C1; [9A CB, 05, 05]
+A29F; [9C 7B, 05, 05]
-A3C2; [9A CD, 05, 05]
+A2A0; [9C 7D, 05, 05]
-A3C3; [9A CF, 05, 05]
+A2A1; [9C 7F, 05, 05]
-A3C4; [9A D1, 05, 05]
+A2A2; [9C 81, 05, 05]
-A3C5; [9A D3, 05, 05]
+A2A3; [9C 83, 05, 05]
-A3C6; [9A D5, 05, 05]
+A2A4; [9C 85, 05, 05]
-A3C7; [9A D7, 05, 05]
+A2A5; [9C 87, 05, 05]
-A3C8; [9A D9, 05, 05]
+A2A6; [9C 89, 05, 05]
-A3C9; [9A DB, 05, 05]
+A2A7; [9C 8B, 05, 05]
-A3CA; [9A DD, 05, 05]
+A2A8; [9C 8D, 05, 05]
-A3CB; [9A DF, 05, 05]
+A2A9; [9C 8F, 05, 05]
-A3CC; [9A E1, 05, 05]
+A2AA; [9C 91, 05, 05]
-A3CD; [9A E3, 05, 05]
+A2AB; [9C 93, 05, 05]
-A3CE; [9A E5, 05, 05]
+A2AC; [9C 95, 05, 05]
-A3CF; [9A E7, 05, 05]
+A2AD; [9C 97, 05, 05]
-A3D0; [9A E9, 05, 05]
+A2AE; [9C 99, 05, 05]
-A3D1; [9A EB, 05, 05]
+A2AF; [9C 9B, 05, 05]
-A3D2; [9A ED, 05, 05]
+A2B0; [9C 9D, 05, 05]
-A3D3; [9A EF, 05, 05]
+A2B1; [9C 9F, 05, 05]
-A3D4; [9A F1, 05, 05]
+A2B2; [9C A1, 05, 05]
-A3D5; [9A F3, 05, 05]
+A2B3; [9C A3, 05, 05]
-A3D6; [9A F5, 05, 05]
+A2B4; [9C A5, 05, 05]
-A3D7; [9A F7, 05, 05]
+A2B5; [9C A7, 05, 05]
-A3D8; [9A F9, 05, 05]
+A2B6; [9C A9, 05, 05]
-A3D9; [9A FB, 05, 05]
+A2B7; [9C AB, 05, 05]
-A3DA; [9A FD, 05, 05]
+A2B8; [9C AD, 05, 05]
-A3DB; [9B 05, 05, 05]
+A2B9; [9C AF, 05, 05]
-A3DC; [9B 07, 05, 05]
+A2BA; [9C B1, 05, 05]
-A3DD; [9B 09, 05, 05]
+A2BB; [9C B3, 05, 05]
-A3DE; [9B 0B, 05, 05]
+A2BC; [9C B5, 05, 05]
-A3DF; [9B 0D, 05, 05]
+A2BD; [9C B7, 05, 05]
-A3E0; [9B 0F, 05, 05]
+A2BE; [9C B9, 05, 05]
-A3E1; [9B 11, 05, 05]
+A2BF; [9C BB, 05, 05]
-A3E2; [9B 13, 05, 05]
+A2C0; [9C BD, 05, 05]
-A3E3; [9B 15, 05, 05]
+A2C1; [9C BF, 05, 05]
-A3E4; [9B 17, 05, 05]
+A2C2; [9C C1, 05, 05]
-A3E5; [9B 19, 05, 05]
+A2C3; [9C C3, 05, 05]
-A3E6; [9B 1B, 05, 05]
+A2C4; [9C C5, 05, 05]
-A3E7; [9B 1D, 05, 05]
+A2C5; [9C C7, 05, 05]
-A3E8; [9B 1F, 05, 05]
+A2C6; [9C C9, 05, 05]
-A3E9; [9B 21, 05, 05]
+A2C7; [9C CB, 05, 05]
-A3EA; [9B 23, 05, 05]
+A2C8; [9C CD, 05, 05]
-A3EB; [9B 25, 05, 05]
+A2C9; [9C CF, 05, 05]
-A3EC; [9B 27, 05, 05]
+A2CA; [9C D1, 05, 05]
-A3ED; [9B 29, 05, 05]
+A2CB; [9C D3, 05, 05]
-A3EE; [9B 2B, 05, 05]
+A2CC; [9C D5, 05, 05]
-A3EF; [9B 2D, 05, 05]
+A2CD; [9C D7, 05, 05]
-A3F0; [9B 2F, 05, 05]
+A2CE; [9C D9, 05, 05]
-A3F1; [9B 31, 05, 05]
+A2CF; [9C DB, 05, 05]
-A3F2; [9B 33, 05, 05]
+A2D0; [9C DD, 05, 05]
-A3F3; [9B 35, 05, 05]
+A2D1; [9C DF, 05, 05]
-A3F4; [9B 37, 05, 05]
+A2D2; [9C E1, 05, 05]
-A3F5; [9B 39, 05, 05]
+A2D3; [9C E3, 05, 05]
-A3F6; [9B 3B, 05, 05]
+A2D4; [9C E5, 05, 05]
-A3F7; [9B 3D, 05, 05]
+A2D5; [9C E7, 05, 05]
-A3F8; [9B 3F, 05, 05]
+A2D6; [9C E9, 05, 05]
-A3F9; [9B 41, 05, 05]
+A2D7; [9C EB, 05, 05]
-A3FA; [9B 43, 05, 05]
+A2D8; [9C ED, 05, 05]
-A3FB; [9B 45, 05, 05]
+A2D9; [9C EF, 05, 05]
-A3FC; [9B 47, 05, 05]
+A2DA; [9C F1, 05, 05]
-A3FD; [9B 49, 05, 05]
+A2DB; [9C F3, 05, 05]
-A3FE; [9B 4B, 05, 05]
+A2DC; [9C F5, 05, 05]
-A3FF; [9B 4D, 05, 05]
+A2DD; [9C F7, 05, 05]
-A400; [9B 4F, 05, 05]
+A2DE; [9C F9, 05, 05]
-A401; [9B 51, 05, 05]
+A2DF; [9C FB, 05, 05]
-A402; [9B 53, 05, 05]
+A2E0; [9C FD, 05, 05]
-A403; [9B 55, 05, 05]
+A2E1; [9D 05, 05, 05]
-A404; [9B 57, 05, 05]
+A2E2; [9D 07, 05, 05]
-A405; [9B 59, 05, 05]
+A2E3; [9D 09, 05, 05]
-A406; [9B 5B, 05, 05]
+A2E4; [9D 0B, 05, 05]
-A407; [9B 5D, 05, 05]
+A2E5; [9D 0D, 05, 05]
-A408; [9B 5F, 05, 05]
+A2E6; [9D 0F, 05, 05]
-A409; [9B 61, 05, 05]
+A2E7; [9D 11, 05, 05]
-A40A; [9B 63, 05, 05]
+A2E8; [9D 13, 05, 05]
-A40B; [9B 65, 05, 05]
+A2E9; [9D 15, 05, 05]
-A40C; [9B 67, 05, 05]
+A2EA; [9D 17, 05, 05]
-A40D; [9B 69, 05, 05]
+A2EB; [9D 19, 05, 05]
-A40E; [9B 6B, 05, 05]
+A2EC; [9D 1B, 05, 05]
-A40F; [9B 6D, 05, 05]
+A2ED; [9D 1D, 05, 05]
-A410; [9B 6F, 05, 05]
+A2EE; [9D 1F, 05, 05]
-A411; [9B 71, 05, 05]
+A2EF; [9D 21, 05, 05]
-A412; [9B 73, 05, 05]
+A2F0; [9D 23, 05, 05]
-A413; [9B 75, 05, 05]
+A2F1; [9D 25, 05, 05]
-A414; [9B 77, 05, 05]
+A2F2; [9D 27, 05, 05]
-A415; [9B 79, 05, 05]
+A2F3; [9D 29, 05, 05]
-A416; [9B 7B, 05, 05]
+A2F4; [9D 2B, 05, 05]
-A417; [9B 7D, 05, 05]
+A2F5; [9D 2D, 05, 05]
-A418; [9B 7F, 05, 05]
+A2F6; [9D 2F, 05, 05]
-A419; [9B 81, 05, 05]
+A2F7; [9D 31, 05, 05]
-A41A; [9B 83, 05, 05]
+A2F8; [9D 33, 05, 05]
-A41B; [9B 85, 05, 05]
+A2F9; [9D 35, 05, 05]
-A41C; [9B 87, 05, 05]
+A2FA; [9D 37, 05, 05]
-A41D; [9B 89, 05, 05]
+A2FB; [9D 39, 05, 05]
-A41E; [9B 8B, 05, 05]
+A2FC; [9D 3B, 05, 05]
-A41F; [9B 8D, 05, 05]
+A2FD; [9D 3D, 05, 05]
-A420; [9B 8F, 05, 05]
+A2FE; [9D 3F, 05, 05]
-A421; [9B 91, 05, 05]
+A2FF; [9D 41, 05, 05]
-A422; [9B 93, 05, 05]
+A300; [9D 43, 05, 05]
-A423; [9B 95, 05, 05]
+A301; [9D 45, 05, 05]
-A424; [9B 97, 05, 05]
+A302; [9D 47, 05, 05]
-A425; [9B 99, 05, 05]
+A303; [9D 49, 05, 05]
-A426; [9B 9B, 05, 05]
+A304; [9D 4B, 05, 05]
-A427; [9B 9D, 05, 05]
+A305; [9D 4D, 05, 05]
-A428; [9B 9F, 05, 05]
+A306; [9D 4F, 05, 05]
-A429; [9B A1, 05, 05]
+A307; [9D 51, 05, 05]
-A42A; [9B A3, 05, 05]
+A308; [9D 53, 05, 05]
-A42B; [9B A5, 05, 05]
+A309; [9D 55, 05, 05]
-A42C; [9B A7, 05, 05]
+A30A; [9D 57, 05, 05]
-A42D; [9B A9, 05, 05]
+A30B; [9D 59, 05, 05]
-A42E; [9B AB, 05, 05]
+A30C; [9D 5B, 05, 05]
-A42F; [9B AD, 05, 05]
+A30D; [9D 5D, 05, 05]
-A430; [9B AF, 05, 05]
+A30E; [9D 5F, 05, 05]
-A431; [9B B1, 05, 05]
+A30F; [9D 61, 05, 05]
-A432; [9B B3, 05, 05]
+A310; [9D 63, 05, 05]
-A433; [9B B5, 05, 05]
+A311; [9D 65, 05, 05]
-A434; [9B B7, 05, 05]
+A312; [9D 67, 05, 05]
-A435; [9B B9, 05, 05]
+A313; [9D 69, 05, 05]
-A436; [9B BB, 05, 05]
+A314; [9D 6B, 05, 05]
-A437; [9B BD, 05, 05]
+A315; [9D 6D, 05, 05]
-A438; [9B BF, 05, 05]
+A316; [9D 6F, 05, 05]
-A439; [9B C1, 05, 05]
+A317; [9D 71, 05, 05]
-A43A; [9B C3, 05, 05]
+A318; [9D 73, 05, 05]
-A43B; [9B C5, 05, 05]
+A319; [9D 75, 05, 05]
-A43C; [9B C7, 05, 05]
+A31A; [9D 77, 05, 05]
-A43D; [9B C9, 05, 05]
+A31B; [9D 79, 05, 05]
-A43E; [9B CB, 05, 05]
+A31C; [9D 7B, 05, 05]
-A43F; [9B CD, 05, 05]
+A31D; [9D 7D, 05, 05]
-A440; [9B CF, 05, 05]
+A31E; [9D 7F, 05, 05]
-A441; [9B D1, 05, 05]
+A31F; [9D 81, 05, 05]
-A442; [9B D3, 05, 05]
+A320; [9D 83, 05, 05]
-A443; [9B D5, 05, 05]
+A321; [9D 85, 05, 05]
-A444; [9B D7, 05, 05]
+A322; [9D 87, 05, 05]
-A445; [9B D9, 05, 05]
+A323; [9D 89, 05, 05]
-A446; [9B DB, 05, 05]
+A324; [9D 8B, 05, 05]
-A447; [9B DD, 05, 05]
+A325; [9D 8D, 05, 05]
-A448; [9B DF, 05, 05]
+A326; [9D 8F, 05, 05]
-A449; [9B E1, 05, 05]
+A327; [9D 91, 05, 05]
-A44A; [9B E3, 05, 05]
+A328; [9D 93, 05, 05]
-A44B; [9B E5, 05, 05]
+A329; [9D 95, 05, 05]
-A44C; [9B E7, 05, 05]
+A32A; [9D 97, 05, 05]
-A44D; [9B E9, 05, 05]
+A32B; [9D 99, 05, 05]
-A44E; [9B EB, 05, 05]
+A32C; [9D 9B, 05, 05]
-A44F; [9B ED, 05, 05]
+A32D; [9D 9D, 05, 05]
-A450; [9B EF, 05, 05]
+A32E; [9D 9F, 05, 05]
-A451; [9B F1, 05, 05]
+A32F; [9D A1, 05, 05]
-A452; [9B F3, 05, 05]
+A330; [9D A3, 05, 05]
-A453; [9B F5, 05, 05]
+A331; [9D A5, 05, 05]
-A454; [9B F7, 05, 05]
+A332; [9D A7, 05, 05]
-A455; [9B F9, 05, 05]
+A333; [9D A9, 05, 05]
-A456; [9B FB, 05, 05]
+A334; [9D AB, 05, 05]
-A457; [9B FD, 05, 05]
+A335; [9D AD, 05, 05]
-A458; [9C 05, 05, 05]
+A336; [9D AF, 05, 05]
-A459; [9C 07, 05, 05]
+A337; [9D B1, 05, 05]
-A45A; [9C 09, 05, 05]
+A338; [9D B3, 05, 05]
-A45B; [9C 0B, 05, 05]
+A339; [9D B5, 05, 05]
-A45C; [9C 0D, 05, 05]
+A33A; [9D B7, 05, 05]
-A45D; [9C 0F, 05, 05]
+A33B; [9D B9, 05, 05]
-A45E; [9C 11, 05, 05]
+A33C; [9D BB, 05, 05]
-A45F; [9C 13, 05, 05]
+A33D; [9D BD, 05, 05]
-A460; [9C 15, 05, 05]
+A33E; [9D BF, 05, 05]
-A461; [9C 17, 05, 05]
+A33F; [9D C1, 05, 05]
-A462; [9C 19, 05, 05]
+A340; [9D C3, 05, 05]
-A463; [9C 1B, 05, 05]
+A341; [9D C5, 05, 05]
-A464; [9C 1D, 05, 05]
+A342; [9D C7, 05, 05]
-A465; [9C 1F, 05, 05]
+A343; [9D C9, 05, 05]
-A466; [9C 21, 05, 05]
+A344; [9D CB, 05, 05]
-A467; [9C 23, 05, 05]
+A345; [9D CD, 05, 05]
-A468; [9C 25, 05, 05]
+A346; [9D CF, 05, 05]
-A469; [9C 27, 05, 05]
+A347; [9D D1, 05, 05]
-A46A; [9C 29, 05, 05]
+A348; [9D D3, 05, 05]
-A46B; [9C 2B, 05, 05]
+A349; [9D D5, 05, 05]
-A46C; [9C 2D, 05, 05]
+A34A; [9D D7, 05, 05]
-A46D; [9C 2F, 05, 05]
+A34B; [9D D9, 05, 05]
-A46E; [9C 31, 05, 05]
+A34C; [9D DB, 05, 05]
-A46F; [9C 33, 05, 05]
+A34D; [9D DD, 05, 05]
-A470; [9C 35, 05, 05]
+A34E; [9D DF, 05, 05]
-A471; [9C 37, 05, 05]
+A34F; [9D E1, 05, 05]
-A472; [9C 39, 05, 05]
+A350; [9D E3, 05, 05]
-A473; [9C 3B, 05, 05]
+A351; [9D E5, 05, 05]
-A474; [9C 3D, 05, 05]
+A352; [9D E7, 05, 05]
-A475; [9C 3F, 05, 05]
+A353; [9D E9, 05, 05]
-A476; [9C 41, 05, 05]
+A354; [9D EB, 05, 05]
-A477; [9C 43, 05, 05]
+A355; [9D ED, 05, 05]
-A478; [9C 45, 05, 05]
+A356; [9D EF, 05, 05]
-A479; [9C 47, 05, 05]
+A357; [9D F1, 05, 05]
-A47A; [9C 49, 05, 05]
+A358; [9D F3, 05, 05]
-A47B; [9C 4B, 05, 05]
+A359; [9D F5, 05, 05]
-A47C; [9C 4D, 05, 05]
+A35A; [9D F7, 05, 05]
-A47D; [9C 4F, 05, 05]
+A35B; [9D F9, 05, 05]
-A47E; [9C 51, 05, 05]
+A35C; [9D FB, 05, 05]
-A47F; [9C 53, 05, 05]
+A35D; [9D FD, 05, 05]
-A480; [9C 55, 05, 05]
+A35E; [9E 05, 05, 05]
-A481; [9C 57, 05, 05]
+A35F; [9E 07, 05, 05]
-A482; [9C 59, 05, 05]
+A360; [9E 09, 05, 05]
-A483; [9C 5B, 05, 05]
+A361; [9E 0B, 05, 05]
-A484; [9C 5D, 05, 05]
+A362; [9E 0D, 05, 05]
-A485; [9C 5F, 05, 05]
+A363; [9E 0F, 05, 05]
-A486; [9C 61, 05, 05]
+A364; [9E 11, 05, 05]
-A487; [9C 63, 05, 05]
+A365; [9E 13, 05, 05]
-A488; [9C 65, 05, 05]
+A366; [9E 15, 05, 05]
-A489; [9C 67, 05, 05]
+A367; [9E 17, 05, 05]
-A48A; [9C 69, 05, 05]
+A368; [9E 19, 05, 05]
-A48B; [9C 6B, 05, 05]
+A369; [9E 1B, 05, 05]
-A48C; [9C 6D, 05, 05]
+A36A; [9E 1D, 05, 05]
-D800 DF00; [9C 6F, 05, 05]
+A36B; [9E 1F, 05, 05]
-D800 DF01; [9C 71, 05, 05]
+A36C; [9E 21, 05, 05]
-D800 DF02; [9C 73, 05, 05]
+A36D; [9E 23, 05, 05]
-D800 DF03; [9C 75, 05, 05]
+A36E; [9E 25, 05, 05]
-D800 DF04; [9C 77, 05, 05]
+A36F; [9E 27, 05, 05]
-D800 DF05; [9C 79, 05, 05]
+A370; [9E 29, 05, 05]
-D800 DF06; [9C 7B, 05, 05]
+A371; [9E 2B, 05, 05]
-D800 DF07; [9C 7D, 05, 05]
+A372; [9E 2D, 05, 05]
-D800 DF08; [9C 7F, 05, 05]
+A373; [9E 2F, 05, 05]
-D800 DF09; [9C 81, 05, 05]
+A374; [9E 31, 05, 05]
-D800 DF0A; [9C 83, 05, 05]
+A375; [9E 33, 05, 05]
-D800 DF0B; [9C 85, 05, 05]
+A376; [9E 35, 05, 05]
-D800 DF0C; [9C 87, 05, 05]
+A377; [9E 37, 05, 05]
-D800 DF0D; [9C 89, 05, 05]
+A378; [9E 39, 05, 05]
-D800 DF0E; [9C 8B, 05, 05]
+A379; [9E 3B, 05, 05]
-D800 DF0F; [9C 8D, 05, 05]
+A37A; [9E 3D, 05, 05]
-D800 DF10; [9C 8F, 05, 05]
+A37B; [9E 3F, 05, 05]
-D800 DF11; [9C 91, 05, 05]
+A37C; [9E 41, 05, 05]
-D800 DF12; [9C 93, 05, 05]
+A37D; [9E 43, 05, 05]
-D800 DF13; [9C 95, 05, 05]
+A37E; [9E 45, 05, 05]
-D800 DF14; [9C 97, 05, 05]
+A37F; [9E 47, 05, 05]
-D800 DF15; [9C 99, 05, 05]
+A380; [9E 49, 05, 05]
-D800 DF16; [9C 9B, 05, 05]
+A381; [9E 4B, 05, 05]
-D800 DF17; [9C 9D, 05, 05]
+A382; [9E 4D, 05, 05]
-D800 DF18; [9C 9F, 05, 05]
+A383; [9E 4F, 05, 05]
-D800 DF19; [9C A1, 05, 05]
+A384; [9E 51, 05, 05]
-D800 DF1A; [9C A3, 05, 05]
+A385; [9E 53, 05, 05]
-D800 DF1B; [9C A5, 05, 05]
+A386; [9E 55, 05, 05]
-D800 DF1C; [9C A7, 05, 05]
+A387; [9E 57, 05, 05]
-D800 DF1D; [9C A9, 05, 05]
+A388; [9E 59, 05, 05]
-D800 DF1E; [9C AB, 05, 05]
+A389; [9E 5B, 05, 05]
-D800 DF30; [9C AD, 05, 05]
+A38A; [9E 5D, 05, 05]
-D800 DF31; [9C AF, 05, 05]
+A38B; [9E 5F, 05, 05]
-D800 DF32; [9C B1, 05, 05]
+A38C; [9E 61, 05, 05]
-D800 DF33; [9C B3, 05, 05]
+A38D; [9E 63, 05, 05]
-D800 DF34; [9C B5, 05, 05]
+A38E; [9E 65, 05, 05]
-D800 DF35; [9C B7, 05, 05]
+A38F; [9E 67, 05, 05]
-D800 DF36; [9C B9, 05, 05]
+A390; [9E 69, 05, 05]
-D800 DF37; [9C BB, 05, 05]
+A391; [9E 6B, 05, 05]
-D800 DF38; [9C BD, 05, 05]
+A392; [9E 6D, 05, 05]
-D800 DF39; [9C BF, 05, 05]
+A393; [9E 6F, 05, 05]
-D800 DF3A; [9C C1, 05, 05]
+A394; [9E 71, 05, 05]
-D800 DF3B; [9C C3, 05, 05]
+A395; [9E 73, 05, 05]
-D800 DF3C; [9C C5, 05, 05]
+A396; [9E 75, 05, 05]
-D800 DF3D; [9C C7, 05, 05]
+A397; [9E 77, 05, 05]
-D800 DF3E; [9C C9, 05, 05]
+A398; [9E 79, 05, 05]
-D800 DF3F; [9C CB, 05, 05]
+A399; [9E 7B, 05, 05]
-D800 DF40; [9C CD, 05, 05]
+A39A; [9E 7D, 05, 05]
-D800 DF41; [9C CF, 05, 05]
+A39B; [9E 7F, 05, 05]
-D800 DF42; [9C D1, 05, 05]
+A39C; [9E 81, 05, 05]
-D800 DF43; [9C D3, 05, 05]
+A39D; [9E 83, 05, 05]
-D800 DF44; [9C D5, 05, 05]
+A39E; [9E 85, 05, 05]
-D800 DF45; [9C D7, 05, 05]
+A39F; [9E 87, 05, 05]
-D800 DF46; [9C D9, 05, 05]
+A3A0; [9E 89, 05, 05]
-D800 DF47; [9C DB, 05, 05]
+A3A1; [9E 8B, 05, 05]
-D800 DF48; [9C DD, 05, 05]
+A3A2; [9E 8D, 05, 05]
-D800 DF49; [9C DF, 05, 05]
+A3A3; [9E 8F, 05, 05]
-D800 DF4A; [9C E1, 05, 05]
+A3A4; [9E 91, 05, 05]
-D801 DC28; [9C E3, 05, 05]
-D801 DC00; [9C E3, 05, 8F]
+A3A5; [9E 93, 05, 05]
-D801 DC29; [9C E5, 05, 05]
-D801 DC01; [9C E5, 05, 8F]
+A3A6; [9E 95, 05, 05]
-D801 DC2A; [9C E7, 05, 05]
-D801 DC02; [9C E7, 05, 8F]
+A3A7; [9E 97, 05, 05]
-D801 DC2B; [9C E9, 05, 05]
-D801 DC03; [9C E9, 05, 8F]
+A3A8; [9E 99, 05, 05]
-D801 DC2C; [9C EB, 05, 05]
-D801 DC04; [9C EB, 05, 8F]
+A3A9; [9E 9B, 05, 05]
-D801 DC2D; [9C ED, 05, 05]
-D801 DC05; [9C ED, 05, 8F]
+A3AA; [9E 9D, 05, 05]
-D801 DC2E; [9C EF, 05, 05]
-D801 DC06; [9C EF, 05, 8F]
+A3AB; [9E 9F, 05, 05]
-D801 DC2F; [9C F1, 05, 05]
-D801 DC07; [9C F1, 05, 8F]
+A3AC; [9E A1, 05, 05]
-D801 DC30; [9C F3, 05, 05]
-D801 DC08; [9C F3, 05, 8F]
+A3AD; [9E A3, 05, 05]
-D801 DC31; [9C F5, 05, 05]
-D801 DC09; [9C F5, 05, 8F]
+A3AE; [9E A5, 05, 05]
-D801 DC32; [9C F7, 05, 05]
-D801 DC0A; [9C F7, 05, 8F]
+A3AF; [9E A7, 05, 05]
-D801 DC33; [9C F9, 05, 05]
-D801 DC0B; [9C F9, 05, 8F]
+A3B0; [9E A9, 05, 05]
-D801 DC34; [9C FB, 05, 05]
-D801 DC0C; [9C FB, 05, 8F]
+A3B1; [9E AB, 05, 05]
-D801 DC35; [9C FD, 05, 05]
-D801 DC0D; [9C FD, 05, 8F]
+A3B2; [9E AD, 05, 05]
-D801 DC36; [9D 05, 05, 05]
-D801 DC0E; [9D 05, 05, 8F]
+A3B3; [9E AF, 05, 05]
-D801 DC37; [9D 07, 05, 05]
-D801 DC0F; [9D 07, 05, 8F]
+A3B4; [9E B1, 05, 05]
-D801 DC38; [9D 09, 05, 05]
-D801 DC10; [9D 09, 05, 8F]
+A3B5; [9E B3, 05, 05]
-D801 DC39; [9D 0B, 05, 05]
-D801 DC11; [9D 0B, 05, 8F]
+A3B6; [9E B5, 05, 05]
-D801 DC3A; [9D 0D, 05, 05]
-D801 DC12; [9D 0D, 05, 8F]
+A3B7; [9E B7, 05, 05]
-D801 DC3B; [9D 0F, 05, 05]
-D801 DC13; [9D 0F, 05, 8F]
+A3B8; [9E B9, 05, 05]
-D801 DC3C; [9D 11, 05, 05]
-D801 DC14; [9D 11, 05, 8F]
+A3B9; [9E BB, 05, 05]
-D801 DC3D; [9D 13, 05, 05]
-D801 DC15; [9D 13, 05, 8F]
+A3BA; [9E BD, 05, 05]
-D801 DC3E; [9D 15, 05, 05]
-D801 DC16; [9D 15, 05, 8F]
+A3BB; [9E BF, 05, 05]
-D801 DC3F; [9D 17, 05, 05]
-D801 DC17; [9D 17, 05, 8F]
+A3BC; [9E C1, 05, 05]
-D801 DC40; [9D 19, 05, 05]
-D801 DC18; [9D 19, 05, 8F]
+A3BD; [9E C3, 05, 05]
-D801 DC41; [9D 1B, 05, 05]
-D801 DC19; [9D 1B, 05, 8F]
+A3BE; [9E C5, 05, 05]
-D801 DC42; [9D 1D, 05, 05]
-D801 DC1A; [9D 1D, 05, 8F]
+A3BF; [9E C7, 05, 05]
-D801 DC43; [9D 1F, 05, 05]
-D801 DC1B; [9D 1F, 05, 8F]
+A3C0; [9E C9, 05, 05]
-D801 DC44; [9D 21, 05, 05]
-D801 DC1C; [9D 21, 05, 8F]
+A3C1; [9E CB, 05, 05]
-D801 DC45; [9D 23, 05, 05]
-D801 DC1D; [9D 23, 05, 8F]
+A3C2; [9E CD, 05, 05]
-D801 DC46; [9D 25, 05, 05]
-D801 DC1E; [9D 25, 05, 8F]
+A3C3; [9E CF, 05, 05]
-D801 DC47; [9D 27, 05, 05]
-D801 DC1F; [9D 27, 05, 8F]
+A3C4; [9E D1, 05, 05]
-D801 DC48; [9D 29, 05, 05]
-D801 DC20; [9D 29, 05, 8F]
+A3C5; [9E D3, 05, 05]
-D801 DC49; [9D 2B, 05, 05]
-D801 DC21; [9D 2B, 05, 8F]
+A3C6; [9E D5, 05, 05]
-D801 DC4A; [9D 2D, 05, 05]
-D801 DC22; [9D 2D, 05, 8F]
+A3C7; [9E D7, 05, 05]
-D801 DC4B; [9D 2F, 05, 05]
-D801 DC23; [9D 2F, 05, 8F]
+A3C8; [9E D9, 05, 05]
-D801 DC4C; [9D 31, 05, 05]
-D801 DC24; [9D 31, 05, 8F]
+A3C9; [9E DB, 05, 05]
-D801 DC4D; [9D 33, 05, 05]
-D801 DC25; [9D 33, 05, 8F]
+A3CA; [9E DD, 05, 05]
-D801 DC4E; [9D 35, 05, 05]
-D801 DC26; [9D 35, 05, 8F]
+A3CB; [9E DF, 05, 05]
-D801 DC4F; [9D 37, 05, 05]
-D801 DC27; [9D 37, 05, 8F]
+A3CC; [9E E1, 05, 05]
-D801 DC50; [9D 39, 05, 05]
+A3CD; [9E E3, 05, 05]
-D801 DC51; [9D 3B, 05, 05]
+A3CE; [9E E5, 05, 05]
-D801 DC52; [9D 3D, 05, 05]
+A3CF; [9E E7, 05, 05]
-D801 DC53; [9D 3F, 05, 05]
+A3D0; [9E E9, 05, 05]
-D801 DC54; [9D 41, 05, 05]
+A3D1; [9E EB, 05, 05]
-D801 DC55; [9D 43, 05, 05]
+A3D2; [9E ED, 05, 05]
-D801 DC56; [9D 45, 05, 05]
+A3D3; [9E EF, 05, 05]
-D801 DC57; [9D 47, 05, 05]
+A3D4; [9E F1, 05, 05]
-D801 DC58; [9D 49, 05, 05]
+A3D5; [9E F3, 05, 05]
-D801 DC59; [9D 4B, 05, 05]
+A3D6; [9E F5, 05, 05]
-D801 DC5A; [9D 4D, 05, 05]
+A3D7; [9E F7, 05, 05]
-D801 DC5B; [9D 4F, 05, 05]
+A3D8; [9E F9, 05, 05]
-D801 DC5C; [9D 51, 05, 05]
+A3D9; [9E FB, 05, 05]
-D801 DC5D; [9D 53, 05, 05]
+A3DA; [9E FD, 05, 05]
-D801 DC5E; [9D 55, 05, 05]
+A3DB; [9F 05, 05, 05]
-D801 DC5F; [9D 57, 05, 05]
+A3DC; [9F 07, 05, 05]
-D801 DC60; [9D 59, 05, 05]
+A3DD; [9F 09, 05, 05]
-D801 DC61; [9D 5B, 05, 05]
+A3DE; [9F 0B, 05, 05]
-D801 DC62; [9D 5D, 05, 05]
+A3DF; [9F 0D, 05, 05]
-D801 DC63; [9D 5F, 05, 05]
+A3E0; [9F 0F, 05, 05]
-D801 DC64; [9D 61, 05, 05]
+A3E1; [9F 11, 05, 05]
-D801 DC65; [9D 63, 05, 05]
+A3E2; [9F 13, 05, 05]
-D801 DC66; [9D 65, 05, 05]
+A3E3; [9F 15, 05, 05]
-D801 DC67; [9D 67, 05, 05]
+A3E4; [9F 17, 05, 05]
-D801 DC68; [9D 69, 05, 05]
+A3E5; [9F 19, 05, 05]
-D801 DC69; [9D 6B, 05, 05]
+A3E6; [9F 1B, 05, 05]
-D801 DC6A; [9D 6D, 05, 05]
+A3E7; [9F 1D, 05, 05]
-D801 DC6B; [9D 6F, 05, 05]
+A3E8; [9F 1F, 05, 05]
-D801 DC6C; [9D 71, 05, 05]
+A3E9; [9F 21, 05, 05]
-D801 DC6D; [9D 73, 05, 05]
+A3EA; [9F 23, 05, 05]
-D801 DC6E; [9D 75, 05, 05]
+A3EB; [9F 25, 05, 05]
-D801 DC6F; [9D 77, 05, 05]
+A3EC; [9F 27, 05, 05]
-D801 DC70; [9D 79, 05, 05]
+A3ED; [9F 29, 05, 05]
-D801 DC71; [9D 7B, 05, 05]
+A3EE; [9F 2B, 05, 05]
-D801 DC72; [9D 7D, 05, 05]
+A3EF; [9F 2D, 05, 05]
-D801 DC73; [9D 7F, 05, 05]
+A3F0; [9F 2F, 05, 05]
-D801 DC74; [9D 81, 05, 05]
+A3F1; [9F 31, 05, 05]
-D801 DC75; [9D 83, 05, 05]
+A3F2; [9F 33, 05, 05]
-D801 DC76; [9D 85, 05, 05]
+A3F3; [9F 35, 05, 05]
-D801 DC77; [9D 87, 05, 05]
+A3F4; [9F 37, 05, 05]
-D801 DC78; [9D 89, 05, 05]
+A3F5; [9F 39, 05, 05]
-D801 DC79; [9D 8B, 05, 05]
+A3F6; [9F 3B, 05, 05]
-D801 DC7A; [9D 8D, 05, 05]
+A3F7; [9F 3D, 05, 05]
-D801 DC7B; [9D 8F, 05, 05]
+A3F8; [9F 3F, 05, 05]
-D801 DC7C; [9D 91, 05, 05]
+A3F9; [9F 41, 05, 05]
-D801 DC7D; [9D 93, 05, 05]
+A3FA; [9F 43, 05, 05]
-D801 DC7E; [9D 95, 05, 05]
+A3FB; [9F 45, 05, 05]
-D801 DC7F; [9D 97, 05, 05]
+A3FC; [9F 47, 05, 05]
-D801 DC80; [9D 99, 05, 05]
+A3FD; [9F 49, 05, 05]
-D801 DC81; [9D 9B, 05, 05]
+A3FE; [9F 4B, 05, 05]
-D801 DC82; [9D 9D, 05, 05]
+A3FF; [9F 4D, 05, 05]
-D801 DC83; [9D 9F, 05, 05]
+A400; [9F 4F, 05, 05]
-D801 DC84; [9D A1, 05, 05]
+A401; [9F 51, 05, 05]
-D801 DC85; [9D A3, 05, 05]
+A402; [9F 53, 05, 05]
-D801 DC86; [9D A5, 05, 05]
+A403; [9F 55, 05, 05]
-D801 DC87; [9D A7, 05, 05]
+A404; [9F 57, 05, 05]
-D801 DC88; [9D A9, 05, 05]
+A405; [9F 59, 05, 05]
-D801 DC89; [9D AB, 05, 05]
+A406; [9F 5B, 05, 05]
-D801 DC8A; [9D AD, 05, 05]
+A407; [9F 5D, 05, 05]
-D801 DC8B; [9D AF, 05, 05]
+A408; [9F 5F, 05, 05]
-D801 DC8C; [9D B1, 05, 05]
+A409; [9F 61, 05, 05]
-D801 DC8D; [9D B3, 05, 05]
+A40A; [9F 63, 05, 05]
-D801 DC8E; [9D B5, 05, 05]
+A40B; [9F 65, 05, 05]
-D801 DC8F; [9D B7, 05, 05]
+A40C; [9F 67, 05, 05]
-D801 DC90; [9D B9, 05, 05]
+A40D; [9F 69, 05, 05]
-D801 DC91; [9D BB, 05, 05]
+A40E; [9F 6B, 05, 05]
-D801 DC92; [9D BD, 05, 05]
+A40F; [9F 6D, 05, 05]
-D801 DC93; [9D BF, 05, 05]
+A410; [9F 6F, 05, 05]
-D801 DC94; [9D C1, 05, 05]
+A411; [9F 71, 05, 05]
-D801 DC95; [9D C3, 05, 05]
+A412; [9F 73, 05, 05]
-D801 DC96; [9D C5, 05, 05]
+A413; [9F 75, 05, 05]
-D801 DC97; [9D C7, 05, 05]
+A414; [9F 77, 05, 05]
-D801 DC98; [9D C9, 05, 05]
+A415; [9F 79, 05, 05]
-D801 DC99; [9D CB, 05, 05]
+A416; [9F 7B, 05, 05]
-D801 DC9A; [9D CD, 05, 05]
+A417; [9F 7D, 05, 05]
-D801 DC9B; [9D CF, 05, 05]
+A418; [9F 7F, 05, 05]
-D801 DC9C; [9D D1, 05, 05]
+A419; [9F 81, 05, 05]
-D801 DC9D; [9D D3, 05, 05]
+A41A; [9F 83, 05, 05]
-D800 DC00; [9D D5, 05, 05]
+A41B; [9F 85, 05, 05]
-D800 DC01; [9D D7, 05, 05]
+A41C; [9F 87, 05, 05]
-D800 DC02; [9D D9, 05, 05]
+A41D; [9F 89, 05, 05]
-D800 DC03; [9D DB, 05, 05]
+A41E; [9F 8B, 05, 05]
-D800 DC04; [9D DD, 05, 05]
+A41F; [9F 8D, 05, 05]
-D800 DC05; [9D DF, 05, 05]
+A420; [9F 8F, 05, 05]
-D800 DC06; [9D E1, 05, 05]
+A421; [9F 91, 05, 05]
-D800 DC07; [9D E3, 05, 05]
+A422; [9F 93, 05, 05]
-D800 DC08; [9D E5, 05, 05]
+A423; [9F 95, 05, 05]
-D800 DC09; [9D E7, 05, 05]
+A424; [9F 97, 05, 05]
-D800 DC0A; [9D E9, 05, 05]
+A425; [9F 99, 05, 05]
-D800 DC0B; [9D EB, 05, 05]
+A426; [9F 9B, 05, 05]
-D800 DC0D; [9D ED, 05, 05]
+A427; [9F 9D, 05, 05]
-D800 DC0E; [9D EF, 05, 05]
+A428; [9F 9F, 05, 05]
-D800 DC0F; [9D F1, 05, 05]
+A429; [9F A1, 05, 05]
-D800 DC10; [9D F3, 05, 05]
+A42A; [9F A3, 05, 05]
-D800 DC11; [9D F5, 05, 05]
+A42B; [9F A5, 05, 05]
-D800 DC12; [9D F7, 05, 05]
+A42C; [9F A7, 05, 05]
-D800 DC13; [9D F9, 05, 05]
+A42D; [9F A9, 05, 05]
-D800 DC14; [9D FB, 05, 05]
+A42E; [9F AB, 05, 05]
-D800 DC15; [9D FD, 05, 05]
+A42F; [9F AD, 05, 05]
-D800 DC16; [9E 05, 05, 05]
+A430; [9F AF, 05, 05]
-D800 DC17; [9E 07, 05, 05]
+A431; [9F B1, 05, 05]
-D800 DC18; [9E 09, 05, 05]
+A432; [9F B3, 05, 05]
-D800 DC19; [9E 0B, 05, 05]
+A433; [9F B5, 05, 05]
-D800 DC1A; [9E 0D, 05, 05]
+A434; [9F B7, 05, 05]
-D800 DC1B; [9E 0F, 05, 05]
+A435; [9F B9, 05, 05]
-D800 DC1C; [9E 11, 05, 05]
+A436; [9F BB, 05, 05]
-D800 DC1D; [9E 13, 05, 05]
+A437; [9F BD, 05, 05]
-D800 DC1E; [9E 15, 05, 05]
+A438; [9F BF, 05, 05]
-D800 DC1F; [9E 17, 05, 05]
+A439; [9F C1, 05, 05]
-D800 DC20; [9E 19, 05, 05]
+A43A; [9F C3, 05, 05]
-D800 DC21; [9E 1B, 05, 05]
+A43B; [9F C5, 05, 05]
-D800 DC22; [9E 1D, 05, 05]
+A43C; [9F C7, 05, 05]
-D800 DC23; [9E 1F, 05, 05]
+A43D; [9F C9, 05, 05]
-D800 DC24; [9E 21, 05, 05]
+A43E; [9F CB, 05, 05]
-D800 DC25; [9E 23, 05, 05]
+A43F; [9F CD, 05, 05]
-D800 DC26; [9E 25, 05, 05]
+A440; [9F CF, 05, 05]
-D800 DC28; [9E 27, 05, 05]
+A441; [9F D1, 05, 05]
-D800 DC29; [9E 29, 05, 05]
+A442; [9F D3, 05, 05]
-D800 DC2A; [9E 2B, 05, 05]
+A443; [9F D5, 05, 05]
-D800 DC2B; [9E 2D, 05, 05]
+A444; [9F D7, 05, 05]
-D800 DC2C; [9E 2F, 05, 05]
+A445; [9F D9, 05, 05]
-D800 DC2D; [9E 31, 05, 05]
+A446; [9F DB, 05, 05]
-D800 DC2E; [9E 33, 05, 05]
+A447; [9F DD, 05, 05]
-D800 DC2F; [9E 35, 05, 05]
+A448; [9F DF, 05, 05]
-D800 DC30; [9E 37, 05, 05]
+A449; [9F E1, 05, 05]
-D800 DC31; [9E 39, 05, 05]
+A44A; [9F E3, 05, 05]
-D800 DC32; [9E 3B, 05, 05]
+A44B; [9F E5, 05, 05]
-D800 DC33; [9E 3D, 05, 05]
+A44C; [9F E7, 05, 05]
-D800 DC34; [9E 3F, 05, 05]
+A44D; [9F E9, 05, 05]
-D800 DC35; [9E 41, 05, 05]
+A44E; [9F EB, 05, 05]
-D800 DC36; [9E 43, 05, 05]
+A44F; [9F ED, 05, 05]
-D800 DC37; [9E 45, 05, 05]
+A450; [9F EF, 05, 05]
-D800 DC38; [9E 47, 05, 05]
+A451; [9F F1, 05, 05]
-D800 DC39; [9E 49, 05, 05]
+A452; [9F F3, 05, 05]
-D800 DC3A; [9E 4B, 05, 05]
+A453; [9F F5, 05, 05]
-D800 DC3C; [9E 4D, 05, 05]
+A454; [9F F7, 05, 05]
-D800 DC3D; [9E 4F, 05, 05]
+A455; [9F F9, 05, 05]
-D800 DC3F; [9E 51, 05, 05]
+A456; [9F FB, 05, 05]
-D800 DC40; [9E 53, 05, 05]
+A457; [9F FD, 05, 05]
-D800 DC41; [9E 55, 05, 05]
+A458; [A0 05, 05, 05]
-D800 DC42; [9E 57, 05, 05]
+A459; [A0 07, 05, 05]
-D800 DC43; [9E 59, 05, 05]
+A45A; [A0 09, 05, 05]
-D800 DC44; [9E 5B, 05, 05]
+A45B; [A0 0B, 05, 05]
-D800 DC45; [9E 5D, 05, 05]
+A45C; [A0 0D, 05, 05]
-D800 DC46; [9E 5F, 05, 05]
+A45D; [A0 0F, 05, 05]
-D800 DC47; [9E 61, 05, 05]
+A45E; [A0 11, 05, 05]
-D800 DC48; [9E 63, 05, 05]
+A45F; [A0 13, 05, 05]
-D800 DC49; [9E 65, 05, 05]
+A460; [A0 15, 05, 05]
-D800 DC4A; [9E 67, 05, 05]
+A461; [A0 17, 05, 05]
-D800 DC4B; [9E 69, 05, 05]
+A462; [A0 19, 05, 05]
-D800 DC4C; [9E 6B, 05, 05]
+A463; [A0 1B, 05, 05]
-D800 DC4D; [9E 6D, 05, 05]
+A464; [A0 1D, 05, 05]
-D800 DC50; [9E 6F, 05, 05]
+A465; [A0 1F, 05, 05]
-D800 DC51; [9E 71, 05, 05]
+A466; [A0 21, 05, 05]
-D800 DC52; [9E 73, 05, 05]
+A467; [A0 23, 05, 05]
-D800 DC53; [9E 75, 05, 05]
+A468; [A0 25, 05, 05]
-D800 DC54; [9E 77, 05, 05]
+A469; [A0 27, 05, 05]
-D800 DC55; [9E 79, 05, 05]
+A46A; [A0 29, 05, 05]
-D800 DC56; [9E 7B, 05, 05]
+A46B; [A0 2B, 05, 05]
-D800 DC57; [9E 7D, 05, 05]
+A46C; [A0 2D, 05, 05]
-D800 DC58; [9E 7F, 05, 05]
+A46D; [A0 2F, 05, 05]
-D800 DC59; [9E 81, 05, 05]
+A46E; [A0 31, 05, 05]
-D800 DC5A; [9E 83, 05, 05]
+A46F; [A0 33, 05, 05]
-D800 DC5B; [9E 85, 05, 05]
+A470; [A0 35, 05, 05]
-D800 DC5C; [9E 87, 05, 05]
+A471; [A0 37, 05, 05]
-D800 DC5D; [9E 89, 05, 05]
+A472; [A0 39, 05, 05]
-D800 DC80; [9E 8B, 05, 05]
+A473; [A0 3B, 05, 05]
-D800 DC81; [9E 8D, 05, 05]
+A474; [A0 3D, 05, 05]
-D800 DC82; [9E 8F, 05, 05]
+A475; [A0 3F, 05, 05]
-D800 DC83; [9E 91, 05, 05]
+A476; [A0 41, 05, 05]
-D800 DC84; [9E 93, 05, 05]
+A477; [A0 43, 05, 05]
-D800 DC85; [9E 95, 05, 05]
+A478; [A0 45, 05, 05]
-D800 DC86; [9E 97, 05, 05]
+A479; [A0 47, 05, 05]
-D800 DC87; [9E 99, 05, 05]
+A47A; [A0 49, 05, 05]
-D800 DC88; [9E 9B, 05, 05]
+A47B; [A0 4B, 05, 05]
-D800 DC89; [9E 9D, 05, 05]
+A47C; [A0 4D, 05, 05]
-D800 DC8A; [9E 9F, 05, 05]
+A47D; [A0 4F, 05, 05]
-D800 DC8B; [9E A1, 05, 05]
+A47E; [A0 51, 05, 05]
-D800 DC8C; [9E A3, 05, 05]
+A47F; [A0 53, 05, 05]
-D800 DC8D; [9E A5, 05, 05]
+A480; [A0 55, 05, 05]
-D800 DC8E; [9E A7, 05, 05]
+A481; [A0 57, 05, 05]
-D800 DC8F; [9E A9, 05, 05]
+A482; [A0 59, 05, 05]
-D800 DC90; [9E AB, 05, 05]
+A483; [A0 5B, 05, 05]
-D800 DC91; [9E AD, 05, 05]
+A484; [A0 5D, 05, 05]
-D800 DC92; [9E AF, 05, 05]
+A485; [A0 5F, 05, 05]
-D800 DC93; [9E B1, 05, 05]
+A486; [A0 61, 05, 05]
-D800 DC94; [9E B3, 05, 05]
+A487; [A0 63, 05, 05]
-D800 DC95; [9E B5, 05, 05]
+A488; [A0 65, 05, 05]
-D800 DC96; [9E B7, 05, 05]
+A489; [A0 67, 05, 05]
-D800 DC97; [9E B9, 05, 05]
+A48A; [A0 69, 05, 05]
-D800 DC98; [9E BB, 05, 05]
+A48B; [A0 6B, 05, 05]
-D800 DC99; [9E BD, 05, 05]
+A48C; [A0 6D, 05, 05]
-D800 DC9A; [9E BF, 05, 05]
+D800 DF00; [A0 6F, 05, 05]
-D800 DC9B; [9E C1, 05, 05]
+D800 DF01; [A0 71, 05, 05]
-D800 DC9C; [9E C3, 05, 05]
+D800 DF02; [A0 73, 05, 05]
-D800 DC9D; [9E C5, 05, 05]
+D800 DF03; [A0 75, 05, 05]
-D800 DC9E; [9E C7, 05, 05]
+D800 DF04; [A0 77, 05, 05]
-D800 DC9F; [9E C9, 05, 05]
+D800 DF05; [A0 79, 05, 05]
-D800 DCA0; [9E CB, 05, 05]
+D800 DF06; [A0 7B, 05, 05]
-D800 DCA1; [9E CD, 05, 05]
+D800 DF07; [A0 7D, 05, 05]
-D800 DCA2; [9E CF, 05, 05]
+D800 DF08; [A0 7F, 05, 05]
-D800 DCA3; [9E D1, 05, 05]
+D800 DF09; [A0 81, 05, 05]
-D800 DCA4; [9E D3, 05, 05]
+D800 DF0A; [A0 83, 05, 05]
-D800 DCA5; [9E D5, 05, 05]
+D800 DF0B; [A0 85, 05, 05]
-D800 DCA6; [9E D7, 05, 05]
+D800 DF0C; [A0 87, 05, 05]
-D800 DCA7; [9E D9, 05, 05]
+D800 DF0D; [A0 89, 05, 05]
-D800 DCA8; [9E DB, 05, 05]
+D800 DF0E; [A0 8B, 05, 05]
-D800 DCA9; [9E DD, 05, 05]
+D800 DF0F; [A0 8D, 05, 05]
-D800 DCAA; [9E DF, 05, 05]
+D800 DF10; [A0 8F, 05, 05]
-D800 DCAB; [9E E1, 05, 05]
+D800 DF11; [A0 91, 05, 05]
-D800 DCAC; [9E E3, 05, 05]
+D800 DF12; [A0 93, 05, 05]
-D800 DCAD; [9E E5, 05, 05]
+D800 DF13; [A0 95, 05, 05]
-D800 DCAE; [9E E7, 05, 05]
+D800 DF14; [A0 97, 05, 05]
-D800 DCAF; [9E E9, 05, 05]
+D800 DF15; [A0 99, 05, 05]
-D800 DCB0; [9E EB, 05, 05]
+D800 DF16; [A0 9B, 05, 05]
-D800 DCB1; [9E ED, 05, 05]
+D800 DF17; [A0 9D, 05, 05]
-D800 DCB2; [9E EF, 05, 05]
+D800 DF18; [A0 9F, 05, 05]
-D800 DCB3; [9E F1, 05, 05]
+D800 DF19; [A0 A1, 05, 05]
-D800 DCB4; [9E F3, 05, 05]
+D800 DF1A; [A0 A3, 05, 05]
-D800 DCB5; [9E F5, 05, 05]
+D800 DF1B; [A0 A5, 05, 05]
-D800 DCB6; [9E F7, 05, 05]
+D800 DF1C; [A0 A7, 05, 05]
-D800 DCB7; [9E F9, 05, 05]
+D800 DF1D; [A0 A9, 05, 05]
-D800 DCB8; [9E FB, 05, 05]
+D800 DF1E; [A0 AB, 05, 05]
-D800 DCB9; [9E FD, 05, 05]
+D800 DF30; [A0 AD, 05, 05]
-D800 DCBA; [9F 05, 05, 05]
+D800 DF31; [A0 AF, 05, 05]
-D800 DCBB; [9F 07, 05, 05]
+D800 DF32; [A0 B1, 05, 05]
-D800 DCBC; [9F 09, 05, 05]
+D800 DF33; [A0 B3, 05, 05]
-D800 DCBD; [9F 0B, 05, 05]
+D800 DF34; [A0 B5, 05, 05]
-D800 DCBE; [9F 0D, 05, 05]
+D800 DF35; [A0 B7, 05, 05]
-D800 DCBF; [9F 0F, 05, 05]
+D800 DF36; [A0 B9, 05, 05]
-D800 DCC0; [9F 11, 05, 05]
+D800 DF37; [A0 BB, 05, 05]
-D800 DCC1; [9F 13, 05, 05]
+D800 DF38; [A0 BD, 05, 05]
-D800 DCC2; [9F 15, 05, 05]
+D800 DF39; [A0 BF, 05, 05]
-D800 DCC3; [9F 17, 05, 05]
+D800 DF3A; [A0 C1, 05, 05]
-D800 DCC4; [9F 19, 05, 05]
+D800 DF3B; [A0 C3, 05, 05]
-D800 DCC5; [9F 1B, 05, 05]
+D800 DF3C; [A0 C5, 05, 05]
-D800 DCC6; [9F 1D, 05, 05]
+D800 DF3D; [A0 C7, 05, 05]
-D800 DCC7; [9F 1F, 05, 05]
+D800 DF3E; [A0 C9, 05, 05]
-D800 DCC8; [9F 21, 05, 05]
+D800 DF3F; [A0 CB, 05, 05]
-D800 DCC9; [9F 23, 05, 05]
+D800 DF40; [A0 CD, 05, 05]
-D800 DCCA; [9F 25, 05, 05]
+D800 DF41; [A0 CF, 05, 05]
-D800 DCCB; [9F 27, 05, 05]
+D800 DF42; [A0 D1, 05, 05]
-D800 DCCC; [9F 29, 05, 05]
+D800 DF43; [A0 D3, 05, 05]
-D800 DCCD; [9F 2B, 05, 05]
+D800 DF44; [A0 D5, 05, 05]
-D800 DCCE; [9F 2D, 05, 05]
+D800 DF45; [A0 D7, 05, 05]
-D800 DCCF; [9F 2F, 05, 05]
+D800 DF46; [A0 D9, 05, 05]
-D800 DCD0; [9F 31, 05, 05]
+D800 DF47; [A0 DB, 05, 05]
-D800 DCD1; [9F 33, 05, 05]
+D800 DF48; [A0 DD, 05, 05]
-D800 DCD2; [9F 35, 05, 05]
+D800 DF49; [A0 DF, 05, 05]
-D800 DCD3; [9F 37, 05, 05]
+D800 DF4A; [A0 E1, 05, 05]
-D800 DCD4; [9F 39, 05, 05]
+D801 DC28; [A0 E3, 05, 05]
+D801 DC00; [A0 E3, 05, 8F]
-D800 DCD5; [9F 3B, 05, 05]
+D801 DC29; [A0 E5, 05, 05]
+D801 DC01; [A0 E5, 05, 8F]
-D800 DCD6; [9F 3D, 05, 05]
+D801 DC2A; [A0 E7, 05, 05]
+D801 DC02; [A0 E7, 05, 8F]
-D800 DCD7; [9F 3F, 05, 05]
+D801 DC2B; [A0 E9, 05, 05]
+D801 DC03; [A0 E9, 05, 8F]
-D800 DCD8; [9F 41, 05, 05]
+D801 DC2C; [A0 EB, 05, 05]
+D801 DC04; [A0 EB, 05, 8F]
-D800 DCD9; [9F 43, 05, 05]
+D801 DC2D; [A0 ED, 05, 05]
+D801 DC05; [A0 ED, 05, 8F]
-D800 DCDA; [9F 45, 05, 05]
+D801 DC2E; [A0 EF, 05, 05]
+D801 DC06; [A0 EF, 05, 8F]
-D800 DCDB; [9F 47, 05, 05]
+D801 DC2F; [A0 F1, 05, 05]
+D801 DC07; [A0 F1, 05, 8F]
-D800 DCDC; [9F 49, 05, 05]
+D801 DC30; [A0 F3, 05, 05]
+D801 DC08; [A0 F3, 05, 8F]
-D800 DCDD; [9F 4B, 05, 05]
+D801 DC31; [A0 F5, 05, 05]
+D801 DC09; [A0 F5, 05, 8F]
-D800 DCDE; [9F 4D, 05, 05]
+D801 DC32; [A0 F7, 05, 05]
+D801 DC0A; [A0 F7, 05, 8F]
-D800 DCDF; [9F 4F, 05, 05]
+D801 DC33; [A0 F9, 05, 05]
+D801 DC0B; [A0 F9, 05, 8F]
-D800 DCE0; [9F 51, 05, 05]
+D801 DC34; [A0 FB, 05, 05]
+D801 DC0C; [A0 FB, 05, 8F]
-D800 DCE1; [9F 53, 05, 05]
+D801 DC35; [A0 FD, 05, 05]
+D801 DC0D; [A0 FD, 05, 8F]
-D800 DCE2; [9F 55, 05, 05]
+D801 DC36; [A1 05, 05, 05]
+D801 DC0E; [A1 05, 05, 8F]
-D800 DCE3; [9F 57, 05, 05]
+D801 DC37; [A1 07, 05, 05]
+D801 DC0F; [A1 07, 05, 8F]
-D800 DCE4; [9F 59, 05, 05]
+D801 DC38; [A1 09, 05, 05]
+D801 DC10; [A1 09, 05, 8F]
-D800 DCE5; [9F 5B, 05, 05]
+D801 DC39; [A1 0B, 05, 05]
+D801 DC11; [A1 0B, 05, 8F]
-D800 DCE6; [9F 5D, 05, 05]
+D801 DC3A; [A1 0D, 05, 05]
+D801 DC12; [A1 0D, 05, 8F]
-D800 DCE7; [9F 5F, 05, 05]
+D801 DC3B; [A1 0F, 05, 05]
+D801 DC13; [A1 0F, 05, 8F]
-D800 DCE8; [9F 61, 05, 05]
+D801 DC3C; [A1 11, 05, 05]
+D801 DC14; [A1 11, 05, 8F]
-D800 DCE9; [9F 63, 05, 05]
+D801 DC3D; [A1 13, 05, 05]
+D801 DC15; [A1 13, 05, 8F]
-D800 DCEA; [9F 65, 05, 05]
+D801 DC3E; [A1 15, 05, 05]
+D801 DC16; [A1 15, 05, 8F]
-D800 DCEB; [9F 67, 05, 05]
+D801 DC3F; [A1 17, 05, 05]
+D801 DC17; [A1 17, 05, 8F]
-D800 DCEC; [9F 69, 05, 05]
+D801 DC40; [A1 19, 05, 05]
+D801 DC18; [A1 19, 05, 8F]
-D800 DCED; [9F 6B, 05, 05]
+D801 DC41; [A1 1B, 05, 05]
+D801 DC19; [A1 1B, 05, 8F]
-D800 DCEE; [9F 6D, 05, 05]
+D801 DC42; [A1 1D, 05, 05]
+D801 DC1A; [A1 1D, 05, 8F]
-D800 DCEF; [9F 6F, 05, 05]
+D801 DC43; [A1 1F, 05, 05]
+D801 DC1B; [A1 1F, 05, 8F]
-D800 DCF0; [9F 71, 05, 05]
+D801 DC44; [A1 21, 05, 05]
+D801 DC1C; [A1 21, 05, 8F]
-D800 DCF1; [9F 73, 05, 05]
+D801 DC45; [A1 23, 05, 05]
+D801 DC1D; [A1 23, 05, 8F]
-D800 DCF2; [9F 75, 05, 05]
+D801 DC46; [A1 25, 05, 05]
+D801 DC1E; [A1 25, 05, 8F]
-D800 DCF3; [9F 77, 05, 05]
+D801 DC47; [A1 27, 05, 05]
+D801 DC1F; [A1 27, 05, 8F]
-D800 DCF4; [9F 79, 05, 05]
+D801 DC48; [A1 29, 05, 05]
+D801 DC20; [A1 29, 05, 8F]
-D800 DCF5; [9F 7B, 05, 05]
+D801 DC49; [A1 2B, 05, 05]
+D801 DC21; [A1 2B, 05, 8F]
-D800 DCF6; [9F 7D, 05, 05]
+D801 DC4A; [A1 2D, 05, 05]
+D801 DC22; [A1 2D, 05, 8F]
-D800 DCF7; [9F 7F, 05, 05]
+D801 DC4B; [A1 2F, 05, 05]
+D801 DC23; [A1 2F, 05, 8F]
-D800 DCF8; [9F 81, 05, 05]
+D801 DC4C; [A1 31, 05, 05]
+D801 DC24; [A1 31, 05, 8F]
-D800 DCF9; [9F 83, 05, 05]
+D801 DC4D; [A1 33, 05, 05]
+D801 DC25; [A1 33, 05, 8F]
-D800 DCFA; [9F 85, 05, 05]
+D801 DC4E; [A1 35, 05, 05]
+D801 DC26; [A1 35, 05, 8F]
-D802 DC00; [9F 87, 05, 05]
+D801 DC4F; [A1 37, 05, 05]
+D801 DC27; [A1 37, 05, 8F]
-D802 DC01; [9F 89, 05, 05]
+D801 DC50; [A1 39, 05, 05]
-D802 DC02; [9F 8B, 05, 05]
+D801 DC51; [A1 3B, 05, 05]
-D802 DC03; [9F 8D, 05, 05]
+D801 DC52; [A1 3D, 05, 05]
-D802 DC04; [9F 8F, 05, 05]
+D801 DC53; [A1 3F, 05, 05]
-D802 DC05; [9F 91, 05, 05]
+D801 DC54; [A1 41, 05, 05]
-D802 DC08; [9F 93, 05, 05]
+D801 DC55; [A1 43, 05, 05]
-D802 DC0A; [9F 95, 05, 05]
+D801 DC56; [A1 45, 05, 05]
-D802 DC0B; [9F 97, 05, 05]
+D801 DC57; [A1 47, 05, 05]
-D802 DC0C; [9F 99, 05, 05]
+D801 DC58; [A1 49, 05, 05]
-D802 DC0D; [9F 9B, 05, 05]
+D801 DC59; [A1 4B, 05, 05]
-D802 DC0E; [9F 9D, 05, 05]
+D801 DC5A; [A1 4D, 05, 05]
-D802 DC0F; [9F 9F, 05, 05]
+D801 DC5B; [A1 4F, 05, 05]
-D802 DC10; [9F A1, 05, 05]
+D801 DC5C; [A1 51, 05, 05]
-D802 DC11; [9F A3, 05, 05]
+D801 DC5D; [A1 53, 05, 05]
-D802 DC12; [9F A5, 05, 05]
+D801 DC5E; [A1 55, 05, 05]
-D802 DC13; [9F A7, 05, 05]
+D801 DC5F; [A1 57, 05, 05]
-D802 DC14; [9F A9, 05, 05]
+D801 DC60; [A1 59, 05, 05]
-D802 DC15; [9F AB, 05, 05]
+D801 DC61; [A1 5B, 05, 05]
-D802 DC16; [9F AD, 05, 05]
+D801 DC62; [A1 5D, 05, 05]
-D802 DC17; [9F AF, 05, 05]
+D801 DC63; [A1 5F, 05, 05]
-D802 DC18; [9F B1, 05, 05]
+D801 DC64; [A1 61, 05, 05]
-D802 DC19; [9F B3, 05, 05]
+D801 DC65; [A1 63, 05, 05]
-D802 DC1A; [9F B5, 05, 05]
+D801 DC66; [A1 65, 05, 05]
-D802 DC1B; [9F B7, 05, 05]
+D801 DC67; [A1 67, 05, 05]
-D802 DC1C; [9F B9, 05, 05]
+D801 DC68; [A1 69, 05, 05]
-D802 DC1D; [9F BB, 05, 05]
+D801 DC69; [A1 6B, 05, 05]
-D802 DC1E; [9F BD, 05, 05]
+D801 DC6A; [A1 6D, 05, 05]
-D802 DC1F; [9F BF, 05, 05]
+D801 DC6B; [A1 6F, 05, 05]
-D802 DC20; [9F C1, 05, 05]
+D801 DC6C; [A1 71, 05, 05]
-D802 DC21; [9F C3, 05, 05]
+D801 DC6D; [A1 73, 05, 05]
-D802 DC22; [9F C5, 05, 05]
+D801 DC6E; [A1 75, 05, 05]
-D802 DC23; [9F C7, 05, 05]
+D801 DC6F; [A1 77, 05, 05]
-D802 DC24; [9F C9, 05, 05]
+D801 DC70; [A1 79, 05, 05]
-D802 DC25; [9F CB, 05, 05]
+D801 DC71; [A1 7B, 05, 05]
-D802 DC26; [9F CD, 05, 05]
+D801 DC72; [A1 7D, 05, 05]
-D802 DC27; [9F CF, 05, 05]
+D801 DC73; [A1 7F, 05, 05]
-D802 DC28; [9F D1, 05, 05]
+D801 DC74; [A1 81, 05, 05]
-D802 DC29; [9F D3, 05, 05]
+D801 DC75; [A1 83, 05, 05]
-D802 DC2A; [9F D5, 05, 05]
+D801 DC76; [A1 85, 05, 05]
-D802 DC2B; [9F D7, 05, 05]
+D801 DC77; [A1 87, 05, 05]
-D802 DC2C; [9F D9, 05, 05]
+D801 DC78; [A1 89, 05, 05]
-D802 DC2D; [9F DB, 05, 05]
+D801 DC79; [A1 8B, 05, 05]
-D802 DC2E; [9F DD, 05, 05]
+D801 DC7A; [A1 8D, 05, 05]
-D802 DC2F; [9F DF, 05, 05]
+D801 DC7B; [A1 8F, 05, 05]
-D802 DC30; [9F E1, 05, 05]
+D801 DC7C; [A1 91, 05, 05]
-D802 DC31; [9F E3, 05, 05]
+D801 DC7D; [A1 93, 05, 05]
-D802 DC32; [9F E5, 05, 05]
+D801 DC7E; [A1 95, 05, 05]
-D802 DC33; [9F E7, 05, 05]
+D801 DC7F; [A1 97, 05, 05]
-D802 DC34; [9F E9, 05, 05]
+D801 DC80; [A1 99, 05, 05]
-D802 DC35; [9F EB, 05, 05]
+D801 DC81; [A1 9B, 05, 05]
-D802 DC37; [9F ED, 05, 05]
+D801 DC82; [A1 9D, 05, 05]
-D802 DC38; [9F EF, 05, 05]
+D801 DC83; [A1 9F, 05, 05]
-D802 DC3C; [9F F1, 05, 05]
+D801 DC84; [A1 A1, 05, 05]
-D802 DC3F; [9F F3, 05, 05]
+D801 DC85; [A1 A3, 05, 05]
-D800 DF80; [9F F5, 05, 05]
+D801 DC86; [A1 A5, 05, 05]
-D800 DF81; [9F F7, 05, 05]
+D801 DC87; [A1 A7, 05, 05]
-D800 DF82; [9F F9, 05, 05]
+D801 DC88; [A1 A9, 05, 05]
-D800 DF83; [9F FB, 05, 05]
+D801 DC89; [A1 AB, 05, 05]
-D800 DF84; [9F FD, 05, 05]
+D801 DC8A; [A1 AD, 05, 05]
-D800 DF85; [A0 05, 05, 05]
+D801 DC8B; [A1 AF, 05, 05]
-D800 DF86; [A0 07, 05, 05]
+D801 DC8C; [A1 B1, 05, 05]
-D800 DF87; [A0 09, 05, 05]
+D801 DC8D; [A1 B3, 05, 05]
-D800 DF88; [A0 0B, 05, 05]
+D801 DC8E; [A1 B5, 05, 05]
-D800 DF89; [A0 0D, 05, 05]
+D801 DC8F; [A1 B7, 05, 05]
-D800 DF8A; [A0 0F, 05, 05]
+D801 DC90; [A1 B9, 05, 05]
-D800 DF8B; [A0 11, 05, 05]
+D801 DC91; [A1 BB, 05, 05]
-D800 DF8C; [A0 13, 05, 05]
+D801 DC92; [A1 BD, 05, 05]
-D800 DF8D; [A0 15, 05, 05]
+D801 DC93; [A1 BF, 05, 05]
-D800 DF8E; [A0 17, 05, 05]
+D801 DC94; [A1 C1, 05, 05]
-D800 DF8F; [A0 19, 05, 05]
+D801 DC95; [A1 C3, 05, 05]
-D800 DF90; [A0 1B, 05, 05]
+D801 DC96; [A1 C5, 05, 05]
-D800 DF91; [A0 1D, 05, 05]
+D801 DC97; [A1 C7, 05, 05]
-D800 DF92; [A0 1F, 05, 05]
+D801 DC98; [A1 C9, 05, 05]
-D800 DF93; [A0 21, 05, 05]
+D801 DC99; [A1 CB, 05, 05]
-D800 DF94; [A0 23, 05, 05]
+D801 DC9A; [A1 CD, 05, 05]
-D800 DF95; [A0 25, 05, 05]
+D801 DC9B; [A1 CF, 05, 05]
-D800 DF96; [A0 27, 05, 05]
+D801 DC9C; [A1 D1, 05, 05]
-D800 DF97; [A0 29, 05, 05]
+D801 DC9D; [A1 D3, 05, 05]
-D800 DF98; [A0 2B, 05, 05]
+D800 DC00; [A1 D5, 05, 05]
-D800 DF99; [A0 2D, 05, 05]
+D800 DC01; [A1 D7, 05, 05]
-D800 DF9A; [A0 2F, 05, 05]
+D800 DC02; [A1 D9, 05, 05]
-D800 DF9B; [A0 31, 05, 05]
+D800 DC03; [A1 DB, 05, 05]
-D800 DF9C; [A0 33, 05, 05]
+D800 DC04; [A1 DD, 05, 05]
-D800 DF9D; [A0 35, 05, 05]
+D800 DC05; [A1 DF, 05, 05]
-D800 DFA0; [A0 37, 05, 05]
+D800 DC06; [A1 E1, 05, 05]
-D800 DFA1; [A0 39, 05, 05]
+D800 DC07; [A1 E3, 05, 05]
-D800 DFA2; [A0 3B, 05, 05]
+D800 DC08; [A1 E5, 05, 05]
-D800 DFA3; [A0 3D, 05, 05]
+D800 DC09; [A1 E7, 05, 05]
-D800 DFA4; [A0 3F, 05, 05]
+D800 DC0A; [A1 E9, 05, 05]
-D800 DFA5; [A0 41, 05, 05]
+D800 DC0B; [A1 EB, 05, 05]
-D800 DFA6; [A0 43, 05, 05]
+D800 DC0D; [A1 ED, 05, 05]
-D800 DFA7; [A0 45, 05, 05]
+D800 DC0E; [A1 EF, 05, 05]
-D800 DFA8; [A0 47, 05, 05]
+D800 DC0F; [A1 F1, 05, 05]
-D800 DFA9; [A0 49, 05, 05]
+D800 DC10; [A1 F3, 05, 05]
-D800 DFAA; [A0 4B, 05, 05]
+D800 DC11; [A1 F5, 05, 05]
-D800 DFAB; [A0 4D, 05, 05]
+D800 DC12; [A1 F7, 05, 05]
-D800 DFAC; [A0 4F, 05, 05]
+D800 DC13; [A1 F9, 05, 05]
-D800 DFAD; [A0 51, 05, 05]
+D800 DC14; [A1 FB, 05, 05]
-D800 DFAE; [A0 53, 05, 05]
+D800 DC15; [A1 FD, 05, 05]
-D800 DFAF; [A0 55, 05, 05]
+D800 DC16; [A2 05, 05, 05]
-D800 DFB0; [A0 57, 05, 05]
+D800 DC17; [A2 07, 05, 05]
-D800 DFB1; [A0 59, 05, 05]
+D800 DC18; [A2 09, 05, 05]
-D800 DFB2; [A0 5B, 05, 05]
+D800 DC19; [A2 0B, 05, 05]
-D800 DFB3; [A0 5D, 05, 05]
+D800 DC1A; [A2 0D, 05, 05]
-D800 DFB4; [A0 5F, 05, 05]
+D800 DC1B; [A2 0F, 05, 05]
-D800 DFB5; [A0 61, 05, 05]
+D800 DC1C; [A2 11, 05, 05]
-D800 DFB6; [A0 63, 05, 05]
+D800 DC1D; [A2 13, 05, 05]
-D800 DFB7; [A0 65, 05, 05]
+D800 DC1E; [A2 15, 05, 05]
-D800 DFB8; [A0 67, 05, 05]
+D800 DC1F; [A2 17, 05, 05]
-D800 DFB9; [A0 69, 05, 05]
+D800 DC20; [A2 19, 05, 05]
-D800 DFBA; [A0 6B, 05, 05]
+D800 DC21; [A2 1B, 05, 05]
-D800 DFBB; [A0 6D, 05, 05]
+D800 DC22; [A2 1D, 05, 05]
-D800 DFBC; [A0 6F, 05, 05]
+D800 DC23; [A2 1F, 05, 05]
-D800 DFBD; [A0 71, 05, 05]
+D800 DC24; [A2 21, 05, 05]
-D800 DFBE; [A0 73, 05, 05]
+D800 DC25; [A2 23, 05, 05]
-D800 DFBF; [A0 75, 05, 05]
+D800 DC26; [A2 25, 05, 05]
-D800 DFC0; [A0 77, 05, 05]
+D800 DC28; [A2 27, 05, 05]
-D800 DFC1; [A0 79, 05, 05]
+D800 DC29; [A2 29, 05, 05]
-D800 DFC2; [A0 7B, 05, 05]
+D800 DC2A; [A2 2B, 05, 05]
-D800 DFC3; [A0 7D, 05, 05]
+D800 DC2B; [A2 2D, 05, 05]
-D800 DFC8; [A0 7F, 05, 05]
+D800 DC2C; [A2 2F, 05, 05]
-D800 DFC9; [A0 81, 05, 05]
+D800 DC2D; [A2 31, 05, 05]
-D800 DFCA; [A0 83, 05, 05]
+D800 DC2E; [A2 33, 05, 05]
-D800 DFCB; [A0 85, 05, 05]
+D800 DC2F; [A2 35, 05, 05]
-D800 DFCC; [A0 87, 05, 05]
+D800 DC30; [A2 37, 05, 05]
-D800 DFCD; [A0 89, 05, 05]
+D800 DC31; [A2 39, 05, 05]
-D800 DFCE; [A0 8B, 05, 05]
+D800 DC32; [A2 3B, 05, 05]
-D800 DFCF; [A0 8D, 05, 05]
+D800 DC33; [A2 3D, 05, 05]
+
+D800 DC34; [A2 3F, 05, 05]
+
+D800 DC35; [A2 41, 05, 05]
+
+D800 DC36; [A2 43, 05, 05]
+
+D800 DC37; [A2 45, 05, 05]
+
+D800 DC38; [A2 47, 05, 05]
+
+D800 DC39; [A2 49, 05, 05]
+
+D800 DC3A; [A2 4B, 05, 05]
+
+D800 DC3C; [A2 4D, 05, 05]
+
+D800 DC3D; [A2 4F, 05, 05]
+
+D800 DC3F; [A2 51, 05, 05]
+
+D800 DC40; [A2 53, 05, 05]
+
+D800 DC41; [A2 55, 05, 05]
+
+D800 DC42; [A2 57, 05, 05]
+
+D800 DC43; [A2 59, 05, 05]
+
+D800 DC44; [A2 5B, 05, 05]
+
+D800 DC45; [A2 5D, 05, 05]
+
+D800 DC46; [A2 5F, 05, 05]
+
+D800 DC47; [A2 61, 05, 05]
+
+D800 DC48; [A2 63, 05, 05]
+
+D800 DC49; [A2 65, 05, 05]
+
+D800 DC4A; [A2 67, 05, 05]
+
+D800 DC4B; [A2 69, 05, 05]
+
+D800 DC4C; [A2 6B, 05, 05]
+
+D800 DC4D; [A2 6D, 05, 05]
+
+D800 DC50; [A2 6F, 05, 05]
+
+D800 DC51; [A2 71, 05, 05]
+
+D800 DC52; [A2 73, 05, 05]
+
+D800 DC53; [A2 75, 05, 05]
+
+D800 DC54; [A2 77, 05, 05]
+
+D800 DC55; [A2 79, 05, 05]
+
+D800 DC56; [A2 7B, 05, 05]
+
+D800 DC57; [A2 7D, 05, 05]
+
+D800 DC58; [A2 7F, 05, 05]
+
+D800 DC59; [A2 81, 05, 05]
+
+D800 DC5A; [A2 83, 05, 05]
+
+D800 DC5B; [A2 85, 05, 05]
+
+D800 DC5C; [A2 87, 05, 05]
+
+D800 DC5D; [A2 89, 05, 05]
+
+D800 DC80; [A2 8B, 05, 05]
+
+D800 DC81; [A2 8D, 05, 05]
+
+D800 DC82; [A2 8F, 05, 05]
+
+D800 DC83; [A2 91, 05, 05]
+
+D800 DC84; [A2 93, 05, 05]
+
+D800 DC85; [A2 95, 05, 05]
+
+D800 DC86; [A2 97, 05, 05]
+
+D800 DC87; [A2 99, 05, 05]
+
+D800 DC88; [A2 9B, 05, 05]
+
+D800 DC89; [A2 9D, 05, 05]
+
+D800 DC8A; [A2 9F, 05, 05]
+
+D800 DC8B; [A2 A1, 05, 05]
+
+D800 DC8C; [A2 A3, 05, 05]
+
+D800 DC8D; [A2 A5, 05, 05]
+
+D800 DC8E; [A2 A7, 05, 05]
+
+D800 DC8F; [A2 A9, 05, 05]
+
+D800 DC90; [A2 AB, 05, 05]
+
+D800 DC91; [A2 AD, 05, 05]
+
+D800 DC92; [A2 AF, 05, 05]
+
+D800 DC93; [A2 B1, 05, 05]
+
+D800 DC94; [A2 B3, 05, 05]
+
+D800 DC95; [A2 B5, 05, 05]
+
+D800 DC96; [A2 B7, 05, 05]
+
+D800 DC97; [A2 B9, 05, 05]
+
+D800 DC98; [A2 BB, 05, 05]
+
+D800 DC99; [A2 BD, 05, 05]
+
+D800 DC9A; [A2 BF, 05, 05]
+
+D800 DC9B; [A2 C1, 05, 05]
+
+D800 DC9C; [A2 C3, 05, 05]
+
+D800 DC9D; [A2 C5, 05, 05]
+
+D800 DC9E; [A2 C7, 05, 05]
+
+D800 DC9F; [A2 C9, 05, 05]
+
+D800 DCA0; [A2 CB, 05, 05]
+
+D800 DCA1; [A2 CD, 05, 05]
+
+D800 DCA2; [A2 CF, 05, 05]
+
+D800 DCA3; [A2 D1, 05, 05]
+
+D800 DCA4; [A2 D3, 05, 05]
+
+D800 DCA5; [A2 D5, 05, 05]
+
+D800 DCA6; [A2 D7, 05, 05]
+
+D800 DCA7; [A2 D9, 05, 05]
+
+D800 DCA8; [A2 DB, 05, 05]
+
+D800 DCA9; [A2 DD, 05, 05]
+
+D800 DCAA; [A2 DF, 05, 05]
+
+D800 DCAB; [A2 E1, 05, 05]
+
+D800 DCAC; [A2 E3, 05, 05]
+
+D800 DCAD; [A2 E5, 05, 05]
+
+D800 DCAE; [A2 E7, 05, 05]
+
+D800 DCAF; [A2 E9, 05, 05]
+
+D800 DCB0; [A2 EB, 05, 05]
+
+D800 DCB1; [A2 ED, 05, 05]
+
+D800 DCB2; [A2 EF, 05, 05]
+
+D800 DCB3; [A2 F1, 05, 05]
+
+D800 DCB4; [A2 F3, 05, 05]
+
+D800 DCB5; [A2 F5, 05, 05]
+
+D800 DCB6; [A2 F7, 05, 05]
+
+D800 DCB7; [A2 F9, 05, 05]
+
+D800 DCB8; [A2 FB, 05, 05]
+
+D800 DCB9; [A2 FD, 05, 05]
+
+D800 DCBA; [A3 05, 05, 05]
+
+D800 DCBB; [A3 07, 05, 05]
+
+D800 DCBC; [A3 09, 05, 05]
+
+D800 DCBD; [A3 0B, 05, 05]
+
+D800 DCBE; [A3 0D, 05, 05]
+
+D800 DCBF; [A3 0F, 05, 05]
+
+D800 DCC0; [A3 11, 05, 05]
+
+D800 DCC1; [A3 13, 05, 05]
+
+D800 DCC2; [A3 15, 05, 05]
+
+D800 DCC3; [A3 17, 05, 05]
+
+D800 DCC4; [A3 19, 05, 05]
+
+D800 DCC5; [A3 1B, 05, 05]
+
+D800 DCC6; [A3 1D, 05, 05]
+
+D800 DCC7; [A3 1F, 05, 05]
+
+D800 DCC8; [A3 21, 05, 05]
+
+D800 DCC9; [A3 23, 05, 05]
+
+D800 DCCA; [A3 25, 05, 05]
+
+D800 DCCB; [A3 27, 05, 05]
+
+D800 DCCC; [A3 29, 05, 05]
+
+D800 DCCD; [A3 2B, 05, 05]
+
+D800 DCCE; [A3 2D, 05, 05]
+
+D800 DCCF; [A3 2F, 05, 05]
+
+D800 DCD0; [A3 31, 05, 05]
+
+D800 DCD1; [A3 33, 05, 05]
+
+D800 DCD2; [A3 35, 05, 05]
+
+D800 DCD3; [A3 37, 05, 05]
+
+D800 DCD4; [A3 39, 05, 05]
+
+D800 DCD5; [A3 3B, 05, 05]
+
+D800 DCD6; [A3 3D, 05, 05]
+
+D800 DCD7; [A3 3F, 05, 05]
+
+D800 DCD8; [A3 41, 05, 05]
+
+D800 DCD9; [A3 43, 05, 05]
+
+D800 DCDA; [A3 45, 05, 05]
+
+D800 DCDB; [A3 47, 05, 05]
+
+D800 DCDC; [A3 49, 05, 05]
+
+D800 DCDD; [A3 4B, 05, 05]
+
+D800 DCDE; [A3 4D, 05, 05]
+
+D800 DCDF; [A3 4F, 05, 05]
+
+D800 DCE0; [A3 51, 05, 05]
+
+D800 DCE1; [A3 53, 05, 05]
+
+D800 DCE2; [A3 55, 05, 05]
+
+D800 DCE3; [A3 57, 05, 05]
+
+D800 DCE4; [A3 59, 05, 05]
+
+D800 DCE5; [A3 5B, 05, 05]
+
+D800 DCE6; [A3 5D, 05, 05]
+
+D800 DCE7; [A3 5F, 05, 05]
+
+D800 DCE8; [A3 61, 05, 05]
+
+D800 DCE9; [A3 63, 05, 05]
+
+D800 DCEA; [A3 65, 05, 05]
+
+D800 DCEB; [A3 67, 05, 05]
+
+D800 DCEC; [A3 69, 05, 05]
+
+D800 DCED; [A3 6B, 05, 05]
+
+D800 DCEE; [A3 6D, 05, 05]
+
+D800 DCEF; [A3 6F, 05, 05]
+
+D800 DCF0; [A3 71, 05, 05]
+
+D800 DCF1; [A3 73, 05, 05]
+
+D800 DCF2; [A3 75, 05, 05]
+
+D800 DCF3; [A3 77, 05, 05]
+
+D800 DCF4; [A3 79, 05, 05]
+
+D800 DCF5; [A3 7B, 05, 05]
+
+D800 DCF6; [A3 7D, 05, 05]
+
+D800 DCF7; [A3 7F, 05, 05]
+
+D800 DCF8; [A3 81, 05, 05]
+
+D800 DCF9; [A3 83, 05, 05]
+
+D800 DCFA; [A3 85, 05, 05]
+
+D802 DC00; [A3 87, 05, 05]
+
+D802 DC01; [A3 89, 05, 05]
+
+D802 DC02; [A3 8B, 05, 05]
+
+D802 DC03; [A3 8D, 05, 05]
+
+D802 DC04; [A3 8F, 05, 05]
+
+D802 DC05; [A3 91, 05, 05]
+
+D802 DC08; [A3 93, 05, 05]
+
+D802 DC0A; [A3 95, 05, 05]
+
+D802 DC0B; [A3 97, 05, 05]
+
+D802 DC0C; [A3 99, 05, 05]
+
+D802 DC0D; [A3 9B, 05, 05]
+
+D802 DC0E; [A3 9D, 05, 05]
+
+D802 DC0F; [A3 9F, 05, 05]
+
+D802 DC10; [A3 A1, 05, 05]
+
+D802 DC11; [A3 A3, 05, 05]
+
+D802 DC12; [A3 A5, 05, 05]
+
+D802 DC13; [A3 A7, 05, 05]
+
+D802 DC14; [A3 A9, 05, 05]
+
+D802 DC15; [A3 AB, 05, 05]
+
+D802 DC16; [A3 AD, 05, 05]
+
+D802 DC17; [A3 AF, 05, 05]
+
+D802 DC18; [A3 B1, 05, 05]
+
+D802 DC19; [A3 B3, 05, 05]
+
+D802 DC1A; [A3 B5, 05, 05]
+
+D802 DC1B; [A3 B7, 05, 05]
+
+D802 DC1C; [A3 B9, 05, 05]
+
+D802 DC1D; [A3 BB, 05, 05]
+
+D802 DC1E; [A3 BD, 05, 05]
+
+D802 DC1F; [A3 BF, 05, 05]
+
+D802 DC20; [A3 C1, 05, 05]
+
+D802 DC21; [A3 C3, 05, 05]
+
+D802 DC22; [A3 C5, 05, 05]
+
+D802 DC23; [A3 C7, 05, 05]
+
+D802 DC24; [A3 C9, 05, 05]
+
+D802 DC25; [A3 CB, 05, 05]
+
+D802 DC26; [A3 CD, 05, 05]
+
+D802 DC27; [A3 CF, 05, 05]
+
+D802 DC28; [A3 D1, 05, 05]
+
+D802 DC29; [A3 D3, 05, 05]
+
+D802 DC2A; [A3 D5, 05, 05]
+
+D802 DC2B; [A3 D7, 05, 05]
+
+D802 DC2C; [A3 D9, 05, 05]
+
+D802 DC2D; [A3 DB, 05, 05]
+
+D802 DC2E; [A3 DD, 05, 05]
+
+D802 DC2F; [A3 DF, 05, 05]
+
+D802 DC30; [A3 E1, 05, 05]
+
+D802 DC31; [A3 E3, 05, 05]
+
+D802 DC32; [A3 E5, 05, 05]
+
+D802 DC33; [A3 E7, 05, 05]
+
+D802 DC34; [A3 E9, 05, 05]
+
+D802 DC35; [A3 EB, 05, 05]
+
+D802 DC37; [A3 ED, 05, 05]
+
+D802 DC38; [A3 EF, 05, 05]
+
+D802 DC3C; [A3 F1, 05, 05]
+
+D802 DC3F; [A3 F3, 05, 05]
+
+D800 DF80; [A3 F5, 05, 05]
+
+D800 DF81; [A3 F7, 05, 05]
+
+D800 DF82; [A3 F9, 05, 05]
+
+D800 DF83; [A3 FB, 05, 05]
+
+D800 DF84; [A3 FD, 05, 05]
+
+D800 DF85; [A4 05, 05, 05]
+
+D800 DF86; [A4 07, 05, 05]
+
+D800 DF87; [A4 09, 05, 05]
+
+D800 DF88; [A4 0B, 05, 05]
+
+D800 DF89; [A4 0D, 05, 05]
+
+D800 DF8A; [A4 0F, 05, 05]
+
+D800 DF8B; [A4 11, 05, 05]
+
+D800 DF8C; [A4 13, 05, 05]
+
+D800 DF8D; [A4 15, 05, 05]
+
+D800 DF8E; [A4 17, 05, 05]
+
+D800 DF8F; [A4 19, 05, 05]
+
+D800 DF90; [A4 1B, 05, 05]
+
+D800 DF91; [A4 1D, 05, 05]
+
+D800 DF92; [A4 1F, 05, 05]
+
+D800 DF93; [A4 21, 05, 05]
+
+D800 DF94; [A4 23, 05, 05]
+
+D800 DF95; [A4 25, 05, 05]
+
+D800 DF96; [A4 27, 05, 05]
+
+D800 DF97; [A4 29, 05, 05]
+
+D800 DF98; [A4 2B, 05, 05]
+
+D800 DF99; [A4 2D, 05, 05]
+
+D800 DF9A; [A4 2F, 05, 05]
+
+D800 DF9B; [A4 31, 05, 05]
+
+D800 DF9C; [A4 33, 05, 05]
+
+D800 DF9D; [A4 35, 05, 05]
+
+D800 DFA0; [A4 37, 05, 05]
+
+D800 DFA1; [A4 39, 05, 05]
+
+D800 DFA2; [A4 3B, 05, 05]
+
+D800 DFA3; [A4 3D, 05, 05]
+
+D800 DFA4; [A4 3F, 05, 05]
+
+D800 DFA5; [A4 41, 05, 05]
+
+D800 DFA6; [A4 43, 05, 05]
+
+D800 DFA7; [A4 45, 05, 05]
+
+D800 DFA8; [A4 47, 05, 05]
+
+D800 DFA9; [A4 49, 05, 05]
+
+D800 DFAA; [A4 4B, 05, 05]
+
+D800 DFAB; [A4 4D, 05, 05]
+
+D800 DFAC; [A4 4F, 05, 05]
+
+D800 DFAD; [A4 51, 05, 05]
+
+D800 DFAE; [A4 53, 05, 05]
+
+D800 DFAF; [A4 55, 05, 05]
+
+D800 DFB0; [A4 57, 05, 05]
+
+D800 DFB1; [A4 59, 05, 05]
+
+D800 DFB2; [A4 5B, 05, 05]
+
+D800 DFB3; [A4 5D, 05, 05]
+
+D800 DFB4; [A4 5F, 05, 05]
+
+D800 DFB5; [A4 61, 05, 05]
+
+D800 DFB6; [A4 63, 05, 05]
+
+D800 DFB7; [A4 65, 05, 05]
+
+D800 DFB8; [A4 67, 05, 05]
+
+D800 DFB9; [A4 69, 05, 05]
+
+D800 DFBA; [A4 6B, 05, 05]
+
+D800 DFBB; [A4 6D, 05, 05]
+
+D800 DFBC; [A4 6F, 05, 05]
+
+D800 DFBD; [A4 71, 05, 05]
+
+D800 DFBE; [A4 73, 05, 05]
+
+D800 DFBF; [A4 75, 05, 05]
+
+D800 DFC0; [A4 77, 05, 05]
+
+D800 DFC1; [A4 79, 05, 05]
+
+D800 DFC2; [A4 7B, 05, 05]
+
+D800 DFC3; [A4 7D, 05, 05]
+
+D800 DFC8; [A4 7F, 05, 05]
+
+D800 DFC9; [A4 81, 05, 05]
+
+D800 DFCA; [A4 83, 05, 05]
+
+D800 DFCB; [A4 85, 05, 05]
+
+D800 DFCC; [A4 87, 05, 05]
+
+D800 DFCD; [A4 89, 05, 05]
+
+D800 DFCE; [A4 8B, 05, 05]
+
+D800 DFCF; [A4 8D, 05, 05]
+
+D808 DC00; [A4 8F, 05, 05]
+
+D808 DC01; [A4 91, 05, 05]
+
+D808 DC02; [A4 93, 05, 05]
+
+D808 DC03; [A4 95, 05, 05]
+
+D808 DC04; [A4 97, 05, 05]
+
+D808 DC05; [A4 99, 05, 05]
+
+D808 DC06; [A4 9B, 05, 05]
+
+D808 DC07; [A4 9D, 05, 05]
+
+D808 DC08; [A4 9F, 05, 05]
+
+D808 DC09; [A4 A1, 05, 05]
+
+D808 DC0A; [A4 A3, 05, 05]
+
+D808 DC0B; [A4 A5, 05, 05]
+
+D808 DC0C; [A4 A7, 05, 05]
+
+D808 DC0D; [A4 A9, 05, 05]
+
+D808 DC0E; [A4 AB, 05, 05]
+
+D808 DC0F; [A4 AD, 05, 05]
+
+D808 DC10; [A4 AF, 05, 05]
+
+D808 DC11; [A4 B1, 05, 05]
+
+D808 DC12; [A4 B3, 05, 05]
+
+D808 DC13; [A4 B5, 05, 05]
+
+D808 DC14; [A4 B7, 05, 05]
+
+D808 DC15; [A4 B9, 05, 05]
+
+D808 DC16; [A4 BB, 05, 05]
+
+D808 DC17; [A4 BD, 05, 05]
+
+D808 DC18; [A4 BF, 05, 05]
+
+D808 DC19; [A4 C1, 05, 05]
+
+D808 DC1A; [A4 C3, 05, 05]
+
+D808 DC1B; [A4 C5, 05, 05]
+
+D808 DC1C; [A4 C7, 05, 05]
+
+D808 DC1D; [A4 C9, 05, 05]
+
+D808 DC1E; [A4 CB, 05, 05]
+
+D808 DC1F; [A4 CD, 05, 05]
+
+D808 DC20; [A4 CF, 05, 05]
+
+D808 DC21; [A4 D1, 05, 05]
+
+D808 DC22; [A4 D3, 05, 05]
+
+D808 DC23; [A4 D5, 05, 05]
+
+D808 DC24; [A4 D7, 05, 05]
+
+D808 DC25; [A4 D9, 05, 05]
+
+D808 DC26; [A4 DB, 05, 05]
+
+D808 DC27; [A4 DD, 05, 05]
+
+D808 DC28; [A4 DF, 05, 05]
+
+D808 DC29; [A4 E1, 05, 05]
+
+D808 DC2A; [A4 E3, 05, 05]
+
+D808 DC2B; [A4 E5, 05, 05]
+
+D808 DC2C; [A4 E7, 05, 05]
+
+D808 DC2D; [A4 E9, 05, 05]
+
+D808 DC2E; [A4 EB, 05, 05]
+
+D808 DC2F; [A4 ED, 05, 05]
+
+D808 DC30; [A4 EF, 05, 05]
+
+D808 DC31; [A4 F1, 05, 05]
+
+D808 DC32; [A4 F3, 05, 05]
+
+D808 DC33; [A4 F5, 05, 05]
+
+D808 DC34; [A4 F7, 05, 05]
+
+D808 DC35; [A4 F9, 05, 05]
+
+D808 DC36; [A4 FB, 05, 05]
+
+D808 DC37; [A4 FD, 05, 05]
+
+D808 DC38; [A5 05, 05, 05]
+
+D808 DC39; [A5 07, 05, 05]
+
+D808 DC3A; [A5 09, 05, 05]
+
+D808 DC3B; [A5 0B, 05, 05]
+
+D808 DC3C; [A5 0D, 05, 05]
+
+D808 DC3D; [A5 0F, 05, 05]
+
+D808 DC3E; [A5 11, 05, 05]
+
+D808 DC3F; [A5 13, 05, 05]
+
+D808 DC40; [A5 15, 05, 05]
+
+D808 DC41; [A5 17, 05, 05]
+
+D808 DC42; [A5 19, 05, 05]
+
+D808 DC43; [A5 1B, 05, 05]
+
+D808 DC44; [A5 1D, 05, 05]
+
+D808 DC45; [A5 1F, 05, 05]
+
+D808 DC46; [A5 21, 05, 05]
+
+D808 DC47; [A5 23, 05, 05]
+
+D808 DC48; [A5 25, 05, 05]
+
+D808 DC49; [A5 27, 05, 05]
+
+D808 DC4A; [A5 29, 05, 05]
+
+D808 DC4B; [A5 2B, 05, 05]
+
+D808 DC4C; [A5 2D, 05, 05]
+
+D808 DC4D; [A5 2F, 05, 05]
+
+D808 DC4E; [A5 31, 05, 05]
+
+D808 DC4F; [A5 33, 05, 05]
+
+D808 DC50; [A5 35, 05, 05]
+
+D808 DC51; [A5 37, 05, 05]
+
+D808 DC52; [A5 39, 05, 05]
+
+D808 DC53; [A5 3B, 05, 05]
+
+D808 DC54; [A5 3D, 05, 05]
+
+D808 DC55; [A5 3F, 05, 05]
+
+D808 DC56; [A5 41, 05, 05]
+
+D808 DC57; [A5 43, 05, 05]
+
+D808 DC58; [A5 45, 05, 05]
+
+D808 DC59; [A5 47, 05, 05]
+
+D808 DC5A; [A5 49, 05, 05]
+
+D808 DC5B; [A5 4B, 05, 05]
+
+D808 DC5C; [A5 4D, 05, 05]
+
+D808 DC5D; [A5 4F, 05, 05]
+
+D808 DC5E; [A5 51, 05, 05]
+
+D808 DC5F; [A5 53, 05, 05]
+
+D808 DC60; [A5 55, 05, 05]
+
+D808 DC61; [A5 57, 05, 05]
+
+D808 DC62; [A5 59, 05, 05]
+
+D808 DC63; [A5 5B, 05, 05]
+
+D808 DC64; [A5 5D, 05, 05]
+
+D808 DC65; [A5 5F, 05, 05]
+
+D808 DC66; [A5 61, 05, 05]
+
+D808 DC67; [A5 63, 05, 05]
+
+D808 DC68; [A5 65, 05, 05]
+
+D808 DC69; [A5 67, 05, 05]
+
+D808 DC6A; [A5 69, 05, 05]
+
+D808 DC6B; [A5 6B, 05, 05]
+
+D808 DC6C; [A5 6D, 05, 05]
+
+D808 DC6D; [A5 6F, 05, 05]
+
+D808 DC6E; [A5 71, 05, 05]
+
+D808 DC6F; [A5 73, 05, 05]
+
+D808 DC70; [A5 75, 05, 05]
+
+D808 DC71; [A5 77, 05, 05]
+
+D808 DC72; [A5 79, 05, 05]
+
+D808 DC73; [A5 7B, 05, 05]
+
+D808 DC74; [A5 7D, 05, 05]
+
+D808 DC75; [A5 7F, 05, 05]
+
+D808 DC76; [A5 81, 05, 05]
+
+D808 DC77; [A5 83, 05, 05]
+
+D808 DC78; [A5 85, 05, 05]
+
+D808 DC79; [A5 87, 05, 05]
+
+D808 DC7A; [A5 89, 05, 05]
+
+D808 DC7B; [A5 8B, 05, 05]
+
+D808 DC7C; [A5 8D, 05, 05]
+
+D808 DC7D; [A5 8F, 05, 05]
+
+D808 DC7E; [A5 91, 05, 05]
+
+D808 DC7F; [A5 93, 05, 05]
+
+D808 DC80; [A5 95, 05, 05]
+
+D808 DC81; [A5 97, 05, 05]
+
+D808 DC82; [A5 99, 05, 05]
+
+D808 DC83; [A5 9B, 05, 05]
+
+D808 DC84; [A5 9D, 05, 05]
+
+D808 DC85; [A5 9F, 05, 05]
+
+D808 DC86; [A5 A1, 05, 05]
+
+D808 DC87; [A5 A3, 05, 05]
+
+D808 DC88; [A5 A5, 05, 05]
+
+D808 DC89; [A5 A7, 05, 05]
+
+D808 DC8A; [A5 A9, 05, 05]
+
+D808 DC8B; [A5 AB, 05, 05]
+
+D808 DC8C; [A5 AD, 05, 05]
+
+D808 DC8D; [A5 AF, 05, 05]
+
+D808 DC8E; [A5 B1, 05, 05]
+
+D808 DC8F; [A5 B3, 05, 05]
+
+D808 DC90; [A5 B5, 05, 05]
+
+D808 DC91; [A5 B7, 05, 05]
+
+D808 DC92; [A5 B9, 05, 05]
+
+D808 DC93; [A5 BB, 05, 05]
+
+D808 DC94; [A5 BD, 05, 05]
+
+D808 DC95; [A5 BF, 05, 05]
+
+D808 DC96; [A5 C1, 05, 05]
+
+D808 DC97; [A5 C3, 05, 05]
+
+D808 DC98; [A5 C5, 05, 05]
+
+D808 DC99; [A5 C7, 05, 05]
+
+D808 DC9A; [A5 C9, 05, 05]
+
+D808 DC9B; [A5 CB, 05, 05]
+
+D808 DC9C; [A5 CD, 05, 05]
+
+D808 DC9D; [A5 CF, 05, 05]
+
+D808 DC9E; [A5 D1, 05, 05]
+
+D808 DC9F; [A5 D3, 05, 05]
+
+D808 DCA0; [A5 D5, 05, 05]
+
+D808 DCA1; [A5 D7, 05, 05]
+
+D808 DCA2; [A5 D9, 05, 05]
+
+D808 DCA3; [A5 DB, 05, 05]
+
+D808 DCA4; [A5 DD, 05, 05]
+
+D808 DCA5; [A5 DF, 05, 05]
+
+D808 DCA6; [A5 E1, 05, 05]
+
+D808 DCA7; [A5 E3, 05, 05]
+
+D808 DCA8; [A5 E5, 05, 05]
+
+D808 DCA9; [A5 E7, 05, 05]
+
+D808 DCAA; [A5 E9, 05, 05]
+
+D808 DCAB; [A5 EB, 05, 05]
+
+D808 DCAC; [A5 ED, 05, 05]
+
+D808 DCAD; [A5 EF, 05, 05]
+
+D808 DCAE; [A5 F1, 05, 05]
+
+D808 DCAF; [A5 F3, 05, 05]
+
+D808 DCB0; [A5 F5, 05, 05]
+
+D808 DCB1; [A5 F7, 05, 05]
+
+D808 DCB2; [A5 F9, 05, 05]
+
+D808 DCB3; [A5 FB, 05, 05]
+
+D808 DCB4; [A5 FD, 05, 05]
+
+D808 DCB5; [A6 05, 05, 05]
+
+D808 DCB6; [A6 07, 05, 05]
+
+D808 DCB7; [A6 09, 05, 05]
+
+D808 DCB8; [A6 0B, 05, 05]
+
+D808 DCB9; [A6 0D, 05, 05]
+
+D808 DCBA; [A6 0F, 05, 05]
+
+D808 DCBB; [A6 11, 05, 05]
+
+D808 DCBC; [A6 13, 05, 05]
+
+D808 DCBD; [A6 15, 05, 05]
+
+D808 DCBE; [A6 17, 05, 05]
+
+D808 DCBF; [A6 19, 05, 05]
+
+D808 DCC0; [A6 1B, 05, 05]
+
+D808 DCC1; [A6 1D, 05, 05]
+
+D808 DCC2; [A6 1F, 05, 05]
+
+D808 DCC3; [A6 21, 05, 05]
+
+D808 DCC4; [A6 23, 05, 05]
+
+D808 DCC5; [A6 25, 05, 05]
+
+D808 DCC6; [A6 27, 05, 05]
+
+D808 DCC7; [A6 29, 05, 05]
+
+D808 DCC8; [A6 2B, 05, 05]
+
+D808 DCC9; [A6 2D, 05, 05]
+
+D808 DCCA; [A6 2F, 05, 05]
+
+D808 DCCB; [A6 31, 05, 05]
+
+D808 DCCC; [A6 33, 05, 05]
+
+D808 DCCD; [A6 35, 05, 05]
+
+D808 DCCE; [A6 37, 05, 05]
+
+D808 DCCF; [A6 39, 05, 05]
+
+D808 DCD0; [A6 3B, 05, 05]
+
+D808 DCD1; [A6 3D, 05, 05]
+
+D808 DCD2; [A6 3F, 05, 05]
+
+D808 DCD3; [A6 41, 05, 05]
+
+D808 DCD4; [A6 43, 05, 05]
+
+D808 DCD5; [A6 45, 05, 05]
+
+D808 DCD6; [A6 47, 05, 05]
+
+D808 DCD7; [A6 49, 05, 05]
+
+D808 DCD8; [A6 4B, 05, 05]
+
+D808 DCD9; [A6 4D, 05, 05]
+
+D808 DCDA; [A6 4F, 05, 05]
+
+D808 DCDB; [A6 51, 05, 05]
+
+D808 DCDC; [A6 53, 05, 05]
+
+D808 DCDD; [A6 55, 05, 05]
+
+D808 DCDE; [A6 57, 05, 05]
+
+D808 DCDF; [A6 59, 05, 05]
+
+D808 DCE0; [A6 5B, 05, 05]
+
+D808 DCE1; [A6 5D, 05, 05]
+
+D808 DCE2; [A6 5F, 05, 05]
+
+D808 DCE3; [A6 61, 05, 05]
+
+D808 DCE4; [A6 63, 05, 05]
+
+D808 DCE5; [A6 65, 05, 05]
+
+D808 DCE6; [A6 67, 05, 05]
+
+D808 DCE7; [A6 69, 05, 05]
+
+D808 DCE8; [A6 6B, 05, 05]
+
+D808 DCE9; [A6 6D, 05, 05]
+
+D808 DCEA; [A6 6F, 05, 05]
+
+D808 DCEB; [A6 71, 05, 05]
+
+D808 DCEC; [A6 73, 05, 05]
+
+D808 DCED; [A6 75, 05, 05]
+
+D808 DCEE; [A6 77, 05, 05]
+
+D808 DCEF; [A6 79, 05, 05]
+
+D808 DCF0; [A6 7B, 05, 05]
+
+D808 DCF1; [A6 7D, 05, 05]
+
+D808 DCF2; [A6 7F, 05, 05]
+
+D808 DCF3; [A6 81, 05, 05]
+
+D808 DCF4; [A6 83, 05, 05]
+
+D808 DCF5; [A6 85, 05, 05]
+
+D808 DCF6; [A6 87, 05, 05]
+
+D808 DCF7; [A6 89, 05, 05]
+
+D808 DCF8; [A6 8B, 05, 05]
+
+D808 DCF9; [A6 8D, 05, 05]
+
+D808 DCFA; [A6 8F, 05, 05]
+
+D808 DCFB; [A6 91, 05, 05]
+
+D808 DCFC; [A6 93, 05, 05]
+
+D808 DCFD; [A6 95, 05, 05]
+
+D808 DCFE; [A6 97, 05, 05]
+
+D808 DCFF; [A6 99, 05, 05]
+
+D808 DD00; [A6 9B, 05, 05]
+
+D808 DD01; [A6 9D, 05, 05]
+
+D808 DD02; [A6 9F, 05, 05]
+
+D808 DD03; [A6 A1, 05, 05]
+
+D808 DD04; [A6 A3, 05, 05]
+
+D808 DD05; [A6 A5, 05, 05]
+
+D808 DD06; [A6 A7, 05, 05]
+
+D808 DD07; [A6 A9, 05, 05]
+
+D808 DD08; [A6 AB, 05, 05]
+
+D808 DD09; [A6 AD, 05, 05]
+
+D808 DD0A; [A6 AF, 05, 05]
+
+D808 DD0B; [A6 B1, 05, 05]
+
+D808 DD0C; [A6 B3, 05, 05]
+
+D808 DD0D; [A6 B5, 05, 05]
+
+D808 DD0E; [A6 B7, 05, 05]
+
+D808 DD0F; [A6 B9, 05, 05]
+
+D808 DD10; [A6 BB, 05, 05]
+
+D808 DD11; [A6 BD, 05, 05]
+
+D808 DD12; [A6 BF, 05, 05]
+
+D808 DD13; [A6 C1, 05, 05]
+
+D808 DD14; [A6 C3, 05, 05]
+
+D808 DD15; [A6 C5, 05, 05]
+
+D808 DD16; [A6 C7, 05, 05]
+
+D808 DD17; [A6 C9, 05, 05]
+
+D808 DD18; [A6 CB, 05, 05]
+
+D808 DD19; [A6 CD, 05, 05]
+
+D808 DD1A; [A6 CF, 05, 05]
+
+D808 DD1B; [A6 D1, 05, 05]
+
+D808 DD1C; [A6 D3, 05, 05]
+
+D808 DD1D; [A6 D5, 05, 05]
+
+D808 DD1E; [A6 D7, 05, 05]
+
+D808 DD1F; [A6 D9, 05, 05]
+
+D808 DD20; [A6 DB, 05, 05]
+
+D808 DD21; [A6 DD, 05, 05]
+
+D808 DD22; [A6 DF, 05, 05]
+
+D808 DD23; [A6 E1, 05, 05]
+
+D808 DD24; [A6 E3, 05, 05]
+
+D808 DD25; [A6 E5, 05, 05]
+
+D808 DD26; [A6 E7, 05, 05]
+
+D808 DD27; [A6 E9, 05, 05]
+
+D808 DD28; [A6 EB, 05, 05]
+
+D808 DD29; [A6 ED, 05, 05]
+
+D808 DD2A; [A6 EF, 05, 05]
+
+D808 DD2B; [A6 F1, 05, 05]
+
+D808 DD2C; [A6 F3, 05, 05]
+
+D808 DD2D; [A6 F5, 05, 05]
+
+D808 DD2E; [A6 F7, 05, 05]
+
+D808 DD2F; [A6 F9, 05, 05]
+
+D808 DD30; [A6 FB, 05, 05]
+
+D808 DD31; [A6 FD, 05, 05]
+
+D808 DD32; [A7 05, 05, 05]
+
+D808 DD33; [A7 07, 05, 05]
+
+D808 DD34; [A7 09, 05, 05]
+
+D808 DD35; [A7 0B, 05, 05]
+
+D808 DD36; [A7 0D, 05, 05]
+
+D808 DD37; [A7 0F, 05, 05]
+
+D808 DD38; [A7 11, 05, 05]
+
+D808 DD39; [A7 13, 05, 05]
+
+D808 DD3A; [A7 15, 05, 05]
+
+D808 DD3B; [A7 17, 05, 05]
+
+D808 DD3C; [A7 19, 05, 05]
+
+D808 DD3D; [A7 1B, 05, 05]
+
+D808 DD3E; [A7 1D, 05, 05]
+
+D808 DD3F; [A7 1F, 05, 05]
+
+D808 DD40; [A7 21, 05, 05]
+
+D808 DD41; [A7 23, 05, 05]
+
+D808 DD42; [A7 25, 05, 05]
+
+D808 DD43; [A7 27, 05, 05]
+
+D808 DD44; [A7 29, 05, 05]
+
+D808 DD45; [A7 2B, 05, 05]
+
+D808 DD46; [A7 2D, 05, 05]
+
+D808 DD47; [A7 2F, 05, 05]
+
+D808 DD48; [A7 31, 05, 05]
+
+D808 DD49; [A7 33, 05, 05]
+
+D808 DD4A; [A7 35, 05, 05]
+
+D808 DD4B; [A7 37, 05, 05]
+
+D808 DD4C; [A7 39, 05, 05]
+
+D808 DD4D; [A7 3B, 05, 05]
+
+D808 DD4E; [A7 3D, 05, 05]
+
+D808 DD4F; [A7 3F, 05, 05]
+
+D808 DD50; [A7 41, 05, 05]
+
+D808 DD51; [A7 43, 05, 05]
+
+D808 DD52; [A7 45, 05, 05]
+
+D808 DD53; [A7 47, 05, 05]
+
+D808 DD54; [A7 49, 05, 05]
+
+D808 DD55; [A7 4B, 05, 05]
+
+D808 DD56; [A7 4D, 05, 05]
+
+D808 DD57; [A7 4F, 05, 05]
+
+D808 DD58; [A7 51, 05, 05]
+
+D808 DD59; [A7 53, 05, 05]
+
+D808 DD5A; [A7 55, 05, 05]
+
+D808 DD5B; [A7 57, 05, 05]
+
+D808 DD5C; [A7 59, 05, 05]
+
+D808 DD5D; [A7 5B, 05, 05]
+
+D808 DD5E; [A7 5D, 05, 05]
+
+D808 DD5F; [A7 5F, 05, 05]
+
+D808 DD60; [A7 61, 05, 05]
+
+D808 DD61; [A7 63, 05, 05]
+
+D808 DD62; [A7 65, 05, 05]
+
+D808 DD63; [A7 67, 05, 05]
+
+D808 DD64; [A7 69, 05, 05]
+
+D808 DD65; [A7 6B, 05, 05]
+
+D808 DD66; [A7 6D, 05, 05]
+
+D808 DD67; [A7 6F, 05, 05]
+
+D808 DD68; [A7 71, 05, 05]
+
+D808 DD69; [A7 73, 05, 05]
+
+D808 DD6A; [A7 75, 05, 05]
+
+D808 DD6B; [A7 77, 05, 05]
+
+D808 DD6C; [A7 79, 05, 05]
+
+D808 DD6D; [A7 7B, 05, 05]
+
+D808 DD6E; [A7 7D, 05, 05]
+
+D808 DD6F; [A7 7F, 05, 05]
+
+D808 DD70; [A7 81, 05, 05]
+
+D808 DD71; [A7 83, 05, 05]
+
+D808 DD72; [A7 85, 05, 05]
+
+D808 DD73; [A7 87, 05, 05]
+
+D808 DD74; [A7 89, 05, 05]
+
+D808 DD75; [A7 8B, 05, 05]
+
+D808 DD76; [A7 8D, 05, 05]
+
+D808 DD77; [A7 8F, 05, 05]
+
+D808 DD78; [A7 91, 05, 05]
+
+D808 DD79; [A7 93, 05, 05]
+
+D808 DD7A; [A7 95, 05, 05]
+
+D808 DD7B; [A7 97, 05, 05]
+
+D808 DD7C; [A7 99, 05, 05]
+
+D808 DD7D; [A7 9B, 05, 05]
+
+D808 DD7E; [A7 9D, 05, 05]
+
+D808 DD7F; [A7 9F, 05, 05]
+
+D808 DD80; [A7 A1, 05, 05]
+
+D808 DD81; [A7 A3, 05, 05]
+
+D808 DD82; [A7 A5, 05, 05]
+
+D808 DD83; [A7 A7, 05, 05]
+
+D808 DD84; [A7 A9, 05, 05]
+
+D808 DD85; [A7 AB, 05, 05]
+
+D808 DD86; [A7 AD, 05, 05]
+
+D808 DD87; [A7 AF, 05, 05]
+
+D808 DD88; [A7 B1, 05, 05]
+
+D808 DD89; [A7 B3, 05, 05]
+
+D808 DD8A; [A7 B5, 05, 05]
+
+D808 DD8B; [A7 B7, 05, 05]
+
+D808 DD8C; [A7 B9, 05, 05]
+
+D808 DD8D; [A7 BB, 05, 05]
+
+D808 DD8E; [A7 BD, 05, 05]
+
+D808 DD8F; [A7 BF, 05, 05]
+
+D808 DD90; [A7 C1, 05, 05]
+
+D808 DD91; [A7 C3, 05, 05]
+
+D808 DD92; [A7 C5, 05, 05]
+
+D808 DD93; [A7 C7, 05, 05]
+
+D808 DD94; [A7 C9, 05, 05]
+
+D808 DD95; [A7 CB, 05, 05]
+
+D808 DD96; [A7 CD, 05, 05]
+
+D808 DD97; [A7 CF, 05, 05]
+
+D808 DD98; [A7 D1, 05, 05]
+
+D808 DD99; [A7 D3, 05, 05]
+
+D808 DD9A; [A7 D5, 05, 05]
+
+D808 DD9B; [A7 D7, 05, 05]
+
+D808 DD9C; [A7 D9, 05, 05]
+
+D808 DD9D; [A7 DB, 05, 05]
+
+D808 DD9E; [A7 DD, 05, 05]
+
+D808 DD9F; [A7 DF, 05, 05]
+
+D808 DDA0; [A7 E1, 05, 05]
+
+D808 DDA1; [A7 E3, 05, 05]
+
+D808 DDA2; [A7 E5, 05, 05]
+
+D808 DDA3; [A7 E7, 05, 05]
+
+D808 DDA4; [A7 E9, 05, 05]
+
+D808 DDA5; [A7 EB, 05, 05]
+
+D808 DDA6; [A7 ED, 05, 05]
+
+D808 DDA7; [A7 EF, 05, 05]
+
+D808 DDA8; [A7 F1, 05, 05]
+
+D808 DDA9; [A7 F3, 05, 05]
+
+D808 DDAA; [A7 F5, 05, 05]
+
+D808 DDAB; [A7 F7, 05, 05]
+
+D808 DDAC; [A7 F9, 05, 05]
+
+D808 DDAD; [A7 FB, 05, 05]
+
+D808 DDAE; [A7 FD, 05, 05]
+
+D808 DDAF; [A8 05, 05, 05]
+
+D808 DDB0; [A8 07, 05, 05]
+
+D808 DDB1; [A8 09, 05, 05]
+
+D808 DDB2; [A8 0B, 05, 05]
+
+D808 DDB3; [A8 0D, 05, 05]
+
+D808 DDB4; [A8 0F, 05, 05]
+
+D808 DDB5; [A8 11, 05, 05]
+
+D808 DDB6; [A8 13, 05, 05]
+
+D808 DDB7; [A8 15, 05, 05]
+
+D808 DDB8; [A8 17, 05, 05]
+
+D808 DDB9; [A8 19, 05, 05]
+
+D808 DDBA; [A8 1B, 05, 05]
+
+D808 DDBB; [A8 1D, 05, 05]
+
+D808 DDBC; [A8 1F, 05, 05]
+
+D808 DDBD; [A8 21, 05, 05]
+
+D808 DDBE; [A8 23, 05, 05]
+
+D808 DDBF; [A8 25, 05, 05]
+
+D808 DDC0; [A8 27, 05, 05]
+
+D808 DDC1; [A8 29, 05, 05]
+
+D808 DDC2; [A8 2B, 05, 05]
+
+D808 DDC3; [A8 2D, 05, 05]
+
+D808 DDC4; [A8 2F, 05, 05]
+
+D808 DDC5; [A8 31, 05, 05]
+
+D808 DDC6; [A8 33, 05, 05]
+
+D808 DDC7; [A8 35, 05, 05]
+
+D808 DDC8; [A8 37, 05, 05]
+
+D808 DDC9; [A8 39, 05, 05]
+
+D808 DDCA; [A8 3B, 05, 05]
+
+D808 DDCB; [A8 3D, 05, 05]
+
+D808 DDCC; [A8 3F, 05, 05]
+
+D808 DDCD; [A8 41, 05, 05]
+
+D808 DDCE; [A8 43, 05, 05]
+
+D808 DDCF; [A8 45, 05, 05]
+
+D808 DDD0; [A8 47, 05, 05]
+
+D808 DDD1; [A8 49, 05, 05]
+
+D808 DDD2; [A8 4B, 05, 05]
+
+D808 DDD3; [A8 4D, 05, 05]
+
+D808 DDD4; [A8 4F, 05, 05]
+
+D808 DDD5; [A8 51, 05, 05]
+
+D808 DDD6; [A8 53, 05, 05]
+
+D808 DDD7; [A8 55, 05, 05]
+
+D808 DDD8; [A8 57, 05, 05]
+
+D808 DDD9; [A8 59, 05, 05]
+
+D808 DDDA; [A8 5B, 05, 05]
+
+D808 DDDB; [A8 5D, 05, 05]
+
+D808 DDDC; [A8 5F, 05, 05]
+
+D808 DDDD; [A8 61, 05, 05]
+
+D808 DDDE; [A8 63, 05, 05]
+
+D808 DDDF; [A8 65, 05, 05]
+
+D808 DDE0; [A8 67, 05, 05]
+
+D808 DDE1; [A8 69, 05, 05]
+
+D808 DDE2; [A8 6B, 05, 05]
+
+D808 DDE3; [A8 6D, 05, 05]
+
+D808 DDE4; [A8 6F, 05, 05]
+
+D808 DDE5; [A8 71, 05, 05]
+
+D808 DDE6; [A8 73, 05, 05]
+
+D808 DDE7; [A8 75, 05, 05]
+
+D808 DDE8; [A8 77, 05, 05]
+
+D808 DDE9; [A8 79, 05, 05]
+
+D808 DDEA; [A8 7B, 05, 05]
+
+D808 DDEB; [A8 7D, 05, 05]
+
+D808 DDEC; [A8 7F, 05, 05]
+
+D808 DDED; [A8 81, 05, 05]
+
+D808 DDEE; [A8 83, 05, 05]
+
+D808 DDEF; [A8 85, 05, 05]
+
+D808 DDF0; [A8 87, 05, 05]
+
+D808 DDF1; [A8 89, 05, 05]
+
+D808 DDF2; [A8 8B, 05, 05]
+
+D808 DDF3; [A8 8D, 05, 05]
+
+D808 DDF4; [A8 8F, 05, 05]
+
+D808 DDF5; [A8 91, 05, 05]
+
+D808 DDF6; [A8 93, 05, 05]
+
+D808 DDF7; [A8 95, 05, 05]
+
+D808 DDF8; [A8 97, 05, 05]
+
+D808 DDF9; [A8 99, 05, 05]
+
+D808 DDFA; [A8 9B, 05, 05]
+
+D808 DDFB; [A8 9D, 05, 05]
+
+D808 DDFC; [A8 9F, 05, 05]
+
+D808 DDFD; [A8 A1, 05, 05]
+
+D808 DDFE; [A8 A3, 05, 05]
+
+D808 DDFF; [A8 A5, 05, 05]
+
+D808 DE00; [A8 A7, 05, 05]
+
+D808 DE01; [A8 A9, 05, 05]
+
+D808 DE02; [A8 AB, 05, 05]
+
+D808 DE03; [A8 AD, 05, 05]
+
+D808 DE04; [A8 AF, 05, 05]
+
+D808 DE05; [A8 B1, 05, 05]
+
+D808 DE06; [A8 B3, 05, 05]
+
+D808 DE07; [A8 B5, 05, 05]
+
+D808 DE08; [A8 B7, 05, 05]
+
+D808 DE09; [A8 B9, 05, 05]
+
+D808 DE0A; [A8 BB, 05, 05]
+
+D808 DE0B; [A8 BD, 05, 05]
+
+D808 DE0C; [A8 BF, 05, 05]
+
+D808 DE0D; [A8 C1, 05, 05]
+
+D808 DE0E; [A8 C3, 05, 05]
+
+D808 DE0F; [A8 C5, 05, 05]
+
+D808 DE10; [A8 C7, 05, 05]
+
+D808 DE11; [A8 C9, 05, 05]
+
+D808 DE12; [A8 CB, 05, 05]
+
+D808 DE13; [A8 CD, 05, 05]
+
+D808 DE14; [A8 CF, 05, 05]
+
+D808 DE15; [A8 D1, 05, 05]
+
+D808 DE16; [A8 D3, 05, 05]
+
+D808 DE17; [A8 D5, 05, 05]
+
+D808 DE18; [A8 D7, 05, 05]
+
+D808 DE19; [A8 D9, 05, 05]
+
+D808 DE1A; [A8 DB, 05, 05]
+
+D808 DE1B; [A8 DD, 05, 05]
+
+D808 DE1C; [A8 DF, 05, 05]
+
+D808 DE1D; [A8 E1, 05, 05]
+
+D808 DE1E; [A8 E3, 05, 05]
+
+D808 DE1F; [A8 E5, 05, 05]
+
+D808 DE20; [A8 E7, 05, 05]
+
+D808 DE21; [A8 E9, 05, 05]
+
+D808 DE22; [A8 EB, 05, 05]
+
+D808 DE23; [A8 ED, 05, 05]
+
+D808 DE24; [A8 EF, 05, 05]
+
+D808 DE25; [A8 F1, 05, 05]
+
+D808 DE26; [A8 F3, 05, 05]
+
+D808 DE27; [A8 F5, 05, 05]
+
+D808 DE28; [A8 F7, 05, 05]
+
+D808 DE29; [A8 F9, 05, 05]
+
+D808 DE2A; [A8 FB, 05, 05]
+
+D808 DE2B; [A8 FD, 05, 05]
+
+D808 DE2C; [A9 05, 05, 05]
+
+D808 DE2D; [A9 07, 05, 05]
+
+D808 DE2E; [A9 09, 05, 05]
+
+D808 DE2F; [A9 0B, 05, 05]
+
+D808 DE30; [A9 0D, 05, 05]
+
+D808 DE31; [A9 0F, 05, 05]
+
+D808 DE32; [A9 11, 05, 05]
+
+D808 DE33; [A9 13, 05, 05]
+
+D808 DE34; [A9 15, 05, 05]
+
+D808 DE35; [A9 17, 05, 05]
+
+D808 DE36; [A9 19, 05, 05]
+
+D808 DE37; [A9 1B, 05, 05]
+
+D808 DE38; [A9 1D, 05, 05]
+
+D808 DE39; [A9 1F, 05, 05]
+
+D808 DE3A; [A9 21, 05, 05]
+
+D808 DE3B; [A9 23, 05, 05]
+
+D808 DE3C; [A9 25, 05, 05]
+
+D808 DE3D; [A9 27, 05, 05]
+
+D808 DE3E; [A9 29, 05, 05]
+
+D808 DE3F; [A9 2B, 05, 05]
+
+D808 DE40; [A9 2D, 05, 05]
+
+D808 DE41; [A9 2F, 05, 05]
+
+D808 DE42; [A9 31, 05, 05]
+
+D808 DE43; [A9 33, 05, 05]
+
+D808 DE44; [A9 35, 05, 05]
+
+D808 DE45; [A9 37, 05, 05]
+
+D808 DE46; [A9 39, 05, 05]
+
+D808 DE47; [A9 3B, 05, 05]
+
+D808 DE48; [A9 3D, 05, 05]
+
+D808 DE49; [A9 3F, 05, 05]
+
+D808 DE4A; [A9 41, 05, 05]
+
+D808 DE4B; [A9 43, 05, 05]
+
+D808 DE4C; [A9 45, 05, 05]
+
+D808 DE4D; [A9 47, 05, 05]
+
+D808 DE4E; [A9 49, 05, 05]
+
+D808 DE4F; [A9 4B, 05, 05]
+
+D808 DE50; [A9 4D, 05, 05]
+
+D808 DE51; [A9 4F, 05, 05]
+
+D808 DE52; [A9 51, 05, 05]
+
+D808 DE53; [A9 53, 05, 05]
+
+D808 DE54; [A9 55, 05, 05]
+
+D808 DE55; [A9 57, 05, 05]
+
+D808 DE56; [A9 59, 05, 05]
+
+D808 DE57; [A9 5B, 05, 05]
+
+D808 DE58; [A9 5D, 05, 05]
+
+D808 DE59; [A9 5F, 05, 05]
+
+D808 DE5A; [A9 61, 05, 05]
+
+D808 DE5B; [A9 63, 05, 05]
+
+D808 DE5C; [A9 65, 05, 05]
+
+D808 DE5D; [A9 67, 05, 05]
+
+D808 DE5E; [A9 69, 05, 05]
+
+D808 DE5F; [A9 6B, 05, 05]
+
+D808 DE60; [A9 6D, 05, 05]
+
+D808 DE61; [A9 6F, 05, 05]
+
+D808 DE62; [A9 71, 05, 05]
+
+D808 DE63; [A9 73, 05, 05]
+
+D808 DE64; [A9 75, 05, 05]
+
+D808 DE65; [A9 77, 05, 05]
+
+D808 DE66; [A9 79, 05, 05]
+
+D808 DE67; [A9 7B, 05, 05]
+
+D808 DE68; [A9 7D, 05, 05]
+
+D808 DE69; [A9 7F, 05, 05]
+
+D808 DE6A; [A9 81, 05, 05]
+
+D808 DE6B; [A9 83, 05, 05]
+
+D808 DE6C; [A9 85, 05, 05]
+
+D808 DE6D; [A9 87, 05, 05]
+
+D808 DE6E; [A9 89, 05, 05]
+
+D808 DE6F; [A9 8B, 05, 05]
+
+D808 DE70; [A9 8D, 05, 05]
+
+D808 DE71; [A9 8F, 05, 05]
+
+D808 DE72; [A9 91, 05, 05]
+
+D808 DE73; [A9 93, 05, 05]
+
+D808 DE74; [A9 95, 05, 05]
+
+D808 DE75; [A9 97, 05, 05]
+
+D808 DE76; [A9 99, 05, 05]
+
+D808 DE77; [A9 9B, 05, 05]
+
+D808 DE78; [A9 9D, 05, 05]
+
+D808 DE79; [A9 9F, 05, 05]
+
+D808 DE7A; [A9 A1, 05, 05]
+
+D808 DE7B; [A9 A3, 05, 05]
+
+D808 DE7C; [A9 A5, 05, 05]
+
+D808 DE7D; [A9 A7, 05, 05]
+
+D808 DE7E; [A9 A9, 05, 05]
+
+D808 DE7F; [A9 AB, 05, 05]
+
+D808 DE80; [A9 AD, 05, 05]
+
+D808 DE81; [A9 AF, 05, 05]
+
+D808 DE82; [A9 B1, 05, 05]
+
+D808 DE83; [A9 B3, 05, 05]
+
+D808 DE84; [A9 B5, 05, 05]
+
+D808 DE85; [A9 B7, 05, 05]
+
+D808 DE86; [A9 B9, 05, 05]
+
+D808 DE87; [A9 BB, 05, 05]
+
+D808 DE88; [A9 BD, 05, 05]
+
+D808 DE89; [A9 BF, 05, 05]
+
+D808 DE8A; [A9 C1, 05, 05]
+
+D808 DE8B; [A9 C3, 05, 05]
+
+D808 DE8C; [A9 C5, 05, 05]
+
+D808 DE8D; [A9 C7, 05, 05]
+
+D808 DE8E; [A9 C9, 05, 05]
+
+D808 DE8F; [A9 CB, 05, 05]
+
+D808 DE90; [A9 CD, 05, 05]
+
+D808 DE91; [A9 CF, 05, 05]
+
+D808 DE92; [A9 D1, 05, 05]
+
+D808 DE93; [A9 D3, 05, 05]
+
+D808 DE94; [A9 D5, 05, 05]
+
+D808 DE95; [A9 D7, 05, 05]
+
+D808 DE96; [A9 D9, 05, 05]
+
+D808 DE97; [A9 DB, 05, 05]
+
+D808 DE98; [A9 DD, 05, 05]
+
+D808 DE99; [A9 DF, 05, 05]
+
+D808 DE9A; [A9 E1, 05, 05]
+
+D808 DE9B; [A9 E3, 05, 05]
+
+D808 DE9C; [A9 E5, 05, 05]
+
+D808 DE9D; [A9 E7, 05, 05]
+
+D808 DE9E; [A9 E9, 05, 05]
+
+D808 DE9F; [A9 EB, 05, 05]
+
+D808 DEA0; [A9 ED, 05, 05]
+
+D808 DEA1; [A9 EF, 05, 05]
+
+D808 DEA2; [A9 F1, 05, 05]
+
+D808 DEA3; [A9 F3, 05, 05]
+
+D808 DEA4; [A9 F5, 05, 05]
+
+D808 DEA5; [A9 F7, 05, 05]
+
+D808 DEA6; [A9 F9, 05, 05]
+
+D808 DEA7; [A9 FB, 05, 05]
+
+D808 DEA8; [A9 FD, 05, 05]
+
+D808 DEA9; [AA 05, 05, 05]
+
+D808 DEAA; [AA 07, 05, 05]
+
+D808 DEAB; [AA 09, 05, 05]
+
+D808 DEAC; [AA 0B, 05, 05]
+
+D808 DEAD; [AA 0D, 05, 05]
+
+D808 DEAE; [AA 0F, 05, 05]
+
+D808 DEAF; [AA 11, 05, 05]
+
+D808 DEB0; [AA 13, 05, 05]
+
+D808 DEB1; [AA 15, 05, 05]
+
+D808 DEB2; [AA 17, 05, 05]
+
+D808 DEB3; [AA 19, 05, 05]
+
+D808 DEB4; [AA 1B, 05, 05]
+
+D808 DEB5; [AA 1D, 05, 05]
+
+D808 DEB6; [AA 1F, 05, 05]
+
+D808 DEB7; [AA 21, 05, 05]
+
+D808 DEB8; [AA 23, 05, 05]
+
+D808 DEB9; [AA 25, 05, 05]
+
+D808 DEBA; [AA 27, 05, 05]
+
+D808 DEBB; [AA 29, 05, 05]
+
+D808 DEBC; [AA 2B, 05, 05]
+
+D808 DEBD; [AA 2D, 05, 05]
+
+D808 DEBE; [AA 2F, 05, 05]
+
+D808 DEBF; [AA 31, 05, 05]
+
+D808 DEC0; [AA 33, 05, 05]
+
+D808 DEC1; [AA 35, 05, 05]
+
+D808 DEC2; [AA 37, 05, 05]
+
+D808 DEC3; [AA 39, 05, 05]
+
+D808 DEC4; [AA 3B, 05, 05]
+
+D808 DEC5; [AA 3D, 05, 05]
+
+D808 DEC6; [AA 3F, 05, 05]
+
+D808 DEC7; [AA 41, 05, 05]
+
+D808 DEC8; [AA 43, 05, 05]
+
+D808 DEC9; [AA 45, 05, 05]
+
+D808 DECA; [AA 47, 05, 05]
+
+D808 DECB; [AA 49, 05, 05]
+
+D808 DECC; [AA 4B, 05, 05]
+
+D808 DECD; [AA 4D, 05, 05]
+
+D808 DECE; [AA 4F, 05, 05]
+
+D808 DECF; [AA 51, 05, 05]
+
+D808 DED0; [AA 53, 05, 05]
+
+D808 DED1; [AA 55, 05, 05]
+
+D808 DED2; [AA 57, 05, 05]
+
+D808 DED3; [AA 59, 05, 05]
+
+D808 DED4; [AA 5B, 05, 05]
+
+D808 DED5; [AA 5D, 05, 05]
+
+D808 DED6; [AA 5F, 05, 05]
+
+D808 DED7; [AA 61, 05, 05]
+
+D808 DED8; [AA 63, 05, 05]
+
+D808 DED9; [AA 65, 05, 05]
+
+D808 DEDA; [AA 67, 05, 05]
+
+D808 DEDB; [AA 69, 05, 05]
+
+D808 DEDC; [AA 6B, 05, 05]
+
+D808 DEDD; [AA 6D, 05, 05]
+
+D808 DEDE; [AA 6F, 05, 05]
+
+D808 DEDF; [AA 71, 05, 05]
+
+D808 DEE0; [AA 73, 05, 05]
+
+D808 DEE1; [AA 75, 05, 05]
+
+D808 DEE2; [AA 77, 05, 05]
+
+D808 DEE3; [AA 79, 05, 05]
+
+D808 DEE4; [AA 7B, 05, 05]
+
+D808 DEE5; [AA 7D, 05, 05]
+
+D808 DEE6; [AA 7F, 05, 05]
+
+D808 DEE7; [AA 81, 05, 05]
+
+D808 DEE8; [AA 83, 05, 05]
+
+D808 DEE9; [AA 85, 05, 05]
+
+D808 DEEA; [AA 87, 05, 05]
+
+D808 DEEB; [AA 89, 05, 05]
+
+D808 DEEC; [AA 8B, 05, 05]
+
+D808 DEED; [AA 8D, 05, 05]
+
+D808 DEEE; [AA 8F, 05, 05]
+
+D808 DEEF; [AA 91, 05, 05]
+
+D808 DEF0; [AA 93, 05, 05]
+
+D808 DEF1; [AA 95, 05, 05]
+
+D808 DEF2; [AA 97, 05, 05]
+
+D808 DEF3; [AA 99, 05, 05]
+
+D808 DEF4; [AA 9B, 05, 05]
+
+D808 DEF5; [AA 9D, 05, 05]
+
+D808 DEF6; [AA 9F, 05, 05]
+
+D808 DEF7; [AA A1, 05, 05]
+
+D808 DEF8; [AA A3, 05, 05]
+
+D808 DEF9; [AA A5, 05, 05]
+
+D808 DEFA; [AA A7, 05, 05]
+
+D808 DEFB; [AA A9, 05, 05]
+
+D808 DEFC; [AA AB, 05, 05]
+
+D808 DEFD; [AA AD, 05, 05]
+
+D808 DEFE; [AA AF, 05, 05]
+
+D808 DEFF; [AA B1, 05, 05]
+
+D808 DF00; [AA B3, 05, 05]
+
+D808 DF01; [AA B5, 05, 05]
+
+D808 DF02; [AA B7, 05, 05]
+
+D808 DF03; [AA B9, 05, 05]
+
+D808 DF04; [AA BB, 05, 05]
+
+D808 DF05; [AA BD, 05, 05]
+
+D808 DF06; [AA BF, 05, 05]
+
+D808 DF07; [AA C1, 05, 05]
+
+D808 DF08; [AA C3, 05, 05]
+
+D808 DF09; [AA C5, 05, 05]
+
+D808 DF0A; [AA C7, 05, 05]
+
+D808 DF0B; [AA C9, 05, 05]
+
+D808 DF0C; [AA CB, 05, 05]
+
+D808 DF0D; [AA CD, 05, 05]
+
+D808 DF0E; [AA CF, 05, 05]
+
+D808 DF0F; [AA D1, 05, 05]
+
+D808 DF10; [AA D3, 05, 05]
+
+D808 DF11; [AA D5, 05, 05]
+
+D808 DF12; [AA D7, 05, 05]
+
+D808 DF13; [AA D9, 05, 05]
+
+D808 DF14; [AA DB, 05, 05]
+
+D808 DF15; [AA DD, 05, 05]
+
+D808 DF16; [AA DF, 05, 05]
+
+D808 DF17; [AA E1, 05, 05]
+
+D808 DF18; [AA E3, 05, 05]
+
+D808 DF19; [AA E5, 05, 05]
+
+D808 DF1A; [AA E7, 05, 05]
+
+D808 DF1B; [AA E9, 05, 05]
+
+D808 DF1C; [AA EB, 05, 05]
+
+D808 DF1D; [AA ED, 05, 05]
+
+D808 DF1E; [AA EF, 05, 05]
+
+D808 DF1F; [AA F1, 05, 05]
+
+D808 DF20; [AA F3, 05, 05]
+
+D808 DF21; [AA F5, 05, 05]
+
+D808 DF22; [AA F7, 05, 05]
+
+D808 DF23; [AA F9, 05, 05]
+
+D808 DF24; [AA FB, 05, 05]
+
+D808 DF25; [AA FD, 05, 05]
+
+D808 DF26; [AB 05, 05, 05]
+
+D808 DF27; [AB 07, 05, 05]
+
+D808 DF28; [AB 09, 05, 05]
+
+D808 DF29; [AB 0B, 05, 05]
+
+D808 DF2A; [AB 0D, 05, 05]
+
+D808 DF2B; [AB 0F, 05, 05]
+
+D808 DF2C; [AB 11, 05, 05]
+
+D808 DF2D; [AB 13, 05, 05]
+
+D808 DF2E; [AB 15, 05, 05]
+
+D808 DF2F; [AB 17, 05, 05]
+
+D808 DF30; [AB 19, 05, 05]
+
+D808 DF31; [AB 1B, 05, 05]
+
+D808 DF32; [AB 1D, 05, 05]
+
+D808 DF33; [AB 1F, 05, 05]
+
+D808 DF34; [AB 21, 05, 05]
+
+D808 DF35; [AB 23, 05, 05]
+
+D808 DF36; [AB 25, 05, 05]
+
+D808 DF37; [AB 27, 05, 05]
+
+D808 DF38; [AB 29, 05, 05]
+
+D808 DF39; [AB 2B, 05, 05]
+
+D808 DF3A; [AB 2D, 05, 05]
+
+D808 DF3B; [AB 2F, 05, 05]
+
+D808 DF3C; [AB 31, 05, 05]
+
+D808 DF3D; [AB 33, 05, 05]
+
+D808 DF3E; [AB 35, 05, 05]
+
+D808 DF3F; [AB 37, 05, 05]
+
+D808 DF40; [AB 39, 05, 05]
+
+D808 DF41; [AB 3B, 05, 05]
+
+D808 DF42; [AB 3D, 05, 05]
+
+D808 DF43; [AB 3F, 05, 05]
+
+D808 DF44; [AB 41, 05, 05]
+
+D808 DF45; [AB 43, 05, 05]
+
+D808 DF46; [AB 45, 05, 05]
+
+D808 DF47; [AB 47, 05, 05]
+
+D808 DF48; [AB 49, 05, 05]
+
+D808 DF49; [AB 4B, 05, 05]
+
+D808 DF4A; [AB 4D, 05, 05]
+
+D808 DF4B; [AB 4F, 05, 05]
+
+D808 DF4C; [AB 51, 05, 05]
+
+D808 DF4D; [AB 53, 05, 05]
+
+D808 DF4E; [AB 55, 05, 05]
+
+D808 DF4F; [AB 57, 05, 05]
+
+D808 DF50; [AB 59, 05, 05]
+
+D808 DF51; [AB 5B, 05, 05]
+
+D808 DF52; [AB 5D, 05, 05]
+
+D808 DF53; [AB 5F, 05, 05]
+
+D808 DF54; [AB 61, 05, 05]
+
+D808 DF55; [AB 63, 05, 05]
+
+D808 DF56; [AB 65, 05, 05]
+
+D808 DF57; [AB 67, 05, 05]
+
+D808 DF58; [AB 69, 05, 05]
+
+D808 DF59; [AB 6B, 05, 05]
+
+D808 DF5A; [AB 6D, 05, 05]
+
+D808 DF5B; [AB 6F, 05, 05]
+
+D808 DF5C; [AB 71, 05, 05]
+
+D808 DF5D; [AB 73, 05, 05]
+
+D808 DF5E; [AB 75, 05, 05]
+
+D808 DF5F; [AB 77, 05, 05]
+
+D808 DF60; [AB 79, 05, 05]
+
+D808 DF61; [AB 7B, 05, 05]
+
+D808 DF62; [AB 7D, 05, 05]
+
+D808 DF63; [AB 7F, 05, 05]
+
+D808 DF64; [AB 81, 05, 05]
+
+D808 DF65; [AB 83, 05, 05]
+
+D808 DF66; [AB 85, 05, 05]
+
+D808 DF67; [AB 87, 05, 05]
+
+D808 DF68; [AB 89, 05, 05]
+
+D808 DF69; [AB 8B, 05, 05]
+
+D808 DF6A; [AB 8D, 05, 05]
+
+D808 DF6B; [AB 8F, 05, 05]
+
+D808 DF6C; [AB 91, 05, 05]
+
+D808 DF6D; [AB 93, 05, 05]
+
+D808 DF6E; [AB 95, 05, 05]
2F00; [E0 04 06, 05, 09]
3280; [E0 04 06, 05, 0D]
@@ -24557,7 +27122,7 @@ FA70; [E0 04 52, 05, 05]
3197; [E0 04 60, 05, 27]
F905; [E0 04 6A, 05, 05]
2F02; [E0 04 72, 05, 09]
-2E80; [E0 04 72, 05, 09][, E2 75, 3D]
+2E80; [E0 04 72, 05, 09][, E4 4D, 3D]
D87E DC01; [E0 04 76, 05, 05]
F95E; [E0 04 78, 05, 05]
D87E DC00; [E0 04 80, 05, 05]
@@ -24565,7 +27130,7 @@ D87E DC00; [E0 04 80, 05, 05]
D87E DC02; [E0 04 88, 05, 05]
2F04; [E0 04 B8, 05, 09]
319A; [E0 04 B8, 05, 27]
-2E84; [E0 04 B8, 05, 09][, E2 75, 3D]
+2E84; [E0 04 B8, 05, 09][, E4 4D, 3D]
2E83; [E0 04 BA, 05, 09]
2E82; [E0 04 BC, 05, 09]
3288; [E0 04 C0, 05, 0D]
@@ -24621,7 +27186,7 @@ F9D1; [E0 0B 0A, 05, 05]
D87E DC11; [E0 0B 1E, 05, 05]
FA75; [E0 0B 30, 05, 05]
2F0C; [E0 0B 34, 05, 09]
-2E86; [E0 0B 34, 05, 09][, E2 75, 3D]
+2E86; [E0 0B 34, 05, 09][, E4 4D, 3D]
D87E DC15; [E0 0B 4A, 05, 05]
D87E DCD2; [E0 0B 54, 05, 05]
D87E DCD3; [E0 0B 5A, 05, 05]
@@ -24639,11 +27204,11 @@ F955; [E0 0B C8, 05, 05]
F954; [E0 0B E8, 05, 05]
FA15; [E0 0B EC, 05, 05]
2F0F; [E0 0B F0, 05, 09]
-2E87; [E0 0B F0, 05, 09][, E2 75, 3D]
+2E87; [E0 0B F0, 05, 09][, E4 4D, 3D]
D87E DC1D; [E0 0C 20, 05, 05]
2F10; [E0 0C 20, 05, 09]
2F11; [E0 0C 36, 05, 09]
-2E88; [E0 0C 36, 05, 09][, E2 75, 3D]
+2E88; [E0 0C 36, 05, 09][, E4 4D, 3D]
2E89; [E0 0C 3A, 05, 09]
D87E DC1E; [E0 0C 3C, 05, 05]
D87E DC50; [E0 0C 44, 05, 05]
@@ -24693,9 +27258,9 @@ FA35; [E0 0E E4, 05, 05]
32AF; [E0 0E EA, 05, 0D]
D87E DC2E; [E0 0E F6, 05, 05]
2F18; [E0 0E FA, 05, 09]
-2E8A; [E0 0E FA, 05, 09][, E2 75, 3D]
+2E8A; [E0 0E FA, 05, 09][, E4 4D, 3D]
2F19; [E0 0F 1A, 05, 09]
-2E8B; [E0 0F 1A, 05, 09][, E2 75, 3D]
+2E8B; [E0 0F 1A, 05, 09][, E4 4D, 3D]
329E; [E0 0F 28, 05, 0D]
D87E DC2F; [E0 0F 2E, 05, 05]
F91C; [E0 0F 32, 05, 05]
@@ -24704,7 +27269,7 @@ D87E DC31; [E0 0F 46, 05, 05]
D87E DC32; [E0 0F 46, 05, 05]
D87E DC33; [E0 0F 46, 05, 05]
2F1A; [E0 0F 4C, 05, 09]
-2E81; [E0 0F 4C, 05, 09][, E2 75, 3D]
+2E81; [E0 0F 4C, 05, 09][, E4 4D, 3D]
2F1B; [E0 0F B4, 05, 09]
F96B; [E0 0F CE, 05, 05]
2F1C; [E0 0F D8, 05, 09]
@@ -24821,14 +27386,14 @@ D87E DC70; [E0 20 94, 05, 05]
D87E DC72; [E0 20 AC, 05, 05]
D87E DC73; [E0 20 BA, 05, 05]
2F29; [E0 20 CC, 05, 09]
-2E8C; [E0 20 CC, 05, 09][, E2 75, 3D]
-2E8D; [E0 20 CC, 05, 09][, E2 85, 3D]
+2E8C; [E0 20 CC, 05, 09][, E4 4D, 3D]
+2E8D; [E0 20 CC, 05, 09][, E4 5D, 3D]
D87E DC75; [E0 20 F2, 05, 05]
2E90; [E0 20 F2, 05, 09]
2F2A; [E0 20 F2, 05, 09]
-2E8E; [E0 20 F2, 05, 09][, E2 75, 3D]
+2E8E; [E0 20 F2, 05, 09][, E4 4D, 3D]
2E8F; [E0 20 F4, 05, 09]
-2E91; [E0 20 F4, 05, 09][, E2 75, 3D]
+2E91; [E0 20 F4, 05, 09][, E4 4D, 3D]
2F2B; [E0 21 24, 05, 09]
F9BD; [E0 21 32, 05, 05]
D87E DC77; [E0 21 74, 05, 05]
@@ -24887,7 +27452,7 @@ F943; [E0 26 DA, 05, 05]
D87E DC94; [E0 27 1C, 05, 05]
D87E DC95; [E0 27 1C, 05, 05]
2F39; [E0 27 78, 05, 09]
-2E95; [E0 27 78, 05, 09][, E2 75, 3D]
+2E95; [E0 27 78, 05, 09][, E4 4D, 3D]
2E94; [E0 27 7A, 05, 09]
D87E DC74; [E0 27 7E, 05, 05]
2F3A; [E0 27 9A, 05, 09]
@@ -24900,7 +27465,7 @@ D87E DC9C; [E0 28 12, 05, 05]
F966; [E0 28 30, 05, 05]
FA85; [E0 28 38, 05, 05]
2F3C; [E0 28 64, 05, 09]
-2E97; [E0 28 64, 05, 09][, E2 75, 3D]
+2E97; [E0 28 64, 05, 09][, E4 4D, 3D]
2E96; [E0 28 66, 05, 09]
D87E DC9D; [E0 28 78, 05, 05]
D87E DC9E; [E0 28 8C, 05, 05]
@@ -24993,7 +27558,7 @@ FA42; [E0 34 EA, 05, 05]
D87E DCCB; [E0 34 EC, 05, 05]
2F47; [E0 34 F0, 05, 09]
3290; [E0 34 F0, 05, 0D]
-2E9C; [E0 34 F0, 05, 09][, E2 75, 3D]
+2E9C; [E0 34 F0, 05, 09][, E4 4D, 3D]
337E; [E0 35 48, 05, 37][E0 42 F0, 05, 3D]
F9E0; [E0 35 52, 05, 05]
337C; [E0 35 86, 05, 37][E0 11 6C, 05, 3D]
@@ -25012,7 +27577,7 @@ D87E DCCC; [E0 37 28, 05, 05]
D87E DCD4; [E0 37 38, 05, 05]
2F49; [E0 37 48, 05, 09]
328A; [E0 37 48, 05, 0D]
-2E9D; [E0 37 48, 05, 09][, E2 75, 3D]
+2E9D; [E0 37 48, 05, 09][, E4 4D, 3D]
3292; [E0 37 4A, 05, 0D]
D87E DCD8; [E0 37 66, 05, 05]
F929; [E0 37 66, 05, 05]
@@ -25062,7 +27627,7 @@ D87E DCF3; [E0 40 52, 05, 05]
F98C; [E0 40 5C, 05, 05]
FA95; [E0 40 60, 05, 05]
2F4D; [E0 40 60, 05, 09]
-2E9E; [E0 40 62, 05, 09][, E2 75, 3D]
+2E9E; [E0 40 62, 05, 09][, E4 4D, 3D]
D87E DCF4; [E0 40 AC, 05, 05]
F9A5; [E0 40 CA, 05, 05]
2F4E; [E0 40 D4, 05, 09]
@@ -25153,7 +27718,7 @@ D87E DD20; [E0 4E 12, 05, 05]
2F56; [E0 4E 16, 05, 09]
FA49; [E0 4E 18, 05, 05]
2EA4; [E0 4E 18, 05, 09]
-2EA5; [E0 4E 18, 05, 09][, E2 75, 3D]
+2EA5; [E0 4E 18, 05, 09][, E4 4D, 3D]
D87E DD21; [E0 4E 2C, 05, 05]
FA9E; [E0 4E 2C, 05, 05]
2F57; [E0 4E 2E, 05, 09]
@@ -25163,7 +27728,7 @@ FA9E; [E0 4E 2C, 05, 05]
D87E DD22; [E0 4E 62, 05, 05]
2F5B; [E0 4E 74, 05, 09]
2F5C; [E0 4E 78, 05, 09]
-2EA7; [E0 4E 78, 05, 09][, E2 75, 3D]
+2EA7; [E0 4E 78, 05, 09][, E4 4D, 3D]
F946; [E0 4E 86, 05, 05]
3295; [E0 4E B4, 05, 0D]
D87E DD24; [E0 4E C2, 05, 05]
@@ -25182,7 +27747,7 @@ F961; [E0 50 DC, 05, 05]
F9DB; [E0 50 DC, 05, 05]
2F5F; [E0 50 E0, 05, 09]
D87E DD29; [E0 50 E4, 05, 05]
-2EA9; [E0 50 E4, 05, 09][, E2 75, 3D]
+2EA9; [E0 50 E4, 05, 09][, E4 4D, 3D]
D87E DD2B; [E0 51 1E, 05, 05]
F9AD; [E0 51 38, 05, 05]
F917; [E0 51 90, 05, 05]
@@ -25215,7 +27780,7 @@ F976; [E0 54 B0, 05, 05]
D87E DD38; [E0 54 C6, 05, 05]
F962; [E0 54 C6, 05, 05]
2F66; [E0 54 FC, 05, 09]
-2EAA; [E0 54 FC, 05, 09][, E2 75, 3D]
+2EAA; [E0 54 FC, 05, 09][, E4 4D, 3D]
2F67; [E0 55 10, 05, 09]
F9E5; [E0 55 B0, 05, 05]
D87E DD3A; [E0 56 12, 05, 05]
@@ -25233,7 +27798,7 @@ FAA7; [E0 57 AE, 05, 05]
32AC; [E0 57 BE, 05, 0D]
F933; [E0 57 C6, 05, 05]
2F6C; [E0 57 D4, 05, 09]
-2EAB; [E0 57 D4, 05, 09][, E2 75, 3D]
+2EAB; [E0 57 D4, 05, 09][, E4 4D, 3D]
D87E DD40; [E0 57 E0, 05, 05]
FAA8; [E0 57 E0, 05, 05]
F96D; [E0 57 FA, 05, 05]
@@ -25259,7 +27824,7 @@ FAAB; [E0 5B A8, 05, 05]
F964; [E0 5C 0C, 05, 05]
F985; [E0 5C 6A, 05, 05]
2F70; [E0 5C 8A, 05, 09]
-2EAC; [E0 5C 8A, 05, 09][, E2 75, 3D]
+2EAC; [E0 5C 8A, 05, 09][, E4 4D, 3D]
2EAD; [E0 5C 8C, 05, 09]
FA18; [E0 5C 8E, 05, 05]
FA4C; [E0 5C 92, 05, 05]
@@ -25296,7 +27861,7 @@ F9F7; [E0 5F BE, 05, 05]
2F74; [E0 5F BE, 05, 09]
D87E DD5F; [E0 60 0A, 05, 05]
2F75; [E0 60 20, 05, 09]
-2EAE; [E0 60 20, 05, 09][, E2 75, 3D]
+2EAE; [E0 60 20, 05, 09][, E4 4D, 3D]
F9F8; [E0 60 6E, 05, 05]
FA56; [E0 61 B4, 05, 05]
FAAD; [E0 61 B4, 05, 05]
@@ -25337,17 +27902,17 @@ D87E DD70; [E0 66 DC, 05, 05]
FAB1; [E0 68 DA, 05, 05]
2F79; [E0 69 06, 05, 09]
2EB2; [E0 69 08, 05, 09]
-2EB5; [E0 69 08, 05, 09][, E2 75, 3D]
+2EB5; [E0 69 08, 05, 09][, E4 4D, 3D]
2EB1; [E0 69 0A, 05, 09]
-2EB3; [E0 69 0A, 05, 09][, E2 75, 3D]
-2EB4; [E0 69 0A, 05, 09][, E2 85, 3D]
+2EB3; [E0 69 0A, 05, 09][, E4 4D, 3D]
+2EB4; [E0 69 0A, 05, 09][, E4 5D, 3D]
FA5A; [E0 69 48, 05, 05]
F9E6; [E0 69 56, 05, 05]
D87E DD76; [E0 69 58, 05, 05]
F90F; [E0 69 6E, 05, 05]
2F7A; [E0 69 78, 05, 09]
-2EB6; [E0 69 78, 05, 09][, E2 75, 3D]
-2EB7; [E0 69 78, 05, 09][, E2 85, 3D]
+2EB6; [E0 69 78, 05, 09][, E4 4D, 3D]
+2EB7; [E0 69 78, 05, 09][, E4 5D, 3D]
2EB8; [E0 69 7A, 05, 09]
D87E DD78; [E0 69 8E, 05, 05]
F9AF; [E0 69 98, 05, 05]
@@ -25370,10 +27935,10 @@ F997; [E0 6B 4E, 05, 05]
D87E DD7F; [E0 6B 50, 05, 05]
F945; [E0 6B 6C, 05, 05]
2F80; [E0 6B 6E, 05, 09]
-2EBB; [E0 6B 6E, 05, 09][, E2 75, 3D]
+2EBB; [E0 6B 6E, 05, 09][, E4 4D, 3D]
2EBA; [E0 6B 70, 05, 09]
2F81; [E0 6B 82, 05, 09]
-2EBC; [E0 6B 82, 05, 09][, E2 75, 3D]
+2EBC; [E0 6B 82, 05, 09][, E4 4D, 3D]
F953; [E0 6B 86, 05, 05]
D87E DCD6; [E0 6B CA, 05, 05]
D87E DD82; [E0 6B D4, 05, 05]
@@ -25386,7 +27951,7 @@ F9F6; [E0 6E 52, 05, 05]
FA5C; [E0 6E 5C, 05, 05]
2F84; [E0 6E 68, 05, 09]
2F85; [E0 6E 7A, 05, 09]
-2EBD; [E0 6E 7A, 05, 09][, E2 75, 3D]
+2EBD; [E0 6E 7A, 05, 09][, E4 4D, 3D]
D87E DC93; [E0 6E 84, 05, 05]
D87E DD8B; [E0 6E 84, 05, 05]
D87E DD8C; [E0 6E 8A, 05, 05]
@@ -25400,8 +27965,8 @@ F97C; [E0 6F 66, 05, 05]
FA5D; [E0 6F 7A, 05, 05]
FA5E; [E0 6F 7A, 05, 05]
2EBE; [E0 6F 7A, 05, 09]
-2EBF; [E0 6F 7A, 05, 09][, E2 75, 3D]
-2EC0; [E0 6F 7A, 05, 09][, E2 85, 3D]
+2EBF; [E0 6F 7A, 05, 09][, E4 4D, 3D]
+2EC0; [E0 6F 7A, 05, 09][, E4 5D, 3D]
D87E DD90; [E0 6F 9E, 05, 05]
D87E DD8F; [E0 6F AA, 05, 05]
D87E DD91; [E0 6F C2, 05, 05]
@@ -25491,7 +28056,7 @@ FAB8; [E0 7E 0E, 05, 05]
2EC5; [E0 7E 64, 05, 09]
2EC6; [E0 7E 86, 05, 09]
2F93; [E0 7E 86, 05, 09]
-2EC7; [E0 7E 86, 05, 09][, E2 75, 3D]
+2EC7; [E0 7E 86, 05, 09][, E4 4D, 3D]
2F94; [E0 7E E2, 05, 09]
D87E DDCF; [E0 80 2E, 05, 05]
F96F; [E0 80 42, 05, 05]
@@ -25537,7 +28102,7 @@ D87E DDD6; [E0 85 42, 05, 05]
2F9B; [E0 85 EC, 05, 09]
D87E DDD7; [E0 85 FA, 05, 05]
2F9C; [E0 86 78, 05, 09]
-2ECA; [E0 86 78, 05, 09][, E2 75, 3D]
+2ECA; [E0 86 78, 05, 09][, E4 4D, 3D]
D87E DDDB; [E0 86 8A, 05, 05]
D87E DDDA; [E0 86 A8, 05, 05]
F937; [E0 86 F0, 05, 05]
@@ -25560,8 +28125,8 @@ F971; [E0 8A 8A, 05, 05]
2FA1; [E0 8A 94, 05, 09]
FA66; [E0 8A 96, 05, 05]
2ECC; [E0 8A 96, 05, 09]
-2ECD; [E0 8A 96, 05, 09][, E2 75, 3D]
-2ECE; [E0 8A 96, 05, 09][, E2 85, 3D]
+2ECD; [E0 8A 96, 05, 09][, E4 4D, 3D]
+2ECE; [E0 8A 96, 05, 09][, E4 5D, 3D]
F99A; [E0 8B 76, 05, 05]
FA25; [E0 8B A0, 05, 05]
FA67; [E0 8B A0, 05, 05]
@@ -25570,7 +28135,7 @@ FAC3; [E0 8C 1A, 05, 05]
F9C3; [E0 8C 2E, 05, 05]
F913; [E0 8C 54, 05, 05]
2FA2; [E0 8C 58, 05, 09]
-2ECF; [E0 8C 58, 05, 09][, E2 75, 3D]
+2ECF; [E0 8C 58, 05, 09][, E4 4D, 3D]
D87E DDE2; [E0 8C 5E, 05, 05]
F92C; [E0 8C D2, 05, 05]
D87E DDE3; [E0 8D 1E, 05, 05]
@@ -25609,7 +28174,7 @@ F986; [E0 96 CC, 05, 05]
D87E DDF0; [E0 96 E0, 05, 05]
2ED4; [E0 97 48, 05, 09]
2FA9; [E0 97 B0, 05, 09]
-2ED5; [E0 97 B0, 05, 09][, E2 75, 3D]
+2ED5; [E0 97 B0, 05, 09][, E4 4D, 3D]
2ED6; [E0 97 B2, 05, 09]
F9C6; [E0 97 D4, 05, 05]
F951; [E0 98 14, 05, 05]
@@ -25627,7 +28192,7 @@ F9EA; [E0 99 48, 05, 05]
FA68; [E0 99 4A, 05, 05]
FAC7; [E0 99 4A, 05, 05]
2FAC; [E0 99 54, 05, 09]
-2ED7; [E0 99 54, 05, 09][, E2 75, 3D]
+2ED7; [E0 99 54, 05, 09][, E4 4D, 3D]
F9B2; [E0 99 70, 05, 05]
F949; [E0 99 72, 05, 05]
D87E DDF5; [E0 99 CA, 05, 05]
@@ -25666,7 +28231,7 @@ F9D0; [E0 9C 52, 05, 05]
2EDD; [E0 9D 5A, 05, 09]
2FB7; [E0 9D 5A, 05, 09]
2EDF; [E0 9D 5C, 05, 09]
-2EDE; [E0 9D 5C, 05, 09][, E2 75, 3D]
+2EDE; [E0 9D 5C, 05, 09][, E4 4D, 3D]
D87E DE02; [E0 9D 60, 05, 05]
FA2A; [E0 9D 7A, 05, 05]
FA2B; [E0 9D 94, 05, 05]
@@ -25674,7 +28239,7 @@ FA2C; [E0 9D EC, 05, 05]
D87E DE04; [E0 9D EE, 05, 05]
2EE0; [E0 9E 68, 05, 09]
2FB8; [E0 9E CE, 05, 09]
-2EE1; [E0 9E CE, 05, 09][, E2 75, 3D]
+2EE1; [E0 9E CE, 05, 09][, E4 4D, 3D]
2FB9; [E0 9E D4, 05, 09]
D87E DE05; [E0 9E F0, 05, 05]
2FBA; [E0 9E FA, 05, 09]
@@ -25684,7 +28249,7 @@ D87E DE07; [E0 9F A4, 05, 05]
F987; [E0 A0 82, 05, 05]
2EE2; [E0 A0 86, 05, 09]
2FBB; [E0 A1 04, 05, 09]
-2EE3; [E0 A1 04, 05, 09][, E2 75, 3D]
+2EE3; [E0 A1 04, 05, 09][, E4 4D, 3D]
2FBC; [E0 A1 64, 05, 09]
2FBD; [E0 A1 72, 05, 09]
D87E DE0A; [E0 A1 D8, 05, 05]
@@ -25693,7 +28258,7 @@ FACD; [E0 A1 D8, 05, 05]
2FBF; [E0 A2 18, 05, 09]
2FC0; [E0 A2 1E, 05, 09]
2FC1; [E0 A2 32, 05, 09]
-2EE4; [E0 A2 32, 05, 09][, E2 75, 3D]
+2EE4; [E0 A2 32, 05, 09][, E4 4D, 3D]
2FC2; [E0 A2 6E, 05, 09]
F939; [E0 A2 98, 05, 05]
D87E DE0B; [E0 A4 46, 05, 05]
@@ -25707,7 +28272,7 @@ F93A; [E0 A7 CC, 05, 05]
F920; [E0 A8 1A, 05, 05]
2EE6; [E0 A8 1C, 05, 09]
2FC4; [E0 A8 C8, 05, 09]
-2EE7; [E0 A8 C8, 05, 09][, E2 75, 3D]
+2EE7; [E0 A8 C8, 05, 09][, E4 4D, 3D]
F940; [E0 A8 DC, 05, 05]
2FC5; [E0 A8 DC, 05, 09]
F988; [E0 A9 12, 05, 05]
@@ -25736,22 +28301,22 @@ D87E DE1C; [E0 AA 60, 05, 05]
2FD0; [E0 AA 60, 05, 09]
FAD8; [E0 AA 70, 05, 05]
2FD1; [E0 AA 7E, 05, 09]
-2EEB; [E0 AA 7E, 05, 09][, E2 75, 3D]
+2EEB; [E0 AA 7E, 05, 09][, E4 4D, 3D]
2EEC; [E0 AA 8A, 05, 09]
2FD2; [E0 AA 8E, 05, 09]
-2EED; [E0 AA 8E, 05, 09][, E2 75, 3D]
+2EED; [E0 AA 8E, 05, 09][, E4 4D, 3D]
2EEE; [E0 AA E8, 05, 09]
F9C4; [E0 AB 0A, 05, 05]
2FD3; [E0 AB 0A, 05, 09]
-2EEF; [E0 AB 0A, 05, 09][, E2 75, 3D]
+2EEF; [E0 AB 0A, 05, 09][, E4 4D, 3D]
FAD9; [E0 AB 0C, 05, 05]
2EF0; [E0 AB 22, 05, 09]
F907; [E0 AB 28, 05, 05]
F908; [E0 AB 28, 05, 05]
FACE; [E0 AB 28, 05, 05]
2FD4; [E0 AB 28, 05, 09]
-2EF1; [E0 AB 28, 05, 09][, E2 75, 3D]
-2EF2; [E0 AB 28, 05, 09][, E2 85, 3D]
+2EF1; [E0 AB 28, 05, 09][, E4 4D, 3D]
+2EF2; [E0 AB 28, 05, 09][, E4 5D, 3D]
2EF3; [E0 AB 2E, 05, 09]
2FD5; [E0 AB 30, 05, 09]
FA0E; [E0 AB F0, 05, 05]
@@ -25953,58 +28518,62 @@ D87E DE1D; [E1 42 F1 58, 05, 05]
# HOMELESS COLLATION ELEMENTS
FDD0 0061; [, 97, 3D]
-FDD0 0062; [, D5 51, 31]
-FDD0 0063; [, D5 E1, 31]
-FDD0 0064; [, D5 E1, 33]
-FDD0 0065; [, D6 95, 2D]
-FDD0 0066; [, D6 95, 31]
-FDD0 0067; [, D6 95, 33]
-FDD0 0068; [, DC 2D, 3D]
-FDD0 0069; [, E0 8D, 37]
-FDD0 006A; [, E0 8D, 3D]
-FDD0 006B; [, E0 9D, 37]
-FDD0 006C; [, E0 9D, 3D]
-FDD0 006D; [, E2 75, 09]
-FDD0 006E; [, E2 75, 27]
-FDD0 006F; [, E2 75, 3D]
-FDD0 0070; [, E2 85, 09]
-FDD0 0071; [, E2 85, 2B]
-FDD0 0072; [, E2 85, 3D]
-FDD0 0073; [, E2 95, 09]
-FDD0 0074; [, E2 A5, 09]
-FDD0 0075; [, E2 B5, 09]
-FDD0 0076; [, E2 C5, 05]
-FDD0 0077; [, E2 D5, 05]
-FDD0 0078; [, E2 E5, 05]
-FDD0 0079; [, E2 F5, 05]
-FDD0 007A; [, E3 09, 05]
-FDD0 007B; [, E3 19, 05]
-FDD0 007C; [, E3 29, 05]
-FDD0 007D; [, E3 39, 05]
-FDD0 007E; [, E3 49, 05]
-FDD0 007F; [, E3 59, 05]
-FDD0 0080; [, E3 69, 05]
-FDD0 0081; [, E3 79, 05]
-FDD0 0082; [, E3 89, 05]
-FDD0 0083; [, E3 99, 05]
-FDD0 0084; [, E3 A9, 05]
-FDD0 0085; [, E3 B9, 05]
-FDD0 0086; [, E3 C9, 05]
-FDD0 0087; [, E3 D9, 05]
-FDD0 0088; [, E3 E9, 05]
-FDD0 0089; [, E3 E9, 09]
-FDD0 008A; [, E3 F9, 05]
-FDD0 008B; [, E4 0D, 05]
-FDD0 008C; [, E4 1D, 05]
-FDD0 008D; [, E4 2D, 05]
-FDD0 008E; [, E4 3D, 05]
-FDD0 008F; [, E4 4D, 05]
-FDD0 0090; [, E4 5D, 05]
-FDD0 0091; [, E4 6D, 05]
-FDD0 0092; [, E4 7D, 05]
-FDD0 0093; [, E4 8D, 05]
-FDD0 0094; [,, 3F 03] # CONSTRUCTED FAKE SECONDARY-IGNORABLE
-FDD0 0095; [26, 05, 05] # PLACE HOLDER FOR CODAN
+FDD0 0062; [, D5 F1, 31]
+FDD0 0063; [, D6 85, 31]
+FDD0 0064; [, D6 85, 33]
+FDD0 0065; [, D7 39, 2D]
+FDD0 0066; [, D7 39, 31]
+FDD0 0067; [, D7 39, 33]
+FDD0 0068; [, E0 4D, 3D]
+FDD0 0069; [, E2 25, 37]
+FDD0 006A; [, E2 25, 3D]
+FDD0 006B; [, E2 35, 37]
+FDD0 006C; [, E2 35, 3D]
+FDD0 006D; [, E4 4D, 09]
+FDD0 006E; [, E4 4D, 27]
+FDD0 006F; [, E4 4D, 3D]
+FDD0 0070; [, E4 5D, 09]
+FDD0 0071; [, E4 5D, 2B]
+FDD0 0072; [, E4 5D, 3D]
+FDD0 0073; [, E4 6D, 09]
+FDD0 0074; [, E4 7D, 09]
+FDD0 0075; [, E4 8D, 09]
+FDD0 0076; [, E4 9D, 05]
+FDD0 0077; [, E4 AD, 05]
+FDD0 0078; [, E4 BD, 05]
+FDD0 0079; [, E4 CD, 05]
+FDD0 007A; [, E4 DD, 05]
+FDD0 007B; [, E4 ED, 05]
+FDD0 007C; [, E4 FD, 05]
+FDD0 007D; [, E5 11, 05]
+FDD0 007E; [, E5 21, 05]
+FDD0 007F; [, E5 31, 05]
+FDD0 0080; [, E5 41, 05]
+FDD0 0081; [, E5 51, 05]
+FDD0 0082; [, E5 61, 05]
+FDD0 0083; [, E5 71, 05]
+FDD0 0084; [, E5 81, 05]
+FDD0 0085; [, E5 91, 05]
+FDD0 0086; [, E5 A1, 05]
+FDD0 0087; [, E5 B1, 05]
+FDD0 0088; [, E5 C1, 05]
+FDD0 0089; [, E5 C1, 09]
+FDD0 008A; [, E5 D1, 05]
+FDD0 008B; [, E5 E1, 05]
+FDD0 008C; [, E5 F1, 05]
+FDD0 008D; [, E6 05, 05]
+FDD0 008E; [, E6 15, 05]
+FDD0 008F; [, E6 25, 05]
+FDD0 0090; [, E6 35, 05]
+FDD0 0091; [, E6 45, 05]
+FDD0 0092; [, E6 55, 05]
+FDD0 0093; [, E6 65, 05]
+FDD0 0094; [, E6 75, 05]
+FDD0 0095; [, E6 85, 05]
+FDD0 0096; [, E6 95, 05]
+FDD0 0097; [, E6 A5, 05]
+FDD0 0098; [,, 3F 03] # CONSTRUCTED FAKE SECONDARY-IGNORABLE
+FDD0 0099; [27, 05, 05] # PLACE HOLDER FOR CODAN
# VALUES BASED ON UCA
[first tertiary ignorable [,,]] # CONSTRUCTED
@@ -26017,18 +28586,18 @@ FDD0 0095; [26, 05, 05] # PLACE HOLDER FOR CODAN
# [first secondary in primary non-ignorable [X, 05, X]] # U+0009 <CHARACTER TABULATION>
# [last secondary in primary non-ignorable [X, 05, X]] # U+0009 <CHARACTER TABULATION>
[first primary ignorable [, 87, 05]] # U+0332 COMBINING LOW LINE
-[last primary ignorable [, E4 8D, 05]] # U+10A40 KHAROSHTHI DIGIT ONE
+[last primary ignorable [, E6 A5, 05]] # U+1D360 COUNTING ROD UNIT DIGIT ONE
[first variable [05 07, 05, 05]] # U+0009 <CHARACTER TABULATION>
-[last variable [22 A1, 05, 05]] # U+10A47 KHAROSHTHI NUMBER ONE THOUSAND
-[first regular [25 20, 05, 05]] # U+02D0 MODIFIER LETTER TRIANGULAR COLON
-[last regular [A0 8D, 05, 05]] # U+103CF OLD PERSIAN SIGN BUUMISH
+[last variable [23 6F, 05, 05]] # U+1D371 COUNTING ROD TENS DIGIT NINE
+[first regular [26 20, 05, 05]] # U+02D0 MODIFIER LETTER TRIANGULAR COLON
+[last regular [AB 95, 05, 05]] # U+1236E CUNEIFORM SIGN ZUM
[first implicit [E0 04 06, 05, 05]] # CONSTRUCTED
[last implicit [E4 DF 7E 20, 05, 05]] # CONSTRUCTED
[first trailing [E5, 05, 05]] # CONSTRUCTED
[last trailing [E5, 05, 05]] # CONSTRUCTED
# FIXED VALUES
-# superceded! [top [A0 8D, 05, 05]]
+# superceded! [top [AB 95, 05, 05]]
[fixed first implicit byte E0]
[fixed last implicit byte E4]
[fixed first trail byte E5]
diff --git a/Build/source/libs/icu-xetex/data/unidata/GraphemeBreakProperty.txt b/Build/source/libs/icu-xetex/data/unidata/GraphemeBreakProperty.txt
index 43d531718e8..8805f362481 100644
--- a/Build/source/libs/icu-xetex/data/unidata/GraphemeBreakProperty.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/GraphemeBreakProperty.txt
@@ -1,8 +1,8 @@
-# GraphemeBreakProperty-4.1.0.txt
-# Date: 2005-02-26, 02:40:18 GMT [MD]
+# GraphemeBreakProperty-5.0.0.txt
+# Date: 2006-03-09, 23:14:04 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -11,7 +11,9 @@
# Property: Grapheme_Cluster_Break
# All code points not explicitly listed for Grapheme_Cluster_Break
-# have the value Other.
+# have the value Other (XX).
+
+# @missing: 0000..10FFFF; Other
# ================================================
@@ -56,8 +58,7 @@ E0020..E007F ; Control
0300..036F ; Extend
0483..0486 ; Extend
0488..0489 ; Extend
-0591..05B9 ; Extend
-05BB..05BD ; Extend
+0591..05BD ; Extend
05BF ; Extend
05C1..05C2 ; Extend
05C4..05C5 ; Extend
@@ -73,6 +74,7 @@ E0020..E007F ; Control
0711 ; Extend
0730..074A ; Extend
07A6..07B0 ; Extend
+07EB..07F3 ; Extend
0901..0902 ; Extend
093C ; Extend
0941..0948 ; Extend
@@ -121,6 +123,7 @@ E0020..E007F ; Control
0CC6 ; Extend
0CCC..0CCD ; Extend
0CD5..0CD6 ; Extend
+0CE2..0CE3 ; Extend
0D3E ; Extend
0D41..0D43 ; Extend
0D4D ; Extend
@@ -168,13 +171,20 @@ E0020..E007F ; Control
1932 ; Extend
1939..193B ; Extend
1A17..1A18 ; Extend
-1DC0..1DC3 ; Extend
+1B00..1B03 ; Extend
+1B34 ; Extend
+1B36..1B3A ; Extend
+1B3C ; Extend
+1B42 ; Extend
+1B6B..1B73 ; Extend
+1DC0..1DCA ; Extend
+1DFE..1DFF ; Extend
200C..200D ; Extend
20D0..20DC ; Extend
20DD..20E0 ; Extend
20E1 ; Extend
20E2..20E4 ; Extend
-20E5..20EB ; Extend
+20E5..20EF ; Extend
302A..302F ; Extend
3099..309A ; Extend
A806 ; Extend
@@ -197,7 +207,7 @@ FE20..FE23 ; Extend
1D242..1D244 ; Extend
E0100..E01EF ; Extend
-# Total code points: 865
+# Total code points: 911
# ================================================
@@ -1025,3 +1035,5 @@ D76D..D787 ; LVT
D789..D7A3 ; LVT
# Total code points: 10773
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/LineBreak.txt b/Build/source/libs/icu-xetex/data/unidata/LineBreak.txt
index 783b7709e3d..13833b3bfa4 100644
--- a/Build/source/libs/icu-xetex/data/unidata/LineBreak.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/LineBreak.txt
@@ -1,5 +1,5 @@
-# LineBreak-4.1.0.txt
-# Date: 2005-03-17, 15:21:00 PST [KW]
+# LineBreak-5.0.0.txt
+# Date: 2006-05-23, 11:43:00 PST [KW]
#
# Line Break Properties
#
@@ -7,7 +7,7 @@
# Unicode Character Database.
# It contains both normative and informative data.
#
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# The format is two fields separated by a semicolon.
@@ -29,11 +29,12 @@
# in identifying the characters.
#
# See UAX #14: Line Breaking Properties, for more information
+#
+# @missing: 0000..10FFFF; XX
0000..0008;CM
0009;BA
000A;LF
-000B;CM
-000C;BK
+000B..000C;BK
000D;CR
000E..001F;CM
0020;SP
@@ -92,8 +93,7 @@
00D7;AI
00D8..00F6;AL
00F7;AI
-00F8..0241;AL
-0250..02C6;AL
+00F8..02C6;AL
02C7;AI
02C8;BB
02C9..02CB;AI
@@ -108,11 +108,11 @@
02DE..02FF;AL
0300..034E;CM
034F;GL
-0350..035C;CM
-035D..0362;GL
+0350..035B;CM
+035C..0362;GL
0363..036F;CM
0374..0375;AL
-037A;AL
+037A..037D;AL
037E;IS
0384..038A;AL
038C;AL
@@ -121,17 +121,14 @@
03D0..0482;AL
0483..0486;CM
0488..0489;CM
-048A..04CE;AL
-04D0..04F9;AL
-0500..050F;AL
+048A..0513;AL
0531..0556;AL
0559..055F;AL
0561..0587;AL
0589;IS
058A;BA
-0591..05B9;CM
-05BB..05BD;CM
-05BE;AL
+0591..05BD;CM
+05BE;BA
05BF;CM
05C0;AL
05C1..05C2;CM
@@ -178,6 +175,13 @@
0780..07A5;AL
07A6..07B0;CM
07B1;AL
+07C0..07C9;NU
+07CA..07EA;AL
+07EB..07F3;CM
+07F4..07F7;AL
+07F8;IS
+07F9;EX
+07FA;AL
0901..0903;CM
0904..0939;AL
093C;CM
@@ -190,7 +194,7 @@
0964..0965;BA
0966..096F;NU
0970;AL
-097D;AL
+097B..097F;AL
0981..0983;CM
0985..098C;AL
098F..0990;AL
@@ -308,7 +312,9 @@
0CD5..0CD6;CM
0CDE;AL
0CE0..0CE1;AL
+0CE2..0CE3;CM
0CE6..0CEF;NU
+0CF1..0CF2;AL
0D02..0D03;CM
0D05..0D0C;AL
0D0E..0D10;AL
@@ -332,13 +338,9 @@
0DD8..0DDF;CM
0DF2..0DF3;CM
0DF4;AL
-0E01..0E30;SA
-0E31;CM
-0E32..0E33;SA
-0E34..0E3A;CM
+0E01..0E3A;SA
0E3F;PR
-0E40..0E46;SA
-0E47..0E4E;CM
+0E40..0E4E;SA
0E4F;AL
0E50..0E59;NU
0E5A..0E5B;BA
@@ -353,15 +355,11 @@
0EA5;SA
0EA7;SA
0EAA..0EAB;SA
-0EAD..0EB0;SA
-0EB1;CM
-0EB2..0EB3;SA
-0EB4..0EB9;CM
-0EBB..0EBC;CM
-0EBD;SA
+0EAD..0EB9;SA
+0EBB..0EBD;SA
0EC0..0EC4;SA
0EC6;SA
-0EC8..0ECD;CM
+0EC8..0ECD;SA
0ED0..0ED9;NU
0EDC..0EDD;SA
0F00;AL
@@ -411,13 +409,12 @@
1000..1021;SA
1023..1027;SA
1029..102A;SA
-102C..1032;CM
-1036..1039;CM
+102C..1032;SA
+1036..1039;SA
1040..1049;NU
104A..104B;BA
104C..104F;AL
-1050..1055;SA
-1056..1059;CM
+1050..1059;SA
10A0..10C5;AL
10D0..10FC;AL
1100..1159;JL
@@ -459,22 +456,21 @@
1712..1714;CM
1720..1731;AL
1732..1734;CM
-1735..1736;AL
+1735..1736;BA
1740..1751;AL
1752..1753;CM
1760..176C;AL
176E..1770;AL
1772..1773;CM
-1780..17B5;SA
-17B6..17D3;CM
+1780..17D3;SA
17D4..17D5;BA
-17D6..17D7;NS
+17D6;NS
+17D7;SA
17D8;BA
-17D9;NS
+17D9;AL
17DA;BA
17DB;PR
-17DC;AL
-17DD;CM
+17DC..17DD;SA
17E0..17E9;NU
17F0..17F9;AL
1800..1801;AL
@@ -495,19 +491,28 @@
1940;AL
1944..1945;EX
1946..194F;NU
-1950..196D;AL
-1970..1974;AL
-1980..19A9;AL
-19B0..19C0;CM
-19C1..19C7;AL
-19C8..19C9;CM
+1950..196D;SA
+1970..1974;SA
+1980..19A9;SA
+19B0..19C9;SA
19D0..19D9;NU
-19DE..1A16;AL
+19DE..19DF;SA
+19E0..1A16;AL
1A17..1A1B;CM
1A1E;BA
1A1F;AL
+1B00..1B04;CM
+1B05..1B33;AL
+1B34..1B44;CM
+1B45..1B4B;AL
+1B50..1B59;NU
+1B5A..1B60;BA
+1B61..1B6A;AL
+1B6B..1B73;CM
+1B74..1B7C;AL
1D00..1DBF;AL
-1DC0..1DC3;CM
+1DC0..1DCA;CM
+1DFE..1DFF;CM
1E00..1E9B;AL
1EA0..1EF9;AL
1F00..1F15;AL
@@ -553,12 +558,13 @@
2038;AL
2039..203A;QU
203B;AI
-203C;NS
-203D..2043;AL
+203C..203D;NS
+203E..2043;AL
2044;IS
2045;OP
2046;CL
-2047..2055;AL
+2047..2049;NS
+204A..2055;AL
2056;BA
2057;AL
2058..205B;BA
@@ -582,7 +588,7 @@
20A0..20A6;PR
20A7;PO
20A8..20B5;PR
-20D0..20EB;CM
+20D0..20EF;CM
2100..2102;AL
2103;PO
2104;AL
@@ -597,7 +603,7 @@
2121..2122;AI
2123..212A;AL
212B;AI
-212C..214C;AL
+212C..214E;AL
2153;AL
2154..2155;AI
2156..215A;AL
@@ -608,7 +614,7 @@
2160..216B;AI
216C..216F;AL
2170..2179;AI
-217A..2183;AL
+217A..2184;AL
2190..2199;AI
219A..21D1;AL
21D2;AI
@@ -676,11 +682,7 @@
2313..2328;AL
2329;OP
232A;CL
-232B..23B3;AL
-23B4;OP
-23B5;CL
-23B6;QU
-23B7..23DB;AL
+232B..23E7;AL
2400..2426;AL
2440..244A;AL
2460..24FE;AI
@@ -741,7 +743,7 @@
266E;AL
266F;AI
2670..269C;AL
-26A0..26B1;AL
+26A0..26B2;AL
2701..2704;AL
2706..2709;AL
270C..2727;AL
@@ -775,6 +777,7 @@
27C0..27C4;AL
27C5;OP
27C6;CL
+27C7..27CA;AL
27D0..27E5;AL
27E6;OP
27E7;CL
@@ -813,9 +816,12 @@
29DC..29FB;AL
29FC;OP
29FD;CL
-29FE..2B13;AL
+29FE..2B1A;AL
+2B20..2B23;AL
2C00..2C2E;AL
2C30..2C5E;AL
+2C60..2C6C;AL
+2C74..2C77;AL
2C80..2CEA;AL
2CF9..2CFC;BA
2CFD;AL
@@ -937,7 +943,8 @@ A000..A014;ID
A015;NS
A016..A48C;ID
A490..A4C6;ID
-A700..A716;AL
+A700..A71A;AL
+A720..A721;AL
A800..A801;AL
A802;CM
A803..A805;AL
@@ -947,6 +954,9 @@ A80B;CM
A80C..A822;AL
A823..A827;CM
A828..A82B;AL
+A840..A873;AL
+A874..A875;BB
+A876..A877;EX
AC00;H2
AC01..AC1B;H3
AC1C;H2
@@ -1882,7 +1892,9 @@ FFFD;AI
10380..1039D;AL
1039F;BA
103A0..103C3;AL
-103C8..103D5;AL
+103C8..103CF;AL
+103D0;BA
+103D1..103D5;AL
10400..1049D;AL
104A0..104A9;NU
10800..10805;AL
@@ -1891,6 +1903,8 @@ FFFD;AI
10837..10838;AL
1083C;AL
1083F;AL
+10900..10919;AL
+1091F;BA
10A00;AL
10A01..10A03;CM
10A05..10A06;CM
@@ -1903,6 +1917,9 @@ FFFD;AI
10A40..10A47;AL
10A50..10A57;BA
10A58;AL
+12000..1236E;AL
+12400..12462;AL
+12470..12473;BA
1D000..1D0F5;AL
1D100..1D126;AL
1D12A..1D164;AL
@@ -1918,6 +1935,7 @@ FFFD;AI
1D242..1D244;CM
1D245;AL
1D300..1D356;AL
+1D360..1D371;AL
1D400..1D454;AL
1D456..1D49C;AL
1D49E..1D49F;AL
@@ -1937,7 +1955,7 @@ FFFD;AI
1D546;AL
1D54A..1D550;AL
1D552..1D6A5;AL
-1D6A8..1D7C9;AL
+1D6A8..1D7CB;AL
1D7CE..1D7FF;NU
20000..2A6D6;ID
2F800..2FA1D;ID
@@ -1946,3 +1964,5 @@ E0020..E007F;CM
E0100..E01EF;CM
F0000..FFFFD;XX
100000..10FFFD;XX
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/NormalizationCorrections.txt b/Build/source/libs/icu-xetex/data/unidata/NormalizationCorrections.txt
index 9391acefbb7..6952f41d5df 100644
--- a/Build/source/libs/icu-xetex/data/unidata/NormalizationCorrections.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/NormalizationCorrections.txt
@@ -1,10 +1,10 @@
-# NormalizationCorrections-4.1.0.txt
-# Date: 2005-03-17, 15:21:00 PST [KW]
+# NormalizationCorrections-5.0.0.txt
+# Date: 2006-07-14, 11:23:00 PDT [KW]
#
# This file is a normative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# The normalization stabilization policy of the Unicode
@@ -30,10 +30,10 @@
# will be made to keep the entries limited to just those fixes.
#
# Interpretation of the fields:
-# Field 1: Unicode code point
-# Field 2: Original (erroneous) decomposition
-# Field 3: Corrected decomposition
-# Field 4: Version of Unicode for which the correction was
+# Field 0: Unicode code point
+# Field 1: Original (erroneous) decomposition
+# Field 2: Corrected decomposition
+# Field 3: Version of Unicode for which the correction was
# entered into UnicodeData.txt, in n.n.n format.
# Comment: Indicates the Unicode Corrigendum which documents
# the correction
diff --git a/Build/source/libs/icu-xetex/data/unidata/NormalizationTest.txt b/Build/source/libs/icu-xetex/data/unidata/NormalizationTest.txt
index 925e4f6c3b0..e8eaf17f94c 100644
--- a/Build/source/libs/icu-xetex/data/unidata/NormalizationTest.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/NormalizationTest.txt
@@ -1,8 +1,8 @@
-# NormalizationTest-4.1.0.txt
-# Date: 2005-03-26, 00:33:29 GMT [MD]
+# NormalizationTest-5.0.0.txt
+# Date: 2006-06-07, 17:43:01 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -546,6 +546,17 @@
0FB9;0F90 0FB5;0F90 0FB5;0F90 0FB5;0F90 0FB5;
1026;1026;1025 102E;1026;1025 102E;
10FC;10FC;10FC;10DC;10DC;
+1B06;1B06;1B05 1B35;1B06;1B05 1B35;
+1B08;1B08;1B07 1B35;1B08;1B07 1B35;
+1B0A;1B0A;1B09 1B35;1B0A;1B09 1B35;
+1B0C;1B0C;1B0B 1B35;1B0C;1B0B 1B35;
+1B0E;1B0E;1B0D 1B35;1B0E;1B0D 1B35;
+1B12;1B12;1B11 1B35;1B12;1B11 1B35;
+1B3B;1B3B;1B3A 1B35;1B3B;1B3A 1B35;
+1B3D;1B3D;1B3C 1B35;1B3D;1B3C 1B35;
+1B40;1B40;1B3E 1B35;1B40;1B3E 1B35;
+1B41;1B41;1B3F 1B35;1B41;1B3F 1B35;
+1B43;1B43;1B42 1B35;1B43;1B42 1B35;
1D2C;1D2C;1D2C;0041;0041;
1D2D;1D2D;1D2D;00C6;00C6;
1D2E;1D2E;1D2E;0042;0042;
@@ -16033,6 +16044,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
1D7C7;1D7C7;1D7C7;03C6;03C6;
1D7C8;1D7C8;1D7C8;03C1;03C1;
1D7C9;1D7C9;1D7C9;03C0;03C0;
+1D7CA;1D7CA;1D7CA;03DC;03DC;
+1D7CB;1D7CB;1D7CB;03DD;03DD;
1D7CE;1D7CE;1D7CE;0030;0030;
1D7CF;1D7CF;1D7CF;0031;0031;
1D7D0;1D7D0;1D7D0;0032;0032;
@@ -16940,6 +16953,8 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 05B8 05B9 05B8 05B7 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;0061 05B7 05B8 05B8 05B9 0062;
0061 05BB 05B9 05B8 05B9 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;
0061 05B9 05BB 05B9 05B8 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;0061 05B8 05B9 05B9 05BB 0062;
+0061 05BB 05B9 05B8 05BA 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;0061 05B8 05B9 05BA 05BB 0062;
+0061 05BA 05BB 05B9 05B8 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;0061 05B8 05BA 05B9 05BB 0062;
0061 05BC 05BB 05B9 05BB 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;
0061 05BB 05BC 05BB 05B9 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;0061 05B9 05BB 05BB 05BC 0062;
0061 05BD 05BC 05BB 05BC 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;0061 05BB 05BC 05BC 05BD 0062;
@@ -17106,6 +17121,24 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 0749 0315 0300 05AE 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;0061 05AE 0749 0300 0315 0062;
0061 0315 0300 05AE 074A 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062;00E0 05AE 074A 0315 0062;0061 05AE 0300 074A 0315 0062;
0061 074A 0315 0300 05AE 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;0061 05AE 074A 0300 0315 0062;
+0061 0315 0300 05AE 07EB 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062;00E0 05AE 07EB 0315 0062;0061 05AE 0300 07EB 0315 0062;
+0061 07EB 0315 0300 05AE 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;0061 05AE 07EB 0300 0315 0062;
+0061 0315 0300 05AE 07EC 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062;00E0 05AE 07EC 0315 0062;0061 05AE 0300 07EC 0315 0062;
+0061 07EC 0315 0300 05AE 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;0061 05AE 07EC 0300 0315 0062;
+0061 0315 0300 05AE 07ED 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062;00E0 05AE 07ED 0315 0062;0061 05AE 0300 07ED 0315 0062;
+0061 07ED 0315 0300 05AE 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;0061 05AE 07ED 0300 0315 0062;
+0061 0315 0300 05AE 07EE 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062;00E0 05AE 07EE 0315 0062;0061 05AE 0300 07EE 0315 0062;
+0061 07EE 0315 0300 05AE 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;0061 05AE 07EE 0300 0315 0062;
+0061 0315 0300 05AE 07EF 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062;00E0 05AE 07EF 0315 0062;0061 05AE 0300 07EF 0315 0062;
+0061 07EF 0315 0300 05AE 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;0061 05AE 07EF 0300 0315 0062;
+0061 0315 0300 05AE 07F0 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062;00E0 05AE 07F0 0315 0062;0061 05AE 0300 07F0 0315 0062;
+0061 07F0 0315 0300 05AE 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;0061 05AE 07F0 0300 0315 0062;
+0061 0315 0300 05AE 07F1 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062;00E0 05AE 07F1 0315 0062;0061 05AE 0300 07F1 0315 0062;
+0061 07F1 0315 0300 05AE 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;0061 05AE 07F1 0300 0315 0062;
+0061 059A 0316 302A 07F2 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;0061 302A 0316 07F2 059A 0062;
+0061 07F2 059A 0316 302A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;0061 302A 07F2 0316 059A 0062;
+0061 0315 0300 05AE 07F3 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;00E0 05AE 07F3 0315 0062;0061 05AE 0300 07F3 0315 0062;
+0061 07F3 0315 0300 05AE 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;0061 05AE 07F3 0300 0315 0062;
0061 3099 093C 0334 093C 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
0061 093C 3099 093C 0334 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;0061 0334 093C 093C 3099 0062;
0061 05B0 094D 3099 094D 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;0061 3099 094D 094D 05B0 0062;
@@ -17240,6 +17273,28 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 1A17 0315 0300 05AE 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;0061 05AE 1A17 0300 0315 0062;
0061 059A 0316 302A 1A18 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;0061 302A 0316 1A18 059A 0062;
0061 1A18 059A 0316 302A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;0061 302A 1A18 0316 059A 0062;
+0061 3099 093C 0334 1B34 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;0061 0334 093C 1B34 3099 0062;
+0061 1B34 3099 093C 0334 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;0061 0334 1B34 093C 3099 0062;
+0061 05B0 094D 3099 1B44 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;0061 3099 094D 1B44 05B0 0062;
+0061 1B44 05B0 094D 3099 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;0061 3099 1B44 094D 05B0 0062;
+0061 0315 0300 05AE 1B6B 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062;00E0 05AE 1B6B 0315 0062;0061 05AE 0300 1B6B 0315 0062;
+0061 1B6B 0315 0300 05AE 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;0061 05AE 1B6B 0300 0315 0062;
+0061 059A 0316 302A 1B6C 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;0061 302A 0316 1B6C 059A 0062;
+0061 1B6C 059A 0316 302A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;0061 302A 1B6C 0316 059A 0062;
+0061 0315 0300 05AE 1B6D 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062;00E0 05AE 1B6D 0315 0062;0061 05AE 0300 1B6D 0315 0062;
+0061 1B6D 0315 0300 05AE 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;0061 05AE 1B6D 0300 0315 0062;
+0061 0315 0300 05AE 1B6E 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062;00E0 05AE 1B6E 0315 0062;0061 05AE 0300 1B6E 0315 0062;
+0061 1B6E 0315 0300 05AE 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;0061 05AE 1B6E 0300 0315 0062;
+0061 0315 0300 05AE 1B6F 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062;00E0 05AE 1B6F 0315 0062;0061 05AE 0300 1B6F 0315 0062;
+0061 1B6F 0315 0300 05AE 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;0061 05AE 1B6F 0300 0315 0062;
+0061 0315 0300 05AE 1B70 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062;00E0 05AE 1B70 0315 0062;0061 05AE 0300 1B70 0315 0062;
+0061 1B70 0315 0300 05AE 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;0061 05AE 1B70 0300 0315 0062;
+0061 0315 0300 05AE 1B71 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062;00E0 05AE 1B71 0315 0062;0061 05AE 0300 1B71 0315 0062;
+0061 1B71 0315 0300 05AE 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;0061 05AE 1B71 0300 0315 0062;
+0061 0315 0300 05AE 1B72 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062;00E0 05AE 1B72 0315 0062;0061 05AE 0300 1B72 0315 0062;
+0061 1B72 0315 0300 05AE 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;0061 05AE 1B72 0300 0315 0062;
+0061 0315 0300 05AE 1B73 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062;00E0 05AE 1B73 0315 0062;0061 05AE 0300 1B73 0315 0062;
+0061 1B73 0315 0300 05AE 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;0061 05AE 1B73 0300 0315 0062;
0061 0315 0300 05AE 1DC0 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;00E0 05AE 1DC0 0315 0062;0061 05AE 0300 1DC0 0315 0062;
0061 1DC0 0315 0300 05AE 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;0061 05AE 1DC0 0300 0315 0062;
0061 0315 0300 05AE 1DC1 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;00E0 05AE 1DC1 0315 0062;0061 05AE 0300 1DC1 0315 0062;
@@ -17248,6 +17303,24 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 1DC2 059A 0316 302A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;0061 302A 1DC2 0316 059A 0062;
0061 0315 0300 05AE 1DC3 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062;00E0 05AE 1DC3 0315 0062;0061 05AE 0300 1DC3 0315 0062;
0061 1DC3 0315 0300 05AE 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;0061 05AE 1DC3 0300 0315 0062;
+0061 0315 0300 05AE 1DC4 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062;00E0 05AE 1DC4 0315 0062;0061 05AE 0300 1DC4 0315 0062;
+0061 1DC4 0315 0300 05AE 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;0061 05AE 1DC4 0300 0315 0062;
+0061 0315 0300 05AE 1DC5 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062;00E0 05AE 1DC5 0315 0062;0061 05AE 0300 1DC5 0315 0062;
+0061 1DC5 0315 0300 05AE 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;0061 05AE 1DC5 0300 0315 0062;
+0061 0315 0300 05AE 1DC6 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062;00E0 05AE 1DC6 0315 0062;0061 05AE 0300 1DC6 0315 0062;
+0061 1DC6 0315 0300 05AE 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;0061 05AE 1DC6 0300 0315 0062;
+0061 0315 0300 05AE 1DC7 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062;00E0 05AE 1DC7 0315 0062;0061 05AE 0300 1DC7 0315 0062;
+0061 1DC7 0315 0300 05AE 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;0061 05AE 1DC7 0300 0315 0062;
+0061 0315 0300 05AE 1DC8 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062;00E0 05AE 1DC8 0315 0062;0061 05AE 0300 1DC8 0315 0062;
+0061 1DC8 0315 0300 05AE 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;0061 05AE 1DC8 0300 0315 0062;
+0061 0315 0300 05AE 1DC9 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062;00E0 05AE 1DC9 0315 0062;0061 05AE 0300 1DC9 0315 0062;
+0061 1DC9 0315 0300 05AE 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;0061 05AE 1DC9 0300 0315 0062;
+0061 059A 0316 302A 1DCA 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;0061 302A 0316 1DCA 059A 0062;
+0061 1DCA 059A 0316 302A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;0061 302A 1DCA 0316 059A 0062;
+0061 0315 0300 05AE 1DFE 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;00E0 05AE 1DFE 0315 0062;0061 05AE 0300 1DFE 0315 0062;
+0061 1DFE 0315 0300 05AE 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;0061 05AE 1DFE 0300 0315 0062;
+0061 059A 0316 302A 1DFF 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;0061 302A 0316 1DFF 059A 0062;
+0061 1DFF 059A 0316 302A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;0061 302A 1DFF 0316 059A 0062;
0061 0315 0300 05AE 20D0 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062;00E0 05AE 20D0 0315 0062;0061 05AE 0300 20D0 0315 0062;
0061 20D0 0315 0300 05AE 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;0061 05AE 20D0 0300 0315 0062;
0061 0315 0300 05AE 20D1 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062;00E0 05AE 20D1 0315 0062;0061 05AE 0300 20D1 0315 0062;
@@ -17290,6 +17363,14 @@ FFEE;FFEE;FFEE;25CB;25CB;
0061 20EA 093C 0334 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;0061 20EA 0334 093C 0062;
0061 093C 0334 20EB 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;0061 0334 20EB 093C 0062;
0061 20EB 093C 0334 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;0061 20EB 0334 093C 0062;
+0061 059A 0316 302A 20EC 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;0061 302A 0316 20EC 059A 0062;
+0061 20EC 059A 0316 302A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;0061 302A 20EC 0316 059A 0062;
+0061 059A 0316 302A 20ED 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;0061 302A 0316 20ED 059A 0062;
+0061 20ED 059A 0316 302A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;0061 302A 20ED 0316 059A 0062;
+0061 059A 0316 302A 20EE 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;0061 302A 0316 20EE 059A 0062;
+0061 20EE 059A 0316 302A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;0061 302A 20EE 0316 059A 0062;
+0061 059A 0316 302A 20EF 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;0061 302A 0316 20EF 059A 0062;
+0061 20EF 059A 0316 302A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;0061 302A 20EF 0316 059A 0062;
0061 0316 302A 031B 302A 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;
0061 302A 0316 302A 031B 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;0061 031B 302A 302A 0316 0062;
0061 0300 05AE 1D16D 302B 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062;00E0 1D16D 05AE 302B 0062;0061 1D16D 05AE 302B 0300 0062;
@@ -17462,6 +17543,17 @@ FFEE;FFEE;FFEE;25CB;25CB;
1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168;1111 0334 1168;
1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175;1111 0334 1175;
1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D;1112 0334 116D;
+1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;1B05 0334 1B35;
+1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;1B07 0334 1B35;
+1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;1B09 0334 1B35;
+1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;1B0B 0334 1B35;
+1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;1B0D 0334 1B35;
+1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;1B11 0334 1B35;
+1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;1B3A 0334 1B35;
+1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;1B3C 0334 1B35;
+1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;1B3E 0334 1B35;
+1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;1B3F 0334 1B35;
+1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;1B42 0334 1B35;
AC54 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE;AC54 0334 11AE;1100 1164 0334 11AE;
ACA8 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5;ACA8 0334 11B5;1100 1167 0334 11B5;
ACFC 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC;ACFC 0334 11BC;1100 116A 0334 11BC;
diff --git a/Build/source/libs/icu-xetex/data/unidata/PropList.txt b/Build/source/libs/icu-xetex/data/unidata/PropList.txt
index befc49e8e64..14591c8ff6e 100644
--- a/Build/source/libs/icu-xetex/data/unidata/PropList.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/PropList.txt
@@ -1,1049 +1,1065 @@
-# PropList-4.1.0.txt
-# Date: 2005-03-26, 00:34:40 GMT [MD]
+# PropList-5.0.0.txt
+# Date: 2006-06-07, 23:22:52 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
# ================================================
-0009..000D ; White_Space # Cc [5] <control-0009>..<control-000D>
-0020 ; White_Space # Zs SPACE
-0085 ; White_Space # Cc <control-0085>
-00A0 ; White_Space # Zs NO-BREAK SPACE
-1680 ; White_Space # Zs OGHAM SPACE MARK
-180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR
-2000..200A ; White_Space # Zs [11] EN QUAD..HAIR SPACE
-2028 ; White_Space # Zl LINE SEPARATOR
-2029 ; White_Space # Zp PARAGRAPH SEPARATOR
-202F ; White_Space # Zs NARROW NO-BREAK SPACE
-205F ; White_Space # Zs MEDIUM MATHEMATICAL SPACE
-3000 ; White_Space # Zs IDEOGRAPHIC SPACE
+0009..000D ; White_Space
+0020 ; White_Space
+0085 ; White_Space
+00A0 ; White_Space
+1680 ; White_Space
+180E ; White_Space
+2000..200A ; White_Space
+2028 ; White_Space
+2029 ; White_Space
+202F ; White_Space
+205F ; White_Space
+3000 ; White_Space
# Total code points: 26
# ================================================
-200E..200F ; Bidi_Control # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
-202A..202E ; Bidi_Control # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+200E..200F ; Bidi_Control
+202A..202E ; Bidi_Control
# Total code points: 7
# ================================================
-200C..200D ; Join_Control # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+200C..200D ; Join_Control
# Total code points: 2
# ================================================
-002D ; Dash # Pd HYPHEN-MINUS
-058A ; Dash # Pd ARMENIAN HYPHEN
-1806 ; Dash # Pd MONGOLIAN TODO SOFT HYPHEN
-2010..2015 ; Dash # Pd [6] HYPHEN..HORIZONTAL BAR
-2053 ; Dash # Po SWUNG DASH
-207B ; Dash # Sm SUPERSCRIPT MINUS
-208B ; Dash # Sm SUBSCRIPT MINUS
-2212 ; Dash # Sm MINUS SIGN
-2E17 ; Dash # Pd DOUBLE OBLIQUE HYPHEN
-301C ; Dash # Pd WAVE DASH
-3030 ; Dash # Pd WAVY DASH
-30A0 ; Dash # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
-FE31..FE32 ; Dash # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
-FE58 ; Dash # Pd SMALL EM DASH
-FE63 ; Dash # Pd SMALL HYPHEN-MINUS
-FF0D ; Dash # Pd FULLWIDTH HYPHEN-MINUS
-
-# Total code points: 22
+002D ; Dash
+058A ; Dash
+05BE ; Dash
+1806 ; Dash
+2010..2015 ; Dash
+2053 ; Dash
+207B ; Dash
+208B ; Dash
+2212 ; Dash
+2E17 ; Dash
+301C ; Dash
+3030 ; Dash
+30A0 ; Dash
+FE31..FE32 ; Dash
+FE58 ; Dash
+FE63 ; Dash
+FF0D ; Dash
+
+# Total code points: 23
# ================================================
-002D ; Hyphen # Pd HYPHEN-MINUS
-00AD ; Hyphen # Cf SOFT HYPHEN
-058A ; Hyphen # Pd ARMENIAN HYPHEN
-1806 ; Hyphen # Pd MONGOLIAN TODO SOFT HYPHEN
-2010..2011 ; Hyphen # Pd [2] HYPHEN..NON-BREAKING HYPHEN
-2E17 ; Hyphen # Pd DOUBLE OBLIQUE HYPHEN
-30FB ; Hyphen # Po KATAKANA MIDDLE DOT
-FE63 ; Hyphen # Pd SMALL HYPHEN-MINUS
-FF0D ; Hyphen # Pd FULLWIDTH HYPHEN-MINUS
-FF65 ; Hyphen # Po HALFWIDTH KATAKANA MIDDLE DOT
+002D ; Hyphen
+00AD ; Hyphen
+058A ; Hyphen
+1806 ; Hyphen
+2010..2011 ; Hyphen
+2E17 ; Hyphen
+30FB ; Hyphen
+FE63 ; Hyphen
+FF0D ; Hyphen
+FF65 ; Hyphen
# Total code points: 11
# ================================================
-0022 ; Quotation_Mark # Po QUOTATION MARK
-0027 ; Quotation_Mark # Po APOSTROPHE
-00AB ; Quotation_Mark # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BB ; Quotation_Mark # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-2018 ; Quotation_Mark # Pi LEFT SINGLE QUOTATION MARK
-2019 ; Quotation_Mark # Pf RIGHT SINGLE QUOTATION MARK
-201A ; Quotation_Mark # Ps SINGLE LOW-9 QUOTATION MARK
-201B..201C ; Quotation_Mark # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
-201D ; Quotation_Mark # Pf RIGHT DOUBLE QUOTATION MARK
-201E ; Quotation_Mark # Ps DOUBLE LOW-9 QUOTATION MARK
-201F ; Quotation_Mark # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2039 ; Quotation_Mark # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; Quotation_Mark # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-300C ; Quotation_Mark # Ps LEFT CORNER BRACKET
-300D ; Quotation_Mark # Pe RIGHT CORNER BRACKET
-300E ; Quotation_Mark # Ps LEFT WHITE CORNER BRACKET
-300F ; Quotation_Mark # Pe RIGHT WHITE CORNER BRACKET
-301D ; Quotation_Mark # Ps REVERSED DOUBLE PRIME QUOTATION MARK
-301E..301F ; Quotation_Mark # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-FE41 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FF02 ; Quotation_Mark # Po FULLWIDTH QUOTATION MARK
-FF07 ; Quotation_Mark # Po FULLWIDTH APOSTROPHE
-FF62 ; Quotation_Mark # Ps HALFWIDTH LEFT CORNER BRACKET
-FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET
+0022 ; Quotation_Mark
+0027 ; Quotation_Mark
+00AB ; Quotation_Mark
+00BB ; Quotation_Mark
+2018 ; Quotation_Mark
+2019 ; Quotation_Mark
+201A ; Quotation_Mark
+201B..201C ; Quotation_Mark
+201D ; Quotation_Mark
+201E ; Quotation_Mark
+201F ; Quotation_Mark
+2039 ; Quotation_Mark
+203A ; Quotation_Mark
+300C ; Quotation_Mark
+300D ; Quotation_Mark
+300E ; Quotation_Mark
+300F ; Quotation_Mark
+301D ; Quotation_Mark
+301E..301F ; Quotation_Mark
+FE41 ; Quotation_Mark
+FE42 ; Quotation_Mark
+FE43 ; Quotation_Mark
+FE44 ; Quotation_Mark
+FF02 ; Quotation_Mark
+FF07 ; Quotation_Mark
+FF62 ; Quotation_Mark
+FF63 ; Quotation_Mark
# Total code points: 29
# ================================================
-0021 ; Terminal_Punctuation # Po EXCLAMATION MARK
-002C ; Terminal_Punctuation # Po COMMA
-002E ; Terminal_Punctuation # Po FULL STOP
-003A..003B ; Terminal_Punctuation # Po [2] COLON..SEMICOLON
-003F ; Terminal_Punctuation # Po QUESTION MARK
-037E ; Terminal_Punctuation # Po GREEK QUESTION MARK
-0387 ; Terminal_Punctuation # Po GREEK ANO TELEIA
-0589 ; Terminal_Punctuation # Po ARMENIAN FULL STOP
-05C3 ; Terminal_Punctuation # Po HEBREW PUNCTUATION SOF PASUQ
-060C ; Terminal_Punctuation # Po ARABIC COMMA
-061B ; Terminal_Punctuation # Po ARABIC SEMICOLON
-061F ; Terminal_Punctuation # Po ARABIC QUESTION MARK
-06D4 ; Terminal_Punctuation # Po ARABIC FULL STOP
-0700..070A ; Terminal_Punctuation # Po [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION
-070C ; Terminal_Punctuation # Po SYRIAC HARKLEAN METOBELUS
-0964..0965 ; Terminal_Punctuation # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0E5A..0E5B ; Terminal_Punctuation # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
-0F08 ; Terminal_Punctuation # Po TIBETAN MARK SBRUL SHAD
-0F0D..0F12 ; Terminal_Punctuation # Po [6] TIBETAN MARK SHAD..TIBETAN MARK RGYA GRAM SHAD
-104A..104B ; Terminal_Punctuation # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
-1361..1368 ; Terminal_Punctuation # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
-166D..166E ; Terminal_Punctuation # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
-16EB..16ED ; Terminal_Punctuation # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
-17D4..17D6 ; Terminal_Punctuation # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
-17DA ; Terminal_Punctuation # Po KHMER SIGN KOOMUUT
-1802..1805 ; Terminal_Punctuation # Po [4] MONGOLIAN COMMA..MONGOLIAN FOUR DOTS
-1808..1809 ; Terminal_Punctuation # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
-1944..1945 ; Terminal_Punctuation # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-203C..203D ; Terminal_Punctuation # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
-2047..2049 ; Terminal_Punctuation # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
-3001..3002 ; Terminal_Punctuation # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
-FE50..FE52 ; Terminal_Punctuation # Po [3] SMALL COMMA..SMALL FULL STOP
-FE54..FE57 ; Terminal_Punctuation # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
-FF01 ; Terminal_Punctuation # Po FULLWIDTH EXCLAMATION MARK
-FF0C ; Terminal_Punctuation # Po FULLWIDTH COMMA
-FF0E ; Terminal_Punctuation # Po FULLWIDTH FULL STOP
-FF1A..FF1B ; Terminal_Punctuation # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
-FF1F ; Terminal_Punctuation # Po FULLWIDTH QUESTION MARK
-FF61 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC FULL STOP
-FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA
-
-# Total code points: 86
+0021 ; Terminal_Punctuation
+002C ; Terminal_Punctuation
+002E ; Terminal_Punctuation
+003A..003B ; Terminal_Punctuation
+003F ; Terminal_Punctuation
+037E ; Terminal_Punctuation
+0387 ; Terminal_Punctuation
+0589 ; Terminal_Punctuation
+05C3 ; Terminal_Punctuation
+060C ; Terminal_Punctuation
+061B ; Terminal_Punctuation
+061F ; Terminal_Punctuation
+06D4 ; Terminal_Punctuation
+0700..070A ; Terminal_Punctuation
+070C ; Terminal_Punctuation
+07F8..07F9 ; Terminal_Punctuation
+0964..0965 ; Terminal_Punctuation
+0E5A..0E5B ; Terminal_Punctuation
+0F08 ; Terminal_Punctuation
+0F0D..0F12 ; Terminal_Punctuation
+104A..104B ; Terminal_Punctuation
+1361..1368 ; Terminal_Punctuation
+166D..166E ; Terminal_Punctuation
+16EB..16ED ; Terminal_Punctuation
+17D4..17D6 ; Terminal_Punctuation
+17DA ; Terminal_Punctuation
+1802..1805 ; Terminal_Punctuation
+1808..1809 ; Terminal_Punctuation
+1944..1945 ; Terminal_Punctuation
+1B5A..1B5B ; Terminal_Punctuation
+1B5D..1B5F ; Terminal_Punctuation
+203C..203D ; Terminal_Punctuation
+2047..2049 ; Terminal_Punctuation
+3001..3002 ; Terminal_Punctuation
+A876..A877 ; Terminal_Punctuation
+FE50..FE52 ; Terminal_Punctuation
+FE54..FE57 ; Terminal_Punctuation
+FF01 ; Terminal_Punctuation
+FF0C ; Terminal_Punctuation
+FF0E ; Terminal_Punctuation
+FF1A..FF1B ; Terminal_Punctuation
+FF1F ; Terminal_Punctuation
+FF61 ; Terminal_Punctuation
+FF64 ; Terminal_Punctuation
+1039F ; Terminal_Punctuation
+103D0 ; Terminal_Punctuation
+1091F ; Terminal_Punctuation
+12470..12473 ; Terminal_Punctuation
+
+# Total code points: 102
# ================================================
-005E ; Other_Math # Sk CIRCUMFLEX ACCENT
-03D0..03D2 ; Other_Math # L& [3] GREEK BETA SYMBOL..GREEK UPSILON WITH HOOK SYMBOL
-03D5 ; Other_Math # L& GREEK PHI SYMBOL
-03F0..03F1 ; Other_Math # L& [2] GREEK KAPPA SYMBOL..GREEK RHO SYMBOL
-03F4..03F5 ; Other_Math # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
-2016 ; Other_Math # Po DOUBLE VERTICAL LINE
-2032..2034 ; Other_Math # Po [3] PRIME..TRIPLE PRIME
-2040 ; Other_Math # Pc CHARACTER TIE
-2061..2063 ; Other_Math # Cf [3] FUNCTION APPLICATION..INVISIBLE SEPARATOR
-207D ; Other_Math # Ps SUPERSCRIPT LEFT PARENTHESIS
-207E ; Other_Math # Pe SUPERSCRIPT RIGHT PARENTHESIS
-208D ; Other_Math # Ps SUBSCRIPT LEFT PARENTHESIS
-208E ; Other_Math # Pe SUBSCRIPT RIGHT PARENTHESIS
-20D0..20DC ; Other_Math # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
-20E1 ; Other_Math # Mn COMBINING LEFT RIGHT ARROW ABOVE
-20E5..20E6 ; Other_Math # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY
-2102 ; Other_Math # L& DOUBLE-STRUCK CAPITAL C
-210A..2113 ; Other_Math # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
-2115 ; Other_Math # L& DOUBLE-STRUCK CAPITAL N
-2119..211D ; Other_Math # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
-2124 ; Other_Math # L& DOUBLE-STRUCK CAPITAL Z
-2128 ; Other_Math # L& BLACK-LETTER CAPITAL Z
-2129 ; Other_Math # So TURNED GREEK SMALL LETTER IOTA
-212C..212D ; Other_Math # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
-212F..2131 ; Other_Math # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
-2133..2134 ; Other_Math # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
-2135..2138 ; Other_Math # Lo [4] ALEF SYMBOL..DALET SYMBOL
-213C..213F ; Other_Math # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
-2145..2149 ; Other_Math # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
-23B7 ; Other_Math # So RADICAL SYMBOL BOTTOM
-23D0 ; Other_Math # So VERTICAL LINE EXTENSION
-27C5 ; Other_Math # Ps LEFT S-SHAPED BAG DELIMITER
-27C6 ; Other_Math # Pe RIGHT S-SHAPED BAG DELIMITER
-27E6 ; Other_Math # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; Other_Math # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; Other_Math # Ps MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; Other_Math # Pe MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; Other_Math # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; Other_Math # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-2983 ; Other_Math # Ps LEFT WHITE CURLY BRACKET
-2984 ; Other_Math # Pe RIGHT WHITE CURLY BRACKET
-2985 ; Other_Math # Ps LEFT WHITE PARENTHESIS
-2986 ; Other_Math # Pe RIGHT WHITE PARENTHESIS
-2987 ; Other_Math # Ps Z NOTATION LEFT IMAGE BRACKET
-2988 ; Other_Math # Pe Z NOTATION RIGHT IMAGE BRACKET
-2989 ; Other_Math # Ps Z NOTATION LEFT BINDING BRACKET
-298A ; Other_Math # Pe Z NOTATION RIGHT BINDING BRACKET
-298B ; Other_Math # Ps LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; Other_Math # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; Other_Math # Ps LEFT ANGLE BRACKET WITH DOT
-2992 ; Other_Math # Pe RIGHT ANGLE BRACKET WITH DOT
-2993 ; Other_Math # Ps LEFT ARC LESS-THAN BRACKET
-2994 ; Other_Math # Pe RIGHT ARC GREATER-THAN BRACKET
-2995 ; Other_Math # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; Other_Math # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; Other_Math # Ps LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; Other_Math # Pe RIGHT BLACK TORTOISE SHELL BRACKET
-29D8 ; Other_Math # Ps LEFT WIGGLY FENCE
-29D9 ; Other_Math # Pe RIGHT WIGGLY FENCE
-29DA ; Other_Math # Ps LEFT DOUBLE WIGGLY FENCE
-29DB ; Other_Math # Pe RIGHT DOUBLE WIGGLY FENCE
-29FC ; Other_Math # Ps LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; Other_Math # Pe RIGHT-POINTING CURVED ANGLE BRACKET
-FE61 ; Other_Math # Po SMALL ASTERISK
-FE63 ; Other_Math # Pd SMALL HYPHEN-MINUS
-FE68 ; Other_Math # Po SMALL REVERSE SOLIDUS
-FF3C ; Other_Math # Po FULLWIDTH REVERSE SOLIDUS
-FF3E ; Other_Math # Sk FULLWIDTH CIRCUMFLEX ACCENT
-1D400..1D454 ; Other_Math # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
-1D456..1D49C ; Other_Math # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
-1D49E..1D49F ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
-1D4A2 ; Other_Math # L& MATHEMATICAL SCRIPT CAPITAL G
-1D4A5..1D4A6 ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
-1D4A9..1D4AC ; Other_Math # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE..1D4B9 ; Other_Math # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
-1D4BB ; Other_Math # L& MATHEMATICAL SCRIPT SMALL F
-1D4BD..1D4C3 ; Other_Math # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
-1D4C5..1D505 ; Other_Math # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
-1D507..1D50A ; Other_Math # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
-1D50D..1D514 ; Other_Math # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
-1D516..1D51C ; Other_Math # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E..1D539 ; Other_Math # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B..1D53E ; Other_Math # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540..1D544 ; Other_Math # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546 ; Other_Math # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A..1D550 ; Other_Math # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552..1D6A3 ; Other_Math # L& [338] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL MONOSPACE SMALL Z
-1D6A8..1D6C0 ; Other_Math # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C2..1D6DA ; Other_Math # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
-1D6DC..1D6FA ; Other_Math # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FC..1D714 ; Other_Math # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
-1D716..1D734 ; Other_Math # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D736..1D74E ; Other_Math # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D750..1D76E ; Other_Math # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D770..1D788 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D78A..1D7A8 ; Other_Math # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7AA..1D7C2 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C4..1D7C9 ; Other_Math # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CE..1D7FF ; Other_Math # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-
-# Total code points: 1102
+005E ; Other_Math
+03D0..03D2 ; Other_Math
+03D5 ; Other_Math
+03F0..03F1 ; Other_Math
+03F4..03F5 ; Other_Math
+2016 ; Other_Math
+2032..2034 ; Other_Math
+2040 ; Other_Math
+2061..2063 ; Other_Math
+207D ; Other_Math
+207E ; Other_Math
+208D ; Other_Math
+208E ; Other_Math
+20D0..20DC ; Other_Math
+20E1 ; Other_Math
+20E5..20E6 ; Other_Math
+20EC..20EF ; Other_Math
+2102 ; Other_Math
+210A..2113 ; Other_Math
+2115 ; Other_Math
+2119..211D ; Other_Math
+2124 ; Other_Math
+2128 ; Other_Math
+2129 ; Other_Math
+212C..212D ; Other_Math
+212F..2131 ; Other_Math
+2133..2134 ; Other_Math
+2135..2138 ; Other_Math
+213C..213F ; Other_Math
+2145..2149 ; Other_Math
+23B7 ; Other_Math
+23D0 ; Other_Math
+27C5 ; Other_Math
+27C6 ; Other_Math
+27E6 ; Other_Math
+27E7 ; Other_Math
+27E8 ; Other_Math
+27E9 ; Other_Math
+27EA ; Other_Math
+27EB ; Other_Math
+2983 ; Other_Math
+2984 ; Other_Math
+2985 ; Other_Math
+2986 ; Other_Math
+2987 ; Other_Math
+2988 ; Other_Math
+2989 ; Other_Math
+298A ; Other_Math
+298B ; Other_Math
+298C ; Other_Math
+298D ; Other_Math
+298E ; Other_Math
+298F ; Other_Math
+2990 ; Other_Math
+2991 ; Other_Math
+2992 ; Other_Math
+2993 ; Other_Math
+2994 ; Other_Math
+2995 ; Other_Math
+2996 ; Other_Math
+2997 ; Other_Math
+2998 ; Other_Math
+29D8 ; Other_Math
+29D9 ; Other_Math
+29DA ; Other_Math
+29DB ; Other_Math
+29FC ; Other_Math
+29FD ; Other_Math
+FE61 ; Other_Math
+FE63 ; Other_Math
+FE68 ; Other_Math
+FF3C ; Other_Math
+FF3E ; Other_Math
+1D400..1D454 ; Other_Math
+1D456..1D49C ; Other_Math
+1D49E..1D49F ; Other_Math
+1D4A2 ; Other_Math
+1D4A5..1D4A6 ; Other_Math
+1D4A9..1D4AC ; Other_Math
+1D4AE..1D4B9 ; Other_Math
+1D4BB ; Other_Math
+1D4BD..1D4C3 ; Other_Math
+1D4C5..1D505 ; Other_Math
+1D507..1D50A ; Other_Math
+1D50D..1D514 ; Other_Math
+1D516..1D51C ; Other_Math
+1D51E..1D539 ; Other_Math
+1D53B..1D53E ; Other_Math
+1D540..1D544 ; Other_Math
+1D546 ; Other_Math
+1D54A..1D550 ; Other_Math
+1D552..1D6A5 ; Other_Math
+1D6A8..1D6C0 ; Other_Math
+1D6C2..1D6DA ; Other_Math
+1D6DC..1D6FA ; Other_Math
+1D6FC..1D714 ; Other_Math
+1D716..1D734 ; Other_Math
+1D736..1D74E ; Other_Math
+1D750..1D76E ; Other_Math
+1D770..1D788 ; Other_Math
+1D78A..1D7A8 ; Other_Math
+1D7AA..1D7C2 ; Other_Math
+1D7C4..1D7CB ; Other_Math
+1D7CE..1D7FF ; Other_Math
+
+# Total code points: 1110
# ================================================
-0030..0039 ; Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE
-0041..0046 ; Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F
-0061..0066 ; Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F
-FF10..FF19 ; Hex_Digit # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
-FF21..FF26 ; Hex_Digit # L& [6] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER F
-FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER F
+0030..0039 ; Hex_Digit
+0041..0046 ; Hex_Digit
+0061..0066 ; Hex_Digit
+FF10..FF19 ; Hex_Digit
+FF21..FF26 ; Hex_Digit
+FF41..FF46 ; Hex_Digit
# Total code points: 44
# ================================================
-0030..0039 ; ASCII_Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE
-0041..0046 ; ASCII_Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F
-0061..0066 ; ASCII_Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F
+0030..0039 ; ASCII_Hex_Digit
+0041..0046 ; ASCII_Hex_Digit
+0061..0066 ; ASCII_Hex_Digit
# Total code points: 22
# ================================================
-0345 ; Other_Alphabetic # Mn COMBINING GREEK YPOGEGRAMMENI
-05B0..05B9 ; Other_Alphabetic # Mn [10] HEBREW POINT SHEVA..HEBREW POINT HOLAM
-05BB..05BD ; Other_Alphabetic # Mn [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
-05BF ; Other_Alphabetic # Mn HEBREW POINT RAFE
-05C1..05C2 ; Other_Alphabetic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C4..05C5 ; Other_Alphabetic # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C7 ; Other_Alphabetic # Mn HEBREW POINT QAMATS QATAN
-0610..0615 ; Other_Alphabetic # Mn [6] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH
-064B..0657 ; Other_Alphabetic # Mn [13] ARABIC FATHATAN..ARABIC INVERTED DAMMA
-0659..065E ; Other_Alphabetic # Mn [6] ARABIC ZWARAKAY..ARABIC FATHA WITH TWO DOTS
-0670 ; Other_Alphabetic # Mn ARABIC LETTER SUPERSCRIPT ALEF
-06D6..06DC ; Other_Alphabetic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
-06E1..06E4 ; Other_Alphabetic # Mn [4] ARABIC SMALL HIGH DOTLESS HEAD OF KHAH..ARABIC SMALL HIGH MADDA
-06E7..06E8 ; Other_Alphabetic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
-06ED ; Other_Alphabetic # Mn ARABIC SMALL LOW MEEM
-0711 ; Other_Alphabetic # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
-0730..073F ; Other_Alphabetic # Mn [16] SYRIAC PTHAHA ABOVE..SYRIAC RWAHA
-07A6..07B0 ; Other_Alphabetic # Mn [11] THAANA ABAFILI..THAANA SUKUN
-0901..0902 ; Other_Alphabetic # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
-0903 ; Other_Alphabetic # Mc DEVANAGARI SIGN VISARGA
-093E..0940 ; Other_Alphabetic # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
-0941..0948 ; Other_Alphabetic # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
-0949..094C ; Other_Alphabetic # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
-0962..0963 ; Other_Alphabetic # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
-0981 ; Other_Alphabetic # Mn BENGALI SIGN CANDRABINDU
-0982..0983 ; Other_Alphabetic # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
-09BE..09C0 ; Other_Alphabetic # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
-09C1..09C4 ; Other_Alphabetic # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
-09C7..09C8 ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
-09CB..09CC ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
-09D7 ; Other_Alphabetic # Mc BENGALI AU LENGTH MARK
-09E2..09E3 ; Other_Alphabetic # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
-0A01..0A02 ; Other_Alphabetic # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
-0A03 ; Other_Alphabetic # Mc GURMUKHI SIGN VISARGA
-0A3E..0A40 ; Other_Alphabetic # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
-0A41..0A42 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
-0A47..0A48 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A4B..0A4C ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU
-0A70..0A71 ; Other_Alphabetic # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
-0A81..0A82 ; Other_Alphabetic # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
-0A83 ; Other_Alphabetic # Mc GUJARATI SIGN VISARGA
-0ABE..0AC0 ; Other_Alphabetic # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
-0AC1..0AC5 ; Other_Alphabetic # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
-0AC7..0AC8 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
-0AC9 ; Other_Alphabetic # Mc GUJARATI VOWEL SIGN CANDRA O
-0ACB..0ACC ; Other_Alphabetic # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
-0AE2..0AE3 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
-0B01 ; Other_Alphabetic # Mn ORIYA SIGN CANDRABINDU
-0B02..0B03 ; Other_Alphabetic # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
-0B3E ; Other_Alphabetic # Mc ORIYA VOWEL SIGN AA
-0B3F ; Other_Alphabetic # Mn ORIYA VOWEL SIGN I
-0B40 ; Other_Alphabetic # Mc ORIYA VOWEL SIGN II
-0B41..0B43 ; Other_Alphabetic # Mn [3] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC R
-0B47..0B48 ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
-0B4B..0B4C ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
-0B56 ; Other_Alphabetic # Mn ORIYA AI LENGTH MARK
-0B57 ; Other_Alphabetic # Mc ORIYA AU LENGTH MARK
-0B82 ; Other_Alphabetic # Mn TAMIL SIGN ANUSVARA
-0BBE..0BBF ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
-0BC0 ; Other_Alphabetic # Mn TAMIL VOWEL SIGN II
-0BC1..0BC2 ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
-0BC6..0BC8 ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
-0BCA..0BCC ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
-0BD7 ; Other_Alphabetic # Mc TAMIL AU LENGTH MARK
-0C01..0C03 ; Other_Alphabetic # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C3E..0C40 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
-0C41..0C44 ; Other_Alphabetic # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
-0C46..0C48 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C4A..0C4C ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU
-0C55..0C56 ; Other_Alphabetic # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C82..0C83 ; Other_Alphabetic # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0CBE ; Other_Alphabetic # Mc KANNADA VOWEL SIGN AA
-0CBF ; Other_Alphabetic # Mn KANNADA VOWEL SIGN I
-0CC0..0CC4 ; Other_Alphabetic # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
-0CC6 ; Other_Alphabetic # Mn KANNADA VOWEL SIGN E
-0CC7..0CC8 ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
-0CCA..0CCB ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
-0CCC ; Other_Alphabetic # Mn KANNADA VOWEL SIGN AU
-0CD5..0CD6 ; Other_Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0D02..0D03 ; Other_Alphabetic # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
-0D3E..0D40 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
-0D41..0D43 ; Other_Alphabetic # Mn [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R
-0D46..0D48 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
-0D4A..0D4C ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
-0D57 ; Other_Alphabetic # Mc MALAYALAM AU LENGTH MARK
-0D82..0D83 ; Other_Alphabetic # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
-0DCF..0DD1 ; Other_Alphabetic # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2..0DD4 ; Other_Alphabetic # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; Other_Alphabetic # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8..0DDF ; Other_Alphabetic # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
-0DF2..0DF3 ; Other_Alphabetic # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0E31 ; Other_Alphabetic # Mn THAI CHARACTER MAI HAN-AKAT
-0E34..0E3A ; Other_Alphabetic # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E4D ; Other_Alphabetic # Mn THAI CHARACTER NIKHAHIT
-0EB1 ; Other_Alphabetic # Mn LAO VOWEL SIGN MAI KAN
-0EB4..0EB9 ; Other_Alphabetic # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; Other_Alphabetic # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
-0ECD ; Other_Alphabetic # Mn LAO NIGGAHITA
-0F71..0F7E ; Other_Alphabetic # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
-0F7F ; Other_Alphabetic # Mc TIBETAN SIGN RNAM BCAD
-0F80..0F81 ; Other_Alphabetic # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II
-0F90..0F97 ; Other_Alphabetic # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
-0F99..0FBC ; Other_Alphabetic # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-102C ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN AA
-102D..1030 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
-1031 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN E
-1032 ; Other_Alphabetic # Mn MYANMAR VOWEL SIGN AI
-1036 ; Other_Alphabetic # Mn MYANMAR SIGN ANUSVARA
-1038 ; Other_Alphabetic # Mc MYANMAR SIGN VISARGA
-1056..1057 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
-1058..1059 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
-135F ; Other_Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK
-1712..1713 ; Other_Alphabetic # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U
-1732..1733 ; Other_Alphabetic # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
-1752..1753 ; Other_Alphabetic # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
-1772..1773 ; Other_Alphabetic # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-17B6 ; Other_Alphabetic # Mc KHMER VOWEL SIGN AA
-17B7..17BD ; Other_Alphabetic # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
-17BE..17C5 ; Other_Alphabetic # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
-17C6 ; Other_Alphabetic # Mn KHMER SIGN NIKAHIT
-17C7..17C8 ; Other_Alphabetic # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
-18A9 ; Other_Alphabetic # Mn MONGOLIAN LETTER ALI GALI DAGALGA
-1920..1922 ; Other_Alphabetic # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
-1923..1926 ; Other_Alphabetic # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
-1927..1928 ; Other_Alphabetic # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
-1929..192B ; Other_Alphabetic # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
-1930..1931 ; Other_Alphabetic # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
-1932 ; Other_Alphabetic # Mn LIMBU SMALL LETTER ANUSVARA
-1933..1938 ; Other_Alphabetic # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
-19B0..19C0 ; Other_Alphabetic # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
-19C8..19C9 ; Other_Alphabetic # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
-1A17..1A18 ; Other_Alphabetic # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1A19..1A1B ; Other_Alphabetic # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
-24B6..24E9 ; Other_Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
-A823..A824 ; Other_Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
-A825..A826 ; Other_Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
-A827 ; Other_Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO
-FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
-10A01..10A03 ; Other_Alphabetic # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05..10A06 ; Other_Alphabetic # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
-10A0C..10A0F ; Other_Alphabetic # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
-
-# Total code points: 488
+0345 ; Other_Alphabetic
+05B0..05BD ; Other_Alphabetic
+05BF ; Other_Alphabetic
+05C1..05C2 ; Other_Alphabetic
+05C4..05C5 ; Other_Alphabetic
+05C7 ; Other_Alphabetic
+0610..0615 ; Other_Alphabetic
+064B..0657 ; Other_Alphabetic
+0659..065E ; Other_Alphabetic
+0670 ; Other_Alphabetic
+06D6..06DC ; Other_Alphabetic
+06E1..06E4 ; Other_Alphabetic
+06E7..06E8 ; Other_Alphabetic
+06ED ; Other_Alphabetic
+0711 ; Other_Alphabetic
+0730..073F ; Other_Alphabetic
+07A6..07B0 ; Other_Alphabetic
+0901..0902 ; Other_Alphabetic
+0903 ; Other_Alphabetic
+093E..0940 ; Other_Alphabetic
+0941..0948 ; Other_Alphabetic
+0949..094C ; Other_Alphabetic
+0962..0963 ; Other_Alphabetic
+0981 ; Other_Alphabetic
+0982..0983 ; Other_Alphabetic
+09BE..09C0 ; Other_Alphabetic
+09C1..09C4 ; Other_Alphabetic
+09C7..09C8 ; Other_Alphabetic
+09CB..09CC ; Other_Alphabetic
+09D7 ; Other_Alphabetic
+09E2..09E3 ; Other_Alphabetic
+0A01..0A02 ; Other_Alphabetic
+0A03 ; Other_Alphabetic
+0A3E..0A40 ; Other_Alphabetic
+0A41..0A42 ; Other_Alphabetic
+0A47..0A48 ; Other_Alphabetic
+0A4B..0A4C ; Other_Alphabetic
+0A70..0A71 ; Other_Alphabetic
+0A81..0A82 ; Other_Alphabetic
+0A83 ; Other_Alphabetic
+0ABE..0AC0 ; Other_Alphabetic
+0AC1..0AC5 ; Other_Alphabetic
+0AC7..0AC8 ; Other_Alphabetic
+0AC9 ; Other_Alphabetic
+0ACB..0ACC ; Other_Alphabetic
+0AE2..0AE3 ; Other_Alphabetic
+0B01 ; Other_Alphabetic
+0B02..0B03 ; Other_Alphabetic
+0B3E ; Other_Alphabetic
+0B3F ; Other_Alphabetic
+0B40 ; Other_Alphabetic
+0B41..0B43 ; Other_Alphabetic
+0B47..0B48 ; Other_Alphabetic
+0B4B..0B4C ; Other_Alphabetic
+0B56 ; Other_Alphabetic
+0B57 ; Other_Alphabetic
+0B82 ; Other_Alphabetic
+0BBE..0BBF ; Other_Alphabetic
+0BC0 ; Other_Alphabetic
+0BC1..0BC2 ; Other_Alphabetic
+0BC6..0BC8 ; Other_Alphabetic
+0BCA..0BCC ; Other_Alphabetic
+0BD7 ; Other_Alphabetic
+0C01..0C03 ; Other_Alphabetic
+0C3E..0C40 ; Other_Alphabetic
+0C41..0C44 ; Other_Alphabetic
+0C46..0C48 ; Other_Alphabetic
+0C4A..0C4C ; Other_Alphabetic
+0C55..0C56 ; Other_Alphabetic
+0C82..0C83 ; Other_Alphabetic
+0CBE ; Other_Alphabetic
+0CBF ; Other_Alphabetic
+0CC0..0CC4 ; Other_Alphabetic
+0CC6 ; Other_Alphabetic
+0CC7..0CC8 ; Other_Alphabetic
+0CCA..0CCB ; Other_Alphabetic
+0CCC ; Other_Alphabetic
+0CD5..0CD6 ; Other_Alphabetic
+0CE2..0CE3 ; Other_Alphabetic
+0D02..0D03 ; Other_Alphabetic
+0D3E..0D40 ; Other_Alphabetic
+0D41..0D43 ; Other_Alphabetic
+0D46..0D48 ; Other_Alphabetic
+0D4A..0D4C ; Other_Alphabetic
+0D57 ; Other_Alphabetic
+0D82..0D83 ; Other_Alphabetic
+0DCF..0DD1 ; Other_Alphabetic
+0DD2..0DD4 ; Other_Alphabetic
+0DD6 ; Other_Alphabetic
+0DD8..0DDF ; Other_Alphabetic
+0DF2..0DF3 ; Other_Alphabetic
+0E31 ; Other_Alphabetic
+0E34..0E3A ; Other_Alphabetic
+0E4D ; Other_Alphabetic
+0EB1 ; Other_Alphabetic
+0EB4..0EB9 ; Other_Alphabetic
+0EBB..0EBC ; Other_Alphabetic
+0ECD ; Other_Alphabetic
+0F71..0F7E ; Other_Alphabetic
+0F7F ; Other_Alphabetic
+0F80..0F81 ; Other_Alphabetic
+0F90..0F97 ; Other_Alphabetic
+0F99..0FBC ; Other_Alphabetic
+102C ; Other_Alphabetic
+102D..1030 ; Other_Alphabetic
+1031 ; Other_Alphabetic
+1032 ; Other_Alphabetic
+1036 ; Other_Alphabetic
+1038 ; Other_Alphabetic
+1056..1057 ; Other_Alphabetic
+1058..1059 ; Other_Alphabetic
+135F ; Other_Alphabetic
+1712..1713 ; Other_Alphabetic
+1732..1733 ; Other_Alphabetic
+1752..1753 ; Other_Alphabetic
+1772..1773 ; Other_Alphabetic
+17B6 ; Other_Alphabetic
+17B7..17BD ; Other_Alphabetic
+17BE..17C5 ; Other_Alphabetic
+17C6 ; Other_Alphabetic
+17C7..17C8 ; Other_Alphabetic
+18A9 ; Other_Alphabetic
+1920..1922 ; Other_Alphabetic
+1923..1926 ; Other_Alphabetic
+1927..1928 ; Other_Alphabetic
+1929..192B ; Other_Alphabetic
+1930..1931 ; Other_Alphabetic
+1932 ; Other_Alphabetic
+1933..1938 ; Other_Alphabetic
+19B0..19C0 ; Other_Alphabetic
+19C8..19C9 ; Other_Alphabetic
+1A17..1A18 ; Other_Alphabetic
+1A19..1A1B ; Other_Alphabetic
+1B00..1B03 ; Other_Alphabetic
+1B04 ; Other_Alphabetic
+1B35 ; Other_Alphabetic
+1B36..1B3A ; Other_Alphabetic
+1B3B ; Other_Alphabetic
+1B3C ; Other_Alphabetic
+1B3D..1B41 ; Other_Alphabetic
+1B42 ; Other_Alphabetic
+1B43 ; Other_Alphabetic
+24B6..24E9 ; Other_Alphabetic
+A823..A824 ; Other_Alphabetic
+A825..A826 ; Other_Alphabetic
+A827 ; Other_Alphabetic
+FB1E ; Other_Alphabetic
+10A01..10A03 ; Other_Alphabetic
+10A05..10A06 ; Other_Alphabetic
+10A0C..10A0F ; Other_Alphabetic
+
+# Total code points: 511
# ================================================
-3006 ; Ideographic # Lo IDEOGRAPHIC CLOSING MARK
-3007 ; Ideographic # Nl IDEOGRAPHIC NUMBER ZERO
-3021..3029 ; Ideographic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
-3038..303A ; Ideographic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
-3400..4DB5 ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FBB ; Ideographic # Lo [20924] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FBB
-F900..FA2D ; Ideographic # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-20000..2A6D6 ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
-2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+3006 ; Ideographic
+3007 ; Ideographic
+3021..3029 ; Ideographic
+3038..303A ; Ideographic
+3400..4DB5 ; Ideographic
+4E00..9FBB ; Ideographic
+F900..FA2D ; Ideographic
+FA70..FAD9 ; Ideographic
+20000..2A6D6 ; Ideographic
+2F800..2FA1D ; Ideographic
# Total code points: 71181
# ================================================
-005E ; Diacritic # Sk CIRCUMFLEX ACCENT
-0060 ; Diacritic # Sk GRAVE ACCENT
-00A8 ; Diacritic # Sk DIAERESIS
-00AF ; Diacritic # Sk MACRON
-00B4 ; Diacritic # Sk ACUTE ACCENT
-00B7 ; Diacritic # Po MIDDLE DOT
-00B8 ; Diacritic # Sk CEDILLA
-02B0..02C1 ; Diacritic # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2..02C5 ; Diacritic # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
-02C6..02D1 ; Diacritic # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
-02D2..02DF ; Diacritic # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
-02E0..02E4 ; Diacritic # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5..02ED ; Diacritic # Sk [9] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER UNASPIRATED
-02EE ; Diacritic # Lm MODIFIER LETTER DOUBLE APOSTROPHE
-02EF..02FF ; Diacritic # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
-0300..034E ; Diacritic # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
-0350..0357 ; Diacritic # Mn [8] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE
-035D..0362 ; Diacritic # Mn [6] COMBINING DOUBLE BREVE..COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0374..0375 ; Diacritic # Sk [2] GREEK NUMERAL SIGN..GREEK LOWER NUMERAL SIGN
-037A ; Diacritic # Lm GREEK YPOGEGRAMMENI
-0384..0385 ; Diacritic # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
-0483..0486 ; Diacritic # Mn [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
-0559 ; Diacritic # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
-0591..05A1 ; Diacritic # Mn [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER
-05A3..05B9 ; Diacritic # Mn [23] HEBREW ACCENT MUNAH..HEBREW POINT HOLAM
-05BB..05BD ; Diacritic # Mn [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
-05BF ; Diacritic # Mn HEBREW POINT RAFE
-05C1..05C2 ; Diacritic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C4 ; Diacritic # Mn HEBREW MARK UPPER DOT
-064B..0652 ; Diacritic # Mn [8] ARABIC FATHATAN..ARABIC SUKUN
-0657..0658 ; Diacritic # Mn [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA
-06DF..06E0 ; Diacritic # Mn [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO
-06E5..06E6 ; Diacritic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
-06EA..06EC ; Diacritic # Mn [3] ARABIC EMPTY CENTRE LOW STOP..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE
-0730..074A ; Diacritic # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
-07A6..07B0 ; Diacritic # Mn [11] THAANA ABAFILI..THAANA SUKUN
-093C ; Diacritic # Mn DEVANAGARI SIGN NUKTA
-094D ; Diacritic # Mn DEVANAGARI SIGN VIRAMA
-0951..0954 ; Diacritic # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
-09BC ; Diacritic # Mn BENGALI SIGN NUKTA
-09CD ; Diacritic # Mn BENGALI SIGN VIRAMA
-0A3C ; Diacritic # Mn GURMUKHI SIGN NUKTA
-0A4D ; Diacritic # Mn GURMUKHI SIGN VIRAMA
-0ABC ; Diacritic # Mn GUJARATI SIGN NUKTA
-0ACD ; Diacritic # Mn GUJARATI SIGN VIRAMA
-0B3C ; Diacritic # Mn ORIYA SIGN NUKTA
-0B4D ; Diacritic # Mn ORIYA SIGN VIRAMA
-0BCD ; Diacritic # Mn TAMIL SIGN VIRAMA
-0C4D ; Diacritic # Mn TELUGU SIGN VIRAMA
-0CBC ; Diacritic # Mn KANNADA SIGN NUKTA
-0CCD ; Diacritic # Mn KANNADA SIGN VIRAMA
-0D4D ; Diacritic # Mn MALAYALAM SIGN VIRAMA
-0DCA ; Diacritic # Mn SINHALA SIGN AL-LAKUNA
-0E47..0E4C ; Diacritic # Mn [6] THAI CHARACTER MAITAIKHU..THAI CHARACTER THANTHAKHAT
-0E4E ; Diacritic # Mn THAI CHARACTER YAMAKKAN
-0EC8..0ECC ; Diacritic # Mn [5] LAO TONE MAI EK..LAO CANCELLATION MARK
-0F18..0F19 ; Diacritic # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F35 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
-0F37 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F39 ; Diacritic # Mn TIBETAN MARK TSA -PHRU
-0F3E..0F3F ; Diacritic # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
-0F82..0F84 ; Diacritic # Mn [3] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
-0F86..0F87 ; Diacritic # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
-0FC6 ; Diacritic # Mn TIBETAN SYMBOL PADMA GDAN
-1037 ; Diacritic # Mn MYANMAR SIGN DOT BELOW
-1039 ; Diacritic # Mn MYANMAR SIGN VIRAMA
-17C9..17D3 ; Diacritic # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
-17DD ; Diacritic # Mn KHMER SIGN ATTHACAN
-1939..193B ; Diacritic # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
-1D2C..1D61 ; Diacritic # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
-1D62..1D6A ; Diacritic # L& [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI
-1FBD ; Diacritic # Sk GREEK KORONIS
-1FBF..1FC1 ; Diacritic # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
-1FCD..1FCF ; Diacritic # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
-1FDD..1FDF ; Diacritic # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
-1FED..1FEF ; Diacritic # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
-1FFD..1FFE ; Diacritic # Sk [2] GREEK OXIA..GREEK DASIA
-302A..302F ; Diacritic # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
-3099..309A ; Diacritic # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B..309C ; Diacritic # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-30FC ; Diacritic # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FB1E ; Diacritic # Mn HEBREW POINT JUDEO-SPANISH VARIKA
-FE20..FE23 ; Diacritic # Mn [4] COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF
-FF3E ; Diacritic # Sk FULLWIDTH CIRCUMFLEX ACCENT
-FF40 ; Diacritic # Sk FULLWIDTH GRAVE ACCENT
-FF70 ; Diacritic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF9E..FF9F ; Diacritic # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFE3 ; Diacritic # Sk FULLWIDTH MACRON
-1D167..1D169 ; Diacritic # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16D..1D172 ; Diacritic # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
-1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
-1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-
-# Total code points: 482
+005E ; Diacritic
+0060 ; Diacritic
+00A8 ; Diacritic
+00AF ; Diacritic
+00B4 ; Diacritic
+00B7 ; Diacritic
+00B8 ; Diacritic
+02B0..02C1 ; Diacritic
+02C2..02C5 ; Diacritic
+02C6..02D1 ; Diacritic
+02D2..02DF ; Diacritic
+02E0..02E4 ; Diacritic
+02E5..02ED ; Diacritic
+02EE ; Diacritic
+02EF..02FF ; Diacritic
+0300..034E ; Diacritic
+0350..0357 ; Diacritic
+035D..0362 ; Diacritic
+0374..0375 ; Diacritic
+037A ; Diacritic
+0384..0385 ; Diacritic
+0483..0486 ; Diacritic
+0559 ; Diacritic
+0591..05A1 ; Diacritic
+05A3..05BD ; Diacritic
+05BF ; Diacritic
+05C1..05C2 ; Diacritic
+05C4 ; Diacritic
+064B..0652 ; Diacritic
+0657..0658 ; Diacritic
+06DF..06E0 ; Diacritic
+06E5..06E6 ; Diacritic
+06EA..06EC ; Diacritic
+0730..074A ; Diacritic
+07A6..07B0 ; Diacritic
+07EB..07F3 ; Diacritic
+07F4..07F5 ; Diacritic
+093C ; Diacritic
+094D ; Diacritic
+0951..0954 ; Diacritic
+09BC ; Diacritic
+09CD ; Diacritic
+0A3C ; Diacritic
+0A4D ; Diacritic
+0ABC ; Diacritic
+0ACD ; Diacritic
+0B3C ; Diacritic
+0B4D ; Diacritic
+0BCD ; Diacritic
+0C4D ; Diacritic
+0CBC ; Diacritic
+0CCD ; Diacritic
+0D4D ; Diacritic
+0DCA ; Diacritic
+0E47..0E4C ; Diacritic
+0E4E ; Diacritic
+0EC8..0ECC ; Diacritic
+0F18..0F19 ; Diacritic
+0F35 ; Diacritic
+0F37 ; Diacritic
+0F39 ; Diacritic
+0F3E..0F3F ; Diacritic
+0F82..0F84 ; Diacritic
+0F86..0F87 ; Diacritic
+0FC6 ; Diacritic
+1037 ; Diacritic
+1039 ; Diacritic
+17C9..17D3 ; Diacritic
+17DD ; Diacritic
+1939..193B ; Diacritic
+1B34 ; Diacritic
+1B44 ; Diacritic
+1B6B..1B73 ; Diacritic
+1D2C..1D61 ; Diacritic
+1D62..1D6A ; Diacritic
+1DC4..1DCA ; Diacritic
+1DFE..1DFF ; Diacritic
+1FBD ; Diacritic
+1FBF..1FC1 ; Diacritic
+1FCD..1FCF ; Diacritic
+1FDD..1FDF ; Diacritic
+1FED..1FEF ; Diacritic
+1FFD..1FFE ; Diacritic
+302A..302F ; Diacritic
+3099..309A ; Diacritic
+309B..309C ; Diacritic
+30FC ; Diacritic
+A717..A71A ; Diacritic
+A720..A721 ; Diacritic
+FB1E ; Diacritic
+FE20..FE23 ; Diacritic
+FF3E ; Diacritic
+FF40 ; Diacritic
+FF70 ; Diacritic
+FF9E..FF9F ; Diacritic
+FFE3 ; Diacritic
+1D167..1D169 ; Diacritic
+1D16D..1D172 ; Diacritic
+1D17B..1D182 ; Diacritic
+1D185..1D18B ; Diacritic
+1D1AA..1D1AD ; Diacritic
+
+# Total code points: 520
# ================================================
-00B7 ; Extender # Po MIDDLE DOT
-02D0..02D1 ; Extender # Lm [2] MODIFIER LETTER TRIANGULAR COLON..MODIFIER LETTER HALF TRIANGULAR COLON
-0640 ; Extender # Lm ARABIC TATWEEL
-0E46 ; Extender # Lm THAI CHARACTER MAIYAMOK
-0EC6 ; Extender # Lm LAO KO LA
-1843 ; Extender # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
-3005 ; Extender # Lm IDEOGRAPHIC ITERATION MARK
-3031..3035 ; Extender # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
-309D..309E ; Extender # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
-30FC..30FE ; Extender # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
-A015 ; Extender # Lm YI SYLLABLE WU
-FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-
-# Total code points: 20
+00B7 ; Extender
+02D0..02D1 ; Extender
+0640 ; Extender
+07FA ; Extender
+0E46 ; Extender
+0EC6 ; Extender
+1843 ; Extender
+3005 ; Extender
+3031..3035 ; Extender
+309D..309E ; Extender
+30FC..30FE ; Extender
+A015 ; Extender
+FF70 ; Extender
+
+# Total code points: 21
# ================================================
-02B0..02B8 ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
-02C0..02C1 ; Other_Lowercase # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP
-02E0..02E4 ; Other_Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-0345 ; Other_Lowercase # Mn COMBINING GREEK YPOGEGRAMMENI
-037A ; Other_Lowercase # Lm GREEK YPOGEGRAMMENI
-1D2C..1D61 ; Other_Lowercase # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI
-1D78 ; Other_Lowercase # Lm MODIFIER LETTER CYRILLIC EN
-1D9B..1DBF ; Other_Lowercase # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-2090..2094 ; Other_Lowercase # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
-2170..217F ; Other_Lowercase # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
-24D0..24E9 ; Other_Lowercase # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+02B0..02B8 ; Other_Lowercase
+02C0..02C1 ; Other_Lowercase
+02E0..02E4 ; Other_Lowercase
+0345 ; Other_Lowercase
+037A ; Other_Lowercase
+1D2C..1D61 ; Other_Lowercase
+1D78 ; Other_Lowercase
+1D9B..1DBF ; Other_Lowercase
+2090..2094 ; Other_Lowercase
+2170..217F ; Other_Lowercase
+24D0..24E9 ; Other_Lowercase
# Total code points: 157
# ================================================
-2160..216F ; Other_Uppercase # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND
-24B6..24CF ; Other_Uppercase # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z
+2160..216F ; Other_Uppercase
+24B6..24CF ; Other_Uppercase
# Total code points: 42
# ================================================
-FDD0..FDEF ; Noncharacter_Code_Point # Cn [32] <noncharacter-FDD0>..<noncharacter-FDEF>
-FFFE..FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFE>..<noncharacter-FFFF>
-1FFFE..1FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-1FFFE>..<noncharacter-1FFFF>
-2FFFE..2FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-2FFFE>..<noncharacter-2FFFF>
-3FFFE..3FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-3FFFE>..<noncharacter-3FFFF>
-4FFFE..4FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-4FFFE>..<noncharacter-4FFFF>
-5FFFE..5FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-5FFFE>..<noncharacter-5FFFF>
-6FFFE..6FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-6FFFE>..<noncharacter-6FFFF>
-7FFFE..7FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-7FFFE>..<noncharacter-7FFFF>
-8FFFE..8FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-8FFFE>..<noncharacter-8FFFF>
-9FFFE..9FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-9FFFE>..<noncharacter-9FFFF>
-AFFFE..AFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-AFFFE>..<noncharacter-AFFFF>
-BFFFE..BFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-BFFFE>..<noncharacter-BFFFF>
-CFFFE..CFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-CFFFE>..<noncharacter-CFFFF>
-DFFFE..DFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-DFFFE>..<noncharacter-DFFFF>
-EFFFE..EFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-EFFFE>..<noncharacter-EFFFF>
-FFFFE..FFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF>
-10FFFE..10FFFF; Noncharacter_Code_Point # Cn [2] <noncharacter-10FFFE>..<noncharacter-10FFFF>
+FDD0..FDEF ; Noncharacter_Code_Point
+FFFE..FFFF ; Noncharacter_Code_Point
+1FFFE..1FFFF ; Noncharacter_Code_Point
+2FFFE..2FFFF ; Noncharacter_Code_Point
+3FFFE..3FFFF ; Noncharacter_Code_Point
+4FFFE..4FFFF ; Noncharacter_Code_Point
+5FFFE..5FFFF ; Noncharacter_Code_Point
+6FFFE..6FFFF ; Noncharacter_Code_Point
+7FFFE..7FFFF ; Noncharacter_Code_Point
+8FFFE..8FFFF ; Noncharacter_Code_Point
+9FFFE..9FFFF ; Noncharacter_Code_Point
+AFFFE..AFFFF ; Noncharacter_Code_Point
+BFFFE..BFFFF ; Noncharacter_Code_Point
+CFFFE..CFFFF ; Noncharacter_Code_Point
+DFFFE..DFFFF ; Noncharacter_Code_Point
+EFFFE..EFFFF ; Noncharacter_Code_Point
+FFFFE..FFFFF ; Noncharacter_Code_Point
+10FFFE..10FFFF; Noncharacter_Code_Point
# Total code points: 66
# ================================================
-09BE ; Other_Grapheme_Extend # Mc BENGALI VOWEL SIGN AA
-09D7 ; Other_Grapheme_Extend # Mc BENGALI AU LENGTH MARK
-0B3E ; Other_Grapheme_Extend # Mc ORIYA VOWEL SIGN AA
-0B57 ; Other_Grapheme_Extend # Mc ORIYA AU LENGTH MARK
-0BBE ; Other_Grapheme_Extend # Mc TAMIL VOWEL SIGN AA
-0BD7 ; Other_Grapheme_Extend # Mc TAMIL AU LENGTH MARK
-0CC2 ; Other_Grapheme_Extend # Mc KANNADA VOWEL SIGN UU
-0CD5..0CD6 ; Other_Grapheme_Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0D3E ; Other_Grapheme_Extend # Mc MALAYALAM VOWEL SIGN AA
-0D57 ; Other_Grapheme_Extend # Mc MALAYALAM AU LENGTH MARK
-0DCF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN AELA-PILLA
-0DDF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA
-200C..200D ; Other_Grapheme_Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
-1D165 ; Other_Grapheme_Extend # Mc MUSICAL SYMBOL COMBINING STEM
-1D16E..1D172 ; Other_Grapheme_Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
+09BE ; Other_Grapheme_Extend
+09D7 ; Other_Grapheme_Extend
+0B3E ; Other_Grapheme_Extend
+0B57 ; Other_Grapheme_Extend
+0BBE ; Other_Grapheme_Extend
+0BD7 ; Other_Grapheme_Extend
+0CC2 ; Other_Grapheme_Extend
+0CD5..0CD6 ; Other_Grapheme_Extend
+0D3E ; Other_Grapheme_Extend
+0D57 ; Other_Grapheme_Extend
+0DCF ; Other_Grapheme_Extend
+0DDF ; Other_Grapheme_Extend
+200C..200D ; Other_Grapheme_Extend
+1D165 ; Other_Grapheme_Extend
+1D16E..1D172 ; Other_Grapheme_Extend
# Total code points: 21
# ================================================
-034F ; Grapheme_Link # Mn COMBINING GRAPHEME JOINER
-094D ; Grapheme_Link # Mn DEVANAGARI SIGN VIRAMA
-09CD ; Grapheme_Link # Mn BENGALI SIGN VIRAMA
-0A4D ; Grapheme_Link # Mn GURMUKHI SIGN VIRAMA
-0ACD ; Grapheme_Link # Mn GUJARATI SIGN VIRAMA
-0B4D ; Grapheme_Link # Mn ORIYA SIGN VIRAMA
-0BCD ; Grapheme_Link # Mn TAMIL SIGN VIRAMA
-0C4D ; Grapheme_Link # Mn TELUGU SIGN VIRAMA
-0CCD ; Grapheme_Link # Mn KANNADA SIGN VIRAMA
-0D4D ; Grapheme_Link # Mn MALAYALAM SIGN VIRAMA
-0DCA ; Grapheme_Link # Mn SINHALA SIGN AL-LAKUNA
-0E3A ; Grapheme_Link # Mn THAI CHARACTER PHINTHU
-1039 ; Grapheme_Link # Mn MYANMAR SIGN VIRAMA
-17D2 ; Grapheme_Link # Mn KHMER SIGN COENG
-A806 ; Grapheme_Link # Mn SYLOTI NAGRI SIGN HASANTA
-10A3F ; Grapheme_Link # Mn KHAROSHTHI VIRAMA
-
-# Total code points: 16
-
-# ================================================
-
-2FF0..2FF1 ; IDS_Binary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
-2FF4..2FFB ; IDS_Binary_Operator # So [8] IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FF0..2FF1 ; IDS_Binary_Operator
+2FF4..2FFB ; IDS_Binary_Operator
# Total code points: 10
# ================================================
-2FF2..2FF3 ; IDS_Trinary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
+2FF2..2FF3 ; IDS_Trinary_Operator
# Total code points: 2
# ================================================
-2E80..2E99 ; Radical # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
-2E9B..2EF3 ; Radical # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
-2F00..2FD5 ; Radical # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2E80..2E99 ; Radical
+2E9B..2EF3 ; Radical
+2F00..2FD5 ; Radical
# Total code points: 329
# ================================================
-3400..4DB5 ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FBB ; Unified_Ideograph # Lo [20924] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FBB
-FA0E..FA0F ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
-FA11 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA11
-FA13..FA14 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
-FA1F ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA1F
-FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21
-FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
-FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
-20000..2A6D6 ; Unified_Ideograph # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+3400..4DB5 ; Unified_Ideograph
+4E00..9FBB ; Unified_Ideograph
+FA0E..FA0F ; Unified_Ideograph
+FA11 ; Unified_Ideograph
+FA13..FA14 ; Unified_Ideograph
+FA1F ; Unified_Ideograph
+FA21 ; Unified_Ideograph
+FA23..FA24 ; Unified_Ideograph
+FA27..FA29 ; Unified_Ideograph
+20000..2A6D6 ; Unified_Ideograph
# Total code points: 70229
# ================================================
-034F ; Other_Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER
-115F..1160 ; Other_Default_Ignorable_Code_Point # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
-2064..2069 ; Other_Default_Ignorable_Code_Point # Cn [6] <reserved-2064>..<reserved-2069>
-3164 ; Other_Default_Ignorable_Code_Point # Lo HANGUL FILLER
-FFA0 ; Other_Default_Ignorable_Code_Point # Lo HALFWIDTH HANGUL FILLER
-FFF0..FFF8 ; Other_Default_Ignorable_Code_Point # Cn [9] <reserved-FFF0>..<reserved-FFF8>
-E0000 ; Other_Default_Ignorable_Code_Point # Cn <reserved-E0000>
-E0002..E001F ; Other_Default_Ignorable_Code_Point # Cn [30] <reserved-E0002>..<reserved-E001F>
-E0080..E00FF ; Other_Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF>
-E01F0..E0FFF ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
+034F ; Other_Default_Ignorable_Code_Point
+115F..1160 ; Other_Default_Ignorable_Code_Point
+2064..2069 ; Other_Default_Ignorable_Code_Point
+3164 ; Other_Default_Ignorable_Code_Point
+FFA0 ; Other_Default_Ignorable_Code_Point
+FFF0..FFF8 ; Other_Default_Ignorable_Code_Point
+E0000 ; Other_Default_Ignorable_Code_Point
+E0002..E001F ; Other_Default_Ignorable_Code_Point
+E0080..E00FF ; Other_Default_Ignorable_Code_Point
+E01F0..E0FFF ; Other_Default_Ignorable_Code_Point
# Total code points: 3779
# ================================================
-0340..0341 ; Deprecated # Mn [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
-17A3 ; Deprecated # Lo KHMER INDEPENDENT VOWEL QAQ
-17D3 ; Deprecated # Mn KHMER SIGN BATHAMASAT
-206A..206F ; Deprecated # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+0340..0341 ; Deprecated
+17A3 ; Deprecated
+17D3 ; Deprecated
+206A..206F ; Deprecated
# Total code points: 10
# ================================================
-0069..006A ; Soft_Dotted # L& [2] LATIN SMALL LETTER I..LATIN SMALL LETTER J
-012F ; Soft_Dotted # L& LATIN SMALL LETTER I WITH OGONEK
-0268 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH STROKE
-029D ; Soft_Dotted # L& LATIN SMALL LETTER J WITH CROSSED-TAIL
-02B2 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J
-03F3 ; Soft_Dotted # L& GREEK LETTER YOT
-0456 ; Soft_Dotted # L& CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-0458 ; Soft_Dotted # L& CYRILLIC SMALL LETTER JE
-1D62 ; Soft_Dotted # L& LATIN SUBSCRIPT SMALL LETTER I
-1D96 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH RETROFLEX HOOK
-1DA4 ; Soft_Dotted # Lm MODIFIER LETTER SMALL I WITH STROKE
-1DA8 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J WITH CROSSED-TAIL
-1E2D ; Soft_Dotted # L& LATIN SMALL LETTER I WITH TILDE BELOW
-1ECB ; Soft_Dotted # L& LATIN SMALL LETTER I WITH DOT BELOW
-2071 ; Soft_Dotted # L& SUPERSCRIPT LATIN SMALL LETTER I
-2148..2149 ; Soft_Dotted # L& [2] DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J
-1D422..1D423 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J
-1D456..1D457 ; Soft_Dotted # L& [2] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J
-1D48A..1D48B ; Soft_Dotted # L& [2] MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J
-1D4BE..1D4BF ; Soft_Dotted # L& [2] MATHEMATICAL SCRIPT SMALL I..MATHEMATICAL SCRIPT SMALL J
-1D4F2..1D4F3 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SCRIPT SMALL I..MATHEMATICAL BOLD SCRIPT SMALL J
-1D526..1D527 ; Soft_Dotted # L& [2] MATHEMATICAL FRAKTUR SMALL I..MATHEMATICAL FRAKTUR SMALL J
-1D55A..1D55B ; Soft_Dotted # L& [2] MATHEMATICAL DOUBLE-STRUCK SMALL I..MATHEMATICAL DOUBLE-STRUCK SMALL J
-1D58E..1D58F ; Soft_Dotted # L& [2] MATHEMATICAL BOLD FRAKTUR SMALL I..MATHEMATICAL BOLD FRAKTUR SMALL J
-1D5C2..1D5C3 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF SMALL I..MATHEMATICAL SANS-SERIF SMALL J
-1D5F6..1D5F7 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD SMALL I..MATHEMATICAL SANS-SERIF BOLD SMALL J
-1D62A..1D62B ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF ITALIC SMALL I..MATHEMATICAL SANS-SERIF ITALIC SMALL J
-1D65E..1D65F ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
-1D692..1D693 ; Soft_Dotted # L& [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J
-
-# Total code points: 44
+0069..006A ; Soft_Dotted
+012F ; Soft_Dotted
+0249 ; Soft_Dotted
+0268 ; Soft_Dotted
+029D ; Soft_Dotted
+02B2 ; Soft_Dotted
+03F3 ; Soft_Dotted
+0456 ; Soft_Dotted
+0458 ; Soft_Dotted
+1D62 ; Soft_Dotted
+1D96 ; Soft_Dotted
+1DA4 ; Soft_Dotted
+1DA8 ; Soft_Dotted
+1E2D ; Soft_Dotted
+1ECB ; Soft_Dotted
+2071 ; Soft_Dotted
+2148..2149 ; Soft_Dotted
+1D422..1D423 ; Soft_Dotted
+1D456..1D457 ; Soft_Dotted
+1D48A..1D48B ; Soft_Dotted
+1D4BE..1D4BF ; Soft_Dotted
+1D4F2..1D4F3 ; Soft_Dotted
+1D526..1D527 ; Soft_Dotted
+1D55A..1D55B ; Soft_Dotted
+1D58E..1D58F ; Soft_Dotted
+1D5C2..1D5C3 ; Soft_Dotted
+1D5F6..1D5F7 ; Soft_Dotted
+1D62A..1D62B ; Soft_Dotted
+1D65E..1D65F ; Soft_Dotted
+1D692..1D693 ; Soft_Dotted
+
+# Total code points: 45
# ================================================
-0E40..0E44 ; Logical_Order_Exception # Lo [5] THAI CHARACTER SARA E..THAI CHARACTER SARA AI MAIMALAI
-0EC0..0EC4 ; Logical_Order_Exception # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0E40..0E44 ; Logical_Order_Exception
+0EC0..0EC4 ; Logical_Order_Exception
# Total code points: 10
# ================================================
-2118 ; Other_ID_Start # So SCRIPT CAPITAL P
-212E ; Other_ID_Start # So ESTIMATED SYMBOL
-309B..309C ; Other_ID_Start # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+2118 ; Other_ID_Start
+212E ; Other_ID_Start
+309B..309C ; Other_ID_Start
# Total code points: 4
# ================================================
-1369..1371 ; Other_ID_Continue # No [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE
+1369..1371 ; Other_ID_Continue
# Total code points: 9
# ================================================
-0021 ; STerm # Po EXCLAMATION MARK
-002E ; STerm # Po FULL STOP
-003F ; STerm # Po QUESTION MARK
-055C ; STerm # Po ARMENIAN EXCLAMATION MARK
-055E ; STerm # Po ARMENIAN QUESTION MARK
-0589 ; STerm # Po ARMENIAN FULL STOP
-061F ; STerm # Po ARABIC QUESTION MARK
-06D4 ; STerm # Po ARABIC FULL STOP
-0700..0702 ; STerm # Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP
-0964..0965 ; STerm # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-104A..104B ; STerm # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
-1362 ; STerm # Po ETHIOPIC FULL STOP
-1367..1368 ; STerm # Po [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
-166E ; STerm # Po CANADIAN SYLLABICS FULL STOP
-1803 ; STerm # Po MONGOLIAN FULL STOP
-1809 ; STerm # Po MONGOLIAN MANCHU FULL STOP
-1944..1945 ; STerm # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-203C..203D ; STerm # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
-2047..2049 ; STerm # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
-3002 ; STerm # Po IDEOGRAPHIC FULL STOP
-FE52 ; STerm # Po SMALL FULL STOP
-FE56..FE57 ; STerm # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
-FF01 ; STerm # Po FULLWIDTH EXCLAMATION MARK
-FF0E ; STerm # Po FULLWIDTH FULL STOP
-FF1F ; STerm # Po FULLWIDTH QUESTION MARK
-FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
-
-# Total code points: 36
+0021 ; STerm
+002E ; STerm
+003F ; STerm
+055C ; STerm
+055E ; STerm
+0589 ; STerm
+061F ; STerm
+06D4 ; STerm
+0700..0702 ; STerm
+07F9 ; STerm
+0964..0965 ; STerm
+104A..104B ; STerm
+1362 ; STerm
+1367..1368 ; STerm
+166E ; STerm
+1803 ; STerm
+1809 ; STerm
+1944..1945 ; STerm
+1B5A..1B5B ; STerm
+1B5E..1B5F ; STerm
+203C..203D ; STerm
+2047..2049 ; STerm
+3002 ; STerm
+A876..A877 ; STerm
+FE52 ; STerm
+FE56..FE57 ; STerm
+FF01 ; STerm
+FF0E ; STerm
+FF1F ; STerm
+FF61 ; STerm
+
+# Total code points: 43
# ================================================
-180B..180D ; Variation_Selector # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
-FE00..FE0F ; Variation_Selector # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+180B..180D ; Variation_Selector
+FE00..FE0F ; Variation_Selector
+E0100..E01EF ; Variation_Selector
# Total code points: 259
# ================================================
-0009..000D ; Pattern_White_Space # Cc [5] <control-0009>..<control-000D>
-0020 ; Pattern_White_Space # Zs SPACE
-0085 ; Pattern_White_Space # Cc <control-0085>
-200E..200F ; Pattern_White_Space # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
-2028 ; Pattern_White_Space # Zl LINE SEPARATOR
-2029 ; Pattern_White_Space # Zp PARAGRAPH SEPARATOR
+0009..000D ; Pattern_White_Space
+0020 ; Pattern_White_Space
+0085 ; Pattern_White_Space
+200E..200F ; Pattern_White_Space
+2028 ; Pattern_White_Space
+2029 ; Pattern_White_Space
# Total code points: 11
# ================================================
-0021..0023 ; Pattern_Syntax # Po [3] EXCLAMATION MARK..NUMBER SIGN
-0024 ; Pattern_Syntax # Sc DOLLAR SIGN
-0025..0027 ; Pattern_Syntax # Po [3] PERCENT SIGN..APOSTROPHE
-0028 ; Pattern_Syntax # Ps LEFT PARENTHESIS
-0029 ; Pattern_Syntax # Pe RIGHT PARENTHESIS
-002A ; Pattern_Syntax # Po ASTERISK
-002B ; Pattern_Syntax # Sm PLUS SIGN
-002C ; Pattern_Syntax # Po COMMA
-002D ; Pattern_Syntax # Pd HYPHEN-MINUS
-002E..002F ; Pattern_Syntax # Po [2] FULL STOP..SOLIDUS
-003A..003B ; Pattern_Syntax # Po [2] COLON..SEMICOLON
-003C..003E ; Pattern_Syntax # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
-003F..0040 ; Pattern_Syntax # Po [2] QUESTION MARK..COMMERCIAL AT
-005B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET
-005C ; Pattern_Syntax # Po REVERSE SOLIDUS
-005D ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET
-005E ; Pattern_Syntax # Sk CIRCUMFLEX ACCENT
-0060 ; Pattern_Syntax # Sk GRAVE ACCENT
-007B ; Pattern_Syntax # Ps LEFT CURLY BRACKET
-007C ; Pattern_Syntax # Sm VERTICAL LINE
-007D ; Pattern_Syntax # Pe RIGHT CURLY BRACKET
-007E ; Pattern_Syntax # Sm TILDE
-00A1 ; Pattern_Syntax # Po INVERTED EXCLAMATION MARK
-00A2..00A5 ; Pattern_Syntax # Sc [4] CENT SIGN..YEN SIGN
-00A6..00A7 ; Pattern_Syntax # So [2] BROKEN BAR..SECTION SIGN
-00A9 ; Pattern_Syntax # So COPYRIGHT SIGN
-00AB ; Pattern_Syntax # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC ; Pattern_Syntax # Sm NOT SIGN
-00AE ; Pattern_Syntax # So REGISTERED SIGN
-00B0 ; Pattern_Syntax # So DEGREE SIGN
-00B1 ; Pattern_Syntax # Sm PLUS-MINUS SIGN
-00B6 ; Pattern_Syntax # So PILCROW SIGN
-00BB ; Pattern_Syntax # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BF ; Pattern_Syntax # Po INVERTED QUESTION MARK
-00D7 ; Pattern_Syntax # Sm MULTIPLICATION SIGN
-00F7 ; Pattern_Syntax # Sm DIVISION SIGN
-2010..2015 ; Pattern_Syntax # Pd [6] HYPHEN..HORIZONTAL BAR
-2016..2017 ; Pattern_Syntax # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
-2018 ; Pattern_Syntax # Pi LEFT SINGLE QUOTATION MARK
-2019 ; Pattern_Syntax # Pf RIGHT SINGLE QUOTATION MARK
-201A ; Pattern_Syntax # Ps SINGLE LOW-9 QUOTATION MARK
-201B..201C ; Pattern_Syntax # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
-201D ; Pattern_Syntax # Pf RIGHT DOUBLE QUOTATION MARK
-201E ; Pattern_Syntax # Ps DOUBLE LOW-9 QUOTATION MARK
-201F ; Pattern_Syntax # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020..2027 ; Pattern_Syntax # Po [8] DAGGER..HYPHENATION POINT
-2030..2038 ; Pattern_Syntax # Po [9] PER MILLE SIGN..CARET
-2039 ; Pattern_Syntax # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; Pattern_Syntax # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B..203E ; Pattern_Syntax # Po [4] REFERENCE MARK..OVERLINE
-2041..2043 ; Pattern_Syntax # Po [3] CARET INSERTION POINT..HYPHEN BULLET
-2044 ; Pattern_Syntax # Sm FRACTION SLASH
-2045 ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH QUILL
-2046 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH QUILL
-2047..2051 ; Pattern_Syntax # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
-2052 ; Pattern_Syntax # Sm COMMERCIAL MINUS SIGN
-2053 ; Pattern_Syntax # Po SWUNG DASH
-2055..205E ; Pattern_Syntax # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
-2190..2194 ; Pattern_Syntax # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
-2195..2199 ; Pattern_Syntax # So [5] UP DOWN ARROW..SOUTH WEST ARROW
-219A..219B ; Pattern_Syntax # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
-219C..219F ; Pattern_Syntax # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
-21A0 ; Pattern_Syntax # Sm RIGHTWARDS TWO HEADED ARROW
-21A1..21A2 ; Pattern_Syntax # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
-21A3 ; Pattern_Syntax # Sm RIGHTWARDS ARROW WITH TAIL
-21A4..21A5 ; Pattern_Syntax # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
-21A6 ; Pattern_Syntax # Sm RIGHTWARDS ARROW FROM BAR
-21A7..21AD ; Pattern_Syntax # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
-21AE ; Pattern_Syntax # Sm LEFT RIGHT ARROW WITH STROKE
-21AF..21CD ; Pattern_Syntax # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE..21CF ; Pattern_Syntax # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0..21D1 ; Pattern_Syntax # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
-21D2 ; Pattern_Syntax # Sm RIGHTWARDS DOUBLE ARROW
-21D3 ; Pattern_Syntax # So DOWNWARDS DOUBLE ARROW
-21D4 ; Pattern_Syntax # Sm LEFT RIGHT DOUBLE ARROW
-21D5..21F3 ; Pattern_Syntax # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
-21F4..22FF ; Pattern_Syntax # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
-2300..2307 ; Pattern_Syntax # So [8] DIAMETER SIGN..WAVY LINE
-2308..230B ; Pattern_Syntax # Sm [4] LEFT CEILING..RIGHT FLOOR
-230C..231F ; Pattern_Syntax # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
-2320..2321 ; Pattern_Syntax # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
-2322..2328 ; Pattern_Syntax # So [7] FROWN..KEYBOARD
-2329 ; Pattern_Syntax # Ps LEFT-POINTING ANGLE BRACKET
-232A ; Pattern_Syntax # Pe RIGHT-POINTING ANGLE BRACKET
-232B..237B ; Pattern_Syntax # So [81] ERASE TO THE LEFT..NOT CHECK MARK
-237C ; Pattern_Syntax # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D..239A ; Pattern_Syntax # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
-239B..23B3 ; Pattern_Syntax # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
-23B4 ; Pattern_Syntax # Ps TOP SQUARE BRACKET
-23B5 ; Pattern_Syntax # Pe BOTTOM SQUARE BRACKET
-23B6 ; Pattern_Syntax # Po BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7..23DB ; Pattern_Syntax # So [37] RADICAL SYMBOL BOTTOM..FUSE
-23DC..23FF ; Pattern_Syntax # Cn [36] <reserved-23DC>..<reserved-23FF>
-2400..2426 ; Pattern_Syntax # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
-2427..243F ; Pattern_Syntax # Cn [25] <reserved-2427>..<reserved-243F>
-2440..244A ; Pattern_Syntax # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
-244B..245F ; Pattern_Syntax # Cn [21] <reserved-244B>..<reserved-245F>
-2500..25B6 ; Pattern_Syntax # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
-25B7 ; Pattern_Syntax # Sm WHITE RIGHT-POINTING TRIANGLE
-25B8..25C0 ; Pattern_Syntax # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
-25C1 ; Pattern_Syntax # Sm WHITE LEFT-POINTING TRIANGLE
-25C2..25F7 ; Pattern_Syntax # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8..25FF ; Pattern_Syntax # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
-2600..266E ; Pattern_Syntax # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
-266F ; Pattern_Syntax # Sm MUSIC SHARP SIGN
-2670..269C ; Pattern_Syntax # So [45] WEST SYRIAC CROSS..FLEUR-DE-LIS
-269D..269F ; Pattern_Syntax # Cn [3] <reserved-269D>..<reserved-269F>
-26A0..26B1 ; Pattern_Syntax # So [18] WARNING SIGN..FUNERAL URN
-26B2..2700 ; Pattern_Syntax # Cn [79] <reserved-26B2>..<reserved-2700>
-2701..2704 ; Pattern_Syntax # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
-2705 ; Pattern_Syntax # Cn <reserved-2705>
-2706..2709 ; Pattern_Syntax # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
-270A..270B ; Pattern_Syntax # Cn [2] <reserved-270A>..<reserved-270B>
-270C..2727 ; Pattern_Syntax # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
-2728 ; Pattern_Syntax # Cn <reserved-2728>
-2729..274B ; Pattern_Syntax # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274C ; Pattern_Syntax # Cn <reserved-274C>
-274D ; Pattern_Syntax # So SHADOWED WHITE CIRCLE
-274E ; Pattern_Syntax # Cn <reserved-274E>
-274F..2752 ; Pattern_Syntax # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
-2753..2755 ; Pattern_Syntax # Cn [3] <reserved-2753>..<reserved-2755>
-2756 ; Pattern_Syntax # So BLACK DIAMOND MINUS WHITE X
-2757 ; Pattern_Syntax # Cn <reserved-2757>
-2758..275E ; Pattern_Syntax # So [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-275F..2760 ; Pattern_Syntax # Cn [2] <reserved-275F>..<reserved-2760>
-2761..2767 ; Pattern_Syntax # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
-2768 ; Pattern_Syntax # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 ; Pattern_Syntax # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A ; Pattern_Syntax # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B ; Pattern_Syntax # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C ; Pattern_Syntax # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D ; Pattern_Syntax # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 ; Pattern_Syntax # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 ; Pattern_Syntax # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 ; Pattern_Syntax # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 ; Pattern_Syntax # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2794 ; Pattern_Syntax # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2795..2797 ; Pattern_Syntax # Cn [3] <reserved-2795>..<reserved-2797>
-2798..27AF ; Pattern_Syntax # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B0 ; Pattern_Syntax # Cn <reserved-27B0>
-27B1..27BE ; Pattern_Syntax # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
-27BF ; Pattern_Syntax # Cn <reserved-27BF>
-27C0..27C4 ; Pattern_Syntax # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
-27C5 ; Pattern_Syntax # Ps LEFT S-SHAPED BAG DELIMITER
-27C6 ; Pattern_Syntax # Pe RIGHT S-SHAPED BAG DELIMITER
-27C7..27CF ; Pattern_Syntax # Cn [9] <reserved-27C7>..<reserved-27CF>
-27D0..27E5 ; Pattern_Syntax # Sm [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 ; Pattern_Syntax # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; Pattern_Syntax # Ps MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; Pattern_Syntax # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; Pattern_Syntax # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC..27EF ; Pattern_Syntax # Cn [4] <reserved-27EC>..<reserved-27EF>
-27F0..27FF ; Pattern_Syntax # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
-2800..28FF ; Pattern_Syntax # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
-2900..2982 ; Pattern_Syntax # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
-2983 ; Pattern_Syntax # Ps LEFT WHITE CURLY BRACKET
-2984 ; Pattern_Syntax # Pe RIGHT WHITE CURLY BRACKET
-2985 ; Pattern_Syntax # Ps LEFT WHITE PARENTHESIS
-2986 ; Pattern_Syntax # Pe RIGHT WHITE PARENTHESIS
-2987 ; Pattern_Syntax # Ps Z NOTATION LEFT IMAGE BRACKET
-2988 ; Pattern_Syntax # Pe Z NOTATION RIGHT IMAGE BRACKET
-2989 ; Pattern_Syntax # Ps Z NOTATION LEFT BINDING BRACKET
-298A ; Pattern_Syntax # Pe Z NOTATION RIGHT BINDING BRACKET
-298B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET WITH DOT
-2992 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET WITH DOT
-2993 ; Pattern_Syntax # Ps LEFT ARC LESS-THAN BRACKET
-2994 ; Pattern_Syntax # Pe RIGHT ARC GREATER-THAN BRACKET
-2995 ; Pattern_Syntax # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; Pattern_Syntax # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; Pattern_Syntax # Ps LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; Pattern_Syntax # Pe RIGHT BLACK TORTOISE SHELL BRACKET
-2999..29D7 ; Pattern_Syntax # Sm [63] DOTTED FENCE..BLACK HOURGLASS
-29D8 ; Pattern_Syntax # Ps LEFT WIGGLY FENCE
-29D9 ; Pattern_Syntax # Pe RIGHT WIGGLY FENCE
-29DA ; Pattern_Syntax # Ps LEFT DOUBLE WIGGLY FENCE
-29DB ; Pattern_Syntax # Pe RIGHT DOUBLE WIGGLY FENCE
-29DC..29FB ; Pattern_Syntax # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
-29FC ; Pattern_Syntax # Ps LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; Pattern_Syntax # Pe RIGHT-POINTING CURVED ANGLE BRACKET
-29FE..2AFF ; Pattern_Syntax # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
-2B00..2B13 ; Pattern_Syntax # So [20] NORTH EAST WHITE ARROW..SQUARE WITH BOTTOM HALF BLACK
-2B14..2BFF ; Pattern_Syntax # Cn [236] <reserved-2B14>..<reserved-2BFF>
-2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET
-2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET
-2E04 ; Pattern_Syntax # Pi LEFT DOTTED SUBSTITUTION BRACKET
-2E05 ; Pattern_Syntax # Pf RIGHT DOTTED SUBSTITUTION BRACKET
-2E06..2E08 ; Pattern_Syntax # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
-2E09 ; Pattern_Syntax # Pi LEFT TRANSPOSITION BRACKET
-2E0A ; Pattern_Syntax # Pf RIGHT TRANSPOSITION BRACKET
-2E0B ; Pattern_Syntax # Po RAISED SQUARE
-2E0C ; Pattern_Syntax # Pi LEFT RAISED OMISSION BRACKET
-2E0D ; Pattern_Syntax # Pf RIGHT RAISED OMISSION BRACKET
-2E0E..2E16 ; Pattern_Syntax # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
-2E17 ; Pattern_Syntax # Pd DOUBLE OBLIQUE HYPHEN
-2E18..2E1B ; Pattern_Syntax # Cn [4] <reserved-2E18>..<reserved-2E1B>
-2E1C ; Pattern_Syntax # Pi LEFT LOW PARAPHRASE BRACKET
-2E1D ; Pattern_Syntax # Pf RIGHT LOW PARAPHRASE BRACKET
-2E1E..2E7F ; Pattern_Syntax # Cn [98] <reserved-2E1E>..<reserved-2E7F>
-3001..3003 ; Pattern_Syntax # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
-3008 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET
-3009 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET
-300A ; Pattern_Syntax # Ps LEFT DOUBLE ANGLE BRACKET
-300B ; Pattern_Syntax # Pe RIGHT DOUBLE ANGLE BRACKET
-300C ; Pattern_Syntax # Ps LEFT CORNER BRACKET
-300D ; Pattern_Syntax # Pe RIGHT CORNER BRACKET
-300E ; Pattern_Syntax # Ps LEFT WHITE CORNER BRACKET
-300F ; Pattern_Syntax # Pe RIGHT WHITE CORNER BRACKET
-3010 ; Pattern_Syntax # Ps LEFT BLACK LENTICULAR BRACKET
-3011 ; Pattern_Syntax # Pe RIGHT BLACK LENTICULAR BRACKET
-3012..3013 ; Pattern_Syntax # So [2] POSTAL MARK..GETA MARK
-3014 ; Pattern_Syntax # Ps LEFT TORTOISE SHELL BRACKET
-3015 ; Pattern_Syntax # Pe RIGHT TORTOISE SHELL BRACKET
-3016 ; Pattern_Syntax # Ps LEFT WHITE LENTICULAR BRACKET
-3017 ; Pattern_Syntax # Pe RIGHT WHITE LENTICULAR BRACKET
-3018 ; Pattern_Syntax # Ps LEFT WHITE TORTOISE SHELL BRACKET
-3019 ; Pattern_Syntax # Pe RIGHT WHITE TORTOISE SHELL BRACKET
-301A ; Pattern_Syntax # Ps LEFT WHITE SQUARE BRACKET
-301B ; Pattern_Syntax # Pe RIGHT WHITE SQUARE BRACKET
-301C ; Pattern_Syntax # Pd WAVE DASH
-301D ; Pattern_Syntax # Ps REVERSED DOUBLE PRIME QUOTATION MARK
-301E..301F ; Pattern_Syntax # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-3020 ; Pattern_Syntax # So POSTAL MARK FACE
-3030 ; Pattern_Syntax # Pd WAVY DASH
-FD3E ; Pattern_Syntax # Ps ORNATE LEFT PARENTHESIS
-FD3F ; Pattern_Syntax # Pe ORNATE RIGHT PARENTHESIS
-FE45..FE46 ; Pattern_Syntax # Po [2] SESAME DOT..WHITE SESAME DOT
+0021..0023 ; Pattern_Syntax
+0024 ; Pattern_Syntax
+0025..0027 ; Pattern_Syntax
+0028 ; Pattern_Syntax
+0029 ; Pattern_Syntax
+002A ; Pattern_Syntax
+002B ; Pattern_Syntax
+002C ; Pattern_Syntax
+002D ; Pattern_Syntax
+002E..002F ; Pattern_Syntax
+003A..003B ; Pattern_Syntax
+003C..003E ; Pattern_Syntax
+003F..0040 ; Pattern_Syntax
+005B ; Pattern_Syntax
+005C ; Pattern_Syntax
+005D ; Pattern_Syntax
+005E ; Pattern_Syntax
+0060 ; Pattern_Syntax
+007B ; Pattern_Syntax
+007C ; Pattern_Syntax
+007D ; Pattern_Syntax
+007E ; Pattern_Syntax
+00A1 ; Pattern_Syntax
+00A2..00A5 ; Pattern_Syntax
+00A6..00A7 ; Pattern_Syntax
+00A9 ; Pattern_Syntax
+00AB ; Pattern_Syntax
+00AC ; Pattern_Syntax
+00AE ; Pattern_Syntax
+00B0 ; Pattern_Syntax
+00B1 ; Pattern_Syntax
+00B6 ; Pattern_Syntax
+00BB ; Pattern_Syntax
+00BF ; Pattern_Syntax
+00D7 ; Pattern_Syntax
+00F7 ; Pattern_Syntax
+2010..2015 ; Pattern_Syntax
+2016..2017 ; Pattern_Syntax
+2018 ; Pattern_Syntax
+2019 ; Pattern_Syntax
+201A ; Pattern_Syntax
+201B..201C ; Pattern_Syntax
+201D ; Pattern_Syntax
+201E ; Pattern_Syntax
+201F ; Pattern_Syntax
+2020..2027 ; Pattern_Syntax
+2030..2038 ; Pattern_Syntax
+2039 ; Pattern_Syntax
+203A ; Pattern_Syntax
+203B..203E ; Pattern_Syntax
+2041..2043 ; Pattern_Syntax
+2044 ; Pattern_Syntax
+2045 ; Pattern_Syntax
+2046 ; Pattern_Syntax
+2047..2051 ; Pattern_Syntax
+2052 ; Pattern_Syntax
+2053 ; Pattern_Syntax
+2055..205E ; Pattern_Syntax
+2190..2194 ; Pattern_Syntax
+2195..2199 ; Pattern_Syntax
+219A..219B ; Pattern_Syntax
+219C..219F ; Pattern_Syntax
+21A0 ; Pattern_Syntax
+21A1..21A2 ; Pattern_Syntax
+21A3 ; Pattern_Syntax
+21A4..21A5 ; Pattern_Syntax
+21A6 ; Pattern_Syntax
+21A7..21AD ; Pattern_Syntax
+21AE ; Pattern_Syntax
+21AF..21CD ; Pattern_Syntax
+21CE..21CF ; Pattern_Syntax
+21D0..21D1 ; Pattern_Syntax
+21D2 ; Pattern_Syntax
+21D3 ; Pattern_Syntax
+21D4 ; Pattern_Syntax
+21D5..21F3 ; Pattern_Syntax
+21F4..22FF ; Pattern_Syntax
+2300..2307 ; Pattern_Syntax
+2308..230B ; Pattern_Syntax
+230C..231F ; Pattern_Syntax
+2320..2321 ; Pattern_Syntax
+2322..2328 ; Pattern_Syntax
+2329 ; Pattern_Syntax
+232A ; Pattern_Syntax
+232B..237B ; Pattern_Syntax
+237C ; Pattern_Syntax
+237D..239A ; Pattern_Syntax
+239B..23B3 ; Pattern_Syntax
+23B4..23DB ; Pattern_Syntax
+23DC..23E1 ; Pattern_Syntax
+23E2..23E7 ; Pattern_Syntax
+23E8..23FF ; Pattern_Syntax
+2400..2426 ; Pattern_Syntax
+2427..243F ; Pattern_Syntax
+2440..244A ; Pattern_Syntax
+244B..245F ; Pattern_Syntax
+2500..25B6 ; Pattern_Syntax
+25B7 ; Pattern_Syntax
+25B8..25C0 ; Pattern_Syntax
+25C1 ; Pattern_Syntax
+25C2..25F7 ; Pattern_Syntax
+25F8..25FF ; Pattern_Syntax
+2600..266E ; Pattern_Syntax
+266F ; Pattern_Syntax
+2670..269C ; Pattern_Syntax
+269D..269F ; Pattern_Syntax
+26A0..26B2 ; Pattern_Syntax
+26B3..2700 ; Pattern_Syntax
+2701..2704 ; Pattern_Syntax
+2705 ; Pattern_Syntax
+2706..2709 ; Pattern_Syntax
+270A..270B ; Pattern_Syntax
+270C..2727 ; Pattern_Syntax
+2728 ; Pattern_Syntax
+2729..274B ; Pattern_Syntax
+274C ; Pattern_Syntax
+274D ; Pattern_Syntax
+274E ; Pattern_Syntax
+274F..2752 ; Pattern_Syntax
+2753..2755 ; Pattern_Syntax
+2756 ; Pattern_Syntax
+2757 ; Pattern_Syntax
+2758..275E ; Pattern_Syntax
+275F..2760 ; Pattern_Syntax
+2761..2767 ; Pattern_Syntax
+2768 ; Pattern_Syntax
+2769 ; Pattern_Syntax
+276A ; Pattern_Syntax
+276B ; Pattern_Syntax
+276C ; Pattern_Syntax
+276D ; Pattern_Syntax
+276E ; Pattern_Syntax
+276F ; Pattern_Syntax
+2770 ; Pattern_Syntax
+2771 ; Pattern_Syntax
+2772 ; Pattern_Syntax
+2773 ; Pattern_Syntax
+2774 ; Pattern_Syntax
+2775 ; Pattern_Syntax
+2794 ; Pattern_Syntax
+2795..2797 ; Pattern_Syntax
+2798..27AF ; Pattern_Syntax
+27B0 ; Pattern_Syntax
+27B1..27BE ; Pattern_Syntax
+27BF ; Pattern_Syntax
+27C0..27C4 ; Pattern_Syntax
+27C5 ; Pattern_Syntax
+27C6 ; Pattern_Syntax
+27C7..27CA ; Pattern_Syntax
+27CB..27CF ; Pattern_Syntax
+27D0..27E5 ; Pattern_Syntax
+27E6 ; Pattern_Syntax
+27E7 ; Pattern_Syntax
+27E8 ; Pattern_Syntax
+27E9 ; Pattern_Syntax
+27EA ; Pattern_Syntax
+27EB ; Pattern_Syntax
+27EC..27EF ; Pattern_Syntax
+27F0..27FF ; Pattern_Syntax
+2800..28FF ; Pattern_Syntax
+2900..2982 ; Pattern_Syntax
+2983 ; Pattern_Syntax
+2984 ; Pattern_Syntax
+2985 ; Pattern_Syntax
+2986 ; Pattern_Syntax
+2987 ; Pattern_Syntax
+2988 ; Pattern_Syntax
+2989 ; Pattern_Syntax
+298A ; Pattern_Syntax
+298B ; Pattern_Syntax
+298C ; Pattern_Syntax
+298D ; Pattern_Syntax
+298E ; Pattern_Syntax
+298F ; Pattern_Syntax
+2990 ; Pattern_Syntax
+2991 ; Pattern_Syntax
+2992 ; Pattern_Syntax
+2993 ; Pattern_Syntax
+2994 ; Pattern_Syntax
+2995 ; Pattern_Syntax
+2996 ; Pattern_Syntax
+2997 ; Pattern_Syntax
+2998 ; Pattern_Syntax
+2999..29D7 ; Pattern_Syntax
+29D8 ; Pattern_Syntax
+29D9 ; Pattern_Syntax
+29DA ; Pattern_Syntax
+29DB ; Pattern_Syntax
+29DC..29FB ; Pattern_Syntax
+29FC ; Pattern_Syntax
+29FD ; Pattern_Syntax
+29FE..2AFF ; Pattern_Syntax
+2B00..2B1A ; Pattern_Syntax
+2B1B..2B1F ; Pattern_Syntax
+2B20..2B23 ; Pattern_Syntax
+2B24..2BFF ; Pattern_Syntax
+2E00..2E01 ; Pattern_Syntax
+2E02 ; Pattern_Syntax
+2E03 ; Pattern_Syntax
+2E04 ; Pattern_Syntax
+2E05 ; Pattern_Syntax
+2E06..2E08 ; Pattern_Syntax
+2E09 ; Pattern_Syntax
+2E0A ; Pattern_Syntax
+2E0B ; Pattern_Syntax
+2E0C ; Pattern_Syntax
+2E0D ; Pattern_Syntax
+2E0E..2E16 ; Pattern_Syntax
+2E17 ; Pattern_Syntax
+2E18..2E1B ; Pattern_Syntax
+2E1C ; Pattern_Syntax
+2E1D ; Pattern_Syntax
+2E1E..2E7F ; Pattern_Syntax
+3001..3003 ; Pattern_Syntax
+3008 ; Pattern_Syntax
+3009 ; Pattern_Syntax
+300A ; Pattern_Syntax
+300B ; Pattern_Syntax
+300C ; Pattern_Syntax
+300D ; Pattern_Syntax
+300E ; Pattern_Syntax
+300F ; Pattern_Syntax
+3010 ; Pattern_Syntax
+3011 ; Pattern_Syntax
+3012..3013 ; Pattern_Syntax
+3014 ; Pattern_Syntax
+3015 ; Pattern_Syntax
+3016 ; Pattern_Syntax
+3017 ; Pattern_Syntax
+3018 ; Pattern_Syntax
+3019 ; Pattern_Syntax
+301A ; Pattern_Syntax
+301B ; Pattern_Syntax
+301C ; Pattern_Syntax
+301D ; Pattern_Syntax
+301E..301F ; Pattern_Syntax
+3020 ; Pattern_Syntax
+3030 ; Pattern_Syntax
+FD3E ; Pattern_Syntax
+FD3F ; Pattern_Syntax
+FE45..FE46 ; Pattern_Syntax
# Total code points: 2760
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/PropertyAliases.txt b/Build/source/libs/icu-xetex/data/unidata/PropertyAliases.txt
index 39b14e5e6f3..f69c2ffbdfa 100644
--- a/Build/source/libs/icu-xetex/data/unidata/PropertyAliases.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/PropertyAliases.txt
@@ -1,10 +1,11 @@
-# PropertyAliases-4.1.0.txt
-# Date: 2005-02-26, 11:13:41 GMT [MD]
+# PropertyAliases-5.0.0.txt
+# Date: 2006-03-03, 08:23:34 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
+#
# This file contains aliases for properties used in the UCD.
# These names can be used for XML formats of UCD data, for regular-expression
# property tests, and other programmatic textual descriptions of Unicode data.
@@ -161,3 +162,4 @@ XO_NFKD ; Expands_On_NFKD
# ================================================
# Total: 88
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/PropertyValueAliases.txt b/Build/source/libs/icu-xetex/data/unidata/PropertyValueAliases.txt
index 3f7aad206e5..60546fb0b5c 100644
--- a/Build/source/libs/icu-xetex/data/unidata/PropertyValueAliases.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/PropertyValueAliases.txt
@@ -1,8 +1,8 @@
-# PropertyValueAliases-4.1.0.txt
-# Date: 2005-03-28, 17:21:48 GMT [MD]
+# PropertyValueAliases-5.0.0.txt
+# Date: 2006-03-03, 08:23:34 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -65,6 +65,7 @@ age; n/a ; 3.1
age; n/a ; 3.2
age; n/a ; 4.0
age; n/a ; 4.1
+age; n/a ; 5.0
age; n/a ; unassigned
# Bidi_Class (bc)
@@ -101,6 +102,7 @@ blk; n/a ; Arabic_Presentation_Forms-B
blk; n/a ; Arabic_Supplement
blk; n/a ; Armenian
blk; n/a ; Arrows
+blk; n/a ; Balinese
blk; n/a ; Basic_Latin
blk; n/a ; Bengali
blk; n/a ; Block_Elements
@@ -128,6 +130,9 @@ blk; n/a ; Combining_Diacritical_Marks_Supplement
blk; n/a ; Combining_Half_Marks
blk; n/a ; Control_Pictures
blk; n/a ; Coptic
+blk; n/a ; Counting_Rod_Numerals
+blk; n/a ; Cuneiform
+blk; n/a ; Cuneiform_Numbers_and_Punctuation
blk; n/a ; Currency_Symbols
blk; n/a ; Cypriot_Syllabary
blk; n/a ; Cyrillic
@@ -173,6 +178,8 @@ blk; n/a ; Lao
blk; n/a ; Latin-1_Supplement
blk; n/a ; Latin_Extended-A
blk; n/a ; Latin_Extended-B
+blk; n/a ; Latin_Extended-C
+blk; n/a ; Latin_Extended-D
blk; n/a ; Latin_Extended_Additional
blk; n/a ; Letterlike_Symbols
blk; n/a ; Limbu
@@ -192,6 +199,7 @@ blk; n/a ; Mongolian
blk; n/a ; Musical_Symbols
blk; n/a ; Myanmar
blk; n/a ; New_Tai_Lue
+blk; n/a ; NKo
blk; n/a ; No_Block
blk; n/a ; Number_Forms
blk; n/a ; Ogham
@@ -200,6 +208,8 @@ blk; n/a ; Old_Persian
blk; n/a ; Optical_Character_Recognition
blk; n/a ; Oriya
blk; n/a ; Osmanya
+blk; n/a ; Phags-pa
+blk; n/a ; Phoenician
blk; n/a ; Phonetic_Extensions
blk; n/a ; Phonetic_Extensions_Supplement
blk; n/a ; Private_Use_Area
@@ -491,6 +501,7 @@ nt ; Nu ; Numeric
sc ; Arab ; Arabic
sc ; Armn ; Armenian
+sc ; Bali ; Balinese
sc ; Beng ; Bengali
sc ; Bopo ; Bopomofo
sc ; Brai ; Braille
@@ -528,9 +539,12 @@ sc ; Linb ; Linear_B
sc ; Mlym ; Malayalam
sc ; Mong ; Mongolian
sc ; Mymr ; Myanmar
+sc ; Nkoo ; Nko
sc ; Ogam ; Ogham
sc ; Orya ; Oriya
sc ; Osma ; Osmanya
+sc ; Phag ; Phags_Pa
+sc ; Phnx ; Phoenician
sc ; Qaai ; Inherited
sc ; Runr ; Runic
sc ; Shaw ; Shavian
@@ -549,8 +563,10 @@ sc ; Thai ; Thai
sc ; Tibt ; Tibetan
sc ; Ugar ; Ugaritic
sc ; Xpeo ; Old_Persian
+sc ; Xsux ; Cuneiform
sc ; Yiii ; Yi
sc ; Zyyy ; Common
+sc ; Zzzz ; Unknown
# Sentence_Break (SB)
@@ -576,3 +592,5 @@ WB ; ML ; MidLetter
WB ; MN ; MidNum
WB ; NU ; Numeric
WB ; XX ; Other
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/Scripts.txt b/Build/source/libs/icu-xetex/data/unidata/Scripts.txt
index 8e2bae372ad..14cb3efd90c 100644
--- a/Build/source/libs/icu-xetex/data/unidata/Scripts.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/Scripts.txt
@@ -1,8 +1,8 @@
-# Scripts-4.1.0.txt
-# Date: 2005-03-10, 01:56:19 GMT [MD]
+# Scripts-5.0.0.txt
+# Date: 2006-03-09, 23:14:25 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -11,1454 +11,1528 @@
# Property: Script
# All code points not explicitly listed for Script
-# have the value Common (Zyyy).
-
-# ================================================
-
-0000..001F ; Common # Cc [32] <control-0000>..<control-001F>
-0020 ; Common # Zs SPACE
-0021..0023 ; Common # Po [3] EXCLAMATION MARK..NUMBER SIGN
-0024 ; Common # Sc DOLLAR SIGN
-0025..0027 ; Common # Po [3] PERCENT SIGN..APOSTROPHE
-0028 ; Common # Ps LEFT PARENTHESIS
-0029 ; Common # Pe RIGHT PARENTHESIS
-002A ; Common # Po ASTERISK
-002B ; Common # Sm PLUS SIGN
-002C ; Common # Po COMMA
-002D ; Common # Pd HYPHEN-MINUS
-002E..002F ; Common # Po [2] FULL STOP..SOLIDUS
-0030..0039 ; Common # Nd [10] DIGIT ZERO..DIGIT NINE
-003A..003B ; Common # Po [2] COLON..SEMICOLON
-003C..003E ; Common # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
-003F..0040 ; Common # Po [2] QUESTION MARK..COMMERCIAL AT
-005B ; Common # Ps LEFT SQUARE BRACKET
-005C ; Common # Po REVERSE SOLIDUS
-005D ; Common # Pe RIGHT SQUARE BRACKET
-005E ; Common # Sk CIRCUMFLEX ACCENT
-005F ; Common # Pc LOW LINE
-0060 ; Common # Sk GRAVE ACCENT
-007B ; Common # Ps LEFT CURLY BRACKET
-007C ; Common # Sm VERTICAL LINE
-007D ; Common # Pe RIGHT CURLY BRACKET
-007E ; Common # Sm TILDE
-007F..009F ; Common # Cc [33] <control-007F>..<control-009F>
-00A0 ; Common # Zs NO-BREAK SPACE
-00A1 ; Common # Po INVERTED EXCLAMATION MARK
-00A2..00A5 ; Common # Sc [4] CENT SIGN..YEN SIGN
-00A6..00A7 ; Common # So [2] BROKEN BAR..SECTION SIGN
-00A8 ; Common # Sk DIAERESIS
-00A9 ; Common # So COPYRIGHT SIGN
-00AB ; Common # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC ; Common # Sm NOT SIGN
-00AD ; Common # Cf SOFT HYPHEN
-00AE ; Common # So REGISTERED SIGN
-00AF ; Common # Sk MACRON
-00B0 ; Common # So DEGREE SIGN
-00B1 ; Common # Sm PLUS-MINUS SIGN
-00B2..00B3 ; Common # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
-00B4 ; Common # Sk ACUTE ACCENT
-00B5 ; Common # L& MICRO SIGN
-00B6 ; Common # So PILCROW SIGN
-00B7 ; Common # Po MIDDLE DOT
-00B8 ; Common # Sk CEDILLA
-00B9 ; Common # No SUPERSCRIPT ONE
-00BB ; Common # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC..00BE ; Common # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
-00BF ; Common # Po INVERTED QUESTION MARK
-00D7 ; Common # Sm MULTIPLICATION SIGN
-00F7 ; Common # Sm DIVISION SIGN
-02B9..02C1 ; Common # Lm [9] MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2..02C5 ; Common # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
-02C6..02D1 ; Common # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
-02D2..02DF ; Common # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT
-02E5..02ED ; Common # Sk [9] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER UNASPIRATED
-02EE ; Common # Lm MODIFIER LETTER DOUBLE APOSTROPHE
-02EF..02FF ; Common # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
-037E ; Common # Po GREEK QUESTION MARK
-0387 ; Common # Po GREEK ANO TELEIA
-0589 ; Common # Po ARMENIAN FULL STOP
-0600..0603 ; Common # Cf [4] ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
-060C ; Common # Po ARABIC COMMA
-061B ; Common # Po ARABIC SEMICOLON
-061F ; Common # Po ARABIC QUESTION MARK
-0640 ; Common # Lm ARABIC TATWEEL
-0660..0669 ; Common # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
-06DD ; Common # Cf ARABIC END OF AYAH
-0964..0965 ; Common # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0970 ; Common # Po DEVANAGARI ABBREVIATION SIGN
-0E3F ; Common # Sc THAI CURRENCY SYMBOL BAHT
-10FB ; Common # Po GEORGIAN PARAGRAPH SEPARATOR
-16EB..16ED ; Common # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
-1735..1736 ; Common # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
-2000..200A ; Common # Zs [11] EN QUAD..HAIR SPACE
-200B ; Common # Cf ZERO WIDTH SPACE
-200E..200F ; Common # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
-2010..2015 ; Common # Pd [6] HYPHEN..HORIZONTAL BAR
-2016..2017 ; Common # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE
-2018 ; Common # Pi LEFT SINGLE QUOTATION MARK
-2019 ; Common # Pf RIGHT SINGLE QUOTATION MARK
-201A ; Common # Ps SINGLE LOW-9 QUOTATION MARK
-201B..201C ; Common # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
-201D ; Common # Pf RIGHT DOUBLE QUOTATION MARK
-201E ; Common # Ps DOUBLE LOW-9 QUOTATION MARK
-201F ; Common # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020..2027 ; Common # Po [8] DAGGER..HYPHENATION POINT
-2028 ; Common # Zl LINE SEPARATOR
-2029 ; Common # Zp PARAGRAPH SEPARATOR
-202A..202E ; Common # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
-202F ; Common # Zs NARROW NO-BREAK SPACE
-2030..2038 ; Common # Po [9] PER MILLE SIGN..CARET
-2039 ; Common # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A ; Common # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B..203E ; Common # Po [4] REFERENCE MARK..OVERLINE
-203F..2040 ; Common # Pc [2] UNDERTIE..CHARACTER TIE
-2041..2043 ; Common # Po [3] CARET INSERTION POINT..HYPHEN BULLET
-2044 ; Common # Sm FRACTION SLASH
-2045 ; Common # Ps LEFT SQUARE BRACKET WITH QUILL
-2046 ; Common # Pe RIGHT SQUARE BRACKET WITH QUILL
-2047..2051 ; Common # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
-2052 ; Common # Sm COMMERCIAL MINUS SIGN
-2053 ; Common # Po SWUNG DASH
-2054 ; Common # Pc INVERTED UNDERTIE
-2055..205E ; Common # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
-205F ; Common # Zs MEDIUM MATHEMATICAL SPACE
-2060..2063 ; Common # Cf [4] WORD JOINER..INVISIBLE SEPARATOR
-206A..206F ; Common # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
-2070 ; Common # No SUPERSCRIPT ZERO
-2074..2079 ; Common # No [6] SUPERSCRIPT FOUR..SUPERSCRIPT NINE
-207A..207C ; Common # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
-207D ; Common # Ps SUPERSCRIPT LEFT PARENTHESIS
-207E ; Common # Pe SUPERSCRIPT RIGHT PARENTHESIS
-2080..2089 ; Common # No [10] SUBSCRIPT ZERO..SUBSCRIPT NINE
-208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
-208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
-208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
-20A0..20B5 ; Common # Sc [22] EURO-CURRENCY SIGN..CEDI SIGN
-2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
-2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
-2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
-2107 ; Common # L& EULER CONSTANT
-2108..2109 ; Common # So [2] SCRUPLE..DEGREE FAHRENHEIT
-210A..2113 ; Common # L& [10] SCRIPT SMALL G..SCRIPT SMALL L
-2114 ; Common # So L B BAR SYMBOL
-2115 ; Common # L& DOUBLE-STRUCK CAPITAL N
-2116..2118 ; Common # So [3] NUMERO SIGN..SCRIPT CAPITAL P
-2119..211D ; Common # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
-211E..2123 ; Common # So [6] PRESCRIPTION TAKE..VERSICLE
-2124 ; Common # L& DOUBLE-STRUCK CAPITAL Z
-2125 ; Common # So OUNCE SIGN
-2127 ; Common # So INVERTED OHM SIGN
-2128 ; Common # L& BLACK-LETTER CAPITAL Z
-2129 ; Common # So TURNED GREEK SMALL LETTER IOTA
-212C..212D ; Common # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
-212E ; Common # So ESTIMATED SYMBOL
-212F..2131 ; Common # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F
-2132 ; Common # So TURNED CAPITAL F
-2133..2134 ; Common # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O
-2135..2138 ; Common # Lo [4] ALEF SYMBOL..DALET SYMBOL
-2139 ; Common # L& INFORMATION SOURCE
-213A..213B ; Common # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
-213C..213F ; Common # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
-2140..2144 ; Common # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
-2145..2149 ; Common # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
-214A ; Common # So PROPERTY LINE
-214B ; Common # Sm TURNED AMPERSAND
-214C ; Common # So PER SIGN
-2153..215F ; Common # No [13] VULGAR FRACTION ONE THIRD..FRACTION NUMERATOR ONE
-2160..2183 ; Common # Nl [36] ROMAN NUMERAL ONE..ROMAN NUMERAL REVERSED ONE HUNDRED
-2190..2194 ; Common # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
-2195..2199 ; Common # So [5] UP DOWN ARROW..SOUTH WEST ARROW
-219A..219B ; Common # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
-219C..219F ; Common # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
-21A0 ; Common # Sm RIGHTWARDS TWO HEADED ARROW
-21A1..21A2 ; Common # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
-21A3 ; Common # Sm RIGHTWARDS ARROW WITH TAIL
-21A4..21A5 ; Common # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
-21A6 ; Common # Sm RIGHTWARDS ARROW FROM BAR
-21A7..21AD ; Common # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
-21AE ; Common # Sm LEFT RIGHT ARROW WITH STROKE
-21AF..21CD ; Common # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE..21CF ; Common # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0..21D1 ; Common # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
-21D2 ; Common # Sm RIGHTWARDS DOUBLE ARROW
-21D3 ; Common # So DOWNWARDS DOUBLE ARROW
-21D4 ; Common # Sm LEFT RIGHT DOUBLE ARROW
-21D5..21F3 ; Common # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
-21F4..22FF ; Common # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP
-2300..2307 ; Common # So [8] DIAMETER SIGN..WAVY LINE
-2308..230B ; Common # Sm [4] LEFT CEILING..RIGHT FLOOR
-230C..231F ; Common # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER
-2320..2321 ; Common # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
-2322..2328 ; Common # So [7] FROWN..KEYBOARD
-2329 ; Common # Ps LEFT-POINTING ANGLE BRACKET
-232A ; Common # Pe RIGHT-POINTING ANGLE BRACKET
-232B..237B ; Common # So [81] ERASE TO THE LEFT..NOT CHECK MARK
-237C ; Common # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D..239A ; Common # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
-239B..23B3 ; Common # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
-23B4 ; Common # Ps TOP SQUARE BRACKET
-23B5 ; Common # Pe BOTTOM SQUARE BRACKET
-23B6 ; Common # Po BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET
-23B7..23DB ; Common # So [37] RADICAL SYMBOL BOTTOM..FUSE
-2400..2426 ; Common # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
-2440..244A ; Common # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
-2460..249B ; Common # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
-249C..24E9 ; Common # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
-24EA..24FF ; Common # No [22] CIRCLED DIGIT ZERO..NEGATIVE CIRCLED DIGIT ZERO
-2500..25B6 ; Common # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE
-25B7 ; Common # Sm WHITE RIGHT-POINTING TRIANGLE
-25B8..25C0 ; Common # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE
-25C1 ; Common # Sm WHITE LEFT-POINTING TRIANGLE
-25C2..25F7 ; Common # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8..25FF ; Common # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
-2600..266E ; Common # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN
-266F ; Common # Sm MUSIC SHARP SIGN
-2670..269C ; Common # So [45] WEST SYRIAC CROSS..FLEUR-DE-LIS
-26A0..26B1 ; Common # So [18] WARNING SIGN..FUNERAL URN
-2701..2704 ; Common # So [4] UPPER BLADE SCISSORS..WHITE SCISSORS
-2706..2709 ; Common # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
-270C..2727 ; Common # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
-2729..274B ; Common # So [35] STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
-274D ; Common # So SHADOWED WHITE CIRCLE
-274F..2752 ; Common # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
-2756 ; Common # So BLACK DIAMOND MINUS WHITE X
-2758..275E ; Common # So [7] LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761..2767 ; Common # So [7] CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
-2768 ; Common # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
-2769 ; Common # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A ; Common # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B ; Common # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C ; Common # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D ; Common # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E ; Common # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F ; Common # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770 ; Common # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771 ; Common # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772 ; Common # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773 ; Common # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774 ; Common # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775 ; Common # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776..2793 ; Common # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794 ; Common # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
-2798..27AF ; Common # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
-27B1..27BE ; Common # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
-27C0..27C4 ; Common # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
-27C5 ; Common # Ps LEFT S-SHAPED BAG DELIMITER
-27C6 ; Common # Pe RIGHT S-SHAPED BAG DELIMITER
-27D0..27E5 ; Common # Sm [22] WHITE DIAMOND WITH CENTRED DOT..WHITE SQUARE WITH RIGHTWARDS TICK
-27E6 ; Common # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7 ; Common # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8 ; Common # Ps MATHEMATICAL LEFT ANGLE BRACKET
-27E9 ; Common # Pe MATHEMATICAL RIGHT ANGLE BRACKET
-27EA ; Common # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB ; Common # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27F0..27FF ; Common # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
-2900..2982 ; Common # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON
-2983 ; Common # Ps LEFT WHITE CURLY BRACKET
-2984 ; Common # Pe RIGHT WHITE CURLY BRACKET
-2985 ; Common # Ps LEFT WHITE PARENTHESIS
-2986 ; Common # Pe RIGHT WHITE PARENTHESIS
-2987 ; Common # Ps Z NOTATION LEFT IMAGE BRACKET
-2988 ; Common # Pe Z NOTATION RIGHT IMAGE BRACKET
-2989 ; Common # Ps Z NOTATION LEFT BINDING BRACKET
-298A ; Common # Pe Z NOTATION RIGHT BINDING BRACKET
-298B ; Common # Ps LEFT SQUARE BRACKET WITH UNDERBAR
-298C ; Common # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
-298D ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F ; Common # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990 ; Common # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991 ; Common # Ps LEFT ANGLE BRACKET WITH DOT
-2992 ; Common # Pe RIGHT ANGLE BRACKET WITH DOT
-2993 ; Common # Ps LEFT ARC LESS-THAN BRACKET
-2994 ; Common # Pe RIGHT ARC GREATER-THAN BRACKET
-2995 ; Common # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996 ; Common # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997 ; Common # Ps LEFT BLACK TORTOISE SHELL BRACKET
-2998 ; Common # Pe RIGHT BLACK TORTOISE SHELL BRACKET
-2999..29D7 ; Common # Sm [63] DOTTED FENCE..BLACK HOURGLASS
-29D8 ; Common # Ps LEFT WIGGLY FENCE
-29D9 ; Common # Pe RIGHT WIGGLY FENCE
-29DA ; Common # Ps LEFT DOUBLE WIGGLY FENCE
-29DB ; Common # Pe RIGHT DOUBLE WIGGLY FENCE
-29DC..29FB ; Common # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
-29FC ; Common # Ps LEFT-POINTING CURVED ANGLE BRACKET
-29FD ; Common # Pe RIGHT-POINTING CURVED ANGLE BRACKET
-29FE..2AFF ; Common # Sm [258] TINY..N-ARY WHITE VERTICAL BAR
-2B00..2B13 ; Common # So [20] NORTH EAST WHITE ARROW..SQUARE WITH BOTTOM HALF BLACK
-2E00..2E01 ; Common # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02 ; Common # Pi LEFT SUBSTITUTION BRACKET
-2E03 ; Common # Pf RIGHT SUBSTITUTION BRACKET
-2E04 ; Common # Pi LEFT DOTTED SUBSTITUTION BRACKET
-2E05 ; Common # Pf RIGHT DOTTED SUBSTITUTION BRACKET
-2E06..2E08 ; Common # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
-2E09 ; Common # Pi LEFT TRANSPOSITION BRACKET
-2E0A ; Common # Pf RIGHT TRANSPOSITION BRACKET
-2E0B ; Common # Po RAISED SQUARE
-2E0C ; Common # Pi LEFT RAISED OMISSION BRACKET
-2E0D ; Common # Pf RIGHT RAISED OMISSION BRACKET
-2E0E..2E16 ; Common # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
-2E17 ; Common # Pd DOUBLE OBLIQUE HYPHEN
-2E1C ; Common # Pi LEFT LOW PARAPHRASE BRACKET
-2E1D ; Common # Pf RIGHT LOW PARAPHRASE BRACKET
-2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000 ; Common # Zs IDEOGRAPHIC SPACE
-3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
-3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL
-3006 ; Common # Lo IDEOGRAPHIC CLOSING MARK
-3008 ; Common # Ps LEFT ANGLE BRACKET
-3009 ; Common # Pe RIGHT ANGLE BRACKET
-300A ; Common # Ps LEFT DOUBLE ANGLE BRACKET
-300B ; Common # Pe RIGHT DOUBLE ANGLE BRACKET
-300C ; Common # Ps LEFT CORNER BRACKET
-300D ; Common # Pe RIGHT CORNER BRACKET
-300E ; Common # Ps LEFT WHITE CORNER BRACKET
-300F ; Common # Pe RIGHT WHITE CORNER BRACKET
-3010 ; Common # Ps LEFT BLACK LENTICULAR BRACKET
-3011 ; Common # Pe RIGHT BLACK LENTICULAR BRACKET
-3012..3013 ; Common # So [2] POSTAL MARK..GETA MARK
-3014 ; Common # Ps LEFT TORTOISE SHELL BRACKET
-3015 ; Common # Pe RIGHT TORTOISE SHELL BRACKET
-3016 ; Common # Ps LEFT WHITE LENTICULAR BRACKET
-3017 ; Common # Pe RIGHT WHITE LENTICULAR BRACKET
-3018 ; Common # Ps LEFT WHITE TORTOISE SHELL BRACKET
-3019 ; Common # Pe RIGHT WHITE TORTOISE SHELL BRACKET
-301A ; Common # Ps LEFT WHITE SQUARE BRACKET
-301B ; Common # Pe RIGHT WHITE SQUARE BRACKET
-301C ; Common # Pd WAVE DASH
-301D ; Common # Ps REVERSED DOUBLE PRIME QUOTATION MARK
-301E..301F ; Common # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-3020 ; Common # So POSTAL MARK FACE
-3030 ; Common # Pd WAVY DASH
-3031..3035 ; Common # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
-3036..3037 ; Common # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-303C ; Common # Lo MASU MARK
-303D ; Common # Po PART ALTERNATION MARK
-303E..303F ; Common # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
-309B..309C ; Common # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-30A0 ; Common # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
-30FB ; Common # Po KATAKANA MIDDLE DOT
-30FC ; Common # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
-3190..3191 ; Common # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
-3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
-31C0..31CF ; Common # So [16] CJK STROKE T..CJK STROKE N
-3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
-322A..3243 ; Common # So [26] PARENTHESIZED IDEOGRAPH MOON..PARENTHESIZED IDEOGRAPH REACH
-3250 ; Common # So PARTNERSHIP SIGN
-3251..325F ; Common # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
-327E..327F ; Common # So [2] CIRCLED HANGUL IEUNG U..KOREAN STANDARD SYMBOL
-3280..3289 ; Common # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
-328A..32B0 ; Common # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
-32B1..32BF ; Common # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
-32C0..32FE ; Common # So [63] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..CIRCLED KATAKANA WO
-3300..33FF ; Common # So [256] SQUARE APAATO..SQUARE GAL
-4DC0..4DFF ; Common # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
-A700..A716 ; Common # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-E000..F8FF ; Common # Co [6400] <private-use-E000>..<private-use-F8FF>
-FD3E ; Common # Ps ORNATE LEFT PARENTHESIS
-FD3F ; Common # Pe ORNATE RIGHT PARENTHESIS
-FDFD ; Common # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE10..FE16 ; Common # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19 ; Common # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE30 ; Common # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31..FE32 ; Common # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
-FE33..FE34 ; Common # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45..FE46 ; Common # Po [2] SESAME DOT..WHITE SESAME DOT
-FE47 ; Common # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48 ; Common # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
-FE49..FE4C ; Common # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
-FE4D..FE4F ; Common # Pc [3] DASHED LOW LINE..WAVY LOW LINE
-FE50..FE52 ; Common # Po [3] SMALL COMMA..SMALL FULL STOP
-FE54..FE57 ; Common # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
-FE58 ; Common # Pd SMALL EM DASH
-FE59 ; Common # Ps SMALL LEFT PARENTHESIS
-FE5A ; Common # Pe SMALL RIGHT PARENTHESIS
-FE5B ; Common # Ps SMALL LEFT CURLY BRACKET
-FE5C ; Common # Pe SMALL RIGHT CURLY BRACKET
-FE5D ; Common # Ps SMALL LEFT TORTOISE SHELL BRACKET
-FE5E ; Common # Pe SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F..FE61 ; Common # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
-FE62 ; Common # Sm SMALL PLUS SIGN
-FE63 ; Common # Pd SMALL HYPHEN-MINUS
-FE64..FE66 ; Common # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
-FE68 ; Common # Po SMALL REVERSE SOLIDUS
-FE69 ; Common # Sc SMALL DOLLAR SIGN
-FE6A..FE6B ; Common # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
-FEFF ; Common # Cf ZERO WIDTH NO-BREAK SPACE
-FF01..FF03 ; Common # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
-FF04 ; Common # Sc FULLWIDTH DOLLAR SIGN
-FF05..FF07 ; Common # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
-FF08 ; Common # Ps FULLWIDTH LEFT PARENTHESIS
-FF09 ; Common # Pe FULLWIDTH RIGHT PARENTHESIS
-FF0A ; Common # Po FULLWIDTH ASTERISK
-FF0B ; Common # Sm FULLWIDTH PLUS SIGN
-FF0C ; Common # Po FULLWIDTH COMMA
-FF0D ; Common # Pd FULLWIDTH HYPHEN-MINUS
-FF0E..FF0F ; Common # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
-FF10..FF19 ; Common # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
-FF1A..FF1B ; Common # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
-FF1C..FF1E ; Common # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
-FF1F..FF20 ; Common # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
-FF3B ; Common # Ps FULLWIDTH LEFT SQUARE BRACKET
-FF3C ; Common # Po FULLWIDTH REVERSE SOLIDUS
-FF3D ; Common # Pe FULLWIDTH RIGHT SQUARE BRACKET
-FF3E ; Common # Sk FULLWIDTH CIRCUMFLEX ACCENT
-FF3F ; Common # Pc FULLWIDTH LOW LINE
-FF40 ; Common # Sk FULLWIDTH GRAVE ACCENT
-FF5B ; Common # Ps FULLWIDTH LEFT CURLY BRACKET
-FF5C ; Common # Sm FULLWIDTH VERTICAL LINE
-FF5D ; Common # Pe FULLWIDTH RIGHT CURLY BRACKET
-FF5E ; Common # Sm FULLWIDTH TILDE
-FF5F ; Common # Ps FULLWIDTH LEFT WHITE PARENTHESIS
-FF60 ; Common # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61 ; Common # Po HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62 ; Common # Ps HALFWIDTH LEFT CORNER BRACKET
-FF63 ; Common # Pe HALFWIDTH RIGHT CORNER BRACKET
-FF64..FF65 ; Common # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
-FF70 ; Common # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF9E..FF9F ; Common # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFE0..FFE1 ; Common # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
-FFE2 ; Common # Sm FULLWIDTH NOT SIGN
-FFE3 ; Common # Sk FULLWIDTH MACRON
-FFE4 ; Common # So FULLWIDTH BROKEN BAR
-FFE5..FFE6 ; Common # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
-FFE8 ; Common # So HALFWIDTH FORMS LIGHT VERTICAL
-FFE9..FFEC ; Common # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
-FFED..FFEE ; Common # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
-FFF9..FFFB ; Common # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER
-10100..10101 ; Common # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
-10102 ; Common # So AEGEAN CHECK MARK
-10107..10133 ; Common # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
-10137..1013F ; Common # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
-1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
-1D12A..1D164 ; Common # So [59] MUSICAL SYMBOL DOUBLE SHARP..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165..1D166 ; Common # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D16A..1D16C ; Common # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D..1D172 ; Common # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
-1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
-1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
-1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
-1D1AE..1D1DD ; Common # So [48] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL PES SUBPUNCTIS
-1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
-1D400..1D454 ; Common # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
-1D456..1D49C ; Common # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
-1D49E..1D49F ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
-1D4A2 ; Common # L& MATHEMATICAL SCRIPT CAPITAL G
-1D4A5..1D4A6 ; Common # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
-1D4A9..1D4AC ; Common # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE..1D4B9 ; Common # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
-1D4BB ; Common # L& MATHEMATICAL SCRIPT SMALL F
-1D4BD..1D4C3 ; Common # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
-1D4C5..1D505 ; Common # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
-1D507..1D50A ; Common # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
-1D50D..1D514 ; Common # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
-1D516..1D51C ; Common # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E..1D539 ; Common # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B..1D53E ; Common # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540..1D544 ; Common # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546 ; Common # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A..1D550 ; Common # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552..1D6A5 ; Common # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A8..1D6C0 ; Common # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1 ; Common # Sm MATHEMATICAL BOLD NABLA
-1D6C2..1D6DA ; Common # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
-1D6DB ; Common # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC..1D6FA ; Common # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB ; Common # Sm MATHEMATICAL ITALIC NABLA
-1D6FC..1D714 ; Common # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
-1D715 ; Common # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716..1D734 ; Common # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735 ; Common # Sm MATHEMATICAL BOLD ITALIC NABLA
-1D736..1D74E ; Common # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F ; Common # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750..1D76E ; Common # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F ; Common # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770..1D788 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A..1D7A8 ; Common # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA..1D7C2 ; Common # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3 ; Common # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4..1D7C9 ; Common # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
-1D7CE..1D7FF ; Common # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-E0001 ; Common # Cf LANGUAGE TAG
-E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
-F0000..FFFFD ; Common # Co [65534] <private-use-F0000>..<private-use-FFFFD>
-100000..10FFFD; Common # Co [65534] <private-use-100000>..<private-use-10FFFD>
-
-# The above property value applies to 878924 code points not listed here.
-# Total code points: 1021355
-
-# ================================================
-
-0041..005A ; Latin # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
-0061..007A ; Latin # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-00AA ; Latin # L& FEMININE ORDINAL INDICATOR
-00BA ; Latin # L& MASCULINE ORDINAL INDICATOR
-00C0..00D6 ; Latin # L& [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
-00D8..00F6 ; Latin # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
-00F8..01BA ; Latin # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
-01BB ; Latin # Lo LATIN LETTER TWO WITH STROKE
-01BC..01BF ; Latin # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
-01C0..01C3 ; Latin # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
-01C4..0241 ; Latin # L& [126] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER GLOTTAL STOP
-0250..02AF ; Latin # L& [96] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0..02B8 ; Latin # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
-02E0..02E4 ; Latin # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-1D00..1D25 ; Latin # L& [38] LATIN LETTER SMALL CAPITAL A..LATIN LETTER AIN
-1D2C..1D5C ; Latin # Lm [49] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL AIN
-1D62..1D65 ; Latin # L& [4] LATIN SUBSCRIPT SMALL LETTER I..LATIN SUBSCRIPT SMALL LETTER V
-1D6B..1D77 ; Latin # L& [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
-1D79..1D9A ; Latin # L& [34] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B..1DBF ; Latin # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1E00..1E9B ; Latin # L& [156] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER LONG S WITH DOT ABOVE
-1EA0..1EF9 ; Latin # L& [90] LATIN CAPITAL LETTER A WITH DOT BELOW..LATIN SMALL LETTER Y WITH TILDE
-2071 ; Latin # L& SUPERSCRIPT LATIN SMALL LETTER I
-207F ; Latin # L& SUPERSCRIPT LATIN SMALL LETTER N
-2090..2094 ; Latin # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA
-212A..212B ; Latin # L& [2] KELVIN SIGN..ANGSTROM SIGN
-FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
-FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
-FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
-
-# Total code points: 1037
-
-# ================================================
-
-0374..0375 ; Greek # Sk [2] GREEK NUMERAL SIGN..GREEK LOWER NUMERAL SIGN
-037A ; Greek # Lm GREEK YPOGEGRAMMENI
-0384..0385 ; Greek # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
-0386 ; Greek # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
-0388..038A ; Greek # L& [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
-038C ; Greek # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E..03A1 ; Greek # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
-03A3..03CE ; Greek # L& [44] GREEK CAPITAL LETTER SIGMA..GREEK SMALL LETTER OMEGA WITH TONOS
-03D0..03E1 ; Greek # L& [18] GREEK BETA SYMBOL..GREEK SMALL LETTER SAMPI
-03F0..03F5 ; Greek # L& [6] GREEK KAPPA SYMBOL..GREEK LUNATE EPSILON SYMBOL
-03F6 ; Greek # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
-03F7..03FF ; Greek # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-1D26..1D2A ; Greek # L& [5] GREEK LETTER SMALL CAPITAL GAMMA..GREEK LETTER SMALL CAPITAL PSI
-1D5D..1D61 ; Greek # Lm [5] MODIFIER LETTER SMALL BETA..MODIFIER LETTER SMALL CHI
-1D66..1D6A ; Greek # L& [5] GREEK SUBSCRIPT SMALL LETTER BETA..GREEK SUBSCRIPT SMALL LETTER CHI
-1F00..1F15 ; Greek # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18..1F1D ; Greek # L& [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20..1F45 ; Greek # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48..1F4D ; Greek # L& [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50..1F57 ; Greek # L& [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59 ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D ; Greek # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F..1F7D ; Greek # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
-1F80..1FB4 ; Greek # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6..1FBC ; Greek # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD ; Greek # Sk GREEK KORONIS
-1FBE ; Greek # L& GREEK PROSGEGRAMMENI
-1FBF..1FC1 ; Greek # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
-1FC2..1FC4 ; Greek # L& [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6..1FCC ; Greek # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD..1FCF ; Greek # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
-1FD0..1FD3 ; Greek # L& [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6..1FDB ; Greek # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD..1FDF ; Greek # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
-1FE0..1FEC ; Greek # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
-1FED..1FEF ; Greek # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
-1FF2..1FF4 ; Greek # L& [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6..1FFC ; Greek # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD..1FFE ; Greek # Sk [2] GREEK OXIA..GREEK DASIA
-2126 ; Greek # L& OHM SIGN
-10140..10174 ; Greek # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175..10178 ; Greek # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
-10179..10189 ; Greek # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A ; Greek # No GREEK ZERO SIGN
-1D200..1D241 ; Greek # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
-1D242..1D244 ; Greek # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
-1D245 ; Greek # So GREEK MUSICAL LEIMMA
-
-# Total code points: 502
-
-# ================================================
-
-0400..0481 ; Cyrillic # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
-0482 ; Cyrillic # So CYRILLIC THOUSANDS SIGN
-0483..0486 ; Cyrillic # Mn [4] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
-0488..0489 ; Cyrillic # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..04CE ; Cyrillic # L& [69] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER EM WITH TAIL
-04D0..04F9 ; Cyrillic # L& [42] CYRILLIC CAPITAL LETTER A WITH BREVE..CYRILLIC SMALL LETTER YERU WITH DIAERESIS
-0500..050F ; Cyrillic # L& [16] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER KOMI TJE
-1D2B ; Cyrillic # L& CYRILLIC LETTER SMALL CAPITAL EL
-1D78 ; Cyrillic # Lm MODIFIER LETTER CYRILLIC EN
-
-# Total code points: 266
-
-# ================================================
-
-0531..0556 ; Armenian # L& [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
-0559 ; Armenian # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A..055F ; Armenian # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0561..0587 ; Armenian # L& [39] ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LIGATURE ECH YIWN
-058A ; Armenian # Pd ARMENIAN HYPHEN
-FB13..FB17 ; Armenian # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+# have the value Unknown (Zzzz).
+
+# @missing: 0000..10FFFF; Unknown
+
+# ================================================
+
+0000..001F ; Common
+0020 ; Common
+0021..0023 ; Common
+0024 ; Common
+0025..0027 ; Common
+0028 ; Common
+0029 ; Common
+002A ; Common
+002B ; Common
+002C ; Common
+002D ; Common
+002E..002F ; Common
+0030..0039 ; Common
+003A..003B ; Common
+003C..003E ; Common
+003F..0040 ; Common
+005B ; Common
+005C ; Common
+005D ; Common
+005E ; Common
+005F ; Common
+0060 ; Common
+007B ; Common
+007C ; Common
+007D ; Common
+007E ; Common
+007F..009F ; Common
+00A0 ; Common
+00A1 ; Common
+00A2..00A5 ; Common
+00A6..00A7 ; Common
+00A8 ; Common
+00A9 ; Common
+00AB ; Common
+00AC ; Common
+00AD ; Common
+00AE ; Common
+00AF ; Common
+00B0 ; Common
+00B1 ; Common
+00B2..00B3 ; Common
+00B4 ; Common
+00B5 ; Common
+00B6 ; Common
+00B7 ; Common
+00B8 ; Common
+00B9 ; Common
+00BB ; Common
+00BC..00BE ; Common
+00BF ; Common
+00D7 ; Common
+00F7 ; Common
+02B9..02C1 ; Common
+02C2..02C5 ; Common
+02C6..02D1 ; Common
+02D2..02DF ; Common
+02E5..02ED ; Common
+02EE ; Common
+02EF..02FF ; Common
+037E ; Common
+0387 ; Common
+0589 ; Common
+0600..0603 ; Common
+060C ; Common
+061B ; Common
+061F ; Common
+0640 ; Common
+0660..0669 ; Common
+06DD ; Common
+0964..0965 ; Common
+0970 ; Common
+0E3F ; Common
+10FB ; Common
+16EB..16ED ; Common
+1735..1736 ; Common
+1802..1803 ; Common
+1805 ; Common
+2000..200A ; Common
+200B ; Common
+200E..200F ; Common
+2010..2015 ; Common
+2016..2017 ; Common
+2018 ; Common
+2019 ; Common
+201A ; Common
+201B..201C ; Common
+201D ; Common
+201E ; Common
+201F ; Common
+2020..2027 ; Common
+2028 ; Common
+2029 ; Common
+202A..202E ; Common
+202F ; Common
+2030..2038 ; Common
+2039 ; Common
+203A ; Common
+203B..203E ; Common
+203F..2040 ; Common
+2041..2043 ; Common
+2044 ; Common
+2045 ; Common
+2046 ; Common
+2047..2051 ; Common
+2052 ; Common
+2053 ; Common
+2054 ; Common
+2055..205E ; Common
+205F ; Common
+2060..2063 ; Common
+206A..206F ; Common
+2070 ; Common
+2074..2079 ; Common
+207A..207C ; Common
+207D ; Common
+207E ; Common
+2080..2089 ; Common
+208A..208C ; Common
+208D ; Common
+208E ; Common
+20A0..20B5 ; Common
+2100..2101 ; Common
+2102 ; Common
+2103..2106 ; Common
+2107 ; Common
+2108..2109 ; Common
+210A..2113 ; Common
+2114 ; Common
+2115 ; Common
+2116..2118 ; Common
+2119..211D ; Common
+211E..2123 ; Common
+2124 ; Common
+2125 ; Common
+2127 ; Common
+2128 ; Common
+2129 ; Common
+212C..212D ; Common
+212E ; Common
+212F..2131 ; Common
+2133..2134 ; Common
+2135..2138 ; Common
+2139 ; Common
+213A..213B ; Common
+213C..213F ; Common
+2140..2144 ; Common
+2145..2149 ; Common
+214A ; Common
+214B ; Common
+214C..214D ; Common
+2153..215F ; Common
+2160..2182 ; Common
+2183 ; Common
+2190..2194 ; Common
+2195..2199 ; Common
+219A..219B ; Common
+219C..219F ; Common
+21A0 ; Common
+21A1..21A2 ; Common
+21A3 ; Common
+21A4..21A5 ; Common
+21A6 ; Common
+21A7..21AD ; Common
+21AE ; Common
+21AF..21CD ; Common
+21CE..21CF ; Common
+21D0..21D1 ; Common
+21D2 ; Common
+21D3 ; Common
+21D4 ; Common
+21D5..21F3 ; Common
+21F4..22FF ; Common
+2300..2307 ; Common
+2308..230B ; Common
+230C..231F ; Common
+2320..2321 ; Common
+2322..2328 ; Common
+2329 ; Common
+232A ; Common
+232B..237B ; Common
+237C ; Common
+237D..239A ; Common
+239B..23B3 ; Common
+23B4..23DB ; Common
+23DC..23E1 ; Common
+23E2..23E7 ; Common
+2400..2426 ; Common
+2440..244A ; Common
+2460..249B ; Common
+249C..24E9 ; Common
+24EA..24FF ; Common
+2500..25B6 ; Common
+25B7 ; Common
+25B8..25C0 ; Common
+25C1 ; Common
+25C2..25F7 ; Common
+25F8..25FF ; Common
+2600..266E ; Common
+266F ; Common
+2670..269C ; Common
+26A0..26B2 ; Common
+2701..2704 ; Common
+2706..2709 ; Common
+270C..2727 ; Common
+2729..274B ; Common
+274D ; Common
+274F..2752 ; Common
+2756 ; Common
+2758..275E ; Common
+2761..2767 ; Common
+2768 ; Common
+2769 ; Common
+276A ; Common
+276B ; Common
+276C ; Common
+276D ; Common
+276E ; Common
+276F ; Common
+2770 ; Common
+2771 ; Common
+2772 ; Common
+2773 ; Common
+2774 ; Common
+2775 ; Common
+2776..2793 ; Common
+2794 ; Common
+2798..27AF ; Common
+27B1..27BE ; Common
+27C0..27C4 ; Common
+27C5 ; Common
+27C6 ; Common
+27C7..27CA ; Common
+27D0..27E5 ; Common
+27E6 ; Common
+27E7 ; Common
+27E8 ; Common
+27E9 ; Common
+27EA ; Common
+27EB ; Common
+27F0..27FF ; Common
+2900..2982 ; Common
+2983 ; Common
+2984 ; Common
+2985 ; Common
+2986 ; Common
+2987 ; Common
+2988 ; Common
+2989 ; Common
+298A ; Common
+298B ; Common
+298C ; Common
+298D ; Common
+298E ; Common
+298F ; Common
+2990 ; Common
+2991 ; Common
+2992 ; Common
+2993 ; Common
+2994 ; Common
+2995 ; Common
+2996 ; Common
+2997 ; Common
+2998 ; Common
+2999..29D7 ; Common
+29D8 ; Common
+29D9 ; Common
+29DA ; Common
+29DB ; Common
+29DC..29FB ; Common
+29FC ; Common
+29FD ; Common
+29FE..2AFF ; Common
+2B00..2B1A ; Common
+2B20..2B23 ; Common
+2E00..2E01 ; Common
+2E02 ; Common
+2E03 ; Common
+2E04 ; Common
+2E05 ; Common
+2E06..2E08 ; Common
+2E09 ; Common
+2E0A ; Common
+2E0B ; Common
+2E0C ; Common
+2E0D ; Common
+2E0E..2E16 ; Common
+2E17 ; Common
+2E1C ; Common
+2E1D ; Common
+2FF0..2FFB ; Common
+3000 ; Common
+3001..3003 ; Common
+3004 ; Common
+3006 ; Common
+3008 ; Common
+3009 ; Common
+300A ; Common
+300B ; Common
+300C ; Common
+300D ; Common
+300E ; Common
+300F ; Common
+3010 ; Common
+3011 ; Common
+3012..3013 ; Common
+3014 ; Common
+3015 ; Common
+3016 ; Common
+3017 ; Common
+3018 ; Common
+3019 ; Common
+301A ; Common
+301B ; Common
+301C ; Common
+301D ; Common
+301E..301F ; Common
+3020 ; Common
+3030 ; Common
+3031..3035 ; Common
+3036..3037 ; Common
+303C ; Common
+303D ; Common
+303E..303F ; Common
+309B..309C ; Common
+30A0 ; Common
+30FB ; Common
+30FC ; Common
+3190..3191 ; Common
+3192..3195 ; Common
+3196..319F ; Common
+31C0..31CF ; Common
+3220..3229 ; Common
+322A..3243 ; Common
+3250 ; Common
+3251..325F ; Common
+327E..327F ; Common
+3280..3289 ; Common
+328A..32B0 ; Common
+32B1..32BF ; Common
+32C0..32FE ; Common
+3300..33FF ; Common
+4DC0..4DFF ; Common
+A700..A716 ; Common
+A717..A71A ; Common
+A720..A721 ; Common
+FD3E ; Common
+FD3F ; Common
+FDFD ; Common
+FE10..FE16 ; Common
+FE17 ; Common
+FE18 ; Common
+FE19 ; Common
+FE30 ; Common
+FE31..FE32 ; Common
+FE33..FE34 ; Common
+FE35 ; Common
+FE36 ; Common
+FE37 ; Common
+FE38 ; Common
+FE39 ; Common
+FE3A ; Common
+FE3B ; Common
+FE3C ; Common
+FE3D ; Common
+FE3E ; Common
+FE3F ; Common
+FE40 ; Common
+FE41 ; Common
+FE42 ; Common
+FE43 ; Common
+FE44 ; Common
+FE45..FE46 ; Common
+FE47 ; Common
+FE48 ; Common
+FE49..FE4C ; Common
+FE4D..FE4F ; Common
+FE50..FE52 ; Common
+FE54..FE57 ; Common
+FE58 ; Common
+FE59 ; Common
+FE5A ; Common
+FE5B ; Common
+FE5C ; Common
+FE5D ; Common
+FE5E ; Common
+FE5F..FE61 ; Common
+FE62 ; Common
+FE63 ; Common
+FE64..FE66 ; Common
+FE68 ; Common
+FE69 ; Common
+FE6A..FE6B ; Common
+FEFF ; Common
+FF01..FF03 ; Common
+FF04 ; Common
+FF05..FF07 ; Common
+FF08 ; Common
+FF09 ; Common
+FF0A ; Common
+FF0B ; Common
+FF0C ; Common
+FF0D ; Common
+FF0E..FF0F ; Common
+FF10..FF19 ; Common
+FF1A..FF1B ; Common
+FF1C..FF1E ; Common
+FF1F..FF20 ; Common
+FF3B ; Common
+FF3C ; Common
+FF3D ; Common
+FF3E ; Common
+FF3F ; Common
+FF40 ; Common
+FF5B ; Common
+FF5C ; Common
+FF5D ; Common
+FF5E ; Common
+FF5F ; Common
+FF60 ; Common
+FF61 ; Common
+FF62 ; Common
+FF63 ; Common
+FF64..FF65 ; Common
+FF70 ; Common
+FF9E..FF9F ; Common
+FFE0..FFE1 ; Common
+FFE2 ; Common
+FFE3 ; Common
+FFE4 ; Common
+FFE5..FFE6 ; Common
+FFE8 ; Common
+FFE9..FFEC ; Common
+FFED..FFEE ; Common
+FFF9..FFFB ; Common
+FFFC..FFFD ; Common
+10100..10101 ; Common
+10102 ; Common
+10107..10133 ; Common
+10137..1013F ; Common
+1D000..1D0F5 ; Common
+1D100..1D126 ; Common
+1D12A..1D164 ; Common
+1D165..1D166 ; Common
+1D16A..1D16C ; Common
+1D16D..1D172 ; Common
+1D173..1D17A ; Common
+1D183..1D184 ; Common
+1D18C..1D1A9 ; Common
+1D1AE..1D1DD ; Common
+1D300..1D356 ; Common
+1D360..1D371 ; Common
+1D400..1D454 ; Common
+1D456..1D49C ; Common
+1D49E..1D49F ; Common
+1D4A2 ; Common
+1D4A5..1D4A6 ; Common
+1D4A9..1D4AC ; Common
+1D4AE..1D4B9 ; Common
+1D4BB ; Common
+1D4BD..1D4C3 ; Common
+1D4C5..1D505 ; Common
+1D507..1D50A ; Common
+1D50D..1D514 ; Common
+1D516..1D51C ; Common
+1D51E..1D539 ; Common
+1D53B..1D53E ; Common
+1D540..1D544 ; Common
+1D546 ; Common
+1D54A..1D550 ; Common
+1D552..1D6A5 ; Common
+1D6A8..1D6C0 ; Common
+1D6C1 ; Common
+1D6C2..1D6DA ; Common
+1D6DB ; Common
+1D6DC..1D6FA ; Common
+1D6FB ; Common
+1D6FC..1D714 ; Common
+1D715 ; Common
+1D716..1D734 ; Common
+1D735 ; Common
+1D736..1D74E ; Common
+1D74F ; Common
+1D750..1D76E ; Common
+1D76F ; Common
+1D770..1D788 ; Common
+1D789 ; Common
+1D78A..1D7A8 ; Common
+1D7A9 ; Common
+1D7AA..1D7C2 ; Common
+1D7C3 ; Common
+1D7C4..1D7CB ; Common
+1D7CE..1D7FF ; Common
+E0001 ; Common
+E0020..E007F ; Common
+
+# Total code points: 5020
+
+# ================================================
+
+0041..005A ; Latin
+0061..007A ; Latin
+00AA ; Latin
+00BA ; Latin
+00C0..00D6 ; Latin
+00D8..00F6 ; Latin
+00F8..01BA ; Latin
+01BB ; Latin
+01BC..01BF ; Latin
+01C0..01C3 ; Latin
+01C4..0293 ; Latin
+0294 ; Latin
+0295..02AF ; Latin
+02B0..02B8 ; Latin
+02E0..02E4 ; Latin
+1D00..1D25 ; Latin
+1D2C..1D5C ; Latin
+1D62..1D65 ; Latin
+1D6B..1D77 ; Latin
+1D79..1D9A ; Latin
+1D9B..1DBE ; Latin
+1E00..1E9B ; Latin
+1EA0..1EF9 ; Latin
+2071 ; Latin
+207F ; Latin
+2090..2094 ; Latin
+212A..212B ; Latin
+2132 ; Latin
+214E ; Latin
+2184 ; Latin
+2C60..2C6C ; Latin
+2C74..2C77 ; Latin
+FB00..FB06 ; Latin
+FF21..FF3A ; Latin
+FF41..FF5A ; Latin
+
+# Total code points: 1070
+
+# ================================================
+
+0374..0375 ; Greek
+037A ; Greek
+037B..037D ; Greek
+0384..0385 ; Greek
+0386 ; Greek
+0388..038A ; Greek
+038C ; Greek
+038E..03A1 ; Greek
+03A3..03CE ; Greek
+03D0..03E1 ; Greek
+03F0..03F5 ; Greek
+03F6 ; Greek
+03F7..03FF ; Greek
+1D26..1D2A ; Greek
+1D5D..1D61 ; Greek
+1D66..1D6A ; Greek
+1DBF ; Greek
+1F00..1F15 ; Greek
+1F18..1F1D ; Greek
+1F20..1F45 ; Greek
+1F48..1F4D ; Greek
+1F50..1F57 ; Greek
+1F59 ; Greek
+1F5B ; Greek
+1F5D ; Greek
+1F5F..1F7D ; Greek
+1F80..1FB4 ; Greek
+1FB6..1FBC ; Greek
+1FBD ; Greek
+1FBE ; Greek
+1FBF..1FC1 ; Greek
+1FC2..1FC4 ; Greek
+1FC6..1FCC ; Greek
+1FCD..1FCF ; Greek
+1FD0..1FD3 ; Greek
+1FD6..1FDB ; Greek
+1FDD..1FDF ; Greek
+1FE0..1FEC ; Greek
+1FED..1FEF ; Greek
+1FF2..1FF4 ; Greek
+1FF6..1FFC ; Greek
+1FFD..1FFE ; Greek
+2126 ; Greek
+10140..10174 ; Greek
+10175..10178 ; Greek
+10179..10189 ; Greek
+1018A ; Greek
+1D200..1D241 ; Greek
+1D242..1D244 ; Greek
+1D245 ; Greek
+
+# Total code points: 506
+
+# ================================================
+
+0400..0481 ; Cyrillic
+0482 ; Cyrillic
+0483..0486 ; Cyrillic
+0488..0489 ; Cyrillic
+048A..0513 ; Cyrillic
+1D2B ; Cyrillic
+1D78 ; Cyrillic
+
+# Total code points: 277
+
+# ================================================
+
+0531..0556 ; Armenian
+0559 ; Armenian
+055A..055F ; Armenian
+0561..0587 ; Armenian
+058A ; Armenian
+FB13..FB17 ; Armenian
# Total code points: 90
# ================================================
-0591..05B9 ; Hebrew # Mn [41] HEBREW ACCENT ETNAHTA..HEBREW POINT HOLAM
-05BB..05BD ; Hebrew # Mn [3] HEBREW POINT QUBUTS..HEBREW POINT METEG
-05BE ; Hebrew # Po HEBREW PUNCTUATION MAQAF
-05BF ; Hebrew # Mn HEBREW POINT RAFE
-05C0 ; Hebrew # Po HEBREW PUNCTUATION PASEQ
-05C1..05C2 ; Hebrew # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C3 ; Hebrew # Po HEBREW PUNCTUATION SOF PASUQ
-05C4..05C5 ; Hebrew # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C6 ; Hebrew # Po HEBREW PUNCTUATION NUN HAFUKHA
-05C7 ; Hebrew # Mn HEBREW POINT QAMATS QATAN
-05D0..05EA ; Hebrew # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
-05F0..05F2 ; Hebrew # Lo [3] HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3..05F4 ; Hebrew # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-FB1D ; Hebrew # Lo HEBREW LETTER YOD WITH HIRIQ
-FB1E ; Hebrew # Mn HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F..FB28 ; Hebrew # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
-FB29 ; Hebrew # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A..FB36 ; Hebrew # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
-FB38..FB3C ; Hebrew # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
-FB3E ; Hebrew # Lo HEBREW LETTER MEM WITH DAGESH
-FB40..FB41 ; Hebrew # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
-FB43..FB44 ; Hebrew # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
-FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
-
-# Total code points: 132
-
-# ================================================
-
-060B ; Arabic # Sc AFGHANI SIGN
-060D ; Arabic # Po ARABIC DATE SEPARATOR
-060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
-0610..0615 ; Arabic # Mn [6] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH
-061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
-0621..063A ; Arabic # Lo [26] ARABIC LETTER HAMZA..ARABIC LETTER GHAIN
-0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
-0656..065E ; Arabic # Mn [9] ARABIC SUBSCRIPT ALEF..ARABIC FATHA WITH TWO DOTS
-066A..066D ; Arabic # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
-066E..066F ; Arabic # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
-0671..06D3 ; Arabic # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4 ; Arabic # Po ARABIC FULL STOP
-06D5 ; Arabic # Lo ARABIC LETTER AE
-06D6..06DC ; Arabic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
-06DE ; Arabic # Me ARABIC START OF RUB EL HIZB
-06DF..06E4 ; Arabic # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
-06E5..06E6 ; Arabic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
-06E7..06E8 ; Arabic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
-06E9 ; Arabic # So ARABIC PLACE OF SAJDAH
-06EA..06ED ; Arabic # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
-06EE..06EF ; Arabic # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
-06F0..06F9 ; Arabic # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
-06FA..06FC ; Arabic # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
-06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
-06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
-0750..076D ; Arabic # Lo [30] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
-FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
-FDFC ; Arabic # Sc RIAL SIGN
-FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
-FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+0591..05BD ; Hebrew
+05BE ; Hebrew
+05BF ; Hebrew
+05C0 ; Hebrew
+05C1..05C2 ; Hebrew
+05C3 ; Hebrew
+05C4..05C5 ; Hebrew
+05C6 ; Hebrew
+05C7 ; Hebrew
+05D0..05EA ; Hebrew
+05F0..05F2 ; Hebrew
+05F3..05F4 ; Hebrew
+FB1D ; Hebrew
+FB1E ; Hebrew
+FB1F..FB28 ; Hebrew
+FB29 ; Hebrew
+FB2A..FB36 ; Hebrew
+FB38..FB3C ; Hebrew
+FB3E ; Hebrew
+FB40..FB41 ; Hebrew
+FB43..FB44 ; Hebrew
+FB46..FB4F ; Hebrew
+
+# Total code points: 133
+
+# ================================================
+
+060B ; Arabic
+060D ; Arabic
+060E..060F ; Arabic
+0610..0615 ; Arabic
+061E ; Arabic
+0621..063A ; Arabic
+0641..064A ; Arabic
+0656..065E ; Arabic
+066A..066D ; Arabic
+066E..066F ; Arabic
+0671..06D3 ; Arabic
+06D4 ; Arabic
+06D5 ; Arabic
+06D6..06DC ; Arabic
+06DE ; Arabic
+06DF..06E4 ; Arabic
+06E5..06E6 ; Arabic
+06E7..06E8 ; Arabic
+06E9 ; Arabic
+06EA..06ED ; Arabic
+06EE..06EF ; Arabic
+06F0..06F9 ; Arabic
+06FA..06FC ; Arabic
+06FD..06FE ; Arabic
+06FF ; Arabic
+0750..076D ; Arabic
+FB50..FBB1 ; Arabic
+FBD3..FD3D ; Arabic
+FD50..FD8F ; Arabic
+FD92..FDC7 ; Arabic
+FDF0..FDFB ; Arabic
+FDFC ; Arabic
+FE70..FE74 ; Arabic
+FE76..FEFC ; Arabic
# Total code points: 966
# ================================================
-0700..070D ; Syriac # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
-070F ; Syriac # Cf SYRIAC ABBREVIATION MARK
-0710 ; Syriac # Lo SYRIAC LETTER ALAPH
-0711 ; Syriac # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
-0712..072F ; Syriac # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
-0730..074A ; Syriac # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
-074D..074F ; Syriac # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0700..070D ; Syriac
+070F ; Syriac
+0710 ; Syriac
+0711 ; Syriac
+0712..072F ; Syriac
+0730..074A ; Syriac
+074D..074F ; Syriac
# Total code points: 77
# ================================================
-0780..07A5 ; Thaana # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
-07A6..07B0 ; Thaana # Mn [11] THAANA ABAFILI..THAANA SUKUN
-07B1 ; Thaana # Lo THAANA LETTER NAA
+0780..07A5 ; Thaana
+07A6..07B0 ; Thaana
+07B1 ; Thaana
# Total code points: 50
# ================================================
-0901..0902 ; Devanagari # Mn [2] DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN ANUSVARA
-0903 ; Devanagari # Mc DEVANAGARI SIGN VISARGA
-0904..0939 ; Devanagari # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
-093C ; Devanagari # Mn DEVANAGARI SIGN NUKTA
-093D ; Devanagari # Lo DEVANAGARI SIGN AVAGRAHA
-093E..0940 ; Devanagari # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
-0941..0948 ; Devanagari # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
-0949..094C ; Devanagari # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
-094D ; Devanagari # Mn DEVANAGARI SIGN VIRAMA
-0950 ; Devanagari # Lo DEVANAGARI OM
-0951..0954 ; Devanagari # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
-0958..0961 ; Devanagari # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
-0962..0963 ; Devanagari # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
-0966..096F ; Devanagari # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
-097D ; Devanagari # Lo DEVANAGARI LETTER GLOTTAL STOP
-
-# Total code points: 103
-
-# ================================================
-
-0981 ; Bengali # Mn BENGALI SIGN CANDRABINDU
-0982..0983 ; Bengali # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
-0985..098C ; Bengali # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
-098F..0990 ; Bengali # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
-0993..09A8 ; Bengali # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
-09AA..09B0 ; Bengali # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
-09B2 ; Bengali # Lo BENGALI LETTER LA
-09B6..09B9 ; Bengali # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
-09BC ; Bengali # Mn BENGALI SIGN NUKTA
-09BD ; Bengali # Lo BENGALI SIGN AVAGRAHA
-09BE..09C0 ; Bengali # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
-09C1..09C4 ; Bengali # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
-09C7..09C8 ; Bengali # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
-09CB..09CC ; Bengali # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
-09CD ; Bengali # Mn BENGALI SIGN VIRAMA
-09CE ; Bengali # Lo BENGALI LETTER KHANDA TA
-09D7 ; Bengali # Mc BENGALI AU LENGTH MARK
-09DC..09DD ; Bengali # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
-09DF..09E1 ; Bengali # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
-09E2..09E3 ; Bengali # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
-09E6..09EF ; Bengali # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
-09F0..09F1 ; Bengali # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2..09F3 ; Bengali # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
-09F4..09F9 ; Bengali # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA ; Bengali # So BENGALI ISSHAR
+0901..0902 ; Devanagari
+0903 ; Devanagari
+0904..0939 ; Devanagari
+093C ; Devanagari
+093D ; Devanagari
+093E..0940 ; Devanagari
+0941..0948 ; Devanagari
+0949..094C ; Devanagari
+094D ; Devanagari
+0950 ; Devanagari
+0951..0954 ; Devanagari
+0958..0961 ; Devanagari
+0962..0963 ; Devanagari
+0966..096F ; Devanagari
+097B..097F ; Devanagari
+
+# Total code points: 107
+
+# ================================================
+
+0981 ; Bengali
+0982..0983 ; Bengali
+0985..098C ; Bengali
+098F..0990 ; Bengali
+0993..09A8 ; Bengali
+09AA..09B0 ; Bengali
+09B2 ; Bengali
+09B6..09B9 ; Bengali
+09BC ; Bengali
+09BD ; Bengali
+09BE..09C0 ; Bengali
+09C1..09C4 ; Bengali
+09C7..09C8 ; Bengali
+09CB..09CC ; Bengali
+09CD ; Bengali
+09CE ; Bengali
+09D7 ; Bengali
+09DC..09DD ; Bengali
+09DF..09E1 ; Bengali
+09E2..09E3 ; Bengali
+09E6..09EF ; Bengali
+09F0..09F1 ; Bengali
+09F2..09F3 ; Bengali
+09F4..09F9 ; Bengali
+09FA ; Bengali
# Total code points: 91
# ================================================
-0A01..0A02 ; Gurmukhi # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
-0A03 ; Gurmukhi # Mc GURMUKHI SIGN VISARGA
-0A05..0A0A ; Gurmukhi # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
-0A0F..0A10 ; Gurmukhi # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
-0A13..0A28 ; Gurmukhi # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
-0A2A..0A30 ; Gurmukhi # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
-0A32..0A33 ; Gurmukhi # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
-0A35..0A36 ; Gurmukhi # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
-0A38..0A39 ; Gurmukhi # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
-0A3C ; Gurmukhi # Mn GURMUKHI SIGN NUKTA
-0A3E..0A40 ; Gurmukhi # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
-0A41..0A42 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
-0A47..0A48 ; Gurmukhi # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A4B..0A4D ; Gurmukhi # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
-0A59..0A5C ; Gurmukhi # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
-0A5E ; Gurmukhi # Lo GURMUKHI LETTER FA
-0A66..0A6F ; Gurmukhi # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
-0A70..0A71 ; Gurmukhi # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
-0A72..0A74 ; Gurmukhi # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A01..0A02 ; Gurmukhi
+0A03 ; Gurmukhi
+0A05..0A0A ; Gurmukhi
+0A0F..0A10 ; Gurmukhi
+0A13..0A28 ; Gurmukhi
+0A2A..0A30 ; Gurmukhi
+0A32..0A33 ; Gurmukhi
+0A35..0A36 ; Gurmukhi
+0A38..0A39 ; Gurmukhi
+0A3C ; Gurmukhi
+0A3E..0A40 ; Gurmukhi
+0A41..0A42 ; Gurmukhi
+0A47..0A48 ; Gurmukhi
+0A4B..0A4D ; Gurmukhi
+0A59..0A5C ; Gurmukhi
+0A5E ; Gurmukhi
+0A66..0A6F ; Gurmukhi
+0A70..0A71 ; Gurmukhi
+0A72..0A74 ; Gurmukhi
# Total code points: 77
# ================================================
-0A81..0A82 ; Gujarati # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
-0A83 ; Gujarati # Mc GUJARATI SIGN VISARGA
-0A85..0A8D ; Gujarati # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
-0A8F..0A91 ; Gujarati # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
-0A93..0AA8 ; Gujarati # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
-0AAA..0AB0 ; Gujarati # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
-0AB2..0AB3 ; Gujarati # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
-0AB5..0AB9 ; Gujarati # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
-0ABC ; Gujarati # Mn GUJARATI SIGN NUKTA
-0ABD ; Gujarati # Lo GUJARATI SIGN AVAGRAHA
-0ABE..0AC0 ; Gujarati # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
-0AC1..0AC5 ; Gujarati # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
-0AC7..0AC8 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
-0AC9 ; Gujarati # Mc GUJARATI VOWEL SIGN CANDRA O
-0ACB..0ACC ; Gujarati # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
-0ACD ; Gujarati # Mn GUJARATI SIGN VIRAMA
-0AD0 ; Gujarati # Lo GUJARATI OM
-0AE0..0AE1 ; Gujarati # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
-0AE2..0AE3 ; Gujarati # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
-0AE6..0AEF ; Gujarati # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
-0AF1 ; Gujarati # Sc GUJARATI RUPEE SIGN
+0A81..0A82 ; Gujarati
+0A83 ; Gujarati
+0A85..0A8D ; Gujarati
+0A8F..0A91 ; Gujarati
+0A93..0AA8 ; Gujarati
+0AAA..0AB0 ; Gujarati
+0AB2..0AB3 ; Gujarati
+0AB5..0AB9 ; Gujarati
+0ABC ; Gujarati
+0ABD ; Gujarati
+0ABE..0AC0 ; Gujarati
+0AC1..0AC5 ; Gujarati
+0AC7..0AC8 ; Gujarati
+0AC9 ; Gujarati
+0ACB..0ACC ; Gujarati
+0ACD ; Gujarati
+0AD0 ; Gujarati
+0AE0..0AE1 ; Gujarati
+0AE2..0AE3 ; Gujarati
+0AE6..0AEF ; Gujarati
+0AF1 ; Gujarati
# Total code points: 83
# ================================================
-0B01 ; Oriya # Mn ORIYA SIGN CANDRABINDU
-0B02..0B03 ; Oriya # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
-0B05..0B0C ; Oriya # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
-0B0F..0B10 ; Oriya # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
-0B13..0B28 ; Oriya # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
-0B2A..0B30 ; Oriya # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
-0B32..0B33 ; Oriya # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
-0B35..0B39 ; Oriya # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
-0B3C ; Oriya # Mn ORIYA SIGN NUKTA
-0B3D ; Oriya # Lo ORIYA SIGN AVAGRAHA
-0B3E ; Oriya # Mc ORIYA VOWEL SIGN AA
-0B3F ; Oriya # Mn ORIYA VOWEL SIGN I
-0B40 ; Oriya # Mc ORIYA VOWEL SIGN II
-0B41..0B43 ; Oriya # Mn [3] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC R
-0B47..0B48 ; Oriya # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
-0B4B..0B4C ; Oriya # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
-0B4D ; Oriya # Mn ORIYA SIGN VIRAMA
-0B56 ; Oriya # Mn ORIYA AI LENGTH MARK
-0B57 ; Oriya # Mc ORIYA AU LENGTH MARK
-0B5C..0B5D ; Oriya # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
-0B5F..0B61 ; Oriya # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
-0B66..0B6F ; Oriya # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
-0B70 ; Oriya # So ORIYA ISSHAR
-0B71 ; Oriya # Lo ORIYA LETTER WA
+0B01 ; Oriya
+0B02..0B03 ; Oriya
+0B05..0B0C ; Oriya
+0B0F..0B10 ; Oriya
+0B13..0B28 ; Oriya
+0B2A..0B30 ; Oriya
+0B32..0B33 ; Oriya
+0B35..0B39 ; Oriya
+0B3C ; Oriya
+0B3D ; Oriya
+0B3E ; Oriya
+0B3F ; Oriya
+0B40 ; Oriya
+0B41..0B43 ; Oriya
+0B47..0B48 ; Oriya
+0B4B..0B4C ; Oriya
+0B4D ; Oriya
+0B56 ; Oriya
+0B57 ; Oriya
+0B5C..0B5D ; Oriya
+0B5F..0B61 ; Oriya
+0B66..0B6F ; Oriya
+0B70 ; Oriya
+0B71 ; Oriya
# Total code points: 81
# ================================================
-0B82 ; Tamil # Mn TAMIL SIGN ANUSVARA
-0B83 ; Tamil # Lo TAMIL SIGN VISARGA
-0B85..0B8A ; Tamil # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
-0B8E..0B90 ; Tamil # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
-0B92..0B95 ; Tamil # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
-0B99..0B9A ; Tamil # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
-0B9C ; Tamil # Lo TAMIL LETTER JA
-0B9E..0B9F ; Tamil # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
-0BA3..0BA4 ; Tamil # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
-0BA8..0BAA ; Tamil # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
-0BAE..0BB9 ; Tamil # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
-0BBE..0BBF ; Tamil # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
-0BC0 ; Tamil # Mn TAMIL VOWEL SIGN II
-0BC1..0BC2 ; Tamil # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
-0BC6..0BC8 ; Tamil # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
-0BCA..0BCC ; Tamil # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
-0BCD ; Tamil # Mn TAMIL SIGN VIRAMA
-0BD7 ; Tamil # Mc TAMIL AU LENGTH MARK
-0BE6..0BEF ; Tamil # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
-0BF0..0BF2 ; Tamil # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
-0BF3..0BF8 ; Tamil # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
-0BF9 ; Tamil # Sc TAMIL RUPEE SIGN
-0BFA ; Tamil # So TAMIL NUMBER SIGN
+0B82 ; Tamil
+0B83 ; Tamil
+0B85..0B8A ; Tamil
+0B8E..0B90 ; Tamil
+0B92..0B95 ; Tamil
+0B99..0B9A ; Tamil
+0B9C ; Tamil
+0B9E..0B9F ; Tamil
+0BA3..0BA4 ; Tamil
+0BA8..0BAA ; Tamil
+0BAE..0BB9 ; Tamil
+0BBE..0BBF ; Tamil
+0BC0 ; Tamil
+0BC1..0BC2 ; Tamil
+0BC6..0BC8 ; Tamil
+0BCA..0BCC ; Tamil
+0BCD ; Tamil
+0BD7 ; Tamil
+0BE6..0BEF ; Tamil
+0BF0..0BF2 ; Tamil
+0BF3..0BF8 ; Tamil
+0BF9 ; Tamil
+0BFA ; Tamil
# Total code points: 71
# ================================================
-0C01..0C03 ; Telugu # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C05..0C0C ; Telugu # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
-0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
-0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C33 ; Telugu # Lo [10] TELUGU LETTER PA..TELUGU LETTER LLA
-0C35..0C39 ; Telugu # Lo [5] TELUGU LETTER VA..TELUGU LETTER HA
-0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
-0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
-0C46..0C48 ; Telugu # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
-0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
-0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C01..0C03 ; Telugu
+0C05..0C0C ; Telugu
+0C0E..0C10 ; Telugu
+0C12..0C28 ; Telugu
+0C2A..0C33 ; Telugu
+0C35..0C39 ; Telugu
+0C3E..0C40 ; Telugu
+0C41..0C44 ; Telugu
+0C46..0C48 ; Telugu
+0C4A..0C4D ; Telugu
+0C55..0C56 ; Telugu
+0C60..0C61 ; Telugu
+0C66..0C6F ; Telugu
# Total code points: 80
# ================================================
-0C82..0C83 ; Kannada # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0C85..0C8C ; Kannada # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
-0C8E..0C90 ; Kannada # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
-0C92..0CA8 ; Kannada # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
-0CAA..0CB3 ; Kannada # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
-0CB5..0CB9 ; Kannada # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
-0CBC ; Kannada # Mn KANNADA SIGN NUKTA
-0CBD ; Kannada # Lo KANNADA SIGN AVAGRAHA
-0CBE ; Kannada # Mc KANNADA VOWEL SIGN AA
-0CBF ; Kannada # Mn KANNADA VOWEL SIGN I
-0CC0..0CC4 ; Kannada # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
-0CC6 ; Kannada # Mn KANNADA VOWEL SIGN E
-0CC7..0CC8 ; Kannada # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
-0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
-0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
-0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0CDE ; Kannada # Lo KANNADA LETTER FA
-0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
-0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
-
-# Total code points: 82
-
-# ================================================
-
-0D02..0D03 ; Malayalam # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
-0D05..0D0C ; Malayalam # Lo [8] MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
-0D0E..0D10 ; Malayalam # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
-0D12..0D28 ; Malayalam # Lo [23] MALAYALAM LETTER O..MALAYALAM LETTER NA
-0D2A..0D39 ; Malayalam # Lo [16] MALAYALAM LETTER PA..MALAYALAM LETTER HA
-0D3E..0D40 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
-0D41..0D43 ; Malayalam # Mn [3] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC R
-0D46..0D48 ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
-0D4A..0D4C ; Malayalam # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
-0D4D ; Malayalam # Mn MALAYALAM SIGN VIRAMA
-0D57 ; Malayalam # Mc MALAYALAM AU LENGTH MARK
-0D60..0D61 ; Malayalam # Lo [2] MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
-0D66..0D6F ; Malayalam # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0C82..0C83 ; Kannada
+0C85..0C8C ; Kannada
+0C8E..0C90 ; Kannada
+0C92..0CA8 ; Kannada
+0CAA..0CB3 ; Kannada
+0CB5..0CB9 ; Kannada
+0CBC ; Kannada
+0CBD ; Kannada
+0CBE ; Kannada
+0CBF ; Kannada
+0CC0..0CC4 ; Kannada
+0CC6 ; Kannada
+0CC7..0CC8 ; Kannada
+0CCA..0CCB ; Kannada
+0CCC..0CCD ; Kannada
+0CD5..0CD6 ; Kannada
+0CDE ; Kannada
+0CE0..0CE1 ; Kannada
+0CE2..0CE3 ; Kannada
+0CE6..0CEF ; Kannada
+0CF1..0CF2 ; Kannada
+
+# Total code points: 86
+
+# ================================================
+
+0D02..0D03 ; Malayalam
+0D05..0D0C ; Malayalam
+0D0E..0D10 ; Malayalam
+0D12..0D28 ; Malayalam
+0D2A..0D39 ; Malayalam
+0D3E..0D40 ; Malayalam
+0D41..0D43 ; Malayalam
+0D46..0D48 ; Malayalam
+0D4A..0D4C ; Malayalam
+0D4D ; Malayalam
+0D57 ; Malayalam
+0D60..0D61 ; Malayalam
+0D66..0D6F ; Malayalam
# Total code points: 78
# ================================================
-0D82..0D83 ; Sinhala # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
-0D85..0D96 ; Sinhala # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
-0D9A..0DB1 ; Sinhala # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
-0DB3..0DBB ; Sinhala # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
-0DBD ; Sinhala # Lo SINHALA LETTER DANTAJA LAYANNA
-0DC0..0DC6 ; Sinhala # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
-0DCA ; Sinhala # Mn SINHALA SIGN AL-LAKUNA
-0DCF..0DD1 ; Sinhala # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2..0DD4 ; Sinhala # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6 ; Sinhala # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8..0DDF ; Sinhala # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
-0DF2..0DF3 ; Sinhala # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4 ; Sinhala # Po SINHALA PUNCTUATION KUNDDALIYA
+0D82..0D83 ; Sinhala
+0D85..0D96 ; Sinhala
+0D9A..0DB1 ; Sinhala
+0DB3..0DBB ; Sinhala
+0DBD ; Sinhala
+0DC0..0DC6 ; Sinhala
+0DCA ; Sinhala
+0DCF..0DD1 ; Sinhala
+0DD2..0DD4 ; Sinhala
+0DD6 ; Sinhala
+0DD8..0DDF ; Sinhala
+0DF2..0DF3 ; Sinhala
+0DF4 ; Sinhala
# Total code points: 80
# ================================================
-0E01..0E30 ; Thai # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
-0E31 ; Thai # Mn THAI CHARACTER MAI HAN-AKAT
-0E32..0E33 ; Thai # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
-0E34..0E3A ; Thai # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E40..0E45 ; Thai # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
-0E46 ; Thai # Lm THAI CHARACTER MAIYAMOK
-0E47..0E4E ; Thai # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
-0E4F ; Thai # Po THAI CHARACTER FONGMAN
-0E50..0E59 ; Thai # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
-0E5A..0E5B ; Thai # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E01..0E30 ; Thai
+0E31 ; Thai
+0E32..0E33 ; Thai
+0E34..0E3A ; Thai
+0E40..0E45 ; Thai
+0E46 ; Thai
+0E47..0E4E ; Thai
+0E4F ; Thai
+0E50..0E59 ; Thai
+0E5A..0E5B ; Thai
# Total code points: 86
# ================================================
-0E81..0E82 ; Lao # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
-0E84 ; Lao # Lo LAO LETTER KHO TAM
-0E87..0E88 ; Lao # Lo [2] LAO LETTER NGO..LAO LETTER CO
-0E8A ; Lao # Lo LAO LETTER SO TAM
-0E8D ; Lao # Lo LAO LETTER NYO
-0E94..0E97 ; Lao # Lo [4] LAO LETTER DO..LAO LETTER THO TAM
-0E99..0E9F ; Lao # Lo [7] LAO LETTER NO..LAO LETTER FO SUNG
-0EA1..0EA3 ; Lao # Lo [3] LAO LETTER MO..LAO LETTER LO LING
-0EA5 ; Lao # Lo LAO LETTER LO LOOT
-0EA7 ; Lao # Lo LAO LETTER WO
-0EAA..0EAB ; Lao # Lo [2] LAO LETTER SO SUNG..LAO LETTER HO SUNG
-0EAD..0EB0 ; Lao # Lo [4] LAO LETTER O..LAO VOWEL SIGN A
-0EB1 ; Lao # Mn LAO VOWEL SIGN MAI KAN
-0EB2..0EB3 ; Lao # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
-0EB4..0EB9 ; Lao # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
-0EBB..0EBC ; Lao # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
-0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO
-0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
-0EC6 ; Lao # Lm LAO KO LA
-0EC8..0ECD ; Lao # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
-0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
-0EDC..0EDD ; Lao # Lo [2] LAO HO NO..LAO HO MO
+0E81..0E82 ; Lao
+0E84 ; Lao
+0E87..0E88 ; Lao
+0E8A ; Lao
+0E8D ; Lao
+0E94..0E97 ; Lao
+0E99..0E9F ; Lao
+0EA1..0EA3 ; Lao
+0EA5 ; Lao
+0EA7 ; Lao
+0EAA..0EAB ; Lao
+0EAD..0EB0 ; Lao
+0EB1 ; Lao
+0EB2..0EB3 ; Lao
+0EB4..0EB9 ; Lao
+0EBB..0EBC ; Lao
+0EBD ; Lao
+0EC0..0EC4 ; Lao
+0EC6 ; Lao
+0EC8..0ECD ; Lao
+0ED0..0ED9 ; Lao
+0EDC..0EDD ; Lao
# Total code points: 65
# ================================================
-0F00 ; Tibetan # Lo TIBETAN SYLLABLE OM
-0F01..0F03 ; Tibetan # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04..0F12 ; Tibetan # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
-0F13..0F17 ; Tibetan # So [5] TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18..0F19 ; Tibetan # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A..0F1F ; Tibetan # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20..0F29 ; Tibetan # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
-0F2A..0F33 ; Tibetan # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
-0F34 ; Tibetan # So TIBETAN MARK BSDUS RTAGS
-0F35 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36 ; Tibetan # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37 ; Tibetan # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38 ; Tibetan # So TIBETAN MARK CHE MGO
-0F39 ; Tibetan # Mn TIBETAN MARK TSA -PHRU
-0F3A ; Tibetan # Ps TIBETAN MARK GUG RTAGS GYON
-0F3B ; Tibetan # Pe TIBETAN MARK GUG RTAGS GYAS
-0F3C ; Tibetan # Ps TIBETAN MARK ANG KHANG GYON
-0F3D ; Tibetan # Pe TIBETAN MARK ANG KHANG GYAS
-0F3E..0F3F ; Tibetan # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
-0F40..0F47 ; Tibetan # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
-0F49..0F6A ; Tibetan # Lo [34] TIBETAN LETTER NYA..TIBETAN LETTER FIXED-FORM RA
-0F71..0F7E ; Tibetan # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
-0F7F ; Tibetan # Mc TIBETAN SIGN RNAM BCAD
-0F80..0F84 ; Tibetan # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
-0F85 ; Tibetan # Po TIBETAN MARK PALUTA
-0F86..0F87 ; Tibetan # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
-0F88..0F8B ; Tibetan # Lo [4] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN GRU MED RGYINGS
-0F90..0F97 ; Tibetan # Mn [8] TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER JA
-0F99..0FBC ; Tibetan # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE..0FC5 ; Tibetan # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
-0FC6 ; Tibetan # Mn TIBETAN SYMBOL PADMA GDAN
-0FC7..0FCC ; Tibetan # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCF ; Tibetan # So TIBETAN SIGN RDEL NAG GSUM
-0FD0..0FD1 ; Tibetan # Po [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0F00 ; Tibetan
+0F01..0F03 ; Tibetan
+0F04..0F12 ; Tibetan
+0F13..0F17 ; Tibetan
+0F18..0F19 ; Tibetan
+0F1A..0F1F ; Tibetan
+0F20..0F29 ; Tibetan
+0F2A..0F33 ; Tibetan
+0F34 ; Tibetan
+0F35 ; Tibetan
+0F36 ; Tibetan
+0F37 ; Tibetan
+0F38 ; Tibetan
+0F39 ; Tibetan
+0F3A ; Tibetan
+0F3B ; Tibetan
+0F3C ; Tibetan
+0F3D ; Tibetan
+0F3E..0F3F ; Tibetan
+0F40..0F47 ; Tibetan
+0F49..0F6A ; Tibetan
+0F71..0F7E ; Tibetan
+0F7F ; Tibetan
+0F80..0F84 ; Tibetan
+0F85 ; Tibetan
+0F86..0F87 ; Tibetan
+0F88..0F8B ; Tibetan
+0F90..0F97 ; Tibetan
+0F99..0FBC ; Tibetan
+0FBE..0FC5 ; Tibetan
+0FC6 ; Tibetan
+0FC7..0FCC ; Tibetan
+0FCF ; Tibetan
+0FD0..0FD1 ; Tibetan
# Total code points: 195
# ================================================
-1000..1021 ; Myanmar # Lo [34] MYANMAR LETTER KA..MYANMAR LETTER A
-1023..1027 ; Myanmar # Lo [5] MYANMAR LETTER I..MYANMAR LETTER E
-1029..102A ; Myanmar # Lo [2] MYANMAR LETTER O..MYANMAR LETTER AU
-102C ; Myanmar # Mc MYANMAR VOWEL SIGN AA
-102D..1030 ; Myanmar # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
-1031 ; Myanmar # Mc MYANMAR VOWEL SIGN E
-1032 ; Myanmar # Mn MYANMAR VOWEL SIGN AI
-1036..1037 ; Myanmar # Mn [2] MYANMAR SIGN ANUSVARA..MYANMAR SIGN DOT BELOW
-1038 ; Myanmar # Mc MYANMAR SIGN VISARGA
-1039 ; Myanmar # Mn MYANMAR SIGN VIRAMA
-1040..1049 ; Myanmar # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
-104A..104F ; Myanmar # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
-1050..1055 ; Myanmar # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
-1056..1057 ; Myanmar # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
-1058..1059 ; Myanmar # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+1000..1021 ; Myanmar
+1023..1027 ; Myanmar
+1029..102A ; Myanmar
+102C ; Myanmar
+102D..1030 ; Myanmar
+1031 ; Myanmar
+1032 ; Myanmar
+1036..1037 ; Myanmar
+1038 ; Myanmar
+1039 ; Myanmar
+1040..1049 ; Myanmar
+104A..104F ; Myanmar
+1050..1055 ; Myanmar
+1056..1057 ; Myanmar
+1058..1059 ; Myanmar
# Total code points: 78
# ================================================
-10A0..10C5 ; Georgian # L& [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
-10D0..10FA ; Georgian # Lo [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FC ; Georgian # Lm MODIFIER LETTER GEORGIAN NAR
-2D00..2D25 ; Georgian # L& [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+10A0..10C5 ; Georgian
+10D0..10FA ; Georgian
+10FC ; Georgian
+2D00..2D25 ; Georgian
# Total code points: 120
# ================================================
-1100..1159 ; Hangul # Lo [90] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
-115F..11A2 ; Hangul # Lo [68] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG SSANGARAEA
-11A8..11F9 ; Hangul # Lo [82] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
-3131..318E ; Hangul # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
-3200..321E ; Hangul # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
-3260..327D ; Hangul # So [30] CIRCLED HANGUL KIYEOK..CIRCLED KOREAN CHARACTER JUEUI
-AC00..D7A3 ; Hangul # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
-FFA0..FFBE ; Hangul # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
-FFC2..FFC7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
-FFCA..FFCF ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
-FFD2..FFD7 ; Hangul # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
-FFDA..FFDC ; Hangul # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+1100..1159 ; Hangul
+115F..11A2 ; Hangul
+11A8..11F9 ; Hangul
+3131..318E ; Hangul
+3200..321E ; Hangul
+3260..327D ; Hangul
+AC00..D7A3 ; Hangul
+FFA0..FFBE ; Hangul
+FFC2..FFC7 ; Hangul
+FFCA..FFCF ; Hangul
+FFD2..FFD7 ; Hangul
+FFDA..FFDC ; Hangul
# Total code points: 11619
# ================================================
-1200..1248 ; Ethiopic # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
-124A..124D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
-1250..1256 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
-1258 ; Ethiopic # Lo ETHIOPIC SYLLABLE QHWA
-125A..125D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
-1260..1288 ; Ethiopic # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
-128A..128D ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
-1290..12B0 ; Ethiopic # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
-12B2..12B5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
-12B8..12BE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
-12C0 ; Ethiopic # Lo ETHIOPIC SYLLABLE KXWA
-12C2..12C5 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
-12C8..12D6 ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8..1310 ; Ethiopic # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
-1312..1315 ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
-1318..135A ; Ethiopic # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
-135F ; Ethiopic # Mn ETHIOPIC COMBINING GEMINATION MARK
-1360 ; Ethiopic # So ETHIOPIC SECTION MARK
-1361..1368 ; Ethiopic # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR
-1369..137C ; Ethiopic # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
-1380..138F ; Ethiopic # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
-1390..1399 ; Ethiopic # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
-2D80..2D96 ; Ethiopic # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
-2DA0..2DA6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
-2DA8..2DAE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
-2DB0..2DB6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
-2DB8..2DBE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
-2DC0..2DC6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
-2DC8..2DCE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
-2DD0..2DD6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
-2DD8..2DDE ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+1200..1248 ; Ethiopic
+124A..124D ; Ethiopic
+1250..1256 ; Ethiopic
+1258 ; Ethiopic
+125A..125D ; Ethiopic
+1260..1288 ; Ethiopic
+128A..128D ; Ethiopic
+1290..12B0 ; Ethiopic
+12B2..12B5 ; Ethiopic
+12B8..12BE ; Ethiopic
+12C0 ; Ethiopic
+12C2..12C5 ; Ethiopic
+12C8..12D6 ; Ethiopic
+12D8..1310 ; Ethiopic
+1312..1315 ; Ethiopic
+1318..135A ; Ethiopic
+135F ; Ethiopic
+1360 ; Ethiopic
+1361..1368 ; Ethiopic
+1369..137C ; Ethiopic
+1380..138F ; Ethiopic
+1390..1399 ; Ethiopic
+2D80..2D96 ; Ethiopic
+2DA0..2DA6 ; Ethiopic
+2DA8..2DAE ; Ethiopic
+2DB0..2DB6 ; Ethiopic
+2DB8..2DBE ; Ethiopic
+2DC0..2DC6 ; Ethiopic
+2DC8..2DCE ; Ethiopic
+2DD0..2DD6 ; Ethiopic
+2DD8..2DDE ; Ethiopic
# Total code points: 461
# ================================================
-13A0..13F4 ; Cherokee # Lo [85] CHEROKEE LETTER A..CHEROKEE LETTER YV
+13A0..13F4 ; Cherokee
# Total code points: 85
# ================================================
-1401..166C ; Canadian_Aboriginal # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D..166E ; Canadian_Aboriginal # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
-166F..1676 ; Canadian_Aboriginal # Lo [8] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+1401..166C ; Canadian_Aboriginal
+166D..166E ; Canadian_Aboriginal
+166F..1676 ; Canadian_Aboriginal
# Total code points: 630
# ================================================
-1680 ; Ogham # Zs OGHAM SPACE MARK
-1681..169A ; Ogham # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
-169B ; Ogham # Ps OGHAM FEATHER MARK
-169C ; Ogham # Pe OGHAM REVERSED FEATHER MARK
+1680 ; Ogham
+1681..169A ; Ogham
+169B ; Ogham
+169C ; Ogham
# Total code points: 29
# ================================================
-16A0..16EA ; Runic # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
-16EE..16F0 ; Runic # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16A0..16EA ; Runic
+16EE..16F0 ; Runic
# Total code points: 78
# ================================================
-1780..17B3 ; Khmer # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4..17B5 ; Khmer # Cf [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
-17B6 ; Khmer # Mc KHMER VOWEL SIGN AA
-17B7..17BD ; Khmer # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
-17BE..17C5 ; Khmer # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
-17C6 ; Khmer # Mn KHMER SIGN NIKAHIT
-17C7..17C8 ; Khmer # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
-17C9..17D3 ; Khmer # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
-17D4..17D6 ; Khmer # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
-17D7 ; Khmer # Lm KHMER SIGN LEK TOO
-17D8..17DA ; Khmer # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
-17DB ; Khmer # Sc KHMER CURRENCY SYMBOL RIEL
-17DC ; Khmer # Lo KHMER SIGN AVAKRAHASANYA
-17DD ; Khmer # Mn KHMER SIGN ATTHACAN
-17E0..17E9 ; Khmer # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
-17F0..17F9 ; Khmer # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
-19E0..19FF ; Khmer # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1780..17B3 ; Khmer
+17B4..17B5 ; Khmer
+17B6 ; Khmer
+17B7..17BD ; Khmer
+17BE..17C5 ; Khmer
+17C6 ; Khmer
+17C7..17C8 ; Khmer
+17C9..17D3 ; Khmer
+17D4..17D6 ; Khmer
+17D7 ; Khmer
+17D8..17DA ; Khmer
+17DB ; Khmer
+17DC ; Khmer
+17DD ; Khmer
+17E0..17E9 ; Khmer
+17F0..17F9 ; Khmer
+19E0..19FF ; Khmer
# Total code points: 146
# ================================================
-1800..1805 ; Mongolian # Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
-1806 ; Mongolian # Pd MONGOLIAN TODO SOFT HYPHEN
-1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
-180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
-180E ; Mongolian # Zs MONGOLIAN VOWEL SEPARATOR
-1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
-1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
-1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844..1877 ; Mongolian # Lo [52] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER MANCHU ZHA
-1880..18A8 ; Mongolian # Lo [41] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9 ; Mongolian # Mn MONGOLIAN LETTER ALI GALI DAGALGA
-
-# Total code points: 155
+1800..1801 ; Mongolian
+1804 ; Mongolian
+1806 ; Mongolian
+1807..180A ; Mongolian
+180B..180D ; Mongolian
+180E ; Mongolian
+1810..1819 ; Mongolian
+1820..1842 ; Mongolian
+1843 ; Mongolian
+1844..1877 ; Mongolian
+1880..18A8 ; Mongolian
+18A9 ; Mongolian
+
+# Total code points: 152
# ================================================
-3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
-309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
-309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
+3041..3096 ; Hiragana
+309D..309E ; Hiragana
+309F ; Hiragana
# Total code points: 89
# ================================================
-30A1..30FA ; Katakana # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
-30FD..30FE ; Katakana # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
-30FF ; Katakana # Lo KATAKANA DIGRAPH KOTO
-31F0..31FF ; Katakana # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
-FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
-FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+30A1..30FA ; Katakana
+30FD..30FE ; Katakana
+30FF ; Katakana
+31F0..31FF ; Katakana
+FF66..FF6F ; Katakana
+FF71..FF9D ; Katakana
# Total code points: 164
# ================================================
-3105..312C ; Bopomofo # Lo [40] BOPOMOFO LETTER B..BOPOMOFO LETTER GN
-31A0..31B7 ; Bopomofo # Lo [24] BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+3105..312C ; Bopomofo
+31A0..31B7 ; Bopomofo
# Total code points: 64
# ================================================
-2E80..2E99 ; Han # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
-2E9B..2EF3 ; Han # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
-2F00..2FD5 ; Han # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
-3005 ; Han # Lm IDEOGRAPHIC ITERATION MARK
-3007 ; Han # Nl IDEOGRAPHIC NUMBER ZERO
-3021..3029 ; Han # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
-3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
-303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
-3400..4DB5 ; Han # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
-4E00..9FBB ; Han # Lo [20924] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FBB
-F900..FA2D ; Han # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D
-FA30..FA6A ; Han # Lo [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A
-FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-20000..2A6D6 ; Han # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
-2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2E80..2E99 ; Han
+2E9B..2EF3 ; Han
+2F00..2FD5 ; Han
+3005 ; Han
+3007 ; Han
+3021..3029 ; Han
+3038..303A ; Han
+303B ; Han
+3400..4DB5 ; Han
+4E00..9FBB ; Han
+F900..FA2D ; Han
+FA30..FA6A ; Han
+FA70..FAD9 ; Han
+20000..2A6D6 ; Han
+2F800..2FA1D ; Han
# Total code points: 71570
# ================================================
-A000..A014 ; Yi # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
-A015 ; Yi # Lm YI SYLLABLE WU
-A016..A48C ; Yi # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
-A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
+A000..A014 ; Yi
+A015 ; Yi
+A016..A48C ; Yi
+A490..A4C6 ; Yi
# Total code points: 1220
# ================================================
-10300..1031E ; Old_Italic # Lo [31] OLD ITALIC LETTER A..OLD ITALIC LETTER UU
-10320..10323 ; Old_Italic # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10300..1031E ; Old_Italic
+10320..10323 ; Old_Italic
# Total code points: 35
# ================================================
-10330..10349 ; Gothic # Lo [26] GOTHIC LETTER AHSA..GOTHIC LETTER OTHAL
-1034A ; Gothic # Nl GOTHIC LETTER NINE HUNDRED
+10330..10340 ; Gothic
+10341 ; Gothic
+10342..10349 ; Gothic
+1034A ; Gothic
# Total code points: 27
# ================================================
-10400..1044F ; Deseret # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10400..1044F ; Deseret
# Total code points: 80
# ================================================
-0300..036F ; Inherited # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
-064B..0655 ; Inherited # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
-0670 ; Inherited # Mn ARABIC LETTER SUPERSCRIPT ALEF
-1DC0..1DC3 ; Inherited # Mn [4] COMBINING DOTTED GRAVE ACCENT..COMBINING SUSPENSION MARK
-200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
-20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
-20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1 ; Inherited # Mn COMBINING LEFT RIGHT ARROW ABOVE
-20E2..20E4 ; Inherited # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5..20EB ; Inherited # Mn [7] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING LONG DOUBLE SOLIDUS OVERLAY
-302A..302F ; Inherited # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK
-3099..309A ; Inherited # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-FE00..FE0F ; Inherited # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE20..FE23 ; Inherited # Mn [4] COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF
-1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
-1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
-1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+0300..036F ; Inherited
+064B..0655 ; Inherited
+0670 ; Inherited
+1DC0..1DCA ; Inherited
+1DFE..1DFF ; Inherited
+200C..200D ; Inherited
+20D0..20DC ; Inherited
+20DD..20E0 ; Inherited
+20E1 ; Inherited
+20E2..20E4 ; Inherited
+20E5..20EF ; Inherited
+302A..302F ; Inherited
+3099..309A ; Inherited
+FE00..FE0F ; Inherited
+FE20..FE23 ; Inherited
+1D167..1D169 ; Inherited
+1D17B..1D182 ; Inherited
+1D185..1D18B ; Inherited
+1D1AA..1D1AD ; Inherited
+E0100..E01EF ; Inherited
-# Total code points: 448
+# Total code points: 461
# ================================================
-1700..170C ; Tagalog # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
-170E..1711 ; Tagalog # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
-1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1700..170C ; Tagalog
+170E..1711 ; Tagalog
+1712..1714 ; Tagalog
# Total code points: 20
# ================================================
-1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
-1732..1734 ; Hanunoo # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1720..1731 ; Hanunoo
+1732..1734 ; Hanunoo
# Total code points: 21
# ================================================
-1740..1751 ; Buhid # Lo [18] BUHID LETTER A..BUHID LETTER HA
-1752..1753 ; Buhid # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1740..1751 ; Buhid
+1752..1753 ; Buhid
# Total code points: 20
# ================================================
-1760..176C ; Tagbanwa # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
-176E..1770 ; Tagbanwa # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
-1772..1773 ; Tagbanwa # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1760..176C ; Tagbanwa
+176E..1770 ; Tagbanwa
+1772..1773 ; Tagbanwa
# Total code points: 18
# ================================================
-1900..191C ; Limbu # Lo [29] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
-1920..1922 ; Limbu # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
-1923..1926 ; Limbu # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
-1927..1928 ; Limbu # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
-1929..192B ; Limbu # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
-1930..1931 ; Limbu # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
-1932 ; Limbu # Mn LIMBU SMALL LETTER ANUSVARA
-1933..1938 ; Limbu # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
-1939..193B ; Limbu # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
-1940 ; Limbu # So LIMBU SIGN LOO
-1944..1945 ; Limbu # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-1946..194F ; Limbu # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1900..191C ; Limbu
+1920..1922 ; Limbu
+1923..1926 ; Limbu
+1927..1928 ; Limbu
+1929..192B ; Limbu
+1930..1931 ; Limbu
+1932 ; Limbu
+1933..1938 ; Limbu
+1939..193B ; Limbu
+1940 ; Limbu
+1944..1945 ; Limbu
+1946..194F ; Limbu
# Total code points: 66
# ================================================
-1950..196D ; Tai_Le # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
-1970..1974 ; Tai_Le # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1950..196D ; Tai_Le
+1970..1974 ; Tai_Le
# Total code points: 35
# ================================================
-10000..1000B ; Linear_B # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
-1000D..10026 ; Linear_B # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
-10028..1003A ; Linear_B # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
-1003C..1003D ; Linear_B # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
-1003F..1004D ; Linear_B # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
-10050..1005D ; Linear_B # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
-10080..100FA ; Linear_B # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10000..1000B ; Linear_B
+1000D..10026 ; Linear_B
+10028..1003A ; Linear_B
+1003C..1003D ; Linear_B
+1003F..1004D ; Linear_B
+10050..1005D ; Linear_B
+10080..100FA ; Linear_B
# Total code points: 211
# ================================================
-10380..1039D ; Ugaritic # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
-1039F ; Ugaritic # Po UGARITIC WORD DIVIDER
+10380..1039D ; Ugaritic
+1039F ; Ugaritic
# Total code points: 31
# ================================================
-10450..1047F ; Shavian # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10450..1047F ; Shavian
# Total code points: 48
# ================================================
-10480..1049D ; Osmanya # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
-104A0..104A9 ; Osmanya # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+10480..1049D ; Osmanya
+104A0..104A9 ; Osmanya
# Total code points: 40
# ================================================
-10800..10805 ; Cypriot # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
-10808 ; Cypriot # Lo CYPRIOT SYLLABLE JO
-1080A..10835 ; Cypriot # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
-10837..10838 ; Cypriot # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
-1083C ; Cypriot # Lo CYPRIOT SYLLABLE ZA
-1083F ; Cypriot # Lo CYPRIOT SYLLABLE ZO
+10800..10805 ; Cypriot
+10808 ; Cypriot
+1080A..10835 ; Cypriot
+10837..10838 ; Cypriot
+1083C ; Cypriot
+1083F ; Cypriot
# Total code points: 55
# ================================================
-2800..28FF ; Braille # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2800..28FF ; Braille
# Total code points: 256
# ================================================
-1A00..1A16 ; Buginese # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
-1A17..1A18 ; Buginese # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1A19..1A1B ; Buginese # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE
-1A1E..1A1F ; Buginese # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A00..1A16 ; Buginese
+1A17..1A18 ; Buginese
+1A19..1A1B ; Buginese
+1A1E..1A1F ; Buginese
# Total code points: 30
# ================================================
-03E2..03EF ; Coptic # L& [14] COPTIC CAPITAL LETTER SHEI..COPTIC SMALL LETTER DEI
-2C80..2CE4 ; Coptic # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
-2CE5..2CEA ; Coptic # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
-2CF9..2CFC ; Coptic # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD ; Coptic # No COPTIC FRACTION ONE HALF
-2CFE..2CFF ; Coptic # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+03E2..03EF ; Coptic
+2C80..2CE4 ; Coptic
+2CE5..2CEA ; Coptic
+2CF9..2CFC ; Coptic
+2CFD ; Coptic
+2CFE..2CFF ; Coptic
# Total code points: 128
# ================================================
-1980..19A9 ; New_Tai_Lue # Lo [42] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
-19B0..19C0 ; New_Tai_Lue # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY
-19C1..19C7 ; New_Tai_Lue # Lo [7] NEW TAI LUE LETTER FINAL V..NEW TAI LUE LETTER FINAL B
-19C8..19C9 ; New_Tai_Lue # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2
-19D0..19D9 ; New_Tai_Lue # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
-19DE..19DF ; New_Tai_Lue # Po [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+1980..19A9 ; New_Tai_Lue
+19B0..19C0 ; New_Tai_Lue
+19C1..19C7 ; New_Tai_Lue
+19C8..19C9 ; New_Tai_Lue
+19D0..19D9 ; New_Tai_Lue
+19DE..19DF ; New_Tai_Lue
# Total code points: 80
# ================================================
-2C00..2C2E ; Glagolitic # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30..2C5E ; Glagolitic # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C00..2C2E ; Glagolitic
+2C30..2C5E ; Glagolitic
# Total code points: 94
# ================================================
-2D30..2D65 ; Tifinagh # Lo [54] TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
-2D6F ; Tifinagh # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D30..2D65 ; Tifinagh
+2D6F ; Tifinagh
# Total code points: 55
# ================================================
-A800..A801 ; Syloti_Nagri # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
-A802 ; Syloti_Nagri # Mc SYLOTI NAGRI SIGN DVISVARA
-A803..A805 ; Syloti_Nagri # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
-A806 ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN HASANTA
-A807..A80A ; Syloti_Nagri # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
-A80B ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ANUSVARA
-A80C..A822 ; Syloti_Nagri # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
-A823..A824 ; Syloti_Nagri # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
-A825..A826 ; Syloti_Nagri # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
-A827 ; Syloti_Nagri # Mc SYLOTI NAGRI VOWEL SIGN OO
-A828..A82B ; Syloti_Nagri # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A800..A801 ; Syloti_Nagri
+A802 ; Syloti_Nagri
+A803..A805 ; Syloti_Nagri
+A806 ; Syloti_Nagri
+A807..A80A ; Syloti_Nagri
+A80B ; Syloti_Nagri
+A80C..A822 ; Syloti_Nagri
+A823..A824 ; Syloti_Nagri
+A825..A826 ; Syloti_Nagri
+A827 ; Syloti_Nagri
+A828..A82B ; Syloti_Nagri
# Total code points: 44
# ================================================
-103A0..103C3 ; Old_Persian # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
-103C8..103CF ; Old_Persian # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
-103D0 ; Old_Persian # So OLD PERSIAN WORD DIVIDER
-103D1..103D5 ; Old_Persian # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+103A0..103C3 ; Old_Persian
+103C8..103CF ; Old_Persian
+103D0 ; Old_Persian
+103D1..103D5 ; Old_Persian
# Total code points: 50
# ================================================
-10A00 ; Kharoshthi # Lo KHAROSHTHI LETTER A
-10A01..10A03 ; Kharoshthi # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05..10A06 ; Kharoshthi # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
-10A0C..10A0F ; Kharoshthi # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
-10A10..10A13 ; Kharoshthi # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
-10A15..10A17 ; Kharoshthi # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
-10A19..10A33 ; Kharoshthi # Lo [27] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
-10A38..10A3A ; Kharoshthi # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
-10A3F ; Kharoshthi # Mn KHAROSHTHI VIRAMA
-10A40..10A47 ; Kharoshthi # No [8] KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
-10A50..10A58 ; Kharoshthi # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A00 ; Kharoshthi
+10A01..10A03 ; Kharoshthi
+10A05..10A06 ; Kharoshthi
+10A0C..10A0F ; Kharoshthi
+10A10..10A13 ; Kharoshthi
+10A15..10A17 ; Kharoshthi
+10A19..10A33 ; Kharoshthi
+10A38..10A3A ; Kharoshthi
+10A3F ; Kharoshthi
+10A40..10A47 ; Kharoshthi
+10A50..10A58 ; Kharoshthi
# Total code points: 65
+
+# ================================================
+
+1B00..1B03 ; Balinese
+1B04 ; Balinese
+1B05..1B33 ; Balinese
+1B34 ; Balinese
+1B35 ; Balinese
+1B36..1B3A ; Balinese
+1B3B ; Balinese
+1B3C ; Balinese
+1B3D..1B41 ; Balinese
+1B42 ; Balinese
+1B43..1B44 ; Balinese
+1B45..1B4B ; Balinese
+1B50..1B59 ; Balinese
+1B5A..1B60 ; Balinese
+1B61..1B6A ; Balinese
+1B6B..1B73 ; Balinese
+1B74..1B7C ; Balinese
+
+# Total code points: 121
+
+# ================================================
+
+12000..1236E ; Cuneiform
+12400..12462 ; Cuneiform
+12470..12473 ; Cuneiform
+
+# Total code points: 982
+
+# ================================================
+
+10900..10915 ; Phoenician
+10916..10919 ; Phoenician
+1091F ; Phoenician
+
+# Total code points: 27
+
+# ================================================
+
+A840..A873 ; Phags_Pa
+A874..A877 ; Phags_Pa
+
+# Total code points: 56
+
+# ================================================
+
+07C0..07C9 ; Nko
+07CA..07EA ; Nko
+07EB..07F3 ; Nko
+07F4..07F5 ; Nko
+07F6 ; Nko
+07F7..07F9 ; Nko
+07FA ; Nko
+
+# Total code points: 59
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/SentenceBreakProperty.txt b/Build/source/libs/icu-xetex/data/unidata/SentenceBreakProperty.txt
index 6d264e15d46..fc58820b7f2 100644
--- a/Build/source/libs/icu-xetex/data/unidata/SentenceBreakProperty.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/SentenceBreakProperty.txt
@@ -1,8 +1,8 @@
-# SentenceBreakProperty-4.1.0.txt
-# Date: 2005-02-26, 02:42:31 GMT [MD]
+# SentenceBreakProperty-5.0.0.txt
+# Date: 2006-03-09, 23:14:25 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -11,7 +11,9 @@
# Property: Sentence_Break
# All code points not explicitly listed for Sentence_Break
-# have the value Other.
+# have the value Other (XX).
+
+# @missing: 0000..10FFFF; Other
# ================================================
@@ -200,11 +202,18 @@ E0020..E007F ; Format
0233..0239 ; Lower
023C ; Lower
023F..0240 ; Lower
-0250..02AF ; Lower
+0242 ; Lower
+0247 ; Lower
+0249 ; Lower
+024B ; Lower
+024D ; Lower
+024F..0293 ; Lower
+0295..02AF ; Lower
02B0..02B8 ; Lower
02C0..02C1 ; Lower
02E0..02E4 ; Lower
037A ; Lower
+037B..037D ; Lower
0390 ; Lower
03AC..03CE ; Lower
03D0..03D1 ; Lower
@@ -275,7 +284,7 @@ E0020..E007F ; Format
04C8 ; Lower
04CA ; Lower
04CC ; Lower
-04CE ; Lower
+04CE..04CF ; Lower
04D1 ; Lower
04D3 ; Lower
04D5 ; Lower
@@ -297,6 +306,9 @@ E0020..E007F ; Format
04F5 ; Lower
04F7 ; Lower
04F9 ; Lower
+04FB ; Lower
+04FD ; Lower
+04FF ; Lower
0501 ; Lower
0503 ; Lower
0505 ; Lower
@@ -305,6 +317,8 @@ E0020..E007F ; Format
050B ; Lower
050D ; Lower
050F ; Lower
+0511 ; Lower
+0513 ; Lower
0561..0587 ; Lower
1D00..1D2B ; Lower
1D2C..1D61 ; Lower
@@ -464,9 +478,18 @@ E0020..E007F ; Format
2139 ; Lower
213C..213D ; Lower
2146..2149 ; Lower
+214E ; Lower
2170..217F ; Lower
+2184 ; Lower
24D0..24E9 ; Lower
2C30..2C5E ; Lower
+2C61 ; Lower
+2C65..2C66 ; Lower
+2C68 ; Lower
+2C6A ; Lower
+2C6C ; Lower
+2C74 ; Lower
+2C76..2C77 ; Lower
2C81 ; Lower
2C83 ; Lower
2C85 ; Lower
@@ -549,8 +572,9 @@ FF41..FF5A ; Lower
1D78A..1D78F ; Lower
1D7AA..1D7C2 ; Lower
1D7C4..1D7C9 ; Lower
+1D7CB ; Lower
-# Total code points: 1764
+# Total code points: 1790
# ================================================
@@ -693,6 +717,11 @@ FF41..FF5A ; Lower
023A..023B ; Upper
023D..023E ; Upper
0241 ; Upper
+0243..0246 ; Upper
+0248 ; Upper
+024A ; Upper
+024C ; Upper
+024E ; Upper
0386 ; Upper
0388..038A ; Upper
038C ; Upper
@@ -788,6 +817,9 @@ FF41..FF5A ; Lower
04F4 ; Upper
04F6 ; Upper
04F8 ; Upper
+04FA ; Upper
+04FC ; Upper
+04FE ; Upper
0500 ; Upper
0502 ; Upper
0504 ; Upper
@@ -796,6 +828,8 @@ FF41..FF5A ; Lower
050A ; Upper
050C ; Upper
050E ; Upper
+0510 ; Upper
+0512 ; Upper
0531..0556 ; Upper
10A0..10C5 ; Upper
1E00 ; Upper
@@ -946,13 +980,19 @@ FF41..FF5A ; Lower
2126 ; Upper
2128 ; Upper
212A..212D ; Upper
-2130..2131 ; Upper
-2133 ; Upper
+2130..2133 ; Upper
213E..213F ; Upper
2145 ; Upper
2160..216F ; Upper
+2183 ; Upper
24B6..24CF ; Upper
2C00..2C2E ; Upper
+2C60 ; Upper
+2C62..2C64 ; Upper
+2C67 ; Upper
+2C69 ; Upper
+2C6B ; Upper
+2C75 ; Upper
2C80 ; Upper
2C82 ; Upper
2C84 ; Upper
@@ -1035,14 +1075,16 @@ FF21..FF3A ; Upper
1D71C..1D734 ; Upper
1D756..1D76E ; Upper
1D790..1D7A8 ; Upper
+1D7CA ; Upper
-# Total code points: 1369
+# Total code points: 1393
# ================================================
00A0 ; OLetter
01BB ; OLetter
01C0..01C3 ; OLetter
+0294 ; OLetter
02B9..02BF ; OLetter
02C6..02D1 ; OLetter
02EE ; OLetter
@@ -1065,6 +1107,9 @@ FF21..FF3A ; Upper
074D..076D ; OLetter
0780..07A5 ; OLetter
07B1 ; OLetter
+07CA..07EA ; OLetter
+07F4..07F5 ; OLetter
+07FA ; OLetter
0903 ; OLetter
0904..0939 ; OLetter
093D ; OLetter
@@ -1072,7 +1117,7 @@ FF21..FF3A ; Upper
0949..094C ; OLetter
0950 ; OLetter
0958..0961 ; OLetter
-097D ; OLetter
+097B..097F ; OLetter
0982..0983 ; OLetter
0985..098C ; OLetter
098F..0990 ; OLetter
@@ -1272,8 +1317,15 @@ FF21..FF3A ; Upper
19C8..19C9 ; OLetter
1A00..1A16 ; OLetter
1A19..1A1B ; OLetter
+1B04 ; OLetter
+1B05..1B33 ; OLetter
+1B35 ; OLetter
+1B3B ; OLetter
+1B3D..1B41 ; OLetter
+1B43 ; OLetter
+1B45..1B4B ; OLetter
2135..2138 ; OLetter
-2180..2183 ; OLetter
+2180..2182 ; OLetter
2D30..2D65 ; OLetter
2D6F ; OLetter
2D80..2D96 ; OLetter
@@ -1308,12 +1360,14 @@ FF21..FF3A ; Upper
A000..A014 ; OLetter
A015 ; OLetter
A016..A48C ; OLetter
+A717..A71A ; OLetter
A800..A801 ; OLetter
A803..A805 ; OLetter
A807..A80A ; OLetter
A80C..A822 ; OLetter
A823..A824 ; OLetter
A827 ; OLetter
+A840..A873 ; OLetter
AC00..D7A3 ; OLetter
F900..FA2D ; OLetter
FA30..FA6A ; OLetter
@@ -1350,7 +1404,9 @@ FFDA..FFDC ; OLetter
10080..100FA ; OLetter
10140..10174 ; OLetter
10300..1031E ; OLetter
-10330..10349 ; OLetter
+10330..10340 ; OLetter
+10341 ; OLetter
+10342..10349 ; OLetter
1034A ; OLetter
10380..1039D ; OLetter
103A0..103C3 ; OLetter
@@ -1363,14 +1419,17 @@ FFDA..FFDC ; OLetter
10837..10838 ; OLetter
1083C ; OLetter
1083F ; OLetter
+10900..10915 ; OLetter
10A00 ; OLetter
10A10..10A13 ; OLetter
10A15..10A17 ; OLetter
10A19..10A33 ; OLetter
+12000..1236E ; OLetter
+12400..12462 ; OLetter
20000..2A6D6 ; OLetter
2F800..2FA1D ; OLetter
-# Total code points: 88568
+# Total code points: 89727
# ================================================
@@ -1378,6 +1437,7 @@ FFDA..FFDC ; OLetter
0660..0669 ; Numeric
066B..066C ; Numeric
06F0..06F9 ; Numeric
+07C0..07C9 ; Numeric
0966..096F ; Numeric
09E6..09EF ; Numeric
0A66..0A6F ; Numeric
@@ -1395,10 +1455,11 @@ FFDA..FFDC ; OLetter
1810..1819 ; Numeric
1946..194F ; Numeric
19D0..19D9 ; Numeric
+1B50..1B59 ; Numeric
104A0..104A9 ; Numeric
1D7CE..1D7FF ; Numeric
-# Total code points: 262
+# Total code points: 282
# ================================================
@@ -1416,6 +1477,7 @@ FFDA..FFDC ; OLetter
061F ; STerm
06D4 ; STerm
0700..0702 ; STerm
+07F9 ; STerm
0964..0965 ; STerm
104A..104B ; STerm
1362 ; STerm
@@ -1424,9 +1486,12 @@ FFDA..FFDC ; OLetter
1803 ; STerm
1809 ; STerm
1944..1945 ; STerm
+1B5A..1B5B ; STerm
+1B5E..1B5F ; STerm
203C..203D ; STerm
2047..2049 ; STerm
3002 ; STerm
+A876..A877 ; STerm
FE52 ; STerm
FE56..FE57 ; STerm
FF01 ; STerm
@@ -1434,7 +1499,7 @@ FF0E ; STerm
FF1F ; STerm
FF61 ; STerm
-# Total code points: 35
+# Total code points: 42
# ================================================
@@ -1471,9 +1536,6 @@ FF61 ; STerm
208E ; Close
2329 ; Close
232A ; Close
-23B4 ; Close
-23B5 ; Close
-23B6 ; Close
275B..275E ; Close
2768 ; Close
2769 ; Close
@@ -1597,4 +1659,6 @@ FF60 ; Close
FF62 ; Close
FF63 ; Close
-# Total code points: 166
+# Total code points: 163
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/SpecialCasing.txt b/Build/source/libs/icu-xetex/data/unidata/SpecialCasing.txt
index 11a5b1d69e1..4bfe148b064 100644
--- a/Build/source/libs/icu-xetex/data/unidata/SpecialCasing.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/SpecialCasing.txt
@@ -1,8 +1,8 @@
-# SpecialCasing-4.1.0.txt
-# Date: 2005-03-26, 00:35:45 GMT [MD]
+# SpecialCasing-5.0.0.txt
+# Date: 2006-03-03, 08:23:36 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
#
@@ -38,9 +38,10 @@
# A locale ID is defined by taking any language tag as defined by
# RFC 3066 (or its successor), and replacing '-' by '_'.
#
-# A context for a character C is defined by Section 3.13 Default Case Operations,
-# on p. 89-90 of The Unicode Standard, Version 4.0, as amended by Unicode 4.1.0,
-# as specified in http://www.unicode.org/versions/Unicode4.1.0/
+# A context for a character C is defined by Section 3.13 Default Case
+# Operations, of The Unicode Standard, Version 5.0.
+# (This is identical to the context defined by Unicode 4.1.0,
+# as specified in http://www.unicode.org/versions/Unicode4.1.0/)
#
# Parsers of this file must be prepared to deal with future additions to this format:
# * Additional contexts
@@ -258,3 +259,6 @@ FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH
# Note: the following case is already in the UnicodeData file.
# 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I
+
+# EOF
+
diff --git a/Build/source/libs/icu-xetex/data/unidata/UCARules.txt b/Build/source/libs/icu-xetex/data/unidata/UCARules.txt
index b339f04c98b..cdb5d62c929 100644
--- a/Build/source/libs/icu-xetex/data/unidata/UCARules.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/UCARules.txt
@@ -1,12 +1,11 @@
-# Copyright (c) 2005 International Business Machines
-# Corporation and others. All Rights Reserved.
-# UCA Rules
+# UCA Rules
# This file contains the UCA tables for the given version, but transformed into rule syntax.
-# Generated: 2005-05-03, 19:14:38 GMT [MD]
+# Generated: 2006-06-10, 20:18:15 GMT [MD]
# NOTE: Since UCA handles canonical equivalents, no composites are necessary
# (except in extensions).
# For syntax description, see: http://oss.software.ibm.com/icu/userguide/Collate_Intro.html
-# VERSION: UCA=4.1.0, UCD=4.1.0
+# Copyright (c) 1991-2006 Unicode, Inc.
+# VERSION: UCA=5.0.0, UCD=5.0.0
& [last tertiary ignorable]
= ''
@@ -149,6 +148,15 @@
= ᠌
= á 
= 'á Ž'
+ = 'á­«'
+ = 'á­¬'
+ = 'á­­'
+ = 'á­®'
+ = 'á­¯'
+ = 'á­°'
+ = 'á­±'
+ = 'á­²'
+ = 'á­³'
= '​'
= '‌'
= 'â€'
@@ -671,6 +679,15 @@
<< á·
<< á·‚
<< á·ƒ
+ << 'á·„'
+ << 'á·…'
+ << 'á·†'
+ << 'á·‡'
+ << 'á·ˆ'
+ << 'á·‰'
+ << 'á·Š'
+ << 'á·¾'
+ << 'á·¿'
<< Òƒ
<< Ò„
<< Ò…
@@ -684,8 +701,9 @@
<< Ö¶
<< Ö·
<< Ö¸
- << 'ׇ'
+ << ׇ
<< Ö¹
+ << 'Öº'
<< Ö»
<< ׂ
<< ×
@@ -764,6 +782,15 @@
<< ݈
<< ݉
<< ÝŠ
+ << 'ß«'
+ << '߬'
+ << 'ß­'
+ << 'ß®'
+ << '߯'
+ << 'ß°'
+ << 'ß±'
+ << 'ß²'
+ << 'ß³'
<< ़
<< à¤
<< ं
@@ -801,6 +828,12 @@
<< à´ƒ
<< ං
<< ඃ
+ << '᬴'
+ << 'ᬀ'
+ << 'á¬'
+ << 'ᬂ'
+ << 'ᬃ'
+ << 'ᬄ'
<< ê ‹
<< ð¨
<< ð¨Ž
@@ -884,6 +917,10 @@
<< ⃩
<< ⃪
<< ⃫
+ << '⃬'
+ << '⃭'
+ << '⃮'
+ << '⃯'
& [last regular]
< ' '
< '\u000A'
@@ -909,6 +946,7 @@
= ' '
< ' '
< Ù€
+ < 'ߺ'
< '`'
<<< ï½€
< ´
@@ -949,6 +987,7 @@
<<< ï¼
<<< ï¹£
< ÖŠ
+ < 'á­ '
< á †
< á ‡
< â€
@@ -976,6 +1015,7 @@
< Ø
< Ù«
< Ù¬
+ < '߸'
< á ‚
< á ˆ
< ã€
@@ -1012,6 +1052,7 @@
< á …
< ༔
< ៖
+ < 'á­'
< ᛫
< ᛬
< á›­
@@ -1023,6 +1064,7 @@
<<< ︕
< ¡
< ՜
+ < 'ß¹'
< ᥄
< '?'
<<< ?
@@ -1055,6 +1097,7 @@
< á ƒ
< á ‰
< á™®
+ < '᭜'
< â³¹
< â³¾
< 。
@@ -1063,20 +1106,27 @@
< ·
< ।
< ॥
+ < '꡶'
+ < 'ê¡·'
< ᜵
< ᜶
< áŠ
< á‹
< ។
< ៕
+ < 'á­ž'
+ < 'á­Ÿ'
< ð©–
< ð©—
< ܀
+ < 'ß·'
< ჻
< á 
< á¨
< ᨞
< ᨟
+ < 'á­š'
+ < 'á­›'
< â•
< â–
< â˜
@@ -1093,6 +1143,11 @@
< ð„‚
< ðŽŸ
< ð
+ < 'ð¤Ÿ'
+ < 'ð’‘°'
+ < 'ð’‘±'
+ < 'ð’‘²'
+ < 'ð’‘³'
< ''
<<< '
< ‘
@@ -1455,6 +1510,8 @@
< ៙
< ៚
< á™­
+ < 'ê¡´'
+ < '꡵'
< ð©
< ð©‘
< ð©’
@@ -1546,6 +1603,12 @@
< ꜔
< ꜕
< ꜖
+ < 'ꜗ'
+ < 'ꜘ'
+ < 'ꜙ'
+ < 'ꜚ'
+ < '꜠'
+ < '꜡'
< °
<<< ℃ / C
<<< ℉ / F
@@ -1554,6 +1617,7 @@
< Ø
< Û©
< ï·½
+ < '߶'
< ৺
< à­°
< ௳
@@ -1563,6 +1627,8 @@
< ௷
< ௸
< ௺
+ < 'à³±'
+ < 'à³²'
< ê ¨
< ê ©
< ê ª
@@ -1633,6 +1699,25 @@
< ᧽
< ᧾
< ᧿
+ < 'á­¡'
+ < 'á­¢'
+ < 'á­£'
+ < 'á­¤'
+ < 'á­¥'
+ < 'á­¦'
+ < 'á­§'
+ < 'á­¨'
+ < 'á­©'
+ < 'á­ª'
+ < 'á­´'
+ < 'á­µ'
+ < 'á­¶'
+ < 'á­·'
+ < 'á­¸'
+ < 'á­¹'
+ < 'á­º'
+ < 'á­»'
+ < 'á­¼'
< â„„
< ℈
< â„”
@@ -1645,7 +1730,6 @@
< ℧
< â„©
< â„®
- < Ⅎ
< ℺
< â…
< â…‚
@@ -1653,6 +1737,7 @@
< â…„
< â…Š
< ⅌
+ < 'â…'
< â†
<<< ï¿©
< →
@@ -2245,6 +2330,18 @@
< â™
< âš
< â›
+ < 'âœ'
+ < 'â'
+ < 'âž'
+ < 'âŸ'
+ < 'â '
+ < 'â¡'
+ < 'â¢'
+ < 'â£'
+ < 'â¤'
+ < 'â¥'
+ < 'â¦'
+ < 'â§'
< â€
< â
< â‚
@@ -2712,6 +2809,7 @@
< ⚯
< âš°
< âš±
+ < 'âš²'
< âœ
< ✂
< ✃
@@ -2863,6 +2961,10 @@
< ⟄
< ⟅
< ⟆
+ < '⟇'
+ < '⟈'
+ < '⟉'
+ < '⟊'
< âŸ
< ⟑
< ⟒
@@ -3410,6 +3512,17 @@
< ⬑
< ⬒
< ⬓
+ < '⬔'
+ < '⬕'
+ < '⬖'
+ < '⬗'
+ < '⬘'
+ < '⬙'
+ < '⬚'
+ < '⬠'
+ < '⬡'
+ < '⬢'
+ < '⬣'
< â³¥
< ⳦
< ⳧
@@ -4475,7 +4588,6 @@
< ↀ
< â†
< ↂ
- < Ↄ
< â³½
< ðŒ¢
< ðŒ£
@@ -4562,10 +4674,35 @@
< ð“
< ð”
< ð•
+ < 'ð¤—'
+ < 'ð¤˜'
+ < 'ð¤™'
< ð©„
< ð©…
< ð©†
< ð©‡
+ < 'ð’²'
+ < 'ð’³'
+ < 'ð’‘–'
+ < 'ð’‘—'
+ < 'ð’‘š'
+ < 'ð’‘›'
+ < '𒑜'
+ < 'ð’‘'
+ < 'ð’‘ž'
+ < 'ð’‘Ÿ'
+ < 'ð’‘ '
+ < 'ð’‘¡'
+ < 'ð’‘¢'
+ < 'ð©'
+ < 'ðª'
+ < 'ð«'
+ < 'ð¬'
+ < 'ð­'
+ < 'ð®'
+ < 'ð¯'
+ < 'ð°'
+ < 'ð±'
< [variable top]
< Ë
< Ë‘
@@ -4635,6 +4772,7 @@
<<< â‚€
<< Ù 
<< Û°
+ << '߀'
<< ð’ 
<< ०
<< ০
@@ -4654,6 +4792,7 @@
<< á€
<< ០
<< ៰
+ << 'á­'
<< á 
<< 〇
<< ð†Š
@@ -4740,11 +4879,12 @@
<<< â…› / â„8
<< Ù¡
<< Û±
+ << 'ß'
<< á©
<< ð’¡
<< १
<< ১
- << ৴
+ = ৴
<< ੧
<< ૧
<< à­§
@@ -4761,6 +4901,7 @@
<< á
<< ១
<< ៱
+ << 'á­‘'
<< á ‘
<< 〡
<< ð„‡
@@ -4770,7 +4911,15 @@
= ð…š
<< ðŒ 
<< ð‘
+ << 'ð’•'
+ = 'ð’ž'
+ = 'ð’¬'
+ = 'ð’´'
+ = 'ð’‘'
+ = '𒑘'
+ << 'ð¤–'
<< ð©€
+ << 'ð '
< 2
<<< ï¼’
<<< â’‰ / '.'
@@ -4820,11 +4969,12 @@
<<< â…– / â„5
<< Ù¢
<< Û²
+ << 'ß‚'
<< áª
<< ð’¢
<< २
<< ২
- << ৵
+ = ৵
<< ੨
<< ૨
<< à­¨
@@ -4841,6 +4991,7 @@
<< á‚
<< ២
<< ៲
+ << 'á­’'
<< á ’
<< 〢
<< ð„ˆ
@@ -4849,7 +5000,17 @@
= ð…
= ð…ž
<< ð’
+ << 'ð’€'
+ = 'ð’–'
+ = 'ð’Ÿ'
+ = 'ð’£'
+ = 'ð’­'
+ = 'ð’µ'
+ = 'ð’‘Š'
+ = 'ð’‘'
+ = 'ð’‘™'
<< ð©
+ << 'ð¡'
< 3
<<< 3
<<< â’Š / '.'
@@ -4885,11 +5046,12 @@
<<< â…œ / â„8
<< Ù£
<< Û³
+ << '߃'
<< á«
<< ð’£
<< ३
<< ৩
- << ৶
+ = ৶
<< à©©
<< à«©
<< à­©
@@ -4906,10 +5068,26 @@
<< áƒ
<< ៣
<< ៳
+ << 'á­“'
<< á “
<< 〣
<< ð„‰
+ << 'ð’'
+ = 'ð’ˆ'
+ = 'ð’—'
+ = 'ð’ '
+ = 'ð’¤'
+ = 'ð’¥'
+ = 'ð’®'
+ = 'ð’¯'
+ = 'ð’¶'
+ = 'ð’·'
+ = 'ð’º'
+ = 'ð’»'
+ = 'ð’‘‹'
+ = 'ð’‘‘'
<< ð©‚
+ << 'ð¢'
< 4
<<< ï¼”
<<< â’‹ / '.'
@@ -4941,11 +5119,12 @@
<<< â…˜ / â„5
<< Ù¤
<< Û´
+ << 'ß„'
<< á¬
<< ð’¤
<< ४
<< ৪
- << ৷
+ = ৷
<< ੪
<< ૪
<< à­ª
@@ -4962,10 +5141,27 @@
<< á„
<< ៤
<< ៴
+ << 'á­”'
<< á ”
<< 〤
<< ð„Š
+ << 'ð’‚'
+ = 'ð’‰'
+ = 'ð’'
+ = 'ð’˜'
+ = 'ð’¡'
+ = 'ð’¦'
+ = 'ð’°'
+ = 'ð’¸'
+ = 'ð’¼'
+ = 'ð’½'
+ = 'ð’¾'
+ = 'ð’¿'
+ = '𒑌'
+ = 'ð’‘’'
+ = 'ð’‘“'
<< ð©ƒ
+ << 'ð£'
< 5
<<< 5
<<< ⒌ / '.'
@@ -4989,6 +5185,7 @@
<<< â… / â„8
<< Ù¥
<< Ûµ
+ << 'ß…'
<< á­
<< ð’¥
<< ५
@@ -5009,6 +5206,7 @@
<< á…
<< ៥
<< ៵
+ << 'á­•'
<< á •
<< 〥
<< ð„‹
@@ -5018,6 +5216,18 @@
= ð…Ÿ
= ð…³
<< ðŒ¡
+ << 'ð’ƒ'
+ = 'ð’Š'
+ = 'ð’'
+ = 'ð’™'
+ = 'ð’¢'
+ = 'ð’§'
+ = 'ð’±'
+ = 'ð’¹'
+ = 'ð’‘'
+ = 'ð’‘”'
+ = 'ð’‘•'
+ << 'ð¤'
< 6
<<< ï¼–
<<< â’ / '.'
@@ -5038,6 +5248,7 @@
<<< ₆
<< Ù¦
<< Û¶
+ << '߆'
<< á®
<< ð’¦
<< ६
@@ -5058,9 +5269,18 @@
<< á†
<< ៦
<< ៶
+ << 'á­–'
<< á –
<< 〦
<< ð„Œ
+ << 'ð’„'
+ = 'ð’‹'
+ = 'ð’‘'
+ = 'ð’š'
+ = 'ð’¨'
+ = 'ð’‘€'
+ = 'ð’‘Ž'
+ << 'ð¥'
< 7
<<< ï¼—
<<< â’Ž / '.'
@@ -5082,6 +5302,7 @@
<<< â…ž / â„8
<< Ù§
<< Û·
+ << '߇'
<< á¯
<< ð’§
<< ७
@@ -5102,9 +5323,19 @@
<< á‡
<< ៧
<< ៷
+ << 'á­—'
<< á —
<< 〧
<< ð„
+ << 'ð’…'
+ = 'ð’Œ'
+ = 'ð’’'
+ = 'ð’›'
+ = 'ð’©'
+ = 'ð’‘'
+ = 'ð’‘‚'
+ = '𒑃'
+ << 'ð¦'
< 8
<<< 8
<<< â’ / '.'
@@ -5125,6 +5356,7 @@
<<< ₈
<< Ù¨
<< Û¸
+ << '߈'
<< á°
<< ð’¨
<< ८
@@ -5145,9 +5377,18 @@
<< áˆ
<< ៨
<< ៸
+ << 'á­˜'
<< á ˜
<< 〨
<< ð„Ž
+ << 'ð’†'
+ = 'ð’'
+ = 'ð’“'
+ = 'ð’œ'
+ = 'ð’ª'
+ = 'ð’‘„'
+ = 'ð’‘…'
+ << 'ð§'
< 9
<<< ï¼™
<<< â’ / '.'
@@ -5168,6 +5409,7 @@
<<< ₉
<< Ù©
<< Û¹
+ << '߉'
<< á±
<< ð’©
<< ९
@@ -5188,9 +5430,20 @@
<< á‰
<< ៩
<< ៹
+ << 'á­™'
<< á ™
<< 〩
<< ð„
+ << 'ð’‡'
+ = 'ð’Ž'
+ = 'ð’”'
+ = 'ð’'
+ = 'ð’«'
+ = '𒑆'
+ = '𒑇'
+ = '𒑈'
+ = '𒑉'
+ << 'ð¨'
< a
<<< ï½
<<< ͣ
@@ -5238,7 +5491,8 @@
<<< Æ / e
<<< á´­ / e
< á´€
- < Ⱥ
+ < 'â±¥'
+ <<< Ⱥ
< á¶
< á´
< á´‚
@@ -5288,6 +5542,7 @@
<<< ム/ q
< Ê™
< ƀ
+ <<< 'Ƀ'
< á´¯
< á´ƒ
< ᵬ
@@ -5349,6 +5604,8 @@
<<< Ƈ
< É•
<<< á¶
+ < 'ↄ'
+ <<< Ↄ
< d
<<< đ / ̵
<<< d
@@ -5461,6 +5718,8 @@
<<< ã‹Ž / V
<<< á´±
< á´‡
+ < 'ɇ'
+ <<< 'Ɇ'
< ᶒ
< Ç
<<< ÆŽ
@@ -5531,6 +5790,8 @@
< ᶂ
< Æ’
<<< Æ‘
+ < 'â…Ž'
+ <<< Ⅎ
< g
<<< g
<<< â„Š
@@ -5634,6 +5895,10 @@
<<< Ƕ
< ɦ
<<< ʱ
+ < 'ⱨ'
+ <<< 'Ⱨ'
+ < 'ⱶ'
+ <<< 'â±µ'
< ɧ
< Ê»
< ʽ
@@ -5743,6 +6008,8 @@
< È·
<<< ðš¥
< á´Š
+ < 'ɉ'
+ <<< 'Ɉ'
< Ê
<<< ᶨ
< ÉŸ
@@ -5802,6 +6069,8 @@
< ᶄ
< Æ™
<<< Ƙ
+ < 'ⱪ'
+ <<< 'Ⱪ'
< Êž
< l
<<< ł / ̵
@@ -5859,7 +6128,10 @@
< ᴌ
< Æš
<<< Ƚ
+ < 'ⱡ'
+ <<< 'â± '
< É«
+ <<< 'â±¢'
< ɬ
< ᶅ
<<< ᶪ
@@ -6107,12 +6379,14 @@
<<< ㉠/ Te
< á´˜
< áµ½
+ <<< 'â±£'
< áµ±
< ᶈ
< ƥ
<<< Ƥ
< ɸ
<<< ᶲ
+ < 'â±·'
< q
<<< q
<<< ȹ / p
@@ -6147,6 +6421,8 @@
= ðš€
<<< Ⓠ
< Ê 
+ < 'É‹'
+ <<< 'ÉŠ'
< ĸ
< r
<<< ï½’
@@ -6191,6 +6467,8 @@
< ʀ
<<< Ʀ
< á´™
+ < 'É'
+ <<< 'Ɍ'
< áµ²
< ɹ
<<< Ê´
@@ -6201,6 +6479,7 @@
<<< ʵ
< ɼ
< ɽ
+ <<< 'Ɽ'
< ɾ
< áµ³
< É¿
@@ -6305,7 +6584,8 @@
< á´›
< ŧ
<<< Ŧ
- < Ⱦ
+ < 'ⱦ'
+ <<< Ⱦ
< áµµ
< Æ«
<<< ᶵ
@@ -6358,6 +6638,7 @@
< á´ž
< ᵫ
< ʉ
+ <<< 'É„'
<<< ᶶ
< áµ¾
< ᶙ
@@ -6424,7 +6705,9 @@
< Ê‹
<<< Ʋ
<<< ᶹ
+ < 'â±´'
< ʌ
+ <<< 'É…'
<<< ᶺ
< w
<<< ï½—
@@ -6539,6 +6822,8 @@
<<< â“Ž
<<< ʸ
< Ê
+ < 'É'
+ <<< 'ÉŽ'
< Æ´
<<< Ƴ
< z
@@ -6587,6 +6872,8 @@
< Ê‘
<<< ᶽ
< ɀ
+ < 'ⱬ'
+ <<< 'Ⱬ'
< Ê’
<<< Æ·
<<< ᶾ
@@ -6610,6 +6897,7 @@
< Æ…
<<< Æ„
< Ê”
+ < 'É‚'
<<< É
< ˀ
< ʼ
@@ -6710,7 +6998,9 @@
= ðš
= ðž”
< Ï
+ <<< 'ðŸ‹'
<<< Ϝ
+ <<< 'ðŸŠ'
< Ï›
<<< Ïš
< ζ
@@ -6927,15 +7217,18 @@
= ðž¼
<<< Σ
<<< Ϲ
- <<< Ͼ / ཱྀ
<<< ðšº
= ð›´
= ðœ®
= ð¨
= ðž¢
<<< Ï‚
- < Ͻ
- <<< Ͽ / ཱྀ
+ < 'ͼ'
+ <<< Ͼ
+ < 'Í»'
+ <<< Ͻ
+ < 'ͽ'
+ <<< Ï¿
< Ï„
<<< ð›•
= ðœ
@@ -7161,6 +7454,8 @@
<<< Ò
< Ò“
<<< Ò’
+ < 'Ó»'
+ <<< 'Óº'
< Ò•
<<< Ò”
< Ó·
@@ -7195,6 +7490,8 @@
<<< З
< Ô…
<<< Ô„
+ < 'Ô‘'
+ <<< 'Ô'
< ÓŸ
<<< Óž
< Ñ•
@@ -7234,6 +7531,8 @@
< á´«
< Ó†
<<< Ó…
+ < 'Ô“'
+ <<< 'Ô’'
< Ñ™
<<< Љ
< Ô‰
@@ -7311,6 +7610,10 @@
<<< Ф
< Ñ…
<<< Х
+ < 'Ó½'
+ <<< 'Ó¼'
+ < 'Ó¿'
+ <<< 'Ó¾'
< Ò³
<<< Ò²
< Ò»
@@ -7389,7 +7692,8 @@
<<< Ѷ
< Ò©
<<< Ò¨
- < Ó€
+ < 'Ó'
+ <<< Ó€
< â°°
<<< â°€
< â°±
@@ -7731,6 +8035,28 @@
< ש
< ת
<<< ﬨ
+ < 'ð¤€'
+ < 'ð¤'
+ < 'ð¤‚'
+ < 'ð¤ƒ'
+ < 'ð¤„'
+ < 'ð¤…'
+ < 'ð¤†'
+ < 'ð¤‡'
+ < 'ð¤ˆ'
+ < 'ð¤‰'
+ < 'ð¤Š'
+ < 'ð¤‹'
+ < 'ð¤Œ'
+ < 'ð¤'
+ < 'ð¤Ž'
+ < 'ð¤'
+ < 'ð¤'
+ < 'ð¤‘'
+ < 'ð¤’'
+ < 'ð¤“'
+ < 'ð¤”'
+ < 'ð¤•'
< Ø¡
<<< Ù´
<<< ﺀ
@@ -8698,6 +9024,41 @@
< Þ®
< Þ¯
< Þ°
+ < 'ߊ'
+ < 'ß‹'
+ < 'ߌ'
+ < 'ß'
+ < 'ߎ'
+ < 'ß'
+ < 'ß'
+ < 'ß‘'
+ < 'ß’'
+ < 'ß“'
+ < 'ß”'
+ < 'ß•'
+ < 'ß–'
+ << 'ߨ'
+ < 'ß—'
+ << 'ß©'
+ < 'ߘ'
+ < 'ß™'
+ << 'ߪ'
+ < 'ßš'
+ < 'ß›'
+ < 'ߜ'
+ < 'ß'
+ < 'ßž'
+ < 'ߟ'
+ < 'ß '
+ < 'ß¡'
+ < 'ߢ'
+ < 'ߣ'
+ < 'ߤ'
+ < 'ߥ'
+ < 'ߦ'
+ < 'ߧ'
+ < 'ß´'
+ < 'ßµ'
< â´°
< â´±
< â´²
@@ -8748,11 +9109,11 @@
< ⵟ
< âµ 
< ⵡ
- <<< ⵯ
< âµ¢
< âµ£
< ⵤ
< âµ¥
+ < ⵯ
< ሀ
< áˆ
< ሂ
@@ -9197,16 +9558,19 @@
< क
< ख
< ग
+ < 'ॻ'
< घ
< ङ
< च
< छ
< ज
+ < 'ॼ'
< à¤
< ञ
< ट
< ठ
< ड
+ < 'ॾ'
< ढ
< ण
< त
@@ -9217,6 +9581,7 @@
< प
< फ
< ब
+ < 'ॿ'
< भ
< म
< य
@@ -9676,6 +10041,8 @@
< ೂ
< ೃ
< ೄ
+ < 'à³¢'
+ < 'à³£'
< ೆ
< ೇ
< ೈ
@@ -9751,8 +10118,8 @@
< ൊ
< ോ
< ൌ
- < àµ
< ൗ
+ < àµ
< අ
< ආ
< ඇ
@@ -10503,6 +10870,58 @@
< ོ
< ཽ
< ྄
+ < 'ê¡€'
+ < 'ê¡'
+ < 'ê¡‚'
+ < 'ꡃ'
+ < 'ê¡„'
+ < 'ê¡…'
+ < 'ꡆ'
+ < 'ꡇ'
+ < 'ê¡©'
+ < 'ꡪ'
+ < 'ê¡«'
+ < 'ꡬ'
+ < 'ꡈ'
+ < 'ꡉ'
+ < 'ê¡Š'
+ < 'ê¡‹'
+ < 'ꡌ'
+ < 'ê¡'
+ < 'ê¡Ž'
+ < 'ê¡'
+ < 'ê¡'
+ < 'ê¡‘'
+ < 'ê¡’'
+ < 'ê¡“'
+ < 'ꡧ'
+ < 'ê¡”'
+ < 'ê¡•'
+ < 'ê¡–'
+ < 'ê¡—'
+ < 'ꡨ'
+ < 'ê¡­'
+ < 'ꡘ'
+ < 'ꡱ'
+ < 'ꡲ'
+ < 'ê¡™'
+ < 'ê¡š'
+ < 'ê¡®'
+ < 'ê¡›'
+ < 'ꡜ'
+ < 'ꡯ'
+ < 'ê¡°'
+ < 'ê¡'
+ < 'ê¡¢'
+ < 'ê¡£'
+ < 'ꡤ'
+ < 'ê¡¥'
+ < 'ê¡ž'
+ < 'ê¡Ÿ'
+ < 'ê¡ '
+ < 'ê¡¡'
+ < 'ꡦ'
+ < 'ꡳ'
< ᤀ
< á¤
< ᤂ
@@ -10896,6 +11315,76 @@
< ᧇ
< ᧈ
< ᧉ
+ < 'ᬅ'
+ < 'ᬆ'
+ < 'ᬇ'
+ < 'ᬈ'
+ < 'ᬉ'
+ < 'ᬊ'
+ < 'ᬋ'
+ < 'ᬌ'
+ < 'á¬'
+ < 'ᬎ'
+ < 'á¬'
+ < 'á¬'
+ < 'ᬑ'
+ < 'ᬒ'
+ < 'ᬓ'
+ < 'á­…'
+ < 'á­†'
+ < 'ᬔ'
+ < 'ᬕ'
+ < 'ᬖ'
+ < 'ᬗ'
+ < 'ᬘ'
+ < 'ᬙ'
+ < 'ᬚ'
+ < 'ᬛ'
+ < 'ᬜ'
+ < 'á¬'
+ < 'ᬞ'
+ < 'ᬟ'
+ < 'ᬠ'
+ < 'ᬡ'
+ < 'ᬢ'
+ < 'á­‡'
+ < 'ᬣ'
+ < 'ᬤ'
+ < 'ᬥ'
+ < 'ᬦ'
+ < 'ᬧ'
+ < 'á­ˆ'
+ < 'ᬨ'
+ < 'ᬩ'
+ < 'ᬪ'
+ < 'ᬫ'
+ < 'ᬬ'
+ < 'ᬭ'
+ < 'ᬮ'
+ < 'ᬯ'
+ < 'á­‰'
+ < 'ᬰ'
+ < 'ᬱ'
+ < 'ᬲ'
+ < 'á­Š'
+ < 'á­‹'
+ < 'ᬳ'
+ < 'ᬵ'
+ < 'ᬶ'
+ < 'ᬷ'
+ < 'ᬸ'
+ < 'ᬹ'
+ < 'ᬺ'
+ < 'ᬻ'
+ < 'ᬼ'
+ < 'ᬽ'
+ < 'ᬾ'
+ < 'ᬿ'
+ < 'á­€'
+ < 'á­'
+ < 'á­‚'
+ < 'á­ƒ'
+ < 'á­„'
< ᢀ
< á¢
< ᢂ
@@ -14375,6 +14864,885 @@
< ð
< ðŽ
< ð
+ < 'ð’€€'
+ < 'ð’€'
+ < '𒀂'
+ < '𒀃'
+ < '𒀄'
+ < 'ð’€…'
+ < '𒀆'
+ < '𒀇'
+ < '𒀈'
+ < '𒀉'
+ < '𒀊'
+ < '𒀋'
+ < '𒀌'
+ < 'ð’€'
+ < '𒀎'
+ < 'ð’€'
+ < 'ð’€'
+ < '𒀑'
+ < 'ð’€’'
+ < '𒀓'
+ < 'ð’€”'
+ < '𒀕'
+ < 'ð’€–'
+ < 'ð’€—'
+ < '𒀘'
+ < 'ð’€™'
+ < '𒀚'
+ < 'ð’€›'
+ < '𒀜'
+ < 'ð’€'
+ < '𒀞'
+ < '𒀟'
+ < 'ð’€ '
+ < '𒀡'
+ < 'ð’€¢'
+ < 'ð’€£'
+ < '𒀤'
+ < 'ð’€¥'
+ < '𒀦'
+ < '𒀧'
+ < '𒀨'
+ < '𒀩'
+ < '𒀪'
+ < '𒀫'
+ < '𒀬'
+ < 'ð’€­'
+ < 'ð’€®'
+ < '𒀯'
+ < 'ð’€°'
+ < 'ð’€±'
+ < 'ð’€²'
+ < 'ð’€³'
+ < 'ð’€´'
+ < 'ð’€µ'
+ < '𒀶'
+ < 'ð’€·'
+ < '𒀸'
+ < 'ð’€¹'
+ < '𒀺'
+ < 'ð’€»'
+ < 'ð’€¼'
+ < 'ð’€½'
+ < 'ð’€¾'
+ < '𒀿'
+ < 'ð’€'
+ < 'ð’'
+ < 'ð’‚'
+ < 'ð’ƒ'
+ < 'ð’„'
+ < 'ð’…'
+ < 'ð’†'
+ < 'ð’‡'
+ < 'ð’ˆ'
+ < 'ð’‰'
+ < 'ð’Š'
+ < 'ð’‹'
+ < 'ð’Œ'
+ < 'ð’'
+ < 'ð’Ž'
+ < 'ð’'
+ < 'ð’'
+ < 'ð’‘'
+ < 'ð’’'
+ < 'ð’“'
+ < 'ð’”'
+ < 'ð’•'
+ < 'ð’–'
+ < 'ð’—'
+ < 'ð’˜'
+ < 'ð’™'
+ < 'ð’š'
+ < 'ð’›'
+ < 'ð’œ'
+ < 'ð’'
+ < 'ð’ž'
+ < 'ð’Ÿ'
+ < 'ð’ '
+ < 'ð’¡'
+ < 'ð’¢'
+ < 'ð’£'
+ < 'ð’¤'
+ < 'ð’¥'
+ < 'ð’¦'
+ < 'ð’§'
+ < 'ð’¨'
+ < 'ð’©'
+ < 'ð’ª'
+ < 'ð’«'
+ < 'ð’¬'
+ < 'ð’­'
+ < 'ð’®'
+ < 'ð’¯'
+ < 'ð’°'
+ < 'ð’±'
+ < 'ð’²'
+ < 'ð’³'
+ < 'ð’´'
+ < 'ð’µ'
+ < 'ð’¶'
+ < 'ð’·'
+ < 'ð’¸'
+ < 'ð’¹'
+ < 'ð’º'
+ < 'ð’»'
+ < 'ð’¼'
+ < 'ð’½'
+ < 'ð’¾'
+ < 'ð’¿'
+ < 'ð’‚€'
+ < 'ð’‚'
+ < 'ð’‚‚'
+ < '𒂃'
+ < 'ð’‚„'
+ < 'ð’‚…'
+ < '𒂆'
+ < '𒂇'
+ < '𒂈'
+ < '𒂉'
+ < 'ð’‚Š'
+ < 'ð’‚‹'
+ < '𒂌'
+ < 'ð’‚'
+ < 'ð’‚Ž'
+ < 'ð’‚'
+ < 'ð’‚'
+ < 'ð’‚‘'
+ < 'ð’‚’'
+ < 'ð’‚“'
+ < 'ð’‚”'
+ < 'ð’‚•'
+ < 'ð’‚–'
+ < 'ð’‚—'
+ < '𒂘'
+ < 'ð’‚™'
+ < 'ð’‚š'
+ < 'ð’‚›'
+ < '𒂜'
+ < 'ð’‚'
+ < 'ð’‚ž'
+ < 'ð’‚Ÿ'
+ < 'ð’‚ '
+ < 'ð’‚¡'
+ < 'ð’‚¢'
+ < 'ð’‚£'
+ < '𒂤'
+ < 'ð’‚¥'
+ < '𒂦'
+ < '𒂧'
+ < '𒂨'
+ < 'ð’‚©'
+ < '𒂪'
+ < 'ð’‚«'
+ < '𒂬'
+ < 'ð’‚­'
+ < 'ð’‚®'
+ < '𒂯'
+ < 'ð’‚°'
+ < 'ð’‚±'
+ < 'ð’‚²'
+ < 'ð’‚³'
+ < 'ð’‚´'
+ < 'ð’‚µ'
+ < '𒂶'
+ < 'ð’‚·'
+ < '𒂸'
+ < 'ð’‚¹'
+ < '𒂺'
+ < 'ð’‚»'
+ < 'ð’‚¼'
+ < 'ð’‚½'
+ < 'ð’‚¾'
+ < 'ð’‚¿'
+ < '𒃀'
+ < 'ð’ƒ'
+ < '𒃂'
+ < '𒃃'
+ < '𒃄'
+ < 'ð’ƒ…'
+ < '𒃆'
+ < '𒃇'
+ < '𒃈'
+ < '𒃉'
+ < '𒃊'
+ < '𒃋'
+ < '𒃌'
+ < 'ð’ƒ'
+ < '𒃎'
+ < 'ð’ƒ'
+ < 'ð’ƒ'
+ < '𒃑'
+ < 'ð’ƒ’'
+ < '𒃓'
+ < '𒃔'
+ < '𒃕'
+ < 'ð’ƒ–'
+ < 'ð’ƒ—'
+ < '𒃘'
+ < '𒃙'
+ < '𒃚'
+ < '𒃛'
+ < '𒃜'
+ < 'ð’ƒ'
+ < '𒃞'
+ < '𒃟'
+ < 'ð’ƒ '
+ < '𒃡'
+ < '𒃢'
+ < '𒃣'
+ < '𒃤'
+ < '𒃥'
+ < '𒃦'
+ < '𒃧'
+ < '𒃨'
+ < '𒃩'
+ < '𒃪'
+ < '𒃫'
+ < '𒃬'
+ < 'ð’ƒ­'
+ < '𒃮'
+ < '𒃯'
+ < 'ð’ƒ°'
+ < '𒃱'
+ < '𒃲'
+ < '𒃳'
+ < 'ð’ƒ´'
+ < '𒃵'
+ < '𒃶'
+ < 'ð’ƒ·'
+ < '𒃸'
+ < '𒃹'
+ < '𒃺'
+ < '𒃻'
+ < '𒃼'
+ < '𒃽'
+ < '𒃾'
+ < '𒃿'
+ < 'ð’„€'
+ < 'ð’„'
+ < 'ð’„‚'
+ < '𒄃'
+ < 'ð’„„'
+ < 'ð’„…'
+ < '𒄆'
+ < '𒄇'
+ < '𒄈'
+ < '𒄉'
+ < 'ð’„Š'
+ < 'ð’„‹'
+ < '𒄌'
+ < 'ð’„'
+ < 'ð’„Ž'
+ < 'ð’„'
+ < 'ð’„'
+ < 'ð’„‘'
+ < 'ð’„’'
+ < 'ð’„“'
+ < 'ð’„”'
+ < 'ð’„•'
+ < 'ð’„–'
+ < 'ð’„—'
+ < '𒄘'
+ < 'ð’„™'
+ < 'ð’„š'
+ < 'ð’„›'
+ < '𒄜'
+ < 'ð’„'
+ < 'ð’„ž'
+ < 'ð’„Ÿ'
+ < 'ð’„ '
+ < 'ð’„¡'
+ < 'ð’„¢'
+ < 'ð’„£'
+ < '𒄤'
+ < 'ð’„¥'
+ < '𒄦'
+ < '𒄧'
+ < '𒄨'
+ < 'ð’„©'
+ < '𒄪'
+ < 'ð’„«'
+ < '𒄬'
+ < 'ð’„­'
+ < 'ð’„®'
+ < '𒄯'
+ < 'ð’„°'
+ < 'ð’„±'
+ < 'ð’„²'
+ < 'ð’„³'
+ < 'ð’„´'
+ < 'ð’„µ'
+ < '𒄶'
+ < 'ð’„·'
+ < '𒄸'
+ < 'ð’„¹'
+ < '𒄺'
+ < 'ð’„»'
+ < 'ð’„¼'
+ < 'ð’„½'
+ < 'ð’„¾'
+ < 'ð’„¿'
+ < 'ð’…€'
+ < 'ð’…'
+ < 'ð’…‚'
+ < 'ð’…ƒ'
+ < 'ð’…„'
+ < 'ð’……'
+ < 'ð’…†'
+ < 'ð’…‡'
+ < 'ð’…ˆ'
+ < 'ð’…‰'
+ < 'ð’…Š'
+ < 'ð’…‹'
+ < '𒅌'
+ < 'ð’…'
+ < 'ð’…Ž'
+ < 'ð’…'
+ < 'ð’…'
+ < 'ð’…‘'
+ < 'ð’…’'
+ < 'ð’…“'
+ < 'ð’…”'
+ < 'ð’…•'
+ < 'ð’…–'
+ < 'ð’…—'
+ < 'ð’…˜'
+ < 'ð’…™'
+ < 'ð’…š'
+ < 'ð’…›'
+ < '𒅜'
+ < 'ð’…'
+ < 'ð’…ž'
+ < 'ð’…Ÿ'
+ < 'ð’… '
+ < 'ð’…¡'
+ < 'ð’…¢'
+ < 'ð’…£'
+ < 'ð’…¤'
+ < 'ð’…¥'
+ < 'ð’…¦'
+ < 'ð’…§'
+ < 'ð’…¨'
+ < 'ð’…©'
+ < 'ð’…ª'
+ < 'ð’…«'
+ < 'ð’…¬'
+ < 'ð’…­'
+ < 'ð’…®'
+ < 'ð’…¯'
+ < 'ð’…°'
+ < 'ð’…±'
+ < 'ð’…²'
+ < 'ð’…³'
+ < 'ð’…´'
+ < 'ð’…µ'
+ < 'ð’…¶'
+ < 'ð’…·'
+ < 'ð’…¸'
+ < 'ð’…¹'
+ < 'ð’…º'
+ < 'ð’…»'
+ < 'ð’…¼'
+ < 'ð’…½'
+ < 'ð’…¾'
+ < 'ð’…¿'
+ < '𒆀'
+ < 'ð’†'
+ < '𒆂'
+ < '𒆃'
+ < '𒆄'
+ < 'ð’†…'
+ < '𒆆'
+ < '𒆇'
+ < '𒆈'
+ < '𒆉'
+ < '𒆊'
+ < '𒆋'
+ < '𒆌'
+ < 'ð’†'
+ < '𒆎'
+ < 'ð’†'
+ < 'ð’†'
+ < '𒆑'
+ < 'ð’†’'
+ < '𒆓'
+ < '𒆔'
+ < '𒆕'
+ < 'ð’†–'
+ < 'ð’†—'
+ < '𒆘'
+ < '𒆙'
+ < '𒆚'
+ < '𒆛'
+ < '𒆜'
+ < 'ð’†'
+ < '𒆞'
+ < '𒆟'
+ < 'ð’† '
+ < '𒆡'
+ < '𒆢'
+ < '𒆣'
+ < '𒆤'
+ < '𒆥'
+ < '𒆦'
+ < '𒆧'
+ < '𒆨'
+ < '𒆩'
+ < '𒆪'
+ < '𒆫'
+ < '𒆬'
+ < 'ð’†­'
+ < '𒆮'
+ < '𒆯'
+ < 'ð’†°'
+ < '𒆱'
+ < '𒆲'
+ < '𒆳'
+ < 'ð’†´'
+ < '𒆵'
+ < '𒆶'
+ < 'ð’†·'
+ < '𒆸'
+ < '𒆹'
+ < '𒆺'
+ < '𒆻'
+ < '𒆼'
+ < '𒆽'
+ < '𒆾'
+ < '𒆿'
+ < '𒇀'
+ < 'ð’‡'
+ < '𒇂'
+ < '𒇃'
+ < '𒇄'
+ < 'ð’‡…'
+ < '𒇆'
+ < '𒇇'
+ < '𒇈'
+ < '𒇉'
+ < '𒇊'
+ < '𒇋'
+ < '𒇌'
+ < 'ð’‡'
+ < '𒇎'
+ < 'ð’‡'
+ < 'ð’‡'
+ < '𒇑'
+ < 'ð’‡’'
+ < '𒇓'
+ < '𒇔'
+ < '𒇕'
+ < 'ð’‡–'
+ < 'ð’‡—'
+ < '𒇘'
+ < '𒇙'
+ < '𒇚'
+ < '𒇛'
+ < '𒇜'
+ < 'ð’‡'
+ < '𒇞'
+ < '𒇟'
+ < 'ð’‡ '
+ < '𒇡'
+ < '𒇢'
+ < '𒇣'
+ < '𒇤'
+ < '𒇥'
+ < '𒇦'
+ < '𒇧'
+ < '𒇨'
+ < '𒇩'
+ < '𒇪'
+ < '𒇫'
+ < '𒇬'
+ < 'ð’‡­'
+ < '𒇮'
+ < '𒇯'
+ < 'ð’‡°'
+ < '𒇱'
+ < '𒇲'
+ < '𒇳'
+ < 'ð’‡´'
+ < '𒇵'
+ < '𒇶'
+ < 'ð’‡·'
+ < '𒇸'
+ < '𒇹'
+ < '𒇺'
+ < '𒇻'
+ < '𒇼'
+ < '𒇽'
+ < '𒇾'
+ < '𒇿'
+ < '𒈀'
+ < 'ð’ˆ'
+ < '𒈂'
+ < '𒈃'
+ < '𒈄'
+ < 'ð’ˆ…'
+ < '𒈆'
+ < '𒈇'
+ < '𒈈'
+ < '𒈉'
+ < '𒈊'
+ < '𒈋'
+ < '𒈌'
+ < 'ð’ˆ'
+ < '𒈎'
+ < 'ð’ˆ'
+ < 'ð’ˆ'
+ < '𒈑'
+ < 'ð’ˆ’'
+ < '𒈓'
+ < '𒈔'
+ < '𒈕'
+ < 'ð’ˆ–'
+ < 'ð’ˆ—'
+ < '𒈘'
+ < '𒈙'
+ < '𒈚'
+ < '𒈛'
+ < '𒈜'
+ < 'ð’ˆ'
+ < '𒈞'
+ < '𒈟'
+ < 'ð’ˆ '
+ < '𒈡'
+ < '𒈢'
+ < '𒈣'
+ < '𒈤'
+ < '𒈥'
+ < '𒈦'
+ < '𒈧'
+ < '𒈨'
+ < '𒈩'
+ < '𒈪'
+ < '𒈫'
+ < '𒈬'
+ < 'ð’ˆ­'
+ < '𒈮'
+ < '𒈯'
+ < 'ð’ˆ°'
+ < '𒈱'
+ < '𒈲'
+ < '𒈳'
+ < 'ð’ˆ´'
+ < '𒈵'
+ < '𒈶'
+ < 'ð’ˆ·'
+ < '𒈸'
+ < '𒈹'
+ < '𒈺'
+ < '𒈻'
+ < '𒈼'
+ < '𒈽'
+ < '𒈾'
+ < '𒈿'
+ < '𒉀'
+ < 'ð’‰'
+ < '𒉂'
+ < '𒉃'
+ < '𒉄'
+ < 'ð’‰…'
+ < '𒉆'
+ < '𒉇'
+ < '𒉈'
+ < '𒉉'
+ < '𒉊'
+ < '𒉋'
+ < '𒉌'
+ < 'ð’‰'
+ < '𒉎'
+ < 'ð’‰'
+ < 'ð’‰'
+ < '𒉑'
+ < 'ð’‰’'
+ < '𒉓'
+ < '𒉔'
+ < '𒉕'
+ < 'ð’‰–'
+ < 'ð’‰—'
+ < '𒉘'
+ < '𒉙'
+ < '𒉚'
+ < '𒉛'
+ < '𒉜'
+ < 'ð’‰'
+ < '𒉞'
+ < '𒉟'
+ < 'ð’‰ '
+ < '𒉡'
+ < '𒉢'
+ < '𒉣'
+ < '𒉤'
+ < '𒉥'
+ < '𒉦'
+ < '𒉧'
+ < '𒉨'
+ < '𒉩'
+ < '𒉪'
+ < '𒉫'
+ < '𒉬'
+ < 'ð’‰­'
+ < '𒉮'
+ < '𒉯'
+ < 'ð’‰°'
+ < '𒉱'
+ < '𒉲'
+ < '𒉳'
+ < 'ð’‰´'
+ < '𒉵'
+ < '𒉶'
+ < 'ð’‰·'
+ < '𒉸'
+ < '𒉹'
+ < '𒉺'
+ < '𒉻'
+ < '𒉼'
+ < '𒉽'
+ < '𒉾'
+ < '𒉿'
+ < 'ð’Š€'
+ < 'ð’Š'
+ < 'ð’Š‚'
+ < '𒊃'
+ < 'ð’Š„'
+ < 'ð’Š…'
+ < '𒊆'
+ < '𒊇'
+ < '𒊈'
+ < '𒊉'
+ < 'ð’ŠŠ'
+ < 'ð’Š‹'
+ < '𒊌'
+ < 'ð’Š'
+ < 'ð’ŠŽ'
+ < 'ð’Š'
+ < 'ð’Š'
+ < 'ð’Š‘'
+ < 'ð’Š’'
+ < 'ð’Š“'
+ < 'ð’Š”'
+ < 'ð’Š•'
+ < 'ð’Š–'
+ < 'ð’Š—'
+ < '𒊘'
+ < 'ð’Š™'
+ < 'ð’Šš'
+ < 'ð’Š›'
+ < '𒊜'
+ < 'ð’Š'
+ < 'ð’Šž'
+ < 'ð’ŠŸ'
+ < 'ð’Š '
+ < 'ð’Š¡'
+ < 'ð’Š¢'
+ < 'ð’Š£'
+ < '𒊤'
+ < 'ð’Š¥'
+ < '𒊦'
+ < '𒊧'
+ < '𒊨'
+ < 'ð’Š©'
+ < '𒊪'
+ < 'ð’Š«'
+ < '𒊬'
+ < 'ð’Š­'
+ < 'ð’Š®'
+ < '𒊯'
+ < 'ð’Š°'
+ < '𒊱'
+ < '𒊲'
+ < '𒊳'
+ < 'ð’Š´'
+ < '𒊵'
+ < '𒊶'
+ < 'ð’Š·'
+ < '𒊸'
+ < '𒊹'
+ < '𒊺'
+ < 'ð’Š»'
+ < '𒊼'
+ < '𒊽'
+ < '𒊾'
+ < 'ð’Š¿'
+ < 'ð’‹€'
+ < 'ð’‹'
+ < 'ð’‹‚'
+ < '𒋃'
+ < 'ð’‹„'
+ < 'ð’‹…'
+ < '𒋆'
+ < '𒋇'
+ < '𒋈'
+ < '𒋉'
+ < 'ð’‹Š'
+ < 'ð’‹‹'
+ < '𒋌'
+ < 'ð’‹'
+ < 'ð’‹Ž'
+ < 'ð’‹'
+ < 'ð’‹'
+ < 'ð’‹‘'
+ < 'ð’‹’'
+ < 'ð’‹“'
+ < 'ð’‹”'
+ < 'ð’‹•'
+ < 'ð’‹–'
+ < 'ð’‹—'
+ < '𒋘'
+ < 'ð’‹™'
+ < 'ð’‹š'
+ < 'ð’‹›'
+ < '𒋜'
+ < 'ð’‹'
+ < 'ð’‹ž'
+ < 'ð’‹Ÿ'
+ < 'ð’‹ '
+ < 'ð’‹¡'
+ < 'ð’‹¢'
+ < 'ð’‹£'
+ < '𒋤'
+ < 'ð’‹¥'
+ < '𒋦'
+ < '𒋧'
+ < '𒋨'
+ < 'ð’‹©'
+ < '𒋪'
+ < 'ð’‹«'
+ < '𒋬'
+ < 'ð’‹­'
+ < 'ð’‹®'
+ < '𒋯'
+ < 'ð’‹°'
+ < 'ð’‹±'
+ < 'ð’‹²'
+ < 'ð’‹³'
+ < 'ð’‹´'
+ < 'ð’‹µ'
+ < '𒋶'
+ < 'ð’‹·'
+ < '𒋸'
+ < 'ð’‹¹'
+ < '𒋺'
+ < 'ð’‹»'
+ < 'ð’‹¼'
+ < 'ð’‹½'
+ < 'ð’‹¾'
+ < 'ð’‹¿'
+ < '𒌀'
+ < 'ð’Œ'
+ < '𒌂'
+ < '𒌃'
+ < '𒌄'
+ < '𒌅'
+ < '𒌆'
+ < '𒌇'
+ < '𒌈'
+ < '𒌉'
+ < '𒌊'
+ < '𒌋'
+ < '𒌌'
+ < 'ð’Œ'
+ < '𒌎'
+ < 'ð’Œ'
+ < 'ð’Œ'
+ < '𒌑'
+ < '𒌒'
+ < '𒌓'
+ < '𒌔'
+ < '𒌕'
+ < '𒌖'
+ < '𒌗'
+ < '𒌘'
+ < '𒌙'
+ < '𒌚'
+ < '𒌛'
+ < '𒌜'
+ < 'ð’Œ'
+ < '𒌞'
+ < '𒌟'
+ < '𒌠'
+ < '𒌡'
+ < '𒌢'
+ < '𒌣'
+ < '𒌤'
+ < '𒌥'
+ < '𒌦'
+ < '𒌧'
+ < '𒌨'
+ < '𒌩'
+ < '𒌪'
+ < '𒌫'
+ < '𒌬'
+ < '𒌭'
+ < '𒌮'
+ < '𒌯'
+ < '𒌰'
+ < '𒌱'
+ < '𒌲'
+ < '𒌳'
+ < '𒌴'
+ < '𒌵'
+ < '𒌶'
+ < '𒌷'
+ < '𒌸'
+ < '𒌹'
+ < '𒌺'
+ < '𒌻'
+ < '𒌼'
+ < '𒌽'
+ < '𒌾'
+ < '𒌿'
+ < 'ð’€'
+ < 'ð’'
+ < 'ð’‚'
+ < 'ð’ƒ'
+ < 'ð’„'
+ < 'ð’…'
+ < 'ð’†'
+ < 'ð’‡'
+ < 'ð’ˆ'
+ < 'ð’‰'
+ < 'ð’Š'
+ < 'ð’‹'
+ < 'ð’Œ'
+ < 'ð’'
+ < 'ð’Ž'
+ < 'ð’'
+ < 'ð’'
+ < 'ð’‘'
+ < 'ð’’'
+ < 'ð’“'
+ < 'ð’”'
+ < 'ð’•'
+ < 'ð’–'
+ < 'ð’—'
+ < 'ð’˜'
+ < 'ð’™'
+ < 'ð’š'
+ < 'ð’›'
+ < 'ð’œ'
+ < 'ð’'
+ < 'ð’ž'
+ < 'ð’Ÿ'
+ < 'ð’ '
+ < 'ð’¡'
+ < 'ð’¢'
+ < 'ð’£'
+ < 'ð’¤'
+ < 'ð’¥'
+ < 'ð’¦'
+ < 'ð’§'
+ < 'ð’¨'
+ < 'ð’©'
+ < 'ð’ª'
+ < 'ð’«'
+ < 'ð’¬'
+ < 'ð’­'
+ < 'ð’®'
& 一
<<< â¼€
<<< ㊀
diff --git a/Build/source/libs/icu-xetex/data/unidata/UnicodeData.txt b/Build/source/libs/icu-xetex/data/unidata/UnicodeData.txt
index f314186b29c..299f0e57d17 100644
--- a/Build/source/libs/icu-xetex/data/unidata/UnicodeData.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/UnicodeData.txt
@@ -382,7 +382,7 @@
017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
-0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;;;
+0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243
0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
@@ -568,14 +568,28 @@
0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;
0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;
0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;
-023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;;
+023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;
023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;
023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B
023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;
-023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;;
+023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;
023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;;;
-0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0294;
+0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;
+0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
+0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;
+0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;
+0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;
+0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;
+0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246
+0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;
+0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
+024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;
+024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A
+024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;
+024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C
+024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;
+024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E
0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;;
0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;;
0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;;
@@ -603,7 +617,7 @@
0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
-026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
+026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
@@ -621,7 +635,7 @@
027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
-027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;;;
+027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64
027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6
@@ -633,10 +647,10 @@
0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
-0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;;;
+0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
-028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;;;
+028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245
028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
@@ -644,7 +658,7 @@
0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
-0294;LATIN LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
+0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
@@ -867,6 +881,9 @@
0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;;
0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;;
037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
+037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD
+037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
+037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;;
0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
@@ -985,9 +1002,9 @@
03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;
03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA
03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;
-03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;;
-03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;;
-03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;;
+03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;
+03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;
+03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;
0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452;
@@ -1179,7 +1196,7 @@
04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
-04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;;
+04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;
04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
@@ -1194,6 +1211,7 @@
04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
+04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0
04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
@@ -1236,6 +1254,12 @@
04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6
04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
+04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;
+04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA
+04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;
+04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC
+04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;
+04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE
0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
@@ -1252,6 +1276,10 @@
050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
+0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;
+0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510
+0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;
+0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512
0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
@@ -1379,6 +1407,7 @@
05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
+05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;
05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;;
05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;;
@@ -1816,6 +1845,65 @@
07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
+07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
+07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
+07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
+07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;
+07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;
+07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;
+07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;
+07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;
+07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;
+07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
+07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;
+07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;
+07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;
+07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;
+07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;
+07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;
+07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;
+07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;
+07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;
+07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;
+07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;
+07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;
+07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;
+07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;
+07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;
+07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;
+07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;
+07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;
+07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;
+07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;
+07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;
+07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;
+07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;
+07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;
+07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;
+07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;
+07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;
+07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;
+07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;
+07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;
+07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;
+07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;
+07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;
+07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;
+07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;
+07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;
+07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
+07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
+07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;
+07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;
+07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
+07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -1921,7 +2009,11 @@
096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
+097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
+097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
+097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
@@ -2477,6 +2569,8 @@
0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -2487,6 +2581,8 @@
0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0CF1;KANNADA SIGN JIHVAMULIYA;So;0;ON;;;;;N;;;;;
+0CF2;KANNADA SIGN UPADHMANIYA;So;0;ON;;;;;N;;;;;
0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
@@ -2855,10 +2951,10 @@
0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;;
0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;;
0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;;
-0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;N;;gug ta yun;;;
-0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;N;;gug ta ye;;;
-0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;N;TIBETAN LEFT BRACE;ang kang yun;;;
-0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;N;TIBETAN RIGHT BRACE;ang kang ye;;;
+0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;gug ta yun;;;
+0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;gug ta ye;;;
+0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;ang kang yun;;;
+0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;ang kang ye;;;
0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;;
0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;;
0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
@@ -4517,8 +4613,8 @@
1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
-169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;N;;;;;
-169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;N;;;;;
+169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;
+169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;
16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
@@ -5193,6 +5289,127 @@
1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
+1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;ardhacandra;;;
+1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;candrabindu;;;
+1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;anusvara;;;
+1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;repha;;;
+1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;visarga;;;
+1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;a;;;
+1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;aa;;;
+1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;i;;;
+1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;ii;;;
+1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;u;;;
+1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;uu;;;
+1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;vocalic r;;;
+1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;vocalic rr;;;
+1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;vocalic l;;;
+1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;vocalic ll;;;
+1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;e;;;
+1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;ai;;;
+1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;o;;;
+1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;au;;;
+1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;
+1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;kha;;;
+1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;
+1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;gha;;;
+1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
+1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;
+1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;cha;;;
+1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;
+1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;jha;;;
+1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
+1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;tta;;;
+1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ttha;;;
+1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;dda;;;
+1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;ddha;;;
+1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;nna;;;
+1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;
+1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;tha;;;
+1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;
+1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;dha;;;
+1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;
+1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;
+1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;pha;;;
+1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;
+1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;bha;;;
+1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;
+1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;
+1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;
+1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;
+1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;
+1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;sha;;;
+1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;ssa;;;
+1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;
+1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;
+1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;nukta;;;
+1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;aa;;;
+1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;i;;;
+1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;ii;;;
+1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;u;;;
+1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;uu;;;
+1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;vocalic r;;;
+1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;vocalic rr;;;
+1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;vocalic l;;;
+1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;vocalic ll;;;
+1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;e;;;
+1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;ai;;;
+1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;o;;;
+1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;au;;;
+1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;ae;;;
+1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;oe;;;
+1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;virama;;;
+1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;
+1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;
+1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;
+1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;
+1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
+1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
+1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
+1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1B5A;BALINESE PANTI;Po;0;L;;;;;N;;section;;;
+1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;honorific section;;;
+1B5C;BALINESE WINDU;Po;0;L;;;;;N;;punctuation ring;;;
+1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;colon;;;
+1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;danda;;;
+1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;double danda;;;
+1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;line-breaking hyphen;;;
+1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;
+1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;
+1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;
+1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;
+1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;
+1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;
+1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;
+1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;
+1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;
+1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;
+1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;
+1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;
+1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;
+1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;
+1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
+1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;
+1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;
+1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;
+1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;
+1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;
+1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;
+1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;
+1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;
+1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
+1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
+1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
@@ -5318,7 +5535,7 @@
1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;
1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;
1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;;;
+1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63
1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;
1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;
1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
@@ -5389,6 +5606,15 @@
1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;
1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;
+1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;
+1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
+1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
+1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;
+1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
@@ -5892,14 +6118,14 @@
2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
-2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;;
-2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;
-201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;;
-201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;;
-201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;;
-201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;;
-201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;;
-201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
+2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE TURNED COMMA QUOTATION MARK;;;;
+2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;Y;SINGLE COMMA QUOTATION MARK;;;;
+201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW SINGLE COMMA QUOTATION MARK;;;;
+201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;SINGLE REVERSED COMMA QUOTATION MARK;;;;
+201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE TURNED COMMA QUOTATION MARK;;;;
+201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;Y;DOUBLE COMMA QUOTATION MARK;;;;
+201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;Y;LOW DOUBLE COMMA QUOTATION MARK;;;;
+201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;Y;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
2020;DAGGER;Po;0;ON;;;;;N;;;;;
2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
2022;BULLET;Po;0;ON;;;;;N;;;;;
@@ -6058,6 +6284,10 @@
20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
+20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
+20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
+20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
@@ -6108,7 +6338,7 @@
212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
-2132;TURNED CAPITAL F;So;0;ON;;;;;N;TURNED F;;;;
+2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;
2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
@@ -6135,6 +6365,8 @@
214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
214C;PER SIGN;So;0;ON;;;;;N;;;;;
+214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;
+214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132
2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
@@ -6183,7 +6415,8 @@
2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
-2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Nl;0;L;;;;;N;;;;;
+2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;
+2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183
2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
@@ -6732,9 +6965,9 @@
23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
-23B4;TOP SQUARE BRACKET;Ps;0;ON;;;;;N;;;;;
-23B5;BOTTOM SQUARE BRACKET;Pe;0;ON;;;;;N;;;;;
-23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;Po;0;ON;;;;;N;;;;;
+23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;
+23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
@@ -6772,6 +7005,18 @@
23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;
23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;
23DB;FUSE;So;0;ON;;;;;N;;;;;
+23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;mathematical use;;;
+23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;mathematical use;;;
+23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;
+23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;
+23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;
+23E5;FLATNESS;So;0;ON;;;;;N;;;;;
+23E6;AC CURRENT;So;0;ON;;;;;N;;;;;
+23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;
2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
@@ -7413,6 +7658,7 @@
26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;
26B0;COFFIN;So;0;ON;;;;;N;;;;;
26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;
+26B2;NEUTER;So;0;ON;;;;;N;;;;;
2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
@@ -7594,6 +7840,10 @@
27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;
27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;
27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;
+27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;
+27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;N;;;;;
+27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;N;;;;;
+27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
@@ -8426,6 +8676,17 @@
2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
+2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
+2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
+2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
+2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;
+2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;
+2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;
+2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;
+2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;
2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
@@ -8520,6 +8781,23 @@
2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
+2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
+2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
+2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
+2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;
+2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;
+2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A
+2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E
+2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;
+2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67
+2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;
+2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69
+2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;
+2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B
+2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;
+2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;
+2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75
+2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;
2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;
2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80
2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;
@@ -9202,9 +9480,9 @@
301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
-301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
-301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
-301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
+301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;Y;;;;;
+301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
+301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;Y;;;;;
3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
@@ -11441,6 +11719,12 @@ A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
+A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;
+A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;
+A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;
+A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;
+A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;
+A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;
A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;
A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;
A802;SYLOTI NAGRI SIGN DVISVARA;Mc;0;NSM;;;;;N;;;;;
@@ -11485,6 +11769,62 @@ A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
+A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;
+A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;
+A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;
+A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;
+A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;
+A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;
+A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;
+A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;
+A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;
+A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;
+A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;
+A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;
+A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;
+A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;
+A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;
+A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;
+A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;
+A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;
+A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;
+A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;
+A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;
+A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;
+A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
+A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;
+A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;
+A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;
+A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;
+A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;
+A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;
+A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;
+A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;
+A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;
+A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;
+A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;
+A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;
+A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;
+A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;
+A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;
+A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;
+A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;
+A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;
+A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;
+A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;
+A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;
+A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;
+A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;
+A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;
+A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;
+A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;
+A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;
+A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;
+A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;
+A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;
+A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;
AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
@@ -12685,19 +13025,19 @@ FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
-FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;N;SMALL OPENING PARENTHESIS;;;;
-FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;N;SMALL CLOSING PARENTHESIS;;;;
-FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;N;SMALL OPENING CURLY BRACKET;;;;
-FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;;
-FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;;
-FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
+FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;
+FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;
+FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;
+FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;
+FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;
+FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;
FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;
-FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;N;;;;;
-FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;N;;;;;
+FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;
+FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;
FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
@@ -13469,7 +13809,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;
1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;
10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;
-10341;GOTHIC LETTER NINETY;Lo;0;L;;;;;N;;;;;
+10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;
10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;
10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;
10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;
@@ -13554,12 +13894,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;
103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;
103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;
-103D0;OLD PERSIAN WORD DIVIDER;So;0;L;;;;;N;;;;;
-103D1;OLD PERSIAN NUMBER ONE;Nl;0;ON;;;;1;N;;;;;
-103D2;OLD PERSIAN NUMBER TWO;Nl;0;ON;;;;2;N;;;;;
-103D3;OLD PERSIAN NUMBER TEN;Nl;0;ON;;;;10;N;;;;;
-103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;ON;;;;20;N;;;;;
-103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;ON;;;;100;N;;;;;
+103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;
+103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;
+103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;
+103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;
+103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;
10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;
10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;
@@ -13783,6 +14123,33 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;
1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;
1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;
+10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
+10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
+10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
+10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;
+10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;
+10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;
+10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;
+10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;
+10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;
+10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;
+1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
+1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;
+1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
+1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
+1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;
+1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
+10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;
+10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;
+10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;
+10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;
+10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;
+10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
+10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
+10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
+10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
+1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;
10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
@@ -13848,6 +14215,988 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
+12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
+12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
+12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
+12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;
+12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;
+12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;
+12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;
+12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;
+1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;
+1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;
+1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;
+12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;
+12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;
+12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;
+12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;
+12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;
+1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;
+1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;
+1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;
+12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;
+12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;
+12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;
+12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;
+12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;
+12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;
+12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;
+12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;
+12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;
+1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;
+1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;
+1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;
+1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;
+1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;
+12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;
+12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;
+12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;
+12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;
+12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;
+12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
+12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
+12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
+12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
+1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
+1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
+1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;
+1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;
+12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;
+12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;
+12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;
+12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;
+12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;
+12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;
+12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;
+12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;
+12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;
+12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;
+1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;
+1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;
+1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;
+1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;
+1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;
+12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;
+12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;
+12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;
+12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;
+12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;
+12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;
+12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;
+12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;
+12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;
+12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;
+1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;
+1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;
+1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;
+1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;
+12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;
+12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;
+12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;
+12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;
+12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;
+12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;
+12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;
+12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;
+12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;
+1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;
+1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;
+1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;
+1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;
+1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;
+12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;
+12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;
+12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;
+12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;
+12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;
+12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
+12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
+12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
+12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
+1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
+1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
+1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
+1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;
+1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;
+1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;
+12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;
+12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;
+12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;
+12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;
+12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;
+12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;
+12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;
+1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;
+1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;
+1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;
+1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;
+1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;
+12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;
+12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;
+12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;
+12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;
+12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;
+12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;
+12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;
+1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;
+1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;
+1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;
+1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;
+1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;
+120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;
+120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;
+120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;
+120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;
+120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;
+120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
+120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
+120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;
+120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;
+120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;
+120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;
+120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;
+120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;
+120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;
+120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;
+120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;
+120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;
+120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;
+120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;
+120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;
+120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;
+120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;
+120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;
+120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;
+120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;
+120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
+120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;
+120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;
+120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;
+120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;
+120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;
+120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;
+120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;
+120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;
+120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;
+120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;
+120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;
+120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;
+120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;
+120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;
+120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;
+120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;
+120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;
+120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;
+120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;
+120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;
+120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;
+120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;
+120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;
+120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;
+120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;
+120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
+120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;
+120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;
+120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;
+120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;
+120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;
+120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;
+120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;
+120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;
+120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;
+120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;
+120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;
+120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;
+120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;
+120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;
+120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;
+120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;
+120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;
+120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;
+120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;
+120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;
+12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;
+12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;
+12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;
+12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;
+12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;
+12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;
+12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;
+12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;
+12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;
+12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;
+1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;
+1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;
+1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;
+1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;
+12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;
+12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;
+12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;
+12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;
+12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;
+12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;
+12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;
+12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;
+1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;
+1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;
+1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;
+1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;
+12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;
+12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;
+12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;
+12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;
+12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;
+12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;
+12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;
+12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;
+12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;
+12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;
+1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;
+1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;
+1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;
+1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;
+1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;
+1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;
+12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;
+12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;
+12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;
+12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;
+12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;
+12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;
+12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;
+1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;
+1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;
+1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;
+1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;
+1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;
+12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;
+12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;
+12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;
+12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;
+12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;
+12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;
+12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;
+12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;
+12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;
+12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;
+1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;
+1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;
+1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;
+1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;
+1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;
+12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;
+12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;
+12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;
+12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;
+12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;
+12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;
+12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;
+12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;
+12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;
+1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;
+1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;
+1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;
+1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;
+1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;
+1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;
+12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;
+12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;
+12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;
+12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;
+12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;
+12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;
+12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;
+12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;
+1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
+1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;
+1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;
+1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;
+1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;
+1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;
+12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;
+12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;
+12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;
+12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;
+12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;
+12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;
+12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;
+12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;
+12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;
+12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;
+1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;
+1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;
+1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;
+1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;
+1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;
+1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;
+12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;
+12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;
+12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;
+12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;
+12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;
+12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;
+12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;
+12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;
+12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;
+12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;
+1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;
+1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;
+1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;
+1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;
+1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;
+12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;
+12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;
+12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;
+12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;
+12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;
+12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;
+12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;
+12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;
+12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;
+1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;
+1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;
+1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;
+1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;
+121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;
+121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;
+121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;
+121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;
+121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;
+121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;
+121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;
+121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;
+121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;
+121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;
+121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;
+121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
+121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;
+121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;
+121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;
+121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;
+121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;
+121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;
+121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;
+121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;
+121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;
+121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;
+121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;
+121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;
+121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;
+121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;
+121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
+121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;
+121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
+121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;
+121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;
+121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
+121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;
+121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;
+121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;
+121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;
+121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;
+121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;
+121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;
+121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;
+121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;
+121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;
+121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;
+121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;
+121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;
+121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;
+121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;
+121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;
+121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;
+121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;
+121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;
+121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;
+121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;
+121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;
+121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;
+121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;
+121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;
+121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;
+121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;
+121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;
+121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;
+121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;
+121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;
+121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;
+121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;
+121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
+121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;
+121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;
+121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;
+121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;
+121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;
+121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
+121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;
+121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;
+121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;
+121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;
+121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
+121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;
+121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;
+121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;
+121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;
+121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;
+121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;
+121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;
+121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;
+121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;
+121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;
+121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;
+121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;
+12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;
+12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;
+12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;
+12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;
+12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;
+12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;
+12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
+1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;
+1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;
+1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;
+1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;
+12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;
+12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;
+12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;
+12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;
+12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;
+12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;
+12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;
+12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;
+12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;
+12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;
+1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;
+1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;
+1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;
+1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;
+1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;
+1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;
+12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;
+12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
+12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
+12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
+12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
+12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
+12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
+12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
+1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
+1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
+1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
+1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
+1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
+1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;
+12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;
+12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;
+12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;
+12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;
+12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;
+12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;
+12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;
+12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;
+1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;
+1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;
+1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;
+1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;
+1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;
+1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;
+12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;
+12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;
+12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;
+12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;
+12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;
+12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;
+12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;
+12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;
+12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;
+12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;
+1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;
+1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;
+1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;
+1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;
+1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;
+1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;
+12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;
+12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;
+12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
+12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
+12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
+1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;
+1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;
+12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;
+12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;
+12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;
+12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;
+12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;
+12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;
+12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
+12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;
+12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;
+1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;
+1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;
+1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;
+1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;
+1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;
+12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;
+12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;
+12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
+12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;
+12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;
+12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;
+12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
+12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;
+1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;
+1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;
+1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;
+1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;
+1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;
+1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;
+12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;
+12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;
+12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;
+12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;
+12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;
+12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;
+12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;
+12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;
+12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;
+12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;
+1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;
+1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;
+1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;
+1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;
+1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;
+1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;
+12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;
+12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;
+12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;
+12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;
+12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;
+12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;
+12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;
+12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;
+12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;
+12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;
+1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;
+1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;
+1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;
+1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;
+1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;
+1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;
+122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;
+122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;
+122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;
+122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;
+122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;
+122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;
+122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;
+122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;
+122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;
+122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;
+122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;
+122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;
+122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;
+122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;
+122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;
+122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;
+122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;
+122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;
+122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;
+122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;
+122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;
+122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;
+122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
+122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;
+122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;
+122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;
+122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;
+122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;
+122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;
+122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;
+122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;
+122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;
+122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;
+122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;
+122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;
+122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;
+122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;
+122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;
+122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;
+122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;
+122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;
+122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;
+122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;
+122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
+122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;
+122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;
+122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;
+122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;
+122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;
+122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;
+122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;
+122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;
+122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;
+122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;
+122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;
+122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;
+122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;
+122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;
+122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;
+122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;
+122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;
+122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;
+122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;
+122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;
+122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;
+122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;
+122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;
+122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;
+122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;
+122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;
+122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;
+122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;
+122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;
+122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;
+122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;
+122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;
+122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;
+122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;
+122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;
+122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;
+122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;
+122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;
+122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;
+122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;
+122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;
+122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;
+122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;
+122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;
+122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;
+122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;
+122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;
+122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;
+122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;
+122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;
+12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;
+12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;
+12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;
+12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;
+12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;
+12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;
+12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
+12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
+1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
+1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
+1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
+1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
+1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
+1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
+12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
+12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;
+12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;
+12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;
+12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;
+12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;
+12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;
+12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
+12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;
+12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;
+1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;
+1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
+1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;
+1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;
+1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;
+1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;
+12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;
+12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;
+12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;
+12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;
+12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
+12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;
+12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;
+12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;
+12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;
+1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;
+1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;
+1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
+1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
+1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;
+1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;
+12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;
+12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;
+12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
+12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;
+12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;
+12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;
+12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;
+12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;
+12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;
+12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
+1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;
+1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;
+1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;
+1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;
+1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
+1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;
+12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;
+12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;
+12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;
+12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;
+12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;
+12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;
+12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;
+12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;
+12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;
+12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;
+1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;
+1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;
+1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;
+1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;
+1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;
+1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;
+12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;
+12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;
+12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;
+12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;
+12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;
+12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;
+12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;
+12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;
+12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;
+12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;
+1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;
+1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
+1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;
+1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;
+1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;
+1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;
+12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;
+12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;
+12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;
+12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;
+12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;
+12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;
+12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;
+12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;
+12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;
+12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;
+1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;
+1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;
+1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
+1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
+1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
+12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
+12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
+12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
+12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;
+12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;
+12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;
+12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;
+12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;
+12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;
+12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;
+1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;
+1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;
+1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;
+1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;
+1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;
+1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;
+12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;
+12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;
+12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;
+12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;
+12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;
+12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;
+12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;
+12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;
+12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;
+12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;
+1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;
+1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;
+1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;
+1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;
+1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;
+1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;
+12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;
+12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;
+12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;
+12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;
+12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;
+12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;
+12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;
+12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;
+12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;
+1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;
+1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;
+1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;
+1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;
+1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;
+1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
+12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
+12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;;N;;;;;
+12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;;N;;;;;
+12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
+12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
+12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
+12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
+12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;
+12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;
+1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;
+1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;
+1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;
+1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;
+1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;
+1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;
+12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;
+12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;
+12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;
+12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;
+12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;
+12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;
+12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;
+12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;
+12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;
+12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;
+1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;
+1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;
+1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;
+1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;
+1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;
+1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;
+12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;
+12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;
+12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;
+12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
+12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
+12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
+12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;;N;;;;;
+12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;;N;;;;;
+12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
+12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
+1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
+1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;
+1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;
+1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;
+1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;
+1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;
+12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
+12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
+12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
+12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
+12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
+12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
+12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
@@ -14383,12 +15732,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
-1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
-1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;;;;
-1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;;;;
-1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;;;;
-1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;;;;
-1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
+1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;ren *;;;
+1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;tian ren *;;;
+1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;di ren *;;;
+1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;ren tian *;;;
+1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;ren di *;;;
+1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;ren ren *;;;
1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;
1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;
1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;
@@ -14470,6 +15819,24 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;
1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;
1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;
+1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;
+1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;
+1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;
+1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;
+1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;
+1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;
+1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;
+1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;
+1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;
+1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;
+1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;
+1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;
+1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;
+1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;
+1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;
+1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
+1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
+1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
@@ -15175,7 +16542,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;N;;;;;
+1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
@@ -15233,7 +16600,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;N;;;;;
+1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
@@ -15291,7 +16658,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;N;;;;;
+1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
@@ -15349,7 +16716,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;N;;;;;
+1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
@@ -15407,13 +16774,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;N;;;;;
+1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L;<font> 2202;;;;Y;;;;;
1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
+1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;
+1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;
1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
diff --git a/Build/source/libs/icu-xetex/data/unidata/WordBreakProperty.txt b/Build/source/libs/icu-xetex/data/unidata/WordBreakProperty.txt
index 9a903332664..78c531c7495 100644
--- a/Build/source/libs/icu-xetex/data/unidata/WordBreakProperty.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/WordBreakProperty.txt
@@ -1,8 +1,8 @@
-# WordBreakProperty-4.1.0.txt
-# Date: 2005-03-26, 00:36:01 GMT [MD]
+# WordBreakProperty-5.0.0.txt
+# Date: 2006-06-07, 23:23:03 GMT [MD]
#
# Unicode Character Database
-# Copyright (c) 1991-2005 Unicode, Inc.
+# Copyright (c) 1991-2006 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
# For documentation, see UCD.html
@@ -11,7 +11,9 @@
# Property: Word_Break
# All code points not explicitly listed for Word_Break
-# have the value Other.
+# have the value Other (XX).
+
+# @missing: 0000..10FFFF; Other
# ================================================
@@ -53,7 +55,6 @@ FF9E..FF9F ; Katakana
0041..005A ; ALetter
0061..007A ; ALetter
-00A0 ; ALetter
00AA ; ALetter
00B5 ; ALetter
00BA ; ALetter
@@ -63,13 +64,15 @@ FF9E..FF9F ; Katakana
01BB ; ALetter
01BC..01BF ; ALetter
01C0..01C3 ; ALetter
-01C4..0241 ; ALetter
-0250..02AF ; ALetter
+01C4..0293 ; ALetter
+0294 ; ALetter
+0295..02AF ; ALetter
02B0..02C1 ; ALetter
02C6..02D1 ; ALetter
02E0..02E4 ; ALetter
02EE ; ALetter
037A ; ALetter
+037B..037D ; ALetter
0386 ; ALetter
0388..038A ; ALetter
038C ; ALetter
@@ -77,9 +80,7 @@ FF9E..FF9F ; Katakana
03A3..03CE ; ALetter
03D0..03F5 ; ALetter
03F7..0481 ; ALetter
-048A..04CE ; ALetter
-04D0..04F9 ; ALetter
-0500..050F ; ALetter
+048A..0513 ; ALetter
0531..0556 ; ALetter
0559 ; ALetter
0561..0587 ; ALetter
@@ -101,6 +102,9 @@ FF9E..FF9F ; Katakana
074D..076D ; ALetter
0780..07A5 ; ALetter
07B1 ; ALetter
+07CA..07EA ; ALetter
+07F4..07F5 ; ALetter
+07FA ; ALetter
0903 ; ALetter
0904..0939 ; ALetter
093D ; ALetter
@@ -108,7 +112,7 @@ FF9E..FF9F ; Katakana
0949..094C ; ALetter
0950 ; ALetter
0958..0961 ; ALetter
-097D ; ALetter
+097B..097F ; ALetter
0982..0983 ; ALetter
0985..098C ; ALetter
098F..0990 ; ALetter
@@ -222,14 +226,6 @@ FF9E..FF9F ; Katakana
0F49..0F6A ; ALetter
0F7F ; ALetter
0F88..0F8B ; ALetter
-1000..1021 ; ALetter
-1023..1027 ; ALetter
-1029..102A ; ALetter
-102C ; ALetter
-1031 ; ALetter
-1038 ; ALetter
-1050..1055 ; ALetter
-1056..1057 ; ALetter
10A0..10C5 ; ALetter
10D0..10FA ; ALetter
10FC ; ALetter
@@ -265,12 +261,6 @@ FF9E..FF9F ; Katakana
1740..1751 ; ALetter
1760..176C ; ALetter
176E..1770 ; ALetter
-1780..17B3 ; ALetter
-17B6 ; ALetter
-17BE..17C5 ; ALetter
-17C7..17C8 ; ALetter
-17D7 ; ALetter
-17DC ; ALetter
1820..1842 ; ALetter
1843 ; ALetter
1844..1877 ; ALetter
@@ -280,14 +270,15 @@ FF9E..FF9F ; Katakana
1929..192B ; ALetter
1930..1931 ; ALetter
1933..1938 ; ALetter
-1950..196D ; ALetter
-1970..1974 ; ALetter
-1980..19A9 ; ALetter
-19B0..19C0 ; ALetter
-19C1..19C7 ; ALetter
-19C8..19C9 ; ALetter
1A00..1A16 ; ALetter
1A19..1A1B ; ALetter
+1B04 ; ALetter
+1B05..1B33 ; ALetter
+1B35 ; ALetter
+1B3B ; ALetter
+1B3D..1B41 ; ALetter
+1B43 ; ALetter
+1B45..1B4B ; ALetter
1D00..1D2B ; ALetter
1D2C..1D61 ; ALetter
1D62..1D77 ; ALetter
@@ -327,16 +318,19 @@ FF9E..FF9F ; Katakana
2126 ; ALetter
2128 ; ALetter
212A..212D ; ALetter
-212F..2131 ; ALetter
-2133..2134 ; ALetter
+212F..2134 ; ALetter
2135..2138 ; ALetter
2139 ; ALetter
213C..213F ; ALetter
2145..2149 ; ALetter
-2160..2183 ; ALetter
+214E ; ALetter
+2160..2182 ; ALetter
+2183..2184 ; ALetter
24B6..24E9 ; ALetter
2C00..2C2E ; ALetter
2C30..2C5E ; ALetter
+2C60..2C6C ; ALetter
+2C74..2C77 ; ALetter
2C80..2CE4 ; ALetter
2D00..2D25 ; ALetter
2D30..2D65 ; ALetter
@@ -359,12 +353,14 @@ FF9E..FF9F ; Katakana
A000..A014 ; ALetter
A015 ; ALetter
A016..A48C ; ALetter
+A717..A71A ; ALetter
A800..A801 ; ALetter
A803..A805 ; ALetter
A807..A80A ; ALetter
A80C..A822 ; ALetter
A823..A824 ; ALetter
A827 ; ALetter
+A840..A873 ; ALetter
AC00..D7A3 ; ALetter
FA30..FA6A ; ALetter
FB00..FB06 ; ALetter
@@ -399,7 +395,9 @@ FFDA..FFDC ; ALetter
10080..100FA ; ALetter
10140..10174 ; ALetter
10300..1031E ; ALetter
-10330..10349 ; ALetter
+10330..10340 ; ALetter
+10341 ; ALetter
+10342..10349 ; ALetter
1034A ; ALetter
10380..1039D ; ALetter
103A0..103C3 ; ALetter
@@ -413,10 +411,13 @@ FFDA..FFDC ; ALetter
10837..10838 ; ALetter
1083C ; ALetter
1083F ; ALetter
+10900..10915 ; ALetter
10A00 ; ALetter
10A10..10A13 ; ALetter
10A15..10A17 ; ALetter
10A19..10A33 ; ALetter
+12000..1236E ; ALetter
+12400..12462 ; ALetter
1D400..1D454 ; ALetter
1D456..1D49C ; ALetter
1D49E..1D49F ; ALetter
@@ -446,9 +447,9 @@ FFDA..FFDC ; ALetter
1D770..1D788 ; ALetter
1D78A..1D7A8 ; ALetter
1D7AA..1D7C2 ; ALetter
-1D7C4..1D7C9 ; ALetter
+1D7C4..1D7CB ; ALetter
-# Total code points: 20161
+# Total code points: 21149
# ================================================
@@ -469,11 +470,12 @@ FFDA..FFDC ; ALetter
037E ; MidNum
0589 ; MidNum
060D ; MidNum
+07F8 ; MidNum
2044 ; MidNum
FE10 ; MidNum
FE13..FE14 ; MidNum
-# Total code points: 10
+# Total code points: 11
# ================================================
@@ -481,6 +483,7 @@ FE13..FE14 ; MidNum
0660..0669 ; Numeric
066B..066C ; Numeric
06F0..06F9 ; Numeric
+07C0..07C9 ; Numeric
0966..096F ; Numeric
09E6..09EF ; Numeric
0A66..0A6F ; Numeric
@@ -498,10 +501,11 @@ FE13..FE14 ; MidNum
1810..1819 ; Numeric
1946..194F ; Numeric
19D0..19D9 ; Numeric
+1B50..1B59 ; Numeric
104A0..104A9 ; Numeric
1D7CE..1D7FF ; Numeric
-# Total code points: 262
+# Total code points: 282
# ================================================
@@ -513,3 +517,5 @@ FE4D..FE4F ; ExtendNumLet
FF3F ; ExtendNumLet
# Total code points: 10
+
+# EOF
diff --git a/Build/source/libs/icu-xetex/data/unidata/changes.txt b/Build/source/libs/icu-xetex/data/unidata/changes.txt
index 4713a7edd69..f1c4b0a5704 100644
--- a/Build/source/libs/icu-xetex/data/unidata/changes.txt
+++ b/Build/source/libs/icu-xetex/data/unidata/changes.txt
@@ -1,3 +1,115 @@
+* Copyright (C) 2004-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+* file name: changes.txt
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2004may06
+* created by: Markus W. Scherer
+*
+* change log for Unicode updates
+
+---------------------------------------------------------------------------- ***
+
+Unicode 5.0 update
+
+*** related Jitterbugs
+
+5084 RFE: Update to Unicode 5.0
+
+*** data files & enums & parser code
+
+* file preparation
+- ucdstrip:
+ DerivedCoreProperties.txt
+ DerivedNormalizationProps.txt
+ NormalizationTest.txt
+ PropList.txt
+ Scripts.txt
+ GraphemeBreakProperty.txt
+ SentenceBreakProperty.txt
+ WordBreakProperty.txt
+- ucdstrip and ucdmerge:
+ EastAsianWidth.txt
+ LineBreak.txt
+
+* my ucd2unidata.txt (needs to be updated each time with UCD and file version numbers)
+copy 5.0.0\ucd\BidiMirroring.txt ..\unidata\
+copy 5.0.0\ucd\Blocks.txt ..\unidata\
+copy 5.0.0\ucd\CaseFolding.txt ..\unidata\
+copy 5.0.0\ucd\DerivedAge.txt ..\unidata\
+copy 5.0.0\ucd\extracted\DerivedBidiClass.txt ..\unidata\
+copy 5.0.0\ucd\extracted\DerivedJoiningGroup.txt ..\unidata\
+copy 5.0.0\ucd\extracted\DerivedJoiningType.txt ..\unidata\
+copy 5.0.0\ucd\extracted\DerivedNumericValues.txt ..\unidata\
+copy 5.0.0\ucd\NormalizationCorrections.txt ..\unidata\
+copy 5.0.0\ucd\PropertyAliases.txt ..\unidata\
+copy 5.0.0\ucd\PropertyValueAliases.txt ..\unidata\
+copy 5.0.0\ucd\SpecialCasing.txt ..\unidata\
+copy 5.0.0\ucd\UnicodeData.txt ..\unidata\
+
+ucdstrip < 5.0.0\ucd\DerivedCoreProperties.txt > ..\unidata\DerivedCoreProperties.txt
+ucdstrip < 5.0.0\ucd\DerivedNormalizationProps.txt > ..\unidata\DerivedNormalizationProps.txt
+ucdstrip < 5.0.0\ucd\NormalizationTest.txt > ..\unidata\NormalizationTest.txt
+ucdstrip < 5.0.0\ucd\PropList.txt > ..\unidata\PropList.txt
+ucdstrip < 5.0.0\ucd\Scripts.txt > ..\unidata\Scripts.txt
+ucdstrip < 5.0.0\ucd\auxiliary\GraphemeBreakProperty.txt > ..\unidata\GraphemeBreakProperty.txt
+ucdstrip < 5.0.0\ucd\auxiliary\SentenceBreakProperty.txt > ..\unidata\SentenceBreakProperty.txt
+ucdstrip < 5.0.0\ucd\auxiliary\WordBreakProperty.txt > ..\unidata\WordBreakProperty.txt
+ucdstrip < 5.0.0\ucd\EastAsianWidth.txt | ucdmerge > ..\unidata\EastAsianWidth.txt
+ucdstrip < 5.0.0\ucd\LineBreak.txt | ucdmerge > ..\unidata\LineBreak.txt
+
+* update FractionalUCA.txt and UCARules.txt with new canonical closure
+
+* genpname
+- run preparse.pl
+ + make sure that data.h is writable
+ + perl preparse.pl \cvs\oss\icu > out.txt
+
+* uchar.h & uscript.h & uprops.h & uprops.c & genprops
+- new block & script values
+ + script values already added in ICU 3.6 because all of ISO 15924 is now covered
+
+* build Unicode data source code for hardcoding core data
+C:\cvs\oss\icu\source\data>NMAKE /f makedata.mak ICUMAKE=\cvs\oss\icu\source\data\ CFG=debug uni-core-data
+
+ICU data make path is \cvs\oss\icu\source\data\
+ICU root path is \cvs\oss\icu
+Information: cannot find "ucmlocal.mk". Not building user-additional converter files.
+[etc.]
+Creating data file for Unicode Character Properties
+Creating data file for Unicode Case Mapping Properties
+Creating data file for Unicode BiDi/Shaping Properties
+Creating data file for Unicode Normalization
+Unicode .icu files built to "\cvs\oss\icu\source\data\out\build\icudt35l"
+Unicode .c source files built to "\cvs\oss\icu\source\data\out\tmp"
+
+- copy the .c source files to C:\cvs\oss\icu\source\common
+ and rebuild the common library
+
+*** Unicode version numbers
+- makedata.mak
+- uchar.h
+- configure.in
+
+*** LayoutEngine script information
+* Run ICU4J com.ibm.icu.dev.tool.layout.ScriptNameBuilder. This generates LEScripts.h, LELanguage.h,
+ScriptAndLanguageTags.h and ScriptAndLanguageTags.cpp in the working directory. (it also generates
+ScriptRunData.cpp, which is no longer needed.)
+
+The generated files have a current copyright date and "@draft" statement.
+
+* copy the above files into <icu>/source/layout, replacing the old files.
+
+Add new default entries to the indicClassTables array in <icu>/source/layout/IndicClassTables.cpp
+and the complexTable array in <icu>/source/layoutex/ParagraphLayout.cpp. (This step should be automated...)
+
+* rebuild the layout and layoutex libraries.
+
+---------------------------------------------------------------------------- ***
+
Unicode 4.1 update
*** related Jitterbugs
diff --git a/Build/source/libs/icu-xetex/data/xml/brkitr/en.xml b/Build/source/libs/icu-xetex/data/xml/brkitr/en.xml
new file mode 100644
index 00000000000..d1b64eaac59
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/brkitr/en.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.1 $"/>
+ <generation date="$Date: 2006/04/21 00:54:06 $"/>
+ <language type="en"/>
+ </identity>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/brkitr/en_US.xml b/Build/source/libs/icu-xetex/data/xml/brkitr/en_US.xml
new file mode 100644
index 00000000000..a5820b5050e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/brkitr/en_US.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.1 $"/>
+ <generation date="$Date: 2006/04/21 00:54:06 $"/>
+ <language type="en"/>
+ <territory type="US"/>
+ </identity>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/brkitr/en_US_POSIX.xml b/Build/source/libs/icu-xetex/data/xml/brkitr/en_US_POSIX.xml
new file mode 100644
index 00000000000..ab6e3ccc91b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/brkitr/en_US_POSIX.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.1 $"/>
+ <generation date="$Date: 2006/04/21 00:54:06 $"/>
+ <language type="en"/>
+ <territory type="US"/>
+ <variant type="POSIX"/>
+ </identity>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:breakIteratorData>
+ <icu:boundaries>
+ <icu:word icu:dependency="word_POSIX.brk"/>
+ </icu:boundaries>
+ </icu:breakIteratorData>
+ </special>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/brkitr/ja.xml b/Build/source/libs/icu-xetex/data/xml/brkitr/ja.xml
new file mode 100644
index 00000000000..04e31fcb61d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/brkitr/ja.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.1 $"/>
+ <generation date="$Date: 2006/04/21 00:54:07 $"/>
+ <language type="ja"/>
+ </identity>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:breakIteratorData>
+ <icu:boundaries>
+ <icu:word icu:dependency="word_ja.brk"/>
+ </icu:boundaries>
+ </icu:breakIteratorData>
+ </special>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/brkitr/root.xml b/Build/source/libs/icu-xetex/data/xml/brkitr/root.xml
new file mode 100644
index 00000000000..e1199bd97a6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/brkitr/root.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.1 $"/>
+ <generation date="$Date: 2006/04/21 00:54:07 $"/>
+ <language type="root"/>
+ </identity>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:breakIteratorData>
+ <icu:boundaries>
+ <icu:grapheme icu:dependency="char.brk"/>
+ <icu:word icu:dependency="word.brk"/>
+ <icu:line icu:dependency="line.brk"/>
+ <icu:sentence icu:dependency="sent.brk"/>
+ <icu:title icu:dependency="title.brk"/>
+ </icu:boundaries>
+ <icu:dictionaries>
+ <icu:dictionary type="Thai" icu:dependency="thaidict.ctd"/>
+ </icu:dictionaries>
+ </icu:breakIteratorData>
+ </special>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ar.xml b/Build/source/libs/icu-xetex/data/xml/collation/ar.xml
index 2b22131513a..b54d044d7e2 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ar.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ar.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="ar"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/be.xml b/Build/source/libs/icu-xetex/data/xml/collation/be.xml
index 4f668280e42..e3557c379d5 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/be.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/be.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="be"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/bg.xml b/Build/source/libs/icu-xetex/data/xml/collation/bg.xml
index bebac0c31d3..17db53cd299 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/bg.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/bg.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="bg"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ca.xml b/Build/source/libs/icu-xetex/data/xml/collation/ca.xml
index 8b061055404..2fbb44793c7 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ca.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ca.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="ca"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/cs.xml b/Build/source/libs/icu-xetex/data/xml/collation/cs.xml
index fdb7a43ac63..8e8bc6e28ca 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/cs.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/cs.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="cs"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/da.xml b/Build/source/libs/icu-xetex/data/xml/collation/da.xml
index 6beb6ebcd8b..613f3112ee1 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/da.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/da.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="da"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/de.xml b/Build/source/libs/icu-xetex/data/xml/collation/de.xml
index b659a9c1d18..83ab0f971a2 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/de.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/de.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="de"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/dz.xml b/Build/source/libs/icu-xetex/data/xml/collation/dz.xml
index 5501aacb036..73b9b0491bd 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/dz.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/dz.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="dz"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/el.xml b/Build/source/libs/icu-xetex/data/xml/collation/el.xml
index 6f686eed794..89619ab3f0c 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/el.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/el.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="el"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/en.xml b/Build/source/libs/icu-xetex/data/xml/collation/en.xml
index e2fdc2550f7..45d02d4ffaa 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/en.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/en.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="en"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/en_BE.xml b/Build/source/libs/icu-xetex/data/xml/collation/en_BE.xml
index ffc585153af..ee42739b96c 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/en_BE.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/en_BE.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="en"/>
<territory type="BE"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/eo.xml b/Build/source/libs/icu-xetex/data/xml/collation/eo.xml
index 2da201ea2fe..71c589118c7 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/eo.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/eo.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:45 $"/>
<language type="eo"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/es.xml b/Build/source/libs/icu-xetex/data/xml/collation/es.xml
index b5156c0d2bf..2b1eb369af0 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/es.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/es.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="es"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/et.xml b/Build/source/libs/icu-xetex/data/xml/collation/et.xml
index 6be742682cd..ba9a5ce6104 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/et.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/et.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="et"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/fa.xml b/Build/source/libs/icu-xetex/data/xml/collation/fa.xml
index b222965cabe..b7c2c03b75d 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/fa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/fa.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="fa"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/fa_AF.xml b/Build/source/libs/icu-xetex/data/xml/collation/fa_AF.xml
index 38d5f4d1519..147222df934 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/fa_AF.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/fa_AF.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="fa"/>
<territory type="AF"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/fi.xml b/Build/source/libs/icu-xetex/data/xml/collation/fi.xml
index a78c9170bbe..8d7f910ad51 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/fi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/fi.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="fi"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/fo.xml b/Build/source/libs/icu-xetex/data/xml/collation/fo.xml
index b2390258066..4747caf5300 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/fo.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/fo.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="fo"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/fr.xml b/Build/source/libs/icu-xetex/data/xml/collation/fr.xml
index dddc09b81b3..40345516446 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/fr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/fr.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="fr"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/gu.xml b/Build/source/libs/icu-xetex/data/xml/collation/gu.xml
index 4783d05dcbe..9fb7d5263d1 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/gu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/gu.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:59 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="gu"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/he.xml b/Build/source/libs/icu-xetex/data/xml/collation/he.xml
index f67428ad6cc..5a23b86839c 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/he.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/he.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="he"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/hi.xml b/Build/source/libs/icu-xetex/data/xml/collation/hi.xml
index a108973cb6c..43aceab3b2f 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/hi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/hi.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="hi"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/hr.xml b/Build/source/libs/icu-xetex/data/xml/collation/hr.xml
index ec9ff250193..2020258080b 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/hr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/hr.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="hr"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/hu.xml b/Build/source/libs/icu-xetex/data/xml/collation/hu.xml
index 59fccb448f7..afdfadcc6d8 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/hu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/hu.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="hu"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/is.xml b/Build/source/libs/icu-xetex/data/xml/collation/is.xml
index 70a16095444..15907fdb7d5 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/is.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/is.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="is"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/it.xml b/Build/source/libs/icu-xetex/data/xml/collation/it.xml
index 171a251d2ca..ced4562b252 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/it.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/it.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="it"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ja.xml b/Build/source/libs/icu-xetex/data/xml/collation/ja.xml
index 6c2ccc34319..c7af339552c 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ja.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ja.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="ja"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/kk.xml b/Build/source/libs/icu-xetex/data/xml/collation/kk.xml
index d0d5564edde..eb07c9ac01e 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/kk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/kk.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:46 $"/>
<language type="kk"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/kl.xml b/Build/source/libs/icu-xetex/data/xml/collation/kl.xml
index cd023fbc2e0..3fda64352d9 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/kl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/kl.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="kl"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/kn.xml b/Build/source/libs/icu-xetex/data/xml/collation/kn.xml
index f5039273506..614c2d27337 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/kn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/kn.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="kn"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ko.xml b/Build/source/libs/icu-xetex/data/xml/collation/ko.xml
index e5b8e3c0c7f..8f9a396e73e 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ko.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ko.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="ko"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/lt.xml b/Build/source/libs/icu-xetex/data/xml/collation/lt.xml
index cd108da134b..1fbca6e4a68 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/lt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/lt.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="lt"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/lv.xml b/Build/source/libs/icu-xetex/data/xml/collation/lv.xml
index 64be7110fba..ff2736db000 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/lv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/lv.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="lv"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/mk.xml b/Build/source/libs/icu-xetex/data/xml/collation/mk.xml
index df6e2e1fa7a..95aea8234ae 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/mk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/mk.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="mk"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ml.xml b/Build/source/libs/icu-xetex/data/xml/collation/ml.xml
new file mode 100644
index 00000000000..2e01477379e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ml.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
+ <language type="ml"/>
+ </identity>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/mr.xml b/Build/source/libs/icu-xetex/data/xml/collation/mr.xml
index e031f3555ec..7125e2e1e94 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/mr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/mr.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="mr"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/mt.xml b/Build/source/libs/icu-xetex/data/xml/collation/mt.xml
index 6d4ca27d2f0..6d21c66068d 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/mt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/mt.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="mt"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/nb.xml b/Build/source/libs/icu-xetex/data/xml/collation/nb.xml
index 46645d250c3..bb182cf495e 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/nb.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/nb.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="nb"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/nn.xml b/Build/source/libs/icu-xetex/data/xml/collation/nn.xml
index 666a3af1cc4..0a86093cff3 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/nn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/nn.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="nn"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/om.xml b/Build/source/libs/icu-xetex/data/xml/collation/om.xml
index b4f0e3f4d20..7c91a895e95 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/om.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/om.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="om"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/or.xml b/Build/source/libs/icu-xetex/data/xml/collation/or.xml
new file mode 100644
index 00000000000..b60c1c2790b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/collation/or.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
+ <language type="or"/>
+ </identity>
+</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/pa.xml b/Build/source/libs/icu-xetex/data/xml/collation/pa.xml
index 3ee8e7ae81a..4cb1aa37010 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/pa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/pa.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="pa"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/pl.xml b/Build/source/libs/icu-xetex/data/xml/collation/pl.xml
index ef31a641592..20771db2496 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/pl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/pl.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:47 $"/>
<language type="pl"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ps.xml b/Build/source/libs/icu-xetex/data/xml/collation/ps.xml
index 92ba241593b..9ecb532ff54 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ps.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ps.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="ps"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ro.xml b/Build/source/libs/icu-xetex/data/xml/collation/ro.xml
index 83a0af78ad1..bf3793c7255 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ro.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ro.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="ro"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/root.xml b/Build/source/libs/icu-xetex/data/xml/collation/root.xml
index d673fdddb8f..7fcaaf71f91 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/root.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/root.xml
@@ -1,19 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
- <identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
- <language type="root"/>
- </identity>
-
+ <identity>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
+ <language type="root"/>
+ </identity>
+ <!--
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:ucarules icu:uca_rules="../../ucarrules.txt"/>
+ <icu:depends icu:dependency="../invuca.icu"/>
+ <icu:depends icu:dependency="../invuca.icu"/>
+ </special>
+ -->
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ru.xml b/Build/source/libs/icu-xetex/data/xml/collation/ru.xml
index b6f4ee712e1..151af361b2c 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ru.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ru.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="ru"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sh.xml b/Build/source/libs/icu-xetex/data/xml/collation/sh.xml
index eb388c37bea..defdc7ee4f1 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sh.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sh.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:00 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sh"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sk.xml b/Build/source/libs/icu-xetex/data/xml/collation/sk.xml
index 872f072d57c..e5c323c2add 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sk.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sk"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sl.xml b/Build/source/libs/icu-xetex/data/xml/collation/sl.xml
index 699deac9858..73619e4a50d 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sl.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sl"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sq.xml b/Build/source/libs/icu-xetex/data/xml/collation/sq.xml
index 1e5df9cb4f1..c4bdd751f2d 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sq.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sq.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sq"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sr.xml b/Build/source/libs/icu-xetex/data/xml/collation/sr.xml
index 7cfca205f77..358cb7e8417 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sr.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sr"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/sv.xml b/Build/source/libs/icu-xetex/data/xml/collation/sv.xml
index 2976bb7eeb1..5821dd08970 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/sv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/sv.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="sv"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/ta.xml b/Build/source/libs/icu-xetex/data/xml/collation/ta.xml
index 29fd610fe59..58f85b7b4b9 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/ta.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/ta.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="ta"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/te.xml b/Build/source/libs/icu-xetex/data/xml/collation/te.xml
index 43f578f8634..896da92d335 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/te.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/te.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="te"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/th.xml b/Build/source/libs/icu-xetex/data/xml/collation/th.xml
index cf3e242b4fe..70aa0e99428 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/th.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/th.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="th"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/tr.xml b/Build/source/libs/icu-xetex/data/xml/collation/tr.xml
index ac5815d428b..a8d37427385 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/tr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/tr.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="tr"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/uk.xml b/Build/source/libs/icu-xetex/data/xml/collation/uk.xml
index 0241b687544..d53f0963010 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/uk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/uk.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="uk"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/vi.xml b/Build/source/libs/icu-xetex/data/xml/collation/vi.xml
index 0d7f8c42f7b..dc8ff4475d1 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/vi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/vi.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:48 $"/>
<language type="vi"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh.xml
index 4f6793836b7..94919c5c140 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/06/07 23:38:01 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
</identity>
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh_HK.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh_HK.xml
index c2377f41549..9512e7ac3cc 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh_HK.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh_HK.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/07/19 21:45:14 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
<territory type="HK"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh_Hant.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh_Hant.xml
index aafa8a4ded2..a248945c88e 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh_Hant.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh_Hant.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/07/19 21:45:14 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
<script type="Hant"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh_MO.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh_MO.xml
index 063d97110b2..cf3b0020fc9 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh_MO.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh_MO.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/07/19 21:45:14 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
<territory type="MO"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh_TW.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh_TW.xml
index aa0a071a45f..c272558496b 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh_TW.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh_TW.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/07/19 21:45:14 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
<territory type="TW"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/collation/zh_TW_STROKE.xml b/Build/source/libs/icu-xetex/data/xml/collation/zh_TW_STROKE.xml
index 008541956a1..4850abb5b44 100644
--- a/Build/source/libs/icu-xetex/data/xml/collation/zh_TW_STROKE.xml
+++ b/Build/source/libs/icu-xetex/data/xml/collation/zh_TW_STROKE.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.4 $"/>
- <generation date="$Date: 2005/07/19 21:45:14 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="zh"/>
<territory type="TW"/>
<variant type="STROKE"/>
diff --git a/Build/source/libs/icu-xetex/data/xml/deprecatedList.dtd b/Build/source/libs/icu-xetex/data/xml/deprecatedList.dtd
deleted file mode 100644
index e8d41a677ca..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/deprecatedList.dtd
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
- Copyright (c) 2004 International Business Machines Corporation and others. All rights reserved.
-
- DTD for the ICU deprecated-locales list.
--->
-
-<!ELEMENT deprecatedList ( overrideDraft*, deprecates* ) >
-<!ATTLIST deprecatedList version CDATA #FIXED "1.0" >
-
-<!ELEMENT overrideDraft EMPTY >
-<!ATTLIST overrideDraft locale NMTOKEN #REQUIRED >
-
-<!ELEMENT deprecates ( alias | aliasLocale )* >
-<!ATTLIST deprecates type NMTOKEN #REQUIRED >
-
-<!ELEMENT alias EMPTY >
-<!ATTLIST alias from CDATA #REQUIRED >
-<!ATTLIST alias to CDATA #REQUIRED >
-<!ATTLIST alias xpath CDATA #IMPLIED >
-
-<!ELEMENT aliasLocale EMPTY >
-<!ATTLIST aliasLocale locale CDATA #REQUIRED >
-
diff --git a/Build/source/libs/icu-xetex/data/xml/deprecatedList.xml b/Build/source/libs/icu-xetex/data/xml/deprecatedList.xml
deleted file mode 100644
index 81bc932cef2..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/deprecatedList.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE deprecatedList SYSTEM "deprecatedList.dtd" >
-
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-
-<deprecatedList>
- <!-- list of locales which ICU will take anyway, regardless of draft status. Equivalent of '-f' on that locale. -->
-<!-- <overrideDraft locale="as"/>
- <overrideDraft locale="as_IN"/> -->
- <overrideDraft locale="ar_EG"/>
- <overrideDraft locale="hr_HR"/>
- <overrideDraft locale="en_PK"/>
- <overrideDraft locale="ml"/>
- <overrideDraft locale="ml_IN"/>
- <overrideDraft locale="or"/>
- <overrideDraft locale="or_IN"/>
- <overrideDraft locale="sl_SI"/>
- <overrideDraft locale="sr_Cyrl"/>
-
- <!-- only for 3.4 -->
- <overrideDraft locale="as"/>
- <overrideDraft locale="as_IN"/>
- <overrideDraft locale="az"/>
- <overrideDraft locale="az_AZ"/>
- <overrideDraft locale="az_Cyrl"/>
- <overrideDraft locale="sh_CS"/>
- <overrideDraft locale="sr_CS"/>
- <overrideDraft locale="sr_Cyrl_CS"/>
- <overrideDraft locale="sr_Latn_CS"/>
- <overrideDraft locale="uz"/>
- <overrideDraft locale="uz_Cyrl"/>
- <overrideDraft locale="uz_Latn"/>
- <overrideDraft locale="uz_UZ"/>
-
- <!-- collation aliases -->
- <deprecates type="collation">
- <alias from="de__PHONEBOOK" to="de@collation=phonebook" xpath="//ldml/collations/default[@type='phonebook']"/>
- <alias from="es__TRADITIONAL" to="es@collation=traditional" xpath="//ldml/collations/default[@type='traditional']"/>
- <alias from="hi__DIRECT" to="hi@collation=direct" xpath="//ldml/collations/default[@type='direct']"/>
- <alias from="zh__PINYIN" to="zh@collation=pinyin" xpath="//ldml/collations/default[@type='pinyin']"/>
- <alias from="zh_TW_STROKE" to="zh@collation=stroke" xpath="//ldml/collations/default[@type='stroke']"/>
- </deprecates>
-
- <!-- locale aliases (main) -->
- <deprecates type="main" >
- <alias from="in" to="id" />
- <alias from="in_ID" to="id_ID" />
- <alias from="iw" to="he" />
- <alias from="iw_IL" to="he_IL" />
- <alias from="ja_JP_TRADITIONAL" to="ja_JP@calendar=japanese" xpath="//ldml/dates/calendars/default[@type='japanese']"/>
- <alias from="ji" to="yi" />
- <alias from="jw" to="jv"/>
- <alias from="no" to="nb"/>
- <alias from="no_NO" to="nb_NO"/>
- <alias from="no_NO_NY" to="nn_NO" />
- <alias from="th_TH_TRADITIONAL" to="th_TH@calendar=buddhist" xpath="//ldml/dates/calendars/default[@type='buddhist']" />
- <aliasLocale locale="az_AZ" />
- <aliasLocale locale="sh" />
- <aliasLocale locale="sh_BA" />
- <aliasLocale locale="sh_CS" />
- <aliasLocale locale="sh_YU" />
- <aliasLocale locale="sr_BA" />
- <aliasLocale locale="sr_CS" />
- <aliasLocale locale="sr_YU" />
- <aliasLocale locale="sr_Cyrl_YU" />
- <aliasLocale locale="sr_Latn_YU" />
- <aliasLocale locale="uz_AF" />
- <aliasLocale locale="uz_UZ" />
- <aliasLocale locale="zh_CN" />
- <aliasLocale locale="zh_HK" />
- <aliasLocale locale="zh_MO" />
- <aliasLocale locale="zh_SG" />
- <aliasLocale locale="zh_TW" />
- </deprecates>
-</deprecatedList>
diff --git a/Build/source/libs/icu-xetex/data/xml/experimental/az_AZ.txt b/Build/source/libs/icu-xetex/data/xml/experimental/az_AZ.txt
deleted file mode 100644
index e6221819758..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/experimental/az_AZ.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-// ***************************************************************************
-// *
-// * Copyright (C) 2001-2003, International Business Machines
-// * Corporation and others. All Rights Reserved.
-// *
-// ***************************************************************************
-
-az_AZ {
- Version{ "x0.2" }
- DateTimePatterns{
- "hh:mm:ss a z",
- "hh:mm:ss a",
- "hh:mm:ss a",
- "hh:mm:ss a",
- "d MMMM yyyy",
- "d MMMM yyyy",
- "dd.MM.yyyy",
- "dd.MM.yyyy",
- "{1} {0}"
- }
-}
diff --git a/Build/source/libs/icu-xetex/data/xml/main/aa.xml b/Build/source/libs/icu-xetex/data/xml/main/aa.xml
index ca41ba9a67d..14a778ccfe0 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/aa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/aa.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:49 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="aa"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/aa_DJ.xml b/Build/source/libs/icu-xetex/data/xml/main/aa_DJ.xml
deleted file mode 100644
index 43d7eecc80e..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/aa_DJ.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:49 $"/>
- <language type="aa"/>
- <territory type="DJ"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/aa_ER.xml b/Build/source/libs/icu-xetex/data/xml/main/aa_ER.xml
deleted file mode 100644
index f6b2346ecdb..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/aa_ER.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:49 $"/>
- <language type="aa"/>
- <territory type="ER"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/aa_ER_SAAHO.xml b/Build/source/libs/icu-xetex/data/xml/main/aa_ER_SAAHO.xml
deleted file mode 100644
index 8428d1049ba..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/aa_ER_SAAHO.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
- <language type="aa"/>
- <territory type="ER"/>
- <variant type="SAAHO"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/aa_ET.xml b/Build/source/libs/icu-xetex/data/xml/main/aa_ET.xml
deleted file mode 100644
index 6c83540d0d7..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/aa_ET.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
- <language type="aa"/>
- <territory type="ET"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/af.xml b/Build/source/libs/icu-xetex/data/xml/main/af.xml
index b5fb9090bd9..85f9c78803f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/af.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/af.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="af"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/am.xml b/Build/source/libs/icu-xetex/data/xml/main/am.xml
index 7a160167195..e4c9ffb9112 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/am.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/am.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="am"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ar.xml b/Build/source/libs/icu-xetex/data/xml/main/ar.xml
index cf3e3fc2fbb..f4510618f2d 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ar.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ar.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:49 $"/>
<language type="ar"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Arab</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/as.xml b/Build/source/libs/icu-xetex/data/xml/main/as.xml
index fc08c2a16ae..30eb23ec3e2 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/as.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/as.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="as"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Beng</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/az.xml b/Build/source/libs/icu-xetex/data/xml/main/az.xml
index 86e0e29f392..018dda58583 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/az.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/az.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="az"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/az_AZ.xml b/Build/source/libs/icu-xetex/data/xml/main/az_AZ.xml
index 640ab9956b1..f610f95de78 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/az_AZ.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/az_AZ.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.19 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="az"/>
<territory type="AZ"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/az_Cyrl.xml b/Build/source/libs/icu-xetex/data/xml/main/az_Cyrl.xml
index 1f92fa6e43c..bc7816e7d5d 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/az_Cyrl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/az_Cyrl.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="az"/>
<script type="Cyrl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/az_Latn.xml b/Build/source/libs/icu-xetex/data/xml/main/az_Latn.xml
new file mode 100644
index 00000000000..5143cd05690
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/az_Latn.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
+ <language type="az"/>
+ <script type="Latn"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Latn</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/main/be.xml b/Build/source/libs/icu-xetex/data/xml/main/be.xml
index f15c3b243d2..7662d1f7049 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/be.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/be.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="be"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/bg.xml b/Build/source/libs/icu-xetex/data/xml/main/bg.xml
index 5cdf609217c..e4a91cbc0e4 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/bg.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/bg.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="bg"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/bn.xml b/Build/source/libs/icu-xetex/data/xml/main/bn.xml
index 2b22b9cfd34..b2037b20bd9 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/bn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/bn.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="bn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Beng</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/bs.xml b/Build/source/libs/icu-xetex/data/xml/main/bs.xml
index b6f02b1d692..958a0291a71 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/bs.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/bs.xml
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="bs"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
- <icu:script type="1">Cyrl</icu:script>
+ <icu:script type="1">Latn</icu:script>
</icu:scripts>
</special>
</characters>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/byn.xml b/Build/source/libs/icu-xetex/data/xml/main/byn.xml
index 2136709d8ae..4c9b238c094 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/byn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/byn.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="byn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/byn_ER.xml b/Build/source/libs/icu-xetex/data/xml/main/byn_ER.xml
deleted file mode 100644
index 30bc1d5b58e..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/byn_ER.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
- <language type="byn"/>
- <territory type="ER"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ca.xml b/Build/source/libs/icu-xetex/data/xml/main/ca.xml
index 343eb4f7adf..4b044f7448b 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ca.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ca.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="ca"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/cs.xml b/Build/source/libs/icu-xetex/data/xml/main/cs.xml
index 3ce7ecb872b..2420fb49039 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/cs.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/cs.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="cs"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/cy.xml b/Build/source/libs/icu-xetex/data/xml/main/cy.xml
index aaad48d7185..842ccbe40e1 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/cy.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/cy.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.14 $"/>
+ <generation date="$Date: 2006/04/21 01:05:50 $"/>
<language type="cy"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/da.xml b/Build/source/libs/icu-xetex/data/xml/main/da.xml
index 837fae98055..896b548de00 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/da.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/da.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:50 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="da"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/de.xml b/Build/source/libs/icu-xetex/data/xml/main/de.xml
index b146455daf1..f97d4fb74c8 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/de.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/de.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="de"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/de_LI.xml b/Build/source/libs/icu-xetex/data/xml/main/de_LI.xml
deleted file mode 100644
index a04eea19d12..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/de_LI.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="de"/>
- <territory type="LI"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/dv.xml b/Build/source/libs/icu-xetex/data/xml/main/dv.xml
index bbd2c9f6765..be8f52b56f6 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/dv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/dv.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.17 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.19 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="dv"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">THAA</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/dv_MV.xml b/Build/source/libs/icu-xetex/data/xml/main/dv_MV.xml
deleted file mode 100644
index 9fc5addc584..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/dv_MV.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.17 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="dv"/>
- <territory type="MV"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/dz.xml b/Build/source/libs/icu-xetex/data/xml/main/dz.xml
index c9f5052746f..c7a33798a6a 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/dz.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/dz.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="dz"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Tibt</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/el.xml b/Build/source/libs/icu-xetex/data/xml/main/el.xml
index 9ad9ce8120d..60aa6df5394 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/el.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/el.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="el"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Grek</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en.xml b/Build/source/libs/icu-xetex/data/xml/main/en.xml
index 684c64d122b..c4eb3ac92ac 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/en.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/en.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.22 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.24 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="en"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_AS.xml b/Build/source/libs/icu-xetex/data/xml/main/en_AS.xml
deleted file mode 100644
index eaf2e0fccb2..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_AS.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="AS"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_BZ.xml b/Build/source/libs/icu-xetex/data/xml/main/en_BZ.xml
deleted file mode 100644
index c228ee551c8..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_BZ.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="BZ"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_GU.xml b/Build/source/libs/icu-xetex/data/xml/main/en_GU.xml
deleted file mode 100644
index 03fc7182324..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_GU.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="GU"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_JM.xml b/Build/source/libs/icu-xetex/data/xml/main/en_JM.xml
deleted file mode 100644
index ba9503a0871..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_JM.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="JM"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_MH.xml b/Build/source/libs/icu-xetex/data/xml/main/en_MH.xml
deleted file mode 100644
index f7075386590..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_MH.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="MH"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_MP.xml b/Build/source/libs/icu-xetex/data/xml/main/en_MP.xml
deleted file mode 100644
index ff72b4de68d..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_MP.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="MP"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_TT.xml b/Build/source/libs/icu-xetex/data/xml/main/en_TT.xml
deleted file mode 100644
index 1bdaf31414e..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_TT.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="TT"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_UM.xml b/Build/source/libs/icu-xetex/data/xml/main/en_UM.xml
deleted file mode 100644
index 683cdd353ea..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/en_UM.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
- <language type="en"/>
- <territory type="UM"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/en_US_POSIX.xml b/Build/source/libs/icu-xetex/data/xml/main/en_US_POSIX.xml
index 29d14dcd364..651894380cd 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/en_US_POSIX.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/en_US_POSIX.xml
@@ -1,25 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.25 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.27 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="en"/>
<territory type="US"/>
<variant type="POSIX"/>
</identity>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:boundaries>
- <icu:word icu:class="RuleBased" icu:import="word_POSIX"/>
- </icu:boundaries>
- </special>
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/eo.xml b/Build/source/libs/icu-xetex/data/xml/main/eo.xml
index 70e5259e962..7981f8a3738 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/eo.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/eo.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="eo"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/es.xml b/Build/source/libs/icu-xetex/data/xml/main/es.xml
index d3b964ca39a..8965d3d6916 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/es.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/es.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="es"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/et.xml b/Build/source/libs/icu-xetex/data/xml/main/et.xml
index 5fa2a17450a..291a4e5bb09 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/et.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/et.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="et"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/eu.xml b/Build/source/libs/icu-xetex/data/xml/main/eu.xml
index aa763ea676a..c89f1f03cf5 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/eu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/eu.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:51 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:51 $"/>
<language type="eu"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/fa.xml b/Build/source/libs/icu-xetex/data/xml/main/fa.xml
index 0d76d50c2c4..73b9515cf13 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/fa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/fa.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="fa"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Arab</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/fi.xml b/Build/source/libs/icu-xetex/data/xml/main/fi.xml
index d3485e40711..53756793dfa 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/fi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/fi.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="fi"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/fo.xml b/Build/source/libs/icu-xetex/data/xml/main/fo.xml
index 122608b467e..18e577fb5f6 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/fo.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/fo.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="fo"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/fr.xml b/Build/source/libs/icu-xetex/data/xml/main/fr.xml
index 7e5adf0caea..1d6e60c4946 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/fr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/fr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="fr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/fr_MC.xml b/Build/source/libs/icu-xetex/data/xml/main/fr_MC.xml
deleted file mode 100644
index de0e88b77aa..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/fr_MC.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
- <language type="fr"/>
- <territory type="MC"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ga.xml b/Build/source/libs/icu-xetex/data/xml/main/ga.xml
index 9590a1b445b..3ea2d231932 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ga.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ga.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="ga"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gez.xml b/Build/source/libs/icu-xetex/data/xml/main/gez.xml
index bb85b0de961..d8ed6f940b9 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/gez.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/gez.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="gez"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gez_ER.xml b/Build/source/libs/icu-xetex/data/xml/main/gez_ER.xml
deleted file mode 100644
index 4f31906beeb..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/gez_ER.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
- <language type="gez"/>
- <territory type="ER"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gez_ET.xml b/Build/source/libs/icu-xetex/data/xml/main/gez_ET.xml
deleted file mode 100644
index 8f3719d1862..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/gez_ET.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
- <language type="gez"/>
- <territory type="ET"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gl.xml b/Build/source/libs/icu-xetex/data/xml/main/gl.xml
index 1d0270a4065..1e05249f4ff 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/gl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/gl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="gl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gu.xml b/Build/source/libs/icu-xetex/data/xml/main/gu.xml
index f4d7e9c4223..045c8bfc835 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/gu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/gu.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="gu"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Gujr</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/gv.xml b/Build/source/libs/icu-xetex/data/xml/main/gv.xml
index 7665a8d0e49..82aee0c8527 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/gv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/gv.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="gv"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/haw.xml b/Build/source/libs/icu-xetex/data/xml/main/haw.xml
index 07c9d925ae1..7adebea2862 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/haw.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/haw.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
+ <version number="$Revision: 1.14 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="haw"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/haw_US.xml b/Build/source/libs/icu-xetex/data/xml/main/haw_US.xml
deleted file mode 100644
index 60d94d63b94..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/haw_US.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:52 $"/>
- <language type="haw"/>
- <territory type="US"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/he.xml b/Build/source/libs/icu-xetex/data/xml/main/he.xml
index 79b7b71a040..87db90e1640 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/he.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/he.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="he"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Hebr</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/hi.xml b/Build/source/libs/icu-xetex/data/xml/main/hi.xml
index 71d392dd32b..eb6c71715a3 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/hi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/hi.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:52 $"/>
<language type="hi"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Deva</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/hr.xml b/Build/source/libs/icu-xetex/data/xml/main/hr.xml
index 03d57d97db8..372519f1847 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/hr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/hr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="hr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/hu.xml b/Build/source/libs/icu-xetex/data/xml/main/hu.xml
index 1071c4d3c65..501bdcf846f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/hu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/hu.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="hu"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/hy.xml b/Build/source/libs/icu-xetex/data/xml/main/hy.xml
index 3b143dd198a..8d5f4ea4327 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/hy.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/hy.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="hy"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Armn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/id.xml b/Build/source/libs/icu-xetex/data/xml/main/id.xml
index da0ef3b671b..d72b46ce715 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/id.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/id.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="id"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/is.xml b/Build/source/libs/icu-xetex/data/xml/main/is.xml
index 92210d12629..6961cb9da35 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/is.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/is.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="is"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/it.xml b/Build/source/libs/icu-xetex/data/xml/main/it.xml
index c48f1f24377..f2017ff502a 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/it.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/it.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="it"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/iu.xml b/Build/source/libs/icu-xetex/data/xml/main/iu.xml
index fcd1e251d92..4f473d7c412 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/iu.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/iu.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.14 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="iu"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cans</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/iw.xml b/Build/source/libs/icu-xetex/data/xml/main/iw.xml
index 4ae9ef3a121..504d74342ba 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/iw.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/iw.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="iw"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Hebr</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ja.xml b/Build/source/libs/icu-xetex/data/xml/main/ja.xml
index 6840a298cfe..e7571a382d8 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ja.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ja.xml
@@ -1,32 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
- <identity>
- <version number="$Revision: 1.25 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
- <language type="ja"/>
- </identity>
- <characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:scripts>
- <icu:script type="1">Kana</icu:script>
- <icu:script type="2">Hira</icu:script>
- <icu:script type="3">Hani</icu:script>
- </icu:scripts>
- </special>
- </characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:boundaries>
- <icu:word icu:class="RuleBased" icu:append="true" icu:import="word_ja"/>
- </icu:boundaries>
- </special>
+ <identity>
+ <version number="$Revision: 1.27 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
+ <language type="ja"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Kana</icu:script>
+ <icu:script type="2">Hira</icu:script>
+ <icu:script type="3">Hani</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ka.xml b/Build/source/libs/icu-xetex/data/xml/main/ka.xml
index 16c27efd9de..c04b172c4a3 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ka.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ka.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="ka"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Geor</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ka_GE.xml b/Build/source/libs/icu-xetex/data/xml/main/ka_GE.xml
deleted file mode 100644
index 813aab1f3bd..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/ka_GE.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
- <language type="ka"/>
- <territory type="GE"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/kk.xml b/Build/source/libs/icu-xetex/data/xml/main/kk.xml
index 3445665e336..10be6d9b3e7 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/kk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/kk.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:53 $"/>
<language type="kk"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/kl.xml b/Build/source/libs/icu-xetex/data/xml/main/kl.xml
index f5405c77351..42db77601fe 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/kl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/kl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:53 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="kl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/km.xml b/Build/source/libs/icu-xetex/data/xml/main/km.xml
index afae8670713..ee4f39c0d5f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/km.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/km.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="km"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Khmr</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/km_KH.xml b/Build/source/libs/icu-xetex/data/xml/main/km_KH.xml
deleted file mode 100644
index 9de3884d8d9..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/km_KH.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
- <language type="km"/>
- <territory type="KH"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/kn.xml b/Build/source/libs/icu-xetex/data/xml/main/kn.xml
index 1abbf81bad5..103e605e63e 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/kn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/kn.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="kn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Knda</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ko.xml b/Build/source/libs/icu-xetex/data/xml/main/ko.xml
index 1de871223fa..a08348d23a3 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ko.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ko.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="ko"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Hang</icu:script>
<icu:script type="2">Hani</icu:script>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/kok.xml b/Build/source/libs/icu-xetex/data/xml/main/kok.xml
index 3af60bde587..95822039a52 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/kok.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/kok.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="kok"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Deva</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/kw.xml b/Build/source/libs/icu-xetex/data/xml/main/kw.xml
index dc2488784b7..147736627ab 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/kw.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/kw.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="kw"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ky.xml b/Build/source/libs/icu-xetex/data/xml/main/ky.xml
index a85d524e7e8..1de009a50a1 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ky.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ky.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="ky"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ky_KG.xml b/Build/source/libs/icu-xetex/data/xml/main/ky_KG.xml
deleted file mode 100644
index 1a92a380bb2..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/ky_KG.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
- <language type="ky"/>
- <territory type="KG"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/lo.xml b/Build/source/libs/icu-xetex/data/xml/main/lo.xml
index feb192a0a8a..0e98df46b3c 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/lo.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/lo.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.3 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.5 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="lo"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Laoo</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/lt.xml b/Build/source/libs/icu-xetex/data/xml/main/lt.xml
index 4469de260ee..c79d691ed11 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/lt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/lt.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="lt"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/lv.xml b/Build/source/libs/icu-xetex/data/xml/main/lv.xml
index 225ea01f421..f8600ae926c 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/lv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/lv.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="lv"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/mk.xml b/Build/source/libs/icu-xetex/data/xml/main/mk.xml
index 707ae15de93..02b2df68e1f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/mk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/mk.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="mk"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ml.xml b/Build/source/libs/icu-xetex/data/xml/main/ml.xml
index 8f1efab2307..9e62188d12b 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ml.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ml.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="ml"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Mlym</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/mn.xml b/Build/source/libs/icu-xetex/data/xml/main/mn.xml
index adb6c696aeb..15467ca539a 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/mn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/mn.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:54 $"/>
<language type="mn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/mn_MN.xml b/Build/source/libs/icu-xetex/data/xml/main/mn_MN.xml
deleted file mode 100644
index 39a320fcb12..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/mn_MN.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
- <language type="mn"/>
- <territory type="MN"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/mr.xml b/Build/source/libs/icu-xetex/data/xml/main/mr.xml
index 9db68b7a602..5a8ccc9bc05 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/mr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/mr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="mr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Deva</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ms.xml b/Build/source/libs/icu-xetex/data/xml/main/ms.xml
index 13363f615bb..bd0a05b5721 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ms.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ms.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="ms"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/mt.xml b/Build/source/libs/icu-xetex/data/xml/main/mt.xml
index 9bec2a46de9..cf7c1328c3d 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/mt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/mt.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:54 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="mt"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/nb.xml b/Build/source/libs/icu-xetex/data/xml/main/nb.xml
index a92ff3b2ce2..bd889312f4c 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/nb.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/nb.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="nb"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/nl.xml b/Build/source/libs/icu-xetex/data/xml/main/nl.xml
index c80fafb0dda..56c0717764f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/nl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/nl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="nl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/nn.xml b/Build/source/libs/icu-xetex/data/xml/main/nn.xml
index ae64b119f3e..551c9125c6e 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/nn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/nn.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="nn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/no.xml b/Build/source/libs/icu-xetex/data/xml/main/no.xml
index 7a2a6afd030..b3dcc7201e0 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/no.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/no.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="no"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/om.xml b/Build/source/libs/icu-xetex/data/xml/main/om.xml
index 9e5e866988f..8cf72529ba0 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/om.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/om.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="om"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/or.xml b/Build/source/libs/icu-xetex/data/xml/main/or.xml
index 041bf3c3d7d..5ac8aabbfac 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/or.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/or.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="or"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Orya</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/pa.xml b/Build/source/libs/icu-xetex/data/xml/main/pa.xml
index 4a2a5a9b938..1ca5b0ba137 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/pa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/pa.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:55 $"/>
<language type="pa"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Guru</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/pl.xml b/Build/source/libs/icu-xetex/data/xml/main/pl.xml
index b519886879e..d59fc346d3c 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/pl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/pl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="pl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ps.xml b/Build/source/libs/icu-xetex/data/xml/main/ps.xml
index 5d0a3b6f7da..4791a2880f0 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ps.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ps.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="ps"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Arab</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/pt.xml b/Build/source/libs/icu-xetex/data/xml/main/pt.xml
index 4b4fa61a1da..980e1785194 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/pt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/pt.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="pt"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ro.xml b/Build/source/libs/icu-xetex/data/xml/main/ro.xml
index 63298b9c45e..644baee43bd 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ro.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ro.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="ro"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/root.xml b/Build/source/libs/icu-xetex/data/xml/main/root.xml
index 0f9d6cd94dd..c33be44c90a 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/root.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/root.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.28 $"/>
- <generation date="$Date: 2005/07/12 18:00:48 $"/>
+ <version number="$Revision: 1.30 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="root"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Zyyy</icu:script>
</icu:scripts>
@@ -23,65 +23,20 @@
</characters>
<dates>
<calendars>
- <calendar type="chinese">
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <!--
- IsLeapMonth {
- "",
- "*"
- }
- -->
- <icu:isLeapMonth>
- <icu:nonLeapSymbol/>
- <icu:leapSymbol>*</icu:leapSymbol>
- </icu:isLeapMonth>
- </special>
- </calendar>
- <!-- Note: LDML2ICUConverter wants to make a separate calendars{}
- in ICU. It works to simply merge them together. -->
-
- <calendar type="coptic"> <!-- from CopticCalendar.java -->
- <months>
- <monthContext type="format">
- <monthWidth type="wide">
- <month type="1">Tout</month>
- <month type="2">Baba</month>
- <month type="3">Hator</month>
- <month type="4">Kiahk</month>
- <month type="5">Toba</month>
- <month type="6">Amshir</month>
- <month type="7">Baramhat</month>
- <month type="8">Baramouda</month>
- <month type="9">Bashans</month>
- <month type="10">Paona</month>
- <month type="11">Epep</month>
- <month type="12">Mesra</month>
- <month type="13">Nasie</month>
- </monthWidth>
- </monthContext>
- </months>
- </calendar>
- <calendar type="ethiopic"> <!-- from EthiopicCalendar.java -->
- <months>
- <monthContext type="format">
- <monthWidth type="wide">
- <month type="1">Meskerem</month>
- <month type="2">Tekemt</month>
- <month type="3">Hedar</month>
- <month type="4">Tahsas</month>
- <month type="5">Ter</month>
- <month type="6">Yekatit</month>
- <month type="7">Megabit</month>
- <month type="8">Miazia</month>
- <month type="9">Genbot</month>
- <month type="10">Sene</month>
- <month type="11">Hamle</month>
- <month type="12">Nehasse</month>
- <month type="13">Pagumen</month>
- </monthWidth>
- </monthContext>
- </months>
- </calendar>
+ <calendar type="chinese">
+ <special xmlns:icu="http://www.icu-project.org/">
+ <!--
+ IsLeapMonth {
+ "",
+ "*"
+ }
+ -->
+ <icu:isLeapMonth>
+ <icu:nonLeapSymbol/>
+ <icu:leapSymbol>*</icu:leapSymbol>
+ </icu:isLeapMonth>
+ </special>
+ </calendar>
</calendars>
<timeZoneNames>
<zone type="">
@@ -97,14 +52,5 @@
</zone>
</timeZoneNames>
</dates>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:boundaries>
- <icu:grapheme icu:class="RuleBased" icu:import="char"/>
- <icu:word icu:class="RuleBased" icu:import="word"/>
- <icu:line icu:class="RuleBased" icu:import="line"/>
- <icu:sentence icu:class="RuleBased" icu:import="sent"/>
- <icu:title icu:class="RuleBased" icu:import="title"/>
- </icu:boundaries>
- </special>
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ru.xml b/Build/source/libs/icu-xetex/data/xml/main/ru.xml
index 05068368676..3000a9dbf12 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ru.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ru.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="ru"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sa.xml b/Build/source/libs/icu-xetex/data/xml/main/sa.xml
index e653b557010..74fba3e3434 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sa.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sa.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="sa"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Deva</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sa_IN.xml b/Build/source/libs/icu-xetex/data/xml/main/sa_IN.xml
deleted file mode 100644
index 43183415bc7..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/sa_IN.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
- <language type="sa"/>
- <territory type="IN"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sh.xml b/Build/source/libs/icu-xetex/data/xml/main/sh.xml
new file mode 100644
index 00000000000..43025abb45f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/sh.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
+ <language type="sh"/>
+ </identity>
+</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sid.xml b/Build/source/libs/icu-xetex/data/xml/main/sid.xml
index 662a2d0031a..950c5dacf03 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sid.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sid.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="sid"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sid_ET.xml b/Build/source/libs/icu-xetex/data/xml/main/sid_ET.xml
deleted file mode 100644
index 17623b7528a..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/sid_ET.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:55 $"/>
- <language type="sid"/>
- <territory type="ET"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sk.xml b/Build/source/libs/icu-xetex/data/xml/main/sk.xml
index f0dc7c48c4b..da2de9bc755 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sk.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="sk"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sl.xml b/Build/source/libs/icu-xetex/data/xml/main/sl.xml
index 0689273e030..0214f74678e 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sl.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sl.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="sl"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/so.xml b/Build/source/libs/icu-xetex/data/xml/main/so.xml
index ca6f19f8375..fbd153be003 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/so.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/so.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:56 $"/>
<language type="so"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sq.xml b/Build/source/libs/icu-xetex/data/xml/main/sq.xml
index 42dac1b048b..21ef9c2358f 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sq.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sq.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="sq"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sr.xml b/Build/source/libs/icu-xetex/data/xml/main/sr.xml
index 1033d4c7121..07535d78816 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="sr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sr_Cyrl.xml b/Build/source/libs/icu-xetex/data/xml/main/sr_Cyrl.xml
new file mode 100644
index 00000000000..e00f18f191a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/sr_Cyrl.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
+ <language type="sr"/>
+ <script type="Cyrl"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Cyrl</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
+</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sr_Latn.xml b/Build/source/libs/icu-xetex/data/xml/main/sr_Latn.xml
index 8c9bd1c69fe..751f7c9b8e4 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sr_Latn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sr_Latn.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="sr"/>
<script type="Latn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sv.xml b/Build/source/libs/icu-xetex/data/xml/main/sv.xml
index cbdb315be43..742994e55aa 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sv.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sv.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="sv"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/sw.xml b/Build/source/libs/icu-xetex/data/xml/main/sw.xml
index b48ddd67611..eadc9bbd877 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/sw.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/sw.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="sw"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/syr.xml b/Build/source/libs/icu-xetex/data/xml/main/syr.xml
index 746b11e4351..9a00ec0b138 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/syr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/syr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.20 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="syr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Syrc</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/syr_SY.xml b/Build/source/libs/icu-xetex/data/xml/main/syr_SY.xml
deleted file mode 100644
index 27e37b1e0c2..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/syr_SY.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
- <language type="syr"/>
- <territory type="SY"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ta.xml b/Build/source/libs/icu-xetex/data/xml/main/ta.xml
index 44028b53e0c..51c54d62ee7 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ta.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ta.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="ta"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Taml</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/te.xml b/Build/source/libs/icu-xetex/data/xml/main/te.xml
index bdcf715a609..559caae9b4e 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/te.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/te.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="te"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Telu</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/th.xml b/Build/source/libs/icu-xetex/data/xml/main/th.xml
index 2ea7d609518..57825eef392 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/th.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/th.xml
@@ -1,32 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
- <identity>
- <version number="$Revision: 1.24 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
- <language type="th"/>
- </identity>
- <characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:scripts>
- <icu:script type="1">Thai</icu:script>
- </icu:scripts>
- </special>
- </characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
- <icu:boundaries>
- <icu:word icu:class="RuleBased" icu:import="word_th"/>
- <icu:line icu:class="RuleBased" icu:import="line_th"/>
- </icu:boundaries>
- <icu:breakDictionaryData icu:class="DictionaryBased" icu:importFile="../brkitr/thaidict.brk"/>
- </special>
+ <identity>
+ <version number="$Revision: 1.26 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
+ <language type="th"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Thai</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
</ldml>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ti.xml b/Build/source/libs/icu-xetex/data/xml/main/ti.xml
index 6c2a8f5a62e..8d2cc4a1d11 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ti.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ti.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="ti"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/tig.xml b/Build/source/libs/icu-xetex/data/xml/main/tig.xml
index 873d5bf8e26..c845a1d2622 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/tig.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/tig.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.13 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.15 $"/>
+ <generation date="$Date: 2006/04/21 01:05:57 $"/>
<language type="tig"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/tig_ER.xml b/Build/source/libs/icu-xetex/data/xml/main/tig_ER.xml
deleted file mode 100644
index 0d24b4bf420..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/tig_ER.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
- <language type="tig"/>
- <territory type="ER"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/tr.xml b/Build/source/libs/icu-xetex/data/xml/main/tr.xml
index c457cccafcc..c908761e37e 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/tr.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/tr.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="tr"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/tt.xml b/Build/source/libs/icu-xetex/data/xml/main/tt.xml
index 8aa49a9fd6d..e3adecdf0d4 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/tt.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/tt.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="tt"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/tt_RU.xml b/Build/source/libs/icu-xetex/data/xml/main/tt_RU.xml
deleted file mode 100644
index 555e582e617..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/tt_RU.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:56 $"/>
- <language type="tt"/>
- <territory type="RU"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uk.xml b/Build/source/libs/icu-xetex/data/xml/main/uk.xml
index 8f5a5b493b3..3b03af5c255 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/uk.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/uk.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="uk"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ur.xml b/Build/source/libs/icu-xetex/data/xml/main/ur.xml
index 7beab7d7f26..5bae1356034 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/ur.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/ur.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.20 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.22 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="ur"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Arab</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/ur_IN.xml b/Build/source/libs/icu-xetex/data/xml/main/ur_IN.xml
new file mode 100644
index 00000000000..3b4a159ed37
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/ur_IN.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml>
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 16:09:28 $"/>
+ <language type="ur"/>
+ <territory type="IN"/>
+ </identity>
+</ldml> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uz.xml b/Build/source/libs/icu-xetex/data/xml/main/uz.xml
index 81504adfdd5..c47287745e1 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/uz.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/uz.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.19 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.21 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="uz"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Cyrl</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uz_Arab.xml b/Build/source/libs/icu-xetex/data/xml/main/uz_Arab.xml
index 3e299df873e..e986bc95e11 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/uz_Arab.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/uz_Arab.xml
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="uz"/>
<script type="Arab"/>
<territory type="AF"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Arab</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uz_Cyrl.xml b/Build/source/libs/icu-xetex/data/xml/main/uz_Cyrl.xml
new file mode 100644
index 00000000000..be23168550d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/uz_Cyrl.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.2 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
+ <language type="uz"/>
+ <script type="Cyrl"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Cyrl</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uz_Latn.xml b/Build/source/libs/icu-xetex/data/xml/main/uz_Latn.xml
index 4664699a83c..89d0baa17e0 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/uz_Latn.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/uz_Latn.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.2 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.4 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="uz"/>
<script type="Latn"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/uz_UZ.xml b/Build/source/libs/icu-xetex/data/xml/main/uz_UZ.xml
index 2ceb9558994..e02b63a2900 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/uz_UZ.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/uz_UZ.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.18 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.19 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="uz"/>
<territory type="UZ"/>
</identity>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/vi.xml b/Build/source/libs/icu-xetex/data/xml/main/vi.xml
index 05f2eed4cf4..b63e45b7ac7 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/vi.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/vi.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="vi"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Latn</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/wal.xml b/Build/source/libs/icu-xetex/data/xml/main/wal.xml
index 63dcac43f1b..6fea8692b17 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/wal.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/wal.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml draft="true">
<identity>
- <version number="$Revision: 1.12 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.14 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="wal"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Ethi</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/wal_ET.xml b/Build/source/libs/icu-xetex/data/xml/main/wal_ET.xml
deleted file mode 100644
index a2f8b0bfbdb..00000000000
--- a/Build/source/libs/icu-xetex/data/xml/main/wal_ET.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
--->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
-[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
- %icu;
-]
->
-<ldml draft="true">
- <identity>
- <version number="$Revision: 1.11 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
- <language type="wal"/>
- <territory type="ET"/>
- </identity>
-</ldml>
-
diff --git a/Build/source/libs/icu-xetex/data/xml/main/zh.xml b/Build/source/libs/icu-xetex/data/xml/main/zh.xml
index a6713411c4e..5b53ba128ca 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/zh.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/zh.xml
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.21 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.23 $"/>
+ <generation date="$Date: 2006/04/21 01:05:58 $"/>
<language type="zh"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Hani</icu:script>
</icu:scripts>
diff --git a/Build/source/libs/icu-xetex/data/xml/main/zh_Hans.xml b/Build/source/libs/icu-xetex/data/xml/main/zh_Hans.xml
new file mode 100644
index 00000000000..2157d62e3c5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/data/xml/main/zh_Hans.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
+-->
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
+[
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
+ %icu;
+]
+>
+<ldml draft="true">
+ <identity>
+ <version number="$Revision: 1.9 $"/>
+ <generation date="$Date: 2006/04/21 01:05:59 $"/>
+ <language type="zh"/>
+ <script type="Hans"/>
+ </identity>
+ <characters>
+ <special xmlns:icu="http://www.icu-project.org/">
+ <icu:scripts>
+ <icu:script type="1">Hani</icu:script>
+ <icu:script type="2">Bopo</icu:script>
+ </icu:scripts>
+ </special>
+ </characters>
+</ldml>
+
diff --git a/Build/source/libs/icu-xetex/data/xml/main/zh_Hant.xml b/Build/source/libs/icu-xetex/data/xml/main/zh_Hant.xml
index c8fa552bdad..a3bfaa10459 100644
--- a/Build/source/libs/icu-xetex/data/xml/main/zh_Hant.xml
+++ b/Build/source/libs/icu-xetex/data/xml/main/zh_Hant.xml
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
- Copyright (c) 2002-2005 International Business Machines Corporation and others. All rights reserved.
+ Copyright (c) 2002-2006 International Business Machines Corporation and others. All rights reserved.
-->
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.3/ldml.dtd"
+<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/dtd/1.4/ldml.dtd"
[
- <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.3/ldmlICU.dtd">
+ <!ENTITY % icu SYSTEM " http://www.unicode.org/cldr/dtd/1.4/ldmlICU.dtd">
%icu;
]
>
<ldml>
<identity>
- <version number="$Revision: 1.7 $"/>
- <generation date="$Date: 2005/06/07 23:37:57 $"/>
+ <version number="$Revision: 1.9 $"/>
+ <generation date="$Date: 2006/04/21 01:05:59 $"/>
<language type="zh"/>
<script type="Hant"/>
</identity>
<characters>
- <special xmlns:icu="http://oss.software.ibm.com/icu/">
+ <special xmlns:icu="http://www.icu-project.org/">
<icu:scripts>
<icu:script type="1">Hani</icu:script>
<icu:script type="2">Bopo</icu:script>
diff --git a/Build/source/libs/icu-xetex/extra/uconv/Makefile.in b/Build/source/libs/icu-xetex/extra/uconv/Makefile.in
index 90e7b31cf5e..6af8810b886 100644
--- a/Build/source/libs/icu-xetex/extra/uconv/Makefile.in
+++ b/Build/source/libs/icu-xetex/extra/uconv/Makefile.in
@@ -1,6 +1,6 @@
## ******************************************************************************
## *
-## * Copyright (C) 1999-2005, International Business Machines
+## * Copyright (C) 1999-2006, International Business Machines
## * Corporation and others. All Rights Reserved.
## *
## *******************************************************************************
@@ -151,6 +151,8 @@ ifneq ($(UCONVMSG_MODE),static)
install-resfiles: $(RESFILES)
$(MKINSTALLDIRS) $(DESTDIR)$(ICUDATA_DIR)
$(INVOKE) $(BINDIR)/pkgdata -p $(RESDIR) -O pkgdata.inc -m $(PKGMODE) -d $(RESDIR) -I $(INSTALLTO) -T $(RESDIR) $(RESDIR)/$(RESDIR).lst
+else
+install-resfiles:
endif
##
diff --git a/Build/source/libs/icu-xetex/extra/uconv/uconv.cpp b/Build/source/libs/icu-xetex/extra/uconv/uconv.cpp
index 581c744cfc0..a743daf0df3 100644
--- a/Build/source/libs/icu-xetex/extra/uconv/uconv.cpp
+++ b/Build/source/libs/icu-xetex/extra/uconv/uconv.cpp
@@ -1,6 +1,6 @@
/*****************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************/
@@ -41,7 +41,19 @@
#if (defined(U_WINDOWS) || defined(U_CYGWIN)) && !defined(__STRICT_ANSI__)
#include <io.h>
#include <fcntl.h>
+#if defined(U_WINDOWS)
#define USE_FILENO_BINARY_MODE 1
+/* Windows likes to rename Unix-like functions */
+#ifndef fileno
+#define fileno _fileno
+#endif
+#ifndef setmode
+#define setmode _setmode
+#endif
+#ifndef O_BINARY
+#define O_BINARY _O_BINARY
+#endif
+#endif
#endif
#ifdef UCONVMSG_LINK
diff --git a/Build/source/libs/icu-xetex/extra/uconv/uconv.vcproj b/Build/source/libs/icu-xetex/extra/uconv/uconv.vcproj
index 1620aecf088..1ef638bc1e8 100644
--- a/Build/source/libs/icu-xetex/extra/uconv/uconv.vcproj
+++ b/Build/source/libs/icu-xetex/extra/uconv/uconv.vcproj
@@ -26,6 +26,8 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/uconv.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +90,8 @@
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/uconv.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/i18n/Makefile.in b/Build/source/libs/icu-xetex/i18n/Makefile.in
index 96db8281fb7..eba8f2a8b30 100644
--- a/Build/source/libs/icu-xetex/i18n/Makefile.in
+++ b/Build/source/libs/icu-xetex/i18n/Makefile.in
@@ -1,6 +1,6 @@
#******************************************************************************
#
-# Copyright (C) 1998-2005, International Business Machines
+# Copyright (C) 1998-2006, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
@@ -15,7 +15,6 @@ top_builddir = ..
## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
--include Makefile.local
## Build directory information
subdir = i18n
@@ -33,7 +32,7 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = i18n.res
@@ -42,9 +41,9 @@ endif
ifeq ($(OS390BATCH),1)
BATCH_TARGET = $(BATCH_I18N_TARGET)
BATCH_LIBS = $(BATCH_LIBICUUC) -lm
-endif # OS390BATCH
+endif # OS390BATCH
-endif # ENABLE_SHARED
+endif # ENABLE_SHARED
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
@@ -52,18 +51,21 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICUI18N)
-CPPFLAGS += -I$(srcdir) -I$(top_builddir)/common -I$(top_srcdir)/common $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(srcdir) -I$(top_srcdir)/common $(LIBCPPFLAGS)
DEFS += -DU_I18N_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICUI18N)
LIBS = $(LIBICUUC) $(DEFAULT_LIBS)
OBJECTS = ucln_in.o \
fmtable.o format.o msgfmt.o umsg.o numfmt.o unum.o decimfmt.o dcfmtsym.o \
ucurr.o digitlst.o fmtable_cnv.o \
choicfmt.o datefmt.o smpdtfmt.o dtfmtsym.o udat.o \
-nfrs.o nfrule.o nfsubs.o rbnf.o \
+nfrs.o nfrule.o nfsubs.o rbnf.o ucsdet.o \
ucal.o calendar.o gregocal.o timezone.o simpletz.o olsontz.o \
-astro.o buddhcal.o islamcal.o japancal.o gregoimp.o hebrwcal.o chnsecal.o \
+astro.o buddhcal.o islamcal.o japancal.o gregoimp.o hebrwcal.o \
coleitr.o coll.o tblcoll.o sortkey.o bocsu.o ucoleitr.o \
ucol.o ucol_res.o ucol_bld.o ucol_sit.o ucol_tok.o ucol_wgt.o ucol_cnt.o ucol_elm.o \
strmatch.o usearch.o search.o stsearch.o \
@@ -72,15 +74,18 @@ cpdtrans.o rbt.o rbt_data.o rbt_pars.o rbt_rule.o rbt_set.o \
nultrans.o remtrans.o casetrn.o titletrn.o tolowtrn.o toupptrn.o anytrans.o \
name2uni.o uni2name.o nortrans.o quant.o transreg.o \
regexcmp.o rematch.o repattrn.o regexst.o uregex.o uregexc.o \
-ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o
+ulocdata.o measfmt.o currfmt.o curramt.o currunit.o measure.o utmscale.o \
+csdetect.o csmatch.o csr2022.o csrecog.o csrmbcs.o csrsbcs.o csrucode.o csrutf8.o inputext.o \
+windtfmt.o winnmfmt.o
+## Header files to install
+HEADERS = $(srcdir)/unicode/*.h
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
-## Header files to install
-HEADERS= $(srcdir)/unicode/*.h
+-include Makefile.local
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
@@ -100,7 +105,7 @@ check: all check-local
all-local: $(ALL_TARGETS)
-install-local: install-headers install-library
+install-local: install-headers install-library
install-library: all-local
$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
@@ -154,14 +159,14 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
-endif # OS390BATCH
-endif
+endif # OS390BATCH
+endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -170,3 +175,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/i18n/anytrans.cpp b/Build/source/libs/icu-xetex/i18n/anytrans.cpp
index d46668ec910..bd76fe148a7 100644
--- a/Build/source/libs/icu-xetex/i18n/anytrans.cpp
+++ b/Build/source/libs/icu-xetex/i18n/anytrans.cpp
@@ -182,7 +182,7 @@ AnyTransliterator::AnyTransliterator(const UnicodeString& id,
Transliterator(id, NULL),
targetScript(theTargetScript)
{
- cache = uhash_open(uhash_hashLong, uhash_compareLong, &ec);
+ cache = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &ec);
uhash_setValueDeleter(cache, _deleteTransliterator);
target = theTarget;
@@ -205,7 +205,7 @@ AnyTransliterator::AnyTransliterator(const AnyTransliterator& o) :
{
// Don't copy the cache contents
UErrorCode ec = U_ZERO_ERROR;
- cache = uhash_open(uhash_hashLong, uhash_compareLong, &ec);
+ cache = uhash_open(uhash_hashLong, uhash_compareLong, NULL, &ec);
uhash_setValueDeleter(cache, _deleteTransliterator);
}
diff --git a/Build/source/libs/icu-xetex/i18n/anytrans.h b/Build/source/libs/icu-xetex/i18n/anytrans.h
index 4a7d8f2ef68..f37675a83e9 100644
--- a/Build/source/libs/icu-xetex/i18n/anytrans.h
+++ b/Build/source/libs/icu-xetex/i18n/anytrans.h
@@ -1,6 +1,6 @@
/*
***********************************************************************
-* Copyright (c) 2002-2005, International Business Machines Corporation
+* Copyright (c) 2002-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************
* Date Name Description
@@ -74,15 +74,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/astro.cpp b/Build/source/libs/icu-xetex/i18n/astro.cpp
index 16fd0f2e397..457176c8a15 100644
--- a/Build/source/libs/icu-xetex/i18n/astro.cpp
+++ b/Build/source/libs/icu-xetex/i18n/astro.cpp
@@ -1,5 +1,5 @@
/************************************************************************
- * Copyright (C) 1996-2004, International Business Machines Corporation *
+ * Copyright (C) 1996-2006, International Business Machines Corporation *
* and others. All Rights Reserved. *
************************************************************************
* 2003-nov-07 srl Port from Java
@@ -617,9 +617,9 @@ CalendarAstronomer::Equatorial& CalendarAstronomer::getSunPosition(CalendarAstro
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-double CalendarAstronomer::VERNAL_EQUINOX() {
+/*double CalendarAstronomer::VERNAL_EQUINOX() {
return 0;
-}
+}*/
/**
* Constant representing the summer solstice.
@@ -639,9 +639,9 @@ double CalendarAstronomer::SUMMER_SOLSTICE() {
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-double CalendarAstronomer::AUTUMN_EQUINOX() {
+/*double CalendarAstronomer::AUTUMN_EQUINOX() {
return (CalendarAstronomer::PI);
-}
+}*/
/**
* Constant representing the winter solstice.
@@ -650,9 +650,11 @@ double CalendarAstronomer::AUTUMN_EQUINOX() {
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-double CalendarAstronomer::WINTER_SOLSTICE() {
+/*double CalendarAstronomer::WINTER_SOLSTICE() {
return ((CalendarAstronomer::PI*3)/2);
-}
+}*/
+
+CalendarAstronomer::AngleFunc::~AngleFunc() {}
/**
* Find the next time at which the sun's ecliptic longitude will have
@@ -675,6 +677,8 @@ UDate CalendarAstronomer::getSunTime(double desired, UBool next)
next);
}
+CalendarAstronomer::CoordFunc::~CoordFunc() {}
+
class RiseSetCoordFunc : public CalendarAstronomer::CoordFunc {
public:
virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer&a) { a.getSunPosition(result); }
@@ -1124,9 +1128,9 @@ double CalendarAstronomer::getMoonPhase() {
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-const CalendarAstronomer::MoonAge CalendarAstronomer::NEW_MOON() {
+/*const CalendarAstronomer::MoonAge CalendarAstronomer::NEW_MOON() {
return CalendarAstronomer::MoonAge(0);
-}
+}*/
/**
* Constant representing the moon's first quarter.
@@ -1134,9 +1138,9 @@ const CalendarAstronomer::MoonAge CalendarAstronomer::NEW_MOON() {
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-const CalendarAstronomer::MoonAge CalendarAstronomer::FIRST_QUARTER() {
+/*const CalendarAstronomer::MoonAge CalendarAstronomer::FIRST_QUARTER() {
return CalendarAstronomer::MoonAge(CalendarAstronomer::PI/2);
-}
+}*/
/**
* Constant representing a full moon.
@@ -1159,9 +1163,9 @@ public:
virtual double eval(CalendarAstronomer&a) { return a.getMoonAge(); }
};
-const CalendarAstronomer::MoonAge CalendarAstronomer::LAST_QUARTER() {
+/*const CalendarAstronomer::MoonAge CalendarAstronomer::LAST_QUARTER() {
return CalendarAstronomer::MoonAge((CalendarAstronomer::PI*3)/2);
-}
+}*/
/**
* Find the next or previous time at which the Moon's ecliptic
@@ -1421,7 +1425,7 @@ void CalendarAstronomer::clearCache() {
* @internal
* @deprecated ICU 2.4. This class may be removed or modified.
*/
-UDate CalendarAstronomer::local(UDate localMillis) {
+/*UDate CalendarAstronomer::local(UDate localMillis) {
// TODO - srl ?
TimeZone *tz = TimeZone::createDefault();
int32_t rawOffset;
@@ -1430,7 +1434,7 @@ UDate CalendarAstronomer::local(UDate localMillis) {
tz->getOffset(localMillis, TRUE, rawOffset, dstOffset, status);
delete tz;
return localMillis - rawOffset;
-}
+}*/
// Debugging functions
UnicodeString CalendarAstronomer::Ecliptic::toString() const
@@ -1488,13 +1492,14 @@ UnicodeString CalendarAstronomer::Horizon::toString() const
void CalendarCache::createCache(CalendarCache** cache, UErrorCode& status) {
ucln_i18n_registerCleanup(UCLN_I18N_ASTRO_CALENDAR, calendar_astro_cleanup);
- *cache = new CalendarCache(32, status);
if(cache == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
- }
- if(U_FAILURE(status)) {
- delete *cache;
- *cache = NULL;
+ } else {
+ *cache = new CalendarCache(32, status);
+ if(U_FAILURE(status)) {
+ delete *cache;
+ *cache = NULL;
+ }
}
}
@@ -1522,7 +1527,6 @@ int32_t CalendarCache::get(CalendarCache** cache, int32_t key, UErrorCode &statu
}
void CalendarCache::put(CalendarCache** cache, int32_t key, int32_t value, UErrorCode &status) {
-
if(U_FAILURE(status)) {
return;
}
@@ -1543,7 +1547,7 @@ void CalendarCache::put(CalendarCache** cache, int32_t key, int32_t value, UErro
}
CalendarCache::CalendarCache(int32_t size, UErrorCode &status) {
- fTable = uhash_openSize(uhash_hashLong, uhash_compareLong, size, &status);
+ fTable = uhash_openSize(uhash_hashLong, uhash_compareLong, NULL, size, &status);
U_DEBUG_ASTRO_MSG(("%p: Opening.\n", fTable));
}
diff --git a/Build/source/libs/icu-xetex/i18n/astro.h b/Build/source/libs/icu-xetex/i18n/astro.h
index 8291d60eda6..18e6aa55ca9 100644
--- a/Build/source/libs/icu-xetex/i18n/astro.h
+++ b/Build/source/libs/icu-xetex/i18n/astro.h
@@ -1,5 +1,5 @@
/************************************************************************
- * Copyright (C) 1996-2003, International Business Machines Corporation *
+ * Copyright (C) 1996-2006, International Business Machines Corporation *
* and others. All Rights Reserved. *
************************************************************************
* 2003-nov-07 srl Port from Java
@@ -497,7 +497,7 @@ public:
* Note: In this case, "vernal" refers to the northern hemisphere's seasons.
* @internal
*/
- static double VERNAL_EQUINOX();
+// static double VERNAL_EQUINOX();
/**
* Constant representing the summer solstice.
@@ -513,7 +513,7 @@ public:
* Note: In this case, "autumn" refers to the northern hemisphere's seasons.
* @internal
*/
- static double AUTUMN_EQUINOX();
+// static double AUTUMN_EQUINOX();
/**
* Constant representing the winter solstice.
@@ -521,7 +521,7 @@ public:
* Note: In this case, "winter" refers to the northern hemisphere's seasons.
* @internal
*/
- static double WINTER_SOLSTICE();
+// static double WINTER_SOLSTICE();
/**
* Find the next time at which the sun's ecliptic longitude will have
@@ -596,14 +596,14 @@ public:
* For use with {@link #getMoonTime getMoonTime}
* @internal
*/
- static const MoonAge NEW_MOON();
+// static const MoonAge NEW_MOON();
/**
* Constant representing the moon's first quarter.
* For use with {@link #getMoonTime getMoonTime}
* @internal
*/
- static const MoonAge FIRST_QUARTER();
+// static const MoonAge FIRST_QUARTER();
/**
* Constant representing a full moon.
@@ -617,7 +617,7 @@ public:
* For use with {@link #getMoonTime getMoonTime}
* @internal
*/
- static const MoonAge LAST_QUARTER();
+// static const MoonAge LAST_QUARTER();
/**
* Find the next or previous time at which the Moon's ecliptic
@@ -643,18 +643,20 @@ public:
//-------------------------------------------------------------------------
// private
- class U_I18N_API AngleFunc : public UMemory {
+ class AngleFunc : public UMemory {
public:
virtual double eval(CalendarAstronomer&) = 0;
+ virtual ~AngleFunc();
};
friend class AngleFunc;
UDate timeOfAngle(AngleFunc& func, double desired,
double periodDays, double epsilon, UBool next);
- class U_I18N_API CoordFunc : public UMemory {
+ class CoordFunc : public UMemory {
public:
virtual void eval(Equatorial& result, CalendarAstronomer&) = 0;
+ virtual ~CoordFunc();
};
friend class CoordFunc;
@@ -757,7 +759,7 @@ private:
/**
* @internal
*/
- UDate local(UDate localMillis);
+// UDate local(UDate localMillis);
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/i18n/calendar.cpp b/Build/source/libs/icu-xetex/i18n/calendar.cpp
index ae801310bef..6e537028833 100644
--- a/Build/source/libs/icu-xetex/i18n/calendar.cpp
+++ b/Build/source/libs/icu-xetex/i18n/calendar.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -34,7 +34,7 @@
#include "japancal.h"
#include "islamcal.h"
#include "hebrwcal.h"
-#include "chnsecal.h"
+//#include "chnsecal.h"
#include "unicode/calendar.h"
#include "cpputils.h"
#include "servloc.h"
@@ -111,7 +111,7 @@ static const char* fldName(UCalendarDateFields f) {
}
-
+#if UCAL_DEBUG_DUMP
// from CalendarTest::calToStr - but doesn't modify contents.
void ucal_dump(const Calendar &cal) {
cal.dump();
@@ -147,7 +147,7 @@ void Calendar::dump() const {
U_CFUNC void ucal_dump(UCalendar* cal) {
ucal_dump( *((Calendar*)cal) );
}
-
+#endif
#endif
@@ -685,20 +685,24 @@ Calendar::createInstance(TimeZone* zone, const Locale& aLocale, UErrorCode& succ
else
#endif
{
+ UErrorCode feErr;
char calLocaleType[ULOC_FULLNAME_CAPACITY];
calLocaleType[0] = 0; // NULL terminate
int32_t keywordCapacity = aLocale.getKeywordValue("calendar", calLocaleType, sizeof(calLocaleType)-1, success);
if (keywordCapacity == 0) {
char funcEquiv[ULOC_FULLNAME_CAPACITY];
+ feErr = success;
+
// fetch default calendar id
ures_getFunctionalEquivalent(funcEquiv, sizeof(funcEquiv)-1,
NULL, "calendar", "calendar",
aLocale.getName(),
- NULL, FALSE, &success);
+ NULL, FALSE, &feErr);
keywordCapacity = uloc_getKeywordValue(funcEquiv, "calendar", calLocaleType,
- sizeof(calLocaleType)-1, &success);
- if (keywordCapacity == 0 || U_FAILURE(success)) {
+ sizeof(calLocaleType)-1, &feErr); // This can fail if there is no data.
+ // Don't want to stop calendar construction just because we couldn't get this type.
+ if (keywordCapacity == 0 || U_FAILURE(feErr)) {
// no calendar type. Default to nothing.
calLocaleType[0] = 0;
}
@@ -2723,15 +2727,15 @@ int32_t Calendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t w
int32_t minDays = getMinimalDaysInFirstWeek();
UBool jan1InPrevYear = FALSE; // January 1st in the year of WOY is the 1st week? (i.e. first week is < minimal )
- UBool nextJan1InPrevYear = FALSE; // January 1st of Year of WOY + 1 is in the first week?
+ //UBool nextJan1InPrevYear = FALSE; // January 1st of Year of WOY + 1 is in the first week?
if((7 - first) < minDays) {
jan1InPrevYear = TRUE;
}
- if((7 - nextFirst) < minDays) {
- nextJan1InPrevYear = TRUE;
- }
+// if((7 - nextFirst) < minDays) {
+// nextJan1InPrevYear = TRUE;
+// }
switch(bestField) {
case UCAL_WEEK_OF_YEAR:
diff --git a/Build/source/libs/icu-xetex/i18n/choicfmt.cpp b/Build/source/libs/icu-xetex/i18n/choicfmt.cpp
index eeac7f381ca..b9caa9a3b9c 100644
--- a/Build/source/libs/icu-xetex/i18n/choicfmt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/choicfmt.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -31,9 +31,10 @@
#include "unicode/numfmt.h"
#include "unicode/locid.h"
#include "cpputils.h"
-#include "ustrfmt.h"
#include "cstring.h"
#include "putilimp.h"
+#include <stdio.h>
+#include <float.h>
// *****************************************************************************
// class ChoiceFormat
@@ -210,9 +211,33 @@ UnicodeString&
ChoiceFormat::dtos(double value,
UnicodeString& string)
{
- char temp[256];
+ /* Buffer to contain the digits and any extra formatting stuff. */
+ char temp[DBL_DIG + 16];
+ char *itrPtr = temp;
+ char *startPtr;
+
+ sprintf(temp, "%.*f", DBL_DIG, value);
+
+ /* Find and convert the decimal point.
+ Using setlocale on some machines will cause sprintf to use a comma for certain locales.
+ */
+ while (*itrPtr && (*itrPtr == '-' || isdigit(*itrPtr))) {
+ itrPtr++;
+ }
+ if (*itrPtr) {
+ *itrPtr = '.';
+ }
- uprv_dtostr(value, temp, 3, TRUE);
+ /* remove trailing zeros, except the one after '.' */
+ startPtr = itrPtr + 1;
+ itrPtr = uprv_strchr(startPtr, 0);
+ while(--itrPtr > startPtr){
+ if(*itrPtr == '0'){
+ *itrPtr = 0;
+ }else{
+ break;
+ }
+ }
string = UnicodeString(temp, -1, US_INV); /* invariant codepage */
return string;
}
diff --git a/Build/source/libs/icu-xetex/i18n/coleitr.cpp b/Build/source/libs/icu-xetex/i18n/coleitr.cpp
index f7ec8d449d0..8c1b87f4960 100644
--- a/Build/source/libs/icu-xetex/i18n/coleitr.cpp
+++ b/Build/source/libs/icu-xetex/i18n/coleitr.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines Corporation and *
+* Copyright (C) 1996-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -46,25 +46,25 @@ CollationElementIterator::CollationElementIterator(
const CollationElementIterator& other)
: UObject(other), isDataOwned_(TRUE)
{
- UErrorCode status = U_ZERO_ERROR;
- m_data_ = ucol_openElements(other.m_data_->iteratordata_.coll, NULL, 0,
- &status);
+ UErrorCode status = U_ZERO_ERROR;
+ m_data_ = ucol_openElements(other.m_data_->iteratordata_.coll, NULL, 0,
+ &status);
- *this = other;
+ *this = other;
}
CollationElementIterator::~CollationElementIterator()
{
- if (isDataOwned_) {
- ucol_closeElements(m_data_);
- }
+ if (isDataOwned_) {
+ ucol_closeElements(m_data_);
+ }
}
/* CollationElementIterator public methods --------------------------------- */
int32_t CollationElementIterator::getOffset() const
{
- return ucol_getOffset(m_data_);
+ return ucol_getOffset(m_data_);
}
/**
@@ -74,13 +74,13 @@ int32_t CollationElementIterator::getOffset() const
*/
int32_t CollationElementIterator::next(UErrorCode& status)
{
- return ucol_next(m_data_, &status);
+ return ucol_next(m_data_, &status);
}
UBool CollationElementIterator::operator!=(
const CollationElementIterator& other) const
{
- return !(*this == other);
+ return !(*this == other);
}
UBool CollationElementIterator::operator==(
@@ -152,7 +152,7 @@ UBool CollationElementIterator::operator==(
*/
int32_t CollationElementIterator::previous(UErrorCode& status)
{
- return ucol_previous(m_data_, &status);
+ return ucol_previous(m_data_, &status);
}
/**
@@ -160,13 +160,13 @@ int32_t CollationElementIterator::previous(UErrorCode& status)
*/
void CollationElementIterator::reset()
{
- ucol_reset(m_data_);
+ ucol_reset(m_data_);
}
void CollationElementIterator::setOffset(int32_t newOffset,
UErrorCode& status)
{
- ucol_setOffset(m_data_, newOffset, &status);
+ ucol_setOffset(m_data_, newOffset, &status);
}
/**
@@ -175,96 +175,96 @@ void CollationElementIterator::setOffset(int32_t newOffset,
void CollationElementIterator::setText(const UnicodeString& source,
UErrorCode& status)
{
- if (U_FAILURE(status)) {
- return;
- }
-
- int32_t length = source.length();
- UChar *string = NULL;
- if (m_data_->isWritable && m_data_->iteratordata_.string != NULL) {
- uprv_free(m_data_->iteratordata_.string);
- }
- m_data_->isWritable = TRUE;
- if (length > 0) {
- string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
- /* test for NULL */
- if (string == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (U_FAILURE(status)) {
return;
}
- u_memcpy(string, source.getBuffer(), length);
- }
- else {
- string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
- /* test for NULL */
- if (string == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
+
+ int32_t length = source.length();
+ UChar *string = NULL;
+ if (m_data_->isWritable && m_data_->iteratordata_.string != NULL) {
+ uprv_free(m_data_->iteratordata_.string);
+ }
+ m_data_->isWritable = TRUE;
+ if (length > 0) {
+ string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
+ /* test for NULL */
+ if (string == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ u_memcpy(string, source.getBuffer(), length);
+ }
+ else {
+ string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
+ /* test for NULL */
+ if (string == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ *string = 0;
}
- *string = 0;
- }
- uprv_init_collIterate(m_data_->iteratordata_.coll, string, length,
- &m_data_->iteratordata_);
+ uprv_init_collIterate(m_data_->iteratordata_.coll, string, length,
+ &m_data_->iteratordata_);
- m_data_->reset_ = TRUE;
+ m_data_->reset_ = TRUE;
}
// Sets the source to the new character iterator.
void CollationElementIterator::setText(CharacterIterator& source,
UErrorCode& status)
{
- if (U_FAILURE(status))
- return;
-
- int32_t length = source.getLength();
- UChar *buffer = NULL;
-
- if (length == 0) {
- buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
- /* test for NULL */
- if (buffer == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (U_FAILURE(status))
return;
+
+ int32_t length = source.getLength();
+ UChar *buffer = NULL;
+
+ if (length == 0) {
+ buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
+ /* test for NULL */
+ if (buffer == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ *buffer = 0;
}
- *buffer = 0;
- }
- else {
- buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
- /* test for NULL */
- if (buffer == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- /*
- Using this constructor will prevent buffer from being removed when
- string gets removed
- */
- UnicodeString string;
- source.getText(string);
- u_memcpy(buffer, string.getBuffer(), length);
- }
-
- if (m_data_->isWritable && m_data_->iteratordata_.string != NULL) {
- uprv_free(m_data_->iteratordata_.string);
- }
- m_data_->isWritable = TRUE;
- uprv_init_collIterate(m_data_->iteratordata_.coll, buffer, length,
- &m_data_->iteratordata_);
- m_data_->reset_ = TRUE;
+ else {
+ buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
+ /* test for NULL */
+ if (buffer == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ /*
+ Using this constructor will prevent buffer from being removed when
+ string gets removed
+ */
+ UnicodeString string;
+ source.getText(string);
+ u_memcpy(buffer, string.getBuffer(), length);
+ }
+
+ if (m_data_->isWritable && m_data_->iteratordata_.string != NULL) {
+ uprv_free(m_data_->iteratordata_.string);
+ }
+ m_data_->isWritable = TRUE;
+ uprv_init_collIterate(m_data_->iteratordata_.coll, buffer, length,
+ &m_data_->iteratordata_);
+ m_data_->reset_ = TRUE;
}
int32_t CollationElementIterator::strengthOrder(int32_t order) const
{
- UCollationStrength s = ucol_getStrength(m_data_->iteratordata_.coll);
- // Mask off the unwanted differences.
- if (s == UCOL_PRIMARY) {
- order &= RuleBasedCollator::PRIMARYDIFFERENCEONLY;
- }
- else if (s == UCOL_SECONDARY) {
- order &= RuleBasedCollator::SECONDARYDIFFERENCEONLY;
- }
-
- return order;
+ UCollationStrength s = ucol_getStrength(m_data_->iteratordata_.coll);
+ // Mask off the unwanted differences.
+ if (s == UCOL_PRIMARY) {
+ order &= RuleBasedCollator::PRIMARYDIFFERENCEONLY;
+ }
+ else if (s == UCOL_SECONDARY) {
+ order &= RuleBasedCollator::SECONDARYDIFFERENCEONLY;
+ }
+
+ return order;
}
/* CollationElementIterator private constructors/destructors --------------- */
@@ -279,42 +279,42 @@ CollationElementIterator::CollationElementIterator(
UErrorCode& status)
: isDataOwned_(TRUE)
{
- if (U_FAILURE(status)) {
- return;
- }
-
- int32_t length = sourceText.length();
- UChar *string = NULL;
-
- if (length > 0) {
- string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
- /* test for NULL */
- if (string == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- /*
- Using this constructor will prevent buffer from being removed when
- string gets removed
- */
- u_memcpy(string, sourceText.getBuffer(), length);
- }
- else {
- string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
- /* test for NULL */
- if (string == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (U_FAILURE(status)) {
return;
- }
- *string = 0;
- }
- m_data_ = ucol_openElements(order->ucollator, string, length, &status);
-
- /* Test for buffer overflows */
- if (U_FAILURE(status)) {
- return;
- }
- m_data_->isWritable = TRUE;
+ }
+
+ int32_t length = sourceText.length();
+ UChar *string = NULL;
+
+ if (length > 0) {
+ string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
+ /* test for NULL */
+ if (string == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ /*
+ Using this constructor will prevent buffer from being removed when
+ string gets removed
+ */
+ u_memcpy(string, sourceText.getBuffer(), length);
+ }
+ else {
+ string = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
+ /* test for NULL */
+ if (string == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ *string = 0;
+ }
+ m_data_ = ucol_openElements(order->ucollator, string, length, &status);
+
+ /* Test for buffer overflows */
+ if (U_FAILURE(status)) {
+ return;
+ }
+ m_data_->isWritable = TRUE;
}
/**
@@ -327,62 +327,62 @@ CollationElementIterator::CollationElementIterator(
UErrorCode& status)
: isDataOwned_(TRUE)
{
- if (U_FAILURE(status))
- return;
-
- // **** should I just drop this test? ****
- /*
- if ( sourceText.endIndex() != 0 )
- {
- // A CollationElementIterator is really a two-layered beast.
- // Internally it uses a Normalizer to munge the source text into a form
- // where all "composed" Unicode characters (such as \u00FC) are split into a
- // normal character and a combining accent character.
- // Afterward, CollationElementIterator does its own processing to handle
- // expanding and contracting collation sequences, ignorables, and so on.
-
- Normalizer::EMode decomp = order->getStrength() == Collator::IDENTICAL
- ? Normalizer::NO_OP : order->getDecomposition();
-
- text = new Normalizer(sourceText, decomp);
- if (text == NULL)
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- */
- int32_t length = sourceText.getLength();
- UChar *buffer;
- if (length > 0) {
- buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
- /* test for NULL */
- if (buffer == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+ if (U_FAILURE(status))
return;
- }
- /*
- Using this constructor will prevent buffer from being removed when
- string gets removed
- */
- UnicodeString string(buffer, length, length);
- ((CharacterIterator &)sourceText).getText(string);
- const UChar *temp = string.getBuffer();
- u_memcpy(buffer, temp, length);
- }
- else {
- buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
- /* test for NULL */
- if (buffer == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
+
+ // **** should I just drop this test? ****
+ /*
+ if ( sourceText.endIndex() != 0 )
+ {
+ // A CollationElementIterator is really a two-layered beast.
+ // Internally it uses a Normalizer to munge the source text into a form
+ // where all "composed" Unicode characters (such as \u00FC) are split into a
+ // normal character and a combining accent character.
+ // Afterward, CollationElementIterator does its own processing to handle
+ // expanding and contracting collation sequences, ignorables, and so on.
+
+ Normalizer::EMode decomp = order->getStrength() == Collator::IDENTICAL
+ ? Normalizer::NO_OP : order->getDecomposition();
+
+ text = new Normalizer(sourceText, decomp);
+ if (text == NULL)
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ */
+ int32_t length = sourceText.getLength();
+ UChar *buffer;
+ if (length > 0) {
+ buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR * length);
+ /* test for NULL */
+ if (buffer == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ /*
+ Using this constructor will prevent buffer from being removed when
+ string gets removed
+ */
+ UnicodeString string(buffer, length, length);
+ ((CharacterIterator &)sourceText).getText(string);
+ const UChar *temp = string.getBuffer();
+ u_memcpy(buffer, temp, length);
+ }
+ else {
+ buffer = (UChar *)uprv_malloc(U_SIZEOF_UCHAR);
+ /* test for NULL */
+ if (buffer == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ *buffer = 0;
+ }
+ m_data_ = ucol_openElements(order->ucollator, buffer, length, &status);
+
+ /* Test for buffer overflows */
+ if (U_FAILURE(status)) {
return;
- }
- *buffer = 0;
- }
- m_data_ = ucol_openElements(order->ucollator, buffer, length, &status);
-
- /* Test for buffer overflows */
- if (U_FAILURE(status)) {
- return;
- }
- m_data_->isWritable = TRUE;
+ }
+ m_data_->isWritable = TRUE;
}
/* CollationElementIterator protected methods ----------------------------- */
@@ -390,98 +390,100 @@ CollationElementIterator::CollationElementIterator(
const CollationElementIterator& CollationElementIterator::operator=(
const CollationElementIterator& other)
{
- if (this != &other)
- {
- UCollationElements *ucolelem = this->m_data_;
- UCollationElements *otherucolelem = other.m_data_;
- collIterate *coliter = &(ucolelem->iteratordata_);
- collIterate *othercoliter = &(otherucolelem->iteratordata_);
- int length = 0;
-
- // checking only UCOL_ITER_HASLEN is not enough here as we may be in
- // the normalization buffer
- length = othercoliter->endp - othercoliter->string;
-
- ucolelem->reset_ = otherucolelem->reset_;
- ucolelem->isWritable = TRUE;
-
- /* create a duplicate of string */
- if (length > 0) {
- coliter->string = (UChar *)uprv_malloc(length * U_SIZEOF_UCHAR);
- if(coliter->string != NULL) {
- uprv_memcpy(coliter->string, othercoliter->string,
- length * U_SIZEOF_UCHAR);
- } else { // Error: couldn't allocate memory. No copying should be done
- length = 0;
- }
- }
- else {
- coliter->string = NULL;
- }
-
- /* start and end of string */
- coliter->endp = coliter->string + length;
-
- /* handle writable buffer here */
-
- if (othercoliter->flags & UCOL_ITER_INNORMBUF) {
- uint32_t wlength = u_strlen(othercoliter->writableBuffer) + 1;
- if (wlength < coliter->writableBufSize) {
- uprv_memcpy(coliter->stackWritableBuffer,
- othercoliter->stackWritableBuffer,
- othercoliter->writableBufSize * U_SIZEOF_UCHAR);
- }
- else {
- if (coliter->writableBuffer != coliter->stackWritableBuffer) {
- uprv_free(coliter->writableBuffer);
- }
- coliter->writableBuffer = (UChar *)uprv_malloc(
- wlength * U_SIZEOF_UCHAR);
- if(coliter->writableBuffer != NULL) {
- uprv_memcpy(coliter->writableBuffer,
- othercoliter->writableBuffer,
- wlength * U_SIZEOF_UCHAR);
- coliter->writableBufSize = wlength;
- } else { // Error: couldn't allocate memory for writableBuffer
- coliter->writableBufSize = 0;
- }
- }
- }
-
- /* current position */
- if (othercoliter->pos >= othercoliter->string &&
- othercoliter->pos <= othercoliter->endp) {
- coliter->pos = coliter->string +
- (othercoliter->pos - othercoliter->string);
- }
- else {
- coliter->pos = coliter->writableBuffer +
- (othercoliter->pos - othercoliter->writableBuffer);
- }
-
- /* CE buffer */
- uprv_memcpy(coliter->CEs, othercoliter->CEs,
- UCOL_EXPAND_CE_BUFFER_SIZE * sizeof(uint32_t));
- coliter->toReturn = coliter->CEs +
- (othercoliter->toReturn - othercoliter->CEs);
- coliter->CEpos = coliter->CEs +
- (othercoliter->CEpos - othercoliter->CEs);
-
- if (othercoliter->fcdPosition != NULL) {
- coliter->fcdPosition = coliter->string +
- (othercoliter->fcdPosition
- - othercoliter->string);
- }
- else {
- coliter->fcdPosition = NULL;
- }
- coliter->flags = othercoliter->flags/*| UCOL_ITER_HASLEN*/;
- coliter->origFlags = othercoliter->origFlags;
- coliter->coll = othercoliter->coll;
- this->isDataOwned_ = TRUE;
- }
-
- return *this;
+ if (this != &other)
+ {
+ UCollationElements *ucolelem = this->m_data_;
+ UCollationElements *otherucolelem = other.m_data_;
+ collIterate *coliter = &(ucolelem->iteratordata_);
+ collIterate *othercoliter = &(otherucolelem->iteratordata_);
+ int length = 0;
+
+ // checking only UCOL_ITER_HASLEN is not enough here as we may be in
+ // the normalization buffer
+ length = othercoliter->endp - othercoliter->string;
+
+ ucolelem->reset_ = otherucolelem->reset_;
+ ucolelem->isWritable = TRUE;
+
+ /* create a duplicate of string */
+ if (length > 0) {
+ coliter->string = (UChar *)uprv_malloc(length * U_SIZEOF_UCHAR);
+ if(coliter->string != NULL) {
+ uprv_memcpy(coliter->string, othercoliter->string,
+ length * U_SIZEOF_UCHAR);
+ } else { // Error: couldn't allocate memory. No copying should be done
+ length = 0;
+ }
+ }
+ else {
+ coliter->string = NULL;
+ }
+
+ /* start and end of string */
+ coliter->endp = coliter->string + length;
+
+ /* handle writable buffer here */
+
+ if (othercoliter->flags & UCOL_ITER_INNORMBUF) {
+ uint32_t wlength = u_strlen(othercoliter->writableBuffer) + 1;
+ if (wlength < coliter->writableBufSize) {
+ uprv_memcpy(coliter->stackWritableBuffer,
+ othercoliter->stackWritableBuffer,
+ wlength * U_SIZEOF_UCHAR);
+ }
+ else {
+ if (coliter->writableBuffer != coliter->stackWritableBuffer) {
+ uprv_free(coliter->writableBuffer);
+ }
+ coliter->writableBuffer = (UChar *)uprv_malloc(
+ wlength * U_SIZEOF_UCHAR);
+ if(coliter->writableBuffer != NULL) {
+ uprv_memcpy(coliter->writableBuffer,
+ othercoliter->writableBuffer,
+ wlength * U_SIZEOF_UCHAR);
+ coliter->writableBufSize = wlength;
+ } else { // Error: couldn't allocate memory for writableBuffer
+ coliter->writableBufSize = 0;
+ }
+ }
+ }
+
+ /* current position */
+ if (othercoliter->pos >= othercoliter->string &&
+ othercoliter->pos <= othercoliter->endp)
+ {
+ coliter->pos = coliter->string +
+ (othercoliter->pos - othercoliter->string);
+ }
+ else {
+ coliter->pos = coliter->writableBuffer +
+ (othercoliter->pos - othercoliter->writableBuffer);
+ }
+
+ /* CE buffer */
+ int32_t CEsize = (int32_t)(othercoliter->CEpos - othercoliter->CEs);
+ if (CEsize > 0) {
+ uprv_memcpy(coliter->CEs, othercoliter->CEs, CEsize);
+ }
+ coliter->toReturn = coliter->CEs +
+ (othercoliter->toReturn - othercoliter->CEs);
+ coliter->CEpos = coliter->CEs + CEsize;
+
+ if (othercoliter->fcdPosition != NULL) {
+ coliter->fcdPosition = coliter->string +
+ (othercoliter->fcdPosition
+ - othercoliter->string);
+ }
+ else {
+ coliter->fcdPosition = NULL;
+ }
+ coliter->flags = othercoliter->flags/*| UCOL_ITER_HASLEN*/;
+ coliter->origFlags = othercoliter->origFlags;
+ coliter->coll = othercoliter->coll;
+ this->isDataOwned_ = TRUE;
+ }
+
+ return *this;
}
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/i18n/cpdtrans.cpp b/Build/source/libs/icu-xetex/i18n/cpdtrans.cpp
index c20241e2ac5..afd1fdbf8bd 100644
--- a/Build/source/libs/icu-xetex/i18n/cpdtrans.cpp
+++ b/Build/source/libs/icu-xetex/i18n/cpdtrans.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -20,7 +20,7 @@
#include "cmemory.h"
// keep in sync with Transliterator
-static const UChar ID_SEP = 0x002D; /*-*/
+//static const UChar ID_SEP = 0x002D; /*-*/
static const UChar ID_DELIM = 0x003B; /*;*/
static const UChar NEWLINE = 10;
diff --git a/Build/source/libs/icu-xetex/i18n/csdetect.cpp b/Build/source/libs/icu-xetex/i18n/csdetect.cpp
new file mode 100644
index 00000000000..812bc65ebf4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csdetect.cpp
@@ -0,0 +1,387 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "unicode/ucsdet.h"
+
+#include "csdetect.h"
+#include "csmatch.h"
+#include "uenumimp.h"
+
+#include "cmemory.h"
+#include "cstring.h"
+#include "umutex.h"
+#include "ucln_in.h"
+#include "uarrsort.h"
+#include "inputext.h"
+#include "csrsbcs.h"
+#include "csrmbcs.h"
+#include "csrutf8.h"
+#include "csrucode.h"
+#include "csr2022.h"
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+U_CDECL_BEGIN
+static CharsetRecognizer **fCSRecognizers = NULL;
+
+static int32_t fCSRecognizers_size = 0;
+
+static UBool U_CALLCONV csdet_cleanup(void)
+{
+ if (fCSRecognizers != NULL) {
+ for(int32_t r = 0; r < fCSRecognizers_size; r += 1) {
+ delete fCSRecognizers[r];
+ fCSRecognizers[r] = NULL;
+ }
+
+ DELETE_ARRAY(fCSRecognizers);
+ fCSRecognizers = NULL;
+ fCSRecognizers_size = 0;
+ }
+
+ return TRUE;
+}
+
+static int32_t U_CALLCONV
+charsetMatchComparator(const void *context, const void *left, const void *right)
+{
+ const CharsetMatch **csm_l = (const CharsetMatch **) left;
+ const CharsetMatch **csm_r = (const CharsetMatch **) right;
+
+ // NOTE: compare is backwards to sort from highest to lowest.
+ return (*csm_r)->getConfidence() - (*csm_l)->getConfidence();
+}
+
+U_CDECL_END
+
+U_NAMESPACE_BEGIN
+
+void CharsetDetector::setRecognizers(UErrorCode &status)
+{
+ UBool needsInit;
+ CharsetRecognizer **recognizers;
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ umtx_lock(NULL);
+ needsInit = (UBool) (fCSRecognizers == NULL);
+ umtx_unlock(NULL);
+
+ if (needsInit) {
+ CharsetRecognizer *tempArray[] = {
+ new CharsetRecog_UTF8(),
+
+ new CharsetRecog_UTF_16_BE(),
+ new CharsetRecog_UTF_16_LE(),
+ new CharsetRecog_UTF_32_BE(),
+ new CharsetRecog_UTF_32_LE(),
+
+ new CharsetRecog_8859_1_en(),
+ new CharsetRecog_8859_1_da(),
+ new CharsetRecog_8859_1_de(),
+ new CharsetRecog_8859_1_es(),
+ new CharsetRecog_8859_1_fr(),
+ new CharsetRecog_8859_1_it(),
+ new CharsetRecog_8859_1_nl(),
+ new CharsetRecog_8859_1_no(),
+ new CharsetRecog_8859_1_pt(),
+ new CharsetRecog_8859_1_sv(),
+ new CharsetRecog_8859_2_cs(),
+ new CharsetRecog_8859_2_hu(),
+ new CharsetRecog_8859_2_pl(),
+ new CharsetRecog_8859_2_ro(),
+ new CharsetRecog_8859_5_ru(),
+ new CharsetRecog_8859_6_ar(),
+ new CharsetRecog_8859_7_el(),
+ new CharsetRecog_8859_8_I_he(),
+ new CharsetRecog_8859_8_he(),
+ new CharsetRecog_windows_1251(),
+ new CharsetRecog_windows_1256(),
+ new CharsetRecog_KOI8_R(),
+ new CharsetRecog_8859_9_tr(),
+ new CharsetRecog_sjis(),
+ new CharsetRecog_gb_18030(),
+ new CharsetRecog_euc_jp(),
+ new CharsetRecog_euc_kr(),
+ new CharsetRecog_big5(),
+
+ new CharsetRecog_2022JP(),
+ new CharsetRecog_2022KR(),
+ new CharsetRecog_2022CN()
+ };
+ int32_t rCount = ARRAY_SIZE(tempArray);
+ int32_t r;
+
+ recognizers = NEW_ARRAY(CharsetRecognizer *, rCount);
+
+ if (recognizers == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ } else {
+ for (r = 0; r < rCount; r += 1) {
+ recognizers[r] = tempArray[r];
+
+ if (recognizers[r] == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
+ }
+ }
+
+ if (U_SUCCESS(status)) {
+ umtx_lock(NULL);
+ if (fCSRecognizers == NULL) {
+ fCSRecognizers = recognizers;
+ fCSRecognizers_size = rCount;
+ }
+ umtx_unlock(NULL);
+ }
+
+ if (fCSRecognizers != recognizers) {
+ for (r = 0; r < rCount; r += 1) {
+ delete recognizers[r];
+ recognizers[r] = NULL;
+ }
+
+ DELETE_ARRAY(recognizers);
+ }
+
+ recognizers = NULL;
+ ucln_i18n_registerCleanup(UCLN_I18N_CSDET, csdet_cleanup);
+ }
+}
+
+CharsetDetector::CharsetDetector(UErrorCode &status)
+ : textIn(new InputText()), resultCount(0), fStripTags(FALSE), fFreshTextSet(FALSE)
+{
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ setRecognizers(status);
+
+ if (U_FAILURE(status)) {
+ return;
+ }
+
+ resultArray = (CharsetMatch **)uprv_malloc(sizeof(CharsetMatch *)*fCSRecognizers_size);
+
+ if (resultArray == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+
+ for(int32_t i = 0; i < fCSRecognizers_size; i += 1) {
+ resultArray[i] = new CharsetMatch();
+
+ if (resultArray[i] == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ break;
+ }
+ }
+}
+
+CharsetDetector::~CharsetDetector()
+{
+ delete textIn;
+
+ for(int32_t i = 0; i < fCSRecognizers_size; i += 1) {
+ delete resultArray[i];
+ }
+
+ uprv_free(resultArray);
+}
+
+void CharsetDetector::setText(const char *in, int32_t len)
+{
+ textIn->setText(in, len);
+ fFreshTextSet = TRUE;
+}
+
+UBool CharsetDetector::setStripTagsFlag(UBool flag)
+{
+ UBool temp = fStripTags;
+ fStripTags = flag;
+ fFreshTextSet = TRUE;
+ return temp;
+}
+
+UBool CharsetDetector::getStripTagsFlag() const
+{
+ return fStripTags;
+}
+
+void CharsetDetector::setDeclaredEncoding(const char *encoding, int32_t len) const
+{
+ textIn->setDeclaredEncoding(encoding,len);
+}
+
+int32_t CharsetDetector::getDetectableCount()
+{
+ UErrorCode status = U_ZERO_ERROR;
+
+ setRecognizers(status);
+
+ return fCSRecognizers_size;
+}
+
+const CharsetMatch *CharsetDetector::detect(UErrorCode &status)
+{
+ int32_t maxMatchesFound = 0;
+
+ detectAll(maxMatchesFound, status);
+
+ if(maxMatchesFound > 0) {
+ return resultArray[0];
+ } else {
+ return NULL;
+ }
+}
+
+const CharsetMatch * const *CharsetDetector::detectAll(int32_t &maxMatchesFound, UErrorCode &status)
+{
+ if(!textIn->isSet()) {
+ status = U_MISSING_RESOURCE_ERROR;// TODO: Need to set proper status code for input text not set
+
+ return NULL;
+ } else if(fFreshTextSet) {
+ CharsetRecognizer *csr;
+ int32_t detectResults;
+ int32_t confidence;
+
+ textIn->MungeInput(fStripTags);
+
+ // Iterate over all possible charsets, remember all that
+ // give a match quality > 0.
+ resultCount = 0;
+ for (int32_t i = 0; i < fCSRecognizers_size; i += 1) {
+ csr = fCSRecognizers[i];
+ detectResults = csr->match(textIn);
+ confidence = detectResults;
+
+ if (confidence > 0) {
+ resultArray[resultCount++]->set(textIn, csr, confidence);
+ }
+ }
+
+ for(int32_t i = resultCount; i < fCSRecognizers_size; i += 1) {
+ resultArray[i]->set(textIn, 0, 0);
+ }
+
+ uprv_sortArray(resultArray, resultCount, sizeof resultArray[0], charsetMatchComparator, NULL, TRUE, &status);
+ ////Bubble sort
+ //for(int32_t i = resultCount; i > 1; i -= 1) {
+ // for(int32_t j = 0; j < i-1; j += 1) {
+ // if(resultArray[j]->getConfidence() < resultArray[j+1]->getConfidence()) {
+ // CharsetMatch *temp = resultArray[j];
+ // resultArray[j] = resultArray[j+1];
+ // resultArray[j+1] = temp;
+ // }
+ // }
+ //}
+
+ fFreshTextSet = FALSE;
+ }
+
+ maxMatchesFound = resultCount;
+
+ return resultArray;
+}
+
+const char *CharsetDetector::getCharsetName(int32_t index, UErrorCode &status) const
+{
+ if( index > fCSRecognizers_size-1 || index < 0) {
+ status = U_INDEX_OUTOFBOUNDS_ERROR;
+
+ return 0;
+ } else {
+ return fCSRecognizers[index]->getName();
+ }
+}
+
+U_NAMESPACE_END
+
+U_CDECL_BEGIN
+typedef struct {
+ int32_t currIndex;
+} Context;
+
+
+
+static void U_CALLCONV
+enumClose(UEnumeration *en) {
+ if(en->context != NULL) {
+ DELETE_ARRAY(en->context);
+ }
+
+ DELETE_ARRAY(en);
+}
+
+static int32_t U_CALLCONV
+enumCount(UEnumeration *, UErrorCode *) {
+ return fCSRecognizers_size;
+}
+
+static const char* U_CALLCONV
+enumNext(UEnumeration *en, int32_t *resultLength, UErrorCode *status) {
+ if(((Context *)en->context)->currIndex >= fCSRecognizers_size) {
+ if(resultLength != NULL) {
+ *resultLength = 0;
+ }
+ return NULL;
+ }
+ const char *currName = fCSRecognizers[((Context *)en->context)->currIndex]->getName();
+ if(resultLength != NULL) {
+ *resultLength = (int32_t)uprv_strlen(currName);
+ }
+ ((Context *)en->context)->currIndex++;
+
+ return currName;
+}
+
+static void U_CALLCONV
+enumReset(UEnumeration *en, UErrorCode *) {
+ ((Context *)en->context)->currIndex = 0;
+}
+
+static const UEnumeration gCSDetEnumeration = {
+ NULL,
+ NULL,
+ enumClose,
+ enumCount,
+ uenum_unextDefault,
+ enumNext,
+ enumReset
+};
+
+U_CAPI UEnumeration * U_EXPORT2
+ucsdet_getAllDetectableCharsets(const UCharsetDetector *ucsd, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return 0;
+ }
+
+ /* Initialize recognized charsets. */
+ CharsetDetector::getDetectableCount();
+
+ UEnumeration *en = NEW_ARRAY(UEnumeration, 1);
+ memcpy(en, &gCSDetEnumeration, sizeof(UEnumeration));
+ en->context = (void*)NEW_ARRAY(Context, 1);
+ uprv_memset(en->context, 0, sizeof(Context));
+ return en;
+}
+U_CDECL_END
+
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csdetect.h b/Build/source/libs/icu-xetex/i18n/csdetect.h
new file mode 100644
index 00000000000..1cf323e30a6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csdetect.h
@@ -0,0 +1,56 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSDETECT_H
+#define __CSDETECT_H
+
+#include "unicode/uobject.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+U_NAMESPACE_BEGIN
+
+class InputText;
+class CharsetRecognizer;
+class CharsetMatch;
+
+class CharsetDetector : public UMemory
+{
+private:
+ InputText *textIn;
+ CharsetMatch **resultArray;
+ int32_t resultCount;
+ UBool fStripTags; // If true, setText() will strip tags from input text.
+ UBool fFreshTextSet;
+ static void setRecognizers(UErrorCode &status);
+
+public:
+ CharsetDetector(UErrorCode &status);
+
+ ~CharsetDetector();
+
+ void setText(const char *in, int32_t len);
+
+ const CharsetMatch * const *detectAll(int32_t &maxMatchesFound, UErrorCode &status);
+
+ const CharsetMatch *detect(UErrorCode& status);
+
+ void setDeclaredEncoding(const char *encoding, int32_t len) const;
+
+ UBool setStripTagsFlag(UBool flag);
+
+ UBool getStripTagsFlag() const;
+
+ const char *getCharsetName(int32_t index, UErrorCode& status) const;
+
+ static int32_t getDetectableCount();
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSDETECT_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csmatch.cpp b/Build/source/libs/icu-xetex/i18n/csmatch.cpp
new file mode 100644
index 00000000000..f1d25d2dde9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csmatch.cpp
@@ -0,0 +1,61 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+#include "unicode/unistr.h"
+#include "unicode/ucnv.h"
+
+#include "csmatch.h"
+
+#include "csrecog.h"
+#include "inputext.h"
+
+U_NAMESPACE_BEGIN
+
+CharsetMatch::CharsetMatch()
+ : csr(0), confidence(0)
+{
+ // nothing else to do.
+}
+
+void CharsetMatch::set(InputText *input, CharsetRecognizer *cr, int32_t conf)
+{
+ textIn = input;
+ csr = cr;
+ confidence = conf;
+}
+
+const char* CharsetMatch::getName()const
+{
+ return csr->getName();
+}
+
+const char* CharsetMatch::getLanguage()const
+{
+ return csr->getLanguage();
+}
+
+int32_t CharsetMatch::getConfidence()const
+{
+ return confidence;
+}
+
+int32_t CharsetMatch::getUChars(UChar *buf, int32_t cap, UErrorCode *status) const
+{
+ UConverter *conv = ucnv_open(getName(), status);
+ int32_t result = ucnv_toUChars(conv, buf, cap, (const char *) textIn->fRawInput, textIn->fRawLength, status);
+
+ ucnv_close(conv);
+
+ return result;
+}
+
+U_NAMESPACE_END
+
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csmatch.h b/Build/source/libs/icu-xetex/i18n/csmatch.h
new file mode 100644
index 00000000000..50b78a3a1dc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csmatch.h
@@ -0,0 +1,44 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSMATCH_H
+#define __CSMATCH_H
+
+#include "unicode/uobject.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+U_NAMESPACE_BEGIN
+
+class InputText;
+class CharsetRecognizer;
+
+class CharsetMatch : public UMemory
+{
+ private:
+ CharsetRecognizer *csr;
+ InputText *textIn;
+ int32_t confidence;
+
+ public:
+ CharsetMatch();
+
+ void set(InputText *input, CharsetRecognizer *cr, int32_t conf);
+
+ const char *getName()const;
+
+ const char *getLanguage()const;
+
+ int32_t getConfidence()const;
+
+ int32_t getUChars(UChar *buf, int32_t cap, UErrorCode *status) const;
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSMATCH_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csr2022.cpp b/Build/source/libs/icu-xetex/i18n/csr2022.cpp
new file mode 100644
index 00000000000..c7165f1c0d3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csr2022.cpp
@@ -0,0 +1,172 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "cstring.h"
+
+#include "csr2022.h"
+
+U_NAMESPACE_BEGIN
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+/**
+ * Matching function shared among the 2022 detectors JP, CN and KR
+ * Counts up the number of legal an unrecognized escape sequences in
+ * the sample of text, and computes a score based on the total number &
+ * the proportion that fit the encoding.
+ *
+ *
+ * @param text the byte buffer containing text to analyse
+ * @param textLen the size of the text in the byte.
+ * @param escapeSequences the byte escape sequences to test for.
+ * @return match quality, in the range of 0-100.
+ */
+int32_t CharsetRecog_2022::match_2022(const uint8_t *text, int32_t textLen, const uint8_t escapeSequences[][5], int32_t escapeSequences_length)
+{
+ int32_t i, j;
+ int32_t escN;
+ int32_t hits = 0;
+ int32_t misses = 0;
+ int32_t shifts = 0;
+ int32_t quality;
+
+ i = 0;
+ while(i < textLen) {
+ if(text[i] == 0x1B) {
+ escN = 0;
+ while(escN < escapeSequences_length) {
+ int32_t seq_length = uprv_strlen((const char *) escapeSequences[escN]);
+ const uint8_t *seq = escapeSequences[escN];
+
+ j = 1;
+ while(j < seq_length) {
+ if(seq[j] != text[i+j]) {
+ goto checkEscapes;
+ }
+
+ j += 1;
+ }
+
+ hits += 1;
+ i += seq_length-1;
+ goto scanInput;
+checkEscapes:
+ escN += 1;
+ }
+
+ misses += 1;
+ }
+
+ if( text[i]== 0x0e || text[i] == 0x0f){
+ shifts += 1;
+ }
+
+scanInput:
+ i += 1;
+ }
+
+ if (hits == 0) {
+ return 0;
+ }
+
+ //
+ // Initial quality is based on relative proportion of recongized vs.
+ // unrecognized escape sequences.
+ // All good: quality = 100;
+ // half or less good: quality = 0;
+ // linear inbetween.
+ quality = (100*hits - 100*misses) / (hits + misses);
+
+ // Back off quality if there were too few escape sequences seen.
+ // Include shifts in this computation, so that KR does not get penalized
+ // for having only a single Escape sequence, but many shifts.
+ if (hits+shifts < 5) {
+ quality -= (5-(hits+shifts))*10;
+ }
+
+ if (quality < 0) {
+ quality = 0;
+ }
+
+ return quality;
+}
+
+
+static const uint8_t escapeSequences_2022JP[][5] = {
+ {0x1b, 0x24, 0x28, 0x43, 0x00}, // KS X 1001:1992
+ {0x1b, 0x24, 0x28, 0x44, 0x00}, // JIS X 212-1990
+ {0x1b, 0x24, 0x40, 0x00, 0x00}, // JIS C 6226-1978
+ {0x1b, 0x24, 0x41, 0x00, 0x00}, // GB 2312-80
+ {0x1b, 0x24, 0x42, 0x00, 0x00}, // JIS X 208-1983
+ {0x1b, 0x26, 0x40, 0x00, 0x00}, // JIS X 208 1990, 1997
+ {0x1b, 0x28, 0x42, 0x00, 0x00}, // ASCII
+ {0x1b, 0x28, 0x48, 0x00, 0x00}, // JIS-Roman
+ {0x1b, 0x28, 0x49, 0x00, 0x00}, // Half-width katakana
+ {0x1b, 0x28, 0x4a, 0x00, 0x00}, // JIS-Roman
+ {0x1b, 0x2e, 0x41, 0x00, 0x00}, // ISO 8859-1
+ {0x1b, 0x2e, 0x46, 0x00, 0x00} // ISO 8859-7
+};
+
+static const uint8_t escapeSequences_2022KR[][5] = {
+ {0x1b, 0x24, 0x29, 0x43, 0x00}
+};
+
+static const uint8_t escapeSequences_2022CN[][5] = {
+ {0x1b, 0x24, 0x29, 0x41, 0x00}, // GB 2312-80
+ {0x1b, 0x24, 0x29, 0x47, 0x00}, // CNS 11643-1992 Plane 1
+ {0x1b, 0x24, 0x2A, 0x48, 0x00}, // CNS 11643-1992 Plane 2
+ {0x1b, 0x24, 0x29, 0x45, 0x00}, // ISO-IR-165
+ {0x1b, 0x24, 0x2B, 0x49, 0x00}, // CNS 11643-1992 Plane 3
+ {0x1b, 0x24, 0x2B, 0x4A, 0x00}, // CNS 11643-1992 Plane 4
+ {0x1b, 0x24, 0x2B, 0x4B, 0x00}, // CNS 11643-1992 Plane 5
+ {0x1b, 0x24, 0x2B, 0x4C, 0x00}, // CNS 11643-1992 Plane 6
+ {0x1b, 0x24, 0x2B, 0x4D, 0x00}, // CNS 11643-1992 Plane 7
+ {0x1b, 0x4e, 0x00, 0x00, 0x00}, // SS2
+ {0x1b, 0x4f, 0x00, 0x00, 0x00}, // SS3
+};
+
+const char *CharsetRecog_2022JP::getName() const
+{
+ return "ISO-2022-JP";
+}
+
+int32_t CharsetRecog_2022JP::match(InputText *textIn)
+{
+ return match_2022(textIn->fInputBytes, textIn->fInputLen, escapeSequences_2022JP, ARRAY_SIZE(escapeSequences_2022JP));
+}
+
+const char *CharsetRecog_2022KR::getName() const
+{
+ return "ISO-2022-KR";
+}
+
+int32_t CharsetRecog_2022KR::match(InputText *textIn)
+{
+ return match_2022(textIn->fInputBytes, textIn->fInputLen, escapeSequences_2022KR, ARRAY_SIZE(escapeSequences_2022KR));
+}
+
+const char *CharsetRecog_2022CN::getName() const
+{
+ return "ISO-2022-CN";
+}
+
+int32_t CharsetRecog_2022CN::match(InputText *textIn)
+{
+ return match_2022(textIn->fInputBytes, textIn->fInputLen, escapeSequences_2022CN, ARRAY_SIZE(escapeSequences_2022CN));
+}
+
+CharsetRecog_2022::~CharsetRecog_2022()
+{
+ // nothing to do
+}
+
+U_NAMESPACE_END
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csr2022.h b/Build/source/libs/icu-xetex/i18n/csr2022.h
new file mode 100644
index 00000000000..5d34711bdc3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csr2022.h
@@ -0,0 +1,86 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSR2022_H
+#define __CSR2022_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * class CharsetRecog_2022 part of the ICU charset detection imlementation.
+ * This is a superclass for the individual detectors for
+ * each of the detectable members of the ISO 2022 family
+ * of encodings.
+ *
+ * The separate classes are nested within this class.
+ *
+ * @internal
+ */
+class CharsetRecog_2022 : public CharsetRecognizer
+{
+
+public:
+ virtual ~CharsetRecog_2022() = 0;
+
+protected:
+
+ /**
+ * Matching function shared among the 2022 detectors JP, CN and KR
+ * Counts up the number of legal an unrecognized escape sequences in
+ * the sample of text, and computes a score based on the total number &
+ * the proportion that fit the encoding.
+ *
+ *
+ * @param text the byte buffer containing text to analyse
+ * @param textLen the size of the text in the byte.
+ * @param escapeSequences the byte escape sequences to test for.
+ * @return match quality, in the range of 0-100.
+ */
+ int32_t match_2022(const uint8_t *text, int32_t textLen, const uint8_t escapeSequences[][5], int32_t escapeSequences_length);
+
+};
+
+class CharsetRecog_2022JP :public CharsetRecog_2022
+{
+public:
+ virtual ~CharsetRecog_2022JP() {}
+
+ const char *getName() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_2022KR :public CharsetRecog_2022 {
+public:
+ virtual ~CharsetRecog_2022KR() {}
+
+ const char *getName() const;
+
+ int32_t match(InputText *textIn);
+
+};
+
+class CharsetRecog_2022CN :public CharsetRecog_2022
+{
+public:
+ virtual ~CharsetRecog_2022CN() {}
+
+ const char* getName() const;
+
+ int32_t match(InputText *textIn);
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSR2022_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csrecog.cpp b/Build/source/libs/icu-xetex/i18n/csrecog.cpp
new file mode 100644
index 00000000000..ba70b1547f8
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrecog.cpp
@@ -0,0 +1,28 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+CharsetRecognizer::~CharsetRecognizer()
+{
+ // nothing to do.
+}
+
+const char *CharsetRecognizer::getLanguage() const
+{
+ return "";
+}
+
+U_NAMESPACE_END
+
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csrecog.h b/Build/source/libs/icu-xetex/i18n/csrecog.h
new file mode 100644
index 00000000000..75cf94f49f4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrecog.h
@@ -0,0 +1,42 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSRECOG_H
+#define __CSRECOG_H
+
+#include "unicode/uobject.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "inputext.h"
+
+U_NAMESPACE_BEGIN
+
+class CharsetRecognizer : public UMemory
+{
+ public:
+ /**
+ * Get the IANA name of this charset.
+ * @return the charset name.
+ */
+ virtual const char *getName() const = 0;
+
+ /**
+ * Get the ISO language code for this charset.
+ * @return the language code, or <code>null</code> if the language cannot be determined.
+ */
+ virtual const char *getLanguage() const;
+
+ virtual int32_t match(InputText *textIn) = 0;
+
+ virtual ~CharsetRecognizer();
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSRECOG_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csrmbcs.cpp b/Build/source/libs/icu-xetex/i18n/csrmbcs.cpp
new file mode 100644
index 00000000000..11f70a78861
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrmbcs.cpp
@@ -0,0 +1,517 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrmbcs.h"
+
+#include <math.h>
+
+U_NAMESPACE_BEGIN
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define min(x,y) (((x)<(y))?(x):(y))
+
+const int32_t commonChars_sjis [] = {
+// TODO: This set of data comes from the character frequency-
+// of-occurence analysis tool. The data needs to be moved
+// into a resource and loaded from there.
+0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176, 0x82a0,
+0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1, 0x82b3, 0x82b5,
+0x82b7, 0x82bd, 0x82be, 0x82c1, 0x82c4, 0x82c5, 0x82c6, 0x82c8, 0x82c9, 0x82cc,
+0x82cd, 0x82dc, 0x82e0, 0x82e7, 0x82e8, 0x82e9, 0x82ea, 0x82f0, 0x82f1, 0x8341,
+0x8343, 0x834e, 0x834f, 0x8358, 0x835e, 0x8362, 0x8367, 0x8375, 0x8376, 0x8389,
+0x838a, 0x838b, 0x838d, 0x8393, 0x8e96, 0x93fa, 0x95aa};
+
+const int32_t commonChars_euc_jp[] = {
+// TODO: This set of data comes from the character frequency-
+// of-occurence analysis tool. The data needs to be moved
+// into a resource and loaded from there.
+0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7, 0xa4a2,
+0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af, 0xa4b1, 0xa4b3,
+0xa4b5, 0xa4b7, 0xa4b9, 0xa4bb, 0xa4bd, 0xa4bf, 0xa4c0, 0xa4c1, 0xa4c3, 0xa4c4,
+0xa4c6, 0xa4c7, 0xa4c8, 0xa4c9, 0xa4ca, 0xa4cb, 0xa4ce, 0xa4cf, 0xa4d0, 0xa4de,
+0xa4df, 0xa4e1, 0xa4e2, 0xa4e4, 0xa4e8, 0xa4e9, 0xa4ea, 0xa4eb, 0xa4ec, 0xa4ef,
+0xa4f2, 0xa4f3, 0xa5a2, 0xa5a3, 0xa5a4, 0xa5a6, 0xa5a7, 0xa5aa, 0xa5ad, 0xa5af,
+0xa5b0, 0xa5b3, 0xa5b5, 0xa5b7, 0xa5b8, 0xa5b9, 0xa5bf, 0xa5c3, 0xa5c6, 0xa5c7,
+0xa5c8, 0xa5c9, 0xa5cb, 0xa5d0, 0xa5d5, 0xa5d6, 0xa5d7, 0xa5de, 0xa5e0, 0xa5e1,
+0xa5e5, 0xa5e9, 0xa5ea, 0xa5eb, 0xa5ec, 0xa5ed, 0xa5f3, 0xb8a9, 0xb9d4, 0xbaee,
+0xbbc8, 0xbef0, 0xbfb7, 0xc4ea, 0xc6fc, 0xc7bd, 0xcab8, 0xcaf3, 0xcbdc, 0xcdd1};
+
+const int32_t commonChars_euc_kr[] = {
+// TODO: This set of data comes from the character frequency-
+// of-occurence analysis tool. The data needs to be moved
+// into a resource and loaded from there.
+0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa, 0xb0fc,
+0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2, 0xb4cf, 0xb4d9,
+0xb4eb, 0xb5a5, 0xb5b5, 0xb5bf, 0xb5c7, 0xb5e9, 0xb6f3, 0xb7af, 0xb7c2, 0xb7ce,
+0xb8a6, 0xb8ae, 0xb8b6, 0xb8b8, 0xb8bb, 0xb8e9, 0xb9ab, 0xb9ae, 0xb9cc, 0xb9ce,
+0xb9fd, 0xbab8, 0xbace, 0xbad0, 0xbaf1, 0xbbe7, 0xbbf3, 0xbbfd, 0xbcad, 0xbcba,
+0xbcd2, 0xbcf6, 0xbdba, 0xbdc0, 0xbdc3, 0xbdc5, 0xbec6, 0xbec8, 0xbedf, 0xbeee,
+0xbef8, 0xbefa, 0xbfa1, 0xbfa9, 0xbfc0, 0xbfe4, 0xbfeb, 0xbfec, 0xbff8, 0xc0a7,
+0xc0af, 0xc0b8, 0xc0ba, 0xc0bb, 0xc0bd, 0xc0c7, 0xc0cc, 0xc0ce, 0xc0cf, 0xc0d6,
+0xc0da, 0xc0e5, 0xc0fb, 0xc0fc, 0xc1a4, 0xc1a6, 0xc1b6, 0xc1d6, 0xc1df, 0xc1f6,
+0xc1f8, 0xc4a1, 0xc5cd, 0xc6ae, 0xc7cf, 0xc7d1, 0xc7d2, 0xc7d8, 0xc7e5, 0xc8ad};
+
+const int32_t commonChars_big5[] = {
+// TODO: This set of data comes from the character frequency-
+// of-occurence analysis tool. The data needs to be moved
+// into a resource and loaded from there.
+0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440, 0xa446,
+0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c, 0xa477, 0xa4a3,
+0xa4a4, 0xa4a7, 0xa4c1, 0xa4ce, 0xa4d1, 0xa4df, 0xa4e8, 0xa4fd, 0xa540, 0xa548,
+0xa558, 0xa569, 0xa5cd, 0xa5e7, 0xa657, 0xa661, 0xa662, 0xa668, 0xa670, 0xa6a8,
+0xa6b3, 0xa6b9, 0xa6d3, 0xa6db, 0xa6e6, 0xa6f2, 0xa740, 0xa751, 0xa759, 0xa7da,
+0xa8a3, 0xa8a5, 0xa8ad, 0xa8d1, 0xa8d3, 0xa8e4, 0xa8fc, 0xa9c0, 0xa9d2, 0xa9f3,
+0xaa6b, 0xaaba, 0xaabe, 0xaacc, 0xaafc, 0xac47, 0xac4f, 0xacb0, 0xacd2, 0xad59,
+0xaec9, 0xafe0, 0xb0ea, 0xb16f, 0xb2b3, 0xb2c4, 0xb36f, 0xb44c, 0xb44e, 0xb54c,
+0xb5a5, 0xb5bd, 0xb5d0, 0xb5d8, 0xb671, 0xb7ed, 0xb867, 0xb944, 0xbad8, 0xbb44,
+0xbba1, 0xbdd1, 0xc2c4, 0xc3b9, 0xc440, 0xc45f};
+
+const int32_t commonChars_gb_18030[] = {
+// TODO: This set of data comes from the character frequency-
+// of-occurence analysis tool. The data needs to be moved
+// into a resource and loaded from there.
+0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1, 0xa3ac,
+0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3, 0xb5bd, 0xb5c4,
+0xb5e3, 0xb6af, 0xb6d4, 0xb6e0, 0xb7a2, 0xb7a8, 0xb7bd, 0xb7d6, 0xb7dd, 0xb8b4,
+0xb8df, 0xb8f6, 0xb9ab, 0xb9c9, 0xb9d8, 0xb9fa, 0xb9fd, 0xbacd, 0xbba7, 0xbbd6,
+0xbbe1, 0xbbfa, 0xbcbc, 0xbcdb, 0xbcfe, 0xbdcc, 0xbecd, 0xbedd, 0xbfb4, 0xbfc6,
+0xbfc9, 0xc0b4, 0xc0ed, 0xc1cb, 0xc2db, 0xc3c7, 0xc4dc, 0xc4ea, 0xc5cc, 0xc6f7,
+0xc7f8, 0xc8ab, 0xc8cb, 0xc8d5, 0xc8e7, 0xc9cf, 0xc9fa, 0xcab1, 0xcab5, 0xcac7,
+0xcad0, 0xcad6, 0xcaf5, 0xcafd, 0xccec, 0xcdf8, 0xceaa, 0xcec4, 0xced2, 0xcee5,
+0xcfb5, 0xcfc2, 0xcfd6, 0xd0c2, 0xd0c5, 0xd0d0, 0xd0d4, 0xd1a7, 0xd2aa, 0xd2b2,
+0xd2b5, 0xd2bb, 0xd2d4, 0xd3c3, 0xd3d0, 0xd3fd, 0xd4c2, 0xd4da, 0xd5e2, 0xd6d0};
+
+static int32_t binarySearch(const int32_t *array, int32_t len, int32_t value)
+{
+ int32_t start = 0, end = len-1;
+ int32_t mid = (start+end)/2;
+
+ while(start <= end) {
+ if(array[mid] == value) {
+ return mid;
+ }
+
+ if(array[mid] < value){
+ start = mid+1;
+ } else {
+ end = mid-1;
+ }
+
+ mid = (start+end)/2;
+ }
+
+ return -1;
+}
+
+IteratedChar::IteratedChar():charValue(0), index(0), nextIndex(0), error(FALSE), done(FALSE)
+{
+ // nothing else to do.
+}
+
+void IteratedChar::reset()
+{
+ charValue = 0;
+ index = -1;
+ nextIndex = 0;
+ error = FALSE;
+ done = FALSE;
+}
+
+int32_t IteratedChar::nextByte(InputText *det)
+{
+ if (nextIndex >= det->fRawLength) {
+ done = TRUE;
+
+ return -1;
+ }
+
+ return det->fRawInput[nextIndex++];
+}
+
+CharsetRecog_mbcs::~CharsetRecog_mbcs()
+{
+ // nothing to do.
+}
+
+int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const int32_t commonChars[], int32_t commonCharsLen) {
+ int singleByteCharCount = 0;
+ int doubleByteCharCount = 0;
+ int commonCharCount = 0;
+ int badCharCount = 0;
+ int totalCharCount = 0;
+ int confidence = 0;
+ IteratedChar *iter = new IteratedChar();
+
+ // {
+ for (iter->reset(); nextChar(iter, det);) {
+ totalCharCount += 1;
+
+ if (iter->error) {
+ badCharCount += 1;
+ } else {
+ if (iter->charValue <= 0xFF) {
+ singleByteCharCount += 1;
+ } else {
+ doubleByteCharCount += 1;
+
+ if (commonChars != 0) {
+ if (binarySearch(commonChars, commonCharsLen, iter->charValue) >= 0){
+ commonCharCount += 1;
+ }
+ }
+ }
+ }
+
+
+ if (badCharCount >= 2 && badCharCount*5 >= doubleByteCharCount) {
+ // Bail out early if the byte data is not matching the encoding scheme.
+ // break detectBlock;
+ delete iter;
+ return confidence;
+ }
+ }
+
+ delete iter;
+
+ if (doubleByteCharCount <= 10 && badCharCount == 0) {
+ // Not many multi-byte chars.
+ // ASCII or ISO file? It's probably not our encoding,
+ // but is not incompatible with our encoding, so don't give it a zero.
+ confidence = 10;
+
+ return confidence;
+ }
+
+ //
+ // No match if there are too many characters that don't fit the encoding scheme.
+ // (should we have zero tolerance for these?)
+ //
+ if (doubleByteCharCount < 20*badCharCount) {
+ confidence = 0;
+
+ return confidence;
+ }
+
+ if (commonChars == 0) {
+ // We have no statistics on frequently occuring characters.
+ // Assess confidence purely on having a reasonable number of
+ // multi-byte characters (the more the better)
+ confidence = 30 + doubleByteCharCount - 20*badCharCount;
+
+ if (confidence > 100) {
+ confidence = 100;
+ }
+ } else {
+ //
+ // Frequency of occurence statistics exist.
+ //
+
+ double maxVal = log10((double)doubleByteCharCount / 4); /*(float)?*/
+ double scaleFactor = 90.0 / maxVal;
+ confidence = (int32_t)(log10((double)commonCharCount+1) * scaleFactor + 10.0);
+
+ confidence = min(confidence, 100);
+ }
+
+ if (confidence < 0) {
+ confidence = 0;
+ }
+
+ return confidence;
+}
+
+CharsetRecog_sjis::~CharsetRecog_sjis()
+{
+ // nothing to do
+}
+
+UBool CharsetRecog_sjis::nextChar(IteratedChar* it, InputText* det) {
+ it->index = it->nextIndex;
+ it->error = FALSE;
+
+ int32_t firstByte = it->charValue = it->nextByte(det);
+
+ if (firstByte < 0) {
+ return FALSE;
+ }
+
+ if (firstByte <= 0x7F || (firstByte > 0xA0 && firstByte <= 0xDF)) {
+ return TRUE;
+ }
+
+ int32_t secondByte = it->nextByte(det);
+
+ if (secondByte < 0) {
+ return FALSE;
+ }
+ it->charValue = (firstByte << 8) | secondByte;
+ if (! ((secondByte >= 0x40 && secondByte <= 0x7F) || (secondByte >= 0x80 && secondByte <= 0xFE))) {
+ // Illegal second byte value.
+ it->error = TRUE;
+ }
+
+ return TRUE;
+}
+
+int32_t CharsetRecog_sjis::match(InputText* det)
+{
+ return match_mbcs(det, commonChars_sjis, ARRAY_SIZE(commonChars_sjis));
+}
+
+const char *CharsetRecog_sjis::getName() const
+{
+ return "Shift_JIS";
+}
+
+const char *CharsetRecog_sjis::getLanguage() const
+{
+ return "ja";
+}
+
+CharsetRecog_euc::~CharsetRecog_euc()
+{
+ // nothing to do
+}
+
+UBool CharsetRecog_euc::nextChar(IteratedChar* it, InputText* det) {
+ int32_t firstByte = 0;
+ int32_t secondByte = 0;
+ int32_t thirdByte = 0;
+ // int32_t fourthByte = 0;
+
+ it->index = it->nextIndex;
+ it->error = FALSE;
+ firstByte = it->charValue = it->nextByte(det);
+
+ if (firstByte < 0) {
+ // Ran off the end of the input data
+ it->done = TRUE;
+
+ return (! it->done);
+ }
+
+ if (firstByte <= 0x8D) {
+ // single byte char
+ return (! it->done);
+ }
+
+ secondByte = it->nextByte(det);
+ it->charValue = (it->charValue << 8) | secondByte;
+
+ if (firstByte >= 0xA1 && firstByte <= 0xFE) {
+ // Two byte Char
+ if (secondByte < 0xA1) {
+ it->error = TRUE;
+ }
+
+ return (! it->done);
+ }
+
+ if (firstByte == 0x8E) {
+ // Code Set 2.
+ // In EUC-JP, total char size is 2 bytes, only one byte of actual char value.
+ // In EUC-TW, total char size is 4 bytes, three bytes contribute to char value.
+ // We don't know which we've got.
+ // Treat it like EUC-JP. If the data really was EUC-TW, the following two
+ // bytes will look like a well formed 2 byte char.
+ if (secondByte < 0xA1) {
+ it->error = TRUE;
+ }
+
+ return (! it->done);
+ }
+
+ if (firstByte == 0x8F) {
+ // Code set 3.
+ // Three byte total char size, two bytes of actual char value.
+ thirdByte = it->nextByte(det);
+ it->charValue = (it->charValue << 8) | thirdByte;
+
+ if (thirdByte < 0xa1) {
+ it->error = TRUE;
+ }
+ }
+
+ return (! it->done);
+
+}
+
+CharsetRecog_euc_jp::~CharsetRecog_euc_jp()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_euc_jp::getName() const
+{
+ return "EUC-JP";
+}
+
+const char *CharsetRecog_euc_jp::getLanguage() const
+{
+ return "ja";
+}
+
+int32_t CharsetRecog_euc_jp::match(InputText *det)
+{
+ return match_mbcs(det, commonChars_euc_jp, ARRAY_SIZE(commonChars_euc_jp));
+}
+
+CharsetRecog_euc_kr::~CharsetRecog_euc_kr()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_euc_kr::getName() const
+{
+ return "EUC-KR";
+}
+
+const char *CharsetRecog_euc_kr::getLanguage() const
+{
+ return "ko";
+}
+
+int32_t CharsetRecog_euc_kr::match(InputText *det)
+{
+ return match_mbcs(det, commonChars_euc_kr, ARRAY_SIZE(commonChars_euc_kr));
+}
+
+CharsetRecog_big5::~CharsetRecog_big5()
+{
+ // nothing to do
+}
+
+UBool CharsetRecog_big5::nextChar(IteratedChar* it, InputText* det)
+{
+ int32_t firstByte;
+
+ it->index = it->nextIndex;
+ it->error = FALSE;
+ firstByte = it->charValue = it->nextByte(det);
+
+ if (firstByte < 0) {
+ return FALSE;
+ }
+
+ if (firstByte <= 0x7F || firstByte == 0xFF) {
+ // single byte character.
+ return TRUE;
+ }
+
+ int32_t secondByte = it->nextByte(det);
+
+ if (secondByte < 0) {
+ return FALSE;
+ }
+
+ it->charValue = (it->charValue << 8) | secondByte;
+
+ if (secondByte < 0x40 ||
+ secondByte == 0x7F ||
+ secondByte == 0xFF) {
+ it->error = TRUE;
+ }
+
+ return TRUE;
+}
+
+const char *CharsetRecog_big5::getName() const
+{
+ return "Big5";
+}
+
+const char *CharsetRecog_big5::getLanguage() const
+{
+ return "zh";
+}
+
+int32_t CharsetRecog_big5::match(InputText *det)
+{
+ return match_mbcs(det, commonChars_big5, ARRAY_SIZE(commonChars_big5));
+}
+
+CharsetRecog_gb_18030::~CharsetRecog_gb_18030()
+{
+ // nothing to do
+}
+
+UBool CharsetRecog_gb_18030::nextChar(IteratedChar* it, InputText* det) {
+ int32_t firstByte = 0;
+ int32_t secondByte = 0;
+ int32_t thirdByte = 0;
+ int32_t fourthByte = 0;
+
+ it->index = it->nextIndex;
+ it->error = FALSE;
+ firstByte = it->charValue = it->nextByte(det);
+
+ if (firstByte < 0) {
+ // Ran off the end of the input data
+ it->done = TRUE;
+
+ return (! it->done);
+ }
+
+ if (firstByte <= 0x80) {
+ // single byte char
+ return (! it->done);
+ }
+
+ secondByte = it->nextByte(det);
+ it->charValue = (it->charValue << 8) | secondByte;
+
+ if (firstByte >= 0x81 && firstByte <= 0xFE) {
+ // Two byte Char
+ if ((secondByte >= 0x40 && secondByte <= 0x7E) || (secondByte >=80 && secondByte <= 0xFE)) {
+ return (! it->done);
+ }
+
+ // Four byte char
+ if (secondByte >= 0x30 && secondByte <= 0x39) {
+ thirdByte = it->nextByte(det);
+
+ if (thirdByte >= 0x81 && thirdByte <= 0xFE) {
+ fourthByte = it->nextByte(det);
+
+ if (fourthByte >= 0x30 && fourthByte <= 0x39) {
+ it->charValue = (it->charValue << 16) | (thirdByte << 8) | fourthByte;
+
+ return (! it->done);
+ }
+ }
+ }
+
+ it->error = TRUE;
+
+ return (! it->done);
+ }
+
+ return (! it->done);
+}
+
+const char *CharsetRecog_gb_18030::getName() const
+{
+ return "GB18030";
+}
+
+const char *CharsetRecog_gb_18030::getLanguage() const
+{
+ return "zh";
+}
+
+int32_t CharsetRecog_gb_18030::match(InputText *det)
+{
+ return match_mbcs(det, commonChars_gb_18030, ARRAY_SIZE(commonChars_gb_18030));
+}
+
+U_NAMESPACE_END
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csrmbcs.h b/Build/source/libs/icu-xetex/i18n/csrmbcs.h
new file mode 100644
index 00000000000..69457f6c22a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrmbcs.h
@@ -0,0 +1,205 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSRMBCS_H
+#define __CSRMBCS_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+// "Character" iterated character class.
+// Recognizers for specific mbcs encodings make their "characters" available
+// by providing a nextChar() function that fills in an instance of IteratedChar
+// with the next char from the input.
+// The returned characters are not converted to Unicode, but remain as the raw
+// bytes (concatenated into an int) from the codepage data.
+//
+// For Asian charsets, use the raw input rather than the input that has been
+// stripped of markup. Detection only considers multi-byte chars, effectively
+// stripping markup anyway, and double byte chars do occur in markup too.
+//
+class IteratedChar : public UMemory
+{
+public:
+ int32_t charValue; // 1-4 bytes from the raw input data
+ int32_t index;
+ int32_t nextIndex;
+ UBool error;
+ UBool done;
+
+public:
+ IteratedChar();
+ void reset();
+ int32_t nextByte(InputText* det);
+};
+
+
+class CharsetRecog_mbcs : public CharsetRecognizer {
+
+protected:
+ /**
+ * Test the match of this charset with the input text data
+ * which is obtained via the CharsetDetector object.
+ *
+ * @param det The CharsetDetector, which contains the input text
+ * to be checked for being in this charset.
+ * @return Two values packed into one int (Damn java, anyhow)
+ * <br/>
+ * bits 0-7: the match confidence, ranging from 0-100
+ * <br/>
+ * bits 8-15: The match reason, an enum-like value.
+ */
+ int32_t match_mbcs(InputText* det, const int32_t commonChars[], int32_t commonCharsLen);
+
+public:
+
+ virtual ~CharsetRecog_mbcs();
+
+ /**
+ * Get the IANA name of this charset.
+ * @return the charset name.
+ */
+
+ const char *getName() const = 0;
+ const char *getLanguage() const = 0;
+ int32_t match(InputText* det) = 0;
+
+ /**
+ * Get the next character (however many bytes it is) from the input data
+ * Subclasses for specific charset encodings must implement this function
+ * to get characters according to the rules of their encoding scheme.
+ *
+ * This function is not a method of class IteratedChar only because
+ * that would require a lot of extra derived classes, which is awkward.
+ * @param it The IteratedChar "struct" into which the returned char is placed.
+ * @param det The charset detector, which is needed to get at the input byte data
+ * being iterated over.
+ * @return True if a character was returned, false at end of input.
+ */
+ virtual UBool nextChar(IteratedChar *it, InputText *textIn) = 0;
+
+};
+
+
+/**
+ * Shift-JIS charset recognizer.
+ *
+ */
+class CharsetRecog_sjis : public CharsetRecog_mbcs {
+public:
+ virtual ~CharsetRecog_sjis();
+
+ UBool nextChar(IteratedChar *it, InputText *det);
+
+ int32_t match(InputText *det);
+
+ const char *getName() const;
+ const char *getLanguage() const;
+
+};
+
+
+/**
+ * EUC charset recognizers. One abstract class that provides the common function
+ * for getting the next character according to the EUC encoding scheme,
+ * and nested derived classes for EUC_KR, EUC_JP, EUC_CN.
+ *
+ */
+class CharsetRecog_euc : public CharsetRecog_mbcs
+{
+public:
+ virtual ~CharsetRecog_euc();
+
+ const char *getName() const = 0;
+ const char *getLanguage() const = 0;
+
+ int32_t match(InputText* det) = 0;
+ /*
+ * (non-Javadoc)
+ * Get the next character value for EUC based encodings.
+ * Character "value" is simply the raw bytes that make up the character
+ * packed into an int.
+ */
+ UBool nextChar(IteratedChar *it, InputText *det);
+};
+
+/**
+ * The charset recognize for EUC-JP. A singleton instance of this class
+ * is created and kept by the public CharsetDetector class
+ */
+class CharsetRecog_euc_jp : public CharsetRecog_euc
+{
+public:
+ virtual ~CharsetRecog_euc_jp();
+
+ const char *getName() const;
+ const char *getLanguage() const;
+
+ int32_t match(InputText *det);
+};
+
+/**
+ * The charset recognize for EUC-KR. A singleton instance of this class
+ * is created and kept by the public CharsetDetector class
+ */
+class CharsetRecog_euc_kr : public CharsetRecog_euc
+{
+public:
+ virtual ~CharsetRecog_euc_kr();
+
+ const char *getName() const;
+ const char *getLanguage() const;
+
+ int32_t match(InputText *det);
+};
+
+/**
+ *
+ * Big5 charset recognizer.
+ *
+ */
+class CharsetRecog_big5 : public CharsetRecog_mbcs
+{
+public:
+ virtual ~CharsetRecog_big5();
+
+ UBool nextChar(IteratedChar* it, InputText* det);
+
+ const char *getName() const;
+ const char *getLanguage() const;
+
+ int32_t match(InputText *det);
+};
+
+
+/**
+ *
+ * GB-18030 recognizer. Uses simplified Chinese statistics.
+ *
+ */
+class CharsetRecog_gb_18030 : public CharsetRecog_mbcs
+{
+public:
+ virtual ~CharsetRecog_gb_18030();
+
+ UBool nextChar(IteratedChar* it, InputText* det);
+
+ const char *getName() const;
+ const char *getLanguage() const;
+
+ int32_t match(InputText *det);
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSRMBCS_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csrsbcs.cpp b/Build/source/libs/icu-xetex/i18n/csrsbcs.cpp
new file mode 100644
index 00000000000..ddf5aedf520
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrsbcs.cpp
@@ -0,0 +1,1099 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+#include "csrsbcs.h"
+
+#include <stdio.h>
+
+#define N_GRAM_SIZE 3
+#define N_GRAM_MASK 0xFFFFFF
+
+U_NAMESPACE_BEGIN
+
+NGramParser::NGramParser(const int32_t *theNgramList, const uint8_t *theCharMap)
+ :byteIndex(0), ngram(0)
+{
+ ngramList = theNgramList;
+ charMap = theCharMap;
+
+ ngramCount = hitCount = 0;
+}
+
+/*
+ * Binary search for value in table, which must have exactly 64 entries.
+ */
+
+int32_t NGramParser::search(const int32_t *table, int32_t value)
+{
+ int32_t index = 0;
+
+ if (table[index + 32] <= value) {
+ index += 32;
+ }
+
+ if (table[index + 16] <= value) {
+ index += 16;
+ }
+
+ if (table[index + 8] <= value) {
+ index += 8;
+ }
+
+ if (table[index + 4] <= value) {
+ index += 4;
+ }
+
+ if (table[index + 2] <= value) {
+ index += 2;
+ }
+
+ if (table[index + 1] <= value) {
+ index += 1;
+ }
+
+ if (table[index] > value) {
+ index -= 1;
+ }
+
+ if (index < 0 || table[index] != value) {
+ return -1;
+ }
+
+ return index;
+}
+
+void NGramParser::lookup(int32_t thisNgram)
+{
+ ngramCount += 1;
+
+ if (search(ngramList, thisNgram) >= 0) {
+ hitCount += 1;
+ }
+
+}
+
+void NGramParser::addByte(int32_t b)
+{
+ ngram = ((ngram << 8) + b) & N_GRAM_MASK;
+ lookup(ngram);
+}
+
+int32_t NGramParser::nextByte(InputText *det)
+{
+ if (byteIndex >= det->fInputLen) {
+ return -1;
+ }
+
+ return det->fInputBytes[byteIndex++];
+}
+
+int32_t NGramParser::parse(InputText *det)
+{
+ int32_t b;
+ bool ignoreSpace = FALSE;
+
+ while ((b = nextByte(det)) >= 0) {
+ uint8_t mb = charMap[b];
+
+ // TODO: 0x20 might not be a space in all character sets...
+ if (mb != 0) {
+ if (!(mb == 0x20 && ignoreSpace)) {
+ addByte(mb);
+ }
+
+ ignoreSpace = (mb == 0x20);
+ }
+ }
+
+ // TODO: Is this OK? The buffer could have ended in the middle of a word...
+ addByte(0x20);
+
+ double rawPercent = (double) hitCount / (double) ngramCount;
+
+ // if (rawPercent <= 2.0) {
+ // return 0;
+ // }
+
+ // TODO - This is a bit of a hack to take care of a case
+ // were we were getting a confidence of 135...
+ if (rawPercent > 0.33) {
+ return 98;
+ }
+
+ return (int32_t) (rawPercent * 300.0);
+}
+
+CharsetRecog_sbcs::CharsetRecog_sbcs()
+: haveC1Bytes(FALSE)
+{
+ // nothing else to do
+}
+
+CharsetRecog_sbcs::~CharsetRecog_sbcs()
+{
+ // nothing to do
+}
+
+int32_t CharsetRecog_sbcs::match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t byteMap[])
+{
+ NGramParser *parser = new NGramParser(ngrams, byteMap);
+ int32_t result;
+
+ haveC1Bytes = det->fC1Bytes;
+ result = parser->parse(det);
+ delete parser;
+
+ return result;
+}
+
+static const uint8_t charMap_8859_1[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
+ 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+};
+
+static const uint8_t charMap_8859_2[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0x20,
+ 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
+ 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0xB7,
+ 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20,
+};
+
+static const uint8_t charMap_8859_5[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF,
+};
+
+static const uint8_t charMap_8859_6[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+};
+
+static const uint8_t charMap_8859_7[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0xA1, 0xA2, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDC, 0x20,
+ 0xDD, 0xDE, 0xDF, 0x20, 0xFC, 0x20, 0xFD, 0xFE,
+ 0xC0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0x20, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20,
+};
+
+static const uint8_t charMap_8859_8[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0x20, 0x20, 0x20, 0x20, 0x20,
+};
+
+static const uint8_t charMap_8859_9[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
+ 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x69, 0xFE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+};
+
+static const int32_t ngrams_windows_1251[] = {
+ 0x20E220, 0x20E2EE, 0x20E4EE, 0x20E7E0, 0x20E820, 0x20EAE0, 0x20EAEE, 0x20EDE0, 0x20EDE5, 0x20EEE1, 0x20EFEE, 0x20EFF0, 0x20F0E0, 0x20F1EE, 0x20F1F2, 0x20F2EE,
+ 0x20F7F2, 0x20FDF2, 0xE0EDE8, 0xE0F2FC, 0xE3EE20, 0xE5EBFC, 0xE5EDE8, 0xE5F1F2, 0xE5F220, 0xE820EF, 0xE8E520, 0xE8E820, 0xE8FF20, 0xEBE5ED, 0xEBE820, 0xEBFCED,
+ 0xEDE020, 0xEDE520, 0xEDE8E5, 0xEDE8FF, 0xEDEE20, 0xEDEEE2, 0xEE20E2, 0xEE20EF, 0xEE20F1, 0xEEE220, 0xEEE2E0, 0xEEE3EE, 0xEEE920, 0xEEEBFC, 0xEEEC20, 0xEEF1F2,
+ 0xEFEEEB, 0xEFF0E5, 0xEFF0E8, 0xEFF0EE, 0xF0E0E2, 0xF0E5E4, 0xF1F2E0, 0xF1F2E2, 0xF1F2E8, 0xF1FF20, 0xF2E5EB, 0xF2EE20, 0xF2EEF0, 0xF2FC20, 0xF7F2EE, 0xFBF520,
+};
+
+static const uint8_t charMap_windows_1251[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x90, 0x83, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0x20, 0xA2, 0xA2, 0xBC, 0x20, 0xB4, 0x20, 0x20,
+ 0xB8, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0xBF,
+ 0x20, 0x20, 0xB3, 0xB3, 0xB4, 0xB5, 0x20, 0x20,
+ 0xB8, 0x20, 0xBA, 0x20, 0xBC, 0xBE, 0xBE, 0xBF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+};
+
+static const int32_t ngrams_windows_1256[] = {
+ 0x20C7E1, 0x20C7E4, 0x20C8C7, 0x20DAE1, 0x20DDED, 0x20E1E1, 0x20E3E4, 0x20E6C7, 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E120, 0xC7E1C3, 0xC7E1C7, 0xC7E1C8,
+ 0xC7E1CA, 0xC7E1CC, 0xC7E1CD, 0xC7E1CF, 0xC7E1D3, 0xC7E1DA, 0xC7E1DE, 0xC7E1E3, 0xC7E1E6, 0xC7E1ED, 0xC7E320, 0xC7E420, 0xC7E4CA, 0xC820C7, 0xC920C7, 0xC920DD,
+ 0xC920E1, 0xC920E3, 0xC920E6, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920, 0xD320C7, 0xDA20C7, 0xDAE1EC, 0xDDED20, 0xE120C7, 0xE1C920, 0xE1EC20, 0xE1ED20,
+ 0xE320C7, 0xE3C720, 0xE3C920, 0xE3E420, 0xE420C7, 0xE520C7, 0xE5C720, 0xE6C7E1, 0xE6E420, 0xEC20C7, 0xED20C7, 0xED20E3, 0xED20E6, 0xEDC920, 0xEDD120, 0xEDE420,
+};
+
+static const uint8_t charMap_windows_1256[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x81, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20,
+ 0x88, 0x20, 0x8A, 0x20, 0x9C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x98, 0x20, 0x9A, 0x20, 0x9C, 0x20, 0x20, 0x9F,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0x20,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0x20, 0x20, 0x20, 0x20, 0xF4, 0x20, 0x20, 0x20,
+ 0x20, 0xF9, 0x20, 0xFB, 0xFC, 0x20, 0x20, 0xFF,
+};
+
+static const int32_t ngrams_KOI8_R[] = {
+ 0x20C4CF, 0x20C920, 0x20CBC1, 0x20CBCF, 0x20CEC1, 0x20CEC5, 0x20CFC2, 0x20D0CF, 0x20D0D2, 0x20D2C1, 0x20D3CF, 0x20D3D4, 0x20D4CF, 0x20D720, 0x20D7CF, 0x20DAC1,
+ 0x20DCD4, 0x20DED4, 0xC1CEC9, 0xC1D4D8, 0xC5CCD8, 0xC5CEC9, 0xC5D3D4, 0xC5D420, 0xC7CF20, 0xC920D0, 0xC9C520, 0xC9C920, 0xC9D120, 0xCCC5CE, 0xCCC920, 0xCCD8CE,
+ 0xCEC120, 0xCEC520, 0xCEC9C5, 0xCEC9D1, 0xCECF20, 0xCECFD7, 0xCF20D0, 0xCF20D3, 0xCF20D7, 0xCFC7CF, 0xCFCA20, 0xCFCCD8, 0xCFCD20, 0xCFD3D4, 0xCFD720, 0xCFD7C1,
+ 0xD0CFCC, 0xD0D2C5, 0xD0D2C9, 0xD0D2CF, 0xD2C1D7, 0xD2C5C4, 0xD3D120, 0xD3D4C1, 0xD3D4C9, 0xD3D4D7, 0xD4C5CC, 0xD4CF20, 0xD4CFD2, 0xD4D820, 0xD9C820, 0xDED4CF,
+};
+
+static const uint8_t charMap_KOI8_R[] = {
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+};
+
+//ISO-8859-1,2,5,6,7,8,9 Ngrams
+static const int32_t ngrams_8859_1_en[] = {
+ 0x206120, 0x20616E, 0x206265, 0x20636F, 0x20666F, 0x206861, 0x206865, 0x20696E, 0x206D61, 0x206F66, 0x207072, 0x207265, 0x207361, 0x207374, 0x207468, 0x20746F,
+ 0x207768, 0x616964, 0x616C20, 0x616E20, 0x616E64, 0x617320, 0x617420, 0x617465, 0x617469, 0x642061, 0x642074, 0x652061, 0x652073, 0x652074, 0x656420, 0x656E74,
+ 0x657220, 0x657320, 0x666F72, 0x686174, 0x686520, 0x686572, 0x696420, 0x696E20, 0x696E67, 0x696F6E, 0x697320, 0x6E2061, 0x6E2074, 0x6E6420, 0x6E6720, 0x6E7420,
+ 0x6F6620, 0x6F6E20, 0x6F7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169, 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696F, 0x746F20, 0x747320,
+};
+
+static const int32_t ngrams_8859_1_da[] = {
+ 0x206166, 0x206174, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920, 0x206D65, 0x206F67, 0x2070E5, 0x207369, 0x207374, 0x207469, 0x207669, 0x616620,
+ 0x616E20, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646572, 0x646574, 0x652073, 0x656420, 0x656465, 0x656E20, 0x656E64, 0x657220, 0x657265, 0x657320,
+ 0x657420, 0x666F72, 0x676520, 0x67656E, 0x676572, 0x696765, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6572, 0x6C6967, 0x6C6C65, 0x6D6564, 0x6E6465, 0x6E6520,
+ 0x6E6720, 0x6E6765, 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722064, 0x722065, 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696C, 0x766572,
+};
+
+static const int32_t ngrams_8859_1_de[] = {
+ 0x20616E, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, 0x206765, 0x206861, 0x20696E, 0x206D69, 0x207363, 0x207365, 0x20756E, 0x207665, 0x20766F,
+ 0x207765, 0x207A75, 0x626572, 0x636820, 0x636865, 0x636874, 0x646173, 0x64656E, 0x646572, 0x646965, 0x652064, 0x652073, 0x65696E, 0x656974, 0x656E20, 0x657220,
+ 0x657320, 0x67656E, 0x68656E, 0x687420, 0x696368, 0x696520, 0x696E20, 0x696E65, 0x697420, 0x6C6963, 0x6C6C65, 0x6E2061, 0x6E2064, 0x6E2073, 0x6E6420, 0x6E6465,
+ 0x6E6520, 0x6E6720, 0x6E6765, 0x6E7465, 0x722064, 0x726465, 0x726569, 0x736368, 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x756E64, 0x756E67, 0x766572,
+};
+
+static const int32_t ngrams_8859_1_es[] = {
+ 0x206120, 0x206361, 0x20636F, 0x206465, 0x20656C, 0x20656E, 0x206573, 0x20696E, 0x206C61, 0x206C6F, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
+ 0x20756E, 0x207920, 0x612063, 0x612064, 0x612065, 0x61206C, 0x612070, 0x616369, 0x61646F, 0x616C20, 0x617220, 0x617320, 0x6369F3, 0x636F6E, 0x646520, 0x64656C,
+ 0x646F20, 0x652064, 0x652065, 0x65206C, 0x656C20, 0x656E20, 0x656E74, 0x657320, 0x657374, 0x69656E, 0x69F36E, 0x6C6120, 0x6C6F73, 0x6E2065, 0x6E7465, 0x6F2064,
+ 0x6F2065, 0x6F6E20, 0x6F7220, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746F20, 0x756520, 0xF36E20,
+};
+
+static const int32_t ngrams_8859_1_fr[] = {
+ 0x206175, 0x20636F, 0x206461, 0x206465, 0x206475, 0x20656E, 0x206574, 0x206C61, 0x206C65, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207365, 0x20736F, 0x20756E,
+ 0x20E020, 0x616E74, 0x617469, 0x636520, 0x636F6E, 0x646520, 0x646573, 0x647520, 0x652061, 0x652063, 0x652064, 0x652065, 0x65206C, 0x652070, 0x652073, 0x656E20,
+ 0x656E74, 0x657220, 0x657320, 0x657420, 0x657572, 0x696F6E, 0x697320, 0x697420, 0x6C6120, 0x6C6520, 0x6C6573, 0x6D656E, 0x6E2064, 0x6E6520, 0x6E7320, 0x6E7420,
+ 0x6F6E20, 0x6F6E74, 0x6F7572, 0x717565, 0x72206C, 0x726520, 0x732061, 0x732064, 0x732065, 0x73206C, 0x732070, 0x742064, 0x746520, 0x74696F, 0x756520, 0x757220,
+};
+
+static const int32_t ngrams_8859_1_it[] = {
+ 0x20616C, 0x206368, 0x20636F, 0x206465, 0x206469, 0x206520, 0x20696C, 0x20696E, 0x206C61, 0x207065, 0x207072, 0x20756E, 0x612063, 0x612064, 0x612070, 0x612073,
+ 0x61746F, 0x636865, 0x636F6E, 0x64656C, 0x646920, 0x652061, 0x652063, 0x652064, 0x652069, 0x65206C, 0x652070, 0x652073, 0x656C20, 0x656C6C, 0x656E74, 0x657220,
+ 0x686520, 0x692061, 0x692063, 0x692064, 0x692073, 0x696120, 0x696C20, 0x696E20, 0x696F6E, 0x6C6120, 0x6C6520, 0x6C6920, 0x6C6C61, 0x6E6520, 0x6E6920, 0x6E6F20,
+ 0x6E7465, 0x6F2061, 0x6F2064, 0x6F2069, 0x6F2073, 0x6F6E20, 0x6F6E65, 0x706572, 0x726120, 0x726520, 0x736920, 0x746120, 0x746520, 0x746920, 0x746F20, 0x7A696F,
+};
+
+static const int32_t ngrams_8859_1_nl[] = {
+ 0x20616C, 0x206265, 0x206461, 0x206465, 0x206469, 0x206565, 0x20656E, 0x206765, 0x206865, 0x20696E, 0x206D61, 0x206D65, 0x206F70, 0x207465, 0x207661, 0x207665,
+ 0x20766F, 0x207765, 0x207A69, 0x61616E, 0x616172, 0x616E20, 0x616E64, 0x617220, 0x617420, 0x636874, 0x646520, 0x64656E, 0x646572, 0x652062, 0x652076, 0x65656E,
+ 0x656572, 0x656E20, 0x657220, 0x657273, 0x657420, 0x67656E, 0x686574, 0x696520, 0x696E20, 0x696E67, 0x697320, 0x6E2062, 0x6E2064, 0x6E2065, 0x6E2068, 0x6E206F,
+ 0x6E2076, 0x6E6465, 0x6E6720, 0x6F6E64, 0x6F6F72, 0x6F7020, 0x6F7220, 0x736368, 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x76616E, 0x766572, 0x766F6F,
+};
+
+static const int32_t ngrams_8859_1_no[] = {
+ 0x206174, 0x206176, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920, 0x206D65, 0x206F67, 0x2070E5, 0x207365, 0x20736B, 0x20736F, 0x207374, 0x207469,
+ 0x207669, 0x20E520, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646574, 0x652073, 0x656420, 0x656E20, 0x656E65, 0x657220, 0x657265, 0x657420, 0x657474,
+ 0x666F72, 0x67656E, 0x696B6B, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6520, 0x6C6C65, 0x6D6564, 0x6D656E, 0x6E2073, 0x6E6520, 0x6E6720, 0x6E6765, 0x6E6E65,
+ 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722073, 0x726520, 0x736F6D, 0x737465, 0x742073, 0x746520, 0x74656E, 0x746572, 0x74696C, 0x747420, 0x747465, 0x766572,
+};
+
+static const int32_t ngrams_8859_1_pt[] = {
+ 0x206120, 0x20636F, 0x206461, 0x206465, 0x20646F, 0x206520, 0x206573, 0x206D61, 0x206E6F, 0x206F20, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365,
+ 0x20756D, 0x612061, 0x612063, 0x612064, 0x612070, 0x616465, 0x61646F, 0x616C20, 0x617220, 0x617261, 0x617320, 0x636F6D, 0x636F6E, 0x646120, 0x646520, 0x646F20,
+ 0x646F73, 0x652061, 0x652064, 0x656D20, 0x656E74, 0x657320, 0x657374, 0x696120, 0x696361, 0x6D656E, 0x6E7465, 0x6E746F, 0x6F2061, 0x6F2063, 0x6F2064, 0x6F2065,
+ 0x6F2070, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732061, 0x732064, 0x732065, 0x732070, 0x737461, 0x746520, 0x746F20, 0x756520, 0xE36F20, 0xE7E36F,
+};
+
+static const int32_t ngrams_8859_1_sv[] = {
+ 0x206174, 0x206176, 0x206465, 0x20656E, 0x2066F6, 0x206861, 0x206920, 0x20696E, 0x206B6F, 0x206D65, 0x206F63, 0x2070E5, 0x20736B, 0x20736F, 0x207374, 0x207469,
+ 0x207661, 0x207669, 0x20E472, 0x616465, 0x616E20, 0x616E64, 0x617220, 0x617474, 0x636820, 0x646520, 0x64656E, 0x646572, 0x646574, 0x656420, 0x656E20, 0x657220,
+ 0x657420, 0x66F672, 0x67656E, 0x696C6C, 0x696E67, 0x6B6120, 0x6C6C20, 0x6D6564, 0x6E2073, 0x6E6120, 0x6E6465, 0x6E6720, 0x6E6765, 0x6E696E, 0x6F6368, 0x6F6D20,
+ 0x6F6E20, 0x70E520, 0x722061, 0x722073, 0x726120, 0x736B61, 0x736F6D, 0x742073, 0x746120, 0x746520, 0x746572, 0x74696C, 0x747420, 0x766172, 0xE47220, 0xF67220,
+};
+
+static const int32_t ngrams_8859_2_cs[] = {
+ 0x206120, 0x206279, 0x20646F, 0x206A65, 0x206E61, 0x206E65, 0x206F20, 0x206F64, 0x20706F, 0x207072, 0x2070F8, 0x20726F, 0x207365, 0x20736F, 0x207374, 0x20746F,
+ 0x207620, 0x207679, 0x207A61, 0x612070, 0x636520, 0x636820, 0x652070, 0x652073, 0x652076, 0x656D20, 0x656EED, 0x686F20, 0x686F64, 0x697374, 0x6A6520, 0x6B7465,
+ 0x6C6520, 0x6C6920, 0x6E6120, 0x6EE920, 0x6EEC20, 0x6EED20, 0x6F2070, 0x6F646E, 0x6F6A69, 0x6F7374, 0x6F7520, 0x6F7661, 0x706F64, 0x706F6A, 0x70726F, 0x70F865,
+ 0x736520, 0x736F75, 0x737461, 0x737469, 0x73746E, 0x746572, 0x746EED, 0x746F20, 0x752070, 0xBE6520, 0xE16EED, 0xE9686F, 0xED2070, 0xED2073, 0xED6D20, 0xF86564,
+};
+
+static const int32_t ngrams_8859_2_hu[] = {
+ 0x206120, 0x20617A, 0x206265, 0x206567, 0x20656C, 0x206665, 0x206861, 0x20686F, 0x206973, 0x206B65, 0x206B69, 0x206BF6, 0x206C65, 0x206D61, 0x206D65, 0x206D69,
+ 0x206E65, 0x20737A, 0x207465, 0x20E973, 0x612061, 0x61206B, 0x61206D, 0x612073, 0x616B20, 0x616E20, 0x617A20, 0x62616E, 0x62656E, 0x656779, 0x656B20, 0x656C20,
+ 0x656C65, 0x656D20, 0x656E20, 0x657265, 0x657420, 0x657465, 0x657474, 0x677920, 0x686F67, 0x696E74, 0x697320, 0x6B2061, 0x6BF67A, 0x6D6567, 0x6D696E, 0x6E2061,
+ 0x6E616B, 0x6E656B, 0x6E656D, 0x6E7420, 0x6F6779, 0x732061, 0x737A65, 0x737A74, 0x737AE1, 0x73E967, 0x742061, 0x747420, 0x74E173, 0x7A6572, 0xE16E20, 0xE97320,
+};
+
+static const int32_t ngrams_8859_2_pl[] = {
+ 0x20637A, 0x20646F, 0x206920, 0x206A65, 0x206B6F, 0x206D61, 0x206D69, 0x206E61, 0x206E69, 0x206F64, 0x20706F, 0x207072, 0x207369, 0x207720, 0x207769, 0x207779,
+ 0x207A20, 0x207A61, 0x612070, 0x612077, 0x616E69, 0x636820, 0x637A65, 0x637A79, 0x646F20, 0x647A69, 0x652070, 0x652073, 0x652077, 0x65207A, 0x65676F, 0x656A20,
+ 0x656D20, 0x656E69, 0x676F20, 0x696120, 0x696520, 0x69656A, 0x6B6120, 0x6B6920, 0x6B6965, 0x6D6965, 0x6E6120, 0x6E6961, 0x6E6965, 0x6F2070, 0x6F7761, 0x6F7769,
+ 0x706F6C, 0x707261, 0x70726F, 0x70727A, 0x727A65, 0x727A79, 0x7369EA, 0x736B69, 0x737461, 0x776965, 0x796368, 0x796D20, 0x7A6520, 0x7A6965, 0x7A7920, 0xF37720,
+};
+
+static const int32_t ngrams_8859_2_ro[] = {
+ 0x206120, 0x206163, 0x206361, 0x206365, 0x20636F, 0x206375, 0x206465, 0x206469, 0x206C61, 0x206D61, 0x207065, 0x207072, 0x207365, 0x2073E3, 0x20756E, 0x20BA69,
+ 0x20EE6E, 0x612063, 0x612064, 0x617265, 0x617420, 0x617465, 0x617520, 0x636172, 0x636F6E, 0x637520, 0x63E320, 0x646520, 0x652061, 0x652063, 0x652064, 0x652070,
+ 0x652073, 0x656120, 0x656920, 0x656C65, 0x656E74, 0x657374, 0x692061, 0x692063, 0x692064, 0x692070, 0x696520, 0x696920, 0x696E20, 0x6C6120, 0x6C6520, 0x6C6F72,
+ 0x6C7569, 0x6E6520, 0x6E7472, 0x6F7220, 0x70656E, 0x726520, 0x726561, 0x727520, 0x73E320, 0x746520, 0x747275, 0x74E320, 0x756920, 0x756C20, 0xBA6920, 0xEE6E20,
+};
+
+static const int32_t ngrams_8859_5_ru[] = {
+ 0x20D220, 0x20D2DE, 0x20D4DE, 0x20D7D0, 0x20D820, 0x20DAD0, 0x20DADE, 0x20DDD0, 0x20DDD5, 0x20DED1, 0x20DFDE, 0x20DFE0, 0x20E0D0, 0x20E1DE, 0x20E1E2, 0x20E2DE,
+ 0x20E7E2, 0x20EDE2, 0xD0DDD8, 0xD0E2EC, 0xD3DE20, 0xD5DBEC, 0xD5DDD8, 0xD5E1E2, 0xD5E220, 0xD820DF, 0xD8D520, 0xD8D820, 0xD8EF20, 0xDBD5DD, 0xDBD820, 0xDBECDD,
+ 0xDDD020, 0xDDD520, 0xDDD8D5, 0xDDD8EF, 0xDDDE20, 0xDDDED2, 0xDE20D2, 0xDE20DF, 0xDE20E1, 0xDED220, 0xDED2D0, 0xDED3DE, 0xDED920, 0xDEDBEC, 0xDEDC20, 0xDEE1E2,
+ 0xDFDEDB, 0xDFE0D5, 0xDFE0D8, 0xDFE0DE, 0xE0D0D2, 0xE0D5D4, 0xE1E2D0, 0xE1E2D2, 0xE1E2D8, 0xE1EF20, 0xE2D5DB, 0xE2DE20, 0xE2DEE0, 0xE2EC20, 0xE7E2DE, 0xEBE520,
+};
+
+static const int32_t ngrams_8859_6_ar[] = {
+ 0x20C7E4, 0x20C7E6, 0x20C8C7, 0x20D9E4, 0x20E1EA, 0x20E4E4, 0x20E5E6, 0x20E8C7, 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E420, 0xC7E4C3, 0xC7E4C7, 0xC7E4C8,
+ 0xC7E4CA, 0xC7E4CC, 0xC7E4CD, 0xC7E4CF, 0xC7E4D3, 0xC7E4D9, 0xC7E4E2, 0xC7E4E5, 0xC7E4E8, 0xC7E4EA, 0xC7E520, 0xC7E620, 0xC7E6CA, 0xC820C7, 0xC920C7, 0xC920E1,
+ 0xC920E4, 0xC920E5, 0xC920E8, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920, 0xD320C7, 0xD920C7, 0xD9E4E9, 0xE1EA20, 0xE420C7, 0xE4C920, 0xE4E920, 0xE4EA20,
+ 0xE520C7, 0xE5C720, 0xE5C920, 0xE5E620, 0xE620C7, 0xE720C7, 0xE7C720, 0xE8C7E4, 0xE8E620, 0xE920C7, 0xEA20C7, 0xEA20E5, 0xEA20E8, 0xEAC920, 0xEAD120, 0xEAE620,
+};
+
+static const int32_t ngrams_8859_7_el[] = {
+ 0x20E1ED, 0x20E1F0, 0x20E3E9, 0x20E4E9, 0x20E5F0, 0x20E720, 0x20EAE1, 0x20ECE5, 0x20EDE1, 0x20EF20, 0x20F0E1, 0x20F0EF, 0x20F0F1, 0x20F3F4, 0x20F3F5, 0x20F4E7,
+ 0x20F4EF, 0xDFE120, 0xE120E1, 0xE120F4, 0xE1E920, 0xE1ED20, 0xE1F0FC, 0xE1F220, 0xE3E9E1, 0xE5E920, 0xE5F220, 0xE720F4, 0xE7ED20, 0xE7F220, 0xE920F4, 0xE9E120,
+ 0xE9EADE, 0xE9F220, 0xEAE1E9, 0xEAE1F4, 0xECE520, 0xED20E1, 0xED20E5, 0xED20F0, 0xEDE120, 0xEFF220, 0xEFF520, 0xF0EFF5, 0xF0F1EF, 0xF0FC20, 0xF220E1, 0xF220E5,
+ 0xF220EA, 0xF220F0, 0xF220F4, 0xF3E520, 0xF3E720, 0xF3F4EF, 0xF4E120, 0xF4E1E9, 0xF4E7ED, 0xF4E7F2, 0xF4E9EA, 0xF4EF20, 0xF4EFF5, 0xF4F9ED, 0xF9ED20, 0xFEED20,
+};
+
+static const int32_t ngrams_8859_8_I_he[] = {
+ 0x20E0E5, 0x20E0E7, 0x20E0E9, 0x20E0FA, 0x20E1E9, 0x20E1EE, 0x20E4E0, 0x20E4E5, 0x20E4E9, 0x20E4EE, 0x20E4F2, 0x20E4F9, 0x20E4FA, 0x20ECE0, 0x20ECE4, 0x20EEE0,
+ 0x20F2EC, 0x20F9EC, 0xE0FA20, 0xE420E0, 0xE420E1, 0xE420E4, 0xE420EC, 0xE420EE, 0xE420F9, 0xE4E5E0, 0xE5E020, 0xE5ED20, 0xE5EF20, 0xE5F820, 0xE5FA20, 0xE920E4,
+ 0xE9E420, 0xE9E5FA, 0xE9E9ED, 0xE9ED20, 0xE9EF20, 0xE9F820, 0xE9FA20, 0xEC20E0, 0xEC20E4, 0xECE020, 0xECE420, 0xED20E0, 0xED20E1, 0xED20E4, 0xED20EC, 0xED20EE,
+ 0xED20F9, 0xEEE420, 0xEF20E4, 0xF0E420, 0xF0E920, 0xF0E9ED, 0xF2EC20, 0xF820E4, 0xF8E9ED, 0xF9EC20, 0xFA20E0, 0xFA20E1, 0xFA20E4, 0xFA20EC, 0xFA20EE, 0xFA20F9,
+};
+
+static const int32_t ngrams_8859_8_he[] = {
+ 0x20E0E5, 0x20E0EC, 0x20E4E9, 0x20E4EC, 0x20E4EE, 0x20E4F0, 0x20E9F0, 0x20ECF2, 0x20ECF9, 0x20EDE5, 0x20EDE9, 0x20EFE5, 0x20EFE9, 0x20F8E5, 0x20F8E9, 0x20FAE0,
+ 0x20FAE5, 0x20FAE9, 0xE020E4, 0xE020EC, 0xE020ED, 0xE020FA, 0xE0E420, 0xE0E5E4, 0xE0EC20, 0xE0EE20, 0xE120E4, 0xE120ED, 0xE120FA, 0xE420E4, 0xE420E9, 0xE420EC,
+ 0xE420ED, 0xE420EF, 0xE420F8, 0xE420FA, 0xE4EC20, 0xE5E020, 0xE5E420, 0xE7E020, 0xE9E020, 0xE9E120, 0xE9E420, 0xEC20E4, 0xEC20ED, 0xEC20FA, 0xECF220, 0xECF920,
+ 0xEDE9E9, 0xEDE9F0, 0xEDE9F8, 0xEE20E4, 0xEE20ED, 0xEE20FA, 0xEEE120, 0xEEE420, 0xF2E420, 0xF920E4, 0xF920ED, 0xF920FA, 0xF9E420, 0xFAE020, 0xFAE420, 0xFAE5E9,
+};
+
+static const int32_t ngrams_8859_9_tr[] = {
+ 0x206261, 0x206269, 0x206275, 0x206461, 0x206465, 0x206765, 0x206861, 0x20696C, 0x206B61, 0x206B6F, 0x206D61, 0x206F6C, 0x207361, 0x207461, 0x207665, 0x207961,
+ 0x612062, 0x616B20, 0x616C61, 0x616D61, 0x616E20, 0x616EFD, 0x617220, 0x617261, 0x6172FD, 0x6173FD, 0x617961, 0x626972, 0x646120, 0x646520, 0x646920, 0x652062,
+ 0x65206B, 0x656469, 0x656E20, 0x657220, 0x657269, 0x657369, 0x696C65, 0x696E20, 0x696E69, 0x697220, 0x6C616E, 0x6C6172, 0x6C6520, 0x6C6572, 0x6E2061, 0x6E2062,
+ 0x6E206B, 0x6E6461, 0x6E6465, 0x6E6520, 0x6E6920, 0x6E696E, 0x6EFD20, 0x72696E, 0x72FD6E, 0x766520, 0x796120, 0x796F72, 0xFD6E20, 0xFD6E64, 0xFD6EFD, 0xFDF0FD,
+};
+
+CharsetRecog_8859_1::~CharsetRecog_8859_1()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1::getName() const
+{
+ return haveC1Bytes? "windows-1252" : "ISO-8859-1";
+}
+
+const char *CharsetRecog_8859_1_en::getLanguage() const
+{
+ return "en";
+}
+
+CharsetRecog_8859_1_en::~CharsetRecog_8859_1_en()
+{
+ // nothing to do
+}
+
+int32_t CharsetRecog_8859_1_en::match(InputText *textIn)
+{
+ int32_t result = match_sbcs(textIn, ngrams_8859_1_en, charMap_8859_1);
+
+ // printf("8859_1_en: result = %d\n", result);
+ return result; //match_sbcs(textIn, ngrams, charMap);
+}
+
+CharsetRecog_8859_1_da::~CharsetRecog_8859_1_da()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_da::getLanguage() const
+{
+ return "da";
+}
+
+int32_t CharsetRecog_8859_1_da::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_da, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_de::~CharsetRecog_8859_1_de() {}
+
+const char *CharsetRecog_8859_1_de::getLanguage() const
+{
+ return "de";
+}
+
+int32_t CharsetRecog_8859_1_de::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_de, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_es::~CharsetRecog_8859_1_es()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_es::getLanguage() const
+{
+ return "es";
+}
+
+int32_t CharsetRecog_8859_1_es::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_es, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_fr::~CharsetRecog_8859_1_fr()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_fr::getLanguage() const
+{
+ return "fr";
+}
+
+int32_t CharsetRecog_8859_1_fr::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_fr, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_it::~CharsetRecog_8859_1_it()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_it::getLanguage() const
+{
+ return "it";
+}
+
+int32_t CharsetRecog_8859_1_it::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_it, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_nl::~CharsetRecog_8859_1_nl()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_nl::getLanguage() const
+{
+ return "nl";
+}
+
+int32_t CharsetRecog_8859_1_nl::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_nl, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_no::~CharsetRecog_8859_1_no() {}
+
+const char *CharsetRecog_8859_1_no::getLanguage() const
+{
+ return "no";
+}
+
+int32_t CharsetRecog_8859_1_no::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_no, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_pt::~CharsetRecog_8859_1_pt()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_1_pt::getLanguage() const
+{
+ return "pt";
+}
+
+int32_t CharsetRecog_8859_1_pt::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_pt, charMap_8859_1);
+}
+
+CharsetRecog_8859_1_sv::~CharsetRecog_8859_1_sv() {}
+
+const char *CharsetRecog_8859_1_sv::getLanguage() const
+{
+ return "sv";
+}
+
+int32_t CharsetRecog_8859_1_sv::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_1_sv, charMap_8859_1);
+}
+
+CharsetRecog_8859_2::~CharsetRecog_8859_2()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_2::getName() const
+{
+ return haveC1Bytes? "windows-1250" : "ISO-8859-2";
+}
+
+CharsetRecog_8859_2_cs::~CharsetRecog_8859_2_cs()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_2_cs::getLanguage() const
+{
+ return "cs";
+}
+
+int32_t CharsetRecog_8859_2_cs::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_2_cs, charMap_8859_2);
+}
+
+CharsetRecog_8859_2_hu::~CharsetRecog_8859_2_hu()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_2_hu::getLanguage() const
+{
+ return "hu";
+}
+
+int32_t CharsetRecog_8859_2_hu::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_2_hu, charMap_8859_2);
+}
+
+CharsetRecog_8859_2_pl::~CharsetRecog_8859_2_pl()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_2_pl::getLanguage() const
+{
+ return "pl";
+}
+
+int32_t CharsetRecog_8859_2_pl::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_2_pl, charMap_8859_2);
+}
+
+CharsetRecog_8859_2_ro::~CharsetRecog_8859_2_ro()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_2_ro::getLanguage() const
+{
+ return "ro";
+}
+
+int32_t CharsetRecog_8859_2_ro::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_2_ro, charMap_8859_2);
+}
+
+CharsetRecog_8859_5::~CharsetRecog_8859_5()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_5::getName() const
+{
+ return "ISO-8859-5";
+}
+
+CharsetRecog_8859_5_ru::~CharsetRecog_8859_5_ru()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_5_ru::getLanguage() const
+{
+ return "ru";
+}
+
+int32_t CharsetRecog_8859_5_ru::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_5_ru, charMap_8859_5);
+}
+
+CharsetRecog_8859_6::~CharsetRecog_8859_6()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_6::getName() const
+{
+ return "ISO-8859-6";
+}
+
+CharsetRecog_8859_6_ar::~CharsetRecog_8859_6_ar()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_6_ar::getLanguage() const
+{
+ return "ar";
+}
+
+int32_t CharsetRecog_8859_6_ar::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_6_ar, charMap_8859_6);
+}
+
+CharsetRecog_8859_7::~CharsetRecog_8859_7()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_7::getName() const
+{
+ return haveC1Bytes? "windows-1253" : "ISO-8859-7";
+}
+
+CharsetRecog_8859_7_el::~CharsetRecog_8859_7_el()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_7_el::getLanguage() const
+{
+ return "el";
+}
+
+int32_t CharsetRecog_8859_7_el::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_7_el, charMap_8859_7);
+}
+
+CharsetRecog_8859_8::~CharsetRecog_8859_8()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_8::getName() const
+{
+ return haveC1Bytes? "windows-1255" : "ISO-8859-8";
+}
+
+CharsetRecog_8859_8_I_he::~CharsetRecog_8859_8_I_he ()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_8_I_he::getName() const
+{
+ return haveC1Bytes? "windows-1255" : "ISO-8859-8-I";
+}
+
+const char *CharsetRecog_8859_8_I_he::getLanguage() const
+{
+ return "he";
+}
+
+int32_t CharsetRecog_8859_8_I_he::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_8_I_he, charMap_8859_8);
+}
+
+CharsetRecog_8859_8_he::~CharsetRecog_8859_8_he()
+{
+ // od ot gnihton
+}
+
+const char *CharsetRecog_8859_8_he::getLanguage() const
+{
+ return "he";
+}
+
+int32_t CharsetRecog_8859_8_he::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_8_he, charMap_8859_8);
+}
+
+CharsetRecog_8859_9::~CharsetRecog_8859_9()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_9::getName() const
+{
+ return haveC1Bytes? "windows-1254" : "ISO-8859-9";
+}
+
+CharsetRecog_8859_9_tr::~CharsetRecog_8859_9_tr ()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_8859_9_tr::getLanguage() const
+{
+ return "tr";
+}
+
+int32_t CharsetRecog_8859_9_tr::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_8859_9_tr, charMap_8859_9);
+}
+
+CharsetRecog_windows_1256::~CharsetRecog_windows_1256()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_windows_1256::getName() const
+{
+ return "windows-1256";
+}
+
+const char *CharsetRecog_windows_1256::getLanguage() const
+{
+ return "ar";
+}
+
+int32_t CharsetRecog_windows_1256::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_windows_1256, charMap_windows_1256);
+}
+
+CharsetRecog_windows_1251::~CharsetRecog_windows_1251()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_windows_1251::getName() const
+{
+ return "windows-1251";
+}
+
+const char *CharsetRecog_windows_1251::getLanguage() const
+{
+ return "ru";
+}
+
+int32_t CharsetRecog_windows_1251::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_windows_1251, charMap_windows_1251);
+}
+
+CharsetRecog_KOI8_R::~CharsetRecog_KOI8_R()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_KOI8_R::getName() const
+{
+ return "KOI8-R";
+}
+
+const char *CharsetRecog_KOI8_R::getLanguage() const
+{
+ return "ru";
+}
+
+int32_t CharsetRecog_KOI8_R::match(InputText *textIn)
+{
+ return match_sbcs(textIn, ngrams_KOI8_R, charMap_KOI8_R);
+}
+
+U_NAMESPACE_END
+#endif
+
diff --git a/Build/source/libs/icu-xetex/i18n/csrsbcs.h b/Build/source/libs/icu-xetex/i18n/csrsbcs.h
new file mode 100644
index 00000000000..456fc4dff43
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrsbcs.h
@@ -0,0 +1,364 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSRSBCS_H
+#define __CSRSBCS_H
+
+#include "unicode/uobject.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+class NGramParser : public UMemory
+{
+private:
+ int32_t byteIndex;
+ int32_t ngram;
+
+ const int32_t *ngramList;
+ const uint8_t *charMap;
+
+ int32_t ngramCount;
+ int32_t hitCount;
+
+public:
+ NGramParser(const int32_t *theNgramList, const uint8_t *theCharMap);
+
+private:
+ /*
+ * Binary search for value in table, which must have exactly 64 entries.
+ */
+ int32_t search(const int32_t *table, int32_t value);
+
+ void lookup(int32_t thisNgram);
+ void addByte(int32_t b);
+ int32_t nextByte(InputText *det);
+
+public:
+ int32_t parse(InputText *det);
+
+};
+
+class CharsetRecog_sbcs : public CharsetRecognizer
+{
+protected:
+ UBool haveC1Bytes;
+
+public:
+ CharsetRecog_sbcs();
+
+ virtual ~CharsetRecog_sbcs();
+
+ virtual const char *getName() const = 0;
+
+ virtual int32_t match(InputText *det) = 0;
+
+ int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]);
+};
+
+class CharsetRecog_8859_1 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_1();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_2 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_2();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_5 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_5();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_6 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_6();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_7 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_7();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_8 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_8();
+
+ virtual const char *getName() const;
+};
+
+class CharsetRecog_8859_9 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_8859_9();
+
+ const char *getName() const;
+};
+
+class CharsetRecog_8859_1_en : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_en();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_da : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_da();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_de : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_de();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_es : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_es();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_fr : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_fr();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_it : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_it();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_nl : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_nl();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_no : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_no();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_pt : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_pt();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_1_sv : public CharsetRecog_8859_1
+{
+public:
+ virtual ~CharsetRecog_8859_1_sv();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_2_cs : public CharsetRecog_8859_2
+{
+public:
+ virtual ~CharsetRecog_8859_2_cs();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_2_hu : public CharsetRecog_8859_2
+{
+public:
+ virtual ~CharsetRecog_8859_2_hu();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_2_pl : public CharsetRecog_8859_2
+{
+public:
+ virtual ~CharsetRecog_8859_2_pl();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_2_ro : public CharsetRecog_8859_2
+{
+public:
+ virtual ~CharsetRecog_8859_2_ro();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_5_ru : public CharsetRecog_8859_5
+{
+public:
+ virtual ~CharsetRecog_8859_5_ru();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6
+{
+public:
+ virtual ~CharsetRecog_8859_6_ar();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_7_el : public CharsetRecog_8859_7
+{
+public:
+ virtual ~CharsetRecog_8859_7_el();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_8_I_he : public CharsetRecog_8859_8
+{
+public:
+ virtual ~CharsetRecog_8859_8_I_he();
+
+ const char *getName() const;
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_8_he : public CharsetRecog_8859_8
+{
+public:
+ virtual ~CharsetRecog_8859_8_he ();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9
+{
+public:
+ virtual ~CharsetRecog_8859_9_tr ();
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_windows_1256 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_windows_1256();
+
+ const char *getName() const;
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+class CharsetRecog_windows_1251 : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_windows_1251();
+
+ const char *getName() const;
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+
+class CharsetRecog_KOI8_R : public CharsetRecog_sbcs
+{
+public:
+ virtual ~CharsetRecog_KOI8_R();
+
+ const char *getName() const;
+
+ const char *getLanguage() const;
+
+ int32_t match(InputText *textIn);
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSRSBCS_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csrucode.cpp b/Build/source/libs/icu-xetex/i18n/csrucode.cpp
new file mode 100644
index 00000000000..99a76d850e6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrucode.cpp
@@ -0,0 +1,146 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrucode.h"
+
+U_NAMESPACE_BEGIN
+
+CharsetRecog_Unicode::~CharsetRecog_Unicode()
+{
+ // nothing to do
+}
+
+CharsetRecog_UTF_16_BE::~CharsetRecog_UTF_16_BE()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_UTF_16_BE::getName() const
+{
+ return "UTF-16BE";
+}
+
+int32_t CharsetRecog_UTF_16_BE::match(InputText* textIn)
+{
+ const uint8_t *input = textIn->fRawInput;
+
+ if (input[0] == 0xFE && input[1] == 0xFF) {
+ return 100;
+ }
+
+ // TODO: Do some statastics to check for unsigned UTF-16BE
+ return 0;
+}
+
+CharsetRecog_UTF_16_LE::~CharsetRecog_UTF_16_LE()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_UTF_16_LE::getName() const
+{
+ return "UTF-16LE";
+}
+
+int32_t CharsetRecog_UTF_16_LE::match(InputText* textIn)
+{
+ const uint8_t *input = textIn->fRawInput;
+
+ if (input[0] == 0xFF && input[1] == 0xFE && (input[2] != 0x00 || input[3] != 0x00)) {
+ return 100;
+ }
+
+ // TODO: Do some statastics to check for unsigned UTF-16LE
+ return 0;
+}
+
+CharsetRecog_UTF_32::~CharsetRecog_UTF_32()
+{
+ // nothing to do
+}
+
+int32_t CharsetRecog_UTF_32::match(InputText* textIn)
+{
+ const uint8_t *input = textIn->fRawInput;
+ int32_t limit = (textIn->fRawLength / 4) * 4;
+ int32_t numValid = 0;
+ int32_t numInvalid = 0;
+ bool hasBOM = FALSE;
+ int32_t confidence = 0;
+
+ if (getChar(input, 0) == 0x0000FEFFUL) {
+ hasBOM = TRUE;
+ }
+
+ for(int32_t i = 0; i < limit; i += 4) {
+ int32_t ch = getChar(input, i);
+
+ if (ch < 0 || ch >= 0x10FFFF || (ch >= 0xD800 && ch <= 0xDFFF)) {
+ numInvalid += 1;
+ } else {
+ numValid += 1;
+ }
+ }
+
+
+ // Cook up some sort of confidence score, based on presense of a BOM
+ // and the existence of valid and/or invalid multi-byte sequences.
+ if (hasBOM && numInvalid==0) {
+ confidence = 100;
+ } else if (hasBOM && numValid > numInvalid*10) {
+ confidence = 80;
+ } else if (numValid > 3 && numInvalid == 0) {
+ confidence = 100;
+ } else if (numValid > 0 && numInvalid == 0) {
+ confidence = 80;
+ } else if (numValid > numInvalid*10) {
+ // Probably corruput UTF-32BE data. Valid sequences aren't likely by chance.
+ confidence = 25;
+ }
+
+ return confidence;
+}
+
+CharsetRecog_UTF_32_BE::~CharsetRecog_UTF_32_BE()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_UTF_32_BE::getName() const
+{
+ return "UTF-32BE";
+}
+
+int32_t CharsetRecog_UTF_32_BE::getChar(const uint8_t *input, int32_t index) const
+{
+ return input[index + 0] << 24 | input[index + 1] << 16 |
+ input[index + 2] << 8 | input[index + 3];
+}
+
+CharsetRecog_UTF_32_LE::~CharsetRecog_UTF_32_LE()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_UTF_32_LE::getName() const
+{
+ return "UTF-32LE";
+}
+
+int32_t CharsetRecog_UTF_32_LE::getChar(const uint8_t *input, int32_t index) const
+{
+ return input[index + 3] << 24 | input[index + 2] << 16 |
+ input[index + 1] << 8 | input[index + 0];
+}
+
+U_NAMESPACE_END
+#endif
+
diff --git a/Build/source/libs/icu-xetex/i18n/csrucode.h b/Build/source/libs/icu-xetex/i18n/csrucode.h
new file mode 100644
index 00000000000..315bad6b25e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrucode.h
@@ -0,0 +1,106 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSRUCODE_H
+#define __CSRUCODE_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * This class matches UTF-16 and UTF-32, both big- and little-endian. The
+ * BOM will be used if it is present.
+ *
+ * @internal
+ */
+class CharsetRecog_Unicode : public CharsetRecognizer
+{
+
+public:
+
+ virtual ~CharsetRecog_Unicode();
+ /* (non-Javadoc)
+ * @see com.ibm.icu.text.CharsetRecognizer#getName()
+ */
+ const char* getName() const = 0;
+
+ /* (non-Javadoc)
+ * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector)
+ */
+ int32_t match(InputText* textIn) = 0;
+};
+
+
+class CharsetRecog_UTF_16_BE : public CharsetRecog_Unicode
+{
+public:
+
+ virtual ~CharsetRecog_UTF_16_BE();
+
+ const char *getName() const;
+
+ int32_t match(InputText* textIn);
+};
+
+class CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode
+{
+public:
+
+ virtual ~CharsetRecog_UTF_16_LE();
+
+ const char *getName() const;
+
+ int32_t match(InputText* textIn);
+};
+
+class CharsetRecog_UTF_32 : public CharsetRecog_Unicode
+{
+protected:
+ virtual int32_t getChar(const uint8_t *input, int32_t index) const = 0;
+public:
+
+ virtual ~CharsetRecog_UTF_32();
+
+ const char* getName() const = 0;
+
+ int32_t match(InputText* textIn);
+};
+
+
+class CharsetRecog_UTF_32_BE : public CharsetRecog_UTF_32
+{
+protected:
+ int32_t getChar(const uint8_t *input, int32_t index) const;
+
+public:
+
+ virtual ~CharsetRecog_UTF_32_BE();
+
+ const char *getName() const;
+};
+
+
+class CharsetRecog_UTF_32_LE : public CharsetRecog_UTF_32
+{
+protected:
+ int32_t getChar(const uint8_t *input, int32_t index) const;
+
+public:
+ virtual ~CharsetRecog_UTF_32_LE();
+
+ const char* getName() const;
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSRUCODE_H */
diff --git a/Build/source/libs/icu-xetex/i18n/csrutf8.cpp b/Build/source/libs/icu-xetex/i18n/csrutf8.cpp
new file mode 100644
index 00000000000..8af5307bdc3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrutf8.cpp
@@ -0,0 +1,111 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrutf8.h"
+
+U_NAMESPACE_BEGIN
+
+CharsetRecog_UTF8::~CharsetRecog_UTF8()
+{
+ // nothing to do
+}
+
+const char *CharsetRecog_UTF8::getName() const
+{
+ return "UTF-8";
+}
+
+int32_t CharsetRecog_UTF8::match(InputText* det) {
+ bool hasBOM = FALSE;
+ int32_t numValid = 0;
+ int32_t numInvalid = 0;
+ const uint8_t *input = det->fRawInput;
+ int32_t i;
+ int32_t trailBytes = 0;
+ int32_t confidence;
+
+ if (det->fRawLength >= 3 &&
+ input[0] == 0xEF && input[1] == 0xBB && input[2] == 0xBF) {
+ hasBOM = TRUE;
+ }
+
+ // Scan for multi-byte sequences
+ for (i=0; i < det->fRawLength; i += 1) {
+ int32_t b = input[i];
+
+ if ((b & 0x80) == 0) {
+ continue; // ASCII
+ }
+
+ // Hi bit on char found. Figure out how long the sequence should be
+ if ((b & 0x0E0) == 0x0C0) {
+ trailBytes = 1;
+ } else if ((b & 0x0F0) == 0x0E0) {
+ trailBytes = 2;
+ } else if ((b & 0x0F8) == 0xF0) {
+ trailBytes = 3;
+ } else {
+ numInvalid += 1;
+
+ if (numInvalid > 5) {
+ break;
+ }
+
+ trailBytes = 0;
+ }
+
+ // Verify that we've got the right number of trail bytes in the sequence
+ for (;;) {
+ i += 1;
+
+ if (i >= det->fRawLength) {
+ break;
+ }
+
+ b = input[i];
+
+ if ((b & 0xC0) != 0x080) {
+ numInvalid += 1;
+ break;
+ }
+
+ if (--trailBytes == 0) {
+ numValid += 1;
+ break;
+ }
+ }
+
+ }
+
+ // Cook up some sort of confidence score, based on presense of a BOM
+ // and the existence of valid and/or invalid multi-byte sequences.
+ confidence = 0;
+ if (hasBOM && numInvalid == 0) {
+ confidence = 100;
+ } else if (hasBOM && numValid > numInvalid*10) {
+ confidence = 80;
+ } else if (numValid > 3 && numInvalid == 0) {
+ confidence = 100;
+ } else if (numValid > 0 && numInvalid == 0) {
+ confidence = 80;
+ } else if (numValid == 0 && numInvalid == 0) {
+ // Plain ASCII.
+ confidence = 10;
+ } else if (numValid > numInvalid*10) {
+ // Probably corruput utf-8 data. Valid sequences aren't likely by chance.
+ confidence = 25;
+ }
+
+ return confidence;
+}
+
+U_NAMESPACE_END
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/csrutf8.h b/Build/source/libs/icu-xetex/i18n/csrutf8.h
new file mode 100644
index 00000000000..10fe287a435
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/csrutf8.h
@@ -0,0 +1,42 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSRUTF8_H
+#define __CSRUTF8_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "csrecog.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * Charset recognizer for UTF-8
+ *
+ * @internal
+ */
+class CharsetRecog_UTF8: public CharsetRecognizer {
+
+ public:
+
+ virtual ~CharsetRecog_UTF8();
+
+ const char *getName() const;
+
+ /* (non-Javadoc)
+ * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector)
+ */
+ int32_t match(InputText *det);
+
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __CSRUTF8_H */
diff --git a/Build/source/libs/icu-xetex/i18n/datefmt.cpp b/Build/source/libs/icu-xetex/i18n/datefmt.cpp
index b2b758168d4..b07622c39e8 100644
--- a/Build/source/libs/icu-xetex/i18n/datefmt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/datefmt.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -13,7 +13,7 @@
* 03/31/97 aliu Modified extensively to work with 50 locales.
* 04/01/97 aliu Added support for centuries.
* 08/12/97 aliu Fixed operator== to use Calendar::equivalentTo.
-* 07/20/98 stephen Changed ParsePosition initialization
+* 07/20/98 stephen Changed ParsePosition initialization
********************************************************************************
*/
@@ -25,6 +25,9 @@
#include "unicode/datefmt.h"
#include "unicode/smpdtfmt.h"
+#include "cstring.h"
+#include "windtfmt.h"
+
#if defined( U_DEBUG_CALSVC ) || defined (U_DEBUG_CAL)
#include <stdio.h>
#endif
@@ -267,8 +270,25 @@ DateFormat::createInstance()
DateFormat* U_EXPORT2
DateFormat::create(EStyle timeStyle, EStyle dateStyle, const Locale& locale)
{
- // Try to create a SimpleDateFormat of the desired style.
UErrorCode status = U_ZERO_ERROR;
+#ifdef U_WINDOWS
+ char buffer[8];
+ int32_t count = locale.getKeywordValue("compat", buffer, sizeof(buffer), status);
+
+ // if the locale has "@compat=host", create a host-specific DateFormat...
+ if (count > 0 && uprv_strcmp(buffer, "host") == 0) {
+ Win32DateFormat *f = new Win32DateFormat(timeStyle, dateStyle, locale, status);
+
+ if (U_SUCCESS(status)) {
+ return f;
+ }
+
+ delete f;
+ }
+#endif
+
+
+ // Try to create a SimpleDateFormat of the desired style.
SimpleDateFormat *f = new SimpleDateFormat(timeStyle, dateStyle, locale, status);
if (U_SUCCESS(status)) return f;
delete f;
diff --git a/Build/source/libs/icu-xetex/i18n/dcfmtsym.cpp b/Build/source/libs/icu-xetex/i18n/dcfmtsym.cpp
index d9b4d484d82..34074750ad2 100644
--- a/Build/source/libs/icu-xetex/i18n/dcfmtsym.cpp
+++ b/Build/source/libs/icu-xetex/i18n/dcfmtsym.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -29,7 +29,7 @@
#include "ucurrimp.h"
#include "cstring.h"
#include "locbased.h"
-
+#include "uresimp.h"
// *****************************************************************************
// class DecimalFormatSymbols
// *****************************************************************************
@@ -120,13 +120,13 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
UBool useLastResortData)
{
*validLocale = *actualLocale = 0;
-
+ currPattern = NULL;
if (U_FAILURE(status))
return;
-
+
const char* locStr = loc.getName();
UResourceBundle *resource = ures_open((char *)0, locStr, &status);
- UResourceBundle *numberElementsRes = ures_getByKey(resource, gNumberElements, resource, &status);
+ UResourceBundle *numberElementsRes = ures_getByKey(resource, gNumberElements, NULL, &status);
if (U_FAILURE(status))
{
// Initializes with last resort data if necessary.
@@ -183,7 +183,40 @@ DecimalFormatSymbols::initialize(const Locale& loc, UErrorCode& status,
ures_getLocaleByType(numberElementsRes,
ULOC_ACTUAL_LOCALE, &status));
}
+ //load the currency data
+ UChar ucc[4]={0}; //Currency Codes are always 3 chars long
+ int32_t uccLen = 4;
+ const char* locName = loc.getName();
+ uccLen = ucurr_forLocale(locName, ucc, uccLen, &status);
+ if(U_SUCCESS(status) && uccLen > 0) {
+ char cc[4]={0};
+ u_UCharsToChars(ucc, cc, uccLen);
+ /* An explicit currency was requested */
+ UErrorCode localStatus = U_ZERO_ERROR;
+ UResourceBundle *currency = ures_getByKeyWithFallback(resource, "Currencies", NULL, &localStatus);
+ currency = ures_getByKeyWithFallback(currency, cc, currency, &localStatus);
+ if(U_SUCCESS(localStatus) && ures_getSize(currency)>2) { // the length is 3 if more data is present
+ currency = ures_getByIndex(currency, 2, currency, &localStatus);
+ int32_t currPatternLen = 0;
+ currPattern = ures_getStringByIndex(currency, (int32_t)0, &currPatternLen, &localStatus);
+ UnicodeString decimalSep = ures_getStringByIndex(currency, (int32_t)1, NULL, &localStatus);
+ UnicodeString groupingSep = ures_getStringByIndex(currency, (int32_t)2, NULL, &localStatus);
+ if(U_SUCCESS(localStatus)){
+ fSymbols[kMonetaryGroupingSeparatorSymbol] = groupingSep;
+ fSymbols[kMonetarySeparatorSymbol] = decimalSep;
+ //pattern.setTo(TRUE, currPattern, currPatternLen);
+ status = localStatus;
+ }
+ }
+ ures_close(currency);
+ /* else An explicit currency was requested and is unknown or locale data is malformed. */
+ /* ucurr_* API will get the correct value later on. */
+ }else{
+ // ignore the error if no currency
+ status = U_ZERO_ERROR;
+ }
}
+ ures_close(resource);
ures_close(numberElementsRes);
}
@@ -222,6 +255,7 @@ DecimalFormatSymbols::initialize(const UChar** numberElements, int32_t *numberEl
// TODO: read from locale data, if this makes it into CLDR
fSymbols[kSignificantDigitSymbol] = (UChar)0x0040; // '@' significant digit
fSymbols[kPadEscapeSymbol] = (UChar)0x002a; // TODO: '*' Hard coded for now; get from resource later
+ fSymbols[kMonetaryGroupingSeparatorSymbol] = fSymbols[kGroupingSeparatorSymbol];
}
// initialize with default values
diff --git a/Build/source/libs/icu-xetex/i18n/decimfmt.cpp b/Build/source/libs/icu-xetex/i18n/decimfmt.cpp
index 70ed5e0b1fe..4d447c62d5c 100644
--- a/Build/source/libs/icu-xetex/i18n/decimfmt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/decimfmt.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -325,31 +325,18 @@ DecimalFormat::construct(UErrorCode& status,
if (pattern->indexOf((UChar)kCurrencySign) >= 0) {
// If it looks like we are going to use a currency pattern
// then do the time consuming lookup.
- if (symbolsToAdopt == NULL) {
- setCurrencyForLocale(uloc_getDefault(), status);
- } else {
- setCurrencyForSymbols();
- }
+ setCurrencyForSymbols();
} else {
setCurrency(NULL, status);
}
applyPattern(*pattern, FALSE /*not localized*/,parseErr, status);
-}
-
-/**
- * Sets our currency to be the default currency for the given locale.
- */
-void DecimalFormat::setCurrencyForLocale(const char* locale, UErrorCode& ec) {
- const UChar* c = NULL;
- if (U_SUCCESS(ec)) {
- // Trap an error in mapping locale to currency. If we can't
- // map, then don't fail and set the currency to "".
- UErrorCode ec2 = U_ZERO_ERROR;
- UChar c[4];
- ucurr_forLocale(locale, c, 4, &ec2);
+
+ // If it was a currency format, apply the appropriate rounding by
+ // resetting the currency. NOTE: this copies fCurrency on top of itself.
+ if (fIsCurrencyFormat) {
+ setCurrency(getCurrency(), status);
}
- setCurrency(c, ec);
}
//------------------------------------------------------------------------------
@@ -832,7 +819,12 @@ DecimalFormat::subformat(UnicodeString& appendTo,
// Gets the localized zero Unicode character.
UChar32 zero = getConstSymbol(DecimalFormatSymbols::kZeroDigitSymbol).char32At(0);
int32_t zeroDelta = zero - '0'; // '0' is the DigitList representation of zero
- const UnicodeString *grouping = &getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
+ const UnicodeString *grouping ;
+ if(fIsCurrencyFormat) {
+ grouping = &getConstSymbol(DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol);
+ }else{
+ grouping = &getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol);
+ }
const UnicodeString *decimal;
if(fIsCurrencyFormat) {
decimal = &getConstSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol);
@@ -1764,7 +1756,9 @@ int32_t DecimalFormat::skipUWhiteSpace(const UnicodeString& text, int32_t pos) {
int32_t DecimalFormat::compareComplexAffix(const UnicodeString& affixPat,
const UnicodeString& text,
int32_t pos,
- UChar* currency) const {
+ UChar* currency) const
+{
+ int32_t start = pos;
U_ASSERT(currency != NULL ||
(fCurrencyChoice != NULL && *getCurrency() != 0));
@@ -1850,7 +1844,7 @@ int32_t DecimalFormat::compareComplexAffix(const UnicodeString& affixPat,
i = skipRuleWhiteSpace(affixPat, i);
}
}
- return pos;
+ return pos - start;
}
/**
diff --git a/Build/source/libs/icu-xetex/i18n/digitlst.cpp b/Build/source/libs/icu-xetex/i18n/digitlst.cpp
index 2ec5a147c11..350e685ae35 100644
--- a/Build/source/libs/icu-xetex/i18n/digitlst.cpp
+++ b/Build/source/libs/icu-xetex/i18n/digitlst.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1997-2004, International Business Machines
+* Copyright (C) 1997-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -51,8 +51,6 @@ static char gDecimal = 0;
static const char LONG_MIN_REP[] = "2147483648";
static const char I64_MIN_REP[] = "9223372036854775808";
-static const int64_t I64_MIN_VALUE = U_INT64_MIN;
-
enum {
LONG_MIN_REP_LENGTH = sizeof(LONG_MIN_REP) - 1, //Ignore the NULL at the end
I64_MIN_REP_LENGTH = sizeof(I64_MIN_REP) - 1 //Ignore the NULL at the end
diff --git a/Build/source/libs/icu-xetex/i18n/dtfmtsym.cpp b/Build/source/libs/icu-xetex/i18n/dtfmtsym.cpp
index 30ebbebcf81..b710170916f 100644
--- a/Build/source/libs/icu-xetex/i18n/dtfmtsym.cpp
+++ b/Build/source/libs/icu-xetex/i18n/dtfmtsym.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -16,6 +16,7 @@
* 11/16/99 weiv Added 'Y' and 'e' to fgPatternChars
* 03/27/00 weiv Keeping resource bundle around!
* 06/30/05 emmons Added eraNames, narrow month/day, standalone context
+* 10/12/05 emmons Added setters for eraNames, month/day by width/context
*******************************************************************************
*/
@@ -25,13 +26,16 @@
#include "unicode/dtfmtsym.h"
#include "unicode/smpdtfmt.h"
+#include "cpputils.h"
#include "ucln_in.h"
#include "mutex.h"
#include "cmemory.h"
#include "cstring.h"
#include "locbased.h"
#include "gregoimp.h"
-
+#include "hash.h"
+#include "uresimp.h"
+
// *****************************************************************************
// class DateFormatSymbols
// *****************************************************************************
@@ -40,19 +44,22 @@
* resource data.
*/
-#define PATTERN_CHARS_LEN 24
+#define PATTERN_CHARS_LEN 26
/**
* Unlocalized date-time pattern characters. For example: 'y', 'd', etc. All
* locales use the same these unlocalized pattern characters.
*/
static const UChar gPatternChars[] = {
- // GyMdkHmsSEDFwWahKzYeugAZvcL
+ // GyMdkHmsSEDFwWahKzYeugAZvcLQq
0x47, 0x79, 0x4D, 0x64, 0x6B, 0x48, 0x6D, 0x73, 0x53, 0x45,
0x44, 0x46, 0x77, 0x57, 0x61, 0x68, 0x4B, 0x7A, 0x59, 0x65,
- 0x75, 0x67, 0x41, 0x5A, 0x76, 0x63, 0x4c, 0
+ 0x75, 0x67, 0x41, 0x5A, 0x76, 0x63, 0x4c, 0x51, 0x71, 0
};
+/* length of an array */
+#define ARRAY_LENGTH(array) (sizeof(array)/sizeof(array[0]))
+
//------------------------------------------------------
// Strings of last resort. These are only used if we have no resource
// files. They aren't designed for actual use, just for backup.
@@ -78,7 +85,7 @@ static const UChar gLastResortMonthNames[13][3] =
// These are the weekday names and abbreviations of last resort.
static const UChar gLastResortDayNames[8][2] =
{
- {0x0000, 0x0000}, /* "" */
+ {0x0030, 0x0000}, /* "0" */
{0x0031, 0x0000}, /* "1" */
{0x0032, 0x0000}, /* "2" */
{0x0033, 0x0000}, /* "3" */
@@ -88,6 +95,15 @@ static const UChar gLastResortDayNames[8][2] =
{0x0037, 0x0000} /* "7" */
};
+// These are the quarter names and abbreviations of last resort.
+static const UChar gLastResortQuarters[4][2] =
+{
+ {0x0031, 0x0000}, /* "1" */
+ {0x0032, 0x0000}, /* "2" */
+ {0x0033, 0x0000}, /* "3" */
+ {0x0034, 0x0000}, /* "4" */
+};
+
// These are the am/pm and BC/AD markers of last resort.
static const UChar gLastResortAmPmMarkers[2][3] =
{
@@ -103,12 +119,14 @@ static const UChar gLastResortEras[2][3] =
// These are the zone strings of last resort.
-static const UChar gLastResortZoneStrings[5][4] =
+static const UChar gLastResortZoneStrings[7][4] =
{
{0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
{0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
{0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
{0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
+ {0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
+ {0x0047, 0x004D, 0x0054, 0x0000}, /* "GMT" */
{0x0047, 0x004D, 0x0054, 0x0000} /* "GMT" */
};
@@ -123,6 +141,9 @@ typedef enum LastResortSize {
kAmPmNum = 2,
kAmPmLen = 3,
+ kQuarterNum = 4,
+ kQuarterLen = 2,
+
kEraNum = 2,
kEraLen = 3,
@@ -138,22 +159,37 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DateFormatSymbols)
* These are the tags we expect to see in normal resource bundle files associated
* with a locale and calendar
*/
-const char gErasTag[]="eras";
-const char gAbbreviatedTag[] = "abbreviated";
-const char gMonthNamesTag[]="monthNames";
-const char gDayNamesTag[]="dayNames";
-const char gNamesWideTag[]="wide";
-const char gNamesAbbrTag[]="abbreviated";
-const char gNamesNarrowTag[]="narrow";
-const char gNamesStandaloneTag[]="stand-alone";
-const char gAmPmMarkersTag[]="AmPmMarkers";
+static const char gErasTag[]="eras";
+static const char gAbbreviatedTag[] = "abbreviated";
+static const char gMonthNamesTag[]="monthNames";
+static const char gDayNamesTag[]="dayNames";
+static const char gNamesWideTag[]="wide";
+static const char gNamesAbbrTag[]="abbreviated";
+static const char gNamesNarrowTag[]="narrow";
+static const char gNamesStandaloneTag[]="stand-alone";
+static const char gAmPmMarkersTag[]="AmPmMarkers";
+static const char gQuartersTag[]="quarters";
/**
* These are the tags we expect to see in time zone data resource bundle files
* associated with a locale.
*/
-const char gZoneStringsTag[]="zoneStrings";
-const char gLocalPatternCharsTag[]="localPatternChars";
+static const char gZoneStringsTag[]="zoneStrings";
+static const char gLocalPatternCharsTag[]="localPatternChars";
+
+static UMTX LOCK;
+
+/*
+ * Keep this variable in synch with max length of display strings
+ */
+#define UTZ_MAX_DISPLAY_STRINGS_LENGTH 7
+#define UTZ_SHORT_GENERIC "sg"
+#define UTZ_SHORT_STANDARD "ss"
+#define UTZ_SHORT_DAYLIGHT "sd"
+#define UTZ_LONG_GENERIC "lg"
+#define UTZ_LONG_STANDARD "ls"
+#define UTZ_LONG_DAYLIGHT "ld"
+#define UTZ_EXEMPLAR_CITY "ec"
/**
* Jitterbug 2974: MSVC has a bug whereby new X[0] behaves badly.
@@ -163,6 +199,12 @@ static inline UnicodeString* newUnicodeStringArray(size_t count) {
return new UnicodeString[count ? count : 1];
}
+U_CDECL_BEGIN
+static void deleteUnicodeStringArray(void* obj) {
+ delete[] (UnicodeString*)obj;
+}
+U_CDECL_END
+
//------------------------------------------------------
DateFormatSymbols::DateFormatSymbols(const Locale& locale,
@@ -268,10 +310,29 @@ DateFormatSymbols::copyData(const DateFormatSymbols& other) {
assignArray(fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount, other.fStandaloneShortWeekdays, other.fStandaloneShortWeekdaysCount);
assignArray(fStandaloneNarrowWeekdays, fStandaloneNarrowWeekdaysCount, other.fStandaloneNarrowWeekdays, other.fStandaloneNarrowWeekdaysCount);
assignArray(fAmPms, fAmPmsCount, other.fAmPms, other.fAmPmsCount);
-
- fZoneStringsRowCount = other.fZoneStringsRowCount;
- fZoneStringsColCount = other.fZoneStringsColCount;
- createZoneStrings((const UnicodeString**)other.fZoneStrings);
+ assignArray(fQuarters, fQuartersCount, other.fQuarters, other.fQuartersCount);
+ assignArray(fShortQuarters, fShortQuartersCount, other.fShortQuarters, other.fShortQuartersCount);
+ assignArray(fStandaloneQuarters, fStandaloneQuartersCount, other.fStandaloneQuarters, other.fStandaloneQuartersCount);
+ assignArray(fStandaloneShortQuarters, fStandaloneShortQuartersCount, other.fStandaloneShortQuarters, other.fStandaloneShortQuartersCount);
+ // the zoneStrings data is initialized on demand
+ //fZoneStringsRowCount = other.fZoneStringsRowCount;
+ //fZoneStringsColCount = other.fZoneStringsColCount;
+ //createZoneStrings((const UnicodeString**)other.fZoneStrings);
+ // initialize on demand
+ fZoneStringsHash = NULL;
+ fZoneIDEnumeration = NULL;
+ fZoneStrings = NULL;
+ fZoneStringsColCount = 0;
+ fZoneStringsRowCount = 0;
+ fResourceBundle = NULL;
+ if(other.fZoneStringsHash!=NULL){
+ fZoneStringsHash = createZoneStringsHash(other.fZoneStringsHash);
+ fZoneIDEnumeration = other.fZoneIDEnumeration->clone();
+ }else{
+ UErrorCode status =U_ZERO_ERROR;
+ fResourceBundle = ures_clone(other.fResourceBundle, &status);
+ // TODO: what should be done in case of error?
+ }
// fastCopyFrom() - see assignArray comments
fLocalPatternChars.fastCopyFrom(other.fLocalPatternChars);
@@ -310,6 +371,10 @@ void DateFormatSymbols::dispose()
if (fStandaloneShortWeekdays) delete[] fStandaloneShortWeekdays;
if (fStandaloneNarrowWeekdays) delete[] fStandaloneNarrowWeekdays;
if (fAmPms) delete[] fAmPms;
+ if (fQuarters) delete[] fQuarters;
+ if (fShortQuarters) delete[] fShortQuarters;
+ if (fStandaloneQuarters) delete[] fStandaloneQuarters;
+ if (fStandaloneShortQuarters) delete[] fStandaloneShortQuarters;
disposeZoneStrings();
}
@@ -320,7 +385,17 @@ void DateFormatSymbols::disposeZoneStrings()
for (int32_t row=0; row<fZoneStringsRowCount; ++row)
delete[] fZoneStrings[row];
uprv_free(fZoneStrings);
+ }
+ if(fZoneStringsHash){
+ delete fZoneStringsHash;
+ fZoneStringsHash = NULL;
}
+ if(fZoneIDEnumeration){
+ delete fZoneIDEnumeration;
+ fZoneIDEnumeration = NULL;
+ }
+ ures_close(fResourceBundle);
+ fResourceBundle = NULL;
}
UBool
@@ -359,8 +434,10 @@ DateFormatSymbols::operator==(const DateFormatSymbols& other) const
fStandaloneShortWeekdaysCount == other.fStandaloneShortWeekdaysCount &&
fStandaloneNarrowWeekdaysCount == other.fStandaloneNarrowWeekdaysCount &&
fAmPmsCount == other.fAmPmsCount &&
- fZoneStringsRowCount == other.fZoneStringsRowCount &&
- fZoneStringsColCount == other.fZoneStringsColCount)
+ fQuartersCount == other.fQuartersCount &&
+ fShortQuartersCount == other.fShortQuartersCount &&
+ fStandaloneQuartersCount == other.fStandaloneQuartersCount &&
+ fStandaloneShortQuartersCount == other.fStandaloneShortQuartersCount)
{
// Now compare the arrays themselves
if (arrayCompare(fEras, other.fEras, fErasCount) &&
@@ -377,15 +454,28 @@ DateFormatSymbols::operator==(const DateFormatSymbols& other) const
arrayCompare(fStandaloneWeekdays, other.fStandaloneWeekdays, fStandaloneWeekdaysCount) &&
arrayCompare(fStandaloneShortWeekdays, other.fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount) &&
arrayCompare(fStandaloneNarrowWeekdays, other.fStandaloneNarrowWeekdays, fStandaloneNarrowWeekdaysCount) &&
- arrayCompare(fAmPms, other.fAmPms, fAmPmsCount))
+ arrayCompare(fAmPms, other.fAmPms, fAmPmsCount) &&
+ arrayCompare(fQuarters, other.fQuarters, fQuartersCount) &&
+ arrayCompare(fShortQuarters, other.fShortQuarters, fShortQuartersCount) &&
+ arrayCompare(fStandaloneQuarters, other.fStandaloneQuarters, fStandaloneQuartersCount) &&
+ arrayCompare(fStandaloneShortQuarters, other.fStandaloneShortQuarters, fStandaloneShortQuartersCount))
{
- if (fZoneStrings == other.fZoneStrings) return TRUE;
-
- for (int32_t row=0; row<fZoneStringsRowCount; ++row)
- {
- if (!arrayCompare(fZoneStrings[row], other.fZoneStrings[row], fZoneStringsColCount))
+
+ if(fZoneStringsHash == NULL || other.fZoneStringsHash == NULL){
+ // fZoneStringsHash is not initialized compare the resource bundles
+ if(ures_equal(fResourceBundle, other.fResourceBundle)== FALSE){
+ return FALSE;
+ }
+ }else{
+ if(fZoneStringsHash->equals(*other.fZoneStringsHash) == FALSE){
return FALSE;
+ }
+ // we always make sure that we update the enumeration when the hash is
+ // updated. So we can be sure that once we compare the hashes the
+ // enumerations are also equal
}
+ // since fZoneStrings data member is deprecated .. and may not be initialized
+ // so don't compare them
return TRUE;
}
}
@@ -428,38 +518,44 @@ DateFormatSymbols::getMonths(int32_t &count, DtContextType context, DtWidthType
UnicodeString *returnValue = NULL;
switch (context) {
- case FORMAT :
- switch(width) {
- case WIDE :
- count = fMonthsCount;
- returnValue = fMonths;
- break;
- case ABBREVIATED :
- count = fShortMonthsCount;
- returnValue = fShortMonths;
- break;
- case NARROW :
- count = fNarrowMonthsCount;
- returnValue = fNarrowMonths;
- break;
- }
- break;
- case STANDALONE :
- switch(width) {
- case WIDE :
- count = fStandaloneMonthsCount;
- returnValue = fStandaloneMonths;
- break;
- case ABBREVIATED :
- count = fStandaloneShortMonthsCount;
- returnValue = fStandaloneShortMonths;
- break;
- case NARROW :
- count = fStandaloneNarrowMonthsCount;
- returnValue = fStandaloneNarrowMonths;
- break;
- }
- break;
+ case FORMAT :
+ switch(width) {
+ case WIDE :
+ count = fMonthsCount;
+ returnValue = fMonths;
+ break;
+ case ABBREVIATED :
+ count = fShortMonthsCount;
+ returnValue = fShortMonths;
+ break;
+ case NARROW :
+ count = fNarrowMonthsCount;
+ returnValue = fNarrowMonths;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch(width) {
+ case WIDE :
+ count = fStandaloneMonthsCount;
+ returnValue = fStandaloneMonths;
+ break;
+ case ABBREVIATED :
+ count = fStandaloneShortMonthsCount;
+ returnValue = fStandaloneShortMonths;
+ break;
+ case NARROW :
+ count = fStandaloneNarrowMonthsCount;
+ returnValue = fStandaloneNarrowMonths;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
}
return returnValue;
}
@@ -483,38 +579,92 @@ DateFormatSymbols::getWeekdays(int32_t &count, DtContextType context, DtWidthTyp
{
UnicodeString *returnValue = NULL;
switch (context) {
- case FORMAT :
- switch(width) {
- case WIDE :
+ case FORMAT :
+ switch(width) {
+ case WIDE :
count = fWeekdaysCount;
returnValue = fWeekdays;
break;
- case ABBREVIATED :
+ case ABBREVIATED :
count = fShortWeekdaysCount;
returnValue = fShortWeekdays;
break;
- case NARROW :
+ case NARROW :
count = fNarrowWeekdaysCount;
returnValue = fNarrowWeekdays;
break;
- }
- break;
- case STANDALONE :
- switch(width) {
- case WIDE :
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch(width) {
+ case WIDE :
count = fStandaloneWeekdaysCount;
returnValue = fStandaloneWeekdays;
break;
- case ABBREVIATED :
+ case ABBREVIATED :
count = fStandaloneShortWeekdaysCount;
returnValue = fStandaloneShortWeekdays;
break;
- case NARROW :
+ case NARROW :
count = fStandaloneNarrowWeekdaysCount;
returnValue = fStandaloneNarrowWeekdays;
break;
- }
- break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
+ }
+ return returnValue;
+}
+
+const UnicodeString*
+DateFormatSymbols::getQuarters(int32_t &count, DtContextType context, DtWidthType width ) const
+{
+ UnicodeString *returnValue = NULL;
+
+ switch (context) {
+ case FORMAT :
+ switch(width) {
+ case WIDE :
+ count = fQuartersCount;
+ returnValue = fQuarters;
+ break;
+ case ABBREVIATED :
+ count = fShortQuartersCount;
+ returnValue = fShortQuarters;
+ break;
+ case NARROW :
+ count = 0;
+ returnValue = NULL;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch(width) {
+ case WIDE :
+ count = fStandaloneQuartersCount;
+ returnValue = fStandaloneQuarters;
+ break;
+ case ABBREVIATED :
+ count = fStandaloneShortQuartersCount;
+ returnValue = fStandaloneShortQuarters;
+ break;
+ case NARROW :
+ count = 0;
+ returnValue = NULL;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
}
return returnValue;
}
@@ -532,7 +682,8 @@ void
DateFormatSymbols::setEras(const UnicodeString* erasArray, int32_t count)
{
// delete the old list if we own it
- if (fEras) delete[] fEras;
+ if (fEras)
+ delete[] fEras;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
@@ -542,10 +693,25 @@ DateFormatSymbols::setEras(const UnicodeString* erasArray, int32_t count)
}
void
+DateFormatSymbols::setEraNames(const UnicodeString* eraNamesArray, int32_t count)
+{
+ // delete the old list if we own it
+ if (fEraNames)
+ delete[] fEraNames;
+
+ // we always own the new list, which we create here (we duplicate rather
+ // than adopting the list passed in)
+ fEraNames = newUnicodeStringArray(count);
+ uprv_arrayCopy(eraNamesArray,fEraNames, count);
+ fEraNamesCount = count;
+}
+
+void
DateFormatSymbols::setMonths(const UnicodeString* monthsArray, int32_t count)
{
// delete the old list if we own it
- if (fMonths) delete[] fMonths;
+ if (fMonths)
+ delete[] fMonths;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
@@ -558,7 +724,8 @@ void
DateFormatSymbols::setShortMonths(const UnicodeString* shortMonthsArray, int32_t count)
{
// delete the old list if we own it
- if (fShortMonths) delete[] fShortMonths;
+ if (fShortMonths)
+ delete[] fShortMonths;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
@@ -567,10 +734,78 @@ DateFormatSymbols::setShortMonths(const UnicodeString* shortMonthsArray, int32_t
fShortMonthsCount = count;
}
+void
+DateFormatSymbols::setMonths(const UnicodeString* monthsArray, int32_t count, DtContextType context, DtWidthType width)
+{
+ // delete the old list if we own it
+ // we always own the new list, which we create here (we duplicate rather
+ // than adopting the list passed in)
+
+ switch (context) {
+ case FORMAT :
+ switch (width) {
+ case WIDE :
+ if (fMonths)
+ delete[] fMonths;
+ fMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fMonths,count);
+ fMonthsCount = count;
+ break;
+ case ABBREVIATED :
+ if (fShortMonths)
+ delete[] fShortMonths;
+ fShortMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fShortMonths,count);
+ fShortMonthsCount = count;
+ break;
+ case NARROW :
+ if (fNarrowMonths)
+ delete[] fNarrowMonths;
+ fNarrowMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fNarrowMonths,count);
+ fNarrowMonthsCount = count;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch (width) {
+ case WIDE :
+ if (fStandaloneMonths)
+ delete[] fStandaloneMonths;
+ fStandaloneMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fStandaloneMonths,count);
+ fStandaloneMonthsCount = count;
+ break;
+ case ABBREVIATED :
+ if (fStandaloneShortMonths)
+ delete[] fStandaloneShortMonths;
+ fStandaloneShortMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fStandaloneShortMonths,count);
+ fStandaloneShortMonthsCount = count;
+ break;
+ case NARROW :
+ if (fStandaloneNarrowMonths)
+ delete[] fStandaloneNarrowMonths;
+ fStandaloneNarrowMonths = newUnicodeStringArray(count);
+ uprv_arrayCopy( monthsArray,fStandaloneNarrowMonths,count);
+ fStandaloneNarrowMonthsCount = count;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
+ }
+}
+
void DateFormatSymbols::setWeekdays(const UnicodeString* weekdaysArray, int32_t count)
{
// delete the old list if we own it
- if (fWeekdays) delete[] fWeekdays;
+ if (fWeekdays)
+ delete[] fWeekdays;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
@@ -583,16 +818,155 @@ void
DateFormatSymbols::setShortWeekdays(const UnicodeString* shortWeekdaysArray, int32_t count)
{
// delete the old list if we own it
- if (fShortWeekdays) delete[] fShortWeekdays;
+ if (fShortWeekdays)
+ delete[] fShortWeekdays;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
fShortWeekdays = newUnicodeStringArray(count);
- uprv_arrayCopy( shortWeekdaysArray,fShortWeekdays,count);
+ uprv_arrayCopy(shortWeekdaysArray, fShortWeekdays, count);
fShortWeekdaysCount = count;
}
void
+DateFormatSymbols::setWeekdays(const UnicodeString* weekdaysArray, int32_t count, DtContextType context, DtWidthType width)
+{
+ // delete the old list if we own it
+ // we always own the new list, which we create here (we duplicate rather
+ // than adopting the list passed in)
+
+ switch (context) {
+ case FORMAT :
+ switch (width) {
+ case WIDE :
+ if (fWeekdays)
+ delete[] fWeekdays;
+ fWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fWeekdays, count);
+ fWeekdaysCount = count;
+ break;
+ case ABBREVIATED :
+ if (fShortWeekdays)
+ delete[] fShortWeekdays;
+ fShortWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fShortWeekdays, count);
+ fShortWeekdaysCount = count;
+ break;
+ case NARROW :
+ if (fNarrowWeekdays)
+ delete[] fNarrowWeekdays;
+ fNarrowWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fNarrowWeekdays, count);
+ fNarrowWeekdaysCount = count;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch (width) {
+ case WIDE :
+ if (fStandaloneWeekdays)
+ delete[] fStandaloneWeekdays;
+ fStandaloneWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fStandaloneWeekdays, count);
+ fStandaloneWeekdaysCount = count;
+ break;
+ case ABBREVIATED :
+ if (fStandaloneShortWeekdays)
+ delete[] fStandaloneShortWeekdays;
+ fStandaloneShortWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fStandaloneShortWeekdays, count);
+ fStandaloneShortWeekdaysCount = count;
+ break;
+ case NARROW :
+ if (fStandaloneNarrowWeekdays)
+ delete[] fStandaloneNarrowWeekdays;
+ fStandaloneNarrowWeekdays = newUnicodeStringArray(count);
+ uprv_arrayCopy(weekdaysArray, fStandaloneNarrowWeekdays, count);
+ fStandaloneNarrowWeekdaysCount = count;
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
+ }
+}
+
+void
+DateFormatSymbols::setQuarters(const UnicodeString* quartersArray, int32_t count, DtContextType context, DtWidthType width)
+{
+ // delete the old list if we own it
+ // we always own the new list, which we create here (we duplicate rather
+ // than adopting the list passed in)
+
+ switch (context) {
+ case FORMAT :
+ switch (width) {
+ case WIDE :
+ if (fQuarters)
+ delete[] fQuarters;
+ fQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fQuarters,count);
+ fQuartersCount = count;
+ break;
+ case ABBREVIATED :
+ if (fShortQuarters)
+ delete[] fShortQuarters;
+ fShortQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fShortQuarters,count);
+ fShortQuartersCount = count;
+ break;
+ case NARROW :
+ /*
+ if (fNarrowQuarters)
+ delete[] fNarrowQuarters;
+ fNarrowQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fNarrowQuarters,count);
+ fNarrowQuartersCount = count;
+ */
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case STANDALONE :
+ switch (width) {
+ case WIDE :
+ if (fStandaloneQuarters)
+ delete[] fStandaloneQuarters;
+ fStandaloneQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fStandaloneQuarters,count);
+ fStandaloneQuartersCount = count;
+ break;
+ case ABBREVIATED :
+ if (fStandaloneShortQuarters)
+ delete[] fStandaloneShortQuarters;
+ fStandaloneShortQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fStandaloneShortQuarters,count);
+ fStandaloneShortQuartersCount = count;
+ break;
+ case NARROW :
+ /*
+ if (fStandaloneNarrowQuarters)
+ delete[] fStandaloneNarrowQuarters;
+ fStandaloneNarrowQuarters = newUnicodeStringArray(count);
+ uprv_arrayCopy( quartersArray,fStandaloneNarrowQuarters,count);
+ fStandaloneNarrowQuartersCount = count;
+ */
+ break;
+ case DT_WIDTH_COUNT :
+ break;
+ }
+ break;
+ case DT_CONTEXT_COUNT :
+ break;
+ }
+}
+
+void
DateFormatSymbols::setAmPmStrings(const UnicodeString* amPmsArray, int32_t count)
{
// delete the old list if we own it
@@ -610,8 +984,18 @@ DateFormatSymbols::setAmPmStrings(const UnicodeString* amPmsArray, int32_t count
const UnicodeString**
DateFormatSymbols::getZoneStrings(int32_t& rowCount, int32_t& columnCount) const
{
+ umtx_lock(&LOCK);
+ UErrorCode status = U_ZERO_ERROR;
+ if(fZoneStrings==NULL){
+ // cast away const to get around the problem for lazy initialization
+ ((DateFormatSymbols*)this)->initZoneStringsArray(status);
+ if(U_FAILURE(status)){
+ return NULL;
+ }
+ }
rowCount = fZoneStringsRowCount;
columnCount = fZoneStringsColCount;
+ umtx_unlock(&LOCK);
return (const UnicodeString**)fZoneStrings; // Compiler requires cast
}
@@ -621,12 +1005,13 @@ DateFormatSymbols::setZoneStrings(const UnicodeString* const *strings, int32_t r
// since deleting a 2-d array is a pain in the butt, we offload that task to
// a separate function
disposeZoneStrings();
-
+ UErrorCode status = U_ZERO_ERROR;
// we always own the new list, which we create here (we duplicate rather
// than adopting the list passed in)
fZoneStringsRowCount = rowCount;
fZoneStringsColCount = columnCount;
createZoneStrings((const UnicodeString**)strings);
+ initZoneStrings((const UnicodeString**)strings, rowCount,columnCount, status);
}
//------------------------------------------------------
@@ -701,7 +1086,6 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
int32_t i;
int32_t len = 0;
const UChar *resStr;
-
/* In case something goes wrong, initialize all of the data to NULL. */
fEras = NULL;
fErasCount = 0;
@@ -733,11 +1117,22 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
fStandaloneNarrowWeekdaysCount=0;
fAmPms = NULL;
fAmPmsCount=0;
+ fQuarters = NULL;
+ fQuartersCount = 0;
+ fShortQuarters = NULL;
+ fShortQuartersCount = 0;
+ fStandaloneQuarters = NULL;
+ fStandaloneQuartersCount = 0;
+ fStandaloneShortQuarters = NULL;
+ fStandaloneShortQuartersCount = 0;
fZoneStringsRowCount = 0;
fZoneStringsColCount = 0;
fZoneStrings = NULL;
-
-
+ fZoneStringsHash = NULL;
+ fZoneIDEnumeration = NULL;
+ fResourceBundle = NULL;
+
+
if (U_FAILURE(status)) return;
/**
@@ -746,7 +1141,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
* these.
*/
CalendarData calData(locale, type, status);
- UResourceBundle *nonCalendarData = ures_open((char*)0, locale.getName(), &status);
+ fResourceBundle = ures_open((char*)0, locale.getName(), &status);
// load the first data item
UResourceBundle *erasMain = calData.getByKey(gErasTag, status);
@@ -764,8 +1159,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
UResourceBundle *standaloneWeekdaysData = NULL; // Data closed by calData
UResourceBundle *standaloneShortWeekdaysData = NULL; // Data closed by calData
UResourceBundle *standaloneNarrowWeekdaysData = NULL; // Data closed by calData
- UResourceBundle *zoneArray = ures_getByKey(nonCalendarData, gZoneStringsTag, NULL, &status);
- UResourceBundle *zoneRow = ures_getByIndex(zoneArray, (int32_t)0, NULL, &status);
+
U_LOCALE_BASED(locBased, *this);
if (U_FAILURE(status))
{
@@ -793,14 +1187,10 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
initField(&fStandaloneShortWeekdays, fStandaloneShortWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status);
initField(&fStandaloneNarrowWeekdays, fStandaloneNarrowWeekdaysCount, (const UChar *)gLastResortDayNames, kDayNum, kDayLen, status);
initField(&fAmPms, fAmPmsCount, (const UChar *)gLastResortAmPmMarkers, kAmPmNum, kAmPmLen, status);
-
- fZoneStrings = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *));
- /* test for NULL */
- if (fZoneStrings == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- }
- fZoneStringsRowCount = 1;
- initField(fZoneStrings, fZoneStringsColCount, (const UChar *)gLastResortZoneStrings, kZoneNum, kZoneLen, status);
+ initField(&fQuarters, fQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status);
+ initField(&fShortQuarters, fShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status);
+ initField(&fStandaloneQuarters, fStandaloneQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status);
+ initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status);
fLocalPatternChars = gPatternChars;
}
goto cleanup;
@@ -811,15 +1201,23 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
// are stored in a separate file
locBased.setLocaleIDs(ures_getLocaleByType(eras, ULOC_VALID_LOCALE, &status),
ures_getLocaleByType(eras, ULOC_ACTUAL_LOCALE, &status));
+
initField(&fEras, fErasCount, eras, status);
initField(&fEraNames, fEraNamesCount, eraNames, status);
+
initField(&fMonths, fMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesWideTag, status), status);
initField(&fShortMonths, fShortMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status);
+
initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesNarrowTag, status), status);
+ if(status == U_MISSING_RESOURCE_ERROR) {
+ status = U_ZERO_ERROR;
+ initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status), status);
+ }
if ( status == U_MISSING_RESOURCE_ERROR ) { /* If format/narrow not available, use format/abbreviated */
status = U_ZERO_ERROR;
initField(&fNarrowMonths, fNarrowMonthsCount, calData.getByKey2(gMonthNamesTag, gNamesAbbrTag, status), status);
}
+
initField(&fStandaloneMonths, fStandaloneMonthsCount, calData.getByKey3(gMonthNamesTag, gNamesStandaloneTag, gNamesWideTag, status), status);
if ( status == U_MISSING_RESOURCE_ERROR ) { /* If standalone/wide not available, use format/wide */
status = U_ZERO_ERROR;
@@ -841,8 +1239,23 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
}
initField(&fAmPms, fAmPmsCount, calData.getByKey(gAmPmMarkersTag, status), status);
+ initField(&fQuarters, fQuartersCount, calData.getByKey2(gQuartersTag, gNamesWideTag, status), status);
+ initField(&fShortQuarters, fShortQuartersCount, calData.getByKey2(gQuartersTag, gNamesAbbrTag, status), status);
+
+ initField(&fStandaloneQuarters, fStandaloneQuartersCount, calData.getByKey3(gQuartersTag, gNamesStandaloneTag, gNamesWideTag, status), status);
+ if(status == U_MISSING_RESOURCE_ERROR) {
+ status = U_ZERO_ERROR;
+ initField(&fStandaloneQuarters, fStandaloneQuartersCount, calData.getByKey2(gQuartersTag, gNamesWideTag, status), status);
+ }
+
+ initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, calData.getByKey3(gQuartersTag, gNamesStandaloneTag, gNamesAbbrTag, status), status);
+ if(status == U_MISSING_RESOURCE_ERROR) {
+ status = U_ZERO_ERROR;
+ initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, calData.getByKey2(gQuartersTag, gNamesAbbrTag, status), status);
+ }
+
// fastCopyFrom()/setTo() - see assignArray comments
- resStr = ures_getStringByKey(nonCalendarData, gLocalPatternCharsTag, &len, &status);
+ resStr = ures_getStringByKey(fResourceBundle, gLocalPatternCharsTag, &len, &status);
fLocalPatternChars.setTo(TRUE, resStr, len);
// If the locale data does not include new pattern chars, use the defaults
// TODO: Consider making this an error, since this may add conflicting characters.
@@ -850,39 +1263,12 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
fLocalPatternChars.append(UnicodeString(TRUE, &gPatternChars[len], PATTERN_CHARS_LEN-len));
}
- /* TODO: Fix the case where the zoneStrings is not a perfect square array of information. */
- fZoneStringsRowCount = ures_getSize(zoneArray);
- fZoneStringsColCount = ures_getSize(zoneRow);
- fZoneStrings = (UnicodeString **)uprv_malloc(fZoneStringsRowCount * sizeof(UnicodeString *));
- /* test for NULL */
- if (fZoneStrings == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- goto cleanup;
- }
- for(i = 0; i<fZoneStringsRowCount; i++) {
- *(fZoneStrings+i) = newUnicodeStringArray(fZoneStringsColCount);
- /* test for NULL */
- if ((*(fZoneStrings+i)) == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- goto cleanup;
- }
- zoneRow = ures_getByIndex(zoneArray, i, zoneRow, &status);
- // compute the size of the array dynamically. Don't assume
- // that all rows of zone strings are of the same size.
- int32_t size = ures_getSize(zoneRow);
- for(int32_t j = 0; j<size; j++) {
- resStr = ures_getStringByIndex(zoneRow, j, &len, &status);
- // setTo() - see assignArray comments
- fZoneStrings[i][j].setTo(TRUE, resStr, len);
- }
- }
-
// {sfb} fixed to handle 1-based weekdays
weekdaysData = calData.getByKey2(gDayNamesTag, gNamesWideTag, status);
fWeekdaysCount = ures_getSize(weekdaysData);
fWeekdays = new UnicodeString[fWeekdaysCount+1];
- /* test for NULL */
- if (fWeekdays == 0) {
+ /* pin the blame on system. If we cannot get a chunk of memory .. the system is dying!*/
+ if (fWeekdays == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
goto cleanup;
}
@@ -911,6 +1297,10 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
fShortWeekdaysCount++;
narrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesNarrowTag, status);
+ if(status == U_MISSING_RESOURCE_ERROR) {
+ status = U_ZERO_ERROR;
+ narrowWeekdaysData = calData.getByKey3(gDayNamesTag, gNamesStandaloneTag, gNamesNarrowTag, status);
+ }
if ( status == U_MISSING_RESOURCE_ERROR ) {
status = U_ZERO_ERROR;
narrowWeekdaysData = calData.getByKey2(gDayNamesTag, gNamesAbbrTag, status);
@@ -997,9 +1387,6 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError
cleanup:
ures_close(eras);
ures_close(eraNames);
- ures_close(zoneRow);
- ures_close(zoneArray);
- ures_close(nonCalendarData);
}
/**
@@ -1057,6 +1444,584 @@ DateFormatSymbols::getLocale(ULocDataLocaleType type, UErrorCode& status) const
return locBased.getLocale(type, status);
}
+class TimeZoneKeysEnumeration : public StringEnumeration {
+private:
+ UnicodeString* strings;
+ int32_t length;
+ int32_t current;
+ int32_t capacity;
+ TimeZoneKeysEnumeration(UnicodeString* oldStrs, int32_t count){
+ strings = newUnicodeStringArray(count);
+ if(strings==NULL){
+ return;
+ }
+ capacity = count;
+ current = 0;
+ for(length = 0; length<capacity; length++){
+ strings[length].setTo(oldStrs[length]);
+ }
+ }
+public:
+ static UClassID U_EXPORT2 getStaticClassID(void);
+ virtual UClassID getDynamicClassID(void) const;
+
+ TimeZoneKeysEnumeration(int32_t count, UErrorCode status){
+ strings = newUnicodeStringArray(count);
+ if(strings == NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ length = 0;
+ current = 0;
+ capacity = count;
+ }
+
+ void put(const UnicodeString& str, UErrorCode& status){
+ if(length < capacity){
+ strings[length++].setTo(str);
+ }else{
+ status = U_INDEX_OUTOFBOUNDS_ERROR;
+ }
+ }
+ virtual ~TimeZoneKeysEnumeration() {
+ delete[] strings;
+ }
+
+ virtual StringEnumeration * clone() const
+ {
+ return new TimeZoneKeysEnumeration(strings, length);
+ }
+
+ virtual int32_t count(UErrorCode &/*status*/) const {
+ return length;
+ }
+ virtual const UChar* unext(int32_t *resultLength, UErrorCode& /*status*/){
+ if(current < length){
+ const UChar* ret = strings[current].getBuffer();
+ *resultLength = strings[current].length();
+ current++;
+ return ret;
+ }
+ return NULL;
+ }
+
+ virtual const UnicodeString* snext(UErrorCode& status) {
+ if(U_FAILURE(status)){
+ return NULL;
+ }
+ if(current < length){
+ return &strings[current++];
+ }
+ return NULL;
+ }
+ /* this method is for thread safe iteration */
+ const UnicodeString* snext(int32_t& pos, UErrorCode& status)const {
+ if(U_FAILURE(status)){
+ return NULL;
+ }
+ if(pos < length){
+ return &strings[pos++];
+ }
+ return NULL;
+ }
+
+ virtual void reset(UErrorCode& /*status*/) {
+ current = 0;
+
+ }
+private:
+ UBool equals(const StringEnumeration& other) const{
+ if (other.getDynamicClassID() != TimeZoneKeysEnumeration::getStaticClassID()) {
+ return FALSE;
+ }
+ TimeZoneKeysEnumeration& enum2 = (TimeZoneKeysEnumeration&)(other);
+ UErrorCode status = U_ZERO_ERROR;
+
+ int32_t count1 = count(status);
+ int32_t count2 = other.count(status);
+ if(count1 != count2){
+ return FALSE;
+ }
+ int32_t pos1 = 0;
+ int32_t pos2 = 0;
+ const UnicodeString* str1 = NULL;
+ const UnicodeString* str2 = NULL;
+
+ while((str1 = snext(pos1, status))!=NULL){
+ str2 = enum2.snext(pos2, status);
+ if(U_FAILURE(status)){
+ return FALSE;
+ }
+ if(*str1 != *str2){
+ // bail out at the first failure
+ return FALSE;
+ }
+
+ }
+ // if we reached here that means that the enumerations are equal
+ return TRUE;
+ }
+public:
+ virtual UBool operator==(const StringEnumeration& that)const{
+ return ((this == &that) ||
+ (getDynamicClassID() == that.getDynamicClassID() &&
+ StringEnumeration::operator==(that) &&
+ equals(that)));
+ }
+};
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeZoneKeysEnumeration)
+
+void
+DateFormatSymbols::initZoneStringsArray(UErrorCode& status){
+ if(fZoneStringsHash == NULL){
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return;
+ }
+ fZoneStringsRowCount = fZoneIDEnumeration->count(status);
+ fZoneStringsColCount = 8;
+ fZoneStrings = (UnicodeString **)uprv_malloc(fZoneStringsRowCount * sizeof(UnicodeString *));
+ /* if we can't get a chunk of heap then the system is going down. Pin the blame on system*/
+ if (fZoneStrings == NULL) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ const UnicodeString *zid = NULL;
+ TimeZoneKeysEnumeration *keys = (TimeZoneKeysEnumeration*) fZoneIDEnumeration;
+ int32_t pos = 0;
+ int32_t i = 0;
+ while((zid=keys->snext(pos,status))!=NULL){
+ *(fZoneStrings+i) = newUnicodeStringArray(fZoneStringsColCount);
+ /* test for NULL */
+ if ((*(fZoneStrings+i)) == 0) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ UnicodeString* strings = (UnicodeString*)fZoneStringsHash->get(*zid);
+ fZoneStrings[i][0].setTo(*zid);
+ fZoneStrings[i][1].setTo(strings[TIMEZONE_LONG_STANDARD]);
+ fZoneStrings[i][2].setTo(strings[TIMEZONE_SHORT_STANDARD]);
+ fZoneStrings[i][3].setTo(strings[TIMEZONE_LONG_DAYLIGHT]);
+ fZoneStrings[i][4].setTo(strings[TIMEZONE_SHORT_DAYLIGHT]);
+ fZoneStrings[i][5].setTo(strings[TIMEZONE_EXEMPLAR_CITY]);
+ if(fZoneStrings[i][5].length()==0){
+ fZoneStrings[i][5].setTo(strings[TIMEZONE_LONG_GENERIC]);
+ }else{
+ fZoneStrings[i][6].setTo(strings[TIMEZONE_LONG_GENERIC]);
+ }
+ if(fZoneStrings[i][6].length()==0){
+ fZoneStrings[i][6].setTo(strings[TIMEZONE_LONG_GENERIC]);
+ }else{
+ fZoneStrings[i][7].setTo(strings[TIMEZONE_LONG_GENERIC]);
+ }
+ i++;
+ }
+}
+
+U_CDECL_BEGIN
+static UBool U_CALLCONV
+compareTZHashValues(const UHashTok val1, const UHashTok val2){
+
+ const UnicodeString* array1 = (UnicodeString*) val1.pointer;
+ const UnicodeString* array2 = (UnicodeString*) val2.pointer;
+ if(array1==array2){
+ return TRUE;
+ }
+ if(array1==NULL || array2==NULL){
+ return FALSE;
+ }
+ for(int32_t j=0; j< UTZ_MAX_DISPLAY_STRINGS_LENGTH; j++){
+ if(array1[j] != array2[j]){
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+U_CDECL_END
+
+void
+DateFormatSymbols::initZoneStrings(UErrorCode &status){
+ if(U_FAILURE(status)){
+ return;
+ }
+
+ if(fZoneStringsHash != NULL){
+ return;
+ }
+ int32_t i;
+
+ fZoneStringsHash = new Hashtable(uhash_compareUnicodeString, compareTZHashValues, status);
+ if(fZoneStringsHash==NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ fZoneStringsHash->setValueDeleter(deleteUnicodeStringArray);
+
+ if(fResourceBundle != NULL){
+ UnicodeString solidus = UNICODE_STRING_SIMPLE("/");
+ UnicodeString colon = UNICODE_STRING_SIMPLE(":");
+ UResourceBundle zoneArray,zoneItem;
+ ures_initStackObject(&zoneItem);
+ ures_initStackObject(&zoneArray);
+ for(const UResourceBundle* rb = fResourceBundle; rb!=NULL; rb=ures_getParentBundle(rb)){
+ ures_getByKey(rb, gZoneStringsTag, &zoneArray, &status);
+ if(U_FAILURE(status)){
+ break;
+ }
+ while(ures_hasNext(&zoneArray)){
+ UErrorCode tempStatus = U_ZERO_ERROR;
+ UnicodeString* array = newUnicodeStringArray(UTZ_MAX_DISPLAY_STRINGS_LENGTH);
+ ures_getNextResource(&zoneArray, &zoneItem, &status);
+ UnicodeString key(ures_getKey(&zoneItem), -1, US_INV);
+ key.findAndReplace(colon, solidus);
+ int32_t len = 0;
+ //fetch the strings with fine grained fallback
+ const UChar* str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_SHORT_STANDARD, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_SHORT_STANDARD].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_SHORT_GENERIC, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_SHORT_GENERIC].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_SHORT_DAYLIGHT, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_SHORT_DAYLIGHT].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_LONG_STANDARD, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_LONG_STANDARD].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_LONG_GENERIC, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_LONG_GENERIC].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_LONG_DAYLIGHT, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_LONG_DAYLIGHT].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ str = ures_getStringByKeyWithFallback(&zoneItem,UTZ_EXEMPLAR_CITY, &len, &tempStatus);
+ if(U_SUCCESS(tempStatus)){
+ array[TIMEZONE_EXEMPLAR_CITY].setTo(TRUE, str, len);
+ }else{
+ tempStatus = U_ZERO_ERROR;
+ }
+ // store the strings in hash
+ fZoneStringsHash->put(key, array, status);
+ }
+ ures_close(&zoneItem);
+ ures_close(&zoneArray);
+ }
+ int32_t length = fZoneStringsHash->count();
+ TimeZoneKeysEnumeration* keysEnum = new TimeZoneKeysEnumeration(length, status);
+ fZoneIDEnumeration = keysEnum;
+ if(fZoneIDEnumeration==NULL){
+ delete fZoneStringsHash;
+ fZoneStringsHash = NULL;
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ int32_t pos=-1;
+ const UnicodeString* key;
+ const UHashElement* elem = NULL;
+ while((elem = fZoneStringsHash->nextElement(pos))!= NULL){
+ const UHashTok keyTok = elem->key;
+ key = (const UnicodeString*)keyTok.pointer;
+ keysEnum->put(*key, status);
+ }
+ }else{
+ //last resort strings
+ UnicodeString* array = newUnicodeStringArray(UTZ_MAX_DISPLAY_STRINGS_LENGTH);
+ if(array==NULL){
+ delete fZoneStringsHash;
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ int32_t length = ARRAY_LENGTH(gLastResortZoneStrings);
+ UnicodeString key(gLastResortZoneStrings[0]);
+ TimeZoneKeysEnumeration* keysEnum = new TimeZoneKeysEnumeration(length, status);
+ fZoneIDEnumeration = keysEnum;
+ if(fZoneIDEnumeration==NULL){
+ delete fZoneStringsHash;
+ delete[] array;
+ fZoneStringsHash = NULL;
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ keysEnum->put(key, status);
+ int32_t j=1;
+ for(i=0; i< length; ){
+ array[i++].setTo(gLastResortZoneStrings[j++]);
+ }
+ fZoneStringsHash->put(key, array, status);
+ }
+}
+void
+DateFormatSymbols::initZoneStrings(const UnicodeString** strings, int32_t rowCount, int32_t columnCount, UErrorCode& status){
+ if(strings==NULL || rowCount<0 || columnCount<0){
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ TimeZoneKeysEnumeration* keysEnum = new TimeZoneKeysEnumeration(rowCount, status);
+ fZoneIDEnumeration = keysEnum;
+ if(U_FAILURE(status)){
+ return;
+ }
+ if(fZoneIDEnumeration==NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ fZoneStringsHash = new Hashtable(uhash_compareUnicodeString, compareTZHashValues, status);
+ if(U_FAILURE(status)){
+ return;
+ }
+ if(fZoneStringsHash==NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ fZoneStringsHash->setValueDeleter(deleteUnicodeStringArray);
+ for (int32_t row=0; row<rowCount; ++row){
+ // the first string in the array is the key.
+ UnicodeString key = strings[row][0];
+ keysEnum->put(key, status);
+ UnicodeString* array = newUnicodeStringArray(UTZ_MAX_DISPLAY_STRINGS_LENGTH);
+ if(array==NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ for (int32_t col=1; col<columnCount; ++col) {
+ // fastCopyFrom() - see assignArray comments
+ switch (col){
+ case 1:
+ array[TIMEZONE_LONG_STANDARD].setTo(strings[row][col]);
+ break;
+ case 2:
+ array[TIMEZONE_SHORT_STANDARD].setTo(strings[row][col]);
+ break;
+ case 3:
+ array[TIMEZONE_LONG_DAYLIGHT].setTo(strings[row][col]);
+ break;
+ case 4:
+ array[TIMEZONE_LONG_DAYLIGHT].setTo(strings[row][col]);
+ break;
+ case 5:
+ if(fZoneStringsColCount==6 || fZoneStringsColCount==8){
+ array[TIMEZONE_EXEMPLAR_CITY].setTo(strings[row][col]);
+ }else{
+ array[TIMEZONE_LONG_GENERIC].setTo(strings[row][col]);
+ }
+ break;
+ case 6:
+ if(fZoneStringsColCount==8){
+ array[TIMEZONE_LONG_GENERIC].setTo(strings[row][col]);
+ }else{
+ array[TIMEZONE_SHORT_GENERIC].setTo(strings[row][col]);
+ }
+ break;
+ case 7:
+ array[TIMEZONE_SHORT_GENERIC].setTo(strings[row][col]);
+ break;
+ default:
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ // populate the hash table
+ fZoneStringsHash->put(strings[row][0], array, status);
+ }
+ }
+
+}
+
+UnicodeString&
+DateFormatSymbols::getZoneString(const UnicodeString &zid, const TimeZoneTranslationType type,
+ UnicodeString &result, UErrorCode &status){
+
+ if(fZoneStringsHash == NULL){
+ //lazy initialization
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return result;
+ }
+ UnicodeString* stringsArray = (UnicodeString*)fZoneStringsHash->get(zid);
+ if(stringsArray != NULL){
+ result.setTo(stringsArray[type],0);
+ }
+
+ return result;
+}
+
+StringEnumeration*
+DateFormatSymbols::createZoneStringIDs(UErrorCode &status){
+ if(U_FAILURE(status)){
+ return NULL;
+ }
+ if(fZoneStringsHash == NULL){
+ //lazy initialization
+ initZoneStrings(status);
+ }
+ return fZoneIDEnumeration->clone();
+}
+
+/**
+ * Sets timezone strings.
+ * @draft ICU 3.6
+ */
+void
+DateFormatSymbols::setZoneString(const UnicodeString &zid, const TimeZoneTranslationType type,
+ const UnicodeString &value, UErrorCode &status){
+ if(fZoneStringsHash == NULL){
+ //lazy initialization
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return;
+ }
+ UnicodeString* stringsArray = (UnicodeString*)fZoneStringsHash->get(zid);
+ if(stringsArray != NULL){
+ stringsArray[type].setTo(value);
+ }else{
+ stringsArray = newUnicodeStringArray(UTZ_MAX_DISPLAY_STRINGS_LENGTH);
+ if(stringsArray==NULL){
+ status = U_MEMORY_ALLOCATION_ERROR;
+ return;
+ }
+ stringsArray[type].setTo(value);
+ fZoneStringsHash->put(zid, stringsArray, status);
+ TimeZoneKeysEnumeration* keys = (TimeZoneKeysEnumeration*) fZoneIDEnumeration;
+ keys->put(zid, status);
+ }
+}
+
+Hashtable*
+DateFormatSymbols::createZoneStringsHash(const Hashtable* otherHash){
+ UErrorCode status = U_ZERO_ERROR;
+ Hashtable* hash = new Hashtable(uhash_compareUnicodeString, compareTZHashValues, status);
+ if(hash==NULL){
+ return NULL;
+ }
+ if(U_FAILURE(status)){
+ return NULL;
+ }
+ hash->setValueDeleter(deleteUnicodeStringArray);
+ int32_t pos = -1;
+ const UHashElement* elem = NULL;
+ // walk through the hash table and create a deep clone
+ while((elem = otherHash->nextElement(pos))!= NULL){
+ const UHashTok otherKeyTok = elem->key;
+ const UHashTok otherValueTok = elem->value;
+ UnicodeString* otherKey = (UnicodeString*)otherKeyTok.pointer;
+ UnicodeString* otherArray = (UnicodeString*)otherValueTok.pointer;
+ UnicodeString* array = newUnicodeStringArray(UTZ_MAX_DISPLAY_STRINGS_LENGTH);
+ if(array==NULL){
+ return NULL;
+ }
+ UnicodeString key(*otherKey);
+ for(int32_t i=0; i<UTZ_MAX_DISPLAY_STRINGS_LENGTH; i++){
+ array[i].setTo(otherArray[i]);
+ }
+ hash->put(key, array, status);
+ if(U_FAILURE(status)){
+ delete[] array;
+ return NULL;
+ }
+ }
+ return hash;
+}
+
+
+UnicodeString&
+DateFormatSymbols::getZoneID(const UnicodeString& zid, UnicodeString& result, UErrorCode& status){
+ if(fZoneStringsHash == NULL){
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return result;
+ }
+ UnicodeString* strings = (UnicodeString*)fZoneStringsHash->get(zid);
+ if (strings != NULL) {
+ return result.setTo(zid,0);
+ }
+
+ // Do a search through the equivalency group for the given ID
+ int32_t n = TimeZone::countEquivalentIDs(zid);
+ if (n > 1) {
+ int32_t i;
+ for (i=0; i<n; ++i) {
+ UnicodeString equivID = TimeZone::getEquivalentID(zid, i);
+ if (equivID != zid) {
+ strings = (UnicodeString*)fZoneStringsHash->get(equivID);
+ if (strings != NULL) {
+ return result.setTo(equivID,0);
+ }
+ }
+ }
+ }else{
+ result.setTo(zid);
+ }
+ return result;
+}
+
+void
+DateFormatSymbols::getZoneType(const UnicodeString& zid, const UnicodeString& text, int32_t start,
+ TimeZoneTranslationType& type, UnicodeString& value, UErrorCode& status){
+ if(fZoneStringsHash == NULL){
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return;
+ }
+ type = TIMEZONE_COUNT;
+ UnicodeString* strings = (UnicodeString*)fZoneStringsHash->get(zid);
+ if(strings != NULL){
+ for(int32_t j=0; j<UTZ_MAX_DISPLAY_STRINGS_LENGTH; j++){
+ if(strings[j].length() >0 && text.caseCompare(start, strings[j].length(), strings[j], 0)==0){
+ type = (TimeZoneTranslationType)j;
+ value.setTo(strings[j]);
+ return;
+ }
+ }
+ }
+}
+void
+DateFormatSymbols::findZoneIDTypeValue( UnicodeString& zid, const UnicodeString& text, int32_t start,
+ TimeZoneTranslationType& type, UnicodeString& value,
+ UErrorCode& status){
+ if(fZoneStringsHash == NULL){
+ initZoneStrings(status);
+ }
+ if(U_FAILURE(status)){
+ return;
+ }
+ const UnicodeString* myKey = NULL;
+ int32_t pos = 0;
+ TimeZoneKeysEnumeration *keys = (TimeZoneKeysEnumeration*)fZoneIDEnumeration;
+ while( (myKey=keys->snext(pos, status))!= NULL){
+ UnicodeString* strings = (UnicodeString*)fZoneStringsHash->get(*myKey);
+ if(strings != NULL){
+ for(int32_t j=0; j<UTZ_MAX_DISPLAY_STRINGS_LENGTH; j++){
+ if(strings[j].length()>0 && text.caseCompare(start, strings[j].length(), strings[j], 0)==0){
+ type = (TimeZoneTranslationType)j;
+ value.setTo(strings[j]);
+ zid.setTo(*myKey);
+ return;
+ }
+ }
+ }
+ }
+}
U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/esctrn.cpp b/Build/source/libs/icu-xetex/i18n/esctrn.cpp
index 4a7406a23f5..93f13f5816c 100644
--- a/Build/source/libs/icu-xetex/i18n/esctrn.cpp
+++ b/Build/source/libs/icu-xetex/i18n/esctrn.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2004, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -32,28 +32,28 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(EscapeTransliterator)
/**
* Factory methods
*/
-static Transliterator* _createUnicode(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscUnicode(const UnicodeString& ID, Transliterator::Token /*context*/) {
// Unicode: "U+10FFFF" hex, min=4, max=6
return new EscapeTransliterator(ID, UNIPRE, EMPTY, 16, 4, TRUE, NULL);
}
-static Transliterator* _createJava(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscJava(const UnicodeString& ID, Transliterator::Token /*context*/) {
// Java: "\\uFFFF" hex, min=4, max=4
return new EscapeTransliterator(ID, BS_u, EMPTY, 16, 4, FALSE, NULL);
}
-static Transliterator* _createC(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscC(const UnicodeString& ID, Transliterator::Token /*context*/) {
// C: "\\uFFFF" hex, min=4, max=4; \\U0010FFFF hex, min=8, max=8
return new EscapeTransliterator(ID, BS_u, EMPTY, 16, 4, TRUE,
new EscapeTransliterator(EMPTY, BS_U, EMPTY, 16, 8, TRUE, NULL));
}
-static Transliterator* _createXML(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscXML(const UnicodeString& ID, Transliterator::Token /*context*/) {
// XML: "&#x10FFFF;" hex, min=1, max=6
return new EscapeTransliterator(ID, XMLPRE, SEMI, 16, 1, TRUE, NULL);
}
-static Transliterator* _createXML10(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscXML10(const UnicodeString& ID, Transliterator::Token /*context*/) {
// XML10: "&1114111;" dec, min=1, max=7 (not really "Any-Hex")
return new EscapeTransliterator(ID, XML10PRE, SEMI, 10, 1, TRUE, NULL);
}
-static Transliterator* _createPerl(const UnicodeString& ID, Transliterator::Token /*context*/) {
+static Transliterator* _createEscPerl(const UnicodeString& ID, Transliterator::Token /*context*/) {
// Perl: "\\x{263A}" hex, min=1, max=6
return new EscapeTransliterator(ID, PERLPRE, RBRACE, 16, 1, TRUE, NULL);
}
@@ -65,19 +65,19 @@ static Transliterator* _createPerl(const UnicodeString& ID, Transliterator::Toke
void EscapeTransliterator::registerIDs() {
Token t = integerToken(0);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Unicode"), _createUnicode, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Unicode"), _createEscUnicode, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Java"), _createJava, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Java"), _createEscJava, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/C"), _createC, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/C"), _createEscC, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/XML"), _createXML, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/XML"), _createEscXML, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/XML10"), _createXML10, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/XML10"), _createEscXML10, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Perl"), _createPerl, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex/Perl"), _createEscPerl, t);
- Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex"), _createJava, t);
+ Transliterator::_registerFactory(UNICODE_STRING_SIMPLE("Any-Hex"), _createEscJava, t);
}
/**
diff --git a/Build/source/libs/icu-xetex/i18n/esctrn.h b/Build/source/libs/icu-xetex/i18n/esctrn.h
index ce207e1f509..6dae51b8774 100644
--- a/Build/source/libs/icu-xetex/i18n/esctrn.h
+++ b/Build/source/libs/icu-xetex/i18n/esctrn.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2004, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -117,15 +117,11 @@ class U_I18N_API EscapeTransliterator : public Transliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/fmtable.cpp b/Build/source/libs/icu-xetex/i18n/fmtable.cpp
index b3a882e9056..b767b332166 100644
--- a/Build/source/libs/icu-xetex/i18n/fmtable.cpp
+++ b/Build/source/libs/icu-xetex/i18n/fmtable.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -43,30 +43,43 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(Formattable)
// of the Measure class, which is true as of 3.0. [alan]
// Return TRUE if *a == *b.
-inline UBool objectEquals(const UObject* a, const UObject* b) {
+static inline UBool objectEquals(const UObject* a, const UObject* b) {
// LATER: return *a == *b;
return *((const Measure*) a) == *((const Measure*) b);
}
// Return a clone of *a.
-inline UObject* objectClone(const UObject* a) {
+static inline UObject* objectClone(const UObject* a) {
// LATER: return a->clone();
return ((const Measure*) a)->clone();
}
// Return TRUE if *a is an instance of Measure.
-inline UBool instanceOfMeasure(const UObject* a) {
+static inline UBool instanceOfMeasure(const UObject* a) {
// LATER: return a->instanceof(Measure::getStaticClassID());
return a->getDynamicClassID() ==
CurrencyAmount::getStaticClassID();
}
+/**
+ * Creates a new Formattable array and copies the values from the specified
+ * original.
+ * @param array the original array
+ * @param count the original array count
+ * @return the new Formattable array.
+ */
+static inline Formattable* createArrayCopy(const Formattable* array, int32_t count) {
+ Formattable *result = new Formattable[count];
+ for (int32_t i=0; i<count; ++i) result[i] = array[i]; // Don't memcpy!
+ return result;
+}
+
//-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
/**
* Set 'ec' to 'err' only if 'ec' is not already set to a failing UErrorCode.
*/
-inline void setError(UErrorCode& ec, UErrorCode err) {
+static inline void setError(UErrorCode& ec, UErrorCode err) {
if (U_SUCCESS(ec)) {
ec = err;
}
diff --git a/Build/source/libs/icu-xetex/i18n/gregocal.cpp b/Build/source/libs/icu-xetex/i18n/gregocal.cpp
index bcc82a1bfdf..45807bfd958 100644
--- a/Build/source/libs/icu-xetex/i18n/gregocal.cpp
+++ b/Build/source/libs/icu-xetex/i18n/gregocal.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2004, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -144,7 +144,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(GregorianCalendar)
//const UDate GregorianCalendar::kPapalCutover = -12219292800000L;
static const uint32_t kCutoverJulianDay = 2299161;
static const UDate kPapalCutover = (2299161.0 - kEpochStartAsJulianDay) * U_MILLIS_PER_DAY;
-static const UDate kPapalCutoverJulian = (2299161.0 - kEpochStartAsJulianDay);
+//static const UDate kPapalCutoverJulian = (2299161.0 - kEpochStartAsJulianDay);
// -------------------------------------
diff --git a/Build/source/libs/icu-xetex/i18n/hebrwcal.cpp b/Build/source/libs/icu-xetex/i18n/hebrwcal.cpp
index 551c553397d..1814272b0ce 100644
--- a/Build/source/libs/icu-xetex/i18n/hebrwcal.cpp
+++ b/Build/source/libs/icu-xetex/i18n/hebrwcal.cpp
@@ -1,9 +1,10 @@
/*
- * Copyright (C) 2003-2004, International Business Machines Corporation
- * and others. All Rights Reserved.
- ******************************************************************************
+******************************************************************************
+* Copyright (C) 2003-2006, International Business Machines Corporation
+* and others. All Rights Reserved.
+******************************************************************************
*
- * File HEBRWCAL.H
+ * File HEBRWCAL.CPP
*
* Modification History:
*
@@ -31,7 +32,7 @@
* time of day in sync with that of the Gregorian calendar, we use
* midnight, rather than sunset the day before.
*/
-static const double EPOCH_MILLIS = -180799862400000.; // 1/1/1 HY
+//static const double EPOCH_MILLIS = -180799862400000.; // 1/1/1 HY
static const int32_t LIMITS[UCAL_FIELD_COUNT][4] = {
// Minimum Greatest Least Maximum
@@ -264,6 +265,14 @@ void HebrewCalendar::add(UCalendarDateFields field, int32_t amount, UErrorCode&
}
/**
+ * @deprecated ICU 2.6 use UCalendarDateFields instead of EDateFields
+ */
+void HebrewCalendar::add(EDateFields field, int32_t amount, UErrorCode& status)
+{
+ add((UCalendarDateFields)field, amount, status);
+}
+
+/**
* Rolls (up/down) a specified amount time on the given field. For
* example, to roll the current date up by three days, you can call
* <code>roll(Calendar.DATE, 3)</code>. If the
diff --git a/Build/source/libs/icu-xetex/i18n/hebrwcal.h b/Build/source/libs/icu-xetex/i18n/hebrwcal.h
index a9ac8446685..64d19e8a276 100644
--- a/Build/source/libs/icu-xetex/i18n/hebrwcal.h
+++ b/Build/source/libs/icu-xetex/i18n/hebrwcal.h
@@ -1,6 +1,8 @@
/*
-* Copyright (C) 2003-2004, International Business Machines Corporation and others. All Rights Reserved.
-********************************************************************************
+******************************************************************************
+* Copyright (C) 2003-2006, International Business Machines Corporation
+* and others. All Rights Reserved.
+******************************************************************************
*
* File HEBRWCAL.H
*
@@ -9,7 +11,7 @@
* Date Name Description
* 05/13/2003 srl copied from gregocal.h
* 11/26/2003 srl copied from buddhcal.h
-********************************************************************************
+******************************************************************************
*/
#ifndef HEBRWCAL_H
@@ -242,7 +244,7 @@ public:
/**
* @deprecated ICU 2.6 use UCalendarDateFields instead of EDateFields
*/
- inline virtual void add(EDateFields field, int32_t amount, UErrorCode& status) { add((UCalendarDateFields)field, amount, status); }
+ virtual void add(EDateFields field, int32_t amount, UErrorCode& status);
/**
diff --git a/Build/source/libs/icu-xetex/i18n/i18n.vcproj b/Build/source/libs/icu-xetex/i18n/i18n.vcproj
index 3ff90c0f6d0..b4a9e712e08 100644
--- a/Build/source/libs/icu-xetex/i18n/i18n.vcproj
+++ b/Build/source/libs/icu-xetex/i18n/i18n.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/i18n.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -39,10 +40,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuin34.dll"
+ OutputFile="..\..\bin\icuin36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuin34.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuin36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4a900000"
ImportLibrary="..\..\lib\icuin.lib"/>
@@ -93,6 +94,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/i18n.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -106,11 +108,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuin34d.dll"
+ OutputFile="..\..\bin\icuin36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuin34d.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuin36d.pdb"
BaseAddress="0x4a900000"
ImportLibrary="..\..\lib\icuind.lib"/>
<Tool
@@ -434,12 +436,6 @@
</FileConfiguration>
</File>
<File
- RelativePath=".\chnsecal.cpp">
- </File>
- <File
- RelativePath=".\chnsecal.h">
- </File>
- <File
RelativePath=".\choicfmt.cpp">
</File>
<File
@@ -1091,6 +1087,42 @@
Outputs="..\..\include\unicode\$(InputFileName)"/>
</FileConfiguration>
</File>
+ <File
+ RelativePath=".\windtfmt.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\windtfmt.h">
+ </File>
+ <File
+ RelativePath=".\winnmfmt.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\winnmfmt.h">
+ </File>
</Filter>
<Filter
Name="misc"
@@ -1388,6 +1420,86 @@
</FileConfiguration>
</File>
</Filter>
+ <Filter
+ Name="charset detect"
+ Filter="">
+ <File
+ RelativePath=".\csdetect.cpp">
+ </File>
+ <File
+ RelativePath=".\csdetect.h">
+ </File>
+ <File
+ RelativePath=".\csmatch.cpp">
+ </File>
+ <File
+ RelativePath=".\csmatch.h">
+ </File>
+ <File
+ RelativePath=".\csr2022.cpp">
+ </File>
+ <File
+ RelativePath=".\csr2022.h">
+ </File>
+ <File
+ RelativePath=".\csrecog.cpp">
+ </File>
+ <File
+ RelativePath=".\csrecog.h">
+ </File>
+ <File
+ RelativePath=".\csrmbcs.cpp">
+ </File>
+ <File
+ RelativePath=".\csrmbcs.h">
+ </File>
+ <File
+ RelativePath=".\csrsbcs.cpp">
+ </File>
+ <File
+ RelativePath=".\csrsbcs.h">
+ </File>
+ <File
+ RelativePath=".\csrucode.cpp">
+ </File>
+ <File
+ RelativePath=".\csrucode.h">
+ </File>
+ <File
+ RelativePath=".\csrutf8.cpp">
+ </File>
+ <File
+ RelativePath=".\csrutf8.h">
+ </File>
+ <File
+ RelativePath=".\inputext.cpp">
+ </File>
+ <File
+ RelativePath=".\inputext.h">
+ </File>
+ <File
+ RelativePath=".\ucsdet.cpp">
+ </File>
+ <File
+ RelativePath=".\unicode\ucsdet.h">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+ Outputs="..\..\include\unicode\$(InputFileName)"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
</Files>
<Globals>
</Globals>
diff --git a/Build/source/libs/icu-xetex/i18n/inputext.cpp b/Build/source/libs/icu-xetex/i18n/inputext.cpp
new file mode 100644
index 00000000000..a36a931ab55
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/inputext.cpp
@@ -0,0 +1,162 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+#include "inputext.h"
+
+#include "cmemory.h"
+#include "cstring.h"
+
+#include <string.h>
+
+U_NAMESPACE_BEGIN
+
+#define BUFFER_SIZE 8192
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+InputText::InputText()
+ : fInputBytes(NEW_ARRAY(uint8_t, BUFFER_SIZE)), // The text to be checked. Markup will have been
+ // removed if appropriate.
+ fByteStats(NEW_ARRAY(int16_t, 256)), // byte frequency statistics for the input text.
+ // Value is percent, not absolute.
+ fDeclaredEncoding(0),
+ fRawInput(0),
+ fRawLength(0)
+{
+
+}
+
+InputText::~InputText()
+{
+ DELETE_ARRAY(fDeclaredEncoding);
+ DELETE_ARRAY(fByteStats);
+ DELETE_ARRAY(fInputBytes);
+}
+
+void InputText::setText(const char *in, int32_t len)
+{
+ fInputLen = 0;
+ fC1Bytes = FALSE;
+ fRawInput = (const uint8_t *) in;
+ fRawLength = len == -1? uprv_strlen(in) : len;
+}
+
+void InputText::setDeclaredEncoding(const char* encoding, int32_t len)
+{
+ if(encoding) {
+ if (len == -1) {
+ len = uprv_strlen(encoding);
+ }
+
+ len += 1; // to make place for the \0 at the end.
+ uprv_free(fDeclaredEncoding);
+ fDeclaredEncoding = NEW_ARRAY(char, len);
+ uprv_strncpy(fDeclaredEncoding, encoding, len);
+ }
+}
+
+UBool InputText::isSet() const
+{
+ return fRawInput != NULL;
+}
+
+/**
+* MungeInput - after getting a set of raw input data to be analyzed, preprocess
+* it by removing what appears to be html markup.
+*
+* @internal
+*/
+void InputText::MungeInput(UBool fStripTags) {
+ int srci = 0;
+ int dsti = 0;
+ uint8_t b;
+ bool inMarkup = FALSE;
+ int32_t openTags = 0;
+ int32_t badTags = 0;
+
+ //
+ // html / xml markup stripping.
+ // quick and dirty, not 100% accurate, but hopefully good enough, statistically.
+ // discard everything within < brackets >
+ // Count how many total '<' and illegal (nested) '<' occur, so we can make some
+ // guess as to whether the input was actually marked up at all.
+ // TODO: Think about how this interacts with EBCDIC charsets that are detected.
+ if (fStripTags) {
+ for (srci = 0; srci < fRawLength && dsti < BUFFER_SIZE; srci += 1) {
+ b = fRawInput[srci];
+
+ if (b == (uint8_t)0x3C) { /* Check for the ASCII '<' */
+ if (inMarkup) {
+ badTags += 1;
+ }
+
+ inMarkup = TRUE;
+ openTags += 1;
+ }
+
+ if (! inMarkup) {
+ fInputBytes[dsti++] = b;
+ }
+
+ if (b == (uint8_t)0x3E) { /* Check for the ASCII '>' */
+ inMarkup = FALSE;
+ }
+ }
+
+ fInputLen = dsti;
+ }
+
+ //
+ // If it looks like this input wasn't marked up, or if it looks like it's
+ // essentially nothing but markup abandon the markup stripping.
+ // Detection will have to work on the unstripped input.
+ //
+ if (openTags<5 || openTags/5 < badTags ||
+ (fInputLen < 100 && fRawLength>600))
+ {
+ int32_t limit = fRawLength;
+
+ if (limit > BUFFER_SIZE) {
+ limit = BUFFER_SIZE;
+ }
+
+ for (srci=0; srci<limit; srci++) {
+ fInputBytes[srci] = fRawInput[srci];
+ }
+
+ fInputLen = srci;
+ }
+
+ //
+ // Tally up the byte occurence statistics.
+ // These are available for use by the various detectors.
+ //
+
+ uprv_memset(fByteStats, 0, (sizeof fByteStats[0]) * 256);
+
+ for (srci = 0; srci < fInputLen; srci += 1) {
+ fByteStats[fInputBytes[srci]] += 1;
+ }
+
+ for (int32_t i = 0x80; i <= 0x9F; i += 1) {
+ if (fByteStats[i] != 0) {
+ fC1Bytes = TRUE;
+ break;
+ }
+ }
+}
+
+U_NAMESPACE_END
+#endif
+
diff --git a/Build/source/libs/icu-xetex/i18n/inputext.h b/Build/source/libs/icu-xetex/i18n/inputext.h
new file mode 100644
index 00000000000..1528f48e63f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/inputext.h
@@ -0,0 +1,59 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __INPUTEXT_H
+#define __INPUTEXT_H
+
+/**
+ * \file
+ * \internal
+ *
+ * This is an internal header for the Character Set Detection code. The
+ * name is probably too generic...
+ */
+
+
+#include "unicode/uobject.h"
+
+#if !UCONFIG_NO_CONVERSION
+
+U_NAMESPACE_BEGIN
+
+class InputText : public UMemory
+{
+public:
+ InputText();
+ ~InputText();
+
+ void setText(const char *in, int32_t len);
+ void setDeclaredEncoding(const char *encoding, int32_t len);
+ UBool isSet() const;
+ void MungeInput(UBool fStripTags);
+
+ // The text to be checked. Markup will have been
+ // removed if appropriate.
+ uint8_t *fInputBytes;
+ int32_t fInputLen; // Length of the byte data in fInputBytes.
+ // byte frequency statistics for the input text.
+ // Value is percent, not absolute.
+ // Value is rounded up, so zero really means zero occurences.
+ int16_t *fByteStats;
+ UBool fC1Bytes; // True if any bytes in the range 0x80 - 0x9F are in the input;false by default
+ char *fDeclaredEncoding;
+
+ const uint8_t *fRawInput; // Original, untouched input bytes.
+ // If user gave us a byte array, this is it.
+ // If user gave us a stream, it's read to a
+ // buffer here.
+ int32_t fRawLength; // Length of data in fRawInput array.
+
+};
+
+U_NAMESPACE_END
+
+#endif
+#endif /* __INPUTEXT_H */
diff --git a/Build/source/libs/icu-xetex/i18n/name2uni.cpp b/Build/source/libs/icu-xetex/i18n/name2uni.cpp
index 4690b666162..d2b898d8932 100644
--- a/Build/source/libs/icu-xetex/i18n/name2uni.cpp
+++ b/Build/source/libs/icu-xetex/i18n/name2uni.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -58,9 +58,10 @@ U_CDECL_END
NameUnicodeTransliterator::NameUnicodeTransliterator(UnicodeFilter* adoptedFilter) :
Transliterator(UNICODE_STRING("Name-Any", 8), adoptedFilter) {
+ UnicodeSet *legalPtr = &legal;
// Get the legal character set
USetAdder sa = {
- (USet *)&legal, // USet* == UnicodeSet*
+ (USet *)legalPtr, // USet* == UnicodeSet*
_set_add,
_set_addRange,
_set_addString,
diff --git a/Build/source/libs/icu-xetex/i18n/name2uni.h b/Build/source/libs/icu-xetex/i18n/name2uni.h
index 96f337bfc7d..74f6cd2a660 100644
--- a/Build/source/libs/icu-xetex/i18n/name2uni.h
+++ b/Build/source/libs/icu-xetex/i18n/name2uni.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -56,15 +56,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/nfrlist.h b/Build/source/libs/icu-xetex/i18n/nfrlist.h
index e60ee579902..1a334085802 100644
--- a/Build/source/libs/icu-xetex/i18n/nfrlist.h
+++ b/Build/source/libs/icu-xetex/i18n/nfrlist.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2001, International Business Machines
+* Copyright (C) 1997-2005, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* file name: nfrlist.h
@@ -36,7 +36,7 @@ protected:
uint32_t fCount;
uint32_t fCapacity;
public:
- NFRuleList(int capacity = 10)
+ NFRuleList(uint32_t capacity = 10)
: fStuff(capacity ? (NFRule**)uprv_malloc(capacity * sizeof(NFRule*)) : NULL)
, fCount(0)
, fCapacity(capacity) {};
diff --git a/Build/source/libs/icu-xetex/i18n/nfrule.cpp b/Build/source/libs/icu-xetex/i18n/nfrule.cpp
index 29c150ef9f4..d6cf1850f48 100644
--- a/Build/source/libs/icu-xetex/i18n/nfrule.cpp
+++ b/Build/source/libs/icu-xetex/i18n/nfrule.cpp
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* file name: nfrule.cpp
@@ -58,7 +58,7 @@ static const UChar gLessThan = 0x003c;
static const UChar gComma = 0x002c;
static const UChar gDot = 0x002e;
static const UChar gTick = 0x0027;
-static const UChar gMinus = 0x002d;
+//static const UChar gMinus = 0x002d;
static const UChar gSemicolon = 0x003b;
static const UChar gMinusX[] = {0x2D, 0x78, 0}; /* "-x" */
diff --git a/Build/source/libs/icu-xetex/i18n/nfsubs.h b/Build/source/libs/icu-xetex/i18n/nfsubs.h
index dc7ec0ee13b..14c60e78825 100644
--- a/Build/source/libs/icu-xetex/i18n/nfsubs.h
+++ b/Build/source/libs/icu-xetex/i18n/nfsubs.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
* file name: nfsubs.h
@@ -472,6 +472,13 @@ class NumeratorSubstitution : public NFSubstitution {
int64_t ldenominator;
UBool withZeros;
public:
+ static inline UnicodeString fixdesc(const UnicodeString& desc) {
+ if (desc.endsWith(LTLT, 2)) {
+ UnicodeString result(desc, 0, desc.length()-1);
+ return result;
+ }
+ return desc;
+ }
NumeratorSubstitution(int32_t _pos,
double _denominator,
const NFRuleSet* _ruleSet,
@@ -504,13 +511,6 @@ public:
private:
static const char fgClassID;
static const UChar LTLT[2];
- static UnicodeString fixdesc(const UnicodeString& desc) {
- if (desc.endsWith(LTLT, 2)) {
- UnicodeString result(desc, 0, desc.length()-1);
- return result;
- }
- return desc;
- }
public:
static UClassID getStaticClassID(void) { return (UClassID)&fgClassID; }
diff --git a/Build/source/libs/icu-xetex/i18n/nortrans.h b/Build/source/libs/icu-xetex/i18n/nortrans.h
index e157a58d282..4dc9f271c0d 100644
--- a/Build/source/libs/icu-xetex/i18n/nortrans.h
+++ b/Build/source/libs/icu-xetex/i18n/nortrans.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -60,15 +60,11 @@ class U_I18N_API NormalizationTransliterator : public Transliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/nultrans.h b/Build/source/libs/icu-xetex/i18n/nultrans.h
index 996a743e8e8..30d81594788 100644
--- a/Build/source/libs/icu-xetex/i18n/nultrans.h
+++ b/Build/source/libs/icu-xetex/i18n/nultrans.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2000-2005, International Business Machines
+* Copyright (c) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -54,15 +54,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/numfmt.cpp b/Build/source/libs/icu-xetex/i18n/numfmt.cpp
index 8a6a4c116a6..d0f4109bd82 100644
--- a/Build/source/libs/icu-xetex/i18n/numfmt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/numfmt.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -28,12 +28,13 @@
#include "unicode/numfmt.h"
#include "unicode/locid.h"
-#include "unicode/ures.h"
#include "unicode/dcfmtsym.h"
#include "unicode/decimfmt.h"
#include "unicode/ustring.h"
#include "unicode/ucurr.h"
#include "unicode/curramt.h"
+#include "winnmfmt.h"
+#include "uresimp.h"
#include "uhash.h"
#include "cmemory.h"
#include "servloc.h"
@@ -825,6 +826,36 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
return NULL;
}
+#ifdef U_WINDOWS
+ char buffer[8];
+ int32_t count = desiredLocale.getKeywordValue("compat", buffer, sizeof(buffer), status);
+
+ // if the locale has "@compat=host", create a host-specific NumberFormat
+ if (count > 0 && uprv_strcmp(buffer, "host") == 0) {
+ Win32NumberFormat *f = NULL;
+ UBool curr = TRUE;
+
+ switch (style) {
+ case kNumberStyle:
+ curr = FALSE;
+ // fall-through
+
+ case kCurrencyStyle:
+ f = new Win32NumberFormat(desiredLocale, curr, status);
+
+ if (U_SUCCESS(status)) {
+ return f;
+ }
+
+ delete f;
+ break;
+
+ default:
+ break;
+ }
+ }
+#endif
+
NumberFormat* f = NULL;
DecimalFormatSymbols* symbolsToAdopt = NULL;
UnicodeString pattern;
@@ -859,37 +890,11 @@ NumberFormat::makeInstance(const Locale& desiredLocale,
if (U_FAILURE(status) || symbolsToAdopt == NULL) {
goto cleanup;
}
-
- // Here we assume that the locale passed in is in the canonical
- // form, e.g: pt_PT_@currency=PTE not pt_PT_PREEURO
if(style==kCurrencyStyle){
- char currencyCode[8]={0};
- int32_t currencyCodeCap = sizeof(currencyCode);
- const char* locName = desiredLocale.getName();
- currencyCodeCap = uloc_getKeywordValue(locName, "currency", currencyCode, currencyCodeCap, &status);
- if(U_SUCCESS(status) && currencyCodeCap > 0) {
- /* An explicit currency was requested */
- UErrorCode localStatus = U_ZERO_ERROR;
- UResourceBundle *currency = ures_getByKeyWithFallback(resource, "Currencies", NULL, &localStatus);
- currency = ures_getByKeyWithFallback(currency, currencyCode, currency, &localStatus);
- if(U_SUCCESS(localStatus) && ures_getSize(currency)>2) {
- currency = ures_getByIndex(currency, 2, currency, &localStatus);
- int32_t currPatternLen = 0;
- const UChar *currPattern = ures_getStringByIndex(currency, (int32_t)0, &currPatternLen, &localStatus);
- UnicodeString decimalSep = ures_getStringByIndex(currency, (int32_t)1, NULL, &localStatus);
- UnicodeString groupingSep = ures_getStringByIndex(currency, (int32_t)2, NULL, &localStatus);
- if(U_SUCCESS(localStatus)){
- symbolsToAdopt->setSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol, groupingSep);
- symbolsToAdopt->setSymbol(DecimalFormatSymbols::kMonetarySeparatorSymbol, decimalSep);
- pattern.setTo(TRUE, currPattern, currPatternLen);
- status = localStatus;
- }
- }
- ures_close(currency);
- /* else An explicit currency was requested and is unknown or locale data is malformed. */
- /* ucurr_* API will get the correct value later on. */
+ const UChar* currPattern = symbolsToAdopt->getCurrencyPattern();
+ if(currPattern!=NULL){
+ pattern.setTo(currPattern, u_strlen(currPattern));
}
- /* else no currency keyword used. */
}
f = new DecimalFormat(pattern, symbolsToAdopt, status);
if (U_FAILURE(status) || f == NULL) {
diff --git a/Build/source/libs/icu-xetex/i18n/olsontz.cpp b/Build/source/libs/icu-xetex/i18n/olsontz.cpp
index d31fa4d30be..43adcb16bbc 100644
--- a/Build/source/libs/icu-xetex/i18n/olsontz.cpp
+++ b/Build/source/libs/icu-xetex/i18n/olsontz.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2003-2005, International Business Machines
+* Copyright (c) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -133,10 +133,18 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
if(U_SUCCESS(ec)) {
int32_t jj;
for(jj=0;jj<transitionCount;jj++) {
- U_DEBUG_TZ_MSG((" Transition %d: time %d, typedata%d\n", jj, transitionTimes[jj], typeData[jj]));
- }
- for(jj=0;jj<transitionCount;jj++) {
- U_DEBUG_TZ_MSG((" Type %d: offset%d\n", jj, typeOffsets[jj]));
+ int32_t year, month, dom, dow;
+ double millis=0;
+ double days = Math::floorDivide(((double)transitionTimes[jj])*1000.0, (double)U_MILLIS_PER_DAY, millis);
+
+ Grego::dayToFields(days, year, month, dom, dow);
+ U_DEBUG_TZ_MSG((" Transition %d: time %d (%04d.%02d.%02d+%.1fh), typedata%d\n", jj, transitionTimes[jj],
+ year, month+1, dom, (millis/kOneHour), typeData[jj]));
+// U_DEBUG_TZ_MSG((" offset%d\n", typeOffsets[jj]));
+ int16_t f = jj;
+ f <<= 1;
+ U_DEBUG_TZ_MSG((" offsets[%d+%d]=(%d+%d)=(%d==%d)\n", (int)f,(int)f+1,(int)typeOffsets[f],(int)typeOffsets[f+1],(int)zoneOffset(jj),
+ (int)typeOffsets[f]+(int)typeOffsets[f+1]));
}
}
#endif
@@ -174,7 +182,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top,
data = ures_getIntVector(r, &len, &ec);
if (U_SUCCESS(ec) && len == 11) {
UnicodeString emptyStr;
- U_DEBUG_TZ_MSG(("zone%s, rule%s: {%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d}", zKey, ures_getKey(r),
+ U_DEBUG_TZ_MSG(("zone%s, rule%s: {%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d}\n", zKey, ures_getKey(r),
data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], data[9], data[10]));
finalZone = new SimpleTimeZone(rawOffset, emptyStr,
(int8_t)data[0], (int8_t)data[1], (int8_t)data[2],
@@ -393,6 +401,18 @@ int32_t OlsonTimeZone::getRawOffset() const {
return raw;
}
+#if defined U_DEBUG_TZ
+void printTime(double ms) {
+ int32_t year, month, dom, dow;
+ double millis=0;
+ double days = Math::floorDivide(((double)ms), (double)U_MILLIS_PER_DAY, millis);
+
+ Grego::dayToFields(days, year, month, dom, dow);
+ U_DEBUG_TZ_MSG((" findTransition: time %.1f (%04d.%02d.%02d+%.1fh)\n", ms,
+ year, month+1, dom, (millis/kOneHour)));
+ }
+#endif
+
/**
* Find the smallest i (in 0..transitionCount-1) such that time >=
* transition(i), where transition(i) is either the GMT or the local
@@ -406,6 +426,10 @@ int32_t OlsonTimeZone::getRawOffset() const {
*/
int16_t OlsonTimeZone::findTransition(double time, UBool local) const {
int16_t i = 0;
+ U_DEBUG_TZ_MSG(("findTransition(%.1f, %s)\n", time, local?"T":"F"));
+#if defined U_DEBUG_TZ
+ printTime(time*1000.0);
+#endif
if (transitionCount != 0) {
// Linear search from the end is the fastest approach, since
@@ -413,10 +437,41 @@ int16_t OlsonTimeZone::findTransition(double time, UBool local) const {
for (i = transitionCount - 1; i > 0; --i) {
int32_t transition = transitionTimes[i];
if (local) {
- transition += zoneOffset(typeData[i]);
+ int32_t zoneOffsetPrev = zoneOffset(typeData[i-1]);
+ int32_t zoneOffsetCurr = zoneOffset(typeData[i]);
+
+ // use the lowest offset ( == standard time ). as per tzregts.cpp which says:
+
+ /**
+ * @bug 4084933
+ * The expected behavior of TimeZone around the boundaries is:
+ * (Assume transition time of 2:00 AM)
+ * day of onset 1:59 AM STD = display name 1:59 AM ST
+ * 2:00 AM STD = display name 3:00 AM DT
+ * day of end 0:59 AM STD = display name 1:59 AM DT
+ * 1:00 AM STD = display name 1:00 AM ST
+ */
+ if(zoneOffsetPrev<zoneOffsetCurr) {
+ transition += zoneOffsetPrev;
+ } else {
+ transition += zoneOffsetCurr;
+ }
}
if (time >= transition) {
+ U_DEBUG_TZ_MSG(("Found@%d: time=%.1f, localtransition=%d (orig %d) dz %d\n", i, time, transition, transitionTimes[i],
+ zoneOffset(typeData[i-1])));
+#if defined U_DEBUG_TZ
+ printTime(transition*1000.0);
+ printTime(transitionTimes[i]*1000.0);
+#endif
break;
+ } else {
+ U_DEBUG_TZ_MSG(("miss@%d: time=%.1f, localtransition=%d (orig %d) dz %d\n", i, time, transition, transitionTimes[i],
+ zoneOffset(typeData[i-1])));
+#if defined U_DEBUG_TZ
+ printTime(transition*1000.0);
+ printTime(transitionTimes[i]*1000.0);
+#endif
}
}
@@ -427,11 +482,13 @@ int16_t OlsonTimeZone::findTransition(double time, UBool local) const {
U_ASSERT(local || time < transitionTimes[0] || time >= transitionTimes[i]);
U_ASSERT(local || i == transitionCount-1 || time < transitionTimes[i+1]);
+ U_DEBUG_TZ_MSG(("findTransition(%.1f, %s)= trans %d\n", time, local?"T":"F", i));
i = typeData[i];
}
U_ASSERT(i>=0 && i<typeCount);
+ U_DEBUG_TZ_MSG(("findTransition(%.1f, %s)=%d, offset %d\n", time, local?"T":"F", i, zoneOffset(i)));
return i;
}
@@ -473,7 +530,13 @@ UBool OlsonTimeZone::useDaylightTime() const {
}
return FALSE;
}
-
+int32_t
+OlsonTimeZone::getDSTSavings() const{
+ if(finalZone!=NULL){
+ return finalZone->getDSTSavings();
+ }
+ return TimeZone::getDSTSavings();
+}
/**
* TimeZone API.
*/
diff --git a/Build/source/libs/icu-xetex/i18n/olsontz.h b/Build/source/libs/icu-xetex/i18n/olsontz.h
index ef19ee2a225..6f7d71cdc4c 100644
--- a/Build/source/libs/icu-xetex/i18n/olsontz.h
+++ b/Build/source/libs/icu-xetex/i18n/olsontz.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2003-2004, International Business Machines
+* Copyright (c) 2003-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -209,6 +209,8 @@ class U_I18N_API OlsonTimeZone: public TimeZone {
*/
virtual UBool inDaylightTime(UDate date, UErrorCode& ec) const;
+ virtual int32_t getDSTSavings() const;
+
protected:
/**
* Default constructor. Creates a time zone with an empty ID and
diff --git a/Build/source/libs/icu-xetex/i18n/quant.h b/Build/source/libs/icu-xetex/i18n/quant.h
index 68e43061f1b..e10fb99e3c2 100644
--- a/Build/source/libs/icu-xetex/i18n/quant.h
+++ b/Build/source/libs/icu-xetex/i18n/quant.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2004, International Business Machines Corporation
+ * Copyright (C) 2001-2006, International Business Machines Corporation
* and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -18,7 +18,7 @@
U_NAMESPACE_BEGIN
-class Quantifier : public UnicodeFunctor, public UnicodeMatcher {
+class U_I18N_API Quantifier : public UnicodeFunctor, public UnicodeMatcher {
public:
diff --git a/Build/source/libs/icu-xetex/i18n/rbnf.cpp b/Build/source/libs/icu-xetex/i18n/rbnf.cpp
index c60d995cc59..f9a9ae3d671 100644
--- a/Build/source/libs/icu-xetex/i18n/rbnf.cpp
+++ b/Build/source/libs/icu-xetex/i18n/rbnf.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation
+* Copyright (C) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
*******************************************************************************
*/
@@ -1215,9 +1215,10 @@ RuleBasedNumberFormat::initDefaultRuleSet()
void
RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* localizationInfos,
- UParseError& /* pErr */, UErrorCode& status)
+ UParseError& pErr, UErrorCode& status)
{
// TODO: implement UParseError
+ uprv_memset(&pErr, 0, sizeof(UParseError));
// Note: this can leave ruleSets == NULL, so remaining code should check
if (U_FAILURE(status)) {
return;
diff --git a/Build/source/libs/icu-xetex/i18n/rbt.cpp b/Build/source/libs/icu-xetex/i18n/rbt.cpp
index 5cea0c4bd72..c22b2bd7f36 100644
--- a/Build/source/libs/icu-xetex/i18n/rbt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/rbt.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -37,19 +37,20 @@ void RuleBasedTransliterator::_construct(const UnicodeString& rules,
return;
}
- TransliteratorParser parser;
+ TransliteratorParser parser(status);
parser.parse(rules, direction, parseError, status);
if (U_FAILURE(status)) {
return;
}
- if (parser.idBlockVector->size() != 0 ||
- parser.compoundFilter != NULL) {
+ if (parser.idBlockVector.size() != 0 ||
+ parser.compoundFilter != NULL ||
+ parser.dataVector.size() == 0) {
status = U_INVALID_RBT_SYNTAX; // ::ID blocks disallowed in RBT
return;
}
- fData = (TransliterationRuleData*)parser.dataVector->orphanElementAt(0);
+ fData = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0);
setMaximumContextLength(fData->ruleSet.getMaximumContextLength());
}
diff --git a/Build/source/libs/icu-xetex/i18n/rbt_data.cpp b/Build/source/libs/icu-xetex/i18n/rbt_data.cpp
index 5552ecedef7..bec4b48ce80 100644
--- a/Build/source/libs/icu-xetex/i18n/rbt_data.cpp
+++ b/Build/source/libs/icu-xetex/i18n/rbt_data.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -22,21 +22,13 @@
U_NAMESPACE_BEGIN
TransliterationRuleData::TransliterationRuleData(UErrorCode& status)
- : UMemory(), ruleSet(status),
- variableNames(0), variables(0), variablesAreOwned(TRUE)
+ : UMemory(), ruleSet(status), variableNames(status),
+ variables(0), variablesAreOwned(TRUE)
{
if (U_FAILURE(status)) {
return;
}
- variableNames = new Hashtable(status);
- /* test for NULL */
- if (variableNames == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- if (U_SUCCESS(status)) {
- variableNames->setValueDeleter(uhash_deleteUnicodeString);
- }
+ variableNames.setValueDeleter(uhash_deleteUnicodeString);
variables = 0;
variablesLength = 0;
}
@@ -48,16 +40,13 @@ TransliterationRuleData::TransliterationRuleData(const TransliterationRuleData&
variablesLength(other.variablesLength)
{
UErrorCode status = U_ZERO_ERROR;
- variableNames = new Hashtable(status);
- if (U_SUCCESS(status)) {
- variableNames->setValueDeleter(uhash_deleteUnicodeString);
- int32_t pos = -1;
- const UHashElement *e;
- while ((e = other.variableNames->nextElement(pos)) != 0) {
- UnicodeString* value =
- new UnicodeString(*(const UnicodeString*)e->value.pointer);
- variableNames->put(*(UnicodeString*)e->key.pointer, value, status);
- }
+ variableNames.setValueDeleter(uhash_deleteUnicodeString);
+ int32_t pos = -1;
+ const UHashElement *e;
+ while ((e = other.variableNames.nextElement(pos)) != 0) {
+ UnicodeString* value =
+ new UnicodeString(*(const UnicodeString*)e->value.pointer);
+ variableNames.put(*(UnicodeString*)e->key.pointer, value, status);
}
variables = 0;
@@ -78,7 +67,6 @@ TransliterationRuleData::TransliterationRuleData(const TransliterationRuleData&
}
TransliterationRuleData::~TransliterationRuleData() {
- delete variableNames;
if (variablesAreOwned && variables != 0) {
for (int32_t i=0; i<variablesLength; ++i) {
delete variables[i];
diff --git a/Build/source/libs/icu-xetex/i18n/rbt_data.h b/Build/source/libs/icu-xetex/i18n/rbt_data.h
index 8d394efcd00..5913460728c 100644
--- a/Build/source/libs/icu-xetex/i18n/rbt_data.h
+++ b/Build/source/libs/icu-xetex/i18n/rbt_data.h
@@ -1,5 +1,7 @@
/*
-* Copyright (C) 1999-2005, International Business Machines Corporation and others. All Rights Reserved.
+**********************************************************************
+* Copyright (C) 1999-2006, International Business Machines Corporation
+* and others. All Rights Reserved.
**********************************************************************
* Date Name Description
* 11/17/99 aliu Creation.
@@ -15,14 +17,13 @@
#include "unicode/uobject.h"
#include "rbt_set.h"
+#include "hash.h"
U_NAMESPACE_BEGIN
class UnicodeFunctor;
-class UnicodeString;
class UnicodeMatcher;
class UnicodeReplacer;
-class Hashtable;
/**
* The rule data for a RuleBasedTransliterators. RBT objects hold
@@ -61,7 +62,7 @@ public:
* data.variables. The stand-in also represents the UnicodeMatcher in
* the stored rules.
*/
- Hashtable* variableNames;
+ Hashtable variableNames;
/**
* Map category variable (UChar) to set (UnicodeFunctor).
diff --git a/Build/source/libs/icu-xetex/i18n/rbt_pars.cpp b/Build/source/libs/icu-xetex/i18n/rbt_pars.cpp
index edb4a9edf79..f1c2cb97625 100644
--- a/Build/source/libs/icu-xetex/i18n/rbt_pars.cpp
+++ b/Build/source/libs/icu-xetex/i18n/rbt_pars.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -279,8 +279,6 @@ public:
UBool anchorStart;
UBool anchorEnd;
-
- UErrorCode ec;
/**
* The segment number from 1..n of the next '(' we see
@@ -296,12 +294,13 @@ public:
RuleHalf(TransliteratorParser& parser);
~RuleHalf();
- int32_t parse(const UnicodeString& rule, int32_t pos, int32_t limit);
+ int32_t parse(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status);
int32_t parseSection(const UnicodeString& rule, int32_t pos, int32_t limit,
UnicodeString& buf,
const UnicodeString& illegal,
- UBool isSegment);
+ UBool isSegment,
+ UErrorCode& status);
/**
* Remove context.
@@ -322,8 +321,9 @@ public:
int syntaxError(UErrorCode code,
const UnicodeString& rule,
- int32_t start) {
- return parser.syntaxError(code, rule, start);
+ int32_t start,
+ UErrorCode& status) {
+ return parser.syntaxError(code, rule, start, status);
}
private:
@@ -333,7 +333,6 @@ private:
};
RuleHalf::RuleHalf(TransliteratorParser& p) :
- ec(U_ZERO_ERROR),
parser(p)
{
cursor = -1;
@@ -354,13 +353,13 @@ RuleHalf::~RuleHalf() {
* @return the index after the terminating character, or
* if limit was reached, limit
*/
-int32_t RuleHalf::parse(const UnicodeString& rule, int32_t pos, int32_t limit) {
+int32_t RuleHalf::parse(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status) {
int32_t start = pos;
text.truncate(0);
- pos = parseSection(rule, pos, limit, text, ILLEGAL_TOP, FALSE);
+ pos = parseSection(rule, pos, limit, text, ILLEGAL_TOP, FALSE, status);
if (cursorOffset > 0 && cursor != cursorOffsetPos) {
- return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start);
+ return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status);
}
return pos;
@@ -392,7 +391,7 @@ int32_t RuleHalf::parse(const UnicodeString& rule, int32_t pos, int32_t limit) {
int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t limit,
UnicodeString& buf,
const UnicodeString& illegal,
- UBool isSegment) {
+ UBool isSegment, UErrorCode& status) {
int32_t start = pos;
ParsePosition pp;
UnicodeString scratch;
@@ -416,19 +415,19 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
if (u_strchr(HALF_ENDERS, c) != NULL) {
if (isSegment) {
// Unclosed segment
- return syntaxError(U_UNCLOSED_SEGMENT, rule, start);
+ return syntaxError(U_UNCLOSED_SEGMENT, rule, start, status);
}
break;
}
if (anchorEnd) {
// Text after a presumed end anchor is a syntax err
- return syntaxError(U_MALFORMED_VARIABLE_REFERENCE, rule, start);
+ return syntaxError(U_MALFORMED_VARIABLE_REFERENCE, rule, start, status);
}
if (UnicodeSet::resemblesPattern(rule, pos-1)) {
pp.setIndex(pos-1); // Backup to opening '['
- buf.append(parser.parseSet(rule, pp));
- if (U_FAILURE(parser.status)) {
- return syntaxError(U_MALFORMED_SET, rule, start);
+ buf.append(parser.parseSet(rule, pp, status));
+ if (U_FAILURE(status)) {
+ return syntaxError(U_MALFORMED_SET, rule, start, status);
}
pos = pp.getIndex();
continue;
@@ -436,14 +435,14 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
// Handle escapes
if (c == ESCAPE) {
if (pos == limit) {
- return syntaxError(U_TRAILING_BACKSLASH, rule, start);
+ return syntaxError(U_TRAILING_BACKSLASH, rule, start, status);
}
UChar32 escaped = rule.unescapeAt(pos); // pos is already past '\\'
if (escaped == (UChar32) -1) {
- return syntaxError(U_MALFORMED_UNICODE_ESCAPE, rule, start);
+ return syntaxError(U_MALFORMED_UNICODE_ESCAPE, rule, start, status);
}
if (!parser.checkVariableRange(escaped)) {
- return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start);
+ return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start, status);
}
buf.append(escaped);
continue;
@@ -464,7 +463,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
quoteStart = buf.length();
for (;;) {
if (iq < 0) {
- return syntaxError(U_UNTERMINATED_QUOTE, rule, start);
+ return syntaxError(U_UNTERMINATED_QUOTE, rule, start, status);
}
scratch.truncate(0);
rule.extractBetween(pos, iq, scratch);
@@ -482,7 +481,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
for (iq=quoteStart; iq<quoteLimit; ++iq) {
if (!parser.checkVariableRange(buf.charAt(iq))) {
- return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start);
+ return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start, status);
}
}
}
@@ -490,11 +489,11 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
}
if (!parser.checkVariableRange(c)) {
- return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start);
+ return syntaxError(U_VARIABLE_RANGE_OVERLAP, rule, start, status);
}
if (illegal.indexOf(c) >= 0) {
- syntaxError(U_ILLEGAL_CHARACTER, rule, start);
+ syntaxError(U_ILLEGAL_CHARACTER, rule, start, status);
}
switch (c) {
@@ -507,7 +506,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
anchorStart = TRUE;
} else {
return syntaxError(U_MISPLACED_ANCHOR_START,
- rule, start);
+ rule, start, status);
}
break;
case SEGMENT_OPEN:
@@ -522,7 +521,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
int32_t segmentNumber = nextSegmentNumber++; // 1-based
// Parse the segment
- pos = parseSection(rule, pos, limit, buf, ILLEGAL_SEG, TRUE);
+ pos = parseSection(rule, pos, limit, buf, ILLEGAL_SEG, TRUE, status);
// After parsing a segment, the relevant characters are
// in buf, starting at offset bufSegStart. Extract them
@@ -533,9 +532,9 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
segmentNumber, *parser.curData);
// Record and associate object and segment number
- parser.setSegmentObject(segmentNumber, m);
+ parser.setSegmentObject(segmentNumber, m, status);
buf.truncate(bufSegStart);
- buf.append(parser.getSegmentStandin(segmentNumber));
+ buf.append(parser.getSegmentStandin(segmentNumber, status));
}
break;
case FUNCTION:
@@ -547,13 +546,13 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
// The next character MUST be a segment open
if (single == NULL ||
!ICU_Utility::parseChar(rule, iref, SEGMENT_OPEN)) {
- return syntaxError(U_INVALID_FUNCTION, rule, start);
+ return syntaxError(U_INVALID_FUNCTION, rule, start, status);
}
Transliterator *t = single->createInstance();
delete single;
if (t == NULL) {
- return syntaxError(U_INVALID_FUNCTION, rule, start);
+ return syntaxError(U_INVALID_FUNCTION, rule, start, status);
}
// bufSegStart is the offset in buf to the first
@@ -561,7 +560,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
int32_t bufSegStart = buf.length();
// Parse the segment
- pos = parseSection(rule, iref, limit, buf, ILLEGAL_FUNC, TRUE);
+ pos = parseSection(rule, iref, limit, buf, ILLEGAL_FUNC, TRUE, status);
// After parsing a segment, the relevant characters are
// in buf, starting at offset bufSegStart.
@@ -572,7 +571,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
// Replace the buffer contents with a stand-in
buf.truncate(bufSegStart);
- buf.append(parser.generateStandInFor(r));
+ buf.append(parser.generateStandInFor(r, status));
}
break;
case SymbolTable::SYMBOL_REF:
@@ -595,9 +594,9 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
r = ICU_Utility::parseNumber(rule, pos, 10);
if (r < 0) {
return syntaxError(U_UNDEFINED_SEGMENT_REFERENCE,
- rule, start);
+ rule, start, status);
}
- buf.append(parser.getSegmentStandin(r));
+ buf.append(parser.getSegmentStandin(r, status));
} else {
pp.setIndex(pos);
UnicodeString name = parser.parseData->
@@ -617,13 +616,13 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
// that case appendVariableDef() will append the
// special placeholder char variableLimit-1.
varStart = buf.length();
- parser.appendVariableDef(name, buf);
+ parser.appendVariableDef(name, buf, status);
varLimit = buf.length();
}
}
break;
case DOT:
- buf.append(parser.getDotStandIn());
+ buf.append(parser.getDotStandIn(status));
break;
case KLEENE_STAR:
case ONE_OR_MORE:
@@ -637,7 +636,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
{
if (isSegment && buf.length() == bufStart) {
// The */+ immediately follows '('
- return syntaxError(U_MISPLACED_QUANTIFIER, rule, start);
+ return syntaxError(U_MISPLACED_QUANTIFIER, rule, start, status);
}
int32_t qstart, qlimit;
@@ -675,7 +674,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
}
m = new Quantifier(m, min, max);
buf.truncate(qstart);
- buf.append(parser.generateStandInFor(m));
+ buf.append(parser.generateStandInFor(m, status));
}
break;
@@ -693,31 +692,31 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
//------------------------------------------------------
case CONTEXT_ANTE:
if (ante >= 0) {
- return syntaxError(U_MULTIPLE_ANTE_CONTEXTS, rule, start);
+ return syntaxError(U_MULTIPLE_ANTE_CONTEXTS, rule, start, status);
}
ante = buf.length();
break;
case CONTEXT_POST:
if (post >= 0) {
- return syntaxError(U_MULTIPLE_POST_CONTEXTS, rule, start);
+ return syntaxError(U_MULTIPLE_POST_CONTEXTS, rule, start, status);
}
post = buf.length();
break;
case CURSOR_POS:
if (cursor >= 0) {
- return syntaxError(U_MULTIPLE_CURSORS, rule, start);
+ return syntaxError(U_MULTIPLE_CURSORS, rule, start, status);
}
cursor = buf.length();
break;
case CURSOR_OFFSET:
if (cursorOffset < 0) {
if (buf.length() > 0) {
- return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start);
+ return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status);
}
--cursorOffset;
} else if (cursorOffset > 0) {
if (buf.length() != cursorOffsetPos || cursor >= 0) {
- return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start);
+ return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status);
}
++cursorOffset;
} else {
@@ -727,7 +726,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
cursorOffsetPos = buf.length();
cursorOffset = 1;
} else {
- return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start);
+ return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status);
}
}
break;
@@ -744,7 +743,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l
!((c >= 0x0030/*'0'*/ && c <= 0x0039/*'9'*/) ||
(c >= 0x0041/*'A'*/ && c <= 0x005A/*'Z'*/) ||
(c >= 0x0061/*'a'*/ && c <= 0x007A/*'z'*/))) {
- return syntaxError(U_UNQUOTED_SPECIAL, rule, start);
+ return syntaxError(U_UNQUOTED_SPECIAL, rule, start, status);
}
buf.append(c);
break;
@@ -807,32 +806,29 @@ UBool RuleHalf::isValidInput(TransliteratorParser& transParser) {
/**
* Constructor.
*/
-TransliteratorParser::TransliteratorParser() {
- dataVector = NULL;
- idBlockVector = NULL;
+TransliteratorParser::TransliteratorParser(UErrorCode &statusReturn) :
+dataVector(statusReturn),
+idBlockVector(statusReturn),
+variablesVector(statusReturn),
+segmentObjects(statusReturn)
+{
+ idBlockVector.setDeleter(uhash_deleteUnicodeString);
curData = NULL;
compoundFilter = NULL;
parseData = NULL;
- variablesVector = NULL;
- variableNames = NULL;
- segmentObjects = NULL;
+ variableNames.setValueDeleter(uhash_deleteUnicodeString);
}
/**
* Destructor.
*/
TransliteratorParser::~TransliteratorParser() {
- while (dataVector != NULL && !dataVector->isEmpty())
- delete (TransliterationRuleData*)(dataVector->orphanElementAt(0));
- delete dataVector;
- delete idBlockVector;
+ while (!dataVector.isEmpty())
+ delete (TransliterationRuleData*)(dataVector.orphanElementAt(0));
delete compoundFilter;
delete parseData;
- while (variablesVector != NULL && !variablesVector->isEmpty())
- delete (UnicodeFunctor*)variablesVector->orphanElementAt(0);
- delete variablesVector;
- delete variableNames;
- delete segmentObjects;
+ while (!variablesVector.isEmpty())
+ delete (UnicodeFunctor*)variablesVector.orphanElementAt(0);
}
void
@@ -841,9 +837,8 @@ TransliteratorParser::parse(const UnicodeString& rules,
UParseError& pe,
UErrorCode& ec) {
if (U_SUCCESS(ec)) {
- parseRules(rules, transDirection);
+ parseRules(rules, transDirection, ec);
pe = parseError;
- ec = status;
}
}
@@ -869,55 +864,35 @@ UnicodeSet* TransliteratorParser::orphanCompoundFilter() {
* rules
*/
void TransliteratorParser::parseRules(const UnicodeString& rule,
- UTransDirection theDirection) {
+ UTransDirection theDirection,
+ UErrorCode& status) {
// Clear error struct
parseError.line = parseError.offset = -1;
parseError.preContext[0] = parseError.postContext[0] = (UChar)0;
- status = U_ZERO_ERROR;
UBool parsingIDs = TRUE;
int32_t ruleCount = 0;
- if (dataVector == NULL)
- dataVector = new UVector(status);
- else {
- while (!dataVector->isEmpty())
- delete (TransliterationRuleData*)(dataVector->orphanElementAt(0));
+ while (!dataVector.isEmpty()) {
+ delete (TransliterationRuleData*)(dataVector.orphanElementAt(0));
}
if (U_FAILURE(status)) {
return;
}
- if (idBlockVector == NULL) {
- idBlockVector = new UVector(status);
- idBlockVector->setDeleter(uhash_deleteUnicodeString);
- }
- else
- idBlockVector->removeAllElements();
- if (U_FAILURE(status)) {
- return;
- }
+ idBlockVector.removeAllElements();
curData = NULL;
-
direction = theDirection;
ruleCount = 0;
delete compoundFilter;
compoundFilter = NULL;
- if (variablesVector == NULL) {
- variablesVector = new UVector(status);
- } else {
- while (!variablesVector->isEmpty())
- delete (UnicodeFunctor*)variablesVector->orphanElementAt(0);
- }
- if (variableNames == NULL) {
- variableNames = new Hashtable(status);
- variableNames->setValueDeleter(uhash_deleteUnicodeString);
- } else {
- variableNames->removeAll();
+ while (!variablesVector.isEmpty()) {
+ delete (UnicodeFunctor*)variablesVector.orphanElementAt(0);
}
- parseData = new ParseData(0, variablesVector, variableNames);
+ variableNames.removeAll();
+ parseData = new ParseData(0, &variablesVector, &variableNames);
if (parseData == NULL) {
status = U_MEMORY_ALLOCATION_ERROR;
return;
@@ -979,9 +954,9 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
if (!parsingIDs) {
if (curData != NULL) {
if (direction == UTRANS_FORWARD)
- dataVector->addElement(curData, status);
+ dataVector.addElement(curData, status);
else
- dataVector->insertElementAt(curData, 0, status);
+ dataVector.insertElementAt(curData, 0, status);
curData = NULL;
}
parsingIDs = TRUE;
@@ -1009,7 +984,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
{
if (compoundFilter != NULL) {
// Multiple compound filters
- syntaxError(U_MULTIPLE_COMPOUND_FILTERS, rule, pos);
+ syntaxError(U_MULTIPLE_COMPOUND_FILTERS, rule, pos, status);
delete f;
} else {
compoundFilter = f;
@@ -1021,7 +996,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
} else {
// Invalid ::id
// Can be parsed as neither an ID nor a global filter
- syntaxError(U_INVALID_ID, rule, pos);
+ syntaxError(U_INVALID_ID, rule, pos, status);
}
}
delete id;
@@ -1029,9 +1004,9 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
} else {
if (parsingIDs) {
if (direction == UTRANS_FORWARD)
- idBlockVector->addElement(new UnicodeString(idBlockResult), status);
+ idBlockVector.addElement(new UnicodeString(idBlockResult), status);
else
- idBlockVector->insertElementAt(new UnicodeString(idBlockResult), 0, status);
+ idBlockVector.insertElementAt(new UnicodeString(idBlockResult), 0, status);
idBlockResult.remove();
parsingIDs = FALSE;
curData = new TransliterationRuleData(status);
@@ -1041,41 +1016,41 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
// E000..F8FF for variables and other stand-ins. Currently
// the range F000..F8FF is typically sufficient. The 'use
// variable range' pragma allows rule sets to modify this.
- setVariableRange(0xF000, 0xF8FF);
+ setVariableRange(0xF000, 0xF8FF, status);
}
if (resemblesPragma(rule, pos, limit)) {
- int32_t ppp = parsePragma(rule, pos, limit);
+ int32_t ppp = parsePragma(rule, pos, limit, status);
if (ppp < 0) {
- syntaxError(U_MALFORMED_PRAGMA, rule, pos);
+ syntaxError(U_MALFORMED_PRAGMA, rule, pos, status);
}
pos = ppp;
// Parse a rule
} else {
- pos = parseRule(rule, pos, limit);
+ pos = parseRule(rule, pos, limit, status);
}
}
}
if (parsingIDs && idBlockResult.length() > 0) {
if (direction == UTRANS_FORWARD)
- idBlockVector->addElement(new UnicodeString(idBlockResult), status);
+ idBlockVector.addElement(new UnicodeString(idBlockResult), status);
else
- idBlockVector->insertElementAt(new UnicodeString(idBlockResult), 0, status);
+ idBlockVector.insertElementAt(new UnicodeString(idBlockResult), 0, status);
}
else if (!parsingIDs && curData != NULL) {
if (direction == UTRANS_FORWARD)
- dataVector->addElement(curData, status);
+ dataVector.addElement(curData, status);
else
- dataVector->insertElementAt(curData, 0, status);
+ dataVector.insertElementAt(curData, 0, status);
}
if (U_SUCCESS(status)) {
// Convert the set vector to an array
- int32_t i, dataVectorSize = dataVector->size();
+ int32_t i, dataVectorSize = dataVector.size();
for (i = 0; i < dataVectorSize; i++) {
- TransliterationRuleData* data = (TransliterationRuleData*)dataVector->elementAt(i);
- data->variablesLength = variablesVector->size();
+ TransliterationRuleData* data = (TransliterationRuleData*)dataVector.elementAt(i);
+ data->variablesLength = variablesVector.size();
if (data->variablesLength == 0) {
data->variables = 0;
} else {
@@ -1085,19 +1060,19 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
for (int32_t j = 0; j < data->variablesLength; j++) {
data->variables[j] =
- ((UnicodeSet*)variablesVector->elementAt(j));
+ ((UnicodeSet*)variablesVector.elementAt(j));
}
- data->variableNames->removeAll();
+ data->variableNames.removeAll();
int32_t pos = -1;
- const UHashElement* he = variableNames->nextElement(pos);
+ const UHashElement* he = variableNames.nextElement(pos);
while (he != NULL) {
- data->variableNames->put(*((UnicodeString*)(he->key.pointer)),
+ data->variableNames.put(*((UnicodeString*)(he->key.pointer)),
((UnicodeString*)(he->value.pointer))->clone(), status);
- he = variableNames->nextElement(pos);
+ he = variableNames.nextElement(pos);
}
}
- variablesVector->removeAllElements(); // keeps them from getting deleted when we succeed
+ variablesVector.removeAllElements(); // keeps them from getting deleted when we succeed
// Index the rules
if (compoundFilter != NULL) {
@@ -1108,11 +1083,11 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
}
for (i = 0; i < dataVectorSize; i++) {
- TransliterationRuleData* data = (TransliterationRuleData*)dataVector->elementAt(i);
+ TransliterationRuleData* data = (TransliterationRuleData*)dataVector.elementAt(i);
data->ruleSet.freeze(parseError, status);
}
- if (idBlockVector->size() == 1 && ((UnicodeString*)idBlockVector->elementAt(0))->isEmpty()) {
- idBlockVector->removeElementAt(0);
+ if (idBlockVector.size() == 1 && ((UnicodeString*)idBlockVector.elementAt(0))->isEmpty()) {
+ idBlockVector.removeElementAt(0);
}
}
}
@@ -1120,14 +1095,14 @@ void TransliteratorParser::parseRules(const UnicodeString& rule,
/**
* Set the variable range to [start, end] (inclusive).
*/
-void TransliteratorParser::setVariableRange(int32_t start, int32_t end) {
+void TransliteratorParser::setVariableRange(int32_t start, int32_t end, UErrorCode& status) {
if (start > end || start < 0 || end > 0xFFFF) {
status = U_MALFORMED_PRAGMA;
return;
}
curData->variablesBase = (UChar) start;
- if (dataVector->size() == 0) {
+ if (dataVector.size() == 0) {
variableNext = (UChar) start;
variableLimit = (UChar) (end + 1);
}
@@ -1188,7 +1163,7 @@ UBool TransliteratorParser::resemblesPragma(const UnicodeString& rule, int32_t p
* @return the position index after the final ';' of the pragma,
* or -1 on failure.
*/
-int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos, int32_t limit) {
+int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status) {
int32_t array[2];
// resemblesPragma() has already returned true, so we
@@ -1203,7 +1178,7 @@ int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos
// use nfc rules;
int p = ICU_Utility::parsePattern(rule, pos, limit, PRAGMA_VARIABLE_RANGE, array);
if (p >= 0) {
- setVariableRange(array[0], array[1]);
+ setVariableRange(array[0], array[1], status);
return p;
}
@@ -1242,7 +1217,7 @@ int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos
* indicators. Once it does a lexical breakdown of the rule at pos, it
* creates a rule object and adds it to our rule list.
*/
-int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos, int32_t limit) {
+int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status) {
// Locate the left side, operator, and right side
int32_t start = pos;
UChar op = 0;
@@ -1250,11 +1225,7 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
// Set up segments data
segmentStandins.truncate(0);
- if (segmentObjects == NULL) {
- segmentObjects = new UVector(status);
- } else {
- segmentObjects->removeAllElements();
- }
+ segmentObjects.removeAllElements();
// Use pointers to automatics to make swapping possible.
RuleHalf _left(*this), _right(*this);
@@ -1262,13 +1233,13 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
RuleHalf* right = &_right;
undefinedVariableName.remove();
- pos = left->parse(rule, pos, limit);
+ pos = left->parse(rule, pos, limit, status);
if (U_FAILURE(status)) {
return start;
}
if (pos == limit || u_strchr(gOPERATORS, (op = rule.charAt(--pos))) == NULL) {
- return syntaxError(U_MISSING_OPERATOR, rule, start);
+ return syntaxError(U_MISSING_OPERATOR, rule, start, status);
}
++pos;
@@ -1292,7 +1263,7 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
break;
}
- pos = right->parse(rule, pos, limit);
+ pos = right->parse(rule, pos, limit, status);
if (U_FAILURE(status)) {
return start;
}
@@ -1302,7 +1273,7 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
++pos;
} else {
// RuleHalf parser must have terminated at an operator
- return syntaxError(U_UNQUOTED_SPECIAL, rule, start);
+ return syntaxError(U_UNQUOTED_SPECIAL, rule, start, status);
}
}
@@ -1316,19 +1287,19 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
// defined).
if (undefinedVariableName.length() == 0) {
// "Missing '$' or duplicate definition"
- return syntaxError(U_BAD_VARIABLE_DEFINITION, rule, start);
+ return syntaxError(U_BAD_VARIABLE_DEFINITION, rule, start, status);
}
if (left->text.length() != 1 || left->text.charAt(0) != variableLimit) {
// "Malformed LHS"
- return syntaxError(U_MALFORMED_VARIABLE_DEFINITION, rule, start);
+ return syntaxError(U_MALFORMED_VARIABLE_DEFINITION, rule, start, status);
}
if (left->anchorStart || left->anchorEnd ||
right->anchorStart || right->anchorEnd) {
- return syntaxError(U_MALFORMED_VARIABLE_DEFINITION, rule, start);
+ return syntaxError(U_MALFORMED_VARIABLE_DEFINITION, rule, start, status);
}
// We allow anything on the right, including an empty string.
UnicodeString* value = new UnicodeString(right->text);
- variableNames->put(undefinedVariableName, value, status);
+ variableNames.put(undefinedVariableName, value, status);
++variableLimit;
return pos;
}
@@ -1338,21 +1309,21 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
if (undefinedVariableName.length() != 0) {
return syntaxError(// "Undefined variable $" + undefinedVariableName,
U_UNDEFINED_VARIABLE,
- rule, start);
+ rule, start, status);
}
// Verify segments
- if (segmentStandins.length() > segmentObjects->size()) {
- syntaxError(U_UNDEFINED_SEGMENT_REFERENCE, rule, start);
+ if (segmentStandins.length() > segmentObjects.size()) {
+ syntaxError(U_UNDEFINED_SEGMENT_REFERENCE, rule, start, status);
}
for (i=0; i<segmentStandins.length(); ++i) {
if (segmentStandins.charAt(i) == 0) {
- syntaxError(U_INTERNAL_TRANSLITERATOR_ERROR, rule, start); // will never happen
+ syntaxError(U_INTERNAL_TRANSLITERATOR_ERROR, rule, start, status); // will never happen
}
}
- for (i=0; i<segmentObjects->size(); ++i) {
- if (segmentObjects->elementAt(i) == NULL) {
- syntaxError(U_INTERNAL_TRANSLITERATOR_ERROR, rule, start); // will never happen
+ for (i=0; i<segmentObjects.size(); ++i) {
+ if (segmentObjects.elementAt(i) == NULL) {
+ syntaxError(U_INTERNAL_TRANSLITERATOR_ERROR, rule, start, status); // will never happen
}
}
@@ -1405,21 +1376,21 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
!left->isValidInput(*this) || !right->isValidOutput(*this) ||
left->ante > left->post) {
- return syntaxError(U_MALFORMED_RULE, rule, start);
+ return syntaxError(U_MALFORMED_RULE, rule, start, status);
}
// Flatten segment objects vector to an array
UnicodeFunctor** segmentsArray = NULL;
- if (segmentObjects->size() > 0) {
- segmentsArray = (UnicodeFunctor **)uprv_malloc(segmentObjects->size() * sizeof(UnicodeFunctor *));
- segmentObjects->toArray((void**) segmentsArray);
+ if (segmentObjects.size() > 0) {
+ segmentsArray = (UnicodeFunctor **)uprv_malloc(segmentObjects.size() * sizeof(UnicodeFunctor *));
+ segmentObjects.toArray((void**) segmentsArray);
}
curData->ruleSet.addRule(new TransliterationRule(
left->text, left->ante, left->post,
right->text, right->cursor, right->cursorOffset,
segmentsArray,
- segmentObjects->size(),
+ segmentObjects.size(),
left->anchorStart, left->anchorEnd,
curData,
status), status);
@@ -1437,8 +1408,10 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos,
* @param start position of first character of current rule
*/
int32_t TransliteratorParser::syntaxError(UErrorCode parseErrorCode,
- const UnicodeString& rule,
- int32_t pos) {
+ const UnicodeString& rule,
+ int32_t pos,
+ UErrorCode& status)
+{
parseError.offset = pos;
parseError.line = 0 ; /* we are not using line numbers */
@@ -1469,23 +1442,24 @@ int32_t TransliteratorParser::syntaxError(UErrorCode parseErrorCode,
* used to represent it.
*/
UChar TransliteratorParser::parseSet(const UnicodeString& rule,
- ParsePosition& pos) {
+ ParsePosition& pos,
+ UErrorCode& status) {
UnicodeSet* set = new UnicodeSet(rule, pos, USET_IGNORE_SPACE, parseData, status);
set->compact();
- return generateStandInFor(set);
+ return generateStandInFor(set, status);
}
/**
* Generate and return a stand-in for a new UnicodeFunctor. Store
* the matcher (adopt it).
*/
-UChar TransliteratorParser::generateStandInFor(UnicodeFunctor* adopted) {
+UChar TransliteratorParser::generateStandInFor(UnicodeFunctor* adopted, UErrorCode& status) {
// assert(obj != null);
// Look up previous stand-in, if any. This is a short list
// (typical n is 0, 1, or 2); linear search is optimal.
- for (int32_t i=0; i<variablesVector->size(); ++i) {
- if (variablesVector->elementAt(i) == adopted) { // [sic] pointer comparison
+ for (int32_t i=0; i<variablesVector.size(); ++i) {
+ if (variablesVector.elementAt(i) == adopted) { // [sic] pointer comparison
return (UChar) (curData->variablesBase + i);
}
}
@@ -1495,14 +1469,14 @@ UChar TransliteratorParser::generateStandInFor(UnicodeFunctor* adopted) {
status = U_VARIABLE_RANGE_EXHAUSTED;
return 0;
}
- variablesVector->addElement(adopted, status);
+ variablesVector.addElement(adopted, status);
return variableNext++;
}
/**
* Return the standin for segment seg (1-based).
*/
-UChar TransliteratorParser::getSegmentStandin(int32_t seg) {
+UChar TransliteratorParser::getSegmentStandin(int32_t seg, UErrorCode& status) {
// Special character used to indicate an empty spot
UChar empty = curData->variablesBase - 1;
while (segmentStandins.length() < seg) {
@@ -1518,7 +1492,7 @@ UChar TransliteratorParser::getSegmentStandin(int32_t seg) {
// Set a placeholder in the master variables vector that will be
// filled in later by setSegmentObject(). We know that we will get
// called first because setSegmentObject() will call us.
- variablesVector->addElement((void*) NULL, status);
+ variablesVector.addElement((void*) NULL, status);
segmentStandins.setCharAt(seg-1, c);
}
return c;
@@ -1527,32 +1501,32 @@ UChar TransliteratorParser::getSegmentStandin(int32_t seg) {
/**
* Set the object for segment seg (1-based).
*/
-void TransliteratorParser::setSegmentObject(int32_t seg, StringMatcher* adopted) {
+void TransliteratorParser::setSegmentObject(int32_t seg, StringMatcher* adopted, UErrorCode& status) {
// Since we call parseSection() recursively, nested
// segments will result in segment i+1 getting parsed
// and stored before segment i; be careful with the
// vector handling here.
- if (segmentObjects->size() < seg) {
- segmentObjects->setSize(seg);
+ if (segmentObjects.size() < seg) {
+ segmentObjects.setSize(seg);
}
- int32_t index = getSegmentStandin(seg) - curData->variablesBase;
- if (segmentObjects->elementAt(seg-1) != NULL ||
- variablesVector->elementAt(index) != NULL) {
+ int32_t index = getSegmentStandin(seg, status) - curData->variablesBase;
+ if (segmentObjects.elementAt(seg-1) != NULL ||
+ variablesVector.elementAt(index) != NULL) {
// should never happen
status = U_INTERNAL_TRANSLITERATOR_ERROR;
return;
}
- segmentObjects->setElementAt(adopted, seg-1);
- variablesVector->setElementAt(adopted, index);
+ segmentObjects.setElementAt(adopted, seg-1);
+ variablesVector.setElementAt(adopted, index);
}
/**
* Return the stand-in for the dot set. It is allocated the first
* time and reused thereafter.
*/
-UChar TransliteratorParser::getDotStandIn() {
+UChar TransliteratorParser::getDotStandIn(UErrorCode& status) {
if (dotStandIn == (UChar) -1) {
- dotStandIn = generateStandInFor(new UnicodeSet(DOT_SET, status));
+ dotStandIn = generateStandInFor(new UnicodeSet(DOT_SET, status), status);
}
return dotStandIn;
}
@@ -1562,8 +1536,9 @@ UChar TransliteratorParser::getDotStandIn() {
* UnicodeString.
*/
void TransliteratorParser::appendVariableDef(const UnicodeString& name,
- UnicodeString& buf) {
- const UnicodeString* s = (const UnicodeString*) variableNames->get(name);
+ UnicodeString& buf,
+ UErrorCode& status) {
+ const UnicodeString* s = (const UnicodeString*) variableNames.get(name);
if (s == NULL) {
// We allow one undefined variable so that variable definition
// statements work. For the first undefined variable we return
diff --git a/Build/source/libs/icu-xetex/i18n/rbt_pars.h b/Build/source/libs/icu-xetex/i18n/rbt_pars.h
index 699e216bf98..a9b11d34837 100644
--- a/Build/source/libs/icu-xetex/i18n/rbt_pars.h
+++ b/Build/source/libs/icu-xetex/i18n/rbt_pars.h
@@ -1,5 +1,7 @@
/*
-* Copyright (C) 1999-2005, International Business Machines Corporation and others. All Rights Reserved.
+**********************************************************************
+* Copyright (C) 1999-2006, International Business Machines Corporation
+* and others. All Rights Reserved.
**********************************************************************
* Date Name Description
* 11/17/99 aliu Creation.
@@ -17,6 +19,8 @@
#include "unicode/parseerr.h"
#include "unicode/unorm.h"
#include "rbt.h"
+#include "hash.h"
+#include "uvector.h"
U_NAMESPACE_BEGIN
@@ -25,8 +29,6 @@ class UnicodeFunctor;
class ParseData;
class RuleHalf;
class ParsePosition;
-class UVector;
-class Hashtable;
class StringMatcher;
class TransliteratorParser : public UMemory {
@@ -37,13 +39,13 @@ class TransliteratorParser : public UMemory {
* A Vector of TransliterationRuleData objects, one for each discrete group
* of rules in the rule set
*/
- UVector* dataVector;
+ UVector dataVector;
/**
* PUBLIC data member.
* A Vector of UnicodeStrings containing all of the ID blocks in the rule set
*/
- UVector* idBlockVector;
+ UVector idBlockVector;
/**
* PUBLIC data member containing the parsed compound filter, if any.
@@ -60,12 +62,6 @@ class TransliteratorParser : public UMemory {
UTransDirection direction;
/**
- * We use a single error code during parsing. Rather than pass it
- * through each API, we keep it here.
- */
- UErrorCode status;
-
- /**
* Parse error information.
*/
UParseError parseError;
@@ -80,13 +76,13 @@ class TransliteratorParser : public UMemory {
* is copied into the array data.variables. As with data.variables,
* element 0 corresponds to character data.variablesBase.
*/
- UVector* variablesVector;
+ UVector variablesVector;
/**
* Temporary table of variable names. When parsing is complete, this is
* copied into data.variableNames.
*/
- Hashtable* variableNames;
+ Hashtable variableNames;
/**
* String of standins for segments. Used during the parsing of a single
@@ -101,7 +97,7 @@ class TransliteratorParser : public UMemory {
* segmentStandins.charAt(0) is the standin for "$1" and corresponds
* to StringMatcher object segmentObjects.elementAt(0), etc.
*/
- UVector* segmentObjects;
+ UVector segmentObjects;
/**
* The next available stand-in for variables. This starts at some point in
@@ -139,7 +135,7 @@ public:
/**
* Constructor.
*/
- TransliteratorParser();
+ TransliteratorParser(UErrorCode &statusReturn);
/**
* Destructor.
@@ -181,7 +177,8 @@ private:
* @param direction either FORWARD or REVERSE.
*/
void parseRules(const UnicodeString& rules,
- UTransDirection direction);
+ UTransDirection direction,
+ UErrorCode& status);
/**
* MAIN PARSER. Parse the next rule in the given rule string, starting
@@ -200,14 +197,14 @@ private:
* @param limit pointer past the last character of the rule.
* @return the index after the last character parsed.
*/
- int32_t parseRule(const UnicodeString& rule, int32_t pos, int32_t limit);
+ int32_t parseRule(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status);
/**
* Set the variable range to [start, end] (inclusive).
* @param start the start value of the range.
* @param end the end value of the range.
*/
- void setVariableRange(int32_t start, int32_t end);
+ void setVariableRange(int32_t start, int32_t end, UErrorCode& status);
/**
* Assert that the given character is NOT within the variable range.
@@ -250,7 +247,7 @@ private:
* @return the position index after the final ';' of the pragma,
* or -1 on failure.
*/
- int32_t parsePragma(const UnicodeString& rule, int32_t pos, int32_t limit);
+ int32_t parsePragma(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status);
/**
* Called by main parser upon syntax error. Search the rule string
@@ -262,7 +259,8 @@ private:
* @param start position of first character of current rule.
* @return start position of first character of current rule.
*/
- int32_t syntaxError(UErrorCode parseErrorCode, const UnicodeString&, int32_t start);
+ int32_t syntaxError(UErrorCode parseErrorCode, const UnicodeString&, int32_t start,
+ UErrorCode& status);
/**
* Parse a UnicodeSet out, store it, and return the stand-in character
@@ -273,7 +271,8 @@ private:
* @return the stand-in character used to represent it.
*/
UChar parseSet(const UnicodeString& rule,
- ParsePosition& pos);
+ ParsePosition& pos,
+ UErrorCode& status);
/**
* Generate and return a stand-in for a new UnicodeFunctor. Store
@@ -281,28 +280,28 @@ private:
* @param adopted the UnicodeFunctor to be adopted.
* @return a stand-in for a new UnicodeFunctor.
*/
- UChar generateStandInFor(UnicodeFunctor* adopted);
+ UChar generateStandInFor(UnicodeFunctor* adopted, UErrorCode& status);
/**
* Return the standin for segment seg (1-based).
* @param seg the given segment.
* @return the standIn character for the given segment.
*/
- UChar getSegmentStandin(int32_t seg);
+ UChar getSegmentStandin(int32_t seg, UErrorCode& status);
/**
* Set the object for segment seg (1-based).
* @param seg the given segment.
* @param adopted the StringMatcher to be adopted.
*/
- void setSegmentObject(int32_t seg, StringMatcher* adopted);
+ void setSegmentObject(int32_t seg, StringMatcher* adopted, UErrorCode& status);
/**
* Return the stand-in for the dot set. It is allocated the first
* time and reused thereafter.
* @return the stand-in for the dot set.
*/
- UChar getDotStandIn();
+ UChar getDotStandIn(UErrorCode& status);
/**
* Append the value of the given variable name to the given
@@ -311,7 +310,8 @@ private:
* @param buf the given UnicodeString to append to.
*/
void appendVariableDef(const UnicodeString& name,
- UnicodeString& buf);
+ UnicodeString& buf,
+ UErrorCode& status);
/**
* Glue method to get around access restrictions in C++.
diff --git a/Build/source/libs/icu-xetex/i18n/regexcmp.cpp b/Build/source/libs/icu-xetex/i18n/regexcmp.cpp
index b669c636cad..5d71d29ffbd 100644
--- a/Build/source/libs/icu-xetex/i18n/regexcmp.cpp
+++ b/Build/source/libs/icu-xetex/i18n/regexcmp.cpp
@@ -2,7 +2,7 @@
//
// file: regexcmp.cpp
//
-// Copyright (C) 2002-2004 International Business Machines Corporation and others.
+// Copyright (C) 2002-2006 International Business Machines Corporation and others.
// All Rights Reserved.
//
// This file contains the ICU regular expression compiler, which is responsible
@@ -60,7 +60,7 @@ RegexCompile::RegexCompile(RegexPattern *rxp, UErrorCode &status) : fParenStack(
fCharNum = 0;
fQuoteMode = FALSE;
fInBackslashQuote = FALSE;
- fModeFlags = fRXPat->fFlags;
+ fModeFlags = fRXPat->fFlags | 0x80000000;
fEOLComments = TRUE;
fMatchOpenParen = -1;
@@ -339,11 +339,10 @@ UBool RegexCompile::doParseActions(EParseAction action)
fRXPat->fCompiledPat->addElement(URX_BUILD(URX_STATE_SAVE, 2), *fStatus);
fRXPat->fCompiledPat->addElement(URX_BUILD(URX_JMP, 3), *fStatus);
fRXPat->fCompiledPat->addElement(URX_BUILD(URX_FAIL, 0), *fStatus);
- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
- fRXPat->fCompiledPat->addElement(URX_BUILD(URX_NOP, 0), *fStatus);
- fParenStack.push(-1, *fStatus); // Begin a Paren Stack Frame
- fParenStack.push( 3, *fStatus); // Push location of first NOP
+ // Standard open nonCapture paren action emits the two NOPs and
+ // sets up the paren stack frame.
+ doParseActions((EParseAction)doOpenNonCaptureParen);
break;
case doPatFinish:
@@ -1333,6 +1332,7 @@ UBool RegexCompile::doParseActions(EParseAction action)
case doSetMatchMode:
// We've got a (?i) or similar. The match mode is being changed, but
// the change is not scoped to a parenthesized block.
+ U_ASSERT(fNewModeFlags < 0);
fModeFlags = fNewModeFlags;
// Prevent any string from spanning across the change of match mode.
@@ -1363,6 +1363,7 @@ UBool RegexCompile::doParseActions(EParseAction action)
fParenStack.push(fRXPat->fCompiledPat->size()-1, *fStatus); // The second NOP
// Set the current mode flags to the new values.
+ U_ASSERT(fNewModeFlags < 0);
fModeFlags = fNewModeFlags;
}
break;
@@ -1620,6 +1621,7 @@ void RegexCompile::insertOp(int32_t where) {
// the compiled pattern. (Negative values are frame boundaries, and don't need fixing.)
for (loc=0; loc<fParenStack.size(); loc++) {
int32_t x = fParenStack.elementAti(loc);
+ U_ASSERT(x < code->size());
if (x>where) {
x++;
fParenStack.setElementAt(x, loc);
@@ -1726,6 +1728,7 @@ void RegexCompile::handleCloseParen() {
// the value they had at the open paren. Saved value is
// at the top of the paren stack.
fModeFlags = fParenStack.popi();
+ U_ASSERT(fModeFlags < 0);
// DO any additional fixups, depending on the specific kind of
// parentesized grouping this is
@@ -2240,7 +2243,7 @@ void RegexCompile::matchStartType() {
// character may have distinct cased forms. Add all of them
// to the set of possible starting match chars.
UnicodeSet s(c, c);
- s.closeOver(USET_CASE);
+ s.closeOver(USET_CASE_INSENSITIVE);
fRXPat->fInitialChars->addAll(s);
} else {
// Char has no case variants. Just add it as-is to the
@@ -2366,7 +2369,7 @@ void RegexCompile::matchStartType() {
int32_t stringStartIdx = URX_VAL(op);
UChar32 c = fRXPat->fLiteralText.char32At(stringStartIdx);
UnicodeSet s(c, c);
- s.closeOver(USET_CASE);
+ s.closeOver(USET_CASE_INSENSITIVE);
fRXPat->fInitialChars->addAll(s);
numInitialStrings += 2; // Matching on an initial string not possible.
}
@@ -2958,8 +2961,8 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) {
// End of look-ahead ops should always be consumed by the processing at
// the URX_LA_START op.
- U_ASSERT(FALSE);
- break;
+ // U_ASSERT(FALSE);
+ // break;
case URX_LB_START:
{
@@ -3235,18 +3238,15 @@ static const UChar chCR = 0x0d; // New lines, for terminating c
static const UChar chLF = 0x0a;
static const UChar chNEL = 0x85; // NEL newline variant
static const UChar chLS = 0x2028; // Unicode Line Separator
-static const UChar chApos = 0x27; // single quote, for quoted chars.
static const UChar chPound = 0x23; // '#', introduces a comment.
static const UChar chE = 0x45; // 'E'
+static const UChar chUpperN = 0x4E;
+static const UChar chLowerP = 0x70;
+static const UChar chUpperP = 0x50;
static const UChar chBackSlash = 0x5c; // '\' introduces a char escape
-static const UChar chLParen = 0x28;
-static const UChar chRParen = 0x29;
static const UChar chLBracket = 0x5b;
static const UChar chRBracket = 0x5d;
static const UChar chRBrace = 0x7d;
-static const UChar chUpperN = 0x4E;
-static const UChar chLowerP = 0x70;
-static const UChar chUpperP = 0x50;
//------------------------------------------------------------------------------
@@ -3425,7 +3425,6 @@ void RegexCompile::nextChar(RegexPatternChar &c) {
UnicodeSet *RegexCompile::scanSet() {
UnicodeSet *uset = NULL;
ParsePosition pos;
- int startPos;
int i;
if (U_FAILURE(*fStatus)) {
@@ -3433,7 +3432,6 @@ UnicodeSet *RegexCompile::scanSet() {
}
pos.setIndex(fScanIndex);
- startPos = fScanIndex;
UErrorCode localStatus = U_ZERO_ERROR;
uint32_t usetFlags = 0;
if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
diff --git a/Build/source/libs/icu-xetex/i18n/regexcmp.h b/Build/source/libs/icu-xetex/i18n/regexcmp.h
index 6d93f5a8d75..3f42c87599b 100644
--- a/Build/source/libs/icu-xetex/i18n/regexcmp.h
+++ b/Build/source/libs/icu-xetex/i18n/regexcmp.h
@@ -1,7 +1,7 @@
//
// regexcmp.h
//
-// Copyright (C) 2002-2003, International Business Machines Corporation and others.
+// Copyright (C) 2002-2005, International Business Machines Corporation and others.
// All Rights Reserved.
//
// This file contains declarations for the class RegexCompile
@@ -130,8 +130,8 @@ private:
UBool fInBackslashQuote; // Scan is between a '\' and the following char.
UBool fEOLComments; // When scan is just after '(?', inhibit #... to
// end of line comments, in favor of (?#...) comments.
- int fLineNum; // Line number in input file.
- int fCharNum; // Char position within the line.
+ int32_t fLineNum; // Line number in input file.
+ int32_t fCharNum; // Char position within the line.
UChar32 fLastChar; // Previous char, needed to count CR-LF
// as a single line, not two.
UChar32 fPeekChar; // Saved char, if we've scanned ahead.
@@ -147,13 +147,16 @@ private:
// parsing. index by p[state][char-class]
uint16_t fStack[kStackSize]; // State stack, holds state pushes
- int fStackPtr; // and pops as specified in the state
+ int32_t fStackPtr; // and pops as specified in the state
// transition rules.
//
// Data associated with the generation of the pcode for the match engine
//
int32_t fModeFlags; // Match Flags. (Case Insensitive, etc.)
+ // Always has high bit (31) set so that flag values
+ // on the paren stack are distinguished from relocatable
+ // pcode addresses.
int32_t fNewModeFlags; // New flags, while compiling (?i, holds state
// until last flag is scanned.
UBool fSetModeFlag; // true for (?ismx, false for (?-ismx
diff --git a/Build/source/libs/icu-xetex/i18n/regeximp.h b/Build/source/libs/icu-xetex/i18n/regeximp.h
index f34aca60a0d..fbf700672ec 100644
--- a/Build/source/libs/icu-xetex/i18n/regeximp.h
+++ b/Build/source/libs/icu-xetex/i18n/regeximp.h
@@ -1,5 +1,5 @@
//
-// Copyright (C) 2002-2004 International Business Machines Corporation
+// Copyright (C) 2002-2005 International Business Machines Corporation
// and others. All rights reserved.
//
// file: regeximp.h
@@ -326,7 +326,7 @@ inline void Regex8BitSet::add(UChar32 c) {
inline void Regex8BitSet::init(const UnicodeSet *s) {
if (s != NULL) {
- for (int i=0; i<=255; i++) {
+ for (int32_t i=0; i<=255; i++) {
if (s->contains(i)) {
this->add(i);
}
diff --git a/Build/source/libs/icu-xetex/i18n/rematch.cpp b/Build/source/libs/icu-xetex/i18n/rematch.cpp
index e26e76c08ab..294833ec718 100644
--- a/Build/source/libs/icu-xetex/i18n/rematch.cpp
+++ b/Build/source/libs/icu-xetex/i18n/rematch.cpp
@@ -271,7 +271,7 @@ int32_t RegexMatcher::end(UErrorCode &err) const {
-int32_t RegexMatcher::end(int group, UErrorCode &err) const {
+int32_t RegexMatcher::end(int32_t group, UErrorCode &err) const {
if (U_FAILURE(err)) {
return -1;
}
@@ -793,7 +793,7 @@ int32_t RegexMatcher::split(const UnicodeString &input,
//
// Loop through the input text, searching for the delimiter pattern
//
- int i;
+ int32_t i;
int32_t numCaptureGroups = fPattern->fGroupMap->size();
for (i=0; ; i++) {
if (i>=destCapacity-1) {
@@ -859,7 +859,7 @@ int32_t RegexMatcher::start(UErrorCode &status) const {
-int32_t RegexMatcher::start(int group, UErrorCode &status) const {
+int32_t RegexMatcher::start(int32_t group, UErrorCode &status) const {
if (U_FAILURE(status)) {
return -1;
}
@@ -911,7 +911,7 @@ REStackFrame *RegexMatcher::resetStack() {
fStack->removeAllElements();
int32_t *iFrame = fStack->reserveBlock(fPattern->fFrameSize, fDeferredStatus);
- int i;
+ int32_t i;
for (i=0; i<fPattern->fFrameSize; i++) {
iFrame[i] = -1;
}
@@ -1049,7 +1049,7 @@ void RegexMatcher::MatchAt(int32_t startIdx, UErrorCode &status) {
{
printf("MatchAt(startIdx=%d)\n", startIdx);
printf("Original Pattern: ");
- int i;
+ int32_t i;
for (i=0; i<fPattern->fPattern.length(); i++) {
printf("%c", fPattern->fPattern.charAt(i));
}
@@ -1181,8 +1181,6 @@ void RegexMatcher::MatchAt(int32_t startIdx, UErrorCode &status) {
break;
}
}
- break;
-
}
break;
diff --git a/Build/source/libs/icu-xetex/i18n/remtrans.h b/Build/source/libs/icu-xetex/i18n/remtrans.h
index c4411d0e164..24633238118 100644
--- a/Build/source/libs/icu-xetex/i18n/remtrans.h
+++ b/Build/source/libs/icu-xetex/i18n/remtrans.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2005, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -61,15 +61,11 @@ public:
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/repattrn.cpp b/Build/source/libs/icu-xetex/i18n/repattrn.cpp
index 7899ac3ebfb..bcd11078c45 100644
--- a/Build/source/libs/icu-xetex/i18n/repattrn.cpp
+++ b/Build/source/libs/icu-xetex/i18n/repattrn.cpp
@@ -3,7 +3,7 @@
//
/*
***************************************************************************
-* Copyright (C) 2002-2004 International Business Machines Corporation *
+* Copyright (C) 2002-2006 International Business Machines Corporation *
* and others. All rights reserved. *
***************************************************************************
*/
@@ -324,6 +324,7 @@ RegexMatcher *RegexPattern::matcher(const UnicodeString &input,
return retMatcher;
}
+#if 0
RegexMatcher *RegexPattern::matcher(const UChar * /*input*/,
UErrorCode &status) const
{
@@ -333,7 +334,7 @@ RegexMatcher *RegexPattern::matcher(const UChar * /*input*/,
}
return NULL;
}
-
+#endif
//---------------------------------------------------------------------
//
diff --git a/Build/source/libs/icu-xetex/i18n/simpletz.cpp b/Build/source/libs/icu-xetex/i18n/simpletz.cpp
index 393d339d285..111ca43f54c 100644
--- a/Build/source/libs/icu-xetex/i18n/simpletz.cpp
+++ b/Build/source/libs/icu-xetex/i18n/simpletz.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2003, International Business Machines Corporation and *
+* Copyright (C) 1997-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -27,6 +27,7 @@
#include "unicode/simpletz.h"
#include "unicode/gregocal.h"
+#include "unicode/smpdtfmt.h"
U_NAMESPACE_BEGIN
@@ -822,7 +823,7 @@ SimpleTimeZone::decodeStartRule(UErrorCode& status)
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
- } else if (startDay > STATICMONTHLENGTH[startMonth]) {
+ } else if (startDay<1 || startDay > STATICMONTHLENGTH[startMonth]) {
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
@@ -877,7 +878,7 @@ SimpleTimeZone::decodeEndRule(UErrorCode& status)
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
- } else if (endDay > STATICMONTHLENGTH[endMonth]) {
+ } else if (endDay<1 || endDay > STATICMONTHLENGTH[endMonth]) {
status = U_ILLEGAL_ARGUMENT_ERROR;
return;
}
diff --git a/Build/source/libs/icu-xetex/i18n/smpdtfmt.cpp b/Build/source/libs/icu-xetex/i18n/smpdtfmt.cpp
index 351973eed03..9ae110321fa 100644
--- a/Build/source/libs/icu-xetex/i18n/smpdtfmt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/smpdtfmt.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -384,13 +384,6 @@ SimpleDateFormat::initialize(const Locale& locale,
{
if (U_FAILURE(status)) return;
- // {sfb} should this be here?
- if (fSymbols->fZoneStringsColCount < 1)
- {
- status = U_INVALID_FORMAT_ERROR; // Check for bogus locale data
- return;
- }
-
// We don't need to check that the row count is >= 1, since all 2d arrays have at
// least one row
fNumberFormat = NumberFormat::createInstance(locale, status);
@@ -542,6 +535,8 @@ SimpleDateFormat::fgPatternIndexToCalendarField[] =
/*v*/ UCAL_ZONE_OFFSET,
/*c*/ UCAL_DAY_OF_WEEK,
/*L*/ UCAL_MONTH,
+ /*Q*/ UCAL_MONTH,
+ /*q*/ UCAL_MONTH,
};
// Map index into pattern character string to DateFormat field number
@@ -558,6 +553,8 @@ SimpleDateFormat::fgPatternIndexToDateFormatField[] = {
/*v*/ UDAT_TIMEZONE_GENERIC_FIELD,
/*c*/ UDAT_STANDALONE_DAY_FIELD,
/*L*/ UDAT_STANDALONE_MONTH_FIELD,
+ /*Q*/ UDAT_QUARTER_FIELD,
+ /*q*/ UDAT_STANDALONE_QUARTER_FIELD,
};
//----------------------------------------------------------------------
@@ -566,15 +563,35 @@ SimpleDateFormat::fgPatternIndexToDateFormatField[] = {
* Append symbols[value] to dst. Make sure the array index is not out
* of bounds.
*/
-inline void
+static inline void
_appendSymbol(UnicodeString& dst,
int32_t value,
const UnicodeString* symbols,
int32_t symbolsCount) {
- U_ASSERT(value >= 0 && value < symbolsCount);
- dst += symbols[value];
+ U_ASSERT(0 <= value && value < symbolsCount);
+ if (0 <= value && value < symbolsCount) {
+ dst += symbols[value];
+ }
+}
+
+//---------------------------------------------------------------------
+inline void SimpleDateFormat::appendGMT(UnicodeString &appendTo, Calendar& cal, UErrorCode& status) const{
+ int32_t value = cal.get(UCAL_ZONE_OFFSET, status) +
+ cal.get(UCAL_DST_OFFSET, status);
+
+ if (value < 0) {
+ appendTo += gGmtMinus;
+ value = -value; // suppress the '-' sign for text display.
+ }else{
+ appendTo += gGmtPlus;
+ }
+
+ zeroPaddingNumber(appendTo, (int32_t)(value/U_MILLIS_PER_HOUR), 2, 2);
+ appendTo += (UChar)0x003A /*':'*/;
+ zeroPaddingNumber(appendTo, (int32_t)((value%U_MILLIS_PER_HOUR)/U_MILLIS_PER_MINUTE), 2, 2);
}
+//---------------------------------------------------------------------
void
SimpleDateFormat::subFormat(UnicodeString &appendTo,
UChar ch,
@@ -748,39 +765,45 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
// then the time zone shows up as "GMT+hh:mm" or "GMT-hh:mm" (where "hh:mm" is the
// offset from GMT) regardless of how many z's were in the pattern symbol
case UDAT_TIMEZONE_FIELD:
- case UDAT_TIMEZONE_GENERIC_FIELD: {
+ case UDAT_TIMEZONE_GENERIC_FIELD: {
UnicodeString str;
- int32_t zoneIndex = fSymbols->getZoneIndex(cal.getTimeZone().getID(str));
- if (zoneIndex == -1) {
- value = cal.get(UCAL_ZONE_OFFSET, status) +
- cal.get(UCAL_DST_OFFSET, status);
-
- if (value < 0) {
- appendTo += gGmtMinus;
- value = -value; // suppress the '-' sign for text display.
- }
- else
- appendTo += gGmtPlus;
-
- zeroPaddingNumber(appendTo, (int32_t)(value/U_MILLIS_PER_HOUR), 2, 2);
- appendTo += (UChar)0x003A /*':'*/;
- zeroPaddingNumber(appendTo, (int32_t)((value%U_MILLIS_PER_HOUR)/U_MILLIS_PER_MINUTE), 2, 2);
+ UnicodeString zid;
+ UnicodeString displayString;
+ zid = fSymbols->getZoneID(cal.getTimeZone().getID(str), zid, status);
+ if(U_FAILURE(status)){
+ break;
+ }
+ if (zid.length() == 0) {
+ appendGMT(appendTo, cal, status);
}
else {
- int ix;
- int zsrc = fSymbols->fZoneStringsColCount;
- if (patternCharIndex == UDAT_TIMEZONE_GENERIC_FIELD && zsrc >= 7) {
- ix = count < 4 ? 6 : 5;
- if (zsrc > 7) {
- ix += 1;
- }
- } else {
- ix = count < 4 ? 2 : 1;
- if (cal.get(UCAL_DST_OFFSET, status) != 0) {
- ix += 2;
- }
- }
- appendTo += fSymbols->fZoneStrings[zoneIndex][ix];
+
+ if (patternCharIndex == UDAT_TIMEZONE_GENERIC_FIELD) {
+ if(count < 4){
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_SHORT_GENERIC, displayString, status);
+ }else{
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_LONG_GENERIC, displayString, status);
+ }
+ } else {
+ if (cal.get(UCAL_DST_OFFSET, status) != 0) {
+ if(count < 4){
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_SHORT_DAYLIGHT, displayString, status);
+ }else{
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_LONG_DAYLIGHT, displayString, status);
+ }
+ }else{
+ if(count < 4){
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_SHORT_STANDARD, displayString, status);
+ }else{
+ fSymbols->getZoneString(zid, DateFormatSymbols::TIMEZONE_LONG_STANDARD, displayString, status);
+ }
+ }
+ }
+ if(displayString.length()==0){
+ appendGMT(appendTo, cal, status);
+ }else{
+ appendTo += displayString;
+ }
}
}
break;
@@ -800,6 +823,29 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo,
}
break;
+ case UDAT_QUARTER_FIELD:
+ if (count >= 4)
+ _appendSymbol(appendTo, value/3, fSymbols->fQuarters,
+ fSymbols->fQuartersCount);
+ else if (count == 3)
+ _appendSymbol(appendTo, value/3, fSymbols->fShortQuarters,
+ fSymbols->fShortQuartersCount);
+ else
+ zeroPaddingNumber(appendTo, (value/3) + 1, count, maxIntCount);
+ break;
+
+ case UDAT_STANDALONE_QUARTER_FIELD:
+ if (count >= 4)
+ _appendSymbol(appendTo, value/3, fSymbols->fStandaloneQuarters,
+ fSymbols->fStandaloneQuartersCount);
+ else if (count == 3)
+ _appendSymbol(appendTo, value/3, fSymbols->fStandaloneShortQuarters,
+ fSymbols->fStandaloneShortQuartersCount);
+ else
+ zeroPaddingNumber(appendTo, (value/3) + 1, count, maxIntCount);
+ break;
+
+
// all of the other pattern symbols can be formatted as simple numbers with
// appropriate zero padding
default:
@@ -1113,6 +1159,84 @@ SimpleDateFormat::parse(const UnicodeString& text, UErrorCode& status) const
}
//----------------------------------------------------------------------
+int32_t SimpleDateFormat::matchQuarterString(const UnicodeString& text,
+ int32_t start,
+ UCalendarDateFields field,
+ const UnicodeString* data,
+ int32_t dataCount,
+ Calendar& cal) const
+{
+ int32_t i = 0;
+ int32_t count = dataCount;
+
+ // There may be multiple strings in the data[] array which begin with
+ // the same prefix (e.g., Cerven and Cervenec (June and July) in Czech).
+ // We keep track of the longest match, and return that. Note that this
+ // unfortunately requires us to test all array elements.
+ int32_t bestMatchLength = 0, bestMatch = -1;
+
+ // {sfb} kludge to support case-insensitive comparison
+ // {markus 2002oct11} do not just use caseCompareBetween because we do not know
+ // the length of the match after case folding
+ // {alan 20040607} don't case change the whole string, since the length
+ // can change
+ // TODO we need a case-insensitive startsWith function
+ UnicodeString lcase, lcaseText;
+ text.extract(start, INT32_MAX, lcaseText);
+ lcaseText.foldCase();
+
+ for (; i < count; ++i)
+ {
+ // Always compare if we have no match yet; otherwise only compare
+ // against potentially better matches (longer strings).
+
+ lcase.fastCopyFrom(data[i]).foldCase();
+ int32_t length = lcase.length();
+
+ if (length > bestMatchLength &&
+ lcaseText.compareBetween(0, length, lcase, 0, length) == 0)
+ {
+ bestMatch = i;
+ bestMatchLength = length;
+ }
+ }
+ if (bestMatch >= 0)
+ {
+ cal.set(field, bestMatch * 3);
+
+ // Once we have a match, we have to determine the length of the
+ // original source string. This will usually be == the length of
+ // the case folded string, but it may differ (e.g. sharp s).
+ lcase.fastCopyFrom(data[bestMatch]).foldCase();
+
+ // Most of the time, the length will be the same as the length
+ // of the string from the locale data. Sometimes it will be
+ // different, in which case we will have to figure it out by
+ // adding a character at a time, until we have a match. We do
+ // this all in one loop, where we try 'len' first (at index
+ // i==0).
+ int32_t len = data[bestMatch].length(); // 99+% of the time
+ int32_t n = text.length() - start;
+ for (i=0; i<=n; ++i) {
+ int32_t j=i;
+ if (i == 0) {
+ j = len;
+ } else if (i == len) {
+ continue; // already tried this when i was 0
+ }
+ text.extract(start, j, lcaseText);
+ lcaseText.foldCase();
+ if (lcase == lcaseText) {
+ return start + j;
+ }
+ }
+ }
+
+ return -start;
+}
+
+//----------------------------------------------------------------------
+
int32_t SimpleDateFormat::matchString(const UnicodeString& text,
int32_t start,
UCalendarDateFields field,
@@ -1253,6 +1377,9 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
if (patternCharIndex == UDAT_HOUR_OF_DAY1_FIELD ||
patternCharIndex == UDAT_HOUR1_FIELD ||
(patternCharIndex == UDAT_MONTH_FIELD && count <= 2) ||
+ (patternCharIndex == UDAT_STANDALONE_MONTH_FIELD && count <= 2) ||
+ (patternCharIndex == UDAT_QUARTER_FIELD && count <= 2) ||
+ (patternCharIndex == UDAT_STANDALONE_QUARTER_FIELD && count <= 2) ||
patternCharIndex == UDAT_YEAR_FIELD ||
patternCharIndex == UDAT_YEAR_WOY_FIELD ||
patternCharIndex == UDAT_FRACTIONAL_SECOND_FIELD)
@@ -1261,16 +1388,20 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
// It would be good to unify this with the obeyCount logic below,
// but that's going to be difficult.
const UnicodeString* src;
+
if (obeyCount) {
if ((start+count) > text.length()) {
return -start;
}
+
text.extractBetween(0, start + count, temp);
src = &temp;
} else {
src = &text;
}
+
parseInt(*src, number, pos, allowNegative);
+
if (pos.getIndex() == parseStart)
return -start;
value = number.getLong();
@@ -1278,7 +1409,12 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
switch (patternCharIndex) {
case UDAT_ERA_FIELD:
+ if (count == 4) {
+ return matchString(text, start, UCAL_ERA, fSymbols->fEraNames, fSymbols->fEraNamesCount, cal);
+ }
+
return matchString(text, start, UCAL_ERA, fSymbols->fEras, fSymbols->fErasCount, cal);
+
case UDAT_YEAR_FIELD:
// If there are 3 or more YEAR pattern characters, this indicates
// that the year value is to be treated literally, without any
@@ -1307,6 +1443,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
}
cal.set(UCAL_YEAR, value);
return pos.getIndex();
+
case UDAT_YEAR_WOY_FIELD:
// Comment is the same as for UDAT_Year_FIELDs - look above
if (count <= 2 && (pos.getIndex() - start) == 2
@@ -1321,6 +1458,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
}
cal.set(UCAL_YEAR_WOY, value);
return pos.getIndex();
+
case UDAT_MONTH_FIELD:
if (count <= 2) // i.e., M or MM.
{
@@ -1329,13 +1467,12 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
// [We computed 'value' above.]
cal.set(UCAL_MONTH, value - 1);
return pos.getIndex();
- }
- else
- {
+ } else {
// count >= 3 // i.e., MMM or MMMM
// Want to be able to parse both short and long forms.
// Try count == 4 first:
int32_t newStart = 0;
+
if ((newStart = matchString(text, start, UCAL_MONTH,
fSymbols->fMonths, fSymbols->fMonthsCount, cal)) > 0)
return newStart;
@@ -1343,12 +1480,36 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
return matchString(text, start, UCAL_MONTH,
fSymbols->fShortMonths, fSymbols->fShortMonthsCount, cal);
}
+
+ case UDAT_STANDALONE_MONTH_FIELD:
+ if (count <= 2) // i.e., L or LL.
+ {
+ // Don't want to parse the month if it is a string
+ // while pattern uses numeric style: M or MM.
+ // [We computed 'value' above.]
+ cal.set(UCAL_MONTH, value - 1);
+ return pos.getIndex();
+ } else {
+ // count >= 3 // i.e., LLL or LLLL
+ // Want to be able to parse both short and long forms.
+ // Try count == 4 first:
+ int32_t newStart = 0;
+
+ if ((newStart = matchString(text, start, UCAL_MONTH,
+ fSymbols->fStandaloneMonths, fSymbols->fStandaloneMonthsCount, cal)) > 0)
+ return newStart;
+ else // count == 4 failed, now try count == 3
+ return matchString(text, start, UCAL_MONTH,
+ fSymbols->fStandaloneShortMonths, fSymbols->fStandaloneShortMonthsCount, cal);
+ }
+
case UDAT_HOUR_OF_DAY1_FIELD:
// [We computed 'value' above.]
if (value == cal.getMaximum(UCAL_HOUR_OF_DAY) + 1)
value = 0;
cal.set(UCAL_HOUR_OF_DAY, value);
return pos.getIndex();
+
case UDAT_FRACTIONAL_SECOND_FIELD:
// Fractional seconds left-justify
i = pos.getIndex() - start;
@@ -1367,6 +1528,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
}
cal.set(UCAL_MILLISECOND, value);
return pos.getIndex();
+
case UDAT_DAY_OF_WEEK_FIELD:
{
// Want to be able to parse both short and long forms.
@@ -1379,17 +1541,77 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
return matchString(text, start, UCAL_DAY_OF_WEEK,
fSymbols->fShortWeekdays, fSymbols->fShortWeekdaysCount, cal);
}
+
+ case UDAT_STANDALONE_DAY_FIELD:
+ {
+ // Want to be able to parse both short and long forms.
+ // Try count == 4 (DDDD) first:
+ int32_t newStart = 0;
+ if ((newStart = matchString(text, start, UCAL_DAY_OF_WEEK,
+ fSymbols->fStandaloneWeekdays, fSymbols->fStandaloneWeekdaysCount, cal)) > 0)
+ return newStart;
+ else // DDDD failed, now try DDD
+ return matchString(text, start, UCAL_DAY_OF_WEEK,
+ fSymbols->fStandaloneShortWeekdays, fSymbols->fStandaloneShortWeekdaysCount, cal);
+ }
+
case UDAT_AM_PM_FIELD:
return matchString(text, start, UCAL_AM_PM, fSymbols->fAmPms, fSymbols->fAmPmsCount, cal);
+
case UDAT_HOUR1_FIELD:
// [We computed 'value' above.]
if (value == cal.getLeastMaximum(UCAL_HOUR)+1)
value = 0;
cal.set(UCAL_HOUR, value);
return pos.getIndex();
+
+ case UDAT_QUARTER_FIELD:
+ if (count <= 2) // i.e., Q or QQ.
+ {
+ // Don't want to parse the month if it is a string
+ // while pattern uses numeric style: Q or QQ.
+ // [We computed 'value' above.]
+ cal.set(UCAL_MONTH, (value - 1) * 3);
+ return pos.getIndex();
+ } else {
+ // count >= 3 // i.e., QQQ or QQQQ
+ // Want to be able to parse both short and long forms.
+ // Try count == 4 first:
+ int32_t newStart = 0;
+
+ if ((newStart = matchQuarterString(text, start, UCAL_MONTH,
+ fSymbols->fQuarters, fSymbols->fQuartersCount, cal)) > 0)
+ return newStart;
+ else // count == 4 failed, now try count == 3
+ return matchQuarterString(text, start, UCAL_MONTH,
+ fSymbols->fShortQuarters, fSymbols->fShortQuartersCount, cal);
+ }
+
+ case UDAT_STANDALONE_QUARTER_FIELD:
+ if (count <= 2) // i.e., q or qq.
+ {
+ // Don't want to parse the month if it is a string
+ // while pattern uses numeric style: q or q.
+ // [We computed 'value' above.]
+ cal.set(UCAL_MONTH, (value - 1) * 3);
+ return pos.getIndex();
+ } else {
+ // count >= 3 // i.e., qqq or qqqq
+ // Want to be able to parse both short and long forms.
+ // Try count == 4 first:
+ int32_t newStart = 0;
+
+ if ((newStart = matchQuarterString(text, start, UCAL_MONTH,
+ fSymbols->fStandaloneQuarters, fSymbols->fStandaloneQuartersCount, cal)) > 0)
+ return newStart;
+ else // count == 4 failed, now try count == 3
+ return matchQuarterString(text, start, UCAL_MONTH,
+ fSymbols->fStandaloneShortQuarters, fSymbols->fStandaloneShortQuartersCount, cal);
+ }
+
case UDAT_TIMEZONE_FIELD:
case UDAT_TIMEZONE_RFC_FIELD:
- case UDAT_TIMEZONE_GENERIC_FIELD:
+ case UDAT_TIMEZONE_GENERIC_FIELD:
{
// First try to parse generic forms such as GMT-07:00. Do this first
// in case localized DateFormatZoneData contains the string "GMT"
@@ -1457,7 +1679,8 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
// the locale data from the DateFormatZoneData strings.
// Want to be able to parse both short and long forms.
// !!! side effect, might set parsedZoneString
- int32_t result = subParseZoneString(text, start, cal);
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t result = subParseZoneString(text, start, cal, status);
if (result != 0) {
return result;
}
@@ -1465,8 +1688,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
// As a last resort, look for numeric timezones of the form
// [+-]hhmm as specified by RFC 822. This code is actually
// a little more permissive than RFC 822. It will try to do
- // its best with numbers that aren't strictly 4 digits long.
- UErrorCode status = U_ZERO_ERROR;
+ // its best with numbers that aren't strictly 4 digits long
DecimalFormat fmt(UNICODE_STRING_SIMPLE("+####;-####"), status);
if(U_FAILURE(status))
return -start;
@@ -1510,6 +1732,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
// All efforts to parse a zone failed.
return -start;
}
+
default:
// Handle "generic" fields
int32_t parseStart = pos.getIndex();
@@ -1532,105 +1755,57 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC
}
}
-int32_t
-SimpleDateFormat::getTimeZoneIndex(const UnicodeString& id) const
-{
- int32_t i = fSymbols->fZoneStringsRowCount;
- while (--i >= 0 && fSymbols->fZoneStrings[i][0] != id);
- return i;
-}
-
int32_t
-SimpleDateFormat::matchZoneString(const UnicodeString& text, int32_t start, int32_t zi) const
-{
- // ### TODO markus 20021014: This use of caseCompare() will fail
- // if the text contains a character that case-folds into multiple
- // characters. In that case, zs->length() may be too long, and it does not match.
- // We need a case-insensitive version of startsWith().
- // There are similar cases of such caseCompare() uses elsewhere in ICU.
-
- int32_t i = fSymbols->fZoneStringsColCount;
- const int32_t zscc = i;
-
- while (--i >= 1) {
- if (i == 5 && (zscc == 6 || zscc >= 8)) { // skip city name if we have it
- continue;
- }
-
- // Checking long and short zones [1 & 2],
- // and long and short daylight [3 & 4],
- // and long and short generic [6 & 7]
- const UnicodeString& zs = fSymbols->fZoneStrings[zi][i];
- if (zs.length() > 0 && 0 == text.caseCompare(start, zs.length(), zs, 0)) {
- break;
- }
- }
- return i;
-}
-
-/**
- * find time zone 'text' matched zoneStrings and set cal.
- * includes optimizations for calendar and default time zones
- */
-int32_t
-SimpleDateFormat::subParseZoneString(const UnicodeString& text, int32_t start, Calendar& cal) const
+SimpleDateFormat::subParseZoneString(const UnicodeString& text, int32_t start, Calendar& cal, UErrorCode& status) const
{
// At this point, check for named time zones by looking through
// the locale data from the DateFormatZoneData strings.
// Want to be able to parse both short and long forms.
- TimeZone *tz = NULL;
- UnicodeString id;
- int32_t zoneIndex = -1;
- int32_t zi;
-
// optimize for calendar's current time zone
- zi = getTimeZoneIndex(getTimeZone().getID(id));
- if (zi != -1) {
- int32_t j = matchZoneString(text, start, zi);
- if (j > 0) {
+ TimeZone *tz = NULL;
+ UnicodeString id;
+ UnicodeString zid, value;
+ DateFormatSymbols::TimeZoneTranslationType type;
+ fSymbols->getZoneID(getTimeZone().getID(id), zid, status);
+ if(zid.length() > 0){
+ fSymbols->getZoneType(zid, text, start, type, value, status);
tz = getTimeZone().clone();
- zoneIndex = j;
- }
}
-
+
// optimize for default time zone, assume different from caller
if (tz == NULL) {
- TimeZone* defaultZone = TimeZone::createDefault();
- zi = getTimeZoneIndex(defaultZone->getID(id));
- if (zi != -1) {
- int32_t j = matchZoneString(text, start, zi);
- if (j > 0) {
- zoneIndex = j;
- tz = defaultZone;
- }
- }
- if (tz == NULL) {
- delete defaultZone;
- }
+ TimeZone* defaultZone = TimeZone::createDefault();
+ fSymbols->getZoneID(defaultZone->getID(id), zid, status);
+ if(zid.length() > 0){
+ fSymbols->getZoneType(zid, text, start, type, value, status);
+ tz = defaultZone;
+ }
+ if (tz == NULL) {
+ delete defaultZone;
+ }
}
// still no luck, check all time zone strings
- if (tz == NULL) {
- for (zi = 0; zi < fSymbols->fZoneStringsRowCount; zi++) {
- int32_t j = matchZoneString(text, start, zi);
- if (j > 0) {
- tz = TimeZone::createTimeZone(fSymbols->fZoneStrings[zi][0]);
- zoneIndex = j;
- break;
+ if(tz == NULL){
+ fSymbols->findZoneIDTypeValue(zid, text, start, type, value, status);
+ if(zid.length() > 0){
+ tz = TimeZone::createTimeZone(zid);
}
- }
}
+ if(U_FAILURE(status)){
+ return 0;
+ }
if (tz != NULL) { // Matched any ?
// always set zone offset, needed to get correct hour in wall time
// when checking daylight savings
cal.set(UCAL_ZONE_OFFSET, tz->getRawOffset());
- if (zoneIndex < 3) {
+ if (type==DateFormatSymbols::TIMEZONE_SHORT_STANDARD || type==DateFormatSymbols::TIMEZONE_LONG_STANDARD ) {
// standard time
cal.set(UCAL_DST_OFFSET, 0);
delete tz; tz = NULL;
- } else if (zoneIndex < 5) {
+ } else if (type==DateFormatSymbols::TIMEZONE_SHORT_DAYLIGHT || type==DateFormatSymbols::TIMEZONE_LONG_DAYLIGHT ) {
// daylight time
// !!! todo - no getDSTSavings() in ICU's timezone
// use the correct DST SAVINGS for the zone.
@@ -1646,9 +1821,10 @@ SimpleDateFormat::subParseZoneString(const UnicodeString& text, int32_t start, C
((SimpleDateFormat*)this)->parsedTimeZone = tz;
}
- return start + fSymbols->fZoneStrings[zi][zoneIndex].length();
+ return start + value.length();
}
+
// complete failure
return 0;
}
diff --git a/Build/source/libs/icu-xetex/i18n/sortkey.cpp b/Build/source/libs/icu-xetex/i18n/sortkey.cpp
index 625468418e3..f6c3cf5f330 100644
--- a/Build/source/libs/icu-xetex/i18n/sortkey.cpp
+++ b/Build/source/libs/icu-xetex/i18n/sortkey.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2003, International Business Machines Corporation and *
+* Copyright (C) 1996-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*/
@@ -392,4 +392,12 @@ CollationKey::hashCode() const
U_NAMESPACE_END
+U_CAPI int32_t U_EXPORT2
+ucol_keyHashCode(const uint8_t *key,
+ int32_t length)
+{
+ CollationKey newKey(key, length);
+ return newKey.hashCode();
+}
+
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/stsearch.cpp b/Build/source/libs/icu-xetex/i18n/stsearch.cpp
index 0b2b08c9d26..7815f08131d 100644
--- a/Build/source/libs/icu-xetex/i18n/stsearch.cpp
+++ b/Build/source/libs/icu-xetex/i18n/stsearch.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2003 IBM and others. All rights reserved.
+* Copyright (C) 2001-2006 IBM and others. All rights reserved.
**********************************************************************
* Date Name Description
* 03/22/2000 helena Creation.
@@ -21,12 +21,12 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(StringSearch)
// public constructors and destructors -----------------------------------
-StringSearch::StringSearch(const UnicodeString &pattern,
+StringSearch::StringSearch(const UnicodeString &pattern,
const UnicodeString &text,
- const Locale &locale,
+ const Locale &locale,
BreakIterator *breakiter,
UErrorCode &status) :
- SearchIterator(text, breakiter),
+ SearchIterator(text, breakiter),
m_collator_(),
m_pattern_(pattern)
{
@@ -35,9 +35,9 @@ StringSearch::StringSearch(const UnicodeString &pattern,
return;
}
- m_strsrch_ = usearch_open(m_pattern_.getBuffer(), m_pattern_.length(),
- m_text_.getBuffer(), m_text_.length(),
- locale.getName(), (UBreakIterator *)breakiter,
+ m_strsrch_ = usearch_open(m_pattern_.getBuffer(), m_pattern_.length(),
+ m_text_.getBuffer(), m_text_.length(),
+ locale.getName(), (UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
@@ -46,29 +46,26 @@ StringSearch::StringSearch(const UnicodeString &pattern,
// wrapper around the internal collator and rules, which (here) are
// owned by this stringsearch object. this means 1) it's destructor
// _should not_ delete the ucollator or rules, and 2) changes made
- // to the exposed collator (setStrength etc) _should_ modify the
+ // to the exposed collator (setStrength etc) _should_ modify the
// ucollator. thus the collator is not a copy-on-write alias, and it
// needs to distinguish itself not merely from 'stand alone' colators
// but also from copy-on-write ones. it needs additional state, which
// setUCollator should set.
if (U_SUCCESS(status)) {
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
}
-StringSearch::StringSearch(const UnicodeString &pattern,
+StringSearch::StringSearch(const UnicodeString &pattern,
const UnicodeString &text,
- RuleBasedCollator *coll,
+ RuleBasedCollator *coll,
BreakIterator *breakiter,
UErrorCode &status) :
- SearchIterator(text, breakiter),
+ SearchIterator(text, breakiter),
m_collator_(),
m_pattern_(pattern)
{
@@ -81,32 +78,29 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_strsrch_ = NULL;
return;
}
- m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
- m_pattern_.length(),
- m_text_.getBuffer(),
- m_text_.length(), coll->ucollator,
- (UBreakIterator *)breakiter,
+ m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
+ m_pattern_.length(),
+ m_text_.getBuffer(),
+ m_text_.length(), coll->ucollator,
+ (UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
if (U_SUCCESS(status)) {
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
}
-StringSearch::StringSearch(const UnicodeString &pattern,
+StringSearch::StringSearch(const UnicodeString &pattern,
CharacterIterator &text,
- const Locale &locale,
+ const Locale &locale,
BreakIterator *breakiter,
UErrorCode &status) :
- SearchIterator(text, breakiter),
+ SearchIterator(text, breakiter),
m_collator_(),
m_pattern_(pattern)
{
@@ -114,19 +108,16 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_strsrch_ = NULL;
return;
}
- m_strsrch_ = usearch_open(m_pattern_.getBuffer(), m_pattern_.length(),
- m_text_.getBuffer(), m_text_.length(),
- locale.getName(), (UBreakIterator *)breakiter,
+ m_strsrch_ = usearch_open(m_pattern_.getBuffer(), m_pattern_.length(),
+ m_text_.getBuffer(), m_text_.length(),
+ locale.getName(), (UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
if (U_SUCCESS(status)) {
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -134,10 +125,10 @@ StringSearch::StringSearch(const UnicodeString &pattern,
StringSearch::StringSearch(const UnicodeString &pattern,
CharacterIterator &text,
- RuleBasedCollator *coll,
+ RuleBasedCollator *coll,
BreakIterator *breakiter,
UErrorCode &status) :
- SearchIterator(text, breakiter),
+ SearchIterator(text, breakiter),
m_collator_(),
m_pattern_(pattern)
{
@@ -150,21 +141,18 @@ StringSearch::StringSearch(const UnicodeString &pattern,
m_strsrch_ = NULL;
return;
}
- m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
- m_pattern_.length(),
- m_text_.getBuffer(),
- m_text_.length(), coll->ucollator,
- (UBreakIterator *)breakiter,
+ m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
+ m_pattern_.length(),
+ m_text_.getBuffer(),
+ m_text_.length(), coll->ucollator,
+ (UBreakIterator *)breakiter,
&status);
uprv_free(m_search_);
m_search_ = NULL;
if (U_SUCCESS(status)) {
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
// m_search_ has been created by the base SearchIterator class
m_search_ = m_strsrch_->search;
}
@@ -176,31 +164,30 @@ StringSearch::StringSearch(const StringSearch &that) :
m_pattern_(that.m_pattern_)
{
UErrorCode status = U_ZERO_ERROR;
+
+ // Free m_search_ from the superclass
+ uprv_free(m_search_);
+ m_search_ = NULL;
+
if (that.m_strsrch_ == NULL) {
+ // This was not a good copy
m_strsrch_ = NULL;
- status = U_ILLEGAL_ARGUMENT_ERROR;
}
else {
- m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
- m_pattern_.length(),
- m_text_.getBuffer(),
- m_text_.length(),
- that.m_strsrch_->collator,
- (UBreakIterator *)that.m_breakiterator_,
+ // Make a deep copy
+ m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
+ m_pattern_.length(),
+ m_text_.getBuffer(),
+ m_text_.length(),
+ that.m_strsrch_->collator,
+ (UBreakIterator *)that.m_breakiterator_,
&status);
- }
- uprv_free(m_search_);
- m_search_ = NULL;
-
- if (U_SUCCESS(status)) {
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
- // m_search_ has been created by the base SearchIterator class
- m_search_ = m_strsrch_->search;
- m_breakiterator_ = that.m_breakiterator_;
+ if (U_SUCCESS(status)) {
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
+ // m_search_ has been created by the base SearchIterator class
+ m_search_ = m_strsrch_->search;
+ }
}
}
@@ -227,17 +214,14 @@ StringSearch & StringSearch::operator=(const StringSearch &that)
m_pattern_ = that.m_pattern_;
// all m_search_ in the parent class is linked up with m_strsrch_
usearch_close(m_strsrch_);
- m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
- m_pattern_.length(),
- m_text_.getBuffer(),
- m_text_.length(),
- that.m_strsrch_->collator,
+ m_strsrch_ = usearch_openFromCollator(m_pattern_.getBuffer(),
+ m_pattern_.length(),
+ m_text_.getBuffer(),
+ m_text_.length(),
+ that.m_strsrch_->collator,
NULL, &status);
- int32_t length;
- const UChar *rules = ucol_getRules(m_strsrch_->collator, &length);
- m_collation_rules_.setTo(rules, length);
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
m_search_ = m_strsrch_->search;
}
return *this;
@@ -276,7 +260,7 @@ void StringSearch::setText(const UnicodeString &text, UErrorCode &status)
usearch_setText(m_strsrch_, text.getBuffer(), text.length(), &status);
}
}
-
+
void StringSearch::setText(CharacterIterator &text, UErrorCode &status)
{
if (U_SUCCESS(status)) {
@@ -289,18 +273,17 @@ RuleBasedCollator * StringSearch::getCollator() const
{
return (RuleBasedCollator *)&m_collator_;
}
-
+
void StringSearch::setCollator(RuleBasedCollator *coll, UErrorCode &status)
{
if (U_SUCCESS(status)) {
usearch_setCollator(m_strsrch_, coll->getUCollator(), &status);
- m_collation_rules_.setTo(coll->getRules());
- m_collator_.setUCollator((UCollator *)m_strsrch_->collator,
- &m_collation_rules_);
+ // Alias the collator
+ m_collator_.setUCollator((UCollator *)m_strsrch_->collator);
}
}
-
-void StringSearch::setPattern(const UnicodeString &pattern,
+
+void StringSearch::setPattern(const UnicodeString &pattern,
UErrorCode &status)
{
if (U_SUCCESS(status)) {
@@ -309,7 +292,7 @@ void StringSearch::setPattern(const UnicodeString &pattern,
&status);
}
}
-
+
const UnicodeString & StringSearch::getPattern() const
{
return m_pattern_;
@@ -325,8 +308,8 @@ void StringSearch::reset()
SearchIterator * StringSearch::safeClone(void) const
{
UErrorCode status = U_ZERO_ERROR;
- StringSearch *result = new StringSearch(m_pattern_, m_text_,
- (RuleBasedCollator *)&m_collator_,
+ StringSearch *result = new StringSearch(m_pattern_, m_text_,
+ (RuleBasedCollator *)&m_collator_,
m_breakiterator_,
status);
/* test for NULL */
@@ -342,7 +325,7 @@ SearchIterator * StringSearch::safeClone(void) const
}
return result;
}
-
+
// protected method -------------------------------------------------
int32_t StringSearch::handleNext(int32_t position, UErrorCode &status)
@@ -350,27 +333,27 @@ int32_t StringSearch::handleNext(int32_t position, UErrorCode &status)
// values passed here are already in the pre-shift position
if (U_SUCCESS(status)) {
if (m_strsrch_->pattern.CELength == 0) {
- m_search_->matchedIndex =
- m_search_->matchedIndex == USEARCH_DONE ?
+ m_search_->matchedIndex =
+ m_search_->matchedIndex == USEARCH_DONE ?
getOffset() : m_search_->matchedIndex + 1;
m_search_->matchedLength = 0;
- ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex,
+ ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex,
&status);
if (m_search_->matchedIndex == m_search_->textLength) {
m_search_->matchedIndex = USEARCH_DONE;
}
}
else {
- // looking at usearch.cpp, this part is shifted out to
+ // looking at usearch.cpp, this part is shifted out to
// StringSearch instead of SearchIterator because m_strsrch_ is
// not accessible in SearchIterator
- if (position + m_strsrch_->pattern.defaultShiftSize
+ if (position + m_strsrch_->pattern.defaultShiftSize
> m_search_->textLength) {
setMatchNotFound();
return USEARCH_DONE;
}
if (m_search_->matchedLength <= 0) {
- // the flipping direction issue has already been handled
+ // the flipping direction issue has already been handled
// in next()
// for boundary check purposes. this will ensure that the
// next match will not preceed the current offset
@@ -393,19 +376,19 @@ int32_t StringSearch::handleNext(int32_t position, UErrorCode &status)
}
if (m_breakiterator_ == NULL
#if !UCONFIG_NO_BREAK_ITERATION
- ||
+ ||
m_search_->matchedIndex == USEARCH_DONE ||
(m_breakiterator_->isBoundary(m_search_->matchedIndex) &&
- m_breakiterator_->isBoundary(m_search_->matchedIndex +
+ m_breakiterator_->isBoundary(m_search_->matchedIndex +
m_search_->matchedLength))
#endif
) {
if (m_search_->matchedIndex == USEARCH_DONE) {
- ucol_setOffset(m_strsrch_->textIter,
+ ucol_setOffset(m_strsrch_->textIter,
m_search_->textLength, &status);
}
else {
- ucol_setOffset(m_strsrch_->textIter,
+ ucol_setOffset(m_strsrch_->textIter,
m_search_->matchedIndex, &status);
}
return m_search_->matchedIndex;
@@ -421,24 +404,24 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status)
// values passed here are already in the pre-shift position
if (U_SUCCESS(status)) {
if (m_strsrch_->pattern.CELength == 0) {
- m_search_->matchedIndex =
- (m_search_->matchedIndex == USEARCH_DONE ? getOffset() :
+ m_search_->matchedIndex =
+ (m_search_->matchedIndex == USEARCH_DONE ? getOffset() :
m_search_->matchedIndex);
if (m_search_->matchedIndex == 0) {
setMatchNotFound();
}
else {
m_search_->matchedIndex --;
- ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex,
+ ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex,
&status);
m_search_->matchedLength = 0;
}
}
else {
- // looking at usearch.cpp, this part is shifted out to
+ // looking at usearch.cpp, this part is shifted out to
// StringSearch instead of SearchIterator because m_strsrch_ is
// not accessible in SearchIterator
- if (!m_search_->isOverlap &&
+ if (!m_search_->isOverlap &&
position - m_strsrch_->pattern.defaultShiftSize < 0) {
setMatchNotFound();
return USEARCH_DONE;
@@ -456,10 +439,10 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status)
}
if (m_breakiterator_ == NULL
#if !UCONFIG_NO_BREAK_ITERATION
- ||
+ ||
m_search_->matchedIndex == USEARCH_DONE ||
(m_breakiterator_->isBoundary(m_search_->matchedIndex) &&
- m_breakiterator_->isBoundary(m_search_->matchedIndex +
+ m_breakiterator_->isBoundary(m_search_->matchedIndex +
m_search_->matchedLength))
#endif
) {
@@ -467,7 +450,7 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status)
}
}
}
-
+
return m_search_->matchedIndex;
}
return USEARCH_DONE;
diff --git a/Build/source/libs/icu-xetex/i18n/tblcoll.cpp b/Build/source/libs/icu-xetex/i18n/tblcoll.cpp
index 0884f27ad82..779cf4d1c97 100644
--- a/Build/source/libs/icu-xetex/i18n/tblcoll.cpp
+++ b/Build/source/libs/icu-xetex/i18n/tblcoll.cpp
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines Corporation and *
+* Copyright (C) 1996-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
******************************************************************************
*/
@@ -80,9 +80,9 @@ RuleBasedCollator::RuleBasedCollator(const RuleBasedCollator& that)
: Collator(that)
, dataIsOwned(FALSE)
, isWriteThroughAlias(FALSE)
-, ucollator(that.ucollator)
-, urulestring(that.urulestring)
+, ucollator(NULL)
{
+ RuleBasedCollator::operator=(that);
}
RuleBasedCollator::RuleBasedCollator(const UnicodeString& rules,
@@ -128,33 +128,25 @@ RuleBasedCollator::RuleBasedCollator(const UnicodeString& rules,
}
RuleBasedCollator::RuleBasedCollator(const uint8_t *bin, int32_t length,
const RuleBasedCollator *base,
- UErrorCode &status) : dataIsOwned(TRUE)
+ UErrorCode &status) :
+dataIsOwned(TRUE),
+isWriteThroughAlias(FALSE)
{
ucollator = ucol_openBinary(bin, length, base->ucollator, &status);
- urulestring = NULL;
}
void
-RuleBasedCollator::setRuleStringFromCollator(UErrorCode& status)
+RuleBasedCollator::setRuleStringFromCollator()
{
- urulestring = NULL;
- if (U_SUCCESS(status))
- {
- int32_t length;
- const UChar *r = ucol_getRules(ucollator, &length);
+ int32_t length;
+ const UChar *r = ucol_getRules(ucollator, &length);
- if (length > 0) {
- // alias the rules string
- urulestring = new UnicodeString(TRUE, r, length);
- }
- else {
- urulestring = new UnicodeString();
- }
- /* test for NULL */
- if (urulestring == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
+ if (r && length > 0) {
+ // alias the rules string
+ urulestring.setTo(TRUE, r, length);
+ }
+ else {
+ urulestring.truncate(0); // Clear string.
}
}
@@ -165,7 +157,6 @@ RuleBasedCollator::construct(const UnicodeString& rules,
UColAttributeValue decompositionMode,
UErrorCode& status)
{
- urulestring = 0;
ucollator = ucol_openRules(rules.getBuffer(), rules.length(),
decompositionMode, collationStrength,
NULL, &status);
@@ -173,7 +164,14 @@ RuleBasedCollator::construct(const UnicodeString& rules,
dataIsOwned = TRUE; // since we own a collator now, we need to get rid of it
isWriteThroughAlias = FALSE;
- setRuleStringFromCollator(status);
+ if(ucollator == NULL) {
+ if(U_SUCCESS(status)) {
+ status = U_MEMORY_ALLOCATION_ERROR;
+ }
+ return; // Failure
+ }
+
+ setRuleStringFromCollator();
}
/* RuleBasedCollator public destructor ----------------------------------- */
@@ -183,10 +181,8 @@ RuleBasedCollator::~RuleBasedCollator()
if (dataIsOwned)
{
ucol_close(ucollator);
- delete urulestring;
}
ucollator = 0;
- urulestring = 0;
}
/* RuleBaseCollator public methods --------------------------------------- */
@@ -228,14 +224,19 @@ RuleBasedCollator& RuleBasedCollator::operator=(const RuleBasedCollator& that)
if (dataIsOwned)
{
ucol_close(ucollator);
- ucollator = NULL;
- delete urulestring;
}
- dataIsOwned = FALSE;
+ urulestring.truncate(0); // empty the rule string
+ dataIsOwned = TRUE;
isWriteThroughAlias = FALSE;
- ucollator = that.ucollator;
- urulestring = that.urulestring;
+
+ UErrorCode intStatus = U_ZERO_ERROR;
+ int32_t buffersize = U_COL_SAFECLONE_BUFFERSIZE;
+ ucollator = ucol_safeClone(that.ucollator, NULL, &buffersize,
+ &intStatus);
+ if (U_SUCCESS(intStatus)) {
+ setRuleStringFromCollator();
+ }
}
return *this;
}
@@ -243,7 +244,7 @@ RuleBasedCollator& RuleBasedCollator::operator=(const RuleBasedCollator& that)
// aliasing, not write-through
Collator* RuleBasedCollator::clone() const
{
- return new RuleBasedCollator(*this);
+ return new RuleBasedCollator(*this);
}
CollationElementIterator* RuleBasedCollator::createCollationElementIterator
@@ -289,7 +290,7 @@ CollationElementIterator* RuleBasedCollator::createCollationElementIterator
*/
const UnicodeString& RuleBasedCollator::getRules() const
{
- return (*urulestring);
+ return urulestring;
}
void RuleBasedCollator::getRules(UColRuleOption delta, UnicodeString &buffer)
@@ -532,10 +533,11 @@ Collator* RuleBasedCollator::safeClone(void)
return NULL;
}
- UnicodeString *r = new UnicodeString(*urulestring);
- RuleBasedCollator *result = new RuleBasedCollator(ucol, r);
+ RuleBasedCollator *result = new RuleBasedCollator();
+ result->ucollator = ucol;
result->dataIsOwned = TRUE;
result->isWriteThroughAlias = FALSE;
+ setRuleStringFromCollator();
return result;
}
@@ -616,21 +618,13 @@ RuleBasedCollator::setLocales(const Locale& requestedLocale, const Locale& valid
// RuleBaseCollatorNew private constructor ----------------------------------
RuleBasedCollator::RuleBasedCollator()
- : dataIsOwned(FALSE), isWriteThroughAlias(FALSE), ucollator(0), urulestring(0)
+ : dataIsOwned(FALSE), isWriteThroughAlias(FALSE), ucollator(NULL)
{
}
-RuleBasedCollator::RuleBasedCollator(UCollator *collator,
- UnicodeString *rule)
- : dataIsOwned(FALSE), isWriteThroughAlias(FALSE), urulestring(0)
-{
- ucollator = collator;
- urulestring = rule;
-}
-
RuleBasedCollator::RuleBasedCollator(const Locale& desiredLocale,
- UErrorCode& status) :
- dataIsOwned(FALSE), ucollator(0), urulestring(0)
+ UErrorCode& status)
+ : dataIsOwned(FALSE), isWriteThroughAlias(FALSE), ucollator(NULL)
{
if (U_FAILURE(status))
return;
@@ -672,22 +666,7 @@ RuleBasedCollator::RuleBasedCollator(const Locale& desiredLocale,
if (U_SUCCESS(status))
{
- int32_t length;
- const UChar *r = ucol_getRules(ucollator, &length);
- if (length > 0) {
- // alias the rules string
- urulestring = new UnicodeString(TRUE, r, length);
- }
- else {
- urulestring = new UnicodeString();
- }
- /* test for NULL */
- if (urulestring == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
- dataIsOwned = TRUE;
- isWriteThroughAlias = FALSE;
+ setRuleStringFromCollator();
}
}
@@ -710,7 +689,7 @@ RuleBasedCollator::checkOwned() {
if (!(dataIsOwned || isWriteThroughAlias)) {
UErrorCode status = U_ZERO_ERROR;
ucollator = ucol_safeClone(ucollator, NULL, NULL, &status);
- setRuleStringFromCollator(status);
+ setRuleStringFromCollator();
dataIsOwned = TRUE;
isWriteThroughAlias = FALSE;
}
diff --git a/Build/source/libs/icu-xetex/i18n/timezone.cpp b/Build/source/libs/icu-xetex/i18n/timezone.cpp
index 79ecf4feef8..98551f62de4 100644
--- a/Build/source/libs/icu-xetex/i18n/timezone.cpp
+++ b/Build/source/libs/icu-xetex/i18n/timezone.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and *
+* Copyright (C) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -527,6 +527,16 @@ TimeZone::initDefault()
hostStrID.truncate(hostStrID.length()-1);
default_zone = createSystemTimeZone(hostStrID);
+ int32_t hostIDLen = hostStrID.length();
+ if (default_zone != NULL && rawOffset != default_zone->getRawOffset()
+ && (3 <= hostIDLen && hostIDLen <= 4))
+ {
+ // Uh oh. This probably wasn't a good id.
+ // It was probably an ambiguous abbreviation
+ delete default_zone;
+ default_zone = NULL;
+ }
+
#if 0
// NOTE: As of ICU 2.8, we no longer have an offsets table, since
// historical zones can change offset over time. If we add
@@ -1073,7 +1083,15 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, UnicodeString& resu
{
return getDisplayName(daylight,style, Locale::getDefault(), result);
}
-
+//--------------------------------------
+int32_t
+TimeZone::getDSTSavings()const {
+ if (useDaylightTime()) {
+ return 3600000;
+ }
+ return 0;
+}
+//---------------------------------------
UnicodeString&
TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& locale, UnicodeString& result) const
{
@@ -1100,14 +1118,17 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& local
// and hence the same display name.
// We don't cache these because they're small and cheap to create.
UnicodeString tempID;
- SimpleTimeZone *tz = daylight ?
- // For the pure-DST zone, we use JANUARY and DECEMBER
-
- new SimpleTimeZone(getRawOffset(), getID(tempID),
- UCAL_JANUARY , 1, 0, 0,
- UCAL_DECEMBER , 31, 0, U_MILLIS_PER_DAY, status) :
- new SimpleTimeZone(getRawOffset(), getID(tempID));
-
+ SimpleTimeZone *tz = NULL;
+ if(daylight && useDaylightTime()){
+ // For the pure-DST zone, we use JANUARY and DECEMBER
+ int savings = getDSTSavings();
+ tz = new SimpleTimeZone(getRawOffset(), getID(tempID),
+ UCAL_JANUARY, 1, 0, 0,
+ UCAL_FEBRUARY, 1, 0, 0,
+ savings, status);
+ }else{
+ tz = new SimpleTimeZone(getRawOffset(), getID(tempID));
+ }
format.applyPattern(style == LONG ? ZZZZ_STR : Z_STR);
Calendar *myCalendar = (Calendar*)format.getCalendar();
myCalendar->setTimeZone(*tz); // copy
@@ -1115,7 +1136,7 @@ TimeZone::getDisplayName(UBool daylight, EDisplayType style, const Locale& local
delete tz;
FieldPosition pos(FieldPosition::DONT_CARE);
- return format.format(UDate(196262345678.), result, pos); // Must use a valid date here.
+ return format.format(UDate(864000000L), result, pos); // Must use a valid date here.
}
diff --git a/Build/source/libs/icu-xetex/i18n/titletrn.h b/Build/source/libs/icu-xetex/i18n/titletrn.h
index 8493e54d8db..ae08db88f63 100644
--- a/Build/source/libs/icu-xetex/i18n/titletrn.h
+++ b/Build/source/libs/icu-xetex/i18n/titletrn.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -59,15 +59,11 @@ class U_I18N_API TitlecaseTransliterator : public CaseMapTransliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/tolowtrn.h b/Build/source/libs/icu-xetex/i18n/tolowtrn.h
index 6fd3d51ad8c..77af67a6a27 100644
--- a/Build/source/libs/icu-xetex/i18n/tolowtrn.h
+++ b/Build/source/libs/icu-xetex/i18n/tolowtrn.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -57,15 +57,11 @@ class U_I18N_API LowercaseTransliterator : public CaseMapTransliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
};
diff --git a/Build/source/libs/icu-xetex/i18n/toupptrn.h b/Build/source/libs/icu-xetex/i18n/toupptrn.h
index 18a501c7480..e0f4ef5db19 100644
--- a/Build/source/libs/icu-xetex/i18n/toupptrn.h
+++ b/Build/source/libs/icu-xetex/i18n/toupptrn.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -57,15 +57,11 @@ class U_I18N_API UppercaseTransliterator : public CaseMapTransliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
};
diff --git a/Build/source/libs/icu-xetex/i18n/translit.cpp b/Build/source/libs/icu-xetex/i18n/translit.cpp
index 3469fe6feea..8a990f40bcd 100644
--- a/Build/source/libs/icu-xetex/i18n/translit.cpp
+++ b/Build/source/libs/icu-xetex/i18n/translit.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -107,7 +107,7 @@ UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(Transliterator)
* Return TRUE if the given UTransPosition is valid for text of
* the given length.
*/
-inline UBool positionIsValid(UTransPosition& index, int32_t len) {
+static inline UBool positionIsValid(UTransPosition& index, int32_t len) {
return !(index.contextStart < 0 ||
index.start < index.contextStart ||
index.limit < index.start ||
@@ -126,17 +126,20 @@ inline UBool positionIsValid(UTransPosition& index, int32_t len) {
Transliterator::Transliterator(const UnicodeString& theID,
UnicodeFilter* adoptedFilter) :
UObject(), ID(theID), filter(adoptedFilter),
- maximumContextLength(0) {
-
- // NUL-terminate the ID string
- ID.getTerminatedBuffer();
+ maximumContextLength(0)
+{
+ // NUL-terminate the ID string, which is a non-aliased copy.
+ ID.append((UChar)0);
+ ID.truncate(ID.length()-1);
}
/**
* Destructor.
*/
Transliterator::~Transliterator() {
- delete filter;
+ if (filter) {
+ delete filter;
+ }
}
/**
@@ -144,10 +147,11 @@ Transliterator::~Transliterator() {
*/
Transliterator::Transliterator(const Transliterator& other) :
UObject(other), ID(other.ID), filter(0),
- maximumContextLength(other.maximumContextLength) {
-
- // NUL-terminate the ID string
- ID.getTerminatedBuffer();
+ maximumContextLength(other.maximumContextLength)
+{
+ // NUL-terminate the ID string, which is a non-aliased copy.
+ ID.append((UChar)0);
+ ID.truncate(ID.length()-1);
if (other.filter != 0) {
// We own the filter, so we must have our own copy
@@ -155,6 +159,10 @@ Transliterator::Transliterator(const Transliterator& other) :
}
}
+Transliterator* Transliterator::clone() const {
+ return NULL;
+}
+
/**
* Assignment operator.
*/
@@ -990,7 +998,7 @@ Transliterator* Transliterator::createBasicInstance(const UnicodeString& id,
// Other aliases are handled with TransliteratorAlias::create().
if (alias->isRuleBased()) {
// Step 1. parse
- TransliteratorParser parser;
+ TransliteratorParser parser(ec);
alias->parse(parser, pe, ec);
delete alias;
alias = 0;
@@ -1041,7 +1049,7 @@ Transliterator::createFromRules(const UnicodeString& ID,
{
Transliterator* t = NULL;
- TransliteratorParser parser;
+ TransliteratorParser parser(status);
parser.parse(rules, dir, parseError, status);
if (U_FAILURE(status)) {
@@ -1049,13 +1057,13 @@ Transliterator::createFromRules(const UnicodeString& ID,
}
// NOTE: The logic here matches that in TransliteratorRegistry.
- if (parser.idBlockVector->size() == 0 && parser.dataVector->size() == 0) {
+ if (parser.idBlockVector.size() == 0 && parser.dataVector.size() == 0) {
t = new NullTransliterator();
}
- else if (parser.idBlockVector->size() == 0 && parser.dataVector->size() == 1) {
- t = new RuleBasedTransliterator(ID, (TransliterationRuleData*)parser.dataVector->orphanElementAt(0), TRUE);
+ else if (parser.idBlockVector.size() == 0 && parser.dataVector.size() == 1) {
+ t = new RuleBasedTransliterator(ID, (TransliterationRuleData*)parser.dataVector.orphanElementAt(0), TRUE);
}
- else if (parser.idBlockVector->size() == 1 && parser.dataVector->size() == 0) {
+ else if (parser.idBlockVector.size() == 1 && parser.dataVector.size() == 0) {
// idBlock, no data -- this is an alias. The ID has
// been munged from reverse into forward mode, if
// necessary, so instantiate the ID in the forward
@@ -1064,10 +1072,10 @@ Transliterator::createFromRules(const UnicodeString& ID,
UnicodeString filterPattern;
parser.compoundFilter->toPattern(filterPattern, FALSE);
t = createInstance(filterPattern + UnicodeString(ID_DELIM)
- + *((UnicodeString*)parser.idBlockVector->elementAt(0)), UTRANS_FORWARD, parseError, status);
+ + *((UnicodeString*)parser.idBlockVector.elementAt(0)), UTRANS_FORWARD, parseError, status);
}
else
- t = createInstance(*((UnicodeString*)parser.idBlockVector->elementAt(0)), UTRANS_FORWARD, parseError, status);
+ t = createInstance(*((UnicodeString*)parser.idBlockVector.elementAt(0)), UTRANS_FORWARD, parseError, status);
if (t != NULL) {
@@ -1078,13 +1086,13 @@ Transliterator::createFromRules(const UnicodeString& ID,
UVector transliterators(status);
int32_t passNumber = 1;
- int32_t limit = parser.idBlockVector->size();
- if (parser.dataVector->size() > limit)
- limit = parser.dataVector->size();
+ int32_t limit = parser.idBlockVector.size();
+ if (parser.dataVector.size() > limit)
+ limit = parser.dataVector.size();
for (int32_t i = 0; i < limit; i++) {
- if (i < parser.idBlockVector->size()) {
- UnicodeString* idBlock = (UnicodeString*)parser.idBlockVector->elementAt(i);
+ if (i < parser.idBlockVector.size()) {
+ UnicodeString* idBlock = (UnicodeString*)parser.idBlockVector.elementAt(i);
if (!idBlock->isEmpty()) {
Transliterator* temp = createInstance(*idBlock, UTRANS_FORWARD, parseError, status);
if (temp != NULL && temp->getDynamicClassID() != NullTransliterator::getStaticClassID())
@@ -1093,8 +1101,8 @@ Transliterator::createFromRules(const UnicodeString& ID,
delete temp;
}
}
- if (!parser.dataVector->isEmpty()) {
- TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector->orphanElementAt(0);
+ if (!parser.dataVector.isEmpty()) {
+ TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0);
transliterators.addElement(
new RuleBasedTransliterator(UnicodeString(CompoundTransliterator::PASS_STRING) + (passNumber++),
data, TRUE), status);
@@ -1236,6 +1244,20 @@ void Transliterator::_registerInstance(Transliterator* adoptedPrototype) {
registry->put(adoptedPrototype, TRUE);
}
+void U_EXPORT2 Transliterator::registerAlias(const UnicodeString& aliasID,
+ const UnicodeString& realID) {
+ umtx_init(&registryMutex);
+ Mutex lock(&registryMutex);
+ if (HAVE_REGISTRY) {
+ _registerAlias(aliasID, realID);
+ }
+}
+
+void Transliterator::_registerAlias(const UnicodeString& aliasID,
+ const UnicodeString& realID) {
+ registry->put(aliasID, realID, FALSE, TRUE);
+}
+
/**
* Unregisters a transliterator or class. This may be either
* a system transliterator or a user transliterator or class.
@@ -1489,13 +1511,13 @@ UBool Transliterator::initializeRegistry() {
(ures_getUnicodeStringByKey(res, "direction", &status).charAt(0) ==
0x0046 /*F*/) ?
UTRANS_FORWARD : UTRANS_REVERSE;
- registry->put(id, UnicodeString(TRUE, resString, len), dir, visible);
+ registry->put(id, UnicodeString(TRUE, resString, len), dir, TRUE, visible);
}
break;
case 0x61: // 'a'
// 'alias'; row[2]=createInstance argument
resString = ures_getString(res, &len, &status);
- registry->put(id, UnicodeString(TRUE, resString, len), TRUE);
+ registry->put(id, UnicodeString(TRUE, resString, len), TRUE, TRUE);
break;
}
}
diff --git a/Build/source/libs/icu-xetex/i18n/transreg.cpp b/Build/source/libs/icu-xetex/i18n/transreg.cpp
index e340ca633c6..834e4ce8077 100644
--- a/Build/source/libs/icu-xetex/i18n/transreg.cpp
+++ b/Build/source/libs/icu-xetex/i18n/transreg.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2005, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -40,8 +40,8 @@
// UChar constants
static const UChar LOCALE_SEP = 95; // '_'
-static const UChar ID_SEP = 0x002D; /*-*/
-static const UChar VARIANT_SEP = 0x002F; // '/'
+//static const UChar ID_SEP = 0x002D; /*-*/
+//static const UChar VARIANT_SEP = 0x002F; // '/'
// String constants
static const UChar NO_VARIANT[] = { 0 }; // empty string
@@ -50,7 +50,7 @@ static const UChar ANY[] = { 65, 110, 121, 0 }; // Any
/**
* Resource bundle key for the RuleBasedTransliterator rule.
*/
-static const char RB_RULE[] = "Rule";
+//static const char RB_RULE[] = "Rule";
U_NAMESPACE_BEGIN
@@ -105,6 +105,9 @@ Transliterator* TransliteratorAlias::create(UParseError& pe,
switch (type) {
case SIMPLE:
t = Transliterator::createInstance(aliasesOrRules, UTRANS_FORWARD, pe, ec);
+ if(U_FAILURE(ec)){
+ return 0;
+ }
if (compoundFilter != 0)
t->adoptFilter((UnicodeSet*)compoundFilter->clone());
break;
@@ -562,17 +565,17 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID,
entry->entryType == Entry::RULES_REVERSE ||
entry->entryType == Entry::LOCALE_RULES) {
- if (parser.idBlockVector->isEmpty() && parser.dataVector->isEmpty()) {
+ if (parser.idBlockVector.isEmpty() && parser.dataVector.isEmpty()) {
entry->u.data = 0;
entry->entryType = Entry::ALIAS;
entry->stringArg = UNICODE_STRING_SIMPLE("Any-NULL");
}
- else if (parser.idBlockVector->isEmpty() && parser.dataVector->size() == 1) {
- entry->u.data = (TransliterationRuleData*)parser.dataVector->orphanElementAt(0);
+ else if (parser.idBlockVector.isEmpty() && parser.dataVector.size() == 1) {
+ entry->u.data = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0);
entry->entryType = Entry::RBT_DATA;
}
- else if (parser.idBlockVector->size() == 1 && parser.dataVector->isEmpty()) {
- entry->stringArg = *(UnicodeString*)(parser.idBlockVector->elementAt(0));
+ else if (parser.idBlockVector.size() == 1 && parser.dataVector.isEmpty()) {
+ entry->stringArg = *(UnicodeString*)(parser.idBlockVector.elementAt(0));
entry->compoundFilter = parser.orphanCompoundFilter();
entry->entryType = Entry::ALIAS;
}
@@ -582,18 +585,18 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID,
entry->u.dataVector = new UVector(status);
entry->stringArg.remove();
- int32_t limit = parser.idBlockVector->size();
- if (parser.dataVector->size() > limit)
- limit = parser.dataVector->size();
+ int32_t limit = parser.idBlockVector.size();
+ if (parser.dataVector.size() > limit)
+ limit = parser.dataVector.size();
for (int32_t i = 0; i < limit; i++) {
- if (i < parser.idBlockVector->size()) {
- UnicodeString* idBlock = (UnicodeString*)parser.idBlockVector->elementAt(i);
+ if (i < parser.idBlockVector.size()) {
+ UnicodeString* idBlock = (UnicodeString*)parser.idBlockVector.elementAt(i);
if (!idBlock->isEmpty())
entry->stringArg += *idBlock;
}
- if (!parser.dataVector->isEmpty()) {
- TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector->orphanElementAt(0);
+ if (!parser.dataVector.isEmpty()) {
+ TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0);
entry->u.dataVector->addElement(data, status);
entry->stringArg += (UChar)0xffff; // use U+FFFF to mark position of RBTs in ID block
}
@@ -625,20 +628,32 @@ void TransliteratorRegistry::put(const UnicodeString& ID,
void TransliteratorRegistry::put(const UnicodeString& ID,
const UnicodeString& resourceName,
UTransDirection dir,
+ UBool readonlyResourceAlias,
UBool visible) {
Entry *entry = new Entry();
entry->entryType = (dir == UTRANS_FORWARD) ? Entry::RULES_FORWARD
: Entry::RULES_REVERSE;
- entry->stringArg = resourceName;
+ if (readonlyResourceAlias) {
+ entry->stringArg.setTo(TRUE, resourceName.getBuffer(), -1);
+ }
+ else {
+ entry->stringArg = resourceName;
+ }
registerEntry(ID, entry, visible);
}
void TransliteratorRegistry::put(const UnicodeString& ID,
const UnicodeString& alias,
+ UBool readonlyAliasAlias,
UBool visible) {
Entry *entry = new Entry();
entry->entryType = Entry::ALIAS;
- entry->stringArg = alias;
+ if (readonlyAliasAlias) {
+ entry->stringArg.setTo(TRUE, alias.getBuffer(), -1);
+ }
+ else {
+ entry->stringArg = alias;
+ }
registerEntry(ID, entry, visible);
}
@@ -1251,7 +1266,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID
// and possibly also into an ::id header and/or footer. Then
// we modify the registry with the parsed data and retry.
{
- TransliteratorParser parser;
+ TransliteratorParser parser(status);
// We use the file name, taken from another resource bundle
// 2-d array at static init time, as a locale language. We're
diff --git a/Build/source/libs/icu-xetex/i18n/transreg.h b/Build/source/libs/icu-xetex/i18n/transreg.h
index bb88979959e..e74cfe43fed 100644
--- a/Build/source/libs/icu-xetex/i18n/transreg.h
+++ b/Build/source/libs/icu-xetex/i18n/transreg.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2001-2005, International Business Machines
+* Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -222,6 +222,7 @@ class TransliteratorRegistry : public UMemory {
void put(const UnicodeString& ID,
const UnicodeString& resourceName,
UTransDirection dir,
+ UBool readonlyResourceAlias,
UBool visible);
/**
@@ -231,6 +232,7 @@ class TransliteratorRegistry : public UMemory {
*/
void put(const UnicodeString& ID,
const UnicodeString& alias,
+ UBool readonlyAliasAlias,
UBool visible);
/**
diff --git a/Build/source/libs/icu-xetex/i18n/tridpars.cpp b/Build/source/libs/icu-xetex/i18n/tridpars.cpp
index 668005ca7e0..f0338de254f 100644
--- a/Build/source/libs/icu-xetex/i18n/tridpars.cpp
+++ b/Build/source/libs/icu-xetex/i18n/tridpars.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines Corporation
+* Copyright (c) 2002-2006, International Business Machines Corporation
* and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -33,7 +33,7 @@ static const UChar VARIANT_SEP = 0x002F; // /
static const UChar OPEN_REV = 0x0028; // (
static const UChar CLOSE_REV = 0x0029; // )
-static const UChar EMPTY[] = {0}; // ""
+//static const UChar EMPTY[] = {0}; // ""
static const UChar ANY[] = {65,110,121,0}; // "Any"
static const UChar ANY_NULL[] = {65,110,121,45,78,117,108,108,0}; // "Any-Null"
@@ -581,6 +581,10 @@ void TransliteratorIDParser::STVtoID(const UnicodeString& source,
if (variant.length() != 0) {
id.append(VARIANT_SEP).append(variant);
}
+ // NUL-terminate the ID string for getTerminatedBuffer.
+ // This prevents valgrind and Purify warnings.
+ id.append((UChar)0);
+ id.truncate(id.length()-1);
}
/**
@@ -878,7 +882,7 @@ void TransliteratorIDParser::init(UErrorCode &status) {
special_inverses = NULL;
}
umtx_unlock(&LOCK);
- delete special_inverses;
+ delete special_inverses; /*null instance*/
ucln_i18n_registerCleanup(UCLN_I18N_TRANSLITERATOR, transliterator_cleanup);
}
diff --git a/Build/source/libs/icu-xetex/i18n/ucal.cpp b/Build/source/libs/icu-xetex/i18n/ucal.cpp
index 5d8590f0fb3..636adf4cd74 100644
--- a/Build/source/libs/icu-xetex/i18n/ucal.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucal.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2004, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*/
@@ -13,6 +13,7 @@
#include "unicode/uloc.h"
#include "unicode/calendar.h"
#include "unicode/timezone.h"
+#include "unicode/gregocal.h"
#include "unicode/simpletz.h"
#include "unicode/ustring.h"
#include "unicode/strenum.h"
@@ -253,6 +254,32 @@ ucal_inDaylightTime( const UCalendar* cal,
return ((Calendar*)cal)->inDaylightTime(*status);
}
+U_DRAFT void U_EXPORT2
+ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode) {
+ if(U_FAILURE(*pErrorCode)) {
+ return;
+ }
+ Calendar *cpp_cal = (Calendar *)cal;
+ if(cpp_cal->getDynamicClassID() != GregorianCalendar::getStaticClassID()) {
+ *pErrorCode = U_UNSUPPORTED_ERROR;
+ return;
+ }
+ ((GregorianCalendar *)cpp_cal)->setGregorianChange(date, *pErrorCode);
+}
+
+U_DRAFT UDate U_EXPORT2
+ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode) {
+ if(U_FAILURE(*pErrorCode)) {
+ return (UDate)0;
+ }
+ Calendar *cpp_cal = (Calendar *)cal;
+ if(cpp_cal->getDynamicClassID() != GregorianCalendar::getStaticClassID()) {
+ *pErrorCode = U_UNSUPPORTED_ERROR;
+ return (UDate)0;
+ }
+ return ((GregorianCalendar *)cpp_cal)->getGregorianChange();
+}
+
U_CAPI int32_t U_EXPORT2
ucal_getAttribute( const UCalendar* cal,
UCalendarAttribute attr)
diff --git a/Build/source/libs/icu-xetex/i18n/ucln_in.c b/Build/source/libs/icu-xetex/i18n/ucln_in.c
index 34653e079e6..afcf07112fb 100644
--- a/Build/source/libs/icu-xetex/i18n/ucln_in.c
+++ b/Build/source/libs/icu-xetex/i18n/ucln_in.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2001-2004, International Business Machines *
+* Copyright (C) 2001-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -25,9 +25,9 @@ static cleanupFunc *gCleanupFunctions[UCLN_I18N_COUNT];
static UBool i18n_cleanup(void)
{
- ECleanupI18NType libType;
+ ECleanupI18NType libType = UCLN_I18N_START;
- for (libType = UCLN_I18N_START+1; libType<UCLN_I18N_COUNT; libType++) {
+ while (++libType<UCLN_I18N_COUNT) {
if (gCleanupFunctions[libType])
{
gCleanupFunctions[libType]();
diff --git a/Build/source/libs/icu-xetex/i18n/ucln_in.h b/Build/source/libs/icu-xetex/i18n/ucln_in.h
index b04a25dccd8..6feae009edd 100644
--- a/Build/source/libs/icu-xetex/i18n/ucln_in.h
+++ b/Build/source/libs/icu-xetex/i18n/ucln_in.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2001-2004, International Business Machines *
+* Copyright (C) 2001-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -38,6 +38,7 @@ typedef enum ECleanupI18NType {
UCLN_I18N_COLLATOR,
UCLN_I18N_UCOL,
UCLN_I18N_UCOL_BLD,
+ UCLN_I18N_CSDET,
UCLN_I18N_COUNT /* This must be last */
} ECleanupI18NType;
diff --git a/Build/source/libs/icu-xetex/i18n/ucol.cpp b/Build/source/libs/icu-xetex/i18n/ucol.cpp
index 98781fdbe98..5f756b04940 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: ucol.cpp
@@ -145,7 +145,6 @@ inline void IInit_collIterate(const UCollator *collator, const UChar *sourceStr
}
(s)->iterator = NULL;
//(s)->iteratorIndex = 0;
- (s)->consumedChars = 0;
}
U_CAPI void U_EXPORT2
@@ -170,20 +169,20 @@ inline void backupState(const collIterate *data, collIterateState *backup)
backup->pos = data->pos;
backup->bufferaddress = data->writableBuffer;
backup->buffersize = data->writableBufSize;
+ backup->iteratorMove = 0;
+ backup->iteratorIndex = 0;
if(data->iterator != NULL) {
- //backup->iteratorIndex = data->iterator->getIndex(data->iterator, UITER_CURRENT);
- backup->iteratorIndex = data->iterator->getState(data->iterator);
- // no we try to fixup if we're using a normalizing iterator and we get UITER_NO_STATE
- backup->iteratorMove = 0;
- if(backup->iteratorIndex == UITER_NO_STATE) {
- while((backup->iteratorIndex = data->iterator->getState(data->iterator)) == UITER_NO_STATE) {
- backup->iteratorMove++;
- data->iterator->move(data->iterator, -1, UITER_CURRENT);
- }
- data->iterator->move(data->iterator, backup->iteratorMove, UITER_CURRENT);
- }
+ //backup->iteratorIndex = data->iterator->getIndex(data->iterator, UITER_CURRENT);
+ backup->iteratorIndex = data->iterator->getState(data->iterator);
+ // no we try to fixup if we're using a normalizing iterator and we get UITER_NO_STATE
+ if(backup->iteratorIndex == UITER_NO_STATE) {
+ while((backup->iteratorIndex = data->iterator->getState(data->iterator)) == UITER_NO_STATE) {
+ backup->iteratorMove++;
+ data->iterator->move(data->iterator, -1, UITER_CURRENT);
+ }
+ data->iterator->move(data->iterator, backup->iteratorMove, UITER_CURRENT);
+ }
}
- backup->consumedChars = data->consumedChars;
}
/**
@@ -197,15 +196,15 @@ static
inline void loadState(collIterate *data, const collIterateState *backup,
UBool forwards)
{
- UErrorCode status = U_ZERO_ERROR;
+ UErrorCode status = U_ZERO_ERROR;
data->flags = backup->flags;
data->origFlags = backup->origFlags;
if(data->iterator != NULL) {
- //data->iterator->move(data->iterator, backup->iteratorIndex, UITER_ZERO);
- data->iterator->setState(data->iterator, backup->iteratorIndex, &status);
- if(backup->iteratorMove != 0) {
- data->iterator->move(data->iterator, backup->iteratorMove, UITER_CURRENT);
- }
+ //data->iterator->move(data->iterator, backup->iteratorIndex, UITER_ZERO);
+ data->iterator->setState(data->iterator, backup->iteratorIndex, &status);
+ if(backup->iteratorMove != 0) {
+ data->iterator->move(data->iterator, backup->iteratorMove, UITER_CURRENT);
+ }
}
data->pos = backup->pos;
if ((data->flags & UCOL_ITER_INNORMBUF) &&
@@ -241,7 +240,6 @@ inline void loadState(collIterate *data, const collIterateState *backup,
*/
data->fcdPosition = backup->fcdPosition;
}
- data->consumedChars = backup->consumedChars;
}
@@ -343,13 +341,14 @@ inline void freeHeapWritableBuffer(collIterate *data)
/* */
/****************************************************************************/
-U_CAPI UCollator* U_EXPORT2
-ucol_openBinary(const uint8_t *bin, int32_t length,
+static UCollator*
+ucol_initFromBinary(const uint8_t *bin, int32_t length,
const UCollator *base,
+ UCollator *fillIn,
UErrorCode *status)
{
- UCollator *result = NULL;
- if(U_FAILURE(*status)){
+ UCollator *result = fillIn;
+ if(U_FAILURE(*status)) {
return NULL;
}
/*
@@ -369,14 +368,16 @@ ucol_openBinary(const uint8_t *bin, int32_t length,
{
*status = U_COLLATOR_VERSION_MISMATCH;
return NULL;
- } else {
+ }
+ else {
if((uint32_t)length > (paddedsize(sizeof(UCATableHeader)) + paddedsize(sizeof(UColOptionSet)))) {
result = ucol_initCollator((const UCATableHeader *)bin, result, base, status);
if(U_FAILURE(*status)){
return NULL;
}
result->hasRealData = TRUE;
- } else {
+ }
+ else {
if(base) {
result = ucol_initCollator(base->image, result, base, status);
ucol_setOptionsFromHeader(result, (UColOptionSet *)(bin+((const UCATableHeader *)bin)->options), status);
@@ -384,7 +385,8 @@ ucol_openBinary(const uint8_t *bin, int32_t length,
return NULL;
}
result->hasRealData = FALSE;
- } else {
+ }
+ else {
*status = U_USELESS_COLLATOR_ERROR;
return NULL;
}
@@ -401,61 +403,155 @@ ucol_openBinary(const uint8_t *bin, int32_t length,
return result;
}
+U_CAPI UCollator* U_EXPORT2
+ucol_openBinary(const uint8_t *bin, int32_t length,
+ const UCollator *base,
+ UErrorCode *status)
+{
+ return ucol_initFromBinary(bin, length, base, NULL, status);
+}
+
+U_CAPI UCollator* U_EXPORT2
+ucol_safeClone(const UCollator *coll, void *stackBuffer, int32_t * pBufferSize, UErrorCode *status)
+{
+ UCollator * localCollator;
+ int32_t bufferSizeNeeded = (int32_t)sizeof(UCollator);
+ char *stackBufferChars = (char *)stackBuffer;
+ int32_t imageSize = 0;
+ int32_t rulesSize = 0;
+ int32_t rulesPadding = 0;
+ uint8_t *image;
+ UChar *rules;
+ UBool colAllocated = FALSE;
+ UBool imageAllocated = FALSE;
+
+ if (status == NULL || U_FAILURE(*status)){
+ return 0;
+ }
+ if ((stackBuffer && !pBufferSize) || !coll){
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+ if (coll->rules && coll->freeRulesOnClose) {
+ rulesSize = (int32_t)(coll->rulesLength + 1)*sizeof(UChar);
+ rulesPadding = (int32_t)(bufferSizeNeeded % sizeof(UChar));
+ bufferSizeNeeded += rulesSize + rulesPadding;
+ }
+
+ if (stackBuffer && *pBufferSize <= 0){ /* 'preflighting' request - set needed size into *pBufferSize */
+ *pBufferSize = bufferSizeNeeded;
+ return 0;
+ }
+
+ /* Pointers on 64-bit platforms need to be aligned
+ * on a 64-bit boundry in memory.
+ */
+ if (U_ALIGNMENT_OFFSET(stackBuffer) != 0) {
+ int32_t offsetUp = (int32_t)U_ALIGNMENT_OFFSET_UP(stackBufferChars);
+ if (*pBufferSize > offsetUp) {
+ *pBufferSize -= offsetUp;
+ stackBufferChars += offsetUp;
+ }
+ else {
+ /* prevent using the stack buffer but keep the size > 0 so that we do not just preflight */
+ *pBufferSize = 1;
+ }
+ }
+ stackBuffer = (void *)stackBufferChars;
+
+ if (stackBuffer == NULL || *pBufferSize < bufferSizeNeeded) {
+ /* allocate one here...*/
+ stackBufferChars = (char *)uprv_malloc(bufferSizeNeeded);
+ colAllocated = TRUE;
+ if (U_SUCCESS(*status)) {
+ *status = U_SAFECLONE_ALLOCATED_WARNING;
+ }
+ }
+ localCollator = (UCollator *)stackBufferChars;
+ rules = (UChar *)(stackBufferChars + sizeof(UCollator) + rulesPadding);
+ {
+ UErrorCode tempStatus = U_ZERO_ERROR;
+ imageSize = ucol_cloneBinary(coll, NULL, 0, &tempStatus);
+ }
+ if (coll->freeImageOnClose) {
+ image = (uint8_t *)uprv_malloc(imageSize);
+ ucol_cloneBinary(coll, image, imageSize, status);
+ imageAllocated = TRUE;
+ }
+ else {
+ image = (uint8_t *)coll->image;
+ }
+ localCollator = ucol_initFromBinary(image, imageSize, coll->UCA, localCollator, status);
+ if (U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (coll->rules) {
+ if (coll->freeRulesOnClose) {
+ localCollator->rules = u_strcpy(rules, coll->rules);
+ //bufferEnd += rulesSize;
+ }
+ else {
+ localCollator->rules = coll->rules;
+ }
+ localCollator->freeRulesOnClose = FALSE;
+ localCollator->rulesLength = coll->rulesLength;
+ }
+
+ int32_t i;
+ for(i = 0; i < UCOL_ATTRIBUTE_COUNT; i++) {
+ ucol_setAttribute(localCollator, (UColAttribute)i, ucol_getAttribute(coll, (UColAttribute)i, status), status);
+ }
+ localCollator->requestedLocale = NULL; // zero copies of pointers
+ localCollator->validLocale = NULL;
+ localCollator->rb = NULL;
+ localCollator->elements = NULL;
+ localCollator->freeOnClose = colAllocated;
+ localCollator->freeImageOnClose = imageAllocated;
+ return localCollator;
+}
+
U_CAPI void U_EXPORT2
ucol_close(UCollator *coll)
{
- UTRACE_ENTRY_OC(UTRACE_UCOL_CLOSE);
- UTRACE_DATA1(UTRACE_INFO, "coll = %p", coll);
- if(coll != NULL) {
- // these are always owned by each UCollator struct,
- // so we always free them
- if(coll->validLocale != NULL) {
- uprv_free(coll->validLocale);
- }
- if(coll->requestedLocale != NULL) {
- uprv_free(coll->requestedLocale);
- }
-
- /* Here, it would be advisable to close: */
- /* - UData for UCA (unless we stuff it in the root resb */
- /* Again, do we need additional housekeeping... HMMM! */
- UTRACE_DATA1(UTRACE_INFO, "coll->freeOnClose: %d", coll->freeOnClose);
- if(coll->freeOnClose){
- /* for safeClone, if freeOnClose is FALSE,
- don't free the other instance data */
- if(coll->freeOptionsOnClose != FALSE) {
- if(coll->options != NULL) {
- uprv_free(coll->options);
- }
- }
- if(coll->mapping != NULL) {
- /*ucmpe32_close(coll->mapping);*/
- uprv_free(coll->mapping);
- }
- if(coll->rules != NULL && coll->freeRulesOnClose) {
- uprv_free((UChar *)coll->rules);
- }
- if(coll->freeImageOnClose == TRUE) {
- uprv_free((UCATableHeader *)coll->image);
- }
- if(coll->resCleaner != NULL) {
+ UTRACE_ENTRY_OC(UTRACE_UCOL_CLOSE);
+ UTRACE_DATA1(UTRACE_INFO, "coll = %p", coll);
+ if(coll != NULL) {
+ // these are always owned by each UCollator struct,
+ // so we always free them
+ if(coll->validLocale != NULL) {
+ uprv_free(coll->validLocale);
+ }
+ if(coll->requestedLocale != NULL) {
+ uprv_free(coll->requestedLocale);
+ }
+ if(coll->resCleaner != NULL) {
coll->resCleaner(coll);
- }
-#if 0
- if(coll->rb != NULL) { /* pointing to read-only memory */
- ures_close(coll->rb);
- }
- if(coll->elements != NULL) {
- ures_close(coll->elements);
- }
-#endif
- if(coll->latinOneCEs != NULL) {
- uprv_free(coll->latinOneCEs);
- }
- uprv_free(coll);
- }
- }
- UTRACE_EXIT();
+ }
+ if(coll->latinOneCEs != NULL) {
+ uprv_free(coll->latinOneCEs);
+ }
+ if(coll->options != NULL && coll->freeOptionsOnClose) {
+ uprv_free(coll->options);
+ }
+ if(coll->rules != NULL && coll->freeRulesOnClose) {
+ uprv_free((UChar *)coll->rules);
+ }
+ if(coll->image != NULL && coll->freeImageOnClose) {
+ uprv_free((UCATableHeader *)coll->image);
+ }
+
+ /* Here, it would be advisable to close: */
+ /* - UData for UCA (unless we stuff it in the root resb */
+ /* Again, do we need additional housekeeping... HMMM! */
+ UTRACE_DATA1(UTRACE_INFO, "coll->freeOnClose: %d", coll->freeOnClose);
+ if(coll->freeOnClose){
+ /* for safeClone, if freeOnClose is FALSE,
+ don't free the other instance data */
+ uprv_free(coll);
+ }
+ }
+ UTRACE_EXIT();
}
/* This one is currently used by genrb & tests. After constructing from rules (tailoring),*/
@@ -592,7 +688,6 @@ inline uint8_t i_getCombiningClass(UChar32 c, const UCollator *coll) {
return sCC;
}
-
UCollator* ucol_initCollator(const UCATableHeader *image, UCollator *fillIn, const UCollator *UCA, UErrorCode *status) {
UChar c;
UCollator *result = fillIn;
@@ -612,32 +707,19 @@ UCollator* ucol_initCollator(const UCATableHeader *image, UCollator *fillIn, con
}
result->image = image;
+ result->mapping.getFoldingOffset = _getFoldingOffset;
const uint8_t *mapping = (uint8_t*)result->image+result->image->mappingPosition;
- /*CompactEIntArray *newUCAmapping = ucmpe32_openFromData(&mapping, status);*/
- UTrie *newUCAmapping = (UTrie *)uprv_malloc(sizeof(UTrie));
- if(newUCAmapping != NULL) {
- utrie_unserialize(newUCAmapping, mapping, result->image->endExpansionCE - result->image->mappingPosition, status);
- } else {
- *status = U_MEMORY_ALLOCATION_ERROR;
- if(result->freeOnClose == TRUE) {
- uprv_free(result);
- result = NULL;
- }
- return result;
- }
- if(U_SUCCESS(*status)) {
- result->mapping = newUCAmapping;
- } else {
+ utrie_unserialize(&result->mapping, mapping, result->image->endExpansionCE - result->image->mappingPosition, status);
+ if(U_FAILURE(*status)) {
if(result->freeOnClose == TRUE) {
uprv_free(result);
result = NULL;
}
- uprv_free(newUCAmapping);
return result;
}
/*result->latinOneMapping = (uint32_t*)((uint8_t*)result->image+result->image->latinOneMapping);*/
- result->latinOneMapping = UTRIE_GET32_LATIN1(result->mapping);
+ result->latinOneMapping = UTRIE_GET32_LATIN1(&result->mapping);
result->contractionCEs = (uint32_t*)((uint8_t*)result->image+result->image->contractionCEs);
result->contractionIndex = (UChar*)((uint8_t*)result->image+result->image->contractionIndex);
result->expansion = (uint32_t*)((uint8_t*)result->image+result->image->expansion);
@@ -666,14 +748,16 @@ UCollator* ucol_initCollator(const UCATableHeader *image, UCollator *fillIn, con
result->hiraganaQisDefault = TRUE;
result->numericCollationisDefault = TRUE;
- result->scriptOrder = NULL;
+ /*result->scriptOrder = NULL;*/
result->rules = NULL;
result->rulesLength = 0;
/* get the version info from UCATableHeader and populate the Collator struct*/
- result->dataInfo.dataVersion[0] = result->image->version[0]; /* UCA Builder version*/
- result->dataInfo.dataVersion[1] = result->image->version[1]; /* UCA Tailoring rules version*/
+ result->dataVersion[0] = result->image->version[0]; /* UCA Builder version*/
+ result->dataVersion[1] = result->image->version[1]; /* UCA Tailoring rules version*/
+ result->dataVersion[2] = 0;
+ result->dataVersion[3] = 0;
result->unsafeCP = (uint8_t *)result->image + result->image->unsafeCP;
result->minUnsafeCP = 0;
@@ -1124,7 +1208,7 @@ ucol_initUCA(UErrorCode *status) {
// Initalize variables for implicit generation
const UCAConstants *UCAconsts = (UCAConstants *)((uint8_t *)_staticUCA->image + _staticUCA->image->UCAConsts);
uprv_uca_initImplicitConstants(UCAconsts->UCA_PRIMARY_IMPLICIT_MIN, UCAconsts->UCA_PRIMARY_IMPLICIT_MAX, status);
- _staticUCA->mapping->getFoldingOffset = _getFoldingOffset;
+ //_staticUCA->mapping.getFoldingOffset = _getFoldingOffset;
}else{
udata_close(result);
uprv_free(newUCA);
@@ -1337,7 +1421,6 @@ inline uint32_t ucol_IGetNextCE(const UCollator *coll, collIterate *collationSou
}
UChar ch = 0;
- collationSource->consumedChars = 0;
for (;;) /* Loop handles case when incremental normalize switches */
{ /* to or from the side buffer / original string, and we */
@@ -1469,13 +1552,13 @@ inline uint32_t ucol_IGetNextCE(const UCollator *coll, collIterate *collationSou
}
else
{
- order = UTRIE_GET32_FROM_LEAD(coll->mapping, ch);
+ order = UTRIE_GET32_FROM_LEAD(&coll->mapping, ch);
if(order > UCOL_NOT_FOUND) { /* if a CE is special */
order = ucol_prv_getSpecialCE(coll, ch, order, collationSource, status); /* and try to get the special CE */
}
if(order == UCOL_NOT_FOUND && coll->UCA) { /* We couldn't find a good CE in the tailoring */
/* if we got here, the codepoint MUST be over 0xFF - so we look directly in the trie */
- order = UTRIE_GET32_FROM_LEAD(coll->UCA->mapping, ch);
+ order = UTRIE_GET32_FROM_LEAD(&coll->UCA->mapping, ch);
if(order > UCOL_NOT_FOUND) { /* UCA also gives us a special CE */
order = ucol_prv_getSpecialCE(coll->UCA, ch, order, collationSource, status);
@@ -1834,7 +1917,7 @@ inline uint32_t ucol_IGetPrevCE(const UCollator *coll, collIterate *data,
result = coll->latinOneMapping[ch];
}
else {
- result = UTRIE_GET32_FROM_LEAD(coll->mapping, ch);
+ result = UTRIE_GET32_FROM_LEAD(&coll->mapping, ch);
}
if (result > UCOL_NOT_FOUND) {
result = ucol_prv_getSpecialPrevCE(coll, ch, result, data, status);
@@ -1845,7 +1928,7 @@ inline uint32_t ucol_IGetPrevCE(const UCollator *coll, collIterate *data,
result = UCOL_CONTRACTION;
} else {
if(coll->UCA) {
- result = UTRIE_GET32_FROM_LEAD(coll->UCA->mapping, ch);
+ result = UTRIE_GET32_FROM_LEAD(&coll->UCA->mapping, ch);
}
}
@@ -2397,12 +2480,12 @@ inline UChar * insertBufferFront(collIterate *data, UChar *pNull, UChar ch)
* @param data collation iterator data
*/
static
-inline void normalizePrevContraction(collIterate *data)
+inline void normalizePrevContraction(collIterate *data, UErrorCode *status)
{
UChar *buffer = data->writableBuffer;
uint32_t buffersize = data->writableBufSize;
uint32_t nulltermsize;
- UErrorCode status = U_ZERO_ERROR;
+ UErrorCode localstatus = U_ZERO_ERROR;
UChar *pEnd = data->pos + 1; /* End normalize + 1 */
UChar *pStart;
uint32_t normLen;
@@ -2433,22 +2516,23 @@ inline void normalizePrevContraction(collIterate *data)
}
normLen = unorm_normalize(pStart, pEnd - pStart, UNORM_NFD, 0, buffer, 0,
- &status);
+ &localstatus);
if (nulltermsize <= normLen) {
uint32_t size = buffersize - nulltermsize + normLen + 1;
UChar *temp = (UChar *)uprv_malloc(size * sizeof(UChar));
- if(temp != NULL) {
- nulltermsize = normLen + 1;
- uprv_memcpy(temp + normLen, buffer,
- sizeof(UChar) * (buffersize - nulltermsize));
- freeHeapWritableBuffer(data);
- data->writableBuffer = temp;
- data->writableBufSize = size;
+ if (temp == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return;
}
+ nulltermsize = normLen + 1;
+ uprv_memcpy(temp + normLen, buffer,
+ sizeof(UChar) * (buffersize - nulltermsize));
+ freeHeapWritableBuffer(data);
+ data->writableBuffer = temp;
+ data->writableBufSize = size;
}
- status = U_ZERO_ERROR;
/*
this puts the null termination infront of the normalized string instead
of the end
@@ -2456,7 +2540,7 @@ inline void normalizePrevContraction(collIterate *data)
pStartNorm = buffer + (nulltermsize - normLen);
*(pStartNorm - 1) = 0;
unorm_normalize(pStart, pEnd - pStart, UNORM_NFD, 0, pStartNorm, normLen,
- &status);
+ status);
data->pos = data->writableBuffer + nulltermsize;
data->origFlags = data->flags;
@@ -2478,7 +2562,7 @@ inline void normalizePrevContraction(collIterate *data)
* @return previous character
*/
static
-inline UChar getPrevNormalizedChar(collIterate *data)
+inline UChar getPrevNormalizedChar(collIterate *data, UErrorCode *status)
{
UChar prevch;
UChar ch;
@@ -2540,7 +2624,7 @@ inline UChar getPrevNormalizedChar(collIterate *data)
UChar *backuppos = data->pos;
data->pos = start;
if (collPrevIterFCD(data)) {
- normalizePrevContraction(data);
+ normalizePrevContraction(data, status);
return *(data->pos - 1);
}
data->pos = backuppos;
@@ -2594,7 +2678,7 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
return 0;
} else {
/* TODO: CE contain the data from the previous CE + the mask. It should at least be unmasked */
- CE = UTRIE_GET32_FROM_OFFSET_TRAIL(coll->mapping, CE&0xFFFFFF, trail);
+ CE = UTRIE_GET32_FROM_OFFSET_TRAIL(&coll->mapping, CE&0xFFFFFF, trail);
if(CE == UCOL_NOT_FOUND) { // there are tailored surrogates in this block, but not this one.
// We need to backup
loadState(source, &state, TRUE);
@@ -2631,7 +2715,7 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
CE = *(coll->contractionCEs + (UCharOffset - coll->contractionIndex));
break;
}
- schar = getPrevNormalizedChar(source);
+ schar = getPrevNormalizedChar(source, status);
goBackOne(source);
while(schar > (tchar = *UCharOffset)) { /* since the contraction codepoints should be ordered, we skip all that are smaller */
@@ -2715,7 +2799,6 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
// Pick up the corresponding CE from the table.
CE = *(coll->contractionCEs +
(UCharOffset - coll->contractionIndex));
- source->consumedChars++;
}
else
{
@@ -2854,9 +2937,9 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
*/
uint32_t size;
uint32_t i; /* general counter */
- collIterateState digitState;
if (source->coll->numericCollation == UCOL_ON){
+ collIterateState digitState = {0,0,0,0,0,0,0,0};
UChar32 char32 = 0;
uint32_t digIndx = 0;
@@ -2909,22 +2992,23 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
*/
digIndx++;
for(;;){
- // Make sure we have enough space.
- if (digIndx >= ((numTempBufSize - 2) * 2) + 1)
- {
- numTempBufSize *= 2;
- if (numTempBuf == stackNumTempBuf){
- numTempBuf = (uint8_t *)uprv_malloc(sizeof(uint8_t) * numTempBufSize);
- uprv_memcpy(numTempBuf, stackNumTempBuf, UCOL_MAX_BUFFER);
- }else
- uprv_realloc(numTempBuf, numTempBufSize);
- }
+ // Make sure we have enough space.
+ if (digIndx >= ((numTempBufSize - 2) * 2) + 1)
+ {
+ numTempBufSize *= 2;
+ if (numTempBuf == stackNumTempBuf){
+ numTempBuf = (uint8_t *)uprv_malloc(sizeof(uint8_t) * numTempBufSize);
+ uprv_memcpy(numTempBuf, stackNumTempBuf, UCOL_MAX_BUFFER);
+ } else {
+ uprv_realloc(numTempBuf, numTempBufSize);
+ }
+ }
// Skipping over leading zeroes.
- if (digVal != 0 || nonZeroValReached){
- if (digVal != 0 && !nonZeroValReached)
- nonZeroValReached = TRUE;
-
+ if (digVal != 0) {
+ nonZeroValReached = TRUE;
+ }
+ if (nonZeroValReached) {
/*
We parse the digit string into base 100 numbers (this fits into a byte).
We only add to the buffer in twos, thus if we are parsing an odd character,
@@ -2991,7 +3075,7 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
loadState(source, &digitState, TRUE);
//goBackOne(source);
}
- goBackOne(source);
+ goBackOne(source);
break;
}
} else {
@@ -3112,18 +3196,12 @@ uint32_t ucol_prv_getSpecialCE(const UCollator *coll, UChar ch, uint32_t CE, col
// return the first CE, but first put the rest into the expansion buffer
if (!source->coll->image->jamoSpecial) { // FAST PATH
- /**(source->CEpos++) = ucmpe32_get(UCA->mapping, V);*/
- /**(source->CEpos++) = UTRIE_GET32_FROM_LEAD(UCA->mapping, V);*/
- *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(coll->mapping, V);
+ *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(&coll->mapping, V);
if (T != TBase) {
- /**(source->CEpos++) = ucmpe32_get(UCA->mapping, T);*/
- /**(source->CEpos++) = UTRIE_GET32_FROM_LEAD(UCA->mapping, T);*/
- *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(coll->mapping, T);
+ *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(&coll->mapping, T);
}
- /*return ucmpe32_get(UCA->mapping, L);*/ // return first one
- /*return UTRIE_GET32_FROM_LEAD(UCA->mapping, L);*/
- return UTRIE_GET32_FROM_LEAD(coll->mapping, L);
+ return UTRIE_GET32_FROM_LEAD(&coll->mapping, L);
} else { // Jamo is Special
// Since Hanguls pass the FCD check, it is
@@ -3240,7 +3318,7 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
CE = *(coll->contractionCEs + (UCharOffset - coll->contractionIndex));
break;
}
- schar = getPrevNormalizedChar(source);
+ schar = getPrevNormalizedChar(source, status);
goBackOne(source);
while(schar > (tchar = *UCharOffset)) { /* since the contraction codepoints should be ordered, we skip all that are smaller */
@@ -3259,7 +3337,7 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
// a prefix, we need to act as if it's not there
// assumption: 'real' noncharacters (*fffe, *ffff, fdd0-fdef are set to zero)
// lone surrogates cannot be set to zero as it would break other processing
- uint32_t isZeroCE = UTRIE_GET32_FROM_LEAD(coll->mapping, schar);
+ uint32_t isZeroCE = UTRIE_GET32_FROM_LEAD(&coll->mapping, schar);
// it's easy for BMP code points
if(isZeroCE == 0) {
continue;
@@ -3272,10 +3350,10 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
// that is explicitly set to zero.
if (!collIter_bos(source)) {
UChar lead;
- if(U16_IS_LEAD(lead = getPrevNormalizedChar(source))) {
- isZeroCE = UTRIE_GET32_FROM_LEAD(coll->mapping, lead);
+ if(U16_IS_LEAD(lead = getPrevNormalizedChar(source, status))) {
+ isZeroCE = UTRIE_GET32_FROM_LEAD(&coll->mapping, lead);
if(getCETag(isZeroCE) == SURROGATE_TAG) {
- uint32_t finalCE = UTRIE_GET32_FROM_OFFSET_TRAIL(coll->mapping, isZeroCE&0xFFFFFF, schar);
+ uint32_t finalCE = UTRIE_GET32_FROM_OFFSET_TRAIL(&coll->mapping, isZeroCE&0xFFFFFF, schar);
if(finalCE == 0) {
// this is a real, assigned completely ignorable code point
goBackOne(source);
@@ -3335,7 +3413,7 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
*(UCharOffset) = schar;
noChars++;
UCharOffset --;
- schar = getPrevNormalizedChar(source);
+ schar = getPrevNormalizedChar(source, status);
goBackOne(source);
// TODO: when we exhaust the contraction buffer,
// it needs to get reallocated. The problem is
@@ -3455,9 +3533,9 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
*/
//uint32_t size;
uint32_t i; /* general counter */
- collIterateState state;
if (source->coll->numericCollation == UCOL_ON){
+ collIterateState state = {0,0,0,0,0,0,0,0};
UChar32 char32 = 0;
uint32_t digIndx = 0;
@@ -3485,7 +3563,7 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
if (U16_IS_TRAIL (ch)){
if (!collIter_bos(source)){
- UChar lead = getPrevNormalizedChar(source);
+ UChar lead = getPrevNormalizedChar(source, status);
if(U16_IS_LEAD(lead)) {
char32 = U16_GET_SUPPLEMENTARY(lead,ch);
goBackOne(source);
@@ -3566,14 +3644,14 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
++trailingZeroCount;
if (!collIter_bos(source)){
- ch = getPrevNormalizedChar(source);
+ ch = getPrevNormalizedChar(source, status);
//goBackOne(source);
if (U16_IS_TRAIL(ch)){
backupState(source, &state);
if (!collIter_bos(source))
{
goBackOne(source);
- UChar lead = getPrevNormalizedChar(source);
+ UChar lead = getPrevNormalizedChar(source, status);
if(U16_IS_LEAD(lead)) {
char32 = U16_GET_SUPPLEMENTARY(lead,ch);
} else {
@@ -3692,16 +3770,10 @@ uint32_t ucol_prv_getSpecialPrevCE(const UCollator *coll, UChar ch, uint32_t CE,
*/
if (!source->coll->image->jamoSpecial)
{
- /**(source->CEpos ++) = ucmpe32_get(UCA->mapping, L);*/
- /**(source->CEpos++) = UTRIE_GET32_FROM_LEAD(UCA->mapping, L);*/
- *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(coll->mapping, L);
- /**(source->CEpos ++) = ucmpe32_get(UCA->mapping, V);*/
- /**(source->CEpos++) = UTRIE_GET32_FROM_LEAD(UCA->mapping, V);*/
- *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(coll->mapping, V);
+ *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(&coll->mapping, L);
+ *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(&coll->mapping, V);
if (T != TBase)
- /**(source->CEpos ++) = ucmpe32_get(UCA->mapping, T);*/
- /**(source->CEpos++) = UTRIE_GET32_FROM_LEAD(UCA->mapping, T);*/
- *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(coll->mapping, T);
+ *(source->CEpos++) = UTRIE_GET32_FROM_LEAD(&coll->mapping, T);
source->toReturn = source->CEpos - 1;
return *(source->toReturn);
@@ -4172,7 +4244,10 @@ int32_t ucol_getSortKeySize(const UCollator *coll, collIterate *s, int32_t curre
}
}
- if(doCase) {
+ if(doCase && (primary1 > 0 || strength >= UCOL_SECONDARY)) {
+ // do the case level if we need to do it. We don't want to calculate
+ // case level for primary ignorables if we have only primary strength and case level
+ // otherwise we would break well formedness of CEs
if (caseShift == 0) {
currentSize++;
caseShift = UCOL_CASE_SHIFT_START;
@@ -4391,7 +4466,7 @@ ucol_calcSortKey(const UCollator *coll,
UBool shifted = (coll->alternateHandling == UCOL_SHIFTED);
//UBool qShifted = shifted && (compareQuad == 0);
UBool doHiragana = (coll->hiraganaQ == UCOL_ON) && (compareQuad == 0);
- const uint8_t *scriptOrder = coll->scriptOrder;
+ /*const uint8_t *scriptOrder = coll->scriptOrder;*/
uint32_t variableTopValue = coll->variableTopValue;
// TODO: UCOL_COMMON_BOT4 should be a function of qShifted. If we have no
@@ -4459,7 +4534,10 @@ ucol_calcSortKey(const UCollator *coll,
}
return keyLen;
}
- uint8_t *primarySafeEnd = primaries + resultLength - 2;
+ uint8_t *primarySafeEnd = primaries + resultLength - 1;
+ if(strength > UCOL_PRIMARY) {
+ primarySafeEnd--;
+ }
uint32_t minBufferSize = UCOL_MAX_BUFFER;
@@ -4517,11 +4595,9 @@ ucol_calcSortKey(const UCollator *coll,
primary2 = (uint8_t)((order >>= 8) & UCOL_BYTE_SIZE_MASK);
primary1 = (uint8_t)(order >> 8);
- if(notIsContinuation) {
- if(scriptOrder != NULL) {
- primary1 = scriptOrder[primary1];
- }
- }
+ /*if(notIsContinuation && scriptOrder != NULL) {
+ primary1 = scriptOrder[primary1];
+ }*/
if(shifted && ((notIsContinuation && order <= variableTopValue && primary1 > 0)
|| (!notIsContinuation && wasShifted))
@@ -4631,7 +4707,10 @@ ucol_calcSortKey(const UCollator *coll,
}
}
- if(doCase) {
+ if(doCase && (primary1 > 0 || strength >= UCOL_SECONDARY)) {
+ // do the case level if we need to do it. We don't want to calculate
+ // case level for primary ignorables if we have only primary strength and case level
+ // otherwise we would break well formedness of CEs
doCaseShift(&cases, caseShift);
if(notIsContinuation) {
caseBits = (uint8_t)(tertiary & 0xC0);
@@ -4672,9 +4751,10 @@ ucol_calcSortKey(const UCollator *coll,
if (tertiary == tertiaryCommon && notIsContinuation) {
++count3;
} else {
- if((tertiary > tertiaryCommon && tertiaryCommon == UCOL_COMMON3_NORMAL)
- || (tertiary <= tertiaryCommon && tertiaryCommon == UCOL_COMMON3_UPPERFIRST)) {
+ if(tertiary > tertiaryCommon && tertiaryCommon == UCOL_COMMON3_NORMAL) {
tertiary += tertiaryAddition;
+ } else if(tertiary <= tertiaryCommon && tertiaryCommon == UCOL_COMMON3_UPPERFIRST) {
+ tertiary -= tertiaryAddition;
}
if (count3 > 0) {
if ((tertiary > tertiaryCommon)) {
@@ -4728,7 +4808,10 @@ ucol_calcSortKey(const UCollator *coll,
primStart = reallocateBuffer(&primaries, *result, prim, &resultLength, 2*sks, status);
if(U_SUCCESS(*status)) {
*result = primStart;
- primarySafeEnd = primStart + resultLength - 2;
+ primarySafeEnd = primStart + resultLength - 1;
+ if(strength > UCOL_PRIMARY) {
+ primarySafeEnd--;
+ }
} else {
IInit_collIterate(coll, (UChar *)source, len, &s);
if(source == normSource) {
@@ -5375,12 +5458,15 @@ enum {
/** When we do French we need to reverse secondary values. However, continuations
* need to stay the same. So if you had abc1c2c3de, you need to have edc1c2c3ba
*/
- UCOL_PSK_USED_ELEMENTS_SHIFT = 7,
- UCOL_PSK_USED_ELEMENTS_MASK = 0x3FF,
- UCOL_PSK_ITER_SKIP_SHIFT = 17,
- UCOL_PSK_ITER_SKIP_MASK = 0x7FFF
+ UCOL_PSK_BOCSU_BYTES_SHIFT = 7,
+ UCOL_PSK_BOCSU_BYTES_MASK = 3,
+ UCOL_PSK_CONSUMED_CES_SHIFT = 9,
+ UCOL_PSK_CONSUMED_CES_MASK = 0x7FFFF
};
+// macro calculating the number of expansion CEs available
+#define uprv_numAvailableExpCEs(s) (s).CEpos - (s).toReturn
+
/** main sortkey part procedure. On the first call,
* you should pass in a collator, an iterator, empty state
@@ -5418,14 +5504,10 @@ enum {
* 4 - was shifted. Whether the previous iteration finished in the
* shifted state.
* 5, 6 - French continuation bytes written. See the comment in the enum
- * 7..16 - Used elements. Number of CEs that were already used from the
- * expansion buffer or number of bytes from a bocu sequence on
+ * 7,8 - Bocsu bytes used. Number of bytes from a bocu sequence on
* the identical level.
- * 17..31 - iterator skip. Number of move operations iterator needs to
- * skip from the current state in order to continue. This is used
- * only if normalization is turned on, since the normalizing iterator
- * can return undefined state, which means that it's in the middle
- * of normalizing sequence.
+ * 9..31 - CEs consumed. Number of getCE or next32 operations performed
+ * since thes last successful update of the iterator state.
*/
U_CAPI int32_t U_EXPORT2
ucol_nextSortKeyPart(const UCollator *coll,
@@ -5453,7 +5535,6 @@ ucol_nextSortKeyPart(const UCollator *coll,
UTRACE_EXIT_VALUE(0);
return 0;
}
-
/** Setting up situation according to the state we got from the previous iteration */
// The state of the iterator from the previous invocation
uint32_t iterState = state[0];
@@ -5466,13 +5547,13 @@ ucol_nextSortKeyPart(const UCollator *coll,
int32_t byteCountOrFrenchDone = (state[1] >> UCOL_PSK_BYTE_COUNT_OR_FRENCH_DONE_SHIFT) & UCOL_PSK_BYTE_COUNT_OR_FRENCH_DONE_MASK;
// number of bytes in the continuation buffer for French
int32_t usedFrench = (state[1] >> UCOL_PSK_USED_FRENCH_SHIFT) & UCOL_PSK_USED_FRENCH_MASK;
- // Skip the CEs that we got from an extraction
- // and delivered in the previous call
- int32_t usedElements = (state[1] >> UCOL_PSK_USED_ELEMENTS_SHIFT) & UCOL_PSK_USED_ELEMENTS_MASK;
- // Number of times to skip because the iterator returned
- // UITER_NO_STATE when it was stopped in the last iteration, so we had to save the
- // last valid state.
- int32_t iterSkips = (state[1] >> UCOL_PSK_ITER_SKIP_SHIFT) & UCOL_PSK_ITER_SKIP_MASK;
+ // Number of bytes already written from a bocsu sequence. Since
+ // the longes bocsu sequence is 4 long, this can be up to 3.
+ int32_t bocsuBytesUsed = (state[1] >> UCOL_PSK_BOCSU_BYTES_SHIFT) & UCOL_PSK_BOCSU_BYTES_MASK;
+ // Number of elements that need to be consumed in this iteration because
+ // the iterator returned UITER_NO_STATE at the end of the last iteration,
+ // so we had to save the last valid state.
+ int32_t cces = (state[1] >> UCOL_PSK_CONSUMED_CES_SHIFT) & UCOL_PSK_CONSUMED_CES_MASK;
/** values that depend on the collator attributes */
// strength of the collator.
@@ -5567,36 +5648,21 @@ ucol_nextSortKeyPart(const UCollator *coll,
}
}
- // Then, we may have to move more, if the normalizing iterator
- // was going through a normalizing sequence.
- if(iterSkips) {
- // if we are on secondary level AND we do French, we need to go backward instead of forward
- if(level == UCOL_PSK_SECONDARY && doingFrench) {
- s.iterator->move(s.iterator, -iterSkips, UITER_CURRENT);
- } else {
- s.iterator->move(s.iterator, iterSkips, UITER_CURRENT);
- }
- }
- // Number of expansion CEs that were already consumed in the
- // previous iteration for the last code point processed. We
- // want to clean out the expansion buffer, so that we can
- // get correct CEs. This value is persistent over iterations,
- // since we can have several iterations on the one expansion
- // buffer.
- int32_t consumedExpansionCEs = usedElements;
- // Number of bytes already writted from a bocsu sequence. Since
- // the longes bocsu sequence is 4 long, this can be up to 3. It
- // shares the state field with consumedExpansionCEs value, since
- // they cannot simultanously appear on the same level
- int32_t bocsuBytesUsed = 0;
- // Clean out the expansion buffer unless we are on
- // identical level. In that case we use this field
- // to store the number of bytes already written
- // from the previous bocsu sequence.
- if(level < UCOL_PSK_IDENTICAL && usedElements != 0) {
- while(usedElements-->0) {
+ // This variable tells us whether we can attempt to update the state
+ // of iterator. Situations where we don't want to update iterator state
+ // are the existence of expansion CEs that are not yet processed, and
+ // finishing the case level without enough space in the buffer to insert
+ // a level terminator.
+ UBool canUpdateState = TRUE;
+
+ // Consume all the CEs that were consumed at the end of the previous
+ // iteration without updating the iterator state. On identical level,
+ // consume the code points.
+ int32_t counter = cces;
+ if(level < UCOL_PSK_IDENTICAL) {
+ while(counter-->0) {
// If we're doing French and we are on the secondary level,
// we go backwards.
if(level == UCOL_PSK_SECONDARY && doingFrench) {
@@ -5610,22 +5676,19 @@ ucol_nextSortKeyPart(const UCollator *coll,
UTRACE_EXIT_STATUS(*status);
return 0;
}
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
+ }
}
} else {
- bocsuBytesUsed = usedElements;
+ while(counter-->0) {
+ uiter_next32(s.iterator);
+ }
}
- // This variable prevents the adjusting of iterator
- // skip variable when we are the first time on a
- // level. I hope there is a better way to do it, but
- // I could not think of it.
- UBool firstTimeOnLevel = TRUE;
// French secondary needs to know whether the iterator state of zero came from previous level OR
// from a new invocation...
UBool wasDoingPrimary = FALSE;
- // Case level is kind of goofy. This variable tells us that
- // we are still not done with the case level.
- UBool dontAdvanceIteratorBecauseWeNeedALevelTerminator = FALSE;
// destination buffer byte counter. When this guy
// gets to count, we're done with the iteration
int32_t i = 0;
@@ -5650,19 +5713,15 @@ ucol_nextSortKeyPart(const UCollator *coll,
// We should save the state only if we
// are sure that we are done with the
// previous iterator state
- if(consumedExpansionCEs == 0 && byteCountOrFrenchDone == 0) {
+ if(canUpdateState && byteCountOrFrenchDone == 0) {
newState = s.iterator->getState(s.iterator);
- if(newState != UITER_NO_STATE) {
+ if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel && !byteCountOrFrenchDone) {
- iterSkips++;
- }
+ cces = 0;
}
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetNextCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
@@ -5670,6 +5729,7 @@ ucol_nextSortKeyPart(const UCollator *coll,
// Restart the iteration an move to the
// second level
s.iterator->move(s.iterator, 0, UITER_START);
+ cces = 0;
level = UCOL_PSK_SECONDARY;
break;
}
@@ -5685,24 +5745,18 @@ ucol_nextSortKeyPart(const UCollator *coll,
if((CE &=0xff)!=0) {
if(i==count) {
/* overflow */
- byteCountOrFrenchDone=1;
+ byteCountOrFrenchDone = 1;
+ cces--;
goto saveState;
}
dest[i++]=(uint8_t)CE;
}
}
}
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- // s.pos != NULL means there is a normalization buffer in effect
- // in iterative case, this means that we are doing Thai (maybe discontiguos)
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- // maybe it is the end of Thai - we have to have
- // an extra skip
- iterSkips++;
+ canUpdateState = TRUE;
}
}
/* fall through to next level */
@@ -5716,26 +5770,23 @@ ucol_nextSortKeyPart(const UCollator *coll,
// We should save the state only if we
// are sure that we are done with the
// previous iterator state
- if(consumedExpansionCEs == 0) {
+ if(canUpdateState) {
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel) {
- iterSkips++;
- }
+ cces = 0;
}
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetNextCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
- byteCountOrFrenchDone=0;
+ byteCountOrFrenchDone = 0;
// Restart the iteration an move to the
// second level
s.iterator->move(s.iterator, 0, UITER_START);
+ cces = 0;
level = UCOL_PSK_CASE;
break;
}
@@ -5745,13 +5796,10 @@ ucol_nextSortKeyPart(const UCollator *coll,
dest[i++]=(uint8_t)CE;
}
}
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- iterSkips++;
+ canUpdateState = TRUE;
}
}
} else { // French secondary processing
@@ -5762,28 +5810,25 @@ ucol_nextSortKeyPart(const UCollator *coll,
// moved to end.
if(wasDoingPrimary) {
s.iterator->move(s.iterator, 0, UITER_LIMIT);
+ cces = 0;
}
for(;;) {
if(i == count) {
goto saveState;
}
- if(consumedExpansionCEs == 0) {
+ if(canUpdateState) {
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel) {
- iterSkips++;
- }
- }
+ cces = 0;
+ }
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetPrevCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
- byteCountOrFrenchDone=0;
+ byteCountOrFrenchDone = 0;
// Restart the iteration an move to the next level
s.iterator->move(s.iterator, 0, UITER_START);
level = UCOL_PSK_CASE;
@@ -5809,13 +5854,10 @@ ucol_nextSortKeyPart(const UCollator *coll,
}
}
}
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- iterSkips++;
+ canUpdateState = TRUE;
}
}
}
@@ -5836,29 +5878,25 @@ ucol_nextSortKeyPart(const UCollator *coll,
// We should save the state only if we
// are sure that we are done with the
// previous iterator state
- if(consumedExpansionCEs == 0) {
+ if(canUpdateState) {
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel) {
- iterSkips++;
- }
+ cces = 0;
}
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetNextCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// On the case level we might have an unfinished
// case byte. Add one if it's started.
if(caseShift != UCOL_CASE_SHIFT_START) {
dest[i++] = caseByte;
}
- // This is kind of tricky - situation where
- // we need to keep the iterator in the old
- // state, but don't need to bring anything
- // to the next invocation
+ cces = 0;
+ // We have finished processing CEs on this level.
+ // However, we don't know if we have enough space
+ // to add a case level terminator.
if(i < count) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
@@ -5867,13 +5905,16 @@ ucol_nextSortKeyPart(const UCollator *coll,
s.iterator->move(s.iterator, 0, UITER_START);
level = UCOL_PSK_TERTIARY;
} else {
- dontAdvanceIteratorBecauseWeNeedALevelTerminator = TRUE;
+ canUpdateState = FALSE;
}
break;
}
if(!isShiftedCE(CE, LVT, &wasShifted)) {
- if(!isContinuation(CE)) {
+ if(!isContinuation(CE) && ((CE & UCOL_PRIMARYMASK) != 0 || strength > UCOL_PRIMARY)) {
+ // do the case level if we need to do it. We don't want to calculate
+ // case level for primary ignorables if we have only primary strength and case level
+ // otherwise we would break well formedness of CEs
CE = (uint8_t)(CE & UCOL_BYTE_SIZE_MASK);
caseBits = (uint8_t)(CE & 0xC0);
// this copies the case level logic from the
@@ -5911,13 +5952,10 @@ ucol_nextSortKeyPart(const UCollator *coll,
}
}
// Not sure this is correct for the case level - revisit
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- iterSkips++;
+ canUpdateState = TRUE;
}
}
} else {
@@ -5933,26 +5971,23 @@ ucol_nextSortKeyPart(const UCollator *coll,
// We should save the state only if we
// are sure that we are done with the
// previous iterator state
- if(consumedExpansionCEs == 0) {
+ if(canUpdateState) {
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel) {
- iterSkips++;
- }
+ cces = 0;
}
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetNextCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
- byteCountOrFrenchDone=0;
+ byteCountOrFrenchDone = 0;
// Restart the iteration an move to the
// second level
s.iterator->move(s.iterator, 0, UITER_START);
+ cces = 0;
level = UCOL_PSK_QUATERNARY;
break;
}
@@ -5971,13 +6006,10 @@ ucol_nextSortKeyPart(const UCollator *coll,
dest[i++]=(uint8_t)CE;
}
}
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- iterSkips++;
+ canUpdateState = TRUE;
}
}
} else {
@@ -5995,27 +6027,24 @@ ucol_nextSortKeyPart(const UCollator *coll,
// We should save the state only if we
// are sure that we are done with the
// previous iterator state
- if(consumedExpansionCEs == 0) {
+ if(canUpdateState) {
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- if(!firstTimeOnLevel) {
- iterSkips++;
- }
+ cces = 0;
}
}
- firstTimeOnLevel = FALSE;
CE = ucol_IGetNextCE(coll, &s, status);
+ cces++;
if(CE==UCOL_NO_MORE_CES) {
// Add the level separator
terminatePSKLevel(level, maxLevel, i, dest);
//dest[i++] = UCOL_LEVELTERMINATOR;
- byteCountOrFrenchDone=0;
+ byteCountOrFrenchDone = 0;
// Restart the iteration an move to the
// second level
s.iterator->move(s.iterator, 0, UITER_START);
+ cces = 0;
level = UCOL_PSK_QUIN;
break;
}
@@ -6030,7 +6059,7 @@ ucol_nextSortKeyPart(const UCollator *coll,
if((CE &=0xff)!=0) {
if(i==count) {
/* overflow */
- byteCountOrFrenchDone=1;
+ byteCountOrFrenchDone = 1;
goto saveState;
}
dest[i++]=(uint8_t)CE;
@@ -6046,13 +6075,10 @@ ucol_nextSortKeyPart(const UCollator *coll,
}
}
}
- if(s.CEpos - s.toReturn || (s.pos && *s.pos != 0)) {
- consumedExpansionCEs++;
+ if(uprv_numAvailableExpCEs(s)) {
+ canUpdateState = FALSE;
} else {
- consumedExpansionCEs = 0;
- }
- if(s.pos && *s.pos == 0) {
- iterSkips++;
+ canUpdateState = TRUE;
}
}
} else {
@@ -6117,13 +6143,12 @@ ucol_nextSortKeyPart(const UCollator *coll,
newState = s.iterator->getState(s.iterator);
if(newState != UITER_NO_STATE) {
iterState = newState;
- iterSkips = 0;
- } else {
- iterSkips++;
- }
+ cces = 0;
+ }
uint8_t buff[4];
second = uiter_next32(s.iterator);
+ cces++;
// end condition for identical level
if(second == U_SENTINEL) {
@@ -6165,38 +6190,23 @@ ucol_nextSortKeyPart(const UCollator *coll,
saveState:
// Now we need to return stuff. First we want to see whether we have
// done everything for the current state of iterator.
- if(consumedExpansionCEs || byteCountOrFrenchDone
- || dontAdvanceIteratorBecauseWeNeedALevelTerminator) {
+ if(byteCountOrFrenchDone
+ || canUpdateState == FALSE
+ || (newState = s.iterator->getState(s.iterator)) == UITER_NO_STATE) {
// Any of above mean that the previous transaction
// wasn't finished and that we should store the
// previous iterator state.
state[0] = iterState;
} else {
- // The transaction is complete. We will continue in
- // next iteration.
- if((newState = s.iterator->getState(s.iterator))!= UITER_NO_STATE) {
+ // The transaction is complete. We will continue in the next iteration.
state[0] = s.iterator->getState(s.iterator);
- iterSkips = 0;
- } else {
- state[0] = iterState;
- iterSkips++;
- iterSkips += s.consumedChars;
- }
+ cces = 0;
}
- // Store the number of elements processed. On CE levels, this is
- // the number of expansion CEs processed. On identical level, this
- // is the number of bocsu bytes written.
- if(level < UCOL_PSK_IDENTICAL) {
- if((consumedExpansionCEs & UCOL_PSK_USED_ELEMENTS_MASK) != consumedExpansionCEs) {
- *status = U_INDEX_OUTOFBOUNDS_ERROR;
- }
- state[1] = (consumedExpansionCEs & UCOL_PSK_USED_ELEMENTS_MASK) << UCOL_PSK_USED_ELEMENTS_SHIFT;
- } else {
- if((bocsuBytesUsed & UCOL_PSK_USED_ELEMENTS_MASK) != bocsuBytesUsed) {
- *status = U_INDEX_OUTOFBOUNDS_ERROR;
- }
- state[1] = (bocsuBytesUsed & UCOL_PSK_USED_ELEMENTS_MASK) << UCOL_PSK_USED_ELEMENTS_SHIFT;
+ // Store the number of bocsu bytes written.
+ if((bocsuBytesUsed & UCOL_PSK_BOCSU_BYTES_MASK) != bocsuBytesUsed) {
+ *status = U_INDEX_OUTOFBOUNDS_ERROR;
}
+ state[1] = (bocsuBytesUsed & UCOL_PSK_BOCSU_BYTES_MASK) << UCOL_PSK_BOCSU_BYTES_SHIFT;
// Next we put in the level of comparison
state[1] |= ((level & UCOL_PSK_LEVEL_MASK) << UCOL_PSK_LEVEL_SHIFT);
@@ -6212,12 +6222,12 @@ saveState:
if(wasShifted) {
state[1] |= 1 << UCOL_PSK_WAS_SHIFTED_SHIFT;
}
- // Check for iterSkips overflow
- if((iterSkips & UCOL_PSK_ITER_SKIP_MASK) != iterSkips) {
+ // Check for cces overflow
+ if((cces & UCOL_PSK_CONSUMED_CES_MASK) != cces) {
*status = U_INDEX_OUTOFBOUNDS_ERROR;
}
- // Store iterSkips
- state[1] |= ((iterSkips & UCOL_PSK_ITER_SKIP_MASK) << UCOL_PSK_ITER_SKIP_SHIFT);
+ // Store cces
+ state[1] |= ((cces & UCOL_PSK_CONSUMED_CES_MASK) << UCOL_PSK_CONSUMED_CES_SHIFT);
// Check for French overflow
if((usedFrench & UCOL_PSK_USED_FRENCH_MASK) != usedFrench) {
@@ -6403,9 +6413,9 @@ ucol_setUpLatinOne(UCollator *coll, UErrorCode *status) {
if(ch < 0x100) {
CE = coll->latinOneMapping[ch];
} else {
- CE = UTRIE_GET32_FROM_LEAD(coll->mapping, ch);
+ CE = UTRIE_GET32_FROM_LEAD(&coll->mapping, ch);
if(CE == UCOL_NOT_FOUND && coll->UCA) {
- CE = UTRIE_GET32_FROM_LEAD(coll->UCA->mapping, ch);
+ CE = UTRIE_GET32_FROM_LEAD(&coll->UCA->mapping, ch);
}
}
if(CE < UCOL_NOT_FOUND) {
@@ -6434,8 +6444,7 @@ ucol_setUpLatinOne(UCollator *coll, UErrorCode *status) {
{
if((CE & 0x00FFF000) != 0) {
*status = U_UNSUPPORTED_ERROR;
- coll->latinOneFailed = TRUE;
- return FALSE;
+ goto cleanup_after_failure;
}
const UChar *UCharOffset = (UChar *)coll->image+getContractOffset(CE);
@@ -6491,90 +6500,91 @@ ucol_setUpLatinOne(UCollator *coll, UErrorCode *status) {
primShift = 24; secShift = 24; terShift = 24;
if(contractionOffset == coll->latinOneTableLen) { // we need to reallocate
if(!ucol_resizeLatinOneTable(coll, 2*coll->latinOneTableLen, status)) {
- coll->latinOneFailed = TRUE;
- return FALSE;
+ goto cleanup_after_failure;
}
}
} while(*UCharOffset != 0xFFFF);
}
break;
default:
- coll->latinOneFailed = TRUE;
- result = FALSE;
- break;
+ goto cleanup_after_failure;
}
}
}
- ucol_closeElements(it);
// compact table
if(contractionOffset < coll->latinOneTableLen) {
if(!ucol_resizeLatinOneTable(coll, contractionOffset, status)) {
- coll->latinOneFailed = TRUE;
- return FALSE;
+ goto cleanup_after_failure;
}
}
+ ucol_closeElements(it);
return result;
+
+cleanup_after_failure:
+ // status should already be set before arriving here.
+ coll->latinOneFailed = TRUE;
+ ucol_closeElements(it);
+ return FALSE;
}
void ucol_updateInternalState(UCollator *coll, UErrorCode *status) {
- if(U_SUCCESS(*status)) {
- if(coll->caseFirst == UCOL_UPPER_FIRST) {
- coll->caseSwitch = UCOL_CASE_SWITCH;
- } else {
- coll->caseSwitch = UCOL_NO_CASE_SWITCH;
- }
+ if(U_SUCCESS(*status)) {
+ if(coll->caseFirst == UCOL_UPPER_FIRST) {
+ coll->caseSwitch = UCOL_CASE_SWITCH;
+ } else {
+ coll->caseSwitch = UCOL_NO_CASE_SWITCH;
+ }
- if(coll->caseLevel == UCOL_ON || coll->caseFirst == UCOL_OFF) {
- coll->tertiaryMask = UCOL_REMOVE_CASE;
- coll->tertiaryCommon = UCOL_COMMON3_NORMAL;
- coll->tertiaryAddition = UCOL_FLAG_BIT_MASK_CASE_SW_OFF;
- coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_OFF;
- coll->tertiaryBottom = UCOL_COMMON_BOT3;
- } else {
- coll->tertiaryMask = UCOL_KEEP_CASE;
- coll->tertiaryAddition = UCOL_FLAG_BIT_MASK_CASE_SW_ON;
- if(coll->caseFirst == UCOL_UPPER_FIRST) {
- coll->tertiaryCommon = UCOL_COMMON3_UPPERFIRST;
- coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_UPPER;
- coll->tertiaryBottom = UCOL_COMMON_BOTTOM3_CASE_SW_UPPER;
- } else {
- coll->tertiaryCommon = UCOL_COMMON3_NORMAL;
- coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_LOWER;
- coll->tertiaryBottom = UCOL_COMMON_BOTTOM3_CASE_SW_LOWER;
- }
- }
+ if(coll->caseLevel == UCOL_ON || coll->caseFirst == UCOL_OFF) {
+ coll->tertiaryMask = UCOL_REMOVE_CASE;
+ coll->tertiaryCommon = UCOL_COMMON3_NORMAL;
+ coll->tertiaryAddition = UCOL_FLAG_BIT_MASK_CASE_SW_OFF;
+ coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_OFF;
+ coll->tertiaryBottom = UCOL_COMMON_BOT3;
+ } else {
+ coll->tertiaryMask = UCOL_KEEP_CASE;
+ coll->tertiaryAddition = UCOL_FLAG_BIT_MASK_CASE_SW_ON;
+ if(coll->caseFirst == UCOL_UPPER_FIRST) {
+ coll->tertiaryCommon = UCOL_COMMON3_UPPERFIRST;
+ coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_UPPER;
+ coll->tertiaryBottom = UCOL_COMMON_BOTTOM3_CASE_SW_UPPER;
+ } else {
+ coll->tertiaryCommon = UCOL_COMMON3_NORMAL;
+ coll->tertiaryTop = UCOL_COMMON_TOP3_CASE_SW_LOWER;
+ coll->tertiaryBottom = UCOL_COMMON_BOTTOM3_CASE_SW_LOWER;
+ }
+ }
- /* Set the compression values */
- uint8_t tertiaryTotal = (uint8_t)(coll->tertiaryTop - UCOL_COMMON_BOT3-1);
- coll->tertiaryTopCount = (uint8_t)(UCOL_PROPORTION3*tertiaryTotal); /* we multilply double with int, but need only int */
- coll->tertiaryBottomCount = (uint8_t)(tertiaryTotal - coll->tertiaryTopCount);
+ /* Set the compression values */
+ uint8_t tertiaryTotal = (uint8_t)(coll->tertiaryTop - UCOL_COMMON_BOT3-1);
+ coll->tertiaryTopCount = (uint8_t)(UCOL_PROPORTION3*tertiaryTotal); /* we multilply double with int, but need only int */
+ coll->tertiaryBottomCount = (uint8_t)(tertiaryTotal - coll->tertiaryTopCount);
- if(coll->caseLevel == UCOL_OFF && coll->strength == UCOL_TERTIARY
- && coll->frenchCollation == UCOL_OFF && coll->alternateHandling == UCOL_NON_IGNORABLE) {
- coll->sortKeyGen = ucol_calcSortKeySimpleTertiary;
- } else {
- coll->sortKeyGen = ucol_calcSortKey;
- }
- if(coll->caseLevel == UCOL_OFF && coll->strength <= UCOL_TERTIARY && coll->numericCollation == UCOL_OFF
- && coll->alternateHandling == UCOL_NON_IGNORABLE && !coll->latinOneFailed) {
- if(coll->latinOneCEs == NULL || coll->latinOneRegenTable) {
- if(ucol_setUpLatinOne(coll, status)) { // if we succeed in building latin1 table, we'll use it
- //fprintf(stderr, "F");
- coll->latinOneUse = TRUE;
- } else {
- coll->latinOneUse = FALSE;
- }
- if(*status == U_UNSUPPORTED_ERROR) {
- *status = U_ZERO_ERROR;
- }
- } else { // latin1Table exists and it doesn't need to be regenerated, just use it
- coll->latinOneUse = TRUE;
- }
+ if(coll->caseLevel == UCOL_OFF && coll->strength == UCOL_TERTIARY
+ && coll->frenchCollation == UCOL_OFF && coll->alternateHandling == UCOL_NON_IGNORABLE) {
+ coll->sortKeyGen = ucol_calcSortKeySimpleTertiary;
+ } else {
+ coll->sortKeyGen = ucol_calcSortKey;
+ }
+ if(coll->caseLevel == UCOL_OFF && coll->strength <= UCOL_TERTIARY && coll->numericCollation == UCOL_OFF
+ && coll->alternateHandling == UCOL_NON_IGNORABLE && !coll->latinOneFailed) {
+ if(coll->latinOneCEs == NULL || coll->latinOneRegenTable) {
+ if(ucol_setUpLatinOne(coll, status)) { // if we succeed in building latin1 table, we'll use it
+ //fprintf(stderr, "F");
+ coll->latinOneUse = TRUE;
} else {
coll->latinOneUse = FALSE;
}
+ if(*status == U_UNSUPPORTED_ERROR) {
+ *status = U_ZERO_ERROR;
+ }
+ } else { // latin1Table exists and it doesn't need to be regenerated, just use it
+ coll->latinOneUse = TRUE;
}
-
+ } else {
+ coll->latinOneUse = FALSE;
+ }
+ }
}
U_CAPI uint32_t U_EXPORT2
@@ -6863,9 +6873,7 @@ ucol_isTailored(const UCollator *coll, const UChar u, UErrorCode *status) {
return FALSE;
}
} else { /* regular */
- /*CE = ucmpe32_get(coll->mapping, u);*/
- CE = UTRIE_GET32_FROM_LEAD(coll->mapping, u);
-
+ CE = UTRIE_GET32_FROM_LEAD(&coll->mapping, u);
}
if(isContraction(CE)) {
@@ -7083,7 +7091,8 @@ inline void UCOL_CEBUF_PUT(ucol_CEBuf *b, uint32_t ce, collIterate *ci) {
/* This is a trick string compare function that goes in and uses sortkeys to compare */
/* It is used when compare gets in trouble and needs to bail out */
static UCollationResult ucol_compareUsingSortKeys(collIterate *sColl,
- collIterate *tColl)
+ collIterate *tColl,
+ UErrorCode *status)
{
uint8_t sourceKey[UCOL_MAX_BUFFER], targetKey[UCOL_MAX_BUFFER];
uint8_t *sourceKeyP = sourceKey;
@@ -7092,31 +7101,32 @@ static UCollationResult ucol_compareUsingSortKeys(collIterate *sColl,
const UCollator *coll = sColl->coll;
UChar *source = NULL;
UChar *target = NULL;
+ int32_t result = UCOL_EQUAL;
UChar sStackBuf[256], tStackBuf[256];
int32_t sourceLength = (sColl->flags&UCOL_ITER_HASLEN)?(sColl->endp-sColl->string):-1;
int32_t targetLength = (tColl->flags&UCOL_ITER_HASLEN)?(tColl->endp-tColl->string):-1;
// TODO: Handle long strings. Do the same in ucol_checkIdent.
if(sColl->flags & UCOL_USE_ITERATOR) {
- sColl->iterator->move(sColl->iterator, 0, UITER_START);
- tColl->iterator->move(tColl->iterator, 0, UITER_START);
- source = sStackBuf;
- UChar *sBufp = source;
- target = tStackBuf;
- UChar *tBufp = target;
- while(sColl->iterator->hasNext(sColl->iterator)) {
- *sBufp++ = (UChar)sColl->iterator->next(sColl->iterator);
- }
- while(tColl->iterator->hasNext(tColl->iterator)) {
- *tBufp++ = (UChar)tColl->iterator->next(tColl->iterator);
- }
- sourceLength = sBufp - source;
- targetLength = tBufp - target;
+ sColl->iterator->move(sColl->iterator, 0, UITER_START);
+ tColl->iterator->move(tColl->iterator, 0, UITER_START);
+ source = sStackBuf;
+ UChar *sBufp = source;
+ target = tStackBuf;
+ UChar *tBufp = target;
+ while(sColl->iterator->hasNext(sColl->iterator)) {
+ *sBufp++ = (UChar)sColl->iterator->next(sColl->iterator);
+ }
+ while(tColl->iterator->hasNext(tColl->iterator)) {
+ *tBufp++ = (UChar)tColl->iterator->next(tColl->iterator);
+ }
+ sourceLength = sBufp - source;
+ targetLength = tBufp - target;
} else { // no iterators
- sourceLength = (sColl->flags&UCOL_ITER_HASLEN)?(sColl->endp-sColl->string):-1;
- targetLength = (tColl->flags&UCOL_ITER_HASLEN)?(tColl->endp-tColl->string):-1;
- source = sColl->string;
- target = tColl->string;
+ sourceLength = (sColl->flags&UCOL_ITER_HASLEN)?(sColl->endp-sColl->string):-1;
+ targetLength = (tColl->flags&UCOL_ITER_HASLEN)?(tColl->endp-tColl->string):-1;
+ source = sColl->string;
+ target = tColl->string;
}
@@ -7124,26 +7134,31 @@ static UCollationResult ucol_compareUsingSortKeys(collIterate *sColl,
sourceKeyLen = ucol_getSortKey(coll, source, sourceLength, sourceKeyP, sourceKeyLen);
if(sourceKeyLen > UCOL_MAX_BUFFER) {
sourceKeyP = (uint8_t*)uprv_malloc(sourceKeyLen*sizeof(uint8_t));
- if(sourceKeyP != NULL) {
- sourceKeyLen = ucol_getSortKey(coll, source, sourceLength, sourceKeyP, sourceKeyLen);
+ if(sourceKeyP == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ goto cleanup_and_do_compare;
}
+ sourceKeyLen = ucol_getSortKey(coll, source, sourceLength, sourceKeyP, sourceKeyLen);
}
targetKeyLen = ucol_getSortKey(coll, target, targetLength, targetKeyP, targetKeyLen);
if(targetKeyLen > UCOL_MAX_BUFFER) {
targetKeyP = (uint8_t*)uprv_malloc(targetKeyLen*sizeof(uint8_t));
- if(targetKeyP != NULL) {
- targetKeyLen = ucol_getSortKey(coll, target, targetLength, targetKeyP, targetKeyLen);
+ if(targetKeyP == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ goto cleanup_and_do_compare;
}
+ targetKeyLen = ucol_getSortKey(coll, target, targetLength, targetKeyP, targetKeyLen);
}
- int32_t result = uprv_strcmp((const char*)sourceKeyP, (const char*)targetKeyP);
+ result = uprv_strcmp((const char*)sourceKeyP, (const char*)targetKeyP);
- if(sourceKeyP != sourceKey) {
+cleanup_and_do_compare:
+ if(sourceKeyP != NULL && sourceKeyP != sourceKey) {
uprv_free(sourceKeyP);
}
- if(targetKeyP != targetKey) {
+ if(targetKeyP != NULL && targetKeyP != targetKey) {
uprv_free(targetKeyP);
}
@@ -7186,7 +7201,7 @@ ucol_strcollRegular( collIterate *sColl, collIterate *tColl,
UBool doHiragana = (coll->hiraganaQ == UCOL_ON) && checkQuad;
if(doHiragana && shifted) {
- return (ucol_compareUsingSortKeys(sColl, tColl));
+ return (ucol_compareUsingSortKeys(sColl, tColl, status));
}
uint8_t caseSwitch = coll->caseSwitch;
uint8_t tertiaryMask = coll->tertiaryMask;
@@ -7469,8 +7484,15 @@ ucol_strcollRegular( collIterate *sColl, collIterate *tColl,
for(;;) {
while((secS & UCOL_REMOVE_CASE) == 0) {
if(!isContinuation(*sCE++)) {
- secS =*(sCE-1) & UCOL_TERT_CASE_MASK;
- secS ^= caseSwitch;
+ secS =*(sCE-1);
+ if(((secS & UCOL_PRIMARYMASK) != 0) || strength > UCOL_PRIMARY) {
+ // primary ignorables should not be considered on the case level when the strength is primary
+ // otherwise, the CEs stop being well-formed
+ secS &= UCOL_TERT_CASE_MASK;
+ secS ^= caseSwitch;
+ } else {
+ secS = 0;
+ }
} else {
secS = 0;
}
@@ -7478,8 +7500,15 @@ ucol_strcollRegular( collIterate *sColl, collIterate *tColl,
while((secT & UCOL_REMOVE_CASE) == 0) {
if(!isContinuation(*tCE++)) {
- secT = *(tCE-1) & UCOL_TERT_CASE_MASK;
- secT ^= caseSwitch;
+ secT = *(tCE-1);
+ if(((secT & UCOL_PRIMARYMASK) != 0) || strength > UCOL_PRIMARY) {
+ // primary ignorables should not be considered on the case level when the strength is primary
+ // otherwise, the CEs stop being well-formed
+ secT &= UCOL_TERT_CASE_MASK;
+ secT ^= caseSwitch;
+ } else {
+ secT = 0;
+ }
} else {
secT = 0;
}
@@ -7664,7 +7693,7 @@ ucol_getLatinOneContraction(const UCollator *coll, int32_t strength,
return UCOL_BAIL_OUT_CE;
}
// skip completely ignorables
- uint32_t isZeroCE = UTRIE_GET32_FROM_LEAD(coll->mapping, schar);
+ uint32_t isZeroCE = UTRIE_GET32_FROM_LEAD(&coll->mapping, schar);
if(isZeroCE == 0) { // we have to ignore completely ignorables
(*index)++;
continue;
@@ -7700,7 +7729,7 @@ ucol_strcollUseLatin1( const UCollator *coll,
UChar sChar = 0, tChar = 0;
uint32_t sOrder=0, tOrder=0;
- UBool endOfSource = FALSE, endOfTarget = FALSE;
+ UBool endOfSource = FALSE;
uint32_t *elements = coll->latinOneCEs;
@@ -7824,7 +7853,7 @@ endOfPrimLoop:
if(strength >= UCOL_SECONDARY) {
// adjust the table beggining
elements += coll->latinOneTableLen;
- endOfSource = FALSE; endOfTarget = FALSE;
+ endOfSource = FALSE;
if(coll->frenchCollation == UCOL_OFF) { // non French
// This loop is a simplified copy of primary loop
@@ -7938,7 +7967,7 @@ endOfSecLoop:
// tertiary loop is the same as secondary (except no French)
elements += coll->latinOneTableLen;
sIndex = 0; tIndex = 0;
- endOfSource = FALSE; endOfTarget = FALSE;
+ endOfSource = FALSE;
for(;;) {
while(sOrder==0) {
if(sIndex==sLen) {
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_bld.cpp b/Build/source/libs/icu-xetex/i18n/ucol_bld.cpp
index 1768d13c189..1191a86b825 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_bld.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_bld.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -333,7 +333,7 @@ U_CFUNC void ucol_inv_getGapPositions(UColTokenParser *src, UColTokListHeader *l
//if(lh->baseCE >= PRIMARY_IMPLICIT_MIN && lh->baseCE < PRIMARY_IMPLICIT_MAX ) { /* implicits - */
lh->pos[0] = 0;
t1 = lh->baseCE;
- t2 = lh->baseContCE;
+ t2 = lh->baseContCE & UCOL_REMOVE_CONTINUATION;
lh->gapsLo[0] = (t1 & UCOL_PRIMARYMASK) | (t2 & UCOL_PRIMARYMASK) >> 16;
lh->gapsLo[1] = (t1 & UCOL_SECONDARYMASK) << 16 | (t2 & UCOL_SECONDARYMASK) << 8;
lh->gapsLo[2] = (UCOL_TERTIARYORDER(t1)) << 24 | (UCOL_TERTIARYORDER(t2)) << 16;
@@ -341,7 +341,7 @@ U_CFUNC void ucol_inv_getGapPositions(UColTokenParser *src, UColTokListHeader *l
primaryCE = uprv_uca_getImplicitFromRaw(uprv_uca_getRawFromImplicit(primaryCE)+1);
t1 = primaryCE & UCOL_PRIMARYMASK | 0x0505;
- t2 = (primaryCE << 16) & UCOL_PRIMARYMASK | UCOL_CONTINUATION_MARKER;
+ t2 = (primaryCE << 16) & UCOL_PRIMARYMASK; // | UCOL_CONTINUATION_MARKER;
lh->gapsHi[0] = (t1 & UCOL_PRIMARYMASK) | (t2 & UCOL_PRIMARYMASK) >> 16;
lh->gapsHi[1] = (t1 & UCOL_SECONDARYMASK) << 16 | (t2 & UCOL_SECONDARYMASK) << 8;
@@ -350,12 +350,12 @@ U_CFUNC void ucol_inv_getGapPositions(UColTokenParser *src, UColTokListHeader *l
//} else if(lh->baseCE == UCOL_RESET_TOP_VALUE && lh->baseContCE == 0) {
lh->pos[0] = 0;
t1 = lh->baseCE;
- t2 = lh->baseContCE;
+ t2 = lh->baseContCE&UCOL_REMOVE_CONTINUATION;
lh->gapsLo[0] = (t1 & UCOL_PRIMARYMASK) | (t2 & UCOL_PRIMARYMASK) >> 16;
lh->gapsLo[1] = (t1 & UCOL_SECONDARYMASK) << 16 | (t2 & UCOL_SECONDARYMASK) << 8;
lh->gapsLo[2] = (UCOL_TERTIARYORDER(t1)) << 24 | (UCOL_TERTIARYORDER(t2)) << 16;
t1 = lh->nextCE;
- t2 = lh->nextContCE;
+ t2 = lh->nextContCE&UCOL_REMOVE_CONTINUATION;
lh->gapsHi[0] = (t1 & UCOL_PRIMARYMASK) | (t2 & UCOL_PRIMARYMASK) >> 16;
lh->gapsHi[1] = (t1 & UCOL_SECONDARYMASK) << 16 | (t2 & UCOL_SECONDARYMASK) << 8;
lh->gapsHi[2] = (UCOL_TERTIARYORDER(t1)) << 24 | (UCOL_TERTIARYORDER(t2)) << 16;
@@ -687,17 +687,19 @@ U_CFUNC void ucol_doCE(UColTokenParser *src, uint32_t *CEparts, UColToken *tok,
// we want to set case bits here and now, not later.
// Case bits handling
- tok->CEs[0] &= 0xFFFFFF3F; // Clean the case bits field
- int32_t cSize = (tok->source & 0xFF000000) >> 24;
- UChar *cPoints = (tok->source & 0x00FFFFFF) + src->source;
-
- if(cSize > 1) {
- // Do it manually
- tok->CEs[0] |= ucol_uprv_getCaseBits(src->UCA, cPoints, cSize, status);
- } else {
- // Copy it from the UCA
- uint32_t caseCE = ucol_getFirstCE(src->UCA, cPoints[0], status);
- tok->CEs[0] |= (caseCE & 0xC0);
+ if(tok->CEs[0] != 0) { // case bits should be set only for non-ignorables
+ tok->CEs[0] &= 0xFFFFFF3F; // Clean the case bits field
+ int32_t cSize = (tok->source & 0xFF000000) >> 24;
+ UChar *cPoints = (tok->source & 0x00FFFFFF) + src->source;
+
+ if(cSize > 1) {
+ // Do it manually
+ tok->CEs[0] |= ucol_uprv_getCaseBits(src->UCA, cPoints, cSize, status);
+ } else {
+ // Copy it from the UCA
+ uint32_t caseCE = ucol_getFirstCE(src->UCA, cPoints[0], status);
+ tok->CEs[0] |= (caseCE & 0xC0);
+ }
}
#if UCOL_DEBUG==2
@@ -1200,7 +1202,7 @@ UCATableHeader *ucol_assembleTailoringTable(UColTokenParser *src, UErrorCode *st
}
// Add completely ignorable elements
- utrie_enum(t->UCA->mapping, NULL, _processUCACompleteIgnorables, t);
+ utrie_enum(&t->UCA->mapping, NULL, _processUCACompleteIgnorables, t);
// canonical closure
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_cnt.cpp b/Build/source/libs/icu-xetex/i18n/ucol_cnt.cpp
index 0e57a3bb30a..68e9cfb4dac 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_cnt.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_cnt.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -26,8 +26,6 @@
#include "ucol_cnt.h"
#include "cmemory.h"
-U_NAMESPACE_BEGIN
-
static void uprv_growTable(ContractionTable *tbl, UErrorCode *status) {
if(tbl->position == tbl->size) {
uint32_t *newData = (uint32_t *)uprv_realloc(tbl->CEs, 2*tbl->size*sizeof(uint32_t));
@@ -55,15 +53,15 @@ uprv_cnttab_open(UNewTrie *mapping, UErrorCode *status) {
}
CntTable *tbl = (CntTable *)uprv_malloc(sizeof(CntTable));
if(tbl == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
}
tbl->mapping = mapping;
tbl->elements = (ContractionTable **)uprv_malloc(INIT_EXP_TABLE_SIZE*sizeof(ContractionTable *));
if(tbl->elements == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(tbl);
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(tbl);
+ return NULL;
}
tbl->capacity = INIT_EXP_TABLE_SIZE;
uprv_memset(tbl->elements, 0, INIT_EXP_TABLE_SIZE*sizeof(ContractionTable *));
@@ -79,22 +77,22 @@ uprv_cnttab_open(UNewTrie *mapping, UErrorCode *status) {
static ContractionTable *addATableElement(CntTable *table, uint32_t *key, UErrorCode *status) {
ContractionTable *el = (ContractionTable *)uprv_malloc(sizeof(ContractionTable));
if(el == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
}
el->CEs = (uint32_t *)uprv_malloc(INIT_EXP_TABLE_SIZE*sizeof(uint32_t));
if(el->CEs == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(el);
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(el);
+ return NULL;
}
el->codePoints = (UChar *)uprv_malloc(INIT_EXP_TABLE_SIZE*sizeof(UChar));
if(el->codePoints == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(el->CEs);
- uprv_free(el);
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(el->CEs);
+ uprv_free(el);
+ return NULL;
}
el->position = 0;
@@ -111,20 +109,20 @@ static ContractionTable *addATableElement(CntTable *table, uint32_t *key, UError
if(table->size == table->capacity) {
ContractionTable **newElements = (ContractionTable **)uprv_malloc(table->capacity*2*sizeof(ContractionTable *));
// do realloc
-/* table->elements = (ContractionTable **)realloc(table->elements, table->capacity*2*sizeof(ContractionTable *));*/
+ /* table->elements = (ContractionTable **)realloc(table->elements, table->capacity*2*sizeof(ContractionTable *));*/
if(newElements == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(el->codePoints);
- uprv_free(el->CEs);
- uprv_free(el);
- return NULL;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(el->codePoints);
+ uprv_free(el->CEs);
+ uprv_free(el);
+ return NULL;
} else {
- ContractionTable **oldElements = table->elements;
- uprv_memcpy(newElements, oldElements, table->capacity*sizeof(ContractionTable *));
- uprv_memset(newElements+table->capacity, 0, table->capacity*sizeof(ContractionTable *));
- table->capacity *= 2;
- table->elements = newElements;
- uprv_free(oldElements);
+ ContractionTable **oldElements = table->elements;
+ uprv_memcpy(newElements, oldElements, table->capacity*sizeof(ContractionTable *));
+ uprv_memset(newElements+table->capacity, 0, table->capacity*sizeof(ContractionTable *));
+ table->capacity *= 2;
+ table->elements = newElements;
+ uprv_free(oldElements);
}
}
@@ -145,8 +143,8 @@ uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *sta
}
table->offsets = (int32_t *)uprv_malloc(table->size*sizeof(int32_t));
if(table->offsets == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return 0;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return 0;
}
@@ -162,10 +160,10 @@ uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *sta
}
table->CEs = (uint32_t *)uprv_malloc(table->position*sizeof(uint32_t));
if(table->CEs == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(table->offsets);
- table->offsets = NULL;
- return 0;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(table->offsets);
+ table->offsets = NULL;
+ return 0;
}
uprv_memset(table->CEs, '?', table->position*sizeof(uint32_t));
@@ -174,12 +172,12 @@ uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *sta
}
table->codePoints = (UChar *)uprv_malloc(table->position*sizeof(UChar));
if(table->codePoints == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(table->offsets);
- table->offsets = NULL;
- uprv_free(table->CEs);
- table->CEs = NULL;
- return 0;
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(table->offsets);
+ table->offsets = NULL;
+ uprv_free(table->CEs);
+ table->CEs = NULL;
+ return 0;
}
uprv_memset(table->codePoints, '?', table->position*sizeof(UChar));
@@ -191,14 +189,14 @@ uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *sta
int32_t size = table->elements[i]->position;
uint8_t ccMax = 0, ccMin = 255, cc = 0;
for(j = 1; j<size; j++) {
- cc = u_getCombiningClass(table->elements[i]->codePoints[j]);
- if(cc>ccMax) {
- ccMax = cc;
- }
- if(cc<ccMin) {
- ccMin = cc;
- }
- *(cpPointer+j) = table->elements[i]->codePoints[j];
+ cc = u_getCombiningClass(table->elements[i]->codePoints[j]);
+ if(cc>ccMax) {
+ ccMax = cc;
+ }
+ if(cc<ccMin) {
+ ccMin = cc;
+ }
+ *(cpPointer+j) = table->elements[i]->codePoints[j];
}
*cpPointer = ((ccMin==ccMax)?1:0 << 8) | ccMax;
@@ -233,97 +231,112 @@ uprv_cnttab_constructTable(CntTable *table, uint32_t mainOffset, UErrorCode *sta
}
static ContractionTable *uprv_cnttab_cloneContraction(ContractionTable *t, UErrorCode *status) {
- ContractionTable *r = (ContractionTable *)uprv_malloc(sizeof(ContractionTable));
- if(r == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
-
- r->position = t->position;
- r->size = t->size;
-
- r->codePoints = (UChar *)uprv_malloc(sizeof(UChar)*t->size);
- r->CEs = (uint32_t *)uprv_malloc(sizeof(uint32_t)*t->size);
-
- /* test for NULL */
- if((r->codePoints == NULL) || (r->CEs == NULL)) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- uprv_memcpy(r->codePoints, t->codePoints, sizeof(UChar)*t->size);
- uprv_memcpy(r->CEs, t->CEs, sizeof(uint32_t)*t->size);
-
- return r;
+ ContractionTable *r = (ContractionTable *)uprv_malloc(sizeof(ContractionTable));
+ if(r == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
+ }
+
+ r->position = t->position;
+ r->size = t->size;
+
+ r->codePoints = (UChar *)uprv_malloc(sizeof(UChar)*t->size);
+ if(r->codePoints == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r);
+ return NULL;
+ }
+ r->CEs = (uint32_t *)uprv_malloc(sizeof(uint32_t)*t->size);
+ if(r->CEs == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r->codePoints);
+ uprv_free(r);
+ return NULL;
+ }
+ uprv_memcpy(r->codePoints, t->codePoints, sizeof(UChar)*t->size);
+ uprv_memcpy(r->CEs, t->CEs, sizeof(uint32_t)*t->size);
+
+ return r;
}
U_CAPI CntTable* U_EXPORT2
uprv_cnttab_clone(CntTable *t, UErrorCode *status) {
- if(U_FAILURE(*status)) {
- return NULL;
- }
- int32_t i = 0;
- CntTable *r = (CntTable *)uprv_malloc(sizeof(CntTable));
- /* test for NULL */
- if (r == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- r->position = t->position;
- r->size = t->size;
- r->capacity = t->capacity;
-
- r->mapping = t->mapping;
-
- r->elements = (ContractionTable **)uprv_malloc(t->capacity*sizeof(ContractionTable *));
- /* test for NULL */
- if (r->elements == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- //uprv_memcpy(r->elements, t->elements, t->capacity*sizeof(ContractionTable *));
-
- for(i = 0; i<t->size; i++) {
- r->elements[i] = uprv_cnttab_cloneContraction(t->elements[i], status);
- }
-
- if(t->CEs != NULL) {
- r->CEs = (uint32_t *)uprv_malloc(t->position*sizeof(uint32_t));
- /* test for NULL */
- if (r->CEs == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
+ if(U_FAILURE(*status)) {
return NULL;
}
- uprv_memcpy(r->CEs, t->CEs, t->position*sizeof(uint32_t));
- } else {
- r->CEs = NULL;
- }
-
- if(t->codePoints != NULL) {
- r->codePoints = (UChar *)uprv_malloc(t->position*sizeof(UChar));
+ int32_t i = 0;
+ CntTable *r = (CntTable *)uprv_malloc(sizeof(CntTable));
/* test for NULL */
- if (r->codePoints == NULL) {
+ if (r == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
return NULL;
}
- uprv_memcpy(r->codePoints, t->codePoints, t->position*sizeof(UChar));
- } else {
- r->codePoints = NULL;
- }
+ r->position = t->position;
+ r->size = t->size;
+ r->capacity = t->capacity;
+
+ r->mapping = t->mapping;
- if(t->offsets != NULL) {
- r->offsets = (int32_t *)uprv_malloc(t->size*sizeof(int32_t));
+ r->elements = (ContractionTable **)uprv_malloc(t->capacity*sizeof(ContractionTable *));
/* test for NULL */
- if (r->offsets == NULL) {
+ if (r->elements == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r);
return NULL;
}
- uprv_memcpy(r->offsets, t->offsets, t->size*sizeof(int32_t));
- } else {
- r->offsets = NULL;
- }
+ //uprv_memcpy(r->elements, t->elements, t->capacity*sizeof(ContractionTable *));
- return r;
+ for(i = 0; i<t->size; i++) {
+ r->elements[i] = uprv_cnttab_cloneContraction(t->elements[i], status);
+ }
+
+ if(t->CEs != NULL) {
+ r->CEs = (uint32_t *)uprv_malloc(t->position*sizeof(uint32_t));
+ /* test for NULL */
+ if (r->CEs == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r->elements);
+ uprv_free(r);
+ return NULL;
+ }
+ uprv_memcpy(r->CEs, t->CEs, t->position*sizeof(uint32_t));
+ } else {
+ r->CEs = NULL;
+ }
+
+ if(t->codePoints != NULL) {
+ r->codePoints = (UChar *)uprv_malloc(t->position*sizeof(UChar));
+ /* test for NULL */
+ if (r->codePoints == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r->CEs);
+ uprv_free(r->elements);
+ uprv_free(r);
+ return NULL;
+ }
+ uprv_memcpy(r->codePoints, t->codePoints, t->position*sizeof(UChar));
+ } else {
+ r->codePoints = NULL;
+ }
+
+ if(t->offsets != NULL) {
+ r->offsets = (int32_t *)uprv_malloc(t->size*sizeof(int32_t));
+ /* test for NULL */
+ if (r->offsets == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(r->codePoints);
+ uprv_free(r->CEs);
+ uprv_free(r->elements);
+ uprv_free(r);
+ return NULL;
+ }
+ uprv_memcpy(r->offsets, t->offsets, t->size*sizeof(int32_t));
+ } else {
+ r->offsets = NULL;
+ }
+
+ return r;
}
U_CAPI void U_EXPORT2
@@ -352,7 +365,7 @@ uprv_cnttab_changeLastCE(CntTable *table, uint32_t element, uint32_t value, UErr
}
if((element == 0xFFFFFF) || (tbl = table->elements[element]) == NULL) {
- return 0;
+ return 0;
}
tbl->CEs[tbl->position-1] = value;
@@ -365,12 +378,12 @@ uprv_cnttab_changeLastCE(CntTable *table, uint32_t element, uint32_t value, UErr
U_CAPI uint32_t U_EXPORT2
uprv_cnttab_insertContraction(CntTable *table, uint32_t element, UChar codePoint, uint32_t value, UErrorCode *status) {
- element &= 0xFFFFFF;
ContractionTable *tbl = NULL;
if(U_FAILURE(*status)) {
return 0;
}
+ element &= 0xFFFFFF;
if((element == 0xFFFFFF) || (tbl = table->elements[element]) == NULL) {
tbl = addATableElement(table, &element, status);
@@ -457,40 +470,40 @@ static ContractionTable *_cnttab_getContractionTable(CntTable *table, uint32_t e
ContractionTable *tbl = NULL;
if((element == 0xFFFFFF) || (tbl = table->elements[element]) == NULL) {
- return NULL;
+ return NULL;
} else {
- return tbl;
+ return tbl;
}
}
static int32_t _cnttab_findCP(ContractionTable *tbl, UChar codePoint) {
uint32_t position = 0;
if(tbl == NULL) {
- return -1;
+ return -1;
}
while(codePoint > tbl->codePoints[position]) {
- position++;
- if(position > tbl->position) {
- return -1;
- }
+ position++;
+ if(position > tbl->position) {
+ return -1;
+ }
}
if (codePoint == tbl->codePoints[position]) {
- return position;
+ return position;
} else {
- return -1;
+ return -1;
}
}
static uint32_t _cnttab_getCE(ContractionTable *tbl, int32_t position) {
- if(tbl == NULL) {
- return UCOL_NOT_FOUND;
- }
- if((uint32_t)position > tbl->position || position == -1) {
- return UCOL_NOT_FOUND;
- } else {
- return tbl->CEs[position];
- }
+ if(tbl == NULL) {
+ return UCOL_NOT_FOUND;
+ }
+ if((uint32_t)position > tbl->position || position == -1) {
+ return UCOL_NOT_FOUND;
+ } else {
+ return tbl->CEs[position];
+ }
}
U_CAPI int32_t U_EXPORT2
@@ -528,20 +541,16 @@ uprv_cnttab_isTailored(CntTable *table, uint32_t element, UChar *ztString, UErro
}
while(*(ztString)!=0) {
- element = uprv_cnttab_findCE(table, element, *(ztString), status);
- if(element == UCOL_NOT_FOUND) {
- return FALSE;
- }
- if(!isCntTableElement(element)) {
- return TRUE;
- }
- ztString++;
- }
- if(uprv_cnttab_getCE(table, element, 0, status) != UCOL_NOT_FOUND) {
- return TRUE;
- } else {
- return FALSE;
+ element = uprv_cnttab_findCE(table, element, *(ztString), status);
+ if(element == UCOL_NOT_FOUND) {
+ return FALSE;
+ }
+ if(!isCntTableElement(element)) {
+ return TRUE;
+ }
+ ztString++;
}
+ return (UBool)(uprv_cnttab_getCE(table, element, 0, status) != UCOL_NOT_FOUND);
}
U_CAPI uint32_t U_EXPORT2
@@ -555,25 +564,23 @@ uprv_cnttab_changeContraction(CntTable *table, uint32_t element, UChar codePoint
}
if((element == 0xFFFFFF) || (tbl = table->elements[element]) == NULL) {
- return 0;
+ return 0;
}
uint32_t position = 0;
while(codePoint > tbl->codePoints[position]) {
- position++;
- if(position > tbl->position) {
- return UCOL_NOT_FOUND;
- }
+ position++;
+ if(position > tbl->position) {
+ return UCOL_NOT_FOUND;
+ }
}
if (codePoint == tbl->codePoints[position]) {
- tbl->CEs[position] = newCE;
- return element;
+ tbl->CEs[position] = newCE;
+ return element;
} else {
- return UCOL_NOT_FOUND;
+ return UCOL_NOT_FOUND;
}
}
-U_NAMESPACE_END
-
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_cnt.h b/Build/source/libs/icu-xetex/i18n/ucol_cnt.h
index 51cdf5250ee..c16211fc4d7 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_cnt.h
+++ b/Build/source/libs/icu-xetex/i18n/ucol_cnt.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001, International Business Machines
+* Copyright (C) 2001-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -31,7 +31,7 @@
#include "ucol_elm.h"
#include "ucol_imp.h"
-U_NAMESPACE_BEGIN
+U_CDECL_BEGIN
#define UPRV_CNTTAB_NEWELEMENT 0xFFFFFF
@@ -98,7 +98,7 @@ uprv_cnttab_findCE(CntTable *table, uint32_t element, UChar codePoint, UErrorCod
U_CAPI UBool U_EXPORT2
uprv_cnttab_isTailored(CntTable *table, uint32_t element, UChar *ztString, UErrorCode *status);
-U_NAMESPACE_END
+U_CDECL_END
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_elm.cpp b/Build/source/libs/icu-xetex/i18n/ucol_elm.cpp
index 1258df43fe4..ab3bf408492 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_elm.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_elm.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -36,8 +36,6 @@
#include "unicode/caniter.h"
#include "cmemory.h"
-U_NAMESPACE_BEGIN
-
static uint32_t uprv_uca_processContraction(CntTable *contractions, UCAElements *element, uint32_t existingCE, UErrorCode *status);
U_CDECL_BEGIN
@@ -109,29 +107,30 @@ static int32_t uprv_uca_addExpansion(ExpansionTable *expansions, uint32_t value,
U_CAPI tempUCATable* U_EXPORT2
uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollator *UCA, UColCETags initTag, UColCETags supplementaryInitTag, UErrorCode *status) {
+ MaxJamoExpansionTable *maxjet;
+ MaxExpansionTable *maxet;
tempUCATable *t = (tempUCATable *)uprv_malloc(sizeof(tempUCATable));
/* test for NULL */
if (t == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
return NULL;
}
- MaxExpansionTable *maxet = (MaxExpansionTable *)uprv_malloc(
- sizeof(MaxExpansionTable));
- /* test for NULL */
+ uprv_memset(t, 0, sizeof(tempUCATable));
+
+ maxet = (MaxExpansionTable *)uprv_malloc(sizeof(MaxExpansionTable));
if (maxet == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(t);
- return NULL;
+ goto allocation_failure;
}
- MaxJamoExpansionTable *maxjet = (MaxJamoExpansionTable *)uprv_malloc(
- sizeof(MaxJamoExpansionTable));
- /* test for NULL */
+ uprv_memset(maxet, 0, sizeof(MaxExpansionTable));
+ t->maxExpansions = maxet;
+
+ maxjet = (MaxJamoExpansionTable *)uprv_malloc(sizeof(MaxJamoExpansionTable));
if (maxjet == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(t);
- uprv_free(maxet);
- return NULL;
+ goto allocation_failure;
}
+ uprv_memset(maxjet, 0, sizeof(MaxJamoExpansionTable));
+ t->maxJamoExpansions = maxjet;
+
t->image = image;
t->options = opts;
@@ -139,11 +138,7 @@ uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollat
t->expansions = (ExpansionTable *)uprv_malloc(sizeof(ExpansionTable));
/* test for NULL */
if (t->expansions == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(t);
- uprv_free(maxet);
- uprv_free(maxjet);
- return NULL;
+ goto allocation_failure;
}
uprv_memset(t->expansions, 0, sizeof(ExpansionTable));
/*t->mapping = ucmpe32_open(UCOL_SPECIAL_FLAG | (initTag<<24), UCOL_SPECIAL_FLAG | (SURROGATE_TAG<<24), UCOL_SPECIAL_FLAG | (LEAD_SURROGATE_TAG<<24), status);*/
@@ -153,13 +148,12 @@ uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollat
UCOL_SPECIAL_FLAG | (initTag<<24),
UCOL_SPECIAL_FLAG | (supplementaryInitTag << 24),
TRUE); // Do your own mallocs for the structure, array and have linear Latin 1
- t->prefixLookup = uhash_open(prefixLookupHash, prefixLookupComp, status);
+ t->prefixLookup = uhash_open(prefixLookupHash, prefixLookupComp, NULL, status);
uhash_setValueDeleter(t->prefixLookup, uhash_freeBlock);
t->contractions = uprv_cnttab_open(t->mapping, status);
/* copy UCA's maxexpansion and merge as we go along */
- t->maxExpansions = maxet;
if (UCA != NULL) {
/* adding an extra initial value for easier manipulation */
maxet->size = (UCA->lastEndExpansionCE - UCA->endExpansionCE)
@@ -169,16 +163,13 @@ uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollat
(uint32_t *)uprv_malloc(sizeof(uint32_t) * maxet->size);
/* test for NULL */
if (maxet->endExpansionCE == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ goto allocation_failure;
}
maxet->expansionCESize =
(uint8_t *)uprv_malloc(sizeof(uint8_t) * maxet->size);
/* test for NULL */
if (maxet->expansionCESize == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(maxet->endExpansionCE);
- return NULL;
+ goto allocation_failure;
}
/* initialized value */
*(maxet->endExpansionCE) = 0;
@@ -191,7 +182,6 @@ uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollat
else {
maxet->size = 0;
}
- t->maxJamoExpansions = maxjet;
maxjet->endExpansionCE = NULL;
maxjet->isV = NULL;
maxjet->size = 0;
@@ -203,19 +193,21 @@ uprv_uca_initTempTable(UCATableHeader *image, UColOptionSet *opts, const UCollat
t->unsafeCP = (uint8_t *)uprv_malloc(UCOL_UNSAFECP_TABLE_SIZE);
/* test for NULL */
if (t->unsafeCP == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
+ goto allocation_failure;
}
t->contrEndCP = (uint8_t *)uprv_malloc(UCOL_UNSAFECP_TABLE_SIZE);
/* test for NULL */
if (t->contrEndCP == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- uprv_free(t->unsafeCP);
- return NULL;
+ goto allocation_failure;
}
uprv_memset(t->unsafeCP, 0, UCOL_UNSAFECP_TABLE_SIZE);
uprv_memset(t->contrEndCP, 0, UCOL_UNSAFECP_TABLE_SIZE);
-return t;
+ return t;
+
+allocation_failure:
+ uprv_uca_closeTempTable(t);
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return NULL;
}
U_CAPI tempUCATable* U_EXPORT2
@@ -369,21 +361,26 @@ uprv_uca_cloneTempTable(tempUCATable *t, UErrorCode *status) {
U_CAPI void U_EXPORT2
uprv_uca_closeTempTable(tempUCATable *t) {
if(t != NULL) {
- uprv_free(t->expansions->CEs);
- uprv_free(t->expansions);
+ if (t->expansions != NULL) {
+ uprv_free(t->expansions->CEs);
+ uprv_free(t->expansions);
+ }
if(t->contractions != NULL) {
uprv_cnttab_close(t->contractions);
}
- /*ucmpe32_close(t->mapping);*/
- utrie_close(t->mapping);
+ if (t->mapping != NULL) {
+ utrie_close(t->mapping);
+ }
if(t->prefixLookup != NULL) {
uhash_close(t->prefixLookup);
}
- uprv_free(t->maxExpansions->endExpansionCE);
- uprv_free(t->maxExpansions->expansionCESize);
- uprv_free(t->maxExpansions);
+ if (t->maxExpansions != NULL) {
+ uprv_free(t->maxExpansions->endExpansionCE);
+ uprv_free(t->maxExpansions->expansionCESize);
+ uprv_free(t->maxExpansions);
+ }
if (t->maxJamoExpansions->size > 0) {
uprv_free(t->maxJamoExpansions->endExpansionCE);
@@ -596,6 +593,8 @@ static int uprv_uca_setMaxJamoExpansion(UChar ch,
/* test for NULL */;
if (maxexpansion->isV == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(maxexpansion->endExpansionCE);
+ maxexpansion->endExpansionCE = NULL;
return 0;
}
*(maxexpansion->isV) = 0;
@@ -604,20 +603,27 @@ static int uprv_uca_setMaxJamoExpansion(UChar ch,
}
if (maxexpansion->position + 1 == maxexpansion->size) {
- uint32_t *neweece = (uint32_t *)uprv_realloc(maxexpansion->endExpansionCE,
- 2 * maxexpansion->size * sizeof(uint32_t));
- UBool *newisV = (UBool *)uprv_realloc(maxexpansion->isV,
- 2 * maxexpansion->size * sizeof(UBool));
- if (neweece == NULL || newisV == NULL) {
+ maxexpansion->size *= 2;
+ maxexpansion->endExpansionCE = (uint32_t *)uprv_realloc(maxexpansion->endExpansionCE,
+ maxexpansion->size * sizeof(uint32_t));
+ if (maxexpansion->endExpansionCE == NULL) {
#ifdef UCOL_DEBUG
fprintf(stderr, "out of memory for maxExpansions\n");
#endif
*status = U_MEMORY_ALLOCATION_ERROR;
- return -1;
+ return 0;
+ }
+ maxexpansion->isV = (UBool *)uprv_realloc(maxexpansion->isV,
+ maxexpansion->size * sizeof(UBool));
+ if (maxexpansion->isV == NULL) {
+#ifdef UCOL_DEBUG
+ fprintf(stderr, "out of memory for maxExpansions\n");
+#endif
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(maxexpansion->endExpansionCE);
+ maxexpansion->endExpansionCE = NULL;
+ return 0;
}
- maxexpansion->endExpansionCE = neweece;
- maxexpansion->isV = newisV;
- maxexpansion->size *= 2;
}
uint32_t *pendexpansionce = maxexpansion->endExpansionCE;
@@ -1070,6 +1076,9 @@ uprv_uca_addAnElement(tempUCATable *t, UCAElements *element, UErrorCode *status)
(uint8_t)element->noOfCEs,
t->maxJamoExpansions,
status);
+ if (U_FAILURE(*status)) {
+ return 0;
+ }
}
}
}
@@ -1078,10 +1087,10 @@ uprv_uca_addAnElement(tempUCATable *t, UCAElements *element, UErrorCode *status)
// processed differently if numeric collation is on.
UChar32 uniChar = 0;
//printElement(element);
- if ((element->cSize == 2) && U16_IS_LEAD(element->uchars[0])){
- uniChar = U16_GET_SUPPLEMENTARY(element->uchars[0], element->uchars[1]);
+ if ((element->cSize == 2) && U16_IS_LEAD(element->cPoints[0])){
+ uniChar = U16_GET_SUPPLEMENTARY(element->cPoints[0], element->cPoints[1]);
} else if (element->cSize == 1){
- uniChar = element->uchars[0];
+ uniChar = element->cPoints[0];
}
// Here, we either have one normal CE OR mapCE is set. Therefore, we stuff only
@@ -1480,19 +1489,19 @@ U_CDECL_BEGIN
static UBool U_CALLCONV
_enumCategoryRangeClosureCategory(const void *context, UChar32 start, UChar32 limit, UCharCategory type) {
- UErrorCode *status = ((enumStruct *)context)->status;
- tempUCATable *t = ((enumStruct *)context)->t;
- UCollator *tempColl = ((enumStruct *)context)->tempColl;
- UCollationElements* colEl = ((enumStruct *)context)->colEl;
- UCAElements el;
- UChar decomp[256] = { 0 };
- int32_t noOfDec = 0;
-
- UChar32 u32 = 0;
- UChar comp[2];
- uint32_t len = 0;
-
if (type != U_UNASSIGNED && type != U_PRIVATE_USE_CHAR) { // if the range is assigned - we might ommit more categories later
+ UErrorCode *status = ((enumStruct *)context)->status;
+ tempUCATable *t = ((enumStruct *)context)->t;
+ UCollator *tempColl = ((enumStruct *)context)->tempColl;
+ UCollationElements* colEl = ((enumStruct *)context)->colEl;
+ UCAElements el;
+ UChar decomp[256] = { 0 };
+ int32_t noOfDec = 0;
+
+ UChar32 u32 = 0;
+ UChar comp[2];
+ uint32_t len = 0;
+
for(u32 = start; u32 < limit; u32++) {
noOfDec = unorm_getDecomposition(u32, FALSE, decomp, 256);
//if((noOfDec = unorm_normalize(comp, len, UNORM_NFD, 0, decomp, 256, status)) > 1
@@ -1518,21 +1527,17 @@ _enumCategoryRangeClosureCategory(const void *context, UChar32 start, UChar32 li
el.prefixSize = 0;
UCAElements *prefix=(UCAElements *)uhash_get(t->prefixLookup, &el);
+ el.cPoints = comp;
+ el.cSize = len;
+ el.prefix = el.prefixChars;
+ el.prefixSize = 0;
if(prefix == NULL) {
- el.cPoints = comp;
- el.cSize = len;
- el.prefix = el.prefixChars;
- el.prefixSize = 0;
el.noOfCEs = 0;
ucol_setText(colEl, decomp, noOfDec, status);
while((el.CEs[el.noOfCEs] = ucol_next(colEl, status)) != (uint32_t)UCOL_NULLORDER) {
el.noOfCEs++;
}
} else {
- el.cPoints = comp;
- el.cSize = len;
- el.prefix = el.prefixChars;
- el.prefixSize = 0;
el.noOfCEs = 1;
el.CEs[0] = prefix->mapCE;
// This character uses a prefix. We have to add it
@@ -1589,8 +1594,6 @@ uprv_uca_canonicalClosure(tempUCATable *t, UErrorCode *status)
return context.noOfClosures;
}
-U_NAMESPACE_END
-
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_elm.h b/Build/source/libs/icu-xetex/i18n/ucol_elm.h
index 3ffd204a1c4..5e980e2645d 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_elm.h
+++ b/Build/source/libs/icu-xetex/i18n/ucol_elm.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2003, International Business Machines
+* Copyright (C) 2000-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -33,7 +33,7 @@
#include <stdio.h>
#endif
-U_NAMESPACE_BEGIN
+U_CDECL_BEGIN
typedef struct {
uint32_t *CEs;
@@ -62,8 +62,8 @@ typedef struct {
typedef struct {
uint32_t *endExpansionCE;
UBool *isV;
- int position;
- int size;
+ int32_t position;
+ int32_t size;
uint8_t maxLSize;
uint8_t maxVSize;
uint8_t maxTSize;
@@ -72,8 +72,8 @@ typedef struct {
typedef struct {
uint32_t *endExpansionCE;
uint8_t *expansionCESize;
- int position;
- int size;
+ int32_t position;
+ int32_t size;
} MaxExpansionTable;
typedef struct {
@@ -103,7 +103,7 @@ uprv_uca_canonicalClosure(tempUCATable *t, UErrorCode *status);
#define paddedsize(something) ((something)+((((something)%4)!=0)?(4-(something)%4):0))
#define headersize (paddedsize(sizeof(UCATableHeader))+paddedsize(sizeof(UColOptionSet)))
-U_NAMESPACE_END
+U_CDECL_END
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_imp.h b/Build/source/libs/icu-xetex/i18n/ucol_imp.h
index 6acee401630..db6e2dc4900 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_imp.h
+++ b/Build/source/libs/icu-xetex/i18n/ucol_imp.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -43,7 +43,7 @@
#include "unicode/ucol.h"
#include "utrie.h"
-#include "unicode/ures.h"
+#include "uresimp.h"
#include "unicode/udata.h"
#include "unicode/uiter.h"
@@ -279,9 +279,6 @@ typedef struct collIterate {
uint32_t CEs[UCOL_EXPAND_CE_BUFFER_SIZE]; /* This is where we store CEs */
UChar stackWritableBuffer[UCOL_WRITABLE_BUFFER_SIZE]; /* A writable buffer. */
UCharIterator *iterator;
- uint32_t consumedChars; /* number of extra consumed chars in a contraction */
- /* used in conjuction with iterator state for partial */
- /* sortkeys */
/*int32_t iteratorIndex;*/
} collIterate;
@@ -298,7 +295,6 @@ struct collIterateState {
uint8_t origFlags;
uint32_t iteratorIndex;
int32_t iteratorMove;
- uint32_t consumedChars;
};
U_CAPI void U_EXPORT2
@@ -562,7 +558,7 @@ enum {
UCOL_BYTE_FIRST_TAILORED = 0x04,
UCOL_BYTE_COMMON = 0x05,
UCOL_BYTE_FIRST_UCA = UCOL_BYTE_COMMON,
- UCOL_CODAN_PLACEHOLDER = 0x26,
+ UCOL_CODAN_PLACEHOLDER = 0x27,
UCOL_BYTE_LAST_LATIN_PRIMARY = 0x4C,
UCOL_BYTE_FIRST_NON_LATIN_PRIMARY = 0x4D,
UCOL_BYTE_UNSHIFTED_MAX = 0xFF
@@ -862,16 +858,18 @@ struct UCollator {
uint32_t *latinOneCEs;
char* validLocale;
char* requestedLocale;
+ const UChar *rules;
+ const UCollator *UCA;
+ ResourceCleaner *resCleaner;
UResourceBundle *rb;
UResourceBundle *elements;
const UCATableHeader *image;
- /*CompactEIntArray *mapping;*/
- UTrie *mapping;
+ UTrie mapping;
const uint32_t *latinOneMapping;
const uint32_t *expansion;
const UChar *contractionIndex;
const uint32_t *contractionCEs;
- const uint8_t *scriptOrder;
+ /*const uint8_t *scriptOrder;*/
const uint32_t *endExpansionCE; /* array of last ces in an expansion ce.
corresponds to expansionCESize */
@@ -885,12 +883,9 @@ struct UCollator {
UChar minUnsafeCP; /* Smallest unsafe Code Point. */
UChar minContrEndCP; /* Smallest code point at end of a contraction */
- const UChar *rules;
int32_t rulesLength;
int32_t latinOneTableLen;
- /*UErrorCode errorCode;*/ /* internal error code */
-
uint32_t variableTopValue;
UColAttributeValue frenchCollation;
UColAttributeValue alternateHandling; /* attribute for handling variable elements*/
@@ -931,10 +926,7 @@ struct UCollator {
uint8_t tertiaryTopCount;
uint8_t tertiaryBottomCount;
- UDataInfo dataInfo; /* Data info of UCA table */
- const UCollator *UCA;
- ResourceCleaner *resCleaner;
-
+ UVersionInfo dataVersion; /* Data info of UCA table */
};
U_CDECL_END
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_res.cpp b/Build/source/libs/icu-xetex/i18n/ucol_res.cpp
index 612baa3f0af..578fa8a36e0 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_res.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_res.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: ucol_res.cpp
@@ -74,124 +74,129 @@ U_CFUNC UCollator*
ucol_open_internal(const char *loc,
UErrorCode *status)
{
- const UCollator* UCA = ucol_initUCA(status);
+ const UCollator* UCA = ucol_initUCA(status);
+
+ /* New version */
+ if(U_FAILURE(*status)) return 0;
+
+
+
+ UCollator *result = NULL;
+ UResourceBundle *b = ures_open(U_ICUDATA_COLL, loc, status);
+
+ /* we try to find stuff from keyword */
+ UResourceBundle *collations = ures_getByKey(b, "collations", NULL, status);
+ UResourceBundle *collElem = NULL;
+ char keyBuffer[256];
+ // if there is a keyword, we pick it up and try to get elements
+ if(!uloc_getKeywordValue(loc, "collation", keyBuffer, 256, status)) {
+ // no keyword. we try to find the default setting, which will give us the keyword value
+ UErrorCode intStatus = U_ZERO_ERROR;
+ // finding default value does not affect collation fallback status
+ UResourceBundle *defaultColl = ures_getByKeyWithFallback(collations, "default", NULL, &intStatus);
+ if(U_SUCCESS(intStatus)) {
+ int32_t defaultKeyLen = 0;
+ const UChar *defaultKey = ures_getString(defaultColl, &defaultKeyLen, &intStatus);
+ u_UCharsToChars(defaultKey, keyBuffer, defaultKeyLen);
+ keyBuffer[defaultKeyLen] = 0;
+ } else {
+ *status = U_INTERNAL_PROGRAM_ERROR;
+ return NULL;
+ }
+ ures_close(defaultColl);
+ }
+ collElem = ures_getByKeyWithFallback(collations, keyBuffer, collElem, status);
- /* New version */
- if(U_FAILURE(*status)) return 0;
+ UResourceBundle *binary = NULL;
+ if(*status == U_MISSING_RESOURCE_ERROR) { /* We didn't find the tailoring data, we fallback to the UCA */
+ *status = U_USING_DEFAULT_WARNING;
+ result = ucol_initCollator(UCA->image, result, UCA, status);
+ // if we use UCA, real locale is root
+ result->rb = ures_open(U_ICUDATA_COLL, "", status);
+ result->elements = ures_open(U_ICUDATA_COLL, "", status);
+ if(U_FAILURE(*status)) {
+ goto clean;
+ }
+ ures_close(b);
+ result->hasRealData = FALSE;
+ } else if(U_SUCCESS(*status)) {
+ int32_t len = 0;
+ UErrorCode binaryStatus = U_ZERO_ERROR;
+
+ binary = ures_getByKey(collElem, "%%CollationBin", NULL, &binaryStatus);
+
+ if(binaryStatus == U_MISSING_RESOURCE_ERROR) { /* we didn't find the binary image, we should use the rules */
+ binary = NULL;
+ result = tryOpeningFromRules(collElem, status);
+ if(U_FAILURE(*status)) {
+ goto clean;
+ }
+ } else if(U_SUCCESS(*status)) { /* otherwise, we'll pick a collation data that exists */
+ const uint8_t *inData = ures_getBinary(binary, &len, status);
+ UCATableHeader *colData = (UCATableHeader *)inData;
+ if(uprv_memcmp(colData->UCAVersion, UCA->image->UCAVersion, sizeof(UVersionInfo)) != 0 ||
+ uprv_memcmp(colData->UCDVersion, UCA->image->UCDVersion, sizeof(UVersionInfo)) != 0 ||
+ colData->version[0] != UCOL_BUILDER_VERSION)
+ {
+ *status = U_DIFFERENT_UCA_VERSION;
+ result = tryOpeningFromRules(collElem, status);
+ } else {
+ if(U_FAILURE(*status)){
+ goto clean;
+ }
+ if((uint32_t)len > (paddedsize(sizeof(UCATableHeader)) + paddedsize(sizeof(UColOptionSet)))) {
+ result = ucol_initCollator((const UCATableHeader *)inData, result, UCA, status);
+ if(U_FAILURE(*status)){
+ goto clean;
+ }
+ result->hasRealData = TRUE;
+ } else {
+ result = ucol_initCollator(UCA->image, result, UCA, status);
+ ucol_setOptionsFromHeader(result, (UColOptionSet *)(inData+((const UCATableHeader *)inData)->options), status);
+ if(U_FAILURE(*status)){
+ goto clean;
+ }
+ result->hasRealData = FALSE;
+ }
+ result->freeImageOnClose = FALSE;
+ }
+ }
+ result->rb = b;
+ result->elements = collElem;
+ len = 0;
+ binaryStatus = U_ZERO_ERROR;
+ result->rules = ures_getStringByKey(result->elements, "Sequence", &len, &binaryStatus);
+ result->rulesLength = len;
+ result->freeRulesOnClose = FALSE;
+ } else { /* There is another error, and we're just gonna clean up */
+ goto clean;
+ }
+ result->validLocale = NULL; // default is to use rb info
- UCollator *result = NULL;
- UResourceBundle *b = ures_open(U_ICUDATA_COLL, loc, status);
-
- /* we try to find stuff from keyword */
- UResourceBundle *collations = ures_getByKey(b, "collations", NULL, status);
- UResourceBundle *collElem = NULL;
- char keyBuffer[256];
- // if there is a keyword, we pick it up and try to get elements
- if(!uloc_getKeywordValue(loc, "collation", keyBuffer, 256, status)) {
- // no keyword. we try to find the default setting, which will give us the keyword value
- UErrorCode intStatus = U_ZERO_ERROR;
- // finding default value does not affect collation fallback status
- UResourceBundle *defaultColl = ures_getByKeyWithFallback(collations, "default", NULL, &intStatus);
- if(U_SUCCESS(intStatus)) {
- int32_t defaultKeyLen = 0;
- const UChar *defaultKey = ures_getString(defaultColl, &defaultKeyLen, &intStatus);
- u_UCharsToChars(defaultKey, keyBuffer, defaultKeyLen);
- keyBuffer[defaultKeyLen] = 0;
- } else {
- *status = U_INTERNAL_PROGRAM_ERROR;
- return NULL;
+ if(loc == NULL) {
+ loc = ures_getLocale(result->rb, status);
}
- ures_close(defaultColl);
- }
- collElem = ures_getByKeyWithFallback(collations, keyBuffer, collElem, status);
-
- UResourceBundle *binary = NULL;
- UErrorCode binaryStatus = U_ZERO_ERROR;
-
- if(*status == U_MISSING_RESOURCE_ERROR) { /* We didn't find the tailoring data, we fallback to the UCA */
- *status = U_USING_DEFAULT_WARNING;
- result = ucol_initCollator(UCA->image, result, UCA, status);
- // if we use UCA, real locale is root
- result->rb = ures_open(U_ICUDATA_COLL, "", status);
- result->elements = ures_open(U_ICUDATA_COLL, "", status);
- if(U_FAILURE(*status)) {
- goto clean;
- }
- ures_close(b);
- result->hasRealData = FALSE;
- } else if(U_SUCCESS(*status)) {
- binary = ures_getByKey(collElem, "%%CollationBin", NULL, &binaryStatus);
-
- if(binaryStatus == U_MISSING_RESOURCE_ERROR) { /* we didn't find the binary image, we should use the rules */
- binary = NULL;
- result = tryOpeningFromRules(collElem, status);
- if(U_FAILURE(*status)) {
+ result->requestedLocale = (char *)uprv_malloc((uprv_strlen(loc)+1)*sizeof(char));
+ /* test for NULL */
+ if (result->requestedLocale == NULL) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
goto clean;
- }
- } else if(U_SUCCESS(*status)) { /* otherwise, we'll pick a collation data that exists */
- int32_t len = 0;
- const uint8_t *inData = ures_getBinary(binary, &len, status);
- UCATableHeader *colData = (UCATableHeader *)inData;
- if(uprv_memcmp(colData->UCAVersion, UCA->image->UCAVersion, sizeof(UVersionInfo)) != 0 ||
- uprv_memcmp(colData->UCDVersion, UCA->image->UCDVersion, sizeof(UVersionInfo)) != 0 ||
- colData->version[0] != UCOL_BUILDER_VERSION) {
- *status = U_DIFFERENT_UCA_VERSION;
- result = tryOpeningFromRules(collElem, status);
- } else {
- if(U_FAILURE(*status)){
- goto clean;
- }
- if((uint32_t)len > (paddedsize(sizeof(UCATableHeader)) + paddedsize(sizeof(UColOptionSet)))) {
- result = ucol_initCollator((const UCATableHeader *)inData, result, UCA, status);
- if(U_FAILURE(*status)){
- goto clean;
- }
- result->hasRealData = TRUE;
- } else {
- result = ucol_initCollator(UCA->image, result, UCA, status);
- ucol_setOptionsFromHeader(result, (UColOptionSet *)(inData+((const UCATableHeader *)inData)->options), status);
- if(U_FAILURE(*status)){
- goto clean;
- }
- result->hasRealData = FALSE;
- }
- result->freeImageOnClose = FALSE;
- }
}
- result->rb = b;
- result->elements = collElem;
- } else { /* There is another error, and we're just gonna clean up */
+ uprv_strcpy(result->requestedLocale, loc);
+
+ ures_close(binary);
+ ures_close(collations); //??? we have to decide on that. Probably affects something :)
+ result->resCleaner = ucol_prv_closeResources;
+ return result;
+
clean:
ures_close(b);
ures_close(collElem);
ures_close(collations);
ures_close(binary);
return NULL;
- }
-
- result->validLocale = NULL; // default is to use rb info
-
- if(loc == NULL) {
- loc = ures_getLocale(result->rb, status);
- }
- result->requestedLocale = (char *)uprv_malloc((uprv_strlen(loc)+1)*sizeof(char));
- /* test for NULL */
- if (result->requestedLocale == NULL) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- ures_close(b); // ??? appears needed
- ures_close(collElem);
- ures_close(collations);
- ures_close(binary); // ??? appears needed
- return NULL;
- }
- uprv_strcpy(result->requestedLocale, loc);
-
- ures_close(binary);
- ures_close(collations); //??? we have to decide on that. Probably affects something :)
- result->resCleaner = ucol_prv_closeResources;
- return result;
}
U_CAPI UCollator*
@@ -236,7 +241,7 @@ ucol_openRules( const UChar *rules,
return NULL;
}
- if(rulesLength < -1 || (rules == NULL && rulesLength != 0)) {
+ if(rules == NULL || rulesLength < -1) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
@@ -322,7 +327,7 @@ ucol_openRules( const UChar *rules,
if(U_SUCCESS(*status)) {
UChar *newRules;
- result->dataInfo.dataVersion[0] = UCOL_BUILDER_VERSION;
+ result->dataVersion[0] = UCOL_BUILDER_VERSION;
if(rulesLength > 0) {
newRules = (UChar *)uprv_malloc((rulesLength+1)*U_SIZEOF_UCHAR);
/* test for NULL */
@@ -399,23 +404,14 @@ U_CAPI const UChar* U_EXPORT2
ucol_getRules( const UCollator *coll,
int32_t *length)
{
- if(coll->rules != NULL) {
- *length = coll->rulesLength;
- return coll->rules;
- } else {
- UErrorCode status = U_ZERO_ERROR;
- if(coll->elements != NULL) {
- if(U_SUCCESS(status)) {
- /*Semantic const */
- ((UCollator *)coll)->rules = ures_getStringByKey(coll->elements, "Sequence", length, &status);
- ((UCollator *)coll)->rulesLength = *length;
- ((UCollator *)coll)->freeRulesOnClose = FALSE;
+ if(coll->rules != NULL) {
+ *length = coll->rulesLength;
return coll->rules;
- }
}
- *length = 0;
- return &_NUL;
- }
+ else {
+ *length = 0;
+ return &_NUL;
+ }
}
U_CAPI UBool U_EXPORT2
@@ -681,6 +677,7 @@ ucol_getTailoredSet(const UCollator *coll, UErrorCode *status)
}
if(coll == NULL || coll->UCA == NULL) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
}
UParseError parseError;
UColTokenParser src;
@@ -719,57 +716,4 @@ ucol_getTailoredSet(const UCollator *coll, UErrorCode *status)
return (USet *)tailored;
}
-U_CAPI UCollator* U_EXPORT2
-ucol_safeClone(const UCollator *coll, void *stackBuffer, int32_t * pBufferSize, UErrorCode *status)
-{
- UCollator * localCollator;
- int32_t bufferSizeNeeded = (int32_t)sizeof(UCollator);
- char *stackBufferChars = (char *)stackBuffer;
-
- if (status == NULL || U_FAILURE(*status)){
- return 0;
- }
- if ((stackBuffer && !pBufferSize) || !coll){
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
- /* Pointers on 64-bit platforms need to be aligned
- * on a 64-bit boundry in memory.
- */
- if (U_ALIGNMENT_OFFSET(stackBuffer) != 0) {
- int32_t offsetUp = (int32_t)U_ALIGNMENT_OFFSET_UP(stackBufferChars);
- *pBufferSize -= offsetUp;
- stackBufferChars += offsetUp;
- }
- stackBuffer = (void *)stackBufferChars;
-
- if (stackBuffer && *pBufferSize <= 0){ /* 'preflighting' request - set needed size into *pBufferSize */
- *pBufferSize = bufferSizeNeeded;
- return 0;
- }
- if (!stackBuffer || *pBufferSize < bufferSizeNeeded) {
- /* allocate one here...*/
- int32_t length;
- const UChar * rules = ucol_getRules(coll, &length);
-
- localCollator = ucol_openRules(rules,
- length,
- ucol_getAttribute(coll, UCOL_NORMALIZATION_MODE, status),
- ucol_getStrength(coll),
- NULL,
- status);
- if (U_SUCCESS(*status))
- {
- *status = U_SAFECLONE_ALLOCATED_WARNING;
- }
- } else {
- localCollator = (UCollator *)stackBuffer;
- uprv_memcpy(localCollator, coll, sizeof(UCollator));
- localCollator->freeOnClose = FALSE;
- localCollator->requestedLocale = NULL; // zero copies of pointers
- localCollator->validLocale = NULL;
- }
- return localCollator;
-}
-
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_sit.cpp b/Build/source/libs/icu-xetex/i18n/ucol_sit.cpp
index 76a48bf3d03..7fa8fb54b83 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_sit.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_sit.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: ucol_sit.cpp
@@ -1062,11 +1062,6 @@ _processSpecials(const void *context, UChar32 start, UChar32 limit, uint32_t CE)
}
}
-static int32_t U_CALLCONV
-_getTrieFoldingOffset(uint32_t data)
-{
- return (int32_t)(data&0xFFFFFF);
-}
U_CDECL_END
@@ -1128,17 +1123,14 @@ ucol_getContractionsAndExpansions( const UCollator *coll,
contContext c = { NULL, contractions, expansions, src.removeSet, addPrefixes, status };
- coll->mapping->getFoldingOffset = _getTrieFoldingOffset;
-
-
// Add the UCA contractions
c.coll = coll->UCA;
- utrie_enum(coll->UCA->mapping, NULL, _processSpecials, &c);
+ utrie_enum(&coll->UCA->mapping, NULL, _processSpecials, &c);
// This is collator specific. Add contractions from a collator
c.coll = coll;
c.removedContractions = NULL;
- utrie_enum(coll->mapping, NULL, _processSpecials, &c);
+ utrie_enum(&coll->mapping, NULL, _processSpecials, &c);
ucol_tok_closeTokenList(&src);
}
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_tok.cpp b/Build/source/libs/icu-xetex/i18n/ucol_tok.cpp
index c848db5ac9c..9d43d88e819 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_tok.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucol_tok.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -1554,7 +1554,7 @@ uint32_t ucol_tok_assembleTokenList(UColTokenParser *src, UParseError *parseErro
} else { /* there is both explicit and implicit expansion. We need to make a combination */
uprv_memcpy(src->extraCurrent, src->source + (expandNext & 0xFFFFFF), (expandNext >> 24)*sizeof(UChar));
uprv_memcpy(src->extraCurrent+(expandNext >> 24), src->source + src->parsedToken.extensionOffset, src->parsedToken.extensionLen*sizeof(UChar));
- sourceToken->expansion = (uint32_t)(((expandNext >> 24) + src->parsedToken.extensionLen)<<24 | (src->extraCurrent - src->source));
+ sourceToken->expansion = (uint32_t)(((expandNext >> 24) + src->parsedToken.extensionLen)<<24 | (uint32_t)(src->extraCurrent - src->source));
src->extraCurrent += (expandNext >> 24) + src->parsedToken.extensionLen;
}
}
@@ -1583,7 +1583,7 @@ uint32_t ucol_tok_assembleTokenList(UColTokenParser *src, UParseError *parseErro
/* if the previous token was also a reset, */
/*this means that we have two consecutive resets */
/* and we want to remove the previous one if empty*/
- if(ListList[src->resultLen-1].first == NULL) {
+ if(src->resultLen > 0 && ListList[src->resultLen-1].first == NULL) {
src->resultLen--;
}
}
@@ -1820,7 +1820,7 @@ void ucol_tok_initTokenList(UColTokenParser *src, const UChar *rules, const uint
if(U_FAILURE(*status)) {
return;
}
- src->tailored = uhash_open(uhash_hashTokens, uhash_compareTokens, status);
+ src->tailored = uhash_open(uhash_hashTokens, uhash_compareTokens, NULL, status);
if(U_FAILURE(*status)) {
return;
}
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_tok.h b/Build/source/libs/icu-xetex/i18n/ucol_tok.h
index 3a5984888a8..efd0a021f8e 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_tok.h
+++ b/Build/source/libs/icu-xetex/i18n/ucol_tok.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -43,7 +43,7 @@
/* this is space for the extra strings that need to be unquoted */
/* during the parsing of the rules */
-#define UCOL_TOK_EXTRA_RULE_SPACE_SIZE 2048
+#define UCOL_TOK_EXTRA_RULE_SPACE_SIZE 4096
typedef struct UColToken UColToken;
typedef struct {
diff --git a/Build/source/libs/icu-xetex/i18n/ucol_wgt.c b/Build/source/libs/icu-xetex/i18n/ucol_wgt.c
index f2ce4918b45..f531344944c 100644
--- a/Build/source/libs/icu-xetex/i18n/ucol_wgt.c
+++ b/Build/source/libs/icu-xetex/i18n/ucol_wgt.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -119,7 +119,7 @@ lengthenRange(WeightRange *range, uint32_t maxByte, uint32_t countBytes) {
}
/* for uprv_sortArray: sort ranges in weight order */
-static U_INLINE int32_t U_CALLCONV
+static int32_t U_CALLCONV
compareRanges(const void *context, const void *left, const void *right) {
uint32_t l, r;
diff --git a/Build/source/libs/icu-xetex/i18n/ucoleitr.cpp b/Build/source/libs/icu-xetex/i18n/ucoleitr.cpp
index f386fb4ef71..d31a90f837b 100644
--- a/Build/source/libs/icu-xetex/i18n/ucoleitr.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucoleitr.cpp
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 2001-2003, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
******************************************************************************
*
@@ -31,19 +31,6 @@ typedef struct collIterate collIterator;
/* public methods ---------------------------------------------------- */
-/**
-* Since this is going to be deprecated, I'll leave it as it is
-*/
-U_CAPI int32_t U_EXPORT2
-ucol_keyHashCode(const uint8_t *key,
- int32_t length)
-{
-
- CollationKey newKey(key, length);
- return newKey.hashCode();
-}
-
-
U_CAPI UCollationElements* U_EXPORT2
ucol_openElements(const UCollator *coll,
const UChar *text,
@@ -115,15 +102,16 @@ U_CAPI int32_t U_EXPORT2
ucol_next(UCollationElements *elems,
UErrorCode *status)
{
- uint32_t result;
+ int32_t result;
if (U_FAILURE(*status)) {
return UCOL_NULLORDER;
}
elems->reset_ = FALSE;
- result = ucol_getNextCE(elems->iteratordata_.coll, &elems->iteratordata_,
- status);
+ result = (int32_t)ucol_getNextCE(elems->iteratordata_.coll,
+ &elems->iteratordata_,
+ status);
if (result == UCOL_NO_MORE_CES) {
result = UCOL_NULLORDER;
@@ -140,7 +128,7 @@ ucol_previous(UCollationElements *elems,
}
else
{
- uint32_t result;
+ int32_t result;
if (elems->reset_ &&
(elems->iteratordata_.pos == elems->iteratordata_.string)) {
@@ -155,8 +143,9 @@ ucol_previous(UCollationElements *elems,
elems->reset_ = FALSE;
- result = ucol_getPrevCE(elems->iteratordata_.coll, &(elems->iteratordata_),
- status);
+ result = (int32_t)ucol_getPrevCE(elems->iteratordata_.coll,
+ &(elems->iteratordata_),
+ status);
if (result == UCOL_NO_MORE_CES) {
result = UCOL_NULLORDER;
diff --git a/Build/source/libs/icu-xetex/i18n/ucsdet.cpp b/Build/source/libs/icu-xetex/i18n/ucsdet.cpp
new file mode 100644
index 00000000000..114f896f415
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/ucsdet.cpp
@@ -0,0 +1,234 @@
+/*
+ ********************************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ ********************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+#include "unicode/ucsdet.h"
+#include "csdetect.h"
+#include "csmatch.h"
+
+#include "cmemory.h"
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+U_CDECL_BEGIN
+
+U_CAPI UCharsetDetector * U_EXPORT2
+ucsdet_open(UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return 0;
+ }
+
+ CharsetDetector* csd = new CharsetDetector(*status);
+
+ if (U_FAILURE(*status)) {
+ delete csd;
+ csd = NULL;
+ }
+
+ return (UCharsetDetector *) csd;
+}
+
+U_CAPI void U_EXPORT2
+ucsdet_close(UCharsetDetector *ucsd)
+{
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+ delete csd;
+}
+
+U_CAPI void U_EXPORT2
+ucsdet_setText(UCharsetDetector *ucsd, const char *textIn, int32_t len, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return;
+ }
+
+ if (ucsd == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+
+ csd->setText(textIn, len);
+}
+
+U_CAPI const char * U_EXPORT2
+ucsdet_getName(const UCharsetMatch *ucsm, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (ucsm == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ CharsetMatch *csm = (CharsetMatch *) ucsm;
+
+ return csm->getName();
+}
+
+U_CAPI int32_t U_EXPORT2
+ucsdet_getConfidence(const UCharsetMatch *ucsm, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return 0;
+ }
+
+ if (ucsm == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ CharsetMatch *csm = (CharsetMatch *) ucsm;
+
+ return csm->getConfidence();
+}
+
+U_CAPI const char * U_EXPORT2
+ucsdet_getLanguage(const UCharsetMatch *ucsm, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (ucsm == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ CharsetMatch *csm = (CharsetMatch *) ucsm;
+
+ return csm->getLanguage();
+}
+
+U_CAPI const UCharsetMatch * U_EXPORT2
+ucsdet_detect(UCharsetDetector *ucsd, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (ucsd == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+
+ return (const UCharsetMatch *) csd->detect(*status);
+}
+
+U_CAPI void U_EXPORT2
+ucsdet_setDeclaredEncoding(UCharsetDetector *ucsd, const char *encoding, int32_t length, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return;
+ }
+
+ if (ucsd == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+
+ csd->setDeclaredEncoding(encoding,length);
+}
+
+U_CAPI const UCharsetMatch**
+ucsdet_detectAll(UCharsetDetector *ucsd,
+ int32_t *maxMatchesFound, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return NULL;
+ }
+
+ if (ucsd == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+
+ return (const UCharsetMatch**)csd->detectAll(*maxMatchesFound,*status);
+}
+
+// U_CAPI const char * U_EXPORT2
+// ucsdet_getDetectableCharsetName(const UCharsetDetector *csd, int32_t index, UErrorCode *status)
+// {
+// if(U_FAILURE(*status)) {
+// return 0;
+// }
+// return csd->getCharsetName(index,*status);
+// }
+
+// U_CAPI int32_t U_EXPORT2
+// ucsdet_getDetectableCharsetsCount(const UCharsetDetector *csd, UErrorCode *status)
+// {
+// if(U_FAILURE(*status)) {
+// return -1;
+// }
+// return UCharsetDetector::getDetectableCount();
+// }
+
+U_CAPI UBool U_EXPORT2
+ucsdet_isInputFilterEnabled(const UCharsetDetector *ucsd)
+{
+ // todo: could use an error return...
+ if (ucsd == NULL) {
+ return FALSE;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+
+ return csd->getStripTagsFlag();
+}
+
+U_CAPI UBool U_EXPORT2
+ucsdet_enableInputFilter(UCharsetDetector *ucsd, UBool filter)
+{
+ // todo: could use an error return...
+ if (ucsd == NULL) {
+ return FALSE;
+ }
+
+ CharsetDetector *csd = (CharsetDetector *) ucsd;
+ UBool prev = csd->getStripTagsFlag();
+
+ csd->setStripTagsFlag(filter);
+
+ return prev;
+}
+
+U_CAPI int32_t U_EXPORT2
+ucsdet_getUChars(const UCharsetMatch *ucsm,
+ UChar *buf, int32_t cap, UErrorCode *status)
+{
+ if(U_FAILURE(*status)) {
+ return 0;
+ }
+
+ if (ucsm == NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ CharsetMatch *csm = (CharsetMatch *) ucsm;
+
+ return csm->getUChars(buf, cap, status);
+}
+U_CDECL_END
+
+#endif
diff --git a/Build/source/libs/icu-xetex/i18n/ucurr.cpp b/Build/source/libs/icu-xetex/i18n/ucurr.cpp
index d3ac644f45f..00d05245999 100644
--- a/Build/source/libs/icu-xetex/i18n/ucurr.cpp
+++ b/Build/source/libs/icu-xetex/i18n/ucurr.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -754,7 +754,8 @@ static const struct CurrencyList {
{"ATS", UCURR_COMMON|UCURR_DEPRECATED},
{"AUD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"AWG", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"AZM", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"AZM", UCURR_COMMON|UCURR_DEPRECATED},
+ {"AZN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"BAD", UCURR_COMMON|UCURR_DEPRECATED},
{"BAM", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"BBD", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -791,7 +792,7 @@ static const struct CurrencyList {
{"CHW", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"CLF", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"CLP", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"CNX", UCURR_COMMON|UCURR_DEPRECATED},
+ {"CNX", UCURR_UNCOMMON|UCURR_DEPRECATED},
{"CNY", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"COP", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"COU", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
@@ -899,7 +900,8 @@ static const struct CurrencyList {
{"MXV", UCURR_UNCOMMON|UCURR_NON_DEPRECATED},
{"MYR", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"MZE", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"MZM", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"MZM", UCURR_COMMON|UCURR_DEPRECATED},
+ {"MZN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"NAD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"NGN", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"NIC", UCURR_COMMON|UCURR_DEPRECATED},
@@ -922,7 +924,8 @@ static const struct CurrencyList {
{"PYG", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"QAR", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"RHD", UCURR_COMMON|UCURR_DEPRECATED},
- {"ROL", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"ROL", UCURR_COMMON|UCURR_DEPRECATED},
+ {"RON", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"RUB", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"RUR", UCURR_COMMON|UCURR_DEPRECATED},
{"RWF", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -934,7 +937,7 @@ static const struct CurrencyList {
{"SEK", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SGD", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SHP", UCURR_COMMON|UCURR_NON_DEPRECATED},
- {"SIT", UCURR_COMMON|UCURR_NON_DEPRECATED},
+ {"SIT", UCURR_COMMON|UCURR_DEPRECATED},
{"SKK", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SLL", UCURR_COMMON|UCURR_NON_DEPRECATED},
{"SOS", UCURR_COMMON|UCURR_NON_DEPRECATED},
@@ -1025,7 +1028,7 @@ ucurr_countCurrencyList(UEnumeration *enumerator, UErrorCode * /*pErrorCode*/) {
static const char* U_CALLCONV
ucurr_nextCurrencyList(UEnumeration *enumerator,
int32_t* resultLength,
- UErrorCode *pErrorCode)
+ UErrorCode * /*pErrorCode*/)
{
UCurrencyContext *myContext = (UCurrencyContext *)(enumerator->context);
@@ -1041,7 +1044,9 @@ ucurr_nextCurrencyList(UEnumeration *enumerator,
}
}
/* We enumerated too far. */
- *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ if (resultLength) {
+ *resultLength = 0;
+ }
return NULL;
}
diff --git a/Build/source/libs/icu-xetex/i18n/udat.cpp b/Build/source/libs/icu-xetex/i18n/udat.cpp
index 140eb3d3ac5..7834b4cbba8 100644
--- a/Build/source/libs/icu-xetex/i18n/udat.cpp
+++ b/Build/source/libs/icu-xetex/i18n/udat.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*/
@@ -35,54 +35,48 @@ udat_open(UDateFormatStyle timeStyle,
int32_t patternLength,
UErrorCode *status)
{
- if(U_FAILURE(*status))
- {
+ DateFormat *fmt;
+ if(U_FAILURE(*status)) {
return 0;
}
- if(timeStyle != UDAT_IGNORE)
- {
- DateFormat *fmt;
- if(locale == 0)
+ if(timeStyle != UDAT_IGNORE) {
+ if(locale == 0) {
fmt = DateFormat::createDateTimeInstance((DateFormat::EStyle)dateStyle,
(DateFormat::EStyle)timeStyle);
- else
+ }
+ else {
fmt = DateFormat::createDateTimeInstance((DateFormat::EStyle)dateStyle,
(DateFormat::EStyle)timeStyle,
Locale(locale));
-
- if(fmt == 0) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- return 0;
}
+ }
+ else {
+ UnicodeString pat((UBool)(patternLength == -1), pattern, patternLength);
- if(tzID != 0) {
- TimeZone *zone = TimeZone::createTimeZone(UnicodeString((UBool)(tzIDLength == -1), tzID, tzIDLength));
- if(zone == 0) {
- *status = U_MEMORY_ALLOCATION_ERROR;
- delete fmt;
- return 0;
- }
- fmt->adoptTimeZone(zone);
+ if(locale == 0) {
+ fmt = new SimpleDateFormat(pat, *status);
+ }
+ else {
+ fmt = new SimpleDateFormat(pat, Locale(locale), *status);
}
-
- return (UDateFormat*)fmt;
}
- else
- {
- const UnicodeString pat = UnicodeString((UBool)(patternLength == -1), pattern, patternLength);
- UDateFormat *retVal = 0;
- if(locale == 0)
- retVal = (UDateFormat*)new SimpleDateFormat(pat, *status);
- else
- retVal = (UDateFormat*)new SimpleDateFormat(pat, Locale(locale), *status);
+ if(fmt == 0) {
+ *status = U_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
- if(retVal == 0) {
+ if(tzID != 0) {
+ TimeZone *zone = TimeZone::createTimeZone(UnicodeString((UBool)(tzIDLength == -1), tzID, tzIDLength));
+ if(zone == 0) {
*status = U_MEMORY_ALLOCATION_ERROR;
+ delete fmt;
return 0;
}
- return retVal;
+ fmt->adoptTimeZone(zone);
}
+
+ return (UDateFormat*)fmt;
}
@@ -328,6 +322,10 @@ udat_getSymbols(const UDateFormat *fmt,
res = syms->getEras(count);
break;
+ case UDAT_ERA_NAMES:
+ res = syms->getEraNames(count);
+ break;
+
case UDAT_MONTHS:
res = syms->getMonths(count);
break;
@@ -360,10 +358,6 @@ udat_getSymbols(const UDateFormat *fmt,
return res1.extract(result, resultLength, *status);
}
- case UDAT_ERA_NAMES:
- res = syms->getEraNames(count);
- break;
-
case UDAT_NARROW_MONTHS:
res = syms->getMonths(count, DateFormatSymbols::FORMAT, DateFormatSymbols::NARROW);
break;
@@ -396,6 +390,22 @@ udat_getSymbols(const UDateFormat *fmt,
res = syms->getWeekdays(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::NARROW);
break;
+ case UDAT_QUARTERS:
+ res = syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
+ break;
+
+ case UDAT_SHORT_QUARTERS:
+ res = syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
+ break;
+
+ case UDAT_STANDALONE_QUARTERS:
+ res = syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
+ break;
+
+ case UDAT_STANDALONE_SHORT_QUARTERS:
+ res = syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
+ break;
+
}
if(index < count) {
@@ -440,6 +450,7 @@ udat_countSymbols( const UDateFormat *fmt,
case UDAT_LOCALIZED_CHARS:
count = 1;
break;
+
case UDAT_ERA_NAMES:
syms->getEraNames(count);
break;
@@ -476,6 +487,22 @@ udat_countSymbols( const UDateFormat *fmt,
syms->getWeekdays(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::NARROW);
break;
+ case UDAT_QUARTERS:
+ syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
+ break;
+
+ case UDAT_SHORT_QUARTERS:
+ syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
+ break;
+
+ case UDAT_STANDALONE_QUARTERS:
+ syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
+ break;
+
+ case UDAT_STANDALONE_SHORT_QUARTERS:
+ syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
+ break;
+
}
return count;
@@ -532,6 +559,13 @@ public:
}
static void
+ setEraName(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fEraNames, syms->fEraNamesCount, index, value, valueLength, errorCode);
+ }
+
+ static void
setMonth(DateFormatSymbols *syms, int32_t index,
const UChar *value, int32_t valueLength, UErrorCode &errorCode)
{
@@ -546,6 +580,34 @@ public:
}
static void
+ setNarrowMonth(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fNarrowMonths, syms->fNarrowMonthsCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneMonth(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneMonths, syms->fStandaloneMonthsCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneShortMonth(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneShortMonths, syms->fStandaloneShortMonthsCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneNarrowMonth(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneNarrowMonths, syms->fStandaloneNarrowMonthsCount, index, value, valueLength, errorCode);
+ }
+
+ static void
setWeekday(DateFormatSymbols *syms, int32_t index,
const UChar *value, int32_t valueLength, UErrorCode &errorCode)
{
@@ -560,6 +622,62 @@ public:
}
static void
+ setNarrowWeekday(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fNarrowWeekdays, syms->fNarrowWeekdaysCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneWeekday(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneWeekdays, syms->fStandaloneWeekdaysCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneShortWeekday(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneShortWeekdays, syms->fStandaloneShortWeekdaysCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneNarrowWeekday(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneNarrowWeekdays, syms->fStandaloneNarrowWeekdaysCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setQuarter(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fQuarters, syms->fQuartersCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setShortQuarter(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fShortQuarters, syms->fShortQuartersCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneQuarter(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneQuarters, syms->fStandaloneQuartersCount, index, value, valueLength, errorCode);
+ }
+
+ static void
+ setStandaloneShortQuarter(DateFormatSymbols *syms, int32_t index,
+ const UChar *value, int32_t valueLength, UErrorCode &errorCode)
+ {
+ setSymbol(syms->fStandaloneShortQuarters, syms->fStandaloneShortQuartersCount, index, value, valueLength, errorCode);
+ }
+
+ static void
setAmPm(DateFormatSymbols *syms, int32_t index,
const UChar *value, int32_t valueLength, UErrorCode &errorCode)
{
@@ -584,6 +702,7 @@ udat_setSymbols( UDateFormat *format,
int32_t valueLength,
UErrorCode *status)
{
+
if(U_FAILURE(*status)) return;
DateFormatSymbols *syms = (DateFormatSymbols *)((SimpleDateFormat *)format)->getDateFormatSymbols();
@@ -593,6 +712,10 @@ udat_setSymbols( UDateFormat *format,
DateFormatSymbolsSingleSetter::setEra(syms, index, value, valueLength, *status);
break;
+ case UDAT_ERA_NAMES:
+ DateFormatSymbolsSingleSetter::setEraName(syms, index, value, valueLength, *status);
+ break;
+
case UDAT_MONTHS:
DateFormatSymbolsSingleSetter::setMonth(syms, index, value, valueLength, *status);
break;
@@ -601,6 +724,22 @@ udat_setSymbols( UDateFormat *format,
DateFormatSymbolsSingleSetter::setShortMonth(syms, index, value, valueLength, *status);
break;
+ case UDAT_NARROW_MONTHS:
+ DateFormatSymbolsSingleSetter::setNarrowMonth(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_MONTHS:
+ DateFormatSymbolsSingleSetter::setStandaloneMonth(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_SHORT_MONTHS:
+ DateFormatSymbolsSingleSetter::setStandaloneShortMonth(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_NARROW_MONTHS:
+ DateFormatSymbolsSingleSetter::setStandaloneNarrowMonth(syms, index, value, valueLength, *status);
+ break;
+
case UDAT_WEEKDAYS:
DateFormatSymbolsSingleSetter::setWeekday(syms, index, value, valueLength, *status);
break;
@@ -609,6 +748,38 @@ udat_setSymbols( UDateFormat *format,
DateFormatSymbolsSingleSetter::setShortWeekday(syms, index, value, valueLength, *status);
break;
+ case UDAT_NARROW_WEEKDAYS:
+ DateFormatSymbolsSingleSetter::setNarrowWeekday(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_WEEKDAYS:
+ DateFormatSymbolsSingleSetter::setStandaloneWeekday(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_SHORT_WEEKDAYS:
+ DateFormatSymbolsSingleSetter::setStandaloneShortWeekday(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_NARROW_WEEKDAYS:
+ DateFormatSymbolsSingleSetter::setStandaloneNarrowWeekday(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_QUARTERS:
+ DateFormatSymbolsSingleSetter::setQuarter(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_SHORT_QUARTERS:
+ DateFormatSymbolsSingleSetter::setShortQuarter(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_QUARTERS:
+ DateFormatSymbolsSingleSetter::setStandaloneQuarter(syms, index, value, valueLength, *status);
+ break;
+
+ case UDAT_STANDALONE_SHORT_QUARTERS:
+ DateFormatSymbolsSingleSetter::setStandaloneShortQuarter(syms, index, value, valueLength, *status);
+ break;
+
case UDAT_AM_PMS:
DateFormatSymbolsSingleSetter::setAmPm(syms, index, value, valueLength, *status);
break;
@@ -616,6 +787,11 @@ udat_setSymbols( UDateFormat *format,
case UDAT_LOCALIZED_CHARS:
DateFormatSymbolsSingleSetter::setLocalPatternChars(syms, value, valueLength, *status);
break;
+
+ default:
+ *status = U_UNSUPPORTED_ERROR;
+ break;
+
}
}
diff --git a/Build/source/libs/icu-xetex/i18n/ulocdata.c b/Build/source/libs/icu-xetex/i18n/ulocdata.c
index a31000d564c..68c3d1d0345 100644
--- a/Build/source/libs/icu-xetex/i18n/ulocdata.c
+++ b/Build/source/libs/icu-xetex/i18n/ulocdata.c
@@ -21,6 +21,22 @@
#define MEASUREMENT_SYSTEM "MeasurementSystem"
#define PAPER_SIZE "PaperSize"
+/** A locale data object.
+ * For usage in C programs.
+ * @draft ICU 3.4
+ */
+struct ULocaleData {
+ /**
+ * Controls the "No Substitute" behavior of this locale data object
+ */
+ UBool noSubstitute;
+
+ /**
+ * Pointer to the resource bundle associated with this locale data object
+ */
+ UResourceBundle *bundle;
+};
+
U_CAPI ULocaleData* U_EXPORT2
ulocdata_open(const char *localeID, UErrorCode *status)
{
@@ -86,8 +102,7 @@ ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn,
localStatus = U_MISSING_RESOURCE_ERROR;
}
- if (U_FAILURE(localStatus) || (localStatus != U_USING_DEFAULT_WARNING &&
- localStatus != U_USING_FALLBACK_WARNING )) {
+ if (localStatus != U_ZERO_ERROR) {
*status = localStatus;
}
@@ -129,8 +144,7 @@ ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type,
localStatus = U_MISSING_RESOURCE_ERROR;
}
- if (U_FAILURE(localStatus) || (localStatus != U_USING_DEFAULT_WARNING &&
- localStatus != U_USING_FALLBACK_WARNING )) {
+ if (localStatus != U_ZERO_ERROR) {
*status = localStatus;
}
@@ -146,8 +160,7 @@ ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type,
localStatus = U_MISSING_RESOURCE_ERROR;
}
- if (U_FAILURE(localStatus) || (localStatus != U_USING_DEFAULT_WARNING &&
- localStatus != U_USING_FALLBACK_WARNING )) {
+ if (localStatus != U_ZERO_ERROR) {
*status = localStatus;
}
diff --git a/Build/source/libs/icu-xetex/i18n/umsg.cpp b/Build/source/libs/icu-xetex/i18n/umsg.cpp
index 696c6daae9a..8a58ee0442c 100644
--- a/Build/source/libs/icu-xetex/i18n/umsg.cpp
+++ b/Build/source/libs/icu-xetex/i18n/umsg.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -614,93 +614,93 @@ umsg_vparse(const UMessageFormat *fmt,
#define MAppend(c) if (len < destCapacity) dest[len++] = c; else len++
int32_t umsg_autoQuoteApostrophe(const UChar* pattern,
- int32_t patternLength,
- UChar* dest,
- int32_t destCapacity,
- UErrorCode* ec)
+ int32_t patternLength,
+ UChar* dest,
+ int32_t destCapacity,
+ UErrorCode* ec)
{
- int32_t state = STATE_INITIAL;
- int32_t braceCount = 0;
- int32_t len = 0;
-
- if (ec == NULL || U_FAILURE(*ec)) {
- return -1;
- }
-
- if (pattern == NULL || patternLength < -1 || (dest == NULL && destCapacity > 0)) {
- *ec = U_ILLEGAL_ARGUMENT_ERROR;
- return -1;
- }
-
- if (patternLength == -1) {
- patternLength = u_strlen(pattern);
- }
-
- for (int i = 0; i < patternLength; ++i) {
- UChar c = pattern[i];
- switch (state) {
- case STATE_INITIAL:
- switch (c) {
- case SINGLE_QUOTE:
- state = STATE_SINGLE_QUOTE;
- break;
- case CURLY_BRACE_LEFT:
- state = STATE_MSG_ELEMENT;
- ++braceCount;
- break;
- }
- break;
-
- case STATE_SINGLE_QUOTE:
- switch (c) {
- case SINGLE_QUOTE:
- state = STATE_INITIAL;
- break;
- case CURLY_BRACE_LEFT:
- case CURLY_BRACE_RIGHT:
- state = STATE_IN_QUOTE;
- break;
- default:
- MAppend(SINGLE_QUOTE);
- state = STATE_INITIAL;
- break;
- }
- break;
-
- case STATE_IN_QUOTE:
- switch (c) {
- case SINGLE_QUOTE:
- state = STATE_INITIAL;
- break;
- }
- break;
-
- case STATE_MSG_ELEMENT:
- switch (c) {
- case CURLY_BRACE_LEFT:
- ++braceCount;
- break;
- case CURLY_BRACE_RIGHT:
- if (--braceCount == 0) {
- state = STATE_INITIAL;
- }
- break;
- }
- break;
-
- default: // Never happens.
- break;
+ int32_t state = STATE_INITIAL;
+ int32_t braceCount = 0;
+ int32_t len = 0;
+
+ if (ec == NULL || U_FAILURE(*ec)) {
+ return -1;
+ }
+
+ if (pattern == NULL || patternLength < -1 || (dest == NULL && destCapacity > 0)) {
+ *ec = U_ILLEGAL_ARGUMENT_ERROR;
+ return -1;
+ }
+
+ if (patternLength == -1) {
+ patternLength = u_strlen(pattern);
}
- MAppend(c);
- }
+ for (int i = 0; i < patternLength; ++i) {
+ UChar c = pattern[i];
+ switch (state) {
+ case STATE_INITIAL:
+ switch (c) {
+ case SINGLE_QUOTE:
+ state = STATE_SINGLE_QUOTE;
+ break;
+ case CURLY_BRACE_LEFT:
+ state = STATE_MSG_ELEMENT;
+ ++braceCount;
+ break;
+ }
+ break;
+
+ case STATE_SINGLE_QUOTE:
+ switch (c) {
+ case SINGLE_QUOTE:
+ state = STATE_INITIAL;
+ break;
+ case CURLY_BRACE_LEFT:
+ case CURLY_BRACE_RIGHT:
+ state = STATE_IN_QUOTE;
+ break;
+ default:
+ MAppend(SINGLE_QUOTE);
+ state = STATE_INITIAL;
+ break;
+ }
+ break;
- // End of scan
- if (state == STATE_SINGLE_QUOTE || state == STATE_IN_QUOTE) {
- MAppend(SINGLE_QUOTE);
- }
+ case STATE_IN_QUOTE:
+ switch (c) {
+ case SINGLE_QUOTE:
+ state = STATE_INITIAL;
+ break;
+ }
+ break;
+
+ case STATE_MSG_ELEMENT:
+ switch (c) {
+ case CURLY_BRACE_LEFT:
+ ++braceCount;
+ break;
+ case CURLY_BRACE_RIGHT:
+ if (--braceCount == 0) {
+ state = STATE_INITIAL;
+ }
+ break;
+ }
+ break;
+
+ default: // Never happens.
+ break;
+ }
+
+ MAppend(c);
+ }
+
+ // End of scan
+ if (state == STATE_SINGLE_QUOTE || state == STATE_IN_QUOTE) {
+ MAppend(SINGLE_QUOTE);
+ }
- return u_terminateUChars(dest, destCapacity, len, ec);
+ return u_terminateUChars(dest, destCapacity, len, ec);
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/unesctrn.h b/Build/source/libs/icu-xetex/i18n/unesctrn.h
index 1c181d14643..2418bce7a5a 100644
--- a/Build/source/libs/icu-xetex/i18n/unesctrn.h
+++ b/Build/source/libs/icu-xetex/i18n/unesctrn.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (c) 2001-2004, International Business Machines
+ * Copyright (c) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -79,15 +79,11 @@ class U_I18N_API UnescapeTransliterator : public Transliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/uni2name.h b/Build/source/libs/icu-xetex/i18n/uni2name.h
index 84551151496..3e9412fe34d 100644
--- a/Build/source/libs/icu-xetex/i18n/uni2name.h
+++ b/Build/source/libs/icu-xetex/i18n/uni2name.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -55,15 +55,11 @@ class U_I18N_API UnicodeNameTransliterator : public Transliterator {
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
- *
- * @draft ICU 2.2
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
- *
- * @draft ICU 2.2
*/
static UClassID U_EXPORT2 getStaticClassID();
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/calendar.h b/Build/source/libs/icu-xetex/i18n/unicode/calendar.h
index 91dd1c44eb4..14fdd817d88 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/calendar.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/calendar.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -37,6 +37,7 @@
#include "unicode/locid.h"
#include "unicode/timezone.h"
#include "unicode/ucal.h"
+#include "unicode/umisc.h"
U_NAMESPACE_BEGIN
@@ -45,14 +46,9 @@ class ICUServiceFactory;
/**
* @internal
*/
-typedef const void* URegistryKey;
-
-/**
- * @internal
- */
typedef int32_t UFieldResolutionTable[12][8];
-/**.
+/**
* <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>,
@@ -1591,7 +1587,7 @@ protected:
* computed. This occurs only in setTimeInMillis(). A calendar set
* to this state will compute all fields from the time if it becomes
* necessary, but otherwise will delay such computation.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UBool fAreFieldsVirtuallySet;
@@ -2091,7 +2087,7 @@ private:
* @param type type of the locale we're looking for (valid or actual)
* @param status error code for the operation
* @return the locale
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode &status) const;
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/coll.h b/Build/source/libs/icu-xetex/i18n/unicode/coll.h
index 638d8c54b7b..a01fabc074d 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/coll.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/coll.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines *
+* Copyright (C) 1996-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
******************************************************************************
*/
@@ -58,6 +58,7 @@
#include "unicode/normlzr.h"
#include "unicode/locid.h"
#include "unicode/uniset.h"
+#include "unicode/umisc.h"
U_NAMESPACE_BEGIN
@@ -67,11 +68,6 @@ class StringEnumeration;
/**
* @stable ICU 2.6
*/
-typedef const void* URegistryKey;
-
-/**
- * @stable ICU 2.6
- */
class CollatorFactory;
#endif
@@ -623,7 +619,7 @@ public:
* @param status input-output error code
* @return a string enumeration over locale strings. The caller is
* responsible for closing the result.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static StringEnumeration* U_EXPORT2 getKeywords(UErrorCode& status);
@@ -636,7 +632,7 @@ public:
* @param status input-output error code
* @return a string enumeration over collation keyword values, or NULL
* upon error. The caller is responsible for deleting the result.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static StringEnumeration* U_EXPORT2 getKeywordValues(const char *keyword, UErrorCode& status);
@@ -665,7 +661,7 @@ public:
* @param status reference to input-output error code
* @return the functionally equivalent collation locale, or the root
* locale upon error.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static Locale U_EXPORT2 getFunctionalEquivalent(const char* keyword, const Locale& locale,
UBool& isAvailable, UErrorCode& status);
@@ -983,7 +979,7 @@ public:
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~CollatorFactory();
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/curramt.h b/Build/source/libs/icu-xetex/i18n/unicode/curramt.h
index 94bf806c2b8..c33e6f1f833 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/curramt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/curramt.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2004-2005, International Business Machines
+* Copyright (c) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -30,7 +30,7 @@ U_NAMESPACE_BEGIN
* A currency together with a numeric amount, such as 200 USD.
*
* @author Alan Liu
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_I18N_API CurrencyAmount: public Measure {
public:
@@ -42,7 +42,7 @@ class U_I18N_API CurrencyAmount: public Measure {
* NULL and must have length 3
* @param ec input-output error code. If the amount or the isoCode
* is invalid, then this will be set to a failing value.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyAmount(const Formattable& amount, const UChar* isoCode,
UErrorCode &ec);
@@ -55,33 +55,33 @@ class U_I18N_API CurrencyAmount: public Measure {
* NULL and must have length 3
* @param ec input-output error code. If the isoCode is invalid,
* then this will be set to a failing value.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyAmount(double amount, const UChar* isoCode,
UErrorCode &ec);
/**
* Copy constructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyAmount(const CurrencyAmount& other);
/**
* Assignment operator
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyAmount& operator=(const CurrencyAmount& other);
/**
* Return a polymorphic clone of this object. The result will
* have the same class as returned by getDynamicClassID().
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UObject* clone() const;
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~CurrencyAmount();
@@ -91,7 +91,7 @@ class U_I18N_API CurrencyAmount: public Measure {
* @return The class ID for this object. All objects of a given
* class have the same class ID. Objects of other classes have
* different class IDs.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UClassID getDynamicClassID() const;
@@ -99,19 +99,19 @@ class U_I18N_API CurrencyAmount: public Measure {
* Returns the class ID for this class. This is used to compare to
* the return value of getDynamicClassID().
* @return The class ID for all objects of this class.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static UClassID U_EXPORT2 getStaticClassID();
/**
* Return the currency unit object of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline const CurrencyUnit& getCurrency() const;
/**
* Return the ISO currency code of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline const UChar* getISOCurrency() const;
};
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/currunit.h b/Build/source/libs/icu-xetex/i18n/unicode/currunit.h
index 4acff270bd5..ecd94110292 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/currunit.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/currunit.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2004-2005, International Business Machines
+* Copyright (c) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -30,7 +30,7 @@ U_NAMESPACE_BEGIN
* subclasses MeasureUnit, for use with Measure and MeasureFormat.
*
* @author Alan Liu
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_I18N_API CurrencyUnit: public MeasureUnit {
public:
@@ -40,39 +40,39 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
* NULL and must have length 3
* @param ec input-output error code. If the isoCode is invalid,
* then this will be set to a failing value.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyUnit(const UChar* isoCode, UErrorCode &ec);
/**
* Copy constructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyUnit(const CurrencyUnit& other);
/**
* Assignment operator
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
CurrencyUnit& operator=(const CurrencyUnit& other);
/**
* Return a polymorphic clone of this object. The result will
* have the same class as returned by getDynamicClassID().
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UObject* clone() const;
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~CurrencyUnit();
/**
* Equality operator. Return true if this object is equal
* to the given object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UBool operator==(const UObject& other) const;
@@ -82,7 +82,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
* @return The class ID for this object. All objects of a given
* class have the same class ID. Objects of other classes have
* different class IDs.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UClassID getDynamicClassID() const;
@@ -90,13 +90,13 @@ class U_I18N_API CurrencyUnit: public MeasureUnit {
* Returns the class ID for this class. This is used to compare to
* the return value of getDynamicClassID().
* @return The class ID for all objects of this class.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static UClassID U_EXPORT2 getStaticClassID();
/**
* Return the ISO currency code of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline const UChar* getISOCurrency() const;
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/dcfmtsym.h b/Build/source/libs/icu-xetex/i18n/unicode/dcfmtsym.h
index 3769ea0299a..ac040c06e0a 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/dcfmtsym.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/dcfmtsym.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -119,8 +119,12 @@ public:
/** Nan symbol */
kNaNSymbol,
/** Significant digit symbol
- * @draft ICU 3.0 */
+ * @stable ICU 3.0 */
kSignificantDigitSymbol,
+ /** The monetary grouping separator
+ * @draft ICU 3.6
+ */
+ kMonetaryGroupingSeparatorSymbol,
/** count symbol constants */
kFormatSymbolCount
};
@@ -214,7 +218,7 @@ public:
/**
* Returns the locale for this object. Two flavors are available:
* valid and actual locale.
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
@@ -277,6 +281,12 @@ public:
*/
inline const UnicodeString &getConstSymbol(ENumberFormatSymbol symbol) const;
+ /**
+ * Returns that pattern stored in currecy info. Internal API for use by NumberFormat API.
+ * @internal
+ */
+ inline const UChar* getCurrencyPattern(void) const;
+
private:
/**
* Private symbol strings.
@@ -305,6 +315,7 @@ private:
char actualLocale[ULOC_FULLNAME_CAPACITY];
char validLocale[ULOC_FULLNAME_CAPACITY];
+ const UChar* currPattern;
};
// -------------------------------------
@@ -347,7 +358,10 @@ DecimalFormatSymbols::getLocale() const {
return locale;
}
-
+inline const UChar*
+DecimalFormatSymbols::getCurrencyPattern() const {
+ return currPattern;
+}
U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/decimfmt.h b/Build/source/libs/icu-xetex/i18n/unicode/decimfmt.h
index c6922c0dd67..296906fb7d7 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/decimfmt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/decimfmt.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -1119,7 +1119,7 @@ public:
* The width is counted in 16-bit code units.
* @return the format width, or zero if no padding is in effect
* @see #setFormatWidth
- * @see #getPadCharacter
+ * @see #getPadCharacterString
* @see #setPadCharacter
* @see #getPadPosition
* @see #setPadPosition
@@ -1135,7 +1135,7 @@ public:
* format(), or zero to disable padding. A negative
* width is equivalent to 0.
* @see #getFormatWidth
- * @see #getPadCharacter
+ * @see #getPadCharacterString
* @see #setPadCharacter
* @see #getPadPosition
* @see #setPadPosition
@@ -1166,7 +1166,7 @@ public:
* padChar.char32At(0) will be used as the pad character.
* @see #setFormatWidth
* @see #getFormatWidth
- * @see #getPadCharacter
+ * @see #getPadCharacterString
* @see #getPadPosition
* @see #setPadPosition
* @stable ICU 2.0
@@ -1183,7 +1183,7 @@ public:
* @see #setFormatWidth
* @see #getFormatWidth
* @see #setPadCharacter
- * @see #getPadCharacter
+ * @see #getPadCharacterString
* @see #setPadPosition
* @see #kPadBeforePrefix
* @see #kPadAfterPrefix
@@ -1204,7 +1204,7 @@ public:
* @see #setFormatWidth
* @see #getFormatWidth
* @see #setPadCharacter
- * @see #getPadCharacter
+ * @see #getPadCharacterString
* @see #getPadPosition
* @see #kPadBeforePrefix
* @see #kPadAfterPrefix
@@ -1540,7 +1540,7 @@ public:
* displayed. This value has no effect unless areSignificantDigitsUsed()
* returns true.
* @return the fewest significant digits that will be shown
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int32_t getMinimumSignificantDigits() const;
@@ -1549,7 +1549,7 @@ public:
* displayed. This value has no effect unless areSignificantDigitsUsed()
* returns true.
* @return the most significant digits that will be shown
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int32_t getMaximumSignificantDigits() const;
@@ -1560,7 +1560,7 @@ public:
* <code>min</code>, then it is set to <code>min</code>. This
* value has no effect unless areSignificantDigits() returns true.
* @param min the fewest significant digits to be shown
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setMinimumSignificantDigits(int32_t min);
@@ -1572,7 +1572,7 @@ public:
* This value has no effect unless areSignificantDigits() returns
* true.
* @param max the most significant digits to be shown
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setMaximumSignificantDigits(int32_t max);
@@ -1580,7 +1580,7 @@ public:
* Returns true if significant digits are in use, or false if
* integer and fraction digit counts are in use.
* @return true if significant digits are in use
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UBool areSignificantDigitsUsed() const;
@@ -1589,7 +1589,7 @@ public:
* fraction digit counts are in use.
* @param useSignificantDigits true to use significant digits, or
* false to use integer and fraction digit counts
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setSignificantDigitsUsed(UBool useSignificantDigits);
@@ -1604,7 +1604,7 @@ public:
* to use. It need not be null-terminated. May be the empty
* string or NULL to indicate no currency.
* @param ec input-output error code
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
@@ -1782,8 +1782,6 @@ private:
void setCurrencyForSymbols();
- void setCurrencyForLocale(const char* locale, UErrorCode& ec);
-
/**
* Constants.
*/
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/dtfmtsym.h b/Build/source/libs/icu-xetex/i18n/unicode/dtfmtsym.h
index bf4913669b3..d758cf7728f 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/dtfmtsym.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/dtfmtsym.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -35,6 +35,7 @@ U_NAMESPACE_BEGIN
/* forward declaration */
class SimpleDateFormat;
+class Hashtable;
/**
* DateFormatSymbols is a public class for encapsulating localizable date-time
@@ -202,6 +203,14 @@ public:
const UnicodeString* getEraNames(int32_t& count) const;
/**
+ * Sets era name strings. For example: "Anno Domini" and "Before Christ".
+ * @param eraNames Array of era name strings (DateFormatSymbols retains ownership.)
+ * @param count Filled in with length of the array.
+ * @draft ICU 3.6
+ */
+ void setEraNames(const UnicodeString* eraNames, int32_t count);
+
+ /**
* Gets month strings. For example: "January", "February", etc.
* @param count Filled in with length of the array.
* @return the month strings. (DateFormatSymbols retains ownership.)
@@ -235,41 +244,31 @@ public:
*/
void setShortMonths(const UnicodeString* shortMonths, int32_t count);
+ /**
+ * Selector for date formatting context
+ * @draft ICU 3.6
+ */
enum DtContextType {
- /**
- * Selector for format date context
- * @draft ICU 3.4
- */
- FORMAT = 0,
- /**
- * Selector for standalone date context
- * @draft ICU 3.4
- */
- STANDALONE = 1
+ FORMAT,
+ STANDALONE,
+ DT_CONTEXT_COUNT
};
+ /**
+ * Selector for date formatting width
+ * @draft ICU 3.6
+ */
enum DtWidthType {
- /**
- * Selector for wide strings
- * @draft ICU 3.4
- */
- WIDE = 4,
- /**
- * Selector for abbreviated strings
- * @draft ICU 3.4
- */
- ABBREVIATED = 3,
- /**
- * Selector for narrow strings
- * @draft ICU 3.4
- */
- NARROW = 5
+ ABBREVIATED,
+ WIDE,
+ NARROW,
+ DT_WIDTH_COUNT
};
/**
* Gets month strings by width and context. For example: "January", "February", etc.
* @param count Filled in with length of the array.
- * @param context The day formatting context, either FORMAT or STANDALONE
+ * @param context The formatting context, either FORMAT or STANDALONE
* @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW.
* @return the month strings. (DateFormatSymbols retains ownership.)
* @draft ICU 3.4
@@ -277,6 +276,17 @@ public:
const UnicodeString* getMonths(int32_t& count, DtContextType context, DtWidthType width) const;
/**
+ * Sets month strings by width and context. For example: "January", "February", etc.
+ *
+ * @param months The new month strings. (not adopted; caller retains ownership)
+ * @param count Filled in with length of the array.
+ * @param context The formatting context, either FORMAT or STANDALONE
+ * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW.
+ * @draft ICU 3.6
+ */
+ void setMonths(const UnicodeString* months, int32_t count, DtContextType context, DtWidthType width);
+
+ /**
* Gets weekday strings. For example: "Sunday", "Monday", etc.
* @param count Filled in with length of the array.
* @return the weekday strings. (DateFormatSymbols retains ownership.)
@@ -312,14 +322,47 @@ public:
/**
* Gets weekday strings by width and context. For example: "Sunday", "Monday", etc.
* @param count Filled in with length of the array.
- * @param context The day formatting context, either FORMAT or STANDALONE
- * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW.
+ * @param context The formatting context, either FORMAT or STANDALONE
+ * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW
* @return the month strings. (DateFormatSymbols retains ownership.)
* @draft ICU 3.4
*/
const UnicodeString* getWeekdays(int32_t& count, DtContextType context, DtWidthType width) const;
/**
+ * Sets weekday strings by width and context. For example: "Sunday", "Monday", etc.
+ * @param weekdays The new weekday strings. (not adopted; caller retains ownership)
+ * @param count Filled in with length of the array.
+ * @param context The formatting context, either FORMAT or STANDALONE
+ * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW
+ * @draft ICU 3.6
+ */
+ void setWeekdays(const UnicodeString* weekdays, int32_t count, DtContextType context, DtWidthType width);
+
+ /**
+ * Gets quarter strings by width and context. For example: "1st Quarter", "2nd Quarter", etc.
+ * @param count Filled in with length of the array.
+ * @param context The formatting context, either FORMAT or STANDALONE
+ * @param width The width of returned strings, either WIDE or ABBREVIATED. There
+ * are no NARROW quarters.
+ * @return the quarter strings. (DateFormatSymbols retains ownership.)
+ * @draft ICU 3.6
+ */
+ const UnicodeString* getQuarters(int32_t& count, DtContextType context, DtWidthType width) const;
+
+ /**
+ * Sets quarter strings by width and context. For example: "1st Quarter", "2nd Quarter", etc.
+ *
+ * @param quarters The new quarter strings. (not adopted; caller retains ownership)
+ * @param count Filled in with length of the array.
+ * @param context The formatting context, either FORMAT or STANDALONE
+ * @param width The width of returned strings, either WIDE or ABBREVIATED. There
+ * are no NARROW quarters.
+ * @draft ICU 3.6
+ */
+ void setQuarters(const UnicodeString* quarters, int32_t count, DtContextType context, DtWidthType width);
+
+ /**
* Gets AM/PM strings. For example: "AM" and "PM".
* @param count Filled in with length of the array.
* @return the weekday strings. (DateFormatSymbols retains ownership.)
@@ -340,7 +383,7 @@ public:
* @param rowCount Output param to receive number of rows.
* @param columnCount Output param to receive number of columns.
* @return The timezone strings as a 2-d array. (DateFormatSymbols retains ownership.)
- * @stable ICU 2.0
+ * @deprecated ICU 3.6
*/
const UnicodeString** getZoneStrings(int32_t& rowCount, int32_t& columnCount) const;
@@ -379,7 +422,7 @@ public:
/**
* Returns the locale for this object. Two flavors are available:
* valid and actual locale.
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
@@ -397,6 +440,55 @@ public:
*/
static UClassID U_EXPORT2 getStaticClassID();
+ /**
+ * The translation type of the translated zone strings
+ * @internal ICU 3.6
+ */
+ enum TimeZoneTranslationType {
+ TIMEZONE_SHORT_GENERIC,
+ TIMEZONE_SHORT_STANDARD,
+ TIMEZONE_SHORT_DAYLIGHT,
+ TIMEZONE_LONG_GENERIC,
+ TIMEZONE_LONG_STANDARD,
+ TIMEZONE_LONG_DAYLIGHT,
+ TIMEZONE_EXEMPLAR_CITY,
+ TIMEZONE_COUNT
+ };
+
+ /**
+ * Creates an enumeration of time zone IDs. The object is owned by the caller and should delete it after use.
+ * The time zone IDs are just for programmatic lookup. NOT LOCALIZED!!!
+ * @param status Input/output parameter, set to success or
+ * failure code upon return.
+ * @return A new StringEnumeration object
+ * @internal ICU 3.6
+ */
+ virtual StringEnumeration* createZoneStringIDs(UErrorCode &status);
+
+ /**
+ * Gets timezone string give the key and translation type
+ * @param ID The ID of zone strings, e.g: "America/Los_Angeles".
+ * The time zone ID is for programmatic lookup.
+ * @param type The translation type requested
+ * @param result Output parameter to recieve the translation string
+ * @param status Input/output parameter, set to success or
+ * failure code upon return.
+ * @return the input UnicodeString parameter for chaining
+ * @internal ICU 3.6
+ */
+ UnicodeString& getZoneString(const UnicodeString &ID, const TimeZoneTranslationType type, UnicodeString &result, UErrorCode &status);
+
+ /**
+ * Sets timezone string for the given the ID and translation type
+ * @param ID The ID of zone strings, e.g: "America/Los_Angeles".
+ * The time zone ID is for programmatic lookup.
+ * @param type The translation type to set the value for
+ * @param value The string with which current translation needs to be replaced
+ * @param status Input/output parameter, set to success or
+ * @internal ICU 3.6
+ */
+ void setZoneString(const UnicodeString &ID, const TimeZoneTranslationType type, const UnicodeString &value, UErrorCode &status);
+
private:
friend class SimpleDateFormat;
@@ -493,11 +585,38 @@ private:
int32_t fAmPmsCount;
/**
+ * Quarter strings. For example: "1st quarter", "2nd quarter", etc.
+ */
+ UnicodeString *fQuarters;
+ int32_t fQuartersCount;
+
+ /**
+ * Short quarters. For example: "Q1", "Q2", etc.
+ */
+ UnicodeString *fShortQuarters;
+ int32_t fShortQuartersCount;
+
+ /**
+ * Standalone quarter strings. For example: "1st quarter", "2nd quarter", etc.
+ */
+ UnicodeString *fStandaloneQuarters;
+ int32_t fStandaloneQuartersCount;
+
+ /**
+ * Standalone short quarter strings. For example: "Q1", "Q2", etc.
+ */
+ UnicodeString *fStandaloneShortQuarters;
+ int32_t fStandaloneShortQuartersCount;
+
+ /**
* The format data of all the timezones in this locale.
*/
UnicodeString** fZoneStrings;
int32_t fZoneStringsRowCount;
int32_t fZoneStringsColCount;
+ StringEnumeration* fZoneIDEnumeration;
+ Hashtable* fZoneStringsHash;
+ UResourceBundle* fResourceBundle;
/**
* Localized date-time pattern characters. For example: use 'u' as 'y'.
@@ -588,6 +707,61 @@ private:
* Delete just the zone strings.
*/
void disposeZoneStrings(void);
+ /**
+ * Initializes the zoneStrings hash and keys StringEnumeration after reading the zoneStrings resource
+ */
+ void initZoneStrings(UErrorCode &status);
+ /**
+ * initialzes the zoneStrings has and keys enumeration after reading the strings[][]. Required for backwards
+ * compatibility of setZoneStrings method
+ */
+ void initZoneStrings(const UnicodeString** strings, int32_t rowCount, int32_t collumnCount, UErrorCode& status);
+ /**
+ * initialization of the fZoneStrings data member
+ */
+ void initZoneStringsArray(UErrorCode& status);
+ /**
+ * Creates a deep clone of the Hashtable
+ */
+ Hashtable* createZoneStringsHash(const Hashtable* otherHash);
+
+ /**
+ * Fetches the key from the hashtable for a given ID.
+ * e.g: for a given ID such as PST returns "Americal/Los_Angeles"
+ * Used by SimpleDateFormat class.
+ * @param ID The id of the time zone for which the key needs to be fetched
+ * @param result Output parameter to recieve the key.
+ * @return the input UnicodeString object for chaining
+ */
+ UnicodeString& getZoneID(const UnicodeString& zid, UnicodeString& result, UErrorCode& status);
+
+ /**
+ * Fetches the zone type and zone string from the hashtable for a given key.
+ * e.g: for key: "Americal/Los_Angeles", text: "2004/1/1 PT 1:00" and start:9
+ * returns TIMEZONE_SHORT_GENERIC and "PT".
+ * Used by SimpleDateFormat class.
+ * @param ID the name of the timezone
+ * @param text the string containing the time zone translation
+ * @param start The position in string where time zone string starts
+ * @param type output parameter to recieve the type of time zone string
+ * @param value output parameter to recieve the the acutal time zone string
+ */
+ void getZoneType(const UnicodeString& zid, const UnicodeString& text, int32_t start, TimeZoneTranslationType& type, UnicodeString& value, UErrorCode& status);
+
+ /**
+ * Fetches the zone type and zone string from the hashtable by cycling through all elements in the hashtable.
+ * e.g: text: "2004/1/1 PT 1:00" and start:9
+ * returns "Americal/Los_Angeles", TIMEZONE_SHORT_GENERIC and "PT". Used by SimpleDateFormat class.
+ * Used by SimpleDateFormat class.
+ * @param ID output parameter to recieve the key name of the time zone
+ * @param text the string containing the time zone translation
+ * @param start The position in string where time zone string starts
+ * @param type output parameter to recieve the type of time zone string
+ * @param value output parameter to recieve the the acutal time zone string
+ * @param status output parameter to recive the error information
+ */
+ void findZoneIDTypeValue(UnicodeString& zid, const UnicodeString& text, int32_t start, TimeZoneTranslationType& type, UnicodeString& value, UErrorCode& status);
+
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/fmtable.h b/Build/source/libs/icu-xetex/i18n/unicode/fmtable.h
index b0b4786df1d..94ee32843f5 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/fmtable.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/fmtable.h
@@ -1,6 +1,6 @@
/*
********************************************************************************
-* Copyright (C) 1997-2005, International Business Machines
+* Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
********************************************************************************
*
@@ -127,7 +127,7 @@ public:
/**
* Creates a Formattable object that adopts the given UObject.
* @param objectToAdopt the UObject to set this object to
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
Formattable(UObject* objectToAdopt);
@@ -232,7 +232,7 @@ public:
/**
* Selector indicating a UObject value. Use getObject to
* retrieve the value.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
kObject
};
@@ -248,7 +248,7 @@ public:
* Returns TRUE if the data type of this Formattable object
* is kDouble, kLong, or kInt64.
* @return TRUE if this is a pure numeric object
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UBool isNumeric() const;
@@ -270,7 +270,7 @@ public:
* the status is set to U_INVALID_FORMAT_ERROR.
* @param status the error code
* @return the double value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
double getDouble(UErrorCode& status) const;
@@ -296,7 +296,7 @@ public:
* the status is set to U_INVALID_FORMAT_ERROR.
* @param status the error code
* @return the long value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int32_t getLong(UErrorCode& status) const;
@@ -321,7 +321,7 @@ public:
* the status is set to U_INVALID_FORMAT_ERROR.
* @param status the error code
* @return the int64 value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int64_t getInt64(UErrorCode& status) const;
@@ -339,7 +339,7 @@ public:
* undefined.
* @param status the error code.
* @return the Date value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDate getDate(UErrorCode& status) const;
@@ -360,7 +360,7 @@ public:
* @param result Output param to receive the Date value of this object.
* @param status the error code.
* @return A reference to 'result'.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UnicodeString& getString(UnicodeString& result, UErrorCode& status) const;
@@ -379,7 +379,7 @@ public:
* U_INVALID_FORMAT_ERROR and the result is a bogus string.
* @param status the error code.
* @return a const reference to the string value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
const UnicodeString& getString(UErrorCode& status) const;
@@ -397,7 +397,7 @@ public:
* and the result is a bogus string.
* @param status the error code.
* @return a reference to the string value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UnicodeString& getString(UErrorCode& status);
@@ -418,7 +418,7 @@ public:
* @param count fill-in with the count of this object.
* @param status the error code.
* @return the array value of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
const Formattable* getArray(int32_t& count, UErrorCode& status) const;
@@ -436,7 +436,7 @@ public:
* Returns a pointer to the UObject contained within this
* formattable, or NULL if this object does not contain a UObject.
* @return a UObject pointer, or NULL
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
const UObject* getObject() const;
@@ -509,7 +509,7 @@ public:
* the type to kObject. After this call, the caller must not
* delete the given object.
* @param objectToAdopt the UObject value to be adopted
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptObject(UObject* objectToAdopt);
@@ -542,15 +542,6 @@ private:
*/
void dispose(void);
- /**
- * Creates a new Formattable array and copies the values from the specified
- * original.
- * @param array the original array
- * @param count the original array count
- * @return the new Formattable array.
- */
- static Formattable* createArrayCopy(const Formattable* array, int32_t count);
-
UnicodeString* getBogus() const;
union {
@@ -569,14 +560,6 @@ private:
UnicodeString fBogus; // Bogus string when it's needed.
};
-inline Formattable*
-Formattable::createArrayCopy(const Formattable* array, int32_t count)
-{
- Formattable *result = new Formattable[count];
- for (int32_t i=0; i<count; ++i) result[i] = array[i]; // Don't memcpy!
- return result;
-}
-
inline UDate Formattable::getDate(UErrorCode& status) const {
if (fType != kDate) {
if (U_SUCCESS(status)) {
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/format.h b/Build/source/libs/icu-xetex/i18n/unicode/format.h
index 75e53f839b3..7f17b52f00a 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/format.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/format.h
@@ -1,6 +1,7 @@
/*
********************************************************************************
-* Copyright (C) {1997-2005}, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
********************************************************************************
*
* File FORMAT.H
@@ -236,7 +237,7 @@ public:
* @param type type of the locale we're looking for (valid or actual)
* @param status error code for the operation
* @return the locale
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const;
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/gregocal.h b/Build/source/libs/icu-xetex/i18n/unicode/gregocal.h
index 7430b82f96d..f2d1b0b17d5 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/gregocal.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/gregocal.h
@@ -1,5 +1,6 @@
/*
-* Copyright (C) {1997-2005}, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
********************************************************************************
*
* File GREGOCAL.H
@@ -398,7 +399,7 @@ public:
* @param field the time field.
* @param status error result.
* @return the minimum value that this field could have, given the current date.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int32_t getActualMinimum(UCalendarDateFields field, UErrorCode &status) const;
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/measfmt.h b/Build/source/libs/icu-xetex/i18n/unicode/measfmt.h
index 76c752cb856..a5af55e9d53 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/measfmt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/measfmt.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2004-2005, International Business Machines
+* Copyright (c) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -36,7 +36,7 @@ U_NAMESPACE_BEGIN
*
* @see Format
* @author Alan Liu
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_I18N_API MeasureFormat : public Format {
@@ -48,7 +48,7 @@ class U_I18N_API MeasureFormat : public Format {
* @param locale desired locale
* @param ec input-output error code
* @return a formatter object, or NULL upon error
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static MeasureFormat* U_EXPORT2 createCurrencyFormat(const Locale& locale,
UErrorCode& ec);
@@ -58,7 +58,7 @@ class U_I18N_API MeasureFormat : public Format {
* locale.
* @param ec input-output error code
* @return a formatter object, or NULL upon error
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static MeasureFormat* U_EXPORT2 createCurrencyFormat(UErrorCode& ec);
@@ -66,7 +66,7 @@ class U_I18N_API MeasureFormat : public Format {
/**
* Default constructor.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
MeasureFormat();
};
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/measunit.h b/Build/source/libs/icu-xetex/i18n/unicode/measunit.h
index eae8dec978f..9a210e65957 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/measunit.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/measunit.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2004-2005, International Business Machines
+* Copyright (c) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -31,34 +31,34 @@ U_NAMESPACE_BEGIN
* <p>This is an abstract class.
*
* @author Alan Liu
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_I18N_API MeasureUnit: public UObject {
public:
/**
* Return a polymorphic clone of this object. The result will
* have the same class as returned by getDynamicClassID().
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UObject* clone() const = 0;
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~MeasureUnit();
/**
* Equality operator. Return true if this object is equal
* to the given object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UBool operator==(const UObject& other) const = 0;
protected:
/**
* Default constructor.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
MeasureUnit();
};
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/measure.h b/Build/source/libs/icu-xetex/i18n/unicode/measure.h
index 84f29fe5119..6b7a0497b47 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/measure.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/measure.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2004-2005, International Business Machines
+* Copyright (c) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -40,7 +40,7 @@ class MeasureUnit;
* <p>This is an abstract class.
*
* @author Alan Liu
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_I18N_API Measure: public UObject {
public:
@@ -52,40 +52,40 @@ class U_I18N_API Measure: public UObject {
* @param adoptedUnit the unit object, which must not be NULL
* @param ec input-output error code. If the amount or the unit
* is invalid, then this will be set to a failing value.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
Measure(const Formattable& number, MeasureUnit* adoptedUnit,
UErrorCode& ec);
/**
* Copy constructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
Measure(const Measure& other);
/**
* Assignment operator
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
Measure& operator=(const Measure& other);
/**
* Return a polymorphic clone of this object. The result will
* have the same class as returned by getDynamicClassID().
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UObject* clone() const = 0;
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~Measure();
/**
* Equality operator. Return true if this object is equal
* to the given object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UBool operator==(const UObject& other) const;
@@ -93,20 +93,20 @@ class U_I18N_API Measure: public UObject {
* Return a reference to the numeric value of this object. The
* numeric value may be of any numeric type supported by
* Formattable.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline const Formattable& getNumber() const;
/**
* Return a reference to the unit of this object.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline const MeasureUnit& getUnit() const;
protected:
/**
* Default constructor.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
Measure();
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/msgfmt.h b/Build/source/libs/icu-xetex/i18n/unicode/msgfmt.h
index e9713ec4433..815cabbb944 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/msgfmt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/msgfmt.h
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 1997-2005, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others. All Rights Reserved.
********************************************************************************
*
* File MSGFMT.H
@@ -611,7 +611,7 @@ public:
* @param status Input/output error code. If the pattern
* cannot be parsed, the failure code is set.
* @return the standard equivalent of the original pattern
- * @since ICU 3.4
+ * @stable ICU 3.4
*/
static UnicodeString autoQuoteApostrophe(const UnicodeString& pattern,
UErrorCode& status);
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/numfmt.h b/Build/source/libs/icu-xetex/i18n/unicode/numfmt.h
index 764ff36af8d..b27ed470819 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/numfmt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/numfmt.h
@@ -1,5 +1,7 @@
/*
-* Copyright (C) {1997-2005}, International Business Machines Corporation and others. All Rights Reserved.
+********************************************************************************
+* Copyright (C) 1997-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
********************************************************************************
*
* File NUMFMT.H
@@ -39,11 +41,6 @@ U_NAMESPACE_BEGIN
#if !UCONFIG_NO_SERVICE
class NumberFormatFactory;
class StringEnumeration;
-
-/**
- * @internal
- */
-typedef const void* URegistryKey;
#endif
/**
@@ -645,7 +642,7 @@ public:
* to use. It need not be null-terminated. May be the empty
* string or NULL to indicate no currency.
* @param ec input-output error code
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual void setCurrency(const UChar* theCurrency, UErrorCode& ec);
@@ -771,7 +768,7 @@ public:
/**
* Destructor
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~NumberFormatFactory();
@@ -802,7 +799,7 @@ public:
/**
* A NumberFormatFactory that supports a single locale. It can be visible or invisible.
- * @draft ICU 3.0
+ * @stable ICU 2.6
*/
class U_I18N_API SimpleNumberFormatFactory : public NumberFormatFactory {
protected:
@@ -825,7 +822,7 @@ public:
SimpleNumberFormatFactory(const Locale& locale, UBool visible = TRUE);
/**
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual ~SimpleNumberFormatFactory();
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/rbnf.h b/Build/source/libs/icu-xetex/i18n/unicode/rbnf.h
index 59cdf10616c..030565eb284 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/rbnf.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/rbnf.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and others.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others.
* All Rights Reserved.
*******************************************************************************
*/
@@ -22,7 +22,7 @@
*
* @stable ICU 2.4
*/
-#if defined(U_INT64_T_UNAVAILABLE) || UCONFIG_NO_FORMATTING
+#if UCONFIG_NO_FORMATTING
#define U_HAVE_RBNF 0
#else
#define U_HAVE_RBNF 1
@@ -57,16 +57,13 @@ class Collator;
#endif
/**
- *
- * <h2> Rule Based Number Format C++ API </h2>
- *
- * <p>A class that formats numbers according to a set of rules. This number formatter is
+ * The RuleBasedNumberFormat class formats numbers according to a set of rules. This number formatter is
* typically used for spelling out numeric values in words (e.g., 25,3476 as
* &quot;twenty-five thousand three hundred seventy-six&quot; or &quot;vingt-cinq mille trois
* cents soixante-seize&quot; or
* &quot;f&uuml;nfundzwanzigtausenddreihundertsechsundsiebzig&quot;), but can also be used for
* other complicated formatting tasks, such as formatting a number of seconds as hours,
- * minutes and seconds (e.g., 3,730 as &quot;1:02:10&quot;).</p>
+ * minutes and seconds (e.g., 3,730 as &quot;1:02:10&quot;).
*
* <p>The resources contain three predefined formatters for each locale: spellout, which
* spells out a value in words (123 is &quot;one hundred twenty-three&quot;); ordinal, which
@@ -517,7 +514,7 @@ public:
* syntax.
* @param perror The parse error if an error was encountered.
* @param status The status indicating whether the constructor succeeded.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
RuleBasedNumberFormat(const UnicodeString& rules, UParseError& perror, UErrorCode& status);
@@ -542,7 +539,7 @@ public:
* names in the description. These will be copied by the constructor.
* @param perror The parse error if an error was encountered.
* @param status The status indicating whether the constructor succeeded.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
RuleBasedNumberFormat(const UnicodeString& rules, const UnicodeString& localizations,
UParseError& perror, UErrorCode& status);
@@ -589,7 +586,7 @@ public:
* lenient parsing.
* @param perror The parse error if an error was encountered.
* @param status The status indicating whether the constructor succeeded.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
RuleBasedNumberFormat(const UnicodeString& rules, const UnicodeString& localizations,
const Locale& locale, UParseError& perror, UErrorCode& status);
@@ -680,7 +677,7 @@ public:
/**
* Return the number of locales for which we have localized rule set display names.
* @return the number of locales for which we have localized rule set display names.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
virtual int32_t getNumberOfRuleSetDisplayNameLocales(void) const;
@@ -690,7 +687,7 @@ public:
* @param status set to a failure code when this function fails
* @return the locale
* @see #getNumberOfRuleSetDisplayNameLocales
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
virtual Locale getRuleSetDisplayNameLocale(int32_t index, UErrorCode& status) const;
@@ -705,7 +702,7 @@ public:
* display name is desired
* @return the display name for the given index, which might be bogus if there is an error
* @see #getRuleSetName
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
virtual UnicodeString getRuleSetDisplayName(int32_t index,
const Locale& locale = Locale::getDefault());
@@ -715,8 +712,8 @@ public:
* The locale is matched against the locales for which there is display name data, using
* normal fallback rules. If no locale matches, the default display name is returned.
* @return the display name for the rule set
- * @draft ICU 3.2
- * @see #getRuleSetDisplayNames
+ * @stable ICU 3.2
+ * @see #getRuleSetDisplayName
*/
virtual UnicodeString getRuleSetDisplayName(const UnicodeString& ruleSetName,
const Locale& locale = Locale::getDefault());
@@ -861,7 +858,7 @@ public:
* @param parsePosition On entry, contains the position of the first character
* in "text" to examine. On exit, has been updated to contain the position
* of the first character in "text" that wasn't consumed by the parse.
- * @see #setLenientParseMode
+ * @see #setLenient
* @stable ICU 2.0
*/
virtual void parse(const UnicodeString& text,
@@ -921,7 +918,7 @@ public:
* Returns true if lenient-parse mode is turned on. Lenient parsing is off
* by default.
* @return true if lenient-parse mode is turned on.
- * @see #setLenientParseMode
+ * @see #setLenient
* @stable ICU 2.0
*/
virtual inline UBool isLenient(void) const;
@@ -942,7 +939,7 @@ public:
* Return the name of the current default rule set. If the current rule set is
* not public, returns a bogus (and empty) UnicodeString.
* @return the name of the current default rule set
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UnicodeString getDefaultRuleSetName() const;
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/regex.h b/Build/source/libs/icu-xetex/i18n/unicode/regex.h
index 2c6e95a5e8d..979082a394f 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/regex.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/regex.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: regex.h
@@ -282,7 +282,7 @@ private:
*
* @internal
*/
- virtual RegexMatcher *matcher(const UChar *input,
+ RegexMatcher *matcher(const UChar *input,
UErrorCode &status) const;
public:
@@ -652,7 +652,7 @@ public:
* @return the start position of substring matched by the specified group.
* @stable ICU 2.4
*/
- virtual int32_t start(int group, UErrorCode &status) const;
+ virtual int32_t start(int32_t group, UErrorCode &status) const;
/**
@@ -680,7 +680,7 @@ public:
* Return -1 if the capture group exists in the pattern but was not part of the match.
* @stable ICU 2.4
*/
- virtual int32_t end(int group, UErrorCode &status) const;
+ virtual int32_t end(int32_t group, UErrorCode &status) const;
/**
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/simpletz.h b/Build/source/libs/icu-xetex/i18n/unicode/simpletz.h
index db180109191..bb7c9d14445 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/simpletz.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/simpletz.h
@@ -645,7 +645,7 @@ public:
* are in effect. A positive number, typically one hour (3600000).
* @stable ICU 2.0
*/
- int32_t getDSTSavings(void) const;
+ virtual int32_t getDSTSavings(void) const;
/**
* Queries if this TimeZone uses Daylight Savings Time.
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/smpdtfmt.h b/Build/source/libs/icu-xetex/i18n/unicode/smpdtfmt.h
index af79af240b6..4c2195943af 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/smpdtfmt.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/smpdtfmt.h
@@ -1,5 +1,5 @@
/*
-* Copyright (C) 1997-2005, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others. All Rights Reserved.
*******************************************************************************
*
* File SMPDTFMT.H
@@ -724,6 +724,21 @@ private:
const UnicodeString* stringArray, int32_t stringArrayCount, Calendar& cal) const;
/**
+ * Private code-size reduction function used by subParse.
+ * @param text the time text being parsed.
+ * @param start where to start parsing.
+ * @param field the date field being parsed.
+ * @param stringArray the string array to parsed.
+ * @param stringArrayCount the size of the array.
+ * @param cal a Calendar set to the date and time to be formatted
+ * into a date/time string.
+ * @return the new start position if matching succeeded; a negative number
+ * indicating matching failure, otherwise.
+ */
+ int32_t matchQuarterString(const UnicodeString& text, int32_t start, UCalendarDateFields field,
+ const UnicodeString* stringArray, int32_t stringArrayCount, Calendar& cal) const;
+
+ /**
* Private member function that converts the parsed date strings into
* timeFields. Returns -start (for ParsePosition) if failed.
* @param text the time text to be parsed.
@@ -773,23 +788,23 @@ private:
void parseAmbiguousDatesAsAfter(UDate startDate, UErrorCode& status);
/**
- * Given a canonical time zone id, return the row index in our symbols for that id,
- * or -1 if none found.
- */
- int32_t getTimeZoneIndex(const UnicodeString& id) const;
-
- /**
* Given text, a start in the text, and a row index, return the column index that
* of the zone name that matches (case insensitive) at start, or 0 if none matches.
- */
+ *
int32_t matchZoneString(const UnicodeString& text, int32_t start, int32_t zi) const;
+ */
/**
* Given text, a start in the text, and a calendar, return the next offset in the text
* after matching the zone string. If we fail to match, return 0. Update the calendar
* as appropriate.
*/
- int32_t subParseZoneString(const UnicodeString& text, int32_t start, Calendar& cal) const;
+ int32_t subParseZoneString(const UnicodeString& text, int32_t start, Calendar& cal, UErrorCode& status) const;
+
+ /**
+ * append the gmt string
+ */
+ inline void appendGMT(UnicodeString &appendTo, Calendar& cal, UErrorCode& status) const;
/**
* Used to map pattern characters to Calendar field identifiers.
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/sortkey.h b/Build/source/libs/icu-xetex/i18n/unicode/sortkey.h
index ed633cbce25..ef202dd9ba4 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/sortkey.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/sortkey.h
@@ -1,7 +1,8 @@
/*
- * Copyright (C) 1996-2005, International Business Machines Corporation and others.
+ *****************************************************************************
+ * Copyright (C) 1996-2006, International Business Machines Corporation and others.
* All Rights Reserved.
- *****************************************************************************************
+ *****************************************************************************
*
* File sortkey.h
*
@@ -14,7 +15,7 @@
* 6/20/97 helena Java class name change.
* 8/18/97 helena Added internal API documentation.
* 6/26/98 erm Changed to use byte arrays and memcmp.
- *****************************************************************************************
+ *****************************************************************************
*/
#ifndef SORTKEY_H
@@ -108,7 +109,6 @@ public:
* Creates a collation key based on the collation key values.
* @param values the collation key values
* @param count number of collation key values, including trailing nulls.
- * @see #createBits
* @deprecated ICU 2.8 Use Collator::getSortKey(...) instead
*/
CollationKey(const uint8_t* values,
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/stsearch.h b/Build/source/libs/icu-xetex/i18n/unicode/stsearch.h
index c50306881cc..3844315abf6 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/stsearch.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/stsearch.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2005 IBM and others. All rights reserved.
+* Copyright (C) 2001-2006 IBM and others. All rights reserved.
**********************************************************************
* Date Name Description
* 03/22/2000 helena Creation.
@@ -501,11 +501,6 @@ private :
*/
UnicodeString m_pattern_;
/**
- * Corresponding collation rules
- * @stable ICU 2.0
- */
- UnicodeString m_collation_rules_;
- /**
* String search struct data
* @stable ICU 2.0
*/
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/tblcoll.h b/Build/source/libs/icu-xetex/i18n/unicode/tblcoll.h
index 39801bc547a..c83a6ac222d 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/tblcoll.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/tblcoll.h
@@ -1,6 +1,6 @@
/*
******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines Corporation and
+* Copyright (C) 1996-2006, International Business Machines Corporation and
* others. All Rights Reserved.
******************************************************************************
*/
@@ -693,7 +693,7 @@ private:
/**
* Rule UnicodeString
*/
- UnicodeString *urulestring;
+ UnicodeString urulestring;
// friend classes --------------------------------------------------------
@@ -721,13 +721,6 @@ private:
RuleBasedCollator();
/**
- * Constructor that takes in a UCollator struct
- * @param collator UCollator struct
- * @param rule the rule for the collator.
- */
- RuleBasedCollator(UCollator *collator, UnicodeString *rule);
-
- /**
* RuleBasedCollator constructor. This constructor takes a locale. The
* only caller of this class should be Collator::createInstance(). If
* createInstance() happens to know that the requested locale's collation is
@@ -776,7 +769,7 @@ private:
* @param collator new ucollator data
* @param rules corresponding collation rules
*/
- void setUCollator(UCollator *collator, UnicodeString *rules);
+ void setUCollator(UCollator *collator);
public:
/**
@@ -801,7 +794,7 @@ private:
void checkOwned(void);
// utility to init rule string used by checkOwned and construct
- void setRuleStringFromCollator(UErrorCode& status);
+ void setRuleStringFromCollator();
/**
* Converts C's UCollationResult to EComparisonResult
@@ -838,17 +831,16 @@ inline void RuleBasedCollator::setUCollator(const Locale &locale,
}
-inline void RuleBasedCollator::setUCollator(UCollator *collator,
- UnicodeString *rules)
+inline void RuleBasedCollator::setUCollator(UCollator *collator)
{
+
if (ucollator && dataIsOwned) {
ucol_close(ucollator);
- delete urulestring;
}
ucollator = collator;
- urulestring = rules;
dataIsOwned = FALSE;
isWriteThroughAlias = TRUE;
+ setRuleStringFromCollator();
}
inline const UCollator * RuleBasedCollator::getUCollator()
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/timezone.h b/Build/source/libs/icu-xetex/i18n/unicode/timezone.h
index 1d4e4bbe1b2..ef90ee13996 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/timezone.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/timezone.h
@@ -602,7 +602,23 @@ public:
* @stable ICU 2.0
*/
virtual UClassID getDynamicClassID(void) const = 0;
-
+
+ /**
+ * Returns the amount of time to be added to local standard time
+ * to get local wall clock time.
+ * <p>
+ * The default implementation always returns 3600000 milliseconds
+ * (i.e., one hour) if this time zone observes Daylight Saving
+ * Time. Otherwise, 0 (zero) is returned.
+ * <p>
+ * If an underlying TimeZone implementation subclass supports
+ * historical Daylight Saving Time changes, this method returns
+ * the known latest daylight saving value.
+ *
+ * @return the amount of saving time in milliseconds
+ * @draft ICU 3.6
+ */
+ virtual int32_t getDSTSavings() const;
protected:
/**
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/translit.h b/Build/source/libs/icu-xetex/i18n/unicode/translit.h
index dfa36ccaad7..117325ff178 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/translit.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/translit.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -373,7 +373,7 @@ public:
* @see #registerInstance
* @stable ICU 2.0
*/
- virtual Transliterator* clone() const { return 0; }
+ virtual Transliterator* clone() const;
/**
* Transliterates a segment of a string, with optional filtering.
@@ -606,8 +606,8 @@ protected:
* [<code>pos.start</code>, <code>pos.limit</code>) without
* applying the filter. End user code should call <code>
* transliterate()</code> instead of this method. Subclass code
- * should call <code>filteredTransliterate()</code> instead of
- * this method.<p>
+ * and wrapping transliterators should call
+ * <code>filteredTransliterate()</code> instead of this method.<p>
*
* @param text the buffer holding transliterated and
* untransliterated text
@@ -628,7 +628,8 @@ protected:
UTransPosition& pos,
UBool incremental) const = 0;
- /**
+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.
@@ -643,9 +644,6 @@ protected:
UTransPosition& index,
UBool incremental) const;
- friend class CompoundTransliterator; // for filteredTransliterate()
- friend class AnyTransliterator; // for filteredTransliterate()
-
private:
/**
@@ -891,7 +889,7 @@ public:
* @return the number of transliterators that compose this
* transliterator, or 1 if this transliterator is not composed of
* multiple transliterators
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
int32_t countElements() const;
@@ -912,7 +910,7 @@ public:
* transliterator, if this transliterator is made up of multiple
* transliterators, otherwise a reference to this object if given
* an index of 0
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
const Transliterator& getElement(int32_t index, UErrorCode& ec) const;
@@ -982,7 +980,7 @@ public:
Token context);
/**
- * Registers a instance <tt>obj</tt> of a subclass of
+ * Registers an instance <tt>obj</tt> of a subclass of
* <code>Transliterator</code> with the system. When
* <tt>createInstance()</tt> is called with an ID string that is
* equal to <tt>obj->getID()</tt>, then <tt>obj->clone()</tt> is
@@ -1000,6 +998,23 @@ public:
*/
static void U_EXPORT2 registerInstance(Transliterator* adoptedObj);
+ /**
+ * Registers an ID string as an alias of another ID string.
+ * That is, after calling this function, <tt>createInstance(aliasID)</tt>
+ * will return the same thing as <tt>createInstance(realID)</tt>.
+ * This is generally used to create shorter, more mnemonic aliases
+ * for long compound IDs.
+ *
+ * @param aliasID The new ID being registered.
+ * @param realID The ID that the new ID is to be an alias for.
+ * This can be a compound ID and can include filters and should
+ * refer to transliterators that have already been registered with
+ * the framework, although this isn't checked.
+ * @draft ICU 3.6
+ */
+ static void U_EXPORT2 registerAlias(const UnicodeString& aliasID,
+ const UnicodeString& realID);
+
protected:
/**
@@ -1020,6 +1035,11 @@ protected:
*/
static void _registerInstance(Transliterator* adoptedObj);
+ /**
+ * @internal
+ */
+ static void _registerAlias(const UnicodeString& aliasID, const UnicodeString& realID);
+
/**
* Register two targets as being inverses of one another. For
* example, calling registerSpecialInverse("NFC", "NFD", true) causes
@@ -1083,7 +1103,7 @@ public:
* @return a newly-created StringEnumeration over the transliterators
* available at the time of the call. The caller should delete this object
* when done using it.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static StringEnumeration* U_EXPORT2 getAvailableIDs(UErrorCode& ec);
@@ -1279,8 +1299,9 @@ inline int32_t Transliterator::getMaximumContextLength(void) const {
inline void Transliterator::setID(const UnicodeString& id) {
ID = id;
- // NUL-terminate the ID string
- ID.getTerminatedBuffer();
+ // NUL-terminate the ID string, which is a non-aliased copy.
+ ID.append((UChar)0);
+ ID.truncate(ID.length()-1);
}
inline Transliterator::Token Transliterator::integerToken(int32_t i) {
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/ucal.h b/Build/source/libs/icu-xetex/i18n/unicode/ucal.h
index d6ab3d023b7..30e4bfa871e 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/ucal.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/ucal.h
@@ -1,5 +1,7 @@
/*
-* Copyright (C) 1996-2005, International Business Machines Corporation and others. All Rights Reserved.
+*******************************************************************************
+* Copyright (C) 1996-2006, International Business Machines Corporation and
+* others. All Rights Reserved.
*******************************************************************************
*/
@@ -161,119 +163,238 @@ typedef enum UCalendarType UCalendarType;
*/
enum UCalendarDateFields {
/**
- * Era field
+ * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar.
+ * This is a calendar-specific value.
* @stable ICU 2.6
*/
UCAL_ERA,
+
/**
- * Year field
+ * Field number indicating the year. This is a calendar-specific value.
* @stable ICU 2.6
*/
UCAL_YEAR,
+
/**
- * Month field
+ * Field number indicating the month. This is a calendar-specific value.
+ * The first month of the year is
+ * <code>JANUARY</code>; the last depends on the number of months in a year.
+ * @see #UCAL_JANUARY
+ * @see #UCAL_FEBRUARY
+ * @see #UCAL_MARCH
+ * @see #UCAL_APRIL
+ * @see #UCAL_MAY
+ * @see #UCAL_JUNE
+ * @see #UCAL_JULY
+ * @see #UCAL_AUGUST
+ * @see #UCAL_SEPTEMBER
+ * @see #UCAL_OCTOBER
+ * @see #UCAL_NOVEMBER
+ * @see #UCAL_DECEMBER
+ * @see #UCAL_UNDECIMBER
* @stable ICU 2.6
*/
UCAL_MONTH,
+
/**
- * Week of year field
+ * Field number indicating the
+ * week number within the current year. The first week of the year, as
+ * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
+ * attributes, has value 1. Subclasses define
+ * the value of <code>UCAL_WEEK_OF_YEAR</code> for days before the first week of
+ * the year.
+ * @see ucal_setAttribute
* @stable ICU 2.6
*/
UCAL_WEEK_OF_YEAR,
- /**
- * Week of month field
+
+ /**
+ * Field number indicating the
+ * week number within the current month. The first week of the month, as
+ * defined by <code>UCAL_FIRST_DAY_OF_WEEK</code> and <code>UCAL_MINIMAL_DAYS_IN_FIRST_WEEK</code>
+ * attributes, has value 1. Subclasses define
+ * the value of <code>WEEK_OF_MONTH</code> for days before the first week of
+ * the month.
+ * @see #getFirstDayOfWeek
+ * @see #getMinimalDaysInFirstWeek
* @stable ICU 2.6
*/
UCAL_WEEK_OF_MONTH,
- /**
- * Date field
+
+ /**
+ * Field number indicating the
+ * day of the month. This is a synonym for <code>DAY_OF_MONTH</code>.
+ * The first day of the month has value 1.
+ * @see #DAY_OF_MONTH
* @stable ICU 2.6
*/
UCAL_DATE,
- /**
- * Day of year field
+
+ /**
+ * Field number indicating the day
+ * number within the current year. The first day of the year has value 1.
* @stable ICU 2.6
*/
UCAL_DAY_OF_YEAR,
- /**
- * Day of week field
+
+ /**
+ * Field number indicating the day
+ * of the week. This field takes values <code>SUNDAY</code>,
+ * <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>,
+ * <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>.
+ * @see #SUNDAY
+ * @see #MONDAY
+ * @see #TUESDAY
+ * @see #WEDNESDAY
+ * @see #THURSDAY
+ * @see #FRIDAY
+ * @see #SATURDAY
+ * @stable ICU 2.0
* @stable ICU 2.6
*/
UCAL_DAY_OF_WEEK,
- /**
- * Day of week in month field
+
+ /**
+ * Field number indicating the
+ * ordinal number of the day of the week within the current month. Together
+ * with the <code>DAY_OF_WEEK</code> field, this uniquely specifies a day
+ * within a month. Unlike <code>WEEK_OF_MONTH</code> and
+ * <code>WEEK_OF_YEAR</code>, this field's value does <em>not</em> depend on
+ * <code>getFirstDayOfWeek()</code> or
+ * <code>getMinimalDaysInFirstWeek()</code>. <code>DAY_OF_MONTH 1</code>
+ * through <code>7</code> always correspond to <code>DAY_OF_WEEK_IN_MONTH
+ * 1</code>; <code>8</code> through <code>15</code> correspond to
+ * <code>DAY_OF_WEEK_IN_MONTH 2</code>, and so on.
+ * <code>DAY_OF_WEEK_IN_MONTH 0</code> indicates the week before
+ * <code>DAY_OF_WEEK_IN_MONTH 1</code>. Negative values count back from the
+ * end of the month, so the last Sunday of a month is specified as
+ * <code>DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1</code>. Because
+ * negative values count backward they will usually be aligned differently
+ * within the month than positive values. For example, if a month has 31
+ * days, <code>DAY_OF_WEEK_IN_MONTH -1</code> will overlap
+ * <code>DAY_OF_WEEK_IN_MONTH 5</code> and the end of <code>4</code>.
+ * @see #DAY_OF_WEEK
+ * @see #WEEK_OF_MONTH
* @stable ICU 2.6
*/
UCAL_DAY_OF_WEEK_IN_MONTH,
- /**
- * AM/PM field
+
+ /**
+ * Field number indicating
+ * whether the <code>HOUR</code> is before or after noon.
+ * E.g., at 10:04:15.250 PM the <code>AM_PM</code> is <code>PM</code>.
+ * @see #UCAL_AM
+ * @see #UCAL_PM
+ * @see #UCAL_HOUR
* @stable ICU 2.6
*/
UCAL_AM_PM,
- /**
- * Hour field
+
+ /**
+ * Field number indicating the
+ * hour of the morning or afternoon. <code>HOUR</code> is used for the 12-hour
+ * clock.
+ * E.g., at 10:04:15.250 PM the <code>HOUR</code> is 10.
+ * @see #UCAL_AM_PM
+ * @see #UCAL_HOUR_OF_DAY
* @stable ICU 2.6
*/
UCAL_HOUR,
- /**
- * Hour of day field
+
+ /**
+ * Field number indicating the
+ * hour of the day. <code>HOUR_OF_DAY</code> is used for the 24-hour clock.
+ * E.g., at 10:04:15.250 PM the <code>HOUR_OF_DAY</code> is 22.
+ * @see #UCAL_HOUR
* @stable ICU 2.6
*/
UCAL_HOUR_OF_DAY,
- /**
- * Minute field
+
+ /**
+ * Field number indicating the
+ * minute within the hour.
+ * E.g., at 10:04:15.250 PM the <code>UCAL_MINUTE</code> is 4.
* @stable ICU 2.6
*/
UCAL_MINUTE,
- /**
- * Second field
+
+ /**
+ * Field number indicating the
+ * second within the minute.
+ * E.g., at 10:04:15.250 PM the <code>UCAL_SECOND</code> is 15.
* @stable ICU 2.6
*/
UCAL_SECOND,
- /**
- * Millisecond field
+
+ /**
+ * Field number indicating the
+ * millisecond within the second.
+ * E.g., at 10:04:15.250 PM the <code>UCAL_MILLISECOND</code> is 250.
* @stable ICU 2.6
*/
UCAL_MILLISECOND,
- /**
- * Zone offset field
+
+ /**
+ * Field number indicating the
+ * raw offset from GMT in milliseconds.
* @stable ICU 2.6
*/
UCAL_ZONE_OFFSET,
- /**
- * DST offset field
+
+ /**
+ * Field number indicating the
+ * daylight savings offset in milliseconds.
* @stable ICU 2.6
*/
UCAL_DST_OFFSET,
- /**
- * Year / week of year
+
+ /**
+ * Field number
+ * indicating the extended year corresponding to the
+ * <code>UCAL_WEEK_OF_YEAR</code> field. This may be one greater or less
+ * than the value of <code>UCAL_EXTENDED_YEAR</code>.
* @stable ICU 2.6
*/
UCAL_YEAR_WOY,
- /**
- * Day of week, localized (1..7)
+
+ /**
+ * Field number
+ * indicating the localized day of week. This will be a value from 1
+ * to 7 inclusive, with 1 being the localized first day of the week.
* @stable ICU 2.6
*/
-#ifndef U_HIDE_DRAFT_API
-
UCAL_DOW_LOCAL,
+
/**
- * Year of this calendar system, encompassing all supra-year fields. For example, in Gregorian/Julian calendars, positive Extended Year values indicate years AD, 1 BC = 0 extended, 2 BC = -1 extended, and so on.
+ * Year of this calendar system, encompassing all supra-year fields. For example,
+ * in Gregorian/Julian calendars, positive Extended Year values indicate years AD,
+ * 1 BC = 0 extended, 2 BC = -1 extended, and so on.
* @stable ICU 2.8
*/
UCAL_EXTENDED_YEAR,
- /**
- * Modified Julian day number, encompassing all date-related fields. Demarcates at local midnight.
+
+ /**
+ * Field number
+ * indicating the modified Julian day number. This is different from
+ * the conventional Julian day number in two regards. First, it
+ * demarcates days at local zone midnight, rather than noon GMT.
+ * Second, it is a local number; that is, it depends on the local time
+ * zone. It can be thought of as a single number that encompasses all
+ * the date-related fields.
* @stable ICU 2.8
*/
UCAL_JULIAN_DAY,
+
/**
- * Ranges from 0 to 23:59:59.999 (regardless of DST). This field behaves <em>exactly</em> like a composite of all time-related fields, not including the zone fields. As such, it also reflects discontinuities of those fields on DST transition days. On a day of DST onset, it will jump forward. On a day of DST cessation, it will jump backward. This reflects the fact that is must be combined with the DST_OFFSET field to obtain a unique local time value.
+ * Ranges from 0 to 23:59:59.999 (regardless of DST). This field behaves <em>exactly</em>
+ * like a composite of all time-related fields, not including the zone fields. As such,
+ * it also reflects discontinuities of those fields on DST transition days. On a day
+ * of DST onset, it will jump forward. On a day of DST cessation, it will jump
+ * backward. This reflects the fact that it must be combined with the DST_OFFSET field
+ * to obtain a unique local time value.
* @stable ICU 2.8
*/
UCAL_MILLISECONDS_IN_DAY,
-
-#endif /* U_HIDE_DRAFT_API */
/**
* Field count
@@ -281,15 +402,15 @@ enum UCalendarDateFields {
*/
UCAL_FIELD_COUNT,
-#ifndef U_HIDE_DRAFT_API
-
- /**
+ /**
+ * Field number indicating the
+ * day of the month. This is a synonym for <code>UCAL_DATE</code>.
+ * The first day of the month has value 1.
+ * @see #UCAL_DATE
* Synonym for UCAL_DATE
* @stable ICU 2.8
**/
UCAL_DAY_OF_MONTH=UCAL_DATE
-
-#endif /*U_HIDE_DRAFT_API*/
};
/** @stable ICU 2.0 */
@@ -350,7 +471,10 @@ enum UCalendarMonths {
UCAL_NOVEMBER,
/** December */
UCAL_DECEMBER,
- /** Undecimber */
+ /** Value of the <code>UCAL_MONTH</code> field indicating the
+ * thirteenth month of the year. Although the Gregorian calendar
+ * does not use this value, lunar calendars do.
+ */
UCAL_UNDECIMBER
};
@@ -381,7 +505,7 @@ typedef enum UCalendarAMPMs UCalendarAMPMs;
*
* @stable ICU 2.6
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ucal_openTimeZones(UErrorCode* ec);
/**
@@ -400,7 +524,7 @@ ucal_openTimeZones(UErrorCode* ec);
*
* @stable ICU 2.6
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
/**
@@ -419,7 +543,7 @@ ucal_openCountryTimeZones(const char* country, UErrorCode* ec);
*
* @stable ICU 2.6
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
/**
@@ -431,7 +555,7 @@ ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* ec);
*
* @stable ICU 2.6
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
/**
@@ -450,7 +574,7 @@ ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec);
*
* @stable ICU 2.6
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec);
/**
@@ -557,6 +681,52 @@ ucal_inDaylightTime(const UCalendar* cal,
UErrorCode* status );
/**
+ * Sets the GregorianCalendar change date. This is the point when the switch from
+ * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
+ * 15, 1582. Previous to this time and date will be Julian dates.
+ *
+ * This function works only for Gregorian calendars. If the UCalendar is not
+ * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
+ * error code is set.
+ *
+ * @param cal The calendar object.
+ * @param date The given Gregorian cutover date.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ *
+ * @see GregorianCalendar::setGregorianChange
+ * @see ucal_getGregorianChange
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ucal_setGregorianChange(UCalendar *cal, UDate date, UErrorCode *pErrorCode);
+
+/**
+ * Gets the Gregorian Calendar change date. This is the point when the switch from
+ * Julian dates to Gregorian dates occurred. Default is 00:00:00 local time, October
+ * 15, 1582. Previous to this time and date will be Julian dates.
+ *
+ * This function works only for Gregorian calendars. If the UCalendar is not
+ * an instance of a Gregorian calendar, then a U_UNSUPPORTED_ERROR
+ * error code is set.
+ *
+ * @param cal The calendar object.
+ * @param pErrorCode Pointer to a standard ICU error code. Its input value must
+ * 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.)
+ * @return The Gregorian cutover time for this calendar.
+ *
+ * @see GregorianCalendar::getGregorianChange
+ * @see ucal_setGregorianChange
+ * @draft ICU 3.6
+ */
+U_DRAFT UDate U_EXPORT2
+ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode);
+
+/**
* Types of UCalendar attributes
* @stable ICU 2.0
*/
@@ -927,9 +1097,9 @@ ucal_countAvailableTZIDs(int32_t rawOffset);
* @param type type of the locale we're looking for (valid or actual)
* @param status error code for the operation
* @return the locale name
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
-U_DRAFT const char * U_EXPORT2
+U_STABLE const char * U_EXPORT2
ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status);
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/ucol.h b/Build/source/libs/icu-xetex/i18n/unicode/ucol.h
index 70b4d1c9930..ed4c13c19cd 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/ucol.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/ucol.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (c) 1996-2005, International Business Machines Corporation and others.
+* Copyright (c) 1996-2006, International Business Machines Corporation and others.
* All Rights Reserved.
*******************************************************************************
*/
@@ -164,12 +164,12 @@ typedef UColAttributeValue UCollationStrength;
* @stable ICU 2.0
*/
typedef enum {
- /** Attribute for direction of secondary weights - used in French.\
+ /** Attribute for direction of secondary weights - used in French.
* Acceptable values are UCOL_ON, which results in secondary weights
* being considered backwards and UCOL_OFF which treats secondary
* weights in the order they appear.*/
UCOL_FRENCH_COLLATION,
- /** Attribute for handling variable elements.\
+ /** Attribute for handling variable elements.
* Acceptable values are UCOL_NON_IGNORABLE (default)
* which treats all the codepoints with non-ignorable
* primary weights in the same way,
@@ -178,7 +178,7 @@ typedef enum {
* to be ignored on primary level and moved to the quaternary
* level.*/
UCOL_ALTERNATE_HANDLING,
- /** Controls the ordering of upper and lower case letters.\
+ /** Controls the ordering of upper and lower case letters.
* Acceptable values are UCOL_OFF (default), which orders
* upper and lower case letters in accordance to their tertiary
* weights, UCOL_UPPER_FIRST which forces upper case letters to
@@ -186,45 +186,41 @@ typedef enum {
* the opposite. */
UCOL_CASE_FIRST,
/** Controls whether an extra case level (positioned before the third
- * level) is generated or not.\ Acceptable values are UCOL_OFF (default),
+ * level) is generated or not. Acceptable values are UCOL_OFF (default),
* when case level is not generated, and UCOL_ON which causes the case
- * level to be generated.\ Contents of the case level are affected by
- * the value of UCOL_CASE_FIRST attribute.\ A simple way to ignore
+ * level to be generated. Contents of the case level are affected by
+ * the value of UCOL_CASE_FIRST attribute. A simple way to ignore
* accent differences in a string is to set the strength to UCOL_PRIMARY
* and enable case level. */
UCOL_CASE_LEVEL,
/** Controls whether the normalization check and necessary normalizations
- * are performed.\ When set to UCOL_OFF (default) no normalization check
- * is performed.\ The correctness of the result is guaranteed only if the
- * input data is in so-called FCD form (see users manual for more info).\
- * When set to UCOL_ON, an incremental check is performed to see whether the input data
- * is in the FCD form.\ If the data is not in the FCD form, incremental
- * NFD normalization is performed. */
+ * are performed. When set to UCOL_OFF (default) no normalization check
+ * is performed. The correctness of the result is guaranteed only if the
+ * input data is in so-called FCD form (see users manual for more info).
+ * When set to UCOL_ON, an incremental check is performed to see whether
+ * the input data is in the FCD form. If the data is not in the FCD form,
+ * incremental NFD normalization is performed. */
UCOL_NORMALIZATION_MODE,
/** An alias for UCOL_NORMALIZATION_MODE attribute */
UCOL_DECOMPOSITION_MODE = UCOL_NORMALIZATION_MODE,
- /** The strength attribute.\ Can be either UCOL_PRIMARY, UCOL_SECONDARY,
- * UCOL_TERTIARY, UCOL_QUATERNARY or UCOL_IDENTICAL.\ The usual strength
- * for most locales (except Japanese) is tertiary.\ Quaternary strength
+ /** The strength attribute. Can be either UCOL_PRIMARY, UCOL_SECONDARY,
+ * UCOL_TERTIARY, UCOL_QUATERNARY or UCOL_IDENTICAL. The usual strength
+ * for most locales (except Japanese) is tertiary. Quaternary strength
* is useful when combined with shifted setting for alternate handling
* attribute and for JIS x 4061 collation, when it is used to distinguish
* between Katakana and Hiragana (this is achieved by setting the
- * UCOL_HIRAGANA_QUATERNARY mode to on.\ Otherwise, quaternary level
+ * UCOL_HIRAGANA_QUATERNARY mode to on. Otherwise, quaternary level
* is affected only by the number of non ignorable code points in
- * the string.\ Identical strength is rarely useful, as it amounts
+ * the string. Identical strength is rarely useful, as it amounts
* to codepoints of the NFD form of the string. */
UCOL_STRENGTH,
- /** when turned on, this attribute
- * positions Hiragana before all
- * non-ignorables on quaternary level
- * This is a sneaky way to produce JIS
- * sort order */
+ /** When turned on, this attribute positions Hiragana before all
+ * non-ignorables on quaternary level This is a sneaky way to produce JIS
+ * sort order */
UCOL_HIRAGANA_QUATERNARY_MODE,
- /** when turned on, this attribute
- * generates a collation key
- * for the numeric value of substrings
- * of digits. This is a way to get '100'
- * to sort AFTER '2'.*/
+ /** When turned on, this attribute generates a collation key
+ * for the numeric value of substrings of digits.
+ * This is a way to get '100' to sort AFTER '2'. */
UCOL_NUMERIC_COLLATION,
UCOL_ATTRIBUTE_COUNT
} UColAttribute;
@@ -277,7 +273,7 @@ ucol_open(const char *loc, UErrorCode *status);
* occurred during parsing. This argument can currently be set
* to NULL, but at users own risk. Please provide a real structure.
* @param status A pointer to an UErrorCode to receive any errors
- * @return A pointer to a UCollator.\ It is not guaranteed that NULL be returned in case
+ * @return A pointer to a UCollator. It is not guaranteed that NULL be returned in case
* of error - please use status argument to check for errors.
* @see ucol_open
* @see ucol_safeClone
@@ -323,10 +319,10 @@ ucol_openRules( const UChar *rules,
* @see ucol_setVariableTop
* @see ucol_getShortDefinitionString
* @see ucol_normalizeShortDefinitionString
- * @draft ICU 3.0
+ * @stable ICU 3.0
*
*/
-U_CAPI UCollator* U_EXPORT2
+U_STABLE UCollator* U_EXPORT2
ucol_openFromShortString( const char *definition,
UBool forceDefaults,
UParseError *parseError,
@@ -345,7 +341,7 @@ ucol_openFromShortString( const char *definition,
*
* @deprecated ICU 3.4, use ucol_getContractionsAndExpansions instead
*/
-U_CAPI int32_t U_EXPORT2
+U_DEPRECATED int32_t U_EXPORT2
ucol_getContractions( const UCollator *coll,
USet *conts,
UErrorCode *status);
@@ -361,15 +357,15 @@ ucol_getContractions( const UCollator *coll,
*
* @draft ICU 3.4
*/
-U_CAPI void U_EXPORT2
+U_DRAFT void U_EXPORT2
ucol_getContractionsAndExpansions( const UCollator *coll,
USet *contractions, USet *expansions,
UBool addPrefixes, UErrorCode *status);
/**
* Close a UCollator.
- * Once closed, a UCollator should not be used.\ Every open collator should
- * be closed.\ Otherwise, a memory leak will result.
+ * Once closed, a UCollator should not be used. Every open collator should
+ * be closed. Otherwise, a memory leak will result.
* @param coll The UCollator to close.
* @see ucol_open
* @see ucol_openRules
@@ -550,9 +546,9 @@ ucol_countAvailable(void);
* @param status input-output error code
* @return a string enumeration over locale strings. The caller is
* responsible for closing the result.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ucol_openAvailableLocales(UErrorCode *status);
#endif
@@ -563,9 +559,9 @@ ucol_openAvailableLocales(UErrorCode *status);
* @param status input-output error code
* @return a string enumeration over locale strings. The caller is
* responsible for closing the result.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ucol_getKeywords(UErrorCode *status);
/**
@@ -577,9 +573,9 @@ ucol_getKeywords(UErrorCode *status);
* @param status input-output error code
* @return a string enumeration over collation keyword values, or NULL
* upon error. The caller is responsible for closing the result.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UEnumeration* U_EXPORT2
+U_STABLE UEnumeration* U_EXPORT2
ucol_getKeywordValues(const char *keyword, UErrorCode *status);
/**
@@ -610,9 +606,9 @@ ucol_getKeywordValues(const char *keyword, UErrorCode *status);
* @return the actual buffer size needed for the locale. If greater
* than resultCapacity, the returned full name will be truncated and
* an error code will be returned.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucol_getFunctionalEquivalent(char* result, int32_t resultCapacity,
const char* keyword, const char* locale,
UBool* isAvailable, UErrorCode* status);
@@ -647,9 +643,9 @@ ucol_getRules( const UCollator *coll,
* @return length of the resulting string
* @see ucol_openFromShortString
* @see ucol_normalizeShortDefinitionString
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucol_getShortDefinitionString(const UCollator *coll,
const char *locale,
char *buffer,
@@ -673,10 +669,10 @@ ucol_getShortDefinitionString(const UCollator *coll,
* @see ucol_openFromShortString
* @see ucol_getShortDefinitionString
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucol_normalizeShortDefinitionString(const char *source,
char *destination,
int32_t capacity,
@@ -812,7 +808,7 @@ ucol_getVersion(const UCollator* coll, UVersionInfo info);
* @param info the version # information, the result will be filled in
* @stable ICU 2.8
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
ucol_getUCAVersion(const UCollator* coll, UVersionInfo info);
/**
@@ -998,9 +994,9 @@ ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *statu
* @return real locale name from which the collation data comes.
* If the collator was instantiated from rules, returns
* NULL.
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
-U_DRAFT const char * U_EXPORT2
+U_STABLE const char * U_EXPORT2
ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status);
/**
@@ -1016,12 +1012,14 @@ ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode
U_STABLE USet * U_EXPORT2
ucol_getTailoredSet(const UCollator *coll, UErrorCode *status);
+#ifndef U_HIDE_INTERNAL_API
/**
* Returned by ucol_collatorToIdentifier to signify that collator is
* not encodable as an identifier.
* @internal ICU 3.0
*/
#define UCOL_SIT_COLLATOR_NOT_ENCODABLE 0x80000000
+#endif /* U_HIDE_INTERNAL_API */
/**
* Get a 31-bit identifier given a collator.
@@ -1189,9 +1187,9 @@ ucol_prepareShortStringOpen( const char *definition,
* @param status for catching errors
* @return size of the image
* @see ucol_openBinary
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucol_cloneBinary(const UCollator *coll,
uint8_t *buffer, int32_t capacity,
UErrorCode *status);
@@ -1211,9 +1209,9 @@ ucol_cloneBinary(const UCollator *coll,
* @param status for catching errors
* @return newly created collator
* @see ucol_cloneBinary
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UCollator* U_EXPORT2
+U_STABLE UCollator* U_EXPORT2
ucol_openBinary(const uint8_t *bin, int32_t length,
const UCollator *base,
UErrorCode *status);
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/ucsdet.h b/Build/source/libs/icu-xetex/i18n/unicode/ucsdet.h
new file mode 100644
index 00000000000..27e2e34e6aa
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/unicode/ucsdet.h
@@ -0,0 +1,350 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ * file name: ucsdet.h
+ * encoding: US-ASCII
+ * indentation:4
+ *
+ * created on: 2005Aug04
+ * created by: Andy Heninger
+ *
+ * ICU Character Set Detection, API for C
+ *
+ * Draft version 18 Oct 2005
+ *
+ */
+
+#ifndef __UCSDET_H
+#define __UCSDET_H
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_CONVERSION
+#include "unicode/uenum.h"
+
+/**
+ * \file
+ * \brief C API: Charset Detection API
+ *
+ * This API provides a facility for detecting the
+ * charset or encoding of character data in an unknown text format.
+ * The input data can be from an array of bytes.
+ * <p>
+ * Character set detection is at best an imprecise operation. The detection
+ * process will attempt to identify the charset that best matches the characteristics
+ * of the byte data, but the process is partly statistical in nature, and
+ * the results can not be guaranteed to always be correct.
+ * <p>
+ * For best accuracy in charset detection, the input data should be primarily
+ * in a single language, and a minimum of a few hundred bytes worth of plain text
+ * in the language are needed. The detection process will attempt to
+ * ignore html or xml style markup that could otherwise obscure the content.
+ */
+
+
+struct UCharsetDetector;
+/**
+ * Structure representing a charset detector
+ * @draft ICU 3.6
+ */
+typedef struct UCharsetDetector UCharsetDetector;
+
+struct UCharsetMatch;
+/**
+ * Opaque structure representing a match that was identified
+ * from a charset detection operation.
+ * @draft ICU 3.6
+ */
+typedef struct UCharsetMatch UCharsetMatch;
+
+/**
+ * Open a charset detector.
+ *
+ * @param status Any error conditions occurring during the open
+ * operation are reported back in this variable.
+ * @return the newly opened charset detector.
+ * @draft ICU 3.6
+ */
+U_DRAFT UCharsetDetector * U_EXPORT2
+ucsdet_open(UErrorCode *status);
+
+/**
+ * Close a charset detector. All storage and any other resources
+ * owned by this charset detector will be released. Failure to
+ * close a charset detector when finished with it can result in
+ * memory leaks in the application.
+ *
+ * @param ucsd The charset detector to be closed.
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ucsdet_close(UCharsetDetector *ucsd);
+
+/**
+ * Set the input byte data whose charset is to detected.
+ *
+ * Ownership of the input text byte array remains with the caller.
+ * The input string must not be altered or deleted until the charset
+ * detector is either closed or reset to refer to different input text.
+ *
+ * @param ucsd the charset detector to be used.
+ * @param textIn the input text of unknown encoding. .
+ * @param len the length of the input text, or -1 if the text
+ * is NUL terminated.
+ * @param status any error conditions are reported back in this variable.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ucsdet_setText(UCharsetDetector *ucsd, const char *textIn, int32_t len, UErrorCode *status);
+
+
+/** Set the declared encoding for charset detection.
+ * The declared encoding of an input text is an encoding obtained
+ * by the user from an http header or xml declaration or similar source that
+ * can be provided as an additional hint to the charset detector.
+ *
+ * How and whether the declared encoding will be used during the
+ * detection process is TBD.
+ *
+ * @param ucsd the charset detector to be used.
+ * @param encoding an encoding for the current data obtained from
+ * a header or declaration or other source outside
+ * of the byte data itself.
+ * @param length the length of the encoding name, or -1 if the name string
+ * is NUL terminated.
+ * @param status any error conditions are reported back in this variable.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT void U_EXPORT2
+ucsdet_setDeclaredEncoding(UCharsetDetector *ucsd, const char *encoding, int32_t length, UErrorCode *status);
+
+
+/**
+ * Return the charset that best matches the supplied input data.
+ *
+ * Note though, that because the detection
+ * only looks at the start of the input data,
+ * there is a possibility that the returned charset will fail to handle
+ * the full set of input data.
+ * <p>
+ * The returned UCharsetMatch object is owned by the UCharsetDetector.
+ * It will remain valid until the detector input is reset, or until
+ * the detector is closed.
+ * <p>
+ * The function will fail if
+ * <ul>
+ * <li>no charset appears to match the data.</li>
+ * <li>no input text has been provided</li>
+ * </ul>
+ *
+ * @param ucsd the charset detector to be used.
+ * @param status any error conditions are reported back in this variable.
+ * @return a UCharsetMatch representing the best matching charset,
+ * or NULL if no charset matches the byte data.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT const UCharsetMatch * U_EXPORT2
+ucsdet_detect(UCharsetDetector *ucsd, UErrorCode *status);
+
+
+/**
+ * Find all charset matches that appear to be consistent with the input,
+ * returning an array of results. The results are ordered with the
+ * best quality match first.
+ *
+ * Because the detection only looks at a limited amount of the
+ * input byte data, some of the returned charsets may fail to handle
+ * the all of input data.
+ * <p>
+ * The returned UCharsetMatch objects are owned by the UCharsetDetector.
+ * They will remain valid until the detector is closed or modified
+ *
+ * <p>
+ * Return an error if
+ * <ul>
+ * <li>no charsets appear to match the input data.</li>
+ * <li>no input text has been provided</li>
+ * </ul>
+ *
+ * @param ucsd the charset detector to be used.
+ * @param matchesFound pointer to a variable that will be set to the
+ * number of charsets identified that are consistent with
+ * the input data. Output only.
+ * @param status any error conditions are reported back in this variable.
+ * @return A pointer to an array of pointers to UCharSetMatch objects.
+ * This array, and the UCharSetMatch instances to which it refers,
+ * are owned by the UCharsetDetector, and will remain valid until
+ * the detector is closed or modified.
+ * @draft ICU 3.4
+ */
+U_DRAFT const UCharsetMatch ** U_EXPORT2
+ucsdet_detectAll(UCharsetDetector *ucsd, int32_t *matchesFound, UErrorCode *status);
+
+
+
+/**
+ * Get the name of the charset represented by a UCharsetMatch.
+ *
+ * The storage for the returned name string is owned by the
+ * UCharsetMatch, and will remain valid while the UCharsetMatch
+ * is valid.
+ *
+ * The name returned is suitable for use with the ICU conversion APIs.
+ *
+ * @param ucsm The charset match object.
+ * @param status Any error conditions are reported back in this variable.
+ * @return The name of the matching charset.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT const char * U_EXPORT2
+ucsdet_getName(const UCharsetMatch *ucsm, UErrorCode *status);
+
+/**
+ * Get a confidence number for the quality of the match of the byte
+ * data with the charset. Confidence numbers range from zero to 100,
+ * with 100 representing complete confidence and zero representing
+ * no confidence.
+ *
+ * The confidence values are somewhat arbitrary. They define an
+ * an ordering within the results for any single detection operation
+ * but are not generally comparable between the results for different input.
+ *
+ * A confidence value of ten does have a general meaning - it is used
+ * for charsets that can represent the input data, but for which there
+ * is no other indication that suggests that the charset is the correct one.
+ * Pure 7 bit ASCII data, for example, is compatible with a
+ * great many charsets, most of which will appear as possible matches
+ * with a confidence of 10.
+ *
+ * @param ucsm The charset match object.
+ * @param status Any error conditions are reported back in this variable.
+ * @return A confidence number for the charset match.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT int32_t U_EXPORT2
+ucsdet_getConfidence(const UCharsetMatch *ucsm, UErrorCode *status);
+
+/**
+ * Get the RFC 3066 code for the language of the input data.
+ *
+ * The Charset Detection service is intended primarily for detecting
+ * charsets, not language. For some, but not all, charsets, a language is
+ * identified as a byproduct of the detection process, and that is what
+ * is returned by this function.
+ *
+ * CAUTION:
+ * 1. Language information is not available for input data encoded in
+ * all charsets. In particular, no language is identified
+ * for UTF-8 input data.
+ *
+ * 2. Closely related languages may sometimes be confused.
+ *
+ * If more accurate language detection is required, a linguistic
+ * analysis package should be used.
+ *
+ * The storage for the returned name string is owned by the
+ * UCharsetMatch, and will remain valid while the UCharsetMatch
+ * is valid.
+ *
+ * @param ucsm The charset match object.
+ * @param status Any error conditions are reported back in this variable.
+ * @return The RFC 3066 code for the language of the input data, or
+ * an empty string if the language could not be determined.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT const char * U_EXPORT2
+ucsdet_getLanguage(const UCharsetMatch *ucsm, UErrorCode *status);
+
+
+/**
+ * Get the entire input text as a UChar string, placing it into
+ * a caller-supplied buffer. A terminating
+ * NUL character will be appended to the buffer if space is available.
+ *
+ * The number of UChars in the output string, not including the terminating
+ * NUL, is returned.
+ *
+ * If the supplied buffer is smaller than required to hold the output,
+ * the contents of the buffer are undefined. The full output string length
+ * (in UChars) is returned as always, and can be used to allocate a buffer
+ * of the correct size.
+ *
+ *
+ * @param ucsm The charset match object.
+ * @param buf A UChar buffer to be filled with the converted text data.
+ * @param cap The capacity of the buffer in UChars.
+ * @param status Any error conditions are reported back in this variable.
+ * @return The number of UChars in the output string.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT int32_t U_EXPORT2
+ucsdet_getUChars(const UCharsetMatch *ucsm,
+ UChar *buf, int32_t cap, UErrorCode *status);
+
+
+
+/**
+ * Get an iterator over the set of all detectable charsets -
+ * over the charsets that are known to the charset detection
+ * service.
+ *
+ * The returned UEnumeration provides access to the names of
+ * the charsets.
+ *
+ * The state of the Charset detector that is passed in does not
+ * affect the result of this function, but requiring a valid, open
+ * charset detector as a parameter insures that the charset detection
+ * service has been safely initialized and that the required detection
+ * data is available.
+ *
+ * @param ucsd a Charset detector.
+ * @param status Any error conditions are reported back in this variable.
+ * @return an iterator providing access to the detectable charset names.
+ * @draft ICU 3.6
+ */
+
+U_DRAFT UEnumeration * U_EXPORT2
+ucsdet_getAllDetectableCharsets(const UCharsetDetector *ucsd, UErrorCode *status);
+
+
+/**
+ * Test whether input filtering is enabled for this charset detector.
+ * Input filtering removes text that appears to be HTML or xml
+ * markup from the input before applying the code page detection
+ * heuristics.
+ *
+ * @param ucsd The charset detector to check.
+ * @return TRUE if filtering is enabled.
+ * @draft ICU 3.4
+ */
+U_DRAFT UBool U_EXPORT2
+ucsdet_isInputFilterEnabled(const UCharsetDetector *ucsd);
+
+
+/**
+ * Enable filtering of input text. If filtering is enabled,
+ * text within angle brackets ("<" and ">") will be removed
+ * before detection, which will remove most HTML or xml markup.
+ *
+ * @param ucsd the charset detector to be modified.
+ * @param filter <code>true</code> to enable input text filtering.
+ * @return The previous setting.
+ *
+ * @draft ICU 3.6
+ */
+U_DRAFT UBool U_EXPORT2
+ucsdet_enableInputFilter(UCharsetDetector *ucsd, UBool filter);
+
+#endif
+#endif /* __UCSDET_H */
+
+
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/ucurr.h b/Build/source/libs/icu-xetex/i18n/unicode/ucurr.h
index ac0d81ea46f..0aa8dba4f3e 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/ucurr.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/ucurr.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -79,7 +79,7 @@ typedef enum UCurrNameStyle {
#if !UCONFIG_NO_SERVICE
/**
- * @internal
+ * @stable ICU 2.6
*/
typedef const void* UCurrRegistryKey;
@@ -145,9 +145,9 @@ ucurr_getName(const UChar* currency,
* @param ec input-output error code
* @return a non-negative number of fraction digits to be
* displayed, or 0 if there is an error
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
ucurr_getDefaultFractionDigits(const UChar* currency,
UErrorCode* ec);
@@ -158,9 +158,9 @@ ucurr_getDefaultFractionDigits(const UChar* currency,
* @param ec input-output error code
* @return the non-negative rounding increment, or 0.0 if none,
* or 0.0 if there is an error
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT double U_EXPORT2
+U_STABLE double U_EXPORT2
ucurr_getRoundingIncrement(const UChar* currency,
UErrorCode* ec);
@@ -168,12 +168,12 @@ ucurr_getRoundingIncrement(const UChar* currency,
* Selector constants for ucurr_openCurrencies().
*
* @see ucurr_openCurrencies
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
typedef enum UCurrCurrencyType {
/**
* Select all ISO-4217 currency codes.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UCURR_ALL = INT32_MAX,
/**
@@ -182,7 +182,7 @@ typedef enum UCurrCurrencyType {
* bank notes or coins associated with the currency code.
* This does not include fund codes, precious metals and other
* various ISO-4217 codes limited to special financial products.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UCURR_COMMON = 1,
/**
@@ -190,19 +190,19 @@ typedef enum UCurrCurrencyType {
* These codes respresent fund codes, precious metals and other
* various ISO-4217 codes limited to special financial products.
* A fund code is a monetary resource associated with a currency.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UCURR_UNCOMMON = 2,
/**
* Select only deprecated ISO-4217 codes.
* These codes are no longer in general public use.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UCURR_DEPRECATED = 4,
/**
* Select only non-deprecated ISO-4217 codes.
* These codes are in general public use.
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UCURR_NON_DEPRECATED = 8
} UCurrCurrencyType;
@@ -214,9 +214,9 @@ typedef enum UCurrCurrencyType {
* currencies. Most people will want to use the (UCURR_CURRENCY|UCURR_NON_DEPRECATED) value to
* get a list of current currencies.
* @param pErrorCode Error code
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT UEnumeration * U_EXPORT2
+U_STABLE UEnumeration * U_EXPORT2
ucurr_openISOCurrencies(uint32_t currType, UErrorCode *pErrorCode);
@@ -244,7 +244,7 @@ U_NAMESPACE_BEGIN
*
* @internal
*/
-void
+U_INTERNAL void
uprv_parseCurrency(const char* locale,
const UnicodeString& text,
ParsePosition& pos,
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/udat.h b/Build/source/libs/icu-xetex/i18n/unicode/udat.h
index ee1f0d50fed..03376ed9167 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/udat.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/udat.h
@@ -1,6 +1,7 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1996-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
*******************************************************************************
*/
@@ -160,34 +161,34 @@ typedef enum UDateFormatStyle {
/**
* FieldPosition and UFieldPosition selectors for format fields
* defined by DateFormat and UDateFormat.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
typedef enum UDateFormatField {
/**
* FieldPosition and UFieldPosition selector for 'G' field alignment,
* corresponding to the UCAL_ERA field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_ERA_FIELD = 0,
/**
* FieldPosition and UFieldPosition selector for 'y' field alignment,
* corresponding to the UCAL_YEAR field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_YEAR_FIELD = 1,
/**
* FieldPosition and UFieldPosition selector for 'M' field alignment,
* corresponding to the UCAL_MONTH field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_MONTH_FIELD = 2,
/**
* FieldPosition and UFieldPosition selector for 'd' field alignment,
* corresponding to the UCAL_DATE field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_DATE_FIELD = 3,
@@ -196,7 +197,7 @@ typedef enum UDateFormatField {
* corresponding to the UCAL_HOUR_OF_DAY field.
* UDAT_HOUR_OF_DAY1_FIELD is used for the one-based 24-hour clock.
* For example, 23:59 + 01:00 results in 24:59.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_HOUR_OF_DAY1_FIELD = 4,
@@ -205,70 +206,70 @@ typedef enum UDateFormatField {
* corresponding to the UCAL_HOUR_OF_DAY field.
* UDAT_HOUR_OF_DAY0_FIELD is used for the zero-based 24-hour clock.
* For example, 23:59 + 01:00 results in 00:59.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_HOUR_OF_DAY0_FIELD = 5,
/**
* FieldPosition and UFieldPosition selector for 'm' field alignment,
* corresponding to the UCAL_MINUTE field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_MINUTE_FIELD = 6,
/**
* FieldPosition and UFieldPosition selector for 's' field alignment,
* corresponding to the UCAL_SECOND field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_SECOND_FIELD = 7,
/**
* FieldPosition and UFieldPosition selector for 'S' field alignment,
* corresponding to the UCAL_MILLISECOND field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_FRACTIONAL_SECOND_FIELD = 8,
/**
* FieldPosition and UFieldPosition selector for 'E' field alignment,
* corresponding to the UCAL_DAY_OF_WEEK field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_DAY_OF_WEEK_FIELD = 9,
/**
* FieldPosition and UFieldPosition selector for 'D' field alignment,
* corresponding to the UCAL_DAY_OF_YEAR field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_DAY_OF_YEAR_FIELD = 10,
/**
* FieldPosition and UFieldPosition selector for 'F' field alignment,
* corresponding to the UCAL_DAY_OF_WEEK_IN_MONTH field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_DAY_OF_WEEK_IN_MONTH_FIELD = 11,
/**
* FieldPosition and UFieldPosition selector for 'w' field alignment,
* corresponding to the UCAL_WEEK_OF_YEAR field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_WEEK_OF_YEAR_FIELD = 12,
/**
* FieldPosition and UFieldPosition selector for 'W' field alignment,
* corresponding to the UCAL_WEEK_OF_MONTH field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_WEEK_OF_MONTH_FIELD = 13,
/**
* FieldPosition and UFieldPosition selector for 'a' field alignment,
* corresponding to the UCAL_AM_PM field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_AM_PM_FIELD = 14,
@@ -277,7 +278,7 @@ typedef enum UDateFormatField {
* corresponding to the UCAL_HOUR field.
* UDAT_HOUR1_FIELD is used for the one-based 12-hour clock.
* For example, 11:30 PM + 1 hour results in 12:30 AM.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_HOUR1_FIELD = 15,
@@ -286,7 +287,7 @@ typedef enum UDateFormatField {
* corresponding to the UCAL_HOUR field.
* UDAT_HOUR0_FIELD is used for the zero-based 12-hour clock.
* For example, 11:30 PM + 1 hour results in 00:30 AM.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_HOUR0_FIELD = 16,
@@ -294,42 +295,42 @@ typedef enum UDateFormatField {
* FieldPosition and UFieldPosition selector for 'z' field alignment,
* corresponding to the UCAL_ZONE_OFFSET and
* UCAL_DST_OFFSET fields.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_TIMEZONE_FIELD = 17,
/**
* FieldPosition and UFieldPosition selector for 'Y' field alignment,
* corresponding to the UCAL_YEAR_WOY field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_YEAR_WOY_FIELD = 18,
/**
* FieldPosition and UFieldPosition selector for 'e' field alignment,
* corresponding to the UCAL_DOW_LOCAL field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_DOW_LOCAL_FIELD = 19,
/**
* FieldPosition and UFieldPosition selector for 'u' field alignment,
* corresponding to the UCAL_EXTENDED_YEAR field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_EXTENDED_YEAR_FIELD = 20,
/**
* FieldPosition and UFieldPosition selector for 'g' field alignment,
* corresponding to the UCAL_JULIAN_DAY field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_JULIAN_DAY_FIELD = 21,
/**
* FieldPosition and UFieldPosition selector for 'A' field alignment,
* corresponding to the UCAL_MILLISECONDS_IN_DAY field.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_MILLISECONDS_IN_DAY_FIELD = 22,
@@ -337,11 +338,13 @@ typedef enum UDateFormatField {
* FieldPosition and UFieldPosition selector for 'Z' field alignment,
* corresponding to the UCAL_ZONE_OFFSET and
* UCAL_DST_OFFSET fields.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UDAT_TIMEZONE_RFC_FIELD = 23,
- /**
+#ifndef U_HIDE_DRAFT_API
+
+ /**
* FieldPosition and UFieldPosition selector for 'v' field alignment,
* corresponding to the UCAL_ZONE_OFFSET field.
* @draft ICU 3.4
@@ -363,15 +366,35 @@ typedef enum UDateFormatField {
*/
UDAT_STANDALONE_MONTH_FIELD = 26,
+ /**
+ * FieldPosition selector for "Q" field alignment,
+ * corresponding to quarters. This is implemented
+ * using the {@link Calendar#MONTH} field. This
+ * displays the quarter.
+ * @draft ICU 3.6
+ */
+ UDAT_QUARTER_FIELD = 27,
+
+ /**
+ * FieldPosition selector for the "q" field alignment,
+ * corresponding to stand-alone quarters. This is
+ * implemented using the {@link Calendar#MONTH} field.
+ * This displays the stand-alone quarter.
+ * @draft ICU 3.6
+ */
+ UDAT_STANDALONE_QUARTER_FIELD = 28,
+
+#endif /*U_HIDE_DRAFT_API*/
+
/**
* Number of FieldPosition and UFieldPosition selectors for
* DateFormat and UDateFormat.
* Valid selectors range from 0 to UDAT_FIELD_COUNT-1.
* This value is subject to change if new fields are defined
* in the future.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
- UDAT_FIELD_COUNT = 27
+ UDAT_FIELD_COUNT = 29
} UDateFormatField;
@@ -687,7 +710,15 @@ typedef enum UDateFormatSymbolType {
/** Standalone context versions of weekdays */
UDAT_STANDALONE_WEEKDAYS,
UDAT_STANDALONE_SHORT_WEEKDAYS,
- UDAT_STANDALONE_NARROW_WEEKDAYS
+ UDAT_STANDALONE_NARROW_WEEKDAYS,
+ /** The quarters, for example 1st Quarter */
+ UDAT_QUARTERS,
+ /** The short quarter names, for example Q1 */
+ UDAT_SHORT_QUARTERS,
+ /** Standalone context versions of quarters */
+ UDAT_STANDALONE_QUARTERS,
+ UDAT_STANDALONE_SHORT_QUARTERS
+
} UDateFormatSymbolType;
struct UDateFormatSymbols;
@@ -767,9 +798,9 @@ udat_setSymbols( UDateFormat *format,
* @param type type of the locale we're looking for (valid or actual)
* @param status error code for the operation
* @return the locale name
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
-U_DRAFT const char* U_EXPORT2
+U_STABLE const char* U_EXPORT2
udat_getLocaleByType(const UDateFormat *fmt,
ULocDataLocaleType type,
UErrorCode* status);
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/ulocdata.h b/Build/source/libs/icu-xetex/i18n/unicode/ulocdata.h
index 84ba9ee13dd..667fc155af9 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/ulocdata.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/ulocdata.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
* *
-* Copyright (C) 2003-2005, International Business Machines *
+* Copyright (C) 2003-2006, International Business Machines *
* Corporation and others. All Rights Reserved. *
* *
******************************************************************************
@@ -26,40 +26,36 @@
* \brief C API: Provides access to locale data.
*/
-/** A locale data object.
- * For usage in C programs.
- * @draft ICU 3.4
- */
-typedef struct ULocaleData {
- /**
- * Controls the "No Substitute" behavior of this locale data object
- */
- UBool noSubstitute;
-
- /**
- * Pointer to the resource bundle associated with this locale data object
- */
- UResourceBundle *bundle;
-} ULocaleData;
+/** Forward declaration of the ULocaleData structure. @draft ICU 3.6 */
+struct ULocaleData;
+
+/** A locale data object. @draft ICU 3.6 */
+typedef struct ULocaleData ULocaleData;
+
+
/** The possible types of exemplar character sets.
* @draft ICU 3.4
*/
-typedef enum ULocaleDataExemplarSetType {
- ULOCDATA_ES_STANDARD, /* Basic set */
- ULOCDATA_ES_AUXILIARY, /* Auxiliary set */
- ULOCDATA_ES_COUNT
+typedef enum ULocaleDataExemplarSetType {
+#ifndef U_HIDE_DRAFT_API
+ ULOCDATA_ES_STANDARD=0, /* Basic set */
+ ULOCDATA_ES_AUXILIARY=1, /* Auxiliary set */
+#endif
+ ULOCDATA_ES_COUNT=3
} ULocaleDataExemplarSetType;
/** The possible types of delimiters.
* @draft ICU 3.4
*/
typedef enum ULocaleDataDelimiterType {
- ULOCDATA_QUOTATION_START, /* Quotation start */
- ULOCDATA_QUOTATION_END, /* Quotation end */
- ULOCDATA_ALT_QUOTATION_START, /* Alternate quotation start */
- ULOCDATA_ALT_QUOTATION_END, /* Alternate quotation end */
- ULOCDATA_DELIMITER_COUNT
+#ifndef U_HIDE_DRAFT_API
+ ULOCDATA_QUOTATION_START = 0, /* Quotation start */
+ ULOCDATA_QUOTATION_END = 1, /* Quotation end */
+ ULOCDATA_ALT_QUOTATION_START = 2, /* Alternate quotation start */
+ ULOCDATA_ALT_QUOTATION_END = 3, /* Alternate quotation end */
+#endif
+ ULOCDATA_DELIMITER_COUNT = 4
} ULocaleDataDelimiterType;
/**
@@ -155,17 +151,15 @@ ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn,
U_DRAFT int32_t U_EXPORT2
ulocdata_getDelimiter(ULocaleData *uld, ULocaleDataDelimiterType type, UChar *result, int32_t resultLength, UErrorCode *status);
-#ifndef U_HIDE_DRAFT_API
/**
* Enumeration for representing the measurement systems.
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
typedef enum UMeasurementSystem {
UMS_SI, /** Measurement system specified by SI otherwise known as Metric system. */
UMS_US, /** Measurement system followed in the United States of America. */
UMS_LIMIT
} UMeasurementSystem;
-#endif /*U_HIDE_DRAFT_API */
/**
* Returns the measurement system used in the locale specified by the localeID.
@@ -175,9 +169,9 @@ typedef enum UMeasurementSystem {
* @param status Must be a valid pointer to an error code value,
* which must not indicate a failure before the function call.
* @return UMeasurementSystem the measurement system used in the locale.
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
-U_DRAFT UMeasurementSystem U_EXPORT2
+U_STABLE UMeasurementSystem U_EXPORT2
ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status);
/**
@@ -194,9 +188,9 @@ ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status);
* @param width A pointer to int to recieve the width information.
* @param status Must be a valid pointer to an error code value,
* which must not indicate a failure before the function call.
- * @draft ICU 2.8
+ * @stable ICU 2.8
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
ulocdata_getPaperSize(const char *localeID, int32_t *height, int32_t *width, UErrorCode *status);
#endif
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/umsg.h b/Build/source/libs/icu-xetex/i18n/unicode/umsg.h
index a55c272bc2e..32ed063c274 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/umsg.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/umsg.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 1996-2005, International Business Machines Corporation
+* Copyright (C) 1996-2006, International Business Machines Corporation
* and others. All Rights Reserved.
*******************************************************************************
*
@@ -612,35 +612,35 @@ umsg_vparse(const UMessageFormat *fmt,
UErrorCode *status);
- /**
- * Convert an 'apostrophe-friendly' pattern into a standard
- * pattern. Standard patterns treat all apostrophes as
- * quotes, which is problematic in some languages, e.g.
- * French, where apostrophe is commonly used. This utility
- * assumes that only an unpaired apostrophe immediately before
- * a brace is a true quote. Other unpaired apostrophes are paired,
- * and the resulting standard pattern string is returned.
- *
- * <p><b>Note</b> it is not guaranteed that the returned pattern
- * is indeed a valid pattern. The only effect is to convert
- * between patterns having different quoting semantics.
- *
- * @param pattern the 'apostrophe-friendly' patttern to convert
- * @param patternLength the length of pattern, or -1 if unknown and pattern is null-terminated
- * @param dest the buffer for the result, or NULL if preflight only
- * @param destCapacity the length of the buffer, or 0 if preflighting
- * @param ec the error code
- * @return the length of the resulting text, not including trailing null
- * if buffer has room for the trailing null, it is provided, otherwise
- * not
- * @draft ICU 3.4
- */
+/**
+ * Convert an 'apostrophe-friendly' pattern into a standard
+ * pattern. Standard patterns treat all apostrophes as
+ * quotes, which is problematic in some languages, e.g.
+ * French, where apostrophe is commonly used. This utility
+ * assumes that only an unpaired apostrophe immediately before
+ * a brace is a true quote. Other unpaired apostrophes are paired,
+ * and the resulting standard pattern string is returned.
+ *
+ * <p><b>Note</b> it is not guaranteed that the returned pattern
+ * is indeed a valid pattern. The only effect is to convert
+ * between patterns having different quoting semantics.
+ *
+ * @param pattern the 'apostrophe-friendly' patttern to convert
+ * @param patternLength the length of pattern, or -1 if unknown and pattern is null-terminated
+ * @param dest the buffer for the result, or NULL if preflight only
+ * @param destCapacity the length of the buffer, or 0 if preflighting
+ * @param ec the error code
+ * @return the length of the resulting text, not including trailing null
+ * if buffer has room for the trailing null, it is provided, otherwise
+ * not
+ * @stable ICU 3.4
+ */
U_STABLE int32_t U_EXPORT2
umsg_autoQuoteApostrophe(const UChar* pattern,
- int32_t patternLength,
- UChar* dest,
- int32_t destCapacity,
- UErrorCode* ec);
+ int32_t patternLength,
+ UChar* dest,
+ int32_t destCapacity,
+ UErrorCode* ec);
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/unum.h b/Build/source/libs/icu-xetex/i18n/unicode/unum.h
index e699adb3d41..c3bbc1e7705 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/unum.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/unum.h
@@ -1,6 +1,7 @@
/*
*******************************************************************************
-* Copyright (C) 1997-2005, International Business Machines Corporation and others. All Rights Reserved.
+* Copyright (C) 1997-2006, International Business Machines Corporation and others.
+* All Rights Reserved.
* Modification History:
*
* Date Name Description
@@ -133,7 +134,7 @@ typedef void* UNumberFormat;
typedef enum UNumberFormatStyle {
/**
* Decimal format defined by pattern
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_PATTERN_DECIMAL=0,
/** Decimal format */
@@ -148,17 +149,17 @@ typedef enum UNumberFormatStyle {
UNUM_SPELLOUT,
/**
* Ordinal rule-based format
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_ORDINAL,
/**
* Duration rule-based format
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_DURATION,
/**
* Rule-based format defined by pattern
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_PATTERN_RULEBASED,
/** Default format */
@@ -221,7 +222,7 @@ typedef enum UNumberFormatPadPosition {
* @see DecimalFormat
* @stable ICU 2.0
*/
-U_CAPI UNumberFormat* U_EXPORT2
+U_STABLE UNumberFormat* U_EXPORT2
unum_open( UNumberFormatStyle style,
const UChar* pattern,
int32_t patternLength,
@@ -236,7 +237,7 @@ unum_open( UNumberFormatStyle style,
* @param fmt The formatter to close.
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_close(UNumberFormat* fmt);
/**
@@ -247,7 +248,7 @@ unum_close(UNumberFormat* fmt);
* @return A pointer to a UNumberFormat identical to fmt.
* @stable ICU 2.0
*/
-U_CAPI UNumberFormat* U_EXPORT2
+U_STABLE UNumberFormat* U_EXPORT2
unum_clone(const UNumberFormat *fmt,
UErrorCode *status);
@@ -272,7 +273,7 @@ unum_clone(const UNumberFormat *fmt,
* @see UFieldPosition
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_format( const UNumberFormat* fmt,
int32_t number,
UChar* result,
@@ -301,7 +302,7 @@ unum_format( const UNumberFormat* fmt,
* @see UFieldPosition
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_formatInt64(const UNumberFormat *fmt,
int64_t number,
UChar* result,
@@ -330,7 +331,7 @@ unum_formatInt64(const UNumberFormat *fmt,
* @see UFieldPosition
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_formatDouble( const UNumberFormat* fmt,
double number,
UChar* result,
@@ -357,9 +358,9 @@ unum_formatDouble( const UNumberFormat* fmt,
* @see unum_formatDouble
* @see unum_parseDoubleCurrency
* @see UFieldPosition
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_formatDoubleCurrency(const UNumberFormat* fmt,
double number,
UChar* currency,
@@ -385,7 +386,7 @@ unum_formatDoubleCurrency(const UNumberFormat* fmt,
* @see unum_formatDouble
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_parse( const UNumberFormat* fmt,
const UChar* text,
int32_t textLength,
@@ -433,7 +434,7 @@ unum_parseInt64(const UNumberFormat* fmt,
* @see unum_formatDouble
* @stable ICU 2.0
*/
-U_CAPI double U_EXPORT2
+U_STABLE double U_EXPORT2
unum_parseDouble( const UNumberFormat* fmt,
const UChar* text,
int32_t textLength,
@@ -457,9 +458,9 @@ unum_parseDouble( const UNumberFormat* fmt,
* @return the parsed double
* @see unum_parseDouble
* @see unum_formatDoubleCurrency
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT double U_EXPORT2
+U_STABLE double U_EXPORT2
unum_parseDoubleCurrency(const UNumberFormat* fmt,
const UChar* text,
int32_t textLength,
@@ -483,7 +484,7 @@ unum_parseDoubleCurrency(const UNumberFormat* fmt,
* @see DecimalFormat
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_applyPattern( UNumberFormat *format,
UBool localized,
const UChar *pattern,
@@ -502,7 +503,7 @@ unum_applyPattern( UNumberFormat *format,
* @see unum_countAvailable
* @stable ICU 2.0
*/
-U_CAPI const char* U_EXPORT2
+U_STABLE const char* U_EXPORT2
unum_getAvailable(int32_t index);
/**
@@ -514,7 +515,7 @@ unum_getAvailable(int32_t index);
* @see unum_getAvailable
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_countAvailable(void);
/** The possible UNumberFormat numeric attributes @stable ICU 2.0 */
@@ -552,16 +553,16 @@ typedef enum UNumberFormatAttribute {
/** Secondary grouping size */
UNUM_SECONDARY_GROUPING_SIZE,
/** Use significant digits
- * @draft ICU 3.0 */
+ * @stable ICU 3.0 */
UNUM_SIGNIFICANT_DIGITS_USED,
/** Minimum significant digits
- * @draft ICU 3.0 */
+ * @stable ICU 3.0 */
UNUM_MIN_SIGNIFICANT_DIGITS,
/** Maximum significant digits
- * @draft ICU 3.0 */
+ * @stable ICU 3.0 */
UNUM_MAX_SIGNIFICANT_DIGITS,
/** Lenient parse mode used by rule-based formats.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_LENIENT_PARSE
} UNumberFormatAttribute;
@@ -582,7 +583,7 @@ typedef enum UNumberFormatAttribute {
* @see unum_setTextAttribute
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_getAttribute(const UNumberFormat* fmt,
UNumberFormatAttribute attr);
@@ -605,7 +606,7 @@ unum_getAttribute(const UNumberFormat* fmt,
* @see unum_setTextAttribute
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_setAttribute( UNumberFormat* fmt,
UNumberFormatAttribute attr,
int32_t newValue);
@@ -625,7 +626,7 @@ unum_setAttribute( UNumberFormat* fmt,
* @see unum_setTextAttribute
* @stable ICU 2.0
*/
-U_CAPI double U_EXPORT2
+U_STABLE double U_EXPORT2
unum_getDoubleAttribute(const UNumberFormat* fmt,
UNumberFormatAttribute attr);
@@ -643,7 +644,7 @@ unum_getDoubleAttribute(const UNumberFormat* fmt,
* @see unum_setTextAttribute
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_setDoubleAttribute( UNumberFormat* fmt,
UNumberFormatAttribute attr,
double newValue);
@@ -664,14 +665,14 @@ typedef enum UNumberFormatTextAttribute {
UNUM_CURRENCY_CODE,
/**
* The default rule set. This is only available with rule-based formatters.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_DEFAULT_RULESET,
/**
* The public rule sets. This is only available with rule-based formatters.
* This is a read-only attribute. The public rulesets are returned as a
* single string, with each ruleset name delimited by ';' (semicolon).
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
UNUM_PUBLIC_RULESETS
} UNumberFormatTextAttribute;
@@ -694,7 +695,7 @@ typedef enum UNumberFormatTextAttribute {
* @see unum_setAttribute
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_getTextAttribute( const UNumberFormat* fmt,
UNumberFormatTextAttribute tag,
UChar* result,
@@ -717,7 +718,7 @@ unum_getTextAttribute( const UNumberFormat* fmt,
* @see unum_setAttribute
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_setTextAttribute( UNumberFormat* fmt,
UNumberFormatTextAttribute tag,
const UChar* newValue,
@@ -740,15 +741,13 @@ unum_setTextAttribute( UNumberFormat* fmt,
* @see DecimalFormat
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_toPattern( const UNumberFormat* fmt,
UBool isPatternLocalized,
UChar* result,
int32_t resultLength,
UErrorCode* status);
-/** The maximum size for a textual number format symbol. @internal*/
-#define UNFSYMBOLSMAXSIZE 10
/**
* Constants for specifying a number format symbol.
@@ -756,42 +755,50 @@ unum_toPattern( const UNumberFormat* fmt,
*/
typedef enum UNumberFormatSymbol {
/** The decimal separator */
- UNUM_DECIMAL_SEPARATOR_SYMBOL,
+ UNUM_DECIMAL_SEPARATOR_SYMBOL = 0,
/** The grouping separator */
- UNUM_GROUPING_SEPARATOR_SYMBOL,
+ UNUM_GROUPING_SEPARATOR_SYMBOL = 1,
/** The pattern separator */
- UNUM_PATTERN_SEPARATOR_SYMBOL,
+ UNUM_PATTERN_SEPARATOR_SYMBOL = 2,
/** The percent sign */
- UNUM_PERCENT_SYMBOL,
+ UNUM_PERCENT_SYMBOL = 3,
/** Zero*/
- UNUM_ZERO_DIGIT_SYMBOL,
+ UNUM_ZERO_DIGIT_SYMBOL = 4,
/** Character representing a digit in the pattern */
- UNUM_DIGIT_SYMBOL,
+ UNUM_DIGIT_SYMBOL = 5,
/** The minus sign */
- UNUM_MINUS_SIGN_SYMBOL,
+ UNUM_MINUS_SIGN_SYMBOL = 6,
/** The plus sign */
- UNUM_PLUS_SIGN_SYMBOL,
+ UNUM_PLUS_SIGN_SYMBOL = 7,
/** The currency symbol */
- UNUM_CURRENCY_SYMBOL,
+ UNUM_CURRENCY_SYMBOL = 8,
/** The international currency symbol */
- UNUM_INTL_CURRENCY_SYMBOL,
+ UNUM_INTL_CURRENCY_SYMBOL = 9,
/** The monetary separator */
- UNUM_MONETARY_SEPARATOR_SYMBOL,
+ UNUM_MONETARY_SEPARATOR_SYMBOL = 10,
/** The exponential symbol */
- UNUM_EXPONENTIAL_SYMBOL,
+ UNUM_EXPONENTIAL_SYMBOL = 11,
/** Per mill symbol */
- UNUM_PERMILL_SYMBOL,
+ UNUM_PERMILL_SYMBOL = 12,
/** Escape padding character */
- UNUM_PAD_ESCAPE_SYMBOL,
+ UNUM_PAD_ESCAPE_SYMBOL = 13,
/** Infinity symbol */
- UNUM_INFINITY_SYMBOL,
+ UNUM_INFINITY_SYMBOL = 14,
/** Nan symbol */
- UNUM_NAN_SYMBOL,
+ UNUM_NAN_SYMBOL = 15,
/** Significant digit symbol
- * @draft ICU 3.0 */
- UNUM_SIGNIFICANT_DIGIT_SYMBOL,
+ * @stable ICU 3.0 */
+ UNUM_SIGNIFICANT_DIGIT_SYMBOL = 16,
+
+#ifndef U_HIDE_DRAFT_API
+ /** The monetary grouping separator
+ * @draft ICU 3.6
+ */
+ UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17,
+#endif /*U_HIDE_DRAFT_API*/
+
/** count symbol constants */
- UNUM_FORMAT_SYMBOL_COUNT
+ UNUM_FORMAT_SYMBOL_COUNT = 18
} UNumberFormatSymbol;
/**
@@ -810,7 +817,7 @@ typedef enum UNumberFormatSymbol {
* @see unum_setSymbol
* @stable ICU 2.0
*/
-U_CAPI int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
unum_getSymbol(const UNumberFormat *fmt,
UNumberFormatSymbol symbol,
UChar *buffer,
@@ -830,7 +837,7 @@ unum_getSymbol(const UNumberFormat *fmt,
* @see unum_getSymbol
* @stable ICU 2.0
*/
-U_CAPI void U_EXPORT2
+U_STABLE void U_EXPORT2
unum_setSymbol(UNumberFormat *fmt,
UNumberFormatSymbol symbol,
const UChar *value,
@@ -845,9 +852,9 @@ unum_setSymbol(UNumberFormat *fmt,
* @param type type of the locale we're looking for (valid or actual)
* @param status error code for the operation
* @return the locale name
- * @draft ICU 2.8 likely to change after ICU 3.0, based on feedback
+ * @stable ICU 2.8
*/
-U_CAPI const char* U_EXPORT2
+U_STABLE const char* U_EXPORT2
unum_getLocaleByType(const UNumberFormat *fmt,
ULocDataLocaleType type,
UErrorCode* status);
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/uregex.h b/Build/source/libs/icu-xetex/i18n/unicode/uregex.h
index 6a44080c6ca..862cf344641 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/uregex.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/uregex.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: regex.h
@@ -29,29 +29,27 @@
#include "unicode/parseerr.h"
-#ifndef U_HIDE_DRAFT_API
-
struct URegularExpression;
/**
* Structure represeting a compiled regular rexpression, plus the results
* of a match operation.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
typedef struct URegularExpression URegularExpression;
-#endif /* U_HIDE_DRAFT_API */
-
/**
* Constants for Regular Expression Match Modes.
* @stable ICU 2.4
*/
typedef enum URegexpFlag{
+
+#ifndef U_HIDE_DRAFT_API
/** Forces normalization of pattern and strings.
Not implemented yet, just a placeholder, hence draft.
@draft ICU 2.4 */
UREGEX_CANON_EQ = 128,
-
+#endif
/** Enable case insensitive matching. @stable ICU 2.4 */
UREGEX_CASE_INSENSITIVE = 2,
@@ -96,10 +94,10 @@ typedef enum URegexpFlag{
* error within the source regular expression string. If this
* information is not wanted, pass NULL for this parameter.
* @param status Receives error detected by this function.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*
*/
-U_DRAFT URegularExpression * U_EXPORT2
+U_STABLE URegularExpression * U_EXPORT2
uregex_open( const UChar *pattern,
int32_t patternLength,
uint32_t flags,
@@ -127,10 +125,10 @@ uregex_open( const UChar *pattern,
* @return The URegularExpression object representing the compiled
* pattern.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
#if !UCONFIG_NO_CONVERSION
-U_DRAFT URegularExpression * U_EXPORT2
+U_STABLE URegularExpression * U_EXPORT2
uregex_openC( const char *pattern,
uint32_t flags,
UParseError *pe,
@@ -144,9 +142,9 @@ uregex_openC( const char *pattern,
* was holding.
*
* @param regexp The regular expression to be closed.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uregex_close(URegularExpression *regexp);
/**
@@ -165,9 +163,9 @@ uregex_close(URegularExpression *regexp);
* @param regexp The compiled regular expression to be cloned.
* @param status Receives indication of any errors encountered
* @return the cloned copy of the compiled regular expression.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT URegularExpression * U_EXPORT2
+U_STABLE URegularExpression * U_EXPORT2
uregex_clone(const URegularExpression *regexp, UErrorCode *status);
/**
@@ -184,9 +182,9 @@ uregex_clone(const URegularExpression *regexp, UErrorCode *status);
* owned by the regular expression object, and must not be
* altered or deleted by the application. The returned string
* will remain valid until the regular expression is closed.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT const UChar * U_EXPORT2
+U_STABLE const UChar * U_EXPORT2
uregex_pattern(const URegularExpression *regexp,
int32_t *patLength,
UErrorCode *status);
@@ -198,9 +196,9 @@ uregex_pattern(const URegularExpression *regexp,
* @param regexp The compiled regular expression.
* @return The match mode flags
* @see URegexpFlag
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_flags(const URegularExpression *regexp,
UErrorCode *status);
@@ -223,9 +221,9 @@ uregex_flags(const URegularExpression *regexp,
* @param textLength The length of the subject text, or -1 if the string
* is NUL terminated.
* @param status Receives errors detected by this function.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uregex_setText(URegularExpression *regexp,
const UChar *text,
int32_t textLength,
@@ -245,9 +243,9 @@ uregex_setText(URegularExpression *regexp,
* @param status Receives errors detected by this function.
* @return Poiner to the subject text string currently associated with
* this regular expression.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT const UChar * U_EXPORT2
+U_STABLE const UChar * U_EXPORT2
uregex_getText(URegularExpression *regexp,
int32_t *textLength,
UErrorCode *status);
@@ -260,9 +258,9 @@ uregex_getText(URegularExpression *regexp,
* @param startIndex The input string index at which to begin matching.
* @param status Receives errors detected by this function.
* @return TRUE if there is a match
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uregex_matches(URegularExpression *regexp,
int32_t startIndex,
UErrorCode *status);
@@ -280,9 +278,9 @@ uregex_matches(URegularExpression *regexp,
* @param startIndex The input string index at which to begin matching.
* @param status A reference to a UErrorCode to receive any errors.
* @return TRUE if there is a match.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uregex_lookingAt(URegularExpression *regexp,
int32_t startIndex,
UErrorCode *status);
@@ -297,9 +295,9 @@ uregex_lookingAt(URegularExpression *regexp,
* @param startIndex The position in the input string to begin the search
* @param status A reference to a UErrorCode to receive any errors.
* @return TRUE if a match is found.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uregex_find(URegularExpression *regexp,
int32_t startIndex,
UErrorCode *status);
@@ -315,9 +313,9 @@ uregex_find(URegularExpression *regexp,
* @param status A reference to a UErrorCode to receive any errors.
* @return TRUE if a match is found.
* @see uregex_reset
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT UBool U_EXPORT2
+U_STABLE UBool U_EXPORT2
uregex_findNext(URegularExpression *regexp,
UErrorCode *status);
@@ -326,9 +324,9 @@ uregex_findNext(URegularExpression *regexp,
* @param regexp The compiled regular expression.
* @param status A reference to a UErrorCode to receive any errors.
* @return the number of capture groups
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_groupCount(URegularExpression *regexp,
UErrorCode *status);
@@ -346,9 +344,9 @@ uregex_groupCount(URegularExpression *regexp,
* @param status A reference to a UErrorCode to receive any errors.
* @return Length of matching data,
* or -1 if no applicable match.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_group(URegularExpression *regexp,
int32_t groupNum,
UChar *dest,
@@ -368,9 +366,9 @@ uregex_group(URegularExpression *regexp,
* @param status A reference to a UErrorCode to receive any errors.
* @return the starting position in the input of the text matched
* by the specified group.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_start(URegularExpression *regexp,
int32_t groupNum,
UErrorCode *status);
@@ -386,9 +384,9 @@ uregex_start(URegularExpression *regexp,
* @param groupNum The capture group number
* @param status A reference to a UErrorCode to receive any errors.
* @return the index of the position following the last matched character.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_end(URegularExpression *regexp,
int32_t groupNum,
UErrorCode *status);
@@ -403,9 +401,9 @@ uregex_end(URegularExpression *regexp,
* @param index The position in the text at which a
* uregex_findNext() should begin searching.
* @param status A reference to a UErrorCode to receive any errors.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT void U_EXPORT2
+U_STABLE void U_EXPORT2
uregex_reset(URegularExpression *regexp,
int32_t index,
UErrorCode *status);
@@ -432,9 +430,9 @@ uregex_reset(URegularExpression *regexp,
* and replace operation. In the event that the
* destination capacity is inadequate, the return value
* is still the full length of the untruncated string.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_replaceAll(URegularExpression *regexp,
const UChar *replacementText,
int32_t replacementLength,
@@ -465,9 +463,9 @@ uregex_replaceAll(URegularExpression *regexp,
* and replace operation. In the event that the
* destination capacity is inadequate, the return value
* is still the full length of the untruncated string.
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_replaceFirst(URegularExpression *regexp,
const UChar *replacementText,
int32_t replacementLength,
@@ -519,10 +517,10 @@ uregex_replaceFirst(URegularExpression *regexp,
* destCapacity is inadequate, the full length of the
* untruncated output string is returned.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_appendReplacement(URegularExpression *regexp,
const UChar *replacementText,
int32_t replacementLength,
@@ -553,9 +551,9 @@ uregex_appendReplacement(URegularExpression *regexp,
* destCapacity is inadequate, the full length of the
* untruncated output string is returned.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_appendTail(URegularExpression *regexp,
UChar **destBuf,
int32_t *destCapacity,
@@ -573,6 +571,22 @@ uregex_appendTail(URegularExpression *regexp,
* Each of the fields is copied from the input string to the destination
* buffer, and the NUL terminated. The position of each field within
* the destination buffer is returned in the destFields array.
+ *
+ * Note: another choice for the design of this function would be to not
+ * copy the resulting fields at all, but to return indexes and
+ * lengths within the source text.
+ * Advantages would be
+ * o Faster. No Copying.
+ * o Nothing extra needed when field data may contain embedded NUL chars.
+ * o Less memory needed if working on large data.
+ * Disadvantages
+ * o Less consistent with C++ split, which copies into an
+ * array of UnicodeStrings.
+ * o No NUL termination, extracted fields would be less convenient
+ * to use in most cases.
+ * o Possible problems in the future, when support Unicode Normalization
+ * could cause the fields to not correspond exactly to
+ * a range of the source text.
*
* @param regexp The compiled regular expression.
* @param destBuf A (UChar *) buffer to receive the fields that
@@ -600,25 +614,9 @@ uregex_appendTail(URegularExpression *regexp,
* positions are used.
* @param status A reference to a UErrorCode to receive any errors.
* @return The number of fields into which the input string was split.
- * @draft ICU 3.0
- *
- * Note: another choice for the design of this function would be to not
- * copy the resulting fields at all, but to return indexes and
- * lengths within the source text.
- * Advantages would be
- * o Faster. No Copying.
- * o Nothing extra needed when field data may contain embedded NUL chars.
- * o Less memory needed if working on large data.
- * Disadvantages
- * o Less consistent with C++ split, which copies into an
- * array of UnicodeStrings.
- * o No NUL termination, extracted fields would be less convenient
- * to use in most cases.
- * o Possible problems in the future, when support Unicode Normalization
- * could cause the fields to not correspond exactly to
- * a range of the source text.
+ * @stable ICU 3.0
*/
-U_DRAFT int32_t U_EXPORT2
+U_STABLE int32_t U_EXPORT2
uregex_split( URegularExpression *regexp,
UChar *destBuf,
int32_t destCapacity,
diff --git a/Build/source/libs/icu-xetex/i18n/unicode/utmscale.h b/Build/source/libs/icu-xetex/i18n/unicode/utmscale.h
index 36d4ea493d6..1ab9c215d48 100644
--- a/Build/source/libs/icu-xetex/i18n/unicode/utmscale.h
+++ b/Build/source/libs/icu-xetex/i18n/unicode/utmscale.h
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2004 - 2005, International Business Machines Corporation and
+* Copyright (C) 2004 - 2006, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*/
@@ -74,7 +74,7 @@
* </tr>
* <tr>
* <td>UDTS_MAC_OLD_TIME</td>
- * <td>int32_t</td>
+ * <td>int32_t or int64_t</td>
* <td>seconds</td>
* <td>Jan 1, 1904</td>
*
@@ -190,14 +190,14 @@
* <code>UDateTimeScale</code> values are used to specify the time scale used for
* conversion into or out if the universal time scale.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
typedef enum UDateTimeScale {
/**
* Used in the JDK. Data is a Java <code>long</code> (<code>int64_t</code>). Value
* is milliseconds since January 1, 1970.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_JAVA_TIME = 0,
@@ -205,7 +205,7 @@ typedef enum UDateTimeScale {
* Used on Unix systems. Data is <code>int32_t</code> or <code>int64_t</code>. Value
* is seconds since January 1, 1970.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_UNIX_TIME,
@@ -213,7 +213,7 @@ typedef enum UDateTimeScale {
* Used in IUC4C. Data is a <code>double</code>. Value
* is milliseconds since January 1, 1970.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_ICU4C_TIME,
@@ -221,7 +221,7 @@ typedef enum UDateTimeScale {
* Used in Windows for file times. Data is an <code>int64_t</code>. Value
* is ticks (1 tick == 100 nanoseconds) since January 1, 1601.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_WINDOWS_FILE_TIME,
@@ -229,15 +229,15 @@ typedef enum UDateTimeScale {
* Used in the .NET framework's <code>System.DateTime</code> structure. Data is an <code>int64_t</code>. Value
* is ticks (1 tick == 100 nanoseconds) since January 1, 0001.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_DOTNET_DATE_TIME,
/**
- * Used in older Macintosh systems. Data is an <code>int32_t</code>. Value
+ * Used in older Macintosh systems. Data is <code>int32_t</code> or <code>int64_t</code>. Value
* is seconds since January 1, 1904.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_MAC_OLD_TIME,
@@ -245,7 +245,7 @@ typedef enum UDateTimeScale {
* Used in newer Macintosh systems. Data is a <code>double</code>. Value
* is seconds since January 1, 2001.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_MAC_TIME,
@@ -253,7 +253,7 @@ typedef enum UDateTimeScale {
* Used in Excel. Data is an <code>?unknown?</code>. Value
* is days since December 31, 1899.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_EXCEL_TIME,
@@ -261,14 +261,12 @@ typedef enum UDateTimeScale {
* Used in DB2. Data is an <code>?unknown?</code>. Value
* is days since December 31, 1899.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UDTS_DB2_TIME,
/**
- * The first unused time scale value.
- *
- * @draft ICU 3.2
+ * The first unused time scale value. The limit of this enum
*/
UDTS_MAX_SCALE
} UDateTimeScale;
@@ -279,7 +277,7 @@ typedef enum UDateTimeScale {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
typedef enum UTimeScaleValue {
/**
@@ -288,7 +286,7 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
UTSV_UNITS_VALUE = 0,
@@ -298,9 +296,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
- UTSV_EPOCH_OFFSET_VALUE,
+ UTSV_EPOCH_OFFSET_VALUE=1,
/**
* The constant used to select the minimum from value
@@ -308,9 +306,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
- UTSV_FROM_MIN_VALUE,
+ UTSV_FROM_MIN_VALUE=2,
/**
* The constant used to select the maximum from value
@@ -318,9 +316,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
- UTSV_FROM_MAX_VALUE,
+ UTSV_FROM_MAX_VALUE=3,
/**
* The constant used to select the minimum to value
@@ -328,9 +326,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
- UTSV_TO_MIN_VALUE,
+ UTSV_TO_MIN_VALUE=4,
/**
* The constant used to select the maximum to value
@@ -338,10 +336,11 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
- UTSV_TO_MAX_VALUE,
+ UTSV_TO_MAX_VALUE=5,
+#ifndef U_HIDE_INTERNAL_API
/**
* The constant used to select the epoch plus one value
* for a time scale.
@@ -351,9 +350,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @internal ICU 3.2
*/
- UTSV_EPOCH_OFFSET_PLUS_1_VALUE,
+ UTSV_EPOCH_OFFSET_PLUS_1_VALUE=6,
/**
* The constant used to select the epoch plus one value
@@ -364,9 +363,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @draft ICU 3.2
+ * @internal ICU 3.2
*/
- UTSV_EPOCH_OFFSET_MINUS_1_VALUE,
+ UTSV_EPOCH_OFFSET_MINUS_1_VALUE=7,
/**
* The constant used to select the units round value
@@ -376,9 +375,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @internal
+ * @internal ICU 3.2
*/
- UTSV_UNITS_ROUND_VALUE,
+ UTSV_UNITS_ROUND_VALUE=8,
/**
* The constant used to select the minimum safe rounding value
@@ -388,9 +387,9 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @internal
+ * @internal ICU 3.2
*/
- UTSV_MIN_ROUND_VALUE,
+ UTSV_MIN_ROUND_VALUE=9,
/**
* The constant used to select the maximum safe rounding value
@@ -400,20 +399,19 @@ typedef enum UTimeScaleValue {
*
* @see utmscale_getTimeScaleValue
*
- * @internal
+ * @internal ICU 3.2
*/
- UTSV_MAX_ROUND_VALUE,
+ UTSV_MAX_ROUND_VALUE=10,
+
+#endif /* U_HIDE_INTERNAL_API */
/**
- * The number of time scale values.
- *
- * NOTE: This is an internal value. DO NOT USE IT.
+ * The number of time scale values, in other words limit of this enum.
*
* @see utmscale_getTimeScaleValue
- *
- * @internal
*/
- UTSV_MAX_SCALE_VALUE
+ UTSV_MAX_SCALE_VALUE=11
+
} UTimeScaleValue;
/**
@@ -424,9 +422,9 @@ typedef enum UTimeScaleValue {
* @param status The status code. Set to <code>U_ILLEGAL_ARGUMENT_ERROR</code> if arguments are invalid.
* @return - the value.
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int64_t U_EXPORT2
+U_STABLE int64_t U_EXPORT2
utmscale_getTimeScaleValue(UDateTimeScale timeScale, UTimeScaleValue value, UErrorCode *status);
/* Conversion to 'universal time scale' */
@@ -440,9 +438,9 @@ U_DRAFT int64_t U_EXPORT2
*
* @return The datetime converted to the universal time scale
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int64_t U_EXPORT2
+U_STABLE int64_t U_EXPORT2
utmscale_fromInt64(int64_t otherTime, UDateTimeScale timeScale, UErrorCode *status);
/* Conversion from 'universal time scale' */
@@ -456,9 +454,9 @@ U_DRAFT int64_t U_EXPORT2
*
* @return The datetime converted to the given time scale
*
- * @draft ICU 3.2
+ * @stable ICU 3.2
*/
-U_DRAFT int64_t U_EXPORT2
+U_STABLE int64_t U_EXPORT2
utmscale_toInt64(int64_t universalTime, UDateTimeScale timeScale, UErrorCode *status);
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/uregex.cpp b/Build/source/libs/icu-xetex/i18n/uregex.cpp
index efcc1d5e147..9aab85e5df7 100644
--- a/Build/source/libs/icu-xetex/i18n/uregex.cpp
+++ b/Build/source/libs/icu-xetex/i18n/uregex.cpp
@@ -963,7 +963,10 @@ static void copyString(UChar *destBuffer, // Destination buffer.
break;
}
}
- destBuffer[di++] = 0;
+ if (di<destCapacity) {
+ destBuffer[di] = 0;
+ }
+ di++;
*destIndex = di;
}
@@ -1091,7 +1094,7 @@ uregex_split( URegularExpression *regexp,
if (requiredCapacity != NULL) {
*requiredCapacity = destIdx;
}
- if (*requiredCapacity > destCapacity) {
+ if (destIdx > destCapacity) {
*status = U_BUFFER_OVERFLOW_ERROR;
}
return i+1;
diff --git a/Build/source/libs/icu-xetex/i18n/usearch.cpp b/Build/source/libs/icu-xetex/i18n/usearch.cpp
index 5572992436e..74798e88aef 100644
--- a/Build/source/libs/icu-xetex/i18n/usearch.cpp
+++ b/Build/source/libs/icu-xetex/i18n/usearch.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2005 IBM and others. All rights reserved.
+* Copyright (C) 2001-2006 IBM and others. All rights reserved.
**********************************************************************
* Date Name Description
* 07/02/2001 synwee Creation.
@@ -2490,11 +2490,13 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator(
#endif
if (pattern == NULL || text == NULL || collator == NULL) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
}
// string search does not really work when numeric collation is turned on
if(ucol_getAttribute(collator, UCOL_NUMERIC_COLLATION, status) == UCOL_ON) {
*status = U_UNSUPPORTED_ERROR;
+ return NULL;
}
if (U_SUCCESS(*status)) {
diff --git a/Build/source/libs/icu-xetex/i18n/utmscale.c b/Build/source/libs/icu-xetex/i18n/utmscale.c
index 12ff579491d..dd35007b3bb 100644
--- a/Build/source/libs/icu-xetex/i18n/utmscale.c
+++ b/Build/source/libs/icu-xetex/i18n/utmscale.c
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2004, International Business Machines Corporation and
+* Copyright (C) 2004-2006, International Business Machines Corporation and
* others. All Rights Reserved.
*******************************************************************************
*/
@@ -19,103 +19,41 @@
#define hours (minutes * 60)
#define days (hours * 24)
-#define TIME_SCALE_CHECK(scale,status) \
- if(scale < 0 || scale >= UDTS_MAX_SCALE) { \
- *status = U_ILLEGAL_ARGUMENT_ERROR; \
- return 0; \
- }
-
-typedef struct
-{
- int64_t units;
- int64_t epochOffset;
-
- int64_t fromMin;
- int64_t fromMax;
- int64_t toMin;
- int64_t toMax;
-
- int64_t epochOffsetP1;
- int64_t epochOffsetM1;
- int64_t unitsRound;
- int64_t minRound;
- int64_t maxRound;
-} InternalTimeScaleData;
-
-static const InternalTimeScaleData timeScaleTable[] = {
+/* Constants generated by ICU4J com.ibm.icu.dev.tool.timescale.GenerateCTimeScaleData. */
+static const int64_t timeScaleTable[UDTS_MAX_SCALE][UTSV_MAX_SCALE_VALUE] = {
/* units epochOffset fromMin fromMax toMin toMax epochOffsetP1 epochOffsetM1 unitsRound minRound maxRound */
- {milliseconds, INT64_C(62135769600000), INT64_C(-984472973285477), INT64_C(860201434085477), INT64_C(-9223372036854774999), INT64_C(9223372036854774999), INT64_C(62135769600001), INT64_C(62135769599999), INT64_C(5000), INT64_C(-9223372036854770808), INT64_C(9223372036854770807)},
- {seconds, INT64_C(62135769600), INT64_C(-984472973285), INT64_C(860201434085), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(62135769601), INT64_C(62135769599), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
- {milliseconds, INT64_C(62135769600000), INT64_C(-984472973285477), INT64_C(860201434085477), INT64_C(-9223372036854774999), INT64_C(9223372036854774999), INT64_C(62135769600001), INT64_C(62135769599999), INT64_C(5000), INT64_C(-9223372036854770808), INT64_C(9223372036854770807)},
- {ticks, INT64_C(504912960000000000), U_INT64_MIN, INT64_C(8718459076854775807), INT64_C(-8718459076854775808), INT64_C(9223372036854775807), INT64_C(504912960000000000), INT64_C(504912960000000000), INT64_C(0), U_INT64_MIN, INT64_C(9223372036854775807)},
- {ticks, INT64_C(0), U_INT64_MIN, INT64_C(9223372036854775807), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(0), INT64_C(0), INT64_C(0), U_INT64_MIN, INT64_C(9223372036854775807)},
- {seconds, INT64_C(60052924800), INT64_C(-982390128485), INT64_C(862284278885), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(60052924801), INT64_C(60052924799), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
- {seconds, INT64_C(63114076800), INT64_C(-985451280485), INT64_C(859223126885), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(63114076801), INT64_C(63114076799), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
- {days, INT64_C(693596), INT64_C(-11368795), INT64_C(9981603), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(693597), INT64_C(693595), INT64_C(432000000000), INT64_C(-9223371604854775808), INT64_C(9223371604854775807)},
- {days, INT64_C(693596), INT64_C(-11368795), INT64_C(9981603), U_INT64_MIN, INT64_C(9223372036854775807), INT64_C(693597), INT64_C(693595), INT64_C(432000000000), INT64_C(-9223371604854775808), INT64_C(9223371604854775807)},
+ {milliseconds, INT64_C(62135596800000), INT64_C(-984472800485477), INT64_C(860201606885477), INT64_C(-9223372036854774999), INT64_C(9223372036854774999), INT64_C(62135596800001), INT64_C(62135596799999), INT64_C(5000), INT64_C(-9223372036854770808), INT64_C(9223372036854770807)},
+ {seconds, INT64_C(62135596800), INT64_C(-984472800485), INT64_C(860201606885), U_INT64_MIN, U_INT64_MAX, INT64_C(62135596801), INT64_C(62135596799), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
+ {milliseconds, INT64_C(62135596800000), INT64_C(-984472800485477), INT64_C(860201606885477), INT64_C(-9223372036854774999), INT64_C(9223372036854774999), INT64_C(62135596800001), INT64_C(62135596799999), INT64_C(5000), INT64_C(-9223372036854770808), INT64_C(9223372036854770807)},
+ {ticks, INT64_C(504911232000000000), U_INT64_MIN, INT64_C(8718460804854775807), INT64_C(-8718460804854775808), U_INT64_MAX, INT64_C(504911232000000000), INT64_C(504911232000000000), INT64_C(0), U_INT64_MIN, U_INT64_MAX},
+ {ticks, INT64_C(0), U_INT64_MIN, U_INT64_MAX, U_INT64_MIN, U_INT64_MAX, INT64_C(0), INT64_C(0), INT64_C(0), U_INT64_MIN, U_INT64_MAX},
+ {seconds, INT64_C(60052752000), INT64_C(-982389955685), INT64_C(862284451685), U_INT64_MIN, U_INT64_MAX, INT64_C(60052752001), INT64_C(60052751999), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
+ {seconds, INT64_C(63113904000), INT64_C(-985451107685), INT64_C(859223299685), U_INT64_MIN, U_INT64_MAX, INT64_C(63113904001), INT64_C(63113903999), INT64_C(5000000), INT64_C(-9223372036849775808), INT64_C(9223372036849775807)},
+ {days, INT64_C(693594), INT64_C(-11368793), INT64_C(9981605), U_INT64_MIN, U_INT64_MAX, INT64_C(693595), INT64_C(693593), INT64_C(432000000000), INT64_C(-9223371604854775808), INT64_C(9223371604854775807)},
+ {days, INT64_C(693594), INT64_C(-11368793), INT64_C(9981605), U_INT64_MIN, U_INT64_MAX, INT64_C(693595), INT64_C(693593), INT64_C(432000000000), INT64_C(-9223371604854775808), INT64_C(9223371604854775807)},
};
U_CAPI int64_t U_EXPORT2
utmscale_getTimeScaleValue(UDateTimeScale timeScale, UTimeScaleValue value, UErrorCode *status)
{
- const InternalTimeScaleData *internalData;
-
if (status == NULL || U_FAILURE(*status)) {
return 0;
}
- if (timeScale < 0 || timeScale >= UDTS_MAX_SCALE) {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return 0;
- }
-
- internalData = &timeScaleTable[timeScale];
-
- switch (value)
+ if (timeScale < UDTS_JAVA_TIME || UDTS_MAX_SCALE <= timeScale
+ || value < UTSV_UNITS_VALUE || UTSV_MAX_SCALE_VALUE <= value)
{
- case UTSV_UNITS_VALUE:
- return internalData->units;
-
- case UTSV_EPOCH_OFFSET_VALUE:
- return internalData->epochOffset;
-
- case UTSV_FROM_MIN_VALUE:
- return internalData->fromMin;
-
- case UTSV_FROM_MAX_VALUE:
- return internalData->fromMax;
-
- case UTSV_TO_MIN_VALUE:
- return internalData->toMin;
-
- case UTSV_TO_MAX_VALUE:
- return internalData->toMax;
-
- case UTSV_EPOCH_OFFSET_PLUS_1_VALUE:
- return internalData->epochOffsetP1;
-
- case UTSV_EPOCH_OFFSET_MINUS_1_VALUE:
- return internalData->epochOffsetM1;
-
- case UTSV_UNITS_ROUND_VALUE:
- return internalData->unitsRound;
-
- case UTSV_MIN_ROUND_VALUE:
- return internalData->minRound;
-
- case UTSV_MAX_ROUND_VALUE:
- return internalData->maxRound;
-
- default:
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
+
+ return timeScaleTable[timeScale][value];
}
U_CAPI int64_t U_EXPORT2
utmscale_fromInt64(int64_t otherTime, UDateTimeScale timeScale, UErrorCode *status)
{
- const InternalTimeScaleData *data;
+ const int64_t *data;
if (status == NULL || U_FAILURE(*status)) {
return 0;
@@ -126,20 +64,20 @@ utmscale_fromInt64(int64_t otherTime, UDateTimeScale timeScale, UErrorCode *stat
return 0;
}
- data = &timeScaleTable[timeScale];
+ data = (const int64_t *)(&timeScaleTable[timeScale]);
- if (otherTime < data->fromMin || otherTime > data->fromMax) {
+ if (otherTime < data[UTSV_FROM_MIN_VALUE] || otherTime > data[UTSV_FROM_MAX_VALUE]) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
- return (otherTime + data->epochOffset) * data->units;
+ return (otherTime + data[UTSV_EPOCH_OFFSET_VALUE]) * data[UTSV_UNITS_VALUE];
}
U_CAPI int64_t U_EXPORT2
utmscale_toInt64(int64_t universalTime, UDateTimeScale timeScale, UErrorCode *status)
{
- const InternalTimeScaleData *data;
+ const int64_t *data;
if (status == NULL || U_FAILURE(*status)) {
return 0;
@@ -150,26 +88,26 @@ utmscale_toInt64(int64_t universalTime, UDateTimeScale timeScale, UErrorCode *st
return 0;
}
- data = &timeScaleTable[timeScale];
+ data = (const int64_t *)(&timeScaleTable[timeScale]);
- if (universalTime < data->toMin || universalTime > data->toMax) {
+ if (universalTime < data[UTSV_TO_MIN_VALUE] || universalTime > data[UTSV_TO_MAX_VALUE]) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
if (universalTime < 0) {
- if (universalTime < data->minRound) {
- return (universalTime + data->unitsRound) / data->units - data->epochOffsetP1;
+ if (universalTime < data[UTSV_MIN_ROUND_VALUE]) {
+ return (universalTime + data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_PLUS_1_VALUE];
}
- return (universalTime - data->unitsRound) / data->units - data->epochOffset;
+ return (universalTime - data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_VALUE];
}
- if (universalTime > data->maxRound) {
- return (universalTime - data->unitsRound) / data->units - data->epochOffsetM1;
+ if (universalTime > data[UTSV_MAX_ROUND_VALUE]) {
+ return (universalTime - data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_MINUS_1_VALUE];
}
- return (universalTime + data->unitsRound) / data->units - data->epochOffset;
+ return (universalTime + data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_VALUE];
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/i18n/windtfmt.cpp b/Build/source/libs/icu-xetex/i18n/windtfmt.cpp
new file mode 100644
index 00000000000..19766b1f637
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/windtfmt.cpp
@@ -0,0 +1,315 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINDTFMT.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/ures.h"
+#include "unicode/format.h"
+#include "unicode/fmtable.h"
+#include "unicode/datefmt.h"
+#include "unicode/msgfmt.h"
+#include "unicode/calendar.h"
+#include "unicode/gregocal.h"
+#include "unicode/locid.h"
+#include "unicode/unistr.h"
+#include "unicode/ustring.h"
+#include "unicode/timezone.h"
+#include "unicode/utmscale.h"
+
+#include "cmemory.h"
+#include "uresimp.h"
+#include "windtfmt.h"
+#include "wintz.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+#include <windows.h>
+
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(Win32DateFormat)
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+#define STACK_BUFFER_SIZE 64
+
+UnicodeString *getTimeDateFormat(const Calendar *cal, const Locale *locale, UErrorCode &status)
+{
+ UnicodeString *result = NULL;
+ const char *type = cal->getType();
+ const char *base = locale->getBaseName();
+ UResourceBundle *topBundle = ures_open((char *) 0, base, &status);
+ UResourceBundle *calBundle = ures_getByKey(topBundle, "calendar", NULL, &status);
+ UResourceBundle *typBundle = ures_getByKeyWithFallback(calBundle, type, NULL, &status);
+ UResourceBundle *patBundle = ures_getByKeyWithFallback(typBundle, "DateTimePatterns", NULL, &status);
+
+ if (status == U_MISSING_RESOURCE_ERROR) {
+ status = U_ZERO_ERROR;
+ typBundle = ures_getByKeyWithFallback(calBundle, "gregorian", typBundle, &status);
+ patBundle = ures_getByKeyWithFallback(typBundle, "DateTimePatterns", patBundle, &status);
+ }
+
+ if (U_FAILURE(status)) {
+ UChar defaultPattern[] = {0x007B, 0x0031, 0x007D, 0x0020, 0x007B, 0x0030, 0x007D, 0x0000}; // "{1} {0}"
+ return new UnicodeString(defaultPattern, ARRAY_SIZE(defaultPattern));
+ }
+
+ int32_t resStrLen = 0;
+ const UChar *resStr = ures_getStringByIndex(patBundle, (int32_t)DateFormat::kDateTime, &resStrLen, &status);
+
+ result = new UnicodeString(TRUE, resStr, resStrLen);
+
+ ures_close(patBundle);
+ ures_close(typBundle);
+ ures_close(calBundle);
+ ures_close(topBundle);
+
+ return result;
+}
+
+// TODO: Range-check timeStyle, dateStyle
+Win32DateFormat::Win32DateFormat(DateFormat::EStyle timeStyle, DateFormat::EStyle dateStyle, const Locale &locale, UErrorCode &status)
+ : DateFormat(), fDateTimeMsg(NULL), fTimeStyle(timeStyle), fDateStyle(dateStyle), fLocale(&locale), fZoneID()
+{
+ if (U_SUCCESS(status)) {
+ fLCID = locale.getLCID();
+ fTZI = NEW_ARRAY(TIME_ZONE_INFORMATION, 1);
+ uprv_memset(fTZI, 0, sizeof(TIME_ZONE_INFORMATION));
+ adoptCalendar(Calendar::createInstance(locale, status));
+ }
+}
+
+Win32DateFormat::Win32DateFormat(const Win32DateFormat &other)
+ : DateFormat(other)
+{
+ *this = other;
+}
+
+Win32DateFormat::~Win32DateFormat()
+{
+// delete fCalendar;
+ uprv_free(fTZI);
+ delete fDateTimeMsg;
+}
+
+Win32DateFormat &Win32DateFormat::operator=(const Win32DateFormat &other)
+{
+ // The following handles fCalendar
+ DateFormat::operator=(other);
+
+// delete fCalendar;
+
+ this->fDateTimeMsg = other.fDateTimeMsg;
+ this->fTimeStyle = other.fTimeStyle;
+ this->fDateStyle = other.fDateStyle;
+ this->fLCID = other.fLCID;
+// this->fCalendar = other.fCalendar->clone();
+ this->fZoneID = other.fZoneID;
+
+ this->fTZI = NEW_ARRAY(TIME_ZONE_INFORMATION, 1);
+ *this->fTZI = *other.fTZI;
+
+ return *this;
+}
+
+Format *Win32DateFormat::clone(void) const
+{
+ return new Win32DateFormat(*this);
+}
+
+// TODO: Is just ignoring pos the right thing?
+UnicodeString &Win32DateFormat::format(Calendar &cal, UnicodeString &appendTo, FieldPosition &pos) const
+{
+ FILETIME ft;
+ SYSTEMTIME st_gmt;
+ SYSTEMTIME st_local;
+ TIME_ZONE_INFORMATION tzi = *fTZI;
+ UErrorCode status = U_ZERO_ERROR;
+ const TimeZone &tz = cal.getTimeZone();
+ int64_t uct, uft;
+
+ setTimeZoneInfo(&tzi, tz);
+
+ uct = utmscale_fromInt64((int64_t) cal.getTime(status), UDTS_ICU4C_TIME, &status);
+ uft = utmscale_toInt64(uct, UDTS_WINDOWS_FILE_TIME, &status);
+
+ ft.dwLowDateTime = (DWORD) (uft & 0xFFFFFFFF);
+ ft.dwHighDateTime = (DWORD) ((uft >> 32) & 0xFFFFFFFF);
+
+ FileTimeToSystemTime(&ft, &st_gmt);
+ SystemTimeToTzSpecificLocalTime(&tzi, &st_gmt, &st_local);
+
+
+ if (fDateStyle != DateFormat::kNone && fTimeStyle != DateFormat::kNone) {
+ UnicodeString *date = new UnicodeString();
+ UnicodeString *time = new UnicodeString();
+ UnicodeString *pattern = fDateTimeMsg;
+ Formattable timeDateArray[2];
+
+ formatDate(&st_local, *date);
+ formatTime(&st_local, *time);
+
+ timeDateArray[0].adoptString(time);
+ timeDateArray[1].adoptString(date);
+
+ if (strcmp(fCalendar->getType(), cal.getType()) != 0) {
+ pattern = getTimeDateFormat(&cal, fLocale, status);
+ }
+
+ MessageFormat::format(*pattern, timeDateArray, 2, appendTo, status);
+ } else if (fDateStyle != DateFormat::kNone) {
+ formatDate(&st_local, appendTo);
+ } else if (fTimeStyle != DateFormat::kNone) {
+ formatTime(&st_local, appendTo);
+ }
+
+ return appendTo;
+}
+
+void Win32DateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& pos) const
+{
+ pos.setErrorIndex(pos.getIndex());
+}
+
+void Win32DateFormat::adoptCalendar(Calendar *newCalendar)
+{
+ if (fCalendar == NULL || strcmp(fCalendar->getType(), newCalendar->getType()) != 0) {
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (fDateStyle != DateFormat::kNone && fTimeStyle != DateFormat::kNone) {
+ delete fDateTimeMsg;
+ fDateTimeMsg = getTimeDateFormat(newCalendar, fLocale, status);
+ }
+ }
+
+ delete fCalendar;
+ fCalendar = newCalendar;
+
+ fZoneID = setTimeZoneInfo(fTZI, fCalendar->getTimeZone());
+}
+
+void Win32DateFormat::setCalendar(const Calendar &newCalendar)
+{
+ adoptCalendar(newCalendar.clone());
+}
+
+void Win32DateFormat::adoptTimeZone(TimeZone *zoneToAdopt)
+{
+ fZoneID = setTimeZoneInfo(fTZI, *zoneToAdopt);
+ fCalendar->adoptTimeZone(zoneToAdopt);
+}
+
+void Win32DateFormat::setTimeZone(const TimeZone& zone)
+{
+ fZoneID = setTimeZoneInfo(fTZI, zone);
+ fCalendar->setTimeZone(zone);
+}
+
+static const DWORD dfFlags[] = {DATE_LONGDATE, DATE_LONGDATE, DATE_SHORTDATE, DATE_SHORTDATE};
+
+void Win32DateFormat::formatDate(const SYSTEMTIME *st, UnicodeString &appendTo) const
+{
+ int result;
+ UChar stackBuffer[STACK_BUFFER_SIZE];
+ UChar *buffer = stackBuffer;
+
+ result = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ GetDateFormatW(fLCID, dfFlags[fDateStyle - kDateOffset], st, NULL, buffer, newLength);
+ }
+ }
+
+ appendTo.append(buffer, (int32_t) wcslen(buffer));
+
+ if (buffer != stackBuffer) {
+ DELETE_ARRAY(buffer);
+ }
+}
+
+static const DWORD tfFlags[] = {0, 0, 0, TIME_NOSECONDS};
+
+void Win32DateFormat::formatTime(const SYSTEMTIME *st, UnicodeString &appendTo) const
+{
+ int result;
+ UChar stackBuffer[STACK_BUFFER_SIZE];
+ UChar *buffer = stackBuffer;
+
+ result = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetTimeFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ GetDateFormatW(fLCID, tfFlags[fTimeStyle], st, NULL, buffer, newLength);
+ }
+ }
+
+ appendTo.append(buffer, (int32_t) wcslen(buffer));
+
+ if (buffer != stackBuffer) {
+ DELETE_ARRAY(buffer);
+ }
+}
+
+UnicodeString Win32DateFormat::setTimeZoneInfo(TIME_ZONE_INFORMATION *tzi, const TimeZone &zone) const
+{
+ UnicodeString zoneID;
+
+ zone.getID(zoneID);
+
+ if (zoneID.compare(fZoneID) != 0) {
+ UnicodeString icuid;
+
+ zone.getID(icuid);
+ if (! uprv_getWindowsTimeZoneInfo(tzi, icuid.getBuffer(), icuid.length())) {
+ UBool found = FALSE;
+ int32_t ec = TimeZone::countEquivalentIDs(icuid);
+
+ for (int z = 0; z < ec; z += 1) {
+ UnicodeString equiv = TimeZone::getEquivalentID(icuid, z);
+
+ if (found = uprv_getWindowsTimeZoneInfo(tzi, equiv.getBuffer(), equiv.length())) {
+ break;
+ }
+ }
+
+ if (! found) {
+ GetTimeZoneInformation(tzi);
+ }
+ }
+ }
+
+ return zoneID;
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
diff --git a/Build/source/libs/icu-xetex/i18n/windtfmt.h b/Build/source/libs/icu-xetex/i18n/windtfmt.h
new file mode 100644
index 00000000000..364822d56b1
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/windtfmt.h
@@ -0,0 +1,148 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINDTFMT.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINDTFMT
+#define __WINDTFMT
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/format.h"
+#include "unicode/datefmt.h"
+#include "unicode/calendar.h"
+#include "unicode/ustring.h"
+#include "unicode/locid.h"
+
+/**
+ * \file
+ * \brief C++ API: Format dates using Windows API.
+ */
+
+U_CDECL_BEGIN
+// Forward declarations for Windows types...
+typedef struct _SYSTEMTIME SYSTEMTIME;
+typedef struct _TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION;
+U_CDECL_END
+
+U_NAMESPACE_BEGIN
+
+class Win32DateFormat : public DateFormat
+{
+public:
+ Win32DateFormat(DateFormat::EStyle timeStyle, DateFormat::EStyle dateStyle, const Locale &locale, UErrorCode &status);
+
+ Win32DateFormat(const Win32DateFormat &other);
+
+ virtual ~Win32DateFormat();
+
+ virtual Format *clone(void) const;
+
+ Win32DateFormat &operator=(const Win32DateFormat &other);
+
+ UnicodeString &format(Calendar &cal, UnicodeString &appendTo, FieldPosition &pos) const;
+
+ UnicodeString& format(UDate date, UnicodeString& appendTo) const;
+
+ void parse(const UnicodeString& text, Calendar& cal, ParsePosition& pos) const;
+
+ /**
+ * Set the calendar to be used by this date format. Initially, the default
+ * calendar for the specified or default locale is used. The caller should
+ * not delete the Calendar object after it is adopted by this call.
+ *
+ * @param calendarToAdopt Calendar object to be adopted.
+ * @draft ICU 3.6
+ */
+ virtual void adoptCalendar(Calendar* calendarToAdopt);
+
+ /**
+ * Set the calendar to be used by this date format. Initially, the default
+ * calendar for the specified or default locale is used.
+ *
+ * @param newCalendar Calendar object to be set.
+ *
+ * @draft ICU 3.6
+ */
+ virtual void setCalendar(const Calendar& newCalendar);
+
+ /**
+ * Sets the time zone for the calendar of this DateFormat object. The caller
+ * no longer owns the TimeZone object and should not delete it after this call.
+ *
+ * @param zoneToAdopt the TimeZone to be adopted.
+ *
+ * @draft ICU 3.6
+ */
+ virtual void adoptTimeZone(TimeZone* zoneToAdopt);
+
+ /**
+ * Sets the time zone for the calendar of this DateFormat object.
+ * @param zone the new time zone.
+ *
+ * @draft ICU 3.6
+ */
+ virtual void setTimeZone(const TimeZone& zone);
+
+ /**
+ * Return the class ID for this class. This is useful only for comparing to
+ * a return value from getDynamicClassID(). For example:
+ * <pre>
+ * . Base* polymorphic_pointer = createPolymorphicObject();
+ * . if (polymorphic_pointer->getDynamicClassID() ==
+ * . erived::getStaticClassID()) ...
+ * </pre>
+ * @return The class ID for all objects of this class.
+ * @draft ICU 3.6
+ */
+ static UClassID U_EXPORT2 getStaticClassID(void);
+
+ /**
+ * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
+ * method is to implement a simple version of RTTI, since not all C++
+ * compilers support genuine RTTI. Polymorphic operator==() and clone()
+ * methods call this method.
+ *
+ * @return The class ID for this object. All objects of a
+ * given class have the same class ID. Objects of
+ * other classes have different class IDs.
+ * @draft ICU 3.6
+ */
+ virtual UClassID getDynamicClassID(void) const;
+
+private:
+ void formatDate(const SYSTEMTIME *st, UnicodeString &appendTo) const;
+ void formatTime(const SYSTEMTIME *st, UnicodeString &appendTo) const;
+
+ UnicodeString setTimeZoneInfo(TIME_ZONE_INFORMATION *tzi, const TimeZone &zone) const;
+
+ UnicodeString *fDateTimeMsg;
+ DateFormat::EStyle fTimeStyle;
+ DateFormat::EStyle fDateStyle;
+ const Locale *fLocale;
+ int32_t fLCID;
+ UnicodeString fZoneID;
+ TIME_ZONE_INFORMATION *fTZI;
+};
+
+inline UnicodeString &Win32DateFormat::format(UDate date, UnicodeString& appendTo) const {
+ return DateFormat::format(date, appendTo);
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
+#endif // __WINDTFMT
diff --git a/Build/source/libs/icu-xetex/i18n/winnmfmt.cpp b/Build/source/libs/icu-xetex/i18n/winnmfmt.cpp
new file mode 100644
index 00000000000..32b1cd7c137
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/winnmfmt.cpp
@@ -0,0 +1,345 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINNMFMT.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "winnmfmt.h"
+
+#include "unicode/format.h"
+#include "unicode/numfmt.h"
+#include "unicode/locid.h"
+#include "unicode/ustring.h"
+
+#include "cmemory.h"
+#include "uassert.h"
+#include "locmap.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+#include <windows.h>
+#include <stdio.h>
+
+U_NAMESPACE_BEGIN
+
+union FormatInfo
+{
+ NUMBERFMTW number;
+ CURRENCYFMTW currency;
+};
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(Win32NumberFormat)
+
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+#define STACK_BUFFER_SIZE 32
+
+/*
+ * Turns a string of the form "3;2;0" into the grouping UINT
+ * needed for NUMBERFMT and CURRENCYFMT. If the string does not
+ * end in ";0" then the return value should be multiplied by 10.
+ * (e.g. "3" => 30, "3;2" => 320)
+ */
+static UINT getGrouping(const char *grouping)
+{
+ UINT g = 0;
+ const char *s;
+
+ for (s = grouping; *s != '\0'; s += 1) {
+ if (*s > '0' && *s < '9') {
+ g = g * 10 + (*s - '0');
+ } else if (*s != ';') {
+ break;
+ }
+ }
+
+ if (*s != '0') {
+ g *= 10;
+ }
+
+ return g;
+}
+
+static void getNumberFormat(NUMBERFMTW *fmt, int32_t lcid)
+{
+ char buf[10];
+
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_IDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ILZERO, (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
+
+ GetLocaleInfoA(lcid, LOCALE_SGROUPING, buf, 10);
+ fmt->Grouping = getGrouping(buf);
+
+ fmt->lpDecimalSep = NEW_ARRAY(UChar, 6);
+ GetLocaleInfoW(lcid, LOCALE_SDECIMAL, fmt->lpDecimalSep, 6);
+
+ fmt->lpThousandSep = NEW_ARRAY(UChar, 6);
+ GetLocaleInfoW(lcid, LOCALE_STHOUSAND, fmt->lpThousandSep, 6);
+
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGNUMBER, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+}
+
+static void freeNumberFormat(NUMBERFMTW *fmt)
+{
+ DELETE_ARRAY(fmt->lpThousandSep);
+ DELETE_ARRAY(fmt->lpDecimalSep);
+}
+
+static void getCurrencyFormat(CURRENCYFMTW *fmt, int32_t lcid)
+{
+ char buf[10];
+
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRDIGITS, (LPWSTR) &fmt->NumDigits, sizeof(UINT));
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ILZERO, (LPWSTR) &fmt->LeadingZero, sizeof(UINT));
+
+ GetLocaleInfoA(lcid, LOCALE_SMONGROUPING, buf, sizeof(buf));
+ fmt->Grouping = getGrouping(buf);
+
+ fmt->lpDecimalSep = NEW_ARRAY(UChar, 6);
+ GetLocaleInfoW(lcid, LOCALE_SMONDECIMALSEP, fmt->lpDecimalSep, 6);
+
+ fmt->lpThousandSep = NEW_ARRAY(UChar, 6);
+ GetLocaleInfoW(lcid, LOCALE_SMONTHOUSANDSEP, fmt->lpThousandSep, 6);
+
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_INEGCURR, (LPWSTR) &fmt->NegativeOrder, sizeof(UINT));
+ GetLocaleInfoW(lcid, LOCALE_RETURN_NUMBER|LOCALE_ICURRENCY, (LPWSTR) &fmt->PositiveOrder, sizeof(UINT));
+
+ fmt->lpCurrencySymbol = NEW_ARRAY(UChar, 8);
+ GetLocaleInfoW(lcid, LOCALE_SCURRENCY, (LPWSTR) fmt->lpCurrencySymbol, 8);
+}
+
+static void freeCurrencyFormat(CURRENCYFMTW *fmt)
+{
+ DELETE_ARRAY(fmt->lpCurrencySymbol);
+ DELETE_ARRAY(fmt->lpThousandSep);
+ DELETE_ARRAY(fmt->lpDecimalSep);
+}
+
+// TODO: keep locale too?
+Win32NumberFormat::Win32NumberFormat(const Locale &locale, UBool currency, UErrorCode &status)
+ : NumberFormat(), fCurrency(currency), fFractionDigitsSet(FALSE)
+{
+ if (!U_FAILURE(status)) {
+ fLCID = locale.getLCID();
+
+ fFormatInfo = (FormatInfo*)uprv_malloc(sizeof(FormatInfo));
+
+ if (fCurrency) {
+ getCurrencyFormat(&fFormatInfo->currency, fLCID);
+ } else {
+ getNumberFormat(&fFormatInfo->number, fLCID);
+ }
+ }
+}
+
+Win32NumberFormat::Win32NumberFormat(const Win32NumberFormat &other)
+ : NumberFormat(other)
+{
+ *this = other;
+}
+
+Win32NumberFormat::~Win32NumberFormat()
+{
+ if (fCurrency) {
+ freeCurrencyFormat(&fFormatInfo->currency);
+ } else {
+ freeNumberFormat(&fFormatInfo->number);
+ }
+
+ uprv_free(fFormatInfo);
+}
+
+Win32NumberFormat &Win32NumberFormat::operator=(const Win32NumberFormat &other)
+{
+ NumberFormat::operator=(other);
+
+ this->fCurrency = other.fCurrency;
+ this->fLCID = other.fLCID;
+ this->fFractionDigitsSet = other.fFractionDigitsSet;
+
+ if (fCurrency) {
+ freeCurrencyFormat(&fFormatInfo->currency);
+ getCurrencyFormat(&fFormatInfo->currency, fLCID);
+ } else {
+ freeNumberFormat(&fFormatInfo->number);
+ getNumberFormat(&fFormatInfo->number, fLCID);
+ }
+
+ return *this;
+}
+
+Format *Win32NumberFormat::clone(void) const
+{
+ return new Win32NumberFormat(*this);
+}
+
+UnicodeString& Win32NumberFormat::format(double number, UnicodeString& appendTo, FieldPosition& pos) const
+{
+ return format(getMaximumFractionDigits(), appendTo, L"%.16f", number);
+}
+
+UnicodeString& Win32NumberFormat::format(int32_t number, UnicodeString& appendTo, FieldPosition& pos) const
+{
+ return format(getMinimumFractionDigits(), appendTo, L"%I32d", number);
+}
+
+UnicodeString& Win32NumberFormat::format(int64_t number, UnicodeString& appendTo, FieldPosition& pos) const
+{
+ return format(getMinimumFractionDigits(), appendTo, L"%I64d", number);
+}
+
+// TODO: cache Locale and NumberFormat? Could keep locale passed to constructor...
+void Win32NumberFormat::parse(const UnicodeString& text, Formattable& result, ParsePosition& parsePosition) const
+{
+ UErrorCode status = U_ZERO_ERROR;
+ Locale loc(uprv_convertToPosix(fLCID, &status));
+ NumberFormat *nf = fCurrency? NumberFormat::createCurrencyInstance(loc, status) : NumberFormat::createInstance(loc, status);
+
+ nf->parse(text, result, parsePosition);
+ delete nf;
+}
+void Win32NumberFormat::setMaximumFractionDigits(int32_t newValue)
+{
+ fFractionDigitsSet = TRUE;
+ NumberFormat::setMaximumFractionDigits(newValue);
+}
+
+void Win32NumberFormat::setMinimumFractionDigits(int32_t newValue)
+{
+ fFractionDigitsSet = TRUE;
+ NumberFormat::setMinimumFractionDigits(newValue);
+}
+
+UnicodeString &Win32NumberFormat::format(int32_t numDigits, UnicodeString &appendTo, wchar_t *fmt, ...) const
+{
+ wchar_t nStackBuffer[STACK_BUFFER_SIZE];
+ wchar_t *nBuffer = nStackBuffer;
+ va_list args;
+ int result;
+
+ nBuffer[0] = 0x0000;
+
+ /* Due to the arguments causing a result to be <= 23 characters (+2 for NULL and minus),
+ we don't need to reallocate the buffer. */
+ va_start(args, fmt);
+ result = _vsnwprintf(nBuffer, STACK_BUFFER_SIZE, fmt, args);
+ va_end(args);
+
+ /* Just to make sure of the above statement, we add this assert */
+ U_ASSERT(result >=0);
+ // The following code is not used because _vscwprintf isn't available on MinGW at the moment.
+ /*if (result < 0) {
+ int newLength;
+
+ va_start(args, fmt);
+ newLength = _vscwprintf(fmt, args);
+ va_end(args);
+
+ nBuffer = NEW_ARRAY(UChar, newLength + 1);
+
+ va_start(args, fmt);
+ result = _vsnwprintf(nBuffer, newLength + 1, fmt, args);
+ va_end(args);
+ }*/
+
+ // vswprintf is sensitive to the locale set by setlocale. For some locales
+ // it doesn't use "." as the decimal separator, which is what GetNumberFormatW
+ // and GetCurrencyFormatW both expect to see.
+ //
+ // To fix this, we scan over the string and replace the first non-digits, except
+ // for a leading "-", with a "."
+ //
+ // Note: (nBuffer[0] == L'-') will evaluate to 1 if there is a leading '-' in the
+ // number, and 0 otherwise.
+ for (wchar_t *p = &nBuffer[nBuffer[0] == L'-']; *p != L'\0'; p += 1) {
+ if (*p < L'0' || *p > L'9') {
+ *p = L'.';
+ break;
+ }
+ }
+
+ UChar stackBuffer[STACK_BUFFER_SIZE];
+ UChar *buffer = stackBuffer;
+ FormatInfo formatInfo;
+
+ formatInfo = *fFormatInfo;
+ buffer[0] = 0x0000;
+
+ if (fCurrency) {
+ if (fFractionDigitsSet) {
+ formatInfo.currency.NumDigits = (UINT) numDigits;
+ }
+
+ if (!isGroupingUsed()) {
+ formatInfo.currency.Grouping = 0;
+ }
+
+ result = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ DWORD lastError = GetLastError();
+
+ if (lastError == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ buffer[0] = 0x0000;
+ GetCurrencyFormatW(fLCID, 0, nBuffer, &formatInfo.currency, buffer, newLength);
+ }
+ }
+ } else {
+ if (fFractionDigitsSet) {
+ formatInfo.number.NumDigits = (UINT) numDigits;
+ }
+
+ if (!isGroupingUsed()) {
+ formatInfo.number.Grouping = 0;
+ }
+
+ result = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ if (GetLastError() == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ buffer[0] = 0x0000;
+ GetNumberFormatW(fLCID, 0, nBuffer, &formatInfo.number, buffer, newLength);
+ }
+ }
+ }
+
+ appendTo.append(buffer, (int32_t) wcslen(buffer));
+
+ if (buffer != stackBuffer) {
+ DELETE_ARRAY(buffer);
+ }
+
+ /*if (nBuffer != nStackBuffer) {
+ DELETE_ARRAY(nBuffer);
+ }*/
+
+ return appendTo;
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
diff --git a/Build/source/libs/icu-xetex/i18n/winnmfmt.h b/Build/source/libs/icu-xetex/i18n/winnmfmt.h
new file mode 100644
index 00000000000..b67c0669939
--- /dev/null
+++ b/Build/source/libs/icu-xetex/i18n/winnmfmt.h
@@ -0,0 +1,168 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINNMFMT.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINNMFMT
+#define __WINNMFMT
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#include "unicode/format.h"
+#include "unicode/datefmt.h"
+#include "unicode/calendar.h"
+#include "unicode/ustring.h"
+#include "unicode/locid.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+/**
+ * \file
+ * \brief C++ API: Format numbers using Windows API.
+ */
+
+U_NAMESPACE_BEGIN
+
+union FormatInfo;
+
+class Win32NumberFormat : public NumberFormat
+{
+public:
+ Win32NumberFormat(const Locale &locale, UBool currency, UErrorCode &status);
+
+ Win32NumberFormat(const Win32NumberFormat &other);
+
+ virtual ~Win32NumberFormat();
+
+ virtual Format *clone(void) const;
+
+ Win32NumberFormat &operator=(const Win32NumberFormat &other);
+
+ /**
+ * Format a double number. Concrete subclasses must implement
+ * these pure virtual methods.
+ *
+ * @param number The value to be formatted.
+ * @param appendTo Output parameter to receive result.
+ * Result is appended to existing contents.
+ * @param pos On input: an alignment field, if desired.
+ * On output: the offsets of the alignment field.
+ * @return Reference to 'appendTo' parameter.
+ * @draft ICU 3.6
+ */
+ virtual UnicodeString& format(double number,
+ UnicodeString& appendTo,
+ FieldPosition& pos) const;
+ /**
+ * Format a long number. Concrete subclasses must implement
+ * these pure virtual methods.
+ *
+ * @param number The value to be formatted.
+ * @param appendTo Output parameter to receive result.
+ * Result is appended to existing contents.
+ * @param pos On input: an alignment field, if desired.
+ * On output: the offsets of the alignment field.
+ * @return Reference to 'appendTo' parameter.
+ * @draft ICU 3.6
+ */
+ virtual UnicodeString& format(int32_t number,
+ UnicodeString& appendTo,
+ FieldPosition& pos) const;
+
+ /**
+ * Format an int64 number.
+ *
+ * @param number The value to be formatted.
+ * @param appendTo Output parameter to receive result.
+ * Result is appended to existing contents.
+ * @param pos On input: an alignment field, if desired.
+ * On output: the offsets of the alignment field.
+ * @return Reference to 'appendTo' parameter.
+ * @draft ICU 3.6
+ */
+ virtual UnicodeString& format(int64_t number,
+ UnicodeString& appendTo,
+ FieldPosition& pos) const;
+
+// Use the default behavior for the following.
+// virtual UnicodeString &format(double number, UnicodeString &appendTo) const;
+// virtual UnicodeString &format(int32_t number, UnicodeString &appendTo) const;
+// virtual UnicodeString &format(int64_t number, UnicodeString &appendTo) const;
+
+ virtual void parse(const UnicodeString& text, Formattable& result, ParsePosition& parsePosition) const;
+
+ /**
+ * Sets the maximum number of digits allowed in the fraction portion of a
+ * number. maximumFractionDigits must be >= minimumFractionDigits. If the
+ * new value for maximumFractionDigits is less than the current value
+ * of minimumFractionDigits, then minimumFractionDigits will also be set to
+ * the new value.
+ * @param newValue the new value to be set.
+ * @see getMaximumFractionDigits
+ * @draft ICU 3.6
+ */
+ virtual void setMaximumFractionDigits(int32_t newValue);
+
+ /**
+ * Sets the minimum number of digits allowed in the fraction portion of a
+ * number. minimumFractionDigits must be &lt;= maximumFractionDigits. If the
+ * new value for minimumFractionDigits exceeds the current value
+ * of maximumFractionDigits, then maximumIntegerDigits will also be set to
+ * the new value
+ * @param newValue the new value to be set.
+ * @see getMinimumFractionDigits
+ * @draft ICU 3.6
+ */
+ virtual void setMinimumFractionDigits(int32_t newValue);
+
+ /**
+ * Return the class ID for this class. This is useful only for comparing to
+ * a return value from getDynamicClassID(). For example:
+ * <pre>
+ * . Base* polymorphic_pointer = createPolymorphicObject();
+ * . if (polymorphic_pointer->getDynamicClassID() ==
+ * . erived::getStaticClassID()) ...
+ * </pre>
+ * @return The class ID for all objects of this class.
+ * @stable ICU 2.0
+ */
+ static UClassID U_EXPORT2 getStaticClassID(void);
+
+ /**
+ * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. This
+ * method is to implement a simple version of RTTI, since not all C++
+ * compilers support genuine RTTI. Polymorphic operator==() and clone()
+ * methods call this method.
+ *
+ * @return The class ID for this object. All objects of a
+ * given class have the same class ID. Objects of
+ * other classes have different class IDs.
+ * @stable ICU 2.0
+ */
+ virtual UClassID getDynamicClassID(void) const;
+
+private:
+ UnicodeString &format(int32_t numDigits, UnicodeString &appendTo, wchar_t *format, ...) const;
+
+ UBool fCurrency;
+ int32_t fLCID;
+ FormatInfo *fFormatInfo;
+ UBool fFractionDigitsSet;
+
+};
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
+#endif // __WINNMFMT
diff --git a/Build/source/libs/icu-xetex/icudefs.mk.in b/Build/source/libs/icu-xetex/icudefs.mk.in
index 14a852ccc70..674780bbc53 100644
--- a/Build/source/libs/icu-xetex/icudefs.mk.in
+++ b/Build/source/libs/icu-xetex/icudefs.mk.in
@@ -155,6 +155,7 @@ LDLIBRARYPATH_ENVVAR = LD_LIBRARY_PATH
# Versioned target for a shared library.
FINAL_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION)
MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR)
+SHARED_OBJECT = $(FINAL_SO_TARGET)
## How ICU libraries are named... ex. $(LIBICU)uc$(SO)
# Prefix for the ICU library names
@@ -173,6 +174,7 @@ endif
STATIC_PREFIX = s
LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
A = a
+SOBJ = $(SO)
# Force removal [for make clean]
RMV = rm -rf
diff --git a/Build/source/libs/icu-xetex/io/Makefile.in b/Build/source/libs/icu-xetex/io/Makefile.in
index 5f7a42aa1db..6f470eee17d 100644
--- a/Build/source/libs/icu-xetex/io/Makefile.in
+++ b/Build/source/libs/icu-xetex/io/Makefile.in
@@ -1,10 +1,10 @@
#******************************************************************************
#
-# Copyright (C) 1999-2004, International Business Machines
+# Copyright (C) 1999-2006, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
-## Makefile.in for ICU - io/libustdio.so
+## Makefile.in for ICU - icuio.so
## Stephen F. Booth
## Source directory information
@@ -32,18 +32,18 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = io.res
endif
ifeq ($(OS390BATCH),1)
-BATCH_TARGET = $(BATCH_ICUIO_TARGET)
+BATCH_TARGET = $(BATCH_IO_TARGET)
BATCH_LIBS = $(BATCH_LIBICUUC) $(BATCH_LIBICUI18N) -lm
endif # OS390BATCH
-endif
+endif # ENABLE_SHARED
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
@@ -51,24 +51,31 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICUIO)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
DEFS += -DU_IO_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICUIO)
LIBS = $(LIBICUUC) $(LIBICUI18N) $(DEFAULT_LIBS)
OBJECTS = locbund.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o \
uscanf.o uscanf_p.o ustdio.o sprintf.o sscanf.o \
-ustream.o
-
-STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+ustream.o ucln_io.o
+## Header files to install
HEADERS = $(srcdir)/unicode/*.h
+STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check check-local
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local install-library install-headers dist \
+dist-local check check-local
## Clear suffix list
.SUFFIXES :
@@ -83,7 +90,7 @@ check: all check-local
all-local: $(ALL_TARGETS)
-install-local: all-local install-headers install-library
+install-local: install-headers install-library
install-library: all-local
$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
@@ -116,7 +123,6 @@ install-headers:
$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \
done
-
dist-local:
clean-local:
@@ -138,15 +144,14 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
-$(BATCH_TARGET): $(OBJECTS)
+$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
-endif # OS390BATCH
-
-endif
+endif # OS390BATCH
+endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -155,3 +160,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/io/io.vcproj b/Build/source/libs/icu-xetex/io/io.vcproj
index 4c6b27b1fc2..afc6a66e5f9 100644
--- a/Build/source/libs/icu-xetex/io/io.vcproj
+++ b/Build/source/libs/icu-xetex/io/io.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/icuio.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -39,10 +40,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuio34.dll"
+ OutputFile="..\..\bin\icuio36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuio34.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuio36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4ab00000"
ImportLibrary="..\..\lib\icuio.lib"/>
@@ -93,6 +94,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/icuio.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -106,11 +108,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icuio34d.dll"
+ OutputFile="..\..\bin\icuio36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icuio34d.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icuio36d.pdb"
BaseAddress="0x4ab00000"
ImportLibrary="..\..\lib\icuiod.lib"/>
<Tool
@@ -159,6 +161,9 @@
RelativePath=".\sscanf.c">
</File>
<File
+ RelativePath=".\ucln_io.c">
+ </File>
+ <File
RelativePath=".\ufile.c">
</File>
<File
@@ -202,6 +207,9 @@
RelativePath=".\locbund.h">
</File>
<File
+ RelativePath=".\ucln_io.h">
+ </File>
+ <File
RelativePath=".\ufile.h">
</File>
<File
diff --git a/Build/source/libs/icu-xetex/io/locbund.c b/Build/source/libs/icu-xetex/io/locbund.c
index 3d0f9cf5b2e..fd4935842a3 100644
--- a/Build/source/libs/icu-xetex/io/locbund.c
+++ b/Build/source/libs/icu-xetex/io/locbund.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -12,12 +12,10 @@
*
* Date Name Description
* 11/18/98 stephen Creation.
-* 12/10/1999 bobbyr@optiosoftware.com Fix for memory leak + string allocation bugs
+* 12/10/1999 bobbyr(at)optiosoftware.com Fix for memory leak + string allocation bugs
*******************************************************************************
*/
-#include <stdlib.h>
-
#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
@@ -25,9 +23,52 @@
#include "locbund.h"
#include "cmemory.h"
+#include "cstring.h"
+#include "ucln_io.h"
+#include "umutex.h"
#include "unicode/ustring.h"
#include "unicode/uloc.h"
+static UBool isFormatsInitialized = FALSE;
+static UNumberFormat *gPosixNumberFormat[ULOCALEBUNDLE_NUMBERFORMAT_COUNT];
+
+U_CDECL_BEGIN
+static UBool U_CALLCONV locbund_cleanup(void) {
+ int32_t style;
+ for (style = 0; style < ULOCALEBUNDLE_NUMBERFORMAT_COUNT; style++) {
+ unum_close(gPosixNumberFormat[style]);
+ gPosixNumberFormat[style] = NULL;
+ }
+ isFormatsInitialized = FALSE;
+ return TRUE;
+}
+U_CDECL_END
+
+
+static U_INLINE UNumberFormat * copyInvariantFormatter(ULocaleBundle *result, UNumberFormatStyle style) {
+ if (result->fNumberFormat[style-1] == NULL) {
+ UErrorCode status = U_ZERO_ERROR;
+ UBool needsInit;
+
+ UMTX_CHECK(NULL, gPosixNumberFormat[style-1] == NULL, needsInit);
+ if (needsInit) {
+ UNumberFormat *formatAlias = unum_open(style, NULL, 0, "en_US_POSIX", NULL, &status);
+
+ /* Cache upon first request. */
+ if (U_SUCCESS(status)) {
+ umtx_lock(NULL);
+ gPosixNumberFormat[style-1] = formatAlias;
+ ucln_io_registerCleanup(UCLN_IO_LOCBUND, locbund_cleanup);
+ umtx_unlock(NULL);
+ }
+ }
+
+ /* Copy the needed formatter. */
+ result->fNumberFormat[style-1] = unum_clone(gPosixNumberFormat[style-1], &status);
+ }
+ return result->fNumberFormat[style-1];
+}
+
ULocaleBundle*
u_locbund_init(ULocaleBundle *result, const char *loc)
{
@@ -39,7 +80,7 @@ u_locbund_init(ULocaleBundle *result, const char *loc)
if (loc == NULL) {
loc = uloc_getDefault();
}
-
+
uprv_memset(result, 0, sizeof(ULocaleBundle));
len = (int32_t)strlen(loc);
@@ -47,9 +88,11 @@ u_locbund_init(ULocaleBundle *result, const char *loc)
if(result->fLocale == 0) {
return 0;
}
-
- strcpy(result->fLocale, loc);
-
+
+ uprv_strcpy(result->fLocale, loc);
+
+ result->isInvariantLocale = uprv_strcmp(result->fLocale, "en_US_POSIX") == 0;
+
return result;
}
@@ -122,14 +165,19 @@ u_locbund_getNumberFormat(ULocaleBundle *bundle, UNumberFormatStyle style)
if (style >= UNUM_IGNORE) {
formatAlias = bundle->fNumberFormat[style-1];
if (formatAlias == NULL) {
- UErrorCode status = U_ZERO_ERROR;
- formatAlias = unum_open(style, NULL, 0, bundle->fLocale, NULL, &status);
- if (U_FAILURE(status)) {
- unum_close(formatAlias);
- formatAlias = NULL;
+ if (bundle->isInvariantLocale) {
+ formatAlias = copyInvariantFormatter(bundle, style);
}
else {
- bundle->fNumberFormat[style-1] = formatAlias;
+ UErrorCode status = U_ZERO_ERROR;
+ formatAlias = unum_open(style, NULL, 0, bundle->fLocale, NULL, &status);
+ if (U_FAILURE(status)) {
+ unum_close(formatAlias);
+ formatAlias = NULL;
+ }
+ else {
+ bundle->fNumberFormat[style-1] = formatAlias;
+ }
}
}
}
diff --git a/Build/source/libs/icu-xetex/io/locbund.h b/Build/source/libs/icu-xetex/io/locbund.h
index 5ec24edf261..f4ff449b1f1 100644
--- a/Build/source/libs/icu-xetex/io/locbund.h
+++ b/Build/source/libs/icu-xetex/io/locbund.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006s, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -31,6 +31,7 @@ typedef struct ULocaleBundle {
char *fLocale;
UNumberFormat *fNumberFormat[ULOCALEBUNDLE_NUMBERFORMAT_COUNT];
+ UBool isInvariantLocale;
} ULocaleBundle;
diff --git a/Build/source/libs/icu-xetex/io/ucln_io.c b/Build/source/libs/icu-xetex/io/ucln_io.c
new file mode 100644
index 00000000000..01a88e81c60
--- /dev/null
+++ b/Build/source/libs/icu-xetex/io/ucln_io.c
@@ -0,0 +1,51 @@
+/*
+******************************************************************************
+* *
+* Copyright (C) 2001-2006, International Business Machines *
+* Corporation and others. All Rights Reserved. *
+* *
+******************************************************************************
+* file name: ucln_io.c
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2006August11
+* created by: George Rhoten
+*/
+
+#include "ucln.h"
+#include "ucln_io.h"
+#include "umutex.h"
+#include "uassert.h"
+
+/* Leave this copyright notice here! It needs to go somewhere in this library. */
+static const char copyright[] = U_COPYRIGHT_STRING;
+
+static cleanupFunc *gCleanupFunctions[UCLN_IO_COUNT];
+
+static UBool io_cleanup(void)
+{
+ ECleanupIOType libType = UCLN_IO_START;
+
+ while (++libType<UCLN_IO_COUNT) {
+ if (gCleanupFunctions[libType])
+ {
+ gCleanupFunctions[libType]();
+ gCleanupFunctions[libType] = NULL;
+ }
+ }
+ return TRUE;
+}
+
+void ucln_io_registerCleanup(ECleanupIOType type,
+ cleanupFunc *func)
+{
+ U_ASSERT(UCLN_IO_START < type && type < UCLN_IO_COUNT);
+ ucln_registerCleanup(UCLN_IO, io_cleanup);
+ if (UCLN_IO_START < type && type < UCLN_IO_COUNT)
+ {
+ gCleanupFunctions[type] = func;
+ }
+}
+
diff --git a/Build/source/libs/icu-xetex/io/ucln_io.h b/Build/source/libs/icu-xetex/io/ucln_io.h
new file mode 100644
index 00000000000..e26c1b68833
--- /dev/null
+++ b/Build/source/libs/icu-xetex/io/ucln_io.h
@@ -0,0 +1,37 @@
+/*
+******************************************************************************
+* *
+* Copyright (C) 2001-2006, International Business Machines *
+* Corporation and others. All Rights Reserved. *
+* *
+******************************************************************************
+* file name: ucln_io.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2006August11
+* created by: George Rhoten
+*/
+
+#ifndef __UCLN_IO_H__
+#define __UCLN_IO_H__
+
+#include "unicode/utypes.h"
+#include "ucln.h"
+
+/*
+Please keep the order of enums declared in same order
+as the functions are suppose to be called. */
+typedef enum ECleanupIOType {
+ UCLN_IO_START = -1,
+ UCLN_IO_LOCBUND,
+ UCLN_IO_COUNT /* This must be last */
+} ECleanupIOType;
+
+/* Main library cleanup registration function. */
+/* See common/ucln.h for details on adding a cleanup function. */
+U_CFUNC void U_EXPORT2 ucln_io_registerCleanup(ECleanupIOType type,
+ cleanupFunc *func);
+
+#endif
diff --git a/Build/source/libs/icu-xetex/io/ufile.c b/Build/source/libs/icu-xetex/io/ufile.c
index bf818c738f6..4afabf5b857 100644
--- a/Build/source/libs/icu-xetex/io/ufile.c
+++ b/Build/source/libs/icu-xetex/io/ufile.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -20,8 +20,13 @@
/* define for fileno. */
#ifndef _XOPEN_SOURCE
+#if __STDC_VERSION__ >= 199901L
+/* It is invalid to compile an XPG3, XPG4, XPG4v2 or XPG5 application using c99 */
+#define _XOPEN_SOURCE 600
+#else
#define _XOPEN_SOURCE 4
#endif
+#endif
#include "locmap.h"
#include "unicode/ustdio.h"
@@ -42,9 +47,13 @@ u_finit(FILE *f,
const char *locale,
const char *codepage)
{
- UErrorCode status = U_ZERO_ERROR;
- UFILE *result = (UFILE*) uprv_malloc(sizeof(UFILE));
- if(result == NULL || f == NULL) {
+ UErrorCode status = U_ZERO_ERROR;
+ UFILE *result;
+ if(f == NULL) {
+ return 0;
+ }
+ result = (UFILE*) uprv_malloc(sizeof(UFILE));
+ if(result == NULL) {
return 0;
}
@@ -55,9 +64,9 @@ u_finit(FILE *f,
if (0 <= result->fFileno && result->fFileno <= 2) {
/* stdin, stdout and stderr need to be special cased for Windows 98 */
#if _MSC_VER >= 1400
- result->fFile = &__iob_func()[_fileno(f)];
+ result->fFile = &__iob_func()[_fileno(f)];
#else
- result->fFile = &_iob[_fileno(f)];
+ result->fFile = &_iob[_fileno(f)];
#endif
}
else
@@ -72,10 +81,6 @@ u_finit(FILE *f,
#if !UCONFIG_NO_FORMATTING
/* if locale is 0, use the default */
- if(locale == 0) {
- locale = uloc_getDefault();
- }
-
if(u_locbund_init(&result->str.fBundle, locale) == 0) {
/* DO NOT FCLOSE HERE! */
uprv_free(result);
@@ -146,10 +151,6 @@ u_fstropen(UChar *stringBuf,
#if !UCONFIG_NO_FORMATTING
/* if locale is 0, use the default */
- if(locale == 0) {
- locale = uloc_getDefault();
- }
-
if(u_locbund_init(&result->str.fBundle, locale) == 0) {
/* DO NOT FCLOSE HERE! */
uprv_free(result);
diff --git a/Build/source/libs/icu-xetex/io/ufmt_cmn.c b/Build/source/libs/icu-xetex/io/ufmt_cmn.c
index 855f1475b7e..e4e09033911 100644
--- a/Build/source/libs/icu-xetex/io/ufmt_cmn.c
+++ b/Build/source/libs/icu-xetex/io/ufmt_cmn.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -39,7 +39,7 @@ ufmt_digitvalue(UChar c)
((c>=LOWERCASE_A)&&(c<=LOWERCASE_Z)) ||
((c>=UPPERCASE_A)&&(c<=UPPERCASE_Z)) )
{
- return c - 0x0030 - (c >= 0x0041 ? (c >= 0x0061 ? 39 : 7) : 0);
+ return c - DIGIT_0 - (c >= 0x0041 ? (c >= 0x0061 ? 39 : 7) : 0);
}
else
{
@@ -56,8 +56,8 @@ ufmt_isdigit(UChar c,
return (UBool)(digitVal < radix && digitVal >= 0);
}
-#define TO_UC_DIGIT(a) a <= 9 ? (0x0030 + a) : (0x0037 + a)
-#define TO_LC_DIGIT(a) a <= 9 ? (0x0030 + a) : (0x0057 + a)
+#define TO_UC_DIGIT(a) a <= 9 ? (DIGIT_0 + a) : (0x0037 + a)
+#define TO_LC_DIGIT(a) a <= 9 ? (DIGIT_0 + a) : (0x0057 + a)
void
ufmt_64tou(UChar *buffer,
@@ -81,7 +81,7 @@ ufmt_64tou(UChar *buffer,
/* pad with zeroes to make it minDigits long */
if(minDigits != -1 && length < minDigits) {
while(length < minDigits && length < *len)
- buffer[length++] = 0x0030; /*zero padding */
+ buffer[length++] = DIGIT_0; /*zero padding */
}
/* reverse the buffer */
@@ -158,37 +158,64 @@ ufmt_uto64(const UChar *buffer,
return result;
}
+#define NIBBLE_PER_BYTE 2
void *
ufmt_utop(const UChar *buffer,
int32_t *len)
{
- /*
- TODO: Fix this code so that it will work with pointers that are 2<=sizeof(void*)<=16
- */
- const UChar *limit;
- int32_t count;
- int64_t result;
+ int32_t count, resultIdx, incVal, offset;
+ /* This union allows the pointer to be written as an array. */
+ union {
+ void *ptr;
+ uint8_t bytes[sizeof(void*)];
+ } result;
-
- /* intialize parameters */
- limit = buffer + *len;
- count = 0;
- result = 0;
-
- /* iterate through buffer */
- /* limit to sixteen iterations since that is the max that an int64_t can contain for pointer work */
- while(ufmt_isdigit(*buffer, 16) && buffer < limit) {
-
- /* read the next digit */
- result *= 16;
- result += ufmt_digitvalue(*buffer++);
-
- /* increment our count */
+ /* intialize variables */
+ count = 0;
+ offset = 0;
+ result.ptr = NULL;
+
+ /* Skip the leading zeros */
+ while(buffer[count] == DIGIT_0 || u_isspace(buffer[count])) {
+ count++;
+ offset++;
+ }
+
+ /* iterate through buffer, stop when you hit the end */
+ while(ufmt_isdigit(buffer[count], 16) && count < *len) {
+ /* increment the count consumed */
++count;
}
+
+ /* detect overflow */
+ if (count - offset > (int32_t)(sizeof(void*)*NIBBLE_PER_BYTE)) {
+ offset = count - (int32_t)(sizeof(void*)*NIBBLE_PER_BYTE);
+ }
+ /* Initialize the direction of the input */
+#if U_IS_BIG_ENDIAN
+ incVal = -1;
+ resultIdx = (int32_t)(sizeof(void*) - 1);
+#else
+ incVal = 1;
+ resultIdx = 0;
+#endif
+ /* Write how much was consumed. */
*len = count;
- return (void *)result;
+ while(--count >= offset) {
+ /* Get the first nibble of the byte */
+ uint8_t byte = (uint8_t)ufmt_digitvalue(buffer[count]);
+
+ if (count > offset) {
+ /* Get the second nibble of the byte when available */
+ byte = (uint8_t)(byte + (ufmt_digitvalue(buffer[--count]) << 4));
+ }
+ /* Write the byte into the array */
+ result.bytes[resultIdx] = byte;
+ resultIdx += incVal;
+ }
+
+ return result.ptr;
}
UChar*
diff --git a/Build/source/libs/icu-xetex/io/unicode/ustdio.h b/Build/source/libs/icu-xetex/io/unicode/ustdio.h
index d7140fefea3..4675e77c928 100644
--- a/Build/source/libs/icu-xetex/io/unicode/ustdio.h
+++ b/Build/source/libs/icu-xetex/io/unicode/ustdio.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -120,30 +120,30 @@
* %[*][format modifier][width][type modifier][format]
*
<table cellspacing="3">
-<tr><td>format</td><td>default<br>type</td><td>description</td></tr>
-<tr><td>%E</td><td>double</td><td>Scientific with an uppercase exponent</td></tr>
-<tr><td>%e</td><td>double</td><td>Scientific with a lowercase exponent</td></tr>
-<tr><td>%G</td><td>double</td><td>Use %E or %f for best format</td></tr>
-<tr><td>%g</td><td>double</td><td>Use %e or %f for best format</td></tr>
-<tr><td>%f</td><td>double</td><td>Simple floating point without the exponent</td></tr>
-<tr><td>%X</td><td>int32_t</td><td>ustdio special uppercase hex radix formatting</td></tr>
-<tr><td>%x</td><td>int32_t</td><td>ustdio special lowercase hex radix formatting</td></tr>
-<tr><td>%d</td><td>int32_t</td><td>Decimal format</td></tr>
-<tr><td>%i</td><td>int32_t</td><td>Same as %d</td></tr>
-<tr><td>%n</td><td>int32_t</td><td>count (write the number of UTF-16 codeunits read/written)</td></tr>
-<tr><td>%o</td><td>int32_t</td><td>ustdio special octal radix formatting</td></tr>
-<tr><td>%u</td><td>uint32_t</td><td>Decimal format</td></tr>
-<tr><td>%p</td><td>void *</td><td>Prints the pointer value</td></tr>
-<tr><td>%s</td><td>char *</td><td>Use default converter or specified converter from fopen</td></tr>
-<tr><td>%c</td><td>char</td><td>Use default converter or specified converter from fopen<br>
-When width is specified, this acts like a non-NULL-terminated char * string.<br>
+<tr><td>format</td><td>default<br>printf<br>type</td><td>default<br>scanf<br>type</td><td>description</td></tr>
+<tr><td>%E</td><td>double</td><td>float</td><td>Scientific with an uppercase exponent</td></tr>
+<tr><td>%e</td><td>double</td><td>float</td><td>Scientific with a lowercase exponent</td></tr>
+<tr><td>%G</td><td>double</td><td>float</td><td>Use %E or %f for best format</td></tr>
+<tr><td>%g</td><td>double</td><td>float</td><td>Use %e or %f for best format</td></tr>
+<tr><td>%f</td><td>double</td><td>float</td><td>Simple floating point without the exponent</td></tr>
+<tr><td>%X</td><td>int32_t</td><td>int32_t</td><td>ustdio special uppercase hex radix formatting</td></tr>
+<tr><td>%x</td><td>int32_t</td><td>int32_t</td><td>ustdio special lowercase hex radix formatting</td></tr>
+<tr><td>%d</td><td>int32_t</td><td>int32_t</td><td>Decimal format</td></tr>
+<tr><td>%i</td><td>int32_t</td><td>int32_t</td><td>Same as %d</td></tr>
+<tr><td>%n</td><td>int32_t</td><td>int32_t</td><td>count (write the number of UTF-16 codeunits read/written)</td></tr>
+<tr><td>%o</td><td>int32_t</td><td>int32_t</td><td>ustdio special octal radix formatting</td></tr>
+<tr><td>%u</td><td>uint32_t</td><td>uint32_t</td><td>Decimal format</td></tr>
+<tr><td>%p</td><td>void *</td><td>void *</td><td>Prints the pointer value</td></tr>
+<tr><td>%s</td><td>char *</td><td>char *</td><td>Use default converter or specified converter from fopen</td></tr>
+<tr><td>%c</td><td>char</td><td>char</td><td>Use default converter or specified converter from fopen<br>
+When width is specified for scanf, this acts like a non-NULL-terminated char * string.<br>
By default, only one char is written.</td></tr>
-<tr><td>%S</td><td>UChar *</td><td>Null terminated UTF-16 string</td></tr>
-<tr><td>%C</td><td>UChar</td><td>16-bit Unicode code unit<br>
-When width is specified, this acts like a non-NULL-terminated UChar * string<br>
+<tr><td>%S</td><td>UChar *</td><td>UChar *</td><td>Null terminated UTF-16 string</td></tr>
+<tr><td>%C</td><td>UChar</td><td>UChar</td><td>16-bit Unicode code unit<br>
+When width is specified for scanf, this acts like a non-NULL-terminated UChar * string<br>
By default, only one codepoint is written.</td></tr>
-<tr><td>%[]</td><td>UChar *</td><td>(scanf only) Null terminated UTF-16 string which contains the filtered set of characters specified by the UnicodeSet</td></tr>
-<tr><td>%%</td><td>N/A</td><td>Show a percent sign</td></tr>
+<tr><td>%[]</td><td>&nbsp;</td><td>UChar *</td><td>Null terminated UTF-16 string which contains the filtered set of characters specified by the UnicodeSet</td></tr>
+<tr><td>%%</td><td>&nbsp;</td><td>&nbsp;</td><td>Show a percent sign</td></tr>
</table>
Format modifiers
@@ -186,13 +186,14 @@ scanf modifier
/**
* When an end of file is encountered, this value can be returned.
* @see u_fgetc
- * @draft 3.0
+ * @stable 3.0
*/
#define U_EOF 0xFFFF
-/** Forward declaration of a Unicode-aware file @draft 3.0 */
+/** Forward declaration of a Unicode-aware file @stable 3.0 */
typedef struct UFILE UFILE;
+#ifndef U_HIDE_DRAFT_API
/**
* Enum for which direction of stream a transliterator applies to.
* @see u_fsettransliterator
@@ -204,6 +205,8 @@ typedef enum {
U_READWRITE =3 /* == (U_READ | U_WRITE) */
} UFileDirection;
+#endif /* U_HIDE_DRAFT_API */
+
/**
* Open a UFILE.
* A UFILE is a wrapper around a FILE* that is locale and codepage aware.
@@ -221,7 +224,7 @@ typedef enum {
* @return A new UFILE, or NULL if an error occurred.
* @draft 3.0
*/
-U_CAPI UFILE* U_EXPORT2
+U_DRAFT UFILE* U_EXPORT2
u_fopen(const char *filename,
const char *perm,
const char *locale,
@@ -240,7 +243,7 @@ u_fopen(const char *filename,
* @return A new UFILE, or NULL if an error occurred.
* @draft 3.0
*/
-U_CAPI UFILE* U_EXPORT2
+U_DRAFT UFILE* U_EXPORT2
u_finit(FILE *f,
const char *locale,
const char *codepage);
@@ -259,7 +262,7 @@ u_finit(FILE *f,
* @return A new UFILE, or NULL if an error occurred.
* @draft 3.0
*/
-U_CAPI UFILE* U_EXPORT2
+U_DRAFT UFILE* U_EXPORT2
u_fstropen(UChar *stringBuf,
int32_t capacity,
const char *locale);
@@ -269,7 +272,7 @@ u_fstropen(UChar *stringBuf,
* @param file The UFILE to close.
* @draft 3.0
*/
-U_CAPI void U_EXPORT2
+U_DRAFT void U_EXPORT2
u_fclose(UFILE *file);
/**
@@ -280,7 +283,7 @@ u_fclose(UFILE *file);
* not end of file.
* @draft 3.0
*/
-U_CAPI UBool U_EXPORT2
+U_DRAFT UBool U_EXPORT2
u_feof(UFILE *f);
/**
@@ -291,7 +294,7 @@ u_feof(UFILE *f);
* @param file The UFILE to flush.
* @draft 3.0
*/
-U_CAPI void U_EXPORT2
+U_DRAFT void U_EXPORT2
u_fflush(UFILE *file);
/**
@@ -299,7 +302,7 @@ u_fflush(UFILE *file);
* @param file The UFILE to rewind.
* @draft 3.0
*/
-U_CAPI void
+U_DRAFT void
u_frewind(UFILE *file);
/**
@@ -308,7 +311,7 @@ u_frewind(UFILE *file);
* @return A FILE*, owned by the UFILE. The FILE <EM>must not</EM> be closed.
* @draft 3.0
*/
-U_CAPI FILE* U_EXPORT2
+U_DRAFT FILE* U_EXPORT2
u_fgetfile(UFILE *f);
#if !UCONFIG_NO_FORMATTING
@@ -321,7 +324,7 @@ u_fgetfile(UFILE *f);
* @return The locale whose conventions are used to format and parse output.
* @draft 3.0
*/
-U_CAPI const char* U_EXPORT2
+U_DRAFT const char* U_EXPORT2
u_fgetlocale(UFILE *file);
/**
@@ -332,7 +335,7 @@ u_fgetlocale(UFILE *file);
* @return NULL if successful, otherwise a negative number.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fsetlocale(UFILE *file,
const char *locale);
@@ -347,7 +350,7 @@ u_fsetlocale(UFILE *file,
* or NULL if an error occurred.
* @draft 3.0
*/
-U_CAPI const char* U_EXPORT2
+U_DRAFT const char* U_EXPORT2
u_fgetcodepage(UFILE *file);
/**
@@ -365,7 +368,7 @@ u_fgetcodepage(UFILE *file);
* @see u_frewind
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fsetcodepage(const char *codepage,
UFILE *file);
@@ -376,7 +379,7 @@ u_fsetcodepage(const char *codepage,
* @return alias to the converter
* @draft 3.0
*/
-U_CAPI UConverter* U_EXPORT2 u_fgetConverter(UFILE *f);
+U_DRAFT UConverter* U_EXPORT2 u_fgetConverter(UFILE *f);
#if !UCONFIG_NO_FORMATTING
@@ -390,7 +393,7 @@ U_CAPI UConverter* U_EXPORT2 u_fgetConverter(UFILE *f);
* @return The number of Unicode characters written to <TT>f</TT>.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fprintf(UFILE *f,
const char *patternSpecification,
... );
@@ -407,7 +410,7 @@ u_fprintf(UFILE *f,
* @see u_fprintf
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vfprintf(UFILE *f,
const char *patternSpecification,
va_list ap);
@@ -420,7 +423,7 @@ u_vfprintf(UFILE *f,
* @return The number of Unicode characters written to <TT>f</TT>.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fprintf_u(UFILE *f,
const UChar *patternSpecification,
... );
@@ -437,7 +440,7 @@ u_fprintf_u(UFILE *f,
* @see u_fprintf_u
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vfprintf_u(UFILE *f,
const UChar *patternSpecification,
va_list ap);
@@ -452,7 +455,7 @@ u_vfprintf_u(UFILE *f,
* @see u_file_write
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fputs(const UChar *s,
UFILE *f);
@@ -463,7 +466,7 @@ u_fputs(const UChar *s,
* @return The character written if successful, EOF otherwise.
* @draft 3.0
*/
-U_CAPI UChar32 U_EXPORT2
+U_DRAFT UChar32 U_EXPORT2
u_fputc(UChar32 uc,
UFILE *f);
@@ -478,7 +481,7 @@ u_fputc(UChar32 uc,
* @see u_fputs
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_file_write(const UChar *ustring,
int32_t count,
UFILE *f);
@@ -496,7 +499,7 @@ u_file_write(const UChar *ustring,
* if an error occurred.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fscanf(UFILE *f,
const char *patternSpecification,
... );
@@ -514,7 +517,7 @@ u_fscanf(UFILE *f,
* @see u_fscanf
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vfscanf(UFILE *f,
const char *patternSpecification,
va_list ap);
@@ -528,7 +531,7 @@ u_vfscanf(UFILE *f,
* if an error occurred.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_fscanf_u(UFILE *f,
const UChar *patternSpecification,
... );
@@ -546,7 +549,7 @@ u_fscanf_u(UFILE *f,
* @see u_fscanf_u
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vfscanf_u(UFILE *f,
const UChar *patternSpecification,
va_list ap);
@@ -564,7 +567,7 @@ u_vfscanf_u(UFILE *f,
* @return A pointer to <TT>s</TT>, or NULL if no characters were available.
* @draft 3.0
*/
-U_CAPI UChar* U_EXPORT2
+U_DRAFT UChar* U_EXPORT2
u_fgets(UChar *s,
int32_t n,
UFILE *f);
@@ -578,7 +581,7 @@ u_fgets(UChar *s,
* @return The UChar value read, or U+FFFF if no character was available.
* @draft 3.0
*/
-U_CAPI UChar U_EXPORT2
+U_DRAFT UChar U_EXPORT2
u_fgetc(UFILE *f);
/**
@@ -591,7 +594,7 @@ u_fgetc(UFILE *f);
* @see u_unescape()
* @draft 3.0
*/
-U_CAPI UChar32 U_EXPORT2
+U_DRAFT UChar32 U_EXPORT2
u_fgetcx(UFILE *f);
/**
@@ -605,7 +608,7 @@ u_fgetcx(UFILE *f);
* @return The UChar32 value put back if successful, U_EOF otherwise.
* @draft 3.0
*/
-U_CAPI UChar32 U_EXPORT2
+U_DRAFT UChar32 U_EXPORT2
u_fungetc(UChar32 c,
UFILE *f);
@@ -619,7 +622,7 @@ u_fungetc(UChar32 c,
* @return The number of Unicode characters read.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_file_read(UChar *chars,
int32_t count,
UFILE *f);
@@ -643,7 +646,7 @@ u_file_read(UChar *chars,
* on the result of this function.
* @draft 3.0
*/
-U_CAPI UTransliterator* U_EXPORT2
+U_DRAFT UTransliterator* U_EXPORT2
u_fsettransliterator(UFILE *file, UFileDirection direction,
UTransliterator *adopt, UErrorCode *status);
@@ -664,7 +667,7 @@ u_fsettransliterator(UFILE *file, UFileDirection direction,
* does not include the terminating null character.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_sprintf(UChar *buffer,
const char *patternSpecification,
... );
@@ -685,7 +688,7 @@ u_sprintf(UChar *buffer,
* does not include the terminating null character.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_snprintf(UChar *buffer,
int32_t count,
const char *patternSpecification,
@@ -704,7 +707,7 @@ u_snprintf(UChar *buffer,
* @see u_sprintf
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsprintf(UChar *buffer,
const char *patternSpecification,
va_list ap);
@@ -728,7 +731,7 @@ u_vsprintf(UChar *buffer,
* @see u_sprintf
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsnprintf(UChar *buffer,
int32_t count,
const char *patternSpecification,
@@ -743,7 +746,7 @@ u_vsnprintf(UChar *buffer,
* @return The number of Unicode characters written to <TT>buffer</TT>.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_sprintf_u(UChar *buffer,
const UChar *patternSpecification,
... );
@@ -763,7 +766,7 @@ u_sprintf_u(UChar *buffer,
* @return The number of Unicode characters written to <TT>buffer</TT>.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_snprintf_u(UChar *buffer,
int32_t count,
const UChar *patternSpecification,
@@ -782,7 +785,7 @@ u_snprintf_u(UChar *buffer,
* @see u_sprintf_u
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsprintf_u(UChar *buffer,
const UChar *patternSpecification,
va_list ap);
@@ -806,7 +809,7 @@ u_vsprintf_u(UChar *buffer,
* @see u_sprintf_u
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsnprintf_u(UChar *buffer,
int32_t count,
const UChar *patternSpecification,
@@ -824,7 +827,7 @@ u_vsnprintf_u(UChar *buffer,
* if an error occurred.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_sscanf(const UChar *buffer,
const char *patternSpecification,
... );
@@ -843,7 +846,7 @@ u_sscanf(const UChar *buffer,
* @see u_sscanf
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsscanf(const UChar *buffer,
const char *patternSpecification,
va_list ap);
@@ -858,7 +861,7 @@ u_vsscanf(const UChar *buffer,
* if an error occurred.
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_sscanf_u(const UChar *buffer,
const UChar *patternSpecification,
... );
@@ -877,7 +880,7 @@ u_sscanf_u(const UChar *buffer,
* @see u_sscanf_u
* @draft 3.0
*/
-U_CAPI int32_t U_EXPORT2
+U_DRAFT int32_t U_EXPORT2
u_vsscanf_u(const UChar *buffer,
const UChar *patternSpecification,
va_list ap);
diff --git a/Build/source/libs/icu-xetex/io/unicode/ustream.h b/Build/source/libs/icu-xetex/io/unicode/ustream.h
index fb730ea0b89..3ba7c4cb7dc 100644
--- a/Build/source/libs/icu-xetex/io/unicode/ustream.h
+++ b/Build/source/libs/icu-xetex/io/unicode/ustream.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2005, International Business Machines
+* Copyright (C) 2001-2006 International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* FILE NAME : ustream.h
@@ -36,7 +36,7 @@ U_NAMESPACE_BEGIN
* the characters in a UnicodeString to an ostream. The UChars in the
* UnicodeString are converted to the char based ostream with the default
* converter.
- * @draft 3.0
+ * @stable 3.0
*/
U_IO_API std::ostream & U_EXPORT2 operator<<(std::ostream& stream, const UnicodeString& s);
@@ -44,7 +44,7 @@ U_IO_API std::ostream & U_EXPORT2 operator<<(std::ostream& stream, const Unicode
* Write the contents from a C++ istream to a UnicodeString. The UChars in the
* UnicodeString are converted from the char based istream with the default
* converter.
- * @draft 3.0
+ * @stable 3.0
*/
U_IO_API std::istream & U_EXPORT2 operator>>(std::istream& stream, UnicodeString& s);
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/io/uprintf.h b/Build/source/libs/icu-xetex/io/uprintf.h
index 6d38cc37e99..4b538451023 100644
--- a/Build/source/libs/icu-xetex/io/uprintf.h
+++ b/Build/source/libs/icu-xetex/io/uprintf.h
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -34,6 +34,7 @@ typedef struct u_printf_spec_info {
int32_t fPrecision; /* Precision */
int32_t fWidth; /* Width */
+ UChar fOrigSpec; /* Conversion specification */
UChar fSpec; /* Conversion specification */
UChar fPadChar; /* Padding character */
diff --git a/Build/source/libs/icu-xetex/io/uprntf_p.c b/Build/source/libs/icu-xetex/io/uprntf_p.c
index 6f6531efea6..08236762210 100644
--- a/Build/source/libs/icu-xetex/io/uprntf_p.c
+++ b/Build/source/libs/icu-xetex/io/uprntf_p.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -615,7 +615,13 @@ u_printf_scientific_handler(const u_printf_stream_handler *handler,
/* set the appropriate flags and number of decimal digits on the formatter */
if(info->fPrecision != -1) {
/* set the # of decimal digits */
- unum_setAttribute(format, UNUM_FRACTION_DIGITS, info->fPrecision);
+ if (info->fOrigSpec == (UChar)0x65 /* e */ || info->fOrigSpec == (UChar)0x45 /* E */) {
+ unum_setAttribute(format, UNUM_FRACTION_DIGITS, info->fPrecision);
+ }
+ else {
+ unum_setAttribute(format, UNUM_MIN_FRACTION_DIGITS, 1);
+ unum_setAttribute(format, UNUM_MAX_FRACTION_DIGITS, info->fPrecision);
+ }
}
else if(info->fAlt) {
/* '#' means always show decimal point */
@@ -1076,19 +1082,10 @@ u_printf_parse(const u_printf_stream_handler *streamHandler,
spec.fPrecisionPos = -1;
spec.fArgPos = -1;
+ uprv_memset(info, 0, sizeof(*info));
info->fPrecision = -1;
info->fWidth = -1;
- info->fSpec = 0x0000;
info->fPadChar = 0x0020;
- info->fAlt = FALSE;
- info->fSpace = FALSE;
- info->fLeft = FALSE;
- info->fShowSign = FALSE;
- info->fZero = FALSE;
- info->fIsLongDouble = FALSE;
- info->fIsShort = FALSE;
- info->fIsLong = FALSE;
- info->fIsLongLong = FALSE;
/* skip over the initial '%' */
alias++;
@@ -1287,6 +1284,7 @@ u_printf_parse(const u_printf_stream_handler *streamHandler,
/* finally, get the specifier letter */
info->fSpec = *alias++;
+ info->fOrigSpec = info->fSpec;
/* fill in the precision and width, if specified out of line */
diff --git a/Build/source/libs/icu-xetex/io/uscanf_p.c b/Build/source/libs/icu-xetex/io/uscanf_p.c
index 0fa7e68dde4..804f9a55de4 100644
--- a/Build/source/libs/icu-xetex/io/uscanf_p.c
+++ b/Build/source/libs/icu-xetex/io/uscanf_p.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -306,6 +306,7 @@ typedef struct u_scanf_info {
} u_scanf_info;
#define USCANF_NUM_FMT_HANDLERS 108
+#define USCANF_SYMBOL_BUFFER_SIZE 8
/* We do not use handlers for 0-0x1f */
#define USCANF_BASE_FMT_HANDLERS 0x20
@@ -332,6 +333,43 @@ u_scanf_skip_leading_ws(UFILE *input,
return count;
}
+/* TODO: Is always skipping the prefix symbol as a positive sign a good idea in all locales? */
+static int32_t
+u_scanf_skip_leading_positive_sign(UFILE *input,
+ UNumberFormat *format,
+ UErrorCode *status)
+{
+ UChar c;
+ int32_t count = 0;
+ UBool isNotEOF;
+ UChar plusSymbol[USCANF_SYMBOL_BUFFER_SIZE];
+ int32_t symbolLen;
+ UErrorCode localStatus = U_ZERO_ERROR;
+
+ if (U_SUCCESS(*status)) {
+ symbolLen = unum_getSymbol(format,
+ UNUM_PLUS_SIGN_SYMBOL,
+ plusSymbol,
+ sizeof(plusSymbol)/sizeof(*plusSymbol),
+ &localStatus);
+
+ if (U_SUCCESS(localStatus)) {
+ /* skip all leading ws in the input */
+ while( (isNotEOF = ufile_getch(input, &c)) && (count < symbolLen && c == plusSymbol[count]) )
+ {
+ count++;
+ }
+
+ /* put the final character back on the input */
+ if(isNotEOF) {
+ u_fungetc(c, input);
+ }
+ }
+ }
+
+ return count;
+}
+
static int32_t
u_scanf_simple_percent_handler(UFILE *input,
u_scanf_spec_info *info,
@@ -366,6 +404,7 @@ u_scanf_count_handler(UFILE *input,
else
*(int32_t*)(args[0].ptrValue) = (int32_t)(UINT32_MAX & info->fWidth);
}
+ *argConverted = 0;
/* we converted 0 args */
return 0;
@@ -383,11 +422,12 @@ u_scanf_double_handler(UFILE *input,
double num;
UNumberFormat *format;
int32_t parsePos = 0;
+ int32_t skipped;
UErrorCode status = U_ZERO_ERROR;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -406,11 +446,19 @@ u_scanf_double_handler(UFILE *input,
if(format == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ skipped += u_scanf_skip_leading_positive_sign(input, format, &status);
+
/* parse the number */
num = unum_parseDouble(format, input->str.fPos, len, &parsePos, &status);
if (!info->fSkipArg) {
- *(double*)(args[0].ptrValue) = num;
+ if (info->fIsLong)
+ *(double*)(args[0].ptrValue) = num;
+ else if (info->fIsLongDouble)
+ *(long double*)(args[0].ptrValue) = num;
+ else
+ *(float*)(args[0].ptrValue) = (float)num;
}
/* mask off any necessary bits */
@@ -422,7 +470,7 @@ u_scanf_double_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return parsePos;
+ return parsePos + skipped;
}
static int32_t
@@ -437,11 +485,12 @@ u_scanf_scientific_handler(UFILE *input,
double num;
UNumberFormat *format;
int32_t parsePos = 0;
+ int32_t skipped;
UErrorCode status = U_ZERO_ERROR;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -460,11 +509,19 @@ u_scanf_scientific_handler(UFILE *input,
if(format == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ skipped += u_scanf_skip_leading_positive_sign(input, format, &status);
+
/* parse the number */
num = unum_parseDouble(format, input->str.fPos, len, &parsePos, &status);
if (!info->fSkipArg) {
- *(double*)(args[0].ptrValue) = num;
+ if (info->fIsLong)
+ *(double*)(args[0].ptrValue) = num;
+ else if (info->fIsLongDouble)
+ *(long double*)(args[0].ptrValue) = num;
+ else
+ *(float*)(args[0].ptrValue) = (float)num;
}
/* mask off any necessary bits */
@@ -476,7 +533,7 @@ u_scanf_scientific_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return parsePos;
+ return parsePos + skipped;
}
static int32_t
@@ -487,12 +544,13 @@ u_scanf_scidbl_handler(UFILE *input,
int32_t *fmtConsumed,
int32_t *argConverted)
{
- int32_t len;
+ int32_t len;
double num;
UNumberFormat *scientificFormat, *genericFormat;
/*int32_t scientificResult, genericResult;*/
double scientificResult, genericResult;
int32_t scientificParsePos = 0, genericParsePos = 0, parsePos = 0;
+ int32_t skipped;
UErrorCode scientificStatus = U_ZERO_ERROR;
UErrorCode genericStatus = U_ZERO_ERROR;
@@ -504,7 +562,7 @@ u_scanf_scidbl_handler(UFILE *input,
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -524,6 +582,9 @@ u_scanf_scidbl_handler(UFILE *input,
if(scientificFormat == 0 || genericFormat == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ skipped += u_scanf_skip_leading_positive_sign(input, genericFormat, &genericStatus);
+
/* parse the number using each format*/
scientificResult = unum_parseDouble(scientificFormat, input->str.fPos, len,
@@ -548,7 +609,12 @@ u_scanf_scidbl_handler(UFILE *input,
input->str.fPos += parsePos;
if (!info->fSkipArg) {
- *(double*)(args[0].ptrValue) = num;
+ if (info->fIsLong)
+ *(double*)(args[0].ptrValue) = num;
+ else if (info->fIsLongDouble)
+ *(long double*)(args[0].ptrValue) = num;
+ else
+ *(float*)(args[0].ptrValue) = (float)num;
}
/* mask off any necessary bits */
@@ -557,7 +623,7 @@ u_scanf_scidbl_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return parsePos;
+ return parsePos + skipped;
}
static int32_t
@@ -572,12 +638,13 @@ u_scanf_integer_handler(UFILE *input,
void *num = (void*) (args[0].ptrValue);
UNumberFormat *format;
int32_t parsePos = 0;
+ int32_t skipped;
UErrorCode status = U_ZERO_ERROR;
int64_t result;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -596,6 +663,9 @@ u_scanf_integer_handler(UFILE *input,
if(format == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ skipped += u_scanf_skip_leading_positive_sign(input, format, &status);
+
/* parse the number */
result = unum_parseInt64(format, input->str.fPos, len, &parsePos, &status);
@@ -614,7 +684,7 @@ u_scanf_integer_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return parsePos;
+ return parsePos + skipped;
}
static int32_t
@@ -641,11 +711,12 @@ u_scanf_percent_handler(UFILE *input,
double num;
UNumberFormat *format;
int32_t parsePos = 0;
+ int32_t skipped;
UErrorCode status = U_ZERO_ERROR;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -664,6 +735,9 @@ u_scanf_percent_handler(UFILE *input,
if(format == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ skipped += u_scanf_skip_leading_positive_sign(input, format, &status);
+
/* parse the number */
num = unum_parseDouble(format, input->str.fPos, len, &parsePos, &status);
@@ -698,12 +772,13 @@ u_scanf_string_handler(UFILE *input,
char *limit;
UErrorCode status = U_ZERO_ERROR;
int32_t count;
+ int32_t skipped = 0;
UChar c;
UBool isNotEOF = FALSE;
/* skip all ws in the input */
if (info->fIsString) {
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
}
/* get the string one character at a time, truncating to the width */
@@ -762,7 +837,7 @@ u_scanf_string_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return count;
+ return count + skipped;
}
static int32_t
@@ -791,12 +866,13 @@ u_scanf_ustring_handler(UFILE *input,
UChar *arg = (UChar*)(args[0].ptrValue);
UChar *alias = arg;
int32_t count;
+ int32_t skipped = 0;
UChar c;
UBool isNotEOF = FALSE;
/* skip all ws in the input */
if (info->fIsString) {
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
}
/* get the string one character at a time, truncating to the width */
@@ -830,7 +906,7 @@ u_scanf_ustring_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return count;
+ return count + skipped;
}
static int32_t
@@ -860,11 +936,12 @@ u_scanf_spellout_handler(UFILE *input,
double num;
UNumberFormat *format;
int32_t parsePos = 0;
+ int32_t skipped;
UErrorCode status = U_ZERO_ERROR;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -883,6 +960,10 @@ u_scanf_spellout_handler(UFILE *input,
if(format == 0)
return 0;
+ /* Skip the positive prefix. ICU normally can't handle this due to strict parsing. */
+ /* This is not applicable to RBNF. */
+ /*skipped += u_scanf_skip_leading_positive_sign(input, format, &status);*/
+
/* parse the number */
num = unum_parseDouble(format, input->str.fPos, len, &parsePos, &status);
@@ -899,7 +980,7 @@ u_scanf_spellout_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return parsePos;
+ return parsePos + skipped;
}
static int32_t
@@ -911,11 +992,12 @@ u_scanf_hex_handler(UFILE *input,
int32_t *argConverted)
{
int32_t len;
+ int32_t skipped;
void *num = (void*) (args[0].ptrValue);
int64_t result;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -954,7 +1036,7 @@ u_scanf_hex_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return len;
+ return len + skipped;
}
static int32_t
@@ -965,12 +1047,13 @@ u_scanf_octal_handler(UFILE *input,
int32_t *fmtConsumed,
int32_t *argConverted)
{
- int32_t len;
- void *num = (void*) (args[0].ptrValue);
- int64_t result;
+ int32_t len;
+ int32_t skipped;
+ void *num = (void*) (args[0].ptrValue);
+ int64_t result;
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -1000,7 +1083,7 @@ u_scanf_octal_handler(UFILE *input,
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return len;
+ return len + skipped;
}
static int32_t
@@ -1012,12 +1095,13 @@ u_scanf_pointer_handler(UFILE *input,
int32_t *argConverted)
{
int32_t len;
+ int32_t skipped;
void *result;
void **p = (void**)(args[0].ptrValue);
/* skip all ws in the input */
- u_scanf_skip_leading_ws(input, info->fPadChar);
+ skipped = u_scanf_skip_leading_ws(input, info->fPadChar);
/* fill the input's internal buffer */
ufile_fill_uchar_buffer(input);
@@ -1030,37 +1114,6 @@ u_scanf_pointer_handler(UFILE *input,
len = ufmt_min(len, info->fWidth);
}
-#ifdef OS400
- /* TODO: Fix this code so that it will work on all platforms */
- {
- int64_t result[2];
- int32_t lenOrig = len;
-
- /* Make sure that we don't consume too much */
- if (len > (int32_t)(sizeof(int64_t)*2)) {
- len = (int32_t)(sizeof(int64_t)*2);
- }
-
- /* parse the pointer - set first half of big endian pointer */
- result[0] = (int64_t)ufmt_utop(input->str.fPos, &len);
-
- /* update the input's position to reflect consumed data */
- input->str.fPos += len;
- len = lenOrig - len;
-
- /* Make sure that we don't consume too much */
- if (len > (int32_t)(sizeof(int64_t)*2)) {
- len = (int32_t)(sizeof(int64_t)*2);
- }
-
- /* parse the pointer - set second half of big endian pointer */
- result[1] = (int64_t)ufmt_utop(input->str.fPos, &len);
-
- if (!info->fSkipArg) {
- p = *((void **)result);
- }
- }
-#else
/* Make sure that we don't consume too much */
if (len > (int32_t)(sizeof(void*)*2)) {
len = (int32_t)(sizeof(void*)*2);
@@ -1073,14 +1126,12 @@ u_scanf_pointer_handler(UFILE *input,
*p = result;
}
-#endif
-
/* update the input's position to reflect consumed data */
input->str.fPos += len;
/* we converted 1 arg */
*argConverted = !info->fSkipArg;
- return len;
+ return len + skipped;
}
static int32_t
diff --git a/Build/source/libs/icu-xetex/io/ustdio.c b/Build/source/libs/icu-xetex/io/ustdio.c
index 051babae750..04dd2f95fca 100644
--- a/Build/source/libs/icu-xetex/io/ustdio.c
+++ b/Build/source/libs/icu-xetex/io/ustdio.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -36,9 +36,6 @@
#define DELIM_LS 0x2028
#define DELIM_PS 0x2029
-/* Leave this copyright notice here! */
-static const char copyright[] = U_COPYRIGHT_STRING;
-
/* TODO: is this correct for all codepages? Should we just use \n and let the converter handle it? */
#ifdef U_WINDOWS
static const UChar DELIMITERS [] = { DELIM_CR, DELIM_LF, 0x0000 };
@@ -299,7 +296,6 @@ u_file_write_flush(const UChar *chars,
/* Set up conversion parameters */
UErrorCode status = U_ZERO_ERROR;
const UChar *mySource = chars;
- const UChar *sourceAlias = chars;
const UChar *mySourceEnd;
char charBuffer[UFILE_CHARBUFFER_SIZE];
char *myTarget = charBuffer;
@@ -315,7 +311,6 @@ u_file_write_flush(const UChar *chars,
{
/* Do the transliteration */
mySource = u_file_translit(f, chars, &count, flushTranslit);
- sourceAlias = mySource;
}
#endif
@@ -336,7 +331,6 @@ u_file_write_flush(const UChar *chars,
/* Perform the conversion in a loop */
do {
status = U_ZERO_ERROR;
- sourceAlias = mySource;
if(f->fConverter != NULL) { /* We have a valid converter */
ucnv_fromUnicode(f->fConverter,
&myTarget,
diff --git a/Build/source/libs/icu-xetex/io/ustream.cpp b/Build/source/libs/icu-xetex/io/ustream.cpp
index 03bdde0ab03..0426c804374 100644
--- a/Build/source/libs/icu-xetex/io/ustream.cpp
+++ b/Build/source/libs/icu-xetex/io/ustream.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2001-2004, International Business Machines
+* Copyright (C) 2001-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* FILE NAME : ustream.cpp
@@ -103,20 +103,25 @@ operator>>(STD_ISTREAM& stream, UnicodeString& str)
}
/* Was the character consumed? */
if (us != uBuffer) {
- U16_GET(uBuffer, 0, 0, us-uBuffer, ch32);
- if (u_isWhitespace(ch32)) {
- if (!intialWhitespace) {
- buffer[idx++] = ch;
- while (idx > 0) {
- stream.putback(buffer[--idx]);
+ /* Reminder: ibm-1390 & JISX0213 can output 2 Unicode code points */
+ int32_t uBuffSize = us-uBuffer;
+ int32_t uBuffIdx = 0;
+ while (uBuffIdx < uBuffSize) {
+ U16_NEXT(uBuffer, uBuffIdx, uBuffSize, ch32);
+ if (u_isWhitespace(ch32)) {
+ if (!intialWhitespace) {
+ buffer[idx++] = ch;
+ while (idx > 0) {
+ stream.putback(buffer[--idx]);
+ }
+ goto STOP_READING;
}
- break;
+ /* else skip intialWhitespace */
+ }
+ else {
+ str.append(ch32);
+ intialWhitespace = FALSE;
}
- /* else skip intialWhitespace */
- }
- else {
- str.append(ch32);
- intialWhitespace = FALSE;
}
idx = 0;
}
@@ -124,6 +129,7 @@ operator>>(STD_ISTREAM& stream, UnicodeString& str)
buffer[idx++] = ch;
}
}
+STOP_READING:
u_releaseDefaultConverter(converter);
}
diff --git a/Build/source/libs/icu-xetex/layout/AnchorTables.cpp b/Build/source/libs/icu-xetex/layout/AnchorTables.cpp
index 94980da676a..24f3cf31df4 100644
--- a/Build/source/libs/icu-xetex/layout/AnchorTables.cpp
+++ b/Build/source/libs/icu-xetex/layout/AnchorTables.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -41,9 +41,10 @@ void AnchorTable::getAnchor(LEGlyphID glyphID, const LEFontInstance *fontInstanc
}
default:
- // Unknown format, set the anchor point to (0, 0)
- anchor.fX = 0;
- anchor.fY = 0;
+ // unknown format: just use x, y coordinate, like format 1...
+ const Format1AnchorTable *f1 = (const Format1AnchorTable *) this;
+
+ f1->getAnchor(fontInstance, anchor);
break;
}
}
diff --git a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp
index da0950e9110..424447433ec 100644
--- a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.cpp
@@ -37,14 +37,22 @@ ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fon
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
- /**/ fFeatureOrder = ArabicShaping::getFeatureOrder();
+ fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
}
ArabicOpenTypeLayoutEngine::ArabicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
le_int32 typoFlags)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
- // fFeatureOrder = ArabicShaping::getFeatureOrder();
+ fFeatureMap = ArabicShaping::getFeatureMap(fFeatureMapCount);
+
+ // NOTE: We don't need to set fFeatureOrder to TRUE here
+ // because this constructor is only called by the constructor
+ // for UnicodeArabicOpenTypeLayoutEngine, which uses a pre-built
+ // GSUB table that has the features in the correct order.
+
+ //fFeatureOrder = TRUE;
}
ArabicOpenTypeLayoutEngine::~ArabicOpenTypeLayoutEngine()
@@ -156,14 +164,14 @@ le_int32 UnicodeArabicOpenTypeLayoutEngine::glyphPostProcessing(LEGlyphStorage &
glyphStorage.adoptCharIndicesArray(tempGlyphStorage);
- ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, glyphStorage, success);
+ ArabicOpenTypeLayoutEngine::mapCharsToGlyphs(tempChars, 0, tempGlyphCount, FALSE, TRUE, TRUE, glyphStorage, success);
LE_DELETE_ARRAY(tempChars);
return tempGlyphCount;
}
-void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+void UnicodeArabicOpenTypeLayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool /*mirror*/, le_bool /*filterZeroWidth*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
diff --git a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h
index 788c07f5782..68378985336 100644
--- a/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h
+++ b/Build/source/libs/icu-xetex/layout/ArabicLayoutEngine.h
@@ -207,13 +207,14 @@ protected:
* @param count - the number of characters to be mapped
* @param reverse - if <code>TRUE</code>, the output will be in reverse order
* @param mirror - if <code>TRUE</code>, do character mirroring
+ * @param filterZeroWidth - if <code>TRUE</code> replace ZWJ / ZWNJ with a glyph with no contours.
* @param glyphStorage - the glyph storage object. Glyph and char index arrays will be updated.
*
* @param success - set to an error code if the operation fails
*
* @internal
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth,
LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
diff --git a/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp b/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp
index 36cfd679aa9..9550910ad84 100644
--- a/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp
+++ b/Build/source/libs/icu-xetex/layout/ArabicShaping.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -8,48 +8,30 @@
#include "OpenTypeTables.h"
#include "ArabicShaping.h"
#include "LEGlyphStorage.h"
+#include "ClassDefinitionTables.h"
U_NAMESPACE_BEGIN
+// This table maps Unicode joining types to
+// ShapeTypes.
+const ArabicShaping::ShapeType ArabicShaping::shapeTypes[] =
+{
+ ArabicShaping::ST_NOSHAPE_NONE, // [U]
+ ArabicShaping::ST_NOSHAPE_DUAL, // [C]
+ ArabicShaping::ST_DUAL, // [D]
+ ArabicShaping::ST_LEFT, // [L]
+ ArabicShaping::ST_RIGHT, // [R]
+ ArabicShaping::ST_TRANSPARENT // [T]
+};
+
+// Draft Mongolian shaping classes, not provided by the Unicode data files at this time
enum {
_c_ = ArabicShaping::ST_NOSHAPE_DUAL,
_d_ = ArabicShaping::ST_DUAL,
_n_ = ArabicShaping::ST_NONE,
_r_ = ArabicShaping::ST_RIGHT,
_t_ = ArabicShaping::ST_TRANSPARENT,
- _x_ = ArabicShaping::ST_NOSHAPE_NONE,
- _A_ = ArabicShaping::ST_ALAPH,
- _R_ = ArabicShaping::ST_DALATH_RISH
-};
-
-const ArabicShaping::ShapeType ArabicShaping::shapeTypes[] =
-{
-// Arabic block
- _t_, _t_, _t_, _t_, _t_, _t_, _x_, _x_, _x_, _x_, _x_, _n_, _x_, _x_, _x_, _n_, // 0x610 - 0x61f
- _x_, _n_, _r_, _r_, _r_, _r_, _d_, _r_, _d_, _r_, _d_, _d_, _d_, _d_, _d_, _r_, // 0x620 - 0x62f
- _r_, _r_, _r_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _x_, _x_, _x_, _x_, _x_, // 0x630 - 0x63f
- _c_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _r_, _d_, _d_, _t_, _t_, _t_, _t_, _t_, // 0x640 - 0x64f
- _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _x_, // 0x650 - 0x65f
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _d_, _d_, // 0x660 - 0x66f
- _t_, _r_, _r_, _r_, _n_, _r_, _r_, _r_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x670 - 0x67f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, // 0x680 - 0x68f
- _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x690 - 0x69f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x6a0 - 0x6af
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, // 0x6b0 - 0x6bf
- _r_, _d_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _r_, _d_, _r_, _d_, _r_, // 0x6c0 - 0x6cf
- _d_, _d_, _r_, _r_, _n_, _r_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _x_, _t_, _t_, // 0x6d0 - 0x6df
- _t_, _t_, _t_, _t_, _t_, _n_, _n_, _t_, _t_, _n_, _t_, _t_, _t_, _t_, _r_, _r_, // 0x6e0 - 0x6ef
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _d_, _d_, _d_, _n_, _n_, _d_, // 0x6f0 - 0x6ff
-// Syriac
- _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _n_, _t_, // 0x700 - 0x70f
- _A_, _t_, _d_, _d_, _d_, _R_, _R_, _r_, _r_, _r_, _d_, _d_, _d_, _d_, _r_, _d_, // 0x710 - 0x71f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _r_, _d_, _R_, _d_, _r_, _d_, _d_, _R_, // 0x720 - 0x72f
- _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, // 0x730 - 0x73f
- _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _t_, _x_, _x_, _r_, _d_, _d_, // 0x740 - 0x74f
-// Arabic Supplement
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _r_, _r_, _r_, _d_, _d_, _d_, _d_, // 0x750 - 0x75f
- _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _d_, _r_, _r_, _d_, _x_, _x_, // 0x760 - 0x76f
- _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_, _x_ // 0x770 - 0x77f
+ _x_ = ArabicShaping::ST_NOSHAPE_NONE
};
const ArabicShaping::ShapeType ArabicShaping::mongolianTypes[] =
@@ -68,8 +50,7 @@ const ArabicShaping::ShapeType ArabicShaping::mongolianTypes[] =
};
/*
- shaping array holds types for Arabic/Syriac chars between 0610 and 077f;
- mongolian array holds types for Mongolian chars between 1800 and 18af;
+ shaping array holds types for Arabic chars between 0610 and 0700
other values are either unshaped, or transparent if a mark or format
code, except for format codes 200c (zero-width non-joiner) and 200d
(dual-width joiner) which are both unshaped and non_joining or
@@ -77,97 +58,112 @@ const ArabicShaping::ShapeType ArabicShaping::mongolianTypes[] =
*/
ArabicShaping::ShapeType ArabicShaping::getShapeType(LEUnicode c)
{
- if (c >= 0x0300 && c <= 0x206f) {
- if (/*c >= 0x0300 &&*/ c <= 0x036f) { // Combining Marks
- return ST_TRANSPARENT;
- } else if (c >= 0x0610 && c <= 0x077f) { // Arabic/Syriac/Arabic Supplement
- return shapeTypes[c - 0x0610];
- } else if (c >= 0x1800 && c <= 0x18af) { // Mongolian
- return mongolianTypes[c - 0x1800];
- } else if (c == 0x200c) { // ZWNJ
- return ST_NOSHAPE_NONE;
- } else if (c == 0x200d) { // ZWJ
- return ST_NOSHAPE_DUAL;
- } else if (c >= 0x202a && c <= 0x202e) { // LRE - RLO
- return ST_TRANSPARENT;
- } else if (c >= 0x206a /*&& c <= 0x206f*/) { // Inhibit Symmetric Swapping - Nominal Digit Shapes
- return ST_TRANSPARENT;
- }
+ const ClassDefinitionTable *joiningTypes = (const ClassDefinitionTable *) ArabicShaping::shapingTypeTable;
+ le_int32 joiningType = joiningTypes->getGlyphClass(c);
+
+ if (joiningType == JT_RIGHT_JOINING) { // check for Syriac exceptions ALAPH, DALATH, RISH
+ if (c == 0x0710)
+ return ST_ALAPH;
+ if (c == 0x0715 || c == 0x0716 || c == 0x072A || c == 0x072F)
+ return ST_DALATH_RISH;
+ }
+
+ if (joiningType == 0) { // check for Mongolian range, not supported by ArabicShaping::shapingTypeTable
+ if (c >= 0x1800 && c <= 0x18af)
+ return mongolianTypes[c - 0x1800];
+ }
+
+ if (joiningType >= 0 && joiningType < JT_COUNT) {
+ return shapeTypes[joiningType];
}
return ST_NOSHAPE_NONE;
}
-static const LETag isolFeatureTag = LE_ISOL_FEATURE_TAG;
-static const LETag initFeatureTag = LE_INIT_FEATURE_TAG;
-static const LETag mediFeatureTag = LE_MEDI_FEATURE_TAG;
-static const LETag finaFeatureTag = LE_FINA_FEATURE_TAG;
-static const LETag ligaFeatureTag = LE_LIGA_FEATURE_TAG;
-static const LETag msetFeatureTag = LE_MSET_FEATURE_TAG;
-static const LETag markFeatureTag = LE_MARK_FEATURE_TAG;
-static const LETag ccmpFeatureTag = LE_CCMP_FEATURE_TAG;
-static const LETag rligFeatureTag = LE_RLIG_FEATURE_TAG;
-static const LETag caltFeatureTag = LE_CALT_FEATURE_TAG;
-static const LETag dligFeatureTag = LE_DLIG_FEATURE_TAG;
-static const LETag cswhFeatureTag = LE_CSWH_FEATURE_TAG;
-static const LETag cursFeatureTag = LE_CURS_FEATURE_TAG;
-static const LETag kernFeatureTag = LE_KERN_FEATURE_TAG;
-static const LETag mkmkFeatureTag = LE_MKMK_FEATURE_TAG;
-static const LETag med2FeatureTag = LE_MED2_FEATURE_TAG;
-static const LETag fin2FeatureTag = LE_FIN2_FEATURE_TAG;
-static const LETag fin3FeatureTag = LE_FIN3_FEATURE_TAG;
-
-static const LETag emptyTag = 0x00000000; // ''
-
-static const LETag featureOrder[] =
-{
- ccmpFeatureTag, isolFeatureTag, finaFeatureTag, fin2FeatureTag, fin3FeatureTag, mediFeatureTag,
- med2FeatureTag, initFeatureTag, rligFeatureTag, caltFeatureTag, ligaFeatureTag, dligFeatureTag,
- cswhFeatureTag, msetFeatureTag, cursFeatureTag, kernFeatureTag, markFeatureTag, mkmkFeatureTag,
- emptyTag
+#define isolFeatureTag LE_ISOL_FEATURE_TAG
+#define initFeatureTag LE_INIT_FEATURE_TAG
+#define mediFeatureTag LE_MEDI_FEATURE_TAG
+#define med2FeatureTag LE_MED2_FEATURE_TAG
+#define finaFeatureTag LE_FINA_FEATURE_TAG
+#define fin2FeatureTag LE_FIN2_FEATURE_TAG
+#define fin3FeatureTag LE_FIN3_FEATURE_TAG
+#define ligaFeatureTag LE_LIGA_FEATURE_TAG
+#define msetFeatureTag LE_MSET_FEATURE_TAG
+#define markFeatureTag LE_MARK_FEATURE_TAG
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
+#define rligFeatureTag LE_RLIG_FEATURE_TAG
+#define caltFeatureTag LE_CALT_FEATURE_TAG
+#define dligFeatureTag LE_DLIG_FEATURE_TAG
+#define cswhFeatureTag LE_CSWH_FEATURE_TAG
+#define cursFeatureTag LE_CURS_FEATURE_TAG
+#define kernFeatureTag LE_KERN_FEATURE_TAG
+#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
+
+// NOTE:
+// The isol, fina, init and medi features must be
+// defined in the above order, and have masks that
+// are all in the same byte.
+#define isolFeatureMask 0x80000000UL
+#define finaFeatureMask 0x40000000UL
+#define initFeatureMask 0x20000000UL
+#define mediFeatureMask 0x10000000UL
+#define fin2FeatureMask 0x08000000UL
+#define fin3FeatureMask 0x04000000UL
+#define med2FeatureMask 0x03000000UL /* two bits, from shifting either fin2 or fin3 */
+
+#define ccmpFeatureMask 0x00800000UL
+#define rligFeatureMask 0x00400000UL
+#define caltFeatureMask 0x00200000UL
+#define ligaFeatureMask 0x00100000UL
+#define dligFeatureMask 0x00080000UL
+#define cswhFeatureMask 0x00040000UL
+#define msetFeatureMask 0x00020000UL
+#define cursFeatureMask 0x00010000UL
+#define kernFeatureMask 0x00008000UL
+#define markFeatureMask 0x00004000UL
+#define mkmkFeatureMask 0x00002000UL
+
+#define ISOL_FEATURES (isolFeatureMask | ligaFeatureMask | msetFeatureMask | markFeatureMask | ccmpFeatureMask | rligFeatureMask | caltFeatureMask | dligFeatureMask | cswhFeatureMask | cursFeatureMask | kernFeatureMask | mkmkFeatureMask)
+
+#define SHAPE_MASK 0xFF000000UL
+
+static const FeatureMap featureMap[] = {
+ {ccmpFeatureTag, ccmpFeatureMask},
+ {isolFeatureTag, isolFeatureMask},
+ {finaFeatureTag, finaFeatureMask},
+ {fin2FeatureTag, fin2FeatureMask},
+ {fin3FeatureTag, fin3FeatureMask},
+ {mediFeatureTag, mediFeatureMask},
+ {med2FeatureTag, med2FeatureMask},
+ {initFeatureTag, initFeatureMask},
+ {rligFeatureTag, rligFeatureMask},
+ {caltFeatureTag, caltFeatureMask},
+ {ligaFeatureTag, ligaFeatureMask},
+ {dligFeatureTag, dligFeatureMask},
+ {cswhFeatureTag, cswhFeatureMask},
+ {msetFeatureTag, msetFeatureMask},
+ {cursFeatureTag, cursFeatureMask},
+ {kernFeatureTag, kernFeatureMask},
+ {markFeatureTag, markFeatureMask},
+ {mkmkFeatureTag, mkmkFeatureMask}
};
-const LETag ArabicShaping::tagArray[] =
+const FeatureMap *ArabicShaping::getFeatureMap(le_int32 &count)
{
- isolFeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- finaFeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- initFeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- mediFeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- fin2FeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- fin3FeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
+ count = LE_ARRAY_SIZE(featureMap);
- med2FeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag,
-
- med2FeatureTag, ligaFeatureTag, msetFeatureTag, markFeatureTag, ccmpFeatureTag, rligFeatureTag,
- caltFeatureTag, dligFeatureTag, cswhFeatureTag, cursFeatureTag, kernFeatureTag, mkmkFeatureTag, emptyTag
- // this entry repeated so that both fin2 and fin3 map to med2 via a +2 offset
-};
-
-#define TAGS_PER_GLYPH ((sizeof ArabicShaping::tagArray / sizeof ArabicShaping::tagArray[0]) / 8)
-
-const LETag *ArabicShaping::getFeatureOrder()
-{
- return featureOrder;
+ return featureMap;
}
void ArabicShaping::adjustTags(le_int32 outIndex, le_int32 shapeOffset, LEGlyphStorage &glyphStorage)
{
LEErrorCode success = LE_NO_ERROR;
- const LETag *glyphTags = (const LETag *) glyphStorage.getAuxData(outIndex, success);
+ FeatureMask featureMask = (FeatureMask) glyphStorage.getAuxData(outIndex, success);
+ FeatureMask shape = featureMask & SHAPE_MASK;
+
+ shape >>= shapeOffset;
- glyphStorage.setAuxData(outIndex, (void *) &glyphTags[TAGS_PER_GLYPH * shapeOffset], NULL, success);
+ glyphStorage.setAuxData(outIndex, ((featureMask & ~SHAPE_MASK) | shape), NULL, success);
}
void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
@@ -232,7 +228,7 @@ void ArabicShaping::shape(const LEUnicode *chars, le_int32 offset, le_int32 char
LEUnicode c = chars[in];
ShapeType t = getShapeType(c);
- glyphStorage.setAuxData(out, (void *) tagArray, NULL, success);
+ glyphStorage.setAuxData(out, ISOL_FEATURES, NULL, success);
if ((t & MASK_TRANSPARENT) != 0) {
continue;
diff --git a/Build/source/libs/icu-xetex/layout/ArabicShaping.h b/Build/source/libs/icu-xetex/layout/ArabicShaping.h
index ed1a47a4ab5..937d619a643 100644
--- a/Build/source/libs/icu-xetex/layout/ArabicShaping.h
+++ b/Build/source/libs/icu-xetex/layout/ArabicShaping.h
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -21,13 +21,25 @@ class LEGlyphStorage;
class ArabicShaping /* not : public UObject because all methods are static */ {
public:
+ // Joining types
+ enum JoiningTypes
+ {
+ JT_NON_JOINING = 0,
+ JT_JOIN_CAUSING = 1,
+ JT_DUAL_JOINING = 2,
+ JT_LEFT_JOINING = 3,
+ JT_RIGHT_JOINING = 4,
+ JT_TRANSPARENT = 5,
+ JT_COUNT = 6
+ };
+
// shaping bit masks
enum ShapingBitMasks
{
MASK_SHAPE_RIGHT = 1, // if this bit set, shapes to right
MASK_SHAPE_LEFT = 2, // if this bit set, shapes to left
MASK_TRANSPARENT = 4, // if this bit set, is transparent (ignore other bits)
- MASK_NOSHAPE = 8, // if this bit set, don't shape this char, i.e. tatweel
+ MASK_NOSHAPE = 8, // if this bit set, don't shape this char, i.e. tatweel
MASK_ALAPH = 16, // if this bit set, char is Syriac ALAPH
MASK_DALATH_RISH = 32 // if this bit set, char is Syriac DALATH/RISH
@@ -52,16 +64,15 @@ public:
static void shape(const LEUnicode *chars, le_int32 offset, le_int32 charCount, le_int32 charMax,
le_bool rightToLeft, LEGlyphStorage &glyphStorage);
- static const LETag *getFeatureOrder();
+ static const FeatureMap *getFeatureMap(le_int32 &count);
private:
// forbid instantiation
ArabicShaping();
- static const LETag tagArray[];
-
static ShapeType getShapeType(LEUnicode c);
+ static const le_uint8 shapingTypeTable[];
static const ShapeType shapeTypes[];
static const ShapeType mongolianTypes[];
diff --git a/Build/source/libs/icu-xetex/layout/CanonShaping.h b/Build/source/libs/icu-xetex/layout/CanonShaping.h
index b875389c254..cdf19595b59 100644
--- a/Build/source/libs/icu-xetex/layout/CanonShaping.h
+++ b/Build/source/libs/icu-xetex/layout/CanonShaping.h
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -13,7 +13,7 @@ U_NAMESPACE_BEGIN
class LEGlyphStorage;
-class CanonShaping /* not : public UObject because all members are static */
+class U_LAYOUT_API CanonShaping /* not : public UObject because all members are static */
{
public:
static const le_uint8 glyphSubstitutionTable[];
diff --git a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp
index a1541b9fdd3..1d8f28c8c17 100644
--- a/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp
+++ b/Build/source/libs/icu-xetex/layout/ContextualSubstSubtables.cpp
@@ -1,6 +1,5 @@
/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -325,7 +324,11 @@ le_uint32 ChainingContextualSubstitutionSubtable::process(const LookupProcessor
}
}
-static const LETag emptyTag = 0;
+// NOTE: This could be a #define, but that seems to confuse
+// the Visual Studio .NET 2003 compiler on the calls to the
+// GlyphIterator constructor. It somehow can't decide if
+// emptyFeatureList matches an le_uint32 or an le_uint16...
+static const FeatureMask emptyFeatureList = 0x00000000UL;
le_uint32 ChainingContextualSubstitutionFormat1Subtable::process(const LookupProcessor *lookupProcessor, GlyphIterator *glyphIterator,
const LEFontInstance *fontInstance) const
@@ -342,7 +345,7 @@ le_uint32 ChainingContextualSubstitutionFormat1Subtable::process(const LookupPro
(const ChainSubRuleSetTable *) ((char *) this + chainSubRuleSetTableOffset);
le_uint16 chainSubRuleCount = SWAPW(chainSubRuleSetTable->chainSubRuleCount);
le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyTag);
+ GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
for (le_uint16 subRule = 0; subRule < chainSubRuleCount; subRule += 1) {
Offset chainSubRuleTableOffset =
@@ -414,7 +417,7 @@ le_uint32 ChainingContextualSubstitutionFormat2Subtable::process(const LookupPro
(const ChainSubClassSetTable *) ((char *) this + chainSubClassSetTableOffset);
le_uint16 chainSubClassRuleCount = SWAPW(chainSubClassSetTable->chainSubClassRuleCount);
le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyTag);
+ GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
for (le_uint16 scRule = 0; scRule < chainSubClassRuleCount; scRule += 1) {
Offset chainSubClassRuleTableOffset =
@@ -476,7 +479,7 @@ le_uint32 ChainingContextualSubstitutionFormat3Subtable::process(const LookupPro
const Offset *lookaheadCoverageTableOffsetArray = &inputCoverageTableOffsetArray[inputGlyphCount + 1];
le_uint16 substCount = (le_uint16) SWAPW(lookaheadCoverageTableOffsetArray[lookaheadGlyphCount]);
le_int32 position = glyphIterator->getCurrStreamPosition();
- GlyphIterator tempIterator(*glyphIterator, emptyTag);
+ GlyphIterator tempIterator(*glyphIterator, emptyFeatureList);
if (! tempIterator.prev(backtrkGlyphCount)) {
return 0;
diff --git a/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h b/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h
index d2449fcba65..d9aafdcb867 100644
--- a/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h
+++ b/Build/source/libs/icu-xetex/layout/DefaultCharMapper.h
@@ -1,7 +1,5 @@
/*
- * %W% %W%
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -36,6 +34,7 @@ private:
static const le_int32 controlCharsCount;
static const LEUnicode32 mirroredChars[];
+ static const LEUnicode32 srahCderorrim[];
static const le_int32 mirroredCharsCount;
diff --git a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp
index 3155f022d2d..84327019b50 100644
--- a/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/GXLayoutEngine.cpp
@@ -39,7 +39,7 @@ le_int32 GXLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset,
return 0;
}
- mapCharsToGlyphs(chars, offset, count, FALSE, rightToLeft, glyphStorage, success);
+ mapCharsToGlyphs(chars, offset, count, FALSE, rightToLeft, TRUE, glyphStorage, success);
if (LE_FAILURE(success)) {
return 0;
diff --git a/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp b/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp
index a68233c21d6..fda7511724f 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp
+++ b/Build/source/libs/icu-xetex/layout/GlyphIterator.cpp
@@ -15,11 +15,11 @@
U_NAMESPACE_BEGIN
-GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags, LETag theFeatureTag,
- const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
+GlyphIterator::GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+ FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader)
: direction(1), position(-1), nextLimit(-1), prevLimit(-1),
glyphStorage(theGlyphStorage), glyphPositionAdjustments(theGlyphPositionAdjustments),
- srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureTag(theFeatureTag), featureParam(0),
+ srcIndex(-1), destIndex(-1), lookupFlags(theLookupFlags), featureMask(theFeatureMask), featureParam(0),
glyphClassDefinitionTable(NULL), markAttachClassDefinitionTable(NULL)
{
@@ -52,13 +52,13 @@ GlyphIterator::GlyphIterator(GlyphIterator &that)
srcIndex = that.srcIndex;
destIndex = that.destIndex;
lookupFlags = that.lookupFlags;
- featureTag = that.featureTag;
+ featureMask = that.featureMask;
featureParam = that.featureParam;
glyphClassDefinitionTable = that.glyphClassDefinitionTable;
markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
}
-GlyphIterator::GlyphIterator(GlyphIterator &that, LETag newFeatureTag, le_int32 newFeatureParam)
+GlyphIterator::GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 newFeatureParam)
: glyphStorage(that.glyphStorage)
{
direction = that.direction;
@@ -70,7 +70,7 @@ GlyphIterator::GlyphIterator(GlyphIterator &that, LETag newFeatureTag, le_int32
srcIndex = that.srcIndex;
destIndex = that.destIndex;
lookupFlags = that.lookupFlags;
- featureTag = newFeatureTag;
+ featureMask = newFeatureMask;
featureParam = newFeatureParam;
glyphClassDefinitionTable = that.glyphClassDefinitionTable;
markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
@@ -88,7 +88,7 @@ GlyphIterator::GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags)
srcIndex = that.srcIndex;
destIndex = that.destIndex;
lookupFlags = newLookupFlags;
- featureTag = that.featureTag;
+ featureMask = that.featureMask;
featureParam = that.featureParam;
glyphClassDefinitionTable = that.glyphClassDefinitionTable;
markAttachClassDefinitionTable = that.markAttachClassDefinitionTable;
@@ -99,12 +99,12 @@ GlyphIterator::~GlyphIterator()
// nothing to do, right?
}
-void GlyphIterator::reset(le_uint16 newLookupFlags, LETag newFeatureTag)
+void GlyphIterator::reset(le_uint16 newLookupFlags, FeatureMask newFeatureMask)
{
- position = prevLimit;
- featureTag = newFeatureTag;
+ position = prevLimit;
+ featureMask = newFeatureMask;
featureParam = 0;
- lookupFlags = newLookupFlags;
+ lookupFlags = newLookupFlags;
}
LEGlyphID *GlyphIterator::insertGlyphs(le_int32 count)
@@ -375,32 +375,30 @@ le_bool GlyphIterator::filterGlyph(le_uint32 index) const
}
}
-static const LETag emptyTag = 0;
-static const LETag defaultTag = 0xFFFFFFFF;
-
le_bool GlyphIterator::hasFeatureTag()
{
- if (featureTag == defaultTag || featureTag == emptyTag) {
- featureParam = 0;
+ featureParam = 0;
+
+ if (featureMask == 0) {
return TRUE;
}
LEErrorCode success = LE_NO_ERROR;
- const LETag *tagList = (const LETag *) glyphStorage.getAuxData(position, success);
-
- if (tagList != NULL) {
- for (le_int32 tag = 0; tagList[tag] != emptyTag; tag += 1) {
- if (tagList[tag] == featureTag) {
- const le_int32 *paramList = (const le_int32 *) glyphStorage.getAuxData2(position, success);
- if (paramList != NULL)
- featureParam = paramList[tag];
- else
- featureParam = 0;
- return TRUE;
+ FeatureMask fm = glyphStorage.getAuxData(position, success);
+
+ if ((fm & featureMask) != 0) {
+ const le_int32 *paramList = (const le_int32 *) glyphStorage.getAuxParam(position, success);
+ if (paramList != NULL) {
+ fm = featureMask;
+ while ((fm & 0x80000000UL) == 0) {
+ ++paramList;
+ fm <<= 1;
}
+ featureParam = *paramList;
}
+ return TRUE;
}
-
+
return FALSE;
}
diff --git a/Build/source/libs/icu-xetex/layout/GlyphIterator.h b/Build/source/libs/icu-xetex/layout/GlyphIterator.h
index 677a0fe6ecb..b03ce63c832 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphIterator.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphIterator.h
@@ -23,12 +23,12 @@ class GlyphPositionAdjustments;
class GlyphIterator : public UMemory {
public:
- GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags, LETag theFeatureTag,
- const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
+ GlyphIterator(LEGlyphStorage &theGlyphStorage, GlyphPositionAdjustments *theGlyphPositionAdjustments, le_bool rightToLeft, le_uint16 theLookupFlags,
+ FeatureMask theFeatureMask, const GlyphDefinitionTableHeader *theGlyphDefinitionTableHeader);
GlyphIterator(GlyphIterator &that);
- GlyphIterator(GlyphIterator &that, LETag newFeatureTag, le_int32 featureParam = 0);
+ GlyphIterator(GlyphIterator &that, FeatureMask newFeatureMask, le_int32 featureParam = 0);
GlyphIterator(GlyphIterator &that, le_uint16 newLookupFlags);
@@ -85,10 +85,12 @@ private:
LEGlyphStorage &glyphStorage;
GlyphPositionAdjustments *glyphPositionAdjustments;
- le_int32 srcIndex;
- le_int32 destIndex;
- le_uint16 lookupFlags;
- LETag featureTag;
+
+ le_int32 srcIndex;
+ le_int32 destIndex;
+ le_uint16 lookupFlags;
+ FeatureMask featureMask;
+
le_int32 featureParam;
const GlyphClassDefinitionTable *glyphClassDefinitionTable;
const MarkAttachClassDefinitionTable *markAttachClassDefinitionTable;
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h b/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h
index 39cfd6e3811..31146e56f9b 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphPositionAdjustments.h
@@ -223,7 +223,7 @@ inline void GlyphPositionAdjustments::Adjustment::adjustYAdvance(float yAdjustme
inline GlyphPositionAdjustments::EntryExitPoint::EntryExitPoint()
: fFlags(0)
{
- fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fEntryPoint.fY = 0;
+ fEntryPoint.fX = fEntryPoint.fY = fExitPoint.fX = fExitPoint.fY = 0;
}
inline GlyphPositionAdjustments::EntryExitPoint::~EntryExitPoint()
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp
index 42b7726dbd9..b9187b4a295 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp
+++ b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.cpp
@@ -1,5 +1,4 @@
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -20,9 +19,9 @@ U_NAMESPACE_BEGIN
void GlyphPositioningTableHeader::process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments, le_bool rightToLeft,
LETag scriptTag, LETag languageTag,
const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance, const LETag *featureOrder) const
+ const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
{
- GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureOrder);
+ GlyphPositioningLookupProcessor processor(this, scriptTag, languageTag, featureMap, featureMapCount, featureOrder);
processor.process(glyphStorage, glyphPositionAdjustments, rightToLeft, glyphDefinitionTableHeader, fontInstance);
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h
index c8b6487a754..a07c8c26716 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphPositioningTables.h
@@ -1,5 +1,4 @@
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -30,7 +29,7 @@ struct GlyphPositioningTableHeader : public GlyphLookupTableHeader
void process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
le_bool rightToLeft, LETag scriptTag, LETag languageTag,
const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEFontInstance *fontInstance, const LETag *featureOrder) const;
+ const LEFontInstance *fontInstance, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
};
enum GlyphPositioningSubtableTypes
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp
index 71dafed8bd2..6f923a1389c 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp
+++ b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.cpp
@@ -1,6 +1,5 @@
/*
- *
- * (C) Copyright IBM Corp. 1998 - 2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998 - 2005 - All Rights Reserved
*
*/
@@ -34,13 +33,13 @@ typedef ChainingContextualSubstitutionSubtable ChainingContextualPositioningSubt
GlyphPositioningLookupProcessor::GlyphPositioningLookupProcessor(
const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag, const LETag *featureOrder)
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
: LookupProcessor(
(char *) glyphPositioningTableHeader,
SWAPW(glyphPositioningTableHeader->scriptListOffset),
SWAPW(glyphPositioningTableHeader->featureListOffset),
SWAPW(glyphPositioningTableHeader->lookupListOffset),
- scriptTag, languageTag, featureOrder)
+ scriptTag, languageTag, featureMap, featureMapCount, featureOrder)
{
// anything?
}
diff --git a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h
index 08ca7e829d4..ee3606565d3 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphPosnLookupProc.h
@@ -1,6 +1,5 @@
/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -28,7 +27,7 @@ class GlyphPositioningLookupProcessor : public LookupProcessor
{
public:
GlyphPositioningLookupProcessor(const GlyphPositioningTableHeader *glyphPositioningTableHeader,
- LETag scriptTag, LETag languageTag, const LETag *featureOrder);
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
virtual ~GlyphPositioningLookupProcessor();
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp
index a033badf3c6..eb25680cce1 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp
+++ b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -27,13 +27,13 @@ U_NAMESPACE_BEGIN
GlyphSubstitutionLookupProcessor::GlyphSubstitutionLookupProcessor(
const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const LETag *featureOrder)
+ LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder)
: LookupProcessor(
(char *) glyphSubstitutionTableHeader,
SWAPW(glyphSubstitutionTableHeader->scriptListOffset),
SWAPW(glyphSubstitutionTableHeader->featureListOffset),
SWAPW(glyphSubstitutionTableHeader->lookupListOffset),
- scriptTag, languageTag, featureOrder), fFilter(filter)
+ scriptTag, languageTag, featureMap, featureMapCount, featureOrder), fFilter(filter)
{
// anything?
}
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h
index 4471b63ae0e..d8c5684a03b 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphSubstLookupProc.h
@@ -1,7 +1,5 @@
/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -30,7 +28,7 @@ class GlyphSubstitutionLookupProcessor : public LookupProcessor
{
public:
GlyphSubstitutionLookupProcessor(const GlyphSubstitutionTableHeader *glyphSubstitutionTableHeader,
- LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter = NULL, const LETag *featureOrder = NULL);
+ LETag scriptTag, LETag languageTag, const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder);
virtual ~GlyphSubstitutionLookupProcessor();
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp
index 8efdfe8faf5..661b30f3ab5 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp
+++ b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.cpp
@@ -19,9 +19,9 @@ U_NAMESPACE_BEGIN
le_int32 GlyphSubstitutionTableHeader::process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEGlyphFilter *filter, const LETag *featureOrder) const
+ const LEGlyphFilter *filter, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const
{
- GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureOrder);
+ GlyphSubstitutionLookupProcessor processor(this, scriptTag, languageTag, filter, featureMap, featureMapCount, featureOrder);
return processor.process(glyphStorage, NULL, rightToLeft, glyphDefinitionTableHeader, NULL);
}
diff --git a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h
index 2bc21edd78e..620da29c932 100644
--- a/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h
+++ b/Build/source/libs/icu-xetex/layout/GlyphSubstitutionTables.h
@@ -26,8 +26,8 @@ struct GlyphDefinitionTableHeader;
struct GlyphSubstitutionTableHeader : public GlyphLookupTableHeader
{
le_int32 process(LEGlyphStorage &glyphStorage, le_bool rightToLeft, LETag scriptTag, LETag languageTag,
- const GlyphDefinitionTableHeader *glyphDefinitionTableHeader,
- const LEGlyphFilter *filter = NULL, const LETag *featureOrder = NULL) const;
+ const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEGlyphFilter *filter,
+ const FeatureMap *featureMap, le_int32 featureMapCount, le_bool featureOrder) const;
};
enum GlyphSubstitutionSubtableTypes
diff --git a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp
index 0344f35450a..ae0d9dc7d4d 100644
--- a/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/HanLayoutEngine.cpp
@@ -13,16 +13,37 @@
#include "HanLayoutEngine.h"
#include "ScriptAndLanguageTags.h"
#include "LEGlyphStorage.h"
+#include "OpenTypeTables.h"
U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HanOpenTypeLayoutEngine)
+#define loclFeatureTag LE_LOCL_FEATURE_TAG
+#define smplFeatureTag LE_SMPL_FEATURE_TAG
+#define tradFeatureTag LE_TRAD_FEATURE_TAG
+
+#define loclFeatureMask 0x80000000UL
+#define smplFeatureMask 0x40000000UL
+#define tradFeatureMask 0x20000000UL
+
+static const FeatureMap featureMap[] =
+{
+ {loclFeatureTag, loclFeatureMask},
+ {smplFeatureTag, smplFeatureMask},
+ {tradFeatureTag, tradFeatureMask}
+};
+
+static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
+
+#define features (loclFeatureMask)
+
HanOpenTypeLayoutEngine::HanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
- // nothing else to do...
+ fFeatureMap = featureMap;
+ fFeatureMapCount = featureMapCount;
}
HanOpenTypeLayoutEngine::~HanOpenTypeLayoutEngine()
@@ -30,14 +51,6 @@ HanOpenTypeLayoutEngine::~HanOpenTypeLayoutEngine()
// nothing to do
}
-static const LETag emptyTag = 0x00000000;
-
-static const LETag loclFeatureTag = LE_LOCL_FEATURE_TAG;
-static const LETag smplFeatureTag = LE_SMPL_FEATURE_TAG;
-static const LETag tradFeatureTag = LE_TRAD_FEATURE_TAG;
-
-static const LETag features[] = {loclFeatureTag, emptyTag};
-
le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool /*rightToLeft*/,
LEUnicode *&/*outChars*/, LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
@@ -62,7 +75,7 @@ le_int32 HanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], l
// flag from the language tag lookups, so we can use these features
// with the default LangSys...
for (le_int32 i = 0; i < count; i += 1) {
- glyphStorage.setAuxData(i, (void *) features, NULL, success);
+ glyphStorage.setAuxData(i, features, NULL, success);
}
return count;
diff --git a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp
new file mode 100644
index 00000000000..0782b85c7e8
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.cpp
@@ -0,0 +1,338 @@
+/*
+ * HangulLayoutEngine.cpp: OpenType processing for Han fonts.
+ *
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved.
+ */
+
+#include "LETypes.h"
+#include "LEScripts.h"
+#include "LELanguages.h"
+
+#include "LayoutEngine.h"
+#include "OpenTypeLayoutEngine.h"
+#include "HangulLayoutEngine.h"
+#include "ScriptAndLanguageTags.h"
+#include "LEGlyphStorage.h"
+#include "OpenTypeTables.h"
+
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HangulOpenTypeLayoutEngine)
+
+
+#define FEATURE_MAP(name) {name ## FeatureTag, name ## FeatureMask}
+
+#define LJMO_FIRST 0x1100
+#define LJMO_LAST 0x1159
+#define LJMO_FILL 0x115F
+#define LJMO_COUNT 19
+
+#define VJMO_FIRST 0x1161
+#define VJMO_LAST 0x11A2
+#define VJMO_FILL 0x1160
+#define VJMO_COUNT 21
+
+#define TJMO_FIRST 0x11A7
+#define TJMO_LAST 0x11F9
+#define TJMO_COUNT 28
+
+#define HSYL_FIRST 0xAC00
+#define HSYL_COUNT 11172
+#define HSYL_LVCNT (VJMO_COUNT * TJMO_COUNT)
+
+// Character classes
+enum
+{
+ CC_L = 0,
+ CC_V,
+ CC_T,
+ CC_LV,
+ CC_LVT,
+ CC_X,
+ CC_COUNT
+};
+
+// Action flags
+#define AF_L 1
+#define AF_V 2
+#define AF_T 4
+
+// Actions
+#define a_N 0
+#define a_L (AF_L)
+#define a_V (AF_V)
+#define a_T (AF_T)
+#define a_VT (AF_V | AF_T)
+#define a_LV (AF_L | AF_V)
+#define a_LVT (AF_L | AF_V | AF_T)
+
+typedef struct
+{
+ int32_t newState;
+ int32_t actionFlags;
+} StateTransition;
+
+static const StateTransition stateTable[][CC_COUNT] =
+{
+// L V T LV LVT X
+ { {1, a_L}, {2, a_LV}, {3, a_LVT}, {2, a_LV}, {3, a_LVT}, {4, a_T}}, // 0 - start
+ { {1, a_L}, {2, a_V}, {3, a_VT}, {2, a_LV}, {3, a_LVT}, {-1, a_V}}, // 1 - L+
+ {{-1, a_N}, {2, a_V}, {3, a_T}, {-1, a_N}, {-1, a_N}, {-1, a_N}}, // 2 - L+V+
+ {{-1, a_N}, {-1, a_N}, {3, a_T}, {-1, a_N}, {-1, a_N}, {-1, a_N}}, // 3 - L+V+T*
+ {{-1, a_N}, {-1, a_N}, {-1, a_N}, {-1, a_N}, {-1, a_N}, {4, a_T}} // 4 - X+
+};
+
+
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
+#define ljmoFeatureTag LE_LJMO_FEATURE_TAG
+#define vjmoFeatureTag LE_VJMO_FEATURE_TAG
+#define tjmoFeatureTag LE_TJMO_FEATURE_TAG
+
+#define ccmpFeatureMask 0x80000000UL
+#define ljmoFeatureMask 0x40000000UL
+#define vjmoFeatureMask 0x20000000UL
+#define tjmoFeatureMask 0x10000000UL
+
+static const FeatureMap featureMap[] =
+{
+ {ccmpFeatureTag, ccmpFeatureMask},
+ {ljmoFeatureTag, ljmoFeatureMask},
+ {vjmoFeatureTag, vjmoFeatureMask},
+ {tjmoFeatureTag, tjmoFeatureMask}
+};
+
+static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
+
+#define nullFeatures 0
+#define ljmoFeatures (ccmpFeatureMask | ljmoFeatureMask)
+#define vjmoFeatures (ccmpFeatureMask | vjmoFeatureMask | ljmoFeatureMask | tjmoFeatureMask)
+#define tjmoFeatures (ccmpFeatureMask | tjmoFeatureMask | ljmoFeatureMask | vjmoFeatureMask)
+
+static le_int32 compose(LEUnicode lead, LEUnicode vowel, LEUnicode trail, LEUnicode &syllable)
+{
+ le_int32 lIndex = lead - LJMO_FIRST;
+ le_int32 vIndex = vowel - VJMO_FIRST;
+ le_int32 tIndex = trail - TJMO_FIRST;
+ le_int32 result = 3;
+
+ if ((lIndex < 0 || lIndex >= LJMO_COUNT ) || (vIndex < 0 || vIndex >= VJMO_COUNT)) {
+ return 0;
+ }
+
+ if (tIndex <= 0 || tIndex >= TJMO_COUNT) {
+ tIndex = 0;
+ result = 2;
+ }
+
+ syllable = (LEUnicode) ((lIndex * VJMO_COUNT + vIndex) * TJMO_COUNT + tIndex + HSYL_FIRST);
+
+ return result;
+}
+
+static le_int32 decompose(LEUnicode syllable, LEUnicode &lead, LEUnicode &vowel, LEUnicode &trail)
+{
+ le_int32 sIndex = syllable - HSYL_FIRST;
+
+ if (sIndex < 0 || sIndex >= HSYL_COUNT) {
+ return 0;
+ }
+
+ lead = LJMO_FIRST + (sIndex / HSYL_LVCNT);
+ vowel = VJMO_FIRST + (sIndex % HSYL_LVCNT) / TJMO_COUNT;
+ trail = TJMO_FIRST + (sIndex % TJMO_COUNT);
+
+ if (trail == TJMO_FIRST) {
+ return 2;
+ }
+
+ return 3;
+}
+
+static le_int32 getCharClass(LEUnicode ch, LEUnicode &lead, LEUnicode &vowel, LEUnicode &trail)
+{
+ lead = LJMO_FILL;
+ vowel = VJMO_FILL;
+ trail = TJMO_FIRST;
+
+ if (ch >= LJMO_FIRST && ch <= LJMO_LAST) {
+ lead = ch;
+ return CC_L;
+ }
+
+ if (ch >= VJMO_FIRST && ch <= VJMO_LAST) {
+ vowel = ch;
+ return CC_V;
+ }
+
+ if (ch > TJMO_FIRST && ch <= TJMO_LAST) {
+ trail = ch;
+ return CC_T;
+ }
+
+ le_int32 c = decompose(ch, lead, vowel, trail);
+
+ if (c == 2) {
+ return CC_LV;
+ }
+
+ if (c == 3) {
+ return CC_LVT;
+ }
+
+ trail = ch;
+ return CC_X;
+}
+
+HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags, gsubTable)
+{
+ fFeatureMap = featureMap;
+ fFeatureMapCount = featureMapCount;
+ fFeatureOrder = TRUE;
+}
+
+HangulOpenTypeLayoutEngine::HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 /*languageCode*/,
+ le_int32 typoFlags)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, korLanguageCode, typoFlags)
+{
+ fFeatureMap = featureMap;
+ fFeatureMapCount = featureMapCount;
+ fFeatureOrder = TRUE;
+}
+
+HangulOpenTypeLayoutEngine::~HangulOpenTypeLayoutEngine()
+{
+ // nothing to do
+}
+
+le_int32 HangulOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+{
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
+
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
+ success = LE_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ le_int32 worstCase = count * 3;
+
+ outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
+
+ if (outChars == NULL) {
+ success = LE_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+
+ glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
+ glyphStorage.allocateAuxData(success);
+
+ if (LE_FAILURE(success)) {
+ LE_DELETE_ARRAY(outChars);
+ return 0;
+ }
+
+ le_int32 outCharCount = 0;
+ le_int32 limit = offset + count;
+ le_int32 i = offset;
+
+ while (i < limit) {
+ le_int32 state = 0;
+ le_int32 inStart = i;
+ le_int32 outStart = outCharCount;
+
+ while( i < limit) {
+ LEUnicode lead = 0;
+ LEUnicode vowel = 0;
+ LEUnicode trail = 0;
+ int32_t chClass = getCharClass(chars[i], lead, vowel, trail);
+ const StateTransition transition = stateTable[state][chClass];
+
+ if (chClass == CC_X) {
+ /* Any character of type X will be stored as a trail jamo */
+ if ((transition.actionFlags & AF_T) != 0) {
+ outChars[outCharCount] = trail;
+ glyphStorage.setCharIndex(outCharCount, i-offset, success);
+ glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
+ }
+ } else {
+ /* Any Hangul will be fully decomposed. Output the decomposed characters. */
+ if ((transition.actionFlags & AF_L) != 0) {
+ outChars[outCharCount] = lead;
+ glyphStorage.setCharIndex(outCharCount, i-offset, success);
+ glyphStorage.setAuxData(outCharCount++, ljmoFeatures, NULL, success);
+ }
+
+ if ((transition.actionFlags & AF_V) != 0) {
+ outChars[outCharCount] = vowel;
+ glyphStorage.setCharIndex(outCharCount, i-offset, success);
+ glyphStorage.setAuxData(outCharCount++, vjmoFeatures, NULL, success);
+ }
+
+ if ((transition.actionFlags & AF_T) != 0) {
+ outChars[outCharCount] = trail;
+ glyphStorage.setCharIndex(outCharCount, i-offset, success);
+ glyphStorage.setAuxData(outCharCount++, tjmoFeatures, NULL, success);
+ }
+ }
+
+ state = transition.newState;
+
+ /* Negative next state means stop. */
+ if (state < 0) {
+ break;
+ }
+
+ i += 1;
+ }
+
+ le_int32 inLength = i - inStart;
+ le_int32 outLength = outCharCount - outStart;
+
+ /*
+ * See if the syllable can be composed into a single character. There are 5
+ * possible cases:
+ *
+ * Input Decomposed to Compose to
+ * LV L, V LV
+ * LVT L, V, T LVT
+ * L, V L, V LV, DEL
+ * LV, T L, V, T LVT, DEL
+ * L, V, T L, V, T LVT, DEL, DEL
+ */
+ if ((inLength >= 1 && inLength <= 3) && (outLength == 2 || outLength == 3)) {
+ LEUnicode syllable = 0x0000;
+ LEUnicode lead = outChars[outStart];
+ LEUnicode vowel = outChars[outStart + 1];
+ LEUnicode trail = outLength == 3? outChars[outStart + 2] : TJMO_FIRST;
+
+ /*
+ * If the composition consumes the whole decomposed syllable,
+ * we can use it.
+ */
+ if (compose(lead, vowel, trail, syllable) == outLength) {
+ outCharCount = outStart;
+ outChars[outCharCount] = syllable;
+ glyphStorage.setCharIndex(outCharCount, inStart-offset, success);
+ glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
+
+ /*
+ * Replace the rest of the input characters with DEL.
+ */
+ for(le_int32 d = inStart + 1; d < i; d += 1) {
+ outChars[outCharCount] = 0xFFFF;
+ glyphStorage.setCharIndex(outCharCount, d - offset, success);
+ glyphStorage.setAuxData(outCharCount++, nullFeatures, NULL, success);
+ }
+ }
+ }
+ }
+
+ glyphStorage.adoptGlyphCount(outCharCount);
+ return outCharCount;
+}
+
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h
new file mode 100644
index 00000000000..e77c3b97644
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/HangulLayoutEngine.h
@@ -0,0 +1,125 @@
+
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
+ *
+ */
+
+#ifndef __HANGULAYOUTENGINE_H
+#define __HANGULAYOUTENGINE_H
+
+#include "LETypes.h"
+#include "LEFontInstance.h"
+#include "LEGlyphFilter.h"
+#include "LayoutEngine.h"
+#include "OpenTypeLayoutEngine.h"
+
+#include "GlyphSubstitutionTables.h"
+#include "GlyphDefinitionTables.h"
+#include "GlyphPositioningTables.h"
+
+U_NAMESPACE_BEGIN
+
+class MPreFixups;
+class LEGlyphStorage;
+
+/**
+ * This class implements OpenType layout for Old Hangul OpenType fonts, as
+ * specified by Microsoft in "Creating and Supporting OpenType Fonts for
+ * The Korean Hangul Script" (http://www.microsoft.com/typography/otfntdev/hangulot/default.htm)
+ *
+ * This class overrides the characterProcessing method to do Hangul character processing.
+ * (See the MS spec. for more details)
+ *
+ * @internal
+ */
+class HangulOpenTypeLayoutEngine : public OpenTypeLayoutEngine
+{
+public:
+ /**
+ * This is the main constructor. It constructs an instance of HangulOpenTypeLayoutEngine for
+ * a particular font, script and language. It takes the GSUB table as a parameter since
+ * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
+ * Hangul OpenType font.
+ *
+ * @param fontInstance - the font
+ * @param scriptCode - the script
+ * @param langaugeCode - the language
+ * @param gsubTable - the GSUB table
+ *
+ * @see LayoutEngine::layoutEngineFactory
+ * @see OpenTypeLayoutEngine
+ * @see ScriptAndLangaugeTags.h for script and language codes
+ *
+ * @internal
+ */
+ HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+
+ /**
+ * This constructor is used when the font requires a "canned" GSUB table which can't be known
+ * until after this constructor has been invoked.
+ *
+ * @param fontInstance - the font
+ * @param scriptCode - the script
+ * @param langaugeCode - the language
+ *
+ * @see OpenTypeLayoutEngine
+ * @see ScriptAndLangaugeTags.h for script and language codes
+ *
+ * @internal
+ */
+ HangulOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
+
+ /**
+ * The destructor, virtual for correct polymorphic invocation.
+ *
+ * @internal
+ */
+ virtual ~HangulOpenTypeLayoutEngine();
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @stable ICU 2.8
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @stable ICU 2.8
+ */
+ static UClassID getStaticClassID();
+
+protected:
+
+ /**
+ * This method does Hangul OpenType character processing. It assigns the OpenType feature
+ * tags to the characters, and may compose a character sequence into a modern Hangul syllable,
+ * or decompose a modern Hangul syllable if it forms part of an old Hangul syllable.
+ *
+ * Input parameters:
+ * @param chars - the input character context
+ * @param offset - the index of the first character to process
+ * @param count - the number of characters to process
+ * @param max - the number of characters in the input context
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+ * the auxillary data array will be set to the feature tags.
+ *
+ * Output parameters:
+ * @param success - set to an error code if the operation fails
+ *
+ * @return the output character count
+ *
+ * @internal
+ */
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+};
+
+U_NAMESPACE_END
+#endif
+
diff --git a/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp b/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp
index 75cc583544d..a190afa7591 100644
--- a/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp
+++ b/Build/source/libs/icu-xetex/layout/IndicClassTables.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -12,8 +12,6 @@
U_NAMESPACE_BEGIN
-#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-
// Split matra table indices
#define _x1 (1 << CF_INDEX_SHIFT)
#define _x2 (2 << CF_INDEX_SHIFT)
@@ -33,6 +31,7 @@ U_NAMESPACE_BEGIN
#define _sb (CC_STRESS_MARK | CF_POS_BELOW)
#define _iv (CC_INDEPENDENT_VOWEL)
#define _i2 (CC_INDEPENDENT_VOWEL_2)
+#define _i3 (CC_INDEPENDENT_VOWEL_3)
#define _ct (CC_CONSONANT | CF_CONSONANT)
#define _cn (CC_CONSONANT_WITH_NUKTA | CF_CONSONANT)
#define _nu (CC_NUKTA)
@@ -44,6 +43,7 @@ U_NAMESPACE_BEGIN
#define _lm (_dv | CF_LENGTH_MARK)
#define _l1 (CC_SPLIT_VOWEL_PIECE_1 | CF_POS_BEFORE)
#define _a1 (CC_SPLIT_VOWEL_PIECE_1 | CF_POS_ABOVE)
+#define _b2 (CC_SPLIT_VOWEL_PIECE_2 | CF_POS_BELOW)
#define _r2 (CC_SPLIT_VOWEL_PIECE_2 | CF_POS_AFTER)
#define _m2 (CC_SPLIT_VOWEL_PIECE_2 | CF_LENGTH_MARK)
#define _m3 (CC_SPLIT_VOWEL_PIECE_3 | CF_LENGTH_MARK)
@@ -100,13 +100,13 @@ static const IndicClassTable::CharClass bengCharClasses[] =
static const IndicClassTable::CharClass punjCharClasses[] =
{
_xx, _ma, _ma, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _xx, _iv, // 0A00 - 0A0F
- _iv, _xx, _xx, _iv, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0A10 - 0A1F
+ _iv, _xx, _xx, _i3, _iv, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0A10 - 0A1F
_ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _bb, // 0A20 - 0A2F
_vt, _xx, _ct, _cn, _xx, _bb, _cn, _xx, _ct, _bb, _xx, _xx, _nu, _xx, _dr, _dl, // 0A30 - 0A3F
- _dr, _db, _db, _xx, _xx, _xx, _xx, _da, _da, _xx, _xx, _da, _da, _vr, _xx, _xx, // 0A40 - 0A4F
+ _dr, _b2, _db, _xx, _xx, _xx, _xx, _da, _da, _xx, _xx, _a1, _da, _vr, _xx, _xx, // 0A40 - 0A4F
_xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _cn, _cn, _cn, _ct, _xx, _cn, _xx, // 0A50 - 0A5F
_xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0A60 - 0A6F
- _ma, _ma, _ct, _ct, _xx // 0A70 - 0A74
+ _ma, _ma, _xx, _xx, _xx // 0A70 - 0A74
};
static const IndicClassTable::CharClass gujrCharClasses[] =
@@ -134,7 +134,7 @@ static const IndicClassTable::CharClass oryaCharClasses[] =
static const IndicClassTable::CharClass tamlCharClasses[] =
{
- _xx, _xx, _ma, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _iv, _iv, // 0B80 - 0B8F
+ _xx, _xx, _ma, _xx, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _iv, _iv, // 0B80 - 0B8F
_iv, _xx, _iv, _iv, _iv, _ct, _xx, _xx, _xx, _ct, _ct, _xx, _ct, _xx, _ct, _ct, // 0B90 - 0B9F
_xx, _xx, _xx, _ct, _ct, _xx, _xx, _xx, _ct, _ct, _ct, _xx, _xx, _xx, _ct, _ct, // 0BA0 - 0BAF
_ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _ct, _ct, _xx, _xx, _xx, _xx, _r2, _dr, // 0BB0 - 0BBF
@@ -185,6 +185,18 @@ static const IndicClassTable::CharClass mlymCharClasses[] =
_xx, _xx, _xx, _xx, _xx, _xx, _xx, _m2, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0D50 - 0D5F
_iv, _iv, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx // 0D60 - 0D6F
};
+
+static const IndicClassTable::CharClass sinhCharClasses[] =
+{
+ _xx, _xx, _mp, _mp, _xx, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, _iv, // 0D80 - 0D8F
+ _iv, _iv, _iv, _iv, _iv, _iv, _iv, _xx, _xx, _xx, _ct, _ct, _ct, _ct, _ct, _ct, // 0D90 - 0D9F
+ _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, // 0DA0 - 0DAF
+ _ct, _ct, _xx, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _ct, _xx, _xx, // 0DB0 - 0DBF
+ _ct, _ct, _ct, _ct, _ct, _ct, _ct, _xx, _xx, _xx, _vr, _xx, _xx, _xx, _xx, _dr, // 0DC0 - 0DCF
+ _dr, _dr, _da, _da, _db, _xx, _db, _xx, _dr, _dl, _s1, _dl, _s2, _s3, _s4, _dr, // 0DD0 - 0DDF
+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0DE0 - 0DEF
+ _xx, _xx, _dr, _dr, _xx // 0DF0 - 0DF4
+};
//
// Split matra tables
@@ -198,10 +210,13 @@ static const SplitMatra tamlSplitTable[] = {{0x0BC6, 0x0BBE}, {0x0BC7, 0x0BBE},
static const SplitMatra teluSplitTable[] = {{0x0C46, 0x0C56}};
static const SplitMatra kndaSplitTable[] = {{0x0CBF, 0x0CD5}, {0x0CC6, 0x0CD5}, {0x0CC6, 0x0CD6}, {0x0CC6, 0x0CC2},
- {0x0CC6, 0x0CC2, 0x0CD5}};
+ {0x0CC6, 0x0CC2, 0x0CD5}};
static const SplitMatra mlymSplitTable[] = {{0x0D46, 0x0D3E}, {0x0D47, 0x0D3E}, {0x0D46, 0x0D57}};
+
+static const SplitMatra sinhSplitTable[] = {{0x0DD9, 0x0DCA}, {0x0DD9, 0x0DCF}, {0x0DD9, 0x0DCF,0x0DCA},
+ {0x0DD9, 0x0DDF}};
//
// Script Flags
//
@@ -209,15 +224,16 @@ static const SplitMatra mlymSplitTable[] = {{0x0D46, 0x0D3E}, {0x0D47, 0x0D3E},
// FIXME: post 'GSUB' reordering of MATRA_PRE's for Malayalam and Tamil
// FIXME: reformed Malayalam needs to reorder VATTU to before base glyph...
// FIXME: eyelash RA only for Devanagari??
-#define DEVA_SCRIPT_FLAGS (SF_EYELASH_RA | SF_NO_POST_BASE_LIMIT)
-#define BENG_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT)
-#define PUNJ_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT)
-#define GUJR_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT)
-#define ORYA_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT)
-#define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT)
-#define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | 3)
-#define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | 3)
-#define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT)
+#define DEVA_SCRIPT_FLAGS (SF_EYELASH_RA | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define BENG_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define PUNJ_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define GUJR_SCRIPT_FLAGS (SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define ORYA_SCRIPT_FLAGS (SF_REPH_AFTER_BELOW | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define TAML_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define TELU_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3)
+#define KNDA_SCRIPT_FLAGS (SF_MATRAS_AFTER_BASE | SF_FILTER_ZERO_WIDTH | 3)
+#define MLYM_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT | SF_FILTER_ZERO_WIDTH)
+#define SINH_SCRIPT_FLAGS (SF_MPRE_FIXUP | SF_NO_POST_BASE_LIMIT)
//
// Indic Class Tables
@@ -240,10 +256,12 @@ static const IndicClassTable kndaClassTable = {0x0C80, 0x0CEF, 4, KNDA_SCRIPT_FL
static const IndicClassTable mlymClassTable = {0x0D00, 0x0D6F, 3, MLYM_SCRIPT_FLAGS, mlymCharClasses, mlymSplitTable};
+static const IndicClassTable sinhClassTable = {0x0D80, 0x0DF4, 3, SINH_SCRIPT_FLAGS, sinhCharClasses, sinhSplitTable};
+
//
// IndicClassTable addresses
//
-static const IndicClassTable * const indicClassTables[] = {
+static const IndicClassTable * const indicClassTables[scriptCodeCount] = {
NULL, /* 'zyyy' (COMMON) */
NULL, /* 'qaai' (INHERITED) */
NULL, /* 'arab' (ARABIC) */
@@ -251,7 +269,7 @@ static const IndicClassTable * const indicClassTables[] = {
&bengClassTable, /* 'beng' (BENGALI) */
NULL, /* 'bopo' (BOPOMOFO) */
NULL, /* 'cher' (CHEROKEE) */
- NULL, /* 'qaac' (COPTIC) */
+ NULL, /* 'copt' (COPTIC) */
NULL, /* 'cyrl' (CYRILLIC) */
NULL, /* 'dsrt' (DESERET) */
&devaClassTable, /* 'deva' (DEVANAGARI) */
@@ -277,7 +295,7 @@ static const IndicClassTable * const indicClassTables[] = {
NULL, /* 'ital' (OLD-ITALIC) */
&oryaClassTable, /* 'orya' (ORIYA) */
NULL, /* 'runr' (RUNIC) */
- NULL, /* 'sinh' (SINHALA) */
+ &sinhClassTable, /* 'sinh' (SINHALA) */
NULL, /* 'syrc' (SYRIAC) */
&tamlClassTable, /* 'taml' (TAMIL) */
&teluClassTable, /* 'telu' (TELUGU) */
@@ -298,7 +316,56 @@ static const IndicClassTable * const indicClassTables[] = {
NULL, /* 'shaw' (SHAVIAN) */
NULL, /* 'tale' (TAI_LE) */
NULL, /* 'ugar' (UGARITIC) */
- NULL /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
+ NULL, /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
+ NULL, /* 'bugi' (BUGINESE) */
+ NULL, /* 'glag' (GLAGOLITIC) */
+ NULL, /* 'khar' (KHAROSHTHI) */
+ NULL, /* 'sylo' (SYLOTI_NAGRI) */
+ NULL, /* 'talu' (NEW_TAI_LUE) */
+ NULL, /* 'tfng' (TIFINAGH) */
+ NULL, /* 'xpeo' (OLD_PERSIAN) */
+ NULL, /* 'bali' (BALINESE) */
+ NULL, /* 'batk' (BATK) */
+ NULL, /* 'blis' (BLIS) */
+ NULL, /* 'brah' (BRAH) */
+ NULL, /* 'cham' (CHAM) */
+ NULL, /* 'cirt' (CIRT) */
+ NULL, /* 'cyrs' (CYRS) */
+ NULL, /* 'egyd' (EGYD) */
+ NULL, /* 'egyh' (EGYH) */
+ NULL, /* 'egyp' (EGYP) */
+ NULL, /* 'geok' (GEOK) */
+ NULL, /* 'hans' (HANS) */
+ NULL, /* 'hant' (HANT) */
+ NULL, /* 'hmng' (HMNG) */
+ NULL, /* 'hung' (HUNG) */
+ NULL, /* 'inds' (INDS) */
+ NULL, /* 'java' (JAVA) */
+ NULL, /* 'kali' (KALI) */
+ NULL, /* 'latf' (LATF) */
+ NULL, /* 'latg' (LATG) */
+ NULL, /* 'lepc' (LEPC) */
+ NULL, /* 'lina' (LINA) */
+ NULL, /* 'mand' (MAND) */
+ NULL, /* 'maya' (MAYA) */
+ NULL, /* 'mero' (MERO) */
+ NULL, /* 'nko ' (NKO) */
+ NULL, /* 'orkh' (ORKH) */
+ NULL, /* 'perm' (PERM) */
+ NULL, /* 'phag' (PHAGS_PA) */
+ NULL, /* 'phnx' (PHOENICIAN) */
+ NULL, /* 'plrd' (PLRD) */
+ NULL, /* 'roro' (RORO) */
+ NULL, /* 'sara' (SARA) */
+ NULL, /* 'syre' (SYRE) */
+ NULL, /* 'syrj' (SYRJ) */
+ NULL, /* 'syrn' (SYRN) */
+ NULL, /* 'teng' (TENG) */
+ NULL, /* 'vai ' (VAII) */
+ NULL, /* 'visp' (VISP) */
+ NULL, /* 'xsux' (CUNEIFORM) */
+ NULL, /* 'zxxx' (ZXXX) */
+ NULL /* 'zzzz' (UNKNOWN) */
};
IndicClassTable::CharClass IndicClassTable::getCharClass(LEUnicode ch) const
@@ -338,4 +405,15 @@ le_int32 IndicReordering::getWorstCaseExpansion(le_int32 scriptCode)
return classTable->getWorstCaseExpansion();
}
+le_bool IndicReordering::getFilterZeroWidth(le_int32 scriptCode)
+{
+ const IndicClassTable *classTable = IndicClassTable::getScriptClassTable(scriptCode);
+
+ if (classTable == NULL) {
+ return TRUE;
+ }
+
+ return classTable->getFilterZeroWidth();
+}
+
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp
index 09f564be2b6..ec83e73e462 100644
--- a/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/IndicLayoutEngine.cpp
@@ -28,13 +28,17 @@ IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontI
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable), fMPreFixups(NULL)
{
- fFeatureOrder = IndicReordering::getFeatureOrder();
+ fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
+
+ fFilterZeroWidth = IndicReordering::getFilterZeroWidth(fScriptCode);
}
IndicOpenTypeLayoutEngine::IndicOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fMPreFixups(NULL)
{
- fFeatureOrder = IndicReordering::getFeatureOrder();
+ fFeatureMap = IndicReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
}
IndicOpenTypeLayoutEngine::~IndicOpenTypeLayoutEngine()
diff --git a/Build/source/libs/icu-xetex/layout/IndicReordering.cpp b/Build/source/libs/icu-xetex/layout/IndicReordering.cpp
index 7bae77ecb80..184afa3848a 100644
--- a/Build/source/libs/icu-xetex/layout/IndicReordering.cpp
+++ b/Build/source/libs/icu-xetex/layout/IndicReordering.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -13,42 +13,82 @@
U_NAMESPACE_BEGIN
-class ReorderingOutput : public UMemory {
+#define loclFeatureTag LE_LOCL_FEATURE_TAG
+#define initFeatureTag LE_INIT_FEATURE_TAG
+#define nuktFeatureTag LE_NUKT_FEATURE_TAG
+#define akhnFeatureTag LE_AKHN_FEATURE_TAG
+#define rphfFeatureTag LE_RPHF_FEATURE_TAG
+#define blwfFeatureTag LE_BLWF_FEATURE_TAG
+#define halfFeatureTag LE_HALF_FEATURE_TAG
+#define pstfFeatureTag LE_PSTF_FEATURE_TAG
+#define vatuFeatureTag LE_VATU_FEATURE_TAG
+#define presFeatureTag LE_PRES_FEATURE_TAG
+#define blwsFeatureTag LE_BLWS_FEATURE_TAG
+#define abvsFeatureTag LE_ABVS_FEATURE_TAG
+#define pstsFeatureTag LE_PSTS_FEATURE_TAG
+#define halnFeatureTag LE_HALN_FEATURE_TAG
+
+#define blwmFeatureTag LE_BLWM_FEATURE_TAG
+#define abvmFeatureTag LE_ABVM_FEATURE_TAG
+#define distFeatureTag LE_DIST_FEATURE_TAG
+
+#define loclFeatureMask 0x80000000UL
+#define rphfFeatureMask 0x40000000UL
+#define blwfFeatureMask 0x20000000UL
+#define halfFeatureMask 0x10000000UL
+#define pstfFeatureMask 0x08000000UL
+#define nuktFeatureMask 0x04000000UL
+#define akhnFeatureMask 0x02000000UL
+#define vatuFeatureMask 0x01000000UL
+#define presFeatureMask 0x00800000UL
+#define blwsFeatureMask 0x00400000UL
+#define abvsFeatureMask 0x00200000UL
+#define pstsFeatureMask 0x00100000UL
+#define halnFeatureMask 0x00080000UL
+#define blwmFeatureMask 0x00040000UL
+#define abvmFeatureMask 0x00020000UL
+#define distFeatureMask 0x00010000UL
+#define initFeatureMask 0x00008000UL
+
+class IndicReorderingOutput : public UMemory {
private:
- le_int32 fOutIndex;
+ le_int32 fOutIndex;
LEUnicode *fOutChars;
LEGlyphStorage &fGlyphStorage;
- LEUnicode fMpre;
- le_int32 fMpreIndex;
+ LEUnicode fMpre;
+ le_int32 fMpreIndex;
- LEUnicode fMbelow;
- le_int32 fMbelowIndex;
+ LEUnicode fMbelow;
+ le_int32 fMbelowIndex;
- LEUnicode fMabove;
- le_int32 fMaboveIndex;
+ LEUnicode fMabove;
+ le_int32 fMaboveIndex;
- LEUnicode fMpost;
- le_int32 fMpostIndex;
+ LEUnicode fMpost;
+ le_int32 fMpostIndex;
- LEUnicode fLengthMark;
- le_int32 fLengthMarkIndex;
+ LEUnicode fLengthMark;
+ le_int32 fLengthMarkIndex;
- const LETag *fMatraTags;
+ LEUnicode fVirama;
+ le_int32 fViramaIndex;
+
+ FeatureMask fMatraFeatures;
- le_int32 fMPreOutIndex;
+ le_int32 fMPreOutIndex;
MPreFixups *fMPreFixups;
- LEUnicode fVMabove;
- LEUnicode fVMpost;
- le_int32 fVMIndex;
- const LETag *fVMTags;
+ LEUnicode fVMabove;
+ LEUnicode fVMpost;
+ le_int32 fVMIndex;
+ FeatureMask fVMFeatures;
- LEUnicode fSMabove;
- LEUnicode fSMbelow;
- le_int32 fSMIndex;
- const LETag *fSMTags;
+ LEUnicode fSMabove;
+ LEUnicode fSMbelow;
+ le_int32 fSMIndex;
+ FeatureMask fSMFeatures;
void saveMatra(LEUnicode matra, le_int32 matraIndex, IndicClassTable::CharClass matraClass)
{
@@ -56,6 +96,9 @@ private:
if (IndicClassTable::isLengthMark(matraClass)) {
fLengthMark = matra;
fLengthMarkIndex = matraIndex;
+ } else if (IndicClassTable::isVirama(matraClass)) {
+ fVirama = matra;
+ fViramaIndex = matraIndex;
} else {
switch (matraClass & CF_POS_MASK) {
case CF_POS_BEFORE:
@@ -86,48 +129,52 @@ private:
}
public:
- ReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage, MPreFixups *mpreFixups)
+ IndicReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage, MPreFixups *mpreFixups)
: fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage),
fMpre(0), fMpreIndex(0), fMbelow(0), fMbelowIndex(0), fMabove(0), fMaboveIndex(0),
- fMpost(0), fMpostIndex(0), fLengthMark(0), fLengthMarkIndex(0), fMatraTags(NULL),
- fMPreOutIndex(-1), fMPreFixups(mpreFixups),
- fVMabove(0), fVMpost(0), fVMIndex(0), fVMTags(NULL),
- fSMabove(0), fSMbelow(0), fSMIndex(0), fSMTags(NULL)
+ fMpost(0), fMpostIndex(0), fLengthMark(0), fLengthMarkIndex(0), fVirama(0), fViramaIndex(0),
+ fMatraFeatures(0), fMPreOutIndex(-1), fMPreFixups(mpreFixups),
+ fVMabove(0), fVMpost(0), fVMIndex(0), fVMFeatures(0),
+ fSMabove(0), fSMbelow(0), fSMIndex(0), fSMFeatures(0)
{
// nothing else to do...
}
- ~ReorderingOutput()
+ ~IndicReorderingOutput()
{
// nothing to do here...
}
void reset()
{
- fMpre = fMbelow = fMabove = fMpost = fLengthMark = 0;
+ fMpre = fMbelow = fMabove = fMpost = fLengthMark = fVirama = 0;
fMPreOutIndex = -1;
fVMabove = fVMpost = 0;
fSMabove = fSMbelow = 0;
}
- void writeChar(LEUnicode ch, le_uint32 charIndex, const LETag *charTags)
+ void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures)
{
LEErrorCode success = LE_NO_ERROR;
fOutChars[fOutIndex] = ch;
fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
- fGlyphStorage.setAuxData(fOutIndex, (void *) charTags, NULL, success);
+ fGlyphStorage.setAuxData(fOutIndex, charFeatures, NULL, success);
fOutIndex += 1;
}
- le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex, const LETag *matraTags)
+ le_bool noteMatra(const IndicClassTable *classTable, LEUnicode matra, le_uint32 matraIndex, FeatureMask matraFeatures, le_bool wordStart)
{
IndicClassTable::CharClass matraClass = classTable->getCharClass(matra);
- fMatraTags = matraTags;
+ fMatraFeatures = matraFeatures;
+
+ if (wordStart) {
+ fMatraFeatures |= initFeatureMask;
+ }
if (IndicClassTable::isMatra(matraClass)) {
if (IndicClassTable::isSplitMatra(matraClass)) {
@@ -150,12 +197,12 @@ public:
return FALSE;
}
- void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier, le_uint32 vowelModifierIndex, const LETag *vowelModifierTags)
+ void noteVowelModifier(const IndicClassTable *classTable, LEUnicode vowelModifier, le_uint32 vowelModifierIndex, FeatureMask vowelModifierFeatures)
{
IndicClassTable::CharClass vmClass = classTable->getCharClass(vowelModifier);
fVMIndex = vowelModifierIndex;
- fVMTags = vowelModifierTags;
+ fVMFeatures = vowelModifierFeatures;
if (IndicClassTable::isVowelModifier(vmClass)) {
switch (vmClass & CF_POS_MASK) {
@@ -174,12 +221,12 @@ public:
}
}
- void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark, le_uint32 stressMarkIndex, const LETag *stressMarkTags)
+ void noteStressMark(const IndicClassTable *classTable, LEUnicode stressMark, le_uint32 stressMarkIndex, FeatureMask stressMarkFeatures)
{
IndicClassTable::CharClass smClass = classTable->getCharClass(stressMark);
fSMIndex = stressMarkIndex;
- fSMTags = stressMarkTags;
+ fSMFeatures = stressMarkFeatures;
if (IndicClassTable::isStressMark(smClass)) {
switch (smClass & CF_POS_MASK) {
@@ -205,67 +252,75 @@ public:
}
}
+ // Handles virama in Sinhala split vowels.
+ void writeVirama()
+ {
+ if (fVirama != 0) {
+ writeChar(fVirama, fViramaIndex, fMatraFeatures);
+ }
+ }
+
void writeMpre()
{
if (fMpre != 0) {
fMPreOutIndex = fOutIndex;
- writeChar(fMpre, fMpreIndex, fMatraTags);
+ writeChar(fMpre, fMpreIndex, fMatraFeatures);
}
}
void writeMbelow()
{
if (fMbelow != 0) {
- writeChar(fMbelow, fMbelowIndex, fMatraTags);
+ writeChar(fMbelow, fMbelowIndex, fMatraFeatures);
}
}
void writeMabove()
{
if (fMabove != 0) {
- writeChar(fMabove, fMaboveIndex, fMatraTags);
+ writeChar(fMabove, fMaboveIndex, fMatraFeatures);
}
}
void writeMpost()
{
if (fMpost != 0) {
- writeChar(fMpost, fMpostIndex, fMatraTags);
+ writeChar(fMpost, fMpostIndex, fMatraFeatures);
}
}
void writeLengthMark()
{
if (fLengthMark != 0) {
- writeChar(fLengthMark, fLengthMarkIndex, fMatraTags);
+ writeChar(fLengthMark, fLengthMarkIndex, fMatraFeatures);
}
}
void writeVMabove()
{
if (fVMabove != 0) {
- writeChar(fVMabove, fVMIndex, fVMTags);
+ writeChar(fVMabove, fVMIndex, fVMFeatures);
}
}
void writeVMpost()
{
if (fVMpost != 0) {
- writeChar(fVMpost, fVMIndex, fVMTags);
+ writeChar(fVMpost, fVMIndex, fVMFeatures);
}
}
void writeSMabove()
{
if (fSMabove != 0) {
- writeChar(fSMabove, fSMIndex, fSMTags);
+ writeChar(fSMabove, fSMIndex, fSMFeatures);
}
}
void writeSMbelow()
{
if (fSMbelow != 0) {
- writeChar(fSMbelow, fSMIndex, fSMTags);
+ writeChar(fSMbelow, fSMIndex, fSMFeatures);
}
}
@@ -280,66 +335,60 @@ enum
C_DOTTED_CIRCLE = 0x25CC
};
-static const LETag emptyTag = 0x00000000; // ''
-
-static const LETag nuktFeatureTag = LE_NUKT_FEATURE_TAG;
-static const LETag akhnFeatureTag = LE_AKHN_FEATURE_TAG;
-static const LETag rphfFeatureTag = LE_RPHF_FEATURE_TAG;
-static const LETag blwfFeatureTag = LE_BLWF_FEATURE_TAG;
-static const LETag halfFeatureTag = LE_HALF_FEATURE_TAG;
-static const LETag pstfFeatureTag = LE_PSTF_FEATURE_TAG;
-static const LETag vatuFeatureTag = LE_VATU_FEATURE_TAG;
-static const LETag presFeatureTag = LE_PRES_FEATURE_TAG;
-static const LETag blwsFeatureTag = LE_BLWS_FEATURE_TAG;
-static const LETag abvsFeatureTag = LE_ABVS_FEATURE_TAG;
-static const LETag pstsFeatureTag = LE_PSTS_FEATURE_TAG;
-static const LETag halnFeatureTag = LE_HALN_FEATURE_TAG;
-
-static const LETag blwmFeatureTag = LE_BLWM_FEATURE_TAG;
-static const LETag abvmFeatureTag = LE_ABVM_FEATURE_TAG;
-static const LETag distFeatureTag = LE_DIST_FEATURE_TAG;
-
-// These are in the order in which the features need to be applied
-// for correct processing
-static const LETag featureOrder[] =
-{
- nuktFeatureTag, akhnFeatureTag, rphfFeatureTag, blwfFeatureTag, halfFeatureTag, pstfFeatureTag,
- vatuFeatureTag, presFeatureTag, blwsFeatureTag, abvsFeatureTag, pstsFeatureTag, halnFeatureTag,
- blwmFeatureTag, abvmFeatureTag, distFeatureTag, emptyTag
-};
+// TODO: Find better names for these!
+#define tagArray4 (loclFeatureMask | nuktFeatureMask | akhnFeatureMask | vatuFeatureMask | presFeatureMask | blwsFeatureMask | abvsFeatureMask | pstsFeatureMask | halnFeatureMask | blwmFeatureMask | abvmFeatureMask | distFeatureMask)
+#define tagArray3 (pstfFeatureMask | tagArray4)
+#define tagArray2 (halfFeatureMask | tagArray3)
+#define tagArray1 (blwfFeatureMask | tagArray2)
+#define tagArray0 (rphfFeatureMask | tagArray1)
-// The order of these is determined so that the tag array of each glyph can start
-// at an offset into this array
-// FIXME: do we want a seperate tag array for each kind of character??
-// FIXME: are there cases where this ordering causes glyphs to get tags
-// that they shouldn't?
-static const LETag tagArray[] =
+static const FeatureMap featureMap[] =
{
- rphfFeatureTag, blwfFeatureTag, halfFeatureTag, pstfFeatureTag, nuktFeatureTag, akhnFeatureTag,
- vatuFeatureTag, presFeatureTag, blwsFeatureTag, abvsFeatureTag, pstsFeatureTag, halnFeatureTag,
- blwmFeatureTag, abvmFeatureTag, distFeatureTag, emptyTag
+ {loclFeatureTag, loclFeatureMask},
+ {initFeatureTag, initFeatureMask},
+ {nuktFeatureTag, nuktFeatureMask},
+ {akhnFeatureTag, akhnFeatureMask},
+ {rphfFeatureTag, rphfFeatureMask},
+ {blwfFeatureTag, blwfFeatureMask},
+ {halfFeatureTag, halfFeatureMask},
+ {pstfFeatureTag, pstfFeatureMask},
+ {vatuFeatureTag, vatuFeatureMask},
+ {presFeatureTag, presFeatureMask},
+ {blwsFeatureTag, blwsFeatureMask},
+ {abvsFeatureTag, abvsFeatureMask},
+ {pstsFeatureTag, pstsFeatureMask},
+ {halnFeatureTag, halnFeatureMask},
+ {blwmFeatureTag, blwmFeatureMask},
+ {abvmFeatureTag, abvmFeatureMask},
+ {distFeatureTag, distFeatureMask}
};
+static const le_int32 featureCount = LE_ARRAY_SIZE(featureMap);
+
static const le_int8 stateTable[][CC_COUNT] =
{
-// xx vm sm iv i2 ct cn nu dv s1 s2 s3 vr zw
- { 1, 1, 1, 5, 8, 3, 2, 1, 5, 9, 5, 1, 1, 1}, // 0 - ground state
- {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 1 - exit state
- {-1, 6, 1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, -1}, // 2 - consonant with nukta
- {-1, 6, 1, -1, -1, -1, -1, 2, 5, 9, 5, 5, 4, -1}, // 3 - consonant
- {-1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, 7}, // 4 - consonant virama
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 5 - dependent vowels
- {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - vowel mark
- {-1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, -1}, // 7 - ZWJ, ZWNJ
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1}, // 8 - independent vowels that can take a virama
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, 10, 5, -1, -1}, // 9 - first part of split vowel
- {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1} // 10 - second part of split vowel
-
+// xx vm sm iv i2 i3 ct cn nu dv s1 s2 s3 vr zw
+ { 1, 6, 1, 5, 8, 11, 3, 2, 1, 5, 9, 5, 5, 1, 1}, // 0 - ground state
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 1 - exit state
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, 12}, // 2 - consonant with nukta
+ {-1, 6, 1, -1, -1, -1, -1, -1, 2, 5, 9, 5, 5, 4, 12}, // 3 - consonant
+ {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, 7}, // 4 - consonant virama
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 5 - dependent vowels
+ {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}, // 6 - vowel mark
+ {-1, -1, -1, -1, -1, -1, 3, 2, -1, -1, -1, -1, -1, -1, -1}, // 7 - consonant virama ZWJ, consonant ZWJ virama
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, -1}, // 8 - independent vowels that can take a virama
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, 10, 5, -1, -1}, // 9 - first part of split vowel
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1}, // 10 - second part of split vowel
+ {-1, 6, 1, -1, -1, -1, -1, -1, -1, 5, 9, 5, 5, 4, -1}, // 11 - independent vowels that can take an iv
+ {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 7, -1} // 12 - consonant ZWJ (TODO: Take everything else that can be after a consonant?)
};
-const LETag *IndicReordering::getFeatureOrder()
+
+const FeatureMap *IndicReordering::getFeatureMap(le_int32 &count)
{
- return featureOrder;
+ count = featureCount;
+
+ return featureMap;
}
le_int32 IndicReordering::findSyllable(const IndicClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
@@ -373,8 +422,9 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
mpreFixups = new MPreFixups(charCount);
}
- ReorderingOutput output(outChars, glyphStorage, mpreFixups);
+ IndicReorderingOutput output(outChars, glyphStorage, mpreFixups);
le_int32 i, prev = 0;
+ le_bool lastInWord = FALSE;
while (prev < charCount) {
le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
@@ -384,34 +434,39 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
if (classTable->isStressMark(chars[markStart - 1])) {
markStart -= 1;
- output.noteStressMark(classTable, chars[markStart], markStart, &tagArray[1]);
+ output.noteStressMark(classTable, chars[markStart], markStart, tagArray1);
}
- if (classTable->isVowelModifier(chars[markStart - 1])) {
+ if (markStart != prev && classTable->isVowelModifier(chars[markStart - 1])) {
markStart -= 1;
- output.noteVowelModifier(classTable, chars[markStart], markStart, &tagArray[1]);
+ output.noteVowelModifier(classTable, chars[markStart], markStart, tagArray1);
}
matra = markStart - 1;
- while (output.noteMatra(classTable, chars[matra], matra, &tagArray[1]) && matra != prev) {
+ while (output.noteMatra(classTable, chars[matra], matra, tagArray1, !lastInWord) && matra != prev) {
matra -= 1;
}
+ lastInWord = TRUE;
+
switch (classTable->getCharClass(chars[prev]) & CF_CLASS_MASK) {
case CC_RESERVED:
+ lastInWord = FALSE;
+ /* fall through */
+
case CC_INDEPENDENT_VOWEL:
case CC_ZERO_WIDTH_MARK:
for (i = prev; i < syllable; i += 1) {
- output.writeChar(chars[i], i, &tagArray[1]);
+ output.writeChar(chars[i], i, tagArray1);
}
break;
case CC_NUKTA:
case CC_VIRAMA:
- output.writeChar(C_DOTTED_CIRCLE, prev, &tagArray[1]);
- output.writeChar(chars[prev], prev, &tagArray[1]);
+ output.writeChar(C_DOTTED_CIRCLE, prev, tagArray1);
+ output.writeChar(chars[prev], prev, tagArray1);
break;
case CC_DEPENDENT_VOWEL:
@@ -422,7 +477,7 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
case CC_STRESS_MARK:
output.writeMpre();
- output.writeChar(C_DOTTED_CIRCLE, prev, &tagArray[1]);
+ output.writeChar(C_DOTTED_CIRCLE, prev, tagArray1);
output.writeMbelow();
output.writeSMbelow();
@@ -442,6 +497,7 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
}
output.writeLengthMark();
+ output.writeVirama();
if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) == 0) {
output.writeVMabove();
@@ -452,6 +508,7 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
break;
case CC_INDEPENDENT_VOWEL_2:
+ case CC_INDEPENDENT_VOWEL_3:
case CC_CONSONANT:
case CC_CONSONANT_WITH_NUKTA:
{
@@ -522,9 +579,9 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// Write eyelash RA
// NOTE: baseLimit == prev + 3 iff eyelash RA present...
if (baseLimit == prev + 3) {
- output.writeChar(chars[prev], prev, &tagArray[2]);
- output.writeChar(chars[prev + 1], prev + 1, &tagArray[2]);
- output.writeChar(chars[prev + 2], prev + 2, &tagArray[2]);
+ output.writeChar(chars[prev], prev, tagArray2);
+ output.writeChar(chars[prev + 1], prev + 1, tagArray2);
+ output.writeChar(chars[prev + 2], prev + 2, tagArray2);
}
// write any pre-base consonants
@@ -533,21 +590,21 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
for (i = baseLimit; i < baseConsonant; i += 1) {
LEUnicode ch = chars[i];
// Don't put 'blwf' on first consonant.
- const LETag *tag = (i == baseLimit? &tagArray[2] : &tagArray[1]);
+ FeatureMask features = (i == baseLimit? tagArray2 : tagArray1);
IndicClassTable::CharClass charClass = classTable->getCharClass(ch);
if (IndicClassTable::isConsonant(charClass)) {
if (IndicClassTable::isVattu(charClass) && supressVattu) {
- tag = &tagArray[4];
+ features = tagArray4;
}
supressVattu = IndicClassTable::isVattu(charClass);
} else if (IndicClassTable::isVirama(charClass) && chars[i + 1] == C_SIGN_ZWNJ)
{
- tag = &tagArray[4];
+ features = tagArray4;
}
- output.writeChar(ch, i, tag);
+ output.writeChar(ch, i, features);
}
le_int32 bcSpan = baseConsonant + 1;
@@ -569,7 +626,7 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// write base consonant
for (i = baseConsonant; i < bcSpan; i += 1) {
- output.writeChar(chars[i], i, &tagArray[4]);
+ output.writeChar(chars[i], i, tagArray4);
}
if ((classTable->scriptFlags & SF_MATRAS_AFTER_BASE) != 0) {
@@ -582,12 +639,12 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// write below-base consonants
if (baseConsonant != lastConsonant) {
for (i = bcSpan + 1; i < postBase; i += 1) {
- output.writeChar(chars[i], i, &tagArray[1]);
+ output.writeChar(chars[i], i, tagArray1);
}
if (postBase > lastConsonant) {
// write halant that was after base consonant
- output.writeChar(chars[bcSpan], bcSpan, &tagArray[1]);
+ output.writeChar(chars[bcSpan], bcSpan, tagArray1);
}
}
@@ -600,8 +657,8 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) != 0) {
if (baseLimit == prev + 2) {
- output.writeChar(chars[prev], prev, &tagArray[0]);
- output.writeChar(chars[prev + 1], prev + 1, &tagArray[0]);
+ output.writeChar(chars[prev], prev, tagArray0);
+ output.writeChar(chars[prev + 1], prev + 1, tagArray0);
}
output.writeVMabove();
@@ -613,16 +670,16 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
if (baseConsonant != lastConsonant) {
if (postBase <= lastConsonant) {
for (i = postBase; i <= lastConsonant; i += 1) {
- output.writeChar(chars[i], i, &tagArray[3]);
+ output.writeChar(chars[i], i, tagArray3);
}
// write halant that was after base consonant
- output.writeChar(chars[bcSpan], bcSpan, &tagArray[1]);
+ output.writeChar(chars[bcSpan], bcSpan, tagArray1);
}
// write the training halant, if there is one
if (lastConsonant < matra && classTable->isVirama(chars[matra])) {
- output.writeChar(chars[matra], matra, &tagArray[4]);
+ output.writeChar(chars[matra], matra, tagArray4);
}
}
@@ -632,12 +689,13 @@ le_int32 IndicReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
}
output.writeLengthMark();
+ output.writeVirama();
// write reph
if ((classTable->scriptFlags & SF_REPH_AFTER_BELOW) == 0) {
if (baseLimit == prev + 2) {
- output.writeChar(chars[prev], prev, &tagArray[0]);
- output.writeChar(chars[prev + 1], prev + 1, &tagArray[0]);
+ output.writeChar(chars[prev], prev, tagArray0);
+ output.writeChar(chars[prev + 1], prev + 1, tagArray0);
}
output.writeVMabove();
diff --git a/Build/source/libs/icu-xetex/layout/IndicReordering.h b/Build/source/libs/icu-xetex/layout/IndicReordering.h
index 8eeccc87fd1..5a1938e9158 100644
--- a/Build/source/libs/icu-xetex/layout/IndicReordering.h
+++ b/Build/source/libs/icu-xetex/layout/IndicReordering.h
@@ -27,16 +27,17 @@ U_NAMESPACE_BEGIN
#define CC_STRESS_MARK 2U
#define CC_INDEPENDENT_VOWEL 3U
#define CC_INDEPENDENT_VOWEL_2 4U
-#define CC_CONSONANT 5U
-#define CC_CONSONANT_WITH_NUKTA 6U
-#define CC_NUKTA 7U
-#define CC_DEPENDENT_VOWEL 8U
-#define CC_SPLIT_VOWEL_PIECE_1 9U
-#define CC_SPLIT_VOWEL_PIECE_2 10U
-#define CC_SPLIT_VOWEL_PIECE_3 11U
-#define CC_VIRAMA 12U
-#define CC_ZERO_WIDTH_MARK 13U
-#define CC_COUNT 14U
+#define CC_INDEPENDENT_VOWEL_3 5U
+#define CC_CONSONANT 6U
+#define CC_CONSONANT_WITH_NUKTA 7U
+#define CC_NUKTA 8U
+#define CC_DEPENDENT_VOWEL 9U
+#define CC_SPLIT_VOWEL_PIECE_1 10U
+#define CC_SPLIT_VOWEL_PIECE_2 11U
+#define CC_SPLIT_VOWEL_PIECE_3 12U
+#define CC_VIRAMA 13U
+#define CC_ZERO_WIDTH_MARK 14U
+#define CC_COUNT 15U
// Character class flags
#define CF_CLASS_MASK 0x0000FFFFU
@@ -63,6 +64,7 @@ U_NAMESPACE_BEGIN
#define SF_REPH_AFTER_BELOW 0x40000000U
#define SF_EYELASH_RA 0x20000000U
#define SF_MPRE_FIXUP 0x10000000U
+#define SF_FILTER_ZERO_WIDTH 0x08000000U
#define SF_POST_BASE_LIMIT_MASK 0x0000FFFFU
#define SF_NO_POST_BASE_LIMIT 0x00007FFFU
@@ -85,6 +87,7 @@ struct IndicClassTable
const SplitMatra *splitMatraTable;
inline le_int32 getWorstCaseExpansion() const;
+ inline le_bool getFilterZeroWidth() const;
CharClass getCharClass(LEUnicode ch) const;
@@ -125,13 +128,15 @@ class IndicReordering /* not : public UObject because all methods are static */
public:
static le_int32 getWorstCaseExpansion(le_int32 scriptCode);
+ static le_bool getFilterZeroWidth(le_int32 scriptCode);
+
static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
LEUnicode *outChars, LEGlyphStorage &glyphStorage,
MPreFixups **outMPreFixups);
static void adjustMPres(MPreFixups *mpreFixups, LEGlyphStorage &glyphStorage);
- static const LETag *getFeatureOrder();
+ static const FeatureMap *getFeatureMap(le_int32 &count);
private:
// do not instantiate
@@ -146,6 +151,11 @@ inline le_int32 IndicClassTable::getWorstCaseExpansion() const
return worstCaseExpansion;
}
+inline le_bool IndicClassTable::getFilterZeroWidth() const
+{
+ return (scriptFlags & SF_FILTER_ZERO_WIDTH) != 0;
+}
+
inline const SplitMatra *IndicClassTable::getSplitMatra(CharClass charClass) const
{
le_int32 index = (charClass & CF_INDEX_MASK) >> CF_INDEX_SHIFT;
diff --git a/Build/source/libs/icu-xetex/layout/KernTable.cpp b/Build/source/libs/icu-xetex/layout/KernTable.cpp
index 2a0e0715853..7ba46ee9504 100644
--- a/Build/source/libs/icu-xetex/layout/KernTable.cpp
+++ b/Build/source/libs/icu-xetex/layout/KernTable.cpp
@@ -6,6 +6,8 @@
*/
#include "KernTable.h"
+#include "LEFontInstance.h"
+#include "LEGlyphStorage.h"
#include "LESwaps.h"
@@ -51,6 +53,21 @@ struct KernTableHeader {
#define COVERAGE_CROSS 0x4
#define COVERAGE_OVERRIDE 0x8
+/*
+ * This implementation has support for only one subtable, so if the font has
+ * multiple subtables, only the first will be used. If this turns out to
+ * be a problem in practice we should add it.
+ *
+ * This also supports only version 0 of the kern table header, only
+ * Apple supports the latter.
+ *
+ * This implementation isn't careful about the kern table flags, and
+ * might invoke kerning when it is not supposed to. That too I'm
+ * leaving for a bug fix.
+ *
+ * TODO: support multiple subtables
+ * TODO: respect header flags
+ */
KernTable::KernTable(const LEFontInstance* font, const void* tableData)
: pairs(0), font(font)
{
@@ -58,7 +75,6 @@ KernTable::KernTable(const LEFontInstance* font, const void* tableData)
if (header == 0) {
#if DEBUG
fprintf(stderr, "no kern data\n");
- fflush(stderr);
#endif
return;
}
@@ -73,7 +89,6 @@ KernTable::KernTable(const LEFontInstance* font, const void* tableData)
fprintf(stderr, " ");
}
}
- fflush(stderr);
#endif
if (header->version == 0 && SWAPW(header->nTables) > 0) {
@@ -106,7 +121,6 @@ KernTable::KernTable(const LEFontInstance* font, const void* tableData)
#if DEBUG
fprintf(stderr, "coverage: %0.4x nPairs: %d pairs 0x%x\n", coverage, nPairs, pairs);
fprintf(stderr, " searchRange: %d entrySelector: %d rangeShift: %d\n", searchRange, entrySelector, rangeShift);
- fflush(stderr);
{
// dump part of the pair list
@@ -137,7 +151,6 @@ KernTable::KernTable(const LEFontInstance* font, const void* tableData)
}
}
}
- fflush(stderr);
}
#endif
}
@@ -150,7 +163,6 @@ KernTable::KernTable(const LEFontInstance* font, const void* tableData)
* Process the glyph positions. The positions array has two floats for each
* glyph, plus a trailing pair to mark the end of the last glyph.
*/
-//void KernTable::process(const LEGlyphID glyphs[], float* positions, le_int32 glyphCount)
void KernTable::process(LEGlyphStorage& storage)
{
if (pairs) {
@@ -170,12 +182,11 @@ void KernTable::process(LEGlyphStorage& storage)
const PairInfo* p = pairs;
const PairInfo* tp = (const PairInfo*)((char*)p + rangeShift);
if (key > tp->key()) {
- p = tp;
+ p = tp;
}
#if DEBUG
fprintf(stderr, "binary search for %0.8x\n", key);
- fflush(stderr);
#endif
le_uint32 probe = searchRange;
@@ -184,8 +195,7 @@ void KernTable::process(LEGlyphStorage& storage)
tp = (const PairInfo*)((char*)p + probe);
le_uint32 tkey = tp->key();
#if DEBUG
- fprintf(stdout, " %.3d (%0.8x)\n", ((char*)tp - (char*)pairs)/KERN_PAIRINFO_SIZE, tkey);
- fflush(stdout);
+ fprintf(stdout, " %.3d (%0.8x)\n", ((char*)tp - (char*)pairs)/KERN_PAIRINFO_SIZE, tkey);
#endif
if (tkey <= key) {
if (tkey == key) {
diff --git a/Build/source/libs/icu-xetex/layout/KernTable.h b/Build/source/libs/icu-xetex/layout/KernTable.h
index ccbeed19870..b8322cf1fe6 100644
--- a/Build/source/libs/icu-xetex/layout/KernTable.h
+++ b/Build/source/libs/icu-xetex/layout/KernTable.h
@@ -13,13 +13,15 @@
#endif
#include "LETypes.h"
-#include "LEFontInstance.h"
-#include "LEGlyphStorage.h"
+//#include "LEFontInstance.h"
+//#include "LEGlyphStorage.h"
#include <stdio.h>
U_NAMESPACE_BEGIN
struct PairInfo;
+class LEFontInstance;
+class LEGlyphStorage;
/**
* Windows type 0 kerning table support only for now.
diff --git a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp
index 57e76161920..7538eac5568 100644
--- a/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/KhmerLayoutEngine.cpp
@@ -1,6 +1,5 @@
/*
- *
* (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
* This file is a modification of the ICU file IndicLayoutEngine.cpp
@@ -22,14 +21,16 @@ KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontI
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
{
- fFeatureOrder = KhmerReordering::getFeatureOrder();
+ fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
}
KhmerOpenTypeLayoutEngine::KhmerOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
le_int32 typoFlags)
: OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
{
- fFeatureOrder = KhmerReordering::getFeatureOrder();
+ fFeatureMap = KhmerReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
}
KhmerOpenTypeLayoutEngine::~KhmerOpenTypeLayoutEngine()
diff --git a/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp b/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp
index 8d1045569a2..4f1c442a825 100644
--- a/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp
+++ b/Build/source/libs/icu-xetex/layout/KhmerReordering.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
* This file is a modification of the ICU file IndicReordering.cpp
* by Jens Herden and Javier Sola for Khmer language
@@ -8,6 +8,7 @@
*/
#include "LETypes.h"
+#include "OpenTypeTables.h"
#include "KhmerReordering.h"
#include "LEGlyphStorage.h"
@@ -123,7 +124,7 @@ const KhmerClassTable *KhmerClassTable::getKhmerClassTable()
-class ReorderingOutput : public UMemory {
+class KhmerReorderingOutput : public UMemory {
private:
le_int32 fOutIndex;
LEUnicode *fOutChars;
@@ -132,25 +133,25 @@ private:
public:
- ReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+ KhmerReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
: fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
{
// nothing else to do...
}
- ~ReorderingOutput()
+ ~KhmerReorderingOutput()
{
// nothing to do here...
}
- void writeChar(LEUnicode ch, le_uint32 charIndex, const LETag *charTags)
+ void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask charFeatures)
{
LEErrorCode success = LE_NO_ERROR;
fOutChars[fOutIndex] = ch;
fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
- fGlyphStorage.setAuxData(fOutIndex, (void *) charTags, NULL, success);
+ fGlyphStorage.setAuxData(fOutIndex, charFeatures, NULL, success);
fOutIndex += 1;
}
@@ -162,102 +163,67 @@ public:
};
-static const LETag emptyTag = 0x00000000; // ''
-//TODO remove unused flags
-//static const LETag nuktFeatureTag = LE_NUKT_FEATURE_TAG;
-//static const LETag akhnFeatureTag = LE_AKHN_FEATURE_TAG;
-//static const LETag rphfFeatureTag = LE_RPHF_FEATURE_TAG;
-static const LETag blwfFeatureTag = LE_BLWF_FEATURE_TAG;
-//static const LETag halfFeatureTag = LE_HALF_FEATURE_TAG;
-static const LETag pstfFeatureTag = LE_PSTF_FEATURE_TAG;
-//static const LETag vatuFeatureTag = LE_VATU_FEATURE_TAG;
-static const LETag presFeatureTag = LE_PRES_FEATURE_TAG;
-static const LETag blwsFeatureTag = LE_BLWS_FEATURE_TAG;
-static const LETag abvsFeatureTag = LE_ABVS_FEATURE_TAG;
-static const LETag pstsFeatureTag = LE_PSTS_FEATURE_TAG;
-//static const LETag halnFeatureTag = LE_HALN_FEATURE_TAG;
-
-static const LETag blwmFeatureTag = LE_BLWM_FEATURE_TAG;
-static const LETag abvmFeatureTag = LE_ABVM_FEATURE_TAG;
-static const LETag distFeatureTag = LE_DIST_FEATURE_TAG;
-
-static const LETag prefFeatureTag = LE_PREF_FEATURE_TAG;
-static const LETag abvfFeatureTag = LE_ABVF_FEATURE_TAG;
-static const LETag cligFeatureTag = LE_CLIG_FEATURE_TAG;
-static const LETag mkmkFeatureTag = LE_MKMK_FEATURE_TAG;
+#define blwfFeatureTag LE_BLWF_FEATURE_TAG
+#define pstfFeatureTag LE_PSTF_FEATURE_TAG
+#define presFeatureTag LE_PRES_FEATURE_TAG
+#define blwsFeatureTag LE_BLWS_FEATURE_TAG
+#define abvsFeatureTag LE_ABVS_FEATURE_TAG
+#define pstsFeatureTag LE_PSTS_FEATURE_TAG
+
+#define blwmFeatureTag LE_BLWM_FEATURE_TAG
+#define abvmFeatureTag LE_ABVM_FEATURE_TAG
+#define distFeatureTag LE_DIST_FEATURE_TAG
+
+#define prefFeatureTag LE_PREF_FEATURE_TAG
+#define abvfFeatureTag LE_ABVF_FEATURE_TAG
+#define cligFeatureTag LE_CLIG_FEATURE_TAG
+#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
+
+#define prefFeatureMask 0x80000000UL
+#define blwfFeatureMask 0x40000000UL
+#define abvfFeatureMask 0x20000000UL
+#define pstfFeatureMask 0x10000000UL
+#define presFeatureMask 0x08000000UL
+#define blwsFeatureMask 0x04000000UL
+#define abvsFeatureMask 0x02000000UL
+#define pstsFeatureMask 0x01000000UL
+#define cligFeatureMask 0x00800000UL
+#define distFeatureMask 0x00400000UL
+#define blwmFeatureMask 0x00200000UL
+#define abvmFeatureMask 0x00100000UL
+#define mkmkFeatureMask 0x00080000UL
+
+#define tagPref (prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
+#define tagAbvf (abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
+#define tagPstf (blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
+#define tagBlwf (blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+#define tagDefault (prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+
+
// These are in the order in which the features need to be applied
// for correct processing
-static const LETag featureOrder[] =
+static const FeatureMap featureMap[] =
{
// Shaping features
- prefFeatureTag, blwfFeatureTag, abvfFeatureTag, pstfFeatureTag,
- presFeatureTag, blwsFeatureTag, abvsFeatureTag, pstsFeatureTag,
- cligFeatureTag,
-
- // Positioning features
- distFeatureTag, blwmFeatureTag, abvmFeatureTag, mkmkFeatureTag,
- emptyTag
-};
-
-static const LETag tagPref[] =
-{
- prefFeatureTag, presFeatureTag,
- cligFeatureTag,
+ {prefFeatureTag, prefFeatureMask},
+ {blwfFeatureTag, blwfFeatureMask},
+ {abvfFeatureTag, abvfFeatureMask},
+ {pstfFeatureTag, pstfFeatureMask},
+ {presFeatureTag, presFeatureMask},
+ {blwsFeatureTag, blwsFeatureMask},
+ {abvsFeatureTag, abvsFeatureMask},
+ {pstsFeatureTag, pstsFeatureMask},
+ {cligFeatureTag, cligFeatureMask},
// Positioning features
- distFeatureTag,
- emptyTag
+ {distFeatureTag, distFeatureMask},
+ {blwmFeatureTag, blwmFeatureMask},
+ {abvmFeatureTag, abvmFeatureMask},
+ {mkmkFeatureTag, mkmkFeatureMask},
};
-static const LETag tagAbvf[] =
-{
- abvfFeatureTag, abvsFeatureTag,
- cligFeatureTag,
-
- // Positioning features
- distFeatureTag, abvmFeatureTag, mkmkFeatureTag,
- emptyTag
-};
-
-static const LETag tagPstf[] =
-{
- blwfFeatureTag, blwsFeatureTag,
- prefFeatureTag, presFeatureTag,
-
- pstfFeatureTag, pstsFeatureTag,
- cligFeatureTag,
-
- // Positioning features
- distFeatureTag, blwmFeatureTag,
- emptyTag
-};
-
-static const LETag tagBlwf[] =
-{
- blwfFeatureTag, blwsFeatureTag,
- cligFeatureTag,
-
- // Positioning features
- distFeatureTag, blwmFeatureTag, mkmkFeatureTag,
- emptyTag
-};
-
-
-// TODO do we need all of them?
-static const LETag tagDefault[] =
-{
- // Shaping feature
- prefFeatureTag, blwfFeatureTag, /*abvfFeatureTag,*/ /*pstfFeatureTag, */
- presFeatureTag, blwsFeatureTag, /*abvsFeatureTag,*/ /*pstsFeatureTag,*/
- cligFeatureTag,
-
- // Positioning features
- distFeatureTag, abvmFeatureTag, blwmFeatureTag, mkmkFeatureTag,
- emptyTag
-};
-
-
+static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
// The stateTable is used to calculate the end (the length) of a well
// formed Khmer Syllable.
@@ -337,12 +303,12 @@ static const le_int8 khmerStateTable[][KhmerClassTable::CC_COUNT] =
{-1, -1, -1, -1, 12, 13, -1, 10, 16, 17, 1, 14}, // 9 - First consonant or type 3 after ceong
{-1, 11, 11, 11, -1, -1, -1, -1, -1, -1, -1, -1}, // 10 - Second Coeng (no register shifter before)
{-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 11 - Second coeng consonant (or ind. vowel) no register shifter before
- {-1, -1, 1, -1, -1, 13, -1, -1, 16, -1, -1, -1}, // 12 - Second ZWNJ before a register shifter
+ {-1, -1, -1, -1, -1, 13, -1, -1, 16, -1, -1, -1}, // 12 - Second ZWNJ before a register shifter
{-1, -1, -1, -1, 15, -1, -1, -1, 16, 17, 1, 14}, // 13 - Second register shifter
{-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 14 - ZWJ before vowel
{-1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1}, // 15 - ZWNJ before vowel
{-1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 1, 18}, // 16 - dependent vowel
- {-1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 18}, // 17 - sign above
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 18}, // 17 - sign above
{-1, -1, -1, -1, -1, -1, -1, 19, -1, -1, -1, -1}, // 18 - ZWJ after vowel
{-1, 1, -1, 1, -1, -1, -1, -1, -1, -1, -1, -1}, // 19 - Third coeng
{-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1}, // 20 - dependent vowel after a Robat
@@ -350,9 +316,11 @@ static const le_int8 khmerStateTable[][KhmerClassTable::CC_COUNT] =
};
-const LETag *KhmerReordering::getFeatureOrder()
+const FeatureMap *KhmerReordering::getFeatureMap(le_int32 &count)
{
- return featureOrder;
+ count = featureMapCount;
+
+ return featureMap;
}
@@ -387,7 +355,7 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
{
const KhmerClassTable *classTable = KhmerClassTable::getKhmerClassTable();
- ReorderingOutput output(outChars, glyphStorage);
+ KhmerReorderingOutput output(outChars, glyphStorage);
KhmerClassTable::CharClass charClass;
le_int32 i, prev = 0, coengRo;
@@ -407,13 +375,13 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// if a split vowel, write the pre part. In Khmer the pre part
// is the same for all split vowels, same glyph as pre vowel C_VOWEL_E
if (charClass & KhmerClassTable::CF_SPLIT_VOWEL) {
- output.writeChar(C_VOWEL_E, i, &tagPref[0]);
+ output.writeChar(C_VOWEL_E, i, tagPref);
break; // there can be only one vowel
}
// if a vowel with pos before write it out
if (charClass & KhmerClassTable::CF_POS_BEFORE) {
- output.writeChar(chars[i], i, &tagPref[0]);
+ output.writeChar(chars[i], i, tagPref);
break; // there can be only one vowel
}
@@ -430,8 +398,8 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// write coeng + ro if found
if (coengRo > -1) {
- output.writeChar(C_COENG, coengRo, &tagPref[0]);
- output.writeChar(C_RO, coengRo + 1, &tagPref[0]);
+ output.writeChar(C_COENG, coengRo, tagPref);
+ output.writeChar(C_RO, coengRo + 1, tagPref);
}
// shall we add a dotted circle?
@@ -439,7 +407,7 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
// a character that has the Dotted circle flag (a character that cannot be a base)
// then write a dotted circle
if (classTable->getCharClass(chars[prev]) & KhmerClassTable::CF_DOTTED_CIRCLE) {
- output.writeChar(C_DOTTED_CIRCLE, prev, &tagDefault[0]);
+ output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
}
// copy what is left to the output, skipping before vowels and coeng Ro if they are present
@@ -459,15 +427,15 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
switch (charClass & KhmerClassTable::CF_POS_MASK) {
case KhmerClassTable::CF_POS_ABOVE :
- output.writeChar(chars[i], i, &tagAbvf[0]);
+ output.writeChar(chars[i], i, tagAbvf);
break;
case KhmerClassTable::CF_POS_AFTER :
- output.writeChar(chars[i], i, &tagPstf[0]);
+ output.writeChar(chars[i], i, tagPstf);
break;
case KhmerClassTable::CF_POS_BELOW :
- output.writeChar(chars[i], i, &tagBlwf[0]);
+ output.writeChar(chars[i], i, tagBlwf);
break;
default:
@@ -476,14 +444,14 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
if ( (charClass & KhmerClassTable::CF_COENG) && i + 1 < syllable ) {
if ( (classTable->getCharClass(chars[i + 1]) & KhmerClassTable::CF_CLASS_MASK)
== KhmerClassTable::CC_CONSONANT3) {
- output.writeChar(chars[i], i, &tagPstf[0]);
+ output.writeChar(chars[i], i, tagPstf);
i += 1;
- output.writeChar(chars[i], i, &tagPstf[0]);
+ output.writeChar(chars[i], i, tagPstf);
}
else {
- output.writeChar(chars[i], i, &tagBlwf[0]);
+ output.writeChar(chars[i], i, tagBlwf);
i += 1;
- output.writeChar(chars[i], i, &tagBlwf[0]);
+ output.writeChar(chars[i], i, tagBlwf);
}
break;
}
@@ -502,13 +470,13 @@ le_int32 KhmerReordering::reorder(const LEUnicode *chars, le_int32 charCount, le
&& ( (classTable->getCharClass(chars[i + 3]) & KhmerClassTable::CF_CLASS_MASK) == C_VOWEL_AA)
&& ( (classTable->getCharClass(chars[i + 4]) & KhmerClassTable::CF_CLASS_MASK) == C_SIGN_NIKAHIT) ) )
{
- output.writeChar(chars[i], i, &tagBlwf[0]);
+ output.writeChar(chars[i], i, tagBlwf);
break;
}
}
// default - any other characters
- output.writeChar(chars[i], i, &tagDefault[0]);
+ output.writeChar(chars[i], i, tagDefault);
break;
} // switch
} // for
diff --git a/Build/source/libs/icu-xetex/layout/KhmerReordering.h b/Build/source/libs/icu-xetex/layout/KhmerReordering.h
index 71b4021d5eb..eecd12dff63 100644
--- a/Build/source/libs/icu-xetex/layout/KhmerReordering.h
+++ b/Build/source/libs/icu-xetex/layout/KhmerReordering.h
@@ -1,6 +1,5 @@
/*
- *
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
* This file is a modification of the ICU file IndicReordering.h
* by Jens Herden and Javier Sola for Khmer language
@@ -15,8 +14,8 @@
* \internal
*/
-// #include "LETypes.h"
-// #include "OpenTypeTables.h"
+#include "LETypes.h"
+#include "OpenTypeTables.h"
U_NAMESPACE_BEGIN
@@ -118,7 +117,7 @@ public:
static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
LEUnicode *outChars, LEGlyphStorage &glyphStorage);
- static const LETag *getFeatureOrder();
+ static const FeatureMap *getFeatureMap(le_int32 &count);
private:
// do not instantiate
diff --git a/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp b/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp
index e36c2a0fc68..f05125f1459 100644
--- a/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp
+++ b/Build/source/libs/icu-xetex/layout/LEFontInstance.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2004, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -20,6 +20,16 @@ U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEFontInstance)
+LECharMapper::~LECharMapper()
+{
+ // nothing to do.
+}
+
+LEFontInstance::~LEFontInstance()
+{
+ // nothing to do
+}
+
const LEFontInstance *LEFontInstance::getSubFont(const LEUnicode chars[], le_int32 *offset, le_int32 limit,
le_int32 script, LEErrorCode &success) const
{
@@ -37,7 +47,7 @@ const LEFontInstance *LEFontInstance::getSubFont(const LEUnicode chars[], le_int
}
void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count,
- le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const
+ le_bool reverse, const LECharMapper *mapper, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage) const
{
le_int32 i, out = 0, dir = 1;
@@ -58,7 +68,7 @@ void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
}
}
- glyphStorage[out] = mapCharToGlyph(code, mapper);
+ glyphStorage[out] = mapCharToGlyph(code, mapper, filterZeroWidth);
if (code >= 0x10000) {
i += 1;
@@ -69,19 +79,72 @@ void LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset,
LEGlyphID LEFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
{
+ return mapCharToGlyph(ch, mapper, TRUE);
+}
+
+LEGlyphID LEFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
+{
LEUnicode32 mappedChar = mapper->mapChar(ch);
if (mappedChar == 0xFFFE || mappedChar == 0xFFFF) {
return 0xFFFF;
}
- if (mappedChar == 0x200C || mappedChar == 0x200D) {
- return 1;
+ if (filterZeroWidth && (mappedChar == 0x200C || mappedChar == 0x200D)) {
+ return canDisplay(mappedChar)? 0x0001 : 0xFFFF;
}
return mapCharToGlyph(mappedChar);
}
+le_bool LEFontInstance::canDisplay(LEUnicode32 ch) const
+{
+ return LE_GET_GLYPH(mapCharToGlyph(ch)) != 0;
+}
+
+float LEFontInstance::xUnitsToPoints(float xUnits) const
+{
+ return (xUnits * getXPixelsPerEm()) / (float) getUnitsPerEM();
+}
+
+float LEFontInstance::yUnitsToPoints(float yUnits) const
+{
+ return (yUnits * getYPixelsPerEm()) / (float) getUnitsPerEM();
+}
+
+void LEFontInstance::unitsToPoints(LEPoint &units, LEPoint &points) const
+{
+ points.fX = xUnitsToPoints(units.fX);
+ points.fY = yUnitsToPoints(units.fY);
+}
+
+float LEFontInstance::xPixelsToUnits(float xPixels) const
+{
+ return (xPixels * getUnitsPerEM()) / (float) getXPixelsPerEm();
+}
+
+float LEFontInstance::yPixelsToUnits(float yPixels) const
+{
+ return (yPixels * getUnitsPerEM()) / (float) getYPixelsPerEm();
+}
+
+void LEFontInstance::pixelsToUnits(LEPoint &pixels, LEPoint &units) const
+{
+ units.fX = xPixelsToUnits(pixels.fX);
+ units.fY = yPixelsToUnits(pixels.fY);
+}
+
+void LEFontInstance::transformFunits(float xFunits, float yFunits, LEPoint &pixels) const
+{
+ pixels.fX = xUnitsToPoints(xFunits) * getScaleFactorX();
+ pixels.fY = yUnitsToPoints(yFunits) * getScaleFactorY();
+}
+
+le_int32 LEFontInstance::getLineHeight() const
+{
+ return getAscent() + getDescent() + getLeading();
+}
+
void LEFontInstance::getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const
{
kern.fX = kern.fY = 0;
diff --git a/Build/source/libs/icu-xetex/layout/LEFontInstance.h b/Build/source/libs/icu-xetex/layout/LEFontInstance.h
index 37a6c98cabc..6d636b8fa31 100644
--- a/Build/source/libs/icu-xetex/layout/LEFontInstance.h
+++ b/Build/source/libs/icu-xetex/layout/LEFontInstance.h
@@ -1,7 +1,7 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -32,7 +32,7 @@ public:
* Destructor.
* @stable ICU 3.2
*/
- virtual inline ~LECharMapper() {};
+ virtual ~LECharMapper();
/**
* This method does the adjustments.
@@ -50,7 +50,7 @@ public:
* This is a forward reference to the class which holds the per-glyph
* storage.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class LEGlyphStorage;
@@ -76,7 +76,7 @@ class LEGlyphStorage;
* methods with some default behavior such as returning constant values, or using the
* values from the first subfont.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
class U_LAYOUT_API LEFontInstance : public UObject
{
@@ -88,7 +88,7 @@ public:
*
* @stable ICU 2.8
*/
- virtual inline ~LEFontInstance() {};
+ virtual ~LEFontInstance();
/**
* Get a physical font which can render the given text. For composite fonts,
@@ -181,7 +181,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline le_bool canDisplay(LEUnicode32 ch) const;
+ virtual le_bool canDisplay(LEUnicode32 ch) const;
/**
* This method returns the number of design units in
@@ -209,13 +209,32 @@ public:
* @param count - the number of characters
* @param reverse - if <code>TRUE</code>, store the glyph indices in reverse order.
* @param mapper - the character mapper.
+ * @param filterZeroWidth - <code>TRUE</code> if ZWJ / ZWNJ characters should map to a glyph w/ no contours.
* @param glyphStorage - the object which contains the output glyph array
*
* @see LECharMapper
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, LEGlyphStorage &glyphStorage) const;
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, const LECharMapper *mapper, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage) const;
+
+ /**
+ * This method maps a single character to a glyph index, using the
+ * font's character to glyph map. The default implementation of this
+ * method calls the mapper, and then calls <code>mapCharToGlyph(mappedCh)</code>.
+ *
+ * @param ch - the character
+ * @param mapper - the character mapper
+ * @param filterZeroWidth - <code>TRUE</code> if ZWJ / ZWNJ characters should map to a glyph w/ no contours.
+ *
+ * @return the glyph index
+ *
+ * @see LECharMapper
+ *
+ * @draft ICU 3.6
+ */
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const;
+
/**
* This method maps a single character to a glyph index, using the
@@ -305,7 +324,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline float xUnitsToPoints(float xUnits) const;
+ virtual float xUnitsToPoints(float xUnits) const;
/**
* This method converts font design units in the
@@ -317,7 +336,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline float yUnitsToPoints(float yUnits) const;
+ virtual float yUnitsToPoints(float yUnits) const;
/**
* This method converts font design units to points.
@@ -327,7 +346,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline void unitsToPoints(LEPoint &units, LEPoint &points) const;
+ virtual void unitsToPoints(LEPoint &units, LEPoint &points) const;
/**
* This method converts pixels in the
@@ -339,7 +358,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline float xPixelsToUnits(float xPixels) const;
+ virtual float xPixelsToUnits(float xPixels) const;
/**
* This method converts pixels in the
@@ -351,7 +370,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline float yPixelsToUnits(float yPixels) const;
+ virtual float yPixelsToUnits(float yPixels) const;
/**
* This method converts pixels to font design units.
@@ -361,7 +380,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline void pixelsToUnits(LEPoint &pixels, LEPoint &units) const;
+ virtual void pixelsToUnits(LEPoint &pixels, LEPoint &units) const;
/**
* Get the X scale factor from the font's transform. The default
@@ -403,7 +422,7 @@ public:
*
* @stable ICU 3.2
*/
- virtual inline void transformFunits(float xFunits, float yFunits, LEPoint &pixels) const;
+ virtual void transformFunits(float xFunits, float yFunits, LEPoint &pixels) const;
/**
* This is a convenience method used to convert
@@ -492,59 +511,16 @@ public:
static UClassID getStaticClassID();
/**
- * Returns true if writing direction is vertical.
+ * Returns kern value for a glyph pair, if the font has a kern pair list.
*/
- virtual inline bool getLayoutDirVertical() const;
+ virtual void getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const;
/**
- * Returns kern value for a glyph pair, if the font has a kern pair list.
+ * Returns true if writing direction is vertical.
*/
- virtual void getKernPair(LEGlyphID leftGlyph, LEGlyphID rightGlyph, LEPoint &kern) const;
+ virtual inline bool getLayoutDirVertical() const;
};
-inline le_bool LEFontInstance::canDisplay(LEUnicode32 ch) const
-{
- return LE_GET_GLYPH(mapCharToGlyph(ch)) != 0;
-}
-
-inline float LEFontInstance::xUnitsToPoints(float xUnits) const
-{
- return (xUnits * getXPixelsPerEm()) / (float) getUnitsPerEM();
-}
-
-inline float LEFontInstance::yUnitsToPoints(float yUnits) const
-{
- return (yUnits * getYPixelsPerEm()) / (float) getUnitsPerEM();
-}
-
-inline void LEFontInstance::unitsToPoints(LEPoint &units, LEPoint &points) const
-{
- points.fX = xUnitsToPoints(units.fX);
- points.fY = yUnitsToPoints(units.fY);
-}
-
-inline float LEFontInstance::xPixelsToUnits(float xPixels) const
-{
- return (xPixels * getUnitsPerEM()) / (float) getXPixelsPerEm();
-}
-
-inline float LEFontInstance::yPixelsToUnits(float yPixels) const
-{
- return (yPixels * getUnitsPerEM()) / (float) getYPixelsPerEm();
-}
-
-inline void LEFontInstance::pixelsToUnits(LEPoint &pixels, LEPoint &units) const
-{
- units.fX = xPixelsToUnits(pixels.fX);
- units.fY = yPixelsToUnits(pixels.fY);
-}
-
-inline void LEFontInstance::transformFunits(float xFunits, float yFunits, LEPoint &pixels) const
-{
- pixels.fX = xUnitsToPoints(xFunits) * getScaleFactorX();
- pixels.fY = yUnitsToPoints(yFunits) * getScaleFactorY();
-}
-
inline float LEFontInstance::fixedToFloat(le_int32 fixed)
{
return (float) (fixed / 65536.0);
@@ -555,11 +531,6 @@ inline le_int32 LEFontInstance::floatToFixed(float theFloat)
return (le_int32) (theFloat * 65536.0);
}
-inline le_int32 LEFontInstance::getLineHeight() const
-{
- return getAscent() + getDescent() + getLeading();
-}
-
inline bool LEFontInstance::getLayoutDirVertical() const
{
return false;
diff --git a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp
index 55cbbbfcb21..1b595159a11 100644
--- a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp
+++ b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1998-2004, International Business Machines
+ * Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -13,6 +13,11 @@ U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LEGlyphStorage)
+LEInsertionCallback::~LEInsertionCallback()
+{
+ // nothing to do...
+}
+
LEGlyphStorage::LEGlyphStorage()
: fGlyphCount(0), fGlyphs(NULL), fCharIndices(NULL), fPositions(NULL),
fAuxData(NULL), fAuxParam(NULL), fInsertionList(NULL), fSrcIndex(0), fDestIndex(0)
@@ -38,6 +43,7 @@ void LEGlyphStorage::reset()
LE_DELETE_ARRAY(fAuxData);
fAuxData = NULL;
}
+
if (fAuxParam != NULL) {
LE_DELETE_ARRAY(fAuxParam);
fAuxParam = NULL;
@@ -119,7 +125,8 @@ le_int32 LEGlyphStorage::allocatePositions(LEErrorCode &success)
}
if (fPositions != NULL) {
- LE_DELETE_ARRAY(fPositions);
+ success = LE_INTERNAL_ERROR;
+ return -1;
}
fPositions = LE_NEW_ARRAY(float, 2 * (fGlyphCount + 1));
@@ -139,7 +146,12 @@ le_int32 LEGlyphStorage::allocateAuxData(LEErrorCode &success)
return -1;
}
- fAuxData = LE_NEW_ARRAY(void *, fGlyphCount);
+ if (fAuxData != NULL || fAuxParam != NULL) {
+ success = LE_INTERNAL_ERROR;
+ return -1;
+ }
+
+ fAuxData = LE_NEW_ARRAY(le_uint32, fGlyphCount);
fAuxParam = LE_NEW_ARRAY(void *, fGlyphCount);
if (fAuxData == NULL || fAuxParam == NULL) {
@@ -311,7 +323,7 @@ void LEGlyphStorage::setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErr
fCharIndices[glyphIndex] = charIndex;
}
-void LEGlyphStorage::getAuxData(void *auxData[], LEErrorCode &success) const
+void LEGlyphStorage::getAuxData(le_uint32 auxData[], LEErrorCode &success) const
{
if (LE_FAILURE(success)) {
return;
@@ -330,26 +342,26 @@ void LEGlyphStorage::getAuxData(void *auxData[], LEErrorCode &success) const
LE_ARRAY_COPY(auxData, fAuxData, fGlyphCount);
}
-void *LEGlyphStorage::getAuxData(le_int32 glyphIndex, LEErrorCode &success) const
+le_uint32 LEGlyphStorage::getAuxData(le_int32 glyphIndex, LEErrorCode &success) const
{
if (LE_FAILURE(success)) {
- return NULL;
+ return 0;
}
if (fAuxData == NULL) {
success = LE_NO_LAYOUT_ERROR;
- return NULL;
+ return 0;
}
if (glyphIndex < 0 || glyphIndex >= fGlyphCount) {
success = LE_INDEX_OUT_OF_BOUNDS_ERROR;
- return NULL;
+ return 0;
}
return fAuxData[glyphIndex];
}
-void *LEGlyphStorage::getAuxData2(le_int32 glyphIndex, LEErrorCode &success) const
+void *LEGlyphStorage::getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const
{
if (LE_FAILURE(success)) {
return NULL;
@@ -368,7 +380,7 @@ void *LEGlyphStorage::getAuxData2(le_int32 glyphIndex, LEErrorCode &success) con
return fAuxParam[glyphIndex];
}
-void LEGlyphStorage::setAuxData(le_int32 glyphIndex, void *auxData, void *auxParam, LEErrorCode &success)
+void LEGlyphStorage::setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return;
@@ -499,6 +511,7 @@ void LEGlyphStorage::adoptAuxDataArrays(LEGlyphStorage &from)
if (fAuxData != NULL) {
LE_DELETE_ARRAY(fAuxData);
}
+
if (fAuxParam != NULL) {
LE_DELETE_ARRAY(fAuxParam);
}
@@ -539,8 +552,9 @@ le_int32 LEGlyphStorage::applyInsertions()
fCharIndices = (le_int32 *) LE_GROW_ARRAY(fCharIndices, newGlyphCount);
if (fAuxData != NULL) {
- fAuxData = (void **) LE_GROW_ARRAY(fAuxData, newGlyphCount);
+ fAuxData = (le_uint32 *) LE_GROW_ARRAY(fAuxData, newGlyphCount);
}
+
if (fAuxParam != NULL) {
fAuxParam = (void **) LE_GROW_ARRAY(fAuxParam, newGlyphCount);
}
diff --git a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h
index 34e3f3df93b..3855a4fd716 100644
--- a/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h
+++ b/Build/source/libs/icu-xetex/layout/LEGlyphStorage.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1998-2005, International Business Machines
+ * Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -29,7 +29,7 @@ U_NAMESPACE_BEGIN
*
* @see LEInsertionList.h
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
class U_LAYOUT_API LEGlyphStorage : public UObject, protected LEInsertionCallback
{
@@ -67,10 +67,9 @@ private:
*
* @internal
*/
- void **fAuxData;
+ le_uint32 *fAuxData;
void **fAuxParam;
-
/**
* The insertion list, used to grow the above arrays.
*
@@ -106,7 +105,7 @@ protected:
*
* @see LEInsertionList.h
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]);
@@ -116,11 +115,15 @@ public:
* Allocates an empty <code>LEGlyphStorage</code> object. You must call
* <code>allocateGlyphArray, allocatePositions and allocateAuxData</code>
* to allocate the data.
+ *
+ * @stable ICU 3.0
*/
LEGlyphStorage();
/**
* The destructor. This will deallocate all of the arrays.
+ *
+ * @stable ICU 3.0
*/
~LEGlyphStorage();
@@ -129,7 +132,7 @@ public:
*
* @return the number of glyphs in the glyph array
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline le_int32 getGlyphCount() const;
@@ -141,7 +144,7 @@ public:
* @param glyphs - the destiniation glyph array
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getGlyphs(LEGlyphID glyphs[], LEErrorCode &success) const;
@@ -155,7 +158,7 @@ public:
* @param extraBits - this value will be ORed with each glyph index
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getGlyphs(le_uint32 glyphs[], le_uint32 extraBits, LEErrorCode &success) const;
@@ -167,7 +170,7 @@ public:
* @param charIndices - the destiniation character index array
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getCharIndices(le_int32 charIndices[], LEErrorCode &success) const;
@@ -180,7 +183,7 @@ public:
* @param indexBase - an offset which will be added to each index
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getCharIndices(le_int32 charIndices[], le_int32 indexBase, LEErrorCode &success) const;
@@ -193,7 +196,7 @@ public:
* @param positions - the destiniation position array
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getGlyphPositions(float positions[], LEErrorCode &success) const;
@@ -209,7 +212,7 @@ public:
* @param y - the glyph's Y position
* @param success - set to an error code if the operation fails
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEErrorCode &success) const;
@@ -223,7 +226,7 @@ public:
* @param success set to an error code if the storage cannot be allocated of if the initial
* glyph count is not positive.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void allocateGlyphArray(le_int32 initialGlyphCount, le_bool rightToLeft, LEErrorCode &success);
@@ -235,7 +238,7 @@ public:
*
* @return the number of X, Y position pairs allocated.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
le_int32 allocatePositions(LEErrorCode &success);
@@ -246,7 +249,7 @@ public:
*
* @return the size of the auxillary data array.
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
le_int32 allocateAuxData(LEErrorCode &success);
@@ -256,9 +259,9 @@ public:
* @param auxData the auxillary data array will be copied to this address
* @param success set to an error code if the data cannot be copied
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
- void getAuxData(void *auxData[], LEErrorCode &success) const;
+ void getAuxData(le_uint32 auxData[], LEErrorCode &success) const;
/**
* Get the glyph ID for a particular glyph.
@@ -268,7 +271,7 @@ public:
*
* @return the glyph ID
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
LEGlyphID getGlyphID(le_int32 glyphIndex, LEErrorCode &success) const;
@@ -280,7 +283,7 @@ public:
*
* @return the character index
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
le_int32 getCharIndex(le_int32 glyphIndex, LEErrorCode &success) const;
@@ -293,10 +296,10 @@ public:
*
* @return the auxillary data
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
- void *getAuxData(le_int32 glyphIndex, LEErrorCode &success) const;
- void *getAuxData2(le_int32 glyphIndex, LEErrorCode &success) const;
+ le_uint32 getAuxData(le_int32 glyphIndex, LEErrorCode &success) const;
+ void *getAuxParam(le_int32 glyphIndex, LEErrorCode &success) const;
/**
* This operator allows direct access to the glyph array
@@ -306,7 +309,7 @@ public:
*
* @return a reference to the given location in the glyph array
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
inline LEGlyphID &operator[](le_int32 glyphIndex) const;
@@ -324,7 +327,7 @@ public:
*
* @see LEInsetionList.h
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
LEGlyphID *insertGlyphs(le_int32 atIndex, le_int32 insertCount);
@@ -338,7 +341,7 @@ public:
*
* @see LEInsertionList.h
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
le_int32 applyInsertions();
@@ -349,7 +352,7 @@ public:
* @param glyphID the new glyph ID
* @param success will be set to an error code if the glyph ID cannot be set.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setGlyphID(le_int32 glyphIndex, LEGlyphID glyphID, LEErrorCode &success);
@@ -360,7 +363,7 @@ public:
* @param charIndex the new char index
* @param success will be set to an error code if the char index cannot be set.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setCharIndex(le_int32 glyphIndex, le_int32 charIndex, LEErrorCode &success);
@@ -372,7 +375,7 @@ public:
* @param y the new Y position
* @param success will be set to an error code if the position cannot be set.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void setPosition(le_int32 glyphIndex, float x, float y, LEErrorCode &success);
@@ -384,7 +387,7 @@ public:
* @param yAdjust the adjustment to the glyph's Y position
* @param success will be set to an error code if the glyph's position cannot be adjusted.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adjustPosition(le_int32 glyphIndex, float xAdjust, float yAdjust, LEErrorCode &success);
@@ -396,9 +399,9 @@ public:
* @param auxParam the new secondary auxiliary data (parameter)
* @param success will be set to an error code if the auxiliary data cannot be set.
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
- void setAuxData(le_int32 glyphIndex, void *auxData, void *auxParam, LEErrorCode &success);
+ void setAuxData(le_int32 glyphIndex, le_uint32 auxData, void *auxParam, LEErrorCode &success);
/**
* Delete the glyph array and replace it with the one
@@ -408,7 +411,7 @@ public:
* @param from the <code>LEGlyphStorage</code> object from which
* to get the new glyph array.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptGlyphArray(LEGlyphStorage &from);
@@ -420,7 +423,7 @@ public:
* @param from the <code>LEGlyphStorage</code> object from which
* to get the new char indices array.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptCharIndicesArray(LEGlyphStorage &from);
@@ -432,7 +435,7 @@ public:
* @param from the <code>LEGlyphStorage</code> object from which
* to get the new position array.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptPositionArray(LEGlyphStorage &from);
@@ -444,7 +447,7 @@ public:
* @param from the <code>LEGlyphStorage</code> object from which
* to get the new auxillary data array.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptAuxDataArrays(LEGlyphStorage &from);
@@ -455,7 +458,7 @@ public:
* @param from the <code>LEGlyphStorage</code> object from which
* to get the new glyph count.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptGlyphCount(LEGlyphStorage &from);
@@ -464,7 +467,7 @@ public:
*
* @param newGlyphCount the new glyph count.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void adoptGlyphCount(le_int32 newGlyphCount);
@@ -474,21 +477,21 @@ public:
* to layout a different characer array. (This method is also called
* by the destructor)
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
void reset();
/**
* ICU "poor man's RTTI", returns a UClassID for the actual class.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
virtual UClassID getDynamicClassID() const;
/**
* ICU "poor man's RTTI", returns a UClassID for this class.
*
- * @draft ICU 3.0
+ * @stable ICU 3.0
*/
static UClassID getStaticClassID();
};
diff --git a/Build/source/libs/icu-xetex/layout/LEInsertionList.h b/Build/source/libs/icu-xetex/layout/LEInsertionList.h
index 2d67c2a5df1..a894295280d 100644
--- a/Build/source/libs/icu-xetex/layout/LEInsertionList.h
+++ b/Build/source/libs/icu-xetex/layout/LEInsertionList.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 1998-2004, International Business Machines
+ * Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -20,7 +20,7 @@ struct InsertionRecord;
*
* @internal
*/
-class LEInsertionCallback
+class U_LAYOUT_API LEInsertionCallback
{
public:
/**
@@ -37,6 +37,11 @@ public:
* @internal
*/
virtual le_bool applyInsertion(le_int32 atPosition, le_int32 count, LEGlyphID newGlyphs[]) = 0;
+
+ /**
+ * The destructor
+ */
+ virtual ~LEInsertionCallback();
};
/**
diff --git a/Build/source/libs/icu-xetex/layout/LELanguages.h b/Build/source/libs/icu-xetex/layout/LELanguages.h
index 6248237ee80..563ddcfd179 100644
--- a/Build/source/libs/icu-xetex/layout/LELanguages.h
+++ b/Build/source/libs/icu-xetex/layout/LELanguages.h
@@ -1,9 +1,11 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 08/21/2006 02:35:14 PM HST
*/
#ifndef __LELANGUAGES_H
@@ -12,7 +14,7 @@
#include "LETypes.h"
/**
- * \file
+ * \file
* \brief C++ API: List of language codes for LayoutEngine
*/
@@ -23,7 +25,7 @@ U_NAMESPACE_BEGIN
* this is just a list of languages which the LayoutEngine
* supports.
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
enum LanguageCodes {
diff --git a/Build/source/libs/icu-xetex/layout/LEScripts.h b/Build/source/libs/icu-xetex/layout/LEScripts.h
index a0593d2afa4..f8e7ac5b151 100644
--- a/Build/source/libs/icu-xetex/layout/LEScripts.h
+++ b/Build/source/libs/icu-xetex/layout/LEScripts.h
@@ -1,28 +1,30 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 08/21/2006 02:35:13 PM HST
*/
#ifndef __LESCRIPTS_H
#define __LESCRIPTS_H
#include "LETypes.h"
+
/**
- * \file
+ * \file
* \brief C++ API: Constants for Unicode script values
*/
-
U_NAMESPACE_BEGIN
/**
* Constants for Unicode script values, generated using
* ICU4J's <code>UScript</code> class.
*
- * @draft ICU 3.0
+ * @draft ICU 3.6
*/
enum ScriptCodes {
@@ -33,7 +35,7 @@ enum ScriptCodes {
bengScriptCode = 4,
bopoScriptCode = 5,
cherScriptCode = 6,
- qaacScriptCode = 7,
+ coptScriptCode = 7,
cyrlScriptCode = 8,
dsrtScriptCode = 9,
devaScriptCode = 10,
@@ -81,8 +83,57 @@ enum ScriptCodes {
taleScriptCode = 52,
ugarScriptCode = 53,
hrktScriptCode = 54,
+ bugiScriptCode = 55,
+ glagScriptCode = 56,
+ kharScriptCode = 57,
+ syloScriptCode = 58,
+ taluScriptCode = 59,
+ tfngScriptCode = 60,
+ xpeoScriptCode = 61,
+ baliScriptCode = 62,
+ batkScriptCode = 63,
+ blisScriptCode = 64,
+ brahScriptCode = 65,
+ chamScriptCode = 66,
+ cirtScriptCode = 67,
+ cyrsScriptCode = 68,
+ egydScriptCode = 69,
+ egyhScriptCode = 70,
+ egypScriptCode = 71,
+ geokScriptCode = 72,
+ hansScriptCode = 73,
+ hantScriptCode = 74,
+ hmngScriptCode = 75,
+ hungScriptCode = 76,
+ indsScriptCode = 77,
+ javaScriptCode = 78,
+ kaliScriptCode = 79,
+ latfScriptCode = 80,
+ latgScriptCode = 81,
+ lepcScriptCode = 82,
+ linaScriptCode = 83,
+ mandScriptCode = 84,
+ mayaScriptCode = 85,
+ meroScriptCode = 86,
+ nkooScriptCode = 87,
+ orkhScriptCode = 88,
+ permScriptCode = 89,
+ phagScriptCode = 90,
+ phnxScriptCode = 91,
+ plrdScriptCode = 92,
+ roroScriptCode = 93,
+ saraScriptCode = 94,
+ syreScriptCode = 95,
+ syrjScriptCode = 96,
+ syrnScriptCode = 97,
+ tengScriptCode = 98,
+ vaiiScriptCode = 99,
+ vispScriptCode = 100,
+ xsuxScriptCode = 101,
+ zxxxScriptCode = 102,
+ zzzzScriptCode = 103,
- scriptCodeCount = 55
+ scriptCodeCount = 104
};
U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/LETypes.h b/Build/source/libs/icu-xetex/layout/LETypes.h
index 31670d51845..51da9cb513c 100644
--- a/Build/source/libs/icu-xetex/layout/LETypes.h
+++ b/Build/source/libs/icu-xetex/layout/LETypes.h
@@ -1,7 +1,6 @@
-
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -267,6 +266,14 @@ struct LEPoint
typedef struct LEPoint LEPoint;
#endif
+
+/**
+ * A convenience macro to get the length of an array.
+ *
+ * @internal
+ */
+#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
#ifdef LE_USE_CMEMORY
/**
* A convenience macro for copying an array.
diff --git a/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp
index 3bfb6c9d96b..381460c067f 100644
--- a/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/LayoutEngine.cpp
@@ -1,7 +1,7 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -13,9 +13,11 @@
#include "ArabicLayoutEngine.h"
#include "CanonShaping.h"
#include "HanLayoutEngine.h"
+#include "HangulLayoutEngine.h"
#include "IndicLayoutEngine.h"
#include "KhmerLayoutEngine.h"
#include "ThaiLayoutEngine.h"
+#include "TibetanLayoutEngine.h"
#include "GXLayoutEngine.h"
#include "ScriptAndLanguageTags.h"
#include "CharSubstitutionFilter.h"
@@ -32,8 +34,6 @@
U_NAMESPACE_BEGIN
-#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-
const LEUnicode32 DefaultCharMapper::controlChars[] = {
0x0009, 0x000A, 0x000D,
/*0x200C, 0x200D,*/ 0x200E, 0x200F,
@@ -41,29 +41,7 @@ const LEUnicode32 DefaultCharMapper::controlChars[] = {
0x206A, 0x206B, 0x206C, 0x206D, 0x206E, 0x206F
};
-const le_int32 DefaultCharMapper::controlCharsCount = ARRAY_SIZE(controlChars);
-
-const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
- 0x0028, 0x0029, // ascii paired punctuation
- 0x003c, 0x003e,
- 0x005b, 0x005d,
- 0x007b, 0x007d,
- 0x2045, 0x2046, // math symbols (not complete)
- 0x207d, 0x207e,
- 0x208d, 0x208e,
- 0x2264, 0x2265,
- 0x3008, 0x3009, // chinese paired punctuation
- 0x300a, 0x300b,
- 0x300c, 0x300d,
- 0x300e, 0x300f,
- 0x3010, 0x3011,
- 0x3014, 0x3015,
- 0x3016, 0x3017,
- 0x3018, 0x3019,
- 0x301a, 0x301b
-};
-
-const le_int32 DefaultCharMapper::mirroredCharsCount = ARRAY_SIZE(mirroredChars);
+const le_int32 DefaultCharMapper::controlCharsCount = LE_ARRAY_SIZE(controlChars);
LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
{
@@ -76,12 +54,10 @@ LEUnicode32 DefaultCharMapper::mapChar(LEUnicode32 ch) const
}
if (fMirror) {
- le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)mirroredChars, mirroredCharsCount);
+ le_int32 index = OpenTypeUtilities::search((le_uint32) ch, (le_uint32 *)DefaultCharMapper::mirroredChars, DefaultCharMapper::mirroredCharsCount);
if (mirroredChars[index] == ch) {
- le_int32 mirrorOffset = ((index & 1) == 0) ? 1 : -1;
-
- return mirroredChars[index + mirrorOffset];
+ return DefaultCharMapper::srahCderorrim[index];
}
}
@@ -110,11 +86,18 @@ CharSubstitutionFilter::~CharSubstitutionFilter()
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LayoutEngine)
-static const LETag emptyTag = 0x00000000;
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
-static const LETag ccmpFeatureTag = LE_CCMP_FEATURE_TAG;
+#define ccmpFeatureMask 0x80000000UL
-static const LETag canonFeatures[] = {ccmpFeatureTag, emptyTag};
+#define canonFeatures (ccmpFeatureMask)
+
+static const FeatureMap canonFeatureMap[] =
+{
+ {ccmpFeatureTag, ccmpFeatureMask}
+};
+
+static const le_int32 canonFeatureMapCount = LE_ARRAY_SIZE(canonFeatureMap);
LayoutEngine::LayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode, le_int32 typoFlags)
: fGlyphStorage(NULL), fFontInstance(fontInstance), fScriptCode(scriptCode), fLanguageCode(languageCode),
@@ -161,7 +144,7 @@ void LayoutEngine::getGlyphPosition(le_int32 glyphIndex, float &x, float &y, LEE
}
le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
- LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+ LEUnicode *&outChars, LEGlyphStorage &/*glyphStorage*/, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
return 0;
@@ -181,6 +164,13 @@ le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 off
CharSubstitutionFilter *substitutionFilter = new CharSubstitutionFilter(fFontInstance);
const LEUnicode *inChars = &chars[offset];
LEUnicode *reordered = NULL;
+ LEGlyphStorage fakeGlyphStorage;
+
+ fakeGlyphStorage.allocateGlyphArray(count, rightToLeft, success);
+
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
// This is the cheapest way to get mark reordering only for Hebrew.
// We could just do the mark reordering for all scripts, but most
@@ -193,12 +183,11 @@ le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 off
return 0;
}
- CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, reordered, glyphStorage);
+ CanonShaping::reorderMarks(&chars[offset], count, rightToLeft, reordered, fakeGlyphStorage);
inChars = reordered;
- }
+ }
- glyphStorage.allocateGlyphArray(count, rightToLeft, success);
- glyphStorage.allocateAuxData(success);
+ fakeGlyphStorage.allocateAuxData(success);
if (LE_FAILURE(success)) {
return 0;
@@ -210,21 +199,21 @@ le_int32 LayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 off
}
for (i = 0; i < count; i += 1, out += dir) {
- glyphStorage[out] = (LEGlyphID) inChars[i];
- glyphStorage.setAuxData(out, (void *) canonFeatures, NULL, success);
+ fakeGlyphStorage[out] = (LEGlyphID) inChars[i];
+ fakeGlyphStorage.setAuxData(out, canonFeatures, NULL, success);
}
if (reordered != NULL) {
LE_DELETE_ARRAY(reordered);
}
- outCharCount = canonGSUBTable->process(glyphStorage, rightToLeft, scriptTag, langSysTag, NULL, substitutionFilter, NULL);
+ outCharCount = canonGSUBTable->process(fakeGlyphStorage, rightToLeft, scriptTag, langSysTag, NULL, substitutionFilter, canonFeatureMap, canonFeatureMapCount, FALSE);
- out = (rightToLeft? count - 1 : 0);
+ out = (rightToLeft? outCharCount - 1 : 0);
outChars = LE_NEW_ARRAY(LEUnicode, outCharCount);
for (i = 0; i < outCharCount; i += 1, out += dir) {
- outChars[out] = (LEUnicode) LE_GET_GLYPH(glyphStorage[i]);
+ outChars[out] = (LEUnicode) LE_GET_GLYPH(fakeGlyphStorage[i]);
}
delete substitutionFilter;
@@ -249,10 +238,10 @@ le_int32 LayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offset, l
le_int32 outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, glyphStorage, success);
if (outChars != NULL) {
- mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft, glyphStorage, success);
+ mapCharsToGlyphs(outChars, 0, outCharCount, rightToLeft, rightToLeft, TRUE, glyphStorage, success);
LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
} else {
- mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, glyphStorage, success);
+ mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, TRUE, glyphStorage, success);
}
return glyphStorage.getGlyphCount();
@@ -409,7 +398,7 @@ const void *LayoutEngine::getFontTable(LETag tableTag) const
return fFontInstance->getFontTable(tableTag);
}
-void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror,
+void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth,
LEGlyphStorage &glyphStorage, LEErrorCode &success)
{
if (LE_FAILURE(success)) {
@@ -420,7 +409,7 @@ void LayoutEngine::mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le
DefaultCharMapper charMapper(TRUE, mirror);
- fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse, &charMapper, glyphStorage);
+ fFontInstance->mapCharsToGlyphs(chars, offset, count, reverse, &charMapper, filterZeroWidth, glyphStorage);
}
// Input: characters, font?
@@ -439,6 +428,10 @@ le_int32 LayoutEngine::layoutChars(const LEUnicode chars[], le_int32 offset, le_
}
le_int32 glyphCount;
+
+ if (fGlyphStorage->getGlyphCount() > 0) {
+ fGlyphStorage->reset();
+ }
glyphCount = computeGlyphs(chars, offset, count, max, rightToLeft, *fGlyphStorage, success);
positionGlyphs(*fGlyphStorage, x, y, success);
@@ -483,6 +476,7 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
case guruScriptCode:
case tamlScriptCode:
case teluScriptCode:
+ case sinhScriptCode:
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
@@ -492,6 +486,10 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
result = new ArabicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
+ case hangScriptCode:
+ result = new HangulOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
+ break;
+
case haniScriptCode:
languageTag = OpenTypeLayoutEngine::getLangSysTag(languageCode);
@@ -513,6 +511,10 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
break;
+ case tibtScriptCode:
+ result = new TibetanOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
+ break;
+
case khmrScriptCode:
result = new KhmerOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable);
break;
@@ -537,6 +539,7 @@ LayoutEngine *LayoutEngine::layoutEngineFactory(const LEFontInstance *fontInstan
case guruScriptCode:
case tamlScriptCode:
case teluScriptCode:
+ case sinhScriptCode:
{
result = new IndicOpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags);
break;
diff --git a/Build/source/libs/icu-xetex/layout/LayoutEngine.h b/Build/source/libs/icu-xetex/layout/LayoutEngine.h
index 43403351173..172d4e1798a 100644
--- a/Build/source/libs/icu-xetex/layout/LayoutEngine.h
+++ b/Build/source/libs/icu-xetex/layout/LayoutEngine.h
@@ -1,7 +1,7 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -254,6 +254,7 @@ protected:
* @param count - the number of characters to be mapped
* @param reverse - if <code>TRUE</code>, the output will be in reverse order
* @param mirror - if <code>TRUE</code>, do character mirroring
+ * @param filterZeroWidth - if <code>TRUE</code> replace ZWJ / ZWNJ with a glyph with no contours.
* @param glyphStorage - the object which holds the per-glyph storage. The glyph and char
* indices arrays will be filled in.
* @param success - set to an error code if the operation fails
@@ -262,7 +263,7 @@ protected:
*
* @internal
*/
- virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+ virtual void mapCharsToGlyphs(const LEUnicode chars[], le_int32 offset, le_int32 count, le_bool reverse, le_bool mirror, le_bool filterZeroWidth, LEGlyphStorage &glyphStorage, LEErrorCode &success);
/**
* This is a convenience method that forces the advance width of mark
@@ -313,7 +314,7 @@ public:
/**
* This method will invoke the layout steps in their correct order by calling
- * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods.. It will
+ * the computeGlyphs, positionGlyphs and adjustGlyphPosition methods. It will
* compute the glyph, character index and position arrays.
*
* @param chars - the input character context
@@ -327,8 +328,12 @@ public:
*
* @return the number of glyphs in the glyph array
*
- * Note; the glyph, character index and position array can be accessed
- * using the getter method below.
+ * Note: The glyph, character index and position array can be accessed
+ * using the getter methods below.
+ *
+ * Note: If you call this method more than once, you must call the reset()
+ * method first to free the glyph, character index and position arrays
+ * allocated by the previous call.
*
* @stable ICU 2.8
*/
diff --git a/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp b/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp
index 985fb7c3408..107fd496480 100644
--- a/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp
+++ b/Build/source/libs/icu-xetex/layout/LookupProcessor.cpp
@@ -19,12 +19,6 @@
U_NAMESPACE_BEGIN
-const LETag LookupProcessor::notSelected = 0x00000000;
-const LETag LookupProcessor::defaultFeature = 0xFFFFFFFF;
-
-static const LETag emptyTag = 0x00000000;
-
-
le_uint32 LookupProcessor::applyLookupTable(const LookupTable *lookupTable, GlyphIterator *glyphIterator,
const LEFontInstance *fontInstance) const
{
@@ -64,13 +58,13 @@ le_int32 LookupProcessor::process(LEGlyphStorage &glyphStorage, GlyphPositionAdj
for (le_uint16 order = 0; order < lookupOrderCount; order += 1) {
le_uint16 lookup = lookupOrderArray[order];
- LETag selectTag = lookupSelectArray[lookup];
+ FeatureMask selectMask = lookupSelectArray[lookup];
- if (selectTag != notSelected) {
+ if (selectMask != 0) {
const LookupTable *lookupTable = lookupListTable->getLookupTable(lookup);
le_uint16 lookupFlags = SWAPW(lookupTable->lookupFlags);
- glyphIterator.reset(lookupFlags, selectTag);
+ glyphIterator.reset(lookupFlags, selectMask);
while (glyphIterator.findFeatureTag()) {
le_uint32 delta = 1;
@@ -98,7 +92,7 @@ le_uint32 LookupProcessor::applySingleLookup(le_uint16 lookupTableIndex, GlyphIt
return delta;
}
-le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, LETag featureTag, le_int32 order)
+le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order)
{
le_uint16 lookupCount = featureTable? SWAPW(featureTable->lookupCount) : 0;
le_int32 store = order;
@@ -106,10 +100,8 @@ le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, LETag
for (le_uint16 lookup = 0; lookup < lookupCount; lookup += 1) {
le_uint16 lookupListIndex = SWAPW(featureTable->lookupListIndexArray[lookup]);
- if (lookupSelectArray[lookupListIndex] == notSelected) {
- lookupSelectArray[lookupListIndex] = featureTag;
- lookupOrderArray[store++] = lookupListIndex;
- }
+ lookupSelectArray[lookupListIndex] |= featureMask;
+ lookupOrderArray[store++] = lookupListIndex;
}
return store - order;
@@ -117,9 +109,9 @@ le_int32 LookupProcessor::selectLookups(const FeatureTable *featureTable, LETag
LookupProcessor::LookupProcessor(const char *baseAddress,
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const LETag *featureOrder)
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures)
: lookupListTable(NULL), featureListTable(NULL), lookupSelectArray(NULL),
- requiredFeatureTag(notSelected), lookupOrderArray(NULL), lookupOrderCount(0)
+ lookupOrderArray(NULL), lookupOrderCount(0)
{
const ScriptListTable *scriptListTable = NULL;
const LangSysTable *langSysTable = NULL;
@@ -152,39 +144,66 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
requiredFeatureIndex = SWAPW(langSysTable->reqFeatureIndex);
- lookupSelectArray = LE_NEW_ARRAY(LETag, lookupListCount);
+ lookupSelectArray = LE_NEW_ARRAY(FeatureMask, lookupListCount);
for (int i = 0; i < lookupListCount; i += 1) {
- lookupSelectArray[i] = notSelected;
+ lookupSelectArray[i] = 0;
}
le_int32 count, order = 0;
- const FeatureTable *featureTable = 0;
+ le_int32 featureReferences = 0;
+ const FeatureTable *featureTable = NULL;
LETag featureTag;
- lookupOrderArray = LE_NEW_ARRAY(le_uint16, lookupListCount);
+ const FeatureTable *requiredFeatureTable = NULL;
+ LETag requiredFeatureTag = 0x00000000U;
+
+ // Count the total number of lookups referenced by all features. This will
+ // be the maximum number of entries in the lookupOrderArray. We can't use
+ // lookupListCount because some lookups might be referenced by more than
+ // one feature.
+ for (le_int32 feature = 0; feature < featureCount; feature += 1) {
+ le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
+
+ featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
+ featureReferences += SWAPW(featureTable->lookupCount);
+ }
if (requiredFeatureIndex != 0xFFFF) {
- featureTable = featureListTable->getFeatureTable(requiredFeatureIndex, &featureTag);
- order += selectLookups(featureTable, defaultFeature, order);
+ requiredFeatureTable = featureListTable->getFeatureTable(requiredFeatureIndex, &requiredFeatureTag);
+ featureReferences += SWAPW(featureTable->lookupCount);
}
- if (featureOrder != NULL) {
- if (order > 1) {
- OpenTypeUtilities::sort(lookupOrderArray, order);
+ lookupOrderArray = LE_NEW_ARRAY(le_uint16, featureReferences);
+
+ for (le_int32 f = 0; f < featureMapCount; f += 1) {
+ FeatureMap fm = featureMap[f];
+ count = 0;
+
+ // If this is the required feature, add its lookups
+ if (requiredFeatureTag == fm.tag) {
+ count += selectLookups(requiredFeatureTable, fm.mask, order);
}
- for (le_int32 tag = 0; featureOrder[tag] != emptyTag; tag += 1) {
- featureTag = featureOrder[tag];
- count = 0;
+ if (orderFeatures) {
+ // If we added lookups from the required feature, sort them
+ if (count > 1) {
+ OpenTypeUtilities::sort(lookupOrderArray, order);
+ }
for (le_uint16 feature = 0; feature < featureCount; feature += 1) {
le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
+
+ // don't add the required feature to the list more than once...
+ // TODO: Do we need this check? (Spec. says required feature won't be in feature list...)
+ if (featureIndex == requiredFeatureIndex) {
+ continue;
+ }
featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
- if (featureTag == featureOrder[tag]) {
- count += selectLookups(featureTable, featureTag, order + count);
+ if (featureTag == fm.tag) {
+ count += selectLookups(featureTable, fm.mask, order + count);
}
}
@@ -193,24 +212,51 @@ LookupProcessor::LookupProcessor(const char *baseAddress,
}
order += count;
- }
- } else {
- for (le_uint16 feature = 0; feature < featureCount; feature += 1) {
- le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
+ } else {
+ for (le_uint16 feature = 0; feature < featureCount; feature += 1) {
+ le_uint16 featureIndex = SWAPW(langSysTable->featureIndexArray[feature]);
- // don't add the required feature to the list more than once...
- if (featureIndex == requiredFeatureIndex) {
- continue;
- }
+ // don't add the required feature to the list more than once...
+ // NOTE: This check is commented out because the spec. says that
+ // the required feature won't be in the feature list, and because
+ // any duplicate entries will be removed below.
+#if 0
+ if (featureIndex == requiredFeatureIndex) {
+ continue;
+ }
+#endif
- featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
- count = selectLookups(featureTable, featureTag, order);
- order += count;
+ featureTable = featureListTable->getFeatureTable(featureIndex, &featureTag);
+
+ if (featureTag == fm.tag) {
+ order += selectLookups(featureTable, fm.mask, order);
+ }
+ }
}
+ }
- if (order > 1) {
- OpenTypeUtilities::sort(lookupOrderArray, order);
+ if (!orderFeatures && (order > 1)) {
+ OpenTypeUtilities::sort(lookupOrderArray, order);
+
+ // If there's no specified feature order,
+ // we will apply the lookups in the order
+ // that they're in the font. If a particular
+ // lookup may be referenced by more than one feature,
+ // it will apprear in the lookupOrderArray more than
+ // once, so remove any duplicate entries in the sorted array.
+ le_int32 out = 1;
+
+ for (le_int32 in = 1; in < order; in += 1) {
+ if (lookupOrderArray[out - 1] != lookupOrderArray[in]) {
+ if (out != in) {
+ lookupOrderArray[out] = lookupOrderArray[in];
+ }
+
+ out += 1;
+ }
}
+
+ order = out;
}
lookupOrderCount = order;
diff --git a/Build/source/libs/icu-xetex/layout/LookupProcessor.h b/Build/source/libs/icu-xetex/layout/LookupProcessor.h
index 136a0541f57..bc05ae63b79 100644
--- a/Build/source/libs/icu-xetex/layout/LookupProcessor.h
+++ b/Build/source/libs/icu-xetex/layout/LookupProcessor.h
@@ -33,9 +33,6 @@ struct LookupTable;
class LookupProcessor : public UMemory {
public:
- static const LETag notSelected;
- static const LETag defaultFeature;
-
le_int32 process(LEGlyphStorage &glyphStorage, GlyphPositionAdjustments *glyphPositionAdjustments,
le_bool rightToLeft, const GlyphDefinitionTableHeader *glyphDefinitionTableHeader, const LEFontInstance *fontInstance) const;
@@ -49,19 +46,18 @@ public:
virtual ~LookupProcessor();
protected:
- LookupProcessor(const char *baseAddress,
+ LookupProcessor(const char *baseAddress,
Offset scriptListOffset, Offset featureListOffset, Offset lookupListOffset,
- LETag scriptTag, LETag languageTag, const LETag *featureOrder);
+ LETag scriptTag, LETag languageTag, const FeatureMap *featureMap, le_int32 featureMapCount, le_bool orderFeatures);
- LookupProcessor();
+ LookupProcessor();
- le_int32 selectLookups(const FeatureTable *featureTable, LETag featureTag, le_int32 order);
+ le_int32 selectLookups(const FeatureTable *featureTable, FeatureMask featureMask, le_int32 order);
const LookupListTable *lookupListTable;
const FeatureListTable *featureListTable;
- LETag *lookupSelectArray;
- LETag requiredFeatureTag;
+ FeatureMask *lookupSelectArray;
le_uint16 *lookupOrderArray;
le_uint32 lookupOrderCount;
diff --git a/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl b/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl
new file mode 100644
index 00000000000..4062b403170
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/MakeShapingTypeData.pl
@@ -0,0 +1,90 @@
+#! /usr/bin/perl
+
+# script to create ShapingTypeData.cpp from UCD file DerivedJoiningType.txt
+# written by JK, 2007-01-16
+# This script may be distributed and used freely
+
+%types = (
+ 'C' => 1,
+ 'D' => 2,
+ 'R' => 4,
+ 'T' => 5
+);
+
+@ranges = ();
+
+sub addRange
+{
+ my ($s, $e, $t) = @_;
+
+ if ((scalar @ranges > 0)
+ && ($ranges[$#ranges]->[2] == $t)
+ && ($ranges[$#ranges]->[1] == $s - 1)) {
+ $ranges[$#ranges]->[1] = $e;
+ return;
+ }
+
+ push @ranges, [ $s, $e, $t ];
+}
+
+# read the DerivedJoiningType.txt file and remember all the ranges
+while (<>) {
+ if (m/^([0-9A-F]{4})\s+; ([CDRT]) \#/) {
+ # single codepoint
+ $start = hex $1;
+ $end = $start;
+ $type = $types{$2};
+ addRange($start, $end, $type);
+ next;
+ }
+ if (m/^([0-9A-F]{4})\.\.([0-9A-F]{4})\s+; ([CDRT]) \#/) {
+ # range of codes
+ $start = hex $1;
+ $end = hex $2;
+ $type = $types{$3};
+ addRange($start, $end, $type);
+ next;
+ }
+}
+
+# write the ShapingTypeData.cpp file
+
+$date = `date +"%F %T %Z"`;
+print <<__EOT__;
+/*
+ *
+ * (C) Copyright SIL International. 2007.
+ * (C) Copyright IBM Corp. 1998-2005.
+ * Based on code distributed with ICU 3.6
+ * and the Unicode Character Database, version 5.0.0
+ *
+ * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
+ * YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: $date
+ */
+
+#include "LETypes.h"
+#include "ArabicShaping.h"
+
+U_NAMESPACE_BEGIN
+
+const le_uint8 ArabicShaping::shapingTypeTable[] = {
+__EOT__
+
+printf " 0x%02X, 0x%02X, /* classFormat */\n", 0, 2;
+printf " 0x%02X, 0x%02X, /* classRangeCount */\n",
+ (scalar @ranges) / 256, (scalar @ranges) % 256;
+print join(",\n", map {
+ sprintf " 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X",
+ $_->[0] / 256, $_->[0] % 256,
+ $_->[1] / 256, $_->[1] % 256,
+ $_->[2] / 256, $_->[2] % 256,
+ } sort { $a->[0] <=> $b->[0] } @ranges);
+
+print <<__EOT__;
+
+};
+
+U_NAMESPACE_END
+__EOT__
diff --git a/Build/source/libs/icu-xetex/layout/Makefile.in b/Build/source/libs/icu-xetex/layout/Makefile.in
index 6d6ef6b53b7..b1224521c9f 100644
--- a/Build/source/libs/icu-xetex/layout/Makefile.in
+++ b/Build/source/libs/icu-xetex/layout/Makefile.in
@@ -1,13 +1,18 @@
-## Copyright (c) 1999-2005, International Business Machines Corporation and
-## others. All Rights Reserved.
+#******************************************************************************
+#
+# Copyright (C) 1999-2006, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - layout
-## Install directory information
+## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -26,7 +31,7 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = layout.res
@@ -45,9 +50,12 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICULE)
-CPPFLAGS += -I$(srcdir) -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/unicode -I$(srcdir)/.. $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(srcdir) -I$(srcdir)/.. -I$(top_srcdir)/common -I$(srcdir)/unicode $(LIBCPPFLAGS)
DEFS += -DU_LAYOUT_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICULE)
LIBS = $(LIBICUUC) $(DEFAULT_LIBS)
OBJECTS = LEFontInstance.o \
@@ -105,26 +113,33 @@ MarkArrays.o \
MarkToBasePosnSubtables.o \
MarkToLigaturePosnSubtables.o \
MarkToMarkPosnSubtables.o \
+MirroredCharData.o \
MPreFixups.o \
MultipleSubstSubtables.o \
OpenTypeUtilities.o \
PairPositioningSubtables.o \
ScriptAndLanguage.o \
ScriptAndLanguageTags.o \
+ShapingTypeData.o \
SinglePositioningSubtables.o \
SingleSubstitutionSubtables.o \
SubstitutionLookups.o \
ValueRecords.o \
KhmerLayoutEngine.o \
KhmerReordering.o \
+TibetanLayoutEngine.o \
+TibetanReordering.o \
+HangulLayoutEngine.o \
KernTable.o
+## Header files to install
+HEADERS= $(srcdir)/LayoutEngine.h $(srcdir)/LE*.h
+
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
-## Header files to install
-HEADERS= $(srcdir)/LayoutEngine.h $(srcdir)/LE*.h
+-include Makefile.local
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
@@ -144,7 +159,7 @@ check: all check-local
all-local: $(ALL_TARGETS)
-install-local: install-headers install-library
+install-local: install-headers install-library
install-library: all-local
$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
@@ -170,7 +185,6 @@ ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
endif
endif
-
install-headers:
$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/layout
@for file in $(HEADERS); do \
@@ -182,7 +196,7 @@ dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
- $(RMV) $(OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
+ $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
distclean-local: clean-local
$(RMV) Makefile
@@ -199,15 +213,14 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
-$(BATCH_TARGET): $(OBJECTS)
+$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
endif # OS390BATCH
-
-endif
+endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -217,4 +230,3 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
endif
endif
-
diff --git a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp b/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp
index 66d1b9dd1c2..3f571f5e39c 100644
--- a/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp
+++ b/Build/source/libs/icu-xetex/layout/MarkToMarkPosnSubtables.cpp
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -65,6 +65,11 @@ le_int32 MarkToMarkPositioningSubtable::process(GlyphIterator *glyphIterator, co
const AnchorTable *anchorTable = (const AnchorTable *) ((char *) mark2Array + anchorTableOffset);
LEPoint mark2Anchor, markAdvance, pixels;
+ if (anchorTableOffset == 0) {
+ // this seems to mean that the marks don't attach...
+ return 0;
+ }
+
anchorTable->getAnchor(mark2Glyph, fontInstance, mark2Anchor);
fontInstance->getGlyphAdvance(markGlyph, pixels);
diff --git a/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp b/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp
new file mode 100644
index 00000000000..b813371708f
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/MirroredCharData.cpp
@@ -0,0 +1,108 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2005. All Rights Reserved.
+ *
+ * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
+ * YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 07/20/2005 10:43:59 AM PDT
+ */
+
+#include "LETypes.h"
+#include "DefaultCharMapper.h"
+
+U_NAMESPACE_BEGIN
+
+const LEUnicode32 DefaultCharMapper::mirroredChars[] = {
+ 0x0028, 0x0029, 0x003C, 0x003E, 0x005B, 0x005D, 0x007B, 0x007D,
+ 0x00AB, 0x00BB, 0x2039, 0x203A, 0x2045, 0x2046, 0x207D, 0x207E,
+ 0x208D, 0x208E, 0x2208, 0x2209, 0x220A, 0x220B, 0x220C, 0x220D,
+ 0x2215, 0x223C, 0x223D, 0x2243, 0x2252, 0x2253, 0x2254, 0x2255,
+ 0x2264, 0x2265, 0x2266, 0x2267, 0x2268, 0x2269, 0x226A, 0x226B,
+ 0x226E, 0x226F, 0x2270, 0x2271, 0x2272, 0x2273, 0x2274, 0x2275,
+ 0x2276, 0x2277, 0x2278, 0x2279, 0x227A, 0x227B, 0x227C, 0x227D,
+ 0x227E, 0x227F, 0x2280, 0x2281, 0x2282, 0x2283, 0x2284, 0x2285,
+ 0x2286, 0x2287, 0x2288, 0x2289, 0x228A, 0x228B, 0x228F, 0x2290,
+ 0x2291, 0x2292, 0x2298, 0x22A2, 0x22A3, 0x22A6, 0x22A8, 0x22A9,
+ 0x22AB, 0x22B0, 0x22B1, 0x22B2, 0x22B3, 0x22B4, 0x22B5, 0x22B6,
+ 0x22B7, 0x22C9, 0x22CA, 0x22CB, 0x22CC, 0x22CD, 0x22D0, 0x22D1,
+ 0x22D6, 0x22D7, 0x22D8, 0x22D9, 0x22DA, 0x22DB, 0x22DC, 0x22DD,
+ 0x22DE, 0x22DF, 0x22E0, 0x22E1, 0x22E2, 0x22E3, 0x22E4, 0x22E5,
+ 0x22E6, 0x22E7, 0x22E8, 0x22E9, 0x22EA, 0x22EB, 0x22EC, 0x22ED,
+ 0x22F0, 0x22F1, 0x22F2, 0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x22FA,
+ 0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x2308, 0x2309, 0x230A, 0x230B,
+ 0x2329, 0x232A, 0x2768, 0x2769, 0x276A, 0x276B, 0x276C, 0x276D,
+ 0x276E, 0x276F, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774, 0x2775,
+ 0x27C3, 0x27C4, 0x27C5, 0x27C6, 0x27D5, 0x27D6, 0x27DD, 0x27DE,
+ 0x27E2, 0x27E3, 0x27E4, 0x27E5, 0x27E6, 0x27E7, 0x27E8, 0x27E9,
+ 0x27EA, 0x27EB, 0x2983, 0x2984, 0x2985, 0x2986, 0x2987, 0x2988,
+ 0x2989, 0x298A, 0x298B, 0x298C, 0x298D, 0x298E, 0x298F, 0x2990,
+ 0x2991, 0x2992, 0x2993, 0x2994, 0x2995, 0x2996, 0x2997, 0x2998,
+ 0x29B8, 0x29C0, 0x29C1, 0x29C4, 0x29C5, 0x29CF, 0x29D0, 0x29D1,
+ 0x29D2, 0x29D4, 0x29D5, 0x29D8, 0x29D9, 0x29DA, 0x29DB, 0x29F5,
+ 0x29F8, 0x29F9, 0x29FC, 0x29FD, 0x2A2B, 0x2A2C, 0x2A2D, 0x2A2E,
+ 0x2A34, 0x2A35, 0x2A3C, 0x2A3D, 0x2A64, 0x2A65, 0x2A79, 0x2A7A,
+ 0x2A7D, 0x2A7E, 0x2A7F, 0x2A80, 0x2A81, 0x2A82, 0x2A83, 0x2A84,
+ 0x2A8B, 0x2A8C, 0x2A91, 0x2A92, 0x2A93, 0x2A94, 0x2A95, 0x2A96,
+ 0x2A97, 0x2A98, 0x2A99, 0x2A9A, 0x2A9B, 0x2A9C, 0x2AA1, 0x2AA2,
+ 0x2AA6, 0x2AA7, 0x2AA8, 0x2AA9, 0x2AAA, 0x2AAB, 0x2AAC, 0x2AAD,
+ 0x2AAF, 0x2AB0, 0x2AB3, 0x2AB4, 0x2ABB, 0x2ABC, 0x2ABD, 0x2ABE,
+ 0x2ABF, 0x2AC0, 0x2AC1, 0x2AC2, 0x2AC3, 0x2AC4, 0x2AC5, 0x2AC6,
+ 0x2ACD, 0x2ACE, 0x2ACF, 0x2AD0, 0x2AD1, 0x2AD2, 0x2AD3, 0x2AD4,
+ 0x2AD5, 0x2AD6, 0x2ADE, 0x2AE3, 0x2AE4, 0x2AE5, 0x2AEC, 0x2AED,
+ 0x2AF7, 0x2AF8, 0x2AF9, 0x2AFA, 0x2E02, 0x2E03, 0x2E04, 0x2E05,
+ 0x2E09, 0x2E0A, 0x2E0C, 0x2E0D, 0x2E1C, 0x2E1D, 0x3008, 0x3009,
+ 0x300A, 0x300B, 0x300C, 0x300D, 0x300E, 0x300F, 0x3010, 0x3011,
+ 0x3014, 0x3015, 0x3016, 0x3017, 0x3018, 0x3019, 0x301A, 0x301B,
+ 0xFF08, 0xFF09, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D,
+ 0xFF5F, 0xFF60, 0xFF62, 0xFF63
+};
+
+const LEUnicode32 DefaultCharMapper::srahCderorrim[] = {
+ 0x0029, 0x0028, 0x003E, 0x003C, 0x005D, 0x005B, 0x007D, 0x007B,
+ 0x00BB, 0x00AB, 0x203A, 0x2039, 0x2046, 0x2045, 0x207E, 0x207D,
+ 0x208E, 0x208D, 0x220B, 0x220C, 0x220D, 0x2208, 0x2209, 0x220A,
+ 0x29F5, 0x223D, 0x223C, 0x22CD, 0x2253, 0x2252, 0x2255, 0x2254,
+ 0x2265, 0x2264, 0x2267, 0x2266, 0x2269, 0x2268, 0x226B, 0x226A,
+ 0x226F, 0x226E, 0x2271, 0x2270, 0x2273, 0x2272, 0x2275, 0x2274,
+ 0x2277, 0x2276, 0x2279, 0x2278, 0x227B, 0x227A, 0x227D, 0x227C,
+ 0x227F, 0x227E, 0x2281, 0x2280, 0x2283, 0x2282, 0x2285, 0x2284,
+ 0x2287, 0x2286, 0x2289, 0x2288, 0x228B, 0x228A, 0x2290, 0x228F,
+ 0x2292, 0x2291, 0x29B8, 0x22A3, 0x22A2, 0x2ADE, 0x2AE4, 0x2AE3,
+ 0x2AE5, 0x22B1, 0x22B0, 0x22B3, 0x22B2, 0x22B5, 0x22B4, 0x22B7,
+ 0x22B6, 0x22CA, 0x22C9, 0x22CC, 0x22CB, 0x2243, 0x22D1, 0x22D0,
+ 0x22D7, 0x22D6, 0x22D9, 0x22D8, 0x22DB, 0x22DA, 0x22DD, 0x22DC,
+ 0x22DF, 0x22DE, 0x22E1, 0x22E0, 0x22E3, 0x22E2, 0x22E5, 0x22E4,
+ 0x22E7, 0x22E6, 0x22E9, 0x22E8, 0x22EB, 0x22EA, 0x22ED, 0x22EC,
+ 0x22F1, 0x22F0, 0x22FA, 0x22FB, 0x22FC, 0x22FD, 0x22FE, 0x22F2,
+ 0x22F3, 0x22F4, 0x22F6, 0x22F7, 0x2309, 0x2308, 0x230B, 0x230A,
+ 0x232A, 0x2329, 0x2769, 0x2768, 0x276B, 0x276A, 0x276D, 0x276C,
+ 0x276F, 0x276E, 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774,
+ 0x27C4, 0x27C3, 0x27C6, 0x27C5, 0x27D6, 0x27D5, 0x27DE, 0x27DD,
+ 0x27E3, 0x27E2, 0x27E5, 0x27E4, 0x27E7, 0x27E6, 0x27E9, 0x27E8,
+ 0x27EB, 0x27EA, 0x2984, 0x2983, 0x2986, 0x2985, 0x2988, 0x2987,
+ 0x298A, 0x2989, 0x298C, 0x298B, 0x2990, 0x298F, 0x298E, 0x298D,
+ 0x2992, 0x2991, 0x2994, 0x2993, 0x2996, 0x2995, 0x2998, 0x2997,
+ 0x2298, 0x29C1, 0x29C0, 0x29C5, 0x29C4, 0x29D0, 0x29CF, 0x29D2,
+ 0x29D1, 0x29D5, 0x29D4, 0x29D9, 0x29D8, 0x29DB, 0x29DA, 0x2215,
+ 0x29F9, 0x29F8, 0x29FD, 0x29FC, 0x2A2C, 0x2A2B, 0x2A2E, 0x2A2D,
+ 0x2A35, 0x2A34, 0x2A3D, 0x2A3C, 0x2A65, 0x2A64, 0x2A7A, 0x2A79,
+ 0x2A7E, 0x2A7D, 0x2A80, 0x2A7F, 0x2A82, 0x2A81, 0x2A84, 0x2A83,
+ 0x2A8C, 0x2A8B, 0x2A92, 0x2A91, 0x2A94, 0x2A93, 0x2A96, 0x2A95,
+ 0x2A98, 0x2A97, 0x2A9A, 0x2A99, 0x2A9C, 0x2A9B, 0x2AA2, 0x2AA1,
+ 0x2AA7, 0x2AA6, 0x2AA9, 0x2AA8, 0x2AAB, 0x2AAA, 0x2AAD, 0x2AAC,
+ 0x2AB0, 0x2AAF, 0x2AB4, 0x2AB3, 0x2ABC, 0x2ABB, 0x2ABE, 0x2ABD,
+ 0x2AC0, 0x2ABF, 0x2AC2, 0x2AC1, 0x2AC4, 0x2AC3, 0x2AC6, 0x2AC5,
+ 0x2ACE, 0x2ACD, 0x2AD0, 0x2ACF, 0x2AD2, 0x2AD1, 0x2AD4, 0x2AD3,
+ 0x2AD6, 0x2AD5, 0x22A6, 0x22A9, 0x22A8, 0x22AB, 0x2AED, 0x2AEC,
+ 0x2AF8, 0x2AF7, 0x2AFA, 0x2AF9, 0x2E03, 0x2E02, 0x2E05, 0x2E04,
+ 0x2E0A, 0x2E09, 0x2E0D, 0x2E0C, 0x2E1D, 0x2E1C, 0x3009, 0x3008,
+ 0x300B, 0x300A, 0x300D, 0x300C, 0x300F, 0x300E, 0x3011, 0x3010,
+ 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301B, 0x301A,
+ 0xFF09, 0xFF08, 0xFF1E, 0xFF1C, 0xFF3D, 0xFF3B, 0xFF5D, 0xFF5B,
+ 0xFF60, 0xFF5F, 0xFF63, 0xFF62
+};
+
+const le_int32 DefaultCharMapper::mirroredCharsCount = 332;
+
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp
index 2d1e3dde84a..6ed165bf5c3 100644
--- a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.cpp
@@ -1,7 +1,7 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -12,6 +12,7 @@
#include "LayoutEngine.h"
#include "OpenTypeLayoutEngine.h"
#include "ScriptAndLanguageTags.h"
+#include "CharSubstitutionFilter.h"
#include "GlyphSubstitutionTables.h"
#include "GlyphDefinitionTables.h"
@@ -26,54 +27,68 @@ U_NAMESPACE_BEGIN
UOBJECT_DEFINE_RTTI_IMPLEMENTATION(OpenTypeLayoutEngine)
-static const LETag emptyTag = 0x00000000;
-
-static const LETag ccmpFeatureTag = LE_CCMP_FEATURE_TAG;
-static const LETag loclFeatureTag = LE_LOCL_FEATURE_TAG;
-static const LETag ligaFeatureTag = LE_LIGA_FEATURE_TAG;
-static const LETag cligFeatureTag = LE_CLIG_FEATURE_TAG;
-static const LETag kernFeatureTag = LE_KERN_FEATURE_TAG;
-static const LETag markFeatureTag = LE_MARK_FEATURE_TAG;
-static const LETag mkmkFeatureTag = LE_MKMK_FEATURE_TAG;
-
-static const LETag dligFeatureTag = 0x646C6967; // 'dlig' not used at the moment
-static const LETag paltFeatureTag = 0x70616C74; // 'palt'
-
-// default has no ligatures, that's what java does. this is the minimal set.
-static const LETag minimalFeatures[] = {ccmpFeatureTag, loclFeatureTag, markFeatureTag, mkmkFeatureTag, emptyTag};
-
-// kerning (kern, palt following adobe recommendation for cjk 'kerning') but no ligatures.
-static const LETag kernFeatures[] = {ccmpFeatureTag, loclFeatureTag, kernFeatureTag, paltFeatureTag,
- markFeatureTag, mkmkFeatureTag, emptyTag};
-
-// ligatures (liga, clig) but no kerning. omit dlig for now.
-static const LETag ligaFeatures[] = {ccmpFeatureTag, loclFeatureTag, ligaFeatureTag, cligFeatureTag, markFeatureTag,
- mkmkFeatureTag, emptyTag};
-
-// kerning and ligatures.
-static const LETag kernAndLigaFeatures[] = {ccmpFeatureTag, loclFeatureTag, ligaFeatureTag, cligFeatureTag,
- kernFeatureTag, paltFeatureTag, markFeatureTag, mkmkFeatureTag, emptyTag};
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
+#define ligaFeatureTag LE_LIGA_FEATURE_TAG
+#define cligFeatureTag LE_CLIG_FEATURE_TAG
+#define kernFeatureTag LE_KERN_FEATURE_TAG
+#define markFeatureTag LE_MARK_FEATURE_TAG
+#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
+
+// 'dlig' not used at the moment
+#define dligFeatureTag 0x646C6967
+
+// 'palt'
+#define paltFeatureTag 0x70616C74
+
+#define ccmpFeatureMask 0x80000000UL
+#define ligaFeatureMask 0x40000000UL
+#define cligFeatureMask 0x20000000UL
+#define kernFeatureMask 0x10000000UL
+#define paltFeatureMask 0x08000000UL
+#define markFeatureMask 0x04000000UL
+#define mkmkFeatureMask 0x02000000UL
+
+#define minimalFeatures (ccmpFeatureMask | markFeatureMask | mkmkFeatureMask)
+#define ligaFeatures (ligaFeatureMask | cligFeatureMask | minimalFeatures)
+#define kernFeatures (kernFeatureMask | paltFeatureMask | minimalFeatures)
+#define kernAndLigaFeatures (ligaFeatures | kernFeatures)
+
+static const FeatureMap featureMap[] =
+{
+ {ccmpFeatureTag, ccmpFeatureMask},
+ {ligaFeatureTag, ligaFeatureMask},
+ {cligFeatureTag, cligFeatureMask},
+ {kernFeatureTag, kernFeatureMask},
+ {paltFeatureTag, paltFeatureMask},
+ {markFeatureTag, markFeatureMask},
+ {mkmkFeatureTag, mkmkFeatureMask}
+};
+static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags),
- fFeatureList(minimalFeatures), fFeatureParamList(NULL), fFeatureOrder(NULL),
- fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
+ : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureMask(minimalFeatures),
+ fFeatureMap(featureMap), fFeatureParamList(NULL), fFeatureMapCount(featureMapCount), fFeatureOrder(FALSE),
+ fGSUBTable(gsubTable), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL), fFilterZeroWidth(TRUE)
{
static const le_uint32 gdefTableTag = LE_GDEF_TABLE_TAG;
static const le_uint32 gposTableTag = LE_GPOS_TABLE_TAG;
const GlyphPositioningTableHeader *gposTable = (const GlyphPositioningTableHeader *) getFontTable(gposTableTag);
// todo: switch to more flags and bitfield rather than list of feature tags?
- switch (typoFlags) {
+ switch (typoFlags & ~0x80000000L) {
case 0: break; // default
- case 1: fFeatureList = kernFeatures; break;
- case 2: fFeatureList = ligaFeatures; break;
- case 3: fFeatureList = kernAndLigaFeatures; break;
+ case 1: fFeatureMask = kernFeatures; break;
+ case 2: fFeatureMask = ligaFeatures; break;
+ case 3: fFeatureMask = kernAndLigaFeatures; break;
default: break;
}
+ if (typoFlags & 0x80000000L) {
+ fSubstitutionFilter = new CharSubstitutionFilter(fontInstance);
+ }
+
setScriptAndLanguageTags();
fGDEFTable = (const GlyphDefinitionTableHeader *) getFontTable(gdefTableTag);
@@ -94,14 +109,18 @@ void OpenTypeLayoutEngine::reset()
OpenTypeLayoutEngine::OpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
le_int32 typoFlags)
- : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(NULL),
- fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL)
+ : LayoutEngine(fontInstance, scriptCode, languageCode, typoFlags), fFeatureOrder(FALSE),
+ fGSUBTable(NULL), fGDEFTable(NULL), fGPOSTable(NULL), fSubstitutionFilter(NULL), fFilterZeroWidth(TRUE)
{
setScriptAndLanguageTags();
}
OpenTypeLayoutEngine::~OpenTypeLayoutEngine()
{
+ if (fTypoFlags & 0x80000000L) {
+ delete fSubstitutionFilter;
+ }
+
reset();
}
@@ -150,7 +169,7 @@ le_int32 OpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_i
glyphStorage.allocateGlyphArray(outCharCount, rightToLeft, success);
glyphStorage.allocateAuxData(success);
for (le_int32 i = 0; i < outCharCount; i += 1) {
- glyphStorage.setAuxData(i, (void *) fFeatureList, (void *) fFeatureParamList, success);
+ glyphStorage.setAuxData(i, fFeatureMask, (void *) fFeatureParamList, success);
}
return outCharCount;
@@ -170,14 +189,15 @@ le_int32 OpenTypeLayoutEngine::glyphProcessing(const LEUnicode chars[], le_int32
return 0;
}
- mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, glyphStorage, success);
+ mapCharsToGlyphs(chars, offset, count, rightToLeft, rightToLeft, fFilterZeroWidth, glyphStorage, success);
if (LE_FAILURE(success)) {
return 0;
}
if (fGSUBTable != NULL) {
- count = fGSUBTable->process(glyphStorage, rightToLeft, fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter, fFeatureOrder);
+ count = fGSUBTable->process(glyphStorage, rightToLeft, fScriptTag, fLangSysTag, fGDEFTable, fSubstitutionFilter,
+ fFeatureMap, fFeatureMapCount, fFeatureOrder);
}
return count;
@@ -214,6 +234,10 @@ le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 o
outCharCount = characterProcessing(chars, offset, count, max, rightToLeft, outChars, fakeGlyphStorage, success);
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
+
if (outChars != NULL) {
fakeGlyphCount = glyphProcessing(outChars, 0, outCharCount, outCharCount, rightToLeft, fakeGlyphStorage, success);
LE_DELETE_ARRAY(outChars); // FIXME: a subclass may have allocated this, in which case this delete might not work...
@@ -223,6 +247,10 @@ le_int32 OpenTypeLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 o
//adjustGlyphs(chars, offset, count, rightToLeft, fakeGlyphs, fakeGlyphCount);
}
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
+
outGlyphCount = glyphPostProcessing(fakeGlyphStorage, glyphStorage, success);
return outGlyphCount;
@@ -268,7 +296,8 @@ void OpenTypeLayoutEngine::adjustGlyphPositions(const LEUnicode chars[], le_int3
}
#endif
- fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag, fGDEFTable, fFontInstance, fFeatureOrder);
+ fGPOSTable->process(glyphStorage, adjustments, reverse, fScriptTag, fLangSysTag, fGDEFTable, fFontInstance,
+ fFeatureMap, fFeatureMapCount, fFeatureOrder);
float xAdjust = 0, yAdjust = 0;
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h
index 6f9d4839f5b..366f31257e5 100644
--- a/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h
+++ b/Build/source/libs/icu-xetex/layout/OpenTypeLayoutEngine.h
@@ -1,8 +1,5 @@
-
/*
- * %W% %E%
- *
- * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
*
*/
@@ -45,7 +42,7 @@ U_NAMESPACE_BEGIN
*
* @internal
*/
-class OpenTypeLayoutEngine : public LayoutEngine
+class U_LAYOUT_API OpenTypeLayoutEngine : public LayoutEngine
{
public:
/**
@@ -125,6 +122,13 @@ public:
*/
static UClassID getStaticClassID();
+ /**
+ * The array of language tags, indexed by language code.
+ *
+ * @internal
+ */
+ static const LETag languageTags[];
+
private:
/**
@@ -138,29 +142,40 @@ private:
*/
static const LETag scriptTags[];
+protected:
/**
- * The array of language tags, indexed by language code.
+ * A set of "default" features. The default characterProcessing method
+ * will apply all of these features to every glyph.
+ *
+ * @internal
*/
- static const LETag languageTags[];
+ FeatureMask fFeatureMask;
-protected:
/**
- * A list of "default" features. The default characterProcessing method
- * will apply all of these tags to every glyph.
+ * A set of mappings from feature tags to feature masks. These may
+ * be in the order in which the featues should be applied, but they
+ * don't need to be.
*
* @internal
*/
- const LETag *fFeatureList;
+ const FeatureMap *fFeatureMap;
const le_int32 *fFeatureParamList;
/**
- * A list of tags in the order in which the features in
- * the font should be applied, as opposed to using the
- * order of the lookups in the font.
+ * The length of the feature map.
+ *
+ * @internal
+ */
+ le_int32 fFeatureMapCount;
+
+ /**
+ * <code>TRUE</code> if the features in the
+ * feature map are in the order in which they
+ * must be applied.
*
* @internal
*/
- const LETag *fFeatureOrder;
+ le_bool fFeatureOrder;
/**
* The address of the GSUB table.
@@ -208,6 +223,14 @@ protected:
LETag fLangSysTag;
/**
+ * <code>TRUE</code> if <code>mapCharsToGlyphs</code> should replace ZWJ / ZWNJ with a glyph
+ * with no contours.
+ *
+ * @internal
+ */
+ le_bool fFilterZeroWidth;
+
+ /**
* This method does the OpenType character processing. It assigns the OpenType feature
* tags to the characters, and may generate output characters that differ from the input
* charcters due to insertions, deletions, or reorderings. In such cases, it will also
diff --git a/Build/source/libs/icu-xetex/layout/OpenTypeTables.h b/Build/source/libs/icu-xetex/layout/OpenTypeTables.h
index c94a5cbdaa1..510dd019849 100644
--- a/Build/source/libs/icu-xetex/layout/OpenTypeTables.h
+++ b/Build/source/libs/icu-xetex/layout/OpenTypeTables.h
@@ -1,6 +1,6 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
*
*/
@@ -21,13 +21,14 @@ U_NAMESPACE_BEGIN
typedef le_uint16 Offset;
typedef le_uint8 ATag[4];
typedef le_uint32 fixed32;
+typedef le_uint32 FeatureMask;
#define SWAPT(atag) ((LETag) ((atag[0] << 24) + (atag[1] << 16) + (atag[2] << 8) + atag[3]))
struct TagAndOffsetRecord
{
- ATag tag;
- Offset offset;
+ ATag tag;
+ Offset offset;
};
struct GlyphRangeRecord
@@ -37,5 +38,11 @@ struct GlyphRangeRecord
le_int16 rangeValue;
};
+struct FeatureMap
+{
+ LETag tag;
+ FeatureMask mask;
+};
+
U_NAMESPACE_END
#endif
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp
index 944769917df..a9171336a68 100644
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp
+++ b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.cpp
@@ -1,9 +1,11 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 08/21/2006 02:35:14 PM HST
*/
#include "LETypes.h"
@@ -20,7 +22,7 @@ const LETag OpenTypeLayoutEngine::scriptTags[] = {
bengScriptTag, /* 'beng' (BENGALI) */
bopoScriptTag, /* 'bopo' (BOPOMOFO) */
cherScriptTag, /* 'cher' (CHEROKEE) */
- qaacScriptTag, /* 'qaac' (COPTIC) */
+ coptScriptTag, /* 'copt' (COPTIC) */
cyrlScriptTag, /* 'cyrl' (CYRILLIC) */
dsrtScriptTag, /* 'dsrt' (DESERET) */
devaScriptTag, /* 'deva' (DEVANAGARI) */
@@ -37,7 +39,6 @@ const LETag OpenTypeLayoutEngine::scriptTags[] = {
kndaScriptTag, /* 'knda' (KANNADA) */
kanaScriptTag, /* 'kana' (KATAKANA) */
khmrScriptTag, /* 'khmr' (KHMER) */
-/* laooScriptTag,*/ /* 'laoo' (LAO) */
laooScriptTag, /* 'lao ' (LAO) */
latnScriptTag, /* 'latn' (LATIN) */
mlymScriptTag, /* 'mlym' (MALAYALAM) */
@@ -55,7 +56,7 @@ const LETag OpenTypeLayoutEngine::scriptTags[] = {
thaiScriptTag, /* 'thai' (THAI) */
tibtScriptTag, /* 'tibt' (TIBETAN) */
cansScriptTag, /* 'cans' (CANADIAN_ABORIGINAL) */
- yiiiScriptTag, /* 'yiii' (YI) */
+ yiiiScriptTag, /* 'yi ' (YI) */
tglgScriptTag, /* 'tglg' (TAGALOG) */
hanoScriptTag, /* 'hano' (HANUNOO) */
buhdScriptTag, /* 'buhd' (BUHID) */
@@ -68,7 +69,56 @@ const LETag OpenTypeLayoutEngine::scriptTags[] = {
shawScriptTag, /* 'shaw' (SHAVIAN) */
taleScriptTag, /* 'tale' (TAI_LE) */
ugarScriptTag, /* 'ugar' (UGARITIC) */
- hrktScriptTag /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
+ hrktScriptTag, /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
+ bugiScriptTag, /* 'bugi' (BUGINESE) */
+ glagScriptTag, /* 'glag' (GLAGOLITIC) */
+ kharScriptTag, /* 'khar' (KHAROSHTHI) */
+ syloScriptTag, /* 'sylo' (SYLOTI_NAGRI) */
+ taluScriptTag, /* 'talu' (NEW_TAI_LUE) */
+ tfngScriptTag, /* 'tfng' (TIFINAGH) */
+ xpeoScriptTag, /* 'xpeo' (OLD_PERSIAN) */
+ baliScriptTag, /* 'bali' (BALINESE) */
+ batkScriptTag, /* 'batk' (BATK) */
+ blisScriptTag, /* 'blis' (BLIS) */
+ brahScriptTag, /* 'brah' (BRAH) */
+ chamScriptTag, /* 'cham' (CHAM) */
+ cirtScriptTag, /* 'cirt' (CIRT) */
+ cyrsScriptTag, /* 'cyrs' (CYRS) */
+ egydScriptTag, /* 'egyd' (EGYD) */
+ egyhScriptTag, /* 'egyh' (EGYH) */
+ egypScriptTag, /* 'egyp' (EGYP) */
+ geokScriptTag, /* 'geok' (GEOK) */
+ hansScriptTag, /* 'hans' (HANS) */
+ hantScriptTag, /* 'hant' (HANT) */
+ hmngScriptTag, /* 'hmng' (HMNG) */
+ hungScriptTag, /* 'hung' (HUNG) */
+ indsScriptTag, /* 'inds' (INDS) */
+ javaScriptTag, /* 'java' (JAVA) */
+ kaliScriptTag, /* 'kali' (KALI) */
+ latfScriptTag, /* 'latf' (LATF) */
+ latgScriptTag, /* 'latg' (LATG) */
+ lepcScriptTag, /* 'lepc' (LEPC) */
+ linaScriptTag, /* 'lina' (LINA) */
+ mandScriptTag, /* 'mand' (MAND) */
+ mayaScriptTag, /* 'maya' (MAYA) */
+ meroScriptTag, /* 'mero' (MERO) */
+ nkooScriptTag, /* 'nko ' (NKO) */
+ orkhScriptTag, /* 'orkh' (ORKH) */
+ permScriptTag, /* 'perm' (PERM) */
+ phagScriptTag, /* 'phag' (PHAGS_PA) */
+ phnxScriptTag, /* 'phnx' (PHOENICIAN) */
+ plrdScriptTag, /* 'plrd' (PLRD) */
+ roroScriptTag, /* 'roro' (RORO) */
+ saraScriptTag, /* 'sara' (SARA) */
+ syreScriptTag, /* 'syre' (SYRE) */
+ syrjScriptTag, /* 'syrj' (SYRJ) */
+ syrnScriptTag, /* 'syrn' (SYRN) */
+ tengScriptTag, /* 'teng' (TENG) */
+ vaiiScriptTag, /* 'vai ' (VAII) */
+ vispScriptTag, /* 'visp' (VISP) */
+ xsuxScriptTag, /* 'xsux' (CUNEIFORM) */
+ zxxxScriptTag, /* 'zxxx' (ZXXX) */
+ zzzzScriptTag /* 'zzzz' (UNKNOWN) */
};
const LETag OpenTypeLayoutEngine::languageTags[] = {
diff --git a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h
index 06fa905113d..7fb6f5e65b8 100644
--- a/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h
+++ b/Build/source/libs/icu-xetex/layout/ScriptAndLanguageTags.h
@@ -1,9 +1,11 @@
/*
*
- * (C) Copyright IBM Corp. 1998-2004. All Rights Reserved.
+ * (C) Copyright IBM Corp. 1998-2006. All Rights Reserved.
*
* WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
* YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 08/21/2006 02:35:14 PM HST
*/
#ifndef __SCRIPTANDLANGUAGES_H
@@ -11,13 +13,13 @@
#include "LETypes.h"
-U_NAMESPACE_BEGIN
-
/**
* \file
* \internal
*/
+U_NAMESPACE_BEGIN
+
const LETag zyyyScriptTag = 0x7A797979; /* 'zyyy' (COMMON) */
const LETag qaaiScriptTag = 0x71616169; /* 'qaai' (INHERITED) */
const LETag arabScriptTag = 0x61726162; /* 'arab' (ARABIC) */
@@ -25,7 +27,7 @@ const LETag armnScriptTag = 0x61726D6E; /* 'armn' (ARMENIAN) */
const LETag bengScriptTag = 0x62656E67; /* 'beng' (BENGALI) */
const LETag bopoScriptTag = 0x626F706F; /* 'bopo' (BOPOMOFO) */
const LETag cherScriptTag = 0x63686572; /* 'cher' (CHEROKEE) */
-const LETag qaacScriptTag = 0x71616163; /* 'qaac' (COPTIC) */
+const LETag coptScriptTag = 0x636F7074; /* 'copt' (COPTIC) */
const LETag cyrlScriptTag = 0x6379726C; /* 'cyrl' (CYRILLIC) */
const LETag dsrtScriptTag = 0x64737274; /* 'dsrt' (DESERET) */
const LETag devaScriptTag = 0x64657661; /* 'deva' (DEVANAGARI) */
@@ -42,7 +44,6 @@ const LETag hiraScriptTag = 0x68697261; /* 'hira' (HIRAGANA) */
const LETag kndaScriptTag = 0x6B6E6461; /* 'knda' (KANNADA) */
const LETag kanaScriptTag = 0x6B616E61; /* 'kana' (KATAKANA) */
const LETag khmrScriptTag = 0x6B686D72; /* 'khmr' (KHMER) */
-/*const LETag laooScriptTag = 0x6C616F6F;*/ /* 'laoo' (LAO) */
const LETag laooScriptTag = 0x6C616F20; /* 'lao ' (LAO) */
const LETag latnScriptTag = 0x6C61746E; /* 'latn' (LATIN) */
const LETag mlymScriptTag = 0x6D6C796D; /* 'mlym' (MALAYALAM) */
@@ -60,7 +61,7 @@ const LETag thaaScriptTag = 0x74686161; /* 'thaa' (THAANA) */
const LETag thaiScriptTag = 0x74686169; /* 'thai' (THAI) */
const LETag tibtScriptTag = 0x74696274; /* 'tibt' (TIBETAN) */
const LETag cansScriptTag = 0x63616E73; /* 'cans' (CANADIAN_ABORIGINAL) */
-const LETag yiiiScriptTag = 0x79696969; /* 'yiii' (YI) */
+const LETag yiiiScriptTag = 0x79692020; /* 'yi ' (YI) */
const LETag tglgScriptTag = 0x74676C67; /* 'tglg' (TAGALOG) */
const LETag hanoScriptTag = 0x68616E6F; /* 'hano' (HANUNOO) */
const LETag buhdScriptTag = 0x62756864; /* 'buhd' (BUHID) */
@@ -74,6 +75,55 @@ const LETag shawScriptTag = 0x73686177; /* 'shaw' (SHAVIAN) */
const LETag taleScriptTag = 0x74616C65; /* 'tale' (TAI_LE) */
const LETag ugarScriptTag = 0x75676172; /* 'ugar' (UGARITIC) */
const LETag hrktScriptTag = 0x68726B74; /* 'hrkt' (KATAKANA_OR_HIRAGANA) */
+const LETag bugiScriptTag = 0x62756769; /* 'bugi' (BUGINESE) */
+const LETag glagScriptTag = 0x676C6167; /* 'glag' (GLAGOLITIC) */
+const LETag kharScriptTag = 0x6B686172; /* 'khar' (KHAROSHTHI) */
+const LETag syloScriptTag = 0x73796C6F; /* 'sylo' (SYLOTI_NAGRI) */
+const LETag taluScriptTag = 0x74616C75; /* 'talu' (NEW_TAI_LUE) */
+const LETag tfngScriptTag = 0x74666E67; /* 'tfng' (TIFINAGH) */
+const LETag xpeoScriptTag = 0x7870656F; /* 'xpeo' (OLD_PERSIAN) */
+const LETag baliScriptTag = 0x62616C69; /* 'bali' (BALINESE) */
+const LETag batkScriptTag = 0x6261746B; /* 'batk' (BATK) */
+const LETag blisScriptTag = 0x626C6973; /* 'blis' (BLIS) */
+const LETag brahScriptTag = 0x62726168; /* 'brah' (BRAH) */
+const LETag chamScriptTag = 0x6368616D; /* 'cham' (CHAM) */
+const LETag cirtScriptTag = 0x63697274; /* 'cirt' (CIRT) */
+const LETag cyrsScriptTag = 0x63797273; /* 'cyrs' (CYRS) */
+const LETag egydScriptTag = 0x65677964; /* 'egyd' (EGYD) */
+const LETag egyhScriptTag = 0x65677968; /* 'egyh' (EGYH) */
+const LETag egypScriptTag = 0x65677970; /* 'egyp' (EGYP) */
+const LETag geokScriptTag = 0x67656F6B; /* 'geok' (GEOK) */
+const LETag hansScriptTag = 0x68616E73; /* 'hans' (HANS) */
+const LETag hantScriptTag = 0x68616E74; /* 'hant' (HANT) */
+const LETag hmngScriptTag = 0x686D6E67; /* 'hmng' (HMNG) */
+const LETag hungScriptTag = 0x68756E67; /* 'hung' (HUNG) */
+const LETag indsScriptTag = 0x696E6473; /* 'inds' (INDS) */
+const LETag javaScriptTag = 0x6A617661; /* 'java' (JAVA) */
+const LETag kaliScriptTag = 0x6B616C69; /* 'kali' (KALI) */
+const LETag latfScriptTag = 0x6C617466; /* 'latf' (LATF) */
+const LETag latgScriptTag = 0x6C617467; /* 'latg' (LATG) */
+const LETag lepcScriptTag = 0x6C657063; /* 'lepc' (LEPC) */
+const LETag linaScriptTag = 0x6C696E61; /* 'lina' (LINA) */
+const LETag mandScriptTag = 0x6D616E64; /* 'mand' (MAND) */
+const LETag mayaScriptTag = 0x6D617961; /* 'maya' (MAYA) */
+const LETag meroScriptTag = 0x6D65726F; /* 'mero' (MERO) */
+const LETag nkooScriptTag = 0x6E6B6F20; /* 'nko ' (NKO) */
+const LETag orkhScriptTag = 0x6F726B68; /* 'orkh' (ORKH) */
+const LETag permScriptTag = 0x7065726D; /* 'perm' (PERM) */
+const LETag phagScriptTag = 0x70686167; /* 'phag' (PHAGS_PA) */
+const LETag phnxScriptTag = 0x70686E78; /* 'phnx' (PHOENICIAN) */
+const LETag plrdScriptTag = 0x706C7264; /* 'plrd' (PLRD) */
+const LETag roroScriptTag = 0x726F726F; /* 'roro' (RORO) */
+const LETag saraScriptTag = 0x73617261; /* 'sara' (SARA) */
+const LETag syreScriptTag = 0x73797265; /* 'syre' (SYRE) */
+const LETag syrjScriptTag = 0x7379726A; /* 'syrj' (SYRJ) */
+const LETag syrnScriptTag = 0x7379726E; /* 'syrn' (SYRN) */
+const LETag tengScriptTag = 0x74656E67; /* 'teng' (TENG) */
+const LETag vaiiScriptTag = 0x76616920; /* 'vai ' (VAII) */
+const LETag vispScriptTag = 0x76697370; /* 'visp' (VISP) */
+const LETag xsuxScriptTag = 0x78737578; /* 'xsux' (CUNEIFORM) */
+const LETag zxxxScriptTag = 0x7A787878; /* 'zxxx' (ZXXX) */
+const LETag zzzzScriptTag = 0x7A7A7A7A; /* 'zzzz' (UNKNOWN) */
const LETag nullScriptTag = 0x00000000; /* '' (NULL) */
diff --git a/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp b/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp
new file mode 100644
index 00000000000..36d5d4b53e5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/ShapingTypeData.cpp
@@ -0,0 +1,208 @@
+/*
+ *
+ * (C) Copyright SIL International. 2007.
+ * (C) Copyright IBM Corp. 1998-2005.
+ * Based on code distributed with ICU 3.6
+ * and the Unicode Character Database, version 5.0.0
+ *
+ * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
+ * YOU REALLY KNOW WHAT YOU'RE DOING.
+ *
+ * Generated on: 2007-01-16 12:28:32 GMT
+
+ */
+
+#include "LETypes.h"
+#include "ArabicShaping.h"
+
+U_NAMESPACE_BEGIN
+
+const le_uint8 ArabicShaping::shapingTypeTable[] = {
+ 0x00, 0x02, /* classFormat */
+ 0x00, 0xB7, /* classRangeCount */
+ 0x00, 0xAD, 0x00, 0xAD, 0x00, 0x05,
+ 0x03, 0x00, 0x03, 0x6F, 0x00, 0x05,
+ 0x04, 0x83, 0x04, 0x86, 0x00, 0x05,
+ 0x04, 0x88, 0x04, 0x89, 0x00, 0x05,
+ 0x05, 0x91, 0x05, 0xBD, 0x00, 0x05,
+ 0x05, 0xBF, 0x05, 0xBF, 0x00, 0x05,
+ 0x05, 0xC1, 0x05, 0xC2, 0x00, 0x05,
+ 0x05, 0xC4, 0x05, 0xC5, 0x00, 0x05,
+ 0x05, 0xC7, 0x05, 0xC7, 0x00, 0x05,
+ 0x06, 0x10, 0x06, 0x15, 0x00, 0x05,
+ 0x06, 0x22, 0x06, 0x25, 0x00, 0x04,
+ 0x06, 0x26, 0x06, 0x26, 0x00, 0x02,
+ 0x06, 0x27, 0x06, 0x27, 0x00, 0x04,
+ 0x06, 0x28, 0x06, 0x28, 0x00, 0x02,
+ 0x06, 0x29, 0x06, 0x29, 0x00, 0x04,
+ 0x06, 0x2A, 0x06, 0x2E, 0x00, 0x02,
+ 0x06, 0x2F, 0x06, 0x32, 0x00, 0x04,
+ 0x06, 0x33, 0x06, 0x3A, 0x00, 0x02,
+ 0x06, 0x40, 0x06, 0x40, 0x00, 0x01,
+ 0x06, 0x41, 0x06, 0x47, 0x00, 0x02,
+ 0x06, 0x48, 0x06, 0x48, 0x00, 0x04,
+ 0x06, 0x49, 0x06, 0x4A, 0x00, 0x02,
+ 0x06, 0x4B, 0x06, 0x5E, 0x00, 0x05,
+ 0x06, 0x6E, 0x06, 0x6F, 0x00, 0x02,
+ 0x06, 0x70, 0x06, 0x70, 0x00, 0x05,
+ 0x06, 0x71, 0x06, 0x73, 0x00, 0x04,
+ 0x06, 0x75, 0x06, 0x77, 0x00, 0x04,
+ 0x06, 0x78, 0x06, 0x87, 0x00, 0x02,
+ 0x06, 0x88, 0x06, 0x99, 0x00, 0x04,
+ 0x06, 0x9A, 0x06, 0xBF, 0x00, 0x02,
+ 0x06, 0xC0, 0x06, 0xC0, 0x00, 0x04,
+ 0x06, 0xC1, 0x06, 0xC2, 0x00, 0x02,
+ 0x06, 0xC3, 0x06, 0xCB, 0x00, 0x04,
+ 0x06, 0xCC, 0x06, 0xCC, 0x00, 0x02,
+ 0x06, 0xCD, 0x06, 0xCD, 0x00, 0x04,
+ 0x06, 0xCE, 0x06, 0xCE, 0x00, 0x02,
+ 0x06, 0xCF, 0x06, 0xCF, 0x00, 0x04,
+ 0x06, 0xD0, 0x06, 0xD1, 0x00, 0x02,
+ 0x06, 0xD2, 0x06, 0xD3, 0x00, 0x04,
+ 0x06, 0xD5, 0x06, 0xD5, 0x00, 0x04,
+ 0x06, 0xD6, 0x06, 0xDC, 0x00, 0x05,
+ 0x06, 0xDE, 0x06, 0xE4, 0x00, 0x05,
+ 0x06, 0xE7, 0x06, 0xE8, 0x00, 0x05,
+ 0x06, 0xEA, 0x06, 0xED, 0x00, 0x05,
+ 0x06, 0xEE, 0x06, 0xEF, 0x00, 0x04,
+ 0x06, 0xFA, 0x06, 0xFC, 0x00, 0x02,
+ 0x06, 0xFF, 0x06, 0xFF, 0x00, 0x02,
+ 0x07, 0x0F, 0x07, 0x0F, 0x00, 0x05,
+ 0x07, 0x10, 0x07, 0x10, 0x00, 0x04,
+ 0x07, 0x11, 0x07, 0x11, 0x00, 0x05,
+ 0x07, 0x12, 0x07, 0x14, 0x00, 0x02,
+ 0x07, 0x15, 0x07, 0x19, 0x00, 0x04,
+ 0x07, 0x1A, 0x07, 0x1D, 0x00, 0x02,
+ 0x07, 0x1E, 0x07, 0x1E, 0x00, 0x04,
+ 0x07, 0x1F, 0x07, 0x27, 0x00, 0x02,
+ 0x07, 0x28, 0x07, 0x28, 0x00, 0x04,
+ 0x07, 0x29, 0x07, 0x29, 0x00, 0x02,
+ 0x07, 0x2A, 0x07, 0x2A, 0x00, 0x04,
+ 0x07, 0x2B, 0x07, 0x2B, 0x00, 0x02,
+ 0x07, 0x2C, 0x07, 0x2C, 0x00, 0x04,
+ 0x07, 0x2D, 0x07, 0x2E, 0x00, 0x02,
+ 0x07, 0x2F, 0x07, 0x2F, 0x00, 0x04,
+ 0x07, 0x30, 0x07, 0x4A, 0x00, 0x05,
+ 0x07, 0x4D, 0x07, 0x4D, 0x00, 0x04,
+ 0x07, 0x4E, 0x07, 0x58, 0x00, 0x02,
+ 0x07, 0x59, 0x07, 0x5B, 0x00, 0x04,
+ 0x07, 0x5C, 0x07, 0x6A, 0x00, 0x02,
+ 0x07, 0x6B, 0x07, 0x6C, 0x00, 0x04,
+ 0x07, 0x6D, 0x07, 0x6D, 0x00, 0x02,
+ 0x07, 0xA6, 0x07, 0xB0, 0x00, 0x05,
+ 0x07, 0xCA, 0x07, 0xEA, 0x00, 0x02,
+ 0x07, 0xEB, 0x07, 0xF3, 0x00, 0x05,
+ 0x07, 0xFA, 0x07, 0xFA, 0x00, 0x01,
+ 0x09, 0x01, 0x09, 0x02, 0x00, 0x05,
+ 0x09, 0x3C, 0x09, 0x3C, 0x00, 0x05,
+ 0x09, 0x41, 0x09, 0x48, 0x00, 0x05,
+ 0x09, 0x4D, 0x09, 0x4D, 0x00, 0x05,
+ 0x09, 0x51, 0x09, 0x54, 0x00, 0x05,
+ 0x09, 0x62, 0x09, 0x63, 0x00, 0x05,
+ 0x09, 0x81, 0x09, 0x81, 0x00, 0x05,
+ 0x09, 0xBC, 0x09, 0xBC, 0x00, 0x05,
+ 0x09, 0xC1, 0x09, 0xC4, 0x00, 0x05,
+ 0x09, 0xCD, 0x09, 0xCD, 0x00, 0x05,
+ 0x09, 0xE2, 0x09, 0xE3, 0x00, 0x05,
+ 0x0A, 0x01, 0x0A, 0x02, 0x00, 0x05,
+ 0x0A, 0x3C, 0x0A, 0x3C, 0x00, 0x05,
+ 0x0A, 0x41, 0x0A, 0x42, 0x00, 0x05,
+ 0x0A, 0x47, 0x0A, 0x48, 0x00, 0x05,
+ 0x0A, 0x4B, 0x0A, 0x4D, 0x00, 0x05,
+ 0x0A, 0x70, 0x0A, 0x71, 0x00, 0x05,
+ 0x0A, 0x81, 0x0A, 0x82, 0x00, 0x05,
+ 0x0A, 0xBC, 0x0A, 0xBC, 0x00, 0x05,
+ 0x0A, 0xC1, 0x0A, 0xC5, 0x00, 0x05,
+ 0x0A, 0xC7, 0x0A, 0xC8, 0x00, 0x05,
+ 0x0A, 0xCD, 0x0A, 0xCD, 0x00, 0x05,
+ 0x0A, 0xE2, 0x0A, 0xE3, 0x00, 0x05,
+ 0x0B, 0x01, 0x0B, 0x01, 0x00, 0x05,
+ 0x0B, 0x3C, 0x0B, 0x3C, 0x00, 0x05,
+ 0x0B, 0x3F, 0x0B, 0x3F, 0x00, 0x05,
+ 0x0B, 0x41, 0x0B, 0x43, 0x00, 0x05,
+ 0x0B, 0x4D, 0x0B, 0x4D, 0x00, 0x05,
+ 0x0B, 0x56, 0x0B, 0x56, 0x00, 0x05,
+ 0x0B, 0x82, 0x0B, 0x82, 0x00, 0x05,
+ 0x0B, 0xC0, 0x0B, 0xC0, 0x00, 0x05,
+ 0x0B, 0xCD, 0x0B, 0xCD, 0x00, 0x05,
+ 0x0C, 0x3E, 0x0C, 0x40, 0x00, 0x05,
+ 0x0C, 0x46, 0x0C, 0x48, 0x00, 0x05,
+ 0x0C, 0x4A, 0x0C, 0x4D, 0x00, 0x05,
+ 0x0C, 0x55, 0x0C, 0x56, 0x00, 0x05,
+ 0x0C, 0xBC, 0x0C, 0xBC, 0x00, 0x05,
+ 0x0C, 0xBF, 0x0C, 0xBF, 0x00, 0x05,
+ 0x0C, 0xC6, 0x0C, 0xC6, 0x00, 0x05,
+ 0x0C, 0xCC, 0x0C, 0xCD, 0x00, 0x05,
+ 0x0C, 0xE2, 0x0C, 0xE3, 0x00, 0x05,
+ 0x0D, 0x41, 0x0D, 0x43, 0x00, 0x05,
+ 0x0D, 0x4D, 0x0D, 0x4D, 0x00, 0x05,
+ 0x0D, 0xCA, 0x0D, 0xCA, 0x00, 0x05,
+ 0x0D, 0xD2, 0x0D, 0xD4, 0x00, 0x05,
+ 0x0D, 0xD6, 0x0D, 0xD6, 0x00, 0x05,
+ 0x0E, 0x31, 0x0E, 0x31, 0x00, 0x05,
+ 0x0E, 0x34, 0x0E, 0x3A, 0x00, 0x05,
+ 0x0E, 0x47, 0x0E, 0x4E, 0x00, 0x05,
+ 0x0E, 0xB1, 0x0E, 0xB1, 0x00, 0x05,
+ 0x0E, 0xB4, 0x0E, 0xB9, 0x00, 0x05,
+ 0x0E, 0xBB, 0x0E, 0xBC, 0x00, 0x05,
+ 0x0E, 0xC8, 0x0E, 0xCD, 0x00, 0x05,
+ 0x0F, 0x18, 0x0F, 0x19, 0x00, 0x05,
+ 0x0F, 0x35, 0x0F, 0x35, 0x00, 0x05,
+ 0x0F, 0x37, 0x0F, 0x37, 0x00, 0x05,
+ 0x0F, 0x39, 0x0F, 0x39, 0x00, 0x05,
+ 0x0F, 0x71, 0x0F, 0x7E, 0x00, 0x05,
+ 0x0F, 0x80, 0x0F, 0x84, 0x00, 0x05,
+ 0x0F, 0x86, 0x0F, 0x87, 0x00, 0x05,
+ 0x0F, 0x90, 0x0F, 0x97, 0x00, 0x05,
+ 0x0F, 0x99, 0x0F, 0xBC, 0x00, 0x05,
+ 0x0F, 0xC6, 0x0F, 0xC6, 0x00, 0x05,
+ 0x10, 0x2D, 0x10, 0x30, 0x00, 0x05,
+ 0x10, 0x32, 0x10, 0x32, 0x00, 0x05,
+ 0x10, 0x36, 0x10, 0x37, 0x00, 0x05,
+ 0x10, 0x39, 0x10, 0x39, 0x00, 0x05,
+ 0x10, 0x58, 0x10, 0x59, 0x00, 0x05,
+ 0x13, 0x5F, 0x13, 0x5F, 0x00, 0x05,
+ 0x17, 0x12, 0x17, 0x14, 0x00, 0x05,
+ 0x17, 0x32, 0x17, 0x34, 0x00, 0x05,
+ 0x17, 0x52, 0x17, 0x53, 0x00, 0x05,
+ 0x17, 0x72, 0x17, 0x73, 0x00, 0x05,
+ 0x17, 0xB4, 0x17, 0xB5, 0x00, 0x05,
+ 0x17, 0xB7, 0x17, 0xBD, 0x00, 0x05,
+ 0x17, 0xC6, 0x17, 0xC6, 0x00, 0x05,
+ 0x17, 0xC9, 0x17, 0xD3, 0x00, 0x05,
+ 0x17, 0xDD, 0x17, 0xDD, 0x00, 0x05,
+ 0x18, 0x0B, 0x18, 0x0D, 0x00, 0x05,
+ 0x18, 0xA9, 0x18, 0xA9, 0x00, 0x05,
+ 0x19, 0x20, 0x19, 0x22, 0x00, 0x05,
+ 0x19, 0x27, 0x19, 0x28, 0x00, 0x05,
+ 0x19, 0x32, 0x19, 0x32, 0x00, 0x05,
+ 0x19, 0x39, 0x19, 0x3B, 0x00, 0x05,
+ 0x1A, 0x17, 0x1A, 0x18, 0x00, 0x05,
+ 0x1B, 0x00, 0x1B, 0x03, 0x00, 0x05,
+ 0x1B, 0x34, 0x1B, 0x34, 0x00, 0x05,
+ 0x1B, 0x36, 0x1B, 0x3A, 0x00, 0x05,
+ 0x1B, 0x3C, 0x1B, 0x3C, 0x00, 0x05,
+ 0x1B, 0x42, 0x1B, 0x42, 0x00, 0x05,
+ 0x1B, 0x6B, 0x1B, 0x73, 0x00, 0x05,
+ 0x1D, 0xC0, 0x1D, 0xCA, 0x00, 0x05,
+ 0x1D, 0xFE, 0x1D, 0xFF, 0x00, 0x05,
+ 0x20, 0x0B, 0x20, 0x0B, 0x00, 0x05,
+ 0x20, 0x0D, 0x20, 0x0D, 0x00, 0x01,
+ 0x20, 0x0E, 0x20, 0x0F, 0x00, 0x05,
+ 0x20, 0x2A, 0x20, 0x2E, 0x00, 0x05,
+ 0x20, 0x60, 0x20, 0x63, 0x00, 0x05,
+ 0x20, 0x6A, 0x20, 0x6F, 0x00, 0x05,
+ 0x20, 0xD0, 0x20, 0xEF, 0x00, 0x05,
+ 0x30, 0x2A, 0x30, 0x2F, 0x00, 0x05,
+ 0x30, 0x99, 0x30, 0x9A, 0x00, 0x05,
+ 0xA8, 0x06, 0xA8, 0x06, 0x00, 0x05,
+ 0xA8, 0x0B, 0xA8, 0x0B, 0x00, 0x05,
+ 0xA8, 0x25, 0xA8, 0x26, 0x00, 0x05,
+ 0xFB, 0x1E, 0xFB, 0x1E, 0x00, 0x05,
+ 0xFE, 0x00, 0xFE, 0x0F, 0x00, 0x05,
+ 0xFE, 0x20, 0xFE, 0x23, 0x00, 0x05,
+ 0xFE, 0xFF, 0xFE, 0xFF, 0x00, 0x05,
+ 0xFF, 0xF9, 0xFF, 0xFB, 0x00, 0x05
+};
+
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp
index 824c95d1c35..38f8a3275ce 100644
--- a/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp
+++ b/Build/source/libs/icu-xetex/layout/ThaiLayoutEngine.cpp
@@ -83,7 +83,7 @@ le_int32 ThaiLayoutEngine::computeGlyphs(const LEUnicode chars[], le_int32 offse
}
glyphCount = ThaiShaping::compose(chars, offset, count, fGlyphSet, fErrorChar, outChars, glyphStorage);
- mapCharsToGlyphs(outChars, 0, glyphCount, FALSE, FALSE, glyphStorage, success);
+ mapCharsToGlyphs(outChars, 0, glyphCount, FALSE, FALSE, TRUE, glyphStorage, success);
LE_DELETE_ARRAY(outChars);
diff --git a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp
new file mode 100644
index 00000000000..be97ab5baf4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.cpp
@@ -0,0 +1,87 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ *
+ * Developed at DIT - Government of Bhutan
+ *
+ * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
+ *
+ * This file is a modification of the ICU file KhmerReordering.cpp
+ * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
+ * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
+ * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
+ *
+ */
+
+
+#include "OpenTypeLayoutEngine.h"
+#include "TibetanLayoutEngine.h"
+#include "LEGlyphStorage.h"
+#include "TibetanReordering.h"
+
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TibetanOpenTypeLayoutEngine)
+
+TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags, gsubTable)
+{
+ fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
+}
+
+TibetanOpenTypeLayoutEngine::TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags)
+ : OpenTypeLayoutEngine(fontInstance, scriptCode, languageCode, typoFlags)
+{
+ fFeatureMap = TibetanReordering::getFeatureMap(fFeatureMapCount);
+ fFeatureOrder = TRUE;
+}
+
+TibetanOpenTypeLayoutEngine::~TibetanOpenTypeLayoutEngine()
+{
+ // nothing to do
+}
+
+// Input: characters
+// Output: characters, char indices, tags
+// Returns: output character count
+le_int32 TibetanOpenTypeLayoutEngine::characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success)
+{
+ if (LE_FAILURE(success)) {
+ return 0;
+ }
+
+ if (chars == NULL || offset < 0 || count < 0 || max < 0 || offset >= max || offset + count > max) {
+ success = LE_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
+ }
+
+ le_int32 worstCase = count * 3; // worst case is 3 for Khmer TODO check if 2 is enough
+
+ outChars = LE_NEW_ARRAY(LEUnicode, worstCase);
+
+ if (outChars == NULL) {
+ success = LE_MEMORY_ALLOCATION_ERROR;
+ return 0;
+ }
+
+ glyphStorage.allocateGlyphArray(worstCase, rightToLeft, success);
+ glyphStorage.allocateAuxData(success);
+
+ if (LE_FAILURE(success)) {
+ LE_DELETE_ARRAY(outChars);
+ return 0;
+ }
+
+ // NOTE: assumes this allocates featureTags...
+ // (probably better than doing the worst case stuff here...)
+ le_int32 outCharCount = TibetanReordering::reorder(&chars[offset], count, fScriptCode, outChars, glyphStorage);
+
+ glyphStorage.adoptGlyphCount(outCharCount);
+ return outCharCount;
+}
+
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h
new file mode 100644
index 00000000000..9deb4f0241a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/TibetanLayoutEngine.h
@@ -0,0 +1,129 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ *
+ * Developed at DIT - Government of Bhutan
+ *
+ * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
+ *
+ * This file is a modification of the ICU file KhmerReordering.cpp
+ * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
+ * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
+ * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
+ *
+ */
+
+#ifndef __TIBETANLAYOUTENGINE_H
+#define __TIBETANLAYOUTENGINE_H
+
+// #include "LETypes.h"
+// #include "LEFontInstance.h"
+// #include "LEGlyphFilter.h"
+// #include "LayoutEngine.h"
+// #include "OpenTypeLayoutEngine.h"
+
+// #include "GlyphSubstitutionTables.h"
+// #include "GlyphDefinitionTables.h"
+// #include "GlyphPositioningTables.h"
+
+U_NAMESPACE_BEGIN
+
+// class MPreFixups;
+// class LEGlyphStorage;
+
+/**
+ * This class implements OpenType layout for Dzongkha and Tibetan OpenType fonts
+ *
+ * @internal
+ */
+class TibetanOpenTypeLayoutEngine : public OpenTypeLayoutEngine
+{
+public:
+ /**
+ * This is the main constructor. It constructs an instance of TibetanOpenTypeLayoutEngine for
+ * a particular font, script and language. It takes the GSUB table as a parameter since
+ * LayoutEngine::layoutEngineFactory has to read the GSUB table to know that it has an
+ * Tibetan OpenType font.
+ *
+ * @param fontInstance - the font
+ * @param scriptCode - the script
+ * @param langaugeCode - the language
+ * @param gsubTable - the GSUB table
+ *
+ * @see LayoutEngine::layoutEngineFactory
+ * @see OpenTypeLayoutEngine
+ * @see ScriptAndLangaugeTags.h for script and language codes
+ *
+ * @internal
+ */
+ TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags, const GlyphSubstitutionTableHeader *gsubTable);
+
+ /**
+ * This constructor is used when the font requires a "canned" GSUB table which can't be known
+ * until after this constructor has been invoked.
+ *
+ * @param fontInstance - the font
+ * @param scriptCode - the script
+ * @param langaugeCode - the language
+ *
+ * @see OpenTypeLayoutEngine
+ * @see ScriptAndLangaugeTags.h for script and language codes
+ *
+ * @internal
+ */
+ TibetanOpenTypeLayoutEngine(const LEFontInstance *fontInstance, le_int32 scriptCode, le_int32 languageCode,
+ le_int32 typoFlags);
+
+ /**
+ * The destructor, virtual for correct polymorphic invocation.
+ *
+ * @internal
+ */
+ virtual ~TibetanOpenTypeLayoutEngine();
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for the actual class.
+ *
+ * @draft ICU 3.6
+ */
+ virtual UClassID getDynamicClassID() const;
+
+ /**
+ * ICU "poor man's RTTI", returns a UClassID for this class.
+ *
+ * @draft ICU 3.6
+ */
+ static UClassID getStaticClassID();
+
+protected:
+
+ /**
+ * This method does Tibetan OpenType character processing. It assigns the OpenType feature
+ * tags to the characters, and may generate output characters which have been reordered.
+ * It may also split some vowels, resulting in more output characters than input characters.
+ *
+ * Input parameters:
+ * @param chars - the input character context
+ * @param offset - the index of the first character to process
+ * @param count - the number of characters to process
+ * @param max - the number of characters in the input context
+ * @param rightToLeft - <code>TRUE</code> if the characters are in a right to left directional run
+ * @param glyphStorage - the glyph storage object. The glyph and character index arrays will be set.
+ * the auxillary data array will be set to the feature tags.
+ *
+ * Output parameters:
+ * @param success - set to an error code if the operation fails
+ *
+ * @return the output character count
+ *
+ * @internal
+ */
+ virtual le_int32 characterProcessing(const LEUnicode chars[], le_int32 offset, le_int32 count, le_int32 max, le_bool rightToLeft,
+ LEUnicode *&outChars, LEGlyphStorage &glyphStorage, LEErrorCode &success);
+
+};
+
+U_NAMESPACE_END
+#endif
+
diff --git a/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp b/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp
new file mode 100644
index 00000000000..e7035126b68
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/TibetanReordering.cpp
@@ -0,0 +1,381 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2006 - All Rights Reserved
+ *
+ * Developed at DIT - Government of Bhutan
+ *
+ * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
+ *
+ * This file is a modification of the ICU file KhmerReordering.cpp
+ * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
+ * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
+ * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
+ *
+ */
+
+//#include <stdio.h>
+#include "LETypes.h"
+#include "OpenTypeTables.h"
+#include "TibetanReordering.h"
+#include "LEGlyphStorage.h"
+
+
+U_NAMESPACE_BEGIN
+
+// Characters that get refered to by name...
+enum
+{
+ C_DOTTED_CIRCLE = 0x25CC,
+ C_PRE_NUMBER_MARK = 0x0F3F
+ };
+
+
+enum
+{
+ // simple classes, they are used in the statetable (in this file) to control the length of a syllable
+ // they are also used to know where a character should be placed (location in reference to the base character)
+ // and also to know if a character, when independtly displayed, should be displayed with a dotted-circle to
+ // indicate error in syllable construction
+ _xx = TibetanClassTable::CC_RESERVED,
+ _ba = TibetanClassTable::CC_BASE,
+ _sj = TibetanClassTable::CC_SUBJOINED | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _tp = TibetanClassTable::CC_TSA_PHRU | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
+ _ac = TibetanClassTable::CC_A_CHUNG | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _cs = TibetanClassTable::CC_COMP_SANSKRIT | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _ha = TibetanClassTable::CC_HALANTA | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _bv = TibetanClassTable::CC_BELOW_VOWEL | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _av = TibetanClassTable::CC_ABOVE_VOWEL | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
+ _an = TibetanClassTable::CC_ANUSVARA | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
+ _cb = TibetanClassTable::CC_CANDRABINDU | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
+ _vs = TibetanClassTable::CC_VISARGA | TibetanClassTable::CF_DOTTED_CIRCLE| TibetanClassTable::CF_POS_AFTER,
+ _as = TibetanClassTable::CC_ABOVE_S_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_ABOVE,
+ _bs = TibetanClassTable::CC_BELOW_S_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_BELOW,
+ _di = TibetanClassTable::CC_DIGIT | TibetanClassTable::CF_DIGIT,
+ _pd = TibetanClassTable::CC_PRE_DIGIT_MARK | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_PREDIGIT | TibetanClassTable::CF_POS_BEFORE ,
+ _bd = TibetanClassTable::CC_POST_BELOW_DIGIT_M | TibetanClassTable::CF_DOTTED_CIRCLE | TibetanClassTable::CF_POS_AFTER
+};
+
+
+// Character class tables
+//_xx Non Combining characters
+//_ba Base Consonants
+//_sj Subjoined consonants
+//_tp Tsa - phru
+//_ac A-chung, Vowel Lengthening mark
+//_cs Precomposed Sanskrit vowel + subjoined consonants
+//_ha Halanta/Virama
+//_bv Below vowel
+//_av above vowel
+//_an Anusvara
+//_cb Candrabindu
+//_vs Visaraga/Post mark
+//_as Upper Stress marks
+//_bs Lower Stress marks
+//_di Digit
+//_pd Number pre combining, Needs reordering
+//_bd Other number combining marks
+
+static const TibetanClassTable::CharClass tibetanCharClasses[] =
+{
+ // 0 1 2 3 4 5 6 7 8 9 a b c d e f
+ _xx, _ba, _xx, _xx, _ba, _ba, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0F00 - 0F0F 0
+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _bd, _bd, _xx, _xx, _xx, _xx, _xx, _xx, // 0F10 - 0F1F 1
+ _di, _di, _di, _di, _di, _di, _di, _di, _di, _di, _xx, _xx, _xx, _xx, _xx, _xx, // 0F20 - 0F2F 2
+ _xx, _xx, _xx, _xx, _xx, _bs, _xx, _bs, _xx, _tp, _xx, _xx, _xx, _xx, _bd, _pd, // 0F30 - 0F3F 3
+ _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _xx, _ba, _ba, _ba, _ba, _ba, _ba, _ba, // 0F40 - 0F4F 4
+ _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, // 0F50 - 0F5F 5
+ _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _ba, _xx, _xx, _xx, _xx, _xx, // 0F60 - 0F6F 6
+ _xx, _ac, _av, _cs, _bv, _bv, _cs, _cs, _cs, _cs, _av, _av, _av, _av, _an, _vs, // 0F70 - 0F7F 7
+ _av, _cs, _cb, _cb, _ha, _xx, _as, _as, _ba, _ba, _ba, _ba, _xx, _xx, _xx, _xx, // 0F80 - 0F8F 8
+ _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _xx, _sj, _sj, _sj, _sj, _sj, _sj, _sj, // 0F90 - 0F9F 9
+ _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, // 0FA0 - 0FAF a
+ _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _sj, _xx, _sj, _sj, // 0FB0 - 0FBF b
+ _xx, _xx, _xx, _xx, _xx, _xx, _bs, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FC0 - 0FCF c
+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx,// 0FD0 - 0FDF d
+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FE0 - 0FEF e
+ _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, _xx, // 0FF0 - 0FFF f
+};
+
+
+//
+// Tibetan Class Tables
+//
+
+//
+// The range of characters defined in the above table is defined here. For Tibetan 0F00 to 0FFF
+// Even if the Tibetan range is bigger, most of the characters are not combinable, and therefore treated
+// as _xx
+static const TibetanClassTable tibetanClassTable = {0x0F00, 0x0FFF, tibetanCharClasses};
+
+
+// Below we define how a character in the input string is either in the tibetanCharClasses table
+// (in which case we get its type back), or an unknown object in which case we get _xx (CC_RESERVED) back
+TibetanClassTable::CharClass TibetanClassTable::getCharClass(LEUnicode ch) const
+{
+ if (ch < firstChar || ch > lastChar) {
+ return CC_RESERVED;
+ }
+
+ return classTable[ch - firstChar];
+}
+
+const TibetanClassTable *TibetanClassTable::getTibetanClassTable()
+{
+ return &tibetanClassTable;
+}
+
+
+
+class TibetanReorderingOutput : public UMemory {
+private:
+ le_int32 fOutIndex;
+ LEUnicode *fOutChars;
+
+ LEGlyphStorage &fGlyphStorage;
+
+
+public:
+ TibetanReorderingOutput(LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+ : fOutIndex(0), fOutChars(outChars), fGlyphStorage(glyphStorage)
+ {
+ // nothing else to do...
+ }
+
+ ~TibetanReorderingOutput()
+ {
+ // nothing to do here...
+ }
+
+ void writeChar(LEUnicode ch, le_uint32 charIndex, FeatureMask featureMask)
+ {
+ LEErrorCode success = LE_NO_ERROR;
+
+ fOutChars[fOutIndex] = ch;
+
+ fGlyphStorage.setCharIndex(fOutIndex, charIndex, success);
+ fGlyphStorage.setAuxData(fOutIndex, featureMask, NULL, success);
+
+ fOutIndex += 1;
+ }
+
+ le_int32 getOutputIndex()
+ {
+ return fOutIndex;
+ }
+};
+
+
+//TODO remove unused flags
+#define ccmpFeatureTag LE_CCMP_FEATURE_TAG
+#define blwfFeatureTag LE_BLWF_FEATURE_TAG
+#define pstfFeatureTag LE_PSTF_FEATURE_TAG
+#define presFeatureTag LE_PRES_FEATURE_TAG
+#define blwsFeatureTag LE_BLWS_FEATURE_TAG
+#define abvsFeatureTag LE_ABVS_FEATURE_TAG
+#define pstsFeatureTag LE_PSTS_FEATURE_TAG
+
+#define blwmFeatureTag LE_BLWM_FEATURE_TAG
+#define abvmFeatureTag LE_ABVM_FEATURE_TAG
+#define distFeatureTag LE_DIST_FEATURE_TAG
+
+#define prefFeatureTag LE_PREF_FEATURE_TAG
+#define abvfFeatureTag LE_ABVF_FEATURE_TAG
+#define cligFeatureTag LE_CLIG_FEATURE_TAG
+#define mkmkFeatureTag LE_MKMK_FEATURE_TAG
+
+// Shaping features
+#define prefFeatureMask 0x80000000UL
+#define blwfFeatureMask 0x40000000UL
+#define abvfFeatureMask 0x20000000UL
+#define pstfFeatureMask 0x10000000UL
+#define presFeatureMask 0x08000000UL
+#define blwsFeatureMask 0x04000000UL
+#define abvsFeatureMask 0x02000000UL
+#define pstsFeatureMask 0x01000000UL
+#define cligFeatureMask 0x00800000UL
+#define ccmpFeatureMask 0x00040000UL
+
+// Positioning features
+#define distFeatureMask 0x00400000UL
+#define blwmFeatureMask 0x00200000UL
+#define abvmFeatureMask 0x00100000UL
+#define mkmkFeatureMask 0x00080000UL
+
+#define tagPref (ccmpFeatureMask | prefFeatureMask | presFeatureMask | cligFeatureMask | distFeatureMask)
+#define tagAbvf (ccmpFeatureMask | abvfFeatureMask | abvsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | mkmkFeatureMask)
+#define tagPstf (ccmpFeatureMask | blwfFeatureMask | blwsFeatureMask | prefFeatureMask | presFeatureMask | pstfFeatureMask | pstsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask)
+#define tagBlwf (ccmpFeatureMask | blwfFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+#define tagDefault (ccmpFeatureMask | prefFeatureMask | blwfFeatureMask | presFeatureMask | blwsFeatureMask | cligFeatureMask | distFeatureMask | abvmFeatureMask | blwmFeatureMask | mkmkFeatureMask)
+
+
+
+// These are in the order in which the features need to be applied
+// for correct processing
+static const FeatureMap featureMap[] =
+{
+ // Shaping features
+ {ccmpFeatureTag, ccmpFeatureMask},
+ {prefFeatureTag, prefFeatureMask},
+ {blwfFeatureTag, blwfFeatureMask},
+ {abvfFeatureTag, abvfFeatureMask},
+ {pstfFeatureTag, pstfFeatureMask},
+ {presFeatureTag, presFeatureMask},
+ {blwsFeatureTag, blwsFeatureMask},
+ {abvsFeatureTag, abvsFeatureMask},
+ {pstsFeatureTag, pstsFeatureMask},
+ {cligFeatureTag, cligFeatureMask},
+
+ // Positioning features
+ {distFeatureTag, distFeatureMask},
+ {blwmFeatureTag, blwmFeatureMask},
+ {abvmFeatureTag, abvmFeatureMask},
+ {mkmkFeatureTag, mkmkFeatureMask},
+};
+
+static const le_int32 featureMapCount = LE_ARRAY_SIZE(featureMap);
+
+// The stateTable is used to calculate the end (the length) of a well
+// formed Tibetan Syllable.
+//
+// Each horizontal line is ordered exactly the same way as the values in TibetanClassTable
+// CharClassValues in TibetanReordering.h This coincidence of values allows the
+// follow up of the table.
+//
+// Each line corresponds to a state, which does not necessarily need to be a type
+// of component... for example, state 2 is a base, with is always a first character
+// in the syllable, but the state could be produced a consonant of any type when
+// it is the first character that is analysed (in ground state).
+//
+static const le_int8 tibetanStateTable[][TibetanClassTable::CC_COUNT] =
+{
+
+
+ //Dzongkha state table
+ //xx ba sj tp ac cs ha bv av an cb vs as bs di pd bd
+ { 1, 2, 4, 3, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, 20, 21, 21,}, // 0 - ground state
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 1 - exit state (or sign to the right of the syllable)
+ {-1, -1, 4, 3, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 2 - Base consonant
+ {-1, -1, 5, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 3 - Tsa phru after base
+ {-1, -1, 4, 6, 8, 7, 9, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 4 - Subjoined consonant after base
+ {-1, -1, 5, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 5 - Subjoined consonant after tsa phru
+ {-1, -1, -1, -1, 8, 7, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 6 - Tsa phru after subjoined consonant
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, -1, -1, -1,}, // 7 - Pre Composed Sanskrit
+ {-1, -1, -1, -1, -1, -1, -1, 10, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 8 - A-chung
+ {-1, -1, -1, -1, -1, -1, -1, -1, 14, 13, 17, -1, 19, 19, -1, -1, -1,}, // 9 - Halanta
+ {-1, -1, -1, -1, -1, -1, -1, 11, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 10 - below vowel 1
+ {-1, -1, -1, -1, -1, -1, -1, 12, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 11 - below vowel 2
+ {-1, -1, -1, -1, -1, -1, -1, -1, 14, 13, 17, 18, 19, 19, -1, -1, -1,}, // 12 - below vowel 3
+ {-1, -1, -1, -1, -1, -1, -1, -1, 14, 17, 17, 18, 19, 19, -1, -1, -1,}, // 13 - Anusvara before vowel
+ {-1, -1, -1, -1, -1, -1, -1, -1, 15, 17, 17, 18, 19, 19, -1, -1, -1,}, // 14 - above vowel 1
+ {-1, -1, -1, -1, -1, -1, -1, -1, 16, 17, 17, 18, 19, 19, -1, -1, -1,}, // 15 - above vowel 2
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, 17, 17, 18, 19, 19, -1, -1, -1,}, // 16 - above vowel 3
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 18, 19, 19, -1, -1, -1,}, // 17 - Anusvara or Candrabindu after vowel
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 19, -1, -1, -1,}, // 18 - Visarga
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 19 - strss mark
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 21, 21,}, // 20 - digit
+ {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,}, // 21 - digit mark
+
+
+};
+
+
+const FeatureMap *TibetanReordering::getFeatureMap(le_int32 &count)
+{
+ count = featureMapCount;
+
+ return featureMap;
+}
+
+
+// Given an input string of characters and a location in which to start looking
+// calculate, using the state table, which one is the last character of the syllable
+// that starts in the starting position.
+le_int32 TibetanReordering::findSyllable(const TibetanClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount)
+{
+ le_int32 cursor = prev;
+ le_int8 state = 0;
+
+ while (cursor < charCount) {
+ TibetanClassTable::CharClass charClass = (classTable->getCharClass(chars[cursor]) & TibetanClassTable::CF_CLASS_MASK);
+
+ state = tibetanStateTable[state][charClass];
+
+ if (state < 0) {
+ break;
+ }
+
+ cursor += 1;
+ }
+
+ return cursor;
+}
+
+
+// This is the real reordering function as applied to the Tibetan language
+
+le_int32 TibetanReordering::reorder(const LEUnicode *chars, le_int32 charCount, le_int32,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage)
+{
+ const TibetanClassTable *classTable = TibetanClassTable::getTibetanClassTable();
+
+ TibetanReorderingOutput output(outChars, glyphStorage);
+ TibetanClassTable::CharClass charClass;
+ le_int32 i, prev = 0;
+
+ // This loop only exits when we reach the end of a run, which may contain
+ // several syllables.
+ while (prev < charCount) {
+ le_int32 syllable = findSyllable(classTable, chars, prev, charCount);
+
+ // shall we add a dotted circle?
+ // If in the position in which the base should be (first char in the string) there is
+ // a character that has the Dotted circle flag (a character that cannot be a base)
+ // then write a dotted circle
+ if (classTable->getCharClass(chars[prev]) & TibetanClassTable::CF_DOTTED_CIRCLE) {
+ output.writeChar(C_DOTTED_CIRCLE, prev, tagDefault);
+ }
+
+ // copy the rest to output, inverting the pre-number mark if present after a digit.
+ for (i = prev; i < syllable; i += 1) {
+ charClass = classTable->getCharClass(chars[i]);
+
+ if ((TibetanClassTable::CF_DIGIT & charClass)
+ && ( classTable->getCharClass(chars[i+1]) & TibetanClassTable::CF_PREDIGIT))
+ {
+ output.writeChar(C_PRE_NUMBER_MARK, i, tagPref);
+ output.writeChar(chars[i], i+1 , tagPref);
+ i += 1;
+ } else {
+ switch (charClass & TibetanClassTable::CF_POS_MASK) {
+
+ // If the present character is a number, and the next character is a pre-number combining mark
+ // then the two characters are reordered
+
+ case TibetanClassTable::CF_POS_ABOVE :
+ output.writeChar(chars[i], i, tagAbvf);
+ break;
+
+ case TibetanClassTable::CF_POS_AFTER :
+ output.writeChar(chars[i], i, tagPstf);
+ break;
+
+ case TibetanClassTable::CF_POS_BELOW :
+ output.writeChar(chars[i], i, tagBlwf);
+ break;
+
+ default:
+ // default - any other characters
+ output.writeChar(chars[i], i, tagDefault);
+ break;
+ } // switch
+ } // if
+ } // for
+
+ prev = syllable; // move the pointer to the start of next syllable
+ }
+
+ return output.getOutputIndex();
+}
+
+
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/layout/TibetanReordering.h b/Build/source/libs/icu-xetex/layout/TibetanReordering.h
new file mode 100644
index 00000000000..cafcf5646c8
--- /dev/null
+++ b/Build/source/libs/icu-xetex/layout/TibetanReordering.h
@@ -0,0 +1,151 @@
+/*
+ *
+ * (C) Copyright IBM Corp. 1998-2005 - All Rights Reserved
+ *
+ * Developed at DIT - Government of Bhutan
+ *
+ * Contact person: Pema Geyleg - <pema_geyleg@druknet.bt>
+ *
+ * This file is a modification of the ICU file KhmerReordering.h
+ * by Jens Herden and Javier Sola who have given all their possible rights to IBM and the Governement of Bhutan
+ * A first module for Dzongkha was developed by Karunakar under Panlocalisation funding.
+ * Assistance for this module has been received from Namgay Thinley, Christopher Fynn and Javier Sola
+ *
+ */
+
+#ifndef __TIBETANREORDERING_H
+#define __TIBETANORDERING_H
+
+/**
+ * \file
+ * \internal
+ */
+
+// #include "LETypes.h"
+// #include "OpenTypeTables.h"
+
+U_NAMESPACE_BEGIN
+
+class LEGlyphStorage;
+
+// Vocabulary
+// Base -> A consonant in its full (not subscript) form. It is the
+// center of the syllable, it can be souranded by subjoined consonants, vowels,
+// signs... but there is only one base in a stack, it has to be coded as
+// the first character of the syllable.Included here are also groups of base + subjoined
+// which are represented by one single code point in unicode (e.g. 0F43) Also other characters that might take
+// subjoined consonants or other combining characters.
+// Subjoined -> Subjoined consonants and groups of subjoined consonants which have a single code-point
+// to repersent the group (even if each subjoined consonant is represented independently
+// by anothe code-point
+// Tsa Phru --> Tsa Phru character, Bhutanese people will always place it right after the base, but sometimes, due to
+// "normalization"
+// is placed after all the subjoined consonants, and it is also permitted there.
+// A Chung Vowel lengthening mark --> . 0F71 It is placed after the base and any subjoined consonants but before any vowels
+// Precomposed Sanskrit vowels --> The are combinations of subjoined consonants + vowels that have been assigned
+// a given code-point (in spite of each single part of them having also a code-point
+// They are avoided, and users are encouraged to use the combination of code-points that
+// represents the same sound instead of using this combined characters. This is included here
+// for compatibility with possible texts that use them (they are not in the Dzongkha keyboard).
+// Halanta -> The Halanta or Virama character 0F84 indicates that a consonant should not use its inheernt vowel,
+// in spite of not having other vowels present. It is usually placed immediatly after a base consonant,
+// but in some special cases it can also be placed after a subjoined consonant, so this is also
+// permitted in this algorithm. (Halanta is always displayed in Tibetan not used as a connecting char)
+//
+// Subjoined vowels -> Dependent vowels (matras) placed below the base and below all subjoined consonants. There
+// might be as much as three subjoined vowels in a given stack (only one in general text, but up
+// to three for abreviations, they have to be permitted).
+// Superscript vowels -> There are three superscript vowels, and they can be repeated or combined (up to three
+// times. They can combine with subjoined vowels, and are always coded after these.
+// Anusvara --> Nasalisation sign. Traditioinally placed in absence of vowels, but also after vowels. In some
+// special cases it can be placed before a vowel, so this is also permitted
+// Candrabindu -> Forms of the Anusvara with different glyphs (and different in identity) which can be placed
+// without vowel or after the vowel, but never before. Cannot combine with Anusvara.
+// Stress marks -> Marks placed above or below a syllable, affecting the whole syllable. They are combining
+// marks, so they have to be attached to a specific stack. The are using to emphasise a syllable.
+//
+// Digits -> Digits are not considered as non-combining characters because there are a few characters which
+// combine with them, so they have to be considered independently.
+// Digit combining marks -> dependent marks that combine with digits.
+//
+// TODO
+// There are a number of characters in the CJK block that are used in Tibetan script, two of these are symbols
+// are used as bases for combining glyphs, and have not been encoded in Tibetan. As these characters are outside
+// of the tibetan block, they have not been treated in this program.
+
+
+struct TibetanClassTable // This list must include all types of components that can be used inside a syllable
+{
+ enum CharClassValues // order is important here! This order must be the same that is found in each horizontal
+ // line in the statetable for Tibetan (file TibetanReordering.cpp). It assigns one number
+ // to each type of character that has to be considered when analysing the order in which
+ // characters can be placed
+ {
+ CC_RESERVED = 0, //Non Combining Characters
+ CC_BASE = 1, // Base Consonants, Base Consonants with Subjoined attached in code point, Sanskrit base marks
+ CC_SUBJOINED = 2, // Subjoined Consonats, combination of more than Subjoined Consonants in the code point
+ CC_TSA_PHRU = 3, // Tsa-Phru character 0F39
+ CC_A_CHUNG = 4, // Vowel Lenthening a-chung mark 0F71
+ CC_COMP_SANSKRIT = 5, // Precomposed Sanskrit vowels including Subjoined characters and vowels
+ CC_HALANTA = 6, // Halanta Character 0F84
+ CC_BELOW_VOWEL = 7, // Subjoined vowels
+ CC_ABOVE_VOWEL = 8, // Superscript vowels
+ CC_ANUSVARA = 9, // Tibetan sign Rjes Su Nga Ro 0F7E
+ CC_CANDRABINDU = 10, // Tibetan sign Sna Ldan and Nyi Zla Naa Da 0F82, 0F83
+ CC_VISARGA = 11, // Tibetan sign Rnam Bcad (0F7F)
+ CC_ABOVE_S_MARK = 12, // Stress Marks placed above the text
+ CC_BELOW_S_MARK = 13, // Stress Marks placed below the text
+ CC_DIGIT = 14, // Dzongkha Digits
+ CC_PRE_DIGIT_MARK = 15, // Mark placed before the digit
+ CC_POST_BELOW_DIGIT_M = 16, // Mark placed below or after the digit
+ CC_COUNT = 17 // This is the number of character classes
+ };
+
+ enum CharClassFlags
+ {
+ CF_CLASS_MASK = 0x0000FFFF,
+
+ CF_DOTTED_CIRCLE = 0x04000000, // add a dotted circle if a character with this flag is the first in a syllable
+ CF_DIGIT = 0x01000000, // flag to speed up comparaisson
+ CF_PREDIGIT = 0x02000000, // flag to detect pre-digit marks for reordering
+
+ // position flags
+ CF_POS_BEFORE = 0x00080000,
+ CF_POS_BELOW = 0x00040000,
+ CF_POS_ABOVE = 0x00020000,
+ CF_POS_AFTER = 0x00010000,
+ CF_POS_MASK = 0x000f0000
+ };
+
+ typedef le_uint32 CharClass;
+
+ typedef le_int32 ScriptFlags;
+
+ LEUnicode firstChar; // for Tibetan this will become xOF00
+ LEUnicode lastChar; // and this x0FFF
+ const CharClass *classTable;
+
+ CharClass getCharClass(LEUnicode ch) const;
+
+ static const TibetanClassTable *getTibetanClassTable();
+};
+
+
+class TibetanReordering /* not : public UObject because all methods are static */ {
+public:
+ static le_int32 reorder(const LEUnicode *theChars, le_int32 charCount, le_int32 scriptCode,
+ LEUnicode *outChars, LEGlyphStorage &glyphStorage);
+
+ static const FeatureMap *getFeatureMap(le_int32 &count);
+
+private:
+ // do not instantiate
+ TibetanReordering();
+
+ static le_int32 findSyllable(const TibetanClassTable *classTable, const LEUnicode *chars, le_int32 prev, le_int32 charCount);
+
+};
+
+
+U_NAMESPACE_END
+#endif
diff --git a/Build/source/libs/icu-xetex/layout/layout.vcproj b/Build/source/libs/icu-xetex/layout/layout.vcproj
index 9855632c81d..12ab9c54c10 100644
--- a/Build/source/libs/icu-xetex/layout/layout.vcproj
+++ b/Build/source/libs/icu-xetex/layout/layout.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/layout.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -41,11 +42,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icule34d.dll"
+ OutputFile="..\..\bin\icule36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icule34d.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icule36d.pdb"
BaseAddress="0x4ac00000"
ImportLibrary="..\..\lib\iculed.lib"/>
<Tool
@@ -94,6 +95,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/layout.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -105,10 +107,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icule34.dll"
+ OutputFile="..\..\bin\icule36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\icule34.pdb"
+ ProgramDatabaseFile=".\..\..\lib\icule36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4ac00000"
ImportLibrary="..\..\lib\icule.lib"/>
@@ -221,6 +223,9 @@
RelativePath=".\GXLayoutEngine.cpp">
</File>
<File
+ RelativePath=".\HangulLayoutEngine.cpp">
+ </File>
+ <File
RelativePath=".\HanLayoutEngine.cpp">
</File>
<File
@@ -284,6 +289,9 @@
RelativePath=".\MarkToMarkPosnSubtables.cpp">
</File>
<File
+ RelativePath=".\MirroredCharData.cpp">
+ </File>
+ <File
RelativePath=".\MorphTables.cpp">
</File>
<File
@@ -317,6 +325,9 @@
RelativePath=".\SegmentSingleProcessor.cpp">
</File>
<File
+ RelativePath=".\ShapingTypeData.cpp">
+ </File>
+ <File
RelativePath=".\SimpleArrayProcessor.cpp">
</File>
<File
@@ -347,6 +358,12 @@
RelativePath=".\ThaiStateTables.cpp">
</File>
<File
+ RelativePath=".\TibetanLayoutEngine.cpp">
+ </File>
+ <File
+ RelativePath=".\TibetanReordering.cpp">
+ </File>
+ <File
RelativePath=".\TrimmedArrayProcessor.cpp">
</File>
<File
@@ -441,10 +458,10 @@
RelativePath=".\GXLayoutEngine.h">
</File>
<File
- RelativePath=".\HanLayoutEngine.h">
+ RelativePath=".\HangulLayoutEngine.h">
</File>
<File
- RelativePath=".\HindiFeatureTags.h">
+ RelativePath=".\HanLayoutEngine.h">
</File>
<File
RelativePath=".\IndicLayoutEngine.h">
@@ -744,6 +761,12 @@
RelativePath=".\ThaiShaping.h">
</File>
<File
+ RelativePath=".\TibetanLayoutEngine.h">
+ </File>
+ <File
+ RelativePath=".\TibetanReordering.h">
+ </File>
+ <File
RelativePath=".\TrimmedArrayProcessor.h">
</File>
<File
diff --git a/Build/source/libs/icu-xetex/layoutex/Makefile.in b/Build/source/libs/icu-xetex/layoutex/Makefile.in
index 5f8c6faa8c6..dcfee9706f2 100644
--- a/Build/source/libs/icu-xetex/layoutex/Makefile.in
+++ b/Build/source/libs/icu-xetex/layoutex/Makefile.in
@@ -1,13 +1,18 @@
-## Copyright (c) 1999-2004, International Business Machines Corporation and
-## others. All Rights Reserved.
+#******************************************************************************
+#
+# Copyright (C) 1999-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - layout
-## Install directory information
+## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -26,7 +31,7 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
ifeq ($(ENABLE_SO_VERSION_DATA),1)
SO_VERSION_DATA = layoutex.res
@@ -45,21 +50,26 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICULX)
-CPPFLAGS += -I$(srcdir) -I$(srcdir)/unicode -I$(srcdir)/.. -I$(top_builddir)/common -I$(top_srcdir)/common $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(srcdir) -I$(srcdir)/unicode -I$(srcdir)/.. -I$(top_srcdir)/common $(LIBCPPFLAGS)
DEFS += -DU_LAYOUTEX_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICULX)
LIBS = $(LIBICUUC) $(LIBICULE) $(DEFAULT_LIBS)
OBJECTS = ParagraphLayout.o \
RunArrays.o \
LXUtilities.o
+## Header files to install
+HEADERS= $(srcdir)/layout/ParagraphLayout.h $(srcdir)/layout/RunArrays.h
+
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
-## Header files to install
-HEADERS= $(srcdir)/layout/ParagraphLayout.h $(srcdir)/layout/RunArrays.h
+-include Makefile.local
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
@@ -79,7 +89,7 @@ check: all check-local
all-local: $(ALL_TARGETS)
-install-local: install-headers install-library
+install-local: install-headers install-library
install-library: all-local
$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
@@ -98,14 +108,13 @@ endif
ifneq ($(IMPORT_LIB_EXT),)
$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
- cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(FINAL_IMPORT_LIB) $(notdir $(IMPORT_LIB))
+ cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
endif
ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
endif
endif
-
install-headers:
$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/layout
@for file in $(HEADERS); do \
@@ -117,7 +126,7 @@ dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
- $(RMV) $(OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
+ $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
distclean-local: clean-local
$(RMV) Makefile
@@ -134,15 +143,14 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+$(SHARED_OBJECT): $(OBJECTS) $(SO_VERSION_DATA)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
-$(BATCH_TARGET): $(OBJECTS)
+$(BATCH_TARGET):$(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
endif # OS390BATCH
-
-endif
+endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -152,4 +160,3 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
endif
endif
-
diff --git a/Build/source/libs/icu-xetex/layoutex/ParagraphLayout.cpp b/Build/source/libs/icu-xetex/layoutex/ParagraphLayout.cpp
index 29fba0b3807..ba5ac417aaf 100644
--- a/Build/source/libs/icu-xetex/layoutex/ParagraphLayout.cpp
+++ b/Build/source/libs/icu-xetex/layoutex/ParagraphLayout.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
- * Copyright (C) 2002-2005, International Business Machines
+ * Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
@@ -10,6 +10,7 @@
* BreakIterator...
*/
#include "layout/LETypes.h"
+#include "layout/LEScripts.h"
#include "layout/LELanguages.h"
#include "layout/LayoutEngine.h"
#include "layout/LEFontInstance.h"
@@ -131,7 +132,7 @@ le_int32 StyleRuns::getRuns(le_int32 runLimits[], le_int32 styleIndices[])
* process, rather for all scripts which require
* complex processing for correct rendering.
*/
-static const le_bool complexTable[] = {
+static const le_bool complexTable[scriptCodeCount] = {
FALSE , /* Zyyy */
FALSE, /* Qaai */
TRUE, /* Arab */
@@ -186,7 +187,56 @@ static const le_bool complexTable[] = {
FALSE, /* Shaw */
FALSE, /* Tale */
FALSE, /* Ugar */
- FALSE /* Hrkt */
+ FALSE, /* Hrkt */
+ FALSE, /* Bugi */
+ FALSE, /* Glag */
+ FALSE, /* Khar */
+ FALSE, /* Sylo */
+ FALSE, /* Talu */
+ FALSE, /* Tfng */
+ FALSE, /* Xpeo */
+ FALSE, /* Bali */
+ FALSE, /* Batk */
+ FALSE, /* Blis */
+ FALSE, /* Brah */
+ FALSE, /* Cham */
+ FALSE, /* Cirt */
+ FALSE, /* Cyrs */
+ FALSE, /* Egyd */
+ FALSE, /* Egyh */
+ FALSE, /* Egyp */
+ FALSE, /* Geok */
+ FALSE, /* Hans */
+ FALSE, /* Hant */
+ FALSE, /* Hmng */
+ FALSE, /* Hung */
+ FALSE, /* Inds */
+ FALSE, /* Java */
+ FALSE, /* Kali */
+ FALSE, /* Latf */
+ FALSE, /* Latg */
+ FALSE, /* Lepc */
+ FALSE, /* Lina */
+ FALSE, /* Mand */
+ FALSE, /* Maya */
+ FALSE, /* Mero */
+ FALSE, /* Nkoo */
+ FALSE, /* Orkh */
+ FALSE, /* Perm */
+ FALSE, /* Phag */
+ FALSE, /* Phnx */
+ FALSE, /* Plrd */
+ FALSE, /* Roro */
+ FALSE, /* Sara */
+ FALSE, /* Syre */
+ FALSE, /* Syrj */
+ FALSE, /* Syrn */
+ FALSE, /* Teng */
+ FALSE, /* Taii */
+ FALSE, /* Visp */
+ FALSE, /* Xsux */
+ FALSE, /* Zxxx */
+ FALSE /* Zzzz */
};
@@ -450,14 +500,17 @@ le_bool ParagraphLayout::isComplex(const LEUnicode chars[], le_int32 count)
UErrorCode scriptStatus = U_ZERO_ERROR;
UScriptCode scriptCode = USCRIPT_INVALID_CODE;
UScriptRun *sr = uscript_openRun(chars, count, &scriptStatus);
+ le_bool result = FALSE;
while (uscript_nextRun(sr, NULL, NULL, &scriptCode)) {
if (isComplex(scriptCode)) {
- return TRUE;
+ result = TRUE;
+ break;
}
}
- return FALSE;
+ uscript_closeRun(sr);
+ return result;
}
le_int32 ParagraphLayout::getAscent() const
diff --git a/Build/source/libs/icu-xetex/layoutex/layout/RunArrays.h b/Build/source/libs/icu-xetex/layoutex/layout/RunArrays.h
index 94f6b6a6df8..27f928b4c9e 100644
--- a/Build/source/libs/icu-xetex/layoutex/layout/RunArrays.h
+++ b/Build/source/libs/icu-xetex/layoutex/layout/RunArrays.h
@@ -91,6 +91,16 @@ public:
inline le_int32 getCount() const;
/**
+ * Reset the limit indices array. This method sets the number of entries in the
+ * limit indices array to zero. It does not delete the array.
+ *
+ * Note: Subclass arrays will also be reset and not deleted.
+ *
+ * @draft ICU 3.6
+ */
+ inline void reset();
+
+ /**
* Get the last limit index. This is the number of characters in
* the text.
*
@@ -232,6 +242,11 @@ inline le_int32 RunArray::getCount() const
return fCount;
}
+inline void RunArray::reset()
+{
+ fCount = 0;
+}
+
inline le_int32 RunArray::getLimit(le_int32 run) const
{
if (run < 0 || run >= fCount) {
diff --git a/Build/source/libs/icu-xetex/layoutex/layoutex.vcproj b/Build/source/libs/icu-xetex/layoutex/layoutex.vcproj
index c1daf535146..4eae6ffdf14 100644
--- a/Build/source/libs/icu-xetex/layoutex/layoutex.vcproj
+++ b/Build/source/libs/icu-xetex/layoutex/layoutex.vcproj
@@ -26,6 +26,8 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/layoutex.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -37,10 +39,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\iculx34.dll"
+ OutputFile="..\..\bin\iculx36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\..\..\lib\iculx34.pdb"
+ ProgramDatabaseFile=".\..\..\lib\iculx36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4ac80000"
ImportLibrary="..\..\lib\iculx.lib"/>
@@ -89,6 +91,8 @@
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/layoutex.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -102,11 +106,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\iculx34d.dll"
+ OutputFile="..\..\bin\iculx36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\lib\iculx34d.pdb"
+ ProgramDatabaseFile=".\..\..\lib\iculx36d.pdb"
BaseAddress="0x4ac80000"
ImportLibrary="..\..\lib\iculxd.lib"/>
<Tool
diff --git a/Build/source/libs/icu-xetex/runConfigureICU b/Build/source/libs/icu-xetex/runConfigureICU
index 88c34c710f5..c59e507fa5b 100755
--- a/Build/source/libs/icu-xetex/runConfigureICU
+++ b/Build/source/libs/icu-xetex/runConfigureICU
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright (c) 1999-2005, International Business Machines Corporation and
+# Copyright (c) 1999-2006, International Business Machines Corporation and
# others. All Rights Reserved.
# runConfigureICU: This script will run the "configure" script for the appropriate platform
@@ -39,19 +39,16 @@ The following names can be supplied as the argument for platform:
HP-UX/ACC Use the HP ANSI C/Advanced C++ compilers on HP-UX 11
Linux Use the GNU gcc/g++ compilers on Linux
Linux/ECC Use the Intel ECC compiler on Linux
- Linux/ICC6 Use the Intel ICC 6 and older compilers on Linux
Linux/ICC Use the Intel ICC compiler on Linux
Linux/VA Use the IBM Visual Age compiler on Power PC Linux
MacOSX Use the GNU gcc/g++ compilers on MacOS X (Darwin)
QNX Use the QNX QCC compiler on QNX/Neutrino
Solaris Use the Sun cc/CC compilers on Solaris
- Solaris/W4.2 Use the Sun Workshop 4.2 CC (old) compiler on Solaris
Solaris/GCC Use the GNU gcc/g++ compilers on Solaris
SolarisX86 Use the Sun cc/CC compilers on Solaris x86
TRU64V5.1/CXX Use the Compaq cxx compiler on Tru64 (OSF)
zOS Use the IBM cxx compiler on z/OS (os/390)
zOSV1R2 Use the IBM cxx compiler for z/OS 1.2
- OS390V2R10 Use the IBM cxx compiler for OS/390 2.10
EOE
fi
@@ -133,9 +130,9 @@ case $platform in
;;
AIX/GCC)
THE_OS=AIX
- THE_COMP="gcc"
- CC=`which gcc`; export CC
- CXX=`which g++`; export CXX
+ THE_COMP="the GNU C++"
+ CC=gcc; export CC
+ CXX=g++; export CXX
;;
Solaris)
THE_OS=SOLARIS
@@ -145,29 +142,19 @@ case $platform in
RELEASE_CFLAGS="-xO4 -xlibmil"
RELEASE_CXXFLAGS="-O4 -xlibmil"
;;
- Solaris/W4.2)
- THE_OS=SOLARIS
- THE_COMP="Sun's CC"
- CC=`which cc`; export CC
- CXX=`which CC`; export CXX
- RELEASE_CFLAGS="-xO4 -xlibmil"
- RELEASE_CXXFLAGS="-O4 -xlibmil +d"
- ;;
Solaris/GCC)
THE_OS=SOLARIS
THE_COMP="the GNU C++"
- CXXFLAGS="$CXXFLAGS -I/usr/local/include/g++"; export CXXFLAGS
- LDFLAGS="$LDFLAGS -R/usr/local/lib"; export LDFLAGS
- RELEASE_CXXFLAGS=-O
- RELEASE_CFLAGS=-O3
+ CC=gcc; export CC
+ CXX=g++; export CXX
+ RELEASE_CFLAGS=-O1
+ RELEASE_CXXFLAGS=-O3
;;
SolarisX86)
THE_OS="SOLARIS X86"
THE_COMP="Sun's CC"
CC=`which cc`; export CC
CXX=`which CC`; export CXX
- CXX_FLAGS="-w";export CXX_FLAGS
- C_FLAGS="-w";export C_FLAGS
LDFLAGS="-L -lCrun";export LDFLAGS
RELEASE_CFLAGS=-xO3
RELEASE_CXXFLAGS=-O3
@@ -188,19 +175,11 @@ case $platform in
RELEASE_CFLAGS='-O2'
RELEASE_CXXFLAGS='-O2'
;;
- Linux/ICC6)
- THE_OS="Linux"
- THE_COMP="Intel ICC 6.0"
- CC=icc; export CC
- CXX=icpc; export CXX
- RELEASE_CFLAGS='-O0'
- RELEASE_CXXFLAGS='-O0'
- ;;
Linux/ICC)
THE_OS="Linux"
- THE_COMP="Intel ICC 8.0"
- CC=icc; export CC
- CXX=icpc; export CXX
+ THE_COMP="Intel ICC 9.0"
+ CC=`which icc`; export CC
+ CXX=`which icpc`; export CXX
RELEASE_CFLAGS='-O'
RELEASE_CXXFLAGS='-O'
;;
@@ -229,11 +208,11 @@ case $platform in
THE_COMP="Microsoft Visual C++"
CC=cl; export CC
CXX=cl; export CXX
- RELEASE_CFLAGS='/O2 /Ob2'
- RELEASE_CXXFLAGS='/O2 /Ob2'
- # The real debug flags are defined by the mh file because configure can't handle them.
- DEBUG_CFLAGS=
- DEBUG_CXXFLAGS=
+ RELEASE_CFLAGS='/O2 /Ob2 /Op'
+ RELEASE_CXXFLAGS='/O2 /Ob2 /Op'
+ DEBUG_CFLAGS='/Zi'
+ DEBUG_CXXFLAGS='/Zi'
+ DEBUG_LDFLAGS='/DEBUG'
;;
Cygwin/ICL)
THE_OS="Windows with Cygwin"
@@ -243,9 +222,9 @@ case $platform in
# The Intel compiler has optimization bugs. So we disable optimization.
RELEASE_CFLAGS='/Od'
RELEASE_CXXFLAGS='/Od'
- # The real debug flags are defined by the mh file because configure can't handle them.
- DEBUG_CFLAGS=
- DEBUG_CXXFLAGS=
+ DEBUG_CFLAGS='/Zi'
+ DEBUG_CXXFLAGS='/Zi'
+ DEBUG_LDFLAGS='/DEBUG'
;;
MacOSX)
THE_OS="MacOS X (Darwin)"
@@ -265,14 +244,6 @@ case $platform in
CC=cc; export CC
CXX=cxx; export CXX
;;
-# ALPHA/LINUXCCC)
-# THE_OS="Linux"
-# THE_COMP="Compaq's CC"
-# CC=ccc; export CC
-# CXX=cxx; export CXX
-# RELEASE_CFLAGS='-O4'
-# RELEASE_CXXFLAGS='-O4'
-# ;;
QNX)
THE_OS="QNX"
THE_COMP="QNX cc"
@@ -296,11 +267,11 @@ case $platform in
;;
zOS)
THE_OS="z/OS (OS/390)"
- THE_COMP="z/OS 1.2 (through OS/390 v2r10) C/C++"
+ THE_COMP="z/OS C/C++"
CC=cc; export CC
CXX=cxx; export CXX
- export RELEASE_CFLAGS='-2'
- export RELEASE_CXXFLAGS='-2'
+ export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,2500)'"
+ export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,300,2500)'"
;;
zOSV1R2)
THE_OS="z/OS 1.2"
@@ -309,24 +280,11 @@ case $platform in
CXX=cxx; export CXX
export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000'
export _CXX_CVERSION=0x41020000 _C89_CVERSION=0x41020000 _CC_CVERSION=0x41020000 _CXX_PVERSION=0x41020000 _C89_PVERSION=0x41020000 _CC_PVERSION=0x41020000
- export LDFLAGS=-Wl,"compat=pm3"
- export CFLAGS='-Wc,"target(zOSV1R2)"'
- export CXXFLAGS='-Wc,"target(zOSV1R2)"'
- export RELEASE_CFLAGS='-2'
- export RELEASE_CXXFLAGS='-2'
- ;;
- OS390V2R10)
- THE_OS="OS/390 2.10"
- THE_COMP="OS/390 2.10 C/C++"
- CC=cc; export CC
- CXX=cxx; export CXX
- export COMPILE_LINK_ENVVAR='_CXX_CVERSION=0x220A0000 _C89_CVERSION=0x220A0000 _CC_CVERSION=0x220A0000 _CXX_PVERSION=0x220A0000 _C89_PVERSION=0x220A0000 _CC_PVERSION=0x220A0000'
- export _CXX_CVERSION=0x220A0000 _C89_CVERSION=0x220A0000 _CC_CVERSION=0x220A0000 _CXX_PVERSION=0x220A0000 _C89_PVERSION=0x220A0000 _CC_PVERSION=0x220A0000
- export LDFLAGS=-Wl,"compat=pm3"
- export CFLAGS='-Wc,"target(OSV2R10)"'
- export CXXFLAGS='-Wc,"target(OSV2R10)"'
- export RELEASE_CFLAGS='-2'
- export RELEASE_CXXFLAGS='-2'
+ export LDFLAGS="-Wl,'compat=pm3'"
+ export CFLAGS="-Wc,'target(zOSV1R2)'"
+ export CXXFLAGS="-Wc,'target(zOSV1R2)'"
+ export RELEASE_CFLAGS="-2 -Wc,'inline(auto,noreport,500,2500)'"
+ export RELEASE_CXXFLAGS="-2 -Wc,'inline(auto,noreport,300,2500)'"
;;
*)
>&2 echo "$me: unrecognized platform \"$platform\" (use --help for help)"
diff --git a/Build/source/libs/icu-xetex/samples/Makefile.in b/Build/source/libs/icu-xetex/samples/Makefile.in
index 83d3340a1bb..03923fec8b8 100644
--- a/Build/source/libs/icu-xetex/samples/Makefile.in
+++ b/Build/source/libs/icu-xetex/samples/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU samples
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Install directory information
@@ -20,7 +20,7 @@ include @platform_make_fragment@
CLEANFILES = *~
SUBDIRS = date cal
-ALLSUBDIRS = break case datefmt msgfmt numfmt props translit ucnv udata ufortune uresb ustring citer uciter8
+ALLSUBDIRS = break case csdet datefmt msgfmt numfmt props translit ucnv udata ufortune uresb ustring citer uciter8
## List of phony targets
.PHONY : all all-local all-recursive install install-local \
diff --git a/Build/source/libs/icu-xetex/samples/break/break.vcproj b/Build/source/libs/icu-xetex/samples/break/break.vcproj
index 76b5748acf9..f94feab1f0b 100644
--- a/Build/source/libs/icu-xetex/samples/break/break.vcproj
+++ b/Build/source/libs/icu-xetex/samples/break/break.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/break.pch"
AssemblerListingLocation=".\Release/"
@@ -88,6 +89,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_WINDOWS"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/break.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/cal/cal.vcproj b/Build/source/libs/icu-xetex/samples/cal/cal.vcproj
index 369c3358f8c..1526950977a 100644
--- a/Build/source/libs/icu-xetex/samples/cal/cal.vcproj
+++ b/Build/source/libs/icu-xetex/samples/cal/cal.vcproj
@@ -27,6 +27,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/cal.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/cal.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/case/case.vcproj b/Build/source/libs/icu-xetex/samples/case/case.vcproj
index 23d8fd17231..e557583da69 100644
--- a/Build/source/libs/icu-xetex/samples/case/case.vcproj
+++ b/Build/source/libs/icu-xetex/samples/case/case.vcproj
@@ -25,6 +25,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/case.pch"
AssemblerListingLocation=".\Debug/"
@@ -86,6 +87,7 @@
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/case.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/citer/citer.vcproj b/Build/source/libs/icu-xetex/samples/citer/citer.vcproj
index f24ec8a674b..b4b58b5cc74 100644
--- a/Build/source/libs/icu-xetex/samples/citer/citer.vcproj
+++ b/Build/source/libs/icu-xetex/samples/citer/citer.vcproj
@@ -24,6 +24,7 @@
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
@@ -72,6 +73,7 @@
AdditionalIncludeDirectories="..\..\..\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="4"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="TRUE"
diff --git a/Build/source/libs/icu-xetex/samples/coll/coll.cpp b/Build/source/libs/icu-xetex/samples/coll/coll.cpp
index 402ba4b49ae..28e52392c0a 100644
--- a/Build/source/libs/icu-xetex/samples/coll/coll.cpp
+++ b/Build/source/libs/icu-xetex/samples/coll/coll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (C) 2002-2003 IBM, Inc. All Rights Reserved.
+ * Copyright (C) 2002-2006 IBM, Inc. All Rights Reserved.
*
********************************************************************/
@@ -86,7 +86,8 @@ UBool processOptions(int argc, const char **argv, OptSpec opts[])
{
for (int argNum = 1; argNum < argc; argNum ++) {
const char *pArgName = argv[argNum];
- for (OptSpec *pOpt = opts; pOpt->name != 0; pOpt ++) {
+ OptSpec *pOpt;
+ for (pOpt = opts; pOpt->name != 0; pOpt ++) {
if (strcmp(pOpt->name, pArgName) == 0) {
switch (pOpt->type) {
case OptSpec::FLAG:
diff --git a/Build/source/libs/icu-xetex/samples/coll/coll.vcproj b/Build/source/libs/icu-xetex/samples/coll/coll.vcproj
index 21f5cc608ac..6b34f962690 100644
--- a/Build/source/libs/icu-xetex/samples/coll/coll.vcproj
+++ b/Build/source/libs/icu-xetex/samples/coll/coll.vcproj
@@ -27,6 +27,7 @@
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/coll.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/coll.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/csdet/Makefile.in b/Build/source/libs/icu-xetex/samples/csdet/Makefile.in
new file mode 100644
index 00000000000..3f0963df36e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/samples/csdet/Makefile.in
@@ -0,0 +1,93 @@
+## Makefile.in for ICU - samples/csdet
+## Copyright (c) 2006, International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../..
+
+include $(top_builddir)/icudefs.mk
+
+## Platform-specific setup
+include @platform_make_fragment@
+
+## Build directory information
+subdir = samples/csdet
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS)
+
+## Target information
+TARGET = csdet
+
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)
+
+LIBS = $(LIBICUUC) $(LIBICUI18N) @LIBS@ @LIB_M@
+
+
+OBJECTS=csdet.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET)
+
+install-local:
+
+dist-local:
+
+clean-local:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+ $(RMV) $(OBJECTS) $(TARGET)
+
+distclean-local: clean-local
+ $(RMV) Makefile
+
+check-local: all-local
+ $(INVOKE) ./$(TARGET) $(top_srcdir)/extra/uconv/samples/danish-ISO-8859-1.txt
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+# The following two rules make it possible to
+# compile scrptrun.cpp from the extra/scrptrun directory.
+# they were copied from the default rules in mh-linux which
+# is probably OK because this sample will only run on Linux...
+scrptrun.d: $(top_srcdir)/extra/scrptrun/scrptrun.cpp
+ $(SHELL) -ec '$(GEN_DEPS.cc) $< \
+ | sed '\''s%\($*\)\.o[ :]*%\1.o $@ : %g'\'' > $@; \
+ [ -s $@ ] || rm -f $@'
+
+scrptrun.o: $(top_srcdir)/extra/scrptrun/scrptrun.cpp
+ $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $<
+
+$(TARGET) : $(OBJECTS)
+ $(LINK.cc) -o $@ $^ $(LIBS)
+
+invoke:
+ ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
diff --git a/Build/source/libs/icu-xetex/samples/csdet/csdet.c b/Build/source/libs/icu-xetex/samples/csdet/csdet.c
new file mode 100644
index 00000000000..b0c89f28599
--- /dev/null
+++ b/Build/source/libs/icu-xetex/samples/csdet/csdet.c
@@ -0,0 +1,73 @@
+/*
+ ********************************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ ********************************************************************************
+ */
+
+#include "unicode/utypes.h"
+#include "unicode/ucsdet.h"
+
+#include <string.h>
+#include <stdio.h>
+
+#define BUFFER_SIZE 8192
+
+int main(int argc, char *argv[])
+{
+ static char buffer[BUFFER_SIZE];
+ int32_t arg;
+
+ if( argc <= 1 ) {
+ printf("Usage: %s [filename]...\n", argv[0]);
+ return -1;
+ }
+
+ for(arg = 1; arg < argc; arg += 1) {
+ FILE *file;
+ char *filename = argv[arg];
+ int32_t inputLength, match, matchCount = 0;
+ UCharsetDetector* csd;
+ const UCharsetMatch **csm;
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (arg > 1) {
+ printf("\n");
+ }
+
+ file = fopen(filename, "rb");
+
+ if (file == NULL) {
+ printf("Cannot open file \"%s\"\n\n", filename);
+ continue;
+ }
+
+ printf("%s:\n", filename);
+
+ inputLength = (int32_t) fread(buffer, 1, BUFFER_SIZE, file);
+
+ fclose(file);
+
+ csd = ucsdet_open(&status);
+ ucsdet_setText(csd, buffer, inputLength, &status);
+
+ csm = ucsdet_detectAll(csd, &matchCount, &status);
+
+ for(match = 0; match < matchCount; match += 1) {
+ const char *name = ucsdet_getName(csm[match], &status);
+ const char *lang = ucsdet_getLanguage(csm[match], &status);
+ int32_t confidence = ucsdet_getConfidence(csm[match], &status);
+
+ if (lang == NULL || strlen(lang) == 0) {
+ lang = "**";
+ }
+
+ printf("%s (%s) %d\n", name, lang, confidence);
+ }
+
+ ucsdet_close(csd);
+ }
+
+ return 0;
+}
+
diff --git a/Build/source/libs/icu-xetex/samples/csdet/csdet.sln b/Build/source/libs/icu-xetex/samples/csdet/csdet.sln
new file mode 100644
index 00000000000..981a69fde8b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/samples/csdet/csdet.sln
@@ -0,0 +1,21 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "csdet", "csdet.vcproj", "{683745AD-3BC2-4B89-898B-93490D7F2757}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {683745AD-3BC2-4B89-898B-93490D7F2757}.Debug.ActiveCfg = Debug|Win32
+ {683745AD-3BC2-4B89-898B-93490D7F2757}.Debug.Build.0 = Debug|Win32
+ {683745AD-3BC2-4B89-898B-93490D7F2757}.Release.ActiveCfg = Release|Win32
+ {683745AD-3BC2-4B89-898B-93490D7F2757}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/icu-xetex/samples/csdet/csdet.vcproj b/Build/source/libs/icu-xetex/samples/csdet/csdet.vcproj
new file mode 100644
index 00000000000..28df93c13c6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/samples/csdet/csdet.vcproj
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="csdet"
+ ProjectGUID="{683745AD-3BC2-4B89-898B-93490D7F2757}"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../../include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ MinimalRebuild="TRUE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="4"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuucd.lib icuind.lib"
+ OutputFile="$(OutDir)/csdet.exe"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="../../../lib"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)/csdet.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="../../../include"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="4"
+ TreatWChar_tAsBuiltInType="TRUE"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="TRUE"
+ DebugInformationFormat="3"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuuc.lib icuin.lib"
+ OutputFile="$(OutDir)/csdet.exe"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="../../../lib"
+ GenerateDebugInformation="TRUE"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
+ <File
+ RelativePath=".\csdet.c">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu-xetex/samples/date/date.vcproj b/Build/source/libs/icu-xetex/samples/date/date.vcproj
index f0997e68d24..bee51c6321e 100644
--- a/Build/source/libs/icu-xetex/samples/date/date.vcproj
+++ b/Build/source/libs/icu-xetex/samples/date/date.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/date.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/date.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/datecal/Makefile b/Build/source/libs/icu-xetex/samples/datecal/Makefile
index a368cec70ed..89e728c87ba 100644
--- a/Build/source/libs/icu-xetex/samples/datecal/Makefile
+++ b/Build/source/libs/icu-xetex/samples/datecal/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2000-2003 IBM, Inc. and others
+# Copyright (c) 2000-2006 IBM, Inc. and others
# sample code makefile
# Usage:
@@ -12,7 +12,7 @@
TARGET=datecal
# All object files (C or C++)
-OBJECTS=datecal.o cdatcal.o
+OBJECTS=cal.o ccal.o
#### rules
# Load in standard makefile definitions
diff --git a/Build/source/libs/icu-xetex/samples/datefmt/datefmt.vcproj b/Build/source/libs/icu-xetex/samples/datefmt/datefmt.vcproj
index 57042d626e2..d3a83790b7f 100644
--- a/Build/source/libs/icu-xetex/samples/datefmt/datefmt.vcproj
+++ b/Build/source/libs/icu-xetex/samples/datefmt/datefmt.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/datefmt.pch"
AssemblerListingLocation=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/datefmt.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/layout/FontMap.cpp b/Build/source/libs/icu-xetex/samples/layout/FontMap.cpp
index 00e3c4dcc96..485351b403f 100644
--- a/Build/source/libs/icu-xetex/samples/layout/FontMap.cpp
+++ b/Build/source/libs/icu-xetex/samples/layout/FontMap.cpp
@@ -1,6 +1,6 @@
/*
******************************************************************************
- * Copyright (C) 1998-2003, International Business Machines Corporation and *
+ * Copyright (C) 1998-2005, International Business Machines Corporation and *
* others. All Rights Reserved. *
******************************************************************************
*/
@@ -23,6 +23,7 @@ FontMap::FontMap(const char *fileName, le_int16 pointSize, GUISupport *guiSuppor
: fPointSize(pointSize), fFontCount(0), fAscent(0), fDescent(0), fLeading(0), fGUISupport(guiSupport)
{
le_int32 defaultFont = -1, i, script;
+ le_bool haveFonts = FALSE;
for (i = 0; i < scriptCodeCount; i += 1) {
fFontIndices[i] = -1;
@@ -63,18 +64,17 @@ FontMap::FontMap(const char *fileName, le_int16 pointSize, GUISupport *guiSuppor
if (strcmp(scriptName, "DEFAULT") == 0) {
defaultFont = getFontIndex(fontName);
+ haveFonts = TRUE;
continue;
}
- uscript_getCode(scriptName, &scriptCode, 1, &scriptStatus);
+ le_int32 fillCount = uscript_getCode(scriptName, &scriptCode, 1, &scriptStatus);
- if (U_FAILURE(scriptStatus) || scriptStatus == U_USING_FALLBACK_WARNING ||
- scriptStatus == U_USING_DEFAULT_WARNING) {
+ if (U_FAILURE(scriptStatus) || fillCount <= 0 ||
+ scriptStatus == U_USING_FALLBACK_WARNING || scriptStatus == U_USING_DEFAULT_WARNING) {
sprintf(errorMessage, "The script name %s is invalid.", line);
fGUISupport->postErrorMessage(errorMessage, "Font Map Error");
- status = LE_ILLEGAL_ARGUMENT_ERROR;
- fclose(file);
- return;
+ continue;
}
script = (le_int32) scriptCode;
@@ -85,6 +85,7 @@ FontMap::FontMap(const char *fileName, le_int16 pointSize, GUISupport *guiSuppor
}
fFontIndices[script] = getFontIndex(fontName);
+ haveFonts = TRUE;
}
if (defaultFont >= 0) {
@@ -95,6 +96,12 @@ FontMap::FontMap(const char *fileName, le_int16 pointSize, GUISupport *guiSuppor
}
}
+ if (! haveFonts) {
+ sprintf(errorMessage, "The font map file %s does not contain any valid scripts.", fileName);
+ fGUISupport->postErrorMessage(errorMessage, "Font Map Error");
+ status = LE_ILLEGAL_ARGUMENT_ERROR;
+ }
+
fclose(file);
}
diff --git a/Build/source/libs/icu-xetex/samples/layout/GDIFontInstance.cpp b/Build/source/libs/icu-xetex/samples/layout/GDIFontInstance.cpp
index e66b28f2aac..d3451e9a575 100644
--- a/Build/source/libs/icu-xetex/samples/layout/GDIFontInstance.cpp
+++ b/Build/source/libs/icu-xetex/samples/layout/GDIFontInstance.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2003, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -55,6 +55,8 @@ void GDISurface::drawGlyphs(const LEFontInstance *font, const LEGlyphID *glyphs,
{
TTGlyphID *ttGlyphs = LE_NEW_ARRAY(TTGlyphID, count);
le_int32 *dx = LE_NEW_ARRAY(le_int32, count);
+ float *ps = LE_NEW_ARRAY(float, count * 2 + 2);
+ le_int32 out = 0;
RECT clip;
clip.top = 0;
@@ -63,13 +65,15 @@ void GDISurface::drawGlyphs(const LEFontInstance *font, const LEGlyphID *glyphs,
clip.right = width;
for (le_int32 g = 0; g < count; g += 1) {
- ttGlyphs[g] = (TTGlyphID) LE_GET_GLYPH(glyphs[g]);
-
- if (ttGlyphs[g] == 0xFFFF || ttGlyphs[g] == 0xFFFE) {
- ttGlyphs[g] = 0x0002;
+ TTGlyphID ttGlyph = (TTGlyphID) LE_GET_GLYPH(glyphs[g]);
+
+ if (ttGlyph < 0xFFFE) {
+ ttGlyphs[out] = ttGlyph;
+ dx[out] = (le_int32) (positions[g * 2 + 2] - positions[g * 2]);
+ ps[out * 2] = positions[g * 2];
+ ps[out * 2 + 1] = positions[g * 2 + 1];
+ out += 1;
}
-
- dx[g] = (le_int32) (positions[g * 2 + 2] - positions[g * 2]);
}
le_int32 dyStart, dyEnd;
@@ -78,20 +82,21 @@ void GDISurface::drawGlyphs(const LEFontInstance *font, const LEGlyphID *glyphs,
dyStart = dyEnd = 0;
- while (dyEnd < count) {
- float yOffset = positions[dyStart * 2 + 1];
- float xOffset = positions[dyStart * 2];
+ while (dyEnd < out) {
+ float yOffset = ps[dyStart * 2 + 1];
+ float xOffset = ps[dyStart * 2];
- while (dyEnd < count && yOffset == positions[dyEnd * 2 + 1]) {
+ while (dyEnd < out && yOffset == ps[dyEnd * 2 + 1]) {
dyEnd += 1;
}
ExtTextOut(fHdc, x + (le_int32) xOffset, y + (le_int32) yOffset - font->getAscent(), ETO_CLIPPED | ETO_GLYPH_INDEX, &clip,
- &ttGlyphs[dyStart], dyEnd - dyStart, (INT *) &dx[dyStart]);
+ (LPCWSTR) &ttGlyphs[dyStart], dyEnd - dyStart, (INT *) &dx[dyStart]);
dyStart = dyEnd;
}
+ LE_DELETE_ARRAY(ps);
LE_DELETE_ARRAY(dx);
LE_DELETE_ARRAY(ttGlyphs);
}
diff --git a/Build/source/libs/icu-xetex/samples/layout/layout.cpp b/Build/source/libs/icu-xetex/samples/layout/layout.cpp
index 8935fdc0a2d..332e03d9d9c 100644
--- a/Build/source/libs/icu-xetex/samples/layout/layout.cpp
+++ b/Build/source/libs/icu-xetex/samples/layout/layout.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2003, International Business Machines
+ * Copyright (C) 1999-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -137,7 +137,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (LE_FAILURE(fontStatus)) {
ReleaseDC(hwnd, hdc);
- return 0;
+ return -1;
}
context = new Context();
@@ -321,7 +321,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case IDM_HELP_ABOUTLAYOUTSAMPLE:
MessageBox(hwnd, TEXT("Windows Layout Sample 0.1\n")
- TEXT("Copyright (C) 1998-2002 By International Business Machines Corporation and others.\n")
+ TEXT("Copyright (C) 1998-2005 By International Business Machines Corporation and others.\n")
TEXT("Author: Eric Mader"),
szAppName, MB_ICONINFORMATION | MB_OK);
return 0;
@@ -334,7 +334,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
context = (Context *) GetWindowLong(hwnd, 0);
- if (context->paragraph != NULL) {
+ if (context != NULL && context->paragraph != NULL) {
delete context->paragraph;
}
diff --git a/Build/source/libs/icu-xetex/samples/layout/layout.vcproj b/Build/source/libs/icu-xetex/samples/layout/layout.vcproj
index 1204830237a..1cf410426fd 100644
--- a/Build/source/libs/icu-xetex/samples/layout/layout.vcproj
+++ b/Build/source/libs/icu-xetex/samples/layout/layout.vcproj
@@ -27,6 +27,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/layout.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="_DEBUG,WIN32,UNICODE,_WIN32_WINNT=0X500,LE_USE_CMEMORY"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/layout.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/layout/paragraph.cpp b/Build/source/libs/icu-xetex/samples/layout/paragraph.cpp
index 2ac4504ed6d..315ca04a4b7 100644
--- a/Build/source/libs/icu-xetex/samples/layout/paragraph.cpp
+++ b/Build/source/libs/icu-xetex/samples/layout/paragraph.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2003, International Business Machines
+ * Copyright (C) 1999-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -14,6 +14,7 @@
#include "unicode/utypes.h"
#include "unicode/uchar.h"
#include "unicode/ubidi.h"
+#include "unicode/ustring.h"
#include "layout/ParagraphLayout.h"
@@ -26,29 +27,133 @@
#define MARGIN 10
#define LINE_GROW 32
+#define PARA_GROW 8
+
+#define CH_LF 0x000A
+#define CH_CR 0x000D
+#define CH_LSEP 0x2028
+#define CH_PSEP 0x2029
+
+static LEUnicode *skipLineEnd(LEUnicode *ptr)
+{
+ if (ptr[0] == CH_CR && ptr[1] == CH_LF) {
+ ptr += 1;
+ }
+
+ return ptr + 1;
+}
+
+static le_int32 findRun(const RunArray *runArray, le_int32 offset)
+{
+ le_int32 runCount = runArray->getCount();
+
+ for (le_int32 run = 0; run < runCount; run += 1) {
+ if (runArray->getLimit(run) > offset) {
+ return run;
+ }
+ }
+
+ return -1;
+}
+
+static void subsetFontRuns(const FontRuns *fontRuns, le_int32 start, le_int32 limit, FontRuns *sub)
+{
+ le_int32 startRun = findRun(fontRuns, start);
+ le_int32 endRun = findRun(fontRuns, limit - 1);
+
+ sub->reset();
+
+ for (le_int32 run = startRun; run <= endRun; run += 1) {
+ const LEFontInstance *runFont = fontRuns->getFont(run);
+ le_int32 runLimit = fontRuns->getLimit(run) - start;
+
+ if (run == endRun) {
+ runLimit = limit - start;
+ }
+
+ sub->add(runFont, runLimit);
+ }
+}
Paragraph::Paragraph(const LEUnicode chars[], int32_t charCount, const FontRuns *fontRuns, LEErrorCode &status)
- : fParagraphLayout(NULL), fLineCount(0), fLinesMax(0), fLinesGrow(LINE_GROW), fLines(NULL), fChars(NULL),
- fLineHeight(-1), fAscent(-1), fWidth(-1), fHeight(-1)
+ : fParagraphLayout(NULL), fParagraphCount(0), fParagraphMax(PARA_GROW), fParagraphGrow(PARA_GROW),
+ fLineCount(0), fLinesMax(LINE_GROW), fLinesGrow(LINE_GROW), fLines(NULL), fChars(NULL),
+ fLineHeight(-1), fAscent(-1), fWidth(-1), fHeight(-1), fParagraphLevel(UBIDI_DEFAULT_LTR)
{
+ static const LEUnicode separators[] = {CH_LF, CH_CR, CH_LSEP, CH_PSEP};
+
if (LE_FAILURE(status)) {
return;
}
+ le_int32 ascent = 0;
+ le_int32 descent = 0;
+ le_int32 leading = 0;
+
LocaleRuns *locales = NULL;
+ FontRuns fr(0);
+
+ fLines = LE_NEW_ARRAY(const ParagraphLayout::Line *, fLinesMax);
+ fParagraphLayout = LE_NEW_ARRAY(ParagraphLayout *, fParagraphMax);
- fChars = LE_NEW_ARRAY(LEUnicode, charCount);
+ fChars = LE_NEW_ARRAY(LEUnicode, charCount + 1);
LE_ARRAY_COPY(fChars, chars, charCount);
+ fChars[charCount] = 0;
- fParagraphLayout = new ParagraphLayout(fChars, charCount, fontRuns, NULL, NULL, locales, UBIDI_DEFAULT_LTR, FALSE, status);
+ LEUnicode *pStart = &fChars[0];
- if (LE_FAILURE(status)) {
- return;
- }
+ while (*pStart != 0) {
+ LEUnicode *pEnd = u_strpbrk(pStart, separators);
+ le_int32 pAscent, pDescent, pLeading;
+ ParagraphLayout *paragraphLayout = NULL;
- le_int32 ascent = fParagraphLayout->getAscent();
- le_int32 descent = fParagraphLayout->getDescent();
- le_int32 leading = fParagraphLayout->getLeading();
+ if (pEnd == NULL) {
+ pEnd = &fChars[charCount];
+ }
+
+ if (pEnd != pStart) {
+ subsetFontRuns(fontRuns, pStart - fChars, pEnd - fChars, &fr);
+
+ paragraphLayout = new ParagraphLayout(pStart, pEnd - pStart, &fr, NULL, NULL, locales, fParagraphLevel, FALSE, status);
+
+ if (LE_FAILURE(status)) {
+ break; // return? something else?
+ }
+
+ if (fParagraphLevel == UBIDI_DEFAULT_LTR) {
+ fParagraphLevel = paragraphLayout->getParagraphLevel();
+ }
+
+ pAscent = paragraphLayout->getAscent();
+ pDescent = paragraphLayout->getDescent();
+ pLeading = paragraphLayout->getLeading();
+
+ if (pAscent > ascent) {
+ ascent = pAscent;
+ }
+
+ if (pDescent > descent) {
+ descent = pDescent;
+ }
+
+ if (pLeading > leading) {
+ leading = pLeading;
+ }
+ }
+
+ if (fParagraphCount >= fParagraphMax) {
+ fParagraphLayout = (ParagraphLayout **) LE_GROW_ARRAY(fParagraphLayout, fParagraphMax + fParagraphGrow);
+ fParagraphMax += fParagraphGrow;
+ }
+
+ fParagraphLayout[fParagraphCount++] = paragraphLayout;
+
+ if (*pEnd == 0) {
+ break;
+ }
+
+ pStart = skipLineEnd(pEnd);
+ }
fLineHeight = ascent + descent + leading;
fAscent = ascent;
@@ -65,6 +170,16 @@ Paragraph::~Paragraph()
LE_DELETE_ARRAY(fChars);
}
+void Paragraph::addLine(const ParagraphLayout::Line *line)
+{
+ if (fLineCount >= fLinesMax) {
+ fLines = (const ParagraphLayout::Line **) LE_GROW_ARRAY(fLines, fLinesMax + fLinesGrow);
+ fLinesMax += fLinesGrow;
+ }
+
+ fLines[fLineCount++] = line;
+}
+
void Paragraph::breakLines(le_int32 width, le_int32 height)
{
fHeight = height;
@@ -78,26 +193,26 @@ void Paragraph::breakLines(le_int32 width, le_int32 height)
float lineWidth = (float) (width - 2 * MARGIN);
const ParagraphLayout::Line *line;
- le_int32 li;
// Free the old LineInfo's...
- for (li = 0; li < fLineCount; li += 1) {
+ for (le_int32 li = 0; li < fLineCount; li += 1) {
delete fLines[li];
}
- li = 0;
- fParagraphLayout->reflow();
- while ((line = fParagraphLayout->nextLine(lineWidth)) != NULL) {
- // grow the line array, if we need to.
- if (li >= fLinesMax) {
- fLines = (const ParagraphLayout::Line **) LE_GROW_ARRAY(fLines, fLinesMax + fLinesGrow);
- fLinesMax += fLinesGrow;
- }
+ fLineCount = 0;
- fLines[li++] = line;
- }
+ for (le_int32 p = 0; p < fParagraphCount; p += 1) {
+ ParagraphLayout *paragraphLayout = fParagraphLayout[p];
- fLineCount = li;
+ if (paragraphLayout != NULL) {
+ paragraphLayout->reflow();
+ while ((line = paragraphLayout->nextLine(lineWidth)) != NULL) {
+ addLine(line);
+ }
+ } else {
+ addLine(NULL);
+ }
+ }
}
void Paragraph::draw(RenderingSurface *surface, le_int32 firstLine, le_int32 lastLine)
@@ -109,24 +224,27 @@ void Paragraph::draw(RenderingSurface *surface, le_int32 firstLine, le_int32 las
for (li = firstLine; li <= lastLine; li += 1) {
const ParagraphLayout::Line *line = fLines[li];
- le_int32 runCount = line->countRuns();
- le_int32 run;
- if (fParagraphLayout->getParagraphLevel() == UBIDI_RTL) {
- le_int32 lastX = line->getWidth();
+ if (line != NULL) {
+ le_int32 runCount = line->countRuns();
+ le_int32 run;
+
+ if (fParagraphLevel == UBIDI_RTL) {
+ le_int32 lastX = line->getWidth();
- x = (fWidth - lastX - MARGIN);
- }
+ x = (fWidth - lastX - MARGIN);
+ }
- for (run = 0; run < runCount; run += 1) {
- const ParagraphLayout::VisualRun *visualRun = line->getVisualRun(run);
- le_int32 glyphCount = visualRun->getGlyphCount();
- const LEFontInstance *font = visualRun->getFont();
- const LEGlyphID *glyphs = visualRun->getGlyphs();
- const float *positions = visualRun->getPositions();
+ for (run = 0; run < runCount; run += 1) {
+ const ParagraphLayout::VisualRun *visualRun = line->getVisualRun(run);
+ le_int32 glyphCount = visualRun->getGlyphCount();
+ const LEFontInstance *font = visualRun->getFont();
+ const LEGlyphID *glyphs = visualRun->getGlyphs();
+ const float *positions = visualRun->getPositions();
- surface->drawGlyphs(font, glyphs, glyphCount, positions, x, y, fWidth, fHeight);
+ surface->drawGlyphs(font, glyphs, glyphCount, positions, x, y, fWidth, fHeight);
+ }
}
y += fLineHeight;
diff --git a/Build/source/libs/icu-xetex/samples/layout/paragraph.h b/Build/source/libs/icu-xetex/samples/layout/paragraph.h
index 67db5eb37f6..6972fac3572 100644
--- a/Build/source/libs/icu-xetex/samples/layout/paragraph.h
+++ b/Build/source/libs/icu-xetex/samples/layout/paragraph.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2003, International Business Machines
+ * Copyright (C) 1999-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -14,6 +14,7 @@
#define __PARAGRAPH_H
#include "unicode/utypes.h"
+#include "unicode/ubidi.h"
#include "layout/LEFontInstance.h"
#include "layout/ParagraphLayout.h"
@@ -46,11 +47,17 @@ public:
static Paragraph *paragraphFactory(const char *fileName, const LEFontInstance *font, GUISupport *guiSupport);
private:
- ParagraphLayout *fParagraphLayout;
+ void addLine(const ParagraphLayout::Line *line);
- le_int32 fLineCount;
- le_int32 fLinesMax;
- le_int32 fLinesGrow;
+ ParagraphLayout **fParagraphLayout;
+
+ le_int32 fParagraphCount;
+ le_int32 fParagraphMax;
+ le_int32 fParagraphGrow;
+
+ le_int32 fLineCount;
+ le_int32 fLinesMax;
+ le_int32 fLinesGrow;
const ParagraphLayout::Line **fLines;
LEUnicode *fChars;
@@ -59,6 +66,7 @@ private:
le_int32 fAscent;
le_int32 fWidth;
le_int32 fHeight;
+ UBiDiLevel fParagraphLevel;
};
inline le_int32 Paragraph::getLineHeight()
diff --git a/Build/source/libs/icu-xetex/samples/legacy/legacy.vcproj b/Build/source/libs/icu-xetex/samples/legacy/legacy.vcproj
index d2b641da170..3177a4690f0 100644
--- a/Build/source/libs/icu-xetex/samples/legacy/legacy.vcproj
+++ b/Build/source/libs/icu-xetex/samples/legacy/legacy.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/legacy.pch"
AssemblerListingLocation=".\Release/"
@@ -84,6 +85,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/legacy.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/msgfmt/msgfmt.vcproj b/Build/source/libs/icu-xetex/samples/msgfmt/msgfmt.vcproj
index a60a1f7efae..798770a4a5e 100644
--- a/Build/source/libs/icu-xetex/samples/msgfmt/msgfmt.vcproj
+++ b/Build/source/libs/icu-xetex/samples/msgfmt/msgfmt.vcproj
@@ -27,6 +27,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/msgfmt.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/msgfmt.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/numfmt/numfmt.vcproj b/Build/source/libs/icu-xetex/samples/numfmt/numfmt.vcproj
index 2ccdc2b5a64..fdaedc87880 100644
--- a/Build/source/libs/icu-xetex/samples/numfmt/numfmt.vcproj
+++ b/Build/source/libs/icu-xetex/samples/numfmt/numfmt.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/numfmt.pch"
AssemblerListingLocation=".\Debug/"
@@ -87,6 +88,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/numfmt.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/props/props.vcproj b/Build/source/libs/icu-xetex/samples/props/props.vcproj
index e05e9f0f8bd..b3abceceb87 100644
--- a/Build/source/libs/icu-xetex/samples/props/props.vcproj
+++ b/Build/source/libs/icu-xetex/samples/props/props.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="3"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/props.pch"
AssemblerListingLocation=".\Release/"
@@ -85,6 +86,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/props.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/readme.txt b/Build/source/libs/icu-xetex/samples/readme.txt
index f9b4034fc7a..3e4eda7a1b0 100644
--- a/Build/source/libs/icu-xetex/samples/readme.txt
+++ b/Build/source/libs/icu-xetex/samples/readme.txt
@@ -1,4 +1,4 @@
-## Copyright (c) 2002-2003, International Business Machines Corporation
+## Copyright (c) 2002-2005, International Business Machines Corporation
## and others. All Rights Reserved.
This directory contains sample code
@@ -52,7 +52,7 @@ ustring - demonstrates ICU string manipulation functions
- The "icuapps" CVS module contains other applications and libraries not
included with ICU. You can check it out from the CVS command line
by using for example, "cvs co icuapps" instead of "cvs co icu",
- or through WebCVS at http://oss.software.ibm.com/cvs/icu/icuapps/
+ or through WebCVS at http://dev.icu-project.org/cgi-bin/viewcvs.cgi/icuapps/
==
* How do I build the samples?
diff --git a/Build/source/libs/icu-xetex/samples/strsrch/strsrch.cpp b/Build/source/libs/icu-xetex/samples/strsrch/strsrch.cpp
index 99b01fe7472..5054ceebdaf 100644
--- a/Build/source/libs/icu-xetex/samples/strsrch/strsrch.cpp
+++ b/Build/source/libs/icu-xetex/samples/strsrch/strsrch.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (C) 2002-2003 IBM, Inc. All Rights Reserved.
+ * Copyright (C) 2002-2006 IBM, Inc. All Rights Reserved.
*
********************************************************************/
@@ -97,7 +97,8 @@ UBool processOptions(int argc, const char **argv, OptSpec opts[])
{
for (int argNum = 1; argNum < argc; argNum ++) {
const char *pArgName = argv[argNum];
- for (OptSpec *pOpt = opts; pOpt->name != 0; pOpt ++) {
+ OptSpec *pOpt;
+ for (pOpt = opts; pOpt->name != 0; pOpt ++) {
if (strcmp(pOpt->name, pArgName) == 0) {
switch (pOpt->type) {
case OptSpec::FLAG:
diff --git a/Build/source/libs/icu-xetex/samples/strsrch/strsrch.vcproj b/Build/source/libs/icu-xetex/samples/strsrch/strsrch.vcproj
index a27353d6bff..d07b18a3735 100644
--- a/Build/source/libs/icu-xetex/samples/strsrch/strsrch.vcproj
+++ b/Build/source/libs/icu-xetex/samples/strsrch/strsrch.vcproj
@@ -25,6 +25,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/strsrch.pch"
AssemblerListingLocation=".\Debug/"
@@ -87,6 +88,7 @@
StringPooling="TRUE"
RuntimeLibrary="0"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/strsrch.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/translit/translit.vcproj b/Build/source/libs/icu-xetex/samples/translit/translit.vcproj
index 2d14ca8c85e..2e93988bf4f 100644
--- a/Build/source/libs/icu-xetex/samples/translit/translit.vcproj
+++ b/Build/source/libs/icu-xetex/samples/translit/translit.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/translit.pch"
AssemblerListingLocation=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/translit.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/uciter8/uciter8.sln b/Build/source/libs/icu-xetex/samples/uciter8/uciter8.sln
index 0cbfa9c0367..03abbf2acd8 100644
--- a/Build/source/libs/icu-xetex/samples/uciter8/uciter8.sln
+++ b/Build/source/libs/icu-xetex/samples/uciter8/uciter8.sln
@@ -1,12 +1,12 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
+Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uciter8", "uciter8.vcproj", "{94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
- ConfigName.0 = Debug
- ConfigName.1 = Release
- EndGlobalSection
- GlobalSection(ProjectDependencies) = postSolution
+ Debug = Debug
+ Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{94379DD9-E6CC-47AC-8E62-0A4ABD8EB121}.Debug.ActiveCfg = Debug|Win32
diff --git a/Build/source/libs/icu-xetex/samples/uciter8/uciter8.vcproj b/Build/source/libs/icu-xetex/samples/uciter8/uciter8.vcproj
index 169ba0d3f76..8656818546d 100644
--- a/Build/source/libs/icu-xetex/samples/uciter8/uciter8.vcproj
+++ b/Build/source/libs/icu-xetex/samples/uciter8/uciter8.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/uciter8.pch"
AssemblerListingLocation=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/uciter8.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/uciter8/uit_len8.c b/Build/source/libs/icu-xetex/samples/uciter8/uit_len8.c
index 1d368b854ad..16fa487c642 100644
--- a/Build/source/libs/icu-xetex/samples/uciter8/uit_len8.c
+++ b/Build/source/libs/icu-xetex/samples/uciter8/uit_len8.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -45,150 +45,17 @@
* but it is sufficient for a UCharIterator that returns only UChars anyway.
*
* The code is copied and modified from utf_impl.c and utf8.h.
- * The "strict" argument in the implementation functions is completely removed,
- * using the "<0" branch from the original code.
- * Checks for surrogate code points are removed for the leniency
- * described above.
+ *
+ * Change 2006feb08: Much of the implementation code is replaced by calling
+ * the utf_impl.c functions which accept a new "strict" parameter value
+ * of -2 implementing exactly this leniency.
*/
-static const UChar32
-lenient8_minLegal[4]={ 0, 0x80, 0x800, 0x10000 };
-
-static UChar32
-lenient8_nextCharSafeBody(const uint8_t *s, int32_t *pi, int32_t length, UChar32 c) {
- int32_t i=*pi;
- uint8_t count=U8_COUNT_TRAIL_BYTES(c);
- if((i)+count<=(length)) {
- uint8_t trail, illegal=0;
-
- U8_MASK_LEAD_BYTE((c), count);
- /* count==0 for illegally leading trail bytes and the illegal bytes 0xfe and 0xff */
- switch(count) {
- /* each branch falls through to the next one */
- case 5:
- case 4:
- /* count>=4 is always illegal: no more than 3 trail bytes in Unicode's UTF-8 */
- illegal=1;
- break;
- case 3:
- trail=s[(i)++];
- (c)=((c)<<6)|(trail&0x3f);
- if(c<0x110) {
- illegal|=(trail&0xc0)^0x80;
- } else {
- /* code point>0x10ffff, outside Unicode */
- illegal=1;
- break;
- }
- case 2:
- trail=s[(i)++];
- (c)=((c)<<6)|(trail&0x3f);
- illegal|=(trail&0xc0)^0x80;
- case 1:
- trail=s[(i)++];
- (c)=((c)<<6)|(trail&0x3f);
- illegal|=(trail&0xc0)^0x80;
- break;
- case 0:
- return U_SENTINEL;
- /* no default branch to optimize switch() - all values are covered */
- }
-
- /* correct sequence - all trail bytes have (b7..b6)==(10)? */
- /* illegal is also set if count>=4 */
- if(illegal || (c)<lenient8_minLegal[count]) {
- /* error handling */
- uint8_t errorCount=count;
- /* don't go beyond this sequence */
- i=*pi;
- while(count>0 && U8_IS_TRAIL(s[i])) {
- ++(i);
- --count;
- }
- c=U_SENTINEL;
- }
- } else /* too few bytes left */ {
- /* error handling */
- int32_t i0=i;
- /* don't just set (i)=(length) in case there is an illegal sequence */
- while((i)<(length) && U8_IS_TRAIL(s[i])) {
- ++(i);
- }
- c=U_SENTINEL;
- }
- *pi=i;
- return c;
-}
-
-static UChar32
-lenient8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32 c) {
- int32_t i=*pi;
- uint8_t b, count=1, shift=6;
-
- /* extract value bits from the last trail byte */
- c&=0x3f;
-
- for(;;) {
- if(i<=start) {
- /* no lead byte at all */
- return U_SENTINEL;
- }
-
- /* read another previous byte */
- b=s[--i];
- if((uint8_t)(b-0x80)<0x7e) { /* 0x80<=b<0xfe */
- if(b&0x40) {
- /* lead byte, this will always end the loop */
- uint8_t shouldCount=U8_COUNT_TRAIL_BYTES(b);
-
- if(count==shouldCount) {
- /* set the new position */
- *pi=i;
- U8_MASK_LEAD_BYTE(b, count);
- c|=(UChar32)b<<shift;
- if(count>=4 || c>0x10ffff || c<lenient8_minLegal[count]) {
- /* illegal sequence */
- if(count>=4) {
- count=3;
- }
- c=U_SENTINEL;
- } else {
- /* exit with correct c */
- }
- } else {
- /* the lead byte does not match the number of trail bytes */
- /* only set the position to the lead byte if it would
- include the trail byte that we started with */
- if(count<shouldCount) {
- *pi=i;
- }
- c=U_SENTINEL;
- }
- break;
- } else if(count<5) {
- /* trail byte */
- c|=(UChar32)(b&0x3f)<<shift;
- ++count;
- shift+=6;
- } else {
- /* more than 5 trail bytes is illegal */
- c=U_SENTINEL;
- break;
- }
- } else {
- /* single-byte character precedes trailing bytes */
- c=U_SENTINEL;
- break;
- }
- }
- return c;
-}
-
#define L8_NEXT(s, i, length, c) { \
- (c)=(s)[(i)++]; \
+ (c)=(uint8_t)(s)[(i)++]; \
if((c)>=0x80) { \
if(U8_IS_LEAD(c)) { \
- (c)=lenient8_nextCharSafeBody(s, &(i), (int32_t)(length), c); \
+ (c)=utf8_nextCharSafeBody((const uint8_t *)s, &(i), (int32_t)(length), c, -2); \
} else { \
(c)=U_SENTINEL; \
} \
@@ -196,10 +63,10 @@ lenient8_prevCharSafeBody(const uint8_t *s, int32_t start, int32_t *pi, UChar32
}
#define L8_PREV(s, start, i, c) { \
- (c)=(s)[--(i)]; \
+ (c)=(uint8_t)(s)[--(i)]; \
if((c)>=0x80) { \
if((c)<=0xbf) { \
- (c)=lenient8_prevCharSafeBody(s, start, &(i), c); \
+ (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -2); \
} else { \
(c)=U_SENTINEL; \
} \
diff --git a/Build/source/libs/icu-xetex/samples/ucnv/ucnv.vcproj b/Build/source/libs/icu-xetex/samples/ucnv/ucnv.vcproj
index 3e60fdeef29..248a3c39a1a 100644
--- a/Build/source/libs/icu-xetex/samples/ucnv/ucnv.vcproj
+++ b/Build/source/libs/icu-xetex/samples/ucnv/ucnv.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/ucnv.pch"
AssemblerListingLocation=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/ucnv.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/udata/reader.vcproj b/Build/source/libs/icu-xetex/samples/udata/reader.vcproj
index 2acd92a4c74..605213a144d 100644
--- a/Build/source/libs/icu-xetex/samples/udata/reader.vcproj
+++ b/Build/source/libs/icu-xetex/samples/udata/reader.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\reader_Win32_Debug/reader.pch"
AssemblerListingLocation=".\reader_Win32_Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\reader_Win32_Release/reader.pch"
AssemblerListingLocation=".\reader_Win32_Release/"
diff --git a/Build/source/libs/icu-xetex/samples/udata/writer.vcproj b/Build/source/libs/icu-xetex/samples/udata/writer.vcproj
index 4bf66c38d27..b29aa8f2492 100644
--- a/Build/source/libs/icu-xetex/samples/udata/writer.vcproj
+++ b/Build/source/libs/icu-xetex/samples/udata/writer.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/writer.pch"
AssemblerListingLocation=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/writer.pch"
AssemblerListingLocation=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/ufortune/resources/Makefile b/Build/source/libs/icu-xetex/samples/ufortune/resources/Makefile
index 208541a8f87..998a7a82557 100644
--- a/Build/source/libs/icu-xetex/samples/ufortune/resources/Makefile
+++ b/Build/source/libs/icu-xetex/samples/ufortune/resources/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2001-2005 IBM, Inc. and others
+# Copyright (c) 2001-2006 IBM, Inc. and others
#
# File
# icu/source/samples/ufortune/resources/Makefile
@@ -56,5 +56,5 @@ install: res-install
es.res: es.txt
@echo "generating $@"
- $(GENRB) $(GENRBOPT) -e latin-1 $^
+ $(GENRB) $(GENRBOPT) $^
diff --git a/Build/source/libs/icu-xetex/samples/ufortune/resources/es.txt b/Build/source/libs/icu-xetex/samples/ufortune/resources/es.txt
index a7fd4437e99..1500b70dd87 100644
--- a/Build/source/libs/icu-xetex/samples/ufortune/resources/es.txt
+++ b/Build/source/libs/icu-xetex/samples/ufortune/resources/es.txt
@@ -1,4 +1,4 @@
-// Copyright (C) 2001-2003, International Business Machines
+// Copyright (C) 2001-2006, International Business Machines
// Corporation and others. All Rights Reserved.
//
@@ -25,43 +25,43 @@ es {
fortunes {
-"Todo lo que no tiene solución no se soluciona, y lo que la tiene tampoco.
+"Todo lo que no tiene solución no se soluciona, y lo que la tiene tampoco.
-- Bill Gates. (1952?) Fundador de Microsoft. Del manual de Windows 95. ",
-"El hombre todavía puede apagar el ordenador. Sin embargo, tendremos que esforzarnos mucho para conservar este privilegio.
- -- J. Weizembaum. Sociólogo norteamericano experto en ordenadores. ",
+"El hombre todavía puede apagar el ordenador. Sin embargo, tendremos que esforzarnos mucho para conservar este privilegio.
+ -- J. Weizembaum. Sociólogo norteamericano experto en ordenadores. ",
-"El ordenador ha sido hasta ahora el producto más genial de la vagancia humana.
+"El ordenador ha sido hasta ahora el producto más genial de la vagancia humana.
-- Slogan de IBM. ",
-"La página WEB es el soporte interactivo ideal para ofrecer un servicio, facilitar información, hacer negocio, etc de un modo más completo y directo que cualquier otro.
+"La página WEB es el soporte interactivo ideal para ofrecer un servicio, facilitar información, hacer negocio, etc de un modo más completo y directo que cualquier otro.
-- Vinton Cerf. (1934) Padre de Internet. (Fundador de Internet Society). ",
-"Todavía hay mucha gente que ofrece contenidos por el mero placer de saber que la información puede resultar útil a otras personas.
+"Todavía hay mucha gente que ofrece contenidos por el mero placer de saber que la información puede resultar útil a otras personas.
-- Vinton Cerf. (1934) Padre de Internet. (Fundador de Internet Society). ",
-"En no mucho tiempo contaremos con unas líneas inteligentes y que estarán totalmente integradas con la Red.
+"En no mucho tiempo contaremos con unas líneas inteligentes y que estarán totalmente integradas con la Red.
-- Vinton Cerf. (1934) Padre de Internet. (Fundador de Internet Society). ",
-"En el futuro no se usará MODEM para acceder a Internet.
+"En el futuro no se usará MODEM para acceder a Internet.
-- Vinton Cerf. (1934) Padre de Internet. (Fundador de Internet Society). ",
-"En el año 2005 los chips serán tan baratos que los encontraremos en todas partes: la nevera, la lavadora y cualquier otro electrodoméstico.
+"En el año 2005 los chips serán tan baratos que los encontraremos en todas partes: la nevera, la lavadora y cualquier otro electrodoméstico.
-- Vinton Cerf. (1934) Padre de Internet. (Fundador de Internet Society). ",
-"Internet 2 será 100 veces más rápida.
- -- Irving Wladawsky-Berger. Director General de la División Internet de IBM. ",
+"Internet 2 será 100 veces más rápida.
+ -- Irving Wladawsky-Berger. Director General de la División Internet de IBM. ",
-"Windows 95 está colgando su sistema. Por favor espere...
- -- Nugar. Internauta y Webmaster panameño. ",
+"Windows 95 está colgando su sistema. Por favor espere...
+ -- Nugar. Internauta y Webmaster panameño. ",
-"No pensábamos en el negocio, sino en Internet como una forma de comunicación global.
+"No pensábamos en el negocio, sino en Internet como una forma de comunicación global.
-- Jerry Yang. Uno de los creadores de Yahoo!. ",
-"iusfbvksagsvkjsh bvkdns Maldita Gata!!! Bájate del tecladonlagnlbhl
+"iusfbvksagsvkjsh bvkdns Maldita Gata!!! Bájate del tecladonlagnlbhl
-- Stepi taglines. ",
-"Sueter ke mis mesages pashan po el coretor otójraf
+"Sueter ke mis mesages pashan po el coretor otójraf
-- Stepi taglines. ",
"User error: Replace user, hit any key to continue.
@@ -73,10 +73,10 @@ es {
"HARDWARE: Lo que puedes partir con un hacha.
-- Yo. ",
-"¿Cuál es la patrona de los informáticos? - Santa Tecla.
+"¿Cuál es la patrona de los informáticos? - Santa Tecla.
-- Yo. ",
-"Eres más falso que Windows 95 a prueba de fallos.
+"Eres más falso que Windows 95 a prueba de fallos.
-- Yo. ",
"Gabardinas Windows 95 se cuelgan solas.
@@ -85,148 +85,148 @@ es {
"El hijo de Bill Gates fue por causa de un 'ERROR DE PROTECCION GENERAL'.
-- Yo. ",
-"¿Alguien sabe qué es lo bueno de Windows 95?... Yo tampoco.
+"¿Alguien sabe qué es lo bueno de Windows 95?... Yo tampoco.
-- Yo. ",
-"Multitarea: Dos o más programas pueden fallar simultáneamente.
+"Multitarea: Dos o más programas pueden fallar simultáneamente.
-- Yo. ",
-"...aquella masa de solidificada razón de dieciséis kilómetros de longitud, a la que los hombres llamaban Multivac, el más complejo ordenador jamás construido.
- -- Isaac Asimov. (1920-1992) Escritor y científico estadounidense. Fragmento del cuento 'El chistoso'. ",
+"...aquella masa de solidificada razón de dieciséis kilómetros de longitud, a la que los hombres llamaban Multivac, el más complejo ordenador jamás construido.
+ -- Isaac Asimov. (1920-1992) Escritor y científico estadounidense. Fragmento del cuento 'El chistoso'. ",
"Press (Ctrl)(Alt)(Del) to continue...
- -- PC Users. La mejor revista de computación del mundo. ",
+ -- PC Users. La mejor revista de computación del mundo. ",
-"Si debbuging es el proceso de eliminar errores, entonces la programación debe ser el proceso de ponerlos.
- -- PC Users. La mejor revista de computación del mundo. ",
+"Si debbuging es el proceso de eliminar errores, entonces la programación debe ser el proceso de ponerlos.
+ -- PC Users. La mejor revista de computación del mundo. ",
-"Hay dos formas de escribir programas sin errores. Sólo la tercera funciona.
- -- PC Users. La mejor revista de computación del mundo. ",
+"Hay dos formas de escribir programas sin errores. Sólo la tercera funciona.
+ -- PC Users. La mejor revista de computación del mundo. ",
-"No confíes en una PC que no puedas tirar por la ventana.
+"No confíes en una PC que no puedas tirar por la ventana.
-- Steve Wozniak. ",
-"Si los arquitectos hiciesen edificios de la misma forma en que los programadores escriben programas, el primer pájaro carpintero que pasase por aquí destruiría la civilización.
+"Si los arquitectos hiciesen edificios de la misma forma en que los programadores escriben programas, el primer pájaro carpintero que pasase por aquí destruiría la civilización.
-- Gerald Weimberg. ",
-"Las PCs no son inteligentes, sólo creen que lo son.
- -- PC Users. La mejor revista de computación del mundo. ",
+"Las PCs no son inteligentes, sólo creen que lo son.
+ -- PC Users. La mejor revista de computación del mundo. ",
"S pd lr sto, usd pd btnr n ben trbjo cm prgdor d P.
- -- PC Users. La mejor revista de computación del mundo. ",
+ -- PC Users. La mejor revista de computación del mundo. ",
"SHIFT TO LEFT! SHIFT TO THE RIGHT! POP UP, PUSH DOWN, BYTE, BYTE, BYTE!
- -- Universidad de Massachussets. Utilizado en la toga del equipo para las olimpiadas informáticas. ",
+ -- Universidad de Massachussets. Utilizado en la toga del equipo para las olimpiadas informáticas. ",
"Por cada error que se le atribuye a una PC siempre se encuentran al menos dos errores humanos: el de culpar a la PC y el de confiar en ella.
- -- PC Users. La mejor revista de computación del mundo. PC Users Nº 68. ",
+ -- PC Users. La mejor revista de computación del mundo. PC Users Nº 68. ",
"Todo programa hace algo perfectamente bien, aunque no sea exactamente lo que nosotros queremos que haga.
- -- R.S. Pressmann. PC Users Nº 68. ",
+ -- R.S. Pressmann. PC Users Nº 68. ",
"El programa es totalmente perfecto, por lo tanto la PC es que debe andar mal.
- -- Cualquier programador. PC Users Nº 68. ",
+ -- Cualquier programador. PC Users Nº 68. ",
-"El veloz murciélago hindú comia feliz cardillo y kiwi, La cigueña tocaba el saxofón detrás del palenque de paja.
- -- Microsoft. Frase de ejemplo para probar los fonts de Windows. (¿De dónde la sacaron?). ",
+"El veloz murciélago hindú comia feliz cardillo y kiwi, La cigueña tocaba el saxofón detrás del palenque de paja.
+ -- Microsoft. Frase de ejemplo para probar los fonts de Windows. (¿De dónde la sacaron?). ",
-"La red mundial de Internet nos permite a hombres y mujeres llegar a los rincones más desconocidos y comunicarnos, es como llegar con la luz del sol a los lugares donde todo parece noche.
+"La red mundial de Internet nos permite a hombres y mujeres llegar a los rincones más desconocidos y comunicarnos, es como llegar con la luz del sol a los lugares donde todo parece noche.
-- Hebe de Bonafini. Presidenta de Madres de Plaza de Mayo. ",
-"En China hay 1200 millones de personas que podrían entrar a Internet, pero por ahora tiene otros asuntos prioritarios que atender, como muchos otros paises.
+"En China hay 1200 millones de personas que podrían entrar a Internet, pero por ahora tiene otros asuntos prioritarios que atender, como muchos otros paises.
-- Matt Stein. Representante internacional de Yahoo. ",
-"Ahora ya no se pregunta si tenés email, te lo piden directamente.
+"Ahora ya no se pregunta si tenés email, te lo piden directamente.
-- Matt Stein. Representante internacional de Yahoo. ",
-"En Argentina veo que el mercado se está expandiendo rápido, casi todo el mundo habla de Internet y hay muchos expertos. La gente común conoce el tema.
+"En Argentina veo que el mercado se está expandiendo rápido, casi todo el mundo habla de Internet y hay muchos expertos. La gente común conoce el tema.
-- Matt Stein. Representante internacional de Yahoo. ",
-"...pronto no se necesitará un computadora para acceder a la Red, estarán los asistentes personales, la TV, los relojes inteligentes y otros.
+"...pronto no se necesitará un computadora para acceder a la Red, estarán los asistentes personales, la TV, los relojes inteligentes y otros.
-- Matt Stein. Representante internacional de Yahoo. ",
"Los programadores de verdad hacen 'copy con program.exe'
- -- PC Users. La mejor revista de computación del mundo. ",
+ -- PC Users. La mejor revista de computación del mundo. ",
"Las computadoras de Minardi usan Windows 95.
-- Esteban Tuero. ",
-"El casco del Titanic fue diseñado con Windows 95.
+"El casco del Titanic fue diseñado con Windows 95.
-- Www.frases.com. ",
"Dinner not ready: (A)bort (R)etry (P)izza (M)cDonalds?
-- Www.frases.com. ",
-"Amante: Versión shareware de esposa.
+"Amante: Versión shareware de esposa.
-- Www.frases.com. ",
"Las computadoras hacen lo que usted manda. No lo que usted quiere.
-- Www.frases.com. ",
-"No preciso comer ni dormir. ¡Compré un MODEM!
+"No preciso comer ni dormir. ¡Compré un MODEM!
-- Www.frases.com. ",
-"Mi mujer me dijo: O el MODEM o yo. (A veces la extraño).
+"Mi mujer me dijo: O el MODEM o yo. (A veces la extraño).
-- Www.frases.com. ",
-"¿Cuál es la diferencia entre un virus y Windows 95? - El virus funciona.
+"¿Cuál es la diferencia entre un virus y Windows 95? - El virus funciona.
-- Www.frases.com. ",
-"¿Qué es 200 veces peor que OS/2?: AS-400.
+"¿Qué es 200 veces peor que OS/2?: AS-400.
-- Www.frases.com. ",
-"La piratería es un crimen. No ataque barcos.
+"La piratería es un crimen. No ataque barcos.
-- Www.frases.com. ",
-"¿Usted tiene un micro? El mío es enorme...
+"¿Usted tiene un micro? El mío es enorme...
-- Www.frases.com. ",
"DoubleSpace: Compactando datos y Expandiendo Problemas.
-- Www.frases.com. ",
-"¿Usted le sonrió a su computador hoy? ¿Si? ¡Más que imbécil!
+"¿Usted le sonrió a su computador hoy? ¿Si? ¡Más que imbécil!
-- Www.frases.com. ",
-"Merdasemerompiólabarraespaciadora.
+"Merdasemerompiólabarraespaciadora.
-- Www.frases.com. ",
"Si no consigue encontrar el problema, seguro es el BIOS (Bichito Ignorante Operando Sistema).
-- Www.frases.com. ",
-"¿US Robotics? ¿Para qué? Mi Zoltrix vue$$@@!!‘œœ/!(*!3...
+"¿US Robotics? ¿Para qué? Mi Zoltrix vue$$@@!!‘œœ/!(*!3...
-- Www.frases.com. ",
-"¿Por qué uso drogas? Tengo una 286...
+"¿Por qué uso drogas? Tengo una 286...
-- Www.frases.com. ",
-"El computador nació para resolver problemas que antes no existían.
+"El computador nació para resolver problemas que antes no existían.
-- Www.frases.com. ",
"Amar es... borrar el Windows del disco de ella.
-- Www.frases.com. ",
-"HTML: Hoy Tá Más Lento.
+"HTML: Hoy Tá Más Lento.
-- Www.frases.com. ",
"WWW: Wait, Wait, Wait...
-- Www.frases.com. ",
-"Nueva tecnología de periféricos: Plug-and-Crack!
+"Nueva tecnología de periféricos: Plug-and-Crack!
-- Www.frases.com. ",
-"¿Sabe por qué Intel no llamó 586 al Pentium? Porque ellos sumaron 486+100 y les dió 585,99999976542
+"¿Sabe por qué Intel no llamó 586 al Pentium? Porque ellos sumaron 486+100 y les dió 585,99999976542
-- Www.frases.com. ",
-"¿De dónde venimos? ¿Para dónde vamos? - ¿La respuesta, estará en Internet?
+"¿De dónde venimos? ¿Para dónde vamos? - ¿La respuesta, estará en Internet?
-- Www.frases.com. ",
-"A mi me gustaría criar homepages, pero no sé que comen.
+"A mi me gustaría criar homepages, pero no sé que comen.
-- Www.frases.com. ",
-"Windows 95 es realmente un sistema multitarea. Es el único que consigue formatear un diskette y colgar el micro al mismo tiempo.
+"Windows 95 es realmente un sistema multitarea. Es el único que consigue formatear un diskette y colgar el micro al mismo tiempo.
-- Www.frases.com. ",
-"Windows 95: La gracia para quien lo vé, la desgracia de quien lo usa.
+"Windows 95: La gracia para quien lo vé, la desgracia de quien lo usa.
-- Www.frases.com. ",
"yO connsigg diggtr 400 caartrerrees prr minnuut
@@ -238,19 +238,19 @@ es {
"Si Bill Gates es un dios, Windows debe ser una plaga divina.
-- Www.frases.com. ",
-"BBS e Internet: Métodos infalibles para duplicar su cuenta telefónica.
+"BBS e Internet: Métodos infalibles para duplicar su cuenta telefónica.
-- Www.frases.com. ",
-"No se te ocurra usar el teléfono para llamar a los bomberos. Estoy en lo mejor de un download!!!
+"No se te ocurra usar el teléfono para llamar a los bomberos. Estoy en lo mejor de un download!!!
-- Www.frases.com. ",
-"Si Internet se está tornando una enfermedad, mi destino ya esta trazado...
+"Si Internet se está tornando una enfermedad, mi destino ya esta trazado...
-- Www.frases.com. ",
"Compre un MODEM, navegue en Internet: gane amigos y pierda a su mujer.
-- Www.frases.com. ",
-"Si Jesús salva, Norton hace Backup.
+"Si Jesús salva, Norton hace Backup.
-- Www.frases.com. ",
"Computador que es un carro, siempre tiene un burro adelante.
@@ -259,7 +259,7 @@ es {
"Error: Preservativo agujereado. (A)bortar (I)gnorar (C)asar?
-- Www.frases.com. ",
-"Un gay se sienta ante una PC y escribe: ¡Oh máquina maravillosa ¿por qué no me hablas? Y la PC responde: Yo no hablo, COMPUTO!
+"Un gay se sienta ante una PC y escribe: ¡Oh máquina maravillosa ¿por qué no me hablas? Y la PC responde: Yo no hablo, COMPUTO!
-- Www.frases.com. ",
"UNDELETE *.* /P/O/R/F/A/V/O/R
@@ -271,7 +271,7 @@ es {
"Winchester: Chester for Windows???
-- Www.frases.com. ",
-"La más nueva tecnología de transferencia de datos entre computadores es DPA / DPA (Diskette Para Allá , Diskette Para Acá).
+"La más nueva tecnología de transferencia de datos entre computadores es DPA / DPA (Diskette Para Allá , Diskette Para Acá).
-- Www.frases.com. ",
"Novia embarazada: (A)borta (R)econoce (H)uye?
@@ -283,10 +283,10 @@ es {
"Chernobil usaba Windows 95 para monitorear sus reactores.
-- Www.frases.com. ",
-"Papá, ¿qué significa formatting drive C?
+"Papá, ¿qué significa formatting drive C?
-- Www.frases.com. ",
-"El Universo por nosotros conocido es apenas una versión beta.
+"El Universo por nosotros conocido es apenas una versión beta.
-- Www.frases.com. ",
"Windows 95: Ahora para Mega Drive y Nintendo!
@@ -295,34 +295,34 @@ es {
"Como transformar un 486 DX4 en XT: digite win
-- Www.frases.com. ",
-"Programador huérfano busca placa-madre.
+"Programador huérfano busca placa-madre.
-- Www.frases.com. ",
"Teclado no instalado! Presione para continuar.
-- Www.frases.com. ",
-"Mouse no encontrado. ¿Usted tiene gato? (S/N)
+"Mouse no encontrado. ¿Usted tiene gato? (S/N)
-- Www.frases.com. ",
-"Windows 95. 95 veces tendrá que re-instalarlo.
+"Windows 95. 95 veces tendrá que re-instalarlo.
-- Www.frases.com. ",
-"Si su Windows no le dá problemas. ¡Reclame a Microsoft!
+"Si su Windows no le dá problemas. ¡Reclame a Microsoft!
-- Www.frases.com. ",
-"Error: Sector not found. ¿Busco atrás del sofá? (S/N)
+"Error: Sector not found. ¿Busco atrás del sofá? (S/N)
-- Www.frases.com. ",
"MACINTOSH: Machine Always Crashes; If Not, Then OS Hangs.
-- Www.frases.com. ",
-"Error al accesar la FAT. ¿Intento accesar a tu hermana? (S/N)
+"Error al accesar la FAT. ¿Intento accesar a tu hermana? (S/N)
-- Www.frases.com. ",
"Los gatos de Intel tienen 6,99995634563 vidas.
-- Www.frases.com. ",
-"Aquel que nunca perdió un archivo, que tire el primer diskette.
+"Aquel que nunca perdió un archivo, que tire el primer diskette.
-- Www.frases.com. ",
"Chip, imposible comer uno, es horrible!
@@ -349,28 +349,28 @@ es {
"Mi HD tiene 100K de bad-sector y 130M de bad-windows.
-- Www.frases.com. ",
-"Papá ¿porqué el imán no se pega en tus diskettes?
+"Papá ¿porqué el imán no se pega en tus diskettes?
-- Www.frases.com. ",
-"Ya que la primera impresión es lo que vale, entonces use una impresora LASER.
+"Ya que la primera impresión es lo que vale, entonces use una impresora LASER.
-- Www.frases.com. ",
-"SeR²qu®lehace mAlelcaféalte‘lado?
+"SeR²qu®lehace mAlelcaféalte‘lado?
-- Www.frases.com. ",
"qUIEN mE sACO lA tECLA cAPSLOCK/
-- Www.frases.com. ",
-"Técnico por teléfono: Inserte el disco 3. Usuario: No cabe, ya metí dos, no entran más.
+"Técnico por teléfono: Inserte el disco 3. Usuario: No cabe, ya metí dos, no entran más.
-- Www.frases.com. ",
-"¡Ah! Aquellos DLLs estaban ocupando mucho espacio.
+"¡Ah! Aquellos DLLs estaban ocupando mucho espacio.
-- Www.frases.com. ",
-"La mayoría de los virus son transmitidos por la orina del MOUSE.
+"La mayoría de los virus son transmitidos por la orina del MOUSE.
-- Www.frases.com. ",
-"Archivo no encontrado... ¿Falsifico? (S/N)
+"Archivo no encontrado... ¿Falsifico? (S/N)
-- Www.frases.com. ",
"Email de Esteban Tuero: ultimo.lugar@grid.f1.com
@@ -382,7 +382,7 @@ es {
"Press any key to continue or other key to quit.
-- Www.frases.com. ",
-"¿Quién es ese General Failure? ¿Porque se mete con mi disco rígido?
+"¿Quién es ese General Failure? ¿Porque se mete con mi disco rígido?
-- Www.frases.com. ",
"Chips de computadora, disponibles en dos sabores: batata y silicio.
@@ -391,79 +391,79 @@ es {
"Backup no encontrado. (J)a! J(a)! Ja(!).
-- Www.frases.com. ",
-"Cuanto más inútil el programa, mejor el manual.
+"Cuanto más inútil el programa, mejor el manual.
-- Www.frases.com. ",
-"Programa de computador: Extraña forma de vida que tiene la capacidad de transformar comandos en mensajes de error.
+"Programa de computador: Extraña forma de vida que tiene la capacidad de transformar comandos en mensajes de error.
-- Www.frases.com. ",
"OUT OF MEMORY. Please use MEMOROL x 10Mg.
-- Www.frases.com. ",
-"Cálmese. Son sólo 0s y 1s.
+"Cálmese. Son sólo 0s y 1s.
-- Www.frases.com. ",
-"Muestrame tus bookmarks, y te diré quien eres.
+"Muestrame tus bookmarks, y te diré quien eres.
-- Www.frases.com. ",
"System Error: Press F13 to continue.
-- Www.frases.com. ",
-"Yo gusto de Windows 95, es él que no gusta de mí.
+"Yo gusto de Windows 95, es él que no gusta de mí.
-- Www.frases.com. ",
-"En la película Independence Day, no fue un virus lo que los americanos colocaron en el computador de la Nave Madre. ¡Instalaron Windows 95!
+"En la película Independence Day, no fue un virus lo que los americanos colocaron en el computador de la Nave Madre. ¡Instalaron Windows 95!
-- Www.frases.com. ",
-"/=*=\ ¡Cuidado! Si usted tuviese una TK-85 eso sería una nave enemiga.
+"/=*=\ ¡Cuidado! Si usted tuviese una TK-85 eso sería una nave enemiga.
-- Www.frases.com. ",
-"La Navidad de las personas viciadas por la computadora es diferente: El 25 de diciembre, Papá Noel baja por el MODEM y desde el puerto serie dice: ¡Feliz Navidad, ROM, ROM, ROM!
+"La Navidad de las personas viciadas por la computadora es diferente: El 25 de diciembre, Papá Noel baja por el MODEM y desde el puerto serie dice: ¡Feliz Navidad, ROM, ROM, ROM!
-- Www.frases.com. ",
-"Usuario: ¿Usuario?, ¿qué usuario???? El que te conectó atrás del armario.
+"Usuario: ¿Usuario?, ¿qué usuario???? El que te conectó atrás del armario.
-- Www.frases.com. ",
-"Bienaventurados los pesimistas, porque ellos harán backups.
+"Bienaventurados los pesimistas, porque ellos harán backups.
-- Www.frases.com. ",
-"Existen dos tipos de personas en el mundo de la informática: Las que ya perdieron su HD y las que lo perderán algún dia.
+"Existen dos tipos de personas en el mundo de la informática: Las que ya perdieron su HD y las que lo perderán algún dia.
-- Www.frases.com. ",
-"Internet es el florecimiento de los sitios eróticos familiares.
- -- Gerard Van der Leun. Jefe de redacción de la revista Penthouse. ",
+"Internet es el florecimiento de los sitios eróticos familiares.
+ -- Gerard Van der Leun. Jefe de redacción de la revista Penthouse. ",
-"Toda la industria de valores se mudará a la Red.
+"Toda la industria de valores se mudará a la Red.
-- Louis Gerstner. Gerente General de IBM. ",
-"La computadora converge con la televisión como lo hizo el automóvil con el caballo.
+"La computadora converge con la televisión como lo hizo el automóvil con el caballo.
-- George Gilder. ",
"Los nombres de dominio se han convertido en commodities.
-- Jon Postel. Presidente de IANA. ",
-"La idea de que las computadoras deberían hablar un lenguaje unificado fue robada de los tiempos en que los cavernícolas se comunicaban a través de sus pinturas rupestres.
+"La idea de que las computadoras deberían hablar un lenguaje unificado fue robada de los tiempos en que los cavernícolas se comunicaban a través de sus pinturas rupestres.
-- Scott McNeally. Sun Microsystems. ",
-"Creo que para el año 2000, las network computers (NCs) superarán en ventas a las computadoras personales (PCs).
+"Creo que para el año 2000, las network computers (NCs) superarán en ventas a las computadoras personales (PCs).
-- Larry Ellison. Gerente General de Oracle. ",
-"Cuando percibí que todos finalmente tendrían su propio home page, tuve la inspiración de regalar home pages y organizarlas en categorías.
+"Cuando percibí que todos finalmente tendrían su propio home page, tuve la inspiración de regalar home pages y organizarlas en categorías.
-- David Bohnett. Presidente de Geocities. (Idolo). ",
"Creo que hay un mercado mundial para alrededor de cinco computadoras.
-- Tomas J. Watson. Fundador de IBM. ",
-"No hay ninguna razón para que un individuo tenga una computadora en su casa.
+"No hay ninguna razón para que un individuo tenga una computadora en su casa.
-- Kennet Olsen. Fundador de Digital Equipment Corporation. ",
-"Los ordenadores son inútiles. Sólo pueden darte respuestas.
- -- Pablo Picasso. (1881-1973) Pintor español. ",
+"Los ordenadores son inútiles. Sólo pueden darte respuestas.
+ -- Pablo Picasso. (1881-1973) Pintor español. ",
-"El éxito de un sistema de computación depende en gran medida de los controles que se le efectuan.
- -- Ley de la programación de ordenadores. ",
+"El éxito de un sistema de computación depende en gran medida de los controles que se le efectuan.
+ -- Ley de la programación de ordenadores. ",
-"No se fíe de los ordenadores, pero menos aun de los seres humanos.
+"No se fíe de los ordenadores, pero menos aun de los seres humanos.
-- Primera Ley de fiabilidad de Gilb. "
}
diff --git a/Build/source/libs/icu-xetex/samples/ufortune/resources/fortune_resources.mak b/Build/source/libs/icu-xetex/samples/ufortune/resources/fortune_resources.mak
index 9fc05b447de..fd06568f99d 100644
--- a/Build/source/libs/icu-xetex/samples/ufortune/resources/fortune_resources.mak
+++ b/Build/source/libs/icu-xetex/samples/ufortune/resources/fortune_resources.mak
@@ -1,4 +1,4 @@
-# Copyright (c) 2001 IBM, Inc. and others
+# Copyright (c) 2001-2006 IBM, Inc. and others
#
# fortune_resources.mak
#
@@ -26,7 +26,6 @@ ICUDIR=..\..\..\..
# clear out the built-in ones (for .c and the like), and add
# the definition for .txt to .res.
#
-.SUFFIXES :
.SUFFIXES : .txt
#
@@ -34,7 +33,7 @@ ICUDIR=..\..\..\..
# -t fools make into thinking there are files such as es.res, etc
#
.txt.res:
- $(ICUDIR)\bin\genrb -t --package-name fortune_resources -d . $*.txt
+ $(ICUDIR)\bin\genrb -d . $*.txt
#
# all - nmake starts here by default
diff --git a/Build/source/libs/icu-xetex/samples/ufortune/ufortune.vcproj b/Build/source/libs/icu-xetex/samples/ufortune/ufortune.vcproj
index 7be4aa78eaa..3aea76e5e77 100644
--- a/Build/source/libs/icu-xetex/samples/ufortune/ufortune.vcproj
+++ b/Build/source/libs/icu-xetex/samples/ufortune/ufortune.vcproj
@@ -26,6 +26,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/ufortune.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -87,6 +88,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/ufortune.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
diff --git a/Build/source/libs/icu-xetex/samples/ugrep/ugrep.vcproj b/Build/source/libs/icu-xetex/samples/ugrep/ugrep.vcproj
index c6d471a5fde..c8a16f2edf1 100644
--- a/Build/source/libs/icu-xetex/samples/ugrep/ugrep.vcproj
+++ b/Build/source/libs/icu-xetex/samples/ugrep/ugrep.vcproj
@@ -28,6 +28,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/ugrep.pch"
AssemblerListingLocation=".\Release/"
@@ -90,6 +91,7 @@
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/ugrep.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/uresb/uresb.vcproj b/Build/source/libs/icu-xetex/samples/uresb/uresb.vcproj
index 1944436b4ab..11b4b2a1065 100644
--- a/Build/source/libs/icu-xetex/samples/uresb/uresb.vcproj
+++ b/Build/source/libs/icu-xetex/samples/uresb/uresb.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/uresb.pch"
AssemblerListingLocation=".\Release/"
@@ -84,6 +85,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/uresb.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/samples/ustring/ustring.vcproj b/Build/source/libs/icu-xetex/samples/ustring/ustring.vcproj
index 3e1b95f020f..f881123bc8f 100644
--- a/Build/source/libs/icu-xetex/samples/ustring/ustring.vcproj
+++ b/Build/source/libs/icu-xetex/samples/ustring/ustring.vcproj
@@ -27,6 +27,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/ustring.pch"
AssemblerListingLocation=".\Release/"
@@ -86,6 +87,7 @@
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/ustring.pch"
AssemblerListingLocation=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/stubdata/Makefile.in b/Build/source/libs/icu-xetex/stubdata/Makefile.in
index b18b34af928..22b3dd4ab17 100644
--- a/Build/source/libs/icu-xetex/stubdata/Makefile.in
+++ b/Build/source/libs/icu-xetex/stubdata/Makefile.in
@@ -1,6 +1,6 @@
#******************************************************************************
#
-# Copyright (C) 1999-2004, International Business Machines
+# Copyright (C) 1999-2005, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
@@ -19,7 +19,7 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = stubdata
-## Files to remove for 'make clean'
+## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
## Target information
@@ -30,32 +30,40 @@ ifneq ($(ENABLE_STATIC),)
TARGET = $(STUBDATA_LIBDIR)$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
endif
+
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(STUBDATA_LIBDIR)$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX)$(STUB_SUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(BATCH_STUB_TARGET)
+ALL_SO_TARGETS = $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET) $(SO_TARGET) $(BATCH_STUB_TARGET) $(SHARED_OBJECT)
endif
+
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS)
DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common $(LIBCPPFLAGS)
LDFLAGS += $(LDFLAGSICUDT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common $(LIBCPPFLAGS)
OBJECTS = stubdata.o
-STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
-
+## Header files to install
HEADERS =
+STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check check-local
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local install-library dist \
+dist-local check check-local
## Clear suffix list
.SUFFIXES :
@@ -68,7 +76,6 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-
all-local: $(ALL_TARGETS)
install-local: install-library
@@ -103,11 +110,11 @@ clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS)
-check-local:
-
distclean-local: clean-local
$(RMV) Makefile
+check-local:
+
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
@@ -116,21 +123,20 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=common/unicode/platform.h CONFIG_HEADERS= $(SHELL) ./config.status
-
ifneq ($(ENABLE_STATIC),)
$(TARGET): $(TARGET)($(STATIC_OBJECTS))
$(RANLIB) $@
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS)
+$(SHARED_OBJECT): $(OBJECTS)
$(SHLIB.c) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
ifeq ($(OS390BATCH),1)
$(BATCH_STUB_TARGET): $(OBJECTS)
$(SHLIB.c) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
endif # OS390BATCH
-endif
+endif # ENABLE_SHARED
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
diff --git a/Build/source/libs/icu-xetex/stubdata/stubdata.vcproj b/Build/source/libs/icu-xetex/stubdata/stubdata.vcproj
index 22c0b6d075f..f1f6a5a0652 100644
--- a/Build/source/libs/icu-xetex/stubdata/stubdata.vcproj
+++ b/Build/source/libs/icu-xetex/stubdata/stubdata.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/stubdata.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -38,10 +39,10 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icudt34.dll"
+ OutputFile="..\..\bin\icudt36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\Release/icudt34.pdb"
+ ProgramDatabaseFile=".\Release/icudt36.pdb"
ResourceOnlyDLL="TRUE"
ImportLibrary="..\..\lib\icudt.lib"/>
<Tool
@@ -91,22 +92,21 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/stubdata.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="TRUE"
- DebugInformationFormat="4"
CompileAs="0"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\bin\icudt34.dll"
- LinkIncremental="2"
+ OutputFile="..\..\bin\icudt36.dll"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\Debug/icudt34.pdb"
+ ProgramDatabaseFile=".\Debug/icudt36.pdb"
ResourceOnlyDLL="TRUE"
ImportLibrary="..\..\lib\icudt.lib"/>
<Tool
diff --git a/Build/source/libs/icu-xetex/test/cintltst/Makefile.in b/Build/source/libs/icu-xetex/test/cintltst/Makefile.in
index dbc74f5381c..490f9220503 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/cintltst/Makefile.in
@@ -1,6 +1,10 @@
+#******************************************************************************
+#
+# Copyright (C) 1999-2006, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - test/cintltst
-## Copyright (c) 1999-2005, International Business Machines Corporation and
-## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
@@ -8,6 +12,7 @@ top_srcdir = @top_srcdir@
top_builddir = ../..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -20,8 +25,8 @@ CLEANFILES = *~ $(DEPS)
TARGET = cintltst$(EXEEXT)
# Oh, this hurts my sensibility. This is supposedly a C test and we need to
-# link using a C++ compiler?! This must be done so that C++ static
-# initialization works in the libraries, like mutex.cpp, ustdio and iostream.
+# link using a C++ compiler?! This must be done so that library vtables
+# work correctly on all platforms.
ifneq ($(ENABLE_STATIC),)
LINK = $(LINK.cc)
@@ -37,8 +42,11 @@ BUILDDIR := $(BUILDDIR:test\\cintltst/../../=)
# Simplify the path for Windows 98
BUILDDIR := $(BUILDDIR:TEST\\CINTLTST/../../=)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
# we define ICU_UNICODE_VERSION so we can test it
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/tools/toolutil
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/tools/toolutil
DEFS += -D'ICU_UNICODE_VERSION="$(UNICODE_VERSION)"' -D'ICU_VERSION="@VERSION@"' -D'ICUDATA_NAME="$(ICUDATA_PLATFORM_NAME)"' -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
@@ -50,13 +58,16 @@ cmsccoll.o cmsgtst.o cposxtst.o cldrtest.o \
cnmdptst.o cnormtst.o cnumtst.o crestst.o creststn.o cturtst.o \
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 utf8tst.o ucmptst.o \
+ncnvfbts.o ncnvtst.o putiltst.o cstrtest.o utf8tst.o \
stdnmtst.o ctstdep.o usrchtst.o custrtrn.o sorttest.o trietest.o usettest.o \
uenumtst.o utmstest.o currtest.o \
-idnatest.o nfsprep.o spreptst.o sprpdata.o hpmufn.o tracetst.o reapits.o utexttst.o
+idnatest.o nfsprep.o spreptst.o sprpdata.o \
+hpmufn.o tracetst.o reapits.o utexttst.o ucsdetst.o
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local dist dist-local check check-local
@@ -85,8 +96,6 @@ clean-local:
distclean-local: clean-local
$(RMV) Makefile
--include Makefile.local
-
check-local: all-local
$(INVOKE) ./$(TARGET) $(CINTLTST_OPTS)
@@ -106,3 +115,4 @@ ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
endif
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/test/cintltst/bocu1tst.c b/Build/source/libs/icu-xetex/test/cintltst/bocu1tst.c
index f15d6eb02f6..0679752d272 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/bocu1tst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/bocu1tst.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2002-2003, International Business Machines
+* Copyright (C) 2002-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -15,7 +15,7 @@
*
* This is the reference implementation of BOCU-1,
* the MIME-friendly form of the Binary Ordered Compression for Unicode,
-* taken directly from ### http://oss.software.ibm.com/cvs/icu/icuhtml/design/conversion/bocu1/
+* taken directly from ### http://dev.icu-project.org/cgi-bin/viewcvs.cgi/icuhtml/design/conversion/bocu1/
* The files bocu1.h and bocu1.c from the design folder are taken
* verbatim (minus copyright and #include) and copied together into this file.
* The reference code and some of the reference bocu1tst.c
diff --git a/Build/source/libs/icu-xetex/test/cintltst/callcoll.c b/Build/source/libs/icu-xetex/test/cintltst/callcoll.c
index 9d33828e28f..f57dc605a64 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/callcoll.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/callcoll.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -335,7 +335,8 @@ static void doTestVariant(UCollator* myCollation, const UChar source[], const UC
partialSKResult = compareUsingPartials(myCollation, source, sLen, target, tLen, partialSizes[i], &status);
if(partialSKResult != result) {
- log_err("Partial sortkey comparison returned wrong result: %s, %s (size %i)\n",
+ log_err("Partial sortkey comparison returned wrong result (%i exp. %i): %s, %s (size %i)\n",
+ partialSKResult, result,
aescstrdup(source,-1), aescstrdup(target,-1), partialSizes[i]);
}
@@ -608,9 +609,8 @@ void genericLocaleStarterWithResult(const char *locale, const char *s[], uint32_
ucol_close(coll);
}
-#if 0
/* currently not used with options */
-void genericRulesStarterWithOptions(const char *rules, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize) {
+void genericRulesStarterWithOptionsAndResult(const char *rules, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result) {
UErrorCode status = U_ZERO_ERROR;
UChar rlz[RULE_BUFFER_LEN] = { 0 };
uint32_t rlen = u_unescape(rules, rlz, RULE_BUFFER_LEN);
@@ -626,15 +626,14 @@ void genericRulesStarterWithOptions(const char *rules, const char *s[], uint32_t
ucol_setAttribute(coll, attrs[i], values[i], &status);
}
- genericOrderingTest(coll, s, size);
+ genericOrderingTestWithResult(coll, s, size, result);
} else {
log_err("Unable to open collator with rules %s\n", rules);
}
ucol_close(coll);
}
-#endif
-void genericLocaleStarterWithOptions(const char *locale, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize) {
+void genericLocaleStarterWithOptionsAndResult(const char *locale, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result) {
UErrorCode status = U_ZERO_ERROR;
uint32_t i;
@@ -649,14 +648,18 @@ void genericLocaleStarterWithOptions(const char *locale, const char *s[], uint32
ucol_setAttribute(coll, attrs[i], values[i], &status);
}
- genericOrderingTest(coll, s, size);
+ genericOrderingTestWithResult(coll, s, size, result);
} else {
log_err("Unable to open collator for locale %s\n", locale);
}
ucol_close(coll);
}
-void genericRulesTestWithResult(const char *rules, const char *s[], uint32_t size, UCollationResult result) {
+void genericLocaleStarterWithOptions(const char *locale, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize) {
+ genericLocaleStarterWithOptionsAndResult(locale, s, size, attrs, values, attsize, UCOL_LESS);
+}
+
+void genericRulesStarterWithResult(const char *rules, const char *s[], uint32_t size, UCollationResult result) {
UErrorCode status = U_ZERO_ERROR;
UChar rlz[RULE_BUFFER_LEN] = { 0 };
uint32_t rlen = u_unescape(rules, rlz, RULE_BUFFER_LEN);
@@ -676,7 +679,7 @@ void genericRulesTestWithResult(const char *rules, const char *s[], uint32_t siz
}
void genericRulesStarter(const char *rules, const char *s[], uint32_t size) {
- genericRulesTestWithResult(rules, s, size, UCOL_LESS);
+ genericRulesStarterWithResult(rules, s, size, UCOL_LESS);
}
static void TestTertiary()
@@ -856,10 +859,8 @@ static void TestJB581(void)
/* Now, do the same comparison with keys */
sourceKeyOut = ucol_getSortKey(myCollator, source, -1, sourceKeyArray, 100);
targetKeyOut = ucol_getSortKey(myCollator, target, -1, targetKeyArray, 100);
- result = 0;
bufferLen = ((targetKeyOut > 100) ? 100 : targetKeyOut);
- result = memcmp(sourceKeyArray, targetKeyArray, bufferLen);
- if (result != 0)
+ if (memcmp(sourceKeyArray, targetKeyArray, bufferLen) != 0)
{
log_err("Comparing two strings with sort keys in C failed.\n");
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/callcoll.h b/Build/source/libs/icu-xetex/test/cintltst/callcoll.h
index 70cf316ab7c..af2cd940dba 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/callcoll.h
+++ b/Build/source/libs/icu-xetex/test/cintltst/callcoll.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -42,8 +42,10 @@ void genericOrderingTest(UCollator *coll, const char *s[], uint32_t size);
void genericLocaleStarter(const char *locale, const char *s[], uint32_t size);
void genericLocaleStarterWithResult(const char *locale, const char *s[], uint32_t size, UCollationResult result);
void genericLocaleStarterWithOptions(const char *locale, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize);
-void genericRulesTestWithResult(const char *rules, const char *s[], uint32_t size, UCollationResult result);
+void genericLocaleStarterWithOptionsAndResult(const char *locale, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result);
+void genericRulesStarterWithResult(const char *rules, const char *s[], uint32_t size, UCollationResult result);
void genericRulesStarter(const char *rules, const char *s[], uint32_t size);
+void genericRulesStarterWithOptionsAndResult(const char *rules, const char *s[], uint32_t size, const UColAttribute *attrs, const UColAttributeValue *values, uint32_t attsize, UCollationResult result);
UBool hasCollationElements(const char *locName);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/calltest.c b/Build/source/libs/icu-xetex/test/cintltst/calltest.c
index 3740b40e5c0..b9dc71875af 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/calltest.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/calltest.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1996-2005, International Business Machines Corporation and
+ * Copyright (c) 1996-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -28,7 +28,6 @@ void addUTF16Test(TestNode** root);
void addUTF8Test(TestNode** root);
void addUTransTest(TestNode** root);
void addPUtilTest(TestNode** root);
-void addCompactArrayTest(TestNode** root);
void addTestDeprecatedAPI(TestNode** root);
void addUCharTransformTest(TestNode** root);
void addUSetTest(TestNode** root);
@@ -38,6 +37,7 @@ void addHeapMutexTest(TestNode **root);
void addUTraceTest(TestNode** root);
void addURegexTest(TestNode** root);
void addUTextTest(TestNode** root);
+void addUCsdetTest(TestNode** root);
void addAllTests(TestNode** root)
@@ -50,7 +50,6 @@ void addAllTests(TestNode** root)
addConvert(root);
addUCharTransformTest(root);
addStandardNamesTest(root);
- addCompactArrayTest(root);
#if !UCONFIG_NO_FORMATTING
addFormatTest(root);
#endif
@@ -76,5 +75,6 @@ void addAllTests(TestNode** root)
addURegexTest(root);
#endif
addUTextTest(root);
+ addUCsdetTest(root);
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/capitst.c b/Build/source/libs/icu-xetex/test/cintltst/capitst.c
index b43f4cefef6..b989eef8d62 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/capitst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/capitst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -281,9 +281,12 @@ void TestProperty()
ICU 2.4 currVersionArray = {0x21, 0x40, 0x04, 0x04};
ICU 2.6 currVersionArray = {0x21, 0x40, 0x03, 0x03};
ICU 2.8 currVersionArray = {0x29, 0x80, 0x00, 0x04};
+ ICU 3.4 currVersionArray = {0x31, 0xC0, 0x00, 0x04};
*/
- UVersionInfo currVersionArray = {0x31, 0xC0, 0x00, 0x04};
- UVersionInfo currUCAVersionArray = {4, 1, 0, 0};
+ UVersionInfo currVersionArray = {0x31, 0xC0, 0x00, 0x05};
+ /* ICU 3.4 had UCA 4.1 */
+ /*UVersionInfo currUCAVersionArray = {4, 1, 0, 0};*/
+ UVersionInfo currUCAVersionArray = {5, 0, 0, 0};
UVersionInfo versionArray = {0, 0, 0, 0};
UVersionInfo versionUCAArray = {0, 0, 0, 0};
@@ -637,11 +640,13 @@ void TestDecomposition() {
ucol_close(vi_VN);
}
-#define CLONETEST_COLLATOR_COUNT 3
+#define CLONETEST_COLLATOR_COUNT 4
void TestSafeClone() {
UChar* test1;
UChar* test2;
+ static const UChar umlautUStr[] = {0x00DC, 0};
+ static const UChar oeStr[] = {0x0055, 0x0045, 0};
UCollator * someCollators [CLONETEST_COLLATOR_COUNT];
UCollator * someClonedCollators [CLONETEST_COLLATOR_COUNT];
UCollator * col;
@@ -649,6 +654,8 @@ void TestSafeClone() {
int8_t testSize = 6; /* Leave this here to test buffer alingment in memory*/
uint8_t buffer [CLONETEST_COLLATOR_COUNT] [U_COL_SAFECLONE_BUFFERSIZE];
int32_t bufferSize = U_COL_SAFECLONE_BUFFERSIZE;
+ const char sampleRuleChars[] = "&Z < CH";
+ UChar sampleRule[sizeof(sampleRuleChars)];
int index;
if (TestBufferSize()) {
@@ -660,14 +667,16 @@ void TestSafeClone() {
test2=(UChar*)malloc(sizeof(UChar) * testSize);
u_uastrcpy(test1, "abCda");
u_uastrcpy(test2, "abcda");
+ u_uastrcpy(sampleRule, sampleRuleChars);
/* one default collator & two complex ones */
someCollators[0] = ucol_open("en_US", &err);
someCollators[1] = ucol_open("ko", &err);
someCollators[2] = ucol_open("ja_JP", &err);
+ someCollators[3] = ucol_openRules(sampleRule, -1, UCOL_ON, UCOL_TERTIARY, NULL, &err);
if(U_FAILURE(err)) {
- log_data_err("Couldn't open one or more collators\n");
- return;
+ log_data_err("Couldn't open one or more collators\n");
+ return;
}
/* Check the various error & informational states: */
@@ -736,23 +745,60 @@ void TestSafeClone() {
err = U_ZERO_ERROR;
+ /* Test that a cloned collator doesn't accidentally use UCA. */
+ col=ucol_open("de@collation=phonebook", &err);
+ bufferSize = U_COL_SAFECLONE_BUFFERSIZE;
+ someClonedCollators[0] = ucol_safeClone(col, buffer[0], &bufferSize, &err);
+ doAssert( (ucol_greater(col, umlautUStr, u_strlen(umlautUStr), oeStr, u_strlen(oeStr))), "Original German phonebook collation sorts differently than expected");
+ doAssert( (ucol_greater(someClonedCollators[0], umlautUStr, u_strlen(umlautUStr), oeStr, u_strlen(oeStr))), "Cloned German phonebook collation sorts differently than expected");
+ if (!ucol_equals(someClonedCollators[0], col)) {
+ log_err("FAIL: Cloned German phonebook collator is not equal to original.\n");
+ }
+ ucol_close(col);
+ ucol_close(someClonedCollators[0]);
+
+ err = U_ZERO_ERROR;
+
/* change orig & clone & make sure they are independent */
for (index = 0; index < CLONETEST_COLLATOR_COUNT; index++)
{
+ ucol_setStrength(someCollators[index], UCOL_IDENTICAL);
+ bufferSize = 1;
+ err = U_ZERO_ERROR;
+ ucol_close(ucol_safeClone(someCollators[index], buffer[index], &bufferSize, &err));
+ if (err != U_SAFECLONE_ALLOCATED_WARNING) {
+ log_err("FAIL: collator number %d was not allocated.\n", index);
+ }
+
bufferSize = U_COL_SAFECLONE_BUFFERSIZE;
+ err = U_ZERO_ERROR;
someClonedCollators[index] = ucol_safeClone(someCollators[index], buffer[index], &bufferSize, &err);
+ if (someClonedCollators[index] == NULL
+ || someClonedCollators[index] < (UCollator *)buffer[index]
+ || someClonedCollators[index] > (UCollator *)(buffer[index]+(U_COL_SAFECLONE_BUFFERSIZE-1)))
+ {
+ log_err("FAIL: Cloned collator didn't use provided buffer.\n");
+ return;
+ }
+ if (!ucol_equals(someClonedCollators[index], someCollators[index])) {
+ log_err("FAIL: Cloned collator is not equal to original at index = %d.\n", index);
+ }
- ucol_setStrength(someClonedCollators[index], UCOL_TERTIARY);
+ /* Check the usability */
ucol_setStrength(someCollators[index], UCOL_PRIMARY);
- ucol_setAttribute(someClonedCollators[index], UCOL_CASE_LEVEL, UCOL_OFF, &err);
ucol_setAttribute(someCollators[index], UCOL_CASE_LEVEL, UCOL_OFF, &err);
- doAssert( (ucol_greater(someClonedCollators[index], test1, u_strlen(test1), test2, u_strlen(test2))), "Result should be \"abCda\" >>> \"abcda\" ");
doAssert( (ucol_equal(someCollators[index], test1, u_strlen(test1), test2, u_strlen(test2))), "Result should be \"abcda\" == \"abCda\"");
- ucol_close(someClonedCollators[index]);
+ /* Close the original to make sure that the clone is usable. */
ucol_close(someCollators[index]);
+
+ ucol_setStrength(someClonedCollators[index], UCOL_TERTIARY);
+ ucol_setAttribute(someClonedCollators[index], UCOL_CASE_LEVEL, UCOL_OFF, &err);
+ doAssert( (ucol_greater(someClonedCollators[index], test1, u_strlen(test1), test2, u_strlen(test2))), "Result should be \"abCda\" >>> \"abcda\" ");
+
+ ucol_close(someClonedCollators[index]);
}
free(test1);
free(test2);
@@ -818,10 +864,12 @@ void TestSortKey()
{
uint8_t *sortk1 = NULL, *sortk2 = NULL, *sortk3 = NULL, *sortkEmpty = NULL;
uint8_t sortk2_compat[] = {
- /* 3.4 key, UCA 4.1 */
- 0x28, 0x2a, 0x2c, 0x2e, 0x28, 0x01,
- 0x09, 0x01, 0x09, 0x01, 0x27, 0x01,
- 0x92, 0x93, 0x94, 0x95, 0x92, 0x00
+ /* 3.6 key, from UCA 5.0 */
+ 0x29, 0x2b, 0x2d, 0x2f, 0x29, 0x01,
+ 0x09, 0x01, 0x09, 0x01, 0x28, 0x01,
+ 0x92, 0x93, 0x94, 0x95, 0x92, 0x00
+ /* 3.4 key, from UCA 4.1 */
+ /* 0x28, 0x2a, 0x2c, 0x2e, 0x28, 0x01, 0x09, 0x01, 0x09, 0x01, 0x27, 0x01, 0x92, 0x93, 0x94, 0x95, 0x92, 0x00 */
/* 2.6.1 key */
/* 0x26, 0x28, 0x2A, 0x2C, 0x26, 0x01, 0x09, 0x01, 0x09, 0x01, 0x25, 0x01, 0x92, 0x93, 0x94, 0x95, 0x92, 0x00 */
/* 2.2 key */
@@ -1788,7 +1836,7 @@ static void TestShortString(void)
int32_t expectedOffset;
uint32_t expectedIdentifier;
} testCases[] = {
- {"LDE_RDE_KPHONEBOOK_T0041_ZLATN","B2800_KPHONEBOOK_LDE", "de@collation=phonebook", U_USING_FALLBACK_WARNING, 0, 0 },
+ {"LDE_RDE_KPHONEBOOK_T0041_ZLATN","B2900_KPHONEBOOK_LDE", "de@collation=phonebook", U_USING_FALLBACK_WARNING, 0, 0 },
{"LEN_RUS_NO_AS_S4","AS_LEN_NO_S4", NULL, U_USING_FALLBACK_WARNING, 0, 0 },
{"LDE_VPHONEBOOK_EO_SI","EO_KPHONEBOOK_LDE_SI", "de@collation=phonebook", U_ZERO_ERROR, 0, 0 },
{"LDE_Kphonebook","KPHONEBOOK_LDE", "de@collation=phonebook", U_ZERO_ERROR, 0, 0 },
@@ -2043,7 +2091,14 @@ TestOpenBinary(void)
uint8_t *image = imageBuffer;
int32_t imageBufferCapacity = 32768;
- int32_t imageSize = ucol_cloneBinary(coll, image, imageBufferCapacity, &status);
+ int32_t imageSize;
+
+ if((coll==NULL)||(UCA==NULL)||(U_FAILURE(status))) {
+ log_data_err("could not load collators or error occured: %s\n",
+ u_errorName(status));
+ return;
+ }
+ imageSize = ucol_cloneBinary(coll, image, imageBufferCapacity, &status);
if(U_FAILURE(status)) {
image = (uint8_t *)malloc(imageSize*sizeof(uint8_t));
status = U_ZERO_ERROR;
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cbiapts.c b/Build/source/libs/icu-xetex/test/cintltst/cbiapts.c
index 45e2389607b..fe597ae1857 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cbiapts.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cbiapts.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -190,11 +190,11 @@ static void TestBreakIteratorCAPI()
/*trying to open an illegal iterator*/
bogus = ubrk_open((UBreakIteratorType)5, "en_US", text, u_strlen(text), &status);
if(U_SUCCESS(status)){
- log_err("FAIL: Error in ubrk_open() for BOGUS breakiterator. Expected U_MEMORY_ALLOCATION_ERROR\n");
+ log_err("FAIL: Error in ubrk_open() for BOGUS breakiterator. Expected U_ILLEGAL_ARGUMENT_ERROR\n");
}
if(U_FAILURE(status)){
- if(status != U_MEMORY_ALLOCATION_ERROR){
- log_err("FAIL: Error in ubrk_open() for BOGUS breakiterator. Expected U_MEMORY_ALLOCATION_ERROR\n Got %s\n", myErrorName(status));
+ if(status != U_ILLEGAL_ARGUMENT_ERROR){
+ log_err("FAIL: Error in ubrk_open() for BOGUS breakiterator. Expected U_ILLEGAL_ARGUMENT_ERROR\n Got %s\n", myErrorName(status));
}
}
status=U_ZERO_ERROR;
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cbiditst.c b/Build/source/libs/icu-xetex/test/cintltst/cbiditst.c
index 7767bd820fe..bf7dab2d74e 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cbiditst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cbiditst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/* file name: cbiditst.cpp
@@ -18,10 +18,12 @@
#include "unicode/ustring.h"
#include "unicode/ubidi.h"
#include "unicode/ushape.h"
-#include "cmemory.h"
#include "cbiditst.h"
#include "cstring.h"
+/* the following include is needed for sprintf */
+#include <stdio.h>
+#define MAXLEN MAX_STRING_LENGTH
#define LENGTHOF(array) (sizeof(array)/sizeof((array)[0]))
/* prototypes ---------------------------------------------------------------*/
@@ -71,6 +73,25 @@ static void TestFailureRecovery(void);
static void TestMultipleParagraphs(void);
+/* new BIDI API */
+static void doReorderingModeBidiTest(void);
+static void doReorderRunsTest(void);
+static void doBidiStreamingTest(void);
+static void doBidiClassOverrideTest(void);
+static const char* inverseBasic(UBiDi *pBiDi, const UChar *src, int32_t srcLen,
+ uint32_t option, UBiDiLevel level, char *result);
+static UBool assertRoundTrip(UBiDi *pBiDi, int32_t tc, int32_t outIndex,
+ const char *srcChars, const char *destChars,
+ const UChar *dest, int32_t destLen, int mode,
+ int option, UBiDiLevel level);
+static UBool checkResultLength(UBiDi *pBiDi, const char *srcChars,
+ const char *destChars, const UChar *dest,
+ int32_t destLen, const char *mode,
+ const char *option, UBiDiLevel level);
+static UBool testMaps(UBiDi *pBiDi, int32_t stringIndex, const char *src,
+ const char *dest, const char *mode, const char* option,
+ UBiDiLevel level, UBool forward);
+
/* helpers ------------------------------------------------------------------ */
static const char *levelString="...............................................................";
@@ -79,7 +100,7 @@ static void
initCharFromDirProps(void);
static UChar *
-getStringFromDirProps(const uint8_t *dirProps, int32_t length);
+getStringFromDirProps(const uint8_t *dirProps, int32_t length, UChar *buffer);
static void
printUnicode(const UChar *s, int32_t length, const UBiDiLevel *levels);
@@ -96,6 +117,11 @@ addComplexTest(TestNode** root) {
addTest(root, TestReorder,"complex/bidi/TestReorder");
addTest(root, TestFailureRecovery,"complex/bidi/TestFailureRecovery");
addTest(root, TestMultipleParagraphs,"complex/bidi/multipleParagraphs");
+ addTest(root, doReorderingModeBidiTest, "complex/bidi/TestReorderingMode");
+ addTest(root, doReorderRunsTest, "complex/bidi/TestReorderRunsOnly");
+ addTest(root, doBidiStreamingTest, "complex/bidi/TestStreamingMode");
+ addTest(root, doBidiClassOverrideTest, "complex/bidi/TestClassOverride");
+
addTest(root, doArabicShapingTest, "complex/arabic-shaping/ArabicShapingTest");
addTest(root, doLamAlefSpecialVLTRArabicShapingTest, "complex/arabic-shaping/lamalef");
addTest(root, doTashkeelSpecialVLTRArabicShapingTest, "complex/arabic-shaping/tashkeel");
@@ -111,7 +137,7 @@ charFromDirPropTest(void) {
for(i=0; i<U_CHAR_DIRECTION_COUNT; ++i) {
if(u_charDirection(charFromDirProp[i])!=(UCharDirection)i) {
- log_err("u_charDirection(charFromDirProp[%d]=U+%04x)==%d!=%d\n",
+ log_err("\nu_charDirection(charFromDirProp[%d]=U+%04x)==%d!=%d\n",
i, charFromDirProp[i], u_charDirection(charFromDirProp[i]), i);
}
}
@@ -122,9 +148,9 @@ doBiDiTest() {
UBiDi *pBiDi, *pLine=NULL;
UErrorCode errorCode=U_ZERO_ERROR;
- log_verbose("*** bidi regression test ***\n");
+ log_verbose("\n*** bidi regression test ***\n");
- pBiDi=ubidi_openSized(MAX_STRING_LENGTH, 0, &errorCode);
+ pBiDi=ubidi_openSized(MAXLEN, 0, &errorCode);
if(pBiDi!=NULL) {
pLine=ubidi_open();
if(pLine!=NULL) {
@@ -144,22 +170,22 @@ doBiDiTest() {
ubidi_close(pBiDi);
}
- log_verbose("*** bidi regression test finished ***\n");
+ log_verbose("\n*** bidi regression test finished ***\n");
}
static void
doTests(UBiDi *pBiDi, UBiDi *pLine, UBool countRunsFirst) {
int i;
- UChar *s;
+ UChar string[MAXLEN];
UErrorCode errorCode;
int32_t lineStart;
UBiDiLevel paraLevel;
for(i=0; i<bidiTestCount; ++i) {
errorCode=U_ZERO_ERROR;
- s=getStringFromDirProps(tests[i].text, tests[i].length);
+ getStringFromDirProps(tests[i].text, tests[i].length, string);
paraLevel=tests[i].paraLevel;
- ubidi_setPara(pBiDi, s, -1, paraLevel, NULL, &errorCode);
+ ubidi_setPara(pBiDi, string, -1, paraLevel, NULL, &errorCode);
if(U_SUCCESS(errorCode)) {
log_verbose("ubidi_setPara(tests[%d], paraLevel %d) ok, direction %d paraLevel=%d\n",
i, paraLevel, ubidi_getDirection(pBiDi), ubidi_getParaLevel(pBiDi));
@@ -183,102 +209,268 @@ doTests(UBiDi *pBiDi, UBiDi *pLine, UBool countRunsFirst) {
}
}
}
+
+static const char columns[62] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+#define TABLE_SIZE 256
+static UBool tablesInitialized = FALSE;
+static UChar pseudoToUChar[TABLE_SIZE];
+static uint8_t UCharToPseudo[TABLE_SIZE]; /* used for Unicode chars < 0x0100 */
+static uint8_t UCharToPseud2[TABLE_SIZE]; /* used for Unicode chars >=0x0100 */
+
+static void buildPseudoTables(void)
+/*
+ The rules for pseudo-Bidi are as follows:
+ - [ == LRE
+ - ] == RLE
+ - { == LRO
+ - } == RLO
+ - ^ == PDF
+ - @ == LRM
+ - & == RLM
+ - A-F == Arabic Letters 0631-0636
+ - G-Z == Hebrew letters 05d7-05ea
+ - 0-5 == western digits 0030-0035
+ - 6-9 == Arabic-Indic digits 0666-0669
+ - ` == Combining Grave Accent 0300 (NSM)
+ - ~ == Delete 007f (BN)
+ - | == Paragraph Separator 2029 (B)
+ - _ == Info Separator 1 001f (S)
+ All other characters represent themselves as Latin-1, with the corresponding
+ Bidi properties.
+*/
+{
+ int i;
+ UChar uchar;
+ uint8_t c;
+ /* initialize all tables to unknown */
+ for (i=0; i < TABLE_SIZE; i++) {
+ pseudoToUChar[i] = 0xFFFD;
+ UCharToPseudo[i] = '?';
+ UCharToPseud2[i] = '?';
+ }
+ /* initialize non letters or digits */
+ pseudoToUChar[(uint8_t) 0 ] = 0x0000; UCharToPseudo[0x00] = (uint8_t) 0 ;
+ pseudoToUChar[(uint8_t)' '] = 0x0020; UCharToPseudo[0x20] = (uint8_t)' ';
+ pseudoToUChar[(uint8_t)'!'] = 0x0021; UCharToPseudo[0x21] = (uint8_t)'!';
+ pseudoToUChar[(uint8_t)'"'] = 0x0022; UCharToPseudo[0x22] = (uint8_t)'"';
+ pseudoToUChar[(uint8_t)'#'] = 0x0023; UCharToPseudo[0x23] = (uint8_t)'#';
+ pseudoToUChar[(uint8_t)'$'] = 0x0024; UCharToPseudo[0x24] = (uint8_t)'$';
+ pseudoToUChar[(uint8_t)'%'] = 0x0025; UCharToPseudo[0x25] = (uint8_t)'%';
+ pseudoToUChar[(uint8_t)'\'']= 0x0027; UCharToPseudo[0x27] = (uint8_t)'\'';
+ pseudoToUChar[(uint8_t)'('] = 0x0028; UCharToPseudo[0x28] = (uint8_t)'(';
+ pseudoToUChar[(uint8_t)')'] = 0x0029; UCharToPseudo[0x29] = (uint8_t)')';
+ pseudoToUChar[(uint8_t)'*'] = 0x002A; UCharToPseudo[0x2A] = (uint8_t)'*';
+ pseudoToUChar[(uint8_t)'+'] = 0x002B; UCharToPseudo[0x2B] = (uint8_t)'+';
+ pseudoToUChar[(uint8_t)','] = 0x002C; UCharToPseudo[0x2C] = (uint8_t)',';
+ pseudoToUChar[(uint8_t)'-'] = 0x002D; UCharToPseudo[0x2D] = (uint8_t)'-';
+ pseudoToUChar[(uint8_t)'.'] = 0x002E; UCharToPseudo[0x2E] = (uint8_t)'.';
+ pseudoToUChar[(uint8_t)'/'] = 0x002F; UCharToPseudo[0x2F] = (uint8_t)'/';
+ pseudoToUChar[(uint8_t)':'] = 0x003A; UCharToPseudo[0x3A] = (uint8_t)':';
+ pseudoToUChar[(uint8_t)';'] = 0x003B; UCharToPseudo[0x3B] = (uint8_t)';';
+ pseudoToUChar[(uint8_t)'<'] = 0x003C; UCharToPseudo[0x3C] = (uint8_t)'<';
+ pseudoToUChar[(uint8_t)'='] = 0x003D; UCharToPseudo[0x3D] = (uint8_t)'=';
+ pseudoToUChar[(uint8_t)'>'] = 0x003E; UCharToPseudo[0x3E] = (uint8_t)'>';
+ pseudoToUChar[(uint8_t)'?'] = 0x003F; UCharToPseudo[0x3F] = (uint8_t)'?';
+ pseudoToUChar[(uint8_t)'\\']= 0x005C; UCharToPseudo[0x5C] = (uint8_t)'\\';
+ /* initialize specially used characters */
+ pseudoToUChar[(uint8_t)'`'] = 0x0300; UCharToPseud2[0x00] = (uint8_t)'`'; /* NSM */
+ pseudoToUChar[(uint8_t)'@'] = 0x200E; UCharToPseud2[0x0E] = (uint8_t)'@'; /* LRM */
+ pseudoToUChar[(uint8_t)'&'] = 0x200F; UCharToPseud2[0x0F] = (uint8_t)'&'; /* RLM */
+ pseudoToUChar[(uint8_t)'_'] = 0x001F; UCharToPseudo[0x1F] = (uint8_t)'_'; /* S */
+ pseudoToUChar[(uint8_t)'|'] = 0x2029; UCharToPseud2[0x29] = (uint8_t)'|'; /* B */
+ pseudoToUChar[(uint8_t)'['] = 0x202A; UCharToPseud2[0x2A] = (uint8_t)'['; /* LRE */
+ pseudoToUChar[(uint8_t)']'] = 0x202B; UCharToPseud2[0x2B] = (uint8_t)']'; /* RLE */
+ pseudoToUChar[(uint8_t)'^'] = 0x202C; UCharToPseud2[0x2C] = (uint8_t)'^'; /* PDF */
+ pseudoToUChar[(uint8_t)'{'] = 0x202D; UCharToPseud2[0x2D] = (uint8_t)'{'; /* LRO */
+ pseudoToUChar[(uint8_t)'}'] = 0x202E; UCharToPseud2[0x2E] = (uint8_t)'}'; /* RLO */
+ pseudoToUChar[(uint8_t)'~'] = 0x007F; UCharToPseudo[0x7F] = (uint8_t)'~'; /* BN */
+ /* initialize western digits */
+ for (i = 0, uchar = 0x0030; i < 6; i++, uchar++) {
+ c = (uint8_t)columns[i];
+ pseudoToUChar[c] = uchar;
+ UCharToPseudo[uchar & 0x00ff] = c;
+ }
+ /* initialize Hindi digits */
+ for (i = 6, uchar = 0x0666; i < 10; i++, uchar++) {
+ c = (uint8_t)columns[i];
+ pseudoToUChar[c] = uchar;
+ UCharToPseud2[uchar & 0x00ff] = c;
+ }
+ /* initialize Arabic letters */
+ for (i = 10, uchar = 0x0631; i < 16; i++, uchar++) {
+ c = (uint8_t)columns[i];
+ pseudoToUChar[c] = uchar;
+ UCharToPseud2[uchar & 0x00ff] = c;
+ }
+ /* initialize Hebrew letters */
+ for (i = 16, uchar = 0x05D7; i < 36; i++, uchar++) {
+ c = (uint8_t)columns[i];
+ pseudoToUChar[c] = uchar;
+ UCharToPseud2[uchar & 0x00ff] = c;
+ }
+ /* initialize Latin lower case letters */
+ for (i = 36, uchar = 0x0061; i < 62; i++, uchar++) {
+ c = (uint8_t)columns[i];
+ pseudoToUChar[c] = uchar;
+ UCharToPseudo[uchar & 0x00ff] = c;
+ }
+ tablesInitialized = TRUE;
+}
+
+/*----------------------------------------------------------------------*/
+
+static int pseudoToU16( const int length, const char * input, UChar * output )
+/* This function converts a pseudo-Bidi string into a UChar string.
+ It returns the length of the UChar string.
+*/
+{
+ int i;
+ if (!tablesInitialized) {
+ buildPseudoTables();
+ }
+ for (i = 0; i < length; i++)
+ output[i] = pseudoToUChar[(uint8_t)input[i]];
+ return length;
+}
+
+/*----------------------------------------------------------------------*/
+
+static int u16ToPseudo( const int length, const UChar * input, char * output )
+/* This function converts a UChar string into a pseudo-Bidi string.
+ It returns the length of the pseudo-Bidi string.
+*/
+{
+ int i;
+ UChar uchar;
+ if (!tablesInitialized) {
+ buildPseudoTables();
+ }
+ for (i = 0; i < length; i++)
+ {
+ uchar = input[i];
+ output[i] = uchar < 0x0100 ? UCharToPseudo[uchar] :
+ UCharToPseud2[uchar & 0x00ff];
+ }
+ output[length] = '\0';
+ return length;
+}
+
+static char * formatLevels(UBiDi *bidi, char *buffer) {
+ UErrorCode ec = U_ZERO_ERROR;
+ const UBiDiLevel* gotLevels = ubidi_getLevels(bidi, &ec);
+ int len = ubidi_getLength(bidi);
+ char c;
+ int i, k;
+
+ if(U_FAILURE(ec)) {
+ strcpy(buffer, "BAD LEVELS");
+ return buffer;
+ }
+ for (i=0; i<len; i++) {
+ k = gotLevels[i];
+ if (k >= sizeof columns)
+ c = '+';
+ else
+ c = columns[k];
+ buffer[i] = c;
+ }
+ buffer[len] = '\0';
+ return buffer;
+}
+
static void TestReorder(){
static const char* const logicalOrder[] ={
- "DEL(\\u062F\\u0625)ADD(\\u062F.\\u0625.\\u200F)",
- "DEL(\\u0645\\u0627\\u064A\\u0648) ADD(\\u0623\\u064A\\u0627\\u0631)",
- "DEL(\\u0644\\u0644)ADD(\\u0644.\\u0644.\\u0029\\u0644)\\u0644.\\u200F",
- "DEL(\\u0631\\u064A)ADD(\\u0631.\\u064A.) \\u0631.\\u064A.\\u200F",
- "DAY 2 \\u0646 \\u0627\\u0644\\u0627\\u062B\\u0646\\u064A\\u0646 DAYABBR",
- "DAY 3 \\u062B \\u0627\\u0644\\u062B\\u0644\\u0627\\u062B\\u0627\\u0621 DAYABBR",
- "DAY 4 \\u0631 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 DAYABBR",
- "DAY 5 \\u062E \\u0627\\u0644\\u062E\\u0645\\u064A\\u0633 DAYABBR",
- "DAY 6 \\u062C \\u0627\\u0644\\u062C\\u0645\\u0639\\u0629 DAYABBR",
- "DAY 7 \\u0633 \\u0627\\u0644\\u0633\\u0628\\u062A DAYABBR",
- "HELLO\\u0627\\u0644\\u0633\\u0628\\u062A",
+ "del(KC)add(K.C.&)",
+ "del(QDVT) add(BVDL)",
+ "del(PQ)add(R.S.)T)U.&",
+ "del(LV)add(L.V.) L.V.&",
+ "day 0 R DPDHRVR dayabbr",
+ "day 1 H DPHPDHDA dayabbr",
+ "day 2 L DPBLENDA dayabbr",
+ "day 3 J DPJQVM dayabbr",
+ "day 4 I DPIQNF dayabbr",
+ "day 5 M DPMEG dayabbr",
+ "helloDPMEG",
};
static const char* const visualOrder[]={
- "DEL(\\u0625\\u062F)ADD(\\u200F.\\u0625.\\u062F)",
- "DEL(\\u0648\\u064A\\u0627\\u0645) ADD(\\u0631\\u0627\\u064A\\u0623)",
- "DEL(\\u0644\\u0644)ADD(\\u0644\\u0029.\\u0644.\\u0644)\\u200F.\\u0644",
- /* I am doutful about this...
- * what I would expect is :
- * DEL(\\u064A\\u0631)ADD(.\\u064A.\\u0631) \\u200F.\\u064A.\\u0631
- */
- "DEL(\\u064A\\u0631)ADD(\\u200F.\\u064A.\\u0631 (.\\u064A.\\u0631",
- "DAY 2 \\u0646\\u064A\\u0646\\u062B\\u0627\\u0644\\u0627 \\u0646 DAYABBR",
- "DAY 3 \\u0621\\u0627\\u062B\\u0627\\u0644\\u062B\\u0644\\u0627 \\u062B DAYABBR",
- "DAY 4 \\u0621\\u0627\\u0639\\u0628\\u0631\\u0623\\u0644\\u0627 \\u0631 DAYABBR",
- "DAY 5 \\u0633\\u064A\\u0645\\u062E\\u0644\\u0627 \\u062E DAYABBR",
- "DAY 6 \\u0629\\u0639\\u0645\\u062C\\u0644\\u0627 \\u062C DAYABBR",
- "DAY 7 \\u062A\\u0628\\u0633\\u0644\\u0627 \\u0633 DAYABBR",
- "HELLO\\u062A\\u0628\\u0633\\u0644\\u0627",
+ "del(CK)add(&.C.K)",
+ "del(TVDQ) add(LDVB)",
+ "del(QP)add(&.U(T(.S.R",
+ "del(VL)add(&.V.L (.V.L",
+ "day 0 RVRHDPD R dayabbr",
+ "day 1 ADHDPHPD H dayabbr",
+ "day 2 ADNELBPD L dayabbr",
+ "day 3 MVQJPD J dayabbr",
+ "day 4 FNQIPD I dayabbr",
+ "day 5 GEMPD M dayabbr",
+ "helloGEMPD",
};
static const char* const visualOrder1[]={
- ")\\u062F.\\u0625.\\u200F(DDA)\\u062F\\u0625(LED",
- ")\\u0623\\u064A\\u0627\\u0631(DDA )\\u0645\\u0627\\u064A\\u0648(LED",
- "\\u0644.\\u0644.(\\u0644(\\u0644.\\u200F(DDA)\\u0644\\u0644(LED",
- "\\u0631.\\u064A.( \\u0631.\\u064A.\\u200F(DDA)\\u0631\\u064A(LED",
- "RBBAYAD \\u0646 \\u0627\\u0644\\u0627\\u062B\\u0646\\u064A\\u0646 2 YAD",
- "RBBAYAD \\u062B \\u0627\\u0644\\u062B\\u0644\\u0627\\u062B\\u0627\\u0621 3 YAD",
- "RBBAYAD \\u0631 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 4 YAD",
- "RBBAYAD \\u062E \\u0627\\u0644\\u062E\\u0645\\u064A\\u0633 5 YAD",
- "RBBAYAD \\u062C \\u0627\\u0644\\u062C\\u0645\\u0639\\u0629 6 YAD",
- "RBBAYAD \\u0633 \\u0627\\u0644\\u0633\\u0628\\u062A 7 YAD",
- "\\u0627\\u0644\\u0633\\u0628\\u062AOLLEH",
+ ")K.C.&(dda)KC(led",
+ ")BVDL(dda )QDVT(led",
+ "R.S.(T(U.&(dda)PQ(led",
+ "L.V.( L.V.&(dda)LV(led",
+ "rbbayad R DPDHRVR 0 yad",
+ "rbbayad H DPHPDHDA 1 yad",
+ "rbbayad L DPBLENDA 2 yad",
+ "rbbayad J DPJQVM 3 yad",
+ "rbbayad I DPIQNF 4 yad",
+ "rbbayad M DPMEG 5 yad",
+ "DPMEGolleh",
};
static const char* const visualOrder2[]={
- "\\u200E)\\u200E\\u062F.\\u0625.\\u200F\\u200E(DDA)\\u200E\\u062F\\u0625\\u200E(LED",
- "\\u200E)\\u200E\\u0623\\u064A\\u0627\\u0631\\u200E(DDA )\\u200E\\u0645\\u0627\\u064A\\u0648\\u200E(LED",
- "\\u0644.\\u0644.)\\u0644)\\u0644.\\u200F\\u200E(DDA)\\u200E\\u0644\\u0644\\u200E(LED",
- "\\u0631.\\u064A.) \\u0631.\\u064A.\\u200F\\u200E(DDA)\\u200E\\u0631\\u064A\\u200E(LED",
- "RBBAYAD \\u200E\\u0646 \\u0627\\u0644\\u0627\\u062B\\u0646\\u064A\\u0646\\u200E 2 YAD",
- "RBBAYAD \\u200E\\u062B \\u0627\\u0644\\u062B\\u0644\\u0627\\u062B\\u0627\\u0621\\u200E 3 YAD",
- "RBBAYAD \\u200E\\u0631 \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621\\u200E 4 YAD",
- "RBBAYAD \\u200E\\u062E \\u0627\\u0644\\u062E\\u0645\\u064A\\u0633\\u200E 5 YAD",
- "RBBAYAD \\u200E\\u062C \\u0627\\u0644\\u062C\\u0645\\u0639\\u0629\\u200E 6 YAD",
- "RBBAYAD \\u200E\\u0633 \\u0627\\u0644\\u0633\\u0628\\u062A\\u200E 7 YAD",
- "\\u0627\\u0644\\u0633\\u0628\\u062AOLLEH",
+ "@)@K.C.&@(dda)@KC@(led",
+ "@)@BVDL@(dda )@QDVT@(led",
+ "R.S.)T)U.&@(dda)@PQ@(led",
+ "L.V.) L.V.&@(dda)@LV@(led",
+ "rbbayad @R DPDHRVR@ 0 yad",
+ "rbbayad @H DPHPDHDA@ 1 yad",
+ "rbbayad @L DPBLENDA@ 2 yad",
+ "rbbayad @J DPJQVM@ 3 yad",
+ "rbbayad @I DPIQNF@ 4 yad",
+ "rbbayad @M DPMEG@ 5 yad",
+ "DPMEGolleh",
};
static const char* const visualOrder3[]={
- ")\\u062F.\\u0625.\\u200F(DDA)\\u062F\\u0625(LED",
- ")\\u0623\\u064A\\u0627\\u0631(DDA )\\u0645\\u0627\\u064A\\u0648(LED",
- "\\u0644.\\u0644.)\\u0644)\\u0644.\\u200F(\\u0644\\u0644)DDA(LED",
- "\\u0631.\\u064A.) \\u0631.\\u064A.\\u200F(\\u0631\\u064A)DDA(LED",
- "RBBAYAD \\u0627\\u0644\\u0627\\u062B\\u0646\\u064A\\u0646 \\u0646 2 YAD",
- "RBBAYAD \\u0627\\u0644\\u062B\\u0644\\u0627\\u062B\\u0627\\u0621 \\u062B 3 YAD",
- "RBBAYAD \\u0627\\u0644\\u0623\\u0631\\u0628\\u0639\\u0627\\u0621 \\u0631 4 YAD",
- "RBBAYAD \\u0627\\u0644\\u062E\\u0645\\u064A\\u0633 \\u062E 5 YAD",
- "RBBAYAD \\u0627\\u0644\\u062C\\u0645\\u0639\\u0629 \\u062C",
- "RBBAYAD \\u0627\\u0644\\u0633\\u0628\\u062A \\u0633 7 YAD",
- "\\u0627\\u0644\\u0633\\u0628\\u062AOLLEH"
+ ")K.C.&(KC)dda(led",
+ ")BVDL(ddaQDVT) (led",
+ "R.S.)T)U.&(PQ)dda(led",
+ "L.V.) L.V.&(LV)dda(led",
+ "rbbayad DPDHRVR R 0 yad",
+ "rbbayad DPHPDHDA H 1 yad",
+ "rbbayad DPBLENDA L 2 yad",
+ "rbbayad DPJQVM J 3 yad",
+ "rbbayad DPIQNF I 4 yad",
+ "rbbayad DPMEG M 5 yad",
+ "DPMEGolleh"
};
static const char* const visualOrder4[]={
- "DEL(ADD(\\u0625\\u062F(.\\u0625.\\u062F)",
- "DEL( (\\u0648\\u064A\\u0627\\u0645ADD(\\u0631\\u0627\\u064A\\u0623)",
- "DEL(ADD(\\u0644\\u0644(.\\u0644(\\u0644(.\\u0644.\\u0644",
- "DEL(ADD(\\u064A\\u0631(.\\u064A.\\u0631 (.\\u064A.\\u0631",
- "DAY 2 \\u0646 \\u0646\\u064A\\u0646\\u062B\\u0627\\u0644\\u0627 DAYABBR",
- "DAY 3 \\u062B \\u0621\\u0627\\u062B\\u0627\\u0644\\u062B\\u0644\\u0627 DAYABBR",
- "DAY 4 \\u0631 \\u0621\\u0627\\u0639\\u0628\\u0631\\u0623\\u0644\\u0627 DAYABBR",
- "DAY 5 \\u062E \\u0633\\u064A\\u0645\\u062E\\u0644\\u0627 DAYABBR",
- "DAY 6 \\u062C \\u0629\\u0639\\u0645\\u062C\\u0644\\u0627 DAYABBR",
- "DAY 7 \\u0633 \\u062A\\u0628\\u0633\\u0644\\u0627 DAYABBR ",
- "HELLO\\u062A\\u0628\\u0633\\u0644\\u0627"
+ "del(add(CK(.C.K)",
+ "del( (TVDQadd(LDVB)",
+ "del(add(QP(.U(T(.S.R",
+ "del(add(VL(.V.L (.V.L",
+ "day 0 R RVRHDPD dayabbr",
+ "day 1 H ADHDPHPD dayabbr",
+ "day 2 L ADNELBPD dayabbr",
+ "day 3 J MVQJPD dayabbr",
+ "day 4 I FNQIPD dayabbr",
+ "day 5 M GEMPD dayabbr",
+ "helloGEMPD"
};
+ char formatChars[MAXLEN];
UErrorCode ec = U_ZERO_ERROR;
UBiDi* bidi = ubidi_open();
- int i=0;
- for(;i<(sizeof(logicalOrder)/sizeof(logicalOrder[0]));i++){
- int32_t srcSize = (int32_t)uprv_strlen(logicalOrder[i]);
+ int i;
+ for(i=0;i<LENGTHOF(logicalOrder);i++){
+ int32_t srcSize = (int32_t)strlen(logicalOrder[i]);
int32_t destSize = srcSize*2;
- UChar* src = (UChar*) malloc(sizeof(UChar)*srcSize );
- UChar* dest = (UChar*) malloc(sizeof(UChar)*destSize);
- char* chars=NULL;
+ UChar src[MAXLEN];
+ UChar dest[MAXLEN];
+ char chars[MAXLEN];
+ pseudoToU16(srcSize,logicalOrder[i],src);
ec = U_ZERO_ERROR;
- u_unescape(logicalOrder[i],src,srcSize);
- srcSize= u_strlen(src);
ubidi_setPara(bidi,src,srcSize,UBIDI_DEFAULT_LTR ,NULL,&ec);
if(U_FAILURE(ec)){
log_err("ubidi_setPara(tests[%d], paraLevel %d) failed with errorCode %s\n",
@@ -294,25 +486,24 @@ static void TestReorder(){
ec= U_ZERO_ERROR;
}
destSize=ubidi_writeReordered(bidi,dest,destSize+1,UBIDI_DO_MIRRORING,&ec);
- chars = aescstrdup(dest,-1);
+ u16ToPseudo(destSize,dest,chars);
if(destSize!=srcSize){
log_err("ubidi_writeReordered() destSize and srcSize do not match\n");
- }else if(uprv_strncmp(visualOrder[i],chars,destSize)!=0){
- log_err("ubidi_writeReordered() did not give expected results. Expected: %s Got: %s At Index: %d\n",visualOrder[i],chars,i);
+ }else if(strcmp(visualOrder[i],chars)!=0){
+ log_err("ubidi_writeReordered() did not give expected results for UBIDI_DO_MIRRORING.\n"
+ "Input : %s\nExpected: %s\nGot : %s\nLevels : %s\nAt Index: %d\n",
+ logicalOrder[i],visualOrder[i],chars,formatLevels(bidi, formatChars),i);
}
- free(src);
- free(dest);
}
- for(i=0;i<(sizeof(logicalOrder)/sizeof(logicalOrder[0]));i++){
- int32_t srcSize = (int32_t)uprv_strlen(logicalOrder[i]);
+ for(i=0;i<LENGTHOF(logicalOrder);i++){
+ int32_t srcSize = (int32_t)strlen(logicalOrder[i]);
int32_t destSize = srcSize*2;
- UChar* src = (UChar*) malloc(sizeof(UChar)*srcSize );
- UChar* dest = (UChar*) malloc(sizeof(UChar)*destSize);
- char* chars=NULL;
+ UChar src[MAXLEN];
+ UChar dest[MAXLEN];
+ char chars[MAXLEN];
+ pseudoToU16(srcSize,logicalOrder[i],src);
ec = U_ZERO_ERROR;
- u_unescape(logicalOrder[i],src,srcSize);
- srcSize=u_strlen(src);
ubidi_setPara(bidi,src,srcSize,UBIDI_DEFAULT_LTR ,NULL,&ec);
if(U_FAILURE(ec)){
log_err("ubidi_setPara(tests[%d], paraLevel %d) failed with errorCode %s\n",
@@ -328,28 +519,26 @@ static void TestReorder(){
ec= U_ZERO_ERROR;
}
destSize=ubidi_writeReordered(bidi,dest,destSize+1,UBIDI_DO_MIRRORING+UBIDI_OUTPUT_REVERSE,&ec);
- chars = aescstrdup(dest,destSize);
+ u16ToPseudo(destSize,dest,chars);
if(destSize!=srcSize){
log_err("ubidi_writeReordered() destSize and srcSize do not match\n");
- }else if(uprv_strncmp(visualOrder1[i],chars,destSize)!=0){
- log_err("ubidi_writeReordered() did not give expected results for UBIDI_DO_MIRRORING+UBIDI_OUTPUT_REVERSE. Expected: %s Got: %s At Index: %d\n",visualOrder1[i],chars,i);
+ }else if(strcmp(visualOrder1[i],chars)!=0){
+ log_err("ubidi_writeReordered() did not give expected results for UBIDI_DO_MIRRORING+UBIDI_OUTPUT_REVERSE.\n"
+ "Input : %s\nExpected: %s\nGot : %s\nLevels : %s\nAt Index: %d\n",
+ logicalOrder[i],visualOrder1[i],chars,formatLevels(bidi, formatChars),i);
}
- free(src);
- free(dest);
}
- for(i=0;i<(sizeof(logicalOrder)/sizeof(logicalOrder[0]));i++){
- int32_t srcSize = (int32_t)uprv_strlen(logicalOrder[i]);
+ for(i=0;i<LENGTHOF(logicalOrder);i++){
+ int32_t srcSize = (int32_t)strlen(logicalOrder[i]);
int32_t destSize = srcSize*2;
- UChar* src = (UChar*) malloc(sizeof(UChar)*srcSize );
- UChar* dest = (UChar*) malloc(sizeof(UChar)*destSize);
- char* chars=NULL;
+ UChar src[MAXLEN];
+ UChar dest[MAXLEN];
+ char chars[MAXLEN];
+ pseudoToU16(srcSize,logicalOrder[i],src);
ec = U_ZERO_ERROR;
- u_unescape(logicalOrder[i],src,srcSize);
- srcSize=u_strlen(src);
ubidi_setInverse(bidi,TRUE);
ubidi_setPara(bidi,src,srcSize,UBIDI_DEFAULT_LTR ,NULL,&ec);
-
if(U_FAILURE(ec)){
log_err("ubidi_setPara(tests[%d], paraLevel %d) failed with errorCode %s\n",
i, UBIDI_DEFAULT_LTR, u_errorName(ec));
@@ -362,28 +551,23 @@ static void TestReorder(){
ec= U_ZERO_ERROR;
}
destSize=ubidi_writeReordered(bidi,dest,destSize+1,UBIDI_INSERT_LRM_FOR_NUMERIC+UBIDI_OUTPUT_REVERSE,&ec);
- chars = aescstrdup(dest,destSize);
-
- /*if(destSize!=srcSize){
- log_err("ubidi_writeReordered() destSize and srcSize do not match. Dest Size = %d Source Size = %d\n",destSize,srcSize );
- }else*/
- if(uprv_strncmp(visualOrder2[i],chars,destSize)!=0){
- log_err("ubidi_writeReordered() did not give expected results for UBIDI_INSERT_LRM_FOR_NUMERIC+UBIDI_OUTPUT_REVERSE. Expected: %s Got: %s At Index: %d\n",visualOrder2[i],chars,i);
+ u16ToPseudo(destSize,dest,chars);
+ if(strcmp(visualOrder2[i],chars)!=0){
+ log_err("ubidi_writeReordered() did not give expected results for UBIDI_INSERT_LRM_FOR_NUMERIC+UBIDI_OUTPUT_REVERSE.\n"
+ "Input : %s\nExpected: %s\nGot : %s\nLevels : %s\nAt Index: %d\n",
+ logicalOrder[i],visualOrder2[i],chars,formatLevels(bidi, formatChars),i);
}
- free(src);
- free(dest);
}
/* Max Explicit level */
- for(i=0;i<(sizeof(logicalOrder)/sizeof(logicalOrder[0]));i++){
- int32_t srcSize = (int32_t)uprv_strlen(logicalOrder[i]);
+ for(i=0;i<LENGTHOF(logicalOrder);i++){
+ int32_t srcSize = (int32_t)strlen(logicalOrder[i]);
int32_t destSize = srcSize*2;
- UChar* src = (UChar*) malloc(sizeof(UChar)*srcSize );
- UChar* dest = (UChar*) malloc(sizeof(UChar)*destSize);
- char* chars=NULL;
+ UChar src[MAXLEN];
+ UChar dest[MAXLEN];
+ char chars[MAXLEN];
UBiDiLevel levels[UBIDI_MAX_EXPLICIT_LEVEL]={1,2,3,4,5,6,7,8,9,10};
+ pseudoToU16(srcSize,logicalOrder[i],src);
ec = U_ZERO_ERROR;
- u_unescape(logicalOrder[i],src,srcSize);
- srcSize=u_strlen(src);
ubidi_setPara(bidi,src,srcSize,UBIDI_DEFAULT_LTR,levels,&ec);
if(U_FAILURE(ec)){
log_err("ubidi_setPara(tests[%d], paraLevel %d) failed with errorCode %s\n",
@@ -396,54 +580,46 @@ static void TestReorder(){
}else if(destSize!=srcSize){
log_err("Pre-flighting did not give expected size: Expected: %d. Got: %d \n",srcSize,destSize);
}else{
- ec= U_ZERO_ERROR;
+ ec = U_ZERO_ERROR;
}
destSize=ubidi_writeReordered(bidi,dest,destSize+1,UBIDI_OUTPUT_REVERSE,&ec);
- chars = aescstrdup(dest,destSize);
-
+ u16ToPseudo(destSize,dest,chars);
if(destSize!=srcSize){
log_err("ubidi_writeReordered() destSize and srcSize do not match. Dest Size = %d Source Size = %d\n",destSize,srcSize );
- }else if(uprv_strncmp(visualOrder3[i],chars,destSize)!=0){
- log_err("ubidi_writeReordered() did not give expected results for UBIDI_OUTPUT_REVERSE. Expected: %s Got: %s At Index: %d\n",visualOrder3[i],chars,i);
+ }else if(strcmp(visualOrder3[i],chars)!=0){
+ log_err("ubidi_writeReordered() did not give expected results for UBIDI_OUTPUT_REVERSE.\n"
+ "Input : %s\nExpected: %s\nGot : %s\nLevels : %s\nAt Index: %d\n",
+ logicalOrder[i],visualOrder3[i],chars,formatLevels(bidi, formatChars),i);
}
- free(src);
- free(dest);
}
- for(i=0;i<(sizeof(logicalOrder)/sizeof(logicalOrder[0]));i++){
- int32_t srcSize = (int32_t)uprv_strlen(logicalOrder[i]);
+ for(i=0;i<LENGTHOF(logicalOrder);i++){
+ int32_t srcSize = (int32_t)strlen(logicalOrder[i]);
int32_t destSize = srcSize*2;
- UChar* src = (UChar*) malloc(sizeof(UChar)*srcSize );
- UChar* dest = (UChar*) malloc(sizeof(UChar)*destSize);
- char* chars=NULL;
+ UChar src[MAXLEN];
+ UChar dest[MAXLEN];
+ char chars[MAXLEN];
UBiDiLevel levels[UBIDI_MAX_EXPLICIT_LEVEL]={1,2,3,4,5,6,7,8,9,10};
+ pseudoToU16(srcSize,logicalOrder[i],src);
ec = U_ZERO_ERROR;
- u_unescape(logicalOrder[i],src,srcSize);
- srcSize=u_strlen(src);
ubidi_setPara(bidi,src,srcSize,UBIDI_DEFAULT_LTR,levels,&ec);
if(U_FAILURE(ec)){
log_err("ubidi_setPara(tests[%d], paraLevel %d) failed with errorCode %s\n",
i, UBIDI_MAX_EXPLICIT_LEVEL, u_errorName(ec));
}
-
/* try pre-flighting */
destSize = ubidi_writeReordered(bidi,dest,0,UBIDI_DO_MIRRORING+UBIDI_REMOVE_BIDI_CONTROLS,&ec);
if(ec!=U_BUFFER_OVERFLOW_ERROR){
log_err("Pre-flighting did not give expected error: Expected: U_BUFFER_OVERFLOW_ERROR. Got: %s \n",u_errorName(ec));
- /*}else if(destSize!=srcSize){
- log_err("Pre-flighting did not give expected size: Expected: %d. Got: %d \n",srcSize,destSize);*/
}else{
ec= U_ZERO_ERROR;
}
destSize=ubidi_writeReordered(bidi,dest,destSize+1,UBIDI_DO_MIRRORING+UBIDI_REMOVE_BIDI_CONTROLS,&ec);
- chars = aescstrdup(dest,destSize);
-
- /*if(destSize!=srcSize){
- log_err("ubidi_writeReordered() destSize and srcSize do not match. Dest Size = %d Source Size = %d\n",destSize,srcSize );
- }else*/ if(uprv_strncmp(visualOrder4[i],chars,destSize)!=0){
- log_err("ubidi_writeReordered() did not give expected results for UBIDI_DO_MIRRORING+UBIDI_REMOVE_BIDI_CONTROLS. Expected: %s Got: %s At Index: %d\n",visualOrder4[i],chars,i);
+ u16ToPseudo(destSize,dest,chars);
+ if(strcmp(visualOrder4[i],chars)!=0){
+ log_err("ubidi_writeReordered() did not give expected results for UBIDI_DO_MIRRORING+UBIDI_REMOVE_BIDI_CONTROLS.\n"
+ "Input : %s\nExpected: %s\nGot : %s\nLevels : %s\nAt Index: %d\n",
+ logicalOrder[i],visualOrder4[i],chars,formatLevels(bidi, formatChars),i);
}
- free(src);
- free(dest);
}
ubidi_close(bidi);
}
@@ -506,7 +682,7 @@ doTest(UBiDi *pBiDi, int testNumber, BiDiTestData *test, int32_t lineStart, UBoo
for(i=0; i<len; ++i) {
if(levels[i]!=ubidi_getLevelAt(pBiDi, i)) {
- log_err("ubidi_getLevelAt(tests[%d], %d): wrong level %d\n", testNumber, i, ubidi_getLevelAt(pBiDi, i));
+ log_err("ubidi_getLevelAt(tests[%d], %d): wrong level %d, expected %d\n", testNumber, i, ubidi_getLevelAt(pBiDi, i), levels[i]);
return;
}
}
@@ -553,11 +729,12 @@ doTest(UBiDi *pBiDi, int testNumber, BiDiTestData *test, int32_t lineStart, UBoo
static void
testReordering(UBiDi *pBiDi, int testNumber) {
int32_t
- logicalMap1[200], logicalMap2[200], logicalMap3[200],
- visualMap1[200], visualMap2[200], visualMap3[200], visualMap4[200];
+ logicalMap1[MAXLEN], logicalMap2[MAXLEN], logicalMap3[MAXLEN],
+ visualMap1[MAXLEN], visualMap2[MAXLEN], visualMap3[MAXLEN], visualMap4[MAXLEN];
UErrorCode errorCode=U_ZERO_ERROR;
- UBiDiLevel levels[200];
- int32_t i, length=ubidi_getLength(pBiDi);
+ const UBiDiLevel *levels;
+ int32_t i, length=ubidi_getLength(pBiDi),
+ destLength=ubidi_getResultLength(pBiDi);
int32_t runCount, visualIndex, logicalStart, runLength;
UBool odd;
@@ -573,7 +750,6 @@ testReordering(UBiDi *pBiDi, int testNumber) {
}
ubidi_getVisualMap(pBiDi, visualMap1, &errorCode);
-
if(U_FAILURE(errorCode)) {
log_err("ubidi_getVisualMap(tests[%d]): error %s\n", testNumber, myErrorName(errorCode));
return;
@@ -581,10 +757,10 @@ testReordering(UBiDi *pBiDi, int testNumber) {
/* invert them both */
ubidi_invertMap(logicalMap1, visualMap2, length);
- ubidi_invertMap(visualMap1, logicalMap2, length);
+ ubidi_invertMap(visualMap1, logicalMap2, destLength);
/* get them from the levels array, too */
- uprv_memcpy(levels, ubidi_getLevels(pBiDi, &errorCode), length);
+ levels=ubidi_getLevels(pBiDi, &errorCode);
if(U_FAILURE(errorCode)) {
log_err("ubidi_getLevels(tests[%d]): error %s\n", testNumber, myErrorName(errorCode));
@@ -600,17 +776,12 @@ testReordering(UBiDi *pBiDi, int testNumber) {
log_err("ubidi_countRuns(tests[%d]): error %s\n", testNumber, myErrorName(errorCode));
return;
}
-
log_verbose("\n----%2d runs:", runCount);
- for(i=0; i<runCount; ++i) {
- odd=(UBool)(ubidi_getVisualRun(pBiDi, i, &logicalStart, &runLength));
- log_verbose(" (%c @%d[%d])", odd ? 'R' : 'L', logicalStart, runLength);
- }
- log_verbose("\n");
-
visualIndex=0;
for(i=0; i<runCount; ++i) {
- if(UBIDI_LTR==ubidi_getVisualRun(pBiDi, i, &logicalStart, &runLength)) {
+ odd=(UBool)ubidi_getVisualRun(pBiDi, i, &logicalStart, &runLength);
+ log_verbose(" (%c @%d[%d])", odd ? 'R' : 'L', logicalStart, runLength);
+ if(UBIDI_LTR==odd) {
do { /* LTR */
visualMap4[visualIndex++]=logicalStart++;
} while(--runLength>0);
@@ -621,6 +792,7 @@ testReordering(UBiDi *pBiDi, int testNumber) {
} while(--runLength>0);
}
}
+ log_verbose("\n");
/* print all the maps */
log_verbose("logical maps:\n");
@@ -637,11 +809,11 @@ testReordering(UBiDi *pBiDi, int testNumber) {
}
log_verbose("\nvisual maps:\n");
- for(i=0; i<length; ++i) {
+ for(i=0; i<destLength; ++i) {
log_verbose("%4d", visualMap1[i]);
}
log_verbose("\n");
- for(i=0; i<length; ++i) {
+ for(i=0; i<destLength; ++i) {
log_verbose("%4d", visualMap2[i]);
}
log_verbose("\n");
@@ -718,7 +890,6 @@ static void TestFailureRecovery(void) {
}
static void TestMultipleParagraphs(void) {
- #define MAXLEN 100
static const char* const text = "__ABC\\u001c" /* Para #0 offset 0 */
"__\\u05d0DE\\u001c" /* 1 6 */
"__123\\u001c" /* 2 12 */
@@ -993,29 +1164,30 @@ static void TestMultipleParagraphs(void) {
/* inverse BiDi ------------------------------------------------------------- */
-static const UChar
- string0[]={ 0x6c, 0x61, 0x28, 0x74, 0x69, 0x6e, 0x20, 0x5d0, 0x5d1, 0x29, 0x5d2, 0x5d3 },
- string1[]={ 0x6c, 0x61, 0x74, 0x20, 0x5d0, 0x5d1, 0x5d2, 0x20, 0x31, 0x32, 0x33 },
- string2[]={ 0x6c, 0x61, 0x74, 0x20, 0x5d0, 0x28, 0x5d1, 0x5d2, 0x20, 0x31, 0x29, 0x32, 0x33 },
- string3[]={ 0x31, 0x32, 0x33, 0x20, 0x5d0, 0x5d1, 0x5d2, 0x20, 0x34, 0x35, 0x36 },
- string4[]={ 0x61, 0x62, 0x20, 0x61, 0x62, 0x20, 0x661, 0x662 };
+static int countRoundtrips=0, countNonRoundtrips=0;
#define STRING_TEST_CASE(s) { (s), LENGTHOF(s) }
-static const struct {
- const UChar *s;
- int32_t length;
-} testCases[]={
- STRING_TEST_CASE(string0),
- STRING_TEST_CASE(string1),
- STRING_TEST_CASE(string2),
- STRING_TEST_CASE(string3)
-};
-
-static int countRoundtrips=0, countNonRoundtrips=0;
-
static void
doInverseBiDiTest() {
+ static const UChar
+ string0[]={ 0x6c, 0x61, 0x28, 0x74, 0x69, 0x6e, 0x20, 0x5d0, 0x5d1, 0x29, 0x5d2, 0x5d3 },
+ string1[]={ 0x6c, 0x61, 0x74, 0x20, 0x5d0, 0x5d1, 0x5d2, 0x20, 0x31, 0x32, 0x33 },
+ string2[]={ 0x6c, 0x61, 0x74, 0x20, 0x5d0, 0x28, 0x5d1, 0x5d2, 0x20, 0x31, 0x29, 0x32, 0x33 },
+ string3[]={ 0x31, 0x32, 0x33, 0x20, 0x5d0, 0x5d1, 0x5d2, 0x20, 0x34, 0x35, 0x36 },
+ string4[]={ 0x61, 0x62, 0x20, 0x61, 0x62, 0x20, 0x661, 0x662 };
+
+ static const struct {
+ const UChar *s;
+ int32_t length;
+ } testCases[]={
+ STRING_TEST_CASE(string0),
+ STRING_TEST_CASE(string1),
+ STRING_TEST_CASE(string2),
+ STRING_TEST_CASE(string3),
+ STRING_TEST_CASE(string4)
+ };
+
UBiDi *pBiDi;
UErrorCode errorCode;
int i;
@@ -1027,7 +1199,7 @@ doInverseBiDiTest() {
}
log_verbose("inverse BiDi: testInverseBiDi(L) with %u test cases ---\n", LENGTHOF(testCases));
- for(i=0; i<LENGTHOF(testCases); ++i) {
+ for(i=0; i<LENGTHOF(testCases); ++i) {
errorCode=U_ZERO_ERROR;
testInverseBiDi(pBiDi, testCases[i].s, testCases[i].length, 0, &errorCode);
}
@@ -1061,7 +1233,7 @@ static const UChar repeatSegments[COUNT_REPEAT_SEGMENTS][2]={
static void
testManyInverseBiDi(UBiDi *pBiDi, UBiDiLevel direction) {
- static UChar text[8]={ 0, 0, 0x20, 0, 0, 0x20, 0, 0 };
+ UChar text[8]={ 0, 0, 0x20, 0, 0, 0x20, 0, 0 };
int i, j, k;
UErrorCode errorCode;
@@ -1085,8 +1257,9 @@ testManyInverseBiDi(UBiDi *pBiDi, UBiDiLevel direction) {
}
static void
-testInverseBiDi(UBiDi *pBiDi, const UChar *src, int32_t srcLength, UBiDiLevel direction, UErrorCode *pErrorCode) {
- static UChar visualLTR[200], logicalDest[200], visualDest[200];
+testInverseBiDi(UBiDi *pBiDi, const UChar *src, int32_t srcLength,
+ UBiDiLevel direction, UErrorCode *pErrorCode) {
+ UChar visualLTR[MAXLEN], logicalDest[MAXLEN], visualDest[MAXLEN];
int32_t ltrLength, logicalLength, visualLength;
if(direction==0) {
@@ -1094,7 +1267,13 @@ testInverseBiDi(UBiDi *pBiDi, const UChar *src, int32_t srcLength, UBiDiLevel di
/* convert visual to logical */
ubidi_setInverse(pBiDi, TRUE);
+ if (!ubidi_isInverse(pBiDi)) {
+ log_err("Error while doing ubidi_setInverse(TRUE)\n");
+ }
ubidi_setPara(pBiDi, src, srcLength, 0, NULL, pErrorCode);
+ if (src != ubidi_getText(pBiDi)) {
+ log_err("Wrong value returned by ubidi_getText\n");
+ }
logicalLength=ubidi_writeReordered(pBiDi, logicalDest, LENGTHOF(logicalDest),
UBIDI_DO_MIRRORING|UBIDI_INSERT_LRM_FOR_NUMERIC, pErrorCode);
log_verbose(" v ");
@@ -1103,6 +1282,9 @@ testInverseBiDi(UBiDi *pBiDi, const UChar *src, int32_t srcLength, UBiDiLevel di
/* convert back to visual LTR */
ubidi_setInverse(pBiDi, FALSE);
+ if (ubidi_isInverse(pBiDi)) {
+ log_err("Error while doing ubidi_setInverse(FALSE)\n");
+ }
ubidi_setPara(pBiDi, logicalDest, logicalLength, 0, NULL, pErrorCode);
visualLength=ubidi_writeReordered(pBiDi, visualDest, LENGTHOF(visualDest),
UBIDI_DO_MIRRORING|UBIDI_REMOVE_BIDI_CONTROLS, pErrorCode);
@@ -1141,7 +1323,7 @@ testInverseBiDi(UBiDi *pBiDi, const UChar *src, int32_t srcLength, UBiDiLevel di
if(U_FAILURE(*pErrorCode)) {
log_err("inverse BiDi: *** error %s\n"
" turn on verbose mode to see details\n", u_errorName(*pErrorCode));
- } else if(srcLength==visualLength && uprv_memcmp(src, visualDest, srcLength*U_SIZEOF_UCHAR)==0) {
+ } else if(srcLength==visualLength && memcmp(src, visualDest, srcLength*U_SIZEOF_UCHAR)==0) {
++countRoundtrips;
log_verbose(" + roundtripped\n");
} else {
@@ -1162,7 +1344,7 @@ testWriteReverse() {
}, reverseRemoveControlsKeepCombiningDoMirror[]={
0x28, 0x31, 0x29, 0x20, 0x627, 0x64e, 0x650
};
- static UChar reverse[10];
+ UChar reverse[10];
UErrorCode errorCode;
int32_t length;
@@ -1172,18 +1354,18 @@ testWriteReverse() {
reverse, LENGTHOF(reverse),
UBIDI_KEEP_BASE_COMBINING,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(reverseKeepCombining) || uprv_memcmp(reverse, reverseKeepCombining, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(reverseKeepCombining) || memcmp(reverse, reverseKeepCombining, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in ubidi_writeReverse(UBIDI_KEEP_BASE_COMBINING): length=%d (should be %d), error code %s\n",
length, LENGTHOF(reverseKeepCombining), u_errorName(errorCode));
}
- uprv_memset(reverse, 0xa5, LENGTHOF(reverse)*U_SIZEOF_UCHAR);
+ memset(reverse, 0xa5, LENGTHOF(reverse)*U_SIZEOF_UCHAR);
errorCode=U_ZERO_ERROR;
length=ubidi_writeReverse(forward, LENGTHOF(forward),
reverse, LENGTHOF(reverse),
UBIDI_REMOVE_BIDI_CONTROLS|UBIDI_DO_MIRRORING|UBIDI_KEEP_BASE_COMBINING,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(reverseRemoveControlsKeepCombiningDoMirror) || uprv_memcmp(reverse, reverseRemoveControlsKeepCombiningDoMirror, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(reverseRemoveControlsKeepCombiningDoMirror) || memcmp(reverse, reverseRemoveControlsKeepCombiningDoMirror, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in ubidi_writeReverse(UBIDI_REMOVE_BIDI_CONTROLS|UBIDI_DO_MIRRORING|UBIDI_KEEP_BASE_COMBINING):\n"
" length=%d (should be %d), error code %s\n",
length, LENGTHOF(reverseRemoveControlsKeepCombiningDoMirror), u_errorName(errorCode));
@@ -1228,7 +1410,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_EN2AN|U_SHAPE_DIGIT_TYPE_AN,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, en2an, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, en2an, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(en2an)\n");
}
@@ -1238,7 +1420,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_AN2EN|U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
&errorCode);
- if(U_FAILURE(errorCode) || length!=u_strlen(source) || uprv_memcmp(dest, an2en, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=u_strlen(source) || memcmp(dest, an2en, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(an2en)\n");
}
@@ -1248,7 +1430,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_ALEN2AN_INIT_LR|U_SHAPE_DIGIT_TYPE_AN,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, logical_alen2an_init_lr, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, logical_alen2an_init_lr, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(logical_alen2an_init_lr)\n");
}
@@ -1258,7 +1440,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_ALEN2AN_INIT_AL|U_SHAPE_DIGIT_TYPE_AN_EXTENDED,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, logical_alen2an_init_al, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, logical_alen2an_init_al, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(logical_alen2an_init_al)\n");
}
@@ -1268,7 +1450,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_ALEN2AN_INIT_LR|U_SHAPE_DIGIT_TYPE_AN|U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, reverse_alen2an_init_lr, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, reverse_alen2an_init_lr, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(reverse_alen2an_init_lr)\n");
}
@@ -1278,7 +1460,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
U_SHAPE_DIGITS_ALEN2AN_INIT_AL|U_SHAPE_DIGIT_TYPE_AN_EXTENDED|U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, reverse_alen2an_init_al, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, reverse_alen2an_init_al, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(reverse_alen2an_init_al)\n");
}
@@ -1288,7 +1470,7 @@ doArabicShapingTest() {
dest, LENGTHOF(dest),
0,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || uprv_memcmp(dest, source, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(source) || memcmp(dest, source, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(noop)\n");
}
@@ -1437,7 +1619,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_near) || uprv_memcmp(dest, shape_near, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_near) || memcmp(dest, shape_near, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_near)\n");
}
@@ -1449,7 +1631,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_at_end) || uprv_memcmp(dest, shape_at_end, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_at_end) || memcmp(dest, shape_at_end, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_at_end)\n");
}
@@ -1461,7 +1643,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_at_begin) || uprv_memcmp(dest, shape_at_begin, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_at_begin) || memcmp(dest, shape_at_begin, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_at_begin)\n");
}
@@ -1473,7 +1655,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || uprv_memcmp(dest, shape_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || memcmp(dest, shape_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_grow_shrink)\n");
}
@@ -1487,7 +1669,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_near) || uprv_memcmp(dest, shape_excepttashkeel_near, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_near) || memcmp(dest, shape_excepttashkeel_near, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_excepttashkeel_near)\n");
}
@@ -1499,7 +1681,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_at_end) || uprv_memcmp(dest,shape_excepttashkeel_at_end , length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_at_end) || memcmp(dest,shape_excepttashkeel_at_end , length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_excepttashkeel_at_end)\n");
}
@@ -1511,7 +1693,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_at_begin) || uprv_memcmp(dest, shape_excepttashkeel_at_begin, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_at_begin) || memcmp(dest, shape_excepttashkeel_at_begin, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_excepttashkeel_at_begin)\n");
}
@@ -1523,7 +1705,7 @@ doLamAlefSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || uprv_memcmp(dest, shape_excepttashkeel_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || memcmp(dest, shape_excepttashkeel_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(LAMALEF shape_excepttashkeel_grow_shrink)\n");
}
}
@@ -1563,7 +1745,7 @@ doTashkeelSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_near) || uprv_memcmp(dest, shape_near, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_near) || memcmp(dest, shape_near, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(TASHKEEL shape_near)\n");
}
@@ -1575,7 +1757,7 @@ doTashkeelSpecialVLTRArabicShapingTest() {
U_SHAPE_TEXT_DIRECTION_VISUAL_LTR,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_near) || uprv_memcmp(dest, shape_excepttashkeel_near, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(shape_excepttashkeel_near) || memcmp(dest, shape_excepttashkeel_near, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(TASHKEEL shape_excepttashkeel_near)\n");
}
}
@@ -1617,7 +1799,7 @@ doLOGICALArabicDeShapingTest() {
U_SHAPE_TEXT_DIRECTION_LOGICAL,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_near) || uprv_memcmp(dest, unshape_near, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_near) || memcmp(dest, unshape_near, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(unshape_near)\n");
}
@@ -1629,7 +1811,7 @@ doLOGICALArabicDeShapingTest() {
U_SHAPE_TEXT_DIRECTION_LOGICAL,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_at_end) || uprv_memcmp(dest, unshape_at_end, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_at_end) || memcmp(dest, unshape_at_end, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(unshape_at_end)\n");
}
@@ -1641,7 +1823,7 @@ doLOGICALArabicDeShapingTest() {
U_SHAPE_TEXT_DIRECTION_LOGICAL,
&errorCode);
- if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_at_begin) || uprv_memcmp(dest, unshape_at_begin, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || length!=LENGTHOF(unshape_at_begin) || memcmp(dest, unshape_at_begin, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(unshape_at_begin)\n");
}
@@ -1653,7 +1835,7 @@ doLOGICALArabicDeShapingTest() {
U_SHAPE_TEXT_DIRECTION_LOGICAL,
&errorCode);
- if(U_FAILURE(errorCode) || uprv_memcmp(dest, unshape_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
+ if(U_FAILURE(errorCode) || memcmp(dest, unshape_grow_shrink, length*U_SIZEOF_UCHAR)!=0) {
log_err("failure in u_shapeArabic(unshape_grow_shrink)\n");
}
@@ -1680,18 +1862,17 @@ initCharFromDirProps() {
/* return a string with characters according to the desired directional properties */
static UChar *
-getStringFromDirProps(const uint8_t *dirProps, int32_t length) {
- static UChar s[MAX_STRING_LENGTH];
+getStringFromDirProps(const uint8_t *dirProps, int32_t length, UChar *buffer) {
int32_t i;
initCharFromDirProps();
/* this part would have to be modified for UTF-x */
for(i=0; i<length; ++i) {
- s[i]=charFromDirProp[dirProps[i]];
+ buffer[i]=charFromDirProp[dirProps[i]];
}
- s[i]=0;
- return s;
+ buffer[length]=0;
+ return buffer;
}
static void
@@ -1708,3 +1889,1124 @@ printUnicode(const UChar *s, int32_t length, const UBiDiLevel *levels) {
}
log_verbose(" }");
}
+
+/* new BIDI API */
+
+/* Reordering Mode BiDi --------------------------------------------------------- */
+
+static const UBiDiLevel paraLevels[] = { UBIDI_LTR, UBIDI_RTL };
+
+static UBool
+assertSuccessful(const char* message, UErrorCode* rc) {
+ if (rc != NULL && U_FAILURE(*rc)) {
+ log_err("%s() failed with error %s.\n", message, myErrorName(*rc));
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static UBool
+assertStringsEqual(const char* expected, const char* actual, const char* src,
+ const char* mode, const char* option, UBiDi* pBiDi) {
+ if (uprv_strcmp(expected, actual)) {
+ char formatChars[MAXLEN];
+ log_err("\nActual and expected output mismatch.\n"
+ "%20s %s\n%20s %s\n%20s %s\n%20s %s\n%20s %d %s\n%20s %u\n%20s %d %s\n",
+ "Input:", src,
+ "Actual output:", actual,
+ "Expected output:", expected,
+ "Levels:", formatLevels(pBiDi, formatChars),
+ "Reordering mode:", ubidi_getReorderingMode(pBiDi), mode,
+ "Paragraph level:", ubidi_getParaLevel(pBiDi),
+ "Reordering option:", ubidi_getReorderingOptions(pBiDi), option);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static UBiDi*
+getBiDiObject(void) {
+ UBiDi* pBiDi = ubidi_open();
+ if (pBiDi == NULL) {
+ log_err("Unable to allocate a UBiDi object. Tests are skipped.\n");
+ }
+ return pBiDi;
+}
+
+#define MAKE_ITEMS(val) val, #val
+
+static const struct {
+ uint32_t value;
+ const char* description;
+}
+modes[] = {
+ { MAKE_ITEMS(UBIDI_REORDER_GROUP_NUMBERS_WITH_R) },
+ { MAKE_ITEMS(UBIDI_REORDER_INVERSE_LIKE_DIRECT) },
+ { MAKE_ITEMS(UBIDI_REORDER_NUMBERS_SPECIAL) },
+ { MAKE_ITEMS(UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL) },
+ { MAKE_ITEMS(UBIDI_REORDER_INVERSE_NUMBERS_AS_L) }
+},
+options[] = {
+ { MAKE_ITEMS(UBIDI_OPTION_INSERT_MARKS) },
+ { MAKE_ITEMS(0) }
+};
+
+#define TC_COUNT LENGTHOF(textIn)
+#define MODES_COUNT LENGTHOF(modes)
+#define OPTIONS_COUNT LENGTHOF(options)
+#define LEVELS_COUNT LENGTHOF(paraLevels)
+
+static const char* const textIn[] = {
+/* (0) 123 */
+ "123",
+/* (1) .123->4.5 */
+ ".123->4.5",
+/* (2) 678 */
+ "678",
+/* (3) .678->8.9 */
+ ".678->8.9",
+/* (4) JIH1.2,3MLK */
+ "JIH1.2,3MLK",
+/* (5) FE.>12-> */
+ "FE.>12->",
+/* (6) JIH.>12->a */
+ "JIH.>12->a",
+/* (7) CBA.>67->89=a */
+ "CBA.>67->89=a",
+/* (8) CBA.123->xyz */
+ "CBA.123->xyz",
+/* (9) .>12->xyz */
+ ".>12->xyz",
+/* (10) a.>67->xyz */
+ "a.>67->xyz",
+/* (11) 123JIH */
+ "123JIH",
+/* (12) 123 JIH */
+ "123 JIH"
+};
+
+static const char* const textOut[] = {
+/* TC 0: 123 */
+ "123", /* (0) */
+/* TC 1: .123->4.5 */
+ ".123->4.5", /* (1) */
+ "4.5<-123.", /* (2) */
+/* TC 2: 678 */
+ "678", /* (3) */
+/* TC 3: .678->8.9 */
+ ".8.9<-678", /* (4) */
+ "8.9<-678.", /* (5) */
+ ".678->8.9", /* (6) */
+/* TC 4: MLK1.2,3JIH */
+ "KLM1.2,3HIJ", /* (7) */
+/* TC 5: FE.>12-> */
+ "12<.EF->", /* (8) */
+ "<-12<.EF", /* (9) */
+ "EF.>@12->", /* (10) */
+/* TC 6: JIH.>12->a */
+ "12<.HIJ->a", /* (11) */
+ "a<-12<.HIJ", /* (12) */
+ "HIJ.>@12->a", /* (13) */
+ "a&<-12<.HIJ", /* (14) */
+/* TC 7: CBA.>67->89=a */
+ "ABC.>@67->89=a", /* (15) */
+ "a=89<-67<.ABC", /* (16) */
+ "a&=89<-67<.ABC", /* (17) */
+ "89<-67<.ABC=a", /* (18) */
+/* TC 8: CBA.123->xyz */
+ "123.ABC->xyz", /* (19) */
+ "xyz<-123.ABC", /* (20) */
+ "ABC.@123->xyz", /* (21) */
+ "xyz&<-123.ABC", /* (22) */
+/* TC 9: .>12->xyz */
+ ".>12->xyz", /* (23) */
+ "xyz<-12<.", /* (24) */
+ "xyz&<-12<.", /* (25) */
+/* TC 10: a.>67->xyz */
+ "a.>67->xyz", /* (26) */
+ "a.>@67@->xyz", /* (27) */
+ "xyz<-67<.a", /* (28) */
+/* TC 11: 123JIH */
+ "123HIJ", /* (29) */
+ "HIJ123", /* (30) */
+/* TC 12: 123 JIH */
+ "123 HIJ", /* (31) */
+ "HIJ 123", /* (32) */
+};
+
+#define NO UBIDI_MAP_NOWHERE
+#define MAX_MAP_LENGTH 20
+
+static const int32_t forwardMap[][MAX_MAP_LENGTH] = {
+/* TC 0: 123 */
+ { 0, 1, 2 }, /* (0) */
+/* TC 1: .123->4.5 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (1) */
+ { 8, 5, 6, 7, 4, 3, 0, 1, 2 }, /* (2) */
+/* TC 2: 678 */
+ { 0, 1, 2 }, /* (3) */
+/* TC 3: .678->8.9 */
+ { 0, 6, 7, 8, 5, 4, 1, 2, 3 }, /* (4) */
+ { 8, 5, 6, 7, 4, 3, 0, 1, 2 }, /* (5) */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (6) */
+/* TC 4: MLK1.2,3JIH */
+ { 10, 9, 8, 3, 4, 5, 6, 7, 2, 1, 0 }, /* (7) */
+/* TC 5: FE.>12-> */
+ { 5, 4, 3, 2, 0, 1, 6, 7 }, /* (8) */
+ { 7, 6, 5, 4, 2, 3, 1, 0 }, /* (9) */
+ { 1, 0, 2, 3, 5, 6, 7, 8 }, /* (10) */
+/* TC 6: JIH.>12->a */
+ { 6, 5, 4, 3, 2, 0, 1, 7, 8, 9 }, /* (11) */
+ { 9, 8, 7, 6, 5, 3, 4, 2, 1, 0 }, /* (12) */
+ { 2, 1, 0, 3, 4, 6, 7, 8, 9, 10 }, /* (13) */
+ { 10, 9, 8, 7, 6, 4, 5, 3, 2, 0 }, /* (14) */
+/* TC 7: CBA.>67->89=a */
+ { 2, 1, 0, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13 }, /* (15) */
+ { 12, 11, 10, 9, 8, 6, 7, 5, 4, 2, 3, 1, 0 }, /* (16) */
+ { 13, 12, 11, 10, 9, 7, 8, 6, 5, 3, 4, 2, 0 }, /* (17) */
+ { 10, 9, 8, 7, 6, 4, 5, 3, 2, 0, 1, 11, 12 }, /* (18) */
+/* TC 8: CBA.123->xyz */
+ { 6, 5, 4, 3, 0, 1, 2, 7, 8, 9, 10, 11 }, /* (19) */
+ { 11, 10, 9, 8, 5, 6, 7, 4, 3, 0, 1, 2 }, /* (20) */
+ { 2, 1, 0, 3, 5, 6, 7, 8, 9, 10, 11, 12 }, /* (21) */
+ { 12, 11, 10, 9, 6, 7, 8, 5, 4, 0, 1, 2 }, /* (22) */
+/* TC 9: .>12->xyz */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (23) */
+ { 8, 7, 5, 6, 4, 3, 0, 1, 2 }, /* (24) */
+ { 9, 8, 6, 7, 5, 4, 0, 1, 2 }, /* (25) */
+/* TC 10: a.>67->xyz */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, /* (26) */
+ { 0, 1, 2, 4, 5, 7, 8, 9, 10, 11 }, /* (27) */
+ { 9, 8, 7, 5, 6, 4, 3, 0, 1, 2 }, /* (28) */
+/* TC 11: 123JIH */
+ { 0, 1, 2, 5, 4, 3 }, /* (29) */
+ { 3, 4, 5, 2, 1, 0 }, /* (30) */
+/* TC 12: 123 JIH */
+ { 0, 1, 2, 3, 6, 5, 4 }, /* (31) */
+ { 4, 5, 6, 3, 2, 1, 0 }, /* (32) */
+};
+
+static const int32_t inverseMap[][MAX_MAP_LENGTH] = {
+/* TC 0: 123 */
+ { 0, 1, 2 }, /* (0) */
+/* TC 1: .123->4.5 */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (1) */
+ { 6, 7, 8, 5, 4, 1, 2, 3, 0 }, /* (2) */
+/* TC 2: 678 */
+ { 0, 1, 2 }, /* (3) */
+/* TC 3: .678->8.9 */
+ { 0, 6, 7, 8, 5, 4, 1, 2, 3 }, /* (4) */
+ { 6, 7, 8, 5, 4, 1, 2, 3, 0 }, /* (5) */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (6) */
+/* TC 4: MLK1.2,3JIH */
+ { 10, 9, 8, 3, 4, 5, 6, 7, 2, 1, 0 }, /* (7) */
+/* TC 5: FE.>12-> */
+ { 4, 5, 3, 2, 1, 0, 6, 7 }, /* (8) */
+ { 7, 6, 4, 5, 3, 2, 1, 0 }, /* (9) */
+ { 1, 0, 2, 3, NO, 4, 5, 6, 7 }, /* (10) */
+/* TC 6: JIH.>12->a */
+ { 5, 6, 4, 3, 2, 1, 0, 7, 8, 9 }, /* (11) */
+ { 9, 8, 7, 5, 6, 4, 3, 2, 1, 0 }, /* (12) */
+ { 2, 1, 0, 3, 4, NO, 5, 6, 7, 8, 9 }, /* (13) */
+ { 9, NO, 8, 7, 5, 6, 4, 3, 2, 1, 0 }, /* (14) */
+/* TC 7: CBA.>67->89=a */
+ { 2, 1, 0, 3, 4, NO, 5, 6, 7, 8, 9, 10, 11, 12 }, /* (15) */
+ { 12, 11, 9, 10, 8, 7, 5, 6, 4, 3, 2, 1, 0 }, /* (16) */
+ { 12, NO, 11, 9, 10, 8, 7, 5, 6, 4, 3, 2, 1, 0 }, /* (17) */
+ { 9, 10, 8, 7, 5, 6, 4, 3, 2, 1, 0, 11, 12 }, /* (18) */
+/* TC 8: CBA.123->xyz */
+ { 4, 5, 6, 3, 2, 1, 0, 7, 8, 9, 10, 11 }, /* (19) */
+ { 9, 10, 11, 8, 7, 4, 5, 6, 3, 2, 1, 0 }, /* (20) */
+ { 2, 1, 0, 3, NO, 4, 5, 6, 7, 8, 9, 10, 11 }, /* (21) */
+ { 9, 10, 11, NO, 8, 7, 4, 5, 6, 3, 2, 1, 0 }, /* (22) */
+/* TC 9: .>12->xyz */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8 }, /* (23) */
+ { 6, 7, 8, 5, 4, 2, 3, 1, 0 }, /* (24) */
+ { 6, 7, 8, NO, 5, 4, 2, 3, 1, 0 }, /* (25) */
+/* TC 10: a.>67->xyz */
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, /* (26) */
+ { 0, 1, 2, NO, 3, 4, NO, 5, 6, 7, 8, 9 }, /* (27) */
+ { 7, 8, 9, 6, 5, 3, 4, 2, 1, 0 }, /* (28) */
+/* TC 11: 123JIH */
+ { 0, 1, 2, 5, 4, 3 }, /* (29) */
+ { 5, 4, 3, 0, 1, 2 }, /* (30) */
+/* TC 12: 123 JIH */
+ { 0, 1, 2, 3, 6, 5, 4 }, /* (31) */
+ { 6, 5, 4, 3, 0, 1, 2 }, /* (32) */
+};
+
+static const char outIndices[TC_COUNT][MODES_COUNT - 1][OPTIONS_COUNT]
+ [LEVELS_COUNT] = {
+ { /* TC 0: 123 */
+ {{ 0, 0}, { 0, 0}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 0, 0}, { 0, 0}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 0, 0}, { 0, 0}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 0, 0}, { 0, 0}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 1: .123->4.5 */
+ {{ 1, 2}, { 1, 2}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 2}, { 1, 2}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 2}, { 1, 2}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 2}, { 1, 2}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 2: 678 */
+ {{ 3, 3}, { 3, 3}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 3, 3}, { 3, 3}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 3, 3}, { 3, 3}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 3, 3}, { 3, 3}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 3: .678->8.9 */
+ {{ 6, 5}, { 6, 5}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 4, 5}, { 4, 5}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 6, 5}, { 6, 5}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 6, 5}, { 6, 5}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 4: MLK1.2,3JIH */
+ {{ 7, 7}, { 7, 7}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 7, 7}, { 7, 7}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 7, 7}, { 7, 7}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 7, 7}, { 7, 7}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 5: FE.>12-> */
+ {{ 8, 9}, { 8, 9}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{10, 9}, { 8, 9}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 8, 9}, { 8, 9}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{10, 9}, { 8, 9}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 6: JIH.>12->a */
+ {{11, 12}, {11, 12}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{13, 14}, {11, 12}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{11, 12}, {11, 12}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{13, 14}, {11, 12}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 7: CBA.>67->89=a */
+ {{18, 16}, {18, 16}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{18, 17}, {18, 16}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{18, 16}, {18, 16}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{15, 17}, {18, 16}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 8: CBA.>124->xyz */
+ {{19, 20}, {19, 20}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{21, 22}, {19, 20}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{19, 20}, {19, 20}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{21, 22}, {19, 20}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 9: .>12->xyz */
+ {{23, 24}, {23, 24}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{23, 25}, {23, 24}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{23, 24}, {23, 24}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{23, 25}, {23, 24}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 10: a.>67->xyz */
+ {{26, 26}, {26, 26}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{26, 27}, {26, 28}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{26, 28}, {26, 28}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{26, 27}, {26, 28}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 11: 124JIH */
+ {{30, 30}, {30, 30}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{29, 30}, {29, 30}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{30, 30}, {30, 30}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{30, 30}, {30, 30}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ },
+ { /* TC 12: 124 JIH */
+ {{32, 32}, {32, 32}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{31, 32}, {31, 32}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{31, 32}, {31, 32}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{31, 32}, {31, 32}} /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ }
+};
+
+static UBool
+assertRoundTrip(UBiDi *pBiDi, int32_t tc, int32_t outIndex, const char *srcChars,
+ const char *destChars, const UChar *dest, int32_t destLen,
+ int mode, int option, UBiDiLevel level) {
+
+ static const char roundtrip[TC_COUNT][MODES_COUNT][OPTIONS_COUNT]
+ [LEVELS_COUNT] = {
+ { /* TC 0: 123 */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 1: .123->4.5 */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 2: 678 */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 3: .678->8.9 */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 0, 0}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 4: MLK1.2,3JIH */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 5: FE.>12-> */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 0, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 6: JIH.>12->a */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 0, 0}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 7: CBA.>67->89=a */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 0, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 0, 0}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 8: CBA.>123->xyz */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 0, 0}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 9: .>12->xyz */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 0}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 10: a.>67->xyz */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 0}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 11: 123JIH */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ },
+ { /* TC 12: 123 JIH */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_GROUP_NUMBERS_WITH_R */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_LIKE_DIRECT */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}}, /* UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL */
+ {{ 1, 1}, { 1, 1}} /* UBIDI_REORDER_INVERSE_NUMBERS_AS_L */
+ }
+ };
+
+ #define SET_ROUND_TRIP_MODE(mode) \
+ ubidi_setReorderingMode(pBiDi, mode); \
+ desc = #mode; \
+ break;
+
+ UErrorCode rc = U_ZERO_ERROR;
+ UChar dest2[MAXLEN];
+ int32_t destLen2;
+ const char* desc;
+ char destChars2[MAXLEN];
+ char destChars3[MAXLEN];
+
+ switch (modes[mode].value) {
+ case UBIDI_REORDER_NUMBERS_SPECIAL:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL)
+ case UBIDI_REORDER_GROUP_NUMBERS_WITH_R:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_GROUP_NUMBERS_WITH_R)
+ case UBIDI_REORDER_RUNS_ONLY:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_RUNS_ONLY)
+ case UBIDI_REORDER_INVERSE_NUMBERS_AS_L:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_DEFAULT)
+ case UBIDI_REORDER_INVERSE_LIKE_DIRECT:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_DEFAULT)
+ case UBIDI_REORDER_INVERSE_FOR_NUMBERS_SPECIAL:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_NUMBERS_SPECIAL)
+ default:
+ SET_ROUND_TRIP_MODE(UBIDI_REORDER_INVERSE_LIKE_DIRECT)
+ }
+ ubidi_setReorderingOptions(pBiDi, UBIDI_OPTION_REMOVE_CONTROLS);
+
+ ubidi_setPara(pBiDi, dest, destLen, level, NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+ *dest2 = 0;
+ destLen2 = ubidi_writeReordered(pBiDi, dest2, MAXLEN, UBIDI_DO_MIRRORING,
+ &rc);
+ assertSuccessful("ubidi_writeReordered", &rc);
+
+ u16ToPseudo(destLen, dest, destChars3);
+ u16ToPseudo(destLen2, dest2, destChars2);
+ if (strcmp(srcChars, destChars2)) {
+ if (roundtrip[tc][mode][option][level]) {
+ log_err("\nRound trip failed for case=%d mode=%d option=%d.\n"
+ "%20s %s\n%20s %s\n%20s %s\n%20s %s\n%20s %s"
+ "\n%20s %u\n", tc, mode, option,
+ "Original text:", srcChars,
+ "Round-tripped text:", destChars2,
+ "Intermediate text:", destChars3,
+ "Reordering mode:", modes[mode].description,
+ "Reordering option:", options[option].description,
+ "Paragraph level:", level);
+ }
+ else {
+ log_verbose("\nExpected round trip failure for case=%d mode=%d option=%d.\n"
+ "%20s %s\n%20s %s\n%20s %s\n%20s %s\n%20s %s"
+ "\n%20s %u\n", tc, mode, option,
+ "Original text:", srcChars,
+ "Round-tripped text:", destChars2,
+ "Intermediate text:", destChars3,
+ "Reordering mode:", modes[mode].description,
+ "Reordering option:", options[option].description,
+ "Paragraph level:", level);
+ }
+ return FALSE;
+ }
+ if (!checkResultLength(pBiDi, destChars, destChars2, dest2, destLen2,
+ desc, "UBIDI_OPTION_REMOVE_CONTROLS", level)) {
+ return FALSE;
+ }
+ if (outIndex > -1 && !testMaps(pBiDi, outIndex, srcChars, destChars,
+ desc, "UBIDI_OPTION_REMOVE_CONTROLS",
+ level, FALSE)) {
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static UBool
+checkResultLength(UBiDi *pBiDi, const char *srcChars, const char *destChars,
+ const UChar *dest, int32_t destLen, const char* mode,
+ const char* option, UBiDiLevel level) {
+ int32_t actualLen;
+ if (strcmp(mode, "UBIDI_REORDER_INVERSE_NUMBERS_AS_L") == 0)
+ actualLen = strlen(destChars);
+ else
+ actualLen = ubidi_getResultLength(pBiDi);
+ if (actualLen != destLen) {
+ log_err("\nubidi_getResultLength failed.\n%20s %7d\n%20s %7d\n"
+ "%20s %s\n%20s %s\n%20s %s\n%20s %s\n%20s %u\n",
+ "Expected:", destLen, "Actual:", actualLen,
+ "Input:", srcChars, "Output:", destChars,
+ "Reordering mode:", mode, "Reordering option:", option,
+ "Paragraph level:", level);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void
+doReorderRunsTest(void) {
+ static const struct {
+ const char* textIn;
+ const char* textOut[2][2];
+ const char noroundtrip[2];
+ } testCases[] = {
+ {"ab 234 896 de", {{"de 896 ab 234", "de 896 ab 234"},
+ {"ab 234 @896@ de", "de 896 ab 234"}}, {0, 0}},
+ {"abcGHI", {{"GHIabc", "GHIabc"}, {"GHIabc", "GHIabc"}}, {0, 0}},
+ {"a.>67->", {{"<-67<.a", "<-67<.a"}, {"<-67<.a", "<-67<.a"}}, {0, 0}},
+ {"-=%$123/ *", {{"* /%$123=-", "* /%$123=-"},
+ {"* /%$123=-", "* /%$123=-"}}, {0, 0}},
+ {"abc->12..>JKL", {{"JKL<..12<-abc", "JKL<..abc->12"},
+ {"JKL<..12<-abc", "JKL<..abc->12"}}, {0, 0}},
+ {"JKL->12..>abc", {{"abc<..JKL->12", "abc<..12<-JKL"},
+ {"abc<..JKL->12", "abc<..12<-JKL"}}, {0, 0}},
+ {"123->abc", {{"abc<-123", "abc<-123"},
+ {"abc&<-123", "abc<-123"}}, {1, 0}},
+ {"123->JKL", {{"JKL<-123", "123->JKL"},
+ {"JKL<-123", "JKL<-@123"}}, {0, 1}},
+ {"*>12.>34->JKL", {{"JKL<-34<.12<*", "12.>34->JKL<*"},
+ {"JKL<-34<.12<*", "JKL<-@34<.12<*"}}, {0, 1}},
+ {"*>67.>89->JKL", {{"67.>89->JKL<*", "67.>89->JKL<*"},
+ {"67.>89->JKL<*", "67.>89->JKL<*"}}, {0, 0}},
+ {"* /abc-=$%123", {{"$%123=-abc/ *", "abc-=$%123/ *"},
+ {"$%123=-abc/ *", "abc-=$%123/ *"}}, {0, 0}},
+ {"* /$%def-=123", {{"123=-def%$/ *", "def-=123%$/ *"},
+ {"123=-def%$/ *", "def-=123%$/ *"}}, {0, 0}},
+ {"-=GHI* /123%$", {{"GHI* /123%$=-", "123%$/ *GHI=-"},
+ {"GHI* /123%$=-", "123%$/ *GHI=-"}}, {0, 0}},
+ {"-=%$JKL* /123", {{"JKL* /%$123=-", "123/ *JKL$%=-"},
+ {"JKL* /%$123=-", "123/ *JKL$%=-"}}, {0, 0}},
+ {"ab =#CD *?450", {{"CD *?450#= ab", "450?* CD#= ab"},
+ {"CD *?450#= ab", "450?* CD#= ab"}}, {0, 0}},
+ {"ab 234 896 de", {{"de 896 ab 234", "de 896 ab 234"},
+ {"ab 234 @896@ de", "de 896 ab 234"}}, {0, 0}},
+ {"abc-=%$LMN* /123", {{"LMN* /%$123=-abc", "123/ *LMN$%=-abc"},
+ {"LMN* /%$123=-abc", "123/ *LMN$%=-abc"}}, {0, 0}},
+ {"123->JKL&MN&P", {{"JKLMNP<-123", "123->JKLMNP"},
+ {"JKLMNP<-123", "JKLMNP<-@123"}}, {0, 1}}
+ };
+ UBiDi *pBiDi = getBiDiObject();
+ UBiDi *pL2VBiDi = getBiDiObject();
+ UChar src[MAXLEN], dest[MAXLEN], visual1[MAXLEN], visual2[MAXLEN];
+ char destChars[MAXLEN], vis1Chars[MAXLEN], vis2Chars[MAXLEN];
+ int32_t srcLen, destLen, vis1Len, vis2Len, option, i, j, nCases;
+ UErrorCode rc = U_ZERO_ERROR;
+ UBiDiLevel level;
+ if(!pL2VBiDi) {
+ ubidi_close(pBiDi); /* in case this one was allocated */
+ return;
+ }
+ ubidi_setReorderingMode(pBiDi, UBIDI_REORDER_RUNS_ONLY);
+ ubidi_setReorderingOptions(pL2VBiDi, UBIDI_OPTION_REMOVE_CONTROLS);
+
+ for (option = 0; option < 2; option++) {
+ ubidi_setReorderingOptions(pBiDi, option==0 ? UBIDI_OPTION_REMOVE_CONTROLS
+ : UBIDI_OPTION_INSERT_MARKS);
+ for (i = 0, nCases = LENGTHOF(testCases); i < nCases; i++) {
+ srcLen = strlen(testCases[i].textIn);
+ pseudoToU16(srcLen, testCases[i].textIn, src);
+ for(j = 0; j < 2; j++) {
+ level = paraLevels[j];
+ ubidi_setPara(pBiDi, src, srcLen, level, NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+ *dest = 0;
+ destLen = ubidi_writeReordered(pBiDi, dest, MAXLEN, UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered", &rc);
+ u16ToPseudo(destLen, dest, destChars);
+ assertStringsEqual(testCases[i].textOut[option][level], destChars,
+ testCases[i].textIn, "UBIDI_REORDER_RUNS_ONLY",
+ option==0 ? "0" : "UBIDI_OPTION_INSERT_MARKS",
+ pBiDi);
+
+ if((option==0) && testCases[i].noroundtrip[level]) {
+ continue;
+ }
+ ubidi_setPara(pL2VBiDi, src, srcLen, level, NULL, &rc);
+ assertSuccessful("ubidi_setPara1", &rc);
+ *visual1 = 0;
+ vis1Len = ubidi_writeReordered(pL2VBiDi, visual1, MAXLEN, UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered1", &rc);
+ u16ToPseudo(vis1Len, visual1, vis1Chars);
+ ubidi_setPara(pL2VBiDi, dest, destLen, level^1, NULL, &rc);
+ assertSuccessful("ubidi_setPara2", &rc);
+ *visual2 = 0;
+ vis2Len = ubidi_writeReordered(pL2VBiDi, visual2, MAXLEN, UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered2", &rc);
+ u16ToPseudo(vis2Len, visual2, vis2Chars);
+ assertStringsEqual(vis1Chars, vis2Chars,
+ testCases[i].textIn, "UBIDI_REORDER_RUNS_ONLY (2)",
+ option==0 ? "0" : "UBIDI_OPTION_INSERT_MARKS",
+ pBiDi);
+ }
+ }
+ }
+ ubidi_close(pBiDi);
+ ubidi_close(pL2VBiDi);
+}
+
+static void
+doReorderingModeBidiTest() {
+
+ UChar src[MAXLEN], dest[MAXLEN];
+ char destChars[MAXLEN];
+ UBiDi *pBiDi = NULL, *pBiDi2 = NULL, *pBiDi3 = NULL;
+ UErrorCode rc;
+ int tc, mode, option, level;
+ uint32_t modeValue, modeBack, optionValue, optionBack;
+ int32_t srcLen, destLen, index;
+ const char *expectedChars;
+ UBool testOK = TRUE;
+
+ log_verbose("\n*** Bidi reordering mode test ***\n");
+
+ pBiDi = getBiDiObject();
+ pBiDi2 = getBiDiObject();
+ pBiDi3 = getBiDiObject();
+ if(!pBiDi3) {
+ ubidi_close(pBiDi); /* in case this one was allocated */
+ ubidi_close(pBiDi2); /* in case this one was allocated */
+ return;
+ }
+
+ ubidi_setInverse(pBiDi2, TRUE);
+
+ for (tc = 0; tc < TC_COUNT; tc++) {
+ const char* srcChars = textIn[tc];
+ srcLen = strlen(srcChars);
+ pseudoToU16(srcLen, srcChars, src);
+
+ for (mode = 0; mode < MODES_COUNT; mode++) {
+ modeValue = modes[mode].value;
+ ubidi_setReorderingMode(pBiDi, modeValue);
+ modeBack = ubidi_getReorderingMode(pBiDi);
+ if (modeValue != modeBack) {
+ log_err("Error while setting reordering mode to %d, returned %d\n",
+ modeValue, modeBack);
+ }
+
+ for (option = 0; option < OPTIONS_COUNT; option++) {
+ optionValue = options[option].value;
+ ubidi_setReorderingOptions(pBiDi, optionValue);
+ optionBack = ubidi_getReorderingOptions(pBiDi);
+ if (optionValue != optionBack) {
+ log_err("Error while setting reordering option to %d, returned %d\n",
+ optionValue, optionBack);
+ }
+
+ for (level = 0; level < LEVELS_COUNT; level++) {
+ log_verbose("starting test %d mode=%d option=%d level=%d\n",
+ tc, modes[mode].value, options[option].value, level);
+ rc = U_ZERO_ERROR;
+ ubidi_setPara(pBiDi, src, srcLen, paraLevels[level], NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+
+ *dest = 0;
+ destLen = ubidi_writeReordered(pBiDi, dest, MAXLEN,
+ UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered", &rc);
+ u16ToPseudo(destLen, dest, destChars);
+
+ if (modes[mode].value == UBIDI_REORDER_INVERSE_NUMBERS_AS_L) {
+ index = -1;
+ expectedChars = inverseBasic(pBiDi2, src, srcLen,
+ options[option].value, paraLevels[level], destChars);
+ }
+ else {
+ index = outIndices[tc][mode][option][level];
+ expectedChars = textOut[index];
+ }
+ if (!assertStringsEqual(expectedChars, destChars, srcChars,
+ modes[mode].description,
+ options[option].description,
+ pBiDi)) {
+ testOK = FALSE;
+ }
+ else if (options[option].value == UBIDI_OPTION_INSERT_MARKS &&
+ !assertRoundTrip(pBiDi3, tc, index, srcChars,
+ destChars, dest, destLen,
+ mode, option, paraLevels[level])) {
+ testOK = FALSE;
+ }
+ else if (!checkResultLength(pBiDi, srcChars, destChars,
+ dest, destLen, modes[mode].description,
+ options[option].description,
+ paraLevels[level])) {
+ testOK = FALSE;
+ }
+ else if (index > -1 && !testMaps(pBiDi, index, srcChars,
+ destChars, modes[mode].description,
+ options[option].description, paraLevels[level],
+ TRUE)) {
+ testOK = FALSE;
+ }
+ }
+ }
+ }
+ }
+ if (testOK == TRUE) {
+ log_verbose("\nReordering mode test OK\n");
+ }
+ ubidi_close(pBiDi3);
+ ubidi_close(pBiDi2);
+ ubidi_close(pBiDi);
+}
+
+static const char* inverseBasic(UBiDi *pBiDi, const UChar *src, int32_t srcLen,
+ uint32_t option, UBiDiLevel level, char *result) {
+ UErrorCode rc = U_ZERO_ERROR;
+ int32_t destLen;
+ UChar dest2 [MAXLEN];
+
+ if (pBiDi == NULL || src == NULL) {
+ return NULL;
+ }
+ ubidi_setReorderingOptions(pBiDi, option);
+ ubidi_setPara(pBiDi, src, srcLen, level, NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+
+ *dest2 = 0;
+ destLen = ubidi_writeReordered(pBiDi, dest2, MAXLEN,
+ UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered", &rc);
+ u16ToPseudo(destLen, dest2, result);
+ return result;
+}
+
+#define NULL_CHAR '\0'
+
+static void
+doBidiStreamingTest() {
+#define MAXPORTIONS 10
+
+ static const struct {
+ const char* textIn;
+ short int chunk;
+ short int nPortions[2];
+ char portionLens[2][MAXPORTIONS];
+ const char* message[2];
+ } testData[] = {
+ { "123\\u000A"
+ "abc45\\u000D"
+ "67890\\u000A"
+ "\\u000D"
+ "02468\\u000D"
+ "ghi",
+ 6, { 6, 6 }, {{ 6, 4, 6, 1, 6, 3}, { 4, 6, 6, 1, 6, 3 }},
+ {"6, 4, 6, 1, 6, 3", "4, 6, 6, 1, 6, 3"}
+ },
+ { "abcd\\u000Afgh\\u000D12345\\u000A456",
+ 6, { 4, 4 }, {{ 6, 3, 6, 3 }, { 5, 4, 6, 3 }},
+ {"6, 3, 6, 3", "5, 4, 6, 3"}
+ },
+ { "abcd\\u000Afgh\\u000D12345\\u000A45\\u000D",
+ 6, { 4, 4 }, {{ 6, 3, 6, 3 }, { 5, 4, 6, 3 }},
+ {"6, 3, 6, 3", "5, 4, 6, 3"}
+ },
+ { "abcde\\u000Afghi",
+ 10, { 1, 2 }, {{ 10 }, { 6, 4 }},
+ {"10", "6, 4"}
+ }
+ };
+ UChar src[MAXLEN];
+ UBiDi *pBiDi = NULL;
+ UChar *pSrc;
+ UErrorCode rc = U_ZERO_ERROR;
+ int32_t srcLen, processedLen, chunk, len, nPortions;
+ int i, j, levelIndex;
+ UBiDiLevel level;
+ int nTests = LENGTHOF(testData), nLevels = LENGTHOF(paraLevels);
+ UBool mismatch, testOK = TRUE;
+ char processedLenStr[MAXPORTIONS * 5];
+
+ log_verbose("\n*** Bidi streaming test ***\n");
+
+ pBiDi = getBiDiObject();
+
+ ubidi_orderParagraphsLTR(pBiDi, TRUE);
+
+ for (levelIndex = 0; levelIndex < nLevels; levelIndex++) {
+ for (i = 0; i < nTests; i++) {
+ srcLen = u_unescape(testData[i].textIn, src, MAXLEN);
+ chunk = testData[i].chunk;
+ nPortions = testData[i].nPortions[levelIndex];
+ level = paraLevels[levelIndex];
+ *processedLenStr = NULL_CHAR;
+
+ mismatch = FALSE;
+
+ ubidi_setReorderingOptions(pBiDi, UBIDI_OPTION_STREAMING);
+ for (j = 0, pSrc = src; j < MAXPORTIONS && srcLen > 0; j++) {
+
+ len = chunk < srcLen ? chunk : srcLen;
+ ubidi_setPara(pBiDi, pSrc, len, level, NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+
+ processedLen = ubidi_getProcessedLength(pBiDi);
+ if (processedLen == 0) {
+ ubidi_setReorderingOptions(pBiDi, UBIDI_OPTION_DEFAULT);
+ j--;
+ continue;
+ }
+ ubidi_setReorderingOptions(pBiDi, UBIDI_OPTION_STREAMING);
+
+ mismatch = j >= nPortions ||
+ processedLen != testData[i].portionLens[levelIndex][j];
+
+ sprintf(processedLenStr + j * 4, "%4d", processedLen);
+ srcLen -= processedLen, pSrc += processedLen;
+ }
+
+ if (mismatch || j != nPortions) {
+ testOK = FALSE;
+ log_err("\nProcessed lengths mismatch.\n"
+ "\tParagraph level: %u\n"
+ "\tInput string: %s\n"
+ "\tActually processed portion lengths: { %s }\n"
+ "\tExpected portion lengths : { %s }\n",
+ paraLevels[levelIndex], testData[i].textIn,
+ processedLenStr, testData[i].message[levelIndex]);
+ }
+ }
+ }
+ ubidi_close(pBiDi);
+ if (testOK == TRUE) {
+ log_verbose("\nBiDi streaming test OK\n");
+ }
+}
+
+U_CDECL_BEGIN
+
+static UCharDirection U_CALLCONV
+overrideBidiClass(const void *context, UChar32 c) {
+
+#define DEF U_BIDI_CLASS_DEFAULT
+
+ static const UCharDirection customClasses[] = {
+ /* 0/8 1/9 2/A 3/B 4/C 5/D 6/E 7/F */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 00-07 */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 08-0F */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 10-17 */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 18-1F */
+ DEF, DEF, DEF, DEF, DEF, DEF, R, DEF, /* 20-27 */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 28-2F */
+ EN, EN, EN, EN, EN, EN, AN, AN, /* 30-37 */
+ AN, AN, DEF, DEF, DEF, DEF, DEF, DEF, /* 38-3F */
+ L, AL, AL, AL, AL, AL, AL, R, /* 40-47 */
+ R, R, R, R, R, R, R, R, /* 48-4F */
+ R, R, R, R, R, R, R, R, /* 50-57 */
+ R, R, R, LRE, DEF, RLE, PDF, S, /* 58-5F */
+ NSM, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 60-67 */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 68-6F */
+ DEF, DEF, DEF, DEF, DEF, DEF, DEF, DEF, /* 70-77 */
+ DEF, DEF, DEF, LRO, B, RLO, BN, DEF /* 78-7F */
+ };
+ static const int nEntries = LENGTHOF(customClasses);
+
+ return c >= nEntries ? U_BIDI_CLASS_DEFAULT : customClasses[c];
+}
+
+U_CDECL_END
+
+static void verifyCallbackParams(UBiDiClassCallback* fn, const void* context,
+ UBiDiClassCallback* expectedFn,
+ const void* expectedContext,
+ int32_t sizeOfContext) {
+ if (fn != expectedFn) {
+ log_err("Class callback pointer is not set properly.\n");
+ }
+ if (context != expectedContext) {
+ log_err("Class callback context is not set properly.\n");
+ }
+ else if (context != NULL &&
+ memcmp(context, expectedContext, sizeOfContext)) {
+ log_err("Callback context content doesn't match the expected one.\n");
+ }
+}
+
+static void doBidiClassOverrideTest(void) {
+ static const char* const textSrc = "JIH.>12->a \\u05D0\\u05D1 6 ABC78";
+ static const char* const textResult = "12<.HIJ->a 78CBA 6 \\u05D1\\u05D0";
+
+ UChar src[MAXLEN], dest[MAXLEN];
+ UErrorCode rc = U_ZERO_ERROR;
+ UBiDi *pBiDi = NULL;
+ UBiDiClassCallback* oldFn = NULL;
+ UBiDiClassCallback* newFn = overrideBidiClass;
+ const void* oldContext = NULL;
+ int32_t srcLen, destLen, textSrcSize = (int32_t)uprv_strlen(textSrc);
+ char* destChars = NULL;
+
+ log_verbose("\n*** Bidi class override test ***\n");
+
+ pBiDi = getBiDiObject();
+ if(!pBiDi) {
+ return;
+ }
+
+ ubidi_getClassCallback(pBiDi, &oldFn, &oldContext);
+ verifyCallbackParams(oldFn, oldContext, NULL, NULL, 0);
+
+ ubidi_setClassCallback(pBiDi, newFn, textSrc, &oldFn, &oldContext, &rc);
+ if (!assertSuccessful("ubidi_setClassCallback", &rc)) {
+ ubidi_close(pBiDi);
+ return;
+ }
+ verifyCallbackParams(oldFn, oldContext, NULL, NULL, 0);
+
+ ubidi_getClassCallback(pBiDi, &oldFn, &oldContext);
+ verifyCallbackParams(oldFn, oldContext, newFn, textSrc, textSrcSize);
+
+ ubidi_setClassCallback(pBiDi, newFn, textSrc, &oldFn, &oldContext, &rc);
+ if (!assertSuccessful("ubidi_setClassCallback", &rc)) {
+ ubidi_close(pBiDi);
+ return;
+ }
+ verifyCallbackParams(oldFn, oldContext, newFn, textSrc, textSrcSize);
+
+ srcLen = u_unescape(textSrc, src, MAXLEN);
+ ubidi_setPara(pBiDi, src, srcLen, UBIDI_LTR, NULL, &rc);
+ assertSuccessful("ubidi_setPara", &rc);
+
+ destLen = ubidi_writeReordered(pBiDi, dest, MAXLEN,
+ UBIDI_DO_MIRRORING, &rc);
+ assertSuccessful("ubidi_writeReordered", &rc);
+
+ destChars = aescstrdup(dest, destLen);
+ if (uprv_strcmp(textResult, destChars)) {
+ log_err("\nActual and expected output mismatch.\n"
+ "%20s %s\n%20s %s\n%20s %s\n",
+ "Input:", textSrc, "Actual output:", destChars,
+ "Expected output:", textResult);
+ }
+ else {
+ log_verbose("\nClass override test OK\n");
+ }
+ ubidi_close(pBiDi);
+}
+
+static char * formatMap(const int32_t * map, int len, char * buffer)
+{
+ int32_t i, k;
+ char c;
+ for (i = 0; i < len; i++) {
+ k = map[i];
+ if (k < 0)
+ c = '-';
+ else if (k >= sizeof columns)
+ c = '+';
+ else
+ c = columns[k];
+ buffer[i] = c;
+ }
+ buffer[len] = '\0';
+ return buffer;
+}
+
+static UBool
+testMaps(UBiDi *pBiDi, int32_t stringIndex, const char *src, const char *dest,
+ const char *mode, const char* option, UBiDiLevel level, UBool forward)
+{
+ int32_t actualLogicalMap[MAX_MAP_LENGTH];
+ int32_t actualVisualMap[MAX_MAP_LENGTH];
+ int32_t getIndexMap[MAX_MAP_LENGTH];
+ int32_t i, srcLen, resLen, index;
+ const int32_t *expectedLogicalMap, *expectedVisualMap;
+ UErrorCode rc = U_ZERO_ERROR;
+ UBool testOK = TRUE;
+
+ if (forward) {
+ expectedLogicalMap = forwardMap[stringIndex];
+ expectedVisualMap = inverseMap[stringIndex];
+ }
+ else {
+ expectedLogicalMap = inverseMap[stringIndex];
+ expectedVisualMap = forwardMap[stringIndex];
+ }
+ ubidi_getLogicalMap(pBiDi, actualLogicalMap, &rc);
+ if (!assertSuccessful("ubidi_getLogicalMap", &rc)) {
+ testOK = FALSE;
+ }
+ srcLen = ubidi_getProcessedLength(pBiDi);
+ if (memcmp(expectedLogicalMap, actualLogicalMap, srcLen * sizeof(int32_t))) {
+ char expChars[MAX_MAP_LENGTH];
+ char actChars[MAX_MAP_LENGTH];
+ log_err("\nubidi_getLogicalMap() returns unexpected map for output string "
+ "index %d\n"
+ "source: %s\n"
+ "dest : %s\n"
+ "Scale : %s\n"
+ "ExpMap: %s\n"
+ "Actual: %s\n"
+ "Paragraph level : %d == %d\n"
+ "Reordering mode : %s == %d\n"
+ "Reordering option: %s == %d\n"
+ "Forward flag : %d\n",
+ stringIndex, src, dest, columns,
+ formatMap(expectedLogicalMap, srcLen, expChars),
+ formatMap(actualLogicalMap, srcLen, actChars),
+ level, ubidi_getParaLevel(pBiDi),
+ mode, ubidi_getReorderingMode(pBiDi),
+ option, ubidi_getReorderingOptions(pBiDi),
+ forward
+ );
+ testOK = FALSE;
+ }
+ resLen = ubidi_getResultLength(pBiDi);
+ ubidi_getVisualMap(pBiDi, actualVisualMap, &rc);
+ assertSuccessful("ubidi_getVisualMap", &rc);
+ if (memcmp(expectedVisualMap, actualVisualMap, resLen * sizeof(int32_t))) {
+ char expChars[MAX_MAP_LENGTH];
+ char actChars[MAX_MAP_LENGTH];
+ log_err("\nubidi_getVisualMap() returns unexpected map for output string "
+ "index %d\n"
+ "source: %s\n"
+ "dest : %s\n"
+ "Scale : %s\n"
+ "ExpMap: %s\n"
+ "Actual: %s\n"
+ "Paragraph level : %d == %d\n"
+ "Reordering mode : %s == %d\n"
+ "Reordering option: %s == %d\n"
+ "Forward flag : %d\n",
+ stringIndex, src, dest, columns,
+ formatMap(expectedVisualMap, resLen, expChars),
+ formatMap(actualVisualMap, resLen, actChars),
+ level, ubidi_getParaLevel(pBiDi),
+ mode, ubidi_getReorderingMode(pBiDi),
+ option, ubidi_getReorderingOptions(pBiDi),
+ forward
+ );
+ testOK = FALSE;
+ }
+ for (i = 0; i < srcLen; i++) {
+ index = ubidi_getVisualIndex(pBiDi, i, &rc);
+ assertSuccessful("ubidi_getVisualIndex", &rc);
+ getIndexMap[i] = index;
+ }
+ if (memcmp(actualLogicalMap, getIndexMap, srcLen * sizeof(int32_t))) {
+ char actChars[MAX_MAP_LENGTH];
+ char gotChars[MAX_MAP_LENGTH];
+ log_err("\nMismatch between ubidi_getLogicalMap and ubidi_getVisualIndex for output string "
+ "index %d\n"
+ "source: %s\n"
+ "dest : %s\n"
+ "Scale : %s\n"
+ "ActMap: %s\n"
+ "IdxMap: %s\n"
+ "Paragraph level : %d == %d\n"
+ "Reordering mode : %s == %d\n"
+ "Reordering option: %s == %d\n"
+ "Forward flag : %d\n",
+ stringIndex, src, dest, columns,
+ formatMap(actualLogicalMap, srcLen, actChars),
+ formatMap(getIndexMap, srcLen, gotChars),
+ level, ubidi_getParaLevel(pBiDi),
+ mode, ubidi_getReorderingMode(pBiDi),
+ option, ubidi_getReorderingOptions(pBiDi),
+ forward
+ );
+ testOK = FALSE;
+ }
+ for (i = 0; i < resLen; i++) {
+ index = ubidi_getLogicalIndex(pBiDi, i, &rc);
+ assertSuccessful("ubidi_getLogicalIndex", &rc);
+ getIndexMap[i] = index;
+ }
+ if (memcmp(actualVisualMap, getIndexMap, resLen * sizeof(int32_t))) {
+ char actChars[MAX_MAP_LENGTH];
+ char gotChars[MAX_MAP_LENGTH];
+ log_err("\nMismatch between ubidi_getVisualMap and ubidi_getLogicalIndex for output string "
+ "index %d\n"
+ "source: %s\n"
+ "dest : %s\n"
+ "Scale : %s\n"
+ "ActMap: %s\n"
+ "IdxMap: %s\n"
+ "Paragraph level : %d == %d\n"
+ "Reordering mode : %s == %d\n"
+ "Reordering option: %s == %d\n"
+ "Forward flag : %d\n",
+ stringIndex, src, dest, columns,
+ formatMap(actualVisualMap, resLen, actChars),
+ formatMap(getIndexMap, resLen, gotChars),
+ level, ubidi_getParaLevel(pBiDi),
+ mode, ubidi_getReorderingMode(pBiDi),
+ option, ubidi_getReorderingOptions(pBiDi),
+ forward
+ );
+ testOK = FALSE;
+ }
+ return testOK;
+}
+
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ccaltst.c b/Build/source/libs/icu-xetex/test/cintltst/ccaltst.c
index fd1e14ef253..08a81699e38 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/ccaltst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/ccaltst.c
@@ -1,16 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
-/********************************************************************************
+/******************************************************************************
*
* File CCALTST.C
*
* Modification History:
* Name Description
* Madhu Katragadda Creation
-*********************************************************************************/
+*******************************************************************************/
/* C API AND FUNCTIONALITY TEST FOR CALENDAR (ucol.h)*/
@@ -28,6 +28,8 @@
#include "ccaltst.h"
#include "cformtst.h"
+void TestGregorianChange(void);
+
void addCalTest(TestNode** root);
void addCalTest(TestNode** root)
@@ -40,7 +42,7 @@ void addCalTest(TestNode** root)
addTest(root, &TestGetLimits, "tsformat/ccaltst/TestGetLimits");
addTest(root, &TestDOWProgression, "tsformat/ccaltst/TestDOWProgression");
addTest(root, &TestGMTvsLocal, "tsformat/ccaltst/TestGMTvsLocal");
-
+ addTest(root, &TestGregorianChange, "tsformat/ccaltst/TestGregorianChange");
}
/* "GMT" */
@@ -894,7 +896,7 @@ static void TestGetLimits()
val = ucal_get(cal, UCAL_DAY_OF_WEEK, &status);
min = ucal_getLimit(cal, UCAL_DAY_OF_WEEK, UCAL_MINIMUM, &status);
max = ucal_getLimit(cal, UCAL_DAY_OF_WEEK, UCAL_MAXIMUM, &status);
- if ( (min != UCAL_SUNDAY || max != UCAL_SATURDAY ) && (min > val > max) && (val != UCAL_FRIDAY)){
+ if ( (min != UCAL_SUNDAY || max != UCAL_SATURDAY ) && (min > val && val > max) && (val != UCAL_FRIDAY)){
log_err("FAIL: Min/max bad\n");
log_err("FAIL: Day of week %d out of range\n", val);
log_err("FAIL: FAIL: Day of week should be SUNDAY Got %d\n", val);
@@ -905,7 +907,7 @@ static void TestGetLimits()
val = ucal_get(cal, UCAL_DAY_OF_WEEK_IN_MONTH, &status);
min = ucal_getLimit(cal, UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_MINIMUM, &status);
max = ucal_getLimit(cal, UCAL_DAY_OF_WEEK_IN_MONTH, UCAL_MAXIMUM, &status);
- if ( (min != 0 || max != 5 ) && (min > val > max) && (val != 1)){
+ if ( (min != 0 || max != 5 ) && (min > val && val > max) && (val != 1)){
log_err("FAIL: Min/max bad\n");
log_err("FAIL: Day of week in month %d out of range\n", val);
log_err("FAIL: FAIL: Day of week in month should be SUNDAY Got %d\n", val);
@@ -937,7 +939,7 @@ static void TestGetLimits()
ac_min=ucal_getLimit(cal, UCAL_MINUTE, UCAL_ACTUAL_MINIMUM, &status);
ac_max=ucal_getLimit(cal, UCAL_SECOND, UCAL_ACTUAL_MAXIMUM, &status);
if( (min!=0 || max!= 11 || gr_min!=0 || le_max!=60 || ac_min!=0 || ac_max!=60) &&
- (min>val>max) && val!=4){
+ (min>val && val>max) && val!=4){
log_err("FAIL: Min/max bad\n");
log_err("FAIL: Hour of Day %d out of range\n", val);
@@ -1273,4 +1275,50 @@ static void verify2(const char* msg, UCalendar* c, UDateFormat* dat, int32_t yea
}
+void TestGregorianChange() {
+ static const UChar utc[] = { 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0 }; /* "Etc/GMT" */
+ const int32_t dayMillis = 86400 * INT64_C(1000); /* 1 day = 86400 seconds */
+ UCalendar *cal;
+ UDate date;
+ UErrorCode errorCode = U_ZERO_ERROR;
+
+ /* Test ucal_setGregorianChange() on a Gregorian calendar. */
+ errorCode = U_ZERO_ERROR;
+ cal = ucal_open(utc, -1, "", UCAL_GREGORIAN, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucal_open(UTC) failed: %s\n", u_errorName(errorCode));
+ return;
+ }
+ ucal_setGregorianChange(cal, -365 * (dayMillis * (UDate)1), &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucal_setGregorianChange(1969) failed: %s\n", u_errorName(errorCode));
+ } else {
+ date = ucal_getGregorianChange(cal, &errorCode);
+ if(U_FAILURE(errorCode) || date != -365 * (dayMillis * (UDate)1)) {
+ log_err("ucal_getGregorianChange() failed: %s, date = %f\n", u_errorName(errorCode), date);
+ }
+ }
+ ucal_close(cal);
+
+ /* Test ucal_setGregorianChange() on a non-Gregorian calendar where it should fail. */
+ errorCode = U_ZERO_ERROR;
+ cal = ucal_open(utc, -1, "th@calendar=buddhist", UCAL_TRADITIONAL, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucal_open(UTC, non-Gregorian) failed: %s\n", u_errorName(errorCode));
+ return;
+ }
+ ucal_setGregorianChange(cal, -730 * (dayMillis * (UDate)1), &errorCode);
+ if(errorCode != U_UNSUPPORTED_ERROR) {
+ log_err("ucal_setGregorianChange(non-Gregorian calendar) did not yield U_UNSUPPORTED_ERROR but %s\n",
+ u_errorName(errorCode));
+ }
+ errorCode = U_ZERO_ERROR;
+ date = ucal_getGregorianChange(cal, &errorCode);
+ if(errorCode != U_UNSUPPORTED_ERROR) {
+ log_err("ucal_getGregorianChange(non-Gregorian calendar) did not yield U_UNSUPPORTED_ERROR but %s\n",
+ u_errorName(errorCode));
+ }
+ ucal_close(cal);
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ccapitst.c b/Build/source/libs/icu-xetex/test/cintltst/ccapitst.c
index dfe75b05f35..daa73bd5aeb 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/ccapitst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/ccapitst.c
@@ -1,16 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
-/********************************************************************************
+/*******************************************************************************
*
* File CU_CAPITST.C
*
* Modification History:
* Name Description
* Madhu Katragadda Ported for C API
-*********************************************************************************
+********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
@@ -22,6 +22,7 @@
#include "unicode/putil.h"
#include "unicode/ustring.h"
#include "ucnv_bld.h" /* for sizeof(UConverter) */
+#include "cmemory.h" /* for UAlignedMemory */
#include "cintltst.h"
#include "ccapitst.h"
@@ -100,13 +101,21 @@ static void TestCCSID(void);
static void TestJ932(void);
static void TestJ1968(void);
static void TestLMBCSMaxChar(void);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestConvertSafeCloneCallback(void);
+#endif
+
static void TestEBCDICSwapLFNL(void);
static void TestConvertEx(void);
static void TestConvertAlgorithmic(void);
void TestDefaultConverterError(void); /* defined in cctest.c */
static void TestToUCountPending(void);
-static void TestFromUCountPending(void);
+static void TestFromUCountPending(void);
+static void TestDefaultName(void);
+static void TestCompareNames(void);
+static void TestSubstString(void);
+
void addTestConvert(TestNode** root);
void addTestConvert(TestNode** root)
@@ -116,8 +125,12 @@ void addTestConvert(TestNode** root)
addTest(root, &TestFlushCache, "tsconv/ccapitst/TestFlushCache");
addTest(root, &TestAlias, "tsconv/ccapitst/TestAlias");
addTest(root, &TestDuplicateAlias, "tsconv/ccapitst/TestDuplicateAlias");
- addTest(root, &TestConvertSafeClone, "tsconv/ccapitst/TestConvertSafeClone");
- addTest(root, &TestConvertSafeCloneCallback,"tsconv/ccapitst/TestConvertSafeCloneCallback");
+ addTest(root, &TestConvertSafeClone, "tsconv/ccapitst/TestConvertSafeClone");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ addTest(root, &TestConvertSafeCloneCallback,"tsconv/ccapitst/TestConvertSafeCloneCallback");
+#endif
+
addTest(root, &TestCCSID, "tsconv/ccapitst/TestCCSID");
addTest(root, &TestJ932, "tsconv/ccapitst/TestJ932");
addTest(root, &TestJ1968, "tsconv/ccapitst/TestJ1968");
@@ -128,6 +141,9 @@ void addTestConvert(TestNode** root)
addTest(root, &TestDefaultConverterError, "tsconv/ccapitst/TestDefaultConverterError");
addTest(root, &TestToUCountPending, "tsconv/ccapitst/TestToUCountPending");
addTest(root, &TestFromUCountPending, "tsconv/ccapitst/TestFromUCountPending");
+ addTest(root, &TestDefaultName, "tsconv/ccapitst/TestDefaultName");
+ addTest(root, &TestCompareNames, "tsconv/ccapitst/TestCompareNames");
+ addTest(root, &TestSubstString, "tsconv/ccapitst/TestSubstString");
}
static void ListNames(void) {
@@ -153,7 +169,10 @@ static void ListNames(void) {
count1++;
log_verbose("read \"%s\", length %i\n", string, len);
}
- err = U_ZERO_ERROR;
+ if (U_FAILURE(err)) {
+ log_err("FAILURE! uenum_next(allNamesEnum...) set an error: %s\n", u_errorName(err));
+ err = U_ZERO_ERROR;
+ }
uenum_reset(allNamesEnum, &err);
while ((string = uenum_next(allNamesEnum, &len, &err))) {
count2++;
@@ -241,6 +260,7 @@ static void ListNames(void) {
static void TestConvert()
{
+#if !UCONFIG_NO_LEGACY_CONVERSION
char myptr[4];
char save[4];
int32_t testLong1 = 0;
@@ -511,23 +531,6 @@ static void TestConvert()
log_verbose("getName(someConverters[1]) returned %s\n", ucnv_getName(someConverters[1], &err));
}
- /*Testing ucnv_getDefaultName() and ucnv_setDefaultNAme()*/
- {
- static char defaultName[UCNV_MAX_CONVERTER_NAME_LENGTH + 1];
- strcpy(defaultName, ucnv_getDefaultName());
-
- log_verbose("getDefaultName returned %s\n", defaultName);
-
- /*change the default name by setting it */
- ucnv_setDefaultName("changed");
- if(strcmp(ucnv_getDefaultName(), "changed")==0)
- log_verbose("setDefaultName o.k");
- else
- log_err("setDefaultName failed");
- /*set the default name back*/
- ucnv_setDefaultName(defaultName);
- }
-
ucnv_close(someConverters[0]);
ucnv_close(someConverters[1]);
ucnv_close(someConverters[2]);
@@ -1067,6 +1070,7 @@ static void TestConvert()
free((void*)output_cp_buffer);
free((void*)ucs_file_buffer);
free((void*)my_ucs_file_buffer);
+#endif
}
static UConverterFromUCallback otherUnicodeAction(UConverterFromUCallback MIA)
@@ -1081,6 +1085,7 @@ static UConverterToUCallback otherCharAction(UConverterToUCallback MIA)
}
static void TestFlushCache(void) {
+#if !UCONFIG_NO_LEGACY_CONVERSION
UErrorCode err = U_ZERO_ERROR;
UConverter* someConverters[5];
int flushCount = 0;
@@ -1150,7 +1155,7 @@ static void TestFlushCache(void) {
log_verbose("Flush cache ok\n");
else
log_data_err("Flush Cache failed line %d, expected 1 got %d \n", __LINE__, flushCount);
-
+#endif
}
/**
@@ -1399,6 +1404,7 @@ static void TSCC_fromU(const void *context,
UErrorCode subErr = U_ZERO_ERROR;
TSCCContext *newCtx;
TSCCContext *junkCtx;
+ TSCCContext **pjunkCtx = &junkCtx;
/* "recreate" it */
log_verbose("TSCC_fromU: cloning..\n");
@@ -1409,7 +1415,7 @@ static void TSCC_fromU(const void *context,
}
/* now, SET it */
- ucnv_getFromUCallBack(fromUArgs->converter, &junkFrom, (const void**)&junkCtx);
+ ucnv_getFromUCallBack(fromUArgs->converter, &junkFrom, (const void**)pjunkCtx);
ucnv_setFromUCallBack(fromUArgs->converter, junkFrom, newCtx, NULL, NULL, &subErr);
if(U_FAILURE(subErr)) {
@@ -1445,6 +1451,7 @@ static void TSCC_toU(const void *context,
UErrorCode subErr = U_ZERO_ERROR;
TSCCContext *newCtx;
TSCCContext *junkCtx;
+ TSCCContext **pjunkCtx = &junkCtx;
/* "recreate" it */
log_verbose("TSCC_toU: cloning..\n");
@@ -1455,7 +1462,7 @@ static void TSCC_toU(const void *context,
}
/* now, SET it */
- ucnv_getToUCallBack(toUArgs->converter, &junkFrom, (const void**)&junkCtx);
+ ucnv_getToUCallBack(toUArgs->converter, &junkFrom, (const void**)pjunkCtx);
ucnv_setToUCallBack(toUArgs->converter, junkFrom, newCtx, NULL, NULL, &subErr);
if(U_FAILURE(subErr)) {
@@ -1490,11 +1497,13 @@ static void TSCC_print_log(TSCCContext *q, const char *name)
}
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestConvertSafeCloneCallback()
{
UErrorCode err = U_ZERO_ERROR;
TSCCContext from1, to1;
TSCCContext *from2, *from3, *to2, *to3;
+ TSCCContext **pfrom2 = &from2, **pfrom3 = &from3, **pto2 = &to2, **pto3 = &to3;
char hunk[8192];
int32_t hunkSize = 8192;
UConverterFromUCallback junkFrom;
@@ -1532,8 +1541,8 @@ static void TestConvertSafeCloneCallback()
log_verbose("Cloned to conv2=%p.\n", conv2);
/********** from *********************/
- ucnv_getFromUCallBack(conv2, &junkFrom, (const void**)&from2);
- ucnv_getFromUCallBack(conv1, &junkFrom, (const void**)&from3);
+ ucnv_getFromUCallBack(conv2, &junkFrom, (const void**)pfrom2);
+ ucnv_getFromUCallBack(conv1, &junkFrom, (const void**)pfrom3);
TSCC_print_log(from2, "from2");
TSCC_print_log(from3, "from3(==from1)");
@@ -1565,8 +1574,8 @@ static void TestConvertSafeCloneCallback()
}
/********** to *********************/
- ucnv_getToUCallBack(conv2, &junkTo, (const void**)&to2);
- ucnv_getToUCallBack(conv1, &junkTo, (const void**)&to3);
+ ucnv_getToUCallBack(conv2, &junkTo, (const void**)pto2);
+ ucnv_getToUCallBack(conv1, &junkTo, (const void**)pto3);
TSCC_print_log(to2, "to2");
TSCC_print_log(to3, "to3(==to1)");
@@ -1654,6 +1663,7 @@ static void TestConvertSafeCloneCallback()
free(from2); /* from1 is stack based */
}
}
+#endif
static UBool
containsAnyOtherByte(uint8_t *p, int32_t length, uint8_t b) {
@@ -1671,28 +1681,39 @@ static void TestConvertSafeClone()
{
/* one 'regular' & all the 'private stateful' converters */
static const char *const names[] = {
+#if !UCONFIG_NO_LEGACY_CONVERSION
"ibm-1047",
"ISO_2022,locale=zh,version=1",
+#endif
"SCSU",
+#if !UCONFIG_NO_LEGACY_CONVERSION
"HZ",
"lmbcs",
"ISCII,version=0",
"ISO_2022,locale=kr,version=1",
"ISO_2022,locale=jp,version=2",
+#endif
"BOCU-1",
"UTF-7",
+#if !UCONFIG_NO_LEGACY_CONVERSION
"IMAP-mailbox-name",
"ibm-1047-s390"
+#else
+ "IMAP=mailbox-name"
+#endif
};
+ /* store the actual sizes of each converter */
+ int32_t actualSizes[LENGTHOF(names)];
+
static const int32_t bufferSizes[] = {
U_CNV_SAFECLONE_BUFFERSIZE,
(int32_t)(3*sizeof(UConverter))/2, /* 1.5*sizeof(UConverter) */
(int32_t)sizeof(UConverter)/2 /* 0.5*sizeof(UConverter) */
};
- char charBuffer [21]; /* Leave at an odd number for alignment testing */
- uint8_t buffer [3] [U_CNV_SAFECLONE_BUFFERSIZE];
+ char charBuffer[21]; /* Leave at an odd number for alignment testing */
+ uint8_t buffer[3] [U_CNV_SAFECLONE_BUFFERSIZE];
int32_t bufferSize, maxBufferSize;
const char *maxName;
UConverter * cnv, *cnv2;
@@ -1701,9 +1722,9 @@ static void TestConvertSafeClone()
char *pCharBuffer;
const char *pConstCharBuffer;
const char *charBufferLimit = charBuffer + sizeof(charBuffer)/sizeof(*charBuffer);
- UChar uniBuffer [] = {0x0058, 0x0059, 0x005A}; /* "XYZ" */
- UChar uniCharBuffer [20];
- char charSourceBuffer [] = { 0x1b, 0x24, 0x42 };
+ UChar uniBuffer[] = {0x0058, 0x0059, 0x005A}; /* "XYZ" */
+ UChar uniCharBuffer[20];
+ char charSourceBuffer[] = { 0x1b, 0x24, 0x42 };
const char *pCharSource = charSourceBuffer;
const char *pCharSourceLimit = charSourceBuffer + sizeof(charSourceBuffer);
UChar *pUCharTarget = uniCharBuffer;
@@ -1808,10 +1829,10 @@ static void TestConvertSafeClone()
if(j == 0) {
/* preflight to get maxBufferSize */
- bufferSize = 0;
- ucnv_safeClone(cnv, NULL, &bufferSize, &err);
- if(bufferSize > maxBufferSize) {
- maxBufferSize = bufferSize;
+ actualSizes[index] = 0;
+ ucnv_safeClone(cnv, NULL, &actualSizes[index], &err);
+ if(actualSizes[index] > maxBufferSize) {
+ maxBufferSize = actualSizes[index];
maxName = names[index];
}
}
@@ -1824,6 +1845,12 @@ static void TestConvertSafeClone()
/* close the original immediately to make sure that the clone works by itself */
ucnv_close(cnv);
+ if( actualSizes[index] <= (bufferSizes[j] - (int32_t)sizeof(UAlignedMemory)) &&
+ err == U_SAFECLONE_ALLOCATED_WARNING
+ ) {
+ log_err("ucnv_safeClone(%s) did a heap clone although the buffer was large enough\n", names[index]);
+ }
+
/* check if the clone function overwrote any bytes that it is not supposed to touch */
if(bufferSize <= bufferSizes[j]) {
/* used the stack buffer */
@@ -1880,9 +1907,14 @@ static void TestConvertSafeClone()
log_verbose("ucnv_safeClone(): sizeof(UConverter)=%lu max preflighted clone size=%d (%s) U_CNV_SAFECLONE_BUFFERSIZE=%d\n",
sizeof(UConverter), maxBufferSize, maxName, (int)U_CNV_SAFECLONE_BUFFERSIZE);
+ if(maxBufferSize > U_CNV_SAFECLONE_BUFFERSIZE) {
+ log_err("ucnv_safeClone(): max preflighted clone size=%d (%s) is larger than U_CNV_SAFECLONE_BUFFERSIZE=%d\n",
+ maxBufferSize, maxName, (int)U_CNV_SAFECLONE_BUFFERSIZE);
+ }
}
static void TestCCSID() {
+#if !UCONFIG_NO_LEGACY_CONVERSION
UConverter *cnv;
UErrorCode errorCode;
int32_t ccsids[]={ 37, 850, 943, 949, 950, 1047, 1252, 1392, 33722 };
@@ -1909,6 +1941,7 @@ static void TestCCSID() {
ucnv_close(cnv);
}
+#endif
}
/* jitterbug 932: ucnv_convert() bugs --------------------------------------- */
@@ -1946,6 +1979,7 @@ TestJ932(void)
*/
static void bug1()
{
+#if !UCONFIG_NO_LEGACY_CONVERSION
static char char_in[CHUNK_SIZE+32];
static char char_out[CHUNK_SIZE*2];
@@ -1985,6 +2019,7 @@ static void bug1()
log_err("error j932 bug 1: expected success, got U_TRUNCATED_CHAR_FOUND\n");
}
}
+#endif
}
/* bug2: pre-flighting loop bug: simple overflow causes bug */
@@ -2059,6 +2094,7 @@ static void bug2()
*/
static void bug3()
{
+#if !UCONFIG_NO_LEGACY_CONVERSION
static char char_in[CHUNK_SIZE*4];
static char target[5];
UErrorCode err = U_ZERO_ERROR;
@@ -2113,6 +2149,7 @@ static void bug3()
*/
log_data_err("error j932 bug 3b: expected 0x%04x, got 0x%04x\n", sizeof(char_in) * 2, size);
}
+#endif
}
static void
@@ -2221,6 +2258,7 @@ convertExMultiStreaming(UConverter *srcCnv, UConverter *targetCnv,
}
static void TestConvertEx() {
+#if !UCONFIG_NO_LEGACY_CONVERSION
static const uint8_t
utf8[]={
/* 4e00 30a1 ff61 0410 */
@@ -2349,12 +2387,24 @@ static void TestConvertEx() {
log_err("ucnv_convertEx(*source==NULL) sets %s\n", u_errorName(errorCode));
}
+ /* streaming conversion without a pivot buffer */
+ errorCode=U_ZERO_ERROR;
+ src=srcBuffer;
+ pivotSource=pivotBuffer;
+ ucnv_convertEx(cnv2, cnv1, &target, targetBuffer+sizeof(targetBuffer), &src, NULL,
+ NULL, &pivotSource, &pivotTarget, pivotBuffer+1, TRUE, FALSE, &errorCode);
+ if(errorCode!=U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("ucnv_convertEx(pivotStart==NULL) sets %s\n", u_errorName(errorCode));
+ }
+
ucnv_close(cnv1);
ucnv_close(cnv2);
+#endif
}
static void
TestConvertAlgorithmic() {
+#if !UCONFIG_NO_LEGACY_CONVERSION
static const uint8_t
utf8[]={
/* 4e00 30a1 ff61 0410 */
@@ -2475,6 +2525,7 @@ TestConvertAlgorithmic() {
log_err("ucnv_fromAlgorithmic(illegal alg. type) sets %s\n", u_errorName(errorCode));
}
ucnv_close(cnv);
+#endif
}
static void TestLMBCSMaxChar(void) {
@@ -2634,6 +2685,7 @@ static void TestJ1968(void) {
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void
testSwap(const char *name, UBool swap) {
/*
@@ -2787,10 +2839,17 @@ TestEBCDICSwapLFNL() {
testSwap(tests[i].name, tests[i].swap);
}
}
+#else
+static void
+TestEBCDICSwapLFNL() {
+ /* test nothing... */
+}
+#endif
+
static const UVersionInfo ICU_34 = {3,4,0,0};
static void TestFromUCountPending(){
-
+#if !UCONFIG_NO_LEGACY_CONVERSION
UErrorCode status = U_ZERO_ERROR;
/* const UChar expectedUnicode[] = { 0x20ac, 0x0005, 0x0006, 0x000b, 0xdbc4, 0xde34, 0xd84d, 0xdc56, 0xfffd}; */
static const struct {
@@ -2889,10 +2948,12 @@ static void TestFromUCountPending(){
}
}
ucnv_close(cnv);
+#endif
}
static void
TestToUCountPending(){
+#if !UCONFIG_NO_LEGACY_CONVERSION
UErrorCode status = U_ZERO_ERROR;
static const struct {
char input[6];
@@ -3000,5 +3061,188 @@ TestToUCountPending(){
}
ucnv_close(cnv);
}
+#endif
+}
+
+static void TestOneDefaultNameChange(const char *name) {
+ UErrorCode status = U_ZERO_ERROR;
+ UConverter *cnv;
+ ucnv_setDefaultName(name);
+ if(strcmp(ucnv_getDefaultName(), name)==0)
+ log_verbose("setDefaultName of %s works.\n", name);
+ else
+ log_err("setDefaultName of %s failed\n", name);
+ cnv=ucnv_open(NULL, &status);
+ if (U_FAILURE(status) || cnv == NULL) {
+ log_err("opening the default converter of %s failed\n", name);
+ return;
+ }
+ if(strcmp(ucnv_getName(cnv, &status), name)==0)
+ log_verbose("ucnv_getName of %s works.\n", name);
+ else
+ log_err("ucnv_getName of %s failed\n", name);
+ ucnv_close(cnv);
+}
+
+static void TestDefaultName(void) {
+ /*Testing ucnv_getDefaultName() and ucnv_setDefaultNAme()*/
+ static char defaultName[UCNV_MAX_CONVERTER_NAME_LENGTH + 1];
+ strcpy(defaultName, ucnv_getDefaultName());
+
+ log_verbose("getDefaultName returned %s\n", defaultName);
+
+ /*change the default name by setting it */
+ TestOneDefaultNameChange("UTF-8");
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ TestOneDefaultNameChange("ISCII,version=1");
+ TestOneDefaultNameChange("ISCII,version=2");
+#endif
+ TestOneDefaultNameChange("ISO-8859-1");
+
+ /*set the default name back*/
+ ucnv_setDefaultName(defaultName);
+}
+
+/* Test that ucnv_compareNames() matches names according to spec. ----------- */
+
+static U_INLINE int
+sign(int n) {
+ if(n==0) {
+ return 0;
+ } else if(n<0) {
+ return -1;
+ } else /* n>0 */ {
+ return 1;
+ }
+}
+
+static void
+compareNames(const char **names) {
+ const char *relation, *name1, *name2;
+ int rel, result;
+
+ relation=*names++;
+ if(*relation=='=') {
+ rel = 0;
+ } else if(*relation=='<') {
+ rel = -1;
+ } else {
+ rel = 1;
+ }
+
+ name1=*names++;
+ if(name1==NULL) {
+ return;
+ }
+ while((name2=*names++)!=NULL) {
+ result=ucnv_compareNames(name1, name2);
+ if(sign(result)!=rel) {
+ log_err("ucnv_compareNames(\"%s\", \"%s\")=%d, sign!=%d\n", name1, name2, result, rel);
+ }
+ name1=name2;
+ }
+}
+static void
+TestCompareNames() {
+ static const char *equalUTF8[]={ "=", "UTF-8", "utf_8", "u*T@f08", "Utf 8", NULL };
+ static const char *equalIBM[]={ "=", "ibm-37", "IBM037", "i-B-m 00037", "ibm-0037", "IBM00037", NULL };
+ static const char *lessMac[]={ "<", "macos-0_1-10.2", "macos-1-10.0.2", "macos-1-10.2", NULL };
+ static const char *lessUTF080[]={ "<", "UTF-0008", "utf$080", "u*T@f0800", "Utf 0000000009", NULL };
+
+ compareNames(equalUTF8);
+ compareNames(equalIBM);
+ compareNames(lessMac);
+ compareNames(lessUTF080);
+}
+
+static void
+TestSubstString() {
+ static const UChar surrogate[1]={ 0xd900 };
+ char buffer[16];
+
+ static const UChar sub[5]={ 0x61, 0x62, 0x63, 0x64, 0x65 };
+ static const char subChars[5]={ 0x61, 0x62, 0x63, 0x64, 0x65 };
+ UConverter *cnv;
+ UErrorCode errorCode;
+ int32_t length;
+ int8_t len8;
+
+ /* UTF-16/32: test that the BOM is output before the sub character */
+ errorCode=U_ZERO_ERROR;
+ cnv=ucnv_open("UTF-16", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_open(UTF-16) failed - %s\n", u_errorName(errorCode));
+ return;
+ }
+ length=ucnv_fromUChars(cnv, buffer, (int32_t)sizeof(buffer), surrogate, 1, &errorCode);
+ ucnv_close(cnv);
+ if(U_FAILURE(errorCode) ||
+ length!=4 ||
+ NULL == ucnv_detectUnicodeSignature(buffer, length, NULL, &errorCode)
+ ) {
+ log_err("ucnv_fromUChars(UTF-16, U+D900) did not write a BOM\n");
+ }
+
+ errorCode=U_ZERO_ERROR;
+ cnv=ucnv_open("UTF-32", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_open(UTF-32) failed - %s\n", u_errorName(errorCode));
+ return;
+ }
+ length=ucnv_fromUChars(cnv, buffer, (int32_t)sizeof(buffer), surrogate, 1, &errorCode);
+ ucnv_close(cnv);
+ if(U_FAILURE(errorCode) ||
+ length!=8 ||
+ NULL == ucnv_detectUnicodeSignature(buffer, length, NULL, &errorCode)
+ ) {
+ log_err("ucnv_fromUChars(UTF-32, U+D900) did not write a BOM\n");
+ }
+
+ /* Simple API test of ucnv_setSubstString() + ucnv_getSubstChars(). */
+ errorCode=U_ZERO_ERROR;
+ cnv=ucnv_open("ISO-8859-1", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_open(ISO-8859-1) failed - %s\n", u_errorName(errorCode));
+ return;
+ }
+ ucnv_setSubstString(cnv, sub, LENGTHOF(sub), &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_setSubstString(ISO-8859-1, sub[5]) failed - %s\n", u_errorName(errorCode));
+ } else {
+ len8 = sizeof(buffer);
+ ucnv_getSubstChars(cnv, buffer, &len8, &errorCode);
+ /* Stateless converter, we expect the string converted to charset bytes. */
+ if(U_FAILURE(errorCode) || len8!=sizeof(subChars) || 0!=uprv_memcmp(buffer, subChars, len8)) {
+ log_err("ucnv_getSubstChars(ucnv_setSubstString(ISO-8859-1, sub[5])) failed - %s\n", u_errorName(errorCode));
+ }
+ }
+ ucnv_close(cnv);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ errorCode=U_ZERO_ERROR;
+ cnv=ucnv_open("HZ", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_open(HZ) failed - %s\n", u_errorName(errorCode));
+ return;
+ }
+ ucnv_setSubstString(cnv, sub, LENGTHOF(sub), &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucnv_setSubstString(HZ, sub[5]) failed - %s\n", u_errorName(errorCode));
+ } else {
+ len8 = sizeof(buffer);
+ ucnv_getSubstChars(cnv, buffer, &len8, &errorCode);
+ /* Stateful converter, we expect that the Unicode string was set and that we get an empty char * string now. */
+ if(U_FAILURE(errorCode) || len8!=0) {
+ log_err("ucnv_getSubstChars(ucnv_setSubstString(HZ, sub[5])) failed - %s\n", u_errorName(errorCode));
+ }
+ }
+ ucnv_close(cnv);
+#endif
+ /*
+ * Further testing of ucnv_setSubstString() is done via intltest convert.
+ * We do not test edge cases of illegal arguments and similar because the
+ * function implementation uses all of its parameters in calls to other
+ * functions with UErrorCode parameters.
+ */
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cdattst.c b/Build/source/libs/icu-xetex/test/cintltst/cdattst.c
index 728a1165f8c..3fcdb47e3c0 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cdattst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cdattst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -126,9 +126,9 @@ static void TestDateFormat()
for(i=0;i<numlocales;i++) {
UErrorCode subStatus = U_ZERO_ERROR;
log_verbose("Testing open of %s\n", udat_getAvailable(i));
- any = udat_open(UDAT_SHORT, UDAT_SHORT, udat_getAvailable(i), NULL ,0, NULL, 0, &status);
+ any = udat_open(UDAT_SHORT, UDAT_SHORT, udat_getAvailable(i), NULL ,0, NULL, 0, &subStatus);
if(U_FAILURE(subStatus)) {
- log_data_err("FAIL: date format %s (getAvailable(%d)) is not instantiable: %s\n", udat_getAvailable(i), i, u_errorName(subStatus));
+ log_data_err("FAIL: date format %s (getAvailable(%d)) is not instantiable: %s\n", udat_getAvailable(i), i, u_errorName(subStatus));
}
udat_close(any);
}
@@ -395,6 +395,7 @@ static void TestSymbols()
if(udat_countSymbols(def, UDAT_ERAS)!=2 || udat_countSymbols(def, UDAT_MONTHS)!=12 ||
udat_countSymbols(def, UDAT_SHORT_MONTHS)!=12 || udat_countSymbols(def, UDAT_WEEKDAYS)!=8 ||
udat_countSymbols(def, UDAT_SHORT_WEEKDAYS)!=8 || udat_countSymbols(def, UDAT_AM_PMS)!=2 ||
+ udat_countSymbols(def, UDAT_QUARTERS) != 4 || udat_countSymbols(def, UDAT_SHORT_QUARTERS) != 4 ||
udat_countSymbols(def, UDAT_LOCALIZED_CHARS)!=1)
{
log_err("FAIL: error in udat_countSymbols\n");
@@ -445,6 +446,10 @@ static void TestSymbols()
VerifygetSymbols(def, UDAT_AM_PMS, 1, "PM");
VerifygetSymbols(fr, UDAT_SHORT_MONTHS, 0, "janv.");
VerifygetSymbols(def, UDAT_SHORT_MONTHS, 11, "Dec");
+ VerifygetSymbols(fr, UDAT_QUARTERS, 0, "1er trimestre");
+ VerifygetSymbols(def, UDAT_QUARTERS, 3, "4th quarter");
+ VerifygetSymbols(fr, UDAT_SHORT_QUARTERS, 1, "T2");
+ VerifygetSymbols(def, UDAT_SHORT_QUARTERS, 2, "Q3");
VerifygetSymbols(def,UDAT_LOCALIZED_CHARS, 0, "GyMdkHmsSEDFwWahKzYeugAZvcL");
@@ -541,11 +546,24 @@ free(pattern);
/*run series of tests to test setSymbols regressively*/
log_verbose("\nTesting setSymbols regressively\n");
- VerifysetSymbols(def, UDAT_WEEKDAYS, 1, "Sundayweek");
VerifysetSymbols(def, UDAT_ERAS, 0, "BeforeChrist");
+ VerifysetSymbols(def, UDAT_ERA_NAMES, 1, "AnnoDomini");
+ VerifysetSymbols(def, UDAT_WEEKDAYS, 1, "Sundayweek");
VerifysetSymbols(def, UDAT_SHORT_WEEKDAYS, 7, "Satweek");
+ VerifysetSymbols(def, UDAT_NARROW_WEEKDAYS, 4, "M");
+ VerifysetSymbols(def, UDAT_STANDALONE_WEEKDAYS, 1, "Sonntagweek");
+ VerifysetSymbols(def, UDAT_STANDALONE_SHORT_WEEKDAYS, 7, "Sams");
+ VerifysetSymbols(def, UDAT_STANDALONE_NARROW_WEEKDAYS, 4, "V");
VerifysetSymbols(fr, UDAT_MONTHS, 11, "december");
VerifysetSymbols(fr, UDAT_SHORT_MONTHS, 0, "Jan");
+ VerifysetSymbols(fr, UDAT_NARROW_MONTHS, 1, "R");
+ VerifysetSymbols(fr, UDAT_STANDALONE_MONTHS, 11, "dezember");
+ VerifysetSymbols(fr, UDAT_STANDALONE_SHORT_MONTHS, 7, "Aug");
+ VerifysetSymbols(fr, UDAT_STANDALONE_NARROW_MONTHS, 2, "M");
+ VerifysetSymbols(fr, UDAT_QUARTERS, 0, "1. Quart");
+ VerifysetSymbols(fr, UDAT_SHORT_QUARTERS, 1, "QQ2");
+ VerifysetSymbols(fr, UDAT_STANDALONE_QUARTERS, 2, "3rd Quar.");
+ VerifysetSymbols(fr, UDAT_STANDALONE_SHORT_QUARTERS, 3, "4QQ");
/*run series of tests to test get and setSymbols regressively*/
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cdtdptst.c b/Build/source/libs/icu-xetex/test/cintltst/cdtdptst.c
index 31391eb4ccf..d19b7eedac4 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cdtdptst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cdtdptst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -233,11 +233,11 @@ void TestCzechMonths459()
UErrorCode status = U_ZERO_ERROR;
UChar *date;
- ctest_setTimeZone(NULL, &status);
+ ctest_setTimeZone(NULL, &status);
fmt = udat_open(UDAT_FULL, UDAT_FULL, "cs", NULL, 0, NULL, 0, &status);
if(U_FAILURE(status)){
log_err("Error in constructing the date format\n");
- ctest_resetTimeZone();
+ ctest_resetTimeZone();
return;
}
lneed=0;
@@ -267,10 +267,17 @@ void TestCzechMonths459()
}
d = udat_parse(fmt, juneStr, u_strlen(juneStr), &pos, &status);
date = myDateFormat(fmt, d);
- if(u_strcmp(myDateFormat(fmt, june), myDateFormat(fmt, d) ) !=0)
- log_err("Error in handling the czech month june\n");
- else
- log_verbose("Pass: Date = %s (czech month June)\n", aescstrdup(date, -1));
+
+ if(U_SUCCESS(status)){
+ UChar* out1 = myDateFormat(fmt, june);
+ UChar* out2 = myDateFormat(fmt, d);
+ if(u_strcmp(out1, out2) !=0)
+ log_err("Error in handling the czech month june\n");
+ else
+ log_verbose("Pass: Date = %s (czech month June)\n", aescstrdup(date, -1));
+ }else{
+ log_err("udat_parse failed. Error. %s\n",u_errorName(status));
+ }
pos=0;
d = udat_parse(fmt, julyStr, u_strlen(julyStr), &pos, &status);
date = myDateFormat(fmt, d);
@@ -279,7 +286,7 @@ void TestCzechMonths459()
else
log_verbose("Pass: Date = %s (czech month July)\n", aescstrdup(date, -1));
- ctest_resetTimeZone();
+ ctest_resetTimeZone();
udat_close(fmt);
ucal_close(cal);
free(pattern);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cdtrgtst.c b/Build/source/libs/icu-xetex/test/cintltst/cdtrgtst.c
index 7d5b3cbd1ab..3ef0f780af0 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cdtrgtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cdtrgtst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -179,7 +179,10 @@ void Test4056591()
gotdate=myFormatit(def, got);
expdate=myFormatit(def, exp);
- if(u_strcmp(gotdate, expdate) !=0){
+ if (gotdate == NULL || expdate == NULL) {
+ log_err("myFormatit failed!\n");
+ }
+ else if(u_strcmp(gotdate, expdate) !=0){
log_err("set2DigitYearStart broken for %s \n got: %s, expected: %s\n", austrdup(s),
austrdup(gotdate), austrdup(expdate) );
}
@@ -191,6 +194,7 @@ void Test4056591()
/**
+ * SimpleDateFormat does not properly parse date strings without delimiters
* @bug 4059917
*/
void Test4059917()
@@ -219,7 +223,7 @@ void Test4059917()
udat_close(def);
u_uastrcpy(pattern, "yyyyMMdd");
- def = udat_open(UDAT_IGNORE,UDAT_IGNORE,NULL,NULL,0,pattern, u_strlen(pattern),&status);
+ def = udat_open(UDAT_IGNORE,UDAT_IGNORE,NULL,tzID,-1,pattern, u_strlen(pattern),&status);
if(U_FAILURE(status))
{
log_err("FAIL: error in creating the dateformat using openPattern: %s\n", myErrorName(status));
@@ -388,48 +392,46 @@ void Test4073003()
return;
}
u_uastrcpy(temp, "m/D/yy");
- udat_applyPattern(fmt, TRUE, temp, u_strlen(temp));
+ udat_applyPattern(fmt, FALSE, temp, u_strlen(temp));
+
+ for(i= 0; i < 4; i+=2) {
+ status=U_ZERO_ERROR;
+ datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i])+1));
+ u_uastrcpy(datestr, tests[i]);
+
+ pos=0;
+ d = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
+ if(U_FAILURE(status)){
+ log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
+ }
+
+ free(datestr);
+ datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i+1])+1));
+ u_uastrcpy(datestr, tests[i+1]);
- for(i= 0; i < 4; i+=2) {
- status=U_ZERO_ERROR;
- datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i])+1));
- u_uastrcpy(datestr, tests[i]);
-
- pos=0;
- d = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
- if(U_FAILURE(status)){
- log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
- }
-
- free(datestr);
- datestr=(UChar*)malloc(sizeof(UChar) * (strlen(tests[i+1])+1));
- u_uastrcpy(datestr, tests[i+1]);
+ pos=0;
+ status=U_ZERO_ERROR;
+ dd = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
+ if(U_FAILURE(status)){
+ log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
+ }
+ free(datestr);
- pos=0;
- status=U_ZERO_ERROR;
- dd = udat_parse(fmt, datestr, u_strlen(datestr), &pos, &status);
- if(U_FAILURE(status)){
- log_err("ERROR : in test 4073003: %s\n", myErrorName(status));
- }
- free(datestr);
-
- result =myFormatit(fmt, d);
- result2 =myFormatit(fmt, dd);
- if(!result || !result2) {
- log_data_err("Fail: could not format - exitting test");
- return;
- }
- if (u_strcmp(result, result2)!=0){
- log_err("Fail: %s != %s\n", austrdup(result), austrdup(result2) );
- }
- else{
+ result =myFormatit(fmt, d);
+ result2 =myFormatit(fmt, dd);
+ if(!result || !result2) {
+ log_data_err("Fail: could not format - exitting test\n");
+ return;
+ }
+ if (u_strcmp(result, result2)!=0){
+ log_err("Fail: %s != %s\n", austrdup(result), austrdup(result2) );
+ }
+ else{
log_verbose("Ok: %s == %s\n", austrdup(result), austrdup(result2) );
- }
-
-
-
}
- udat_close(fmt);
+
+ }
+ udat_close(fmt);
}
/**
@@ -455,12 +457,12 @@ void Test4162071()
pos=0;
x = udat_parse(df, datestr, u_strlen(datestr), &pos, &status);
if(U_FAILURE(status)){
- log_data_err("ERROR : parse format %s fails : %s\n", austrdup(format), myErrorName(status));
- }
+ log_data_err("ERROR : parse format %s fails : %s\n", austrdup(format), myErrorName(status));
+ }
else{
log_verbose("Parse format \"%s \" ok.\n", austrdup(format) );
}
- log_verbose("date= %s\n", austrdup(myFormatit(df, x)) );
+ /*log_verbose("date= %s\n", austrdup(myFormatit(df, x)) );*/
udat_close(df);
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/chashtst.c b/Build/source/libs/icu-xetex/test/cintltst/chashtst.c
index 8dd66b45189..c70ae2bca5d 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/chashtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/chashtst.c
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2005, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* Date Name Description
@@ -103,7 +103,7 @@ static void TestBasic(void) {
UErrorCode status = U_ZERO_ERROR;
UHashtable *hash;
- hash = uhash_open(hashChars, isEqualChars, &status);
+ hash = uhash_open(hashChars, isEqualChars, NULL, &status);
if (U_FAILURE(status)) {
log_err("FAIL: uhash_open failed with %s and returned 0x%08x\n",
u_errorName(status), hash);
@@ -163,7 +163,7 @@ static void TestOtherAPI(void){
static const UChar five[6] = {0x0066, 0x0069, 0x0076, 0x0065, 0}; /* L"five" */
static const UChar five2[6] = {0x0066, 0x0069, 0x0076, 0x0065, 0}; /* L"five" */
- hash = uhash_open(uhash_hashUChars, uhash_compareUChars, &status);
+ hash = uhash_open(uhash_hashUChars, uhash_compareUChars, NULL, &status);
if (U_FAILURE(status)) {
log_err("FAIL: uhash_open failed with %s and returned 0x%08x\n",
u_errorName(status), hash);
@@ -287,7 +287,7 @@ static void hashIChars(void) {
UErrorCode status = U_ZERO_ERROR;
UHashtable *hash;
- hash = uhash_open(uhash_hashIChars, uhash_compareIChars, &status);
+ hash = uhash_open(uhash_hashIChars, uhash_compareIChars, NULL, &status);
if (U_FAILURE(status)) {
log_err("FAIL: uhash_open failed with %s and returned 0x%08x\n",
u_errorName(status), hash);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cintltst.vcproj b/Build/source/libs/icu-xetex/test/cintltst/cintltst.vcproj
index ed6a9b2bfcc..6f6a923d41c 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cintltst.vcproj
+++ b/Build/source/libs/icu-xetex/test/cintltst/cintltst.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="1"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/cintltst.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -90,6 +91,7 @@
BufferSecurityCheck="TRUE"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/cintltst.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -268,9 +270,6 @@
RelativePath=".\trietest.c">
</File>
<File
- RelativePath=".\ucmptst.c">
- </File>
- <File
RelativePath=".\uenumtst.c">
</File>
</Filter>
@@ -319,6 +318,9 @@
<File
RelativePath=".\stdnmtst.c">
</File>
+ <File
+ RelativePath=".\ucsdetst.c">
+ </File>
</Filter>
<Filter
Name="data &amp; memory"
@@ -476,9 +478,6 @@
RelativePath=".\cucdtst.c">
</File>
<File
- RelativePath=".\cucdtst.h">
- </File>
- <File
RelativePath=".\usettest.c">
</File>
</Filter>
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cldrtest.c b/Build/source/libs/icu-xetex/test/cintltst/cldrtest.c
index eba37fa5129..fe4716eddee 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cldrtest.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cldrtest.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -16,7 +16,51 @@
#include "locmap.h"
#include "uresimp.h"
-static UBool isCurrencyPreEuro(const char* currencyKey){
+/*--------------------------------------------------------------------
+ Time bomb - allows temporary behavior that expires at a given
+ release
+ ---------------------------------------------------------------------*/
+static const UVersionInfo ICU_37 = {3,7,0,0};
+
+/*
+returns a new UnicodeSet that is a flattened form of the original
+UnicodeSet.
+*/
+static USet*
+createFlattenSet(USet *origSet, UErrorCode *status) {
+
+
+ USet *newSet = NULL;
+ int32_t origItemCount = 0;
+ int32_t idx, graphmeSize;
+ UChar32 start, end;
+ UChar graphme[64];
+ if (U_FAILURE(*status)) {
+ log_err("createFlattenSet called with %s\n", u_errorName(*status));
+ return NULL;
+ }
+ newSet = uset_open(1, 0);
+ origItemCount = uset_getItemCount(origSet);
+ for (idx = 0; idx < origItemCount; idx++) {
+ graphmeSize = uset_getItem(origSet, idx,
+ &start, &end,
+ graphme, (int32_t)(sizeof(graphme)/sizeof(graphme[0])),
+ status);
+ if (U_FAILURE(*status)) {
+ log_err("ERROR: uset_getItem returned %s\n", u_errorName(*status));
+ *status = U_ZERO_ERROR;
+ }
+ if (graphmeSize) {
+ uset_addAllCodePoints(newSet, graphme, graphmeSize);
+ }
+ else {
+ uset_addRange(newSet, start, end);
+ }
+ }
+ return newSet;
+}
+static UBool
+isCurrencyPreEuro(const char* currencyKey){
if( strcmp(currencyKey, "PTE") == 0 ||
strcmp(currencyKey, "ESP") == 0 ||
strcmp(currencyKey, "LUF") == 0 ||
@@ -117,26 +161,8 @@ TestKeyInRootRecursive(UResourceBundle *root, const char *rootName,
if (U_SUCCESS(errorCode)
&& (ures_getType(subSubBundle) == URES_ARRAY || ures_getType(subSubRootBundle) == URES_ARRAY))
{
- /* TODO: Properly check for 2D arrays and zoneStrings */
- if (subBundleKey != NULL && strcmp(subBundleKey, "zoneStrings") == 0) {
-/* int32_t minSize = ures_getSize(subBundle);
- int32_t idx;
-
- for (idx = 0; idx < minSize; idx++) {
- UResourceBundle *subSubBundleAtIndex = ures_getByIndex(subBundle, idx, NULL, &errorCode);
- if (ures_getSize(subSubBundleAtIndex) != 6) {
- log_err("zoneStrings at index %d has wrong size for locale \"%s\". array size=%d\n",
- idx,
- locale,
- ures_getSize(subSubBundleAtIndex));
- }
- ures_close(subSubBundleAtIndex);
- }*/
- }
- else {
- /* Here is one of the recursive parts */
- TestKeyInRootRecursive(subRootBundle, rootName, subBundle, locale);
- }
+ /* Here is one of the recursive parts */
+ TestKeyInRootRecursive(subRootBundle, rootName, subBundle, locale);
}
else {
int32_t minSize = ures_getSize(subRootBundle);
@@ -283,7 +309,8 @@ TestKeyInRootRecursive(UResourceBundle *root, const char *rootName,
subBundleKey,
ures_getKey(currentBundle),
locale);
- } else if (strcmp(subBundleKey, "localPatternChars") == 0) {
+ } else if (strcmp(subBundleKey, "localPatternChars") == 0 &&
+ isICUVersionAtLeast(ICU_37)) {
/* Check well-formedness of localPatternChars. First, the
* length must match the number of fields defined by
* DateFormat. Second, each character in the string must
@@ -348,8 +375,13 @@ TestKeyInRootRecursive(UResourceBundle *root, const char *rootName,
#endif
}
else if (ures_getType(subBundle) == URES_TABLE) {
- /* Here is one of the recursive parts */
- TestKeyInRootRecursive(subRootBundle, rootName, subBundle, locale);
+ if (strcmp(subBundleKey, "availableFormats")!=0) {
+ /* Here is one of the recursive parts */
+ TestKeyInRootRecursive(subRootBundle, rootName, subBundle, locale);
+ }
+ else {
+ log_verbose("Skipping key %s in %s\n", subBundleKey, locale);
+ }
}
else if (ures_getType(subBundle) == URES_BINARY || ures_getType(subBundle) == URES_INT) {
/* Can't do anything to check it */
@@ -737,17 +769,21 @@ findStringSetMismatch(const char *currLoc, const UChar *string, int32_t langSize
const UChar *exemplarCharacters, int32_t exemplarLen,
UBool ignoreNumbers) {
UErrorCode errorCode = U_ZERO_ERROR;
- USet *exemplarSet = uset_openPatternOptions(exemplarCharacters, exemplarLen, USET_CASE_INSENSITIVE, &errorCode);
+ USet *origSet = uset_openPatternOptions(exemplarCharacters, exemplarLen, USET_CASE_INSENSITIVE, &errorCode);
+ USet *exemplarSet = createFlattenSet(origSet, &errorCode);
int32_t strIdx;
+ uset_close(origSet);
if (U_FAILURE(errorCode)) {
- log_err("%s: error uset_openPattern returned %s\n", currLoc, u_errorName(errorCode));
+ log_err("%s: error uset_openPattern returned %s\n", currLoc, u_errorName(errorCode));
return -1;
}
for (strIdx = 0; strIdx < langSize; strIdx++) {
if (!uset_contains(exemplarSet, string[strIdx])
- && string[strIdx] != 0x0020 && string[strIdx] != 0x00A0 && string[strIdx] != 0x002e && string[strIdx] != 0x002c && string[strIdx] != 0x002d && string[strIdx] != 0x0027) {
+ && string[strIdx] != 0x0020 && string[strIdx] != 0x00A0 && string[strIdx] != 0x002e && string[strIdx] != 0x002c && string[strIdx] != 0x002d && string[strIdx] != 0x0027
+ && string[strIdx] != 0x200C && string[strIdx] != 0x200D) {
if (!ignoreNumbers || (ignoreNumbers && (string[strIdx] < 0x30 || string[strIdx] > 0x39))) {
+ uset_close(exemplarSet);
return strIdx;
}
}
@@ -755,7 +791,19 @@ findStringSetMismatch(const char *currLoc, const UChar *string, int32_t langSize
uset_close(exemplarSet);
return -1;
}
-
+/* include non-invariant chars */
+static int32_t
+myUCharsToChars(const UChar* us, char* cs, int32_t len){
+ int32_t i=0;
+ for(; i< len; i++){
+ if(us[i] < 0x7f){
+ cs[i] = (char)us[i];
+ }else{
+ return -1;
+ }
+ }
+ return i;
+}
static void
findSetMatch( UScriptCode *scriptCodes, int32_t scriptsLen,
USet *exemplarSet,
@@ -797,7 +845,7 @@ findSetMatch( UScriptCode *scriptCodes, int32_t scriptsLen,
UChar32 end = 0;
UChar *str = NULL;
int32_t strCapacity = 0;
-
+
strCapacity = uset_getItem(exemplarSet, i, &start, &end, str, strCapacity, &status);
if(U_SUCCESS(status)){
int32_t j;
@@ -809,6 +857,16 @@ findSetMatch( UScriptCode *scriptCodes, int32_t scriptsLen,
}
}
if(existsInScript == FALSE){
+ for( j = 0; j < scriptsLen; j++){
+ UChar toPattern[500]={'\0'};
+ char pat[500]={'\0'};
+ int32_t len = uset_toPattern(scripts[j], toPattern, 500, TRUE, &status);
+ len = myUCharsToChars(toPattern, pat, len);
+ log_err("uset_indexOf(\\u%04X)=%i uset_indexOf(\\u%04X)=%i\n", start, uset_indexOf(scripts[0], start), end, uset_indexOf(scripts[0], end));
+ if(len!=-1){
+ log_err("Pattern: %s\n",pat);
+ }
+ }
log_err("ExemplarCharacters and LocaleScript containment test failed for locale %s. \n", locale);
}
}else{
@@ -840,10 +898,6 @@ findSetMatch( UScriptCode *scriptCodes, int32_t scriptsLen,
}
static void VerifyTranslation(void) {
-#if U_ICU_VERSION_MAJOR_NUM == 3 && U_ICU_VERSION_MINOR_NUM == 4
- /* Disabled until the CLDR data can be fixed. */
- return;
-#else
UResourceBundle *root, *currentLocale;
int32_t locCount = uloc_countAvailable();
int32_t locIndex;
@@ -857,7 +911,6 @@ static void VerifyTranslation(void) {
int32_t end;
UResourceBundle *resArray;
- log_err("This test fails in exhaustive mode. Please fix the CLDR data\n");
if (locCount <= 1) {
log_data_err("At least root needs to be installed\n");
}
@@ -1031,7 +1084,6 @@ static void VerifyTranslation(void) {
}
ures_close(root);
-#endif
}
/* adjust this limit as appropriate */
@@ -1043,6 +1095,7 @@ static void TestExemplarSet(void){
UErrorCode ec = U_ZERO_ERROR;
UEnumeration* avail;
USet* exemplarSets[2];
+ USet* unassignedSet;
UScriptCode code[MAX_SCRIPTS_PER_LOCALE];
USet* codeSets[MAX_SCRIPTS_PER_LOCALE];
int32_t codeLen;
@@ -1053,7 +1106,9 @@ static void TestExemplarSet(void){
int32_t strLen;
UChar32 start, end;
- exemplarSets[0] = exemplarSets[1] = NULL;
+ unassignedSet = NULL;
+ exemplarSets[0] = NULL;
+ exemplarSets[1] = NULL;
for (i=0; i<MAX_SCRIPTS_PER_LOCALE; ++i) {
codeSets[i] = NULL;
}
@@ -1063,6 +1118,10 @@ static void TestExemplarSet(void){
n = uenum_count(avail, &ec);
if (!assertSuccess("uenum_count", &ec)) goto END;
+ u_uastrcpy(ubuf, "[:unassigned:]");
+ unassignedSet = uset_openPattern(ubuf, -1, &ec);
+ if (!assertSuccess("uset_openPattern", &ec)) goto END;
+
for(i=0; i<n; i++){
const char* locale = uenum_next(avail, NULL, &ec);
if (!assertSuccess("uenum_next", &ec)) goto END;
@@ -1076,6 +1135,9 @@ static void TestExemplarSet(void){
exemplarSets[k] = exemplarSet;
if (!assertSuccess("ulocaledata_getExemplarSet", &ec)) goto END;
+ if (uset_containsSome(exemplarSet, unassignedSet)) {
+ log_err("ExemplarSet contains unassigned characters for locale : %s\n", locale);
+ }
codeLen = uscript_getCode(locale, code, 8, &ec);
if (!assertSuccess("uscript_getCode", &ec)) goto END;
@@ -1085,6 +1147,10 @@ static void TestExemplarSet(void){
}
for (j=0; j<codeLen; ++j) {
uprv_strcpy(cbuf, "[:");
+ if(code[j]==-1){
+ log_err("USCRIPT_INVALID_CODE returned for locale: %s\n", locale);
+ continue;
+ }
uprv_strcat(cbuf, uscript_getShortName(code[j]));
uprv_strcat(cbuf, ":]");
u_uastrcpy(ubuf, cbuf);
@@ -1101,14 +1167,14 @@ static void TestExemplarSet(void){
if (!assertSuccess("uset_getItem", &ec)) goto END;
if (strLen == 0) {
for (j=0; j<codeLen; ++j) {
- if (uset_containsRange(codeSets[j], start, end)) {
+ if (codeSets[j]!=NULL && uset_containsRange(codeSets[j], start, end)) {
existsInScript = TRUE;
break;
}
}
} else {
for (j=0; j<codeLen; ++j) {
- if (uset_containsString(codeSets[j], ubuf, strLen)) {
+ if (codeSets[j]!=NULL && uset_containsString(codeSets[j], ubuf, strLen)) {
existsInScript = TRUE;
break;
}
@@ -1135,11 +1201,45 @@ static void TestExemplarSet(void){
uenum_close(avail);
uset_close(exemplarSets[0]);
uset_close(exemplarSets[1]);
+ uset_close(unassignedSet);
for (i=0; i<MAX_SCRIPTS_PER_LOCALE; ++i) {
uset_close(codeSets[i]);
}
}
+static void TestCoverage(void){
+ ULocaleDataDelimiterType types[] = {
+ ULOCDATA_QUOTATION_START, /* Quotation start */
+ ULOCDATA_QUOTATION_END, /* Quotation end */
+ ULOCDATA_ALT_QUOTATION_START, /* Alternate quotation start */
+ ULOCDATA_ALT_QUOTATION_END, /* Alternate quotation end */
+ ULOCDATA_DELIMITER_COUNT
+ };
+ int i;
+ UBool sub;
+ UErrorCode status = U_ZERO_ERROR;
+ ULocaleData *uld = ulocdata_open(uloc_getDefault(), &status);
+
+ if(U_FAILURE(status)){
+ log_err("ulocdata_open error");
+ return;
+ }
+
+
+ for(i = 0; i < ULOCDATA_DELIMITER_COUNT; i++){
+ UChar result[32] = {0,};
+ status = U_ZERO_ERROR;
+ ulocdata_getDelimiter(uld, types[i], result, 32, &status);
+ if (U_FAILURE(status)){
+ log_err("ulocdata_getgetDelimiter error with type %d", types[i]);
+ }
+ }
+
+ sub = ulocdata_getNoSubstitute(uld);
+ ulocdata_setNoSubstitute(uld,sub);
+ ulocdata_close(uld);
+}
+
static void TestCurrencyList(void){
#if !UCONFIG_NO_FORMATTING
UErrorCode errorCode = U_ZERO_ERROR;
@@ -1186,4 +1286,5 @@ void addCLDRTest(TestNode** root)
TESTCASE(VerifyTranslation);
TESTCASE(TestExemplarSet);
TESTCASE(TestCurrencyList);
+ TESTCASE(TestCoverage);
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cloctst.c b/Build/source/libs/icu-xetex/test/cintltst/cloctst.c
index 4d7bb6b2cb5..d4253384198 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cloctst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cloctst.c
@@ -1,16 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
-/********************************************************************************
+/*******************************************************************************
*
* File CLOCTST.C
*
* Modification History:
* Name Description
* Madhu Katragadda Ported for C API
-*********************************************************************************
+********************************************************************************
*/
#include "cloctst.h"
#include <stdlib.h>
@@ -19,6 +19,7 @@
#include "cintltst.h"
#include "cstring.h"
#include "uparse.h"
+#include "uresimp.h"
#include "unicode/putil.h"
#include "unicode/ubrk.h"
@@ -37,6 +38,7 @@
static void TestNullDefault(void);
static void TestNonexistentLanguageExemplars(void);
+static void TestLanguageExemplarsFallbacks(void);
void PrintDataTable();
@@ -64,7 +66,7 @@ static const char* rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
/* ISO-3 country */
{ "USA", "FRA", "ESP", "GRC", "NOR", "CHN", "DEU", "", "JPN" },
/* LCID */
- { "409", "40c", "403", "408", "814", "804", "407", "a", "411" },
+ { "409", "40c", "403", "408", "814", "804", "10407", "40a", "411" },
/* display language (English) */
{ "English", "French", "Catalan", "Greek", "Norwegian", "Chinese", "German", "Spanish", "Japanese" },
@@ -82,14 +84,14 @@ static const char* rawData2[LOCALE_INFO_SIZE][LOCALE_SIZE] = {
/* display language (French) */
{ "anglais", "fran\\u00E7ais", "catalan", "grec", "norv\\u00E9gien", "chinois", "allemand", "espagnol", "japonais" },
/* display script code (French) */
- { "", "", "", "", "", "han simplifi\\u00E9", "", "", "" },
+ { "", "", "", "", "", "id\\u00e9ogrammes han (variante simplifi\\u00e9e)", "", "", "" },
/* display country (French) */
{ "\\u00C9tats-Unis", "France", "Espagne", "Gr\\u00E8ce", "Norv\\u00E8ge", "Chine", "Allemagne", "", "Japon" },
/* display variant (French) */
{ "", "", "", "", "NY", "", "", "", "" },
/* display name (French) */
{ "anglais (\\u00C9tats-Unis)", "fran\\u00E7ais (France)", "catalan (Espagne)",
- "grec (Gr\\u00E8ce)", "norv\\u00E9gien (Norv\\u00E8ge, NY)", "chinois (han simplifi\\u00E9, Chine)",
+ "grec (Gr\\u00E8ce)", "norv\\u00E9gien (Norv\\u00E8ge, NY)", "chinois (id\\u00e9ogrammes han (variante simplifi\\u00e9e), Chine)",
"allemand (Allemagne, Ordonnancement=Ordre de l\\u2019annuaire)", "espagnol (Ordonnancement=Ordre traditionnel)", "japonais (Japon, Calendrier=Calendrier japonais)" },
/* display language (Catalan) */
@@ -206,7 +208,6 @@ void addLocaleTest(TestNode** root)
TESTCASE(TestUninstalledISO3Names);
TESTCASE(TestSimpleDisplayNames);
TESTCASE(TestVariantParsing);
- /*TESTCASE(MoreVariants);*/
TESTCASE(TestKeywordVariants);
TESTCASE(TestKeywordVariantParsing);
TESTCASE(TestCanonicalization);
@@ -218,7 +219,14 @@ void addLocaleTest(TestNode** root)
TESTCASE(TestGetLocale);
TESTCASE(TestDisplayNameWarning);
TESTCASE(TestNonexistentLanguageExemplars);
- TESTCASE(TestAcceptLanguage);
+ TESTCASE(TestLanguageExemplarsFallbacks);
+ TESTCASE(TestCalendar);
+ TESTCASE(TestDateFormat);
+ TESTCASE(TestCollation);
+ TESTCASE(TestULocale);
+ TESTCASE(TestUResourceBundle);
+ TESTCASE(TestDisplayName);
+ TESTCASE(TestAcceptLanguage);
}
@@ -925,7 +933,7 @@ static void TestISOFunctions()
if(!strcmp(test,"ZR"))
log_err("FAIL getISOCountries() has obsolete country code %s\n", test);
}
- expect=240;
+ expect=244;
if(count!=expect)
{
log_err("There is an error in getISOCountries, got %d, expected %d \n", count, expect);
@@ -1347,35 +1355,6 @@ static void TestObsoleteNames(void)
}
-static void MoreVariants(void)
-{
- struct {
- const char *localeID;
- const char *keyword;
- const char *expectedValue;
- } testCases[] = {
- { "de_DE_EURO@collation=PHONEBOOK", "collation", "PHONEBOOK" },
- { "es_ES.utf8@euro", "collation", ""},
- { "es_ES.hello.utf8@euro", "", "" },
- { " s pa c e d _ more spaces _ spaced variant ", "", ""}
- };
-
- UErrorCode status = U_ZERO_ERROR;
-
- int32_t i = 0;
- int32_t resultLen = 0;
- char buffer[256];
-
- for(i = 0; i < sizeof(testCases)/sizeof(testCases[0]); i++) {
- *buffer = 0;
- resultLen = uloc_getName(testCases[i].localeID, buffer, 256, &status);
- if(uprv_strcmp(testCases[i].expectedValue, buffer) != 0) {
- log_err("Expected to extract \"%s\" from \"%s\" for keyword \"%s\". Got \"%s\" instead\n",
- testCases[i].expectedValue, testCases[i].localeID, testCases[i].keyword, buffer);
- }
- }
-}
-
static void TestKeywordVariants(void)
{
struct {
@@ -1737,8 +1716,9 @@ static void TestCanonicalization(void)
{ "en-BOONT", "en_BOONT", "en__BOONT" }, /* registered name */
{ "de-1901", "de_1901", "de__1901" }, /* registered name */
{ "de-1906", "de_1906", "de__1906" }, /* registered name */
- { "sr-SP-Cyrl", "sr_SP_CYRL", "sr_Cyrl_SP" }, /* .NET name */
- { "sr-SP-Latn", "sr_SP_LATN", "sr_Latn_SP" }, /* .NET name */
+ { "sr-SP-Cyrl", "sr_SP_CYRL", "sr_Cyrl_CS" }, /* .NET name */
+ { "sr-SP-Latn", "sr_SP_LATN", "sr_Latn_CS" }, /* .NET name */
+ { "sr_YU_CYRILLIC", "sr_YU_CYRILLIC", "sr_Cyrl_CS" }, /* Linux name */
{ "uz-UZ-Cyrl", "uz_UZ_CYRL", "uz_Cyrl_UZ" }, /* .NET name */
{ "uz-UZ-Latn", "uz_UZ_LATN", "uz_Latn_UZ" }, /* .NET name */
{ "zh-CHS", "zh_CHS", "zh_Hans" }, /* .NET name */
@@ -1770,7 +1750,10 @@ static void TestCanonicalization(void)
{ "root@kw=foo", "root@kw=foo", "root@kw=foo" },
{ "@calendar=gregorian", "@calendar=gregorian", "@calendar=gregorian" },
{ "ja_JP@calendar=Japanese", "ja_JP@calendar=Japanese", "ja_JP@calendar=Japanese" },
- { "ja_JP", "ja_JP", "ja_JP" }
+ { "ja_JP", "ja_JP", "ja_JP" },
+
+ /* test case for "i-default" */
+ { "i-default", NULL, NULL }
};
static const char* label[] = { "getName", "canonicalize" };
@@ -1784,6 +1767,11 @@ static void TestCanonicalization(void)
const char* expected = (j==0) ? testCases[i].getNameID : testCases[i].canonicalID;
*buffer = 0;
status = U_ZERO_ERROR;
+
+ if (expected == NULL) {
+ expected = uloc_getDefault();
+ }
+
/* log_verbose("testing %s -> %s\n", testCases[i], testCases[i].canonicalID); */
origResultLen = _canonicalize(j, testCases[i].localeID, NULL, 0, &status);
if (status != U_BUFFER_OVERFLOW_ERROR) {
@@ -2267,13 +2255,32 @@ static void TestNonexistentLanguageExemplars(void) {
/* JB 4068 - Nonexistent language */
UErrorCode ec = U_ZERO_ERROR;
ULocaleData *uld = ulocdata_open("qqq",&ec);
- USet *nothing = ulocdata_getExemplarSet(uld, NULL, 0, ULOCDATA_ES_STANDARD, &ec);
- uset_close(nothing);
- ulocdata_close(uld);
if (ec != U_USING_DEFAULT_WARNING) {
log_err("Exemplar set for \"qqq\", expecting U_USING_DEFAULT_WARNING, but got %s\n",
u_errorName(ec));
}
+ uset_close(ulocdata_getExemplarSet(uld, NULL, 0, ULOCDATA_ES_STANDARD, &ec));
+ ulocdata_close(uld);
+}
+
+static void TestLanguageExemplarsFallbacks(void) {
+ /* Test that en_US fallsback, but en doesn't fallback. */
+ UErrorCode ec = U_ZERO_ERROR;
+ ULocaleData *uld = ulocdata_open("en_US",&ec);
+ uset_close(ulocdata_getExemplarSet(uld, NULL, 0, ULOCDATA_ES_STANDARD, &ec));
+ if (ec != U_USING_FALLBACK_WARNING) {
+ log_err("Exemplar set for \"en_US\", expecting U_USING_FALLBACK_WARNING, but got %s\n",
+ u_errorName(ec));
+ }
+ ulocdata_close(uld);
+ ec = U_ZERO_ERROR;
+ uld = ulocdata_open("en",&ec);
+ uset_close(ulocdata_getExemplarSet(uld, NULL, 0, ULOCDATA_ES_STANDARD, &ec));
+ if (ec != U_ZERO_ERROR) {
+ log_err("Exemplar set for \"en\", expecting U_ZERO_ERROR, but got %s\n",
+ u_errorName(ec));
+ }
+ ulocdata_close(uld);
}
static void TestAcceptLanguage(void) {
@@ -2337,3 +2344,280 @@ static void TestAcceptLanguage(void) {
}
}
}
+
+static const char* LOCALE_ALIAS[][2] = {
+ {"in", "id"},
+ {"in_ID", "id_ID"},
+ {"iw", "he"},
+ {"iw_IL", "he_IL"},
+ {"ji", "yi"},
+ {"en_BU", "en_MM"},
+ {"en_DY", "en_BJ"},
+ {"en_HV", "en_BF"},
+ {"en_NH", "en_VU"},
+ {"en_RH", "en_ZW"},
+ {"en_TP", "en_TL"},
+ {"en_ZR", "en_CD"}
+};
+static UBool isLocaleAvailable(UResourceBundle* resIndex, const char* loc){
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t len = 0;
+ ures_getStringByKey(resIndex, loc,&len, &status);
+ if(U_FAILURE(status)){
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static void TestCalendar() {
+#if !UCONFIG_NO_FORMATTING
+ int i;
+ UErrorCode status = U_ZERO_ERROR;
+ UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
+ if(U_FAILURE(status)){
+ log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ return;
+ }
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ UCalendar* c1 = NULL;
+ UCalendar* c2 = NULL;
+
+ /*Test function "getLocale(ULocale.VALID_LOCALE)"*/
+ const char* l1 = ucal_getLocaleByType(c1, ULOC_VALID_LOCALE, &status);
+ const char* l2 = ucal_getLocaleByType(c2, ULOC_VALID_LOCALE, &status);
+
+ if(!isLocaleAvailable(resIndex, newLoc)){
+ continue;
+ }
+ c1 = ucal_open(NULL, -1, oldLoc, UCAL_GREGORIAN, &status);
+ c2 = ucal_open(NULL, -1, newLoc, UCAL_GREGORIAN, &status);
+
+ if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0 || status!=U_ZERO_ERROR) {
+ log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
+ }
+ log_verbose("ucal_getLocaleByType old:%s new:%s\n", l1, l2);
+ ucal_close(c1);
+ ucal_close(c2);
+ }
+ ures_close(resIndex);
+#endif
+}
+
+static void TestDateFormat() {
+#if !UCONFIG_NO_FORMATTING
+ int i;
+ UErrorCode status = U_ZERO_ERROR;
+ UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
+ if(U_FAILURE(status)){
+ log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ return;
+ }
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ UDateFormat* df1 = NULL;
+ UDateFormat* df2 = NULL;
+ const char* l1 = NULL;
+ const char* l2 = NULL;
+
+ if(!isLocaleAvailable(resIndex, newLoc)){
+ continue;
+ }
+ df1 = udat_open(UDAT_FULL, UDAT_FULL,oldLoc, NULL, 0, NULL, -1, &status);
+ df2 = udat_open(UDAT_FULL, UDAT_FULL,newLoc, NULL, 0, NULL, -1, &status);
+ if(U_FAILURE(status)){
+ log_err("Creation of date format failed %s\n", u_errorName(status));
+ return;
+ }
+ /*Test function "getLocale"*/
+ l1 = udat_getLocaleByType(df1, ULOC_VALID_LOCALE, &status);
+ l2 = udat_getLocaleByType(df2, ULOC_VALID_LOCALE, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the locale by type failed. %s\n", u_errorName(status));
+ }
+ if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0) {
+ log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
+ }
+ log_verbose("udat_getLocaleByType old:%s new:%s\n", l1, l2);
+ udat_close(df1);
+ udat_close(df2);
+ }
+ ures_close(resIndex);
+#endif
+}
+
+static void TestCollation() {
+#if !UCONFIG_NO_COLLATION
+ int i;
+ UErrorCode status = U_ZERO_ERROR;
+ UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
+ if(U_FAILURE(status)){
+ log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ return;
+ }
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ UCollator* c1 = NULL;
+ UCollator* c2 = NULL;
+ const char* l1 = NULL;
+ const char* l2 = NULL;
+
+ status = U_ZERO_ERROR;
+ if(!isLocaleAvailable(resIndex, newLoc)){
+ continue;
+ }
+ if(U_FAILURE(status)){
+ log_err("Creation of collators failed %s\n", u_errorName(status));
+ return;
+ }
+ c1 = ucol_open(oldLoc, &status);
+ c2 = ucol_open(newLoc, &status);
+ l1 = ucol_getLocaleByType(c1, ULOC_VALID_LOCALE, &status);
+ l2 = ucol_getLocaleByType(c2, ULOC_VALID_LOCALE, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the locale names failed failed %s\n", u_errorName(status));
+ }
+ if (strcmp(newLoc,l1)!=0 || strcmp(l1,l2)!=0) {
+ log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
+ }
+ log_verbose("ucol_getLocaleByType old:%s new:%s\n", l1, l2);
+ ucol_close(c1);
+ ucol_close(c2);
+ }
+ ures_close(resIndex);
+#endif
+}
+
+static void TestULocale() {
+ int i;
+ UErrorCode status = U_ZERO_ERROR;
+ UResourceBundle *resIndex = ures_open(NULL,"res_index", &status);
+ if(U_FAILURE(status)){
+ log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ return;
+ }
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ UChar name1[256], name2[256];
+ char names1[256], names2[256];
+ int32_t capacity = 256;
+
+ status = U_ZERO_ERROR;
+ if(!isLocaleAvailable(resIndex, newLoc)){
+ continue;
+ }
+ uloc_getDisplayName(oldLoc, ULOC_US, name1, capacity, &status);
+ if(U_FAILURE(status)){
+ log_err("uloc_getDisplayName(%s) failed %s\n", oldLoc, u_errorName(status));
+ }
+
+ uloc_getDisplayName(newLoc, ULOC_US, name2, capacity, &status);
+ if(U_FAILURE(status)){
+ log_err("uloc_getDisplayName(%s) failed %s\n", newLoc, u_errorName(status));
+ }
+
+ if (u_strcmp(name1, name2)!=0) {
+ log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
+ }
+ u_austrcpy(names1, name1);
+ u_austrcpy(names2, name2);
+ log_verbose("uloc_getDisplayName old:%s new:%s\n", names1, names2);
+ }
+ ures_close(resIndex);
+
+}
+
+static void TestUResourceBundle() {
+ const char* us1;
+ const char* us2;
+
+ UResourceBundle* rb1 = NULL;
+ UResourceBundle* rb2 = NULL;
+ UErrorCode status = U_ZERO_ERROR;
+ int i;
+ UResourceBundle *resIndex = NULL;
+ if(U_FAILURE(status)){
+ log_err("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ return;
+ }
+ resIndex = ures_open(NULL,"res_index", &status);
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ if(!isLocaleAvailable(resIndex, newLoc)){
+ continue;
+ }
+ rb1 = ures_open(NULL, oldLoc, &status);
+ if (U_FAILURE(U_ZERO_ERROR)) {
+ log_err("ures_open(%s) failed %s\n", oldLoc, u_errorName(status));
+ }
+
+ us1 = ures_getLocale(rb1, &status);
+
+ status = U_ZERO_ERROR;
+ rb2 = ures_open(NULL, newLoc, &status);
+ if (U_FAILURE(U_ZERO_ERROR)) {
+ log_err("ures_open(%s) failed %s\n", oldLoc, u_errorName(status));
+ }
+ us2 = ures_getLocale(rb2, &status);
+
+ if (strcmp(us1,newLoc)!=0 || strcmp(us1,us2)!=0 ) {
+ log_err("The locales are not equal!.Old: %s, New: %s \n", oldLoc, newLoc);
+ }
+
+ log_verbose("ures_getStringByKey old:%s new:%s\n", us1, us2);
+ ures_close(rb1);
+ rb1 = NULL;
+ ures_close(rb2);
+ rb2 = NULL;
+ }
+ ures_close(resIndex);
+}
+
+static void TestDisplayName() {
+
+ UChar oldCountry[256] = {'\0'};
+ UChar newCountry[256] = {'\0'};
+ UChar oldLang[256] = {'\0'};
+ UChar newLang[256] = {'\0'};
+ char country[256] ={'\0'};
+ char language[256] ={'\0'};
+ int32_t capacity = 256;
+ int i =0;
+ int j=0;
+ for (i=0; i<LENGTHOF(LOCALE_ALIAS); i++) {
+ const char* oldLoc = LOCALE_ALIAS[i][0];
+ const char* newLoc = LOCALE_ALIAS[i][1];
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t available = uloc_countAvailable();
+
+ for(j=0; j<available; j++){
+
+ const char* dispLoc = uloc_getAvailable(j);
+ int32_t oldCountryLen = uloc_getDisplayCountry(oldLoc,dispLoc, oldCountry, capacity, &status);
+ int32_t newCountryLen = uloc_getDisplayCountry(newLoc, dispLoc, newCountry, capacity, &status);
+ int32_t oldLangLen = uloc_getDisplayLanguage(oldLoc, dispLoc, oldLang, capacity, &status);
+ int32_t newLangLen = uloc_getDisplayLanguage(newLoc, dispLoc, newLang, capacity, &status );
+
+ int32_t countryLen = uloc_getCountry(newLoc, country, capacity, &status);
+ int32_t langLen = uloc_getLanguage(newLoc, language, capacity, &status);
+ /* there is a display name for the current country ID */
+ if(countryLen != newCountryLen ){
+ if(u_strncmp(oldCountry,newCountry,oldCountryLen)!=0){
+ log_err("uloc_getDisplayCountry() failed for %s in display locale %s \n", oldLoc, dispLoc);
+ }
+ }
+ /* there is a display name for the current lang ID */
+ if(langLen!=newLangLen){
+ if(u_strncmp(oldLang,newLang,oldLangLen)){
+ log_err("uloc_getDisplayLanguage() failed for %s in display locale %s \n", oldLoc, dispLoc); }
+ }
+ }
+ }
+}
+
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cloctst.h b/Build/source/libs/icu-xetex/test/cintltst/cloctst.h
index b419119804f..bc098b70fb8 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cloctst.h
+++ b/Build/source/libs/icu-xetex/test/cintltst/cloctst.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -61,9 +61,6 @@ static void TestDisplayNames(void);
**/
static void TestVariantParsing(void);
- /* Make sure we can pass "de_DE@Collation=PHONEBOOK" */
- static void MoreVariants(void);
-
/* Test getting keyword enumeratin */
static void TestKeywordVariants(void);
@@ -99,4 +96,16 @@ static void cleanUpDataTable(void);
/*static void displayDataTable(void);*/
static void TestAcceptLanguage(void);
+/**
+ * test locale aliases
+*/
+static void TestCalendar(void);
+static void TestDateFormat(void);
+static void TestCollation(void);
+static void TestULocale(void);
+static void TestUResourceBundle(void);
+static void TestDisplayName(void);
+
+static void TestAcceptLanguage(void);
+
#endif
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cmsccoll.c b/Build/source/libs/icu-xetex/test/cintltst/cmsccoll.c
index 17ebdae8997..8b193195512 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cmsccoll.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cmsccoll.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2001-2005, International Business Machines Corporation and
+ * Copyright (c) 2001-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*******************************************************************************
@@ -3296,7 +3296,7 @@ static void TestNewJapanese(void) {
static const char *test2[] = {
"\\u306f\\u309d", /* H\\u309d */
- /*"\\u30cf\\u30fd",*/ /* K\\u30fd */
+ "\\u30cf\\u30fd", /* K\\u30fd */
"\\u306f\\u306f", /* HH */
"\\u306f\\u30cf", /* HK */
"\\u30cf\\u30cf", /* KK */
@@ -3379,7 +3379,7 @@ static void TestStrCollIdenticalPrefix(void) {
"ab\\ud9b0\\udc70",
"ab\\ud9b0\\udc71"
};
- genericRulesTestWithResult(rule, test, sizeof(test)/sizeof(test[0]), UCOL_EQUAL);
+ genericRulesStarterWithResult(rule, test, sizeof(test)/sizeof(test[0]), UCOL_EQUAL);
}
/* Contractions should have all their canonically equivalent */
/* strings included */
@@ -3398,7 +3398,7 @@ static void TestContractionClosure(void) {
for(i = 0; i<(sizeof(tests)/sizeof(tests[0])); i++) {
- genericRulesTestWithResult(tests[i].rules, tests[i].data, tests[i].len, UCOL_EQUAL);
+ genericRulesStarterWithResult(tests[i].rules, tests[i].data, tests[i].len, UCOL_EQUAL);
}
}
@@ -3560,7 +3560,7 @@ static void TestRuleOptions(void) {
},
{ "&[last variable]<a &[before 3][last variable]<<<c<<<b ",
- { "c", "b", "\\uD802\\uDE47", "a", "\\u02d0" }, 5
+ { "c", "b", "\\uD834\\uDF71", "a", "\\u02d0" }, 5
},
{ "&[first regular]<a"
@@ -3570,7 +3570,7 @@ static void TestRuleOptions(void) {
{ "&[before 1][last regular]<b"
"&[last regular]<a",
- { "b", "\\uD800\\uDFCF", "a", "\\u4e00" }, 4
+ { "b", "\\uD808\\uDF6E", "a", "\\u4e00" }, 4
},
{ "&[before 1][first implicit]<b"
@@ -4637,9 +4637,12 @@ TestThaiSortKey(void)
UErrorCode status = U_ZERO_ERROR;
uint8_t key[256];
int32_t keyLen = 0;
+ /* NOTE: there is a Thai tailoring that moves Yammakan. It should not move it, */
+ /* since it stays in the same relative position. This should be addressed in CLDR */
/* UCA 4.0 uint8_t expectedKey[256] = { 0x01, 0xd9, 0xb2, 0x01, 0x05, 0x00 }; */
- /* UCA 4.1 moves Yammakan */
- uint8_t expectedKey[256] = { 0x01, 0xdb, 0x3a, 0x01, 0x05, 0x00 };
+ /* UCA 4.1 uint8_t expectedKey[256] = { 0x01, 0xdb, 0x3a, 0x01, 0x05, 0x00 }; */
+ /* UCA 5.0 moves Yammakan */
+ uint8_t expectedKey[256] = { 0x01, 0xdc, 0xce, 0x01, 0x05, 0x00 };
UCollator *coll = ucol_open("th", &status);
if(U_FAILURE(status)) {
log_err("Could not open a collator, exiting (%s)\n", u_errorName(status));
@@ -4654,6 +4657,101 @@ TestThaiSortKey(void)
ucol_close(coll);
}
+static void
+TestUpperFirstQuaternary(void)
+{
+ const char* tests[] = { "B", "b", "Bb", "bB" };
+ UColAttribute att[] = { UCOL_STRENGTH, UCOL_CASE_FIRST };
+ UColAttributeValue attVals[] = { UCOL_QUATERNARY, UCOL_UPPER_FIRST };
+ genericLocaleStarterWithOptions("root", tests, sizeof(tests)/sizeof(tests[0]), att, attVals, sizeof(att)/sizeof(att[0]));
+}
+
+static void
+TestJ4960(void)
+{
+ const char* tests[] = { "\\u00e2T", "aT" };
+ UColAttribute att[] = { UCOL_STRENGTH, UCOL_CASE_LEVEL };
+ UColAttributeValue attVals[] = { UCOL_PRIMARY, UCOL_ON };
+ const char* tests2[] = { "a", "A" };
+ const char* rule = "&[first tertiary ignorable]=A=a";
+ UColAttribute att2[] = { UCOL_CASE_LEVEL };
+ UColAttributeValue attVals2[] = { UCOL_ON };
+ /* Test whether we correctly ignore primary ignorables on case level when */
+ /* we have only primary & case level */
+ genericLocaleStarterWithOptionsAndResult("root", tests, sizeof(tests)/sizeof(tests[0]), att, attVals, sizeof(att)/sizeof(att[0]), UCOL_EQUAL);
+ /* Test whether ICU4J will make case level for sortkeys that have primary strength */
+ /* and case level */
+ genericLocaleStarterWithOptions("root", tests2, sizeof(tests2)/sizeof(tests2[0]), att, attVals, sizeof(att)/sizeof(att[0]));
+ /* Test whether completely ignorable letters have case level info (they shouldn't) */
+ genericRulesStarterWithOptionsAndResult(rule, tests2, sizeof(tests2)/sizeof(tests2[0]), att2, attVals2, sizeof(att2)/sizeof(att2[0]), UCOL_EQUAL);
+}
+
+static void
+TestJ5223(void)
+{
+ static const char *test = "this is a test string";
+ UChar ustr[256];
+ int32_t ustr_length = u_unescape(test, ustr, 256);
+ unsigned char sortkey[256];
+ int32_t sortkey_length;
+ UErrorCode status = U_ZERO_ERROR;
+ static UCollator *coll = NULL;
+ coll = ucol_open("root", &status);
+ if(U_FAILURE(status)) {
+ log_err("Couldn't open UCA\n");
+ return;
+ }
+ ucol_setStrength(coll, UCOL_PRIMARY);
+ ucol_setAttribute(coll, UCOL_STRENGTH, UCOL_PRIMARY, &status);
+ ucol_setAttribute(coll, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
+ if (U_FAILURE(status)) {
+ log_err("Failed setting atributes\n");
+ return;
+ }
+ sortkey_length = ucol_getSortKey(coll, ustr, ustr_length, NULL, 0);
+ if (sortkey_length > 256) return;
+
+ /* we mark the position where the null byte should be written in advance */
+ sortkey[sortkey_length-1] = 0xAA;
+
+ /* we set the buffer size one byte higher than needed */
+ sortkey_length = ucol_getSortKey(coll, ustr, ustr_length, sortkey,
+ sortkey_length+1);
+
+ /* no error occurs (for me) */
+ if (sortkey[sortkey_length-1] == 0xAA) {
+ log_err("Hit bug at first try\n");
+ }
+
+ /* we mark the position where the null byte should be written again */
+ sortkey[sortkey_length-1] = 0xAA;
+
+ /* this time we set the buffer size to the exact amount needed */
+ sortkey_length = ucol_getSortKey(coll, ustr, ustr_length, sortkey,
+ sortkey_length);
+
+ /* now the trailing null byte is not written */
+ if (sortkey[sortkey_length-1] == 0xAA) {
+ log_err("Hit bug at second try\n");
+ }
+
+ ucol_close(coll);
+}
+
+/* Regression test for Thai partial sort key problem */
+static void
+TestJ5232(void)
+{
+ const static char *test[] = {
+ "\\u0e40\\u0e01\\u0e47\\u0e1a\\u0e40\\u0e25\\u0e47\\u0e21",
+ "\\u0e40\\u0e01\\u0e47\\u0e1a\\u0e40\\u0e25\\u0e48\\u0e21"
+ };
+
+ genericLocaleStarter("th", test, sizeof(test)/sizeof(test[0]));
+}
+
+
+
#define TEST(x) addTest(root, &x, "tscoll/cmsccoll/" # x)
void addMiscCollTest(TestNode** root)
@@ -4718,6 +4816,10 @@ void addMiscCollTest(TestNode** root)
/*TEST(TestMoreBefore);*/
TEST(TestTailorNULL);
TEST(TestThaiSortKey);
+ TEST(TestUpperFirstQuaternary);
+ TEST(TestJ4960);
+ TEST(TestJ5223);
+ TEST(TestJ5232);
}
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cmsgtst.c b/Build/source/libs/icu-xetex/test/cintltst/cmsgtst.c
index 72d08cad1d8..f35a755a70c 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cmsgtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cmsgtst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -42,7 +42,7 @@ static const char* const txt_testResultStrings[] = {
"Quotes ', {, a 1 {0}",
"Quotes ', {, a 1 {0}",
"You deposited 1 times an amount of $3,456.00 on 1/12/70",
- "{2,time,full}, for 3,456, 1 is 5:46:40 AM PST and full date is Monday, January 12, 1970",
+ "{2,time,full}, for 3,456, 1 is 5:46:40 AM PT and full date is Monday, January 12, 1970",
"{1,number,percent} for 1 is 345,600%"
};
@@ -257,7 +257,7 @@ static void MessageFormatTest( void )
/*test u_formatMessage() with sample patterns */
-static void TestSampleMessageFormat()
+static void TestSampleMessageFormat(void)
{
UChar *str;
UChar *result;
@@ -557,7 +557,7 @@ static void TestSampleFormatAndParseWithError(void)
}
/* Test u_formatMessage() and u_parseMessage() , format and parse sequence and round trip */
-static void TestSampleFormatAndParse()
+static void TestSampleFormatAndParse(void)
{
UChar *result, *tzID, *str;
@@ -650,7 +650,7 @@ static void TestSampleFormatAndParse()
}
/* test message format with a choice option */
-static void TestMsgFormatChoice()
+static void TestMsgFormatChoice(void)
{
UChar* str;
UErrorCode status = U_ZERO_ERROR;
@@ -737,7 +737,7 @@ static void TestMsgFormatChoice()
}
/*test u_parseMessage() with various test patterns */
-static void TestParseMessage()
+static void TestParseMessage(void)
{
UChar pattern[100];
UChar source[100];
@@ -1033,6 +1033,19 @@ static void MessageLength(void)
}
}
+static void TestErrorChaining(void) {
+ UErrorCode status = U_USELESS_COLLATOR_ERROR;
+
+ umsg_open(NULL, 0, NULL, NULL, &status);
+ umsg_applyPattern(NULL, NULL, 0, NULL, &status);
+ umsg_clone(NULL, &status);
+ umsg_close(NULL);
+
+ /* All of this code should have done nothing. */
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Status got changed to %s\n", u_errorName(status));
+ }
+}
void addMsgForTest(TestNode** root);
@@ -1050,6 +1063,7 @@ void addMsgForTest(TestNode** root)
addTest(root, &TestParseMessageWithValist, "tsformat/cmsgtst/TestParseMessageWithValist");
addTest(root, &TestJ904, "tsformat/cmsgtst/TestJ904");
addTest(root, &MessageLength, "tsformat/cmsgtst/MessageLength");
+ addTest(root, &TestErrorChaining, "tsformat/cmsgtst/TestErrorChaining");
}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cnmdptst.c b/Build/source/libs/icu-xetex/test/cintltst/cnmdptst.c
index 8b1f114c18b..24982323ade 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cnmdptst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cnmdptst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
********************************************************************/
/*******************************************************************************
@@ -194,42 +194,44 @@ static void TestExponential(void)
double a;
UErrorCode status = U_ZERO_ERROR;
#ifdef OS390
- double val[] = { 0.01234, 123456789, 1.23e75, -3.141592653e-78 };
+ static const double val[] = { 0.01234, 123456789, 1.23e75, -3.141592653e-78 };
#else
- double val[] = { 0.01234, 123456789, 1.23e300, -3.141592653e-271 };
+ static const double val[] = { 0.01234, 123456789, 1.23e300, -3.141592653e-271 };
#endif
- const char* pat[] = { "0.####E0", "00.000E00", "##0.######E000", "0.###E0;[0.###E0]" };
- int32_t lval[] = { 0, -1, 1, 123456789 };
+ static const char* pat[] = { "0.####E0", "00.000E00", "##0.######E000", "0.###E0;[0.###E0]" };
+ static const int32_t lval[] = { 0, -1, 1, 123456789 };
- const char* valFormat[] =
+ static const char* valFormat[] =
{
"1.234E-2", "1.2346E8", "1.23E300", "-3.1416E-271",
- "12.340E-03", "12.346E07", "12.300E299", "-31.416E-272",
- "12.34E-003", "123.4568E006", "1.23E300", "-314.1593E-273",
- "1.234E-2", "1.235E8", "1.23E300", "[3.142E-271]"
+ "12.340E-03", "12.346E07", "12.300E299", "-31.416E-272",
+ "12.34E-003", "123.4568E006", "1.23E300", "-314.1593E-273",
+ "1.234E-2", "1.235E8", "1.23E300", "[3.142E-271]"
};
- const char* lvalFormat[] =
+ static const char* lvalFormat[] =
{
"0E0", "-1E0", "1E0", "1.2346E8",
- "00.000E00", "-10.000E-01", "10.000E-01", "12.346E07",
- "0E000", "-1E000", "1E000", "123.4568E006",
- "0E0", "[1E0]", "1E0", "1.235E8"
+ "00.000E00", "-10.000E-01", "10.000E-01", "12.346E07",
+ "0E000", "-1E000", "1E000", "123.4568E006",
+ "0E0", "[1E0]", "1E0", "1.235E8"
};
- double valParse[] =
+ static const double valParse[] =
{
#ifdef OS390
0.01234, 123460000, 1.23E75, -3.1416E-78,
- 0.01234, 123460000, 1.23E75, -3.1416E-78,
- 0.01234, 123456800, 1.23E75, -3.141593E-78,
- 0.01234, 123500000, 1.23E75, -3.142E-78
+ 0.01234, 123460000, 1.23E75, -3.1416E-78,
+ 0.01234, 123456800, 1.23E75, -3.141593E-78,
+ 0.01234, 123500000, 1.23E75, -3.142E-78
#else
- 0.01234, 123460000, 1.23E300, -3.1416E-271,
- 0.01234, 123460000, 1.23E300, -3.1416E-271,
- 0.01234, 123456800, 1.23E300, -3.141593E-271,
- 0.01234, 123500000, 1.23E300, -3.142E-271
+ /* We define the whole IEEE 754 number in the 4th column because
+ Visual Age 7 has a bug in rounding numbers. */
+ 0.01234, 123460000, 1.23E300, -3.1415999999999999E-271,
+ 0.01234, 123460000, 1.23E300, -3.1415999999999999E-271,
+ 0.01234, 123456800, 1.23E300, -3.1415929999999999E-271,
+ 0.01234, 123500000, 1.23E300, -3.1420000000000001E-271
#endif
};
- int32_t lvalParse[] =
+ static const int32_t lvalParse[] =
{
0, -1, 1, 123460000,
0, -1, 1, 123460000,
@@ -465,7 +467,7 @@ static void TestCurrencyPreEuro(void)
};
const char* result[]={
- "\\u20A7 2", "2 F", "\\u00A31.50", "1,50 mk", "1,50 F", "\\u20A4 2",
+ "\\u20A7 2", "2 F", "\\u00A31.50", "1,50 mk", "2 F", "\\u20A4 2",
"1$50 Esc.", "\\u00F6S 1,50", "1,50 \\u0394\\u03C1\\u03C7", "2 \\u20A7", "1,50 FB", "\\u00a31.50",
"1,50 BF", "1,50 DM", "1,50 BF", "\\u20A7 2", "1,50 F", "\\u20A7 2",
"fl 1,50"
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cnumtst.c b/Build/source/libs/icu-xetex/test/cintltst/cnumtst.c
index a5b867cc47e..cc366b9cce6 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cnumtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cnumtst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -44,7 +44,7 @@ void addNumForTest(TestNode** root)
TESTCASE(TestNumberFormatPadding);
TESTCASE(TestInt64Format);
TESTCASE(TestNonExistentCurrency);
- /*TESTCASE(TestCurrencyRegression);*/
+ TESTCASE(TestCurrencyRegression);
TESTCASE(TestRBNFFormat);
}
@@ -97,7 +97,7 @@ static void TestNumberFormat()
int32_t resultlength;
int32_t resultlengthneeded;
int32_t parsepos;
- double d1;
+ double d1 = -1.0;
int32_t l1;
double d = -10456.37;
double a = 1234.56, a1 = 1235.0;
@@ -248,7 +248,7 @@ free(result);
{
log_err("Error in formatting using unum_formatDouble(.....): %s\n", myErrorName(status));
}
- if(u_strcmp(result, temp1)==0)
+ if(result && u_strcmp(result, temp1)==0)
log_verbose("Pass: Number Formatting using unum_formatDouble() Successful\n");
else
log_err("FAIL: Error in number formatting using unum_formatDouble()\n");
@@ -262,10 +262,14 @@ free(result);
/* Testing unum_parse() and unum_parseDouble() */
log_verbose("\nTesting unum_parseDouble()\n");
/* for (i = 0; i < 100000; i++)*/
+ if (result != NULL)
{
parsepos=0;
d1=unum_parseDouble(cur_def, result, u_strlen(result), &parsepos, &status);
}
+ else {
+ log_err("result is NULL\n");
+ }
if(U_FAILURE(status))
{
log_err("parse failed. The error is : %s\n", myErrorName(status));
@@ -305,26 +309,31 @@ free(result);
if (pos2.beginIndex == 1 && pos2.endIndex == 6) {
log_verbose("Pass: Complete number formatting using unum_format() successful\n");
} else {
- log_err("Fail: Error in complete number Formatting using unum_formatDouble()\nGot: b=%d end=%d\nExpected: b=1 end=6",
+ log_err("Fail: Error in complete number Formatting using unum_formatDouble()\nGot: b=%d end=%d\nExpected: b=1 end=6\n",
pos1.beginIndex, pos1.endIndex);
}
log_verbose("\nTesting unum_parseDoubleCurrency\n");
parsepos=0;
- d1=unum_parseDoubleCurrency(cur_def, result, u_strlen(result), &parsepos, temp2, &status);
- if (U_FAILURE(status)) {
- log_err("parse failed. The error is : %s\n", myErrorName(status));
- }
- /* Note: a==1234.56, but on parse expect a1=1235.0 */
- if (d1!=a1) {
- log_err("Fail: Error in parsing currency, got %f, expected %f\n", d1, a1);
- } else {
- log_verbose("Pass: parsed currency ammount successfully\n");
+ if (result == NULL) {
+ log_err("result is NULL\n");
}
- if (u_strcmp(temp2, temp)==0) {
- log_verbose("Pass: parsed correct currency\n");
- } else {
- log_err("Fail: parsed incorrect currency\n");
+ else {
+ d1=unum_parseDoubleCurrency(cur_def, result, u_strlen(result), &parsepos, temp2, &status);
+ if (U_FAILURE(status)) {
+ log_err("parse failed. The error is : %s\n", myErrorName(status));
+ }
+ /* Note: a==1234.56, but on parse expect a1=1235.0 */
+ if (d1!=a1) {
+ log_err("Fail: Error in parsing currency, got %f, expected %f\n", d1, a1);
+ } else {
+ log_verbose("Pass: parsed currency ammount successfully\n");
+ }
+ if (u_strcmp(temp2, temp)==0) {
+ log_verbose("Pass: parsed correct currency\n");
+ } else {
+ log_err("Fail: parsed incorrect currency\n");
+ }
}
free(result);
@@ -1287,7 +1296,7 @@ static void TestRBNFFormat() {
}
}
-static void TestCurrencyRegression() {
+static void TestCurrencyRegression(void) {
/*
I've found a case where unum_parseDoubleCurrency is not doing what I
expect. The value I pass in is $1234567890q123460000.00 and this
@@ -1334,7 +1343,7 @@ their data!
u_austrcpy(acurrency, currency);
- if(U_SUCCESS(status) || (pos != expected)) {
+ if(U_FAILURE(status) || (pos != expected)) {
log_err("unum_parseDoubleCurrency should have failed with pos %d, but gave: value %.9f, err %s, pos=%d, currency [%s]\n",
expected, d, u_errorName(status), pos, acurrency);
} else {
diff --git a/Build/source/libs/icu-xetex/test/cintltst/crestst.c b/Build/source/libs/icu-xetex/test/cintltst/crestst.c
index b6cec878f69..dce4e10fd6a 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/crestst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/crestst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*******************************************************************************
@@ -459,7 +459,7 @@ static void TestFallback()
static void
TestOpenDirect(void) {
- UResourceBundle *idna_rules, *item;
+ UResourceBundle *idna_rules, *casing, *te_IN, *ne, *item;
UErrorCode errorCode;
/*
@@ -468,7 +468,7 @@ TestOpenDirect(void) {
* from root or similar
*/
errorCode=U_ZERO_ERROR;
- idna_rules=ures_openDirect("testdata", "idna_rules", &errorCode);
+ idna_rules=ures_openDirect(loadTestData(&errorCode), "idna_rules", &errorCode);
if(U_FAILURE(errorCode)) {
log_err("ures_openDirect(\"idna_rules\") failed: %s\n", u_errorName(errorCode));
return;
@@ -489,7 +489,7 @@ TestOpenDirect(void) {
}
/* try an item in root, must fail */
- item=ures_getByKey(idna_rules, "Languages", NULL, &errorCode);
+ item=ures_getByKey(idna_rules, "ShortLanguage", NULL, &errorCode);
if(U_FAILURE(errorCode)) {
errorCode=U_ZERO_ERROR;
} else {
@@ -527,6 +527,80 @@ TestOpenDirect(void) {
return;
}
ures_close(idna_rules);
+
+ /*
+ * ICU 3.6 has new resource bundle syntax and data for bundles that do not
+ * participate in locale fallback. Now,
+ * - ures_open() works like ures_openDirect() on a bundle with a top-level
+ * type of ":table(nofallback)" _if_ the bundle exists
+ * - ures_open() will continue to find a root bundle if the requested one
+ * does not exist, unlike ures_openDirect()
+ *
+ * Test with a different bundle than above to avoid confusion in the cache.
+ */
+
+ /*
+ * verify that ures_open("casing"), which now has a nofallback declaration,
+ * does not enable fallbacks
+ */
+ errorCode=U_ZERO_ERROR;
+ casing=ures_open("testdata", "casing", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ures_open(\"casing\") failed: %s\n", u_errorName(errorCode));
+ return;
+ }
+
+ errorCode=U_ZERO_ERROR;
+ item=ures_getByKey(casing, "Info", NULL, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("casing.getByKey(Info) failed - %s\n", u_errorName(errorCode));
+ } else {
+ ures_close(item);
+ }
+
+ errorCode=U_ZERO_ERROR;
+ item=ures_getByKey(casing, "ShortLanguage", NULL, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ log_err("casing.getByKey(root key) succeeded despite nofallback declaration - %s\n", u_errorName(errorCode));
+ ures_close(item);
+ }
+ ures_close(casing);
+
+ /*
+ * verify that ures_open("ne") finds the root bundle but
+ * ures_openDirect("ne") does not
+ */
+ errorCode=U_ZERO_ERROR;
+ ne=ures_open("testdata", "ne", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ures_open(\"ne\") failed (expected to get root): %s\n", u_errorName(errorCode));
+ }
+ if(errorCode!=U_USING_DEFAULT_WARNING || 0!=uprv_strcmp("root", ures_getLocale(ne, &errorCode))) {
+ log_err("ures_open(\"ne\") found something other than \"root\" - %s\n", u_errorName(errorCode));
+ }
+ ures_close(ne);
+
+ errorCode=U_ZERO_ERROR;
+ ne=ures_openDirect("testdata", "ne", &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ log_err("ures_openDirect(\"ne\") succeeded unexpectedly\n");
+ ures_close(ne);
+ }
+
+ /* verify that ures_openDirect("te_IN") does not enable fallbacks */
+ errorCode=U_ZERO_ERROR;
+ te_IN=ures_openDirect("testdata", "te_IN", &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ures_open(\"te_IN\") failed: %s\n", u_errorName(errorCode));
+ return;
+ }
+ errorCode=U_ZERO_ERROR;
+ item=ures_getByKey(te_IN, "ShortLanguage", NULL, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ log_err("te_IN.getByKey(root key) succeeded despite use of ures_openDirect() - %s\n", u_errorName(errorCode));
+ ures_close(item);
+ }
+ ures_close(te_IN);
}
static int32_t
diff --git a/Build/source/libs/icu-xetex/test/cintltst/creststn.c b/Build/source/libs/icu-xetex/test/cintltst/creststn.c
index a79fc6232c0..f2cfa9cd727 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/creststn.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/creststn.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -25,6 +25,7 @@
#include "cstring.h"
#include "unicode/uchar.h"
#include "ucol_imp.h" /* for U_ICUDATA_COLL */
+#include "ubrkimpl.h" /* for U_ICUDATA_BRKITR */
#define RESTEST_HEAP_CHECK 0
#include "unicode/uloc.h"
@@ -175,6 +176,8 @@ static void TestGetKeywordValues(void);
static void TestGetFunctionalEquivalent(void);
static void TestCLDRStyleAliases(void);
static void TestFallbackCodes(void);
+static void TestGetUTF8String(void);
+
/***************************************************************************************/
/* Array of our test objects */
@@ -184,7 +187,7 @@ void addNEWResourceBundleTest(TestNode** root)
addTest(root, &TestErrorCodes, "tsutil/creststn/TestErrorCodes");
addTest(root, &TestEmptyBundle, "tsutil/creststn/TestEmptyBundle");
addTest(root, &TestConstruction1, "tsutil/creststn/TestConstruction1");
- addTest(root, &TestResourceBundles, "tsutil/creststn/TestResourceBundle");
+ addTest(root, &TestResourceBundles, "tsutil/creststn/TestResourceBundles");
addTest(root, &TestFallback, "tsutil/creststn/TestFallback");
addTest(root, &TestGetVersion, "tsutil/creststn/TestGetVersion");
addTest(root, &TestGetVersionColl, "tsutil/creststn/TestGetVersionColl");
@@ -203,6 +206,8 @@ void addNEWResourceBundleTest(TestNode** root)
addTest(root, &TestXPath, "tsutil/creststn/TestXPath");
addTest(root, &TestCLDRStyleAliases, "tsutil/creststn/TestCLDRStyleAliases");
addTest(root, &TestFallbackCodes, "tsutil/creststn/TestFallbackCodes");
+ addTest(root, &TestStackReuse, "tsutil/creststn/TestStackReuse");
+ addTest(root, &TestGetUTF8String, "tsutil/creststn/TestGetUTF8String");
}
@@ -414,7 +419,7 @@ static void TestDecodedBundle(){
int32_t num =0;
const char *testdatapath = loadTestData(&error);
resB = ures_open(testdatapath, "iscii", &error);
- srcFromRes=ures_getStringByKey(resB,"str",&len,&error);
+ srcFromRes=tres_getString(resB,-1,"str",&len,&error);
if(U_FAILURE(error)){
#if UCONFIG_NO_LEGACY_CONVERSION
log_info("Couldn't load iscii.bin from test data bundle, (because UCONFIG_NO_LEGACY_CONVERSION is turned on)\n");
@@ -466,7 +471,7 @@ static void TestNewTypes() {
theBundle = ures_open(testdatapath, "testtypes", &status);
- empty = ures_getStringByKey(theBundle, "emptystring", &len, &status);
+ empty = tres_getString(theBundle, -1, "emptystring", &len, &status);
if(empty && (*empty != 0 || len != 0)) {
log_err("Empty string returned invalid value\n");
}
@@ -483,7 +488,7 @@ static void TestNewTypes() {
res = ures_getByKey(theBundle, "zerotest", res, &status);
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(ures_getType(res), URES_STRING);
- zeroString=ures_getString(res, &len, &status);
+ zeroString=tres_getString(res, -1, NULL, &len, &status);
if(U_SUCCESS(status)){
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(len, 7);
@@ -569,7 +574,7 @@ static void TestNewTypes() {
/* this tests if escapes are preserved or not */
{
- const UChar* str = ures_getStringByKey(theBundle,"testescape",&len,&status);
+ const UChar* str = tres_getString(theBundle,-1,"testescape",&len,&status);
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
if(U_SUCCESS(status)){
u_charsToUChars(expect,uExpect,(int32_t)strlen(expect)+1);
@@ -608,7 +613,7 @@ static void TestNewTypes() {
patternLen = (int32_t)uprv_strlen(pattern);
expectedEscaped = (UChar*)malloc(U_SIZEOF_UCHAR * patternLen);
- got = ures_getStringByKey(theBundle,"test_unescaping",&len,&status);
+ got = tres_getString(theBundle,-1,"test_unescaping",&len,&status);
expectedLen = u_unescape(pattern,expectedEscaped,patternLen);
if(got==NULL || u_strncmp(expectedEscaped,got,expectedLen)!=0 || expectedLen != len){
log_err("genrb failed to unescape string\n");
@@ -625,7 +630,7 @@ static void TestNewTypes() {
}
/* test for jitterbug#1435 */
{
- const UChar* str = ures_getStringByKey(theBundle,"test_underscores",&len,&status);
+ const UChar* str = tres_getString(theBundle,-1,"test_underscores",&len,&status);
expect ="test message ....";
u_charsToUChars(expect,uExpect,(int32_t)strlen(expect)+1);
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
@@ -634,6 +639,7 @@ static void TestNewTypes() {
}
}
/* test for jitterbug#2626 */
+#if !UCONFIG_NO_COLLATION
{
UResourceBundle* resB = NULL;
const UChar* str = NULL;
@@ -642,7 +648,7 @@ static void TestNewTypes() {
status = U_ZERO_ERROR;
resB = ures_getByKey(theBundle, "collations", resB, &status);
resB = ures_getByKey(resB, "standard", resB, &status);
- str = ures_getStringByKey(resB,"Sequence",&strLength,&status);
+ str = tres_getString(resB,-1,"Sequence",&strLength,&status);
if(!str || U_FAILURE(status)) {
log_data_err("Could not load collations from theBundle: %s\n", u_errorName(status));
} else if(u_strcmp(my,str) != 0){
@@ -650,6 +656,7 @@ static void TestNewTypes() {
}
ures_close(resB);
}
+#endif
{
const char *sourcePath = ctest_dataSrcDir();
int32_t srcPathLen = (int32_t)strlen(sourcePath);
@@ -665,7 +672,7 @@ static void TestNewTypes() {
status = U_ZERO_ERROR;
{
int32_t strLen =0;
- const UChar* str = ures_getStringByKey(theBundle, "testincludeUTF",&strLen,&status);
+ const UChar* str = tres_getString(theBundle, -1, "testincludeUTF",&strLen,&status);
strcpy(path, "riwords.txt");
path[strlen("riwords.txt")]=0;
if(U_FAILURE(status)){
@@ -702,7 +709,7 @@ static void TestNewTypes() {
status = U_ZERO_ERROR;
{
int32_t strLen =0;
- const UChar* str = ures_getStringByKey(theBundle, "testinclude",&strLen,&status);
+ const UChar* str = tres_getString(theBundle, -1, "testinclude",&strLen,&status);
strcpy(path, "translit_rules.txt");
path[strlen("translit_rules.txt")]=0;
@@ -775,7 +782,7 @@ static void TestEmptyTypes() {
res = ures_getByKey(theBundle, "emptyexplicitstring", res, &status);
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(ures_getType(res), URES_STRING);
- zeroString=ures_getString(res, &len, &status);
+ zeroString=tres_getString(res, -1, NULL, &len, &status);
if(U_SUCCESS(status)){
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(len, 0);
@@ -790,7 +797,7 @@ static void TestEmptyTypes() {
res = ures_getByKey(theBundle, "emptystring", res, &status);
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(ures_getType(res), URES_STRING);
- zeroString=ures_getString(res, &len, &status);
+ zeroString=tres_getString(res, -1, NULL, &len, &status);
if(U_SUCCESS(status)){
CONFIRM_ErrorCode(status, U_ZERO_ERROR);
CONFIRM_INT_EQ(len, 0);
@@ -973,6 +980,7 @@ static void TestAPI() {
const char* testdatapath;
UChar* utestdatapath=NULL;
char convOutput[256];
+ UChar largeBuffer[1025];
UResourceBundle *teRes = NULL;
UResourceBundle *teFillin=NULL;
UResourceBundle *teFillin2=NULL;
@@ -1000,8 +1008,18 @@ static void TestAPI() {
}
#endif
+ u_memset(largeBuffer, 0x0030, sizeof(largeBuffer)/sizeof(largeBuffer[0]));
+ largeBuffer[sizeof(largeBuffer)/sizeof(largeBuffer[0])-1] = 0;
+
/*Test ures_openU */
+ status = U_ZERO_ERROR;
+ ures_close(ures_openU(largeBuffer, "root", &status));
+ if(status != U_ILLEGAL_ARGUMENT_ERROR){
+ log_err("ERROR: ures_openU() worked when the path is very large. It returned %s\n", myErrorName(status));
+ }
+
+ status = U_ZERO_ERROR;
ures_close(ures_openU(NULL, "root", &status));
if(U_FAILURE(status)){
log_err("ERROR: ures_openU() failed path = NULL with %s\n", myErrorName(status));
@@ -1056,7 +1074,7 @@ static void TestAPI() {
if(U_FAILURE(status)){
log_err("ERROR: ures_getByIndex on string resource failed\n");
}
- if(strcmp(u_austrcpy(convOutput, ures_getString(teFillin2, &len, &status)), "TE") != 0){
+ if(strcmp(u_austrcpy(convOutput, tres_getString(teFillin2, -1, NULL, &len, &status)), "TE") != 0){
status=U_ZERO_ERROR;
log_err("ERROR: ures_getByIndex on string resource fetched the key=%s, expected \"TE\" \n", austrdup(ures_getString(teFillin2, &len, &status)));
}
@@ -1155,8 +1173,8 @@ static void TestErrorConditions(){
log_verbose("Testing ures_openFillIn with UResourceBundle = NULL.....\n");
status=U_ZERO_ERROR;
ures_openFillIn(NULL, testdatapath, "te", &status);
- if(status != U_INTERNAL_PROGRAM_ERROR){
- log_err("ERROR: ures_openFillIn with UResourceBundle= NULL should fail. Expected U_INTERNAL_PROGRAM_ERROR, Got: %s\n",
+ if(status != U_ILLEGAL_ARGUMENT_ERROR){
+ log_err("ERROR: ures_openFillIn with UResourceBundle= NULL should fail. Expected U_ILLEGAL_ARGUMENT_ERROR, Got: %s\n",
myErrorName(status));
}
/*Test ures_getLocale() with status != U_ZERO_ERROR*/
@@ -1409,7 +1427,7 @@ static void TestGetVersionColl(){
return;
}
/* test NUL termination of UCARules */
- rules = ures_getStringByKey(resB,"UCARules",&len, &status);
+ rules = tres_getString(resB,-1,"UCARules",&len, &status);
if(!rules || U_FAILURE(status)) {
log_data_err("Could not load UCARules for locale %s\n", locName);
continue;
@@ -1502,8 +1520,8 @@ static void TestConstruction1()
log_err("construction of %s did not succeed : %s \n", locale, myErrorName(status));
return;
}
- result1= ures_getStringByKey(test1, "string_in_Root_te_te_IN", &len1, &err);
- result2= ures_getStringByKey(test2, "string_in_Root_te_te_IN", &len2, &err);
+ result1= tres_getString(test1, -1, "string_in_Root_te_te_IN", &len1, &err);
+ result2= tres_getString(test2, -1, "string_in_Root_te_te_IN", &len2, &err);
if (U_FAILURE(err) || len1==0 || len2==0) {
log_err("Something threw an error in TestConstruction(): %s\n", myErrorName(status));
return;
@@ -1670,7 +1688,7 @@ static UBool testTag(const char* frag,
status = U_ZERO_ERROR;
len=0;
- string=ures_getStringByKey(theBundle, tag, &len, &status);
+ string=tres_getString(theBundle, -1, tag, &len, &status);
if(U_SUCCESS(status)) {
expected_string=(UChar*)malloc(sizeof(UChar)*(u_strlen(base) + 4));
u_strcpy(expected_string,base);
@@ -1716,7 +1734,7 @@ static UBool testTag(const char* frag,
u_strcat(expected_string, element);
arrayItem1=ures_getNextResource(array, arrayItem1, &status);
if(U_SUCCESS(status)){
- CONFIRM_EQ(ures_getString(arrayItem1, &len, &status),expected_string);
+ CONFIRM_EQ(tres_getString(arrayItem1, -1, NULL, &len, &status),expected_string);
}
}
@@ -1808,7 +1826,7 @@ static UBool testTag(const char* frag,
u_strcat(expected_string, element);
arrayItem1=ures_getNextResource(tableRow, arrayItem1, &status);
if(U_SUCCESS(status)){
- const UChar *stringValue=ures_getString(arrayItem1, &len, &status);
+ const UChar *stringValue=tres_getString(arrayItem1, -1, NULL, &len, &status);
CONFIRM_EQ(stringValue, expected_string);
}
}
@@ -1925,7 +1943,7 @@ static UBool testTag(const char* frag,
}else{
record_fail();
}
- t=(UChar*)ures_getString(tagelement, &len, &status);
+ t=(UChar*)tres_getString(tagelement, -1, NULL, &len, &status);
if(!U_FAILURE(status)){
string=t;
}
@@ -1994,11 +2012,11 @@ static void TestFallback()
/* clear it out.. just do some calls to get the gears turning */
- junk = ures_getStringByKey(fr_FR, "LocaleID", &resultLen, &status);
+ junk = tres_getString(fr_FR, -1, "LocaleID", &resultLen, &status);
status = U_ZERO_ERROR;
- junk = ures_getStringByKey(fr_FR, "LocaleString", &resultLen, &status);
+ junk = tres_getString(fr_FR, -1, "LocaleString", &resultLen, &status);
status = U_ZERO_ERROR;
- junk = ures_getStringByKey(fr_FR, "LocaleID", &resultLen, &status);
+ junk = tres_getString(fr_FR, -1, "LocaleID", &resultLen, &status);
status = U_ZERO_ERROR;
/* OK first one. This should be a Default value. */
@@ -2013,7 +2031,7 @@ static void TestFallback()
ures_close(subResource);
/* and this is a Fallback, to fr */
- junk = ures_getStringByKey(fr_FR, "Countries", &resultLen, &status);
+ junk = tres_getString(fr_FR, -1, "Countries", &resultLen, &status);
if(status != U_USING_FALLBACK_WARNING)
{
log_data_err("Expected U_USING_FALLBACK_ERROR when trying to get Countries from fr_FR, got %d\n",
@@ -2030,18 +2048,20 @@ static void TestFallback()
UResourceBundle* myResB = ures_open(NULL,"no_NO_NY",&err);
UResourceBundle* resLocID = ures_getByKey(myResB, "Version", NULL, &err);
UResourceBundle* tResB;
- static const UChar versionStr[] = { 0x0031, 0x002E, 0x0032, 0x0037, 0x0000};
+ const UChar* version = NULL;
+ static const UChar versionStr[] = { 0x0031, 0x002E, 0x0033, 0x0037, 0x0000};
if(err != U_ZERO_ERROR){
log_data_err("Expected U_ZERO_ERROR when trying to test no_NO_NY aliased to nn_NO for Version err=%s\n",u_errorName(err));
return;
}
- if(u_strcmp(ures_getString(resLocID, &resultLen, &err), versionStr) != 0){
+ version = tres_getString(resLocID, -1, NULL, &resultLen, &err);
+ if(u_strcmp(version, versionStr) != 0){
log_data_err("ures_getString(resLocID, &resultLen, &err) returned an unexpected version value\n");
}
- tResB = ures_getByKey(myResB, "calendar", NULL, &err);
+ tResB = ures_getByKey(myResB, "zoneStrings", NULL, &err);
if(err != U_USING_FALLBACK_WARNING){
- log_err("Expected U_USING_FALLBACK_ERROR when trying to test no_NO_NY aliased with nn_NO_NY for calendar err=%s\n",u_errorName(err));
+ log_err("Expected U_USING_FALLBACK_ERROR when trying to test no_NO_NY aliased with nn_NO_NY for zoneStrings err=%s\n",u_errorName(err));
}
ures_close(resLocID);
ures_close(myResB);
@@ -2064,8 +2084,8 @@ static void TestResourceLevelAliasing(void) {
UResourceBundle *en = NULL, *uk = NULL, *testtypes = NULL;
const char* testdatapath = NULL;
const UChar *string = NULL, *sequence = NULL;
- const uint8_t *binary = NULL, *binSequence = NULL;
- int32_t strLen = 0, seqLen = 0, binLen = 0, binSeqLen = 0;
+ /*const uint8_t *binary = NULL, *binSequence = NULL;*/
+ int32_t strLen = 0, seqLen = 0;/*, binLen = 0, binSeqLen = 0;*/
char buffer[100];
char *s;
@@ -2114,16 +2134,16 @@ static void TestResourceLevelAliasing(void) {
goto cleanup;
}
- sequence = ures_getString(uk, &seqLen, &status);
+ sequence = tres_getString(uk, -1, NULL, &seqLen, &status);
tb = ures_getByKey(aliasB, "referencingalias", tb, &status);
- string = ures_getString(tb, &strLen, &status);
+ string = tres_getString(tb, -1, NULL, &strLen, &status);
if(seqLen != strLen || u_strncmp(sequence, string, seqLen) != 0) {
log_err("Referencing alias didn't get the right string\n");
}
- string = ures_getStringByKey(aliasB, "referencingalias", &strLen, &status);
+ string = tres_getString(aliasB, -1, "referencingalias", &strLen, &status);
if(seqLen != strLen || u_strncmp(sequence, string, seqLen) != 0) {
log_err("Referencing alias didn't get the right string\n");
}
@@ -2133,7 +2153,7 @@ static void TestResourceLevelAliasing(void) {
checkStatus(__LINE__, U_ZERO_ERROR, status);
tb = ures_getByIndex(tb, 2, tb, &status);
checkStatus(__LINE__, U_ZERO_ERROR, status);
- string = ures_getString(tb, &strLen, &status);
+ string = tres_getString(tb, -1, NULL, &strLen, &status);
checkStatus(__LINE__, U_ZERO_ERROR, status);
if(U_FAILURE(status)) {
@@ -2142,28 +2162,34 @@ static void TestResourceLevelAliasing(void) {
log_err("Referencing alias didn't get the right string\n");
}
- /* check whether the binary collation data is properly referenced by an alias */
- uk = ures_findResource("th/BreakDictionaryData", uk, &status);
- binSequence = ures_getBinary(uk, &binSeqLen, &status);
-
- tb = ures_getByKey(aliasB, "BreakDictionaryData", tb, &status);
- binary = ures_getBinary(tb, &binLen, &status);
-
- if(U_FAILURE(status)) {
- log_err("%s trying to read binary BreakDictionaryData\n");
- } else if(binSeqLen != binLen || memcmp(binSequence, binary, binSeqLen) != 0) {
- log_err("Referencing alias didn't get the right data\n");
+
+ {
+ UResourceBundle* ja = ures_open(U_ICUDATA_BRKITR,"ja", &status);
+ const UChar *got = NULL, *exp=NULL;
+ int32_t gotLen = 0, expLen=0;
+ ja = ures_getByKey(ja, "boundaries", ja, &status);
+ exp = tres_getString(ja, -1, "word", &expLen, &status);
+
+ tb = ures_getByKey(aliasB, "boundaries", tb, &status);
+ got = tres_getString(tb, -1, "word", &gotLen, &status);
+
+ if(U_FAILURE(status)) {
+ log_err("%s trying to read str boundaries\n");
+ } else if(gotLen != expLen || u_strncmp(exp, got, gotLen) != 0) {
+ log_err("Referencing alias didn't get the right data\n");
+ }
+ ures_close(ja);
+ status = U_ZERO_ERROR;
}
-
/* simple alias */
testtypes = ures_open(testdatapath, "testtypes", &status);
strcpy(buffer, "menu/file/open");
s = buffer;
uk = ures_findSubResource(testtypes, s, uk, &status);
- sequence = ures_getString(uk, &seqLen, &status);
+ sequence = tres_getString(uk, -1, NULL, &seqLen, &status);
tb = ures_getByKey(aliasB, "simplealias", tb, &status);
- string = ures_getString(tb, &strLen, &status);
+ string = tres_getString(tb, -1, NULL, &strLen, &status);
if(U_FAILURE(status) || seqLen != strLen || u_strncmp(sequence, string, seqLen) != 0) {
log_err("Referencing alias didn't get the right string\n");
@@ -2173,10 +2199,10 @@ static void TestResourceLevelAliasing(void) {
tb = ures_getByKey(aliasB, "zoneTests", tb, &status);
tb = ures_getByKey(tb, "zoneAlias2", tb, &status);
- string = ures_getString(tb, &strLen, &status);
+ string = tres_getString(tb, -1, NULL, &strLen, &status);
en = ures_findResource("en/zoneStrings/3/0", en, &status);
- sequence = ures_getString(en, &seqLen, &status);
+ sequence = tres_getString(en, -1, NULL, &seqLen, &status);
if(U_FAILURE(status) || seqLen != strLen || u_strncmp(sequence, string, seqLen) != 0) {
log_err("Referencing alias didn't get the right string\n");
@@ -2207,23 +2233,35 @@ static void TestResourceLevelAliasing(void) {
log_err("Couldn't get testGetStringByKeyAliasing resource\n");
}
for(i = 0; i < sizeof(strings)/sizeof(strings[0]); i++) {
- result = ures_getStringByKey(tb, keys[i], &resultLen, &status);
+ result = tres_getString(tb, -1, keys[i], &resultLen, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key %s failed. Error: %s\n", keys[i], u_errorName(status));
+ continue;
+ }
uBufferLen = u_unescape(strings[i], uBuffer, 256);
if(resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
log_err("Didn't get correct string while accesing alias table by key (%s)\n", keys[i]);
}
}
for(i = 0; i < sizeof(strings)/sizeof(strings[0]); i++) {
- result = ures_getStringByIndex(tb, i, &resultLen, &status);
+ result = tres_getString(tb, i, NULL, &resultLen, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key %s failed. Error: %s\n", keys[i], u_errorName(status));
+ continue;
+ }
uBufferLen = u_unescape(strings[i], uBuffer, 256);
- if(resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
+ if(result==NULL || resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
log_err("Didn't get correct string while accesing alias table by index (%s)\n", strings[i]);
}
}
for(i = 0; i < sizeof(strings)/sizeof(strings[0]); i++) {
result = ures_getNextString(tb, &resultLen, &key, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key %s failed. Error: %s\n", keys[i], u_errorName(status));
+ continue;
+ }
uBufferLen = u_unescape(strings[i], uBuffer, 256);
- if(resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
+ if(result==NULL || resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
log_err("Didn't get correct string while iterating over alias table (%s)\n", strings[i]);
}
}
@@ -2232,20 +2270,35 @@ static void TestResourceLevelAliasing(void) {
log_err("Couldn't get testGetStringByIndexAliasing resource\n");
}
for(i = 0; i < sizeof(strings)/sizeof(strings[0]); i++) {
- result = ures_getStringByIndex(tb, i, &resultLen, &status);
+ result = tres_getString(tb, i, NULL, &resultLen, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key %s failed. Error: %s\n", keys[i], u_errorName(status));
+ continue;
+ }
uBufferLen = u_unescape(strings[i], uBuffer, 256);
- if(resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
+ if(result==NULL || resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
log_err("Didn't get correct string while accesing alias by index in an array (%s)\n", strings[i]);
}
}
for(i = 0; i < sizeof(strings)/sizeof(strings[0]); i++) {
result = ures_getNextString(tb, &resultLen, &key, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key %s failed. Error: %s\n", keys[i], u_errorName(status));
+ continue;
+ }
uBufferLen = u_unescape(strings[i], uBuffer, 256);
- if(resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
+ if(result==NULL || resultLen != uBufferLen || u_strncmp(result, uBuffer, resultLen) != 0) {
log_err("Didn't get correct string while iterating over aliases in an array (%s)\n", strings[i]);
}
}
}
+ tb = ures_getByKey(aliasB, "testAliasToTree", tb, &status);
+ if(U_FAILURE(status)){
+ log_err("Fetching the resource with key \"testAliasToTree\" failed. Error: %s\n", u_errorName(status));
+ }
+ if (strcmp(ures_getKey(tb), "collations") != 0) {
+ log_err("ures_getKey(aliasB) unexpectedly returned %s instead of \"collations\"\n", ures_getKey(tb));
+ }
cleanup:
ures_close(aliasB);
ures_close(tb);
@@ -2261,8 +2314,13 @@ static void TestDirectAccess(void) {
char buffer[100];
char *s;
+ /*const char* testdatapath=loadTestData(&status);
+ if(U_FAILURE(status)){
+ log_err("Could not load testdata.dat %s \n",myErrorName(status));
+ return;
+ }*/
- t = ures_findResource("en/zoneStrings/3/2", t, &status);
+ t = ures_findResource("/testdata/te/zoneStrings/3/2", t, &status);
if(U_FAILURE(status)) {
log_err("Couldn't access indexed resource, error %s\n", u_errorName(status));
status = U_ZERO_ERROR;
@@ -2272,7 +2330,7 @@ static void TestDirectAccess(void) {
log_err("Got a strange key, expected NULL, got %s\n", key);
}
}
- t = ures_findResource("en/zoneStrings/3", t, &status);
+ t = ures_findResource("en/calendar/gregorian/DateTimePatterns/3", t, &status);
if(U_FAILURE(status)) {
log_err("Couldn't access indexed resource, error %s\n", u_errorName(status));
status = U_ZERO_ERROR;
@@ -2316,7 +2374,7 @@ static void TestDirectAccess(void) {
}
}
- t = ures_findResource("root/calendar/islamic-civil/DateTimePatterns", t, &status);
+ t = ures_findResource("root/calendar/islamic-civil/DateTime", t, &status);
if(U_SUCCESS(status)) {
log_err("This resource does not exist. How did it get here?\n");
}
@@ -2333,7 +2391,7 @@ static void TestDirectAccess(void) {
t2 = ures_open(NULL, "he", &status);
t2 = ures_getByKeyWithFallback(t2, "calendar", t2, &status);
t2 = ures_getByKeyWithFallback(t2, "islamic-civil", t2, &status);
- t2 = ures_getByKeyWithFallback(t2, "DateTimePatterns", t2, &status);
+ t2 = ures_getByKeyWithFallback(t2, "DateTime", t2, &status);
if(U_SUCCESS(status)) {
log_err("This resource does not exist. How did it get here?\n");
}
@@ -2354,7 +2412,7 @@ static void TestDirectAccess(void) {
t2 = ures_open(NULL, "root", &status);
t2 = ures_getByKeyWithFallback(t2, "calendar", t2, &status);
t2 = ures_getByKeyWithFallback(t2, "islamic-civil", t2, &status);
- t2 = ures_getByKeyWithFallback(t2, "DateTimePatterns", t2, &status);
+ t2 = ures_getByKeyWithFallback(t2, "DateTime", t2, &status);
if(U_SUCCESS(status)) {
log_err("This resource does not exist. How did it get here?\n");
}
@@ -2458,10 +2516,10 @@ static void TestGetFunctionalEquivalentOf(const char *path, const char *resName,
log_verbose("got: %c %s\n", expectAvail?'t':'f',equivLocale);
if((gotAvail != expectAvail) || strcmp(equivLocale, expectLocale)) {
- log_err("FAIL: got avail=%c, loc=%s but expected #%d: %c\t%s\t-> loc=%s\n",
- gotAvail?'t':'f', equivLocale,
- i/3,
- expectAvail?'t':'f', inLocale, expectLocale);
+ log_err("FAIL: got avail=%c, loc=%s but expected #%d: %c\t%s\t-> loc=%s\n",
+ gotAvail?'t':'f', equivLocale,
+ i/3,
+ expectAvail?'t':'f', inLocale, expectLocale);
}
}
@@ -2508,8 +2566,8 @@ static void TestGetFunctionalEquivalent(void) {
static const char *calCases[] = {
/* avail locale equiv */
- "t", "en_US", "en@calendar=gregorian",
- "f", "ja_JP_TOKYO", "ja@calendar=gregorian",
+ "t", "en_US_POSIX", "en_US@calendar=gregorian",
+ "f", "ja_JP_TOKYO", "ja_JP@calendar=gregorian",
"f", "ja_JP_TOKYO@calendar=japanese", "ja@calendar=japanese",
"t", "sr@calendar=gregorian", "sr@calendar=gregorian",
"t", "en", "en@calendar=gregorian",
@@ -2572,7 +2630,7 @@ static void TestXPath(void) {
return;
}
- result = ures_getString(alias, &len, &status);
+ result = tres_getString(alias, -1, NULL, &len, &status);
if(U_FAILURE(status) || result == NULL || u_strcmp(result, expResult)) {
log_err("Couldn't get correct string value (%s)\n", myErrorName(status));
}
@@ -2584,7 +2642,7 @@ static void TestXPath(void) {
return;
}
- result = ures_getString(alias, &len, &status);
+ result = tres_getString(alias, -1, NULL, &len, &status);
if(U_FAILURE(status) || result == NULL || u_strcmp(result, expResult)) {
log_err("Couldn't get correct string value (%s)\n", myErrorName(status));
}
@@ -2596,7 +2654,7 @@ static void TestXPath(void) {
return;
}
- result = ures_getString(alias, &len, &status);
+ result = tres_getString(alias, -1, NULL, &len, &status);
if(U_FAILURE(status) || result == NULL || u_strcmp(result, expResult)) {
log_err("Couldn't get correct string value (%s)\n", myErrorName(status));
}
@@ -2636,7 +2694,7 @@ static void TestCLDRStyleAliases(void) {
resource[2]=0;
/* instead of sprintf(resource, "a%i", i); */
a = ures_getByKeyWithFallback(alias, resource, a, &status);
- result = ures_getString(a, &len, &status);
+ result = tres_getString(a, -1, NULL, &len, &status);
u_charsToUChars(expects[i], expected, strlen(expects[i])+1);
if(U_FAILURE(status) || !result || u_strcmp(result, expected)) {
log_err("CLDR style aliases failed resource with name \"%s\" resource, exp %s, got %S (%s)\n", resource, expects[i], result, myErrorName(status));
@@ -2685,3 +2743,187 @@ static void TestFallbackCodes(void) {
ures_close(r);
ures_close(res);
}
+
+/* This test will crash if this doesn't work. Results don't need testing. */
+static void TestStackReuse(void) {
+ UResourceBundle table;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ UResourceBundle *rb = ures_open(NULL, "en_US", &errorCode);
+
+ if(U_FAILURE(errorCode)) {
+ log_err("Could not load en_US locale. status=%s\n",myErrorName(errorCode));
+ return;
+ }
+ ures_initStackObject(&table);
+ ures_getByKeyWithFallback(rb, "Types", &table, &errorCode);
+ ures_getByKeyWithFallback(&table, "collation", &table, &errorCode);
+ ures_close(rb);
+ ures_close(&table);
+}
+
+/* Test ures_getUTF8StringXYZ() --------------------------------------------- */
+
+/*
+ * Replace most ures_getStringXYZ() with this function which wraps the
+ * desired call and also calls the UTF-8 variant and checks that it works.
+ */
+extern const UChar *
+tres_getString(const UResourceBundle *resB,
+ int32_t index, const char *key,
+ int32_t *length,
+ UErrorCode *status) {
+ char buffer8[16];
+ char *p8;
+ const UChar *s16;
+ const char *s8;
+ UChar32 c16, c8;
+ int32_t length16, length8, i16, i8;
+ UBool forceCopy;
+
+ if(length == NULL) {
+ length = &length16;
+ }
+ if(index >= 0) {
+ s16 = ures_getStringByIndex(resB, index, length, status);
+ } else if(key != NULL) {
+ s16 = ures_getStringByKey(resB, key, length, status);
+ } else {
+ s16 = ures_getString(resB, length, status);
+ }
+ if(U_FAILURE(*status)) {
+ return s16;
+ }
+ length16 = *length;
+
+ /* try the UTF-8 variant of ures_getStringXYZ() */
+ for(forceCopy = FALSE; forceCopy <= TRUE; ++forceCopy) {
+ p8 = buffer8;
+ length8 = (int32_t)sizeof(buffer8);
+ if(index >= 0) {
+ s8 = ures_getUTF8StringByIndex(resB, index, p8, &length8, forceCopy, status);
+ } else if(key != NULL) {
+ s8 = ures_getUTF8StringByKey(resB, key, p8, &length8, forceCopy, status);
+ } else {
+ s8 = ures_getUTF8String(resB, p8, &length8, forceCopy, status);
+ }
+ if(*status == U_INVALID_CHAR_FOUND) {
+ /* the UTF-16 string contains an unpaired surrogate, can't test UTF-8 variant */
+ return s16;
+ }
+ if(*status == U_BUFFER_OVERFLOW_ERROR) {
+ *status = U_ZERO_ERROR;
+ p8 = (char *)malloc(++length8);
+ if(p8 == NULL) {
+ return s16;
+ }
+ if(index >= 0) {
+ s8 = ures_getUTF8StringByIndex(resB, index, p8, &length8, forceCopy, status);
+ } else if(key != NULL) {
+ s8 = ures_getUTF8StringByKey(resB, key, p8, &length8, forceCopy, status);
+ } else {
+ s8 = ures_getUTF8String(resB, p8, &length8, forceCopy, status);
+ }
+ }
+ if(U_FAILURE(*status)) {
+ /* something unexpected happened */
+ if(p8 != buffer8) {
+ free(p8);
+ }
+ return s16;
+ }
+
+ if(forceCopy && s8 != p8) {
+ log_err("ures_getUTF8String(%p, %ld, '%s') did not write the string to dest\n",
+ resB, (long)index, key);
+ }
+
+ /* verify NUL-termination */
+ if((p8 != buffer8 || length8 < sizeof(buffer8)) && s8[length8] != 0) {
+ log_err("ures_getUTF8String(%p, %ld, '%s') did not NUL-terminate\n",
+ resB, (long)index, key);
+ }
+ /* verify correct string */
+ i16 = i8 = 0;
+ while(i16 < length16 && i8 < length8) {
+ U16_NEXT(s16, i16, length16, c16);
+ U8_NEXT(s8, i8, length8, c8);
+ if(c16 != c8) {
+ log_err("ures_getUTF8String(%p, %ld, '%s') got a bad string, c16=U+%04lx!=U+%04lx=c8 before i16=%ld\n",
+ resB, (long)index, key, (long)c16, (long)c8, (long)i16);
+ }
+ }
+ /* verify correct length */
+ if(i16 < length16) {
+ log_err("ures_getUTF8String(%p, %ld, '%s') UTF-8 string too short, length8=%ld, length16=%ld\n",
+ resB, (long)index, key, (long)length8, (long)length16);
+ }
+ if(i8 < length8) {
+ log_err("ures_getUTF8String(%p, %ld, '%s') UTF-8 string too long, length8=%ld, length16=%ld\n",
+ resB, (long)index, key, (long)length8, (long)length16);
+ }
+
+ /* clean up */
+ if(p8 != buffer8) {
+ free(p8);
+ }
+ }
+ return s16;
+}
+
+/*
+ * API tests for ures_getUTF8String().
+ * Most cases are handled by tres_getString(), which leaves argument checking
+ * to be tested here.
+ * Since the variants share most of their implementation, we only need to test
+ * one of them.
+ * We also need not test for checking arguments which will be checked by the
+ * UTF-16 ures_getStringXYZ() that are called internally.
+ */
+static void
+TestGetUTF8String() {
+ UResourceBundle *res;
+ const char *testdatapath;
+ char buffer8[16];
+ const char *s8;
+ int32_t length8;
+ UErrorCode status;
+
+ status = U_ZERO_ERROR;
+ testdatapath = loadTestData(&status);
+ if(U_FAILURE(status)) {
+ log_err("Could not load testdata.dat - %s\n", u_errorName(status));
+ return;
+ }
+
+ res = ures_open(testdatapath, "", &status);
+ if(U_FAILURE(status)) {
+ log_err("Unable to ures_open(testdata, \"\") - %s\n", u_errorName(status));
+ return;
+ }
+
+ /* one good call */
+ status = U_ZERO_ERROR;
+ length8 = (int32_t)sizeof(buffer8);
+ s8 = ures_getUTF8StringByKey(res, "string_only_in_Root", buffer8, &length8, FALSE, &status);
+ if(status != U_ZERO_ERROR) {
+ log_err("ures_getUTF8StringByKey(testdata/root string) malfunctioned - %s\n", u_errorName(status));
+ }
+
+ /* negative capacity */
+ status = U_ZERO_ERROR;
+ length8 = -1;
+ s8 = ures_getUTF8StringByKey(res, "string_only_in_Root", buffer8, &length8, FALSE, &status);
+ if(status != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("ures_getUTF8StringByKey(capacity<0) malfunctioned - %s\n", u_errorName(status));
+ }
+
+ /* capacity>0 but dest=NULL */
+ status = U_ZERO_ERROR;
+ length8 = (int32_t)sizeof(buffer8);
+ s8 = ures_getUTF8StringByKey(res, "string_only_in_Root", NULL, &length8, FALSE, &status);
+ if(status != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("ures_getUTF8StringByKey(dest=NULL capacity>0) malfunctioned - %s\n", u_errorName(status));
+ }
+
+ ures_close(res);
+}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/creststn.h b/Build/source/libs/icu-xetex/test/cintltst/creststn.h
index 9b3ac947cc2..f6becdb979c 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/creststn.h
+++ b/Build/source/libs/icu-xetex/test/cintltst/creststn.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/***************************************************************************
@@ -18,8 +18,17 @@
/* C TEST FOR NEW RESOURCEBUNDLE API*/
#include "cintltst.h"
-
-
+/*
+ * Test wrapper for ures_getStringXYZ(), for testing other variants of
+ * these functions as well.
+ * If index>=0, calls ures_getStringByIndex().
+ * If key!=NULL, calls ures_getStringByKey().
+ */
+extern const UChar *
+tres_getString(const UResourceBundle *resB,
+ int32_t index, const char *key,
+ int32_t *length,
+ UErrorCode *status);
void addNEWResourceBundleTest(TestNode**);
@@ -62,6 +71,8 @@ static void TestJB3763(void);
static void TestXPath(void);
+static void TestStackReuse(void);
+
/**
* extensive subtests called by TestResourceBundles
**/
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cstrcase.c b/Build/source/libs/icu-xetex/test/cintltst/cstrcase.c
index 0c98763f940..cdbb85350f1 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cstrcase.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cstrcase.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -25,12 +25,11 @@
#include "unicode/ucasemap.h"
#include "cmemory.h"
#include "cintltst.h"
-#include "cucdtst.h"
/* test string case mapping functions --------------------------------------- */
-U_CFUNC void
-TestCaseLower() {
+static void
+TestCaseLower(void) {
static const UChar
beforeLower[]= { 0x61, 0x42, 0x49, 0x3a3, 0xdf, 0x3a3, 0x2f, 0xd93f, 0xdfff },
@@ -127,8 +126,8 @@ buffer[length]==0 ? "yes" : "no",
}
}
-U_CFUNC void
-TestCaseUpper() {
+static void
+TestCaseUpper(void) {
static const UChar
beforeUpper[]= { 0x61, 0x42, 0x69, 0x3c2, 0xdf, 0x3c3, 0x2f, 0xfb03, 0xd93f, 0xdfff },
@@ -223,8 +222,8 @@ TestCaseUpper() {
#if !UCONFIG_NO_BREAK_ITERATION
-U_CFUNC void
-TestCaseTitle() {
+static void
+TestCaseTitle(void) {
static const UChar
beforeTitle[]= { 0x61, 0x42, 0x20, 0x69, 0x3c2, 0x20, 0xdf, 0x3c3, 0x2f, 0xfb03, 0xd93f, 0xdfff },
@@ -331,8 +330,8 @@ TestCaseTitle() {
/* test case folding and case-insensitive string compare -------------------- */
-U_CFUNC void
-TestCaseFolding() {
+static void
+TestCaseFolding(void) {
/*
* CaseFolding.txt says about i and its cousins:
* 0049; C; 0069; # LATIN CAPITAL LETTER I
@@ -557,8 +556,8 @@ TestCaseFolding() {
}
}
-U_CFUNC void
-TestCaseCompare() {
+static void
+TestCaseCompare(void) {
static const UChar
mixed[]= { 0x61, 0x42, 0x131, 0x3a3, 0xdf, 0xfb03, 0xd93f, 0xdfff, 0 },
@@ -653,8 +652,8 @@ TestCaseCompare() {
* test cases for actual case mappings using UCaseMap see
* intltest utility/UnicodeStringTest/StringCaseTest/TestCasing
*/
-U_CFUNC void
-TestUCaseMap() {
+static void
+TestUCaseMap(void) {
static const char
aBc[] ={ 0x61, 0x42, 0x63, 0 },
abc[] ={ 0x61, 0x62, 0x63, 0 },
@@ -779,3 +778,17 @@ TestUCaseMap() {
ucasemap_close(csm);
}
+
+void addCaseTest(TestNode** root);
+
+void addCaseTest(TestNode** root) {
+ /* cstrcase.c functions, declared in cucdtst.h */
+ addTest(root, &TestCaseLower, "tsutil/cstrcase/TestCaseLower");
+ addTest(root, &TestCaseUpper, "tsutil/cstrcase/TestCaseUpper");
+#if !UCONFIG_NO_BREAK_ITERATION
+ addTest(root, &TestCaseTitle, "tsutil/cstrcase/TestCaseTitle");
+#endif
+ addTest(root, &TestCaseFolding, "tsutil/cstrcase/TestCaseFolding");
+ addTest(root, &TestCaseCompare, "tsutil/cstrcase/TestCaseCompare");
+ addTest(root, &TestUCaseMap, "tsutil/cstrcase/TestUCaseMap");
+}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cucdapi.c b/Build/source/libs/icu-xetex/test/cintltst/cucdapi.c
index 01a94bb6148..4a919c40e94 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cucdapi.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cucdapi.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -11,6 +11,8 @@
#include "cintltst.h"
#include "cucdapi.h"
+#define ARRAY_SIZE(array) (int32_t)(sizeof array / sizeof array[0])
+
void TestUScriptCodeAPI(){
int i =0;
int numErrors =0;
@@ -194,7 +196,7 @@ void TestUScriptCodeAPI(){
0x0001D1AA, /* USCRIPT_INHERITED*/
0x00020000, /* USCRIPT_HAN*/
0x00000D02, /* USCRIPT_MALAYALAM*/
- 0x00000D00, /* USCRIPT_COMMON */
+ 0x00000D00, /* USCRIPT_UNKNOWN (new Zzzz value in Unicode 5.0) */
0x00000000, /* USCRIPT_COMMON*/
0x0001D169, /* USCRIPT_INHERITED*/
0x0001D182, /* USCRIPT_INHERITED*/
@@ -221,7 +223,7 @@ void TestUScriptCodeAPI(){
USCRIPT_INHERITED,
USCRIPT_HAN ,
USCRIPT_MALAYALAM,
- USCRIPT_COMMON,
+ USCRIPT_UNKNOWN,
USCRIPT_COMMON,
USCRIPT_INHERITED ,
USCRIPT_INHERITED ,
@@ -283,10 +285,59 @@ void TestUScriptCodeAPI(){
for(i=0; (UScriptCode)i< USCRIPT_CODE_LIMIT; i++){
const char* name = uscript_getName((UScriptCode)i);
if(name==NULL || strcmp(name,"")==0){
- log_err("uscript_getName failed for code : %i\n",i);
+ log_err("uscript_getName failed for code %i: name is NULL or \"\"\n",i);
}
}
}
-
+ {
+ /*
+ * These script codes were originally added to ICU pre-3.6, so that ICU would
+ * have all ISO 15924 script codes. ICU was then based on Unicode 4.1.
+ * These script codes were added with only short names because we don't
+ * want to invent long names ourselves.
+ * Unicode 5 and later encode some of these scripts and give them long names.
+ * Whenever this happens, the long script names here need to be updated.
+ */
+ static const char* expectedLong[] = {
+ "Balinese", "Batk", "Blis", "Brah", "Cham", "Cirt", "Cyrs", "Egyd", "Egyh", "Egyp",
+ "Geok", "Hans", "Hant", "Hmng", "Hung", "Inds", "Java", "Kali", "Latf", "Latg",
+ "Lepc", "Lina", "Mand", "Maya", "Mero", "Nko", "Orkh", "Perm", "Phags_Pa", "Phoenician",
+ "Plrd", "Roro", "Sara", "Syre", "Syrj", "Syrn", "Teng", "Vaii", "Visp", "Cuneiform",
+ "Zxxx", "Unknown",
+ };
+ static const char* expectedShort[] = {
+ "Bali", "Batk", "Blis", "Brah", "Cham", "Cirt", "Cyrs", "Egyd", "Egyh", "Egyp",
+ "Geok", "Hans", "Hant", "Hmng", "Hung", "Inds", "Java", "Kali", "Latf", "Latg",
+ "Lepc", "Lina", "Mand", "Maya", "Mero", "Nkoo", "Orkh", "Perm", "Phag", "Phnx",
+ "Plrd", "Roro", "Sara", "Syre", "Syrj", "Syrn", "Teng", "Vaii", "Visp", "Xsux",
+ "Zxxx", "Zzzz",
+ };
+ int32_t j = 0;
+ for(i=USCRIPT_BALINESE; (UScriptCode)i<USCRIPT_CODE_LIMIT; i++, j++){
+ const char* name = uscript_getName((UScriptCode)i);
+ if(name==NULL || strcmp(name,expectedLong[j])!=0){
+ log_err("uscript_getName failed for code %i: %s!=%s\n", i, name, expectedLong[j]);
+ }
+ name = uscript_getShortName((UScriptCode)i);
+ if(name==NULL || strcmp(name,expectedShort[j])!=0){
+ log_err("uscript_getShortName failed for code %i: %s!=%s\n", i, name, expectedShort[j]);
+ }
+ }
+ for(i=0; i<ARRAY_SIZE(expectedLong); i++){
+ UScriptCode fillIn[5] = {USCRIPT_INVALID_CODE};
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t len = 0;
+ len = uscript_getCode(expectedShort[i], fillIn, ARRAY_SIZE(fillIn), &status);
+ if(U_FAILURE(status)){
+ log_err("uscript_getCode failed for script name %s. Error: %s\n",expectedShort[i], u_errorName(status));
+ }
+ if(len>1){
+ log_err("uscript_getCode did not return expected number of codes for script %s. EXPECTED: 1 GOT: %i\n", expectedShort[i], len);
+ }
+ if(fillIn[0]!= (UScriptCode)(USCRIPT_BALINESE+i)){
+ log_err("uscript_getCode did not return expected code for script %s. EXPECTED: %i GOT: %i\n", expectedShort[i], (USCRIPT_BALINESE+i), fillIn[0] );
+ }
+ }
+ }
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cucdtst.c b/Build/source/libs/icu-xetex/test/cintltst/cucdtst.c
index 67ab67a76d3..0aa15affa92 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cucdtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cucdtst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -211,7 +211,8 @@ Checks LetterLike Symbols which were previously a source of confusion
*/
for (i=0x2100;i<0x2138;i++)
{
- if(i!=0x2126 && i!=0x212a && i!=0x212b)
+ /* Unicode 5.0 adds lowercase U+214E (TURNED SMALL F) to U+2132 (TURNED CAPITAL F) */
+ if(i!=0x2126 && i!=0x212a && i!=0x212b && i!=0x2132)
{
if (i != (int)u_tolower(i)) /* itself */
log_err("Failed case conversion with itself: U+%04x\n", i);
@@ -324,57 +325,77 @@ Checks LetterLike Symbols which were previously a source of confusion
}
}
-/* compare two sets, which is not easy with the current (ICU 2.4) C API... */
-
+/* compare two sets and verify that their difference or intersection is empty */
static UBool
showADiffB(const USet *a, const USet *b,
const char *a_name, const char *b_name,
UBool expect, UBool diffIsError) {
+ USet *aa;
int32_t i, start, end, length;
- UBool equal;
UErrorCode errorCode;
+ /*
+ * expect:
+ * TRUE -> a-b should be empty, that is, b should contain all of a
+ * FALSE -> a&b should be empty, that is, a should contain none of b (and vice versa)
+ */
+ if(expect ? uset_containsAll(b, a) : uset_containsNone(a, b)) {
+ return TRUE;
+ }
+
+ /* clone a to aa because a is const */
+ aa=uset_open(1, 0);
+ if(aa==NULL) {
+ /* unusual problem - out of memory? */
+ return FALSE;
+ }
+ uset_addAll(aa, a);
+
+ /* compute the set in question */
+ if(expect) {
+ /* a-b */
+ uset_removeAll(aa, b);
+ } else {
+ /* a&b */
+ uset_retainAll(aa, b);
+ }
+
+ /* aa is not empty because of the initial tests above; show its contents */
errorCode=U_ZERO_ERROR;
- equal=TRUE;
i=0;
for(;;) {
- length=uset_getItem(a, i, &start, &end, NULL, 0, &errorCode);
+ length=uset_getItem(aa, i, &start, &end, NULL, 0, &errorCode);
if(errorCode==U_INDEX_OUTOFBOUNDS_ERROR) {
- return equal; /* done */
+ break; /* done */
}
if(U_FAILURE(errorCode)) {
- log_err("error comparing %s with %s at item %d: %s\n",
+ log_err("error comparing %s with %s at difference item %d: %s\n",
a_name, b_name, i, u_errorName(errorCode));
- return FALSE;
+ break;
}
if(length!=0) {
- return equal; /* done with code points, got a string or -1 */
+ break; /* done with code points, got a string or -1 */
}
- if(expect!=uset_containsRange(b, start, end)) {
- equal=FALSE;
- while(start<=end) {
- if(expect!=uset_contains(b, start)) {
- if(diffIsError) {
- if(expect) {
- log_err("error: %s contains U+%04x but %s does not\n", a_name, start, b_name);
- } else {
- log_err("error: %s and %s both contain U+%04x but should not intersect\n", a_name, b_name, start);
- }
- } else {
- if(expect) {
- log_verbose("info: %s contains U+%04x but %s does not\n", a_name, start, b_name);
- } else {
- log_verbose("info: %s and %s both contain U+%04x but should not intersect\n", a_name, b_name, start);
- }
- }
- }
- ++start;
+ if(diffIsError) {
+ if(expect) {
+ log_err("error: %s contains U+%04x..U+%04x but %s does not\n", a_name, start, end, b_name);
+ } else {
+ log_err("error: %s and %s both contain U+%04x..U+%04x but should not intersect\n", a_name, b_name, start, end);
+ }
+ } else {
+ if(expect) {
+ log_verbose("info: %s contains U+%04x..U+%04x but %s does not\n", a_name, start, end, b_name);
+ } else {
+ log_verbose("info: %s and %s both contain U+%04x..U+%04x but should not intersect\n", a_name, b_name, start, end);
}
}
++i;
}
+
+ uset_close(aa);
+ return FALSE;
}
static UBool
@@ -395,8 +416,12 @@ static UBool
compareUSets(const USet *a, const USet *b,
const char *a_name, const char *b_name,
UBool diffIsError) {
+ /*
+ * Use an arithmetic & not a logical && so that both branches
+ * are always taken and all differences are shown.
+ */
return
- showAMinusB(a, b, a_name, b_name, diffIsError) &&
+ showAMinusB(a, b, a_name, b_name, diffIsError) &
showAMinusB(b, a, b_name, a_name, diffIsError);
}
@@ -1810,18 +1835,18 @@ TestMirroring() {
errorCode=U_ZERO_ERROR;
set=uset_openPattern(mirroredPattern, 17, &errorCode);
- if (U_FAILURE(errorCode)) {
- log_data_err("uset_openPattern(mirroredPattern, 17, &errorCode) failed!");
- } else {
- for(i=0; 0==uset_getItem(set, i, &start, &end, NULL, 0, &errorCode); ++i) {
- do {
- c2=u_charMirror(start);
- c3=u_charMirror(c2);
- if(c3!=start) {
- log_err("u_charMirror() does not roundtrip: U+%04lx->U+%04lx->U+%04lx\n", (long)start, (long)c2, (long)c3);
- }
- } while(++start<=end);
- }
+ if (U_FAILURE(errorCode)) {
+ log_data_err("uset_openPattern(mirroredPattern, 17, &errorCode) failed!");
+ } else {
+ for(i=0; 0==uset_getItem(set, i, &start, &end, NULL, 0, &errorCode); ++i) {
+ do {
+ c2=u_charMirror(start);
+ c3=u_charMirror(c2);
+ if(c3!=start) {
+ log_err("u_charMirror() does not roundtrip: U+%04lx->U+%04lx->U+%04lx\n", (long)start, (long)c2, (long)c3);
+ }
+ } while(++start<=end);
+ }
}
uset_close(set);
@@ -2229,7 +2254,8 @@ TestAdditionalProperties() {
{ 0x0590, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
{ 0x05cf, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
{ 0x05ed, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
- { 0x07f2, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
+ { 0x07f2, UCHAR_BIDI_CLASS, U_DIR_NON_SPACING_MARK }, /* Nko, new in Unicode 5.0 */
+ { 0x07fe, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT }, /* unassigned R */
{ 0x08ba, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
{ 0xfb37, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
{ 0xfb42, UCHAR_BIDI_CLASS, U_RIGHT_TO_LEFT },
@@ -2447,21 +2473,60 @@ TestAdditionalProperties() {
) {
log_err("error: u_getIntPropertyMinValue() wrong\n");
}
-
- if( u_getIntPropertyMaxValue(UCHAR_DASH)!=1 ||
- u_getIntPropertyMaxValue(UCHAR_ID_CONTINUE)!=1 ||
- u_getIntPropertyMaxValue(UCHAR_BINARY_LIMIT-1)!=1 ||
- u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)!=(int32_t)U_CHAR_DIRECTION_COUNT-1 ||
- u_getIntPropertyMaxValue(UCHAR_BLOCK)!=(int32_t)UBLOCK_COUNT-1 ||
- u_getIntPropertyMaxValue(UCHAR_LINE_BREAK)!=(int32_t)U_LB_COUNT-1 ||
- u_getIntPropertyMaxValue(UCHAR_SCRIPT)!=(int32_t)USCRIPT_CODE_LIMIT-1 ||
- u_getIntPropertyMaxValue(0x2345)!=-1 /*JB#2410*/ ||
- u_getIntPropertyMaxValue(UCHAR_DECOMPOSITION_TYPE) != (int32_t) (U_DT_COUNT - 1) ||
- u_getIntPropertyMaxValue(UCHAR_JOINING_GROUP) != (int32_t) (U_JG_COUNT -1) ||
- u_getIntPropertyMaxValue(UCHAR_JOINING_TYPE) != (int32_t) (U_JT_COUNT -1) ||
- u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH) != (int32_t) (U_EA_COUNT -1)
- ) {
- log_err("error: u_getIntPropertyMaxValue() wrong\n");
+ if( u_getIntPropertyMaxValue(UCHAR_DASH)!=1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_DASH) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_ID_CONTINUE)!=1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_ID_CONTINUE) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_BINARY_LIMIT-1)!=1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_BINARY_LIMIT-1) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS)!=(int32_t)U_CHAR_DIRECTION_COUNT-1 ) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_BLOCK)!=(int32_t)UBLOCK_COUNT-1 ) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_BLOCK) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_LINE_BREAK)!=(int32_t)U_LB_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_LINE_BREAK) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_SCRIPT)!=(int32_t)USCRIPT_CODE_LIMIT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_SCRIPT) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_NUMERIC_TYPE)!=(int32_t)U_NT_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_NUMERIC_TYPE) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_GENERAL_CATEGORY)!=(int32_t)U_CHAR_CATEGORY_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_GENERAL_CATEGORY) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_HANGUL_SYLLABLE_TYPE)!=(int32_t)U_HST_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_HANGUL_SYLLABLE_TYPE) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_GRAPHEME_CLUSTER_BREAK)!=(int32_t)U_GCB_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_GRAPHEME_CLUSTER_BREAK) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_SENTENCE_BREAK)!=(int32_t)U_SB_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_SENTENCE_BREAK) wrong\n");
+ }
+ if(u_getIntPropertyMaxValue(UCHAR_WORD_BREAK)!=(int32_t)U_WB_COUNT-1) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_WORD_BREAK) wrong\n");
+ }
+ /*JB#2410*/
+ if( u_getIntPropertyMaxValue(0x2345)!=-1) {
+ log_err("error: u_getIntPropertyMaxValue(0x2345) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_DECOMPOSITION_TYPE) != (int32_t) (U_DT_COUNT - 1)) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_DECOMPOSITION_TYPE) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_JOINING_GROUP) != (int32_t) (U_JG_COUNT -1)) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_JOINING_GROUP) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_JOINING_TYPE) != (int32_t) (U_JT_COUNT -1)) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_JOINING_TYPE) wrong\n");
+ }
+ if( u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH) != (int32_t) (U_EA_COUNT -1)) {
+ log_err("error: u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH) wrong\n");
}
/* test u_hasBinaryProperty() and u_getIntPropertyValue() */
@@ -2722,7 +2787,7 @@ TestPropertyValues(void) {
max);
}
- /* Script should return 0 for an invalid code point. */
+ /* Script should return USCRIPT_INVALID_CODE for an invalid code point. */
for (i=0; i<2; ++i) {
int32_t script;
const char* desc;
@@ -2742,7 +2807,7 @@ TestPropertyValues(void) {
}
/* We don't explicitly test ec. It should be U_FAILURE but it
isn't documented as such. */
- if (script != 0) {
+ if (script != (int32_t)USCRIPT_INVALID_CODE) {
log_err("FAIL: %s = %d, exp. 0\n",
desc, script);
}
@@ -2784,12 +2849,28 @@ TestConsistency() {
U_STRING_DECL(formatPattern, "[:Cf:]", 6);
U_STRING_DECL(alphaPattern, "[:Alphabetic:]", 14);
+ U_STRING_DECL(mathBlocksPattern,
+ "[[:block=Mathematical Operators:][:block=Miscellaneous Mathematical Symbols-A:][:block=Miscellaneous Mathematical Symbols-B:][:block=Supplemental Mathematical Operators:][:block=Mathematical Alphanumeric Symbols:]]",
+ 1+32+46+46+45+43+1+1); /* +1 for NUL */
+ U_STRING_DECL(mathPattern, "[:Math:]", 8);
+ U_STRING_DECL(unassignedPattern, "[:Cn:]", 6);
+ U_STRING_DECL(unknownPattern, "[:sc=Unknown:]", 14);
+ U_STRING_DECL(reservedPattern, "[[:Cn:][:Co:][:Cs:]]", 20);
+
U_STRING_INIT(hyphenPattern, "[:Hyphen:]", 10);
U_STRING_INIT(dashPattern, "[:Dash:]", 8);
U_STRING_INIT(lowerPattern, "[:Lowercase:]", 13);
U_STRING_INIT(formatPattern, "[:Cf:]", 6);
U_STRING_INIT(alphaPattern, "[:Alphabetic:]", 14);
+ U_STRING_INIT(mathBlocksPattern,
+ "[[:block=Mathematical Operators:][:block=Miscellaneous Mathematical Symbols-A:][:block=Miscellaneous Mathematical Symbols-B:][:block=Supplemental Mathematical Operators:][:block=Mathematical Alphanumeric Symbols:]]",
+ 1+32+46+46+45+43+1+1); /* +1 for NUL */
+ U_STRING_INIT(mathPattern, "[:Math:]", 8);
+ U_STRING_INIT(unassignedPattern, "[:Cn:]", 6);
+ U_STRING_INIT(unknownPattern, "[:sc=Unknown:]", 14);
+ U_STRING_INIT(reservedPattern, "[[:Cn:][:Co:][:Cs:]]", 20);
+
/*
* It used to be that UCD.html and its precursors said
* "Those dashes used to mark connections between pieces of words,
@@ -2909,6 +2990,39 @@ TestConsistency() {
uset_close(set2);
#endif
+
+ /* verify that all assigned characters in Math blocks are exactly Math characters */
+ errorCode=U_ZERO_ERROR;
+ set1=uset_openPattern(mathBlocksPattern, -1, &errorCode);
+ set2=uset_openPattern(mathPattern, 8, &errorCode);
+ set3=uset_openPattern(unassignedPattern, 6, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ uset_retainAll(set2, set1); /* [math blocks]&[:Math:] */
+ uset_complement(set3); /* assigned characters */
+ uset_retainAll(set1, set3); /* [math blocks]&[assigned] */
+ compareUSets(set1, set2,
+ "[assigned Math block chars]", "[math blocks]&[:Math:]",
+ TRUE);
+ } else {
+ log_err("error opening [math blocks] or [:Math:] or [:Cn:] - %s\n", u_errorName(errorCode));
+ }
+ uset_close(set1);
+ uset_close(set2);
+ uset_close(set3);
+
+ /* new in Unicode 5.0: exactly all unassigned+PUA+surrogate code points have script=Unknown */
+ errorCode=U_ZERO_ERROR;
+ set1=uset_openPattern(unknownPattern, 14, &errorCode);
+ set2=uset_openPattern(reservedPattern, 20, &errorCode);
+ if(U_SUCCESS(errorCode)) {
+ compareUSets(set1, set2,
+ "[:sc=Unknown:]", "[[:Cn:][:Co:][:Cs:]]",
+ TRUE);
+ } else {
+ log_err("error opening [:sc=Unknown:] or [[:Cn:][:Co:][:Cs:]] - %s\n", u_errorName(errorCode));
+ }
+ uset_close(set1);
+ uset_close(set2);
}
/*
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cucdtst.h b/Build/source/libs/icu-xetex/test/cintltst/cucdtst.h
deleted file mode 100644
index ef3a68c53bc..00000000000
--- a/Build/source/libs/icu-xetex/test/cintltst/cucdtst.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-/********************************************************************************
-*
-* File CUCDTST.H
-*
-* Modification History:
-* Name Description
-* Madhu Katragadda Converted to C, added tests for string functions
-*********************************************************************************
-*/
-/* C API TEST For Unicode */
-
-#ifndef _CUCDTST
-#define _CUCDTST
-
-/* cstrcase.c */
-U_CFUNC void TestCaseLower(void);
-U_CFUNC void TestCaseUpper(void);
-U_CFUNC void TestCaseTitle(void);
-U_CFUNC void TestCaseFolding(void);
-U_CFUNC void TestCaseCompare(void);
-U_CFUNC void TestUCaseMap(void);
-
-#endif
diff --git a/Build/source/libs/icu-xetex/test/cintltst/currtest.c b/Build/source/libs/icu-xetex/test/cintltst/currtest.c
index dd67ca2aa0d..93bbee0afa1 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/currtest.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/currtest.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2005-2005, International Business Machines Corporation and
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
#include "unicode/utypes.h"
@@ -119,7 +119,7 @@ static int32_t checkItemCount(uint32_t currencyType) {
originalCount = uenum_count(en, &status);
for (count=0;;count++) {
const char *str = uenum_next(en, &len, &status);
- if (U_FAILURE(status) || len != expectedLen || strlen(str) != expectedLen) {
+ if (str == NULL || len != expectedLen || strlen(str) != expectedLen) {
break;
}
}
@@ -128,6 +128,9 @@ static int32_t checkItemCount(uint32_t currencyType) {
log_err("Error: uenum_count returned the wrong value (type = 0x%X). Got: %d Expected %d\n",
currencyType, count, originalCount);
}
+ if (U_FAILURE(status)) {
+ log_err("Error: uenum_next got an error: %s\n", u_errorName(status));
+ }
uenum_close(en);
return count;
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/custrtrn.c b/Build/source/libs/icu-xetex/test/cintltst/custrtrn.c
index e08632abe8d..0335a005575 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/custrtrn.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/custrtrn.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2001-2005, International Business Machines Corporation and
+ * Copyright (c) 2001-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -22,6 +22,8 @@
#include "unicode/ures.h"
#include "ustr_imp.h"
#include "cintltst.h"
+#include "cmemory.h"
+#include "cstring.h"
#include "cwchar.h"
#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
@@ -30,6 +32,7 @@ void addUCharTransformTest(TestNode** root);
static void Test_UChar_UTF32_API(void);
static void Test_UChar_UTF8_API(void);
+static void Test_FromUTF8Lenient(void);
static void Test_UChar_WCHART_API(void);
static void Test_widestrs(void);
static void Test_WCHART_LongString(void);
@@ -39,6 +42,7 @@ addUCharTransformTest(TestNode** root)
{
addTest(root, &Test_UChar_UTF32_API, "custrtrn/Test_UChar_UTF32_API");
addTest(root, &Test_UChar_UTF8_API, "custrtrn/Test_UChar_UTF8_API");
+ addTest(root, &Test_FromUTF8Lenient, "custrtrn/Test_FromUTF8Lenient");
addTest(root, &Test_UChar_WCHART_API, "custrtrn/Test_UChar_WCHART_API");
addTest(root, &Test_widestrs, "custrtrn/Test_widestrs");
addTest(root, &Test_WCHART_LongString, "custrtrn/Test_WCHART_LongString");
@@ -270,16 +274,21 @@ static void Test_UChar_UTF8_API(void){
int32_t u8DestLen =0;
UBool failed = FALSE;
int i= 0;
+ int32_t numSubstitutions;
+
{
/* preflight */
+ u8Temp[0] = 0x12;
u_strToUTF8(u8Target,u8TargetLength, &u8DestLen, uSrc, uSrcLen,&err);
- if(err == U_BUFFER_OVERFLOW_ERROR){
+ if(err == U_BUFFER_OVERFLOW_ERROR && u8Temp[0] == 0x12){
err = U_ZERO_ERROR;
u8Target = (char*) malloc (sizeof(uint8_t) * (u8DestLen+1));
u8TargetLength = u8DestLen;
-
+
+ u8Target[u8TargetLength] = (char)0xfe;
+ u8DestLen = -1;
u_strToUTF8(u8Target,u8TargetLength, &u8DestLen, uSrc, uSrcLen,&err);
- if(U_FAILURE(err)){
+ if(U_FAILURE(err) || u8DestLen != u8TargetLength || u8Target[u8TargetLength] != (char)0xfe){
log_err("u_strToUTF8 failed after preflight. Error: %s\n", u_errorName(err));
return;
}
@@ -308,16 +317,19 @@ static void Test_UChar_UTF8_API(void){
u8SrcLen = u8DestLen;
/* preflight */
+ uTemp[0] = 0x1234;
u_strFromUTF8(uTarget,uTargetLength,&uDestLen,u8Src,u8SrcLen,&err);
- if(err == U_BUFFER_OVERFLOW_ERROR){
+ if(err == U_BUFFER_OVERFLOW_ERROR && uTemp[0] == 0x1234){
err = U_ZERO_ERROR;
uTarget = (UChar*) malloc( sizeof(UChar) * (uDestLen+1));
uTargetLength = uDestLen;
+ uTarget[uTargetLength] = 0xfff0;
+ uDestLen = -1;
u_strFromUTF8(uTarget,uTargetLength,&uDestLen,u8Src,u8SrcLen,&err);
}
else {
- log_err("Should have gotten U_BUFFER_OVERFLOW_ERROR");
+ log_err("error: u_strFromUTF8(preflight) should have gotten U_BUFFER_OVERFLOW_ERROR\n");
}
/*for(i=0; i< uDestLen; i++){
printf("0x%04X, ",uTarget[i]);
@@ -325,7 +337,10 @@ static void Test_UChar_UTF8_API(void){
printf("\n");
}
}*/
-
+
+ if(U_FAILURE(err) || uDestLen != uTargetLength || uTarget[uTargetLength] != 0xfff0) {
+ failed = TRUE;
+ }
for(i=0; i< uSrcLen; i++){
if(uTarget[i] != src16[i]){
log_verbose("u_strFromUTF8() failed expected: \\u%04X got: \\u%04X at index: %i \n", src16[i] ,uTarget[i],i);
@@ -333,7 +348,7 @@ static void Test_UChar_UTF8_API(void){
}
}
if(failed){
- log_err("u_strToUTF8() failed \n");
+ log_err("error: u_strFromUTF8(after preflighting) failed\n");
}
free(u8Target);
@@ -414,10 +429,14 @@ static void Test_UChar_UTF8_API(void){
{
static const UChar
withLead16[]={ 0x1800, 0xd89a, 0x0061 },
- withTrail16[]={ 0x1800, 0xdcba, 0x0061, 0 };
+ withTrail16[]={ 0x1800, 0xdcba, 0x0061, 0 },
+ withTrail16SubFFFD[]={ 0x1800, 0xfffd, 0x0061, 0 }, /* sub==U+FFFD */
+ withTrail16Sub50005[]={ 0x1800, 0xd900, 0xdc05, 0x0061, 0 }; /* sub==U+50005 */
static const uint8_t
withLead8[]={ 0xe1, 0xa0, 0x80, 0xed, 0xa2, 0x9a, 0x61 },
- withTrail8[]={ 0xe1, 0xa0, 0x80, 0xed, 0xb2, 0xba, 0x61 };
+ withTrail8[]={ 0xe1, 0xa0, 0x80, 0xed, 0xb2, 0xba, 0x61, 0 },
+ withTrail8Sub1A[]={ 0xe1, 0xa0, 0x80, 0x1a, 0x61, 0 }, /* sub==U+001A */
+ withTrail8SubFFFD[]={ 0xe1, 0xa0, 0x80, 0xef, 0xbf, 0xbd, 0x61, 0 }; /* sub==U+FFFD */
UChar out16[10];
char out8[10];
@@ -429,8 +448,384 @@ static void Test_UChar_UTF8_API(void){
) {
log_err("error: u_strTo/FromUTF8(string with single surrogate) fails to report error\n");
}
+
+ /* test error handling with substitution characters */
+
+ /* from UTF-8 with length */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out16[0]=0x55aa;
+ uDestLen=0;
+ u_strFromUTF8WithSub(out16, LENGTHOF(out16), &uDestLen,
+ (const char *)withTrail8, uprv_strlen((const char *)withTrail8),
+ 0x50005, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || uDestLen!=u_strlen(withTrail16Sub50005) ||
+ 0!=u_memcmp(withTrail16Sub50005, out16, uDestLen+1) ||
+ numSubstitutions!=1) {
+ log_err("error: u_strFromUTF8WithSub(length) failed\n");
+ }
+
+ /* from UTF-8 with NUL termination */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out16[0]=0x55aa;
+ uDestLen=0;
+ u_strFromUTF8WithSub(out16, LENGTHOF(out16), &uDestLen,
+ (const char *)withTrail8, -1,
+ 0xfffd, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || uDestLen!=u_strlen(withTrail16SubFFFD) ||
+ 0!=u_memcmp(withTrail16SubFFFD, out16, uDestLen+1) ||
+ numSubstitutions!=1) {
+ log_err("error: u_strFromUTF8WithSub(NUL termination) failed\n");
+ }
+
+ /* preflight from UTF-8 with NUL termination */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out16[0]=0x55aa;
+ uDestLen=0;
+ u_strFromUTF8WithSub(out16, 1, &uDestLen,
+ (const char *)withTrail8, -1,
+ 0x50005, &numSubstitutions,
+ &err);
+ if(err!=U_BUFFER_OVERFLOW_ERROR || uDestLen!=u_strlen(withTrail16Sub50005) || numSubstitutions!=1) {
+ log_err("error: u_strFromUTF8WithSub(preflight/NUL termination) failed\n");
+ }
+
+ /* to UTF-8 with length */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out8[0]=(char)0xf5;
+ u8DestLen=0;
+ u_strToUTF8WithSub(out8, LENGTHOF(out8), &u8DestLen,
+ withTrail16, u_strlen(withTrail16),
+ 0xfffd, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || u8DestLen!=uprv_strlen((const char *)withTrail8SubFFFD) ||
+ 0!=uprv_memcmp((const char *)withTrail8SubFFFD, out8, u8DestLen+1) ||
+ numSubstitutions!=1) {
+ log_err("error: u_strToUTF8WithSub(length) failed\n");
+ }
+
+ /* to UTF-8 with NUL termination */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out8[0]=(char)0xf5;
+ u8DestLen=0;
+ u_strToUTF8WithSub(out8, LENGTHOF(out8), &u8DestLen,
+ withTrail16, -1,
+ 0x1a, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || u8DestLen!=uprv_strlen((const char *)withTrail8Sub1A) ||
+ 0!=uprv_memcmp((const char *)withTrail8Sub1A, out8, u8DestLen+1) ||
+ numSubstitutions!=1) {
+ log_err("error: u_strToUTF8WithSub(NUL termination) failed\n");
+ }
+
+ /* preflight to UTF-8 with NUL termination */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out8[0]=(char)0xf5;
+ u8DestLen=0;
+ u_strToUTF8WithSub(out8, 1, &u8DestLen,
+ withTrail16, -1,
+ 0xfffd, &numSubstitutions,
+ &err);
+ if(err!=U_BUFFER_OVERFLOW_ERROR || u8DestLen!=uprv_strlen((const char *)withTrail8SubFFFD) ||
+ numSubstitutions!=1) {
+ log_err("error: u_strToUTF8WithSub(preflight/NUL termination) failed\n");
+ }
+
+ /* test that numSubstitutions==0 if there are no substitutions */
+
+ /* from UTF-8 with length (just first 3 bytes which are valid) */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out16[0]=0x55aa;
+ uDestLen=0;
+ u_strFromUTF8WithSub(out16, LENGTHOF(out16), &uDestLen,
+ (const char *)withTrail8, 3,
+ 0x50005, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || uDestLen!=1 ||
+ 0!=u_memcmp(withTrail16Sub50005, out16, uDestLen) ||
+ numSubstitutions!=0) {
+ log_err("error: u_strFromUTF8WithSub(no subs) failed\n");
+ }
+
+ /* to UTF-8 with length (just first UChar which is valid) */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out8[0]=(char)0xf5;
+ u8DestLen=0;
+ u_strToUTF8WithSub(out8, LENGTHOF(out8), &u8DestLen,
+ withTrail16, 1,
+ 0xfffd, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || u8DestLen!=3 ||
+ 0!=uprv_memcmp((const char *)withTrail8SubFFFD, out8, u8DestLen) ||
+ numSubstitutions!=0) {
+ log_err("error: u_strToUTF8WithSub(no subs) failed\n");
+ }
+
+ /* test that numSubstitutions==0 if subchar==U_SENTINEL (no subchar) */
+
+ /* from UTF-8 with length (just first 3 bytes which are valid) */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out16[0]=0x55aa;
+ uDestLen=0;
+ u_strFromUTF8WithSub(out16, LENGTHOF(out16), &uDestLen,
+ (const char *)withTrail8, 3,
+ U_SENTINEL, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || uDestLen!=1 ||
+ 0!=u_memcmp(withTrail16Sub50005, out16, uDestLen) ||
+ numSubstitutions!=0) {
+ log_err("error: u_strFromUTF8WithSub(no subchar) failed\n");
+ }
+
+ /* to UTF-8 with length (just first UChar which is valid) */
+ err=U_ZERO_ERROR;
+ numSubstitutions=-1;
+ out8[0]=(char)0xf5;
+ u8DestLen=0;
+ u_strToUTF8WithSub(out8, LENGTHOF(out8), &u8DestLen,
+ withTrail16, 1,
+ U_SENTINEL, &numSubstitutions,
+ &err);
+ if(U_FAILURE(err) || u8DestLen!=3 ||
+ 0!=uprv_memcmp((const char *)withTrail8SubFFFD, out8, u8DestLen) ||
+ numSubstitutions!=0) {
+ log_err("error: u_strToUTF8WithSub(no subchar) failed\n");
+ }
}
}
+
+/* compare if two strings are equal, but match 0xfffd in the second string with anything in the first */
+static UBool
+equalAnyFFFD(const UChar *s, const UChar *t, int32_t length) {
+ UChar c1, c2;
+
+ while(length>0) {
+ c1=*s++;
+ c2=*t++;
+ if(c1!=c2 && c2!=0xfffd) {
+ return FALSE;
+ }
+ --length;
+ }
+ return TRUE;
+}
+
+/* test u_strFromUTF8Lenient() */
+static void
+Test_FromUTF8Lenient(void) {
+ /*
+ * Multiple input strings, each NUL-terminated.
+ * Terminate with a string starting with 0xff.
+ */
+ static const uint8_t bytes[]={
+ /* well-formed UTF-8 */
+ 0x61, 0xc3, 0x9f, 0xe0, 0xa0, 0x80, 0xf0, 0xa0, 0x80, 0x80,
+ 0x62, 0xc3, 0xa0, 0xe0, 0xa0, 0x81, 0xf0, 0xa0, 0x80, 0x81, 0,
+
+ /* various malformed sequences */
+ 0xc3, 0xc3, 0x9f, 0xc3, 0xa0, 0xe0, 0x80, 0x8a, 0xf0, 0x41, 0x42, 0x43, 0,
+
+ /* truncated input */
+ 0xc3, 0,
+ 0xe0, 0,
+ 0xe0, 0xa0, 0,
+ 0xf0, 0,
+ 0xf0, 0x90, 0,
+ 0xf0, 0x90, 0x80, 0,
+
+ /* empty string */
+ 0,
+
+ /* finish */
+ 0xff, 0
+ };
+
+ /* Multiple output strings, each NUL-terminated. 0xfffd matches anything. */
+ static const UChar uchars[]={
+ 0x61, 0xdf, 0x800, 0xd840, 0xdc00,
+ 0x62, 0xe0, 0x801, 0xd840, 0xdc01, 0,
+
+ 0xfffd, 0x9f, 0xe0, 0xa, 0xfffd, 0xfffd, 0,
+
+ 0xfffd, 0,
+ 0xfffd, 0,
+ 0xfffd, 0,
+ 0xfffd, 0,
+ 0xfffd, 0,
+ 0xfffd, 0,
+
+ 0,
+
+ 0
+ };
+
+ UChar dest[64];
+ const char *pb;
+ const UChar *pu, *pDest;
+ int32_t srcLength, destLength0, destLength;
+ int number;
+ UErrorCode errorCode;
+
+ /* verify checking for some illegal arguments */
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, 1, &destLength, NULL, -1, &errorCode);
+ if(errorCode!=U_ILLEGAL_ARGUMENT_ERROR || dest[0]!=0x1234) {
+ log_err("u_strFromUTF8Lenient(src=NULL) failed\n");
+ }
+
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(NULL, 1, &destLength, (const char *)bytes, -1, &errorCode);
+ if(errorCode!=U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("u_strFromUTF8Lenient(dest=NULL[1]) failed\n");
+ }
+
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_MEMORY_ALLOCATION_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, 1, &destLength, (const char *)bytes, -1, &errorCode);
+ if(errorCode!=U_MEMORY_ALLOCATION_ERROR || dest[0]!=0x1234) {
+ log_err("u_strFromUTF8Lenient(U_MEMORY_ALLOCATION_ERROR) failed\n");
+ }
+
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_MEMORY_ALLOCATION_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, 1, &destLength, (const char *)bytes, -1, NULL);
+ if(dest[0]!=0x1234) {
+ log_err("u_strFromUTF8Lenient(pErrorCode=NULL) failed\n");
+ }
+
+ /* test normal behavior */
+ number=0; /* string number for log_err() */
+
+ for(pb=(const char *)bytes, pu=uchars;
+ *pb!=(char)0xff;
+ pb+=srcLength+1, pu+=destLength0+1, ++number
+ ) {
+ srcLength=uprv_strlen(pb);
+ destLength0=u_strlen(pu);
+
+ /* preflighting with NUL-termination */
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(NULL, 0, &destLength, pb, -1, &errorCode);
+ if (errorCode!= (destLength0==0 ? U_STRING_NOT_TERMINATED_WARNING : U_BUFFER_OVERFLOW_ERROR) ||
+ pDest!=NULL || dest[0]!=0x1234 || destLength!=destLength0
+ ) {
+ log_err("u_strFromUTF8Lenient(%d preflighting with NUL-termination) failed\n", number);
+ }
+
+ /* preflighting/some capacity with NUL-termination */
+ if(srcLength>0) {
+ dest[destLength0-1]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, destLength0-1, &destLength, pb, -1, &errorCode);
+ if (errorCode!=U_BUFFER_OVERFLOW_ERROR ||
+ dest[destLength0-1]!=0x1234 || destLength!=destLength0
+ ) {
+ log_err("u_strFromUTF8Lenient(%d preflighting/some capacity with NUL-termination) failed\n", number);
+ }
+ }
+
+ /* conversion with NUL-termination, much capacity */
+ dest[0]=dest[destLength0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, LENGTHOF(dest), &destLength, pb, -1, &errorCode);
+ if (errorCode!=U_ZERO_ERROR ||
+ pDest!=dest || dest[destLength0]!=0 ||
+ destLength!=destLength0 || !equalAnyFFFD(dest, pu, destLength)
+ ) {
+ log_err("u_strFromUTF8Lenient(%d conversion with NUL-termination, much capacity) failed\n", number);
+ }
+
+ /* conversion with NUL-termination, exact capacity */
+ dest[0]=dest[destLength0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, destLength0, &destLength, pb, -1, &errorCode);
+ if (errorCode!=U_STRING_NOT_TERMINATED_WARNING ||
+ pDest!=dest || dest[destLength0]!=0x1234 ||
+ destLength!=destLength0 || !equalAnyFFFD(dest, pu, destLength)
+ ) {
+ log_err("u_strFromUTF8Lenient(%d conversion with NUL-termination, exact capacity) failed\n", number);
+ }
+
+ /* preflighting with length */
+ dest[0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(NULL, 0, &destLength, pb, srcLength, &errorCode);
+ if (errorCode!= (destLength0==0 ? U_STRING_NOT_TERMINATED_WARNING : U_BUFFER_OVERFLOW_ERROR) ||
+ pDest!=NULL || dest[0]!=0x1234 || destLength!=srcLength
+ ) {
+ log_err("u_strFromUTF8Lenient(%d preflighting with length) failed\n", number);
+ }
+
+ /* preflighting/some capacity with length */
+ if(srcLength>0) {
+ dest[srcLength-1]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, srcLength-1, &destLength, pb, srcLength, &errorCode);
+ if (errorCode!=U_BUFFER_OVERFLOW_ERROR ||
+ dest[srcLength-1]!=0x1234 || destLength!=srcLength
+ ) {
+ log_err("u_strFromUTF8Lenient(%d preflighting/some capacity with length) failed\n", number);
+ }
+ }
+
+ /* conversion with length, much capacity */
+ dest[0]=dest[destLength0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, LENGTHOF(dest), &destLength, pb, srcLength, &errorCode);
+ if (errorCode!=U_ZERO_ERROR ||
+ pDest!=dest || dest[destLength0]!=0 ||
+ destLength!=destLength0 || !equalAnyFFFD(dest, pu, destLength)
+ ) {
+ log_err("u_strFromUTF8Lenient(%d conversion with length, much capacity) failed\n", number);
+ }
+
+ /* conversion with length, srcLength capacity */
+ dest[0]=dest[srcLength]=dest[destLength0]=0x1234;
+ destLength=-1;
+ errorCode=U_ZERO_ERROR;
+ pDest=u_strFromUTF8Lenient(dest, srcLength, &destLength, pb, srcLength, &errorCode);
+ if(srcLength==destLength0) {
+ if (errorCode!=U_STRING_NOT_TERMINATED_WARNING ||
+ pDest!=dest || dest[destLength0]!=0x1234 ||
+ destLength!=destLength0 || !equalAnyFFFD(dest, pu, destLength)
+ ) {
+ log_err("u_strFromUTF8Lenient(%d conversion with length, srcLength capacity/not terminated) failed\n", number);
+ }
+ } else {
+ if (errorCode!=U_ZERO_ERROR ||
+ pDest!=dest || dest[destLength0]!=0 ||
+ destLength!=destLength0 || !equalAnyFFFD(dest, pu, destLength)
+ ) {
+ log_err("u_strFromUTF8Lenient(%d conversion with length, srcLength capacity/terminated) failed\n", number);
+ }
+ }
+ }
+}
+
static const uint16_t src16j[] = {
0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x000D, 0x000A,
0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x000D, 0x000A,
@@ -671,7 +1066,7 @@ static void Test_UChar_WCHART_API(void){
}
}
#else
- log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
+ log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
#endif
}
@@ -713,7 +1108,7 @@ static void Test_widestrs()
log_err("u_strFromWCS: wcs = %S, wl = %d,rts = %s, rtl = %d!\n", wcs, wl, u_austrcpy(astr, rts), rtl);
}
#else
- log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
+ log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
#endif
}
@@ -777,7 +1172,7 @@ Test_WCHART_LongString(){
/* close the bundle */
ures_close(theBundle);
#else
- log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
+ log_info("Not testing u_str*WCS because (!UCONFIG_NO_CONVERSION && !UCONFIG_NO_LEGACY_CONVERSION) and wchar is neither utf16 nor utf32");
#endif
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/custrtst.c b/Build/source/libs/icu-xetex/test/cintltst/custrtst.c
index 3e7ac9eb9d3..76cae0be6d7 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/custrtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/custrtst.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -16,15 +16,11 @@
* Tests of ustring.h Unicode string API functions.
*/
-#include "unicode/utypes.h"
#include "unicode/ustring.h"
-#include "unicode/uloc.h"
#include "unicode/ucnv.h"
#include "unicode/uiter.h"
#include "cintltst.h"
-#include "cucdtst.h"
#include <string.h>
-#include <stdlib.h>
#define LENGTHOF(array) (sizeof(array)/sizeof((array)[0]))
@@ -42,6 +38,7 @@ static void TestUnescape(void);
static void TestCountChar32(void);
static void TestUCharIterator(void);
static void TestUNormIterator(void);
+static void TestBadUNormIterator(void);
void addUStringTest(TestNode** root);
@@ -55,16 +52,7 @@ void addUStringTest(TestNode** root)
addTest(root, &TestCountChar32, "tsutil/custrtst/TestCountChar32");
addTest(root, &TestUCharIterator, "tsutil/custrtst/TestUCharIterator");
addTest(root, &TestUNormIterator, "tsutil/custrtst/TestUNormIterator");
-
- /* cstrcase.c functions, declared in cucdtst.h */
- addTest(root, &TestCaseLower, "tsutil/custrtst/TestCaseLower");
- addTest(root, &TestCaseUpper, "tsutil/custrtst/TestCaseUpper");
-#if !UCONFIG_NO_BREAK_ITERATION
- addTest(root, &TestCaseTitle, "tsutil/custrtst/TestCaseTitle");
-#endif
- addTest(root, &TestCaseFolding, "tsutil/custrtst/TestCaseFolding");
- addTest(root, &TestCaseCompare, "tsutil/custrtst/TestCaseCompare");
- addTest(root, &TestUCaseMap, "tsutil/custrtst/TestUCaseMap");
+ addTest(root, &TestBadUNormIterator, "tsutil/custrtst/TestBadUNormIterator");
}
/* test data for TestStringFunctions ---------------------------------------- */
@@ -1534,6 +1522,11 @@ TestUNormIterator() {
/* test nothing */
}
+static void
+TestBadUNormIterator(void) {
+ /* test nothing, as well */
+}
+
#else
#include "unicode/unorm.h"
@@ -1795,4 +1788,30 @@ TestUNormIterator() {
testUNormIteratorWithText(surrogateText, length, length, "UCharIterSurrEnd", "UNormIterSurrEnd1");
}
+static void
+TestBadUNormIterator(void) {
+#if !UCONFIG_NO_NORMALIZATION
+ UErrorCode status = U_ILLEGAL_ESCAPE_SEQUENCE;
+ UNormIterator *uni;
+
+ unorm_setIter(NULL, NULL, UNORM_NONE, &status);
+ if (status != U_ILLEGAL_ESCAPE_SEQUENCE) {
+ log_err("unorm_setIter changed the error code to: %s\n", u_errorName(status));
+ }
+ status = U_ZERO_ERROR;
+ unorm_setIter(NULL, NULL, UNORM_NONE, &status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("unorm_setIter didn't react correctly to bad arguments: %s\n", u_errorName(status));
+ }
+ status = U_ZERO_ERROR;
+ uni=unorm_openIter(NULL, 0, &status);
+ if(U_FAILURE(status)) {
+ log_err("unorm_openIter() fails: %s\n", u_errorName(status));
+ return;
+ }
+ unorm_setIter(uni, NULL, UNORM_NONE, &status);
+ unorm_closeIter(uni);
+#endif
+}
+
#endif
diff --git a/Build/source/libs/icu-xetex/test/cintltst/cutiltst.c b/Build/source/libs/icu-xetex/test/cintltst/cutiltst.c
index c19b23de923..2bb339c6d96 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/cutiltst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/cutiltst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -18,6 +18,7 @@ void addLocaleTest(TestNode**);
void addCLDRTest(TestNode**);
void addUnicodeTest(TestNode**);
void addUStringTest(TestNode**);
+void addCaseTest(TestNode**);
void addResourceBundleTest(TestNode**);
void addNEWResourceBundleTest(TestNode**);
void addHashtableTest(TestNode** root);
@@ -37,6 +38,7 @@ void addUtility(TestNode** root)
addCLDRTest(root);
addUnicodeTest(root);
addUStringTest(root);
+ addCaseTest(root);
addResourceBundleTest(root);
addNEWResourceBundleTest(root);
addHashtableTest(root);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/eurocreg.c b/Build/source/libs/icu-xetex/test/cintltst/eurocreg.c
index 99b5bd89a4d..a070374b802 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/eurocreg.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/eurocreg.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1999-2005, International Business Machines Corporation and
+ * Copyright (c) 1999-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
#include "unicode/utypes.h"
@@ -11,6 +11,7 @@
void TestEuroRegression(void);
void addTestEuroRegression(TestNode** root);
+#if !UCONFIG_NO_LEGACY_CONVERSION
void addTestEuroRegression(TestNode** root)
{
addTest(root, &TestEuroRegression, "tsconv/eurocreg/TestEuroRegression");
@@ -179,3 +180,9 @@ UBool isEuroAware(UConverter* myConv)
}
}
+#else
+void addTestEuroRegression(TestNode** root)
+{
+ /* test nothing... */
+}
+#endif
diff --git a/Build/source/libs/icu-xetex/test/cintltst/hpmufn.c b/Build/source/libs/icu-xetex/test/cintltst/hpmufn.c
index a67578f99e3..ef7d202395d 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/hpmufn.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/hpmufn.c
@@ -137,6 +137,20 @@ static void TestHeapFunctions() {
utrace_getFunctions(&traceContext, &traceEntryFunc, &traceExitFunc, &traceDataFunc);
traceLevel = utrace_getLevel();
+ /* Verify that ICU can be cleaned up and reinitialized successfully.
+ * Failure here usually means that some ICU service didn't clean up successfully,
+ * probably because some earlier test accidently left something open. */
+ u_cleanup();
+ utrace_setFunctions(traceContext, traceEntryFunc, traceExitFunc, traceDataFunc);
+ utrace_setLevel(traceLevel);
+ status = U_ZERO_ERROR;
+ u_setDataDirectory(icuDataDir);
+ u_init(&status);
+ TEST_STATUS(status, U_ZERO_ERROR);
+ if (U_FAILURE(status)) {
+ return;
+ }
+
/* Can not set memory functions if ICU is already initialized */
u_setMemoryFunctions(&gContext, myMemAlloc, myMemRealloc, myMemFree, &status);
TEST_STATUS(status, U_INVALID_STATE_ERROR);
@@ -287,6 +301,20 @@ static void TestMutexFunctions() {
utrace_getFunctions(&traceContext, &traceEntryFunc, &traceExitFunc, &traceDataFunc);
traceLevel = utrace_getLevel();
+ /* Verify that ICU can be cleaned up and reinitialized successfully.
+ * Failure here usually means that some ICU service didn't clean up successfully,
+ * probably because some earlier test accidently left something open. */
+ u_cleanup();
+ utrace_setFunctions(traceContext, traceEntryFunc, traceExitFunc, traceDataFunc);
+ utrace_setLevel(traceLevel);
+ status = U_ZERO_ERROR;
+ u_setDataDirectory(icuDataDir);
+ u_init(&status);
+ TEST_STATUS(status, U_ZERO_ERROR);
+ if (U_FAILURE(status)) {
+ return;
+ }
+
/* Can not set mutex functions if ICU is already initialized */
u_setMutexFunctions(&gContext, myMutexInit, myMutexDestroy, myMutexLock, myMutexUnlock, &status);
TEST_STATUS(status, U_INVALID_STATE_ERROR);
@@ -410,14 +438,31 @@ static void TestIncDecFunctions() {
const void *traceContext;
int32_t traceLevel;
+ /* Save ICU's data dir and tracing functions so that they can be resored
+ after cleanup and reinit. */
+ dataDir = safeGetICUDataDirectory();
+ utrace_getFunctions(&traceContext, &traceEntryFunc, &traceExitFunc, &traceDataFunc);
+ traceLevel = utrace_getLevel();
+
+ /* Verify that ICU can be cleaned up and reinitialized successfully.
+ * Failure here usually means that some ICU service didn't clean up successfully,
+ * probably because some earlier test accidently left something open. */
+ u_cleanup();
+ utrace_setFunctions(traceContext, traceEntryFunc, traceExitFunc, traceDataFunc);
+ utrace_setLevel(traceLevel);
+ status = U_ZERO_ERROR;
+ u_setDataDirectory(dataDir);
+ u_init(&status);
+ TEST_STATUS(status, U_ZERO_ERROR);
+ if (U_FAILURE(status)) {
+ return;
+ }
+
/* Can not set mutex functions if ICU is already initialized */
u_setAtomicIncDecFunctions(&gIncDecContext, myIncFunc, myDecFunc, &status);
TEST_STATUS(status, U_INVALID_STATE_ERROR);
- /* Un-initialize ICU */
- dataDir = safeGetICUDataDirectory();
- utrace_getFunctions(&traceContext, &traceEntryFunc, &traceExitFunc, &traceDataFunc);
- traceLevel = utrace_getLevel();
+ /* Clean up ICU */
u_cleanup();
utrace_setFunctions(traceContext, traceEntryFunc, traceExitFunc, traceDataFunc);
utrace_setLevel(traceLevel);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/nccbtst.c b/Build/source/libs/icu-xetex/test/cintltst/nccbtst.c
index 64d0922e3a3..d82d37b9e6d 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/nccbtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/nccbtst.c
@@ -1,15 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
+********************************************************************************
* File NCCBTST.C
*
* Modification History:
* Name Description
* Madhu Katragadda 7/21/1999 Testing error callback routines
-**************************************************************************************
+********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
@@ -23,6 +24,7 @@
#include "unicode/utypes.h"
#include "unicode/ustring.h"
#include "nccbtst.h"
+#include "unicode/ucnv_cb.h"
#define NEW_MAX_BUFFER 999
#define nct_min(x,y) ((x<y) ? x : y)
@@ -78,6 +80,8 @@ static void setNuConvTestName(const char *codepage, const char *direction)
}
+static void TestCallBackFailure(void);
+
void addTestConvertErrorCallBack(TestNode** root);
void addTestConvertErrorCallBack(TestNode** root)
@@ -86,8 +90,13 @@ void addTestConvertErrorCallBack(TestNode** root)
addTest(root, &TestStopCallBack, "tsconv/nccbtst/TestStopCallBack");
addTest(root, &TestSubCallBack, "tsconv/nccbtst/TestSubCallBack");
addTest(root, &TestSubWithValueCallBack, "tsconv/nccbtst/TestSubWithValueCallBack");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestLegalAndOtherCallBack, "tsconv/nccbtst/TestLegalAndOtherCallBack");
addTest(root, &TestSingleByteCallBack, "tsconv/nccbtst/TestSingleByteCallBack");
+#endif
+
+ addTest(root, &TestCallBackFailure, "tsconv/nccbtst/TestCallBackFailure");
}
static void TestSkipCallBack()
@@ -112,12 +121,13 @@ static void TestSubCallBack()
TestSub(1,NEW_MAX_BUFFER);
TestSub(1,1);
TestSub(NEW_MAX_BUFFER, 1);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
TestEBCDIC_STATEFUL_Sub(1, 1);
TestEBCDIC_STATEFUL_Sub(1, NEW_MAX_BUFFER);
TestEBCDIC_STATEFUL_Sub(NEW_MAX_BUFFER, 1);
TestEBCDIC_STATEFUL_Sub(NEW_MAX_BUFFER, NEW_MAX_BUFFER);
-
-
+#endif
}
static void TestSubWithValueCallBack()
@@ -128,6 +138,7 @@ static void TestSubWithValueCallBack()
TestSubWithValue(NEW_MAX_BUFFER, 1);
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestLegalAndOtherCallBack()
{
TestLegalAndOthers(NEW_MAX_BUFFER, NEW_MAX_BUFFER);
@@ -143,6 +154,7 @@ static void TestSingleByteCallBack()
TestSingleByte(1,1);
TestSingleByte(NEW_MAX_BUFFER, 1);
}
+#endif
static void TestSkip(int32_t inputsize, int32_t outputsize)
{
@@ -161,6 +173,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
/*From Unicode*/
log_verbose("Testing fromUnicode with UCNV_FROM_U_CALLBACK_SKIP \n");
+#if !UCONFIG_NO_LEGACY_CONVERSION
{
static const UChar sampleText[] = { 0x0000, 0xAC00, 0xAC01, 0xEF67, 0xD700 };
static const UChar sampleText2[] = { 0x6D63, 0x6D64, 0x6D65, 0x6D66 };
@@ -193,6 +206,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("u->ibm-930 with skip with untaken fallbacks did not match.\n");
}
}
+#endif
{
static const UChar usasciiFromU[] = { 0x61, 0x80, 0x4e00, 0x31, 0xd800, 0xdfff, 0x39 };
@@ -213,6 +227,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("u->US-ASCII with skip did not match.\n");
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
/* SBCS NLTC codepage 367 for US-ASCII */
if(!testConvertFromUnicode(usasciiFromU, sizeof(usasciiFromU)/U_SIZEOF_UCHAR,
usasciiFromUBytes, sizeof(usasciiFromUBytes),
@@ -222,6 +237,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
) {
log_err("u->ibm-367 with skip did not match.\n");
}
+#endif
/* ISO-Latin-1 */
if(!testConvertFromUnicode(latin1FromU, sizeof(latin1FromU)/U_SIZEOF_UCHAR,
@@ -233,6 +249,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("u->LATIN_1 with skip did not match.\n");
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
/* windows-1252 */
if(!testConvertFromUnicode(latin1FromU, sizeof(latin1FromU)/U_SIZEOF_UCHAR,
latin1FromUBytes, sizeof(latin1FromUBytes),
@@ -365,6 +382,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
};
+#endif
static const UChar SCSU_inputText[]={ 0x0041, 0xd801/*illegal*/, 0x0042, };
@@ -379,6 +397,8 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
2,
};
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
/* ISCII */
static const UChar iscii_inputText[]={ 0x0041, 0x3712/*unassigned*/, 0x0042, };
static const uint8_t to_iscii[]={
@@ -456,7 +476,8 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
if(!testConvertFromUnicodeWithContext(hz_inputText1, sizeof(hz_inputText1)/sizeof(hz_inputText1[0]),
to_hz1, sizeof(to_hz1), "hz",
UCNV_FROM_U_CALLBACK_SKIP, from_hzOffs1, NULL, 0,UCNV_SKIP_STOP_ON_ILLEGAL,U_ILLEGAL_CHAR_FOUND ))
- log_err("u-> hz with skip & UCNV_SKIP_STOP_ON_ILLEGAL did not match.\n");
+ log_err("u-> hz with skip & UCNV_SKIP_STOP_ON_ILLEGAL did not match.\n");
+#endif
/*SCSU*/
if(!testConvertFromUnicode(SCSU_inputText, sizeof(SCSU_inputText)/sizeof(SCSU_inputText[0]),
@@ -464,6 +485,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
UCNV_FROM_U_CALLBACK_SKIP, from_SCSUOffs, NULL, 0 ))
log_err("u-> SCSU with skip did not match.\n");
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*ISCII*/
if(!testConvertFromUnicode(iscii_inputText, sizeof(iscii_inputText)/sizeof(iscii_inputText[0]),
to_iscii, sizeof(to_iscii), "ISCII,version=0",
@@ -474,7 +496,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
to_iscii1, sizeof(to_iscii1), "ISCII,version=0",
UCNV_FROM_U_CALLBACK_SKIP, from_isciiOffs1, NULL, 0,UCNV_SKIP_STOP_ON_ILLEGAL,U_ILLEGAL_CHAR_FOUND ))
log_err("u-> iscii with skip & UCNV_SKIP_STOP_ON_ILLEGAL did not match.\n");
-
+#endif
}
log_verbose("Testing fromUnicode for BOCU-1 with UCNV_TO_U_CALLBACK_SKIP\n");
@@ -625,6 +647,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
/*to Unicode*/
log_verbose("Testing toUnicode with UCNV_TO_U_CALLBACK_SKIP \n");
+#if !UCONFIG_NO_LEGACY_CONVERSION
{
static const UChar IBM_949skiptoUnicode[]= {0x0000, 0xAC00, 0xAC01, 0xD700 };
@@ -656,6 +679,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
UCNV_TO_U_CALLBACK_SKIP, fromIBM930Offs, NULL, 0,"i",U_ILLEGAL_CHAR_FOUND ))
log_err("ibm-930->u with skip did not match.\n");
}
+#endif
{
static const uint8_t usasciiToUBytes[] = { 0x61, 0x80, 0x31 };
@@ -676,6 +700,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("US-ASCII->u with skip did not match.\n");
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
/* SBCS NLTC codepage 367 for US-ASCII */
if(!testConvertToUnicode(usasciiToUBytes, sizeof(usasciiToUBytes),
usasciiToU, sizeof(usasciiToU)/U_SIZEOF_UCHAR,
@@ -685,6 +710,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
) {
log_err("ibm-367->u with skip did not match.\n");
}
+#endif
/* ISO-Latin-1 */
if(!testConvertToUnicode(latin1ToUBytes, sizeof(latin1ToUBytes),
@@ -696,6 +722,7 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("LATIN_1->u with skip did not match.\n");
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
/* windows-1252 */
if(!testConvertToUnicode(latin1ToUBytes, sizeof(latin1ToUBytes),
latin1ToU, sizeof(latin1ToU)/U_SIZEOF_UCHAR,
@@ -705,8 +732,10 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
) {
log_err("windows-1252->u with skip did not match.\n");
}
+#endif
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
{
static const uint8_t sampleTxtEBCIDIC_STATEFUL [] ={
0x0e, 0x5d, 0x5f , 0x41, 0x79, 0x41, 0x44
@@ -869,6 +898,8 @@ static void TestSkip(int32_t inputsize, int32_t outputsize)
log_err("LMBCS->u with skip did not match.\n");
}
+#endif
+
log_verbose("Testing to Unicode for UTF-8 with UCNV_TO_U_CALLBACK_SKIP \n");
{
const uint8_t sampleText1[] = { 0x31, 0xe4, 0xba, 0x8c,
@@ -1068,7 +1099,10 @@ static void TestStop(int32_t inputsize, int32_t outputsize)
gInBufferSize = inputsize;
gOutBufferSize = outputsize;
+
/*From Unicode*/
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertFromUnicode(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expstopIBM_949, sizeof(expstopIBM_949), "ibm-949",
UCNV_FROM_U_CALLBACK_STOP, toIBM949Offsstop, NULL, 0 ))
@@ -1200,6 +1234,8 @@ static void TestStop(int32_t inputsize, int32_t outputsize)
}
+#endif
+
log_verbose("Testing fromUnicode for SCSU with UCNV_FROM_U_CALLBACK_STOP \n");
{
static const UChar SCSU_inputText[]={ 0x0041, 0xd801/*illegal*/, 0x0042, };
@@ -1218,7 +1254,10 @@ static void TestStop(int32_t inputsize, int32_t outputsize)
log_err("u-> SCSU with skip did not match.\n");
}
+
/*to Unicode*/
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertToUnicode(expstopIBM_949, sizeof(expstopIBM_949),
IBM_949stoptoUnicode, sizeof(IBM_949stoptoUnicode)/sizeof(IBM_949stoptoUnicode[0]),"ibm-949",
UCNV_TO_U_CALLBACK_STOP, fromIBM949Offs, NULL, 0 ))
@@ -1275,6 +1314,8 @@ static void TestStop(int32_t inputsize, int32_t outputsize)
UCNV_TO_U_CALLBACK_STOP, from_euc_twOffs, NULL, 0 ))
log_err("euc-tw->u with stop did not match.\n");
}
+#endif
+
log_verbose("Testing toUnicode for UTF-8 with UCNV_TO_U_CALLBACK_STOP \n");
{
static const uint8_t sampleText1[] = { 0x31, 0xe4, 0xba, 0x8c,
@@ -1331,6 +1372,8 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
gOutBufferSize = outputsize;
/*from unicode*/
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertFromUnicode(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expsubIBM_949, sizeof(expsubIBM_949), "ibm-949",
UCNV_FROM_U_CALLBACK_SUBSTITUTE, toIBM949Offssub, NULL, 0 ))
@@ -1384,6 +1427,7 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
UCNV_FROM_U_CALLBACK_SUBSTITUTE, from_euc_twOffs, NULL, 0 ))
log_err("u-> euc-tw with substitute did not match.\n");
}
+#endif
log_verbose("Testing fromUnicode for SCSU with UCNV_FROM_U_CALLBACK_SUBSTITUTE \n");
{
@@ -1493,6 +1537,8 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
}
/*to unicode*/
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertToUnicode(expsubIBM_949, sizeof(expsubIBM_949),
IBM_949subtoUnicode, sizeof(IBM_949subtoUnicode)/sizeof(IBM_949subtoUnicode[0]),"ibm-949",
UCNV_TO_U_CALLBACK_SUBSTITUTE, fromIBM949Offs, NULL, 0 ))
@@ -1557,10 +1603,9 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
euc_jptoUnicode, sizeof(euc_jptoUnicode)/sizeof(euc_jptoUnicode[0]),"euc-jp",
UCNV_TO_U_CALLBACK_SUBSTITUTE, from_euc_jpOffs, NULL, 0 ,"i", U_ILLEGAL_CHAR_FOUND))
log_err("euc-jp->u with substitute did not match.\n");
-
-
-
}
+#endif
+
log_verbose("Testing toUnicode for UTF-8 with UCNV_TO_U_CALLBACK_SUBSTITUTE \n");
{
const uint8_t sampleText1[] = { 0x31, 0xe4, 0xba, 0x8c,
@@ -1585,6 +1630,7 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
log_err("scsu->u with stop did not match.\n");;
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing ibm-930 subchar/subchar1\n");
{
static const UChar u1[]={ 0x6d63, 0x6d64, 0x6d65, 0x6d66, 0xdf };
@@ -1623,6 +1669,7 @@ static void TestSub(int32_t inputsize, int32_t outputsize)
log_err("gb18030->u with substitute did not match.\n");
}
}
+#endif
log_verbose("Testing UTF-7 toUnicode with substitute callbacks\n");
{
@@ -1750,6 +1797,8 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
gOutBufferSize = outputsize;
/*from Unicode*/
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertFromUnicode(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expsubwvalIBM_949, sizeof(expsubwvalIBM_949), "ibm-949",
UCNV_FROM_U_CALLBACK_ESCAPE, toIBM949Offs, NULL, 0 ))
@@ -2187,11 +2236,12 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
UCNV_FROM_U_CALLBACK_ESCAPE, from_isciiOffs, NULL, 0 ))
log_err("u-> iscii with subst with value did not match.\n");
}
-
+#endif
log_verbose("Testing toUnicode with UCNV_TO_U_CALLBACK_ESCAPE \n");
/*to Unicode*/
{
+#if !UCONFIG_NO_LEGACY_CONVERSION
static const uint8_t sampleTxtToU[]= { 0x00, 0x9f, 0xaf,
0x81, 0xad, /*unassigned*/
0x89, 0xd3 };
@@ -2302,7 +2352,7 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
0x42,};
static const int32_t from_isciiOffs [] ={0,1,2,2,2,2,3,4,5,5,5,5,6 };
-
+#endif
/*UTF8*/
static const uint8_t sampleTxtUTF8[]={
@@ -2341,7 +2391,8 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
9
};
-
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
if(!testConvertToUnicode(sampleTxtToU, sizeof(sampleTxtToU),
IBM_943toUnicode, sizeof(IBM_943toUnicode)/sizeof(IBM_943toUnicode[0]),"ibm-943",
UCNV_TO_U_CALLBACK_ESCAPE, fromIBM943Offs, NULL, 0 ))
@@ -2424,6 +2475,8 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
isciitoUnicode, sizeof(isciitoUnicode)/sizeof(isciitoUnicode[0]),"ISCII,version=0",
UCNV_TO_U_CALLBACK_ESCAPE, from_isciiOffs, NULL, 0))
log_err("ISCII ->u with substitute with value did not match.\n");
+#endif
+
if(!testConvertToUnicode(sampleTxtUTF8, sizeof(sampleTxtUTF8),
UTF8ToUnicode, sizeof(UTF8ToUnicode)/sizeof(UTF8ToUnicode[0]),"UTF-8",
UCNV_TO_U_CALLBACK_ESCAPE, fromUTF8, NULL, 0))
@@ -2435,6 +2488,7 @@ static void TestSubWithValue(int32_t inputsize, int32_t outputsize)
}
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestLegalAndOthers(int32_t inputsize, int32_t outputsize)
{
static const UChar legalText[] = { 0x0000, 0xAC00, 0xAC01, 0xD700 };
@@ -2522,8 +2576,7 @@ static void TestEBCDIC_STATEFUL_Sub(int32_t inputsize, int32_t outputsize)
UCNV_FROM_U_CALLBACK_SUBSTITUTE, offset_930_subvaried, mySubChar, 1 ))
log_err("u-> ibm-930(EBCDIC_STATEFUL) with subst(setSubChar=0x3f) did not match.\n");
}
-
-
+#endif
UBool testConvertFromUnicode(const UChar *source, int sourceLen, const uint8_t *expect, int expectLen,
const char *codepage, UConverterFromUCallback callback , const int32_t *expectOffsets,
@@ -2533,28 +2586,28 @@ UBool testConvertFromUnicode(const UChar *source, int sourceLen, const uint8_t
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
- uint8_t junkout[NEW_MAX_BUFFER]; /* FIX */
+ char junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
const UChar *src;
- uint8_t *end;
- uint8_t *targ;
+ char *end;
+ char *targ;
int32_t *offs;
int i;
int32_t realBufferSize;
- uint8_t *realBufferEnd;
+ char *realBufferEnd;
const UChar *realSourceEnd;
const UChar *sourceLimit;
UBool checkOffsets = TRUE;
UBool doFlush;
char junk[9999];
char offset_str[9999];
- uint8_t *p;
+ char *p;
UConverterFromUCallback oldAction = NULL;
const void* oldContext = NULL;
for(i=0;i<NEW_MAX_BUFFER;i++)
- junkout[i] = 0xF0;
+ junkout[i] = (char)0xF0;
for(i=0;i<NEW_MAX_BUFFER;i++)
junokout[i] = 0xFF;
setNuConvTestName(codepage, "FROM");
@@ -2684,7 +2737,7 @@ UBool testConvertFromUnicode(const UChar *source, int sourceLen, const uint8_t
{
log_err("Expected %d chars out, got %d %s\n", expectLen, targ-junkout, gNuConvTestName);
log_verbose("Expected %d chars out, got %d %s\n", expectLen, targ-junkout, gNuConvTestName);
- printSeqErr(junkout, (int32_t)(targ-junkout));
+ printSeqErr((const uint8_t *)junkout, (int32_t)(targ-junkout));
printSeqErr(expect, expectLen);
return FALSE;
}
@@ -2695,7 +2748,7 @@ UBool testConvertFromUnicode(const UChar *source, int sourceLen, const uint8_t
if(memcmp(junokout,expectOffsets,(targ-junkout) * sizeof(int32_t) )){
log_err("did not get the expected offsets while %s \n", gNuConvTestName);
log_err("Got Output : ");
- printSeqErr(junkout, (int32_t)(targ-junkout));
+ printSeqErr((const uint8_t *)junkout, (int32_t)(targ-junkout));
log_err("Got Offsets: ");
for(p=junkout;p<targ;p++)
log_err("%d,", junokout[p-junkout]);
@@ -2719,7 +2772,7 @@ UBool testConvertFromUnicode(const UChar *source, int sourceLen, const uint8_t
log_err("source: ");
printUSeqErr(source, sourceLen);
log_err("Got: ");
- printSeqErr(junkout, expectLen);
+ printSeqErr((const uint8_t *)junkout, expectLen);
log_err("Expected: ");
printSeqErr(expect, expectLen);
return FALSE;
@@ -2734,9 +2787,9 @@ UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const UChar *e
UConverter *conv = 0;
UChar junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
- const uint8_t *src;
- const uint8_t *realSourceEnd;
- const uint8_t *srcLimit;
+ const char *src;
+ const char *realSourceEnd;
+ const char *srcLimit;
UChar *targ;
UChar *end;
int32_t *offs;
@@ -2771,7 +2824,7 @@ UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const UChar *e
log_verbose("Converter opened..\n");
- src = source;
+ src = (const char *)source;
targ = junkout;
offs = junokout;
@@ -2831,8 +2884,8 @@ UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const UChar *e
char errChars[50]; /* should be sufficient */
int8_t errLen = 50;
UErrorCode err = U_ZERO_ERROR;
- const uint8_t* limit= NULL;
- const uint8_t* start= NULL;
+ const char* limit= NULL;
+ const char* start= NULL;
ucnv_getInvalidChars(conv,errChars, &errLen, &err);
if(U_FAILURE(err)){
log_err("ucnv_getInvalidChars failed with error : %s\n",u_errorName(err));
@@ -2841,7 +2894,7 @@ UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const UChar *e
limit = src;
/* length of in invalid chars should be equal to returned length*/
start = src - errLen;
- if(uprv_strncmp(errChars,(char*)start,errLen)!=0){
+ if(uprv_strncmp(errChars,start,errLen)!=0){
log_err("ucnv_getInvalidChars did not return the correct invalid chars for encoding %s \n", ucnv_getName(conv,&err));
}
}
@@ -2898,7 +2951,7 @@ UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const UChar *e
log_err("0x%04x,", junkout[i]);
log_err("\n");
log_err("From source: ");
- for(i=0; i<(src-source); i++)
+ for(i=0; i<(src-(const char *)source); i++)
log_err(" 0x%02x,", (unsigned char)source[i]);
log_err("\n");
}
@@ -2930,28 +2983,28 @@ UBool testConvertFromUnicodeWithContext(const UChar *source, int sourceLen, con
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
- uint8_t junkout[NEW_MAX_BUFFER]; /* FIX */
+ char junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
const UChar *src;
- uint8_t *end;
- uint8_t *targ;
+ char *end;
+ char *targ;
int32_t *offs;
int i;
int32_t realBufferSize;
- uint8_t *realBufferEnd;
+ char *realBufferEnd;
const UChar *realSourceEnd;
const UChar *sourceLimit;
UBool checkOffsets = TRUE;
UBool doFlush;
char junk[9999];
char offset_str[9999];
- uint8_t *p;
+ char *p;
UConverterFromUCallback oldAction = NULL;
const void* oldContext = NULL;
for(i=0;i<NEW_MAX_BUFFER;i++)
- junkout[i] = 0xF0;
+ junkout[i] = (char)0xF0;
for(i=0;i<NEW_MAX_BUFFER;i++)
junokout[i] = 0xFF;
setNuConvTestName(codepage, "FROM");
@@ -3061,7 +3114,7 @@ UBool testConvertFromUnicodeWithContext(const UChar *source, int sourceLen, con
{
log_err("Expected %d chars out, got %d %s\n", expectLen, targ-junkout, gNuConvTestName);
log_verbose("Expected %d chars out, got %d %s\n", expectLen, targ-junkout, gNuConvTestName);
- printSeqErr(junkout, (int32_t)(targ-junkout));
+ printSeqErr((const uint8_t *)junkout, (int32_t)(targ-junkout));
printSeqErr(expect, expectLen);
return FALSE;
}
@@ -3072,7 +3125,7 @@ UBool testConvertFromUnicodeWithContext(const UChar *source, int sourceLen, con
if(memcmp(junokout,expectOffsets,(targ-junkout) * sizeof(int32_t) )){
log_err("did not get the expected offsets while %s \n", gNuConvTestName);
log_err("Got Output : ");
- printSeqErr(junkout, (int32_t)(targ-junkout));
+ printSeqErr((const uint8_t *)junkout, (int32_t)(targ-junkout));
log_err("Got Offsets: ");
for(p=junkout;p<targ;p++)
log_err("%d,", junokout[p-junkout]);
@@ -3096,7 +3149,7 @@ UBool testConvertFromUnicodeWithContext(const UChar *source, int sourceLen, con
log_err("source: ");
printUSeqErr(source, sourceLen);
log_err("Got: ");
- printSeqErr(junkout, expectLen);
+ printSeqErr((const uint8_t *)junkout, expectLen);
log_err("Expected: ");
printSeqErr(expect, expectLen);
return FALSE;
@@ -3110,9 +3163,9 @@ UBool testConvertToUnicodeWithContext( const uint8_t *source, int sourcelen, con
UConverter *conv = 0;
UChar junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
- const uint8_t *src;
- const uint8_t *realSourceEnd;
- const uint8_t *srcLimit;
+ const char *src;
+ const char *realSourceEnd;
+ const char *srcLimit;
UChar *targ;
UChar *end;
int32_t *offs;
@@ -3147,7 +3200,7 @@ UBool testConvertToUnicodeWithContext( const uint8_t *source, int sourcelen, con
log_verbose("Converter opened..\n");
- src = source;
+ src = (const char *)source;
targ = junkout;
offs = junokout;
@@ -3255,7 +3308,7 @@ UBool testConvertToUnicodeWithContext( const uint8_t *source, int sourcelen, con
log_err("0x%04x,", junkout[i]);
log_err("\n");
log_err("From source: ");
- for(i=0; i<(src-source); i++)
+ for(i=0; i<(src-(const char *)source); i++)
log_err(" 0x%02x,", (unsigned char)source[i]);
log_err("\n");
}
@@ -3278,3 +3331,24 @@ UBool testConvertToUnicodeWithContext( const uint8_t *source, int sourcelen, con
return FALSE;
}
}
+
+static void TestCallBackFailure(void) {
+ UErrorCode status = U_USELESS_COLLATOR_ERROR;
+ ucnv_cbFromUWriteBytes(NULL, NULL, -1, -1, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Error: ucnv_cbFromUWriteBytes did not react correctly to a bad UErrorCode\n");
+ }
+ ucnv_cbFromUWriteUChars(NULL, NULL, NULL, -1, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Error: ucnv_cbFromUWriteUChars did not react correctly to a bad UErrorCode\n");
+ }
+ ucnv_cbFromUWriteSub(NULL, -1, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Error: ucnv_cbFromUWriteSub did not react correctly to a bad UErrorCode\n");
+ }
+ ucnv_cbToUWriteUChars(NULL, NULL, -1, -1, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Error: ucnv_cbToUWriteUChars did not react correctly to a bad UErrorCode\n");
+ }
+}
+
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ncnvfbts.c b/Build/source/libs/icu-xetex/test/cintltst/ncnvfbts.c
index c05aa97744d..1a0f2b77ace 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/ncnvfbts.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/ncnvfbts.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
***************************************************************************/
/*******************************************************************************
@@ -23,6 +23,7 @@
#include "cmemory.h"
#include "cstring.h"
+#if !UCONFIG_NO_LEGACY_CONVERSION
#define NEW_MAX_BUFFER 999
@@ -130,25 +131,25 @@ static UBool testConvertFromUnicode(const UChar *source, int sourceLen, const u
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
- uint8_t junkout[NEW_MAX_BUFFER]; /* FIX */
+ char junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
const UChar *src;
- uint8_t *end;
- uint8_t *targ;
+ char *end;
+ char *targ;
int32_t *offs;
int i;
int32_t realBufferSize;
- uint8_t *realBufferEnd;
+ char *realBufferEnd;
const UChar *realSourceEnd;
const UChar *sourceLimit;
UBool checkOffsets = TRUE;
UBool doFlush;
UBool action=FALSE;
- uint8_t *p;
+ char *p;
for(i=0;i<NEW_MAX_BUFFER;i++)
- junkout[i] = 0xF0;
+ junkout[i] = (char)0xF0;
for(i=0;i<NEW_MAX_BUFFER;i++)
junokout[i] = 0xFF;
setNuConvTestName(codepage, "FROM");
@@ -293,9 +294,9 @@ static UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const U
UConverter *conv = 0;
UChar junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
- const uint8_t *src;
- const uint8_t *realSourceEnd;
- const uint8_t *srcLimit;
+ const char *src;
+ const char *realSourceEnd;
+ const char *srcLimit;
UChar *targ;
UChar *end;
int32_t *offs;
@@ -329,7 +330,7 @@ static UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const U
log_verbose("Converter opened..\n");
- src = source;
+ src = (const char *)source;
targ = junkout;
offs = junokout;
@@ -424,7 +425,7 @@ static UBool testConvertToUnicode( const uint8_t *source, int sourcelen, const U
for(i=0; i<(targ-junkout); i++)
log_err("0x%04X,", junkout[i]);
log_err("");
- for(i=0; i<(src-source); i++)
+ for(i=0; i<(src-(const char *)source); i++)
log_err("0x%04X,", (unsigned char)source[i]);
}
}
@@ -745,3 +746,10 @@ static void TestConvertFallBackWithBufferSizes(int32_t outsize, int32_t insize )
}
}
+#else
+void addTestConverterFallBack(TestNode** root)
+{
+ /* test nothing... */
+
+}
+#endif
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ncnvtst.c b/Build/source/libs/icu-xetex/test/cintltst/ncnvtst.c
index 8df78de283f..1b26b145aef 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/ncnvtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/ncnvtst.c
@@ -1,16 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
-/********************************************************************************
+/*******************************************************************************
*
* File CCONVTST.C
*
* Modification History:
* Name Description
* Madhu Katragadda 7/7/2000 Converter Tests for extended code coverage
-*********************************************************************************
+********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
@@ -61,8 +61,12 @@ static void setNuConvTestName(const char *codepage, const char *direction)
static void TestSurrogateBehaviour(void);
static void TestErrorBehaviour(void);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestToUnicodeErrorBehaviour(void);
static void TestGetNextErrorBehaviour(void);
+#endif
+
static void TestRegressionUTF8(void);
static void TestRegressionUTF32(void);
static void TestAvailableConverters(void);
@@ -115,8 +119,12 @@ void addExtraTests(TestNode** root)
{
addTest(root, &TestSurrogateBehaviour, "tsconv/ncnvtst/TestSurrogateBehaviour");
addTest(root, &TestErrorBehaviour, "tsconv/ncnvtst/TestErrorBehaviour");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestToUnicodeErrorBehaviour, "tsconv/ncnvtst/ToUnicodeErrorBehaviour");
addTest(root, &TestGetNextErrorBehaviour, "tsconv/ncnvtst/TestGetNextErrorBehaviour");
+#endif
+
addTest(root, &TestAvailableConverters, "tsconv/ncnvtst/TestAvailableConverters");
addTest(root, &TestFlushInternalBuffer, "tsconv/ncnvtst/TestFlushInternalBuffer");
addTest(root, &TestResetBehaviour, "tsconv/ncnvtst/TestResetBehaviour");
@@ -132,10 +140,13 @@ static void TestSurrogateBehaviour(){
{
UChar sampleText[] = {0x0031, 0xd801, 0xdc01, 0x0032};
const uint8_t expected[] = {0x31, 0x1a, 0x32};
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*SBCS*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expected, sizeof(expected), "ibm-920", 0 , TRUE, U_ZERO_ERROR))
log_err("u-> ibm-920 [UCNV_SBCS] not match.\n");
+#endif
/*LATIN_1*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
@@ -143,6 +154,8 @@ static void TestSurrogateBehaviour(){
log_err("u-> LATIN_1 not match.\n");
}
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing for DBCS and MBCS\n");
{
UChar sampleText[] = {0x00a1, 0xd801, 0xdc01, 0x00a4};
@@ -164,6 +177,7 @@ static void TestSurrogateBehaviour(){
expected, sizeof(expected), "ibm-1363", offsets, TRUE, U_ZERO_ERROR))
log_err("u-> ibm-1363 [UCNV_MBCS] not match.\n");
}
+
log_verbose("Testing for ISO-2022-jp\n");
{
UChar sampleText[] = { 0x4e00, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -182,6 +196,7 @@ static void TestSurrogateBehaviour(){
expected, sizeof(expected), "iso-2022-jp", offsets , TRUE, U_ZERO_ERROR))
log_err("u-> not match.\n");
}
+
log_verbose("Testing for ISO-2022-cn\n");
{
static const UChar sampleText[] = { 0x4e00, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -211,6 +226,7 @@ static void TestSurrogateBehaviour(){
expected, sizeof(expected), "iso-2022-cn", offsets , TRUE, U_ZERO_ERROR))
log_err("u-> not match.\n");
}
+
log_verbose("Testing for ISO-2022-kr\n");
{
static const UChar sampleText[] = { 0x4e00,0xd801, 0xdc01, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -240,6 +256,7 @@ static void TestSurrogateBehaviour(){
expected, sizeof(expected), "iso-2022-kr", offsets , TRUE, U_ZERO_ERROR))
log_err("u-> iso-2022-kr [UCNV_DBCS] not match.\n");
}
+
log_verbose("Testing for HZ\n");
{
static const UChar sampleText[] = { 0x4e00, 0xd801, 0xdc01, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -262,11 +279,13 @@ static void TestSurrogateBehaviour(){
/*hz*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expected, sizeof(expected), "HZ", 0 , TRUE, U_ZERO_ERROR))
- log_err("u-> not match.\n");
+ log_err("u-> HZ not match.\n");
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expected, sizeof(expected), "HZ", offsets , TRUE, U_ZERO_ERROR))
- log_err("u-> not match.\n");
+ log_err("u-> HZ not match.\n");
}
+#endif
+
/*UTF-8*/
log_verbose("Testing for UTF8\n");
{
@@ -295,21 +314,18 @@ static void TestSurrogateBehaviour(){
if(!convertToU(expected, sizeof(expected),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "UTF8", 0, TRUE, U_ZERO_ERROR ))
- log_err("UTF8 -> did not match.\n");
+ log_err("UTF8 -> u did not match.\n");
if(!convertToU(expected, sizeof(expected),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "UTF8", 0, FALSE, U_ZERO_ERROR ))
- log_err("UTF8 -> did not match.\n");
+ log_err("UTF8 -> u did not match.\n");
if(!convertToU(expected, sizeof(expected),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "UTF8", fromOffsets, TRUE, U_ZERO_ERROR ))
- log_err("UTF8 -> did not match.\n");
+ log_err("UTF8 ->u did not match.\n");
if(!convertToU(expected, sizeof(expected),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "UTF8", fromOffsets, FALSE, U_ZERO_ERROR ))
- log_err("UTF8 -> did not match.\n");
+ log_err("UTF8 -> u did not match.\n");
}
-
-
-
}
/*test various error behaviours*/
@@ -322,6 +338,7 @@ static void TestErrorBehaviour(){
static const uint8_t expected[] = { 0x31, 0x1a};
static const uint8_t expected2[] = { 0x31, 0x1a, 0x32};
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*SBCS*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expected, sizeof(expected), "ibm-920", 0, TRUE, U_ZERO_ERROR))
@@ -332,7 +349,7 @@ static void TestErrorBehaviour(){
if(!convertFromU(sampleText2, sizeof(sampleText2)/sizeof(sampleText2[0]),
expected2, sizeof(expected2), "ibm-920", 0, TRUE, U_ZERO_ERROR))
log_err("u-> ibm-920 [UCNV_SBCS] did not match\n");
-
+#endif
/*LATIN_1*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
@@ -347,7 +364,7 @@ static void TestErrorBehaviour(){
log_err("u-> LATIN_1 did not match\n");
}
-
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing for DBCS and MBCS\n");
{
static const UChar sampleText[] = { 0x00a1, 0xd801};
@@ -368,10 +385,6 @@ static void TestErrorBehaviour(){
static const uint8_t expected4MBCS[] = { 0x61, 0x8f, 0xa2, 0xc3, 0xf4, 0xfe};
static const int32_t offsets4MBCS[] = { 0x00, 0x01, 0x01, 0x01, 0x02, 0x02 };
-
-
-
-
/*DBCS*/
if(!convertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedSUB, sizeof(expectedSUB), "ibm-1363", 0, TRUE, U_ZERO_ERROR))
@@ -427,6 +440,7 @@ static void TestErrorBehaviour(){
expected4MBCS, sizeof(expected4MBCS), "euc-jp", offsets4MBCS, FALSE, U_ZERO_ERROR))
log_err("u-> euc-jp [UCNV_MBCS] \n");
}
+
/*iso-2022-jp*/
log_verbose("Testing for iso-2022-jp\n");
{
@@ -466,6 +480,7 @@ static void TestErrorBehaviour(){
expected4MBCS, sizeof(expected4MBCS), "iso-2022-jp", offsets4MBCS, FALSE, U_ZERO_ERROR))
log_err("u-> iso-2022-jp [UCNV_MBCS] \n");
}
+
/*iso-2022-cn*/
log_verbose("Testing for iso-2022-cn\n");
{
@@ -516,6 +531,7 @@ static void TestErrorBehaviour(){
expected4MBCS, sizeof(expected4MBCS), "iso-2022-cn", offsets4MBCS, FALSE, U_ZERO_ERROR))
log_err("u-> iso-2022-cn [UCNV_MBCS] \n");
}
+
/*iso-2022-kr*/
log_verbose("Testing for iso-2022-kr\n");
{
@@ -607,10 +623,10 @@ static void TestErrorBehaviour(){
expected4MBCS, sizeof(expected4MBCS), "HZ", offsets4MBCS, FALSE, U_ZERO_ERROR))
log_err("u-> HZ [UCNV_MBCS] \n");
}
-
-
+#endif
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*test different convertToUnicode error behaviours*/
static void TestToUnicodeErrorBehaviour()
{
@@ -662,6 +678,7 @@ static void TestGetNextErrorBehaviour(){
}
ucnv_close(cnv);
}
+#endif
#define MAX_UTF16_LEN 2
#define MAX_UTF8_LEN 4
@@ -697,8 +714,42 @@ static void TestRegressionUTF8(){
log_err("UTF8->Unicode did not match.\n");
}
}
+
free(standardForm);
free(utf8);
+
+ {
+ static const char src8[] = { (char)0xCC, (char)0x81, (char)0xCC, (char)0x80 };
+ static const UChar expected[] = { 0x0301, 0x0300 };
+ UConverter *conv8;
+ UErrorCode err = U_ZERO_ERROR;
+ UChar pivotBuffer[100];
+ const UChar* const pivEnd = pivotBuffer + 100;
+ const char* srcBeg;
+ const char* srcEnd;
+ UChar* pivBeg;
+
+ conv8 = ucnv_open("UTF-8", &err);
+
+ srcBeg = src8;
+ pivBeg = pivotBuffer;
+ srcEnd = src8 + 3;
+ ucnv_toUnicode(conv8, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, FALSE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on first call.\n");
+ }
+
+ srcEnd = src8 + 4;
+ ucnv_toUnicode(conv8, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, TRUE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on second call.\n");
+ }
+
+ if (U_FAILURE(err) || (int32_t)(pivBeg - pivotBuffer) != 2 || u_strncmp(pivotBuffer, expected, 2) != 0) {
+ log_err("Did not get expected results for UTF-8.\n");
+ }
+ ucnv_close(conv8);
+ }
}
#define MAX_UTF32_LEN 1
@@ -735,6 +786,106 @@ static void TestRegressionUTF32(){
}
free(standardForm);
free(utf32);
+
+ {
+ /* Check for lone surrogate error handling. */
+ static const UChar sampleBadStartSurrogate[] = { 0x0031, 0xD800, 0x0032 };
+ static const UChar sampleBadEndSurrogate[] = { 0x0031, 0xDC00, 0x0032 };
+ static const uint8_t expectedUTF32BE[] = {
+ 0x00, 0x00, 0x00, 0x31,
+ 0x00, 0x00, 0xff, 0xfd,
+ 0x00, 0x00, 0x00, 0x32
+ };
+ static const uint8_t expectedUTF32LE[] = {
+ 0x31, 0x00, 0x00, 0x00,
+ 0xfd, 0xff, 0x00, 0x00,
+ 0x32, 0x00, 0x00, 0x00
+ };
+ static const int32_t offsetsUTF32[] = {
+ 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x01,
+ 0x02, 0x02, 0x02, 0x02
+ };
+
+ if(!convertFromU(sampleBadStartSurrogate, sizeof(sampleBadStartSurrogate)/sizeof(sampleBadStartSurrogate[0]),
+ expectedUTF32BE, sizeof(expectedUTF32BE), "UTF-32BE", offsetsUTF32, TRUE, U_ZERO_ERROR))
+ log_err("u->UTF-32BE\n");
+ if(!convertFromU(sampleBadEndSurrogate, sizeof(sampleBadEndSurrogate)/sizeof(sampleBadEndSurrogate[0]),
+ expectedUTF32BE, sizeof(expectedUTF32BE), "UTF-32BE", offsetsUTF32, TRUE, U_ZERO_ERROR))
+ log_err("u->UTF-32BE\n");
+
+ if(!convertFromU(sampleBadStartSurrogate, sizeof(sampleBadStartSurrogate)/sizeof(sampleBadStartSurrogate[0]),
+ expectedUTF32LE, sizeof(expectedUTF32LE), "UTF-32LE", offsetsUTF32, TRUE, U_ZERO_ERROR))
+ log_err("u->UTF-32LE\n");
+ if(!convertFromU(sampleBadEndSurrogate, sizeof(sampleBadEndSurrogate)/sizeof(sampleBadEndSurrogate[0]),
+ expectedUTF32LE, sizeof(expectedUTF32LE), "UTF-32LE", offsetsUTF32, TRUE, U_ZERO_ERROR))
+ log_err("u->UTF-32LE\n");
+ }
+
+ {
+ static const char srcBE[] = { 0, 0, 0, 0x31, 0, 0, 0, 0x30 };
+ static const UChar expected[] = { 0x0031, 0x0030 };
+ UConverter *convBE;
+ UErrorCode err = U_ZERO_ERROR;
+ UChar pivotBuffer[100];
+ const UChar* const pivEnd = pivotBuffer + 100;
+ const char* srcBeg;
+ const char* srcEnd;
+ UChar* pivBeg;
+
+ convBE = ucnv_open("UTF-32BE", &err);
+
+ srcBeg = srcBE;
+ pivBeg = pivotBuffer;
+ srcEnd = srcBE + 5;
+ ucnv_toUnicode(convBE, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, FALSE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on first call.\n");
+ }
+
+ srcEnd = srcBE + 8;
+ ucnv_toUnicode(convBE, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, TRUE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on second call.\n");
+ }
+
+ if (U_FAILURE(err) || (int32_t)(pivBeg - pivotBuffer) != 2 || u_strncmp(pivotBuffer, expected, 2) != 0) {
+ log_err("Did not get expected results for UTF-32BE.\n");
+ }
+ ucnv_close(convBE);
+ }
+ {
+ static const char srcLE[] = { 0x31, 0, 0, 0, 0x30, 0, 0, 0 };
+ static const UChar expected[] = { 0x0031, 0x0030 };
+ UConverter *convLE;
+ UErrorCode err = U_ZERO_ERROR;
+ UChar pivotBuffer[100];
+ const UChar* const pivEnd = pivotBuffer + 100;
+ const char* srcBeg;
+ const char* srcEnd;
+ UChar* pivBeg;
+
+ convLE = ucnv_open("UTF-32LE", &err);
+
+ srcBeg = srcLE;
+ pivBeg = pivotBuffer;
+ srcEnd = srcLE + 5;
+ ucnv_toUnicode(convLE, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, FALSE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on first call.\n");
+ }
+
+ srcEnd = srcLE + 8;
+ ucnv_toUnicode(convLE, &pivBeg, pivEnd, &srcBeg, srcEnd, 0, TRUE, &err);
+ if (srcBeg != srcEnd) {
+ log_err("Did not consume whole buffer on second call.\n");
+ }
+
+ if (U_FAILURE(err) || (int32_t)(pivBeg - pivotBuffer) != 2 || u_strncmp(pivotBuffer, expected, 2) != 0) {
+ log_err("Did not get expected results for UTF-32LE.\n");
+ }
+ ucnv_close(convLE);
+ }
}
/*Walk through the available converters*/
@@ -784,6 +935,7 @@ static void TestWithBufferSize(int32_t insize, int32_t outsize){
log_err("u-> UTF8 did not match.\n");
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing fromUnicode with UCNV_FROM_U_CALLBACK_ESCAPE \n");
{
UChar inputTest[] = { 0x0061, 0xd801, 0xdc01, 0xd801, 0x0061 };
@@ -799,6 +951,7 @@ static void TestWithBufferSize(int32_t insize, int32_t outsize){
(UConverterFromUCallback)UCNV_FROM_U_CALLBACK_ESCAPE, offset,FALSE))
log_err("u-> ibm-943 with subst with value did not match.\n");
}
+#endif
log_verbose("Testing fromUnicode for UTF-8 with UCNV_TO_U_CALLBACK_SUBSTITUTE \n");
{
@@ -812,7 +965,7 @@ static void TestWithBufferSize(int32_t insize, int32_t outsize){
log_err("utf8->u with substitute did not match.\n");;
}
-
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing toUnicode with UCNV_TO_U_CALLBACK_ESCAPE \n");
/*to Unicode*/
{
@@ -830,7 +983,7 @@ static void TestWithBufferSize(int32_t insize, int32_t outsize){
log_err("ibm-943->u with substitute with value did not match.\n");
}
-
+#endif
}
static UBool convertFromU( const UChar *source, int sourceLen, const uint8_t *expect, int expectLen,
@@ -838,13 +991,13 @@ static UBool convertFromU( const UChar *source, int sourceLen, const uint8_t *e
{
int32_t i=0;
- uint8_t *p=0;
+ char *p=0;
const UChar *src;
- uint8_t buffer[MAX_LENGTH];
+ char buffer[MAX_LENGTH];
int32_t offsetBuffer[MAX_LENGTH];
int32_t *offs=0;
- uint8_t *targ;
- uint8_t *targetLimit;
+ char *targ;
+ char *targetLimit;
UChar *sourceLimit=0;
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
@@ -857,7 +1010,7 @@ static UBool convertFromU( const UChar *source, int sourceLen, const uint8_t *e
log_verbose("Converter %s opened..\n", ucnv_getName(conv, &status));
for(i=0; i<MAX_LENGTH; i++){
- buffer[i]=0xF0;
+ buffer[i]=(char)0xF0;
offsetBuffer[i]=0xFF;
}
@@ -929,7 +1082,7 @@ static UBool convertToU( const uint8_t *source, int sourceLen, const UChar *expe
UConverter *conv = 0;
int32_t i=0;
UChar *p=0;
- const uint8_t* src;
+ const char* src;
UChar buffer[MAX_LENGTH];
int32_t offsetBuffer[MAX_LENGTH];
int32_t *offs=0;
@@ -954,7 +1107,7 @@ static UBool convertToU( const uint8_t *source, int sourceLen, const UChar *expe
offsetBuffer[i]=-1;
}
- src=source;
+ src=(const char *)source;
sourceLimit=(uint8_t*)(src+(sourceLen));
targ=buffer;
targetLimit=targ+MAX_LENGTH;
@@ -998,7 +1151,7 @@ static UBool convertToU( const uint8_t *source, int sourceLen, const UChar *expe
for(i=0; i<(targ-buffer); i++)
log_info("0x%04X,", buffer[i]);
log_info("\nFrom Input:");
- for(i=0; i<(src-source); i++)
+ for(i=0; i<(src-(const char *)source); i++)
log_info("0x%02X,", (unsigned char)source[i]);
log_info("\n");
}
@@ -1024,16 +1177,16 @@ static UBool testConvertFromU( const UChar *source, int sourceLen, const uint8_
{
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
- uint8_t junkout[MAX_LENGTH]; /* FIX */
+ char junkout[MAX_LENGTH]; /* FIX */
int32_t junokout[MAX_LENGTH]; /* FIX */
- uint8_t *p;
+ char *p;
const UChar *src;
- uint8_t *end;
- uint8_t *targ;
+ char *end;
+ char *targ;
int32_t *offs;
int i;
int32_t realBufferSize;
- uint8_t *realBufferEnd;
+ char *realBufferEnd;
const UChar *realSourceEnd;
const UChar *sourceLimit;
UBool checkOffsets = TRUE;
@@ -1043,7 +1196,7 @@ static UBool testConvertFromU( const UChar *source, int sourceLen, const uint8_
const void* oldContext = NULL;
for(i=0;i<MAX_LENGTH;i++)
- junkout[i] = 0xF0;
+ junkout[i] = (char)0xF0;
for(i=0;i<MAX_LENGTH;i++)
junokout[i] = 0xFF;
@@ -1081,7 +1234,7 @@ static UBool testConvertFromU( const UChar *source, int sourceLen, const uint8_
checkOffsets = FALSE;
do
- {
+ {
end = nct_min(targ + gOutBufferSize, realBufferEnd);
sourceLimit = nct_min(src + gInBufferSize, realSourceEnd);
@@ -1124,7 +1277,7 @@ static UBool testConvertFromU( const UChar *source, int sourceLen, const uint8_
{
char junk[999];
char offset_str[999];
- uint8_t *ptr;
+ char *ptr;
junk[0] = 0;
offset_str[0] = 0;
@@ -1198,9 +1351,9 @@ static UBool testConvertToU( const uint8_t *source, int sourcelen, const UChar *
UConverter *conv = 0;
UChar junkout[MAX_LENGTH]; /* FIX */
int32_t junokout[MAX_LENGTH]; /* FIX */
- const uint8_t *src;
- const uint8_t *realSourceEnd;
- const uint8_t *srcLimit;
+ const char *src;
+ const char *realSourceEnd;
+ const char *srcLimit;
UChar *p;
UChar *targ;
UChar *end;
@@ -1240,7 +1393,7 @@ static UBool testConvertToU( const uint8_t *source, int sourcelen, const UChar *
}
/*-------------------------------------*/
- src = source;
+ src = (const char *)source;
targ = junkout;
offs = junokout;
@@ -1338,7 +1491,7 @@ static UBool testConvertToU( const uint8_t *source, int sourcelen, const UChar *
for(i=0; i<(targ-junkout); i++)
log_err("%X,", junkout[i]);
log_err("");
- for(i=0; i<(src-source); i++)
+ for(i=0; i<(src-(const char *)source); i++)
log_err("%X,", (unsigned char)source[i]);
}
}
@@ -1362,6 +1515,7 @@ static UBool testConvertToU( const uint8_t *source, int sourcelen, const UChar *
static void TestResetBehaviour(void){
+#if !UCONFIG_NO_LEGACY_CONVERSION
log_verbose("Testing Reset for DBCS and MBCS\n");
{
static const UChar sampleText[] = {0x00a1, 0xd801, 0xdc01, 0x00a4};
@@ -1399,6 +1553,7 @@ static void TestResetBehaviour(void){
log_err("ibm-1363 -> did not match.\n");
}
+
log_verbose("Testing Reset for ISO-2022-jp\n");
{
static const UChar sampleText[] = { 0x4e00, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -1429,6 +1584,7 @@ static void TestResetBehaviour(void){
log_err("iso-2022-jp -> did not match.\n");
}
+
log_verbose("Testing Reset for ISO-2022-cn\n");
{
static const UChar sampleText[] = { 0x4e00, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -1472,6 +1628,7 @@ static void TestResetBehaviour(void){
offsets1, TRUE))
log_err("iso-2022-cn -> did not match.\n");
}
+
log_verbose("Testing Reset for ISO-2022-kr\n");
{
UChar sampleText[] = { 0x4e00,0xd801, 0xdc01, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -1519,6 +1676,7 @@ static void TestResetBehaviour(void){
offsets1, TRUE))
log_err("iso-2022-kr -> did not match.\n");
}
+
log_verbose("Testing Reset for HZ\n");
{
static const UChar sampleText[] = { 0x4e00, 0xd801, 0xdc01, 0x04e01, 0x0031, 0xd801, 0xdc01, 0x0032};
@@ -1562,6 +1720,8 @@ static void TestResetBehaviour(void){
offsets1, TRUE))
log_err("hz -> did not match.\n");
}
+#endif
+
/*UTF-8*/
log_verbose("Testing for UTF8\n");
{
@@ -1692,13 +1852,17 @@ TestTruncated() {
{ "UTF-32", { 0, 0, 0x4e }, 3 },
{ "UTF-32", { 0xff }, 1 },
{ "UTF-32", { 0, 0, 0xfe, 0xff, 0 }, 5 },
-
{ "SCSU", { 0x0e, 0x4e }, 2 }, /* SQU 0x4e */
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
{ "BOCU-1", { 0xd5 }, 1 },
{ "Shift-JIS", { 0xe0 }, 1 },
{ "ibm-939", { 0x0e, 0x41 }, 2 } /* SO 0x41 */
+#else
+ { "BOCU-1", { 0xd5 }, 1 ,}
+#endif
};
int32_t i;
@@ -1732,11 +1896,14 @@ TestUnicodeSet() {
"SCSU",
"BOCU-1",
"CESU-8",
+#if !UCONFIG_NO_LEGACY_CONVERSION
"gb18030",
+#endif
"IMAP-mailbox-name"
};
static const char *const lmbcsNames[]={
+#if !UCONFIG_NO_LEGACY_CONVERSION
"LMBCS-1",
"LMBCS-2",
"LMBCS-3",
@@ -1749,16 +1916,23 @@ TestUnicodeSet() {
"LMBCS-17",
"LMBCS-18",
"LMBCS-19"
+#endif
};
static const NameRange nameRanges[]={
{ "US-ASCII", 0, 0x7f, -1, -1, 0x80, 0x10ffff },
+#if !UCONFIG_NO_LEGACY_CONVERSION
{ "ibm-367", 0, 0x7f, -1, -1, 0x80, 0x10ffff },
+#endif
{ "ISO-8859-1", 0, 0x7f, -1, -1, 0x100, 0x10ffff },
+#if !UCONFIG_NO_LEGACY_CONVERSION
{ "UTF-8", 0, 0xd7ff, 0xe000, 0x10ffff, 0xd800, 0xdfff },
{ "windows-1251", 0, 0x7f, 0x410, 0x44f, 0x3000, 0xd7ff },
{ "HZ", 0x410, 0x44f, 0x4e00, 0x4eff, 0xac00, 0xd7ff },
{ "shift-jis", 0x3041, 0x3093, 0x30a1, 0x30f3, 0x900, 0x1cff }
+#else
+ { "UTF-8", 0, 0xd7ff, 0xe000, 0x10ffff, 0xd800, 0xdfff }
+#endif
};
/* open an empty set */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/nfsprep.c b/Build/source/libs/icu-xetex/test/cintltst/nfsprep.c
index fc7e2482daa..fc046820893 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/nfsprep.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/nfsprep.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -132,46 +132,6 @@ CLEANUP:
return u_terminateChars(dest, destCapacity, reqLength, status);
}
-static void
-syntaxError( const UChar* rules,
- int32_t pos,
- int32_t rulesLen,
- UParseError* parseError){
- int32_t start, stop;
- if(parseError == NULL){
- return;
- }
- if(pos == rulesLen && rulesLen >0){
- pos--;
- }
- parseError->offset = pos;
- parseError->line = 0 ; /* we are not using line numbers */
-
- /* for pre-context */
- start = (pos <=U_PARSE_CONTEXT_LEN)? 0 : (pos - (U_PARSE_CONTEXT_LEN-1));
- stop = pos;
-
- u_memcpy(parseError->preContext,rules+start,stop-start);
- /* null terminate the buffer */
- parseError->preContext[stop-start] = 0;
-
- /* for post-context */
- start = pos;
- if(start<rulesLen) {
- U16_FWD_1(rules, start, rulesLen);
- }
-
- stop = ((pos+U_PARSE_CONTEXT_LEN)<= rulesLen )? (pos+(U_PARSE_CONTEXT_LEN)) :
- rulesLen;
- if(start < stop){
- u_memcpy(parseError->postContext,rules+start,stop-start);
- /* null terminate the buffer */
- parseError->postContext[stop-start]= 0;
- }
-
-}
-
-
/* sorted array for binary search*/
static const char* special_prefixes[]={
"\x0041\x004e\x004f\x004e\x0059\x004d\x004f\x0055\x0053",
diff --git a/Build/source/libs/icu-xetex/test/cintltst/nucnvtst.c b/Build/source/libs/icu-xetex/test/cintltst/nucnvtst.c
index 101d66d4930..baecb4586d9 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/nucnvtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/nucnvtst.c
@@ -1,16 +1,16 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
-/********************************************************************************
+/*******************************************************************************
*
* File CCONVTST.C
*
* Modification History:
* Name Description
* Steven R. Loomis 7/8/1999 Adding input buffer test
-*********************************************************************************
+********************************************************************************
*/
#include <stdio.h>
#include "cstring.h"
@@ -44,12 +44,16 @@ static void TestUTF32(void);
static void TestUTF32BE(void);
static void TestUTF32LE(void);
static void TestLATIN1(void);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestSBCS(void);
static void TestDBCS(void);
static void TestMBCS(void);
+
#ifdef U_ENABLE_GENERIC_ISO_2022
static void TestISO_2022(void);
#endif
+
static void TestISO_2022_JP(void);
static void TestISO_2022_JP_1(void);
static void TestISO_2022_JP_2(void);
@@ -59,7 +63,11 @@ static void TestISO_2022_CN(void);
static void TestISO_2022_CN_EXT(void);
static void TestJIS(void);
static void TestHZ(void);
+#endif
+
static void TestSCSU(void);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestEBCDIC_STATEFUL(void);
static void TestGB18030(void);
static void TestLMBCS(void);
@@ -67,16 +75,19 @@ static void TestJitterbug255(void);
static void TestEBCDICUS4XML(void);
static void TestJitterbug915(void);
static void TestISCII(void);
+
+static void TestCoverageMBCS(void);
+static void TestJitterbug2346(void);
+static void TestJitterbug2411(void);
+#endif
+
+static void TestRoundTrippingAllUTF(void);
static void TestConv(const uint16_t in[],
int len,
const char* conv,
const char* lang,
char byteArr[],
int byteArrLen);
-static void TestRoundTrippingAllUTF(void);
-static void TestCoverageMBCS(void);
-static void TestJitterbug2346(void);
-static void TestJitterbug2411(void);
void addTestNewConvert(TestNode** root);
/* open a converter, using test data if it begins with '@' */
@@ -229,15 +240,22 @@ void addTestNewConvert(TestNode** root)
addTest(root, &TestUTF32, "tsconv/nucnvtst/TestUTF32");
addTest(root, &TestUTF32BE, "tsconv/nucnvtst/TestUTF32BE");
addTest(root, &TestUTF32LE, "tsconv/nucnvtst/TestUTF32LE");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestLMBCS, "tsconv/nucnvtst/TestLMBCS");
+#endif
addTest(root, &TestLATIN1, "tsconv/nucnvtst/TestLATIN1");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestSBCS, "tsconv/nucnvtst/TestSBCS");
addTest(root, &TestDBCS, "tsconv/nucnvtst/TestDBCS");
addTest(root, &TestMBCS, "tsconv/nucnvtst/TestMBCS");
+
#ifdef U_ENABLE_GENERIC_ISO_2022
addTest(root, &TestISO_2022, "tsconv/nucnvtst/TestISO_2022");
#endif
+
addTest(root, &TestISO_2022_JP, "tsconv/nucnvtst/TestISO_2022_JP");
addTest(root, &TestJIS, "tsconv/nucnvtst/TestJIS");
addTest(root, &TestISO_2022_JP_1, "tsconv/nucnvtst/TestISO_2022_JP_1");
@@ -248,20 +266,35 @@ void addTestNewConvert(TestNode** root)
addTest(root, &TestISO_2022_CN_EXT, "tsconv/nucnvtst/TestISO_2022_CN_EXT");
addTest(root, &TestJitterbug915, "tsconv/nucnvtst/TestJitterbug915");
addTest(root, &TestHZ, "tsconv/nucnvtst/TestHZ");
+#endif
+
addTest(root, &TestSCSU, "tsconv/nucnvtst/TestSCSU");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestEBCDIC_STATEFUL, "tsconv/nucnvtst/TestEBCDIC_STATEFUL");
addTest(root, &TestGB18030, "tsconv/nucnvtst/TestGB18030");
addTest(root, &TestJitterbug255, "tsconv/nucnvtst/TestJitterbug255");
addTest(root, &TestEBCDICUS4XML, "tsconv/nucnvtst/TestEBCDICUS4XML");
addTest(root, &TestISCII, "tsconv/nucnvtst/TestISCII");
+
#if !UCONFIG_NO_COLLATION
addTest(root, &TestJitterbug981, "tsconv/nucnvtst/TestJitterbug981");
#endif
+
addTest(root, &TestJitterbug1293, "tsconv/nucnvtst/TestJitterbug1293");
+#endif
+
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestCoverageMBCS, "tsconv/nucnvtst/TestCoverageMBCS");
+#endif
+
addTest(root, &TestRoundTrippingAllUTF, "tsconv/nucnvtst/TestRoundTrippingAllUTF");
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
addTest(root, &TestJitterbug2346, "tsconv/nucnvtst/TestJitterbug2346");
addTest(root, &TestJitterbug2411, "tsconv/nucnvtst/TestJitterbug2411");
+#endif
}
@@ -294,23 +327,23 @@ static ETestConvertResult testConvertFromU( const UChar *source, int sourceLen,
{
UErrorCode status = U_ZERO_ERROR;
UConverter *conv = 0;
- uint8_t junkout[NEW_MAX_BUFFER]; /* FIX */
+ char junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
- uint8_t *p;
+ char *p;
const UChar *src;
- uint8_t *end;
- uint8_t *targ;
+ char *end;
+ char *targ;
int32_t *offs;
int i;
int32_t realBufferSize;
- uint8_t *realBufferEnd;
+ char *realBufferEnd;
const UChar *realSourceEnd;
const UChar *sourceLimit;
UBool checkOffsets = TRUE;
UBool doFlush;
for(i=0;i<NEW_MAX_BUFFER;i++)
- junkout[i] = 0xF0;
+ junkout[i] = (char)0xF0;
for(i=0;i<NEW_MAX_BUFFER;i++)
junokout[i] = 0xFF;
@@ -359,8 +392,8 @@ static ETestConvertResult testConvertFromU( const UChar *source, int sourceLen,
status = U_ZERO_ERROR;
ucnv_fromUnicode (conv,
- (char **)&targ,
- (const char*)end,
+ &targ,
+ end,
&src,
sourceLimit,
checkOffsets ? offs : NULL,
@@ -380,7 +413,7 @@ static ETestConvertResult testConvertFromU( const UChar *source, int sourceLen,
{
char junk[9999];
char offset_str[9999];
- uint8_t *ptr;
+ char *ptr;
junk[0] = 0;
offset_str[0] = 0;
@@ -453,9 +486,9 @@ static ETestConvertResult testConvertToU( const uint8_t *source, int sourcelen,
UConverter *conv = 0;
UChar junkout[NEW_MAX_BUFFER]; /* FIX */
int32_t junokout[NEW_MAX_BUFFER]; /* FIX */
- const uint8_t *src;
- const uint8_t *realSourceEnd;
- const uint8_t *srcLimit;
+ const char *src;
+ const char *realSourceEnd;
+ const char *srcLimit;
UChar *p;
UChar *targ;
UChar *end;
@@ -489,7 +522,7 @@ static ETestConvertResult testConvertToU( const uint8_t *source, int sourcelen,
}
log_verbose("Converter opened..\n");
- src = source;
+ src = (const char *)source;
targ = junkout;
offs = junokout;
@@ -519,8 +552,8 @@ static ETestConvertResult testConvertToU( const uint8_t *source, int sourcelen,
ucnv_toUnicode (conv,
&targ,
end,
- (const char **)&src,
- (const char *)srcLimit,
+ &src,
+ srcLimit,
checkOffsets ? offs : NULL,
(UBool)(srcLimit == realSourceEnd), /* flush if we're at the end of hte source data */
&status);
@@ -585,7 +618,7 @@ static ETestConvertResult testConvertToU( const uint8_t *source, int sourcelen,
}
log_err("\n");
log_err("input: ");
- for(i=0; i<(src-source); i++) {
+ for(i=0; i<(src-(const char *)source); i++) {
log_err("%X,", (unsigned char)source[i]);
}
log_err("\n");
@@ -775,11 +808,13 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
}
-#ifdef U_ENABLE_GENERIC_ISO_2022
+
+#if !UCONFIG_NO_LEGACY_CONVERSION && defined(U_ENABLE_GENERIC_ISO_2022)
/*ISO-2022*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedISO2022, sizeof(expectedISO2022), "ISO_2022", toISO2022Offs,FALSE );
#endif
+
/*UTF16 LE*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedUTF16LE, sizeof(expectedUTF16LE), "utf-16le", toUTF16LEOffs,FALSE );
@@ -792,9 +827,12 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
/*UTF32 BE*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedUTF32BE, sizeof(expectedUTF32BE), "utf-32be", toUTF32BEOffs,FALSE );
+
/*LATIN_1*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedLATIN1, sizeof(expectedLATIN1), "LATIN_1", toLATIN1Offs,FALSE );
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*EBCDIC_STATEFUL*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedIBM930, sizeof(expectedIBM930), "ibm-930", toIBM930Offs,FALSE );
@@ -815,6 +853,7 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
/*SBCS*/
testConvertFromU(sampleText, sizeof(sampleText)/sizeof(sampleText[0]),
expectedISO88593, sizeof(expectedISO88593), "iso-8859-3", toISO88593Offs,FALSE );
+#endif
/****/
@@ -822,11 +861,12 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
/*UTF-8*/
testConvertToU(expectedUTF8, sizeof(expectedUTF8),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "utf8", fmUTF8Offs,FALSE);
-#ifdef U_ENABLE_GENERIC_ISO_2022
+#if !UCONFIG_NO_LEGACY_CONVERSION && defined(U_ENABLE_GENERIC_ISO_2022)
/*ISO-2022*/
testConvertToU(expectedISO2022, sizeof(expectedISO2022),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "ISO_2022", fmISO2022Offs,FALSE);
#endif
+
/*UTF16 LE*/
testConvertToU(expectedUTF16LE, sizeof(expectedUTF16LE),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "utf-16le", fmUTF16LEOffs,FALSE);
@@ -839,17 +879,21 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
/*UTF32 BE*/
testConvertToU(expectedUTF32BE, sizeof(expectedUTF32BE),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "utf-32be", fmUTF32BEOffs,FALSE);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
/*EBCDIC_STATEFUL*/
testConvertToU(expectedIBM930, sizeof(expectedIBM930),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "ibm-930", fmIBM930Offs,FALSE);
/*MBCS*/
testConvertToU(expectedIBM943, sizeof(expectedIBM943),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "ibm-943", fmIBM943Offs,FALSE);
+#endif
/* Try it again to make sure it still works */
testConvertToU(expectedUTF16LE, sizeof(expectedUTF16LE),
sampleText, sizeof(sampleText)/sizeof(sampleText[0]), "utf-16le", fmUTF16LEOffs,FALSE);
+#if !UCONFIG_NO_LEGACY_CONVERSION
testConvertToU(expectedMaltese913, sizeof(expectedMaltese913),
malteseUChars, sizeof(malteseUChars)/sizeof(malteseUChars[0]), "latin3", NULL,FALSE);
@@ -861,6 +905,7 @@ static void TestNewConvertWithBufferSizes(int32_t outsize, int32_t insize )
expectedLMBCS, sizeof(expectedLMBCS), "LMBCS-1", toLMBCSOffs,FALSE );
testConvertToU(expectedLMBCS, sizeof(expectedLMBCS),
LMBCSUChars, sizeof(LMBCSUChars)/sizeof(LMBCSUChars[0]), "LMBCS-1", fmLMBCSOffs,FALSE);
+#endif
/* UTF-7 examples are mostly from http://www.imc.org/rfc2152 */
{
@@ -1274,6 +1319,7 @@ static void TestConverterType(const char *convName, UConverterType convType) {
static void TestConverterTypesAndStarters()
{
+#if !UCONFIG_NO_LEGACY_CONVERSION
UConverter* myConverter;
UErrorCode err = U_ZERO_ERROR;
UBool mystarters[256];
@@ -1334,19 +1380,33 @@ static void TestConverterTypesAndStarters()
TestConverterType("ibm-930", UCNV_EBCDIC_STATEFUL);
TestConverterType("ibm-878", UCNV_SBCS);
+#endif
+
TestConverterType("iso-8859-1", UCNV_LATIN_1);
+
TestConverterType("ibm-1208", UCNV_UTF8);
+
TestConverterType("utf-8", UCNV_UTF8);
TestConverterType("UTF-16BE", UCNV_UTF16_BigEndian);
TestConverterType("UTF-16LE", UCNV_UTF16_LittleEndian);
TestConverterType("UTF-32BE", UCNV_UTF32_BigEndian);
TestConverterType("UTF-32LE", UCNV_UTF32_LittleEndian);
-#ifdef U_ENABLE_GENERIC_ISO_2022
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
+
+#if defined(U_ENABLE_GENERIC_ISO_2022)
TestConverterType("iso-2022", UCNV_ISO_2022);
#endif
+
TestConverterType("hz", UCNV_HZ);
+#endif
+
TestConverterType("scsu", UCNV_SCSU);
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
TestConverterType("x-iscii-de", UCNV_ISCII);
+#endif
+
TestConverterType("ascii", UCNV_US_ASCII);
TestConverterType("utf-7", UCNV_UTF7);
TestConverterType("IMAP-mailbox-name", UCNV_IMAP_MAILBOX);
@@ -1428,6 +1488,7 @@ static void TestAmbiguous()
}
}
+#if !UCONFIG_NO_LEGACY_CONVERSION
sjis_cnv = ucnv_open("ibm-943", &status);
if (U_FAILURE(status))
{
@@ -1480,6 +1541,7 @@ static void TestAmbiguous()
}
ucnv_close(sjis_cnv);
ucnv_close(ascii_cnv);
+#endif
}
static void
@@ -2947,8 +3009,8 @@ TestHZ() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -2967,7 +3029,7 @@ TestHZ() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
@@ -2977,9 +3039,9 @@ TestHZ() {
test++;
}
TestGetNextUChar2022(cnv, cBuf, cTarget, in, "HZ encoding");
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
TestJitterbug930("csISO2022JP");
ucnv_close(cnv);
free(offsets);
@@ -3166,8 +3228,8 @@ TestISO_2022_JP() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -3187,7 +3249,7 @@ TestISO_2022_JP() {
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
@@ -3197,10 +3259,10 @@ TestISO_2022_JP() {
test++;
}
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
TestGetNextUChar2022(cnv, cBuf, cTarget, in, "ISO-2022-JP encoding");
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
TestJitterbug930("csISO2022JP");
ucnv_close(cnv);
free(uBuf);
@@ -3232,7 +3294,7 @@ static void TestConv(const uint16_t in[],int len, const char* conv, const char*
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar));
cBuf =(char*)malloc(uBufSize * sizeof(char));
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
uSourceLimit=uSource+len;
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize;
@@ -3254,7 +3316,7 @@ static void TestConv(const uint16_t in[],int len, const char* conv, const char*
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("for codepage %s : Expected : \\u%04X \t Got: \\u%04X\n",conv,*uSource,(int)*test) ;
@@ -3262,12 +3324,12 @@ static void TestConv(const uint16_t in[],int len, const char* conv, const char*
uSource++;
test++;
}
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[len],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[len],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)&in[len],cnv);
+ TestSmallSourceBuffer(in,(const UChar*)&in[len],cnv);
TestGetNextUChar2022(cnv, cBuf, cTarget, in, conv);
if(byteArr && byteArrLen!=0){
TestGetNextUChar2022(cnv, byteArr, (byteArr+byteArrLen), in, lang);
- TestToAndFromUChars(&in[0],(const UChar*)&in[len],cnv);
+ TestToAndFromUChars(in,(const UChar*)&in[len],cnv);
{
cSource = byteArr;
cSourceLimit = cSource+byteArrLen;
@@ -3279,7 +3341,7 @@ static void TestConv(const uint16_t in[],int len, const char* conv, const char*
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("Expected : \\u%04X \t Got: \\u%04X\n",*uSource,(int)*test) ;
@@ -3607,6 +3669,8 @@ TestSCSU() {
TestConv(russianUTF16,(sizeof(russianUTF16)/2), "SCSU","russian",(char *)russianSCSU,sizeof(russianSCSU));
TestConv(monkeyIn,(sizeof(monkeyIn)/2),"SCSU","monkey",NULL,0);
}
+
+#if !UCONFIG_NO_LEGACY_CONVERSION
static void TestJitterbug2346(){
char source[] = { 0x1b,0x24,0x42,0x3d,0x45,0x1b,0x28,0x4a,0x0d,0x0a,
0x1b,0x24,0x42,0x3d,0x45,0x1b,0x28,0x4a,0x0d,0x0a};
@@ -3654,6 +3718,7 @@ static void TestJitterbug2346(){
}
+
static void
TestISO_2022_JP_1() {
/* test input */
@@ -3694,8 +3759,8 @@ TestISO_2022_JP_1() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -3713,7 +3778,7 @@ TestISO_2022_JP_1() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
@@ -3730,8 +3795,8 @@ TestISO_2022_JP_1() {
static const uint8_t source2[]={0x0e,0x24,0x053};
TestNextUCharError(cnv, (const char*)source2, (const char*)source2+sizeof(source2), U_ZERO_ERROR, "an invalid character [ISO-2022-JP-1]");
}
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
ucnv_close(cnv);
free(uBuf);
free(cBuf);
@@ -3784,8 +3849,8 @@ TestISO_2022_JP_2() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -3804,7 +3869,7 @@ TestISO_2022_JP_2() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
@@ -3813,9 +3878,9 @@ TestISO_2022_JP_2() {
uSource++;
test++;
}
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
/*Test for the condition where there is an invalid character*/
ucnv_reset(cnv);
{
@@ -3861,8 +3926,8 @@ TestISO_2022_KR() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -3881,7 +3946,7 @@ TestISO_2022_KR() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("Expected : \\u%04X \t Got: \\u%04X\n",*uSource,*test) ;
@@ -3890,9 +3955,9 @@ TestISO_2022_KR() {
test++;
}
TestGetNextUChar2022(cnv, cBuf, cTarget, in, "ISO-2022-KR encoding");
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
TestJitterbug930("csISO2022KR");
/*Test for the condition where there is an invalid character*/
ucnv_reset(cnv);
@@ -3940,8 +4005,8 @@ TestISO_2022_KR_1() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 5);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -3960,7 +4025,7 @@ TestISO_2022_KR_1() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("Expected : \\u%04X \t Got: \\u%04X\n",*uSource,*test) ;
@@ -3970,10 +4035,10 @@ TestISO_2022_KR_1() {
}
ucnv_reset(cnv);
TestGetNextUChar2022(cnv, cBuf, cTarget, in, "ISO-2022-KR encoding");
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
ucnv_reset(cnv);
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
/*Test for the condition where there is an invalid character*/
ucnv_reset(cnv);
{
@@ -4242,8 +4307,8 @@ TestISO_2022_CN_EXT() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 10);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -4262,7 +4327,7 @@ TestISO_2022_CN_EXT() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("Expected : \\u%04X \t Got: \\u%04X\n",*uSource,(int)*test) ;
@@ -4273,8 +4338,8 @@ TestISO_2022_CN_EXT() {
uSource++;
test++;
}
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
/*Test for the condition where there is an invalid character*/
ucnv_reset(cnv);
{
@@ -4340,8 +4405,8 @@ TestISO_2022_CN() {
uBuf = (UChar*)malloc(uBufSize * sizeof(UChar)*5);
cBuf =(char*)malloc(uBufSize * sizeof(char) * 10);
- uSource = (const UChar*)&in[0];
- uSourceLimit=(const UChar*)&in[sizeof(in)/2];
+ uSource = (const UChar*)in;
+ uSourceLimit=(const UChar*)in + (sizeof(in)/sizeof(in[0]));
cTarget = cBuf;
cTargetLimit = cBuf +uBufSize*5;
uTarget = uBuf;
@@ -4360,7 +4425,7 @@ TestISO_2022_CN() {
log_err("ucnv_toUnicode conversion failed reason %s\n", u_errorName(errorCode));
return;
}
- uSource = (const UChar*)&in[0];
+ uSource = (const UChar*)in;
while(uSource<uSourceLimit){
if(*test!=*uSource){
log_err("Expected : \\u%04X \t Got: \\u%04X\n",*uSource,(int)*test) ;
@@ -4372,9 +4437,9 @@ TestISO_2022_CN() {
test++;
}
TestGetNextUChar2022(cnv, cBuf, cTarget, in, "ISO-2022-CN encoding");
- TestSmallTargetBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestSmallSourceBuffer(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
- TestToAndFromUChars(&in[0],(const UChar*)&in[sizeof(in)/2],cnv);
+ TestSmallTargetBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestSmallSourceBuffer(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
+ TestToAndFromUChars(in,(const UChar*)in + (sizeof(in)/sizeof(in[0])),cnv);
TestJitterbug930("csISO2022CN");
/*Test for the condition where there is an invalid character*/
ucnv_reset(cnv);
@@ -4669,8 +4734,8 @@ TestLMBCS() {
{
UErrorCode errorCode=U_ZERO_ERROR;
- const uint8_t * pSource = pszLMBCS;
- const uint8_t * sourceLimit = pszLMBCS + sizeof(pszLMBCS);
+ const char * pSource = (const char *)pszLMBCS;
+ const char * sourceLimit = (const char *)pszLMBCS + sizeof(pszLMBCS);
UChar Out [sizeof(pszUnicode) + 1];
UChar * pOut = Out;
@@ -4696,8 +4761,8 @@ TestLMBCS() {
ucnv_toUnicode (cnv,
&pOut,
OutLimit,
- (const char **)&pSource,
- (const char *)sourceLimit,
+ &pSource,
+ sourceLimit,
off,
TRUE,
&errorCode);
@@ -4759,12 +4824,12 @@ TestLMBCS() {
const UChar * pUniOut = uniString;
UChar * pUniIn = uniString;
uint8_t lmbcsString [4];
- const uint8_t * pLMBCSOut = lmbcsString;
- uint8_t * pLMBCSIn = lmbcsString;
+ const char * pLMBCSOut = (const char *)lmbcsString;
+ char * pLMBCSIn = (char *)lmbcsString;
/* 0192 (hook) converts to both group 3 & group 1. input locale should differentiate */
ucnv_fromUnicode (cnv16he,
- (char **)&pLMBCSIn, (const char *)(pLMBCSIn + sizeof(lmbcsString)/sizeof(lmbcsString[0])),
+ &pLMBCSIn, (pLMBCSIn + sizeof(lmbcsString)/sizeof(lmbcsString[0])),
&pUniOut, pUniOut + sizeof(uniString)/sizeof(uniString[0]),
NULL, 1, &errorCode);
@@ -4773,10 +4838,10 @@ TestLMBCS() {
log_err("LMBCS-16,locale=he gives unexpected translation\n");
}
- pLMBCSIn=lmbcsString;
+ pLMBCSIn= (char *)lmbcsString;
pUniOut = uniString;
ucnv_fromUnicode (cnv01us,
- (char **)&pLMBCSIn, (const char *)(lmbcsString + sizeof(lmbcsString)/sizeof(lmbcsString[0])),
+ &pLMBCSIn, (const char *)(lmbcsString + sizeof(lmbcsString)/sizeof(lmbcsString[0])),
&pUniOut, pUniOut + sizeof(uniString)/sizeof(uniString[0]),
NULL, 1, &errorCode);
@@ -4787,45 +4852,45 @@ TestLMBCS() {
/* single byte char from mbcs char set */
lmbcsString[0] = 0xAE; /* 1/2 width katakana letter small Yo */
- pLMBCSOut = lmbcsString;
+ pLMBCSOut = (const char *)lmbcsString;
pUniIn = uniString;
ucnv_toUnicode (cnv16jp,
&pUniIn, pUniIn + 1,
- (const char **)&pLMBCSOut, (const char *)(pLMBCSOut + 1),
+ &pLMBCSOut, (pLMBCSOut + 1),
NULL, 1, &errorCode);
- if (U_FAILURE(errorCode) || pLMBCSOut != lmbcsString+1 || pUniIn != uniString+1 || uniString[0] != 0xFF6E)
+ if (U_FAILURE(errorCode) || pLMBCSOut != (const char *)lmbcsString+1 || pUniIn != uniString+1 || uniString[0] != 0xFF6E)
{
log_err("Unexpected results from LMBCS-16 single byte char\n");
}
/* convert to group 1: should be 3 bytes */
- pLMBCSIn = lmbcsString;
+ pLMBCSIn = (char *)lmbcsString;
pUniOut = uniString;
ucnv_fromUnicode (cnv01us,
- (char **)&pLMBCSIn, (const char *)(pLMBCSIn + 3),
+ &pLMBCSIn, (const char *)(pLMBCSIn + 3),
&pUniOut, pUniOut + 1,
NULL, 1, &errorCode);
- if (U_FAILURE(errorCode) || pLMBCSIn != lmbcsString+3 || pUniOut != uniString+1
+ if (U_FAILURE(errorCode) || pLMBCSIn != (const char *)lmbcsString+3 || pUniOut != uniString+1
|| lmbcsString[0] != 0x10 || lmbcsString[1] != 0x10 || lmbcsString[2] != 0xAE)
{
log_err("Unexpected results to LMBCS-1 single byte mbcs char\n");
}
- pLMBCSOut = lmbcsString;
+ pLMBCSOut = (const char *)lmbcsString;
pUniIn = uniString;
ucnv_toUnicode (cnv01us,
&pUniIn, pUniIn + 1,
- (const char **)&pLMBCSOut, (const char *)(pLMBCSOut + 3),
+ &pLMBCSOut, (const char *)(pLMBCSOut + 3),
NULL, 1, &errorCode);
- if (U_FAILURE(errorCode) || pLMBCSOut != lmbcsString+3 || pUniIn != uniString+1 || uniString[0] != 0xFF6E)
+ if (U_FAILURE(errorCode) || pLMBCSOut != (const char *)lmbcsString+3 || pUniIn != uniString+1 || uniString[0] != 0xFF6E)
{
log_err("Unexpected results from LMBCS-1 single byte mbcs char\n");
}
- pLMBCSIn = lmbcsString;
+ pLMBCSIn = (char *)lmbcsString;
pUniOut = uniString;
ucnv_fromUnicode (cnv16jp,
- (char **)&pLMBCSIn, (const char *)(pLMBCSIn + 1),
+ &pLMBCSIn, (const char *)(pLMBCSIn + 1),
&pUniOut, pUniOut + 1,
NULL, 1, &errorCode);
- if (U_FAILURE(errorCode) || pLMBCSIn != lmbcsString+1 || pUniOut != uniString+1 || lmbcsString[0] != 0xAE)
+ if (U_FAILURE(errorCode) || pLMBCSIn != (const char *)lmbcsString+1 || pUniOut != uniString+1 || lmbcsString[0] != 0xAE)
{
log_err("Unexpected results to LMBCS-16 single byte mbcs char\n");
}
@@ -4838,8 +4903,8 @@ TestLMBCS() {
UErrorCode errorCode=U_ZERO_ERROR;
- const uint8_t * pSource = pszLMBCS;
- const uint8_t * sourceLimit = pszLMBCS + sizeof(pszLMBCS);
+ const char * pSource = (const char *)pszLMBCS;
+ const char * sourceLimit = (const char *)pszLMBCS + sizeof(pszLMBCS);
int codepointCount = 0;
UChar Out [sizeof(pszUnicode) + 1];
@@ -4859,15 +4924,15 @@ TestLMBCS() {
ucnv_toUnicode (cnv,
&pOut,
OutLimit,
- (const char **)&pSource,
- (const char *)(pSource+1), /* claim that this is a 1- byte buffer */
+ &pSource,
+ (pSource+1), /* claim that this is a 1- byte buffer */
NULL,
FALSE, /* FALSE means there might be more chars in the next buffer */
&errorCode);
if (U_SUCCESS (errorCode))
{
- if ((pSource - (const uint8_t *)pszLMBCS) == offsets [codepointCount+1])
+ if ((pSource - (const char *)pszLMBCS) == offsets [codepointCount+1])
{
/* we are on to the next code point: check value */
@@ -4887,8 +4952,8 @@ TestLMBCS() {
}
{
/* limits & surrogate error testing */
- uint8_t LIn [sizeof(pszLMBCS)];
- const uint8_t * pLIn = LIn;
+ char LIn [sizeof(pszLMBCS)];
+ const char * pLIn = LIn;
char LOut [sizeof(pszLMBCS)];
char * pLOut = LOut;
@@ -4958,9 +5023,9 @@ TestLMBCS() {
errorCode = U_ZERO_ERROR;
- pLIn = pszLMBCS;
- ucnv_toUnicode(cnv, &pUOut,pUOut+4,(const char **)&pLIn,(const char *)(pLIn+sizeof(pszLMBCS)),off,FALSE, &errorCode);
- if (errorCode != U_BUFFER_OVERFLOW_ERROR || pUOut != UOut + 4 || pLIn != (const uint8_t *)pszLMBCS+offsets[4])
+ pLIn = (const char *)pszLMBCS;
+ ucnv_toUnicode(cnv, &pUOut,pUOut+4,&pLIn,(pLIn+sizeof(pszLMBCS)),off,FALSE, &errorCode);
+ if (errorCode != U_BUFFER_OVERFLOW_ERROR || pUOut != UOut + 4 || pLIn != (const char *)pszLMBCS+offsets[4])
{
log_err("Unexpected results on out of target room to ucnv_toUnicode\n");
}
@@ -4968,11 +5033,11 @@ TestLMBCS() {
/* unpaired or chopped LMBCS surrogates */
/* OK high surrogate, Low surrogate is chopped */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
- LIn [3] = 0x14;
- LIn [4] = 0xDC;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
+ LIn [3] = (char)0x14;
+ LIn [4] = (char)0xDC;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
pUOut = UOut;
@@ -4985,9 +5050,9 @@ TestLMBCS() {
}
/* chopped at surrogate boundary */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
pUOut = UOut;
@@ -4999,12 +5064,12 @@ TestLMBCS() {
}
/* unpaired surrogate plus valid Unichar */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
- LIn [3] = 0x14;
- LIn [4] = 0xC9;
- LIn [5] = 0xD0;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
+ LIn [3] = (char)0x14;
+ LIn [4] = (char)0xC9;
+ LIn [5] = (char)0xD0;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
pUOut = UOut;
@@ -5016,11 +5081,11 @@ TestLMBCS() {
}
/* unpaired surrogate plus chopped Unichar */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
- LIn [3] = 0x14;
- LIn [4] = 0xC9;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
+ LIn [3] = (char)0x14;
+ LIn [4] = (char)0xC9;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
@@ -5033,11 +5098,11 @@ TestLMBCS() {
}
/* unpaired surrogate plus valid non-Unichar */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
- LIn [3] = 0x0F;
- LIn [4] = 0x3B;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
+ LIn [3] = (char)0x0F;
+ LIn [4] = (char)0x3B;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
@@ -5050,10 +5115,10 @@ TestLMBCS() {
}
/* unpaired surrogate plus chopped non-Unichar */
- LIn [0] = 0x14;
- LIn [1] = 0xD8;
- LIn [2] = 0x01;
- LIn [3] = 0x0F;
+ LIn [0] = (char)0x14;
+ LIn [1] = (char)0xD8;
+ LIn [2] = (char)0x01;
+ LIn [3] = (char)0x0F;
pLIn = LIn;
errorCode = U_ZERO_ERROR;
@@ -5074,8 +5139,8 @@ TestLMBCS() {
static void TestJitterbug255()
{
static const uint8_t testBytes[] = { 0x95, 0xcf, 0x8a, 0xb7, 0x0d, 0x0a, 0x00 };
- const uint8_t *testBuffer = testBytes;
- const uint8_t *testEnd = testBytes + sizeof(testBytes);
+ const char *testBuffer = (const char *)testBytes;
+ const char *testEnd = (const char *)testBytes + sizeof(testBytes);
UErrorCode status = U_ZERO_ERROR;
UChar32 result;
UConverter *cnv = 0;
@@ -5087,7 +5152,7 @@ static void TestJitterbug255()
}
while (testBuffer != testEnd)
{
- result = ucnv_getNextUChar (cnv, (const char **)&testBuffer, (const char *)testEnd , &status);
+ result = ucnv_getNextUChar (cnv, &testBuffer, testEnd , &status);
if (U_FAILURE(status))
{
log_err("Failed to convert the next UChar for SJIS.\n");
@@ -5133,6 +5198,7 @@ static void TestEBCDICUS4XML()
}
ucnv_close(cnv);
}
+#endif /* #if !UCONFIG_NO_LEGACY_COLLATION */
#if !UCONFIG_NO_COLLATION
diff --git a/Build/source/libs/icu-xetex/test/cintltst/putiltst.c b/Build/source/libs/icu-xetex/test/cintltst/putiltst.c
index 2a075243f56..e6cff642b23 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/putiltst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/putiltst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1998-2004, International Business Machines Corporation and
+ * Copyright (c) 1998-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -90,13 +90,6 @@ static void TestPUtilAPI(void){
log_verbose("Testing the API uprv_pow10()\n");
doAssert(uprv_pow10(4), 10000, "uprv_pow10(4) failed.");
- log_verbose("Testing the API uprv_log10()\n");
- doAssert(uprv_log10(3456), 3, "uprv_log10(3456) failed.");
-#ifdef OS390
- doAssert(uprv_log10(1.0e55), 55, "uprv_log10(1.0e55) failed.");
-#else
- doAssert(uprv_log10(1.0e300), 300, "uprv_log10(1.0e300) failed.");
-#endif
log_verbose("Testing the API uprv_isNegativeInfinity()\n");
isTrue=uprv_isNegativeInfinity(uprv_getInfinity() * -1);
if(isTrue != TRUE){
diff --git a/Build/source/libs/icu-xetex/test/cintltst/reapits.c b/Build/source/libs/icu-xetex/test/cintltst/reapits.c
index 4e3cfb7c330..d2999ed54cc 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/reapits.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/reapits.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2004, International Business Machines Corporation and
+ * Copyright (c) 2004-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/********************************************************************************
@@ -40,9 +40,11 @@ log_err("Test Failure at file %s, line %d\n", __FILE__, __LINE__);}}
UBool success; \
if (nulTerm) { \
u_austrncpy(buf_inside_macro, (actual), len+1); \
+ buf_inside_macro[len+2] = 0; \
success = (strcmp((expected), buf_inside_macro) == 0); \
} else { \
u_austrncpy(buf_inside_macro, (actual), len); \
+ buf_inside_macro[len+1] = 0; \
success = (strncmp((expected), buf_inside_macro, len) == 0); \
} \
if (success == FALSE) { \
@@ -57,13 +59,14 @@ log_err("Test Failure at file %s, line %d\n", __FILE__, __LINE__);}}
static void TestRegexCAPI(void);
+static void TestBug4315(void);
void addURegexTest(TestNode** root);
void addURegexTest(TestNode** root)
{
addTest(root, &TestRegexCAPI, "regex/TestRegexCAPI");
-/* addTest(root, &TestBreakIteratorSafeClone, "tstxtbd/cbiapts/TestBreakIteratorSafeClone"); */
+ addTest(root, &TestBug4315, "regex/TestBug4315");
}
@@ -95,6 +98,17 @@ static void TestRegexCAPI(void) {
TEST_ASSERT(status == U_REGEX_INVALID_FLAG);
uregex_close(re);
+ /* openC with an invalid parameter */
+ status = U_ZERO_ERROR;
+ re = uregex_openC(NULL,
+ UREGEX_CASE_INSENSITIVE | UREGEX_COMMENTS | UREGEX_DOTALL | UREGEX_MULTILINE | UREGEX_UWORD, 0, &status);
+ TEST_ASSERT(status == U_ILLEGAL_ARGUMENT_ERROR && re == NULL);
+
+ /* openC with an invalid parameter */
+ status = U_USELESS_COLLATOR_ERROR;
+ re = uregex_openC(NULL,
+ UREGEX_CASE_INSENSITIVE | UREGEX_COMMENTS | UREGEX_DOTALL | UREGEX_MULTILINE | UREGEX_UWORD, 0, &status);
+ TEST_ASSERT(status == U_USELESS_COLLATOR_ERROR && re == NULL);
/* openC open from a C string */
{
@@ -969,4 +983,55 @@ static void TestRegexCAPI(void) {
}
+static void TestBug4315(void) {
+ UErrorCode theICUError = U_ZERO_ERROR;
+ URegularExpression *theRegEx;
+ UChar *textBuff;
+ const char *thePattern;
+ UChar theString[100];
+ UChar *destFields[24];
+ int32_t neededLength1;
+ int32_t neededLength2;
+
+ int32_t wordCount = 0;
+ int32_t destFieldsSize = 24;
+
+ thePattern = "ck ";
+ u_uastrcpy(theString, "The quick brown fox jumped over the slow black turtle.");
+
+ /* open a regex */
+ theRegEx = uregex_openC(thePattern, 0, NULL, &theICUError);
+ TEST_ASSERT_SUCCESS(theICUError);
+
+ /* set the input string */
+ uregex_setText(theRegEx, theString, u_strlen(theString), &theICUError);
+ TEST_ASSERT_SUCCESS(theICUError);
+
+ /* split */
+ /*explicitly pass NULL and 0 to force the overflow error -> this is where the
+ * error occurs! */
+ wordCount = uregex_split(theRegEx, NULL, 0, &neededLength1, destFields,
+ destFieldsSize, &theICUError);
+
+ TEST_ASSERT(theICUError == U_BUFFER_OVERFLOW_ERROR);
+ TEST_ASSERT(wordCount==3);
+
+ if(theICUError == U_BUFFER_OVERFLOW_ERROR)
+ {
+ theICUError = U_ZERO_ERROR;
+ textBuff = (UChar *) malloc(sizeof(UChar) * (neededLength1 + 1));
+ wordCount = uregex_split(theRegEx, textBuff, neededLength1+1, &neededLength2,
+ destFields, destFieldsSize, &theICUError);
+ TEST_ASSERT(wordCount==3);
+ TEST_ASSERT_SUCCESS(theICUError);
+ TEST_ASSERT(neededLength1 == neededLength2);
+ TEST_ASSERT_STRING("The qui", destFields[0], TRUE);
+ TEST_ASSERT_STRING("brown fox jumped over the slow bla", destFields[1], TRUE);
+ TEST_ASSERT_STRING("turtle.", destFields[2], TRUE);
+ TEST_ASSERT(destFields[3] == NULL);
+ free(textBuff);
+ }
+ uregex_close(theRegEx);
+}
+
#endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/spreptst.c b/Build/source/libs/icu-xetex/test/cintltst/spreptst.c
index 9d82c03b763..b68bc47cf69 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/spreptst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/spreptst.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -37,6 +37,8 @@ static void Test_nfs4_mixed_prep_data(void);
static void Test_nfs4_cs_prep(void);
static void Test_nfs4_cis_prep(void);
static void Test_nfs4_mixed_prep(void);
+static void TestBEAMWarning(void);
+static void TestCoverage(void);
void
addUStringPrepTest(TestNode** root)
@@ -47,6 +49,8 @@ addUStringPrepTest(TestNode** root)
addTest(root, &Test_nfs4_cs_prep, "spreptst/Test_nfs4_cs_prep");
addTest(root, &Test_nfs4_cis_prep, "spreptst/Test_nfs4_cis_prep");
addTest(root, &Test_nfs4_mixed_prep, "spreptst/Test_nfs4_mixed_prep");
+ addTest(root, &TestBEAMWarning, "spreptst/TestBEAMWarning");
+ addTest(root, &TestCoverage, "spreptst/TestCoverage");
}
static void
@@ -290,6 +294,12 @@ unescapeData(const char* src, int32_t srcLen,
static void Test_nfs4_cis_prep(void){
int32_t i=0;
+ UErrorCode loadStatus = U_ZERO_ERROR;
+ loadTestData(&loadStatus);
+ if (U_FAILURE(loadStatus)) {
+ log_err("Test could not initialize. Got %s\n", u_errorName(loadStatus));
+ return;
+ }
for(i=0;i< (int32_t)(sizeof(conformanceTestCases)/sizeof(conformanceTestCases[0]));i++){
const char* src = conformanceTestCases[i].in;
@@ -403,6 +413,13 @@ static const char* mixed_prep_data[] ={
static void
Test_nfs4_mixed_prep(void){
+ UErrorCode loadStatus = U_ZERO_ERROR;
+ loadTestData(&loadStatus);
+ if (U_FAILURE(loadStatus)) {
+ log_err("Test could not initialize. Got %s\n", u_errorName(loadStatus));
+ return;
+ }
+
{
int32_t i=0;
char src[MAX_BUFFER_SIZE];
@@ -550,6 +567,45 @@ Test_nfs4_cs_prep(void){
}
}
+
+
+static void TestBEAMWarning(){
+ UErrorCode status = U_ZERO_ERROR;
+ UParseError parseError;
+ UStringPrepProfile* profile = NULL;
+ /* get the test data path */
+ const char *testdatapath = NULL;
+ UChar src =0x0000;
+ testdatapath = loadTestData(&status);
+ /* open the profile */
+ profile = usprep_open(testdatapath, "nfscis", &status);
+ usprep_prepare(profile,&src , 0, NULL, 0, USPREP_DEFAULT, &parseError, &status);
+
+ usprep_close(profile);
+}
+
+static void TestCoverage(void) {
+ UErrorCode status = U_USELESS_COLLATOR_ERROR;
+ UParseError parseError;
+
+ usprep_open(NULL, NULL, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("usprep_open didn't react correctly to a bad UErrorCode\n");
+ }
+ usprep_prepare(NULL, NULL, 0, NULL, 0, USPREP_DEFAULT, &parseError, &status);
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("usprep_prepare didn't react correctly to a bad UErrorCode\n");
+ }
+ status = U_ZERO_ERROR;
+ usprep_prepare(NULL, NULL, 0, NULL, 0, USPREP_DEFAULT, &parseError, &status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("usprep_prepare didn't check its arguments\n");
+ }
+
+ /* Don't crash */
+ usprep_close(NULL);
+}
+
#endif
/*
diff --git a/Build/source/libs/icu-xetex/test/cintltst/stdnmtst.c b/Build/source/libs/icu-xetex/test/cintltst/stdnmtst.c
index 89ae5711b45..7bfa257c391 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/stdnmtst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/stdnmtst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2000-2005, International Business Machines Corporation and
+ * Copyright (c) 2000-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -100,7 +100,7 @@ static void TestStandardName()
/*dotestname("cp1252", "MIME", "windows-1252") &&*/
dotestname("ascii", "MIME", "US-ASCII") &&
dotestname("csiso2022jp2", "MIME", "ISO-2022-JP-2") &&
- dotestname("Iso20-22__cN", "MIME", "ISO-2022-CN") &&
+ dotestname("Iso20-22__cN", "IANA", "ISO-2022-CN") &&
dotestname("ascii", "IANA", "ANSI_X3.4-1968") &&
dotestname("cp850", "IANA", "IBM850") &&
dotestname("crazy", "MIME", NULL) &&
@@ -152,7 +152,7 @@ static void TestCanonicalName()
dotestconv("ibm-5305", "IANA", NULL) && /* mapping does not exist */
dotestconv("cp1208", "", "UTF-8") && /* default name due to ordering */
dotestconv("UTF16_BigEndian", "", "UTF-16BE") && /* non-default name due to ordering */
- dotestconv("ISO-2022-CN", "MIME", "ISO_2022,locale=zh,version=0") &&/* default name */
+ dotestconv("ISO-2022-CN", "IANA", "ISO_2022,locale=zh,version=0") &&/* default name */
dotestconv("Shift_JIS", "MIME", "ibm-943_P15A-2003") &&/* ambiguous alias */
dotestconv("Shift_JIS", "", "ibm-943_P130-1999") &&/* ambiguous alias */
dotestconv("ibm-943", "", "ibm-943_P15A-2003") &&/* ambiguous alias */
@@ -170,8 +170,9 @@ static void TestCanonicalName()
static UBool doTestNames(const char *name, const char *standard, const char **expected, int32_t size) {
UErrorCode err = U_ZERO_ERROR;
UEnumeration *myEnum = ucnv_openStandardNames(name, standard, &err);
+ const char *enumName, *testName;
int32_t enumCount = uenum_count(myEnum, &err);
- int32_t idx, repeatTimes = 3;
+ int32_t idx, len, repeatTimes = 3;
if (size != enumCount) {
log_err("FAIL: different size arrays. Got %d. Expected %d\n", enumCount, size);
return 0;
@@ -183,9 +184,8 @@ static UBool doTestNames(const char *name, const char *standard, const char **ex
log_verbose("\n%s %s\n", name, standard);
while (repeatTimes-- > 0) {
for (idx = 0; idx < enumCount; idx++) {
- int32_t len;
- const char *enumName = uenum_next(myEnum, &len, &err);
- const char *testName = expected[idx];
+ enumName = uenum_next(myEnum, &len, &err);
+ testName = expected[idx];
if (uprv_strcmp(enumName, testName) != 0 || U_FAILURE(err)
|| len != (int32_t)uprv_strlen(expected[idx]))
{
@@ -195,6 +195,13 @@ static UBool doTestNames(const char *name, const char *standard, const char **ex
log_verbose("%s\n", enumName);
err = U_ZERO_ERROR;
}
+ if (enumCount >= 0) {
+ /* one past the list of all names must return NULL */
+ enumName = uenum_next(myEnum, &len, &err);
+ if (enumName != NULL || len != 0 || U_FAILURE(err)) {
+ log_err("FAIL: uenum_next(past the list) did not return NULL[0] with U_SUCCESS(). name=%s standard=%s len=%d err=%s\n", name, standard, len, u_errorName(err));
+ }
+ }
log_verbose("\n reset\n");
uenum_reset(myEnum, &err);
if (U_FAILURE(err)) {
diff --git a/Build/source/libs/icu-xetex/test/cintltst/tracetst.c b/Build/source/libs/icu-xetex/test/cintltst/tracetst.c
index 4fc36be4b79..54268ac818c 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/tracetst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/tracetst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2003-2004, International Business Machines Corporation and
+ * Copyright (c) 2003-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -290,8 +290,11 @@ static void TestTraceAPI() {
test_format("a 64 bit ptr %p", 50, 0, "a 64 bit ptr 1000200030004000", __LINE__, ptr);
} else if (sizeof(void *) == 16) {
/* iSeries */
- int32_t massiveBigEndianPtr[] = { 0x10002000, 0x30004000, 0x50006000, 0x70008000 };
- ptr = *((void **)massiveBigEndianPtr);
+ union {
+ int32_t arr[4];
+ void *ptr;
+ } massiveBigEndianPtr = {{ 0x10002000, 0x30004000, 0x50006000, 0x70008000 }};
+ ptr = massiveBigEndianPtr.ptr;
test_format("a 128 bit ptr %p", 50, 0, "a 128 bit ptr 10002000300040005000600070008000", __LINE__, ptr);
} else {
TEST_ASSERT(FALSE);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ucmptst.c b/Build/source/libs/icu-xetex/test/cintltst/ucmptst.c
deleted file mode 100644
index 98c1998dabe..00000000000
--- a/Build/source/libs/icu-xetex/test/cintltst/ucmptst.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1998-2004, International Business Machines Corporation
- * and others. All Rights Reserved.
- ********************************************************************/
-/*
-* File test.c
-*
-* Modification History:
-*
-* Date Name Description
-* 07/28/2000 Madhu Creation
-*******************************************************************************
-*/
-
-#include "unicode/utypes.h"
-#include "ucmp8.h"
-#include "cmemory.h"
-#include "cintltst.h"
-#include "ucol_imp.h"
-
-
-static void TestUCMP8API(void);
-
-void addCompactArrayTest(TestNode** root);
-
-
-void
-addCompactArrayTest(TestNode** root)
-{
- addTest(root, &TestUCMP8API, "ucmptst/TestUCMP8API");
-}
-
-static void query(CompactByteArray *array) {
- int32_t i = 0;
- const uint8_t *valuesSet=(uint8_t *)ucmp8_getArray(array);
- for(i =0 ; i< 10; i++ ){
- if(valuesSet[0] != (uint8_t)0xFD ){
- log_err("ERROR: did not get the values expected values\n");
- break;
- }
- }
-}
-
-static void TestUCMP8API(){
- UErrorCode status = U_ZERO_ERROR;
- CompactByteArray* ucmp8Array=NULL;
- CompactByteArray* pAliaser=NULL;
- CompactByteArray* pAdopter=NULL;
-
- CompactByteArray aliaser;
- CompactByteArray adopter;
-
-
- CompactByteArray ucmp8Array1;
- CompactByteArray ucmp8Array2;
- CompactByteArray ucmp8Clone;
- int8_t *values;
- uint8_t *valuesSet;
- static const int8_t TEST_DEFAULT_VALUE = (int8_t)0xFF;
-
-
- /*ucmp8_open*/
- log_verbose("Testing ucmp8_open()\n");
- ucmp8Array=ucmp8_open(TEST_DEFAULT_VALUE);
- if(ucmp8Array == NULL){
- log_err("ERROR: ucmp8_open() failed\n");
- }
- if( (int32_t)ucmp8_getCount(ucmp8Array) != (int32_t)ucmp8_getkUnicodeCount()) {
- log_err("ERROR: ucmp8_open failed\n");
- }
-
- /*ucmp8_init*/
- log_verbose("Testing ucmp8_init()\n");
- ucmp8_init(&ucmp8Array1, TEST_DEFAULT_VALUE);
- if( (int32_t)ucmp8_getCount(&ucmp8Array1) != (int32_t)ucmp8_getkUnicodeCount() ||
- ucmp8_getIndex(&ucmp8Array1) == NULL ||
- ucmp8_getArray(&ucmp8Array1) == NULL ||
- ucmp8Array1.fBogus != FALSE){
- log_err("Error: ucmp8_init() failed\n");
- }
- /*ucmp8_initBogus*/
- log_verbose("Testing ucmp8_initBogus()\n");
- ucmp8_initBogus(&ucmp8Array2);
- if((int32_t)ucmp8_getCount(&ucmp8Array2) != ucmp8Array2.fCount ||
- ucmp8_getIndex(&ucmp8Array2) != NULL ||
- ucmp8_getArray(&ucmp8Array2) != NULL ||
- ucmp8Array2.fBogus != TRUE){
- log_err("Error: ucmp8_initBogus() failed\n");
- }
- /*ucmp8_getkBlockCount*/
- if(ucmp8_getkBlockCount() != 128 ){
- log_err("Error in ucmp8_getkBlockCount()\n");
- }
- values=(int8_t*)ucmp8_getArray(&ucmp8Array1);
- if((uint8_t)values[0] != (uint8_t)TEST_DEFAULT_VALUE){
- log_err("Error: getArray() or init failed\n");
- }
-
- /*ucmp8_compact*/
- if(ucmp8Array1.fCompact == TRUE){
- log_err("Error: ucmp8_open failed Got compact for expanded data\n");
- }
- ucmp8_compact(&ucmp8Array1, 1);
- if(ucmp8Array1.fCompact != TRUE){
- log_err("Error: ucmp8_compact failed\n");
- }
- /*ucmp8_set*/
- ucmp8_set(&ucmp8Array1, 0, (uint8_t)0xFE);
- valuesSet=(uint8_t*)ucmp8_getArray(&ucmp8Array1);
- if(valuesSet[0] != (uint8_t)0xFE ){
- log_err("ERROR: ucmp8_set() failed\n");
- }
- if(ucmp8Array1.fCompact == TRUE){
- log_err("Error: ucmp8_set didn't expand the compact data \n");
- }
-
- /*ucmp8_set*/
- ucmp8_compact(&ucmp8Array1, 1);
- ucmp8_set(&ucmp8Array1, 0, (uint8_t)0xFD);
- valuesSet=(uint8_t*)ucmp8_getArray(&ucmp8Array1);
- if(valuesSet[0] != (uint8_t)0xFD ){
- log_err("ERROR: ucmp8_set() failed\n");
- }
- if(ucmp8Array1.fCompact == TRUE){
- log_err("Error: ucmp8_set didn't expand the compact data \n");
- }
- /*ucmp8_setRange*/
- ucmp8_compact(&ucmp8Array1, 1);
- ucmp8_setRange(&ucmp8Array1, 0, 10, (uint8_t)0xFD);
- query(&ucmp8Array1);
-
- log_verbose("Testing ucmp8_flattenMem()\n");
- {
- int32_t len = 0;
- int32_t size = ucmp8_flattenMem(&ucmp8Array1, NULL);
- uint8_t *buff = malloc(size);
- uint8_t *buffLocation = buff;
- len = ucmp8_flattenMem(&ucmp8Array1, buff);
-
- if(size != len || size == 0 || len == 0 || buff == NULL) {
- log_err("Unable to flatten!\n");
- } else {
- log_verbose("Testing ucmp8_initFromData()\n");
- ucmp8_initFromData(&ucmp8Clone, (const uint8_t **)&buffLocation, &status);
- if(U_FAILURE(status) || ucmp8_isBogus(&ucmp8Clone) == TRUE || (buffLocation-buff) != len){
- log_err("ERROR: ucmp8_initFromData() failed\n");
- status = U_ZERO_ERROR;
- } else {
- query(&ucmp8Clone);
- ucmp8_close(&ucmp8Clone);
- }
- }
- free(buff);
- }
-
-/*
-openAdopt, initAdopt, openAlias, initAlias
-*/
- log_verbose("Testing aliasers and adopters\n");
- {
- int32_t count = ucmp8_getCount(&ucmp8Array1);
- const uint16_t *tIndex = ucmp8_getIndex(&ucmp8Array1);
- const int8_t *tValues = ucmp8_getArray(&ucmp8Array1);
- uint16_t *index = (uint16_t *)uprv_malloc(UCMP8_kIndexCount*sizeof(uint16_t));
-
- values = (int8_t *)uprv_malloc(count);
-
- memcpy(index, tIndex, UCMP8_kIndexCount*sizeof(uint16_t));
- memcpy(values, tValues, count);
-
- ucmp8_initAlias(&aliaser, index, values, count);
- query(&aliaser);
- ucmp8_close(&aliaser);
-
- pAliaser = ucmp8_openAlias(index, values, count);
- query(pAliaser);
- ucmp8_close(pAliaser);
-
- ucmp8_initAdopt(&adopter, index, values, count); /* TODO: BAD API. Adopted memory MUST be allocated with uprv_malloc */
- query(&adopter);
- ucmp8_close(&adopter);
-
- index = (uint16_t *)uprv_malloc(UCMP8_kIndexCount*sizeof(uint16_t));
- values = (int8_t *)uprv_malloc(count);
-
- memcpy(index, tIndex, UCMP8_kIndexCount*sizeof(uint16_t));
- memcpy(values, tValues, count);
-
- pAdopter = ucmp8_openAdopt(index, values, count); /* TODO: BAD API */
- query(pAdopter);
- ucmp8_close(pAdopter);
-
- }
- ucmp8_close(&ucmp8Array1);
- ucmp8_close(&ucmp8Array2);
- ucmp8_close(ucmp8Array);
-
-}
-
-
diff --git a/Build/source/libs/icu-xetex/test/cintltst/ucsdetst.c b/Build/source/libs/icu-xetex/test/cintltst/ucsdetst.c
new file mode 100644
index 00000000000..3c884e474f9
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/cintltst/ucsdetst.c
@@ -0,0 +1,356 @@
+/*
+ ****************************************************************************
+ * Copyright (c) 2005-2006, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ ****************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#include "unicode/ucsdet.h"
+#include "unicode/ucnv.h"
+#include "unicode/ustring.h"
+
+#include "cintltst.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) ctst_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array)
+
+static void TestConstruction(void);
+static void TestUTF8(void);
+static void TestUTF16(void);
+static void TestC1Bytes(void);
+static void TestInputFilter(void);
+static void TestChaining(void);
+
+void addUCsdetTest(TestNode** root);
+
+void addUCsdetTest(TestNode** root)
+{
+ addTest(root, &TestConstruction, "ucsdetst/TestConstruction");
+ addTest(root, &TestUTF8, "ucsdetst/TestUTF8");
+ addTest(root, &TestUTF16, "ucsdetst/TestUTF16");
+ addTest(root, &TestC1Bytes, "ucsdetst/TestC1Bytes");
+ addTest(root, &TestInputFilter, "ucsdetst/TestInputFilter");
+ addTest(root, &TestChaining, "ucsdetst/TestErrorChaining");
+}
+
+static int32_t preflight(const UChar *src, int32_t length, UConverter *cnv)
+{
+ UErrorCode status;
+ char buffer[1024];
+ char *dest, *destLimit = buffer + sizeof(buffer);
+ const UChar *srcLimit = src + length;
+ int32_t result = 0;
+
+ do {
+ dest = buffer;
+ status = U_ZERO_ERROR;
+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &status);
+ result += (int32_t) (dest - buffer);
+ } while (status == U_BUFFER_OVERFLOW_ERROR);
+
+ return result;
+}
+
+static UChar *unescape(const char *src, int32_t *length)
+{
+ int32_t charCount = u_unescape(src, NULL, 0);
+ UChar *chars = NEW_ARRAY(UChar, charCount + 1);
+
+ u_unescape(src, chars, charCount);
+
+ *length = charCount;
+ return chars;
+}
+
+static char *extractBytes(const UChar *src, int32_t length, const char *codepage, int32_t *byteLength)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UConverter *cnv = ucnv_open(codepage, &status);
+ int32_t byteCount = preflight(src, length, cnv);
+ const UChar *srcLimit = src + length;
+ char *bytes = NEW_ARRAY(char, byteCount + 1);
+ char *dest = bytes, *destLimit = bytes + byteCount + 1;
+
+ ucnv_fromUnicode(cnv, &dest, destLimit, &src, srcLimit, 0, TRUE, &status);
+ ucnv_close(cnv);
+
+ *byteLength = byteCount;
+ return bytes;
+}
+
+static void freeBytes(char *bytes)
+{
+ DELETE_ARRAY(bytes);
+}
+
+static void TestConstruction(void)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UCharsetDetector *csd = ucsdet_open(&status);
+ UEnumeration *e = ucsdet_getAllDetectableCharsets(csd, &status);
+ const char *name;
+ int32_t count = uenum_count(e, &status);
+ int32_t i, length;
+
+ for(i = 0; i < count; i += 1) {
+ name = uenum_next(e, &length, &status);
+
+ if(name == NULL || length <= 0) {
+ log_err("ucsdet_getAllDetectableCharsets() returned a null or empty name!\n");
+ }
+ }
+ /* one past the list of all names must return NULL */
+ name = uenum_next(e, &length, &status);
+ if(name != NULL || length != 0 || U_FAILURE(status)) {
+ log_err("ucsdet_getAllDetectableCharsets(past the list) returned a non-null name!\n");
+ }
+
+ uenum_close(e);
+ ucsdet_close(csd);
+}
+
+static void TestUTF8(void)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ const char *ss = "This is a string with some non-ascii characters that will "
+ "be converted to UTF-8, then shoved through the detection process. "
+ "\\u0391\\u0392\\u0393\\u0394\\u0395"
+ "Sure would be nice if our source could contain Unicode directly!";
+ int32_t byteLength = 0, sLength = 0, dLength = 0;
+ UChar *s = unescape(ss, &sLength);
+ char *bytes = extractBytes(s, sLength, "UTF-8", &byteLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ UChar *detected = NEW_ARRAY(UChar, sLength);
+
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("Detection failure for UTF-8: got no matches.\n");
+ goto bail;
+ }
+
+ dLength = ucsdet_getUChars(match, detected, sLength, &status);
+
+ if (u_strCompare(detected, dLength, s, sLength, FALSE) != 0) {
+ log_err("Round-trip test failed!\n");
+ }
+
+ ucsdet_setDeclaredEncoding(csd, "UTF-8", 5, &status); /* for coverage */
+
+bail:
+ DELETE_ARRAY(detected);
+ freeBytes(bytes);
+ ucsdet_close(csd);
+}
+
+static void TestUTF16(void)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ /* Notice the BOM on the start of this string */
+ UChar chars[] = {
+ 0xFEFF, 0x0623, 0x0648, 0x0631, 0x0648, 0x0628, 0x0627, 0x002C,
+ 0x0020, 0x0628, 0x0631, 0x0645, 0x062c, 0x064a, 0x0627, 0x062a,
+ 0x0020, 0x0627, 0x0644, 0x062d, 0x0627, 0x0633, 0x0648, 0x0628,
+ 0x0020, 0x002b, 0x0020, 0x0627, 0x0646, 0x062a, 0x0631, 0x0646,
+ 0x064a, 0x062a, 0x0000};
+ int32_t beLength = 0, leLength = 0, cLength = ARRAY_SIZE(chars);
+ char *beBytes = extractBytes(chars, cLength, "UTF-16BE", &beLength);
+ char *leBytes = extractBytes(chars, cLength, "UTF-16LE", &leLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *name;
+ int32_t conf;
+
+ ucsdet_setText(csd, beBytes, beLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("Encoding detection failure for UTF-16BE: got no matches.\n");
+ goto try_le;
+ }
+
+ name = ucsdet_getName(match, &status);
+ conf = ucsdet_getConfidence(match, &status);
+
+ if (strcmp(name, "UTF-16BE") != 0) {
+ log_err("Encoding detection failure for UTF-16BE: got %s\n", name);
+ }
+
+ if (conf != 100) {
+ log_err("Did not get 100%% confidence for UTF-16BE: got %d\n", conf);
+ }
+
+try_le:
+ ucsdet_setText(csd, leBytes, leLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("Encoding detection failure for UTF-16LE: got no matches.\n");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+ conf = ucsdet_getConfidence(match, &status);
+
+
+ if (strcmp(name, "UTF-16LE") != 0) {
+ log_err("Enconding detection failure for UTF-16LE: got %s\n", name);
+ }
+
+ if (conf != 100) {
+ log_err("Did not get 100%% confidence for UTF-16LE: got %d\n", conf);
+ }
+
+bail:
+ freeBytes(leBytes);
+ freeBytes(beBytes);
+ ucsdet_close(csd);
+}
+
+static void TestC1Bytes(void)
+{
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ UErrorCode status = U_ZERO_ERROR;
+ const char *ssISO = "This is a small sample of some English text. Just enough to be sure that it detects correctly.";
+ const char *ssWindows = "This is another small sample of some English text. Just enough to be sure that it detects correctly. It also includes some \\u201CC1\\u201D bytes.";
+ int32_t sISOLength = 0, sWindowsLength = 0;
+ UChar *sISO = unescape(ssISO, &sISOLength);
+ UChar *sWindows = unescape(ssWindows, &sWindowsLength);
+ int32_t lISO = 0, lWindows = 0;
+ char *bISO = extractBytes(sISO, sISOLength, "ISO-8859-1", &lISO);
+ char *bWindows = extractBytes(sWindows, sWindowsLength, "windows-1252", &lWindows);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *name;
+
+ ucsdet_setText(csd, bWindows, lWindows, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("English test with C1 bytes got no matches.\n");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (strcmp(name, "windows-1252") != 0) {
+ log_err("English text with C1 bytes does not detect as windows-1252, but as %s\n", name);
+ }
+
+ ucsdet_setText(csd, bISO, lISO, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("English text without C1 bytes got no matches.\n");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (strcmp(name, "ISO-8859-1") != 0) {
+ log_err("English text without C1 bytes does not detect as ISO-8859-1, but as %s\n", name);
+ }
+
+bail:
+ freeBytes(bWindows);
+ freeBytes(bISO);
+
+ ucsdet_close(csd);
+#endif
+}
+
+static void TestInputFilter(void)
+{
+ UErrorCode status = U_ZERO_ERROR;
+ const char *ss = "<a> <lot> <of> <English> <inside> <the> <markup> Un tr\\u00E8s petit peu de Fran\\u00E7ais. <to> <confuse> <the> <detector>";
+ int32_t sLength = 0;
+ UChar *s = unescape(ss, &sLength);
+ int32_t byteLength = 0;
+ char *bytes = extractBytes(s, sLength, "ISO-8859-1", &byteLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *lang, *name;
+
+ ucsdet_enableInputFilter(csd, TRUE);
+
+ if (!ucsdet_isInputFilterEnabled(csd)) {
+ log_err("ucsdet_enableInputFilter(csd, TRUE) did not enable input filter!\n");
+ }
+
+
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("Turning on the input filter resulted in no matches.\n");
+ goto turn_off;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (name == NULL || strcmp(name, "ISO-8859-1") != 0) {
+ log_err("Turning on the input filter resulted in %s rather than ISO-8859-1\n", name);
+ } else {
+ lang = ucsdet_getLanguage(match, &status);
+
+ if (lang == NULL || strcmp(lang, "fr") != 0) {
+ log_err("Input filter did not strip markup!\n");
+ }
+ }
+
+turn_off:
+ ucsdet_enableInputFilter(csd, FALSE);
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ log_err("Turning off the input filter resulted in no matches.\n");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (name == NULL || strcmp(name, "ISO-8859-1") != 0) {
+ log_err("Turning off the input filter resulted in %s rather than ISO-8859-1\n", name);
+ } else {
+ lang = ucsdet_getLanguage(match, &status);
+
+ if (lang == NULL || strcmp(lang, "en") != 0) {
+ log_err("Unfiltered input did not detect as English!\n");
+ }
+ }
+
+bail:
+ freeBytes(bytes);
+ ucsdet_close(csd);
+}
+
+static void TestChaining(void) {
+ UErrorCode status = U_USELESS_COLLATOR_ERROR;
+
+ ucsdet_open(&status);
+ ucsdet_setText(NULL, NULL, 0, &status);
+ ucsdet_getName(NULL, &status);
+ ucsdet_getConfidence(NULL, &status);
+ ucsdet_getLanguage(NULL, &status);
+ ucsdet_detect(NULL, &status);
+ ucsdet_setDeclaredEncoding(NULL, NULL, 0, &status);
+ ucsdet_detectAll(NULL, NULL, &status);
+ ucsdet_getUChars(NULL, NULL, 0, &status);
+ ucsdet_getUChars(NULL, NULL, 0, &status);
+ ucsdet_close(NULL);
+
+ /* All of this code should have done nothing. */
+ if (status != U_USELESS_COLLATOR_ERROR) {
+ log_err("Status got changed to %s\n", u_errorName(status));
+ }
+}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/udatatst.c b/Build/source/libs/icu-xetex/test/cintltst/udatatst.c
index 156a1582d56..b68ec82ab65 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/udatatst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/udatatst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1998-2005, International Business Machines Corporation and
+ * Copyright (c) 1998-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -26,6 +26,7 @@
#include "filestrm.h"
#include "udatamem.h"
#include "cintltst.h"
+#include "ubrkimpl.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -600,10 +601,12 @@ static void TestUDataOpenChoiceDemo1() {
const char* name[]={
"cnvalias",
"unames",
- "test"
+ "test",
+ "nam"
};
const char* type="icu";
const char* testPath="testdata";
+ const char* fullTestDataPath = loadTestData(&status);
result=udata_openChoice(NULL, "icu", name[0], isAcceptable1, NULL, &status);
if(U_FAILURE(status)){
@@ -613,6 +616,7 @@ static void TestUDataOpenChoiceDemo1() {
udata_close(result);
}
+ status=U_ZERO_ERROR;
result=udata_openChoice(NULL, type, name[1], isAcceptable1, NULL, &status);
if(U_FAILURE(status)){
status=U_ZERO_ERROR;
@@ -621,11 +625,15 @@ static void TestUDataOpenChoiceDemo1() {
log_err("FAIL: udata_openChoice() failed name=%s, type=%s, \n errorcode=%s\n", name[1], type, myErrorName(status));
}
}
+ else {
+ log_err("FAIL: udata_openChoice() unexpectedly passed. name=%s, type=%s, \n errorcode=%s\n", name[1], type, myErrorName(status));
+ }
if(U_SUCCESS(status)){
udata_close(result);
}
+ status=U_ZERO_ERROR;
result=udata_openChoice(testPath, type, name[2], isAcceptable1, NULL, &status);
if(U_FAILURE(status)){
status=U_ZERO_ERROR;
@@ -634,10 +642,26 @@ static void TestUDataOpenChoiceDemo1() {
log_err("FAIL: udata_openChoice() failed path=%s name=%s, type=%s, \n errorcode=%s\n", testPath, name[2], type, myErrorName(status));
}
}
+ else {
+ log_err("FAIL: udata_openChoice() unexpectedly passed. name=%s, type=%s, \n errorcode=%s\n", name[2], type, myErrorName(status));
+ }
if(U_SUCCESS(status)){
udata_close(result);
}
+
+ status=U_ZERO_ERROR;
+ type="typ";
+ result=udata_openChoice(fullTestDataPath, type, name[3], isAcceptable1, NULL, &status);
+ if(status != U_INVALID_FORMAT_ERROR){
+ log_err("FAIL: udata_openChoice() did not fail as expected. name=%s, type=%s, \n errorcode=%s\n", name[3], type, myErrorName(status));
+ }
+
+ status=U_USELESS_COLLATOR_ERROR;
+ result=udata_openChoice(fullTestDataPath, type, name[3], isAcceptable1, NULL, &status);
+ if(status != U_USELESS_COLLATOR_ERROR){
+ log_err("FAIL: udata_openChoice() did not fail as expected. name=%s, type=%s, \n errorcode=%s\n", name[3], type, myErrorName(status));
+ }
}
static UBool U_CALLCONV
@@ -1100,6 +1124,97 @@ static void TestICUDataName()
/* test data swapping ------------------------------------------------------- */
+#ifdef OS400
+/* See comments in genccode.c on when this special implementation can be removed. */
+static const struct {
+ double bogus;
+ const char *bytes;
+} gOffsetTOCAppDataItem1={ 0.0, /* alignment bytes */
+ "\x00\x14" /* sizeof(UDataInfo) *//* MappedData { */
+ "\xda"
+ "\x27" /* } */
+ "\x00\x14" /* sizeof(UDataInfo) *//* UDataInfo { */
+ "\0\0"
+ "\1" /* U_IS_BIG_ENDIAN */
+ "\1" /* U_CHARSET_FAMILY */
+ "\2" /* U_SIZEOF_WHAR_T */
+ "\0"
+ "\x31\x31\x31\x31"
+ "\0\0\0\0"
+ "\0\0\0\0" /* } */
+};
+#else
+static const struct {
+ double bogus;
+ MappedData bytes1;
+ UDataInfo bytes2;
+ uint8_t bytes3;
+} gOffsetTOCAppDataItem1={
+ 0.0, /* alignment bytes */
+ { sizeof(UDataInfo), 0xda, 0x27 }, /* MappedData */
+
+ {sizeof(UDataInfo),
+ 0,
+
+ U_IS_BIG_ENDIAN,
+ U_CHARSET_FAMILY,
+ sizeof(UChar),
+ 0,
+
+ {0x31, 0x31, 0x31, 0x31}, /* dataFormat="1111" */
+ {0, 0, 0, 0}, /* formatVersion */
+ {0, 0, 0, 0}} /* dataVersion */
+};
+#endif
+
+static const UChar gOffsetTOCGarbage[] = { /* "I have been very naughty!" */
+ 0x49, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6E,
+ 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6E, 0x61, 0x75, 0x67, 0x68, 0x74, 0x79, 0x21
+};
+
+/* Original source: icu/source/tools/genccode */
+static const struct {
+ uint16_t headerSize;
+ uint8_t magic1, magic2;
+ UDataInfo info;
+ char padding[8];
+ uint32_t count, reserved;
+ const struct {
+ const char *const name;
+ const void *const data;
+ } toc[3];
+} gOffsetTOCAppData_dat = {
+ 32, /* headerSize */
+ 0xda, /* magic1, (see struct MappedData in udata.c) */
+ 0x27, /* magic2 */
+ { /*UDataInfo */
+ sizeof(UDataInfo), /* size */
+ 0, /* reserved */
+ U_IS_BIG_ENDIAN,
+ U_CHARSET_FAMILY,
+ sizeof(UChar),
+ 0, /* reserved */
+ { /* data format identifier */
+ 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */
+ {1, 0, 0, 0}, /* format version major, minor, milli, micro */
+ {0, 0, 0, 0} /* dataVersion */
+ },
+ {0,0,0,0,0,0,0,0}, /* Padding[8] */
+ 3, /* count */
+ 0, /* Reserved */
+ { /* TOC structure */
+ { "OffsetTOCAppData/a/b", &gOffsetTOCAppDataItem1 },
+ { "OffsetTOCAppData/gOffsetTOCAppDataItem1", &gOffsetTOCAppDataItem1 },
+ { "OffsetTOCAppData/gOffsetTOCGarbage", &gOffsetTOCGarbage }
+ }
+};
+
+/* Unfortunately, trie dictionaries are in a C++ header */
+int32_t
+triedict_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
/* test cases for maximum data swapping code coverage */
static const struct {
const char *name, *type;
@@ -1116,6 +1231,8 @@ static const struct {
{"el", "res", ures_swap},
/* ICU's root */
{"root", "res", ures_swap},
+ /* Test a 32-bit key table. This is large. */
+ {"*testtable32", "res", ures_swap},
/* ICU 2.6 resource bundle - data format 1.0, without indexes[] (little-endian ASCII) */
{"*icu26_testtypes", "res", ures_swap},
@@ -1143,7 +1260,9 @@ static const struct {
{"gb18030", "cnv", ucnv_swap},
/* MBCS conversion table file with extension */
{"*test4x", "cnv", ucnv_swap},
+#endif
+#if !UCONFIG_NO_CONVERSION
/* alias table */
{"cnvalias", "icu", ucnv_swapAliases},
#endif
@@ -1154,6 +1273,7 @@ static const struct {
#if !UCONFIG_NO_BREAK_ITERATION
{"char", "brk", ubrk_swap},
+ {"thaidict", "ctd", triedict_swap},
#endif
/* the last item should not be #if'ed so that it can reliably omit the last comma */
@@ -1181,7 +1301,8 @@ static const struct {
{"unames", "icu", uchar_swapNames}
};
-#define SWAP_BUFFER_SIZE 1000000
+/* Large enough for the largest swappable data item. */
+#define SWAP_BUFFER_SIZE 1800000
static void U_CALLCONV
printError(void *context, const char *fmt, va_list args) {
@@ -1198,6 +1319,7 @@ TestSwapCase(UDataMemory *pData, const char *name,
int32_t length, dataLength, length2, headerLength;
UErrorCode errorCode;
+ UErrorCode badStatus;
UBool inEndian, oppositeEndian;
uint8_t inCharset, oppositeCharset;
@@ -1259,6 +1381,20 @@ TestSwapCase(UDataMemory *pData, const char *name,
}
}
+ /*
+ Check error checking of swappable data not specific to this swapper.
+ This should always fail.
+ */
+ badStatus = U_ZERO_ERROR;
+ length=swapFn(ds, &gOffsetTOCAppData_dat, -1, NULL, &badStatus);
+ if(badStatus != U_UNSUPPORTED_ERROR) {
+ log_err("swapFn(%s->!isBig+same charset) unexpectedly succeeded on bad data - %s\n",
+ name, u_errorName(errorCode));
+ udata_closeSwapper(ds);
+ return;
+ }
+
+ /* Now allow errors to be printed */
ds->printError=printError;
/* preflight the length */
@@ -1415,6 +1551,13 @@ TestSwapData() {
}
/* Test that printError works as expected. */
+ errorCode=U_USELESS_COLLATOR_ERROR;
+ ds=udata_openSwapper(U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
+ !U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
+ &errorCode);
+ if (ds != NULL || errorCode != U_USELESS_COLLATOR_ERROR) {
+ log_err("udata_openSwapper should have returned NULL with bad argument\n", name);
+ }
errorCode=U_ZERO_ERROR;
ds=udata_openSwapper(U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
!U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
@@ -1427,19 +1570,39 @@ TestSwapData() {
log_err("udata_printError can't properly print error messages. Got = %s\n", name);
}
errorCode = U_USELESS_COLLATOR_ERROR;
- if (udata_openSwapperForInputData(NULL, 0,
+ ds=udata_openSwapperForInputData(NULL, 0,
!U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
- &errorCode) != NULL) {
+ &errorCode);
+ if (ds != NULL || errorCode != U_USELESS_COLLATOR_ERROR) {
log_err("udata_openSwapperForInputData should have returned NULL with bad argument\n", name);
}
+ errorCode=U_ZERO_ERROR;
ds=udata_openSwapperForInputData(NULL, 0,
!U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
&errorCode);
- if (ds != NULL || errorCode != U_USELESS_COLLATOR_ERROR) {
+ if (ds != NULL || errorCode != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("udata_openSwapperForInputData should have returned NULL with bad argument\n", name);
+ }
+ errorCode=U_ZERO_ERROR;
+ memset(buffer, 0, sizeof(2*SWAP_BUFFER_SIZE));
+ ds=udata_openSwapperForInputData(buffer, 2*SWAP_BUFFER_SIZE,
+ !U_IS_BIG_ENDIAN, U_ASCII_FAMILY,
+ &errorCode);
+ if (ds != NULL || errorCode != U_UNSUPPORTED_ERROR) {
log_err("udata_openSwapperForInputData should have returned NULL with bad argument\n", name);
}
errorCode=U_ZERO_ERROR;
+ /* Test argument checking. ucol_swapBinary is normally tested via ures_swap, and isn't normally called directly. */
+#if !UCONFIG_NO_COLLATION
+ ucol_swapBinary(NULL, NULL, -1, NULL, NULL);
+ ucol_swapBinary(NULL, NULL, -1, NULL, &errorCode);
+ if (errorCode != U_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("ucol_swapBinary did not fail as expected\n", name);
+ }
+ errorCode=U_ZERO_ERROR;
+#endif
+
for(i=0; i<LENGTHOF(swapCases); ++i) {
/* build the name for logging */
errorCode=U_ZERO_ERROR;
@@ -1447,6 +1610,11 @@ TestSwapData() {
pkg=loadTestData(&errorCode);
nm=swapCases[i].name+1;
uprv_strcpy(name, "testdata");
+ } else if (uprv_strcmp(swapCases[i].type, "brk")==0
+ || uprv_strcmp(swapCases[i].type, "ctd")==0) {
+ pkg=U_ICUDATA_BRKITR;
+ nm=swapCases[i].name;
+ uprv_strcpy(name, U_ICUDATA_BRKITR);
} else {
pkg=NULL;
nm=swapCases[i].name;
@@ -1471,92 +1639,6 @@ TestSwapData() {
}
-#ifdef OS400
-/* See comments in genccode.c on when this special implementation can be removed. */
-static const struct {
- double bogus;
- const char *bytes;
-} gOffsetTOCAppDataItem1={ 0.0, /* alignment bytes */
- "\x00\x14" /* sizeof(UDataInfo) *//* MappedData { */
- "\xda"
- "\x27" /* } */
- "\x00\x14" /* sizeof(UDataInfo) *//* UDataInfo { */
- "\0\0"
- "\1" /* U_IS_BIG_ENDIAN */
- "\1" /* U_CHARSET_FAMILY */
- "\2" /* U_SIZEOF_WHAR_T */
- "\0"
- "\x31\x31\x31\x31"
- "\0\0\0\0"
- "\0\0\0\0" /* } */
-};
-#else
-static const struct {
- double bogus;
- MappedData bytes1;
- UDataInfo bytes2;
- uint8_t bytes3;
-} gOffsetTOCAppDataItem1={
- 0.0, /* alignment bytes */
- { sizeof(UDataInfo), 0xda, 0x27 }, /* MappedData */
-
- {sizeof(UDataInfo),
- 0,
-
- U_IS_BIG_ENDIAN,
- U_CHARSET_FAMILY,
- sizeof(UChar),
- 0,
-
- {0x31, 0x31, 0x31, 0x31}, /* dataFormat="1111" */
- {0, 0, 0, 0}, /* formatVersion */
- {0, 0, 0, 0}} /* dataVersion */
-};
-#endif
-
-static const UChar gOffsetTOCGarbage[] = { /* "I have been very naughty!" */
- 0x49, 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x62, 0x65, 0x65, 0x6E,
- 0x20, 0x76, 0x65, 0x72, 0x79, 0x20, 0x6E, 0x61, 0x75, 0x67, 0x68, 0x74, 0x79, 0x21
-};
-
-/* Original source: icu/source/tools/genccode */
-static const struct {
- uint16_t headerSize;
- uint8_t magic1, magic2;
- UDataInfo info;
- char padding[8];
- uint32_t count, reserved;
- const struct {
- const char *const name;
- const void *const data;
- } toc[3];
-} gOffsetTOCAppData_dat = {
- 32, /* headerSize */
- 0xda, /* magic1, (see struct MappedData in udata.c) */
- 0x27, /* magic2 */
- { /*UDataInfo */
- sizeof(UDataInfo), /* size */
- 0, /* reserved */
- U_IS_BIG_ENDIAN,
- U_CHARSET_FAMILY,
- sizeof(UChar),
- 0, /* reserved */
- { /* data format identifier */
- 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */
- {1, 0, 0, 0}, /* format version major, minor, milli, micro */
- {0, 0, 0, 0} /* dataVersion */
- },
- {0,0,0,0,0,0,0,0}, /* Padding[8] */
- 3, /* count */
- 0, /* Reserved */
- { /* TOC structure */
- { "OffsetTOCAppData/a/b", &gOffsetTOCAppDataItem1 },
- { "OffsetTOCAppData/gOffsetTOCAppDataItem1", &gOffsetTOCAppDataItem1 },
- { "OffsetTOCAppData/gOffsetTOCGarbage", &gOffsetTOCGarbage }
- }
-};
-
-
static void PointerTableOfContents() {
UDataMemory *dataItem;
UErrorCode status=U_ZERO_ERROR;
@@ -1612,6 +1694,10 @@ static void SetBadCommonData(void) {
/* It's difficult to test that udata_setCommonData really works within the test framework.
So we just test that foolish people can't do bad things. */
UErrorCode status;
+ char badBuffer[sizeof(gOffsetTOCAppData_dat)];
+
+ memset(badBuffer, 0, sizeof(badBuffer));
+ strcpy(badBuffer, "Hello! I'm not good data.");
/* Check that we don't do anything */
status = U_FILE_ACCESS_ERROR;
@@ -1637,5 +1723,12 @@ static void SetBadCommonData(void) {
else {
log_verbose("Can't test setting common data because files mode may have been used.\n");
}
+
+ /* Check that we verify that the data isn't bad */
+ status = U_ZERO_ERROR;
+ udata_setAppData("invalid path", badBuffer, &status);
+ if (status != U_INVALID_FORMAT_ERROR) {
+ log_err("FAIL: udata_setAppData doesn't verify data validity.\n");
+ }
}
diff --git a/Build/source/libs/icu-xetex/test/cintltst/utexttst.c b/Build/source/libs/icu-xetex/test/cintltst/utexttst.c
index 3d8f426e452..be5941df403 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/utexttst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/utexttst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2005, International Business Machines Corporation and
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -86,14 +86,14 @@ static void TestAPI(void) {
/* utext_clone() */
{
UChar uString[] = {0x41, 0x42, 0x43, 0};
- int32_t len;
+ int64_t len;
UText *uta;
UText *utb;
status = U_ZERO_ERROR;
uta = utext_openUChars(NULL, uString, -1, &status);
TEST_SUCCESS(status);
- utb = utext_clone(NULL, uta, FALSE, &status);
+ utb = utext_clone(NULL, uta, FALSE, FALSE, &status);
TEST_SUCCESS(status);
TEST_ASSERT(utb != NULL);
TEST_ASSERT(utb != uta);
@@ -108,9 +108,9 @@ static void TestAPI(void) {
UChar uString[] = {0x41, 0x42, 0x43, 0};
UText *uta;
UChar32 c;
- int32_t len;
+ int64_t len;
UBool b;
- int32_t i;
+ int64_t i;
status = U_ZERO_ERROR;
uta = utext_openUChars(NULL, uString, -1, &status);
diff --git a/Build/source/libs/icu-xetex/test/cintltst/utf8tst.c b/Build/source/libs/icu-xetex/test/cintltst/utf8tst.c
index 420a5f3dbc5..eaa8fb28c54 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/utf8tst.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/utf8tst.c
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1998-2003, International Business Machines Corporation and
+ * Copyright (c) 1998-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -20,6 +20,44 @@
#define LENGTHOF(array) (sizeof(array)/sizeof((array)[0]))
+/* lenient UTF-8 ------------------------------------------------------------ */
+
+/*
+ * Lenient UTF-8 differs from conformant UTF-8 in that it allows surrogate
+ * code points with their "natural" encoding.
+ * Effectively, this allows a mix of UTF-8 and CESU-8 as well as encodings of
+ * single surrogates.
+ *
+ * This is not conformant with UTF-8.
+ *
+ * Supplementary code points may be encoded as pairs of 3-byte sequences, but
+ * the macros below do not attempt to assemble such pairs.
+ */
+
+#define L8_NEXT(s, i, length, c) { \
+ (c)=(uint8_t)(s)[(i)++]; \
+ if((c)>=0x80) { \
+ if(U8_IS_LEAD(c)) { \
+ (c)=utf8_nextCharSafeBody((const uint8_t *)s, &(i), (int32_t)(length), c, -2); \
+ } else { \
+ (c)=U_SENTINEL; \
+ } \
+ } \
+}
+
+#define L8_PREV(s, start, i, c) { \
+ (c)=(uint8_t)(s)[--(i)]; \
+ if((c)>=0x80) { \
+ if((c)<=0xbf) { \
+ (c)=utf8_prevCharSafeBody((const uint8_t *)s, start, &(i), c, -2); \
+ } else { \
+ (c)=U_SENTINEL; \
+ } \
+ } \
+}
+
+/* -------------------------------------------------------------------------- */
+
static void printUChars(const uint8_t *uchars, int16_t len);
static void TestCodeUnitValues(void);
@@ -30,6 +68,7 @@ static void TestFwdBack(void);
static void TestSetChar(void);
static void TestAppendChar(void);
static void TestAppend(void);
+static void TestSurrogates(void);
void addUTF8Test(TestNode** root);
@@ -44,6 +83,7 @@ addUTF8Test(TestNode** root)
addTest(root, &TestSetChar, "utf8tst/TestSetChar" );
addTest(root, &TestAppendChar, "utf8tst/TestAppendChar" );
addTest(root, &TestAppend, "utf8tst/TestAppend" );
+ addTest(root, &TestSurrogates, "utf8tst/TestSurrogates" );
}
static void TestCodeUnitValues()
@@ -817,6 +857,97 @@ static void TestAppend() {
}
}
+static void
+TestSurrogates() {
+ static const uint8_t b[]={
+ 0xc3, 0x9f, /* 00DF */
+ 0xed, 0x9f, 0xbf, /* D7FF */
+ 0xed, 0xa0, 0x81, /* D801 */
+ 0xed, 0xbf, 0xbe, /* DFFE */
+ 0xee, 0x80, 0x80, /* E000 */
+ 0xf0, 0x97, 0xbf, 0xbe /* 17FFE */
+ };
+ static const UChar32 cp[]={
+ 0xdf, 0xd7ff, 0xd801, 0xdffe, 0xe000, 0x17ffe
+ };
+
+ UChar32 cu, cs, cl;
+ int32_t i, j, k, iu, is, il, length;
+
+ k=0; /* index into cp[] */
+ length=LENGTHOF(b);
+ for(i=0; i<length;) {
+ j=i;
+ U8_NEXT_UNSAFE(b, j, cu);
+ iu=j;
+
+ j=i;
+ U8_NEXT(b, j, length, cs);
+ is=j;
+
+ j=i;
+ L8_NEXT(b, j, length, cl);
+ il=j;
+
+ if(cu!=cp[k]) {
+ log_err("U8_NEXT_UNSAFE(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cu, (long)cp[k]);
+ }
+
+ /* U8_NEXT() returns <0 for surrogate code points */
+ if(U_IS_SURROGATE(cu) ? cs>=0 : cs!=cu) {
+ log_err("U8_NEXT(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cs, (long)cu);
+ }
+
+ /* L8_NEXT() returns surrogate code points like U8_NEXT_UNSAFE() */
+ if(cl!=cu) {
+ log_err("L8_NEXT(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cl, (long)cu);
+ }
+
+ if(is!=iu || il!=iu) {
+ log_err("U8_NEXT(b[%ld]) or L8_NEXT(b[%ld]) did not advance the index correctly\n", (long)i, (long)i);
+ }
+
+ ++k; /* next code point */
+ i=iu; /* advance by one UTF-8 sequence */
+ }
+
+ while(i>0) {
+ --k; /* previous code point */
+
+ j=i;
+ U8_PREV_UNSAFE(b, j, cu);
+ iu=j;
+
+ j=i;
+ U8_PREV(b, 0, j, cs);
+ is=j;
+
+ j=i;
+ L8_PREV(b, 0, j, cl);
+ il=j;
+
+ if(cu!=cp[k]) {
+ log_err("U8_PREV_UNSAFE(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cu, (long)cp[k]);
+ }
+
+ /* U8_PREV() returns <0 for surrogate code points */
+ if(U_IS_SURROGATE(cu) ? cs>=0 : cs!=cu) {
+ log_err("U8_PREV(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cs, (long)cu);
+ }
+
+ /* L8_PREV() returns surrogate code points like U8_PREV_UNSAFE() */
+ if(cl!=cu) {
+ log_err("L8_PREV(b[%ld])=U+%04lX != U+%04lX\n", (long)i, (long)cl, (long)cu);
+ }
+
+ if(is!=iu || il !=iu) {
+ log_err("U8_PREV(b[%ld]) or L8_PREV(b[%ld]) did not advance the index correctly\n", (long)i, (long)i);
+ }
+
+ i=iu; /* go back by one UTF-8 sequence */
+ }
+}
+
static void printUChars(const uint8_t *uchars, int16_t len){
int16_t i=0;
for(i=0; i<len; i++){
diff --git a/Build/source/libs/icu-xetex/test/cintltst/utmstest.c b/Build/source/libs/icu-xetex/test/cintltst/utmstest.c
index f68b5bdd461..93c0c330deb 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/utmstest.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/utmstest.c
@@ -1,6 +1,6 @@
/*
****************************************************************************
- * Copyright (c) 1997-2004, International Business Machines Corporation and *
+ * Copyright (c) 1997-2006, International Business Machines Corporation and *
* others. All Rights Reserved. *
****************************************************************************
*/
@@ -10,17 +10,21 @@
#if !UCONFIG_NO_FORMATTING
#include "unicode/utmscale.h"
+#include "unicode/ucal.h"
#include "cintltst.h"
#include <stdlib.h>
#include <time.h>
+#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
#define LOOP_COUNT 10000
static void TestAPI(void);
static void TestData(void);
static void TestMonkey(void);
+static void TestDotNet(void);
void addUtmsTest(TestNode** root);
@@ -29,6 +33,7 @@ void addUtmsTest(TestNode** root)
addTest(root, &TestAPI, "tsformat/utmstest/TestAPI");
addTest(root, &TestData, "tsformat/utmstest/TestData");
addTest(root, &TestMonkey, "tsformat/utmstest/TestMonkey");
+ addTest(root, &TestDotNet, "tsformat/utmstest/TestDotNet");
}
/**
@@ -339,4 +344,143 @@ static void TestMonkey(void)
}
}
+struct DotNetDateTimeTicks {
+ int32_t year;
+ int32_t month;
+ int32_t day;
+ int64_t ticks;
+};
+typedef struct DotNetDateTimeTicks DotNetDateTimeTicks;
+
+/*
+ * This data was generated by C++.Net code like
+ * Console::WriteLine(L" {{ {0}, 1, 1, INT64_C({1}) }},", year, DateTime(year, 1, 1).Ticks);
+ * with the DateTime constructor taking int values for year, month, and date.
+ */
+static const DotNetDateTimeTicks dotNetDateTimeTicks[]={
+ /* year, month, day, ticks */
+ { 100, 1, 1, INT64_C(31241376000000000) },
+ { 100, 3, 1, INT64_C(31292352000000000) },
+ { 200, 1, 1, INT64_C(62798112000000000) },
+ { 200, 3, 1, INT64_C(62849088000000000) },
+ { 300, 1, 1, INT64_C(94354848000000000) },
+ { 300, 3, 1, INT64_C(94405824000000000) },
+ { 400, 1, 1, INT64_C(125911584000000000) },
+ { 400, 3, 1, INT64_C(125963424000000000) },
+ { 500, 1, 1, INT64_C(157469184000000000) },
+ { 500, 3, 1, INT64_C(157520160000000000) },
+ { 600, 1, 1, INT64_C(189025920000000000) },
+ { 600, 3, 1, INT64_C(189076896000000000) },
+ { 700, 1, 1, INT64_C(220582656000000000) },
+ { 700, 3, 1, INT64_C(220633632000000000) },
+ { 800, 1, 1, INT64_C(252139392000000000) },
+ { 800, 3, 1, INT64_C(252191232000000000) },
+ { 900, 1, 1, INT64_C(283696992000000000) },
+ { 900, 3, 1, INT64_C(283747968000000000) },
+ { 1000, 1, 1, INT64_C(315253728000000000) },
+ { 1000, 3, 1, INT64_C(315304704000000000) },
+ { 1100, 1, 1, INT64_C(346810464000000000) },
+ { 1100, 3, 1, INT64_C(346861440000000000) },
+ { 1200, 1, 1, INT64_C(378367200000000000) },
+ { 1200, 3, 1, INT64_C(378419040000000000) },
+ { 1300, 1, 1, INT64_C(409924800000000000) },
+ { 1300, 3, 1, INT64_C(409975776000000000) },
+ { 1400, 1, 1, INT64_C(441481536000000000) },
+ { 1400, 3, 1, INT64_C(441532512000000000) },
+ { 1500, 1, 1, INT64_C(473038272000000000) },
+ { 1500, 3, 1, INT64_C(473089248000000000) },
+ { 1600, 1, 1, INT64_C(504595008000000000) },
+ { 1600, 3, 1, INT64_C(504646848000000000) },
+ { 1700, 1, 1, INT64_C(536152608000000000) },
+ { 1700, 3, 1, INT64_C(536203584000000000) },
+ { 1800, 1, 1, INT64_C(567709344000000000) },
+ { 1800, 3, 1, INT64_C(567760320000000000) },
+ { 1900, 1, 1, INT64_C(599266080000000000) },
+ { 1900, 3, 1, INT64_C(599317056000000000) },
+ { 2000, 1, 1, INT64_C(630822816000000000) },
+ { 2000, 3, 1, INT64_C(630874656000000000) },
+ { 2100, 1, 1, INT64_C(662380416000000000) },
+ { 2100, 3, 1, INT64_C(662431392000000000) },
+ { 2200, 1, 1, INT64_C(693937152000000000) },
+ { 2200, 3, 1, INT64_C(693988128000000000) },
+ { 2300, 1, 1, INT64_C(725493888000000000) },
+ { 2300, 3, 1, INT64_C(725544864000000000) },
+ { 2400, 1, 1, INT64_C(757050624000000000) },
+ { 2400, 3, 1, INT64_C(757102464000000000) },
+ { 2500, 1, 1, INT64_C(788608224000000000) },
+ { 2500, 3, 1, INT64_C(788659200000000000) },
+ { 2600, 1, 1, INT64_C(820164960000000000) },
+ { 2600, 3, 1, INT64_C(820215936000000000) },
+ { 2700, 1, 1, INT64_C(851721696000000000) },
+ { 2700, 3, 1, INT64_C(851772672000000000) },
+ { 2800, 1, 1, INT64_C(883278432000000000) },
+ { 2800, 3, 1, INT64_C(883330272000000000) },
+ { 2900, 1, 1, INT64_C(914836032000000000) },
+ { 2900, 3, 1, INT64_C(914887008000000000) },
+ { 3000, 1, 1, INT64_C(946392768000000000) },
+ { 3000, 3, 1, INT64_C(946443744000000000) },
+ { 1, 1, 1, INT64_C(0) },
+ { 1601, 1, 1, INT64_C(504911232000000000) },
+ { 1899, 12, 31, INT64_C(599265216000000000) },
+ { 1904, 1, 1, INT64_C(600527520000000000) },
+ { 1970, 1, 1, INT64_C(621355968000000000) },
+ { 2001, 1, 1, INT64_C(631139040000000000) },
+ { 9900, 3, 1, INT64_C(3123873216000000000) },
+ { 9999, 12, 31, INT64_C(3155378112000000000) }
+};
+
+/*
+ * ICU's Universal Time Scale is designed to be tick-for-tick compatible with
+ * .Net System.DateTime. Verify that this is so for the
+ * .Net-supported date range (years 1-9999 AD).
+ * This requires a proleptic Gregorian calendar because that's what .Net uses.
+ * Proleptic: No Julian/Gregorian switchover, or a switchover before
+ * any date that we test, that is, before 0001 AD.
+ */
+static void
+TestDotNet() {
+ static const UChar utc[] = { 0x45, 0x74, 0x63, 0x2f, 0x47, 0x4d, 0x54, 0 }; /* "Etc/GMT" */
+ const int32_t dayMillis = 86400 * INT64_C(1000); /* 1 day = 86400 seconds */
+ const int64_t dayTicks = 86400 * INT64_C(10000000);
+ const DotNetDateTimeTicks *dt;
+ UCalendar *cal;
+ UErrorCode errorCode;
+ UDate icuDate;
+ int64_t ticks, millis;
+ int32_t i;
+
+ /* Open a proleptic Gregorian calendar. */
+ errorCode = U_ZERO_ERROR;
+ cal = ucal_open(utc, -1, "", UCAL_GREGORIAN, &errorCode);
+ ucal_setGregorianChange(cal, -1000000 * (dayMillis * (UDate)1), &errorCode);
+ if(U_FAILURE(errorCode)) {
+ log_err("ucal_open(UTC/proleptic Gregorian) failed: %s\n", u_errorName(errorCode));
+ ucal_close(cal);
+ return;
+ }
+ for(i = 0; i < LENGTHOF(dotNetDateTimeTicks); ++i) {
+ /* Test conversion from .Net/Universal time to ICU time. */
+ dt = dotNetDateTimeTicks + i;
+ millis = utmscale_toInt64(dt->ticks, UDTS_ICU4C_TIME, &errorCode);
+ ucal_clear(cal);
+ ucal_setDate(cal, dt->year, dt->month - 1, dt->day, &errorCode); /* Java & ICU use January = month 0. */
+ icuDate = ucal_getMillis(cal, &errorCode);
+ if(millis != icuDate) {
+ /* Print days not millis to stay within printf() range. */
+ log_err("utmscale_toInt64(ticks[%d], ICU4C)=%dd != %dd=ucal_getMillis(%04d-%02d-%02d)\n",
+ (int)i, (int)(millis/dayMillis), (int)(icuDate/dayMillis), (int)dt->year, (int)dt->month, (int)dt->day);
+ }
+
+ /* Test conversion from ICU time to .Net/Universal time. */
+ ticks = utmscale_fromInt64((int64_t)icuDate, UDTS_ICU4C_TIME, &errorCode);
+ if(ticks != dt->ticks) {
+ /* Print days not ticks to stay within printf() range. */
+ log_err("utmscale_fromInt64(date[%d], ICU4C)=%dd != %dd=.Net System.DateTime(%04d-%02d-%02d).Ticks\n",
+ (int)i, (int)(ticks/dayTicks), (int)(dt->ticks/dayTicks), (int)dt->year, (int)dt->month, (int)dt->day);
+ }
+ }
+
+ ucal_close(cal);
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/cintltst/utransts.c b/Build/source/libs/icu-xetex/test/cintltst/utransts.c
index b472fe16a62..ec99292aa9f 100644
--- a/Build/source/libs/icu-xetex/test/cintltst/utransts.c
+++ b/Build/source/libs/icu-xetex/test/cintltst/utransts.c
@@ -1,6 +1,6 @@
/*
*******************************************************************************
- * Copyright (C) 1997-2004, International Business Machines
+ * Copyright (C) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
* Date Name Description
@@ -605,6 +605,7 @@ static void _expect(const UTransliterator* trans,
int32_t limit;
UTransPosition pos;
XReplaceable xrep;
+ XReplaceable *xrepPtr = &xrep;
UReplaceableCallbacks xrepVtable;
u_uastrcpy(from, cfrom);
@@ -659,7 +660,7 @@ static void _expect(const UTransliterator* trans,
InitXReplaceableCallbacks(&xrepVtable);
InitXReplaceable(&xrep, cfrom);
limit = u_strlen(from);
- utrans_trans(trans, (UReplaceable*)&xrep, &xrepVtable, 0, &limit, &status);
+ utrans_trans(trans, (UReplaceable*)xrepPtr, &xrepVtable, 0, &limit, &status);
if (U_FAILURE(status)) {
log_err("FAIL: utrans_trans() failed, error=%s\n",
u_errorName(status));
@@ -682,8 +683,8 @@ static void _expect(const UTransliterator* trans,
InitXReplaceable(&xrep, cfrom);
pos.start = pos.contextStart = 0;
pos.limit = pos.contextLimit = u_strlen(from);
- utrans_transIncremental(trans, (UReplaceable*)&xrep, &xrepVtable, &pos, &status);
- utrans_trans(trans, (UReplaceable*)&xrep, &xrepVtable, pos.start, &pos.limit, &status);
+ utrans_transIncremental(trans, (UReplaceable*)xrepPtr, &xrepVtable, &pos, &status);
+ utrans_trans(trans, (UReplaceable*)xrepPtr, &xrepVtable, pos.start, &pos.limit, &status);
if (U_FAILURE(status)) {
log_err("FAIL: utrans_transIncremental() failed, error=%s\n",
u_errorName(status));
diff --git a/Build/source/libs/icu-xetex/test/collperf/.cvsignore b/Build/source/libs/icu-xetex/test/collperf/.cvsignore
deleted file mode 100644
index f3c7a7c5da6..00000000000
--- a/Build/source/libs/icu-xetex/test/collperf/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-Makefile
diff --git a/Build/source/libs/icu-xetex/test/collperf/collperf.cpp b/Build/source/libs/icu-xetex/test/collperf/collperf.cpp
deleted file mode 100644
index 05edc2ec18e..00000000000
--- a/Build/source/libs/icu-xetex/test/collperf/collperf.cpp
+++ /dev/null
@@ -1,1749 +0,0 @@
-/********************************************************************
- * COPYRIGHT:
- * Copyright (C) 2001-2005 IBM, Inc. All Rights Reserved.
- *
- ********************************************************************/
-/********************************************************************************
-*
-* File CALLCOLL.C
-*
-* Modification History:
-* Name Description
-* Andy Heninger First Version
-*
-*********************************************************************************
-*/
-
-//
-// This program tests string collation and sort key generation performance.
-// Three APIs can be teste: ICU C , Unix strcoll, strxfrm and Windows LCMapString
-// A file of names is required as input, one per line. It must be in utf-8 or utf-16 format,
-// and include a byte order mark. Either LE or BE format is OK.
-//
-
-const char gUsageString[] =
- "usage: collperf options...\n"
- "-help Display this message.\n"
- "-file file_name utf-16 format file of names.\n"
- "-locale name ICU locale to use. Default is en_US\n"
- "-rules file_name Collation rules file (overrides locale)\n"
- "-langid 0x1234 Windows Language ID number. Default to value for -locale option\n"
- " see http://msdn.microsoft.com/library/psdk/winbase/nls_8xo3.htm\n"
- "-win Run test using Windows native services. (ICU is default)\n"
- "-unix Run test using Unix strxfrm, strcoll services.\n"
- "-uselen Use API with string lengths. Default is null-terminated strings\n"
- "-usekeys Run tests using sortkeys rather than strcoll\n"
- "-strcmp Run tests using u_strcmp rather than strcoll\n"
- "-strcmpCPO Run tests using u_strcmpCodePointOrder rather than strcoll\n"
- "-loop nnnn Loopcount for test. Adjust for reasonable total running time.\n"
- "-iloop n Inner Loop Count. Default = 1. Number of calls to function\n"
- " under test at each call point. For measuring test overhead.\n"
- "-terse Terse numbers-only output. Intended for use by scripts.\n"
- "-french French accent ordering\n"
- "-frenchoff No French accent ordering (for use with French locales.)\n"
- "-norm Normalizing mode on\n"
- "-shifted Shifted mode\n"
- "-lower Lower case first\n"
- "-upper Upper case first\n"
- "-case Enable separate case level\n"
- "-level n Sort level, 1 to 5, for Primary, Secndary, Tertiary, Quaternary, Identical\n"
- "-keyhist Produce a table sort key size vs. string length\n"
- "-binsearch Binary Search timing test\n"
- "-keygen Sort Key Generation timing test\n"
- "-qsort Quicksort timing test\n"
- "-iter Iteration Performance Test\n"
- "-dump Display strings, sort keys and CEs.\n"
- ;
-
-
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <math.h>
-#include <locale.h>
-#include <errno.h>
-
-#include <unicode/utypes.h>
-#include <unicode/ucol.h>
-#include <unicode/ucoleitr.h>
-#include <unicode/uloc.h>
-#include <unicode/ustring.h>
-#include <unicode/ures.h>
-#include <unicode/uchar.h>
-#include <unicode/ucnv.h>
-#include <unicode/utf8.h>
-
-#ifdef U_WINDOWS
-#include <windows.h>
-#else
-//
-// Stubs for Windows API functions when building on UNIXes.
-//
-typedef int DWORD;
-inline int CompareStringW(DWORD, DWORD, UChar *, int, UChar *, int) {return 0;};
-#include <sys/time.h>
-unsigned long timeGetTime() {
- struct timeval t;
- gettimeofday(&t, 0);
- unsigned long val = t.tv_sec * 1000; // Let it overflow. Who cares.
- val += t.tv_usec / 1000;
- return val;
-};
-inline int LCMapStringW(DWORD, DWORD, UChar *, int, UChar *, int) {return 0;};
-const int LCMAP_SORTKEY = 0;
-#define MAKELCID(a,b) 0
-const int SORT_DEFAULT = 0;
-#endif
-
-
-
-//
-// Command line option variables
-// These global variables are set according to the options specified
-// on the command line by the user.
-char * opt_fName = 0;
-char * opt_locale = "en_US";
-int opt_langid = 0; // Defaults to value corresponding to opt_locale.
-char * opt_rules = 0;
-UBool opt_help = FALSE;
-int opt_loopCount = 1;
-int opt_iLoopCount = 1;
-UBool opt_terse = FALSE;
-UBool opt_qsort = FALSE;
-UBool opt_binsearch = FALSE;
-UBool opt_icu = TRUE;
-UBool opt_win = FALSE; // Run with Windows native functions.
-UBool opt_unix = FALSE; // Run with UNIX strcoll, strxfrm functions.
-UBool opt_uselen = FALSE;
-UBool opt_usekeys = FALSE;
-UBool opt_strcmp = FALSE;
-UBool opt_strcmpCPO = FALSE;
-UBool opt_norm = FALSE;
-UBool opt_keygen = FALSE;
-UBool opt_french = FALSE;
-UBool opt_frenchoff = FALSE;
-UBool opt_shifted = FALSE;
-UBool opt_lower = FALSE;
-UBool opt_upper = FALSE;
-UBool opt_case = FALSE;
-int opt_level = 0;
-UBool opt_keyhist = FALSE;
-UBool opt_itertest = FALSE;
-UBool opt_dump = FALSE;
-
-
-
-//
-// Definitions for the command line options
-//
-struct OptSpec {
- const char *name;
- enum {FLAG, NUM, STRING} type;
- void *pVar;
-};
-
-OptSpec opts[] = {
- {"-file", OptSpec::STRING, &opt_fName},
- {"-locale", OptSpec::STRING, &opt_locale},
- {"-langid", OptSpec::NUM, &opt_langid},
- {"-rules", OptSpec::STRING, &opt_rules},
- {"-qsort", OptSpec::FLAG, &opt_qsort},
- {"-binsearch", OptSpec::FLAG, &opt_binsearch},
- {"-iter", OptSpec::FLAG, &opt_itertest},
- {"-win", OptSpec::FLAG, &opt_win},
- {"-unix", OptSpec::FLAG, &opt_unix},
- {"-uselen", OptSpec::FLAG, &opt_uselen},
- {"-usekeys", OptSpec::FLAG, &opt_usekeys},
- {"-strcmp", OptSpec::FLAG, &opt_strcmp},
- {"-strcmpCPO", OptSpec::FLAG, &opt_strcmpCPO},
- {"-norm", OptSpec::FLAG, &opt_norm},
- {"-french", OptSpec::FLAG, &opt_french},
- {"-frenchoff", OptSpec::FLAG, &opt_frenchoff},
- {"-shifted", OptSpec::FLAG, &opt_shifted},
- {"-lower", OptSpec::FLAG, &opt_lower},
- {"-upper", OptSpec::FLAG, &opt_upper},
- {"-case", OptSpec::FLAG, &opt_case},
- {"-level", OptSpec::NUM, &opt_level},
- {"-keyhist", OptSpec::FLAG, &opt_keyhist},
- {"-keygen", OptSpec::FLAG, &opt_keygen},
- {"-loop", OptSpec::NUM, &opt_loopCount},
- {"-iloop", OptSpec::NUM, &opt_iLoopCount},
- {"-terse", OptSpec::FLAG, &opt_terse},
- {"-dump", OptSpec::FLAG, &opt_dump},
- {"-help", OptSpec::FLAG, &opt_help},
- {"-?", OptSpec::FLAG, &opt_help},
- {0, OptSpec::FLAG, 0}
-};
-
-
-//---------------------------------------------------------------------------
-//
-// Global variables pointing to and describing the test file
-//
-//---------------------------------------------------------------------------
-
-//
-// struct Line
-//
-// Each line from the source file (containing a name, presumably) gets
-// one of these structs.
-//
-struct Line {
- UChar *name;
- int len;
- char *winSortKey;
- char *icuSortKey;
- char *unixSortKey;
- char *unixName;
-};
-
-
-
-Line *gFileLines; // Ptr to array of Line structs, one per line in the file.
-int gNumFileLines;
-UCollator *gCol;
-DWORD gWinLCID;
-
-Line **gSortedLines;
-Line **gRandomLines;
-int gCount;
-
-
-
-//---------------------------------------------------------------------------
-//
-// ProcessOptions() Function to read the command line options.
-//
-//---------------------------------------------------------------------------
-UBool ProcessOptions(int argc, const char **argv, OptSpec opts[])
-{
- int i;
- int argNum;
- const char *pArgName;
- OptSpec *pOpt;
-
- for (argNum=1; argNum<argc; argNum++) {
- pArgName = argv[argNum];
- for (pOpt = opts; pOpt->name != 0; pOpt++) {
- if (strcmp(pOpt->name, pArgName) == 0) {
- switch (pOpt->type) {
- case OptSpec::FLAG:
- *(UBool *)(pOpt->pVar) = TRUE;
- break;
- case OptSpec::STRING:
- argNum ++;
- if (argNum >= argc) {
- fprintf(stderr, "value expected for \"%s\" option.\n", pOpt->name);
- return FALSE;
- }
- *(const char **)(pOpt->pVar) = argv[argNum];
- break;
- case OptSpec::NUM:
- argNum ++;
- if (argNum >= argc) {
- fprintf(stderr, "value expected for \"%s\" option.\n", pOpt->name);
- return FALSE;
- }
- char *endp;
- i = strtol(argv[argNum], &endp, 0);
- if (endp == argv[argNum]) {
- fprintf(stderr, "integer value expected for \"%s\" option.\n", pOpt->name);
- return FALSE;
- }
- *(int *)(pOpt->pVar) = i;
- }
- break;
- }
- }
- if (pOpt->name == 0)
- {
- fprintf(stderr, "Unrecognized option \"%s\"\n", pArgName);
- return FALSE;
- }
- }
-return TRUE;
-}
-
-//---------------------------------------------------------------------------------------
-//
-// Comparison functions for use by qsort.
-//
-// Six flavors, ICU or Windows, SortKey or String Compare, Strings with length
-// or null terminated.
-//
-//---------------------------------------------------------------------------------------
-int ICUstrcmpK(const void *a, const void *b) {
- gCount++;
- int t = strcmp((*(Line **)a)->icuSortKey, (*(Line **)b)->icuSortKey);
- return t;
-}
-
-
-int ICUstrcmpL(const void *a, const void *b) {
- gCount++;
- UCollationResult t;
- t = ucol_strcoll(gCol, (*(Line **)a)->name, (*(Line **)a)->len, (*(Line **)b)->name, (*(Line **)b)->len);
- if (t == UCOL_LESS) return -1;
- if (t == UCOL_GREATER) return +1;
- return 0;
-}
-
-
-int ICUstrcmp(const void *a, const void *b) {
- gCount++;
- UCollationResult t;
- t = ucol_strcoll(gCol, (*(Line **)a)->name, -1, (*(Line **)b)->name, -1);
- if (t == UCOL_LESS) return -1;
- if (t == UCOL_GREATER) return +1;
- return 0;
-}
-
-
-int Winstrcmp(const void *a, const void *b) {
- gCount++;
- int t;
- t = CompareStringW(gWinLCID, 0, (*(Line **)a)->name, -1, (*(Line **)b)->name, -1);
- return t-2;
-}
-
-
-int UNIXstrcmp(const void *a, const void *b) {
- gCount++;
- int t;
- t = strcoll((*(Line **)a)->unixName, (*(Line **)b)->unixName);
- return t;
-}
-
-
-int WinstrcmpL(const void *a, const void *b) {
- gCount++;
- int t;
- t = CompareStringW(gWinLCID, 0, (*(Line **)a)->name, (*(Line **)a)->len, (*(Line **)b)->name, (*(Line **)b)->len);
- return t-2;
-}
-
-
-int WinstrcmpK(const void *a, const void *b) {
- gCount++;
- int t = strcmp((*(Line **)a)->winSortKey, (*(Line **)b)->winSortKey);
- return t;
-}
-
-
-//---------------------------------------------------------------------------------------
-//
-// Function for sorting the names (lines) into a random order.
-// Order is based on a hash of the ICU Sort key for the lines
-// The randomized order is used as input for the sorting timing tests.
-//
-//---------------------------------------------------------------------------------------
-int ICURandomCmp(const void *a, const void *b) {
- char *ask = (*(Line **)a)->icuSortKey;
- char *bsk = (*(Line **)b)->icuSortKey;
- int aVal = 0;
- int bVal = 0;
- int retVal;
- while (*ask != 0) {
- aVal += aVal*37 + *ask++;
- }
- while (*bsk != 0) {
- bVal += bVal*37 + *bsk++;
- }
- retVal = -1;
- if (aVal == bVal) {
- retVal = 0;
- }
- else if (aVal > bVal) {
- retVal = 1;
- }
- return retVal;
-}
-
-//---------------------------------------------------------------------------------------
-//
-// doKeyGen() Key Generation Timing Test
-//
-//---------------------------------------------------------------------------------------
-void doKeyGen()
-{
- int line;
- int loops;
- int iLoop;
- int t;
- int len=-1;
-
- // Adjust loop count to compensate for file size. Should be order n
- double dLoopCount = double(opt_loopCount) * (1000. / double(gNumFileLines));
- int adj_loopCount = int(dLoopCount);
- if (adj_loopCount < 1) adj_loopCount = 1;
-
-
- unsigned long startTime = timeGetTime();
-
- if (opt_win) {
- for (loops=0; loops<adj_loopCount; loops++) {
- for (line=0; line < gNumFileLines; line++) {
- if (opt_uselen) {
- len = gFileLines[line].len;
- }
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- t=LCMapStringW(gWinLCID, LCMAP_SORTKEY,
- gFileLines[line].name, len,
- (unsigned short *)gFileLines[line].winSortKey, 5000); // TODO something with length.
- }
- }
- }
- }
- else if (opt_icu)
- {
- for (loops=0; loops<adj_loopCount; loops++) {
- for (line=0; line < gNumFileLines; line++) {
- if (opt_uselen) {
- len = gFileLines[line].len;
- }
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- t = ucol_getSortKey(gCol, gFileLines[line].name, len, (unsigned char *)gFileLines[line].icuSortKey, 5000);
- }
- }
- }
- }
- else if (opt_unix)
- {
- for (loops=0; loops<adj_loopCount; loops++) {
- for (line=0; line < gNumFileLines; line++) {
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- t = strxfrm(gFileLines[line].unixSortKey, gFileLines[line].unixName, 5000);
- }
- }
- }
- }
-
- unsigned long elapsedTime = timeGetTime() - startTime;
- int ns = (int)(float(1000000) * (float)elapsedTime / (float)(adj_loopCount*gNumFileLines));
-
- if (opt_terse == FALSE) {
- printf("Sort Key Generation: total # of keys = %d\n", loops*gNumFileLines);
- printf("Sort Key Generation: time per key = %d ns\n", ns);
- }
- else {
- printf("%d, ", ns);
- }
-
- int totalKeyLen = 0;
- int totalChars = 0;
- for (line=0; line<gNumFileLines; line++) {
- totalChars += u_strlen(gFileLines[line].name);
- if (opt_win) {
- totalKeyLen += strlen(gFileLines[line].winSortKey);
- }
- else if (opt_icu) {
- totalKeyLen += strlen(gFileLines[line].icuSortKey);
- }
- else if (opt_unix) {
- totalKeyLen += strlen(gFileLines[line].unixSortKey);
- }
-
- }
- if (opt_terse == FALSE) {
- printf("Key Length / character = %f\n", (float)totalKeyLen / (float)totalChars);
- } else {
- printf("%f, ", (float)totalKeyLen / (float)totalChars);
- }
-}
-
-
-
-//---------------------------------------------------------------------------------------
-//
-// doBinarySearch() Binary Search timing test. Each name from the list
-// is looked up in the full sorted list of names.
-//
-//---------------------------------------------------------------------------------------
-void doBinarySearch()
-{
-
- gCount = 0;
- int line;
- int loops;
- int iLoop;
- unsigned long elapsedTime;
-
- // Adjust loop count to compensate for file size. Should be order n (lookups) * log n (compares/lookup)
- // Accurate timings do not depend on this being perfect. The correction is just to try to
- // get total running times of about the right order, so the that user doesn't need to
- // manually adjust the loop count for every different file size.
- double dLoopCount = double(opt_loopCount) * 3000. / (log10(gNumFileLines) * double(gNumFileLines));
- if (opt_usekeys) dLoopCount *= 5;
- int adj_loopCount = int(dLoopCount);
- if (adj_loopCount < 1) adj_loopCount = 1;
-
-
- for (;;) { // not really a loop, just allows "break" to work, to simplify
- // inadvertantly running more than one test through here.
- if (opt_strcmp || opt_strcmpCPO)
- {
- unsigned long startTime = timeGetTime();
- typedef int32_t (U_EXPORT2 *PF)(const UChar *, const UChar *);
- PF pf = u_strcmp;
- if (opt_strcmpCPO) {pf = u_strcmpCodePointOrder;}
- if (opt_strcmp && opt_win) {pf = (PF)wcscmp;} // Damn the difference between int32_t and int
- // which forces the use of a cast here.
-
- int r;
- for (loops=0; loops<adj_loopCount; loops++) {
-
- for (line=0; line < gNumFileLines; line++) {
- int hi = gNumFileLines-1;
- int lo = 0;
- int guess = -1;
- for (;;) {
- int newGuess = (hi + lo) / 2;
- if (newGuess == guess)
- break;
- guess = newGuess;
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = (*pf)((gSortedLines[line])->name, (gSortedLines[guess])->name);
- }
- gCount++;
- if (r== 0)
- break;
- if (r < 0)
- hi = guess;
- else
- lo = guess;
- }
- }
- }
- elapsedTime = timeGetTime() - startTime;
- break;
- }
-
-
- if (opt_icu)
- {
- unsigned long startTime = timeGetTime();
- UCollationResult r;
- for (loops=0; loops<adj_loopCount; loops++) {
-
- for (line=0; line < gNumFileLines; line++) {
- int lineLen = -1;
- int guessLen = -1;
- if (opt_uselen) {
- lineLen = (gSortedLines[line])->len;
- }
- int hi = gNumFileLines-1;
- int lo = 0;
- int guess = -1;
- for (;;) {
- int newGuess = (hi + lo) / 2;
- if (newGuess == guess)
- break;
- guess = newGuess;
- int ri;
- if (opt_usekeys) {
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- ri = strcmp((gSortedLines[line])->icuSortKey, (gSortedLines[guess])->icuSortKey);
- }
- gCount++;
- r=UCOL_GREATER; if(ri<0) {r=UCOL_LESS;} else if (ri==0) {r=UCOL_EQUAL;}
- }
- else
- {
- if (opt_uselen) {
- guessLen = (gSortedLines[guess])->len;
- }
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = ucol_strcoll(gCol, (gSortedLines[line])->name, lineLen, (gSortedLines[guess])->name, guessLen);
- }
- gCount++;
- }
- if (r== UCOL_EQUAL)
- break;
- if (r == UCOL_LESS)
- hi = guess;
- else
- lo = guess;
- }
- }
- }
- elapsedTime = timeGetTime() - startTime;
- break;
- }
-
- if (opt_win)
- {
- unsigned long startTime = timeGetTime();
- int r;
- for (loops=0; loops<adj_loopCount; loops++) {
-
- for (line=0; line < gNumFileLines; line++) {
- int lineLen = -1;
- int guessLen = -1;
- if (opt_uselen) {
- lineLen = (gSortedLines[line])->len;
- }
- int hi = gNumFileLines-1;
- int lo = 0;
- int guess = -1;
- for (;;) {
- int newGuess = (hi + lo) / 2;
- if (newGuess == guess)
- break;
- guess = newGuess;
- if (opt_usekeys) {
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = strcmp((gSortedLines[line])->winSortKey, (gSortedLines[guess])->winSortKey);
- }
- gCount++;
- r+=2;
- }
- else
- {
- if (opt_uselen) {
- guessLen = (gSortedLines[guess])->len;
- }
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = CompareStringW(gWinLCID, 0, (gSortedLines[line])->name, lineLen, (gSortedLines[guess])->name, guessLen);
- }
- if (r == 0) {
- if (opt_terse == FALSE) {
- fprintf(stderr, "Error returned from Windows CompareStringW.\n");
- }
- exit(-1);
- }
- gCount++;
- }
- if (r== 2) // strings ==
- break;
- if (r == 1) // line < guess
- hi = guess;
- else // line > guess
- lo = guess;
- }
- }
- }
- elapsedTime = timeGetTime() - startTime;
- break;
- }
-
- if (opt_unix)
- {
- unsigned long startTime = timeGetTime();
- int r;
- for (loops=0; loops<adj_loopCount; loops++) {
-
- for (line=0; line < gNumFileLines; line++) {
- int hi = gNumFileLines-1;
- int lo = 0;
- int guess = -1;
- for (;;) {
- int newGuess = (hi + lo) / 2;
- if (newGuess == guess)
- break;
- guess = newGuess;
- if (opt_usekeys) {
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = strcmp((gSortedLines[line])->unixSortKey, (gSortedLines[guess])->unixSortKey);
- }
- gCount++;
- }
- else
- {
- for (iLoop=0; iLoop < opt_iLoopCount; iLoop++) {
- r = strcoll((gSortedLines[line])->unixName, (gSortedLines[guess])->unixName);
- }
- errno = 0;
- if (errno != 0) {
- fprintf(stderr, "Error %d returned from strcoll.\n", errno);
- exit(-1);
- }
- gCount++;
- }
- if (r == 0) // strings ==
- break;
- if (r < 0) // line < guess
- hi = guess;
- else // line > guess
- lo = guess;
- }
- }
- }
- elapsedTime = timeGetTime() - startTime;
- break;
- }
- break;
- }
-
- int ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- if (opt_terse == FALSE) {
- printf("binary search: total # of string compares = %d\n", gCount);
- printf("binary search: compares per loop = %d\n", gCount / loops);
- printf("binary search: time per compare = %d ns\n", ns);
- } else {
- printf("%d, ", ns);
- }
-
-}
-
-
-
-
-//---------------------------------------------------------------------------------------
-//
-// doQSort() The quick sort timing test. Uses the C library qsort function.
-//
-//---------------------------------------------------------------------------------------
-void doQSort() {
- int i;
- Line **sortBuf = new Line *[gNumFileLines];
-
- // Adjust loop count to compensate for file size. QSort should be n log(n)
- double dLoopCount = double(opt_loopCount) * 3000. / (log10(gNumFileLines) * double(gNumFileLines));
- if (opt_usekeys) dLoopCount *= 5;
- int adj_loopCount = int(dLoopCount);
- if (adj_loopCount < 1) adj_loopCount = 1;
-
-
- gCount = 0;
- unsigned long startTime = timeGetTime();
- if (opt_win && opt_usekeys) {
- for (i=0; i<opt_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), WinstrcmpK);
- }
- }
-
- else if (opt_win && opt_uselen) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), WinstrcmpL);
- }
- }
-
-
- else if (opt_win && !opt_uselen) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), Winstrcmp);
- }
- }
-
- else if (opt_icu && opt_usekeys) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), ICUstrcmpK);
- }
- }
-
- else if (opt_icu && opt_uselen) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), ICUstrcmpL);
- }
- }
-
-
- else if (opt_icu && !opt_uselen) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), ICUstrcmp);
- }
- }
-
- else if (opt_unix && !opt_usekeys) {
- for (i=0; i<adj_loopCount; i++) {
- memcpy(sortBuf, gRandomLines, gNumFileLines * sizeof(Line *));
- qsort(sortBuf, gNumFileLines, sizeof(Line *), UNIXstrcmp);
- }
- }
-
- unsigned long elapsedTime = timeGetTime() - startTime;
- int ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- if (opt_terse == FALSE) {
- printf("qsort: total # of string compares = %d\n", gCount);
- printf("qsort: time per compare = %d ns\n", ns);
- } else {
- printf("%d, ", ns);
- }
-};
-
-
-
-//---------------------------------------------------------------------------------------
-//
-// doKeyHist() Output a table of data for
-// average sort key size vs. string length.
-//
-//---------------------------------------------------------------------------------------
-void doKeyHist() {
- int i;
- int maxLen = 0;
-
- // Find the maximum string length
- for (i=0; i<gNumFileLines; i++) {
- if (gFileLines[i].len > maxLen) maxLen = gFileLines[i].len;
- }
-
- // Allocate arrays to hold the histogram data
- int *accumulatedLen = new int[maxLen+1];
- int *numKeysOfSize = new int[maxLen+1];
- for (i=0; i<=maxLen; i++) {
- accumulatedLen[i] = 0;
- numKeysOfSize[i] = 0;
- }
-
- // Fill the arrays...
- for (i=0; i<gNumFileLines; i++) {
- int len = gFileLines[i].len;
- accumulatedLen[len] += strlen(gFileLines[i].icuSortKey);
- numKeysOfSize[len] += 1;
- }
-
- // And write out averages
- printf("String Length, Avg Key Length, Avg Key Len per char\n");
- for (i=1; i<=maxLen; i++) {
- if (numKeysOfSize[i] > 0) {
- printf("%d, %f, %f\n", i, (float)accumulatedLen[i] / (float)numKeysOfSize[i],
- (float)accumulatedLen[i] / (float)(numKeysOfSize[i] * i));
- }
- }
-}
-
-//---------------------------------------------------------------------------------------
-//
-// doForwardIterTest(UBool) Forward iteration test
-// argument null-terminated string used
-//
-//---------------------------------------------------------------------------------------
-void doForwardIterTest(UBool haslen) {
- int count = 0;
-
- UErrorCode error = U_ZERO_ERROR;
- printf("\n\nPerforming forward iteration performance test with ");
-
- if (haslen) {
- printf("non-null terminated data -----------\n");
- }
- else {
- printf("null terminated data -----------\n");
- }
- printf("performance test on strings from file -----------\n");
-
- UChar dummytext[] = {0, 0};
- UCollationElements *iter = ucol_openElements(gCol, NULL, 0, &error);
- ucol_setText(iter, dummytext, 1, &error);
-
- gCount = 0;
- unsigned long startTime = timeGetTime();
- while (count < opt_loopCount) {
- int linecount = 0;
- while (linecount < gNumFileLines) {
- UChar *str = gFileLines[linecount].name;
- int strlen = haslen?gFileLines[linecount].len:-1;
- ucol_setText(iter, str, strlen, &error);
- while (ucol_next(iter, &error) != UCOL_NULLORDER) {
- gCount++;
- }
-
- linecount ++;
- }
- count ++;
- }
- unsigned long elapsedTime = timeGetTime() - startTime;
- printf("elapsedTime %d\n", elapsedTime);
-
- // empty loop recalculation
- count = 0;
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int linecount = 0;
- while (linecount < gNumFileLines) {
- UChar *str = gFileLines[linecount].name;
- int strlen = haslen?gFileLines[linecount].len:-1;
- ucol_setText(iter, str, strlen, &error);
- linecount ++;
- }
- count ++;
- }
- elapsedTime -= (timeGetTime() - startTime);
- printf("elapsedTime %d\n", elapsedTime);
-
- ucol_closeElements(iter);
-
- int ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- printf("Total number of strings compared %d in %d loops\n", gNumFileLines,
- opt_loopCount);
- printf("Average time per ucol_next() nano seconds %d\n", ns);
-
- printf("performance test on skipped-5 concatenated strings from file -----------\n");
-
- UChar *str;
- int strlen = 0;
- // appending all the strings
- int linecount = 0;
- while (linecount < gNumFileLines) {
- strlen += haslen?gFileLines[linecount].len:
- u_strlen(gFileLines[linecount].name);
- linecount ++;
- }
- str = (UChar *)malloc(sizeof(UChar) * strlen);
- int strindex = 0;
- linecount = 0;
- while (strindex < strlen) {
- int len = 0;
- len += haslen?gFileLines[linecount].len:
- u_strlen(gFileLines[linecount].name);
- memcpy(str + strindex, gFileLines[linecount].name,
- sizeof(UChar) * len);
- strindex += len;
- linecount ++;
- }
-
- printf("Total size of strings %d\n", strlen);
-
- gCount = 0;
- count = 0;
-
- if (!haslen) {
- strlen = -1;
- }
- iter = ucol_openElements(gCol, str, strlen, &error);
- if (!haslen) {
- strlen = u_strlen(str);
- }
- strlen -= 5; // any left over characters are not iterated,
- // this is to ensure the backwards and forwards iterators
- // gets the same position
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int count5 = 5;
- strindex = 0;
- ucol_setOffset(iter, strindex, &error);
- while (TRUE) {
- if (ucol_next(iter, &error) == UCOL_NULLORDER) {
- break;
- }
- gCount++;
- count5 --;
- if (count5 == 0) {
- strindex += 10;
- if (strindex > strlen) {
- break;
- }
- ucol_setOffset(iter, strindex, &error);
- count5 = 5;
- }
- }
- count ++;
- }
-
- elapsedTime = timeGetTime() - startTime;
- printf("elapsedTime %d\n", elapsedTime);
-
- // empty loop recalculation
- int tempgCount = 0;
- count = 0;
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int count5 = 5;
- strindex = 0;
- ucol_setOffset(iter, strindex, &error);
- while (TRUE) {
- tempgCount ++;
- count5 --;
- if (count5 == 0) {
- strindex += 10;
- if (strindex > strlen) {
- break;
- }
- ucol_setOffset(iter, strindex, &error);
- count5 = 5;
- }
- }
- count ++;
- }
- elapsedTime -= (timeGetTime() - startTime);
- printf("elapsedTime %d\n", elapsedTime);
-
- ucol_closeElements(iter);
-
- printf("gCount %d\n", gCount);
- ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- printf("Average time per ucol_next() nano seconds %d\n", ns);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// doBackwardIterTest(UBool) Backwards iteration test
-// argument null-terminated string used
-//
-//---------------------------------------------------------------------------------------
-void doBackwardIterTest(UBool haslen) {
- int count = 0;
- UErrorCode error = U_ZERO_ERROR;
- printf("\n\nPerforming backward iteration performance test with ");
-
- if (haslen) {
- printf("non-null terminated data -----------\n");
- }
- else {
- printf("null terminated data -----------\n");
- }
-
- printf("performance test on strings from file -----------\n");
-
- UCollationElements *iter = ucol_openElements(gCol, NULL, 0, &error);
- UChar dummytext[] = {0, 0};
- ucol_setText(iter, dummytext, 1, &error);
-
- gCount = 0;
- unsigned long startTime = timeGetTime();
- while (count < opt_loopCount) {
- int linecount = 0;
- while (linecount < gNumFileLines) {
- UChar *str = gFileLines[linecount].name;
- int strlen = haslen?gFileLines[linecount].len:-1;
- ucol_setText(iter, str, strlen, &error);
- while (ucol_previous(iter, &error) != UCOL_NULLORDER) {
- gCount ++;
- }
-
- linecount ++;
- }
- count ++;
- }
- unsigned long elapsedTime = timeGetTime() - startTime;
-
- printf("elapsedTime %d\n", elapsedTime);
-
- // empty loop recalculation
- count = 0;
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int linecount = 0;
- while (linecount < gNumFileLines) {
- UChar *str = gFileLines[linecount].name;
- int strlen = haslen?gFileLines[linecount].len:-1;
- ucol_setText(iter, str, strlen, &error);
- linecount ++;
- }
- count ++;
- }
- elapsedTime -= (timeGetTime() - startTime);
-
- printf("elapsedTime %d\n", elapsedTime);
- ucol_closeElements(iter);
-
- int ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- printf("Total number of strings compared %d in %d loops\n", gNumFileLines,
- opt_loopCount);
- printf("Average time per ucol_previous() nano seconds %d\n", ns);
-
- printf("performance test on skipped-5 concatenated strings from file -----------\n");
-
- UChar *str;
- int strlen = 0;
- // appending all the strings
- int linecount = 0;
- while (linecount < gNumFileLines) {
- strlen += haslen?gFileLines[linecount].len:
- u_strlen(gFileLines[linecount].name);
- linecount ++;
- }
- str = (UChar *)malloc(sizeof(UChar) * strlen);
- int strindex = 0;
- linecount = 0;
- while (strindex < strlen) {
- int len = 0;
- len += haslen?gFileLines[linecount].len:
- u_strlen(gFileLines[linecount].name);
- memcpy(str + strindex, gFileLines[linecount].name,
- sizeof(UChar) * len);
- strindex += len;
- linecount ++;
- }
-
- printf("Total size of strings %d\n", strlen);
-
- gCount = 0;
- count = 0;
-
- if (!haslen) {
- strlen = -1;
- }
-
- iter = ucol_openElements(gCol, str, strlen, &error);
- if (!haslen) {
- strlen = u_strlen(str);
- }
-
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int count5 = 5;
- strindex = 5;
- ucol_setOffset(iter, strindex, &error);
- while (TRUE) {
- if (ucol_previous(iter, &error) == UCOL_NULLORDER) {
- break;
- }
- gCount ++;
- count5 --;
- if (count5 == 0) {
- strindex += 10;
- if (strindex > strlen) {
- break;
- }
- ucol_setOffset(iter, strindex, &error);
- count5 = 5;
- }
- }
- count ++;
- }
-
- elapsedTime = timeGetTime() - startTime;
- printf("elapsedTime %d\n", elapsedTime);
-
- // empty loop recalculation
- count = 0;
- int tempgCount = 0;
- startTime = timeGetTime();
- while (count < opt_loopCount) {
- int count5 = 5;
- strindex = 5;
- ucol_setOffset(iter, strindex, &error);
- while (TRUE) {
- tempgCount ++;
- count5 --;
- if (count5 == 0) {
- strindex += 10;
- if (strindex > strlen) {
- break;
- }
- ucol_setOffset(iter, strindex, &error);
- count5 = 5;
- }
- }
- count ++;
- }
- elapsedTime -= (timeGetTime() - startTime);
- printf("elapsedTime %d\n", elapsedTime);
- ucol_closeElements(iter);
-
- printf("gCount %d\n", gCount);
- ns = (int)(float(1000000) * (float)elapsedTime / (float)gCount);
- printf("Average time per ucol_previous() nano seconds %d\n", ns);
-}
-
-//---------------------------------------------------------------------------------------
-//
-// doIterTest() Iteration test
-//
-//---------------------------------------------------------------------------------------
-void doIterTest() {
- doForwardIterTest(opt_uselen);
- doBackwardIterTest(opt_uselen);
-}
-
-
-//----------------------------------------------------------------------------------------
-//
-// UnixConvert -- Convert the lines of the file to the encoding for UNIX
-// Since it appears that Unicode support is going in the general
-// direction of the use of UTF-8 locales, that is the approach
-// that is used here.
-//
-//----------------------------------------------------------------------------------------
-void UnixConvert() {
- int line;
-
- UConverter *cvrtr; // An ICU code page converter.
- UErrorCode status = U_ZERO_ERROR;
-
-
- cvrtr = ucnv_open("utf-8", &status); // we are just doing UTF-8 locales for now.
- if (U_FAILURE(status)) {
- fprintf(stderr, "ICU Converter open failed.: %d\n", &status);
- exit(-1);
- }
-
- for (line=0; line < gNumFileLines; line++) {
- int sizeNeeded = ucnv_fromUChars(cvrtr,
- 0, // ptr to target buffer.
- 0, // length of target buffer.
- gFileLines[line].name,
- -1, // source is null terminated
- &status);
- if (status != U_BUFFER_OVERFLOW_ERROR && status != U_ZERO_ERROR) {
- fprintf(stderr, "Conversion from Unicode, something is wrong.\n");
- exit(-1);
- }
- status = U_ZERO_ERROR;
- gFileLines[line].unixName = new char[sizeNeeded+1];
- sizeNeeded = ucnv_fromUChars(cvrtr,
- gFileLines[line].unixName, // ptr to target buffer.
- sizeNeeded+1, // length of target buffer.
- gFileLines[line].name,
- -1, // source is null terminated
- &status);
- if (U_FAILURE(status)) {
- fprintf(stderr, "ICU Conversion Failed.: %d\n", status);
- exit(-1);
- }
- gFileLines[line].unixName[sizeNeeded] = 0;
- };
- ucnv_close(cvrtr);
-}
-
-
-//----------------------------------------------------------------------------------------
-//
-// class UCharFile Class to hide all the gorp to read a file in
-// and produce a stream of UChars.
-//
-//----------------------------------------------------------------------------------------
-class UCharFile {
-public:
- UCharFile(const char *fileName);
- ~UCharFile();
- UChar get();
- UBool eof() {return fEof;};
- UBool error() {return fError;};
-
-private:
- UCharFile (const UCharFile &other) {}; // No copy constructor.
- UCharFile & operator = (const UCharFile &other) {return *this;}; // No assignment op
-
- FILE *fFile;
- const char *fName;
- UBool fEof;
- UBool fError;
- UChar fPending2ndSurrogate;
-
- enum {UTF16LE, UTF16BE, UTF8} fEncoding;
-};
-
-UCharFile::UCharFile(const char * fileName) {
- fEof = FALSE;
- fError = FALSE;
- fName = fileName;
- fFile = fopen(fName, "rb");
- fPending2ndSurrogate = 0;
- if (fFile == NULL) {
- fprintf(stderr, "Can not open file \"%s\"\n", opt_fName);
- fError = TRUE;
- return;
- }
- //
- // Look for the byte order mark at the start of the file.
- //
- int BOMC1, BOMC2, BOMC3;
- BOMC1 = fgetc(fFile);
- BOMC2 = fgetc(fFile);
-
- if (BOMC1 == 0xff && BOMC2 == 0xfe) {
- fEncoding = UTF16LE; }
- else if (BOMC1 == 0xfe && BOMC2 == 0xff) {
- fEncoding = UTF16BE; }
- else if (BOMC1 == 0xEF && BOMC2 == 0xBB && (BOMC3 = fgetc(fFile)) == 0xBF ) {
- fEncoding = UTF8; }
- else
- {
- fprintf(stderr, "collperf: file \"%s\" encoding must be UTF-8 or UTF-16, and "
- "must include a BOM.\n", fileName);
- fError = true;
- return;
- }
-}
-
-
-UCharFile::~UCharFile() {
- fclose(fFile);
-}
-
-
-
-UChar UCharFile::get() {
- UChar c;
- switch (fEncoding) {
- case UTF16LE:
- {
- int cL, cH;
- cL = fgetc(fFile);
- cH = fgetc(fFile);
- c = cL | (cH << 8);
- if (cH == EOF) {
- c = 0;
- fEof = TRUE;
- }
- break;
- }
- case UTF16BE:
- {
- int cL, cH;
- cH = fgetc(fFile);
- cL = fgetc(fFile);
- c = cL | (cH << 8);
- if (cL == EOF) {
- c = 0;
- fEof = TRUE;
- }
- break;
- }
- case UTF8:
- {
- if (fPending2ndSurrogate != 0) {
- c = fPending2ndSurrogate;
- fPending2ndSurrogate = 0;
- break;
- }
-
- int ch = fgetc(fFile); // Note: c and ch are separate cause eof test doesn't work on UChar type.
- if (ch == EOF) {
- c = 0;
- fEof = TRUE;
- break;
- }
-
- if (ch <= 0x7f) {
- // It's ascii. No further utf-8 conversion.
- c = ch;
- break;
- }
-
- // Figure out the lenght of the char and read the rest of the bytes
- // into a temp array.
- int nBytes;
- if (ch >= 0xF0) {nBytes=4;}
- else if (ch >= 0xE0) {nBytes=3;}
- else if (ch >= 0xC0) {nBytes=2;}
- else {
- fprintf(stderr, "utf-8 encoded file contains corrupt data.\n");
- fError = TRUE;
- return 0;
- }
-
- unsigned char bytes[10];
- bytes[0] = (unsigned char)ch;
- int i;
- for (i=1; i<nBytes; i++) {
- bytes[i] = fgetc(fFile);
- if (bytes[i] < 0x80 || bytes[i] >= 0xc0) {
- fprintf(stderr, "utf-8 encoded file contains corrupt data.\n");
- fError = TRUE;
- return 0;
- }
- }
-
- // Convert the bytes from the temp array to a Unicode char.
- i = 0;
- uint32_t cp;
- UTF8_NEXT_CHAR_UNSAFE(bytes, i, cp);
- c = (UChar)cp;
-
- if (cp >= 0x10000) {
- // The code point needs to be broken up into a utf-16 surrogate pair.
- // Process first half this time through the main loop, and
- // remember the other half for the next time through.
- UChar utf16Buf[3];
- i = 0;
- UTF16_APPEND_CHAR_UNSAFE(utf16Buf, i, cp);
- fPending2ndSurrogate = utf16Buf[1];
- c = utf16Buf[0];
- }
- break;
- };
- }
- return c;
-}
-
-//----------------------------------------------------------------------------------------
-//
-// openRulesCollator - Command line specified a rules file. Read it in
-// and open a collator with it.
-//
-//----------------------------------------------------------------------------------------
-UCollator *openRulesCollator() {
- UCharFile f(opt_rules);
- if (f.error()) {
- return 0;
- }
-
- int bufLen = 10000;
- UChar *buf = (UChar *)malloc(bufLen * sizeof(UChar));
- int i = 0;
-
- for(;;) {
- buf[i] = f.get();
- if (f.eof()) {
- break;
- }
- if (f.error()) {
- return 0;
- }
- i++;
- if (i >= bufLen) {
- bufLen += 10000;
- buf = (UChar *)realloc(buf, bufLen);
- }
- }
- buf[i] = 0;
-
- UErrorCode status = U_ZERO_ERROR;
- UCollator *coll = ucol_openRules(buf, u_strlen(buf), UCOL_OFF,
- UCOL_DEFAULT_STRENGTH, NULL, &status);
- if (U_FAILURE(status)) {
- fprintf(stderr, "ICU ucol_openRules() open failed.: %d\n", status);
- return 0;
- }
- free(buf);
- return coll;
-}
-
-
-
-
-
-//----------------------------------------------------------------------------------------
-//
-// Main -- process command line, read in and pre-process the test file,
-// call other functions to do the actual tests.
-//
-//----------------------------------------------------------------------------------------
-int main(int argc, const char** argv) {
- if (ProcessOptions(argc, argv, opts) != TRUE || opt_help || opt_fName == 0) {
- printf(gUsageString);
- exit (1);
- }
-
- // Make sure that we've only got one API selected.
- if (opt_unix || opt_win) opt_icu = FALSE;
- if (opt_unix) opt_win = FALSE;
-
- //
- // Set up an ICU collator
- //
- UErrorCode status = U_ZERO_ERROR;
-
- if (opt_rules != 0) {
- gCol = openRulesCollator();
- if (gCol == 0) {return -1;}
- }
- else {
- gCol = ucol_open(opt_locale, &status);
- if (U_FAILURE(status)) {
- fprintf(stderr, "Collator creation failed.: %d\n", status);
- return -1;
- }
- }
- if (status==U_USING_DEFAULT_WARNING && opt_terse==FALSE) {
- fprintf(stderr, "Warning, U_USING_DEFAULT_WARNING for %s\n", opt_locale);
- }
- if (status==U_USING_FALLBACK_WARNING && opt_terse==FALSE) {
- fprintf(stderr, "Warning, U_USING_FALLBACK_ERROR for %s\n", opt_locale);
- }
-
- if (opt_norm) {
- ucol_setAttribute(gCol, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
- }
- if (opt_french && opt_frenchoff) {
- fprintf(stderr, "collperf: Error, specified both -french and -frenchoff options.");
- exit(-1);
- }
- if (opt_french) {
- ucol_setAttribute(gCol, UCOL_FRENCH_COLLATION, UCOL_ON, &status);
- }
- if (opt_frenchoff) {
- ucol_setAttribute(gCol, UCOL_FRENCH_COLLATION, UCOL_OFF, &status);
- }
- if (opt_lower) {
- ucol_setAttribute(gCol, UCOL_CASE_FIRST, UCOL_LOWER_FIRST, &status);
- }
- if (opt_upper) {
- ucol_setAttribute(gCol, UCOL_CASE_FIRST, UCOL_UPPER_FIRST, &status);
- }
- if (opt_case) {
- ucol_setAttribute(gCol, UCOL_CASE_LEVEL, UCOL_ON, &status);
- }
- if (opt_shifted) {
- ucol_setAttribute(gCol, UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED, &status);
- }
- if (opt_level != 0) {
- switch (opt_level) {
- case 1:
- ucol_setAttribute(gCol, UCOL_STRENGTH, UCOL_PRIMARY, &status);
- break;
- case 2:
- ucol_setAttribute(gCol, UCOL_STRENGTH, UCOL_SECONDARY, &status);
- break;
- case 3:
- ucol_setAttribute(gCol, UCOL_STRENGTH, UCOL_TERTIARY, &status);
- break;
- case 4:
- ucol_setAttribute(gCol, UCOL_STRENGTH, UCOL_QUATERNARY, &status);
- break;
- case 5:
- ucol_setAttribute(gCol, UCOL_STRENGTH, UCOL_IDENTICAL, &status);
- break;
- default:
- fprintf(stderr, "-level param must be between 1 and 5\n");
- exit(-1);
- }
- }
-
- if (U_FAILURE(status)) {
- fprintf(stderr, "Collator attribute setting failed.: %d\n", status);
- return -1;
- }
-
-
- //
- // Set up a Windows LCID
- //
- if (opt_langid != 0) {
- gWinLCID = MAKELCID(opt_langid, SORT_DEFAULT);
- }
- else {
- gWinLCID = uloc_getLCID(opt_locale);
- }
-
-
- //
- // Set the UNIX locale
- //
- if (opt_unix) {
- if (setlocale(LC_ALL, opt_locale) == 0) {
- fprintf(stderr, "setlocale(LC_ALL, %s) failed.\n", opt_locale);
- exit(-1);
- }
- }
-
- // Read in the input file.
- // File assumed to be utf-16.
- // Lines go onto heap buffers. Global index array to line starts is created.
- // Lines themselves are null terminated.
- //
-
- UCharFile f(opt_fName);
- if (f.error()) {
- exit(-1);
- }
-
- const int MAXLINES = 40000;
- gFileLines = new Line[MAXLINES];
- UChar buf[1024];
- int column = 0;
-
- // Read the file, split into lines, and save in memory.
- // Loop runs once per utf-16 value from the input file,
- // (The number of bytes read from file per loop iteration depends on external encoding.)
- for (;;) {
-
- UChar c = f.get();
- if (f.error()){
- exit(-1);
- }
-
-
- // We now have a good UTF-16 value in c.
-
- // Watch for CR, LF, EOF; these finish off a line.
- if (c == 0xd) {
- continue;
- }
-
- if (f.eof() || c == 0x0a || c==0x2028) { // Unipad inserts 2028 line separators!
- buf[column++] = 0;
- if (column > 1) {
- gFileLines[gNumFileLines].name = new UChar[column];
- gFileLines[gNumFileLines].len = column-1;
- memcpy(gFileLines[gNumFileLines].name, buf, column * sizeof(UChar));
- gNumFileLines++;
- column = 0;
- if (gNumFileLines >= MAXLINES) {
- fprintf(stderr, "File too big. Max number of lines is %d\n", MAXLINES);
- exit(-1);
- }
-
- }
- if (c == 0xa || c == 0x2028)
- continue;
- else
- break; // EOF
- }
- buf[column++] = c;
- if (column >= 1023)
- {
- static UBool warnFlag = TRUE;
- if (warnFlag) {
- fprintf(stderr, "Warning - file line longer than 1023 chars truncated.\n");
- warnFlag = FALSE;
- }
- column--;
- }
- }
-
- if (opt_terse == FALSE) {
- printf("file \"%s\", %d lines.\n", opt_fName, gNumFileLines);
- }
-
-
- // Convert the lines to the UNIX encoding.
- if (opt_unix) {
- UnixConvert();
- }
-
- //
- // Pre-compute ICU sort keys for the lines of the file.
- //
- int line;
- int t;
-
- for (line=0; line<gNumFileLines; line++) {
- t = ucol_getSortKey(gCol, gFileLines[line].name, -1, (unsigned char *)buf, sizeof(buf));
- gFileLines[line].icuSortKey = new char[t];
-
- if (t > sizeof(buf)) {
- t = ucol_getSortKey(gCol, gFileLines[line].name, -1, (unsigned char *)gFileLines[line].icuSortKey , t);
- }
- else
- {
- memcpy(gFileLines[line].icuSortKey, buf, t);
- }
- }
-
-
-
- //
- // Pre-compute Windows sort keys for the lines of the file.
- //
- for (line=0; line<gNumFileLines; line++) {
- t=LCMapStringW(gWinLCID, LCMAP_SORTKEY, gFileLines[line].name, -1, buf, sizeof(buf));
- gFileLines[line].winSortKey = new char[t];
- if (t > sizeof(buf)) {
- t = LCMapStringW(gWinLCID, LCMAP_SORTKEY, gFileLines[line].name, -1, (unsigned short *)(gFileLines[line].winSortKey), t);
- }
- else
- {
- memcpy(gFileLines[line].winSortKey, buf, t);
- }
- }
-
- //
- // Pre-compute UNIX sort keys for the lines of the file.
- //
- if (opt_unix) {
- for (line=0; line<gNumFileLines; line++) {
- t=strxfrm((char *)buf, gFileLines[line].unixName, sizeof(buf));
- gFileLines[line].unixSortKey = new char[t];
- if (t > sizeof(buf)) {
- t = strxfrm(gFileLines[line].unixSortKey, gFileLines[line].unixName, sizeof(buf));
- }
- else
- {
- memcpy(gFileLines[line].unixSortKey, buf, t);
- }
- }
- }
-
-
- //
- // Dump file lines, CEs, Sort Keys if requested.
- //
- if (opt_dump) {
- int i;
- for (line=0; line<gNumFileLines; line++) {
- for (i=0;;i++) {
- UChar c = gFileLines[line].name[i];
- if (c == 0)
- break;
- if (c < 0x20 || c > 0x7e) {
- printf("\\u%.4x", c);
- }
- else {
- printf("%c", c);
- }
- }
- printf("\n");
-
- printf(" CEs: ");
- UCollationElements *CEiter = ucol_openElements(gCol, gFileLines[line].name, -1, &status);
- int32_t ce;
- i = 0;
- for (;;) {
- ce = ucol_next(CEiter, &status);
- if (ce == UCOL_NULLORDER) {
- break;
- }
- printf(" %.8x", ce);
- if (++i > 8) {
- printf("\n ");
- i = 0;
- }
- }
- printf("\n");
- ucol_closeElements(CEiter);
-
-
- printf(" ICU Sort Key: ");
- for (i=0; ; i++) {
- unsigned char c = gFileLines[line].icuSortKey[i];
- printf("%02x ", c);
- if (c == 0) {
- break;
- }
- if (i > 0 && i % 20 == 0) {
- printf("\n ");
- }
- }
- printf("\n");
- }
- }
-
-
- //
- // Pre-sort the lines.
- //
- int i;
- gSortedLines = new Line *[gNumFileLines];
- for (i=0; i<gNumFileLines; i++) {
- gSortedLines[i] = &gFileLines[i];
- }
-
- if (opt_win) {
- qsort(gSortedLines, gNumFileLines, sizeof(Line *), Winstrcmp);
- }
- else if (opt_unix) {
- qsort(gSortedLines, gNumFileLines, sizeof(Line *), UNIXstrcmp);
- }
- else /* ICU */
- {
- qsort(gSortedLines, gNumFileLines, sizeof(Line *), ICUstrcmp);
- }
-
-
- //
- // Make up a randomized order, will be used for sorting tests.
- //
- gRandomLines = new Line *[gNumFileLines];
- for (i=0; i<gNumFileLines; i++) {
- gRandomLines[i] = &gFileLines[i];
- }
- qsort(gRandomLines, gNumFileLines, sizeof(Line *), ICURandomCmp);
-
-
-
-
- //
- // We've got the file read into memory. Go do something with it.
- //
-
- if (opt_qsort) doQSort();
- if (opt_binsearch) doBinarySearch();
- if (opt_keygen) doKeyGen();
- if (opt_keyhist) doKeyHist();
- if (opt_itertest) doIterTest();
-
- return 0;
-
-}
diff --git a/Build/source/libs/icu-xetex/test/collperf/collperf.dsp b/Build/source/libs/icu-xetex/test/collperf/collperf.dsp
deleted file mode 100644
index 4fc8ded9666..00000000000
--- a/Build/source/libs/icu-xetex/test/collperf/collperf.dsp
+++ /dev/null
@@ -1,160 +0,0 @@
-# Microsoft Developer Studio Project File - Name="collperf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=collperf - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "collperf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "collperf.mak" CFG="collperf - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "collperf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "collperf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "collperf - Win64 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "collperf - Win64 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "collperf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /Ob2 /I "..\..\..\include" /I "..\..\tools\ctestfw" /I "..\..\common" /I "..\..\i18n" /I "..\..\tools\toolutil" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 icuuc.lib icuin.lib ctestfw.lib icutu.lib kernel32.lib user32.lib advapi32.lib shell32.lib winmm.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\lib\\"
-
-!ELSEIF "$(CFG)" == "collperf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /I "..\..\tools\ctestfw" /I "..\..\common" /I "..\..\i18n" /I "..\..\tools\toolutil" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 icuucd.lib icuind.lib icutud.lib winmm.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib\\"
-
-!ELSEIF "$(CFG)" == "collperf - Win64 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Op /I "..\..\..\include" /I "..\..\tools\ctestfw" /I "..\..\common" /I "..\..\i18n" /I "..\..\tools\toolutil" /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /Wp64 /Zm600 /c
-# SUBTRACT CPP /YX
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IX86 /machine:IA64
-# ADD LINK32 icuuc.lib icuin.lib ctestfw.lib icutu.lib kernel32.lib user32.lib advapi32.lib shell32.lib winmm.lib /nologo /subsystem:console /machine:IX86 /libpath:"..\..\..\lib\\" /machine:IA64
-
-!ELSEIF "$(CFG)" == "collperf - Win64 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Op /I "..\..\..\include" /I "..\..\tools\ctestfw" /I "..\..\common" /I "..\..\i18n" /I "..\..\tools\toolutil" /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FR /FD /GZ /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:IX86 /pdbtype:sept /machine:IA64
-# ADD LINK32 icuucd.lib icuind.lib icutud.lib winmm.lib /nologo /subsystem:console /incremental:no /debug /machine:IX86 /pdbtype:sept /libpath:"..\..\..\lib\\" /machine:IA64
-
-!ENDIF
-
-# Begin Target
-
-# Name "collperf - Win32 Release"
-# Name "collperf - Win32 Debug"
-# Name "collperf - Win64 Release"
-# Name "collperf - Win64 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\collperf.cpp
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/Build/source/libs/icu-xetex/test/collperf/readme.html b/Build/source/libs/icu-xetex/test/collperf/readme.html
deleted file mode 100644
index 40940d10e31..00000000000
--- a/Build/source/libs/icu-xetex/test/collperf/readme.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
-<HTML>
-
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1">
- <meta name="Copyright" content="Copyright (c) 2002, International Business Machines Corporation and others. All Rights Reserved.">
- <META NAME="GENERATOR" Content="Visual Page 2.0 for Windows">
- <TITLE>collperf</TITLE>
-</HEAD>
-
-<BODY BGCOLOR="white">
-
-<H2>collperf</H2>
-<P>collperf is a test program for comparing collation performance and key lengths of ICU, Windows native collation
-and Unix/POSIX collation. It operates on a file of lines (names, for example), and performs one of three tests:</P>
-
-<OL>
- <LI>Sort Key generation. Report on key lengths and key generation times.
- <LI>Binary search. Report the average time required to look up each of the names (file lines) from the file in
- a sorted list of all of the names.
- <LI>Quick Sort. Report the time required to sort the file in memory, using the C library qsort function. The file
- order is randomized prior to the sort.
-</OL>
-
-<P>
-<P><B>Usage Summary</B></P>
-
-<BLOCKQUOTE>
- <P>
- <TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFFBF0">
- <TR>
- <TD WIDTH="100%">
- <P><TT>collperf -help</TT>
- <BLOCKQUOTE>
- <PRE><TT>Usage: strperf options...
--help Display this message.
--file file_name utf-16 format file of names
--locale name ICU locale to use. Default is en_US
--langid 0x1234 Windows Language ID number. Default 0x409 (en_US)
- see http://msdn.microsoft.com/library/psdk/winbase/nls_8xo3.htm
--win Run test using Windows native services. (ICU is default)
--unix Run test using Unix strxfrm, strcoll services.
--uselen Use API with string lengths. Default is null-terminated strings
--usekeys Run tests using sortkeys rather than strcoll
--loop nnnn Loopcount for test. Adjust for reasonable total running time.
--terse Terse numbers-only output. Intended for use by scripts.
--french French accent ordering
--norm Normalizing mode on
--shifted Shifted mode
--lower Lower case first
--upper Upper case first
--case Enable separate case level
--level n Sort level, 1 to 5, for Primary, Secndary, Tertiary, Quaternary, Identical
--binsearch Binary Search timing test
--keygen Sort Key Generation timing test
--qsort Quicksort timing test</TT></PRE>
- </BLOCKQUOTE>
- </TD>
- </TR>
- </TABLE>
-</P>
-</BLOCKQUOTE>
-
-<P><B>Example</B></P>
-
-<BLOCKQUOTE>
- <P>
- <TABLE BORDER="0" WIDTH="100%" BGCOLOR="#FFFBF0">
- <TR>
- <TD WIDTH="100%"><TT>C:\&gt;collperf -loop 200 -file latin.txt -keygen -shifted -level 4<BR>
- file &quot;latin.txt&quot;, 7604 lines.<BR>
- Sort Key Generation: total # of keys = 197704<BR>
- Sort Key Generation: time per key = 4253 ns<BR>
- Key Length / character = 1.730054</TT></TD>
- </TR>
- </TABLE>
-
-</BLOCKQUOTE>
-
-<P>
-
-</BODY>
-
-</HTML> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/test/hdrtst/Makefile.in b/Build/source/libs/icu-xetex/test/hdrtst/Makefile.in
index 52c2f8ea3d4..ff8d964b095 100644
--- a/Build/source/libs/icu-xetex/test/hdrtst/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/hdrtst/Makefile.in
@@ -1,5 +1,5 @@
##
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
##
##
@@ -33,7 +33,7 @@ all:
@echo Please read this Makefile for more information.
@echo run \'$(MAKE) check\' to run the test
-check: dtest ctest cpptest lotest doclean
+check: dtest ctest cpptest lotest doclean drafttest deprtest internaltest obsoletetest
@echo "All header tests have finished. If deprecation #errors appeared, "
@echo " add files to hdrtst/dfiles.txt"
@echo "#################################################################"
@@ -108,7 +108,75 @@ ctest:
RES=$$? ; \
echo $$RES ; \
done
+
+drafttest:
+ @echo "U_HIDE_DRAFT_API Test #######################################################"
+ @rm -f Makefile.sub
+ @echo Building test harness for header files in ../../common and ../../i18n
+ @echo 'the number after the hyphen (-) refers to the exit code - should be zero!'
+ @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \
+ incfile=`basename $$file .h` ; \
+ echo -n " unicode/$$incfile.h - " ; \
+ echo '#define U_HIDE_DRAFT_API' > hd_$$incfile.c; \
+ echo '#include "'unicode/$$incfile'.h"' >> ht_$$incfile.c ; \
+ echo 'void junk(void);' >> hd_$$incfile.c ; \
+ echo 'void junk(){}' >> hd_$$incfile.c ; \
+ $(COMPILE.cc) -c $(cppflags) hd_$$incfile.c ; \
+ RES=$$? ; \
+ echo $$RES ; \
+ done
+
+deprtest:
+ @echo "U_HIDE_DEPRECATED_API Test #######################################################"
+ @rm -f Makefile.sub
+ @echo Building test harness for header files in ../../common and ../../i18n
+ @echo 'the number after the hyphen (-) refers to the exit code - should be zero!'
+ @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \
+ incfile=`basename $$file .h` ; \
+ echo -n " unicode/$$incfile.h - " ; \
+ echo '#define U_HIDE_DEPRECATED_API' > hdp_$$incfile.c; \
+ echo '#include "'unicode/$$incfile'.h"' >> hdp_$$incfile.c ; \
+ echo 'void junk(void);' >> hdp_$$incfile.c ; \
+ echo 'void junk(){}' >> hdp_$$incfile.c ; \
+ $(COMPILE.cc) -c $(cppflags) hdp_$$incfile.c ; \
+ RES=$$? ; \
+ echo $$RES ; \
+ done
+
+internaltest:
+ @echo "U_HIDE_INTERNAL_API Test #######################################################"
+ @rm -f Makefile.sub
+ @echo Building test harness for header files in ../../common and ../../i18n
+ @echo 'the number after the hyphen (-) refers to the exit code - should be zero!'
+ @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \
+ incfile=`basename $$file .h` ; \
+ echo -n " unicode/$$incfile.h - " ; \
+ echo '#define U_HIDE_INTERNAL_API' > hin_$$incfile.c; \
+ echo '#include "'unicode/$$incfile'.h"' >> hin_$$incfile.c ; \
+ echo 'void junk(void);' >> hin_$$incfile.c ; \
+ echo 'void junk(){}' >> hin_$$incfile.c ; \
+ $(COMPILE.cc) -c $(cppflags) hin_$$incfile.c ; \
+ RES=$$? ; \
+ echo $$RES ; \
+ done
+obsoletetest:
+ @echo "U_HIDE_OBSOLETE_API Test #######################################################"
+ @rm -f Makefile.sub
+ @echo Building test harness for header files in ../../common and ../../i18n
+ @echo 'the number after the hyphen (-) refers to the exit code - should be zero!'
+ @for file in `ls $(prefix)/include/unicode/*.h | fgrep -v -f $(srcdir)/pfiles.txt`; do \
+ incfile=`basename $$file .h` ; \
+ echo -n " unicode/$$incfile.h - " ; \
+ echo '#define U_HIDE_OBSOLETE_API' > hob_$$incfile.c; \
+ echo '#include "'unicode/$$incfile'.h"' >> hob_$$incfile.c ; \
+ echo 'void junk(void);' >> hob_$$incfile.c ; \
+ echo 'void junk(){}' >> hob_$$incfile.c ; \
+ $(COMPILE.cc) -c $(cppflags) hob_$$incfile.c ; \
+ RES=$$? ; \
+ echo $$RES ; \
+ done
+
clean:
-@rm -f *.h *.c *.cpp *.o *.junk
@@ -117,3 +185,4 @@ distclean: clean
.PHONY: doclean check all cpptest lotest dtest ctest clean distclean
+
diff --git a/Build/source/libs/icu-xetex/test/intltest/Makefile.in b/Build/source/libs/icu-xetex/test/intltest/Makefile.in
index 72b802a6fac..990a7c675c9 100644
--- a/Build/source/libs/icu-xetex/test/intltest/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/intltest/Makefile.in
@@ -1,6 +1,10 @@
+#******************************************************************************
+#
+# Copyright (C) 1999-2006, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - test/intltest
-## Copyright (c) 1999-2005, International Business Machines Corporation and
-## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
@@ -8,6 +12,7 @@ top_srcdir = @top_srcdir@
top_builddir = ../..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -27,17 +32,20 @@ BUILDDIR := $(BUILDDIR:test\\intltest/../../=)
# Simplify the path for Windows 98
BUILDDIR := $(BUILDDIR:TEST\\INTLTEST/../../=)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
-OBJECTS = allcoll.o apicoll.o astrotst.o callimts.o calregts.o caltest.o \
+OBJECTS = aliastst.o allcoll.o apicoll.o astrotst.o callimts.o calregts.o caltest.o \
caltztst.o canittst.o citrtest.o cntabcol.o convtest.o currcoll.o \
dadrcoll.o dcfmapts.o decoll.o dtfmapts.o dtfmrgts.o dtfmtrtts.o dtfmttst.o \
encoll.o escoll.o ficoll.o frcoll.o g7coll.o intltest.o \
itercoll.o itformat.o itmajor.o itutil.o jacoll.o lcukocol.o \
loctest.o miscdtfm.o mnkytst.o msfmrgts.o nmfmapts.o nmfmtrt.o \
-numfmtst.o numrgts.o pptest.o regcoll.o restest.o restsnew.o \
+numfmtst.o numrgts.o pptest.o regcoll.o restest.o restsnew.o rndmcoll.o \
sdtfmtts.o svccoll.o tchcfmt.o \
tfsmalls.o tmsgfmt.o trcoll.o tscoll.o tsdate.o tsdcfmsy.o tsdtfmsy.o \
tsmthred.o tsnmfmt.o tsputil.o tstnrapi.o tstnorm.o tzbdtest.o \
@@ -47,13 +55,16 @@ testutil.o transrt.o trnserr.o normconf.o sfwdchit.o \
jamotest.o srchtest.o reptest.o regextst.o \
itrbnf.o itrbnfrt.o itrbnfp.o ucaconf.o icusvtst.o \
uobjtest.o idnaref.o idnaconf.o nptrans.o punyref.o testidn.o testidna.o incaltst.o \
-calcasts.o v32test.o uvectest.o textfile.o tokiter.o utxttest.o
+calcasts.o v32test.o uvectest.o textfile.o tokiter.o utxttest.o wbnf.o \
+windttst.o winnmtst.o winutil.o csdetest.o
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
+.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local dist dist-local check check-local
## Clear suffix list
@@ -80,8 +91,6 @@ clean-local:
distclean-local: clean-local
$(RMV) Makefile
--include Makefile.local
-
check-local: all-local
$(INVOKE) ./$(TARGET) $(INTLTEST_OPTS) || true
diff --git a/Build/source/libs/icu-xetex/test/intltest/aliastst.cpp b/Build/source/libs/icu-xetex/test/intltest/aliastst.cpp
new file mode 100644
index 00000000000..3abb2959edb
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/aliastst.cpp
@@ -0,0 +1,287 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+#include "aliastst.h"
+#include "unicode/calendar.h"
+#include "unicode/smpdtfmt.h"
+#include "unicode/datefmt.h"
+#include "unicode/unistr.h"
+#include "unicode/coll.h"
+#include "unicode/resbund.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+const char* _LOCALE_ALIAS[][2] = {
+ {"in", "id"},
+ {"in_ID", "id_ID"},
+ {"iw", "he"},
+ {"iw_IL", "he_IL"},
+ {"ji", "yi"},
+ {"en_BU", "en_MM"},
+ {"en_DY", "en_BJ"},
+ {"en_HV", "en_BF"},
+ {"en_NH", "en_VU"},
+ {"en_RH", "en_ZW"},
+ {"en_TP", "en_TL"},
+ {"en_ZR", "en_CD"}
+};
+
+const int _LOCALE_NUMBER = 12;
+
+void LocaleAliasTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ){
+ switch (index) {
+ TESTCASE(0, TestCalendar);
+ TESTCASE(1, TestDateFormat);
+ TESTCASE(2, TestCollation);
+ TESTCASE(3, TestULocale);
+ TESTCASE(4, TestUResourceBundle);
+ TESTCASE(5, TestDisplayName);
+ // keep the last index in sync with the condition in default:
+
+ default:
+ if (index <= 5) { // keep this in sync with the last index!
+ name = "(test omitted by !UCONFIG_NO_FORMATTING)";
+ } else {
+ name = "";
+ }
+ break; //needed to end loop
+ }
+}
+
+void LocaleAliasTest::TestCalendar() {
+#if !UCONFIG_NO_FORMATTING
+ UErrorCode status = U_ZERO_ERROR;
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ logln("\nold locale:%s new locale:%s",oldLoc.getName(),newLoc.getName());
+ Calendar* c1 = Calendar::createInstance(oldLoc, status);
+ Calendar* c2 = Calendar::createInstance(newLoc, status);
+
+ //Test function "getLocale(ULocale.VALID_LOCALE)"
+ const char* l1 = c1->getLocaleID(ULOC_VALID_LOCALE, status);
+ const char* l2 = c2->getLocaleID(ULOC_VALID_LOCALE, status);
+ if (strcmp(newLoc.getName(), l1)!=0) {
+ errln("CalendarTest: newLoc!=l1: newLoc= "+UnicodeString(newLoc.getName()) +" l1= "+UnicodeString(l1));
+ }
+ if (strcmp(l1, l2)!=0) {
+ errln("CalendarTest: l1!=l2: l1= "+UnicodeString(l1) +" l2= "+UnicodeString(l2));
+ }
+ if(!(c1==c2)){
+ errln("CalendarTest: c1!=c2. newLoc= "+UnicodeString(newLoc.getName()) +" oldLoc= "+UnicodeString(oldLoc.getName()));
+ }
+ logln("Calendar(getLocale) old:"+UnicodeString(l1)+" new:"+UnicodeString(l2));
+ delete c1;
+ delete c2;
+ }
+#endif
+}
+void LocaleAliasTest::TestDateFormat() {
+#if !UCONFIG_NO_FORMATTING
+ UErrorCode status = U_ZERO_ERROR;
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ logln("\nold locale:%s new locale:%s",oldLoc.getName(),newLoc.getName());
+
+ DateFormat* df1 = DateFormat::createDateInstance(DateFormat::FULL, oldLoc);
+ DateFormat* df2 = DateFormat::createDateInstance(DateFormat::FULL, newLoc);
+
+ //Test function "getLocale"
+ const char* l1 = df1->getLocaleID(ULOC_VALID_LOCALE, status);
+ const char* l2 = df2->getLocaleID(ULOC_VALID_LOCALE, status);
+ if (strcmp(newLoc.getName(), l1)!=0) {
+ errln("CalendarTest: newLoc!=l1: newLoc= "+UnicodeString(newLoc.getName()) +" l1= "+UnicodeString(l1));
+ }
+ if (strcmp(l1, l2)!=0) {
+ errln("TestDateFormat: l1!=l2: l1= "+UnicodeString(l1) +" l2= "+UnicodeString(l2));
+ }
+ if(!(df1==df2)){
+ errln("TestDateFormat: c1!=c2. newLoc= "+UnicodeString(newLoc.getName()) +" oldLoc= "+UnicodeString(oldLoc.getName()));
+ }
+ logln("DateFormat(getLocale) old:%s new:%s",l1,l2);
+
+ delete df1;
+ delete df2;
+ }
+#endif
+}
+void LocaleAliasTest::TestCollation() {
+#if !UCONFIG_NO_COLLATION
+ UErrorCode status = U_ZERO_ERROR;
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ logln("\nold locale:%s new locale:%s",oldLoc.getName(),newLoc.getName());
+
+ Collator* c1 = Collator::createInstance(oldLoc, status);
+ Collator* c2 = Collator::createInstance(newLoc, status);
+
+ Locale l1 = c1->getLocale(ULOC_VALID_LOCALE, status);
+ Locale l2 = c2->getLocale(ULOC_VALID_LOCALE, status);
+
+ if (strcmp(newLoc.getName(), l1.getName())!=0) {
+ errln("CalendarTest: newLoc!=l1: newLoc= "+UnicodeString(newLoc.getName()) +" l1= "+UnicodeString(l1.getName()));
+ }
+ if (strcmp(l1.getName(), l2.getName())!=0) {
+ errln("CollationTest: l1!=l2: l1= "+UnicodeString(l1.getName()) +" l2= "+UnicodeString(l2.getName()));
+ }
+ if(!(c1==c2)){
+ errln("CollationTest: c1!=c2. newLoc= "+UnicodeString(newLoc.getName()) +" oldLoc= "+UnicodeString(oldLoc.getName()));
+ }
+ logln("Collator(getLocale) old:%s new:%s", l1.getName(), l2.getName());
+ delete c1;
+ delete c2;
+ }
+#endif
+}
+void LocaleAliasTest::TestULocale() {
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ logln("\nold locale:%s new locale:%s",oldLoc.getName(),newLoc.getName());
+
+ UnicodeString name1, name2;
+ oldLoc.getDisplayName(name1);
+ newLoc.getDisplayName(name2);
+ if (name1!=name2) {
+ errln("DisplayNames are not equal. newLoc= "+UnicodeString(newLoc.getName()) +" oldLoc= "+UnicodeString(oldLoc.getName()));
+ }
+ log("ULocale(getDisplayName) old:");
+ log(name1);
+ log(" new:");
+ logln(name2);
+ }
+}
+LocaleAliasTest::LocaleAliasTest(){
+ UErrorCode status = U_ZERO_ERROR;
+ resIndex = ures_open(NULL,"res_index", &status);
+ if(U_FAILURE(status)){
+ errln("Could not open res_index.res. Exiting. Error: %s\n", u_errorName(status));
+ resIndex=NULL;
+ }
+ defLocale = Locale::getDefault();
+ Locale::setDefault(Locale::getUS(), status);
+}
+LocaleAliasTest::~LocaleAliasTest(){
+ /* reset the default locale */
+ UErrorCode status = U_ZERO_ERROR;
+ Locale::setDefault(defLocale, status);
+ ures_close(resIndex);
+ if(U_FAILURE(status)){
+ errln("Could not reset the default locale. Exiting. Error: %s\n", u_errorName(status));
+ }
+}
+UBool LocaleAliasTest::isLocaleAvailable(const char* loc){
+ if(resIndex==NULL){
+ return FALSE;
+ }
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t len = 0;
+ ures_getStringByKey(resIndex, loc,&len, &status);
+ if(U_FAILURE(status)){
+ return FALSE;
+ }
+ return TRUE;
+}
+void LocaleAliasTest::TestDisplayName() {
+ int32_t availableNum =0;
+ const Locale* available = Locale::getAvailableLocales(availableNum);
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ for(int j=0; j<availableNum; j++){
+ UnicodeString dipLocName = UnicodeString(available[j].getName());
+ const UnicodeString oldCountry = oldLoc.getDisplayCountry(dipLocName);
+ const UnicodeString newCountry = newLoc.getDisplayCountry(dipLocName);
+ const UnicodeString oldLang = oldLoc.getDisplayLanguage(dipLocName);
+ const UnicodeString newLang = newLoc.getDisplayLanguage(dipLocName);
+
+ // is there display name for the current country ID
+ if(newCountry != newLoc.getCountry()){
+ if(oldCountry!=newCountry){
+ errln("getCountry() failed for "+ UnicodeString(oldLoc.getName()) +" oldCountry= "+ prettify(oldCountry) +" newCountry = "+prettify(newCountry)+ " in display locale "+ UnicodeString(available[j].getName()));
+ }
+ }
+ //there is a display name for the current lang ID
+ if(newLang != newLoc.getLanguage()){
+ if(oldLang != newLang){
+ errln("getLanguage() failed for " + UnicodeString(oldLoc.getName()) + " oldLang = "+ prettify(oldLang) +" newLang = "+prettify(newLang)+ " in display locale "+UnicodeString(available[j].getName()));
+ }
+ }
+ }
+ }
+}
+void LocaleAliasTest::TestUResourceBundle() {
+
+ UErrorCode status = U_ZERO_ERROR;
+ for (int i=0; i<_LOCALE_NUMBER; i++) {
+ Locale oldLoc(_LOCALE_ALIAS[i][0]);
+ Locale newLoc(_LOCALE_ALIAS[i][1]);
+ if(!isLocaleAvailable(_LOCALE_ALIAS[i][1])){
+ logln(UnicodeString(newLoc.getName())+" is not available. Skipping!");
+ continue;
+ }
+ logln("\nold locale:%s new locale:%s",oldLoc.getName(),newLoc.getName());
+
+ ResourceBundle* rb1 = NULL;
+ ResourceBundle* rb2 = NULL;
+
+ const char* testdatapath=loadTestData(status);
+
+ UnicodeString us1("NULL");
+ UnicodeString us2("NULL");
+ rb1 = new ResourceBundle(testdatapath, oldLoc, status);
+ if (U_FAILURE(U_ZERO_ERROR)) {
+
+ } else {
+ us1 = rb1->getStringEx("locale", status);
+ }
+ rb2 = new ResourceBundle(testdatapath, newLoc, status);
+ if (U_FAILURE(U_ZERO_ERROR)){
+
+ } else {
+ us2 = rb2->getStringEx("locale", status);
+ }
+ UnicodeString uNewLoc(newLoc.getName());
+ if (us1.compare(uNewLoc)!=0 || us1.compare(us2)!=0 || status!=U_ZERO_ERROR) {
+
+ }
+ log("UResourceBundle(getStringEx) old:");
+ log(us1);
+ log(" new:");
+ logln(us2);
+
+ if (rb1!=NULL) {
+ delete rb1;
+ }
+ if (rb2!=NULL) {
+ delete rb2;
+ }
+ }
+
+}
diff --git a/Build/source/libs/icu-xetex/test/intltest/aliastst.h b/Build/source/libs/icu-xetex/test/intltest/aliastst.h
new file mode 100644
index 00000000000..e9a0db4638d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/aliastst.h
@@ -0,0 +1,30 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+#ifndef _ALIASTST
+#define _ALIASTST
+
+#include "intltest.h"
+#include "unicode/locid.h"
+#include "unicode/ures.h"
+
+class LocaleAliasTest: public IntlTest {
+public:
+ void TestCalendar();
+ void TestDateFormat();
+ void TestCollation();
+ void TestULocale();
+ void TestUResourceBundle();
+ void TestDisplayName();
+ void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
+ LocaleAliasTest();
+ virtual ~LocaleAliasTest();
+private:
+ UResourceBundle* resIndex;
+ UBool isLocaleAvailable(const char*);
+ Locale defLocale;
+};
+
+#endif
diff --git a/Build/source/libs/icu-xetex/test/intltest/apicoll.cpp b/Build/source/libs/icu-xetex/test/intltest/apicoll.cpp
index e0e138aebd4..ff8404f897e 100644
--- a/Build/source/libs/icu-xetex/test/intltest/apicoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/apicoll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
//===============================================================================
@@ -39,6 +39,7 @@
#include "unicode/chariter.h"
#include "unicode/schriter.h"
#include "unicode/ustring.h"
+#include "unicode/ucol.h"
#include "sfwdchit.h"
#include "cmemory.h"
@@ -101,8 +102,9 @@ CollationAPITest::TestProperty(/* char* par */)
ICU 2.4 currVersionArray = {0x21, 0x40, 0x04, 0x04};
ICU 2.6 currVersionArray = {0x21, 0x40, 0x03, 0x03};
ICU 2.8 currVersionArray = {0x29, 0x80, 0x00, 0x04};
+ ICU 3.4 currVersionArray = {0x31, 0xC0, 0x00, 0x04};
*/
- UVersionInfo currVersionArray = {0x31, 0xC0, 0x00, 0x04};
+ UVersionInfo currVersionArray = {0x31, 0xC0, 0x00, 0x05};
UVersionInfo versionArray;
int i = 0;
@@ -912,12 +914,43 @@ CollationAPITest::TestDuplicate(/* char* par */)
}
Collator *col2 = col1->clone();
doAssert((*col1 == *col2), "Cloned object is not equal to the orginal");
- UnicodeString ruleset("< a, A < b, B < c, C < d, D, e, E");
- RuleBasedCollator *col3 = new RuleBasedCollator(ruleset, status);
+ UnicodeString *ruleset = new UnicodeString("< a, A < b, B < c, C < d, D, e, E");
+ RuleBasedCollator *col3 = new RuleBasedCollator(*ruleset, status);
doAssert((*col1 != *col3), "Cloned object is equal to some dummy");
*col3 = *((RuleBasedCollator*)col1);
doAssert((*col1 == *col3), "Copied object is not equal to the orginal");
+
+ if (U_FAILURE(status)) {
+ logln("Collation tailoring failed.");
+ return;
+ }
+
+ UCollationResult res;
+ UnicodeString first((UChar)0x0061);
+ UnicodeString second((UChar)0x0062);
+ UnicodeString copiedEnglishRules(((RuleBasedCollator*)col1)->getRules());
+
delete col1;
+ delete ruleset;
+
+ // Try using the cloned collators after deleting the original data
+ res = col2->compare(first, second, status);
+ if(res != UCOL_LESS) {
+ errln("a should be less then b after tailoring");
+ }
+ if (((RuleBasedCollator*)col2)->getRules() != copiedEnglishRules) {
+ errln(UnicodeString("English rule difference. ")
+ + copiedEnglishRules + UnicodeString("\ngetRules=") + ((RuleBasedCollator*)col2)->getRules());
+ }
+ res = col3->compare(first, second, status);
+ if(res != UCOL_LESS) {
+ errln("a should be less then b after tailoring");
+ }
+ if (col3->getRules() != copiedEnglishRules) {
+ errln(UnicodeString("English rule difference. ")
+ + copiedEnglishRules + UnicodeString("\ngetRules=") + col3->getRules());
+ }
+
delete col2;
delete col3;
}
@@ -1019,11 +1052,17 @@ void CollationAPITest::TestSortKey()
col->setAttribute(UCOL_STRENGTH, UCOL_IDENTICAL, status);
uint8_t key2compat[] = {
+ /* 3.6 key, from UCA 5.0 */
+ 0x29, 0x2b, 0x2d, 0x2f, 0x29, 0x01,
+ 0x09, 0x01, 0x09, 0x01, 0x28, 0x01,
+ 0x92, 0x93, 0x94, 0x95, 0x92, 0x00
+
/* 3.4 key, from UCA 4.1 */
+ /*
0x28, 0x2a, 0x2c, 0x2e, 0x28, 0x01,
0x09, 0x01, 0x09, 0x01, 0x27, 0x01,
0x92, 0x93, 0x94, 0x95, 0x92, 0x00
-
+ */
/* 2.6.1 key */
/*
0x26, 0x28, 0x2A, 0x2C, 0x26, 0x01,
@@ -2144,6 +2183,56 @@ void CollationAPITest::TestNULLCharTailoring()
delete coll;
}
+void CollationAPITest::TestClone() {
+ logln("\ninit c0");
+ UErrorCode status = U_ZERO_ERROR;
+ RuleBasedCollator* c0 = (RuleBasedCollator*)Collator::createInstance(status);
+ c0->setStrength(Collator::TERTIARY);
+ dump("c0", c0, status);
+
+ logln("\ninit c1");
+ RuleBasedCollator* c1 = (RuleBasedCollator*)Collator::createInstance(status);
+ c1->setStrength(Collator::TERTIARY);
+ UColAttributeValue val = c1->getAttribute(UCOL_CASE_FIRST, status);
+ if(val == UCOL_LOWER_FIRST){
+ c1->setAttribute(UCOL_CASE_FIRST, UCOL_UPPER_FIRST, status);
+ }else{
+ c1->setAttribute(UCOL_CASE_FIRST, UCOL_LOWER_FIRST, status);
+ }
+ dump("c0", c0, status);
+ dump("c1", c1, status);
+
+ logln("\ninit c2");
+ RuleBasedCollator* c2 = (RuleBasedCollator*)c1->clone();
+ val = c2->getAttribute(UCOL_CASE_FIRST, status);
+ if(val == UCOL_LOWER_FIRST){
+ c2->setAttribute(UCOL_CASE_FIRST, UCOL_UPPER_FIRST, status);
+ }else{
+ c2->setAttribute(UCOL_CASE_FIRST, UCOL_LOWER_FIRST, status);
+ }
+ if(U_FAILURE(status)){
+ errln("set and get attributes of collator failed. %s\n", u_errorName(status));
+ return;
+ }
+ dump("c0", c0, status);
+ dump("c1", c1, status);
+ dump("c2", c2, status);
+ if(*c1 == *c2){
+ errln("The cloned objects refer to same data");
+ }
+ delete c0;
+ delete c1;
+ delete c2;
+}
+
+ void CollationAPITest::dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status) {
+ const char* bigone = "One";
+ const char* littleone = "one";
+
+ logln(msg + " " + c->compare(bigone, littleone) +
+ " s: " + c->getStrength() +
+ " u: " + c->getAttribute(UCOL_CASE_FIRST, status));
+}
void CollationAPITest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par */)
{
if (exec) logln("TestSuite CollationAPITest: ");
@@ -2171,6 +2260,7 @@ void CollationAPITest::runIndexedTest( int32_t index, UBool exec, const char* &n
case 20: name = "TestUClassID"; if (exec) TestUClassID(); break;
case 21: name = "TestSubclass"; if (exec) TestSubclass(); break;
case 22: name = "TestNULLCharTailoring"; if (exec) TestNULLCharTailoring(); break;
+ case 23: name = "TestClone"; if (exec) TestClone(); break;
default: name = ""; break;
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/apicoll.h b/Build/source/libs/icu-xetex/test/intltest/apicoll.h
index d08400c1440..f3a4d2a7fda 100644
--- a/Build/source/libs/icu-xetex/test/intltest/apicoll.h
+++ b/Build/source/libs/icu-xetex/test/intltest/apicoll.h
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -164,11 +164,14 @@ public:
*/
void TestNULLCharTailoring();
+ void TestClone();
private:
// If this is too small for the test data, just increase it.
// Just don't make it too large, otherwise the executable will get too big
enum EToken_Len { MAX_TOKEN_LEN = 16 };
+ void dump(UnicodeString msg, RuleBasedCollator* c, UErrorCode& status);
+
};
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/astrotst.cpp b/Build/source/libs/icu-xetex/test/intltest/astrotst.cpp
index 0a40f540459..ba7b5711396 100644
--- a/Build/source/libs/icu-xetex/test/intltest/astrotst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/astrotst.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1996-2004, International Business Machines Corporation and
+ * Copyright (c) 1996-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -277,6 +277,10 @@ void AstroTest::TestSunriseTimes(void) {
DateFormat *df_t = DateFormat::createTimeInstance(DateFormat::MEDIUM,Locale::getUS());
DateFormat *df_d = DateFormat::createDateInstance(DateFormat::MEDIUM,Locale::getUS());
DateFormat *df_dt = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::MEDIUM, Locale::getUS());
+ if(!df_t || !df_d || !df_dt) {
+ errln("couldn't create dateformats.");
+ return;
+ }
df_t->adoptTimeZone(tz->clone());
df_d->adoptTimeZone(tz->clone());
df_dt->adoptTimeZone(tz->clone());
diff --git a/Build/source/libs/icu-xetex/test/intltest/callimts.cpp b/Build/source/libs/icu-xetex/test/intltest/callimts.cpp
index a0e9333f8fb..40ad122bf47 100644
--- a/Build/source/libs/icu-xetex/test/intltest/callimts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/callimts.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -91,6 +91,10 @@ CalendarLimitTest::TestCalendarLimit()
if (failure(status, "Calendar::createInstance")) return;
cal->adoptTimeZone(TimeZone::createTimeZone("GMT"));
DateFormat *fmt = DateFormat::createDateTimeInstance();
+ if(!fmt || !cal) {
+ dataerrln("can't open cal and/or fmt");
+ return;
+ }
fmt->adoptCalendar(cal);
((SimpleDateFormat*) fmt)->applyPattern("HH:mm:ss.SSS zzz, EEEE, MMMM d, yyyy G");
diff --git a/Build/source/libs/icu-xetex/test/intltest/calregts.cpp b/Build/source/libs/icu-xetex/test/intltest/calregts.cpp
index d38bf8a9475..145956410e2 100644
--- a/Build/source/libs/icu-xetex/test/intltest/calregts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/calregts.cpp
@@ -1,7 +1,7 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
- * others. All Rights Reserved.
+ * Copyright (c) 1997-2006, International Business Machines Corporation
+ * and others. All Rights Reserved.
********************************************************************/
#include "unicode/utypes.h"
@@ -215,6 +215,16 @@ CalendarRegressionTest::test4031502()
UErrorCode status = U_ZERO_ERROR;
StringEnumeration* ids = TimeZone::createEnumeration();
UBool bad = FALSE;
+ TimeZone* tz =TimeZone::createTimeZone("Asia/Riyadh87");
+ failure(status, "new TimeZone");
+ GregorianCalendar *cl = new GregorianCalendar(tz, status);
+ failure(status, "new GregorianCalendar");
+ cl->clear();
+ cl->set(1900, 15, 5, 5, 8, 13);
+ cl->get(UCAL_HOUR, status);
+ failure(status, "cl->get(UCAL_HOUR, status)");
+ status = U_ZERO_ERROR;
+ delete cl;
for (int32_t i=0; i<ids->count(status); ++i) {
TimeZone *zone = TimeZone::createTimeZone(*ids->snext(status));
GregorianCalendar *cal = new GregorianCalendar(zone, status);
@@ -1355,6 +1365,7 @@ void CalendarRegressionTest::test4125881()
return;
}
DateFormat *fmt = new SimpleDateFormat(UnicodeString("MMMM d, yyyy G"),status);
+ if(!assertSuccess("trying to construct", status))return;
cal->clear();
for (int32_t y=-20; y<=10; ++y) {
cal->set(UCAL_ERA, y < 1 ? GregorianCalendar::BC : GregorianCalendar::AD);
@@ -1384,6 +1395,7 @@ void CalendarRegressionTest::test4125892() {
return;
}
DateFormat *fmt = new SimpleDateFormat(UnicodeString("MMMM d, yyyy G"),status);
+ if(!assertSuccess("trying to construct", status))return;
cal->clear();
cal->set(UCAL_ERA, GregorianCalendar::BC);
cal->set(UCAL_YEAR, 81); // 81 BC is a leap year (proleptically)
@@ -1949,7 +1961,7 @@ void CalendarRegressionTest::TestJ81() {
UErrorCode status = U_ZERO_ERROR;
UnicodeString temp, temp2, temp3;
int32_t i;
- GregorianCalendar cal(TimeZone::createTimeZone("GMT"), status);
+ GregorianCalendar cal(TimeZone::createTimeZone("GMT"), Locale::getUS(), status);
SimpleDateFormat fmt("HH:mm 'w'w 'd'D E d MMM yyyy", Locale::getUS(), status);
if (U_FAILURE(status)) {
errln("Error: Cannot create calendar or format");
diff --git a/Build/source/libs/icu-xetex/test/intltest/caltest.cpp b/Build/source/libs/icu-xetex/test/intltest/caltest.cpp
index 9e909f7a435..8f021a821ee 100644
--- a/Build/source/libs/icu-xetex/test/intltest/caltest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/caltest.cpp
@@ -1,6 +1,6 @@
/************************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
************************************************************************/
@@ -567,7 +567,7 @@ void
CalendarTest::TestDisambiguation765()
{
UErrorCode status = U_ZERO_ERROR;
- Calendar *c = Calendar::createInstance(status);
+ Calendar *c = Calendar::createInstance("en_US", status);
if (U_FAILURE(status)) { errln("Calendar::createInstance failed"); return; }
c->setLenient(FALSE);
c->clear();
@@ -676,15 +676,19 @@ CalendarTest::verify765(const UnicodeString& msg, Calendar* c, int32_t year, int
{
UnicodeString str;
UErrorCode status = U_ZERO_ERROR;
- if (c->get(UCAL_YEAR, status) == year &&
- c->get(UCAL_MONTH, status) == month &&
- c->get(UCAL_DATE, status) == day) {
+ int32_t y = c->get(UCAL_YEAR, status);
+ int32_t m = c->get(UCAL_MONTH, status);
+ int32_t d = c->get(UCAL_DATE, status);
+ if ( y == year &&
+ m == month &&
+ d == day) {
if (U_FAILURE(status)) { errln("FAIL: Calendar::get failed"); return; }
logln("PASS: " + msg + dateToString(c->getTime(status), str));
if (U_FAILURE(status)) { errln("Calendar::getTime failed"); return; }
}
else {
- errln("FAIL: " + msg + dateToString(c->getTime(status), str) + "; expected " + (int32_t)year + "/" + (int32_t)(month + 1) + "/" + (int32_t)day);
+ errln("FAIL: " + msg + dateToString(c->getTime(status), str) + "; expected " + (int32_t)year + "/" + (int32_t)(month + 1) + "/" + (int32_t)day +
+ "; got " + (int32_t)y + "/" + (int32_t)(m + 1) + "/" + (int32_t)d + " for Locale: " + c->getLocaleID(ULOC_ACTUAL_LOCALE,status));
if (U_FAILURE(status)) { errln("Calendar::getTime failed"); return; }
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/caltest.h b/Build/source/libs/icu-xetex/test/intltest/caltest.h
index fce3d9782c9..577b47340c3 100644
--- a/Build/source/libs/icu-xetex/test/intltest/caltest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/caltest.h
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2005, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
diff --git a/Build/source/libs/icu-xetex/test/intltest/canittst.cpp b/Build/source/libs/icu-xetex/test/intltest/canittst.cpp
index 58fe8aa76ae..8e97744c4d7 100644
--- a/Build/source/libs/icu-xetex/test/intltest/canittst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/canittst.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
*
@@ -90,10 +90,10 @@ void CanonicalIteratorTest::TestExhaustive() {
|| type == U_SURROGATE) continue;
s = i;
- characterTest(s, i, it);
+ characterTest(s, i, it);
s += (UChar32)0x0345; //"\\u0345";
- characterTest(s, i, it);
+ characterTest(s, i, it);
}
}
@@ -176,7 +176,7 @@ void CanonicalIteratorTest::characterTest(UnicodeString &s, UChar32 ch, Canonica
UBool gotComp = FALSE;
UBool gotSource = FALSE;
- Normalizer::decompose(s, FALSE, 0, decomp, status);
+ Normalizer::decompose(s, FALSE, 0, decomp, status);
Normalizer::compose(s, FALSE, 0, comp, status);
// skip characters that don't have either decomp.
diff --git a/Build/source/libs/icu-xetex/test/intltest/canittst.h b/Build/source/libs/icu-xetex/test/intltest/canittst.h
index 2a907718394..650cc089db0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/canittst.h
+++ b/Build/source/libs/icu-xetex/test/intltest/canittst.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
*
@@ -46,7 +46,7 @@ public:
//static UnicodeString collectionToString(Collection col);
private:
void expectEqual(const UnicodeString &message, const UnicodeString &item, const UnicodeString &a, const UnicodeString &b);
- void characterTest(UnicodeString &s, UChar32 ch, CanonicalIterator &it);
+ void characterTest(UnicodeString &s, UChar32 ch, CanonicalIterator &it);
Transliterator *nameTrans;
Transliterator *hexTrans;
diff --git a/Build/source/libs/icu-xetex/test/intltest/citrtest.cpp b/Build/source/libs/icu-xetex/test/intltest/citrtest.cpp
index 4dac28ec3d1..75bd1e583f7 100644
--- a/Build/source/libs/icu-xetex/test/intltest/citrtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/citrtest.cpp
@@ -1,6 +1,6 @@
/****************************************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
* Modification History:
*
@@ -143,7 +143,7 @@ CharIterTest::CharIterTest()
}
void CharIterTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
{
- if (exec) logln("TestSuite LocaleTest: ");
+ if (exec) logln("TestSuite CharIterTest: ");
switch (index) {
case 0: name = "TestConstructionAndEquality"; if (exec) TestConstructionAndEquality(); break;
case 1: name = "TestConstructionAndEqualityUChariter"; if (exec) TestConstructionAndEqualityUChariter(); break;
@@ -911,36 +911,51 @@ void CharIterTest::TestUCharIterator() {
if(cIter.getIndex(&cIter, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(char iter).getIndex did not return error value");
+ errln("error: UCharIterator(char iter).getIndex did not return error value");
}
if(cIter.move(&cIter, 0, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(char iter).move did not return error value");
+ errln("error: UCharIterator(char iter).move did not return error value");
}
if(rIter.getIndex(&rIter, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(repl iter).getIndex did not return error value");
+ errln("error: UCharIterator(repl iter).getIndex did not return error value");
}
if(rIter.move(&rIter, 0, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(repl iter).move did not return error value");
+ errln("error: UCharIterator(repl iter).move did not return error value");
}
if(sIter.getIndex(&sIter, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(string iter).getIndex did not return error value");
+ errln("error: UCharIterator(string iter).getIndex did not return error value");
}
if(sIter.move(&sIter, 0, (enum UCharIteratorOrigin)-1) != -1)
{
- errln("error: UCharIterator(string iter).move did not return error value");
+ errln("error: UCharIterator(string iter).move did not return error value");
}
+ /* Testing function coverage on bad input */
+ UErrorCode status = U_ZERO_ERROR;
+ uiter_setString(&sIter, NULL, 1);
+ uiter_setState(&sIter, 1, &status);
+ if (status != U_UNSUPPORTED_ERROR) {
+ errln("error: uiter_setState returned %s instead of U_UNSUPPORTED_ERROR", u_errorName(status));
+ }
+ status = U_ZERO_ERROR;
+ uiter_setState(NULL, 1, &status);
+ if (status != U_ILLEGAL_ARGUMENT_ERROR) {
+ errln("error: uiter_setState returned %s instead of U_ILLEGAL_ARGUMENT_ERROR", u_errorName(status));
+ }
+ if (uiter_getState(&sIter) != UITER_NO_STATE) {
+ errln("error: uiter_getState did not return UITER_NO_STATE on bad input");
+ }
}
// subclass test, and completing API coverage -------------------------------
diff --git a/Build/source/libs/icu-xetex/test/intltest/cntabcol.cpp b/Build/source/libs/icu-xetex/test/intltest/cntabcol.cpp
index 49f254c21cd..28f38cb6f79 100644
--- a/Build/source/libs/icu-xetex/test/intltest/cntabcol.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/cntabcol.cpp
@@ -1,8 +1,8 @@
/********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
+* COPYRIGHT:
+* Copyright (c) 1997-2006, International Business Machines Corporation and
+* others. All Rights Reserved.
+********************************************************************/
#include "unicode/utypes.h"
@@ -13,168 +13,223 @@
U_NAMESPACE_USE
ContractionTableTest::ContractionTableTest() {
- status = U_ZERO_ERROR;
- /*testMapping = ucmpe32_open(0, 0, 0, &status);*/
- testMapping = utrie_open(NULL, NULL, 0, 0, 0, TRUE);
+ testMapping = utrie_open(NULL, NULL, 0, 0, 0, TRUE);
}
ContractionTableTest::~ContractionTableTest() {
- /*ucmpe32_close(testMapping);*/
- utrie_close(testMapping);
+ utrie_close(testMapping);
}
void ContractionTableTest::TestGrowTable(/* char* par */) {
- uint32_t i = 0, res = 0;
- testTable = uprv_cnttab_open(testMapping, &status);
+ UErrorCode status = U_ZERO_ERROR;
+ uint32_t i = 0, res = 0;
+ testTable = uprv_cnttab_open(testMapping, &status);
- // fill up one contraction so that it has to expand
- for(i = 0; i<65536; i++) {
- uprv_cnttab_addContraction(testTable, 0, (UChar)i, i, &status);
- if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
- }
- }
- // test whether the filled up contraction really contains the data we input
- if(U_SUCCESS(status)) {
+ // fill up one contraction so that it has to expand
for(i = 0; i<65536; i++) {
- res = uprv_cnttab_getCE(testTable, 0, i, &status);
- if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
- }
- if(res != i) {
- errln("Error: expected %i, got %i\n", i, res);
- break;
- }
- }
- }
- uprv_cnttab_close(testTable);
+ uprv_cnttab_addContraction(testTable, 0, (UChar)i, i, &status);
+ if(U_FAILURE(status)) {
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
+ }
+ }
+ // test whether the filled up contraction really contains the data we input
+ if(U_SUCCESS(status)) {
+ for(i = 0; i<65536; i++) {
+ res = uprv_cnttab_getCE(testTable, 0, i, &status);
+ if(U_FAILURE(status)) {
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
+ }
+ if(res != i) {
+ errln("Error: expected %i, got %i\n", i, res);
+ break;
+ }
+ }
+ }
+ uprv_cnttab_close(testTable);
}
void ContractionTableTest::TestSetContraction(){
- testTable = uprv_cnttab_open(testMapping, &status);
- // This should make a new contraction
- uprv_cnttab_setContraction(testTable, 1, 0, 0x41, 0x41, &status);
- if(U_FAILURE(status)) {
- errln("Error setting a non existing contraction error = %i (%s)\n", status, u_errorName(status));
- }
- // if we try to change the non existing offset, we should get an error
- status = U_ZERO_ERROR;
- // currently this tests whether there is enough space, maybe it should test whether the element is actually in
- // range. Also, maybe a silent growing should take place....
- uprv_cnttab_setContraction(testTable, 1, 0x401, 0x41, 0x41, &status);
- if(status != U_INDEX_OUTOFBOUNDS_ERROR) {
- errln("changing a non-existing offset should have resulted in an error\n");
- }
- status = U_ZERO_ERROR;
- uprv_cnttab_close(testTable);
+ UErrorCode status = U_ZERO_ERROR;
+ testTable = uprv_cnttab_open(testMapping, &status);
+ // This should make a new contraction
+ uprv_cnttab_setContraction(testTable, 1, 0, 0x41, 0x41, &status);
+ if(U_FAILURE(status)) {
+ errln("Error setting a non existing contraction error = %i (%s)\n", status, u_errorName(status));
+ }
+ // if we try to change the non existing offset, we should get an error
+ status = U_ZERO_ERROR;
+ // currently this tests whether there is enough space, maybe it should test whether the element is actually in
+ // range. Also, maybe a silent growing should take place....
+ uprv_cnttab_setContraction(testTable, 1, 0x401, 0x41, 0x41, &status);
+ if(status != U_INDEX_OUTOFBOUNDS_ERROR) {
+ errln("changing a non-existing offset should have resulted in an error\n");
+ }
+ status = U_ZERO_ERROR;
+ uprv_cnttab_close(testTable);
}
void ContractionTableTest::TestAddATableElement(){
- testTable = uprv_cnttab_open(testMapping, &status);
- uint32_t i = 0, res = 0;
+ UErrorCode status = U_ZERO_ERROR;
+ testTable = uprv_cnttab_open(testMapping, &status);
+ uint32_t i = 0, res = 0;
- // fill up one contraction so that it has to expand
- for(i = 0; i<0x1000; i++) {
- uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status);
- if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
- }
- }
- // test whether the filled up contraction really contains the data we input
- if(U_SUCCESS(status)) {
+ // fill up one contraction so that it has to expand
for(i = 0; i<0x1000; i++) {
- res = uprv_cnttab_getCE(testTable, i, 0, &status);
- if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
- }
- if(res != i) {
- errln("Error: expected %i, got %i\n", i, res);
- break;
- }
- }
- }
- uprv_cnttab_close(testTable);
+ uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status);
+ if(U_FAILURE(status)) {
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
+ }
+ }
+ // test whether the filled up contraction really contains the data we input
+ if(U_SUCCESS(status)) {
+ for(i = 0; i<0x1000; i++) {
+ res = uprv_cnttab_getCE(testTable, i, 0, &status);
+ if(U_FAILURE(status)) {
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
+ }
+ if(res != i) {
+ errln("Error: expected %i, got %i\n", i, res);
+ break;
+ }
+ }
+ }
+ uprv_cnttab_close(testTable);
}
void ContractionTableTest::TestClone(){
- testTable = uprv_cnttab_open(testMapping, &status);
- int32_t i = 0, res = 0;
- // we must construct table in order to copy codepoints and CEs
- // fill up one contraction so that it has to expand
- for(i = 0; i<0x500; i++) {
- uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status);
- if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
- }
- }
- uprv_cnttab_constructTable(testTable, 0, &status);
- if(U_FAILURE(status)) {
- errln("Error constructing table error = %i (%s)\n", status, u_errorName(status));
- } else {
- testClone = uprv_cnttab_clone(testTable, &status);
- if(U_SUCCESS(status)) {
- for(i = 0; i<0x500; i++) {
- res = uprv_cnttab_getCE(testTable, i, 0, &status);
+ UErrorCode status = U_ZERO_ERROR;
+ testTable = uprv_cnttab_open(testMapping, &status);
+ int32_t i = 0, res = 0;
+ // we must construct table in order to copy codepoints and CEs
+ // fill up one contraction so that it has to expand
+ for(i = 0; i<0x500; i++) {
+ uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status);
if(U_FAILURE(status)) {
- errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
- break;
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
}
- if(res != i) {
- errln("Error: expected %i, got %i\n", i, res);
- break;
+ }
+ uprv_cnttab_constructTable(testTable, 0, &status);
+ if(U_FAILURE(status)) {
+ errln("Error constructing table error = %i (%s)\n", status, u_errorName(status));
+ } else {
+ testClone = uprv_cnttab_clone(testTable, &status);
+ if(U_SUCCESS(status)) {
+ for(i = 0; i<0x500; i++) {
+ res = uprv_cnttab_getCE(testTable, i, 0, &status);
+ if(U_FAILURE(status)) {
+ errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status));
+ break;
+ }
+ if(res != i) {
+ errln("Error: expected %i, got %i\n", i, res);
+ break;
+ }
+ }
}
- }
- }
- uprv_cnttab_close(testClone);
- }
- uprv_cnttab_close(testTable);
- testTable = uprv_cnttab_open(testMapping, &status);
- if(U_FAILURE(status)) {
- errln("Error opening table error = %i (%s)\n", status, u_errorName(status));
- }
- uprv_cnttab_close(testTable);
+ uprv_cnttab_close(testClone);
+ }
+ uprv_cnttab_close(testTable);
+ testTable = uprv_cnttab_open(testMapping, &status);
+ if(U_FAILURE(status)) {
+ errln("Error opening table error = %i (%s)\n", status, u_errorName(status));
+ }
+ uprv_cnttab_close(testTable);
}
void ContractionTableTest::TestChangeContraction(){
- testTable = uprv_cnttab_open(testMapping, &status);
- uint32_t i = 0, res = 0;
- res = uprv_cnttab_changeContraction(testTable, 0, 0x41, 0xAB, &status);
- if(res != 0) {
- errln("found a non existing contraction!\n");
- }
-
- for(i = 0; i < 0x20; i+=2) {
- uprv_cnttab_addContraction(testTable, 0, (UChar)i, i, &status);
- }
-
- res = uprv_cnttab_changeContraction(testTable, 0, 0x41, 0xAB, &status);
- if(res != UCOL_NOT_FOUND) {
- errln("managed to change a non existing contraction!\n");
- }
-
- for(i = 1; i < 0x20; i+=2) {
- res = uprv_cnttab_changeContraction(testTable, 0, (UChar)i, 0xAB, &status);
+ UErrorCode status = U_ZERO_ERROR;
+ testTable = uprv_cnttab_open(testMapping, &status);
+ uint32_t i = 0, res = 0;
+ res = uprv_cnttab_changeContraction(testTable, 0, 0x41, 0xAB, &status);
+ if(res != 0) {
+ errln("found a non existing contraction!\n");
+ }
+
+ for(i = 0; i < 0x20; i+=2) {
+ uprv_cnttab_addContraction(testTable, 0, (UChar)i, i, &status);
+ }
+
+ res = uprv_cnttab_changeContraction(testTable, 0, 0x41, 0xAB, &status);
if(res != UCOL_NOT_FOUND) {
- errln("managed to change a non existing contraction!\n");
+ errln("managed to change a non existing contraction!\n");
+ }
+
+ for(i = 1; i < 0x20; i+=2) {
+ res = uprv_cnttab_changeContraction(testTable, 0, (UChar)i, 0xAB, &status);
+ if(res != UCOL_NOT_FOUND) {
+ errln("managed to change a non existing contraction!\n");
+ }
}
- }
- uprv_cnttab_close(testTable);
+ uprv_cnttab_close(testTable);
}
void ContractionTableTest::TestChangeLastCE(){
- testTable = uprv_cnttab_open(testMapping, &status);
- uint32_t res = uprv_cnttab_changeLastCE(testTable, 1, 0xABCD, &status);
- if(res!=0) {
- errln("managed to change the last CE in an non-existing contraction!\n");
- }
- uprv_cnttab_close(testTable);
+ UErrorCode status = U_ZERO_ERROR;
+ testTable = uprv_cnttab_open(testMapping, &status);
+ uint32_t res = uprv_cnttab_changeLastCE(testTable, 1, 0xABCD, &status);
+ if(res!=0) {
+ errln("managed to change the last CE in an non-existing contraction!\n");
+ }
+ uprv_cnttab_close(testTable);
}
+void ContractionTableTest::TestErrorCodeChecking(){
+ UErrorCode status = U_REGEX_SET_CONTAINS_STRING;
+
+ uprv_cnttab_open(NULL, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_clone(NULL, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_changeLastCE(NULL, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_insertContraction(NULL, 0, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_addContraction(NULL, 0, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_setContraction(NULL, 0, 0, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_findCP(NULL, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ if (uprv_cnttab_getCE(NULL, 0, 0, &status) != UCOL_NOT_FOUND) {
+ errln("uprv_cnttab_getCE didn't return UCOL_NOT_FOUND\n");
+ }
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ if (uprv_cnttab_findCE(NULL, 0, 0, &status) != UCOL_NOT_FOUND) {
+ errln("uprv_cnttab_findCE didn't return UCOL_NOT_FOUND\n");
+ }
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_isTailored(NULL, 0, NULL, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+ uprv_cnttab_changeContraction(NULL, 0, 0, 0, &status);
+ if (status != U_REGEX_SET_CONTAINS_STRING) {
+ errln("Status was incorrectly modified to %s\n", u_errorName(status));
+ }
+}
void ContractionTableTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
{
@@ -186,6 +241,7 @@ void ContractionTableTest::runIndexedTest( int32_t index, UBool exec, const char
case 3: name = "TestClone"; if (exec) TestClone(/* par */); break;
case 4: name = "TestChangeContraction"; if (exec) TestChangeContraction(/* par */); break;
case 5: name = "TestChangeLastCE"; if (exec) TestChangeLastCE(/* par */); break;
+ case 6: name = "TestErrorCodeChecking"; if (exec) TestErrorCodeChecking(/* par */); break;
default: name = ""; break;
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/cntabcol.h b/Build/source/libs/icu-xetex/test/intltest/cntabcol.h
index 0badb914fd4..0e35d7dec0c 100644
--- a/Build/source/libs/icu-xetex/test/intltest/cntabcol.h
+++ b/Build/source/libs/icu-xetex/test/intltest/cntabcol.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2001, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -29,11 +29,11 @@ public:
void TestClone();
void TestChangeContraction();
void TestChangeLastCE();
+ void TestErrorCodeChecking();
private:
CntTable *testTable, *testClone;
/*CompactEIntArray *testMapping;*/
UNewTrie *testMapping;
- UErrorCode status;
};
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/convtest.cpp b/Build/source/libs/icu-xetex/test/intltest/convtest.cpp
index 791ed3c76c3..05da2ce1c1c 100644
--- a/Build/source/libs/icu-xetex/test/intltest/convtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/convtest.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003-2004, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -183,7 +183,7 @@ ConversionTest::TestFromUnicode() {
char charset[100], cbopt[4];
const char *option;
UnicodeString s, unicode, invalidUChars;
- int32_t offsetsLength;
+ int32_t offsetsLength, index;
UConverterFromUCallback callback;
TestDataModule *dataModule;
@@ -242,15 +242,17 @@ ConversionTest::TestFromUnicode() {
}
s=testCase->getString("callback", errorCode);
+ cc.setSub=0; // default: no subchar
- // read NUL-separated subchar first, if any
- length=u_strlen(p=s.getTerminatedBuffer());
- if(++length<s.length()) {
+ if((index=s.indexOf((UChar)0))>0) {
+ // read NUL-separated subchar first, if any
// copy the subchar from Latin-1 characters
// start after the NUL
+ p=s.getTerminatedBuffer();
+ length=index+1;
p+=length;
length=s.length()-length;
- if(length>=(int32_t)sizeof(cc.subchar)) {
+ if(length<=0 || length>=(int32_t)sizeof(cc.subchar)) {
errorCode=U_ILLEGAL_ARGUMENT_ERROR;
} else {
int32_t j;
@@ -260,13 +262,26 @@ ConversionTest::TestFromUnicode() {
}
// NUL-terminate the subchar
cc.subchar[j]=0;
+ cc.setSub=1;
}
// remove the NUL and subchar from s
- s.truncate(u_strlen(s.getBuffer()));
- } else {
- // no subchar
- cc.subchar[0]=0;
+ s.truncate(index);
+ } else if((index=s.indexOf((UChar)0x3d))>0) /* '=' */ {
+ // read a substitution string, separated by an equal sign
+ p=s.getBuffer()+index+1;
+ length=s.length()-(index+1);
+ if(length<0 || length>=LENGTHOF(cc.subString)) {
+ errorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ } else {
+ u_memcpy(cc.subString, p, length);
+ // NUL-terminate the subString
+ cc.subString[length]=0;
+ cc.setSub=-1;
+ }
+
+ // remove the equal sign and subString from s
+ s.truncate(index);
}
s.extract(0, 0x7fffffff, cbopt, sizeof(cbopt), "");
@@ -325,6 +340,7 @@ ConversionTest::TestGetUnicodeSet() {
ParsePosition pos;
UnicodeSet cnvSet, mapSet, mapnotSet, diffSet;
+ UnicodeSet *cnvSetPtr = &cnvSet;
UConverter *cnv;
TestDataModule *dataModule;
@@ -395,7 +411,7 @@ ConversionTest::TestGetUnicodeSet() {
continue;
}
- ucnv_getUnicodeSet(cnv, (USet *)&cnvSet, (UConverterUnicodeSet)which, &errorCode);
+ ucnv_getUnicodeSet(cnv, (USet *)cnvSetPtr, (UConverterUnicodeSet)which, &errorCode);
ucnv_close(cnv);
if(U_FAILURE(errorCode)) {
@@ -1051,10 +1067,19 @@ ConversionTest::FromUnicodeCase(ConversionCase &cc, UConverterFromUCallback call
// set the subchar
int32_t length;
- if((length=(int32_t)strlen(cc.subchar))!=0) {
+ if(cc.setSub>0) {
+ length=(int32_t)strlen(cc.subchar);
ucnv_setSubstChars(cnv, cc.subchar, (int8_t)length, &errorCode);
if(U_FAILURE(errorCode)) {
- errln("fromUnicode[%d](%s cb=\"%s\" fb=%d flush=%d) ucnv_setSubChars() failed - %s",
+ errln("fromUnicode[%d](%s cb=\"%s\" fb=%d flush=%d) ucnv_setSubstChars() failed - %s",
+ cc.caseNr, cc.charset, cc.cbopt, cc.fallbacks, cc.finalFlush, u_errorName(errorCode));
+ ucnv_close(cnv);
+ return FALSE;
+ }
+ } else if(cc.setSub<0) {
+ ucnv_setSubstString(cnv, cc.subString, -1, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ errln("fromUnicode[%d](%s cb=\"%s\" fb=%d flush=%d) ucnv_setSubstString() failed - %s",
cc.caseNr, cc.charset, cc.cbopt, cc.fallbacks, cc.finalFlush, u_errorName(errorCode));
ucnv_close(cnv);
return FALSE;
diff --git a/Build/source/libs/icu-xetex/test/intltest/convtest.h b/Build/source/libs/icu-xetex/test/intltest/convtest.h
index b98aec0c492..8fbde250fab 100644
--- a/Build/source/libs/icu-xetex/test/intltest/convtest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/convtest.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -29,7 +29,9 @@
struct ConversionCase {
int32_t caseNr;
const char *charset, *cbopt, *name;
+ UChar subString[16];
char subchar[8];
+ int8_t setSub;
const uint8_t *bytes;
int32_t bytesLength;
diff --git a/Build/source/libs/icu-xetex/test/intltest/csdetest.cpp b/Build/source/libs/icu-xetex/test/intltest/csdetest.cpp
new file mode 100644
index 00000000000..821afad3a1b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/csdetest.cpp
@@ -0,0 +1,518 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+
+#include "unicode/utypes.h"
+#include "unicode/ucsdet.h"
+#include "unicode/ucnv.h"
+#include "unicode/unistr.h"
+#include "unicode/putil.h"
+
+#include "intltest.h"
+#include "csdetest.h"
+
+#include "xmlparser.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef DEBUG_DETECT
+#include <stdio.h>
+#endif
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define NEW_ARRAY(type,count) (type *) /*uprv_*/malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) /*uprv_*/free((void *) (array))
+
+#define CH_SPACE 0x0020
+#define CH_SLASH 0x002F
+
+//---------------------------------------------------------------------------
+//
+// Test class boilerplate
+//
+//---------------------------------------------------------------------------
+CharsetDetectionTest::CharsetDetectionTest()
+{
+}
+
+
+CharsetDetectionTest::~CharsetDetectionTest()
+{
+}
+
+
+
+void CharsetDetectionTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
+{
+ if (exec) logln("TestSuite CharsetDetectionTest: ");
+ switch (index) {
+ case 0: name = "ConstructionTest";
+ if (exec) ConstructionTest();
+ break;
+
+ case 1: name = "UTF8Test";
+ if (exec) UTF8Test();
+ break;
+
+ case 2: name = "UTF16Test";
+ if (exec) UTF16Test();
+ break;
+
+ case 3: name = "C1BytesTest";
+ if (exec) C1BytesTest();
+ break;
+
+ case 4: name = "InputFilterTest";
+ if (exec) InputFilterTest();
+ break;
+
+ case 5: name = "DetectionTest";
+ if (exec) DetectionTest();
+ break;
+
+ default: name = "";
+ break; //needed to end loop
+ }
+}
+
+static UnicodeString *split(const UnicodeString &src, UChar ch, int32_t &splits)
+{
+ int32_t offset = -1;
+
+ splits = 1;
+ while((offset = src.indexOf(ch, offset + 1)) >= 0) {
+ splits += 1;
+ }
+
+ UnicodeString *result = new UnicodeString[splits];
+
+ int32_t start = 0;
+ int32_t split = 0;
+ int32_t end;
+
+ while((end = src.indexOf(ch, start)) >= 0) {
+ src.extractBetween(start, end, result[split++]);
+ start = end + 1;
+ }
+
+ src.extractBetween(start, src.length(), result[split]);
+
+ return result;
+}
+
+static char *extractBytes(const UnicodeString &source, const char *codepage, int32_t &length)
+{
+ int32_t sLength = source.length();
+ char *bytes = NULL;
+
+ length = source.extract(0, sLength, NULL, codepage);
+
+ if (length > 0) {
+ bytes = NEW_ARRAY(char, length + 1);
+ source.extract(0, sLength, bytes, codepage);
+ }
+
+ return bytes;
+}
+
+static void freeBytes(char *bytes)
+{
+ DELETE_ARRAY(bytes);
+}
+
+void CharsetDetectionTest::checkEncoding(const UnicodeString &testString, const UnicodeString &encoding, const UnicodeString &id)
+{
+ int32_t splits = 0;
+ int32_t testLength = testString.length();
+ UnicodeString *eSplit = split(encoding, CH_SLASH, splits);
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t cpLength = eSplit[0].length();
+ char codepage[64];
+
+ u_UCharsToChars(eSplit[0].getBuffer(), codepage, cpLength);
+ codepage[cpLength] = '\0';
+
+ UCharsetDetector *csd = ucsdet_open(&status);
+
+ int32_t byteLength = 0;
+ char *bytes = extractBytes(testString, codepage, byteLength);
+
+ if (bytes == NULL) {
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ errln("Can't open a " + encoding + " converter for " + id);
+#endif
+ return;
+ }
+
+ ucsdet_setText(csd, bytes, byteLength, &status);
+
+ int32_t matchCount = 0;
+ const UCharsetMatch **matches = ucsdet_detectAll(csd, &matchCount, &status);
+
+
+ UnicodeString name(ucsdet_getName(matches[0], &status));
+ UnicodeString lang(ucsdet_getLanguage(matches[0], &status));
+ UChar *decoded = NULL;
+ int32_t dLength = 0;
+
+ if (matchCount == 0) {
+ errln("Encoding detection failure for " + id + ": expected " + eSplit[0] + ", got no matches");
+ goto bail;
+ }
+
+ if (name.compare(eSplit[0]) != 0) {
+ errln("Encoding detection failure for " + id + ": expected " + eSplit[0] + ", got " + name);
+
+#ifdef DEBUG_DETECT
+ for (int32_t m = 0; m < matchCount; m += 1) {
+ const char *name = ucsdet_getName(matches[m], &status);
+ const char *lang = ucsdet_getLanguage(matches[m], &status);
+ int32_t confidence = ucsdet_getConfidence(matches[m], &status);
+
+ printf("%s (%s) %d\n", name, lang, confidence);
+ }
+#endif
+ goto bail;
+ }
+
+ if (splits > 1 && lang.compare(eSplit[1]) != 0) {
+ errln("Language detection failure for " + id + ", " + eSplit[0] + ": expected " + eSplit[1] + ", got " + lang);
+ goto bail;
+ }
+
+ decoded = NEW_ARRAY(UChar, testLength);
+ dLength = ucsdet_getUChars(matches[0], decoded, testLength, &status);
+
+ if (testString.compare(decoded, dLength) != 0) {
+ errln("Round-trip error for " + id + ", " + eSplit[0] + ": getUChars() didn't yeild the original string.");
+
+#ifdef DEBUG_DETECT
+ for(int32_t i = 0; i < testLength; i += 1) {
+ if(testString[i] != decoded[i]) {
+ printf("Strings differ at byte %d\n", i);
+ break;
+ }
+ }
+#endif
+
+ }
+
+ DELETE_ARRAY(decoded);
+
+bail:
+ freeBytes(bytes);
+ ucsdet_close(csd);
+ delete[] eSplit;
+}
+
+const char *CharsetDetectionTest::getPath(char buffer[2048], const char *filename) {
+ UErrorCode status = U_ZERO_ERROR;
+ const char *testDataDirectory = IntlTest::getSourceTestData(status);
+
+ if (U_FAILURE(status)) {
+ errln("ERROR: getPath() failed - %s", u_errorName(status));
+ return NULL;
+ }
+
+ strcpy(buffer, testDataDirectory);
+ strcat(buffer, filename);
+ return buffer;
+}
+
+void CharsetDetectionTest::ConstructionTest()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UCharsetDetector *csd = ucsdet_open(&status);
+ UEnumeration *e = ucsdet_getAllDetectableCharsets(csd, &status);
+ int32_t count = uenum_count(e, &status);
+
+#ifdef DEBUG_DETECT
+ printf("There are %d recognizers.\n", count);
+#endif
+
+ for(int32_t i = 0; i < count; i += 1) {
+ int32_t length;
+ const char *name = uenum_next(e, &length, &status);
+
+ if(name == NULL || length <= 0) {
+ errln("ucsdet_getAllDetectableCharsets() returned a null or empty name!");
+ }
+
+#ifdef DEBUG_DETECT
+ printf("%s\n", name);
+#endif
+ }
+
+ uenum_close(e);
+ ucsdet_close(csd);
+}
+
+void CharsetDetectionTest::UTF8Test()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString ss = "This is a string with some non-ascii characters that will "
+ "be converted to UTF-8, then shoved through the detection process. "
+ "\\u0391\\u0392\\u0393\\u0394\\u0395"
+ "Sure would be nice if our source could contain Unicode directly!";
+ UnicodeString s = ss.unescape();
+ int32_t byteLength = 0, sLength = s.length();
+ char *bytes = extractBytes(s, "UTF-8", byteLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ UChar *detected = NEW_ARRAY(UChar, sLength);
+
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("Detection failure for UTF-8: got no matches.");
+ goto bail;
+ }
+
+ ucsdet_getUChars(match, detected, sLength, &status);
+
+ if (s.compare(detected, sLength) != 0) {
+ errln("Round-trip test failed!");
+ }
+
+ ucsdet_setDeclaredEncoding(csd, "UTF-8", 5, &status); /* for coverage */
+
+bail:
+ DELETE_ARRAY(detected);
+ freeBytes(bytes);
+ ucsdet_close(csd);
+}
+
+void CharsetDetectionTest::UTF16Test()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ /* Notice the BOM on the start of this string */
+ UChar chars[] = {
+ 0xFEFF, 0x0623, 0x0648, 0x0631, 0x0648, 0x0628, 0x0627, 0x002C,
+ 0x0020, 0x0628, 0x0631, 0x0645, 0x062c, 0x064a, 0x0627, 0x062a,
+ 0x0020, 0x0627, 0x0644, 0x062d, 0x0627, 0x0633, 0x0648, 0x0628,
+ 0x0020, 0x002b, 0x0020, 0x0627, 0x0646, 0x062a, 0x0631, 0x0646,
+ 0x064a, 0x062a, 0x0000};
+ UnicodeString s(chars);
+ int32_t beLength = 0, leLength = 0;
+ char *beBytes = extractBytes(s, "UTF-16BE", beLength);
+ char *leBytes = extractBytes(s, "UTF-16LE", leLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *name;
+ int32_t conf;
+
+ ucsdet_setText(csd, beBytes, beLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("Encoding detection failure for UTF-16BE: got no matches.");
+ goto try_le;
+ }
+
+ name = ucsdet_getName(match, &status);
+ conf = ucsdet_getConfidence(match, &status);
+
+ if (strcmp(name, "UTF-16BE") != 0) {
+ errln("Encoding detection failure for UTF-16BE: got %s", name);
+ goto try_le; // no point in looking at confidence if we got the wrong character set.
+ }
+
+ if (conf != 100) {
+ errln("Did not get 100%% confidence for UTF-16BE: got %d", conf);
+ }
+
+try_le:
+ ucsdet_setText(csd, leBytes, leLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("Encoding detection failure for UTF-16LE: got no matches.");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+ conf = ucsdet_getConfidence(match, &status);
+
+
+ if (strcmp(name, "UTF-16LE") != 0) {
+ errln("Enconding detection failure for UTF-16LE: got %s", name);
+ goto bail; // no point in looking at confidence if we got the wrong character set.
+ }
+
+ if (conf != 100) {
+ errln("Did not get 100%% confidence for UTF-16LE: got %d", conf);
+ }
+
+bail:
+ freeBytes(leBytes);
+ freeBytes(beBytes);
+ ucsdet_close(csd);
+}
+
+void CharsetDetectionTest::InputFilterTest()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString ss = "<a> <lot> <of> <English> <inside> <the> <markup> Un tr\\u00E8s petit peu de Fran\\u00E7ais. <to> <confuse> <the> <detector>";
+ UnicodeString s = ss.unescape();
+ int32_t byteLength = 0;
+ char *bytes = extractBytes(s, "ISO-8859-1", byteLength);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *lang, *name;
+
+ ucsdet_enableInputFilter(csd, TRUE);
+
+ if (!ucsdet_isInputFilterEnabled(csd)) {
+ errln("ucsdet_enableInputFilter(csd, TRUE) did not enable input filter!");
+ }
+
+
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("Turning on the input filter resulted in no matches.");
+ goto turn_off;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (name == NULL || strcmp(name, "ISO-8859-1") != 0) {
+ errln("Turning on the input filter resulted in %s rather than ISO-8859-1.", name);
+ } else {
+ lang = ucsdet_getLanguage(match, &status);
+
+ if (lang == NULL || strcmp(lang, "fr") != 0) {
+ errln("Input filter did not strip markup!");
+ }
+ }
+
+turn_off:
+ ucsdet_enableInputFilter(csd, FALSE);
+ ucsdet_setText(csd, bytes, byteLength, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("Turning off the input filter resulted in no matches.");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (name == NULL || strcmp(name, "ISO-8859-1") != 0) {
+ errln("Turning off the input filter resulted in %s rather than ISO-8859-1.", name);
+ } else {
+ lang = ucsdet_getLanguage(match, &status);
+
+ if (lang == NULL || strcmp(lang, "en") != 0) {
+ errln("Unfiltered input did not detect as English!");
+ }
+ }
+
+bail:
+ freeBytes(bytes);
+ ucsdet_close(csd);
+}
+
+void CharsetDetectionTest::C1BytesTest()
+{
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString sISO = "This is a small sample of some English text. Just enough to be sure that it detects correctly.";
+ UnicodeString ssWindows = "This is another small sample of some English text. Just enough to be sure that it detects correctly. It also includes some \\u201CC1\\u201D bytes.";
+ UnicodeString sWindows = ssWindows.unescape();
+ int32_t lISO = 0, lWindows = 0;
+ char *bISO = extractBytes(sISO, "ISO-8859-1", lISO);
+ char *bWindows = extractBytes(sWindows, "windows-1252", lWindows);
+ UCharsetDetector *csd = ucsdet_open(&status);
+ const UCharsetMatch *match;
+ const char *name;
+
+ ucsdet_setText(csd, bWindows, lWindows, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("English test with C1 bytes got no matches.");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (strcmp(name, "windows-1252") != 0) {
+ errln("English text with C1 bytes does not detect as windows-1252, but as %s", name);
+ }
+
+ ucsdet_setText(csd, bISO, lISO, &status);
+ match = ucsdet_detect(csd, &status);
+
+ if (match == NULL) {
+ errln("English text without C1 bytes got no matches.");
+ goto bail;
+ }
+
+ name = ucsdet_getName(match, &status);
+
+ if (strcmp(name, "ISO-8859-1") != 0) {
+ errln("English text without C1 bytes does not detect as ISO-8859-1, but as %s", name);
+ }
+
+bail:
+ freeBytes(bWindows);
+ freeBytes(bISO);
+
+ ucsdet_close(csd);
+#endif
+}
+
+void CharsetDetectionTest::DetectionTest()
+{
+#if !UCONFIG_NO_REGULAR_EXPRESSIONS
+ UErrorCode status = U_ZERO_ERROR;
+ char path[2048];
+ const char *testFilePath = getPath(path, "csdetest.xml");
+
+ if (testFilePath == NULL) {
+ return; /* Couldn't get path: error message already output. */
+ }
+
+ UXMLParser *parser = UXMLParser::createParser(status);
+ if (!assertSuccess("UXMLParser::createParser",status)) return;
+ UXMLElement *root = parser->parseFile(testFilePath, status);
+ if (!assertSuccess( "parseFile",status)) return;
+
+ UnicodeString test_case = UNICODE_STRING_SIMPLE("test-case");
+ UnicodeString id_attr = UNICODE_STRING_SIMPLE("id");
+ UnicodeString enc_attr = UNICODE_STRING_SIMPLE("encodings");
+
+ const UXMLElement *testCase;
+ int32_t tc = 0;
+
+ while((testCase = root->nextChildElement(tc)) != NULL) {
+ if (testCase->getTagName().compare(test_case) == 0) {
+ const UnicodeString *id = testCase->getAttribute(id_attr);
+ const UnicodeString *encodings = testCase->getAttribute(enc_attr);
+ const UnicodeString text = testCase->getText(TRUE);
+ int32_t encodingCount;
+ UnicodeString *encodingList = split(*encodings, CH_SPACE, encodingCount);
+
+ for(int32_t e = 0; e < encodingCount; e += 1) {
+ checkEncoding(text, encodingList[e], *id);
+ }
+
+ delete[] encodingList;
+ }
+ }
+
+ delete root;
+ delete parser;
+#endif
+}
+
+
diff --git a/Build/source/libs/icu-xetex/test/intltest/csdetest.h b/Build/source/libs/icu-xetex/test/intltest/csdetest.h
new file mode 100644
index 00000000000..223a640a57b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/csdetest.h
@@ -0,0 +1,39 @@
+/*
+ **********************************************************************
+ * Copyright (C) 2005-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __CSDETEST_H
+#define __CSDETEST_H
+
+#include "unicode/utypes.h"
+#include "unicode/unistr.h"
+
+#include "intltest.h"
+
+class CharsetDetectionTest: public IntlTest {
+public:
+
+ CharsetDetectionTest();
+ virtual ~CharsetDetectionTest();
+
+ virtual void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par = NULL );
+
+ virtual void ConstructionTest();
+ virtual void UTF8Test();
+ virtual void UTF16Test();
+ virtual void C1BytesTest();
+ virtual void InputFilterTest();
+ virtual void DetectionTest();
+
+private:
+ void checkEncoding(const UnicodeString &testString,
+ const UnicodeString &encoding, const UnicodeString &id);
+
+ virtual const char *getPath(char buffer[2048], const char *filename);
+
+};
+
+#endif
diff --git a/Build/source/libs/icu-xetex/test/intltest/dtfmrgts.cpp b/Build/source/libs/icu-xetex/test/intltest/dtfmrgts.cpp
index 7eae05692d6..b4d5ee4ab82 100644
--- a/Build/source/libs/icu-xetex/test/intltest/dtfmrgts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/dtfmrgts.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -279,7 +279,7 @@ void DateFormatRegressionTest::Test4059917(void)
UnicodeString myDate;
fmt = new SimpleDateFormat( UnicodeString("yyyy/MM/dd"), status );
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
myDate = "1997/01/01";
aux917( fmt, myDate );
@@ -287,7 +287,7 @@ void DateFormatRegressionTest::Test4059917(void)
fmt = NULL;
fmt = new SimpleDateFormat( UnicodeString("yyyyMMdd"), status );
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
myDate = "19970101";
aux917( fmt, myDate );
@@ -335,7 +335,7 @@ void DateFormatRegressionTest::Test4060212(void)
logln("Using yyyy-DDD.hh:mm:ss");
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat *formatter = new SimpleDateFormat(UnicodeString("yyyy-DDD.hh:mm:ss"), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
ParsePosition pos(0);
UDate myDate = formatter->parse( dateString, pos );
UnicodeString myString;
@@ -362,7 +362,7 @@ void DateFormatRegressionTest::Test4060212(void)
delete formatter;
formatter = NULL;
formatter = new SimpleDateFormat(UnicodeString("yyyy-ddd.hh:mm:ss"), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
pos.setIndex(0);
myDate = formatter->parse( dateString, pos );
myString = fmt->format( myDate, myString );
@@ -703,7 +703,7 @@ void DateFormatRegressionTest::Test4101483(void)
{
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat *sdf = new SimpleDateFormat(UnicodeString("z"), Locale::getUS(), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
FieldPosition fp(UDAT_TIMEZONE_FIELD);
//Date d = date(9234567890L);
UDate d = 9234567890.0;
@@ -736,7 +736,7 @@ void DateFormatRegressionTest::Test4103340(void)
// and some arbitrary time
UDate d = date(97, 3, 1, 1, 1, 1);
SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("MMMM"), Locale::getUS(), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
UnicodeString s;
s = dateToString(d, s);
@@ -795,7 +795,7 @@ void DateFormatRegressionTest::Test4104136(void)
delete sdf;
return;
}
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
UnicodeString pattern = "'time' hh:mm";
sdf->applyPattern(pattern);
logln("pattern: \"" + pattern + "\"");
@@ -1002,7 +1002,7 @@ void DateFormatRegressionTest::Test4134203(void)
UErrorCode status = U_ZERO_ERROR;
UnicodeString dateFormat = "MM/dd/yy HH:mm:ss zzz";
SimpleDateFormat *fmt = new SimpleDateFormat(dateFormat, status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
ParsePosition p0(0);
UDate d = fmt->parse("01/22/92 04:52:00 GMT", p0);
logln(dateToString(d));
@@ -1024,7 +1024,7 @@ void DateFormatRegressionTest::Test4151631(void)
logln("pattern=" + pattern);
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat *format = new SimpleDateFormat(pattern, Locale::getUS(), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
UnicodeString result;
FieldPosition pos(FieldPosition::DONT_CARE);
result = format->format(date(1998-1900, UCAL_JUNE, 30, 13, 30, 0), result, pos);
@@ -1048,7 +1048,7 @@ void DateFormatRegressionTest::Test4151706(void)
UnicodeString dateString("Thursday, 31-Dec-98 23:00:00 GMT");
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat fmt(UnicodeString("EEEE, dd-MMM-yy HH:mm:ss z"), Locale::getUS(), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
//try {
UDate d = fmt.parse(dateString, status);
failure(status, "fmt->parse");
@@ -1075,8 +1075,10 @@ DateFormatRegressionTest::Test4162071(void)
UnicodeString format("EEE', 'dd-MMM-yyyy HH:mm:ss z"); // RFC 822/1123
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat df(format, Locale::getUS(), status);
- if(U_FAILURE(status))
+ if(U_FAILURE(status)) {
errln("Couldn't create SimpleDateFormat");
+ return;
+ }
//try {
UDate x = df.parse(dateString, status);
diff --git a/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.cpp b/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.cpp
index 0bc31ba5b8e..152ec5a595b 100644
--- a/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -54,6 +54,7 @@ DateFormatRoundTripTest::runIndexedTest( int32_t index, UBool exec, const char*
optionv = (par && *par=='v');
switch (index) {
CASE(0,TestDateFormatRoundTrip)
+ CASE(1, TestCentury)
default: name = ""; break;
}
}
@@ -82,6 +83,26 @@ DateFormatRoundTripTest::failure(UErrorCode status, const char* msg, const Unico
return FALSE;
}
+void DateFormatRoundTripTest::TestCentury()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ Locale locale("es_PA");
+ UnicodeString pattern = "MM/dd/yy hh:mm:ss a z";
+ SimpleDateFormat fmt(pattern, locale, status);
+ if(!assertSuccess("trying to construct", status))return;
+ UDate date[] = {-55018555891590.05, 0, 0};
+ UnicodeString result[2];
+
+ fmt.format(date[0], result[0]);
+ date[1] = fmt.parse(result[0], status);
+ fmt.format(date[1], result[1]);
+ date[2] = fmt.parse(result[1], status);
+
+ if (date[1] != date[2] || result[0] != result[1]) {
+ errln("Round trip failure: \"%S\" (%f), \"%S\" (%f)", result[0].getBuffer(), date[1], result[1].getBuffer(), date[2]);
+ }
+}
+
// ==
void DateFormatRoundTripTest::TestDateFormatRoundTrip()
@@ -90,6 +111,7 @@ void DateFormatRoundTripTest::TestDateFormatRoundTrip()
getFieldCal = Calendar::createInstance(status);
failure(status, "Calendar::createInstance");
+ if(!assertSuccess("trying to construct", status))return;
int32_t locCount = 0;
@@ -255,7 +277,7 @@ void DateFormatRoundTripTest::test(DateFormat *fmt, const Locale &origLocale, UB
// patterns we have, but it may be a problem later.
UBool hasEra = (pat.indexOf(UnicodeString("G")) != -1);
- UBool hasZone = (pat.indexOf(UnicodeString("Z")) != -1) || (pat.indexOf(UnicodeString("z")) != -1);
+ UBool hasZone = (pat.indexOf(UnicodeString("Z")) != -1) || (pat.indexOf(UnicodeString("z")) != -1) || (pat.indexOf(UnicodeString("v")) != -1);
// Because patterns contain incomplete data representing the Date,
// we must be careful of how we do the roundtrip. We start with
@@ -289,7 +311,7 @@ void DateFormatRoundTripTest::test(DateFormat *fmt, const Locale &origLocale, UB
for(loop = 0; loop < DEPTH; ++loop) {
if (loop > 0) {
d[loop] = fmt->parse(s[loop-1], status);
- failure(status, "fmt->parse", s[loop-1]);
+ failure(status, "fmt->parse", s[loop-1]+" in locale: " + origLocale.getName());
status = U_ZERO_ERROR; /* any error would have been reported */
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.h b/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.h
index 62db9e426e1..1749d0e6826 100644
--- a/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.h
+++ b/Build/source/libs/icu-xetex/test/intltest/dtfmtrtts.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -30,6 +30,7 @@ public:
virtual ~DateFormatRoundTripTest();
void TestDateFormatRoundTrip(void);
+ void TestCentury(void);
void test(const Locale& loc);
void test(DateFormat *fmt, const Locale &origLocale, UBool timeOnly = FALSE );
int32_t getField(UDate d, int32_t f);
diff --git a/Build/source/libs/icu-xetex/test/intltest/dtfmttst.cpp b/Build/source/libs/icu-xetex/test/intltest/dtfmttst.cpp
index 4e78305a96f..7d18605ec31 100644
--- a/Build/source/libs/icu-xetex/test/intltest/dtfmttst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/dtfmttst.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -20,6 +20,20 @@
#include "cstring.h"
#include "caltest.h" // for fieldName
+#ifdef U_WINDOWS
+#include "windttst.h"
+#endif
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define ASSERT_OK(status) if(U_FAILURE(status)) {errln(#status " = %s", u_errorName(status)); return; }
+
+//--------------------------------------------------------------------
+// Time bomb - allows temporary behavior that expires at a given
+// release
+//--------------------------------------------------------------------
+static const UVersionInfo ICU_37 = {3,7,0,0};
+
// *****************************************************************************
// class DateFormatTest
// *****************************************************************************
@@ -54,6 +68,13 @@ void DateFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &nam
TESTCASE(23,TestGreekMay);
TESTCASE(24,TestGenericTime);
TESTCASE(25,TestGenericTimeZoneOrder);
+ TESTCASE(26,TestTimeZoneStringsAPI);
+ TESTCASE(27,TestHost);
+ TESTCASE(28,TestEras);
+ TESTCASE(29,TestNarrowNames);
+ TESTCASE(30,TestStandAloneDays);
+ TESTCASE(31,TestStandAloneMonths);
+ TESTCASE(32,TestQuarters);
default: name = ""; break;
}
}
@@ -175,6 +196,9 @@ DateFormatTest::TestEquals()
if (!(*fmtA == *fmtB)) errln((UnicodeString)"FAIL");
delete fmtA;
delete fmtB;
+
+ TimeZone* test = TimeZone::createTimeZone("PDT");
+ delete test;
}
// -------------------------------------
@@ -190,13 +214,27 @@ DateFormatTest::TestTwoDigitYearDSTParse(void)
SimpleDateFormat *fmt = new SimpleDateFormat((UnicodeString)"dd-MMM-yy h:mm:ss 'o''clock' a z", Locale::getEnglish(), status);
//DateFormat* fmt = DateFormat::createDateTimeInstance(DateFormat::MEDIUM, DateFormat::FULL, Locale::ENGLISH);
UnicodeString* s = new UnicodeString("03-Apr-04 2:20:47 o'clock AM PST", "");
- int32_t hour = 2;
-
+ TimeZone* defaultTZ = TimeZone::createDefault();
+ TimeZone* PST = TimeZone::createTimeZone("PST");
+ int32_t defaultOffset = defaultTZ->getRawOffset();
+ int32_t PSTOffset = PST->getRawOffset();
+ int32_t hour = 2 + (defaultOffset - PSTOffset) / (60*60*1000);
+ // hour is the expected hour of day, in units of seconds
+ hour = ((hour < 0) ? hour + 24 : hour) * 60*60;
+
UnicodeString str;
+
+ if(U_FAILURE(status)) {
+ errln("Could not set up test. exitting");
+ return;
+ }
+
UDate d = fmt->parse(*s, status);
logln(*s + " P> " + ((DateFormat*)fullFmt)->format(d, str));
int32_t y, m, day, hr, min, sec;
dateToFields(d, y, m, day, hr, min, sec);
+ hour += defaultTZ->inDaylightTime(d, status) ? 1 : 0;
+ hr = hr*60*60;
if (hr != hour)
errln((UnicodeString)"FAIL: Should parse to hour " + hour + " but got " + hr);
@@ -206,6 +244,8 @@ DateFormatTest::TestTwoDigitYearDSTParse(void)
delete s;
delete fmt;
delete fullFmt;
+ delete PST;
+ delete defaultTZ;
}
// -------------------------------------
@@ -236,7 +276,7 @@ DateFormatTest::escape(UnicodeString& s)
/**
* This MUST be kept in sync with DateFormatSymbols.gPatternChars.
*/
-static const char* PATTERN_CHARS = "GyMdkHmsSEDFwWahKzYeugAZvcL";
+static const char* PATTERN_CHARS = "GyMdkHmsSEDFwWahKzYeugAZvcLQq";
/**
* A list of the names of all the fields in DateFormat.
@@ -269,7 +309,9 @@ static const char* DATEFORMAT_FIELD_NAMES[] = {
"TIMEZONE_RFC_FIELD",
"GENERIC_TIMEZONE_FIELD",
"STAND_ALONE_DAY_FIELD",
- "STAND_ALONE_MONTH_FIELD"
+ "STAND_ALONE_MONTH_FIELD",
+ "QUARTER_FIELD",
+ "STAND_ALONE_QUARTER_FIELD"
};
static const int32_t DATEFORMAT_FIELD_NAMES_LENGTH =
@@ -286,7 +328,13 @@ void DateFormatTest::TestFieldPosition() {
// Verify data
DateFormatSymbols rootSyms(Locale(""), ec);
assertSuccess("DateFormatSymbols", ec);
- assertEquals("patternChars", PATTERN_CHARS, rootSyms.getLocalPatternChars(buf));
+
+ // local pattern chars not accurate when CLDR 1.4 data
+ // first introduced...
+ if(isICUVersionAtLeast(ICU_37)) {
+ assertEquals("patternChars", PATTERN_CHARS, rootSyms.getLocalPatternChars(buf));
+ }
+
assertEquals("patternChars", PATTERN_CHARS, DateFormatSymbols::getPatternUChars());
assertTrue("DATEFORMAT_FIELD_NAMES", DATEFORMAT_FIELD_NAMES_LENGTH == UDAT_FIELD_COUNT);
assertTrue("Data", UDAT_FIELD_COUNT == uprv_strlen(PATTERN_CHARS));
@@ -317,16 +365,17 @@ void DateFormatTest::TestFieldPosition() {
// Fields are given in order of DateFormat field number
const char* EXPECTED[] = {
"", "1997", "August", "13", "", "", "34", "12", "",
- "Wednesday", "", "", "", "", "PM", "2", "", "PDT", "", "", "", "", "", "", "", "","",
+ "Wednesday", "", "", "", "", "PM", "2", "", "", "", "", "", "", "", "", "PT", "", "", "", "",
"", "1997", "ao\\u00FBt", "13", "", "14", "34", "", "",
- "mercredi", "", "", "", "", "", "", "", "HAP (\\u00C9UA)", "", "", "", "", "", "", "", "","",
+ "mercredi", "", "", "", "", "", "", "", "HAP (\\u00C9UA)", "", "", "", "", "", "", "", "", "", "", "",
"AD", "1997", "8", "13", "14", "14", "34", "12", "5",
- "Wed", "225", "2", "33", "3", "PM", "2", "2", "PDT", "1997", "4", "1997", "2450674", "52452513", "-0700", "PT", "4","8",
+ "Wed", "225", "2", "33", "3", "PM", "2", "2", "PDT", "1997", "4", "1997", "2450674", "52452513", "-0700", "PT", "4", "8", "3", "3",
"Anno Domini", "1997", "August", "0013", "0014", "0014", "0034", "0012", "5130",
- "Wednesday", "0225", "0002", "0033", "0003", "PM", "0002", "0002", "Pacific Daylight Time", "1997", "0004", "1997", "2450674", "52452513", "-0700", "Pacific Time", "Wednesday", "August"
+ "Wednesday", "0225", "0002", "0033", "0003", "PM", "0002", "0002", "Pacific Daylight Time", "1997", "0004", "1997", "2450674", "52452513", "-0700",
+ "Pacific Time", "Wednesday", "August", "3rd quarter", "3rd quarter"
};
const int32_t EXPECTED_LENGTH = sizeof(EXPECTED)/sizeof(EXPECTED[0]);
@@ -347,7 +396,8 @@ void DateFormatTest::TestFieldPosition() {
for (i = 0; i < UDAT_FIELD_COUNT; ++i, ++exp) {
FieldPosition pos(i);
- df->format(aug13, buf.remove(), pos);
+ buf.remove();
+ df->format(aug13, buf, pos);
UnicodeString field;
buf.extractBetween(pos.getBeginIndex(), pos.getEndIndex(), field);
assertEquals((UnicodeString)"field #" + i + " " + DATEFORMAT_FIELD_NAMES[i],
@@ -376,7 +426,7 @@ void DateFormatTest::TestGeneral() {
"y/M/d H:mm:ss.SSS", "F", "2004 03 10 16:36:31.567", "2004/3/10 16:36:31.567",
"y/M/d H:mm:ss.SSSS", "pf", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.568", "2004/3/10 16:36:31.5680",
};
- expect(DATA, sizeof(DATA)/sizeof(DATA[0]), Locale("en", "", ""));
+ expect(DATA, ARRAY_SIZE(DATA), Locale("en", "", ""));
}
// -------------------------------------
@@ -391,6 +441,7 @@ DateFormatTest::TestPartialParse994()
{
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat* f = new SimpleDateFormat(status);
+ ASSERT_OK(status);
UDate null = 0;
tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 10:11:42", date(97, 1 - 1, 17, 10, 11, 42));
tryPat994(f, "yy/MM/dd HH:mm:ss", "97/01/17 10:", null);
@@ -452,6 +503,7 @@ DateFormatTest::TestRunTogetherPattern985()
UnicodeString now, then;
//UBool flag;
SimpleDateFormat *formatter = new SimpleDateFormat(format, status);
+ ASSERT_OK(status);
UDate date1 = Calendar::getNow();
((DateFormat*)formatter)->format(date1, now);
logln(now);
@@ -478,6 +530,7 @@ DateFormatTest::TestRunTogetherPattern917()
SimpleDateFormat* fmt;
UnicodeString myDate;
fmt = new SimpleDateFormat((UnicodeString)"yyyy/MM/dd", status);
+ ASSERT_OK(status);
myDate = "1997/02/03";
testIt917(fmt, myDate, date(97, 2 - 1, 3));
delete fmt;
@@ -573,12 +626,14 @@ DateFormatTest::TestLetterDPattern212()
expLittleD = expBigD; // Expect the same, with default lenient parsing
logln((UnicodeString)"dateString= " + dateString);
SimpleDateFormat *formatter = new SimpleDateFormat(bigD, status);
+ ASSERT_OK(status);
ParsePosition pos(0);
UDate myDate = formatter->parse(dateString, pos);
logln((UnicodeString)"Using " + bigD + " -> " + myDate);
if (myDate != expBigD) errln((UnicodeString)"FAIL: Expected " + dateToString(expBigD));
delete formatter;
formatter = new SimpleDateFormat(littleD, status);
+ ASSERT_OK(status);
pos = ParsePosition(0);
myDate = formatter->parse(dateString, pos);
logln((UnicodeString)"Using " + littleD + " -> " + dateToString(myDate));
@@ -646,6 +701,7 @@ DateFormatTest::TestQuotePattern161()
{
UErrorCode status = U_ZERO_ERROR;
SimpleDateFormat* formatter = new SimpleDateFormat((UnicodeString)"MM/dd/yyyy 'at' hh:mm:ss a zzz", status);
+ ASSERT_OK(status);
UDate currentTime_1 = date(97, UCAL_AUGUST, 13, 10, 42, 28);
UnicodeString dateString; ((DateFormat*)formatter)->format(currentTime_1, dateString);
UnicodeString exp("08/13/1997 at 10:42:28 AM ");
@@ -673,6 +729,10 @@ DateFormatTest::TestBadInput135()
};
int32_t strings_length = (int32_t)(sizeof(strings) / sizeof(strings[0]));
DateFormat *full = DateFormat::createDateTimeInstance(DateFormat::LONG, DateFormat::LONG);
+ if(full==NULL) {
+ errln("could not create date time instance");
+ return;
+ }
UnicodeString expected("March 1, 2000 1:23:45 AM ");
for (int32_t i = 0; i < strings_length;++i) {
const char* text = strings[i];
@@ -985,7 +1045,7 @@ DateFormatTest::TestLocaleDateFormat() // Bug 495
UnicodeString expectedFRENCH ( "lundi 15 septembre 1997 00 h 00 HAP (\\u00C9UA)" );
expectedFRENCH = expectedFRENCH.unescape();
//UnicodeString expectedUS ( "Monday, September 15, 1997 12:00:00 o'clock AM PDT" );
- UnicodeString expectedUS ( "Monday, September 15, 1997 12:00:00 AM PDT" );
+ UnicodeString expectedUS ( "Monday, September 15, 1997 12:00:00 AM PT" );
logln((UnicodeString)"Date set to : " + dateToString(testDate));
UnicodeString out;
if (dfUS == NULL || dfFrench == NULL){
@@ -1155,6 +1215,7 @@ void DateFormatTest::TestWhiteSpaceParsing() {
void DateFormatTest::TestInvalidPattern() {
UErrorCode ec = U_ZERO_ERROR;
SimpleDateFormat f(UnicodeString("Yesterday"), ec);
+ ASSERT_OK(ec);
UnicodeString out;
FieldPosition pos;
f.format((UDate)0, out, pos);
@@ -1177,6 +1238,273 @@ void DateFormatTest::TestGreekMay() {
}
}
+void DateFormatTest::TestStandAloneMonths()
+{
+ const char *EN_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "yyyy LLLL dd H:mm:ss", "fp", "2004 03 10 16:36:31", "2004 March 10 16:36:31", "2004 03 10 16:36:31",
+ "yyyy LLL dd H:mm:ss", "fp", "2004 03 10 16:36:31", "2004 Mar 10 16:36:31", "2004 03 10 16:36:31",
+ "yyyy LLLL dd H:mm:ss", "F", "2004 03 10 16:36:31", "2004 March 10 16:36:31",
+ "yyyy LLL dd H:mm:ss", "pf", "2004 Mar 10 16:36:31", "2004 03 10 16:36:31", "2004 Mar 10 16:36:31",
+
+ "LLLL", "fp", "1970 01 01 0:00:00", "January", "1970 01 01 0:00:00",
+ "LLLL", "fp", "1970 02 01 0:00:00", "February", "1970 02 01 0:00:00",
+ "LLLL", "fp", "1970 03 01 0:00:00", "March", "1970 03 01 0:00:00",
+ "LLLL", "fp", "1970 04 01 0:00:00", "April", "1970 04 01 0:00:00",
+ "LLLL", "fp", "1970 05 01 0:00:00", "May", "1970 05 01 0:00:00",
+ "LLLL", "fp", "1970 06 01 0:00:00", "June", "1970 06 01 0:00:00",
+ "LLLL", "fp", "1970 07 01 0:00:00", "July", "1970 07 01 0:00:00",
+ "LLLL", "fp", "1970 08 01 0:00:00", "August", "1970 08 01 0:00:00",
+ "LLLL", "fp", "1970 09 01 0:00:00", "September", "1970 09 01 0:00:00",
+ "LLLL", "fp", "1970 10 01 0:00:00", "October", "1970 10 01 0:00:00",
+ "LLLL", "fp", "1970 11 01 0:00:00", "November", "1970 11 01 0:00:00",
+ "LLLL", "fp", "1970 12 01 0:00:00", "December", "1970 12 01 0:00:00",
+
+ "LLL", "fp", "1970 01 01 0:00:00", "Jan", "1970 01 01 0:00:00",
+ "LLL", "fp", "1970 02 01 0:00:00", "Feb", "1970 02 01 0:00:00",
+ "LLL", "fp", "1970 03 01 0:00:00", "Mar", "1970 03 01 0:00:00",
+ "LLL", "fp", "1970 04 01 0:00:00", "Apr", "1970 04 01 0:00:00",
+ "LLL", "fp", "1970 05 01 0:00:00", "May", "1970 05 01 0:00:00",
+ "LLL", "fp", "1970 06 01 0:00:00", "Jun", "1970 06 01 0:00:00",
+ "LLL", "fp", "1970 07 01 0:00:00", "Jul", "1970 07 01 0:00:00",
+ "LLL", "fp", "1970 08 01 0:00:00", "Aug", "1970 08 01 0:00:00",
+ "LLL", "fp", "1970 09 01 0:00:00", "Sep", "1970 09 01 0:00:00",
+ "LLL", "fp", "1970 10 01 0:00:00", "Oct", "1970 10 01 0:00:00",
+ "LLL", "fp", "1970 11 01 0:00:00", "Nov", "1970 11 01 0:00:00",
+ "LLL", "fp", "1970 12 01 0:00:00", "Dec", "1970 12 01 0:00:00",
+ };
+
+ const char *CS_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "yyyy LLLL dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 duben 10 16:36:31", "2004 04 10 16:36:31",
+ "yyyy MMMM dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31", "2004 04 10 16:36:31",
+ "yyyy LLL dd H:mm:ss", "fp", "2004 04 10 16:36:31", "2004 4. 10 16:36:31", "2004 04 10 16:36:31",
+ "yyyy LLLL dd H:mm:ss", "F", "2004 04 10 16:36:31", "2004 duben 10 16:36:31",
+ "yyyy MMMM dd H:mm:ss", "F", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31",
+ "yyyy LLLL dd H:mm:ss", "pf", "2004 duben 10 16:36:31", "2004 04 10 16:36:31", "2004 duben 10 16:36:31",
+ "yyyy MMMM dd H:mm:ss", "pf", "2004 dubna 10 16:36:31", "2004 04 10 16:36:31", "2004 dubna 10 16:36:31",
+
+ "LLLL", "fp", "1970 01 01 0:00:00", "leden", "1970 01 01 0:00:00",
+ "LLLL", "fp", "1970 02 01 0:00:00", "\\u00FAnor", "1970 02 01 0:00:00",
+ "LLLL", "fp", "1970 03 01 0:00:00", "b\\u0159ezen", "1970 03 01 0:00:00",
+ "LLLL", "fp", "1970 04 01 0:00:00", "duben", "1970 04 01 0:00:00",
+ "LLLL", "fp", "1970 05 01 0:00:00", "kv\\u011Bten", "1970 05 01 0:00:00",
+ "LLLL", "fp", "1970 06 01 0:00:00", "\\u010Derven", "1970 06 01 0:00:00",
+ "LLLL", "fp", "1970 07 01 0:00:00", "\\u010Dervenec", "1970 07 01 0:00:00",
+ "LLLL", "fp", "1970 08 01 0:00:00", "srpen", "1970 08 01 0:00:00",
+ "LLLL", "fp", "1970 09 01 0:00:00", "z\\u00E1\\u0159\\u00ED", "1970 09 01 0:00:00",
+ "LLLL", "fp", "1970 10 01 0:00:00", "\\u0159\\u00EDjen", "1970 10 01 0:00:00",
+ "LLLL", "fp", "1970 11 01 0:00:00", "listopad", "1970 11 01 0:00:00",
+ "LLLL", "fp", "1970 12 01 0:00:00", "prosinec", "1970 12 01 0:00:00",
+
+ "LLL", "fp", "1970 01 01 0:00:00", "1.", "1970 01 01 0:00:00",
+ "LLL", "fp", "1970 02 01 0:00:00", "2.", "1970 02 01 0:00:00",
+ "LLL", "fp", "1970 03 01 0:00:00", "3.", "1970 03 01 0:00:00",
+ "LLL", "fp", "1970 04 01 0:00:00", "4.", "1970 04 01 0:00:00",
+ "LLL", "fp", "1970 05 01 0:00:00", "5.", "1970 05 01 0:00:00",
+ "LLL", "fp", "1970 06 01 0:00:00", "6.", "1970 06 01 0:00:00",
+ "LLL", "fp", "1970 07 01 0:00:00", "7.", "1970 07 01 0:00:00",
+ "LLL", "fp", "1970 08 01 0:00:00", "8.", "1970 08 01 0:00:00",
+ "LLL", "fp", "1970 09 01 0:00:00", "9.", "1970 09 01 0:00:00",
+ "LLL", "fp", "1970 10 01 0:00:00", "10.", "1970 10 01 0:00:00",
+ "LLL", "fp", "1970 11 01 0:00:00", "11.", "1970 11 01 0:00:00",
+ "LLL", "fp", "1970 12 01 0:00:00", "12.", "1970 12 01 0:00:00",
+ };
+
+ expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
+ expect(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", ""));
+}
+
+void DateFormatTest::TestStandAloneDays()
+{
+ const char *EN_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "cccc", "fp", "1970 01 04 0:00:00", "Sunday", "1970 01 04 0:00:00",
+ "cccc", "fp", "1970 01 05 0:00:00", "Monday", "1970 01 05 0:00:00",
+ "cccc", "fp", "1970 01 06 0:00:00", "Tuesday", "1970 01 06 0:00:00",
+ "cccc", "fp", "1970 01 07 0:00:00", "Wednesday", "1970 01 07 0:00:00",
+ "cccc", "fp", "1970 01 01 0:00:00", "Thursday", "1970 01 01 0:00:00",
+ "cccc", "fp", "1970 01 02 0:00:00", "Friday", "1970 01 02 0:00:00",
+ "cccc", "fp", "1970 01 03 0:00:00", "Saturday", "1970 01 03 0:00:00",
+
+ "ccc", "fp", "1970 01 04 0:00:00", "Sun", "1970 01 04 0:00:00",
+ "ccc", "fp", "1970 01 05 0:00:00", "Mon", "1970 01 05 0:00:00",
+ "ccc", "fp", "1970 01 06 0:00:00", "Tue", "1970 01 06 0:00:00",
+ "ccc", "fp", "1970 01 07 0:00:00", "Wed", "1970 01 07 0:00:00",
+ "ccc", "fp", "1970 01 01 0:00:00", "Thu", "1970 01 01 0:00:00",
+ "ccc", "fp", "1970 01 02 0:00:00", "Fri", "1970 01 02 0:00:00",
+ "ccc", "fp", "1970 01 03 0:00:00", "Sat", "1970 01 03 0:00:00",
+ };
+
+ const char *CS_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "cccc", "fp", "1970 01 04 0:00:00", "ned\\u011Ble", "1970 01 04 0:00:00",
+ "cccc", "fp", "1970 01 05 0:00:00", "pond\\u011Bl\\u00ED", "1970 01 05 0:00:00",
+ "cccc", "fp", "1970 01 06 0:00:00", "\\u00FAter\\u00FD", "1970 01 06 0:00:00",
+ "cccc", "fp", "1970 01 07 0:00:00", "st\\u0159eda", "1970 01 07 0:00:00",
+ "cccc", "fp", "1970 01 01 0:00:00", "\\u010Dtvrtek", "1970 01 01 0:00:00",
+ "cccc", "fp", "1970 01 02 0:00:00", "p\\u00E1tek", "1970 01 02 0:00:00",
+ "cccc", "fp", "1970 01 03 0:00:00", "sobota", "1970 01 03 0:00:00",
+
+ "ccc", "fp", "1970 01 04 0:00:00", "ne", "1970 01 04 0:00:00",
+ "ccc", "fp", "1970 01 05 0:00:00", "po", "1970 01 05 0:00:00",
+ "ccc", "fp", "1970 01 06 0:00:00", "\\u00FAt", "1970 01 06 0:00:00",
+ "ccc", "fp", "1970 01 07 0:00:00", "st", "1970 01 07 0:00:00",
+ "ccc", "fp", "1970 01 01 0:00:00", "\\u010Dt", "1970 01 01 0:00:00",
+ "ccc", "fp", "1970 01 02 0:00:00", "p\\u00E1", "1970 01 02 0:00:00",
+ "ccc", "fp", "1970 01 03 0:00:00", "so", "1970 01 03 0:00:00",
+ };
+
+ expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
+ expect(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", ""));
+}
+
+void DateFormatTest::TestNarrowNames()
+{
+ const char *EN_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "yyyy MMMMM dd H:mm:ss", "2004 03 10 16:36:31", "2004 M 10 16:36:31",
+ "yyyy LLLLL dd H:mm:ss", "2004 03 10 16:36:31", "2004 M 10 16:36:31",
+
+ "MMMMM", "1970 01 01 0:00:00", "J",
+ "MMMMM", "1970 02 01 0:00:00", "F",
+ "MMMMM", "1970 03 01 0:00:00", "M",
+ "MMMMM", "1970 04 01 0:00:00", "A",
+ "MMMMM", "1970 05 01 0:00:00", "M",
+ "MMMMM", "1970 06 01 0:00:00", "J",
+ "MMMMM", "1970 07 01 0:00:00", "J",
+ "MMMMM", "1970 08 01 0:00:00", "A",
+ "MMMMM", "1970 09 01 0:00:00", "S",
+ "MMMMM", "1970 10 01 0:00:00", "O",
+ "MMMMM", "1970 11 01 0:00:00", "N",
+ "MMMMM", "1970 12 01 0:00:00", "D",
+
+ "LLLLL", "1970 01 01 0:00:00", "J",
+ "LLLLL", "1970 02 01 0:00:00", "F",
+ "LLLLL", "1970 03 01 0:00:00", "M",
+ "LLLLL", "1970 04 01 0:00:00", "A",
+ "LLLLL", "1970 05 01 0:00:00", "M",
+ "LLLLL", "1970 06 01 0:00:00", "J",
+ "LLLLL", "1970 07 01 0:00:00", "J",
+ "LLLLL", "1970 08 01 0:00:00", "A",
+ "LLLLL", "1970 09 01 0:00:00", "S",
+ "LLLLL", "1970 10 01 0:00:00", "O",
+ "LLLLL", "1970 11 01 0:00:00", "N",
+ "LLLLL", "1970 12 01 0:00:00", "D",
+
+ "EEEEE", "1970 01 04 0:00:00", "S",
+ "EEEEE", "1970 01 05 0:00:00", "M",
+ "EEEEE", "1970 01 06 0:00:00", "T",
+ "EEEEE", "1970 01 07 0:00:00", "W",
+ "EEEEE", "1970 01 01 0:00:00", "T",
+ "EEEEE", "1970 01 02 0:00:00", "F",
+ "EEEEE", "1970 01 03 0:00:00", "S",
+
+ "ccccc", "1970 01 04 0:00:00", "S",
+ "ccccc", "1970 01 05 0:00:00", "M",
+ "ccccc", "1970 01 06 0:00:00", "T",
+ "ccccc", "1970 01 07 0:00:00", "W",
+ "ccccc", "1970 01 01 0:00:00", "T",
+ "ccccc", "1970 01 02 0:00:00", "F",
+ "ccccc", "1970 01 03 0:00:00", "S",
+ };
+
+ const char *CS_DATA[] = {
+ "yyyy MM dd HH:mm:ss",
+
+ "yyyy LLLLL dd H:mm:ss", "2004 04 10 16:36:31", "2004 d 10 16:36:31",
+ "yyyy MMMMM dd H:mm:ss", "2004 04 10 16:36:31", "2004 d 10 16:36:31",
+
+ "MMMMM", "1970 01 01 0:00:00", "l",
+ "MMMMM", "1970 02 01 0:00:00", "\\u00FA",
+ "MMMMM", "1970 03 01 0:00:00", "b",
+ "MMMMM", "1970 04 01 0:00:00", "d",
+ "MMMMM", "1970 05 01 0:00:00", "k",
+ "MMMMM", "1970 06 01 0:00:00", "\\u010D",
+ "MMMMM", "1970 07 01 0:00:00", "\\u010D",
+ "MMMMM", "1970 08 01 0:00:00", "s",
+ "MMMMM", "1970 09 01 0:00:00", "z",
+ "MMMMM", "1970 10 01 0:00:00", "\\u0159",
+ "MMMMM", "1970 11 01 0:00:00", "l",
+ "MMMMM", "1970 12 01 0:00:00", "p",
+
+ "LLLLL", "1970 01 01 0:00:00", "l",
+ "LLLLL", "1970 02 01 0:00:00", "\\u00FA",
+ "LLLLL", "1970 03 01 0:00:00", "b",
+ "LLLLL", "1970 04 01 0:00:00", "d",
+ "LLLLL", "1970 05 01 0:00:00", "k",
+ "LLLLL", "1970 06 01 0:00:00", "\\u010D",
+ "LLLLL", "1970 07 01 0:00:00", "\\u010D",
+ "LLLLL", "1970 08 01 0:00:00", "s",
+ "LLLLL", "1970 09 01 0:00:00", "z",
+ "LLLLL", "1970 10 01 0:00:00", "\\u0159",
+ "LLLLL", "1970 11 01 0:00:00", "l",
+ "LLLLL", "1970 12 01 0:00:00", "p",
+
+ "EEEEE", "1970 01 04 0:00:00", "N",
+ "EEEEE", "1970 01 05 0:00:00", "P",
+ "EEEEE", "1970 01 06 0:00:00", "\\u00DA",
+ "EEEEE", "1970 01 07 0:00:00", "S",
+ "EEEEE", "1970 01 01 0:00:00", "\\u010C",
+ "EEEEE", "1970 01 02 0:00:00", "P",
+ "EEEEE", "1970 01 03 0:00:00", "S",
+
+ "ccccc", "1970 01 04 0:00:00", "N",
+ "ccccc", "1970 01 05 0:00:00", "P",
+ "ccccc", "1970 01 06 0:00:00", "\\u00DA",
+ "ccccc", "1970 01 07 0:00:00", "S",
+ "ccccc", "1970 01 01 0:00:00", "\\u010C",
+ "ccccc", "1970 01 02 0:00:00", "P",
+ "ccccc", "1970 01 03 0:00:00", "S",
+ };
+
+ expectFormat(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
+ expectFormat(CS_DATA, ARRAY_SIZE(CS_DATA), Locale("cs", "", ""));
+}
+
+void DateFormatTest::TestEras()
+{
+ const char *EN_DATA[] = {
+ "yyyy MM dd",
+
+ "MMMM dd yyyy G", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17",
+ "MMMM dd yyyy GG", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17",
+ "MMMM dd yyyy GGG", "fp", "1951 07 17", "July 17 1951 AD", "1951 07 17",
+ "MMMM dd yyyy GGGG", "fp", "1951 07 17", "July 17 1951 Anno Domini", "1951 07 17",
+
+ "MMMM dd yyyy G", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17",
+ "MMMM dd yyyy GG", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17",
+ "MMMM dd yyyy GGG", "fp", "-438 07 17", "July 17 0439 BC", "-438 07 17",
+ "MMMM dd yyyy GGGG", "fp", "-438 07 17", "July 17 0439 Before Christ", "-438 07 17",
+ };
+
+ expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
+}
+
+void DateFormatTest::TestQuarters()
+{
+ const char *EN_DATA[] = {
+ "yyyy MM dd",
+
+ "Q", "fp", "1970 01 01", "1", "1970 01 01",
+ "QQ", "fp", "1970 04 01", "02", "1970 04 01",
+ "QQQ", "fp", "1970 07 01", "Q3", "1970 07 01",
+ "QQQQ", "fp", "1970 10 01", "4th quarter", "1970 10 01",
+
+ "q", "fp", "1970 01 01", "1", "1970 01 01",
+ "qq", "fp", "1970 04 01", "02", "1970 04 01",
+ "qqq", "fp", "1970 07 01", "Q3", "1970 07 01",
+ "qqqq", "fp", "1970 10 01", "4th quarter", "1970 10 01",
+ };
+
+ expect(EN_DATA, ARRAY_SIZE(EN_DATA), Locale("en", "", ""));
+}
+
/**
* Test parsing. Input is an array that starts with the following
* header:
@@ -1301,16 +1629,16 @@ void DateFormatTest::expect(const char** data, int32_t data_length,
// 'f'
const char* datestr = data[i++];
const char* string = data[i++];
- UDate date = ref.parse(datestr, ec);
+ UDate date = ref.parse(ctou(datestr), ec);
if (!assertSuccess("parse", ec)) return;
assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")",
- string,
+ ctou(string),
fmt.format(date, str.remove()));
// 'p'
datestr = data[i++];
- date = ref.parse(datestr, ec);
+ date = ref.parse(ctou(datestr), ec);
if (!assertSuccess("parse", ec)) return;
- UDate parsedate = fmt.parse(string, ec);
+ UDate parsedate = fmt.parse(ctou(string), ec);
if (assertSuccess((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", ec)) {
assertEquals((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")",
univ.format(date, str.remove()),
@@ -1322,9 +1650,9 @@ void DateFormatTest::expect(const char** data, int32_t data_length,
// 'p'
const char* string = data[i++];
const char* datestr = data[i++];
- UDate date = ref.parse(datestr, ec);
+ UDate date = ref.parse(ctou(datestr), ec);
if (!assertSuccess("parse", ec)) return;
- UDate parsedate = fmt.parse(string, ec);
+ UDate parsedate = fmt.parse(ctou(string), ec);
if (assertSuccess((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")", ec)) {
assertEquals((UnicodeString)"\"" + currentPat + "\".parse(" + string + ")",
univ.format(date, str.remove()),
@@ -1333,17 +1661,17 @@ void DateFormatTest::expect(const char** data, int32_t data_length,
// 'f'
string = data[i++];
assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")",
- string,
+ ctou(string),
fmt.format(date, str.remove()));
}
else if (uprv_strcmp(control, "F") == 0) {
const char* datestr = data[i++];
const char* string = data[i++];
- UDate date = ref.parse(datestr, ec);
+ UDate date = ref.parse(ctou(datestr), ec);
if (!assertSuccess("parse", ec)) return;
assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")",
- string,
+ ctou(string),
fmt.format(date, str.remove()));
UDate parsedate = fmt.parse(string, ec);
@@ -1361,13 +1689,53 @@ void DateFormatTest::expect(const char** data, int32_t data_length,
}
}
-void DateFormatTest::TestGenericTime() {
-#if U_ICU_VERSION_MAJOR_NUM > 3 || U_ICU_VERSION_MINOR_NUM > 4
-# define FIX_FAILING_WALLTIME_TESTS
-#else
- logln("Warning, skipping some tests here!");
-#endif
+/**
+ * Test formatting. Input is an array that starts
+ * with the following header:
+ *
+ * [0] = pattern string to parse [i+2] with
+ *
+ * followed by test cases, each of which is 3 array elements:
+ *
+ * [i] = pattern, or null to reuse prior pattern
+ * [i+1] = data string a
+ * [i+2] = data string b
+ *
+ * Examples:
+ * Format date [i+1] and expect string [i+2].
+ *
+ * "y/M/d H:mm:ss.SSSS", "2004/3/10 16:36:31.5679", "2004 03 10 16:36:31.567"
+ */
+void DateFormatTest::expectFormat(const char** data, int32_t data_length,
+ const Locale& loc) {
+ int32_t i = 0;
+ UErrorCode ec = U_ZERO_ERROR;
+ UnicodeString str, str2;
+ SimpleDateFormat fmt("", loc, ec);
+ SimpleDateFormat ref(data[i++], loc, ec);
+ SimpleDateFormat univ("EE G yyyy MM dd HH:mm:ss.SSS z", loc, ec);
+ if (!assertSuccess("construct SimpleDateFormat", ec)) return;
+
+ UnicodeString currentPat;
+ while (i<data_length) {
+ const char* pattern = data[i++];
+ if (pattern != NULL) {
+ fmt.applyPattern(pattern);
+ currentPat = pattern;
+ }
+
+ const char* datestr = data[i++];
+ const char* string = data[i++];
+ UDate date = ref.parse(ctou(datestr), ec);
+ if (!assertSuccess("parse", ec)) return;
+ assertEquals((UnicodeString)"\"" + currentPat + "\".format(" + datestr + ")",
+ ctou(string),
+ fmt.format(date, str.remove()));
+ }
+}
+
+void DateFormatTest::TestGenericTime() {
// any zone pattern should parse any zone
const Locale en("en");
const char* ZDATA[] = {
@@ -1396,20 +1764,14 @@ void DateFormatTest::TestGenericTime() {
"y/M/d H:mm vvv", "pf", "2005/4/3 2:30 PST", "2005 04 03 03:30 PDT", "2005/4/3 3:30 PT",
"y/M/d H:mm vvv", "pf", "2005/4/3 2:30 PDT", "2005 04 03 01:30 PST", "2005/4/3 1:30 PT",
"y/M/d H:mm", "pf", "2005/4/3 2:30", "2005 04 03 01:30 PST", "2005/4/3 1:30",
- // time to parse is ambiguous, PT interpreted as earlier time (?)
-#if defined(FIX_FAILING_WALLTIME_TESTS)
- "y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PDT", // fail
-#endif
+ // time to parse is ambiguous, PT interpreted as LATER time (?)
+ "y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PST", "2004/10/31 1:30 PST", // 1:30a PT -> 1:30a PST (later)
"y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PST", "2004 10 31 01:30 PST", "2004/10/31 1:30 PST",
"y/M/d H:mm zzz", "pf", "2004/10/31 1:30 PDT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PDT",
-#if defined(FIX_FAILING_WALLTIME_TESTS)
- "y/M/d H:mm vvv", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PT", // fail
-#endif
+ "y/M/d H:mm vvv", "pf", "2004/10/31 1:30 PT", "2004 10 31 01:30 PST", "2004/10/31 1:30 PT", // 1:30a PT -> 1:30a PST (later)
"y/M/d H:mm vvv", "pf", "2004/10/31 1:30 PST", "2004 10 31 01:30 PST", "2004/10/31 1:30 PT",
"y/M/d H:mm vvv", "pf", "2004/10/31 1:30 PDT", "2004 10 31 01:30 PDT", "2004/10/31 1:30 PT",
-#if defined(FIX_FAILING_WALLTIME_TESTS)
- "y/M/d H:mm", "pf", "2004/10/31 1:30", "2004 10 31 01:30 PDT", "2004/10/31 1:30", // fail
-#endif
+ "y/M/d H:mm", "pf", "2004/10/31 1:30", "2004 10 31 01:30 PST", "2004/10/31 1:30", // 1:30a PT -> 1:30a PST (later)
};
const int32_t ZDATA_length = sizeof(ZDATA)/ sizeof(ZDATA[0]);
expect(ZDATA, ZDATA_length, en);
@@ -1424,10 +1786,12 @@ void DateFormatTest::TestGenericTime() {
SimpleDateFormat(basepat + "zzz", en, status),
SimpleDateFormat(basepat + "zzzz", en, status)
};
+ ASSERT_OK(status);
const int32_t formats_length = sizeof(formats)/sizeof(formats[0]);
UnicodeString test;
SimpleDateFormat univ("yyyy MM dd HH:mm zzz", en, status);
+ ASSERT_OK(status);
const UnicodeString times[] = {
"2004 01 02 03:04 PST",
"2004 07 08 09:10 PDT"
@@ -1492,6 +1856,73 @@ void DateFormatTest::TestGenericTimeZoneOrder() {
expect(XDATA, XDATA_length, en);
}
+void DateFormatTest::TestTimeZoneStringsAPI() {
+ // Verify data
+ UErrorCode status = U_ZERO_ERROR;
+ DateFormatSymbols symbols(Locale::getUS(), status);
+ StringEnumeration* keys = symbols.createZoneStringIDs(status);
+ if(U_FAILURE(status)){
+ errln("Could not create the StringEnumeration for Locale::getUS(). Error: %s", u_errorName(status));
+ return;
+ }
+
+ StringEnumeration* keys2 = symbols.createZoneStringIDs(status);
+ ASSERT_OK(status);
+ if(*keys2!=*keys){
+ errln("operator!= failed for TimeZoneStringsEnum");
+ }
+ const UnicodeString* key = NULL;
+
+ while( (key = keys->snext(status))!=NULL){
+ logln(prettify(*key));
+ }
+ if(U_FAILURE(status)){
+ errln("Could not iterate over the StringEnumeration. Error: %s", u_errorName(status));
+ return;
+ }
+ UnicodeString expectedKey("America/Los_Angeles");
+ UnicodeString expectedStrs[DateFormatSymbols::TIMEZONE_COUNT];
+ expectedStrs[DateFormatSymbols::TIMEZONE_SHORT_GENERIC].setTo("PT");
+ expectedStrs[DateFormatSymbols::TIMEZONE_SHORT_STANDARD].setTo("PST");
+ expectedStrs[DateFormatSymbols::TIMEZONE_SHORT_DAYLIGHT].setTo("PDT");
+ expectedStrs[DateFormatSymbols::TIMEZONE_LONG_GENERIC].setTo("Pacific Time");
+ expectedStrs[DateFormatSymbols::TIMEZONE_LONG_STANDARD].setTo("Pacific Standard Time");
+ expectedStrs[DateFormatSymbols::TIMEZONE_LONG_DAYLIGHT].setTo("Pacific Daylight Time");
+ expectedStrs[DateFormatSymbols::TIMEZONE_EXEMPLAR_CITY].setTo("Los Angeles");
+ for(int32_t i=0; i<DateFormatSymbols::TIMEZONE_COUNT; i++){
+ UnicodeString result;
+ result = symbols.getZoneString(expectedKey, (DateFormatSymbols::TimeZoneTranslationType)i, result,status);
+ if(U_FAILURE(status)){
+ errln("Could not retrieve display name. Error: %s", u_errorName(status));
+ return;
+ }
+ if(expectedStrs[i] != result){
+ errln("Did not get the expected string. Expected: "+expectedStrs[i]+ UnicodeString(" Got: ") + result );
+ }
+ }
+ expectedKey.setTo("America/Los_Angeles",0);
+ UnicodeString exemplarCity("Phoenix");
+ UnicodeString result;
+ symbols.setZoneString(expectedKey,DateFormatSymbols::TIMEZONE_EXEMPLAR_CITY, exemplarCity, status);
+ if(U_FAILURE(status)){
+ errln("setZoneString() did not succeed. Error: %s", u_errorName(status));
+ return;
+ }
+ result = symbols.getZoneString(expectedKey, DateFormatSymbols::TIMEZONE_EXEMPLAR_CITY, result,status);
+ if(result != exemplarCity){
+ errln("setZoneString() did not succeed. Expected: " + exemplarCity + " Got: " + result);
+ }
+ delete keys;
+ delete keys2;
+}
+
+void DateFormatTest::TestHost(void)
+{
+#ifdef U_WINDOWS
+ Win32DateTimeTest::testLocales(this);
+#endif
+}
+
#endif /* #if !UCONFIG_NO_FORMATTING */
//eof
diff --git a/Build/source/libs/icu-xetex/test/intltest/dtfmttst.h b/Build/source/libs/icu-xetex/test/intltest/dtfmttst.h
index 8bb51877b2c..e08ff6834cd 100644
--- a/Build/source/libs/icu-xetex/test/intltest/dtfmttst.h
+++ b/Build/source/libs/icu-xetex/test/intltest/dtfmttst.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -138,6 +138,8 @@ public:
* Further test the formatting of time zones.
*/
virtual void TestDateFormatZone146(void);
+
+ void TestTimeZoneStringsAPI(void);
public: // package
/**
@@ -161,12 +163,35 @@ public: // package
void TestGenericTimeZoneOrder(void);
+public:
+ /**
+ * Test host-specific formatting.
+ */
+ void TestHost(void);
+
+public:
+ /**
+ * Test patterns added in CLDR 1.4
+ */
+ void TestEras(void);
+
+ void TestNarrowNames(void);
+
+ void TestStandAloneDays(void);
+
+ void TestStandAloneMonths(void);
+
+ void TestQuarters(void);
+
private:
void expectParse(const char** data, int32_t data_length,
const Locale& locale);
void expect(const char** data, int32_t data_length,
const Locale& loc);
+
+ void expectFormat(const char **data, int32_t data_length,
+ const Locale &locale);
};
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/intltest/escoll.cpp b/Build/source/libs/icu-xetex/test/intltest/escoll.cpp
index ae4a6e8ef12..152453bdaf0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/escoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/escoll.cpp
@@ -1,7 +1,7 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -103,7 +103,7 @@ void CollationSpanishTest::runIndexedTest( int32_t index, UBool exec, const char
if((!myCollation) && exec) {
errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
+ name = "some test";
return;
}
switch (index) {
diff --git a/Build/source/libs/icu-xetex/test/intltest/ficoll.cpp b/Build/source/libs/icu-xetex/test/intltest/ficoll.cpp
index 90098d368df..128122d5ea2 100644
--- a/Build/source/libs/icu-xetex/test/intltest/ficoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/ficoll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -90,7 +90,7 @@ void CollationFinnishTest::runIndexedTest( int32_t index, UBool exec, const char
if((!myCollation) && exec) {
errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
+ name = "some test";
return;
}
switch (index) {
diff --git a/Build/source/libs/icu-xetex/test/intltest/frcoll.cpp b/Build/source/libs/icu-xetex/test/intltest/frcoll.cpp
index 96849e05e31..fd8702c6112 100644
--- a/Build/source/libs/icu-xetex/test/intltest/frcoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/frcoll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -202,7 +202,7 @@ void CollationFrenchTest::runIndexedTest( int32_t index, UBool exec, const char*
if((!myCollation) && exec) {
errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
+ name = "some test";
return;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/idnaconf.cpp b/Build/source/libs/icu-xetex/test/intltest/idnaconf.cpp
index 51cac655206..cf199438467 100644
--- a/Build/source/libs/icu-xetex/test/intltest/idnaconf.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/idnaconf.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2005, International Business Machines
+ * Copyright (C) 2005-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -52,7 +52,7 @@ IdnaConfTest::~IdnaConfTest(){
delete [] base;
}
-
+#if !UCONFIG_NO_IDNA
/* this function is modified from RBBITest::ReadAndConvertFile()
*
*/
@@ -161,13 +161,13 @@ UBool IdnaConfTest::ReadOneLine(UnicodeString& buf){
buf.remove();
int t = 0;
while (curOffset < len){
- if (t = isNewlineMark()) { // end of line
+ if ((t = isNewlineMark())) { // end of line
curOffset += t;
break;
}
UChar c = base[curOffset];
if (c == BACKSLASH && curOffset < len -1){ // escaped new line mark
- if (t = isNewlineMark()){
+ if ((t = isNewlineMark())){
curOffset += 1 + t; // BACKSLAH and NewlineMark
continue;
}
@@ -284,12 +284,13 @@ void IdnaConfTest::Test(void){
UnicodeString value;
// skip everything before the first "=====" and "=====" itself
- for (;;){
- ReadOneLine(s);
- if (s.compare(C_TAG, -1) == 0){ //"====="
+ do {
+ if (!ReadOneLine(s)) {
+ errln("End of file prematurely found");
break;
}
}
+ while (s.compare(C_TAG, -1) != 0); //"====="
while(ReadOneLine(s)){
s.trim();
@@ -334,8 +335,12 @@ void IdnaConfTest::Test(void){
Call(); // for last record
}
-
-
+#else
+void IdnaConfTest::Test(void)
+{
+ // test nothing...
+}
+#endif
void IdnaConfTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/){
switch (index) {
diff --git a/Build/source/libs/icu-xetex/test/intltest/idnaref.cpp b/Build/source/libs/icu-xetex/test/intltest/idnaref.cpp
index 26691661a99..61045c567c3 100644
--- a/Build/source/libs/icu-xetex/test/intltest/idnaref.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/idnaref.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -34,7 +34,7 @@ static const UChar ACE_PREFIX[] ={ 0x0078,0x006E,0x002d,0x002d } ;
#define MAX_LABEL_LENGTH 63
#define HYPHEN 0x002D
/* The Max length of the labels should not be more than 64 */
-#define MAX_LABEL_BUFFER_SIZE 100
+#define MAX_LABEL_BUFFER_SIZE 100
#define MAX_IDN_BUFFER_SIZE 300
#define CAPITAL_A 0x0041
@@ -43,7 +43,7 @@ static const UChar ACE_PREFIX[] ={ 0x0078,0x006E,0x002d,0x002d } ;
#define FULL_STOP 0x002E
-inline static UBool
+inline static UBool
startsWithPrefix(const UChar* src , int32_t srcLength){
UBool startsWithPrefix = TRUE;
@@ -59,7 +59,7 @@ startsWithPrefix(const UChar* src , int32_t srcLength){
return startsWithPrefix;
}
-inline static UChar
+inline static UChar
toASCIILower(UChar ch){
if(CAPITAL_A <= ch && ch <= CAPITAL_Z){
return ch + LOWER_CASE_DELTA;
@@ -68,7 +68,7 @@ toASCIILower(UChar ch){
}
inline static int32_t
-compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len,
+compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len,
const UChar* s2, int32_t s2Len){
if(s1Len != s2Len){
return (s1Len > s2Len) ? s1Len : s2Len;
@@ -81,10 +81,10 @@ compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len,
if(i == s1Len) {
return 0;
}
-
+
c1 = s1[i];
c2 = s2[i];
-
+
/* Case-insensitive comparison */
if(c1!=c2) {
rc=(int32_t)toASCIILower(c1)-(int32_t)toASCIILower(c2);
@@ -93,7 +93,7 @@ compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len,
}
}
}
-
+
}
static UErrorCode getError(enum punycode_status status){
@@ -125,8 +125,8 @@ static inline int32_t convertUCharsToASCII(const UChar* src,char* dest, int32_t
}
return i;
}
-// wrapper around the reference Punycode implementation
-static int32_t convertToPuny(const UChar* src, int32_t srcLength,
+// wrapper around the reference Punycode implementation
+static int32_t convertToPuny(const UChar* src, int32_t srcLength,
UChar* dest, int32_t destCapacity,
UErrorCode& status){
uint32_t b1Stack[MAX_LABEL_BUFFER_SIZE];
@@ -149,7 +149,7 @@ static int32_t convertToPuny(const UChar* src, int32_t srcLength,
}
status = U_ZERO_ERROR; // reset error
-
+
u_strToUTF32((UChar32*)b1,b1Len,&b1Len,src,srcLength,&status);
}
if(U_FAILURE(status)){
@@ -160,7 +160,7 @@ static int32_t convertToPuny(const UChar* src, int32_t srcLength,
error = punycode_encode(b1Len,b1,caseFlags, (uint32_t*)&b2Len, b2);
status = getError(error);
-
+
if(status == U_BUFFER_OVERFLOW_ERROR){
/* we do not have enough room so grow the buffer*/
b2 = (char*) uprv_malloc( b2Len * sizeof(char));
@@ -177,7 +177,7 @@ static int32_t convertToPuny(const UChar* src, int32_t srcLength,
if(U_FAILURE(status)){
goto CLEANUP;
}
-
+
if(b2Len < destCapacity){
convertASCIIToUChars(b2,dest,b2Len);
}else{
@@ -236,23 +236,17 @@ CLEANUP:
}
uprv_free(caseFlags);
- return destLen;
+ return destLen;
}
-
-#if U_ICU_VERSION_MAJOR_NUM>3 || (U_ICU_VERSION_MAJOR_NUM==3 && U_ICU_VERSION_MINOR_NUM>4)
-# error Time bomb: Remove the definition of U_IDNA_ZERO_LENGTH_LABEL_ERROR from __FILE__
-#else
-# define U_IDNA_ZERO_LENGTH_LABEL_ERROR U_IDNA_ERROR_LIMIT
-#endif
U_CFUNC int32_t U_EXPORT2
-idnaref_toASCII(const UChar* src, int32_t srcLength,
+idnaref_toASCII(const UChar* src, int32_t srcLength,
UChar* dest, int32_t destCapacity,
int32_t options,
UParseError* parseError,
UErrorCode* status){
-
+
if(status == NULL || U_FAILURE(*status)){
return 0;
}
@@ -263,8 +257,8 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
UChar b1Stack[MAX_LABEL_BUFFER_SIZE], b2Stack[MAX_LABEL_BUFFER_SIZE];
//initialize pointers to stack buffers
UChar *b1 = b1Stack, *b2 = b2Stack;
- int32_t b1Len=0, b2Len=0,
- b1Capacity = MAX_LABEL_BUFFER_SIZE,
+ int32_t b1Len=0, b2Len=0,
+ b1Capacity = MAX_LABEL_BUFFER_SIZE,
b2Capacity = MAX_LABEL_BUFFER_SIZE ,
reqLength=0;
@@ -273,18 +267,18 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
UBool useSTD3ASCIIRules = (UBool)((options & IDNAREF_USE_STD3_RULES) != 0);
UBool* caseFlags = NULL;
-
+
// assume the source contains all ascii codepoints
UBool srcIsASCII = TRUE;
// assume the source contains all LDH codepoints
- UBool srcIsLDH = TRUE;
+ UBool srcIsLDH = TRUE;
int32_t j=0;
if(srcLength == -1){
srcLength = u_strlen(src);
}
- // step 1
+ // step 1
for( j=0;j<srcLength;j++){
if(src[j] > 0x7F){
srcIsASCII = FALSE;
@@ -297,9 +291,9 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
if(U_FAILURE(*status)){
goto CLEANUP;
}
-
+
b1Len = prep->process(src,srcLength,b1, b1Capacity,allowUnassigned,parseError,*status);
-
+
if(*status == U_BUFFER_OVERFLOW_ERROR){
// redo processing of string
/* we do not have enough room so grow the buffer*/
@@ -310,29 +304,29 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
+
b1Len = prep->process(src,srcLength,b1, b1Len,allowUnassigned, parseError, *status);
}
// error bail out
if(U_FAILURE(*status)){
goto CLEANUP;
- }
+ }
if(b1Len == 0){
*status = U_IDNA_ZERO_LENGTH_LABEL_ERROR;
goto CLEANUP;
- }
+ }
srcIsASCII = TRUE;
// step 3 & 4
for( j=0;j<b1Len;j++){
- if(b1[j] > 0x7F){// check if output of usprep_prepare is all ASCII
+ if(b1[j] > 0x7F){// check if output of usprep_prepare is all ASCII
srcIsASCII = FALSE;
}else if(prep->isLDHChar(b1[j])==FALSE){ // if the char is in ASCII range verify that it is an LDH character{
srcIsLDH = FALSE;
}
}
-
+
if(useSTD3ASCIIRules == TRUE){
// verify 3a and 3b
if( srcIsLDH == FALSE /* source contains some non-LDH characters */
@@ -361,14 +355,14 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
if(*status == U_BUFFER_OVERFLOW_ERROR){
// redo processing of string
/* we do not have enough room so grow the buffer*/
- b2 = (UChar*) uprv_malloc(b2Len * U_SIZEOF_UCHAR);
+ b2 = (UChar*) uprv_malloc(b2Len * U_SIZEOF_UCHAR);
if(b2 == NULL){
*status = U_MEMORY_ALLOCATION_ERROR;
goto CLEANUP;
}
*status = U_ZERO_ERROR; // reset error
-
+
b2Len = convertToPuny(b1, b1Len, b2, b2Len, *status);
//b2Len = u_strToPunycode(b2,b2Len,b1,b1Len, caseFlags, status);
@@ -389,7 +383,7 @@ idnaref_toASCII(const UChar* src, int32_t srcLength,
uprv_memcpy(dest+ACE_PREFIX_LENGTH, b2, b2Len * U_SIZEOF_UCHAR);
}else{
- *status = U_IDNA_ACE_PREFIX_ERROR;
+ *status = U_IDNA_ACE_PREFIX_ERROR;
goto CLEANUP;
}
}
@@ -406,7 +400,7 @@ CLEANUP:
uprv_free(b2);
}
uprv_free(caseFlags);
-
+
// delete prep;
return u_terminateUChars(dest, destCapacity, reqLength, status);
@@ -429,18 +423,18 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
}
-
+
UChar b1Stack[MAX_LABEL_BUFFER_SIZE], b2Stack[MAX_LABEL_BUFFER_SIZE], b3Stack[MAX_LABEL_BUFFER_SIZE];
//initialize pointers to stack buffers
UChar *b1 = b1Stack, *b2 = b2Stack, *b1Prime=NULL, *b3=b3Stack;
int32_t b1Len, b2Len, b1PrimeLen, b3Len,
- b1Capacity = MAX_LABEL_BUFFER_SIZE,
+ b1Capacity = MAX_LABEL_BUFFER_SIZE,
b2Capacity = MAX_LABEL_BUFFER_SIZE,
b3Capacity = MAX_LABEL_BUFFER_SIZE,
reqLength=0;
// UParseError parseError;
-
+
NamePrepTransform* prep = TestIDNA::getInstance(*status);
b1Len = 0;
UBool* caseFlags = NULL;
@@ -456,7 +450,7 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
if(U_FAILURE(*status)){
goto CLEANUP;
}
- // step 1: find out if all the codepoints in src are ASCII
+ // step 1: find out if all the codepoints in src are ASCII
if(srcLength==-1){
srcLength = 0;
for(;src[srcLength]!=0;){
@@ -498,7 +492,7 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
+
b1Len = prep->process(src,srcLength,b1, b1Len,allowUnassigned, parseError, *status);
}
//bail out on error
@@ -542,12 +536,12 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
+
b2Len = convertFromPuny(b1Prime,b1PrimeLen, b2, b2Len, *status);
//b2Len = u_strFromPunycode(b2, b2Len,b1Prime,b1PrimeLen,caseFlags, status);
}
-
-
+
+
//step 6:Apply toASCII
b3Len = idnaref_toASCII(b2,b2Len,b3,b3Capacity,options,parseError, status);
@@ -561,9 +555,9 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
+
b3Len = idnaref_toASCII(b2,b2Len,b3,b3Len, options, parseError, status);
-
+
}
//bail out on error
if(U_FAILURE(*status)){
@@ -572,7 +566,7 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
//step 7: verify
if(compareCaseInsensitiveASCII(b1, b1Len, b3, b3Len) !=0){
- *status = U_IDNA_VERIFICATION_ERROR;
+ *status = U_IDNA_VERIFICATION_ERROR;
goto CLEANUP;
}
@@ -593,7 +587,7 @@ idnaref_toUnicode(const UChar* src, int32_t srcLength,
// failPos is always set the index of failure
uprv_syntaxError(src,failPos, srcLength,parseError);
}else if(src[0] == HYPHEN){
- // fail position is 0
+ // fail position is 0
uprv_syntaxError(src,0,srcLength,parseError);
}else{
// the last index in the source is always length-1
@@ -619,7 +613,7 @@ CLEANUP:
uprv_free(b2);
}
uprv_free(caseFlags);
-
+
// delete prep;
return u_terminateUChars(dest, destCapacity, reqLength, status);
@@ -642,7 +636,7 @@ getNextSeparator(UChar *src,int32_t srcLength,NamePrepTransform* prep,
if(prep->isLabelSeparator(src[i],*status)){
*limit = src + (i+1); // go past the delimiter
return i;
-
+
}
}
}else{
@@ -681,7 +675,7 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
// UParseError parseError;
NamePrepTransform* prep = TestIDNA::getInstance(*status);
-
+
//initialize pointers to stack buffers
UChar b1Stack[MAX_LABEL_BUFFER_SIZE];
UChar *b1 = b1Stack;
@@ -690,7 +684,7 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
UChar* labelStart = (UChar*)src;
int32_t remainingLen = srcLength;
int32_t b1Capacity = MAX_LABEL_BUFFER_SIZE;
-
+
//get the options
// UBool allowUnassigned = (UBool)((options & IDNAREF_ALLOW_UNASSIGNED) != 0);
// UBool useSTD3ASCIIRules = (UBool)((options & IDNAREF_USE_STD3_RULES) != 0);
@@ -703,7 +697,7 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
if(srcLength == -1){
for(;;){
-
+
if(*delimiter == 0){
break;
}
@@ -711,8 +705,8 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
labelLen = getNextSeparator(labelStart, -1, prep, &delimiter, &done, status);
b1Len = 0;
if(!(labelLen==0 && done)){// make sure this is not a root label separator.
-
- b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Capacity,
+
+ b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Capacity,
options, parseError, status);
if(*status == U_BUFFER_OVERFLOW_ERROR){
@@ -725,12 +719,12 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
+
b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Len,
options, parseError, status);
-
+
}
- }
+ }
if(U_FAILURE(*status)){
goto CLEANUP;
@@ -755,13 +749,13 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
}
}else{
for(;;){
-
+
if(delimiter == src+srcLength){
break;
}
labelLen = getNextSeparator(labelStart, remainingLen, prep, &delimiter, &done, status);
-
+
b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Capacity,
options,parseError, status);
@@ -775,12 +769,12 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
- b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Len,
+
+ b1Len = idnaref_toASCII(labelStart, labelLen, b1, b1Len,
options, parseError, status);
-
+
}
-
+
if(U_FAILURE(*status)){
goto CLEANUP;
}
@@ -807,11 +801,11 @@ idnaref_IDNToASCII( const UChar* src, int32_t srcLength,
CLEANUP:
-
+
if(b1 != b1Stack){
uprv_free(b1);
}
-
+
// delete prep;
return u_terminateUChars(dest, destCapacity, reqLength, status);
@@ -823,7 +817,7 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
int32_t options,
UParseError* parseError,
UErrorCode* status){
-
+
if(status == NULL || U_FAILURE(*status)){
return 0;
}
@@ -833,11 +827,11 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
}
int32_t reqLength = 0;
-
+
UBool done = FALSE;
NamePrepTransform* prep = TestIDNA::getInstance(*status);
-
+
//initialize pointers to stack buffers
UChar b1Stack[MAX_LABEL_BUFFER_SIZE];
UChar *b1 = b1Stack;
@@ -846,25 +840,25 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
UChar* labelStart = (UChar*)src;
int32_t remainingLen = srcLength;
int32_t b1Capacity = MAX_LABEL_BUFFER_SIZE;
-
+
//get the options
// UBool allowUnassigned = (UBool)((options & IDNAREF_ALLOW_UNASSIGNED) != 0);
// UBool useSTD3ASCIIRules = (UBool)((options & IDNAREF_USE_STD3_RULES) != 0);
-
+
if(U_FAILURE(*status)){
goto CLEANUP;
}
-
+
if(srcLength == -1){
for(;;){
-
+
if(*delimiter == 0){
break;
}
labelLen = getNextSeparator(labelStart, -1, prep, &delimiter, &done, status);
-
- if(labelLen==0 && done==FALSE){
+
+ if(labelLen==0 && done==FALSE){
*status = U_IDNA_ZERO_LENGTH_LABEL_ERROR;
}
b1Len = idnaref_toUnicode(labelStart, labelLen, b1, b1Capacity,
@@ -880,12 +874,12 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
- b1Len = idnaref_toUnicode( labelStart, labelLen, b1, b1Len,
+
+ b1Len = idnaref_toUnicode( labelStart, labelLen, b1, b1Len,
options, parseError, status);
-
+
}
-
+
if(U_FAILURE(*status)){
goto CLEANUP;
}
@@ -908,17 +902,17 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
}
}else{
for(;;){
-
+
if(delimiter == src+srcLength){
break;
}
labelLen = getNextSeparator(labelStart, remainingLen, prep, &delimiter, &done, status);
-
- if(labelLen==0 && done==FALSE){
+
+ if(labelLen==0 && done==FALSE){
*status = U_IDNA_ZERO_LENGTH_LABEL_ERROR;
- }
-
+ }
+
b1Len = idnaref_toUnicode( labelStart,labelLen, b1, b1Capacity,
options, parseError, status);
@@ -932,12 +926,12 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
}
*status = U_ZERO_ERROR; // reset error
-
- b1Len = idnaref_toUnicode( labelStart, labelLen, b1, b1Len,
+
+ b1Len = idnaref_toUnicode( labelStart, labelLen, b1, b1Len,
options, parseError, status);
-
+
}
-
+
if(U_FAILURE(*status)){
goto CLEANUP;
}
@@ -963,13 +957,13 @@ idnaref_IDNToUnicode( const UChar* src, int32_t srcLength,
}
CLEANUP:
-
+
if(b1 != b1Stack){
uprv_free(b1);
}
-
+
// delete prep;
-
+
return u_terminateUChars(dest, destCapacity, reqLength, status);
}
@@ -987,7 +981,7 @@ idnaref_compare( const UChar *s1, int32_t length1,
UChar *b1 = b1Stack, *b2 = b2Stack;
int32_t b1Len, b2Len, b1Capacity = MAX_IDN_BUFFER_SIZE, b2Capacity = MAX_IDN_BUFFER_SIZE;
int32_t result = -1;
-
+
UParseError parseError;
b1Len = idnaref_IDNToASCII(s1, length1, b1, b1Capacity, options, &parseError, status);
@@ -1001,9 +995,9 @@ idnaref_compare( const UChar *s1, int32_t length1,
}
*status = U_ZERO_ERROR; // reset error
-
+
b1Len = idnaref_IDNToASCII(s1,length1,b1,b1Len, options, &parseError, status);
-
+
}
b2Len = idnaref_IDNToASCII(s2,length2,b2,b2Capacity,options, &parseError, status);
@@ -1017,9 +1011,9 @@ idnaref_compare( const UChar *s1, int32_t length1,
}
*status = U_ZERO_ERROR; // reset error
-
+
b2Len = idnaref_IDNToASCII(s2,length2,b2,b2Len,options, &parseError, status);
-
+
}
// when toASCII is applied all label separators are replaced with FULL_STOP
result = compareCaseInsensitiveASCII(b1,b1Len,b2,b2Len);
diff --git a/Build/source/libs/icu-xetex/test/intltest/intltest.cpp b/Build/source/libs/icu-xetex/test/intltest/intltest.cpp
index 008fc2ef633..3f440b8f9de 100644
--- a/Build/source/libs/icu-xetex/test/intltest/intltest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/intltest.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -95,7 +95,7 @@ Int64ToUnicodeString(int64_t num)
#ifdef U_WINDOWS
sprintf(buffer, "%I64d", num);
#else
- sprintf(buffer, "%lld", num);
+ sprintf(buffer, "%lld", (long long)num);
#endif
assert(danger == 'p');
diff --git a/Build/source/libs/icu-xetex/test/intltest/intltest.vcproj b/Build/source/libs/icu-xetex/test/intltest/intltest.vcproj
index d02e923d8e3..67fe8756eed 100644
--- a/Build/source/libs/icu-xetex/test/intltest/intltest.vcproj
+++ b/Build/source/libs/icu-xetex/test/intltest/intltest.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="1"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/intltest.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -88,6 +89,7 @@
StringPooling="TRUE"
RuntimeLibrary="0"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/intltest.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -255,6 +257,12 @@
RelativePath=".\regcoll.h">
</File>
<File
+ RelativePath=".\rndmcoll.cpp">
+ </File>
+ <File
+ RelativePath=".\rndmcoll.h">
+ </File>
+ <File
RelativePath=".\srchtest.cpp">
</File>
<File
@@ -290,6 +298,12 @@
<File
RelativePath=".\ucaconf.h">
</File>
+ <File
+ RelativePath=".\wbnf.cpp">
+ </File>
+ <File
+ RelativePath=".\wbnf.h">
+ </File>
</Filter>
<Filter
Name="collections"
@@ -312,6 +326,18 @@
Filter="">
<File
RelativePath=".\strtest.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
</File>
<File
RelativePath=".\strtest.h">
@@ -558,6 +584,42 @@
<File
RelativePath=".\tztest.h">
</File>
+ <File
+ RelativePath=".\windttst.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\windttst.h">
+ </File>
+ <File
+ RelativePath=".\winnmtst.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\winnmtst.h">
+ </File>
</Filter>
<Filter
Name="idna"
@@ -600,6 +662,12 @@
Name="locales &amp; resources"
Filter="">
<File
+ RelativePath=".\aliastst.cpp">
+ </File>
+ <File
+ RelativePath=".\aliastst.h">
+ </File>
+ <File
RelativePath=".\loctest.cpp">
</File>
<File
@@ -657,6 +725,24 @@
<File
RelativePath=".\tokiter.h">
</File>
+ <File
+ RelativePath=".\winutil.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\winutil.h">
+ </File>
</Filter>
<Filter
Name="normalization"
@@ -824,6 +910,16 @@
RelativePath=".\convtest.h">
</File>
</Filter>
+ <Filter
+ Name="charset detection"
+ Filter="">
+ <File
+ RelativePath=".\csdetest.cpp">
+ </File>
+ <File
+ RelativePath=".\csdetest.h">
+ </File>
+ </Filter>
</Files>
<Globals>
</Globals>
diff --git a/Build/source/libs/icu-xetex/test/intltest/itformat.cpp b/Build/source/libs/icu-xetex/test/intltest/itformat.cpp
index c7233002e5c..c5e30d2af3b 100644
--- a/Build/source/libs/icu-xetex/test/intltest/itformat.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/itformat.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
diff --git a/Build/source/libs/icu-xetex/test/intltest/itmajor.cpp b/Build/source/libs/icu-xetex/test/intltest/itmajor.cpp
index bcb74d14c91..97b89ea43cc 100644
--- a/Build/source/libs/icu-xetex/test/intltest/itmajor.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/itmajor.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1998-2004, International Business Machines Corporation and
+ * Copyright (c) 1998-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -32,6 +32,7 @@
#include "icusvtst.h"
#include "testidna.h"
#include "convtest.h"
+#include "csdetest.h"
#define CASE_SUITE(id, suite) case id: \
name = #suite; \
@@ -169,6 +170,15 @@ void MajorTestLevel::runIndexedTest( int32_t index, UBool exec, const char* &nam
#endif
break;
+ case 13: name = "csdet";
+ if (exec) {
+ logln("TestSuite CharsetDetection---"); logln();
+ CharsetDetectionTest test;
+ callTest(test, par);
+ }
+
+ break;
+
default: name = ""; break;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/itrbnf.cpp b/Build/source/libs/icu-xetex/test/intltest/itrbnf.cpp
index 248f4ad3c92..a44c8c7eedd 100644
--- a/Build/source/libs/icu-xetex/test/intltest/itrbnf.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/itrbnf.cpp
@@ -180,6 +180,12 @@ IntlTestRBNF::TestAPI() {
if(!(ruleCtorResult == *formatter)) {
errln("Formatter constructed from the original rules should be semantically equivalent to the original!");
}
+
+ // Jitterbug 4452, for coverage
+ RuleBasedNumberFormat nf(spelloutRules, (UnicodeString)"", Locale::getUS(), perror, status);
+ if(!(nf == *formatter)) {
+ errln("Formatter constructed from the original rules should be semantically equivalent to the original!");
+ }
}
ures_close(en);
}
@@ -297,6 +303,16 @@ IntlTestRBNF::TestAPI() {
logln("Formatted 4 int64_t, expected " + expected + " got " + result);
}
+ //Jitterbug 4452, for coverage
+ result.remove();
+ FieldPosition pos2;
+ formatter->format((int64_t)4, formatter->getRuleSetName(0), result, pos2, status = U_ZERO_ERROR);
+ if(result != expected) {
+ errln("Formatted 4 int64_t, expected " + expected + " got " + result);
+ } else {
+ logln("Formatted 4 int64_t, expected " + expected + " got " + result);
+ }
+
// clean up
logln("Cleaning up");
delete formatter;
diff --git a/Build/source/libs/icu-xetex/test/intltest/itutil.cpp b/Build/source/libs/icu-xetex/test/intltest/itutil.cpp
index a6368138b86..b7aafc82269 100644
--- a/Build/source/libs/icu-xetex/test/intltest/itutil.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/itutil.cpp
@@ -23,7 +23,8 @@
#include "uobjtest.h"
#include "utxttest.h"
#include "v32test.h"
-#include "uvectest.h"
+#include "uvectest.h"
+#include "aliastst.h"
//#include "custrtest.h"
//#include "ccitrtst.h"
//#include "cloctest.h"
@@ -148,19 +149,17 @@ void IntlTestUtilities::runIndexedTest( int32_t index, UBool exec, const char* &
UTextTest test;
callTest( test, par );
}
- break;;
-
+ break;
- /*
- case 8:
- name = "LocaleTest";
+ case 13:
+ name = "LocaleAliasTest";
if (exec) {
- logln("LocaleTest---"); logln("");
- CLocaleTest test;
+ logln("LocaleAliasTest---"); logln("");
+ LocaleAliasTest test;
callTest( test, par );
}
break;
- */
+
default: name = ""; break; //needed to end loop
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/loctest.cpp b/Build/source/libs/icu-xetex/test/intltest/loctest.cpp
index c18ea0a3f25..06264a7fba9 100644
--- a/Build/source/libs/icu-xetex/test/intltest/loctest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/loctest.cpp
@@ -1,11 +1,10 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
#include "loctest.h"
-#include <stdio.h>
#include "unicode/decimfmt.h"
#include "unicode/ucurr.h"
#include "unicode/smpdtfmt.h"
@@ -13,7 +12,7 @@
#include "unicode/brkiter.h"
#include "unicode/coll.h"
#include "cstring.h"
-#include "uassert.h"
+#include <stdio.h>
const char* rawData[33][8] = {
@@ -50,14 +49,14 @@ const char* rawData[33][8] = {
// display langage (French)
{ "anglais", "fran\\u00E7ais", "catalan", "grec", "norv\\u00E9gien", "italien", "xx", "chinois" },
// display script (French)
- { "", "", "", "", "", "", "", "han simplifi\\u00E9" },
+ { "", "", "", "", "", "", "", "id\\u00E9ogrammes han (variante simplifi\\u00E9e)" },
// display country (French)
{ "\\u00C9tats-Unis", "France", "Espagne", "Gr\\u00E8ce", "Norv\\u00E8ge", "", "YY", "Chine" },
// display variant (French)
{ "", "", "", "", "NY", "", "", "" },
// display name (French)
//{ "anglais (Etats-Unis)", "francais (France)", "catalan (Espagne)", "grec (Grece)", "norvegien (Norvege,Nynorsk)", "italien", "xx (YY)" },
- { "anglais (\\u00C9tats-Unis)", "fran\\u00E7ais (France)", "catalan (Espagne)", "grec (Gr\\u00E8ce)", "norv\\u00E9gien (Norv\\u00E8ge, NY)", "italien", "xx (YY)", "chinois (han simplifi\\u00E9, Chine)" }, // STILL not right
+ { "anglais (\\u00C9tats-Unis)", "fran\\u00E7ais (France)", "catalan (Espagne)", "grec (Gr\\u00E8ce)", "norv\\u00E9gien (Norv\\u00E8ge, NY)", "italien", "xx (YY)", "chinois (id\\u00E9ogrammes han (variante simplifi\\u00E9e), Chine)" }, // STILL not right
/* display language (Catalan) */
@@ -119,38 +118,25 @@ const char* rawData[33][8] = {
{ "English (United States)", "French (France)", "Catalan (Spain)", "Greek (Greece)", "Norwegian (Norway,NY)", "Italian", "xx (YY)", "" }
};
-// * test macros
+
/*
Usage:
- test_compare( Function to be performed,
- Test of the function,
- expected result of the test,
- printable result
- )
+ test_assert( Test (should be TRUE) )
Example:
- test_compare(i=3,i,3, someNumberFormatter(i));
- test_compare(0,1+1,2,someNumberFormatter(1+1));
-
- Note that in the second example the expression is 0, because the fcn produces it's own result.
+ test_assert(i==3);
- Macro is ugly but makes the tests pretty.
+ the macro is ugly but makes the tests pretty.
*/
-#define test_compare(expression,test,expected,printableResult) \
+#define test_assert(test) \
{ \
- expression; \
- \
- if((test) != (expected)) \
- errln("FAIL: " + UnicodeString(#expression) + "; -> " + printableResult + "\n" + \
- " (" + UnicodeString(#test) + " != " + UnicodeString(#expected) + ")" ); \
+ if(!(test)) \
+ errln("FAIL: " #test " was not true. In " __FILE__ " on line %d", __LINE__ ); \
else \
- logln(UnicodeString(#expression) + " -> " + printableResult + " (" + UnicodeString(#test) + ")"); \
+ logln("PASS: asserted " #test); \
}
-
-
-
/*
Usage:
test_assert_print( Test (should be TRUE), printable )
@@ -164,13 +150,13 @@ const char* rawData[33][8] = {
#define test_assert_print(test,print) \
{ \
if(!(test)) \
- errln("FAIL: " + UnicodeString(#test) + " was not true." + "-> " + UnicodeString(print) ); \
+ errln("FAIL: " #test " was not true. " + UnicodeString(print) ); \
else \
- logln("PASS: asserted " + UnicodeString(#test) + "-> " + UnicodeString(print)); \
+ logln("PASS: asserted " #test "-> " + UnicodeString(print)); \
}
-#define test_dumpLocale(l) { UnicodeString s(l.getName(),""); logln(#l + UnicodeString(" = ") + s); }
+#define test_dumpLocale(l) { logln(#l " = " + UnicodeString(l.getName(), "")); }
LocaleTest::LocaleTest()
: dataTable(NULL)
@@ -511,24 +497,6 @@ LocaleTest::TestDisplayNames()
}
}
-/*
- Usage:
- test_assert( Test (should be TRUE) )
-
- Example:
- test_assert(i==3);
-
- the macro is ugly but makes the tests pretty.
-*/
-
-#define test_assert(test) \
- { \
- if(!(test)) \
- errln("FAIL: " + UnicodeString(#test) + " was not true. " + UnicodeString(__FILE__ " line ") + __LINE__ ); \
- else \
- logln("PASS: asserted " + UnicodeString(#test) ); \
- }
-
void LocaleTest::TestSimpleObjectStuff() {
Locale test1("aa", "AA");
Locale test2("aa", "AA");
@@ -877,8 +845,8 @@ LocaleTest::TestGetLangsAndCountries()
;
/* TODO: Change this test to be more like the cloctst version? */
- if (testCount != 473)
- errln("Expected getISOLanguages() to return 473 languages; it returned %d", testCount);
+ if (testCount != 485)
+ errln("Expected getISOLanguages() to return 481 languages; it returned %d", testCount);
else {
for (i = 0; i < 15; i++) {
int32_t j;
@@ -908,9 +876,9 @@ LocaleTest::TestGetLangsAndCountries()
for(testCount=0;test[testCount];testCount++)
;
- if (testCount != 240)
- errln("Expected getISOLanguages to return 240 languages; it returned" + testCount);
- else {
+ if (testCount != 244){
+ errln("Expected getISOCountries to return 240 countries; it returned %d", testCount);
+ }else {
for (i = 0; i < spot2Len; i++) {
int32_t j;
for (j = 0; j < testCount; j++)
@@ -925,7 +893,7 @@ LocaleTest::TestGetLangsAndCountries()
errln("Couldn't find " + spotCheck2[i] + " in country list.");
}
}
- for (i = 0; i < testCount; i++) {
+ for (i = 0; i < testCount; i++) {
UnicodeString testee(test[i],"");
UnicodeString uc(test[i],"");
if (testee != uc.toUpper())
@@ -1037,7 +1005,7 @@ LocaleTest::TestAtypicalLocales()
"espagnol (Allemagne)",
"Croatie",
CharsToUnicodeString("Su\\u00E8de"),
- CharsToUnicodeString("R\\u00E9publique dominicaine"),
+ CharsToUnicodeString("Dominicaine, r\\u00E9publique"),
"Belgique" };
UnicodeString spanishDisplayNames [] = {
CharsToUnicodeString("alem\\u00E1n (Canad\\u00E1)"),
@@ -1819,7 +1787,10 @@ void LocaleTest::TestGetLocale(void) {
if (U_FAILURE(ec)) {
errln("FAIL: NumberFormat::createInstance failed");
} else {
- U_ASSERT(dec->getDynamicClassID() == DecimalFormat::getStaticClassID());
+ if (dec->getDynamicClassID() != DecimalFormat::getStaticClassID()) {
+ errln("FAIL: NumberFormat::createInstance does not return a DecimalFormat");
+ return;
+ }
valid = dec->getLocale(ULOC_VALID_LOCALE, ec);
actual = dec->getLocale(ULOC_ACTUAL_LOCALE, ec);
if (U_FAILURE(ec)) {
@@ -1829,7 +1800,10 @@ void LocaleTest::TestGetLocale(void) {
}
const DecimalFormatSymbols* sym = dec->getDecimalFormatSymbols();
- U_ASSERT(sym != 0);
+ if (sym == NULL) {
+ errln("FAIL: getDecimalFormatSymbols returned NULL");
+ return;
+ }
valid = sym->getLocale(ULOC_VALID_LOCALE, ec);
actual = sym->getLocale(ULOC_ACTUAL_LOCALE, ec);
if (U_FAILURE(ec)) {
@@ -1850,7 +1824,10 @@ void LocaleTest::TestGetLocale(void) {
if (dat == 0){
dataerrln("Error calling DateFormat::createDateInstance()");
} else {
- U_ASSERT(dat->getDynamicClassID() == SimpleDateFormat::getStaticClassID());
+ if (dat->getDynamicClassID() != SimpleDateFormat::getStaticClassID()) {
+ errln("FAIL: NumberFormat::createInstance does not return a DecimalFormat");
+ return;
+ }
valid = dat->getLocale(ULOC_VALID_LOCALE, ec);
actual = dat->getLocale(ULOC_ACTUAL_LOCALE, ec);
if (U_FAILURE(ec)) {
@@ -1860,7 +1837,10 @@ void LocaleTest::TestGetLocale(void) {
}
const DateFormatSymbols* sym = dat->getDateFormatSymbols();
- U_ASSERT(sym != 0);
+ if (sym == NULL) {
+ errln("FAIL: getDateFormatSymbols returned NULL");
+ return;
+ }
valid = sym->getLocale(ULOC_VALID_LOCALE, ec);
actual = sym->getLocale(ULOC_ACTUAL_LOCALE, ec);
if (U_FAILURE(ec)) {
@@ -2087,8 +2067,9 @@ void LocaleTest::TestCanonicalization(void)
{ "en-BOONT", "BOGUS", "en__BOONT" }, /* registered name */
{ "de-1901", "de_1901", "de__1901" }, /* registered name */
{ "de-1906", "de_1906", "de__1906" }, /* registered name */
- { "sr-SP-Cyrl", "sr_SP_CYRL", "sr_Cyrl_SP" }, /* .NET name */
- { "sr-SP-Latn", "sr_SP_LATN", "sr_Latn_SP" }, /* .NET name */
+ { "sr-SP-Cyrl", "sr_SP_CYRL", "sr_Cyrl_CS" }, /* .NET name */
+ { "sr-SP-Latn", "sr_SP_LATN", "sr_Latn_CS" }, /* .NET name */
+ { "sr_YU_CYRILLIC", "sr_YU_CYRILLIC", "sr_Cyrl_CS" }, /* Linux name */
{ "uz-UZ-Cyrl", "uz_UZ_CYRL", "uz_Cyrl_UZ" }, /* .NET name */
{ "uz-UZ-Latn", "uz_UZ_LATN", "uz_Latn_UZ" }, /* .NET name */
{ "zh-CHS", "zh_CHS", "zh_Hans" }, /* .NET name */
diff --git a/Build/source/libs/icu-xetex/test/intltest/miscdtfm.cpp b/Build/source/libs/icu-xetex/test/intltest/miscdtfm.cpp
index e1415ecf3a1..0a5fb0bb1ed 100644
--- a/Build/source/libs/icu-xetex/test/intltest/miscdtfm.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/miscdtfm.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -122,7 +122,7 @@ DateFormatMiscTests::test4097450()
{
log(dformat[i] + "\t" + dstring[i] + "\t");
formatter = new SimpleDateFormat(dformat[i], status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
//try {
UnicodeString str;
FieldPosition pos(FieldPosition::DONT_CARE);
@@ -157,9 +157,9 @@ DateFormatMiscTests::test4099975()
{
UErrorCode status = U_ZERO_ERROR;
DateFormatSymbols* symbols = new DateFormatSymbols(Locale::getUS(), status);
- failure(status, "new DateFormatSymbols");
+ if(failure(status, "new DateFormatSymbols")) return;
SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("E hh:mm"), *symbols, status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
UnicodeString format0;
format0 = df->format(d, format0);
UnicodeString localizedPattern0;
@@ -189,9 +189,9 @@ DateFormatMiscTests::test4099975()
{
UErrorCode status = U_ZERO_ERROR;
DateFormatSymbols* symbols = new DateFormatSymbols(Locale::getUS(), status);
- failure(status, "new DateFormatSymbols");
+ if(failure(status, "new DateFormatSymbols")) return;
SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("E hh:mm"), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
df->setDateFormatSymbols(*symbols);
UnicodeString format0;
format0 = df->format(d, format0);
@@ -220,9 +220,9 @@ DateFormatMiscTests::test4099975()
{
UErrorCode status = U_ZERO_ERROR;
DateFormatSymbols* symbols = new DateFormatSymbols(Locale::getUS(), status);
- failure(status, "new DateFormatSymbols");
+ if(failure(status, "new DateFormatSymbols")) return;
SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("E hh:mm"), symbols, status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
UnicodeString format0;
format0 = df->format(d, format0);
UnicodeString localizedPattern0;
@@ -251,7 +251,7 @@ DateFormatMiscTests::test4099975()
DateFormatSymbols* symbols = new DateFormatSymbols(Locale::getUS(), status);
failure(status, "new DateFormatSymbols");
SimpleDateFormat *df = new SimpleDateFormat(UnicodeString("E hh:mm"), status);
- failure(status, "new SimpleDateFormat");
+ if(failure(status, "new SimpleDateFormat")) return;
df-> adoptDateFormatSymbols(symbols);
UnicodeString format0;
format0 = df->format(d, format0);
@@ -308,11 +308,17 @@ DateFormatMiscTests::test4117335()
0x6e96,
0x6642
};
+ UChar jdtLongC [] = {0x65E5, 0x672C, 0x590F, 0x6642, 0x9593};
+
UnicodeString jstLong(jstLongC, 5, 5);
UnicodeString jstShort = "JST";
-
+ UnicodeString tzID = "Asia/Tokyo";
+
+ UnicodeString jdtLong(jdtLongC, 5, 5);
+
+ UnicodeString jdtShort = "JDT";
UErrorCode status = U_ZERO_ERROR;
DateFormatSymbols *symbols = new DateFormatSymbols(Locale::getJapan(), status);
if(U_FAILURE(status)) {
@@ -338,25 +344,32 @@ DateFormatMiscTests::test4117335()
int32_t rowCount, colCount;
const UnicodeString **zones = symbols->getZoneStrings(rowCount, colCount);
- int pos = 5;
- logln(UnicodeString("Long zone name = ") + zones[pos][1]);
- if (zones[pos][1] != jstLong) {
- errln("*** Should have been " + prettify(jstLong)+ " but it is: " + prettify(zones[pos][1]));
+ //don't hard code the index .. compute it.
+ int32_t index = -1;
+ for (int32_t i = 0; i < rowCount; ++i) {
+ if (tzID == (zones[i][0])) {
+ index = i;
+ break;
+ }
+ }
+ logln(UnicodeString("Long zone name = ") + zones[index][1]);
+ if (zones[index][1] != jstLong) {
+ errln("*** Should have been " + prettify(jstLong)+ " but it is: " + prettify(zones[index][1]));
//throw new Exception("Error in long TZ name");
}
- logln(UnicodeString("Short zone name = ") + zones[pos][2]);
- if (zones[pos][2] != jstShort) {
- errln("*** Should have been " + prettify(jstShort) + " but it is: " + prettify(zones[pos][2]));
+ logln(UnicodeString("Short zone name = ") + zones[index][2]);
+ if (zones[index][2] != jstShort) {
+ errln("*** Should have been " + prettify(jstShort) + " but it is: " + prettify(zones[index][2]));
//throw new Exception("Error in short TZ name");
}
- logln(UnicodeString("Long zone name = ") + zones[pos][3]);
- if (zones[pos][3] != jstLong) {
- errln("*** Should have been " + prettify(jstLong) + " but it is: " + prettify(zones[pos][3]));
+ logln(UnicodeString("Long zone name = ") + zones[index][3]);
+ if (zones[index][3] != jdtLong) {
+ errln("*** Should have been " + prettify(jstLong) + " but it is: " + prettify(zones[index][3]));
//throw new Exception("Error in long TZ name");
}
- logln(UnicodeString("SHORT zone name = ") + zones[pos][4]);
- if (zones[pos][4] != jstShort) {
- errln("*** Should have been " + prettify(jstShort)+ " but it is: " + prettify(zones[pos][4]));
+ logln(UnicodeString("SHORT zone name = ") + zones[index][4]);
+ if (zones[index][4] != jdtShort) {
+ errln("*** Should have been " + prettify(jstShort)+ " but it is: " + prettify(zones[index][4]));
//throw new Exception("Error in short TZ name");
}
delete symbols;
diff --git a/Build/source/libs/icu-xetex/test/intltest/nmfmtrt.cpp b/Build/source/libs/icu-xetex/test/intltest/nmfmtrt.cpp
index 77da5c6823f..0a6e9e81df1 100644
--- a/Build/source/libs/icu-xetex/test/intltest/nmfmtrt.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/nmfmtrt.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -225,7 +225,9 @@ void
NumberFormatRoundTripTest::test(NumberFormat *fmt, const Formattable& value)
{
fmt->setMaximumFractionDigits(999);
-
+ if(fmt->getDynamicClassID() == DecimalFormat::getStaticClassID()) {
+ ((DecimalFormat *)fmt)->setRoundingIncrement(0.0);
+ }
UErrorCode status = U_ZERO_ERROR;
UnicodeString s, s2, temp;
if(isDouble(value))
diff --git a/Build/source/libs/icu-xetex/test/intltest/numfmtst.cpp b/Build/source/libs/icu-xetex/test/intltest/numfmtst.cpp
index 3e969e395c5..04e1010814e 100644
--- a/Build/source/libs/icu-xetex/test/intltest/numfmtst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/numfmtst.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/* Modification History:
@@ -24,6 +24,7 @@
#include "tokiter.h"
#include "charstr.h"
#include "putilimp.h"
+#include "winnmtst.h"
#include <float.h>
#include <string.h>
@@ -79,7 +80,9 @@ void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &n
CASE(29,TestCurrencyAmount);
CASE(30,TestCurrencyUnit);
CASE(31,TestCoverage);
-
+ CASE(32,TestJB3832);
+ CASE(33,TestHost);
+ CASE(34,TestCurrencyFormat);
default: name = ""; break;
}
}
@@ -127,10 +130,10 @@ NumberFormatTest::TestAPI(void)
class StubNumberForamt :public NumberFormat{
public:
StubNumberForamt(){};
- virtual UnicodeString& format(double number,UnicodeString& appendTo,FieldPosition& pos) const {
+ virtual UnicodeString& format(double ,UnicodeString& appendTo,FieldPosition& ) const {
return appendTo;
}
- virtual UnicodeString& format(int32_t number,UnicodeString& appendTo,FieldPosition& pos) const {
+ virtual UnicodeString& format(int32_t ,UnicodeString& appendTo,FieldPosition& ) const {
return appendTo.append((UChar)0x0033);
}
virtual UnicodeString& format(int64_t number,UnicodeString& appendTo,FieldPosition& pos) const {
@@ -139,12 +142,12 @@ public:
virtual UnicodeString& format(const Formattable& , UnicodeString& appendTo, FieldPosition& , UErrorCode& ) const {
return appendTo;
}
- virtual void parse(const UnicodeString& text,
- Formattable& result,
- ParsePosition& parsePosition) const {}
- virtual void parse( const UnicodeString& text,
- Formattable& result,
- UErrorCode& status) const {}
+ virtual void parse(const UnicodeString& ,
+ Formattable& ,
+ ParsePosition& ) const {}
+ virtual void parse( const UnicodeString& ,
+ Formattable& ,
+ UErrorCode& ) const {}
virtual UClassID getDynamicClassID(void) const {
static char classID = 0;
return (UClassID)&classID;
@@ -644,7 +647,8 @@ static const char* testCases[][2]= {
{"eu_ES_PREEURO", "\\u20A7 1.150" },
{"gl_ES_PREEURO", "\\u20A7 1.150" },
{"it_IT_PREEURO", "\\u20A4 1.150" },
- {"pt_PT_PREEURO", "1,150$50 Esc."}
+ {"pt_PT_PREEURO", "1,150$50 Esc."},
+ {"en_US@currency=JPY", "\\u00A51,150"}
};
/**
* Test localized currency patterns.
@@ -1583,7 +1587,8 @@ void NumberFormatTest::TestSymbolsWithBadLocale(void) {
+ prettify(mySymbols.getSymbol((DecimalFormatSymbols::ENumberFormatSymbol)symbolEnum)));
if (mySymbols.getSymbol((DecimalFormatSymbols::ENumberFormatSymbol)symbolEnum).length() == 0
- && symbolEnum != (int)DecimalFormatSymbols::kGroupingSeparatorSymbol)
+ && symbolEnum != (int)DecimalFormatSymbols::kGroupingSeparatorSymbol
+ && symbolEnum != (int)DecimalFormatSymbols::kMonetaryGroupingSeparatorSymbol)
{
errln("DecimalFormatSymbols has an empty string at index %d.", symbolEnum);
}
@@ -2171,5 +2176,85 @@ void NumberFormatTest::expectPad(DecimalFormat& fmt, const UnicodeString& pat,
", expected " + pos + " " + width + " " + pad);
}
}
+void NumberFormatTest::TestJB3832(){
+ const char* localeID = "pt_PT@currency=PTE";
+ Locale loc(localeID);
+ UErrorCode status = U_ZERO_ERROR;
+ UnicodeString expected("1,150$50 Esc.");
+ UnicodeString s;
+ NumberFormat* currencyFmt = NumberFormat::createCurrencyInstance(loc, status);
+ if(U_FAILURE(status)){
+ errln("Could not create currency formatter for locale %s", localeID);
+ return;
+ }
+ currencyFmt->format(1150.50, s);
+ if(s!=expected){
+ errln(UnicodeString("FAIL: Expected: ")+expected
+ + UnicodeString(" Got: ") + s
+ + UnicodeString( " for locale: ")+ UnicodeString(localeID) );
+ }
+ if (U_FAILURE(status)){
+ errln("FAIL: Status %s", u_errorName(status));
+ }
+ delete currencyFmt;
+}
+
+void NumberFormatTest::TestHost()
+{
+#ifdef U_WINDOWS
+ Win32NumberTest::testLocales(this);
+#endif
+}
+
+void NumberFormatTest::TestCurrencyFormat()
+{
+ // This test is here to increase code coverage.
+ UErrorCode status = U_ZERO_ERROR;
+ MeasureFormat *cloneObj;
+ UnicodeString str;
+ Formattable toFormat, result;
+ static const UChar ISO_CODE[4] = {0x0047, 0x0042, 0x0050, 0};
+
+ Locale saveDefaultLocale = Locale::getDefault();
+ Locale::setDefault( Locale::getUK(), status );
+ if (U_FAILURE(status)) {
+ errln("couldn't set default Locale!");
+ return;
+ }
+
+ MeasureFormat *measureObj = MeasureFormat::createCurrencyFormat(status);
+ Locale::setDefault( saveDefaultLocale, status );
+ if (U_FAILURE(status)){
+ errln("FAIL: Status %s", u_errorName(status));
+ return;
+ }
+ cloneObj = (MeasureFormat *)measureObj->clone();
+ if (cloneObj == NULL) {
+ errln("Clone doesn't work");
+ return;
+ }
+ toFormat.adoptObject(new CurrencyAmount(1234.56, ISO_CODE, status));
+ measureObj->format(toFormat, str, status);
+ measureObj->parseObject(str, result, status);
+ if (U_FAILURE(status)){
+ errln("FAIL: Status %s", u_errorName(status));
+ }
+ if (result != toFormat) {
+ errln("measureObj does not round trip. Formatted string was \"" + str + "\" Got: " + toString(result) + " Expected: " + toString(toFormat));
+ }
+ status = U_ZERO_ERROR;
+ str.truncate(0);
+ cloneObj->format(toFormat, str, status);
+ cloneObj->parseObject(str, result, status);
+ if (U_FAILURE(status)){
+ errln("FAIL: Status %s", u_errorName(status));
+ }
+ if (result != toFormat) {
+ errln("Clone does not round trip. Formatted string was \"" + str + "\" Got: " + toString(result) + " Expected: " + toString(toFormat));
+ }
+ delete measureObj;
+ delete cloneObj;
+
+}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/intltest/numfmtst.h b/Build/source/libs/icu-xetex/test/intltest/numfmtst.h
index 5f565f03b79..2c7e5bbefbd 100644
--- a/Build/source/libs/icu-xetex/test/intltest/numfmtst.h
+++ b/Build/source/libs/icu-xetex/test/intltest/numfmtst.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -116,9 +116,14 @@ class NumberFormatTest: public CalendarTimeZoneTest {
void TestPerMill(void);
void TestIllegalPatterns(void);
-
+
void TestCases(void);
+ void TestJB3832(void);
+
+ void TestHost(void);
+
+ void TestCurrencyFormat(void);
private:
static UBool equalValue(const Formattable& a, const Formattable& b);
diff --git a/Build/source/libs/icu-xetex/test/intltest/numrgts.cpp b/Build/source/libs/icu-xetex/test/intltest/numrgts.cpp
index b22a118dcf2..cb82463c4b9 100644
--- a/Build/source/libs/icu-xetex/test/intltest/numrgts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/numrgts.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -19,6 +19,7 @@
#include "unicode/resbund.h"
#include "unicode/calendar.h"
#include "unicode/datefmt.h"
+#include "unicode/ucurr.h"
#include "putilimp.h"
class MyNumberFormatTest : public NumberFormat
@@ -878,11 +879,11 @@ void NumberFormatRegressionTest::Test4070798 (void)
0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x20, 0x46
};
UChar chars3 [] = {
- 0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x25
+ 0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x00a0, 0x25
};
UnicodeString expectedDefault(chars1, 10, 10);
UnicodeString expectedCurrency(chars2, 10, 10);
- UnicodeString expectedPercent(chars3, 9, 9);
+ UnicodeString expectedPercent(chars3, 10, 10);
UErrorCode status = U_ZERO_ERROR;
char loc[256]={0};
@@ -954,11 +955,11 @@ void NumberFormatRegressionTest::Test4071005 (void)
0x35, 0x00a0, 0x37, 0x38, 0x39, 0x2c, 0x39, 0x39, 0x20, 0x24
};
UChar chars3 [] = {
- 0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x25
+ 0x2d, 0x35, 0x37, 0x38, 0x00a0, 0x39, 0x39, 0x39, 0x00a0, 0x25
};
UnicodeString expectedDefault(chars1, 10, 10);
UnicodeString expectedCurrency(chars2, 10, 10);
- UnicodeString expectedPercent(chars3, 9, 9);
+ UnicodeString expectedPercent(chars3, 10, 10);
UErrorCode status = U_ZERO_ERROR;
formatter = NumberFormat::createInstance(Locale::getCanadaFrench(), status);
@@ -1683,6 +1684,21 @@ void NumberFormatRegressionTest::Test4122840(void)
DecimalFormat *fmt2 = new DecimalFormat(buf, *symbols, status);
failure(status, "new DecimalFormat");
+ // Get the currency (if there is one) so we can set the rounding and fraction
+ const UChar *currency = fmt1->getCurrency();
+ if (*currency != 0) {
+ double rounding = ucurr_getRoundingIncrement(currency, &status);
+ int32_t frac = ucurr_getDefaultFractionDigits(currency, &status);
+ if (U_SUCCESS(status)) {
+ fmt2->setRoundingIncrement(rounding);
+ fmt2->setMinimumFractionDigits(frac);
+ fmt2->setMaximumFractionDigits(frac);
+ }
+ else {
+ failure(status, "Fetching currency rounding/fractions");
+ }
+ }
+
UnicodeString result2;
fmt2->format(1.111, result2, pos);
@@ -2385,6 +2401,17 @@ void NumberFormatRegressionTest::Test4212072(void) {
if (U_FAILURE(status)) {
continue;
}
+
+ // Make sure we set the currency attributes appropriately
+ if (j == 1) { // Currency format
+ f2.setCurrency(f2.getCurrency(), status);
+ }
+ failure(status,
+ UnicodeString("setCurrency() for (") + pat + ")", avail[i]);
+ if (U_FAILURE(status)) {
+ continue;
+ }
+
if (*df != f2) {
UnicodeString l, p;
errln(UnicodeString("FAIL: ") + type[j] + avail[i].getDisplayName(l) +
diff --git a/Build/source/libs/icu-xetex/test/intltest/rbbiapts.cpp b/Build/source/libs/icu-xetex/test/intltest/rbbiapts.cpp
index 9a9c0669a6c..54f4db99cf3 100644
--- a/Build/source/libs/icu-xetex/test/intltest/rbbiapts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/rbbiapts.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1999-2005, International Business Machines Corporation and
+ * Copyright (c) 1999-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -20,6 +20,7 @@
#include "rbbiapts.h"
#include "rbbidata.h"
#include "cstring.h"
+#include "ubrkimpl.h"
#include "unicode/ustring.h"
#include "unicode/utext.h"
@@ -147,8 +148,8 @@ void RBBIAPITest::TestCloneEquals()
void RBBIAPITest::TestBoilerPlate()
{
UErrorCode status = U_ZERO_ERROR;
- BreakIterator* a = BreakIterator::createLineInstance(Locale("hi"), status);
- BreakIterator* b = BreakIterator::createLineInstance(Locale("hi_IN"),status);
+ BreakIterator* a = BreakIterator::createWordInstance(Locale("hi"), status);
+ BreakIterator* b = BreakIterator::createWordInstance(Locale("hi_IN"),status);
if (U_FAILURE(status)) {
errln("Creation of break iterator failed %s", u_errorName(status));
return;
@@ -156,7 +157,7 @@ void RBBIAPITest::TestBoilerPlate()
if(*a!=*b){
errln("Failed: boilerplate method operator!= does not return correct results");
}
- BreakIterator* c = BreakIterator::createLineInstance(Locale("th"),status);
+ BreakIterator* c = BreakIterator::createWordInstance(Locale("ja"),status);
if(a && c){
if(*c==*a){
errln("Failed: boilerplate method opertator== does not return correct results");
@@ -259,8 +260,10 @@ void RBBIAPITest::TestGetSetAdoptText()
CharacterIterator* text3= new StringCharacterIterator(str2, 3, 10, 3); // "ond str"
wordIter1->setText(str1);
- if(wordIter1->getText() != *text1)
- errln((UnicodeString)"ERROR:1 error in setText or getText ");
+ CharacterIterator *tci = &wordIter1->getText();
+ UnicodeString tstr;
+ tci->getText(tstr);
+ TEST_ASSERT(tstr == str1);
if(wordIter1->current() != 0)
errln((UnicodeString)"ERROR:1 setText did not set the iteration position to the beginning of the text, it is" + wordIter1->current() + (UnicodeString)"\n");
@@ -272,9 +275,14 @@ void RBBIAPITest::TestGetSetAdoptText()
charIter1->adoptText(text1Clone);
- if( wordIter1->getText() == charIter1->getText() ||
- wordIter1->getText() != *text2 || charIter1->getText() != *text1 )
- errln((UnicodeString)"ERROR:2 error is getText or setText()");
+ TEST_ASSERT(wordIter1->getText() != charIter1->getText());
+ tci = &wordIter1->getText();
+ tci->getText(tstr);
+ TEST_ASSERT(tstr == str2);
+ tci = &charIter1->getText();
+ tci->getText(tstr);
+ TEST_ASSERT(tstr == str1);
+
RuleBasedBreakIterator* rb=(RuleBasedBreakIterator*)wordIter1->clone();
rb->adoptText(text1);
@@ -285,13 +293,17 @@ void RBBIAPITest::TestGetSetAdoptText()
errln((UnicodeString)"ERROR:2 error in adoptText ");
// Adopt where iterator range is less than the entire orignal source string.
+ // (With the change of the break engine to working with UText internally,
+ // CharacterIterators starting at positions other than zero are not supported)
rb->adoptText(text3);
- if(rb->preceding(2) != 3) {
- errln((UnicodeString)"ERROR:3 error in adoptText ");
- }
- if(rb->following(11) != BreakIterator::DONE) {
- errln((UnicodeString)"ERROR:4 error in adoptText ");
- }
+ TEST_ASSERT(rb->preceding(2) == 0);
+ TEST_ASSERT(rb->following(11) == BreakIterator::DONE);
+ //if(rb->preceding(2) != 3) {
+ // errln((UnicodeString)"ERROR:3 error in adoptText ");
+ //}
+ //if(rb->following(11) != BreakIterator::DONE) {
+ // errln((UnicodeString)"ERROR:4 error in adoptText ");
+ //}
// UText API
//
@@ -342,6 +354,13 @@ void RBBIAPITest::TestGetSetAdoptText()
pos = wordIter1->previous();
TEST_ASSERT(pos==UBRK_DONE);
+ status = U_ZERO_ERROR;
+ UnicodeString sEmpty;
+ UText *gut2 = utext_openUnicodeString(NULL, &sEmpty, &status);
+ wordIter1->getUText(gut2, status);
+ TEST_ASSERT_SUCCESS(status);
+ utext_close(gut2);
+
utext_close(ut);
utext_close(ut2);
@@ -858,17 +877,17 @@ void RBBIAPITest::TestBug2190() {
void RBBIAPITest::TestRegistration() {
#if !UCONFIG_NO_SERVICE
UErrorCode status = U_ZERO_ERROR;
- BreakIterator* thai_word = BreakIterator::createWordInstance("th_TH", status);
+ BreakIterator* ja_word = BreakIterator::createWordInstance("ja_JP", status);
// ok to not delete these if we exit because of error?
- BreakIterator* thai_char = BreakIterator::createCharacterInstance("th_TH", status);
+ BreakIterator* ja_char = BreakIterator::createCharacterInstance("ja_JP", status);
BreakIterator* root_word = BreakIterator::createWordInstance("", status);
BreakIterator* root_char = BreakIterator::createCharacterInstance("", status);
- URegistryKey key = BreakIterator::registerInstance(thai_word, "xx", UBRK_WORD, status);
+ URegistryKey key = BreakIterator::registerInstance(ja_word, "xx", UBRK_WORD, status);
{
- if (thai_word && *thai_word == *root_word) {
- errln("thai not different from root");
+ if (ja_word && *ja_word == *root_word) {
+ errln("japan not different from root");
}
}
@@ -876,7 +895,7 @@ void RBBIAPITest::TestRegistration() {
BreakIterator* result = BreakIterator::createWordInstance("xx_XX", status);
UBool fail = TRUE;
if(result){
- fail = *result != *thai_word;
+ fail = *result != *ja_word;
}
delete result;
if (fail) {
@@ -885,14 +904,14 @@ void RBBIAPITest::TestRegistration() {
}
{
- BreakIterator* result = BreakIterator::createCharacterInstance("th_TH", status);
+ BreakIterator* result = BreakIterator::createCharacterInstance("ja_JP", status);
UBool fail = TRUE;
if(result){
- fail = *result != *thai_char;
+ fail = *result != *ja_char;
}
delete result;
if (fail) {
- errln("bad result for th_TH/char");
+ errln("bad result for ja_JP/char");
}
}
@@ -977,8 +996,8 @@ void RBBIAPITest::TestRegistration() {
}
- // that_word was adopted by factory
- delete thai_char;
+ // ja_word was adopted by factory
+ delete ja_char;
delete root_word;
delete root_char;
#endif
@@ -989,7 +1008,7 @@ void RBBIAPITest::RoundtripRule(const char *dataFile) {
UParseError parseError;
parseError.line = 0;
parseError.offset = 0;
- UDataMemory *data = udata_open(NULL, "brk", dataFile, &status);
+ UDataMemory *data = udata_open(U_ICUDATA_BRKITR, "brk", dataFile, &status);
uint32_t length;
const UChar *builtSource;
const uint8_t *rbbiRules;
@@ -1025,8 +1044,8 @@ void RBBIAPITest::TestRoundtripRules() {
RoundtripRule("line");
RoundtripRule("char");
if (!quick) {
- RoundtripRule("word_th");
- RoundtripRule("line_th");
+ RoundtripRule("word_ja");
+ RoundtripRule("word_POSIX");
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/rbbitst.cpp b/Build/source/libs/icu-xetex/test/intltest/rbbitst.cpp
index 4e02c7e800c..34deb932b62 100644
--- a/Build/source/libs/icu-xetex/test/intltest/rbbitst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/rbbitst.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1999-2005, International Business Machines Corporation and
+ * Copyright (c) 1999-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -29,6 +29,7 @@
#include <string.h>
#include "uvector.h"
#include "uvectr32.h"
+#include "triedict.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
@@ -303,7 +304,7 @@ static void printStringBreaks(UnicodeString ustr, int expected[],
{
UErrorCode status = U_ZERO_ERROR;
char name[100];
- printf("code alpha extend alphanum type line name\n");
+ printf("code alpha extend alphanum type word sent line name\n");
int j;
for (j = 0; j < ustr.length(); j ++) {
if (expectedcount > 0) {
@@ -320,17 +321,25 @@ static void printStringBreaks(UnicodeString ustr, int expected[],
j ++;
}
u_charName(c, U_UNICODE_CHAR_NAME, name, 100, &status);
- printf("%7x %5d %6d %8d %4s %4s %s\n", (int)c,
+ printf("%7x %5d %6d %8d %4s %4s %4s %4s %s\n", (int)c,
u_isUAlphabetic(c),
u_hasBinaryProperty(c, UCHAR_GRAPHEME_EXTEND),
u_isalnum(c),
u_getPropertyValueName(UCHAR_GENERAL_CATEGORY,
u_charType(c),
U_SHORT_PROPERTY_NAME),
- u_getPropertyValueName(UCHAR_LINE_BREAK,
+ u_getPropertyValueName(UCHAR_WORD_BREAK,
u_getIntPropertyValue(c,
- UCHAR_LINE_BREAK),
+ UCHAR_WORD_BREAK),
U_SHORT_PROPERTY_NAME),
+ u_getPropertyValueName(UCHAR_SENTENCE_BREAK,
+ u_getIntPropertyValue(c,
+ UCHAR_SENTENCE_BREAK),
+ U_SHORT_PROPERTY_NAME),
+ u_getPropertyValueName(UCHAR_LINE_BREAK,
+ u_getIntPropertyValue(c,
+ UCHAR_LINE_BREAK),
+ U_SHORT_PROPERTY_NAME),
name);
}
}
@@ -411,64 +420,7 @@ void RBBITest::TestMixedThaiLineBreak()
// @suwit - end of changes
- // Arabic numerals should always be separated from surrounding Thai text
-/*
- ADD_DATACHUNK(thaiLineSelection, "\\u0e04\\u0e48\\u0e32", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e07\\u0e34\\u0e19", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e1a\\u0e32\\u0e17", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e41\\u0e15\\u0e30", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e23\\u0e30\\u0e14\\u0e31\\u0e1a", 0, status);
- thaiLineSelection->addElement("39");
- ADD_DATACHUNK(thaiLineSelection, "\\u0e1a\\u0e32\\u0e17 ", 0, status);
-
- // words in non-Thai scripts should always be separated from surrounding Thai text
- ADD_DATACHUNK(thaiLineSelection, "\\u0e17\\u0e14", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e2a\\u0e2d\\u0e1a", 0, status);
- thaiLineSelection->addElement("Java");
- ADD_DATACHUNK(thaiLineSelection, "\\u0e1a\\u0e19", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e04\\u0e23\\u0e37\\u0e48\\u0e2d\\u0e07", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e44\\u0e2d\\u0e1a\\u0e35\\u0e40\\u0e2d\\u0e47\\u0e21 ", 0, status);
-
- // Thai numerals should always be separated from the text surrounding them
- ADD_DATACHUNK(thaiLineSelection, "\\u0e04\\u0e48\\u0e32", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e07\\u0e34\\u0e19", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e1a\\u0e32\\u0e17", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e41\\u0e15\\u0e30", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e23\\u0e30\\u0e14\\u0e31\\u0e1a", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e53\\u0e59", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e1a\\u0e32\\u0e17 ", 0, status);
-
- // Thai text should interact correctly with punctuation and symbols
- ADD_DATACHUNK(thaiLineSelection, "\\u0e44\\u0e2d\\u0e1a\\u0e35\\u0e40\\u0e2d\\u0e47\\u0e21", 0, status);
-// ADD_DATACHUNK(thaiLineSelection, "(\\u0e1b\\u0e23\\u0e30\\u0e40\\u0e17\\u0e28", 0, status);
-// ADD_DATACHUNK(thaiLineSelection, "\\u0e44\\u0e17\\u0e22)", 0, status);
-ADD_DATACHUNK(thaiLineSelection, "(\\u0e1b\\u0e23\\u0e30\\u0e40\\u0e17\\u0e28\\u0e44\\u0e17\\u0e22)", 0, status);
-// I believe the commented-out reading above to be the correct one, but this is what passes with our current dictionary
- ADD_DATACHUNK(thaiLineSelection, "\\u0e08\\u0e33\\u0e01\\u0e31\\u0e14", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e1b\\u0e34\\u0e14", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e15\\u0e31\\u0e27\"", 0, status);
-*/
-
- /* remove the old data sample.
- // The Unicode Linebreak TR says do not break before or after quotes.
- // So this test is changed ot not break around the quote.
- // TODO: should Thai break around the around the quotes, like the original behavior here?
-// ADD_DATACHUNK(thaiLineSelection, "\\u0e2e\\u0e32\\u0e23\\u0e4c\\u0e14\\u0e14\\u0e34\\u0e2a\\u0e01\\u0e4c\"", 0, status);
-// ADD_DATACHUNK(thaiLineSelection, "\\u0e23\\u0e38\\u0e48\\u0e19", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e2e\\u0e32\\u0e23\\u0e4c\\u0e14\\u0e14\\u0e34\\u0e2a\\u0e01\\u0e4c\""
- "\\u0e23\\u0e38\\u0e48\\u0e19", 0, status);
-
- ADD_DATACHUNK(thaiLineSelection, "\\u0e43\\u0e2b\\u0e21\\u0e48", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e14\\u0e37\\u0e2d\\u0e19\\u0e21\\u0e34.", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e22.", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e19\\u0e35\\u0e49", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e23\\u0e32\\u0e04\\u0e32", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "$200", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e17\\u0e48\\u0e32", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e19\\u0e31\\u0e49\\u0e19 ", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "(\"\\u0e2e\\u0e32\\u0e23\\u0e4c\\u0e14\\u0e14\\u0e34\\u0e2a\\u0e01\\u0e4c\").", 0, status);
-*/
RuleBasedBreakIterator* e = (RuleBasedBreakIterator *)BreakIterator::createLineInstance(Locale("th"), status);
if (U_FAILURE(status))
{
@@ -493,9 +445,11 @@ void RBBITest::TestMaiyamok()
ADD_DATACHUNK(thaiLineSelection, "\\u0e44\\u0e1b\\u0e46", 0, status);
ADD_DATACHUNK(thaiLineSelection, "\\u0e21\\u0e32\\u0e46", 0, status);
ADD_DATACHUNK(thaiLineSelection, "\\u0e23\\u0e30\\u0e2b\\u0e27\\u0e48\\u0e32\\u0e07", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e01\\u0e23\\u0e38\\u0e07\\u0e40\\u0e17\\u0e1e", 0, status);
+ ADD_DATACHUNK(thaiLineSelection, "\\u0e01\\u0e23\\u0e38\\u0e07", 0, status);
+ ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e17\\u0e1e", 0, status);
ADD_DATACHUNK(thaiLineSelection, "\\u0e41\\u0e25\\u0e30", 0, status);
- ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e03\\u0e35\\u0e22\\u0e07", 0, status);
+ ADD_DATACHUNK(thaiLineSelection, "\\u0e40\\u0e03\\u0e35", 0, status);
+ ADD_DATACHUNK(thaiLineSelection, "\\u0e22\\u0e07", 0, status);
ADD_DATACHUNK(thaiLineSelection, "\\u0e43\\u0e2b\\u0e21\\u0e48", 0, status);
RuleBasedBreakIterator* e = (RuleBasedBreakIterator *)BreakIterator::createLineInstance(
@@ -510,88 +464,6 @@ void RBBITest::TestMaiyamok()
delete e;
}
-void RBBITest::TestThaiWordBreak() {
- UErrorCode status = U_ZERO_ERROR;
- BITestData thaiWordSelection(status);
-
- ADD_DATACHUNK(thaiWordSelection, NULL, 0, status); // Break at start of data
-
-
- // @suwit -- Thai sample data from GVT Guideline
- // start
- ADD_DATACHUNK(thaiWordSelection, "\\u0E2B\\u0E19\\u0E36\\u0E48\\u0E07", 0, status); //5
- ADD_DATACHUNK(thaiWordSelection, "\\u0E04\\u0E33", 0, status); //7
- ADD_DATACHUNK(thaiWordSelection, "\\u0E44\\u0E17\\u0E22", 0, status); //10
- ADD_DATACHUNK(thaiWordSelection, "\\u0E2A\\u0E32\\u0E21\\u0E32\\u0E23\\u0E16", 0, status); //16
- ADD_DATACHUNK(thaiWordSelection, "\\u0E1B\\u0E23\\u0E30\\u0E01\\u0E2D\\u0E1A", 0, status); //22
- ADD_DATACHUNK(thaiWordSelection, "\\u0E14\\u0E49\\u0E27\\u0E22", 0, status); //26
- ADD_DATACHUNK(thaiWordSelection, "\\u0e2b\\u0e25\\u0e32\\u0e22", 0, status); //30
- ADD_DATACHUNK(thaiWordSelection, "\\u0e1e\\u0e22\\u0e32\\u0e07\\u0e04\\u0e4c", 0, status); //36
-
- // @suwit - end of changes
-
- /* remove the old data sample because Thai translation of the Wizard of Oz is not good testcase for wordbreak API.
-
- ADD_DATACHUNK(thaiWordSelection, "\\u0E1A\\u0E17", 0, status); //2
- ADD_DATACHUNK(thaiWordSelection, "\\u0E17\\u0E35\\u0E48", 0, status); //5
- ADD_DATACHUNK(thaiWordSelection, "\\u0E51", 0, status); //6
- ADD_DATACHUNK(thaiWordSelection, "\\u0E1E\\u0E32\\u0E22\\u0E38", 0, status); //10
- ADD_DATACHUNK(thaiWordSelection, "\\u0E44\\u0E0B\\u0E42\\u0E04\\u0E25\\u0E19", 0, status); //16
- ADD_DATACHUNK(thaiWordSelection, "\\u000D\\u000A", 0, status); //18
-
- // This is the correct result
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E42\\u0E14\\u0E42\\u0E23\\u0E18\\u0E35", 0, status); //24
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E2D\\u0E32\\u0E28\\u0E31\\u0E22", 0, status); //29
-
- // and this is what the dictionary does...
- ADD_DATACHUNK(thaiWordSelection, "\\u0E42\\u0E14", 0, status); // 20
- ADD_DATACHUNK(thaiWordSelection, "\\u0E42\\u0E23\\u0E18\\u0E35\\u0E2D\\u0E32\\u0E28\\u0E31\\u0E22", 0, status); //29
-
- ADD_DATACHUNK(thaiWordSelection, "\\u0E2D\\u0E22\\u0E39\\u0E48", 0, status); //33
-
- // This is the correct result
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E17\\u0E48\\u0E32\\u0E21", 0, status); //37
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E01\\u0E25\\u0E32\\u0E07", 0, status); //41
-
- // and this is what the dictionary does
- ADD_DATACHUNK(thaiWordSelection, "\\u0E17\\u0E48\\u0E32\\u0E21\\u0E01\\u0E25\\u0E32\\u0E07", 0, status); //41
-
- ADD_DATACHUNK(thaiWordSelection, "\\u0E17\\u0E38\\u0E48\\u0E07", 0, status); //45
- ADD_DATACHUNK(thaiWordSelection, "\\u0E43\\u0E2B\\u0E0D\\u0E48", 0, status); //49
- ADD_DATACHUNK(thaiWordSelection, "\\u0E43\\u0E19", 0, status); //51
-
- // This is the correct result
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E41\\u0E04\\u0E19\\u0E0B\\u0E31\\u0E2A", 0, status); //57
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E01\\u0E31\\u0E1A", 0, status); //60
-
- // and this is what the dictionary does
- ADD_DATACHUNK(thaiWordSelection, "\\u0E41\\u0E04\\u0E19", 0, status); // 54
- ADD_DATACHUNK(thaiWordSelection, "\\u0E0B\\u0E31\\u0E2A\\u0E01\\u0E31\\u0E1A", 0, status); //60
-
- ADD_DATACHUNK(thaiWordSelection, "\\u0E25\\u0E38\\u0E07", 0, status); //63
-
- // This is the correct result
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E40\\u0E2E\\u0E19\\u0E23\\u0E35", 0, status); //68
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E0A\\u0E32\\u0E27", 0, status); //71
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E44\\u0E23\\u0E48", 0, status); //74
- //ADD_DATACHUNK(thaiWordSelection, "\\u0E41\\u0E25\\u0E30", 0, status); //77
-
- // and this is what the dictionary does
- ADD_DATACHUNK(thaiWordSelection, "\\u0E40\\u0E2E", 0, status); // 65
- ADD_DATACHUNK(thaiWordSelection, "\\u0E19\\u0E23\\u0E35\\u0E0A\\u0E32\\u0E27\\u0E44\\u0E23\\u0E48\\u0E41\\u0E25\\u0E30", 0, status); //77
- */
-
- RuleBasedBreakIterator* e = (RuleBasedBreakIterator *)BreakIterator::createWordInstance(
- Locale("th"), status);
- if (U_FAILURE(status))
- {
- errln("Failed to create the BreakIterator for Thai locale in TestThaiWordBreak.\n");
- return;
- }
-
- generalIteratorTest(*e, thaiWordSelection);
- delete e;
-}
void RBBITest::TestBug3818() {
@@ -648,6 +520,222 @@ void RBBITest::TestJapaneseWordBreak() {
delete e;
}
+void RBBITest::TestTrieDict() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ //
+ // Open and read the test data file.
+ //
+ const char *testDataDirectory = IntlTest::getSourceTestData(status);
+ char testFileName[1000];
+ if (testDataDirectory == NULL || strlen(testDataDirectory) + strlen("riwords.txt") + 10 >= sizeof(testFileName)) {
+ errln("Can't open test data. Path too long.");
+ return;
+ }
+ strcpy(testFileName, testDataDirectory);
+ strcat(testFileName, "riwords.txt");
+
+ // Items needing deleting at the end
+ MutableTrieDictionary *mutableDict = NULL;
+ CompactTrieDictionary *compactDict = NULL;
+ UnicodeSet *breaks = NULL;
+ UChar *testFile = NULL;
+ StringEnumeration *enumer = NULL;
+ MutableTrieDictionary *mutable2 = NULL;
+ StringEnumeration *cloneEnum = NULL;
+ CompactTrieDictionary *compact2 = NULL;
+
+
+ const UnicodeString *originalWord = NULL;
+ const UnicodeString *cloneWord = NULL;
+ UChar *current;
+ UChar *word;
+ UChar uc;
+ int32_t wordLen;
+ int32_t wordCount;
+ int32_t testCount;
+
+ int len;
+ testFile = ReadAndConvertFile(testFileName, len, status);
+ if (U_FAILURE(status)) {
+ goto cleanup; /* something went wrong, error already output */
+ }
+
+ mutableDict = new MutableTrieDictionary(0x0E1C, status);
+ if (U_FAILURE(status)) {
+ errln("Error creating MutableTrieDictionary: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ breaks = new UnicodeSet;
+ breaks->add(0x000A); // Line Feed
+ breaks->add(0x000D); // Carriage Return
+ breaks->add(0x2028); // Line Separator
+ breaks->add(0x2029); // Paragraph Separator
+
+ // Now add each non-comment line of the file as a word.
+ current = testFile;
+ word = current;
+ uc = *current++;
+ wordLen = 0;
+ wordCount = 0;
+
+ while (uc) {
+ if (uc == 0x0023) { // #comment line, skip
+ while (uc && !breaks->contains(uc)) {
+ uc = *current++;
+ }
+ }
+ else while (uc && !breaks->contains(uc)) {
+ ++wordLen;
+ uc = *current++;
+ }
+ if (wordLen > 0) {
+ mutableDict->addWord(word, wordLen, status);
+ if (U_FAILURE(status)) {
+ errln("Could not add word to mutable dictionary; status %s\n", u_errorName(status));
+ goto cleanup;
+ }
+ wordCount += 1;
+ }
+
+ // Find beginning of next line
+ while (uc && breaks->contains(uc)) {
+ uc = *current++;
+ }
+ word = current-1;
+ wordLen = 0;
+ }
+
+ if (wordCount < 50) {
+ errln("Word count (%d) unreasonably small\n", wordCount);
+ goto cleanup;
+ }
+
+ enumer = mutableDict->openWords(status);
+ if (U_FAILURE(status)) {
+ errln("Could not open mutable dictionary enumerator: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ testCount = 0;
+ if (wordCount != (testCount = enumer->count(status))) {
+ errln("MutableTrieDictionary word count (%d) differs from file word count (%d), with status %s\n",
+ testCount, wordCount, u_errorName(status));
+ goto cleanup;
+ }
+
+ delete enumer;
+ enumer = NULL;
+
+ // Now compact it
+ compactDict = new CompactTrieDictionary(*mutableDict, status);
+ if (U_FAILURE(status)) {
+ errln("Failed to create CompactTrieDictionary: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ enumer = compactDict->openWords(status);
+ if (U_FAILURE(status)) {
+ errln("Could not open compact trie dictionary enumerator: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ if (wordCount != (testCount = enumer->count(status))) {
+ errln("CompactTrieDictionary word count (%d) differs from file word count (%d), with status %s\n",
+ testCount, wordCount, u_errorName(status));
+ goto cleanup;
+ }
+
+ delete enumer;
+ enumer = NULL;
+
+ // Now un-compact it
+ mutable2 = compactDict->cloneMutable(status);
+ if (U_FAILURE(status)) {
+ errln("Could not clone CompactTrieDictionary to MutableTrieDictionary: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ cloneEnum = mutable2->openWords(status);
+ if (U_FAILURE(status)) {
+ errln("Could not create cloned mutable enumerator: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ if (wordCount != (testCount = cloneEnum->count(status))) {
+ errln("Cloned MutableTrieDictionary word count (%d) differs from file word count (%d), with status %s\n",
+ testCount, wordCount, u_errorName(status));
+ goto cleanup;
+ }
+
+ // Compact original dictionary to clone. Note that we can only compare the same kind of
+ // dictionary as the order of the enumerators is not guaranteed to be the same between
+ // different kinds
+ enumer = mutableDict->openWords(status);
+ if (U_FAILURE(status)) {
+ errln("Could not re-open mutable dictionary enumerator: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ originalWord = enumer->snext(status);
+ cloneWord = cloneEnum->snext(status);
+ while (U_SUCCESS(status) && originalWord != NULL && cloneWord != NULL) {
+ if (*originalWord != *cloneWord) {
+ errln("Original and cloned MutableTrieDictionary word mismatch\n");
+ goto cleanup;
+ }
+ originalWord = enumer->snext(status);
+ cloneWord = cloneEnum->snext(status);
+ }
+
+ if (U_FAILURE(status)) {
+ errln("Enumeration failed: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ if (originalWord != cloneWord) {
+ errln("Original and cloned MutableTrieDictionary ended enumeration at different points\n");
+ goto cleanup;
+ }
+
+ // Test the data copying constructor for CompactTrieDict, and the data access APIs.
+ compact2 = new CompactTrieDictionary(compactDict->data(), status);
+ if (U_FAILURE(status)) {
+ errln("CompactTrieDictionary(const void *,...) failed\n");
+ goto cleanup;
+ }
+
+ if (compact2->dataSize() == 0) {
+ errln("CompactTrieDictionary->dataSize() == 0\n");
+ goto cleanup;
+ }
+
+ // Now count the words via the second dictionary
+ delete enumer;
+ enumer = compact2->openWords(status);
+ if (U_FAILURE(status)) {
+ errln("Could not open compact trie dictionary 2 enumerator: %s\n", u_errorName(status));
+ goto cleanup;
+ }
+
+ if (wordCount != (testCount = enumer->count(status))) {
+ errln("CompactTrieDictionary 2 word count (%d) differs from file word count (%d), with status %s\n",
+ testCount, wordCount, u_errorName(status));
+ goto cleanup;
+ }
+
+cleanup:
+ delete compactDict;
+ delete mutableDict;
+ delete breaks;
+ delete[] testFile;
+ delete enumer;
+ delete mutable2;
+ delete cloneEnum;
+ delete compact2;
+}
+
//---------------------------------------------
// runIndexedTest
//---------------------------------------------
@@ -679,23 +767,21 @@ void RBBITest::runIndexedTest( int32_t index, UBool exec, const char* &name, cha
if(exec) TestEndBehaviour(); break;
case 8: name = "TestMixedThaiLineBreak";
if(exec) TestMixedThaiLineBreak(); break;
- case 9: name = "TestThaiWordBreak";
- if(exec) TestThaiWordBreak(); break;
- case 10: name = "TestThaiLineBreak";
+ case 9: name = "TestThaiLineBreak";
if(exec) TestThaiLineBreak(); break;
- case 11: name = "TestMaiyamok";
+ case 10: name = "TestMaiyamok";
if(exec) TestMaiyamok(); break;
- case 12: name = "TestWordBreaks";
+ case 11: name = "TestWordBreaks";
if(exec) TestWordBreaks(); break;
- case 13: name = "TestWordBoundary";
+ case 12: name = "TestWordBoundary";
if(exec) TestWordBoundary(); break;
- case 14: name = "TestLineBreaks";
+ case 13: name = "TestLineBreaks";
if(exec) TestLineBreaks(); break;
- case 15: name = "TestSentBreaks";
- if(exec) TestSentBreaks(); break;
- case 16: name = "TestExtended";
+ case 14: name = "TestSentBreaks";
+ if(exec) TestSentBreaks(); break;
+ case 15: name = "TestExtended";
if(exec) TestExtended(); break;
- case 17: name = "TestMonkey";
+ case 16: name = "TestMonkey";
if(exec) {
#if !UCONFIG_NO_REGULAR_EXPRESSIONS
TestMonkey(params);
@@ -704,12 +790,14 @@ void RBBITest::runIndexedTest( int32_t index, UBool exec, const char* &name, cha
#endif
}
break;
- case 18: name = "TestBug3818";
+ case 17: name = "TestBug3818";
if(exec) TestBug3818(); break;
- case 19: name = "TestJapaneseWordBreak";
+ case 18: name = "TestJapaneseWordBreak";
if(exec) TestJapaneseWordBreak(); break;
- case 20: name = "TestDebug";
+ case 19: name = "TestDebug";
if(exec) TestDebug(); break;
+ case 20: name = "TestTrieDict";
+ if(exec) TestTrieDict(); break;
default: name = ""; break; //needed to end loop
}
@@ -1055,15 +1143,19 @@ void RBBITest::TestBug4153072() {
UnicodeString str("...Hello, World!...");
int32_t begin = 3;
int32_t end = str.length() - 3;
- UBool dummy;
+ UBool onBoundary;
StringCharacterIterator* textIterator = new StringCharacterIterator(str, begin, end, begin);
iter->adoptText(textIterator);
int index;
+ // Note: with the switch to UText, there is no way to restrict the
+ // iteration range to begin at an index other than zero.
+ // String character iterators created with a non-zero bound are
+ // treated by RBBI as being empty.
for (index = -1; index < begin + 1; ++index) {
- dummy = iter->isBoundary(index);
- if (index < begin && dummy == TRUE) {
- errln((UnicodeString)"Didn't handle preceeding correctly with offset = " + index +
+ onBoundary = iter->isBoundary(index);
+ if (index == 0? !onBoundary : onBoundary) {
+ errln((UnicodeString)"Didn't handle isBoundary correctly with offset = " + index +
" and begin index = " + begin);
}
}
@@ -1161,6 +1253,10 @@ void RBBITest::executeTest(TestParams *t) {
int32_t prevBP;
int32_t i;
+ if (t->bi == NULL) {
+ return;
+ }
+
t->bi->setText(t->dataToBreak);
//
// Run the iterator forward
@@ -1198,11 +1294,12 @@ void RBBITest::executeTest(TestParams *t) {
if (expectedTagVal == -1) {
expectedTagVal = 0;
}
+ int32_t line = t->srcLine->elementAti(bp);
int32_t rs = ((RuleBasedBreakIterator *)t->bi)->getRuleStatus();
if (rs != expectedTagVal) {
errln("Incorrect status for forward break. Pos=%4d File line,col= %4d,%4d.\n"
" Actual, Expected status = %4d, %4d",
- bp, t->srcLine->elementAti(bp), t->srcCol->elementAti(bp), rs, expectedTagVal);
+ bp, line, t->srcCol->elementAti(bp), rs, expectedTagVal);
}
}
@@ -1250,11 +1347,12 @@ void RBBITest::executeTest(TestParams *t) {
if (expectedTagVal == -1) {
expectedTagVal = 0;
}
+ int line = t->srcLine->elementAti(bp);
int32_t rs = ((RuleBasedBreakIterator *)t->bi)->getRuleStatus();
if (rs != expectedTagVal) {
errln("Incorrect status for reverse break. Pos=%4d File line,col= %4d,%4d.\n"
" Actual, Expected status = %4d, %4d",
- bp, t->srcLine->elementAti(bp), t->srcCol->elementAti(bp), rs, expectedTagVal);
+ bp, line, t->srcCol->elementAti(bp), rs, expectedTagVal);
}
}
@@ -1272,6 +1370,7 @@ void RBBITest::executeTest(TestParams *t) {
void RBBITest::TestExtended() {
+#if !UCONFIG_NO_REGULAR_EXPRESSIONS
UErrorCode status = U_ZERO_ERROR;
Locale locale("");
@@ -1282,6 +1381,9 @@ void RBBITest::TestExtended() {
tp.srcLine = new UVector32(status);
tp.srcCol = new UVector32(status);
+ RegexMatcher localeMatcher("<locale *([\\p{L}\\p{Nd}_]*) *>", 0, status);
+ TEST_ASSERT_SUCCESS(status);
+
//
// Open and read the test data file.
@@ -1335,6 +1437,7 @@ void RBBITest::TestExtended() {
int32_t tagValue = 0; // The numeric value of a <nnn> tag.
for (charIdx = 0; charIdx < len; ) {
+ status = U_ZERO_ERROR;
UChar c = testString.charAt(charIdx);
charIdx++;
if (c == CH_CR && charIdx<len && testString.charAt(charIdx) == CH_LF) {
@@ -1385,7 +1488,8 @@ void RBBITest::TestExtended() {
}
if (testString.compare(charIdx-1, 6, "<sent>") == 0) {
delete tp.bi;
- tp.bi = BreakIterator::createSentenceInstance(locale, status);
+ tp.bi = NULL;
+ tp.bi = BreakIterator::createSentenceInstance(locale, status);
charIdx += 5;
break;
}
@@ -1395,6 +1499,17 @@ void RBBITest::TestExtended() {
charIdx += 6;
break;
}
+ // <locale loc_name>
+ localeMatcher.reset(testString);
+ if (localeMatcher.lookingAt(charIdx-1, status)) {
+ UnicodeString localeName = localeMatcher.group(1, status);
+ char localeName8[100];
+ localeName.extract(0, localeName.length(), localeName8, sizeof(localeName8), 0);
+ locale = Locale::createFromName(localeName8);
+ charIdx += localeMatcher.group(0, status).length();
+ TEST_ASSERT_SUCCESS(status);
+ break;
+ }
if (testString.compare(charIdx-1, 6, "<data>") == 0) {
parseState = PARSE_DATA;
charIdx += 5;
@@ -1432,7 +1547,7 @@ void RBBITest::TestExtended() {
tp.srcCol ->addElement(column, status);
parseState = PARSE_TAG;
- charIdx += 7;
+ charIdx += 6;
// RUN THE TEST!
executeTest(&tp);
@@ -1471,6 +1586,7 @@ void RBBITest::TestExtended() {
}
if (nameEndIdx > charIdx) {
charIdx = nameEndIdx+1;
+
}
break;
}
@@ -1605,6 +1721,7 @@ end_test:
delete tp.srcLine;
delete tp.srcCol;
delete [] testFile;
+#endif
}
@@ -1701,7 +1818,7 @@ UChar *RBBITest::ReadAndConvertFile(const char *fileName, int &ulen, UErrorCode
cleanUpAndReturn:
fclose(f);
- delete fileBuf;
+ delete []fileBuf;
ucnv_close(conv);
if (U_FAILURE(status)) {
errln("ucnv_toUChars: ICU Error \"%s\"\n", u_errorName(status));
@@ -2104,29 +2221,31 @@ private:
RegexMatcher *fMatcher;
const UnicodeString *fText;
-
- RegexMatcher *fGCFMatcher;
- RegexMatcher *fGCMatcher;
-
};
-RBBIWordMonkey::RBBIWordMonkey() : fGCFMatcher(0),
- fGCMatcher(0)
+RBBIWordMonkey::RBBIWordMonkey()
{
UErrorCode status = U_ZERO_ERROR;
- fSets = new UVector(status);
- fALetterSet = new UnicodeSet("[\\p{Word_Break = ALetter}]", status);
- fKatakanaSet = new UnicodeSet("[\\p{Word_Break = Katakana}]", status);
- fMidLetterSet = new UnicodeSet("[\\p{Word_Break = MidLetter}]", status);
+ fSets = new UVector(status);
+
+ fALetterSet = new UnicodeSet("[\\p{Word_Break = ALetter}"
+ "[\\p{Line_Break = Complex_Context}"
+ "-\\p{Grapheme_Cluster_Break = Extend}"
+ "-\\p{Grapheme_Cluster_Break = Control}]]", status);
+ //fALetterSet = new UnicodeSet("[\\p{Word_Break = ALetter}]", status);
+ fKatakanaSet = new UnicodeSet("[\\p{Word_Break = Katakana}-[\\uff9e\\uff9f]]", status);
+ fMidLetterSet = new UnicodeSet("[\\p{Word_Break = MidLetter}]", status);
fMidNumSet = new UnicodeSet("[\\p{Word_Break = MidNum}]", status);
fNumericSet = new UnicodeSet("[\\p{Word_Break = Numeric}]", status);
fFormatSet = new UnicodeSet("[\\p{Word_Break = Format}]", status);
- fExtendSet = new UnicodeSet("[\\p{Grapheme_Cluster_Break = Extend}]", status);
- fExtendNumLetSet = new UnicodeSet("[\\p{General_Category = Connector_Punctuation}]", status);
- fOtherSet = new UnicodeSet();
+ fExtendNumLetSet = new UnicodeSet("[\\p{Word_Break = ExtendNumLet}]", status);
+ //fExtendSet = new UnicodeSet("[\\p{Word_Break = Extend}]", status);
+ fExtendSet = new UnicodeSet("[\\p{Grapheme_Cluster_Break = Extend}\\uff9e\\uff9f]", status);
+
+ fOtherSet = new UnicodeSet();
if(U_FAILURE(status)) {
deferredStatus = status;
return;
@@ -2153,9 +2272,6 @@ RBBIWordMonkey::RBBIWordMonkey() : fGCFMatcher(0),
fSets->addElement(fExtendNumLetSet, status);
- fGCFMatcher = new RegexMatcher("\\X(?:[\\p{Format}-\\p{Grapheme_Extend}])*", 0, status);
- fGCMatcher = new RegexMatcher("\\X", 0, status);
-
if (U_FAILURE(status)) {
deferredStatus = status;
}
@@ -2163,14 +2279,10 @@ RBBIWordMonkey::RBBIWordMonkey() : fGCFMatcher(0),
void RBBIWordMonkey::setText(const UnicodeString &s) {
fText = &s;
- fGCMatcher->reset(*fText);
- fGCFMatcher->reset(*fText);
}
int32_t RBBIWordMonkey::next(int32_t prevPos) {
- UErrorCode status = U_ZERO_ERROR;
-
int p0, p1, p2, p3; // Indices of the significant code points around the
// break position being tested. The candidate break
// location is before p2.
@@ -2187,31 +2299,20 @@ int32_t RBBIWordMonkey::next(int32_t prevPos) {
c3 = fText->char32At(prevPos);
c0 = c1 = c2 = 0;
-
- // Format char after prev break? Special case, see last Note for Word Boundaries TR.
- // break immdiately after the format char.
- if (fFormatSet->contains(c3)) {
- breakPos = fText->moveIndex32(prevPos, 1);
- return breakPos;
- }
-
-
// Loop runs once per "significant" character position in the input text.
for (;;) {
// Move all of the positions forward in the input string.
p0 = p1; c0 = c1;
p1 = p2; c1 = c2;
p2 = p3; c2 = c3;
- // Advancd p3 by (GC Format*) Rules 3, 4
- status = U_ZERO_ERROR;
- if (fGCFMatcher->find(p3, status) == FALSE) {
- p3 = fText->length();
- c3 = 0;
- } else {
- p3 = fGCFMatcher->end(0, status);
- U_ASSERT(U_SUCCESS(status));
+
+ // Advancd p3 by X(Extend | Format)* Rule 4
+ do {
+ p3 = fText->moveIndex32(p3, 1);
c3 = fText->char32At(p3);
}
+ while (fFormatSet->contains(c3) || fExtendSet->contains(c3));
+
if (p1 == p2) {
// Still warming up the loop. (won't work with zero length strings, but we don't care)
@@ -2221,6 +2322,14 @@ int32_t RBBIWordMonkey::next(int32_t prevPos) {
// Reached end of string. Always a break position.
break;
}
+
+ // Rule (3) CR x LF
+ // No Extend or Format characters may appear between the CR and LF,
+ // which requires the additional check for p2 immediately following p1.
+ //
+ if (c1==0x0D && c2==0x0A && p1==(p2-1)) {
+ continue;
+ }
// Rule (5). ALetter x ALetter
if (fALetterSet->contains(c1) &&
@@ -2298,20 +2407,11 @@ int32_t RBBIWordMonkey::next(int32_t prevPos) {
continue;
}
-
// Rule 14. Break found here.
break;
}
-
- // Rule 4 fixup, back up before any trailing
- // format characters at the end of the word.
breakPos = p2;
- status = U_ZERO_ERROR;
- if (fGCMatcher->find(p1, status)) {
- breakPos = fGCMatcher->end(0, status);
- U_ASSERT(U_SUCCESS(status));
- }
return breakPos;
}
@@ -2332,11 +2432,317 @@ RBBIWordMonkey::~RBBIWordMonkey() {
delete fExtendSet;
delete fExtendNumLetSet;
delete fOtherSet;
+}
+
+
+
+
+//------------------------------------------------------------------------------------------
+//
+// class RBBISentMonkey Sentence Break specific implementation
+// of RBBIMonkeyKind.
+//
+//------------------------------------------------------------------------------------------
+class RBBISentMonkey: public RBBIMonkeyKind {
+public:
+ RBBISentMonkey();
+ virtual ~RBBISentMonkey();
+ virtual UVector *charClasses();
+ virtual void setText(const UnicodeString &s);
+ virtual int32_t next(int32_t i);
+private:
+ int moveBack(int posFrom);
+ int moveForward(int posFrom);
+ UChar32 cAt(int pos);
+
+ UVector *fSets;
+
+ UnicodeSet *fSepSet;
+ UnicodeSet *fFormatSet;
+ UnicodeSet *fSpSet;
+ UnicodeSet *fLowerSet;
+ UnicodeSet *fUpperSet;
+ UnicodeSet *fOLetterSet;
+ UnicodeSet *fNumericSet;
+ UnicodeSet *fATermSet;
+ UnicodeSet *fSTermSet;
+ UnicodeSet *fCloseSet;
+ UnicodeSet *fOtherSet;
+ UnicodeSet *fExtendSet;
+
+ const UnicodeString *fText;
+
+};
+
+RBBISentMonkey::RBBISentMonkey()
+{
+ UErrorCode status = U_ZERO_ERROR;
+
+ fSets = new UVector(status);
+
+ fSepSet = new UnicodeSet("[\\p{Sentence_Break = Sep}]", status);
+ fFormatSet = new UnicodeSet("[\\p{Sentence_Break = Format}]", status);
+ fSpSet = new UnicodeSet("[\\p{Sentence_Break = Sp}]", status);
+ fLowerSet = new UnicodeSet("[\\p{Sentence_Break = Lower}]", status);
+ fUpperSet = new UnicodeSet("[\\p{Sentence_Break = Upper}]", status);
+ fOLetterSet = new UnicodeSet("[\\p{Sentence_Break = OLetter}-[\\uff9e\\uff9f]]", status);
+ fNumericSet = new UnicodeSet("[\\p{Sentence_Break = Numeric}]", status);
+ fATermSet = new UnicodeSet("[\\p{Sentence_Break = ATerm}]", status);
+ fSTermSet = new UnicodeSet("[\\p{Sentence_Break = STerm}]", status);
+ fCloseSet = new UnicodeSet("[\\p{Sentence_Break = Close}]", status);
+ fExtendSet = new UnicodeSet("[\\p{Grapheme_Extend}\\uff9e\\uff9f]", status);
+ fOtherSet = new UnicodeSet();
+
+ if(U_FAILURE(status)) {
+ deferredStatus = status;
+ return;
+ }
+
+ fOtherSet->complement();
+ fOtherSet->removeAll(*fSepSet);
+ fOtherSet->removeAll(*fFormatSet);
+ fOtherSet->removeAll(*fSpSet);
+ fOtherSet->removeAll(*fLowerSet);
+ fOtherSet->removeAll(*fUpperSet);
+ fOtherSet->removeAll(*fOLetterSet);
+ fOtherSet->removeAll(*fNumericSet);
+ fOtherSet->removeAll(*fATermSet);
+ fOtherSet->removeAll(*fSTermSet);
+ fOtherSet->removeAll(*fCloseSet);
+ fOtherSet->removeAll(*fExtendSet);
+
+ fSets->addElement(fSepSet, status);
+ fSets->addElement(fFormatSet, status);
+
+ fSets->addElement(fSpSet, status);
+ fSets->addElement(fLowerSet, status);
+ fSets->addElement(fUpperSet, status);
+ fSets->addElement(fOLetterSet, status);
+ fSets->addElement(fNumericSet, status);
+ fSets->addElement(fATermSet, status);
+ fSets->addElement(fSTermSet, status);
+ fSets->addElement(fCloseSet, status);
+ fSets->addElement(fOtherSet, status);
+ fSets->addElement(fExtendSet, status);
+
+ if (U_FAILURE(status)) {
+ deferredStatus = status;
+ }
+}
+
+
+
+void RBBISentMonkey::setText(const UnicodeString &s) {
+ fText = &s;
+}
+
+UVector *RBBISentMonkey::charClasses() {
+ return fSets;
+}
+
+
+// moveBack() Find the "significant" code point preceding the index i.
+// Skips over ($Extend | $Format)* .
+//
+int RBBISentMonkey::moveBack(int i) {
+ if (i <= 0) {
+ return -1;
+ }
+ UChar32 c;
+ int32_t j = i;
+ do {
+ j = fText->moveIndex32(j, -1);
+ c = fText->char32At(j);
+ }
+ while (j>0 &&(fFormatSet->contains(c) || fExtendSet->contains(c)));
+ return j;
+
+ }
+
+
+int RBBISentMonkey::moveForward(int i) {
+ if (i>=fText->length()) {
+ return fText->length();
+ }
+ UChar32 c;
+ int32_t j = i;
+ do {
+ j = fText->moveIndex32(j, 1);
+ c = cAt(j);
+ }
+ while (fFormatSet->contains(c) || fExtendSet->contains(c));
+ return j;
+}
+
+UChar32 RBBISentMonkey::cAt(int pos) {
+ if (pos<0 || pos>=fText->length()) {
+ return -1;
+ } else {
+ return fText->char32At(pos);
+ }
+}
+
+int32_t RBBISentMonkey::next(int32_t prevPos) {
+ int p0, p1, p2, p3; // Indices of the significant code points around the
+ // break position being tested. The candidate break
+ // location is before p2.
+
+ int breakPos = -1;
+
+ UChar32 c0, c1, c2, c3; // The code points at p0, p1, p2 & p3.
+ UChar32 c;
+
+ // Prev break at end of string. return DONE.
+ if (prevPos >= fText->length()) {
+ return -1;
+ }
+ p0 = p1 = p2 = p3 = prevPos;
+ c3 = fText->char32At(prevPos);
+ c0 = c1 = c2 = 0;
+
+ // Loop runs once per "significant" character position in the input text.
+ for (;;) {
+ // Move all of the positions forward in the input string.
+ p0 = p1; c0 = c1;
+ p1 = p2; c1 = c2;
+ p2 = p3; c2 = c3;
+
+ // Advancd p3 by X(Extend | Format)* Rule 4
+ p3 = moveForward(p3);
+ c3 = cAt(p3);
+
+ // Rule (3) CR x LF
+ if (c1==0x0d && c2==0x0a && p2==(p1+1)) {
+ continue;
+ }
+
+ // Rule (4). Sep <break>
+ if (fSepSet->contains(c1)) {
+ p2 = p1+1; // Separators don't combine with Extend or Format.
+ break;
+ }
+
+ if (p2 >= fText->length()) {
+ // Reached end of string. Always a break position.
+ break;
+ }
+
+ if (p2 == prevPos) {
+ // Still warming up the loop. (won't work with zero length strings, but we don't care)
+ continue;
+ }
+
+ // Rule (6). ATerm x Numeric
+ if (fATermSet->contains(c1) && fNumericSet->contains(c2)) {
+ continue;
+ }
+
+ // Rule (7). Upper ATerm x Uppper
+ if (fUpperSet->contains(c0) && fATermSet->contains(c1) && fUpperSet->contains(c2)) {
+ continue;
+ }
+
+ // Rule (8) ATerm Close* Sp* x (not (OLettter | Upper | Lower | Sep | STerm | ATerm))* Lower
+ // Note: STerm | ATerm are added to the negated part of the expression by a
+ // note to the Unicode 5.0 documents.
+ int p8 = p1;
+ while (fSpSet->contains(cAt(p8))) {
+ p8 = moveBack(p8);
+ }
+ while (fCloseSet->contains(cAt(p8))) {
+ p8 = moveBack(p8);
+ }
+ if (fATermSet->contains(cAt(p8))) {
+ p8=p2;
+ for (;;) {
+ c = cAt(p8);
+ if (c==-1 || fOLetterSet->contains(c) || fUpperSet->contains(c) ||
+ fLowerSet->contains(c) || fSepSet->contains(c) ||
+ fATermSet->contains(c) || fSTermSet->contains(c)) {
+ break;
+ }
+ p8 = moveForward(p8);
+ }
+ if (fLowerSet->contains(cAt(p8))) {
+ continue;
+ }
+ }
+
+ // Rule 8a (STerm | ATerm) Close* Sp* x (STerm | ATerm);
+ if (fSTermSet->contains(c2) || fATermSet->contains(c2)) {
+ p8 = p1;
+ while (fSpSet->contains(cAt(p8))) {
+ p8 = moveBack(p8);
+ }
+ while (fCloseSet->contains(cAt(p8))) {
+ p8 = moveBack(p8);
+ }
+ c = cAt(p8);
+ if (fSTermSet->contains(c) || fATermSet->contains(c)) {
+ continue;
+ }
+ }
+
+ // Rule (9) (STerm | ATerm) Close* x (Close | Sp | Sep)
+ int p9 = p1;
+ while (fCloseSet->contains(cAt(p9))) {
+ p9 = moveBack(p9);
+ }
+ c = cAt(p9);
+ if ((fSTermSet->contains(c) || fATermSet->contains(c))) {
+ if (fCloseSet->contains(c2) || fSpSet->contains(c2) || fSepSet->contains(c2)) {
+ continue;
+ }
+ }
+
+ // Rule (10) (Sterm | ATerm) Close* Sp* x (Sp | Sep)
+ int p10 = p1;
+ while (fSpSet->contains(cAt(p10))) {
+ p10 = moveBack(p10);
+ }
+ while (fCloseSet->contains(cAt(p10))) {
+ p10 = moveBack(p10);
+ }
+ if (fSTermSet->contains(cAt(p10)) || fATermSet->contains(cAt(p10))) {
+ if (fSpSet->contains(c2) || fSepSet->contains(c2)) {
+ continue;
+ }
+ }
+
+ // Rule (11) (STerm | ATerm) Close* Sp* <break>
+ int p11 = p1;
+ while (fSpSet->contains(cAt(p11))) {
+ p11 = moveBack(p11);
+ }
+ while (fCloseSet->contains(cAt(p11))) {
+ p11 = moveBack(p11);
+ }
+ if (fSTermSet->contains(cAt(p11)) || fATermSet->contains(cAt(p11))) {
+ break;
+ }
- delete fGCFMatcher;
- delete fGCMatcher;
+ // Rule (12) Any x Any
+ continue;
+ }
+ breakPos = p2;
+ return breakPos;
}
+RBBISentMonkey::~RBBISentMonkey() {
+ delete fSets;
+ delete fSepSet;
+ delete fFormatSet;
+ delete fSpSet;
+ delete fLowerSet;
+ delete fUpperSet;
+ delete fOLetterSet;
+ delete fNumericSet;
+ delete fATermSet;
+ delete fSTermSet;
+ delete fCloseSet;
+ delete fOtherSet;
+ delete fExtendSet;
+}
@@ -2353,7 +2759,7 @@ public:
virtual UVector *charClasses();
virtual void setText(const UnicodeString &s);
virtual int32_t next(int32_t i);
- virtual void rule7Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos, UChar32 *nextChar);
+ virtual void rule9Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos, UChar32 *nextChar);
private:
UVector *fSets;
@@ -2444,6 +2850,7 @@ RBBILineMonkey::RBBILineMonkey()
fAL = new UnicodeSet("[\\p{Line_break=AL}]", status);
fID = new UnicodeSet("[\\p{Line_break=ID}]", status);
fSA = new UnicodeSet("[\\p{Line_break=SA}]", status);
+ fSG = new UnicodeSet("[\\ud800-\\udfff]", status);
fXX = new UnicodeSet("[\\p{Line_break=XX}]", status);
if (U_FAILURE(status)) {
@@ -2456,6 +2863,7 @@ RBBILineMonkey::RBBILineMonkey()
fAL->addAll(*fXX); // Default behavior for XX is identical to AL
fAL->addAll(*fAI); // Default behavior for AI is identical to AL
fAL->addAll(*fSA); // Default behavior for SA is XX, which defaults to AL
+ fAL->addAll(*fSG); // Default behavior for SG is identical to AL.
fSets->addElement(fBK, status);
fSets->addElement(fCR, status);
@@ -2492,14 +2900,15 @@ RBBILineMonkey::RBBILineMonkey()
fSets->addElement(fID, status);
fSets->addElement(fWJ, status);
fSets->addElement(fSA, status);
+ fSets->addElement(fSG, status);
fNumberMatcher = new RegexMatcher(
- "(\\p{Line_Break=PR}\\p{Line_Break=CM}*)?"
+ "((\\p{Line_Break=PR}|\\p{Line_Break=PO})\\p{Line_Break=CM}*)?"
"((\\p{Line_Break=OP}|\\p{Line_Break=HY})\\p{Line_Break=CM}*)?"
"\\p{Line_Break=NU}\\p{Line_Break=CM}*"
"((\\p{Line_Break=NU}|\\p{Line_Break=IS}|\\p{Line_Break=SY})\\p{Line_Break=CM}*)*"
"(\\p{Line_Break=CL}\\p{Line_Break=CM}*)?"
- "(\\p{Line_Break=PO}\\p{Line_Break=CM}*)?",
+ "((\\p{Line_Break=PR}|\\p{Line_Break=PO})\\p{Line_Break=CM}*)?",
0, status);
fCharBI = BreakIterator::createCharacterInstance(Locale::getEnglish(), status);
@@ -2517,8 +2926,8 @@ void RBBILineMonkey::setText(const UnicodeString &s) {
}
//
-// rule7Adjust
-// Line Break TR rules 6 and 7 implementation.
+// rule9Adjust
+// Line Break TR rules 9 and 10 implementation.
// This deals with combining marks and other sequences that
// that must be treated as if they were something other than what they actually are.
//
@@ -2526,7 +2935,7 @@ void RBBILineMonkey::setText(const UnicodeString &s) {
// each potential break, once to the chars before the position being checked, then
// again to the text following the possible break.
//
-void RBBILineMonkey::rule7Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos, UChar32 *nextChar) {
+void RBBILineMonkey::rule9Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos, UChar32 *nextChar) {
if (pos == -1) {
// Invalid initial position. Happens during the warmup iteration of the
// main loop in next().
@@ -2535,9 +2944,9 @@ void RBBILineMonkey::rule7Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos
int32_t nPos = *nextPos;
- // LB 7b Keep combining sequences together.
+ // LB 9 Keep combining sequences together.
// advance over any CM class chars. Note that Line Break CM is different
- // from normal Mc general category.
+ // from the normal Grapheme Extend property.
if (!(fSP->contains(*posChar) || fBK->contains(*posChar) || *posChar==0x0d ||
*posChar==0x0a ||fNL->contains(*posChar) || fZW->contains(*posChar))) {
for (;;) {
@@ -2550,10 +2959,10 @@ void RBBILineMonkey::rule7Adjust(int32_t pos, UChar32 *posChar, int32_t *nextPos
}
- // LB 7b Treat X CM* as if it were x.
+ // LB 9 Treat X CM* as if it were x.
// No explicit action required.
- // LB 7c Treat any remaining combining mark as AL
+ // LB 10 Treat any remaining combining mark as AL
if (fCM->contains(*posChar)) {
*posChar = 0x41; // thisChar = 'A';
}
@@ -2614,14 +3023,14 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
break;
}
- // Rule LB 7 - adjust for combining sequences.
+ // Rule LB 9 - adjust for combining sequences.
// We do this one out-of-order because the adjustment does not change anything
// that would match rules LB 3 - LB 6, but after the adjustment, LB 3-6 do need to
// be applied.
- rule7Adjust(prevPos, &prevChar, &pos, &thisChar);
+ rule9Adjust(prevPos, &prevChar, &pos, &thisChar);
nextCPPos = nextPos = fText->moveIndex32(pos, 1);
c = fText->char32At(nextPos);
- rule7Adjust(pos, &thisChar, &nextPos, &c);
+ rule9Adjust(pos, &thisChar, &nextPos, &c);
// If the loop is still warming up - if we haven't shifted the initial
// -1 positions out of prevPos yet - loop back to advance the
@@ -2629,13 +3038,13 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
if (prevPos == -1) {
continue;
}
-
- // LB 3a Always break after hard line breaks,
+
+ // LB 4 Always break after hard line breaks,
if (fBK->contains(prevChar)) {
break;
}
- // LB 3b Break after CR, LF, NL, but not inside CR LF
+ // LB 5 Break after CR, LF, NL, but not inside CR LF
if (prevChar == 0x0d && thisChar == 0x0a) {
continue;
}
@@ -2645,14 +3054,14 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
break;
}
- // LB 3c Don't break before hard line breaks
+ // LB 6 Don't break before hard line breaks
if (thisChar == 0x0d || thisChar == 0x0a || thisChar == 0x85 ||
fBK->contains(thisChar)) {
continue;
}
- // LB 4 Don't break before spaces or zero-width space.
+ // LB 7 Don't break before spaces or zero-width space.
if (fSP->contains(thisChar)) {
continue;
}
@@ -2661,18 +3070,36 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB 5 Break after zero width space
+ // LB 8 Break after zero width space
if (fZW->contains(prevChar)) {
break;
}
- // LB 7 Already done, at top of loop.
+ // LB 9, 10 Already done, at top of loop.
//
- // LB 8 Don't break before closings.
- // NU x CL and NU x IS are not matched here so that they will
- // fall into LB 17 and the more general number regular expression.
+ // LB 11 Do not break before or after WORD JOINER and related characters.
+ // x WJ
+ // WJ x
+ //
+ if (fWJ->contains(thisChar) || fWJ->contains(prevChar)) {
+ continue;
+ }
+
+ // LB 12
+ // (!SP) x GL
+ // GL x
+ if ((!fSP->contains(prevChar)) && fGL->contains(thisChar) ||
+ fGL->contains(prevChar)) {
+ continue;
+ }
+
+
+
+ // LB 13 Don't break before closings.
+ // NU x CL and NU x IS are not matched here so that they will
+ // fall into LB 17 and the more general number regular expression.
//
if (!fNU->contains(prevChar) && fCL->contains(thisChar) ||
fEX->contains(thisChar) ||
@@ -2681,9 +3108,9 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB 9 Don't break after OP SP*
+ // LB 14 Don't break after OP SP*
// Scan backwards, checking for this sequence.
- // The OP char could include combining marks, so we acually check for
+ // The OP char could include combining marks, so we actually check for
// OP CM* SP*
// Another Twist: The Rule 67 fixes may have changed a SP CM
// sequence into a ID char, so before scanning back through spaces,
@@ -2703,7 +3130,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
}
- // LB 10 QU SP* x OP
+ // LB 15 QU SP* x OP
if (fOP->contains(thisChar)) {
// Scan backwards from prevChar to see if it is preceded by QU CM* SP*
int tPos = prevPos;
@@ -2720,7 +3147,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
- // LB 11 CL SP* x NS
+ // LB 16 CL SP* x NS
// Scan backwards for SP* CM* CL
if (fNS->contains(thisChar)) {
int tPos = prevPos;
@@ -2736,7 +3163,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
}
- // LB 11a B2 SP* x B2
+ // LB 17 B2 SP* x B2
if (fB2->contains(thisChar)) {
// Scan backwards, checking for the B2 CM* SP* sequence.
tPos = prevPos;
@@ -2753,39 +3180,25 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
}
}
-
- // LB 11b
- // x WJ
- // WJ x
- if (fWJ->contains(thisChar) || fWJ->contains(prevChar)) {
- continue;
- }
-
- // LB 12 break after space
+
+ // LB 18 break after space
if (fSP->contains(prevChar)) {
break;
}
- // LB 13
- // x GL
- // GL x
- if (fGL->contains(thisChar) || fGL->contains(prevChar)) {
- continue;
- }
-
- // LB 14
+ // LB 19
// x QU
// QU x
if (fQU->contains(thisChar) || fQU->contains(prevChar)) {
continue;
}
- // LB 14a Break around a CB
+ // LB 20 Break around a CB
if (fCB->contains(thisChar) || fCB->contains(prevChar)) {
break;
}
- // LB 15
+ // LB 21
if (fBA->contains(thisChar) ||
fHY->contains(thisChar) ||
fNS->contains(thisChar) ||
@@ -2793,7 +3206,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB 16
+ // LB 22
if (fAL->contains(prevChar) && fIN->contains(thisChar) ||
fID->contains(prevChar) && fIN->contains(thisChar) ||
fIN->contains(prevChar) && fIN->contains(thisChar) ||
@@ -2802,7 +3215,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
}
- // LB 17 ID x PO
+ // LB 23 ID x PO
// AL x NU
// NU x AL
if (fID->contains(prevChar) && fPO->contains(thisChar) ||
@@ -2811,7 +3224,19 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB 18 Numbers
+ // LB 24 Do not break between prefix and letters or ideographs.
+ // PR x ID
+ // PR x AL
+ // PO x AL
+ if (fPR->contains(prevChar) && fID->contains(thisChar) ||
+ fPR->contains(prevChar) && fAL->contains(thisChar) ||
+ fPO->contains(prevChar) && fAL->contains(thisChar) ) {
+ continue;
+ }
+
+
+
+ // LB 25 Numbers
if (fNumberMatcher->lookingAt(prevPos, status)) {
if (U_FAILURE(status)) {
break;
@@ -2825,26 +3250,18 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
// Number match includes additional chars. Update pos and nextPos
// so that next loop iteration will continue at the end of the number,
// checking for breaks between last char in number & whatever follows.
- nextPos = numEndIdx;
- pos = fCharBI->preceding(numEndIdx);
- thisChar = fText->char32At(pos);
- while (fCM->contains(thisChar)) {
- pos = fCharBI->preceding(pos); // TODO: just get previous codepoint. Don't use BI.
+ pos = nextPos = numEndIdx;
+ do {
+ pos = fText->moveIndex32(pos, -1);
thisChar = fText->char32At(pos);
- }
+ } while (fCM->contains(thisChar));
}
continue;
}
}
- if (fPR->contains(prevChar) && fAL->contains(thisChar)) {
- continue;
- }
- if (fPR->contains(prevChar) && fID->contains(thisChar)) {
- continue;
- }
- // LB 18b
+ // LB 26 Do not break a Korean syllable.
if (fJL->contains(prevChar) && (fJL->contains(thisChar) ||
fJV->contains(thisChar) ||
fH2->contains(thisChar) ||
@@ -2862,7 +3279,7 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
continue;
}
- // LB 18c more Korean
+ // LB 27 Treat a Korean Syllable Block the same as ID.
if ((fJL->contains(prevChar) || fJV->contains(prevChar) ||
fJT->contains(prevChar) || fH2->contains(prevChar) || fH3->contains(prevChar)) &&
fIN->contains(thisChar)) {
@@ -2880,17 +3297,30 @@ int32_t RBBILineMonkey::next(int32_t startPos) {
- // LB 19
+ // LB 28 Do not break between alphabetics (“atâ€).
if (fAL->contains(prevChar) && fAL->contains(thisChar)) {
continue;
}
- // LB 19b
+ // LB 29 Do not break between numeric punctuation and alphabetics ("e.g.").
if (fIS->contains(prevChar) && fAL->contains(thisChar)) {
continue;
}
- // LB 20 Break everywhere else
+ //LB 30 Do not break between letters, numbers or ordinary symbols and opening or closing punctuation
+ // (AL | NU) x OP
+ // CL x (AL | NU)
+ if ((fAL->contains(prevChar) || fNU->contains(prevChar)) &&
+ fOP->contains(thisChar)) {
+ continue;
+ }
+ if (fCL->contains(prevChar) &&
+ (fAL->contains(thisChar) || fNU->contains(thisChar))) {
+ continue;
+ }
+
+
+ // LB 31 Break everywhere else
break;
}
@@ -2941,6 +3371,7 @@ RBBILineMonkey::~RBBILineMonkey() {
delete fAL;
delete fID;
delete fSA;
+ delete fSG;
delete fXX;
delete fCharBI;
@@ -3007,7 +3438,7 @@ static void testBreakBoundPreceding(RBBITest *test, UnicodeString ustr,
}
if (count != expectedcount) {
printStringBreaks(ustr, expected, expectedcount);
- test->errln("break test failed: missed %d match",
+ test->errln("break forward test failed: missed %d match",
expectedcount - count);
return;
}
@@ -3016,13 +3447,13 @@ static void testBreakBoundPreceding(RBBITest *test, UnicodeString ustr,
int j = expected[i - 1];
if (!bi->isBoundary(j)) {
printStringBreaks(ustr, expected, expectedcount);
- test->errln("Expected boundary at position %d", j);
+ test->errln("isBoundary() failed. Expected boundary at position %d", j);
return;
}
for (j = expected[i - 1] + 1; j < expected[i]; j ++) {
if (bi->isBoundary(j)) {
printStringBreaks(ustr, expected, expectedcount);
- test->errln("Not expecting boundary at position %d", j);
+ test->errln("isBoundary() failed. Not expecting boundary at position %d", j);
return;
}
}
@@ -3031,24 +3462,25 @@ static void testBreakBoundPreceding(RBBITest *test, UnicodeString ustr,
for (i = bi->last(); i != BreakIterator::DONE; i = bi->previous()) {
count --;
if (forward[count] != i) {
- test->errln("happy break test reverse failed: expected %d but got %d",
+ test->errln("happy break test previous() failed: expected %d but got %d",
forward[count], i);
break;
}
}
if (count != 0) {
printStringBreaks(ustr, expected, expectedcount);
- test->errln("happy break test failed: missed a match");
+ test->errln("break test previous() failed: missed a match");
return;
}
// testing preceding
for (i = 0; i < expectedcount - 1; i ++) {
- int j = expected[i] + 1;
+ // int j = expected[i] + 1;
+ int j = ustr.moveIndex32(expected[i], 1);
for (; j <= expected[i + 1]; j ++) {
if (bi->preceding(j) != expected[i]) {
printStringBreaks(ustr, expected, expectedcount);
- test->errln("Not expecting backwards boundary at position %d", j);
+ test->errln("preceding(): Not expecting boundary at position %d", j);
return;
}
}
@@ -3224,6 +3656,11 @@ void RBBITest::TestLineBreaks(void)
UChar str[STRSIZE];
static const char *strlist[] =
{
+ "\\u300f\\ufdfc\\ub798\\u2011\\u2011\\u0020\\u0b43\\u002d\\ubeec\\ufffc",
+ "\\u24ba\\u2060\\u3405\\ub290\\u000d\\U000e0032\\ufe35\\u00a0\\u0361\\"
+ "U000112ed\\u0f0c\\u000a\\u308e\\ua875\\u0085\\u114d",
+ "\\ufffc\\u3063\\u2e08\\u30e3\\u000d\\u002d\\u0ed8\\u002f\\U00011a57\\"
+ "u2014\\U000e0105\\u118c\\u000a\\u07f8",
"\\u0668\\u192b\\u002f\\u2034\\ufe39\\u00b4\\u0cc8\\u2571\\u200b\\u003f",
"\\ufeff\\ufffc\\u3289\\u0085\\u2772\\u0020\\U000e010a\\u0020\\u2025\\u000a\\U000e0123",
"\\ufe3c\\u201c\\u000d\\u2025\\u2007\\u201c\\u002d\\u20a0\\u002d\\u30a7\\u17a4",
@@ -3261,6 +3698,11 @@ void RBBITest::TestLineBreaks(void)
"\\u09cc\\u256a\\u276d\\u002d\\u3085\\u000d\\u0e05\\u2028\\u0fbb",
"\\u2034\\u00bb\\u0ae6\\u300c\\u0020\\u31f8\\ufffc",
"\\u2116\\u0ed2\\uff64\\u02cd\\u2001\\u2060",
+ "\\u809d\\u2e02\\u0f0a\\uc48f\\u2540\\u000d\\u0cef\\u003a\\u0e4d"
+ "\\U000e0172\\U000e005c\\u17cf\\U00010ca6\\ufeff\\uf621\\u06f3\\uffe5"
+ "\\u0ea2\\ufeff\\udcea\\u3085\\ua874\\u000a\\u0020\\u000b\\u200b",
+ "\\ufe10\\u2060\\u1a5a\\u2060\\u17e4\\ufffc\\ubbe1\\ufe15\\u0020\\u00a0",
+ "\\u2060\\u2213\\u200b\\u2019\\uc2dc\\uff6a\\u1736\\u0085\\udb07",
};
int loop;
TEST_ASSERT_SUCCESS(status);
@@ -3304,10 +3746,11 @@ void RBBITest::TestLineBreaks(void)
void RBBITest::TestSentBreaks(void)
{
+#if !UCONFIG_NO_REGULAR_EXPRESSIONS
Locale locale("en");
UErrorCode status = U_ZERO_ERROR;
BreakIterator *bi = BreakIterator::createSentenceInstance(locale, status);
- UChar str[100];
+ UChar str[200];
static const char *strlist[] =
{
"Now\ris\nthe\r\ntime\n\rfor\r\r",
@@ -3320,26 +3763,49 @@ void RBBITest::TestSentBreaks(void)
"Nel mezzo del cammin di nostra vita, mi ritrovai in una selva oscura. ",
"Che la dritta via aveo smarrita. He said, that I said, that you said!! ",
"Don't rock the boat.\\u2029Because I am the daddy, that is why. Not on my time (el timo.)!",
+ "\\U0001040a\\u203a\\u1217\\u2b23\\u000d\\uff3b\\u03dd\\uff57\\u0a69\\u104a\\ufe56\\ufe52"
+ "\\u3016\\U000e002f\\U000e0077\\u0662\\u1680\\u2984\\U000e006a\\u002e\\ua6ab\\u104a"
+ "\\u002e\\u019b\\u2005\\u002e\\u0477\\u0438\\u0085\\u0441\\u002e\\u5f61\\u202f"
+ "\\U0001019f\\uff08\\u27e8\\u055c\\u0352",
+ "\\u1f3e\\u004d\\u000a\\ua3e4\\U000e0023\\uff63\\u0c52\\u276d\\U0001d5de\\U0001d171"
+ "\\u0e38\\u17e5\\U00012fe6\\u0fa9\\u267f\\u1da3\\u0046\\u03ed\\udc72\\u0030"
+ "\\U0001d688\\u0b6d\\u0085\\u0c67\\u1f94\\u0c6c\\u9cb2\\u202a\\u180e\\u000b"
+ "\\u002e\\U000e005e\\u035b\\u061f\\u02c1\\U000e0025\\u0357\\u0969\\u202b"
+ "\\U000130c5\\u0486\\U000e0123\\u2019\\u01bc\\u2006\\u11ad\\u180e\\u2e05"
+ "\\u10b7\\u013e\\u000a\\u002e\\U00013ea4"
};
int loop;
- int forward[100];
if (U_FAILURE(status)) {
errln("Creation of break iterator failed %s", u_errorName(status));
return;
}
for (loop = 0; loop < (int)(sizeof(strlist) / sizeof(char *)); loop ++) {
- u_unescape(strlist[loop], str, 100);
+ u_unescape(strlist[loop], str, (int32_t)(sizeof(str) / sizeof(str[0])));
UnicodeString ustr(str);
- int count = 0;
- bi->setText(ustr);
+ RBBISentMonkey monkey;
+ if (U_FAILURE(monkey.deferredStatus)) {
+ continue;
+ }
+
+ const int EXPECTEDSIZE = 50;
+ int expected[EXPECTEDSIZE];
+ int expectedcount = 0;
+
+ monkey.setText(ustr);
int i;
- for (i = bi->first(); i != BreakIterator::DONE; i = bi->next()) {
- forward[count ++] = i;
+ for (i = 0; i != BreakIterator::DONE; i = monkey.next(i)) {
+ if (expectedcount >= EXPECTEDSIZE) {
+ TEST_ASSERT(expectedcount < EXPECTEDSIZE);
+ return;
+ }
+ expected[expectedcount ++] = i;
}
- testBreakBoundPreceding(this, ustr, bi, forward, count);
+
+ testBreakBoundPreceding(this, ustr, bi, expected, expectedcount);
}
delete bi;
+#endif
}
void RBBITest::TestMonkey(char *params) {
@@ -3422,7 +3888,7 @@ void RBBITest::TestMonkey(char *params) {
logln("Line Break Monkey Test");
RBBILineMonkey m;
BreakIterator *bi = BreakIterator::createLineInstance(locale, status);
- if (params == NULL) {
+ if (loopCount >= 10) {
loopCount = loopCount / 5; // Line break runs slower than the others.
}
if (U_SUCCESS(status)) {
@@ -3434,6 +3900,21 @@ void RBBITest::TestMonkey(char *params) {
delete bi;
}
+ if (breakType == "sent" || breakType == "all" ) {
+ logln("Sentence Break Monkey Test");
+ RBBISentMonkey m;
+ BreakIterator *bi = BreakIterator::createSentenceInstance(locale, status);
+ if (loopCount >= 10) {
+ loopCount = loopCount / 10; // Sentence runs slower than the other break types
+ }
+ if (U_SUCCESS(status)) {
+ RunMonkey(bi, m, "sentence", seed, loopCount, useUText);
+ }
+ else {
+ errln("Creation of line break iterator failed %s", u_errorName(status));
+ }
+ delete bi;
+ }
#endif
}
@@ -3508,6 +3989,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
UChar32 c = classSet->charAt(charIdx);
if (c < 0) { // TODO: deal with sets containing strings.
errln("c < 0");
+ break;
}
testText.append(c);
}
@@ -3527,6 +4009,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
errln("breakPos > testText.length()");
}
expectedBreaks[breakPos] = 1;
+ U_ASSERT(expectedCount<testText.length());
expected[expectedCount ++] = breakPos;
}
@@ -3544,6 +4027,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
} else {
bi->setText(testText);
}
+
for (i=bi->first(); i != BreakIterator::DONE; i=bi->next()) {
if (i < 0 || i > testText.length()) {
errln("%s break monkey test: Out of range value returned by breakIterator::next()", name);
@@ -3564,7 +4048,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
// Find the break positions using isBoundary() tests.
memset(isBoundaryBreaks, 0, sizeof(isBoundaryBreaks));
- U_ASSERT(sizeof(isBoundaryBreaks) > testText.length());
+ U_ASSERT((int32_t)sizeof(isBoundaryBreaks) > testText.length());
for (i=0; i<=testText.length(); i++) {
isBoundaryBreaks[i] = bi->isBoundary(i);
}
@@ -3583,7 +4067,8 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
breakPos > lastBreakPos && lastBreakPos > i ) {
errln("%s break monkey test: "
"Out of range value returned by BreakIterator::following().\n"
- "Random seed=%d", name, seed);
+ "Random seed=%d index=%d; following returned %d; lastbreak=%d",
+ name, seed, i, breakPos, lastBreakPos);
break;
}
followingBreaks[breakPos] = 1;
@@ -3598,8 +4083,8 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
breakPos = bi->preceding(i);
if (breakPos >= i ||
breakPos > lastBreakPos ||
- breakPos < 0 ||
- breakPos < lastBreakPos && lastBreakPos < i ) {
+ breakPos < 0 && testText.getChar32Start(i)>0 ||
+ breakPos < lastBreakPos && lastBreakPos < testText.getChar32Start(i) ) {
errln("%s break monkey test: "
"Out of range value returned by BreakIterator::preceding().\n"
"index=%d; prev returned %d; lastBreak=%d" ,
@@ -3658,7 +4143,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
}
}
- // Format looks like "<data><>\uabcd\uabcd<>\U0001abcd...</data>"
+ // Format looks like "<data>\\\uabcd\uabcd\\\U0001abcd...</data>"
UnicodeString errorText = "<data>";
/***if (strcmp(errorType, "next()") == 0) {
startContext = 0;
@@ -3677,7 +4162,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
errorText.append("<?>");
} else if (expectedBreaks[ci] != 0) {
// This a non-error expected break position.
- errorText.append("<>");
+ errorText.append("\\");
}
if (c < 0x10000) {
errorText.append("\\u");
@@ -3692,7 +4177,7 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
}
ci = testText.moveIndex32(ci, 1);
}
- errorText.append("<>");
+ errorText.append("\\");
errorText.append("</data>\n");
// Output the error
@@ -3720,18 +4205,25 @@ void RBBITest::RunMonkey(BreakIterator *bi, RBBIMonkeyKind &mk, const char *name
void RBBITest::TestDebug(void) {
#if 0
UErrorCode status = U_ZERO_ERROR;
- int pos;
+ int pos = 0;
+ int ruleStatus = 0;
RuleBasedBreakIterator* bi =
// (RuleBasedBreakIterator *)BreakIterator::createLineInstance(Locale::getDefault(), status);
- (RuleBasedBreakIterator *)BreakIterator::createWordInstance(Locale::Locale("th"), status);
- UnicodeString s("\\u0E2B\\u0E19\\u0E36\\u0E48\\u0E07\\u0E04\\u0E33");
+ // (RuleBasedBreakIterator *)BreakIterator::createWordInstance(Locale::Locale("th"), status);
+ (RuleBasedBreakIterator *)BreakIterator::createSentenceInstance(Locale::getDefault(), status);
+ UnicodeString s("\\u2008\\u002e\\udc6a\\u37cd\\u71d0\\u2048\\U000e006a\\u002e\\u0046\\ufd3f\\u000a\\u002e");
+ // UnicodeString s("Aaa. Bcd");
s = s.unescape();
bi->setText(s);
- // bi->last();
+ UBool r = bi->isBoundary(8);
+ printf("%s", r?"true":"false");
+ return;
+ pos = bi->last();
do {
- pos = bi->next();
- printf("%d\n", pos);
+ // ruleStatus = bi->getRuleStatus();
+ printf("%d\t%d\n", pos, ruleStatus);
+ pos = bi->previous();
} while (pos != BreakIterator::DONE);
#endif
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/rbbitst.h b/Build/source/libs/icu-xetex/test/intltest/rbbitst.h
index 6e78a795a11..5578847be19 100644
--- a/Build/source/libs/icu-xetex/test/intltest/rbbitst.h
+++ b/Build/source/libs/icu-xetex/test/intltest/rbbitst.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1999-2005, International Business Machines Corporation and
+ * Copyright (c) 1999-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -60,7 +60,6 @@ public:
void TestThaiLineBreak();
void TestMixedThaiLineBreak();
void TestMaiyamok();
- void TestThaiWordBreak();
void TestMonkey(char *params);
void TestExtended();
@@ -73,6 +72,7 @@ public:
void TestSentBreaks();
void TestBug3818();
void TestJapaneseWordBreak();
+ void TestTrieDict();
void TestDebug();
diff --git a/Build/source/libs/icu-xetex/test/intltest/restsnew.cpp b/Build/source/libs/icu-xetex/test/intltest/restsnew.cpp
index a3845d45d67..47669addb14 100644
--- a/Build/source/libs/icu-xetex/test/intltest/restsnew.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/restsnew.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -1127,9 +1127,9 @@ NewResourceBundleTest::TestGetByFallback() {
ResourceBundle heRes(NULL, "he", status);
- heRes.getWithFallback("calendar", status).getWithFallback("islamic-civil", status).getWithFallback("DateTimePatterns", status);
+ heRes.getWithFallback("calendar", status).getWithFallback("islamic-civil", status).getWithFallback("DateTime", status);
if(U_SUCCESS(status)) {
- errln("he locale's Islamic DateTimePatterns resource exists. How did it get here?\n");
+ errln("he locale's Islamic-civil DateTime resource exists. How did it get here?\n");
}
status = U_ZERO_ERROR;
@@ -1140,9 +1140,9 @@ NewResourceBundleTest::TestGetByFallback() {
status = U_ZERO_ERROR;
ResourceBundle rootRes(NULL, "root", status);
- rootRes.getWithFallback("calendar", status).getWithFallback("islamic-civil", status).getWithFallback("DateTimePatterns", status);
+ rootRes.getWithFallback("calendar", status).getWithFallback("islamic-civil", status).getWithFallback("DateTime", status);
if(U_SUCCESS(status)) {
- errln("Root's Islamic DateTimePatterns resource exists. How did it get here?\n");
+ errln("Root's Islamic-civil's DateTime resource exists. How did it get here?\n");
}
status = U_ZERO_ERROR;
diff --git a/Build/source/libs/icu-xetex/test/intltest/rndmcoll.cpp b/Build/source/libs/icu-xetex/test/intltest/rndmcoll.cpp
new file mode 100644
index 00000000000..f740703ea39
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/rndmcoll.cpp
@@ -0,0 +1,185 @@
+/*
+ ******************************************************************************
+ * Copyright (C) 2005-2006, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ ******************************************************************************
+ */
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include "rndmcoll.h"
+#include "wbnf.h"
+
+
+#if !UCONFIG_NO_COLLATION
+
+//Raymond: Following comments are copied from Java implementation
+//
+// each rule can be:
+// "[" command "]"
+// "& [" position "]"
+// "&" before chars
+// relation "[variable top]"
+// relation (chars "|")? chars ("/" chars)?
+// plus, a reset must come before a relation
+
+
+static const char collationBNF[] =
+ "$s = ' '? 50%;"
+ "$crlf = '\r\n';"
+
+ "$alternateOptions = non'-'ignorable | shifted;"
+ "$onoff = on | off;"
+ "$caseFirstOptions = off | upper | lower;"
+ "$strengthOptions = '1' | '2' | '3' | '4' | 'I';"
+ "$commandList = '['"
+ " ( alternate ' ' $alternateOptions"
+ " | backwards' 2'"
+ " | normalization ' ' $onoff "
+ " | caseLevel ' ' $onoff "
+ " | hiraganaQ ' ' $onoff"
+ " | caseFirst ' ' $caseFirstOptions"
+ " | strength ' ' $strengthOptions"
+ " ) ']';"
+ "$command = $commandList $crlf;"
+
+ "$ignorableTypes = (tertiary | secondary | primary) ' ' ignorable;"
+ "$allTypes = variable | regular | implicit | trailing | $ignorableTypes;"
+ "$positionList = '[' (first | last) ' ' $allTypes ']';"
+
+ "$beforeList = '[before ' ('1' | '2' | '3') ']';"
+
+ "$relationList = ("
+ " '<'"
+ " | '<<'"
+ " | ';'"
+ " | '<<<'"
+ " | ','"
+ " | '='"
+ ");"
+ "$string = $chars{1,5}~@;"
+ "$chars = 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|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| '<'| '&'| '['| ']';"
+ "$rel1 = '[variable top]' $s;"
+ "$p1 = ($string $s '|' $s)? 25%;"
+ "$p2 = ('/' $s $string $s)? 25%;"
+ "$rel2 = $p1 $string $s $p2;"
+ "$relation = $relationList $s ($rel1 | $rel2) $crlf;"
+
+ "$reset = '&' $s ($beforeList $s)? 10% ($positionList 1% | $string 10%) $crlf;"
+ "$mostRules = $command 1% | $reset 5% | $relation 25%;"
+ "$root = $command{0,5} $reset $mostRules{1,20};";
+
+
+static const UVersionInfo ICU_37 = {3,7,0,0};
+
+void RandomCollatorTest::Test2(){
+ if(!isICUVersionAtLeast(ICU_37)){
+ return;
+ }
+ else {
+ errln("TestWbnf is incorrectly implemented.\nThis test should be modeled to use the existing test frame work for naming tests.\n");
+ }
+ TestWbnf();
+}
+
+
+void RandomCollatorTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* ){
+ if (exec) logln("TestSuite RandomCollatorTest: ");
+ switch (index) {
+ TESTCASE(0, Test);
+ TESTCASE(1, Test2);
+ default: name = ""; break;
+ }
+}
+
+/*
+class TestColltorCompare{
+public:
+ UBool operator()(Collator &coll, int count = 1000){
+ UnicodeString a(test_string.get_a_string());
+ UnicodeString b(test_string.get_a_string());
+ UnicodeString c(test_string.get_a_string());
+ do{
+ if (check_transitivity(coll, a, b, c)){
+ a = b;
+ b = c;
+ c = UnicodeString(test_string.get_a_string());
+ }
+ }while(count-- >= 0 );
+
+ return FALSE;
+ }
+ TestColltorCompare():test_string("$s = $c{1,8};", "$s", "$c", new Magic_SelectOneChar("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]&<")){
+ }
+private:
+ UBool check_transitivity(const Collator & coll, const UnicodeString &a, const UnicodeString &b, const UnicodeString &c){
+ int ab = coll.compare(a,b), ba = coll.compare(b,a);
+ int bc = coll.compare(b,c), cb = coll.compare(c,b);
+ int ca = coll.compare(c,a), ac = coll.compare(a,c);
+ // a
+ // / \
+ // b - c
+ //
+ if (//counter-clockwise, maximum
+ (ab >=0 && bc >=0 && ac <0)
+ ||(bc >=0 && ca >=0 && ba <0)
+ ||(ca >=0 && ab >=0 && cb <0)
+
+ //counter-clockwise, minimum
+ ||(ab <=0 && bc <=0 && ca >0)
+ ||(bc <=0 && ca <=0 && ba >0)
+ ||(ca <=0 && ab <=0 && cb >0)
+ ){
+ return FALSE;
+ }
+ return TRUE;
+ }
+
+ LanguageGenerator test_string;
+};*/
+
+void RandomCollatorTest::Test(){
+ if(!isICUVersionAtLeast(ICU_37)){
+ return;
+ }
+ else {
+ errln("This test needs to be fixed.\n");
+ }
+ LanguageGenerator test_rule;
+ if (test_rule.parseBNF(collationBNF, "$root", TRUE) != LanguageGenerator::OK){
+ errln("The test code itself is wrong.");
+ return;
+ };
+
+ //TestColltorCompare coll_test;
+
+ static const int CONSTRUCT_RANDOM_COUNT = 1000;
+ int i;
+ for (i=0; i < CONSTRUCT_RANDOM_COUNT; i++){
+ const char * rule = test_rule.next();
+ logln("\n-----------------------------------%d\n",i);
+ logln(UnicodeString(rule, strlen(rule)));
+
+ UnicodeString newRule(rule); // potential bug
+ UErrorCode status = U_ZERO_ERROR;
+ logln( "===========================================\n");
+ fwrite(rule, strlen(rule),1,stdout);
+ logln("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
+
+ Collator * c = new RuleBasedCollator(newRule,status);
+
+ if (U_FAILURE(status)) {
+ errln( "Could not create Collator for the %d(th) generated rule.\n"
+ "Error Name: %s\n"
+ "The rule is ",
+ i, u_errorName(status));
+ return;
+ }
+
+ delete c;
+ }
+}
+
+#endif /* #if !UCONFIG_NO_COLLATION */
+
diff --git a/Build/source/libs/icu-xetex/test/intltest/rndmcoll.h b/Build/source/libs/icu-xetex/test/intltest/rndmcoll.h
new file mode 100644
index 00000000000..d216af3b1f7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/rndmcoll.h
@@ -0,0 +1,29 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
+ * others. All Rights Reserved.
+ ********************************************************************/
+
+/**
+ * RandomCollatorTest is ported from RandomCollatorTest.java of ICU4J
+ */
+
+#ifndef _RANDCOLL
+#define _RANDCOLL
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_COLLATION
+
+#include "tscoll.h"
+
+class RandomCollatorTest: public IntlTestCollator {
+public:
+ virtual void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
+ void Test();
+ void Test2();
+};
+
+#endif /* #if !UCONFIG_NO_COLLATION */
+
+#endif /* _RANDCOLL */
diff --git a/Build/source/libs/icu-xetex/test/intltest/sdtfmtts.cpp b/Build/source/libs/icu-xetex/test/intltest/sdtfmtts.cpp
index fafd375fb5a..064acba30ab 100644
--- a/Build/source/libs/icu-xetex/test/intltest/sdtfmtts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/sdtfmtts.cpp
@@ -1,7 +1,7 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -53,7 +53,8 @@ void IntlTestSimpleDateFormatAPI::testAPI(/*char *par*/)
SimpleDateFormat def(status);
if(U_FAILURE(status)) {
- errln("ERROR: Could not create SimpleDateFormat (default)");
+ dataerrln("ERROR: Could not create SimpleDateFormat (default) - exitting");
+ return;
}
status = U_ZERO_ERROR;
@@ -78,7 +79,8 @@ void IntlTestSimpleDateFormatAPI::testAPI(/*char *par*/)
status = U_ZERO_ERROR;
SimpleDateFormat cust1(pattern, symbols, status);
if(U_FAILURE(status)) {
- errln("ERROR: Could not create SimpleDateFormat (pattern, symbols*)");
+ dataerrln("ERROR: Could not create SimpleDateFormat (pattern, symbols*) - exitting");
+ return;
}
status = U_ZERO_ERROR;
diff --git a/Build/source/libs/icu-xetex/test/intltest/srchtest.cpp b/Build/source/libs/icu-xetex/test/intltest/srchtest.cpp
index 6899f4bb258..f768c0d2f8e 100644
--- a/Build/source/libs/icu-xetex/test/intltest/srchtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/srchtest.cpp
@@ -1,6 +1,6 @@
/*
*****************************************************************************
-* Copyright (C) 2001-2004, International Business Machines orporation
+* Copyright (C) 2001-2006, International Business Machines orporation
* and others. All Rights Reserved.
****************************************************************************/
@@ -24,7 +24,11 @@
if (exec) { \
logln(#test "---"); \
logln((UnicodeString)""); \
- test(); \
+ if(areBroken) { \
+ errln(__FILE__ " cannot test - failed to create collator."); \
+ } else { \
+ test(); \
+ } \
} \
break;
@@ -94,12 +98,11 @@ StringSearchTest::~StringSearchTest()
void StringSearchTest::runIndexedTest(int32_t index, UBool exec,
const char* &name, char* )
{
+ UBool areBroken = FALSE;
if (m_en_us_ == NULL && m_fr_fr_ == NULL && m_de_ == NULL &&
m_es_ == NULL && m_en_wordbreaker_ == NULL &&
m_en_characterbreaker_ == NULL && exec) {
- errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
- return;
+ areBroken = TRUE;
}
switch (index) {
@@ -150,6 +153,7 @@ void StringSearchTest::runIndexedTest(int32_t index, UBool exec,
CASE(32, TestContractionCanonical)
CASE(33, TestUClassID)
CASE(34, TestSubclass)
+ CASE(35, TestCoverage)
default: name = ""; break;
}
}
@@ -2272,4 +2276,37 @@ void StringSearchTest::TestSubclass()
}
}
+class StubSearchIterator:public SearchIterator{
+public:
+ StubSearchIterator(){}
+ virtual void setOffset(int32_t , UErrorCode &) {};
+ virtual int32_t getOffset(void) const {return 0;};
+ virtual SearchIterator* safeClone(void) const {return NULL;};
+ virtual int32_t handleNext(int32_t , UErrorCode &){return 0;};
+ virtual int32_t handlePrev(int32_t , UErrorCode &) {return 0;};
+ virtual UClassID getDynamicClassID() const {
+ static char classID = 0;
+ return (UClassID)&classID;
+ }
+};
+
+void StringSearchTest::TestCoverage(){
+ StubSearchIterator stub1, stub2;
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (stub1 != stub2){
+ errln("new StubSearchIterator should be equal");
+ }
+
+ stub2.setText(UnicodeString("ABC"), status);
+ if (U_FAILURE(status)) {
+ errln("Error: SearchIterator::SetText");
+ }
+
+ stub1 = stub2;
+ if (stub1 != stub2){
+ errln("SearchIterator::operator = assigned object should be equal");
+ }
+}
+
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/srchtest.h b/Build/source/libs/icu-xetex/test/intltest/srchtest.h
index 36163a1d8fa..37fafdc3b88 100644
--- a/Build/source/libs/icu-xetex/test/intltest/srchtest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/srchtest.h
@@ -1,6 +1,6 @@
/****************************************************************************
* COPYRIGHT:
- * Copyright (c) 2001, International Business Machines Corporation and others
+ * Copyright (c) 2001-2005, International Business Machines Corporation and others
* All Rights Reserved.
***************************************************************************/
@@ -87,6 +87,7 @@ private:
void TestContractionCanonical();
void TestUClassID();
void TestSubclass();
+ void TestCoverage();
};
#endif /* #if !UCONFIG_NO_COLLATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/testidn.cpp b/Build/source/libs/icu-xetex/test/intltest/testidn.cpp
index b706f2bf42c..8cc9b1687fa 100644
--- a/Build/source/libs/icu-xetex/test/intltest/testidn.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/testidn.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -19,8 +19,6 @@
* in various IDNA conversion processes.
*/
-#include <stdio.h>
-#include <stdlib.h>
#include "unicode/utypes.h"
#if !UCONFIG_NO_IDNA && !UCONFIG_NO_TRANSLITERATION
@@ -40,6 +38,7 @@
#include "sprpimpl.h"
#include "testidna.h"
#include "punyref.h"
+#include <stdlib.h>
UBool beVerbose=FALSE, haveCopyright=TRUE;
@@ -222,8 +221,12 @@ getValues(uint32_t result, int32_t& value, UBool& isIndex){
* the source codepoint is copied to the destination
*/
type = USPREP_TYPE_LIMIT;
+ isIndex =FALSE;
+ value = 0;
}else if(result >= _SPREP_TYPE_THRESHOLD){
type = (UStringPrepType) (result - _SPREP_TYPE_THRESHOLD);
+ isIndex =FALSE;
+ value = 0;
}else{
/* get the state */
type = USPREP_MAP;
diff --git a/Build/source/libs/icu-xetex/test/intltest/testidna.cpp b/Build/source/libs/icu-xetex/test/intltest/testidna.cpp
index 0f44c5a43cb..361789d5c38 100644
--- a/Build/source/libs/icu-xetex/test/intltest/testidna.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/testidna.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -395,7 +395,7 @@ static struct ErrorCases{
0x0000
},
"www..com",
- U_IDNA_ERROR_LIMIT, //TODO: Fix this to U_IDNA_ZERO_LENGTH_LABEL_ERROR, in 3.6
+ U_IDNA_ZERO_LENGTH_LABEL_ERROR,
TRUE, TRUE, FALSE
},
{
@@ -1423,7 +1423,7 @@ void TestIDNA::testRootLabelSeparator(const char* testName, CompareFunc func,
// runIndexedTest
//---------------------------------------------
-void TestIDNA::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
+void TestIDNA::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par)
{
if (exec) logln((UnicodeString)"TestSuite IDNA API ");
switch (index) {
@@ -1447,8 +1447,7 @@ void TestIDNA::runIndexedTest( int32_t index, UBool exec, const char* &name, cha
if(exec){
logln("TestSuite IDNA conf----"); logln();
IdnaConfTest test;
- const char* name = "idnaconf";
- test.runIndexedTest(0,TRUE,name);
+ callTest(test, par);
}
break;
}
@@ -1651,7 +1650,11 @@ void TestIDNA::TestIDNAMonkeyTest(){
int i;
getInstance(status); // Init prep
-
+ if (U_FAILURE(status)) {
+ errln("Test could not initialize. Got %s", u_errorName(status));
+ return;
+ }
+
for(i=0; i<loopCount; i++){
source.truncate(0);
getTestSource(source);
@@ -1720,6 +1723,13 @@ void TestIDNA::TestCompareReferenceImpl(){
}
void TestIDNA::TestRefIDNA(){
+ UErrorCode status = U_ZERO_ERROR;
+ getInstance(status); // Init prep
+ if (U_FAILURE(status)) {
+ errln("Test could not initialize. Got %s", u_errorName(status));
+ return;
+ }
+
testToASCII("idnaref_toASCII", idnaref_toASCII);
testToUnicode("idnaref_toUnicode", idnaref_toUnicode);
testIDNToASCII("idnaref_IDNToASCII", idnaref_IDNToASCII);
diff --git a/Build/source/libs/icu-xetex/test/intltest/thcoll.cpp b/Build/source/libs/icu-xetex/test/intltest/thcoll.cpp
index 28fe1df65ac..1fd99e7fb24 100644
--- a/Build/source/libs/icu-xetex/test/intltest/thcoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/thcoll.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -53,7 +53,7 @@ void CollationThaiTest::runIndexedTest(int32_t index, UBool exec, const char* &n
if((!coll) && exec) {
errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
+ name = "some test";
return;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/tmsgfmt.cpp b/Build/source/libs/icu-xetex/test/intltest/tmsgfmt.cpp
index 3e214f7ddff..4b2269c9290 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tmsgfmt.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tmsgfmt.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/*
@@ -1238,19 +1238,19 @@ void TestMessageFormat::testAutoQuoteApostrophe(void) {
int32_t pattern_count = sizeof(patterns)/sizeof(patterns[0]);
for (int i = 0; i < pattern_count; i += 2) {
- UErrorCode status = U_ZERO_ERROR;
+ UErrorCode status = U_ZERO_ERROR;
UnicodeString result = MessageFormat::autoQuoteApostrophe(patterns[i], status);
UnicodeString target(patterns[i+1]);
if (target != result) {
- const int BUF2_LEN = 64;
- char buf[256];
- char buf2[BUF2_LEN];
- int32_t len = result.extract(0, result.length(), buf2, BUF2_LEN);
- if (len >= BUF2_LEN) {
- buf2[BUF2_LEN-1] = 0;
- }
- sprintf(buf, "[%2d] test \"%s\": target (\"%s\") != result (\"%s\")\n", i/2, patterns[i], patterns[i+1], buf2);
- errln(buf);
+ const int BUF2_LEN = 64;
+ char buf[256];
+ char buf2[BUF2_LEN];
+ int32_t len = result.extract(0, result.length(), buf2, BUF2_LEN);
+ if (len >= BUF2_LEN) {
+ buf2[BUF2_LEN-1] = 0;
+ }
+ sprintf(buf, "[%2d] test \"%s\": target (\"%s\") != result (\"%s\")\n", i/2, patterns[i], patterns[i+1], buf2);
+ errln(buf);
}
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/transrt.cpp b/Build/source/libs/icu-xetex/test/intltest/transrt.cpp
index cc367a48533..056301c0f52 100644
--- a/Build/source/libs/icu-xetex/test/intltest/transrt.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/transrt.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -83,13 +83,7 @@ TransliteratorRoundTripTest::runIndexedTest(int32_t index, UBool exec,
// Time bomb - allows temporary behavior that expires at a given
// release
//--------------------------------------------------------------------
-static const UVersionInfo ICU_35 = {3,5,0,0};
-
-static UBool isICUVersionAtLeast(const UVersionInfo x) {
- UVersionInfo v;
- u_getVersion(v);
- return (uprv_memcmp(v, x, U_MAX_VERSION_LENGTH) >= 0);
-}
+static const UVersionInfo ICU_37 = {3,7,0,0};
//--------------------------------------------------------------------
@@ -271,6 +265,10 @@ UBool LegalGreek::isRho(UChar c) {
}
// AbbreviatedUnicodeSetIterator Interface ---------------------------------------------
+//
+// Iterate over a UnicodeSet, only returning a sampling of the contained code points.
+// density is the approximate total number of code points to returned for the entire set.
+//
class AbbreviatedUnicodeSetIterator : public UnicodeSetIterator {
public :
@@ -291,7 +289,7 @@ public :
private :
UBool abbreviated;
- int32_t perRange;
+ int32_t perRange; // The maximum number of code points to be returned from each range
virtual void loadRange(int32_t range);
/**
@@ -1047,7 +1045,7 @@ static void writeStringInU8(FILE *out, const UnicodeString &s) {
uint8_t bufForOneChar[10];
UBool isError = FALSE;
int32_t destIdx = 0;
- U8_APPEND(bufForOneChar, destIdx, sizeof(bufForOneChar), c, isError);
+ U8_APPEND(bufForOneChar, destIdx, (int32_t)sizeof(bufForOneChar), c, isError);
fwrite(bufForOneChar, 1, destIdx, out);
}
}
@@ -1143,7 +1141,7 @@ void TransliteratorRoundTripTest::TestHan() {
void TransliteratorRoundTripTest::TestGreek() {
- if (isICUVersionAtLeast(ICU_35)) {
+ if (isICUVersionAtLeast(ICU_37)) {
// We temporarily filter against Unicode 4.1, but we only do this
// before version 3.4.
errln("FAIL: TestGreek needs to be updated to remove delete the [:Age=4.0:] filter ");
@@ -1175,7 +1173,7 @@ void TransliteratorRoundTripTest::TestGreek() {
void TransliteratorRoundTripTest::TestGreekUNGEGN() {
- if (isICUVersionAtLeast(ICU_35)) {
+ if (isICUVersionAtLeast(ICU_37)) {
// We temporarily filter against Unicode 4.1, but we only do this
// before version 3.4.
errln("FAIL: TestGreek needs to be updated to remove delete the [:Age=4.0:] filter ");
@@ -1204,7 +1202,7 @@ void TransliteratorRoundTripTest::TestGreekUNGEGN() {
void TransliteratorRoundTripTest::Testel() {
- if (isICUVersionAtLeast(ICU_35)) {
+ if (isICUVersionAtLeast(ICU_37)) {
// We temporarily filter against Unicode 4.1, but we only do this
// before version 3.4.
errln("FAIL: TestGreek needs to be updated to remove delete the [:Age=4.0:] filter ");
@@ -1272,7 +1270,7 @@ UBool LegalHebrew::is(const UnicodeString& sourceString)const{
return TRUE;
}
void TransliteratorRoundTripTest::TestHebrew() {
- if (isICUVersionAtLeast(ICU_35)) {
+ if (isICUVersionAtLeast(ICU_37)) {
// We temporarily filter against Unicode 4.1, but we only do this
// before version 3.4.
errln("FAIL: TestHebrew needs to be updated to remove delete the [:Age=4.0:] filter ");
@@ -1395,9 +1393,16 @@ void TransliteratorRoundTripTest::TestDevanagariLatin() {
}
RTTest test("Latin-Devanagari");
Legal *legal = new LegalIndic();
-
+ if (isICUVersionAtLeast(ICU_37)) {
+ // We temporarily filter against Unicode 4.1, but we only do this
+ // before version 3.4.
+ errln("FAIL: TestDevanagariLatin needs to be updated to remove delete the [:Age=4.1:] filter ");
+ return;
+ } else {
+ logln("Warning: TestDevanagariLatin needs to be updated to remove delete the section marked [:Age=4.1:] filter");
+ }
test.test(UnicodeString(latinForIndic, ""),
- UnicodeString("[[:Devanagari:][\\u094d][\\u0964\\u0965]]", ""), "[\\u0965\\u0904]", this, quick,
+ UnicodeString("[[[:Devanagari:][\\u094d][\\u0964\\u0965]]&[:Age=4.1:]]", ""), "[\\u0965\\u0904]", this, quick,
legal, 50);
delete legal;
@@ -1664,18 +1669,40 @@ void TransliteratorRoundTripTest::TestInterIndic() {
logln("Testing only 5 of %i. Skipping rest (use -e for exhaustive)",num);
num = 5;
}
+ if (isICUVersionAtLeast(ICU_37)) {
+ // We temporarily filter against Unicode 4.1, but we only do this
+ // before version 3.4.
+ errln("FAIL: TestInterIndic needs to be updated to remove delete the [:Age=4.1:] filter ");
+ return;
+ } else {
+ logln("Warning: TestInterIndic needs to be updated to remove delete the section marked [:Age=4.1:] filter");
+ }
for(int i = 0; i < num;i++){
RTTest test(interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 0]);
Legal *legal = new LegalIndic();
logln(UnicodeString("Stress testing ") + interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 0]);
+ /* Uncomment lines below when transliterator is fixed */
+ /*
test.test( interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 1],
interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 2],
interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 3], // roundtrip exclusions
this, quick, legal, 50);
-
+ */
+ /* comment lines below when transliterator is fixed */
+ // start
+ UnicodeString source("[");
+ source.append(interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 1]);
+ source.append(" & [:Age=4.1:]]");
+ UnicodeString target("[");
+ target.append(interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 2]);
+ target.append(" & [:Age=4.1:]]");
+ test.test( source,
+ target,
+ interIndicArray[i*INTER_INDIC_ARRAY_WIDTH + 3], // roundtrip exclusions
+ this, quick, legal, 50);
+ // end
delete legal;
}
-
}
// end indic tests ----------------------------------------------------------
diff --git a/Build/source/libs/icu-xetex/test/intltest/transtst.cpp b/Build/source/libs/icu-xetex/test/intltest/transtst.cpp
index 619dc3d3f23..38be8a2aca6 100644
--- a/Build/source/libs/icu-xetex/test/intltest/transtst.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/transtst.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -185,11 +185,12 @@ TransliteratorTest::runIndexedTest(int32_t index, UBool exec,
TESTCASE(77,TestAlternateSyntax);
TESTCASE(78,TestBeginEnd);
TESTCASE(79,TestBeginEndToRules);
+ TESTCASE(80,TestRegisterAlias);
default: name = ""; break;
}
}
-static const UVersionInfo ICU_31 = {3,1,0,0};
+static const UVersionInfo ICU_37 = {3,7,0,0};
/**
* Make sure every system transliterator can be instantiated.
*
@@ -224,7 +225,8 @@ void TransliteratorTest::TestInstantiation() {
i + ") != getAvailableIDs().snext()");
continue;
}
- if(id2.indexOf("Thai")>-1 && isICUVersionAtLeast(ICU_31)){
+ if(id2.indexOf("Thai")>-1 && !isICUVersionAtLeast(ICU_37)){
+ /* The Thai-Latin transliterator doesn't exist in ICU4C yet */
continue;
}
UParseError parseError;
@@ -3495,7 +3497,8 @@ void TransliteratorTest::TestIncrementalProgress(void) {
Transliterator::getAvailableVariant(k, source, target, variant);
UnicodeString id = source + "-" + target + "/" + variant;
- if(id.indexOf("Thai")>-1 && isICUVersionAtLeast(ICU_31)){
+ if(id.indexOf("Thai")>-1 && !isICUVersionAtLeast(ICU_37)){
+ /* The Thai-Latin transliterator doesn't exist in ICU4C yet */
continue;
}
Transliterator *t = Transliterator::createInstance(id, UTRANS_FORWARD, err, status);
@@ -4315,6 +4318,82 @@ void TransliteratorTest::TestBeginEndToRules() {
}
}
+void TransliteratorTest::TestRegisterAlias() {
+ UnicodeString longID("Lower;[aeiou]Upper");
+ UnicodeString shortID("Any-CapVowels");
+ UnicodeString reallyShortID("CapVowels");
+
+ Transliterator::registerAlias(shortID, longID);
+
+ UErrorCode err = U_ZERO_ERROR;
+ Transliterator* t1 = Transliterator::createInstance(longID, UTRANS_FORWARD, err);
+ if (U_FAILURE(err)) {
+ errln("Failed to instantiate transliterator with long ID");
+ Transliterator::unregister(shortID);
+ return;
+ }
+ Transliterator* t2 = Transliterator::createInstance(reallyShortID, UTRANS_FORWARD, err);
+ if (U_FAILURE(err)) {
+ errln("Failed to instantiate transliterator with short ID");
+ delete t1;
+ Transliterator::unregister(shortID);
+ return;
+ }
+
+ if (t1->getID() != longID)
+ errln("Transliterator instantiated with long ID doesn't have long ID");
+ if (t2->getID() != reallyShortID)
+ errln("Transliterator instantiated with short ID doesn't have short ID");
+
+ UnicodeString rules1;
+ UnicodeString rules2;
+
+ t1->toRules(rules1, TRUE);
+ t2->toRules(rules2, TRUE);
+ if (rules1 != rules2)
+ errln("Alias transliterators aren't the same");
+
+ delete t1;
+ delete t2;
+ Transliterator::unregister(shortID);
+
+ t1 = Transliterator::createInstance(shortID, UTRANS_FORWARD, err);
+ if (U_SUCCESS(err)) {
+ errln("Instantiation with short ID succeeded after short ID was unregistered");
+ delete t1;
+ }
+
+ // try the same thing again, but this time with something other than
+ // an instance of CompoundTransliterator
+ UnicodeString realID("Latin-Greek");
+ UnicodeString fakeID("Latin-dlgkjdflkjdl");
+ Transliterator::registerAlias(fakeID, realID);
+
+ err = U_ZERO_ERROR;
+ t1 = Transliterator::createInstance(realID, UTRANS_FORWARD, err);
+ if (U_FAILURE(err)) {
+ errln("Failed to instantiate transliterator with real ID");
+ Transliterator::unregister(realID);
+ return;
+ }
+ t2 = Transliterator::createInstance(fakeID, UTRANS_FORWARD, err);
+ if (U_FAILURE(err)) {
+ errln("Failed to instantiate transliterator with fake ID");
+ delete t1;
+ Transliterator::unregister(realID);
+ return;
+ }
+
+ t1->toRules(rules1, TRUE);
+ t2->toRules(rules2, TRUE);
+ if (rules1 != rules2)
+ errln("Alias transliterators aren't the same");
+
+ delete t1;
+ delete t2;
+ Transliterator::unregister(fakeID);
+}
+
//======================================================================
// Support methods
//======================================================================
diff --git a/Build/source/libs/icu-xetex/test/intltest/transtst.h b/Build/source/libs/icu-xetex/test/intltest/transtst.h
index 7c79057a92b..8ffac67bc3e 100644
--- a/Build/source/libs/icu-xetex/test/intltest/transtst.h
+++ b/Build/source/libs/icu-xetex/test/intltest/transtst.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -344,10 +344,21 @@ private:
void TestAlternateSyntax(void);
+ /**
+ * Tests the multiple-pass syntax
+ */
void TestBeginEnd(void);
+ /**
+ * Tests that toRules() works right with the multiple-pass syntax
+ */
void TestBeginEndToRules(void);
+ /**
+ * Tests the registerAlias() function
+ */
+ void TestRegisterAlias(void);
+
//======================================================================
// Support methods
//======================================================================
diff --git a/Build/source/libs/icu-xetex/test/intltest/trcoll.cpp b/Build/source/libs/icu-xetex/test/intltest/trcoll.cpp
index 09f030b4d6c..7da003a8ca3 100644
--- a/Build/source/libs/icu-xetex/test/intltest/trcoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/trcoll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -93,7 +93,7 @@ void CollationTurkishTest::runIndexedTest( int32_t index, UBool exec, const char
if((!myCollation) && exec) {
errln(__FILE__ " cannot test - failed to create collator.");
- name = "";
+ name = "some test";
return;
}
switch (index) {
diff --git a/Build/source/libs/icu-xetex/test/intltest/trnserr.cpp b/Build/source/libs/icu-xetex/test/intltest/trnserr.cpp
index 46155390103..0b76616672f 100644
--- a/Build/source/libs/icu-xetex/test/intltest/trnserr.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/trnserr.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2001-2004, International Business Machines Corporation and
+ * Copyright (c) 2001-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -43,6 +43,7 @@ TransliteratorErrorTest::runIndexedTest(int32_t index, UBool exec,
TESTCASE(0,TestTransliteratorErrors);
TESTCASE(1, TestUnicodeSetErrors);
TESTCASE(2, TestRBTErrors);
+ TESTCASE(3, TestCoverage);
//TESTCASE(3, TestUniToHexErrors);
//TESTCASE(4, TestHexToUniErrors);
// TODO: Add a subclass to test clone().
@@ -264,4 +265,25 @@ void TransliteratorErrorTest::TestRBTErrors() {
// delete t;
//}
+class StubTransliterator: public Transliterator{
+public:
+ StubTransliterator(): Transliterator(UNICODE_STRING_SIMPLE("Any-Null"), 0) {}
+ virtual void handleTransliterate(Replaceable& ,UTransPosition& offsets,UBool) const {
+ offsets.start = offsets.limit;
+ }
+
+ virtual UClassID getDynamicClassID() const{
+ static char classID = 0;
+ return (UClassID)&classID;
+ }
+};
+
+void TransliteratorErrorTest::TestCoverage() {
+ StubTransliterator stub;
+
+ if (stub.clone() != NULL){
+ errln("FAIL: default Transliterator::clone() should return NULL");
+ }
+}
+
#endif /* #if !UCONFIG_NO_TRANSLITERATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/trnserr.h b/Build/source/libs/icu-xetex/test/intltest/trnserr.h
index ab34a6d6b34..35b4c5a4bd6 100644
--- a/Build/source/libs/icu-xetex/test/intltest/trnserr.h
+++ b/Build/source/libs/icu-xetex/test/intltest/trnserr.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2001-2004, International Business Machines Corporation and
+ * Copyright (c) 2001-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -43,6 +43,10 @@ public:
//void TestHexToUniErrors(void);
+ // JitterBug 4452, for coverage. The reason to put this method here is
+ // this class is comparable smaller than other Transliterator*Test classes
+ void TestCoverage(void);
+
};
#endif /* #if !UCONFIG_NO_TRANSLITERATION */
diff --git a/Build/source/libs/icu-xetex/test/intltest/tscoll.cpp b/Build/source/libs/icu-xetex/test/intltest/tscoll.cpp
index 85f92f6b6f9..eb7bb04fa7a 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tscoll.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tscoll.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -47,6 +47,7 @@
#include "ucaconf.h"
#include "svccoll.h"
#include "cmemory.h"
+#include "rndmcoll.h"
#define TESTCLASS(n,classname) \
case n: \
@@ -87,6 +88,7 @@ void IntlTestCollator::runIndexedTest( int32_t index, UBool exec, const char* &n
TESTCLASS(18, UCAConformanceTest);
TESTCLASS(19, CollationServiceTest);
TESTCLASS(20, CollationFinnishTest); // removed by weiv - we have changed Finnish collation
+ TESTCLASS(21, RandomCollatorTest);
default: name = ""; break;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/tsdate.cpp b/Build/source/libs/icu-xetex/test/intltest/tsdate.cpp
index fed509f5127..00f740ec0a1 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tsdate.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tsdate.cpp
@@ -1,6 +1,5 @@
/***********************************************************************
- * COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -15,6 +14,7 @@
#include <float.h>
#include <stdlib.h>
+#include <math.h>
const double IntlTestDateFormat::ONEYEAR = 365.25 * ONEDAY; // Approximate
@@ -214,7 +214,7 @@ void IntlTestDateFormat::tryDate(UDate theDate)
}
}
}
-
+
// Return a random double from 0.01 to 1, inclusive
double IntlTestDateFormat::randDouble()
{
@@ -235,7 +235,7 @@ double IntlTestDateFormat::randDouble()
d = -d;
if (d > 0.0)
{
- double e = uprv_floor(uprv_log10(d));
+ double e = uprv_floor(log10(d));
if (e < -2.0)
d *= uprv_pow10((int32_t)(-e-2));
else if (e > -1.0)
diff --git a/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.cpp b/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.cpp
index fb974e36274..e281505b6f0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -17,20 +17,11 @@ void IntlTestDateFormatSymbols::runIndexedTest( int32_t index, UBool exec, const
{
if (exec) logln("TestSuite DateFormatSymbols");
switch (index) {
- case 0: name = "DateFormatSymbols test";
- if (exec) {
- logln("DateFormatSymbols test---"); logln("");
- testSymbols(/*par*/);
- }
- break;
-
- case 1: name = "TestGetMonths";
- if (exec) {
- logln("TestGetMonths test---"); logln("");
- TestGetMonths();
- }
- break;
-
+ TESTCASE(0,TestSymbols);
+ TESTCASE(1,TestGetMonths);
+ TESTCASE(2,TestGetMonths2);
+ TESTCASE(3,TestGetWeekdays2);
+ TESTCASE(4,TestGetEraNames);
default: name = ""; break;
}
}
@@ -59,10 +50,82 @@ void IntlTestDateFormatSymbols::TestGetMonths()
delete symbol;
}
+void IntlTestDateFormatSymbols::TestGetMonths2()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ DateFormatSymbols *symbol;
+
+ symbol=new DateFormatSymbols(Locale::getDefault(), status);
+
+ DateFormatSymbols::DtContextType context[] = {DateFormatSymbols::STANDALONE, DateFormatSymbols::FORMAT};
+ DateFormatSymbols::DtWidthType width[] = {DateFormatSymbols::WIDE, DateFormatSymbols::ABBREVIATED, DateFormatSymbols::NARROW};
+
+ for (int32_t i = 0; i < 2; i++) {
+ for (int32_t j = 0; j < 3; j++) {
+ int32_t cnt;
+ const UnicodeString * month = symbol->getMonths(cnt,context[i],width[j]);
+
+ logln((UnicodeString)"size = " + cnt);
+
+ for (int32_t k = 0; k < cnt; k++) {
+ logln(month[k]);
+ }
+ }
+ }
+ delete symbol;
+}
+
+void IntlTestDateFormatSymbols::TestGetWeekdays2()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ DateFormatSymbols *symbol;
+
+ symbol=new DateFormatSymbols(Locale::getDefault(), status);
+
+ DateFormatSymbols::DtContextType context[] = {DateFormatSymbols::STANDALONE, DateFormatSymbols::FORMAT};
+ DateFormatSymbols::DtWidthType width[] = {DateFormatSymbols::WIDE, DateFormatSymbols::ABBREVIATED, DateFormatSymbols::NARROW};
+
+ for (int32_t i = 0; i < 2; i++) {
+ for (int32_t j = 0; j < 3; j++) {
+ int32_t cnt;
+ const UnicodeString * wd = symbol->getWeekdays(cnt,context[i],width[j]);
+
+ logln((UnicodeString)"size = " + cnt);
+
+ for (int32_t k = 0; k < cnt; k++) {
+ logln(wd[k]);
+ }
+ }
+ }
+ delete symbol;
+}
+
+
+void IntlTestDateFormatSymbols::TestGetEraNames()
+{
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t cnt;
+ const UnicodeString* name;
+ DateFormatSymbols *symbol;
+
+ symbol=new DateFormatSymbols(Locale::getDefault(), status);
+
+ name=symbol->getEraNames(cnt);
+
+ logln((UnicodeString)"size = " + cnt);
+
+ for (int32_t i=0; i<cnt; ++i)
+ {
+ logln(name[i]);
+ }
+
+ delete symbol;
+}
+
/**
* Test the API of DateFormatSymbols; primarily a simple get/set set.
*/
-void IntlTestDateFormatSymbols::testSymbols(/* char *par */)
+void IntlTestDateFormatSymbols::TestSymbols(/* char *par */)
{
UErrorCode status = U_ZERO_ERROR;
@@ -72,6 +135,12 @@ void IntlTestDateFormatSymbols::testSymbols(/* char *par */)
}
status = U_ZERO_ERROR;
+ DateFormatSymbols fr2(Locale::getFrench(), status);
+ if(U_FAILURE(status)) {
+ errln("ERROR: Couldn't create French DateFormatSymbols " + (UnicodeString)u_errorName(status));
+ }
+
+ status = U_ZERO_ERROR;
DateFormatSymbols en(Locale::getEnglish(), status);
if(U_FAILURE(status)) {
errln("ERROR: Couldn't create English DateFormatSymbols " + (UnicodeString)u_errorName(status));
@@ -107,6 +176,48 @@ void IntlTestDateFormatSymbols::testSymbols(/* char *par */)
errln("ERROR: setShortMonths() failed");
}
+ const UnicodeString *wideMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
+ fr2.setMonths(wideMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
+ if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE) !=
+ *fr2.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE )) {
+ errln("ERROR: setMonths(FORMAT,WIDE) failed");
+ }
+
+ const UnicodeString *abbrMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
+ fr2.setMonths(abbrMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
+ if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED) !=
+ *fr2.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setMonths(FORMAT,ABBREVIATED) failed");
+ }
+
+ const UnicodeString *narrowMonths = en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
+ fr.setMonths(narrowMonths, count, DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
+ if( *en.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW) !=
+ *fr.getMonths(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW )) {
+ errln("ERROR: setMonths(FORMAT,NARROW) failed");
+ }
+
+ const UnicodeString *standaloneWideMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
+ fr.setMonths(standaloneWideMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
+ if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE) !=
+ *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE )) {
+ errln("ERROR: setMonths(STANDALONE,WIDE) failed");
+ }
+
+ const UnicodeString *standaloneShortMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
+ fr.setMonths(standaloneShortMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
+ if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED) !=
+ *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setMonths(STANDALONE,ABBREVIATED) failed");
+ }
+
+ const UnicodeString *standaloneNarrowMonths = en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
+ fr.setMonths(standaloneNarrowMonths, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
+ if( *en.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW) !=
+ *fr.getMonths(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW )) {
+ errln("ERROR: setMonths(STANDALONE,NARROW) failed");
+ }
+
const UnicodeString *weekdays = en.getWeekdays(count);
fr.setWeekdays(weekdays, count);
if( *en.getWeekdays(count) != *fr.getWeekdays(count)) {
@@ -119,6 +230,76 @@ void IntlTestDateFormatSymbols::testSymbols(/* char *par */)
errln("ERROR: setShortWeekdays() failed");
}
+ const UnicodeString *wideWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
+ fr2.setWeekdays(wideWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE);
+ if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE) !=
+ *fr2.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::WIDE )) {
+ errln("ERROR: setWeekdays(FORMAT,WIDE) failed");
+ }
+
+ const UnicodeString *abbrWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
+ fr2.setWeekdays(abbrWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED);
+ if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED) !=
+ *fr2.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setWeekdays(FORMAT,ABBREVIATED) failed");
+ }
+
+ const UnicodeString *narrowWeekdays = en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
+ fr.setWeekdays(narrowWeekdays, count, DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW);
+ if( *en.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW) !=
+ *fr.getWeekdays(count,DateFormatSymbols::FORMAT,DateFormatSymbols::NARROW )) {
+ errln("ERROR: setWeekdays(FORMAT,NARROW) failed");
+ }
+
+ const UnicodeString *standaloneWideWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
+ fr.setWeekdays(standaloneWideWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE);
+ if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE) !=
+ *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::WIDE )) {
+ errln("ERROR: setWeekdays(STANDALONE,WIDE) failed");
+ }
+
+ const UnicodeString *standaloneShortWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
+ fr.setWeekdays(standaloneShortWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED);
+ if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED) !=
+ *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setWeekdays(STANDALONE,ABBREVIATED) failed");
+ }
+
+ const UnicodeString *standaloneNarrowWeekdays = en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
+ fr.setWeekdays(standaloneNarrowWeekdays, count, DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW);
+ if( *en.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW) !=
+ *fr.getWeekdays(count,DateFormatSymbols::STANDALONE,DateFormatSymbols::NARROW )) {
+ errln("ERROR: setWeekdays(STANDALONE,NARROW) failed");
+ }
+
+ const UnicodeString *wideQuarters = en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
+ fr2.setQuarters(wideQuarters, count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE);
+ if( *en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE) !=
+ *fr2.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE )) {
+ errln("ERROR: setQuarters(FORMAT, WIDE) failed");
+ }
+
+ const UnicodeString *abbrQuarters = en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
+ fr2.setQuarters(abbrQuarters, count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED);
+ if( *en.getQuarters(count,DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED) !=
+ *fr2.getQuarters(count,DateFormatSymbols::FORMAT ,DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setQuarters(FORMAT, ABBREVIATED) failed");
+ }
+
+ const UnicodeString *standaloneWideQuarters = en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
+ fr.setQuarters(standaloneWideQuarters, count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE);
+ if( *en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE) !=
+ *fr.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE )) {
+ errln("ERROR: setQuarters(STANDALONE, WIDE) failed");
+ }
+
+ const UnicodeString *standaloneShortQuarters = en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
+ fr.setQuarters(standaloneShortQuarters, count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED);
+ if( *en.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED) !=
+ *fr.getQuarters(count,DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED )) {
+ errln("ERROR: setQuarters(STANDALONE, ABBREVIATED) failed");
+ }
+
const UnicodeString *ampms = en.getAmPmStrings(count);
fr.setAmPmStrings(ampms, count);
if( *en.getAmPmStrings(count) != *fr.getAmPmStrings(count)) {
@@ -152,8 +333,11 @@ void IntlTestDateFormatSymbols::testSymbols(/* char *par */)
en = fr;
- if(en != fr || foo != bar) {
- errln("ERROR: Copy Constructor or Assignment failed");
+ if(en != fr) {
+ errln("ERROR: Assignment operator failed");
+ }
+ if(foo != bar) {
+ errln("ERROR: Copy Constructor failed");
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.h b/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.h
index fc0f8feaeac..d289ba4f751 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.h
+++ b/Build/source/libs/icu-xetex/test/intltest/tsdtfmsy.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2001, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -23,11 +23,15 @@ private:
/**
* Test the API of DateFormatSymbols; primarily a simple get/set set.
*/
- void testSymbols(/* char *par */);
+ void TestSymbols(/* char *par */);
/**
* Test getMonths.
*/
void TestGetMonths(void);
+ void TestGetMonths2(void);
+
+ void TestGetWeekdays2(void);
+ void TestGetEraNames(void);
};
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/intltest/tsmthred.cpp b/Build/source/libs/icu-xetex/test/intltest/tsmthred.cpp
index c84f3edbfe8..05b2959751c 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tsmthred.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tsmthred.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1999-2005, International Business Machines Corporation and
+ * Copyright (c) 1999-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -88,7 +88,7 @@ MultithreadTest::~MultithreadTest()
#if (ICU_USE_THREADS==0)
void MultithreadTest::runIndexedTest( int32_t index, UBool exec,
- const char* &name, char* par ) {
+ const char* &name, char* /*par*/ ) {
if (exec) logln("TestSuite MultithreadTest: ");
if(index == 0)
@@ -551,6 +551,7 @@ void MultithreadTest::TestThreads()
{
char threadTestChars[THREADTEST_NRTHREADS + 1];
SimpleThread *threads[THREADTEST_NRTHREADS];
+ int32_t numThreadsStarted = 0;
int32_t i;
for(i=0;i<THREADTEST_NRTHREADS;i++)
@@ -566,11 +567,18 @@ void MultithreadTest::TestThreads()
if (threads[i]->start() != 0) {
errln("Error starting thread %d", i);
}
+ else {
+ numThreadsStarted++;
+ }
SimpleThread::sleep(100);
logln(" Subthread started.");
}
logln("Waiting for threads to be set..");
+ if (numThreadsStarted == 0) {
+ errln("No threads could be started for testing!");
+ return;
+ }
int32_t patience = 40; // seconds to wait
@@ -665,9 +673,19 @@ void MultithreadTest::TestMutex()
umtx_lock(&gTestMutexA);
TestMutexThread *threads[TESTMUTEX_THREAD_COUNT];
int i;
+ int32_t numThreadsStarted = 0;
for (i=0; i<TESTMUTEX_THREAD_COUNT; i++) {
threads[i] = new TestMutexThread;
- threads[i]->start();
+ if (threads[i]->start() != 0) {
+ errln("Error starting thread %d", i);
+ }
+ else {
+ numThreadsStarted++;
+ }
+ }
+ if (numThreadsStarted == 0) {
+ errln("No threads could be started for testing!");
+ return;
}
int patience = 0;
@@ -1153,7 +1171,7 @@ cleanupAndReturn:
#if !UCONFIG_NO_COLLATION
#define kCollatorThreadThreads 10 // # of threads to spawn
-#define kCollatorThreadPatience kCollatorThreadThreads*100
+#define kCollatorThreadPatience kCollatorThreadThreads*30
struct Line {
UChar buff[25];
@@ -1287,7 +1305,7 @@ void MultithreadTest::TestCollators()
"INFO: Working with the stub file.\n"
"If you need the full conformance test, please\n"
"download the appropriate data files from:\n"
- "http://oss.software.ibm.com/cvs/icu4j/unicodetools/com/ibm/text/data/");
+ "http://dev.icu-project.org/cgi-bin/viewcvs.cgi/unicodetools/com/ibm/text/data/");
}
}
}
@@ -1303,7 +1321,7 @@ void MultithreadTest::TestCollators()
while (fgets(buffer, 1024, testFile) != NULL) {
offset = 0;
- if(*buffer == 0 || buffer[0] == '#') {
+ if(*buffer == 0 || strlen(buffer) < 3 || buffer[0] == '#') {
continue;
}
offset = u_parseString(buffer, bufferU, 1024, &first, &status);
@@ -1315,8 +1333,10 @@ void MultithreadTest::TestCollators()
lineNum++;
}
fclose(testFile);
-
-
+ if(U_FAILURE(status)) {
+ errln("Couldn't read the test file!");
+ return;
+ }
UCollator *coll = ucol_open("root", &status);
if(U_FAILURE(status)) {
@@ -1350,9 +1370,12 @@ void MultithreadTest::TestCollators()
noSpawned++;
}
logln("Spawned all");
+ if (noSpawned == 0) {
+ errln("No threads could be spawned.");
+ return;
+ }
- //for(int32_t patience = kCollatorThreadPatience;patience > 0; patience --)
- for(;;)
+ for(int32_t patience = kCollatorThreadPatience;patience > 0; patience --)
{
logln("Waiting...");
diff --git a/Build/source/libs/icu-xetex/test/intltest/tsputil.cpp b/Build/source/libs/icu-xetex/test/intltest/tsputil.cpp
index c590fee31da..1f4b66ee218 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tsputil.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tsputil.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -203,11 +203,14 @@ PUtilTest::maxMinTest(double a, double b, double exp, UBool max)
errln(UnicodeString("FAIL: max(") + a + ", " + b + ") is " + result + ", expected " + exp);
else
errln(UnicodeString("FAIL: min(") + a + ", " + b + ") is " + result + ", expected " + exp);
- else
- if(max)
- logln(UnicodeString("OK: max(") + a + ", " + b + ") is " + result);
- else
- logln(UnicodeString("OK: min(") + a + ", " + b + ") is " + result);
+ else {
+ if (verbose) {
+ if(max)
+ logln(UnicodeString("OK: max(") + a + ", " + b + ") is " + result);
+ else
+ logln(UnicodeString("OK: min(") + a + ", " + b + ") is " + result);
+ }
+ }
}
//==============================
diff --git a/Build/source/libs/icu-xetex/test/intltest/tstnorm.cpp b/Build/source/libs/icu-xetex/test/intltest/tstnorm.cpp
index 65373814ef0..56dc2645797 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tstnorm.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tstnorm.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -1286,6 +1286,7 @@ BasicNormalizerTest::FindFoldFCDExceptions() {
/*
* Hardcoded "NF* Skippable" sets, generated from
* Mark Davis' com.ibm.text.UCD.NFSkippable (see ICU4J CVS, module unicodetools).
+ * Run com.ibm.text.UCD.Main with the option NFSkippable.
*
* Must be updated for each Unicode version.
*/
@@ -1306,44 +1307,46 @@ initExpectedSkippables(UnicodeSet skipSets[UNORM_MODE_COUNT]) {
"\\u040C-\\u040E\\u0419\\u0439\\u0450\\u0451\\u0453\\u0457\\u045C"
"-\\u045E\\u0476\\u0477\\u0483-\\u0486\\u04C1\\u04C2\\u04D0-"
"\\u04D3\\u04D6\\u04D7\\u04DA-\\u04DF\\u04E2-\\u04E7\\u04EA-"
- "\\u04F5\\u04F8\\u04F9\\u0591-\\u05B9\\u05BB-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4"
- "\\u05C5\\u05C7\\u0610-\\u0615\\u0622-\\u0626\\u064B-\\u065E\\u0670"
- "\\u06C0\\u06C2\\u06D3\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7"
- "\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u0929\\u0931"
- "\\u0934\\u093C\\u094D\\u0951-\\u0954\\u0958-\\u095F\\u09BC"
- "\\u09CB-\\u09CD\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A3C\\u0A4D"
- "\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C\\u0B48\\u0B4B-"
- "\\u0B4D\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCD\\u0C48\\u0C4D\\u0C55"
- "\\u0C56\\u0CBC\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CCD\\u0D4A-"
- "\\u0D4D\\u0DCA\\u0DDA\\u0DDC-\\u0DDE\\u0E38-\\u0E3A\\u0E48-"
- "\\u0E4B\\u0EB8\\u0EB9\\u0EC8-\\u0ECB\\u0F18\\u0F19\\u0F35\\u0F37"
- "\\u0F39\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F71-\\u0F76"
- "\\u0F78\\u0F7A-\\u0F7D\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F93"
- "\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u0FC6\\u1026\\u1037\\u1039"
- "\\u135F\\u1714\\u1734\\u17D2\\u17DD\\u18A9\\u1939-\\u193B\\u1A17"
- "\\u1A18\\u1DC0-\\u1DC3\\u1E00-\\u1E99\\u1E9B\\u1EA0-\\u1EF9"
- "\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D"
- "\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-"
- "\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC1-\\u1FC4\\u1FC6-\\u1FD3"
- "\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-\\u1FFD"
- "\\u2000\\u2001\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EB\\u2126"
- "\\u212A\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209"
- "\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262"
- "\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284"
- "\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-"
- "\\u22ED\\u2329\\u232A\\u2ADC\\u302A-\\u302F\\u304C\\u304E\\u3050"
- "\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062"
- "\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077"
- "\\u3079\\u307A\\u307C\\u307D\\u3094\\u3099\\u309A\\u309E\\u30AC"
- "\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE"
- "\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4"
- "\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA"
- "\\u30FE\\uA806\\uAC00-\\uD7A3\\uF900-\\uFA0D\\uFA10\\uFA12"
- "\\uFA15-\\uFA1E\\uFA20\\uFA22\\uFA25\\uFA26\\uFA2A-\\uFA2D"
- "\\uFA30-\\uFA6A\\uFA70-\\uFAD9\\uFB1D-\\uFB1F\\uFB2A-\\uFB36"
- "\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-"
- "\\uFB4E\\uFE20-\\uFE23\\U00010A0D\\U00010A0F\\U00010A38-\\U00010"
- "A3A\\U00010A3F\\U0001D15E-\\U0001D169\\U0001D16D-\\U0001D172"
+ "\\u04F5\\u04F8\\u04F9\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4"
+ "\\u05C5\\u05C7\\u0610-\\u0615\\u0622-\\u0626\\u064B-\\u065E"
+ "\\u0670\\u06C0\\u06C2\\u06D3\\u06D6-\\u06DC\\u06DF-\\u06E4"
+ "\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07EB-"
+ "\\u07F3\\u0929\\u0931\\u0934\\u093C\\u094D\\u0951-\\u0954\\u0958"
+ "-\\u095F\\u09BC\\u09CB-\\u09CD\\u09DC\\u09DD\\u09DF\\u0A33"
+ "\\u0A36\\u0A3C\\u0A4D\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C"
+ "\\u0B48\\u0B4B-\\u0B4D\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCD"
+ "\\u0C48\\u0C4D\\u0C55\\u0C56\\u0CBC\\u0CC0\\u0CC7\\u0CC8\\u0CCA"
+ "\\u0CCB\\u0CCD\\u0D4A-\\u0D4D\\u0DCA\\u0DDA\\u0DDC-\\u0DDE"
+ "\\u0E38-\\u0E3A\\u0E48-\\u0E4B\\u0EB8\\u0EB9\\u0EC8-\\u0ECB"
+ "\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F43\\u0F4D\\u0F52\\u0F57"
+ "\\u0F5C\\u0F69\\u0F71-\\u0F76\\u0F78\\u0F7A-\\u0F7D\\u0F80-"
+ "\\u0F84\\u0F86\\u0F87\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9"
+ "\\u0FC6\\u1026\\u1037\\u1039\\u135F\\u1714\\u1734\\u17D2\\u17DD"
+ "\\u18A9\\u1939-\\u193B\\u1A17\\u1A18\\u1B06\\u1B08\\u1B0A\\u1B0C"
+ "\\u1B0E\\u1B12\\u1B34\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43\\u1B44"
+ "\\u1B6B-\\u1B73\\u1DC0-\\u1DCA\\u1DFE-\\u1E99\\u1E9B\\u1EA0-"
+ "\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-"
+ "\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D"
+ "\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC1-\\u1FC4\\u1FC6-"
+ "\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-"
+ "\\u1FFD\\u2000\\u2001\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EF"
+ "\\u2126\\u212A\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204"
+ "\\u2209\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260"
+ "\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281"
+ "\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3"
+ "\\u22EA-\\u22ED\\u2329\\u232A\\u2ADC\\u302A-\\u302F\\u304C"
+ "\\u304E\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E"
+ "\\u3060\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074"
+ "\\u3076\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u3099\\u309A"
+ "\\u309E\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA"
+ "\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1"
+ "\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4"
+ "\\u30F7-\\u30FA\\u30FE\\uA806\\uAC00-\\uD7A3\\uF900-\\uFA0D"
+ "\\uFA10\\uFA12\\uFA15-\\uFA1E\\uFA20\\uFA22\\uFA25\\uFA26\\uFA2A"
+ "-\\uFA2D\\uFA30-\\uFA6A\\uFA70-\\uFAD9\\uFB1D-\\uFB1F\\uFB2A-"
+ "\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46"
+ "-\\uFB4E\\uFE20-\\uFE23\\U00010A0D\\U00010A0F\\U00010A38-\\U0001"
+ "0A3A\\U00010A3F\\U0001D15E-\\U0001D169\\U0001D16D-\\U0001D172"
"\\U0001D17B-\\U0001D182\\U0001D185-\\U0001D18B\\U0001D1AA-"
"\\U0001D1AD\\U0001D1BB-\\U0001D1C0\\U0001D242-\\U0001D244\\U0002"
"F800-\\U0002FA1D]"
@@ -1365,24 +1368,26 @@ initExpectedSkippables(UnicodeSet skipSets[UNORM_MODE_COUNT]) {
"\\u0410\\u0413\\u0415-\\u0418\\u041A\\u041E\\u0423\\u0427\\u042B"
"\\u042D\\u0430\\u0433\\u0435-\\u0438\\u043A\\u043E\\u0443\\u0447"
"\\u044B\\u044D\\u0456\\u0474\\u0475\\u0483-\\u0486\\u04D8\\u04D9"
- "\\u04E8\\u04E9\\u0591-\\u05B9\\u05BB-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7"
- "\\u0610-\\u0615\\u0622\\u0623\\u0627\\u0648\\u064A-\\u065E"
- "\\u0670\\u06C1\\u06D2\\u06D5-\\u06DC\\u06DF-\\u06E4\\u06E7"
- "\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u0928\\u0930"
- "\\u0933\\u093C\\u094D\\u0951-\\u0954\\u0958-\\u095F\\u09BC"
- "\\u09BE\\u09C7\\u09CD\\u09D7\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36"
- "\\u0A3C\\u0A4D\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C\\u0B3E"
- "\\u0B47\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B92\\u0BBE\\u0BC6"
- "\\u0BC7\\u0BCD\\u0BD7\\u0C46\\u0C4D\\u0C55\\u0C56\\u0CBC\\u0CBF"
- "\\u0CC2\\u0CC6\\u0CCA\\u0CCD\\u0CD5\\u0CD6\\u0D3E\\u0D46\\u0D47"
- "\\u0D4D\\u0D57\\u0DCA\\u0DCF\\u0DD9\\u0DDC\\u0DDF\\u0E38-\\u0E3A"
- "\\u0E48-\\u0E4B\\u0EB8\\u0EB9\\u0EC8-\\u0ECB\\u0F18\\u0F19"
- "\\u0F35\\u0F37\\u0F39\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69"
- "\\u0F71-\\u0F76\\u0F78\\u0F7A-\\u0F7D\\u0F80-\\u0F84\\u0F86"
- "\\u0F87\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u0FC6\\u1025"
- "\\u102E\\u1037\\u1039\\u1100-\\u1112\\u1161-\\u1175\\u11A8-"
- "\\u11C2\\u135F\\u1714\\u1734\\u17D2\\u17DD\\u18A9\\u1939-\\u193B"
- "\\u1A17\\u1A18\\u1DC0-\\u1DC3\\u1E00-\\u1E03\\u1E0A-\\u1E0F"
+ "\\u04E8\\u04E9\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5"
+ "\\u05C7\\u0610-\\u0615\\u0622\\u0623\\u0627\\u0648\\u064A-"
+ "\\u065E\\u0670\\u06C1\\u06D2\\u06D5-\\u06DC\\u06DF-\\u06E4"
+ "\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07EB-"
+ "\\u07F3\\u0928\\u0930\\u0933\\u093C\\u094D\\u0951-\\u0954\\u0958"
+ "-\\u095F\\u09BC\\u09BE\\u09C7\\u09CD\\u09D7\\u09DC\\u09DD\\u09DF"
+ "\\u0A33\\u0A36\\u0A3C\\u0A4D\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD"
+ "\\u0B3C\\u0B3E\\u0B47\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B92"
+ "\\u0BBE\\u0BC6\\u0BC7\\u0BCD\\u0BD7\\u0C46\\u0C4D\\u0C55\\u0C56"
+ "\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCA\\u0CCD\\u0CD5\\u0CD6\\u0D3E"
+ "\\u0D46\\u0D47\\u0D4D\\u0D57\\u0DCA\\u0DCF\\u0DD9\\u0DDC\\u0DDF"
+ "\\u0E38-\\u0E3A\\u0E48-\\u0E4B\\u0EB8\\u0EB9\\u0EC8-\\u0ECB"
+ "\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F43\\u0F4D\\u0F52\\u0F57"
+ "\\u0F5C\\u0F69\\u0F71-\\u0F76\\u0F78\\u0F7A-\\u0F7D\\u0F80-"
+ "\\u0F84\\u0F86\\u0F87\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9"
+ "\\u0FC6\\u1025\\u102E\\u1037\\u1039\\u1100-\\u1112\\u1161-"
+ "\\u1175\\u11A8-\\u11C2\\u135F\\u1714\\u1734\\u17D2\\u17DD\\u18A9"
+ "\\u1939-\\u193B\\u1A17\\u1A18\\u1B05\\u1B07\\u1B09\\u1B0B\\u1B0D"
+ "\\u1B11\\u1B34\\u1B35\\u1B3A\\u1B3C\\u1B3E\\u1B3F\\u1B42\\u1B44"
+ "\\u1B6B-\\u1B73\\u1DC0-\\u1DCA\\u1DFE-\\u1E03\\u1E0A-\\u1E0F"
"\\u1E12-\\u1E1B\\u1E20-\\u1E27\\u1E2A-\\u1E41\\u1E44-\\u1E53"
"\\u1E58-\\u1E7D\\u1E80-\\u1E87\\u1E8E-\\u1E91\\u1E96-\\u1E99"
"\\u1EA0-\\u1EF3\\u1EF6-\\u1EF9\\u1F00-\\u1F11\\u1F18\\u1F19"
@@ -1392,7 +1397,7 @@ initExpectedSkippables(UnicodeSet skipSets[UNORM_MODE_COUNT]) {
"\\u1F99\\u1FA0\\u1FA1\\u1FA8\\u1FA9\\u1FB3\\u1FB6\\u1FBB\\u1FBC"
"\\u1FBE\\u1FBF\\u1FC3\\u1FC6\\u1FC9\\u1FCB\\u1FCC\\u1FD3\\u1FDB"
"\\u1FE3\\u1FEB\\u1FEE\\u1FEF\\u1FF3\\u1FF6\\u1FF9\\u1FFB-\\u1FFE"
- "\\u2000\\u2001\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EB\\u2126"
+ "\\u2000\\u2001\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EF\\u2126"
"\\u212A\\u212B\\u2190\\u2192\\u2194\\u21D0\\u21D2\\u21D4\\u2203"
"\\u2208\\u220B\\u2223\\u2225\\u223C\\u2243\\u2245\\u2248\\u224D"
"\\u2261\\u2264\\u2265\\u2272\\u2273\\u2276\\u2277\\u227A-\\u227D"
@@ -1474,50 +1479,189 @@ initExpectedSkippables(UnicodeSet skipSets[UNORM_MODE_COUNT]) {
"\\u0450\\u0451\\u0453\\u0457\\u045C-\\u045E\\u0476\\u0477\\u0483"
"-\\u0486\\u04C1\\u04C2\\u04D0-\\u04D3\\u04D6\\u04D7\\u04DA-"
"\\u04DF\\u04E2-\\u04E7\\u04EA-\\u04F5\\u04F8\\u04F9\\u0587"
- "\\u0591-\\u05B9\\u05BB-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-"
- "\\u0615\\u0622-\\u0626\\u064B-\\u065E\\u0670\\u0675-\\u0678"
+ "\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610"
+ "-\\u0615\\u0622-\\u0626\\u064B-\\u065E\\u0670\\u0675-\\u0678"
"\\u06C0\\u06C2\\u06D3\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7"
- "\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u0929\\u0931"
- "\\u0934\\u093C\\u094D\\u0951-\\u0954\\u0958-\\u095F\\u09BC"
- "\\u09CB-\\u09CD\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A3C\\u0A4D"
- "\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C\\u0B48\\u0B4B-"
- "\\u0B4D\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCD\\u0C48\\u0C4D\\u0C55"
- "\\u0C56\\u0CBC\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CCD\\u0D4A-"
- "\\u0D4D\\u0DCA\\u0DDA\\u0DDC-\\u0DDE\\u0E33\\u0E38-\\u0E3A"
+ "\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07EB-\\u07F3"
+ "\\u0929\\u0931\\u0934\\u093C\\u094D\\u0951-\\u0954\\u0958-"
+ "\\u095F\\u09BC\\u09CB-\\u09CD\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36"
+ "\\u0A3C\\u0A4D\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C\\u0B48"
+ "\\u0B4B-\\u0B4D\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCD\\u0C48"
+ "\\u0C4D\\u0C55\\u0C56\\u0CBC\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB"
+ "\\u0CCD\\u0D4A-\\u0D4D\\u0DCA\\u0DDA\\u0DDC-\\u0DDE\\u0E33"
+ "\\u0E38-\\u0E3A\\u0E48-\\u0E4B\\u0EB3\\u0EB8\\u0EB9\\u0EC8-"
+ "\\u0ECB\\u0EDC\\u0EDD\\u0F0C\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39"
+ "\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F71-\\u0F7D\\u0F80"
+ "-\\u0F84\\u0F86\\u0F87\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9"
+ "\\u0FC6\\u1026\\u1037\\u1039\\u10FC\\u135F\\u1714\\u1734\\u17D2"
+ "\\u17DD\\u18A9\\u1939-\\u193B\\u1A17\\u1A18\\u1B06\\u1B08\\u1B0A"
+ "\\u1B0C\\u1B0E\\u1B12\\u1B34\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43"
+ "\\u1B44\\u1B6B-\\u1B73\\u1D2C-\\u1D2E\\u1D30-\\u1D3A\\u1D3C-"
+ "\\u1D4D\\u1D4F-\\u1D6A\\u1D78\\u1D9B-\\u1DCA\\u1DFE-\\u1E9B"
+ "\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45"
+ "\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-"
+ "\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-"
+ "\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-\\u1FFE\\u2000-"
+ "\\u200A\\u2011\\u2017\\u2024-\\u2026\\u202F\\u2033\\u2034\\u2036"
+ "\\u2037\\u203C\\u203E\\u2047-\\u2049\\u2057\\u205F\\u2070\\u2071"
+ "\\u2074-\\u208E\\u2090-\\u2094\\u20A8\\u20D0-\\u20DC\\u20E1"
+ "\\u20E5-\\u20EF\\u2100-\\u2103\\u2105-\\u2107\\u2109-\\u2113"
+ "\\u2115\\u2116\\u2119-\\u211D\\u2120-\\u2122\\u2124\\u2126"
+ "\\u2128\\u212A-\\u212D\\u212F-\\u2131\\u2133-\\u2139\\u213B-"
+ "\\u2140\\u2145-\\u2149\\u2153-\\u217F\\u219A\\u219B\\u21AE"
+ "\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224\\u2226\\u222C\\u222D"
+ "\\u222F\\u2230\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262\\u226D-"
+ "\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284\\u2285"
+ "\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-\\u22ED"
+ "\\u2329\\u232A\\u2460-\\u24EA\\u2A0C\\u2A74-\\u2A76\\u2ADC"
+ "\\u2D6F\\u2E9F\\u2EF3\\u2F00-\\u2FD5\\u3000\\u302A-\\u302F"
+ "\\u3036\\u3038-\\u303A\\u304C\\u304E\\u3050\\u3052\\u3054\\u3056"
+ "\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062\\u3065\\u3067\\u3069"
+ "\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077\\u3079\\u307A\\u307C"
+ "\\u307D\\u3094\\u3099-\\u309C\\u309E\\u309F\\u30AC\\u30AE\\u30B0"
+ "\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE\\u30C0\\u30C2"
+ "\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4\\u30D6\\u30D7"
+ "\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA\\u30FE\\u30FF"
+ "\\u3131-\\u318E\\u3192-\\u319F\\u3200-\\u321E\\u3220-\\u3243"
+ "\\u3250-\\u327E\\u3280-\\u32FE\\u3300-\\u33FF\\uA806\\uAC00-"
+ "\\uD7A3\\uF900-\\uFA0D\\uFA10\\uFA12\\uFA15-\\uFA1E\\uFA20"
+ "\\uFA22\\uFA25\\uFA26\\uFA2A-\\uFA2D\\uFA30-\\uFA6A\\uFA70-"
+ "\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB36\\uFB38-"
+ "\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3"
+ "-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFC\\uFE10-"
+ "\\uFE19\\uFE20-\\uFE23\\uFE30-\\uFE44\\uFE47-\\uFE52\\uFE54-"
+ "\\uFE66\\uFE68-\\uFE6B\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC"
+ "\\uFF01-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7"
+ "\\uFFDA-\\uFFDC\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\U00010A0D\\U00010"
+ "A0F\\U00010A38-\\U00010A3A\\U00010A3F\\U0001D15E-\\U0001D169"
+ "\\U0001D16D-\\U0001D172\\U0001D17B-\\U0001D182\\U0001D185-"
+ "\\U0001D18B\\U0001D1AA-\\U0001D1AD\\U0001D1BB-\\U0001D1C0\\U0001"
+ "D242-\\U0001D244\\U0001D400-\\U0001D454\\U0001D456-\\U0001D49C"
+ "\\U0001D49E\\U0001D49F\\U0001D4A2\\U0001D4A5\\U0001D4A6\\U0001D4"
+ "A9-\\U0001D4AC\\U0001D4AE-\\U0001D4B9\\U0001D4BB\\U0001D4BD-"
+ "\\U0001D4C3\\U0001D4C5-\\U0001D505\\U0001D507-\\U0001D50A\\U0001"
+ "D50D-\\U0001D514\\U0001D516-\\U0001D51C\\U0001D51E-\\U0001D539"
+ "\\U0001D53B-\\U0001D53E\\U0001D540-\\U0001D544\\U0001D546\\U0001"
+ "D54A-\\U0001D550\\U0001D552-\\U0001D6A5\\U0001D6A8-\\U0001D7CB"
+ "\\U0001D7CE-\\U0001D7FF\\U0002F800-\\U0002FA1D]"
+ , ""), errorCode);
+
+ skipSets[UNORM_NFKC].applyPattern(UnicodeString(
+ "[^<->A-PR-Za-pr-z\\u00A0\\u00A8\\u00AA\\u00AF\\u00B2-\\u00B5"
+ "\\u00B8-\\u00BA\\u00BC-\\u00BE\\u00C0-\\u00CF\\u00D1-\\u00D6"
+ "\\u00D8-\\u00DD\\u00E0-\\u00EF\\u00F1-\\u00F6\\u00F8-\\u00FD"
+ "\\u00FF-\\u0103\\u0106-\\u010F\\u0112-\\u0117\\u011A-\\u0121"
+ "\\u0124\\u0125\\u0128-\\u012D\\u0130\\u0132\\u0133\\u0139\\u013A"
+ "\\u013D-\\u0140\\u0143\\u0144\\u0147-\\u0149\\u014C-\\u0151"
+ "\\u0154\\u0155\\u0158-\\u015D\\u0160\\u0161\\u0164\\u0165\\u0168"
+ "-\\u0171\\u0174-\\u017F\\u01A0\\u01A1\\u01AF\\u01B0\\u01B7"
+ "\\u01C4-\\u01DC\\u01DE-\\u01E1\\u01E6-\\u01EB\\u01F1-\\u01F5"
+ "\\u01F8-\\u01FB\\u0200-\\u021B\\u021E\\u021F\\u0226-\\u0233"
+ "\\u0292\\u02B0-\\u02B8\\u02D8-\\u02DD\\u02E0-\\u02E4\\u0300-"
+ "\\u034E\\u0350-\\u036F\\u0374\\u037A\\u037E\\u0384\\u0385\\u0387"
+ "\\u0391\\u0395\\u0397\\u0399\\u039F\\u03A1\\u03A5\\u03A9\\u03AC"
+ "\\u03AE\\u03B1\\u03B5\\u03B7\\u03B9\\u03BF\\u03C1\\u03C5\\u03C9-"
+ "\\u03CB\\u03CE\\u03D0-\\u03D6\\u03F0-\\u03F2\\u03F4\\u03F5"
+ "\\u03F9\\u0406\\u0410\\u0413\\u0415-\\u0418\\u041A\\u041E\\u0423"
+ "\\u0427\\u042B\\u042D\\u0430\\u0433\\u0435-\\u0438\\u043A\\u043E"
+ "\\u0443\\u0447\\u044B\\u044D\\u0456\\u0474\\u0475\\u0483-\\u0486"
+ "\\u04D8\\u04D9\\u04E8\\u04E9\\u0587\\u0591-\\u05BD\\u05BF\\u05C1"
+ "\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u0615\\u0622\\u0623\\u0627"
+ "\\u0648\\u064A-\\u065E\\u0670\\u0675-\\u0678\\u06C1\\u06D2"
+ "\\u06D5-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED"
+ "\\u0711\\u0730-\\u074A\\u07EB-\\u07F3\\u0928\\u0930\\u0933"
+ "\\u093C\\u094D\\u0951-\\u0954\\u0958-\\u095F\\u09BC\\u09BE"
+ "\\u09C7\\u09CD\\u09D7\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A3C"
+ "\\u0A4D\\u0A59-\\u0A5B\\u0A5E\\u0ABC\\u0ACD\\u0B3C\\u0B3E\\u0B47"
+ "\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B92\\u0BBE\\u0BC6\\u0BC7"
+ "\\u0BCD\\u0BD7\\u0C46\\u0C4D\\u0C55\\u0C56\\u0CBC\\u0CBF\\u0CC2"
+ "\\u0CC6\\u0CCA\\u0CCD\\u0CD5\\u0CD6\\u0D3E\\u0D46\\u0D47\\u0D4D"
+ "\\u0D57\\u0DCA\\u0DCF\\u0DD9\\u0DDC\\u0DDF\\u0E33\\u0E38-\\u0E3A"
"\\u0E48-\\u0E4B\\u0EB3\\u0EB8\\u0EB9\\u0EC8-\\u0ECB\\u0EDC"
"\\u0EDD\\u0F0C\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F43\\u0F4D"
"\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F71-\\u0F7D\\u0F80-\\u0F84"
"\\u0F86\\u0F87\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u0FC6"
- "\\u1026\\u1037\\u1039\\u10FC\\u135F\\u1714\\u1734\\u17D2\\u17DD"
- "\\u18A9\\u1939-\\u193B\\u1A17\\u1A18\\u1D2C-\\u1D2E\\u1D30-"
- "\\u1D3A\\u1D3C-\\u1D4D\\u1D4F-\\u1D6A\\u1D78\\u1D9B-\\u1DC3"
- "\\u1E00-\\u1E9B\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D"
- "\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B"
- "\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FC4\\u1FC6-"
- "\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEF\\u1FF2-\\u1FF4\\u1FF6-"
- "\\u1FFE\\u2000-\\u200A\\u2011\\u2017\\u2024-\\u2026\\u202F"
- "\\u2033\\u2034\\u2036\\u2037\\u203C\\u203E\\u2047-\\u2049\\u2057"
- "\\u205F\\u2070\\u2071\\u2074-\\u208E\\u2090-\\u2094\\u20A8"
- "\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EB\\u2100-\\u2103\\u2105-"
- "\\u2107\\u2109-\\u2113\\u2115\\u2116\\u2119-\\u211D\\u2120-"
- "\\u2122\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2131"
- "\\u2133-\\u2139\\u213B-\\u2140\\u2145-\\u2149\\u2153-\\u217F"
- "\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224"
- "\\u2226\\u222C\\u222D\\u222F\\u2230\\u2241\\u2244\\u2247\\u2249"
- "\\u2260\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280"
- "\\u2281\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-"
- "\\u22E3\\u22EA-\\u22ED\\u2329\\u232A\\u2460-\\u24EA\\u2A0C"
- "\\u2A74-\\u2A76\\u2ADC\\u2D6F\\u2E9F\\u2EF3\\u2F00-\\u2FD5"
- "\\u3000\\u302A-\\u302F\\u3036\\u3038-\\u303A\\u304C\\u304E"
- "\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060"
- "\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076"
- "\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u3099-\\u309C\\u309E"
- "\\u309F\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA"
- "\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1"
- "\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4"
- "\\u30F7-\\u30FA\\u30FE\\u30FF\\u3131-\\u318E\\u3192-\\u319F"
+ "\\u1025\\u102E\\u1037\\u1039\\u10FC\\u1100-\\u1112\\u1161-"
+ "\\u1175\\u11A8-\\u11C2\\u135F\\u1714\\u1734\\u17D2\\u17DD\\u18A9"
+ "\\u1939-\\u193B\\u1A17\\u1A18\\u1B05\\u1B07\\u1B09\\u1B0B\\u1B0D"
+ "\\u1B11\\u1B34\\u1B35\\u1B3A\\u1B3C\\u1B3E\\u1B3F\\u1B42\\u1B44"
+ "\\u1B6B-\\u1B73\\u1D2C-\\u1D2E\\u1D30-\\u1D3A\\u1D3C-\\u1D4D"
+ "\\u1D4F-\\u1D6A\\u1D78\\u1D9B-\\u1DCA\\u1DFE-\\u1E03\\u1E0A-"
+ "\\u1E0F\\u1E12-\\u1E1B\\u1E20-\\u1E27\\u1E2A-\\u1E41\\u1E44-"
+ "\\u1E53\\u1E58-\\u1E7D\\u1E80-\\u1E87\\u1E8E-\\u1E91\\u1E96-"
+ "\\u1E9B\\u1EA0-\\u1EF3\\u1EF6-\\u1EF9\\u1F00-\\u1F11\\u1F18"
+ "\\u1F19\\u1F20-\\u1F31\\u1F38\\u1F39\\u1F40\\u1F41\\u1F48\\u1F49"
+ "\\u1F50\\u1F51\\u1F59\\u1F60-\\u1F71\\u1F73-\\u1F75\\u1F77"
+ "\\u1F79\\u1F7B-\\u1F7D\\u1F80\\u1F81\\u1F88\\u1F89\\u1F90\\u1F91"
+ "\\u1F98\\u1F99\\u1FA0\\u1FA1\\u1FA8\\u1FA9\\u1FB3\\u1FB6\\u1FBB-"
+ "\\u1FC1\\u1FC3\\u1FC6\\u1FC9\\u1FCB-\\u1FCF\\u1FD3\\u1FDB\\u1FDD"
+ "-\\u1FDF\\u1FE3\\u1FEB\\u1FED-\\u1FEF\\u1FF3\\u1FF6\\u1FF9"
+ "\\u1FFB-\\u1FFE\\u2000-\\u200A\\u2011\\u2017\\u2024-\\u2026"
+ "\\u202F\\u2033\\u2034\\u2036\\u2037\\u203C\\u203E\\u2047-\\u2049"
+ "\\u2057\\u205F\\u2070\\u2071\\u2074-\\u208E\\u2090-\\u2094"
+ "\\u20A8\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EF\\u2100-\\u2103"
+ "\\u2105-\\u2107\\u2109-\\u2113\\u2115\\u2116\\u2119-\\u211D"
+ "\\u2120-\\u2122\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-"
+ "\\u2131\\u2133-\\u2139\\u213B-\\u2140\\u2145-\\u2149\\u2153-"
+ "\\u217F\\u2190\\u2192\\u2194\\u21D0\\u21D2\\u21D4\\u2203\\u2208"
+ "\\u220B\\u2223\\u2225\\u222C\\u222D\\u222F\\u2230\\u223C\\u2243"
+ "\\u2245\\u2248\\u224D\\u2261\\u2264\\u2265\\u2272\\u2273\\u2276"
+ "\\u2277\\u227A-\\u227D\\u2282\\u2283\\u2286\\u2287\\u2291\\u2292"
+ "\\u22A2\\u22A8\\u22A9\\u22AB\\u22B2-\\u22B5\\u2329\\u232A\\u2460"
+ "-\\u24EA\\u2A0C\\u2A74-\\u2A76\\u2ADC\\u2D6F\\u2E9F\\u2EF3"
+ "\\u2F00-\\u2FD5\\u3000\\u302A-\\u302F\\u3036\\u3038-\\u303A"
+ "\\u3046\\u304B\\u304D\\u304F\\u3051\\u3053\\u3055\\u3057\\u3059"
+ "\\u305B\\u305D\\u305F\\u3061\\u3064\\u3066\\u3068\\u306F\\u3072"
+ "\\u3075\\u3078\\u307B\\u3099-\\u309D\\u309F\\u30A6\\u30AB\\u30AD"
+ "\\u30AF\\u30B1\\u30B3\\u30B5\\u30B7\\u30B9\\u30BB\\u30BD\\u30BF"
+ "\\u30C1\\u30C4\\u30C6\\u30C8\\u30CF\\u30D2\\u30D5\\u30D8\\u30DB"
+ "\\u30EF-\\u30F2\\u30FD\\u30FF\\u3131-\\u318E\\u3192-\\u319F"
"\\u3200-\\u321E\\u3220-\\u3243\\u3250-\\u327E\\u3280-\\u32FE"
- "\\u3300-\\u33FF\\uA806\\uAC00-\\uD7A3\\uF900-\\uFA0D\\uFA10"
+ "\\u3300-\\u33FF\\uA806\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C"
+ "\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88"
+ "\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84"
+ "\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80"
+ "\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C"
+ "\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178"
+ "\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274"
+ "\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370"
+ "\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C"
+ "\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568"
+ "\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664"
+ "\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760"
+ "\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C"
+ "\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958"
+ "\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54"
+ "\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50"
+ "\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C"
+ "\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48"
+ "\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44"
+ "\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40"
+ "\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C"
+ "\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138"
+ "\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234"
+ "\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330"
+ "\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C"
+ "\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528"
+ "\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624"
+ "\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720"
+ "\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C"
+ "\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918"
+ "\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14"
+ "\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10"
+ "\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C"
+ "\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08"
+ "\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04"
+ "\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00"
+ "\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC"
+ "\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8"
+ "\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4"
+ "\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0"
+ "\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC"
+ "\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8"
+ "\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4"
+ "\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0"
+ "\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788\\uF900-\\uFA0D\\uFA10"
"\\uFA12\\uFA15-\\uFA1E\\uFA20\\uFA22\\uFA25\\uFA26\\uFA2A-"
"\\uFA2D\\uFA30-\\uFA6A\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-"
"\\uFB17\\uFB1D-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41"
@@ -1536,145 +1680,9 @@ initExpectedSkippables(UnicodeSet skipSets[UNORM_MODE_COUNT]) {
"\\U0001D505\\U0001D507-\\U0001D50A\\U0001D50D-\\U0001D514\\U0001"
"D516-\\U0001D51C\\U0001D51E-\\U0001D539\\U0001D53B-\\U0001D53E"
"\\U0001D540-\\U0001D544\\U0001D546\\U0001D54A-\\U0001D550\\U0001"
- "D552-\\U0001D6A5\\U0001D6A8-\\U0001D7C9\\U0001D7CE-\\U0001D7FF"
+ "D552-\\U0001D6A5\\U0001D6A8-\\U0001D7CB\\U0001D7CE-\\U0001D7FF"
"\\U0002F800-\\U0002FA1D]"
, ""), errorCode);
-
- skipSets[UNORM_NFKC].applyPattern(UnicodeString(
- "[^<->A-PR-Za-pr-z\\u00A0\\u00A8\\u00AA\\u00AF\\u00B2-\\u00B5"
- "\\u00B8-\\u00BA\\u00BC-\\u00BE\\u00C0-\\u00CF\\u00D1-\\u00D6"
- "\\u00D8-\\u00DD\\u00E0-\\u00EF\\u00F1-\\u00F6\\u00F8-\\u00FD"
- "\\u00FF-\\u0103\\u0106-\\u010F\\u0112-\\u0117\\u011A-\\u0121"
- "\\u0124\\u0125\\u0128-\\u012D\\u0130\\u0132\\u0133\\u0139\\u013A"
- "\\u013D-\\u0140\\u0143\\u0144\\u0147-\\u0149\\u014C-\\u0151"
- "\\u0154\\u0155\\u0158-\\u015D\\u0160\\u0161\\u0164\\u0165\\u0168"
- "-\\u0171\\u0174-\\u017F\\u01A0\\u01A1\\u01AF\\u01B0\\u01B7"
- "\\u01C4-\\u01DC\\u01DE-\\u01E1\\u01E6-\\u01EB\\u01F1-\\u01F5"
- "\\u01F8-\\u01FB\\u0200-\\u021B\\u021E\\u021F\\u0226-\\u0233"
- "\\u0292\\u02B0-\\u02B8\\u02D8-\\u02DD\\u02E0-\\u02E4\\u0300-"
- "\\u034E\\u0350-\\u036F\\u0374\\u037A\\u037E\\u0384\\u0385\\u0387"
- "\\u0391\\u0395\\u0397\\u0399\\u039F\\u03A1\\u03A5\\u03A9\\u03AC"
- "\\u03AE\\u03B1\\u03B5\\u03B7\\u03B9\\u03BF\\u03C1\\u03C5\\u03C9-"
- "\\u03CB\\u03CE\\u03D0-\\u03D6\\u03F0-\\u03F2\\u03F4\\u03F5"
- "\\u03F9\\u0406\\u0410\\u0413\\u0415-\\u0418\\u041A\\u041E\\u0423"
- "\\u0427\\u042B\\u042D\\u0430\\u0433\\u0435-\\u0438\\u043A\\u043E"
- "\\u0443\\u0447\\u044B\\u044D\\u0456\\u0474\\u0475\\u0483-\\u0486"
- "\\u04D8\\u04D9\\u04E8\\u04E9\\u0587\\u0591-\\u05B9\\u05BB-\\u05BD\\u05BF\\u05C1"
- "\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u0615\\u0622\\u0623\\u0627\\u0648"
- "\\u064A-\\u065E\\u0670\\u0675-\\u0678\\u06C1\\u06D2\\u06D5-"
- "\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711"
- "\\u0730-\\u074A\\u0928\\u0930\\u0933\\u093C\\u094D\\u0951-"
- "\\u0954\\u0958-\\u095F\\u09BC\\u09BE\\u09C7\\u09CD\\u09D7\\u09DC"
- "\\u09DD\\u09DF\\u0A33\\u0A36\\u0A3C\\u0A4D\\u0A59-\\u0A5B\\u0A5E"
- "\\u0ABC\\u0ACD\\u0B3C\\u0B3E\\u0B47\\u0B4D\\u0B56\\u0B57\\u0B5C"
- "\\u0B5D\\u0B92\\u0BBE\\u0BC6\\u0BC7\\u0BCD\\u0BD7\\u0C46\\u0C4D"
- "\\u0C55\\u0C56\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCA\\u0CCD\\u0CD5"
- "\\u0CD6\\u0D3E\\u0D46\\u0D47\\u0D4D\\u0D57\\u0DCA\\u0DCF\\u0DD9"
- "\\u0DDC\\u0DDF\\u0E33\\u0E38-\\u0E3A\\u0E48-\\u0E4B\\u0EB3"
- "\\u0EB8\\u0EB9\\u0EC8-\\u0ECB\\u0EDC\\u0EDD\\u0F0C\\u0F18\\u0F19"
- "\\u0F35\\u0F37\\u0F39\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69"
- "\\u0F71-\\u0F7D\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F93\\u0F9D"
- "\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u0FC6\\u1025\\u102E\\u1037\\u1039"
- "\\u10FC\\u1100-\\u1112\\u1161-\\u1175\\u11A8-\\u11C2\\u135F"
- "\\u1714\\u1734\\u17D2\\u17DD\\u18A9\\u1939-\\u193B\\u1A17\\u1A18"
- "\\u1D2C-\\u1D2E\\u1D30-\\u1D3A\\u1D3C-\\u1D4D\\u1D4F-\\u1D6A"
- "\\u1D78\\u1D9B-\\u1DC3\\u1E00-\\u1E03\\u1E0A-\\u1E0F\\u1E12-"
- "\\u1E1B\\u1E20-\\u1E27\\u1E2A-\\u1E41\\u1E44-\\u1E53\\u1E58-"
- "\\u1E7D\\u1E80-\\u1E87\\u1E8E-\\u1E91\\u1E96-\\u1E9B\\u1EA0-"
- "\\u1EF3\\u1EF6-\\u1EF9\\u1F00-\\u1F11\\u1F18\\u1F19\\u1F20-"
- "\\u1F31\\u1F38\\u1F39\\u1F40\\u1F41\\u1F48\\u1F49\\u1F50\\u1F51"
- "\\u1F59\\u1F60-\\u1F71\\u1F73-\\u1F75\\u1F77\\u1F79\\u1F7B-"
- "\\u1F7D\\u1F80\\u1F81\\u1F88\\u1F89\\u1F90\\u1F91\\u1F98\\u1F99"
- "\\u1FA0\\u1FA1\\u1FA8\\u1FA9\\u1FB3\\u1FB6\\u1FBB-\\u1FC1\\u1FC3"
- "\\u1FC6\\u1FC9\\u1FCB-\\u1FCF\\u1FD3\\u1FDB\\u1FDD-\\u1FDF"
- "\\u1FE3\\u1FEB\\u1FED-\\u1FEF\\u1FF3\\u1FF6\\u1FF9\\u1FFB-"
- "\\u1FFE\\u2000-\\u200A\\u2011\\u2017\\u2024-\\u2026\\u202F"
- "\\u2033\\u2034\\u2036\\u2037\\u203C\\u203E\\u2047-\\u2049\\u2057"
- "\\u205F\\u2070\\u2071\\u2074-\\u208E\\u2090-\\u2094\\u20A8"
- "\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20EB\\u2100-\\u2103\\u2105-"
- "\\u2107\\u2109-\\u2113\\u2115\\u2116\\u2119-\\u211D\\u2120-"
- "\\u2122\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2131"
- "\\u2133-\\u2139\\u213B-\\u2140\\u2145-\\u2149\\u2153-\\u217F"
- "\\u2190\\u2192\\u2194\\u21D0\\u21D2\\u21D4\\u2203\\u2208\\u220B"
- "\\u2223\\u2225\\u222C\\u222D\\u222F\\u2230\\u223C\\u2243\\u2245"
- "\\u2248\\u224D\\u2261\\u2264\\u2265\\u2272\\u2273\\u2276\\u2277"
- "\\u227A-\\u227D\\u2282\\u2283\\u2286\\u2287\\u2291\\u2292\\u22A2"
- "\\u22A8\\u22A9\\u22AB\\u22B2-\\u22B5\\u2329\\u232A\\u2460-"
- "\\u24EA\\u2A0C\\u2A74-\\u2A76\\u2ADC\\u2D6F\\u2E9F\\u2EF3\\u2F00"
- "-\\u2FD5\\u3000\\u302A-\\u302F\\u3036\\u3038-\\u303A\\u3046"
- "\\u304B\\u304D\\u304F\\u3051\\u3053\\u3055\\u3057\\u3059\\u305B"
- "\\u305D\\u305F\\u3061\\u3064\\u3066\\u3068\\u306F\\u3072\\u3075"
- "\\u3078\\u307B\\u3099-\\u309D\\u309F\\u30A6\\u30AB\\u30AD\\u30AF"
- "\\u30B1\\u30B3\\u30B5\\u30B7\\u30B9\\u30BB\\u30BD\\u30BF\\u30C1"
- "\\u30C4\\u30C6\\u30C8\\u30CF\\u30D2\\u30D5\\u30D8\\u30DB\\u30EF-"
- "\\u30F2\\u30FD\\u30FF\\u3131-\\u318E\\u3192-\\u319F\\u3200-"
- "\\u321E\\u3220-\\u3243\\u3250-\\u327E\\u3280-\\u32FE\\u3300-"
- "\\u33FF\\uA806\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8"
- "\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4"
- "\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0"
- "\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C"
- "\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098"
- "\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194"
- "\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290"
- "\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C"
- "\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488"
- "\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584"
- "\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680"
- "\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C"
- "\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878"
- "\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974"
- "\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70"
- "\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C"
- "\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68"
- "\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64"
- "\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60"
- "\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C"
- "\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058"
- "\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154"
- "\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250"
- "\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C"
- "\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448"
- "\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544"
- "\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640"
- "\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C"
- "\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838"
- "\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934"
- "\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30"
- "\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C"
- "\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28"
- "\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24"
- "\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20"
- "\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C"
- "\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018"
- "\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114"
- "\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210"
- "\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C"
- "\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408"
- "\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504"
- "\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600"
- "\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC"
- "\\uD718\\uD734\\uD750\\uD76C\\uD788\\uF900-\\uFA0D\\uFA10\\uFA12"
- "\\uFA15-\\uFA1E\\uFA20\\uFA22\\uFA25\\uFA26\\uFA2A-\\uFA2D"
- "\\uFA30-\\uFA6A\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17"
- "\\uFB1D-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43"
- "\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-"
- "\\uFDC7\\uFDF0-\\uFDFC\\uFE10-\\uFE19\\uFE20-\\uFE23\\uFE30-"
- "\\uFE44\\uFE47-\\uFE52\\uFE54-\\uFE66\\uFE68-\\uFE6B\\uFE70-"
- "\\uFE72\\uFE74\\uFE76-\\uFEFC\\uFF01-\\uFFBE\\uFFC2-\\uFFC7"
- "\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC\\uFFE0-\\uFFE6"
- "\\uFFE8-\\uFFEE\\U00010A0D\\U00010A0F\\U00010A38-\\U00010A3A"
- "\\U00010A3F\\U0001D15E-\\U0001D169\\U0001D16D-\\U0001D172\\U0001"
- "D17B-\\U0001D182\\U0001D185-\\U0001D18B\\U0001D1AA-\\U0001D1AD"
- "\\U0001D1BB-\\U0001D1C0\\U0001D242-\\U0001D244\\U0001D400-"
- "\\U0001D454\\U0001D456-\\U0001D49C\\U0001D49E\\U0001D49F\\U0001D"
- "4A2\\U0001D4A5\\U0001D4A6\\U0001D4A9-\\U0001D4AC\\U0001D4AE-"
- "\\U0001D4B9\\U0001D4BB\\U0001D4BD-\\U0001D4C3\\U0001D4C5-\\U0001"
- "D505\\U0001D507-\\U0001D50A\\U0001D50D-\\U0001D514\\U0001D516-"
- "\\U0001D51C\\U0001D51E-\\U0001D539\\U0001D53B-\\U0001D53E\\U0001"
- "D540-\\U0001D544\\U0001D546\\U0001D54A-\\U0001D550\\U0001D552-"
- "\\U0001D6A5\\U0001D6A8-\\U0001D7C9\\U0001D7CE-\\U0001D7FF\\U0002"
- "F800-\\U0002FA1D]"
- , ""), errorCode);
}
U_CDECL_BEGIN
@@ -1701,6 +1709,7 @@ U_CDECL_END
void
BasicNormalizerTest::TestSkippable() {
UnicodeSet starts, diff, skipSets[UNORM_MODE_COUNT], expectSets[UNORM_MODE_COUNT];
+ UnicodeSet *startsPtr = &starts;
UnicodeString s, pattern;
UChar32 start, limit, rangeStart, rangeEnd;
int32_t i, range, count;
@@ -1710,7 +1719,7 @@ BasicNormalizerTest::TestSkippable() {
/* build NF*Skippable sets from runtime data */
status=U_ZERO_ERROR;
USetAdder sa = {
- (USet *)&starts,
+ (USet *)startsPtr,
_set_add,
_set_addRange,
_set_addString,
diff --git a/Build/source/libs/icu-xetex/test/intltest/tzbdtest.cpp b/Build/source/libs/icu-xetex/test/intltest/tzbdtest.cpp
index 66e0f24a179..88e0fab9c7c 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tzbdtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tzbdtest.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -193,13 +193,19 @@ TimeZoneBoundaryTest::verifyDST(UDate d, TimeZone* time_zone, UBool expUseDaylig
logln("-- Verifying time " + dateToString(d) + " in zone " + time_zone->getID(str));
if (time_zone->inDaylightTime(d, status) == expInDaylightTime)
logln(UnicodeString("PASS: inDaylightTime = ") + (time_zone->inDaylightTime(d, status)?"true":"false"));
- else errln(UnicodeString("FAIL: inDaylightTime = ") + (time_zone->inDaylightTime(d, status)?"true":"false"));
- if (failure(status, "TimeZone::inDaylightTime")) return;
+ else
+ errln(UnicodeString("FAIL: inDaylightTime = ") + (time_zone->inDaylightTime(d, status)?"true":"false"));
+ if (failure(status, "TimeZone::inDaylightTime"))
+ return;
if (time_zone->useDaylightTime() == expUseDaylightTime)
logln(UnicodeString("PASS: useDaylightTime = ") + (time_zone->useDaylightTime()?"true":"false"));
- else errln(UnicodeString("FAIL: useDaylightTime = ") + (time_zone->useDaylightTime()?"true":"false"));
- if (time_zone->getRawOffset() == expZoneOffset) logln(UnicodeString("PASS: getRawOffset() = ") + (expZoneOffset / ONE_HOUR));
- else errln(UnicodeString("FAIL: getRawOffset() = ") + (time_zone->getRawOffset() / ONE_HOUR) + "; expected " + (expZoneOffset / ONE_HOUR));
+ else
+ errln(UnicodeString("FAIL: useDaylightTime = ") + (time_zone->useDaylightTime()?"true":"false"));
+ if (time_zone->getRawOffset() == expZoneOffset)
+ logln(UnicodeString("PASS: getRawOffset() = ") + (expZoneOffset / ONE_HOUR));
+ else
+ errln(UnicodeString("FAIL: getRawOffset() = ") + (time_zone->getRawOffset() / ONE_HOUR) + "; expected " + (expZoneOffset / ONE_HOUR));
+
GregorianCalendar *gc = new GregorianCalendar(time_zone->clone(), status);
gc->setTime(d, status);
if (failure(status, "GregorianCalendar::setTime")) return;
@@ -215,7 +221,52 @@ TimeZoneBoundaryTest::verifyDST(UDate d, TimeZone* time_zone, UBool expUseDaylig
}
// -------------------------------------
-
+/**
+ * Check that the given year/month/dom/hour maps to and from the
+ * given epochHours. This verifies the functioning of the
+ * calendar and time zone in conjunction with one another,
+ * including the calendar time->fields and fields->time and
+ * the time zone getOffset method.
+ *
+ * @param epochHours hours after Jan 1 1970 0:00 GMT.
+ */
+void TimeZoneBoundaryTest::verifyMapping(Calendar& cal, int year, int month, int dom, int hour,
+ double epochHours) {
+ double H = 3600000.0;
+ UErrorCode status = U_ZERO_ERROR;
+ cal.clear();
+ cal.set(year, month, dom, hour, 0, 0);
+ UDate e = cal.getTime(status)/ H;
+ UDate ed = (epochHours * H);
+ if (e == epochHours) {
+ logln(UnicodeString("Ok: ") + year + "/" + (month+1) + "/" + dom + " " + hour + ":00 => " +
+ e + " (" + ed + ")");
+ } else {
+ errln(UnicodeString("FAIL: ") + year + "/" + (month+1) + "/" + dom + " " + hour + ":00 => " +
+ e + " (" + (e * H) + ")" +
+ ", expected " + epochHours + " (" + ed + ")");
+ }
+ cal.setTime(ed, status);
+ if (cal.get(UCAL_YEAR, status) == year &&
+ cal.get(UCAL_MONTH, status) == month &&
+ cal.get(UCAL_DATE, status) == dom &&
+ cal.get(UCAL_MILLISECONDS_IN_DAY, status) == hour * 3600000) {
+ logln(UnicodeString("Ok: ") + epochHours + " (" + ed + ") => " +
+ cal.get(UCAL_YEAR, status) + "/" +
+ (cal.get(UCAL_MONTH, status)+1) + "/" +
+ cal.get(UCAL_DATE, status) + " " +
+ cal.get(UCAL_MILLISECOND, status)/H);
+ } else {
+ errln(UnicodeString("FAIL: ") + epochHours + " (" + ed + ") => " +
+ cal.get(UCAL_YEAR, status) + "/" +
+ (cal.get(UCAL_MONTH, status)+1) + "/" +
+ cal.get(UCAL_DATE, status) + " " +
+ cal.get(UCAL_MILLISECOND, status)/H +
+ ", expected " + year + "/" + (month+1) + "/" + dom +
+ " " + hour);
+ }
+}
+
/**
* Test the behavior of SimpleTimeZone at the transition into and out of DST.
* Use a binary search to find boundaries.
@@ -223,6 +274,48 @@ TimeZoneBoundaryTest::verifyDST(UDate d, TimeZone* time_zone, UBool expUseDaylig
void
TimeZoneBoundaryTest::TestBoundaries()
{
+ UErrorCode status = U_ZERO_ERROR;
+ TimeZone* pst = TimeZone::createTimeZone("PST");
+ Calendar* tempcal = Calendar::createInstance(pst, status);
+ if(U_SUCCESS(status)){
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 3, 0, 238904.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 4, 0, 238928.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 5, 0, 238952.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 5, 23, 238975.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 6, 0, 238976.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 6, 1, 238977.0);
+ verifyMapping(*tempcal, 1997, Calendar::APRIL, 6, 3, 238978.0);
+ }else{
+ errln("Could not create calendar. Error: %s", u_errorName(status));
+ }
+ TimeZone* utc = TimeZone::createTimeZone("UTC");
+ Calendar* utccal = Calendar::createInstance(utc, status);
+ if(U_SUCCESS(status)){
+ verifyMapping(*utccal, 1997, Calendar::APRIL, 6, 0, 238968.0);
+ }else{
+ errln("Could not create calendar. Error: %s", u_errorName(status));
+ }
+ TimeZone* save = TimeZone::createDefault();
+ TimeZone::setDefault(*pst);
+
+ // DST changeover for PST is 4/6/1997 at 2 hours past midnight
+ // at 238978.0 epoch hours.
+ tempcal->clear();
+ tempcal->set(1997, Calendar::APRIL, 6);
+ UDate d = tempcal->getTime(status);
+
+ // i is minutes past midnight standard time
+ for (int i=-120; i<=180; i+=60)
+ {
+ UBool inDST = (i >= 120);
+ tempcal->setTime(d + i*60*1000, status);
+ verifyDST(tempcal->getTime(status),pst, TRUE, inDST, -8*ONE_HOUR,inDST ? -7*ONE_HOUR : -8*ONE_HOUR);
+ }
+ TimeZone::setDefault(*save);
+ delete save;
+ delete utccal;
+ delete tempcal;
+
#if 1
{
logln("--- Test a ---");
@@ -292,7 +385,7 @@ TimeZoneBoundaryTest::testUsingBinarySearch(SimpleTimeZone* tz, UDate d, UDate e
UBool startsInDST = tz->inDaylightTime(d, status);
if (failure(status, "SimpleTimeZone::inDaylightTime")) return;
if (tz->inDaylightTime(max, status) == startsInDST) {
- logln("Error: inDaylightTime(" + dateToString(max) + ") != " + ((!startsInDST)?"true":"false"));
+ errln("Error: inDaylightTime(" + dateToString(max) + ") != " + ((!startsInDST)?"true":"false"));
}
if (failure(status, "SimpleTimeZone::inDaylightTime")) return;
while ((max - min) > INTERVAL) {
diff --git a/Build/source/libs/icu-xetex/test/intltest/tzbdtest.h b/Build/source/libs/icu-xetex/test/intltest/tzbdtest.h
index f58beb62569..ecc867c9faf 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tzbdtest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/tzbdtest.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2001, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -79,7 +79,8 @@ public: // package
* Use a stepwise march to find boundaries.
*/
virtual void TestStepwise(void);
-
+ void verifyMapping(Calendar& cal, int year, int month, int dom, int hour,
+ double epochHours) ;
private:
const UDate ONE_SECOND;
const UDate ONE_MINUTE;
diff --git a/Build/source/libs/icu-xetex/test/intltest/tzregts.cpp b/Build/source/libs/icu-xetex/test/intltest/tzregts.cpp
index b13947873a8..5ce419cf6bb 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tzregts.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tzregts.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -18,7 +18,8 @@
// *****************************************************************************
// class TimeZoneRegressionTest
// *****************************************************************************
-
+/* length of an array */
+#define ARRAY_LENGTH(array) (sizeof(array)/sizeof(array[0]))
#define CASE(id,test) case id: name = #test; if (exec) { logln(#test "---"); logln((UnicodeString)""); test(); } break
void
@@ -44,7 +45,8 @@ TimeZoneRegressionTest::runIndexedTest( int32_t index, UBool exec, const char* &
CASE(14, TestJ186);
CASE(15, TestJ449);
CASE(16, TestJDK12API);
-
+ CASE(17, Test4176686);
+ CASE(18, Test4184229);
default: name = ""; break;
}
}
@@ -221,25 +223,36 @@ void TimeZoneRegressionTest:: Test4084933() {
* The following was added just for consistency. It shows that going *to* Daylight
* Savings Time (PDT) does work at 2am.
*/
-
int32_t offset5 = tz->getOffset(1,
1997, UCAL_APRIL, 6, UCAL_SUNDAY, (2*60*60*1000), status);
int32_t offset6 = tz->getOffset(1,
1997, UCAL_APRIL, 6, UCAL_SUNDAY, (2*60*60*1000)-1, status);
-
+ int32_t offset5a = tz->getOffset(1,
+ 1997, UCAL_APRIL, 6, UCAL_SUNDAY, (3*60*60*1000), status);
+ int32_t offset6a = tz->getOffset(1,
+ 1997, UCAL_APRIL, 6, UCAL_SUNDAY, (3*60*60*1000)-1, status);
int32_t offset7 = tz->getOffset(1,
1997, UCAL_APRIL, 6, UCAL_SUNDAY, (1*60*60*1000), status);
int32_t offset8 = tz->getOffset(1,
1997, UCAL_APRIL, 6, UCAL_SUNDAY, (1*60*60*1000)-1, status);
-
int32_t SToffset = (int32_t)(-8 * 60*60*1000L);
int32_t DToffset = (int32_t)(-7 * 60*60*1000L);
- if (offset1 != SToffset || offset2 != SToffset ||
- offset3 != SToffset || offset4 != DToffset ||
- offset5 != DToffset || offset6 != SToffset ||
- offset7 != SToffset || offset8 != SToffset
- || U_FAILURE(status))
- errln("Fail: TimeZone misbehaving");
+
+#define ERR_IF_FAIL(x) if(x) { errln("FAIL: TimeZone misbehaving - %s", #x); }
+
+ ERR_IF_FAIL(U_FAILURE(status))
+ ERR_IF_FAIL(offset1 != SToffset)
+ ERR_IF_FAIL(offset2 != SToffset)
+ ERR_IF_FAIL(offset3 != SToffset)
+ ERR_IF_FAIL(offset4 != DToffset)
+ ERR_IF_FAIL(offset5 != DToffset)
+ ERR_IF_FAIL(offset6 != SToffset)
+ ERR_IF_FAIL(offset5a != DToffset)
+ ERR_IF_FAIL(offset6a != DToffset)
+ ERR_IF_FAIL(offset7 != SToffset)
+ ERR_IF_FAIL(offset8 != SToffset)
+
+#undef ERR_IF_FAIL
delete tz;
}
@@ -871,16 +884,16 @@ TimeZoneRegressionTest::Test4162593()
// Must construct the Date object AFTER setting the default zone
int32_t *p = (int32_t*)DATA_INT[j];
UDate d = CalendarRegressionTest::makeDate(p[0], p[1], p[2], p[3], p[4]);
- UBool transitionExpected = DATA_BOOL[j];
+ UBool transitionExpected = DATA_BOOL[j];
UnicodeString temp;
logln(tz->getID(temp) + ":");
for (int32_t i = 0; i < 4; ++i) {
FieldPosition pos(0);
zone[i].remove();
- zone[i] = fmt->format(d, zone[i], pos);
+ zone[i] = fmt->format(d+ i*ONE_HOUR, zone[i], pos);
logln(UnicodeString("") + i + ": " + d + " / " + zone[i]);
- d += (double) ONE_HOUR;
+ //d += (double) ONE_HOUR;
}
if(zone[0] == zone[1] &&
(zone[1] == zone[2]) != transitionExpected &&
@@ -896,6 +909,74 @@ TimeZoneRegressionTest::Test4162593()
delete DATA_TZ[0];
}
+ /**
+ * getDisplayName doesn't work with unusual savings/offsets.
+ */
+void TimeZoneRegressionTest::Test4176686() {
+ // Construct a zone that does not observe DST but
+ // that does have a DST savings (which should be ignored).
+ UErrorCode status = U_ZERO_ERROR;
+ int32_t offset = 90 * 60000; // 1:30
+ SimpleTimeZone* z1 = new SimpleTimeZone(offset, "_std_zone_");
+ z1->setDSTSavings(45 * 60000, status); // 0:45
+
+ // Construct a zone that observes DST for the first 6 months.
+ SimpleTimeZone* z2 = new SimpleTimeZone(offset, "_dst_zone_");
+ z2->setDSTSavings(45 * 60000, status); // 0:45
+ z2->setStartRule(UCAL_JANUARY, 1, 0, status);
+ z2->setEndRule(UCAL_JULY, 1, 0, status);
+
+ // Also check DateFormat
+ DateFormat* fmt1 = new SimpleDateFormat(UnicodeString("z"), status);
+ if(!assertSuccess("trying to construct", status))return;
+ fmt1->setTimeZone(*z1); // Format uses standard zone
+ DateFormat* fmt2 = new SimpleDateFormat(UnicodeString("z"), status);
+ if(!assertSuccess("trying to construct", status))return;
+ fmt2->setTimeZone(*z2); // Format uses DST zone
+ Calendar* tempcal = Calendar::createInstance(status);
+ tempcal->clear();
+ tempcal->set(1970, UCAL_FEBRUARY, 1);
+ UDate dst = tempcal->getTime(status); // Time in DST
+ tempcal->set(1970, UCAL_AUGUST, 1);
+ UDate std = tempcal->getTime(status); // Time in standard
+
+ // Description, Result, Expected Result
+ UnicodeString a,b,c,d,e,f,g,h,i,j,k,l;
+ UnicodeString DATA[] = {
+ "z1->getDisplayName(false, SHORT)/std zone",
+ z1->getDisplayName(FALSE, TimeZone::SHORT, a), "GMT+01:30",
+ "z1->getDisplayName(false, LONG)/std zone",
+ z1->getDisplayName(FALSE, TimeZone::LONG, b), "GMT+01:30",
+ "z1->getDisplayName(true, SHORT)/std zone",
+ z1->getDisplayName(TRUE, TimeZone::SHORT, c), "GMT+01:30",
+ "z1->getDisplayName(true, LONG)/std zone",
+ z1->getDisplayName(TRUE, TimeZone::LONG, d ), "GMT+01:30",
+ "z2->getDisplayName(false, SHORT)/dst zone",
+ z2->getDisplayName(FALSE, TimeZone::SHORT, e), "GMT+01:30",
+ "z2->getDisplayName(false, LONG)/dst zone",
+ z2->getDisplayName(FALSE, TimeZone::LONG, f ), "GMT+01:30",
+ "z2->getDisplayName(true, SHORT)/dst zone",
+ z2->getDisplayName(TRUE, TimeZone::SHORT, g), "GMT+02:15",
+ "z2->getDisplayName(true, LONG)/dst zone",
+ z2->getDisplayName(TRUE, TimeZone::LONG, h ), "GMT+02:15",
+ "DateFormat.format(std)/std zone", fmt1->format(std, i), "GMT+01:30",
+ "DateFormat.format(dst)/std zone", fmt1->format(dst, j), "GMT+01:30",
+ "DateFormat.format(std)/dst zone", fmt2->format(std, k), "GMT+01:30",
+ "DateFormat.format(dst)/dst zone", fmt2->format(dst, l), "GMT+02:15",
+ };
+
+ for (int32_t idx=0; idx<(int32_t)ARRAY_LENGTH(DATA); idx+=3) {
+ if (DATA[idx+1]!=(DATA[idx+2])) {
+ errln("FAIL: " + DATA[idx] + " -> " + DATA[idx+1] + ", exp " + DATA[idx+2]);
+ }
+ }
+ delete z1;
+ delete z2;
+ delete fmt1;
+ delete fmt2;
+ delete tempcal;
+}
+
/**
* Make sure setStartRule and setEndRule set the DST savings to nonzero
* if it was zero.
@@ -1034,7 +1115,7 @@ TimeZoneRegressionTest::TestJDK12API()
// verify error checking
pst->getOffset(1,
- 1997, (UCalendarDateFields)-1, 26, UCAL_SUNDAY, (2*60*60*1000), status);
+ 1997, UCAL_FIELD_COUNT+1, 26, UCAL_SUNDAY, (2*60*60*1000), status);
if(U_SUCCESS(status))
errln("FAILURE: getOffset() succeeded with -1 for month");
@@ -1050,5 +1131,76 @@ TimeZoneRegressionTest::TestJDK12API()
delete pst;
delete cst;
}
+/**
+ * SimpleTimeZone allows invalid DOM values.
+ */
+void TimeZoneRegressionTest::Test4184229() {
+ SimpleTimeZone* zone = NULL;
+ UErrorCode status = U_ZERO_ERROR;
+ zone = new SimpleTimeZone(0, "A", 0, -1, 0, 0, 0, 0, 0, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 startDay");
+ }else{
+ logln("(a) " + UnicodeString( u_errorName(status)));
+ }
+ status = U_ZERO_ERROR;
+ delete zone;
+
+ zone = new SimpleTimeZone(0, "A", 0, 0, 0, 0, 0, -1, 0, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 endDay");
+ }else{
+ logln("(b) " + UnicodeString(u_errorName(status)));
+ }
+ status = U_ZERO_ERROR;
+ delete zone;
+
+ zone = new SimpleTimeZone(0, "A", 0, -1, 0, 0, 0, 0, 0, 1000, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 startDay+savings");
+ }else{
+ logln("(c) " + UnicodeString(u_errorName(status)));
+ }
+ status = U_ZERO_ERROR;
+ delete zone;
+ zone = new SimpleTimeZone(0, "A", 0, 0, 0, 0, 0, -1, 0, 0, 1000, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 endDay+ savings");
+ }else{
+ logln("(d) " + UnicodeString(u_errorName(status)));
+ }
+ status = U_ZERO_ERROR;
+ delete zone;
+ // Make a valid constructor call for subsequent tests.
+ zone = new SimpleTimeZone(0, "A", 0, 1, 0, 0, 0, 1, 0, 0, status);
+
+ zone->setStartRule(0, -1, 0, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 setStartRule +savings");
+ } else{
+ logln("(e) " + UnicodeString(u_errorName(status)));
+ }
+ zone->setStartRule(0, -1, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 setStartRule");
+ } else{
+ logln("(f) " + UnicodeString(u_errorName(status)));
+ }
+
+ zone->setEndRule(0, -1, 0, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 setEndRule+savings");
+ } else{
+ logln("(g) " + UnicodeString(u_errorName(status)));
+ }
+
+ zone->setEndRule(0, -1, 0, status);
+ if(U_SUCCESS(status)){
+ errln("Failed. No exception has been thrown for DOM -1 setEndRule");
+ } else{
+ logln("(h) " + UnicodeString(u_errorName(status)));
+ }
+ delete zone;
+}
#endif /* #if !UCONFIG_NO_FORMATTING */
diff --git a/Build/source/libs/icu-xetex/test/intltest/tzregts.h b/Build/source/libs/icu-xetex/test/intltest/tzregts.h
index 5fefadb7476..6b5500c953e 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tzregts.h
+++ b/Build/source/libs/icu-xetex/test/intltest/tzregts.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1998-2001, International Business Machines Corporation and
+ * Copyright (c) 1998-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -41,10 +41,11 @@ public:
void Test4154650(void);
void Test4154525(void);
void Test4162593(void);
+ void Test4176686(void);
void TestJ186(void);
void TestJ449(void);
void TestJDK12API(void);
-
+ void Test4184229(void);
UBool checkCalendar314(GregorianCalendar *testCal, TimeZone *testTZ);
diff --git a/Build/source/libs/icu-xetex/test/intltest/tztest.cpp b/Build/source/libs/icu-xetex/test/intltest/tztest.cpp
index ee081d85a98..0ad49421b3a 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tztest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/tztest.cpp
@@ -1,6 +1,6 @@
/***********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation
+ * Copyright (c) 1997-2006, International Business Machines Corporation
* and others. All Rights Reserved.
***********************************************************************/
@@ -47,6 +47,8 @@ void TimeZoneTest::runIndexedTest( int32_t index, UBool exec, const char* &name,
CASE(10,TestCountries);
CASE(11,TestHistorical);
CASE(12,TestEquivalentIDs);
+ CASE(13, TestAliasedNames);
+ CASE(14, TestFractionalDST);
default: name = ""; break;
}
}
@@ -579,7 +581,7 @@ void TimeZoneTest::TestShortZoneIDs()
{"PNT", -420, FALSE},
{"MST", -420, FALSE}, // updated Aug 2003 aliu
{"CST", -360, TRUE},
- {"IET", -300, FALSE},
+ {"IET", -300, TRUE}, // updated Jan 2006 srl
{"EST", -300, FALSE}, // updated Aug 2003 aliu
{"PRT", -240, FALSE},
{"CNT", -210, TRUE},
@@ -775,7 +777,7 @@ void TimeZoneTest::TestCustomParse()
kData[] =
{
// ID Expected offset in minutes
- //"GMT", kUnparseable, Isn't custom. Can't test it here. [returns normal GMT]
+ //{"GMT", kUnparseable}, //Isn't custom. Can't test it here. [returns normal GMT]
{"GMT-YOUR.AD.HERE", kUnparseable},
// {"GMT0", kUnparseable}, // ICU 2.8: An Olson zone ID
// {"GMT+0", (0)}, // ICU 2.8: An Olson zone ID
@@ -864,6 +866,185 @@ void TimeZoneTest::TestCustomParse()
}
}
+static const UVersionInfo ICU_37 = {3,7,0,0};
+
+void
+TimeZoneTest::TestAliasedNames()
+{
+ struct {
+ const char *from;
+ const char *to;
+ } kData[] = {
+ /* Generated by org.unicode.cldr.tool.CountItems */
+
+ /* zoneID, canonical zoneID */
+ {"Africa/Timbuktu", "Africa/Bamako"},
+ {"America/Argentina/Buenos_Aires", "America/Buenos_Aires"},
+ {"America/Argentina/Catamarca", "America/Catamarca"},
+ {"America/Argentina/ComodRivadavia", "America/Catamarca"},
+ {"America/Argentina/Cordoba", "America/Cordoba"},
+ {"America/Argentina/Jujuy", "America/Jujuy"},
+ {"America/Argentina/Mendoza", "America/Mendoza"},
+ {"America/Atka", "America/Adak"},
+ {"America/Ensenada", "America/Tijuana"},
+ {"America/Fort_Wayne", "America/Indiana/Indianapolis"},
+ {"America/Indianapolis", "America/Indiana/Indianapolis"},
+ {"America/Knox_IN", "America/Indiana/Knox"},
+ {"America/Louisville", "America/Kentucky/Louisville"},
+ {"America/Porto_Acre", "America/Rio_Branco"},
+ {"America/Rosario", "America/Cordoba"},
+ {"America/Virgin", "America/St_Thomas"},
+ {"Asia/Ashkhabad", "Asia/Ashgabat"},
+ {"Asia/Chungking", "Asia/Chongqing"},
+ {"Asia/Dacca", "Asia/Dhaka"},
+ {"Asia/Istanbul", "Europe/Istanbul"},
+ {"Asia/Macao", "Asia/Macau"},
+ {"Asia/Tel_Aviv", "Asia/Jerusalem"},
+ {"Asia/Thimbu", "Asia/Thimphu"},
+ {"Asia/Ujung_Pandang", "Asia/Makassar"},
+ {"Asia/Ulan_Bator", "Asia/Ulaanbaatar"},
+ {"Australia/ACT", "Australia/Sydney"},
+ {"Australia/Canberra", "Australia/Sydney"},
+ {"Australia/LHI", "Australia/Lord_Howe"},
+ {"Australia/NSW", "Australia/Sydney"},
+ {"Australia/North", "Australia/Darwin"},
+ {"Australia/Queensland", "Australia/Brisbane"},
+ {"Australia/South", "Australia/Adelaide"},
+ {"Australia/Tasmania", "Australia/Hobart"},
+ {"Australia/Victoria", "Australia/Melbourne"},
+ {"Australia/West", "Australia/Perth"},
+ {"Australia/Yancowinna", "Australia/Broken_Hill"},
+ {"Brazil/Acre", "America/Rio_Branco"},
+ {"Brazil/DeNoronha", "America/Noronha"},
+ {"Brazil/East", "America/Sao_Paulo"},
+ {"Brazil/West", "America/Manaus"},
+ {"Canada/Atlantic", "America/Halifax"},
+ {"Canada/Central", "America/Winnipeg"},
+ {"Canada/East-Saskatchewan", "America/Regina"},
+ {"Canada/Eastern", "America/Toronto"},
+ {"Canada/Mountain", "America/Edmonton"},
+ {"Canada/Newfoundland", "America/St_Johns"},
+ {"Canada/Pacific", "America/Vancouver"},
+ {"Canada/Saskatchewan", "America/Regina"},
+ {"Canada/Yukon", "America/Whitehorse"},
+ {"Chile/Continental", "America/Santiago"},
+ {"Chile/EasterIsland", "Pacific/Easter"},
+ {"Cuba", "America/Havana"},
+ {"Egypt", "Africa/Cairo"},
+ {"Eire", "Europe/Dublin"},
+ {"Etc/GMT+0", "Etc/GMT"},
+ {"Etc/GMT-0", "Etc/GMT"},
+ {"Etc/GMT0", "Etc/GMT"},
+ {"Etc/Greenwich", "Etc/GMT"},
+ {"Etc/UCT", "Etc/GMT"},
+ {"Etc/UTC", "Etc/GMT"},
+ {"Etc/Universal", "Etc/GMT"},
+ {"Etc/Zulu", "Etc/GMT"},
+ {"Europe/Belfast", "Europe/London"},
+ {"Europe/Nicosia", "Asia/Nicosia"},
+ {"Europe/Tiraspol", "Europe/Chisinau"},
+ {"GB", "Europe/London"},
+ {"GB-Eire", "Europe/London"},
+ {"GMT", "Etc/GMT"},
+ {"GMT+0", "Etc/GMT"},
+ {"GMT-0", "Etc/GMT"},
+ {"GMT0", "Etc/GMT"},
+ {"Greenwich", "Etc/GMT"},
+ {"Hongkong", "Asia/Hong_Kong"},
+ {"Iceland", "Atlantic/Reykjavik"},
+ {"Iran", "Asia/Tehran"},
+ {"Israel", "Asia/Jerusalem"},
+ {"Jamaica", "America/Jamaica"},
+ {"Japan", "Asia/Tokyo"},
+ {"Kwajalein", "Pacific/Kwajalein"},
+ {"Libya", "Africa/Tripoli"},
+ {"Mexico/BajaNorte", "America/Tijuana"},
+ {"Mexico/BajaSur", "America/Mazatlan"},
+ {"Mexico/General", "America/Mexico_City"},
+ {"NZ", "Pacific/Auckland"},
+ {"NZ-CHAT", "Pacific/Chatham"},
+ {"Navajo", "America/Shiprock"},
+ {"PRC", "Asia/Shanghai"},
+ {"Pacific/Samoa", "Pacific/Pago_Pago"},
+ {"Pacific/Yap", "Pacific/Truk"},
+ {"Poland", "Europe/Warsaw"},
+ {"Portugal", "Europe/Lisbon"},
+ {"ROC", "Asia/Taipei"},
+ {"ROK", "Asia/Seoul"},
+ {"Singapore", "Asia/Singapore"},
+ {"Turkey", "Europe/Istanbul"},
+ {"UCT", "Etc/GMT"},
+ {"US/Alaska", "America/Anchorage"},
+ {"US/Aleutian", "America/Adak"},
+ {"US/Arizona", "America/Phoenix"},
+ {"US/Central", "America/Chicago"},
+ {"US/East-Indiana", "America/Indiana/Indianapolis"},
+ {"US/Eastern", "America/New_York"},
+ {"US/Hawaii", "Pacific/Honolulu"},
+ {"US/Indiana-Starke", "America/Indiana/Knox"},
+ {"US/Michigan", "America/Detroit"},
+ {"US/Mountain", "America/Denver"},
+ {"US/Pacific", "America/Los_Angeles"},
+ {"US/Pacific-New", "America/Los_Angeles"},
+ {"US/Samoa", "Pacific/Pago_Pago"},
+ {"UTC", "Etc/GMT"},
+ {"Universal", "Etc/GMT"},
+ {"W-SU", "Europe/Moscow"},
+ {"Zulu", "Etc/GMT"},
+ /* Total: 113 */
+
+ };
+
+ TimeZone::EDisplayType styles[] = { TimeZone::SHORT, TimeZone::LONG };
+ UBool useDst[] = { FALSE, TRUE };
+ int32_t noLoc = uloc_countAvailable();
+
+ if(isICUVersionAtLeast(ICU_37)) {
+ errln("This test needs to be fixed. This test fails in exhaustive mode because we need to implement generic timezones.\n");
+ }
+
+ int32_t i, j, k, loc;
+ UnicodeString fromName, toName;
+ TimeZone *from = NULL, *to = NULL;
+ for(i = 0; i < (int32_t)(sizeof(kData)/sizeof(kData[0])); i++) {
+ from = TimeZone::createTimeZone(kData[i].from);
+ to = TimeZone::createTimeZone(kData[i].to);
+ if(!from->hasSameRules(*to)) {
+ errln("different at %i\n", i);
+ }
+ if(!quick && isICUVersionAtLeast(ICU_37)) {
+ errln("This test needs to be fixed. This test fails in exhaustive mode because we need to implement generic timezones.\n");
+ for(loc = 0; loc < noLoc; loc++) {
+ const char* locale = uloc_getAvailable(loc);
+ for(j = 0; j < (int32_t)(sizeof(styles)/sizeof(styles[0])); j++) {
+ for(k = 0; k < (int32_t)(sizeof(useDst)/sizeof(useDst[0])); k++) {
+ fromName.remove();
+ toName.remove();
+ from->getDisplayName(useDst[k], styles[j],locale, fromName);
+ to->getDisplayName(useDst[k], styles[j], locale, toName);
+ if(fromName.compare(toName) != 0) {
+ errln("Fail: Expected "+toName+" but got " + prettify(fromName)
+ + " for locale: " + locale + " index: "+ loc
+ + " to id "+ kData[i].to
+ + " from id " + kData[i].from);
+ }
+ }
+ }
+ }
+ } else {
+ fromName.remove();
+ toName.remove();
+ from->getDisplayName(fromName);
+ to->getDisplayName(toName);
+ if(fromName.compare(toName) != 0) {
+ errln("Fail: Expected "+toName+" but got " + fromName);
+ }
+ }
+ delete from;
+ delete to;
+ }
+}
+
/**
* Test the basic functionality of the getDisplayName() API.
*
@@ -1149,6 +1330,22 @@ TimeZoneTest::TestAlternateRules()
+ (offset / U_MILLIS_PER_HOUR) + " hours.");
}
+void TimeZoneTest::TestFractionalDST() {
+ const char* tzName = "Australia/Lord_Howe"; // 30 min offset
+ TimeZone* tz_icu = TimeZone::createTimeZone(tzName);
+ int dst_icu = tz_icu->getDSTSavings();
+ UnicodeString id;
+ int32_t expected = 1800000;
+ if (expected != dst_icu) {
+ errln(UnicodeString("java reports dst savings of ") + expected +
+ " but icu reports " + dst_icu +
+ " for tz " + tz_icu->getID(id));
+ } else {
+ logln(UnicodeString("both java and icu report dst savings of ") + expected + " for tz " + tz_icu->getID(id));
+ }
+ delete tz_icu;
+}
+
/**
* Test country code support. Jitterbug 776.
*/
diff --git a/Build/source/libs/icu-xetex/test/intltest/tztest.h b/Build/source/libs/icu-xetex/test/intltest/tztest.h
index 310a304b585..6aa70343ff0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/tztest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/tztest.h
@@ -1,7 +1,7 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2003, International Business Machines Corporation and
+ * Copyright (c) 1997-2005, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -83,6 +83,10 @@ public:
void TestEquivalentIDs(void);
+ void TestAliasedNames(void);
+
+ void TestFractionalDST(void);
+
static const UDate INTERVAL;
private:
diff --git a/Build/source/libs/icu-xetex/test/intltest/ucaconf.cpp b/Build/source/libs/icu-xetex/test/intltest/ucaconf.cpp
index 9e3a3612c29..e577a805427 100644
--- a/Build/source/libs/icu-xetex/test/intltest/ucaconf.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/ucaconf.cpp
@@ -146,7 +146,7 @@ void UCAConformanceTest::openTestFile(const char *type)
"INFO: Working with the stub file.\n"
"If you need the full conformance test, please\n"
"download the appropriate data files from:\n"
- "http://oss.software.ibm.com/cvs/icu4j/unicodetools/com/ibm/text/data/");
+ "http://dev.icu-project.org/cgi-bin/viewcvs.cgi/unicodetools/com/ibm/text/data/");
}
}
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/ucdtest.cpp b/Build/source/libs/icu-xetex/test/intltest/ucdtest.cpp
index 714437f7ce6..e7195c25292 100644
--- a/Build/source/libs/icu-xetex/test/intltest/ucdtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/ucdtest.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2004, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -78,6 +78,7 @@ derivedCorePropsNames[]={
"XID_Continue",
"Default_Ignorable_Code_Point",
"Grapheme_Extend",
+ "Grapheme_Link", /* Unicode 5 moves this property here from PropList.txt */
"Grapheme_Base"
};
@@ -93,6 +94,7 @@ derivedCorePropsIndex[]={
UCHAR_XID_CONTINUE,
UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
UCHAR_GRAPHEME_EXTEND,
+ UCHAR_GRAPHEME_LINK,
UCHAR_GRAPHEME_BASE
};
diff --git a/Build/source/libs/icu-xetex/test/intltest/uobjtest.cpp b/Build/source/libs/icu-xetex/test/intltest/uobjtest.cpp
index be6784803c4..281586065c5 100644
--- a/Build/source/libs/icu-xetex/test/intltest/uobjtest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/uobjtest.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -261,7 +261,7 @@ void UObjectTest::testIDs()
#if !UCONFIG_NO_BREAK_ITERATION
/* TESTCLASSID_ABSTRACT(BreakIterator); No staticID! */
TESTCLASSID_FACTORY(RuleBasedBreakIterator, BreakIterator::createLineInstance("mt",status));
- TESTCLASSID_FACTORY(DictionaryBasedBreakIterator, BreakIterator::createLineInstance("th",status));
+ //TESTCLASSID_FACTORY(DictionaryBasedBreakIterator, BreakIterator::createLineInstance("th",status));
#endif
//TESTCLASSID_DEFAULT(EscapeTransliterator);
@@ -284,7 +284,7 @@ void UObjectTest::testIDs()
TESTCLASSID_TRANSLIT(UnicodeNameTransliterator, "Any-Name");
TESTCLASSID_TRANSLIT(UppercaseTransliterator, "Upper");
TESTCLASSID_CTOR(CaseMapTransliterator, (UnicodeString(), NULL));
- //TESTCLASSID_CTOR(Quantifier, (NULL, 0, 0));
+ TESTCLASSID_CTOR(Quantifier, (NULL, 0, 0));
#if UOBJTEST_TEST_INTERNALS
TESTCLASSID_CTOR(FunctionReplacer, (NULL,NULL) ); /* don't care */
#endif
@@ -414,6 +414,13 @@ void UObjectTest::testUMemory() {
// destroy object and delete space manually
p->~UnicodeString();
UnicodeString::operator delete(p, stackMemory);
+
+ // Jitterbug 4452, for coverage
+ UnicodeString *pa = new UnicodeString[2];
+ if ( !pa[0].isEmpty() || !pa[1].isEmpty()){
+ errln("constructor used with array new did not work right");
+ }
+ delete [] pa;
#endif
// try to call the compiler-generated UMemory::operator=(class UMemory const &)
@@ -429,7 +436,7 @@ void UObjectTest::TestMFCCompatibility() {
if(str->charAt(0) != 0x0040) {
errln("debug new doesn't work.");
}
- delete str;
+ UnicodeString::operator delete(str, __FILE__, __LINE__);
#endif
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/usettest.cpp b/Build/source/libs/icu-xetex/test/intltest/usettest.cpp
index d2ea4b488af..6a0a2f08f20 100644
--- a/Build/source/libs/icu-xetex/test/intltest/usettest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/usettest.cpp
@@ -1,6 +1,6 @@
/*
**************************************************************************************
-* Copyright (C) 1999-2005 Alan Liu ,International Business Machines Corporation and
+* Copyright (C) 1999-2006 International Business Machines Corporation and
* others. All Rights Reserved.
**************************************************************************************
* Date Name Description
@@ -68,6 +68,7 @@ UnicodeSetTest::runIndexedTest(int32_t index, UBool exec,
CASE(17,TestSymbolTable);
CASE(18,TestSurrogate);
CASE(19,TestPosixClasses);
+ CASE(20,TestIteration);
default: name = ""; break;
}
}
@@ -674,6 +675,87 @@ void UnicodeSetTest::TestAPI() {
}
}
+void UnicodeSetTest::TestIteration() {
+ UErrorCode ec = U_ZERO_ERROR;
+ int i = 0;
+ int outerLoop;
+
+ // 6 code points, 3 ranges, 2 strings, 8 total elements
+ // Iteration will access them in sorted order - a, b, c, y, z, U0001abcd, "str1", "str2"
+ UnicodeSet set("[zabyc\\U0001abcd{str1}{str2}]", ec);
+ TEST_ASSERT_SUCCESS(ec);
+ UnicodeSetIterator it(set);
+
+ for (outerLoop=0; outerLoop<3; outerLoop++) {
+ // Run the test multiple times, to check that iterator.reset() is working.
+ for (i=0; i<10; i++) {
+ UBool nextv = it.next();
+ UBool isString = it.isString();
+ int32_t codePoint = it.getCodepoint();
+ //int32_t codePointEnd = it.getCodepointEnd();
+ UnicodeString s = it.getString();
+ switch (i) {
+ case 0:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x61);
+ TEST_ASSERT(s == "a");
+ break;
+ case 1:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x62);
+ TEST_ASSERT(s == "b");
+ break;
+ case 2:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x63);
+ TEST_ASSERT(s == "c");
+ break;
+ case 3:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x79);
+ TEST_ASSERT(s == "y");
+ break;
+ case 4:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x7a);
+ TEST_ASSERT(s == "z");
+ break;
+ case 5:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == FALSE);
+ TEST_ASSERT(codePoint==0x1abcd);
+ TEST_ASSERT(s == UnicodeString((UChar32)0x1abcd));
+ break;
+ case 6:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == TRUE);
+ TEST_ASSERT(s == "str1");
+ break;
+ case 7:
+ TEST_ASSERT(nextv == TRUE);
+ TEST_ASSERT(isString == TRUE);
+ TEST_ASSERT(s == "str2");
+ break;
+ case 8:
+ TEST_ASSERT(nextv == FALSE);
+ break;
+ case 9:
+ TEST_ASSERT(nextv == FALSE);
+ break;
+ }
+ }
+ it.reset(); // prepare to run the iteration again.
+ }
+}
+
+
+
+
void UnicodeSetTest::TestStrings() {
UErrorCode ec = U_ZERO_ERROR;
@@ -1040,7 +1122,7 @@ void UnicodeSetTest::TestIndexOf() {
void UnicodeSetTest::TestCloseOver() {
UErrorCode ec = U_ZERO_ERROR;
- char CASE[] = {(char)USET_CASE};
+ char CASE[] = {(char)USET_CASE_INSENSITIVE};
char CASE_MAPPINGS[] = {(char)USET_ADD_CASE_MAPPINGS};
const char* DATA[] = {
// selector, input, output
diff --git a/Build/source/libs/icu-xetex/test/intltest/usettest.h b/Build/source/libs/icu-xetex/test/intltest/usettest.h
index 0d496228c3b..f5c253872b0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/usettest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/usettest.h
@@ -1,7 +1,7 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 1997-2005, International Business Machines Corporation and
+ * Copyright (c) 1997-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************
**********************************************************************
@@ -47,6 +47,8 @@ private:
void TestAPI(void);
+ void TestIteration(void);
+
void TestStrings(void);
void TestScriptSet(void);
diff --git a/Build/source/libs/icu-xetex/test/intltest/utxttest.cpp b/Build/source/libs/icu-xetex/test/intltest/utxttest.cpp
index 796e4c6a477..da6a4afb400 100644
--- a/Build/source/libs/icu-xetex/test/intltest/utxttest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/utxttest.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2005, International Business Machines Corporation and
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -16,20 +16,23 @@
#include <unicode/utext.h>
#include <unicode/utf8.h>
#include <unicode/ustring.h>
+#include <unicode/uchriter.h>
#include "utxttest.h"
static UBool gFailed = FALSE;
static int gTestNum = 0;
+// Forward decl
+UText *openFragmentedUnicodeString(UText *ut, UnicodeString *s, UErrorCode *status);
#define TEST_ASSERT(x) \
-{if ((x)==FALSE) {errln("Test #%d failure in file %s at line %d\n", gTestNum, __FILE__, __LINE__);\
+{ if ((x)==FALSE) {errln("Test #%d failure in file %s at line %d\n", gTestNum, __FILE__, __LINE__);\
gFailed = TRUE;\
}}
#define TEST_SUCCESS(status) \
-{if (U_FAILURE(status)) {errln("Test #%d failure in file %s at line %d. Error = \"%s\"\n", \
+{ if (U_FAILURE(status)) {errln("Test #%d failure in file %s at line %d. Error = \"%s\"\n", \
gTestNum, __FILE__, __LINE__, u_errorName(status)); \
gFailed = TRUE;\
}}
@@ -49,6 +52,8 @@ UTextTest::runIndexedTest(int32_t index, UBool exec,
if (exec) TextTest(); break;
case 1: name = "ErrorTest";
if (exec) ErrorTest(); break;
+ case 2: name = "FreezeTest";
+ if (exec) FreezeTest(); break;
default: name = ""; break;
}
}
@@ -221,6 +226,25 @@ void UTextTest::TestString(const UnicodeString &s) {
TestCMR(sa, ut, cpCount, cpMap, cpMap);
utext_close(ut);
+ // Character Iterator Tests
+ status = U_ZERO_ERROR;
+ const UChar *cbuf = sa.getBuffer();
+ CharacterIterator *ci = new UCharCharacterIterator(cbuf, saLen, status);
+ TEST_SUCCESS(status);
+ ut = utext_openCharacterIterator(NULL, ci, &status);
+ TEST_SUCCESS(status);
+ TestAccess(sa, ut, cpCount, cpMap);
+ utext_close(ut);
+ delete ci;
+
+
+ // Fragmented UnicodeString (Chunk size of one)
+ //
+ status = U_ZERO_ERROR;
+ ut = openFragmentedUnicodeString(NULL, &sa, &status);
+ TEST_SUCCESS(status);
+ TestAccess(sa, ut, cpCount, cpMap);
+ utext_close(ut);
//
// UTF-8 test
@@ -385,7 +409,7 @@ void UTextTest::TestCopyMove(const UnicodeString &us, UText *ut, UBool move,
// clone the UText. The test will be run in the cloned copy
// so that we don't alter the original.
//
- targetUT = utext_clone(NULL, ut, TRUE, &status);
+ targetUT = utext_clone(NULL, ut, TRUE, FALSE, &status);
TEST_SUCCESS(status);
UnicodeString targetUS(us); // And copy the reference string.
@@ -410,7 +434,7 @@ void UTextTest::TestCopyMove(const UnicodeString &us, UText *ut, UBool move,
// Compare the results of the two parallel tests
int32_t usi = 0; // UnicodeString postion, utf-16 index.
- int32_t uti = 0; // UText position, native index.
+ int64_t uti = 0; // UText position, native index.
int32_t cpi; // char32 position (code point index)
UChar32 usc; // code point from Unicode String
UChar32 utc; // code point from UText
@@ -429,7 +453,7 @@ void UTextTest::TestCopyMove(const UnicodeString &us, UText *ut, UBool move,
goto cleanupAndReturn;
}
}
- int32_t expectedNativeLength = utext_nativeLength(ut);
+ int64_t expectedNativeLength = utext_nativeLength(ut);
if (move == FALSE) {
expectedNativeLength += nativeLimit - nativeStart;
}
@@ -463,7 +487,7 @@ void UTextTest::TestReplace(
// clone the target UText. The test will be run in the cloned copy
// so that we don't alter the original.
//
- targetUT = utext_clone(NULL, ut, TRUE, &status);
+ targetUT = utext_clone(NULL, ut, TRUE, FALSE, &status);
TEST_SUCCESS(status);
UnicodeString targetUS(us); // And copy the reference string.
@@ -486,11 +510,11 @@ void UTextTest::TestReplace(
// Compare the results
//
int32_t usi = 0; // UnicodeString postion, utf-16 index.
- int32_t uti = 0; // UText position, native index.
+ int64_t uti = 0; // UText position, native index.
int32_t cpi; // char32 position (code point index)
UChar32 usc; // code point from Unicode String
UChar32 utc; // code point from UText
- int32_t expectedNativeLength = 0;
+ int64_t expectedNativeLength = 0;
utext_setNativeIndex(targetUT, 0);
for (cpi=0; ; cpi++) {
usc = targetUS.char32At(usi);
@@ -526,8 +550,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
//
// Check the length from the UText
//
- int expectedLen = cpMap[cpCount].nativeIdx;
- int utlen = ut->nativeLength(ut);
+ int64_t expectedLen = cpMap[cpCount].nativeIdx;
+ int64_t utlen = utext_nativeLength(ut);
TEST_ASSERT(expectedLen == utlen);
//
@@ -535,12 +559,12 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
// at the correct native offsets.
//
int i = 0;
- int index;
- int expectedIndex = 0;
- int foundIndex = 0;
+ int64_t index;
+ int64_t expectedIndex = 0;
+ int64_t foundIndex = 0;
UChar32 expectedC;
UChar32 foundC;
- int32_t len;
+ int64_t len;
for (i=0; i<cpCount; i++) {
expectedIndex = cpMap[i].nativeIdx;
@@ -549,6 +573,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedC = cpMap[i].cp;
foundC = utext_next32(ut);
TEST_ASSERT(expectedC == foundC);
+ foundIndex = utext_getPreviousNativeIndex(ut);
+ TEST_ASSERT(expectedIndex == foundIndex);
if (gFailed) {
return;
}
@@ -560,7 +586,7 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
utext_setNativeIndex(ut, 0);
for (i=0; i<cpCount; i++) {
expectedIndex = cpMap[i].nativeIdx;
- foundIndex = utext_getNativeIndex(ut);
+ foundIndex = UTEXT_GETNATIVEINDEX(ut);
TEST_ASSERT(expectedIndex == foundIndex);
expectedC = cpMap[i].cp;
foundC = UTEXT_NEXT32(ut);
@@ -569,7 +595,7 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
return;
}
}
- foundC = utext_next32(ut);
+ foundC = UTEXT_NEXT32(ut);
TEST_ASSERT(foundC == U_SENTINEL);
//
@@ -588,10 +614,12 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
for (i=cpCount-1; i>=0; i--) {
expectedC = cpMap[i].cp;
expectedIndex = cpMap[i].nativeIdx;
+ int64_t prevIndex = utext_getPreviousNativeIndex(ut);
foundC = utext_previous32(ut);
foundIndex = utext_getNativeIndex(ut);
TEST_ASSERT(expectedIndex == foundIndex);
TEST_ASSERT(expectedC == foundC);
+ TEST_ASSERT(prevIndex == foundIndex);
if (gFailed) {
return;
}
@@ -603,11 +631,16 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
//
foundIndex = utext_getNativeIndex(ut);
TEST_ASSERT(foundIndex == 0);
+ foundIndex = utext_getPreviousNativeIndex(ut);
+ TEST_ASSERT(foundIndex == 0);
+
foundC = utext_previous32(ut);
TEST_ASSERT(foundC == U_SENTINEL);
foundIndex = utext_getNativeIndex(ut);
TEST_ASSERT(foundIndex == 0);
+ foundIndex = utext_getPreviousNativeIndex(ut);
+ TEST_ASSERT(foundIndex == 0);
// And again, with the macros
@@ -616,7 +649,7 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedC = cpMap[i].cp;
expectedIndex = cpMap[i].nativeIdx;
foundC = UTEXT_PREVIOUS32(ut);
- foundIndex = utext_getNativeIndex(ut);
+ foundIndex = UTEXT_GETNATIVEINDEX(ut);
TEST_ASSERT(expectedIndex == foundIndex);
TEST_ASSERT(expectedC == foundC);
if (gFailed) {
@@ -628,12 +661,12 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
// Backwards iteration, above, should have left our iterator
// position at zero, and continued backwards iterationshould fail.
//
- foundIndex = utext_getNativeIndex(ut);
+ foundIndex = UTEXT_GETNATIVEINDEX(ut);
TEST_ASSERT(foundIndex == 0);
- foundC = utext_previous32(ut);
+ foundC = UTEXT_PREVIOUS32(ut);
TEST_ASSERT(foundC == U_SENTINEL);
- foundIndex = utext_getNativeIndex(ut);
+ foundIndex = UTEXT_GETNATIVEINDEX(ut);
TEST_ASSERT(foundIndex == 0);
if (gFailed) {
return;
@@ -649,7 +682,6 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedC = cpMap[cpIndex].cp;
foundC = utext_next32From(ut, index);
TEST_ASSERT(expectedC == foundC);
- TEST_ASSERT(expectedIndex == foundIndex);
if (gFailed) {
return;
}
@@ -662,7 +694,6 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedC = cpMap[cpIndex].cp;
foundC = utext_previous32From(ut, index);
TEST_ASSERT(expectedC == foundC);
- TEST_ASSERT(expectedIndex == foundIndex);
if (gFailed) {
return;
}
@@ -680,6 +711,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
index = utext_getNativeIndex(ut);
expectedIndex = cpMap[i].nativeIdx;
TEST_ASSERT(expectedIndex == index);
+ index = UTEXT_GETNATIVEINDEX(ut);
+ TEST_ASSERT(expectedIndex == index);
}
// Walk through frontwards, incrementing by two
@@ -689,6 +722,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
index = utext_getNativeIndex(ut);
expectedIndex = cpMap[i].nativeIdx;
TEST_ASSERT(expectedIndex == index);
+ index = UTEXT_GETNATIVEINDEX(ut);
+ TEST_ASSERT(expectedIndex == index);
}
// walk through the string backwards, decrementing by one.
@@ -698,6 +733,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedIndex = cpMap[i].nativeIdx;
index = utext_getNativeIndex(ut);
TEST_ASSERT(expectedIndex == index);
+ index = UTEXT_GETNATIVEINDEX(ut);
+ TEST_ASSERT(expectedIndex == index);
utext_moveIndex32(ut, -1);
}
@@ -709,6 +746,8 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
expectedIndex = cpMap[i].nativeIdx;
index = utext_getNativeIndex(ut);
TEST_ASSERT(expectedIndex == index);
+ index = UTEXT_GETNATIVEINDEX(ut);
+ TEST_ASSERT(expectedIndex == index);
utext_moveIndex32(ut, -3);
}
@@ -742,7 +781,12 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
TEST_SUCCESS(status);
TEST_ASSERT(buf[0] == 0);
} else {
- TEST_ASSERT(buf[0] == us.charAt(0));
+ // Buf len == 1, extracting a single 16 bit value.
+ // If the data char is supplementary, it doesn't matter whether the buffer remains unchanged,
+ // or whether the lead surrogate of the pair is extracted.
+ // It's a buffer overflow error in either case.
+ TEST_ASSERT(buf[0] == us.charAt(0) ||
+ buf[0] == 0x5555 && U_IS_SUPPLEMENTARY(us.char32At(0)));
TEST_ASSERT(buf[1] == 0x5555);
if (us.length() == 1) {
TEST_ASSERT(status == U_STRING_NOT_TERMINATED_WARNING);
@@ -751,7 +795,7 @@ void UTextTest::TestAccess(const UnicodeString &us, UText *ut, int cpCount, m *c
}
}
- delete buf;
+ delete []buf;
}
@@ -878,7 +922,7 @@ void UTextTest::ErrorTest()
TEST_SUCCESS(status);
isExpensive = utext_isLengthExpensive(utb);
TEST_ASSERT(isExpensive == TRUE);
- int32_t len = utext_nativeLength(utb);
+ int64_t len = utext_nativeLength(utb);
TEST_ASSERT(len == 99);
isExpensive = utext_isLengthExpensive(utb);
TEST_ASSERT(isExpensive == FALSE);
@@ -910,7 +954,9 @@ void UTextTest::ErrorTest()
int32_t startMapLimit = sizeof(startMap) / sizeof(int32_t);
for (i=0; i<startMapLimit; i++) {
utext_setNativeIndex(ut, i);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
+ TEST_ASSERT(cpIndex == startMap[i]);
+ cpIndex = UTEXT_GETNATIVEINDEX(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -918,7 +964,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_char32At(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -926,15 +972,16 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_next32From(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == nextMap[i]);
}
// check utext_previous32From
for (i=0; i<startMapLimit; i++) {
+ gTestNum++;
UChar32 c32 = utext_previous32From(ut, i);
TEST_ASSERT(c32 == pr32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == prevMap[i]);
}
@@ -978,7 +1025,7 @@ void UTextTest::ErrorTest()
int i;
for (i=0; i<startMapLimit; i++) {
utext_setNativeIndex(ut, i);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -986,7 +1033,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_char32At(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -994,7 +1041,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_next32From(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == nextMap[i]);
}
@@ -1002,7 +1049,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_previous32From(ut, i);
TEST_ASSERT(c32 == pr32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == prevMap[i]);
}
@@ -1045,7 +1092,7 @@ void UTextTest::ErrorTest()
int i;
for (i=0; i<startMapLimit; i++) {
utext_setNativeIndex(ut, i);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -1053,7 +1100,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_char32At(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == startMap[i]);
}
@@ -1061,7 +1108,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_next32From(ut, i);
TEST_ASSERT(c32 == c32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == nextMap[i]);
}
@@ -1069,7 +1116,7 @@ void UTextTest::ErrorTest()
for (i=0; i<startMapLimit; i++) {
UChar32 c32 = utext_previous32From(ut, i);
TEST_ASSERT(c32 == pr32Map[i]);
- int32_t cpIndex = utext_getNativeIndex(ut);
+ int64_t cpIndex = utext_getNativeIndex(ut);
TEST_ASSERT(cpIndex == prevMap[i]);
}
@@ -1091,8 +1138,165 @@ void UTextTest::ErrorTest()
utext_close(ut);
}
+}
+
+
+void UTextTest::FreezeTest() {
+ // Check isWritable() and freeze() behavior.
+ //
+
+ UnicodeString ustr("Hello, World.");
+ const char u8str[] = {char(0x31), (char)0x32, (char)0x33, 0};
+ const UChar u16str[] = {(UChar)0x31, (UChar)0x32, (UChar)0x44, 0};
+
+ UErrorCode status = U_ZERO_ERROR;
+ UText *ut = NULL;
+ UText *ut2 = NULL;
+
+ ut = utext_openUTF8(ut, u8str, -1, &status);
+ TEST_SUCCESS(status);
+ UBool writable = utext_isWritable(ut);
+ TEST_ASSERT(writable == FALSE);
+ utext_copy(ut, 1, 2, 0, TRUE, &status);
+ TEST_ASSERT(status == U_NO_WRITE_PERMISSION);
+
+ status = U_ZERO_ERROR;
+ ut = utext_openUChars(ut, u16str, -1, &status);
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut);
+ TEST_ASSERT(writable == FALSE);
+ utext_copy(ut, 1, 2, 0, TRUE, &status);
+ TEST_ASSERT(status == U_NO_WRITE_PERMISSION);
+
+ status = U_ZERO_ERROR;
+ ut = utext_openUnicodeString(ut, &ustr, &status);
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut);
+ TEST_ASSERT(writable == TRUE);
+ utext_freeze(ut);
+ writable = utext_isWritable(ut);
+ TEST_ASSERT(writable == FALSE);
+ utext_copy(ut, 1, 2, 0, TRUE, &status);
+ TEST_ASSERT(status == U_NO_WRITE_PERMISSION);
+
+ status = U_ZERO_ERROR;
+ ut = utext_openUnicodeString(ut, &ustr, &status);
+ TEST_SUCCESS(status);
+ ut2 = utext_clone(ut2, ut, FALSE, FALSE, &status); // clone with readonly = false
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut2);
+ TEST_ASSERT(writable == TRUE);
+ ut2 = utext_clone(ut2, ut, FALSE, TRUE, &status); // clone with readonly = true
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut2);
+ TEST_ASSERT(writable == FALSE);
+ utext_copy(ut2, 1, 2, 0, TRUE, &status);
+ TEST_ASSERT(status == U_NO_WRITE_PERMISSION);
+
+ status = U_ZERO_ERROR;
+ ut = utext_openConstUnicodeString(ut, (const UnicodeString *)&ustr, &status);
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut);
+ TEST_ASSERT(writable == FALSE);
+ utext_copy(ut, 1, 2, 0, TRUE, &status);
+ TEST_ASSERT(status == U_NO_WRITE_PERMISSION);
+
+ // Deep Clone of a frozen UText should re-enable writing in the copy.
+ status = U_ZERO_ERROR;
+ ut = utext_openUnicodeString(ut, &ustr, &status);
+ TEST_SUCCESS(status);
+ utext_freeze(ut);
+ ut2 = utext_clone(ut2, ut, TRUE, FALSE, &status); // deep clone
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut2);
+ TEST_ASSERT(writable == TRUE);
+
+
+ // Deep clone of a frozen UText, where the base type is intrinsically non-writable,
+ // should NOT enable writing in the copy.
+ status = U_ZERO_ERROR;
+ ut = utext_openUChars(ut, u16str, -1, &status);
+ TEST_SUCCESS(status);
+ utext_freeze(ut);
+ ut2 = utext_clone(ut2, ut, TRUE, FALSE, &status); // deep clone
+ TEST_SUCCESS(status);
+ writable = utext_isWritable(ut2);
+ TEST_ASSERT(writable == FALSE);
+
+ // cleanup
+ utext_close(ut);
+ utext_close(ut2);
+}
+
+
+//
+// Fragmented UText
+// A UText type that works with a chunk size of 1.
+// Intended to test for edge cases.
+// Input comes from a UnicodeString.
+//
+// ut.b the character. Put into both halves.
+//
+
+U_CDECL_BEGIN
+static UBool U_CALLCONV
+fragTextAccess(UText *ut, int64_t index, UBool forward) {
+ const UnicodeString *us = (const UnicodeString *)ut->context;
+ UChar c;
+ int32_t length = us->length();
+ if (forward && index>=0 && index<length) {
+ c = us->charAt((int32_t)index);
+ ut->b = c | c<<16;
+ ut->chunkOffset = 0;
+ ut->chunkLength = 1;
+ ut->chunkNativeStart = index;
+ ut->chunkNativeLimit = index+1;
+ return true;
+ }
+ if (!forward && index>0 && index <=length) {
+ c = us->charAt((int32_t)index-1);
+ ut->b = c | c<<16;
+ ut->chunkOffset = 1;
+ ut->chunkLength = 1;
+ ut->chunkNativeStart = index-1;
+ ut->chunkNativeLimit = index;
+ return true;
+ }
+ ut->b = 0;
+ ut->chunkOffset = 0;
+ ut->chunkLength = 0;
+ if (index <= 0) {
+ ut->chunkNativeStart = 0;
+ ut->chunkNativeLimit = 0;
+ } else {
+ ut->chunkNativeStart = length;
+ ut->chunkNativeLimit = length;
+ }
+ return false;
+}
+U_CDECL_END
+
+// Function table to be used with this fragmented text provider.
+// Initialized in the open function.
+UTextFuncs fragmentFuncs;
+
+// Open function for the fragmented text provider.
+UText *
+openFragmentedUnicodeString(UText *ut, UnicodeString *s, UErrorCode *status) {
+ ut = utext_openUnicodeString(ut, s, status);
+ if (U_FAILURE(*status)) {
+ return ut;
+ }
+ // Copy of the function table from the stock UnicodeString UText,
+ // and replace the entry for the access function.
+ memcpy(&fragmentFuncs, ut->pFuncs, sizeof(fragmentFuncs));
+ fragmentFuncs.access = fragTextAccess;
+ ut->pFuncs = &fragmentFuncs;
+ ut->chunkContents = (UChar *)&ut->b;
+ ut->pFuncs->access(ut, 0, TRUE);
+ return ut;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/utxttest.h b/Build/source/libs/icu-xetex/test/intltest/utxttest.h
index 8cd3464db2b..9057a50c22a 100644
--- a/Build/source/libs/icu-xetex/test/intltest/utxttest.h
+++ b/Build/source/libs/icu-xetex/test/intltest/utxttest.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2005, International Business Machines Corporation and
+ * Copyright (c) 2005-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
/************************************************************************
@@ -30,6 +30,7 @@ public:
void runIndexedTest(int32_t index, UBool exec, const char* &name, char* par=NULL);
void TextTest();
void ErrorTest();
+ void FreezeTest();
private:
struct m { // Map between native indices & code points.
diff --git a/Build/source/libs/icu-xetex/test/intltest/uvectest.cpp b/Build/source/libs/icu-xetex/test/intltest/uvectest.cpp
index c061ceb9523..e73cb8fcaa0 100644
--- a/Build/source/libs/icu-xetex/test/intltest/uvectest.cpp
+++ b/Build/source/libs/icu-xetex/test/intltest/uvectest.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2004-2004, International Business Machines Corporation and
+ * Copyright (c) 2004-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -114,6 +114,11 @@ void UVectorTest::UVector_API() {
TEST_ASSERT(a->elementAti(1) == 15);
TEST_ASSERT(a->elementAti(2) == 20);
TEST_ASSERT(a->elementAti(3) == 30);
+ TEST_ASSERT(a->indexOf((int32_t)3) == -1);
+ TEST_ASSERT(a->indexOf((int32_t)15) == 1);
+ TEST_ASSERT(a->indexOf((int32_t)15, 2) == -1);
+ TEST_ASSERT(a->contains((int32_t)15));
+ TEST_ASSERT(!a->contains((int32_t)5));
delete a;
}
diff --git a/Build/source/libs/icu-xetex/test/intltest/wbnf.cpp b/Build/source/libs/icu-xetex/test/intltest/wbnf.cpp
new file mode 100644
index 00000000000..4a43a2ccbc7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/wbnf.cpp
@@ -0,0 +1,1771 @@
+/*
+ ******************************************************************************
+ * Copyright (C) 2005-2006, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ ******************************************************************************
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+
+#include "wbnf.h"
+
+// Most of this code is meant to test the test code. It's a self test.
+// Normally this isn't run.
+#define TEST_WBNF_TEST 0
+
+///////////////////////////////////////////////////////////
+//
+// Constants and the most basic helper classes
+//
+
+static const char DIGIT_CHAR[] = "0123456789";
+static const char WHITE_SPACE[] = {'\t', ' ', '\r', '\n', 0};
+static const char ALPHABET[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+static const char SPECIAL[] = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
+
+static inline UBool isInList(const char c /*in*/, const char list[] /*in*/){
+ const char * p = list;
+ for (;*p != 0 && *p != c; p++);
+ return *p?TRUE:FALSE;
+}
+static inline UBool isDigit(char c) {return isInList(c, DIGIT_CHAR);}
+static inline UBool isWhiteSpace(char c) {return isInList(c, WHITE_SPACE);}
+static inline UBool isAlphabet(char c) {return isInList(c, ALPHABET);}
+static inline UBool isSpecialAsciiChar(char c) {return isInList(c,SPECIAL);}
+
+
+
+///////////////////////////////////////////////////////////
+//
+// Helper classes
+//
+
+class Buffer_byte{
+// Utility class, can be treated as an auto expanded array. no boundary check.
+
+ typedef char byte;
+ byte * start;
+ byte * current;
+ int buffer_size; // size unit is byte
+public:
+ inline int content_size(){return current - start;} // size unit is byte
+
+private:
+ inline void expand(int add_size = 100){ // size unit is byte
+ int new_size = buffer_size + add_size;
+
+ int cs_snap = content_size();
+ start = (byte *) realloc(start, new_size); // may change the value of start
+ current = start + cs_snap;
+
+ memset(current, 0, add_size);
+ buffer_size = new_size;
+ }
+
+ inline void expand_to(int size){
+ int r = size - buffer_size;
+ if (r > 0) {
+ expand(r); // simply expand, no block alignment
+ }
+ }
+ Buffer_byte(const Buffer_byte &);
+ Buffer_byte & operator = (const Buffer_byte &);
+public:
+ Buffer_byte():start(NULL),current(start),buffer_size(0){
+ expand();
+ }
+ ~Buffer_byte(){
+ free(start);
+ }
+
+ inline void reset(){
+ start != NULL ? memset(start, 0, buffer_size) : 0;
+ current = start;
+ }
+
+ // Using memory copy method to append a C array to buffer,
+ inline void append(const void * c, int size){ // size unit is byte
+ expand_to(content_size() + size) ;
+ memcpy(current, c, size);
+ current = current + size;
+ }
+
+ byte * buffer(){
+ return start;
+ }
+};
+
+/*
+ The class(es) try to work as bulid-in array, so it overloads these two operators
+ operator type *();
+ type & operator[];
+ The first is used to auto type convert, the latter is used to select member.
+
+ A small trick is the class does not overload the address-of operator. This
+ behavior is different from bulid-in array, but it give us the opportunity
+ to get the address of the class itself.
+*/
+//template<typename type>
+// class BUFFER{
+// typedef BUFFER name;
+#define BUFFER(type, name)\
+ class name {\
+ private:\
+ Buffer_byte buf;\
+ public:\
+ name & reset() {buf.reset(); return *this;}\
+ name & append(type c) {buf.append(&c, sizeof(type)); return *this;}\
+ name & append_array(const type * p, int size) {buf.append(p, sizeof(type)*size); return *this;}\
+ type & operator [] (int i) { return ((type *) buf.buffer())[i];}\
+ operator type *(){return (type *) buf.buffer();} \
+ int content_size(){return buf.content_size() / sizeof(type);}\
+ }
+
+
+class Pick{
+/* The Pick is the basic language generator element*/
+public:
+ // generate a string accroding the syntax
+ // Return a null-terminated c-string. The buffer is owned by callee.
+ virtual const char* next() = 0;
+ virtual ~Pick(){};
+};
+
+//typedef BUFFER<char> Buffer_char;
+//typedef BUFFER<int> Buffer_int;
+//typedef BUFFER<Pick *> Buffer_pPick;
+BUFFER(char, Buffer_char);
+BUFFER(int, Buffer_int);
+BUFFER(Pick *, Buffer_pPick);
+
+class SymbolTable{
+/* Helper class.
+* It's a mapping table between 'variable name' and its 'active Pick object'
+*/
+private:
+ Buffer_char name_buffer; // var names storage space
+
+ Buffer_int names; // points to name (offset in name_buffer)
+ Buffer_pPick refs; // points to Pick
+
+ int get_index(const char *const var_name){
+ int len = names.content_size();
+ for (int i=0; i< len; i++){
+ if (strcmp(var_name, name_buffer + names[i]) == 0){
+ return i;
+ }
+ }
+ return -1;
+ }
+
+public:
+ enum RESULT {EMPTY, NO_VAR, NO_REF, HAS_REF};
+
+ RESULT find(const char *const var_name /*[in] c-string*/, Pick * * ref = NULL /*[out] Pick* */){
+ if (!var_name) return EMPTY; // NULL name
+
+ int i = get_index(var_name);
+ if (i == -1){
+ return NO_VAR; // new name
+ }
+ if (!refs[i]){ // exist name, no ref
+ return NO_REF;
+ } else {
+ if (ref) {
+ *ref = refs[i];
+ }
+ return HAS_REF; // exist name, has ref
+ }
+ }
+
+ void put(const char *const var_name, Pick *const var_ref = NULL){
+ int i = get_index(var_name);
+ switch(find(var_name)){
+ case EMPTY: // NULL name
+ break;
+ case NO_VAR: // new name
+ int offset;
+ offset = name_buffer.content_size();
+ name_buffer.append_array(var_name, strlen(var_name) + 1);
+ names.append(offset);
+ refs.append(var_ref);
+ break;
+ case NO_REF: // exist name, no ref
+ refs[i] = var_ref; // link definition with variable
+ break;
+ case HAS_REF: // exist name, has ref
+ if (var_ref){
+ refs[i] = var_ref;
+ }
+ break;
+ default:
+ ; // ASSERT(FALSE);
+ }
+ return;
+ }
+
+ UBool is_complete(){
+ int n = names.content_size();
+ for (int i=0; i<n; ++i){
+ if (refs[i] == NULL){
+ return FALSE;
+ }
+ }
+ return TRUE;
+ }
+
+ void reset(){
+ names.reset();
+ name_buffer.reset();
+
+ // release memory here
+ int s = refs.content_size();
+ for (int i=0; i < s; i++){
+ delete refs[i]; // TOFIX: point alias/recursion problem
+ }
+ refs.reset();
+ }
+
+ ~SymbolTable(){
+ reset();
+ }
+};
+
+
+/*
+// Document of class Escaper
+//
+// ATTENTION:
+// From http://icu.sourceforge.net/userguide/Collate_Customization.html.
+// We get the precedence of escape/quote operations
+//
+// (highest) 1. backslash \
+// 2. two single quotes ''
+// 3. quoting ' '
+//
+// ICU Collation should accept following as the same string.
+//
+// 1) 'ab'c _
+// 2) a\bc \
+// 3) a'b'\c |- They are equal.
+// 4) abc _/
+//
+// From "two single quotes", we have following deductions
+// D1. empty quoting is illgal. (obviously)
+// D2. no contact operation between two quotings
+// '.''.' is not .. it is .'.
+// D3. "two single quotes" cannot contact two quoting simultaneously
+// '..''''.' is not ..'. it is ..''.
+// NOTICE:
+// "two single quotes" can contact before one quoting
+// '''.' is '.
+// "two single quotes" can literally contact after one quoting
+// But, from syntax, it's one quoting including a "two single quotes"
+// '.''' is .'
+// D4. "two single quotes" cannot solely be included in quoting
+// '''' is not ' it is ''
+// NOTICE: These are legal
+// '.''.' is .'.
+// '.''' is .'
+//
+// dicision
+// /\
+// /__\
+// output buffer input buffer
+//
+// To make our dicision (within an atom operation) without caring input and output buffer,
+// following calling pattern (within an atom operation) shall be avoided
+//
+// P1 open_quoting() then close_quoting() (direct violation) D1
+// P2 close_quoting() then open_quoting() (direct violation) D2
+// P3 empty open_quoting() (indirect violation) D1, D4
+// P4 empty close_quoting() (indirect violation) D2, D3
+// P5 open_quoting() then two single quotes (indirect violation) D4
+// P6 close_quoting() then two single quotes (indirect violation) D3
+//
+// two single quotes escaping will not open_ or close_ quoting()
+// The choice will not lose some quoing forms.
+//
+// For open_quoting(),
+// we may get this form quoting ''' P5
+// It may raise a bug ''''x
+// If we expect
+// '''.' let the next char open the quoting
+// '.''.' the quoting is already opened by preceding char
+//
+// For close_quoting()
+// we will get this form quoting '.''' P6
+// It may raise a bug '.''''.'
+// If we expect
+// '.'''\. let the next char close the quoting
+// '.''''.' the expectation is wrong! using '.'\''.' instead
+//
+// It's a hard work to re-adjust generation opportunity for various escaping form.
+// We just simply ignore it.
+*/
+class Escaper{
+public:
+ enum CHOICE {YES, NO, RAND};
+ enum ESCAPE_FORM {BSLASH_ONLY, QUOTE_ONLY, QUOTE_AND_BSLAH, RAND_ESC};
+private:
+ class Bool{ // A wrapper class for CHOICE, to auto adapter UBool class
+ private:
+ const CHOICE tag;
+ public:
+ Bool(CHOICE flag=RAND):tag(flag){}
+ operator UBool() { // conversion operator
+ return tag == RAND ? rand()%2 : tag == YES;
+ //if (tag == RAND){
+ // return rand()%2 == 1;
+ //} else {
+ // return tag == YES ? TRUE : FALSE;
+ //}
+ }
+ };
+public:
+ Escaper(CHOICE escapeLiteral = RAND,
+ CHOICE twoQuotesEscape = RAND,
+ ESCAPE_FORM escapeForm = RAND_ESC):
+ escape_form(escapeForm),
+ escape_literal(escapeLiteral),
+ two_quotes_escape(twoQuotesEscape),
+ is_quoting(FALSE){}
+private:
+ Buffer_char str;
+ ESCAPE_FORM escape_form;
+ Bool escape_literal;
+ Bool two_quotes_escape;
+ UBool quote_escape;
+ UBool bslash_escape;
+ UBool is_quoting;
+
+ void set_options(){
+ ESCAPE_FORM t = escape_form == RAND_ESC ? (ESCAPE_FORM) (rand()%3) : escape_form;
+ switch (t){
+ case BSLASH_ONLY :
+ bslash_escape = TRUE; quote_escape = FALSE; break;
+ case QUOTE_ONLY:
+ bslash_escape = FALSE;quote_escape = TRUE; break;
+ case QUOTE_AND_BSLAH:
+ bslash_escape = TRUE; quote_escape = TRUE; break;
+ default:
+ ;// error
+ }
+ }
+
+ void reset(){
+ str.reset();
+ is_quoting = FALSE;
+ }
+
+ inline void open_quoting(){
+ if(is_quoting){
+ // do nothing
+ } else {
+ str.append('\'');
+ is_quoting = TRUE;
+ }
+ }
+ inline void close_quoting(){
+ if(is_quoting){
+ str.append('\'');
+ is_quoting = FALSE;
+ } else {
+ // do nothing
+ }
+ }
+
+ // str [in] null-terminated c-string
+ void append(const char * strToAppend){
+ for(;*strToAppend != 0; strToAppend++){
+ append(*strToAppend);
+ }
+ }
+
+ inline void append(const char c){
+ set_options();
+
+ if (c == '\\'){
+ quote_escape ? open_quoting() : close_quoting();
+ //bslash_escape always true here
+ str.append('\\');
+ str.append('\\');
+ } else if (c == '\''){
+ if (two_quotes_escape){ // quoted using two single quotes
+ // See documents in anonymous.design
+ str.append('\'');
+ str.append('\'');
+ } else{
+ quote_escape ? open_quoting() : close_quoting();
+ //bslash_escape always true here
+ str.append('\\');
+ str.append('\'');
+ }
+ } else if (isSpecialAsciiChar(c) || isWhiteSpace(c)){
+ quote_escape ? open_quoting() : close_quoting();
+ if (bslash_escape) str.append('\\');
+ str.append(c);
+ } else { //if (isAlphabet(c) || isDigit(c) || TRUE){ // treat others as literal
+ if (escape_literal){
+ quote_escape ? open_quoting() : close_quoting();
+ if (bslash_escape) str.append('\\');
+ str.append(c);
+ } else {
+ close_quoting();
+ str.append(c);
+ }
+ }
+ }
+
+public:
+ // Return a null-terminate c-string. The buffer is owned by callee.
+ char * operator()(const char * literal /*c-string*/){
+ str.reset();
+ for(;*literal != 0; literal++){
+ append(*literal);
+ }
+ close_quoting(); // P4 exception, to close whole quoting
+ return str;
+ }
+};
+
+class WeightedRand{
+// Return a random number in [0, size)
+// Every number has different chance (aka weight) to be selected.
+private:
+ Buffer_int weights;
+ double total;
+ WeightedRand(const WeightedRand &);
+ WeightedRand & operator = (const WeightedRand &);
+public:
+ WeightedRand(Buffer_int * weight_list = NULL, int size = 0){
+ if ( weight_list == NULL){
+ for (int i=0; i<size; ++i) weights.append(DEFAULT_WEIGHT);
+ } else {
+ int s = weight_list->content_size();
+ if (s < size){
+ weights.append_array( (*weight_list),s);
+ for (int i=s; i<size; ++i) weights.append(DEFAULT_WEIGHT);
+ } else { // s >= size
+ weights.append_array( (*weight_list),size);
+ }
+ }
+ total = 0;
+ int c = weights.content_size();
+ for (int i=0; i<c; ++i){
+ total += weights[i];
+ }
+ }
+
+ void append(int weight){
+ weights.append(weight);
+ total += weight;
+ }
+
+ // Give a random number with the consideration of weight.
+ // Every random number is associated with a weight.
+ // It identifies the chance to be selected,
+ // larger weight has more chance to be selected.
+ //
+ //
+ // ______________________ every slot has equal chance
+ //
+ // [____][_][___][______] each item has different slots, hence different chance
+ //
+ //
+ // The algorithms to generate the number is illustrated by preceding figure.
+ // First, a slot is selected by rand(). Then we translate the slot to corresponding item.
+ //
+ int next(){
+ // get a random in [0,1]
+ double reference_mark = (double)rand() / (double)RAND_MAX;
+
+ // get the slot's index, 0 <= mark <= total;
+ double mark = total * reference_mark;
+
+ // translate the slot to corresponding item
+ int i=0;
+ for (;;){
+ mark -= weights[i]; // 0 <= mark <= total
+ if (mark <= 0)
+ break;
+ i++;
+ }
+ return i;
+ }
+};
+
+///////////////////////////////////////////////////////////
+//
+// The parser result nodes
+//
+
+class Literal : public Pick {
+public:
+ virtual const char* next(){
+ return str;
+ }
+ Literal(const char * s /*c-string*/){
+ str.append_array(s, strlen(s) + 1);
+ }
+private:
+ Buffer_char str; //null-terminated c-string
+};
+
+class Variable : public Pick {
+public:
+ Variable(SymbolTable * symbols, const char * varName, Pick * varRef = NULL){
+ this->var_name.append_array(varName, strlen(varName) + 1);
+ if ((symbol_table = symbols)){
+ symbol_table->put(varName, varRef);
+ }
+ }
+
+ operator const char *(){
+ return var_name;
+ }
+
+ virtual const char* next(){
+ if (symbol_table){
+ Pick * var_ref = NULL;
+ symbol_table->find(var_name, &var_ref);
+ if (var_ref) {
+ return var_ref->next();
+ }
+ }
+ return ""; // dumb string
+ }
+private:
+ Buffer_char var_name;
+ SymbolTable * symbol_table;
+};
+
+class Quote : public Pick{
+public:
+ Quote(Pick & base):item(base),e(Escaper::NO, Escaper::NO, Escaper::BSLASH_ONLY){
+ }
+ virtual const char* next(){
+ return e(item.next());
+ }
+private:
+ Pick & item;
+ Buffer_char str;
+ Escaper e;
+};
+
+
+class Morph : public Pick{
+/*
+The difference between morph and an arbitrary random string is that
+a morph changes slowly. When we build collation rules, for example,
+it is a much better test if the strings we use are all in the same
+'neighborhood'; they share many common characters.
+*/
+public:
+ Morph(Pick & base):item(base){}
+
+ virtual const char* next(){
+ current.reset();
+ const char * s = item.next();
+ current.append_array(s, strlen(s) + 1);
+ if (last.content_size() == 0) {
+ str.reset();
+ last.reset();
+ str.append_array(current, current.content_size());
+ last.append_array(current, current.content_size());
+ } else {
+ morph();
+ }
+ return str;
+ }
+private:
+ Pick & item;
+ Buffer_char str;
+ Buffer_char last;
+ Buffer_char current;
+
+ char * p_last;
+ char * p_curr;
+
+ void copy_curr(){
+ if (*p_curr) {
+ str.append(*p_curr);
+ p_curr++;
+ }
+ }
+
+ void copy_last(){
+ if (*p_last) {
+ str.append(*p_last);
+ p_last++;
+ }
+ }
+
+ // copy 0, 1, or 2 character(s) to str
+ void copy(){
+ static WeightedRand wr(& Buffer_int().append(DEFAULT_WEIGHT * 10), 5);
+
+ switch (wr.next()){
+ case 0: // copy last -- has 10 times chance than others
+ copy_last();
+ break;
+ case 1: // copy both
+ copy_curr();
+ copy_last();
+ break;
+ case 2: // copy both
+ copy_last();
+ copy_curr();
+ break;
+ case 3:
+ copy_curr();
+ break;
+ case 4: // copy nothing
+ break;
+ default:
+ // ASSERT(FALSE);
+ ;
+ }
+ }
+
+ void morph(void){
+ int min = strlen(last);
+ int max = strlen(current);
+ if (min > max){
+ int temp = min;
+ min = max;
+ max = temp;
+ }
+
+ int len = min + rand()%(max - min + 1); // min + [0, diff]
+ p_curr = current;
+ p_last = last;
+ str.reset();
+
+ for (; str.content_size()<len && *p_curr && *p_last;){
+ copy(); // copy 0, 1, or 2 character(s) to str
+ }
+
+ if (str.content_size() == len) {
+ str.append(0);
+ final();
+ return;
+ }
+
+ if (str.content_size() > len) { // if the last copy copied two characters
+ str[len]=0;
+ final();
+ return;
+ }
+
+ // str.content_size() < len
+ if (*p_last) {
+ for (; str.content_size() < len; copy_last());
+ } else if (*p_curr){
+ for (; str.content_size() < len; copy_curr());
+ }
+
+ int last_len = last.content_size();
+ for (;str.content_size() < len;){
+ str.append(last[rand()%last_len]);
+ }
+ str.append(0);
+ final();
+ }
+
+ void final(){
+ last.reset();
+ last.append_array(current, current.content_size());
+ }
+};
+
+class Sequence : public Pick {
+public:
+ virtual const char* next(){
+ str.reset();
+ int s = items.content_size();
+ for(int i=0; i < s; i++){
+ const char * t = items[i]->next();
+ str.append_array(t, strlen(t));
+ }
+ str.append(0); // terminal null
+ return str;
+ }
+
+ void append (Pick * node){
+ items.append(node);
+ }
+
+ virtual ~Sequence(){
+ int s = items.content_size();
+ for(int i=0; i < s; i++){
+ //How can assure the item is got from heap?
+ //Let's assume it.
+ delete items[i]; // TOFIX: point alias/recursion problem
+ items[i] = NULL;
+ }
+ }
+private:
+ Buffer_pPick items;
+ Buffer_char str; //null-terminated c-string
+};
+
+class Repeat : public Pick {
+private:
+ Pick * item;
+ Buffer_char str;
+ WeightedRand wr;
+ int min;
+ int max;
+ int select_a_count(){
+ return min + wr.next();
+ }
+public:
+ virtual const char* next(){
+ str.reset();
+ int c = select_a_count();
+ for(int i=0; i< c; i++){
+ const char * t = item->next();
+ str.append_array(t, strlen(t));
+ }
+ str.append(0);
+ return str;
+ }
+
+ Repeat(Pick * base, int minCount =0, int maxCount = 1, Buffer_int * weights = NULL):
+ wr(weights, maxCount-minCount +1) {
+ this->item = base;
+ this->min = minCount;
+ this->max = maxCount;
+ }
+ virtual ~Repeat(){
+ delete item; // TOFIX: point alias/recursion problem
+ item = NULL;
+ }
+};
+
+
+class Alternation : public Pick {
+public:
+ virtual const char* next(){
+ str.reset();
+ int i = wr.next();
+ const char * t = items[i]->next();
+ str.append_array(t, strlen(t) + 1);
+ return str;
+ }
+ virtual ~Alternation(){
+ int s = items.content_size();
+ for(int i=0; i < s; i++){
+ delete items[i]; // TOFIX: point alias/recursion problem
+ items[i] = NULL;
+ }
+ }
+
+ Alternation & append (Pick * node, int weight = DEFAULT_WEIGHT){
+ items.append(node);
+ wr.append(weight);
+ return *this;
+ }
+private:
+ Buffer_pPick items;
+ Buffer_char str; // null-terminated c-string
+ WeightedRand wr;
+};
+
+///////////////////////////////////////////////////////////
+//
+// The parser
+//
+
+enum TokenType {STRING, VAR, NUMBER, STREAM_END, ERROR, QUESTION, STAR, PLUS, LBRACE, RBRACE, LPAR, RPAR, SEMI, EQ, COMMA, BAR, AT, WAVE, PERCENT};
+
+class Scanner{
+friend int DumpScanner(Scanner & s, UBool dumb);
+private:
+ const char * source;
+ const char * working;
+ const char * history; // for debug
+ enum StateType {START, IN_NUM, IN_VAR_FIRST, IN_VAR, IN_QUOTE, IN_QUOTE_BSLASH, IN_BSLASH, IN_STRING, DONE};
+ StateType state;
+ void terminated(TokenType t){
+ working--; // return the peeked character
+ tokenType = t;
+ token.append(0); // close buffer
+ state = DONE;
+ }
+public:
+ // the buffer of "source" is owned by caller
+ Scanner(const char *src/*[in] c-string*/ = NULL):source(src){
+ working = src;
+ history = working;
+ state = DONE;
+ tokenType = ERROR;
+ }
+
+ //void setSource(const char *const src /*[in] c-string*/){
+ // *(&const_cast<const char *>(source)) = src;
+ //}
+
+ Buffer_char token;
+ TokenType tokenType;
+
+ TokenType getNextToken(){
+ token.reset();
+ state = START;
+ history = working; // for debug
+ while (state != DONE){
+ char c = *working++;
+ if (c == 0 && state != START){//avoid buffer overflow. for IN_QUOE, IN_ESCAPE
+ terminated(ERROR);
+ break; // while
+ }
+ switch(state){
+ case START:
+ tokenType = ERROR;
+ switch(c){
+ case '?' : tokenType = QUESTION; break;
+ case '*' : tokenType = STAR; break;
+ case '+' : tokenType = PLUS; break;
+ case '{' : tokenType = LBRACE; break;
+ case '}' : tokenType = RBRACE; break;
+ case '(' : tokenType = LPAR; break;
+ case ')' : tokenType = RPAR; break;
+ case ';' : tokenType = SEMI; break;
+ case '=' : tokenType = EQ; break;
+ case ',' : tokenType = COMMA; break;
+ case '|' : tokenType = BAR; break;
+ case '@' : tokenType = AT; break;
+ case '~' : tokenType = WAVE; break;
+ case '%' : tokenType = PERCENT; break;
+ case 0 : tokenType = STREAM_END; working-- /*avoid buffer overflow*/; break;
+ }
+ if (tokenType != ERROR){
+ token.append(c);
+ token.append(0);
+ state = DONE;
+ break; // START
+ }
+ switch(c){
+ case '$' : state = IN_VAR_FIRST; token.append(c); break;
+ case '\'' : state = IN_QUOTE; break;
+ case '\\' : state = IN_BSLASH; break;
+ default:
+ if (isWhiteSpace(c)){ // state = START; //do nothing
+ } else if (isDigit(c)){ state = IN_NUM; token.append(c);
+ } else if (isAlphabet(c)){ state = IN_STRING; token.append(c);
+ } else {terminated(ERROR);}
+ }
+ break;//START
+ case IN_NUM:
+ if (isDigit(c)){
+ token.append(c);
+ } else {
+ terminated(NUMBER);
+ }
+ break;//IN_NUM
+ case IN_VAR_FIRST:
+ if (isAlphabet(c)){
+ token.append(c);
+ state = IN_VAR;
+ } else {
+ terminated(ERROR);
+ }
+ break; // IN_VAR_FISRT
+ case IN_VAR:
+ if (isAlphabet(c) || isDigit(c)){
+ token.append(c);
+ } else {
+ terminated(VAR);
+ }
+ break;//IN_VAR
+ case IN_STRING:
+ // About the scanner's behavior for STRING, AT, and ESCAPE:
+ // All of them can be contacted with each other.
+ // This means the scanner will eat up as much as possible strings
+ // (STRING, AT, and ESCAPE) at one time, with no regard of their
+ // combining sequence.
+ //
+ if (c == '\''){
+ state = IN_QUOTE; // the first time we see single quote
+ } else if (c =='\\'){ // back slash character
+ state = IN_BSLASH;
+ } else if (isAlphabet(c) || isDigit(c)){
+ token.append(c);
+ } else{
+ terminated(STRING);
+ }
+ break;//IN_STRING
+ case IN_QUOTE:
+ if (c == '\''){ // the second time we see single quote
+ state = IN_STRING; // see document in IN_STRING
+ } else if ( c== '\\') { // backslah escape in quote
+ state = IN_QUOTE_BSLASH;
+ } else {
+ token.append(c); // eat up everything, includes back slash
+ }
+ break;//IN_QUOTE
+ case IN_QUOTE_BSLASH:
+ case IN_BSLASH:
+ switch (c){
+ case 'n' : token.append('\n'); break;
+ case 'r' : token.append('\r'); break;
+ case 't' : token.append('\t'); break;
+ case '\'' : token.append('\''); break;
+ case '\\' : token.append('\\'); break;
+ default: token.append(c); // unknown escaping, treat it as literal
+ }
+ if (state == IN_BSLASH){
+ state = IN_STRING; // see document in IN_STRING
+ } else { // state == IN_QUOTE_BSLASH
+ state = IN_QUOTE;
+ }
+ break;//IN_BSLASH
+ case DONE: /* should never happen */
+ default:
+ working--;
+ tokenType = ERROR;
+ state = DONE;
+ break;
+ }//switch(state)
+ }//while (state != DONE)
+
+ return tokenType;
+ }
+};//class Scanner
+
+class Parser{
+friend UBool TestParser();
+friend class TestParserT;
+friend class LanguageGenerator_impl;
+private:
+ Scanner s;
+ TokenType & token;
+ int min_max; // for the evil infinite
+
+ UBool match(TokenType expected){
+ if (token == expected) {
+ token = s.getNextToken();
+ return TRUE;
+ } else {
+ //s.dumpCurrentPoint();
+ return FALSE;
+ }
+ }
+
+ UBool weight(int & value){
+ if (token == NUMBER){
+ int temp = atoi(s.token);
+ match(NUMBER);
+ if (match(PERCENT)){
+ value = temp;
+ return TRUE;
+ }
+ }
+ return FALSE;
+ }
+
+ UBool repeat (Pick* &node /*in,out*/){
+ if (node == NULL) return FALSE;
+
+ int count = -2;
+ int min = -2;
+ int max = -2;
+ UBool question = FALSE;
+ switch (token){
+ case QUESTION:
+ match(QUESTION);
+ min = 0;
+ max = 1;
+ count = 2;
+ question = TRUE;
+ break;
+ case STAR:
+ match(STAR);
+ min = 0;
+ max = -1;
+ count = -1;
+ break;
+ case PLUS:
+ match(PLUS);
+ min = 1;
+ max = -1;
+ count = -1;
+ break;
+ case LBRACE:
+ match(LBRACE);
+ if (token != NUMBER){
+ return FALSE;
+ }else {
+ min = atoi(s.token);
+ match(NUMBER);
+ if (token == RBRACE){
+ match(RBRACE);
+ max = min;
+ count = 1;
+ } else if (token == COMMA) {
+ match(COMMA);
+ if (token == RBRACE){
+ match(RBRACE);
+ max = -1;
+ count = -1;
+ } else if (token == NUMBER) {
+ max = atoi(s.token);
+ match(NUMBER);
+ count = max - min + 1;
+ if (!match(RBRACE)) {
+ return FALSE;
+ }
+ } else {
+ return FALSE;
+ }
+ } else {
+ return FALSE;
+ }
+ }
+ break;
+ default:
+ return FALSE;
+ }
+
+ if (count == -2 || min == -2 || max == -2){
+ //ASSERT(FALSE);
+ return FALSE;
+ }
+
+ // eat up following weights
+ Buffer_int weights;
+ int w;
+ while (weight(w)){
+ weights.append(w);
+ }
+
+ // for the evil infinite
+ min_max = min_max > min ? min_max : min;
+ min_max = min_max > max ? min_max : max;
+ if (min_max > PSEUDO_INFINIT){
+ return FALSE; // PSEUDO_INFINIT is less than the real maximum
+ }
+ if (max == -1){ // the evil infinite
+ max = PSEUDO_INFINIT;
+ }
+ // for the strange question mark
+ if (question && weights.content_size() > 0){
+ Buffer_int w2;
+ w2.append(DEFAULT_WEIGHT - weights[0]).append(weights[0]);
+ node = new Repeat(node,min,max,&w2);
+ return TRUE;
+ }
+ node = new Repeat(node,min,max,&weights);
+ return TRUE;
+ }
+
+ UBool core(Pick* &node /*out*/){
+ if (node != NULL) return FALSE; //assert node == NULL
+
+ switch(token){
+ case LPAR:
+ match(LPAR);
+ if(defination(node) && match(RPAR)){
+ return TRUE;
+ }
+ return FALSE;
+ case VAR:
+ node = new Variable(&symbols, s.token);
+ match(VAR);
+ return TRUE;
+ case STRING:
+ node = new Literal(s.token);
+ match(STRING);
+ return TRUE;
+ default:
+ return FALSE;
+ }
+ }
+ UBool modified(Pick* &node /*out*/){
+ if (node != NULL) return FALSE; //assert node == NULL
+
+ if (!core(node)) {
+ return FALSE;
+ }
+
+ for (;;){
+ switch(token){
+ case WAVE:
+ match(WAVE);
+ node = new Morph(*node);
+ break;
+ case AT:
+ match(AT);
+ node = new Quote(*node);
+ break;
+ case QUESTION:
+ case STAR:
+ case PLUS:
+ case LBRACE:
+ if (!repeat(node)) return FALSE;
+ break;
+ case SEMI: // rule definiation closed
+ case RPAR: // within parenthesis (core closed)
+ case BAR: // in alternation
+ case NUMBER: // in alternation, with weight
+ case LPAR: // in sequence
+ case VAR: // in sequence
+ case STRING: // in sequence
+ return TRUE;
+ default:
+ return FALSE;
+ }
+ }
+ }
+
+
+ UBool sequence_list(Pick* &node /*in,out*/){
+ if (node == NULL) return FALSE; // assert node != NULL
+
+ Sequence* seq = new Sequence();
+ Pick * n = node;
+
+ while (token == VAR || token == STRING || token == LPAR){
+ seq->append(n);
+ n = NULL;
+ if (modified(n)){
+ // go on
+ } else {
+ goto FAIL;
+ }
+ }
+
+ if (token == SEMI || token == RPAR || token == BAR){
+ seq->append(n);
+ node = seq;
+ return TRUE;
+ }
+FAIL:
+ delete seq;
+ return FALSE;
+
+ }
+
+ UBool sequence(Pick* &node /*out*/){
+ if (node != NULL) return FALSE; //assert node == NULL
+
+ if (!modified(node)) {
+ return FALSE;
+ }
+
+ if (token == VAR || token == STRING || token == LPAR){
+ return sequence_list(node);
+ } else {
+ return TRUE; // just a modified
+ }
+ }
+
+ UBool alternation_list(Pick* &node /*in,out*/){
+ if (node == NULL) return FALSE; // assert node != NULL
+
+ Alternation * alt = new Alternation();
+ Pick * n = node;
+ int w = DEFAULT_WEIGHT;
+
+ while (token == NUMBER || token == BAR){
+ if(token == NUMBER) {
+ if (weight(w)){
+ if (token == BAR){
+ // the middle item, go on
+ } else {
+ // the last item or encounter error
+ break; //while
+ }
+ } else {
+ goto FAIL;
+ }
+ } // else token == BAR
+ match(BAR);
+ alt->append(n,w);
+
+ n = NULL;
+ w = DEFAULT_WEIGHT;
+ if (sequence(n)){
+ // go on
+ } else {
+ goto FAIL;
+ }
+ }
+
+ if (token == SEMI || token == RPAR) {
+ alt->append(n,w);
+ node = alt;
+ return TRUE;
+ }
+FAIL:
+ delete alt;
+ return FALSE;
+ }
+
+ UBool alternation(Pick* &node /*out*/){
+ if (node != NULL) return FALSE; //assert node == NULL
+
+ // 'sequence' has higher precedence than 'alternation'
+ if (!sequence(node)){
+ return FALSE;
+ }
+
+ if (token == BAR || token == NUMBER){ // find a real alternation1, create it.
+ return alternation_list(node);
+ } else {
+ return TRUE; // just a sequence_old
+ }
+ }
+
+
+ UBool defination(Pick* &node /*out*/){
+ if (node != NULL) return FALSE; //assert node == NULL
+ return alternation(node);
+ }
+
+ UBool rule(){
+ if (token == VAR){
+ Buffer_char name;
+ name.append_array(s.token, strlen(s.token) + 1);
+ match(VAR);
+
+ if (match(EQ)){
+ Pick * t = NULL;
+ if(defination(t)){
+ symbols.put(name, t);
+ return match(SEMI);
+ }
+ }
+ }
+ return FALSE;
+ }
+public:
+ UBool rules(){
+ symbols.reset();
+ token = s.getNextToken();
+ while (rule()){
+ }
+ if (token == STREAM_END){
+ return TRUE;
+ } else {
+ //s.dumpCurrentPoint();
+ return FALSE;
+ }
+ }
+
+public:
+ SymbolTable symbols;
+
+ Parser(const char *const source):s(source), token(s.tokenType){
+ min_max = -2;
+ }
+ UBool parse(){
+ return rules();
+ }
+
+}; // class Parser
+
+
+///////////////////////////////////////////////////////////
+//
+//
+//
+
+int DumpScanner(Scanner & s, UBool dump = TRUE){
+ int len = strlen(s.source);
+ int error_start_offset = s.history - s.source;
+ if (dump){
+ printf("\n=================== DumpScanner ================\n");
+ fwrite(s.source, len, 1, stdout);
+ printf("\n-----parsed-------------------------------------\n");
+ fwrite(s.source, s.history - s.source, 1, stdout);
+ printf("\n-----current------------------------------------\n");
+ fwrite(s.history, s.working - s.history, 1, stdout);
+ printf("\n-----unparsed-----------------------------------\n");
+ fwrite(s.working, (s.source + len - s.working), 1, stdout);
+ printf("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
+ }
+ return error_start_offset;
+}
+
+class LanguageGenerator_impl{
+public:
+ LanguageGenerator_impl(const char *const bnf_definition, const char *const top_node)
+ :par(bnf_definition), top_node_name(top_node){
+ srand((unsigned)time( NULL ));
+ }
+
+ LanguageGenerator::PARSE_RESULT parseBNF(UBool debug = TRUE){
+ if (par.parse()){
+ if (par.symbols.find(top_node_name, &top_node_ref) == SymbolTable::HAS_REF) {
+ if (par.symbols.is_complete()) {
+ return LanguageGenerator::OK;
+ } else {
+ if (debug) printf("The bnf definition is incomplete.\n");
+ return LanguageGenerator::INCOMPLETE;
+ }
+ } else {
+ if (debug) printf("No top node is found.\n");
+ return LanguageGenerator::NO_TOP_NODE;
+ }
+ } else {
+ if(debug) {
+ printf("The bnf definition is wrong\n");
+ DumpScanner(par.s, TRUE);
+ }
+ return LanguageGenerator::BNF_DEF_WRONG;
+ }
+ }
+ const char * next(){
+ return top_node_ref->next();
+ }
+
+private:
+ Parser par;
+ const char *const top_node_name;
+ Pick * top_node_ref;
+};
+
+LanguageGenerator::LanguageGenerator():lang_gen(NULL){
+}
+
+LanguageGenerator::~LanguageGenerator(){
+ delete lang_gen;
+}
+
+LanguageGenerator::PARSE_RESULT LanguageGenerator::parseBNF(const char *const bnf_definition /*in*/, const char *const top_node/*in*/, UBool debug){
+ if (lang_gen){
+ delete lang_gen;
+ }
+ lang_gen = new LanguageGenerator_impl(bnf_definition, top_node);
+ PARSE_RESULT r = lang_gen->parseBNF(debug);
+ if (r != OK){
+ delete lang_gen;
+ lang_gen = NULL;
+ return r;
+ } else {
+ return r;
+ }
+}
+const char *LanguageGenerator::next(){ // Return a null-terminated c-string. The buffer is owned by callee.
+ if (lang_gen){
+ return lang_gen->next();
+ }else {
+ return "";
+ }
+}
+
+///////////////////////////////////////////////////////////
+//
+// The test code for WBNF
+//
+
+#define CALL(fun) \
+ if (fun()){ \
+ printf("Pass: " #fun "\n");\
+ } else { \
+ printf("FAILED: !!! " #fun " !!!\n"); \
+ }
+
+#define DUMP_R(fun, var, times) \
+ {printf("\n========= " #fun " =============\n"); \
+ for (int i=0; i<times; i++) { \
+ const char * t = var.next();\
+ fwrite(t,strlen(t),1,stdout); \
+ printf("\n"); \
+ } \
+ printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");}
+
+
+
+#if TEST_WBNF_TEST
+static UBool TestQuote(){
+ const char *const str = "This ' A !,z| qq [] .new\tline";
+ //const char *const str_r = "This \\' A '!,'z'|' qq '[]' '.'new\tline";
+ ////
+ //// :( we must quote our string to following C syntax
+ //// cannot type the literal here, it makes our code rather human unreadable
+ //// very very unconformable!
+ ////
+ ///*
+ //*/
+
+ //const char *const s1 = "ab'c";
+ //const char (* s1_r1) [] = { "ab''c", // ab''c
+ // "ab\\'c", // ab\'c
+ // };//
+ ///*
+ // . '.' \.
+ // .. \.\. '.'\. '.'\. '..' // '.''.' wrong
+ //*/
+
+ //const char *const s2 = "a..'.b"; // a..'.b
+ //const char (*s2_r) [] = { "a'..''.'b" // a'..''.'b
+ // ,"a'..\\'.'b" // a'..\'.'b
+ // ,"a'..'\\''.'b" // a'..'\''.'b
+ // };//
+
+ //const char *const s3 = "a..\\.b"; // a..\.b
+ //const char (*s3_r) [] = { "a'..\\\\.'b" // a'..\\.'b
+ // ,"a'..'\\\\'.'b" // a'..'\\'.'b
+ // };//
+
+ // // no catact operation, no choice, must be compact
+
+ srand((unsigned)time( NULL ));
+
+ //Escaper l(Escaper::NO, Escaper::NO, Escaper::RAND_ESC);
+ Pick *p = new Literal(str);
+ Quote q(*p);
+
+ DUMP_R(TestQuote, (*p), 1);
+ DUMP_R(TestQuote, q, 20);
+ return FALSE;
+}
+static UBool TestLiteral(){
+ const char * s = "test string99.";
+ Literal n(s);
+ const char * r = n.next();
+ return strcmp(s,r) == 0;
+}
+
+static UBool TestSequence(){
+ Sequence seq;
+ seq.append(new Literal("abc "));
+ seq.append(new Literal(", s"));
+
+ return strcmp(seq.next(), "abc , s") == 0;
+}
+static UBool TestAlternation(){
+ srand((unsigned)time( NULL ));
+ Alternation alt;
+ alt.append(new Literal("aaa_10%"),10);
+ alt.append(new Literal("bbb_0%"),0);
+ alt.append(new Literal("ccc_10%"),10);
+ alt.append(new Literal("ddddddd_50%"),50);
+
+ DUMP_R(TestAlternation, alt, 50);
+
+ return FALSE;
+}
+
+static UBool TestBuffer(){
+ Buffer_int t;
+ t.append(1).append(0).append(5);
+ int s = t.content_size();
+ for (int i=0; i<s; ++i){
+ printf("%d\n", t[i]);
+ }
+ return FALSE;
+}
+
+static UBool TestWeightedRand(){
+ srand((unsigned)time( NULL ));
+ Buffer_int t;
+ t.append(1).append(0).append(5);
+ WeightedRand wr(&Buffer_int().append(10).append(0).append(50),4);
+// WeightedRand wr(&t,3);
+ for (int i=0; i< 50; ++i){
+ printf("%d\n", wr.next());
+ }
+ return FALSE;
+}
+
+static UBool TestRepeat(){
+ srand((unsigned)time( NULL ));
+ Repeat rep(new Literal("aaa1-5 "), 1, 5);
+ DUMP_R(TestRepeat, rep, 50);
+
+ Repeat r2(new Literal("b{1,3}1%0%5% "), 1, 3, &Buffer_int().append(1).append(0).append(5));
+ DUMP_R(TestRepeat, r2, 50);
+
+ Repeat r3(new Literal("aaa5-5 "), 5, 5);
+ DUMP_R(TestRepeat, r3, 50);
+
+ return FALSE;
+}
+
+static UBool TestVariable(){
+ SymbolTable tab;
+ Pick * value = new Literal("string1");
+ Variable var1(&tab, "x", value);
+
+ Variable var2(&tab, "y");
+// tab.put(var2, value); // TOFIX: point alias/recursion problem
+ Pick * value2 = new Literal("string2");
+ tab.put(var2, value2);
+
+ Pick * value3 = new Literal("string3");
+ Variable var3(&tab, "z");
+ tab.put("z", value3);
+
+ UBool pass;
+ pass = strcmp(var1.next(), value->next()) == 0;
+ pass = pass && strcmp(var2.next(), value2->next()) == 0;
+ pass = pass && strcmp(var3.next(), value3->next()) == 0;
+ return pass;
+}
+
+static UBool TestSymbolTable(){
+ Literal * n1 = new Literal("string1");
+ Literal * n2 = new Literal("string2");
+ SymbolTable t;
+ t.put("abc", n1);
+ t.put("$aaa", n2);
+// t.put("alias", n1); // TOFIX: point alias/recursion problem
+ t.put("bbb");
+
+ UBool pass;
+ pass = t.find(NULL) == SymbolTable::EMPTY;
+ pass = pass && t.find("ccc") == SymbolTable::NO_VAR;
+ pass = pass && t.find("bbb") == SymbolTable::NO_REF;
+ pass = pass && t.find("abc") == SymbolTable::HAS_REF;
+ pass = pass && t.find("$aaa") == SymbolTable::HAS_REF;
+
+ t.reset();
+ pass = pass && t.find("abc") == SymbolTable::NO_VAR;
+ return pass;
+}
+
+
+static UBool TestScanner(void){
+ //const char str1[] = "$root = $command{0,5} $reset $mostRules{1,20};";
+ //const char str1_r[][20] = {"$root", "=", "$command", "{", "0", ",", "5", "}",
+ // "$reset", "$mostRules", "{", "1", ",", "20", "}", ";"};
+
+ const char str2[] = "$p2 =(\\\\ $s $string $s)? 25%;";
+ const char str2_r[][20] = {"$p2", "=", "(", "\\", "$s", "$string", "$s", ")", "?", "25", "%", ";"};
+
+ const char *str = str2;
+ const char (*str_r)[20] = str2_r;
+ int tokenNum = sizeof(str2_r)/sizeof(char[20]);
+
+ Scanner t(str);
+ UBool pass = TRUE;
+ t.getNextToken();
+ int i = 0;
+ while (pass){
+ if (t.tokenType == STREAM_END){
+ pass = pass? i == tokenNum : FALSE;
+ break;//while
+ } else if (t.tokenType == ERROR){
+ pass = FALSE;
+ break;//while
+ } else {
+ pass = strcmp( &(t.token[0]), str_r[i++]) == 0;
+ t.getNextToken();
+ }
+ }
+
+ //const char ts[] = "$commandList = '['"
+ //" ( alternate ' ' $alternateOptions"
+ //" | backwards ' 2'"
+ //" | normalization ' ' $onoff "
+ //" | caseLevel ' ' $onoff "
+ //" | hiraganaQ ' ' $onoff"
+ //" | caseFirst ' ' $caseFirstOptions"
+ //" | strength ' ' $strengthOptions"
+ //" ) ']';" ;
+
+ //Scanner t2(ts);
+ //pass = TRUE;
+ //do {
+ // t2.getNextToken();
+ // if (t2.tokenType == ERROR){
+ // DumpScanner(t2);
+ // return FALSE;
+ // }
+ //}while (t.tokenType != STREAM_END);
+
+ return pass;
+}
+
+class TestParserT {
+public:
+UBool operator () (const char *const str, const int exp_error_offset = -1, const UBool dump = TRUE){
+ Parser par(str);
+ if (par.rules()){
+ if ( exp_error_offset == -1){
+ return TRUE;
+ }else {
+ DumpScanner(par.s,dump);
+ return FALSE;
+ }
+ }else {
+ return DumpScanner(par.s, dump) == exp_error_offset;
+ }
+}
+};
+
+UBool TestParser(){
+ TestParserT test;
+
+ UBool pass = TRUE;
+ pass = pass && test ("$s = ' ' ? 50%;");
+ pass = pass && test("$x = ($var {1,2}) 3%;"); // legal
+ pass = pass && test("$x = $var {1,2} 3% | b 4%;"); // legal
+ pass = pass && test("$x = $var {1,2} 3%;"); // legal
+ pass = pass && test("$m = $c ? 2% 4% | $r 5% | $n 25%;"); // legal
+ pass = pass && test("$a = b ? 2% | c 5%;"); // legal
+ pass = pass && test("$x = A B 5% C 10% | D;", 8, FALSE); // illegal 5%
+ pass = pass && test("$x = aa 45% | bb 5% cc;", 19, FALSE);// illegal cc
+ pass = pass && test("$x = (b 5%) (c 6%);"); // legal
+ pass = pass && test("$x = (b 5%) c 6%;", 13, FALSE); // illegal 6%
+ pass = pass && test("$x = b 5% (c 6%);", 9, FALSE); // illegal (c 6%)
+ pass = pass && test("$x = b 5% c 6%;", 9, FALSE); // illegal c 6%
+ pass = pass && test("$x = b 5%;"); // legal
+ pass = pass && test("$x = aa 45% | bb 5% cc;", 19, FALSE);// illegal cc
+ pass = pass && test("$x = a | b | c 4% | d 5%;"); // legal
+ pass = pass && test("$s = ' ' ? 50% abc;"); // legal
+ pass = pass && test("$s = a | c d | e f;"); // legal
+ pass = pass && test( "$z = q 0% | p 1% | r 100%;"); // legal How to check parsed tree??
+
+ pass = pass && test("$s = ' ' ? 50%;");
+ pass = pass && test("$relationList = '<' | '<<' | ';' | '<<<' | ',' | '=';");
+ pass = pass && test("$p1 = ($string $s '|' $s)? 25%;");
+ pass = pass && test("$p2 = (\\\\ $s $string $s)? 25%;");
+ pass = pass && test("$rel2 = $p1 $string $s $p2;");
+ pass = pass && test("$relation = $relationList $s ($rel1 | $rel2) $crlf;");
+ pass = pass && test("$command = $commandList $crlf;");
+ pass = pass && test("$reset = '&' $s ($beforeList $s)? 10% ($positionList 100% | $string 10%) $crlf;");
+ pass = pass && test("$mostRules = $command 1% | $reset 5% | $relation 25%;");
+ pass = pass && test("$root = $command{0,5} $reset $mostRules{1,20};");
+
+ const char collationBNF[] =
+ "$s = ' '? 50%;"
+ "$crlf = '\r\n';"
+
+ "$alternateOptions = non'-'ignorable | shifted;"
+ "$onoff = on | off;"
+ "$caseFirstOptions = off | upper | lower;"
+ "$strengthOptions = '1' | '2' | '3' | '4' | 'I';"
+ "$commandList = '['"
+ " ( alternate ' ' $alternateOptions"
+ " | backwards ' 2'"
+ " | normalization ' ' $onoff "
+ " | caseLevel ' ' $onoff "
+ " | hiraganaQ ' ' $onoff"
+ " | caseFirst ' ' $caseFirstOptions"
+ " | strength ' ' $strengthOptions"
+ " ) ']';"
+ "$command = $commandList $crlf;"
+
+ "$ignorableTypes = (tertiary | secondary | primary) ' ' ignorable;"
+ "$allTypes = variable | regular | implicit | trailing | $ignorableTypes;"
+ "$positionList = '[' (first | last) ' ' $allTypes ']';"
+
+ "$beforeList = '[before ' ('1' | '2' | '3') ']';"
+
+ "$relationList = ("
+ " '<'"
+ " | '<<'"
+ " | ';'"
+ " | '<<<'"
+ " | ','"
+ " | '='"
+ ");"
+ "$string = $magic;"
+ "$rel1 = '[variable top]' $s;"
+ "$p1 = ($string $s '|' $s)? 25%;"
+ "$p2 = (\\\\ $s $string $s)? 25%;"
+ "$rel2 = $p1 $string $s $p2;"
+ "$relation = $relationList $s ($rel1 | $rel2) $crlf;"
+
+ "$reset = '&' $s ($beforeList $s)? 10% ($positionList 1% | $string 10%) $crlf;"
+ "$mostRules = $command 1% | $reset 5% | $relation 25%;"
+ "$root = $command{0,5} $reset $mostRules{1,20};"
+ ;
+
+ pass = pass && test(collationBNF);
+
+
+ return pass;
+}
+
+static UBool TestMorph(){
+ srand((unsigned)time( NULL ));
+
+ Alternation * alt = new Alternation();
+
+ (*alt)
+ .append(new Literal("a")).append(new Literal("b")).append(new Literal("c"))
+ .append(new Literal("d")).append(new Literal("e")).append(new Literal("f"))
+ .append(new Literal("g")).append(new Literal("h")).append(new Literal("i"))
+ .append(new Literal("j")).append(new Literal("k")).append(new Literal("l"))
+ .append(new Literal("m")).append(new Literal("n")).append(new Literal("o"))
+ ;
+
+ Repeat * rep = new Repeat( alt ,5,5 );
+ Morph m( *rep);
+
+// DUMP_R(TestMorph,(*rep),20);
+ DUMP_R(TestMorph,m,100);
+
+ return FALSE;
+}
+
+#endif
+
+static UBool TestLanguageGenerator(){
+ //LanguageGenerator g;
+ //const char *const s = "$s = p 0% | q 1%;";
+ //g.parseBNF(s, "$s");
+ UBool pass;
+ //= strcmp("q", g.next()) == 0;
+
+ const char *const def =
+ //"$a = $b;"
+ //"$b = $c;"
+ //"$c = $t;"
+ //"$t = abc $z{1,2};"
+ //"$k = a | b | c | d | e | f | g ;"
+ //"$z = q 0% | p 1% | r 1%;"
+ "$x = a ? 0%;"
+ ; // end of string
+// const char * s = "abczz";
+//
+//
+ LanguageGenerator g;
+ pass = g.parseBNF(def, "$x",TRUE);
+//// LanguageGenerator g(collationBNF, "$root", "$magic", new MagicNode());
+//
+ if (pass != LanguageGenerator::OK) return FALSE;
+
+ DUMP_R(TestLanguageGenerator, g, 20);
+ return pass;
+
+ ////UBool pass = strcmp(s,r) == 0;
+
+ //if (pass){
+ // printf("TestRandomLanguageGenerator passed.\n");
+ //} else {
+ // printf("TestRandomLanguageGenerator FAILED!!!\n");
+ //}
+ //return pass;
+}
+
+void TestWbnf(void){
+ srand((unsigned)time( NULL ));
+
+ //CALL(TestLiteral);
+ //CALL(TestSequence);
+ //CALL(TestSymbolTable);
+ //CALL(TestVariable);
+
+ //TestRepeat();
+ //TestAlternation();
+ //TestMorph();
+
+ //TestQuote();
+ //TestBuffer();
+ //TestWeightedRand();
+
+ //CALL(TestScanner);
+ //CALL(TestParser);
+ CALL(TestLanguageGenerator);
+}
+
diff --git a/Build/source/libs/icu-xetex/test/intltest/wbnf.h b/Build/source/libs/icu-xetex/test/intltest/wbnf.h
new file mode 100644
index 00000000000..7b76f8f2daa
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/wbnf.h
@@ -0,0 +1,157 @@
+/*
+ ******************************************************************************
+ * Copyright (C) 2005, International Business Machines Corporation and *
+ * others. All Rights Reserved. *
+ ******************************************************************************
+ */
+/*
+ WBNF, Weighted BNF, is an extend BNF. The most difference between WBNF
+ and standard BNF is the WBNF accepts weight for its alternation items.
+ The weight specifies the opportunity it will be selected.
+
+ The purpose of WBNF is to help generate a random string from a given grammar
+ which can be described with standard BNF. The introduction of 'weight'
+ is to guide the generator to give the specific parts different chances to be
+ generated.
+
+ Usually, the user gives LanguageGenerator the grammar description in WBNF,
+ then LanguageGenerator will generate a random string on every next() call.
+ The return code of parseBNF() can help user to determine the error,
+ either in the grammar description or in the WBNF parser itself.
+
+
+ The grammar of WBNF itself can be described in standard BNF,
+
+ escaping = _single character with a leading back slash, either inside or outside quoting_
+ quoting = _quoted with a pair of single quotation marks_
+ string = string alphabet | string digit | string quoting | string escaping |
+ alphabet | quoting | escaping
+ alphabet =
+ digit =
+ integer = integer digit | digit
+ weight = integer %
+ weight-list = weight-list weight | weight
+ var = var alphabet | var digit | $ alphabet
+
+ var-defs = var-defs var-def | var-def
+ var-def = var '=' definition;
+
+ alternation = alternation '|' alt-item | alt-item
+ alt-item = sequence | sequence weight
+
+ sequence = sequence modified | modified
+
+ modified = core | morph | quote | repeat
+ morph = modified ~
+ quote = modified @
+ repeat = modified quantifier | modified quantifier weight-list
+ quantifier = ? | * | + | { integer , integer} | {integer, } | {integer}
+
+ core = var | string | '(' definition ')'
+
+ definition = core | modified | sequence | alternation
+ definition = alternation
+
+ Remarks:
+ o Following characters are literals in preceding definition
+ but are syntax symbols in WBNF
+
+ % $ ~ @ ? * + { } ,
+
+ o Following character are syntax symbols in preceding definition
+ (sapce) contact operation, or separators to increase readability
+ = definition
+ | selection operation
+ ( ) precedence select
+ ' ' override special-character to plain character
+
+ o the definition of 'escaping' and 'quoting' are preceding definition text
+ o infinite is actually a predefine value PSEUDO_INFINIT defined in this file
+ o if weight is not presented in "alt-item' and 'repeat',
+ a default weight DEFAULT_WEIGHT defined in this file is used
+
+ o * == {0, }
+ + == {1, }
+ ? == {0, 1}
+
+ o the weight-list for repeat assigns the weights for repeat itmes one by one
+
+ demo{1,3} 30% 40% 100% == (demo)30% | (demodemo)40% | (demodemodemo)100%
+
+ To find more explain of the weight-list, please see the LIMITATION of the grammar
+
+ o but the weight-list for question mark has different meaning
+
+ demo ? 30% != demo{0,1} 30% 100%
+ demo ? 30% == demo{0,1} 70% 30%
+
+ the 70% is calculated from (DEFAULT_WEIGHT - weight)
+
+
+ Known LIMITATION of the grammar
+ For 'repeat', the parser will eat up as much as possible weights at one time,
+ discard superfluous weights if it is too much,
+ fill insufficient weights with default weight if it is too less.
+ This behavior means following definitions are equal
+
+ demo{1,3} 30% 40% 100%
+ demo{1,3} 30% 40% 100% 50%
+ demo{1,3} 30% 40%
+
+ This behavior will cause a little confusion when defining an alternation
+
+ demo{1,3} 30% 40% 100% 50% | show 20%
+
+ is interpreted as
+
+ (demo{1,3} 30% 40% 100%) 100% | show 20%
+
+ not
+
+ (demo{1,3} 30% 40% 100%) 50% | show 20%
+
+ to get an expected definition, please use parentheses.
+
+ Known LIMITATION of current implement
+ Due to the well known point alias problem, current Parser will be effectively
+ crashed if the definition looks like
+
+ $a = demo;
+ $b = $a;
+ $c = $a;
+ or
+ $a = demo;
+ $b = $a $a;
+ or
+ $a = demo;
+ $b = $b $a;
+
+ The crash will occur at delete operation in destructor or other memory release code.
+ Several plans are on hard to fix the problem. Use a smart point with reference count,
+ or use a central memory management solution. But now, it works well with collation
+ monkey test, which is the only user for WBNF.
+*/
+
+#ifndef _WBNF
+#define _WBNF
+
+#include "unicode/utypes.h"
+
+const int DEFAULT_WEIGHT = 100;
+const int PSEUDO_INFINIT = 200;
+
+class LanguageGenerator_impl;
+
+class LanguageGenerator{
+ LanguageGenerator_impl * lang_gen;
+public:
+ enum PARSE_RESULT {OK, BNF_DEF_WRONG, INCOMPLETE, NO_TOP_NODE};
+ LanguageGenerator();
+ ~LanguageGenerator();
+ PARSE_RESULT parseBNF(const char *const bnf_definition /*in*/, const char *const top_node/*in*/, UBool debug=FALSE);
+ const char *next(); /* Return a null-terminated c-string. The buffer is owned by callee. */
+};
+
+void TestWbnf(void);
+
+#endif /* _WBNF */
diff --git a/Build/source/libs/icu-xetex/test/intltest/windttst.cpp b/Build/source/libs/icu-xetex/test/intltest/windttst.cpp
new file mode 100644
index 00000000000..3869f34acfc
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/windttst.cpp
@@ -0,0 +1,197 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINDTTST.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/format.h"
+#include "unicode/numfmt.h"
+#include "unicode/locid.h"
+#include "unicode/ustring.h"
+#include "unicode/testlog.h"
+#include "unicode/utmscale.h"
+
+#include "windtfmt.h"
+#include "winutil.h"
+#include "windttst.h"
+
+#include "cmemory.h"
+#include "cstring.h"
+#include "locmap.h"
+#include "wintz.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+# include <windows.h>
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+static const char *getCalendarType(int32_t type)
+{
+ switch (type)
+ {
+ case 1:
+ case 2:
+ return "@calendar=gregorian";
+
+ case 3:
+ return "@calendar=japanese";
+
+ case 6:
+ return "@calendar=islamic";
+
+ case 7:
+ return "@calendar=buddhist";
+
+ case 8:
+ return "@calendar=hebrew";
+
+ default:
+ return "";
+ }
+}
+
+void Win32DateTimeTest::testLocales(TestLog *log)
+{
+ SYSTEMTIME winNow;
+ UDate icuNow = 0;
+ SYSTEMTIME st;
+ FILETIME ft;
+ UnicodeString zoneID;
+ const TimeZone *tz = TimeZone::createDefault();
+ TIME_ZONE_INFORMATION tzi;
+
+ uprv_memset(&tzi, 0, sizeof(tzi));
+ tz->getID(zoneID);
+ if (! uprv_getWindowsTimeZoneInfo(&tzi, zoneID.getBuffer(), zoneID.length())) {
+ UBool found = FALSE;
+ int32_t ec = TimeZone::countEquivalentIDs(zoneID);
+
+ for (int z = 0; z < ec; z += 1) {
+ UnicodeString equiv = TimeZone::getEquivalentID(zoneID, z);
+
+ if (found = uprv_getWindowsTimeZoneInfo(&tzi, equiv.getBuffer(), equiv.length())) {
+ break;
+ }
+ }
+
+ if (! found) {
+ GetTimeZoneInformation(&tzi);
+ }
+ }
+
+ GetSystemTime(&st);
+ SystemTimeToFileTime(&st, &ft);
+ SystemTimeToTzSpecificLocalTime(&tzi, &st, &winNow);
+
+ int64_t wftNow = ((int64_t) ft.dwHighDateTime << 32) + ft.dwLowDateTime;
+ UErrorCode status = U_ZERO_ERROR;
+
+ int64_t udtsNow = utmscale_fromInt64(wftNow, UDTS_WINDOWS_FILE_TIME, &status);
+
+ icuNow = (UDate) utmscale_toInt64(udtsNow, UDTS_ICU4C_TIME, &status);
+
+ int32_t lcidCount = 0;
+ Win32Utilities::LCIDRecord *lcidRecords = Win32Utilities::getLocales(lcidCount);
+
+ for(int i = 0; i < lcidCount; i += 1) {
+ UErrorCode status = U_ZERO_ERROR;
+ WCHAR longDateFormat[81], longTimeFormat[81], wdBuffer[256], wtBuffer[256];
+ int32_t calType = 0;
+
+ // NULL localeID means ICU didn't recognize this locale
+ if (lcidRecords[i].localeID == NULL) {
+ continue;
+ }
+
+ GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_SLONGDATE, longDateFormat, 81);
+ GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_STIMEFORMAT, longTimeFormat, 81);
+ GetLocaleInfoW(lcidRecords[i].lcid, LOCALE_RETURN_NUMBER|LOCALE_ICALENDARTYPE, (LPWSTR) calType, sizeof(int32_t));
+
+ char localeID[64];
+
+ uprv_strcpy(localeID, lcidRecords[i].localeID);
+ uprv_strcat(localeID, getCalendarType(calType));
+
+ UnicodeString ubBuffer, udBuffer, utBuffer;
+ Locale ulocale(localeID);
+ int32_t wdLength, wtLength;
+
+ wdLength = GetDateFormatW(lcidRecords[i].lcid, DATE_LONGDATE, &winNow, NULL, wdBuffer, ARRAY_SIZE(wdBuffer));
+ wtLength = GetTimeFormatW(lcidRecords[i].lcid, 0, &winNow, NULL, wtBuffer, ARRAY_SIZE(wtBuffer));
+
+ if (uprv_strchr(localeID, '@') > 0) {
+ uprv_strcat(localeID, ";");
+ } else {
+ uprv_strcat(localeID, "@");
+ }
+
+ uprv_strcat(localeID, "compat=host");
+
+ Locale wlocale(localeID);
+ DateFormat *wbf = DateFormat::createDateTimeInstance(DateFormat::kFull, DateFormat::kFull, wlocale);
+ DateFormat *wdf = DateFormat::createDateInstance(DateFormat::kFull, wlocale);
+ DateFormat *wtf = DateFormat::createTimeInstance(DateFormat::kFull, wlocale);
+
+ wbf->format(icuNow, ubBuffer);
+ wdf->format(icuNow, udBuffer);
+ wtf->format(icuNow, utBuffer);
+
+ if (ubBuffer.indexOf(wdBuffer, wdLength - 1, 0) < 0) {
+ UnicodeString baseName(wlocale.getBaseName());
+ UnicodeString expected(wdBuffer);
+
+ log->errln("DateTime format error for locale " + baseName + ": expected date \"" + expected +
+ "\" got \"" + ubBuffer + "\"");
+ }
+
+ if (ubBuffer.indexOf(wtBuffer, wtLength - 1, 0) < 0) {
+ UnicodeString baseName(wlocale.getBaseName());
+ UnicodeString expected(wtBuffer);
+
+ log->errln("DateTime format error for locale " + baseName + ": expected time \"" + expected +
+ "\" got \"" + ubBuffer + "\"");
+ }
+
+ if (udBuffer.compare(wdBuffer) != 0) {
+ UnicodeString baseName(wlocale.getBaseName());
+ UnicodeString expected(wdBuffer);
+
+ log->errln("Date format error for locale " + baseName + ": expected \"" + expected +
+ "\" got \"" + udBuffer + "\"");
+ }
+
+ if (utBuffer.compare(wtBuffer) != 0) {
+ UnicodeString baseName(wlocale.getBaseName());
+ UnicodeString expected(wtBuffer);
+
+ log->errln("Time format error for locale " + baseName + ": expected \"" + expected +
+ "\" got \"" + utBuffer + "\"");
+ }
+ delete wbf;
+ delete wdf;
+ delete wtf;
+ }
+
+ Win32Utilities::freeLocales(lcidRecords);
+ delete tz;
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif /* #ifdef U_WINDOWS */
diff --git a/Build/source/libs/icu-xetex/test/intltest/windttst.h b/Build/source/libs/icu-xetex/test/intltest/windttst.h
new file mode 100644
index 00000000000..b9b3e637488
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/windttst.h
@@ -0,0 +1,41 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINDTTST.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINDTTST
+#define __WINDTTST
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+/**
+ * \file
+ * \brief C++ API: Format dates using Windows API.
+ */
+
+class TestLog;
+
+class Win32DateTimeTest
+{
+public:
+ static void testLocales(TestLog *log);
+
+private:
+ Win32DateTimeTest();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
+#endif // __WINDTTST
diff --git a/Build/source/libs/icu-xetex/test/intltest/winnmtst.cpp b/Build/source/libs/icu-xetex/test/intltest/winnmtst.cpp
new file mode 100644
index 00000000000..dfbf200bff0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/winnmtst.cpp
@@ -0,0 +1,323 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINNMTST.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/format.h"
+#include "unicode/numfmt.h"
+#include "unicode/locid.h"
+#include "unicode/ustring.h"
+#include "unicode/testlog.h"
+#include "unicode/utmscale.h"
+
+#include "winnmfmt.h"
+#include "winutil.h"
+#include "winnmtst.h"
+
+#include "cmemory.h"
+#include "cstring.h"
+#include "locmap.h"
+#include "wintz.h"
+#include "uassert.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+# include <windows.h>
+# include <stdio.h>
+# include <time.h>
+# include <float.h>
+# include <locale.h>
+
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
+#define DELETE_ARRAY(array) uprv_free((void *) (array))
+
+#define STACK_BUFFER_SIZE 32
+
+#define LOOP_COUNT 1000
+
+static UBool initialized = FALSE;
+
+/**
+ * Return a random int64_t where U_INT64_MIN <= ran <= U_INT64_MAX.
+ */
+static uint64_t randomInt64(void)
+{
+ int64_t ran = 0;
+ int32_t i;
+
+ if (!initialized) {
+ srand((unsigned)time(NULL));
+ initialized = TRUE;
+ }
+
+ /* Assume rand has at least 12 bits of precision */
+ for (i = 0; i < sizeof(ran); i += 1) {
+ ((char*)&ran)[i] = (char)((rand() & 0x0FF0) >> 4);
+ }
+
+ return ran;
+}
+
+/**
+ * Return a random double where U_DOUBLE_MIN <= ran <= U_DOUBLE_MAX.
+ */
+static double randomDouble(void)
+{
+ double ran = 0;
+
+ if (!initialized) {
+ srand((unsigned)time(NULL));
+ initialized = TRUE;
+ }
+#if 0
+ int32_t i;
+ do {
+ /* Assume rand has at least 12 bits of precision */
+ for (i = 0; i < sizeof(ran); i += 1) {
+ ((char*)&ran)[i] = (char)((rand() & 0x0FF0) >> 4);
+ }
+ } while (_isnan(ran));
+#else
+ int64_t numerator = randomInt64();
+ int64_t denomenator;
+ do {
+ denomenator = randomInt64();
+ }
+ while (denomenator == 0);
+
+ ran = (double)numerator / (double)denomenator;
+#endif
+
+ return ran;
+}
+
+/**
+ * Return a random int32_t where U_INT32_MIN <= ran <= U_INT32_MAX.
+ */
+static uint32_t randomInt32(void)
+{
+ int32_t ran = 0;
+ int32_t i;
+
+ if (!initialized) {
+ srand((unsigned)time(NULL));
+ initialized = TRUE;
+ }
+
+ /* Assume rand has at least 12 bits of precision */
+ for (i = 0; i < sizeof(ran); i += 1) {
+ ((char*)&ran)[i] = (char)((rand() & 0x0FF0) >> 4);
+ }
+
+ return ran;
+}
+
+static UnicodeString &getWindowsFormat(int32_t lcid, UBool currency, UnicodeString &appendTo, const wchar_t *fmt, ...)
+{
+ wchar_t nStackBuffer[STACK_BUFFER_SIZE];
+ wchar_t *nBuffer = nStackBuffer;
+ va_list args;
+ int result;
+
+ nBuffer[0] = 0x0000;
+
+ /* Due to the arguments causing a result to be <= 23 characters (+2 for NULL and minus),
+ we don't need to reallocate the buffer. */
+ va_start(args, fmt);
+ result = _vsnwprintf(nBuffer, STACK_BUFFER_SIZE, fmt, args);
+ va_end(args);
+
+ /* Just to make sure of the above statement, we add this assert */
+ U_ASSERT(result >=0);
+ // The following code is not used because _vscwprintf isn't available on MinGW at the moment.
+ /*if (result < 0) {
+ int newLength;
+
+ va_start(args, fmt);
+ newLength = _vscwprintf(fmt, args);
+ va_end(args);
+
+ nBuffer = NEW_ARRAY(UChar, newLength + 1);
+
+ va_start(args, fmt);
+ result = _vsnwprintf(nBuffer, newLength + 1, fmt, args);
+ va_end(args);
+ }*/
+
+
+ // vswprintf is sensitive to the locale set by setlocale. For some locales
+ // it doesn't use "." as the decimal separator, which is what GetNumberFormatW
+ // and GetCurrencyFormatW both expect to see.
+ //
+ // To fix this, we scan over the string and replace the first non-digits, except
+ // for a leading "-", with a "."
+ //
+ // Note: (nBuffer[0] == L'-') will evaluate to 1 if there is a leading '-' in the
+ // number, and 0 otherwise.
+ for (wchar_t *p = &nBuffer[nBuffer[0] == L'-']; *p != L'\0'; p += 1) {
+ if (*p < L'0' || *p > L'9') {
+ *p = L'.';
+ break;
+ }
+ }
+
+ wchar_t stackBuffer[STACK_BUFFER_SIZE];
+ wchar_t *buffer = stackBuffer;
+
+ buffer[0] = 0x0000;
+
+ if (currency) {
+ result = GetCurrencyFormatW(lcid, 0, nBuffer, NULL, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ DWORD lastError = GetLastError();
+
+ if (lastError == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetCurrencyFormatW(lcid, 0, nBuffer, NULL, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ buffer[0] = 0x0000;
+ GetCurrencyFormatW(lcid, 0, nBuffer, NULL, buffer, newLength);
+ }
+ }
+ } else {
+ result = GetNumberFormatW(lcid, 0, nBuffer, NULL, buffer, STACK_BUFFER_SIZE);
+
+ if (result == 0) {
+ DWORD lastError = GetLastError();
+
+ if (lastError == ERROR_INSUFFICIENT_BUFFER) {
+ int newLength = GetNumberFormatW(lcid, 0, nBuffer, NULL, NULL, 0);
+
+ buffer = NEW_ARRAY(UChar, newLength);
+ buffer[0] = 0x0000;
+ GetNumberFormatW(lcid, 0, nBuffer, NULL, buffer, newLength);
+ }
+ }
+ }
+
+ appendTo.append(buffer, (int32_t) wcslen(buffer));
+
+ if (buffer != stackBuffer) {
+ DELETE_ARRAY(buffer);
+ }
+
+ /*if (nBuffer != nStackBuffer) {
+ DELETE_ARRAY(nBuffer);
+ }*/
+
+ return appendTo;
+}
+
+static void testLocale(const char *localeID, int32_t lcid, NumberFormat *wnf, UBool currency, TestLog *log)
+{
+ for (int n = 0; n < LOOP_COUNT; n += 1) {
+ UnicodeString u3Buffer, u6Buffer, udBuffer;
+ UnicodeString w3Buffer, w6Buffer, wdBuffer;
+ double d = randomDouble();
+ int32_t i32 = randomInt32();
+ int64_t i64 = randomInt64();
+
+ getWindowsFormat(lcid, currency, wdBuffer, L"%.16f", d);
+
+ getWindowsFormat(lcid, currency, w3Buffer, L"%I32d", i32);
+
+ getWindowsFormat(lcid, currency, w6Buffer, L"%I64d", i64);
+
+ wnf->format(d, udBuffer);
+ if (udBuffer.compare(wdBuffer) != 0) {
+ UnicodeString locale(localeID);
+
+ log->errln("Double format error for locale " + locale +
+ ": got " + udBuffer + " expected " + wdBuffer);
+ }
+
+ wnf->format(i32, u3Buffer);
+ if (u3Buffer.compare(w3Buffer) != 0) {
+ UnicodeString locale(localeID);
+
+ log->errln("int32_t format error for locale " + locale +
+ ": got " + u3Buffer + " expected " + w3Buffer);
+ }
+
+ wnf->format(i64, u6Buffer);
+ if (u6Buffer.compare(w6Buffer) != 0) {
+ UnicodeString locale(localeID);
+
+ log->errln("int64_t format error for locale " + locale +
+ ": got " + u6Buffer + " expected " + w6Buffer);
+ }
+ }
+}
+
+void Win32NumberTest::testLocales(TestLog *log)
+{
+ int32_t lcidCount = 0;
+ Win32Utilities::LCIDRecord *lcidRecords = Win32Utilities::getLocales(lcidCount);
+
+ for(int i = 0; i < lcidCount; i += 1) {
+ UErrorCode status = U_ZERO_ERROR;
+ char localeID[128];
+
+ // NULL localeID means ICU didn't recognize the lcid
+ if (lcidRecords[i].localeID == NULL) {
+ continue;
+ }
+
+ strcpy(localeID, lcidRecords[i].localeID);
+
+ if (strchr(localeID, '@') > 0) {
+ strcat(localeID, ";");
+ } else {
+ strcat(localeID, "@");
+ }
+
+ strcat(localeID, "compat=host");
+
+ Locale ulocale(localeID);
+ NumberFormat *wnf = NumberFormat::createInstance(ulocale, status);
+ NumberFormat *wcf = NumberFormat::createCurrencyInstance(ulocale, status);
+
+ testLocale(lcidRecords[i].localeID, lcidRecords[i].lcid, wnf, FALSE, log);
+ testLocale(lcidRecords[i].localeID, lcidRecords[i].lcid, wcf, TRUE, log);
+
+#if 0
+ char *old_locale = strdup(setlocale(LC_ALL, NULL));
+
+ setlocale(LC_ALL, "German");
+
+ testLocale(lcidRecords[i].localeID, lcidRecords[i].lcid, wnf, FALSE, log);
+ testLocale(lcidRecords[i].localeID, lcidRecords[i].lcid, wcf, TRUE, log);
+
+ setlocale(LC_ALL, old_locale);
+
+ free(old_locale);
+#endif
+
+ delete wcf;
+ delete wnf;
+ }
+
+ Win32Utilities::freeLocales(lcidRecords);
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif /* #ifdef U_WINDOWS */
diff --git a/Build/source/libs/icu-xetex/test/intltest/winnmtst.h b/Build/source/libs/icu-xetex/test/intltest/winnmtst.h
new file mode 100644
index 00000000000..411969ad9ef
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/winnmtst.h
@@ -0,0 +1,41 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINNMTST.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINNMTST
+#define __WINNMTST
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+/**
+ * \file
+ * \brief C++ API: Format dates using Windows API.
+ */
+
+class TestLog;
+
+class Win32NumberTest
+{
+public:
+ static void testLocales(TestLog *log);
+
+private:
+ Win32NumberTest();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
+#endif // __WINNMTST
diff --git a/Build/source/libs/icu-xetex/test/intltest/winutil.cpp b/Build/source/libs/icu-xetex/test/intltest/winutil.cpp
new file mode 100644
index 00000000000..1963221ea4e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/winutil.cpp
@@ -0,0 +1,81 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINUTIL.CPP
+*
+********************************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "winutil.h"
+#include "locmap.h"
+
+# define WIN32_LEAN_AND_MEAN
+# define VC_EXTRALEAN
+# define NOUSER
+# define NOSERVICE
+# define NOIME
+# define NOMCX
+# include <windows.h>
+# include <stdio.h>
+
+static Win32Utilities::LCIDRecord *lcidRecords = NULL;
+static int32_t lcidCount = 0;
+static int32_t lcidMax = 0;
+
+BOOL CALLBACK EnumLocalesProc(LPSTR lpLocaleString)
+{
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (lcidCount >= lcidMax) {
+ Win32Utilities::LCIDRecord *newRecords = new Win32Utilities::LCIDRecord[lcidMax + 32];
+
+ for (int i = 0; i < lcidMax; i += 1) {
+ newRecords[i] = lcidRecords[i];
+ }
+
+ delete[] lcidRecords;
+ lcidRecords = newRecords;
+ lcidMax += 32;
+ }
+
+ sscanf(lpLocaleString, "%8x", &lcidRecords[lcidCount].lcid);
+
+ lcidRecords[lcidCount].localeID = uprv_convertToPosix(lcidRecords[lcidCount].lcid, &status);
+
+ lcidCount += 1;
+
+ return TRUE;
+}
+
+Win32Utilities::LCIDRecord *Win32Utilities::getLocales(int32_t &localeCount)
+{
+ LCIDRecord *result;
+
+ EnumSystemLocalesA(EnumLocalesProc, LCID_INSTALLED);
+
+ localeCount = lcidCount;
+ result = lcidRecords;
+
+ lcidCount = lcidMax = 0;
+ lcidRecords = NULL;
+
+ return result;
+}
+
+void Win32Utilities::freeLocales(LCIDRecord *records)
+{
+ delete[] records;
+}
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif /* #ifdef U_WINDOWS */
diff --git a/Build/source/libs/icu-xetex/test/intltest/winutil.h b/Build/source/libs/icu-xetex/test/intltest/winutil.h
new file mode 100644
index 00000000000..03a0044ac6e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/intltest/winutil.h
@@ -0,0 +1,46 @@
+/*
+********************************************************************************
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+********************************************************************************
+*
+* File WINUTIL.H
+*
+********************************************************************************
+*/
+
+#ifndef __WINUTIL
+#define __WINUTIL
+
+#include "unicode/utypes.h"
+
+#ifdef U_WINDOWS
+
+#if !UCONFIG_NO_FORMATTING
+
+/**
+ * \file
+ * \brief C++ API: Format dates using Windows API.
+ */
+
+class Win32Utilities
+{
+public:
+ struct LCIDRecord
+ {
+ int32_t lcid;
+ const char *localeID;
+ };
+
+ static LCIDRecord *getLocales(int32_t &localeCount);
+ static void freeLocales(LCIDRecord *records);
+
+private:
+ Win32Utilities();
+};
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif // #ifdef U_WINDOWS
+
+#endif // __WINUTIL
diff --git a/Build/source/libs/icu-xetex/test/iotest/Makefile.in b/Build/source/libs/icu-xetex/test/iotest/Makefile.in
index 3e22044f4d5..bfdbcf4c39f 100644
--- a/Build/source/libs/icu-xetex/test/iotest/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/iotest/Makefile.in
@@ -1,6 +1,10 @@
+#******************************************************************************
+#
+# Copyright (C) 1999-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - test/iotest
-## Copyright (c) 2002-2005, International Business Machines Corporation and
-## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
@@ -8,6 +12,7 @@ top_srcdir = @top_srcdir@
top_builddir = ../..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -27,15 +32,19 @@ BUILDDIR := $(BUILDDIR:test\\iotest/../../=)
# Simplify the path for Windows 98
BUILDDIR := $(BUILDDIR:TEST\\IOTEST/../../=)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n \
--I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/io
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/io
DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
LIBS = $(LIBCTESTFW) $(LIBICUTOOLUTIL) $(LIBICUIO) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
-OBJECTS = iotest.o strtst.o filetst.o trnstst.o
+OBJECTS = iotest.o stream.o strtst.o filetst.o trnstst.o
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local dist dist-local check check-local
@@ -64,8 +73,6 @@ clean-local:
distclean-local: clean-local
$(RMV) Makefile
--include Makefile.local
-
check-local: all-local
$(INVOKE) ./$(TARGET) $(IOTEST_OPTS) || true
@@ -85,3 +92,4 @@ ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
endif
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/test/iotest/filetst.c b/Build/source/libs/icu-xetex/test/iotest/filetst.c
index 1c09dd0a02c..1e908e42a1b 100644
--- a/Build/source/libs/icu-xetex/test/iotest/filetst.c
+++ b/Build/source/libs/icu-xetex/test/iotest/filetst.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: filetst.c
@@ -53,8 +53,11 @@ static void TestFileFromICU(UFILE *myFile) {
origPtr = (void *) INT64_C(0x1000200030004000);
} else if (sizeof(void *) == 16) {
/* iSeries */
- int32_t massiveBigEndianPtr[] = { 0x10002000, 0x30004000, 0x50006000, 0x70008000 };
- origPtr = *((void **)massiveBigEndianPtr);
+ union {
+ int32_t arr[4];
+ void *ptr;
+ } massiveBigEndianPtr = {{ 0x10002000, 0x30004000, 0x50006000, 0x70008000 }};
+ origPtr = massiveBigEndianPtr.ptr;
} else {
log_err("sizeof(void*)=%d hasn't been tested before", (int)sizeof(void*));
}
@@ -90,8 +93,8 @@ static void TestFileFromICU(UFILE *myFile) {
u_fprintf(myFile, "Pointer to integer Value: %d\n", *n);
u_fprintf(myFile, "This is a long test123456789012345678901234567890123456789012345678901234567890\n");
*n = 1;
- fprintf(u_fgetfile(myFile), "\tNormal fprintf count: n=%d %n n=%d\n", (int)*n, (int*)n, (int)*n);
- fprintf(u_fgetfile(myFile), "\tNormal fprintf count value: n=%d\n", (int)*n);
+ u_fprintf(myFile, "\tNormal fprintf count: n=%d %n n=%d\n", (int)*n, (int*)n, (int)*n);
+ fprintf(u_fgetfile(myFile), "\tNormal fprintf count value: n=%d\n", (int)*n); /* Should be 27 as stated later on. */
u_fclose(myFile);
myFile = u_fopen(STANDARD_TEST_FILE, "r", NULL, NULL);
@@ -163,27 +166,27 @@ static void TestFileFromICU(UFILE *myFile) {
log_err("%%X Got: %X, Expected: %X\n", *newValuePtr, *n);
}
*newDoubleValuePtr = -1.0;
- u_fscanf(myFile, "Float %%f: %f\n", newDoubleValuePtr);
+ u_fscanf(myFile, "Float %%f: %lf\n", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%f Got: %f, Expected: %f\n", *newDoubleValuePtr, myFloat);
}
*newDoubleValuePtr = -1.0;
- u_fscanf(myFile, "Lowercase float %%e: %e\n", newDoubleValuePtr);
+ u_fscanf(myFile, "Lowercase float %%e: %le\n", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%e Got: %e, Expected: %e\n", *newDoubleValuePtr, myFloat);
}
*newDoubleValuePtr = -1.0;
- u_fscanf(myFile, "Uppercase float %%E: %E\n", newDoubleValuePtr);
+ u_fscanf(myFile, "Uppercase float %%E: %lE\n", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%E Got: %E, Expected: %E\n", *newDoubleValuePtr, myFloat);
}
*newDoubleValuePtr = -1.0;
- u_fscanf(myFile, "Lowercase float %%g: %g\n", newDoubleValuePtr);
+ u_fscanf(myFile, "Lowercase float %%g: %lg\n", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%g Got: %g, Expected: %g\n", *newDoubleValuePtr, myFloat);
}
*newDoubleValuePtr = -1.0;
- u_fscanf(myFile, "Uppercase float %%G: %G\n", newDoubleValuePtr);
+ u_fscanf(myFile, "Uppercase float %%G: %lG\n", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%G Got: %G, Expected: %G\n", *newDoubleValuePtr, myFloat);
}
@@ -433,12 +436,12 @@ static void TestfgetsBuffers(void) {
}
u_fputc(0x3BC, myFile);
- if (u_fputc(0x110000, myFile) != U_EOF) {
+ if (u_fputc(0x110000, myFile) != U_EOF) {
log_err("u_fputc should return U_EOF for 0x110000.\n");
- }
- if (u_fputc((UChar32)0xFFFFFFFFu, myFile) != U_EOF) {
+ }
+ if (u_fputc((UChar32)0xFFFFFFFFu, myFile) != U_EOF) {
log_err("u_fputc should return U_EOF for 0xFFFFFFFF.\n");
- }
+ }
u_fputc(0xFF41, myFile);
u_memset(buffer, 0xBEEF, sizeof(buffer)/sizeof(buffer[0]));
u_memset(expectedBuffer, 0, sizeof(expectedBuffer)/sizeof(expectedBuffer[0]));
@@ -1396,32 +1399,32 @@ static void TestVargs(void) {
static void TestUnicodeFormat(void)
{
#if !UCONFIG_NO_FORMATTING
- /* Make sure that invariant conversion doesn't happen on the _u formats. */
+ /* Make sure that invariant conversion doesn't happen on the _u formats. */
UChar myUString[256];
- UFILE *myFile;
- static const UChar TEST_STR[] = { 0x03BC, 0x0025, 0x0024, 0};
- static const UChar PERCENT_S[] = { 0x03BC, 0x0025, 0x0053, 0};
+ UFILE *myFile;
+ static const UChar TEST_STR[] = { 0x03BC, 0x0025, 0x0024, 0};
+ static const UChar PERCENT_S[] = { 0x03BC, 0x0025, 0x0053, 0};
- u_memset(myUString, 0x2a, sizeof(myUString)/sizeof(*myUString));
+ u_memset(myUString, 0x2a, sizeof(myUString)/sizeof(*myUString));
myFile = u_fopen(STANDARD_TEST_FILE, "w", NULL, "UTF-8");
if (!myFile) {
log_err("Test file can't be opened\n");
return;
}
- u_fprintf_u(myFile, PERCENT_S, TEST_STR);
- u_fclose(myFile);
+ u_fprintf_u(myFile, PERCENT_S, TEST_STR);
+ u_fclose(myFile);
myFile = u_fopen(STANDARD_TEST_FILE, "r", NULL, "UTF-8");
if (!myFile) {
log_err("Test file can't be opened\n");
return;
}
- u_fscanf_u(myFile, PERCENT_S, myUString);
- u_fclose(myFile);
- if (u_strcmp(TEST_STR, myUString) != 0) {
+ u_fscanf_u(myFile, PERCENT_S, myUString);
+ u_fclose(myFile);
+ if (u_strcmp(TEST_STR, myUString) != 0) {
log_err("u_fscanf_u doesn't work.\n");
- }
+ }
#endif
}
diff --git a/Build/source/libs/icu-xetex/test/iotest/iotest.cpp b/Build/source/libs/icu-xetex/test/iotest/iotest.cpp
index 250aafb6237..748ae3584d8 100644
--- a/Build/source/libs/icu-xetex/test/iotest/iotest.cpp
+++ b/Build/source/libs/icu-xetex/test/iotest/iotest.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: iotest.cpp
@@ -14,7 +14,6 @@
#include "unicode/ustdio.h"
-#include "unicode/ustream.h"
#include "unicode/uclean.h"
#include "unicode/ucnv.h"
@@ -26,36 +25,9 @@
#include "unicode/tstdtmod.h"
#include "putilimp.h"
-#if U_IOSTREAM_SOURCE >= 199711
-#include <iostream>
-#if defined(U_LINUX) || defined(U_CYGWIN)
-#define USE_SSTREAM 1
-#include <sstream>
-#else
-// <strstream> is deprecated on some platforms, and the compiler complains very loudly if you use it.
-#include <strstream>
-#endif
-using namespace std;
-#elif U_IOSTREAM_SOURCE >= 198506
-#include <iostream.h>
-#include <strstream.h>
-#endif
-
#include <string.h>
#include <stdlib.h>
-U_CDECL_BEGIN
-#ifdef U_WINDOWS
-const UChar NEW_LINE[] = {0x0d,0x0a,0};
-const char C_NEW_LINE[] = {0x0d,0x0a,0};
-#define UTF8_NEW_LINE "\x0d\x0a"
-#else
-const UChar NEW_LINE[] = {0x0a,0};
-const char C_NEW_LINE[] = {'\n',0};
-#define UTF8_NEW_LINE "\x0a"
-#endif
-U_CDECL_END
-
class DataDrivenLogger : public TestLog {
static const char* fgDataDir;
static char *fgTestDataPath;
@@ -389,6 +361,7 @@ static void U_CALLCONV DataDrivenScanf(void)
int32_t i32, expected32;
int64_t i64, expected64;
double dbl, expectedDbl;
+ volatile float flt, expectedFlt; // Use volatile in order to get around an Intel compiler issue.
int32_t uBufferLenReturned;
//const char *fileLocale = "en_US_POSIX";
@@ -438,6 +411,15 @@ static void U_CALLCONV DataDrivenScanf(void)
i, dbl, expectedDbl);
}
break;
+ case 0x66: // 'f' float
+ expectedFlt = (float)atof(u_austrcpy(cBuffer, expectedResult));
+ uBufferLenReturned = u_sscanf_u(argument, format, &flt);
+ //uFileBufferLenReturned = u_fscanf_u(testFile, format, flt);
+ if (flt != expectedFlt) {
+ log_err("error in scanf test case[%d] Got: %f Exp: %f\n",
+ i, flt, expectedFlt);
+ }
+ break;
case 0x31: // '1' int8_t
expected8 = (int8_t)uto64(expectedResult);
uBufferLenReturned = u_sscanf_u(argument, format, &i8);
@@ -682,88 +664,6 @@ static void U_CALLCONV DataDrivenPrintfPrecision(void)
}
U_CDECL_END
-U_CDECL_BEGIN
-static void U_CALLCONV TestStream(void)
-{
-#if U_IOSTREAM_SOURCE >= 198506
- const UChar thisMu[] = { 0x74, 0x48, 0x69, 0x73, 0x3BC, 0};
- const UChar mu[] = { 0x6D, 0x75, 0};
- UnicodeString str1 = UNICODE_STRING_SIMPLE("str1");
- UnicodeString str2 = UNICODE_STRING_SIMPLE(" <<");
- UnicodeString str3 = UNICODE_STRING_SIMPLE("2");
- UnicodeString str4 = UNICODE_STRING_SIMPLE(" UTF-8 ");
- UnicodeString inStr = UNICODE_STRING_SIMPLE(" UTF-8 ");
- UnicodeString inStr2;
- char defConvName[UCNV_MAX_CONVERTER_NAME_LENGTH*2];
- char inStrC[128];
- UErrorCode status = U_ZERO_ERROR;
- UConverter *defConv;
- static const char testStr[] = "\x42\x65\x67\x69\x6E\x6E\x69\x6E\x67\x20\x6F\x66\x20\x74\x65\x73\x74\x20\x73\x74\x72\x31\x20\x20\x20\x3C\x3C\x32\x31\x20" UTF8_NEW_LINE "\x20\x55\x54\x46\x2D\x38\x20\xCE\xBC\xF0\x90\x80\x81\xF0\x90\x80\x82";
-
- str4.append((UChar32)0x03BC); /* mu */
- str4.append((UChar32)0x10001);
- str4.append((UChar32)0x10002);
-
- /* release the default converter and use utf-8 for a bit */
- defConv = u_getDefaultConverter(&status);
- if (U_FAILURE(status)) {
- log_err("Can't get default converter\n");
- return;
- }
- ucnv_close(defConv);
- strncpy(defConvName, ucnv_getDefaultName(), sizeof(defConvName)/sizeof(defConvName[0]));
- ucnv_setDefaultName("UTF-8");
-
- static const char * const TESTSTRING = "\x20\x74\x48\x69\x73\xCE\xBC\xE2\x80\x82\x20\x6D\x75\x20\x77\x6F\x72\x6C\x64";
-#ifdef USE_SSTREAM
- ostringstream outTestStream;
- istringstream inTestStream(TESTSTRING);
-#else
- char testStreamBuf[512];
- ostrstream outTestStream(testStreamBuf, sizeof(testStreamBuf));
- istrstream inTestStream(TESTSTRING, 0);
-
- /* initialize testStreamBuf */
- memset(testStreamBuf, '*', sizeof(testStreamBuf));
- testStreamBuf[sizeof(testStreamBuf)-1] = 0;
-#endif
-
- outTestStream << "\x42\x65\x67\x69\x6E\x6E\x69\x6E\x67\x20\x6F\x66\x20\x74\x65\x73\x74\x20";
- outTestStream << str1 << "\x20\x20" << str2 << str3 << "\x31\x20" << UTF8_NEW_LINE << str4 << ends;
-#ifdef USE_SSTREAM
- string tempStr = outTestStream.str();
- const char *testStreamBuf = tempStr.c_str();
-#endif
- if (strcmp(testStreamBuf, testStr) != 0) {
- log_err("Got: \"%s\", Expected: \"%s\"\n", testStreamBuf, testStr);
- }
-
- inTestStream >> inStr >> inStr2;
- if (inStr.compare(thisMu) != 0) {
- u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
- inStrC[inStr.length()] = 0;
- log_err("Got: \"%s\", Expected: \"tHis\\u03BC\"\n", inStrC);
- }
- if (inStr2.compare(mu) != 0) {
- u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
- inStrC[inStr.length()] = 0;
- log_err("Got: \"%s\", Expected: \"mu\"\n", inStrC);
- }
-
- /* return the default converter to the original state. */
- ucnv_setDefaultName(defConvName);
- defConv = u_getDefaultConverter(&status);
- if (U_FAILURE(status)) {
- log_err("Can't get default converter");
- return;
- }
- ucnv_close(defConv);
-#else
- log_info("U_IOSTREAM_SOURCE is disabled\n");
-#endif
-}
-U_CDECL_END
-
static void addAllTests(TestNode** root) {
addFileTest(root);
addStringTest(root);
@@ -774,7 +674,7 @@ static void addAllTests(TestNode** root) {
addTest(root, &DataDrivenPrintfPrecision, "datadriv/DataDrivenPrintfPrecision");
addTest(root, &DataDrivenScanf, "datadriv/DataDrivenScanf");
#endif
- addTest(root, &TestStream, "stream/TestStream");
+ addStreamTests(root);
}
/* returns the path to icu/source/data/out */
diff --git a/Build/source/libs/icu-xetex/test/iotest/iotest.h b/Build/source/libs/icu-xetex/test/iotest/iotest.h
index 6e63d958177..6d522dc435d 100644
--- a/Build/source/libs/icu-xetex/test/iotest/iotest.h
+++ b/Build/source/libs/icu-xetex/test/iotest/iotest.h
@@ -27,6 +27,9 @@ addFileTest(TestNode** root);
U_CFUNC void
addTranslitTest(TestNode** root);
+U_CFUNC void
+addStreamTests(TestNode** root);
+
U_CDECL_BEGIN
extern const UChar NEW_LINE[];
extern const char C_NEW_LINE[];
diff --git a/Build/source/libs/icu-xetex/test/iotest/iotest.vcproj b/Build/source/libs/icu-xetex/test/iotest/iotest.vcproj
index 682f9a39258..68ea46e094a 100644
--- a/Build/source/libs/icu-xetex/test/iotest/iotest.vcproj
+++ b/Build/source/libs/icu-xetex/test/iotest/iotest.vcproj
@@ -29,6 +29,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/iotest.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -90,6 +91,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/iotest.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -139,23 +141,38 @@
Name="Source Files"
Filter="cpp;c;cxx">
<File
- RelativePath="filetst.c">
+ RelativePath=".\filetst.c">
</File>
<File
- RelativePath="iotest.cpp">
+ RelativePath=".\iotest.cpp">
</File>
<File
- RelativePath="strtst.c">
+ RelativePath=".\stream.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
</File>
<File
- RelativePath="trnstst.c">
+ RelativePath=".\strtst.c">
+ </File>
+ <File
+ RelativePath=".\trnstst.c">
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx">
<File
- RelativePath="iotest.h">
+ RelativePath=".\iotest.h">
</File>
</Filter>
</Files>
diff --git a/Build/source/libs/icu-xetex/test/iotest/stream.cpp b/Build/source/libs/icu-xetex/test/iotest/stream.cpp
new file mode 100644
index 00000000000..ccc70632235
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/iotest/stream.cpp
@@ -0,0 +1,135 @@
+/*
+**********************************************************************
+* Copyright (C) 2002-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+* file name: iotest.cpp
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2002feb21
+* created by: George Rhoten
+*/
+
+
+#include "unicode/ustream.h"
+
+#include "unicode/ucnv.h"
+#include "unicode/ustring.h"
+#include "ustr_cnv.h"
+#include "iotest.h"
+
+#if U_IOSTREAM_SOURCE >= 199711
+#if defined(__GNUC__) && __GNUC__ >= 4
+#define USE_SSTREAM 1
+#include <sstream>
+#else
+// <strstream> is deprecated on some platforms, and the compiler complains very loudly if you use it.
+#include <strstream>
+#endif
+using namespace std;
+#elif U_IOSTREAM_SOURCE >= 198506
+#include <strstream.h>
+#endif
+
+#include <string.h>
+
+U_CDECL_BEGIN
+#ifdef U_WINDOWS
+const UChar NEW_LINE[] = {0x0d,0x0a,0};
+const char C_NEW_LINE[] = {0x0d,0x0a,0};
+#define UTF8_NEW_LINE "\x0d\x0a"
+#else
+const UChar NEW_LINE[] = {0x0a,0};
+const char C_NEW_LINE[] = {'\n',0};
+#define UTF8_NEW_LINE "\x0a"
+#endif
+U_CDECL_END
+
+U_CDECL_BEGIN
+static void U_CALLCONV TestStream(void)
+{
+#if U_IOSTREAM_SOURCE >= 198506
+ const UChar thisMu[] = { 0x74, 0x48, 0x69, 0x73, 0x3BC, 0};
+ const UChar mu[] = { 0x6D, 0x75, 0};
+ UnicodeString str1 = UNICODE_STRING_SIMPLE("str1");
+ UnicodeString str2 = UNICODE_STRING_SIMPLE(" <<");
+ UnicodeString str3 = UNICODE_STRING_SIMPLE("2");
+ UnicodeString str4 = UNICODE_STRING_SIMPLE(" UTF-8 ");
+ UnicodeString inStr = UNICODE_STRING_SIMPLE(" UTF-8 ");
+ UnicodeString inStr2;
+ char defConvName[UCNV_MAX_CONVERTER_NAME_LENGTH*2];
+ char inStrC[128];
+ UErrorCode status = U_ZERO_ERROR;
+ UConverter *defConv;
+ static const char testStr[] = "\x42\x65\x67\x69\x6E\x6E\x69\x6E\x67\x20\x6F\x66\x20\x74\x65\x73\x74\x20\x73\x74\x72\x31\x20\x20\x20\x3C\x3C\x32\x31\x20" UTF8_NEW_LINE "\x20\x55\x54\x46\x2D\x38\x20\xCE\xBC\xF0\x90\x80\x81\xF0\x90\x80\x82";
+
+ str4.append((UChar32)0x03BC); /* mu */
+ str4.append((UChar32)0x10001);
+ str4.append((UChar32)0x10002);
+
+ /* release the default converter and use utf-8 for a bit */
+ defConv = u_getDefaultConverter(&status);
+ if (U_FAILURE(status)) {
+ log_err("Can't get default converter\n");
+ return;
+ }
+ ucnv_close(defConv);
+ strncpy(defConvName, ucnv_getDefaultName(), sizeof(defConvName)/sizeof(defConvName[0]));
+ ucnv_setDefaultName("UTF-8");
+
+ static const char * const TESTSTRING = "\x20\x74\x48\x69\x73\xCE\xBC\xE2\x80\x82\x20\x6D\x75\x20\x77\x6F\x72\x6C\x64";
+#ifdef USE_SSTREAM
+ ostringstream outTestStream;
+ istringstream inTestStream(TESTSTRING);
+#else
+ char testStreamBuf[512];
+ ostrstream outTestStream(testStreamBuf, sizeof(testStreamBuf));
+ istrstream inTestStream(TESTSTRING, 0);
+
+ /* initialize testStreamBuf */
+ memset(testStreamBuf, '*', sizeof(testStreamBuf));
+ testStreamBuf[sizeof(testStreamBuf)-1] = 0;
+#endif
+
+ outTestStream << "\x42\x65\x67\x69\x6E\x6E\x69\x6E\x67\x20\x6F\x66\x20\x74\x65\x73\x74\x20";
+ outTestStream << str1 << "\x20\x20" << str2 << str3 << "\x31\x20" << UTF8_NEW_LINE << str4 << ends;
+#ifdef USE_SSTREAM
+ string tempStr = outTestStream.str();
+ const char *testStreamBuf = tempStr.c_str();
+#endif
+ if (strcmp(testStreamBuf, testStr) != 0) {
+ log_err("Got: \"%s\", Expected: \"%s\"\n", testStreamBuf, testStr);
+ }
+
+ inTestStream >> inStr >> inStr2;
+ if (inStr.compare(thisMu) != 0) {
+ u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
+ inStrC[inStr.length()] = 0;
+ log_err("Got: \"%s\", Expected: \"tHis\\u03BC\"\n", inStrC);
+ }
+ if (inStr2.compare(mu) != 0) {
+ u_austrncpy(inStrC, inStr.getBuffer(), inStr.length());
+ inStrC[inStr.length()] = 0;
+ log_err("Got: \"%s\", Expected: \"mu\"\n", inStrC);
+ }
+
+ /* return the default converter to the original state. */
+ ucnv_setDefaultName(defConvName);
+ defConv = u_getDefaultConverter(&status);
+ if (U_FAILURE(status)) {
+ log_err("Can't get default converter");
+ return;
+ }
+ ucnv_close(defConv);
+#else
+ log_info("U_IOSTREAM_SOURCE is disabled\n");
+#endif
+}
+U_CDECL_END
+
+U_CFUNC void addStreamTests(TestNode** root) {
+ addTest(root, &TestStream, "stream/TestStream");
+}
+
diff --git a/Build/source/libs/icu-xetex/test/iotest/strtst.c b/Build/source/libs/icu-xetex/test/iotest/strtst.c
index 906f519d3c2..0412f25efb2 100644
--- a/Build/source/libs/icu-xetex/test/iotest/strtst.c
+++ b/Build/source/libs/icu-xetex/test/iotest/strtst.c
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* file name: strtst.c
@@ -42,8 +42,11 @@ static void TestString(void) {
origPtr = (void *) INT64_C(0x1000200030004000);
} else if (sizeof(void *) == 16) {
/* iSeries */
- int32_t massiveBigEndianPtr[] = { 0x10002000, 0x30004000, 0x50006000, 0x70008000 };
- origPtr = *((void **)massiveBigEndianPtr);
+ union {
+ int32_t arr[4];
+ void *ptr;
+ } massiveBigEndianPtr = {{ 0x10002000, 0x30004000, 0x50006000, 0x70008000 }};
+ origPtr = massiveBigEndianPtr.ptr;
} else {
log_err("sizeof(void*)=%d hasn't been tested before", (int)sizeof(void*));
}
@@ -93,35 +96,35 @@ static void TestString(void) {
u_sprintf(uStringBuf, "Float f: %f", myFloat);
*newDoubleValuePtr = -1.0;
- u_sscanf(uStringBuf, "Float f: %f", newDoubleValuePtr);
+ u_sscanf(uStringBuf, "Float f: %lf", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%f Got: %f, Expected: %f\n", *newDoubleValuePtr, myFloat);
}
u_sprintf(uStringBuf, "Lowercase float e: %e", myFloat);
*newDoubleValuePtr = -1.0;
- u_sscanf(uStringBuf, "Lowercase float e: %e", newDoubleValuePtr);
+ u_sscanf(uStringBuf, "Lowercase float e: %le", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%e Got: %e, Expected: %e\n", *newDoubleValuePtr, myFloat);
}
u_sprintf(uStringBuf, "Uppercase float E: %E", myFloat);
*newDoubleValuePtr = -1.0;
- u_sscanf(uStringBuf, "Uppercase float E: %E", newDoubleValuePtr);
+ u_sscanf(uStringBuf, "Uppercase float E: %lE", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%E Got: %E, Expected: %E\n", *newDoubleValuePtr, myFloat);
}
u_sprintf(uStringBuf, "Lowercase float g: %g", myFloat);
*newDoubleValuePtr = -1.0;
- u_sscanf(uStringBuf, "Lowercase float g: %g", newDoubleValuePtr);
+ u_sscanf(uStringBuf, "Lowercase float g: %lg", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%g Got: %g, Expected: %g\n", *newDoubleValuePtr, myFloat);
}
u_sprintf(uStringBuf, "Uppercase float G: %G", myFloat);
*newDoubleValuePtr = -1.0;
- u_sscanf(uStringBuf, "Uppercase float G: %G", newDoubleValuePtr);
+ u_sscanf(uStringBuf, "Uppercase float G: %lG", newDoubleValuePtr);
if (myFloat != *newDoubleValuePtr) {
log_err("%%G Got: %G, Expected: %G\n", *newDoubleValuePtr, myFloat);
}
@@ -279,7 +282,7 @@ static void TestLocalizedString(void) {
u_fprintf(strFile, "%d", 1234);
u_frewind(strFile);
- numResult = -1;
+ numResult = -1;
u_fscanf(strFile, "%d", &numResult);
u_fclose(strFile);
u_uastrcpy(uBuffer,"1.234");
@@ -294,15 +297,15 @@ static void TestLocalizedString(void) {
strFile = u_fstropen(testStr, sizeof(testStr)/sizeof(testStr[0]), NULL);
u_fprintf(strFile, "%d", 1234);
u_frewind(strFile);
- numResult = -1;
+ numResult = -1;
u_fscanf(strFile, "%d", &numResult);
u_fclose(strFile);
if (numResult != 1234) {
- log_err("u_fscanf failed to work on a default locale string Got: %d, Expected: 1234\n", numResult);
+ log_err("u_fscanf failed to work on a default locale string Got: %d, Expected: 1234\n", numResult);
+ }
+ if (u_fstropen(testStr, -1, NULL) != NULL) {
+ log_err("u_fstropen returned a UFILE* on a negative buffer size\n", numResult);
}
- if (u_fstropen(testStr, -1, NULL) != NULL) {
- log_err("u_fstropen returned a UFILE* on a negative buffer size\n", numResult);
- }
#endif
}
@@ -728,9 +731,11 @@ static void TestVargs(void) {
static void TestCount(void) {
#if !UCONFIG_NO_FORMATTING
+ static const UChar x15[] = { 0x78, 0x31, 0x35, 0 };
UChar testStr[16];
+ UChar character;
int16_t i16 = -1;
- int32_t i32 = -1;
+ int32_t i32 = -1, actual_count, actual_result;
int64_t i64 = -1;
u_uastrcpy(testStr, "1233456789");
if (u_sscanf(testStr, "%*3[123]%n%*[1-9]", &i32) != 0) {
@@ -751,6 +756,19 @@ static void TestCount(void) {
if (i64 != 10) {
log_err("test 3: scanf did not return 10\n", i64);
}
+ actual_result = u_sscanf(x15, "%C%d%n", &character, &i32, &actual_count);
+ if (actual_result != 2) {
+ log_err("scanf should return 2, but returned %d\n", actual_result);
+ }
+ if (character != 0x78) {
+ log_err("scanf should return 0x78 for the character, but returned %X\n", character);
+ }
+ if (i32 != 15) {
+ log_err("scanf should return 15 for the number, but returned %d\n", i32);
+ }
+ if (actual_count != 3) {
+ log_err("scanf should return 3 for actual_count, but returned %d\n", actual_count);
+ }
#endif
}
diff --git a/Build/source/libs/icu-xetex/test/letest/.cvsignore b/Build/source/libs/icu-xetex/test/letest/.cvsignore
index 169a662430a..903b98913a7 100644
--- a/Build/source/libs/icu-xetex/test/letest/.cvsignore
+++ b/Build/source/libs/icu-xetex/test/letest/.cvsignore
@@ -1,7 +1,7 @@
Makefile
*.d
-*.pdb
+*.o
Debug
Release
-tmp
-.#*
+letest
+letest.exe
diff --git a/Build/source/libs/icu-xetex/test/letest/FontTableCache.cpp b/Build/source/libs/icu-xetex/test/letest/FontTableCache.cpp
index 6dbaddf3699..cf28de2228b 100644
--- a/Build/source/libs/icu-xetex/test/letest/FontTableCache.cpp
+++ b/Build/source/libs/icu-xetex/test/letest/FontTableCache.cpp
@@ -1,12 +1,13 @@
/*
**********************************************************************
- * Copyright (C) 2003-2005, International Business Machines
+ * Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*/
#include "layout/LETypes.h"
+#include "letest.h"
#include "FontTableCache.h"
#define TABLE_CACHE_INIT 5
@@ -21,7 +22,7 @@ struct FontTableCacheEntry
FontTableCache::FontTableCache()
: fTableCacheCurr(0), fTableCacheSize(TABLE_CACHE_INIT)
{
- fTableCache = LE_NEW_ARRAY(FontTableCacheEntry, fTableCacheSize);
+ fTableCache = NEW_ARRAY(FontTableCacheEntry, fTableCacheSize);
if (fTableCache == NULL) {
fTableCacheSize = 0;
@@ -37,7 +38,7 @@ FontTableCache::FontTableCache()
FontTableCache::~FontTableCache()
{
for (int i = fTableCacheCurr - 1; i >= 0; i -= 1) {
- LE_DELETE_ARRAY(fTableCache[i].table);
+ DELETE_ARRAY(fTableCache[i].table);
fTableCache[i].tag = 0;
fTableCache[i].table = NULL;
@@ -45,7 +46,7 @@ FontTableCache::~FontTableCache()
fTableCacheCurr = 0;
- LE_DELETE_ARRAY(fTableCache);
+ DELETE_ARRAY(fTableCache);
}
const void *FontTableCache::find(LETag tableTag) const
@@ -68,7 +69,7 @@ void FontTableCache::add(LETag tableTag, const void *table)
if (fTableCacheCurr >= fTableCacheSize) {
le_int32 newSize = fTableCacheSize + TABLE_CACHE_GROW;
- fTableCache = (FontTableCacheEntry *) LE_GROW_ARRAY(fTableCache, newSize);
+ fTableCache = (FontTableCacheEntry *) GROW_ARRAY(fTableCache, newSize);
for (le_int32 i = fTableCacheSize; i < newSize; i += 1) {
fTableCache[i].tag = 0;
diff --git a/Build/source/libs/icu-xetex/test/letest/Makefile.in b/Build/source/libs/icu-xetex/test/letest/Makefile.in
index 400fc55bbfd..55f6b88f811 100644
--- a/Build/source/libs/icu-xetex/test/letest/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/letest/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - test/letest
-## Copyright (c) 2001-2003, International Business Machines Corporation and
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -23,11 +23,24 @@ CLEANFILES = *~ $(DEPS)
TESTTARGET = letest
GENTARGET = gendata
-CPPFLAGS += -DLE_USE_CMEMORY -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/layout -I$(top_srcdir)
-LIBS = $(LIBICULE) $(LIBICUUC) @LIBS@ @LIB_M@
+BUILDDIR := $(CURR_SRCCODE_FULL_DIR)/../../
+# Simplify the path for Unix
+BUILDDIR := $(BUILDDIR:test/cintltst/../../=)
+# Simplify the path for Windows
+BUILDDIR := $(BUILDDIR:test\\cintltst/../../=)
+# Simplify the path for Windows 98
+BUILDDIR := $(BUILDDIR:TEST\\CINTLTST/../../=)
-COMMONOBJECTS = cmaps.o FontTableCache.o PortableFontInstance.o
-TESTOBJECTS = testdata.o letest.o
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/layout -I$(top_srcdir)
+DEFS += -D'U_TOPSRCDIR="$(top_srcdir)/"' -D'U_TOPBUILDDIR="$(BUILDDIR)"'
+LIBS = $(LIBICULE) $(LIBICUUC) $(LIBICUI18N) $(LIBCTESTFW) $(LIBICUTOOLUTIL) @LIBS@ @LIB_M@
+
+COMMONOBJECTS = letsutil.o cmaps.o FontTableCache.o SimpleFontInstance.o PortableFontInstance.o
+TESTOBJECTS = letest.o
GENOBJECTS = gendata.o
OBJECTS = $(COMMONOBJECTS) $(TESTOBJECTS) $(GENOBJECTS)
diff --git a/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.cpp b/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.cpp
index 4b3ec35419a..c96b6ed762c 100644
--- a/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.cpp
+++ b/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -19,6 +19,7 @@
#include "PortableFontInstance.h"
+#include "letest.h"
#include "sfnt.h"
#include <string.h>
@@ -92,7 +93,7 @@ PortableFontInstance::PortableFontInstance(const char *fileName, float pointSize
// const NAMETable *nameTable = NULL;
le_uint16 numTables = 0;
- fDirectory = (const SFNTDirectory *) LE_NEW_ARRAY(char, dirSize);
+ fDirectory = (const SFNTDirectory *) NEW_ARRAY(char, dirSize);
if (fDirectory == NULL) {
status = LE_MEMORY_ALLOCATION_ERROR;
@@ -178,13 +179,13 @@ PortableFontInstance::~PortableFontInstance()
delete fCMAPMapper;
- LE_DELETE_ARRAY(fDirectory);
+ DELETE_ARRAY(fDirectory);
}
}
void PortableFontInstance::deleteTable(const void *table) const
{
- LE_DELETE_ARRAY(table);
+ DELETE_ARRAY(table);
}
const DirectoryEntry *PortableFontInstance::findTable(LETag tag) const
@@ -224,7 +225,7 @@ const void *PortableFontInstance::readTable(LETag tag, le_uint32 *length) const
*length = SWAPL(entry->length);
- void *table = LE_NEW_ARRAY(char, *length);
+ void *table = NEW_ARRAY(char, *length);
if (table != NULL) {
fseek(fFile, SWAPL(entry->offset), SEEK_SET);
@@ -279,9 +280,9 @@ const char *PortableFontInstance::getNameString(le_uint16 nameID, le_uint16 plat
SWAPW(nameRecord->languageID) == languageID && SWAPW(nameRecord->nameID) == nameID) {
char *name = ((char *) fNAMETable) + fNameStringOffset + SWAPW(nameRecord->offset);
le_uint16 length = SWAPW(nameRecord->length);
- char *result = LE_NEW_ARRAY(char, length + 2);
+ char *result = NEW_ARRAY(char, length + 2);
- LE_ARRAY_COPY(result, name, length);
+ ARRAY_COPY(result, name, length);
result[length] = result[length + 1] = 0;
return result;
@@ -293,7 +294,7 @@ const char *PortableFontInstance::getNameString(le_uint16 nameID, le_uint16 plat
void PortableFontInstance::deleteNameString(const char *name) const
{
- LE_DELETE_ARRAY(name);
+ DELETE_ARRAY(name);
}
void PortableFontInstance::getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
@@ -334,3 +335,66 @@ le_bool PortableFontInstance::getGlyphPoint(LEGlyphID /*glyph*/, le_int32 /*poin
return FALSE;
}
+le_int32 PortableFontInstance::getUnitsPerEM() const
+{
+ return fUnitsPerEM;
+}
+
+le_uint32 PortableFontInstance::getFontChecksum() const
+{
+ return fFontChecksum;
+}
+
+le_int32 PortableFontInstance::getAscent() const
+{
+ return fAscent;
+}
+
+le_int32 PortableFontInstance::getDescent() const
+{
+ return fDescent;
+}
+
+le_int32 PortableFontInstance::getLeading() const
+{
+ return fLeading;
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID PortableFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
+{
+ return LEFontInstance::mapCharToGlyph(ch, mapper, filterZeroWidth);
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID PortableFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
+{
+ return LEFontInstance::mapCharToGlyph(ch, mapper);
+}
+
+LEGlyphID PortableFontInstance::mapCharToGlyph(LEUnicode32 ch) const
+{
+ return fCMAPMapper->unicodeToGlyph(ch);
+}
+
+float PortableFontInstance::getXPixelsPerEm() const
+{
+ return fPointSize;
+}
+
+float PortableFontInstance::getYPixelsPerEm() const
+{
+ return fPointSize;
+}
+
+float PortableFontInstance::getScaleFactorX() const
+{
+ return 1.0;
+}
+
+float PortableFontInstance::getScaleFactorY() const
+{
+ return 1.0;
+}
diff --git a/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.h b/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.h
index eff9efe5ade..3c22d5ebe91 100644
--- a/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.h
+++ b/Build/source/libs/icu-xetex/test/letest/PortableFontInstance.h
@@ -2,7 +2,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -77,59 +77,37 @@ public:
virtual void deleteNameString(const char *name) const;
- virtual le_int32 getUnitsPerEM() const
- {
- return fUnitsPerEM;
- };
+ virtual le_int32 getUnitsPerEM() const;
- virtual le_uint32 getFontChecksum() const
- {
- return fFontChecksum;
- }
+ virtual le_uint32 getFontChecksum() const;
- virtual le_int32 getAscent() const
- {
- return fAscent;
- }
+ virtual le_int32 getAscent() const;
- virtual le_int32 getDescent() const
- {
- return fDescent;
- }
+ virtual le_int32 getDescent() const;
- virtual le_int32 getLeading() const
- {
- return fLeading;
- }
+ virtual le_int32 getLeading() const;
- virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const
- {
- return fCMAPMapper->unicodeToGlyph(ch);
- }
+ // We really want to inherit this method from the superclass, but some compilers
+ // issue a warning if we don't implement it...
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const;
+
+ // We really want to inherit this method from the superclass, but some compilers
+ // issue a warning if we don't implement it...
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const;
+
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const;
virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const;
virtual le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point) const;
- float getXPixelsPerEm() const
- {
- return fPointSize;
- };
-
- float getYPixelsPerEm() const
- {
- return fPointSize;
- };
-
- float getScaleFactorX() const
- {
- return 1.0;
- }
-
- float getScaleFactorY() const
- {
- return 1.0;
- }
+ float getXPixelsPerEm() const;
+
+ float getYPixelsPerEm() const;
+
+ float getScaleFactorX() const;
+
+ float getScaleFactorY() const;
};
diff --git a/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.cpp b/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.cpp
new file mode 100644
index 00000000000..29543e3f4a0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.cpp
@@ -0,0 +1,132 @@
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 1999-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: SimpleFontInstance.cpp
+ *
+ * created on: 03/30/2006
+ * created by: Eric R. Mader
+ */
+
+#include "unicode/utypes.h"
+#include "unicode/uchar.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEFontInstance.h"
+
+#include "CanonShaping.h"
+#include "SimpleFontInstance.h"
+
+SimpleFontInstance::SimpleFontInstance(float pointSize, LEErrorCode &status)
+ : fPointSize(pointSize), fAscent(0), fDescent(0)
+{
+ if (LE_FAILURE(status)) {
+ return;
+ }
+
+ fAscent = (le_int32) yUnitsToPoints(2000.0);
+ fDescent = (le_int32) yUnitsToPoints(600.0);
+
+ return;
+}
+
+SimpleFontInstance::~SimpleFontInstance()
+{
+ // nothing to do...
+}
+
+const void *SimpleFontInstance::getFontTable(LETag tableTag) const
+{
+ if (tableTag == LE_GSUB_TABLE_TAG) {
+ return CanonShaping::glyphSubstitutionTable;
+ }
+
+ if (tableTag == LE_GDEF_TABLE_TAG) {
+ return CanonShaping::glyphDefinitionTable;
+ }
+
+ return NULL;
+}
+
+void SimpleFontInstance::getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
+{
+#if 0
+ if (u_getCombiningClass((UChar32) glyph) == 0) {
+ advance.fX = xUnitsToPoints(2048);
+ } else {
+ advance.fX = 0;
+ }
+#else
+ advance.fX = xUnitsToPoints(2048);
+#endif
+
+ advance.fY = 0;
+}
+
+le_int32 SimpleFontInstance::getUnitsPerEM() const
+{
+ return 2048;
+}
+
+le_int32 SimpleFontInstance::getAscent() const
+{
+ return fAscent;
+}
+
+le_int32 SimpleFontInstance::getDescent() const
+{
+ return fDescent;
+}
+
+le_int32 SimpleFontInstance::getLeading() const
+{
+ return 0;
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
+{
+ return LEFontInstance::mapCharToGlyph(ch, mapper, filterZeroWidth);
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
+{
+ return LEFontInstance::mapCharToGlyph(ch, mapper);
+}
+
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch) const
+{
+ return (LEGlyphID) ch;
+}
+
+float SimpleFontInstance::getXPixelsPerEm() const
+{
+ return fPointSize;
+}
+
+float SimpleFontInstance::getYPixelsPerEm() const
+{
+ return fPointSize;
+}
+
+float SimpleFontInstance::getScaleFactorX() const
+{
+ return 1.0;
+}
+
+float SimpleFontInstance::getScaleFactorY() const
+{
+ return 1.0;
+}
+
+le_bool SimpleFontInstance::getGlyphPoint(LEGlyphID /*glyph*/, le_int32 /*pointNumber*/, LEPoint &/*point*/) const
+{
+ return FALSE;
+}
+
diff --git a/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.h b/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.h
new file mode 100644
index 00000000000..4bac8f8838b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/letest/SimpleFontInstance.h
@@ -0,0 +1,72 @@
+
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 1999-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: SimpleFontInstance.h
+ *
+ * created on: 03/30/2006
+ * created by: Eric R. Mader
+ */
+
+#ifndef __SIMPLEFONTINSTANCE_H
+#define __SIMPLEFONTINSTANCE_H
+
+#include <stdio.h>
+
+#include "layout/LETypes.h"
+#include "layout/LEFontInstance.h"
+
+class SimpleFontInstance : public LEFontInstance
+{
+private:
+ float fPointSize;
+ le_int32 fAscent;
+ le_int32 fDescent;
+
+protected:
+ const void *readFontTable(LETag tableTag) const;
+
+public:
+ SimpleFontInstance(float pointSize, LEErrorCode &status);
+
+ virtual ~SimpleFontInstance();
+
+ virtual const void *getFontTable(LETag tableTag) const;
+
+ virtual le_int32 getUnitsPerEM() const;
+
+ virtual le_int32 getAscent() const;
+
+ virtual le_int32 getDescent() const;
+
+ virtual le_int32 getLeading() const;
+
+ // We really want to inherit this method from the superclass, but some compilers
+ // issue a warning if we don't implement it...
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const;
+
+ // We really want to inherit this method from the superclass, but some compilers
+ // issue a warning if we don't implement it...
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const;
+
+ virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const;
+
+ virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const;
+
+ virtual le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point) const;
+
+ float getXPixelsPerEm() const;
+
+ float getYPixelsPerEm() const;
+
+ float getScaleFactorX() const;
+
+ float getScaleFactorY() const;
+
+};
+
+#endif
diff --git a/Build/source/libs/icu-xetex/test/letest/cmaps.h b/Build/source/libs/icu-xetex/test/letest/cmaps.h
index 4b78ad66f26..df0bb116ba5 100644
--- a/Build/source/libs/icu-xetex/test/letest/cmaps.h
+++ b/Build/source/libs/icu-xetex/test/letest/cmaps.h
@@ -1,6 +1,6 @@
/***************************************************************************
*
-* Copyright (C) 1998-2003, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
************************************************************************/
@@ -9,7 +9,8 @@
#ifndef __CMAPS_H
#define __CMAPS_H
-#include "LETypes.h"
+#include "layout/LETypes.h"
+#include "letest.h"
#include "sfnt.h"
class CMAPMapper
@@ -77,7 +78,7 @@ inline CMAPMapper::CMAPMapper(const CMAPTable *cmap)
inline CMAPMapper::~CMAPMapper()
{
- LE_DELETE_ARRAY(fcmap);
+ DELETE_ARRAY(fcmap);
}
#endif
diff --git a/Build/source/libs/icu-xetex/test/letest/gendata.cpp b/Build/source/libs/icu-xetex/test/letest/gendata.cpp
index 0f32bc95930..58f8a1bb4a3 100644
--- a/Build/source/libs/icu-xetex/test/letest/gendata.cpp
+++ b/Build/source/libs/icu-xetex/test/letest/gendata.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -12,21 +12,27 @@
*/
#include <stdio.h>
-#include <ctype.h>
+#include <string.h>
#include <time.h>
-#include "LETypes.h"
-#include "LEScripts.h"
-#include "LayoutEngine.h"
+#include "unicode/utypes.h"
+#include "unicode/unistr.h"
+#include "unicode/uscript.h"
+#include "unicode/ubidi.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEScripts.h"
+#include "layout/LayoutEngine.h"
-#include "sfnt.h"
#include "PortableFontInstance.h"
+#include "SimpleFontInstance.h"
-#include "unicode/uscript.h"
+#include "xmlparser.h"
-U_NAMESPACE_USE
+#include "letsutil.h"
+#include "letest.h"
-#define ARRAY_LENGTH(array) (sizeof array / sizeof array[0])
+U_NAMESPACE_USE
struct TestInput
{
@@ -41,264 +47,31 @@ struct TestInput
* FIXME: should use the output file name and the current date.
*/
const char *header =
- "/*\n"
- " *******************************************************************************\n"
- " *\n"
- " * Copyright (C) 1999-%4.4d, International Business Machines\n"
- " * Corporation and others. All Rights Reserved.\n"
- " *\n"
- " * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT\n"
- " * UNLESS YOU REALLY KNOW WHAT YOU'RE DOING.\n"
- " *\n"
- " *******************************************************************************\n"
- " *\n"
- " * file name: testdata.cpp\n"
- " * generated on: %s\n"
- " * generated by: gendata.cpp\n"
- " */\n"
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"\n"
- "#include \"LETypes.h\"\n"
- "#include \"LEScripts.h\"\n"
- "#include \"letest.h\"\n"
- "\n";
-
-#if 0
-char *scriptNames[] =
-{
- "USCRIPT_COMMON", /* Zyyy */
- "USCRIPT_INHERITED", /* Qaai */
- "USCRIPT_ARABIC", /* Arab */
- "USCRIPT_ARMENIAN", /* Armn */
- "USCRIPT_BENGALI", /* Beng */
- "USCRIPT_BOPOMOFO", /* Bopo */
- "USCRIPT_CHEROKEE", /* Cher */
- "USCRIPT_COPTIC", /* Copt=Qaac */
- "USCRIPT_CYRILLIC", /* Cyrl (Cyrs) */
- "USCRIPT_DESERET", /* Dsrt */
- "USCRIPT_DEVANAGARI", /* Deva */
- "USCRIPT_ETHIOPIC", /* Ethi */
- "USCRIPT_GEORGIAN", /* Geor (Geon, Geoa) */
- "USCRIPT_GOTHIC", /* Goth */
- "USCRIPT_GREEK", /* Grek */
- "USCRIPT_GUJARATI", /* Gujr */
- "USCRIPT_GURMUKHI", /* Guru */
- "USCRIPT_HAN", /* Hani */
- "USCRIPT_HANGUL", /* Hang */
- "USCRIPT_HEBREW", /* Hebr */
- "USCRIPT_HIRAGANA", /* Hira */
- "USCRIPT_KANNADA", /* Knda */
- "USCRIPT_KATAKANA", /* Kana */
- "USCRIPT_KHMER", /* Khmr */
- "USCRIPT_LAO", /* Laoo */
- "USCRIPT_LATIN", /* Latn (Latf, Latg) */
- "USCRIPT_MALAYALAM", /* Mlym */
- "USCRIPT_MONGOLIAN", /* Mong */
- "USCRIPT_MYANMAR", /* Mymr */
- "USCRIPT_OGHAM", /* Ogam */
- "USCRIPT_OLD_ITALIC", /* Ital */
- "USCRIPT_ORIYA", /* Orya */
- "USCRIPT_RUNIC", /* Runr */
- "USCRIPT_SINHALA", /* Sinh */
- "USCRIPT_SYRIAC", /* Syrc (Syrj, Syrn, Syre) */
- "USCRIPT_TAMIL", /* Taml */
- "USCRIPT_TELUGU", /* Telu */
- "USCRIPT_THAANA", /* Thaa */
- "USCRIPT_THAI", /* Thai */
- "USCRIPT_TIBETAN", /* Tibt */
- "USCRIPT_UCAS", /* Cans */
- "USCRIPT_YI", /* Yiii */
- "USCRIPT_TAGALOG", /* Tglg */
- "USCRIPT_HANUNOO", /* Hano */
- "USCRIPT_BUHID", /* Buhd */
- "USCRIPT_TAGBANWA" /* Tagb */
-};
-#endif
-
-LEUnicode devaText[] =
-{
- 0x0936, 0x094d, 0x0930, 0x0940, 0x092e, 0x0926, 0x094d, 0x0020,
- 0x092d, 0x0917, 0x0935, 0x0926, 0x094d, 0x0917, 0x0940, 0x0924,
- 0x093e, 0x0020, 0x0905, 0x0927, 0x094d, 0x092f, 0x093e, 0x092f,
- 0x0020, 0x0905, 0x0930, 0x094d, 0x091c, 0x0941, 0x0928, 0x0020,
- 0x0935, 0x093f, 0x0937, 0x093e, 0x0926, 0x0020, 0x092f, 0x094b,
- 0x0917, 0x0020, 0x0927, 0x0943, 0x0924, 0x0930, 0x093e, 0x0937,
- 0x094d, 0x091f, 0x094d, 0x0930, 0x0020, 0x0909, 0x0935, 0x093E,
- 0x091A, 0x0943, 0x0020, 0x0927, 0x0930, 0x094d, 0x092e, 0x0915,
- 0x094d, 0x0937, 0x0947, 0x0924, 0x094d, 0x0930, 0x0947, 0x0020,
- 0x0915, 0x0941, 0x0930, 0x0941, 0x0915, 0x094d, 0x0937, 0x0947,
- 0x0924, 0x094d, 0x0930, 0x0947, 0x0020, 0x0938, 0x092e, 0x0935,
- 0x0947, 0x0924, 0x093e, 0x0020, 0x092f, 0x0941, 0x092f, 0x0941,
- 0x0924, 0x094d, 0x0938, 0x0935, 0x0903, 0x0020, 0x092e, 0x093e,
- 0x092e, 0x0915, 0x093e, 0x0903, 0x0020, 0x092a, 0x093e, 0x0923,
- 0x094d, 0x0921, 0x0935, 0x093e, 0x0936, 0x094d, 0x091a, 0x0948,
- 0x0935, 0x0020, 0x0915, 0x093f, 0x092e, 0x0915, 0x0941, 0x0930,
- 0x094d, 0x0935, 0x0924, 0x0020, 0x0938, 0x0902, 0x091c, 0x0935
-};
-
-le_int32 devaTextLength = ARRAY_LENGTH(devaText);
-
-LEUnicode arabText[] =
-{
- 0x0623, 0x0633, 0x0627, 0x0633, 0x064B, 0x0627, 0x060C, 0x0020,
- 0x062A, 0x062A, 0x0639, 0x0627, 0x0645, 0x0644, 0x0020,
- 0x0627, 0x0644, 0x062D, 0x0648, 0x0627, 0x0633, 0x064A, 0x0628,
- 0x0020, 0x0641, 0x0642, 0x0637, 0x0020, 0x0645, 0x0639, 0x0020,
- 0x0627, 0x0644, 0x0623, 0x0631, 0x0642, 0x0627, 0x0645, 0x060C,
- 0x0020, 0x0648, 0x062A, 0x0642, 0x0648, 0x0645, 0x0020, 0x0628,
- 0x062A, 0x062E, 0x0632, 0x064A, 0x0646, 0x0020, 0x0627, 0x0644,
- 0x0623, 0x062D, 0x0631, 0x0641, 0x0020, 0x0648, 0x0627, 0x0644,
- 0x0645, 0x062D, 0x0627, 0x0631, 0x0641, 0x0020, 0x0627, 0x0644,
- 0x0623, 0x062E, 0x0631, 0x0649, 0x0020, 0x0628, 0x0639, 0x062F,
- 0x0020, 0x0623, 0x0646, 0x0020, 0x062A, 0x064F, 0x0639, 0x0637,
- 0x064A, 0x0020, 0x0631, 0x0642, 0x0645, 0x0627, 0x0020, 0x0645,
- 0x0639, 0x064A, 0x0646, 0x0627, 0x0020, 0x0644, 0x0643, 0x0644,
- 0x0020, 0x0648, 0x0627, 0x062D, 0x062F, 0x0020, 0x0645, 0x0646,
- 0x0647, 0x0627, 0x002E, 0x0020, 0x0648, 0x0642, 0x0628, 0x0644,
- 0x0020, 0x0627, 0x062E, 0x062A, 0x0631, 0x0627, 0x0639, 0x0020,
- 0x0022, 0x064A, 0x0648, 0x0646, 0x0650, 0x0643, 0x0648, 0x062F,
- 0x0022, 0x060C, 0x0020, 0x0643, 0x0627, 0x0646, 0x0020, 0x0647,
- 0x0646, 0x0627, 0x0643, 0x0020, 0x0645, 0x0626, 0x0627, 0x062A,
- 0x0020, 0x0627, 0x0644, 0x0623, 0x0646, 0x0638, 0x0645, 0x0629,
- 0x0020, 0x0644, 0x0644, 0x062A, 0x0634, 0x0641, 0x064A, 0x0631,
- 0x0020, 0x0648, 0x062A, 0x062E, 0x0635, 0x064A, 0x0635, 0x0020,
- 0x0647, 0x0630, 0x0647, 0x0020, 0x0627, 0x0644, 0x0623, 0x0631,
- 0x0642, 0x0627, 0x0645, 0x0020, 0x0644, 0x0644, 0x0645, 0x062D,
- 0x0627, 0x0631, 0x0641, 0x060C, 0x0020, 0x0648, 0x0644, 0x0645,
- 0x0020, 0x064A, 0x0648, 0x062C, 0x062F, 0x0020, 0x0646, 0x0638,
- 0x0627, 0x0645, 0x0020, 0x062A, 0x0634, 0x0641, 0x064A, 0x0631,
- 0x0020, 0x0648, 0x0627, 0x062D, 0x062F, 0x0020, 0x064A, 0x062D,
- 0x062A, 0x0648, 0x064A, 0x0020, 0x0639, 0x0644, 0x0649, 0x0020,
- 0x062C, 0x0645, 0x064A, 0x0639, 0x0020, 0x0627, 0x0644, 0x0645,
- 0x062D, 0x0627, 0x0631, 0x0641, 0x0020, 0x0627, 0x0644, 0x0636,
- 0x0631, 0x0648, 0x0631, 0x064A, 0x0629
-
- /* The next few sentences...
- 0x002E, 0x0020, 0x0648,
- 0x0639, 0x0644, 0x0649, 0x0020, 0x0633, 0x0628, 0x064A, 0x0644,
- 0x0020, 0x0627, 0x0644, 0x0645, 0x062B, 0x0627, 0x0644, 0x060C,
- 0x0020, 0x0641, 0x0625, 0x0646, 0x0020, 0x0627, 0x0644, 0x0627,
- 0x062A, 0x062D, 0x0627, 0x062F, 0x0020, 0x0627, 0x0644, 0x0623,
- 0x0648, 0x0631, 0x0648, 0x0628, 0x064A, 0x0020, 0x0644, 0x0648,
- 0x062D, 0x062F, 0x0647, 0x060C, 0x0020, 0x0627, 0x062D, 0x062A,
- 0x0648, 0x0649, 0x0020, 0x0627, 0x0644, 0x0639, 0x062F, 0x064A,
- 0x062F, 0x0020, 0x0645, 0x0646, 0x0020, 0x0627, 0x0644, 0x0634,
- 0x0641, 0x0631, 0x0627, 0x062A, 0x0020, 0x0627, 0x0644, 0x0645,
- 0x062E, 0x062A, 0x0644, 0x0641, 0x0629, 0x0020, 0x0644, 0x064A,
- 0x063A, 0x0637, 0x064A, 0x0020, 0x062C, 0x0645, 0x064A, 0x0639,
- 0x0020, 0x0627, 0x0644, 0x0644, 0x063A, 0x0627, 0x062A, 0x0020,
- 0x0627, 0x0644, 0x0645, 0x0633, 0x062A, 0x062E, 0x062F, 0x0645,
- 0x0629, 0x0020, 0x0641, 0x064A, 0x0020, 0x0627, 0x0644, 0x0627,
- 0x062A, 0x062D, 0x0627, 0x062F, 0x002E, 0x0020, 0x0648, 0x062D,
- 0x062A, 0x0649, 0x0020, 0x0644, 0x0648, 0x0020, 0x0627, 0x0639,
- 0x062A, 0x0628, 0x0631, 0x0646, 0x0627, 0x0020, 0x0644, 0x063A,
- 0x0629, 0x0020, 0x0648, 0x0627, 0x062D, 0x062F, 0x0629, 0x060C,
- 0x0020, 0x0643, 0x0627, 0x0644, 0x0644, 0x063A, 0x0629, 0x0020,
- 0x0627, 0x0644, 0x0625, 0x0646, 0x062C, 0x0644, 0x064A, 0x0632,
- 0x064A, 0x0629, 0x060C, 0x0020, 0x0641, 0x0625, 0x0646, 0x0020,
- 0x062C, 0x062F, 0x0648, 0x0644, 0x0020, 0x0634, 0x0641, 0x0631,
- 0x0629, 0x0020, 0x0648, 0x0627, 0x062D, 0x062F, 0x0020, 0x0644,
- 0x0645, 0x0020, 0x064A, 0x0643, 0x0641, 0x0020, 0x0644, 0x0627,
- 0x0633, 0x062A, 0x064A, 0x0639, 0x0627, 0x0628, 0x0020, 0x062C,
- 0x0645, 0x064A, 0x0639, 0x0020, 0x0627, 0x0644, 0x0623, 0x062D,
- 0x0631, 0x0641, 0x0020, 0x0648, 0x0639, 0x0644, 0x0627, 0x0645,
- 0x0627, 0x062A, 0x0020, 0x0627, 0x0644, 0x062A, 0x0631, 0x0642,
- 0x064A, 0x0645, 0x0020, 0x0648, 0x0627, 0x0644, 0x0631, 0x0645,
- 0x0648, 0x0632, 0x0020, 0x0627, 0x0644, 0x0641, 0x0646, 0x064A,
- 0x0629, 0x0020, 0x0648, 0x0627, 0x0644, 0x0639, 0x0644, 0x0645,
- 0x064A, 0x0629, 0x0020, 0x0627, 0x0644, 0x0634, 0x0627, 0x0626,
- 0x0639, 0x0629, 0x0020, 0x0627, 0x0644, 0x0627, 0x0633, 0x062A,
- 0x0639, 0x0645, 0x0627, 0x0644, 0x002E */
-};
-le_int32 arabTextLength = ARRAY_LENGTH(arabText);
-
-
-LEUnicode thaiSample[] =
-{
- 0x0E1A, 0x0E17, 0x0E17, 0x0E35, 0x0E48, 0x0E51, 0x0E1E, 0x0E32,
- 0x0E22, 0x0E38, 0x0E44, 0x0E0B, 0x0E42, 0x0E04, 0x0E25, 0x0E19,
- 0x0E42, 0x0E14, 0x0E42, 0x0E23, 0x0E18, 0x0E35, 0x0E2D, 0x0E32,
- 0x0E28, 0x0E31, 0x0E22, 0x0E2D, 0x0E22, 0x0E39, 0x0E48, 0x0E17,
- 0x0E48, 0x0E32, 0x0E21, 0x0E01, 0x0E25, 0x0E32, 0x0E07, 0x0E17,
- 0x0E38, 0x0E48, 0x0E07, 0x0E43, 0x0E2B, 0x0E0D, 0x0E48, 0x0E43,
- 0x0E19, 0x0E41, 0x0E04, 0x0E19, 0x0E0B, 0x0E31, 0x0E2A, 0x0E01,
- 0x0E31, 0x0E1A, 0x0E25, 0x0E38, 0x0E07, 0x0E40, 0x0E2E, 0x0E19,
- 0x0E23, 0x0E35, 0x0E0A, 0x0E32, 0x0E27, 0x0E44, 0x0E23, 0x0E48,
- 0x0E41, 0x0E25, 0x0E30, 0x0E1B, 0x0E49, 0x0E32, 0x0E40, 0x0E2D,
- 0x0E47, 0x0E21, 0x0E20, 0x0E23, 0x0E23, 0x0E22, 0x0E32, 0x0E0A,
- 0x0E32, 0x0E27, 0x0E44, 0x0E23, 0x0E48, 0x0E1A, 0x0E49, 0x0E32,
- 0x0E19, 0x0E02, 0x0E2D, 0x0E07, 0x0E1E, 0x0E27, 0x0E01, 0x0E40,
- 0x0E02, 0x0E32, 0x0E2B, 0x0E25, 0x0E31, 0x0E07, 0x0E40, 0x0E25,
- 0x0E47, 0x0E01, 0x0E40, 0x0E1E, 0x0E23, 0x0E32, 0x0E30, 0x0E44,
- 0x0E21, 0x0E49, 0x0E2A, 0x0E23, 0x0E49, 0x0E32, 0x0E07, 0x0E1A,
- 0x0E49, 0x0E32, 0x0E19, 0x0E15, 0x0E49, 0x0E2D, 0x0E07, 0x0E02,
- 0x0E19, 0x0E21, 0x0E32, 0x0E14, 0x0E49, 0x0E27, 0x0E22, 0x0E40,
- 0x0E01, 0x0E27, 0x0E35, 0x0E22, 0x0E19, 0x0E40, 0x0E1B, 0x0E47,
- 0x0E19, 0x0E23, 0x0E30, 0x0E22, 0x0E30, 0x0E17, 0x0E32, 0x0E07,
- 0x0E2B, 0x0E25, 0x0E32, 0x0E22, 0x0E44, 0x0E21, 0x0E25, 0x0E4C
- /* A few more lines...
- 0x0E1A, 0x0E49, 0x0E32, 0x0E19, 0x0E21, 0x0E35, 0x0E2A, 0x0E35,
- 0x0E48, 0x0E1D, 0x0E32, 0x0E21, 0x0E35, 0x0E1E, 0x0E37, 0x0E49,
- 0x0E19, 0x0E01, 0x0E31, 0x0E1A, 0x0E2B, 0x0E25, 0x0E31, 0x0E07,
- 0x0E04, 0x0E32, 0x0E23, 0x0E27, 0x0E21, 0x0E17, 0x0E33, 0x0E40,
- 0x0E1B, 0x0E47, 0x0E19, 0x0E2B, 0x0E49, 0x0E2D, 0x0E07, 0x0E40,
- 0x0E14, 0x0E35, 0x0E22, 0x0E27, 0x0E43, 0x0E19, 0x0E2B, 0x0E49,
- 0x0E2D, 0x0E07, 0x0E21, 0x0E35, 0x0E17, 0x0E31, 0x0E49, 0x0E07,
- 0x0E40, 0x0E15, 0x0E32, 0x0E2B, 0x0E38, 0x0E07, 0x0E15, 0x0E49,
- 0x0E21, 0x0E17, 0x0E35, 0x0E48, 0x0E2A, 0x0E19, 0x0E34, 0x0E21,
- 0x0E14, 0x0E39, 0x0E02, 0x0E36, 0x0E49, 0x0E19, 0x0E40, 0x0E25,
- 0x0E2D, 0x0E30, 0x0E21, 0x0E35, 0x0E15, 0x0E39, 0x0E49, 0x0E43,
- 0x0E2A, 0x0E48, 0x0E16, 0x0E49, 0x0E27, 0x0E22, 0x0E0A, 0x0E32,
- 0x0E21, 0x0E42, 0x0E15, 0x0E4A, 0x0E30, 0x0E40, 0x0E01, 0x0E49,
- 0x0E32, 0x0E2D, 0x0E35, 0x0E49, 0x0E2A, 0x0E32, 0x0E21, 0x0E2B,
- 0x0E23
- */
-};
-
-le_int32 thaiSampleLength = ARRAY_LENGTH(thaiSample);
-
-TestInput testInputs[] = {
- {"raghu.ttf", devaText, devaTextLength, devaScriptCode, FALSE},
- {"CODE2000.TTF", arabText, arabTextLength, arabScriptCode, TRUE},
- {"LucidaSansRegular.ttf", arabText, arabTextLength, arabScriptCode, TRUE},
- {"angsd___.ttf", thaiSample, thaiSampleLength, thaiScriptCode, FALSE}
-};
-
-#define TEST_COUNT ARRAY_LENGTH(testInputs)
-
-le_int32 testCount = TEST_COUNT;
-
-void dumpShorts(FILE *file, const char *label, le_int32 id, le_uint16 *shorts, le_int32 count) {
- char lineBuffer[8 * 8 + 2];
- le_int32 bufp = 0;
-
- fprintf(file, label, id);
-
- for (int i = 0; i < count; i += 1) {
- if (i % 8 == 0 && bufp != 0) {
- fprintf(file, " %s\n", lineBuffer);
- bufp = 0;
- }
-
- bufp += sprintf(&lineBuffer[bufp], "0x%4.4X, ", shorts[i]);
- }
-
- if (bufp != 0) {
- lineBuffer[bufp - 2] = '\0';
- fprintf(file, " %s\n", lineBuffer);
- }
-
- fprintf(file, "};\n\n");
-}
+ "<!--\n"
+ " Copyright (c) 1999-%4.4d International Business Machines\n"
+ " Corporation and others. All rights reserved.\n"
+ "\n"
+ " WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT\n"
+ " UNLESS YOU REALLY KNOW WHAT YOU'RE DOING.\n"
+ "\n"
+ " file name: letest.xml\n"
+ " generated on: %s\n"
+ " generated by: gendata.cpp\n"
+ "-->\n"
+ "\n"
+ "<layout-tests>\n";
-void dumpLongs(FILE *file, const char *label, le_int32 id, le_int32 *longs, le_int32 count) {
+void dumpLongs(FILE *file, const char *tag, le_int32 *longs, le_int32 count) {
char lineBuffer[8 * 12 + 2];
le_int32 bufp = 0;
- fprintf(file, label, id);
+ fprintf(file, " <%s>\n", tag);
for (int i = 0; i < count; i += 1) {
if (i % 8 == 0 && bufp != 0) {
- fprintf(file, " %s\n", lineBuffer);
+ fprintf(file, " %s\n", lineBuffer);
bufp = 0;
}
@@ -307,52 +80,38 @@ void dumpLongs(FILE *file, const char *label, le_int32 id, le_int32 *longs, le_i
if (bufp != 0) {
lineBuffer[bufp - 2] = '\0';
- fprintf(file, " %s\n", lineBuffer);
+ fprintf(file, " %s\n", lineBuffer);
}
- fprintf(file, "};\n\n");
+ fprintf(file, " </%s>\n\n", tag);
}
-void dumpFloats(FILE *file, const char *label, le_int32 id, float *floats, le_int32 count) {
+void dumpFloats(FILE *file, const char *tag, float *floats, le_int32 count) {
char lineBuffer[8 * 16 + 2];
le_int32 bufp = 0;
- fprintf(file, label, id);
+ fprintf(file, " <%s>\n", tag);
for (int i = 0; i < count; i += 1) {
if (i % 8 == 0 && bufp != 0) {
- fprintf(file, " %s\n", lineBuffer);
+ fprintf(file, " %s\n", lineBuffer);
bufp = 0;
}
- bufp += sprintf(&lineBuffer[bufp], "%fF, ", floats[i]);
+ bufp += sprintf(&lineBuffer[bufp], "%f, ", floats[i]);
}
if (bufp != 0) {
lineBuffer[bufp - 2] = '\0';
- fprintf(file, " %s\n", lineBuffer);
+ fprintf(file, " %s\n", lineBuffer);
}
- fprintf(file, "};\n\n");
-}
-
-const char *getShortName(le_int32 scriptCode)
-{
- static char shortName[5];
- const char *name = uscript_getShortName((UScriptCode) scriptCode);
-
- shortName[0] = tolower(name[0]);
- shortName[1] = tolower(name[1]);
- shortName[2] = tolower(name[2]);
- shortName[3] = tolower(name[3]);
- shortName[4] = '\0';
-
- return shortName;
+ fprintf(file, " </%s>\n", tag);
}
int main(int /*argc*/, char *argv[])
{
- le_int32 test;
+ UErrorCode status = U_ZERO_ERROR;
FILE *outputFile = fopen(argv[1], "w");
time_t now = time(NULL);
struct tm *local = localtime(&now);
@@ -362,81 +121,162 @@ int main(int /*argc*/, char *argv[])
strftime(tmString, 64, tmFormat, local);
fprintf(outputFile, header, local->tm_year + 1900, tmString);
- for (test = 0; test < testCount; test += 1) {
- LEErrorCode fontStatus = LE_NO_ERROR;
- PortableFontInstance fontInstance(testInputs[test].fontName, 12, fontStatus);
-
- if (LE_FAILURE(fontStatus)) {
- printf("ERROR: test case %d, could not get a font instance for %s\n", test, testInputs[test].fontName);
- continue;
- }
+ UXMLParser *parser = UXMLParser::createParser(status);
+ UXMLElement *root = parser->parseFile("gendata.xml", status);
- const char *nameString = fontInstance.getNameString(NAME_VERSION_STRING, PLATFORM_MACINTOSH, MACINTOSH_ROMAN, MACINTOSH_ENGLISH);
+ if (root == NULL) {
+ printf("Error: Could not open gendata.xml\n");
+ delete parser;
+ return -1;
+ }
- fprintf(outputFile, "const char *fontVersionString%d = \"%s\";\n", test, nameString);
- fprintf(outputFile, "le_uint32 fontChecksum%d = 0x%8.8X;\n\n", test, fontInstance.getFontChecksum());
+ UnicodeString test_case = UNICODE_STRING_SIMPLE("test-case");
+ UnicodeString test_text = UNICODE_STRING_SIMPLE("test-text");
+ UnicodeString test_font = UNICODE_STRING_SIMPLE("test-font");
+
+ // test-case attributes
+ UnicodeString id_attr = UNICODE_STRING_SIMPLE("id");
+ UnicodeString script_attr = UNICODE_STRING_SIMPLE("script");
+ UnicodeString lang_attr = UNICODE_STRING_SIMPLE("lang");
+
+ // test-font attributes
+ UnicodeString name_attr = UNICODE_STRING_SIMPLE("name");
+
+ const UXMLElement *testCase;
+ int32_t tc = 0;
+
+ while((testCase = root->nextChildElement(tc)) != NULL) {
+ if (testCase->getTagName().compare(test_case) == 0) {
+ char *id = getCString(testCase->getAttribute(id_attr));
+ char *script = getCString(testCase->getAttribute(script_attr));
+ char *lang = getCString(testCase->getAttribute(lang_attr));
+ LEFontInstance *font = NULL;
+ const UXMLElement *element;
+ int32_t ec = 0;
+ int32_t charCount = 0;
+ int32_t typoFlags = 3; // kerning + ligatures...
+ UScriptCode scriptCode;
+ le_int32 languageCode = -1;
+ UnicodeString text;
+ int32_t glyphCount = 0;
+ LEErrorCode leStatus = LE_NO_ERROR;
+ LayoutEngine *engine = NULL;
+ LEGlyphID *glyphs = NULL;
+ le_int32 *indices = NULL;
+ float *positions = NULL;
+
+ uscript_getCode(script, &scriptCode, 1, &status);
+ if (LE_FAILURE(status)) {
+ printf("Error: invalid script name: %s.\n", script);
+ goto free_c_strings;
+ }
+
+ if (lang != NULL) {
+ languageCode = getLanguageCode(lang);
+
+ if (languageCode < 0) {
+ printf("Error: invalid language name: %s.\n", lang);
+ goto free_c_strings;
+ }
+
+ fprintf(outputFile, " <test-case id=\"%s\" script=\"%s\" lang=\"%s\">\n", id, script, lang);
+ } else {
+ fprintf(outputFile, " <test-case id=\"%s\" script=\"%s\">\n", id, script);
+ }
+
+ while((element = testCase->nextChildElement(ec)) != NULL) {
+ UnicodeString tag = element->getTagName();
+
+ // TODO: make sure that each element is only used once.
+ if (tag.compare(test_font) == 0) {
+ char *fontName = getCString(element->getAttribute(name_attr));
+ const char *version = NULL;
+ PortableFontInstance *pfi = new PortableFontInstance(fontName, 12, leStatus);
+
+ if (LE_FAILURE(leStatus)) {
+ printf("Error: could not open font: %s\n", fontName);
+ freeCString(fontName);
+ goto free_c_strings;
+ }
+
+ version = pfi->getNameString(NAME_VERSION_STRING, PLATFORM_MACINTOSH, MACINTOSH_ROMAN, MACINTOSH_ENGLISH);
+
+ fprintf(outputFile, " <test-font name=\"%s\" version=\"%s\" checksum=\"0x%8.8X\"/>\n\n",
+ fontName, version, pfi->getFontChecksum());
+
+ pfi->deleteNameString(version);
+ freeCString(fontName);
+ font = pfi;
+ } else if (tag.compare(test_text) == 0) {
+ char *utf8 = NULL;
+
+ text = element->getText(TRUE);
+ charCount = text.length();
+
+ utf8 = getUTF8String(&text);
+ fprintf(outputFile, " <test-text>%s</test-text>\n\n", utf8);
+ freeCString(utf8);
+ } else {
+ // an unknown tag...
+ char *cTag = getCString(&tag);
+
+ printf("Test %s: unknown element with tag \"%s\"\n", id, cTag);
+ freeCString(cTag);
+ }
+ }
+
+ if (font == NULL) {
+ LEErrorCode fontStatus = LE_NO_ERROR;
+
+ font = new SimpleFontInstance(12, fontStatus);
+ typoFlags |= 0x80000000L; // use CharSubstitutionFilter...
+ }
+
+ engine = LayoutEngine::layoutEngineFactory(font, scriptCode, languageCode, typoFlags, leStatus);
+
+ if (LE_FAILURE(leStatus)) {
+ printf("Error for test %s: could not create a LayoutEngine.\n", id);
+ goto delete_font;
+ }
+
+ glyphCount = engine->layoutChars(text.getBuffer(), 0, charCount, charCount, getRTL(text), 0, 0, leStatus);
+
+ glyphs = NEW_ARRAY(LEGlyphID, glyphCount);
+ indices = NEW_ARRAY(le_int32, glyphCount);
+ positions = NEW_ARRAY(float, glyphCount * 2 + 2);
+
+ engine->getGlyphs(glyphs, leStatus);
+ engine->getCharIndices(indices, leStatus);
+ engine->getGlyphPositions(positions, leStatus);
+
+ dumpLongs(outputFile, "result-glyphs", (le_int32 *) glyphs, glyphCount);
+
+ dumpLongs(outputFile, "result-indices", indices, glyphCount);
+
+ dumpFloats(outputFile, "result-positions", positions, glyphCount * 2 + 2);
+
+ fprintf(outputFile, " </test-case>\n\n");
+
+ DELETE_ARRAY(positions);
+ DELETE_ARRAY(indices);
+ DELETE_ARRAY(glyphs);
- fontInstance.deleteNameString(nameString);
+ delete engine;
- LEErrorCode success = LE_NO_ERROR;
- LayoutEngine *engine = LayoutEngine::layoutEngineFactory(&fontInstance, testInputs[test].scriptCode, -1, success);
- le_uint32 glyphCount;
- LEGlyphID *glyphs;
- le_int32 *indices;
- float *positions;
+delete_font:
+ delete font;
- if (LE_FAILURE(success)) {
- printf("ERROR: test case %d, could not create a LayoutEngine for script %s.\n", test, uscript_getName((UScriptCode) testInputs[test].scriptCode));
- continue;
+free_c_strings:
+ freeCString(lang);
+ freeCString(script);
+ freeCString(id);
}
-
- glyphCount = engine->layoutChars(testInputs[test].text, 0, testInputs[test].textLength, testInputs[test].textLength, testInputs[test].rightToLeft, 0, 0, success);
-
- glyphs = new LEGlyphID[glyphCount];
- indices = new le_int32[glyphCount];
- positions = new float[glyphCount * 2 + 2];
-
- engine->getGlyphs(glyphs, success);
- engine->getCharIndices(indices, success);
- engine->getGlyphPositions(positions, success);
-
- //fprintf(outputFile, "font: %s\n", testInputs[test].fontName);
- dumpShorts(outputFile, "LEUnicode inputText%d[] =\n{\n", test, testInputs[test].text, testInputs[test].textLength);
-
- dumpLongs(outputFile, "LEGlyphID resultGlyphs%d[] =\n{\n", test, (le_int32 *) glyphs, glyphCount);
- fprintf(outputFile, "le_int32 resultGlyphCount%d = %d;\n\n", test, glyphCount);
-
- dumpLongs(outputFile, "le_int32 resultIndices%d[] =\n{\n", test, indices, glyphCount);
-
- dumpFloats(outputFile, "float resultPositions%d[] =\n{\n", test, positions, glyphCount * 2 + 2);
-
- fprintf(outputFile, "\n");
-
- delete[] positions;
- delete[] indices;
- delete[] glyphs;
- delete engine;
- }
-
- fprintf(outputFile, "TestInput testInputs[] = \n{\n");
-
- for (test = 0; test < testCount; test += 1) {
- fprintf(outputFile, " {\"%s\", fontVersionString%d, fontChecksum%d, inputText%d, %d, %sScriptCode, %s},\n",
- testInputs[test].fontName, test, test, test, testInputs[test].textLength, getShortName(testInputs[test].scriptCode),
- testInputs[test].rightToLeft? "TRUE" : "FALSE");
}
- fprintf(outputFile, "};\n\nle_int32 testCount = ARRAY_LENGTH(testInputs);\n\n");
-
- fprintf(outputFile, "TestResult testResults[] = \n{\n");
-
- for (test = 0; test < testCount; test += 1) {
- fprintf(outputFile, " {resultGlyphCount%d, resultGlyphs%d, resultIndices%d, resultPositions%d},\n",
- test, test, test, test);
- }
+ delete root;
+ delete parser;
- fprintf(outputFile, "};\n\n");
+ fprintf(outputFile, "</layout-tests>\n");
fclose(outputFile);
- return 0;
}
diff --git a/Build/source/libs/icu-xetex/test/letest/gendata.vcproj b/Build/source/libs/icu-xetex/test/letest/gendata.vcproj
index 53196d82258..05827c4bc9e 100644
--- a/Build/source/libs/icu-xetex/test/letest/gendata.vcproj
+++ b/Build/source/libs/icu-xetex/test/letest/gendata.vcproj
@@ -21,10 +21,11 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\include\layout,..\..\..\include,..\..\common"
+ AdditionalIncludeDirectories="..\..\..\include\layout;..\..\..\include;..\..\common;..\..\layout;..\..\tools\toolutil"
PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE,LE_USE_CMEMORY"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/gendata.pch"
AssemblerListingLocation=".\Debug/"
@@ -39,7 +40,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="..\..\..\lib\iculed.lib ..\..\..\lib\icuucd.lib odbc32.lib odbccp32.lib"
+ AdditionalDependencies="..\..\..\lib\iculed.lib ..\..\..\lib\icuucd.lib ..\..\..\lib\icutud.lib odbc32.lib odbccp32.lib"
OutputFile=".\Debug/gendata.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
@@ -81,11 +82,12 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\include\layout,..\..\..\include,..\..\common"
+ AdditionalIncludeDirectories="..\..\..\include\layout;..\..\..\include;..\..\common;..\..\layout;..\..\tools\toolutil"
PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE,LE_USE_CMEMORY"
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/gendata.pch"
AssemblerListingLocation=".\Release/"
@@ -99,7 +101,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="..\..\..\lib\icule.lib ..\..\..\lib\icuuc.lib odbc32.lib odbccp32.lib"
+ AdditionalDependencies="..\..\..\lib\icule.lib ..\..\..\lib\icuuc.lib ..\..\..\lib\icutu.lib odbc32.lib odbccp32.lib"
OutputFile=".\Release/gendata.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
@@ -146,8 +148,14 @@
RelativePath=".\gendata.cpp">
</File>
<File
+ RelativePath=".\letsutil.cpp">
+ </File>
+ <File
RelativePath=".\PortableFontInstance.cpp">
</File>
+ <File
+ RelativePath=".\SimpleFontInstance.cpp">
+ </File>
</Filter>
<Filter
Name="Header Files"
@@ -162,11 +170,17 @@
RelativePath=".\letest.h">
</File>
<File
+ RelativePath=".\letsutil.h">
+ </File>
+ <File
RelativePath=".\PortableFontInstance.h">
</File>
<File
RelativePath=".\sfnt.h">
</File>
+ <File
+ RelativePath=".\SimpleFontInstance.h">
+ </File>
</Filter>
<Filter
Name="Resource Files"
diff --git a/Build/source/libs/icu-xetex/test/letest/gendata.xml b/Build/source/libs/icu-xetex/test/letest/gendata.xml
new file mode 100644
index 00000000000..b6edfd9c61c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/letest/gendata.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 1999-2006 International Business Machines
+ Corporation and others. All rights reserved.
+-->
+
+<layout-tests>
+ <test-case id="Ghita" script="deva">
+ <test-font name="raghu.ttf"/>
+ <test-text>शà¥à¤°à¥€à¤®à¤¦à¥ भगवदà¥à¤—ीता अधà¥à¤¯à¤¾à¤¯ अरà¥à¤œà¥à¤¨ विषाद योग धृतराषà¥à¤Ÿà¥à¤° उवाचृ धरà¥à¤®à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¥‡ कà¥à¤°à¥à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¥‡ समवेता यà¥à¤¯à¥à¤¤à¥à¤¸à¤µà¤ƒ मामकाः पाणà¥à¤¡à¤µà¤¾à¤¶à¥à¤šà¥ˆà¤µ किमकà¥à¤°à¥à¤µà¤¤ संजव</test-text>
+ </test-case>
+
+ <test-case id="Arabic" script="arab">
+ <test-font name="CODE2000.TTF"/>
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+ </test-case>
+
+ <test-case id="Unicode Arabic" script="arab">
+ <test-font name="LucidaSansRegular.ttf"/>
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+ </test-case>
+
+ <test-case id="Thai" script="thai">
+ <test-font name="angsd___.ttf"/>
+ <test-text>บทที่๑พายุไซโคลนโดโรธีอาศัยอยู่ท่ามà¸à¸¥à¸²à¸‡à¸—ุ่งใหà¸à¹ˆà¹ƒà¸™à¹à¸„นซัสà¸à¸±à¸šà¸¥à¸¸à¸‡à¹€à¸®à¸™à¸£à¸µà¸Šà¸²à¸§à¹„ร่à¹à¸¥à¸°à¸›à¹‰à¸²à¹€à¸­à¹‡à¸¡à¸ à¸£à¸£à¸¢à¸²à¸Šà¸²à¸§à¹„ร่บ้านของพวà¸à¹€à¸‚าหลังเล็à¸à¹€à¸žà¸£à¸²à¸°à¹„ม้สร้างบ้านต้องขนมาด้วยเà¸à¸§à¸µà¸¢à¸™à¹€à¸›à¹‡à¸™à¸£à¸°à¸¢à¸°à¸—างหลายไมล์</test-text>
+ </test-case>
+
+ <test-case id="Arabic Simple" script="arab">
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+ </test-case>
+
+ <test-case id="Matra Test" script="deva">
+ <test-font name="Devamt.ttf"/>
+ <test-text>à¥à¤‚ ं॑</test-text>
+ </test-case>
+
+ <test-case id="Deva Stress Test" script="deva">
+ <test-font name="Devamt.ttf"/>
+ <test-text>कठकं कः क॑ क॒ कà¤à¥‘ कं॒ कà¤à¤‚ः क॒॑</test-text>
+ </test-case>
+
+ <test-case id="Deva Test" script="deva">
+ <test-font name="Devamt.ttf"/>
+ <test-text>रू क़ॠकà¥à¤· कà¥à¤•à¤¿ कà¥à¤°à¤¿ टà¥à¤°à¤¿ हिनà¥à¤¦à¥€ रà¥à¤•à¥à¤°à¤¿à¤‚ कà¥à¤·à¤¤à¥à¤°à¤œà¥à¤žà¤¤à¥à¤°à¤•à¥à¤· शà¥à¤° थà¥à¤° शà¥à¤° कके रà¥à¤•à¥‡à¤‚ केूकूेकेृ रà¥à¤•à¥‚ क़ क कॠकà¥à¤· कà¥à¤·à¥ कà¥à¤·à¥à¤• ज़ ज जॠजà¥à¤ž जà¥à¤žà¥ जà¥à¤žà¥à¤• रà¥à¤• रà¥à¤•à¥à¤• डà¥à¤° कà¥à¤• क़à¥à¤• क़à¥à¤• क़ॠकà¥à¤·à¥à¤• कà¥à¤·à¥ तà¥à¤°à¥à¤• दà¥à¤¦ कि हि रू रॠरà¥à¤•à¥‡ रà¥à¤•à¤‚ कॠकॠके दà¥à¤¦à¥à¤¦ क़à¥à¤· कà¥à¤· रà¥à¤•à¥à¤·à¥‡ दà¥à¤¦à¤¤à¥à¤°à¥à¤• जà¥à¤ž कà¥à¤¤à¥à¤µ जà¥à¤žà¥à¤• रà¥à¤•à¤ रà¥à¤•à¤¿à¤ रà¥à¤•à¥‡à¤ रà¥à¤•à¥à¤°à¤¿à¤ हिंदी हà¥à¤®à¤¿à¤¹à¥à¤¯à¤¿à¤–ि ङà¥à¤• ङà¥à¤® ङà¥à¤•à¥à¤¤ ङà¥à¤– ङà¥à¤— ङà¥à¤˜ ङà¥à¤•à¥à¤· ङà¥à¤•à¥à¤·à¥à¤µ ङà¥à¤•à¥à¤·à¥à¤¯ रà¥à¤•à¥à¤¤à¥à¤µà¤¿ रà¥à¤°à¥à¤°à¥à¤° कै के कॠकू कृ कॅ कॆ हॠहू हॆ है हे</test-text>
+ </test-case>
+
+ <test-case id="Japanese Han" script="hani" lang="JAN">
+ <test-font name="ARIALUNI.TTF"/>
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+ </test-case>
+
+ <test-case id="Korean Han" script="hani" lang="KOR">
+ <test-font name="ARIALUNI.TTF"/>
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+ </test-case>
+
+ <test-case id="Traditional Han" script="hani" lang="ZHT">
+ <test-font name="ARIALUNI.TTF"/>
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+ </test-case>
+
+ <test-case id="Simplified Han" script="hani" lang="ZHS">
+ <test-font name="ARIALUNI.TTF"/>
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+ </test-case>
+
+ <test-case id="Deva locl Hindi" script="deva" lang="HIN">
+ <test-font name="TestFont1.otf"/>
+ <test-text>शङ़à¥</test-text>
+ </test-case>
+
+ <test-case id="Deva locl Marathi" script="deva" lang="MAR">
+ <test-font name="TestFont1.otf"/>
+ <test-text>शङ़à¥</test-text>
+ </test-case>
+</layout-tests> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/test/letest/letest.cpp b/Build/source/libs/icu-xetex/test/letest/letest.cpp
index f34c3a20e3d..e73d9b82cb0 100644
--- a/Build/source/libs/icu-xetex/test/letest/letest.cpp
+++ b/Build/source/libs/icu-xetex/test/letest/letest.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -11,21 +11,315 @@
* created by: Eric R. Mader
*/
-#include "math.h"
+#include "unicode/utypes.h"
+#include "unicode/uclean.h"
+#include "unicode/uchar.h"
+#include "unicode/unistr.h"
+#include "unicode/uscript.h"
+#include "unicode/putil.h"
+#include "unicode/ctest.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEScripts.h"
+#include "layout/LayoutEngine.h"
-#include "LETypes.h"
-#include "LayoutEngine.h"
#include "PortableFontInstance.h"
+#include "SimpleFontInstance.h"
+#include "letsutil.h"
#include "letest.h"
+#include "xmlparser.h"
+#include "putilimp.h" // for uprv_getUTCtime()
+
+#include <stdlib.h>
+#include <string.h>
+
U_NAMESPACE_USE
-le_bool compareResults(le_int32 /*testNumber*/, TestResult *expected, TestResult *actual)
+#define CH_COMMA 0x002C
+
+U_CDECL_BEGIN
+static void U_CALLCONV ParamTest(void)
+{
+ LEErrorCode status = LE_NO_ERROR;
+ SimpleFontInstance *font = new SimpleFontInstance(12, status);
+ LayoutEngine *engine = LayoutEngine::layoutEngineFactory(font, arabScriptCode, -1, status);
+ LEGlyphID *glyphs = NULL;
+ le_int32 *indices = NULL;
+ float *positions = NULL;
+ le_int32 glyphCount = 0;
+
+ glyphCount = engine->getGlyphCount();
+ if (glyphCount != 0) {
+ log_err("Calling getGlyphCount() on an empty layout returned %d.\n", glyphCount);
+ }
+
+ glyphs = NEW_ARRAY(LEGlyphID, glyphCount + 10);
+ indices = NEW_ARRAY(le_int32, glyphCount + 10);
+ positions = NEW_ARRAY(float, glyphCount + 10);
+
+ engine->getGlyphs(NULL, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling getGlyphs(NULL, status) did not return LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphs(glyphs, status);
+
+ if (status != LE_NO_LAYOUT_ERROR) {
+ log_err("Calling getGlyphs(glyphs, status) on an empty layout did not return LE_NO_LAYOUT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphs(NULL, 0xFF000000L, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling getGlyphs(NULL, 0xFF000000L, status) did not return LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphs(glyphs, 0xFF000000L, status);
+
+ if (status != LE_NO_LAYOUT_ERROR) {
+ log_err("Calling getGlyphs(glyphs, 0xFF000000L, status) on an empty layout did not return LE_NO_LAYOUT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getCharIndices(NULL, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling getCharIndices(NULL, status) did not return LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getCharIndices(indices, status);
+
+ if (status != LE_NO_LAYOUT_ERROR) {
+ log_err("Calling getCharIndices(indices, status) on an empty layout did not return LE_NO_LAYOUT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getCharIndices(NULL, 1024, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling getCharIndices(NULL, 1024, status) did not return LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getCharIndices(indices, 1024, status);
+
+ if (status != LE_NO_LAYOUT_ERROR) {
+ log_err("Calling getCharIndices(indices, 1024, status) on an empty layout did not return LE_NO_LAYOUT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphPositions(NULL, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling getGlyphPositions(NULL, status) did not return LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphPositions(positions, status);
+
+ if (status != LE_NO_LAYOUT_ERROR) {
+ log_err("Calling getGlyphPositions(positions, status) on an empty layout did not return LE_NO_LAYOUT_ERROR.\n");
+ }
+
+ DELETE_ARRAY(positions);
+ DELETE_ARRAY(indices);
+ DELETE_ARRAY(glyphs);
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(NULL, 0, 0, 0, FALSE, 0.0, 0.0, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling layoutChars(NULL, 0, 0, 0, FALSE, 0.0, 0.0, status) did not fail w/ LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ LEUnicode chars[] = {
+ 0x0045, 0x006E, 0x0067, 0x006C, 0x0069, 0x0073, 0x0068, 0x0020, // "English "
+ 0x0645, 0x0627, 0x0646, 0x062A, 0x0648, 0x0634, // MEM ALIF KAF NOON TEH WAW SHEEN
+ 0x0020, 0x0074, 0x0065, 0x0078, 0x0074, 0x02E // " text."
+ };
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(chars, -1, 6, 20, TRUE, 0.0, 0.0, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling layoutChars(chars, -1, 6, 20, TRUE, 0.0, 0.0, status) did not fail w/ LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(chars, 8, -1, 20, TRUE, 0.0, 0.0, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling layoutChars(chars, 8, -1, 20, TRUE, 0.0, 0.0, status) did not fail w/ LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(chars, 8, 6, -1, TRUE, 0.0, 0.0, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling layoutChars((chars, 8, 6, -1, TRUE, 0.0, 0.0, status) did not fail w/ LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(chars, 8, 6, 10, TRUE, 0.0, 0.0, status);
+
+ if (status != LE_ILLEGAL_ARGUMENT_ERROR) {
+ log_err("Calling layoutChars(chars, 8, 6, 10, TRUE, 0.0, 0.0, status) did not fail w/ LE_ILLEGAL_ARGUMENT_ERROR.\n");
+ }
+
+ float x = 0.0, y = 0.0;
+
+ status = LE_NO_ERROR;
+ glyphCount = engine->layoutChars(chars, 8, 6, 20, TRUE, 0.0, 0.0, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("Calling layoutChars(chars, 8, 6, 20, TRUE, 0.0, 0.0, status) failed.\n");
+ goto bail;
+ }
+
+ engine->getGlyphPosition(-1, x, y, status);
+
+ if (status != LE_INDEX_OUT_OF_BOUNDS_ERROR) {
+ log_err("Calling getGlyphPosition(-1, x, y, status) did not fail w/ LE_INDEX_OUT_OF_BOUNDS_ERROR.\n");
+ }
+
+ status = LE_NO_ERROR;
+ engine->getGlyphPosition(glyphCount + 1, x, y, status);
+
+ if (status != LE_INDEX_OUT_OF_BOUNDS_ERROR) {
+ log_err("Calling getGlyphPosition(glyphCount + 1, x, y, status) did not fail w/ LE_INDEX_OUT_OF_BOUNDS_ERROR.\n");
+ }
+
+bail:
+ delete engine;
+ delete font;
+}
+U_CDECL_END
+
+U_CDECL_BEGIN
+static void U_CALLCONV FactoryTest(void)
+{
+ LEErrorCode status = LE_NO_ERROR;
+ SimpleFontInstance *font = new SimpleFontInstance(12, status);
+ LayoutEngine *engine = NULL;
+
+ for(le_int32 scriptCode = 0; scriptCode < scriptCodeCount; scriptCode += 1) {
+ status = LE_NO_ERROR;
+ engine = LayoutEngine::layoutEngineFactory(font, scriptCode, -1, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("Could not create a LayoutEngine for script \'%s\'.\n", uscript_getShortName((UScriptCode)scriptCode));
+ }
+
+ delete engine;
+ }
+
+ delete font;
+}
+U_CDECL_END
+
+U_CDECL_BEGIN
+static void U_CALLCONV AccessTest(void)
+{
+ LEErrorCode status = LE_NO_ERROR;
+ SimpleFontInstance *font = new SimpleFontInstance(12, status);
+ LayoutEngine *engine = LayoutEngine::layoutEngineFactory(font, arabScriptCode, -1, status);
+ le_int32 glyphCount;
+ LEGlyphID glyphs[6], extraBitGlyphs[6];;
+ le_int32 biasedIndices[6], indices[6], glyph;
+ float positions[6 * 2 + 2];
+ LEUnicode chars[] = {
+ 0x0045, 0x006E, 0x0067, 0x006C, 0x0069, 0x0073, 0x0068, 0x0020, // "English "
+ 0x0645, 0x0627, 0x0646, 0x062A, 0x0648, 0x0634, // MEM ALIF KAF NOON TEH WAW SHEEN
+ 0x0020, 0x0074, 0x0065, 0x0078, 0x0074, 0x02E // " text."
+ };
+
+ if (LE_FAILURE(status)) {
+ log_err("Could not create LayoutEngine.\n");
+ goto bail;
+ }
+
+ glyphCount = engine->layoutChars(chars, 8, 6, 20, TRUE, 0.0, 0.0, status);
+
+ if (LE_FAILURE(status) || glyphCount != 6) {
+ log_err("layoutChars(chars, 8, 6, 20, TRUE, 0.0, 0.0, status) failed.\n");
+ goto bail;
+ }
+
+ engine->getGlyphs(glyphs, status);
+ engine->getCharIndices(indices, status);
+ engine->getGlyphPositions(positions, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("Could not get glyph, indices and position arrays.\n");
+ goto bail;
+ }
+
+ engine->getGlyphs(extraBitGlyphs, 0xFF000000L, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("getGlyphs(extraBitGlyphs, 0xFF000000L, status); failed.\n");
+ } else {
+ for(glyph = 0; glyph < glyphCount; glyph += 1) {
+ if (extraBitGlyphs[glyph] != (glyphs[glyph] | 0xFF000000L)) {
+ log_err("extraBigGlyphs[%d] != glyphs[%d] | 0xFF000000L: %8X, %8X\n",
+ glyph, glyph, extraBitGlyphs[glyph], glyphs[glyph]);
+ break;
+ }
+ }
+ }
+
+ status = LE_NO_ERROR;
+ engine->getCharIndices(biasedIndices, 1024, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("getCharIndices(biasedIndices, 1024, status) failed.\n");
+ } else {
+ for (glyph = 0; glyph < glyphCount; glyph += 1) {
+ if (biasedIndices[glyph] != (indices[glyph] + 1024)) {
+ log_err("biasedIndices[%d] != indices[%d] + 1024: %8X, %8X\n",
+ glyph, glyph, biasedIndices[glyph], indices[glyph]);
+ break;
+ }
+ }
+ }
+
+ status = LE_NO_ERROR;
+ for (glyph = 0; glyph <= glyphCount; glyph += 1) {
+ float x = 0.0, y = 0.0;
+
+ engine->getGlyphPosition(glyph, x, y, status);
+
+ if (LE_FAILURE(status)) {
+ log_err("getGlyphPosition(%d, x, y, status) failed.\n", glyph);
+ break;
+ }
+
+ if (x != positions[glyph*2] || y != positions[glyph*2 + 1]) {
+ log_err("getGlyphPosition(%d, x, y, status) returned bad position: (%f, %f) != (%f, %f)\n",
+ glyph, x, y, positions[glyph*2], positions[glyph*2 + 1]);
+ break;
+ }
+ }
+
+bail:
+ delete engine;
+ delete font;
+}
+U_CDECL_END
+
+le_bool compareResults(const char *testID, TestResult *expected, TestResult *actual)
{
/* NOTE: we'll stop on the first failure 'cause once there's one error, it may cascade... */
if (actual->glyphCount != expected->glyphCount) {
- printf("incorrect glyph count: exptected %d, got %d\n", expected->glyphCount, actual->glyphCount);
+ log_err("Test %s: incorrect glyph count: exptected %d, got %d\n",
+ testID, expected->glyphCount, actual->glyphCount);
return FALSE;
}
@@ -33,34 +327,38 @@ le_bool compareResults(le_int32 /*testNumber*/, TestResult *expected, TestResult
for (i = 0; i < actual->glyphCount; i += 1) {
if (actual->glyphs[i] != expected->glyphs[i]) {
- printf("incorrect id for glyph %d: expected %4X, got %4X\n", i, expected->glyphs[i], actual->glyphs[i]);
+ log_err("Test %s: incorrect id for glyph %d: expected %4X, got %4X\n",
+ testID, i, expected->glyphs[i], actual->glyphs[i]);
return FALSE;
}
}
for (i = 0; i < actual->glyphCount; i += 1) {
if (actual->indices[i] != expected->indices[i]) {
- printf("incorrect index for glyph %d: expected %8X, got %8X\n", i, expected->indices[i], actual->indices[i]);
+ log_err("Test %s: incorrect index for glyph %d: expected %8X, got %8X\n",
+ testID, i, expected->indices[i], actual->indices[i]);
return FALSE;
}
}
for (i = 0; i <= actual->glyphCount; i += 1) {
- double xError = fabs(actual->positions[i * 2] - expected->positions[i * 2]);
+ double xError = uprv_fabs(actual->positions[i * 2] - expected->positions[i * 2]);
if (xError > 0.0001) {
- printf("incorrect x position for glyph %d: expected %f, got %f\n", i, expected->positions[i * 2], actual->positions[i * 2]);
+ log_err("Test %s: incorrect x position for glyph %d: expected %f, got %f\n",
+ testID, i, expected->positions[i * 2], actual->positions[i * 2]);
return FALSE;
}
- double yError = fabs(actual->positions[i * 2 + 1] - expected->positions[i * 2 + 1]);
+ double yError = uprv_fabs(actual->positions[i * 2 + 1] - expected->positions[i * 2 + 1]);
if (yError < 0) {
yError = -yError;
}
if (yError > 0.0001) {
- printf("incorrect y position for glyph %d: expected %f, got %f\n", i, expected->positions[i * 2 + 1], actual->positions[i * 2 + 1]);
+ log_err("Test %s: incorrect y position for glyph %d: expected %f, got %f\n",
+ testID, i, expected->positions[i * 2 + 1], actual->positions[i * 2 + 1]);
return FALSE;
}
}
@@ -68,77 +366,495 @@ le_bool compareResults(le_int32 /*testNumber*/, TestResult *expected, TestResult
return TRUE;
}
-static void checkFontVersion(PortableFontInstance &fontInstance, const char *testVersionString, le_uint32 testChecksum)
+static void checkFontVersion(PortableFontInstance *fontInstance, const char *testVersionString,
+ le_uint32 testChecksum, const char *testID)
{
- le_uint32 fontChecksum = fontInstance.getFontChecksum();
+ le_uint32 fontChecksum = fontInstance->getFontChecksum();
if (fontChecksum != testChecksum) {
- const char *fontVersionString = fontInstance.getNameString(NAME_VERSION_STRING,
+ const char *fontVersionString = fontInstance->getNameString(NAME_VERSION_STRING,
PLATFORM_MACINTOSH, MACINTOSH_ROMAN, MACINTOSH_ENGLISH);
- printf("this may not be the same font used to generate the test data.\n");
- printf("Your font's version string is \"%s\"\n", fontVersionString);
- printf("The expected version string is \"%s\"\n", testVersionString);
- printf("If you see errors, they may be due to the version of the font you're using.\n");
+ log_info("Test %s: this may not be the same font used to generate the test data.\n", testID);
+ log_info("Your font's version string is \"%s\"\n", fontVersionString);
+ log_info("The expected version string is \"%s\"\n", testVersionString);
+ log_info("If you see errors, they may be due to the version of the font you're using.\n");
+
+ fontInstance->deleteNameString(fontVersionString);
+ }
+}
+
+/* Returns the path to icu/source/test/testdata/ */
+const char *getSourceTestData() {
+ const char *srcDataDir = NULL;
+#ifdef U_TOPSRCDIR
+ srcDataDir = U_TOPSRCDIR U_FILE_SEP_STRING"test"U_FILE_SEP_STRING"testdata"U_FILE_SEP_STRING;
+#else
+ srcDataDir = ".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING"test"U_FILE_SEP_STRING"testdata"U_FILE_SEP_STRING;
+ FILE *f = fopen(".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING"test"U_FILE_SEP_STRING"testdata"U_FILE_SEP_STRING"rbbitst.txt", "r");
+
+ if (f != NULL) {
+ /* We're in icu/source/test/letest/ */
+ fclose(f);
+ } else {
+ /* We're in icu/source/test/letest/(Debug|Release) */
+ srcDataDir = ".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING"test"U_FILE_SEP_STRING"testdata"U_FILE_SEP_STRING;
}
+#endif
+
+ return srcDataDir;
}
-int main(int /*argc*/, char * /*argv[]*/)
+const char *getPath(char buffer[2048], const char *filename) {
+ const char *testDataDirectory = getSourceTestData();
+
+ strcpy(buffer, testDataDirectory);
+ strcat(buffer, filename);
+
+ return buffer;
+}
+
+le_uint32 *getHexArray(const UnicodeString &numbers, int32_t &arraySize)
{
- le_int32 failures = 0;
+ int32_t offset = -1;
+
+ arraySize = 1;
+ while((offset = numbers.indexOf(CH_COMMA, offset + 1)) >= 0) {
+ arraySize += 1;
+ }
+
+ le_uint32 *array = NEW_ARRAY(le_uint32, arraySize);
+ char number[16];
+ le_int32 count = 0;
+ le_int32 start = 0, end = 0;
+ le_int32 len = 0;
- for (le_int32 test = 0; test < testCount; test += 1) {
- LEErrorCode fontStatus = LE_NO_ERROR;
+ // trim leading whitespace
+ while(u_isUWhiteSpace(numbers[start])) {
+ start += 1;
+ }
- printf("Test %d, font = %s... ", test, testInputs[test].fontName);
+ while((end = numbers.indexOf(CH_COMMA, start)) >= 0) {
+ len = numbers.extract(start, end - start, number, ARRAY_SIZE(number), US_INV);
+ number[len] = '\0';
+ start = end + 1;
- PortableFontInstance fontInstance(testInputs[test].fontName, 12, fontStatus);
+ sscanf(number, "%x", &array[count++]);
- if (LE_FAILURE(fontStatus)) {
- printf("could not open font.\n");
- continue;
+ // trim whitespace following the comma
+ while(u_isUWhiteSpace(numbers[start])) {
+ start += 1;
}
+ }
+
+ // trim trailing whitespace
+ end = numbers.length();
+ while(u_isUWhiteSpace(numbers[end - 1])) {
+ end -= 1;
+ }
+
+ len = numbers.extract(start, end - start, number, ARRAY_SIZE(number), US_INV);
+ number[len] = '\0';
+ sscanf(number, "%x", &array[count]);
+
+ return array;
+}
+
+float *getFloatArray(const UnicodeString &numbers, int32_t &arraySize)
+{
+ int32_t offset = -1;
- checkFontVersion(fontInstance, testInputs[test].fontVersionString, testInputs[test].fontChecksum);
+ arraySize = 1;
+ while((offset = numbers.indexOf(CH_COMMA, offset + 1)) >= 0) {
+ arraySize += 1;
+ }
+
+ float *array = NEW_ARRAY(float, arraySize);
+ char number[32];
+ le_int32 count = 0;
+ le_int32 start = 0, end = 0;
+ le_int32 len = 0;
+
+ // trim leading whitespace
+ while(u_isUWhiteSpace(numbers[start])) {
+ start += 1;
+ }
+
+ while((end = numbers.indexOf(CH_COMMA, start)) >= 0) {
+ len = numbers.extract(start, end - start, number, ARRAY_SIZE(number), US_INV);
+ number[len] = '\0';
+ start = end + 1;
- LEErrorCode success = LE_NO_ERROR;
- LayoutEngine *engine = LayoutEngine::layoutEngineFactory(&fontInstance, testInputs[test].scriptCode, -1, success);
- le_int32 textLength = testInputs[test].textLength;
- le_bool result;
- TestResult actual;
+ sscanf(number, "%f", &array[count++]);
- if (LE_FAILURE(success)) {
- // would be nice to print the script name here, but
- // don't want to maintain a table, and don't want to
- // require ICU just for the script name...
- printf("could not create a LayoutEngine.\n");
- continue;
+ // trim whiteapce following the comma
+ while(u_isUWhiteSpace(numbers[start])) {
+ start += 1;
}
+ }
- actual.glyphCount = engine->layoutChars(testInputs[test].text, 0, textLength, textLength, testInputs[test].rightToLeft, 0, 0, success);
+ while(u_isUWhiteSpace(numbers[start])) {
+ start += 1;
+ }
- actual.glyphs = new LEGlyphID[actual.glyphCount];
- actual.indices = new le_int32[actual.glyphCount];
- actual.positions = new float[actual.glyphCount * 2 + 2];
+ // trim trailing whitespace
+ end = numbers.length();
+ while(u_isUWhiteSpace(numbers[end - 1])) {
+ end -= 1;
+ }
- engine->getGlyphs(actual.glyphs, success);
- engine->getCharIndices(actual.indices, success);
- engine->getGlyphPositions(actual.positions, success);
+ len = numbers.extract(start, end - start, number, ARRAY_SIZE(number), US_INV);
+ number[len] = '\0';
+ sscanf(number, "%f", &array[count]);
- result = compareResults(test, &testResults[test], &actual);
+ return array;
+}
+
+LEFontInstance *openFont(const char *fontName, const char *checksum, const char *version, const char *testID)
+{
+ char path[2048];
+ PortableFontInstance *font;
+ LEErrorCode fontStatus = LE_NO_ERROR;
- if (result) {
- printf("passed.\n");
- } else {
- failures += 1;
- printf("failed.\n");
+
+ font = new PortableFontInstance(getPath(path, fontName), 12, fontStatus);
+
+ if (LE_FAILURE(fontStatus)) {
+ log_info("Test %s: can't open font %s - test skipped.\n", testID, fontName);
+ delete font;
+ return NULL;
+ } else {
+ le_uint32 cksum = 0;
+
+ sscanf(checksum, "%x", &cksum);
+
+ checkFontVersion(font, version, cksum, testID);
+ }
+
+ return font;
+}
+
+U_CDECL_BEGIN
+static void U_CALLCONV DataDrivenTest(void)
+{
+#if !UCONFIG_NO_REGULAR_EXPRESSIONS
+ UErrorCode status = U_ZERO_ERROR;
+ char path[2048];
+ const char *testFilePath = getPath(path, "letest.xml");
+
+ UXMLParser *parser = UXMLParser::createParser(status);
+ UXMLElement *root = parser->parseFile(testFilePath, status);
+
+ if (root == NULL) {
+ log_err("Could not open the test data file: %s\n", testFilePath);
+ delete parser;
+ return;
+ }
+
+ UnicodeString test_case = UNICODE_STRING_SIMPLE("test-case");
+ UnicodeString test_text = UNICODE_STRING_SIMPLE("test-text");
+ UnicodeString test_font = UNICODE_STRING_SIMPLE("test-font");
+ UnicodeString result_glyphs = UNICODE_STRING_SIMPLE("result-glyphs");
+ UnicodeString result_indices = UNICODE_STRING_SIMPLE("result-indices");
+ UnicodeString result_positions = UNICODE_STRING_SIMPLE("result-positions");
+
+ // test-case attributes
+ UnicodeString id_attr = UNICODE_STRING_SIMPLE("id");
+ UnicodeString script_attr = UNICODE_STRING_SIMPLE("script");
+ UnicodeString lang_attr = UNICODE_STRING_SIMPLE("lang");
+
+ // test-font attributes
+ UnicodeString name_attr = UNICODE_STRING_SIMPLE("name");
+ UnicodeString ver_attr = UNICODE_STRING_SIMPLE("version");
+ UnicodeString cksum_attr = UNICODE_STRING_SIMPLE("checksum");
+
+ const UXMLElement *testCase;
+ int32_t tc = 0;
+
+ while((testCase = root->nextChildElement(tc)) != NULL) {
+ if (testCase->getTagName().compare(test_case) == 0) {
+ char *id = getCString(testCase->getAttribute(id_attr));
+ char *script = getCString(testCase->getAttribute(script_attr));
+ char *lang = getCString(testCase->getAttribute(lang_attr));
+ LEFontInstance *font = NULL;
+ const UXMLElement *element;
+ int32_t ec = 0;
+ int32_t charCount = 0;
+ int32_t typoFlags = 3; // kerning + ligatures...
+ UScriptCode scriptCode;
+ le_int32 languageCode = -1;
+ UnicodeString text, glyphs, indices, positions;
+ int32_t glyphCount = 0, indexCount = 0, positionCount = 0;
+ TestResult expected = {0, NULL, NULL, NULL};
+ TestResult actual = {0, NULL, NULL, NULL};
+ LEErrorCode success = LE_NO_ERROR;
+ LayoutEngine *engine = NULL;
+
+ uscript_getCode(script, &scriptCode, 1, &status);
+ if (LE_FAILURE(status)) {
+ log_err("invalid script name: %s.\n", script);
+ goto free_c_strings;
+ }
+
+ if (lang != NULL) {
+ languageCode = getLanguageCode(lang);
+
+ if (languageCode < 0) {
+ log_err("invalid language name: %s.\n", lang);
+ goto free_c_strings;
+ }
+ }
+
+ while((element = testCase->nextChildElement(ec)) != NULL) {
+ UnicodeString tag = element->getTagName();
+
+ // TODO: make sure that each element is only used once.
+ if (tag.compare(test_font) == 0) {
+ char *fontName = getCString(element->getAttribute(name_attr));
+ char *fontVer = getCString(element->getAttribute(ver_attr));
+ char *fontCksum = getCString(element->getAttribute(cksum_attr));
+
+ font = openFont(fontName, fontCksum, fontVer, id);
+ freeCString(fontCksum);
+ freeCString(fontVer);
+ freeCString(fontName);
+
+ if (font == NULL) {
+ // warning message already displayed...
+ goto free_c_strings;
+ }
+ } else if (tag.compare(test_text) == 0) {
+ text = element->getText(TRUE);
+ charCount = text.length();
+ } else if (tag.compare(result_glyphs) == 0) {
+ glyphs = element->getText(TRUE);
+ } else if (tag.compare(result_indices) == 0) {
+ indices = element->getText(TRUE);
+ } else if (tag.compare(result_positions) == 0) {
+ positions = element->getText(TRUE);
+ } else {
+ // an unknown tag...
+ char *cTag = getCString(&tag);
+
+ log_info("Test %s: unknown element with tag \"%s\"\n", id, cTag);
+ freeCString(cTag);
+ }
+ }
+
+ // TODO: make sure that the font, test-text, result-glyphs, result-indices and result-positions
+ // have all been provided
+ if (font == NULL) {
+ LEErrorCode fontStatus = LE_NO_ERROR;
+
+ font = new SimpleFontInstance(12, fontStatus);
+ typoFlags |= 0x80000000L; // use CharSubstitutionFilter...
+ }
+
+ expected.glyphs = (LEGlyphID *) getHexArray(glyphs, glyphCount);
+ expected.indices = (le_int32 *) getHexArray(indices, indexCount);
+ expected.positions = getFloatArray(positions, positionCount);
+
+ expected.glyphCount = glyphCount;
+
+ if (glyphCount < charCount || indexCount != glyphCount || positionCount < glyphCount * 2 + 2) {
+ log_err("Test %s: inconsistent input data: charCount = %d, glyphCount = %d, glyphCount = %d, indexCount = %d, positionCount = %d\n",
+ id, charCount, glyphCount, indexCount, positionCount);
+ goto free_expected;
+ };
+
+ engine = LayoutEngine::layoutEngineFactory(font, scriptCode, languageCode, typoFlags, success);
+
+ if (LE_FAILURE(success)) {
+ log_err("Test %s: could not create a LayoutEngine.\n", id);
+ goto free_expected;
+ }
+
+ actual.glyphCount = engine->layoutChars(text.getBuffer(), 0, charCount, charCount, getRTL(text), 0, 0, success);
+
+ actual.glyphs = NEW_ARRAY(LEGlyphID, actual.glyphCount);
+ actual.indices = NEW_ARRAY(le_int32, actual.glyphCount);
+ actual.positions = NEW_ARRAY(float, actual.glyphCount * 2 + 2);
+
+ engine->getGlyphs(actual.glyphs, success);
+ engine->getCharIndices(actual.indices, success);
+ engine->getGlyphPositions(actual.positions, success);
+
+ compareResults(id, &expected, &actual);
+
+ DELETE_ARRAY(actual.positions);
+ DELETE_ARRAY(actual.indices);
+ DELETE_ARRAY(actual.glyphs);
+
+ delete engine;
+
+free_expected:
+ DELETE_ARRAY(expected.positions);
+ DELETE_ARRAY(expected.indices);
+ DELETE_ARRAY(expected.glyphs);
+
+ delete font;
+
+free_c_strings:
+ freeCString(lang);
+ freeCString(script);
+ freeCString(id);
}
+ }
+
+ delete root;
+ delete parser;
+#endif
+}
+U_CDECL_END
+
+static void addAllTests(TestNode** root)
+{
+ addTest(root, &ParamTest, "api/ParameterTest");
+ addTest(root, &FactoryTest, "api/FactoryTest");
+ addTest(root, &AccessTest, "layout/AccessTest");
+ addTest(root, &DataDrivenTest, "layout/DataDrivenTest");
+}
- delete[] actual.positions;
- delete[] actual.indices;
- delete[] actual.glyphs;
- delete engine;
+/* returns the path to icu/source/data/out */
+static const char *ctest_dataOutDir()
+{
+ static const char *dataOutDir = NULL;
+
+ if(dataOutDir) {
+ return dataOutDir;
}
- return failures;
+ /* U_TOPBUILDDIR is set by the makefiles on UNIXes when building cintltst and intltst
+ // to point to the top of the build hierarchy, which may or
+ // may not be the same as the source directory, depending on
+ // the configure options used. At any rate,
+ // set the data path to the built data from this directory.
+ // The value is complete with quotes, so it can be used
+ // as-is as a string constant.
+ */
+#if defined (U_TOPBUILDDIR)
+ {
+ dataOutDir = U_TOPBUILDDIR "data"U_FILE_SEP_STRING"out"U_FILE_SEP_STRING;
+ }
+#else
+
+ /* On Windows, the file name obtained from __FILE__ includes a full path.
+ * This file is "wherever\icu\source\test\cintltst\cintltst.c"
+ * Change to "wherever\icu\source\data"
+ */
+ {
+ static char p[sizeof(__FILE__) + 20];
+ char *pBackSlash;
+ int i;
+
+ strcpy(p, __FILE__);
+ /* We want to back over three '\' chars. */
+ /* Only Windows should end up here, so looking for '\' is safe. */
+ for (i=1; i<=3; i++) {
+ pBackSlash = strrchr(p, U_FILE_SEP_CHAR);
+ if (pBackSlash != NULL) {
+ *pBackSlash = 0; /* Truncate the string at the '\' */
+ }
+ }
+
+ if (pBackSlash != NULL) {
+ /* We found and truncated three names from the path.
+ * Now append "source\data" and set the environment
+ */
+ strcpy(pBackSlash, U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "out" U_FILE_SEP_STRING);
+ dataOutDir = p;
+ }
+ else {
+ /* __FILE__ on MSVC7 does not contain the directory */
+ FILE *file = fopen(".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "Makefile.in", "r");
+ if (file) {
+ fclose(file);
+ dataOutDir = ".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "out" U_FILE_SEP_STRING;
+ }
+ else {
+ dataOutDir = ".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING".."U_FILE_SEP_STRING "data" U_FILE_SEP_STRING "out" U_FILE_SEP_STRING;
+ }
+ }
+ }
+#endif
+
+ return dataOutDir;
}
+
+/* ctest_setICU_DATA - if the ICU_DATA environment variable is not already
+ * set, try to deduce the directory in which ICU was built,
+ * and set ICU_DATA to "icu/source/data" in that location.
+ * The intent is to allow the tests to have a good chance
+ * of running without requiring that the user manually set
+ * ICU_DATA. Common data isn't a problem, since it is
+ * picked up via a static (build time) reference, but the
+ * tests dynamically load some data.
+ */
+static void ctest_setICU_DATA() {
+
+ /* No location for the data dir was identifiable.
+ * Add other fallbacks for the test data location here if the need arises
+ */
+ if (getenv("ICU_DATA") == NULL) {
+ /* If ICU_DATA isn't set, set it to the usual location */
+ u_setDataDirectory(ctest_dataOutDir());
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ int32_t nerrors = 0;
+ TestNode *root = NULL;
+ UErrorCode errorCode = U_ZERO_ERROR;
+ UDate startTime, endTime;
+ int32_t diffTime;
+
+ startTime = uprv_getUTCtime();
+
+ /* Check whether ICU will initialize without forcing the build data directory into
+ * the ICU_DATA path. Success here means either the data dll contains data, or that
+ * this test program was run with ICU_DATA set externally. Failure of this check
+ * is normal when ICU data is not packaged into a shared library.
+ *
+ * Whether or not this test succeeds, we want to cleanup and reinitialize
+ * with a data path so that data loading from individual files can be tested.
+ */
+ u_init(&errorCode);
+
+ if (U_FAILURE(errorCode)) {
+ fprintf(stderr,
+ "#### Note: ICU Init without build-specific setDataDirectory() failed.\n");
+ }
+
+ u_cleanup();
+ errorCode = U_ZERO_ERROR;
+
+ /* Initialize ICU */
+ ctest_setICU_DATA(); /* u_setDataDirectory() must happen Before u_init() */
+ u_init(&errorCode);
+
+ if (U_FAILURE(errorCode)) {
+ fprintf(stderr,
+ "#### ERROR! %s: u_init() failed with status = \"%s\".\n"
+ "*** Check the ICU_DATA environment variable and \n"
+ "*** check that the data files are present.\n", argv[0], u_errorName(errorCode));
+ return 1;
+ }
+
+ addAllTests(&root);
+ nerrors = processArgs(root, argc, argv);
+
+ cleanUpTestTree(root);
+ u_cleanup();
+
+ endTime = uprv_getUTCtime();
+ diffTime = (int32_t)(endTime - startTime);
+ printf("Elapsed Time: %02d:%02d:%02d.%03d\n",
+ (int)((diffTime%U_MILLIS_PER_DAY)/U_MILLIS_PER_HOUR),
+ (int)((diffTime%U_MILLIS_PER_HOUR)/U_MILLIS_PER_MINUTE),
+ (int)((diffTime%U_MILLIS_PER_MINUTE)/U_MILLIS_PER_SECOND),
+ (int)(diffTime%U_MILLIS_PER_SECOND));
+
+ return nerrors;
+}
+
diff --git a/Build/source/libs/icu-xetex/test/letest/letest.h b/Build/source/libs/icu-xetex/test/letest/letest.h
index 2fd381e2923..15224a369d0 100644
--- a/Build/source/libs/icu-xetex/test/letest/letest.h
+++ b/Build/source/libs/icu-xetex/test/letest/letest.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
- * Copyright (C) 1999-2005, International Business Machines
+ * Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -11,24 +11,23 @@
* created by: Eric R. Mader
*/
+#ifndef __LETEST_H
+#define __LETEST_H
+
#include "LETypes.h"
-#define ARRAY_LENGTH(array) (sizeof array / sizeof array[0])
+#include <stdlib.h>
+#include <string.h>
-struct TestInput
-{
- const char *fontName;
- const char *fontVersionString;
- le_uint32 fontChecksum;
- LEUnicode *text;
- le_int32 textLength;
- le_int32 scriptCode;
- le_bool rightToLeft;
-};
+#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
+
+#define ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
-extern le_int32 testCount;
+#define NEW_ARRAY(type,count) (type *) malloc((count) * sizeof(type))
-extern TestInput testInputs[];
+#define DELETE_ARRAY(array) free((void *) (array))
+
+#define GROW_ARRAY(array,newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
struct TestResult
{
@@ -37,7 +36,4 @@ struct TestResult
le_int32 *indices;
float *positions;
};
-
-extern TestResult testResults[];
-
-
+#endif
diff --git a/Build/source/libs/icu-xetex/test/letest/letest.sln b/Build/source/libs/icu-xetex/test/letest/letest.sln
index 59ba292ada1..de181d150ee 100644
--- a/Build/source/libs/icu-xetex/test/letest/letest.sln
+++ b/Build/source/libs/icu-xetex/test/letest/letest.sln
@@ -1,6 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "letest", "letest.vcproj", "{88CD8CC8-2CD7-40D1-8B31-672AF434468B}"
ProjectSection(ProjectDependencies) = postProject
+ {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65} = {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctestfw", "..\..\tools\ctestfw\ctestfw.vcproj", "{E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}"
+ ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
@@ -13,6 +18,10 @@ Global
{88CD8CC8-2CD7-40D1-8B31-672AF434468B}.Debug.Build.0 = Debug|Win32
{88CD8CC8-2CD7-40D1-8B31-672AF434468B}.Release.ActiveCfg = Release|Win32
{88CD8CC8-2CD7-40D1-8B31-672AF434468B}.Release.Build.0 = Release|Win32
+ {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}.Debug.ActiveCfg = Debug|Win32
+ {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}.Debug.Build.0 = Debug|Win32
+ {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}.Release.ActiveCfg = Release|Win32
+ {E7D9BA19-6ED3-4325-8D0D-D724F6D29C65}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
diff --git a/Build/source/libs/icu-xetex/test/letest/letest.vcproj b/Build/source/libs/icu-xetex/test/letest/letest.vcproj
index 9f79ac2ab9c..0810a5b1910 100644
--- a/Build/source/libs/icu-xetex/test/letest/letest.vcproj
+++ b/Build/source/libs/icu-xetex/test/letest/letest.vcproj
@@ -3,6 +3,7 @@
ProjectType="Visual C++"
Version="7.10"
Name="letest"
+ ProjectGUID="{67351485-4D18-4245-BE39-A7EF0675ACD2}"
SccProjectName=""
SccLocalPath="">
<Platforms>
@@ -21,11 +22,12 @@
<Tool
Name="VCCLCompilerTool"
InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\..\..\include\layout,..\..\..\include,..\..\common"
- PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE,LE_USE_CMEMORY"
+ AdditionalIncludeDirectories="..\..\..\include\layout;..\..\..\include;..\..\common;..\..\tools\ctestfw;..\..\tools\toolutil;..\..\layout"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
StringPooling="TRUE"
RuntimeLibrary="4"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Release/letest.pch"
AssemblerListingLocation=".\Release/"
@@ -80,10 +82,11 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="..\..\..\include\layout,..\..\..\include,..\..\common"
- PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE,LE_USE_CMEMORY"
+ AdditionalIncludeDirectories="..\..\..\include\layout;..\..\..\include;..\..\common;..\..\tools\ctestfw;..\..\tools\toolutil;..\..\layout"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
BasicRuntimeChecks="3"
RuntimeLibrary="5"
+ TreatWChar_tAsBuiltInType="TRUE"
UsePrecompiledHeader="2"
PrecompiledHeaderFile=".\Debug/letest.pch"
AssemblerListingLocation=".\Debug/"
@@ -98,10 +101,10 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
- AdditionalDependencies="../../../lib/iculed.lib ../../../lib/icuucd.lib odbc32.lib odbccp32.lib"
OutputFile=".\Debug/letest.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories=""
GenerateDebugInformation="TRUE"
ProgramDatabaseFile=".\Debug/letest.pdb"
SubSystem="1"/>
@@ -146,10 +149,13 @@
RelativePath=".\letest.cpp">
</File>
<File
+ RelativePath=".\letsutil.cpp">
+ </File>
+ <File
RelativePath=".\PortableFontInstance.cpp">
</File>
<File
- RelativePath=".\testdata.cpp">
+ RelativePath=".\SimpleFontInstance.cpp">
</File>
</Filter>
<Filter
@@ -165,11 +171,17 @@
RelativePath=".\letest.h">
</File>
<File
+ RelativePath=".\letsutil.h">
+ </File>
+ <File
RelativePath=".\PortableFontInstance.h">
</File>
<File
RelativePath=".\sfnt.h">
</File>
+ <File
+ RelativePath=".\SimpleFontInstance.h">
+ </File>
</Filter>
<Filter
Name="Resource Files"
diff --git a/Build/source/libs/icu-xetex/test/letest/letsutil.cpp b/Build/source/libs/icu-xetex/test/letest/letsutil.cpp
new file mode 100644
index 00000000000..edac65ac9a2
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/letest/letsutil.cpp
@@ -0,0 +1,98 @@
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 1999-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: letsutil.cpp
+ *
+ * created on: 04/25/2006
+ * created by: Eric R. Mader
+ */
+
+#include "unicode/utypes.h"
+#include "unicode/unistr.h"
+#include "unicode/ubidi.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEScripts.h"
+#include "layout/LayoutEngine.h"
+#include "layout/LELanguages.h"
+
+#include "OpenTypeLayoutEngine.h"
+
+#include "letest.h"
+#include "letsutil.h"
+
+U_NAMESPACE_USE
+
+char *getCString(const UnicodeString *uString)
+{
+ if (uString == NULL) {
+ return NULL;
+ }
+
+ le_int32 uLength = uString->length();
+ le_int32 cLength = uString->extract(0, uLength, NULL, 0, US_INV);
+ char *cString = NEW_ARRAY(char, cLength + 1);
+
+ uString->extract(0, uLength, cString, cLength, US_INV);
+ cString[cLength] = '\0';
+
+ return cString;
+}
+
+char *getUTF8String(const UnicodeString *uString)
+{
+ if (uString == NULL) {
+ return NULL;
+ }
+
+ le_int32 uLength = uString->length();
+ le_int32 cLength = uString->extract(0, uLength, NULL, 0, "UTF-8");
+ char *cString = NEW_ARRAY(char, cLength + 1);
+
+ uString->extract(0, uLength, cString, cLength, "UTF-8");
+
+ cString[cLength] = '\0';
+
+ return cString;
+}
+
+void freeCString(char *cString)
+{
+ DELETE_ARRAY(cString);
+}
+
+le_bool getRTL(const UnicodeString &text)
+{
+ UBiDiLevel paraLevel;
+ UErrorCode status = U_ZERO_ERROR;
+ le_int32 charCount = text.length();
+ UBiDi *ubidi = ubidi_openSized(charCount, 0, &status);
+
+ ubidi_setPara(ubidi, text.getBuffer(), charCount, UBIDI_DEFAULT_LTR, NULL, &status);
+ paraLevel = ubidi_getParaLevel(ubidi);
+ ubidi_close(ubidi);
+
+ return paraLevel & 1;
+}
+
+le_int32 getLanguageCode(const char *lang)
+{
+ if (strlen(lang) != 3) {
+ return -1;
+ }
+
+ LETag langTag = (LETag) ((lang[0] << 24) + (lang[1] << 16) + (lang[2] << 8) + 0x20);
+
+ for (le_int32 i = 0; i < languageCodeCount; i += 1) {
+ if (langTag == OpenTypeLayoutEngine::languageTags[i]) {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
diff --git a/Build/source/libs/icu-xetex/test/letest/letsutil.h b/Build/source/libs/icu-xetex/test/letest/letsutil.h
new file mode 100644
index 00000000000..b7822e5d900
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/letest/letsutil.h
@@ -0,0 +1,36 @@
+/*
+ *******************************************************************************
+ *
+ * Copyright (C) 1999-2006, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ *******************************************************************************
+ * file name: letsutil.h
+ *
+ * created on: 04/25/2006
+ * created by: Eric R. Mader
+ */
+
+#ifndef __LETSUTIL_H
+#define __LETSUTIL_H
+
+#include "unicode/utypes.h"
+#include "unicode/unistr.h"
+#include "unicode/ubidi.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEScripts.h"
+#include "layout/LayoutEngine.h"
+#include "layout/LELanguages.h"
+
+#include "OpenTypeLayoutEngine.h"
+
+#include "letest.h"
+
+char *getCString(const UnicodeString *uString);
+char *getUTF8String(const UnicodeString *uString);
+void freeCString(char *cString);
+le_bool getRTL(const UnicodeString &text);
+le_int32 getLanguageCode(const char *lang);
+
+#endif
diff --git a/Build/source/libs/icu-xetex/test/perf/charperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/charperf/.cvsignore
new file mode 100644
index 00000000000..4c913730998
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/charperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+charperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/charperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/charperf/Makefile.in
index e28833e1619..9e1c7516384 100644
--- a/Build/source/libs/icu-xetex/test/perf/charperf/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/perf/charperf/Makefile.in
@@ -1,5 +1,5 @@
-## Makefile.in for ICU - test/charperf
-## Copyright (c) 2001-2005, International Business Machines Corporation and
+## Makefile.in for ICU - test/perf/charperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -10,11 +10,8 @@ top_builddir = ../../..
include $(top_builddir)/icudefs.mk
-## Platform-specific setup
-include @platform_make_fragment@
-
## Build directory information
-subdir = test/charperf
+subdir = test/perf/charperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
@@ -22,16 +19,8 @@ CLEANFILES = *~ $(DEPS)
## Target information
TARGET = charperf
-DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil
-CFLAGS = @CFLAGS@
-CXXFLAGS = @CXXFLAGS@
-ENABLE_RPATH = @ENABLE_RPATH@
-ifeq ($(ENABLE_RPATH),YES)
-RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
-endif
-LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
-LIBS = $(LIBICUUC) $(LIBICUI18N) $(LIBICUTOOLUTIL) @LIBS@ @LIB_M@
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = charperf.o
diff --git a/Build/source/libs/icu-xetex/test/perf/charperf/charperf.cpp b/Build/source/libs/icu-xetex/test/perf/charperf/charperf.cpp
index bde84695473..c964625bf2f 100644
--- a/Build/source/libs/icu-xetex/test/perf/charperf/charperf.cpp
+++ b/Build/source/libs/icu-xetex/test/perf/charperf/charperf.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (C) 2002-2003 IBM, Inc. All Rights Reserved.
+ * Copyright (C) 2002-2006 IBM, Inc. All Rights Reserved.
*
********************************************************************/
/*****************************************************************************
@@ -23,9 +23,9 @@
#include "uoptions.h"
UOption options[] = {
- UOPTION_DEF("min", 'n', UOPT_REQUIRES_ARG),
- UOPTION_DEF("min", 'x', UOPT_REQUIRES_ARG),
- };
+ UOPTION_DEF("min", 'n', UOPT_REQUIRES_ARG),
+ UOPTION_DEF("min", 'x', UOPT_REQUIRES_ARG),
+};
int MIN_OPTION_ = 0;
int MAX_OPTION_ = 1;
@@ -33,41 +33,41 @@ int main(int argc, const char *argv[])
{
UErrorCode status = U_ZERO_ERROR;
CharPerformanceTest test(argc, argv, status);
- if (U_FAILURE(status)){
+ if (U_FAILURE(status)){
return status;
}
if (test.run() == FALSE){
fprintf(stderr, "FAILED: Tests could not be run please check the "
- "arguments.\n");
+ "arguments.\n");
return -1;
}
return 0;
}
CharPerformanceTest::CharPerformanceTest(int32_t argc, const char *argv[],
- UErrorCode &status)
- : UPerfTest(argc, argv, status)
+ UErrorCode &status)
+ : UPerfTest(argc, argv, status)
{
- if (status== U_ILLEGAL_ARGUMENT_ERROR){
- fprintf(stderr,gUsageString, "charperf");
- return;
+ if (status== U_ILLEGAL_ARGUMENT_ERROR){
+ fprintf(stderr,gUsageString, "charperf");
+ return;
}
if (U_FAILURE(status)){
fprintf(stderr, "FAILED to create UPerfTest object. Error: %s\n",
- u_errorName(status));
+ u_errorName(status));
return;
}
- if (_remainingArgc < 0) {
- // that means there are some -names not matched in the super class
- // first tag is always skipped in u_parseArgs
- int size = - _remainingArgc;
- argv += argc - size;
- argc = size;
- _remainingArgc = u_parseArgs(argc, (char**)argv,
- (int32_t)(sizeof(options)/sizeof(options[0])), options);
- }
- MIN_ = 0;
+ if (_remainingArgc < 0) {
+ // that means there are some -names not matched in the super class
+ // first tag is always skipped in u_parseArgs
+ int size = - _remainingArgc;
+ argv += argc - size;
+ argc = size;
+ _remainingArgc = u_parseArgs(argc, (char**)argv,
+ (int32_t)(sizeof(options)/sizeof(options[0])), options);
+ }
+ MIN_ = 0;
if (sizeof(wchar_t) > 2) {
// for stdlibs like glibc that supports 32 bits wchar
// we test for the whole unicode character set by default
@@ -77,12 +77,12 @@ CharPerformanceTest::CharPerformanceTest(int32_t argc, const char *argv[],
MAX_ = 0xffff;
}
printf("MAX_ size will be 0x%x\n", MAX_);
- if (options[MIN_OPTION_].doesOccur) {
- MIN_ = atoi(options[MIN_OPTION_].value);
- }
- if (options[MAX_OPTION_].doesOccur) {
- MAX_ = atoi(options[MAX_OPTION_].value);
- }
+ if (options[MIN_OPTION_].doesOccur) {
+ MIN_ = atoi(options[MIN_OPTION_].value);
+ }
+ if (options[MAX_OPTION_].doesOccur) {
+ MAX_ = atoi(options[MAX_OPTION_].value);
+ }
}
CharPerformanceTest::~CharPerformanceTest()
@@ -90,32 +90,32 @@ CharPerformanceTest::~CharPerformanceTest()
}
UPerfFunction* CharPerformanceTest::runIndexedTest(int32_t index, UBool exec,
- const char *&name,
- char* par)
+ const char *&name,
+ char* par)
{
switch (index) {
TESTCASE(0, TestIsAlpha);
- TESTCASE(1, TestIsUpper);
- TESTCASE(2, TestIsLower);
- TESTCASE(3, TestIsDigit);
- TESTCASE(4, TestIsSpace);
- TESTCASE(5, TestIsAlphaNumeric);
- TESTCASE(6, TestIsPrint);
- TESTCASE(7, TestIsControl);
- TESTCASE(8, TestToLower);
- TESTCASE(9, TestToUpper);
- TESTCASE(10, TestIsWhiteSpace);
- TESTCASE(11, TestStdLibIsAlpha);
- TESTCASE(12, TestStdLibIsUpper);
- TESTCASE(13, TestStdLibIsLower);
- TESTCASE(14, TestStdLibIsDigit);
- TESTCASE(15, TestStdLibIsSpace);
- TESTCASE(16, TestStdLibIsAlphaNumeric);
- TESTCASE(17, TestStdLibIsPrint);
- TESTCASE(18, TestStdLibIsControl);
- TESTCASE(19, TestStdLibToLower);
- TESTCASE(20, TestStdLibToUpper);
- TESTCASE(21, TestStdLibIsWhiteSpace);
+ TESTCASE(1, TestIsUpper);
+ TESTCASE(2, TestIsLower);
+ TESTCASE(3, TestIsDigit);
+ TESTCASE(4, TestIsSpace);
+ TESTCASE(5, TestIsAlphaNumeric);
+ TESTCASE(6, TestIsPrint);
+ TESTCASE(7, TestIsControl);
+ TESTCASE(8, TestToLower);
+ TESTCASE(9, TestToUpper);
+ TESTCASE(10, TestIsWhiteSpace);
+ TESTCASE(11, TestStdLibIsAlpha);
+ TESTCASE(12, TestStdLibIsUpper);
+ TESTCASE(13, TestStdLibIsLower);
+ TESTCASE(14, TestStdLibIsDigit);
+ TESTCASE(15, TestStdLibIsSpace);
+ TESTCASE(16, TestStdLibIsAlphaNumeric);
+ TESTCASE(17, TestStdLibIsPrint);
+ TESTCASE(18, TestStdLibIsControl);
+ TESTCASE(19, TestStdLibToLower);
+ TESTCASE(20, TestStdLibToUpper);
+ TESTCASE(21, TestStdLibIsWhiteSpace);
default:
name = "";
return NULL;
@@ -125,131 +125,131 @@ UPerfFunction* CharPerformanceTest::runIndexedTest(int32_t index, UBool exec,
UPerfFunction* CharPerformanceTest::TestIsAlpha()
{
- return new CharPerfFunction(isAlpha, MIN_, MAX_);
+ return new CharPerfFunction(isAlpha, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsUpper()
{
- return new CharPerfFunction(isUpper, MIN_, MAX_);
+ return new CharPerfFunction(isUpper, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsLower()
{
- return new CharPerfFunction(isLower, MIN_, MAX_);
+ return new CharPerfFunction(isLower, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsDigit()
{
- return new CharPerfFunction(isDigit, MIN_, MAX_);
+ return new CharPerfFunction(isDigit, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsSpace()
{
- return new CharPerfFunction(isSpace, MIN_, MAX_);
+ return new CharPerfFunction(isSpace, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsAlphaNumeric()
{
- return new CharPerfFunction(isAlphaNumeric, MIN_, MAX_);
+ return new CharPerfFunction(isAlphaNumeric, MIN_, MAX_);
}
/**
- * This test may be different since c lib has a type PUNCT and it is printable.
- * iswgraph is not used for testing since it is a subset of iswprint with the
- * exception of returning true for white spaces. no match found in icu4c.
- */
+* This test may be different since c lib has a type PUNCT and it is printable.
+* iswgraph is not used for testing since it is a subset of iswprint with the
+* exception of returning true for white spaces. no match found in icu4c.
+*/
UPerfFunction* CharPerformanceTest::TestIsPrint()
{
- return new CharPerfFunction(isPrint, MIN_, MAX_);
+ return new CharPerfFunction(isPrint, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsControl()
{
- return new CharPerfFunction(isControl, MIN_, MAX_);
+ return new CharPerfFunction(isControl, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestToLower()
{
- return new CharPerfFunction(toLower, MIN_, MAX_);
+ return new CharPerfFunction(toLower, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestToUpper()
{
- return new CharPerfFunction(toUpper, MIN_, MAX_);
+ return new CharPerfFunction(toUpper, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsWhiteSpace()
{
- return new CharPerfFunction(isWhiteSpace, MIN_, MAX_);
+ return new CharPerfFunction(isWhiteSpace, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsAlpha()
{
- return new StdLibCharPerfFunction(StdLibIsAlpha, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsAlpha, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsUpper()
{
- return new StdLibCharPerfFunction(StdLibIsUpper, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsUpper, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsLower()
{
- return new StdLibCharPerfFunction(StdLibIsLower, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsLower, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsDigit()
{
- return new StdLibCharPerfFunction(StdLibIsDigit, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsDigit, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsSpace()
{
- return new StdLibCharPerfFunction(StdLibIsSpace, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsSpace, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsAlphaNumeric()
{
- return new StdLibCharPerfFunction(StdLibIsAlphaNumeric, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsAlphaNumeric, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
/**
- * This test may be different since c lib has a type PUNCT and it is printable.
- * iswgraph is not used for testing since it is a subset of iswprint with the
- * exception of returning true for white spaces. no match found in icu4c.
- */
+* This test may be different since c lib has a type PUNCT and it is printable.
+* iswgraph is not used for testing since it is a subset of iswprint with the
+* exception of returning true for white spaces. no match found in icu4c.
+*/
UPerfFunction* CharPerformanceTest::TestStdLibIsPrint()
{
- return new StdLibCharPerfFunction(StdLibIsPrint, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsPrint, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsControl()
{
- return new StdLibCharPerfFunction(StdLibIsControl, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsControl, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibToLower()
{
- return new StdLibCharPerfFunction(StdLibToLower, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibToLower, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibToUpper()
{
- return new StdLibCharPerfFunction(StdLibToUpper, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibToUpper, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsWhiteSpace()
{
- return new StdLibCharPerfFunction(StdLibIsWhiteSpace, (wchar_t)MIN_,
- (wchar_t)MAX_);
+ return new StdLibCharPerfFunction(StdLibIsWhiteSpace, (wchar_t)MIN_,
+ (wchar_t)MAX_);
}
diff --git a/Build/source/libs/icu-xetex/test/perf/charperf/charperf.h b/Build/source/libs/icu-xetex/test/perf/charperf/charperf.h
index 8d892cb0a3a..e23785f84cb 100644
--- a/Build/source/libs/icu-xetex/test/perf/charperf/charperf.h
+++ b/Build/source/libs/icu-xetex/test/perf/charperf/charperf.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
**********************************************************************
@@ -22,98 +22,98 @@ typedef void (*StdLibCharPerfFn)(wchar_t ch);
class CharPerfFunction : public UPerfFunction
{
public:
- virtual void call(UErrorCode* status)
- {
- for (UChar32 i = MIN_; i < MAX_; i ++) {
- (*m_fn_)(i);
- }
- }
-
- virtual long getOperationsPerIteration()
- {
- return MAX_ - MIN_;
- }
- CharPerfFunction(CharPerfFn func, UChar32 min, UChar32 max)
- {
- m_fn_ = func;
- MIN_ = min;
- MAX_ = max;
- }
+ virtual void call(UErrorCode* status)
+ {
+ for (UChar32 i = MIN_; i < MAX_; i ++) {
+ (*m_fn_)(i);
+ }
+ }
+
+ virtual long getOperationsPerIteration()
+ {
+ return MAX_ - MIN_;
+ }
+ CharPerfFunction(CharPerfFn func, UChar32 min, UChar32 max)
+ {
+ m_fn_ = func;
+ MIN_ = min;
+ MAX_ = max;
+ }
private:
- CharPerfFn m_fn_;
- UChar32 MIN_;
- UChar32 MAX_;
+ CharPerfFn m_fn_;
+ UChar32 MIN_;
+ UChar32 MAX_;
};
class StdLibCharPerfFunction : public UPerfFunction
{
public:
- virtual void call(UErrorCode* status)
- {
- // note wchar_t is unsigned, it will revert to 0 once it reaches
- // 65535
- for (wchar_t i = MIN_; i < MAX_; i ++) {
- (*m_fn_)(i);
- }
- }
-
- virtual long getOperationsPerIteration()
- {
- return MAX_ - MIN_;
- }
-
- StdLibCharPerfFunction(StdLibCharPerfFn func, wchar_t min, wchar_t max)
- {
- m_fn_ = func;
- MIN_ = min;
- MAX_ = max;
- }
-
- ~StdLibCharPerfFunction()
- {
- }
+ virtual void call(UErrorCode* status)
+ {
+ // note wchar_t is unsigned, it will revert to 0 once it reaches
+ // 65535
+ for (wchar_t i = MIN_; i < MAX_; i ++) {
+ (*m_fn_)(i);
+ }
+ }
+
+ virtual long getOperationsPerIteration()
+ {
+ return MAX_ - MIN_;
+ }
+
+ StdLibCharPerfFunction(StdLibCharPerfFn func, wchar_t min, wchar_t max)
+ {
+ m_fn_ = func;
+ MIN_ = min;
+ MAX_ = max;
+ }
+
+ ~StdLibCharPerfFunction()
+ {
+ }
private:
- StdLibCharPerfFn m_fn_;
- wchar_t MIN_;
- wchar_t MAX_;
+ StdLibCharPerfFn m_fn_;
+ wchar_t MIN_;
+ wchar_t MAX_;
};
class CharPerformanceTest : public UPerfTest
{
public:
- CharPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status);
- ~CharPerformanceTest();
- virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,
- const char *&name,
- char *par = NULL);
- UPerfFunction* TestIsAlpha();
- UPerfFunction* TestIsUpper();
- UPerfFunction* TestIsLower();
- UPerfFunction* TestIsDigit();
- UPerfFunction* TestIsSpace();
- UPerfFunction* TestIsAlphaNumeric();
- UPerfFunction* TestIsPrint();
- UPerfFunction* TestIsControl();
- UPerfFunction* TestToLower();
- UPerfFunction* TestToUpper();
- UPerfFunction* TestIsWhiteSpace();
- UPerfFunction* TestStdLibIsAlpha();
- UPerfFunction* TestStdLibIsUpper();
- UPerfFunction* TestStdLibIsLower();
- UPerfFunction* TestStdLibIsDigit();
- UPerfFunction* TestStdLibIsSpace();
- UPerfFunction* TestStdLibIsAlphaNumeric();
- UPerfFunction* TestStdLibIsPrint();
- UPerfFunction* TestStdLibIsControl();
- UPerfFunction* TestStdLibToLower();
- UPerfFunction* TestStdLibToUpper();
- UPerfFunction* TestStdLibIsWhiteSpace();
+ CharPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status);
+ ~CharPerformanceTest();
+ virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,
+ const char *&name,
+ char *par = NULL);
+ UPerfFunction* TestIsAlpha();
+ UPerfFunction* TestIsUpper();
+ UPerfFunction* TestIsLower();
+ UPerfFunction* TestIsDigit();
+ UPerfFunction* TestIsSpace();
+ UPerfFunction* TestIsAlphaNumeric();
+ UPerfFunction* TestIsPrint();
+ UPerfFunction* TestIsControl();
+ UPerfFunction* TestToLower();
+ UPerfFunction* TestToUpper();
+ UPerfFunction* TestIsWhiteSpace();
+ UPerfFunction* TestStdLibIsAlpha();
+ UPerfFunction* TestStdLibIsUpper();
+ UPerfFunction* TestStdLibIsLower();
+ UPerfFunction* TestStdLibIsDigit();
+ UPerfFunction* TestStdLibIsSpace();
+ UPerfFunction* TestStdLibIsAlphaNumeric();
+ UPerfFunction* TestStdLibIsPrint();
+ UPerfFunction* TestStdLibIsControl();
+ UPerfFunction* TestStdLibToLower();
+ UPerfFunction* TestStdLibToUpper();
+ UPerfFunction* TestStdLibIsWhiteSpace();
private:
- UChar32 MIN_;
- UChar32 MAX_;
+ UChar32 MIN_;
+ UChar32 MAX_;
};
inline void isAlpha(UChar32 ch)
@@ -123,117 +123,117 @@ inline void isAlpha(UChar32 ch)
inline void isUpper(UChar32 ch)
{
- u_isupper(ch);
+ u_isupper(ch);
}
inline void isLower(UChar32 ch)
{
- u_islower(ch);
+ u_islower(ch);
}
inline void isDigit(UChar32 ch)
{
- u_isdigit(ch);
+ u_isdigit(ch);
}
inline void isSpace(UChar32 ch)
{
- u_isspace(ch);
+ u_isspace(ch);
}
inline void isAlphaNumeric(UChar32 ch)
{
- u_isalnum(ch);
+ u_isalnum(ch);
}
/**
- * This test may be different since c lib has a type PUNCT and it is printable.
- * iswgraph is not used for testing since it is a subset of iswprint with the
- * exception of returning true for white spaces. no match found in icu4c.
- */
+* This test may be different since c lib has a type PUNCT and it is printable.
+* iswgraph is not used for testing since it is a subset of iswprint with the
+* exception of returning true for white spaces. no match found in icu4c.
+*/
inline void isPrint(UChar32 ch)
{
- u_isprint(ch);
+ u_isprint(ch);
}
inline void isControl(UChar32 ch)
{
- u_iscntrl(ch);
+ u_iscntrl(ch);
}
inline void toLower(UChar32 ch)
{
- u_tolower(ch);
+ u_tolower(ch);
}
inline void toUpper(UChar32 ch)
{
- u_toupper(ch);
+ u_toupper(ch);
}
inline void isWhiteSpace(UChar32 ch)
{
- u_isWhitespace(ch);
+ u_isWhitespace(ch);
}
inline void StdLibIsAlpha(wchar_t ch)
{
- iswalpha(ch);
+ iswalpha(ch);
}
inline void StdLibIsUpper(wchar_t ch)
{
- iswupper(ch);
+ iswupper(ch);
}
inline void StdLibIsLower(wchar_t ch)
{
- iswlower(ch);
+ iswlower(ch);
}
inline void StdLibIsDigit(wchar_t ch)
{
- iswdigit(ch);
+ iswdigit(ch);
}
inline void StdLibIsSpace(wchar_t ch)
{
- iswspace(ch);
+ iswspace(ch);
}
inline void StdLibIsAlphaNumeric(wchar_t ch)
{
- iswalnum(ch);
+ iswalnum(ch);
}
/**
- * This test may be different since c lib has a type PUNCT and it is printable.
- * iswgraph is not used for testing since it is a subset of iswprint with the
- * exception of returning true for white spaces. no match found in icu4c.
- */
+* This test may be different since c lib has a type PUNCT and it is printable.
+* iswgraph is not used for testing since it is a subset of iswprint with the
+* exception of returning true for white spaces. no match found in icu4c.
+*/
inline void StdLibIsPrint(wchar_t ch)
{
- iswprint(ch);
+ iswprint(ch);
}
inline void StdLibIsControl(wchar_t ch)
{
- iswcntrl(ch);
+ iswcntrl(ch);
}
inline void StdLibToLower(wchar_t ch)
{
- towlower(ch);
+ towlower(ch);
}
inline void StdLibToUpper(wchar_t ch)
{
- towupper(ch);
+ towupper(ch);
}
inline void StdLibIsWhiteSpace(wchar_t ch)
{
- iswspace(ch);
+ iswspace(ch);
}
#endif // CHARPERF_H
diff --git a/Build/source/libs/icu-xetex/test/perf/collperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/collperf/.cvsignore
new file mode 100644
index 00000000000..cea629d988e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/collperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+collperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/collperf/CollPerf.pl b/Build/source/libs/icu-xetex/test/perf/collperf/CollPerf.pl
new file mode 100755
index 00000000000..78c69f3549c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/collperf/CollPerf.pl
@@ -0,0 +1,82 @@
+#!/usr/bin/perl -w
+# ********************************************************************
+# * COPYRIGHT:
+# * Copyright (c) 2005, International Business Machines Corporation and
+# * others. All Rights Reserved.
+# ********************************************************************
+
+use strict;
+
+use lib '../perldriver';
+
+use PerfFramework;
+
+
+my $options = {
+ "title"=>"Collation performance: ICU,POSIX,and Win",
+ "headers"=>"ICU_POSIX_WIN",
+ "operationIs"=>"unicode String",
+ "passes"=>"1",
+ "time"=>"2",
+ #"outputType"=>"HTML",
+ "dataDir"=>"../data",
+ "outputDir"=>"../results"
+ };
+
+# programs
+# tests will be done for all the programs. Results will be stored and connected
+my $p = "debug/collperf.exe ";
+
+my $tests = {
+ "Key Gen ICU null", ["$p TestIcu_KeyGen_null"],
+ "Key Gen ICU len", ["$p TestIcu_KeyGen_len"],
+ "Key Gen POSIX", ["$p TestPosix_KeyGen_null"],
+ "Key Gen Win", ["$p TestWin_KeyGen_null"],
+ "Iteration icu forward null", ["$p TestIcu_ForwardIter_null"],
+ "Iteration icu forward len", ["$p TestIcu_ForwardIter_len"],
+ "Iteration icu backward null", ["$p TestIcu_BackwardIter_null"],
+ "Iteration icu backward len", ["$p TestIcu_BackwardIter_len"],
+ "Iteration/all icu forward null", ["$p TestIcu_ForwardIter_all_null"],
+ "Iteration/all icu forward len", ["$p TestIcu_ForwardIter_all_len"],
+ "Iteration/all icu backward null", ["$p TestIcu_BackwardIter_all_null"],
+ "Iteration/all icu backward len", ["$p TestIcu_BackwardIter_all_len"],
+ "qsort icu strcoll null", ["$p TestIcu_qsort_strcoll_null"],
+ "qsort icu strcoll len", ["$p TestIcu_qsort_strcoll_len"],
+ "qsort icu use key", ["$p TestIcu_qsort_usekey"],
+ "qsort posix strcoll null", ["$p TestPosix_qsort_strcoll_null"],
+ "qsort posix use key", ["$p TestPosix_qsort_usekey"],
+ "qsort win CompareStringW null", ["$p TestWin_qsort_CompareStringW_null"],
+ "qsort win CompareStringW len", ["$p TestWin_qsort_CompareStringW_len"],
+ "qsort win use key", ["$p TestWin_qsort_usekey"],
+ "Binary Search icu strcoll null", ["$p TestIcu_BinarySearch_strcoll_null"],
+ "Binary Search icu strcoll len", ["$p TestIcu_BinarySearch_strcoll_len"],
+ "Binary Search icu use key", ["$p TestIcu_BinarySearch_usekey"],
+ "Binary Search icu u_strcmp", ["$p TestIcu_BinarySearch_strcmp"],
+ "Binary Search icu cmpCPO", ["$p TestIcu_BinarySearch_cmpCPO"],
+ "Binary Search posix strcoll null", ["$p TestPosix_BinarySearch_strcoll_null"],
+ "Binary Search posix use key", ["$p TestPosix_BinarySearch_usekey"],
+ "Binary Search win CompareStringW null", ["$p TestWin_BinarySearch_CompareStringW_null"],
+ "Binary Search win CompareStringW len", ["$p TestWin_BinarySearch_CompareStringW_len"],
+ "Binary Search win use key", ["$p TestWin_BinarySearch_usekey"],
+ "Binary Search win wcscmp", ["$p TestWin_BinarySearch_wcscmp"],
+ };
+
+my $dataFiles = {
+ "",
+ [
+ "TestNames_Asian.txt",
+# "TestNames_Chinese.txt",
+# "TestNames_Japanese.txt",
+# "TestNames_Japanese_h.txt",
+# "TestNames_Japanese_k.txt",
+# "TestNames_Korean.txt",
+# "TestNames_Latin.txt",
+# "Testnames_Russian.txt",
+# "TestNames_SerbianSH.txt",
+# "TestNames_SerbianSR.txt",
+# "TestNames_Simplified_Chinese.txt",
+# "TestNames_Thai.txt"
+ ]
+ };
+
+runTests($options, $tests, $dataFiles);
diff --git a/Build/source/libs/icu-xetex/test/collperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/collperf/Makefile.in
index bca32116de0..46e509a12fe 100644
--- a/Build/source/libs/icu-xetex/test/collperf/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/perf/collperf/Makefile.in
@@ -1,20 +1,17 @@
-## Makefile.in for ICU - test/collperf
-## Copyright (c) 2001, International Business Machines Corporation and
+## Makefile.in for ICU - test/perf/collperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-top_builddir = ../..
+top_builddir = ../../..
include $(top_builddir)/icudefs.mk
-## Platform-specific setup
-include @platform_make_fragment@
-
## Build directory information
-subdir = test/collperf
+subdir = test/perf/collperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
@@ -22,16 +19,8 @@ CLEANFILES = *~ $(DEPS)
## Target information
TARGET = collperf
-DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n
-CFLAGS = @CFLAGS@
-CXXFLAGS = @CXXFLAGS@
-ENABLE_RPATH = @ENABLE_RPATH@
-ifeq ($(ENABLE_RPATH),YES)
-RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
-endif
-LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
-LIBS = $(LIBICUI18N) $(LIBICUUC) @LIBS@ @LIB_M@
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = collperf.o
diff --git a/Build/source/libs/icu-xetex/test/perf/collperf/collperf.cpp b/Build/source/libs/icu-xetex/test/perf/collperf/collperf.cpp
new file mode 100644
index 00000000000..6dd508ba6d2
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/collperf/collperf.cpp
@@ -0,0 +1,879 @@
+/********************************************************************
+* COPYRIGHT:
+* Copyright (C) 2001-2006 IBM, Inc. All Rights Reserved.
+*
+********************************************************************/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <locale.h>
+#include <limits.h>
+#include <string.h>
+#include "unicode/uperf.h"
+#include "uoptions.h"
+#include "unicode/coll.h"
+#include <unicode/ucoleitr.h>
+
+
+
+/* To store an array of string<UNIT> in continue space.
+Since string<UNIT> itself is treated as an array of UNIT, this
+class will ease our memory management for an array of string<UNIT>.
+*/
+
+//template<typename UNIT>
+#define COMPATCT_ARRAY(CompactArrays, UNIT) \
+struct CompactArrays{\
+ CompactArrays(const CompactArrays & );\
+ CompactArrays & operator=(const CompactArrays & );\
+ int32_t count;/*total number of the strings*/ \
+ int32_t * index;/*relative offset in data*/ \
+ UNIT * data; /*the real space to hold strings*/ \
+ \
+ ~CompactArrays(){free(index);free(data);} \
+ CompactArrays():data(NULL), index(NULL), count(0){ \
+ index = (int32_t *) realloc(index, sizeof(int32_t)); \
+ index[0] = 0; \
+ } \
+ void append_one(int32_t theLen){ /*include terminal NULL*/ \
+ count++; \
+ index = (int32_t *) realloc(index, sizeof(int32_t) * (count + 1)); \
+ index[count] = index[count - 1] + theLen; \
+ data = (UNIT *) realloc(data, sizeof(UNIT) * index[count]); \
+ } \
+ UNIT * last(){return data + index[count - 1];} \
+ UNIT * dataOf(int32_t i){return data + index[i];} \
+ int32_t lengthOf(int i){return index[i+1] - index[i] - 1; } /*exclude terminating NULL*/ \
+};
+
+//typedef CompactArrays<UChar> CA_uchar;
+//typedef CompactArrays<char> CA_char;
+//typedef CompactArrays<uint8_t> CA_uint8;
+//typedef CompactArrays<WCHAR> CA_win_wchar;
+
+COMPATCT_ARRAY(CA_uchar, UChar)
+COMPATCT_ARRAY(CA_char, char)
+COMPATCT_ARRAY(CA_uint8, uint8_t)
+COMPATCT_ARRAY(CA_win_wchar, WCHAR)
+
+
+struct DataIndex {
+ static DWORD win_langid; // for qsort callback function
+ static UCollator * col; // for qsort callback function
+ uint8_t * icu_key;
+ UChar * icu_data;
+ int32_t icu_data_len;
+ char* posix_key;
+ char* posix_data;
+ int32_t posix_data_len;
+ char* win_key;
+ WCHAR * win_data;
+ int32_t win_data_len;
+};
+DWORD DataIndex::win_langid;
+UCollator * DataIndex::col;
+
+
+
+class CmdKeyGen : public UPerfFunction {
+ typedef void (CmdKeyGen::* Func)(int32_t);
+ enum{MAX_KEY_LENGTH = 5000};
+ UCollator * col;
+ DWORD win_langid;
+ int32_t count;
+ DataIndex * data;
+ Func fn;
+
+ union { // to save sapce
+ uint8_t icu_key[MAX_KEY_LENGTH];
+ char posix_key[MAX_KEY_LENGTH];
+ WCHAR win_key[MAX_KEY_LENGTH];
+ };
+public:
+ CmdKeyGen(UErrorCode, UCollator * col,DWORD win_langid, int32_t count, DataIndex * data,Func fn,int32_t)
+ :col(col),win_langid(win_langid), count(count), data(data), fn(fn){}
+
+ virtual long getOperationsPerIteration(){return count;}
+
+ virtual void call(UErrorCode* status){
+ for(int32_t i = 0; i< count; i++){
+ (this->*fn)(i);
+ }
+ }
+
+ void icu_key_null(int32_t i){
+ ucol_getSortKey(col, data[i].icu_data, -1, icu_key, MAX_KEY_LENGTH);
+ }
+
+ void icu_key_len(int32_t i){
+ ucol_getSortKey(col, data[i].icu_data, data[i].icu_data_len, icu_key, MAX_KEY_LENGTH);
+ }
+
+ // pre-generated in CollPerfTest::prepareData(), need not to check error here
+ void win_key_null(int32_t i){
+ //LCMAP_SORTsk 0x00000400 // WC sort sk (normalize)
+ LCMapStringW(win_langid, LCMAP_SORTKEY, data[i].win_data, -1, win_key, MAX_KEY_LENGTH);
+ }
+
+ void win_key_len(int32_t i){
+ LCMapStringW(win_langid, LCMAP_SORTKEY, data[i].win_data, data[i].win_data_len, win_key, MAX_KEY_LENGTH);
+ }
+
+ void posix_key_null(int32_t i){
+ strxfrm(posix_key, data[i].posix_data, MAX_KEY_LENGTH);
+ }
+};
+
+
+class CmdIter : public UPerfFunction {
+ typedef void (CmdIter::* Func)(UErrorCode* , int32_t );
+ int32_t count;
+ CA_uchar * data;
+ Func fn;
+ UCollationElements *iter;
+ int32_t exec_count;
+public:
+ CmdIter(UErrorCode & status, UCollator * col, int32_t count, CA_uchar *data, Func fn, int32_t,int32_t)
+ :count(count), data(data), fn(fn){
+ exec_count = 0;
+ UChar dummytext[] = {0, 0};
+ iter = ucol_openElements(col, NULL, 0, &status);
+ ucol_setText(iter, dummytext, 1, &status);
+ }
+ ~CmdIter(){
+ ucol_closeElements(iter);
+ }
+
+ virtual long getOperationsPerIteration(){return exec_count ? exec_count : 1;}
+
+ virtual void call(UErrorCode* status){
+ exec_count = 0;
+ for(int32_t i = 0; i< count; i++){
+ (this->*fn)(status, i);
+ }
+ }
+
+ void icu_forward_null(UErrorCode* status, int32_t i){
+ ucol_setText(iter, data->dataOf(i), -1, status);
+ while (ucol_next(iter, status) != UCOL_NULLORDER) exec_count++;
+ }
+
+ void icu_forward_len(UErrorCode* status, int32_t i){
+ ucol_setText(iter, data->dataOf(i), data->lengthOf(i) , status);
+ while (ucol_next(iter, status) != UCOL_NULLORDER) exec_count++;
+ }
+
+ void icu_backward_null(UErrorCode* status, int32_t i){
+ ucol_setText(iter, data->dataOf(i), -1, status);
+ while (ucol_previous(iter, status) != UCOL_NULLORDER) exec_count++;
+ }
+
+ void icu_backward_len(UErrorCode* status, int32_t i){
+ ucol_setText(iter, data->dataOf(i), data->lengthOf(i) , status);
+ while (ucol_previous(iter, status) != UCOL_NULLORDER) exec_count++;
+ }
+};
+
+class CmdIterAll : public UPerfFunction {
+ typedef void (CmdIterAll::* Func)(UErrorCode* status);
+ int32_t count;
+ UChar * data;
+ Func fn;
+ UCollationElements *iter;
+ int32_t exec_count;
+
+public:
+ enum CALL {forward_null, forward_len, backward_null, backward_len};
+
+ ~CmdIterAll(){
+ ucol_closeElements(iter);
+ }
+ CmdIterAll(UErrorCode & status, UCollator * col, int32_t count, UChar * data, CALL call,int32_t,int32_t)
+ :count(count),data(data){
+ exec_count = 0;
+ if (call == forward_null || call == backward_null) {
+ iter = ucol_openElements(col, data, -1, &status);
+ } else {
+ iter = ucol_openElements(col, data, count, &status);
+ }
+
+ if (call == forward_null || call == forward_len){
+ fn = icu_forward_all;
+ } else {
+ fn = icu_backward_all;
+ }
+ }
+ virtual long getOperationsPerIteration(){return exec_count ? exec_count : 1;}
+
+ virtual void call(UErrorCode* status){
+ (this->*fn)(status);
+ }
+
+ void icu_forward_all(UErrorCode* status){
+ int strlen = count - 5;
+ int count5 = 5;
+ int strindex = 0;
+ ucol_setOffset(iter, strindex, status);
+ while (TRUE) {
+ if (ucol_next(iter, status) == UCOL_NULLORDER) {
+ break;
+ }
+ exec_count++;
+ count5 --;
+ if (count5 == 0) {
+ strindex += 10;
+ if (strindex > strlen) {
+ break;
+ }
+ ucol_setOffset(iter, strindex, status);
+ count5 = 5;
+ }
+ }
+ }
+
+ void icu_backward_all(UErrorCode* status){
+ int strlen = count;
+ int count5 = 5;
+ int strindex = 5;
+ ucol_setOffset(iter, strindex, status);
+ while (TRUE) {
+ if (ucol_previous(iter, status) == UCOL_NULLORDER) {
+ break;
+ }
+ exec_count++;
+ count5 --;
+ if (count5 == 0) {
+ strindex += 10;
+ if (strindex > strlen) {
+ break;
+ }
+ ucol_setOffset(iter, strindex, status);
+ count5 = 5;
+ }
+ }
+ }
+
+};
+
+struct CmdQsort : public UPerfFunction{
+
+ static int q_random(const void * a, const void * b){
+ uint8_t * key_a = ((DataIndex *)a)->icu_key;
+ uint8_t * key_b = ((DataIndex *)b)->icu_key;
+
+ int val_a = 0;
+ int val_b = 0;
+ while (*key_a != 0) {val_a += val_a*37 + *key_a++;}
+ while (*key_b != 0) {val_b += val_b*37 + *key_b++;}
+ return val_a - val_b;
+ }
+
+#define QCAST() \
+ DataIndex * da = (DataIndex *) a; \
+ DataIndex * db = (DataIndex *) b; \
+ ++exec_count
+
+ static int icu_strcoll_null(const void *a, const void *b){
+ QCAST();
+ return ucol_strcoll(da->col, da->icu_data, -1, db->icu_data, -1) - UCOL_EQUAL;
+ }
+
+ static int icu_strcoll_len(const void *a, const void *b){
+ QCAST();
+ return ucol_strcoll(da->col, da->icu_data, da->icu_data_len, db->icu_data, db->icu_data_len) - UCOL_EQUAL;
+ }
+
+ static int icu_cmpkey (const void *a, const void *b){
+ QCAST();
+ return strcmp((char *) da->icu_key, (char *) db->icu_key);
+ }
+
+ static int win_cmp_null(const void *a, const void *b) {
+ QCAST();
+ //CSTR_LESS_THAN 1
+ //CSTR_EQUAL 2
+ //CSTR_GREATER_THAN 3
+ int t = CompareStringW(da->win_langid, 0, da->win_data, -1, db->win_data, -1);
+ if (t == 0){
+ fprintf(stderr, "CompareStringW error, error number %x\n", GetLastError());
+ exit(-1);
+ } else{
+ return t - CSTR_EQUAL;
+ }
+ }
+
+ static int win_cmp_len(const void *a, const void *b) {
+ QCAST();
+ int t = CompareStringW(da->win_langid, 0, da->win_data, da->win_data_len, db->win_data, db->win_data_len);
+ if (t == 0){
+ fprintf(stderr, "CompareStringW error, error number %x\n", GetLastError());
+ exit(-1);
+ } else{
+ return t - CSTR_EQUAL;
+ }
+ }
+
+#define QFUNC(name, func, data) \
+ static int name (const void *a, const void *b){ \
+ QCAST(); \
+ return func(da->data, db->data); \
+ }
+
+ QFUNC(posix_strcoll_null, strcoll, posix_data)
+ QFUNC(posix_cmpkey, strcmp, posix_key)
+ QFUNC(win_cmpkey, strcmp, win_key)
+ QFUNC(win_wcscmp, wcscmp, win_data)
+ QFUNC(icu_strcmp, u_strcmp, icu_data)
+ QFUNC(icu_cmpcpo, u_strcmpCodePointOrder, icu_data)
+
+private:
+ static int32_t exec_count; // potential muilt-thread problem
+
+ typedef int (* Func)(const void *, const void *);
+
+ Func fn;
+ void * base; //Start of target array.
+ int32_t num; //Array size in elements.
+ int32_t width; //Element size in bytes.
+
+ void * backup; //copy source of base
+public:
+ CmdQsort(UErrorCode & status,void *theBase, int32_t num, int32_t width, Func fn, int32_t,int32_t)
+ :backup(theBase),num(num),width(width),fn(fn){
+ base = malloc(num * width);
+ time_empty(100, &status); // warm memory/cache
+ }
+
+ ~CmdQsort(){
+ free(base);
+ }
+
+ void empty_call(){
+ exec_count = 0;
+ memcpy(base, backup, num * width);
+ }
+
+ double time_empty(int32_t n, UErrorCode* status) {
+ UTimer start, stop;
+ utimer_getTime(&start);
+ while (n-- > 0) {
+ empty_call();
+ }
+ utimer_getTime(&stop);
+ return utimer_getDeltaSeconds(&start,&stop); // ms
+ }
+
+ virtual void call(UErrorCode* status){
+ exec_count = 0;
+ memcpy(base, backup, num * width);
+ qsort(base, num, width, fn);
+ }
+ virtual double time(int32_t n, UErrorCode* status) {
+ double t1 = time_empty(n,status);
+ double t2 = UPerfFunction::time(n, status);
+ return t2-t1;// < 0 ? t2 : t2-t1;
+ }
+
+ virtual long getOperationsPerIteration(){ return exec_count?exec_count:1;}
+};
+int32_t CmdQsort::exec_count;
+
+
+class CmdBinSearch : public UPerfFunction{
+public:
+ typedef int (CmdBinSearch::* Func)(int, int);
+
+ UCollator * col;
+ DWORD win_langid;
+ int32_t count;
+ DataIndex * rnd;
+ DataIndex * ord;
+ Func fn;
+ int32_t exec_count;
+
+ CmdBinSearch(UErrorCode, UCollator * col,DWORD win_langid,int32_t count,DataIndex * rnd,DataIndex * ord,Func fn)
+ :col(col),win_langid(win_langid), count(count), rnd(rnd), ord(ord), fn(fn),exec_count(0){}
+
+
+ virtual void call(UErrorCode* status){
+ exec_count = 0;
+ for(int32_t i = 0; i< count; i++){ // search all data
+ binary_search(i);
+ }
+ }
+ virtual long getOperationsPerIteration(){ return exec_count?exec_count:1;}
+
+ void binary_search(int32_t random) {
+ int low = 0;
+ int high = count - 1;
+ int guess;
+ int last_guess = -1;
+ int r;
+ while (TRUE) {
+ guess = (high + low)/2;
+ if (last_guess == guess) break; // nothing to search
+
+ r = (this->*fn)(random, guess);
+ exec_count++;
+
+ if (r == 0)
+ return; // found, search end.
+ if (r < 0) {
+ high = guess;
+ } else {
+ low = guess;
+ }
+ last_guess = guess;
+ }
+ }
+
+ int icu_strcoll_null(int32_t i, int32_t j){
+ return ucol_strcoll(col, rnd[i].icu_data, -1, ord[j].icu_data,-1);
+ }
+
+ int icu_strcoll_len(int32_t i, int32_t j){
+ return ucol_strcoll(col, rnd[i].icu_data, rnd[i].icu_data_len, ord[j].icu_data, ord[j].icu_data_len);
+ }
+
+ int icu_cmpkey(int32_t i, int32_t j) {
+ return strcmp( (char *) rnd[i].icu_key, (char *) ord[j].icu_key );
+ }
+
+ int win_cmp_null(int32_t i, int32_t j) {
+ int t = CompareStringW(win_langid, 0, rnd[i].win_data, -1, ord[j].win_data, -1);
+ if (t == 0){
+ fprintf(stderr, "CompareStringW error, error number %x\n", GetLastError());
+ exit(-1);
+ } else{
+ return t - CSTR_EQUAL;
+ }
+ }
+
+ int win_cmp_len(int32_t i, int32_t j) {
+ int t = CompareStringW(win_langid, 0, rnd[i].win_data, rnd[i].win_data_len, ord[j].win_data, ord[j].win_data_len);
+ if (t == 0){
+ fprintf(stderr, "CompareStringW error, error number %x\n", GetLastError());
+ exit(-1);
+ } else{
+ return t - CSTR_EQUAL;
+ }
+ }
+
+#define BFUNC(name, func, data) \
+ int name(int32_t i, int32_t j) { \
+ return func(rnd[i].data, ord[j].data); \
+ }
+
+ BFUNC(posix_strcoll_null, strcoll, posix_data)
+ BFUNC(posix_cmpkey, strcmp, posix_key)
+ BFUNC(win_cmpkey, strcmp, win_key)
+ BFUNC(win_wcscmp, wcscmp, win_data)
+ BFUNC(icu_strcmp, u_strcmp, icu_data)
+ BFUNC(icu_cmpcpo, u_strcmpCodePointOrder, icu_data)
+};
+
+class CollPerfTest : public UPerfTest {
+public:
+ UCollator * col;
+ DWORD win_langid;
+
+ UChar * icu_data_all;
+ int32_t icu_data_all_len;
+
+ int32_t count;
+ CA_uchar * icu_data;
+ CA_uint8 * icu_key;
+ CA_char * posix_data;
+ CA_char * posix_key;
+ CA_win_wchar * win_data;
+ CA_char * win_key;
+
+ DataIndex * rnd_index; // random by icu key
+ DataIndex * ord_win_data;
+ DataIndex * ord_win_key;
+ DataIndex * ord_posix_data;
+ DataIndex * ord_posix_key;
+ DataIndex * ord_icu_data;
+ DataIndex * ord_icu_key;
+ DataIndex * ord_win_wcscmp;
+ DataIndex * ord_icu_strcmp;
+ DataIndex * ord_icu_cmpcpo;
+
+ virtual ~CollPerfTest(){
+ ucol_close(col);
+ delete [] icu_data_all;
+ delete icu_data;
+ delete icu_key;
+ delete posix_data;
+ delete posix_key;
+ delete win_data;
+ delete win_key;
+ delete[] rnd_index;
+ delete[] ord_win_data;
+ delete[] ord_win_key;
+ delete[] ord_posix_data;
+ delete[] ord_posix_key;
+ delete[] ord_icu_data;
+ delete[] ord_icu_key;
+ delete[] ord_win_wcscmp;
+ delete[] ord_icu_strcmp;
+ delete[] ord_icu_cmpcpo;
+ }
+
+ CollPerfTest(int32_t argc, const char* argv[], UErrorCode& status):UPerfTest(argc, argv, status){
+ col = NULL;
+ icu_data_all = NULL;
+ icu_data = NULL;
+ icu_key = NULL;
+ posix_data = NULL;
+ posix_key = NULL;
+ win_data =NULL;
+ win_key = NULL;
+
+ rnd_index = NULL;
+ ord_win_data= NULL;
+ ord_win_key= NULL;
+ ord_posix_data= NULL;
+ ord_posix_key= NULL;
+ ord_icu_data= NULL;
+ ord_icu_key= NULL;
+ ord_win_wcscmp = NULL;
+ ord_icu_strcmp = NULL;
+ ord_icu_cmpcpo = NULL;
+
+ if (U_FAILURE(status)){
+ return;
+ }
+
+ // Parse additional arguments
+
+ UOption options[] = {
+ UOPTION_DEF("langid", 'i', UOPT_REQUIRES_ARG), // Windows Language ID number.
+ UOPTION_DEF("rulefile", 'r', UOPT_REQUIRES_ARG), // --rulefile <filename>
+ // Collation related arguments. All are optional.
+ // To simplify parsing, two choice arguments are disigned as NO_ARG.
+ // The default value is UPPER word in the comment
+ UOPTION_DEF("c_french", 'f', UOPT_NO_ARG), // --french <on | OFF>
+ UOPTION_DEF("c_alternate", 'a', UOPT_NO_ARG), // --alternate <NON_IGNORE | shifted>
+ UOPTION_DEF("c_casefirst", 'c', UOPT_REQUIRES_ARG), // --casefirst <lower | upper | OFF>
+ UOPTION_DEF("c_caselevel", 'l', UOPT_NO_ARG), // --caselevel <on | OFF>
+ UOPTION_DEF("c_normal", 'n', UOPT_NO_ARG), // --normal <on | OFF>
+ UOPTION_DEF("c_strength", 's', UOPT_REQUIRES_ARG), // --strength <1-5>
+ };
+ int32_t opt_len = (sizeof(options)/sizeof(options[0]));
+ enum {i, r,f,a,c,l,n,s}; // The buffer between the option items' order and their references
+
+ _remainingArgc = u_parseArgs(_remainingArgc, (char**)argv, opt_len, options);
+
+ if (_remainingArgc < 0){
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+
+ if (locale == NULL){
+ locale = "en_US"; // set default locale
+ }
+
+ //#ifdef U_WINDOWS
+ if (options[i].doesOccur) {
+ char *endp;
+ int tmp = strtol(options[i].value, &endp, 0);
+ if (endp == options[i].value) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ win_langid = MAKELCID(tmp, SORT_DEFAULT);
+ } else {
+ win_langid = uloc_getLCID(locale);
+ }
+ //#endif
+
+ // Set up an ICU collator
+ if (options[r].doesOccur) {
+ // TODO: implement it
+ } else {
+ col = ucol_open(locale, &status);
+ if (U_FAILURE(status)) {
+ return;
+ }
+ }
+
+ if (options[f].doesOccur) {
+ ucol_setAttribute(col, UCOL_FRENCH_COLLATION, UCOL_ON, &status);
+ } else {
+ ucol_setAttribute(col, UCOL_FRENCH_COLLATION, UCOL_OFF, &status);
+ }
+
+ if (options[a].doesOccur) {
+ ucol_setAttribute(col, UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED, &status);
+ }
+
+ if (options[c].doesOccur) { // strcmp() has i18n encoding problem
+ if (strcmp("lower", options[c].value) == 0){
+ ucol_setAttribute(col, UCOL_CASE_FIRST, UCOL_LOWER_FIRST, &status);
+ } else if (strcmp("upper", options[c].value) == 0) {
+ ucol_setAttribute(col, UCOL_CASE_FIRST, UCOL_UPPER_FIRST, &status);
+ } else {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ }
+
+ if (options[l].doesOccur){
+ ucol_setAttribute(col, UCOL_CASE_LEVEL, UCOL_ON, &status);
+ }
+
+ if (options[n].doesOccur){
+ ucol_setAttribute(col, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
+ }
+
+ if (options[s].doesOccur) {
+ char *endp;
+ int tmp = strtol(options[l].value, &endp, 0);
+ if (endp == options[l].value) {
+ status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ switch (tmp) {
+ case 1: ucol_setAttribute(col, UCOL_STRENGTH, UCOL_PRIMARY, &status); break;
+ case 2: ucol_setAttribute(col, UCOL_STRENGTH, UCOL_SECONDARY, &status); break;
+ case 3: ucol_setAttribute(col, UCOL_STRENGTH, UCOL_TERTIARY, &status); break;
+ case 4: ucol_setAttribute(col, UCOL_STRENGTH, UCOL_QUATERNARY, &status); break;
+ case 5: ucol_setAttribute(col, UCOL_STRENGTH, UCOL_IDENTICAL, &status); break;
+ default: status = U_ILLEGAL_ARGUMENT_ERROR; return;
+ }
+ }
+ prepareData(status);
+ }
+
+ //to avoid use the annoying 'id' in TESTCASE(id,test) macro or the like
+#define TEST(testname, classname, arg1, arg2, arg3, arg4, arg5, arg6) \
+ if(temp == index) {\
+ name = #testname;\
+ if (exec) {\
+ UErrorCode status = U_ZERO_ERROR;\
+ UPerfFunction * t = new classname(status,arg1, arg2, arg3, arg4, arg5, arg6);\
+ if (U_FAILURE(status)) {\
+ delete t;\
+ return NULL;\
+ } else {\
+ return t;\
+ }\
+ } else {\
+ return NULL;\
+ }\
+ }\
+ temp++\
+
+
+ virtual UPerfFunction* runIndexedTest( /*[in]*/int32_t index, /*[in]*/UBool exec, /*[out]*/const char* &name, /*[in]*/ char* par = NULL ){
+ int temp = 0;
+
+#define TEST_KEYGEN(testname, func)\
+ TEST(testname, CmdKeyGen, col, win_langid, count, rnd_index, CmdKeyGen::func, 0)
+ TEST_KEYGEN(TestIcu_KeyGen_null, icu_key_null);
+ TEST_KEYGEN(TestIcu_KeyGen_len, icu_key_len);
+ TEST_KEYGEN(TestPosix_KeyGen_null, posix_key_null);
+ TEST_KEYGEN(TestWin_KeyGen_null, win_key_null);
+ TEST_KEYGEN(TestWin_KeyGen_len, win_key_len);
+
+#define TEST_ITER(testname, func)\
+ TEST(testname, CmdIter, col, count, icu_data, CmdIter::func,0,0)
+ TEST_ITER(TestIcu_ForwardIter_null, icu_forward_null);
+ TEST_ITER(TestIcu_ForwardIter_len, icu_forward_len);
+ TEST_ITER(TestIcu_BackwardIter_null, icu_backward_null);
+ TEST_ITER(TestIcu_BackwardIter_len, icu_backward_len);
+
+#define TEST_ITER_ALL(testname, func)\
+ TEST(testname, CmdIterAll, col, icu_data_all_len, icu_data_all, CmdIterAll::func,0,0)
+ TEST_ITER_ALL(TestIcu_ForwardIter_all_null, forward_null);
+ TEST_ITER_ALL(TestIcu_ForwardIter_all_len, forward_len);
+ TEST_ITER_ALL(TestIcu_BackwardIter_all_null, backward_null);
+ TEST_ITER_ALL(TestIcu_BackwardIter_all_len, backward_len);
+
+#define TEST_QSORT(testname, func)\
+ TEST(testname, CmdQsort, rnd_index, count, sizeof(DataIndex), CmdQsort::func,0,0)
+ TEST_QSORT(TestIcu_qsort_strcoll_null, icu_strcoll_null);
+ TEST_QSORT(TestIcu_qsort_strcoll_len, icu_strcoll_len);
+ TEST_QSORT(TestIcu_qsort_usekey, icu_cmpkey);
+ TEST_QSORT(TestPosix_qsort_strcoll_null, posix_strcoll_null);
+ TEST_QSORT(TestPosix_qsort_usekey, posix_cmpkey);
+ TEST_QSORT(TestWin_qsort_CompareStringW_null, win_cmp_null);
+ TEST_QSORT(TestWin_qsort_CompareStringW_len, win_cmp_len);
+ TEST_QSORT(TestWin_qsort_usekey, win_cmpkey);
+
+#define TEST_BIN(testname, func)\
+ TEST(testname, CmdBinSearch, col, win_langid, count, rnd_index, ord_icu_key,CmdBinSearch::func)
+ TEST_BIN(TestIcu_BinarySearch_strcoll_null, icu_strcoll_null);
+ TEST_BIN(TestIcu_BinarySearch_strcoll_len, icu_strcoll_len);
+ TEST_BIN(TestIcu_BinarySearch_usekey, icu_cmpkey);
+ TEST_BIN(TestIcu_BinarySearch_strcmp, icu_strcmp);
+ TEST_BIN(TestIcu_BinarySearch_cmpCPO, icu_cmpcpo);
+ TEST_BIN(TestPosix_BinarySearch_strcoll_null, posix_strcoll_null);
+ TEST_BIN(TestPosix_BinarySearch_usekey, posix_cmpkey);
+ TEST_BIN(TestWin_BinarySearch_CompareStringW_null, win_cmp_null);
+ TEST_BIN(TestWin_BinarySearch_CompareStringW_len, win_cmp_len);
+ TEST_BIN(TestWin_BinarySearch_usekey, win_cmpkey);
+ TEST_BIN(TestWin_BinarySearch_wcscmp, win_wcscmp);
+
+ name="";
+ return NULL;
+ }
+
+
+
+ void prepareData(UErrorCode& status){
+ if(U_FAILURE(status)) return;
+ if (icu_data) return; // prepared
+
+ icu_data = new CA_uchar();
+
+ // Following code is borrowed from UPerfTest::getLines();
+ const UChar* line=NULL;
+ int32_t len =0;
+ for (;;) {
+ line = ucbuf_readline(ucharBuf,&len,&status);
+ if(line == NULL || U_FAILURE(status)){break;}
+
+ // Refer to the source code of ucbuf_readline()
+ // 1. 'len' includs the line terminal symbols
+ // 2. The length of the line terminal symbols is only one character
+ // 3. The Windows CR LF line terminal symbols will be converted to CR
+
+ if (len == 1) {
+ continue; //skip empty line
+ } else {
+ icu_data->append_one(len);
+ memcpy(icu_data->last(), line, len * sizeof(UChar));
+ icu_data->last()[len -1] = NULL;
+ }
+ }
+ if(U_FAILURE(status)) return;
+
+ // UTF-16 -> UTF-8 conversion.
+ UConverter *conv = ucnv_open("utf-8", &status); // just UTF-8 for now.
+ if (U_FAILURE(status)) return;
+
+ count = icu_data->count;
+
+ icu_data_all_len = icu_data->index[count]; // includes all NULLs
+ icu_data_all_len -= count; // excludes all NULLs
+ icu_data_all_len += 1; // the terminal NULL
+ icu_data_all = new UChar[icu_data_all_len];
+ icu_data_all[icu_data_all_len - 1] = 0; //the terminal NULL
+
+ icu_key = new CA_uint8;
+ win_data = new CA_win_wchar;
+ win_key = new CA_char;
+ posix_data = new CA_char;
+ posix_key = new CA_char;
+ rnd_index = new DataIndex[count];
+ DataIndex::win_langid = win_langid;
+ DataIndex::col = col;
+
+
+ UChar * p = icu_data_all;
+ int32_t s;
+ int32_t t;
+ for (int i=0; i < count; i++) {
+ // ICU all data
+ s = sizeof(UChar) * icu_data->lengthOf(i);
+ memcpy(p, icu_data->dataOf(i), s);
+ p += icu_data->lengthOf(i);
+
+ // ICU data
+
+ // ICU key
+ s = ucol_getSortKey(col, icu_data->dataOf(i), -1,NULL, 0);
+ icu_key->append_one(s);
+ t = ucol_getSortKey(col, icu_data->dataOf(i), -1,icu_key->last(), s);
+ if (t != s) {status = U_INVALID_FORMAT_ERROR;return;}
+
+ // POSIX data
+ s = ucnv_fromUChars(conv,NULL, 0, icu_data->dataOf(i), icu_data->lengthOf(i), &status);
+ if (status == U_BUFFER_OVERFLOW_ERROR || status == U_ZERO_ERROR){
+ status = U_ZERO_ERROR;
+ } else {
+ return;
+ }
+ posix_data->append_one(s + 1); // plus terminal NULL
+ t = ucnv_fromUChars(conv,posix_data->last(), s, icu_data->dataOf(i), icu_data->lengthOf(i), &status);
+ if (U_FAILURE(status)) return;
+ if ( t != s){status = U_INVALID_FORMAT_ERROR;return;}
+ posix_data->last()[s] = 0;
+
+ // POSIX key
+ s = strxfrm(NULL, posix_data->dataOf(i), 0);
+ if (s == INT_MAX){status = U_INVALID_FORMAT_ERROR;return;}
+ posix_key->append_one(s);
+ t = strxfrm(posix_key->last(), posix_data->dataOf(i), s);
+ if (t != s) {status = U_INVALID_FORMAT_ERROR;return;}
+
+ // Win data
+ s = icu_data->lengthOf(i) + 1; // plus terminal NULL
+ win_data->append_one(s);
+ memcpy(win_data->last(), icu_data->dataOf(i), sizeof(WCHAR) * s);
+
+ // Win key
+ s = LCMapStringW(win_langid, LCMAP_SORTKEY, win_data->dataOf(i), win_data->lengthOf(i), NULL,0);
+ if (s == 0) {status = U_INVALID_FORMAT_ERROR;return;}
+ win_key->append_one(s);
+ t = LCMapStringW(win_langid, LCMAP_SORTKEY, win_data->dataOf(i), win_data->lengthOf(i), (WCHAR *)(win_key->last()),s);
+ if (t != s) {status = U_INVALID_FORMAT_ERROR;return;}
+
+ };
+
+ // append_one() will make points shifting, should not merge following code into previous iteration
+ for (int i=0; i < count; i++) {
+ rnd_index[i].icu_key = icu_key->dataOf(i);
+ rnd_index[i].icu_data = icu_data->dataOf(i);
+ rnd_index[i].icu_data_len = icu_data->lengthOf(i);
+ rnd_index[i].posix_key = posix_key->last();
+ rnd_index[i].posix_data = posix_data->dataOf(i);
+ rnd_index[i].posix_data_len = posix_data->lengthOf(i);
+ rnd_index[i].win_key = win_key->dataOf(i);
+ rnd_index[i].win_data = win_data->dataOf(i);
+ rnd_index[i].win_data_len = win_data->lengthOf(i);
+ };
+
+ ucnv_close(conv);
+ qsort(rnd_index, count, sizeof(DataIndex), CmdQsort::q_random);
+
+#define SORT(data, func) \
+ data = new DataIndex[count];\
+ memcpy(data, rnd_index, count * sizeof(DataIndex));\
+ qsort(data, count, sizeof(DataIndex), CmdQsort::func)
+
+ SORT(ord_icu_data, icu_strcoll_len);
+ SORT(ord_icu_key, icu_cmpkey);
+ SORT(ord_posix_data, posix_strcoll_null);
+ SORT(ord_posix_key, posix_cmpkey);
+ SORT(ord_win_data, win_cmp_len);
+ SORT(ord_win_key, win_cmpkey);
+ SORT(ord_win_wcscmp, win_wcscmp);
+ SORT(ord_icu_strcmp, icu_strcmp);
+ SORT(ord_icu_cmpcpo, icu_cmpcpo);
+ }
+};
+
+
+int main(int argc, const char *argv[])
+{
+
+ UErrorCode status = U_ZERO_ERROR;
+ CollPerfTest test(argc, argv, status);
+
+ if (U_FAILURE(status)){
+ printf("The error is %s\n", u_errorName(status));
+ //TODO: print usage here
+ return status;
+ }
+
+ if (test.run() == FALSE){
+ fprintf(stderr, "FAILED: Tests could not be run please check the "
+ "arguments.\n");
+ return -1;
+ }
+ return 0;
+}
+
diff --git a/Build/source/libs/icu-xetex/test/perf/collperf/collperf.vcproj b/Build/source/libs/icu-xetex/test/perf/collperf/collperf.vcproj
new file mode 100644
index 00000000000..79628389a82
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/collperf/collperf.vcproj
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="collperf"
+ ProjectGUID="{01807B4A-E3B5-4B97-A7F3-207746DCD71E}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\Debug/collperf.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuucd.lib icuind.lib icutud.lib winmm.lib icutestd.lib "
+ OutputFile=".\Debug/collperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\..\lib\"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/collperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/collperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="2"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ PrecompiledHeaderFile=".\Release/collperf.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuuc.lib icuin.lib ctestfw.lib icutu.lib winmm.lib"
+ OutputFile=".\Release/collperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\lib\"
+ ProgramDatabaseFile=".\Release/collperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/collperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="collperf.cpp">
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu-xetex/test/perf/normperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/normperf/.cvsignore
new file mode 100644
index 00000000000..7c50ed227ed
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/normperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+normperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/normperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/normperf/Makefile.in
index 90f555620dc..0fcc6760e1c 100644
--- a/Build/source/libs/icu-xetex/test/perf/normperf/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/perf/normperf/Makefile.in
@@ -1,20 +1,17 @@
-## Makefile.in for ICU - test/collperf
-## Copyright (c) 2001, International Business Machines Corporation and
+## Makefile.in for ICU - test/perf/normperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-top_builddir = ../..
+top_builddir = ../../..
include $(top_builddir)/icudefs.mk
-## Platform-specific setup
-include @platform_make_fragment@
-
## Build directory information
-subdir = test/normperf
+subdir = test/perf/normperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
@@ -22,16 +19,8 @@ CLEANFILES = *~ $(DEPS)
## Target information
TARGET = normperf
-DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n
-CFLAGS = @CFLAGS@
-CXXFLAGS = @CXXFLAGS@
-ENABLE_RPATH = @ENABLE_RPATH@
-ifeq ($(ENABLE_RPATH),YES)
-RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
-endif
-LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
-LIBS = $(LIBICUI18N) $(LIBICUUC) @LIBS@ @LIB_M@
+CPPFLAGS += -I$(top_builddir)/common -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
diff --git a/Build/source/libs/icu-xetex/test/perf/normperf/normperf.h b/Build/source/libs/icu-xetex/test/perf/normperf/normperf.h
index 0bc4e2b123c..6a43a7727be 100644
--- a/Build/source/libs/icu-xetex/test/perf/normperf/normperf.h
+++ b/Build/source/libs/icu-xetex/test/perf/normperf/normperf.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
**********************************************************************
@@ -102,7 +102,7 @@ private:
ULine* lines;
int32_t numLines;
UChar dest[DEST_BUFFER_CAPACITY];
- UChar* pDest;
+ UChar* pDest;
int32_t destLen;
NormFn fn;
int32_t retVal;
@@ -149,7 +149,7 @@ public:
numLines = srcNumLines;
uselen = _uselen;
destLen = DEST_BUFFER_CAPACITY;
- pDest = dest;
+ pDest = dest;
src = NULL;
srcLen = 0;
line_mode = TRUE;
@@ -160,16 +160,16 @@ public:
numLines = 0;
uselen = _uselen;
destLen = sourceLen*3;
- pDest = (UChar*) malloc(destLen * U_SIZEOF_UCHAR);
+ pDest = (UChar*) malloc(destLen * U_SIZEOF_UCHAR);
src = source;
srcLen = sourceLen;
line_mode = FALSE;
}
- ~NormPerfFunction(){
- if(dest != pDest){
- free(pDest);
- }
- }
+ ~NormPerfFunction(){
+ if(dest != pDest){
+ free(pDest);
+ }
+ }
};
@@ -349,4 +349,5 @@ int32_t WinNormNFKC(const UChar* src, int32_t srcLen, UChar* dest, int32_t dstLe
#endif
-#endif // NORMPERF_H \ No newline at end of file
+#endif // NORMPERF_H
+
diff --git a/Build/source/libs/icu-xetex/test/perf/perf.sln b/Build/source/libs/icu-xetex/test/perf/perf.sln
index d046cde52ad..d5b1b2ed675 100644
--- a/Build/source/libs/icu-xetex/test/perf/perf.sln
+++ b/Build/source/libs/icu-xetex/test/perf/perf.sln
@@ -19,6 +19,18 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ubrkperf", "ubrkperf\ubrkpe
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "utfperf", "utfperf\utfperf.vcproj", "{E7728E98-0469-43F4-AF37-4529A3D52C6B}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "collperf", "collperf\collperf.vcproj", "{01807B4A-E3B5-4B97-A7F3-207746DCD71E}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "usetperf", "usetperf\usetperf.vcproj", "{EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
@@ -45,6 +57,18 @@ Global
{7E280294-49BD-43D1-9903-CF29648D88CA}.Debug.Build.0 = Debug|Win32
{7E280294-49BD-43D1-9903-CF29648D88CA}.Release.ActiveCfg = Release|Win32
{7E280294-49BD-43D1-9903-CF29648D88CA}.Release.Build.0 = Release|Win32
+ {E7728E98-0469-43F4-AF37-4529A3D52C6B}.Debug.ActiveCfg = Debug|Win32
+ {E7728E98-0469-43F4-AF37-4529A3D52C6B}.Debug.Build.0 = Debug|Win32
+ {E7728E98-0469-43F4-AF37-4529A3D52C6B}.Release.ActiveCfg = Release|Win32
+ {E7728E98-0469-43F4-AF37-4529A3D52C6B}.Release.Build.0 = Release|Win32
+ {01807B4A-E3B5-4B97-A7F3-207746DCD71E}.Debug.ActiveCfg = Debug|Win32
+ {01807B4A-E3B5-4B97-A7F3-207746DCD71E}.Debug.Build.0 = Debug|Win32
+ {01807B4A-E3B5-4B97-A7F3-207746DCD71E}.Release.ActiveCfg = Release|Win32
+ {01807B4A-E3B5-4B97-A7F3-207746DCD71E}.Release.Build.0 = Release|Win32
+ {EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}.Debug.ActiveCfg = Debug|Win32
+ {EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}.Debug.Build.0 = Debug|Win32
+ {EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}.Release.ActiveCfg = Release|Win32
+ {EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
diff --git a/Build/source/libs/icu-xetex/test/perf/ubrkperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/ubrkperf/.cvsignore
new file mode 100644
index 00000000000..67302129124
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/ubrkperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+ubrkperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/ubrkperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/ubrkperf/Makefile.in
index 908e9fbe03e..33e6752fff6 100644
--- a/Build/source/libs/icu-xetex/test/perf/ubrkperf/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/perf/ubrkperf/Makefile.in
@@ -1,20 +1,17 @@
-## Makefile.in for ICU - test/ubrkperf
-## Copyright (c) 2001, International Business Machines Corporation and
+## Makefile.in for ICU - test/perf/ubrkperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-top_builddir = ../..
+top_builddir = ../../..
include $(top_builddir)/icudefs.mk
-## Platform-specific setup
-include @platform_make_fragment@
-
## Build directory information
-subdir = test/ubrkperf
+subdir = test/perf/ubrkperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
@@ -22,16 +19,8 @@ CLEANFILES = *~ $(DEPS)
## Target information
TARGET = ubrkperf
-DEFS = @DEFS@
-CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n
-CFLAGS = @CFLAGS@
-CXXFLAGS = @CXXFLAGS@
-ENABLE_RPATH = @ENABLE_RPATH@
-ifeq ($(ENABLE_RPATH),YES)
-RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
-endif
-LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
-LIBS = $(LIBICUI18N) $(LIBICUUC) @LIBS@ @LIB_M@
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = ubrkperf.o
diff --git a/Build/source/libs/icu-xetex/test/perf/usetperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/usetperf/.cvsignore
new file mode 100644
index 00000000000..3b1d3dd9798
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+usetperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/unalignedtest/Makefile.in b/Build/source/libs/icu-xetex/test/perf/usetperf/Makefile.in
index d4fa022ee66..4b8cba5853c 100644
--- a/Build/source/libs/icu-xetex/test/unalignedtest/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/Makefile.in
@@ -1,28 +1,28 @@
-## Makefile.in for ICU - test/unalignedtest
-## Copyright (c) 2001, International Business Machines Corporation and
+## Makefile.in for ICU - test/perf/usetperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
-top_builddir = ../..
+top_builddir = ../../..
include $(top_builddir)/icudefs.mk
## Build directory information
-subdir = test/unalignedtest
+subdir = test/perf/usetperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
## Target information
-TARGET = unalignedtest
+TARGET = usetperf
-DEFS += -I$(top_builddir)/common -I$(top_srcdir)/common
-LIBS = $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
-OBJECTS = unaligned.o
+OBJECTS = usetperf.o bitset.o
DEPS = $(OBJECTS:.o=.d)
@@ -54,20 +54,14 @@ clean-local:
distclean-local: clean-local
$(RMV) Makefile
-check-local: all-local check-cintltst check-intltest
-
-check-cintltst:
- - $(INVOKE) ./$(TARGET) $(top_srcdir)/test/cintltst/cintltst -a
-
-check-intltest:
- - $(INVOKE) ./$(TARGET) $(top_srcdir)/test/intltest/intltest -a
+check-local: all-local
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) -o $@ $^
+ $(LINK.cc) -o $@ $^ $(LIBS)
invoke:
ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
@@ -81,3 +75,4 @@ ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
endif
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/test/perf/usetperf/UsetPerf.pl b/Build/source/libs/icu-xetex/test/perf/usetperf/UsetPerf.pl
new file mode 100755
index 00000000000..8c493806e20
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/UsetPerf.pl
@@ -0,0 +1,45 @@
+#!/usr/bin/perl -w
+# ********************************************************************
+# * COPYRIGHT:
+# * Copyright (c) 2005, International Business Machines Corporation and
+# * others. All Rights Reserved.
+# ********************************************************************
+
+use strict;
+
+use lib '../perldriver';
+
+use PerfFramework;
+
+
+my $options = {
+ "title"=>"Uset performance: ICU",
+ "headers"=>"ICU",
+ "operationIs"=>"unicode string",
+ "passes"=>"1",
+ "time"=>"2",
+ #"outputType"=>"HTML",
+ "dataDir"=>"../data",
+ "outputDir"=>"../results"
+ };
+
+# programs
+# tests will be done for all the programs. Results will be stored and connected
+my $p = "debug/usetperf.exe ";
+
+my $tests = {
+ "titlecase_letter/add", ["$p titlecase_letter_add"],
+ "titlecase_letter/contains", ["$p titlecase_letter_contains"],
+ "titlecase_letter/iterator", ["$p titlecase_letter_iterator"],
+ "unassigned/add", ["$p unassigned_add"],
+ "unassigned/contains", ["$p unassigned_contains"],
+ "unassigned/iterator", ["$p unassigned_iterator"],
+ "pattern1", ["$p pattern1"],
+ "pattern2", ["$p pattern2"],
+ "pattern3", ["$p pattern3"],
+ };
+
+my $dataFiles = {
+ };
+
+runTests($options, $tests, $dataFiles);
diff --git a/Build/source/libs/icu-xetex/test/usetperf/bitset.cpp b/Build/source/libs/icu-xetex/test/perf/usetperf/bitset.cpp
index d1356c0edba..ea5f11b8b2f 100644
--- a/Build/source/libs/icu-xetex/test/usetperf/bitset.cpp
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/bitset.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2004, International Business Machines
+* Copyright (c) 2002-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* 2002-09-20 aliu Created.
diff --git a/Build/source/libs/icu-xetex/test/usetperf/bitset.h b/Build/source/libs/icu-xetex/test/perf/usetperf/bitset.h
index 8b7122dfdec..3148b1d7070 100644
--- a/Build/source/libs/icu-xetex/test/usetperf/bitset.h
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/bitset.h
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (c) 2002-2004, International Business Machines
+* Copyright (c) 2002-2005, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* 2002-09-20 aliu Created.
diff --git a/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.cpp b/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.cpp
new file mode 100644
index 00000000000..7d5853e9b0c
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.cpp
@@ -0,0 +1,143 @@
+/*
+**********************************************************************
+* Copyright (c) 2002-2005, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+* 2005Nov22 Raymond Yang
+*
+* migrate old test created by aliu to perf test framework.
+*/
+
+#include <stdio.h>
+
+#include "unicode/utypes.h"
+#include "unicode/uniset.h"
+#include "unicode/uchar.h"
+#include "unicode/usetiter.h"
+#include "bitset.h"
+#include "unicode/uperf.h"
+
+static const char* PAT[] = {
+ "['A-Za-z\\u00C0-\\u00C5\\u00C7-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DD\\u00E0-\\u00E5\\u00E7-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FD\\u00FF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0-\\u01A1\\u01AF-\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E1\\u01E6-\\u01ED\\u01F0\\u01F4-\\u01F5\\u01F8-\\u01FB\\u0200-\\u021B\\u021E-\\u021F\\u0226-\\u0233\\u1E00-\\u1E99\\u1EA0-\\u1EF9\\u212A-\\u212B]",
+
+ "['.0-9A-Za-z~\\u00C0-\\u00C5\\u00C7-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DD\\u00E0-\\u00E5\\u00E7-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FD\\u00FF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0-\\u01A1\\u01AF-\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01ED\\u01F0\\u01F4-\\u01F5\\u01F8-\\u021B\\u021E-\\u021F\\u0226-\\u0233\\u0301\\u0303-\\u0304\\u0306-\\u0307\\u0310\\u0314-\\u0315\\u0323\\u0325\\u0331\\u0341\\u0344\\u0385-\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AC-\\u03B0\\u03CC-\\u03CE\\u03D3\\u0403\\u040C\\u040E\\u0419\\u0439\\u0453\\u045C\\u045E\\u04C1-\\u04C2\\u04D0-\\u04D1\\u04D6-\\u04D7\\u04E2-\\u04E3\\u04EE-\\u04EF\\u1E00-\\u1E99\\u1EA0-\\u1EF9\\u1F01\\u1F03-\\u1F05\\u1F07\\u1F09\\u1F0B-\\u1F0D\\u1F0F\\u1F11\\u1F13-\\u1F15\\u1F19\\u1F1B-\\u1F1D\\u1F21\\u1F23-\\u1F25\\u1F27\\u1F29\\u1F2B-\\u1F2D\\u1F2F\\u1F31\\u1F33-\\u1F35\\u1F37\\u1F39\\u1F3B-\\u1F3D\\u1F3F\\u1F41\\u1F43-\\u1F45\\u1F49\\u1F4B-\\u1F4D\\u1F51\\u1F53-\\u1F55\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F61\\u1F63-\\u1F65\\u1F67\\u1F69\\u1F6B-\\u1F6D\\u1F6F\\u1F71\\u1F73\\u1F75\\u1F77\\u1F79\\u1F7B\\u1F7D\\u1F81\\u1F83-\\u1F85\\u1F87\\u1F89\\u1F8B-\\u1F8D\\u1F8F\\u1F91\\u1F93-\\u1F95\\u1F97\\u1F99\\u1F9B-\\u1F9D\\u1F9F\\u1FA1\\u1FA3-\\u1FA5\\u1FA7\\u1FA9\\u1FAB-\\u1FAD\\u1FAF-\\u1FB1\\u1FB4\\u1FB8-\\u1FB9\\u1FBB\\u1FC4\\u1FC9\\u1FCB\\u1FCE\\u1FD0-\\u1FD1\\u1FD3\\u1FD8-\\u1FD9\\u1FDB\\u1FDE\\u1FE0-\\u1FE1\\u1FE3\\u1FE5\\u1FE8-\\u1FE9\\u1FEB-\\u1FEC\\u1FEE\\u1FF4\\u1FF9\\u1FFB\\u212A-\\u212B\\uE04D\\uE064]",
+
+ "[\\u0901-\\u0903\\u0905-\\u0939\\u093C-\\u094D\\u0950-\\u0954\\u0958-\\u096F]",
+};
+
+class CmdPattern : public UPerfFunction {
+private:
+ UnicodeString pat;
+ UnicodeSet set;
+public:
+ CmdPattern(const char * pattern):pat(pattern,""){
+ }
+ virtual long getOperationsPerIteration(){
+ return 1;
+ }
+ virtual void call(UErrorCode* pErrorCode){
+ set.applyPattern(pat, *pErrorCode);
+ }
+};
+
+class CmdOp : public UPerfFunction {
+private:
+ UnicodeSet us;
+ BitSet bs;
+ int32_t total;
+ void (CmdOp::*op) ();
+public:
+ CmdOp(UCharCategory prop, void (CmdOp::*op)()):op(op){
+ total = 0;
+ bs.clearAll();
+ for (UChar32 cp=0; cp<0x110000; ++cp) {
+ if (u_charType(cp) == prop) {
+ bs.set((int32_t) cp);
+ ++total;
+ }
+ }
+ }
+ virtual long getOperationsPerIteration(){
+ return total;
+ }
+
+ virtual void call(UErrorCode* pErrorCode){
+ (this->*op)();
+ }
+ void add (void){
+ us.clear();
+ for (UChar32 cp=0; cp<0x110000; ++cp) {
+ if (bs.get((int32_t) cp)) {
+ us.add(cp);
+ }
+ }
+ }
+
+ void contains(void){
+ int32_t temp = 0;
+ us.clear();
+ for (UChar32 cp=0; cp<0x110000; ++cp) {
+ if (us.contains(cp)) {
+ temp += cp;
+ }
+ }
+ }
+
+ void iterator(void){
+ int32_t temp = 0;
+ UnicodeSetIterator uit(us);
+ while (uit.next()) {
+ temp += uit.getCodepoint();
+ }
+ }
+};
+
+class UsetPerformanceTest : public UPerfTest{
+public:
+ UsetPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status) :UPerfTest(argc,argv,status){
+ }
+
+ virtual UPerfFunction* runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ){
+ switch (index) {
+ case 0: name = "titlecase_letter_add";
+ if (exec) return new CmdOp(U_TITLECASE_LETTER, CmdOp::add) ; break;
+ case 1: name = "titlecase_letter_contains";
+ if (exec) return new CmdOp(U_TITLECASE_LETTER, CmdOp::contains) ; break;
+ case 2: name = "titlecase_letter_iterator";
+ if (exec) return new CmdOp(U_TITLECASE_LETTER, CmdOp::iterator) ; break;
+ case 3: name = "unassigned_add";
+ if (exec) return new CmdOp(U_UNASSIGNED, CmdOp::add) ; break;
+ case 4: name = "unassigned_contains";
+ if (exec) return new CmdOp(U_UNASSIGNED, CmdOp::contains) ; break;
+ case 5: name = "unassigned_iterator";
+ if (exec) return new CmdOp(U_UNASSIGNED, CmdOp::iterator) ; break;
+ case 6: name = "pattern1";
+ if (exec) return new CmdPattern(PAT[0]) ; break;
+ case 7: name = "pattern2";
+ if (exec) return new CmdPattern(PAT[1]) ; break;
+ case 8: name = "pattern3";
+ if (exec) return new CmdPattern(PAT[2]) ; break;
+ default: name = ""; break;
+ }
+ return NULL;
+ }
+};
+
+
+int main(int argc, const char *argv[])
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UsetPerformanceTest test(argc, argv, status);
+
+ if (U_FAILURE(status)){
+ printf("The error is %s\n", u_errorName(status));
+ return status;
+ }
+
+ if (test.run() == FALSE){
+ fprintf(stderr, "FAILED: Tests could not be run please check the "
+ "arguments.\n");
+ return -1;
+ }
+ return 0;
+}
diff --git a/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.vcproj b/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.vcproj
new file mode 100644
index 00000000000..6d62331742d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/usetperf/usetperf.vcproj
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="usetperf"
+ ProjectGUID="{EC5DF28A-D789-4C46-A55D-0AD55B50ECE8}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ PrecompiledHeaderFile=".\Release/usetperf.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuuc.lib icutu.lib winmm.lib icutest.lib"
+ OutputFile=".\Release/usetperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\..\lib"
+ ProgramDatabaseFile=".\Release/usetperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/usetperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\Debug/usetperf.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuucd.lib icutud.lib winmm.lib icutestd.lib"
+ OutputFile=".\Debug/usetperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\..\lib"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/usetperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/usetperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="bitset.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\..\common"
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\common"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="usetperf.cpp">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories="..\..\common"
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\common"
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath=".\bitset.h">
+ </File>
+ <File
+ RelativePath=".\timer.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu-xetex/test/perf/ustrperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/ustrperf/.cvsignore
new file mode 100644
index 00000000000..4c913730998
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/ustrperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+charperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/ustrperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/ustrperf/Makefile.in
new file mode 100644
index 00000000000..6432ae793de
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/ustrperf/Makefile.in
@@ -0,0 +1,78 @@
+## Makefile.in for ICU - test/perf/ustrperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../../..
+
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = test/perf/ustrperf
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS)
+
+## Target information
+TARGET = ustrperf
+
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
+
+OBJECTS = stringperf.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET)
+
+install-local:
+
+dist-local:
+
+clean-local:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+ $(RMV) $(OBJECTS) $(TARGET)
+
+distclean-local: clean-local
+ $(RMV) Makefile
+
+check-local: all-local
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(TARGET) : $(OBJECTS)
+ $(LINK.cc) -o $@ $^ $(LIBS)
+
+invoke:
+ ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+endif
+
diff --git a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.cpp b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.cpp
index 653e1a0297b..342e060aa8c 100644
--- a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.cpp
+++ b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (C) 2002-2004 International Business Machines Corporation
+ * Copyright (C) 2002-2006 International Business Machines Corporation
* and others. All Rights Reserved.
*
********************************************************************/
@@ -9,7 +9,7 @@
*
* Modification History:
* Name Description
-* Doug Wang Second version
+* Doug Wang Second version
* Doug Wang First Version
******************************************************************************
*/
@@ -28,55 +28,55 @@ int main(int argc, const char *argv[])
{
UErrorCode status = U_ZERO_ERROR;
- bCatenatePrealloc=TRUE;
+ bCatenatePrealloc=TRUE;
StringPerformanceTest test(argc, argv, status);
- if (U_FAILURE(status)){
+ if (U_FAILURE(status)){
return status;
}
-
- int loops = LOOPS;
- if (bCatenatePrealloc) {
- int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN);
- catICU = new UnicodeString(to_alloc,'a',0);
- //catICU = new UnicodeString();
-
- catStd = new stlstring();
- catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN));
- //catStd -> reserve(110000000);
- } else {
- catICU = new UnicodeString();
- catStd = new stlstring();
- }
+
+ int loops = LOOPS;
+ if (bCatenatePrealloc) {
+ int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN);
+ catICU = new UnicodeString(to_alloc,'a',0);
+ //catICU = new UnicodeString();
+
+ catStd = new stlstring();
+ catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN));
+ //catStd -> reserve(110000000);
+ } else {
+ catICU = new UnicodeString();
+ catStd = new stlstring();
+ }
if (test.run() == FALSE){
fprintf(stderr, "FAILED: Tests could not be run please check the "
- "arguments.\n");
+ "arguments.\n");
return -1;
}
- delete catICU;
- delete catStd;
+ delete catICU;
+ delete catStd;
return 0;
}
StringPerformanceTest::StringPerformanceTest(int32_t argc, const char *argv[],
- UErrorCode &status)
- : UPerfTest(argc, argv, status)
+ UErrorCode &status)
+ : UPerfTest(argc, argv, status)
{
- filelines_=NULL;
- StrBuffer=NULL;
- StrBufferLen=0;
+ filelines_=NULL;
+ StrBuffer=NULL;
+ StrBufferLen=0;
- int32_t len =0;
+ int32_t len =0;
- if (status== U_ILLEGAL_ARGUMENT_ERROR){
- //fprintf(stderr,gUsageString, "stringperf");
- return;
+ if (status== U_ILLEGAL_ARGUMENT_ERROR){
+ //fprintf(stderr,gUsageString, "stringperf");
+ return;
}
if (U_FAILURE(status)){
fprintf(stderr, "FAILED to create UPerfTest object. Error: %s\n",
- u_errorName(status));
+ u_errorName(status));
return;
}
@@ -87,15 +87,15 @@ StringPerformanceTest::StringPerformanceTest(int32_t argc, const char *argv[],
fprintf(stderr, "FAILED to read lines from file and create UPerfTest object. Error: %s\n", u_errorName(status));
return;
}
-
- filelines_ = new ULine[numLines];
- for (int i =0; i < numLines; i++) {
- len = filelines[i].len;
- filelines_[i].name = new UChar[len];
+
+ filelines_ = new ULine[numLines];
+ for (int i =0; i < numLines; i++) {
+ len = filelines[i].len;
+ filelines_[i].name = new UChar[len];
filelines_[i].len = len;
- memcpy(filelines_[i].name, filelines[i].name, len * U_SIZEOF_UCHAR);
- }
-
+ memcpy(filelines_[i].name, filelines[i].name, len * U_SIZEOF_UCHAR);
+ }
+
}else if(bulk_mode){
int32_t srcLen = 0;
const UChar* src = getBuffer(srcLen,status);
@@ -103,50 +103,50 @@ StringPerformanceTest::StringPerformanceTest(int32_t argc, const char *argv[],
fprintf(stderr, "FAILED to read buffer from file and create UPerfTest object. Error: %s\n", u_errorName(status));
return;
}
-
- StrBuffer = new UChar[srcLen];
- StrBufferLen = srcLen;
- memcpy(StrBuffer, src, srcLen * U_SIZEOF_UCHAR);
+
+ StrBuffer = new UChar[srcLen];
+ StrBufferLen = srcLen;
+ memcpy(StrBuffer, src, srcLen * U_SIZEOF_UCHAR);
}
}
StringPerformanceTest::~StringPerformanceTest()
{
- delete[] filelines_;
- delete[] StrBuffer;
+ delete[] filelines_;
+ delete[] StrBuffer;
}
UPerfFunction* StringPerformanceTest::runIndexedTest(int32_t index, UBool exec,
- const char *&name,
- char* par)
+ const char *&name,
+ char* par)
{
switch (index) {
TESTCASE(0, TestCtor);
- TESTCASE(1, TestCtor1);
- TESTCASE(2, TestCtor2);
- TESTCASE(3, TestCtor3);
- TESTCASE(4, TestAssign);
- TESTCASE(5, TestAssign1);
- TESTCASE(6, TestAssign2);
- TESTCASE(7, TestGetch);
- TESTCASE(8, TestCatenate);
- TESTCASE(9, TestScan);
- TESTCASE(10, TestScan1);
- TESTCASE(11, TestScan2);
-
- TESTCASE(12, TestStdLibCtor);
- TESTCASE(13, TestStdLibCtor1);
- TESTCASE(14, TestStdLibCtor2);
- TESTCASE(15, TestStdLibCtor3);
- TESTCASE(16, TestStdLibAssign);
- TESTCASE(17, TestStdLibAssign1);
- TESTCASE(18, TestStdLibAssign2);
- TESTCASE(19, TestStdLibGetch);
- TESTCASE(20, TestStdLibCatenate);
- TESTCASE(21, TestStdLibScan);
- TESTCASE(22, TestStdLibScan1);
- TESTCASE(23, TestStdLibScan2);
+ TESTCASE(1, TestCtor1);
+ TESTCASE(2, TestCtor2);
+ TESTCASE(3, TestCtor3);
+ TESTCASE(4, TestAssign);
+ TESTCASE(5, TestAssign1);
+ TESTCASE(6, TestAssign2);
+ TESTCASE(7, TestGetch);
+ TESTCASE(8, TestCatenate);
+ TESTCASE(9, TestScan);
+ TESTCASE(10, TestScan1);
+ TESTCASE(11, TestScan2);
+
+ TESTCASE(12, TestStdLibCtor);
+ TESTCASE(13, TestStdLibCtor1);
+ TESTCASE(14, TestStdLibCtor2);
+ TESTCASE(15, TestStdLibCtor3);
+ TESTCASE(16, TestStdLibAssign);
+ TESTCASE(17, TestStdLibAssign1);
+ TESTCASE(18, TestStdLibAssign2);
+ TESTCASE(19, TestStdLibGetch);
+ TESTCASE(20, TestStdLibCatenate);
+ TESTCASE(21, TestStdLibScan);
+ TESTCASE(22, TestStdLibScan1);
+ TESTCASE(23, TestStdLibScan2);
default:
name = "";
@@ -157,219 +157,221 @@ UPerfFunction* StringPerformanceTest::runIndexedTest(int32_t index, UBool exec,
UPerfFunction* StringPerformanceTest::TestCtor()
{
- if (line_mode) {
- return new StringPerfFunction(ctor, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(ctor, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(ctor, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(ctor, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestCtor1()
{
- if (line_mode) {
- return new StringPerfFunction(ctor1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(ctor1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(ctor1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(ctor1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestCtor2()
{
- if (line_mode) {
- return new StringPerfFunction(ctor2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(ctor2, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(ctor2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(ctor2, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestCtor3()
{
- if (line_mode) {
- return new StringPerfFunction(ctor3, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(ctor3, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(ctor3, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(ctor3, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestAssign()
{
- if (line_mode) {
- return new StringPerfFunction(assign, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(assign, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(assign, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(assign, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestAssign1()
{
- if (line_mode) {
- return new StringPerfFunction(assign1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(assign1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(assign1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(assign1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestAssign2()
{
- if (line_mode) {
- return new StringPerfFunction(assign2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(assign2, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(assign2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(assign2, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestGetch()
{
- if (line_mode) {
- return new StringPerfFunction(getch, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(getch, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(getch, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(getch, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestCatenate()
{
- if (line_mode) {
- return new StringPerfFunction(catenate, filelines_, numLines, uselen);
- } else {
- //return new StringPerfFunction(catenate, buffer, bufferLen, uselen);
- return new StringPerfFunction(catenate, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(catenate, filelines_, numLines, uselen);
+ } else {
+ //return new StringPerfFunction(catenate, buffer, bufferLen, uselen);
+ return new StringPerfFunction(catenate, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestScan()
{
- if (line_mode) {
- return new StringPerfFunction(scan, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(scan, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(scan, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(scan, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestScan1()
{
- if (line_mode) {
- return new StringPerfFunction(scan1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(scan1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(scan1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(scan1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestScan2()
{
- if (line_mode) {
- return new StringPerfFunction(scan2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(scan2, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(scan2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(scan2, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibCtor()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibCtor, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibCtor, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibCtor, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibCtor, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibCtor1()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibCtor1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibCtor1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibCtor1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibCtor1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibCtor2()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibCtor2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibCtor2, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibCtor2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibCtor2, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibCtor3()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibCtor3, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibCtor3, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibCtor3, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibCtor3, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibAssign()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibAssign, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibAssign, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibAssign, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibAssign, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibAssign1()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibAssign1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibAssign1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibAssign1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibAssign1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibAssign2()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibAssign2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibAssign2, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibAssign2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibAssign2, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibGetch()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibGetch, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibGetch, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibGetch, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibGetch, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibCatenate()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibCatenate, filelines_, numLines, uselen);
- } else {
- //return new StringPerfFunction(StdLibCatenate, buffer, bufferLen, uselen);
- return new StringPerfFunction(StdLibCatenate, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibCatenate, filelines_, numLines, uselen);
+ } else {
+ //return new StringPerfFunction(StdLibCatenate, buffer, bufferLen, uselen);
+ return new StringPerfFunction(StdLibCatenate, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibScan()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibScan, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibScan, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibScan, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibScan, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibScan1()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibScan1, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibScan1, StrBuffer, StrBufferLen, uselen);
- }
+ if (line_mode) {
+ return new StringPerfFunction(StdLibScan1, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibScan1, StrBuffer, StrBufferLen, uselen);
+ }
}
UPerfFunction* StringPerformanceTest::TestStdLibScan2()
{
- if (line_mode) {
- return new StringPerfFunction(StdLibScan2, filelines_, numLines, uselen);
- } else {
- return new StringPerfFunction(StdLibScan2, StrBuffer, StrBufferLen, uselen);
- }
-} \ No newline at end of file
+ if (line_mode) {
+ return new StringPerfFunction(StdLibScan2, filelines_, numLines, uselen);
+ } else {
+ return new StringPerfFunction(StdLibScan2, StrBuffer, StrBufferLen, uselen);
+ }
+}
+
+
diff --git a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.h b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.h
index 5b6b47ba99a..84d6493a405 100644
--- a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.h
+++ b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.h
@@ -1,9 +1,8 @@
/*
**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
+* Copyright (c) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
-**********************************************************************
*/
#ifndef _STRINGPERF_H
#define _STRINGPERF_H
@@ -20,7 +19,7 @@ typedef std::wstring stlstring;
/* Define all constants for test case operations */
#define MAXNUMLINES 40000 //Max number of lines in a test data file
#define MAXSRCLEN 20 //Max length of one line. maybe a larger number, but it need more mem
-#define LOOPS 100 //Iterations
+#define LOOPS 100 //Iterations
//#define LOOPS 10
#define catenate_STRLEN 2
@@ -62,385 +61,385 @@ class StringPerfFunction : public UPerfFunction
{
public:
- virtual long getEventsPerIteration(){
- int loops = LOOPS;
- if (catICU) { delete catICU;}
- if (catStd) { delete catStd;}
-
- if (bCatenatePrealloc) {
-
- int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN);
- catICU = new UnicodeString(to_alloc,'a',0);
- //catICU = new UnicodeString();
-
- catStd = new stlstring();
- //catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN));
- catStd -> reserve(110000000);
- } else {
- catICU = new UnicodeString();
- catStd = new stlstring();
- }
-
- return -1;
+ virtual long getEventsPerIteration(){
+ int loops = LOOPS;
+ if (catICU) { delete catICU;}
+ if (catStd) { delete catStd;}
+
+ if (bCatenatePrealloc) {
+
+ int to_alloc = loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN);
+ catICU = new UnicodeString(to_alloc,'a',0);
+ //catICU = new UnicodeString();
+
+ catStd = new stlstring();
+ //catStd -> reserve(loops * MAXNUMLINES * (MAXSRCLEN + catenate_STRLEN));
+ catStd -> reserve(110000000);
+ } else {
+ catICU = new UnicodeString();
+ catStd = new stlstring();
+ }
+
+ return -1;
}
- virtual void call(UErrorCode* status)
- {
+ virtual void call(UErrorCode* status)
+ {
if(line_mode_==TRUE){
if(uselen_){
for(int32_t i = 0; i< numLines_; i++){
- if (fnType_==Fn_ICU) {
- (*fn1_)(lines_[i].name,lines_[i].len,uS0_[i]);
- } else {
- (*fn2_)(wlines_[i].name,wlines_[i].len,sS0_[i]);
- }
+ if (fnType_==Fn_ICU) {
+ (*fn1_)(lines_[i].name,lines_[i].len,uS0_[i]);
+ } else {
+ (*fn2_)(wlines_[i].name,wlines_[i].len,sS0_[i]);
+ }
}
}else{
for(int32_t i = 0; i< numLines_; i++){
if (fnType_==Fn_ICU) {
- (*fn1_)(lines_[i].name,-1,uS0_[i]);
- } else {
- (*fn2_)(wlines_[i].name,-1,sS0_[i]);
- }
+ (*fn1_)(lines_[i].name,-1,uS0_[i]);
+ } else {
+ (*fn2_)(wlines_[i].name,-1,sS0_[i]);
+ }
}
}
}else{
if(uselen_){
- if (fnType_==Fn_ICU) {
- (*fn1_)(src_,srcLen_,*ubulk_);
- } else {
- (*fn2_)(wsrc_,wsrcLen_,*sbulk_);
- }
+ if (fnType_==Fn_ICU) {
+ (*fn1_)(src_,srcLen_,*ubulk_);
+ } else {
+ (*fn2_)(wsrc_,wsrcLen_,*sbulk_);
+ }
}else{
- if (fnType_==Fn_ICU) {
- (*fn1_)(src_,-1,*ubulk_);
- } else {
- (*fn2_)(wsrc_,-1,*sbulk_);
- }
+ if (fnType_==Fn_ICU) {
+ (*fn1_)(src_,-1,*ubulk_);
+ } else {
+ (*fn2_)(wsrc_,-1,*sbulk_);
+ }
}
}
- }
+ }
- virtual long getOperationsPerIteration()
- {
+ virtual long getOperationsPerIteration()
+ {
if(line_mode_==TRUE){
return numLines_;
}else{
return 1;
}
- }
-
- StringPerfFunction(ICUStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen)
- {
-
- fn1_ = func;
- lines_=srcLines;
- wlines_=NULL;
- numLines_=srcNumLines;
- uselen_=uselen;
- line_mode_=TRUE;
+ }
+
+ StringPerfFunction(ICUStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen)
+ {
+
+ fn1_ = func;
+ lines_=srcLines;
+ wlines_=NULL;
+ numLines_=srcNumLines;
+ uselen_=uselen;
+ line_mode_=TRUE;
src_ = NULL;
srcLen_ = 0;
- wsrc_ = NULL;
- wsrcLen_ = 0;
- fnType_ = Fn_ICU;
-
- uS0_=new UnicodeString[numLines_];
- for(int32_t i=0; i<numLines_; i++) {
- uS0_[i]=UnicodeString(lines_[i].name, lines_[i].len);
- }
- sS0_=NULL;
- ubulk_=NULL;
- sbulk_=NULL;
- }
-
- StringPerfFunction(StdStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen)
- {
-
- fn2_ = func;
- lines_=srcLines;
- wlines_=NULL;
- numLines_=srcNumLines;
- uselen_=uselen;
- line_mode_=TRUE;
+ wsrc_ = NULL;
+ wsrcLen_ = 0;
+ fnType_ = Fn_ICU;
+
+ uS0_=new UnicodeString[numLines_];
+ for(int32_t i=0; i<numLines_; i++) {
+ uS0_[i]=UnicodeString(lines_[i].name, lines_[i].len);
+ }
+ sS0_=NULL;
+ ubulk_=NULL;
+ sbulk_=NULL;
+ }
+
+ StringPerfFunction(StdStringPerfFn func, ULine* srcLines, int32_t srcNumLines, UBool uselen)
+ {
+
+ fn2_ = func;
+ lines_=srcLines;
+ wlines_=NULL;
+ numLines_=srcNumLines;
+ uselen_=uselen;
+ line_mode_=TRUE;
src_ = NULL;
srcLen_ = 0;
- wsrc_ = NULL;
- wsrcLen_ = 0;
- fnType_ = Fn_STD;
-
- uS0_=NULL;
- ubulk_=NULL;
- sbulk_=NULL;
-
- //fillin wlines_[], sS0_[]
- prepareLinesForStd();
- }
-
- StringPerfFunction(ICUStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen)
- {
-
- fn1_ = func;
- lines_=NULL;
- wlines_=NULL;
- numLines_=0;
- uselen_=uselen;
- line_mode_=FALSE;
- src_ = new UChar[sourceLen];
- memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR);
+ wsrc_ = NULL;
+ wsrcLen_ = 0;
+ fnType_ = Fn_STD;
+
+ uS0_=NULL;
+ ubulk_=NULL;
+ sbulk_=NULL;
+
+ //fillin wlines_[], sS0_[]
+ prepareLinesForStd();
+ }
+
+ StringPerfFunction(ICUStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen)
+ {
+
+ fn1_ = func;
+ lines_=NULL;
+ wlines_=NULL;
+ numLines_=0;
+ uselen_=uselen;
+ line_mode_=FALSE;
+ src_ = new UChar[sourceLen];
+ memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR);
srcLen_ = sourceLen;
- wsrc_ = NULL;
- wsrcLen_ = 0;
- fnType_ = Fn_ICU;
-
- uS0_=NULL;
- sS0_=NULL;
- ubulk_=new UnicodeString(src_,srcLen_);
- sbulk_=NULL;
- }
-
- StringPerfFunction(StdStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen)
- {
-
- fn2_ = func;
- lines_=NULL;
- wlines_=NULL;
- numLines_=0;
- uselen_=uselen;
- line_mode_=FALSE;
- src_ = new UChar[sourceLen];
- memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR);
+ wsrc_ = NULL;
+ wsrcLen_ = 0;
+ fnType_ = Fn_ICU;
+
+ uS0_=NULL;
+ sS0_=NULL;
+ ubulk_=new UnicodeString(src_,srcLen_);
+ sbulk_=NULL;
+ }
+
+ StringPerfFunction(StdStringPerfFn func, UChar* source, int32_t sourceLen, UBool uselen)
+ {
+
+ fn2_ = func;
+ lines_=NULL;
+ wlines_=NULL;
+ numLines_=0;
+ uselen_=uselen;
+ line_mode_=FALSE;
+ src_ = new UChar[sourceLen];
+ memcpy(src_, source, sourceLen * U_SIZEOF_UCHAR);
srcLen_ = sourceLen;
- fnType_ = Fn_STD;
-
- uS0_=NULL;
- sS0_=NULL;
- ubulk_=NULL;
-
- //fillin wsrc_, sbulk_
- prepareBulkForStd();
-
- }
-
- ~StringPerfFunction()
- {
- //free(src_);
- free(wsrc_);
- delete[] src_;
- delete ubulk_;
- delete sbulk_;
- delete[] uS0_;
- delete[] sS0_;
- delete[] wlines_;
- }
+ fnType_ = Fn_STD;
+
+ uS0_=NULL;
+ sS0_=NULL;
+ ubulk_=NULL;
+
+ //fillin wsrc_, sbulk_
+ prepareBulkForStd();
+
+ }
+
+ ~StringPerfFunction()
+ {
+ //free(src_);
+ free(wsrc_);
+ delete[] src_;
+ delete ubulk_;
+ delete sbulk_;
+ delete[] uS0_;
+ delete[] sS0_;
+ delete[] wlines_;
+ }
private:
- void prepareLinesForStd(void)
- {
- UErrorCode err=U_ZERO_ERROR;
-
- wlines_=new WLine[numLines_];
+ void prepareLinesForStd(void)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+
+ wlines_=new WLine[numLines_];
wchar_t ws[100];
int32_t wcap = sizeof(ws) / sizeof(*ws);
int32_t wl;
- wchar_t* wcs;
-
- sS0_=new stlstring[numLines_];
- for(int32_t i=0; i<numLines_; i++) {
- if(uselen_) {
- wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len, &err);
- memcpy(wlines_[i].name, wcs, wl * sizeof(wchar_t));
- wlines_[i].len = wl;
- sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len);
- } else {
- wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len-1, &err);
- memcpy(wlines_[i].name, wcs, wl*sizeof(wchar_t));
- wlines_[i].len = wl;
- sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len+1);
- }
-
- if (U_FAILURE(err)) {
- return;
- }
- }
-
- }
-
- void prepareBulkForStd(void)
- {
- UErrorCode err=U_ZERO_ERROR;
-
- const UChar* uSrc = src_;
- int32_t uSrcLen = srcLen_;
- wchar_t* wDest = NULL;
- int32_t wDestLen = 0;
- int32_t reqLen= 0 ;
-
- if(uselen_) {
- /* pre-flight*/
- u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err);
-
- if(err == U_BUFFER_OVERFLOW_ERROR){
- err=U_ZERO_ERROR;
- wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen));
- wDestLen = reqLen;
- u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err);
- }
-
- if (U_SUCCESS(err)) {
- wsrc_ = wDest;
- wsrcLen_ = wDestLen;
- sbulk_=new stlstring(wsrc_,wsrcLen_);
- }
-
- } else {
- /* pre-flight*/
- u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err);
-
- if(err == U_BUFFER_OVERFLOW_ERROR){
- err=U_ZERO_ERROR;
- wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen+1));
- wDestLen = reqLen+1;
- u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err);
- }
-
- if (U_SUCCESS(err)) {
- wsrc_ = wDest;
- wsrcLen_ = wDestLen;
- sbulk_=new stlstring(wsrc_);
- }
- }
-
- //free(wDest);
- }
+ wchar_t* wcs;
+
+ sS0_=new stlstring[numLines_];
+ for(int32_t i=0; i<numLines_; i++) {
+ if(uselen_) {
+ wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len, &err);
+ memcpy(wlines_[i].name, wcs, wl * sizeof(wchar_t));
+ wlines_[i].len = wl;
+ sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len);
+ } else {
+ wcs = u_strToWCS(ws, wcap, &wl, lines_[i].name, lines_[i].len-1, &err);
+ memcpy(wlines_[i].name, wcs, wl*sizeof(wchar_t));
+ wlines_[i].len = wl;
+ sS0_[i]=stlstring(wlines_[i].name, wlines_[i].len+1);
+ }
+
+ if (U_FAILURE(err)) {
+ return;
+ }
+ }
+
+ }
+
+ void prepareBulkForStd(void)
+ {
+ UErrorCode err=U_ZERO_ERROR;
+
+ const UChar* uSrc = src_;
+ int32_t uSrcLen = srcLen_;
+ wchar_t* wDest = NULL;
+ int32_t wDestLen = 0;
+ int32_t reqLen= 0 ;
+
+ if(uselen_) {
+ /* pre-flight*/
+ u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err);
+
+ if(err == U_BUFFER_OVERFLOW_ERROR){
+ err=U_ZERO_ERROR;
+ wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen));
+ wDestLen = reqLen;
+ u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen,&err);
+ }
+
+ if (U_SUCCESS(err)) {
+ wsrc_ = wDest;
+ wsrcLen_ = wDestLen;
+ sbulk_=new stlstring(wsrc_,wsrcLen_);
+ }
+
+ } else {
+ /* pre-flight*/
+ u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err);
+
+ if(err == U_BUFFER_OVERFLOW_ERROR){
+ err=U_ZERO_ERROR;
+ wDest =(wchar_t*) malloc(sizeof(wchar_t) * (reqLen+1));
+ wDestLen = reqLen+1;
+ u_strToWCS(wDest,wDestLen,&reqLen,uSrc,uSrcLen-1,&err);
+ }
+
+ if (U_SUCCESS(err)) {
+ wsrc_ = wDest;
+ wsrcLen_ = wDestLen;
+ sbulk_=new stlstring(wsrc_);
+ }
+ }
+
+ //free(wDest);
+ }
private:
- ICUStringPerfFn fn1_;
- StdStringPerfFn fn2_;
-
- ULine* lines_;
- WLine* wlines_;
- int32_t numLines_;
-
- UBool uselen_;
- UChar* src_;
- int32_t srcLen_;
- wchar_t* wsrc_;
- int32_t wsrcLen_;
+ ICUStringPerfFn fn1_;
+ StdStringPerfFn fn2_;
+
+ ULine* lines_;
+ WLine* wlines_;
+ int32_t numLines_;
+
+ UBool uselen_;
+ UChar* src_;
+ int32_t srcLen_;
+ wchar_t* wsrc_;
+ int32_t wsrcLen_;
UBool line_mode_;
-
- //added for preparing testing data
- UnicodeString* uS0_;
- stlstring* sS0_;
- UnicodeString* ubulk_;
- stlstring* sbulk_;
- FnType fnType_;
-};
+
+ //added for preparing testing data
+ UnicodeString* uS0_;
+ stlstring* sS0_;
+ UnicodeString* ubulk_;
+ stlstring* sbulk_;
+ FnType fnType_;
+};
class StringPerformanceTest : public UPerfTest
{
public:
- StringPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status);
- ~StringPerformanceTest();
- virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,
- const char *&name,
- char *par = NULL);
- UPerfFunction* TestCtor();
- UPerfFunction* TestCtor1();
- UPerfFunction* TestCtor2();
- UPerfFunction* TestCtor3();
- UPerfFunction* TestAssign();
- UPerfFunction* TestAssign1();
- UPerfFunction* TestAssign2();
- UPerfFunction* TestGetch();
- UPerfFunction* TestCatenate();
- UPerfFunction* TestScan();
- UPerfFunction* TestScan1();
- UPerfFunction* TestScan2();
-
- UPerfFunction* TestStdLibCtor();
- UPerfFunction* TestStdLibCtor1();
- UPerfFunction* TestStdLibCtor2();
- UPerfFunction* TestStdLibCtor3();
- UPerfFunction* TestStdLibAssign();
- UPerfFunction* TestStdLibAssign1();
- UPerfFunction* TestStdLibAssign2();
- UPerfFunction* TestStdLibGetch();
- UPerfFunction* TestStdLibCatenate();
- UPerfFunction* TestStdLibScan();
- UPerfFunction* TestStdLibScan1();
- UPerfFunction* TestStdLibScan2();
+ StringPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status);
+ ~StringPerformanceTest();
+ virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,
+ const char *&name,
+ char *par = NULL);
+ UPerfFunction* TestCtor();
+ UPerfFunction* TestCtor1();
+ UPerfFunction* TestCtor2();
+ UPerfFunction* TestCtor3();
+ UPerfFunction* TestAssign();
+ UPerfFunction* TestAssign1();
+ UPerfFunction* TestAssign2();
+ UPerfFunction* TestGetch();
+ UPerfFunction* TestCatenate();
+ UPerfFunction* TestScan();
+ UPerfFunction* TestScan1();
+ UPerfFunction* TestScan2();
+
+ UPerfFunction* TestStdLibCtor();
+ UPerfFunction* TestStdLibCtor1();
+ UPerfFunction* TestStdLibCtor2();
+ UPerfFunction* TestStdLibCtor3();
+ UPerfFunction* TestStdLibAssign();
+ UPerfFunction* TestStdLibAssign1();
+ UPerfFunction* TestStdLibAssign2();
+ UPerfFunction* TestStdLibGetch();
+ UPerfFunction* TestStdLibCatenate();
+ UPerfFunction* TestStdLibScan();
+ UPerfFunction* TestStdLibScan1();
+ UPerfFunction* TestStdLibScan2();
private:
- long COUNT_;
- ULine* filelines_;
- UChar* StrBuffer;
- int32_t StrBufferLen;
+ long COUNT_;
+ ULine* filelines_;
+ UChar* StrBuffer;
+ int32_t StrBufferLen;
};
-inline void ctor(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void ctor(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UnicodeString a;
+ UnicodeString a;
}
-inline void ctor1(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void ctor1(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UnicodeString b(uTESTCHAR1);
+ UnicodeString b(uTESTCHAR1);
}
-inline void ctor2(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void ctor2(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UnicodeString c(uEMPTY);
+ UnicodeString c(uEMPTY);
}
-inline void ctor3(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void ctor3(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UnicodeString d(src,srcLen);
+ UnicodeString d(src,srcLen);
}
inline UnicodeString icu_assign_helper(const UChar* src,int32_t srcLen)
{
- if (srcLen==-1) { return src;}
- else { return UnicodeString(src, srcLen);}
+ if (srcLen==-1) { return src;}
+ else { return UnicodeString(src, srcLen);}
}
-inline void assign(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void assign(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- unistr = icu_assign_helper(src,srcLen);
+ unistr = icu_assign_helper(src,srcLen);
}
-inline void assign1(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void assign1(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- unistr.setTo(src, srcLen);
+ unistr.setTo(src, srcLen);
}
-inline void assign2(const UChar* src,int32_t srcLen, UnicodeString s0)
+inline void assign2(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- unistr = s0;
+ unistr = s0;
}
inline void getch(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- s0.charAt(0);
+ s0.charAt(0);
}
inline void catenate(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UTimer mystart, mystop;
- utimer_getTime(&mystart);
-
- *catICU += s0;
-
- utimer_getTime(&mystop);
+ UTimer mystart, mystop;
+ utimer_getTime(&mystart);
+
+ *catICU += s0;
+
+ utimer_getTime(&mystop);
double mytime = utimer_getDeltaSeconds(&mystart,&mystop);
- printf("\nmytime=%f \n", mytime);
+ printf("\nmytime=%f \n", mytime);
- *catICU += uCatenate_STR;
+ *catICU += uCatenate_STR;
}
volatile int scan_idx;
@@ -448,103 +447,103 @@ U_STRING_DECL(SCAN1, "123", 3);
inline void scan(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UChar c='.';
- scan_idx = uScan_STRING.indexOf(c);
+ UChar c='.';
+ scan_idx = uScan_STRING.indexOf(c);
}
inline void scan1(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- scan_idx = uScan_STRING.indexOf(SCAN1,3);
+ scan_idx = uScan_STRING.indexOf(SCAN1,3);
}
inline void scan2(const UChar* src,int32_t srcLen, UnicodeString s0)
{
- UChar c1='s';
- UChar c2='m';
- scan_idx = uScan_STRING.indexOf(c1);
- scan_idx = uScan_STRING.indexOf(c2);
+ UChar c1='s';
+ UChar c2='m';
+ scan_idx = uScan_STRING.indexOf(c1);
+ scan_idx = uScan_STRING.indexOf(c2);
}
inline void StdLibCtor(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- stlstring a;
+ stlstring a;
}
inline void StdLibCtor1(const wchar_t* src,int32_t srcLen, stlstring s0)
{
-
- stlstring b(simulate);
+ stlstring b(simulate);
}
inline void StdLibCtor2(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- stlstring c(sEMPTY);
+ stlstring c(sEMPTY);
}
inline void StdLibCtor3(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- if (srcLen==-1) {
- stlstring d(src);
- }else {
- stlstring d(src, srcLen);
- }
+ if (srcLen==-1) {
+ stlstring d(src);
+ }else {
+ stlstring d(src, srcLen);
+ }
}
inline stlstring stl_assign_helper(const wchar_t* src,int32_t srcLen)
{
- if (srcLen==-1) { return src;}
- else { return stlstring(src, srcLen);}
+ if (srcLen==-1) { return src;}
+ else { return stlstring(src, srcLen);}
}
-inline void StdLibAssign(const wchar_t* src,int32_t srcLen, stlstring s0)
+inline void StdLibAssign(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- stlstr = stl_assign_helper(src,srcLen);
+ stlstr = stl_assign_helper(src,srcLen);
}
-inline void StdLibAssign1(const wchar_t* src,int32_t srcLen, stlstring s0)
+inline void StdLibAssign1(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- if (srcLen==-1) { stlstr=src;}
- else { stlstr.assign(src, srcLen);}
+ if (srcLen==-1) { stlstr=src;}
+ else { stlstr.assign(src, srcLen);}
}
-inline void StdLibAssign2(const wchar_t* src,int32_t srcLen, stlstring s0)
+inline void StdLibAssign2(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- stlstr=s0;
+ stlstr=s0;
}
inline void StdLibGetch(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- s0.at(0);
+ s0.at(0);
}
inline void StdLibCatenate(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- UTimer mystart, mystop;
- utimer_getTime(&mystart);
+ UTimer mystart, mystop;
+ utimer_getTime(&mystart);
*catStd += s0;
- *catStd += sCatenate_STR;
+ *catStd += sCatenate_STR;
- utimer_getTime(&mystop);
+ utimer_getTime(&mystop);
double mytime = utimer_getDeltaSeconds(&mystart,&mystop);
- printf("\nmytime=%f \n", mytime);
-
+ printf("\nmytime=%f \n", mytime);
+
}
inline void StdLibScan(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- scan_idx = (int) sScan_STRING.find('.');
+ scan_idx = (int) sScan_STRING.find('.');
}
inline void StdLibScan1(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- scan_idx = (int) sScan_STRING.find(L"123");
+ scan_idx = (int) sScan_STRING.find(L"123");
}
inline void StdLibScan2(const wchar_t* src,int32_t srcLen, stlstring s0)
{
- scan_idx = (int) sScan_STRING.find_first_of(L"sm");
+ scan_idx = (int) sScan_STRING.find_first_of(L"sm");
}
-#endif // STRINGPERF_H \ No newline at end of file
+#endif // STRINGPERF_H
+
diff --git a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.vcproj b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.vcproj
index 2e11d087da8..340d1047c84 100644
--- a/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.vcproj
+++ b/Build/source/libs/icu-xetex/test/perf/ustrperf/stringperf.vcproj
@@ -102,7 +102,7 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="icuuc.lib icutu.lib icutest.lib winmm.lib"
+ AdditionalDependencies="icuucd.lib icutud.lib icutestd.lib winmm.lib"
OutputFile=".\Debug/stringperf.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
diff --git a/Build/source/libs/icu-xetex/test/perf/utfperf/.cvsignore b/Build/source/libs/icu-xetex/test/perf/utfperf/.cvsignore
new file mode 100644
index 00000000000..4d5fd3c4353
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/utfperf/.cvsignore
@@ -0,0 +1,6 @@
+*.d
+*.o
+utfperf
+Debug
+Release
+Makefile
diff --git a/Build/source/libs/icu-xetex/test/perf/utfperf/Makefile.in b/Build/source/libs/icu-xetex/test/perf/utfperf/Makefile.in
new file mode 100644
index 00000000000..51af2c683a6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/utfperf/Makefile.in
@@ -0,0 +1,78 @@
+## Makefile.in for ICU - test/perf/utfperf
+## Copyright (c) 2001-2006, International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../../..
+
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = test/perf/utfperf
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS)
+
+## Target information
+TARGET = utfperf
+
+CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/tools/toolutil -I$(top_srcdir)/tools/ctestfw
+LIBS = $(LIBCTESTFW) $(LIBICUI18N) $(LIBICUUC) $(LIBICUTOOLUTIL) $(DEFAULT_LIBS) $(LIB_M)
+
+OBJECTS = utfperf.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET)
+
+install-local:
+
+dist-local:
+
+clean-local:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+ $(RMV) $(OBJECTS) $(TARGET)
+
+distclean-local: clean-local
+ $(RMV) Makefile
+
+check-local: all-local
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(TARGET) : $(OBJECTS)
+ $(LINK.cc) -o $@ $^ $(LIBS)
+
+invoke:
+ ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+endif
+
diff --git a/Build/source/libs/icu-xetex/test/perf/utfperf/UtfPerf.pl b/Build/source/libs/icu-xetex/test/perf/utfperf/UtfPerf.pl
new file mode 100755
index 00000000000..0c7ff961a3a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/utfperf/UtfPerf.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl -w
+# ********************************************************************
+# * COPYRIGHT:
+# * Copyright (c) 2005, International Business Machines Corporation and
+# * others. All Rights Reserved.
+# ********************************************************************
+
+use strict;
+
+use lib '../perldriver';
+
+use PerfFramework;
+
+
+my $options = {
+ "title"=>"Utf performance: ICU",
+ "headers"=>"ICU",
+ "operationIs"=>"gb18030 encoding string",
+ "passes"=>"1",
+ "time"=>"2",
+ #"outputType"=>"HTML",
+ "dataDir"=>"../data",
+ "outputDir"=>"../results"
+ };
+
+# programs
+# tests will be done for all the programs. Results will be stored and connected
+my $p = "debug/utfperf.exe -e gb18030";
+
+my $tests = {
+ "UTF-8", ["$p UTF_8"],
+ "UTF-8 small buffer", ["$p UTF_8_SB"],
+ "SCSU", ["$p SCSU"],
+ "SCSU small buffer", ["$p SCSU_SB"],
+ "BOCU_1", ["$p BOCU_1"],
+ "BOCU_1 small buffer", ["$p BOCU_1_SB"],
+ };
+
+my $dataFiles = {
+ "",
+ [
+ "four.txt"
+ ]
+ };
+
+runTests($options, $tests, $dataFiles);
diff --git a/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.cpp b/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.cpp
new file mode 100644
index 00000000000..d83538bdbce
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.cpp
@@ -0,0 +1,156 @@
+/*
+**********************************************************************
+* Copyright (C) 2002-2005, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+* file name: utfperf.cpp
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005Nov17
+* created by: Raymond Yang
+*
+* Ported from utfper.c created by Markus W. Scherer
+* Performance test program for Unicode converters
+*/
+
+#include <stdio.h>
+#include "unicode/uperf.h"
+
+
+/* definitions and text buffers */
+
+#define INPUT_CAPACITY (1024*1024)
+#define INTERMEDIATE_CAPACITY 4096
+#define INTERMEDIATE_SMALL_CAPACITY 20
+#define OUTPUT_CAPACITY INPUT_CAPACITY
+
+static UChar input[INPUT_CAPACITY];
+static UChar output[OUTPUT_CAPACITY];
+static char intermediate[INTERMEDIATE_CAPACITY];
+
+static int32_t inputLength, encodedLength, outputLength, countInputCodePoints;
+
+
+class Command : public UPerfFunction {
+private:
+ Command(const char * name, int32_t buf_cap):name(name),buf_cap(buf_cap){
+ errorCode=U_ZERO_ERROR;
+ cnv=ucnv_open(name, &errorCode);
+ }
+public:
+ static UPerfFunction* get(const char * name, int32_t buf_cap){
+ Command * t = new Command(name, buf_cap);
+ if (U_SUCCESS(t->errorCode)){
+ return t;
+ } else {
+ //fprintf(stderr, "error opening converter for \"%s\" - %s\n", name, u_errorName(errorCode));
+ delete t;
+ return NULL;
+ }
+ }
+ virtual ~Command(){
+ if(U_SUCCESS(errorCode)) {
+ ucnv_close(cnv);
+ }
+ }
+ virtual void call(UErrorCode* pErrorCode){
+ const UChar *pIn, *pInLimit;
+ UChar *pOut, *pOutLimit;
+ char *pInter, *pInterLimit;
+ const char *p;
+ UBool flush;
+
+ ucnv_reset(cnv);
+
+ pIn=input;
+ pInLimit=input+inputLength;
+
+ pOut=output;
+ pOutLimit=output+OUTPUT_CAPACITY;
+
+ pInterLimit=intermediate+buf_cap;
+
+ encodedLength=outputLength=0;
+ flush=FALSE;
+
+ while(pIn<pInLimit || !flush) {
+ /* convert a block of [pIn..pInLimit[ to the encoding in intermediate[] */
+ pInter=intermediate;
+ flush=(UBool)(pIn==pInLimit);
+ ucnv_fromUnicode(cnv, &pInter, pInterLimit, &pIn, pInLimit, NULL, flush, pErrorCode);
+ encodedLength+=(int32_t)(pInter-intermediate);
+
+ if(*pErrorCode==U_BUFFER_OVERFLOW_ERROR) {
+ /* in case flush was TRUE make sure that we convert once more to really flush */
+ flush=FALSE;
+ *pErrorCode=U_ZERO_ERROR;
+ } else if(U_FAILURE(*pErrorCode)) {
+ return;
+ }
+
+ /* convert the block [intermediate..pInter[ back to UTF-16 */
+ p=intermediate;
+ ucnv_toUnicode(cnv, &pOut, pOutLimit,&p, pInter,NULL, flush,pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ return;
+ }
+ /* intermediate must have been consumed (p==pInter) because of the converter semantics */
+ }
+
+ outputLength=pOut-output;
+ if(inputLength!=outputLength) {
+ fprintf(stderr, "error: roundtrip failed, inputLength %d!=outputLength %d\n", inputLength, outputLength);
+ *pErrorCode=U_INTERNAL_PROGRAM_ERROR;
+ }
+ }
+ virtual long getOperationsPerIteration(){
+ return countInputCodePoints;
+ }
+ const char * name;
+ int32_t buf_cap;
+ UErrorCode errorCode;
+ UConverter *cnv;
+};
+
+class UtfPerformanceTest : public UPerfTest{
+public:
+ UtfPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status) :UPerfTest(argc,argv,status){
+ getBuffer(inputLength, status);
+ u_strncpy(input, buffer, inputLength);
+ countInputCodePoints = u_countChar32(input, inputLength);
+ }
+
+ virtual UPerfFunction* runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ){
+ switch (index) {
+ case 0: name = "UTF_8"; if (exec) return Command::get("UTF-8", INTERMEDIATE_CAPACITY); break;
+ case 1: name = "UTF_8_SB"; if (exec) return Command::get("UTF-8",INTERMEDIATE_SMALL_CAPACITY); break;
+ case 2: name = "SCSU"; if (exec) return Command::get("SCSU", INTERMEDIATE_CAPACITY); break;
+ case 3: name = "SCSU_SB"; if (exec) return Command::get("SCSU", INTERMEDIATE_SMALL_CAPACITY); break;
+ case 4: name = "BOCU_1"; if (exec) return Command::get("BOCU-1", INTERMEDIATE_CAPACITY); break;
+ case 5: name = "BOCU_1_SB"; if (exec) return Command::get("BOCU-1",INTERMEDIATE_SMALL_CAPACITY); break;
+ default: name = ""; break;
+ }
+ return NULL;
+ }
+};
+
+
+int main(int argc, const char *argv[])
+{
+ UErrorCode status = U_ZERO_ERROR;
+ UtfPerformanceTest test(argc, argv, status);
+
+ if (U_FAILURE(status)){
+ printf("The error is %s\n", u_errorName(status));
+ return status;
+ }
+
+ if (test.run() == FALSE){
+ fprintf(stderr, "FAILED: Tests could not be run please check the "
+ "arguments.\n");
+ return -1;
+ }
+ return 0;
+}
diff --git a/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.vcproj b/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.vcproj
new file mode 100644
index 00000000000..7846addc619
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/perf/utfperf/utfperf.vcproj
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="gb2312"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="utfperf"
+ ProjectGUID="{E7728E98-0469-43F4-AF37-4529A3D52C6B}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\Debug/utfperf.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuucd.lib icutud.lib winmm.lib icutestd.lib"
+ OutputFile=".\Debug/utfperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\..\lib\"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\Debug/utfperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/utfperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ OptimizeForProcessor="2"
+ AdditionalIncludeDirectories="..\..\..\..\include;..\..\..\tools\toolutil;..\..\..\common;..\..\..\tools\ctestfw"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ PrecompiledHeaderFile=".\Release/utfperf.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuuc.lib icutu.lib icutest.lib winmm.lib "
+ OutputFile=".\Release/utfperf.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="..\..\..\..\lib\"
+ ProgramDatabaseFile=".\Release/utfperf.pdb"
+ SubSystem="1"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/utfperf.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath=".\utfperf.cpp">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu-xetex/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt b/Build/source/libs/icu-xetex/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt
index 18000626770..e980f37b977 100644
--- a/Build/source/libs/icu-xetex/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt
@@ -1,4103 +1,4335 @@
-0334 05A8;
-0334 06E7;
-0334 1D180;
-059E 0334;
-06D9 0334;
-1D168 0334;
-0332 0334;
-0334 0308 0301;
-0315 0334;
-0324 0334;
-033A 0334;
-034E 0334;
-035E 0334;
-05B0 0334;
-0334 FB1E;
-0334 0659;
-0334 0737;
-0334 0746;
-0334 10A0D;
-0334 17DD;
-0334 20D5;
-20EB 0334;
-0085 0062;
-2001 003F;
-2002 0041;
-202F 0062;
-0384 003F;
-00AF 0061;
-FE4C 0062;
-1FED 003F;
-1FCE 0334;
-1FCE 0062;
-1FFE 0062;
-FF3F 0061;
-309B 003F;
-058A 003F;
-FE32 0021;
-2053 003F;
-FF65 0061;
-060C 003F;
-FE51 0021;
-037E 0021;
-204F 003F;
-0589 003F;
-0707 003F;
-1366 003F;
-16EC 003F;
-001A 0021;
-0098 0021;
-05A4 0021;
-06DB 0021;
-200B 0021;
-FDD3 0021;
-1D167 0021;
-1D18A 0021;
-BFFFF 0021;
-E0038 0021;
-E0056 0021;
-E0074 0021;
-E0112 0021;
-E0130 0021;
-E014E 0021;
-E016C 0021;
-E018A 0021;
-E01A8 0021;
-E01C6 0021;
-E01E4 0021;
-0344 0021;
-0323 0021;
-034A 0021;
-0483 0021;
-FE76 0021;
-065B 0021;
-0748 0021;
-0C01 0021;
-0ECD 0021;
-302F 0021;
-20E9 0021;
-FF01 0062;
-0011 003F;
-008F 003F;
-059B 003F;
-0612 003F;
-0F82 003F;
-D801 003F;
-FE73 003F;
-1D17F 003F;
-7FFFE 003F;
-E002F 003F;
-E004D 003F;
-E006B 003F;
-E0109 003F;
-E0127 003F;
-E0145 003F;
-E0163 003F;
-E0181 003F;
-E019F 003F;
-E01BD 003F;
-E01DB 003F;
-0341 003F;
-031A 003F;
-033C 003F;
-0360 003F;
-064B 003F;
-FE7E 003F;
-073F 003F;
-0ABC 003F;
-0E4A 003F;
-17DD 003F;
-20E0 003F;
-003F 0061;
-0709 0041;
-FE52 0021;
-2024 0041;
-1362 0041;
-3002 003F;
-0965 0041;
-17D5 0041;
-1368 0041;
-2059 0041;
-2CFC 0041;
-103D0 0041;
-201B 0041;
-201D 0041;
-00AB 0041;
-247E 003F;
-2484 003F;
-2477 003F;
-0028 0041;
-249E 0041;
-24A4 0041;
-24AA 0041;
-24B0 0041;
-3200 0041;
-3203 0041;
-3206 0041;
-3208 0041;
-3218 0041;
-321B 0041;
-3224 0041;
-3238 0041;
-322F 0041;
-3231 0041;
-3237 0041;
-322E 0041;
-208E 0062;
-FF3D 0062;
-007D 0061;
-0F3D 0041;
-29FD 0041;
-2986 0062;
-298C 0041;
-2992 0041;
-2998 0041;
-2E0A 0041;
-2329 0041;
-300A 0062;
-300D 003F;
-300F 0062;
-FE5D 0061;
-3016 0062;
-301B 0041;
-00A9 0041;
-FF0A 0061;
-002F 0062;
-FF06 0061;
-FF03 0062;
-2031 0041;
-2027 0041;
-2034 0062;
-303D 0041;
-2050 0041;
-2E07 0041;
-2E11 0041;
-055A 0041;
-05C6 0041;
-070D 0041;
-0E5B 0041;
-0F09 0041;
-0F0D 0041;
-0F85 0041;
-17D7 0041;
-10A51 0041;
-0374 003F;
-02C4 0041;
-02CA 0041;
-02D2 0041;
-02DE 0041;
-02E9 0041;
-02F0 0041;
-02F6 0041;
-02FC 0041;
-1392 0041;
-1398 0041;
-A704 0041;
-A70A 0041;
-A710 0041;
-A716 0041;
-060F 0041;
-0BF4 0041;
-A828 0041;
-0F02 0041;
-0F1A 0041;
-0F34 0041;
-0FBF 0041;
-0FC5 0041;
-0FCC 0041;
-19E4 0041;
-19EA 0041;
-19F0 0041;
-19F6 0041;
-19FC 0041;
-2114 0041;
-2125 0041;
-2141 0041;
-FFE9 0021;
-219B 0062;
-21AE 0041;
-219C 0061;
-21A2 0061;
-21A8 0061;
-21AF 0061;
-21B5 0061;
-21BB 0061;
-21C1 0061;
-21C7 0061;
-21D0 0021;
-21D3 0041;
-21D8 003F;
-21DE 003F;
-21E4 003F;
-21EA 003F;
-21F0 003F;
-21F6 003F;
-21FC 003F;
-1D6DB 0021;
-2204 0334;
-1D735 003F;
-2209 0041;
-220E 0021;
-208A 0021;
-00F7 0021;
-FE64 0062;
-FE66 0061;
-226F 0061;
-00A6 0061;
-207B 0041;
-2217 0062;
-221D 0062;
-2223 003F;
-2229 0021;
-222E 0021;
-2234 0021;
-223A 0021;
-223E 0041;
-2247 0334;
-224A 0061;
-224F 0021;
-2255 0021;
-225B 0021;
-2262 003F;
-2265 0061;
-226A 0062;
-2273 0041;
-2280 0334;
-227C 0041;
-2284 0021;
-2288 0041;
-228D 0021;
-2291 0062;
-2296 003F;
-229C 003F;
-22AC 0334;
-22A6 0062;
-22AA 0021;
-22EA 0021;
-22EC 0041;
-22B9 0021;
-22BF 0021;
-22C5 0021;
-22CB 0021;
-22D1 0021;
-22D7 0021;
-22DD 0021;
-22E7 0021;
-22F1 0021;
-22F7 0021;
-22FD 0021;
-2303 0021;
-2309 0021;
-230F 0021;
-2315 0021;
-231B 0021;
-2321 0021;
-2327 0021;
-232F 0021;
-2335 0021;
-233B 0021;
-2341 0021;
-2347 0021;
-234D 0021;
-2353 0021;
-2359 0021;
-235F 0021;
-2365 0021;
-236B 0021;
-2371 0021;
-2377 0021;
-237D 0021;
-2383 0021;
-2389 0021;
-238F 0021;
-2395 0021;
-239B 0021;
-23A1 0021;
-23A7 0021;
-23AD 0021;
-23B3 0021;
-23B9 0021;
-23BF 0021;
-23C5 0021;
-23CB 0021;
-23D1 0021;
-23D7 0021;
-2401 0021;
-2407 0021;
-240D 0021;
-2413 0021;
-2419 0021;
-241F 0021;
-2425 0021;
-2444 0021;
-244A 0021;
-2504 0021;
-250A 0021;
-2510 0021;
-2516 0021;
-251C 0021;
-2522 0021;
-2528 0021;
-252E 0021;
-2534 0021;
-253A 0021;
-2540 0021;
-2546 0021;
-254C 0021;
-2552 0021;
-2558 0021;
-255E 0021;
-2564 0021;
-256A 0021;
-2570 0021;
-2576 0021;
-257C 0021;
-2582 0021;
-2588 0021;
-258E 0021;
-2594 0021;
-259A 0021;
-25A0 0021;
-25A5 0021;
-25AB 0021;
-25B1 0021;
-25B7 0021;
-25BD 0021;
-25C3 0021;
-25C9 0021;
-25CE 0021;
-25D4 0021;
-25DA 0021;
-25E0 0021;
-25E6 0021;
-25EC 0021;
-25F2 0021;
-25F8 0021;
-25FE 0021;
-2604 0021;
-260A 0021;
-2610 0021;
-2616 0021;
-261C 0021;
-2622 0021;
-2628 0021;
-262E 0021;
-263C 0021;
-2642 0021;
-2648 0021;
-264E 0021;
-2654 0021;
-265A 0021;
-2660 0021;
-2666 0021;
-266C 0021;
-2675 0021;
-267B 0021;
-2681 0021;
-2687 0021;
-2693 0021;
-2699 0021;
-26A2 0021;
-26A8 0021;
-26AE 0021;
-2703 0021;
-270C 0021;
-2712 0021;
-2718 0021;
-271E 0021;
-2724 0021;
-272B 0021;
-2731 0021;
-2737 0021;
-273D 0021;
-2743 0021;
-2749 0021;
-2751 0021;
-275B 0021;
-2763 0021;
-2769 0021;
-276F 0021;
-2775 0021;
-279C 0021;
-27A2 0021;
-27A8 0021;
-27AE 0021;
-27B5 0021;
-27BB 0021;
-27C2 0021;
-27D1 0021;
-27D7 0021;
-27DD 0021;
-27E3 0021;
-27E9 0021;
-27F3 0021;
-27F9 0021;
-27FF 0021;
-2905 0021;
-290B 0021;
-2911 0021;
-2917 0021;
-291D 0021;
-2923 0021;
-2929 0021;
-292F 0021;
-2935 0021;
-293B 0021;
-2941 0021;
-2947 0021;
-294D 0021;
-2953 0021;
-2959 0021;
-295F 0021;
-2965 0021;
-296B 0021;
-2971 0021;
-2977 0021;
-297D 0021;
-2999 0021;
-299F 0021;
-29A5 0021;
-29AB 0021;
-29B1 0021;
-29B7 0021;
-29BD 0021;
-29C3 0021;
-29C9 0021;
-29CF 0021;
-29D5 0021;
-29DB 0021;
-29E1 0021;
-29E7 0021;
-29ED 0021;
-29F3 0021;
-29F9 0021;
-2A01 0021;
-2A07 0021;
-2A0E 0021;
-2A14 0021;
-2A1A 0021;
-2A20 0021;
-2A26 0021;
-2A2C 0021;
-2A32 0021;
-2A38 0021;
-2A3E 0021;
-2A44 0021;
-2A4A 0021;
-2A50 0021;
-2A56 0021;
-2A5C 0021;
-2A62 0021;
-2A68 0021;
-2A6E 0021;
-2A77 0021;
-2A7D 0021;
-2A83 0021;
-2A89 0021;
-2A8F 0021;
-2A95 0021;
-2A9B 0021;
-2AA1 0021;
-2AA7 0021;
-2AAD 0021;
-2AB3 0021;
-2AB9 0021;
-2ABF 0021;
-2AC5 0021;
-2ACB 0021;
-2AD1 0021;
-2AD7 0021;
-2ADC 003F;
-2AE2 0041;
-2AE8 0041;
-2AEE 0041;
-2AF4 0041;
-2AFA 0041;
-2B00 0041;
-2B06 0041;
-2B0C 0041;
-2B12 0041;
-2CE9 0041;
-2804 0041;
-280A 0041;
-2810 0041;
-2816 0041;
-281C 0041;
-2822 0041;
-2828 0041;
-282E 0041;
-2834 0041;
-283A 0041;
-2840 0041;
-2846 0041;
-284C 0041;
-2852 0041;
-2858 0041;
-285E 0041;
-2864 0041;
-286A 0041;
-2870 0041;
-2876 0041;
-287C 0041;
-2882 0041;
-2888 0041;
-288E 0041;
-2894 0041;
-289A 0041;
-28A0 0041;
-28A6 0041;
-28AC 0041;
-28B2 0041;
-28B8 0041;
-28BE 0041;
-28C4 0041;
-28CA 0041;
-28D0 0041;
-28D6 0041;
-28DC 0041;
-28E2 0041;
-28E8 0041;
-28EE 0041;
-28F4 0041;
-28FA 0041;
-268A 0041;
-2630 0041;
-2636 0041;
-4DC4 0041;
-4DCA 0041;
-4DD0 0041;
-4DD6 0041;
-4DDC 0041;
-4DE2 0041;
-4DE8 0041;
-4DEE 0041;
-4DF4 0041;
-4DFA 0041;
-1D300 0041;
-1D306 0041;
-1D30C 0041;
-1D312 0041;
-1D318 0041;
-1D31E 0041;
-1D324 0041;
-1D32A 0041;
-1D330 0041;
-1D336 0041;
-1D33C 0041;
-1D342 0041;
-1D348 0041;
-1D34E 0041;
-1D354 0041;
-A493 0041;
-A499 0041;
-A49F 0041;
-A4A5 0041;
-A4AB 0041;
-A4B1 0041;
-A4B7 0041;
-A4BD 0041;
-A4C3 0041;
-10139 0041;
-1013F 0041;
-1017E 0041;
-10184 0041;
-1D000 0041;
-1D006 0041;
-1D00C 0041;
-1D012 0041;
-1D018 0041;
-1D01E 0041;
-1D024 0041;
-1D02A 0041;
-1D030 0041;
-1D036 0041;
-1D03C 0041;
-1D042 0041;
-1D048 0041;
-1D04E 0041;
-1D054 0041;
-1D05A 0041;
-1D060 0041;
-1D066 0041;
-1D06C 0041;
-1D072 0041;
-1D078 0041;
-1D07E 0041;
-1D084 0041;
-1D08A 0041;
-1D090 0041;
-1D096 0041;
-1D09C 0041;
-1D0A2 0041;
-1D0A8 0041;
-1D0AE 0041;
-1D0B4 0041;
-1D0BA 0041;
-1D0C0 0041;
-1D0C6 0041;
-1D0CC 0041;
-1D0D2 0041;
-1D0D8 0041;
-1D0DE 0041;
-1D0E4 0041;
-1D0EA 0041;
-1D0F0 0041;
-1D100 0041;
-1D106 0041;
-1D10C 0041;
-1D112 0041;
-1D118 0041;
-1D11E 0041;
-1D124 0041;
-1D12A 0041;
-1D130 0041;
-1D136 0041;
-1D13C 0041;
-1D142 0041;
-1D148 0041;
-1D14E 0041;
-1D154 0041;
-1D158 1D165 0334;
-1D163 003F;
-1D15A 0061;
-1D16C 0061;
-1D18F 0061;
-1D195 0061;
-1D19B 0061;
-1D1A1 0061;
-1D1A7 0061;
-1D1B1 0061;
-1D1B7 0061;
-1D1BF 0061;
-1D1BE 0061;
-1D1C5 0021;
-1D1CB 0021;
-1D1D1 0021;
-1D1D7 0021;
-1D1DD 0021;
-1D205 0021;
-1D20B 0021;
-1D211 0021;
-1D217 0021;
-1D21D 0021;
-1D223 0021;
-1D229 0021;
-1D22F 0021;
-1D235 0021;
-1D23B 0021;
-1D241 0021;
-2FF4 0021;
-2FFA 0021;
-31C4 0021;
-31CA 0021;
-3004 0021;
-303E 0021;
-FFFD 0021;
-1372 0021;
-1378 0021;
-2181 0021;
-10110 0021;
-10116 0021;
-1011C 0021;
-10122 0021;
-10128 0021;
-1012E 0021;
-10140 0021;
-10149 0021;
-10150 0021;
-10156 0021;
-10164 0021;
-1016A 0021;
-10170 0021;
-10177 0021;
-10A45 0021;
-0EC6 0021;
-3033 0041;
-FF70 0041;
-FFE0 0062;
-00A5 0061;
-0BF9 0062;
-20A3 0062;
-FFE6 0062;
-20AF 0062;
-20B5 0062;
-1040 0021;
-19D0 003F;
-2070 0041;
-19D0 0041;
-2070 0062;
-3358 0062;
-19D1 0021;
-00B9 003F;
-10159 003F;
-2155 0041;
-2469 0061;
-246A 0021;
-246B 0021;
-246C 0021;
-2495 003F;
-24EF 0061;
-33EF 0021;
-3369 0021;
-2472 0021;
-1D7D9 0061;
-104A1 0041;
-0F21 0041;
-FF11 0062;
+0334 05A9;
+0334 06E8;
+0334 1D181;
+059F 0334;
+06DA 0334;
+1B71 0334;
+1D18B 0334;
+030A 0334;
+030F 0334;
+0320 0334;
+0331 0334;
+034A 0334;
+035A 0334;
+1DC5 0334;
+0334 05B7;
+064F 0334;
+065E 0334;
+073C 0334;
+07EC 0334;
+10A0D 0334;
+17DD 0334;
+20D5 0334;
+20E5 0334;
+0085 003F;
+0020 003F;
+205F 0061;
+205F 0062;
+FF40 0041;
+FF3E 0061;
+FE49 0041;
+00A8 0021;
+02DD 0021;
+1FCE 0061;
+1FFE 0061;
+FF3F 003F;
+2017 0041;
+FF0D 0061;
+2011 003F;
+FE58 0061;
+3030 0041;
+FE50 0041;
+066C 0041;
+FF64 0041;
+037E 0041;
+FE13 0021;
+0703 0041;
+1361 0041;
+1805 0041;
+16ED 0041;
+0080 0021;
+009F 0021;
+05AB 0021;
+06E2 0021;
+1B72 0021;
+FDD1 0021;
+1D165 0021;
+1D188 0021;
+AFFFF 0021;
+E0036 0021;
+E0054 0021;
+E0072 0021;
+E0110 0021;
+E012E 0021;
+E014C 0021;
+E016A 0021;
+E0188 0021;
+E01A6 0021;
+E01C4 0021;
+E01E2 0021;
+0342 0021;
+0321 0021;
+0348 0021;
+1DC2 0021;
+05BC 0021;
+FC63 0021;
+073C 0021;
+0953 0021;
+0D83 0021;
+0F7F 0021;
+309A 0021;
+20EC 0021;
+0021 0062;
+0006 003F;
+0089 003F;
+0595 003F;
+0600 003F;
+06ED 003F;
+202B 003F;
+FE03 003F;
+1D170 003F;
+1D242 003F;
+E0020 003F;
+E003E 003F;
+E005C 003F;
+E007A 003F;
+E0118 003F;
+E0136 003F;
+E0154 003F;
+E0172 003F;
+E0190 003F;
+E01AE 003F;
+E01CC 003F;
+E01EA 003F;
+0328 003F;
+032B 003F;
+0351 003F;
+1DCA 003F;
+064D 003F;
+0657 003F;
+0744 003F;
+0A02 003F;
+10A0D 003F;
+17C9 003F;
+20D6 003F;
+2048 0021;
+00BF 0062;
+2CFA 0062;
+FE19 0041;
+06D4 0062;
+166E 0062;
+FE12 0062;
+A877 0062;
+17D5 0062;
+07F7 0062;
+1B5A 0062;
+205A 0062;
+2CFF 0062;
+1091F 0062;
+FF07 0062;
+203A 0062;
+201F 0062;
+208D 0021;
+2480 0061;
+2486 0061;
+2479 0061;
+249C 0021;
+24A0 0062;
+24A6 0062;
+24AC 0062;
+24B2 0062;
+3201 0062;
+3204 0062;
+3207 0062;
+321C 0062;
+3219 0062;
+3226 0062;
+323D 0062;
+323F 0062;
+3230 0062;
+322B 0062;
+3242 0062;
+207E 003F;
+FF3B 0041;
+007B 0041;
+FE38 0062;
+169C 0062;
+2984 0062;
+2988 0062;
+298E 0062;
+2994 0062;
+2E03 0062;
+2E0D 0062;
+3009 003F;
+FE3E 0062;
+FE42 0062;
+FE3B 0062;
+FE5E 003F;
+FE18 0062;
+FD3F 0062;
+FF20 003F;
+204E 0062;
+FF3C 003F;
+214B 0062;
+FF05 0041;
+2020 0062;
+204C 0062;
+2037 0021;
+203B 0062;
+2042 0062;
+2E0B 0062;
+2E13 0062;
+055F 0062;
+05F4 0062;
+180A 0062;
+0F05 0062;
+0FD0 0062;
+0F0F 0062;
+104C 0062;
+17D9 0062;
+10A51 0062;
+02B9 0061;
+02C4 0062;
+02CA 0062;
+02D2 0062;
+02DE 0062;
+02E9 0062;
+02F0 0062;
+02F6 0062;
+02FC 0062;
+1392 0062;
+1398 0062;
+A704 0062;
+A70A 0062;
+A710 0062;
+A716 0062;
+A721 0062;
+060F 0062;
+0BF3 0062;
+0BFA 0062;
+A82B 0062;
+0F15 0062;
+0F1D 0062;
+0F3E 0062;
+0FC2 0062;
+0FC9 0062;
+19E1 0062;
+19E7 0062;
+19ED 0062;
+19F3 0062;
+19F9 0062;
+19FF 0062;
+1B66 0062;
+1B75 0062;
+1B7B 0062;
+2118 0062;
+2129 0062;
+2144 0062;
+2190 0062;
+2193 0021;
+2196 0041;
+219E 0041;
+21A4 0041;
+21AA 0041;
+21B1 0041;
+21B7 0041;
+21BD 0041;
+21C3 0041;
+21C9 0041;
+21D1 003F;
+21CE 0041;
+21DA 0061;
+21E0 0061;
+21E6 0061;
+21EC 0061;
+21F2 0061;
+21F8 0061;
+21FE 0061;
+2202 0061;
+2205 0021;
+1D6FB 0041;
+220C 0021;
+2210 003F;
+FB29 0061;
+226E 0334;
+FF1D 003F;
+207C 0062;
+00AC 0041;
+007E 0021;
+2214 0021;
+221A 0021;
+2220 0021;
+2226 0021;
+222B 003F;
+222F 0062;
+2236 003F;
+2241 0334;
+2240 0062;
+2246 0021;
+224C 0041;
+2251 003F;
+2257 003F;
+225D 003F;
+2263 0062;
+2267 0021;
+2272 0338 0334;
+2276 0061;
+227B 0338 0334;
+227D 0061;
+2283 0021;
+2289 0061;
+228F 003F;
+22E3 0041;
+2298 0061;
+229E 0061;
+22A3 0021;
+22AD 003F;
+22AB 0061;
+22B3 0021;
+22ED 0061;
+22BB 003F;
+22C1 003F;
+22C7 003F;
+22CD 003F;
+22D3 003F;
+22D9 003F;
+22DF 003F;
+22E9 003F;
+22F3 003F;
+22F9 003F;
+22FF 003F;
+2305 003F;
+230B 003F;
+2311 003F;
+2317 003F;
+231D 003F;
+2323 003F;
+232B 003F;
+2331 003F;
+2337 003F;
+233D 003F;
+2343 003F;
+2349 003F;
+234F 003F;
+2355 003F;
+235B 003F;
+2361 003F;
+2367 003F;
+236D 003F;
+2373 003F;
+2379 003F;
+237F 003F;
+2385 003F;
+238B 003F;
+2391 003F;
+2397 003F;
+239D 003F;
+23A3 003F;
+23A9 003F;
+23AF 003F;
+23B5 003F;
+23BB 003F;
+23C1 003F;
+23C7 003F;
+23CD 003F;
+23D3 003F;
+23D9 003F;
+23DF 003F;
+23E5 003F;
+2403 003F;
+2409 003F;
+240F 003F;
+2415 003F;
+241B 003F;
+2421 003F;
+2440 003F;
+2446 003F;
+2501 003F;
+2506 003F;
+250C 003F;
+2512 003F;
+2518 003F;
+251E 003F;
+2524 003F;
+252A 003F;
+2530 003F;
+2536 003F;
+253C 003F;
+2542 003F;
+2548 003F;
+254E 003F;
+2554 003F;
+255A 003F;
+2560 003F;
+2566 003F;
+256C 003F;
+2572 003F;
+2578 003F;
+257E 003F;
+2584 003F;
+258A 003F;
+2590 003F;
+2596 003F;
+259C 003F;
+25A1 003F;
+25A7 003F;
+25AD 003F;
+25B3 003F;
+25B9 003F;
+25BF 003F;
+25C5 003F;
+FFEE 0021;
+25D0 003F;
+25D6 003F;
+25DC 003F;
+25E2 003F;
+25E8 003F;
+25EE 003F;
+25F4 003F;
+25FA 003F;
+2600 003F;
+2606 003F;
+260C 003F;
+2612 003F;
+2618 003F;
+261E 003F;
+2624 003F;
+262A 003F;
+2638 003F;
+263E 003F;
+2644 003F;
+264A 003F;
+2650 003F;
+2656 003F;
+265C 003F;
+2662 003F;
+2668 003F;
+2671 003F;
+2677 003F;
+267D 003F;
+2683 003F;
+2689 003F;
+2695 003F;
+269B 003F;
+26A4 003F;
+26AA 003F;
+26B0 003F;
+2704 003F;
+270D 003F;
+2713 003F;
+2719 003F;
+271F 003F;
+2725 003F;
+272C 003F;
+2732 003F;
+2738 003F;
+273E 003F;
+2744 003F;
+274A 003F;
+2752 003F;
+275C 003F;
+2764 003F;
+276A 003F;
+2770 003F;
+2794 003F;
+279D 003F;
+27A3 003F;
+27A9 003F;
+27AF 003F;
+27B6 003F;
+27BC 003F;
+27C3 003F;
+27C9 003F;
+27D4 003F;
+27DA 003F;
+27E0 003F;
+27E6 003F;
+27F0 003F;
+27F6 003F;
+27FC 003F;
+2902 003F;
+2908 003F;
+290E 003F;
+2914 003F;
+291A 003F;
+2920 003F;
+2926 003F;
+292C 003F;
+2932 003F;
+2938 003F;
+293E 003F;
+2944 003F;
+294A 003F;
+2950 003F;
+2956 003F;
+295C 003F;
+2962 003F;
+2968 003F;
+296E 003F;
+2974 003F;
+297A 003F;
+2980 003F;
+299C 003F;
+29A2 003F;
+29A8 003F;
+29AE 003F;
+29B4 003F;
+29BA 003F;
+29C0 003F;
+29C6 003F;
+29CC 003F;
+29D2 003F;
+29D8 003F;
+29DE 003F;
+29E4 003F;
+29EA 003F;
+29F0 003F;
+29F6 003F;
+29FE 003F;
+2A04 003F;
+2A0A 003F;
+2A11 003F;
+2A17 003F;
+2A1D 003F;
+2A23 003F;
+2A29 003F;
+2A2F 003F;
+2A35 003F;
+2A3B 003F;
+2A41 003F;
+2A47 003F;
+2A4D 003F;
+2A53 003F;
+2A59 003F;
+2A5F 003F;
+2A65 003F;
+2A6B 003F;
+2A71 003F;
+2A7A 003F;
+2A80 003F;
+2A86 003F;
+2A8C 003F;
+2A92 003F;
+2A98 003F;
+2A9E 003F;
+2AA4 003F;
+2AAA 003F;
+2AB0 003F;
+2AB6 003F;
+2ABC 003F;
+2AC2 003F;
+2AC8 003F;
+2ACE 003F;
+2AD4 003F;
+2ADA 003F;
+2ADF 0062;
+2AE5 0062;
+2AEB 0062;
+2AF1 0062;
+2AF7 0062;
+2AFD 0062;
+2B03 0062;
+2B09 0062;
+2B0F 0062;
+2B15 0062;
+2B20 0062;
+2CE7 0062;
+2802 0062;
+2808 0062;
+280E 0062;
+2814 0062;
+281A 0062;
+2820 0062;
+2826 0062;
+282C 0062;
+2832 0062;
+2838 0062;
+283E 0062;
+2844 0062;
+284A 0062;
+2850 0062;
+2856 0062;
+285C 0062;
+2862 0062;
+2868 0062;
+286E 0062;
+2874 0062;
+287A 0062;
+2880 0062;
+2886 0062;
+288C 0062;
+2892 0062;
+2898 0062;
+289E 0062;
+28A4 0062;
+28AA 0062;
+28B0 0062;
+28B6 0062;
+28BC 0062;
+28C2 0062;
+28C8 0062;
+28CE 0062;
+28D4 0062;
+28DA 0062;
+28E0 0062;
+28E6 0062;
+28EC 0062;
+28F2 0062;
+28F8 0062;
+28FE 0062;
+268E 0062;
+2634 0062;
+4DC2 0062;
+4DC8 0062;
+4DCE 0062;
+4DD4 0062;
+4DDA 0062;
+4DE0 0062;
+4DE6 0062;
+4DEC 0062;
+4DF2 0062;
+4DF8 0062;
+4DFE 0062;
+1D304 0062;
+1D30A 0062;
+1D310 0062;
+1D316 0062;
+1D31C 0062;
+1D322 0062;
+1D328 0062;
+1D32E 0062;
+1D334 0062;
+1D33A 0062;
+1D340 0062;
+1D346 0062;
+1D34C 0062;
+1D352 0062;
+A491 0062;
+A497 0062;
+A49D 0062;
+A4A3 0062;
+A4A9 0062;
+A4AF 0062;
+A4B5 0062;
+A4BB 0062;
+A4C1 0062;
+10137 0062;
+1013D 0062;
+1017C 0062;
+10182 0062;
+10188 0062;
+1D004 0062;
+1D00A 0062;
+1D010 0062;
+1D016 0062;
+1D01C 0062;
+1D022 0062;
+1D028 0062;
+1D02E 0062;
+1D034 0062;
+1D03A 0062;
+1D040 0062;
+1D046 0062;
+1D04C 0062;
+1D052 0062;
+1D058 0062;
+1D05E 0062;
+1D064 0062;
+1D06A 0062;
+1D070 0062;
+1D076 0062;
+1D07C 0062;
+1D082 0062;
+1D088 0062;
+1D08E 0062;
+1D094 0062;
+1D09A 0062;
+1D0A0 0062;
+1D0A6 0062;
+1D0AC 0062;
+1D0B2 0062;
+1D0B8 0062;
+1D0BE 0062;
+1D0C4 0062;
+1D0CA 0062;
+1D0D0 0062;
+1D0D6 0062;
+1D0DC 0062;
+1D0E2 0062;
+1D0E8 0062;
+1D0EE 0062;
+1D0F4 0062;
+1D104 0062;
+1D10A 0062;
+1D110 0062;
+1D116 0062;
+1D11C 0062;
+1D122 0062;
+266E 0062;
+1D12E 0062;
+1D134 0062;
+1D13A 0062;
+1D140 0062;
+1D146 0062;
+1D14C 0062;
+1D152 0062;
+1D157 0041;
+1D161 0021;
+1D163 0062;
+1D16A 0041;
+1D18D 0041;
+1D193 0041;
+1D199 0041;
+1D19F 0041;
+1D1A5 0041;
+1D1AF 0041;
+1D1B5 0041;
+1D1BD 0021;
+1D1BC 0021;
+1D1C3 003F;
+1D1C9 003F;
+1D1CF 003F;
+1D1D5 003F;
+1D1DB 003F;
+1D203 003F;
+1D209 003F;
+1D20F 003F;
+1D215 003F;
+1D21B 003F;
+1D221 003F;
+1D227 003F;
+1D22D 003F;
+1D233 003F;
+1D239 003F;
+1D23F 003F;
+2FF2 003F;
+2FF8 003F;
+31C2 003F;
+31C8 003F;
+31CE 003F;
+3020 003F;
+327F 003F;
+0BF1 003F;
+1376 003F;
+137C 003F;
+10323 003F;
+10115 003F;
+1011B 003F;
+10121 003F;
+10127 003F;
+1012D 003F;
+10133 003F;
+10147 003F;
+1014E 003F;
+10155 003F;
+10163 003F;
+10169 003F;
+1016F 003F;
+10176 003F;
+10917 003F;
+10A47 003F;
+1245B 003F;
+12461 003F;
+1D36D 003F;
+02D1 003F;
+3032 0061;
+309D 0062;
+00A2 0021;
+00A3 0041;
+0AF1 0021;
+20A2 0021;
+20A9 0021;
+20AE 0021;
+20B4 0021;
+0BE6 0021;
+07C0 003F;
+1D7E2 0061;
+0AE6 0061;
+1B50 0061;
+0CE6 0062;
+2780 0021;
+3021 0021;
+2081 003F;
+10158 003F;
+2153 0062;
+24FE 003F;
+32C9 003F;
+32CA 003F;
+32CB 003F;
+3365 003F;
+24EF 0021;
+2497 0061;
+2470 0041;
+33F1 003F;
+336B 003F;
+2081 0061;
+0D67 0061;
+10159 0061;
+1D7CF 0062;
0ED1 0062;
-3359 0062;
-19D2 0021;
-2082 003F;
-1015E 003F;
-24F4 0041;
-3252 0061;
-3254 0061;
-33F9 0061;
-33FC 0061;
-2082 0041;
-1948 0041;
-1015E 0041;
-0C68 0062;
-32C1 0062;
-0BE9 0021;
-2083 003F;
-248A 0061;
-325B 0061;
-32B1 0061;
-1D7EF 0041;
-0A69 0061;
-17F3 0061;
-09F6 0062;
-32C2 0062;
-0BEA 0021;
-2084 003F;
-248B 0061;
-32B9 0061;
-FF14 0061;
-136C 0061;
-0ED4 0061;
-2783 0062;
-10A43 0062;
-0665 0021;
-10321 0021;
-0E55 003F;
-215D 0062;
-2075 0061;
-194B 0061;
-10148 0041;
-0C6B 0062;
-32C4 0062;
-0C6C 0021;
-06F6 003F;
-0036 0041;
-06F6 0041;
-0ED6 0041;
-2086 0062;
-33E5 0062;
-09ED 0021;
-2786 003F;
-248E 003F;
-277C 0041;
-0CED 0041;
-1D7DF 0062;
-1047 0062;
-277D 0021;
-0038 003F;
-0ED8 003F;
-277D 0061;
-0BEE 0061;
-1010E 0061;
-19D8 0062;
-1D7EB 0021;
-17E9 0021;
-0CEF 003F;
-1D7EB 0041;
-0A6F 0041;
-17F9 0041;
-0BEF 0062;
-3361 0062;
-0081 0061;
-034F 0061;
-05AC 0061;
-06E3 0061;
-202D 0061;
-FE05 0061;
-1D172 0061;
-1D244 0061;
-E0022 0061;
-E0040 0061;
-E005E 0061;
-E007C 0061;
-E011A 0061;
-E0138 0061;
-E0156 0061;
-E0174 0061;
-E0192 0061;
-E01B0 0061;
-E01CE 0061;
-E01EC 0061;
-001B 0041;
-0099 0041;
-05A5 0041;
-06DC 0041;
-200C 0041;
-FDD4 0041;
-1D168 0041;
-1D18B 0041;
-CFFFE 0041;
-E0039 0041;
-E0057 0041;
-E0075 0041;
-E0113 0041;
-E0131 0041;
-E014F 0041;
-E016D 0041;
-E018B 0041;
-E01A9 0041;
-E01C7 0041;
-E01E5 0041;
-00C0 0334;
-0102 0334 0303;
-00C2 0334 0340;
-0061 030A 0301 0334;
-0227 0334;
-0061 030F 0334;
-0041 0323 0334 0302;
-030C 0061;
-030E 0061;
-031F 0061;
-0330 0061;
-0345 0061;
-0355 0061;
-0362 0061;
-05B6 0061;
-FE72 0061;
-FCF2 0041;
-0656 0061;
-0734 0061;
-0743 0061;
-0954 0061;
-0B3C 0061;
-A80B 0061;
-0EC8 0061;
-17C8 0061;
-302A 0061;
-20D5 0061;
-20E4 0061;
-1D656 0021;
-1EAE 0021;
-0227 0021;
-1D51E 003F;
-00C1 003F;
-00E4 003F;
-33C2 0061;
-1D552 0061;
-1D4D0 0061;
-1D2C 0061;
-00E2 0061;
-01FB 0061;
-0100 0061;
-0061 0062;
-1D63C 0062;
-1EA8 0062;
-1EB7 0062;
-01FD 003F;
-1E9A 0021;
-1D02 0041;
-0252 0021;
-0019 0062;
-0097 0062;
-05A3 0062;
-06DA 0062;
-180E 0062;
-FDD2 0062;
-1D166 0062;
-1D189 0062;
-BFFFE 0062;
-E0037 0062;
-E0055 0062;
-E0073 0062;
-E0111 0062;
-E012F 0062;
-E014D 0062;
-E016B 0062;
-E0189 0062;
-E01A7 0062;
-E01C5 0062;
-E01E3 0062;
-0062 0334 0331;
-030E 0062;
-0330 0062;
-0356 0062;
-05B7 0062;
-FE7D 0062;
-0735 0062;
-09BC 0062;
-10A0D 0062;
-17C9 0062;
-20D6 0062;
-1D553 0021;
-1E07 0021;
-1D609 003F;
-1D44F 0041;
-1D671 0061;
-1E06 0061;
-1D505 0062;
-0180 0041;
-0253 0062;
-0043 0334 030C;
-1D484 0021;
-0107 0021;
-0043 003F;
-2105 0021;
-1D588 0061;
-1D436 0061;
-0106 0041;
-1D41C 0062;
-24B8 0062;
-33A0 0062;
-0187 0021;
-1E0A 0334;
-217E 0021;
-1D60B 0021;
-1D485 003F;
-1D48 003F;
-1D485 0061;
-FF24 0041;
-1D673 0041;
-1E0E 0041;
-1D5F1 0062;
-1E10 0062;
-3378 003F;
-01F2 0061;
-1D05 0041;
-018A 003F;
-00E9 0334;
-0045 0334 0302 0341;
-0045 030C 0334;
-0115 0334 0327;
-0112 0300 0334;
-1EC7 0334;
-1D58A 0021;
-0115 0021;
-1E15 0021;
-1D626 003F;
-00CA 003F;
-1EBA 003F;
-1D626 0061;
-1D570 0061;
-00C9 0041;
-011B 0041;
-0112 0041;
-1E19 0041;
-1D46C 0062;
-011B 0062;
-1E19 0062;
-01DD 0061;
-1D95 003F;
-0258 003F;
-1D4C 0061;
-0066 0021;
-1D675 0021;
-1D571 003F;
-1D4BB 0041;
-1D405 0041;
-1D4BB 0062;
-FB00 0021;
-02A9 0021;
-0047 0334 0301;
-0047 0327 0334;
-1D4A2 0021;
-1D420 003F;
-1D33 003F;
-1D65C 0061;
-1D5DA 0061;
-011E 0041;
-1D454 0062;
-01F5 0062;
-33C9 003F;
-01E4 0061;
-0194 0021;
-0068 030C 0334;
-0068 032E 0334;
-210B 0021;
-1E96 0021;
-1D573 003F;
-FF48 0041;
-24D7 0041;
-1D677 0041;
-1E24 0041;
-1D5F5 0062;
-1E22 0062;
-3390 0062;
-0267 0062;
-0049 0306 0334;
-0069 0334 0303;
-0049 0334 030F;
-1D48A 0021;
-1D62 0021;
-1ECA 0021;
-1D470 003F;
-012F 003F;
-1D55A 0061;
-2110 0061;
-1D62 0061;
-1E2E 0061;
-1ECA 0061;
-2111 0062;
-0129 0062;
-2162 003F;
-2163 003F;
-1DA6 003F;
-0197 0062;
-0196 0062;
-1D65F 0021;
-1D4BF 003F;
-0134 003F;
-1D5F7 0041;
-1D575 0041;
-1D5F7 0062;
-0237 0061;
-1DA1 0062;
-1E33 0334;
-FF2B 0021;
-1D458 003F;
-1D4F 003F;
-1D458 0041;
-1D612 0061;
-0137 0061;
-1D660 0062;
-1E35 0062;
-3398 0041;
-33CF 0041;
-0198 003F;
-004C 0334 0327;
-217C 0021;
-1D647 0021;
-1D529 003F;
-013E 003F;
-2113 0061;
-004C 0061;
-1D647 0041;
-1E3C 0061;
-216C 0062;
-1E3A 0062;
-33D2 0061;
-1DAB 0041;
-1D85 003F;
-019B 0061;
-006D 0021;
-1D5E0 0021;
-24DC 003F;
-33A8 0061;
-1D55E 0061;
-1D440 0061;
-1E3F 0061;
-1D5FA 0062;
-33D4 0021;
-339C 0021;
-33B7 0021;
-1D6F 0021;
-006E 0334 0340;
-006E 0323 0334;
-1D62F 0021;
-1E45 0021;
-1D441 003F;
-1E49 003F;
-1D663 0041;
-1D5E1 0041;
-0146 0061;
-1D593 0062;
-0147 0062;
-01CC 0062;
-0274 003F;
-0272 0041;
-1DAF 0041;
-00D8 0341 0334;
-006F 0302 0334 0341;
-1ED4 0334;
-004F 0303 0334;
-004F 0307 0334;
-014C 0334;
-006F 0334 0311;
-1EE1 0334;
-1ECD 0334 0302;
-1D4DE 0021;
-01D2 0021;
-1E53 0021;
-1D428 003F;
-1D52 003F;
-1E4C 003F;
-01A0 003F;
-1D5FC 0061;
-1D57A 0061;
-00F3 0041;
-1ED4 0041;
-022D 0041;
-014C 0041;
-1EDD 0041;
-1D4F8 0062;
-00F3 0062;
-022D 0062;
-1EDD 0062;
-1D0F 0041;
-0186 0061;
-1D16 0062;
-0277 0041;
-0070 0307 0334;
-1D513 0021;
-0050 003F;
-FF50 0041;
-0050 0041;
-24C5 0041;
-1D52D 0062;
-1E56 0062;
-33B0 0062;
-1D71 0062;
-1D492 0021;
-1D42A 003F;
-0071 0061;
-24E0 0061;
-1D64C 0041;
-1D5B0 0062;
-0072 0334 030C;
-0072 0334 0323;
-1D563 0021;
-0158 0021;
-1D69B 003F;
-0210 003F;
-1D493 0041;
-211B 0041;
-1E59 0041;
-33AE 003F;
-FF32 0062;
-1E5B 0062;
-1D72 0062;
-027B 0061;
-027F 0062;
-0053 0302 0334;
-0073 0334 0323;
-1D564 0021;
-015C 0021;
-1D668 003F;
-1E61 003F;
-1D460 0041;
-1D682 0061;
-0161 0061;
-1E9B 0061;
-1D61A 0062;
-2120 0041;
-1D74 0041;
-01A9 0061;
-0286 0041;
-0074 0334 0326;
-1D5CD 0021;
-0162 0021;
-1D47B 003F;
-0074 0041;
-1D69D 0041;
-1D61B 0041;
-021A 0041;
-1D47B 0062;
-02A8 003F;
-01BE 0041;
-1D75 003F;
-01AE 0061;
-0075 0306 0334;
-0075 0308 0334 0341;
-00DC 0304 0334;
-016B 0334;
-0075 031B 0334;
-0075 0309 031B 0334;
-1E77 0334;
-FF35 0021;
-00FC 0021;
-1EE9 0021;
-1D602 003F;
-00FB 003F;
-0215 003F;
-1D42E 0061;
-FF35 0061;
-1D58 0061;
-00FC 0061;
-1E78 0061;
-1EE9 0061;
-1E76 0061;
-1D518 0062;
-01DA 0062;
-1EED 0062;
-1D1D 0062;
-1D99 0041;
-019C 0061;
-01B1 0061;
-1D42F 0021;
-24CB 0021;
-1D47D 003F;
-2174 0041;
-0056 0041;
-1D685 0041;
-1D66B 0062;
-2175 0061;
-1D20 0062;
-1DBA 0062;
-0057 0334 0308;
-0057 0021;
-1E88 0021;
-1D652 003F;
-1D5D0 0061;
-1D54E 0061;
-1E81 0061;
-1D568 0062;
-0175 0062;
-0078 0307 0334;
-1D44B 0021;
-1D59D 003F;
-0078 0061;
-1D605 0041;
-1D51B 0041;
-1D501 0062;
-1E8C 0062;
-0079 0334 0341;
-0079 0334 0303;
-FF59 0021;
-24CE 0021;
-1D59E 003F;
-1E99 003F;
-1D432 0041;
-1D654 0061;
-0176 0041;
-1D466 0062;
-00FD 0062;
-01B3 0061;
-007A 0323 0334;
-2124 0021;
-1D467 003F;
-017A 003F;
-1D467 0041;
-1D689 0061;
-017C 0061;
-2124 0062;
-018D 0041;
-0224 003F;
-0240 0041;
-1DBE 0062;
-0293 0061;
-01F7 0041;
-0185 003F;
-0149 0061;
-02C1 0061;
-0296 0061;
-0298 0061;
-03B1 0343 0301 0334 0345;
-1F0E 0334;
-1F09 0301 0334;
-1F09 0334 0342;
-1FB3 0341 0334;
-0391 0334 0304;
-1F06 0021;
-1FB0 0021;
-1F06 003F;
-1FB0 003F;
-1D756 0041;
-1F80 0061;
-1F8F 0061;
-1FB1 0061;
-1F06 0062;
-1FB0 0062;
-0392 003F;
-1D6E3 0041;
-0393 0021;
-1D738 0061;
-1D6FE 0062;
-1D5F 0021;
-1D71F 0061;
-1F18 0334;
-1F19 0334 0341;
-1D716 0021;
-1FC8 0021;
-1F1B 003F;
-1D7C4 0041;
-1F15 0041;
-1D7C4 0062;
-03DD 0041;
-1D73B 003F;
-1D721 0041;
-0397 0343 0334 0301;
-0397 0313 0342 0334;
-1F29 0334 0301;
-1F27 0334;
-03B7 0341 0334 0345;
-1D702 0021;
-1F95 0021;
-0397 003F;
-1F93 003F;
-1D776 0041;
-1F92 0061;
-1F2B 0061;
-1FCA 0061;
-1F22 0062;
-1FC4 0062;
-1D797 0021;
-03D1 0061;
-1D723 0061;
-0398 0062;
-1FBE 0313 0300 0334;
-1F33 0334;
-0399 0334 0340;
-1FBE 0308 0342 0334;
-1F3E 0021;
-1D704 003F;
-1F76 003F;
-0399 0041;
-1F39 0041;
-1FD6 0041;
-1D798 0062;
-1FD2 0062;
-1D6DE 003F;
-1D6DE 0041;
-1D78C 0062;
-1D77A 003F;
-1D760 0041;
-1D761 0021;
-039C 0041;
-338C 003F;
-33BC 003F;
-1D6CE 0061;
-1D6EE 0062;
-1D6CF 0061;
-1D6EF 0062;
-1F41 0334;
-03BF 0340 0334;
-03CC 0021;
-03CC 003F;
-1F40 0061;
-038C 0041;
-03CC 0062;
-1D6E1 003F;
-1D7C9 0061;
-1D6E1 0062;
-03FA 0062;
-1FEC 0334;
-1D754 003F;
-1D6E0 0041;
-03F1 0062;
-03FC 0062;
-1D782 003F;
-1D748 0041;
-1D782 0062;
-1D783 0021;
-1D783 0041;
-03C5 0313 0301 0334;
-03A5 0314 0334 0340;
-03A5 0340 0334;
-03C5 0334 0308 0342;
-1F5B 0021;
-1D6BC 003F;
-03B0 003F;
-1D76A 0041;
-038E 0061;
-1FE1 0061;
-1F7B 0062;
-03A6 0021;
-03D5 0061;
-1D6F7 0041;
-1D712 0021;
-1D74C 0061;
-03A7 0062;
-1D76D 003F;
-1D787 0062;
-03C9 0343 0345 0301 0334;
-2126 0343 0342 0334;
-03A9 0314 0341 0334;
-03A9 0314 0334 0342;
-1F7D 0345 0334;
-1D714 0021;
-1F6D 0021;
-1D7C2 003F;
-1F63 003F;
-1D714 0041;
-1F62 0061;
-1FAD 0061;
-1FF4 0061;
-1F68 0062;
-1FA9 0062;
-03F7 0041;
-2C84 0041;
-2CB6 0041;
-2C8E 0041;
-2C94 0041;
-2C99 003F;
-2CBD 003F;
-2CA1 003F;
-2CA7 003F;
-2CAD 003F;
-2CBF 003F;
-2CC3 003F;
-03E5 003F;
-03E9 003F;
-2CCF 003F;
-2CD5 003F;
-03ED 003F;
-2CDD 003F;
-2CB5 003F;
-2CE3 003F;
-0410 0306 0021;
-0410 0308 0021;
-04D9 0001 0308 0061;
-04D9 0308 0062;
-0412 0061;
-0493 003F;
-0434 003F;
-0503 003F;
-0433 0591 0301 0061;
-0498 0061;
-0435 0061;
-0435 0306 003F;
-0436 0306 0334;
-04DD 0334;
-0497 003F;
-0437 0308 0334;
-0455 0021;
-0438 0300 0334;
-045D 0061;
-04E5 0334;
-0456 003F;
-0406 0308 0061;
-0418 0306 0061;
-041A 0001 0301 0061;
-04A0 0061;
-041B 0061;
-0508 0021;
-041D 0021;
-04A2 0061;
-040A 0061;
-041E 0334 0308;
-04E9 0061;
-04E8 1D165 0308 0061;
-0481 003F;
-0441 003F;
-0442 003F;
-045B 003F;
-043A 0591 0301 0061;
-0443 0021;
-0423 0306 0334;
-0423 0334 0308;
-0423 0334 030B;
-04AF 0061;
-0444 0061;
-04BB 0061;
-047D 0061;
-04B5 0061;
-0427 0308 003F;
-04CC 003F;
-04BF 003F;
-0449 003F;
-044B 0308 0334;
-044C 0021;
-044D 0021;
-044D 0308 0041;
-044F 0062;
-046B 0062;
-046F 0062;
-0475 0001 030F 0061;
-0475 030F 0062;
-2C01 0021;
-2C04 0021;
-2C07 0021;
-2C0A 0021;
-2C0D 0021;
-2C10 0021;
-2C13 0021;
-2C16 0021;
-2C19 0021;
-2C1C 0021;
-2C1F 0021;
-2C22 0021;
-2C25 0021;
-2C28 0021;
-2C2B 0021;
-2C2E 0021;
-10A1 0021;
-10A3 0021;
-10A5 0021;
-10C1 0021;
-10A8 0021;
-10AA 0021;
-10FC 0061;
-10DD 003F;
-10DF 003F;
-10E1 003F;
-10F3 003F;
-10E4 003F;
-10E6 003F;
-10E8 003F;
-10EA 003F;
-10EC 003F;
-10EE 003F;
-10EF 003F;
-10F5 003F;
-10F9 003F;
-0533 0021;
-0587 003F;
-0538 0061;
-053B 0061;
-053E 0061;
-0541 0061;
-0544 0061;
-0545 0061;
-0548 0061;
-054B 0061;
-054E 0061;
-0551 0021;
-0554 0021;
-0559 003F;
-FB21 0041;
-FB31 003F;
-2137 0062;
-FB34 0021;
-FB35 0041;
-05D7 0041;
-FB1D 0041;
-05DA 0021;
-FB3C 0334;
-FB26 0041;
-05E1 0021;
-05E3 0021;
-05E6 003F;
-FB48 0021;
-05E9 0021;
-05EA 0334 05BC;
-FE80 0061;
-0627 0653 0062;
-0672 0061;
-0648 0591 0654 0061;
-FE88 0041;
-064A 1D165 0654 0061;
-FC00 003F;
-FC65 0041;
-FCE0 003F;
-FBF2 003F;
-FBF9 0021;
-FC69 0062;
-FE8E 0041;
-FDF2 0062;
-FE8F 0062;
-FC9E 0061;
-FC9F 0041;
-FC6E 0061;
-FB55 0061;
-FB56 0041;
-FB5A 0062;
-0755 0062;
-FE95 003F;
-FD50 0062;
-FD51 0062;
-FDA1 0062;
-FC0E 0062;
-FC73 0062;
-FC10 0062;
-FC11 0062;
-FC12 0062;
-FC14 0062;
-FB5E 0021;
-067D 0062;
-FE9D 0021;
-FC15 0062;
-FD59 0061;
-FD1E 0061;
-FB76 0062;
-FB7A 0021;
-FB7E 0021;
-FEA1 003F;
-FDBF 0062;
-FCFF 0062;
-FEA5 0041;
-FC1B 0062;
-0682 0062;
-FEA9 0062;
-FB89 0041;
-FB85 0041;
-FB87 0041;
-075A 0062;
-FDFC 0062;
-FB8C 0062;
-0697 0062;
-075B 0062;
-FEB1 0041;
-FD5E 0062;
-FD36 0041;
-FCE7 003F;
-FD63 0061;
-FD18 0061;
-FEB5 0062;
-FD2E 003F;
-FDAA 0062;
-FD0D 0062;
-FD6A 0062;
-FCFD 0062;
-06FA 0062;
-FEB9 0041;
-FDA9 0062;
-FDF9 0062;
-FD21 0061;
-FEC0 0061;
-FC23 0062;
-FD6F 0062;
-FD07 0062;
-FEC1 0021;
-FC26 0062;
-FD73 0062;
-FEC5 0021;
-FD3B 0041;
-FEC9 0041;
-FDF7 0062;
-FDB6 0062;
-FECD 003F;
-FCBD 0061;
-FCF9 0062;
-075E 0062;
-FED1 0062;
-FC2F 0062;
-FC7C 0061;
-06A3 0062;
-06A5 0062;
-0760 0062;
-FED5 0041;
-FC34 0062;
-FC35 0062;
-FED9 003F;
-FCC4 0061;
-FCC7 003F;
-FC3C 0061;
-FC3D 0062;
-FB8E 0041;
-FBD3 003F;
-FB92 003F;
-FB9A 003F;
-FB96 003F;
-0763 0062;
-FEDD 0062;
-FEF9 0062;
-FD84 0062;
-FDB5 0061;
-FD86 0061;
-FD88 0061;
-FC87 0061;
-076A 0062;
-06FE 0062;
-FD8D 0062;
-FDF4 0062;
-FDB9 0062;
-FC4A 0062;
-FEE5 0041;
-FD98 0061;
-FD95 0062;
-FC8B 0062;
-FD9A 0062;
-FC8F 0061;
-FBA0 003F;
-06B9 0062;
-FEEB 0061;
-FCD8 0061;
-FBAA 0021;
-06C1 003F;
-06FF 003F;
-FEED 0021;
-06C4 0061;
-06C6 0062;
-FBDB 0021;
-06CA 0061;
-0649 003F;
-FEF3 0021;
-0678 003F;
-FDAE 003F;
-FC93 003F;
-FC94 003F;
-FC5A 0061;
-06CD 003F;
-FBE6 0062;
-06D3 0061;
-0713 003F;
-0717 0041;
-071B 0062;
-0721 0041;
-0726 0062;
-072C 0041;
-0783 0041;
-07A2 0041;
-078B 0041;
-078D 0041;
-079E 0041;
-0795 0041;
-07A8 0041;
-07AE 0041;
-2D33 0041;
-2D39 0041;
-2D3F 0041;
-2D45 0041;
-2D4B 0041;
-2D51 0041;
-2D57 0041;
-2D5D 0041;
-2D62 0041;
-1202 0041;
-1208 0041;
-120E 0041;
-1213 0041;
-1219 0041;
-121F 0041;
-1220 0041;
-1226 0041;
-122C 0041;
-1231 0041;
-1237 0041;
-123C 0041;
-1241 0041;
-1247 0041;
-1250 0041;
-1256 0041;
-1260 0041;
-1266 0041;
-2D85 0041;
-126D 0041;
-1273 0041;
-1278 0041;
-127E 0041;
-1283 0041;
-128A 0041;
-1292 0041;
-2D88 0041;
-129D 0041;
-12A2 0041;
-2D8A 0041;
-12AD 0041;
-12B4 0041;
-12BC 0041;
-12C4 0041;
-12CC 0041;
-12D2 0041;
-12D9 0041;
-12DF 0041;
-12E4 0041;
-12EA 0041;
-12F0 0041;
-12F6 0041;
-12FB 0041;
-1300 0041;
-1306 0041;
-130B 0041;
-1312 0041;
-131A 0041;
-2D93 0041;
-1322 0041;
-2D8F 0041;
-132D 0041;
-1332 0041;
-2D91 0041;
-133D 0041;
-1343 0041;
-1349 0041;
-134F 0041;
-1351 0041;
-1357 0041;
-1358 0041;
-2DA3 0041;
-2DAA 0041;
-2DB1 0041;
-2DB8 0041;
-2DBE 0041;
-2DC5 0041;
-2DCC 0041;
-2DD3 0041;
-2DDA 0041;
-0904 0041;
-090A 0041;
-090E 0041;
-0914 0041;
-095A 0334;
-091B 0062;
-0920 003F;
-0923 0021;
-0928 003F;
-092C 0062;
-0931 003F;
-0936 0021;
-093E 0021;
-0944 0021;
-0948 0021;
-094D 0041;
-098A 0041;
-0990 0041;
-0998 0041;
-099E 0041;
-09A2 003F;
-09A6 0061;
-09AD 0061;
-09F0 0062;
-09B9 0062;
-09C2 0062;
-09C7 0591 09D7 0061;
-09CD 003F;
-0A13 003F;
-0A07 003F;
-0A39 0041;
-0A5A 0041;
-0A1C 0061;
-0A21 0062;
-0A27 0062;
-0A2D 003F;
-0A32 0062;
-0A41 0041;
-0A4D 003F;
-0A89 003F;
-0A8D 003F;
-0A95 003F;
-0A9B 003F;
-0AA1 003F;
-0AA7 003F;
-0AAE 003F;
-0AB6 003F;
-0ABF 003F;
-0AE2 003F;
-0ACB 003F;
-0B07 0062;
-0B0C 0062;
-0B15 0062;
-0B1B 0062;
-0B5C 0021;
-0B24 0041;
-0B2B 0041;
-0B30 0041;
-0B37 0041;
-0B40 0041;
-0B47 1D165 0B57 0061;
-0B4C 0062;
-0B86 0061;
-0B8F 0061;
-0B94 0062;
-0B9F 0062;
-0BAE 0062;
-0BB4 0062;
-0BBE 0062;
-0BC6 0591 0BD7 0061;
-0BCB 0061;
-0C05 0041;
-0C0B 0041;
-0C10 0041;
-0C17 0041;
-0C1D 0041;
-0C23 0041;
-0C2A 0041;
-0C30 0041;
-0C37 0041;
-0C41 0041;
-0C48 0334;
-0C4D 0021;
-0C87 003F;
-0C8C 003F;
-0C93 003F;
-0C99 003F;
-0C9F 003F;
-0CA5 003F;
-0CAC 003F;
-0CB2 003F;
-0CB3 003F;
-0CC0 003F;
-0CC6 0041;
-0CC6 0CD6 0041;
-0CCA 0CD5 0041;
-0D05 0041;
-0D0B 0041;
-0D10 0041;
-0D17 0041;
-0D1D 0041;
-0D23 0041;
-0D2A 0041;
-0D30 0041;
-0D36 0041;
-0D40 0041;
-0D47 0061;
-0D4B 0062;
-0D86 0061;
-0D8C 0061;
-0D92 0061;
-0D9B 0061;
-0DA1 0061;
-0DA7 0061;
-0DAD 0061;
-0DB4 0061;
-0DBA 0061;
-0DC3 0061;
-0DD0 0021;
-0DD8 0021;
-0DDA 0061;
-0DDC 0DCA 003F;
-0DF2 0021;
-A804 0021;
-A809 0041;
-A810 0041;
-A816 0041;
-A81C 0041;
-A822 0041;
-10A00 0041;
-10A0C 0041;
-10A16 0041;
-10A1D 0041;
-10A23 0041;
-10A29 0041;
-10A2F 0041;
-0E01 003F;
-0E02 003F;
-0E03 003F;
-0E04 003F;
-0E05 003F;
-0E06 003F;
-0E07 003F;
-0E08 003F;
-0E09 003F;
-0E0A 003F;
-0E0B 003F;
-0E0C 003F;
-0E0D 003F;
-0E0E 003F;
-0E0F 003F;
-0E10 003F;
-0E11 003F;
-0E12 003F;
-0E13 003F;
-0E14 003F;
-0E15 003F;
-0E16 003F;
-0E17 003F;
-0E18 003F;
-0E19 003F;
-0E1A 003F;
-0E1B 003F;
-0E1C 003F;
-0E1D 003F;
-0E1E 003F;
-0E1F 003F;
-0E20 003F;
-0E21 003F;
-0E22 003F;
-0E23 003F;
-0E24 003F;
-0E25 003F;
-0E26 003F;
-0E27 003F;
-0E28 003F;
-0E29 003F;
-0E2A 003F;
-0E2B 003F;
-0E2C 003F;
-0E2D 003F;
-0E2E 003F;
-0E2F 003F;
-0E33 0062;
-0E39 0334;
-0E40 0001 0E05 0061;
-0E40 0001 0E0F 0061;
-0E40 0001 0E19 0061;
-0E40 0001 0E23 0061;
-0E40 0001 0E2D 0061;
-0E41 0591 0E07 0061;
-0E41 0591 0E11 0061;
-0E41 0591 0E1B 0061;
-0E41 0591 0E25 0061;
-0E42 003F;
-0E42 1D165 0E09 0061;
-0E42 1D165 0E13 0061;
-0E42 1D165 0E1D 0061;
-0E42 1D165 0E27 0061;
-0E43 0001 0E02 0061;
-0E43 0001 0E0C 0061;
-0E43 0001 0E16 0061;
-0E43 0001 0E20 0061;
-0E43 0001 0E2A 0061;
-0E44 0591 0E04 0061;
-0E44 0591 0E0E 0061;
-0E44 0591 0E18 0061;
-0E44 0591 0E22 0061;
-0E44 0591 0E2C 0061;
-0EC2 0E81 0061;
-0EC2 0E82 0061;
-0EC2 0E84 0061;
-0EC2 0E87 0061;
-0EC2 0E88 0061;
-0EC2 0E8A 0061;
-0EC2 0E8D 0061;
-0EC2 0E94 0061;
-0EC2 0E95 0061;
-0EC2 0E96 0061;
-0EC2 0E97 0061;
-0EC2 0E99 0061;
-0EC2 0E9A 0061;
-0EC2 0E9B 0061;
-0EC2 0E9C 0061;
-0EC2 0E9D 0061;
-0EC2 0E9E 0061;
-0EC2 0E9F 0061;
-0EC2 0EA1 0061;
-0EC2 0EA2 0061;
-0EC2 0EA3 0061;
-0EC2 0EA5 0061;
-0EC2 0EA7 0061;
-0EC2 0EAA 0061;
-0EC1 0EDC 0061;
-0EC1 0EDD 0061;
-0EC2 0EAB 0061;
-0EC2 0EAD 0061;
-0EC2 0EAE 0061;
-0EB2 0061;
-0EB6 0062;
-0EBD 0021;
-0EC0 1D165 0E8D 0061;
-0EC0 1D165 0E9E 0061;
-0EC0 1D165 0EDD 0061;
-0EC1 0001 0E8D 0061;
-0EC1 0001 0E9E 0061;
-0EC1 0001 0EDD 0061;
-0EC2 0591 0E8A 0061;
-0EC2 0591 0E9D 0061;
-0EC2 0591 0EDC 0061;
-0EC3 1D165 0E88 0061;
-0EC3 1D165 0E9C 0061;
-0EC3 1D165 0EAB 0061;
-0EC4 0001 0E88 0061;
-0EC4 0001 0E9C 0061;
-0EC4 0001 0EAB 0061;
-0FB9 0021;
-0F93 0021;
-0F96 0021;
-0F9A 0021;
-0F9D 0021;
-0FA0 0021;
-0FA3 0021;
-0F57 0021;
-0FA9 0021;
-0FAC 0021;
-0F5F 0021;
-0FB1 0041;
-0FB2 1D165 0F71 0061;
-0F64 003F;
-0F67 003F;
-0F89 003F;
-0F72 0062;
-0F71 0F80 003F;
-0F75 0041;
-0FB2 0F81 0061;
-0F79 0061;
-0F7C 0334;
-1902 0021;
-1908 0021;
-190E 0021;
-1914 0021;
-191A 0021;
-1923 0021;
-1929 0021;
-1933 0021;
-1700 0021;
-1706 0021;
-170C 0021;
-1713 0021;
-1723 0041;
-1729 0041;
-172F 0041;
-1740 003F;
-1746 003F;
-174C 003F;
-1752 003F;
-1764 003F;
-176A 003F;
-1772 003F;
-1A04 003F;
-1A0A 003F;
-1A10 003F;
-1A16 003F;
-1A1B 0061;
-1005 0061;
-100B 0061;
-1011 0061;
-1017 0061;
-101D 0061;
-1021 0061;
-1026 0062;
-1054 0062;
-1030 0062;
-1059 0062;
-1784 0061;
-178A 0061;
-1790 0061;
-1796 0061;
-179C 0061;
-17A2 0061;
-17A7 0061;
-17AD 0061;
-17B3 0061;
-17B9 0061;
-17BF 0061;
-17C5 0061;
-1954 0021;
-195A 0021;
-1960 0021;
-1966 0021;
-196C 0021;
-1974 0021;
-1985 0021;
-198B 0021;
-1991 0021;
-1997 0021;
-19DE 0021;
-19A1 0021;
-19A7 0021;
-19B3 0021;
-19B9 0021;
-19BF 0021;
-19C5 0021;
-1881 0021;
-1843 0021;
-1822 0021;
-1823 0021;
-1848 0021;
-1829 0021;
-184B 0021;
-182D 0021;
-184F 0021;
-189D 0021;
-1868 0021;
-1871 0021;
-1877 0021;
-1838 0021;
-1857 0021;
-1854 0021;
-183E 0021;
-1842 0021;
-188D 0021;
-18A0 0021;
-1894 0021;
-18A6 0021;
-13A2 0041;
-13A8 0041;
-13AE 0041;
-13B4 0041;
-13BA 0041;
-13C0 0041;
-13C6 0041;
-13CC 0041;
-13D2 0041;
-13D8 0041;
-13DE 0041;
-13E4 0041;
-13EA 0041;
-13F0 0041;
-1402 0041;
-1408 0041;
-140E 0041;
-1414 0041;
-141A 0041;
-1420 0041;
-1426 0041;
-142C 0041;
-1432 0041;
-1438 0041;
-143E 0041;
-1444 0041;
-144A 0041;
-1450 0041;
-1456 0041;
-145C 0041;
-1462 0041;
-1468 0041;
-146E 0041;
-1474 0041;
-147A 0041;
-1480 0041;
-1486 0041;
-148C 0041;
-1492 0041;
-1498 0041;
-149E 0041;
-14A4 0041;
-14AA 0041;
-14B0 0041;
-14B6 0041;
-14BC 0041;
-14C2 0041;
-14C8 0041;
-14CE 0041;
-14D4 0041;
-14DA 0041;
-14E0 0041;
-14E6 0041;
-14EC 0041;
-14F2 0041;
-14F8 0041;
-14FE 0041;
-1504 0041;
-150A 0041;
-1510 0041;
-1516 0041;
-151C 0041;
-1522 0041;
-1528 0041;
-152E 0041;
-1534 0041;
-153A 0041;
-1540 0041;
-1546 0041;
-154C 0041;
-1552 0041;
-1558 0041;
-155E 0041;
-1564 0041;
-156A 0041;
-1570 0041;
-1576 0041;
-157D 0041;
-1582 0041;
-1588 0041;
-1670 0041;
-1593 0041;
-1674 0041;
-1599 0041;
-159F 0041;
-15A5 0041;
-15AA 0041;
-15B0 0041;
-15B6 0041;
-15BC 0041;
-15C2 0041;
-15C8 0041;
-15CE 0041;
-15D4 0041;
-15DA 0041;
-15E0 0041;
-15E6 0041;
-15EC 0041;
-15F2 0041;
-15F8 0041;
-15FE 0041;
-1604 0041;
-160A 0041;
-1610 0041;
-1616 0041;
-161C 0041;
-1622 0041;
-1628 0041;
-162E 0041;
-1634 0041;
-163A 0041;
-1640 0041;
-1646 0041;
-164C 0041;
-1652 0041;
-1658 0041;
-165E 0041;
-1664 0041;
-166A 0041;
-1684 0041;
-168A 0041;
-1690 0041;
-1696 0041;
-16A0 0062;
-16F0 0041;
-16AF 0041;
-16B6 0061;
-16BA 0061;
-16C2 003F;
-16EE 0041;
-16EA 003F;
-16D0 0061;
-16D7 003F;
-16DD 003F;
-16A3 0041;
-16E2 0041;
-1100 0061;
-AC00 1161 0021;
-AC03 0062;
-FFA2 0041;
-3137 0021;
-1104 0061;
-3271 003F;
-3142 0021;
-1108 0061;
-3274 003F;
-3147 0041;
-3148 0041;
-FFB9 0041;
-327C 003F;
-314C 0021;
-326C 003F;
-314E 0041;
-D788 1161 0021;
-D7A0 0062;
-3165 0062;
-1119 0062;
-316E 0062;
-1120 0061;
-3174 0062;
-1127 0061;
-112B 0061;
-112E 0061;
-1132 0061;
-317E 0062;
-113C 0062;
-1141 0062;
-1147 0061;
-114C 0061;
-1151 0062;
-1157 0061;
-115F 0062;
-FFC2 0062;
-FFC4 0062;
-FFC6 0062;
-FFCA 0062;
-FFCC 0062;
-FFCE 0062;
-FFD2 0062;
-FFD4 0062;
-FFD6 0062;
-FFDA 0062;
-FFDC 0062;
-117B 0062;
-1181 0062;
-3188 0062;
-118A 0062;
-1190 0062;
-1194 0061;
-1199 0062;
-318D 0062;
-11A8 0062;
-3135 003F;
-11AE 0062;
-313B 0041;
-313D 0041;
-313F 0041;
-11BA 0062;
-11C0 0062;
-11C6 0062;
-11CA 0062;
-316A 0062;
-316B 0062;
-11D8 0062;
-11DD 0061;
-11E1 0062;
-11E7 0062;
-11ED 0062;
-11F2 0061;
-11F7 0062;
-3041 0061;
-3301 0062;
-FF72 0061;
-FF69 0021;
-3094 0041;
-32D3 003F;
-3307 0041;
-30AA 0041;
-30AC 0021;
-32D5 0062;
-304E 0334;
-FF77 0062;
-3315 003F;
-FF78 003F;
-3319 0021;
-3051 003F;
-30F6 0062;
-3053 0041;
-30B5 0334 3099;
-32DA 0062;
-32DB 003F;
-3321 003F;
-FF7D 0061;
-32DD 003F;
-3323 0062;
-30BE 0041;
-305F 0061;
-3061 003F;
-3063 0021;
-32E1 0061;
-32E2 003F;
-30C8 3099 0334;
-3068 0062;
-FF85 0041;
-FF86 0062;
-32E7 0021;
-FF89 0041;
-30D0 0021;
-31F5 0041;
-3072 3099 0334;
-3072 0041;
-332E 0062;
-30D5 0021;
-3077 0061;
-3335 0061;
-30D9 003F;
-30DA 0041;
-333A 0021;
-32ED 003F;
-307D 0041;
-3340 0041;
-3344 0041;
-307F 0061;
-FF91 0021;
-334D 0021;
-32F2 0021;
-32F3 003F;
-FF94 0062;
-3085 0062;
-30E7 0061;
-FF97 003F;
-31FC 0041;
-FF99 003F;
-FF9A 0021;
-3356 0041;
-308E 0021;
-30EE 0062;
-30F0 0062;
-30F2 0021;
-3093 0061;
-3107 003F;
-310B 003F;
-312B 003F;
-3111 003F;
-3116 003F;
-31A9 0061;
-31A5 0021;
-31AF 0061;
-3125 003F;
-3127 0061;
-A000 003F;
-A006 003F;
-A00C 003F;
-A012 003F;
-A018 003F;
-A01E 003F;
-A024 003F;
-A02A 003F;
-A030 003F;
-A036 003F;
-A03C 003F;
-A042 003F;
-A048 003F;
-A04E 003F;
-A054 003F;
-A05A 003F;
-A060 003F;
-A066 003F;
-A06C 003F;
-A072 003F;
-A078 003F;
-A07E 003F;
-A084 003F;
-A08A 003F;
-A090 003F;
-A096 003F;
-A09C 003F;
-A0A2 003F;
-A0A8 003F;
-A0AE 003F;
-A0B4 003F;
-A0BA 003F;
-A0C0 003F;
-A0C6 003F;
-A0CC 003F;
-A0D2 003F;
-A0D8 003F;
-A0DE 003F;
-A0E4 003F;
-A0EA 003F;
-A0F0 003F;
-A0F6 003F;
-A0FC 003F;
-A102 003F;
-A108 003F;
-A10E 003F;
-A114 003F;
-A11A 003F;
-A120 003F;
-A126 003F;
-A12C 003F;
-A132 003F;
-A138 003F;
-A13E 003F;
-A144 003F;
-A14A 003F;
-A150 003F;
-A156 003F;
-A15C 003F;
-A162 003F;
-A168 003F;
-A16E 003F;
-A174 003F;
-A17A 003F;
-A180 003F;
-A186 003F;
-A18C 003F;
-A192 003F;
-A198 003F;
-A19E 003F;
-A1A4 003F;
-A1AA 003F;
-A1B0 003F;
-A1B6 003F;
-A1BC 003F;
-A1C2 003F;
-A1C8 003F;
-A1CE 003F;
-A1D4 003F;
-A1DA 003F;
-A1E0 003F;
-A1E6 003F;
-A1EC 003F;
-A1F2 003F;
-A1F8 003F;
-A1FE 003F;
-A204 003F;
-A20A 003F;
-A210 003F;
-A216 003F;
-A21C 003F;
-A222 003F;
-A228 003F;
-A22E 003F;
-A234 003F;
-A23A 003F;
-A240 003F;
-A246 003F;
-A24C 003F;
-A252 003F;
-A258 003F;
-A25E 003F;
-A264 003F;
-A26A 003F;
-A270 003F;
-A276 003F;
-A27C 003F;
-A282 003F;
-A288 003F;
-A28E 003F;
-A294 003F;
-A29A 003F;
-A2A0 003F;
-A2A6 003F;
-A2AC 003F;
-A2B2 003F;
-A2B8 003F;
-A2BE 003F;
-A2C4 003F;
-A2CA 003F;
-A2D0 003F;
-A2D6 003F;
-A2DC 003F;
-A2E2 003F;
-A2E8 003F;
-A2EE 003F;
-A2F4 003F;
-A2FA 003F;
-A300 003F;
-A306 003F;
-A30C 003F;
-A312 003F;
-A318 003F;
-A31E 003F;
-A324 003F;
-A32A 003F;
-A330 003F;
-A336 003F;
-A33C 003F;
-A342 003F;
-A348 003F;
-A34E 003F;
-A354 003F;
-A35A 003F;
-A360 003F;
-A366 003F;
-A36C 003F;
-A372 003F;
-A378 003F;
-A37E 003F;
-A384 003F;
-A38A 003F;
-A390 003F;
-A396 003F;
-A39C 003F;
-A3A2 003F;
-A3A8 003F;
-A3AE 003F;
-A3B4 003F;
-A3BA 003F;
-A3C0 003F;
-A3C6 003F;
-A3CC 003F;
-A3D2 003F;
-A3D8 003F;
-A3DE 003F;
-A3E4 003F;
-A3EA 003F;
-A3F0 003F;
-A3F6 003F;
-A3FC 003F;
-A402 003F;
-A408 003F;
-A40E 003F;
-A414 003F;
-A41A 003F;
-A420 003F;
-A426 003F;
-A42C 003F;
-A432 003F;
-A438 003F;
-A43E 003F;
-A444 003F;
-A44A 003F;
-A450 003F;
-A456 003F;
-A45C 003F;
-A462 003F;
-A468 003F;
-A46E 003F;
-A474 003F;
-A47A 003F;
-A480 003F;
-A486 003F;
-A48C 003F;
-10305 003F;
-1030B 003F;
-10311 003F;
-10317 003F;
-1031D 003F;
-10334 003F;
-1033A 003F;
-10340 003F;
-10346 003F;
-10400 0061;
-10403 0061;
-10406 0061;
-10409 0061;
-1040C 0061;
-1040F 0061;
-10412 0061;
-10415 0061;
-10418 0061;
-1041B 0061;
-1041E 0061;
-10421 0061;
-10424 0061;
-10427 0061;
-10455 003F;
-1045B 003F;
-10461 003F;
-10467 003F;
-1046D 003F;
-10473 003F;
-10479 003F;
-1047F 003F;
-10485 003F;
-1048B 003F;
-10491 003F;
-10497 003F;
-1049D 003F;
-10005 003F;
-1000B 003F;
-10012 003F;
-10018 003F;
-1001E 003F;
-10024 003F;
-1002B 003F;
-10031 003F;
-10037 003F;
-1003F 003F;
-10045 003F;
-1004B 003F;
-10053 003F;
-10059 003F;
-10081 003F;
-10087 003F;
-1008D 003F;
-10093 003F;
-10099 003F;
-1009F 003F;
-100A5 003F;
-100AB 003F;
-100B1 003F;
-100B7 003F;
-100BD 003F;
-100C3 003F;
-100C9 003F;
-100CF 003F;
-100D5 003F;
-100DB 003F;
-100E1 003F;
-100E7 003F;
-100ED 003F;
-100F3 003F;
-100F9 003F;
-10804 003F;
-1080D 003F;
-10813 003F;
-10819 003F;
-1081F 003F;
-10825 003F;
-1082B 003F;
-10831 003F;
-10838 003F;
-10383 003F;
-10389 003F;
-1038F 003F;
-10395 003F;
-1039B 003F;
-103A3 003F;
-103A9 003F;
-103AF 003F;
-103B5 003F;
-103BB 003F;
-103C1 003F;
-103CB 003F;
-3280 003F;
-3286 0021;
-3196 0021;
-FA70 003F;
-2E80 0021;
-2F802 003F;
-3288 003F;
-3193 0041;
-2E85 003F;
-2F804 003F;
-2F806 003F;
-2F80B 003F;
-FA0C 003F;
-2F0A 003F;
-3285 0021;
-2F815 003F;
-2F818 003F;
-F979 003F;
-2F10 0021;
-2F850 0021;
-2F821 003F;
-F99D 003F;
-FA33 0041;
-2F13 003F;
-2F82B 0021;
-3038 0021;
-2F82D 0021;
-2E8B 0021;
-2F832 0021;
-F96B 003F;
-2F839 003F;
-F9ED 003F;
-2F840 003F;
-2F844 003F;
-FA78 0021;
-FA7B 003F;
-2F1E 003F;
-328F 0021;
-2F854 003F;
-F96C 003F;
-2F20 003F;
-2F22 003F;
-337D 003F;
-2F85F 003F;
-2F863 003F;
-FA81 003F;
-FA04 003F;
-2F86F 0041;
-2E8C 0021;
-2F875 0062;
-F94B 003F;
-2F2D 003F;
-2F87F 003F;
-2F881 003F;
-2F884 003F;
-337B 003F;
-2F88B 003F;
-FA82 003F;
-2F36 0061;
-2E95 0021;
-FA84 003F;
-FA85 003F;
-F9A3 003F;
-FA3D 0041;
-2F8A6 003F;
-FA3E 003F;
-2F8AD 003F;
-2F8B0 0041;
-2F8B3 003F;
-2F8B4 003F;
-2F8BA 003F;
-2F8BC 003F;
-FA8E 003F;
-F991 003F;
-2F8C8 0021;
-2F43 003F;
-2E9B 003F;
-337E 003F;
-F9C5 003F;
-2F48 003F;
-2E9D 0041;
-FA93 0041;
-FA94 003F;
-2F8DF 003F;
-F97A 003F;
-2F8E8 003F;
-F94C 003F;
-2F8EF 003F;
-2F4D 0021;
-FA96 0021;
-2F50 003F;
-328C 0061;
-2F8FC 003F;
-F915 003F;
-2F902 0041;
-2F905 003F;
-2F908 003F;
-FA99 0041;
-F992 003F;
-2F914 0021;
-2EA3 003F;
-F99F 003F;
-2F91E 003F;
-2F56 003F;
-2F57 003F;
-2EA7 0021;
-2F5D 003F;
-FA16 0041;
-2F5F 003F;
-F9E4 003F;
-2F930 0021;
-2F60 003F;
-2F64 003F;
-F9CD 003F;
-2F67 003F;
-F90E 003F;
-FA17 0041;
-2F940 0021;
-FAAA 003F;
-2F6E 003F;
-FA4B 003F;
-2EAC 0021;
-FA4E 003F;
-3297 0061;
-2F956 0021;
-3299 003F;
-2F95B 003F;
-2F95F 003F;
-2F962 003F;
-F9F9 003F;
-2F968 003F;
-F94F 003F;
-FA57 0021;
-FA59 003F;
-2EB5 0021;
-F9E6 003F;
-2EB8 003F;
-2F7C 0021;
-2F7D 003F;
-2F97F 003F;
-2EBC 0061;
-F926 003F;
-2EBD 0021;
-2F87 003F;
-FA5E 0021;
-2F98F 003F;
-F974 0041;
-2F9A0 003F;
-2F9A2 003F;
-F96E 003F;
-F9C2 003F;
-FA20 003F;
-2F9B4 0021;
-2F9B7 003F;
-FAB5 0041;
-2F8E 003F;
-2EC2 003F;
-F912 003F;
-2EC4 003F;
-FA61 0041;
-2F9CF 003F;
-F941 003F;
-F95D 0041;
-F95A 003F;
-F900 003F;
-2F9D4 003F;
-FAC1 0021;
-2F9D7 003F;
-2F9DC 003F;
-F9D7 003F;
-2F9F 003F;
-2ECD 003F;
-329C 003F;
-2F9E2 003F;
-2FA3 003F;
-2FA5 0061;
-2F9E7 003F;
-F99B 003F;
-2ED2 003F;
-2ED4 003F;
-FA09 003F;
-2FAA 003F;
-FA68 0041;
-F938 003F;
-2FAE 003F;
-2ED9 003F;
-32A0 003F;
-FACC 0021;
-2FB6 003F;
-2FA02 003F;
-2EE1 0021;
-F91A 003F;
-2FBC 003F;
-2FC0 003F;
-F9F2 003F;
-F93A 003F;
-2FC5 0061;
-2FC7 0061;
-2FCB 0021;
-2FCD 003F;
-2FD0 0061;
-2EED 0061;
-2EF0 003F;
-FACE 0062;
-9FA3 003F;
-FA13 003F;
-FA27 003F;
-3403 003F;
-3409 003F;
-340F 003F;
-3415 003F;
-341B 003F;
-3421 003F;
-3427 003F;
-342D 003F;
-3433 003F;
-3439 003F;
-343F 003F;
-3445 003F;
-344B 003F;
-3451 003F;
-3457 003F;
-345D 003F;
-3463 003F;
-3469 003F;
-346F 003F;
-3475 003F;
-347B 003F;
-3481 003F;
-3487 003F;
-348D 003F;
-3493 003F;
-3499 003F;
-349E 0041;
-34A4 003F;
-34AA 003F;
-34B0 003F;
-34B6 003F;
-2F9CA 0021;
-34C0 003F;
-34C6 003F;
-34CC 003F;
-34D2 003F;
-34D8 003F;
-34DE 003F;
-34E3 003F;
-34E9 003F;
-34EF 003F;
-34F5 003F;
-34FB 003F;
-3501 003F;
-3507 003F;
-350D 003F;
-3513 003F;
-3518 003F;
-351E 003F;
-3524 003F;
-352A 003F;
-3530 003F;
-3536 003F;
-353C 003F;
-3542 003F;
-3548 003F;
-354E 003F;
-3554 003F;
-355A 003F;
-3560 003F;
-3566 003F;
-356C 003F;
-3572 003F;
-3578 003F;
-357E 003F;
-3584 003F;
-358A 003F;
-3590 003F;
-3596 003F;
-359C 003F;
-35A2 003F;
-35A8 003F;
-35AE 003F;
-35B4 003F;
-35BA 003F;
-35C0 003F;
-35C6 003F;
-35CC 003F;
-35D2 003F;
-35D8 003F;
-35DE 003F;
-35E4 003F;
-35EA 003F;
-35F0 003F;
-35F6 003F;
-35FC 003F;
-3602 003F;
-3608 003F;
-360E 003F;
-3614 003F;
-361A 003F;
-3620 003F;
-3626 003F;
-362C 003F;
-3632 003F;
-3638 003F;
-363E 003F;
-3644 003F;
-364A 003F;
-3650 003F;
-3656 003F;
-365C 003F;
-3662 003F;
-3668 003F;
-366E 003F;
-3674 003F;
-367A 003F;
-3680 003F;
-3686 003F;
-368C 003F;
-3692 003F;
-3698 003F;
-369E 003F;
-36A4 003F;
-36AA 003F;
-36B0 003F;
-36B6 003F;
-36BC 003F;
-36C2 003F;
-36C8 003F;
-36CE 003F;
-36D4 003F;
-36DA 003F;
-36E0 003F;
-36E6 003F;
-36EC 003F;
-36F1 003F;
-36F7 003F;
-36FC 0041;
-3702 003F;
-3708 003F;
-370E 003F;
-3714 003F;
-371A 003F;
-3720 003F;
-3726 003F;
-372C 003F;
-3732 003F;
-3738 003F;
-373E 003F;
-3744 003F;
-374A 003F;
-3750 003F;
-3756 003F;
-375C 003F;
-3762 003F;
-3768 003F;
-376E 003F;
-3774 003F;
-377A 003F;
-3780 003F;
-3785 003F;
-378B 003F;
-3791 003F;
-3797 003F;
-379D 003F;
-37A3 003F;
-37A9 003F;
-37AF 003F;
-37B5 003F;
-37BB 003F;
-37C1 003F;
-37C7 003F;
-37CD 003F;
-37D3 003F;
-37D9 003F;
-37DF 003F;
-37E5 003F;
-37EB 003F;
-37F1 003F;
-37F7 003F;
-37FD 003F;
-3803 003F;
-3809 003F;
-380F 003F;
-3815 003F;
-381B 003F;
-3821 003F;
-3827 003F;
-382D 003F;
-3832 003F;
-3838 003F;
-383E 003F;
-3844 003F;
-384A 003F;
-3850 003F;
-3856 003F;
-385C 003F;
-2F888 0021;
-3867 003F;
-386D 003F;
-3873 003F;
-3879 003F;
-387E 003F;
-3884 003F;
-388A 003F;
-3890 003F;
-3896 003F;
-389C 003F;
-38A2 003F;
-38A8 003F;
-38AE 003F;
-38B4 003F;
-38BA 003F;
-38C0 003F;
-38C6 003F;
-38CB 003F;
-38D1 003F;
-38D7 003F;
-38DD 003F;
-2F89B 0021;
-38E8 003F;
-38EE 003F;
-38F4 003F;
-38FA 003F;
-3900 003F;
-3906 003F;
-390C 003F;
-3912 003F;
-3918 003F;
-391D 003F;
-3923 003F;
-3929 003F;
-392F 003F;
-3935 003F;
-393A 0041;
-3940 003F;
-3946 003F;
-394C 003F;
-3952 003F;
-3958 003F;
-395E 003F;
-3964 003F;
-396A 003F;
-3970 003F;
-3976 003F;
-397C 003F;
-3982 003F;
-3988 003F;
-398E 003F;
-3994 003F;
-399A 003F;
-39A0 003F;
-39A6 003F;
-39AC 003F;
-39B2 003F;
-39B8 003F;
-39BE 003F;
-39C4 003F;
-39CA 003F;
-39D0 003F;
-39D6 003F;
-39DC 003F;
-39E2 003F;
-39E8 003F;
-39EE 003F;
-39F4 003F;
-39FA 003F;
-3A00 003F;
-3A06 003F;
-3A0C 003F;
-3A12 003F;
-3A18 003F;
-3A1E 003F;
-3A24 003F;
-3A2A 003F;
-3A2F 003F;
-3A35 003F;
-3A3B 003F;
-3A41 003F;
-3A47 003F;
-3A4D 003F;
-3A53 003F;
-3A59 003F;
-3A5F 003F;
-3A65 003F;
-3A6B 003F;
-3A70 003F;
-3A76 003F;
-3A7C 003F;
-3A82 003F;
-3A88 003F;
-3A8E 003F;
-3A94 003F;
-3A9A 003F;
-3AA0 003F;
-3AA6 003F;
-3AAC 003F;
-3AB2 003F;
-3AB8 003F;
-3ABE 003F;
-3AC4 003F;
-3ACA 003F;
-3AD0 003F;
-3AD6 003F;
-3ADC 003F;
-3AE2 003F;
-3AE7 003F;
-3AED 003F;
-3AF3 003F;
-3AF9 003F;
-3AFF 003F;
-3B05 003F;
-3B0A 003F;
-3B10 003F;
-3B16 003F;
-3B1B 003F;
-3B21 003F;
-3B27 003F;
-3B2D 003F;
-3B33 003F;
-3B39 003F;
-3B3F 003F;
-3B45 003F;
-3B4A 003F;
-3B50 003F;
-3B56 003F;
-3B5C 003F;
-3B62 003F;
-3B68 003F;
-3B6E 003F;
-3B74 003F;
-3B7A 003F;
-3B80 003F;
-3B86 003F;
-3B8C 003F;
-3B92 003F;
-3B98 003F;
-3B9D 0061;
-3BA2 003F;
-3BA8 003F;
-3BAE 003F;
-3BB4 003F;
-3BBA 003F;
-3BC0 003F;
-3BC6 003F;
-3BCC 003F;
-3BD2 003F;
-3BD8 003F;
-3BDE 003F;
-3BE4 003F;
-3BEA 003F;
-3BF0 003F;
-3BF6 003F;
-3BFC 003F;
-3C02 003F;
-3C08 003F;
-3C0E 003F;
-3C14 003F;
-3C19 003F;
-3C1F 003F;
-3C25 003F;
-3C2B 003F;
-3C31 003F;
-3C37 003F;
-3C3D 003F;
-3C43 003F;
-3C49 003F;
-3C4E 0041;
-3C54 003F;
-3C5A 003F;
-3C60 003F;
-3C66 003F;
-3C6C 003F;
-3C72 003F;
-3C78 003F;
-3C7E 003F;
-3C84 003F;
-3C8A 003F;
-3C90 003F;
-3C96 003F;
-3C9C 003F;
-3CA2 003F;
-3CA8 003F;
-3CAE 003F;
-3CB4 003F;
-3CBA 003F;
-3CC0 003F;
-3CC6 003F;
-3CCC 003F;
-3CD2 003F;
-3CD8 003F;
-3CDE 003F;
-3CE4 003F;
-3CEA 003F;
-3CF0 003F;
-3CF6 003F;
-3CFC 003F;
-3D02 003F;
-3D08 003F;
-3D0E 003F;
-3D14 003F;
-3D1A 003F;
-3D20 003F;
-3D26 003F;
-3D2C 003F;
-3D32 003F;
-3D37 003F;
-3D3D 003F;
-3D43 003F;
-3D49 003F;
-3D4F 003F;
-3D55 003F;
-3D5B 003F;
-3D61 003F;
-3D67 003F;
-3D6D 003F;
-3D73 003F;
-3D79 003F;
-3D7F 003F;
-3D85 003F;
-3D8B 003F;
-3D91 003F;
-3D96 0041;
-3D9C 003F;
-3DA2 003F;
-3DA8 003F;
-3DAE 003F;
-3DB4 003F;
-3DBA 003F;
-3DC0 003F;
-3DC6 003F;
-3DCC 003F;
-3DD2 003F;
-3DD8 003F;
-3DDE 003F;
-3DE4 003F;
-3DEA 003F;
-3DF0 003F;
-3DF6 003F;
-3DFC 003F;
-3E02 003F;
-3E08 003F;
-3E0E 003F;
-3E14 003F;
-3E1A 003F;
-3E20 003F;
-3E26 003F;
-3E2C 003F;
-3E32 003F;
-3E38 003F;
-3E3E 003F;
-3E44 003F;
-3E4A 003F;
-3E50 003F;
-3E56 003F;
-3E5C 003F;
-3E62 003F;
-3E68 003F;
-3E6E 003F;
-3E74 003F;
-3E7A 003F;
-3E80 003F;
-3E86 003F;
-3E8C 003F;
-3E92 003F;
-3E98 003F;
-3E9E 003F;
-3EA4 003F;
-3EAA 003F;
-3EAF 003F;
-3EB5 003F;
-3EB9 003F;
-3EBF 003F;
-3EC5 003F;
-3ECB 003F;
-3ED1 003F;
-3ED7 003F;
-3EDD 003F;
-3EE3 003F;
-3EE9 003F;
-3EEF 003F;
-3EF5 003F;
-3EFB 003F;
-3F01 003F;
-3F07 003F;
-3F0D 003F;
-3F13 003F;
-3F19 003F;
-3F1E 003F;
-3F24 003F;
-3F2A 003F;
-3F30 003F;
-3F36 003F;
-3F3C 003F;
-3F42 003F;
-3F48 003F;
-3F4E 003F;
-3F54 003F;
-3F5A 003F;
-3F60 003F;
-3F66 003F;
-3F6C 003F;
-3F72 003F;
-3F78 003F;
-3F7E 003F;
-3F84 003F;
-3F8A 003F;
-3F90 003F;
-3F96 003F;
-3F9C 003F;
-3FA2 003F;
-3FA8 003F;
-3FAE 003F;
-3FB4 003F;
-3FBA 003F;
-3FC0 003F;
-3FC6 003F;
-3FCC 003F;
-3FD2 003F;
-3FD8 003F;
-3FDE 003F;
-3FE4 003F;
-3FEA 003F;
-3FF0 003F;
-3FF6 003F;
-2F93E 0021;
-4001 003F;
-4007 003F;
-400C 003F;
-4012 003F;
-FAD3 0021;
-401D 003F;
-4023 003F;
-4029 003F;
-402F 003F;
-4035 003F;
-2F949 0041;
-403F 003F;
-4045 003F;
-404A 003F;
-4050 003F;
-4056 003F;
-405C 003F;
-4062 003F;
-4068 003F;
-406E 003F;
-4074 003F;
-407A 003F;
-4080 003F;
-4086 003F;
-408C 003F;
-4092 003F;
-4097 003F;
-409D 003F;
-40A3 003F;
-40A9 003F;
-40AF 003F;
-40B5 003F;
-40BB 003F;
-40C1 003F;
-40C7 003F;
-40CD 003F;
-40D3 003F;
-40D9 003F;
-40DF 003F;
-40E4 003F;
-40EA 003F;
-40F0 003F;
-40F6 003F;
-40FC 003F;
-4102 003F;
-4108 003F;
-410E 003F;
-4114 003F;
-411A 003F;
-4120 003F;
-4126 003F;
-412C 003F;
-4131 003F;
-4137 003F;
-413D 003F;
-4143 003F;
-4149 003F;
-414F 003F;
-4155 003F;
-415B 003F;
-4161 003F;
-4167 003F;
-416D 003F;
-4173 003F;
-4179 003F;
-417F 003F;
-4185 003F;
-418B 003F;
-4191 003F;
-4197 003F;
-419D 003F;
-41A3 003F;
-41A9 003F;
-41AF 003F;
-41B5 003F;
-41BB 003F;
-41C1 003F;
-41C7 003F;
-41CD 003F;
-41D3 003F;
-41D9 003F;
-41DF 003F;
-41E5 003F;
-41EB 003F;
-41F1 003F;
-41F7 003F;
-41FD 003F;
-4202 0041;
-4208 003F;
-420E 003F;
-4214 003F;
-421A 003F;
-4220 003F;
-4226 003F;
-422B 003F;
-4231 003F;
-4237 003F;
-423D 003F;
-4243 003F;
-4249 003F;
-424F 003F;
-4255 003F;
-425B 003F;
-4261 003F;
-4267 003F;
-426D 003F;
-4273 003F;
-4279 003F;
-427F 003F;
-4285 003F;
-428B 003F;
-4291 003F;
-4297 003F;
-429D 003F;
-42A2 003F;
-42A8 003F;
-42AE 003F;
-42B4 003F;
-42BA 003F;
-42C0 003F;
-42C6 003F;
-42CC 003F;
-42D2 003F;
-42D8 003F;
-42DE 003F;
-42E4 003F;
-42EA 003F;
-42F0 003F;
-42F6 003F;
-42FC 003F;
-4301 0041;
-4307 003F;
-430D 003F;
-4313 003F;
-4319 003F;
-431F 003F;
-4325 003F;
-432B 003F;
-4331 003F;
-4336 003F;
-433C 003F;
-4342 003F;
-4348 003F;
-434E 003F;
-4354 003F;
-4359 0041;
-435F 003F;
-4365 003F;
-436B 003F;
-4371 003F;
-4377 003F;
-437D 003F;
-4383 003F;
-4389 003F;
-438F 003F;
-4395 003F;
-439B 003F;
-43A1 003F;
-43A7 003F;
-43AD 003F;
-43B3 003F;
-43B9 003F;
-43BF 003F;
-43C5 003F;
-43CB 003F;
-43D1 003F;
-43D6 003F;
-43DB 003F;
-43E1 003F;
-43E7 003F;
-43ED 003F;
-43F3 003F;
-43F9 003F;
-43FF 003F;
-4405 003F;
-2F984 0021;
-4410 003F;
-4416 003F;
-441C 003F;
-4422 003F;
-4428 003F;
-442E 003F;
-4434 003F;
-443A 003F;
-4440 003F;
-4446 003F;
-444C 003F;
-4452 003F;
-4458 003F;
-445E 003F;
-4464 003F;
-446A 003F;
-446F 003F;
-4475 003F;
-447B 003F;
-4481 003F;
-4487 003F;
-448D 003F;
-4493 003F;
-4499 003F;
-449F 003F;
-44A5 003F;
-44AB 003F;
-44B1 003F;
-44B7 003F;
-44BD 003F;
-44C3 003F;
-44C9 003F;
-44CF 003F;
-44D5 003F;
-44DB 003F;
-44E1 003F;
-44E7 003F;
-44ED 003F;
-44F3 003F;
-44F9 003F;
-44FF 003F;
-4505 003F;
-450B 003F;
-4511 003F;
-4517 003F;
-451D 003F;
-4523 003F;
-4529 003F;
-452E 003F;
-4534 003F;
-453A 003F;
-4540 003F;
-4546 003F;
-454C 003F;
-4552 003F;
-4558 003F;
-455D 0041;
-4562 003F;
-4568 003F;
-456D 003F;
-4573 003F;
-4579 003F;
-457F 003F;
-4585 003F;
-458B 003F;
-4591 003F;
-4597 003F;
-459D 003F;
-45A3 003F;
-45A9 003F;
-45AF 003F;
-45B5 003F;
-45BB 003F;
-45C1 003F;
-45C7 003F;
-45CD 003F;
-45D3 003F;
-45D8 003F;
-45DE 003F;
-45E4 003F;
-45EA 003F;
-45F0 003F;
-45F6 003F;
-45FB 003F;
-4601 003F;
-4607 003F;
-460D 003F;
-4613 003F;
-4619 003F;
-461F 003F;
-4625 003F;
-462B 003F;
-4631 003F;
-4636 003F;
-463C 003F;
-4642 003F;
-4648 003F;
-464E 003F;
-4654 003F;
-465A 003F;
-4660 003F;
-4666 003F;
-466C 003F;
-4672 003F;
-4678 003F;
-467E 003F;
-4684 003F;
-468A 003F;
-4690 003F;
-4696 003F;
-469C 003F;
-46A2 003F;
-46A8 003F;
-46AE 003F;
-46B4 003F;
-46BA 003F;
-46BF 003F;
-46C5 003F;
-46CA 003F;
-46D0 003F;
-46D6 003F;
-46DC 003F;
-46E2 003F;
-46E8 003F;
-46EE 003F;
-46F4 003F;
-46FA 003F;
-4700 003F;
-4706 003F;
-470C 003F;
-4712 003F;
-4718 003F;
-471E 003F;
-4724 003F;
-472A 003F;
-4730 003F;
-4736 003F;
-473C 003F;
-4742 003F;
-4748 003F;
-474E 003F;
-4754 003F;
-475A 003F;
-4760 003F;
-4766 003F;
-476C 003F;
-4772 003F;
-4778 003F;
-477E 003F;
-4784 003F;
-478A 003F;
-4790 003F;
-4796 003F;
-479C 003F;
-47A2 003F;
-47A8 003F;
-47AE 003F;
-47B4 003F;
-47BA 003F;
-47C0 003F;
-47C6 003F;
-47CC 003F;
-47D2 003F;
-47D8 003F;
-47DE 003F;
-47E4 003F;
-47EA 003F;
-47F0 003F;
-47F6 003F;
-47FC 003F;
-4802 003F;
-4808 003F;
-480E 003F;
-4814 003F;
-481A 003F;
-4820 003F;
-4826 003F;
-482C 003F;
-4832 003F;
-4838 003F;
-483E 003F;
-4844 003F;
-484A 003F;
-4850 003F;
-4856 003F;
-485C 003F;
-4862 003F;
-4868 003F;
-486E 003F;
-4874 003F;
-487A 003F;
-4880 003F;
-4886 003F;
-488C 003F;
-4892 003F;
-4898 003F;
-489E 003F;
-48A4 003F;
-48AA 003F;
-48B0 003F;
-48B6 003F;
-48BC 003F;
-48C2 003F;
-48C8 003F;
-48CE 003F;
-48D4 003F;
-48DA 003F;
-48E0 003F;
-48E6 003F;
-48EC 003F;
-48F2 003F;
-48F8 003F;
-48FE 003F;
-4904 003F;
-490A 003F;
-4910 003F;
-4916 003F;
-491C 003F;
-4922 003F;
-4928 003F;
-492E 003F;
-4934 003F;
-493A 003F;
-4940 003F;
-4946 003F;
-494C 003F;
-4952 003F;
-4958 003F;
-495E 003F;
-4964 003F;
-496A 003F;
-4970 003F;
-4976 003F;
-497C 003F;
-4982 003F;
-4988 003F;
-498E 003F;
-4994 003F;
-4999 003F;
-499F 003F;
-49A5 003F;
-49AB 003F;
-49B1 003F;
-49B7 003F;
-49BD 003F;
-49C3 003F;
-49C9 003F;
-49CF 003F;
-49D5 003F;
-49DB 003F;
-49E1 003F;
-49E6 0041;
-49EC 003F;
-49F2 003F;
-49F8 003F;
-49FE 003F;
-4A04 003F;
-4A0A 003F;
-4A10 003F;
-4A16 003F;
-4A1C 003F;
-4A22 003F;
-4A28 003F;
-4A2E 003F;
-4A34 003F;
-4A3A 003F;
-4A40 003F;
-4A46 003F;
-4A4C 003F;
-4A52 003F;
-4A58 003F;
-4A5E 003F;
-4A64 003F;
-4A6A 003F;
-4A6F 003F;
-4A75 003F;
-4A7A 003F;
-4A80 003F;
-4A86 003F;
-4A8C 003F;
-4A92 003F;
-4A98 003F;
-4A9E 003F;
-4AA4 003F;
-4AAA 003F;
-4AB0 003F;
-4AB5 003F;
-4ABB 003F;
-4AC1 003F;
-4AC7 003F;
-4ACD 003F;
-4AD3 003F;
-4AD9 003F;
-4ADF 003F;
-4AE5 003F;
-4AEB 003F;
-4AF1 003F;
-4AF7 003F;
-4AFD 003F;
-4B03 003F;
-4B09 003F;
-4B0F 003F;
-4B15 003F;
-4B1B 003F;
-4B21 003F;
-4B27 003F;
-4B2D 003F;
-2FA03 0021;
-4B38 003F;
-4B3E 003F;
-4B44 003F;
-4B4A 003F;
-4B50 003F;
-4B56 003F;
-4B5C 003F;
-4B62 003F;
-4B68 003F;
-4B6E 003F;
-4B74 003F;
-4B7A 003F;
-4B80 003F;
-4B86 003F;
-4B8C 003F;
-4B92 003F;
-4B98 003F;
-4B9E 003F;
-4BA4 003F;
-4BAA 003F;
-4BB0 003F;
-4BB6 003F;
-4BBC 003F;
-4BC2 003F;
-4BC8 003F;
-2FA08 0021;
-4BD3 003F;
-4BD9 003F;
-4BDF 003F;
-4BE5 003F;
-4BEB 003F;
-4BF1 003F;
-4BF7 003F;
-4BFD 003F;
-4C03 003F;
-4C09 003F;
-4C0F 003F;
-4C15 003F;
-4C1B 003F;
-4C21 003F;
-4C27 003F;
-4C2D 003F;
-4C33 003F;
-4C39 003F;
-4C3F 003F;
-4C45 003F;
-4C4B 003F;
-4C51 003F;
-4C57 003F;
-4C5D 003F;
-4C63 003F;
-4C69 003F;
-4C6F 003F;
-4C75 003F;
-4C7B 003F;
-4C81 003F;
-4C87 003F;
-4C8D 003F;
-4C93 003F;
-4C99 003F;
-4C9F 003F;
-4CA5 003F;
-4CAB 003F;
-4CB1 003F;
-4CB7 003F;
-4CBD 003F;
-4CC3 003F;
-4CC9 003F;
-4CCE 0041;
-4CD4 003F;
-4CDA 003F;
-4CE0 003F;
-4CE6 003F;
-4CEC 003F;
-4CF1 003F;
-4CF7 003F;
-4CFC 003F;
-4D02 003F;
-4D08 003F;
-4D0E 003F;
-4D14 003F;
-4D1A 003F;
-4D20 003F;
-4D26 003F;
-4D2C 003F;
-4D32 003F;
-4D38 003F;
-4D3E 003F;
-4D44 003F;
-4D4A 003F;
-4D50 003F;
-2FA16 0021;
-4D5B 003F;
-4D61 003F;
-4D67 003F;
-4D6D 003F;
-4D73 003F;
-4D79 003F;
-4D7F 003F;
-4D85 003F;
-4D8B 003F;
-4D91 003F;
-4D97 003F;
-4D9D 003F;
-4DA3 003F;
-4DA9 003F;
-4DAF 003F;
-4DB5 003F;
-20005 003F;
-2F9D9 003F;
-2F861 003F;
-2F889 003F;
-FACF 003F;
-2F989 003F;
-2F8F0 003F;
-2F910 003F;
-2F927 003F;
-2F942 003F;
-2F952 003F;
-2F961 003F;
-2F973 003F;
-2F987 003F;
-2F9AD 003F;
-2F9CC 003F;
-2F9E5 003F;
-2F9FB 003F;
-2FA13 003F;
-2A6D3 003F;
-E001 003F;
-F8FB 003F;
-C0000 003F;
-E0005 003F;
-F0005 003F;
-F00FD 003F;
-FFF05 003F;
-FFFFD 003F;
-100005 003F;
-1000FD 003F;
-10FF05 003F;
-10FFFD 003F;
+32C0 0021;
+09E8 0021;
+12423 0021;
+0A68 003F;
+12435 003F;
+2473 0061;
+336D 0062;
+336F 0062;
+3256 0062;
+3259 0062;
+00B2 0061;
+0CE8 0061;
+1015B 0061;
+1D361 0061;
+0D68 0062;
+33E1 0021;
+06F3 0021;
+12420 0021;
+136B 003F;
+12425 003F;
+215C 0062;
+325D 0062;
+32B4 0062;
+0663 0041;
+1949 0041;
+12425 0061;
+1D7DB 0062;
+0F23 0062;
+32C2 0021;
+09EA 0021;
+1243C 0021;
+09F7 003F;
+1243D 003F;
+32B7 0061;
+32BD 0061;
+2783 0041;
+0C6A 0061;
+1010A 0061;
+12452 0041;
+0B6A 0062;
+1244C 0062;
+2784 0021;
+1010B 0021;
+278E 003F;
+10143 003F;
+215D 0061;
+2784 0041;
+0CEB 0061;
+10143 0061;
+12439 0041;
+0BEB 0062;
+12439 0062;
+2785 0021;
+1010C 0021;
+0A6C 003F;
+248D 0061;
+2086 0041;
+194C 0041;
+12440 0061;
+096C 0062;
+33E5 0021;
+06F7 0021;
+12429 0021;
+0C6D 003F;
+215E 0021;
+2077 0041;
+0D6D 0041;
+1241B 0061;
+06F7 0062;
+12429 0062;
+2787 0021;
+1010E 0021;
+0A6E 003F;
+248F 0061;
+2088 0041;
+194E 0041;
+12444 0061;
+096E 0062;
+33E7 0021;
+06F9 0021;
+1242B 0021;
+0BEF 003F;
+2490 0041;
+0669 0061;
+19D9 0061;
+12447 0061;
+07C9 0062;
+12446 0062;
+000F 0061;
+008D 0061;
+0599 0061;
+0610 0061;
+0F35 0061;
+2060 0061;
+FE07 0061;
+1D174 0061;
+1FFFF 0061;
+E0024 0061;
+E0042 0061;
+E0060 0061;
+E007E 0061;
+E011C 0061;
+E013A 0061;
+E0158 0061;
+E0176 0061;
+E0194 0061;
+E01B2 0061;
+E01D0 0061;
+E01EE 0061;
+001D 0041;
+009B 0041;
+05A7 0041;
+06DE 0041;
+1B6E 0041;
+D804 0041;
+FFFA 0041;
+1D182 0041;
+8FFFF 0041;
+E0032 0041;
+E0050 0041;
+E006E 0041;
+E010C 0041;
+E012A 0041;
+E0148 0041;
+E0166 0041;
+E0184 0041;
+E01A2 0041;
+E01C0 0041;
+E01DE 0041;
+0061 0334 0300;
+0061 0334 0306 0303;
+0061 0302 0300 0334;
+0061 030A 0334;
+0061 0334 0303;
+0100 0334;
+0041 0334 0323 0306;
+0340 0061;
+0304 0041;
+031B 0041;
+032C 0041;
+033C 0041;
+0351 0041;
+FE22 0061;
+1DCA 0041;
+05B8 0041;
+064D 0041;
+FE7D 0041;
+0657 0041;
+0735 0041;
+0744 0041;
+07F3 0041;
+0A02 0041;
+0C03 0041;
+10A0D 0041;
+0EC9 0041;
+17C9 0041;
+302B 0041;
+20D6 0041;
+20E5 0041;
+1D552 0021;
+00E0 0021;
+00C4 0021;
+1D41A 003F;
+00AA 003F;
+00E5 003F;
+1EAC 003F;
+1D44E 0061;
+FF21 0041;
+1D43 0061;
+1EB4 0041;
+00E5 0041;
+0105 0041;
+1EAC 0041;
+1D538 0062;
+1EA7 0062;
+0200 0062;
+01E3 0021;
+3373 0021;
+1D01 0021;
+0251 0041;
+000F 0062;
+008D 0062;
+0599 0062;
+0610 0062;
+0F35 0062;
+2060 0062;
+FE07 0062;
+1D174 0062;
+1FFFF 0062;
+E0024 0062;
+E0042 0062;
+E0060 0062;
+E007E 0062;
+E011C 0062;
+E013A 0062;
+E0158 0062;
+E0176 0062;
+E0194 0062;
+E01B2 0062;
+E01D0 0062;
+E01EE 0062;
+0300 0062;
+031B 0062;
+033D 0062;
+FE22 0062;
+05C7 0062;
+FC5E 0062;
+0736 0062;
+093C 0062;
+0CBC 0062;
+0ECA 0062;
+302C 0062;
+20E6 0062;
+1D435 0021;
+1D5BB 003F;
+0062 0061;
+24D1 0061;
+1D63D 0041;
+1D4B7 0062;
+1E02 0062;
+1D03 0021;
+0183 0041;
+010A 0334;
+1D5F0 0021;
+010A 0021;
+1D46A 003F;
+2106 0061;
+1D450 0041;
+1D60A 0061;
+010C 0061;
+1D588 0062;
+010C 0062;
+339D 0041;
+0188 0062;
+1E0B 0334;
+0064 0021;
+1D56F 0021;
+2146 003F;
+1D63F 003F;
+2146 0061;
+0044 0061;
+1D5D7 0041;
+1E0F 0061;
+1D555 0062;
+1E0B 0062;
+3377 0021;
+02A3 0061;
+1D05 0021;
+0257 0021;
+0065 0301 0334;
+0065 0302 0334 0341;
+0065 030C 0334;
+0065 0334 0306 0327;
+0065 0334 0304 0300;
+0065 0302 0334 0323;
+1D4EE 0021;
+00C9 0021;
+0112 0021;
+1D58A 003F;
+0115 003F;
+1E15 003F;
+1D58A 0061;
+1D4D4 0061;
+00E9 0061;
+1EC2 0061;
+0113 0061;
+1EC6 0061;
+2130 0062;
+1EC4 0062;
+1EB8 0062;
+0247 0062;
+0259 0061;
+2107 0041;
+025C 0062;
+029A 0041;
+FF26 0021;
+1D627 003F;
+1D4BB 0061;
+1D405 0061;
+1E1F 0041;
+1D4D5 0062;
+FB01 0061;
+0192 003F;
+0047 0334 0306;
+0047 0334 0304;
+1D60E 0021;
+1D5C0 003F;
+01E7 003F;
+1D524 0041;
+1D4A2 0041;
+01E6 0061;
+1D5F4 0062;
+01E6 0062;
+1DA2 003F;
+1D83 0041;
+0194 0061;
+0068 0334 0308;
+0068 0334 0331;
+1D573 0021;
+210E 003F;
+02B0 003F;
+1D4F1 0061;
+210D 0061;
+0125 0061;
+0127 0061;
+210B 0062;
+1E96 0062;
+01F6 0021;
+2C75 0021;
+0049 0341 0334;
+00EF 0334;
+0049 0304 0334;
+0049 0330 0334;
+1D408 0021;
+0128 0021;
+1D5C2 003F;
+012D 003F;
+FF49 0041;
+1D5C2 0041;
+1D470 0041;
+00EE 0041;
+1EC9 0041;
+1D526 0062;
+00CD 0062;
+2171 0021;
+33CC 0021;
+0131 0021;
+0268 0021;
+0269 0021;
+FF4A 0021;
+1D679 0021;
+1D4D9 003F;
+1D62B 0061;
+1D575 0061;
+01F0 0041;
+1D611 0062;
+0248 0061;
+006B 0334 0341;
+1E35 0334;
+1D542 0021;
+1D5C4 003F;
+0136 003F;
+1D5C4 0041;
+1D4DA 0041;
+1E32 0041;
+1D43E 0062;
+3389 0021;
+33A2 003F;
+33BE 0021;
+2C6A 0021;
+006C 0334 0327;
+1E3A 0334;
+1D5AB 0021;
+1D48D 003F;
+1D38 003F;
+FF4C 0041;
+1D695 0041;
+1D5AB 0041;
+1E38 0041;
+24DB 0062;
+1E3D 0062;
+33D1 0062;
+029F 0061;
+2C60 0062;
+026D 0061;
+004D 0334 0301;
+1D5C6 0021;
+1E42 0021;
+1D5AC 003F;
+33A5 003F;
+1D52A 0041;
+1D40C 0041;
+3383 0021;
+1D4DC 0062;
+338E 0061;
+339C 0061;
+33BD 003F;
+0271 003F;
+006E 0303 0334;
+006E 0331 0334;
+1D511 0021;
+1D427 003F;
+207F 003F;
+1D55F 0061;
+1D4A9 0061;
+0143 0061;
+1E49 0061;
+1D475 0062;
+1E48 0062;
+2116 0062;
+1D3B 0062;
+019E 0061;
+014A 003F;
+00F2 0334;
+004F 0334 0302 0340;
+00D6 0334;
+00F5 0308 0334;
+006F 0334 0328;
+014D 0340 0334;
+006F 031B 0334 0301;
+1EDE 0334;
+1D45C 0021;
+2092 0021;
+1E4F 0021;
+1EDB 0021;
+24DE 003F;
+1ED0 003F;
+01FE 003F;
+1ECC 003F;
+1D5C8 0041;
+1D546 0041;
+00F4 0041;
+022A 0041;
+00F8 0041;
+1ECE 0041;
+1EE3 0041;
+1D40E 0062;
+1ED7 0062;
+01ED 0062;
+0153 0021;
+1D14 0021;
+1D12 0021;
+0275 0021;
+1D3D 0061;
+1D4F9 0021;
+1E57 0021;
+1D617 003F;
+1D665 0061;
+1D5E3 0061;
+1E56 0041;
+1D40F 0062;
+33D7 003F;
+33BA 003F;
+01A4 0021;
+1D4FA 0021;
+1D492 003F;
+FF51 0061;
+0051 0061;
+24C6 0061;
+1D618 0062;
+0072 0334 0301;
+0210 0334;
+FF52 0021;
+1D681 0021;
+1D4FB 003F;
+0154 003F;
+1D597 0061;
+1D479 0061;
+0155 0041;
+1E5C 0041;
+1D597 0062;
+1E59 0062;
+1D19 003F;
+1D1A 003F;
+2C64 0021;
+02B6 0061;
+0053 0334 030C;
+1E63 0307 0334;
+24E2 0021;
+015F 0021;
+1D47A 003F;
+1E68 003F;
+1D5CC 0041;
+1D54A 0041;
+1E66 0041;
+1D4C8 0062;
+1E65 0062;
+00DF 0021;
+0282 0021;
+1D8B 0021;
+0164 0334;
+1E71 0334;
+FF34 0021;
+1E6F 0021;
+1D5E7 003F;
+1D495 0061;
+1D413 0061;
+1D40 0061;
+1E6E 0061;
+1D5E7 0062;
+2121 0041;
+02A7 0041;
+1D75 0041;
+0288 0062;
+016D 0334;
+00FC 0334 0301;
+0075 030B 0334;
+0055 0334 0304;
+01B0 0334;
+0075 0334 031B 0309;
+0055 0334 032D;
+1D448 0021;
+01D8 0021;
+1EEB 0021;
+1D66A 003F;
+01D4 003F;
+0217 003F;
+1D496 0061;
+1D414 0061;
+1D64 0061;
+00DC 0061;
+0173 0061;
+1EE8 0061;
+1E75 0061;
+1D580 0062;
+01D6 0062;
+1EF1 0062;
+1D1E 0021;
+1D99 0021;
+1D5A 003F;
+1DB7 003F;
+FF56 0021;
+1D61D 0021;
+2164 003F;
+036E 0061;
+24E5 0061;
+1D5E9 0041;
+1D5CF 0062;
+2165 0021;
+1D20 003F;
+0245 0021;
+0077 0302 0334;
+1D464 0021;
+1D42 0021;
+0057 003F;
+1E88 003F;
+1D6A0 0041;
+1D61E 0041;
+1E86 0041;
+1D582 0062;
+1D21 0041;
+1D535 0021;
+1E8B 0021;
+1D583 003F;
+1D605 0061;
+1D51B 0061;
+1E8C 0041;
+1D4E7 0062;
+217B 0061;
+0059 0302 0334;
+0079 0309 0334;
+1D418 0021;
+1EF7 0021;
+1D5B8 003F;
+1D432 0061;
+FF39 0061;
+02B8 0061;
+0232 0061;
+1D480 0062;
+1EF5 0062;
+017A 0334;
+007A 0334 0331;
+1D585 0021;
+1D5D3 003F;
+017B 003F;
+1D5D3 0041;
+1D4E9 0041;
+1E92 0041;
+1D585 0062;
+01B6 0021;
+0290 0021;
+2C6C 0041;
+01EE 0041;
+01BA 0062;
+01BF 0061;
+01BC 0062;
+02C0 0062;
+02E4 0062;
+02A1 0062;
+01C3 0062;
+03B1 0334 0313 0301;
+0391 0345 0313 0334 0300;
+1F09 0334;
+0391 0345 0314 0334 0340;
+1F71 0334;
+03B1 0334 0345 0342;
+1F04 0021;
+03AC 0021;
+1F04 003F;
+03AC 003F;
+1D6A8 0061;
+1F06 0061;
+1F8B 0061;
+1FB0 0061;
+1F04 0062;
+03AC 0062;
+1D66 0021;
+0392 0061;
+1D66 0062;
+1D792 003F;
+1D792 0041;
+1D773 0021;
+1D6FF 0041;
+1D5F 0062;
+1F19 0334;
+0395 0334 0300;
+1F1D 0021;
+1F1C 003F;
+1D6DC 0041;
+1F12 0041;
+1D6DC 0062;
+1FC9 0062;
+03DA 0041;
+1D701 0061;
+1D721 0062;
+03B7 0334 0343 0340;
+1FC3 0313 0334;
+03B7 0314 0334 0340;
+1FCC 0314 0342 0334;
+03B7 0334 0340 0345;
+1F24 0021;
+03AE 0021;
+1F22 003F;
+1FC4 003F;
+1D75C 0041;
+1F90 0061;
+1F9F 0061;
+03B7 0062;
+1F25 0062;
+1D703 0021;
+1D78B 003F;
+1D6C9 0041;
+1D75D 0041;
+1DBF 0062;
+0399 0343 0334 0342;
+0399 0314 0342 0334;
+1FD6 0334;
+1D6CA 0021;
+1FDB 0021;
+1F34 003F;
+1FD9 003F;
+1F30 0041;
+1F3F 0041;
+1FD7 0041;
+1F3D 0062;
+1D6DE 0021;
+1D725 003F;
+1D6EB 0061;
+03D7 0041;
+1D740 0061;
+1D760 0062;
+1D727 003F;
+3382 003F;
+3395 0041;
+1D6EE 0021;
+1D6B4 0061;
+1D6EF 0021;
+1D6B5 0061;
+03BF 0313 0301 0334;
+03BF 0314 0340 0334;
+039F 0021;
+039F 003F;
+1D7B8 0061;
+1F41 0061;
+039F 0062;
+1D71B 0021;
+1D6F1 003F;
+03A0 0061;
+1D6F1 0062;
+03D8 0021;
+1D7C8 0021;
+1FE4 003F;
+1D6F2 0061;
+1D6B8 0062;
+1D7BC 0021;
+03C3 0041;
+1D768 0061;
+03FE 0021;
+1D6D5 0021;
+1D6D5 0041;
+03C5 0334 0343;
+03C5 0314 0334 0300;
+03C5 0340 0334;
+03CB 0340 0334;
+1F55 0021;
+1D7BE 003F;
+03CB 003F;
+1D6BC 0041;
+1F7B 0061;
+1FE2 0041;
+1F57 0062;
+1D78D 0021;
+1D69 003F;
+1D76B 0061;
+1D69 0062;
+03C7 0041;
+1D74C 0062;
+1D6BF 003F;
+1D6D9 0062;
+03A9 0343 0334 0341;
+1F6E 0334;
+1F61 0341 0334;
+03C9 0314 0342 0334;
+2126 0334 0341;
+2126 0345 0334;
+1F61 0021;
+1D714 003F;
+1F6D 003F;
+1D788 0061;
+1FA4 0041;
+1F6D 0041;
+1FFB 0061;
+1D76E 0062;
+1FA7 0062;
+03F8 0061;
+2C85 0061;
+2CB7 0061;
+2C8F 0061;
+2C95 0061;
+2C96 0062;
+2CBA 0062;
+2C9E 0062;
+2CA4 0062;
+2CAA 0062;
+2CB0 0062;
+03E2 0062;
+2CC6 0062;
+2CC8 0062;
+2CCC 0062;
+2CD2 0062;
+2CD6 0062;
+2CDA 0062;
+2CB2 0062;
+2CE0 0062;
+04D0 0334;
+04D2 0334;
+04D9 0041;
+04DA 0061;
+0412 003F;
+0490 0062;
+0494 0062;
+0500 0062;
+0433 0341 0021;
+0413 0341 0041;
+0415 0334 0308;
+0400 0062;
+04D7 0062;
+0416 0041;
+04DD 0041;
+0417 0001 0308 0061;
+04DF 0021;
+0405 0041;
+0418 0340 0334;
+0418 0001 0308 0061;
+04E4 0021;
+0406 0001 0308 0061;
+0457 0062;
+0439 0062;
+049A 003F;
+049E 003F;
+1D2B 0041;
+0459 0062;
+04CE 0062;
+04A2 003F;
+040A 003F;
+043E 0334 0308;
+04E8 0021;
+04EB 0041;
+04A6 0062;
+048E 0062;
+04AA 0062;
+04AC 0062;
+041A 0341 003F;
+0423 0304 0334;
+0443 0334 0306;
+0443 0334 0308;
+0443 0334 030B;
+04AE 0021;
+0424 0021;
+04FE 0021;
+0460 0021;
+047A 0021;
+0427 0021;
+04F5 0041;
+04CB 0062;
+04BE 0062;
+0429 0062;
+04F9 0021;
+042C 0041;
+042D 0041;
+04EC 0041;
+0465 0041;
+0469 0041;
+0471 0041;
+0474 030F 0334;
+04A8 003F;
+2C01 003F;
+2C04 003F;
+2C07 003F;
+2C0A 003F;
+2C0D 003F;
+2C10 003F;
+2C13 003F;
+2C16 003F;
+2C19 003F;
+2C1C 003F;
+2C1F 003F;
+2C22 003F;
+2C25 003F;
+2C28 003F;
+2C2B 003F;
+2C2E 003F;
+10A1 003F;
+10A3 003F;
+10A5 003F;
+10C1 003F;
+10A8 003F;
+10AA 003F;
+10DC 0062;
+10DD 0041;
+10DF 0041;
+10E1 0041;
+10F3 0041;
+10E4 0041;
+10E6 0041;
+10E8 0041;
+10EA 0041;
+10EC 0041;
+10EE 0041;
+10EF 0041;
+10F5 0041;
+10F9 0041;
+0533 003F;
+0587 0041;
+0568 0062;
+056B 0062;
+056E 0062;
+0571 0062;
+0574 0062;
+0575 0062;
+0578 0062;
+057B 0062;
+057E 0062;
+0551 003F;
+0554 003F;
+0559 0041;
+FB2E 0041;
+05D1 0061;
+05D3 0334 05BC;
+FB23 003F;
+FB4B 0062;
+05D8 0334 05BC;
+FB39 0041;
+FB3A 0021;
+FB25 0021;
+05DD 0041;
+05E1 003F;
+FB43 0021;
+FB46 003F;
+FB27 003F;
+FB2A 0021;
+FB4A 0334;
+10902 0062;
+10908 0062;
+1090E 0062;
+10914 0062;
+0627 0653 0021;
+FE84 003F;
+FB51 0041;
+FE85 0062;
+0626 0334;
+064A 0654 0062;
+FC98 0041;
+FCDF 0061;
+FBED 0041;
+FBF1 0041;
+FC68 0041;
+FBF6 0061;
+FE8E 0062;
+FE91 003F;
+FC06 0021;
+FC6A 003F;
+FC6D 003F;
+FC0A 0061;
+FB58 0021;
+FB5C 003F;
+0752 003F;
+0629 0061;
+FE97 0062;
+FC0C 0021;
+FC0D 0061;
+FCE3 0021;
+FD57 003F;
+FC0F 0021;
+062B 0041;
+FCE5 0021;
+FC13 0021;
+0679 0041;
+FB5F 0061;
+067F 0041;
+FE9E 0061;
+FDFB 003F;
+FDA5 003F;
+FB78 003F;
+0684 0041;
+FB7B 0061;
+FB7F 0061;
+FEA3 0062;
+FD5B 003F;
+FEA7 0021;
+FC19 0061;
+FD04 0021;
+0758 003F;
+FEAC 0041;
+068A 003F;
+068D 0061;
+0690 003F;
+FEAE 0041;
+FEAF 0041;
+0694 003F;
+FB8A 0041;
+FEB3 0021;
+FCAD 0061;
+FC1D 0041;
+FDC6 003F;
+FD61 003F;
+FCE8 0061;
+FEB7 003F;
+FD37 0041;
+FD2E 0062;
+FD39 0041;
+FCE9 0041;
+FCEA 0021;
+069A 003F;
+FEBB 0021;
+FC20 0061;
+FD0F 0061;
+FC21 0061;
+FD06 0061;
+FC22 0021;
+FC24 0021;
+FC25 0021;
+069D 003F;
+FEC2 0061;
+FC27 0041;
+FCF5 0061;
+FEC6 0061;
+FECB 0021;
+FC29 0061;
+FD76 0021;
+FCF8 0021;
+FECF 0062;
+FD7B 003F;
+06A0 003F;
+FED3 003F;
+FC2E 0021;
+FC30 0021;
+FC32 0061;
+06A4 0041;
+06A6 0041;
+FED7 0021;
+FC33 0061;
+FD7F 003F;
+06A7 003F;
+FEDB 0062;
+FC39 0061;
+FCC7 0062;
+FDBB 0061;
+FB90 0021;
+06AB 003F;
+FBD5 0062;
+FB94 0062;
+FB9C 0062;
+FB98 0062;
+FEDF 003F;
+FEF7 0021;
+FC3F 0021;
+FDAC 003F;
+FD81 003F;
+FC85 003F;
+FCCD 003F;
+06B6 003F;
+06FE 003F;
+FC45 0061;
+FC46 0061;
+FC47 0061;
+FC48 0041;
+FEE7 0021;
+FC4B 0061;
+FDC7 003F;
+FC4D 0021;
+FCEE 0041;
+FCEF 0061;
+06BA 0061;
+FBA2 0062;
+0769 003F;
+FEEC 0062;
+FD94 003F;
+FBAB 0061;
+FBA7 0061;
+06C0 003F;
+FEED 0041;
+FBE1 0041;
+FBD8 0041;
+FBDB 0062;
+FBDF 0041;
+FBE9 0041;
+06E6 0061;
+FCDA 0062;
+FCDC 0062;
+FC93 0062;
+FCDE 0062;
+FBFD 003F;
+FBE5 0021;
+06D2 0021;
+0710 0021;
+0716 0021;
+074D 0021;
+071F 0021;
+0723 0041;
+0729 0021;
+079A 0021;
+0785 0021;
+07A5 0021;
+0798 0021;
+078F 0021;
+0792 0021;
+07B1 0021;
+07AB 0021;
+07CA 0021;
+07D0 0021;
+07D6 0021;
+07D9 0041;
+07DF 0021;
+07E5 0021;
+2D31 0021;
+2D37 0021;
+2D3D 0021;
+2D43 0021;
+2D49 0021;
+2D4F 0021;
+2D55 0021;
+2D5B 0021;
+2D61 0021;
+1200 0021;
+1206 0021;
+120C 0021;
+1211 0021;
+1217 0021;
+121D 0021;
+1383 0021;
+1224 0021;
+122A 0021;
+2D82 0021;
+1235 0021;
+123A 0021;
+2D84 0021;
+1245 0021;
+124C 0021;
+1254 0021;
+125C 0021;
+1264 0021;
+1386 0021;
+126B 0021;
+1271 0021;
+1277 0021;
+127C 0021;
+1281 0021;
+1287 0021;
+1290 0021;
+1296 0021;
+129B 0021;
+12A0 0021;
+12A6 0021;
+12AB 0021;
+12B2 0021;
+12BA 0021;
+12C2 0021;
+12CA 0021;
+12D0 0021;
+12D6 0021;
+12DD 0021;
+12E2 0021;
+12E8 0021;
+12EE 0021;
+12F4 0021;
+12F9 0021;
+12FF 0021;
+1304 0021;
+1309 0021;
+130F 0021;
+1318 0021;
+131E 0021;
+1320 0021;
+1326 0021;
+132B 0021;
+1330 0021;
+1336 0021;
+133B 0021;
+1341 0021;
+1347 0021;
+134D 0021;
+138B 0021;
+1355 0021;
+138F 0021;
+2DA1 0021;
+2DA8 0021;
+2DAE 0021;
+2DB5 0021;
+2DBC 0021;
+2DC3 0021;
+2DCA 0021;
+2DD1 0021;
+2DD8 0021;
+2DDE 0021;
+0908 0021;
+0961 0021;
+0912 0021;
+0959 0334;
+0918 003F;
+091C 0062;
+0921 0021;
+0923 0061;
+0928 0061;
+097F 003F;
+0930 0021;
+0935 0061;
+097D 0061;
+0943 0061;
+0947 0061;
+094D 0021;
+098A 0021;
+0990 0021;
+0998 0021;
+099E 0021;
+09DD 0334;
+09A5 0062;
+09AC 0062;
+09F0 003F;
+09B9 003F;
+09C2 003F;
+09C7 0591 09BE 0061;
+0334 09CD;
+0A0A 0041;
+0A72 0041;
+0A39 0021;
+0A17 0061;
+0A5B 0021;
+0A21 003F;
+0A27 003F;
+0A2C 0041;
+0A32 0041;
+0A41 0021;
+0334 0A4D;
+0A88 0041;
+0AE1 0041;
+0A94 0041;
+0A9A 0041;
+0AA0 0041;
+0AA6 0041;
+0AAD 0041;
+0AB5 0041;
+0ABE 0041;
+0AC4 0041;
+0AC9 0041;
+0B07 003F;
+0B0C 003F;
+0B15 003F;
+0B1B 003F;
+0B21 0B3C 0334;
+0B24 0021;
+0B2B 0021;
+0B30 0021;
+0B37 0021;
+0B40 0021;
+0B47 1D165 0B56 0061;
+0B47 0B57 0041;
+0B85 0062;
+0B8E 0062;
+0B92 0BD7 0041;
+0B9F 003F;
+0BAE 003F;
+0BB4 003F;
+0BBE 003F;
+0BC6 0591 0BBE 0061;
+0BC7 0BBE 003F;
+0C05 0021;
+0C0B 0021;
+0C10 0021;
+0C17 0021;
+0C1D 0021;
+0C23 0021;
+0C2A 0021;
+0C30 0021;
+0C37 0021;
+0C41 0021;
+0C47 0062;
+0C4C 0062;
+0C86 0041;
+0CE0 0041;
+0C92 0041;
+0C98 0041;
+0C9E 0041;
+0CA4 0041;
+0CAB 0041;
+0CB1 0041;
+0CB9 0041;
+0CBF 0CD5 0021;
+0CE2 0021;
+0CC7 003F;
+0CCA 0001 0CD5 0061;
+0CD5 0021;
+0D09 0021;
+0D0E 0021;
+0D15 0021;
+0D1B 0021;
+0D21 0021;
+0D27 0021;
+0D2E 0021;
+0D34 0021;
+0D3E 0021;
+0D46 0021;
+0D46 0D3E 0041;
+0D4D 0334;
+0D89 0062;
+0D8F 0062;
+0D95 0062;
+0D9E 0062;
+0DA4 0062;
+0DAA 0062;
+0DB0 0062;
+0DB7 0062;
+0DC0 0062;
+0DC6 0062;
+0DD3 0061;
+0DD9 0001 0DDF 0061;
+0DDC 0041;
+0DD9 0DDF 003F;
+A801 0061;
+A807 0021;
+A80E 0021;
+A814 0021;
+A81A 0021;
+A820 0021;
+A826 0021;
+10A05 0021;
+10A13 0021;
+10A1B 0021;
+10A21 0021;
+10A27 0021;
+10A2D 0021;
+10A33 0021;
+0E42 0E01 0041;
+0E42 0E02 0041;
+0E42 0E03 0041;
+0E42 0E04 0041;
+0E42 0E05 0041;
+0E42 0E06 0041;
+0E42 0E07 0041;
+0E42 0E08 0041;
+0E42 0E09 0041;
+0E42 0E0A 0041;
+0E42 0E0B 0041;
+0E42 0E0C 0041;
+0E42 0E0D 0041;
+0E42 0E0E 0041;
+0E42 0E0F 0041;
+0E42 0E10 0041;
+0E42 0E11 0041;
+0E42 0E12 0041;
+0E42 0E13 0041;
+0E42 0E14 0041;
+0E42 0E15 0041;
+0E42 0E16 0041;
+0E42 0E17 0041;
+0E42 0E18 0041;
+0E42 0E19 0041;
+0E42 0E1A 0041;
+0E42 0E1B 0041;
+0E42 0E1C 0041;
+0E42 0E1D 0041;
+0E42 0E1E 0041;
+0E42 0E1F 0041;
+0E42 0E20 0041;
+0E42 0E21 0041;
+0E42 0E22 0041;
+0E42 0E23 0041;
+0E42 0E24 0041;
+0E42 0E25 0041;
+0E42 0E26 0041;
+0E42 0E27 0041;
+0E42 0E28 0041;
+0E42 0E29 0041;
+0E42 0E2A 0041;
+0E42 0E2B 0041;
+0E42 0E2C 0041;
+0E42 0E2D 0041;
+0E42 0E2E 0041;
+0E32 0041;
+0E37 0021;
+0E40 0062;
+0E40 1D165 0E0A 0061;
+0E40 1D165 0E14 0061;
+0E40 1D165 0E1E 0061;
+0E40 1D165 0E28 0061;
+0E41 0001 0E03 0061;
+0E41 0001 0E0D 0061;
+0E41 0001 0E17 0061;
+0E41 0001 0E21 0061;
+0E41 0001 0E2B 0061;
+0E42 0591 0E05 0061;
+0E42 0591 0E0F 0061;
+0E42 0591 0E19 0061;
+0E42 0591 0E23 0061;
+0E42 0591 0E2D 0061;
+0E43 1D165 0E07 0061;
+0E43 1D165 0E11 0061;
+0E43 1D165 0E1B 0061;
+0E43 1D165 0E25 0061;
+0E44 0061;
+0E44 0001 0E0A 0061;
+0E44 0001 0E14 0061;
+0E44 0001 0E1E 0061;
+0E44 0001 0E28 0061;
+0E81 0062;
+0E82 0062;
+0E84 0062;
+0E87 0062;
+0E88 0062;
+0E8A 0062;
+0E8D 0062;
+0E94 0062;
+0E95 0062;
+0E96 0062;
+0E97 0062;
+0E99 0062;
+0E9A 0062;
+0E9B 0062;
+0E9C 0062;
+0E9D 0062;
+0E9E 0062;
+0E9F 0062;
+0EA1 0062;
+0EA2 0062;
+0EA3 0062;
+0EA5 0062;
+0EA7 0062;
+0EAA 0062;
+0EAB 0062;
+0EC4 0EDC 0062;
+0EC4 0EDD 0062;
+0EAD 0062;
+0EAE 0062;
+0EAF 0062;
+0EB4 003F;
+0EB9 0061;
+0EC0 0591 0E84 0061;
+0EC0 0591 0E9A 0061;
+0EC0 0591 0EA7 0061;
+0EC1 1D165 0E82 0061;
+0EC1 1D165 0E99 0061;
+0EC1 1D165 0EA5 0061;
+0EC2 0001 0E82 0061;
+0EC2 0001 0E99 0061;
+0EC2 0001 0EA5 0061;
+0EC3 0591 0E81 0061;
+0EC3 0591 0E97 0061;
+0EC3 0591 0EA3 0061;
+0EC4 0062;
+0EC4 1D165 0E96 0061;
+0EC4 1D165 0EA2 0061;
+0F40 0061;
+0F42 0061;
+0F45 0061;
+0F49 0061;
+0F4C 0061;
+0F4F 0061;
+0FA1 0061;
+0F55 0061;
+0F58 0061;
+0F5B 0061;
+0FBA 0041;
+0FB0 0061;
+0FB2 003F;
+0FB3 0F71 0021;
+0FB5 0041;
+0F00 0041;
+0F71 003F;
+0334 0F80;
+0334 0F74 0F71;
+0FB2 0F80 0062;
+0FB3 0591 0F80 0061;
+0F7A 0021;
+0F84 0061;
+A845 0061;
+A86C 0061;
+A84D 0061;
+A853 0061;
+A868 0061;
+A85A 0061;
+A85D 0061;
+A85F 0061;
+1901 0061;
+1907 0061;
+190D 0061;
+1913 0061;
+1919 0061;
+1922 0061;
+1928 0061;
+1932 0061;
+1938 0061;
+1705 0061;
+170B 0061;
+1712 0061;
+1723 0021;
+1729 0021;
+172F 0021;
+1734 0041;
+1745 0041;
+174B 0041;
+1751 0041;
+1763 0041;
+1769 0041;
+1770 0041;
+1A03 0041;
+1A09 0041;
+1A0F 0041;
+1A15 0041;
+1A1A 0062;
+1004 0062;
+100A 0062;
+1010 0062;
+1016 0062;
+101C 0062;
+1020 0062;
+1025 102E 0041;
+1054 003F;
+1030 003F;
+1059 003F;
+1783 0062;
+1789 0062;
+178F 0062;
+1795 0062;
+179B 0062;
+17A1 0062;
+17A6 0062;
+17AC 0062;
+17B2 0062;
+17B8 0062;
+17BE 0062;
+17C4 0062;
+1953 0061;
+1959 0061;
+195F 0061;
+1965 0061;
+196B 0061;
+1973 0061;
+1984 0061;
+198A 0061;
+1990 0061;
+1996 0061;
+199C 0061;
+19A0 0061;
+19A6 0061;
+19B2 0061;
+19B8 0061;
+19BE 0061;
+19C4 0061;
+1B05 0061;
+1B07 1B35 0041;
+1B0B 1B35 0021;
+1B0F 0061;
+1B13 0062;
+1B17 0062;
+1B1D 0062;
+1B47 0062;
+1B48 0062;
+1B2D 0062;
+1B32 0062;
+1B37 0062;
+1B3C 003F;
+1B3F 0001 1B35 0061;
+1B42 1D165 1B35 0061;
+1882 0041;
+1820 0041;
+1845 0041;
+1846 0041;
+1826 0041;
+184A 0041;
+182B 0041;
+184E 0041;
+182F 0041;
+18A2 0041;
+1833 0041;
+185C 0041;
+1836 0041;
+1856 0041;
+1863 0041;
+186E 0041;
+1859 0041;
+185A 0041;
+188E 0041;
+1891 0041;
+18A3 0041;
+18A7 0041;
+13A4 003F;
+13AA 003F;
+13B0 003F;
+13B6 003F;
+13BC 003F;
+13C2 003F;
+13C8 003F;
+13CE 003F;
+13D4 003F;
+13DA 003F;
+13E0 003F;
+13E6 003F;
+13EC 003F;
+13F2 003F;
+1404 003F;
+140A 003F;
+1410 003F;
+1416 003F;
+141C 003F;
+1422 003F;
+1428 003F;
+142E 003F;
+1434 003F;
+143A 003F;
+1440 003F;
+1446 003F;
+144C 003F;
+1452 003F;
+1458 003F;
+145E 003F;
+1464 003F;
+146A 003F;
+1470 003F;
+1476 003F;
+147C 003F;
+1482 003F;
+1488 003F;
+148E 003F;
+1494 003F;
+149A 003F;
+14A0 003F;
+14A6 003F;
+14AC 003F;
+14B2 003F;
+14B8 003F;
+14BE 003F;
+14C4 003F;
+14CA 003F;
+14D0 003F;
+14D6 003F;
+14DC 003F;
+14E2 003F;
+14E8 003F;
+14EE 003F;
+14F4 003F;
+14FA 003F;
+1500 003F;
+1506 003F;
+150C 003F;
+1512 003F;
+1518 003F;
+151E 003F;
+1524 003F;
+152A 003F;
+1530 003F;
+1536 003F;
+153C 003F;
+1542 003F;
+1548 003F;
+154E 003F;
+1554 003F;
+155A 003F;
+1560 003F;
+1566 003F;
+156C 003F;
+1572 003F;
+1578 003F;
+157E 003F;
+1584 003F;
+158A 003F;
+158F 003F;
+1595 003F;
+1676 003F;
+159B 003F;
+15A1 003F;
+157C 003F;
+15AC 003F;
+15B2 003F;
+15B8 003F;
+15BE 003F;
+15C4 003F;
+15CA 003F;
+15D0 003F;
+15D6 003F;
+15DC 003F;
+15E2 003F;
+15E8 003F;
+15EE 003F;
+15F4 003F;
+15FA 003F;
+1600 003F;
+1606 003F;
+160C 003F;
+1612 003F;
+1618 003F;
+161E 003F;
+1624 003F;
+162A 003F;
+1630 003F;
+1636 003F;
+163C 003F;
+1642 003F;
+1648 003F;
+164E 003F;
+1654 003F;
+165A 003F;
+1660 003F;
+1666 003F;
+166C 003F;
+1686 003F;
+168C 003F;
+1692 003F;
+1698 003F;
+16A2 0061;
+16A9 003F;
+16B1 003F;
+16B7 003F;
+16BA 0062;
+16C4 0021;
+16D5 0021;
+16EA 0061;
+16D3 0021;
+16D9 0041;
+16DE 003F;
+16E3 003F;
+16E7 0021;
+1100 0062;
+AC00 1175 0021;
+AC05 0061;
+1102 003F;
+1103 0041;
+FFA8 0062;
+1106 003F;
+1107 0041;
+FFB3 0062;
+3146 003F;
+FFB7 0062;
+FFB8 0062;
+110E 003F;
+110F 003F;
+1110 0041;
+FFBD 0061;
+FFBE 0062;
+D788 1175 0021;
+D7A2 0061;
+3166 0041;
+111A 0041;
+3171 0041;
+FFB4 0021;
+3175 0041;
+1128 0061;
+112C 003F;
+112F 003F;
+1133 0061;
+1138 0061;
+113E 0061;
+1143 0061;
+1148 0061;
+114D 0061;
+1153 0061;
+1158 003F;
+1160 0041;
+1162 0041;
+1164 0041;
+1166 0041;
+1168 0041;
+116A 0041;
+116C 0041;
+116E 0041;
+1170 0041;
+1172 0041;
+1174 0041;
+1177 0061;
+117D 0061;
+1183 0061;
+1187 0061;
+118C 0061;
+318A 0041;
+1195 0061;
+119B 0061;
+11A0 0061;
+FFA3 0021;
+11AC 0062;
+FFAA 0021;
+FFAC 0021;
+FFAE 0021;
+11B6 0061;
+11BC 0061;
+11C2 0061;
+3167 0041;
+11CC 003F;
+11D0 0061;
+11D5 0061;
+316D 0041;
+11DE 0061;
+11E3 0061;
+11E9 0061;
+11EF 0061;
+11F3 0061;
+11F9 0061;
+30A2 0061;
+30A3 0021;
+30A4 0062;
+30A5 003F;
+FF73 0062;
+3048 0061;
+32D4 0021;
+FF6B 0062;
+30AC 003F;
+330C 0021;
+304E 0021;
+3310 0062;
+3316 0062;
+30AF 0061;
+331A 0041;
+331C 003F;
+3054 0334;
+3054 0041;
+30B6 0021;
+3320 0021;
+30B7 0041;
+30B9 3099 0334;
+3059 0062;
+FF7E 0041;
+30BD 0021;
+305F 3099 0334;
+3060 0061;
+30C1 0061;
+30C5 0021;
+30C3 0062;
+FF83 0041;
+30C9 0021;
+3326 003F;
+3328 003F;
+31F4 003F;
+30CD 0041;
+3329 003F;
+3070 003F;
+3070 0041;
+30D2 0334 309A;
+32EA 0041;
+3330 0061;
+31F7 003F;
+32EB 0062;
+30D9 0334;
+333C 0021;
+307A 0062;
+30DB 0334 3099;
+3341 0041;
+307C 0062;
+FF8F 003F;
+3345 003F;
+307F 0062;
+3080 0041;
+30E1 0041;
+30E2 0041;
+334F 0061;
+32F4 0021;
+3350 003F;
+32F5 0061;
+FF97 0061;
+31FC 0062;
+308B 0041;
+308C 0041;
+31FF 003F;
+308F 003F;
+3357 0041;
+32FD 0021;
+30FA 003F;
+FF9D 0062;
+3108 0062;
+310C 0062;
+31AD 0062;
+3112 0062;
+3117 0061;
+311B 0061;
+31A5 0062;
+3121 0062;
+31B0 0062;
+31B3 0062;
+A001 0062;
+A007 0062;
+A00D 0062;
+A013 0062;
+A019 0062;
+A01F 0062;
+A025 0062;
+A02B 0062;
+A031 0062;
+A037 0062;
+A03D 0062;
+A043 0062;
+A049 0062;
+A04F 0062;
+A055 0062;
+A05B 0062;
+A061 0062;
+A067 0062;
+A06D 0062;
+A073 0062;
+A079 0062;
+A07F 0062;
+A085 0062;
+A08B 0062;
+A091 0062;
+A097 0062;
+A09D 0062;
+A0A3 0062;
+A0A9 0062;
+A0AF 0062;
+A0B5 0062;
+A0BB 0062;
+A0C1 0062;
+A0C7 0062;
+A0CD 0062;
+A0D3 0062;
+A0D9 0062;
+A0DF 0062;
+A0E5 0062;
+A0EB 0062;
+A0F1 0062;
+A0F7 0062;
+A0FD 0062;
+A103 0062;
+A109 0062;
+A10F 0062;
+A115 0062;
+A11B 0062;
+A121 0062;
+A127 0062;
+A12D 0062;
+A133 0062;
+A139 0062;
+A13F 0062;
+A145 0062;
+A14B 0062;
+A151 0062;
+A157 0062;
+A15D 0062;
+A163 0062;
+A169 0062;
+A16F 0062;
+A175 0062;
+A17B 0062;
+A181 0062;
+A187 0062;
+A18D 0062;
+A193 0062;
+A199 0062;
+A19F 0062;
+A1A5 0062;
+A1AB 0062;
+A1B1 0062;
+A1B7 0062;
+A1BD 0062;
+A1C3 0062;
+A1C9 0062;
+A1CF 0062;
+A1D5 0062;
+A1DB 0062;
+A1E1 0062;
+A1E7 0062;
+A1ED 0062;
+A1F3 0062;
+A1F9 0062;
+A1FF 0062;
+A205 0062;
+A20B 0062;
+A211 0062;
+A217 0062;
+A21D 0062;
+A223 0062;
+A229 0062;
+A22F 0062;
+A235 0062;
+A23B 0062;
+A241 0062;
+A247 0062;
+A24D 0062;
+A253 0062;
+A259 0062;
+A25F 0062;
+A265 0062;
+A26B 0062;
+A271 0062;
+A277 0062;
+A27D 0062;
+A283 0062;
+A289 0062;
+A28F 0062;
+A295 0062;
+A29B 0062;
+A2A1 0062;
+A2A7 0062;
+A2AD 0062;
+A2B3 0062;
+A2B9 0062;
+A2BF 0062;
+A2C5 0062;
+A2CB 0062;
+A2D1 0062;
+A2D7 0062;
+A2DD 0062;
+A2E3 0062;
+A2E9 0062;
+A2EF 0062;
+A2F5 0062;
+A2FB 0062;
+A301 0062;
+A307 0062;
+A30D 0062;
+A313 0062;
+A319 0062;
+A31F 0062;
+A325 0062;
+A32B 0062;
+A331 0062;
+A337 0062;
+A33D 0062;
+A343 0062;
+A349 0062;
+A34F 0062;
+A355 0062;
+A35B 0062;
+A361 0062;
+A367 0062;
+A36D 0062;
+A373 0062;
+A379 0062;
+A37F 0062;
+A385 0062;
+A38B 0062;
+A391 0062;
+A397 0062;
+A39D 0062;
+A3A3 0062;
+A3A9 0062;
+A3AF 0062;
+A3B5 0062;
+A3BB 0062;
+A3C1 0062;
+A3C7 0062;
+A3CD 0062;
+A3D3 0062;
+A3D9 0062;
+A3DF 0062;
+A3E5 0062;
+A3EB 0062;
+A3F1 0062;
+A3F7 0062;
+A3FD 0062;
+A403 0062;
+A409 0062;
+A40F 0062;
+A415 0062;
+A41B 0062;
+A421 0062;
+A427 0062;
+A42D 0062;
+A433 0062;
+A439 0062;
+A43F 0062;
+A445 0062;
+A44B 0062;
+A451 0062;
+A457 0062;
+A45D 0062;
+A463 0062;
+A469 0062;
+A46F 0062;
+A475 0062;
+A47B 0062;
+A481 0062;
+A487 0062;
+10300 0062;
+10306 0062;
+1030C 0062;
+10312 0062;
+10318 0062;
+1031E 0062;
+10335 0062;
+1033B 0062;
+10341 0062;
+10347 0062;
+10429 0061;
+1042C 0061;
+1042F 0061;
+10432 0061;
+10435 0061;
+10438 0061;
+1043B 0061;
+1043E 0061;
+10441 0061;
+10444 0061;
+10447 0061;
+1044A 0061;
+1044D 0061;
+10450 0062;
+10456 0062;
+1045C 0062;
+10462 0062;
+10468 0062;
+1046E 0062;
+10474 0062;
+1047A 0062;
+10480 0062;
+10486 0062;
+1048C 0062;
+10492 0062;
+10498 0062;
+10000 0062;
+10006 0062;
+1000D 0062;
+10013 0062;
+10019 0062;
+1001F 0062;
+10025 0062;
+1002C 0062;
+10032 0062;
+10038 0062;
+10040 0062;
+10046 0062;
+1004C 0062;
+10054 0062;
+1005A 0062;
+10082 0062;
+10088 0062;
+1008E 0062;
+10094 0062;
+1009A 0062;
+100A0 0062;
+100A6 0062;
+100AC 0062;
+100B2 0062;
+100B8 0062;
+100BE 0062;
+100C4 0062;
+100CA 0062;
+100D0 0062;
+100D6 0062;
+100DC 0062;
+100E2 0062;
+100E8 0062;
+100EE 0062;
+100F4 0062;
+100FA 0062;
+10805 0062;
+1080E 0062;
+10814 0062;
+1081A 0062;
+10820 0062;
+10826 0062;
+1082C 0062;
+10832 0062;
+1083C 0062;
+10384 0062;
+1038A 0062;
+10390 0062;
+10396 0062;
+1039C 0062;
+103A4 0062;
+103AA 0062;
+103B0 0062;
+103B6 0062;
+103BC 0062;
+103C2 0062;
+103CC 0062;
+12002 0062;
+12008 0062;
+1200E 0062;
+12014 0062;
+1201A 0062;
+12020 0062;
+12026 0062;
+1202C 0062;
+12032 0062;
+12038 0062;
+1203E 0062;
+12044 0062;
+1204A 0062;
+12050 0062;
+12056 0062;
+1205C 0062;
+12062 0062;
+12068 0062;
+1206E 0062;
+12074 0062;
+1207A 0062;
+12080 0062;
+12086 0062;
+1208C 0062;
+12092 0062;
+12098 0062;
+1209E 0062;
+120A4 0062;
+120AA 0062;
+120B0 0062;
+120B6 0062;
+120BC 0062;
+120C2 0062;
+120C8 0062;
+120CE 0062;
+120D4 0062;
+120DA 0062;
+120E0 0062;
+120E6 0062;
+120EC 0062;
+120F2 0062;
+120F8 0062;
+120FE 0062;
+12104 0062;
+1210A 0062;
+12110 0062;
+12116 0062;
+1211C 0062;
+12122 0062;
+12128 0062;
+1212E 0062;
+12134 0062;
+1213A 0062;
+12140 0062;
+12146 0062;
+1214C 0062;
+12152 0062;
+12158 0062;
+1215E 0062;
+12164 0062;
+1216A 0062;
+12170 0062;
+12176 0062;
+1217C 0062;
+12182 0062;
+12188 0062;
+1218E 0062;
+12194 0062;
+1219A 0062;
+121A0 0062;
+121A6 0062;
+121AC 0062;
+121B2 0062;
+121B8 0062;
+121BE 0062;
+121C4 0062;
+121CA 0062;
+121D0 0062;
+121D6 0062;
+121DC 0062;
+121E2 0062;
+121E8 0062;
+121EE 0062;
+121F4 0062;
+121FA 0062;
+12200 0062;
+12206 0062;
+1220C 0062;
+12212 0062;
+12218 0062;
+1221E 0062;
+12224 0062;
+1222A 0062;
+12230 0062;
+12236 0062;
+1223C 0062;
+12242 0062;
+12248 0062;
+1224E 0062;
+12254 0062;
+1225A 0062;
+12260 0062;
+12266 0062;
+1226C 0062;
+12272 0062;
+12278 0062;
+1227E 0062;
+12284 0062;
+1228A 0062;
+12290 0062;
+12296 0062;
+1229C 0062;
+122A2 0062;
+122A8 0062;
+122AE 0062;
+122B4 0062;
+122BA 0062;
+122C0 0062;
+122C6 0062;
+122CC 0062;
+122D2 0062;
+122D8 0062;
+122DE 0062;
+122E4 0062;
+122EA 0062;
+122F0 0062;
+122F6 0062;
+122FC 0062;
+12302 0062;
+12308 0062;
+1230E 0062;
+12314 0062;
+1231A 0062;
+12320 0062;
+12326 0062;
+1232C 0062;
+12332 0062;
+12338 0062;
+1233E 0062;
+12344 0062;
+1234A 0062;
+12350 0062;
+12356 0062;
+1235C 0062;
+12362 0062;
+12368 0062;
+1236E 0062;
+319C 0062;
+3282 0061;
+F967 0062;
+3197 0062;
+2F800 0062;
+2E83 0062;
+3281 003F;
+2F08 0061;
+32AD 0062;
+FA30 0061;
+2F808 0062;
+329D 0062;
+2F80F 0062;
+2F0B 0061;
+2F0C 0061;
+2F817 0062;
+2F81B 0062;
+2F0F 0061;
+2E89 0062;
+F9FF 0062;
+F98A 0061;
+2F825 0062;
+2F827 0062;
+2F82A 0062;
+32A9 0062;
+303A 0062;
+2F18 0061;
+F91C 0062;
+2E81 0062;
+2F1D 0062;
+3294 0062;
+2F83F 0062;
+2F843 0062;
+FA7A 0061;
+FA0D 0062;
+FA38 0062;
+2F84B 0062;
+2F852 0062;
+FA10 0061;
+F94A 0062;
+2F21 0062;
+2F85E 0062;
+F909 0062;
+2F865 0062;
+2F986 0062;
+32AB 0062;
+F9AA 003F;
+2F872 0062;
+2F875 0041;
+F9BD 0062;
+2F878 0041;
+2F87C 0062;
+F9AB 0062;
+2F30 0062;
+2F887 0062;
+2F34 0062;
+F928 0061;
+2F35 0062;
+2F894 0061;
+2F3A 0062;
+2F89C 0062;
+2F89D 0062;
+2F8A0 0062;
+FA88 0062;
+2F8A8 0062;
+2F8AB 0062;
+FA8B 003F;
+2F3D 0062;
+2F3F 0062;
+FA02 0062;
+2F8BB 0062;
+2F8C0 0062;
+2F8C6 0062;
+2F41 0062;
+F969 0062;
+F983 0062;
+3290 0041;
+FA12 0061;
+FA06 0062;
+328A 003F;
+2F8D8 0062;
+F9E1 0062;
+F9F4 0062;
+337F 0062;
+F9E2 0062;
+F914 0041;
+F91D 0062;
+2F8F3 0062;
+F9A5 0062;
+2F4F 0062;
+2F53 0062;
+2F8FE 0062;
+329F 0062;
+FA97 003F;
+2F901 0062;
+2F90E 0062;
+2F90C 0062;
+FA47 0061;
+F984 0062;
+2F55 0061;
+F9FB 0062;
+FA48 0061;
+F91E 0062;
+FA9E 0061;
+2F922 0062;
+2F924 0062;
+F92B 0062;
+F961 0061;
+F9AD 0062;
+2F92F 0062;
+F9EF 0062;
+2F63 0062;
+FAA3 0062;
+2F66 0061;
+FAA5 0062;
+2F6B 0062;
+2F6C 0061;
+2F946 0061;
+FA9D 0062;
+F93B 0061;
+F964 0062;
+FA4C 0061;
+2F953 0062;
+FA52 0062;
+2F72 0062;
+2F959 0062;
+F9F7 0061;
+FA56 0061;
+2F76 0062;
+2F969 0062;
+F9CF 0062;
+F957 0062;
+FA58 0062;
+FAB1 0062;
+2EB4 0062;
+2EB6 0041;
+2F7B 0062;
+FA5B 0041;
+2F97D 0062;
+2EBA 0062;
+2F983 0062;
+FA5C 0062;
+2F98C 0062;
+2F8A 0062;
+2EC0 0062;
+2F995 0062;
+F9FE 0062;
+F93E 0062;
+F958 0062;
+2F9A8 0062;
+F9F0 0062;
+2EC1 0062;
+2F8D 0062;
+2F9BD 0062;
+2F9C1 0062;
+2F9C4 0061;
+2F9C7 0062;
+F924 0062;
+2F92 0062;
+2EC7 0062;
+FABB 0062;
+FABA 0062;
+FABF 0062;
+2F95 0062;
+2F99 0062;
+F903 0062;
+2F9A 0062;
+2F9DA 0062;
+2F9DE 0062;
+F98D 0062;
+2FA1 0062;
+FA25 0061;
+2FA2 0061;
+2F9E4 0062;
+2FA4 0062;
+328E 0062;
+2F9E9 0062;
+2ED1 0061;
+F986 0062;
+F9C6 0062;
+F9DC 0062;
+F9EA 0062;
+F949 0062;
+FA1C 0061;
+FAC9 0062;
+FACA 0062;
+F9B4 0062;
+2FB5 0062;
+2EDF 0061;
+2FA04 0062;
+2FBA 0062;
+2FBB 0061;
+2FBE 0062;
+F939 0062;
+2FA0F 0062;
+2EE7 0062;
+2EE8 0062;
+F989 0062;
+2EEA 0062;
+2FCF 0062;
+2EEC 0062;
+2EEF 0062;
+2FD4 0041;
+9FA1 0062;
+FA0F 0062;
+FA23 0062;
+3401 0062;
+3407 0062;
+340D 0062;
+3413 0062;
+3419 0062;
+341F 0062;
+3425 0062;
+342B 0062;
+3431 0062;
+3437 0062;
+343D 0062;
+3443 0062;
+3449 0062;
+344F 0062;
+3455 0062;
+345B 0062;
+3461 0062;
+3467 0062;
+346D 0062;
+3473 0062;
+3479 0062;
+347F 0062;
+3485 0062;
+348B 0062;
+3491 0062;
+3497 0062;
+349D 0062;
+34A2 0062;
+34A8 0062;
+34AE 0062;
+34B4 0062;
+2F813 0062;
+34BE 0062;
+34C4 0062;
+34CA 0062;
+34D0 0062;
+34D6 0062;
+34DC 0062;
+34E1 0062;
+34E7 0062;
+34ED 0062;
+34F3 0062;
+34F9 0062;
+34FF 0062;
+3505 0062;
+350B 0062;
+3511 0062;
+3516 0062;
+351C 0062;
+3522 0062;
+3528 0062;
+352E 0062;
+3534 0062;
+353A 0062;
+3540 0062;
+3546 0062;
+354C 0062;
+3552 0062;
+3558 0062;
+355E 0062;
+3564 0062;
+356A 0062;
+3570 0062;
+3576 0062;
+357C 0062;
+3582 0062;
+3588 0062;
+358E 0062;
+3594 0062;
+359A 0062;
+35A0 0062;
+35A6 0062;
+35AC 0062;
+35B2 0062;
+35B8 0062;
+35BE 0062;
+35C4 0062;
+35CA 0062;
+35D0 0062;
+35D6 0062;
+35DC 0062;
+35E2 0062;
+35E8 0062;
+35EE 0062;
+35F4 0062;
+35FA 0062;
+3600 0062;
+3606 0062;
+360C 0062;
+3612 0062;
+3618 0062;
+361E 0062;
+3624 0062;
+362A 0062;
+3630 0062;
+3636 0062;
+363C 0062;
+3642 0062;
+3648 0062;
+364E 0062;
+3654 0062;
+365A 0062;
+3660 0062;
+3666 0062;
+366C 0062;
+3672 0062;
+3678 0062;
+367E 0062;
+3684 0062;
+368A 0062;
+3690 0062;
+3696 0062;
+369C 0062;
+36A2 0062;
+36A8 0062;
+36AE 0062;
+36B4 0062;
+36BA 0062;
+36C0 0062;
+36C6 0062;
+36CC 0062;
+36D2 0062;
+36D8 0062;
+36DE 0062;
+36E4 0062;
+36EA 0062;
+36EF 0062;
+36F5 0062;
+36FB 0062;
+3700 0062;
+3706 0062;
+370C 0062;
+3712 0062;
+3718 0062;
+371E 0062;
+3724 0062;
+372A 0062;
+3730 0062;
+3736 0062;
+373C 0062;
+3742 0062;
+3748 0062;
+374E 0062;
+3754 0062;
+375A 0062;
+3760 0062;
+3766 0062;
+376C 0062;
+3772 0062;
+3778 0062;
+377E 0062;
+3783 0062;
+3789 0062;
+378F 0062;
+3795 0062;
+379B 0062;
+37A1 0062;
+37A7 0062;
+37AD 0062;
+37B3 0062;
+37B9 0062;
+37BF 0062;
+37C5 0062;
+37CB 0062;
+37D1 0062;
+37D7 0062;
+37DD 0062;
+37E3 0062;
+37E9 0062;
+37EF 0062;
+37F5 0062;
+37FB 0062;
+3801 0062;
+3807 0062;
+380D 0062;
+3813 0062;
+3819 0062;
+381F 0062;
+3825 0062;
+382B 0062;
+3830 0062;
+3836 0062;
+383C 0062;
+3842 0062;
+3848 0062;
+384E 0062;
+3854 0062;
+385A 0062;
+3860 0062;
+3865 0062;
+386B 0062;
+3871 0062;
+3877 0062;
+2F88A 0062;
+3882 0062;
+3888 0062;
+388E 0062;
+3894 0062;
+389A 0062;
+38A0 0062;
+38A6 0062;
+38AC 0062;
+38B2 0062;
+38B8 0062;
+38BE 0062;
+38C4 0062;
+38C9 0062;
+38CF 0062;
+38D5 0062;
+38DB 0062;
+38E1 0062;
+38E6 0062;
+38EC 0062;
+38F2 0062;
+38F8 0062;
+38FE 0062;
+3904 0062;
+390A 0062;
+3910 0062;
+3916 0062;
+391C 0061;
+3921 0062;
+3927 0062;
+392D 0062;
+3933 0062;
+3939 0062;
+393E 0062;
+3944 0062;
+394A 0062;
+3950 0062;
+3956 0062;
+395C 0062;
+3962 0062;
+3968 0062;
+396E 0062;
+3974 0062;
+397A 0062;
+3980 0062;
+3986 0062;
+398C 0062;
+3992 0062;
+3998 0062;
+399E 0062;
+39A4 0062;
+39AA 0062;
+39B0 0062;
+39B6 0062;
+39BC 0062;
+39C2 0062;
+39C8 0062;
+39CE 0062;
+39D4 0062;
+39DA 0062;
+39E0 0062;
+39E6 0062;
+39EC 0062;
+39F2 0062;
+39F8 0062;
+39FE 0062;
+3A04 0062;
+3A0A 0062;
+3A10 0062;
+3A16 0062;
+3A1C 0062;
+3A22 0062;
+3A28 0062;
+3A2E 0061;
+3A33 0062;
+3A39 0062;
+3A3F 0062;
+3A45 0062;
+3A4B 0062;
+3A51 0062;
+3A57 0062;
+3A5D 0062;
+3A63 0062;
+3A69 0062;
+3A6E 0062;
+3A74 0062;
+3A7A 0062;
+3A80 0062;
+3A86 0062;
+3A8C 0062;
+3A92 0062;
+3A98 0062;
+3A9E 0062;
+3AA4 0062;
+3AAA 0062;
+3AB0 0062;
+3AB6 0062;
+3ABC 0062;
+3AC2 0062;
+3AC8 0062;
+3ACE 0062;
+3AD4 0062;
+3ADA 0062;
+3AE0 0062;
+3AE5 0062;
+3AEB 0062;
+3AF1 0062;
+3AF7 0062;
+3AFD 0062;
+3B03 0062;
+2F8D0 0062;
+3B0E 0062;
+3B14 0062;
+2F8CE 0062;
+3B1F 0062;
+3B25 0062;
+3B2B 0062;
+3B31 0062;
+3B37 0062;
+3B3D 0062;
+3B43 0062;
+3B49 0061;
+3B4E 0062;
+3B54 0062;
+3B5A 0062;
+3B60 0062;
+3B66 0062;
+3B6C 0062;
+3B72 0062;
+3B78 0062;
+3B7E 0062;
+3B84 0062;
+3B8A 0062;
+3B90 0062;
+3B96 0062;
+3B9C 0062;
+3BA0 0062;
+3BA6 0062;
+3BAC 0062;
+3BB2 0062;
+3BB8 0062;
+3BBE 0062;
+3BC4 0062;
+3BCA 0062;
+3BD0 0062;
+3BD6 0062;
+3BDC 0062;
+3BE2 0062;
+3BE8 0062;
+3BEE 0062;
+3BF4 0062;
+3BFA 0062;
+3C00 0062;
+3C06 0062;
+3C0C 0062;
+3C12 0062;
+3C18 0061;
+3C1D 0062;
+3C23 0062;
+3C29 0062;
+3C2F 0062;
+3C35 0062;
+3C3B 0062;
+3C41 0062;
+3C47 0062;
+3C4D 0062;
+3C52 0062;
+3C58 0062;
+3C5E 0062;
+3C64 0062;
+3C6A 0062;
+3C70 0062;
+3C76 0062;
+3C7C 0062;
+3C82 0062;
+3C88 0062;
+3C8E 0062;
+3C94 0062;
+3C9A 0062;
+3CA0 0062;
+3CA6 0062;
+3CAC 0062;
+3CB2 0062;
+3CB8 0062;
+3CBE 0062;
+3CC4 0062;
+3CCA 0062;
+3CD0 0062;
+3CD6 0062;
+3CDC 0062;
+3CE2 0062;
+3CE8 0062;
+3CEE 0062;
+3CF4 0062;
+3CFA 0062;
+3D00 0062;
+3D06 0062;
+3D0C 0062;
+3D12 0062;
+3D18 0062;
+3D1E 0062;
+3D24 0062;
+3D2A 0062;
+3D30 0062;
+3D35 0062;
+3D3B 0062;
+3D41 0062;
+3D47 0062;
+3D4D 0062;
+3D53 0062;
+3D59 0062;
+3D5F 0062;
+3D65 0062;
+3D6B 0062;
+3D71 0062;
+3D77 0062;
+3D7D 0062;
+3D83 0062;
+3D89 0062;
+3D8F 0062;
+3D95 0062;
+3D9A 0062;
+3DA0 0062;
+3DA6 0062;
+3DAC 0062;
+3DB2 0062;
+3DB8 0062;
+3DBE 0062;
+3DC4 0062;
+3DCA 0062;
+3DD0 0062;
+3DD6 0062;
+3DDC 0062;
+3DE2 0062;
+3DE8 0062;
+3DEE 0062;
+3DF4 0062;
+3DFA 0062;
+3E00 0062;
+3E06 0062;
+3E0C 0062;
+3E12 0062;
+3E18 0062;
+3E1E 0062;
+3E24 0062;
+3E2A 0062;
+3E30 0062;
+3E36 0062;
+3E3C 0062;
+3E42 0062;
+3E48 0062;
+3E4E 0062;
+3E54 0062;
+3E5A 0062;
+3E60 0062;
+3E66 0062;
+3E6C 0062;
+3E72 0062;
+3E78 0062;
+3E7E 0062;
+3E84 0062;
+3E8A 0062;
+3E90 0062;
+3E96 0062;
+3E9C 0062;
+3EA2 0062;
+3EA8 0062;
+3EAD 0062;
+3EB3 0062;
+3EB8 0041;
+3EBD 0062;
+3EC3 0062;
+3EC9 0062;
+3ECF 0062;
+3ED5 0062;
+3EDB 0062;
+3EE1 0062;
+3EE7 0062;
+3EED 0062;
+3EF3 0062;
+3EF9 0062;
+3EFF 0062;
+3F05 0062;
+3F0B 0062;
+3F11 0062;
+3F17 0062;
+3F1C 0062;
+3F22 0062;
+3F28 0062;
+3F2E 0062;
+3F34 0062;
+3F3A 0062;
+3F40 0062;
+3F46 0062;
+3F4C 0062;
+3F52 0062;
+3F58 0062;
+3F5E 0062;
+3F64 0062;
+3F6A 0062;
+3F70 0062;
+3F76 0062;
+3F7C 0062;
+3F82 0062;
+3F88 0062;
+3F8E 0062;
+3F94 0062;
+3F9A 0062;
+3FA0 0062;
+3FA6 0062;
+3FAC 0062;
+3FB2 0062;
+3FB8 0062;
+3FBE 0062;
+3FC4 0062;
+3FCA 0062;
+3FD0 0062;
+3FD6 0062;
+3FDC 0062;
+3FE2 0062;
+3FE8 0062;
+3FEE 0062;
+3FF4 0062;
+3FFA 0062;
+3FFF 0062;
+4005 0062;
+400A 0062;
+4010 0062;
+4016 0062;
+401B 0062;
+4021 0062;
+4027 0062;
+402D 0062;
+4033 0062;
+FAD4 003F;
+403D 0062;
+4043 0062;
+4048 0062;
+404E 0062;
+4054 0062;
+405A 0062;
+4060 0062;
+4066 0062;
+406C 0062;
+4072 0062;
+4078 0062;
+407E 0062;
+4084 0062;
+408A 0062;
+4090 0062;
+4096 0061;
+409B 0062;
+40A1 0062;
+40A7 0062;
+40AD 0062;
+40B3 0062;
+40B9 0062;
+40BF 0062;
+40C5 0062;
+40CB 0062;
+40D1 0062;
+40D7 0062;
+40DD 0062;
+40E3 0061;
+40E8 0062;
+40EE 0062;
+40F4 0062;
+40FA 0062;
+4100 0062;
+4106 0062;
+410C 0062;
+4112 0062;
+4118 0062;
+411E 0062;
+4124 0062;
+412A 0062;
+2F958 0062;
+4135 0062;
+413B 0062;
+4141 0062;
+4147 0062;
+414D 0062;
+4153 0062;
+4159 0062;
+415F 0062;
+4165 0062;
+416B 0062;
+4171 0062;
+4177 0062;
+417D 0062;
+4183 0062;
+4189 0062;
+418F 0062;
+4195 0062;
+419B 0062;
+41A1 0062;
+41A7 0062;
+41AD 0062;
+41B3 0062;
+41B9 0062;
+41BF 0062;
+41C5 0062;
+41CB 0062;
+41D1 0062;
+41D7 0062;
+41DD 0062;
+41E3 0062;
+41E9 0062;
+41EF 0062;
+41F5 0062;
+41FB 0062;
+4201 0062;
+4206 0062;
+420C 0062;
+4212 0062;
+4218 0062;
+421E 0062;
+4224 0062;
+4229 0062;
+422F 0062;
+4235 0062;
+423B 0062;
+4241 0062;
+4247 0062;
+424D 0062;
+4253 0062;
+4259 0062;
+425F 0062;
+4265 0062;
+426B 0062;
+4271 0062;
+4277 0062;
+427D 0062;
+4283 0062;
+4289 0062;
+428F 0062;
+4295 0062;
+429B 0062;
+2F967 0062;
+42A6 0062;
+42AC 0062;
+42B2 0062;
+42B8 0062;
+42BE 0062;
+42C4 0062;
+42CA 0062;
+42D0 0062;
+42D6 0062;
+42DC 0062;
+42E2 0062;
+42E8 0062;
+42EE 0062;
+42F4 0062;
+42FA 0062;
+4300 0062;
+4305 0062;
+430B 0062;
+4311 0062;
+4317 0062;
+431D 0062;
+4323 0062;
+4329 0062;
+432F 0062;
+2F971 0062;
+433A 0062;
+4340 0062;
+4346 0062;
+434C 0062;
+4352 0062;
+4358 0062;
+435D 0062;
+4363 0062;
+4369 0062;
+436F 0062;
+4375 0062;
+437B 0062;
+4381 0062;
+4387 0062;
+438D 0062;
+4393 0062;
+4399 0062;
+439F 0062;
+43A5 0062;
+43AB 0062;
+43B1 0062;
+43B7 0062;
+43BD 0062;
+43C3 0062;
+43C9 0062;
+43CF 0062;
+43D5 0061;
+2F8D7 0062;
+43DF 0062;
+43E5 0062;
+43EB 0062;
+43F1 0062;
+43F7 0062;
+43FD 0062;
+4403 0062;
+4409 0062;
+440E 0062;
+4414 0062;
+441A 0062;
+4420 0062;
+4426 0062;
+442C 0062;
+4432 0062;
+4438 0062;
+443E 0062;
+4444 0062;
+444A 0062;
+4450 0062;
+4456 0062;
+445C 0062;
+4462 0062;
+4468 0062;
+446D 0062;
+4473 0062;
+4479 0062;
+447F 0062;
+4485 0062;
+448B 0062;
+4491 0062;
+4497 0062;
+449D 0062;
+44A3 0062;
+44A9 0062;
+44AF 0062;
+44B5 0062;
+44BB 0062;
+44C1 0062;
+44C7 0062;
+44CD 0062;
+44D3 0062;
+44D9 0062;
+44DF 0062;
+44E5 0062;
+44EB 0062;
+44F1 0062;
+44F7 0062;
+44FD 0062;
+4503 0062;
+4509 0062;
+450F 0062;
+4515 0062;
+451B 0062;
+4521 0062;
+4527 0062;
+452C 0062;
+4532 0062;
+4538 0062;
+453E 0062;
+4544 0062;
+454A 0062;
+4550 0062;
+4556 0062;
+455C 0062;
+4561 0061;
+4566 0062;
+2F9B2 0062;
+4571 0062;
+4577 0062;
+457D 0062;
+4583 0062;
+4589 0062;
+458F 0062;
+4595 0062;
+459B 0062;
+45A1 0062;
+45A7 0062;
+45AD 0062;
+45B3 0062;
+45B9 0062;
+45BF 0062;
+45C5 0062;
+45CB 0062;
+45D1 0062;
+45D7 0061;
+45DC 0062;
+45E2 0062;
+45E8 0062;
+45EE 0062;
+45F4 0062;
+2F9C2 0062;
+45FF 0062;
+4605 0062;
+460B 0062;
+4611 0062;
+4617 0062;
+461D 0062;
+4623 0062;
+4629 0062;
+462F 0062;
+4635 0061;
+463A 0062;
+4640 0062;
+4646 0062;
+464C 0062;
+4652 0062;
+4658 0062;
+465E 0062;
+4664 0062;
+466A 0062;
+4670 0062;
+4676 0062;
+467C 0062;
+4682 0062;
+4688 0062;
+468E 0062;
+4694 0062;
+469A 0062;
+46A0 0062;
+46A6 0062;
+46AC 0062;
+46B2 0062;
+46B8 0062;
+46BE 0061;
+46C3 0062;
+46C8 0062;
+46CE 0062;
+46D4 0062;
+46DA 0062;
+46E0 0062;
+46E6 0062;
+46EC 0062;
+46F2 0062;
+46F8 0062;
+46FE 0062;
+4704 0062;
+470A 0062;
+4710 0062;
+4716 0062;
+471C 0062;
+4722 0062;
+4728 0062;
+472E 0062;
+4734 0062;
+473A 0062;
+4740 0062;
+4746 0062;
+474C 0062;
+4752 0062;
+4758 0062;
+475E 0062;
+4764 0062;
+476A 0062;
+4770 0062;
+4776 0062;
+477C 0062;
+4782 0062;
+4788 0062;
+478E 0062;
+4794 0062;
+479A 0062;
+47A0 0062;
+47A6 0062;
+47AC 0062;
+47B2 0062;
+47B8 0062;
+47BE 0062;
+47C4 0062;
+47CA 0062;
+47D0 0062;
+47D6 0062;
+47DC 0062;
+47E2 0062;
+47E8 0062;
+47EE 0062;
+47F4 0062;
+47FA 0062;
+4800 0062;
+4806 0062;
+480C 0062;
+4812 0062;
+4818 0062;
+481E 0062;
+4824 0062;
+482A 0062;
+4830 0062;
+4836 0062;
+483C 0062;
+4842 0062;
+4848 0062;
+484E 0062;
+4854 0062;
+485A 0062;
+4860 0062;
+4866 0062;
+486C 0062;
+4872 0062;
+4878 0062;
+487E 0062;
+4884 0062;
+488A 0062;
+4890 0062;
+4896 0062;
+489C 0062;
+48A2 0062;
+48A8 0062;
+48AE 0062;
+48B4 0062;
+48BA 0062;
+48C0 0062;
+48C6 0062;
+48CC 0062;
+48D2 0062;
+48D8 0062;
+48DE 0062;
+48E4 0062;
+48EA 0062;
+48F0 0062;
+48F6 0062;
+48FC 0062;
+4902 0062;
+4908 0062;
+490E 0062;
+4914 0062;
+491A 0062;
+4920 0062;
+4926 0062;
+492C 0062;
+4932 0062;
+4938 0062;
+493E 0062;
+4944 0062;
+494A 0062;
+4950 0062;
+4956 0062;
+495C 0062;
+4962 0062;
+4968 0062;
+496E 0062;
+4974 0062;
+497A 0062;
+4980 0062;
+4986 0062;
+498C 0062;
+4992 0062;
+4997 0062;
+499D 0062;
+49A3 0062;
+49A9 0062;
+49AF 0062;
+49B5 0062;
+49BB 0062;
+49C1 0062;
+49C7 0062;
+49CD 0062;
+49D3 0062;
+49D9 0062;
+49DF 0062;
+49E5 0062;
+49EA 0062;
+49F0 0062;
+49F6 0062;
+49FC 0062;
+4A02 0062;
+4A08 0062;
+4A0E 0062;
+4A14 0062;
+4A1A 0062;
+4A20 0062;
+4A26 0062;
+4A2C 0062;
+4A32 0062;
+4A38 0062;
+4A3E 0062;
+4A44 0062;
+4A4A 0062;
+4A50 0062;
+4A56 0062;
+4A5C 0062;
+4A62 0062;
+4A68 0062;
+4A6E 0061;
+4A73 0062;
+4A78 0062;
+4A7E 0062;
+4A84 0062;
+4A8A 0062;
+4A90 0062;
+4A96 0062;
+4A9C 0062;
+4AA2 0062;
+4AA8 0062;
+4AAE 0062;
+4AB3 0062;
+4AB9 0062;
+4ABF 0062;
+4AC5 0062;
+4ACB 0062;
+4AD1 0062;
+4AD7 0062;
+4ADD 0062;
+4AE3 0062;
+4AE9 0062;
+4AEF 0062;
+4AF5 0062;
+4AFB 0062;
+4B01 0062;
+4B07 0062;
+4B0D 0062;
+4B13 0062;
+4B19 0062;
+4B1F 0062;
+4B25 0062;
+4B2B 0062;
+4B31 0062;
+4B36 0062;
+4B3C 0062;
+4B42 0062;
+4B48 0062;
+4B4E 0062;
+4B54 0062;
+4B5A 0062;
+4B60 0062;
+4B66 0062;
+4B6C 0062;
+4B72 0062;
+4B78 0062;
+4B7E 0062;
+4B84 0062;
+4B8A 0062;
+4B90 0062;
+4B96 0062;
+4B9C 0062;
+4BA2 0062;
+4BA8 0062;
+4BAE 0062;
+4BB4 0062;
+4BBA 0062;
+4BC0 0062;
+4BC6 0062;
+4BCC 0062;
+4BD1 0062;
+4BD7 0062;
+4BDD 0062;
+4BE3 0062;
+4BE9 0062;
+4BEF 0062;
+4BF5 0062;
+4BFB 0062;
+4C01 0062;
+4C07 0062;
+4C0D 0062;
+4C13 0062;
+4C19 0062;
+4C1F 0062;
+4C25 0062;
+4C2B 0062;
+4C31 0062;
+4C37 0062;
+4C3D 0062;
+4C43 0062;
+4C49 0062;
+4C4F 0062;
+4C55 0062;
+4C5B 0062;
+4C61 0062;
+4C67 0062;
+4C6D 0062;
+4C73 0062;
+4C79 0062;
+4C7F 0062;
+4C85 0062;
+4C8B 0062;
+4C91 0062;
+4C97 0062;
+4C9D 0062;
+4CA3 0062;
+4CA9 0062;
+4CAF 0062;
+4CB5 0062;
+4CBB 0062;
+4CC1 0062;
+4CC7 0062;
+4CCD 0062;
+4CD2 0062;
+4CD8 0062;
+4CDE 0062;
+4CE4 0062;
+4CEA 0062;
+4CEF 0062;
+4CF5 0062;
+4CFA 0062;
+4D00 0062;
+4D06 0062;
+4D0C 0062;
+4D12 0062;
+4D18 0062;
+4D1E 0062;
+4D24 0062;
+4D2A 0062;
+4D30 0062;
+4D36 0062;
+4D3C 0062;
+4D42 0062;
+4D48 0062;
+4D4E 0062;
+4D54 0062;
+4D59 0062;
+4D5F 0062;
+4D65 0062;
+4D6B 0062;
+4D71 0062;
+4D77 0062;
+4D7D 0062;
+4D83 0062;
+4D89 0062;
+4D8F 0062;
+4D95 0062;
+4D9B 0062;
+4DA1 0062;
+4DA7 0062;
+4DAD 0062;
+4DB3 0062;
+20003 0062;
+2F816 0062;
+2F859 0062;
+2F87B 0062;
+2F8A4 0062;
+2F897 0062;
+2F8E3 0062;
+2F906 0062;
+2F923 0062;
+2F93C 0062;
+FAD5 0062;
+2F95D 0061;
+2F898 0062;
+2F97C 0062;
+2F9A6 0062;
+2F9C5 0062;
+2F9E0 0062;
+2F81C 0062;
+2FA10 0062;
+2A6D1 0062;
+0370 0062;
+E005 0062;
+F8FF 0062;
+E0003 0062;
+F0003 0062;
+F00FB 0062;
+FFF03 0062;
+FFFFB 0062;
+100003 0062;
+1000FB 0062;
+10FF03 0062;
+10FFFB 0062;
diff --git a/Build/source/libs/icu-xetex/test/testdata/CollationTest_SHIFTED_STUB.txt b/Build/source/libs/icu-xetex/test/testdata/CollationTest_SHIFTED_STUB.txt
index 6dfe945aa46..9f9221c4be9 100644
--- a/Build/source/libs/icu-xetex/test/testdata/CollationTest_SHIFTED_STUB.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/CollationTest_SHIFTED_STUB.txt
@@ -1,817 +1,858 @@
-2006 0021;
-FF40 0021;
-02D8 0021;
-1FBF 0334 0300;
-1FFE 0342 0334;
-1FC0 003F;
-FE31 0021;
-055D 003F;
-003B 003F;
-0706 003F;
-0001 0021;
-0083 0021;
-0489 0021;
-05AE 0021;
-06E7 0021;
-2060 0021;
-FE07 0021;
-1D174 0021;
-1FFFF 0021;
-E0024 0021;
-E0042 0021;
-E0060 0021;
-E007E 0021;
-E011C 0021;
-E013A 0021;
-E0158 0021;
-E0176 0021;
-E0194 0021;
-E01B2 0021;
-E01D0 0021;
-E01EE 0021;
-0006 003F;
-0089 003F;
-0595 003F;
-0600 003F;
-06ED 003F;
-206B 003F;
-FE0C 003F;
-1D179 003F;
-4FFFE 003F;
-E0029 003F;
-E0047 003F;
-E0065 003F;
-E0103 003F;
-E0121 003F;
-E013F 003F;
-E015D 003F;
-E017B 003F;
-E0199 003F;
-E01B7 003F;
-E01D5 003F;
-10FFFF 003F;
-203D 003F;
-1809 003F;
-17D4 003F;
-205B 003F;
-201A 003F;
-207D 0021;
-FE48 0021;
-169B 003F;
-298A 003F;
-2E02 003F;
-FE40 003F;
-FE3B 0021;
-3019 003F;
-FF0A 003F;
-FE5F 0021;
-2043 003F;
-2054 003F;
-2E12 003F;
-070B 003F;
-0F0A 003F;
-104E 003F;
-0374 003F;
-02CE 003F;
-02EA 003F;
-02FA 003F;
-1399 003F;
-A70E 003F;
-09FA 003F;
-0F02 003F;
-0F3E 003F;
-0FCC 003F;
-19ED 003F;
-19FC 003F;
-212E 003F;
-2192 003F;
-219D 003F;
-21AC 003F;
-21BC 003F;
-21CB 003F;
-21D7 003F;
-21E6 003F;
-21F5 003F;
-1D7C3 0021;
-2209 0334;
-FB29 0021;
-2260 0021;
-FF5C 003F;
-2219 003F;
-2226 003F;
-2234 003F;
-2242 003F;
-226D 0021;
-225B 003F;
-2266 003F;
-2278 003F;
-22E1 003F;
-228A 003F;
-2295 003F;
-22AC 003F;
-22AF 003F;
-22B6 003F;
-22C5 003F;
-22D4 003F;
-22E7 003F;
-22FA 003F;
-2309 003F;
-2318 003F;
-2327 003F;
-2338 003F;
-2347 003F;
-2356 003F;
-2365 003F;
-2374 003F;
-2383 003F;
-2392 003F;
-23A1 003F;
-23B0 003F;
-23BF 003F;
-23CE 003F;
-2401 003F;
-2410 003F;
-241F 003F;
-2447 003F;
-250A 003F;
-2519 003F;
-2528 003F;
-2537 003F;
-2546 003F;
-2555 003F;
-2564 003F;
-2573 003F;
-2582 003F;
-2591 003F;
-FFED 0021;
-25AE 003F;
-25BD 003F;
-FFEE 003F;
-25DA 003F;
-25E9 003F;
-25F8 003F;
-2607 003F;
-2616 003F;
-2625 003F;
-263C 003F;
-264B 003F;
-265A 003F;
-2669 003F;
-267B 003F;
-2690 003F;
-26A2 003F;
-26B1 003F;
-2712 003F;
-2721 003F;
-2731 003F;
-2740 003F;
-2751 003F;
-2766 003F;
-2775 003F;
-27A5 003F;
-27B5 003F;
-27C5 003F;
-27DD 003F;
-27F0 003F;
-27FF 003F;
-290E 003F;
-291D 003F;
-292C 003F;
-293B 003F;
-294A 003F;
-2959 003F;
-2968 003F;
-2977 003F;
-299C 003F;
-29AB 003F;
-29BA 003F;
-29C9 003F;
-29D8 003F;
-29E7 003F;
-29F6 003F;
-2A07 003F;
-2A17 003F;
-2A26 003F;
-2A35 003F;
-2A44 003F;
-2A53 003F;
-2A62 003F;
-2A71 003F;
-2A83 003F;
-2A92 003F;
-2AA1 003F;
-2AB0 003F;
-2ABF 003F;
-2ACE 003F;
-2ADD 0021;
-2AEB 003F;
-2AFA 003F;
-2B09 003F;
-2CE9 003F;
-280D 003F;
-281C 003F;
-282B 003F;
-283A 003F;
-2849 003F;
-2858 003F;
-2867 003F;
-2876 003F;
-2885 003F;
-2894 003F;
-28A3 003F;
-28B2 003F;
-28C1 003F;
-28D0 003F;
-28DF 003F;
-28EE 003F;
-28FD 003F;
-2636 003F;
-4DCD 003F;
-4DDC 003F;
-4DEB 003F;
-4DFA 003F;
-1D309 003F;
-1D318 003F;
-1D327 003F;
-1D336 003F;
-1D345 003F;
-1D354 003F;
-A49C 003F;
-A4AB 003F;
-A4BA 003F;
-10139 003F;
-10181 003F;
-1D006 003F;
-1D015 003F;
-1D024 003F;
-1D033 003F;
-1D042 003F;
-1D051 003F;
-1D060 003F;
-1D06F 003F;
-1D07E 003F;
-1D08D 003F;
-1D09C 003F;
-1D0AB 003F;
-1D0BA 003F;
-1D0C9 003F;
-1D0D8 003F;
-1D0E7 003F;
-1D100 003F;
-1D10F 003F;
-1D11E 003F;
-1D12D 003F;
-1D13C 003F;
-1D14B 003F;
-1D158 0334 1D165;
-1D158 003F;
-1D18D 003F;
-1D19C 003F;
-1D1AF 003F;
-1D1B9 0021;
-1D1C2 003F;
-1D1D1 003F;
-1D202 003F;
-1D211 003F;
-1D220 003F;
-1D22F 003F;
-1D23E 003F;
-2FFA 003F;
-31CD 003F;
-FFFD 003F;
-137B 003F;
-10116 003F;
-10125 003F;
-10140 003F;
-10153 003F;
-1016A 003F;
-103D4 003F;
-0302 003F;
-030D 0021;
-031E 0021;
-032F 0021;
-0334 05A7;
-0334 06E4;
-0334 1D17F;
-059D 0334;
-06D8 0334;
-1D167 0334;
-1D244 0334;
-0334 0308;
-0334 0311;
-0334 0322;
-0334 0339;
-0334 034D;
-0334 035D;
-0334 0486;
-05BC 0334;
-0657 0334;
-0735 0334;
-0744 0334;
-0B3C 0334;
-1037 0334;
-20D1 0334;
-0339 0021;
-034D 0021;
-035D 0021;
-0486 0021;
-05BC 0021;
-FE78 0021;
-FC63 0021;
-065E 0021;
-073C 0021;
-093C 0021;
-0A03 0021;
-0CBC 0021;
-0E4E 003F;
-0F7E 003F;
-17CF 003F;
-FF9E 003F;
-20DA 003F;
-20E8 0021;
-3005 0021;
-3035 0021;
-30FD 0334 3099;
-FE69 0021;
-FFE5 0062;
-0E3F 0062;
-20A4 0062;
-20AA 0062;
-20B0 0062;
-1D7CE 0021;
-0AE6 0021;
-1810 0021;
-06F0 0061;
-0F20 0061;
-0966 0062;
-2474 0021;
-0661 0021;
-19D1 0021;
-10320 0021;
-24FE 0041;
-246A 0021;
-3363 0062;
-33EB 0062;
-2153 0041;
-246D 0061;
-2155 003F;
-246F 0021;
-3368 0062;
-3369 0062;
-33F1 0062;
-33F2 0062;
-24F5 0041;
-0BE7 0061;
-10107 0061;
-00B9 0062;
-10158 0062;
-1D7DA 0021;
-104A2 003F;
-0F22 003F;
-2487 003F;
-3251 0041;
-2154 003F;
-3370 0041;
-3257 0041;
-FF12 0041;
-0662 0041;
-19D2 0041;
-103D2 0041;
-0C68 0062;
-32C1 0062;
-24F7 003F;
-0C69 0021;
-10A42 0021;
-325D 0041;
-32B2 0041;
-1D7D1 0041;
-09E9 0041;
-1043 0041;
-06F3 0062;
-33E2 0062;
-24F8 0021;
-0AEA 003F;
-1814 003F;
-32B9 0041;
-32BE 0041;
-2074 0061;
-0D6A 0061;
-2477 0062;
-0E54 0062;
-2478 0021;
-06F5 0021;
-0ED5 0021;
-32BF 0021;
-1D7E7 0041;
-0A6B 0041;
-17F5 0041;
+2007 0021;
+1FEF 0021;
+FE4C 003F;
+1FBF 0300 0334;
+1FFE 0341 0334;
+1FC0 0021;
+2013 003F;
+FE50 003F;
+003B 0021;
+0704 0021;
+16EB 0021;
+001D 0021;
+009B 0021;
+05A7 0021;
+06DE 0021;
+1B6E 0021;
+D804 0021;
+FFFA 0021;
+1D182 0021;
+8FFFF 0021;
+E0032 0021;
+E0050 0021;
+E006E 0021;
+E010C 0021;
+E012A 0021;
+E0148 0021;
+E0166 0021;
+E0184 0021;
+E01A2 0021;
+E01C0 0021;
+E01DE 0021;
+FE57 003F;
+0017 003F;
+0095 003F;
+05A1 003F;
+06D8 003F;
+180C 003F;
+206E 003F;
+FE0F 003F;
+1D17C 003F;
+5FFFF 003F;
+E002C 003F;
+E004A 003F;
+E0068 003F;
+E0106 003F;
+E0124 003F;
+E0142 003F;
+E0160 003F;
+E017E 003F;
+E019C 003F;
+E01BA 003F;
+E01D8 003F;
+FE56 0021;
+FE52 0021;
+1B5C 0021;
+104B 0021;
+1B5B 0021;
+1039F 0021;
+0022 0021;
+208D 003F;
+FE5B 0021;
+29FC 0021;
+298E 0021;
+2E09 0021;
+300B 003F;
+3014 0021;
+FD3F 0021;
+002F 0021;
+FF05 0021;
+2033 0021;
+2042 0021;
+2E16 0021;
+180A 0021;
+0F0B 003F;
+17D9 0021;
+02BA 0021;
+02D2 0021;
+02EC 0021;
+02FC 0021;
+A701 0021;
+A710 0021;
+060E 0021;
+0CF2 0021;
+0F1C 0021;
+0FC4 0021;
+19E6 0021;
+19F5 0021;
+1B65 0021;
+2104 0021;
+2143 0021;
+2193 0021;
+21A1 0021;
+21B1 0021;
+21C0 0021;
+21CD 003F;
+21DB 0021;
+21EA 0021;
+21F9 0021;
+2203 0338 0334;
+220B 0338 0334;
+FE62 003F;
+FE66 003F;
+007E 0021;
+221D 0021;
+222A 0021;
+2238 0021;
+2245 0338 0334;
+2250 0021;
+225F 0021;
+226A 0021;
+227A 0338 0334;
+2282 0021;
+228E 0021;
+2299 0021;
+22A6 0021;
+22B2 0021;
+22BA 0021;
+22C9 0021;
+22D8 0021;
+22EF 0021;
+22FE 0021;
+230D 0021;
+231C 0021;
+232D 0021;
+233C 0021;
+234B 0021;
+235A 0021;
+2369 0021;
+2378 0021;
+2387 0021;
+2396 0021;
+23A5 0021;
+23B4 0021;
+23C3 0021;
+23D2 0021;
+23E1 0021;
+2408 0021;
+2417 0021;
+2426 0021;
+2502 003F;
+2511 0021;
+2520 0021;
+252F 0021;
+253E 0021;
+254D 0021;
+255C 0021;
+256B 0021;
+257A 0021;
+2589 0021;
+2598 0021;
+25A6 0021;
+25B5 0021;
+25C4 0021;
+25D2 0021;
+25E1 0021;
+25F0 0021;
+25FF 0021;
+260E 0021;
+261D 0021;
+262C 0021;
+2643 0021;
+2652 0021;
+2661 0021;
+2673 0021;
+2682 0021;
+2697 0021;
+26A9 0021;
+2707 0021;
+2718 0021;
+2727 0021;
+2737 0021;
+2746 0021;
+275B 0021;
+276C 0021;
+279C 0021;
+27AB 0021;
+27BB 0021;
+27D0 0021;
+27DF 0021;
+27F2 0021;
+2901 0021;
+2910 0021;
+291F 0021;
+292E 0021;
+293D 0021;
+294C 0021;
+295B 0021;
+296A 0021;
+2979 0021;
+299E 0021;
+29AD 0021;
+29BC 0021;
+29CB 0021;
+29DA 0021;
+29E9 0021;
+29F8 0021;
+2A09 0021;
+2A19 0021;
+2A28 0021;
+2A37 0021;
+2A46 0021;
+2A55 0021;
+2A64 0021;
+2A73 0021;
+2A85 0021;
+2A94 0021;
+2AA3 0021;
+2AB2 0021;
+2AC1 0021;
+2AD0 0021;
+2ADE 0021;
+2AED 0021;
+2AFC 0021;
+2B0B 0021;
+2B1A 0021;
+2804 0021;
+2813 0021;
+2822 0021;
+2831 0021;
+2840 0021;
+284F 0021;
+285E 0021;
+286D 0021;
+287C 0021;
+288B 0021;
+289A 0021;
+28A9 0021;
+28B8 0021;
+28C7 0021;
+28D6 0021;
+28E5 0021;
+28F4 0021;
+268D 0021;
+4DC4 0021;
+4DD3 0021;
+4DE2 0021;
+4DF1 0021;
+1D300 0021;
+1D30F 0021;
+1D31E 0021;
+1D32D 0021;
+1D33C 0021;
+1D34B 0021;
+A493 0021;
+A4A2 0021;
+A4B1 0021;
+A4C0 0021;
+1013F 0021;
+10187 0021;
+1D00C 0021;
+1D01B 0021;
+1D02A 0021;
+1D039 0021;
+1D048 0021;
+1D057 0021;
+1D066 0021;
+1D075 0021;
+1D084 0021;
+1D093 0021;
+1D0A2 0021;
+1D0B1 0021;
+1D0C0 0021;
+1D0CF 0021;
+1D0DE 0021;
+1D0ED 0021;
+1D106 0021;
+1D115 0021;
+1D124 0021;
+1D133 0021;
+1D142 0021;
+1D151 0021;
+1D158 1D165 1D170 0334;
+1D15B 0021;
+1D193 0021;
+1D1A2 0021;
+1D1B5 0021;
+1D1BA 1D165 0334 1D16F;
+1D1C8 0021;
+1D1D7 0021;
+1D208 0021;
+1D217 0021;
+1D226 0021;
+1D235 0021;
+2FF1 0021;
+31C4 0021;
+3013 0021;
+1372 0021;
+10322 0021;
+1011D 0021;
+1012C 0021;
+1014A 0021;
+10162 0021;
+10171 0021;
+10A46 0021;
+1D369 0021;
+0300 0021;
+0328 003F;
+031A 003F;
+032B 003F;
+0334 05A0;
+0334 06DB;
+0334 1D170;
+0596 0334;
+0611 0334;
+0F86 0334;
+1D180 0334;
+0341 0334;
+0334 0328;
+0334 031A;
+0334 032B;
+0334 0345;
+0334 0355;
+0334 0362;
+05B1 0334;
+0334 FB1E;
+0334 0659;
+0334 0737;
+0334 0746;
+09BC 0334;
+0334 0ECA;
+0334 3099;
+20EE 0334;
+0347 003F;
+0357 003F;
+1DC1 003F;
+0486 003F;
+05C1 003F;
+FE79 003F;
+FE7C 003F;
+065D 003F;
+073B 003F;
+074A 003F;
+0952 003F;
+0A82 003F;
+0D82 003F;
+0E4E 0021;
+0F7E 0021;
+17CF 0021;
+FF9E 0021;
+20DA 0021;
+20E7 003F;
+0E46 003F;
+3033 003F;
+FF70 003F;
+00A2 0041;
+00A5 0021;
+0BF9 0021;
+20A3 0021;
+20A9 0041;
+20AF 0021;
+20B5 0021;
+06F0 003F;
+0ED0 003F;
+1D7E2 0041;
+0BE6 0041;
+3007 0041;
+0ED0 0062;
+1D7E3 003F;
+0967 003F;
+0F2A 003F;
+12434 0021;
+2491 0041;
+3362 0021;
+32CA 0021;
+2493 0062;
+2494 0061;
+24EE 0021;
+2496 0021;
+3367 0021;
+33EF 0021;
+33F0 0021;
+2499 0062;
+24F3 0041;
+1D7E3 0041;
+0967 0041;
+0F2A 0041;
+12434 0061;
+2081 0062;
+10142 0062;
+0032 0021;
+2082 0021;
+0D68 0021;
+1015D 0021;
+249B 0021;
+3251 0021;
+3253 0021;
+3370 0021;
+3257 0021;
+0032 0061;
+2082 0061;
+0D68 0061;
+1015D 0061;
+0032 0062;
+0D68 0062;
+33E1 0021;
+1D7E5 003F;
+09F6 0021;
+1043 003F;
+12420 003F;
+33FE 0021;
+325F 0041;
+0033 0061;
+2083 0061;
+0D69 0061;
+12417 0061;
+0033 0062;
+0D69 0062;
+33E2 0021;
+1D7E6 003F;
+09F7 0021;
+1044 003F;
+1240F 003F;
+32B7 0041;
+32BC 0041;
+2463 0061;
+0A6A 0061;
+17F4 0061;
+12426 0041;
+0664 0062;
+1240F 0062;
+0035 0021;
+2085 0021;
+194B 0021;
+10173 0021;
+1D364 0021;
+1D7D3 0041;
+096B 0041;
+1045 0041;
+12427 0061;
277A 0062;
-10143 0062;
-1D7DE 0021;
-104A6 003F;
-0F2F 003F;
-1D7FC 0041;
-0AEC 0041;
-1816 0041;
-0BEC 0062;
-335E 0062;
-2077 003F;
-194D 003F;
-FF17 0061;
-0667 0061;
-0E57 0061;
-24FB 0062;
-1010D 0062;
-1D7E0 003F;
-0A6E 0021;
-17F8 0021;
-2791 0061;
-0C6E 0061;
-0038 0062;
-19D8 0062;
-247C 0021;
-06F9 0021;
-0ED9 0021;
-1D7FF 0061;
-09EF 0061;
-17E9 0061;
-096F 0062;
-32C8 0062;
-1680 0061;
-1FCE 0061;
-FE32 0061;
-037E 0061;
-16ED 0061;
-2024 0061;
+3025 0062;
+335D 0021;
+277B 003F;
+0C6C 003F;
+1010C 003F;
+1D7D4 0041;
+096C 0041;
+1046 0041;
+FF16 0062;
+19D6 0062;
+335E 0021;
+277C 003F;
+0C6D 003F;
+1010D 003F;
+247A 0041;
+07C7 0061;
+0ED7 0061;
+12412 0041;
+09ED 0062;
+33E6 0021;
+1D7EA 003F;
+09EE 003F;
+17E8 003F;
+FF18 0041;
+0668 0041;
+19D8 0041;
+12406 0041;
+096E 0062;
+33E7 0021;
+1D7EB 003F;
+09EF 003F;
+17E9 003F;
+1D368 003F;
+2079 0041;
+0D6F 0041;
+1241D 0061;
+2792 0062;
+12407 0062;
+0085 0061;
+FF3E 0061;
+FE34 0061;
+30A0 0061;
+FE13 0061;
+00A1 0061;
+0702 0061;
1360 0061;
-201C 0061;
-FF5B 0061;
-2990 0061;
-FE41 0061;
-00B6 0061;
-066A 0061;
-2E01 0061;
-0DF4 0061;
-166D 0061;
-02D6 0061;
-1390 0061;
-A714 0061;
-0F1A 0061;
-19E4 0061;
-2114 0061;
-2195 0061;
-21B6 0061;
-21D4 0061;
-21F2 0061;
-1D76F 0061;
-207C 0061;
-221C 0061;
-2239 0061;
-2256 0061;
-2277 0061;
-22E3 0061;
-22B0 0061;
-22CA 0061;
-22F0 0061;
-230E 0061;
-232E 0061;
-234C 0061;
-236A 0061;
-2388 0061;
-23A6 0061;
-23C4 0061;
-2406 0061;
-2424 0061;
-250F 0061;
-252D 0061;
-254B 0061;
-2569 0061;
-2587 0061;
-25A4 0061;
-25C2 0061;
-25DF 0061;
-25FD 0061;
-261B 0061;
-2641 0061;
-265F 0061;
-2680 0061;
-26A7 0061;
-2717 0061;
-2736 0061;
-275A 0061;
-279B 0061;
-27BA 0061;
-27E2 0061;
-2904 0061;
-2922 0061;
-2940 0061;
-295E 0061;
-297C 0061;
-29B0 0061;
-29CE 0061;
-29EC 0061;
-2A0D 0061;
-2A2B 0061;
-2A49 0061;
-2A67 0061;
-2A88 0061;
-2AA6 0061;
-2AC4 0061;
-2AE2 0061;
-2B00 0061;
-2804 0061;
-2822 0061;
-2840 0061;
-285E 0061;
-287C 0061;
-289A 0061;
-28B8 0061;
-28D6 0061;
-28F4 0061;
-4DC4 0061;
-4DE2 0061;
-1D300 0061;
-1D31E 0061;
-1D33C 0061;
-A493 0061;
-A4B1 0061;
-1013F 0061;
-1D00C 0061;
-1D02A 0061;
-1D048 0061;
-1D066 0061;
-1D084 0061;
-1D0A2 0061;
-1D0C0 0061;
-1D0DE 0061;
-1D106 0061;
-1D124 0061;
-1D142 0061;
-1D159 0061;
-1D1A0 0061;
-1D1C2 0061;
-1D202 0061;
-1D220 0061;
-1D23E 0061;
-31CD 0061;
-137B 0061;
-10125 0061;
-10153 0061;
-103D4 0061;
-001D 0061;
-009B 0061;
-05A7 0061;
-06DE 0061;
-200E 0061;
-FE00 0061;
-1D16D 0061;
-1D1AB 0061;
-DFFFE 0061;
-E003B 0061;
-E0059 0061;
-E0077 0061;
-E0115 0061;
-E0133 0061;
-E0151 0061;
-E016F 0061;
-E018D 0061;
-E01AB 0061;
-E01C9 0061;
-E01E7 0061;
-1D5EE 0021;
-2001 0041;
-FE4C 0041;
-309B 0041;
-060C 0041;
-0707 0041;
-055E 0041;
-0387 0041;
-10102 0041;
-208E 0041;
-2985 0041;
-2E1C 0041;
-FE3A 0041;
-FE68 0041;
-2036 0041;
-05BE 0041;
-0F10 0041;
-02C7 0041;
-02F3 0041;
-A707 0041;
-0BFA 0041;
-0FC4 0041;
-19F5 0041;
-214C 0041;
-21A8 0041;
-21C7 0041;
-21E5 0041;
-1D6DB 0041;
-FB29 0041;
-FF5E 0041;
-222C 0041;
-224A 0041;
-2266 0041;
-2288 0041;
-22AC 0041;
-22BD 0041;
-22DB 0041;
-2301 0041;
-231F 0041;
-233F 0041;
-235D 0041;
-237B 0041;
-2399 0041;
-23B7 0041;
-23D5 0041;
-2417 0041;
-FFE8 0041;
-2520 0041;
-253E 0041;
-255C 0041;
-257A 0041;
-2598 0041;
-25B5 0041;
-25D2 0041;
-25F0 0041;
-260E 0041;
-262C 0041;
-2652 0041;
-2673 0041;
-2697 0041;
-2708 0041;
-2729 0041;
-2747 0041;
-276D 0041;
-27AC 0041;
-27D5 0041;
-27F7 0041;
-2915 0041;
-2933 0041;
-2951 0041;
-296F 0041;
-29A3 0041;
-29C1 0041;
-29DF 0041;
-29FF 0041;
-2A1E 0041;
-2A3C 0041;
-2A5A 0041;
-2A7B 0041;
-2A99 0041;
-2AB7 0041;
-2AD5 0041;
-2AF3 0041;
-2B11 0041;
-2815 0041;
-2833 0041;
-2851 0041;
-286F 0041;
-288D 0041;
-28AB 0041;
-28C9 0041;
-28E7 0041;
-268F 0041;
-4DD5 0041;
-4DF3 0041;
-1D311 0041;
-1D32F 0041;
-1D34D 0041;
-A4A4 0041;
-A4C2 0041;
-10189 0041;
-1D01D 0041;
-1D03B 0041;
-1D059 0041;
-1D077 0041;
-1D095 0041;
-1D0B3 0041;
-1D0D1 0041;
-1D0EF 0041;
-1D117 0041;
-1D135 0041;
-1D153 0041;
-1D193 0041;
-1D1B5 0041;
-1D1D3 0041;
-1D213 0041;
-1D231 0041;
-31C0 0041;
-09F9 0041;
-10118 0041;
-10144 0041;
-1016C 0041;
-0010 0041;
-008E 0041;
-059A 0041;
-0611 0041;
-0F37 0041;
-D800 0041;
-FE23 0041;
-1D17E 0041;
-6FFFF 0041;
-E002E 0041;
-E004C 0041;
-E006A 0041;
-E0108 0041;
-E0126 0041;
-E0144 0041;
-E0162 0041;
-E0180 0041;
-E019E 0041;
-E01BC 0041;
-E01DA 0041;
-1D400 0021;
-00AA 003F;
-1EB3 0021;
-00C5 0021;
-0104 0021;
-1E01 0021;
-0041 0306 0334 0301;
-00E2 0334;
-00E2 0309 0334;
-0041 0308 0334;
-0226 0334 0304;
-0202 0334;
-0332 0041;
-030B 0041;
-0315 0041;
-0324 0041;
-0335 0041;
-034A 0041;
-035A 0041;
-0483 0041;
-05BB 0041;
-FE76 0041;
-FC5F 0041;
-065B 0041;
-0739 0041;
-0748 0041;
-0A3C 0041;
-0C01 0041;
-10A39 0041;
-0ECD 0041;
-17CD 0041;
-302F 0041;
-20DA 0041;
-20E9 0041;
-1D4EA 0041;
-1D468 0041;
-0103 0041;
-1EA6 0041;
-01DE 0041;
-0203 0041;
-1D586 0062;
-00C0 0062;
-01DF 0062;
-2100 0062;
-00E6 0041;
-2101 0021;
+2019 0061;
+FF3B 0061;
+2989 0061;
+3009 0061;
+3018 0061;
+204A 0061;
+203F 0061;
+070A 0061;
+104D 0061;
+02CB 0061;
+02F7 0061;
+A70B 0061;
+0BF6 0061;
+0FBF 0061;
+19F0 0061;
+1B78 0061;
+FFEB 0061;
+21AF 0061;
+21CD 0061;
+21EB 0061;
+2204 0061;
+003C 0061;
+2215 0061;
+2232 0061;
+224F 0061;
+226C 0061;
+228D 0061;
+22A8 0061;
+22C3 0061;
+22E5 0061;
+2307 0061;
+2325 0061;
+2345 0061;
+2363 0061;
+2381 0061;
+239F 0061;
+23BD 0061;
+23DB 0061;
+2411 0061;
+2448 0061;
+251A 0061;
+2538 0061;
+2556 0061;
+2574 0061;
+2592 0061;
+25AF 0061;
+25CC 0061;
+25EA 0061;
+2608 0061;
+2626 0061;
+264C 0061;
+266A 0061;
+2691 0061;
+26B2 0061;
+2721 0061;
+2740 0061;
+2766 0061;
+27A5 0061;
+27C5 0061;
+27E8 0061;
+290A 0061;
+2928 0061;
+2946 0061;
+2964 0061;
+2982 0061;
+29B6 0061;
+29D4 0061;
+29F2 0061;
+2A13 0061;
+2A31 0061;
+2A4F 0061;
+2A6D 0061;
+2A8E 0061;
+2AAC 0061;
+2ACA 0061;
+2AE8 0061;
+2B06 0061;
+2CEA 0061;
+281D 0061;
+283B 0061;
+2859 0061;
+2877 0061;
+2895 0061;
+28B3 0061;
+28D1 0061;
+28EF 0061;
+2637 0061;
+4DDD 0061;
+4DFB 0061;
+1D319 0061;
+1D337 0061;
+1D355 0061;
+A4AC 0061;
+1013A 0061;
+1D007 0061;
+1D025 0061;
+1D043 0061;
+1D061 0061;
+1D07F 0061;
+1D09D 0061;
+1D0BB 0061;
+1D0D9 0061;
+1D101 0061;
+1D11F 0061;
+1D13D 0061;
+1D160 0061;
+1D19B 0061;
+1D1BA 0061;
+1D1DB 0061;
+1D21B 0061;
+1D239 0061;
+31C8 0061;
+1376 0061;
+10121 0061;
+1014E 0061;
+10176 0061;
+1D36D 0061;
+001E 0061;
+009C 0061;
+05A8 0061;
+06DF 0061;
+1B6F 0061;
+D805 0061;
+FFFB 0061;
+1D185 0061;
+9FFFE 0061;
+E0033 0061;
+E0051 0061;
+E006F 0061;
+E010D 0061;
+E012B 0061;
+E0149 0061;
+E0167 0061;
+E0185 0061;
+E01A3 0061;
+E01C1 0061;
+E01DF 0061;
+1D44E 0021;
+000C 0041;
+02DC 0041;
+005F 0041;
+301C 0041;
+2A74 0041;
+FE57 0041;
+06D4 0041;
+07F7 0041;
+FF07 0041;
+005B 0041;
+2987 0041;
+FE3F 0041;
+3017 0041;
+FF06 0041;
+2038 0041;
+05F3 0041;
+1940 0041;
+02C9 0041;
+02F5 0041;
+A709 0041;
+0BF4 0041;
+0F3F 0041;
+19EE 0041;
+1B76 0041;
+2192 0041;
+21AC 0041;
+21CB 0041;
+21E9 0041;
+1D7C3 0041;
+00F7 0041;
+2213 0041;
+222E 0041;
+226D 0041;
+226A 0041;
+228B 0041;
+22A6 0041;
+22C1 0041;
+22DF 0041;
+2305 0041;
+2323 0041;
+2343 0041;
+2361 0041;
+237F 0041;
+239D 0041;
+23BB 0041;
+23D9 0041;
+240F 0041;
+2446 0041;
+2518 0041;
+2536 0041;
+2554 0041;
+2572 0041;
+2590 0041;
+25AD 0041;
+25CB 0041;
+25E8 0041;
+2606 0041;
+2624 0041;
+264A 0041;
+2668 0041;
+2689 0041;
+26B0 0041;
+271F 0041;
+273E 0041;
+2764 0041;
+27A3 0041;
+27C3 0041;
+27E6 0041;
+2908 0041;
+2926 0041;
+2944 0041;
+2962 0041;
+2980 0041;
+29B4 0041;
+29D2 0041;
+29F0 0041;
+2A11 0041;
+2A2F 0041;
+2A4D 0041;
+2A6B 0041;
+2A8C 0041;
+2AAA 0041;
+2AC8 0041;
+2AE6 0041;
+2B04 0041;
+2CE8 0041;
+281B 0041;
+2839 0041;
+2857 0041;
+2875 0041;
+2893 0041;
+28B1 0041;
+28CF 0041;
+28ED 0041;
+2635 0041;
+4DDB 0041;
+4DF9 0041;
+1D317 0041;
+1D335 0041;
+1D353 0041;
+A4AA 0041;
+10138 0041;
+1D005 0041;
+1D023 0041;
+1D041 0041;
+1D05F 0041;
+1D07D 0041;
+1D09B 0041;
+1D0B9 0041;
+1D0D7 0041;
+1D0F5 0041;
+1D11D 0041;
+1D13B 0041;
+1D158 0041;
+1D199 0041;
+1D1BD 0041;
+1D1D9 0041;
+1D219 0041;
+1D237 0041;
+31C6 0041;
+1374 0041;
+1011F 0041;
+1014C 0041;
+10174 0041;
+1D36B 0041;
+001C 0041;
+009A 0041;
+05A6 0041;
+06DD 0041;
+1B6D 0041;
+D803 0041;
+FFF9 0041;
+1D181 0041;
+8FFFE 0041;
+E0031 0041;
+E004F 0041;
+E006D 0041;
+E010B 0041;
+E0129 0041;
+E0147 0041;
+E0165 0041;
+E0183 0041;
+E01A1 0041;
+E01BF 0041;
+E01DD 0041;
+1D49C 0021;
+2090 003F;
+1EB2 003F;
+212B 003F;
+0101 003F;
+1E00 003F;
+1EAE 0334;
+00C2 0334;
+0041 0334 0302 0309;
+0061 0308 0304 0334;
+0105 0334;
+1EA1 0334;
+0313 0041;
+0307 0061;
+0317 0061;
+0326 0061;
+0337 0061;
+034C 0061;
+035C 0061;
+1DC6 0061;
+05B4 0061;
+FE71 0061;
+0651 0061;
+0653 0061;
+0731 0061;
+0740 0061;
+07EF 0061;
+0982 0061;
+0B03 0061;
+1B02 0061;
+0E4B 0061;
+135F 0061;
+1939 0061;
+20D2 0061;
+20E1 0061;
+0061 0061;
+1D5EE 0041;
+1D56C 0041;
+1EAE 0061;
+1EA9 0061;
+0227 0061;
+1EA0 0061;
+1D68A 0062;
+1EB1 0062;
+0226 0062;
+1D2D 0021;
+01FD 0061;
+3373 0021;
1D01 0021;
0251 0041;
2000 0062;
-FE4B 0062;
-1FC0 0062;
-055D 0062;
-0706 0062;
-00BF 0062;
-00B7 0062;
-10101 0062;
-207E 0062;
-2984 0062;
-2E0D 0062;
-3015 0062;
-005C 0062;
-2037 0062;
-055F 0062;
-0F0F 0062;
-02C6 0062;
-02F2 0062;
-A706 0062;
-0BF8 0062;
-0FC3 0062;
-19F4 0062;
-214A 0062;
-21A7 0062;
-21C6 0062;
-21E4 0062;
-2202 0062;
-208A 0062;
-007E 0062;
-222D 0062;
-2249 0062;
-2271 0062;
-2286 0062;
-22A2 0062;
-22BC 0062;
-22DA 0062;
-2300 0062;
-231E 0062;
-233E 0062;
-235C 0062;
-237A 0062;
-2398 0062;
-23B6 0062;
-23D4 0062;
+FE4A 0062;
+2017 0062;
+FE50 0062;
+0703 0062;
+2047 0062;
+1B5C 0062;
+1B5B 0062;
+0022 0062;
+FE37 0062;
+298E 0062;
+FE3E 0062;
+FD3F 0062;
+FE6A 0062;
+2042 0062;
+180A 0062;
+17D9 0062;
+02D2 0062;
+02FC 0062;
+A710 0062;
+0CF2 0062;
+0FC4 0062;
+19F5 0062;
+2104 0062;
+2194 0062;
+21B4 0062;
+21D3 0062;
+21F0 0062;
+1D6FB 0062;
+2A75 0062;
+221A 0062;
+2237 0062;
+2254 0062;
+2276 0062;
+22E2 0062;
+22AB 0062;
+22C8 0062;
+22EE 0062;
+230C 0062;
+232C 0062;
+234A 0062;
+2368 0062;
+2386 0062;
+23A4 0062;
+23C2 0062;
+23E0 0062;
2416 0062;
2502 0062;
251F 0062;
@@ -827,3277 +868,3468 @@ A706 0062;
2651 0062;
2672 0062;
2696 0062;
-2707 0062;
-2727 0062;
-2746 0062;
-276C 0062;
-27AB 0062;
-27D4 0062;
-27F6 0062;
-2914 0062;
-2932 0062;
-2950 0062;
-296E 0062;
-29A2 0062;
-29C0 0062;
-29DE 0062;
-29FE 0062;
-2A1D 0062;
-2A3B 0062;
-2A59 0062;
-2A7A 0062;
-2A98 0062;
-2AB6 0062;
-2AD4 0062;
-2AF2 0062;
-2B10 0062;
-2814 0062;
-2832 0062;
-2850 0062;
-286E 0062;
-288C 0062;
-28AA 0062;
-28C8 0062;
-28E6 0062;
-268E 0062;
-4DD4 0062;
-4DF2 0062;
-1D310 0062;
-1D32E 0062;
-1D34C 0062;
-A4A3 0062;
-A4C1 0062;
-10188 0062;
-1D01C 0062;
-1D03A 0062;
-1D058 0062;
-1D076 0062;
-1D094 0062;
-1D0B2 0062;
-1D0D0 0062;
-1D0EE 0062;
-1D116 0062;
-1D134 0062;
-1D152 0062;
-1D192 0062;
-1D1B4 0062;
-1D1D2 0062;
-1D212 0062;
-1D230 0062;
-2FFB 0062;
-09F8 0062;
-10117 0062;
-10141 0062;
-1016B 0062;
-000F 0062;
-008D 0062;
-0599 0062;
-0610 0062;
-0F35 0062;
-206F 0062;
-FE21 0062;
-1D17D 0062;
-6FFFE 0062;
-E002D 0062;
-E004B 0062;
-E0069 0062;
-E0107 0062;
-E0125 0062;
-E0143 0062;
-E0161 0062;
-E017F 0062;
-E019D 0062;
-E01BB 0062;
-E01D9 0062;
-FF42 003F;
-24D1 003F;
-1D671 003F;
-1E04 0334;
-0309 0062;
-032E 0062;
-0354 0062;
-05B5 0062;
-FCF3 0062;
-0733 0062;
-0953 0062;
-0D83 0062;
-17C7 0062;
-20D4 0062;
-1D41B 0061;
-FF22 0061;
-1D47 0061;
-1D553 0062;
-1E07 0062;
-1D6C 0041;
-FF43 003F;
-1D624 003F;
-1D46A 003F;
-00E7 003F;
-0043 0307 0334;
-1D450 0061;
-FF23 0041;
-1D672 0041;
-3388 003F;
-1D436 0062;
-33C5 003F;
-33C7 0061;
-0187 0061;
-1D521 0021;
-2145 0021;
-1D48 0021;
-010F 0334;
-1E0F 0334;
-1D4B9 0061;
-216E 0061;
-24B9 0061;
-1E0E 0061;
-1D589 0062;
-010E 0062;
-3378 003F;
-01F2 0061;
-1D05 0041;
-018A 003F;
-FF45 003F;
-1D626 003F;
-1D5A4 003F;
-1EBF 003F;
-0116 003F;
-0205 003F;
-0045 0341 0334;
-0065 0302 0334 0300;
-0065 0334 0308;
-1E1C 0334;
-0065 0334 0309;
-00CA 0334 0323;
-1D556 0061;
-1D46C 0061;
-1D31 0041;
-1EC3 0041;
-0118 0041;
-1EC7 0041;
-0045 0062;
-1EC0 0062;
-0206 0062;
-01DD 003F;
-0259 0062;
-1D93 003F;
-1D08 003F;
-0066 003F;
-1D68F 003F;
-1D5A5 003F;
-1D523 0061;
-1D405 0061;
-1E1F 0041;
-1D439 0062;
-FB01 0021;
-0192 0021;
-1D420 003F;
-1D676 0021;
-011C 0021;
-0047 0334 0306;
-0047 0334 0304;
-1D5F4 0041;
-1D572 0041;
-0120 0061;
-1D690 0062;
-0121 0062;
-1DA2 0061;
-0260 003F;
-02E0 0041;
-1D5C1 0021;
-1D4D7 0021;
-021F 0021;
-0048 0334 0302;
-0048 0334 0323;
-1D4BD 0061;
-210C 0061;
-33CA 003F;
-1E2A 0041;
-0048 0062;
-1E2B 0062;
-029C 0062;
-02BB 0062;
-1D692 0021;
-1D540 0021;
-00CD 0021;
-0130 0021;
-0069 0301 0334;
-01D0 0334;
-0049 0328 0334;
-0049 0323 0334;
-1D58E 0061;
-2111 0061;
-1D62 0041;
-1E2E 0041;
-1ECA 0041;
-2111 0062;
-0129 0062;
-2162 003F;
-2163 003F;
-1DA6 003F;
-0197 0062;
-0196 0062;
-1D48B 003F;
-1D409 003F;
-0134 0334;
-1D527 0041;
-1D4A5 0041;
-1D4F3 0062;
-01F0 0062;
-025F 0061;
-1D424 003F;
-1D5DE 0021;
-01E8 003F;
-0137 0334;
-1D528 0061;
-1D43E 0061;
-3384 003F;
-1D458 0062;
-1D4F 0062;
-3391 0041;
-339E 0062;
-1D0B 0041;
-2113 0021;
-004C 0021;
-1D647 003F;
-1E3C 0021;
-004C 0334 0323;
-006C 0061;
-1D591 0041;
-1D473 0041;
-1E36 0061;
-1D4C1 0062;
-013A 0062;
-01C9 0062;
-33D3 0061;
-023D 0041;
-1DA9 0041;
-217F 0021;
-24DC 003F;
-1D614 003F;
-006D 0334 0307;
-24A8 0041;
-24DC 0041;
-1D614 0041;
-217F 0062;
-1D67C 0062;
-33D5 0021;
-33AB 0021;
-33BD 0021;
-0271 0021;
-1D45B 003F;
-1D67D 0021;
-0147 0021;
-004E 0301 0334;
-006E 0327 0334;
-1D427 0061;
-FF2E 0061;
-207F 0061;
-1E47 0061;
-1D697 0062;
-0146 0062;
-339A 0061;
-1DB0 0041;
-0272 0062;
-0235 0061;
-1D4F8 0021;
-1D476 0021;
-2092 0021;
-1ED6 0021;
-1E4F 0021;
-00D8 0334 0341;
-020F 0021;
-1ECC 0021;
-00F4 0334;
-00F4 0309 0334;
-004F 0334 030B;
-00D5 0334 0304;
-006F 0304 0334;
-020D 0334;
-004F 0334 0340 031B;
-004F 0334 0323;
-1D630 0061;
-1D5AE 0061;
-00D3 0061;
-01D2 0061;
-022C 0061;
-1E53 0061;
-1EDC 0061;
-1D4F8 0062;
-00F3 0062;
-022D 0062;
-1EDD 0062;
-1D0F 0041;
-0186 0061;
-1D16 0062;
-0277 0041;
-1D491 0021;
-2119 0021;
-1D3E 0021;
-1D429 0061;
-FF30 0061;
-1D56 0061;
-1D52D 0062;
-1E56 0062;
-33DA 0062;
-1D7D 0062;
-1DB2 0062;
-1D632 003F;
-1D5B0 003F;
-1D4FA 0041;
-1D444 0041;
-0051 0062;
-0138 0062;
-1D5CB 003F;
-1D4E1 003F;
-0156 003F;
-0072 0334 030C;
-0072 0334 0323;
-1D45F 0061;
-FF32 0041;
-02B3 0041;
-1E5B 0041;
-1D42B 0062;
-02B3 0062;
-0280 0061;
-1D1A 0062;
-027D 0062;
-24AE 0021;
-0053 0021;
-24C8 0021;
-015E 0021;
-0073 0302 0334;
-0053 0334 0327;
-0073 0041;
-1D69C 0041;
-1D61A 0041;
-1E60 0041;
-1D564 0062;
-015C 0062;
-00DF 0041;
-1DB3 003F;
-1D8B 0041;
-1D42D 0021;
-FF34 0021;
-1D57 0021;
-1E6F 0021;
-1E6C 0334;
-1D461 0061;
-FF34 0041;
-1D57 0041;
-1E6F 0041;
-1D57F 0062;
-2121 003F;
-02A7 003F;
-01AB 003F;
-0236 003F;
-1D42E 003F;
-1D650 0021;
-00D9 003F;
-01DA 003F;
-1E7A 003F;
-1EED 003F;
-0055 0341 0334;
-0055 030A 0334;
-0055 0334 0308 030C;
-0168 0334 0341;
-0055 030F 0334;
-01AF 0334 0340;
-1EE4 0334;
-1D462 0061;
-FF35 0041;
-1D58 0041;
-00FC 0041;
-1E78 0041;
-1EE9 0041;
-1E76 0041;
-1D518 0062;
-01DA 0062;
-1EED 0062;
-1D1D 0062;
-1D99 0041;
-019C 0061;
-01B1 0061;
-1D5CF 0021;
-1D4E5 0021;
-1E7C 0021;
-1D42F 0061;
-FF36 0061;
-24CB 0061;
-1D66B 0062;
-2175 0061;
-33DE 0062;
-028C 0061;
-1D534 003F;
-1D4B2 003F;
-1E85 0021;
-0175 0334;
-24B2 0041;
-0057 0041;
-24CC 0041;
-1E88 0041;
-1D61E 0062;
-028D 003F;
-1D4CD 003F;
-1D687 0021;
-1E8D 0334;
-1D5D1 0061;
-1D4E7 0061;
-1E8C 0061;
-1D47F 0062;
-216B 0021;
-1D66E 0021;
-1D5EC 0021;
-0177 003F;
-0079 0334 0301;
-0079 0303 0334;
-0079 0061;
-1D66E 0041;
-1D5EC 0041;
-1E8F 0061;
-1D66E 0062;
-1EF8 0062;
-1D433 0021;
-FF3A 0021;
-1DBB 0021;
-005A 0301 0334;
-1E95 0334;
-1D59F 0041;
-1D4B5 0041;
-1E92 0061;
-1D4B5 0062;
-1D22 0041;
-0225 0062;
-01B7 003F;
-1D23 0061;
-021C 0021;
-01BB 0061;
-0184 0041;
-02EE 0061;
-1D24 0061;
-01C0 0061;
-02AC 0061;
-1D756 003F;
-1F80 0021;
-1F8F 0021;
-1FB1 0021;
-1F00 0340 0334;
-03B1 0334 0343 0345;
-03B1 0314 0340 0334;
-0391 0334 0314 0345 0342;
-03B1 0345 0334 0300;
-1FB3 003F;
-1F08 0041;
-1F01 0041;
-1F89 0041;
-1FB3 0041;
-1F88 0062;
-1FB9 0062;
-1D5D 003F;
-1D5D 0041;
-1D772 003F;
-1D6FE 0041;
-213E 0062;
-1D759 0021;
-1D71F 0041;
-1D7AE 0021;
-1F1C 0021;
-03B5 0313 0334;
-03B5 0314 0334 0301;
-0395 0340 0334;
-1D720 0061;
-1F1B 0061;
-1D75A 0062;
-03DB 0021;
-1D6E7 003F;
-1D701 0062;
-1D6E8 003F;
-1F9E 0021;
-1F97 0021;
-03B7 0343 0334;
-03B7 0343 0300 0334 0345;
-1FCC 0313 0334;
-1F29 0340 0334;
-0397 0314 0345 0334;
-1FC6 0334;
-1D6E8 0061;
-1F26 0041;
-1F9B 0041;
-1FC6 0041;
-1F2E 0062;
-1FC7 0062;
-03F4 003F;
-1D717 0061;
-1D7A1 0061;
-1D6F3 0062;
-1D798 0021;
-1F33 0021;
-0390 0021;
-1FBE 0334 0313 0300;
-1FBE 0314 0300 0334;
-0399 0340 0334;
-1FBE 0334 0308 0342;
-1D798 0061;
-1F33 0061;
-0390 0061;
-1F32 0062;
-03F3 003F;
-1D6B1 0021;
-1D779 0041;
-1D6EB 0062;
-1D726 003F;
-1D740 0062;
-1D6B3 0021;
-1D79B 0061;
-338D 003F;
-03BD 003F;
-1D6CE 0041;
-03BE 003F;
-1D6CF 0041;
-03BF 003F;
-1F4C 003F;
-03BF 0334 0343;
-03BF 0334 0314 0301;
-1FF8 0334;
-1F44 0041;
-1FF8 0041;
-1FF8 0062;
-1D6B7 0021;
-1D71B 0041;
-1D77F 0062;
-03DF 0061;
-1D6D2 003F;
-03C1 0334 0313;
-1D780 0041;
-1D746 0062;
-1D6D3 0021;
-1D6F4 003F;
-03A3 0061;
-1D6BA 0062;
-1D749 003F;
-1D6F5 0061;
-1D74A 003F;
-1F55 003F;
-1FE6 003F;
-03C5 0343 0340 0334;
-1F51 0342 0334;
-1FE8 0334;
-1FE9 0334;
-1F54 0041;
-03D3 0041;
-1D6D6 0062;
-1FEA 0062;
-1D719 003F;
-1D719 0061;
-1D60 0041;
-1D6D8 003F;
-1D74C 0041;
-1D7A6 0062;
-1D713 0061;
-1D733 0062;
-1D6FA 003F;
-1FAE 0021;
-1FA7 0021;
-03C9 0334 0343;
-03C9 0313 0345 0300 0334;
-2126 0345 0334 0313;
-03A9 0334 0314 0340;
-1F61 0345 0334;
-03C9 0342 0334;
-2126 0061;
-1FA2 0041;
-1F6B 0041;
-1FFA 0041;
-1F62 0062;
-1FF4 0062;
-2C80 0021;
-2C86 0021;
-2C8A 0021;
-2C90 0021;
-2CE4 0061;
-2C98 0041;
-2CBC 0041;
-2CA0 0041;
-2CA6 0041;
-2CAC 0041;
-2CBE 0041;
-2CC2 0041;
-03E4 0041;
-03E8 0041;
-2CCE 0041;
-2CD4 0041;
-03EC 0041;
-2CDC 0041;
-2CB4 0041;
-2CE2 0041;
-04D0 0334;
-04D2 0334;
-04DB 0021;
-04D5 003F;
-0433 003F;
-0492 0041;
-0414 0041;
-0502 0041;
-0433 0301 0041;
-0435 003F;
-0450 0041;
-0435 0591 0306 0061;
-04C2 003F;
-04DC 003F;
-0496 0041;
-04DE 0021;
-0455 0041;
-045D 003F;
-0418 0001 0306 0061;
-04E4 003F;
-0406 0041;
-0407 0041;
-0419 0041;
-049B 003F;
-049F 003F;
-1D2B 003F;
-0508 0061;
-043D 0061;
-04C8 003F;
-050B 003F;
-043E 0334 0308;
-04E8 0001 0308 0061;
-04EB 0062;
-0480 0041;
-0421 0041;
-0422 0041;
-040B 0041;
-043A 0301 0041;
-0423 0304 0334;
-0443 0334 0306;
-0443 0334 0308;
-0443 0334 030B;
-04AE 0062;
-0424 0062;
-04BA 0062;
-047C 0062;
-04B4 0062;
-04F5 0061;
-04CB 0041;
-04BE 0041;
-0429 0041;
-04F8 0021;
-044C 0041;
-044D 0041;
-04EC 0061;
-0464 003F;
-0468 003F;
-0470 003F;
-0477 0021;
-04A9 003F;
-2C01 0061;
-2C04 0061;
-2C07 0061;
-2C0A 0061;
-2C0D 0061;
-2C10 0061;
-2C13 0061;
-2C16 0061;
-2C19 0061;
-2C1C 0061;
-2C1F 0061;
-2C22 0061;
-2C25 0061;
-2C28 0061;
-2C2B 0061;
-2C2E 0061;
-10A1 0061;
-10A3 0061;
-10A5 0061;
-10C1 0061;
-10A8 0061;
-10AA 0061;
-2D0C 003F;
-2D0D 003F;
-2D0F 003F;
-2D11 003F;
-2D23 003F;
-2D14 003F;
-2D16 003F;
-2D18 003F;
-2D1A 003F;
-2D1C 003F;
-2D1E 003F;
-2D1F 003F;
-2D25 003F;
-10FA 003F;
-0533 0061;
-0566 003F;
-0569 003F;
-056C 003F;
-056F 003F;
-0572 003F;
-FB14 003F;
-0576 003F;
-0579 003F;
-057C 003F;
-FB16 003F;
-0551 0061;
-0554 0061;
-05D0 003F;
-FB30 0061;
-2136 0041;
-2138 003F;
-05D4 0041;
-05F0 003F;
-05D8 05BC 0334;
-FB39 0062;
-FB3B 003F;
-FB3C 0021;
-05DE 0062;
-05E1 0041;
-FB43 0021;
-05E5 0061;
-05E8 0041;
-FB2A 003F;
-05EA 05BC 0334;
-0674 0062;
-0623 003F;
-FB51 0021;
-FE86 0061;
-FE88 0062;
-FE8C 0061;
-FC97 0062;
-FCDF 003F;
-FC9B 0062;
-FBF3 0062;
-FBF9 003F;
-FBF7 003F;
-FD3D 0061;
-066E 0062;
-FC9C 0061;
-FC07 0062;
-FC08 0061;
-FC09 0062;
-FB52 0041;
-FB56 0062;
-0750 0062;
-0756 0062;
-FE98 0061;
-FDA0 0062;
-FD53 0062;
-FC70 0062;
-FD55 0062;
-FCA5 0061;
-FE9C 0021;
-FC76 0062;
-FC79 0062;
-FB69 0021;
-FB5E 003F;
-FB65 0021;
-FE9D 003F;
-FDA6 0062;
-FD58 0062;
-FD02 0062;
-FB75 0021;
-FB7A 003F;
-FB7E 003F;
-FEA4 0061;
-FCAA 0061;
-FD1C 0061;
-FEA5 0062;
-FD1F 0061;
-0685 0062;
-FEAB 0021;
-FB88 0062;
-FB84 0062;
-FB86 0062;
-FEAD 0021;
-FEAF 0021;
-0692 0062;
-FB8A 0021;
-076B 0062;
-FEB1 0062;
-FC1D 0021;
-FC1E 0062;
-FCE7 0041;
-FD62 0062;
-FCFC 0062;
-FD25 0021;
-FD2E 0041;
-FD27 0021;
-FD28 0021;
-FD6D 0061;
-FD1A 0061;
-075C 0062;
-FEB9 0062;
-FCB2 0062;
-FDF0 0062;
-FD05 0062;
-FEBD 0041;
-FD6E 0062;
-FD2C 0061;
-FD24 0061;
-FEC1 003F;
-FC27 0021;
-FD74 0062;
-FEC5 003F;
-FC28 0062;
-FEC9 0062;
-FCBB 0061;
-FD13 0061;
-FED0 0061;
-FC2C 0062;
-FD16 0061;
-075F 0062;
-FCBE 0061;
-FD7D 0061;
-FC31 0062;
-FB6D 0021;
-FB71 0021;
-0761 0062;
-FED5 0062;
-FDB4 0061;
-FC7F 0061;
-FEDC 0061;
-FC38 0062;
-FCC7 0041;
-FC3C 0062;
-FC84 0061;
-FB8E 0062;
-FBD6 0061;
-FB95 0061;
-FB9D 0061;
-FB99 0061;
-0764 0062;
-FEF6 0061;
-FEFC 0061;
-FDBA 0061;
-FD80 0062;
-FD85 0062;
-FD87 0062;
-FC44 0062;
-FEE4 0021;
-FC88 0062;
-FDC0 0062;
-FD8B 0062;
-FC48 0021;
-0765 0062;
-FEE5 0062;
-FD97 0062;
-FD96 0062;
-FC8C 0021;
-FC8D 0062;
-FC50 0062;
-FBA3 0061;
-0767 0062;
-FEEA 0041;
-FC52 0062;
-FBAA 003F;
-06C2 003F;
-06D5 003F;
-0648 0061;
-FBE1 0021;
-FBD8 0021;
-06C8 0041;
-FBDF 0021;
-FC5D 0021;
-FEF4 003F;
-FCDA 003F;
-FCDC 003F;
-FCF0 0041;
-FCDE 003F;
-06CC 003F;
-06CE 003F;
-06D1 003F;
-FBB0 0041;
-0714 0061;
-0718 0041;
-071D 0041;
-0722 0041;
-074F 0041;
-0780 0041;
-079C 0041;
-07A3 0041;
-079B 0041;
-078E 0041;
-079F 0041;
-0796 0041;
-07A9 0041;
-07AF 0041;
-2D34 0041;
-2D3A 0041;
-2D40 0041;
-2D46 0041;
-2D4C 0041;
-2D52 0041;
-2D58 0041;
-2D5E 0041;
-2D63 0041;
-1203 0041;
-1209 0041;
-120F 0041;
-1214 0041;
-121A 0041;
-1380 0041;
-1221 0041;
-1227 0041;
-122D 0041;
-1232 0041;
-2D83 0041;
-123D 0041;
-1242 0041;
-1248 0041;
-1251 0041;
-1258 0041;
-1261 0041;
-1267 0041;
-1268 0041;
-126E 0041;
-1274 0041;
-1279 0041;
-127F 0041;
-1284 0041;
-128B 0041;
-1293 0041;
-1298 0041;
-129E 0041;
-12A3 0041;
-12A8 0041;
-12AE 0041;
-12B5 0041;
-12BD 0041;
-12C5 0041;
-12CD 0041;
-12D3 0041;
-12DA 0041;
-2D8B 0041;
-12E5 0041;
-12EB 0041;
-12F1 0041;
-12F7 0041;
-12FC 0041;
-1301 0041;
-1307 0041;
-130C 0041;
-1313 0041;
-131B 0041;
-2D94 0041;
-1323 0041;
-1328 0041;
-132E 0041;
-1333 0041;
-1338 0041;
-133E 0041;
-1344 0041;
-134A 0041;
-1388 0041;
-1352 0041;
-138C 0041;
-1359 0041;
-2DA4 0041;
-2DAB 0041;
-2DB2 0041;
-2DB9 0041;
-2DC0 0041;
-2DC6 0041;
-2DCD 0041;
-2DD4 0041;
-2DDB 0041;
-0905 0041;
-090B 0041;
-090F 0041;
-0915 093C 0334;
-0917 0061;
-095B 0334;
-0921 003F;
-0924 0021;
-0929 0041;
-092D 0062;
-0930 0062;
-0937 0021;
-093F 0021;
-0962 0021;
-0949 0021;
-0985 0041;
-098B 0041;
-0993 0041;
-0999 0041;
-099F 0041;
-09DD 0041;
-09A7 0061;
-09AE 0061;
-09B2 0062;
-09BD 0062;
-09C3 0062;
-09C8 0041;
-09D7 003F;
-0A05 003F;
-0A08 003F;
-0A15 0041;
-0A18 0061;
-0A5B 0062;
-0A22 0062;
-0A28 0062;
-0A2E 003F;
-0A35 0041;
-0A42 0041;
-0AD0 003F;
-0A8A 003F;
-0A8F 003F;
-0A96 003F;
-0A9C 003F;
-0AA2 003F;
-0AA8 003F;
-0AAF 003F;
-0AB7 003F;
-0AC0 003F;
-0AE3 003F;
-0ACC 003F;
-0B08 0062;
-0B61 0062;
-0B16 0062;
-0B1C 0062;
-0B5C 0061;
-0B25 0041;
-0B2C 0041;
-0B32 0041;
-0B38 0041;
-0B41 0041;
-0B47 0B56 0061;
-0B4D 0061;
-0B87 0061;
-0B90 0061;
-0B95 0062;
-0BA3 0062;
-0BAF 0062;
-0BB5 0062;
-0BBF 0062;
-0BC7 0041;
-0BC6 0BD7 0021;
-0C06 0041;
-0C60 0041;
-0C12 0041;
-0C18 0041;
-0C1E 0041;
-0C24 0041;
-0C2B 0041;
-0C31 0041;
-0C38 0041;
-0C42 0041;
-0C46 0591 0C56 0061;
-0C55 0021;
-0C88 003F;
-0CE1 003F;
-0C94 003F;
-0C9A 003F;
-0CA0 003F;
-0CA6 003F;
-0CAD 003F;
-0CB5 003F;
-0CDE 003F;
-0CBF 0CD5 0062;
-0CC6 0001 0CC2 0CD5 0061;
-0CCA 0021;
-0CCC 0021;
-0D06 0041;
-0D60 0041;
-0D12 0041;
-0D18 0041;
-0D1E 0041;
-0D24 0041;
-0D2B 0041;
-0D31 0041;
-0D37 0041;
-0D41 0041;
-0D47 1D165 0D3E 0061;
-0D46 0D57 0061;
-0D87 0061;
-0D8D 0061;
-0D93 0061;
-0D9C 0061;
-0DA2 0061;
-0DA8 0061;
-0DAE 0061;
-0DB5 0061;
-0DBB 0061;
-0DC4 0061;
-0DD1 0021;
-0DD9 0021;
-0DDB 0021;
-0DDC 0591 0DCA 0061;
-0DF3 0021;
-A805 0021;
-A80A 0041;
-A811 0041;
-A817 0041;
-A81D 0041;
-A823 0041;
-10A01 0041;
-10A10 0041;
-10A17 0041;
-10A1E 0041;
-10A24 0041;
-10A2A 0041;
-10A30 0041;
-0E40 0E01 003F;
-0E40 0E02 003F;
-0E40 0E03 003F;
-0E40 0E04 003F;
-0E40 0E05 003F;
-0E40 0E06 003F;
-0E40 0E07 003F;
-0E40 0E08 003F;
-0E40 0E09 003F;
-0E40 0E0A 003F;
-0E40 0E0B 003F;
-0E40 0E0C 003F;
-0E40 0E0D 003F;
-0E40 0E0E 003F;
-0E40 0E0F 003F;
-0E40 0E10 003F;
-0E40 0E11 003F;
-0E40 0E12 003F;
-0E40 0E13 003F;
-0E40 0E14 003F;
-0E40 0E15 003F;
-0E40 0E16 003F;
-0E40 0E17 003F;
-0E40 0E18 003F;
-0E40 0E19 003F;
-0E40 0E1A 003F;
-0E40 0E1B 003F;
-0E40 0E1C 003F;
-0E40 0E1D 003F;
-0E40 0E1E 003F;
-0E40 0E1F 003F;
-0E40 0E20 003F;
-0E40 0E21 003F;
-0E40 0E22 003F;
-0E40 0E23 003F;
-0E40 0E24 003F;
-0E40 0E25 003F;
-0E40 0E26 003F;
-0E40 0E27 003F;
-0E40 0E28 003F;
-0E40 0E29 003F;
-0E40 0E2A 003F;
-0E40 0E2B 003F;
-0E40 0E2C 003F;
-0E40 0E2D 003F;
-0E40 0E2E 003F;
-0E30 003F;
-0E34 0041;
-0E39 0062;
-0E40 1D165 0E06 0061;
-0E40 1D165 0E10 0061;
-0E40 1D165 0E1A 0061;
-0E40 1D165 0E24 0061;
-0E40 1D165 0E2E 0061;
-0E41 0001 0E09 0061;
-0E41 0001 0E13 0061;
-0E41 0001 0E1D 0061;
-0E41 0001 0E27 0061;
-0E42 0591 0E01 0061;
-0E42 0591 0E0B 0061;
-0E42 0591 0E15 0061;
-0E42 0591 0E1F 0061;
-0E42 0591 0E29 0061;
-0E43 1D165 0E03 0061;
-0E43 1D165 0E0D 0061;
-0E43 1D165 0E17 0061;
-0E43 1D165 0E21 0061;
-0E43 1D165 0E2B 0061;
-0E44 0001 0E06 0061;
-0E44 0001 0E10 0061;
-0E44 0001 0E1A 0061;
-0E44 0001 0E24 0061;
-0E44 0001 0E2E 0061;
-0EC3 0E81 0061;
-0EC3 0E82 0061;
-0EC3 0E84 0061;
-0EC3 0E87 0061;
-0EC3 0E88 0061;
-0EC3 0E8A 0061;
-0EC3 0E8D 0061;
-0EC3 0E94 0061;
-0EC3 0E95 0061;
-0EC3 0E96 0061;
-0EC3 0E97 0061;
-0EC3 0E99 0061;
-0EC3 0E9A 0061;
-0EC3 0E9B 0061;
-0EC3 0E9C 0061;
-0EC3 0E9D 0061;
-0EC3 0E9E 0061;
-0EC3 0E9F 0061;
-0EC3 0EA1 0061;
-0EC3 0EA2 0061;
-0EC3 0EA3 0061;
-0EC3 0EA5 0061;
-0EC3 0EA7 0061;
-0EC3 0EAA 0061;
-0EC2 0EDC 0061;
-0EC2 0EDD 0061;
-0EC3 0EAB 0061;
-0EC3 0EAD 0061;
-0EC3 0EAE 0061;
-0EB2 0062;
-0EB7 0062;
-0EC0 0021;
-0EC0 0591 0E95 0061;
-0EC0 0591 0EA1 0061;
-0EC0 0591 0EAE 0061;
-0EC1 1D165 0E94 0061;
-0EC1 1D165 0E9F 0061;
-0EC1 1D165 0EAD 0061;
-0EC2 0001 0E94 0061;
-0EC2 0001 0E9F 0061;
-0EC2 0001 0EAD 0061;
-0EC3 0591 0E8D 0061;
-0EC3 0591 0E9E 0061;
-0EC3 0591 0EDD 0061;
-0EC4 1D165 0E8A 0061;
-0EC4 1D165 0E9D 0061;
-0EC4 1D165 0EDC 0061;
-0F41 0021;
-0F44 0021;
-0F47 0021;
-0F4B 0021;
-0F4E 0021;
-0F51 0021;
-0F54 0021;
-0FA6 0021;
-0F5A 0021;
-0F5D 0021;
-0FAF 0021;
-0F62 0021;
-0FB2 0001 0F71 0F80 0061;
-0FB4 003F;
-0FB7 003F;
-0F8A 003F;
-0334 0F72 0F71;
-0F81 0061;
-0F76 003F;
-0FB2 0F81 0041;
-0FB3 0F71 1D165 0F80 0061;
-0F7C 0062;
-1903 0021;
-1909 0021;
-190F 0021;
-1915 0021;
-191B 0021;
-1924 0021;
-192A 0021;
-1934 0021;
-1701 0021;
-1707 0021;
-170E 0021;
-1714 0021;
-1724 0041;
-172A 0041;
-1730 0041;
-1741 003F;
-1747 003F;
-174D 003F;
-1753 003F;
-1765 003F;
-176B 003F;
-1773 003F;
-1A05 003F;
-1A0B 003F;
-1A11 003F;
-1A17 003F;
-1000 0061;
-1006 0061;
-100C 0061;
-1012 0061;
-1018 0061;
-1050 0061;
-1023 0061;
-1027 0062;
-1055 0062;
-1031 0062;
-1039 0061;
-1785 0061;
-178B 0061;
-1791 0061;
-1797 0061;
-179D 0061;
-17DC 0061;
-17A8 0061;
-17AE 0061;
-17B4 0061;
-17BA 0061;
-17C0 0061;
-0334 17D2;
-1955 0021;
-195B 0021;
-1961 0021;
-1967 0021;
-196D 0021;
-1980 0021;
-1986 0021;
-198C 0021;
-1992 0021;
-1998 0021;
-19DF 0021;
-19A2 0021;
-19A8 0021;
-19B4 0021;
-19BA 0021;
-19C0 0021;
-19C6 0021;
-1882 0021;
-1820 0021;
-1845 0021;
-1846 0021;
-1826 0021;
-184A 0021;
-182B 0021;
-184E 0021;
-182F 0021;
-18A2 0021;
-1833 0021;
-185C 0021;
-1836 0021;
-1856 0021;
-1863 0021;
-186E 0021;
-1859 0021;
-185A 0021;
-188E 0021;
-1891 0021;
-18A3 0021;
-18A7 0021;
-13A3 0041;
-13A9 0041;
-13AF 0041;
-13B5 0041;
-13BB 0041;
-13C1 0041;
-13C7 0041;
-13CD 0041;
-13D3 0041;
-13D9 0041;
-13DF 0041;
-13E5 0041;
-13EB 0041;
-13F1 0041;
-1403 0041;
-1409 0041;
-140F 0041;
-1415 0041;
-141B 0041;
-1421 0041;
-1427 0041;
-142D 0041;
-1433 0041;
-1439 0041;
-143F 0041;
-1445 0041;
-144B 0041;
-1451 0041;
-1457 0041;
-145D 0041;
-1463 0041;
-1469 0041;
-146F 0041;
-1475 0041;
-147B 0041;
-1481 0041;
-1487 0041;
-148D 0041;
-1493 0041;
-1499 0041;
-149F 0041;
-14A5 0041;
-14AB 0041;
-14B1 0041;
-14B7 0041;
-14BD 0041;
-14C3 0041;
-14C9 0041;
-14CF 0041;
-14D5 0041;
-14DB 0041;
-14E1 0041;
-14E7 0041;
-14ED 0041;
-14F3 0041;
-14F9 0041;
-14FF 0041;
-1505 0041;
-150B 0041;
-1511 0041;
-1517 0041;
-151D 0041;
-1523 0041;
-1529 0041;
-152F 0041;
-1535 0041;
-153B 0041;
-1541 0041;
-1547 0041;
-154D 0041;
-1553 0041;
-1559 0041;
-155F 0041;
-1565 0041;
-156B 0041;
-1571 0041;
-1577 0041;
-166F 0041;
-1583 0041;
-1589 0041;
-158E 0041;
-1594 0041;
-1675 0041;
-159A 0041;
-15A0 0041;
-15A6 0041;
-15AB 0041;
-15B1 0041;
-15B7 0041;
-15BD 0041;
-15C3 0041;
-15C9 0041;
-15CF 0041;
-15D5 0041;
-15DB 0041;
-15E1 0041;
-15E7 0041;
-15ED 0041;
-15F3 0041;
-15F9 0041;
-15FF 0041;
-1605 0041;
-160B 0041;
-1611 0041;
-1617 0041;
-161D 0041;
-1623 0041;
-1629 0041;
-162F 0041;
-1635 0041;
-163B 0041;
-1641 0041;
-1647 0041;
-164D 0041;
-1653 0041;
-1659 0041;
-165F 0041;
-1665 0041;
-166B 0041;
-1685 0041;
-168B 0041;
-1691 0041;
-1697 0041;
-16A4 003F;
-16A9 003F;
-16B0 0041;
-16B5 0062;
-16BC 0041;
-16C1 0062;
-16C7 0041;
-16CA 0041;
-16D0 0062;
-16D8 0061;
-16DC 0062;
-16E0 0041;
-16E5 0041;
-3131 0061;
-326E 0041;
-AC02 0062;
-1101 0061;
-3201 0062;
-3262 0061;
-FFA8 0041;
-3211 003F;
-3204 0062;
-3265 0061;
-FFB3 0041;
-3214 003F;
-3267 0021;
-321D 003F;
-3268 0061;
-110D 003F;
-3269 0061;
-326A 0021;
-1110 003F;
-3279 0061;
-321A 003F;
-320D 0062;
-D788 1161 0021;
-D7A0 0062;
-3165 0062;
-1119 0062;
-316E 0062;
-1120 0061;
-3174 0062;
-1127 0061;
-112B 0061;
-112E 0061;
-1132 0061;
-317E 0062;
-113C 0062;
-1141 0062;
-1147 0061;
-114C 0061;
-1151 0062;
-1157 0061;
-115F 0062;
-FFC2 0062;
-FFC4 0062;
-FFC6 0062;
-FFCA 0062;
-FFCC 0062;
-FFCE 0062;
-FFD2 0062;
-FFD4 0062;
-FFD6 0062;
-FFDA 0062;
-FFDC 0062;
-117B 0062;
-1181 0062;
-3188 0062;
-118A 0062;
-1190 0062;
-1194 0061;
-1199 0062;
-318D 0062;
-11A8 0062;
-FFA5 0021;
-11AE 0062;
-313B 0041;
-313D 0041;
-313F 0041;
-11BA 0062;
-11C0 0062;
-11C6 0062;
-11CA 0062;
-316A 0062;
-316B 0062;
-11D8 0062;
-11DD 0061;
-11E1 0062;
-11E7 0062;
-11ED 0062;
-11F2 0061;
-11F7 0062;
-3041 0061;
-3301 0062;
-FF72 0061;
-30A6 003F;
-3094 0041;
-32D3 003F;
-3307 0041;
-30AA 0041;
-304B 3099 0334;
-32D5 0062;
-30AD 0021;
-FF77 0062;
-3315 003F;
-3050 0021;
-3319 0021;
-30B1 0334 3099;
-30F6 0062;
-3053 0041;
-30B5 003F;
-32DA 0062;
-3058 003F;
-3321 003F;
-FF7D 0061;
-305C 003F;
-3323 0062;
-30BE 0041;
-305F 0061;
-30C1 3099 0334;
-FF6F 0021;
-32E1 0061;
-3067 003F;
-30C8 0021;
-3068 0062;
-FF85 0041;
-FF86 0062;
-30CD 003F;
-FF89 0041;
-3071 0334;
-31F5 0041;
-3072 003F;
-3072 0041;
-332E 0062;
-30D5 3099 0334;
-3077 0061;
-3335 0061;
-307A 003F;
-30DA 0041;
-333A 0021;
-30DC 003F;
-307D 0041;
-3340 0041;
-3344 0041;
-307F 0061;
-31FA 003F;
-334D 0021;
-30E2 003F;
-32F3 003F;
-FF94 0062;
-3085 0062;
-30E7 0061;
-32F6 0021;
-31FC 0041;
-32F8 0021;
-31FE 003F;
-3356 0041;
-308F 003F;
-30EE 0062;
-30F0 0062;
-FF66 0021;
-3093 0061;
-3107 003F;
-310B 003F;
-312B 003F;
-3111 003F;
-3116 003F;
-31A9 0061;
-31A4 003F;
-31AF 0061;
-3125 003F;
-3127 0061;
-A000 003F;
-A006 003F;
-A00C 003F;
-A012 003F;
-A018 003F;
-A01E 003F;
-A024 003F;
-A02A 003F;
-A030 003F;
-A036 003F;
-A03C 003F;
-A042 003F;
-A048 003F;
-A04E 003F;
-A054 003F;
-A05A 003F;
-A060 003F;
-A066 003F;
-A06C 003F;
-A072 003F;
-A078 003F;
-A07E 003F;
-A084 003F;
-A08A 003F;
-A090 003F;
-A096 003F;
-A09C 003F;
-A0A2 003F;
-A0A8 003F;
-A0AE 003F;
-A0B4 003F;
-A0BA 003F;
-A0C0 003F;
-A0C6 003F;
-A0CC 003F;
-A0D2 003F;
-A0D8 003F;
-A0DE 003F;
-A0E4 003F;
-A0EA 003F;
-A0F0 003F;
-A0F6 003F;
-A0FC 003F;
-A102 003F;
-A108 003F;
-A10E 003F;
-A114 003F;
-A11A 003F;
-A120 003F;
-A126 003F;
-A12C 003F;
-A132 003F;
-A138 003F;
-A13E 003F;
-A144 003F;
-A14A 003F;
-A150 003F;
-A156 003F;
-A15C 003F;
-A162 003F;
-A168 003F;
-A16E 003F;
-A174 003F;
-A17A 003F;
-A180 003F;
-A186 003F;
-A18C 003F;
-A192 003F;
-A198 003F;
-A19E 003F;
-A1A4 003F;
-A1AA 003F;
-A1B0 003F;
-A1B6 003F;
-A1BC 003F;
-A1C2 003F;
-A1C8 003F;
-A1CE 003F;
-A1D4 003F;
-A1DA 003F;
-A1E0 003F;
-A1E6 003F;
-A1EC 003F;
-A1F2 003F;
-A1F8 003F;
-A1FE 003F;
-A204 003F;
-A20A 003F;
-A210 003F;
-A216 003F;
-A21C 003F;
-A222 003F;
-A228 003F;
-A22E 003F;
-A234 003F;
-A23A 003F;
-A240 003F;
-A246 003F;
-A24C 003F;
-A252 003F;
-A258 003F;
-A25E 003F;
-A264 003F;
-A26A 003F;
-A270 003F;
-A276 003F;
-A27C 003F;
-A282 003F;
-A288 003F;
-A28E 003F;
-A294 003F;
-A29A 003F;
-A2A0 003F;
-A2A6 003F;
-A2AC 003F;
-A2B2 003F;
-A2B8 003F;
-A2BE 003F;
-A2C4 003F;
-A2CA 003F;
-A2D0 003F;
-A2D6 003F;
-A2DC 003F;
-A2E2 003F;
-A2E8 003F;
-A2EE 003F;
-A2F4 003F;
-A2FA 003F;
-A300 003F;
-A306 003F;
-A30C 003F;
-A312 003F;
-A318 003F;
-A31E 003F;
-A324 003F;
-A32A 003F;
-A330 003F;
-A336 003F;
-A33C 003F;
-A342 003F;
-A348 003F;
-A34E 003F;
-A354 003F;
-A35A 003F;
-A360 003F;
-A366 003F;
-A36C 003F;
-A372 003F;
-A378 003F;
-A37E 003F;
-A384 003F;
-A38A 003F;
-A390 003F;
-A396 003F;
-A39C 003F;
-A3A2 003F;
-A3A8 003F;
-A3AE 003F;
-A3B4 003F;
-A3BA 003F;
-A3C0 003F;
-A3C6 003F;
-A3CC 003F;
-A3D2 003F;
-A3D8 003F;
-A3DE 003F;
-A3E4 003F;
-A3EA 003F;
-A3F0 003F;
-A3F6 003F;
-A3FC 003F;
-A402 003F;
-A408 003F;
-A40E 003F;
-A414 003F;
-A41A 003F;
-A420 003F;
-A426 003F;
-A42C 003F;
-A432 003F;
-A438 003F;
-A43E 003F;
-A444 003F;
-A44A 003F;
-A450 003F;
-A456 003F;
-A45C 003F;
-A462 003F;
-A468 003F;
-A46E 003F;
-A474 003F;
-A47A 003F;
-A480 003F;
-A486 003F;
-A48C 003F;
-10305 003F;
-1030B 003F;
-10311 003F;
-10317 003F;
-1031D 003F;
-10334 003F;
-1033A 003F;
-10340 003F;
-10346 003F;
-10400 0061;
-10403 0061;
-10406 0061;
-10409 0061;
-1040C 0061;
-1040F 0061;
-10412 0061;
-10415 0061;
-10418 0061;
-1041B 0061;
-1041E 0061;
-10421 0061;
-10424 0061;
-10427 0061;
-10455 003F;
-1045B 003F;
-10461 003F;
-10467 003F;
-1046D 003F;
-10473 003F;
-10479 003F;
-1047F 003F;
-10485 003F;
-1048B 003F;
-10491 003F;
-10497 003F;
-1049D 003F;
-10005 003F;
-1000B 003F;
-10012 003F;
-10018 003F;
-1001E 003F;
-10024 003F;
-1002B 003F;
-10031 003F;
-10037 003F;
-1003F 003F;
-10045 003F;
-1004B 003F;
-10053 003F;
-10059 003F;
-10081 003F;
-10087 003F;
-1008D 003F;
-10093 003F;
-10099 003F;
-1009F 003F;
-100A5 003F;
-100AB 003F;
-100B1 003F;
-100B7 003F;
-100BD 003F;
-100C3 003F;
-100C9 003F;
-100CF 003F;
-100D5 003F;
-100DB 003F;
-100E1 003F;
-100E7 003F;
-100ED 003F;
-100F3 003F;
-100F9 003F;
-10804 003F;
-1080D 003F;
-10813 003F;
-10819 003F;
-1081F 003F;
-10825 003F;
-1082B 003F;
-10831 003F;
-10838 003F;
-10383 003F;
-10389 003F;
-1038F 003F;
-10395 003F;
-1039B 003F;
-103A3 003F;
-103A9 003F;
-103AF 003F;
-103B5 003F;
-103BB 003F;
-103C1 003F;
-103CB 003F;
-3280 0021;
-4E02 003F;
-3222 003F;
-3198 0061;
-32A5 003F;
-F95E 003F;
-2E84 0041;
-2F05 003F;
-3224 003F;
-2E85 003F;
-32AD 0061;
-F9B5 003F;
-F9D4 003F;
-FA31 0041;
-FA32 0041;
-F978 003F;
-3285 0041;
-2F8D2 003F;
-2F0E 003F;
-F955 003F;
-2F10 0061;
-FA00 0041;
-2F822 003F;
-2F992 003F;
-FA33 0041;
-2F13 003F;
-2F82B 0021;
-3229 003F;
-2F82C 003F;
-2F18 003F;
-F91C 003F;
-2E81 0061;
-2F1D 003F;
-3234 003F;
-2F83E 003F;
-2F841 003F;
-2F845 0041;
-2F848 003F;
-FA37 0041;
-3223 0061;
-322F 0061;
-2F854 003F;
-F96C 003F;
-2F20 003F;
-2F22 003F;
-337D 003F;
-2F85F 003F;
-2F863 003F;
-FA81 003F;
-2F27 003F;
-F95F 0061;
-2F873 003F;
-2F2A 0061;
-2F877 003F;
-2F2C 0041;
-F921 003F;
-2F2E 003F;
-2E92 003F;
-2F32 003F;
-FA01 003F;
-F928 0041;
-2F890 003F;
-2F894 0041;
-2F899 003F;
-F966 003F;
-2F89E 003F;
-2F8A3 0021;
-F9D9 003F;
-FA8A 003F;
-F98F 003F;
-FA40 0061;
-2F8B2 003F;
-2E98 003F;
-2F8B6 003F;
-F9A4 003F;
-2F8BD 003F;
-2F8C4 003F;
-2E99 003F;
-2F42 003F;
-2F46 003F;
-2F47 0041;
-FA91 0021;
-FA06 003F;
-322A 003F;
-FA92 0021;
-322D 003F;
-2F8DB 003F;
-F9DA 003F;
-F97A 003F;
-2F8E8 003F;
-F94C 003F;
-2F8EF 003F;
-FA95 003F;
-FA96 0021;
-2F50 003F;
-322C 0061;
-F972 003F;
-2F8FF 003F;
-F9CA 0061;
-2F904 003F;
-FA46 003F;
-2F90B 0021;
-FA47 0041;
-2F915 003F;
-322B 0061;
-F9FB 003F;
-FA9C 0021;
-F91E 003F;
-2F921 0021;
-2F922 003F;
-3295 0061;
-F9FA 003F;
-2F5E 003F;
-2F92B 003F;
-2F92E 003F;
-F994 003F;
-2F62 003F;
-329A 003F;
-F962 0041;
-FAA4 003F;
-2F6A 003F;
-32AC 0061;
-F96D 003F;
-FAA9 0041;
-2F94E 003F;
-2F950 0021;
-2EAD 003F;
-FA4D 003F;
-3297 0041;
-FA53 003F;
-F995 003F;
-2F95A 003F;
-2F74 0061;
-FA56 0041;
-FAAE 003F;
-F97B 003F;
-F96A 003F;
-2F96E 003F;
-F950 003F;
-2F79 003F;
-FA5A 003F;
-2EB7 0041;
-2F979 003F;
-2F97A 0041;
-F997 003F;
-2F81 003F;
-2F985 003F;
-FA5C 003F;
-2F893 0041;
-F97C 003F;
-2EBF 0061;
-2F994 003F;
-2F99C 003F;
-2F99D 003F;
-FAB4 003F;
-F999 003F;
-F923 003F;
-2F8C 003F;
-2F9B6 003F;
-2F9BC 003F;
-2F9C0 003F;
-2F9C3 003F;
-2F9C6 003F;
-FAB6 003F;
-FA0A 003F;
-2EC6 0061;
-FAB9 003F;
-FABA 0021;
-FABF 0021;
-2EC8 003F;
-2F98 003F;
-F948 003F;
-FA65 0041;
-2F9C 003F;
-2F9D 003F;
-2F9DF 0021;
-2F98D 003F;
-2ECC 0041;
-FAC3 003F;
-F92C 003F;
-F919 003F;
-F97E 003F;
-2F9E7 003F;
-F99B 003F;
-2ED2 003F;
-2ED4 003F;
-FA09 003F;
-2FAA 003F;
-FA68 0041;
-F938 003F;
-2FAE 003F;
-2ED9 003F;
-32A0 003F;
-FACC 0021;
-2FB6 003F;
-2FA02 003F;
-2FB8 003F;
-F91A 003F;
-2FBC 003F;
-2FC0 003F;
-F9F2 003F;
-F93A 003F;
-2FC5 0061;
-2FC7 0061;
-2FA17 003F;
-2FCD 003F;
-2FD0 0061;
-2EED 0061;
-2EF0 003F;
-FACE 0062;
-9FA3 003F;
-FA13 003F;
-FA27 003F;
-3403 003F;
-3409 003F;
-340F 003F;
-3415 003F;
-341B 003F;
-3421 003F;
-3427 003F;
-342D 003F;
-3433 003F;
-3439 003F;
-343F 003F;
-3445 003F;
-344B 003F;
-3451 003F;
-3457 003F;
-345D 003F;
-3463 003F;
-3469 003F;
-346F 003F;
-3475 003F;
-347B 003F;
-3481 003F;
-3487 003F;
-348D 003F;
-3493 003F;
-3499 003F;
-349E 0041;
-34A4 003F;
-34AA 003F;
-34B0 003F;
-34B6 003F;
-2F9CA 0021;
-34C0 003F;
-34C6 003F;
-34CC 003F;
-34D2 003F;
-34D8 003F;
-34DE 003F;
-34E3 003F;
-34E9 003F;
-34EF 003F;
-34F5 003F;
-34FB 003F;
-3501 003F;
-3507 003F;
-350D 003F;
-3513 003F;
-3518 003F;
-351E 003F;
-3524 003F;
-352A 003F;
-3530 003F;
-3536 003F;
-353C 003F;
-3542 003F;
-3548 003F;
-354E 003F;
-3554 003F;
-355A 003F;
-3560 003F;
-3566 003F;
-356C 003F;
-3572 003F;
-3578 003F;
-357E 003F;
-3584 003F;
-358A 003F;
-3590 003F;
-3596 003F;
-359C 003F;
-35A2 003F;
-35A8 003F;
-35AE 003F;
-35B4 003F;
-35BA 003F;
-35C0 003F;
-35C6 003F;
-35CC 003F;
-35D2 003F;
-35D8 003F;
-35DE 003F;
-35E4 003F;
-35EA 003F;
-35F0 003F;
-35F6 003F;
-35FC 003F;
-3602 003F;
-3608 003F;
-360E 003F;
-3614 003F;
-361A 003F;
-3620 003F;
-3626 003F;
-362C 003F;
-3632 003F;
-3638 003F;
-363E 003F;
-3644 003F;
-364A 003F;
-3650 003F;
-3656 003F;
-365C 003F;
-3662 003F;
-3668 003F;
-366E 003F;
-3674 003F;
-367A 003F;
-3680 003F;
-3686 003F;
-368C 003F;
-3692 003F;
-3698 003F;
-369E 003F;
-36A4 003F;
-36AA 003F;
-36B0 003F;
-36B6 003F;
-36BC 003F;
-36C2 003F;
-36C8 003F;
-36CE 003F;
-36D4 003F;
-36DA 003F;
-36E0 003F;
-36E6 003F;
-36EC 003F;
-36F1 003F;
-36F7 003F;
-36FC 0041;
-3702 003F;
-3708 003F;
-370E 003F;
-3714 003F;
-371A 003F;
-3720 003F;
-3726 003F;
-372C 003F;
-3732 003F;
-3738 003F;
-373E 003F;
-3744 003F;
-374A 003F;
-3750 003F;
-3756 003F;
-375C 003F;
-3762 003F;
-3768 003F;
-376E 003F;
-3774 003F;
-377A 003F;
-3780 003F;
-3785 003F;
-378B 003F;
-3791 003F;
-3797 003F;
-379D 003F;
-37A3 003F;
-37A9 003F;
-37AF 003F;
-37B5 003F;
-37BB 003F;
-37C1 003F;
-37C7 003F;
-37CD 003F;
-37D3 003F;
-37D9 003F;
-37DF 003F;
-37E5 003F;
-37EB 003F;
-37F1 003F;
-37F7 003F;
-37FD 003F;
-3803 003F;
-3809 003F;
-380F 003F;
-3815 003F;
-381B 003F;
-3821 003F;
-3827 003F;
-382D 003F;
-3832 003F;
-3838 003F;
-383E 003F;
-3844 003F;
-384A 003F;
-3850 003F;
-3856 003F;
-385C 003F;
-2F888 0021;
-3867 003F;
-386D 003F;
-3873 003F;
-3879 003F;
-387E 003F;
-3884 003F;
-388A 003F;
-3890 003F;
-3896 003F;
-389C 003F;
-38A2 003F;
-38A8 003F;
-38AE 003F;
-38B4 003F;
-38BA 003F;
-38C0 003F;
-38C6 003F;
-38CB 003F;
-38D1 003F;
-38D7 003F;
-38DD 003F;
-2F89B 0021;
-38E8 003F;
-38EE 003F;
-38F4 003F;
-38FA 003F;
-3900 003F;
-3906 003F;
-390C 003F;
-3912 003F;
-3918 003F;
-391D 003F;
-3923 003F;
-3929 003F;
-392F 003F;
-3935 003F;
-393A 0041;
-3940 003F;
-3946 003F;
-394C 003F;
-3952 003F;
-3958 003F;
-395E 003F;
-3964 003F;
-396A 003F;
-3970 003F;
-3976 003F;
-397C 003F;
-3982 003F;
-3988 003F;
-398E 003F;
-3994 003F;
-399A 003F;
-39A0 003F;
-39A6 003F;
-39AC 003F;
-39B2 003F;
-39B8 003F;
-39BE 003F;
-39C4 003F;
-39CA 003F;
-39D0 003F;
-39D6 003F;
-39DC 003F;
-39E2 003F;
-39E8 003F;
-39EE 003F;
-39F4 003F;
-39FA 003F;
-3A00 003F;
-3A06 003F;
-3A0C 003F;
-3A12 003F;
-3A18 003F;
-3A1E 003F;
-3A24 003F;
-3A2A 003F;
-3A2F 003F;
-3A35 003F;
-3A3B 003F;
-3A41 003F;
-3A47 003F;
-3A4D 003F;
-3A53 003F;
-3A59 003F;
-3A5F 003F;
-3A65 003F;
-3A6B 003F;
-3A70 003F;
-3A76 003F;
-3A7C 003F;
-3A82 003F;
-3A88 003F;
-3A8E 003F;
-3A94 003F;
-3A9A 003F;
-3AA0 003F;
-3AA6 003F;
-3AAC 003F;
-3AB2 003F;
-3AB8 003F;
-3ABE 003F;
-3AC4 003F;
-3ACA 003F;
-3AD0 003F;
-3AD6 003F;
-3ADC 003F;
-3AE2 003F;
-3AE7 003F;
-3AED 003F;
-3AF3 003F;
-3AF9 003F;
-3AFF 003F;
-3B05 003F;
-3B0A 003F;
-3B10 003F;
-3B16 003F;
-3B1B 003F;
-3B21 003F;
-3B27 003F;
-3B2D 003F;
-3B33 003F;
-3B39 003F;
-3B3F 003F;
-3B45 003F;
-3B4A 003F;
-3B50 003F;
-3B56 003F;
-3B5C 003F;
-3B62 003F;
-3B68 003F;
-3B6E 003F;
-3B74 003F;
-3B7A 003F;
-3B80 003F;
-3B86 003F;
-3B8C 003F;
-3B92 003F;
-3B98 003F;
-3B9D 0061;
-3BA2 003F;
-3BA8 003F;
-3BAE 003F;
-3BB4 003F;
-3BBA 003F;
-3BC0 003F;
-3BC6 003F;
-3BCC 003F;
-3BD2 003F;
-3BD8 003F;
-3BDE 003F;
-3BE4 003F;
-3BEA 003F;
-3BF0 003F;
-3BF6 003F;
-3BFC 003F;
-3C02 003F;
-3C08 003F;
-3C0E 003F;
-3C14 003F;
-3C19 003F;
-3C1F 003F;
-3C25 003F;
-3C2B 003F;
-3C31 003F;
-3C37 003F;
-3C3D 003F;
-3C43 003F;
-3C49 003F;
-3C4E 0041;
-3C54 003F;
-3C5A 003F;
-3C60 003F;
-3C66 003F;
-3C6C 003F;
-3C72 003F;
-3C78 003F;
-3C7E 003F;
-3C84 003F;
-3C8A 003F;
-3C90 003F;
-3C96 003F;
-3C9C 003F;
-3CA2 003F;
-3CA8 003F;
-3CAE 003F;
-3CB4 003F;
-3CBA 003F;
-3CC0 003F;
-3CC6 003F;
-3CCC 003F;
-3CD2 003F;
-3CD8 003F;
-3CDE 003F;
-3CE4 003F;
-3CEA 003F;
-3CF0 003F;
-3CF6 003F;
-3CFC 003F;
-3D02 003F;
-3D08 003F;
-3D0E 003F;
-3D14 003F;
-3D1A 003F;
-3D20 003F;
-3D26 003F;
-3D2C 003F;
-3D32 003F;
-3D37 003F;
-3D3D 003F;
-3D43 003F;
-3D49 003F;
-3D4F 003F;
-3D55 003F;
-3D5B 003F;
-3D61 003F;
-3D67 003F;
-3D6D 003F;
-3D73 003F;
-3D79 003F;
-3D7F 003F;
-3D85 003F;
-3D8B 003F;
-3D91 003F;
-3D96 0041;
-3D9C 003F;
-3DA2 003F;
-3DA8 003F;
-3DAE 003F;
-3DB4 003F;
-3DBA 003F;
-3DC0 003F;
-3DC6 003F;
-3DCC 003F;
-3DD2 003F;
-3DD8 003F;
-3DDE 003F;
-3DE4 003F;
-3DEA 003F;
-3DF0 003F;
-3DF6 003F;
-3DFC 003F;
-3E02 003F;
-3E08 003F;
-3E0E 003F;
-3E14 003F;
-3E1A 003F;
-3E20 003F;
-3E26 003F;
-3E2C 003F;
-3E32 003F;
-3E38 003F;
-3E3E 003F;
-3E44 003F;
-3E4A 003F;
-3E50 003F;
-3E56 003F;
-3E5C 003F;
-3E62 003F;
-3E68 003F;
-3E6E 003F;
-3E74 003F;
-3E7A 003F;
-3E80 003F;
-3E86 003F;
-3E8C 003F;
-3E92 003F;
-3E98 003F;
-3E9E 003F;
-3EA4 003F;
-3EAA 003F;
-3EAF 003F;
-3EB5 003F;
-3EB9 003F;
-3EBF 003F;
-3EC5 003F;
-3ECB 003F;
-3ED1 003F;
-3ED7 003F;
-3EDD 003F;
-3EE3 003F;
-3EE9 003F;
-3EEF 003F;
-3EF5 003F;
-3EFB 003F;
-3F01 003F;
-3F07 003F;
-3F0D 003F;
-3F13 003F;
-3F19 003F;
-3F1E 003F;
-3F24 003F;
-3F2A 003F;
-3F30 003F;
-3F36 003F;
-3F3C 003F;
-3F42 003F;
-3F48 003F;
-3F4E 003F;
-3F54 003F;
-3F5A 003F;
-3F60 003F;
-3F66 003F;
-3F6C 003F;
-3F72 003F;
-3F78 003F;
-3F7E 003F;
-3F84 003F;
-3F8A 003F;
-3F90 003F;
-3F96 003F;
-3F9C 003F;
-3FA2 003F;
-3FA8 003F;
-3FAE 003F;
-3FB4 003F;
-3FBA 003F;
-3FC0 003F;
-3FC6 003F;
-3FCC 003F;
-3FD2 003F;
-3FD8 003F;
-3FDE 003F;
-3FE4 003F;
-3FEA 003F;
-3FF0 003F;
-3FF6 003F;
-2F93E 0021;
-4001 003F;
-4007 003F;
-400C 003F;
-4012 003F;
-FAD3 0021;
-401D 003F;
-4023 003F;
-4029 003F;
-402F 003F;
-4035 003F;
-2F949 0041;
-403F 003F;
-4045 003F;
-404A 003F;
-4050 003F;
-4056 003F;
-405C 003F;
-4062 003F;
-4068 003F;
-406E 003F;
-4074 003F;
-407A 003F;
-4080 003F;
-4086 003F;
-408C 003F;
-4092 003F;
-4097 003F;
-409D 003F;
-40A3 003F;
-40A9 003F;
-40AF 003F;
-40B5 003F;
-40BB 003F;
-40C1 003F;
-40C7 003F;
-40CD 003F;
-40D3 003F;
-40D9 003F;
-40DF 003F;
-40E4 003F;
-40EA 003F;
-40F0 003F;
-40F6 003F;
-40FC 003F;
-4102 003F;
-4108 003F;
-410E 003F;
-4114 003F;
-411A 003F;
-4120 003F;
-4126 003F;
-412C 003F;
-4131 003F;
-4137 003F;
-413D 003F;
-4143 003F;
-4149 003F;
-414F 003F;
-4155 003F;
-415B 003F;
-4161 003F;
-4167 003F;
-416D 003F;
-4173 003F;
-4179 003F;
-417F 003F;
-4185 003F;
-418B 003F;
-4191 003F;
-4197 003F;
-419D 003F;
-41A3 003F;
-41A9 003F;
-41AF 003F;
-41B5 003F;
-41BB 003F;
-41C1 003F;
-41C7 003F;
-41CD 003F;
-41D3 003F;
-41D9 003F;
-41DF 003F;
-41E5 003F;
-41EB 003F;
-41F1 003F;
-41F7 003F;
-41FD 003F;
-4202 0041;
-4208 003F;
-420E 003F;
-4214 003F;
-421A 003F;
-4220 003F;
-4226 003F;
-422B 003F;
-4231 003F;
-4237 003F;
-423D 003F;
-4243 003F;
-4249 003F;
-424F 003F;
-4255 003F;
-425B 003F;
-4261 003F;
-4267 003F;
-426D 003F;
-4273 003F;
-4279 003F;
-427F 003F;
-4285 003F;
-428B 003F;
-4291 003F;
-4297 003F;
-429D 003F;
-42A2 003F;
-42A8 003F;
-42AE 003F;
-42B4 003F;
-42BA 003F;
-42C0 003F;
-42C6 003F;
-42CC 003F;
-42D2 003F;
-42D8 003F;
-42DE 003F;
-42E4 003F;
-42EA 003F;
-42F0 003F;
-42F6 003F;
-42FC 003F;
-4301 0041;
-4307 003F;
-430D 003F;
-4313 003F;
-4319 003F;
-431F 003F;
-4325 003F;
-432B 003F;
-4331 003F;
-4336 003F;
-433C 003F;
-4342 003F;
-4348 003F;
-434E 003F;
-4354 003F;
-4359 0041;
-435F 003F;
-4365 003F;
-436B 003F;
-4371 003F;
-4377 003F;
-437D 003F;
-4383 003F;
-4389 003F;
-438F 003F;
-4395 003F;
-439B 003F;
-43A1 003F;
-43A7 003F;
-43AD 003F;
-43B3 003F;
-43B9 003F;
-43BF 003F;
-43C5 003F;
-43CB 003F;
-43D1 003F;
-43D6 003F;
-43DB 003F;
-43E1 003F;
-43E7 003F;
-43ED 003F;
-43F3 003F;
-43F9 003F;
-43FF 003F;
-4405 003F;
-2F984 0021;
-4410 003F;
-4416 003F;
-441C 003F;
-4422 003F;
-4428 003F;
-442E 003F;
-4434 003F;
-443A 003F;
-4440 003F;
-4446 003F;
-444C 003F;
-4452 003F;
-4458 003F;
-445E 003F;
-4464 003F;
-446A 003F;
-446F 003F;
-4475 003F;
-447B 003F;
-4481 003F;
-4487 003F;
-448D 003F;
-4493 003F;
-4499 003F;
-449F 003F;
-44A5 003F;
-44AB 003F;
-44B1 003F;
-44B7 003F;
-44BD 003F;
-44C3 003F;
-44C9 003F;
-44CF 003F;
-44D5 003F;
-44DB 003F;
-44E1 003F;
-44E7 003F;
-44ED 003F;
-44F3 003F;
-44F9 003F;
-44FF 003F;
-4505 003F;
-450B 003F;
-4511 003F;
-4517 003F;
-451D 003F;
-4523 003F;
-4529 003F;
-452E 003F;
-4534 003F;
-453A 003F;
-4540 003F;
-4546 003F;
-454C 003F;
-4552 003F;
-4558 003F;
-455D 0041;
-4562 003F;
-4568 003F;
-456D 003F;
-4573 003F;
-4579 003F;
-457F 003F;
-4585 003F;
-458B 003F;
-4591 003F;
-4597 003F;
-459D 003F;
-45A3 003F;
-45A9 003F;
-45AF 003F;
-45B5 003F;
-45BB 003F;
-45C1 003F;
-45C7 003F;
-45CD 003F;
-45D3 003F;
-45D8 003F;
-45DE 003F;
-45E4 003F;
-45EA 003F;
-45F0 003F;
-45F6 003F;
-45FB 003F;
-4601 003F;
-4607 003F;
-460D 003F;
-4613 003F;
-4619 003F;
-461F 003F;
-4625 003F;
-462B 003F;
-4631 003F;
-4636 003F;
-463C 003F;
-4642 003F;
-4648 003F;
-464E 003F;
-4654 003F;
-465A 003F;
-4660 003F;
-4666 003F;
-466C 003F;
-4672 003F;
-4678 003F;
-467E 003F;
-4684 003F;
-468A 003F;
-4690 003F;
-4696 003F;
-469C 003F;
-46A2 003F;
-46A8 003F;
-46AE 003F;
-46B4 003F;
-46BA 003F;
-46BF 003F;
-46C5 003F;
-46CA 003F;
-46D0 003F;
-46D6 003F;
-46DC 003F;
-46E2 003F;
-46E8 003F;
-46EE 003F;
-46F4 003F;
-46FA 003F;
-4700 003F;
-4706 003F;
-470C 003F;
-4712 003F;
-4718 003F;
-471E 003F;
-4724 003F;
-472A 003F;
-4730 003F;
-4736 003F;
-473C 003F;
-4742 003F;
-4748 003F;
-474E 003F;
-4754 003F;
-475A 003F;
-4760 003F;
-4766 003F;
-476C 003F;
-4772 003F;
-4778 003F;
-477E 003F;
-4784 003F;
-478A 003F;
-4790 003F;
-4796 003F;
-479C 003F;
-47A2 003F;
-47A8 003F;
-47AE 003F;
-47B4 003F;
-47BA 003F;
-47C0 003F;
-47C6 003F;
-47CC 003F;
-47D2 003F;
-47D8 003F;
-47DE 003F;
-47E4 003F;
-47EA 003F;
-47F0 003F;
-47F6 003F;
-47FC 003F;
-4802 003F;
-4808 003F;
-480E 003F;
-4814 003F;
-481A 003F;
-4820 003F;
-4826 003F;
-482C 003F;
-4832 003F;
-4838 003F;
-483E 003F;
-4844 003F;
-484A 003F;
-4850 003F;
-4856 003F;
-485C 003F;
-4862 003F;
-4868 003F;
-486E 003F;
-4874 003F;
-487A 003F;
-4880 003F;
-4886 003F;
-488C 003F;
-4892 003F;
-4898 003F;
-489E 003F;
-48A4 003F;
-48AA 003F;
-48B0 003F;
-48B6 003F;
-48BC 003F;
-48C2 003F;
-48C8 003F;
-48CE 003F;
-48D4 003F;
-48DA 003F;
-48E0 003F;
-48E6 003F;
-48EC 003F;
-48F2 003F;
-48F8 003F;
-48FE 003F;
-4904 003F;
-490A 003F;
-4910 003F;
-4916 003F;
-491C 003F;
-4922 003F;
-4928 003F;
-492E 003F;
-4934 003F;
-493A 003F;
-4940 003F;
-4946 003F;
-494C 003F;
-4952 003F;
-4958 003F;
-495E 003F;
-4964 003F;
-496A 003F;
-4970 003F;
-4976 003F;
-497C 003F;
-4982 003F;
-4988 003F;
-498E 003F;
-4994 003F;
-4999 003F;
-499F 003F;
-49A5 003F;
-49AB 003F;
-49B1 003F;
-49B7 003F;
-49BD 003F;
-49C3 003F;
-49C9 003F;
-49CF 003F;
-49D5 003F;
-49DB 003F;
-49E1 003F;
-49E6 0041;
-49EC 003F;
-49F2 003F;
-49F8 003F;
-49FE 003F;
-4A04 003F;
-4A0A 003F;
-4A10 003F;
-4A16 003F;
-4A1C 003F;
-4A22 003F;
-4A28 003F;
-4A2E 003F;
-4A34 003F;
-4A3A 003F;
-4A40 003F;
-4A46 003F;
-4A4C 003F;
-4A52 003F;
-4A58 003F;
-4A5E 003F;
-4A64 003F;
-4A6A 003F;
-4A6F 003F;
-4A75 003F;
-4A7A 003F;
-4A80 003F;
-4A86 003F;
-4A8C 003F;
-4A92 003F;
-4A98 003F;
-4A9E 003F;
-4AA4 003F;
-4AAA 003F;
-4AB0 003F;
-4AB5 003F;
-4ABB 003F;
-4AC1 003F;
-4AC7 003F;
-4ACD 003F;
-4AD3 003F;
-4AD9 003F;
-4ADF 003F;
-4AE5 003F;
-4AEB 003F;
-4AF1 003F;
-4AF7 003F;
-4AFD 003F;
-4B03 003F;
-4B09 003F;
-4B0F 003F;
-4B15 003F;
-4B1B 003F;
-4B21 003F;
-4B27 003F;
-4B2D 003F;
-2FA03 0021;
-4B38 003F;
-4B3E 003F;
-4B44 003F;
-4B4A 003F;
-4B50 003F;
-4B56 003F;
-4B5C 003F;
-4B62 003F;
-4B68 003F;
-4B6E 003F;
-4B74 003F;
-4B7A 003F;
-4B80 003F;
-4B86 003F;
-4B8C 003F;
-4B92 003F;
-4B98 003F;
-4B9E 003F;
-4BA4 003F;
-4BAA 003F;
-4BB0 003F;
-4BB6 003F;
-4BBC 003F;
-4BC2 003F;
-4BC8 003F;
-2FA08 0021;
-4BD3 003F;
-4BD9 003F;
-4BDF 003F;
-4BE5 003F;
-4BEB 003F;
-4BF1 003F;
-4BF7 003F;
-4BFD 003F;
-4C03 003F;
-4C09 003F;
-4C0F 003F;
-4C15 003F;
-4C1B 003F;
-4C21 003F;
-4C27 003F;
-4C2D 003F;
-4C33 003F;
-4C39 003F;
-4C3F 003F;
-4C45 003F;
-4C4B 003F;
-4C51 003F;
-4C57 003F;
-4C5D 003F;
-4C63 003F;
-4C69 003F;
-4C6F 003F;
-4C75 003F;
-4C7B 003F;
-4C81 003F;
-4C87 003F;
-4C8D 003F;
-4C93 003F;
-4C99 003F;
-4C9F 003F;
-4CA5 003F;
-4CAB 003F;
-4CB1 003F;
-4CB7 003F;
-4CBD 003F;
-4CC3 003F;
-4CC9 003F;
-4CCE 0041;
-4CD4 003F;
-4CDA 003F;
-4CE0 003F;
-4CE6 003F;
-4CEC 003F;
-4CF1 003F;
-4CF7 003F;
-4CFC 003F;
-4D02 003F;
-4D08 003F;
-4D0E 003F;
-4D14 003F;
-4D1A 003F;
-4D20 003F;
-4D26 003F;
-4D2C 003F;
-4D32 003F;
-4D38 003F;
-4D3E 003F;
-4D44 003F;
-4D4A 003F;
-4D50 003F;
-2FA16 0021;
-4D5B 003F;
-4D61 003F;
-4D67 003F;
-4D6D 003F;
-4D73 003F;
-4D79 003F;
-4D7F 003F;
-4D85 003F;
-4D8B 003F;
-4D91 003F;
-4D97 003F;
-4D9D 003F;
-4DA3 003F;
-4DA9 003F;
-4DAF 003F;
-4DB5 003F;
-20005 003F;
-2F9D9 003F;
-2F861 003F;
-2F889 003F;
-FACF 003F;
-2F989 003F;
-2F8F0 003F;
-2F910 003F;
-2F927 003F;
-2F942 003F;
-2F952 003F;
-2F961 003F;
-2F973 003F;
-2F987 003F;
-2F9AD 003F;
-2F9CC 003F;
-2F9E5 003F;
-2F9FB 003F;
-2FA13 003F;
-2A6D3 003F;
-E001 003F;
-F8FB 003F;
-C0000 003F;
-E0005 003F;
-F0005 003F;
-F00FD 003F;
-FFF05 003F;
-FFFFD 003F;
-100005 003F;
-1000FD 003F;
-10FF05 003F;
-10FFFD 003F;
+2706 0062;
+2726 0062;
+2745 0062;
+276B 0062;
+27AA 0062;
+27CA 0062;
+27F1 0062;
+290F 0062;
+292D 0062;
+294B 0062;
+2969 0062;
+299D 0062;
+29BB 0062;
+29D9 0062;
+29F7 0062;
+2A18 0062;
+2A36 0062;
+2A54 0062;
+2A72 0062;
+2A93 0062;
+2AB1 0062;
+2ACF 0062;
+2AED 0062;
+2B0B 0062;
+2804 0062;
+2822 0062;
+2840 0062;
+285E 0062;
+287C 0062;
+289A 0062;
+28B8 0062;
+28D6 0062;
+28F4 0062;
+4DC4 0062;
+4DE2 0062;
+1D300 0062;
+1D31E 0062;
+1D33C 0062;
+A493 0062;
+A4B1 0062;
+1013F 0062;
+1D00C 0062;
+1D02A 0062;
+1D048 0062;
+1D066 0062;
+1D084 0062;
+1D0A2 0062;
+1D0C0 0062;
+1D0DE 0062;
+1D106 0062;
+1D124 0062;
+1D142 0062;
+1D159 0062;
+1D1A0 0062;
+1D1C2 0062;
+1D202 0062;
+1D220 0062;
+1D23E 0062;
+31CD 0062;
+137B 0062;
+10126 0062;
+10154 0062;
+103D5 0062;
+0000 0062;
+0082 0062;
+0488 0062;
+05AD 0062;
+06E4 0062;
+200B 0062;
+FDD3 0062;
+1D167 0062;
+1D18A 0062;
+BFFFF 0062;
+E0038 0062;
+E0056 0062;
+E0074 0062;
+E0112 0062;
+E0130 0062;
+E014E 0062;
+E016C 0062;
+E018A 0062;
+E01A8 0062;
+E01C6 0062;
+E01E4 0062;
+1D5BB 0021;
+1D539 0021;
+1E05 0021;
+0301 0062;
+0319 0062;
+033B 0062;
+035F 0062;
+05B7 0062;
+FCF4 0062;
+0734 0062;
+07F2 0062;
+0C02 0062;
+0EC8 0062;
+302A 0062;
+20E4 0062;
+1D68B 0061;
+1D609 0061;
+1E07 0061;
+1D435 0062;
+0180 0021;
+0253 0021;
+1D41C 0021;
+FF23 0021;
+1D63E 003F;
+0063 0301 0334;
+0043 0334 0327;
+1D5BC 0061;
+1D402 0061;
+0106 0061;
+0368 0062;
+1D60A 0062;
+33C6 0041;
+2106 0041;
+1D9D 003F;
+1D485 0021;
+FF24 003F;
+1D673 003F;
+1E0E 003F;
+1E12 0334;
+1D41D 0061;
+0044 0041;
+1D60B 0041;
+1E12 0041;
+1D4ED 0062;
+33C8 003F;
+3377 0021;
+02A3 0061;
+1D05 0021;
+0257 0021;
+0065 0021;
+1D58A 003F;
+1D508 003F;
+00CA 0021;
+0117 0021;
+1EBA 0021;
+0045 0301 0334;
+00CA 0334 0301;
+0045 0334 030C;
+0045 0327 0334 0306;
+0112 0334 0340;
+0045 0302 0334 0323;
+1D486 0061;
+2130 0061;
+2091 0061;
+1EC4 0061;
+0119 0061;
+1EB8 0061;
+1D65A 0062;
+1EBF 0062;
+0205 0062;
+0246 003F;
+018F 003F;
+025B 0061;
+1D9F 003F;
+025E 0041;
+1D68F 0021;
+1D5A5 0021;
+0046 0334 0307;
+1D5F3 0041;
+1D509 0041;
+1D557 0062;
+FB00 0061;
+02A9 0061;
+2132 0041;
+1D5C0 003F;
+1D53E 003F;
+0121 003F;
+011C 0334;
+24A2 0041;
+0047 0041;
+24BC 0041;
+1E21 0041;
+1D4A2 0062;
+3387 0041;
+1D79 0041;
+0260 0062;
+01A2 003F;
+1D489 003F;
+210B 003F;
+1E26 003F;
+021E 0334;
+1E2A 0334;
+1D629 0061;
+1D5A7 0061;
+021F 0061;
+0126 0061;
+1D46F 0062;
+32CC 003F;
+01F6 0061;
+2C75 0061;
+2148 0021;
+24D8 003F;
+1D610 003F;
+01CF 003F;
+0208 003F;
+0069 0334 0306;
+1E2E 0334;
+0209 0334;
+2170 0061;
+1D5F6 0041;
+1D4D8 0041;
+00CE 0061;
+1EC8 0061;
+1D526 0062;
+00CD 0062;
+2171 0021;
+33CC 0021;
+0131 0021;
+0268 0021;
+0269 0021;
+1D4BF 0021;
+1D409 0021;
+1D36 0021;
+1D55B 0061;
+1D4A5 0061;
+0135 0041;
+1D50D 0062;
+0249 003F;
+0284 003F;
+1D590 003F;
+1D4A6 003F;
+1E32 0021;
+1E33 0334;
+1D694 0061;
+1D5AA 0061;
+01E9 0061;
+1D5C4 0062;
+01E8 0062;
+3398 0021;
+33CF 0021;
+0199 0021;
+24A7 003F;
+1D695 003F;
+1D5AB 003F;
+1E38 003F;
+006C 0334 0323;
+0140 003F;
+1D4F5 0041;
+2112 0041;
+013B 0041;
+1D425 0062;
+24C1 0062;
+01C8 0041;
+32CF 0062;
+019A 0061;
+026C 0062;
+026E 0062;
+1D5FA 0021;
+1D510 0021;
+1E3E 003F;
+036B 0334;
+1D5FA 0061;
+1D510 0061;
+1E3F 0041;
+1D662 0062;
+1E43 0062;
+339F 0021;
+33A8 0041;
+33C1 0061;
+FF4E 0021;
+24DD 0021;
+1D649 003F;
+0145 0021;
+006E 030C 0334;
+006E 032D 0334;
+1D697 0061;
+1D615 0061;
+01F8 0061;
+3381 0061;
+1D5AD 0062;
+338B 0062;
+33B1 0062;
+1D0E 0062;
+0220 0062;
+014A 0041;
+1D490 003F;
+1D442 003F;
+014F 0021;
+00D6 0021;
+0231 0021;
+014C 0021;
+1EDD 0021;
+004F 0341 0334;
+006F 0302 0300 0334;
+006F 0308 0334;
+004F 0334 0303 0301;
+004F 0307 0304 0334;
+014C 0301 0334;
+01A1 0334;
+006F 0334 0309 031B;
+006F 0061;
+1D5FC 0041;
+1D57A 0041;
+00D4 0061;
+0151 0061;
+00D8 0061;
+020D 0061;
+1EE2 0061;
+1D40E 0062;
+1ED7 0062;
+01ED 0062;
+0153 0021;
+1D14 0021;
+1D12 0021;
+0275 0021;
+1D3D 0061;
+1D45D 003F;
+1D67F 0021;
+0070 0341 0334;
+1D699 0061;
+1D617 0061;
+1E57 0061;
+1D40F 0062;
+33D7 003F;
+33B4 003F;
+1D88 003F;
+0071 003F;
+1D69A 003F;
+1D618 003F;
+1D562 0041;
+1D4AC 0041;
+211A 0062;
+024A 0061;
+1D42B 003F;
+1D64D 0021;
+0158 003F;
+0072 0334 0301;
+0210 0334;
+0072 0041;
+1D633 0041;
+1D5B1 0041;
+0211 0041;
+33AF 0062;
+1D4E1 0062;
+20A8 003F;
+1D72 003F;
+027B 003F;
+1D73 003F;
+1D530 0021;
+1D4AE 0021;
+015A 003F;
+1E69 003F;
+0073 0334 030C;
+1E62 0334;
+1D494 0061;
+1D412 0061;
+015B 0061;
+1E62 0061;
+24E2 0062;
+015F 0062;
+FB06 0041;
+023F 0021;
+0285 0021;
+1D599 0021;
+1D517 0021;
+0164 003F;
+0054 030C 0334;
+0074 032D 0334;
+1D5CD 0061;
+1D54B 0061;
+1E97 0061;
+1D42D 0062;
+1D57 0062;
+1D7A 0041;
+1D1B 0041;
+1DB5 003F;
+0236 0041;
+1D496 003F;
+1D414 003F;
+016D 003F;
+01D9 003F;
+1EE7 003F;
+1EEC 003F;
+0075 0334 0300;
+016E 0334;
+00DC 0334 030C;
+0075 0334 0328;
+0214 0334;
+0075 0334 0303 031B;
+0075 0334 0324;
+1D4CA 0061;
+1D448 0061;
+1D64 0041;
+00DC 0041;
+0173 0041;
+1EE8 0041;
+1E75 0041;
+1D580 0062;
+01D6 0062;
+1EF1 0062;
+1D1E 0021;
+1D99 0021;
+1D5A 003F;
+1DB7 003F;
+1D533 0021;
+1D449 0021;
+1D65 003F;
+24B1 0041;
+24E5 0041;
+1D61D 0041;
+1D5CF 0062;
+2175 003F;
+33DE 003F;
+2C74 003F;
+1D534 0021;
+1D4B2 0021;
+1E83 003F;
+0057 0334 0301;
+0057 0334 0307;
+1D4CC 0041;
+1D44A 0041;
+1E98 0061;
+24E6 0062;
+1E87 0062;
+1D4CD 0021;
+2169 003F;
+02E3 003F;
+036F 0061;
+1D6A1 0041;
+1D5B7 0041;
+1D569 0062;
+1E8A 0062;
+24B4 0021;
+0059 0021;
+24CE 0021;
+0233 0021;
+0177 0334;
+0232 0334;
+1D66E 0061;
+1D5EC 0061;
+0177 0041;
+FF59 0062;
+1D688 0062;
+024E 003F;
+1D59F 0021;
+1D4B5 0021;
+1E91 003F;
+005A 0302 0334;
+FF5A 0041;
+24E9 0041;
+1D689 0041;
+FF5A 0062;
+1D689 0062;
+01B6 0041;
+0290 0041;
+0292 0021;
+01EE 0062;
+0293 0062;
+01F7 0062;
+0185 0061;
+02BC 0062;
+02BF 0062;
+02A2 0062;
+0297 0062;
+1D6A8 0021;
+1F06 0021;
+1F8B 0021;
+1FB0 0021;
+03B1 0343 0341 0334 0345;
+03B1 0313 0345 0342 0334;
+03B1 0334 0314 0341 0345;
+1F09 0342 0334;
+03B1 0334 0300;
+1FB9 0334;
+1D6A8 0041;
+1F86 0041;
+1F0F 0041;
+1FB6 0041;
+1F0A 0062;
+1F70 0062;
+1D757 0021;
+1D757 0061;
+1D6FE 0021;
+213D 0061;
+03B3 0062;
+1D739 003F;
+0394 0041;
+1D6C6 0021;
+1D75A 003F;
+0388 0021;
+1F18 0334 0300;
+0395 0334 0341;
+1D774 0041;
+1F19 0061;
+1D774 0062;
+1D7CB 0021;
+1D6C7 0021;
+1D701 0041;
+1D6C8 0021;
+1F94 0021;
+1F2D 0021;
+0389 0021;
+0397 0334 0343 0341;
+0397 0313 0334 0342;
+0397 0314 0334 0301;
+1F21 0334 0342;
+03B7 0334 0341 0345;
+1FC3 003F;
+1F28 0041;
+1F21 0041;
+1F99 0041;
+1D7B0 0062;
+1F2B 0062;
+1D751 0021;
+1D6B9 003F;
+1D751 0041;
+1DBF 0041;
+037A 0021;
+1F3C 0021;
+038A 0021;
+03B9 0334 0313;
+1F38 0334 0342;
+0399 0334 0314 0342;
+03B9 0308 0334;
+037A 0061;
+1F3C 0061;
+038A 0061;
+03B9 0062;
+03AF 0062;
+1D73F 0021;
+03F0 0061;
+1D6EB 0041;
+1D706 0021;
+1D740 0041;
+1D27 0041;
+00B5 0061;
+00B5 0062;
+339B 0041;
+039D 003F;
+1D6B4 0041;
+039E 003F;
+1D6B5 0041;
+039F 003F;
+1F4D 003F;
+039F 0334 0313 0301;
+1F49 0334 0340;
+1D7B8 0041;
+1F45 0041;
+1D79E 0062;
+1D77F 0021;
+03C0 0041;
+1D72B 0061;
+1D28 003F;
+03D8 0061;
+1D6B8 0021;
+03F1 0061;
+1D6F2 0041;
+1D68 0062;
+1D70D 003F;
+1D70D 0061;
+1D768 0041;
+03FE 0061;
+1D7BD 0021;
+03A4 0061;
+1D7BE 0021;
+1F59 0021;
+1FE8 0021;
+03C5 0313 0300 0334;
+03C5 0314 0334 0342;
+1FE0 0334;
+1FE1 0334;
+1F50 0061;
+038E 0041;
+1FE9 0061;
+1FEB 0062;
+1D6D7 003F;
+1D6D7 0061;
+1D76B 0041;
+1D74C 0021;
+1D7C0 0061;
+1D6F8 0062;
+03C8 0061;
+03A8 0062;
+1D76E 0021;
+1F6E 003F;
+1F67 003F;
+1FF7 003F;
+03A9 0334 0343 0340;
+1FA0 0334;
+1F61 0340 0334;
+03C9 0334 0314 0345;
+03C9 0340 0334 0345;
+1D788 0041;
+1F6A 0061;
+1F63 0061;
+1F7C 0061;
+1F6C 0062;
+1F7D 0062;
+03F7 0062;
+2C84 0062;
+2CB6 0062;
+2C8E 0062;
+2C94 0062;
+2C99 0061;
+2CBD 0061;
+2CA1 0061;
+2CA7 0061;
+2CAD 0061;
+2CBF 0061;
+2CC3 0061;
+03E5 0061;
+03E9 0061;
+2CCF 0061;
+2CD5 0061;
+03ED 0061;
+2CDD 0061;
+2CB5 0061;
+2CE3 0061;
+04D1 0334;
+04D3 0334;
+04D9 0062;
+04D8 0308 0062;
+0432 0062;
+0493 0061;
+04F7 0061;
+0452 0061;
+0433 0341 0334;
+0413 0301 0062;
+0415 0334 0300;
+0435 0306 003F;
+0404 0021;
+0436 0001 0308 0061;
+0416 0308 0041;
+0504 0021;
+0417 0334 0308;
+04E0 0021;
+0438 0300 0334;
+0438 0062;
+0438 0308 0061;
+0456 0308 003F;
+0438 0306 003F;
+0408 0021;
+049B 0062;
+049F 0062;
+04C5 003F;
+0508 003F;
+041D 003F;
+04A3 0062;
+045A 0062;
+041E 0308 003F;
+04E8 0061;
+04E8 0308 0041;
+0481 0061;
+0441 0061;
+0442 0061;
+045B 0061;
+043A 1D165 0301 0061;
+0443 0304 0334;
+040E 003F;
+0423 0308 003F;
+0423 030B 003F;
+04AE 0061;
+0424 0061;
+04FE 0061;
+0460 0061;
+047A 0061;
+0427 0061;
+0427 0308 0041;
+04B9 0061;
+045F 0061;
+044A 0061;
+042B 0334 0308;
+048C 0021;
+044D 0308 0021;
+044E 0021;
+0467 0021;
+046D 0021;
+0473 0021;
+0475 030F 0334;
+04A9 0062;
+2C31 0062;
+2C34 0062;
+2C37 0062;
+2C3A 0062;
+2C3D 0062;
+2C40 0062;
+2C43 0062;
+2C46 0062;
+2C49 0062;
+2C4C 0062;
+2C4F 0062;
+2C52 0062;
+2C55 0062;
+2C58 0062;
+2C5B 0062;
+2C5E 0062;
+2D01 0062;
+2D03 0062;
+2D05 0062;
+2D21 0062;
+2D08 0062;
+2D0A 0062;
+10AC 003F;
+10AD 003F;
+10AF 003F;
+10B1 003F;
+10C3 003F;
+10B4 003F;
+10B6 003F;
+10B8 003F;
+10BA 003F;
+10BC 003F;
+10BE 003F;
+10BF 003F;
+10C5 003F;
+10FA 0041;
+0563 0062;
+0536 003F;
+0539 003F;
+053C 003F;
+053F 003F;
+0542 003F;
+FB14 0041;
+0546 003F;
+0549 003F;
+054C 003F;
+FB16 0041;
+0581 0062;
+0584 0062;
+2135 003F;
+05D0 0062;
+FB31 0041;
+FB22 003F;
+FB23 0041;
+05F0 0041;
+FB38 0021;
+05F2 003F;
+FB3A 003F;
+05DC 0061;
+05DD 0062;
+FB41 0041;
+FB4E 0021;
+FB46 0061;
+FB27 0041;
+FB49 003F;
+FB4A 0021;
+10903 0062;
+10909 0062;
+1090F 0062;
+10915 0062;
+0627 0334 0653;
+0627 1D165 0654 0061;
+FB50 0062;
+FE88 0021;
+FE8B 003F;
+FBEB 0021;
+FC99 0021;
+FC02 0041;
+FBEF 0021;
+FBF5 0021;
+FBFB 0062;
+0627 0021;
+0675 003F;
+0628 0041;
+FC06 0061;
+FC6B 003F;
+FCA0 003F;
+067B 003F;
+FB57 0021;
+0680 0041;
+0753 003F;
+FE93 0041;
+FCA1 003F;
+FC0C 0061;
+FD54 003F;
+FC0E 0021;
+FDA4 003F;
+FC0F 0061;
+FE9A 0061;
+FC12 0021;
+FC13 0061;
+FB67 0061;
+FB60 0062;
+FB63 0061;
+FE9F 0062;
+FCA8 003F;
+FD1D 003F;
+0683 0041;
+FB73 0061;
+FB7C 0062;
+FB80 0062;
+FCA9 003F;
+FD5A 003F;
+FEA6 0021;
+FC1A 003F;
+FD04 0061;
+062F 003F;
+0630 0062;
+068B 003F;
+FB82 0041;
+06EE 003F;
+0631 0062;
+0691 003F;
+0695 003F;
+0699 003F;
+FEB2 0021;
+FC1C 0041;
+FD5C 003F;
+FD2A 003F;
+FD60 003F;
+FD17 003F;
+0634 0041;
+FD2D 0062;
+FD68 003F;
+FD2F 0062;
+FD30 0062;
+FCEA 0061;
+069B 003F;
+FEBA 0021;
+FD65 003F;
+FDF5 003F;
+FDC5 003F;
+0636 003F;
+FC22 0061;
+FC24 0061;
+FC25 0061;
+069E 003F;
+FEC3 0062;
+FD72 003F;
+FD12 003F;
+FEC7 0062;
+FECA 0021;
+FDC4 003F;
+FD76 0061;
+FCF8 0061;
+FCBC 003F;
+FD7A 003F;
+06FC 003F;
+0641 0041;
+FC2E 0061;
+FC30 0061;
+06A1 003F;
+FB6B 0061;
+FB6F 0061;
+FED6 0021;
+FDF1 003F;
+FDB2 003F;
+06A8 003F;
+FC80 003F;
+FCC6 003F;
+FCC8 003F;
+FDB7 003F;
+FB8F 0021;
+06AC 003F;
+06AE 003F;
+06B0 003F;
+06B2 003F;
+06B4 003F;
+0644 0041;
+FEF7 0061;
+FC3F 0061;
+FCCA 003F;
+FCCB 003F;
+FCED 0041;
+FC86 003F;
+06B7 003F;
+FEE4 0061;
+FD8C 003F;
+FD89 003F;
+FD8E 003F;
+FDB1 003F;
+FEE6 0021;
+FDB8 003F;
+FCD3 003F;
+FC4D 0061;
+FCD5 0062;
+FC8E 003F;
+FB9E 0041;
+06BC 003F;
+0647 003F;
+FCD7 003F;
+FC53 003F;
+FBAC 0062;
+06C2 0041;
+06C0 0061;
+FEED 0062;
+FBE0 0062;
+FBD7 0062;
+FBE2 0021;
+FBDE 0062;
+FC90 0061;
+FEF4 0041;
+FDAF 0041;
+FC91 0041;
+FD9C 003F;
+FC59 003F;
+FBFE 0041;
+FBE4 0021;
+06D3 0334;
+0712 0021;
+0715 0021;
+071A 0021;
+074E 0021;
+0725 0021;
+072A 0021;
+0781 0021;
+0786 0021;
+0789 0021;
+07A0 0021;
+0790 0021;
+0793 0021;
+07A6 0021;
+07AC 0021;
+07CB 0021;
+07D1 0021;
+07D6 0041;
+07DA 0021;
+07E0 0021;
+07E6 0021;
+2D32 0021;
+2D38 0021;
+2D3E 0021;
+2D44 0021;
+2D4A 0021;
+2D50 0021;
+2D56 0021;
+2D5C 0021;
+2D62 0021;
+1201 0021;
+1207 0021;
+120D 0021;
+1212 0021;
+1218 0021;
+121E 0021;
+2D81 0021;
+1225 0021;
+122B 0021;
+1230 0021;
+1236 0021;
+123B 0021;
+1240 0021;
+1246 0021;
+124D 0021;
+1255 0021;
+125D 0021;
+1265 0021;
+1387 0021;
+126C 0021;
+1272 0021;
+2D86 0021;
+127D 0021;
+1282 0021;
+1288 0021;
+1291 0021;
+1297 0021;
+129C 0021;
+12A1 0021;
+12A7 0021;
+12AC 0021;
+12B3 0021;
+12BB 0021;
+12C3 0021;
+12CB 0021;
+12D1 0021;
+12D8 0021;
+12DE 0021;
+12E3 0021;
+12E9 0021;
+12EF 0021;
+12F5 0021;
+12FA 0021;
+2D8D 0021;
+1305 0021;
+130A 0021;
+1310 0021;
+1319 0021;
+131F 0021;
+1321 0021;
+1327 0021;
+132C 0021;
+1331 0021;
+1337 0021;
+133C 0021;
+1342 0021;
+1348 0021;
+134E 0021;
+1350 0021;
+1356 0021;
+2D92 0021;
+2DA2 0021;
+2DA9 0021;
+2DB0 0021;
+2DB6 0021;
+2DBD 0021;
+2DC4 0021;
+2DCB 0021;
+2DD2 0021;
+2DD9 0021;
+0950 0021;
+0909 0021;
+090D 0021;
+0913 0021;
+0916 0061;
+0919 003F;
+097C 0041;
+0921 0041;
+0924 0061;
+0929 0062;
+092D 003F;
+0930 0041;
+0936 0061;
+093E 0061;
+0944 0061;
+0948 0061;
+0985 0021;
+098B 0021;
+0993 0021;
+0999 0021;
+099F 0021;
+09A2 0061;
+09A6 0062;
+09AD 0062;
+09B2 003F;
+09BD 003F;
+09C3 003F;
+09C8 0021;
+09CD 0041;
+0A13 0041;
+0A07 0041;
+0A15 0021;
+0A5A 0062;
+0A5B 0061;
+0A22 003F;
+0A28 003F;
+0A2D 0041;
+0A35 0021;
+0A42 0021;
+0A4D 0041;
+0A89 0041;
+0A8D 0041;
+0A95 0041;
+0A9B 0041;
+0AA1 0041;
+0AA7 0041;
+0AAE 0041;
+0AB6 0041;
+0ABF 0041;
+0AE2 0041;
+0ACB 0041;
+0B08 003F;
+0B61 003F;
+0B16 003F;
+0B1C 003F;
+0B5C 003F;
+0B25 0021;
+0B2C 0021;
+0B32 0021;
+0B38 0021;
+0B41 0021;
+0B48 0021;
+0B4D 003F;
+0B86 0062;
+0B8F 0062;
+0B95 003F;
+0BA3 003F;
+0BAF 003F;
+0BB5 003F;
+0BBF 003F;
+0BC7 0021;
+0BCB 0041;
+0C06 0021;
+0C60 0021;
+0C12 0021;
+0C18 0021;
+0C1E 0021;
+0C24 0021;
+0C2B 0021;
+0C31 0021;
+0C38 0021;
+0C42 0021;
+0C46 0334 0C56;
+0C4D 0061;
+0C87 0041;
+0C8C 0041;
+0C93 0041;
+0C99 0041;
+0C9F 0041;
+0CA5 0041;
+0CAC 0041;
+0CB2 0041;
+0CB3 0041;
+0CC0 0061;
+0CE3 0021;
+0CC6 0CD5 0062;
+0CCB 0021;
+0CD6 0021;
+0D0A 0021;
+0D0F 0021;
+0D16 0021;
+0D1C 0021;
+0D22 0021;
+0D28 0021;
+0D2F 0021;
+0D35 0021;
+0D3F 0021;
+0D46 0001 0D3E 0061;
+0D4B 0021;
+0D4D 0062;
+0D8A 0062;
+0D90 0062;
+0D96 0062;
+0D9F 0062;
+0DA5 0062;
+0DAB 0062;
+0DB1 0062;
+0DB8 0062;
+0DC1 0062;
+0DCA 0061;
+0DD4 0061;
+0DD9 0DCA 003F;
+0DD9 0DCF 0DCA 0021;
+0DDE 0041;
+A802 0061;
+A808 0021;
+A80F 0021;
+A815 0021;
+A81B 0021;
+A821 0021;
+A827 0021;
+10A06 0021;
+10A15 0021;
+10A1C 0021;
+10A22 0021;
+10A28 0021;
+10A2E 0021;
+10A3F 0021;
+0E43 0E01 0041;
+0E43 0E02 0041;
+0E43 0E03 0041;
+0E43 0E04 0041;
+0E43 0E05 0041;
+0E43 0E06 0041;
+0E43 0E07 0041;
+0E43 0E08 0041;
+0E43 0E09 0041;
+0E43 0E0A 0041;
+0E43 0E0B 0041;
+0E43 0E0C 0041;
+0E43 0E0D 0041;
+0E43 0E0E 0041;
+0E43 0E0F 0041;
+0E43 0E10 0041;
+0E43 0E11 0041;
+0E43 0E12 0041;
+0E43 0E13 0041;
+0E43 0E14 0041;
+0E43 0E15 0041;
+0E43 0E16 0041;
+0E43 0E17 0041;
+0E43 0E18 0041;
+0E43 0E19 0041;
+0E43 0E1A 0041;
+0E43 0E1B 0041;
+0E43 0E1C 0041;
+0E43 0E1D 0041;
+0E43 0E1E 0041;
+0E43 0E1F 0041;
+0E43 0E20 0041;
+0E43 0E21 0041;
+0E43 0E22 0041;
+0E43 0E23 0041;
+0E43 0E24 0041;
+0E43 0E25 0041;
+0E43 0E26 0041;
+0E43 0E27 0041;
+0E43 0E28 0041;
+0E43 0E29 0041;
+0E43 0E2A 0041;
+0E43 0E2B 0041;
+0E43 0E2C 0041;
+0E43 0E2D 0041;
+0E43 0E2E 0041;
+0E33 0021;
+0E38 0021;
+0E40 0591 0E02 0061;
+0E40 0591 0E0C 0061;
+0E40 0591 0E16 0061;
+0E40 0591 0E20 0061;
+0E40 0591 0E2A 0061;
+0E41 1D165 0E04 0061;
+0E41 1D165 0E0E 0061;
+0E41 1D165 0E18 0061;
+0E41 1D165 0E22 0061;
+0E41 1D165 0E2C 0061;
+0E42 0001 0E07 0061;
+0E42 0001 0E11 0061;
+0E42 0001 0E1B 0061;
+0E42 0001 0E25 0061;
+0E43 0021;
+0E43 0591 0E09 0061;
+0E43 0591 0E13 0061;
+0E43 0591 0E1D 0061;
+0E43 0591 0E27 0061;
+0E44 1D165 0E01 0061;
+0E44 1D165 0E0B 0061;
+0E44 1D165 0E15 0061;
+0E44 1D165 0E1F 0061;
+0E44 1D165 0E29 0061;
+0EC0 0E81 0062;
+0EC0 0E82 0062;
+0EC0 0E84 0062;
+0EC0 0E87 0062;
+0EC0 0E88 0062;
+0EC0 0E8A 0062;
+0EC0 0E8D 0062;
+0EC0 0E94 0062;
+0EC0 0E95 0062;
+0EC0 0E96 0062;
+0EC0 0E97 0062;
+0EC0 0E99 0062;
+0EC0 0E9A 0062;
+0EC0 0E9B 0062;
+0EC0 0E9C 0062;
+0EC0 0E9D 0062;
+0EC0 0E9E 0062;
+0EC0 0E9F 0062;
+0EC0 0EA1 0062;
+0EC0 0EA2 0062;
+0EC0 0EA3 0062;
+0EC0 0EA5 0062;
+0EC0 0EA7 0062;
+0EC0 0EAA 0062;
+0EDC 0062;
+0EDD 0062;
+0EC0 0EAB 0062;
+0EC0 0EAD 0062;
+0EC0 0EAE 0062;
+0EB0 0062;
+0EB5 003F;
+0EBB 0061;
+0EC0 0001 0E88 0061;
+0EC0 0001 0E9C 0061;
+0EC0 0001 0EAB 0061;
+0EC1 0591 0E87 0061;
+0EC1 0591 0E9B 0061;
+0EC1 0591 0EAA 0061;
+0EC2 1D165 0E84 0061;
+0EC2 1D165 0E9A 0061;
+0EC2 1D165 0EA7 0061;
+0EC3 0001 0E84 0061;
+0EC3 0001 0E9A 0061;
+0EC3 0001 0EA7 0061;
+0EC4 0591 0E82 0061;
+0EC4 0591 0E99 0061;
+0EC4 0591 0EA5 0061;
+0F69 0061;
+0F43 0061;
+0F95 0061;
+0F99 0061;
+0F4D 0061;
+0F9F 0061;
+0FA2 0061;
+0FA5 0061;
+0FA8 0061;
+0F5C 0061;
+0F5E 0061;
+0F61 0061;
+0FBC 0041;
+0FB3 1D165 0F71 0061;
+0F66 0041;
+0FB8 0041;
+0F71 0001 0F80 0061;
+0F80 0041;
+0334 0F75;
+0FB2 0F71 0F80 003F;
+0F78 0062;
+0F7B 0021;
+A840 0061;
+A846 0061;
+A848 0061;
+A84E 0061;
+A867 0061;
+A86D 0061;
+A86E 0061;
+A862 0061;
+A860 0061;
+1902 0061;
+1908 0061;
+190E 0061;
+1914 0061;
+191A 0061;
+1923 0061;
+1929 0061;
+1933 0061;
+1700 0061;
+1706 0061;
+170C 0061;
+1713 0061;
+1724 0021;
+172A 0021;
+1730 0021;
+1740 0041;
+1746 0041;
+174C 0041;
+1752 0041;
+1764 0041;
+176A 0041;
+1772 0041;
+1A04 0041;
+1A0A 0041;
+1A10 0041;
+1A16 0041;
+1A1B 0062;
+1005 0062;
+100B 0062;
+1011 0062;
+1017 0062;
+101D 0062;
+1021 0062;
+1027 003F;
+1055 003F;
+1031 003F;
+1039 003F;
+1784 0062;
+178A 0062;
+1790 0062;
+1796 0062;
+179C 0062;
+17A2 0062;
+17A7 0062;
+17AD 0062;
+17B3 0062;
+17B9 0062;
+17BF 0062;
+17C5 0062;
+1954 0061;
+195A 0061;
+1960 0061;
+1966 0061;
+196C 0061;
+1974 0061;
+1985 0061;
+198B 0061;
+1991 0061;
+1997 0061;
+19DE 0061;
+19A1 0061;
+19A7 0061;
+19B3 0061;
+19B9 0061;
+19BF 0061;
+19C5 0061;
+1B05 1D165 1B35 0061;
+1B09 003F;
+1B0C 0061;
+1B10 0061;
+1B45 0062;
+1B18 0062;
+1B1E 0062;
+1B23 0062;
+1B28 0062;
+1B2E 0062;
+1B4A 0062;
+1B38 0062;
+1B3C 0591 1B35 0061;
+1B3E 1B35 003F;
+1B42 1B35 0061;
+1883 0041;
+1887 0041;
+185E 0041;
+1824 0041;
+1849 0041;
+1862 0041;
+184C 0041;
+1864 0041;
+1830 0041;
+18A4 0041;
+1851 0041;
+188B 0041;
+1855 0041;
+1839 0041;
+1874 0041;
+183D 0041;
+186D 0041;
+185B 0041;
+189F 0041;
+18A1 0041;
+1895 0041;
+18A9 0334;
+13A5 003F;
+13AB 003F;
+13B1 003F;
+13B7 003F;
+13BD 003F;
+13C3 003F;
+13C9 003F;
+13CF 003F;
+13D5 003F;
+13DB 003F;
+13E1 003F;
+13E7 003F;
+13ED 003F;
+13F3 003F;
+1405 003F;
+140B 003F;
+1411 003F;
+1417 003F;
+141D 003F;
+1423 003F;
+1429 003F;
+142F 003F;
+1435 003F;
+143B 003F;
+1441 003F;
+1447 003F;
+144D 003F;
+1453 003F;
+1459 003F;
+145F 003F;
+1465 003F;
+146B 003F;
+1471 003F;
+1477 003F;
+147D 003F;
+1483 003F;
+1489 003F;
+148F 003F;
+1495 003F;
+149B 003F;
+14A1 003F;
+14A7 003F;
+14AD 003F;
+14B3 003F;
+14B9 003F;
+14BF 003F;
+14C5 003F;
+14CB 003F;
+14D1 003F;
+14D7 003F;
+14DD 003F;
+14E3 003F;
+14E9 003F;
+14EF 003F;
+14F5 003F;
+14FB 003F;
+1501 003F;
+1507 003F;
+150D 003F;
+1513 003F;
+1519 003F;
+151F 003F;
+1525 003F;
+152B 003F;
+1531 003F;
+1537 003F;
+153D 003F;
+1543 003F;
+1549 003F;
+154F 003F;
+1555 003F;
+155B 003F;
+1561 003F;
+1567 003F;
+156D 003F;
+1573 003F;
+1579 003F;
+157F 003F;
+1585 003F;
+158B 003F;
+1590 003F;
+1671 003F;
+1596 003F;
+159C 003F;
+15A2 003F;
+15A7 003F;
+15AD 003F;
+15B3 003F;
+15B9 003F;
+15BF 003F;
+15C5 003F;
+15CB 003F;
+15D1 003F;
+15D7 003F;
+15DD 003F;
+15E3 003F;
+15E9 003F;
+15EF 003F;
+15F5 003F;
+15FB 003F;
+1601 003F;
+1607 003F;
+160D 003F;
+1613 003F;
+1619 003F;
+161F 003F;
+1625 003F;
+162B 003F;
+1631 003F;
+1637 003F;
+163D 003F;
+1643 003F;
+1649 003F;
+164F 003F;
+1655 003F;
+165B 003F;
+1661 003F;
+1667 003F;
+1681 003F;
+1687 003F;
+168D 003F;
+1693 003F;
+1699 003F;
+16A5 0041;
+16A8 0041;
+16B2 003F;
+16B9 003F;
+16BE 003F;
+16C4 0061;
+16D5 0061;
+16CD 0041;
+16D2 0061;
+16EF 003F;
+16DF 003F;
+16B8 003F;
+16E6 0061;
+3200 0062;
+AC00 0591 1161 0061;
+AC04 0061;
+FFA2 0062;
+320F 0061;
+FFA7 0062;
+3139 0021;
+3271 0062;
+3212 0061;
+FFB2 0062;
+3145 0021;
+3274 0062;
+3207 0041;
+321E 0062;
+FFB8 0062;
+3149 0041;
+FFBA 0062;
+320A 0041;
+FFBC 003F;
+314D 0021;
+327A 0062;
+327B 0021;
+D788 1175 0021;
+D7A2 0061;
+3166 0041;
+111A 0041;
+3171 0041;
+3144 0021;
+3175 0041;
+1128 0061;
+3179 0021;
+317C 0021;
+1133 0061;
+1138 0061;
+113E 0061;
+1143 0061;
+1148 0061;
+114D 0061;
+1153 0061;
+3185 0021;
+1160 0041;
+1162 0041;
+1164 0041;
+1166 0041;
+1168 0041;
+116A 0041;
+116C 0041;
+116E 0041;
+1170 0041;
+1172 0041;
+1174 0041;
+1177 0061;
+117D 0061;
+1183 0061;
+1187 0061;
+118C 0061;
+318A 0041;
+1195 0061;
+119B 0061;
+11A0 0061;
+3133 0021;
+11AC 0062;
+313A 0021;
+313C 0021;
+313E 0021;
+11B6 0061;
+11BC 0061;
+11C2 0061;
+3167 0041;
+3169 0021;
+11D0 0061;
+11D5 0061;
+316D 0041;
+11DE 0061;
+11E3 0061;
+11E9 0061;
+11EF 0061;
+11F3 0061;
+11F9 0061;
+30A2 0061;
+3044 0021;
+30A4 0062;
+30A6 0334 3099;
+FF73 0062;
+3048 0061;
+FF6B 0021;
+FF6B 0062;
+30AC 003F;
+330C 0021;
+304E 0334;
+3310 0062;
+3316 0062;
+30AF 0061;
+331A 0041;
+331C 003F;
+30B3 0021;
+3054 0041;
+30B5 0334 3099;
+3320 0021;
+30B7 0041;
+30B9 0021;
+3059 0062;
+FF7E 0041;
+32DE 003F;
+305F 003F;
+3060 0061;
+30C1 0061;
+3064 0334 3099;
+30C3 0062;
+FF83 0041;
+3069 0334;
+3326 003F;
+3328 003F;
+FF87 0021;
+30CD 0041;
+3329 003F;
+3071 0021;
+3070 0041;
+32EA 003F;
+32EA 0041;
+3330 0061;
+3076 0021;
+32EB 0062;
+30D8 003F;
+333C 0021;
+307A 0062;
+31F9 003F;
+3341 0041;
+307C 0062;
+32EE 0021;
+3345 003F;
+307F 0062;
+3080 0041;
+30E1 0041;
+30E2 0041;
+334F 0061;
+FF6D 0021;
+3350 003F;
+32F5 0061;
+FF97 0061;
+31FC 0062;
+308B 0041;
+308C 0041;
+FF9B 0021;
+32FB 003F;
+3357 0041;
+32FD 003F;
+30FA 003F;
+FF9D 0062;
+3108 0062;
+310C 0062;
+31AD 0062;
+3112 0062;
+3117 0061;
+311B 0061;
+31A5 0062;
+3121 0062;
+31B0 0062;
+31B3 0062;
+A001 0062;
+A007 0062;
+A00D 0062;
+A013 0062;
+A019 0062;
+A01F 0062;
+A025 0062;
+A02B 0062;
+A031 0062;
+A037 0062;
+A03D 0062;
+A043 0062;
+A049 0062;
+A04F 0062;
+A055 0062;
+A05B 0062;
+A061 0062;
+A067 0062;
+A06D 0062;
+A073 0062;
+A079 0062;
+A07F 0062;
+A085 0062;
+A08B 0062;
+A091 0062;
+A097 0062;
+A09D 0062;
+A0A3 0062;
+A0A9 0062;
+A0AF 0062;
+A0B5 0062;
+A0BB 0062;
+A0C1 0062;
+A0C7 0062;
+A0CD 0062;
+A0D3 0062;
+A0D9 0062;
+A0DF 0062;
+A0E5 0062;
+A0EB 0062;
+A0F1 0062;
+A0F7 0062;
+A0FD 0062;
+A103 0062;
+A109 0062;
+A10F 0062;
+A115 0062;
+A11B 0062;
+A121 0062;
+A127 0062;
+A12D 0062;
+A133 0062;
+A139 0062;
+A13F 0062;
+A145 0062;
+A14B 0062;
+A151 0062;
+A157 0062;
+A15D 0062;
+A163 0062;
+A169 0062;
+A16F 0062;
+A175 0062;
+A17B 0062;
+A181 0062;
+A187 0062;
+A18D 0062;
+A193 0062;
+A199 0062;
+A19F 0062;
+A1A5 0062;
+A1AB 0062;
+A1B1 0062;
+A1B7 0062;
+A1BD 0062;
+A1C3 0062;
+A1C9 0062;
+A1CF 0062;
+A1D5 0062;
+A1DB 0062;
+A1E1 0062;
+A1E7 0062;
+A1ED 0062;
+A1F3 0062;
+A1F9 0062;
+A1FF 0062;
+A205 0062;
+A20B 0062;
+A211 0062;
+A217 0062;
+A21D 0062;
+A223 0062;
+A229 0062;
+A22F 0062;
+A235 0062;
+A23B 0062;
+A241 0062;
+A247 0062;
+A24D 0062;
+A253 0062;
+A259 0062;
+A25F 0062;
+A265 0062;
+A26B 0062;
+A271 0062;
+A277 0062;
+A27D 0062;
+A283 0062;
+A289 0062;
+A28F 0062;
+A295 0062;
+A29B 0062;
+A2A1 0062;
+A2A7 0062;
+A2AD 0062;
+A2B3 0062;
+A2B9 0062;
+A2BF 0062;
+A2C5 0062;
+A2CB 0062;
+A2D1 0062;
+A2D7 0062;
+A2DD 0062;
+A2E3 0062;
+A2E9 0062;
+A2EF 0062;
+A2F5 0062;
+A2FB 0062;
+A301 0062;
+A307 0062;
+A30D 0062;
+A313 0062;
+A319 0062;
+A31F 0062;
+A325 0062;
+A32B 0062;
+A331 0062;
+A337 0062;
+A33D 0062;
+A343 0062;
+A349 0062;
+A34F 0062;
+A355 0062;
+A35B 0062;
+A361 0062;
+A367 0062;
+A36D 0062;
+A373 0062;
+A379 0062;
+A37F 0062;
+A385 0062;
+A38B 0062;
+A391 0062;
+A397 0062;
+A39D 0062;
+A3A3 0062;
+A3A9 0062;
+A3AF 0062;
+A3B5 0062;
+A3BB 0062;
+A3C1 0062;
+A3C7 0062;
+A3CD 0062;
+A3D3 0062;
+A3D9 0062;
+A3DF 0062;
+A3E5 0062;
+A3EB 0062;
+A3F1 0062;
+A3F7 0062;
+A3FD 0062;
+A403 0062;
+A409 0062;
+A40F 0062;
+A415 0062;
+A41B 0062;
+A421 0062;
+A427 0062;
+A42D 0062;
+A433 0062;
+A439 0062;
+A43F 0062;
+A445 0062;
+A44B 0062;
+A451 0062;
+A457 0062;
+A45D 0062;
+A463 0062;
+A469 0062;
+A46F 0062;
+A475 0062;
+A47B 0062;
+A481 0062;
+A487 0062;
+10300 0062;
+10306 0062;
+1030C 0062;
+10312 0062;
+10318 0062;
+1031E 0062;
+10335 0062;
+1033B 0062;
+10341 0062;
+10347 0062;
+10429 0061;
+1042C 0061;
+1042F 0061;
+10432 0061;
+10435 0061;
+10438 0061;
+1043B 0061;
+1043E 0061;
+10441 0061;
+10444 0061;
+10447 0061;
+1044A 0061;
+1044D 0061;
+10450 0062;
+10456 0062;
+1045C 0062;
+10462 0062;
+10468 0062;
+1046E 0062;
+10474 0062;
+1047A 0062;
+10480 0062;
+10486 0062;
+1048C 0062;
+10492 0062;
+10498 0062;
+10000 0062;
+10006 0062;
+1000D 0062;
+10013 0062;
+10019 0062;
+1001F 0062;
+10025 0062;
+1002C 0062;
+10032 0062;
+10038 0062;
+10040 0062;
+10046 0062;
+1004C 0062;
+10054 0062;
+1005A 0062;
+10082 0062;
+10088 0062;
+1008E 0062;
+10094 0062;
+1009A 0062;
+100A0 0062;
+100A6 0062;
+100AC 0062;
+100B2 0062;
+100B8 0062;
+100BE 0062;
+100C4 0062;
+100CA 0062;
+100D0 0062;
+100D6 0062;
+100DC 0062;
+100E2 0062;
+100E8 0062;
+100EE 0062;
+100F4 0062;
+100FA 0062;
+10805 0062;
+1080E 0062;
+10814 0062;
+1081A 0062;
+10820 0062;
+10826 0062;
+1082C 0062;
+10832 0062;
+1083C 0062;
+10384 0062;
+1038A 0062;
+10390 0062;
+10396 0062;
+1039C 0062;
+103A4 0062;
+103AA 0062;
+103B0 0062;
+103B6 0062;
+103BC 0062;
+103C2 0062;
+103CC 0062;
+12002 0062;
+12008 0062;
+1200E 0062;
+12014 0062;
+1201A 0062;
+12020 0062;
+12026 0062;
+1202C 0062;
+12032 0062;
+12038 0062;
+1203E 0062;
+12044 0062;
+1204A 0062;
+12050 0062;
+12056 0062;
+1205C 0062;
+12062 0062;
+12068 0062;
+1206E 0062;
+12074 0062;
+1207A 0062;
+12080 0062;
+12086 0062;
+1208C 0062;
+12092 0062;
+12098 0062;
+1209E 0062;
+120A4 0062;
+120AA 0062;
+120B0 0062;
+120B6 0062;
+120BC 0062;
+120C2 0062;
+120C8 0062;
+120CE 0062;
+120D4 0062;
+120DA 0062;
+120E0 0062;
+120E6 0062;
+120EC 0062;
+120F2 0062;
+120F8 0062;
+120FE 0062;
+12104 0062;
+1210A 0062;
+12110 0062;
+12116 0062;
+1211C 0062;
+12122 0062;
+12128 0062;
+1212E 0062;
+12134 0062;
+1213A 0062;
+12140 0062;
+12146 0062;
+1214C 0062;
+12152 0062;
+12158 0062;
+1215E 0062;
+12164 0062;
+1216A 0062;
+12170 0062;
+12176 0062;
+1217C 0062;
+12182 0062;
+12188 0062;
+1218E 0062;
+12194 0062;
+1219A 0062;
+121A0 0062;
+121A6 0062;
+121AC 0062;
+121B2 0062;
+121B8 0062;
+121BE 0062;
+121C4 0062;
+121CA 0062;
+121D0 0062;
+121D6 0062;
+121DC 0062;
+121E2 0062;
+121E8 0062;
+121EE 0062;
+121F4 0062;
+121FA 0062;
+12200 0062;
+12206 0062;
+1220C 0062;
+12212 0062;
+12218 0062;
+1221E 0062;
+12224 0062;
+1222A 0062;
+12230 0062;
+12236 0062;
+1223C 0062;
+12242 0062;
+12248 0062;
+1224E 0062;
+12254 0062;
+1225A 0062;
+12260 0062;
+12266 0062;
+1226C 0062;
+12272 0062;
+12278 0062;
+1227E 0062;
+12284 0062;
+1228A 0062;
+12290 0062;
+12296 0062;
+1229C 0062;
+122A2 0062;
+122A8 0062;
+122AE 0062;
+122B4 0062;
+122BA 0062;
+122C0 0062;
+122C6 0062;
+122CC 0062;
+122D2 0062;
+122D8 0062;
+122DE 0062;
+122E4 0062;
+122EA 0062;
+122F0 0062;
+122F6 0062;
+122FC 0062;
+12302 0062;
+12308 0062;
+1230E 0062;
+12314 0062;
+1231A 0062;
+12320 0062;
+12326 0062;
+1232C 0062;
+12332 0062;
+12338 0062;
+1233E 0062;
+12344 0062;
+1234A 0062;
+12350 0062;
+12356 0062;
+1235C 0062;
+12362 0062;
+12368 0062;
+1236E 0062;
+4E01 0061;
+4E04 0062;
+3196 0062;
+2F01 0062;
+2E80 0062;
+2E84 0021;
+3288 0062;
+3193 0061;
+2F08 0061;
+F9A8 0062;
+FA73 0062;
+F965 0062;
+F9BB 0062;
+FA74 0062;
+2F814 0062;
+3285 0021;
+2E86 0062;
+32A2 0062;
+F92E 0062;
+2E87 0062;
+2F81E 0062;
+2F820 0062;
+2F12 0062;
+2F825 0062;
+2F827 0062;
+2F82A 0062;
+32A9 0062;
+3039 0062;
+32AF 0062;
+329E 0062;
+2F833 0062;
+2F836 0062;
+32A8 0062;
+2F83D 0062;
+2F840 0062;
+2F844 0062;
+FA36 0061;
+FA7B 0062;
+2F1E 0062;
+2F84D 0062;
+2F852 0062;
+FA10 0061;
+F94A 0062;
+2F21 0062;
+2F85E 0062;
+F909 0062;
+2F865 0062;
+2F986 0062;
+323B 0061;
+2F86E 0062;
+2F28 0062;
+2E90 003F;
+2F2B 0062;
+2F2C 0021;
+F9D5 0062;
+2F9F4 0062;
+32A7 0062;
+2F886 0062;
+2F33 0062;
+F9A2 0062;
+F982 0062;
+2F38 0062;
+2F874 0062;
+F9D8 0062;
+2E96 0062;
+F9AC 0062;
+F9B9 0062;
+FA87 0061;
+FA3F 0041;
+2F8AF 0062;
+F990 0062;
+2F3E 0062;
+F95B 0062;
+2F8B7 0062;
+FA8D 0062;
+2F8C3 0062;
+2F40 0062;
+2F8C9 0062;
+2F45 0062;
+3290 0021;
+337C 0062;
+2F8CF 0062;
+2F8CC 0062;
+3232 0061;
+2F8D9 0062;
+2F8DC 0062;
+F9C9 0062;
+337F 0062;
+F9E2 0062;
+F914 0041;
+F91D 0062;
+2F8F3 0062;
+F9A5 0062;
+2F4F 0062;
+2F53 0062;
+2F8FA 0062;
+F9E3 0062;
+2F900 0062;
+FA45 0061;
+F9D6 0062;
+F9EC 0062;
+F94E 0062;
+F922 0062;
+2F917 0062;
+2F919 0062;
+2F91C 0062;
+F9EE 0062;
+2EA4 0041;
+2F59 0062;
+F946 0062;
+2EA8 0062;
+F9A7 0062;
+2F929 0061;
+F9CC 0062;
+2F930 0062;
+2F61 0062;
+2F65 0062;
+F976 0062;
+F9E5 0062;
+2F68 0062;
+FAA7 0062;
+FAA8 0061;
+FAAA 0062;
+2F6E 0062;
+FA4B 0062;
+2F70 0061;
+3293 0062;
+3297 0021;
+F93C 0062;
+2F71 0062;
+FA54 0061;
+FAAC 0062;
+F9F8 0062;
+F944 0062;
+FA03 0062;
+2F96A 0062;
+F93D 0062;
+2F96F 0062;
+2F78 0062;
+2EB3 0041;
+2EB7 0021;
+FA1E 0061;
+FAB2 003F;
+F9B0 0062;
+2EBB 0062;
+2F982 0062;
+3242 0061;
+2EBD 0062;
+2F88 0062;
+2EC0 003F;
+2F991 0062;
+2F996 0062;
+2F99A 0062;
+2F9A3 0062;
+FA5F 0061;
+2F9AA 0062;
+F91F 0062;
+2F9B4 0062;
+2F9BA 0062;
+2F9BE 0062;
+FA08 0061;
+F9A0 0062;
+2F9C9 0062;
+2EC3 0062;
+2EC5 0062;
+F96F 0061;
+FABE 0061;
+FA62 0061;
+FAC0 0061;
+2F9D2 0061;
+2F9D4 0062;
+FA64 0062;
+2F9B 0062;
+F937 0062;
+F998 0062;
+2ECB 0062;
+2ECD 0021;
+FA67 0062;
+2ECF 0062;
+2F9E6 0062;
+F9E9 0061;
+328E 0062;
+2F9E9 0062;
+2ED1 0061;
+F986 0062;
+F9C6 0062;
+F9DC 0062;
+F9EA 0062;
+F949 0062;
+FA1C 0061;
+FAC9 0062;
+FACA 0062;
+F9B4 0062;
+2FB5 0062;
+2EDF 0061;
+2FA04 0062;
+2FBA 0062;
+2FBB 0061;
+2FBE 0062;
+F939 0062;
+2FA0F 0062;
+2EE7 0062;
+2EE8 0062;
+F989 0062;
+2EEA 0062;
+2FCF 0062;
+2EEC 0062;
+2EEF 0062;
+2FD4 0041;
+9FA1 0062;
+FA0F 0062;
+FA23 0062;
+3401 0062;
+3407 0062;
+340D 0062;
+3413 0062;
+3419 0062;
+341F 0062;
+3425 0062;
+342B 0062;
+3431 0062;
+3437 0062;
+343D 0062;
+3443 0062;
+3449 0062;
+344F 0062;
+3455 0062;
+345B 0062;
+3461 0062;
+3467 0062;
+346D 0062;
+3473 0062;
+3479 0062;
+347F 0062;
+3485 0062;
+348B 0062;
+3491 0062;
+3497 0062;
+349D 0062;
+34A2 0062;
+34A8 0062;
+34AE 0062;
+34B4 0062;
+2F813 0062;
+34BE 0062;
+34C4 0062;
+34CA 0062;
+34D0 0062;
+34D6 0062;
+34DC 0062;
+34E1 0062;
+34E7 0062;
+34ED 0062;
+34F3 0062;
+34F9 0062;
+34FF 0062;
+3505 0062;
+350B 0062;
+3511 0062;
+3516 0062;
+351C 0062;
+3522 0062;
+3528 0062;
+352E 0062;
+3534 0062;
+353A 0062;
+3540 0062;
+3546 0062;
+354C 0062;
+3552 0062;
+3558 0062;
+355E 0062;
+3564 0062;
+356A 0062;
+3570 0062;
+3576 0062;
+357C 0062;
+3582 0062;
+3588 0062;
+358E 0062;
+3594 0062;
+359A 0062;
+35A0 0062;
+35A6 0062;
+35AC 0062;
+35B2 0062;
+35B8 0062;
+35BE 0062;
+35C4 0062;
+35CA 0062;
+35D0 0062;
+35D6 0062;
+35DC 0062;
+35E2 0062;
+35E8 0062;
+35EE 0062;
+35F4 0062;
+35FA 0062;
+3600 0062;
+3606 0062;
+360C 0062;
+3612 0062;
+3618 0062;
+361E 0062;
+3624 0062;
+362A 0062;
+3630 0062;
+3636 0062;
+363C 0062;
+3642 0062;
+3648 0062;
+364E 0062;
+3654 0062;
+365A 0062;
+3660 0062;
+3666 0062;
+366C 0062;
+3672 0062;
+3678 0062;
+367E 0062;
+3684 0062;
+368A 0062;
+3690 0062;
+3696 0062;
+369C 0062;
+36A2 0062;
+36A8 0062;
+36AE 0062;
+36B4 0062;
+36BA 0062;
+36C0 0062;
+36C6 0062;
+36CC 0062;
+36D2 0062;
+36D8 0062;
+36DE 0062;
+36E4 0062;
+36EA 0062;
+36EF 0062;
+36F5 0062;
+36FB 0062;
+3700 0062;
+3706 0062;
+370C 0062;
+3712 0062;
+3718 0062;
+371E 0062;
+3724 0062;
+372A 0062;
+3730 0062;
+3736 0062;
+373C 0062;
+3742 0062;
+3748 0062;
+374E 0062;
+3754 0062;
+375A 0062;
+3760 0062;
+3766 0062;
+376C 0062;
+3772 0062;
+3778 0062;
+377E 0062;
+3783 0062;
+3789 0062;
+378F 0062;
+3795 0062;
+379B 0062;
+37A1 0062;
+37A7 0062;
+37AD 0062;
+37B3 0062;
+37B9 0062;
+37BF 0062;
+37C5 0062;
+37CB 0062;
+37D1 0062;
+37D7 0062;
+37DD 0062;
+37E3 0062;
+37E9 0062;
+37EF 0062;
+37F5 0062;
+37FB 0062;
+3801 0062;
+3807 0062;
+380D 0062;
+3813 0062;
+3819 0062;
+381F 0062;
+3825 0062;
+382B 0062;
+3830 0062;
+3836 0062;
+383C 0062;
+3842 0062;
+3848 0062;
+384E 0062;
+3854 0062;
+385A 0062;
+3860 0062;
+3865 0062;
+386B 0062;
+3871 0062;
+3877 0062;
+2F88A 0062;
+3882 0062;
+3888 0062;
+388E 0062;
+3894 0062;
+389A 0062;
+38A0 0062;
+38A6 0062;
+38AC 0062;
+38B2 0062;
+38B8 0062;
+38BE 0062;
+38C4 0062;
+38C9 0062;
+38CF 0062;
+38D5 0062;
+38DB 0062;
+38E1 0062;
+38E6 0062;
+38EC 0062;
+38F2 0062;
+38F8 0062;
+38FE 0062;
+3904 0062;
+390A 0062;
+3910 0062;
+3916 0062;
+391C 0061;
+3921 0062;
+3927 0062;
+392D 0062;
+3933 0062;
+3939 0062;
+393E 0062;
+3944 0062;
+394A 0062;
+3950 0062;
+3956 0062;
+395C 0062;
+3962 0062;
+3968 0062;
+396E 0062;
+3974 0062;
+397A 0062;
+3980 0062;
+3986 0062;
+398C 0062;
+3992 0062;
+3998 0062;
+399E 0062;
+39A4 0062;
+39AA 0062;
+39B0 0062;
+39B6 0062;
+39BC 0062;
+39C2 0062;
+39C8 0062;
+39CE 0062;
+39D4 0062;
+39DA 0062;
+39E0 0062;
+39E6 0062;
+39EC 0062;
+39F2 0062;
+39F8 0062;
+39FE 0062;
+3A04 0062;
+3A0A 0062;
+3A10 0062;
+3A16 0062;
+3A1C 0062;
+3A22 0062;
+3A28 0062;
+3A2E 0061;
+3A33 0062;
+3A39 0062;
+3A3F 0062;
+3A45 0062;
+3A4B 0062;
+3A51 0062;
+3A57 0062;
+3A5D 0062;
+3A63 0062;
+3A69 0062;
+3A6E 0062;
+3A74 0062;
+3A7A 0062;
+3A80 0062;
+3A86 0062;
+3A8C 0062;
+3A92 0062;
+3A98 0062;
+3A9E 0062;
+3AA4 0062;
+3AAA 0062;
+3AB0 0062;
+3AB6 0062;
+3ABC 0062;
+3AC2 0062;
+3AC8 0062;
+3ACE 0062;
+3AD4 0062;
+3ADA 0062;
+3AE0 0062;
+3AE5 0062;
+3AEB 0062;
+3AF1 0062;
+3AF7 0062;
+3AFD 0062;
+3B03 0062;
+2F8D0 0062;
+3B0E 0062;
+3B14 0062;
+2F8CE 0062;
+3B1F 0062;
+3B25 0062;
+3B2B 0062;
+3B31 0062;
+3B37 0062;
+3B3D 0062;
+3B43 0062;
+3B49 0061;
+3B4E 0062;
+3B54 0062;
+3B5A 0062;
+3B60 0062;
+3B66 0062;
+3B6C 0062;
+3B72 0062;
+3B78 0062;
+3B7E 0062;
+3B84 0062;
+3B8A 0062;
+3B90 0062;
+3B96 0062;
+3B9C 0062;
+3BA0 0062;
+3BA6 0062;
+3BAC 0062;
+3BB2 0062;
+3BB8 0062;
+3BBE 0062;
+3BC4 0062;
+3BCA 0062;
+3BD0 0062;
+3BD6 0062;
+3BDC 0062;
+3BE2 0062;
+3BE8 0062;
+3BEE 0062;
+3BF4 0062;
+3BFA 0062;
+3C00 0062;
+3C06 0062;
+3C0C 0062;
+3C12 0062;
+3C18 0061;
+3C1D 0062;
+3C23 0062;
+3C29 0062;
+3C2F 0062;
+3C35 0062;
+3C3B 0062;
+3C41 0062;
+3C47 0062;
+3C4D 0062;
+3C52 0062;
+3C58 0062;
+3C5E 0062;
+3C64 0062;
+3C6A 0062;
+3C70 0062;
+3C76 0062;
+3C7C 0062;
+3C82 0062;
+3C88 0062;
+3C8E 0062;
+3C94 0062;
+3C9A 0062;
+3CA0 0062;
+3CA6 0062;
+3CAC 0062;
+3CB2 0062;
+3CB8 0062;
+3CBE 0062;
+3CC4 0062;
+3CCA 0062;
+3CD0 0062;
+3CD6 0062;
+3CDC 0062;
+3CE2 0062;
+3CE8 0062;
+3CEE 0062;
+3CF4 0062;
+3CFA 0062;
+3D00 0062;
+3D06 0062;
+3D0C 0062;
+3D12 0062;
+3D18 0062;
+3D1E 0062;
+3D24 0062;
+3D2A 0062;
+3D30 0062;
+3D35 0062;
+3D3B 0062;
+3D41 0062;
+3D47 0062;
+3D4D 0062;
+3D53 0062;
+3D59 0062;
+3D5F 0062;
+3D65 0062;
+3D6B 0062;
+3D71 0062;
+3D77 0062;
+3D7D 0062;
+3D83 0062;
+3D89 0062;
+3D8F 0062;
+3D95 0062;
+3D9A 0062;
+3DA0 0062;
+3DA6 0062;
+3DAC 0062;
+3DB2 0062;
+3DB8 0062;
+3DBE 0062;
+3DC4 0062;
+3DCA 0062;
+3DD0 0062;
+3DD6 0062;
+3DDC 0062;
+3DE2 0062;
+3DE8 0062;
+3DEE 0062;
+3DF4 0062;
+3DFA 0062;
+3E00 0062;
+3E06 0062;
+3E0C 0062;
+3E12 0062;
+3E18 0062;
+3E1E 0062;
+3E24 0062;
+3E2A 0062;
+3E30 0062;
+3E36 0062;
+3E3C 0062;
+3E42 0062;
+3E48 0062;
+3E4E 0062;
+3E54 0062;
+3E5A 0062;
+3E60 0062;
+3E66 0062;
+3E6C 0062;
+3E72 0062;
+3E78 0062;
+3E7E 0062;
+3E84 0062;
+3E8A 0062;
+3E90 0062;
+3E96 0062;
+3E9C 0062;
+3EA2 0062;
+3EA8 0062;
+3EAD 0062;
+3EB3 0062;
+3EB8 0041;
+3EBD 0062;
+3EC3 0062;
+3EC9 0062;
+3ECF 0062;
+3ED5 0062;
+3EDB 0062;
+3EE1 0062;
+3EE7 0062;
+3EED 0062;
+3EF3 0062;
+3EF9 0062;
+3EFF 0062;
+3F05 0062;
+3F0B 0062;
+3F11 0062;
+3F17 0062;
+3F1C 0062;
+3F22 0062;
+3F28 0062;
+3F2E 0062;
+3F34 0062;
+3F3A 0062;
+3F40 0062;
+3F46 0062;
+3F4C 0062;
+3F52 0062;
+3F58 0062;
+3F5E 0062;
+3F64 0062;
+3F6A 0062;
+3F70 0062;
+3F76 0062;
+3F7C 0062;
+3F82 0062;
+3F88 0062;
+3F8E 0062;
+3F94 0062;
+3F9A 0062;
+3FA0 0062;
+3FA6 0062;
+3FAC 0062;
+3FB2 0062;
+3FB8 0062;
+3FBE 0062;
+3FC4 0062;
+3FCA 0062;
+3FD0 0062;
+3FD6 0062;
+3FDC 0062;
+3FE2 0062;
+3FE8 0062;
+3FEE 0062;
+3FF4 0062;
+3FFA 0062;
+3FFF 0062;
+4005 0062;
+400A 0062;
+4010 0062;
+4016 0062;
+401B 0062;
+4021 0062;
+4027 0062;
+402D 0062;
+4033 0062;
+FAD4 003F;
+403D 0062;
+4043 0062;
+4048 0062;
+404E 0062;
+4054 0062;
+405A 0062;
+4060 0062;
+4066 0062;
+406C 0062;
+4072 0062;
+4078 0062;
+407E 0062;
+4084 0062;
+408A 0062;
+4090 0062;
+4096 0061;
+409B 0062;
+40A1 0062;
+40A7 0062;
+40AD 0062;
+40B3 0062;
+40B9 0062;
+40BF 0062;
+40C5 0062;
+40CB 0062;
+40D1 0062;
+40D7 0062;
+40DD 0062;
+40E3 0061;
+40E8 0062;
+40EE 0062;
+40F4 0062;
+40FA 0062;
+4100 0062;
+4106 0062;
+410C 0062;
+4112 0062;
+4118 0062;
+411E 0062;
+4124 0062;
+412A 0062;
+2F958 0062;
+4135 0062;
+413B 0062;
+4141 0062;
+4147 0062;
+414D 0062;
+4153 0062;
+4159 0062;
+415F 0062;
+4165 0062;
+416B 0062;
+4171 0062;
+4177 0062;
+417D 0062;
+4183 0062;
+4189 0062;
+418F 0062;
+4195 0062;
+419B 0062;
+41A1 0062;
+41A7 0062;
+41AD 0062;
+41B3 0062;
+41B9 0062;
+41BF 0062;
+41C5 0062;
+41CB 0062;
+41D1 0062;
+41D7 0062;
+41DD 0062;
+41E3 0062;
+41E9 0062;
+41EF 0062;
+41F5 0062;
+41FB 0062;
+4201 0062;
+4206 0062;
+420C 0062;
+4212 0062;
+4218 0062;
+421E 0062;
+4224 0062;
+4229 0062;
+422F 0062;
+4235 0062;
+423B 0062;
+4241 0062;
+4247 0062;
+424D 0062;
+4253 0062;
+4259 0062;
+425F 0062;
+4265 0062;
+426B 0062;
+4271 0062;
+4277 0062;
+427D 0062;
+4283 0062;
+4289 0062;
+428F 0062;
+4295 0062;
+429B 0062;
+2F967 0062;
+42A6 0062;
+42AC 0062;
+42B2 0062;
+42B8 0062;
+42BE 0062;
+42C4 0062;
+42CA 0062;
+42D0 0062;
+42D6 0062;
+42DC 0062;
+42E2 0062;
+42E8 0062;
+42EE 0062;
+42F4 0062;
+42FA 0062;
+4300 0062;
+4305 0062;
+430B 0062;
+4311 0062;
+4317 0062;
+431D 0062;
+4323 0062;
+4329 0062;
+432F 0062;
+2F971 0062;
+433A 0062;
+4340 0062;
+4346 0062;
+434C 0062;
+4352 0062;
+4358 0062;
+435D 0062;
+4363 0062;
+4369 0062;
+436F 0062;
+4375 0062;
+437B 0062;
+4381 0062;
+4387 0062;
+438D 0062;
+4393 0062;
+4399 0062;
+439F 0062;
+43A5 0062;
+43AB 0062;
+43B1 0062;
+43B7 0062;
+43BD 0062;
+43C3 0062;
+43C9 0062;
+43CF 0062;
+43D5 0061;
+2F8D7 0062;
+43DF 0062;
+43E5 0062;
+43EB 0062;
+43F1 0062;
+43F7 0062;
+43FD 0062;
+4403 0062;
+4409 0062;
+440E 0062;
+4414 0062;
+441A 0062;
+4420 0062;
+4426 0062;
+442C 0062;
+4432 0062;
+4438 0062;
+443E 0062;
+4444 0062;
+444A 0062;
+4450 0062;
+4456 0062;
+445C 0062;
+4462 0062;
+4468 0062;
+446D 0062;
+4473 0062;
+4479 0062;
+447F 0062;
+4485 0062;
+448B 0062;
+4491 0062;
+4497 0062;
+449D 0062;
+44A3 0062;
+44A9 0062;
+44AF 0062;
+44B5 0062;
+44BB 0062;
+44C1 0062;
+44C7 0062;
+44CD 0062;
+44D3 0062;
+44D9 0062;
+44DF 0062;
+44E5 0062;
+44EB 0062;
+44F1 0062;
+44F7 0062;
+44FD 0062;
+4503 0062;
+4509 0062;
+450F 0062;
+4515 0062;
+451B 0062;
+4521 0062;
+4527 0062;
+452C 0062;
+4532 0062;
+4538 0062;
+453E 0062;
+4544 0062;
+454A 0062;
+4550 0062;
+4556 0062;
+455C 0062;
+4561 0061;
+4566 0062;
+2F9B2 0062;
+4571 0062;
+4577 0062;
+457D 0062;
+4583 0062;
+4589 0062;
+458F 0062;
+4595 0062;
+459B 0062;
+45A1 0062;
+45A7 0062;
+45AD 0062;
+45B3 0062;
+45B9 0062;
+45BF 0062;
+45C5 0062;
+45CB 0062;
+45D1 0062;
+45D7 0061;
+45DC 0062;
+45E2 0062;
+45E8 0062;
+45EE 0062;
+45F4 0062;
+2F9C2 0062;
+45FF 0062;
+4605 0062;
+460B 0062;
+4611 0062;
+4617 0062;
+461D 0062;
+4623 0062;
+4629 0062;
+462F 0062;
+4635 0061;
+463A 0062;
+4640 0062;
+4646 0062;
+464C 0062;
+4652 0062;
+4658 0062;
+465E 0062;
+4664 0062;
+466A 0062;
+4670 0062;
+4676 0062;
+467C 0062;
+4682 0062;
+4688 0062;
+468E 0062;
+4694 0062;
+469A 0062;
+46A0 0062;
+46A6 0062;
+46AC 0062;
+46B2 0062;
+46B8 0062;
+46BE 0061;
+46C3 0062;
+46C8 0062;
+46CE 0062;
+46D4 0062;
+46DA 0062;
+46E0 0062;
+46E6 0062;
+46EC 0062;
+46F2 0062;
+46F8 0062;
+46FE 0062;
+4704 0062;
+470A 0062;
+4710 0062;
+4716 0062;
+471C 0062;
+4722 0062;
+4728 0062;
+472E 0062;
+4734 0062;
+473A 0062;
+4740 0062;
+4746 0062;
+474C 0062;
+4752 0062;
+4758 0062;
+475E 0062;
+4764 0062;
+476A 0062;
+4770 0062;
+4776 0062;
+477C 0062;
+4782 0062;
+4788 0062;
+478E 0062;
+4794 0062;
+479A 0062;
+47A0 0062;
+47A6 0062;
+47AC 0062;
+47B2 0062;
+47B8 0062;
+47BE 0062;
+47C4 0062;
+47CA 0062;
+47D0 0062;
+47D6 0062;
+47DC 0062;
+47E2 0062;
+47E8 0062;
+47EE 0062;
+47F4 0062;
+47FA 0062;
+4800 0062;
+4806 0062;
+480C 0062;
+4812 0062;
+4818 0062;
+481E 0062;
+4824 0062;
+482A 0062;
+4830 0062;
+4836 0062;
+483C 0062;
+4842 0062;
+4848 0062;
+484E 0062;
+4854 0062;
+485A 0062;
+4860 0062;
+4866 0062;
+486C 0062;
+4872 0062;
+4878 0062;
+487E 0062;
+4884 0062;
+488A 0062;
+4890 0062;
+4896 0062;
+489C 0062;
+48A2 0062;
+48A8 0062;
+48AE 0062;
+48B4 0062;
+48BA 0062;
+48C0 0062;
+48C6 0062;
+48CC 0062;
+48D2 0062;
+48D8 0062;
+48DE 0062;
+48E4 0062;
+48EA 0062;
+48F0 0062;
+48F6 0062;
+48FC 0062;
+4902 0062;
+4908 0062;
+490E 0062;
+4914 0062;
+491A 0062;
+4920 0062;
+4926 0062;
+492C 0062;
+4932 0062;
+4938 0062;
+493E 0062;
+4944 0062;
+494A 0062;
+4950 0062;
+4956 0062;
+495C 0062;
+4962 0062;
+4968 0062;
+496E 0062;
+4974 0062;
+497A 0062;
+4980 0062;
+4986 0062;
+498C 0062;
+4992 0062;
+4997 0062;
+499D 0062;
+49A3 0062;
+49A9 0062;
+49AF 0062;
+49B5 0062;
+49BB 0062;
+49C1 0062;
+49C7 0062;
+49CD 0062;
+49D3 0062;
+49D9 0062;
+49DF 0062;
+49E5 0062;
+49EA 0062;
+49F0 0062;
+49F6 0062;
+49FC 0062;
+4A02 0062;
+4A08 0062;
+4A0E 0062;
+4A14 0062;
+4A1A 0062;
+4A20 0062;
+4A26 0062;
+4A2C 0062;
+4A32 0062;
+4A38 0062;
+4A3E 0062;
+4A44 0062;
+4A4A 0062;
+4A50 0062;
+4A56 0062;
+4A5C 0062;
+4A62 0062;
+4A68 0062;
+4A6E 0061;
+4A73 0062;
+4A78 0062;
+4A7E 0062;
+4A84 0062;
+4A8A 0062;
+4A90 0062;
+4A96 0062;
+4A9C 0062;
+4AA2 0062;
+4AA8 0062;
+4AAE 0062;
+4AB3 0062;
+4AB9 0062;
+4ABF 0062;
+4AC5 0062;
+4ACB 0062;
+4AD1 0062;
+4AD7 0062;
+4ADD 0062;
+4AE3 0062;
+4AE9 0062;
+4AEF 0062;
+4AF5 0062;
+4AFB 0062;
+4B01 0062;
+4B07 0062;
+4B0D 0062;
+4B13 0062;
+4B19 0062;
+4B1F 0062;
+4B25 0062;
+4B2B 0062;
+4B31 0062;
+4B36 0062;
+4B3C 0062;
+4B42 0062;
+4B48 0062;
+4B4E 0062;
+4B54 0062;
+4B5A 0062;
+4B60 0062;
+4B66 0062;
+4B6C 0062;
+4B72 0062;
+4B78 0062;
+4B7E 0062;
+4B84 0062;
+4B8A 0062;
+4B90 0062;
+4B96 0062;
+4B9C 0062;
+4BA2 0062;
+4BA8 0062;
+4BAE 0062;
+4BB4 0062;
+4BBA 0062;
+4BC0 0062;
+4BC6 0062;
+4BCC 0062;
+4BD1 0062;
+4BD7 0062;
+4BDD 0062;
+4BE3 0062;
+4BE9 0062;
+4BEF 0062;
+4BF5 0062;
+4BFB 0062;
+4C01 0062;
+4C07 0062;
+4C0D 0062;
+4C13 0062;
+4C19 0062;
+4C1F 0062;
+4C25 0062;
+4C2B 0062;
+4C31 0062;
+4C37 0062;
+4C3D 0062;
+4C43 0062;
+4C49 0062;
+4C4F 0062;
+4C55 0062;
+4C5B 0062;
+4C61 0062;
+4C67 0062;
+4C6D 0062;
+4C73 0062;
+4C79 0062;
+4C7F 0062;
+4C85 0062;
+4C8B 0062;
+4C91 0062;
+4C97 0062;
+4C9D 0062;
+4CA3 0062;
+4CA9 0062;
+4CAF 0062;
+4CB5 0062;
+4CBB 0062;
+4CC1 0062;
+4CC7 0062;
+4CCD 0062;
+4CD2 0062;
+4CD8 0062;
+4CDE 0062;
+4CE4 0062;
+4CEA 0062;
+4CEF 0062;
+4CF5 0062;
+4CFA 0062;
+4D00 0062;
+4D06 0062;
+4D0C 0062;
+4D12 0062;
+4D18 0062;
+4D1E 0062;
+4D24 0062;
+4D2A 0062;
+4D30 0062;
+4D36 0062;
+4D3C 0062;
+4D42 0062;
+4D48 0062;
+4D4E 0062;
+4D54 0062;
+4D59 0062;
+4D5F 0062;
+4D65 0062;
+4D6B 0062;
+4D71 0062;
+4D77 0062;
+4D7D 0062;
+4D83 0062;
+4D89 0062;
+4D8F 0062;
+4D95 0062;
+4D9B 0062;
+4DA1 0062;
+4DA7 0062;
+4DAD 0062;
+4DB3 0062;
+20003 0062;
+2F816 0062;
+2F859 0062;
+2F87B 0062;
+2F8A4 0062;
+2F897 0062;
+2F8E3 0062;
+2F906 0062;
+2F923 0062;
+2F93C 0062;
+FAD5 0062;
+2F95D 0061;
+2F898 0062;
+2F97C 0062;
+2F9A6 0062;
+2F9C5 0062;
+2F9E0 0062;
+2F81C 0062;
+2FA10 0062;
+2A6D1 0062;
+0370 0062;
+E005 0062;
+F8FF 0062;
+E0003 0062;
+F0003 0062;
+F00FB 0062;
+FFF03 0062;
+FFFFB 0062;
+100003 0062;
+1000FB 0062;
+10FF03 0062;
+10FFFB 0062;
diff --git a/Build/source/libs/icu-xetex/test/testdata/DataDrivenCollationTest.txt b/Build/source/libs/icu-xetex/test/testdata/DataDrivenCollationTest.txt
index ad4f7095977..511f7f21c36 100644
--- a/Build/source/libs/icu-xetex/test/testdata/DataDrivenCollationTest.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/DataDrivenCollationTest.txt
@@ -1,6 +1,6 @@
// Copyright (c) 2001-2005 International Business Machines
// Corporation and others. All Rights Reserved.
-DataDrivenCollationTest {
+DataDrivenCollationTest:table(nofallback) {
Info {
Headers { "sequence" }
Description { "These are the data driven tests" }
diff --git a/Build/source/libs/icu-xetex/test/testdata/Makefile.in b/Build/source/libs/icu-xetex/test/testdata/Makefile.in
index 102e3dc2912..bddd464043c 100644
--- a/Build/source/libs/icu-xetex/test/testdata/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/testdata/Makefile.in
@@ -1,6 +1,6 @@
#******************************************************************************
#
-# Copyright (C) 1998-2005, International Business Machines
+# Copyright (C) 1998-2006, International Business Machines
# Corporation and others. All Rights Reserved.
#
#******************************************************************************
@@ -24,8 +24,8 @@ CLEANFILES = *~
SUBDIRS =
## List of phony targets
-.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \
-install-recursive clean clean-local clean-recursive distclean \
+.PHONY : all all-local all-recursive install install-local \
+install-recursive clean clean-local clean-recursive distclean \
distclean-local distclean-recursive doc dist dist-local dist-recursive \
check check-local check-recursive build-dir
@@ -35,12 +35,12 @@ check check-local check-recursive build-dir
.SUFFIXES :
## List of standard targets
-all: all-local all-recursive
-install: install-recursive install-local
-clean: clean-recursive clean-local
-distclean : distclean-recursive distclean-local
-dist: dist-recursive dist-local
-check: all check-recursive check-local
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
all-local: build-dir build-testdata testdata packagetest
@@ -83,13 +83,17 @@ OUTTMPDIR=$(top_builddir)/data/out/tmp
BUILDDIR=$(OUTDIR)/build/$(ICUDATA_PLATFORM_NAME)
TESTSRCDATADIR=$(top_srcdir)/test/testdata
TESTOUTDIR=$(top_builddir)/test/testdata/out
-BUILD_DIRS = $(TESTOUTDIR) $(TESTBUILDDIR)
+BUILD_DIRS = $(TESTOUTDIR) $(TESTBUILDDIR) $(TESTOUTDIR)/$(TESTDT)
ifeq ($(PKGDATA_MODE),common)
ICU_DATA_OPT = -i $(OUTDIR)
else
ifeq ($(PKGDATA_MODE),dll)
+ifneq ($(ENABLE_SHARED),YES)
+ICU_DATA_OPT = -i $(BUILDDIR)
+else
ICU_DATA_OPT =
+endif
else
ICU_DATA_OPT = -i $(BUILDDIR)
endif
@@ -102,89 +106,93 @@ PKGDATA_INVOKE:=$(INVOKE) $(PKGDATA_INVOKE_OPTS)
TESTBUILDDIR=$(TESTOUTDIR)/build
# unpackaged files - live in 'out' so that the path can find them as part of the pkg
-UNPACKAGEDTESTDATA=$(TESTOUTDIR)/$(TESTDT)nam.typ
+UNPACKAGEDTESTDATA=$(TESTOUTDIR)/$(TESTDT)/nam.typ
# pkg name for testdata
TESTDATA=testdata
# prefix for files that are testdata
-TESTDT=$(TESTDATA)_
+TESTDT=$(TESTDATA)
# File definitions
-TEST_DAT_FILES=$(TESTBUILDDIR)/$(TESTDT)test.icu $(TESTBUILDDIR)/$(TESTDT)nfscsi.spp $(TESTBUILDDIR)/$(TESTDT)nfscss.spp $(TESTBUILDDIR)/$(TESTDT)nfscis.spp $(TESTBUILDDIR)/$(TESTDT)nfsmxs.spp $(TESTBUILDDIR)/$(TESTDT)nfsmxp.spp
+TEST_DAT_FILES=$(TESTBUILDDIR)/test.icu
+TEST_SPP_FILES=$(TESTBUILDDIR)/nfscsi.spp $(TESTBUILDDIR)/nfscss.spp $(TESTBUILDDIR)/nfscis.spp $(TESTBUILDDIR)/nfsmxs.spp $(TESTBUILDDIR)/nfsmxp.spp
TEST_UCM_SOURCE= test1.ucm test3.ucm test4.ucm test4x.ucm ibm9027.ucm
TEST_UCM_FILES=$(TEST_UCM_SOURCE:%=$(TESTSRCDATADIR)/data/%)
-TEST_CNV_FILES=$(TEST_UCM_SOURCE:%.ucm=$(TESTBUILDDIR)/$(TESTDT)%.cnv)
+TEST_CNV_FILES=$(TEST_UCM_SOURCE:%.ucm=$(TESTBUILDDIR)/%.cnv)
TEST_RES = casing.txt mc.txt root.txt sh.txt sh_YU.txt te.txt te_IN.txt te_IN_REVISED.txt testtypes.txt testaliases.txt testempty.txt structLocale.txt DataDrivenCollationTest.txt idna_rules.txt conversion.txt icuio.txt testtable32.txt
-TEST_RES_FILES=$(TEST_RES:%.txt=$(TESTBUILDDIR)/$(TESTDT)%.res) $(TESTBUILDDIR)/$(TESTDT)iscii.res $(TESTSRCDATADIR)/$(TESTDT)icu26_testtypes.res $(TESTSRCDATADIR)/$(TESTDT)icu26e_testtypes.res
+TEST_RES_FILES=$(TEST_RES:%.txt=$(TESTBUILDDIR)/%.res) $(TESTBUILDDIR)/iscii.res $(TESTBUILDDIR)/icu26_testtypes.res $(TESTBUILDDIR)/icu26e_testtypes.res
-ALL_TEST_FILES = $(TEST_DAT_FILES) $(TEST_BRK_FILES) $(TEST_CNV_FILES) $(TEST_RES_FILES) $(TESTOUTDIR)/$(TESTDT)nam.typ
+ALL_TEST_FILES = $(TEST_DAT_FILES) $(TEST_SPP_FILES) $(TEST_BRK_FILES) $(TEST_CNV_FILES) $(TEST_RES_FILES) $(TESTOUTDIR)/$(TESTDT)/nam.typ
# list
$(TESTBUILDDIR)/testdata.lst: $(SRCLISTDEPS)
@echo "generating $@ (list of data files)"
@-$(RMV) $@
- @for file in $(TEST_RES_FILES) $(TEST_DAT_FILES) $(TEST_CNV_FILES); do \
+ @for file in $(TEST_RES_FILES:$(TESTBUILDDIR)/%.res=%.res) $(TEST_DAT_FILES:$(TESTBUILDDIR)/%.icu=%.icu) $(TEST_SPP_FILES:$(TESTBUILDDIR)/%.spp=%.spp) $(TEST_CNV_FILES:$(TESTBUILDDIR)/%.cnv=%.cnv); do \
echo $$file >> $@; \
done;
-build-testdata: build-dir $(ALL_TEST_FILES) $(TESTBUILDDIR)/testdata.lst $(TESTBUILDDIR)/$(TESTDT)iscii.res
+build-testdata: build-dir $(ALL_TEST_FILES) $(TESTBUILDDIR)/testdata.lst $(TESTBUILDDIR)/iscii.res
# test.icu
-$(TESTBUILDDIR)/$(TESTDT)test.icu: $(TOOLDIR)/gentest/gentest$(EXEEXT)
+$(TESTBUILDDIR)/test.icu: $(TOOLDIR)/gentest/gentest$(EXEEXT)
$(INVOKE) $(TOOLDIR)/gentest/gentest -d $(TESTBUILDDIR)
$(TESTBUILDDIR)/testtable32.txt: $(TOOLDIR)/gentest/gentest$(EXEEXT)
$(INVOKE) $(TOOLDIR)/gentest/gentest -r -d $(TESTBUILDDIR)
-$(TESTBUILDDIR)/$(TESTDT)testtable32.res: $(TESTBUILDDIR)/testtable32.txt $(BINDIR)/genrb$(EXEEXT)
- $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -p $(TESTDATA) -q -s $(TESTBUILDDIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F)
+$(TESTBUILDDIR)/testtable32.res: $(TESTBUILDDIR)/testtable32.txt $(BINDIR)/genrb$(EXEEXT)
+ $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -s $(TESTBUILDDIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F)
# Targets for nfscsi.spp
-$(TESTBUILDDIR)/$(TESTDT)nfscsi.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_ci.txt
+$(TESTBUILDDIR)/nfscsi.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_ci.txt
@echo Building nfscsi.icu
- $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscsi -p $(TESTDATA) -u 3.2.0 nfs4_cs_prep_ci.txt
+ $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscsi -u 3.2.0 nfs4_cs_prep_ci.txt
# Targets for nfscss.spp
-$(TESTBUILDDIR)/$(TESTDT)nfscss.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_cs.txt
+$(TESTBUILDDIR)/nfscss.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cs_prep_cs.txt
@echo Building nfscss.icu
- $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscss -p $(TESTDATA) -u 3.2.0 nfs4_cs_prep_cs.txt
+ $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscss -u 3.2.0 nfs4_cs_prep_cs.txt
# Targets for nfscis.spp
-$(TESTBUILDDIR)/$(TESTDT)nfscis.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cis_prep.txt
+$(TESTBUILDDIR)/nfscis.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_cis_prep.txt
@echo Building nfscis.spp
- $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscis -p $(TESTDATA) -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_cis_prep.txt
+ $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfscis -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_cis_prep.txt
# Targets for nfsmxs.spp
-$(TESTBUILDDIR)/$(TESTDT)nfsmxs.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_s.txt
+$(TESTBUILDDIR)/nfsmxs.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_s.txt
@echo Building nfsmxs.spp
- $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxs -p $(TESTDATA) -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_s.txt
+ $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxs -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_s.txt
# Targets for nfsmxp.spp
-$(TESTBUILDDIR)/$(TESTDT)nfsmxp.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_p.txt
+$(TESTBUILDDIR)/nfsmxp.spp: $(BINDIR)/gensprep$(EXEEXT) $(TESTSRCDATADIR)/nfs4_mixed_prep_p.txt
@echo Building nfsmxp.spp
- $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxp -p $(TESTDATA) -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_p.txt
+ $(INVOKE) $(BINDIR)/gensprep -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) -b nfsmxp -k -n $(UNICODEDATADIR) -u 3.2.0 nfs4_mixed_prep_p.txt
-$(TESTBUILDDIR)/$(TESTDT)%.cnv: $(TESTSRCDATADIR)/%.ucm $(BINDIR)/makeconv$(EXEEXT)
- $(INVOKE) $(BINDIR)/makeconv -p $(TESTDATA) -c -d $(TESTBUILDDIR) $(TESTSRCDATADIR)/$(<F)
+$(TESTBUILDDIR)/%.cnv: $(TESTSRCDATADIR)/%.ucm $(BINDIR)/makeconv$(EXEEXT)
+ $(INVOKE) $(BINDIR)/makeconv -c -d $(TESTBUILDDIR) $(TESTSRCDATADIR)/$(<F)
-$(TESTBUILDDIR)/$(TESTDT)%.res: $(TESTSRCDATADIR)/%.txt $(BINDIR)/genrb$(EXEEXT) $(DAT_FILES)
- $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -p $(TESTDATA) -q -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F)
+$(TESTBUILDDIR)/%.res: $(TESTSRCDATADIR)/%.txt $(BINDIR)/genrb$(EXEEXT) $(DAT_FILES)
+ $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -q -s $(TESTSRCDATADIR) $(ICU_DATA_OPT) -d $(TESTBUILDDIR) $(<F)
-$(TESTBUILDDIR)/$(TESTDT)iscii.res: $(TESTSRCDATADIR)/iscii.bin $(BINDIR)/genrb$(EXEEXT)
+$(TESTBUILDDIR)/iscii.res: $(TESTSRCDATADIR)/iscii.bin $(BINDIR)/genrb$(EXEEXT)
@echo Testing genrb -e option
- @ICU_DATA=$(BUILDDIR) $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -s $(TESTSRCDATADIR) -p $(TESTDATA) -eISCII,version=0 -d $(TESTBUILDDIR) $(<F) >/dev/null || ( echo "WARNING: could not open ISCII - it may have been disabled." | tee $@ )
+ @ICU_DATA=$(BUILDDIR) $(INVOKE) $(BINDIR)/genrb $(GENRBOPTS) -s $(TESTSRCDATADIR) -eISCII,version=0 -d $(TESTBUILDDIR) $(<F) >/dev/null || ( echo "WARNING: could not open ISCII - it may have been disabled." | tee $@ )
@echo Finished testing genrb -e option
################################################################### TYP
# TYP FILES
-$(TESTOUTDIR)/$(TESTDT)nam.typ: $(TESTBUILDDIR)/$(TESTDT)te_IN.res
+$(TESTOUTDIR)/$(TESTDT)/nam.typ: $(TESTBUILDDIR)/te_IN.res
+ cp $< $@
+$(TESTBUILDDIR)/icu26_testtypes.res: $(TESTSRCDATADIR)/icu26_testtypes.res
+ cp $< $@
+$(TESTBUILDDIR)/icu26e_testtypes.res: $(TESTSRCDATADIR)/icu26e_testtypes.res
cp $< $@
-
testdata: build-dir $(ALL_TEST_FILES) $(UNPACKAGEDTESTDATA)
diff --git a/Build/source/libs/icu-xetex/test/testdata/casing.txt b/Build/source/libs/icu-xetex/test/testdata/casing.txt
index 1e1c95c23e6..709de5b8e70 100644
--- a/Build/source/libs/icu-xetex/test/testdata/casing.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/casing.txt
@@ -1,11 +1,11 @@
//*******************************************************************************
//*
-//* Copyright (C) 2002-2005, International Business Machines
+//* Copyright (C) 2002-2006, International Business Machines
//* Corporation and others. All Rights Reserved.
//*
//*******************************************************************************
-casing {
+casing:table(nofallback) {
Info {
Description { "This is test data file for string casing." }
@@ -36,6 +36,7 @@ casing {
titlecasing {
Headers { "Input", "Output", "Locale", "Type" }
Cases {
+ { "ʻaMeLikA huI Pū ʻʻʻiA", "ʻAmelika Hui Pū ʻʻʻIa", "", "-1" }, // titlecase first _cased_ letter, j4933
{ " tHe QUIcK bRoWn", " The Quick Brown", "", "4" },
{ "DŽDždžLJLjljNJNjnj", "DžDžDžLjLjLjNjNjNj", "", "0" }, // UBRK_CHARACTER
{ "ljubav ljubav", "Ljubav Ljubav", "", "-1" }, // Lj vs. L+j
diff --git a/Build/source/libs/icu-xetex/test/testdata/conversion.txt b/Build/source/libs/icu-xetex/test/testdata/conversion.txt
index 773e5e4e08e..4e94f4713f9 100644
--- a/Build/source/libs/icu-xetex/test/testdata/conversion.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/conversion.txt
@@ -1,6 +1,6 @@
//*******************************************************************************
//
-// Copyright (C) 2003-2005, International Business Machines
+// Copyright (C) 2003-2006, International Business Machines
// Corporation and others. All Rights Reserved.
//
// file name: conversion.txt
@@ -15,7 +15,7 @@
//
//*******************************************************************************
-conversion {
+conversion:table(nofallback) {
Info {
Description { "Test data for conversion" }
LongDescription {
@@ -29,11 +29,16 @@ conversion {
"Callback option - a letter is passed in directly as const char * see ucnv_err.h\n"
"Empty string: Sub callback with NULL option\n"
- "In order to specify a charset substitution character,\n"
+ "In order to specify a charset substitution character (for ucnv_setSubstChars()),\n"
"add a NUL (U+0000) to the callback string followed by the subchar bytes as Latin-1\n"
"characters. For example, for a Sub callback with no option and a subchar of FC FC,\n"
"use the string \"?\x00\xFC\xFC\"\n"
+ "In order to specify a substitution string (for ucnv_setSubstString()),\n"
+ "add an '=' to the callback string followed by the substitution string.\n"
+ "For example, for a Sub callback with no option and a substitution string\n"
+ "of \"ab\", use the string \"?=ab\"\n"
+
"fallbacks: per-direction boolean, currently only for fromUnicode; see Jitterbug 2401\n"
"errorCode: (empty)==zero | invalid | illegal | truncated | illesc | unsuppesc\n"
@@ -445,6 +450,64 @@ conversion {
fromUnicode {
Headers { "charset", "unicode", "bytes", "offsets", "flush", "fallbacks", "errorCode", "callback", "invalidUChars" }
Cases {
+ {
+ "SCSU",
+ "1\U00010001\u0085\U000500022\ud8003\udc014\ue001",
+ :bin{ 310be0008102050fd900dc02e7320efffd330efffd34186881 },
+ :intvector{ 0,1,1,1,1,3,3,4,4,4,4,4,6,6,7,7,7,8,9,9,9,10,11,11,11 },
+ :int{1}, :int{0}, "", "?", ""
+ }
+ // Test substitution strings.
+ {
+ "windows-1252", // stateless MBCS with WriteSub(), should internally set char *
+ "a\ufdd0c",
+ :bin{ 61402421402463 },
+ :intvector{ 0,1,1,1,1,1,2 },
+ :int{1}, :int{0}, "", "?=@$!@$", ""
+ }
+ {
+ "ibm-930", // stateful MBCS
+ "a\ufdd0\u4e00\ufdd0e",
+ :bin{ 620e4bce0f400e45414bce0f4066 },
+ :intvector{ 0,1,1,1,1,1,2,2,2,3,3,3,3,4 },
+ :int{1}, :int{0}, "", "?=\u4e01 ", ""
+ }
+ {
+ "iso-2022-jp",
+ "a\x1bc", // Unicode ESC must not occur as a character
+ :bin{ 6163 },
+ :intvector{ 0,2 },
+ :int{1}, :int{0}, "", "?=", "" // empty substitution string
+ }
+ {
+ "iso-2022-cn",
+ "a\x1bc", // Unicode ESC must not occur as a character
+ :bin{ 61202063 },
+ :intvector{ 0,1,1,2 },
+ :int{1}, :int{0}, "", "?= ", ""
+ }
+ {
+ "iso-2022-cn",
+ "a\x1bc", // Unicode ESC must not occur as a character
+ :bin{ 611b2429410e523b0f2063 },
+ :intvector{ 0,1,1,1,1,1,1,1,1,1,2 },
+ :int{1}, :int{0}, "", "?=\u4e00 ", ""
+ }
+ {
+ "us-ascii",
+ "a\x85c",
+ :bin{ 61402421402463 },
+ :intvector{ 0,1,1,1,1,1,2 },
+ :int{1}, :int{0}, "", "?=@$!@$", ""
+ }
+ // ISO 2022-CN: test a single-byte subchar, j5171
+ {
+ "iso-2022-cn",
+ "a\x1bc", // Unicode ESC must not occur as a character
+ :bin{ 612163 },
+ :intvector{ 0,1,2 },
+ :int{1}, :int{0}, "", "?\x00\x21", ""
+ }
// UTF-16/32: do not output a BOM if there is no data at all
{
"UTF-16",
@@ -910,6 +973,14 @@ conversion {
}
{ "UTF-16BE", "\ud800", :bin{""}, :intvector{}, :int{1}, :int{0}, "truncated", ".", "\ud800" }
+ {
+ "SCSU",
+ "1\U00010001\u00082\ud8003\udc014\ue001",
+ :bin{ 310be000810108320efffd330efffd34186881 },
+ :intvector{ 0, 1, 1, 1, 1, 3, 3, 4, 5, 5, 5, 6, 7, 7, 7, 8, 9, 9, 9 },
+ :int{1}, :int{0}, "", "?", ""
+ }
+
// escape callback
{
"ISCII",
diff --git a/Build/source/libs/icu-xetex/test/testdata/csdetest.xml b/Build/source/libs/icu-xetex/test/testdata/csdetest.xml
new file mode 100644
index 00000000000..edef3c4730d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/testdata/csdetest.xml
@@ -0,0 +1,550 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- Copyright (c) 2005-2006 IBM Corporation and others. All rights reserved -->
+<!-- See individual test cases for their specific copyright. -->
+
+<charset-detection-tests>
+ <test-case id="IUC10-ar" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-6/ar windows-1256/ar">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ أوروبا, برمجيات الحاسوب + انترنيت :
+ تصبح عالميا مع يونيكود
+ IUC10
+ تسجّل الآن لحضور المؤتمر الدولي العاشر ليونيكود, الذي سيعقد ÙÙŠ 10-12 آذار 1997 بمدينة ماينتس,
+ ألمانيا. وسيجمع المؤتمر بين خبراء من كاÙØ© قطاعات الصناعة على الشبكة العالمية انترنيت ويونيكود, حيث ستتم,
+ على الصعيدين الدولي والمحلي على حد سواء مناقشة سبل استخدام يونكود ÙÙŠ النظم القائمة ÙˆÙيما يخص التطبيقات
+ الحاسوبية, الخطوط, تصميم النصوص والحوسبة متعددة اللغات.
+
+ Unicode
+ عندما يريد العالم أن يتكلّم, Ùهو يتحدّث بلغة يونيكود
+
+ </test-case>
+
+ <test-case id="IUC10-da-Q" encodings="UTF-8 UTF-32BE UTF-32LE windows-1252/da">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software + Internet:
+ Bliv global med Unicode
+ IUC10
+ Indskriv dig nu til den tiende internationale Unicode-konference, der holdes den 10-12
+ marts 1997 i Mainz, Tyskland. Konferencen samler eksperter fra hele verden inden for det
+ globale Internet og Unicode, internationalisering og lokalisering, implementering af
+ Unicode i styresystemer og programmer, skrifttyper, tekst-layout og flersproget databehandling.
+
+ Unicode
+ NÃ¥r verden vil tale, taler den “Unicode.â€
+
+ </test-case>
+
+ <test-case id="IUC10-da" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/da">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software + Internet:
+ Bliv global med Unicode
+ IUC10
+ Indskriv dig nu til den tiende internationale Unicode-konference, der holdes den 10-12
+ marts 1997 i Mainz, Tyskland. Konferencen samler eksperter fra hele verden inden for det
+ globale Internet og Unicode, internationalisering og lokalisering, implementering af
+ Unicode i styresystemer og programmer, skrifttyper, tekst-layout og flersproget databehandling.
+
+ Unicode
+ NÃ¥r verden vil tale, taler den Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-de" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/de">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software + das Internet:
+ International mit Unicode
+ IUC10
+ Melden Sie sich jetzt für die 10. Internationale Unicode Konferenz an, die in der Zeit vom 10.-12. März 1997 in
+ Mainz stattfinden wird. Die Konferenz ist ein Treffpunkt für Betriebsexperten aus den Bereichen globales
+ Internet und Unicode, Internationalisierung und Lokalisierung, die Implementierung von Unicode in
+ Betriebssystemen und Programmen, sowie für Schriftarten, Textlayout und mehrsprachige Computeranwendungen.
+
+ Unicode
+ Wenn die Welt miteinander spricht, spricht sie Unicode.
+
+ </test-case>
+
+ <!-- No UTF-8 in this test because there are no non-ASCII characters. -->
+ <test-case id="IUC10-en" encodings="UTF-32BE UTF-32LE ISO-8859-1/en">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europe, Software + the Internet:
+ Going Global with Unicode
+ IUC10
+ Register now for the Tenth International Unicode Conference, to be held on March 10-12, 1997,
+ in Mainz, Germany. The Conference will bring together industry-wide experts on the global Internet and
+ Unicode, internationalization and localization, implementation of Unicode in operating systems and applications,
+ fonts, text layout, and multilingual computing.
+
+ Unicode
+ When the world wants to talk, it speaks Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-es" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/es">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software + el Internet:
+ Mundializando con Unicode
+ IUC10
+ Inscríbase ahora para la Décima Conferencia Internacional Unicode, que tendrá lugar del 10 al 12 de marzo de
+ 1997 en Maguncia, Alemania. La Conferencia reunirá expertos de los sectores de la mundialización del Internet y
+ Unicode, la internacionalización y localización, implementación de Unicode en sistemas operativos y aplicaciones,
+ tipos, composición de texto e informática multilingüe.
+
+ Unicode
+ Cuando el mundo quiere conversar, habla Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-fr" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/fr">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ L'Europe, le logiciel et l'Internet :
+ la mondialisation avec Unicode
+ IUC10
+ Inscrivez-vous dès maintenant à la dixième Conférence internationale sur Unicode, qui se tiendra du 10 au 12
+ mars 1997 à Mayence, en Allemagne. Cette conférence rassemblera des experts de tous les horizons industriels
+ sur les sujets suivants : l'Internet mondial et Unicode, l'internationalisation et l'adaptation locale,
+ l'implémentation d'Unicode dans les systèmes d'exploitation et les applications, les polices de caractères,
+ la disposition de texte, l'informatique plurilingue.
+
+ Unicode
+ Quand le monde veut communiquer, il parle en Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-he" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-8-I/he">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ ×ירופה, תוכנה וה×ינטרנט:
+ Unicode ×™×•×¦× ×œ×©×•×§ העולמי
+ IUC10
+ הירשמו כעת לכנס Unicode הבינל×ומי העשירי, שייערך בין הת××¨×™×›×™× 12-10 במרץ 1997, במיינץ שבגרמניה. בכנס
+ ישתתפו ×ž×•×ž×—×™× ×ž×›×œ ענפי התעשייה ×‘× ×•×©× ×”×ינטרנט העולמי וה-Unicode, בהת×מה לשוק הבינל×ומי והמקומי, ביישו×
+ Unicode במערכות הפעלה וביישומי×, בגופני×, בפריסת טקסט ובמחשוב רב-לשוני.
+
+ Unicode
+ ×›×שר ×”×¢×•×œ× ×¨×•×¦×” לדבר, ×”×•× ×ž×“×‘×¨ ב-Unicode
+
+ </test-case>
+
+ <test-case id="IUC10-he-Q" encodings="UTF-8 UTF-32BE UTF-32LE windows-1255/he">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ ×ירופה, תוכנה וה×ינטרנט:
+ Unicode ×™×•×¦× ×œ×©×•×§ העולמי
+ IUC10
+ הירשמו כעת לכנס Unicode הבינל×ומי העשירי, שייערך בין הת××¨×™×›×™× 12-10 במרץ 1997, במיינץ שבגרמניה. בכנס
+ ישתתפו ×ž×•×ž×—×™× ×ž×›×œ ענפי התעשייה ×‘× ×•×©× ×”×ינטרנט העולמי וה-Unicode, בהת×מה לשוק הבינל×ומי והמקומי, ביישו×
+ Unicode במערכות הפעלה וביישומי×, בגופני×, בפריסת טקסט ובמחשוב רב-לשוני.
+
+ Unicode
+ ×›×שר ×”×¢×•×œ× ×¨×•×¦×” לדבר, ×”×•× ×ž×“×‘×¨ -“Unicode.â€
+
+ </test-case>
+
+ <test-case id="IUC10-hu" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-2/hu">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Európa, a Szoftver s az Internet -
+ Globálissá Változik a Unicode Ãltal
+ IUC10
+ Iratkozzon már most a Tizedik Nemzetközi Unicode Konferenciára, amely Március 10-12 1997
+ lesz megtartva, Meinz-be, Németországba. Ebben a Konferencián az iparág szerte sok szakértő
+ fog részt venni: a globális Internet s Unicode nemzetközisítése s lokalizálása, a
+ Unicode beteljesítése a működő rendszerekben s alkalmazásokban, fontokba, szöveg
+ térbeosztásba s többnyelvű computerekben.
+
+ Unicode
+ Ha a világ beszélni akar, azt Unicode-ul mondja.
+
+ </test-case>
+
+ <test-case id="IUC10-hu-Q" encodings="UTF-8 UTF-32BE UTF-32LE windows-1250/hu">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Európa, a Szoftver s az Internet -
+ Globálissá Változik a Unicode Ãltal
+ IUC10
+ Iratkozzon már most a Tizedik Nemzetközi Unicode Konferenciára, amely Március 10-12 1997
+ lesz megtartva, Meinz-be, Németországba. Ebben a Konferencián az iparág szerte sok szakértő
+ fog részt venni: a globális Internet s Unicode nemzetközisítése s lokalizálása, a
+ Unicode beteljesítése a működő rendszerekben s alkalmazásokban, fontokba, szöveg
+ térbeosztásba s többnyelvű computerekben.
+
+ Unicode
+ Ha a világ beszélni akar, azt “Unicodeâ€-ul mondja.
+
+ </test-case>
+
+ <test-case id="IUC10-it" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/it">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, software e Internet:
+ Globalizzazione con Unicode
+ IUC10
+ Iscrivetevi subito alla X Conferenza Internazionale su Unicode, che si terrà dal 10 al 12 marzo 1997 a
+ Mainz in Germania. Alla Conferenza parteciperanno esperti di tutti i settori per discutere di Internet globale e
+ Unicode, internazionalizzazione e localizzazione, implementazione di Unicode in sistemi operativi e applicazioni,
+ caratteri, composizione dei testi ed elaborazione multilingue.
+
+ Unicode
+ Quando il mondo vuole comunicare, parla Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-jp" encodings="UTF-8 UTF-32BE UTF-32LE Shift_JIS EUC-JP ISO-2022-JP">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ ヨーロッパã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã€ãã—ã¦ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆ:
+ Unicode ã§ã‚°ãƒ­ãƒ¼ãƒãƒ«åŒ–ã‚’ç‹™ã£ã¦
+ IUC10
+ 第 10 回㮠Unicode 会議㯠1997 å¹´ 3 月 10-12æ—¥ã€ãƒ‰ã‚¤ãƒ„ã®ãƒžã‚¤ãƒ³ãƒ„ã§é–‹ã‹ã‚Œã¾ã™ã€‚å‚加希望ã®æ–¹ã¯ä»Šã™ã登録ã—ã¦ãã ã•ã„。
+ ã“ã®ä¼šè­°ã§ã¯ã€ã‚°ãƒ­ãƒ¼ãƒãƒ«ãªã‚¤ãƒ³ã‚¿ãƒãƒƒãƒˆã€Unicodeã€ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®å›½éš›åŒ–ãŠã‚ˆã³ãƒ­ãƒ¼ã‚«ãƒªã‚¼ãƒ¼ã‚·ãƒ§ãƒ³ã€OS ãŠã‚ˆã³ã‚¢ãƒ—リケーションã§ã®
+ Unicode ã®ã‚¤ãƒ³ãƒ—リメンテーションã€ãƒ•ã‚©ãƒ³ãƒˆã€ãƒ†ã‚­ã‚¹ãƒˆè¡¨ç¤ºã€ãƒžãƒ«ãƒè¨€èªžã‚³ãƒ³ãƒ”ューティングã«ãŠã‘る業界ã®å°‚門家ãŒé›†ã¾ã‚Šã¾ã™ã€‚
+
+ Unicode
+ 世界的ã«è©±ã™ãªã‚‰ã€Unicode ã§ã™ã€‚
+
+ </test-case>
+
+ <test-case id="IUC10-ko" encodings="UTF-8 UTF-32BE UTF-32LE EUC-KR ISO-2022-KR">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ 유럽, 소프트웨어 그리고 ì¸í„°ë„·:
+ 유니코드와 함께 세계로
+ IUC10
+ ì œ10회 유니코드 êµ­ì œ 회ì˜ê°€ 1997ë…„ 3ì›” 10ì¼ë¶€í„° 12ì¼ê¹Œì§€ ë…ì¼ì˜ 마ì¸ì¦ˆì—ì„œ 열립니다. 지금 등ë¡í•˜ì‹­ì‹œì˜¤.
+ ì´ íšŒì˜ì—서는 업계 ì „ë°˜ì˜ ì „ë¬¸ê°€ë“¤ì´ í•¨ê»˜ 모여 다ìŒê³¼ ê°™ì€ ë¶„ì•¼ë¥¼ 다룹니다. - ì¸í„°ë„·ê³¼ 유니코드, 국제화와 지역화,
+ ìš´ì˜ ì²´ì œì™€ ì‘ìš© 프로그램ì—ì„œ ìœ ë‹ˆì½”ë“œì˜ êµ¬í˜„, 글꼴, ë¬¸ìž ë°°ì—´, 다국어 컴퓨팅.
+
+ Unicode
+ 세계를 향한 대화, 유니코드로 하십시오
+
+ </test-case>
+
+ <!-- No UTF-8 in this test because there are no non-ASCII characters. -->
+ <test-case id="IUC10-nl" encodings="UTF-32BE UTF-32LE ISO-8859-1/nl">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software + het Internet:
+ wereldwijd met Unicode
+ IUC10
+ Meld u nu aan voor de Tiende Internationale Unicode-conferentie, die van 10 tot 12 maart 1997 in
+ Mainz (Duitsland) wordt gehouden. De Conferentie is een ontmoetingsplaats voor experts uit de industrie op het
+ gebied van het wereldwijde Internet en Unicode, internationalisatie en localisatie, implementatie van Unicode in
+ besturingssystemen en applicaties, lettertypes, tekstopmaak en meertalig computergebruik.
+
+ Unicode
+ Als de wereld wil praten, spreekt hij Unicode.
+
+ </test-case>
+
+ <!-- No language for ISO-8859-1 in this test because no-BO is recogonized as Danish... -->
+ <test-case id="IUC10-no-BO" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Programvare og Internet:
+ Global fokus med Unicode
+ IUC10
+ Registrer deg som deltager på den tiende inernasjonale Unicode konferansen i Mainz, Tyskland, fra 10. til 12. mars,
+ 1997. Konferansen vil samle eksperter på Internet, Unicode, internasjonalisering og integrasjon av Unicode i
+ operativsystemer og programmer, fonter, tekst layout og flerspråklig databehandling.
+
+ Unicode
+ NÃ¥r verden vil snakke, snakker den Unicode
+
+ </test-case>
+
+ <test-case id="IUC10-no-NY" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/no">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, programvare og Internett:
+ Femn verda med Unicode
+ IUC10
+ Meld deg på den 10. internasjonale Unicode-konferansen. Han går føre seg i Mainz i Tyskland i dagane 10.--12. mars
+ 1997, og samlar fagkunnige innan konferansetemaet frå heile databransjen. Tema: Det globale Internettet og
+ Unicode, internasjonalisering og nasjonal tilpassing, implementering av Unicode i operativsystem og brukarprogram,
+ skriftsnitt (fontar), tekstutlegg, og fleirspråkleg databehandling.
+
+ Unicode
+ Når verda ønskjer å snakke, talar ho Unicode
+
+ </test-case>
+
+ <test-case id="IUC10-pt-BR" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/pt">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software e a Internet:
+ Globalização com o Unicode
+ IUC10
+ Inscreva-se agora para a Décima Conferência Internacional Sobre O Unicode, realizada entre os dias 10 e 12 de
+ março de 1997 em Mainz na Alemanha. A Conferência reunirá peritos de todas as áreas da indústria especializados
+ em assuntos relacionados com a Internet global e o Unicode, internacionalização e localização de software,
+ implementação do Unicode em sistemas operacionais e aplicativos, fontes, layout de texto e informática multilíngüe.
+
+ Unicode
+ Quando o mundo quer falar, fala Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-pt-PT" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/pt">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software e a Internet:
+ Globalização com o Unicode
+ IUC10
+ Inscreva-se agora para a Décima Conferência Internacional Sobre O Unicode, a ser realizada entre os dias 10 e 12
+ de Março de 1997 em Mainz na Alemanha. A Conferência reunirá peritos de todas as áreas da indústria
+ especializados em assuntos relacionados com a Internet global e o Unicode, internacionalização e localização de
+ software, implementação do Unicode em sistemas operativos e aplicações, tipos de letra, esquematização de
+ texto e informática multilíngue.
+
+ Unicode
+ Quando o mundo quer falar, fala Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-ro" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-2/ro">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, Software ÅŸi Internet:
+ Globalizarea cu Unicode
+ IUC10
+ Inscrieţi-vă acum la a Zecea Conferinţă Internaţională "Unicode" ce va avea loc in
+ perioada de 10-12 martie, 1997 în Mainz, Germania. Conferinţa va întruni experţi din
+ variate domenii: Internet global şi Unicode, internaţionalizare şi localizare,
+ implementarede Unicode în sisteme de operare şi aplicaţii, fonturi, aranjare de text în
+ pagină, computerizare multilinguală.
+
+ Unicode
+ Când lumea vrea să comunice, vorbeşte Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-ru" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-5/ru windows-1251/ru KOI8-R/ru">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Европа, Программное обеÑпечение + Интернет:
+ Unicode в глобальных маÑштабах
+ IUC10
+ ЗарегиÑтрируйтеÑÑŒ ÑÐµÐ¹Ñ‡Ð°Ñ Ð½Ð° ДеÑÑтую Международную Конференцию по Unicode, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ ÑоÑтоитÑÑ
+ 10-12 марта 1997 года в Майнце в Германии. ÐšÐ¾Ð½Ñ„ÐµÑ€ÐµÐ½Ñ†Ð¸Ñ Ñоберет широкий круг ÑкÑпертов по и
+ вопроÑам глобального Интернета и Unicode, локализации и интернационализации, воплощению
+ применению Unicode в различных операционных ÑиÑтемах и программных приложениÑÑ…,
+ шрифтах, верÑтке и многоÑзычных компьютерных ÑиÑтемах.
+
+ Unicode
+ Когда мир желает общатьÑÑ, он общаетÑÑ Ð½Ð° Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-sv" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-1/sv">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Europa, programvara och Internet:
+ globalisera med Unicode
+ IUC10
+ Anmäl Dig till den tionde internationella Unicode-konferensen, som hålls den 10-12 mars 1997 i Mainz,
+ Tyskland. Vid konferensen kommer experter inom följande områden att delta: det globala Internet och Unicode,
+ internationalisering och lokalisering, implementering av Unicode i operativsystem, tillämpningar, typsnitt,
+ textlayout och mångspråklig datoranvändning.
+
+ Unicode
+ När världen vill tala, så talar den Unicode.
+
+ </test-case>
+
+ <test-case id="IUC10-yi" encodings="UTF-8 UTF-32BE UTF-32LE">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ ×ײר×ָפּע: פּר×ָגר×ַמװ×ַרג ×ון די װעלטנעץ:
+ ×וניק×ָד ×יבער דער ×’×ָרער װעלט
+ IUC10
+ פֿ×ַרשרײַבט זיך שױן ××±×£ דער צענטער ×ינטערנ×ַצי×ָנ×ַלער ×וניק×ָד-ק×ָנפֿערענץ, ×°×ָס װעט פֿ×ָרקומען דע×
+ 10טן ביזן 12טן מ×ַרץ, 1997, ×ין מײַנץ, דײַטשל×ַנד. די ק×ָנפֿערענץ װעט צוז×ַמענברענגן ×ž×‘Ö¿×™× ×™× ×¤Ö¿×•×Ÿ װעלטנעץ,
+ ×וניק×ָד, ××™ ×ַלװעלטלעכן ××™ סבֿיבֿהדיקן פּר×ָגר×ַמװ×ַרג, ×ַרײַנשטעלן ×וניק×ָד ×ין ×ָפּעריר-סיסטעמען ×ון
+ ×ָנװענדונגען, שריפֿטן, טעקסט-×ױסשטעל, ×ון מערשפּר×ַכיקע ק×ָמפּיוטערײַ.
+
+ Unicode
+ ×Ö·×– די װעלט װיל רעדן, רעדט ×–×™ ×וניק×ָד
+
+ </test-case>
+
+ <test-case id="IUC10-zh-Hant" encodings="UTF-8 UTF-32BE UTF-32LE ISO-2022-CN GB18030 Big5">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ æ­æ´²ï¼Œè»Ÿé«”åŠç¶²éš›ç¶²è·¯ï¼š
+ 讓統一碼(Unicode)領你進入全世界
+ IUC10
+ ä½ ç¾åœ¨å°±æ‡‰å ±å將在1997年3月1ï¼è‡³ï¼‘2日於德國美姿城(Mainz)å¬é–‹çš„第å屆國際統一碼研討會。
+ 本次研討會將邀請多ä½æ¥­ç•Œå°ˆå®¶ç ”討關於全çƒç¶²éš›ç¶²è·¯åŠçµ±ä¸€ç¢¼ç™¼å±•ã€åœ‹éš›åŒ–åŠæœ¬åœŸåŒ–ã€
+ 支æ´çµ±ä¸€ç¢¼çš„作業系統åŠæ‡‰ç”¨ç¨‹å¼ã€å­—åž‹ã€æ–‡å­—排版ã€é›»è…¦å¤šåœ‹èªžæ–‡åŒ–等多項課題。
+
+ Unicode
+ 當世界需è¦æºé€šæ™‚,請用統一碼(Unicode)
+
+ </test-case>
+
+ <!-- No ISO-2022-CN in this test because Java doesn't support it in both directions :-( -->
+ <test-case id="IUC10-zh-Hans" encodings="UTF-8 UTF-32BE UTF-32LE ISO-2022-CN GB18030">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ 欧洲,软件+互è”网
+ ç”¨ç»Ÿä¸€ç  (Unicode) èµ°é世界
+ IUC10
+ 将于1997å¹´ 3 月10æ—¥ï¼12日在德国 Mainz 市举行的第å届统一ç å›½é™…研讨会现在开始注册。
+ 本次会议将汇集å„æ–¹é¢çš„专家。涉åŠçš„领域包括:国际互è”网和统一ç ï¼Œå›½é™…化和本地化,
+ 统一ç åœ¨æ“作系统和应用软件中的实现,字型,文本格å¼ä»¥åŠå¤šæ–‡ç§è®¡ç®—等。
+
+ Unicode
+ 当世界需è¦æ²Ÿé€šæ—¶ï¼Œè¯·ç”¨Unicodeï¼
+
+Conference Program
+ </test-case>
+
+ <test-case id="WIU-cz" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-2/cs">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Co je Unicode?
+
+ Unicode pÅ™iÅ™azuje každému znaku jedineÄné Äíslo,
+ nezávisle na platformě,
+ nezávisle na programu,
+ nezávisle na jazyce.
+
+ PoÄítaÄe, ze své podstaty, pracují pouze s Äísly. Písmena a další znaky ukládají tak, že každému z nich
+ pÅ™iÅ™adí Äíslo. PÅ™ed vznikem Unicode existovaly stovky rozdílných kódovacích systémů pro pÅ™iÅ™azování tÄ›chto
+ Äísel. Žádné z tÄ›chto kódování nemohlo obsahovat dostatek znaků: například Evropská unie sama potÅ™ebuje
+ nÄ›kolik různých kódování, aby pokryla vÅ¡echny své jazyky. Dokonce i pro jeden jediný jazyk, jako je angliÄtina,
+ nevyhovovalo žádné kódování pro všechny písmena, interpunkci a běžně používané technické symboly.
+
+ Tyto kódovací systémy také byly v konfliktu jeden s druhým. To znamená, že dvě kódování mohou používat
+ stejné Äíslo pro dva různé znaky, nebo používat různá Äísla pro stejný znak. Jakýkoli poÄítaÄ (zvláštÄ› servery)
+ musí podporovat mnoho různých kódování; přesto, kdykoli jsou data předávána mezi různými kódováními nebo
+ platformami, hrozí, že tato data budou poškozena.
+
+ </test-case>
+
+ <test-case id="WIU-el" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-7/el">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Τι είναι το Unicode;
+
+ Η κωδικοσελίδα Unicode Ï€Ïοτείνει έναν και μοναδικό αÏιθμό για κάθε χαÏακτήÏα,
+ ανεξάÏτητα από το λειτουÏγικό σÏστημα,
+ ανεξάÏτητα από το λογισμικό,
+ ανεξάÏτητα από την γλώσσα.
+
+ Οι ηλεκτÏονικοί υπολογιστές, σε τελική ανάλυση, χειÏίζονται απλώς αÏιθμοÏÏ‚. ΑποθηκεÏουν γÏάμματα και
+ άλλους χαÏακτήÏες αντιστοιχώντας στο καθένα τους από έναν αÏιθμό (ονομάζουμε μία τέτοια αντιστοιχία
+ κωδικοσελίδα). ΠÏιν την εφεÏÏεση του Unicode, υπήÏχαν εκατοντάδες διαφοÏετικές κωδικοσελίδες. Λόγω
+ πεÏιοÏισμών μεγέθους όμως, σε καμία κωδικοσελίδα δεν χωÏοÏσαν αÏκετοί χαÏακτήÏες: λόγου χάÏιν,
+ η ΕυÏωπαϊκή Ένωση χÏειαζόταν πλήθος διαφοÏετικών κωδικοσελίδων για να καλÏψει όλες τις γλώσσες των
+ χωÏών-μελών της. Ακόμα και για μία και μόνη γλώσσα, όπως Ï€.χ. τα Αγγλικά, μία κωδικοσελίδα δεν
+ επαÏκοÏσε για να καλÏψει όλα τα γÏάμματα, σημεία στίξης και τεχνικά σÏμβολα ευÏείας χÏήσης.
+
+ Εκτός αυτοÏ, οι κωδικοσελίδες αυτές διαφωνοÏσαν Î¼ÎµÏ„Î±Î¾Ï Ï„Î¿Ï…Ï‚. Έτσι, δÏο κωδικοσελίδες μποÏοÏσαν κάλλιστα να
+ χÏησιμοποιοÏν τον ίδιο αÏιθμό για δÏο διαφοÏετικοÏÏ‚ χαÏακτήÏες, ή να χÏησιμοποιοÏν διαφοÏετικοÏÏ‚ αÏιθμοÏÏ‚ για
+ τον ίδιο χαÏακτήÏα. Κάθε υπολογιστής (και ιδίως εάν ήταν διακομιστής) έπÏεπε να υποστηÏίζει πλήθος διαφοÏετικών
+ κωδικοσελίδων· ταυτόχÏονα κάθε φοÏά που δεδομένα μεταφέÏονταν Î¼ÎµÏ„Î±Î¾Ï Î´Î¹Î±Ï†Î¿Ïετικών κωδικοσελίδων ή
+ λειτουÏγικών συστημάτων, τα δεδομένα αυτά κινδÏνευαν να αλλοιωθοÏν.
+
+ </test-case>
+
+ <test-case id="WIU-el-Q" encodings="UTF-8 UTF-32BE UTF-32LE windows-1253/el">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Τι είναι το “Unicodeâ€;
+
+ Η κωδικοσελίδα Unicode Ï€Ïοτείνει έναν και μοναδικό αÏιθμό για κάθε χαÏακτήÏα,
+ ανεξάÏτητα από το λειτουÏγικό σÏστημα,
+ ανεξάÏτητα από το λογισμικό,
+ ανεξάÏτητα από την γλώσσα.
+
+ Οι ηλεκτÏονικοί υπολογιστές, σε τελική ανάλυση, χειÏίζονται απλώς αÏιθμοÏÏ‚. ΑποθηκεÏουν γÏάμματα και
+ άλλους χαÏακτήÏες αντιστοιχώντας στο καθένα τους από έναν αÏιθμό (ονομάζουμε μία τέτοια αντιστοιχία
+ κωδικοσελίδα). ΠÏιν την εφεÏÏεση του Unicode, υπήÏχαν εκατοντάδες διαφοÏετικές κωδικοσελίδες. Λόγω
+ πεÏιοÏισμών μεγέθους όμως, σε καμία κωδικοσελίδα δεν χωÏοÏσαν αÏκετοί χαÏακτήÏες: λόγου χάÏιν,
+ η ΕυÏωπαϊκή Ένωση χÏειαζόταν πλήθος διαφοÏετικών κωδικοσελίδων για να καλÏψει όλες τις γλώσσες των
+ χωÏών-μελών της. Ακόμα και για μία και μόνη γλώσσα, όπως Ï€.χ. τα Αγγλικά, μία κωδικοσελίδα δεν
+ επαÏκοÏσε για να καλÏψει όλα τα γÏάμματα, σημεία στίξης και τεχνικά σÏμβολα ευÏείας χÏήσης.
+
+ Εκτός αυτοÏ, οι κωδικοσελίδες αυτές διαφωνοÏσαν Î¼ÎµÏ„Î±Î¾Ï Ï„Î¿Ï…Ï‚. Έτσι, δÏο κωδικοσελίδες μποÏοÏσαν κάλλιστα να
+ χÏησιμοποιοÏν τον ίδιο αÏιθμό για δÏο διαφοÏετικοÏÏ‚ χαÏακτήÏες, ή να χÏησιμοποιοÏν διαφοÏετικοÏÏ‚ αÏιθμοÏÏ‚ για
+ τον ίδιο χαÏακτήÏα. Κάθε υπολογιστής (και ιδίως εάν ήταν διακομιστής) έπÏεπε να υποστηÏίζει πλήθος διαφοÏετικών
+ κωδικοσελίδων· ταυτόχÏονα κάθε φοÏά που δεδομένα μεταφέÏονταν Î¼ÎµÏ„Î±Î¾Ï Î´Î¹Î±Ï†Î¿Ïετικών κωδικοσελίδων ή
+ λειτουÏγικών συστημάτων, τα δεδομένα αυτά κινδÏνευαν να αλλοιωθοÏν.
+
+ </test-case>
+
+ <test-case id="WIU-pl" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-2/pl">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Czym jest Unikod ?
+
+ Unikod przypisuje unikalny numer każdemu znakowi, niezależny od używanej platformy, programu czy języka.
+
+ Zasadniczo, komputery rozumieją tylko liczby. Zapisują litery i inne znaki przypisując każdemu z nich liczbę.
+ Nim powstał Unikod, było wiele różnych systemów kodowania przypisujących te liczby. Brakowało jednego,
+ który mógłby pomieścić wystarczająco dużą liczbę znaków. Przykładowo, sama Unia Europejska potrzebowała
+ kilku różnych kodowań, by móc używać wszystkich używanych w niej języków. Nawet dla pojedynczego języka
+ takiego jak np. angielski brakowało jednego kodowania, które byłoby odpowiednie dla zaprezentowania
+ wszystkich liter, znaków przestankowych i popularnych symboli technicznych.
+
+ Innym problemem było, że kodowania te kolidowały ze sobą. Dwa, różne kodowania używały jednej liczby dla dwu
+ różnych znaków lub różnych liczb dla tego samego znaku. Wszystkie komputery (między innymi serwery) muszą
+ wspierać wszystkie te kodowania, gdyż dane przesyłane między różnymi systemami operacyjnymi zawsze
+ narażone są na uszkodzenie.
+
+ </test-case>
+
+ <test-case id="WIU-tr" encodings="UTF-8 UTF-32BE UTF-32LE ISO-8859-9/tr">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ Evrensel Kod Nedir?
+
+ Evrensel Kod her yazı karakteri için bir ve yalnız bir sayı şart koşar,
+ hangi altyapı,
+ hangi yazılım,
+ hangi dil olursa olsun.
+
+ İlke olarak, bilgisayarlar sadece sayılarla işlem yaparlar. Kelimelerin ve yazı karakterlerinin her biri için
+ birer sayı atarlar ve böyle saklarlar. Evrensel Kod keşfedilmeden önce, bu sayıları atamak için birçok şifreleme
+ yöntemi vardı. Ancak, tüm bu dilleri gösterebilecek, örneğin; Avrupa Topluluğu bünyesindeki tüm ülkelerin dillerini
+ kapsayacak bir tek şifreleme yöntemi yoktu. Bunun yanısıra, sadece İngilizcedeki harfleri, noktalama
+ işaretlerini ve teknik sembolleri kapsayan tek bir şifreleme yöntemi de bulunmamaktaydı.
+
+ Bu şifreleme yöntemleri kendi aralarında çelişmektedir. İki farklı şifreleme, aynı sayıyı iki farklı karaktere
+ vermiş olabilir ya da farklı sayılar aynı karekteri kodlayabilir. Bilgisayarlar, özellikle sunucular, birçok
+ şifrelemeyi desteklemek zorundadırlar; veriler, farklı şifreleme ve altyapılardan geçerken bozulma riski taşırlar.
+
+ </test-case>
+
+ <test-case id="WIU-tr-Q" encodings="UTF-8 UTF-32BE UTF-32LE windows-1254/tr">
+ <!-- Copyright © 1991-2005 Unicode, Inc. All rights reserved. -->
+
+ “Evrensel Kod†Nedir?
+
+ Evrensel Kod her yazı karakteri için bir ve yalnız bir sayı şart koşar,
+ hangi altyapı,
+ hangi yazılım,
+ hangi dil olursa olsun.
+
+ İlke olarak, bilgisayarlar sadece sayılarla işlem yaparlar. Kelimelerin ve yazı karakterlerinin her biri için
+ birer sayı atarlar ve böyle saklarlar. Evrensel Kod keşfedilmeden önce, bu sayıları atamak için birçok şifreleme
+ yöntemi vardı. Ancak, tüm bu dilleri gösterebilecek, örneğin; Avrupa Topluluğu bünyesindeki tüm ülkelerin dillerini
+ kapsayacak bir tek şifreleme yöntemi yoktu. Bunun yanısıra, sadece İngilizcedeki harfleri, noktalama
+ işaretlerini ve teknik sembolleri kapsayan tek bir şifreleme yöntemi de bulunmamaktaydı.
+
+ Bu şifreleme yöntemleri kendi aralarında çelişmektedir. İki farklı şifreleme, aynı sayıyı iki farklı karaktere
+ vermiş olabilir ya da farklı sayılar aynı karekteri kodlayabilir. Bilgisayarlar, özellikle sunucular, birçok
+ şifrelemeyi desteklemek zorundadırlar; veriler, farklı şifreleme ve altyapılardan geçerken bozulma riski taşırlar.
+
+ </test-case>
+</charset-detection-tests> \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/test/testdata/testdata_icu26_testtypes.res b/Build/source/libs/icu-xetex/test/testdata/icu26_testtypes.res
index d7747ce691c..d7747ce691c 100644
--- a/Build/source/libs/icu-xetex/test/testdata/testdata_icu26_testtypes.res
+++ b/Build/source/libs/icu-xetex/test/testdata/icu26_testtypes.res
Binary files differ
diff --git a/Build/source/libs/icu-xetex/test/testdata/testdata_icu26e_testtypes.res b/Build/source/libs/icu-xetex/test/testdata/icu26e_testtypes.res
index 89acde07914..89acde07914 100644
--- a/Build/source/libs/icu-xetex/test/testdata/testdata_icu26e_testtypes.res
+++ b/Build/source/libs/icu-xetex/test/testdata/icu26e_testtypes.res
Binary files differ
diff --git a/Build/source/libs/icu-xetex/test/testdata/icuio.txt b/Build/source/libs/icu-xetex/test/testdata/icuio.txt
index e83fb3d5461..3f5fbb88e65 100644
--- a/Build/source/libs/icu-xetex/test/testdata/icuio.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/icuio.txt
@@ -1,6 +1,6 @@
//*****************************************************************************
//
-// Copyright (C) 2004-2005, International Business Machines
+// Copyright (C) 2004-2006, International Business Machines
// Corporation and others. All Rights Reserved.
//
// file name: icuio.txt
@@ -15,7 +15,7 @@
//
//*****************************************************************************
-icuio {
+icuio:table(nofallback) {
Info {
Description { "Test data for ICU I/O" }
LongDescription {
@@ -24,6 +24,7 @@ icuio {
"argumentType:\n"
"\td: double\n"
+ "\tf: float\n"
"\t1: int8_t (hexadecimal)\n"
"\t2: int16_t (hexadecimal)\n"
"\t4: int32_t (hexadecimal)\n"
@@ -85,6 +86,7 @@ icuio {
{ "%G", "12345.7", "d", "12345.6789" }
{ "%G", "123457", "d", "123456.789" }
{ "%G", "1.23457E+006", "d", "1234567.89" }
+ { "%.14G", "1.7E+064", "d", "1.7E+64" }
{ "%.0f", "-12", "d", "-12.34" }
{ "%.0e", "-1e+001", "d", "-12.34" }
{ "%.0g", "-1e+001", "d", "-12.34" }
@@ -117,8 +119,8 @@ icuio {
scanf {
Headers { "format", "argument", "argumentType", "result" }
Cases {
- { "%e", "1.200000e+000", "d", "1.2" }
- { "%*e%e", "1.200000e+000 4.825000e+000", "d", "4.825" }
+ { "%e", "1.200000e+000", "f", "1.2" }
+ { "%*e%e", "1.200000e+000 4.825000e+000", "f", "4.825" }
{ "%C", "1234", "2", "31" }
{ "%*C%C", "1234", "2", "32" }
{ "%S", "1234 5678", "S", "1234" }
@@ -132,12 +134,15 @@ icuio {
{ "%4d", "123", "4", "7B" }
{ "%2d", "123", "4", "C" }
{ "%40d", "123", "4", "7B" }
- { "%2e", "1.25", "d", "1" }
- { "%2f", "1.25", "d", "1" }
- { "%2g", "1.25", "d", "1" }
- { "%*2e%2e", "1.25", "d", "25" }
- { "%*2f%2f", "1.25", "d", "25" }
- { "%*2g%2g", "1.25", "d", "25" }
+ { "%2e", "1.25", "f", "1" }
+ { "%2f", "1.25", "f", "1" }
+ { "%2g", "1.25", "f", "1" }
+ { "%2le", "1.25", "d", "1" }
+ { "%2lf", "1.25", "d", "1" }
+ { "%2lg", "1.25", "d", "1" }
+ { "%*2e%2e", "1.25", "f", "25" }
+ { "%*2f%2f", "1.25", "f", "25" }
+ { "%*2g%2g", "1.25", "f", "25" }
{ "%*d%d", "1234 5678", "4", "162E" }
{ "%x", "abcd ef01", "4", "abcd" }
{ "%3x", "abcd ef01", "4", "abc" }
@@ -161,6 +166,12 @@ icuio {
{ "%*3S%S", "abcd efg", "S", "d" }
{ "%*3s%s", "abcd efg", "s", "d" }
{ "%*3d%d", "1234", "4", "4" }
+ { "%d", " 1234", "4", "4D2" }
+ { "%e", " 1234", "f", "1234" }
+ { "%f", " 1234", "f", "1234" }
+ { "%d", "+1234", "4", "4D2" }
+ { "%e", "+1234", "f", "1234" }
+ { "%f", "+1234", "f", "1234" }
}
}
}
diff --git a/Build/source/libs/icu-xetex/test/testdata/idna_conf.txt b/Build/source/libs/icu-xetex/test/testdata/idna_conf.txt
new file mode 100644
index 00000000000..ba999bc83a3
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/testdata/idna_conf.txt
@@ -0,0 +1,1266 @@
+=====
+desc: Copyright 2003-2005 http://idnconnect.jdna.jp/testbed.html
+namebase: <00ED>dn
+nameutf8: ídn
+namezone: xn--dn-mja
+failzone1:
+failzone2:
+token: 25029153
+passfail: pass
+type: toascii
+
+=====
+desc: 1-1-1 Has one IDN
+namebase: <00ED>dn
+nameutf8: ídn
+namezone: xn--dn-mja
+failzone1:
+failzone2:
+token: 25029153
+passfail: pass
+type: toascii
+
+=====
+desc: 1-1-2 Has two IDNs
+namebase: <00EB>x.<00ED>dn
+nameutf8: ëx.ídn
+namezone: xn--x-ega.xn--dn-mja
+failzone1:
+failzone2:
+token: 02721141
+passfail: pass
+type: toascii
+
+=====
+desc: 1-2-1 Latin-1
+namebase: <00E5><00FE><00E7>
+nameutf8: åþç
+namezone: xn--5cae2e
+failzone1:
+failzone2:
+token: 41542620
+passfail: pass
+type: toascii
+
+=====
+desc: 1-2-2 Latin Extended A
+namebase: <0103>b<0109>
+nameutf8: ăbĉ
+namezone: xn--b-rhat
+failzone1:
+failzone2:
+token: 72238617
+passfail: pass
+type: toascii
+
+=====
+desc: 1-2-3 Latin Extended B
+namebase: <0227><0180><0188>
+nameutf8: ȧƀƈ
+namezone: xn--lhaq98b
+failzone1:
+failzone2:
+token: 48464361
+passfail: pass
+type: toascii
+
+=====
+desc: 1-2-4 Latin Extended Additional
+namebase: <1E01><1E03><1E09>
+nameutf8: á¸á¸ƒá¸‰
+namezone: xn--2fges
+failzone1:
+failzone2:
+token: 49301230
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-1 Han
+namebase: <4E3F><4EBA><5C38>
+nameutf8: 丿人尸
+namezone: xn--xiqplj17a
+failzone1:
+failzone2:
+token: 58367113
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-2 Hiragana
+namebase: <304B><304C><304D>
+nameutf8: ã‹ãŒã
+namezone: xn--u8jcd
+failzone1:
+failzone2:
+token: 57006197
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-3 Katakana
+namebase: <30AB><30AC><30AD>
+nameutf8: カガキ
+namezone: xn--lckcd
+failzone1:
+failzone2:
+token: 81826992
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-4 Hangul Jamo
+namebase: <1100><1161><11A8>
+nameutf8: 각
+namezone: xn--p39a
+failzone1: xn--ypd8qrh
+failzone2:
+token: 44228346
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-5 Hangul
+namebase: <AC69><B4C6><C03A>
+nameutf8: 걩듆쀺
+namezone: xn--o69aq2nl0j
+failzone1:
+failzone2:
+token: 79235608
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-6 Yi
+namebase: <A00A><A020><A2B8>
+nameutf8: ꀊꀠꊸ
+namezone: xn--6l7arby7j
+failzone1:
+failzone2:
+token: 99549720
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-7 Greek
+namebase: <03B1><03B2><03B3>
+nameutf8: αβγ
+namezone: xn--mxacd
+failzone1:
+failzone2:
+token: 83859912
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-8 Greek Extended
+namebase: <1F02><1F26><1F55>
+nameutf8: ἂἦὕ
+namezone: xn--fng7dpg
+failzone1:
+failzone2:
+token: 22501339
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-9 Cyrillic
+namebase: <0430><0431><0432>
+nameutf8: абв
+namezone: xn--80acd
+failzone1:
+failzone2:
+token: 98871751
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-10 Armeian
+namebase: <0561><0562><0563>
+nameutf8: Õ¡Õ¢Õ£
+namezone: xn--y9acd
+failzone1:
+failzone2:
+token: 23687015
+passfail: pass
+type: toascii
+
+=====
+desc: 1-3-11 Georgian
+namebase: <10D0><10D1><10D2>
+nameutf8: áƒáƒ‘გ
+namezone: xn--lodcd
+failzone1:
+failzone2:
+token: 70499589
+passfail: pass
+type: toascii
+
+=====
+desc: 1-4-1 Symbols
+namebase: <2221><21BA><2282>
+nameutf8: ∡↺⊂
+namezone: xn--b7gxomk
+failzone1:
+failzone2:
+token: 24617638
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-1 Devanagari
+namebase: <0915><0916><0917>
+nameutf8: कखग
+namezone: xn--11bcd
+failzone1:
+failzone2:
+token: 18477223
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-2 Bengali
+namebase: <0995><0996><0997>
+nameutf8: কখগ
+namezone: xn--p5bcd
+failzone1:
+failzone2:
+token: 11477904
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-3 Gurmukhi
+namebase: <0A15><0A16><0A17>
+nameutf8: ਕਖਗ
+namezone: xn--d9bcd
+failzone1:
+failzone2:
+token: 71543506
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-4 Gujarati
+namebase: <0A95><0A96><0A97>
+nameutf8: કખગ
+namezone: xn--0dccd
+failzone1:
+failzone2:
+token: 75268760
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-5 Oriya
+namebase: <0B15><0B16><0B17>
+nameutf8: କଖଗ
+namezone: xn--ohccd
+failzone1:
+failzone2:
+token: 36079747
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-6 Tamil
+namebase: <0B95><0B99><0B9A>
+nameutf8: கஙச
+namezone: xn--clcid
+failzone1:
+failzone2:
+token: 39841446
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-7 Telugu
+namebase: <0C15><0C16><0C17>
+nameutf8: à°•à°–à°—
+namezone: xn--zoccd
+failzone1:
+failzone2:
+token: 34438808
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-8 Kannada
+namebase: <0C95><0C96><0C97>
+nameutf8: ಕಖಗ
+namezone: xn--nsccd
+failzone1:
+failzone2:
+token: 42303465
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-9 Malayalam
+namebase: <0D15><0D16><0D17>
+nameutf8: à´•à´–à´—
+namezone: xn--bwccd
+failzone1:
+failzone2:
+token: 11813559
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-10 Sinhala
+namebase: <0D9A><0D9B><0D9C>
+nameutf8: කඛග
+namezone: xn--3zccd
+failzone1:
+failzone2:
+token: 89823209
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-11 Thai
+namebase: <0E01><0E02><0E03>
+nameutf8: à¸à¸‚ฃ
+namezone: xn--12ccd
+failzone1:
+failzone2:
+token: 94992842
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-12 Lao
+namebase: <0E81><0E82><0E84>
+nameutf8: àºàº‚ຄ
+namezone: xn--p6ccg
+failzone1:
+failzone2:
+token: 42424338
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-13 Tibetan
+namebase: <0F40><0F41><0F42>
+nameutf8: ཀà½à½‚
+namezone: xn--5cdcd
+failzone1:
+failzone2:
+token: 26962778
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-14 Myanmar
+namebase: <1000><1001><1002>
+nameutf8: ကá€á€‚
+namezone: xn--nidcd
+failzone1:
+failzone2:
+token: 09824611
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-15 Khmer
+namebase: <1780><1781><1782>
+nameutf8: កážáž‚
+namezone: xn--i2ecd
+failzone1:
+failzone2:
+token: 48071156
+passfail: pass
+type: toascii
+
+=====
+desc: 1-5-16 Mongolian
+namebase: <1820><1821><1822>
+nameutf8: á  á ¡á ¢
+namezone: xn--26ecd
+failzone1:
+failzone2:
+token: 40131572
+passfail: pass
+type: toascii
+
+=====
+desc: 1-6-1 Arabic
+namebase: <0627><0628><0629>
+nameutf8: ابة
+namezone: xn--mgbcd
+failzone1:
+failzone2:
+token: 06414817
+passfail: pass
+type: toascii
+
+=====
+desc: 1-6-2 Hebrew
+namebase: <05D0><05D1><05D2>
+nameutf8: ×בג
+namezone: xn--4dbcd
+failzone1:
+failzone2:
+token: 41996705
+passfail: pass
+type: toascii
+
+=====
+desc: 1-6-3 Syriac
+namebase: <0710><0711><0712>
+nameutf8: ÜÜ‘Ü’
+namezone: xn--9mbcd
+failzone1:
+failzone2:
+token: 77925080
+passfail: pass
+type: toascii
+
+=====
+desc: 1-7-1 ASCII and non-Latin
+namebase: abc<30AB><30AC><30AD>
+nameutf8: abcカガキ
+namezone: xn--abc-mj4bfg
+failzone1:
+failzone2:
+token: 14333380
+passfail: pass
+type: toascii
+
+=====
+desc: 1-7-2 Latin (non-ASCII) and non-Latin
+namebase: <00E5><00FE><00E7><30AB><30AC><30AD>
+nameutf8: åþçカガキ
+namezone: xn--5cae2e328wfag
+failzone1:
+failzone2:
+token: 00848299
+passfail: pass
+type: toascii
+
+=====
+desc: 2-3-1-1 If UseSTD3ASCIIRules: Includes ! before Nameprep
+namebase: <00ED><0021>dn
+nameutf8: í!dn
+namezone:
+failzone1: xn--!dn-qma
+failzone2:
+token: 89571181
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-1-2 If UseSTD3ASCIIRules: Includes $ before Nameprep
+namebase: <00ED><0024>dn
+nameutf8: í$dn
+namezone:
+failzone1: xn--$dn-qma
+failzone2:
+token: 06965937
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-1-3 If UseSTD3ASCIIRules: Includes + before Nameprep
+namebase: <00ED><002B>dn
+nameutf8: í+dn
+namezone:
+failzone1: xn--+dn-qma
+failzone2:
+token: 98967951
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-2-1 If UseSTD3ASCIIRules: Leading hyphen before Nameprep
+namebase: <002D><00ED>1dn
+nameutf8: -í1dn
+namezone:
+failzone1: xn---1dn-vpa
+failzone2:
+token: 65457100
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-2-2 If UseSTD3ASCIIRules: Trailing hyphen before Nameprep
+namebase: <00ED>1dn<002D>
+nameutf8: í1dn-
+namezone:
+failzone1: xn--1dn--upa
+failzone2:
+token: 85629714
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-3-1 If UseSTD3ASCIIRules: Gets a + after Nameprep
+namebase: <00ED><FF0B>dn
+nameutf8: í+dn
+namezone:
+failzone1: xn--dn-mja0331x
+failzone2:
+token: 95236620
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-3-2 If UseSTD3ASCIIRules: Gets a = after Nameprep
+namebase: <00ED><207C>dn
+nameutf8: íâ¼dn
+namezone:
+failzone1: xn--dn-mja0343a
+failzone2:
+token: 04960664
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-4-1 If UseSTD3ASCIIRules: Leading hyphen after Nameprep
+namebase: <FE63><00ED>2dn
+nameutf8: ﹣í2dn
+namezone:
+failzone1: xn--2dn-qma32863a
+failzone2: xn---2dn-vpa
+token: 53512069
+passfail: fail
+type: toascii
+
+=====
+desc: 2-3-4-2 If UseSTD3ASCIIRules: Trailing hyphen after Nameprep
+namebase: <00ED>2dn<FF0D>
+nameutf8: í2dnï¼
+namezone:
+failzone1: xn--2dn-qma79363a
+failzone2: xn--2dn--upa
+token: 39938653
+passfail: fail
+type: toascii
+
+=====
+desc: 2-4-1 All-ASCII check, Latin
+namebase: <00B9>1
+nameutf8: ¹1
+namezone: 11
+failzone1:
+failzone2:
+token: 43611374
+passfail: pass
+type: toascii
+
+=====
+desc: 2-4-2 All-ASCII check, symbol
+namebase: <2165>vi
+nameutf8: â…¥vi
+namezone: vivi
+failzone1:
+failzone2:
+token: 79939993
+passfail: pass
+type: toascii
+
+=====
+desc: 2-4-3 All-ASCII check, sharp S
+namebase: <00DF>ss
+nameutf8: ßss
+namezone: ssss
+failzone1:
+failzone2:
+token: 71292530
+passfail: pass
+type: toascii
+
+=====
+desc: 2-5-1 ACE prefix exists before Nameprep
+namebase: xn--<00EF>dn
+nameutf8: xn--ïdn
+namezone:
+failzone1: xn--xn--dn-sja
+failzone2: xn--dn-sja
+token: 32841515
+passfail: fail
+type: toascii
+
+=====
+desc: 2-5-2 ACE prefix appears after Nameprep
+namebase: <2179>n--<00E4>dn
+nameutf8: ⅹn--ädn
+namezone:
+failzone1: xn--xn--dn-uia
+failzone2: xn--dn-uia
+token: 52994631
+passfail: fail
+type: toascii
+
+=====
+desc: 2-8-1 Zero-length label after Nameprep
+namebase: <00AD>
+nameutf8:
+namezone:
+failzone1: xn--kba
+failzone2: xn--
+token: 18420037
+passfail: fail
+type: toascii
+
+=====
+desc: 2-9-1 U+3002 acts as a label separator
+namebase: 3002-test<3002><00ED>dn
+nameutf8: 3002-test。ídn
+namezone: 3002-test.xn--dn-mja
+failzone1: xn--3002-testdn-wcb2087m
+failzone2:
+token: 14217422
+passfail: pass
+type: toascii
+
+=====
+desc: 2-9-2 U+FF0E acts as a label separator
+namebase: ff0e-test<FF0E><00ED>dn
+nameutf8: ff0e-test.ídn
+namezone: ff0e-test.xn--dn-mja
+failzone1: xn--ff0e-testdn-wcb45865f
+failzone2:
+token: 94579179
+passfail: pass
+type: toascii
+
+=====
+desc: 2-9-3 U+FF61 acts as a label separator
+namebase: ff61-test<FF61><00ED>dn
+nameutf8: ff61-test。ídn
+namezone: ff61-test.xn--dn-mja
+failzone1: xn--ff61-testdn-wcb33975f
+failzone2:
+token: 27084042
+passfail: pass
+type: toascii
+
+=====
+desc: 3-2-1 Sharp S conversion; should display as m<00EB>ss <icu> ICU fixed the namezone token to to be m<00EB>ss since this is a tounicode without error.</icu>
+namebase: xn--m<00DF>-jma
+nameutf8: xn--mß-jma
+namezone: m<00EB>ss
+failzone1:
+failzone2:
+token: 85142449
+passfail: pass
+type: tounicode
+
+=====
+desc: 3-3-1 Old prefix; should not display as Unicode;<icu> ICU will treat this as ASCII. This sequence is not explicitly prohibited by the RFC.</icu>
+namebase: iesg--dn-mja
+nameutf8: iesg--dn-mja
+namezone:
+failzone1:
+failzone2:
+token: 35996358
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-3-2 Old prefix; should not display as Unicode;<icu> ICU will treat this as ASCII. This sequence is not explicitly prohibited by the RFC.</icu>
+namebase: iesgdn-mja
+nameutf8: iesgdn-mja
+namezone:
+failzone1:
+failzone2:
+token: 13693467
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-3-3 Old prefix; should not display as Unicode;<icu> ICU will treat this as ASCII. This sequence is not explicitly prohibited by the RFC.</icu>
+namebase: bq--dn-mja
+nameutf8: bq--dn-mja
+namezone:
+failzone1:
+failzone2:
+token: 77049719
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-5-1 Non-ASCII code point before the last hyphen;\
+ should not display as Unicode
+namebase: xn--d<00F1>-mja
+nameutf8: xn--dñ-mja
+namezone:
+failzone1:
+failzone2:
+token: 53043171
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-5-2 Non-alphanumeric code point after the last hyphen;\
+ should not display as Unicode
+namebase: xn--dn-mj+
+nameutf8: xn--dn-mj+
+namezone:
+failzone1:
+failzone2:
+token: 24626494
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-5-3 Ends in the middle of an encoded delta value;\
+ should not display as Unicode
+namebase: xn--dn-mj
+nameutf8: xn--dn-mj
+namezone:
+failzone1:
+failzone2:
+token: 30921132
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-6-1 Nameprep -- prohibited character U+E000;\
+ should not display as Unicode
+namebase: xn--e000dn-l704a
+nameutf8: xn--e000dn-l704a
+namezone:
+failzone1:
+failzone2:
+token: 02359753
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-6-2 If using UseSTD3ASCIIRules, Step 3a -- leading hyphen; should not display as Unicode
+namebase: xn---3dn-vpa
+nameutf8: xn---3dn-vpa
+namezone:
+failzone1:
+failzone2:
+token: 99795165
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-6-3 If using UseSTD3ASCIIRules, Step 3b -- trailing hyphen; should not display as Unicode
+namebase: xn--3dn--upa
+nameutf8: xn--3dn--upa
+namezone:
+failzone1:
+failzone2:
+token: 86051717
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-6-4 Step 5 -- prefix exists; should not display as Unicode
+namebase: xn--xn--dn-6va
+nameutf8: xn--xn--dn-6va
+namezone:
+failzone1:
+failzone2:
+token: 02506789
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-7-1 Punycode was not necessary; should not display as Unicode
+namebase: xn--idn-
+nameutf8: xn--idn-
+namezone:
+failzone1:
+failzone2:
+token: 21675918
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-7-2 String did not go through Nameprep;\
+ should not display as Unicode
+namebase: xn--dn-vga
+nameutf8: xn--dn-vga
+namezone:
+failzone1:
+failzone2:
+token: 18832454
+passfail: fail
+type: tounicode
+
+=====
+desc: 3-8-1 Should show the Unicode <00ED>4dn; <icu> Changed namebase and nameutf8 from xn--4dn-lla to xn--4dn-qma </icu>
+namebase: xn--4dn-qma
+nameutf8: xn--4dn-qma
+namezone: <00ED>4dn
+failzone1:
+failzone2:
+token: 23377435
+passfail: pass
+type: tounicode
+
+=====
+desc: 4-1-1-1 00adout<00AD><00ED>dn ->\
+ 00adout<00ED>dn
+namebase: 00adout<00AD><00ED>dn
+nameutf8: 00adout­ídn
+namezone: xn--00adoutdn-m5a
+failzone1: xn--00adoutdn-cna81e
+failzone2:
+token: 04299950
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-1-2 200dout<200D><00ED>dn ->\
+ 200dout<00ED>dn
+namebase: 200dout<200D><00ED>dn
+nameutf8: 200doutâ€Ã­dn
+namezone: xn--200doutdn-m5a
+failzone1: xn--200doutdn-m5a1678f
+failzone2:
+token: 00643243
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-1 simplecap<0044><00ED>dn ->\
+ simplecap<0064><00ED>dn
+namebase: simplecap<0044><00ED>dn
+nameutf8: simplecapDídn
+namezone: xn--simplecapddn-1fb
+failzone1:
+failzone2:
+token: 36249795
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-2 latintogreek<00B5><00ED>dn ->\
+ latintogreek<03BC><00ED>dn
+namebase: latintogreek<00B5><00ED>dn
+nameutf8: latintogreekµídn
+namezone: xn--latintogreekdn-cmb716i
+failzone1: xn--latintogreekdn-cxa01g
+failzone2:
+token: 03117407
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-3 latinext<00C7><00ED>dn ->\
+ latinext<00E7><00ED>dn
+namebase: latinext<00C7><00ED>dn
+nameutf8: latinextÇídn
+namezone: xn--latinextdn-v6a6e
+failzone1: xn--latinextdn-twa07b
+failzone2:
+token: 10243505
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-4 sharps<00DF><00ED>dn ->\
+ sharpsss<00ED>dn
+namebase: sharps<00DF><00ED>dn
+nameutf8: sharpsßídn
+namezone: xn--sharpsssdn-r8a
+failzone1: xn--sharpsdn-vya4l
+failzone2:
+token: 84921656
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-5 turkishi<0130><00ED>dn ->\
+ turkishi<0069><0307><00ED>dn
+namebase: turkishi<0130><00ED>dn
+nameutf8: turkishiİídn
+namezone: xn--turkishiidn-wcb701e
+failzone1: xn--turkishidn-r8a71f
+failzone2:
+token: 02381730
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-6 exptwo<0149><00ED>dn ->\
+ exptwo<02BC><006E><00ED>dn
+namebase: exptwo<0149><00ED>dn
+nameutf8: exptwoʼnídn
+namezone: xn--exptwondn-m5a502c
+failzone1: xn--exptwodn-h2a33g
+failzone2:
+token: 10575203
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-7 addfold<03D2><00ED>dn ->\
+ addfold<03C5><00ED>dn
+namebase: addfold<03D2><00ED>dn
+nameutf8: addfoldϒídn
+namezone: xn--addfolddn-m5a121f
+failzone1: xn--addfolddn-m5a462f
+failzone2:
+token: 31493044
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-8 expthree<1F52><00ED>dn ->\
+ expthree<03C5><0313><0300><00ED>dn
+namebase: expthree<1F52><00ED>dn
+nameutf8: expthreeὒídn
+namezone: xn--expthreedn-r8a5844g
+failzone1:
+failzone2:
+token: 68144622
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-9 nonbmp<10400><00ED>dn ->\
+ nonbmp<10428><00ED>dn
+namebase: nonbmp<10400><00ED>dn
+nameutf8: nonbmpÐCΤn
+namezone: xn--nonbmpdn-h2a34747d
+failzone1: xn--nonbmpdn-h2a37046d
+failzone2:
+token: 35393212
+passfail: pass
+type: toascii
+
+=====
+desc: 4-1-2-10 nonbmptoascii<1D400><00ED>dn ->\
+ nonbmptoasciia<00ED>dn
+namebase: nonbmptoascii<1D400><00ED>dn
+nameutf8: nonbmptoasciiÝCΤn
+namezone: xn--nonbmptoasciiadn-msb
+failzone1: xn--nonbmptoasciidn-hpb54112i
+failzone2:
+token: 78182502
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-1 regcomb<0065><0301><00ED>dn ->\
+ regcomb<00E9><00ED>dn
+namebase: regcomb<0065><0301><00ED>dn
+nameutf8: regcombeÌídn
+namezone: xn--regcombdn-h4a8b
+failzone1: xn--regcombedn-r8a794d
+failzone2:
+token: 87647045
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-2 combandcase<0045><0301><00ED>dn ->\
+ combandcase<00E9><00ED>dn
+namebase: combandcase<0045><0301><00ED>dn
+nameutf8: combandcaseEÌídn
+namezone: xn--combandcasedn-lhb4d
+failzone1: xn--combandcaseedn-cmb526f
+failzone2:
+token: 61741185
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-3 adjcomb<00BA><0301><00ED>dn ->\
+ adjcomb<00F3><00ED>dn
+namebase: adjcomb<00BA><0301><00ED>dn
+nameutf8: adjcombºÌídn
+namezone: xn--adjcombdn-m5a9d
+failzone1: xn--adjcombdn-1qa57cp3r
+failzone2:
+token: 14828402
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-4 extcombo<0063><0301><00ED>dn ->\
+ extcombo<0107><00ED>dn
+namebase: extcombo<0063><0301><00ED>dn
+nameutf8: extcombocÌídn
+namezone: xn--extcombodn-r8a52a
+failzone1: xn--extcombocdn-wcb920e
+failzone2:
+token: 26651277
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-5 doublediac1<0075><0308><0301><00ED>dn ->\
+ doublediac2<01D8><00ED>dn
+namebase: doublediac1<0075><0308><0301><00ED>dn
+nameutf8: doublediac1üÌídn
+namezone: xn--doublediac1dn-6ib836a
+failzone1: xn--doublediac1udn-cmb526fnd
+failzone2:
+token: 30175595
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-1-6 doublediac2<0075><0301><0308><00ED>dn ->\
+ doublediac2<01D8><00ED>dn
+namebase: doublediac2<0075><0301><0308><00ED>dn
+nameutf8: doublediac2uÌ̈ídn
+namezone: xn--doublediac2dn-6ib8qs73a
+failzone1: xn--doublediac2udn-cmb526fod
+failzone2:
+token: 35606109
+passfail: pass
+type: toascii
+
+=====
+desc: 4-2-2-1 newnorm<2F874><00ED>dn ->\
+ newnorm<5F33><00ED>dn should not become <5F53>
+namebase: newnorm<2F874><00ED>dn
+nameutf8: newnorm௡ՃΤn
+namezone: xn--newnormdn-m5a7856x
+failzone1: xn--newnormdn-m5a9396x
+failzone2: xn--newnormdn-m5a9968x
+token: 61901810
+passfail: pass
+type: toascii
+
+=====
+desc: 4-3-1 If UseSTD3ASCIIRules: Spacing; <icu> \u0020 is prohibited from the output only when UseSTD3ASCIIRules is set </icu>
+namebase: <2000><00ED>dn
+nameutf8:  ídn
+namezone:
+failzone1: xn--dn-mja3392a
+failzone2:
+token: 13226878
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-2 Control
+namebase: <06DD><00ED>dn-2
+nameutf8: Ûídn-2
+namezone:
+failzone1: xn--dn-2-upa332g
+failzone2:
+token: 09873312
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-3 Private use
+namebase: <E005><00ED>dn
+nameutf8: ídn
+namezone:
+failzone1: xn--dn-mja1659t
+failzone2:
+token: 03937183
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-4 Private use, non-BMP
+namebase: <F0005><00ED>dn
+nameutf8: 㰀ƃΤn
+namezone:
+failzone1: xn--dn-mja7922x
+failzone2:
+token: 78707823
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-5 Non-character
+namebase: <FDDD><00ED>dn
+nameutf8: ï·Ã­dn
+namezone:
+failzone1: xn--dn-mja1210x
+failzone2:
+token: 44432178
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-6 Non-character, non-BMP
+namebase: <1FFFE><00ED>dn
+nameutf8: ߿߃Τn
+namezone:
+failzone1: xn--dn-mja7922x
+failzone2:
+token: 69142686
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-7 Surrogate points
+namebase: <D805><00ED>dn
+nameutf8: �ídn
+namezone:
+failzone1: xn--dn-mja7922x
+failzone2:
+token: 05424571
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-8 Inappropriate for plain
+namebase: <FFFA><00ED>dn
+nameutf8: ídn
+namezone:
+failzone1: xn--dn-mja5822x
+failzone2:
+token: 44825824
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-9 Inappropriate for canonical
+namebase: <2FF5><00ED>dn
+nameutf8: ⿵ídn
+namezone:
+failzone1: xn--dn-mja3729b
+failzone2:
+token: 50926136
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-10 Change display simple
+namebase: <206A><00ED>dn
+nameutf8: âªÃ­dn
+namezone:
+failzone1: xn--dn-mja7533a
+failzone2:
+token: 57953313
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-11 Change display RTL
+namebase: <200F><00ED>dn
+nameutf8: â€Ã­dn
+namezone:
+failzone1: xn--dn-mja3992a
+failzone2:
+token: 30705279
+passfail: fail
+type: toascii
+
+=====
+desc: 4-3-12 Language tags
+namebase: <E0001><E0045><E004E><0068><0069>idn
+nameutf8: 㠀³ƳϨiidn
+namezone:
+failzone1: xn--hiidn-km43aaa
+failzone2:
+token: 44598039
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-1 Arabic RandALCat-LCat-RandALCat
+namebase: <0628><006F><0638>
+nameutf8: بoظ
+namezone:
+failzone1: xn--o-0mc3c
+failzone2:
+token: 78233053
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-2 Arabic RandALCat-RandALCat-other
+namebase: <0628><0638><006F>
+nameutf8: بظo
+namezone:
+failzone1: xn--o-0mc2c
+failzone2:
+token: 95299621
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-3 Arabic other-RandALCat-RandALCat
+namebase: <006F><0628><0638>
+nameutf8: oبظ
+namezone:
+failzone1: xn--o-1mc2c
+failzone2:
+token: 79807176
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-4 Hebrew RandALCat-LCat-RandALCat
+namebase: <05D1><006F><05E1>
+nameutf8: בoס
+namezone:
+failzone1: xn--o-1hc3c
+failzone2:
+token: 32229450
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-5 Hebrew RandALCat-RandALCat-other
+namebase: <05D1><05E1><006F>
+nameutf8: בסo
+namezone:
+failzone1: xn--o-1hc2c
+failzone2:
+token: 53213348
+passfail: fail
+type: toascii
+
+=====
+desc: 4-4-6 Hebrew other-RandALCat-RandALCat
+namebase: <006F><05D1><05E1>
+nameutf8: oבס
+namezone:
+failzone1: xn--o-2hc2c
+failzone2:
+token: 90835860
+passfail: fail
+type: toascii
+
+=====
+desc: 5-1-1 Unassigned in BMP; zone editors should reject
+namebase: <0237><00ED>dn
+nameutf8: ȷídn
+namezone: xn--dn-mja33k
+failzone1:
+failzone2:
+token: 83079602
+passfail: pass
+type: toascii
+
+=====
+desc: 5-1-2 Unassinged outside BMP; zone editors should reject
+namebase: <10205><00ED>dn
+nameutf8: ЈƃΤn
+namezone: xn--dn-mja7734x
+failzone1: xn--dn-mja7922x
+failzone2:
+token: 03682900
+passfail: pass
+type: toascii
+
+=====
+desc: 5-2-1 Newly assigned in BMP; zone editors should reject
+namebase: <0234><00ED>dn
+nameutf8: ȴídn
+namezone: xn--dn-mja12k
+failzone1:
+failzone2:
+token: 96637501
+passfail: pass
+type: toascii
+
+=====
+desc: 5-2-2 Newly assigned outside of BMP; zone editors should reject
+namebase: <10005><00ED>dn
+nameutf8: ЀƃΤn
+namezone: xn--dn-mja9232x
+failzone1: xn--dn-mja7922x
+failzone2:
+token: 95537699
+passfail: pass
+type: toascii \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/test/testdata/idna_rules.txt b/Build/source/libs/icu-xetex/test/testdata/idna_rules.txt
index ebfd6e3be55..7ef6404e951 100644
--- a/Build/source/libs/icu-xetex/test/testdata/idna_rules.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/idna_rules.txt
@@ -1,8 +1,8 @@
-// Copyright (C) 2003, International Business Machines
+// Copyright (C) 2003-2005, International Business Machines
// WARNING: This file is machine generated by debug\genidn tool. Please DO NOT edit.
-idna_rules{
+idna_rules:table(nofallback){
UnassignedSet{"[ \\u0221 \\u0234-\\u024F \\u02AE-\\u02AF \\u02EF-\\u02FF \\u0350-\\u035F \\u0370-\\u0373 "
"\\u0376-\\u0379 \\u037B-\\u037D \\u037F-\\u0383 \\u038B \\u038D \\u03A2 \\u03CF "
diff --git a/Build/source/libs/icu-xetex/test/testdata/iscii.bin b/Build/source/libs/icu-xetex/test/testdata/iscii.bin
index 2c4944c1c16..88051f09455 100644
--- a/Build/source/libs/icu-xetex/test/testdata/iscii.bin
+++ b/Build/source/libs/icu-xetex/test/testdata/iscii.bin
@@ -1,19 +1,19 @@
-//*******************************************************************************
-//*
-//*Copyright(C)1998-2000InternationalBusinessMachines
-//*Corporationandothers.AllRightsReserved.
-//*
-//*******************************************************************************
-iscii{
- str{
- " ï4ï3ÍÝï4ï3Æá×è³å .³á .¬³ .¤ÅèÍÍÆ .³á ¤ÆÝ×ÚÏ 1990 ³ ³¢ÈèÍÞ½Ï-ÈèÏÊ¢ÅÛ ×Þ¸ÆÚ"
- "ÈèÏÁÚÑÜ .³á .ÍåµÄÚÆ .³á .ÉÑ×èÔÏÞÈ .ÔÛÕèÔ .Ìᢠ.×ÚÑÚÆÚ .2200 ¤ÏÊ ÏÝÈÍá ÌÞÑèÍ"
- "³Ü .4Ô×èÂÝ°¢ .4³Ú .4¨ÂèÈÚÄÆ .4ØåµÚ, .3ºÊ³Û .3³¢ÈèÍÞ½Ï .3³Ú .3³ÝÑ .3ÍåµÄÚÆ .3¦××á"
- "³ØÛ ./ºèÍÚÄÚ ./ØåµÚê ./¤ÆÝ×¢ÅÚÆ ./³Ü ./¸ÏÌ ×ÜÌÚ°¢ ÈÏ ÈØÝ¢¸Æá ³á ÑÛ¬ ³¢ÈèÍÞ½Ï"
- "¬³ ./¥Ì ./ºÏÞÏ ./ºâ×Ú ÊÆ µÍÚ Øâê ËÚÏ ÌᢠËÜ, ´Ú×³Ï ÌæºÞÄÚ ×ϳÚÏ"
- "Æá, ³¢ÈèÍÞ½Ï ³á ÈèÏÍåµ ÈÏ ºÊÏÄ×è ¬¿é ѵÚÍÜ Øâ, ³Û¢ÂÝ ¦×³á ×ÏȽ Äæ¿é"
- "ѵÚÆá .2³á .2ÑÛ¬ .2³èÍÚ .2×ÈÚ½ .2ÏÚ×èÂÚ .2¨ÈÑÊèÅ .Øâ, .¤ÃÔÚ .ÔÛÕèÔ .Ìᢠ.³¢ÈèÍÞ½Ï .³Ü"
- "×ÉÑÂÚ .3Ô .3ÔÛÉÑÂÚ .3×á .3×ʳ .3Ñá .3³Ï .3³èÍÚ .3ØÌ .3¦×³Ú .3ÍݳèÂÛÈÞÏèÁ .2ÔÛ×èÂÚÏ "
- "¤Èá³èÖÛ ³Ï ׳ᢵá ? "
- }
-} \ No newline at end of file
+//*******************************************************************************
+//*
+//*Copyright (C)1998-2006 International Business Machines
+//*Corporation and others.All Rights Reserved.
+//*
+//*******************************************************************************
+iscii:table(nofallback){
+ str{
+ " ï4ï3ÍÝï4ï3Æá×è³å .³á .¬³ .¤ÅèÍÍÆ .³á ¤ÆÝ×ÚÏ 1990 ³ ³¢ÈèÍÞ½Ï-ÈèÏÊ¢ÅÛ ×Þ¸ÆÚ"
+ "ÈèÏÁÚÑÜ .³á .ÍåµÄÚÆ .³á .ÉÑ×èÔÏÞÈ .ÔÛÕèÔ .Ìᢠ.×ÚÑÚÆÚ .2200 ¤ÏÊ ÏÝÈÍá ÌÞÑèÍ"
+ "³Ü .4Ô×èÂÝ°¢ .4³Ú .4¨ÂèÈÚÄÆ .4ØåµÚ, .3ºÊ³Û .3³¢ÈèÍÞ½Ï .3³Ú .3³ÝÑ .3ÍåµÄÚÆ .3¦××á"
+ "³ØÛ ./ºèÍÚÄÚ ./ØåµÚê ./¤ÆÝ×¢ÅÚÆ ./³Ü ./¸ÏÌ ×ÜÌÚ°¢ ÈÏ ÈØÝ¢¸Æá ³á ÑÛ¬ ³¢ÈèÍÞ½Ï"
+ "¬³ ./¥Ì ./ºÏÞÏ ./ºâ×Ú ÊÆ µÍÚ Øâê ËÚÏ ÌᢠËÜ, ´Ú×³Ï ÌæºÞÄÚ ×ϳÚÏ"
+ "Æá, ³¢ÈèÍÞ½Ï ³á ÈèÏÍåµ ÈÏ ºÊÏÄ×è ¬¿é ѵÚÍÜ Øâ, ³Û¢ÂÝ ¦×³á ×ÏȽ Äæ¿é"
+ "ѵÚÆá .2³á .2ÑÛ¬ .2³èÍÚ .2×ÈÚ½ .2ÏÚ×èÂÚ .2¨ÈÑÊèÅ .Øâ, .¤ÃÔÚ .ÔÛÕèÔ .Ìᢠ.³¢ÈèÍÞ½Ï .³Ü"
+ "×ÉÑÂÚ .3Ô .3ÔÛÉÑÂÚ .3×á .3×ʳ .3Ñá .3³Ï .3³èÍÚ .3ØÌ .3¦×³Ú .3ÍݳèÂÛÈÞÏèÁ .2ÔÛ×èÂÚÏ "
+ "¤Èá³èÖÛ ³Ï ׳ᢵá ? "
+ }
+}
diff --git a/Build/source/libs/icu-xetex/test/testdata/letest.xml b/Build/source/libs/icu-xetex/test/testdata/letest.xml
new file mode 100644
index 00000000000..e3de0f0897e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/testdata/letest.xml
@@ -0,0 +1,1048 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ Copyright (c) 1999-2006 International Business Machines
+ Corporation and others. All rights reserved.
+
+ WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT
+ UNLESS YOU REALLY KNOW WHAT YOU'RE DOING.
+
+ file name: letest.xml
+ generated on: 07/27/2006 04:42:26 PM Hawaiian Standard Time
+ generated by: gendata.cpp
+-->
+
+<layout-tests>
+ <test-case id="Ghita" script="deva">
+ <test-font name="raghu.ttf" version="Version 0.99" checksum="0x541C94C7"/>
+
+ <test-text>शà¥à¤°à¥€à¤®à¤¦à¥ भगवदà¥à¤—ीता अधà¥à¤¯à¤¾à¤¯ अरà¥à¤œà¥à¤¨ विषाद योग धृतराषà¥à¤Ÿà¥à¤° उवाचृ धरà¥à¤®à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¥‡ कà¥à¤°à¥à¤•à¥à¤·à¥‡à¤¤à¥à¤°à¥‡ समवेता यà¥à¤¯à¥à¤¤à¥à¤¸à¤µà¤ƒ मामकाः पाणà¥à¤¡à¤µà¤¾à¤¶à¥à¤šà¥ˆà¤µ किमकà¥à¤°à¥à¤µà¤¤ संजव</test-text>
+
+ <result-glyphs>
+ 0x0000012E, 0x0000FFFF, 0x0000FFFF, 0x00000222, 0x00000098, 0x0000026E, 0x0000FFFF, 0x00000003,
+ 0x00000097, 0x00000082, 0x0000009D, 0x000001A5, 0x0000FFFF, 0x0000FFFF, 0x00000222, 0x0000008F,
+ 0x00000221, 0x00000003, 0x0000005C, 0x000000DA, 0x0000FFFF, 0x00000099, 0x00000221, 0x00000099,
+ 0x00000003, 0x0000005C, 0x00000087, 0x000001D5, 0x0000005B, 0x0000FFFF, 0x00000093, 0x00000003,
+ 0x000001D2, 0x0000009D, 0x0000009F, 0x00000221, 0x00000091, 0x00000003, 0x00000099, 0x0000022A,
+ 0x00000082, 0x00000003, 0x00000092, 0x000001D9, 0x0000008F, 0x0000009A, 0x00000221, 0x000001B6,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000060, 0x0000009D, 0x00000221,
+ 0x00000085, 0x000001D9, 0x00000003, 0x00000092, 0x00000098, 0x0000005B, 0x0000FFFF, 0x000000A2,
+ 0x0000FFFF, 0x0000FFFF, 0x0000022F, 0x0000011F, 0x0000FFFF, 0x0000FFFF, 0x0000022F, 0x00000003,
+ 0x00000080, 0x000001D5, 0x0000009A, 0x000001FD, 0x000000A2, 0x0000FFFF, 0x0000FFFF, 0x0000022F,
+ 0x0000011F, 0x0000FFFF, 0x0000FFFF, 0x0000022F, 0x00000003, 0x000000A0, 0x00000098, 0x0000009D,
+ 0x0000022F, 0x0000008F, 0x00000221, 0x00000003, 0x00000099, 0x000001D5, 0x00000099, 0x000001D5,
+ 0x000000D7, 0x0000FFFF, 0x000000A0, 0x0000009D, 0x0000022C, 0x00000003, 0x00000098, 0x00000221,
+ 0x00000098, 0x00000080, 0x00000221, 0x0000022C, 0x00000003, 0x00000094, 0x00000221, 0x000000D6,
+ 0x0000FFFF, 0x0000008C, 0x0000009D, 0x00000221, 0x000001B1, 0x0000FFFF, 0x0000FFFF, 0x00000230,
+ 0x0000009D, 0x00000003, 0x000001D1, 0x00000080, 0x00000098, 0x00000080, 0x000001D5, 0x0000009D,
+ 0x0000005B, 0x0000FFFF, 0x0000008F, 0x00000003, 0x000000A0, 0x00000232, 0x00000087, 0x0000009D
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000002, 0x00000001, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017,
+ 0x00000018, 0x00000019, 0x0000001C, 0x0000001D, 0x0000001A, 0x0000001B, 0x0000001E, 0x0000001F,
+ 0x00000021, 0x00000020, 0x00000022, 0x00000023, 0x00000024, 0x00000025, 0x00000026, 0x00000027,
+ 0x00000028, 0x00000029, 0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F,
+ 0x00000030, 0x00000031, 0x00000033, 0x00000032, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
+ 0x00000038, 0x00000039, 0x0000003A, 0x0000003B, 0x0000003E, 0x0000003C, 0x0000003D, 0x0000003F,
+ 0x00000040, 0x00000041, 0x00000042, 0x00000043, 0x00000045, 0x00000044, 0x00000046, 0x00000047,
+ 0x00000048, 0x00000049, 0x0000004A, 0x0000004B, 0x0000004C, 0x0000004D, 0x0000004E, 0x0000004F,
+ 0x00000050, 0x00000052, 0x00000051, 0x00000053, 0x00000054, 0x00000055, 0x00000056, 0x00000057,
+ 0x00000058, 0x00000059, 0x0000005A, 0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F,
+ 0x00000060, 0x00000061, 0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067,
+ 0x00000068, 0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F,
+ 0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076, 0x00000077,
+ 0x00000078, 0x00000079, 0x0000007B, 0x0000007A, 0x0000007C, 0x0000007D, 0x0000007E, 0x00000081,
+ 0x0000007F, 0x00000080, 0x00000082, 0x00000083, 0x00000084, 0x00000085, 0x00000086, 0x00000087
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 9.468750, 0.000000, 9.468750, 0.000000, 9.468750, 0.000000,
+ 13.125000, 0.000000, 22.593750, 0.000000, 30.562500, 0.000000, 30.562500, 0.000000,
+ 36.562500, 0.000000, 46.031250, 0.000000, 55.500000, 0.000000, 63.468750, 0.000000,
+ 71.437500, 0.000000, 71.437500, 0.000000, 71.437500, 0.000000, 75.093750, 0.000000,
+ 83.062500, 0.000000, 86.718750, 0.000000, 92.718750, 0.000000, 102.656250, 0.000000,
+ 109.921875, 0.000000, 109.921875, 0.000000, 119.390625, 0.000000, 123.046875, 0.000000,
+ 132.515625, 0.000000, 138.515625, 0.000000, 148.453125, 0.000000, 158.203125, -0.011719,
+ 158.203125, 0.263672, 157.921875, 0.000000, 157.921875, 0.000000, 167.390625, 0.000000,
+ 173.390625, 0.000000, 177.750000, 0.000000, 185.718750, 0.000000, 193.687500, 0.000000,
+ 197.343750, 0.000000, 205.312500, 0.000000, 211.312500, 0.000000, 220.781250, 0.000000,
+ 224.859375, 0.000000, 234.328125, 0.000000, 240.328125, 0.000000, 250.224609, -0.011719,
+ 249.796875, 0.000000, 257.765625, 0.000000, 264.281250, 0.000000, 267.937500, 0.000000,
+ 276.281250, 0.000000, 276.281250, 0.000000, 276.281250, 0.000000, 276.281250, 0.000000,
+ 276.281250, 0.000000, 282.281250, 0.000000, 290.250000, 0.000000, 298.218750, 0.000000,
+ 301.875000, 0.000000, 311.859375, -0.011719, 311.343750, 0.000000, 317.343750, 0.000000,
+ 326.812500, 0.000000, 336.644531, 0.263672, 336.281250, 0.000000, 336.281250, 0.000000,
+ 347.156250, 0.000000, 347.156250, 0.000000, 346.353516, 0.275391, 347.156250, 0.000000,
+ 355.125000, 0.000000, 355.125000, 0.000000, 355.263672, 0.263672, 355.125000, 0.000000,
+ 361.125000, 0.000000, 368.824219, -0.011719, 372.000000, 0.000000, 378.515625, 0.000000,
+ 379.875000, 0.000000, 390.750000, 0.000000, 390.750000, 0.000000, 389.947266, 0.275391,
+ 390.750000, 0.000000, 398.718750, 0.000000, 398.718750, 0.000000, 398.857422, 0.263672,
+ 398.718750, 0.000000, 404.718750, 0.000000, 414.187500, 0.000000, 423.656250, 0.000000,
+ 430.769531, 0.263672, 431.625000, 0.000000, 439.593750, 0.000000, 443.250000, 0.000000,
+ 449.250000, 0.000000, 458.859375, -0.011719, 458.718750, 0.000000, 468.328125, -0.011719,
+ 468.187500, 0.000000, 474.117188, 0.000000, 474.117188, 0.000000, 483.585938, 0.000000,
+ 491.554688, 0.000000, 495.914063, 0.000000, 501.914063, 0.000000, 511.382813, 0.000000,
+ 515.039063, 0.000000, 524.507813, 0.000000, 535.382813, 0.000000, 539.039063, 0.000000,
+ 543.398438, 0.000000, 549.398438, 0.000000, 557.367188, 0.000000, 561.023438, 0.000000,
+ 568.289063, 0.000000, 568.289063, 0.000000, 576.257813, 0.000000, 584.226563, 0.000000,
+ 587.882813, 0.000000, 598.757813, 0.000000, 598.757813, 0.000000, 598.628906, 0.263672,
+ 598.757813, 0.000000, 606.726563, 0.000000, 612.726563, 0.000000, 617.085938, 0.000000,
+ 627.960938, 0.000000, 637.429688, 0.000000, 645.128906, -0.011719, 648.304688, 0.000000,
+ 656.566406, 0.263672, 656.273438, 0.000000, 656.273438, 0.000000, 664.242188, 0.000000,
+ 670.242188, 0.000000, 679.429688, 0.966797, 679.710938, 0.000000, 689.179688, 0.000000,
+ 697.148438, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Arabic" script="arab">
+ <test-font name="CODE2000.TTF" version="Version 1.15" checksum="0x1B2AD10D"/>
+
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+
+ <result-glyphs>
+ 0x0000C6ED, 0x0000C74C, 0x0000C706, 0x0000C746, 0x0000C707, 0x0000C719, 0x0000C738, 0x0000C6E6,
+ 0x00000003, 0x0000C72A, 0x0000C706, 0x0000C6E7, 0x0000C6FD, 0x0000C73D, 0x0000C738, 0x0000C6E6,
+ 0x00000003, 0x0000C723, 0x0000C74D, 0x0000C73D, 0x0000C6F8, 0x00000003, 0x0000C749, 0x0000C739,
+ 0x0000C724, 0x00000003, 0x0000C74A, 0x0000C747, 0x0000C6F1, 0x0000C6FD, 0x0000C74C, 0x00000003,
+ 0x0000C703, 0x0000C6FC, 0x0000C6E6, 0x0000C746, 0x00000003, 0x0000C707, 0x0000C74D, 0x0000C72D,
+ 0x0000C711, 0x0000C6F0, 0x00000003, 0x0000C73A, 0x0000C6E7, 0x0000C721, 0x0000C740, 0x00000003,
+ 0x0000C703, 0x0000C6F8, 0x0000C747, 0x0000C74C, 0x00000003, 0x0000C73B, 0x0000C738, 0x0000C746,
+ 0x00000003, 0x00000534, 0x0000C72A, 0x0000C706, 0x0000C6E7, 0x0000C6FD, 0x0000C73D, 0x0000C739,
+ 0x0000C738, 0x00000003, 0x0000C73A, 0x0000C6E7, 0x0000C730, 0x0000C706, 0x0000FFFE, 0x0000C750,
+ 0x0000C6E6, 0x00000003, 0x0000C742, 0x0000C705, 0x0000C744, 0x00000003, 0x0000C713, 0x0000C74D,
+ 0x0000C715, 0x0000C701, 0x0000C6F0, 0x0000C746, 0x00000003, 0x0000C707, 0x0000C74D, 0x0000C72D,
+ 0x0000C711, 0x0000C6F1, 0x0000C739, 0x0000C738, 0x00000003, 0x0000C6ED, 0x0000C73D, 0x0000C721,
+ 0x0000C740, 0x0000FFFE, 0x0000C750, 0x0000C6E6, 0x00000003, 0x0000C6EE, 0x0000C6E7, 0x0000053C,
+ 0x0000C73C, 0x00000003, 0x0000C732, 0x0000C6E7, 0x0000C741, 0x0000C744, 0x00000003, 0x0000C73E,
+ 0x0000C6E7, 0x0000C734, 0x00000003, 0x00000534, 0x00000005, 0x0000C702, 0x0000C747, 0x0000C735,
+ 0x00000561, 0x0000C740, 0x0000C747, 0x0000C74C, 0x00000005, 0x00000003, 0x0000C722, 0x0000C6E6,
+ 0x0000C707, 0x0000C6F1, 0x0000C700, 0x0000C6E6, 0x00000003, 0x0000C737, 0x0000C6EB, 0x0000C730,
+ 0x0000C746, 0x00000003, 0x00000011, 0x0000C6E7, 0x0000C745, 0x0000C741, 0x0000C73C, 0x00000003,
+ 0x0000C703, 0x0000C6FC, 0x0000C6E6, 0x0000C746, 0x00000003, 0x0000C737, 0x0000C735, 0x0000C738,
+ 0x00000003, 0x0000C6E7, 0x0000C741, 0x0000C74D, 0x0000C725, 0x0000C73C, 0x00000003, 0x0000C6E7,
+ 0x0000C73D, 0x0000C730, 0x0000C706, 0x00000003, 0x0000C74B, 0x0000C71D, 0x0000C725, 0x00000560,
+ 0x0000C6F0, 0x00000003, 0x0000C73E, 0x0000C6DC, 0x00000003, 0x0000C703, 0x0000C725, 0x0000C6EA,
+ 0x00000003, 0x0000C748, 0x0000C707, 0x0000C700, 0x0000FFFE, 0x0000C750, 0x0000C6E6, 0x00000003,
+ 0x0000C72A, 0x0000C706, 0x0000C6E7, 0x0000C6FD, 0x0000C73D, 0x0000C738, 0x0000C6E6, 0x0000C746,
+ 0x00000003, 0x0000C72A, 0x0000C707, 0x0000C6FC, 0x0000FFFE, 0x0000C750, 0x0000C6E6, 0x00000003,
+ 0x0000C73F, 0x0000C74C, 0x0000C709, 0x0000C701, 0x0000C6F1, 0x0000C6EA, 0x00000003, 0x0000C73A,
+ 0x0000C747, 0x0000C731, 0x0000C6F0, 0x0000C746, 0x00000003, 0x00000534, 0x0000C73A, 0x0000C6E7,
+ 0x0000C730, 0x0000C706, 0x0000FFFE, 0x0000C750, 0x0000C6E6, 0x00000003, 0x0000C723, 0x0000C73C,
+ 0x00000003, 0x0000C71B, 0x0000C731, 0x0000C72C, 0x00000003, 0x0000C6E9, 0x0000C74D, 0x0000C70C,
+ 0x0000C6E6, 0x0000C747, 0x0000C6FD, 0x0000C738, 0x0000C6E6, 0x00000003, 0x0000C737, 0x0000C73C,
+ 0x0000C6E7, 0x0000C725, 0x0000C6F1, 0x0000C6F0, 0x00000003, 0x00000534, 0x0000C6E7, 0x0000055C,
+ 0x0000C70C, 0x0000C6E7, 0x0000C70C, 0x0000C6DC
+ </result-glyphs>
+
+ <result-indices>
+ 0x000000FB, 0x000000FA, 0x000000F9, 0x000000F8, 0x000000F7, 0x000000F6, 0x000000F5, 0x000000F4,
+ 0x000000F3, 0x000000F2, 0x000000F1, 0x000000F0, 0x000000EF, 0x000000EE, 0x000000ED, 0x000000EC,
+ 0x000000EB, 0x000000EA, 0x000000E9, 0x000000E8, 0x000000E7, 0x000000E6, 0x000000E5, 0x000000E4,
+ 0x000000E3, 0x000000E2, 0x000000E1, 0x000000E0, 0x000000DF, 0x000000DE, 0x000000DD, 0x000000DC,
+ 0x000000DB, 0x000000DA, 0x000000D9, 0x000000D8, 0x000000D7, 0x000000D6, 0x000000D5, 0x000000D4,
+ 0x000000D3, 0x000000D2, 0x000000D1, 0x000000D0, 0x000000CF, 0x000000CE, 0x000000CD, 0x000000CC,
+ 0x000000CB, 0x000000CA, 0x000000C9, 0x000000C8, 0x000000C7, 0x000000C6, 0x000000C5, 0x000000C4,
+ 0x000000C3, 0x000000C2, 0x000000C1, 0x000000C0, 0x000000BF, 0x000000BE, 0x000000BD, 0x000000BC,
+ 0x000000BB, 0x000000BA, 0x000000B9, 0x000000B8, 0x000000B7, 0x000000B6, 0x000000B5, 0x000000B4,
+ 0x000000B3, 0x000000B2, 0x000000B1, 0x000000B0, 0x000000AF, 0x000000AE, 0x000000AD, 0x000000AC,
+ 0x000000AB, 0x000000AA, 0x000000A9, 0x000000A8, 0x000000A7, 0x000000A6, 0x000000A5, 0x000000A4,
+ 0x000000A3, 0x000000A2, 0x000000A1, 0x000000A0, 0x0000009F, 0x0000009E, 0x0000009D, 0x0000009C,
+ 0x0000009B, 0x0000009A, 0x00000099, 0x00000098, 0x00000097, 0x00000096, 0x00000095, 0x00000094,
+ 0x00000093, 0x00000092, 0x00000091, 0x00000090, 0x0000008F, 0x0000008E, 0x0000008D, 0x0000008C,
+ 0x0000008B, 0x0000008A, 0x00000089, 0x00000088, 0x00000087, 0x00000086, 0x00000085, 0x00000084,
+ 0x00000083, 0x00000082, 0x00000081, 0x00000080, 0x0000007F, 0x0000007E, 0x0000007D, 0x0000007C,
+ 0x0000007B, 0x0000007A, 0x00000079, 0x00000078, 0x00000077, 0x00000076, 0x00000075, 0x00000074,
+ 0x00000073, 0x00000072, 0x00000071, 0x00000070, 0x0000006F, 0x0000006E, 0x0000006D, 0x0000006C,
+ 0x0000006B, 0x0000006A, 0x00000069, 0x00000068, 0x00000067, 0x00000066, 0x00000065, 0x00000064,
+ 0x00000063, 0x00000062, 0x00000061, 0x00000060, 0x0000005F, 0x0000005E, 0x0000005D, 0x0000005C,
+ 0x0000005B, 0x0000005A, 0x00000059, 0x00000058, 0x00000057, 0x00000056, 0x00000055, 0x00000054,
+ 0x00000053, 0x00000052, 0x00000051, 0x00000050, 0x0000004F, 0x0000004E, 0x0000004D, 0x0000004C,
+ 0x0000004B, 0x0000004A, 0x00000049, 0x00000048, 0x00000047, 0x00000046, 0x00000045, 0x00000044,
+ 0x00000043, 0x00000042, 0x00000041, 0x00000040, 0x0000003F, 0x0000003E, 0x0000003D, 0x0000003C,
+ 0x0000003B, 0x0000003A, 0x00000039, 0x00000038, 0x00000037, 0x00000036, 0x00000035, 0x00000034,
+ 0x00000033, 0x00000032, 0x00000031, 0x00000030, 0x0000002F, 0x0000002E, 0x0000002D, 0x0000002C,
+ 0x0000002B, 0x0000002A, 0x00000029, 0x00000028, 0x00000027, 0x00000026, 0x00000025, 0x00000024,
+ 0x00000023, 0x00000022, 0x00000021, 0x00000020, 0x0000001F, 0x0000001E, 0x0000001D, 0x0000001C,
+ 0x0000001B, 0x0000001A, 0x00000019, 0x00000018, 0x00000017, 0x00000016, 0x00000015, 0x00000014,
+ 0x00000013, 0x00000012, 0x00000011, 0x00000010, 0x0000000F, 0x0000000E, 0x0000000D, 0x0000000C,
+ 0x0000000B, 0x0000000A, 0x00000009, 0x00000008, 0x00000007, 0x00000006, 0x00000005, 0x00000004,
+ 0x00000003, 0x00000002, 0x00000001, 0x00000000
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 4.007813, 0.000000, 8.226563, 0.000000, 12.679688, 0.000000,
+ 18.679688, 0.000000, 23.132813, 0.000000, 31.289063, 0.000000, 34.312500, 0.000000,
+ 36.375000, 0.000000, 41.062500, 0.000000, 50.296875, 0.000000, 54.750000, 0.000000,
+ 56.859375, 0.000000, 62.367188, 0.000000, 66.632813, 0.000000, 69.656250, 0.000000,
+ 71.718750, 0.000000, 76.406250, 0.000000, 81.421875, 0.000000, 85.664063, 0.000000,
+ 89.929688, 0.000000, 95.742188, 0.000000, 100.429688, 0.000000, 108.796875, 0.000000,
+ 112.171875, 0.000000, 115.734375, 0.000000, 120.421875, 0.000000, 128.765625, 0.000000,
+ 134.765625, 0.000000, 139.007813, 0.000000, 144.515625, 0.000000, 148.734375, 0.000000,
+ 153.421875, 0.000000, 157.359375, 0.000000, 163.171875, 0.000000, 165.234375, 0.000000,
+ 171.234375, 0.000000, 175.921875, 0.000000, 180.375000, 0.000000, 184.617188, 0.000000,
+ 188.085938, 0.000000, 195.117188, 0.000000, 199.312500, 0.000000, 204.000000, 0.000000,
+ 208.007813, 0.000000, 210.117188, 0.000000, 217.054688, 0.000000, 220.429688, 0.000000,
+ 225.117188, 0.000000, 229.054688, 0.000000, 234.867188, 0.000000, 240.867188, 0.000000,
+ 245.085938, 0.000000, 249.773438, 0.000000, 253.781250, 0.000000, 256.804688, 0.000000,
+ 262.804688, 0.000000, 267.492188, 0.000000, 271.007813, 0.000000, 280.242188, 0.000000,
+ 284.695313, 0.000000, 286.804688, 0.000000, 292.312500, 0.000000, 296.578125, 0.000000,
+ 299.953125, 0.000000, 302.976563, 0.000000, 307.664063, 0.000000, 311.671875, 0.000000,
+ 313.781250, 0.000000, 317.882813, 0.000000, 322.335938, 0.000000, 322.335938, 0.000000,
+ 328.500000, 0.000000, 330.562500, 0.000000, 335.250000, 0.000000, 339.140625, 0.000000,
+ 343.078125, 0.000000, 348.984375, 0.000000, 353.671875, 0.000000, 366.445313, 0.000000,
+ 370.687500, 0.000000, 378.843750, 0.000000, 384.351563, 0.000000, 388.546875, 0.000000,
+ 394.546875, 0.000000, 399.234375, 0.000000, 403.687500, 0.000000, 407.929688, 0.000000,
+ 411.398438, 0.000000, 418.429688, 0.000000, 422.671875, 0.000000, 426.046875, 0.000000,
+ 429.070313, 0.000000, 433.757813, 0.000000, 437.765625, 0.000000, 442.031250, 0.000000,
+ 448.968750, 0.000000, 452.343750, 0.000000, 452.343750, 0.000000, 458.507813, 0.000000,
+ 460.570313, 0.000000, 465.257813, 0.000000, 474.492188, 0.000000, 476.601563, 0.000000,
+ 484.968750, 0.000000, 489.234375, 0.000000, 493.921875, 0.000000, 501.562500, 0.000000,
+ 503.671875, 0.000000, 507.890625, 0.000000, 513.796875, 0.000000, 518.484375, 0.000000,
+ 525.796875, 0.000000, 527.906250, 0.000000, 533.578125, 0.000000, 538.265625, 0.000000,
+ 541.781250, 0.000000, 547.171875, 0.000000, 550.710938, 0.000000, 556.710938, 0.000000,
+ 564.492188, 0.000000, 564.492188, 0.000000, 567.867188, 0.000000, 573.867188, 0.000000,
+ 578.085938, 0.000000, 583.476563, 0.000000, 588.164063, 0.000000, 593.976563, 0.000000,
+ 596.039063, 0.000000, 600.492188, 0.000000, 604.734375, 0.000000, 610.546875, 0.000000,
+ 612.609375, 0.000000, 617.296875, 0.000000, 623.695313, 0.000000, 627.937500, 0.000000,
+ 632.039063, 0.000000, 638.039063, 0.000000, 642.726563, 0.000000, 646.054688, 0.000000,
+ 648.164063, 0.000000, 651.914063, 0.000000, 656.132813, 0.000000, 660.398438, 0.000000,
+ 665.085938, 0.000000, 669.023438, 0.000000, 674.835938, 0.000000, 676.898438, 0.000000,
+ 682.898438, 0.000000, 687.585938, 0.000000, 693.984375, 0.000000, 701.765625, 0.000000,
+ 704.789063, 0.000000, 709.476563, 0.000000, 711.585938, 0.000000, 715.804688, 0.000000,
+ 720.046875, 0.000000, 723.515625, 0.000000, 727.781250, 0.000000, 732.468750, 0.000000,
+ 734.578125, 0.000000, 738.843750, 0.000000, 742.945313, 0.000000, 747.398438, 0.000000,
+ 752.085938, 0.000000, 760.453125, 0.000000, 767.390625, 0.000000, 770.859375, 0.000000,
+ 770.859375, 0.000000, 775.054688, 0.000000, 779.742188, 0.000000, 787.054688, 0.000000,
+ 789.398438, 0.000000, 794.085938, 0.000000, 798.023438, 0.000000, 801.492188, 0.000000,
+ 804.937500, 0.000000, 809.625000, 0.000000, 817.968750, 0.000000, 822.421875, 0.000000,
+ 828.234375, 0.000000, 828.234375, 0.000000, 834.398438, 0.000000, 836.460938, 0.000000,
+ 841.148438, 0.000000, 850.382813, 0.000000, 854.835938, 0.000000, 856.945313, 0.000000,
+ 862.453125, 0.000000, 866.718750, 0.000000, 869.742188, 0.000000, 871.804688, 0.000000,
+ 877.804688, 0.000000, 882.492188, 0.000000, 891.726563, 0.000000, 896.179688, 0.000000,
+ 901.992188, 0.000000, 901.992188, 0.000000, 908.156250, 0.000000, 910.218750, 0.000000,
+ 914.906250, 0.000000, 922.382813, 0.000000, 926.601563, 0.000000, 931.054688, 0.000000,
+ 936.562500, 0.000000, 940.804688, 0.000000, 944.250000, 0.000000, 948.937500, 0.000000,
+ 952.945313, 0.000000, 958.945313, 0.000000, 962.414063, 0.000000, 966.609375, 0.000000,
+ 972.609375, 0.000000, 977.296875, 0.000000, 980.812500, 0.000000, 984.820313, 0.000000,
+ 986.929688, 0.000000, 991.031250, 0.000000, 995.484375, 0.000000, 995.484375, 0.000000,
+ 1001.648438, 0.000000, 1003.710938, 0.000000, 1008.398438, 0.000000, 1013.414063, 0.000000,
+ 1017.679688, 0.000000, 1022.367188, 0.000000, 1030.312500, 0.000000, 1033.781250, 0.000000,
+ 1037.882813, 0.000000, 1042.570313, 0.000000, 1051.921875, 0.000000, 1056.164063, 0.000000,
+ 1062.984375, 0.000000, 1065.046875, 0.000000, 1071.046875, 0.000000, 1076.554688, 0.000000,
+ 1079.578125, 0.000000, 1081.640625, 0.000000, 1086.328125, 0.000000, 1092.726563, 0.000000,
+ 1096.992188, 0.000000, 1099.101563, 0.000000, 1102.570313, 0.000000, 1106.812500, 0.000000,
+ 1111.007813, 0.000000, 1115.695313, 0.000000, 1119.210938, 0.000000, 1121.320313, 0.000000,
+ 1121.320313, 0.000000, 1128.140625, 0.000000, 1130.250000, 0.000000, 1137.070313, 0.000000,
+ 1139.414063, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Unicode Arabic" script="arab">
+ <test-font name="LucidaSansRegular.ttf" version="Version 1.20 - October 2000" checksum="0xF5D9BA6D"/>
+
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+
+ <result-glyphs>
+ 0x00000872, 0x000008D1, 0x000003F9, 0x0000040B, 0x0000088C, 0x0000089E, 0x000008BD, 0x000003EF,
+ 0x00000003, 0x00000404, 0x000003F9, 0x0000086C, 0x00000882, 0x000008C2, 0x000008BD, 0x000003EF,
+ 0x00000003, 0x000008A8, 0x000008D2, 0x000008C2, 0x0000087D, 0x00000003, 0x000008CE, 0x000008BE,
+ 0x000008A9, 0x00000003, 0x0000040D, 0x000008CC, 0x00000876, 0x00000882, 0x000008D1, 0x00000003,
+ 0x00000888, 0x00000881, 0x000003EF, 0x0000040B, 0x00000003, 0x0000088C, 0x000008D2, 0x000008B2,
+ 0x00000896, 0x00000875, 0x00000003, 0x00000408, 0x0000086C, 0x000008A6, 0x000008C5, 0x00000003,
+ 0x00000888, 0x0000087D, 0x000008CC, 0x000008D1, 0x00000003, 0x000008C0, 0x000008BD, 0x0000040B,
+ 0x00000003, 0x000003E6, 0x00000404, 0x000003F9, 0x0000086C, 0x00000882, 0x000008C2, 0x000008BE,
+ 0x000008BD, 0x00000003, 0x00000408, 0x0000086C, 0x000008B5, 0x000003F9, 0x0000FFFF, 0x000008D5,
+ 0x000003EF, 0x00000003, 0x0000040A, 0x0000088A, 0x000008C9, 0x00000003, 0x00000898, 0x000008D2,
+ 0x0000089A, 0x00000886, 0x00000875, 0x0000040B, 0x00000003, 0x0000088C, 0x000008D2, 0x000008B2,
+ 0x00000896, 0x00000876, 0x000008BE, 0x000008BD, 0x00000003, 0x00000872, 0x000008C2, 0x000008A6,
+ 0x000008C5, 0x0000FFFF, 0x000008D5, 0x000003EF, 0x00000003, 0x000003F2, 0x0000086C, 0x0000086A,
+ 0x000008C1, 0x00000003, 0x00000406, 0x0000086C, 0x000008C6, 0x000008C9, 0x00000003, 0x00000409,
+ 0x0000086C, 0x000008B9, 0x00000003, 0x000003E6, 0x00000005, 0x000003F7, 0x000008CC, 0x000008BA,
+ 0x00000413, 0x000008C5, 0x000008CC, 0x000008D1, 0x00000005, 0x00000003, 0x00000401, 0x000003EF,
+ 0x0000088C, 0x00000876, 0x00000885, 0x000003EF, 0x00000003, 0x000008BC, 0x00000870, 0x000008B5,
+ 0x0000040B, 0x00000003, 0x00000011, 0x0000086C, 0x000008CA, 0x000008C6, 0x000008C1, 0x00000003,
+ 0x00000888, 0x00000881, 0x000003EF, 0x0000040B, 0x00000003, 0x000008BC, 0x000008BA, 0x000008BD,
+ 0x00000003, 0x0000086C, 0x000008C6, 0x000008D2, 0x000008AA, 0x000008C1, 0x00000003, 0x0000086C,
+ 0x000008C2, 0x000008B5, 0x000003F9, 0x00000003, 0x000008D0, 0x000008A2, 0x000008AA, 0x00000412,
+ 0x00000875, 0x00000003, 0x00000409, 0x000003EB, 0x00000003, 0x00000888, 0x000008AA, 0x0000086F,
+ 0x00000003, 0x0000040C, 0x0000088C, 0x00000885, 0x0000FFFF, 0x000008D5, 0x000003EF, 0x00000003,
+ 0x00000404, 0x000003F9, 0x0000086C, 0x00000882, 0x000008C2, 0x000008BD, 0x000003EF, 0x0000040B,
+ 0x00000003, 0x00000404, 0x0000088C, 0x00000881, 0x0000FFFF, 0x000008D5, 0x000003EF, 0x00000003,
+ 0x000008C4, 0x000008D1, 0x0000088E, 0x00000886, 0x00000876, 0x0000086F, 0x00000003, 0x00000408,
+ 0x000008CC, 0x000008B6, 0x00000875, 0x0000040B, 0x00000003, 0x000003E6, 0x00000408, 0x0000086C,
+ 0x000008B5, 0x000003F9, 0x0000FFFF, 0x000008D5, 0x000003EF, 0x00000003, 0x000008A8, 0x000008C1,
+ 0x00000003, 0x000008A0, 0x000008B6, 0x000008B1, 0x00000003, 0x0000086E, 0x000008D2, 0x00000891,
+ 0x000003EF, 0x000008CC, 0x00000882, 0x000008BD, 0x000003EF, 0x00000003, 0x000008BC, 0x000008C1,
+ 0x0000086C, 0x000008AA, 0x00000876, 0x00000875, 0x00000003, 0x000003E6, 0x0000086C, 0x0000040E,
+ 0x00000891, 0x0000086C, 0x00000891, 0x000003EB
+ </result-glyphs>
+
+ <result-indices>
+ 0x000000FB, 0x000000FA, 0x000000F9, 0x000000F8, 0x000000F7, 0x000000F6, 0x000000F5, 0x000000F4,
+ 0x000000F3, 0x000000F2, 0x000000F1, 0x000000F0, 0x000000EF, 0x000000EE, 0x000000ED, 0x000000EC,
+ 0x000000EB, 0x000000EA, 0x000000E9, 0x000000E8, 0x000000E7, 0x000000E6, 0x000000E5, 0x000000E4,
+ 0x000000E3, 0x000000E2, 0x000000E1, 0x000000E0, 0x000000DF, 0x000000DE, 0x000000DD, 0x000000DC,
+ 0x000000DB, 0x000000DA, 0x000000D9, 0x000000D8, 0x000000D7, 0x000000D6, 0x000000D5, 0x000000D4,
+ 0x000000D3, 0x000000D2, 0x000000D1, 0x000000D0, 0x000000CF, 0x000000CE, 0x000000CD, 0x000000CC,
+ 0x000000CB, 0x000000CA, 0x000000C9, 0x000000C8, 0x000000C7, 0x000000C6, 0x000000C5, 0x000000C4,
+ 0x000000C3, 0x000000C2, 0x000000C1, 0x000000C0, 0x000000BF, 0x000000BE, 0x000000BD, 0x000000BC,
+ 0x000000BB, 0x000000BA, 0x000000B9, 0x000000B8, 0x000000B7, 0x000000B6, 0x000000B5, 0x000000B4,
+ 0x000000B3, 0x000000B2, 0x000000B1, 0x000000B0, 0x000000AF, 0x000000AE, 0x000000AD, 0x000000AC,
+ 0x000000AB, 0x000000AA, 0x000000A9, 0x000000A8, 0x000000A7, 0x000000A6, 0x000000A5, 0x000000A4,
+ 0x000000A3, 0x000000A2, 0x000000A1, 0x000000A0, 0x0000009F, 0x0000009E, 0x0000009D, 0x0000009C,
+ 0x0000009B, 0x0000009A, 0x00000099, 0x00000098, 0x00000097, 0x00000096, 0x00000095, 0x00000094,
+ 0x00000093, 0x00000092, 0x00000091, 0x00000090, 0x0000008F, 0x0000008E, 0x0000008D, 0x0000008C,
+ 0x0000008B, 0x0000008A, 0x00000089, 0x00000088, 0x00000087, 0x00000086, 0x00000085, 0x00000084,
+ 0x00000083, 0x00000082, 0x00000081, 0x00000080, 0x0000007F, 0x0000007E, 0x0000007D, 0x0000007C,
+ 0x0000007B, 0x0000007A, 0x00000079, 0x00000078, 0x00000077, 0x00000076, 0x00000075, 0x00000074,
+ 0x00000073, 0x00000072, 0x00000071, 0x00000070, 0x0000006F, 0x0000006E, 0x0000006D, 0x0000006C,
+ 0x0000006B, 0x0000006A, 0x00000069, 0x00000068, 0x00000067, 0x00000066, 0x00000065, 0x00000064,
+ 0x00000063, 0x00000062, 0x00000061, 0x00000060, 0x0000005F, 0x0000005E, 0x0000005D, 0x0000005C,
+ 0x0000005B, 0x0000005A, 0x00000059, 0x00000058, 0x00000057, 0x00000056, 0x00000055, 0x00000054,
+ 0x00000053, 0x00000052, 0x00000051, 0x00000050, 0x0000004F, 0x0000004E, 0x0000004D, 0x0000004C,
+ 0x0000004B, 0x0000004A, 0x00000049, 0x00000048, 0x00000047, 0x00000046, 0x00000045, 0x00000044,
+ 0x00000043, 0x00000042, 0x00000041, 0x00000040, 0x0000003F, 0x0000003E, 0x0000003D, 0x0000003C,
+ 0x0000003B, 0x0000003A, 0x00000039, 0x00000038, 0x00000037, 0x00000036, 0x00000035, 0x00000034,
+ 0x00000033, 0x00000032, 0x00000031, 0x00000030, 0x0000002F, 0x0000002E, 0x0000002D, 0x0000002C,
+ 0x0000002B, 0x0000002A, 0x00000029, 0x00000028, 0x00000027, 0x00000026, 0x00000025, 0x00000024,
+ 0x00000023, 0x00000022, 0x00000021, 0x00000020, 0x0000001F, 0x0000001E, 0x0000001D, 0x0000001C,
+ 0x0000001B, 0x0000001A, 0x00000019, 0x00000018, 0x00000017, 0x00000016, 0x00000015, 0x00000014,
+ 0x00000013, 0x00000012, 0x00000011, 0x00000010, 0x0000000F, 0x0000000E, 0x0000000D, 0x0000000C,
+ 0x0000000B, 0x0000000A, 0x00000009, 0x00000008, 0x00000007, 0x00000006, 0x00000005, 0x00000004,
+ 0x00000003, 0x00000002, 0x00000001, 0x00000000
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 6.316406, 0.000000, 10.382813, 0.000000, 15.492188, 0.000000,
+ 21.035156, 0.000000, 27.058594, 0.000000, 39.527344, 0.000000, 43.792969, 0.000000,
+ 47.408203, 0.000000, 51.205078, 0.000000, 66.216797, 0.000000, 71.326172, 0.000000,
+ 74.695313, 0.000000, 83.367188, 0.000000, 90.826172, 0.000000, 95.091797, 0.000000,
+ 98.707031, 0.000000, 102.503906, 0.000000, 109.962891, 0.000000, 114.949219, 0.000000,
+ 122.408203, 0.000000, 130.687500, 0.000000, 134.484375, 0.000000, 145.787109, 0.000000,
+ 150.773438, 0.000000, 156.884766, 0.000000, 160.681641, 0.000000, 172.277344, 0.000000,
+ 177.919922, 0.000000, 182.906250, 0.000000, 191.578125, 0.000000, 195.644531, 0.000000,
+ 199.441406, 0.000000, 206.507813, 0.000000, 214.787109, 0.000000, 218.402344, 0.000000,
+ 223.945313, 0.000000, 227.742188, 0.000000, 233.765625, 0.000000, 238.751953, 0.000000,
+ 245.185547, 0.000000, 257.982422, 0.000000, 262.048828, 0.000000, 265.845703, 0.000000,
+ 272.654297, 0.000000, 276.023438, 0.000000, 285.240234, 0.000000, 289.306641, 0.000000,
+ 293.103516, 0.000000, 300.169922, 0.000000, 308.449219, 0.000000, 314.091797, 0.000000,
+ 318.158203, 0.000000, 321.955078, 0.000000, 329.572266, 0.000000, 333.837891, 0.000000,
+ 339.380859, 0.000000, 343.177734, 0.000000, 346.974609, 0.000000, 361.986328, 0.000000,
+ 367.095703, 0.000000, 370.464844, 0.000000, 379.136719, 0.000000, 386.595703, 0.000000,
+ 391.582031, 0.000000, 395.847656, 0.000000, 399.644531, 0.000000, 406.453125, 0.000000,
+ 409.822266, 0.000000, 415.523438, 0.000000, 420.632813, 0.000000, 420.632813, 0.000000,
+ 427.441406, 0.000000, 431.056641, 0.000000, 434.853516, 0.000000, 441.357422, 0.000000,
+ 448.423828, 0.000000, 455.912109, 0.000000, 459.708984, 0.000000, 479.255859, 0.000000,
+ 484.242188, 0.000000, 496.710938, 0.000000, 505.382813, 0.000000, 509.449219, 0.000000,
+ 514.992188, 0.000000, 518.789063, 0.000000, 524.812500, 0.000000, 529.798828, 0.000000,
+ 536.232422, 0.000000, 549.029297, 0.000000, 554.015625, 0.000000, 559.001953, 0.000000,
+ 563.267578, 0.000000, 567.064453, 0.000000, 573.380859, 0.000000, 580.839844, 0.000000,
+ 590.056641, 0.000000, 594.123047, 0.000000, 594.123047, 0.000000, 600.931641, 0.000000,
+ 604.546875, 0.000000, 608.343750, 0.000000, 620.636719, 0.000000, 624.005859, 0.000000,
+ 628.992188, 0.000000, 635.830078, 0.000000, 639.626953, 0.000000, 653.361328, 0.000000,
+ 656.730469, 0.000000, 661.716797, 0.000000, 669.205078, 0.000000, 673.001953, 0.000000,
+ 683.777344, 0.000000, 687.146484, 0.000000, 692.660156, 0.000000, 696.457031, 0.000000,
+ 700.253906, 0.000000, 704.736328, 0.000000, 711.105469, 0.000000, 716.748047, 0.000000,
+ 722.994141, 0.000000, 722.994141, 0.000000, 727.060547, 0.000000, 732.703125, 0.000000,
+ 736.769531, 0.000000, 741.251953, 0.000000, 745.048828, 0.000000, 752.507813, 0.000000,
+ 756.123047, 0.000000, 762.146484, 0.000000, 767.132813, 0.000000, 775.412109, 0.000000,
+ 779.027344, 0.000000, 782.824219, 0.000000, 794.203125, 0.000000, 799.189453, 0.000000,
+ 804.890625, 0.000000, 810.433594, 0.000000, 814.230469, 0.000000, 818.027344, 0.000000,
+ 821.396484, 0.000000, 828.128906, 0.000000, 833.115234, 0.000000, 839.953125, 0.000000,
+ 843.750000, 0.000000, 850.816406, 0.000000, 859.095703, 0.000000, 862.710938, 0.000000,
+ 868.253906, 0.000000, 872.050781, 0.000000, 883.429688, 0.000000, 889.675781, 0.000000,
+ 893.941406, 0.000000, 897.738281, 0.000000, 901.107422, 0.000000, 906.093750, 0.000000,
+ 911.080078, 0.000000, 917.800781, 0.000000, 924.638672, 0.000000, 928.435547, 0.000000,
+ 931.804688, 0.000000, 939.263672, 0.000000, 944.964844, 0.000000, 950.074219, 0.000000,
+ 953.871094, 0.000000, 965.173828, 0.000000, 974.390625, 0.000000, 981.111328, 0.000000,
+ 981.111328, 0.000000, 985.177734, 0.000000, 988.974609, 0.000000, 999.750000, 0.000000,
+ 1003.365234, 0.000000, 1007.162109, 0.000000, 1014.228516, 0.000000, 1020.949219, 0.000000,
+ 1025.015625, 0.000000, 1028.812500, 0.000000, 1040.408203, 0.000000, 1046.431641, 0.000000,
+ 1054.710938, 0.000000, 1054.710938, 0.000000, 1061.519531, 0.000000, 1065.134766, 0.000000,
+ 1068.931641, 0.000000, 1083.943359, 0.000000, 1089.052734, 0.000000, 1092.421875, 0.000000,
+ 1101.093750, 0.000000, 1108.552734, 0.000000, 1112.818359, 0.000000, 1116.433594, 0.000000,
+ 1121.976563, 0.000000, 1125.773438, 0.000000, 1140.785156, 0.000000, 1146.808594, 0.000000,
+ 1155.087891, 0.000000, 1155.087891, 0.000000, 1161.896484, 0.000000, 1165.511719, 0.000000,
+ 1169.308594, 0.000000, 1180.541016, 0.000000, 1184.607422, 0.000000, 1190.630859, 0.000000,
+ 1199.302734, 0.000000, 1204.289063, 0.000000, 1208.355469, 0.000000, 1212.152344, 0.000000,
+ 1218.960938, 0.000000, 1224.603516, 0.000000, 1231.037109, 0.000000, 1235.103516, 0.000000,
+ 1240.646484, 0.000000, 1244.443359, 0.000000, 1248.240234, 0.000000, 1255.048828, 0.000000,
+ 1258.417969, 0.000000, 1264.119141, 0.000000, 1269.228516, 0.000000, 1269.228516, 0.000000,
+ 1276.037109, 0.000000, 1279.652344, 0.000000, 1283.449219, 0.000000, 1290.908203, 0.000000,
+ 1297.746094, 0.000000, 1301.542969, 0.000000, 1311.427734, 0.000000, 1317.861328, 0.000000,
+ 1323.562500, 0.000000, 1327.359375, 0.000000, 1341.492188, 0.000000, 1346.478516, 0.000000,
+ 1357.904297, 0.000000, 1361.519531, 0.000000, 1367.162109, 0.000000, 1375.833984, 0.000000,
+ 1380.099609, 0.000000, 1383.714844, 0.000000, 1387.511719, 0.000000, 1398.890625, 0.000000,
+ 1405.728516, 0.000000, 1409.097656, 0.000000, 1415.818359, 0.000000, 1420.804688, 0.000000,
+ 1424.871094, 0.000000, 1428.667969, 0.000000, 1432.464844, 0.000000, 1435.833984, 0.000000,
+ 1435.833984, 0.000000, 1447.259766, 0.000000, 1450.628906, 0.000000, 1462.054688, 0.000000,
+ 1465.669922, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Thai" script="thai">
+ <test-font name="angsd___.ttf" version="Version 2.1 - July 1995" checksum="0x49B67200"/>
+
+ <test-text>บทที่๑พายุไซโคลนโดโรธีอาศัยอยู่ท่ามà¸à¸¥à¸²à¸‡à¸—ุ่งใหà¸à¹ˆà¹ƒà¸™à¹à¸„นซัสà¸à¸±à¸šà¸¥à¸¸à¸‡à¹€à¸®à¸™à¸£à¸µà¸Šà¸²à¸§à¹„ร่à¹à¸¥à¸°à¸›à¹‰à¸²à¹€à¸­à¹‡à¸¡à¸ à¸£à¸£à¸¢à¸²à¸Šà¸²à¸§à¹„ร่บ้านของพวà¸à¹€à¸‚าหลังเล็à¸à¹€à¸žà¸£à¸²à¸°à¹„ม้สร้างบ้านต้องขนมาด้วยเà¸à¸§à¸µà¸¢à¸™à¹€à¸›à¹‡à¸™à¸£à¸°à¸¢à¸°à¸—างหลายไมล์</test-text>
+
+ <result-glyphs>
+ 0x000000F3, 0x000000F0, 0x000000F0, 0x0000010E, 0x0000011D, 0x00000126, 0x000000F7, 0x0000010B,
+ 0x000000FB, 0x00000111, 0x00000119, 0x000000E4, 0x00000117, 0x000000DD, 0x000000FE, 0x000000F2,
+ 0x00000117, 0x000000ED, 0x00000117, 0x000000FC, 0x000000F1, 0x0000010E, 0x00000106, 0x0000010B,
+ 0x00000101, 0x0000010A, 0x000000FB, 0x00000106, 0x000000FB, 0x00000112, 0x0000013B, 0x000000F0,
+ 0x0000013B, 0x0000010B, 0x000000FA, 0x000000DA, 0x000000FE, 0x0000010B, 0x000000E0, 0x000000F0,
+ 0x00000111, 0x0000013B, 0x000000E0, 0x00000118, 0x00000104, 0x000000E6, 0x0000013B, 0x00000118,
+ 0x000000F2, 0x00000116, 0x000000DD, 0x000000F2, 0x000000E4, 0x0000010A, 0x00000103, 0x000000DA,
+ 0x0000010A, 0x000000F3, 0x000000FE, 0x00000111, 0x000000E0, 0x00000115, 0x00000107, 0x000000F2,
+ 0x000000FC, 0x0000010E, 0x000000E3, 0x0000010B, 0x00000100, 0x00000119, 0x000000FC, 0x0000013B,
+ 0x00000116, 0x000000FE, 0x00000109, 0x000000F4, 0x00000137, 0x0000010B, 0x00000115, 0x00000106,
+ 0x0000011C, 0x000000FA, 0x000000F9, 0x000000FC, 0x000000FC, 0x000000FB, 0x0000010B, 0x000000E3,
+ 0x0000010B, 0x00000100, 0x00000119, 0x000000FC, 0x0000013B, 0x000000F3, 0x0000013C, 0x0000010B,
+ 0x000000F2, 0x000000DB, 0x00000106, 0x000000E0, 0x000000F7, 0x00000100, 0x000000DA, 0x00000115,
+ 0x000000DB, 0x0000010B, 0x00000104, 0x000000FE, 0x0000010A, 0x000000E0, 0x00000115, 0x000000FE,
+ 0x0000011C, 0x000000DA, 0x00000115, 0x000000F7, 0x000000FC, 0x0000010B, 0x00000109, 0x00000119,
+ 0x000000FA, 0x0000013C, 0x00000103, 0x000000FC, 0x0000013C, 0x0000010B, 0x000000E0, 0x000000F3,
+ 0x0000013C, 0x0000010B, 0x000000F2, 0x000000EE, 0x0000013C, 0x00000106, 0x000000E0, 0x000000DB,
+ 0x000000F2, 0x000000FA, 0x0000010B, 0x000000ED, 0x0000013C, 0x00000100, 0x000000FB, 0x00000115,
+ 0x000000DA, 0x00000100, 0x0000010E, 0x000000FB, 0x000000F2, 0x00000115, 0x000000F4, 0x00000143,
+ 0x000000F2, 0x000000FC, 0x00000109, 0x000000FB, 0x00000109, 0x000000F0, 0x0000010B, 0x000000E0,
+ 0x00000104, 0x000000FE, 0x0000010B, 0x000000FB, 0x00000119, 0x000000FA, 0x000000FE, 0x0000013F
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014, 0x00000015, 0x00000016, 0x00000017,
+ 0x00000018, 0x00000019, 0x0000001A, 0x0000001B, 0x0000001C, 0x0000001D, 0x0000001E, 0x0000001F,
+ 0x00000020, 0x00000021, 0x00000022, 0x00000023, 0x00000024, 0x00000025, 0x00000026, 0x00000027,
+ 0x00000028, 0x00000029, 0x0000002A, 0x0000002B, 0x0000002C, 0x0000002D, 0x0000002E, 0x0000002F,
+ 0x00000030, 0x00000031, 0x00000032, 0x00000033, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
+ 0x00000038, 0x00000039, 0x0000003A, 0x0000003B, 0x0000003C, 0x0000003D, 0x0000003E, 0x0000003F,
+ 0x00000040, 0x00000041, 0x00000042, 0x00000043, 0x00000044, 0x00000045, 0x00000046, 0x00000047,
+ 0x00000048, 0x00000049, 0x0000004A, 0x0000004B, 0x0000004C, 0x0000004D, 0x0000004E, 0x0000004F,
+ 0x00000050, 0x00000051, 0x00000052, 0x00000053, 0x00000054, 0x00000055, 0x00000056, 0x00000057,
+ 0x00000058, 0x00000059, 0x0000005A, 0x0000005B, 0x0000005C, 0x0000005D, 0x0000005E, 0x0000005F,
+ 0x00000060, 0x00000061, 0x00000062, 0x00000063, 0x00000064, 0x00000065, 0x00000066, 0x00000067,
+ 0x00000068, 0x00000069, 0x0000006A, 0x0000006B, 0x0000006C, 0x0000006D, 0x0000006E, 0x0000006F,
+ 0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074, 0x00000075, 0x00000076, 0x00000077,
+ 0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C, 0x0000007D, 0x0000007E, 0x0000007F,
+ 0x00000080, 0x00000081, 0x00000082, 0x00000083, 0x00000084, 0x00000085, 0x00000086, 0x00000087,
+ 0x00000088, 0x00000089, 0x0000008A, 0x0000008B, 0x0000008C, 0x0000008D, 0x0000008E, 0x0000008F,
+ 0x00000090, 0x00000091, 0x00000092, 0x00000093, 0x00000094, 0x00000095, 0x00000096, 0x00000097,
+ 0x00000098, 0x00000099, 0x0000009A, 0x0000009B, 0x0000009C, 0x0000009D, 0x0000009E, 0x0000009F,
+ 0x000000A0, 0x000000A1, 0x000000A2, 0x000000A3, 0x000000A4, 0x000000A5, 0x000000A6, 0x000000A7
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 5.399414, 0.000000, 10.798828, 0.000000, 16.198242, 0.000000,
+ 16.198242, 0.000000, 16.198242, 0.000000, 21.046875, 0.000000, 26.616211, 0.000000,
+ 30.035156, 0.000000, 34.151367, 0.000000, 34.151367, 0.000000, 38.279297, 0.000000,
+ 43.558594, 0.000000, 47.663086, 0.000000, 52.438477, 0.000000, 57.178711, 0.000000,
+ 62.698242, 0.000000, 66.802734, 0.000000, 71.601563, 0.000000, 75.706055, 0.000000,
+ 79.810547, 0.000000, 84.369141, 0.000000, 84.369141, 0.000000, 89.097656, 0.000000,
+ 92.516602, 0.000000, 97.195313, 0.000000, 97.195313, 0.000000, 101.311523, 0.000000,
+ 106.040039, 0.000000, 110.156250, 0.000000, 110.156250, 0.000000, 110.156250, 0.000000,
+ 115.555664, 0.000000, 115.555664, 0.000000, 118.974609, 0.000000, 124.013672, 0.000000,
+ 128.765625, 0.000000, 133.505859, 0.000000, 136.924805, 0.000000, 140.704102, 0.000000,
+ 146.103516, 0.000000, 146.103516, 0.000000, 146.103516, 0.000000, 149.882813, 0.000000,
+ 153.553711, 0.000000, 159.158203, 0.000000, 165.421875, 0.000000, 165.421875, 0.000000,
+ 169.092773, 0.000000, 174.612305, 0.000000, 179.135742, 0.000000, 183.911133, 0.000000,
+ 189.430664, 0.000000, 194.709961, 0.000000, 194.709961, 0.000000, 199.989258, 0.000000,
+ 204.741211, 0.000000, 204.741211, 0.000000, 210.140625, 0.000000, 214.880859, 0.000000,
+ 214.880859, 0.000000, 218.660156, 0.000000, 220.675781, 0.000000, 225.128906, 0.000000,
+ 230.648438, 0.000000, 234.752930, 0.000000, 234.752930, 0.000000, 239.613281, 0.000000,
+ 243.032227, 0.000000, 247.280273, 0.000000, 251.408203, 0.000000, 255.512695, 0.000000,
+ 255.512695, 0.000000, 260.036133, 0.000000, 264.776367, 0.000000, 269.071289, 0.000000,
+ 274.470703, 0.000000, 274.470703, 0.000000, 277.889648, 0.000000, 279.905273, 0.000000,
+ 284.633789, 0.000000, 284.633789, 0.000000, 289.672852, 0.000000, 294.641602, 0.000000,
+ 298.746094, 0.000000, 302.850586, 0.000000, 306.966797, 0.000000, 310.385742, 0.000000,
+ 315.246094, 0.000000, 318.665039, 0.000000, 322.913086, 0.000000, 327.041016, 0.000000,
+ 331.145508, 0.000000, 331.145508, 0.000000, 336.544922, 0.000000, 336.544922, 0.000000,
+ 339.963867, 0.000000, 345.483398, 0.000000, 350.258789, 0.000000, 354.987305, 0.000000,
+ 358.766602, 0.000000, 364.335938, 0.000000, 368.583984, 0.000000, 373.335938, 0.000000,
+ 375.351563, 0.000000, 380.126953, 0.000000, 383.545898, 0.000000, 389.150391, 0.000000,
+ 393.890625, 0.000000, 393.890625, 0.000000, 397.669922, 0.000000, 399.685547, 0.000000,
+ 404.425781, 0.000000, 404.425781, 0.000000, 409.177734, 0.000000, 411.193359, 0.000000,
+ 416.762695, 0.000000, 420.867188, 0.000000, 424.286133, 0.000000, 428.581055, 0.000000,
+ 432.708984, 0.000000, 437.748047, 0.000000, 437.748047, 0.000000, 443.027344, 0.000000,
+ 447.131836, 0.000000, 447.131836, 0.000000, 450.550781, 0.000000, 454.330078, 0.000000,
+ 459.729492, 0.000000, 459.729492, 0.000000, 463.148438, 0.000000, 468.667969, 0.000000,
+ 473.478516, 0.000000, 473.478516, 0.000000, 478.207031, 0.000000, 481.986328, 0.000000,
+ 486.761719, 0.000000, 492.281250, 0.000000, 497.320313, 0.000000, 500.739258, 0.000000,
+ 505.538086, 0.000000, 505.538086, 0.000000, 509.786133, 0.000000, 513.902344, 0.000000,
+ 515.917969, 0.000000, 520.669922, 0.000000, 524.917969, 0.000000, 524.917969, 0.000000,
+ 529.034180, 0.000000, 534.553711, 0.000000, 536.569336, 0.000000, 541.968750, 0.000000,
+ 541.968750, 0.000000, 547.488281, 0.000000, 551.592773, 0.000000, 555.887695, 0.000000,
+ 560.003906, 0.000000, 564.298828, 0.000000, 569.698242, 0.000000, 573.117188, 0.000000,
+ 576.896484, 0.000000, 582.500977, 0.000000, 587.241211, 0.000000, 590.660156, 0.000000,
+ 594.776367, 0.000000, 598.904297, 0.000000, 603.943359, 0.000000, 608.683594, 0.000000,
+ 608.683594, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Arabic Simple" script="arab">
+ <test-text>أساسًا، تتعامل الحواسيب Ùقط مع الأرقام، وتقوم بتخزين الأحر٠والمحار٠الأخرى بعد أن تÙعطي رقما معينا لكل واحد منها. وقبل اختراع "يونÙكود"ØŒ كان هناك مئات الأنظمة للتشÙير وتخصيص هذه الأرقام للمحارÙØŒ ولم يوجد نظام تشÙير واحد يحتوي على جميع المحار٠الضرورية</test-text>
+
+ <result-glyphs>
+ 0x0000FE94, 0x0000FEF3, 0x00000631, 0x00000648, 0x0000FFFE, 0x0000FD2C, 0x0000FEDF, 0x00000627,
+ 0x00000020, 0x00000641, 0x00000631, 0x0000FE8E, 0x0000FFFE, 0x0000FFFE, 0x0000FD88, 0x00000627,
+ 0x00000020, 0x0000FECA, 0x0000FEF4, 0x0000FFFE, 0x0000FCA8, 0x00000020, 0x0000FFFE, 0x0000FC86,
+ 0x0000FECB, 0x00000020, 0x0000064A, 0x0000FEEE, 0x0000FE98, 0x0000FFFE, 0x0000FCDB, 0x00000020,
+ 0x0000FEAA, 0x0000FEA3, 0x00000627, 0x00000648, 0x00000020, 0x0000FFFE, 0x0000FC91, 0x0000FED4,
+ 0x0000FEB8, 0x0000FE97, 0x00000020, 0x00000645, 0x0000FE8E, 0x0000FEC8, 0x0000FEE7, 0x00000020,
+ 0x0000FEAA, 0x0000FE9F, 0x0000FEEE, 0x0000FEF3, 0x00000020, 0x0000FFFE, 0x0000FC42, 0x00000648,
+ 0x00000020, 0x0000060C, 0x00000641, 0x00000631, 0x0000FE8E, 0x0000FEA4, 0x0000FFFE, 0x0000FCED,
+ 0x0000FEDF, 0x00000020, 0x00000645, 0x0000FE8E, 0x0000FED7, 0x00000631, 0x0000FFFE, 0x0000FEF7,
+ 0x00000627, 0x00000020, 0x00000647, 0x0000FEAC, 0x0000FEEB, 0x00000020, 0x0000FEBA, 0x0000FEF4,
+ 0x0000FEBC, 0x0000FFFE, 0x0000FCA3, 0x00000648, 0x00000020, 0x0000FFFE, 0x0000FC91, 0x0000FED4,
+ 0x0000FEB8, 0x0000FE98, 0x0000FEE0, 0x0000FEDF, 0x00000020, 0x0000FE94, 0x0000FFFE, 0x0000FD3B,
+ 0x0000FEE7, 0x0000FFFE, 0x0000FEF7, 0x00000627, 0x00000020, 0x0000062A, 0x0000FFFE, 0x0000FBEB,
+ 0x0000FEE3, 0x00000020, 0x00000643, 0x0000FE8E, 0x0000FEE8, 0x0000FEEB, 0x00000020, 0x00000646,
+ 0x0000FFFE, 0x0000FC37, 0x00000020, 0x0000060C, 0x00000022, 0x0000062F, 0x0000FEEE, 0x0000FEDC,
+ 0x00000650, 0x0000FEE7, 0x0000FEEE, 0x0000FEF3, 0x00000022, 0x00000020, 0x00000639, 0x00000627,
+ 0x0000FFFE, 0x0000FC70, 0x0000FEA7, 0x00000627, 0x00000020, 0x0000FEDE, 0x0000FE92, 0x0000FED7,
+ 0x00000648, 0x00000020, 0x0000002E, 0x0000FE8E, 0x0000FFFE, 0x0000FCEF, 0x0000FEE3, 0x00000020,
+ 0x0000FEAA, 0x0000FEA3, 0x00000627, 0x00000648, 0x00000020, 0x0000FFFE, 0x0000FC81, 0x0000FEDF,
+ 0x00000020, 0x0000FE8E, 0x0000FEE8, 0x0000FEF4, 0x0000FECC, 0x0000FEE3, 0x00000020, 0x0000FE8E,
+ 0x0000FFFE, 0x0000FCC3, 0x00000631, 0x00000020, 0x0000FFFE, 0x0000FD12, 0x0000FECC, 0x0000064F,
+ 0x0000FE97, 0x00000020, 0x00000646, 0x00000623, 0x00000020, 0x0000FEAA, 0x0000FECC, 0x0000FE91,
+ 0x00000020, 0x00000649, 0x0000FEAE, 0x0000FEA7, 0x0000FFFE, 0x0000FEF7, 0x00000627, 0x00000020,
+ 0x00000641, 0x00000631, 0x0000FE8E, 0x0000FFFE, 0x0000FFFE, 0x0000FD88, 0x00000627, 0x00000648,
+ 0x00000020, 0x00000641, 0x0000FEAE, 0x0000FEA3, 0x0000FFFE, 0x0000FEF7, 0x00000627, 0x00000020,
+ 0x0000FEE6, 0x0000FEF3, 0x0000FEB0, 0x0000FEA8, 0x0000FE98, 0x0000FE91, 0x00000020, 0x00000645,
+ 0x0000FEEE, 0x0000FED8, 0x0000FE97, 0x00000648, 0x00000020, 0x0000060C, 0x00000645, 0x0000FE8E,
+ 0x0000FED7, 0x00000631, 0x0000FFFE, 0x0000FEF7, 0x00000627, 0x00000020, 0x0000FECA, 0x0000FEE3,
+ 0x00000020, 0x0000FEC2, 0x0000FED8, 0x0000FED3, 0x00000020, 0x0000FE90, 0x0000FEF4, 0x0000FEB3,
+ 0x00000627, 0x0000FEEE, 0x0000FFFE, 0x0000FCCA, 0x00000627, 0x00000020, 0x0000FEDE, 0x0000FEE3,
+ 0x0000FE8E, 0x0000FECC, 0x0000FE98, 0x0000FE97, 0x00000020, 0x0000060C, 0x0000FE8E, 0x0000064B,
+ 0x0000FEB3, 0x0000FE8E, 0x0000FEB3, 0x00000623
+ </result-glyphs>
+
+ <result-indices>
+ 0x000000FB, 0x000000FA, 0x000000F9, 0x000000F8, 0x000000F7, 0x000000F6, 0x000000F5, 0x000000F4,
+ 0x000000F3, 0x000000F2, 0x000000F1, 0x000000F0, 0x000000EF, 0x000000EE, 0x000000ED, 0x000000EC,
+ 0x000000EB, 0x000000EA, 0x000000E9, 0x000000E8, 0x000000E7, 0x000000E6, 0x000000E5, 0x000000E4,
+ 0x000000E3, 0x000000E2, 0x000000E1, 0x000000E0, 0x000000DF, 0x000000DE, 0x000000DD, 0x000000DC,
+ 0x000000DB, 0x000000DA, 0x000000D9, 0x000000D8, 0x000000D7, 0x000000D6, 0x000000D5, 0x000000D4,
+ 0x000000D3, 0x000000D2, 0x000000D1, 0x000000D0, 0x000000CF, 0x000000CE, 0x000000CD, 0x000000CC,
+ 0x000000CB, 0x000000CA, 0x000000C9, 0x000000C8, 0x000000C7, 0x000000C6, 0x000000C5, 0x000000C4,
+ 0x000000C3, 0x000000C2, 0x000000C1, 0x000000C0, 0x000000BF, 0x000000BE, 0x000000BD, 0x000000BC,
+ 0x000000BB, 0x000000BA, 0x000000B9, 0x000000B8, 0x000000B7, 0x000000B6, 0x000000B5, 0x000000B4,
+ 0x000000B3, 0x000000B2, 0x000000B1, 0x000000B0, 0x000000AF, 0x000000AE, 0x000000AD, 0x000000AC,
+ 0x000000AB, 0x000000AA, 0x000000A9, 0x000000A8, 0x000000A7, 0x000000A6, 0x000000A5, 0x000000A4,
+ 0x000000A3, 0x000000A2, 0x000000A1, 0x000000A0, 0x0000009F, 0x0000009E, 0x0000009D, 0x0000009C,
+ 0x0000009B, 0x0000009A, 0x00000099, 0x00000098, 0x00000097, 0x00000096, 0x00000095, 0x00000094,
+ 0x00000093, 0x00000092, 0x00000091, 0x00000090, 0x0000008F, 0x0000008E, 0x0000008D, 0x0000008C,
+ 0x0000008B, 0x0000008A, 0x00000089, 0x00000088, 0x00000087, 0x00000086, 0x00000085, 0x00000084,
+ 0x00000083, 0x00000082, 0x00000081, 0x00000080, 0x0000007F, 0x0000007E, 0x0000007D, 0x0000007C,
+ 0x0000007B, 0x0000007A, 0x00000079, 0x00000078, 0x00000077, 0x00000076, 0x00000075, 0x00000074,
+ 0x00000073, 0x00000072, 0x00000071, 0x00000070, 0x0000006F, 0x0000006E, 0x0000006D, 0x0000006C,
+ 0x0000006B, 0x0000006A, 0x00000069, 0x00000068, 0x00000067, 0x00000066, 0x00000065, 0x00000064,
+ 0x00000063, 0x00000062, 0x00000061, 0x00000060, 0x0000005F, 0x0000005E, 0x0000005D, 0x0000005C,
+ 0x0000005B, 0x0000005A, 0x00000059, 0x00000058, 0x00000057, 0x00000056, 0x00000055, 0x00000054,
+ 0x00000053, 0x00000052, 0x00000051, 0x00000050, 0x0000004F, 0x0000004E, 0x0000004D, 0x0000004C,
+ 0x0000004B, 0x0000004A, 0x00000049, 0x00000048, 0x00000047, 0x00000046, 0x00000045, 0x00000044,
+ 0x00000043, 0x00000042, 0x00000041, 0x00000040, 0x0000003F, 0x0000003E, 0x0000003D, 0x0000003C,
+ 0x0000003B, 0x0000003A, 0x00000039, 0x00000038, 0x00000037, 0x00000036, 0x00000035, 0x00000034,
+ 0x00000033, 0x00000032, 0x00000031, 0x00000030, 0x0000002F, 0x0000002E, 0x0000002D, 0x0000002C,
+ 0x0000002B, 0x0000002A, 0x00000029, 0x00000028, 0x00000027, 0x00000026, 0x00000025, 0x00000024,
+ 0x00000023, 0x00000022, 0x00000021, 0x00000020, 0x0000001F, 0x0000001E, 0x0000001D, 0x0000001C,
+ 0x0000001B, 0x0000001A, 0x00000019, 0x00000018, 0x00000017, 0x00000016, 0x00000015, 0x00000014,
+ 0x00000013, 0x00000012, 0x00000011, 0x00000010, 0x0000000F, 0x0000000E, 0x0000000D, 0x0000000C,
+ 0x0000000B, 0x0000000A, 0x00000009, 0x00000008, 0x00000007, 0x00000006, 0x00000005, 0x00000004,
+ 0x00000003, 0x00000002, 0x00000001, 0x00000000
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 12.000000, 0.000000, 24.000000, 0.000000, 36.000000, 0.000000,
+ 48.000000, 0.000000, 60.000000, 0.000000, 72.000000, 0.000000, 84.000000, 0.000000,
+ 96.000000, 0.000000, 108.000000, 0.000000, 120.000000, 0.000000, 132.000000, 0.000000,
+ 144.000000, 0.000000, 156.000000, 0.000000, 168.000000, 0.000000, 180.000000, 0.000000,
+ 192.000000, 0.000000, 204.000000, 0.000000, 216.000000, 0.000000, 228.000000, 0.000000,
+ 240.000000, 0.000000, 252.000000, 0.000000, 264.000000, 0.000000, 276.000000, 0.000000,
+ 288.000000, 0.000000, 300.000000, 0.000000, 312.000000, 0.000000, 324.000000, 0.000000,
+ 336.000000, 0.000000, 348.000000, 0.000000, 360.000000, 0.000000, 372.000000, 0.000000,
+ 384.000000, 0.000000, 396.000000, 0.000000, 408.000000, 0.000000, 420.000000, 0.000000,
+ 432.000000, 0.000000, 444.000000, 0.000000, 456.000000, 0.000000, 468.000000, 0.000000,
+ 480.000000, 0.000000, 492.000000, 0.000000, 504.000000, 0.000000, 516.000000, 0.000000,
+ 528.000000, 0.000000, 540.000000, 0.000000, 552.000000, 0.000000, 564.000000, 0.000000,
+ 576.000000, 0.000000, 588.000000, 0.000000, 600.000000, 0.000000, 612.000000, 0.000000,
+ 624.000000, 0.000000, 636.000000, 0.000000, 648.000000, 0.000000, 660.000000, 0.000000,
+ 672.000000, 0.000000, 684.000000, 0.000000, 696.000000, 0.000000, 708.000000, 0.000000,
+ 720.000000, 0.000000, 732.000000, 0.000000, 744.000000, 0.000000, 756.000000, 0.000000,
+ 768.000000, 0.000000, 780.000000, 0.000000, 792.000000, 0.000000, 804.000000, 0.000000,
+ 816.000000, 0.000000, 828.000000, 0.000000, 840.000000, 0.000000, 852.000000, 0.000000,
+ 864.000000, 0.000000, 876.000000, 0.000000, 888.000000, 0.000000, 900.000000, 0.000000,
+ 912.000000, 0.000000, 924.000000, 0.000000, 936.000000, 0.000000, 948.000000, 0.000000,
+ 960.000000, 0.000000, 972.000000, 0.000000, 984.000000, 0.000000, 996.000000, 0.000000,
+ 1008.000000, 0.000000, 1020.000000, 0.000000, 1032.000000, 0.000000, 1044.000000, 0.000000,
+ 1056.000000, 0.000000, 1068.000000, 0.000000, 1080.000000, 0.000000, 1092.000000, 0.000000,
+ 1104.000000, 0.000000, 1116.000000, 0.000000, 1128.000000, 0.000000, 1140.000000, 0.000000,
+ 1152.000000, 0.000000, 1164.000000, 0.000000, 1176.000000, 0.000000, 1188.000000, 0.000000,
+ 1200.000000, 0.000000, 1212.000000, 0.000000, 1224.000000, 0.000000, 1236.000000, 0.000000,
+ 1248.000000, 0.000000, 1260.000000, 0.000000, 1272.000000, 0.000000, 1284.000000, 0.000000,
+ 1296.000000, 0.000000, 1308.000000, 0.000000, 1320.000000, 0.000000, 1332.000000, 0.000000,
+ 1344.000000, 0.000000, 1356.000000, 0.000000, 1368.000000, 0.000000, 1380.000000, 0.000000,
+ 1392.000000, 0.000000, 1404.000000, 0.000000, 1416.000000, 0.000000, 1428.000000, 0.000000,
+ 1440.000000, 0.000000, 1440.000000, 0.000000, 1452.000000, 0.000000, 1464.000000, 0.000000,
+ 1476.000000, 0.000000, 1488.000000, 0.000000, 1500.000000, 0.000000, 1512.000000, 0.000000,
+ 1524.000000, 0.000000, 1536.000000, 0.000000, 1548.000000, 0.000000, 1560.000000, 0.000000,
+ 1572.000000, 0.000000, 1584.000000, 0.000000, 1596.000000, 0.000000, 1608.000000, 0.000000,
+ 1620.000000, 0.000000, 1632.000000, 0.000000, 1644.000000, 0.000000, 1656.000000, 0.000000,
+ 1668.000000, 0.000000, 1680.000000, 0.000000, 1692.000000, 0.000000, 1704.000000, 0.000000,
+ 1716.000000, 0.000000, 1728.000000, 0.000000, 1740.000000, 0.000000, 1752.000000, 0.000000,
+ 1764.000000, 0.000000, 1776.000000, 0.000000, 1788.000000, 0.000000, 1800.000000, 0.000000,
+ 1812.000000, 0.000000, 1824.000000, 0.000000, 1836.000000, 0.000000, 1848.000000, 0.000000,
+ 1860.000000, 0.000000, 1872.000000, 0.000000, 1884.000000, 0.000000, 1896.000000, 0.000000,
+ 1908.000000, 0.000000, 1920.000000, 0.000000, 1932.000000, 0.000000, 1944.000000, 0.000000,
+ 1956.000000, 0.000000, 1968.000000, 0.000000, 1980.000000, 0.000000, 1992.000000, 0.000000,
+ 1992.000000, 0.000000, 2004.000000, 0.000000, 2016.000000, 0.000000, 2028.000000, 0.000000,
+ 2040.000000, 0.000000, 2052.000000, 0.000000, 2064.000000, 0.000000, 2076.000000, 0.000000,
+ 2088.000000, 0.000000, 2100.000000, 0.000000, 2112.000000, 0.000000, 2124.000000, 0.000000,
+ 2136.000000, 0.000000, 2148.000000, 0.000000, 2160.000000, 0.000000, 2172.000000, 0.000000,
+ 2184.000000, 0.000000, 2196.000000, 0.000000, 2208.000000, 0.000000, 2220.000000, 0.000000,
+ 2232.000000, 0.000000, 2244.000000, 0.000000, 2256.000000, 0.000000, 2268.000000, 0.000000,
+ 2280.000000, 0.000000, 2292.000000, 0.000000, 2304.000000, 0.000000, 2316.000000, 0.000000,
+ 2328.000000, 0.000000, 2340.000000, 0.000000, 2352.000000, 0.000000, 2364.000000, 0.000000,
+ 2376.000000, 0.000000, 2388.000000, 0.000000, 2400.000000, 0.000000, 2412.000000, 0.000000,
+ 2424.000000, 0.000000, 2436.000000, 0.000000, 2448.000000, 0.000000, 2460.000000, 0.000000,
+ 2472.000000, 0.000000, 2484.000000, 0.000000, 2496.000000, 0.000000, 2508.000000, 0.000000,
+ 2520.000000, 0.000000, 2532.000000, 0.000000, 2544.000000, 0.000000, 2556.000000, 0.000000,
+ 2568.000000, 0.000000, 2580.000000, 0.000000, 2592.000000, 0.000000, 2604.000000, 0.000000,
+ 2616.000000, 0.000000, 2628.000000, 0.000000, 2640.000000, 0.000000, 2652.000000, 0.000000,
+ 2664.000000, 0.000000, 2676.000000, 0.000000, 2688.000000, 0.000000, 2700.000000, 0.000000,
+ 2712.000000, 0.000000, 2724.000000, 0.000000, 2736.000000, 0.000000, 2748.000000, 0.000000,
+ 2760.000000, 0.000000, 2772.000000, 0.000000, 2784.000000, 0.000000, 2796.000000, 0.000000,
+ 2808.000000, 0.000000, 2820.000000, 0.000000, 2832.000000, 0.000000, 2844.000000, 0.000000,
+ 2856.000000, 0.000000, 2868.000000, 0.000000, 2880.000000, 0.000000, 2892.000000, 0.000000,
+ 2904.000000, 0.000000, 2916.000000, 0.000000, 2928.000000, 0.000000, 2940.000000, 0.000000,
+ 2940.000000, 0.000000, 2952.000000, 0.000000, 2964.000000, 0.000000, 2976.000000, 0.000000,
+ 2988.000000, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Matra Test" script="deva">
+ <test-font name="Devamt.ttf" version="Version 1.02" checksum="0x2AB199ED"/>
+
+ <test-text>à¥à¤‚ ं॑</test-text>
+
+ <result-glyphs>
+ 0x00000130, 0x00000105, 0x000000C9, 0x00000003, 0x00000130, 0x000000C9, 0x00000328
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000003, 0x00000004
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 6.046875, 0.000000, 6.046875, 0.000000, 7.201172, 0.000000,
+ 10.201172, 0.000000, 16.248047, 0.000000, 16.248047, 0.000000, 17.402344, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Deva Stress Test" script="deva">
+ <test-font name="Devamt.ttf" version="Version 1.02" checksum="0x2AB199ED"/>
+
+ <test-text>कठकं कः क॑ क॒ कà¤à¥‘ कं॒ कà¤à¤‚ः क॒॑</test-text>
+
+ <result-glyphs>
+ 0x000000DB, 0x000000C8, 0x00000003, 0x000000DB, 0x000000C9, 0x00000003, 0x000000DB, 0x000000CA,
+ 0x00000003, 0x000000DB, 0x00000113, 0x00000003, 0x000000DB, 0x00000114, 0x00000003, 0x000000DB,
+ 0x000000C8, 0x00000328, 0x00000003, 0x000000DB, 0x00000114, 0x000000C9, 0x00000003, 0x000000DB,
+ 0x000000C8, 0x00000130, 0x000000C9, 0x00000130, 0x000000CA, 0x00000003, 0x000000DB, 0x00000113,
+ 0x00000130, 0x00000114
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000015, 0x00000014, 0x00000016, 0x00000017,
+ 0x00000018, 0x00000019, 0x00000019, 0x0000001A, 0x0000001A, 0x0000001B, 0x0000001C, 0x0000001D,
+ 0x0000001E, 0x0000001E
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 6.052734, 0.000000, 8.003906, 0.000000, 11.003906, 0.000000,
+ 17.056641, 0.000000, 19.007813, 0.000000, 22.007813, 0.000000, 30.011719, 0.000000,
+ 33.539063, 0.000000, 36.539063, 0.000000, 42.591797, 0.000000, 44.542969, 0.000000,
+ 47.542969, 0.000000, 55.546875, 0.000000, 55.546875, 0.000000, 58.546875, 0.000000,
+ 64.599609, 0.000000, 64.599609, 0.000000, 66.550781, 0.000000, 69.550781, 0.000000,
+ 77.554688, 0.000000, 75.603516, 0.000000, 77.554688, 0.000000, 80.554688, 0.000000,
+ 86.607422, 0.000000, 88.558594, 0.000000, 94.605469, 0.000000, 95.759766, 0.000000,
+ 102.960938, 0.000000, 106.488281, 0.000000, 109.488281, 0.000000, 115.541016, 0.000000,
+ 117.492188, 0.000000, 124.693359, 0.000000, 124.693359, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Deva Test" script="deva">
+ <test-font name="Devamt.ttf" version="Version 1.02" checksum="0x2AB199ED"/>
+
+ <test-text>रू क़ॠकà¥à¤· कà¥à¤•à¤¿ कà¥à¤°à¤¿ टà¥à¤°à¤¿ हिनà¥à¤¦à¥€ रà¥à¤•à¥à¤°à¤¿à¤‚ कà¥à¤·à¤¤à¥à¤°à¤œà¥à¤žà¤¤à¥à¤°à¤•à¥à¤· शà¥à¤° थà¥à¤° शà¥à¤° कके रà¥à¤•à¥‡à¤‚ केूकूेकेृ रà¥à¤•à¥‚ क़ क कॠकà¥à¤· कà¥à¤·à¥ कà¥à¤·à¥à¤• ज़ ज जॠजà¥à¤ž जà¥à¤žà¥ जà¥à¤žà¥à¤• रà¥à¤• रà¥à¤•à¥à¤• डà¥à¤° कà¥à¤• क़à¥à¤• क़à¥à¤• क़ॠकà¥à¤·à¥à¤• कà¥à¤·à¥ तà¥à¤°à¥à¤• दà¥à¤¦ कि हि रू रॠरà¥à¤•à¥‡ रà¥à¤•à¤‚ कॠकॠके दà¥à¤¦à¥à¤¦ क़à¥à¤· कà¥à¤· रà¥à¤•à¥à¤·à¥‡ दà¥à¤¦à¤¤à¥à¤°à¥à¤• जà¥à¤ž कà¥à¤¤à¥à¤µ जà¥à¤žà¥à¤• रà¥à¤•à¤ रà¥à¤•à¤¿à¤ रà¥à¤•à¥‡à¤ रà¥à¤•à¥à¤°à¤¿à¤ हिंदी हà¥à¤®à¤¿à¤¹à¥à¤¯à¤¿à¤–ि ङà¥à¤• ङà¥à¤® ङà¥à¤•à¥à¤¤ ङà¥à¤– ङà¥à¤— ङà¥à¤˜ ङà¥à¤•à¥à¤· ङà¥à¤•à¥à¤·à¥à¤µ ङà¥à¤•à¥à¤·à¥à¤¯ रà¥à¤•à¥à¤¤à¥à¤µà¤¿ रà¥à¤°à¥à¤°à¥à¤° कै के कॠकू कृ कॅ कॆ हॠहू हॆ है हे</test-text>
+
+ <result-glyphs>
+ 0x00000238, 0x0000FFFF, 0x00000003, 0x00000117, 0x00000111, 0x00000003, 0x00000156, 0x0000FFFF,
+ 0x0000FFFF, 0x00000003, 0x000002CF, 0x00000269, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000002CF,
+ 0x000001A3, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000002CE, 0x000001AD, 0x0000FFFF, 0x0000FFFF,
+ 0x00000003, 0x000002D0, 0x000000FF, 0x00000170, 0x0000FFFF, 0x000000EC, 0x00000104, 0x00000003,
+ 0x00000308, 0x000001A3, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x00000156, 0x0000FFFF, 0x0000FFFF, 0x000001B2, 0x0000FFFF, 0x0000FFFF, 0x00000157, 0x0000FFFF,
+ 0x0000FFFF, 0x000001B2, 0x0000FFFF, 0x0000FFFF, 0x00000156, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x000001C1, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000001B3, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x000001C1, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000000DB, 0x000000DB, 0x00000340, 0x00000003,
+ 0x000000DB, 0x00000343, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000000DB, 0x00000340,
+ 0x00000130, 0x00000106, 0x000000DB, 0x00000106, 0x00000130, 0x0000010B, 0x000000DB, 0x00000340,
+ 0x00000130, 0x00000107, 0x00000003, 0x000000DB, 0x00000106, 0x00000158, 0x0000FFFF, 0x00000003,
+ 0x00000117, 0x00000003, 0x000000DB, 0x00000003, 0x000000DB, 0x00000111, 0x00000003, 0x00000156,
+ 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000156, 0x0000FFFF, 0x0000FFFF, 0x00000111, 0x00000003,
+ 0x0000017F, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x000000DB, 0x00000003, 0x00000003, 0x0000011A,
+ 0x0000FFFF, 0x00000003, 0x000000E2, 0x00000003, 0x000000E2, 0x00000111, 0x00000003, 0x00000157,
+ 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000157, 0x0000FFFF, 0x0000FFFF, 0x00000111, 0x00000003,
+ 0x00000180, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x000000DB, 0x00000003, 0x000000DB, 0x00000158,
+ 0x0000FFFF, 0x00000003, 0x00000269, 0x0000FFFF, 0x0000FFFF, 0x00000158, 0x0000FFFF, 0x00000003,
+ 0x000001AF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000269, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x00000181, 0x0000FFFF, 0x000000DB, 0x00000003, 0x00000181, 0x0000FFFF, 0x000000DB, 0x00000003,
+ 0x00000117, 0x00000111, 0x00000003, 0x0000017F, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x000000DB,
+ 0x00000003, 0x00000156, 0x0000FFFF, 0x0000FFFF, 0x00000111, 0x00000003, 0x000001F8, 0x0000FFFF,
+ 0x0000FFFF, 0x0000FFFF, 0x000000DB, 0x00000003, 0x000002A4, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x000002CF, 0x000000DB, 0x00000003, 0x000002D0, 0x000000FF, 0x00000003, 0x00000238, 0x0000FFFF,
+ 0x00000003, 0x00000237, 0x0000FFFF, 0x00000003, 0x000000DB, 0x00000342, 0x0000FFFF, 0x0000FFFF,
+ 0x00000003, 0x000000DB, 0x00000256, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000000DB, 0x00000111,
+ 0x00000003, 0x000000DB, 0x00000105, 0x00000003, 0x000000DB, 0x00000340, 0x00000003, 0x0000016E,
+ 0x0000FFFF, 0x000002A4, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000181, 0x0000FFFF, 0x000000FD,
+ 0x00000003, 0x00000156, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000156, 0x0000FFFF, 0x0000FFFF,
+ 0x00000245, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000002A4, 0x0000FFFF, 0x0000FFFF, 0x000001F8,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x000000DB, 0x00000003, 0x00000157, 0x0000FFFF, 0x0000FFFF,
+ 0x00000003, 0x0000015D, 0x0000FFFF, 0x0000016C, 0x0000FFFF, 0x000000FB, 0x00000003, 0x00000180,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x000000DB, 0x00000003, 0x000000DB, 0x00000256, 0x0000FFFF,
+ 0x0000FFFF, 0x00000003, 0x00000308, 0x000000DB, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x000000DB, 0x00000343, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000308, 0x000001A3,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x000002E3, 0x000000FF,
+ 0x0000FFFF, 0x000000EC, 0x00000104, 0x00000003, 0x000002D7, 0x000002C6, 0x0000FFFF, 0x0000FFFF,
+ 0x000002D7, 0x000002C7, 0x0000FFFF, 0x0000FFFF, 0x000002D4, 0x000000DC, 0x00000003, 0x0000026E,
+ 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000272, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000273,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x0000026F, 0x0000FFFF, 0x0000FFFF,
+ 0x00000003, 0x00000270, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000271, 0x0000FFFF, 0x0000FFFF,
+ 0x00000003, 0x00000274, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000275,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000276,
+ 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x0000FFFF, 0x00000003, 0x00000304,
+ 0x0000015D, 0x0000FFFF, 0x0000016C, 0x0000FFFF, 0x000000FB, 0x0000FFFF, 0x0000FFFF, 0x00000003,
+ 0x000000F6, 0x00000111, 0x000001BD, 0x0000FFFF, 0x0000FFFF, 0x00000158, 0x0000FFFF, 0x00000003,
+ 0x000000DB, 0x0000010C, 0x00000003, 0x000000DB, 0x00000340, 0x00000003, 0x000000DB, 0x00000105,
+ 0x00000003, 0x000000DB, 0x00000106, 0x00000003, 0x000000DB, 0x00000107, 0x00000003, 0x000000DB,
+ 0x00000109, 0x00000003, 0x000000DB, 0x0000033C, 0x00000003, 0x0000022F, 0x0000FFFF, 0x00000003,
+ 0x00000230, 0x0000FFFF, 0x00000003, 0x000000FF, 0x0000010A, 0x00000003, 0x000000FF, 0x0000010C,
+ 0x00000003, 0x000000FF, 0x0000010B
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000D, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000E, 0x00000012,
+ 0x0000000F, 0x00000011, 0x00000010, 0x00000013, 0x00000017, 0x00000014, 0x00000016, 0x00000015,
+ 0x00000018, 0x0000001A, 0x00000019, 0x0000001B, 0x0000001C, 0x0000001D, 0x0000001E, 0x0000001F,
+ 0x00000025, 0x00000022, 0x00000024, 0x00000023, 0x00000020, 0x00000021, 0x00000026, 0x00000027,
+ 0x00000028, 0x00000029, 0x0000002A, 0x0000002B, 0x0000002D, 0x0000002C, 0x0000002E, 0x0000002F,
+ 0x00000030, 0x00000031, 0x00000033, 0x00000032, 0x00000034, 0x00000035, 0x00000036, 0x00000037,
+ 0x00000038, 0x0000003A, 0x00000039, 0x0000003B, 0x0000003C, 0x0000003E, 0x0000003D, 0x0000003F,
+ 0x00000040, 0x00000042, 0x00000041, 0x00000043, 0x00000044, 0x00000045, 0x00000046, 0x00000047,
+ 0x0000004A, 0x0000004B, 0x00000048, 0x00000049, 0x0000004C, 0x0000004D, 0x0000004E, 0x0000004F,
+ 0x00000050, 0x00000050, 0x00000051, 0x00000052, 0x00000053, 0x00000053, 0x00000054, 0x00000055,
+ 0x00000056, 0x00000056, 0x00000057, 0x0000005A, 0x0000005B, 0x00000058, 0x00000059, 0x0000005C,
+ 0x0000005D, 0x0000005E, 0x0000005F, 0x00000060, 0x00000061, 0x00000062, 0x00000063, 0x00000064,
+ 0x00000065, 0x00000066, 0x00000067, 0x00000068, 0x00000069, 0x0000006A, 0x0000006B, 0x0000006C,
+ 0x0000006D, 0x0000006E, 0x0000006F, 0x00000070, 0x00000071, 0x00000072, 0x00000073, 0x00000074,
+ 0x00000075, 0x00000076, 0x00000077, 0x00000078, 0x00000079, 0x0000007A, 0x0000007B, 0x0000007C,
+ 0x0000007D, 0x0000007E, 0x0000007F, 0x00000080, 0x00000081, 0x00000082, 0x00000083, 0x00000084,
+ 0x00000085, 0x00000086, 0x00000087, 0x00000088, 0x00000089, 0x0000008A, 0x0000008D, 0x0000008B,
+ 0x0000008C, 0x0000008E, 0x00000091, 0x00000092, 0x00000093, 0x0000008F, 0x00000090, 0x00000094,
+ 0x00000095, 0x00000097, 0x00000096, 0x00000098, 0x00000099, 0x0000009A, 0x0000009B, 0x0000009C,
+ 0x0000009D, 0x0000009E, 0x0000009F, 0x000000A0, 0x000000A1, 0x000000A2, 0x000000A3, 0x000000A4,
+ 0x000000A5, 0x000000A6, 0x000000A7, 0x000000A8, 0x000000A9, 0x000000AA, 0x000000AB, 0x000000AC,
+ 0x000000AD, 0x000000AE, 0x000000AF, 0x000000B0, 0x000000B1, 0x000000B2, 0x000000B3, 0x000000B4,
+ 0x000000B5, 0x000000B6, 0x000000B7, 0x000000B8, 0x000000B9, 0x000000BA, 0x000000BB, 0x000000BC,
+ 0x000000BE, 0x000000BD, 0x000000BF, 0x000000C1, 0x000000C0, 0x000000C2, 0x000000C3, 0x000000C4,
+ 0x000000C5, 0x000000C6, 0x000000C7, 0x000000C8, 0x000000CB, 0x000000CC, 0x000000C9, 0x000000CA,
+ 0x000000CD, 0x000000D0, 0x000000CE, 0x000000CF, 0x000000D1, 0x000000D2, 0x000000D3, 0x000000D4,
+ 0x000000D5, 0x000000D6, 0x000000D7, 0x000000D8, 0x000000D9, 0x000000DA, 0x000000DB, 0x000000DC,
+ 0x000000DD, 0x000000DE, 0x000000DF, 0x000000E0, 0x000000E1, 0x000000E2, 0x000000E3, 0x000000E4,
+ 0x000000E5, 0x000000E6, 0x000000E7, 0x000000E8, 0x000000E9, 0x000000EC, 0x000000ED, 0x000000EE,
+ 0x000000EF, 0x000000EA, 0x000000EB, 0x000000F0, 0x000000F1, 0x000000F2, 0x000000F3, 0x000000F4,
+ 0x000000F5, 0x000000F6, 0x000000F7, 0x000000F8, 0x000000F9, 0x000000FA, 0x000000FB, 0x000000FC,
+ 0x000000FD, 0x000000FE, 0x000000FF, 0x00000100, 0x00000101, 0x00000102, 0x00000103, 0x00000104,
+ 0x00000105, 0x00000106, 0x00000107, 0x00000108, 0x00000109, 0x0000010C, 0x0000010A, 0x0000010B,
+ 0x0000010D, 0x0000010E, 0x00000112, 0x00000111, 0x0000010F, 0x00000110, 0x00000113, 0x00000114,
+ 0x00000117, 0x00000118, 0x00000115, 0x00000116, 0x00000119, 0x0000011A, 0x00000120, 0x0000011D,
+ 0x0000011F, 0x0000011E, 0x0000011B, 0x0000011C, 0x00000121, 0x00000122, 0x00000124, 0x00000123,
+ 0x00000125, 0x00000126, 0x00000127, 0x00000128, 0x0000012C, 0x00000129, 0x0000012A, 0x0000012B,
+ 0x00000130, 0x0000012D, 0x0000012E, 0x0000012F, 0x00000132, 0x00000131, 0x00000133, 0x00000134,
+ 0x00000135, 0x00000136, 0x00000137, 0x00000138, 0x00000139, 0x0000013A, 0x0000013B, 0x0000013C,
+ 0x0000013D, 0x0000013E, 0x0000013F, 0x00000140, 0x00000141, 0x00000142, 0x00000143, 0x00000144,
+ 0x00000145, 0x00000146, 0x00000147, 0x00000148, 0x00000149, 0x0000014A, 0x0000014B, 0x0000014C,
+ 0x0000014D, 0x0000014E, 0x0000014F, 0x00000150, 0x00000151, 0x00000152, 0x00000153, 0x00000154,
+ 0x00000155, 0x00000156, 0x00000157, 0x00000158, 0x00000159, 0x0000015A, 0x0000015B, 0x0000015C,
+ 0x0000015D, 0x0000015E, 0x0000015F, 0x00000160, 0x00000161, 0x00000162, 0x00000163, 0x0000016B,
+ 0x00000166, 0x00000167, 0x00000168, 0x00000169, 0x0000016A, 0x00000164, 0x00000165, 0x0000016C,
+ 0x0000016F, 0x00000170, 0x00000171, 0x00000173, 0x00000172, 0x0000016D, 0x0000016E, 0x00000174,
+ 0x00000175, 0x00000176, 0x00000177, 0x00000178, 0x00000179, 0x0000017A, 0x0000017B, 0x0000017C,
+ 0x0000017D, 0x0000017E, 0x0000017F, 0x00000180, 0x00000181, 0x00000182, 0x00000183, 0x00000184,
+ 0x00000185, 0x00000186, 0x00000187, 0x00000188, 0x00000189, 0x0000018A, 0x0000018B, 0x0000018C,
+ 0x0000018D, 0x0000018E, 0x0000018F, 0x00000190, 0x00000191, 0x00000192, 0x00000193, 0x00000194,
+ 0x00000195, 0x00000196, 0x00000197
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 8.707031, 0.000000, 8.707031, 0.000000, 11.707031, 0.000000,
+ 17.759766, 0.000000, 19.710938, 0.000000, 22.710938, 0.000000, 30.955078, 0.000000,
+ 30.955078, 0.000000, 30.955078, 0.000000, 33.955078, 0.000000, 37.318359, 0.000000,
+ 45.322266, 0.000000, 45.322266, 0.000000, 45.322266, 0.000000, 48.322266, 0.000000,
+ 51.685547, 0.000000, 59.689453, 0.000000, 59.689453, 0.000000, 59.689453, 0.000000,
+ 62.689453, 0.000000, 66.052734, 0.000000, 72.082031, 0.000000, 72.082031, 0.000000,
+ 72.082031, 0.000000, 75.082031, 0.000000, 78.445313, 0.000000, 84.996094, 0.000000,
+ 89.015625, 0.000000, 89.015625, 0.000000, 95.408203, 0.000000, 98.771484, 0.000000,
+ 101.771484, 0.000000, 105.134766, 0.000000, 113.138672, 0.000000, 113.138672, 0.000000,
+ 113.138672, 0.000000, 113.138672, 0.000000, 113.138672, 0.000000, 113.138672, 0.000000,
+ 116.138672, 0.000000, 124.382813, 0.000000, 124.382813, 0.000000, 124.382813, 0.000000,
+ 131.507813, 0.000000, 131.507813, 0.000000, 131.507813, 0.000000, 139.095703, 0.000000,
+ 139.095703, 0.000000, 139.095703, 0.000000, 146.220703, 0.000000, 146.220703, 0.000000,
+ 146.220703, 0.000000, 154.464844, 0.000000, 154.464844, 0.000000, 154.464844, 0.000000,
+ 157.464844, 0.000000, 165.433594, 0.000000, 165.433594, 0.000000, 165.433594, 0.000000,
+ 168.433594, 0.000000, 175.851563, 0.000000, 175.851563, 0.000000, 175.851563, 0.000000,
+ 178.851563, 0.000000, 186.820313, 0.000000, 186.820313, 0.000000, 186.820313, 0.000000,
+ 189.820313, 0.000000, 197.824219, 0.000000, 203.876953, 0.000000, 205.828125, 0.000000,
+ 208.828125, 0.000000, 214.880859, 0.000000, 216.832031, 0.000000, 216.832031, 0.000000,
+ 216.832031, 0.000000, 216.832031, 0.000000, 219.832031, 0.000000, 225.884766, 0.000000,
+ 227.835938, 0.000000, 233.882813, 0.000000, 235.037109, 0.000000, 241.089844, 0.000000,
+ 243.041016, 0.000000, 249.087891, 0.000000, 250.242188, 0.000000, 256.294922, 0.000000,
+ 258.246094, 0.000000, 264.292969, 0.000000, 265.447266, 0.000000, 268.447266, 0.000000,
+ 274.500000, 0.000000, 274.505859, 0.000000, 276.451172, 0.000000, 276.451172, 0.000000,
+ 279.451172, 0.000000, 287.455078, 0.000000, 290.455078, 0.000000, 298.458984, 0.000000,
+ 301.458984, 0.000000, 307.511719, 0.000000, 309.462891, 0.000000, 312.462891, 0.000000,
+ 320.707031, 0.000000, 320.707031, 0.000000, 320.707031, 0.000000, 323.707031, 0.000000,
+ 331.951172, 0.000000, 331.951172, 0.000000, 331.951172, 0.000000, 331.951172, 0.000000,
+ 334.951172, 0.000000, 340.705078, 0.000000, 340.705078, 0.000000, 340.705078, 0.000000,
+ 340.705078, 0.000000, 348.708984, 0.000000, 351.708984, 0.000000, 354.708984, 0.000000,
+ 362.724609, 0.000000, 362.724609, 0.000000, 365.724609, 0.000000, 373.740234, 0.000000,
+ 376.740234, 0.000000, 384.755859, 0.000000, 384.755859, 0.000000, 387.755859, 0.000000,
+ 395.343750, 0.000000, 395.343750, 0.000000, 395.343750, 0.000000, 398.343750, 0.000000,
+ 405.931641, 0.000000, 405.931641, 0.000000, 405.931641, 0.000000, 405.931641, 0.000000,
+ 408.931641, 0.000000, 414.052734, 0.000000, 414.052734, 0.000000, 414.052734, 0.000000,
+ 414.052734, 0.000000, 422.056641, 0.000000, 425.056641, 0.000000, 431.115234, 0.000000,
+ 433.060547, 0.000000, 433.060547, 0.000000, 436.060547, 0.000000, 444.064453, 0.000000,
+ 444.064453, 0.000000, 442.119141, 0.000000, 444.064453, 0.000000, 444.064453, 0.000000,
+ 447.064453, 0.000000, 454.060547, 0.000000, 454.060547, 0.000000, 454.060547, 0.000000,
+ 457.060547, 0.000000, 465.064453, 0.000000, 465.064453, 0.000000, 465.064453, 0.000000,
+ 468.064453, 0.000000, 474.339844, 0.000000, 474.339844, 0.000000, 482.343750, 0.000000,
+ 485.343750, 0.000000, 491.619141, 0.000000, 491.619141, 0.000000, 499.623047, 0.000000,
+ 502.623047, 0.000000, 508.675781, 0.000000, 510.626953, 0.000000, 513.626953, 0.000000,
+ 519.380859, 0.000000, 519.380859, 0.000000, 519.380859, 0.000000, 519.380859, 0.000000,
+ 527.384766, 0.000000, 530.384766, 0.000000, 538.628906, 0.000000, 538.628906, 0.000000,
+ 538.628906, 0.000000, 538.628906, 0.000000, 541.628906, 0.000000, 546.427734, 0.000000,
+ 546.427734, 0.000000, 546.427734, 0.000000, 546.427734, 0.000000, 554.431641, 0.000000,
+ 557.431641, 0.000000, 564.064453, 0.000000, 564.064453, 0.000000, 564.064453, 0.000000,
+ 567.064453, 0.000000, 570.427734, 0.000000, 578.431641, 0.000000, 581.431641, 0.000000,
+ 584.794922, 0.000000, 591.345703, 0.000000, 594.345703, 0.000000, 603.052734, 0.000000,
+ 603.052734, 0.000000, 606.052734, 0.000000, 612.667969, 0.000000, 612.667969, 0.000000,
+ 615.667969, 0.000000, 621.720703, 0.000000, 623.671875, 0.000000, 623.671875, 0.000000,
+ 623.671875, 0.000000, 626.671875, 0.000000, 632.736328, 0.000000, 634.675781, 0.000000,
+ 634.675781, 0.000000, 634.675781, 0.000000, 637.675781, 0.000000, 643.728516, 0.000000,
+ 645.679688, 0.000000, 648.679688, 0.000000, 654.732422, 0.000000, 656.683594, 0.000000,
+ 659.683594, 0.000000, 665.736328, 0.000000, 667.687500, 0.000000, 670.687500, 0.000000,
+ 677.080078, 0.000000, 677.080078, 0.000000, 683.712891, 0.000000, 683.712891, 0.000000,
+ 683.712891, 0.000000, 686.712891, 0.000000, 692.988281, 0.000000, 692.988281, 0.000000,
+ 700.054688, 0.000000, 703.054688, 0.000000, 711.298828, 0.000000, 711.298828, 0.000000,
+ 711.298828, 0.000000, 714.298828, 0.000000, 722.542969, 0.000000, 722.542969, 0.000000,
+ 722.542969, 0.000000, 722.542969, 0.000000, 722.542969, 0.000000, 722.542969, 0.000000,
+ 725.542969, 0.000000, 732.175781, 0.000000, 732.175781, 0.000000, 732.175781, 0.000000,
+ 736.974609, 0.000000, 736.974609, 0.000000, 736.974609, 0.000000, 736.974609, 0.000000,
+ 744.978516, 0.000000, 747.978516, 0.000000, 755.566406, 0.000000, 755.566406, 0.000000,
+ 755.566406, 0.000000, 758.566406, 0.000000, 764.841797, 0.000000, 764.841797, 0.000000,
+ 768.673828, 0.000000, 768.673828, 0.000000, 775.541016, 0.000000, 778.541016, 0.000000,
+ 783.662109, 0.000000, 783.662109, 0.000000, 783.662109, 0.000000, 783.662109, 0.000000,
+ 791.666016, 0.000000, 794.666016, 0.000000, 800.730469, 0.000000, 802.669922, 0.000000,
+ 802.669922, 0.000000, 802.669922, 0.000000, 805.669922, 0.000000, 809.033203, 0.000000,
+ 817.037109, 0.000000, 817.037109, 0.000000, 817.037109, 0.000000, 817.037109, 0.000000,
+ 820.037109, 0.000000, 826.089844, 0.000000, 828.041016, 0.000000, 828.041016, 0.000000,
+ 828.041016, 0.000000, 828.041016, 0.000000, 831.041016, 0.000000, 834.404297, 0.000000,
+ 842.408203, 0.000000, 842.408203, 0.000000, 842.408203, 0.000000, 842.408203, 0.000000,
+ 842.408203, 0.000000, 842.408203, 0.000000, 845.408203, 0.000000, 848.771484, 0.000000,
+ 855.322266, 0.000000, 855.322266, 0.000000, 861.714844, 0.000000, 865.078125, 0.000000,
+ 868.078125, 0.000000, 871.441406, 0.000000, 881.167969, 0.000000, 881.167969, 0.000000,
+ 881.167969, 0.000000, 884.531250, 0.000000, 894.257813, 0.000000, 894.257813, 0.000000,
+ 894.257813, 0.000000, 897.621094, 0.000000, 906.175781, 0.000000, 909.175781, 0.000000,
+ 919.007813, 0.000000, 919.007813, 0.000000, 919.007813, 0.000000, 922.007813, 0.000000,
+ 932.349609, 0.000000, 932.349609, 0.000000, 932.349609, 0.000000, 935.349609, 0.000000,
+ 945.181641, 0.000000, 945.181641, 0.000000, 945.181641, 0.000000, 945.181641, 0.000000,
+ 945.181641, 0.000000, 948.181641, 0.000000, 958.330078, 0.000000, 958.330078, 0.000000,
+ 958.330078, 0.000000, 961.330078, 0.000000, 970.892578, 0.000000, 970.892578, 0.000000,
+ 970.892578, 0.000000, 973.892578, 0.000000, 983.455078, 0.000000, 983.455078, 0.000000,
+ 983.455078, 0.000000, 986.455078, 0.000000, 996.017578, 0.000000, 996.017578, 0.000000,
+ 996.017578, 0.000000, 996.017578, 0.000000, 996.017578, 0.000000, 999.017578, 0.000000,
+ 1009.347656, 0.000000, 1009.347656, 0.000000, 1009.347656, 0.000000, 1009.347656, 0.000000,
+ 1009.347656, 0.000000, 1009.347656, 0.000000, 1009.347656, 0.000000, 1012.347656, 0.000000,
+ 1022.027344, 0.000000, 1022.027344, 0.000000, 1022.027344, 0.000000, 1022.027344, 0.000000,
+ 1022.027344, 0.000000, 1022.027344, 0.000000, 1022.027344, 0.000000, 1025.027344, 0.000000,
+ 1028.390625, 0.000000, 1034.666016, 0.000000, 1034.666016, 0.000000, 1038.498047, 0.000000,
+ 1038.498047, 0.000000, 1045.365234, 0.000000, 1045.365234, 0.000000, 1045.365234, 0.000000,
+ 1048.365234, 0.000000, 1053.697266, 0.000000, 1054.195313, 0.000000, 1060.025391, 0.000000,
+ 1060.025391, 0.000000, 1059.322266, 0.000000, 1060.025391, 0.000000, 1060.025391, 0.000000,
+ 1063.025391, 0.000000, 1069.078125, 0.000000, 1071.029297, 0.000000, 1074.029297, 0.000000,
+ 1080.082031, 0.000000, 1082.033203, 0.000000, 1085.033203, 0.000000, 1091.085938, 0.000000,
+ 1093.037109, 0.000000, 1096.037109, 0.000000, 1102.089844, 0.000000, 1104.041016, 0.000000,
+ 1107.041016, 0.000000, 1113.093750, 0.000000, 1115.044922, 0.000000, 1118.044922, 0.000000,
+ 1124.097656, 0.000000, 1126.048828, 0.000000, 1129.048828, 0.000000, 1135.101563, 0.000000,
+ 1137.052734, 0.000000, 1140.052734, 0.000000, 1146.603516, 0.000000, 1146.603516, 0.000000,
+ 1149.603516, 0.000000, 1156.154297, 0.000000, 1156.154297, 0.000000, 1159.154297, 0.000000,
+ 1165.623047, 0.000000, 1165.705078, 0.000000, 1168.705078, 0.000000, 1175.173828, 0.000000,
+ 1175.255859, 0.000000, 1178.255859, 0.000000, 1184.724609, 0.000000, 1184.806641, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Japanese Han" script="hani" lang="JAN">
+ <test-font name="ARIALUNI.TTF" version="Version 1.00" checksum="0x58081551"/>
+
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+
+ <result-glyphs>
+ 0x000020BC, 0x000025DD, 0x00002149, 0x00003EA0, 0x00002400, 0x0000271B, 0x0000298C, 0x00000003,
+ 0x0000267F, 0x0000410D, 0x00000003, 0x000020BC, 0x0000567E, 0x00002149, 0x00003EA0, 0x00002400,
+ 0x0000271B, 0x0000299A, 0x00000003, 0x00005489, 0x000042F2
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 12.000000, 0.000000, 24.000000, 0.000000, 36.000000, 0.000000,
+ 48.000000, 0.000000, 60.000000, 0.000000, 72.000000, 0.000000, 84.000000, 0.000000,
+ 87.333984, 0.000000, 99.333984, 0.000000, 111.333984, 0.000000, 114.667969, 0.000000,
+ 126.667969, 0.000000, 138.667969, 0.000000, 150.667969, 0.000000, 162.667969, 0.000000,
+ 174.667969, 0.000000, 186.667969, 0.000000, 198.667969, 0.000000, 202.001953, 0.000000,
+ 214.001953, 0.000000, 226.001953, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Korean Han" script="hani" lang="KOR">
+ <test-font name="ARIALUNI.TTF" version="Version 1.00" checksum="0x58081551"/>
+
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+
+ <result-glyphs>
+ 0x000020BC, 0x000025DD, 0x00002149, 0x00003EA0, 0x00002400, 0x0000271B, 0x0000298C, 0x00000003,
+ 0x0000267F, 0x0000410D, 0x00000003, 0x000020BC, 0x00007492, 0x00002149, 0x00003EA0, 0x00002400,
+ 0x0000271B, 0x0000299A, 0x00000003, 0x00005489, 0x000042F2
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 12.000000, 0.000000, 24.000000, 0.000000, 36.000000, 0.000000,
+ 48.000000, 0.000000, 60.000000, 0.000000, 72.000000, 0.000000, 84.000000, 0.000000,
+ 87.333984, 0.000000, 99.333984, 0.000000, 111.333984, 0.000000, 114.667969, 0.000000,
+ 126.667969, 0.000000, 138.667969, 0.000000, 150.667969, 0.000000, 162.667969, 0.000000,
+ 174.667969, 0.000000, 186.667969, 0.000000, 198.667969, 0.000000, 202.001953, 0.000000,
+ 214.001953, 0.000000, 226.001953, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Traditional Han" script="hani" lang="ZHT">
+ <test-font name="ARIALUNI.TTF" version="Version 1.00" checksum="0x58081551"/>
+
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+
+ <result-glyphs>
+ 0x000020BC, 0x000025DD, 0x00002149, 0x000079EB, 0x00002400, 0x0000271B, 0x0000298C, 0x00000003,
+ 0x00007677, 0x0000410D, 0x00000003, 0x000020BC, 0x00007E26, 0x00002149, 0x000079EB, 0x00002400,
+ 0x0000271B, 0x0000299A, 0x00000003, 0x00007D8F, 0x00007A97
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 12.000000, 0.000000, 24.000000, 0.000000, 36.000000, 0.000000,
+ 48.000000, 0.000000, 60.000000, 0.000000, 72.000000, 0.000000, 84.000000, 0.000000,
+ 87.333984, 0.000000, 99.333984, 0.000000, 111.333984, 0.000000, 114.667969, 0.000000,
+ 126.667969, 0.000000, 138.667969, 0.000000, 150.667969, 0.000000, 162.667969, 0.000000,
+ 174.667969, 0.000000, 186.667969, 0.000000, 198.667969, 0.000000, 202.001953, 0.000000,
+ 214.001953, 0.000000, 226.001953, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Simplified Han" script="hani" lang="ZHS">
+ <test-font name="ARIALUNI.TTF" version="Version 1.00" checksum="0x58081551"/>
+
+ <test-text>中åŽäººæ°‘共和国 å°æ¹¾ 中è¯äººæ°‘共和國 臺ç£</test-text>
+
+ <result-glyphs>
+ 0x000020BC, 0x000025DD, 0x00002149, 0x000079EB, 0x00002400, 0x0000271B, 0x0000298C, 0x00000003,
+ 0x00007677, 0x00008886, 0x00000003, 0x000020BC, 0x0000567E, 0x00002149, 0x000079EB, 0x00002400,
+ 0x0000271B, 0x0000299A, 0x00000003, 0x00007D8F, 0x00007A97
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003, 0x00000004, 0x00000005, 0x00000006, 0x00000007,
+ 0x00000008, 0x00000009, 0x0000000A, 0x0000000B, 0x0000000C, 0x0000000D, 0x0000000E, 0x0000000F,
+ 0x00000010, 0x00000011, 0x00000012, 0x00000013, 0x00000014
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 12.000000, 0.000000, 24.000000, 0.000000, 36.000000, 0.000000,
+ 48.000000, 0.000000, 60.000000, 0.000000, 72.000000, 0.000000, 84.000000, 0.000000,
+ 87.333984, 0.000000, 99.333984, 0.000000, 111.333984, 0.000000, 114.667969, 0.000000,
+ 126.667969, 0.000000, 138.667969, 0.000000, 150.667969, 0.000000, 162.667969, 0.000000,
+ 174.667969, 0.000000, 186.667969, 0.000000, 198.667969, 0.000000, 202.001953, 0.000000,
+ 214.001953, 0.000000, 226.001953, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Deva locl Hindi" script="deva" lang="HIN">
+ <test-font name="TestFont1.otf" version="Version 001.000 " checksum="0x75B4A535"/>
+
+ <test-text>शङ़à¥</test-text>
+
+ <result-glyphs>
+ 0x00000002, 0x00000001, 0x00000006, 0x0000FFFF
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 7.572000, 0.000000, 15.108000, 0.000000, 15.108000, 0.000000,
+ 15.108000, 0.000000
+ </result-positions>
+ </test-case>
+
+ <test-case id="Deva locl Marathi" script="deva" lang="MAR">
+ <test-font name="TestFont1.otf" version="Version 001.000 " checksum="0x75B4A535"/>
+
+ <test-text>शङ़à¥</test-text>
+
+ <result-glyphs>
+ 0x00000005, 0x00000001, 0x00000006, 0x0000FFFF
+ </result-glyphs>
+
+ <result-indices>
+ 0x00000000, 0x00000001, 0x00000002, 0x00000003
+ </result-indices>
+
+ <result-positions>
+ 0.000000, 0.000000, 7.392000, 0.000000, 14.927999, 0.000000, 14.927999, 0.000000,
+ 14.927999, 0.000000
+ </result-positions>
+ </test-case>
+
+</layout-tests>
diff --git a/Build/source/libs/icu-xetex/test/testdata/ra.xlf b/Build/source/libs/icu-xetex/test/testdata/ra.xlf
new file mode 100644
index 00000000000..86a56080a31
--- /dev/null
+++ b/Build/source/libs/icu-xetex/test/testdata/ra.xlf
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE xliff SYSTEM "http://www.oasis-open.org/committees/xliff/documents/xliff.dtd">
+<xliff version = "1.0">
+ <file xml:space = "preserve" source-language = "en" datatype = "ICUResourceBundle" original = "ra.txt" tool = "genrb" date = "2006-01-17T20:58:58Z">
+ <header></header>
+ <body>
+ <group restype = "table" xml:space = "preserve" id = "ra" >
+ <!--These are top level comments for the bundle. Tag name: ra-->
+ <note> Comments for tag named ra</note>
+ <group restype = "array" xml:space = "preserve" id = "TestArray" resname="TestArray">
+ <!--Top level comments for Tag name: TestArray-->
+ <note> This resource is for Tag name: Array</note>
+ <trans-unit xml:space = "preserve" id = "TestArray_0" translate="yes">
+ <!--comments for un-named string-->
+ <source >abcde</source>
+ <note> This resource is un-named string</note>
+ </trans-unit>
+ <trans-unit restype = "int" xml:space = "preserve" id = "TestArray_1" translate="yes">
+ <!--comments for un-named int-->
+ <source>1</source>
+ <note> This resource is un-named int</note>
+ </trans-unit>
+ <bin-unit restype = "bin" id = "TestArray_2" mime-type = "application" translate="yes">
+ <!--comments for un-named binary-->
+ <bin-source>
+ <internal-file form = "application" crc = "-2140397846">12312312</internal-file>
+ </bin-source>
+ <note> This resource is for un-named binary</note>
+ </bin-unit>
+ </group>
+ <bin-unit restype = "import" id = "TestImpport" mime-type = "application" resname = "TestImpport" translate="yes">
+ <!--comments for TestImport-->
+ <bin-source>
+ <external-file href = "importtest.bin"/>
+ </bin-source>
+ <note> This resource is for TestImport</note>
+ </bin-unit>
+ <trans-unit xml:space = "preserve" id = "TestInclude" resname = "TestInclude" translate="yes">
+ <!--comments for TestInclude-->
+ <source >#--------------------------------------------------------------------
+# Copyright (c) 1999-2004, International Business Machines
+# Corporation and others. All Rights Reserved.
+#--------------------------------------------------------------------
+
+# InterIndic-Bengali
+#:: NFD (NFC) ;
+\uE001&gt;\u0981; # SIGN CANDRABINDU
+\uE002&gt;\u0982; # SIGN ANUSVARA
+\uE003&gt;\u0983; # SIGN VISARGA
+\uE005&gt;\u0985; # LETTER A
+\uE006&gt;\u0986; # LETTER AA
+\uE007&gt;\u0987; # LETTER I
+\uE008&gt;\u0988; # LETTER II
+\uE009&gt;\u0989; # LETTER U
+\uE00A&gt;\u098A; # LETTER UU
+\uE00B&gt;\u098B; # LETTER VOCALIC R
+\uE00C&gt;\u098C; # LETTER VOCALIC L
+\uE00D&gt;\u098F; # FALLBACK
+\uE00E&gt;\u098F; # FALLBACK
+\uE00F&gt;\u098F; # LETTER E
+\uE010&gt;\u0990; # LETTER AI
+\uE011&gt;\u0993; # FALLBACK
+\uE012&gt;\u0993; # FALLBACK
+\uE013&gt;\u0993; # LETTER O
+\uE014&gt;\u0994; # LETTER AU
+\uE015&gt;\u0995; # LETTER KA
+\uE016&gt;\u0996; # LETTER KHA
+\uE017&gt;\u0997; # LETTER GA
+\uE018&gt;\u0998; # LETTER GHA
+\uE019&gt;\u0999; # LETTER NGA
+\uE01A&gt;\u099A; # LETTER CA
+\uE01B&gt;\u099B; # LETTER CHA
+\uE01C&gt;\u099C; # LETTER JA
+\uE01D&gt;\u099D; # LETTER JHA
+\uE01E&gt;\u099E; # LETTER NYA
+\uE01F&gt;\u099F; # LETTER TTA
+\uE020&gt;\u09A0; # LETTER TTHA
+\uE021&gt;\u09A1; # LETTER DDA
+\uE022&gt;\u09A2; # LETTER DDHA
+\uE023&gt;\u09A3; # LETTER NNA
+\uE024&gt;\u09A4; # LETTER TA
+\uE025&gt;\u09A5; # LETTER THA
+\uE026&gt;\u09A6; # LETTER DA
+\uE027&gt;\u09A7; # LETTER DHA
+\uE028&gt;\u09A8; # LETTER NA
+\uE029&gt;\u09A8\u09BC; # REMAP (indicExceptions.txt): \u09a9&gt;\u09a8 = LETTER NNNA&gt;LETTER NA
+\uE02A&gt;\u09AA; # LETTER PA
+\uE02B&gt;\u09AB; # LETTER PHA
+\uE02C&gt;\u09AC; # LETTER BA
+\uE02D&gt;\u09AD; # LETTER BHA
+\uE02E&gt;\u09AE; # LETTER MA
+\uE02F&gt;\u09AF; # LETTER YA
+\uE030&gt;\u09B0; # LETTER RA
+\uE031&gt;\u09B0\u09BC; # FALLBACK to RA
+\uE032&gt;\u09B2; # LETTER LA
+\uE033&gt;\u09B2; # REMAP (indicExceptions.txt): \u09b3&gt;\u09b2 = LETTER LLA&gt;LETTER LA
+\uE034&gt;\u09B2; # REMAP (indicExceptions.txt): \u09b4&gt;\u09b2 = LETTER LLLA&gt;LETTER LA
+\uE035&gt;\u09AC; # REMAP (indicExceptions.txt): \u09b5&gt;\u09ac = LETTER VA&gt;LETTER BA
+\uE036&gt;\u09B6; # LETTER SHA
+\uE037&gt;\u09B7; # LETTER SSA
+\uE038&gt;\u09B8; # LETTER SA
+\uE039&gt;\u09B9; # LETTER HA
+\uE03C&gt;\u09BC; # SIGN NUKTA
+\uE03D&gt;; # FALLBACK BLOW AWAY AVAGRAHA
+\uE03E&gt;\u09BE; # VOWEL SIGN AA
+\uE03F&gt;\u09BF; # VOWEL SIGN I
+\uE040&gt;\u09C0; # VOWEL SIGN II
+\uE041&gt;\u09C1; # VOWEL SIGN U
+\uE042&gt;\u09C2; # VOWEL SIGN UU
+\uE043&gt;\u09C3; # VOWEL SIGN VOCALIC R
+\uE044&gt;\u09C4; # VOWEL SIGN VOCALIC RR
+\uE045&gt;\u09C7; # REMAP (indicExceptions.txt): \u09c5&gt;\u09c7 = VOWEL SIGN CANDRA E&gt;VOWEL SIGN E
+\uE046&gt;\u09C7; # FALLBACK
+\uE047&gt;\u09C7; # VOWEL SIGN E
+\uE048&gt;\u09C8; # VOWEL SIGN AI
+\uE049&gt;\u09C7\u09BE; # REMAP (indicExceptions.txt): \u09c9&gt;\u09cb = VOWEL SIGN CANDRA O&gt;VOWEL SIGN O
+\uE04A&gt;\u09C7\u09BE; # FALLBACK
+\uE04B&gt;\u09C7\u09BE; # VOWEL SIGN O
+\uE04C&gt;\u09C7\u09D7; # VOWEL SIGN AU
+\uE04D&gt;\u09CD; # SIGN VIRAMA
+\uE050&gt;\u0993\u0982; # InterIndic-Bengali: OM
+\ue051&gt;;
+\ue052&gt;;
+\ue053&gt;;
+\ue054&gt;;
+\uE055&gt;; # LENGTH MARK
+\uE056&gt;\u09C8; # REMAP (indicExceptions.txt): \u09d6&gt;\u09c8 = AI LENGTH MARK&gt;VOWEL SIGN AI
+\uE057&gt;\u09D7; # AU LENGTH MARK
+\uE058&gt;\u0995\u09BC; # FALLBACK
+\uE059&gt;\u0996\u09BC; # REMAP (indicExceptions.txt): \u09d9&gt;\u0996 = LETTER KHHA&gt;LETTER KHA
+\uE05A&gt;\u0997\u09BC; # REMAP (indicExceptions.txt): \u09da&gt;\u0997 = LETTER GHHA&gt;LETTER GA
+\uE05B&gt;\u099C\u09BC; # REMAP (indicExceptions.txt): \u09db&gt;\u099c = LETTER ZA&gt;LETTER JA
+\uE05C&gt;\u09A1\u09BC; # FALLBACK
+\uE05D&gt;\u09A2\u09BC; # LETTER RHA
+\uE05E&gt;\u09AB\u09BC; # REMAP (indicExceptions.txt): \u09de&gt;\u09ab = LETTER FA&gt;LETTER PHA
+\uE05F&gt;\u09AF\u09BC; # LETTER YYA
+\uE060&gt;\u09E0; # LETTER VOCALIC RR
+\uE061&gt;\u09E1; # LETTER VOCALIC LL
+\uE062&gt;\u09E2; # VOWEL SIGN VOCALIC L
+\uE063&gt;\u09E3; # VOWEL SIGN VOCALIC LL
+\uE064&gt;\u0964; # DANDA
+\uE065&gt;\u0965; # DOUBLE DANDA
+\uE066&gt;\u09E6; # DIGIT ZERO
+\uE067&gt;\u09E7; # DIGIT ONE
+\uE068&gt;\u09E8; # DIGIT TWO
+\uE069&gt;\u09E9; # DIGIT THREE
+\uE06A&gt;\u09EA; # DIGIT FOUR
+\uE06B&gt;\u09EB; # DIGIT FIVE
+\uE06C&gt;\u09EC; # DIGIT SIX
+\uE06D&gt;\u09ED; # DIGIT SEVEN
+\uE06E&gt;\u09EE; # DIGIT EIGHT
+\uE06F&gt;\u09EF; # DIGIT NINE
+\ue070&gt;; # ABBREVIATION SIGN
+\ue071&gt;\u09F0; # LETTER RA WITH MIDDLE DIAGONAL
+\ue072&gt;\u09F1; # LETTER RA WITH LOWER DIAGONAL
+\ue073&gt;\u09F2; # RUPEE MARK
+\ue074&gt;\u09F3; # RUPEE SIGN
+\ue075&gt;\u09F4; # CURRENCY NUMERATOR ONE
+\ue076&gt;\u09F5; # CURRENCY NUMERATOR TWO
+\ue077&gt;\u09F6; # CURRENCY NUMERATOR THREE
+\ue078&gt;\u09F7; # CURRENCY NUMERATOR FOUR
+\ue079&gt;\u09F8; # CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+\ue07A&gt;\u09F9; # CURRENCY DENOMINATOR SIXTEEN
+\ue07B&gt;\u09FA; # ISSHAR
+\uE07C&gt;; # TIPPI
+\uE07D&gt;; # ADDAK
+\uE07E&gt;; # IRI
+\uE07F&gt;; # URA
+\uE080&gt;; # EK ONKAR
+
+0 &gt; \u09E6; # FALLBACK FOR TAMIL
+1 &gt; \u09E7;
+
+
+
+
+
+
+
+
+
+
+
+# :: NFC (NFD) ;
+# eof
+</source>
+ <note> This resource is for TestInclude</note>
+ </trans-unit>
+ <group restype = "array" xml:space = "preserve" id = "TestIntVector" resname="TestIntVector">
+ <!--comments for TestIntVector-->
+ <note> This resource is for TestIntVector</note>
+ <trans-unit xml:space = "preserve" id = "TestIntVector_0" translate="yes">
+ <!--comments for element 1-->
+ <source >1</source>
+ <note> This resource is for element 1</note>
+ </trans-unit>
+ <trans-unit xml:space = "preserve" id = "TestIntVector_1" translate="yes">
+ <!--comments for element 2-->
+ <source >2</source>
+ <note> This resource is for element 2</note>
+ </trans-unit>
+ <trans-unit xml:space = "preserve" id = "TestIntVector_2" translate="yes">
+ <!--comments for element 3-->
+ <source >3</source>
+ <note> This resource is for element 3</note>
+ </trans-unit>
+ </group>
+ <group restype = "table" xml:space = "preserve" id = "TestTable" resname="TestTable" >
+ <!--Top level comments for TestTable. Tag name: TestTable-->
+ <note> This resource is for TestTable</note>
+ <trans-unit xml:space = "preserve" id = "TestTable_test3" resname = "test3" translate="yes">
+ <!--Tag name: test3-->
+ <source >jasldjfa</source>
+ <note> This resource is for test3</note>
+ </trans-unit>
+ <trans-unit xml:space = "preserve" id = "TestTable_test4" resname = "test4" translate="yes">
+ <!--Tag name: test4-->
+ <source >asdfasdf</source>
+ <note> This resource is for test4</note>
+ </trans-unit>
+ <trans-unit restype = "int" xml:space = "preserve" id = "TestTable_test5" resname = "test5" translate="yes">
+ <!--Tag name: test5-->
+ <source>1</source>
+ <note> This resource is for test5</note>
+ </trans-unit>
+ <bin-unit restype = "bin" id = "TestTable_test6" mime-type = "application" resname = "test6" translate="yes">
+ <!--Tag name: test6-->
+ <bin-source>
+ <internal-file form = "application" crc = "480784534">0102</internal-file>
+ </bin-source>
+ <note> This resource is for test6</note>
+ </bin-unit>
+ </group>
+ <trans-unit xml:space = "preserve" id = "test1" resname = "test1" translate="yes">
+ <!--Top level comments for the string.Tag name: test1-->
+ <source >The {0} job named {1}</source>
+ <note> {0} represents the position of OSNAME and {1} represents the position of job name e.g: The OS/400 job named SYSLOG</note>
+ </trans-unit>
+ <trans-unit xml:space = "preserve" id = "test2" resname = "test2" translate="yes">
+ <!--Tag name: test2-->
+ <source >some translatable stuff</source>
+ <note> This resource is for test2</note>
+ </trans-unit>
+ </group>
+ </body>
+ </file>
+</xliff>
diff --git a/Build/source/libs/icu-xetex/test/testdata/rbbitst.txt b/Build/source/libs/icu-xetex/test/testdata/rbbitst.txt
index bdb45db0c74..adaddce18f5 100644
--- a/Build/source/libs/icu-xetex/test/testdata/rbbitst.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/rbbitst.txt
@@ -1,4 +1,4 @@
-# Copyright (c) 2001-2004 International Business Machines
+# Copyright (c) 2001-2006 International Business Machines
# Corporation and others. All Rights Reserved.
#
# RBBI Test Data
@@ -12,6 +12,7 @@
# <sent> any following data is for sentence break testing
# <line> any following data is for line break testing
# <char> any following data is for char break testing
+# <locale local_name> Switch to the named locale at the next occurence of <word>, <sent>, etc.
# <data> ... </data> test data. May span multiple lines.
# <> Break position, status == 0
# • Break position, status == 0 (Bullet, \u2022)
@@ -22,7 +23,7 @@
#
-# Temp debugging tests
+# Temp debugging tests
<line>
# to test for bug #4097920
<data>•dog,cat,mouse •(one)•(two)\n<100></data>
@@ -87,6 +88,8 @@
# (Requires special casing in implementation, which is why it gets a test.)
<data>•\uffff•\uffff• •a•</data>
+# Treat Japanese Half Width voicing marks as combining
+<data>•A\uff9e•B\uff9f\uff9e\uff9f•C•</data>
########################################################################################
#
@@ -156,7 +159,7 @@
<data>•abc<200>\u4e01<400>\u4e02<400>\u3005<200>\u4e03<400>\u4e03<400>abc<200> •</data>
-<data>•\u06c9\uc799<200>\ufffa•</data>
+<data>•\u06c9\uc799\ufffa<200></data>
#
# Try some words from other scripts.
@@ -185,6 +188,11 @@
#
<data>•\u8527<400>\u02ba<200>\u0027\u0d42•\u00b7•\u09ea<100></data>
+#
+# Jitterbug 5276 - treat Japanese half width voicing marks as Grapheme Extend
+#
+<data>•A\uff9e\uff9fBC<200> •1\uff9e\uff9f23<100></data>
+
########################################################################################
#
#
@@ -217,19 +225,19 @@ doing? •This\n<100> costs $20,00,000. •</data>
"This isn't it." •Hi! \
•This is a simple sample sentence. •(This is it.) •This is a simple sample sentence. •\
"This isn't it." •\
-Hi! •This is a simple sample sentence. •It does not have to make any sense as you can see. •Nel mezzo del cammin di nostra vita, mi ritrovai in una selva oscura. •Che la dritta via aveo smarrita. •He said, that I said, that you said!•! •Don't rock the boat.\u2029•Because I am the daddy, that is why.
-•Not on my time (el timo.)•! •</data>
+Hi! •This is a simple sample sentence. •It does not have to make any sense as you can see. •Nel mezzo del cammin di nostra vita, mi ritrovai in una selva oscura. •Che la dritta via aveo smarrita. •He said, that I said, that you said!! •Don't rock the boat.\u2029•Because I am the daddy, that is why.
+•Not on my time (el timo.)! •</data>
-<data>•Hello. •So what!•!\u2029•"But now," he said, \
+<data>•Hello. •So what!!\u2029•"But now," he said, \
"I know!" •\
-Harris thumbed down several, including "Away We Go" (which became the huge success Oklahoma!)•. •One species, B. anthracis, is highly virulent.
+Harris thumbed down several, including "Away We Go" (which became the huge success Oklahoma!). •One species, B. anthracis, is highly virulent.
•Wolf said about Sounder:\
"Beautifully thought-out and directed." •\
Have you ever said, "This is where\tI shall live"? •He answered, \
-"You may not!" •Another popular saying is: "How do you do?"•. \n•\
+"You may not!" •Another popular saying is: "How do you do?". \n•\
Yet another popular saying is: \
'I'm fine thanks.' •\
-What is the proper use of the abbreviation pp.•? •Yes, I am definatelly 12" tall!•!\
+What is the proper use of the abbreviation pp.? •Yes, I am definatelly 12" tall!!\
•Now\r<100>is\n<100>the\r\n<100>time\n<100>\r<100>for\r<100>\r<100></data>
<data>•No breaks when . is surrounded by UPPER.Case letters. •</data>
@@ -245,13 +253,13 @@ What is the proper use of the abbreviation pp.•? •Yes, I am definatelly 12"
# Treat fullwidth variants of .!? the same as their
# normal counterparts
#
-<data>•I know I'm right\uff0e •Right\uff1f •Right\uff01 •</data>"
+<data>•I know I'm right\uff0e •Right\uff1f •Right\uff01 •</data>
#
# Don't break sentences at boundary between CJK and digits
#
-<data>•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165\u9de8\u97e48888\u821c\u8165\u7fc8\u51ce\u306d\ue30b\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46\u97e5\u7751\u3002•Bye, now<100></data>"
+<data>•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165\u9de8\u97e48888\u821c\u8165\u7fc8\u51ce\u306d\ue30b\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46\u97e5\u7751\u3002•Bye, now<100></data>
#
# Breaks around '(' following a sentence TERM. (Rule 9)
@@ -310,7 +318,7 @@ What is the proper use of the abbreviation pp.•? •Yes, I am definatelly 12"
# Regression test for bug #1984, Sentence break in Arabic text.
<data>\
-•\u0623\u0633\u0627\u0633\u064b\u0627\u060c\u0020\u062a\u062a\u0639\u0627"\u0645\u0644\u0020\u0627\u0644\u062d\u0648\u0627\u0633\u064a\u0628\u0020"\u0641\u0642\u0637\u0020\u0645\u0639\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u060c\u0648\u062a\u0642\u0648\u0645\u0020\u0628\u062a\u062e\u0632\u064a\u0646\u0020\u0627\u0644\u0623\u062d\u0631\u0641\u0020\u0648\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0623\u062e\u0631\u0649\u0020\u0628\u0639\u062f\u0020\u0623\u0646\u062a\u064f\u0639\u0637\u064a\u0020\u0631\u0642\u0645\u0627\u0020\u0645\u0639\u064a\u0646\u0627\u0020\u0644\u0643\u0644\u0020\u0648\u0627\u062d\u062f\u0020\u0645\u0646\u0647\u0627\u002e\u0020•\u0648\u0642\u0628\u0644\u0020\u0627\u062e\u062a\u0631\u0627\u0639\u0022\u064a\u0648\u0646\u0650\u0643\u0648\u062f\u0022\u060c\u0020\u0643\u0627\u0646\u0020\u0647\u0646\u0627\u0643\u0020\u0645\u0626\u0627\u062a\u0020\u0627\u0644\u0623\u0646\u0638\u0645\u0629\u0020\u0644\u0644\u062a\u0634\u0641\u064a\u0631\u0648\u062a\u062e\u0635\u064a\u0635\u0020\u0647\u0630\u0647\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u0020\u0644\u0644\u0645\u062d\u0627\u0631\u0641\u060c\u0020\u0648\u0644\u0645\u0020\u064a\u0648\u062c\u062f\u0020\u0646\u0638\u0627\u0645\u062a\u0634\u0641\u064a\u0020\u0639\u0644\u0649\u0020\u062c\u0645\u064a\u0639\u0020\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629. •</data>"
+•\u0623\u0633\u0627\u0633\u064b\u0627\u060c\u0020\u062a\u062a\u0639\u0627"\u0645\u0644\u0020\u0627\u0644\u062d\u0648\u0627\u0633\u064a\u0628\u0020"\u0641\u0642\u0637\u0020\u0645\u0639\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u060c\u0648\u062a\u0642\u0648\u0645\u0020\u0628\u062a\u062e\u0632\u064a\u0646\u0020\u0627\u0644\u0623\u062d\u0631\u0641\u0020\u0648\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0623\u062e\u0631\u0649\u0020\u0628\u0639\u062f\u0020\u0623\u0646\u062a\u064f\u0639\u0637\u064a\u0020\u0631\u0642\u0645\u0627\u0020\u0645\u0639\u064a\u0646\u0627\u0020\u0644\u0643\u0644\u0020\u0648\u0627\u062d\u062f\u0020\u0645\u0646\u0647\u0627\u002e\u0020•\u0648\u0642\u0628\u0644\u0020\u0627\u062e\u062a\u0631\u0627\u0639\u0022\u064a\u0648\u0646\u0650\u0643\u0648\u062f\u0022\u060c\u0020\u0643\u0627\u0646\u0020\u0647\u0646\u0627\u0643\u0020\u0645\u0626\u0627\u062a\u0020\u0627\u0644\u0623\u0646\u0638\u0645\u0629\u0020\u0644\u0644\u062a\u0634\u0641\u064a\u0631\u0648\u062a\u062e\u0635\u064a\u0635\u0020\u0647\u0630\u0647\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u0020\u0644\u0644\u0645\u062d\u0627\u0631\u0641\u060c\u0020\u0648\u0644\u0645\u0020\u064a\u0648\u062c\u062f\u0020\u0646\u0638\u0627\u0645\u062a\u0634\u0641\u064a\u0020\u0639\u0644\u0649\u0020\u062c\u0645\u064a\u0639\u0020\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629. •</data>
# Try a few more of the less common sentence endings.
<data>•Hello, world\u3002 •Hello, world\u1803 •Hello, world\u2048 •Hello, world\u203c •Let's end here. •</data>
@@ -473,7 +481,7 @@ What is the proper use of the abbreviation pp.•? •Yes, I am definatelly 12"
<data>•\u4e01•\ud840\udc01•\u4e02•abc •\ue000 •\udb80\udc01•</data>
# Regression for bug 836
-<data>•AAA•(AAA •</data>
+<data>•AAA(AAA •</data>
# Try some words from other scripts.
# Greek, Cyrillic, Hebrew, Arabic, Arabic, Georgian, Latin
@@ -499,3 +507,26 @@ What is the proper use of the abbreviation pp.•? •Yes, I am definatelly 12"
<data>•'•start •with •a •case-•ignorable •cha'r'a'cter•</data>
+
+##########################################################################################
+#
+# Thai Tests
+#
+##########################################################################################
+<locale th>
+<word>
+#
+# Test data originally from the test code source file
+# // @suwit -- Thai sample data from GVT Guideline
+#
+<data>•\u0E2B\u0E19\u0E36\u0E48\u0E07<200>\u0E04\u0E33<200>\u0E44\u0E17\u0E22<200>\
+\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16<200>\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A<200>\
+\u0E14\u0E49\u0E27\u0E22<200>\u0e2b\u0e25\u0e32\u0e22<200>\
+\u0e1e\u0e22\u0e32\u0e07\u0e04\u0e4c<200></data>
+
+#
+# Jitterbug 3671 Test Case
+#
+<data>•สวัสดี<200>ครับ<200>สบาย<200>ดี<200>ไหม<200> •ครับ<200></data>
+
+
diff --git a/Build/source/libs/icu-xetex/test/testdata/regextst.txt b/Build/source/libs/icu-xetex/test/testdata/regextst.txt
index ec7ca044801..38c3d42bdab 100644
--- a/Build/source/libs/icu-xetex/test/testdata/regextst.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/regextst.txt
@@ -508,6 +508,28 @@
"\b....\b." "<0>イãƒãƒ­ãƒ¼?</0>"
#
+# Bug 4058 ICU Unicode Set patterns have an odd feature -
+# A $ as the last character before the close bracket means match
+# a \uffff, which means off the end of the string in transliterators.
+# Doesn't make much sense for regex, but works that way anyhow.
+#
+"[\$](P|C|D);" "<0>$<1>P</1>;</0>"
+"[$](P|C|D);" "<0>\uffff<1>P</1>;</0>"
+"[$](P|C|D);" "$P;"
+"[$$](P|C|D);" "<0>$<1>P</1>;</0>"
+
+#
+# bug 4888 Flag settings lost in some cases.
+#
+"((a){2})|(#)" is "no"
+"((a){2})|(#)" is "<0><1>a<2>a</2></1></0>#"
+"((a){2})|(#)" is "a<0><3>#</3></0>"
+
+"((a|b){2})|c" is "<0>c</0>"
+"((a|b){2})|c" is "<0>C</0>"
+"((a|b){2})|c" s "C"
+
+#
# Random debugging, Temporary
#
#"^(?:a?b?)*$" "a--"
diff --git a/Build/source/libs/icu-xetex/test/testdata/structLocale.txt b/Build/source/libs/icu-xetex/test/testdata/structLocale.txt
index fe1086a2a07..6df6655cab8 100644
--- a/Build/source/libs/icu-xetex/test/testdata/structLocale.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/structLocale.txt
@@ -1,6 +1,6 @@
// ***************************************************************************
// *
-// * Copyright (C) 2004-2005 International Business Machines
+// * Copyright (C) 2004-2006 International Business Machines
// * Corporation and others. All Rights Reserved.
// *
// ***************************************************************************
@@ -9,7 +9,7 @@
// Since ICU doesn't follow the traditional fallback model where all keys fallback to root,
// root can't be used to validate the structure.
// This file was generated from en.txt, and all ".*" were replaced with "".
-structLocale{
+structLocale:table(nofallback){
BreakDictionaryData:bin {00}
Countries{
001{""}
@@ -27,6 +27,7 @@ structLocale{
021{""}
029{""}
030{""}
+ 034{""}
035{""}
039{""}
053{""}
@@ -35,6 +36,7 @@ structLocale{
061{""}
062{""}
142{""}
+ 143{""}
145{""}
150{""}
151{""}
@@ -124,6 +126,7 @@ structLocale{
GD{""}
GE{""}
GF{""}
+ GG{""}
GH{""}
GI{""}
GL{""}
@@ -146,12 +149,14 @@ structLocale{
ID{""}
IE{""}
IL{""}
+ IM{""}
IN{""}
IO{""}
IQ{""}
IR{""}
IS{""}
IT{""}
+ JE{""}
JM{""}
JO{""}
JP{""}
@@ -226,7 +231,9 @@ structLocale{
PW{""}
PY{""}
QA{""}
+ QE{""}
QO{""}
+ QU{""}
RE{""}
RO{""}
RU{""}
@@ -287,6 +294,7 @@ structLocale{
ZA{""}
ZM{""}
ZW{""}
+ ZZ{""}
}
Currencies{
ADP{
@@ -361,6 +369,10 @@ structLocale{
"",
"",
}
+ AZN{
+ "",
+ "",
+ }
BAD{
"",
"",
@@ -941,6 +953,10 @@ structLocale{
"",
"",
}
+ MZN{
+ "",
+ "",
+ }
NAD{
"",
"",
@@ -1033,6 +1049,10 @@ structLocale{
"",
"",
}
+ RON{
+ "",
+ "",
+ }
RUB{
"",
"",
@@ -1370,6 +1390,7 @@ structLocale{
af{""}
afa{""}
afh{""}
+ ain{""}
ak{""}
akk{""}
ale{""}
@@ -1378,6 +1399,7 @@ structLocale{
am{""}
an{""}
ang{""}
+ anp{""}
apa{""}
ar{""}
arc{""}
@@ -1427,6 +1449,7 @@ structLocale{
cai{""}
car{""}
cau{""}
+ cch{""}
ce{""}
ceb{""}
cel{""}
@@ -1498,6 +1521,8 @@ structLocale{
fr{""}
frm{""}
fro{""}
+ frr{""}
+ frs{""}
fur{""}
fy{""}
ga{""}
@@ -1517,6 +1542,7 @@ structLocale{
got{""}
grb{""}
grc{""}
+ gsw{""}
gu{""}
gv{""}
gwi{""}
@@ -1564,10 +1590,13 @@ structLocale{
kaa{""}
kab{""}
kac{""}
+ kaj{""}
kam{""}
kar{""}
kaw{""}
kbd{""}
+ kcg{""}
+ kfo{""}
kg{""}
kha{""}
khi{""}
@@ -1585,6 +1614,7 @@ structLocale{
kpe{""}
kr{""}
krc{""}
+ krl{""}
kro{""}
kru{""}
ks{""}
@@ -1716,6 +1746,7 @@ structLocale{
rom{""}
root{""}
ru{""}
+ rup{""}
rw{""}
sa{""}
sad{""}
@@ -1835,6 +1866,7 @@ structLocale{
znd{""}
zu{""}
zun{""}
+ zxx{""}
}
LocaleScript{
"",
@@ -1976,6 +2008,7 @@ structLocale{
chinese{""}
gregorian{""}
hebrew{""}
+ persian{""}
islamic{""}
islamic-civil{""}
japanese{""}
@@ -1994,6 +2027,7 @@ structLocale{
1901{""}
1996{""}
POSIX{""}
+ POLYTONI{""}
REVISED{""}
BOONT{""}
GAULISH{""}
@@ -2001,6 +2035,7 @@ structLocale{
HAKKA{""}
LOJBAN{""}
NEDIS{""}
+ SAAHO{""}
ROZAJ{""}
SCOUSE{""}
XIANG{""}
@@ -2049,14 +2084,86 @@ structLocale{
"",
}
}
+ coptic{
+ monthNames{
+ format{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ }
+ }
default{""}
+ ethiopic{
+ monthNames{
+ format{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ }
+ }
gregorian{
AmPmMarkers{
"",
"",
}
DateTimeElements:intvector{
- 1,
+ 2,
1,
}
DateTimePatterns{
@@ -2070,6 +2177,34 @@ structLocale{
"",
"",
}
+ appendItems{
+ Day{"{0} ({2}: {1})"}
+ Day-Of-Week{"{0} {1}"}
+ Era{"{0} {1}"}
+ Hour{"{0} ({2}: {1})"}
+ Minute{"{0} ({2}: {1})"}
+ Month{"{0} ({2}: {1})"}
+ Quarter{"{0} ({2}: {1})"}
+ Second{"{0} ({2}: {1})"}
+ Timezone{"{0} {1}"}
+ Week{"{0} ({2}: {1})"}
+ Year{"{0} {1}"}
+ }
+ availableFormats{
+ HHmm{""}
+ HHmmss{""}
+ KKmm{"KK:mm a"}
+ KKmmss{"KK:mm:ss a"}
+ MMMM{""}
+ MMMdd{""}
+ mmssSS{""}
+ ww{""}
+ yyMM{""}
+ yyMMMEEEd{""}
+ yyMMMd{""}
+ yyMd{""}
+ yyQQQQ{""}
+ }
dayNames{
default{""}
format{
@@ -2143,6 +2278,96 @@ structLocale{
""
}
}
+ fields{
+ day{
+ dn{"Day"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ dayperiod{
+ dn{"Dayperiod"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ era{
+ dn{"Era"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ hour{
+ dn{"Hour"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ minute{
+ dn{"Minute"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ month{
+ dn{"Month"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ second{
+ dn{"Second"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ week{
+ dn{"Week"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ weekday{
+ dn{"Day of the Week"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ year{
+ dn{"Year"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ zone{
+ dn{"Zone"}
+ relative{
+ "-1"{""}
+ "0"{""}
+ "1"{""}
+ }
+ }
+ }
monthNames{
default{""}
format{
@@ -2236,6 +2461,22 @@ structLocale{
}
}
}
+ quarters{
+ format{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ }
weekend:intvector{
7,
0,
@@ -2277,20 +2518,224 @@ structLocale{
}
}
islamic{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ DateTimePatterns{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ eras{
+ abbreviated{
+ "",
+ }
+ wide{
+ "",
+ }
+ }
+ monthNames{
+ default{""}
+ format{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ default{""}
+ narrow{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ stand-alone{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ default{""}
+ narrow{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ }
+ }
+ persian{
+ DateTimeElements:intvector{
+ 1,
+ 1,
+ }
+ DateTimePatterns{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
eras{
abbreviated{
"",
}
wide{
"",
- ""
}
}
monthNames{
default{""}
format{
- abbreviated:alias{"structLocale/calendar/islamic/monthNames/format/wide"}
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ default{""}
+ narrow{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ wide{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
+ }
+ stand-alone{
+ abbreviated{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
default{""}
+ narrow{
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ }
wide{
"",
"",
@@ -2567,15 +3012,5268 @@ structLocale{
}
}
}
+ layout{
+ casing{""}
+ characters{""}
+ lines{""}
+ }
localPatternChars{""}
+ measurementSystemNames{
+ US{"US"}
+ metric{"Metric"}
+ }
+ messages{
+ nostr{""}
+ yesstr{""}
+ yesexpr{""}
+ noexpr{""}
+ }
zoneStrings{
- {
- "",
- "",
- "",
- "",
- "",
- "",
+ hoursFormat{""}
+ hourFormat{""}
+ gmtFormat{""}
+ regionFormat{""}
+ fallbackFormat{""}
+ abbreviationFallback{""}
+ preferenceOrdering:array{""}
+ singleCountries:array{""}
+ "ACT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "AET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "AGT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "ART"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "AST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Abidjan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Accra"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Addis_Ababa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Algiers"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Asmera"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Bamako"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Bangui"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Banjul"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Bissau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Blantyre"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Brazzaville"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Bujumbura"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Cairo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Casablanca"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Ceuta"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Conakry"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Dakar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Dar_es_Salaam"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Djibouti"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Douala"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:El_Aaiun"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Freetown"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Gaborone"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Harare"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Johannesburg"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Kampala"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Khartoum"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Kigali"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Kinshasa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Lagos"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Libreville"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Lome"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Luanda"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Lubumbashi"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Lusaka"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Malabo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Maputo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Maseru"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Mbabane"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Mogadishu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Monrovia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Nairobi"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Ndjamena"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Niamey"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Nouakchott"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Ouagadougou"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Porto-Novo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Sao_Tome"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Timbuktu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Tripoli"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Tunis"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Africa:Windhoek"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Adak"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Anchorage"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Anguilla"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Antigua"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Araguaina"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Buenos_Aires"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Catamarca"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:ComodRivadavia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Cordoba"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Jujuy"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:La_Rioja"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Mendoza"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Rio_Gallegos"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:San_Juan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Tucuman"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Argentina:Ushuaia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Aruba"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Asuncion"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Atka"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Bahia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Barbados"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Belem"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Belize"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Boa_Vista"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Bogota"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Boise"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Buenos_Aires"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cambridge_Bay"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Campo_Grande"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cancun"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Caracas"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Catamarca"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cayenne"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cayman"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Chicago"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Chihuahua"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Coral_Harbour"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cordoba"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Costa_Rica"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Cuiaba"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Curacao"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Danmarkshavn"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Dawson"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Dawson_Creek"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Denver"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Detroit"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Dominica"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Edmonton"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Eirunepe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:El_Salvador"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Ensenada"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Fort_Wayne"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Fortaleza"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Glace_Bay"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Godthab"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Goose_Bay"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Grand_Turk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Grenada"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Guadeloupe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Guatemala"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Guayaquil"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Guyana"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Halifax"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Havana"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Hermosillo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Indianapolis"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Knox"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Marengo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Petersburg"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Vevay"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indiana:Vincennes"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Indianapolis"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Inuvik"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Iqaluit"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Jamaica"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Jujuy"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Juneau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Kentucky:Louisville"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Kentucky:Monticello"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Knox_IN"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:La_Paz"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Lima"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Los_Angeles"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Louisville"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Maceio"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Managua"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Manaus"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Martinique"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Mazatlan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Mendoza"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Menominee"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Merida"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Mexico_City"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Miquelon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Moncton"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Monterrey"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Montevideo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Montreal"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Montserrat"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Nassau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:New_York"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Nipigon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Nome"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Noronha"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:North_Dakota:Center"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Panama"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Pangnirtung"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Paramaribo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Phoenix"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Port-au-Prince"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Port_of_Spain"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Porto_Acre"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Porto_Velho"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Puerto_Rico"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Rainy_River"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Rankin_Inlet"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Recife"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Regina"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Rio_Branco"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Rosario"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Santiago"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Santo_Domingo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Sao_Paulo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Scoresbysund"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Shiprock"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:St_Johns"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:St_Kitts"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:St_Lucia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:St_Thomas"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:St_Vincent"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Swift_Current"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Tegucigalpa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Thule"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Thunder_Bay"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Tijuana"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Toronto"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Tortola"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Vancouver"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Virgin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Whitehorse"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Winnipeg"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Yakutat"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "America:Yellowknife"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Casey"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Davis"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:DumontDUrville"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Mawson"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:McMurdo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Palmer"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Rothera"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:South_Pole"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Syowa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Antarctica:Vostok"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Arctic:Longyearbyen"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Aden"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Almaty"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Amman"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Anadyr"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Aqtau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Aqtobe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Ashgabat"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Ashkhabad"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Baghdad"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Bahrain"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Baku"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Bangkok"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Beirut"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Bishkek"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Brunei"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Calcutta"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Choibalsan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Chongqing"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Chungking"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Colombo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Dacca"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Damascus"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Dhaka"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Dili"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Dubai"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Dushanbe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Gaza"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Harbin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Hong_Kong"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Hovd"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Irkutsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Istanbul"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Jakarta"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Jayapura"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Jerusalem"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kabul"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kamchatka"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Karachi"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kashgar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Katmandu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Krasnoyarsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kuala_Lumpur"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kuching"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Kuwait"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Macao"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Macau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Magadan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Makassar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Manila"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Muscat"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Nicosia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Novosibirsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Omsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Oral"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Phnom_Penh"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Pontianak"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Pyongyang"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Qatar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Qyzylorda"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Rangoon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Riyadh"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Riyadh87"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Riyadh88"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Riyadh89"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Saigon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Sakhalin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Samarkand"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Seoul"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Shanghai"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Singapore"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Taipei"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Tashkent"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Tbilisi"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Tehran"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Tel_Aviv"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Thimbu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Thimphu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Tokyo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Ujung_Pandang"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Ulaanbaatar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Ulan_Bator"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Urumqi"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Vientiane"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Vladivostok"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Yakutsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Yekaterinburg"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Asia:Yerevan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Azores"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Bermuda"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Canary"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Cape_Verde"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Faeroe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Jan_Mayen"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Madeira"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Reykjavik"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:South_Georgia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:St_Helena"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Atlantic:Stanley"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:ACT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Adelaide"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Brisbane"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Broken_Hill"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Canberra"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Currie"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Darwin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Hobart"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:LHI"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Lindeman"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Lord_Howe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Melbourne"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:NSW"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:North"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Perth"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Queensland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:South"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Sydney"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Tasmania"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Victoria"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:West"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Australia:Yancowinna"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "BET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "BST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Brazil:Acre"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Brazil:DeNoronha"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Brazil:East"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Brazil:West"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CAT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CNT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CST6CDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "CTT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Atlantic"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Central"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:East-Saskatchewan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Eastern"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Mountain"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Newfoundland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Pacific"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Saskatchewan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Canada:Yukon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Chile:Continental"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Chile:EasterIsland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Cuba"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "EAT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "ECT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "EET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "EST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "EST5EDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Egypt"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Eire"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+1"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+10"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+11"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+12"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+2"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+3"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+4"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+5"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+6"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+7"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+8"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT+9"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-1"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-10"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-11"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-12"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-13"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-14"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-2"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-3"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-4"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-5"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-6"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-7"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-8"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT-9"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:GMT0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:Greenwich"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:UCT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:UTC"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:Universal"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Etc:Zulu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Amsterdam"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Andorra"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Athens"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Belfast"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Belgrade"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Berlin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Bratislava"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Brussels"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Bucharest"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Budapest"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Chisinau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Copenhagen"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Dublin"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Gibraltar"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Helsinki"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Istanbul"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Kaliningrad"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Kiev"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Lisbon"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Ljubljana"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:London"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Luxembourg"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Madrid"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Malta"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Mariehamn"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Minsk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Monaco"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Moscow"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Nicosia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Oslo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Paris"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Prague"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Riga"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Rome"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Samara"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:San_Marino"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Sarajevo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Simferopol"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Skopje"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Sofia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Stockholm"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Tallinn"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Tirane"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Tiraspol"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Uzhgorod"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Vaduz"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Vatican"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Vienna"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Vilnius"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Warsaw"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Zagreb"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Zaporozhye"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Europe:Zurich"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Factory"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GB"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GB-Eire"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GMT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GMT+0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GMT-0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "GMT0"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Greenwich"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "HST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Hongkong"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "IET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "IST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Iceland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Antananarivo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Chagos"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Christmas"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Cocos"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Comoro"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Kerguelen"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Mahe"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Maldives"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Mauritius"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Mayotte"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Indian:Reunion"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Iran"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Israel"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "JST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Jamaica"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Japan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Kwajalein"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Libya"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "MET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "MIT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "MST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "MST7MDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mexico:BajaNorte"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mexico:BajaSur"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mexico:General"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mideast:Riyadh87"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mideast:Riyadh88"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Mideast:Riyadh89"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "NET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "NST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "NZ"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "NZ-CHAT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Navajo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PLT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PNT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PRC"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PRT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "PST8PDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Apia"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Auckland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Chatham"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Easter"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Efate"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Enderbury"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Fakaofo"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Fiji"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Funafuti"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Galapagos"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Gambier"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Guadalcanal"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Guam"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Honolulu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Johnston"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Kiritimati"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Kosrae"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Kwajalein"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Majuro"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Marquesas"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Midway"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Nauru"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Niue"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Norfolk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Noumea"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Pago_Pago"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Palau"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Pitcairn"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Ponape"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Port_Moresby"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Rarotonga"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Saipan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Samoa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Tahiti"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Tarawa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Tongatapu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Truk"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Wake"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Wallis"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Pacific:Yap"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Poland"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Portugal"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "ROC"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "ROK"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Singapore"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:AST4"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:AST4ADT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:CST6"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:CST6CDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:EST5"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:EST5EDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:HST10"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:MST7"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:MST7MDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:PST8"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:PST8PDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:YST9"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "SystemV:YST9YDT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Turkey"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "UCT"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Alaska"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Aleutian"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Arizona"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Central"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:East-Indiana"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Eastern"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Hawaii"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Indiana-Starke"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Michigan"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Mountain"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Pacific"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Pacific-New"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "US:Samoa"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "UTC"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Universal"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "VST"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "W-SU"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "WET"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
+ }
+ "Zulu"{
+ ld{""}
+ lg{""}
+ ls{""}
+ sd{""}
+ sg{""}
+ ss{""}
+ ec{""}
}
}
}
diff --git a/Build/source/libs/icu-xetex/test/testdata/te.txt b/Build/source/libs/icu-xetex/test/testdata/te.txt
index e665ae48a9b..3a83c82cf4e 100644
--- a/Build/source/libs/icu-xetex/test/testdata/te.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/te.txt
@@ -107,6 +107,59 @@ te
a3{"a23"}
a4{"a24"}
}
+ zoneStrings{
+ {
+ "Pacific/Honolulu",
+ "Hawaii Standard Time",
+ "HST",
+ "Hawaii Daylight Time",
+ "HDT",
+ "Honolulu",
+ "Hawaii Time",
+ "HT",
+ }
+ {
+ "America/Anchorage",
+ "Alaska Standard Time",
+ "AKST",
+ "Alaska Daylight Time",
+ "AKDT",
+ "Anchorage",
+ "Alaska Time",
+ "AKT",
+ }
+ {
+ "America/Los_Angeles",
+ "Pacific Standard Time",
+ "PST",
+ "Pacific Daylight Time",
+ "PDT",
+ "Los Angeles",
+ "Pacific Time",
+ "PT",
+ }
+ {
+ "America/Phoenix",
+ "Mountain Standard Time",
+ "MST",
+ "Mountain Daylight Time",
+ "MDT",
+ "Phoenix",
+ "Mountain Time",
+ "MT",
+ }
+ {
+ "America/Denver",
+ "Mountain Standard Time",
+ "MST",
+ "Mountain Daylight Time",
+ "MDT",
+ "Denver",
+ "Mountain Time",
+ "MT",
+ }
+ }
+
}
//eof
diff --git a/Build/source/libs/icu-xetex/test/testdata/testaliases.txt b/Build/source/libs/icu-xetex/test/testdata/testaliases.txt
index 9e0ef764c19..1ae48be88cf 100644
--- a/Build/source/libs/icu-xetex/test/testdata/testaliases.txt
+++ b/Build/source/libs/icu-xetex/test/testdata/testaliases.txt
@@ -1,6 +1,6 @@
//*******************************************************************************
//*
-//* Copyright (C) 2002-2005, International Business Machines
+//* Copyright (C) 2002-2006, International Business Machines
//* Corporation and others. All Rights Reserved.
//*
//*******************************************************************************
@@ -9,7 +9,7 @@
// This is a test resource to check whether the aliasing mechanism works
// as advertised
-testaliases
+testaliases:table(nofallback)
{
// This should produce an error - circular alias
aaa:alias { "testaliases/aab" } // Test circular dependency protection
@@ -28,7 +28,7 @@ testaliases
LocaleScript:alias { "/ICUDATA/ja/LocaleScript" }
// aliasing using position
- BreakDictionaryData:alias { "/ICUDATA/th" } // Referencing corresponding resource in another bundle
+ boundaries:alias { "/ICUDATA-brkitr/ja" } // Referencing corresponding resource in another bundle
// aliasing arrays
zoneTests {
@@ -45,18 +45,18 @@ testaliases
// WARNING: this test assumes that on all platforms digits sort normally
// if not, the test may fail
testGetStringByKeyAliasing {
- KeyAlias0PST:alias { "/ICUDATA/en/zoneStrings/15/0" } //"America/Los_Angeles",
- KeyAlias1PacificStandardTime:alias { "/ICUDATA/en/zoneStrings/15/1" } //"Pacific Standard Time",
- KeyAlias2PDT:alias { "/ICUDATA/en/zoneStrings/15/4" } //"PDT",
- KeyAlias3LosAngeles:alias { "/ICUDATA/en/zoneStrings/15/5" } //"Los Angeles",
+ KeyAlias0PST:alias { "te/zoneStrings/2/0" } //"America/Los_Angeles",
+ KeyAlias1PacificStandardTime:alias { "te/zoneStrings/2/1" } //"Pacific Standard Time",
+ KeyAlias2PDT:alias { "te/zoneStrings/2/4" } //"PDT",
+ KeyAlias3LosAngeles:alias { "te/zoneStrings/2/5" } //"Los Angeles",
}
testGetStringByIndexAliasing {
- :alias { "/ICUDATA/en/zoneStrings/15/0" } //"America/Los_Angeles",
- :alias { "/ICUDATA/en/zoneStrings/15/1" } //"Pacific Standard Time",
- :alias { "/ICUDATA/en/zoneStrings/15/4" } //"PDT",
- :alias { "/ICUDATA/en/zoneStrings/15/5" } //"Los Angeles",
+ :alias { "te/zoneStrings/2/0" } //"America/Los_Angeles",
+ :alias { "te/zoneStrings/2/1" } //"Pacific Standard Time",
+ :alias { "te/zoneStrings/2/4" } //"PDT",
+ :alias { "te/zoneStrings/2/5" } //"Los Angeles",
}
-
+ testAliasToTree:alias{"/ICUDATA-coll/en/collations"}
}
diff --git a/Build/source/libs/icu-xetex/test/testdata/testdata.mak b/Build/source/libs/icu-xetex/test/testdata/testdata.mak
index 1e53ede98c6..a50b183e257 100644
--- a/Build/source/libs/icu-xetex/test/testdata/testdata.mak
+++ b/Build/source/libs/icu-xetex/test/testdata/testdata.mak
@@ -1,5 +1,5 @@
#**********************************************************************
-#* Copyright (C) 1999-2005, International Business Machines Corporation
+#* Copyright (C) 1999-2006, International Business Machines Corporation
#* and others. All Rights Reserved.
#**********************************************************************
#
@@ -8,7 +8,7 @@
.SUFFIXES : .res .txt
TESTPKG=testdata
-TESTDT=$(TESTPKG)_
+TESTDT=$(TESTPKG)
ALL : "$(TESTDATAOUT)\testdata.dat"
@@ -23,43 +23,43 @@ ALL : "$(TESTDATAOUT)\testdata.dat"
# icu26e_testtypes.res is the same, but icuswapped to big-endian EBCDIC
# markus 2003nov21
-"$(TESTDATAOUT)\testdata.dat" : "$(TESTDATABLD)\casing.res" "$(TESTDATABLD)\conversion.res" "$(TESTDATABLD)\icuio.res" "$(TESTDATABLD)\mc.res" "$(TESTDATABLD)\structLocale.res" "$(TESTDATABLD)\root.res" "$(TESTDATABLD)\sh.res" "$(TESTDATABLD)\sh_YU.res" "$(TESTDATABLD)\te.res" "$(TESTDATABLD)\te_IN.res" "$(TESTDATABLD)\te_IN_REVISED.res" "$(TESTDATABLD)\testaliases.res" "$(TESTDATABLD)\testtypes.res" "$(TESTDATABLD)\testempty.res" "$(TESTDATABLD)\$(TESTDT)iscii.res" "$(TESTDATABLD)\$(TESTDT)idna_rules.res" "$(TESTDATABLD)\DataDrivenCollationTest.res" "$(TESTDATABLD)\$(TESTDT)test.icu" "$(TESTDATABLD)\$(TESTDT)testtable32.res" "$(TESTDATABLD)\$(TESTDT)test1.cnv" "$(TESTDATABLD)\$(TESTDT)test3.cnv" "$(TESTDATABLD)\$(TESTDT)test4.cnv" "$(TESTDATABLD)\$(TESTDT)test4x.cnv" "$(TESTDATABLD)\$(TESTDT)ibm9027.cnv" "$(TESTDATABLD)\$(TESTDT)nfscsi.spp" "$(TESTDATABLD)\$(TESTDT)nfscss.spp" "$(TESTDATABLD)\$(TESTDT)nfscis.spp" "$(TESTDATABLD)\$(TESTDT)nfsmxs.spp" "$(TESTDATABLD)\$(TESTDT)nfsmxp.spp"
+"$(TESTDATAOUT)\testdata.dat" : "$(TESTDATABLD)\casing.res" "$(TESTDATABLD)\conversion.res" "$(TESTDATABLD)\icuio.res" "$(TESTDATABLD)\mc.res" "$(TESTDATABLD)\structLocale.res" "$(TESTDATABLD)\root.res" "$(TESTDATABLD)\sh.res" "$(TESTDATABLD)\sh_YU.res" "$(TESTDATABLD)\te.res" "$(TESTDATABLD)\te_IN.res" "$(TESTDATABLD)\te_IN_REVISED.res" "$(TESTDATABLD)\testaliases.res" "$(TESTDATABLD)\testtypes.res" "$(TESTDATABLD)\testempty.res" "$(TESTDATABLD)\iscii.res" "$(TESTDATABLD)\idna_rules.res" "$(TESTDATABLD)\DataDrivenCollationTest.res" "$(TESTDATABLD)\test.icu" "$(TESTDATABLD)\testtable32.res" "$(TESTDATABLD)\test1.cnv" "$(TESTDATABLD)\test3.cnv" "$(TESTDATABLD)\test4.cnv" "$(TESTDATABLD)\test4x.cnv" "$(TESTDATABLD)\ibm9027.cnv" "$(TESTDATABLD)\nfscsi.spp" "$(TESTDATABLD)\nfscss.spp" "$(TESTDATABLD)\nfscis.spp" "$(TESTDATABLD)\nfsmxs.spp" "$(TESTDATABLD)\nfsmxp.spp"
@echo Building test data
- @copy "$(TESTDATABLD)\$(TESTDT)te.res" "$(TESTDATAOUT)\$(TESTDT)nam.typ"
- @copy "$(TESTDATA)\$(TESTDT)icu26_testtypes.res" "$(TESTDATABLD)"
- @copy "$(TESTDATA)\$(TESTDT)icu26e_testtypes.res" "$(TESTDATABLD)"
- @"$(ICUP)\bin\pkgdata" -f -v -m common -c -p"$(TESTPKG)" -d "$(TESTDATAOUT)" -T "$(TESTDATABLD)" -s "$(TESTDATABLD)" <<
-$(TESTDT)casing.res
-$(TESTDT)conversion.res
-$(TESTDT)mc.res
-$(TESTDT)root.res
-$(TESTDT)testtable32.res
-$(TESTDT)sh.res
-$(TESTDT)sh_YU.res
-$(TESTDT)te.res
-$(TESTDT)te_IN.res
-$(TESTDT)te_IN_REVISED.res
-$(TESTDT)testtypes.res
-$(TESTDT)icu26_testtypes.res
-$(TESTDT)icu26e_testtypes.res
-$(TESTDT)testempty.res
-$(TESTDT)testaliases.res
-$(TESTDT)structLocale.res
-$(TESTDT)icuio.res
-$(TESTDT)iscii.res
-$(TESTDT)DataDrivenCollationTest.res
-$(TESTDT)test.icu
-$(TESTDT)test1.cnv
-$(TESTDT)test3.cnv
-$(TESTDT)test4.cnv
-$(TESTDT)test4x.cnv
-$(TESTDT)ibm9027.cnv
-$(TESTDT)idna_rules.res
-$(TESTDT)nfscsi.spp
-$(TESTDT)nfscss.spp
-$(TESTDT)nfscis.spp
-$(TESTDT)nfsmxs.spp
-$(TESTDT)nfsmxp.spp
+ @copy "$(TESTDATABLD)\te.res" "$(TESTDATAOUT)\$(TESTDT)\nam.typ"
+ @copy "$(TESTDATA)\icu26_testtypes.res" "$(TESTDATABLD)"
+ @copy "$(TESTDATA)\icu26e_testtypes.res" "$(TESTDATABLD)"
+ "$(ICUP)\bin\pkgdata" -f -v -m common -c -p"$(TESTPKG)" -d "$(TESTDATAOUT)" -T "$(TESTDATABLD)" -s "$(TESTDATABLD)" <<
+casing.res
+conversion.res
+mc.res
+root.res
+testtable32.res
+sh.res
+sh_YU.res
+te.res
+te_IN.res
+te_IN_REVISED.res
+testtypes.res
+icu26_testtypes.res
+icu26e_testtypes.res
+testempty.res
+testaliases.res
+structLocale.res
+icuio.res
+iscii.res
+DataDrivenCollationTest.res
+test.icu
+test1.cnv
+test3.cnv
+test4.cnv
+test4x.cnv
+ibm9027.cnv
+idna_rules.res
+nfscsi.spp
+nfscss.spp
+nfscis.spp
+nfsmxs.spp
+nfsmxp.spp
<<
@@ -68,72 +68,72 @@ $(TESTDT)nfsmxp.spp
# The -q option is there on purpose, so we don't see it normally.
{$(TESTDATA)}.txt.res::
@echo Making Test Resource Bundle files $<
- @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -t -p"$(TESTPKG)" -q -s"$(TESTDATA)" -d"$(TESTDATABLD)" $<
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -q -s"$(TESTDATA)" -d"$(TESTDATABLD)" $<
-"$(TESTDATABLD)\$(TESTDT)iscii.res": "$(TESTDATA)\iscii.bin"
+"$(TESTDATABLD)\iscii.res": "$(TESTDATA)\iscii.bin"
@echo Making Test Resource Bundle file with encoding ISCII,version=0
- @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -p"$(TESTPKG)" -q -s"$(TESTDATA)" -eISCII,version=0 -d"$(TESTDATABLD)" iscii.bin
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -s"$(TESTDATA)" -eISCII,version=0 -d"$(TESTDATABLD)" iscii.bin
-"$(TESTDATABLD)\$(TESTDT)idna_rules.res": "$(TESTDATA)\idna_rules.txt"
+"$(TESTDATABLD)\idna_rules.res": "$(TESTDATA)\idna_rules.txt"
@echo Making Test Resource Bundle file for IDNA reference implementation
- @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -p"$(TESTPKG)" -q -s"$(TESTDATA)" -d"$(TESTDATABLD)" idna_rules.txt
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -s"$(TESTDATA)" -d"$(TESTDATABLD)" idna_rules.txt
-"$(TESTDATABLD)\$(TESTDT)test.icu" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
+"$(TESTDATABLD)\test.icu" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
"$(ICUTOOLS)\gentest\$(CFG)\gentest" -d"$(TESTDATABLD)"
# testtable32 resource file
"$(TESTDATABLD)\testtable32.txt" : {"$(ICUTOOLS)\gentest\$(CFG)"}gentest.exe
"$(ICUTOOLS)\gentest\$(CFG)\gentest" -r -d"$(TESTDATABLD)"
-"$(TESTDATABLD)\$(TESTDT)testtable32.res": "$(TESTDATABLD)\testtable32.txt"
+"$(TESTDATABLD)\testtable32.res": "$(TESTDATABLD)\testtable32.txt"
@echo Making Test Resource Bundle file for IDNA reference implementation
- @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -p"$(TESTPKG)" -q -s"$(TESTDATABLD)" -d"$(TESTDATABLD)" testtable32.txt
+ @"$(ICUTOOLS)\genrb\$(CFG)\genrb" -s"$(TESTDATABLD)" -d"$(TESTDATABLD)" testtable32.txt
# Targets for nfscsi.spp
-"$(TESTDATABLD)\$(TESTDT)nfscsi.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cs_prep_ci.txt"
+"$(TESTDATABLD)\nfscsi.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cs_prep_ci.txt"
@echo Building $@
- @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscsi -p "$(TESTPKG)" -u 3.2.0 nfs4_cs_prep_ci.txt
+ @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscsi -u 3.2.0 nfs4_cs_prep_ci.txt
# Targets for nfscss.spp
-"$(TESTDATABLD)\$(TESTDT)nfscss.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cs_prep_cs.txt"
+"$(TESTDATABLD)\nfscss.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cs_prep_cs.txt"
@echo Building $@
- @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscss -p "$(TESTPKG)" -u 3.2.0 nfs4_cs_prep_cs.txt
+ @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscss -u 3.2.0 nfs4_cs_prep_cs.txt
# Targets for nfscis.spp
-"$(TESTDATABLD)\$(TESTDT)nfscis.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cis_prep.txt"
+"$(TESTDATABLD)\nfscis.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_cis_prep.txt"
@echo Building $@
- @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscis -p "$(TESTPKG)" -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_cis_prep.txt
+ @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfscis -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_cis_prep.txt
# Targets for nfsmxs.spp
-"$(TESTDATABLD)\$(TESTDT)nfsmxs.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_mixed_prep_s.txt"
+"$(TESTDATABLD)\nfsmxs.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_mixed_prep_s.txt"
@echo Building $@
- @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfsmxs -p "$(TESTPKG)" -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_mixed_prep_s.txt
+ @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfsmxs -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_mixed_prep_s.txt
# Targets for nfsmxp.spp
-"$(TESTDATABLD)\$(TESTDT)nfsmxp.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_mixed_prep_p.txt"
+"$(TESTDATABLD)\nfsmxp.spp" : {"$(ICUTOOLS)\gensprep\$(CFG)"}gensprep.exe "$(TESTDATA)\nfs4_mixed_prep_p.txt"
@echo Building $@
- @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfsmxp -p "$(TESTPKG)" -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_mixed_prep_p.txt
+ @"$(ICUTOOLS)\gensprep\$(CFG)\gensprep" -s "$(TESTDATA)" -d "$(TESTDATABLD)\\" -b nfsmxp -u 3.2.0 -k -n "$(ICUTOOLS)\..\data\unidata" nfs4_mixed_prep_p.txt
# Targets for test converter data
-"$(TESTDATABLD)\$(TESTDT)test1.cnv": "$(TESTDATA)\test1.ucm"
+"$(TESTDATABLD)\test1.cnv": "$(TESTDATA)\test1.ucm"
@echo Building $@
- @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" -p $(TESTPKG) $**
+ @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" $**
-"$(TESTDATABLD)\$(TESTDT)test3.cnv": "$(TESTDATA)\test3.ucm"
+"$(TESTDATABLD)\test3.cnv": "$(TESTDATA)\test3.ucm"
@echo Building $@
- @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" -p $(TESTPKG) $**
+ @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" $**
-"$(TESTDATABLD)\$(TESTDT)test4.cnv": "$(TESTDATA)\test4.ucm"
+"$(TESTDATABLD)\test4.cnv": "$(TESTDATA)\test4.ucm"
@echo Building $@
- @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" -p $(TESTPKG) $**
+ @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" $**
-"$(TESTDATABLD)\$(TESTDT)test4x.cnv": "$(TESTDATA)\test4x.ucm"
+"$(TESTDATABLD)\test4x.cnv": "$(TESTDATA)\test4x.ucm"
@echo Building $@
- @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" -p $(TESTPKG) $**
+ @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" $**
-"$(TESTDATABLD)\$(TESTDT)ibm9027.cnv": "$(TESTDATA)\ibm9027.ucm"
+"$(TESTDATABLD)\ibm9027.cnv": "$(TESTDATA)\ibm9027.ucm"
@echo Building $@
- @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" -p $(TESTPKG) $**
+ @"$(ICUTOOLS)\makeconv\$(CFG)\makeconv" -d"$(TESTDATABLD)" $**
diff --git a/Build/source/libs/icu-xetex/test/testmap/Makefile.in b/Build/source/libs/icu-xetex/test/testmap/Makefile.in
index cd7cc8b15ea..ad2038f9d0a 100644
--- a/Build/source/libs/icu-xetex/test/testmap/Makefile.in
+++ b/Build/source/libs/icu-xetex/test/testmap/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - test/testmap
-## Copyright (c) 2003, International Business Machines Corporation and
+## Copyright (c) 2003-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -26,13 +26,6 @@ CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n
LIBS = $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
-# Data packaging options are set at configure time with --with-data-packaging.
-CPPFLAGS += @DATA_PACKAGING_CPPFLAGS@
-
-#ifeq ($(PKGDATA_MODE),dll)
-#CPPFLAGS += -DUDATA_MAP_DLL
-#LIBICUDATA= -L$(top_srcdir)/../data -licudata
-
OBJECTS = testmap.o
DEPS = $(OBJECTS:.o=.d)
diff --git a/Build/source/libs/icu-xetex/test/thaitest/space.txt b/Build/source/libs/icu-xetex/test/thaitest/space.txt
index 65d89c32484..f89194260ed 100644
--- a/Build/source/libs/icu-xetex/test/thaitest/space.txt
+++ b/Build/source/libs/icu-xetex/test/thaitest/space.txt
@@ -1,5 +1,5 @@
-บท ที่ ๑ พายุ ไซโคลน
-โดโรธี อาศัย อยู่ ท่าม à¸à¸¥à¸²à¸‡ ทุ่ง ใหà¸à¹ˆ ใน à¹à¸„นซัส à¸à¸±à¸š ลุง เฮนรี ชาว ไร่ à¹à¸¥à¸° ป้า เอ็ม ภรรยา ชาวไร่
+บท ที่๑พายุ ไซโคลน
+โด โรธี อาศัย อยู่ ท่ามà¸à¸¥à¸²à¸‡ ทุ่งใหà¸à¹ˆ ใน à¹à¸„นซัส à¸à¸±à¸š ลุง เฮ นรี ชาวไร่ à¹à¸¥à¸° ป้า เอ็ม ภรรยา ชาวไร่
บ้าน ของ พวภเขา หลัง เล็ภเพราะ ไม้ สร้าง บ้าน ต้อง ขน มา ด้วย เà¸à¸§à¸µà¸¢à¸™ เป็น
@@ -19,52 +19,52 @@
à¹à¸¥à¹‰à¸§ à¸à¹‡ มี เตียง นอน
-ลุง เฮนรี à¸à¸±à¸š ป้า เอ็ม มี เตียง นอน ใหà¸à¹ˆ อยู่ ที่ มุม หนึ่ง
+ลุง เฮ นรี à¸à¸±à¸š ป้า เอ็ม มี เตียง นอน ใหà¸à¹ˆ อยู่ ที่ มุม หนึ่ง
-ส่วน โดโรธี มี เตียง เล็ภอีภที่ มุม หนึ่ง
+ส่วน โด โร ธีมี เตียง เล็ภอีภที่ มุม หนึ่ง
-ไม่ มี ห้อง ใต้ เพดาน เลย ห้อง ใต้ถุน à¸à¹‡ ไม่ มี
+ไม่มี ห้อง ใต้ เพดาน เลย ห้อง ใต้ถุน à¸à¹‡ ไม่มี
-เว้น à¹à¸•à¹ˆ มี โพรง เล็à¸à¹†
+เว้น à¹à¸•à¹ˆ มี โพ รง เล็à¸à¹†
ที่ ขุด ไป ใต้
พื้น เรียภว่า
-" โพรง ไซโคลน "
+"โพรง ไซโคลน"
-เป็น ที่ ครอบครัว นี้ จะ มุด เข้า ไป เมื่อ เà¸à¸´à¸” ลม มหาภัย
+เป็น ที่ ครอบครัว นี้ จะ มุด เข้าไป เมื่อ เà¸à¸´à¸” ลม มหา ภัย
-ซึ่ง à¸à¸£à¸°à¹‚ชภà¹à¸£à¸‡ จน บด ขยี้ สิ่ง à¸à¹ˆà¸­ สร้าง ใด ๆ
+ซึ่ง à¸à¸£à¸°à¹‚ชภà¹à¸£à¸‡ จน บดขยี้ สิ่ง à¸à¹ˆà¸­ สร้าง ใดๆ
-ที่ ขวาง ทาง มัน ได้ ตรง à¸à¸¥à¸²à¸‡ พื้น มี à¸à¸² เปิด เข้า ไป
+ที่ ขวาง ทาง มัน ได้ ตรง à¸à¸¥à¸²à¸‡ พื้น มี à¸à¸² เปิด เข้าไป
-จาภนั้น มี บันได ลง ไป ถึง โพรง มืด เล็ภๆ
+จาภนั้น มี บันได ลง ไป ถึง โพรง มืด เล็à¸à¹†
-เมื่อ โดโรธี ยืน ที่ ปาภประตู à¹à¸¥à¸° มอง ไป รอบ ๆ
+เมื่อ โด โรธี ยืน ที่ ปาภประตู à¹à¸¥à¸° มอง ไป รอบๆ
-เธอ ไม่ เห็น อะไร นอภจาภท้อง ทุ่ง à¸à¸§à¹‰à¸²à¸‡ สี เทา หม่น ทั่ว ทุภด้าน
+เธอ ไม่ เห็น อะไร นอà¸à¸ˆà¸²à¸ ท้อง ทุ่ง à¸à¸§à¹‰à¸²à¸‡ สี เทา หม่น ทั่ว ทุภด้าน
-ไม่ มี à¹à¸¡à¹‰ ต้นไม้ สัภต้น หรือ บ้าน สัภหลัง ที่ โผล่ พ้น ภูมิ ประเทศ อัน ราบ เรียบ
+ไม่มี à¹à¸¡à¹‰ ต้นไม้ สัภต้น หรือ บ้าน สัภหลัง ที่ โผล่ พ้น ภูมิประเทศ อัน ราบ เรียบ
à¹à¸œà¹ˆ ไป ไà¸à¸¥ จน จด ขอบ ฟ้า ทั่ว ทุภทิศ
-ดวง ตะวัน เผา ผืน ดิน ที่ ไถ à¹à¸¥à¹‰à¸§ จน à¸à¸¥à¸²à¸¢ เป็น à¹à¸œà¹ˆà¸™ มหึมา สี ดำ
+ดวงตะวัน เผา ผืน ดิน ที่ ไถ à¹à¸¥à¹‰à¸§ จน à¸à¸¥à¸²à¸¢ เป็น à¹à¸œà¹ˆà¸™ มหึมา สี ดำ
-มี รอย à¹à¸•à¸à¸£à¸°à¹à¸«à¸‡ อยู่ ตลอด
+มี รอย à¹à¸•à¸ ระà¹à¸«à¸‡ อยู่ ตลอด
à¹à¸¡à¹‰à¹à¸•à¹ˆ หà¸à¹‰à¸² à¸à¹‡ ไม่ เขียว
-เพราะ ดวง ตะวัน เผา ยอด ใบ ยาว เสีย จน เป็น สี เทา หม่น มอง เห็น อยู่ ทั่ว ไป
+เพราะ ดวงตะวัน เผา ยอด ใบ ยาว เสีย จน เป็น สี เทา หม่น มอง เห็น อยู่ ทั่วไป
-ครั้ง หนึ่ง เคย ทา สี บ้านเอาไว้
+ครั้ง หนึ่ง เคย ทาสี บ้าน เอา ไว้
-à¹à¸•à¹ˆ à¸à¹‡ ถูภดวง ตะวัน เผา เสีย จน สี พอง
+à¹à¸•à¹ˆ à¸à¹‡ ถูภดวงตะวัน เผา เสีย จน สี พอง
-à¹à¸¥à¹‰à¸§ à¸à¸™ à¸à¹‡ ชะมัน หลุด ไป จน หมด
+à¹à¸¥à¹‰à¸§ à¸à¸™ à¸à¹‡ ชะ มัน หลุด ไป จน หมด
-à¹à¸¥à¸° ตอน นี้ บ้าน จึง ดู หม่นหมอง เป็น สี เทา เหมือน สิ่ง อื่น ๆ
+à¹à¸¥à¸° ตอน นี้ บ้าน จึง ดู หม่นหมอง เป็น สี เทา เหมือน สิ่ง อื่นๆ
ด้วย
@@ -75,13 +75,13 @@
เป็น ภรรยา ที่ งดงาม
-à¹à¸¥à¹‰à¸§ à¹à¸”ด à¹à¸¥à¸° ลม à¸à¹‡ ได้ เปลี่ยน เธอ ไป
+à¹à¸¥à¹‰à¸§ à¹à¸”ด à¹à¸¥à¸° ลม à¸à¹‡à¹„ด้ เปลี่ยน เธอ ไป
เอา ประà¸à¸²à¸¢ ไป จาภดวงตา เธอ ปล่อย ไว้ à¹à¸•à¹ˆ ความ สุขุม อย่าง หม่นหมอง
-เอา สี à¹à¸”ง จาภà¹à¸à¹‰à¸¡ à¹à¸¥à¸° ริมà¸à¸µà¸›à¸²à¸ เธอ ไป
+เอา สี à¹à¸”ง จาภà¹à¸à¹‰à¸¡ à¹à¸¥à¸° ริม à¸à¸µà¸›à¸²à¸ เธอ ไป
-à¸à¸¥à¸²à¸¢ เป็น สี หม่น ๆ
+à¸à¸¥à¸²à¸¢ เป็น สี หม่นๆ
เหมือน à¸à¸±à¸™
@@ -89,62 +89,62 @@
à¹à¸¥à¸° เดี๋ยว นี้ ไม่ เคย ยิ้ม เลย
-เมื่อ โดโรธี ซึ่ง เป็น เด็ภà¸à¸³à¸žà¸£à¹‰à¸² มา อยู่ à¸à¸±à¸š เธอ ตอน à¹à¸£à¸
+เมื่อ โด โรธี ซึ่ง เป็น เด็ภà¸à¸³à¸žà¸£à¹‰à¸² มา อยู่ à¸à¸±à¸š เธอ ตอน à¹à¸£à¸
ป้า เอ็ม ตื่น เต้น à¸à¸±à¸š เสียง หัวเราะ ของ เด็ภน้อย มาà¸
-เธอ จะส่ง เสียง ร้อง à¹à¸¥à¹‰à¸§ เอา มือ ทาบ อภทุภครั้ง ที่ เสียง อัน ร่าเริง ของ โดโรธี เข้า หู เธอ
+เธอ จะ ส่ง เสียง ร้อง à¹à¸¥à¹‰à¸§ เอา มือ ทาบ อภทุภครั้ง ที่ เสียง อัน ร่าเริง ของ โด โรธี เข้าหู เธอ
-à¹à¸¥à¸° เธอ เà¸à¹‰à¸² มอง เด็ภหà¸à¸´à¸‡ น้อย ๆ
+à¹à¸¥à¸° เธอ เà¸à¹‰à¸² มอง เด็ภหà¸à¸´à¸‡ น้อยๆ
ด้วย ความ ประหลาด ใจ
ด้วย ยัง หา อะไร มา เป็น เรื่อง หัวเราะ ได้
-ลุง เฮนรี ไม่ เคย หัวเราะ
+ลุง เฮ นรี ไม่ เคย หัวเราะ
ลุง ทำงาน หนัภจาภเช้า ยัน ค่ำ
à¹à¸¥à¸° ไม่ เคย รู้จัภว่า ความ ร่าเริง คือ อะไร
-ลุง ดู หม่นหมอง ไป หมด ตั้ง à¹à¸•à¹ˆ เครา ยาว จน จด รองเท้า บูต อัน หยาบ
+ลุง ดู หม่นหมอง ไป หมด ตั้งà¹à¸•à¹ˆ เครา ยาว จน จด รองเท้า บูต อัน หยาบ
-à¹à¸¥à¹‰à¸§ ลุง à¸à¹‡ ดู เคร่งขรึม น่า เà¸à¸£à¸‡à¸‚าม ไม่ ค่อย จะ พูด
+à¹à¸¥à¹‰à¸§ ลุง à¸à¹‡ ดู เคร่งขรึม น่า เà¸à¸£à¸‡ ขาม ไม่ ค่อย จะ พูด
-มี โตโต้ ที่ ทำ ให้ โดโรธี หัวเราะ ได้
+มี โต โต้ ที่ ทำให้ โด โรธี หัวเราะ ได้
-à¹à¸¥à¸° ช่วย เธอ ให้ พ้น จาภà¸à¸²à¸£ à¸à¸¥à¸²à¸¢ เป็น สี เทา หม่นเหมือน à¸à¸±à¸š สิ่ง รอบ ตัว อื่น ๆ
+à¹à¸¥à¸° ช่วย เธอ ให้ พ้น จาภà¸à¸²à¸£à¸ ลาย เป็น สี เทา หม่น เหมือน à¸à¸±à¸š สิ่ง รอบ ตัว อื่นๆ
-โตโต้ สี ไม่ เทา หม่น
+โต โต้ สี ไม่ เทา หม่น
-à¹à¸•à¹ˆ มัน เป็น หมา สี ดำ ตัว น้อย ๆ
+à¹à¸•à¹ˆ มัน เป็น หมา สี ดำ ตัว น้อยๆ
-ขน ยาว ปุย ราว à¸à¸±à¸š ไหม
+ขน ยาว ปุย ราวà¸à¸±à¸š ไหม
มี ตา ดำ เล็ภเป็น ประà¸à¸²à¸¢ รื่นเริง อยู่ สอง ข้าง จมูภเล็ภอัน น่า ขัน ของ มัน
-โตโต้ เล่น ทั้ง วัน
+โต โต้ เล่น ทั้ง วัน
-à¹à¸¥à¸° โดโรธี à¸à¹‡ เล่น à¸à¸±à¸š มัน
+à¹à¸¥à¸° โด โรธี à¸à¹‡ เล่น à¸à¸±à¸š มัน
à¹à¸¥à¸° รัภมัน เหลือ เà¸à¸´à¸™
-อย่างไร à¸à¹‡ ตาม
+อย่างไร à¸à¹‡à¸•à¸²à¸¡
วัน นี้ ทั้ง คู่ ไม่ ได้ เล่น
-ลุง เฮนรี นั่ง อยู่ ที่ บันได ประตู à¹à¸¥à¸° เà¸à¹‰à¸² à¸à¸±à¸‡à¸§à¸¥ จ้อง ดู ท้อง ฟ้า สี เทา หม่น ผิด ปà¸à¸•à¸´
+ลุง เฮ นรี นั่ง อยู่ ที่ บันได ประตู à¹à¸¥à¸° เà¸à¹‰à¸² à¸à¸±à¸‡à¸§à¸¥ จ้อง ดู ท้องฟ้า สี เทา หม่น ผิด ปà¸à¸•à¸´
-โดโรธี ยืน ที่ ประตู
+โด โรธี ยืน ที่ ประตู
-à¸à¸­à¸” โตโต้ ไว้ ใน อ้อม à¹à¸‚น
+à¸à¸­à¸” โต โต้ ไว้ ใน อ้อม à¹à¸‚น
-à¹à¸¥à¸° à¸à¹‡ มอง ดู ท้อง ฟ้า อยู่ เหมือน à¸à¸±à¸™
+à¹à¸¥à¸° à¸à¹‡ มอง ดู ท้องฟ้า อยู่ เหมือน à¸à¸±à¸™
-ป้า เอ็ม à¸à¸³à¸¥à¸±à¸‡ ล้าง ชาม อยู่
+ป้า เอ็ มà¸à¸³ ลัง ล้าง ชาม อยู่
@@ -152,25 +152,25 @@
มี เสียง ลม คราง à¹à¸œà¹ˆà¸§ เบา ได้ยิน มา
-ลุง เฮนรี à¹à¸¥à¸° โดโรธี เห็น ต้น หà¸à¹‰à¸² สูง เอน เป็น คลื่น à¸à¹ˆà¸­à¸™ ที่ พายุ จะ มา ถึง
+ลุง เฮ นรี à¹à¸¥à¸° โด โรธี เห็น ต้น หà¸à¹‰à¸² สูง เอน เป็น คลื่น à¸à¹ˆà¸­à¸™ ที่ พายุ จะ มา ถึง
-à¹à¸¥à¹‰à¸§ à¸à¹‡ มี เสียง หวีดหวิว ชัดเจน มา จาภบรรยาà¸à¸²à¸¨ ทาง ใต้
+à¹à¸¥à¹‰à¸§ à¸à¹‡ มี เสียง หวีด หวิว ชัดเจน มา จาภบรรยาà¸à¸²à¸¨ ทาง ใต้
à¹à¸¥à¸° เมื่อ เหลือบ ตา ไป ทาง ด้าน นั้น à¸à¹‡ เห็น คลื่น หà¸à¹‰à¸² มา ทาง ด้าน นั้น ด้วย
-ลุง เฮนรี ผุด ลุภขึ้น ทัน ใด
+ลุง เฮ นรี ผุด ลุภขึ้น ทันใด
-" ลม ไซโคลน มา
+"ลม ไซโคลน มา
-เอ็ม "
+เอ็ม"
ลุง ร้อง บอภภรรยา
-" ข้า จะ ไป ดู สัตว์ เลี้ยง หน่อย "
+"ข้า จะ ไป ดู สัตว์ เลี้ยง หน่อย"
à¹à¸¥à¹‰à¸§ ลุง à¸à¹‡ วิ่ง ไป ยัง เพิง ที่ วัว à¹à¸¥à¸° ม้า อาศัย อยู่
@@ -184,31 +184,31 @@
-" เร็ว โดโรธี ! "
+"เร็ว โด โรธี!"
ป้า ตะโà¸à¸™
-" วิ่ง ไป ห้อง ใต้ถุน "
+"วิ่ง ไป ห้อง ใต้ถุน"
-โตโต้ ผลุน à¸à¸£à¸°à¹‚ดด ลง จาภอ้อมà¹à¸‚น โดโรธี
+โต โต้ ผลุน à¸à¸£à¸°à¹‚ดด ลง จาภอ้อม à¹à¸‚น โด โรธี
-à¹à¸¥à¹‰à¸§ เข้า ไป ซ่อน อยู่ ใต้ เตียง
+à¹à¸¥à¹‰à¸§ เข้าไป ซ่อน อยู่ ใต้ เตียง
-เด็ภหà¸à¸´à¸‡ น้อย เข้า ไป ดึง มัน ออภมา
+เด็ภหà¸à¸´à¸‡ น้อย เข้าไป ดึง มัน ออภมา
-ป้า เอ็ม à¸à¸£à¸°à¸Šà¸²à¸ à¸à¸² ที่ พื้น ออภอย่าง อภสั่น ขวัภหาย
+ป้า เอ็ มภระ ชาภà¸à¸² ที่ พื้น ออภอย่าง อภสั่น ขวัภหาย
ปีน บันได ไม้ ลง ไป ใน โพรง เล็ภอัน มืด ทึบ
-โดโรธี จับ โตโต้ ได้ ใน ที่ สุด
+โด โรธี จับ โต โต้ ได้ ใน ที่สุด
à¹à¸¥à¸° วิ่ง ตาม ป้า เธอ ไป
-เมื่อ เธอ มา ได้ ครึ่ง ห้อง à¸à¹‡ มี เสียง หวีดหวือ
+เมื่อ เธอ มา ได้ ครึ่ง ห้อง à¸à¹‡ มี เสียง หวีด หวือ
ส่วน บ้าน à¸à¹‡ สั่น อย่าง à¹à¸£à¸‡ จน เธอ หภคะมำ นั่ง จ้ำเบ้า อยู่ à¸à¸±à¸š พื้น
@@ -218,39 +218,39 @@
-บ้าน หมุน ไป หมุน มา สอง สาม รอบ
+บ้าน หมุน ไป หมุน มาส อง สาม รอบ
-à¹à¸¥à¹‰à¸§ à¸à¹‡ ลอย ขึ้น สู่ อาà¸à¸²à¸¨ อย่าง ช้า ๆ
+à¹à¸¥à¹‰à¸§ à¸à¹‡ ลอย ขึ้น สู่ อาà¸à¸²à¸¨ อย่าง ช้าๆ
-โดโรธี รู้สึภราว à¸à¸±à¸š ว่า เธอ ได้ ขึ้น ไป à¸à¸±à¸š ลูภบอลลูน
+โด โร ธีรู้ สึภราวà¸à¸±à¸š ว่า เธอ ได้ ขึ้น ไป à¸à¸±à¸š ลูภบอลลูน
-พายุ เหนือ à¸à¸±à¸š พายุ ใต้ มา พบ à¸à¸±à¸™ ตรง ที่ บ้าน พอ ดี
+พายุ เหนือ à¸à¸±à¸š พายุ ใต้ มา พบ à¸à¸±à¸™ ตรง ที่ บ้าน พอดี
-à¹à¸¥à¸° ทำ ให้ ตรง นั้น เป็น จุด ศูนย์ à¸à¸¥à¸²à¸‡ ของ พายุ ไซโคลน
+à¹à¸¥à¸° ทำให้ ตรง นั้น เป็น จุดศูนย์à¸à¸¥à¸²à¸‡ ของ พายุ ไซโคลน
ตาม ปà¸à¸•à¸´ ตรง à¸à¸¥à¸²à¸‡ พายุ ไซโคลน อาà¸à¸²à¸¨ จะ นิ่ง
à¹à¸•à¹ˆ ความ à¸à¸”ดัน อย่าง หนัภของ ลม ทุภด้าน รอบ บ้าน
-ทำ ให้ บ้าน ลอย สูง ขึ้น ๆ
+ทำให้ บ้าน ลอย สูง ขึ้นๆ
จน à¸à¸£à¸°à¸—ั่ง ขึ้น ไป อยู่ สุด ยอด ของ พายุ ไซโคลน
à¹à¸¥à¸° จาภตรง นั้น à¸à¹‡ ถูภหอบ ไป หลาย ไมล์
-ง่าย ดาย ราว à¸à¸±à¸š หอบ ขน นà¸
+ง่ายดาย ราวà¸à¸±à¸š หอบ ขน นà¸
มืด มาภà¹à¸¥à¹‰à¸§
-ลม ยัง ส่ง เสียง หวีดหวือ น่า à¸à¸¥à¸±à¸§ อยู่ รอบ ตัว เธอ
+ลม ยัง ส่ง เสียง หวีด หวือ น่า à¸à¸¥à¸±à¸§ อยู่ รอบ ตัว เธอ
-à¹à¸•à¹ˆ โดโรธี เห็น ว่า เธอ สามารถ นั่ง ไป ได้ อย่า งง่าย ดาย นัà¸
+à¹à¸•à¹ˆ โด โรธี เห็น ว่า เธอ สามารถ นั่ง ไป ได้ อย่าง ง่ายดาย นัà¸
-ครั้ง หนึ่ง หลัง จาภที่ บ้าน สะดุด อย่าง à¹à¸£à¸‡ à¹à¸¥à¸° หมุน ไป รอบ ๆ
+ครั้ง หนึ่ง หลัง จาภที่ บ้าน สะดุด อย่าง à¹à¸£à¸‡ à¹à¸¥à¸° หมุน ไป รอบๆ
สอง สาม ครั้ง ใน ตอน à¹à¸£à¸
@@ -258,17 +258,17 @@
-โตโต้ ไม่ ชอบ ใจ เลย
+โต โต้ ไม่ ชอบใจ เลย
-มัน วิ่ง ไป วิ่ง มา รอบ ห้อง
+มัน วิ่ง ไป วิ่ง มาร อบ ห้อง
ทาง โน้น ที ทาง นี้ ที ส่ง เสียง เห่า ดัง à¸à¹‰à¸­à¸‡
-à¹à¸•à¹ˆ โดโรธี นั่ง นิ่ง อยู่ บน พื้น เà¸à¹‰à¸² คอย ดู ว่า จะ เà¸à¸´à¸” อะไร ขึ้น
+à¹à¸•à¹ˆ โด โรธี นั่ง นิ่ง อยู่ บน พื้น เà¸à¹‰à¸² คอย ดู ว่า จะ เà¸à¸´à¸” อะไร ขึ้น
-ครั้ง หนึ่ง โตโต้ เข้า ไป ใà¸à¸¥à¹‰ à¸à¸² ที่ พื้น มาภไป
+ครั้ง หนึ่ง โต โต้ เข้าไป ใà¸à¸¥à¹‰ à¸à¸² ที่ พื้น มาภไป
เลย พลัด ตà¸à¸¥à¸‡ ไป
@@ -276,9 +276,9 @@
à¹à¸•à¹ˆ ชั่ว ครู่ เธอ à¸à¹‡ เห็น หู ของ มัน โผล่ ขึ้น มา จาภช่อง นั้น
-ทั้ง นี้ เพราะ à¹à¸£à¸‡ à¸à¸” อย่าง หนัภของ อาà¸à¸²à¸¨ ทำ ให้ โตโต้ ไม่ ตà¸à¸¥à¸‡ ไป ข้าง ล่าง
+ทั้งนี้ เพราะ à¹à¸£à¸‡ à¸à¸” อย่าง หนัภของ อาà¸à¸²à¸¨ ทำให้ โต โต้ ไม่ ตà¸à¸¥à¸‡ ไป ข้าง ล่าง
-โดโรธี คลาน ไป ที่ ช่อง นั้น จับ หู โตโต้ ไว้ ได้
+โด โรธี คลาน ไป ที่ ช่อง นั้น จับ หู โต โต้ ไว้ ได้
à¹à¸¥à¸° ลาภมัน มา ที่ ห้อง อีà¸
@@ -288,33 +288,33 @@
ชั่วโมง à¹à¸¥à¹‰à¸§ ชั่วโมง เล่า ผ่าน ไป
-โดโรธี ค่อย ๆ
+โด โรธี ค่อยๆ
หาย à¸à¸¥à¸±à¸§
à¹à¸•à¹ˆ เธอ รู้สึภเหงา เหลือ เà¸à¸´à¸™
-à¹à¸¥à¸° ลม à¸à¹‡ ส่ง เสียง หวีดหวือ ดัง เสีย จน เธอ à¹à¸—บ จะ หู หนวà¸
+à¹à¸¥à¸° ลม à¸à¹‡ ส่ง เสียง หวีด หวือ ดัง เสีย จน เธอ à¹à¸—บ จะ หู หนวà¸
-ที à¹à¸£à¸ เธอ สงสัย ว่า คง จะ ถูภฉีภà¸à¸£à¸°à¸Šà¸²à¸ ออภเป็น ชิ้น เล็ภชิ้น น้อย เมื่อ บ้าน เอน ล้ม ลง อีภครั้ง
+ที à¹à¸£à¸ เธอ สงสัย ว่า คงจะ ถูภฉีภà¸à¸£à¸°à¸Šà¸²à¸ ออภเป็น ชิ้น เล็ภชิ้น น้อย เมื่อ บ้าน เอน ล้ม ลง อีภครั้ง
-à¹à¸•à¹ˆ หลาย ชั่วโมง ผ่าน ไป à¸à¹‡ ไม่ มี อะไร เà¸à¸´à¸” ขึ้น เธอ เลย เลิภวิตภà¹à¸¥à¸° ตัดสิน ใจ คอย ดู อย่าง สงบ
+à¹à¸•à¹ˆ หลาย ชั่วโมง ผ่าน ไป à¸à¹‡ ไม่มี อะไร เà¸à¸´à¸” ขึ้น เธอ เลย เลิภวิตภà¹à¸¥à¸° ตัดสิน ใจ คอย ดู อย่าง สงบ
à¹à¸¥à¸° รอ ว่า อนาคต จะ เป็น อย่างไร
-ใน ที่ สุด เธอ คลาน จาภพื้น ห้อง ที่ โยภไป มา ขึ้น ไป บน เตียง
+ใน ที่สุด เธอ คลาน จาภพื้น ห้อง ที่ โยภไป มา ขึ้น ไป บน เตียง
à¹à¸¥à¹‰à¸§ à¸à¹‡ นอน ลง
-โตโต้ ตาม ติด มา นอน ลง ใà¸à¸¥à¹‰ ๆ
+โต โต้ ตาม ติด มา นอน ลง ใà¸à¸¥à¹‰à¹†
เธอ
-ไม่ ช้า โดโรธี à¸à¹‡ ปิด ตา ลง หลับ ผล็อย ไป อย่าง สนิท ทั้ง ๆ
+ไม่ ช้า โด โรธี à¸à¹‡ ปิด ตา ลง หลับ ผล็อย ไป อย่าง สนิท ทั้งๆ
-ที่ บ้าน โยภไป มา à¹à¸¥à¸° ลม à¸à¹‡ คราง หวีดหวือ
+ที่ บ้าน โยภไป มา à¹à¸¥à¸° ลม à¸à¹‡ คราง หวีด หวือ
diff --git a/Build/source/libs/icu-xetex/test/thaitest/thaitest.cpp b/Build/source/libs/icu-xetex/test/thaitest/thaitest.cpp
index 910d9db2971..657fab433c0 100644
--- a/Build/source/libs/icu-xetex/test/thaitest/thaitest.cpp
+++ b/Build/source/libs/icu-xetex/test/thaitest/thaitest.cpp
@@ -1,7 +1,7 @@
/*
******************************************************************************
- * Copyright (C) 1998-2003, International Business Machines Corporation and *
- * others. All Rights Reserved. *
+ * Copyright (C) 1998-2003, 2006, International Business Machines Corporation *
+ * and others. All Rights Reserved. *
******************************************************************************
*/
@@ -15,6 +15,8 @@
#include "unicode/brkiter.h"
#include "unicode/locid.h"
#include "unicode/unistr.h"
+#include "unicode/uniset.h"
+#include "unicode/ustring.h"
/*
* This program takes a Unicode text file containing Thai text with
@@ -68,6 +70,9 @@ private:
// current space count
int32_t fSpaceCount;
+
+ // UnicodeSet of SA characters
+ UnicodeSet fComplexContext;
// true when fBreakIter has returned DONE
UBool fDone;
@@ -387,6 +392,46 @@ const UChar *ThaiWordbreakTest::crunchSpaces(const UChar *spaces, int32_t count,
}
/*
+ * Generate a text file with spaces in it from a file without.
+ */
+int generateFile(const UChar *chars, int32_t length) {
+ Locale root("");
+ UCharCharacterIterator *noSpaceIter = new UCharCharacterIterator(chars, length);
+ UErrorCode status = U_ZERO_ERROR;
+
+ UnicodeSet complexContext(UNICODE_STRING_SIMPLE("[:LineBreak=SA:]"), status);
+ BreakIterator *breakIter = BreakIterator::createWordInstance(root, status);
+ breakIter->adoptText(noSpaceIter);
+ char outbuf[1024];
+ int32_t strlength;
+ UChar bom = 0xFEFF;
+
+ printf("%s", u_strToUTF8(outbuf, sizeof(outbuf), &strlength, &bom, 1, &status));
+ int32_t prevbreak = 0;
+ while (U_SUCCESS(status)) {
+ int32_t nextbreak = breakIter->next();
+ if (nextbreak == BreakIterator::DONE) {
+ break;
+ }
+ printf("%s", u_strToUTF8(outbuf, sizeof(outbuf), &strlength, &chars[prevbreak],
+ nextbreak-prevbreak, &status));
+ if (nextbreak > 0 && complexContext.contains(chars[nextbreak-1])
+ && complexContext.contains(chars[nextbreak])) {
+ printf(" ");
+ }
+ prevbreak = nextbreak;
+ }
+
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "generate failed: %s\n", u_errorName(status));
+ return status;
+ }
+ else {
+ return 0;
+ }
+}
+
+/*
* The main routine. Read the command line arguments, read the text file,
* remove the spaces, do the comparison and report the final results
*/
@@ -395,6 +440,12 @@ int main(int argc, char **argv)
char *fileName = "space.txt";
int arg = 1;
UBool verbose = FALSE;
+ UBool generate = FALSE;
+
+ if (argc >= 2 && strcmp(argv[1], "-generate") == 0) {
+ generate = TRUE;
+ arg += 1;
+ }
if (argc >= 2 && strcmp(argv[1], "-verbose") == 0) {
verbose = TRUE;
@@ -418,6 +469,10 @@ int main(int argc, char **argv)
if (spaces == 0) {
return 1;
}
+
+ if (generate) {
+ return generateFile(spaces, spaceCount);
+ }
noSpaces = ThaiWordbreakTest::crunchSpaces(spaces, spaceCount, nonSpaceCount);
@@ -443,9 +498,10 @@ SpaceBreakIterator::SpaceBreakIterator(const UChar *text, int32_t count)
{
UCharCharacterIterator *iter = new UCharCharacterIterator(text, count);
UErrorCode status = U_ZERO_ERROR;
- Locale us("us");
+ fComplexContext.applyPattern(UNICODE_STRING_SIMPLE("[:LineBreak=SA:]"), status);
+ Locale root("");
- fBreakIter = BreakIterator::createWordInstance(us, status);
+ fBreakIter = BreakIterator::createWordInstance(root, status);
fBreakIter->adoptText(iter);
}
@@ -471,12 +527,17 @@ int32_t SpaceBreakIterator::next()
return BreakIterator::DONE;
}
- int32_t nextBreak = fBreakIter->next();
-
- if (nextBreak == BreakIterator::DONE) {
- fDone = TRUE;
- return BreakIterator::DONE;
+ int32_t nextBreak;
+ do {
+ nextBreak = fBreakIter->next();
+
+ if (nextBreak == BreakIterator::DONE) {
+ fDone = TRUE;
+ return BreakIterator::DONE;
+ }
}
+ while(nextBreak > 0 && fComplexContext.contains(fText[nextBreak-1])
+ && fComplexContext.contains(fText[nextBreak]));
int32_t result = nextBreak - fSpaceCount;
diff --git a/Build/source/libs/icu-xetex/test/unalignedtest/readme b/Build/source/libs/icu-xetex/test/unalignedtest/readme
deleted file mode 100644
index acf10a1cdf4..00000000000
--- a/Build/source/libs/icu-xetex/test/unalignedtest/readme
+++ /dev/null
@@ -1,27 +0,0 @@
-Copyright (c) 2002-2003, International Business Machines Corporation and others. All Rights Reserved.
-Unalignedtest
-=============
-
-This is a test to find if ICU is 64 bit clean. This test runs cintltst and intltest through gdb and produces SIGBUS fault
-whenever the kernel encounters a unaligned trap.
-
-Build and Usage
-==================
-To build this test:
-
-i) Build and test ICU
-
-ii) cd to <icu>/source and run the following command to build the Makefile
-CONFIG_FILES=./test/unalignedtest/Makefile CONFIG_HEADERS= ./config.status
-
-iii) cd to <icu>/source/test/unalignedtest and run 'make' to build the executable
-
-iv) For testing cintltst run 'make check-cintltst'
-
-v) For testing intltest run 'make check-intltest'
-
-vi) To find out if any of the tools are performing unaligned traps:
- a) cd to <icu>/source/data
- b) run 'make clean'
- c) run 'env LEAK_CHECKER="<icu>/source/test/unalignedtest/unalignedtest -b" make'
-
diff --git a/Build/source/libs/icu-xetex/test/unalignedtest/unaligned.c b/Build/source/libs/icu-xetex/test/unalignedtest/unaligned.c
deleted file mode 100644
index e8bf8b80cf5..00000000000
--- a/Build/source/libs/icu-xetex/test/unalignedtest/unaligned.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- This program is a wrapper to assist in debugging analigned traps on the Alpha
- architectures.
-
- COPYRIGHT AND PERMISSION NOTICE
-
- Copyright (c) 2002 Sean Hunter
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, and/or sell copies of the Software, and to permit persons
- to whom the Software is furnished to do so, provided that the above
- copyright notice(s) and this permission notice appear in all copies of
- the Software and that both the above copyright notice(s) and this
- permission notice appear in supporting documentation.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
- OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
- INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
- FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Except as contained in this notice, the name of a copyright holder
- shall not be used in advertising or otherwise to promote the sale, use
- or other dealings in this Software without prior written authorization
- of the copyright holder.
-
- --------------------------------------------------------------------------------
- All trademarks and registered trademarks mentioned herein are the property
- of their respective owners.
-
-*/
-#include <errno.h>
-#include <stdio.h>
-
-#include <asm/sysinfo.h>
-#include <asm/unistd.h>
-
-#define TMP_PATH_MAX 1024
-
-
-static int
-setsysinfo(unsigned long op, void *buffer, unsigned long size,
- int *start, void *arg, unsigned long flag)
-{
- syscall(__NR_osf_setsysinfo, op, buffer, size, start, arg, flag);
-}
-
-
-void
-trap_unaligned(void)
-{
- unsigned int buf[2];
- buf[0] = SSIN_UACPROC;
- buf[1] = UAC_SIGBUS | UAC_NOPRINT;
- setsysinfo(SSI_NVPAIRS, buf, 1, 0, 0, 0);
-}
-
-
-static void
-usage(void)
-{
- fprintf(stderr,
- "usage: unaligned [-b] <command-path> [command-args...]\n\n"
- " This program is designed to assist debugging of\n"
- " unaligned traps by running the program in gdb\n"
- " and causing it to get SIGBUS when it encounters\n"
- " an unaligned trap.\n\n"
- " It is free software written by Sean Hunter <sean@uncarved.co.uk>\n"
- " based on code by Richard Henderson and Andrew Morgan.\n\n"
- );
-
- exit(1);
-}
-
-
-int
-main(int argc, char **argv)
-{
- const char my_debugger[] = "/usr/bin/gdb";
-
- char *temp_str;
- char *curr;
- int size = 0;
- int curr_arg;
- int isBatchMode = 0;
-
- /* check that we have at least 1 argument */
- if (argc < 2) {
- usage();
- }
- if( strcmp("-b" , argv[1]) == 0 ){
- isBatchMode = 1;
- curr_arg = 2;
- }else{
- curr_arg = 1;
- }
-
- trap_unaligned();
-
- if (argc > 2) {
- /* We're going to use bash process redirection to create a "file" for gdb to read
- * containing the arguments we need */
- size = 2048;
- for(; curr_arg < argc; curr_arg++) {
- size += strlen(argv[curr_arg]);
- }
- temp_str = (char *) malloc(sizeof(char) * size);
- if (!temp_str) {
- fprintf(stderr, "Unable to malloc memory for string use: %s\n", strerror(errno));
- exit(255);
- }
- if(isBatchMode==1){
- sprintf(temp_str, "%s -batch %s -x <( echo file %s; echo set args", my_debugger, argv[2], argv[2]);
- }else{
- sprintf(temp_str, "%s %s -x <( echo file %s; echo set args", my_debugger, argv[1], argv[1]);
- }
- curr = temp_str + strlen(temp_str);
- for(curr_arg = 2; curr_arg < argc; curr_arg++) {
- sprintf(curr, " %s", argv[curr_arg]);
- curr = temp_str + strlen(temp_str);
- }
-#ifndef NOAUTORUN
- curr = temp_str + strlen(temp_str);
- sprintf(curr, "; echo run");
-#endif
- curr = temp_str + strlen(temp_str);
- sprintf(curr, ")");
-
- execlp("/bin/bash", "/bin/bash", "-c", temp_str, NULL);
-
- }
- else {
- execlp(my_debugger, my_debugger, argv[1], NULL);
- }
-
- /* if we fall through to here, our exec failed -- announce the fact */
- fprintf(stderr, "Unable to execute command: %s\n", strerror(errno));
-
- usage();
-
-}
-
-/* use gcc unaligned.c -o unaliged to compile. Add -DNOAUTORUN if you
-don't want gdb to automatically run the program */
-
diff --git a/Build/source/libs/icu-xetex/test/usetperf/timer.h b/Build/source/libs/icu-xetex/test/usetperf/timer.h
deleted file mode 100644
index c15ff4e4253..00000000000
--- a/Build/source/libs/icu-xetex/test/usetperf/timer.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-**********************************************************************
-* Copyright (c) 2002-2005, International Business Machines
-* Corporation and others. All Rights Reserved.
-**********************************************************************
-* 2002-09-20 aliu Created.
-*/
-#ifndef __PERFTIMER_H__
-#define __PERFTIMER_H__
-
-#include "unicode/utypes.h"
-
-// Derived from Ram's perftime.h
-
-//----------------------------------------------------------------------
-// Win32
-
-#if defined(U_WINDOWS)
-
-#include <windows.h>
-
-class Timer {
- LARGE_INTEGER tstart, tend;
-public:
- Timer() {}
- inline void start() {
- QueryPerformanceCounter(&tstart);
- }
- inline double stop() {
- QueryPerformanceCounter(&tend);
- LARGE_INTEGER freq;
- int result = QueryPerformanceFrequency(&freq);
- return ((double)(tend.QuadPart - tstart.QuadPart))/((double)freq.QuadPart);
- }
-};
-
-//----------------------------------------------------------------------
-// UNIX
-
-#else
-
-#include <sys/time.h>
-
-class Timer {
- struct timeval tstart, tend;
- struct timezone tz;
-public:
- Timer() {}
- inline void start() {
- gettimeofday(&tstart, &tz);
- }
- inline double stop() {
- gettimeofday(&tend, &tz);
- double t1, t2;
- t1 = (double)tstart.tv_sec + (double)tstart.tv_usec*1e-6;
- t2 = (double)tend.tv_sec + (double)tend.tv_usec*1e-6;
- return t2-t1;
- }
-};
-
-#endif
-#endif
diff --git a/Build/source/libs/icu-xetex/test/usetperf/usetperf.cpp b/Build/source/libs/icu-xetex/test/usetperf/usetperf.cpp
deleted file mode 100644
index cdff2adb275..00000000000
--- a/Build/source/libs/icu-xetex/test/usetperf/usetperf.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
-**********************************************************************
-* Copyright (c) 2002-2004, International Business Machines
-* Corporation and others. All Rights Reserved.
-**********************************************************************
-* 2002-09-20 aliu Created.
-*/
-
-#include <stdio.h>
-
-#include "unicode/utypes.h"
-#include "unicode/uniset.h"
-#include "unicode/uchar.h"
-#include "unicode/usetiter.h"
-#include "bitset.h"
-#include "timer.h"
-
-#define LENGTH(a) (sizeof(a)/sizeof(a[0]))
-
-int main(int argc, const char *argv[]) {
-
- Timer timer;
- BitSet bs;
- UnicodeSet us;
- int32_t i, j, n, temp;
- UChar32 cp;
- double t;
-
- int32_t PROPS[] = {
- // category iterations for add, contains, iterator
- U_TITLECASE_LETTER, 100, 100, 20000000,
- U_UNASSIGNED, 30, 100, 20000000,
- };
-
- for (j=0; j<LENGTH(PROPS); j+=4) {
- UCharCategory prop = (UCharCategory) PROPS[j];
-
- printf("\nGetting characters for character category %d\n", prop);
- bs.clearAll();
- int32_t total = 0;
- for (cp=0; cp<0x110000; ++cp) {
- if (u_charType(cp) == prop) {
- bs.set((int32_t) cp);
- ++total;
- }
- }
- printf("Total characters: %d\n", total);
-
- // add()
- n = PROPS[j+1];
- printf("Testing add() x %d...", n);
- timer.start();
- for (i=0; i<n; ++i) {
- us.clear();
- for (cp=0; cp<0x110000; ++cp) {
- if (bs.get((int32_t) cp)) {
- us.add(cp);
- }
- }
- }
- t = timer.stop();
- printf("result: %f sec => %f ms/loop\n", t, t*1e3/n);
-
- // contains()
- n = PROPS[j+2];
- printf("Testing contains() x %d...", n);
- temp = 0;
- timer.start();
- for (i=0; i<n; ++i) {
- us.clear();
- for (cp=0; cp<0x110000; ++cp) {
- if (us.contains(cp)) {
- temp += cp;
- }
- }
- }
- t = timer.stop();
- printf("result: %f sec => %f ms/loop\n", t, t*1e3/n);
-
- // iterator
- n = PROPS[j+3];
- printf("Testing iterator x %d...", n);
- temp = 0;
- timer.start();
- for (i=0; i<n; ++i) {
- UnicodeSetIterator uit(us);
- while (uit.next()) {
- temp += uit.getCodepoint();
- }
- }
- t = timer.stop();
- printf("result: %f sec => %f ns/loop\n", t, t*1e9/n);
- }
-
- char* PAT[] = {
- "['A-Za-z\\u00C0-\\u00C5\\u00C7-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DD\\u00E0-\\u00E5\\u00E7-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FD\\u00FF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0-\\u01A1\\u01AF-\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E1\\u01E6-\\u01ED\\u01F0\\u01F4-\\u01F5\\u01F8-\\u01FB\\u0200-\\u021B\\u021E-\\u021F\\u0226-\\u0233\\u1E00-\\u1E99\\u1EA0-\\u1EF9\\u212A-\\u212B]",
-
- "['.0-9A-Za-z~\\u00C0-\\u00C5\\u00C7-\\u00CF\\u00D1-\\u00D6\\u00D9-\\u00DD\\u00E0-\\u00E5\\u00E7-\\u00EF\\u00F1-\\u00F6\\u00F9-\\u00FD\\u00FF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0-\\u01A1\\u01AF-\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01ED\\u01F0\\u01F4-\\u01F5\\u01F8-\\u021B\\u021E-\\u021F\\u0226-\\u0233\\u0301\\u0303-\\u0304\\u0306-\\u0307\\u0310\\u0314-\\u0315\\u0323\\u0325\\u0331\\u0341\\u0344\\u0385-\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AC-\\u03B0\\u03CC-\\u03CE\\u03D3\\u0403\\u040C\\u040E\\u0419\\u0439\\u0453\\u045C\\u045E\\u04C1-\\u04C2\\u04D0-\\u04D1\\u04D6-\\u04D7\\u04E2-\\u04E3\\u04EE-\\u04EF\\u1E00-\\u1E99\\u1EA0-\\u1EF9\\u1F01\\u1F03-\\u1F05\\u1F07\\u1F09\\u1F0B-\\u1F0D\\u1F0F\\u1F11\\u1F13-\\u1F15\\u1F19\\u1F1B-\\u1F1D\\u1F21\\u1F23-\\u1F25\\u1F27\\u1F29\\u1F2B-\\u1F2D\\u1F2F\\u1F31\\u1F33-\\u1F35\\u1F37\\u1F39\\u1F3B-\\u1F3D\\u1F3F\\u1F41\\u1F43-\\u1F45\\u1F49\\u1F4B-\\u1F4D\\u1F51\\u1F53-\\u1F55\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F61\\u1F63-\\u1F65\\u1F67\\u1F69\\u1F6B-\\u1F6D\\u1F6F\\u1F71\\u1F73\\u1F75\\u1F77\\u1F79\\u1F7B\\u1F7D\\u1F81\\u1F83-\\u1F85\\u1F87\\u1F89\\u1F8B-\\u1F8D\\u1F8F\\u1F91\\u1F93-\\u1F95\\u1F97\\u1F99\\u1F9B-\\u1F9D\\u1F9F\\u1FA1\\u1FA3-\\u1FA5\\u1FA7\\u1FA9\\u1FAB-\\u1FAD\\u1FAF-\\u1FB1\\u1FB4\\u1FB8-\\u1FB9\\u1FBB\\u1FC4\\u1FC9\\u1FCB\\u1FCE\\u1FD0-\\u1FD1\\u1FD3\\u1FD8-\\u1FD9\\u1FDB\\u1FDE\\u1FE0-\\u1FE1\\u1FE3\\u1FE5\\u1FE8-\\u1FE9\\u1FEB-\\u1FEC\\u1FEE\\u1FF4\\u1FF9\\u1FFB\\u212A-\\u212B\\uE04D\\uE064]",
-
- "[\\u0901-\\u0903\\u0905-\\u0939\\u093C-\\u094D\\u0950-\\u0954\\u0958-\\u096F]",
- };
-
- UErrorCode ec = U_ZERO_ERROR;
-
- n = 2000;
-
- for (j=0; j<LENGTH(PAT); ++j) {
-
- printf("\nApplying pattern %s x %d...", PAT[j], n);
- UnicodeSet set;
- UnicodeString pat(PAT[j], "");
-
- timer.start();
- for (i=0; i<n; i++) {
- set.applyPattern(pat, ec);
- }
- t = timer.stop();
- printf("result: %f sec => %f us/loop\n", t, t*1e6/n);
- }
-
- return 0;
-}
diff --git a/Build/source/libs/icu-xetex/test/usetperf/usetperf.dsp b/Build/source/libs/icu-xetex/test/usetperf/usetperf.dsp
deleted file mode 100644
index 3d012285df7..00000000000
--- a/Build/source/libs/icu-xetex/test/usetperf/usetperf.dsp
+++ /dev/null
@@ -1,164 +0,0 @@
-# Microsoft Developer Studio Project File - Name="usetperf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=usetperf - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "usetperf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "usetperf.mak" CFG="usetperf - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "usetperf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "usetperf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "usetperf - Win64 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "usetperf - Win64 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "usetperf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 icuuc.lib kernel32.lib user32.lib gdi32.lib winmm.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\lib"
-
-!ELSEIF "$(CFG)" == "usetperf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 icuucd.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib"
-
-!ELSEIF "$(CFG)" == "usetperf - Win64 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Op /I "..\..\..\include" /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IX86 /machine:IA64
-# ADD LINK32 icuuc.lib kernel32.lib user32.lib gdi32.lib winmm.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IX86 /libpath:"..\..\..\lib" /machine:IA64
-
-!ELSEIF "$(CFG)" == "usetperf - Win64 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Op /I "..\..\..\include" /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /GZ /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:IX86 /pdbtype:sept /machine:IA64
-# ADD LINK32 icuucd.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:IX86 /pdbtype:sept /libpath:"..\..\..\lib" /machine:IA64
-
-!ENDIF
-
-# Begin Target
-
-# Name "usetperf - Win32 Release"
-# Name "usetperf - Win32 Debug"
-# Name "usetperf - Win64 Release"
-# Name "usetperf - Win64 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\bitset.cpp
-# ADD CPP /I "..\..\common"
-# End Source File
-# Begin Source File
-
-SOURCE=.\usetperf.cpp
-# ADD CPP /I "..\..\common"
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/Build/source/libs/icu-xetex/test/utfperf/utfperf.c b/Build/source/libs/icu-xetex/test/utfperf/utfperf.c
deleted file mode 100644
index 5bedfdd44d9..00000000000
--- a/Build/source/libs/icu-xetex/test/utfperf/utfperf.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/*
-**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
-* Corporation and others. All Rights Reserved.
-**********************************************************************
-* file name: utfperf.c
-* encoding: US-ASCII
-* tab size: 8 (not used)
-* indentation:4
-*
-* created on: 2002apr17
-* created by: Markus W. Scherer
-*
-* Performance test program for Unicode converters
-* (converters that support all Unicode code points).
-* Takes a UTF-8 file as input.
-*/
-
-#include <stdio.h>
-#include <string.h>
-
-#include <fcntl.h> /* for _O_BINARY */
-#include <io.h> /* for _setmode() */
-
-#include "unicode/utypes.h"
-#include "unicode/ucnv.h"
-#include "unicode/ustring.h"
-
-#if defined(U_WINDOWS)
-# include <windows.h>
-#else
-# include <sys/time.h>
- static unsigned long
- timeGetTime() {
- struct timeval t;
-
- gettimeofday(&t, 0);
- return t.tv_sec*1000+t.tv_usec/1000;
- };
-#endif
-
-/* definitions and text buffers */
-
-#define INPUT_CAPACITY (1024*1024)
-#define INTERMEDIATE_CAPACITY 4096
-#define INTERMEDIATE_SMALL_CAPACITY 20
-#define OUTPUT_CAPACITY INPUT_CAPACITY
-
-#define TARGET_MEASURE_TIME_MS 2000
-
-#define PERCENT(a, b) (int)(((a)*200+1)/(2*(b)))
-
-#define ARRAY_LENGTH(a) (sizeof(a)/sizeof((a)[0]))
-
-static UChar input[INPUT_CAPACITY], output[OUTPUT_CAPACITY];
-static char intermediate[INTERMEDIATE_CAPACITY];
-
-static int32_t inputLength, encodedLength, outputLength, countInputCodePoints;
-
-static int32_t utf8Length=0;
-static double utf8Time=0.;
-
-static const char *const
-utfNames[]={
- "UTF-8", /* UTF-8 should always be first to serve as percentage reference */
- "SCSU", "BOCU-1" /*, "CESU-8" *//*, "UTF-16BE", "UTF-16LE"*//*, "GB18030"*/
-};
-
-/* functions */
-
-typedef void
-RoundtripFn(UConverter *cnv, int32_t intermediateCapacity, UErrorCode *pErrorCode);
-
-static void
-roundtrip(UConverter *cnv, int32_t intermediateCapacity, UErrorCode *pErrorCode) {
- const UChar *pIn, *pInLimit;
- UChar *pOut, *pOutLimit;
- char *pInter, *pInterLimit, *p;
- UBool flush;
-
- ucnv_reset(cnv);
-
- pIn=input;
- pInLimit=input+inputLength;
-
- pOut=output;
- pOutLimit=output+OUTPUT_CAPACITY;
-
- pInterLimit=intermediate+intermediateCapacity;
-
- encodedLength=outputLength=0;
- flush=FALSE;
-
- while(pIn<pInLimit || !flush) {
- /* convert a block of [pIn..pInLimit[ to the encoding in intermediate[] */
- pInter=intermediate;
- flush=(UBool)(pIn==pInLimit);
- ucnv_fromUnicode(cnv,
- &pInter, pInterLimit,
- &pIn, pInLimit,
- NULL, flush,
- pErrorCode);
- encodedLength+=(int32_t)(pInter-intermediate);
-
- if(*pErrorCode==U_BUFFER_OVERFLOW_ERROR) {
- /* in case flush was TRUE make sure that we convert once more to really flush */
- flush=FALSE;
- *pErrorCode=U_ZERO_ERROR;
- } else if(U_FAILURE(*pErrorCode)) {
- return;
- }
-
- /* convert the block [intermediate..pInter[ back to UTF-16 */
- p=intermediate;
- ucnv_toUnicode(cnv,
- &pOut, pOutLimit,
- &p, pInter,
- NULL, flush,
- pErrorCode);
- if(U_FAILURE(*pErrorCode)) {
- return;
- }
- /* intermediate must have been consumed (p==pInter) because of the converter semantics */
- }
-
- outputLength=pOut-output;
- if(inputLength!=outputLength) {
- fprintf(stderr, "error: roundtrip failed, inputLength %d!=outputLength %d\n", inputLength, outputLength);
- *pErrorCode=U_INTERNAL_PROGRAM_ERROR;
- }
-}
-
-static void
-noop(UConverter *cnv, int32_t intermediateCapacity, UErrorCode *pErrorCode) {
- /* do nothing */
-}
-
-static unsigned long
-measureRoundtrips(RoundtripFn *fn, UConverter *cnv, const char *encName, int32_t intermediateCapacity, int32_t n) {
- unsigned long _time;
- UErrorCode errorCode;
-
- _time=timeGetTime();
- errorCode=U_ZERO_ERROR;
- do {
- fn(cnv, intermediateCapacity, &errorCode);
- } while(U_SUCCESS(errorCode) && --n>0);
- _time=timeGetTime()-_time;
-
- if(U_FAILURE(errorCode)) {
- fprintf(stderr, "error in roundtrip conversion (%s): %s\n", encName, u_errorName(errorCode));
- return 0x7fffffff;
- }
-
- if(0!=u_memcmp(input, output, inputLength)) {
- fprintf(stderr, "error: roundtrip failed, input[]!=output[]\n");
- return 0x7fffffff;
- }
-
- return _time;
-}
-
-static void
-perEncAndCapacity(UConverter *cnv, const char *encName, int32_t intermediateCapacity) {
- double rtTime;
- unsigned long _time;
- int32_t n;
-
- /*printf("test performance for %s with intermediate capacity %d\n", encName, intermediateCapacity);*/
-
- /* warm up caches and estimate loop time */
- n=10;
- for(;;) {
- _time=measureRoundtrips(roundtrip, cnv, encName, intermediateCapacity, n);
- if(_time<500 && _time<TARGET_MEASURE_TIME_MS/10) {
- n*=10;
- } else {
- break;
- }
- }
-
- if(_time<TARGET_MEASURE_TIME_MS) {
- n=(n*TARGET_MEASURE_TIME_MS)/_time+1;
- }
-
- /* run actual measurement with a target test time of 10s */
- _time=measureRoundtrips(roundtrip, cnv, encName, intermediateCapacity, n);
-
- /* subtract same number of loops over no-operation function */
- _time-=measureRoundtrips(noop, cnv, encName, intermediateCapacity, n);
-
- rtTime=((double)_time*1000.)/(double)n;
-
- /* report */
- printf("* performance report for %8s:\n", encName);
- printf(" intermediate buffer capacity %8d B\n", intermediateCapacity);
- if(intermediateCapacity==INTERMEDIATE_CAPACITY && utf8Length!=0) {
- printf(" number of encoding bytes %8d B (%3d%% of UTF-8)\n", encodedLength, PERCENT(encodedLength, utf8Length));
- printf(" roundtrip conversion time %8g &#956;s (%3d%% of UTF-8)\n", rtTime, PERCENT(rtTime, utf8Time));
- } else {
- printf(" number of encoding bytes %8d B\n", encodedLength);
- printf(" roundtrip conversion time %8g &#956;s\n", rtTime);
- }
- printf(" average bytes/code point %8g B/cp\n", (double)encodedLength/countInputCodePoints);
- puts("");
-
- /* set UTF-8 values */
- if(intermediateCapacity==INTERMEDIATE_CAPACITY && 0==strcmp(encName, "UTF-8")) {
- utf8Length=encodedLength;
- utf8Time=rtTime;
- }
-}
-
-static void
-perEnc(UConverter *cnv, const char *encName) {
- /*printf("test performance for %s\n", encName);*/
- perEncAndCapacity(cnv, encName, INTERMEDIATE_CAPACITY);
- perEncAndCapacity(cnv, encName, INTERMEDIATE_SMALL_CAPACITY);
-}
-
-static void
-testPerformance() {
- UConverter *cnv;
- UErrorCode errorCode;
- int32_t i;
-
- printf("number of code points %8d cp\n", countInputCodePoints);
- printf("platform endianness: %8s-endian\n", U_IS_BIG_ENDIAN ? "big" : "little");
- puts("");
- for(i=0; i<ARRAY_LENGTH(utfNames); ++i) {
- errorCode=U_ZERO_ERROR;
- cnv=ucnv_open(utfNames[i], &errorCode);
- if(U_SUCCESS(errorCode)) {
- perEnc(cnv, utfNames[i]);
- ucnv_close(cnv);
- } else {
- fprintf(stderr, "error opening converter for \"%s\" - %s\n", utfNames[i], u_errorName(errorCode));
- }
- }
-}
-
-/* read a complete block from the input file */
-static int32_t
-readBlock(FILE *in) {
- int length, blockLength;
-
- blockLength=0;
- while(blockLength<INTERMEDIATE_CAPACITY && !feof(in)) {
- length=fread(intermediate, 1, INTERMEDIATE_CAPACITY-blockLength, in);
- if(length<0 || ferror(in)) {
- return -1;
- }
- blockLength+=length;
- }
-
- return (int32_t)blockLength;
-}
-
-static UBool
-readInput(FILE *in, const char *encName) {
- UConverter *cnv;
- UChar *pOut, *pOutLimit;
- const char *p, *limit;
- int32_t length;
- UErrorCode errorCode;
-
- pOut=input;
- pOutLimit=input+INPUT_CAPACITY;
-
- errorCode=U_ZERO_ERROR;
-
- /* read the first block and open the converter */
- length=readBlock(in);
- if(length<0) {
- return FALSE;
- }
-
- if(encName==NULL) {
- int32_t signatureLength;
- encName=ucnv_detectUnicodeSignature(intermediate, length,
- &signatureLength,
- &errorCode);
- if(U_FAILURE(errorCode) || encName==NULL) {
- /* default to UTF-8 */
- printf("no Unicode signature - using UTF-8\n");
- encName="UTF-8";
- errorCode=U_ZERO_ERROR;
- } else {
- printf("detected signature for %s (removing %d bytes)\n", encName, signatureLength);
- /* remove signature byte sequence */
- memmove(intermediate, intermediate+signatureLength, length-=signatureLength);
- }
- }
-
- cnv=ucnv_open(encName, &errorCode);
- if(U_FAILURE(errorCode)) {
- fprintf(stderr, "error: unable to ucnv_open(\"%s\") - %s\n", encName, u_errorName(errorCode));
- return FALSE;
- }
-
- while(length>0) {
- /* convert the block */
- p=intermediate;
- limit=p+length;
-
- ucnv_toUnicode(cnv,
- &pOut, pOutLimit,
- &p, limit,
- NULL, FALSE,
- &errorCode);
- if(U_FAILURE(errorCode)) {
- fprintf(stderr, "error converting input to UTF-16: %s\n", u_errorName(errorCode));
- ucnv_close(cnv);
- return FALSE;
- }
-
- /* read the next block */
- length=readBlock(in);
- if(length<0) {
- ucnv_close(cnv);
- return FALSE;
- }
- }
-
- /* flush the converter */
- ucnv_toUnicode(cnv,
- &pOut, pOutLimit,
- &p, p,
- NULL, TRUE,
- &errorCode);
- ucnv_close(cnv);
-
- if(U_FAILURE(errorCode)) {
- fprintf(stderr, "error converting input to UTF-16: %s\n", u_errorName(errorCode));
- return FALSE;
- }
-
- inputLength=(int32_t)(pOut-input);
- countInputCodePoints=u_countChar32(input, inputLength);
- if(inputLength<=0) {
- fprintf(stderr, "warning: input is empty\n");
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-showUsage(const char *myName) {
- fprintf(stderr,
- "Usage:\n"
- "%s [-e encoding-name] filename | '-'\n"
- " encoding-name must be the name of an encoding supported by ICU\n"
- " the filename of the input file with text to be used\n"
- " can be a dash (-) for standard input\n",
- myName);
-}
-
-/*
- * Read file using some encoding, convert to 1M UTF-16 input buffer.
- * For each UTF to be tested:
- * n times:
- * convert from UTF-16 input buffer to UTF, 4kB buffer
- * convert from 4kB buffer to 1M UTF-16 output buffer
- * adjust n so that time elapsed is 10s (#define)
- * ->divide 10s by time, increase n by that factor, run 2nd time
- * n times:
- * empty function
- * subtract out loop/function overhead
- * display #code points - #UTF bytes - time per roundtrip
- *
- * * do the same again with an intermediate buffer size of 20 instead of 4kB
- *
- * Test following UTFs:
- * UTF-16BE, UTF-16LE, UTF-8, SCSU, BOCU-1, CESU-8
- *
- * Command-line arguments:
- * - encoding (default UTF-8, detect BOM)
- * - filename (allow "-")
- */
-extern int
-main(int argc, const char *argv[]) {
- FILE *in;
- const char *myName, *encName, *filename, *basename;
-
- myName=argv[0];
- if(argc<2) {
- showUsage(myName);
- return 1;
- }
-
- /* get encoding name argument */
- if(argv[1][0]=='-' && argv[1][1]=='e') {
- encName=argv[1]+2;
- --argc;
- ++argv;
- if(*encName==0) {
- if(argc<2) {
- showUsage(myName);
- return 1;
- }
- encName=argv[1];
- --argc;
- ++argv;
- }
- } else {
- encName=NULL;
- }
-
- /* get filename argument */
- if(argc<2) {
- showUsage(myName);
- return 1;
- }
- filename=argv[1];
- if(filename[0]=='-' && filename[1]==0) {
- filename="(standard input)";
- in=stdin;
- /* set stdin to binary mode */
- _setmode(_fileno(stdin), _O_BINARY);
- } else {
- in=fopen(filename, "rb");
- if(in==NULL) {
- fprintf(stderr, "error opening \"%s\"\n", filename);
- showUsage(myName);
- return 2;
- }
- }
-
- /* read input */
- basename=strrchr(filename, U_FILE_SEP_CHAR);
- if(basename!=NULL) {
- ++basename;
- } else {
- basename=filename;
- }
- printf("# testing converter performance with file \"%s\"\n", basename);
- if(!readInput(in, encName)) {
- fprintf(stderr, "error reading \"%s\" (encoding %s)\n", filename, encName);
- showUsage(myName);
- return 2;
- }
- if(in!=stdin) {
- fclose(in);
- }
-
- /* test performance */
- testPerformance();
- return 0;
-}
diff --git a/Build/source/libs/icu-xetex/test/utfperf/utfperf.dsp b/Build/source/libs/icu-xetex/test/utfperf/utfperf.dsp
deleted file mode 100644
index 83512224c7e..00000000000
--- a/Build/source/libs/icu-xetex/test/utfperf/utfperf.dsp
+++ /dev/null
@@ -1,158 +0,0 @@
-# Microsoft Developer Studio Project File - Name="utfperf" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Console Application" 0x0103
-
-CFG=utfperf - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "utfperf.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "utfperf.mak" CFG="utfperf - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "utfperf - Win32 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "utfperf - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE "utfperf - Win64 Release" (based on "Win32 (x86) Console Application")
-!MESSAGE "utfperf - Win64 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "utfperf - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "..\..\..\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 icuuc.lib kernel32.lib user32.lib gdi32.lib winmm.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\lib"
-
-!ELSEIF "$(CFG)" == "utfperf - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /G6 /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 icuucd.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\lib"
-
-!ELSEIF "$(CFG)" == "utfperf - Win64 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Op /I "..\..\..\include" /D "WIN64" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409 /d "NDEBUG"
-# ADD RSC /l 0x409 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IX86 /machine:IA64
-# ADD LINK32 icuuc.lib kernel32.lib user32.lib gdi32.lib winmm.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:IX86 /libpath:"..\..\..\lib" /machine:IA64
-
-!ELSEIF "$(CFG)" == "utfperf - Win64 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-MTL=midl.exe
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Op /I "..\..\..\include" /D "WIN64" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_IA64_" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /FD /GZ /Wp64 /Zm600 /c
-# ADD BASE RSC /l 0x409 /d "_DEBUG"
-# ADD RSC /l 0x409 /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:IX86 /pdbtype:sept /machine:IA64
-# ADD LINK32 icuucd.lib winmm.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:IX86 /pdbtype:sept /libpath:"..\..\..\lib" /machine:IA64
-
-!ENDIF
-
-# Begin Target
-
-# Name "utfperf - Win32 Release"
-# Name "utfperf - Win32 Debug"
-# Name "utfperf - Win64 Release"
-# Name "utfperf - Win64 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\utfperf.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/Build/source/libs/icu-xetex/tools/Makefile.in b/Build/source/libs/icu-xetex/tools/Makefile.in
index f085f08f62c..da7c907b686 100644
--- a/Build/source/libs/icu-xetex/tools/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU tools
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -13,15 +13,15 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools
-SUBDIRS = toolutil ctestfw makeconv genrb genuca genbrk \
-genprops gencase genbidi gennames genpname gennorm gencmn gencnval gensprep genccode pkgdata \
-gentest icuswap
+SUBDIRS = toolutil ctestfw makeconv genrb genuca genbrk genctd \
+gennames genpname gencnval gensprep genccode gencmn icupkg pkgdata \
+gentest genprops gencase genbidi gennorm icuswap
## List of phony targets
-.PHONY : all all-local all-recursive install install-local install-files install-dlls build-cmnfile build-dll \
+.PHONY : all all-local all-recursive install install-local \
install-recursive clean clean-local clean-recursive distclean \
distclean-local distclean-recursive dist dist-local dist-recursive \
-check check-local check-recursive build-testdlls build-basetestdata build-local
+check check-local check-recursive build-local
## Clear suffix list
.SUFFIXES :
diff --git a/Build/source/libs/icu-xetex/tools/cpysearch/cpyskip.txt b/Build/source/libs/icu-xetex/tools/cpysearch/cpyskip.txt
index 1a2660ff2c4..199fc28eed1 100644
--- a/Build/source/libs/icu-xetex/tools/cpysearch/cpyskip.txt
+++ b/Build/source/libs/icu-xetex/tools/cpysearch/cpyskip.txt
@@ -1,31 +1,41 @@
-# Copyright (c) 2005 International Business Machines
+# Copyright (c) 2005-2006 International Business Machines
# Corporation and others. All Rights Reserved.
# suffix matches
*.brk
*.bz2
*.csproj
+*.dat
+*.doc
*.gif
*.gz
*.ico
*.jar
*.jpg
+*.pdf
*.png
+*.ppt
+*.res
+*.rtf
*.sln
*.sxd
*.sxg
*.sxw
*.vcproj
*.zip
+*.cvsignore
# ICU4C files that don't need an IBM copyright
-icu/as_is/os400/configure
icu/debian/changelog
icu/debian/control
icu/debian/icu-doc.doc-base
+icu/debian/icu-doc.install
icu/debian/icu.conffiles.in
icu/source/config.guess
icu/source/config.sub
icu/source/configure
icu/source/data/brkitr/thaidict.brk
+icu/source/data/unidata/UnicodeData.txt
+icu/source/data/unidata/FractionalUCA.txt
+icu/source/data/unidata/UCARules.txt
icu/source/extra/uconv/pkgdatain.txt
icu/source/extra/uconv/samples/danish-ISO-8859-1.txt
icu/source/extra/uconv/samples/eucJP.txt
@@ -59,19 +69,27 @@ icu/source/samples/ufortune/resources/res-file-list.txt
icu/source/test/testdata/CollationTest_NON_IGNORABLE_STUB.txt
icu/source/test/testdata/CollationTest_SHIFTED_STUB.txt
icu/source/test/testdata/GraphemeClusterBreakTest.txt
+icu/source/test/testdata/ra.xlf
icu/source/test/testdata/re_tests.txt
icu/source/test/testdata/riwords.txt
icu/source/test/testdata/SentenceBreakTest.txt
icu/source/test/testdata/WordBreakTest.txt
+icu/source/test/testdata/idna_conf.txt
icu/source/test/thaitest/space.txt
-icu/source/test/unalignedtest/unaligned.c
-icu/source/tools/gendraft/DeprecatedApi.txt
-icu/source/tools/gendraft/DraftApi.txt
-icu/source/tools/gendraft/ObsoleteApi.txt
icu/source/tools/tzcode/patch-icu-tzcode
+# Following are Public Domain
+icu/source/tools/tzcode/asctime.c
+icu/source/tools/tzcode/ialloc.c
+icu/source/tools/tzcode/localtime.c
+icu/source/tools/tzcode/private.h
+icu/source/tools/tzcode/scheck.c
+icu/source/tools/tzcode/tzfile.h
+icu/source/tools/tzcode/tzselect.ksh
+icu/source/tools/tzcode/zic.c
#ICU4JNI files that don't need an IBM copyright
icu4jni/src/classes/com/ibm/icu4jni/test/text/NormalizationTest.txt
icu4jni/src/native/converter/ConverterInterface.h
+icu4jni/configure
#ICU4J files that don't need an IBM copyright
icu4j/src/com/ibm/icu/dev/data/CollationTest_NON_IGNORABLE_STUB.txt
icu4j/src/com/ibm/icu/dev/data/CollationTest_SHIFTED_STUB.txt
@@ -89,6 +107,28 @@ icu4j/src/com/ibm/icu/dev/data/unicode/SpecialCasing.txt
icu4j/src/com/ibm/icu/dev/data/unicode/ucdterms.txt
icu4j/src/com/ibm/icu/dev/data/unicode/UnicodeData.txt
icu4j/src/com/ibm/icu/dev/data/IDNATestInput.txt
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/.classpath
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu/build.xml
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/.classpath
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base/build.xml
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/.classpath
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base.tests/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.base-feature/feature.xml
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/.classpath
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu.tests/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/.project
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/build.properties
+icu4j/src/com/ibm/icu/dev/eclipse/com.ibm.icu-feature/feature.xml
+icu4j/src/com/ibm/icu/dev/eclipse/misc/about.html
+icu4j/src/com/ibm/icu/dev/test/serializable/*/*.dat
icu4j/src/com/ibm/icu/dev/tool/ime/indic/services/java.awt.im.spi.InputMethodDescriptor
icu4j/src/com/ibm/icu/dev/tool/ime/translit/services/java.awt.im.spi.InputMethodDescriptor
icu4j/src/com/ibm/richtext/textapps/resources/unicode.arabic.red
@@ -96,3 +136,67 @@ icu4j/src/com/ibm/richtext/textapps/resources/unicode.hebrew.red
#Userguide html template file. Skip because adding one would cause multiple
#copyright notices to appear in each generated userguide html file.
icuhtml/userguide/html-template/ugtemplate.html
+icuhtml/icu.sf.net/.htaccess
+icuhtml/icu.sf.net/apiref/index.html
+icuhtml/icu.sf.net/bugs.html
+icuhtml/icu.sf.net/charts/charset/CharacterMappingNames.xml
+icuhtml/icu.sf.net/charts/charset/identicals.html
+icuhtml/icu.sf.net/charts/charset/index.html
+icuhtml/icu.sf.net/charts/charset/roundtripIndex.html
+icuhtml/icu.sf.net/charts/charset/similar.html
+icuhtml/icu.sf.net/charts/collation_icu4c_glibc.html
+icuhtml/icu.sf.net/charts/collation_icu4j_sun.html
+icuhtml/icu.sf.net/charts/comparison/character.html
+icuhtml/icu.sf.net/charts/comparison/collation.html
+icuhtml/icu.sf.net/charts/comparison/index.html
+icuhtml/icu.sf.net/charts/comparison/transforms.html
+icuhtml/icu.sf.net/charts/icu4c_footprint.html
+icuhtml/icu.sf.net/charts/index.html
+icuhtml/icu.sf.net/contacts.html
+icuhtml/icu.sf.net/docs/demo/convexp_help.html
+icuhtml/icu.sf.net/docs/demo/translit_help.html
+icuhtml/icu.sf.net/docs/demo/translit_rule_help.html
+icuhtml/icu.sf.net/docs/eclipse_howto/eclipse_howto.html
+icuhtml/icu.sf.net/docs/index.html
+icuhtml/icu.sf.net/docs/papers/.htaccess
+icuhtml/icu.sf.net/docs/papers/a_rule_based_approach_to_number_spellout/index.html
+icuhtml/icu.sf.net/docs/papers/binary_ordered_compression_for_unicode.html
+icuhtml/icu.sf.net/docs/papers/codepages_and_unicode.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/an_introduction_to_garbage_collection_part_i.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/an_introduction_to_garbage_collection_part_ii.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/java_liaison/learning_to_love_loss_of_control.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/java_liaison/liaison_communication_for_establishing_and_maintaining_cooperation.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/java_liaison/some_holes_and_how_to_fill_them.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/java_liaison/the_amorphous_java_program.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/the_anatomy_of_the_assignment_operator.html
+icuhtml/icu.sf.net/docs/papers/cpp_report/the_assignment_operator_revisited.html
+icuhtml/icu.sf.net/docs/papers/creating_global_applications/index.html
+icuhtml/icu.sf.net/docs/papers/efficient_text_searching_in_java.html
+icuhtml/icu.sf.net/docs/papers/foldedtrie_iuc21.ppt
+icuhtml/icu.sf.net/docs/papers/forms_of_unicode/index.html
+icuhtml/icu.sf.net/docs/papers/gb18030.html
+icuhtml/icu.sf.net/docs/papers/history_of_java_internationalization.html
+icuhtml/icu.sf.net/docs/papers/icu4j_in_eclipse_iuc29.sxi
+icuhtml/icu.sf.net/docs/papers/international_calendars_in_java.html
+icuhtml/icu.sf.net/docs/papers/international_text_in_jdk_1.2/index.html
+icuhtml/icu.sf.net/docs/papers/internationalization_support_for_javascript.html
+icuhtml/icu.sf.net/docs/papers/java_international_api.html
+icuhtml/icu.sf.net/docs/papers/optimized_unicode_composition_and_decomposition.html
+icuhtml/icu.sf.net/docs/papers/text_boundary_analysis_in_java/index.html
+icuhtml/icu.sf.net/docs/papers/unicode-gb18030-faq.html
+icuhtml/icu.sf.net/docs/papers/unicode_wchar_t.html
+icuhtml/icu.sf.net/docs/papers/utf16_code_point_order.html
+icuhtml/icu.sf.net/docs/workshop_2000/agenda.html
+icuhtml/icu.sf.net/docs/workshop_2000/evaluate.html
+icuhtml/icu.sf.net/docs/workshop_2000/index.html
+icuhtml/icu.sf.net/docs/workshop_2000/register.html
+icuhtml/icu.sf.net/docs/workshop_2000/register.txt
+icuhtml/icu.sf.net/docs/workshop_2000/travel.html
+icuhtml/icu.sf.net/icu.css
+icuhtml/icu.sf.net/icu4j_faq.html
+icuhtml/icu.sf.net/index.html
+icuhtml/icu.sf.net/meetings/*.*
+icuhtml/icu.sf.net/ssi/footer.html
+icuhtml/icu.sf.net/ssi/header.html
+icuapps/redemo/readme
+icuapps/configure
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/.cvsignore b/Build/source/libs/icu-xetex/tools/ctestfw/.cvsignore
index b5b1bbd1cf4..efea7b746db 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/.cvsignore
@@ -6,4 +6,6 @@ Debug
Makefile
Release
libicutest*
-pkgdata
+*icutest*.lib
+*icutest*.dll
+*icutest*.exp
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/Makefile.in b/Build/source/libs/icu-xetex/tools/ctestfw/Makefile.in
index 0a0b3b01878..bca5dbf3b08 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/Makefile.in
@@ -1,6 +1,10 @@
+#******************************************************************************
+#
+# Copyright (C) 1999-2006, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - tools/ctestfw
-## Copyright (c) 1999-2005, International Business Machines Corporation and
-## others. All Rights Reserved.
## Stephen F. Booth
## Source directory information
@@ -9,6 +13,7 @@ top_srcdir = @top_srcdir@
top_builddir = ../..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -19,17 +24,15 @@ CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
## Target information
+TARGET_STUBNAME=$(CTESTFW_STUBNAME)
+
ifneq ($(ENABLE_STATIC),)
-TARGET = $(LIBSICU)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX).$(A)
+TARGET = $(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
endif
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil -I$(srcdir)
-DEFS += -DT_CTEST_IMPLEMENTATION
-
-
ifneq ($(ENABLE_SHARED),)
-SO_TARGET = $(LIBICU)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+SO_TARGET = $(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
endif
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS)
@@ -38,15 +41,22 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil -I$(srcdir) $(LIBCPPFLAGS)
+DEFS += -DT_CTEST_IMPLEMENTATION
LDFLAGS += $(LDFLAGSCTESTFW)
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS)
-OBJECTS = ctest.o tstdtmod.o testdata.o datamap.o
+OBJECTS = ctest.o tstdtmod.o testdata.o datamap.o uperf.o
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local dist dist-local check check-local
@@ -67,18 +77,6 @@ all-local: $(ALL_TARGETS)
install-local: install-library
install-library: all-local
-#echo This doesn't need to be installed normally
-# $(MKINSTALLDIRS) $(DESTDIR)$(libdir)
-#ifneq ($(ENABLE_STATIC),)
-# $(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
-#endif
-#ifneq ($(ENABLE_SHARED),)
-# $(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)/$(FINAL_SO_TARGET)
-#ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
-# cd $(DESTDIR)$(libdir) && $(RM) $(MIDDLE_SO_TARGET) && ln -s $(FINAL_SO_TARGET) $(MIDDLE_SO_TARGET)
-# cd $(DESTDIR)$(libdir) && $(RM) $(SO_TARGET) && ln -s $(FINAL_SO_TARGET) $(SO_TARGET)
-#endif
-#endif
dist-local:
@@ -101,7 +99,7 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS)
+$(SHARED_OBJECT): $(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
endif
@@ -112,3 +110,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/ctest.c b/Build/source/libs/icu-xetex/tools/ctestfw/ctest.c
index f493be14a56..d99450b1d62 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/ctest.c
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/ctest.c
@@ -1,10 +1,10 @@
/*
-*****************************************************************************************
+********************************************************************************
*
-* Copyright (C) 1996-2004, International Business Machines
+* Copyright (C) 1996-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
-*****************************************************************************************
+********************************************************************************
*/
#include <stdio.h>
#include <stdlib.h>
@@ -372,8 +372,10 @@ getTest(const TestNode* root, const char* name)
const TestNode* curNode;
int nameLen; /* length of current 'name' */
- if (root == NULL)
+ if (root == NULL) {
log_err("TEST CAN'T BE FOUND!\n");
+ return NULL;
+ }
/* remove leading slash */
if ( *name == TEST_SEPARATOR )
name++;
@@ -429,7 +431,7 @@ static void vlog_err(const char *prefix, const char *pattern, va_list ap)
}
fprintf(stderr, "%-*s", INDENT_LEVEL," " );
if(prefix) {
- fputs(prefix, stderr);
+ fputs(prefix, stderr);
}
vfprintf(stderr, pattern, ap);
fflush(stderr);
@@ -441,7 +443,7 @@ vlog_info(const char *prefix, const char *pattern, va_list ap)
{
fprintf(stdout, "%-*s", INDENT_LEVEL," " );
if(prefix) {
- fputs(prefix, stderr);
+ fputs(prefix, stdout);
}
vfprintf(stdout, pattern, ap);
fflush(stdout);
@@ -455,7 +457,7 @@ static void vlog_verbose(const char *prefix, const char *pattern, va_list ap)
fprintf(stdout, "%-*s", INDENT_LEVEL," " );
if(prefix) {
- fputs(prefix, stderr);
+ fputs(prefix, stdout);
}
vfprintf(stdout, pattern, ap);
fflush(stdout);
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/ctestfw.vcproj b/Build/source/libs/icu-xetex/tools/ctestfw/ctestfw.vcproj
index 8f5aafa25be..05abd30c2b6 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/ctestfw.vcproj
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/ctestfw.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/icutest.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -91,6 +92,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/icutest.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/datamap.cpp b/Build/source/libs/icu-xetex/tools/ctestfw/datamap.cpp
index 0172ab78bb4..e9242dec7b2 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/datamap.cpp
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/datamap.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -116,7 +116,6 @@ const UnicodeString RBDataMap::getString(const char* key, UErrorCode &status) co
if(U_SUCCESS(status)) {
return r->getString(status);
} else {
- status = U_MISSING_RESOURCE_ERROR;
return UnicodeString();
}
}
@@ -190,7 +189,6 @@ const UnicodeString* RBDataMap::getStringArray(int32_t& count, const char* key,
}
return result;
} else {
- status = U_MISSING_RESOURCE_ERROR;
return NULL;
}
}
@@ -214,7 +212,6 @@ const int32_t* RBDataMap::getIntArray(int32_t& count, const char* key, UErrorCod
}
return result;
} else {
- status = U_MISSING_RESOURCE_ERROR;
return NULL;
}
}
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/tstdtmod.cpp b/Build/source/libs/icu-xetex/tools/ctestfw/tstdtmod.cpp
index 9af787d1339..2f050296c37 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/tstdtmod.cpp
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/tstdtmod.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -9,6 +9,7 @@
#include "unicode/tstdtmod.h"
#include "cmemory.h"
+TestLog::~TestLog() {}
TestDataModule *TestDataModule::getTestDataModule(const char* name, TestLog& log, UErrorCode &status)
{
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testlog.h b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testlog.h
index 83abd5972d1..a6c8f0d1f0c 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testlog.h
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testlog.h
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2004, International Business Machines Corporation and
+ * Copyright (c) 2004-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -12,13 +12,15 @@
#define U_TESTFW_TESTLOG
#include "unicode/unistr.h"
+#include "unicode/testtype.h"
/** Facilitates internal logging of data driven test service
* It would be interesting to develop this into a full
* fledged control system as in Java.
*/
-class TestLog {
+class T_CTEST_EXPORT_API TestLog {
public:
+ virtual ~TestLog();
virtual void errln( const UnicodeString &message ) = 0;
virtual const char* getTestDataPath(UErrorCode& err) = 0;
};
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testtype.h b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testtype.h
index f712afc3b61..52a4cbd686c 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testtype.h
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/testtype.h
@@ -1,7 +1,7 @@
/*
*****************************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*****************************************************************************************
@@ -13,6 +13,9 @@
#if !defined(U_STATIC_IMPLEMENTATION) && (defined(U_WINDOWS) || defined(U_CYGWIN))
#define T_CTEST_EXPORT __declspec(dllexport)
#define T_CTEST_IMPORT __declspec(dllimport)
+#elif defined(USE_GCC_VISIBILITY_ATTRIBUTE)
+ #define T_CTEST_EXPORT __attribute__((visibility("default")))
+ #define T_CTEST_IMPORT
#else
#define T_CTEST_EXPORT
#define T_CTEST_IMPORT
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/uperf.h b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/uperf.h
index 6b6f33018c1..76776946a8d 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/uperf.h
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/uperf.h
@@ -82,6 +82,10 @@ public:
virtual long getEventsPerIteration(){
return -1;
}
+ /**
+ * destructor
+ */
+ virtual ~UPerfFunction() {}
/**
* Call call() n times in a tight loop and return the elapsed
@@ -89,7 +93,7 @@ public:
* result may be zero. Small return values have limited
* meaningfulness, depending on the underlying CPU and OS.
*/
- double time(int32_t n, UErrorCode* status) {
+ virtual double time(int32_t n, UErrorCode* status) {
UTimer start, stop;
utimer_getTime(&start);
while (n-- > 0) {
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/utimer.h b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/utimer.h
index 2531997cea9..e08deae0555 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/unicode/utimer.h
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/unicode/utimer.h
@@ -1,6 +1,6 @@
/*
************************************************************************
-* Copyright (c) 1997-2005, International Business Machines
+* Copyright (c) 1997-2006, International Business Machines
* Corporation and others. All Rights Reserved.
************************************************************************
*/
@@ -211,7 +211,7 @@ typedef void FuntionToBeTimed(void* param);
*
* @param timer A pointer to UTimer struct to recieve the current time
*/
-static void U_EXPORT2
+static U_INLINE void U_EXPORT2
utimer_getTime(UTimer* timer){
uprv_initFrequency(timer);
uprv_start(timer);
@@ -225,7 +225,7 @@ utimer_getTime(UTimer* timer){
* @param timer2 A pointer to UTimer struct to be used as end time
* @return Time in seconds
*/
-static double U_EXPORT2
+static U_INLINE double U_EXPORT2
utimer_getDeltaSeconds(UTimer* timer1, UTimer* timer2){
if(uprv_compareFrequency(timer1,timer2)){
return uprv_delta(timer1,timer2);
@@ -240,7 +240,7 @@ utimer_getDeltaSeconds(UTimer* timer1, UTimer* timer2){
* @param timer A pointer to UTimer struct to be used as starting time
* @return Time elapsed in seconds
*/
-static double U_EXPORT2
+static U_INLINE double U_EXPORT2
utimer_getElapsedSeconds(UTimer* timer){
UTimer temp;
utimer_getTime(&temp);
@@ -256,7 +256,7 @@ utimer_getElapsedSeconds(UTimer* timer){
* @param param Parameters to be passed to the fn
* @return the time elapsed in seconds
*/
-static double U_EXPORT2
+static U_INLINE double U_EXPORT2
utimer_loopUntilDone(double thresholdTimeVal,
int32_t* loopCount,
FuntionToBeTimed fn,
diff --git a/Build/source/libs/icu-xetex/tools/ctestfw/uperf.cpp b/Build/source/libs/icu-xetex/tools/ctestfw/uperf.cpp
index 97269f580bd..72b5a6d8adb 100644
--- a/Build/source/libs/icu-xetex/tools/ctestfw/uperf.cpp
+++ b/Build/source/libs/icu-xetex/tools/ctestfw/uperf.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (c) 2002-2005, International Business Machines Corporation and
+ * Copyright (c) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
********************************************************************/
@@ -151,9 +151,9 @@ UPerfTest::UPerfTest(int32_t argc, const char* argv[], UErrorCode& status){
resolvedFileName = NULL;
if(fileName!=NULL){
//pre-flight
- ucbuf_resolveFileName(sourceDir, fileName,resolvedFileName,&len, &status);
+ ucbuf_resolveFileName(sourceDir, fileName, NULL, &len, &status);
resolvedFileName = (char*) uprv_malloc(len);
- if(fileName==NULL){
+ if(resolvedFileName==NULL){
status= U_MEMORY_ALLOCATION_ERROR;
return;
}
@@ -193,12 +193,12 @@ ULine* UPerfTest::getLines(UErrorCode& status){
if(newLines == NULL) {
fprintf(stderr, "Out of memory reading line %d.\n", (int)numLines);
status= U_MEMORY_ALLOCATION_ERROR;
- delete lines;
+ delete []lines;
return NULL;
}
memcpy(newLines, lines, numLines*sizeof(ULine));
- delete lines;
+ delete []lines;
lines = newLines;
}
}
@@ -464,6 +464,9 @@ UPerfTest::~UPerfTest(){
if(buffer!=NULL){
uprv_free(buffer);
}
+ if(resolvedFileName!=NULL){
+ uprv_free(resolvedFileName);
+ }
ucbuf_close(ucharBuf);
}
diff --git a/Build/source/libs/icu-xetex/tools/dumpce/dumpce.cpp b/Build/source/libs/icu-xetex/tools/dumpce/dumpce.cpp
index 17d9c2546fd..47792faafd5 100644
--- a/Build/source/libs/icu-xetex/tools/dumpce/dumpce.cpp
+++ b/Build/source/libs/icu-xetex/tools/dumpce/dumpce.cpp
@@ -1,6 +1,6 @@
/********************************************************************
* COPYRIGHT:
- * Copyright (C) 2001-2003 IBM, Inc. All Rights Reserved.
+ * Copyright (C) 2001-2005 IBM, Inc. All Rights Reserved.
*
********************************************************************/
/********************************************************************************
@@ -1362,7 +1362,7 @@ void outputHTMLHeader(const char *locale, UScriptCode script[],
}
fprintf(OUTPUT_, "</td></tr>\n");
- fprintf(OUTPUT_, "<tr><th>Rules</th><td class='noborder'><a href=http://oss.software.ibm.com/cvs/icu/~checkout~/icu/source/data/locales/%s.txt>%s.txt</a></td></tr>\n", locale, locale);
+ fprintf(OUTPUT_, "<tr><th>Rules</th><td class='noborder'><a href=\"http://dev.icu-project.org/cgi-bin/viewcvs.cgi/*checkout*/icu/source/data/coll/%s.txt\">%s.txt</a></td></tr>\n", locale, locale);
UVersionInfo version;
ucol_getVersion(COLLATOR_, version);
@@ -1441,7 +1441,7 @@ void outputListHTMLHeader(FILE *file)
void outputListHTMLFooter(FILE *file)
{
fprintf(file, "</p>\n");
- fprintf(file, "<center><image src=http://oss.software.ibm.com/icu/images/w24.gif></center>\n");
+ //fprintf(file, "<center><image src=http://oss.software.ibm.com/icu/images/w24.gif></center>\n");
fprintf(file, "</body>\n");
fprintf(file, "</html>\n");
}
diff --git a/Build/source/libs/icu-xetex/tools/genbidi/Makefile.in b/Build/source/libs/icu-xetex/tools/genbidi/Makefile.in
index ae3dbb0a670..5e006918fe1 100644
--- a/Build/source/libs/icu-xetex/tools/genbidi/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genbidi/Makefile.in
@@ -11,16 +11,14 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/genbidi
TARGET_STUB_NAME = genbidi
SECTION = 8
-MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-
-## Build directory information
-subdir = tools/genbidi
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(MAN_FILES)
@@ -28,7 +26,10 @@ CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genbidi.o store.o
@@ -36,9 +37,8 @@ OBJECTS = genbidi.o store.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -54,24 +54,11 @@ check: all check-local
all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
-# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
-# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
install-man: $(MAN_FILES)
# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
-# $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
dist-local:
@@ -89,7 +76,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -98,3 +91,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.8.in b/Build/source/libs/icu-xetex/tools/genbidi/genbidi.8.in
deleted file mode 100644
index ad26530503d..00000000000
--- a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.8.in
+++ /dev/null
@@ -1,128 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" genbidi.8: manual page for the genbidi utility
-.\"
-.\" Copyright (C) 2004 IBM, Inc. and others.
-.\"
-.TH GENCASE 8 "30 December 2004" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B genbidi
-\- compile bidi/shaping properties from the Unicode Character Database
-.SH SYNOPSIS
-.B genbidi
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.BR "\-v\fP, \fB\-\-verbose"
-]
-[
-.BI "\-u\fP, \fB\-\-unicode" " version"
-]
-[
-.BI "\-c\fP, \fB\-\-copyright"
-]
-[
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-[
-.BI "\-i\fP, \fB\-\-icudatadir" " path"
-]
-[
-.I suffix
-]
-.SH DESCRIPTION
-.B genbidi
-reads some of the Unicode Character Database files and compiles their
-information information into a binary form.
-The resulting file,
-.BR ubidi.icu ,
-can then be read directly by ICU, or used by
-.BR pkgdata (8)
-for incorporation into a larger archive or library.
-.LP
-The files read by
-.B genbidi
-are described in the
-.B FILES
-section. If
-.I suffix
-is passed on the command line, the names of these files will actually
-be changed to include a dash followed by
-.I suffix
-in their basename. For example, the file
-.B UnicodeData.txt
-would be looked for under the name
-.BR UnicodeData\-\fIsuffix\fP.txt .
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.BR "\-v\fP, \fB\-\-verbose"
-Display extra informative messages during execution.
-.TP
-.BI "\-u\fP, \fB\-\-unicode" " version"
-Specify which
-.I version
-of Unicode the Unicode Character Database refers to.
-Defaults to
-.BR 3.0.0 .
-.TP
-.BI "\-c\fP, \fB\-\-copyright"
-Include a copyright notice into the binary data.
-.TP
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-Set the source directory to
-.IR source .
-The default source directory is the current working directory.
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is specified by the environment variable
-.BR ICU_DATA .
-.TP
-.BI "\-i\fP, \fB\-\-icudatadir" " path"
-Set the directory for loading ICU data files to
-.IR path .
-The default ICU data directory is specified by the environment variable
-.BR ICU_DATA .
-.SH ENVIRONMENT
-.TP 10
-.B ICU_DATA
-Specifies the directory containing ICU data. Defaults to
-.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
-Some tools in ICU depend on the presence of the trailing slash. It is thus
-important to make sure that it is present if
-.B ICU_DATA
-is set.
-.SH FILES
-The following files are read by
-.B genbidi
-and are looked for in the
-.I source
-directory.
-.TP 20
-.B UnicodeData.txt
-The main file in the Unicode Character Database. Contains character
-properties, combining classes information, decompositions, names,
-etc.\|.\|..
-.TP
-.B PropList.txt
-Listing of auxiliary binary character properties.
-.TP
-.B DerivedJoiningGroup.txt
-Unicode Joining_Group property for Arabic shaping.
-.TP
-.B DerivedJoiningType.txt
-Unicode Joining_Type property for Arabic shaping.
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2004 IBM, Inc. and others.
-.SH SEE ALSO
-.BR pkgdata (8)
diff --git a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.c b/Build/source/libs/icu-xetex/tools/genbidi/genbidi.c
index dd032ab7fa6..4e21925fb5d 100644
--- a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.c
+++ b/Build/source/libs/icu-xetex/tools/genbidi/genbidi.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -465,34 +465,6 @@ isToken(const char *token, const char *s) {
return FALSE;
}
-static int32_t
-getTokenIndex(const char *const tokens[], int32_t countTokens, const char *s) {
- const char *t, *z;
- int32_t i, j;
-
- s=u_skipWhitespace(s);
- for(i=0; i<countTokens; ++i) {
- t=tokens[i];
- if(t!=NULL) {
- for(j=0;; ++j) {
- if(t[j]!=0) {
- if(s[j]!=t[j]) {
- break;
- }
- } else {
- z=u_skipWhitespace(s+j);
- if(*z==';' || *z==0 || *z=='#' || *z=='\r' || *z=='\n') {
- return i;
- } else {
- break;
- }
- }
- }
- }
- }
- return -1;
-}
-
/* parser for BidiMirroring.txt --------------------------------------------- */
static void U_CALLCONV
@@ -532,12 +504,6 @@ parseBidiMirroring(const char *filename, UErrorCode *pErrorCode) {
/* parser for UnicodeData.txt ----------------------------------------------- */
-const char *const
-bidiNames[U_CHAR_DIRECTION_COUNT]={
- "L", "R", "EN", "ES", "ET", "AN", "CS", "B", "S",
- "WS", "ON", "LRE", "LRO", "AL", "RLE", "RLO", "PDF", "NSM", "BN"
-};
-
static void U_CALLCONV
unicodeDataLineFn(void *context,
char *fields[][2], int32_t fieldCount,
@@ -545,7 +511,6 @@ unicodeDataLineFn(void *context,
char *end;
UErrorCode errorCode;
UChar32 c;
- int32_t i;
errorCode=U_ZERO_ERROR;
@@ -557,21 +522,6 @@ unicodeDataLineFn(void *context,
exit(U_PARSE_ERROR);
}
- /* get BiDi class, field 4 */
- i=getTokenIndex(bidiNames, U_CHAR_DIRECTION_COUNT, fields[4][0]);
- if(i>=0) {
- if(!upvec_setValue(pv, c, c+1, 0, (uint32_t)i, UBIDI_CLASS_MASK, &errorCode)) {
- fprintf(stderr, "genbidi error: unable to set bidi class for U+%04lx, code: %s\n",
- (long)c, u_errorName(errorCode));
- exit(errorCode);
- }
- } else {
- fprintf(stderr, "genbidi: unknown BiDi class \"%s\" at U+%04lx\n",
- fields[4][0], (long)c);
- *pErrorCode=U_PARSE_ERROR;
- exit(U_PARSE_ERROR);
- }
-
/* get Mirrored flag, field 9 */
if(*fields[9][0]=='Y') {
if(!upvec_setValue(pv, c, c+1, 0, U_MASK(UBIDI_IS_MIRRORED_SHIFT), U_MASK(UBIDI_IS_MIRRORED_SHIFT), &errorCode)) {
@@ -618,6 +568,12 @@ parseDB(const char *filename, UErrorCode *pErrorCode) {
* Set default Bidi classes for unassigned code points.
* See the documentation for Bidi_Class in UCD.html in the Unicode data.
* http://www.unicode.org/Public/
+ *
+ * Starting with Unicode 5.0, DerivedBidiClass.txt should (re)set
+ * the Bidi_Class values for all code points including unassigned ones
+ * and including L values for these.
+ * This code becomes unnecesary but harmless. Leave it for now in case
+ * someone uses genbidi on pre-Unicode 5.0 data.
*/
for(i=0; i<LENGTHOF(defaultBidi); ++i) {
start=defaultBidi[i][0];
@@ -643,8 +599,7 @@ bidiClassLineFn(void *context,
char *fields[][2], int32_t fieldCount,
UErrorCode *pErrorCode) {
char *s;
- uint32_t oldStart, start, limit, value, props32;
- UBool didSet;
+ uint32_t start, limit, value;
/* get the code point range */
u_parseCodePointRange(fields[0][0], &start, &limit, pErrorCode);
@@ -662,40 +617,10 @@ bidiClassLineFn(void *context,
exit(U_PARSE_ERROR);
}
- didSet=FALSE;
- oldStart=start;
- for(; start<limit; ++start) {
- props32=upvec_getValue(pv, start, 0);
-
- /* ignore if this bidi class is already set */
- if(value==UBIDI_GET_CLASS(props32)) {
- continue;
- }
-
- /*
- * set only if the bidi class is 0 (L);
- * intended to set only for unassigned code points (Cn)
- * but we don't have general categories (like Cn) available here
- */
- if(UBIDI_GET_CLASS(props32)!=0) {
- /* error if this one contradicts what we parsed from UnicodeData.txt */
- fprintf(stderr, "genbidi error: different bidi class in DerivedBidiClass.txt field 1 at %s\n", s);
- exit(U_PARSE_ERROR);
- }
-
- /* set bidi class for Cn according to DerivedBidiClass.txt */
- didSet=TRUE;
- }
-
- if(didSet) {
- if(beVerbose) {
- printf("setting U+%04x..U+%04x bidi class %d\n", (int)oldStart, (int)limit-1, (int)value);
- }
- if(!upvec_setValue(pv, oldStart, limit, 0, value, UBIDI_CLASS_MASK, pErrorCode)) {
- fprintf(stderr, "genbidi error: unable to set derived bidi class for U+%04x..U+%04x - %s\n",
- (int)oldStart, (int)limit-1, u_errorName(*pErrorCode));
- exit(*pErrorCode);
- }
+ if(!upvec_setValue(pv, start, limit, 0, value, UBIDI_CLASS_MASK, pErrorCode)) {
+ fprintf(stderr, "genbidi error: unable to set derived bidi class for U+%04x..U+%04x - %s\n",
+ (int)start, (int)limit-1, u_errorName(*pErrorCode));
+ exit(*pErrorCode);
}
}
diff --git a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.vcproj b/Build/source/libs/icu-xetex/tools/genbidi/genbidi.vcproj
index 62abe491484..71292b4ecf2 100644
--- a/Build/source/libs/icu-xetex/tools/genbidi/genbidi.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genbidi/genbidi.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genbidi.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -89,6 +90,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genbidi.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genbrk/.cvsignore b/Build/source/libs/icu-xetex/tools/genbrk/.cvsignore
index 99fa4b720ac..3a98a97afa7 100644
--- a/Build/source/libs/icu-xetex/tools/genbrk/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/genbrk/.cvsignore
@@ -6,3 +6,4 @@ Debug
Makefile
Release
genbrk
+genbrk.1
diff --git a/Build/source/libs/icu-xetex/tools/genbrk/Makefile.in b/Build/source/libs/icu-xetex/tools/genbrk/Makefile.in
index 18ce1b205d6..f9b5891902e 100644
--- a/Build/source/libs/icu-xetex/tools/genbrk/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genbrk/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - tools/genbrk
-## Copyright (c) 2002-2005 International Business Machines Corporation and
+## Copyright (c) 2002-2006 International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -10,7 +10,8 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/genbrk
TARGET_STUB_NAME = genbrk
@@ -18,16 +19,17 @@ SECTION = 1
MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/genbrk
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(MAN_FILES) $(DEPS)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genbrk.o
@@ -36,8 +38,7 @@ DEPS = $(OBJECTS:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -50,15 +51,19 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET)
+all-local: $(TARGET) $(MAN_FILES)
-install-local: all-local
+install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
dist-local:
-clean-local:
+clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(TARGET) $(OBJECTS)
@@ -72,22 +77,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-
-
-# the 'mv' will always fail if you are building in the source dir
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-# build postscript and pdf formats
-$(TARGET).ps: $(TARGET).$(SECTION)
- groff -man < $< > $@
-
-$(TARGET).pdf: $(TARGET).ps
- ps2pdf $< $@
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
diff --git a/Build/source/libs/icu-xetex/tools/genbrk/genbrk.1.in b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.1.in
new file mode 100644
index 00000000000..79dbfea0f88
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.1.in
@@ -0,0 +1,112 @@
+.\" Hey, Emacs! This is -*-nroff-*- you know...
+.\"
+.\" genbrk.1: manual page for the genbrk utility
+.\"
+.\" Copyright (C) 2005-2006 IBM, Inc. and others.
+.\"
+.TH GENBRK 1 "2 December 2005" "ICU MANPAGE" "ICU @VERSION@ Manual"
+.SH NAME
+.B genbrk
+\- Compiles ICU break iteration rules source files into binary data files
+.SH SYNOPSIS
+.B genbrk
+[
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+]
+[
+.BR "\-V\fP, \fB\-\-version"
+]
+[
+.BR "\-c\fP, \fB\-\-copyright"
+]
+[
+.BR "\-v\fP, \fB\-\-verbose"
+]
+[
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+]
+[
+.BI "\-i\fP, \fB\-\-icudatadir" " directory"
+]
+.BI "\-r\fP, \fB\-\-rules" " rule\-file"
+.BI "\-o\fP, \fB\-\-out" " output\-file"
+.SH DESCRIPTION
+.B genbrk
+reads the break (boundary) rule source code from
+.I rule-file
+and creates a break iteration data file. Normally this data file has the
+.B .brk
+extension.
+.PP
+The details of the rule syntax can be found in ICU's User Guide.
+.SH OPTIONS
+.TP
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+Print help about usage and exit.
+.TP
+.BR "\-V\fP, \fB\-\-version"
+Print the version of
+.B genbrk
+and exit.
+.TP
+.BR "\-c\fP, \fB\-\-copyright"
+Embeds the standard ICU copyright into the
+.IR output-file .
+.TP
+.BR "\-v\fP, \fB\-\-verbose"
+Display extra informative messages during execution.
+.TP
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+Set the destination directory of the
+.IR output-file
+to
+.IR destination .
+.TP
+.BI "\-i\fP, \fB\-\-icudatadir" " directory"
+Look for any necessary ICU data files in
+.IR directory .
+For example, the file
+.B pnames.icu
+must be located when ICU's data is not built as a shared library.
+The default ICU data directory is specified by the environment variable
+.BR ICU_DATA .
+Most configurations of ICU do not require this argument.
+.TP
+.BI "\-r\fP, \fB\-\-rules" " rule\-file"
+The source file to read.
+.TP
+.BI "\-o\fP, \fB\-\-out" " output\-file"
+The output data file to write.
+.SH CAVEATS
+When the
+.IR rule-file
+contains a byte order mark (BOM) at the beginning of the file, which is the Unicode character
+.B U+FEFF,
+then the
+.IR rule-file
+is interpreted as Unicode. Without the BOM,
+the file is interpreted in the current operating system default codepage.
+In order to eliminate any ambiguity of the encoding for how the
+.IR rule-file
+was written, it is recommended that you write this file in UTF-8
+with the BOM.
+.SH ENVIRONMENT
+.TP 10
+.B ICU_DATA
+Specifies the directory containing ICU data. Defaults to
+.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
+Some tools in ICU depend on the presence of the trailing slash. It is thus
+important to make sure that it is present if
+.B ICU_DATA
+is set.
+.SH AUTHORS
+George Rhoten
+.br
+Andy Heninger
+.SH VERSION
+1.0
+.SH COPYRIGHT
+Copyright (C) 2005 IBM, Inc. and others.
+.SH SEE ALSO
+.BR http://icu.sourceforge.net/userguide/boundaryAnalysis.html
+
diff --git a/Build/source/libs/icu-xetex/tools/genbrk/genbrk.cpp b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.cpp
index 23625b116e7..c6ca76e2a9c 100644
--- a/Build/source/libs/icu-xetex/tools/genbrk/genbrk.cpp
+++ b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
@@ -44,8 +44,6 @@
#include <stdlib.h>
#include <string.h>
-#define DATA_TYPE "brk"
-
static char *progName;
static UOption options[]={
UOPTION_HELP_H, /* 0 */
@@ -179,35 +177,14 @@ int main(int argc, char **argv) {
#if UCONFIG_NO_BREAK_ITERATION
UNewDataMemory *pData;
- char msg[2048], folder[2048], name[32];
- char *basename;
- int length;
-
- /* split the outFileName into folder + name + type */
- strcpy(folder, outFileName);
- basename = strrchr(folder, U_FILE_SEP_CHAR);
- if(basename == NULL) {
- basename = folder;
- } else {
- ++basename;
- }
-
- /* copy the data name and remove it from the folder */
- strcpy(name, basename);
- *basename = 0;
+ char msg[1024];
/* write message with just the name */
- sprintf(msg, "genbrk writes dummy %s because of UCONFIG_NO_BREAK_ITERATION, see uconfig.h", name);
+ sprintf(msg, "genbrk writes dummy %s because of UCONFIG_NO_BREAK_ITERATION, see uconfig.h", outFileName);
fprintf(stderr, "%s\n", msg);
- /* remove the type suffix (hardcode to DATA_TYPE) */
- length = strlen(name);
- if(length > 4 && name[length - 4] == '.') {
- name[length - 4] = 0;
- }
-
/* write the dummy data file */
- pData = udata_create(folder, DATA_TYPE, name, &dummyDataInfo, NULL, &status);
+ pData = udata_create(outDir, NULL, outFileName, &dummyDataInfo, NULL, &status);
udata_writeBlock(pData, msg, strlen(msg));
udata_finish(pData, &status);
return (int)status;
diff --git a/Build/source/libs/icu-xetex/tools/genbrk/genbrk.vcproj b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.vcproj
index 8c03e4f4d0e..721a379e57f 100644
--- a/Build/source/libs/icu-xetex/tools/genbrk/genbrk.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genbrk/genbrk.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genbrk.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genbrk.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gencase/.cvsignore b/Build/source/libs/icu-xetex/tools/gencase/.cvsignore
index 541b050c875..76b6adeb7e7 100644
--- a/Build/source/libs/icu-xetex/tools/gencase/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/gencase/.cvsignore
@@ -6,3 +6,6 @@ Makefile
*.pdb
gencase
gencase.[0-9]
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/gencase/Makefile.in b/Build/source/libs/icu-xetex/tools/gencase/Makefile.in
index 6333080c9a1..2a537055955 100644
--- a/Build/source/libs/icu-xetex/tools/gencase/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gencase/Makefile.in
@@ -11,16 +11,15 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/gencase
TARGET_STUB_NAME = gencase
SECTION = 8
-MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/gencase
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(MAN_FILES)
@@ -28,7 +27,10 @@ CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gencase.o store.o
@@ -36,9 +38,8 @@ OBJECTS = gencase.o store.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -54,24 +55,10 @@ check: all check-local
all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
-# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
-# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
install-man: $(MAN_FILES)
# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
-# $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
@@ -89,7 +76,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -98,3 +91,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/gencase/gencase.8.in b/Build/source/libs/icu-xetex/tools/gencase/gencase.8.in
deleted file mode 100644
index af93f6566b5..00000000000
--- a/Build/source/libs/icu-xetex/tools/gencase/gencase.8.in
+++ /dev/null
@@ -1,136 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" gencase.8: manual page for the gencase utility
-.\"
-.\" Copyright (C) 2004 IBM, Inc. and others.
-.\"
-.TH GENCASE 8 "16 September 2004" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B gencase
-\- compile case mapping properties from the Unicode Character Database
-.SH SYNOPSIS
-.B gencase
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.BR "\-v\fP, \fB\-\-verbose"
-]
-[
-.BI "\-u\fP, \fB\-\-unicode" " version"
-]
-[
-.BI "\-c\fP, \fB\-\-copyright"
-]
-[
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-[
-.BI "\-i\fP, \fB\-\-icudatadir" " path"
-]
-[
-.I suffix
-]
-.SH DESCRIPTION
-.B gencase
-reads some of the Unicode Character Database files and compiles their
-information information into a binary form.
-The resulting file,
-.BR ucase.icu ,
-can then be read directly by ICU, or used by
-.BR pkgdata (8)
-for incorporation into a larger archive or library.
-.LP
-The files read by
-.B gencase
-are described in the
-.B FILES
-section. If
-.I suffix
-is passed on the command line, the names of these files will actually
-be changed to include a dash followed by
-.I suffix
-in their basename. For example, the file
-.B UnicodeData.txt
-would be looked for under the name
-.BR UnicodeData\-\fIsuffix\fP.txt .
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.BR "\-v\fP, \fB\-\-verbose"
-Display extra informative messages during execution.
-.TP
-.BI "\-u\fP, \fB\-\-unicode" " version"
-Specify which
-.I version
-of Unicode the Unicode Character Database refers to.
-Defaults to
-.BR 3.0.0 .
-.TP
-.BI "\-c\fP, \fB\-\-copyright"
-Include a copyright notice into the binary data.
-.TP
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-Set the source directory to
-.IR source .
-The default source directory is the current working directory.
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is specified by the environment variable
-.BR ICU_DATA .
-.TP
-.BI "\-i\fP, \fB\-\-icudatadir" " path"
-Set the directory for loading ICU data files to
-.IR path .
-The default ICU data directory is specified by the environment variable
-.BR ICU_DATA .
-.SH ENVIRONMENT
-.TP 10
-.B ICU_DATA
-Specifies the directory containing ICU data. Defaults to
-.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
-Some tools in ICU depend on the presence of the trailing slash. It is thus
-important to make sure that it is present if
-.B ICU_DATA
-is set.
-.SH FILES
-The following files are read by
-.B gencase
-and are looked for in the
-.I source
-directory.
-.TP 20
-.B UnicodeData.txt
-The main file in the Unicode Character Database. Contains character
-properties, combining classes information, decompositions, names,
-etc.\|.\|..
-.TP
-.B PropList.txt
-Listing of auxiliary binary character properties.
-.TP
-.B DerivedCoreProperties.txt
-Derived binary properties, generated by Unicode from other files.
-.TP
-.B SpecialCasing.txt
-List of properties required for full case mapping.
-.TP
-.B CaseFolding.txt
-Mapping from characters to their case-folded forms. (Note: this file
-is derived from
-.B UnicodeData.txt
-and
-.B SpecialCasing.txt
-when generated by the Unicode Consortium.)
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2004 IBM, Inc. and others.
-.SH SEE ALSO
-.BR pkgdata (8)
diff --git a/Build/source/libs/icu-xetex/tools/gencase/gencase.vcproj b/Build/source/libs/icu-xetex/tools/gencase/gencase.vcproj
index 8bedde8271f..025b1720b6f 100644
--- a/Build/source/libs/icu-xetex/tools/gencase/gencase.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gencase/gencase.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gencase.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -89,6 +90,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gencase.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genccode/Makefile.in b/Build/source/libs/icu-xetex/tools/genccode/Makefile.in
index de86edca0b8..920b75fed42 100644
--- a/Build/source/libs/icu-xetex/tools/genccode/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genccode/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - tools/genccode
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Steven R. Loomis
@@ -14,23 +14,23 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/genccode
-##
-
TARGET_STUB_NAME = genccode
SECTION = 8
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-ALL_MAN_FILES = $(MANX_FILES)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(ALL_MAN_FILES)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil $(BIR_CPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genccode.o
@@ -38,9 +38,8 @@ OBJECTS = genccode.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man install-manx
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -53,22 +52,16 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
-install-man: install-manx
-install-manx: $(MANX_FILES)
+install-man: $(MAN_FILES)
$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
dist-local:
clean-local:
@@ -85,7 +78,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -94,3 +93,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/genccode/genccode.c b/Build/source/libs/icu-xetex/tools/genccode/genccode.c
index 5a3eacd4224..31a53711686 100644
--- a/Build/source/libs/icu-xetex/tools/genccode/genccode.c
+++ b/Build/source/libs/icu-xetex/tools/genccode/genccode.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
diff --git a/Build/source/libs/icu-xetex/tools/genccode/genccode.vcproj b/Build/source/libs/icu-xetex/tools/genccode/genccode.vcproj
index 76e62f9937f..0f9b703a70d 100644
--- a/Build/source/libs/icu-xetex/tools/genccode/genccode.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genccode/genccode.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genccode.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -86,6 +87,7 @@
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genccode.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/.cvsignore b/Build/source/libs/icu-xetex/tools/gencmn/.cvsignore
index c0ac82e0fba..513272195de 100644
--- a/Build/source/libs/icu-xetex/tools/gencmn/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/gencmn/.cvsignore
@@ -1,13 +1,9 @@
Debug
Release
-decmn_win32_Debug
-decmn_win32_Release
Makefile
*.d
*.o
*.pdb
+*.plg
gencmn
gencmn.[0-9]
-*.plg
-decmn
-decmn.[0-9]
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/Makefile.in b/Build/source/libs/icu-xetex/tools/gencmn/Makefile.in
index b7bf8bbd55f..925ff22cb2a 100644
--- a/Build/source/libs/icu-xetex/tools/gencmn/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gencmn/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - tools/gencmn
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Steven R. Loomis
@@ -14,37 +14,32 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/gencmn
-##
-
TARGET_STUB_NAME = gencmn
-DECMN_STUB_NAME = decmn
SECTION = 8
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION) $(DECMN_STUB_NAME).$(SECTION)
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-ALL_MAN_FILES = $(MANX_FILES)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(DECMN_DEP) $(ALL_MAN_FILES)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-DECMN = $(BINDIR)/$(DECMN_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil $(BIR_CPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gencmn.o
-DECMN_OBJ = decmn.o
DEPS = $(OBJECTS:.o=.d)
-DECMN_DEP = $(DECMN_OBJ:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man install-manx
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -57,18 +52,21 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(DECMN) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
- $(INSTALL) $(DECMN) $(DESTDIR)$(sbindir)
+
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
- $(RMV) $(TARGET) $(OBJECTS) $(DECMN) $(DECMN_OBJ)
+ $(RMV) $(TARGET) $(OBJECTS)
distclean-local: clean-local
$(RMV) Makefile
@@ -80,31 +78,18 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-
-$(DECMN) : $(DECMN_OBJ)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-
-# man page
-install-man: install-manx
-install-manx: $(MANX_FILES)
- $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-
-# This line is needed to serialize builds when the gmake -j option is used.
-$(DECMN:$(EXEEXT)=).$(SECTION): $(TARGET:$(EXEEXT)=).$(SECTION)
+ $(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
--include $(DECMN_DEP)
else
ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
--include $(DECMN_DEP)
endif
endif
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/decmn.8.in b/Build/source/libs/icu-xetex/tools/gencmn/decmn.8.in
deleted file mode 100644
index ea5dddd13c6..00000000000
--- a/Build/source/libs/icu-xetex/tools/gencmn/decmn.8.in
+++ /dev/null
@@ -1,68 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" decmn.8: manual page for the decmn utility
-.\"
-.\" Copyright (C) 2001 IBM, Inc. and others.
-.\"
-.\" Manual page by Yves Arrouye <yves@realnames.com>.
-.\"
-.TH DECMN 8 "5 November 2001" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B decmn
-\- explodes an ICU memory-mappable data file
-.SH SYNOPSIS
-.B decmn
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.B "\-n\"
-]
-[
-.BI "\-C\fP, \fB\-\-comment"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-.I archive
-.SH DESCRIPTION
-.B decmn
-reads the ICU memory-mappable data file
-.I archive
-and writes each of the
-packaged files that it contains as a separate file in the destination
-directory.
-.PP
-.B decmn
-also writes a list of these files on its standard output. This list of
-files can later be used, along with the individual files that have
-been generated, to produce a new common data file using
-.BR gencmn (8).
-.\" Note that the output of
-.\" .B decmn
-.\" is not in the format expected by
-.\" .BR gencmn (8).
-.\" One can obtain a suitable file by filtering the output through
-.\" .B "sed -e '1,2d' -e 's/[^=]*=//' -e '/^endfiles$/d"
-.\" which transforms it into a simple list of filenames.
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.B \-n
-Do not create the output files.
-.TP
-.BI "\-C\fP, \fB\-\-comment"
-Print the comment embedded in the archive file and exit.
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is the current directory.
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2001 IBM, Inc. and others.
-.SH SEE ALSO
-.BR gencmn (8)
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/decmn.c b/Build/source/libs/icu-xetex/tools/gencmn/decmn.c
deleted file mode 100644
index 059476eb2d9..00000000000
--- a/Build/source/libs/icu-xetex/tools/gencmn/decmn.c
+++ /dev/null
@@ -1,303 +0,0 @@
-/*
-*******************************************************************************
-*
-* Copyright (C) 2000-2005, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-*******************************************************************************
-* file name: decmn.c
-* encoding: US-ASCII
-* tab size: 8 (not used)
-* indentation:4
-*
-* created on: 2001mar05
-* created by: Markus W. Scherer
-* changes by: Yves Arrouye
-*
-* This tool takes an ICU common data file (icuxyz.dat),
-* outputs a list of components,
-* and writes one file per packaged data piece in the common file.
-* This can be used to add, remove, or replace data.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "unicode/utypes.h"
-#include "unicode/putil.h"
-#include "unicode/udata.h"
-#include "uoptions.h"
-#include "cstring.h"
-#include "toolutil.h"
-
-static uint8_t buffer[100000], buffer2[128*1024];
-
-static const char *pname;
-
-static UOption options[]={
-/*0*/ UOPTION_HELP_H,
-/*1*/ UOPTION_HELP_QUESTION_MARK,
-/*2*/ UOPTION_DESTDIR,
-/*3*/ UOPTION_DEF(0, 'n', UOPT_NO_ARG),
-/*4*/ UOPTION_DEF("comment", 'C', UOPT_NO_ARG),
-/*5*/ UOPTION_DEF("pkgdata", 0, UOPT_NO_ARG),
-};
-
-static int
-compareFiles(const void *file1, const void *file2) {
- /* sort by file offset */
- int32_t diff=*((int32_t *)file1+1)-*((int32_t *)file2+1);
- if(diff!=0) {
- return (int)(diff>>15)|1;
- } else {
- return 0;
- }
-}
-
-static int
-copyFile(FILE *in, int32_t offset, int32_t size, const char *dir, const char *name) {
- FILE *out;
- int32_t length;
- char path[512], *p, *endDir;
- UErrorCode status = U_ZERO_ERROR;
-
- if(0!=fseek(in, offset, SEEK_SET)) {
- fprintf(stderr, "%s: cannot seek to position %ld for file \"%s\"\n", pname,
- (long)offset, name);
- return 4;
- }
-
- /* Make sure that subdirectories are created first */
- uprv_strcpy(path, dir);
- p = path + strlen(path);
- if (p[-1] != U_FILE_SEP_CHAR) {
- *p++ = U_FILE_SEP_CHAR;
- }
- uprv_strcpy(p, name);
- endDir = uprv_strrchr(p, U_TREE_ENTRY_SEP_CHAR);
- if (endDir != NULL) {
- /* Create the parent directories before creating the current directory. */
- for (;;) {
- p = uprv_strchr(p, U_TREE_ENTRY_SEP_CHAR);
- if (p == NULL) {
- break;
- }
- *p = 0;
- uprv_mkdir(path, &status);
- if (U_FAILURE(status)) {
- fprintf(stderr, "%s: unable to create directory \"%s\"\n", pname, path);
- return 5;
- }
- *(p++) = U_FILE_SEP_CHAR;
- }
- }
-
- /* Set up the path with the real name now */
- uprv_strcpy(path, dir);
- p = path + strlen(path);
- if (p[-1] != U_FILE_SEP_CHAR) {
- *p++ = U_FILE_SEP_CHAR;
- }
- uprv_strcpy(p, name);
-
- out=fopen(path, "wb");
- if(out==NULL) {
- fprintf(stderr, "%s: unable to open output file \"%s\"\n", pname, path);
- return 5;
- }
-
- /* copy the contents into the new, separate file */
- while(size>sizeof(buffer2)) {
- length=(int32_t)fread(buffer2, 1, sizeof(buffer2), in);
- if(length<=0) {
- fprintf(stderr, "%s: read error while copying output file \"%s\"\n", pname, path);
- fclose(out);
- return 4;
- }
- if(length!=(int32_t)fwrite(buffer2, 1, length, out)) {
- fprintf(stderr, "%s: write error while copying output file \"%s\"\n", pname, path);
- fclose(out);
- return 5;
- }
- size-=length;
- }
- while(size>0) {
- length=(int32_t)fread(buffer2, 1, size, in);
- if(length<=0) {
- fprintf(stderr, "%s: read error while copying output file \"%s\"\n", pname, path);
- fclose(out);
- return 4;
- }
- if(length!=(int32_t)fwrite(buffer2, 1, length, out)) {
- fprintf(stderr, "%s: write error while copying output file \"%s\"\n", pname, path);
- fclose(out);
- return 5;
- }
- size-=length;
- }
-
- fclose(out);
- return 0;
-}
-
-extern int
-main(int argc, char *argv[]) {
- FILE *in;
- UDataInfo *info;
- uint8_t *base;
- int32_t *p;
- int32_t i, length, count, baseOffset;
- int result, ishelp = 0, usePkgdataFormat = 0;
-
- U_MAIN_INIT_ARGS(argc, argv);
-
- pname = uprv_strchr(*argv, U_FILE_SEP_CHAR);
-#if (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR)
- if (!pname) {
- pname = uprv_strchr(*argv, U_FILE_ALT_SEP_CHAR);
- }
-#endif
- if (pname) {
- ++pname;
- } else {
- pname = argv[0];
- }
-
- options[2].value = ".";
-
- argc = u_parseArgs(argc, argv, sizeof(options) / sizeof(*options), options);
- ishelp = options[0].doesOccur || options[1].doesOccur;
- if (ishelp || argc != 2) {
- fprintf(stderr,
- "%csage: %s [ -h, -?, --help ] [ -n ] [ -C, --comment ] [ --pkgdata ] [ -d, --destdir destination ] archive\n", ishelp ? 'U' : 'u', pname);
- if (ishelp) {
- fprintf(stderr, "\nOptions:\n"
- " -h, -?, --help print this message and exit\n"
- " -n do not create files\n"
- " -C, --comment print the comment embedded in the file and exit\n"
- " --pkgdata Display the files in the package in a format for pkgdata\n"
- " -d, --destdir destination create files in destination\n");
- }
-
- return ishelp ? 0 : 1;
- }
-
- usePkgdataFormat = options[5].doesOccur;
-
- in=fopen(argv[1], "rb");
- if(in==NULL) {
- fprintf(stderr, "%s: unable to open input file \"%s\"\n", pname, argv[1]);
- return 2;
- }
-
- /* read the beginning of the file */
- length=(int32_t)fread(buffer, 1, sizeof(buffer), in);
- if(length<20) {
- fprintf(stderr, "%s: input file too short\n", pname);
- fclose(in);
- return 3;
- }
-
- /* check the validity of the file */
- if(buffer[2]!=0xda || buffer[3]!=0x27) {
- fprintf(stderr, "%s: not an ICU data file\n", pname);
- fclose(in);
- return 3;
- }
-
- /* check the platform properties for the file */
- info=(UDataInfo *)(buffer+4);
- if(info->isBigEndian!=U_IS_BIG_ENDIAN) {
- fprintf(stderr, "%s: the file is in the wrong byte endianness\n", pname);
- fclose(in);
- return 3;
- }
- if(info->charsetFamily!=U_CHARSET_FAMILY) {
- fprintf(stderr, "%s: the file is not built for this machine's charset family\n", pname);
- fclose(in);
- return 3;
- }
-
- /* check that this is a common data file */
- if(info->dataFormat[0]!=0x43 || info->dataFormat[1]!=0x6d || info->dataFormat[2]!=0x6e || info->dataFormat[3]!=0x44) {
- fprintf(stderr, "%s: this file is not a common data (archive) file\n", pname);
- fclose(in);
- return 3;
- }
-
- /* check for version 1 */
- if(info->formatVersion[0]!=1) {
- fprintf(stderr, "%s: the format version %d.%d.%d.%d is not known\n", pname,
- info->formatVersion[0], info->formatVersion[1], info->formatVersion[2], info->formatVersion[3]);
- fclose(in);
- return 3;
- }
-
- /* do we want to show the comment, and is there a comment? */
- if (options[4].doesOccur && *(uint16_t *)buffer>4+info->size) {
- printf("%s\n", (const char *)(buffer+4+info->size));
- return 0;
- }
-
- /* output all filenames */
- baseOffset=*(uint16_t *)buffer;
- base=buffer+baseOffset;
- p=(int32_t *)base;
- count=*p++;
- /* printf("files[%ld]\n", (long)count); */
- for(i=0; i<count; ++i) {
- if (usePkgdataFormat) {
- printf("%s\n", uprv_strchr((const char *)(base+*p), U_TREE_ENTRY_SEP_CHAR)+1);
- }
- else {
- printf("%s%c%s\n", options[2].value, U_FILE_SEP_CHAR, base+*p);
- }
- p+=2;
- }
- /* puts("endfiles"); */
-
- if (options[3].doesOccur) { /* Do not extract. */
- return 0;
- }
-
- /* sort all files by their offsets in the common file */
- qsort(base+4, count, 8, compareFiles);
-
- /* write all files except the last one */
- p=(int32_t *)(base+4);
- --count;
- for(i=0; i<count; ++i) {
- /* the size is the difference between this file's offset and the next one's */
- result=copyFile(in, baseOffset+p[1], p[3]-p[1], options[2].value, (const char *)(base+*p));
- if(result!=0) {
- fclose(in);
- return result;
- }
- p+=2;
- }
-
- /* write the last file */
- if(count>=0) {
- /* the size is the number of bytes to the end of the common file */
- if(0!=fseek(in, 0, SEEK_END)) {
- fprintf(stderr, "%s: unable to seek to the end of the common file\n", pname);
- return 4;
- }
- result=copyFile(in, baseOffset+p[1], (int32_t)ftell(in)-baseOffset-p[1], options[2].value, (const char *)(base+*p));
- if(result!=0) {
- fclose(in);
- return result;
- }
- }
-
- fclose(in);
- return 0;
-}
-
-/*
- * Hey, Emacs, please set the following:
- *
- * Local Variables:
- * indent-tabs-mode: nil
- * End:
- *
- */
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/gencmn.c b/Build/source/libs/icu-xetex/tools/gencmn/gencmn.c
index 5e83a5c6153..3b4c683504d 100644
--- a/Build/source/libs/icu-xetex/tools/gencmn/gencmn.c
+++ b/Build/source/libs/icu-xetex/tools/gencmn/gencmn.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -28,6 +28,7 @@
#include "unicode/uclean.h"
#include "unewdata.h"
#include "uoptions.h"
+#include "putilimp.h"
#define STRING_STORE_SIZE 100000
#define MAX_FILE_COUNT 2000
@@ -98,7 +99,6 @@ typedef struct {
static File files[MAX_FILE_COUNT];
static uint32_t fileCount=0;
-static UBool embed = FALSE;
/* prototypes --------------------------------------------------------------- */
@@ -131,7 +131,6 @@ static UOption options[]={
/*8*/ UOPTION_DEF( "source", 'S', UOPT_NO_ARG),
/*9*/ UOPTION_DEF( "entrypoint", 'e', UOPT_REQUIRES_ARG),
/*10*/UOPTION_SOURCEDIR,
-/*11*/UOPTION_DEF( "embed", 'E', UOPT_NO_ARG)
};
static char *symPrefix = NULL;
@@ -165,10 +164,6 @@ main(int argc, char* argv[]) {
argc=-1;
}
- if(options[11].doesOccur) {
- embed = TRUE;
- }
-
if(argc<0 || options[0].doesOccur || options[1].doesOccur) {
FILE *where = argc < 0 ? stderr : stdout;
@@ -389,21 +384,6 @@ main(int argc, char* argv[]) {
}
-#if 0
- if(!embed) {
- symPrefix = (char *) uprv_malloc(uprv_strlen(entrypointName) + 2);
-
- /* test for NULL */
- if (symPrefix == NULL) {
- sprintf(buffer, "U_MEMORY_ALLOCATION_ERROR");
- exit(U_MEMORY_ALLOCATION_ERROR);
- }
-
- uprv_strcpy(symPrefix, entrypointName);
- uprv_strcat(symPrefix, "_");
- }
-#endif
-
/* write the source file */
sprintf(buffer,
"/*\n"
@@ -487,23 +467,18 @@ addFile(const char *filename, UBool sourceTOC, UBool verbose) {
if(!sourceTOC) {
FileStream *file;
+ if(uprv_pathIsAbsolute(filename)) {
+ fprintf(stderr, "gencmn: Error: absolute path encountered. Old style paths are not supported. Use relative paths such as 'fur.res' or 'translit%cfur.res'.\n\tBad path: '%s'\n", U_FILE_SEP_CHAR, filename);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
fullPath = pathToFullPath(filename);
/* store the pathname */
- if(!embed) {
- length = (uint32_t)(uprv_strlen(filename) + 1 + uprv_strlen(options[6].value) + 1);
- s=allocString(length);
- uprv_strcpy(s, options[6].value);
- uprv_strcat(s, U_TREE_ENTRY_SEP_STRING);
- uprv_strcat(s, filename);
- } else {
- /* compatibility mode */
- const char *base;
- base = findBasename(filename);
- length = (uint32_t)(uprv_strlen(base) + 1);
- s=allocString(length);
- uprv_memcpy(s, base, length);
- }
+ length = (uint32_t)(uprv_strlen(filename) + 1 + uprv_strlen(options[6].value) + 1);
+ s=allocString(length);
+ uprv_strcpy(s, options[6].value);
+ uprv_strcat(s, U_TREE_ENTRY_SEP_STRING);
+ uprv_strcat(s, filename);
/* get the basename */
fixDirToTreePath(s);
@@ -541,22 +516,13 @@ addFile(const char *filename, UBool sourceTOC, UBool verbose) {
} else {
char *t;
- if(embed) {
- filename = findBasename(filename);
- }
/* get and store the basename */
- if(!embed) {
- /* need to include the package name */
- length = (uint32_t)(uprv_strlen(filename) + 1 + uprv_strlen(options[6].value) + 1);
- s=allocString(length);
- uprv_strcpy(s, options[6].value);
- uprv_strcat(s, U_TREE_ENTRY_SEP_STRING);
- uprv_strcat(s, filename);
- } else {
- length = (uint32_t)(uprv_strlen(filename) + 1);
- s=allocString(length);
- uprv_memcpy(s, filename, length);
- }
+ /* need to include the package name */
+ length = (uint32_t)(uprv_strlen(filename) + 1 + uprv_strlen(options[6].value) + 1);
+ s=allocString(length);
+ uprv_strcpy(s, options[6].value);
+ uprv_strcat(s, U_TREE_ENTRY_SEP_STRING);
+ uprv_strcat(s, filename);
fixDirToTreePath(s);
files[fileCount].basename=s;
@@ -610,26 +576,24 @@ pathToFullPath(const char *path) {
n = (int32_t)uprv_strlen(fullPath);
uprv_strcat(fullPath, path);
- if(!embed) {
#if (U_FILE_ALT_SEP_CHAR != U_TREE_ENTRY_SEP_CHAR)
#if (U_FILE_ALT_SEP_CHAR != U_FILE_SEP_CHAR)
- /* replace tree separator (such as '/') with file sep char (such as ':' or '\\') */
- for(;fullPath[n];n++) {
- if(fullPath[n] == U_FILE_ALT_SEP_CHAR) {
- fullPath[n] = U_FILE_SEP_CHAR;
- }
+ /* replace tree separator (such as '/') with file sep char (such as ':' or '\\') */
+ for(;fullPath[n];n++) {
+ if(fullPath[n] == U_FILE_ALT_SEP_CHAR) {
+ fullPath[n] = U_FILE_SEP_CHAR;
}
+ }
#endif
#endif
#if (U_FILE_SEP_CHAR != U_TREE_ENTRY_SEP_CHAR)
- /* replace tree separator (such as '/') with file sep char (such as ':' or '\\') */
- for(;fullPath[n];n++) {
- if(fullPath[n] == U_TREE_ENTRY_SEP_CHAR) {
- fullPath[n] = U_FILE_SEP_CHAR;
- }
+ /* replace tree separator (such as '/') with file sep char (such as ':' or '\\') */
+ for(;fullPath[n];n++) {
+ if(fullPath[n] == U_TREE_ENTRY_SEP_CHAR) {
+ fullPath[n] = U_FILE_SEP_CHAR;
}
-#endif
}
+#endif
return fullPath;
}
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/gencmn.vcproj b/Build/source/libs/icu-xetex/tools/gencmn/gencmn.vcproj
index 0cd1b5c85b1..0cd618d83b0 100644
--- a/Build/source/libs/icu-xetex/tools/gencmn/gencmn.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gencmn/gencmn.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gencmn.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gencmn.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gencnval/.cvsignore b/Build/source/libs/icu-xetex/tools/gencnval/.cvsignore
index 852b046f8b0..59a3a5385c9 100644
--- a/Build/source/libs/icu-xetex/tools/gencnval/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/gencnval/.cvsignore
@@ -6,3 +6,6 @@ Makefile
*.pdb
gencnval
gencnval.[0-9]
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/gencnval/Makefile.in b/Build/source/libs/icu-xetex/tools/gencnval/Makefile.in
index 09af402bab0..a3b90420ddd 100644
--- a/Build/source/libs/icu-xetex/tools/gencnval/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gencnval/Makefile.in
@@ -1,9 +1,9 @@
## Makefile.in for ICU - tools/gencnval
## Copyright (c) 1999-2005, International Business Machines Corporation and
## others. All Rights Reserved.
-## Steven R. Loomi
+## Steven R. Loomis
-## Install directory information
+## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -14,34 +14,32 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/gencnval
-##
-
TARGET_STUB_NAME = gencnval
SECTION = 1
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-ALL_MAN_FILES = $(MANX_FILES)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(ALL_MAN_FILES) $(DEPS)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gencnval.o
DEPS = $(OBJECTS:.o=.d)
-
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man install-manx
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -54,12 +52,15 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
@@ -77,24 +78,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-# man page
-install-man: install-manx
-install-manx: $(MANX_FILES)
- $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-# only on linux probably ?
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
diff --git a/Build/source/libs/icu-xetex/tools/gencnval/gencnval.c b/Build/source/libs/icu-xetex/tools/gencnval/gencnval.c
index bc38e9ca69b..83eebd9cc4e 100644
--- a/Build/source/libs/icu-xetex/tools/gencnval/gencnval.c
+++ b/Build/source/libs/icu-xetex/tools/gencnval/gencnval.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -84,7 +84,7 @@ static const UDataInfo dataInfo={
0,
{0x43, 0x76, 0x41, 0x6c}, /* dataFormat="CvAl" */
- {3, 0, 0, 0}, /* formatVersion */
+ {3, 0, 1, 0}, /* formatVersion */
{1, 4, 2, 0} /* dataVersion */
};
@@ -137,6 +137,11 @@ static UBool standardTagsUsed = FALSE;
static UBool verbose = FALSE;
static int lineNum = 1;
+static UConverterAliasOptions tableOptions = {
+ UCNV_IO_STD_NORMALIZED,
+ 1 /* containsCnvOptionInfo */
+};
+
/* prototypes --------------------------------------------------------------- */
static void
@@ -663,19 +668,7 @@ addAlias(const char *alias, uint16_t standard, uint16_t converter, UBool default
}
}
- /* Check for duplicates in a tag/converter combination */
- for (idx = 0; idx < aliasList->aliasCount; idx++) {
- uint16_t aliasNum = tags[standard].aliasList[converter].aliases[idx];
- if (aliasNum && ucnv_compareNames(alias, GET_ALIAS_STR(aliasNum)) == 0 && standard != ALL_TAG_NUM)
- {
- fprintf(stderr, "warning(line %d): duplicate alias %s and %s found for standard %s\n",
- lineNum, alias, GET_ALIAS_STR(aliasNum), GET_TAG_STR(tags[standard].tag));
- dupFound = TRUE;
- break;
- }
- }
-
- if (!dupFound && standard != ALL_TAG_NUM) {
+ if (standard != ALL_TAG_NUM) {
/* Check for duplicate aliases for this tag on all converters */
for (idx = 0; idx < converterCount; idx++) {
for (idx2 = 0; idx2 < tags[standard].aliasList[idx].aliasCount; idx2++) {
@@ -683,8 +676,25 @@ addAlias(const char *alias, uint16_t standard, uint16_t converter, UBool default
if (aliasNum
&& ucnv_compareNames(alias, GET_ALIAS_STR(aliasNum)) == 0)
{
- fprintf(stderr, "warning(line %d): duplicate alias %s found for standard tag %s between converter %s and converter %s\n",
- lineNum, alias, GET_TAG_STR(tags[standard].tag), GET_ALIAS_STR(converters[converter].converter), GET_ALIAS_STR(converters[idx].converter));
+ if (idx == converter) {
+ /*
+ * (alias, standard) duplicates are harmless if they map to the same converter.
+ * Only print a warning in verbose mode, or if the alias is a precise duplicate,
+ * not just a lenient-match duplicate.
+ */
+ if (verbose || 0 == uprv_strcmp(alias, GET_ALIAS_STR(aliasNum))) {
+ fprintf(stderr, "warning(line %d): duplicate aliases %s and %s found for standard %s and converter %s\n",
+ lineNum, alias, GET_ALIAS_STR(aliasNum),
+ GET_TAG_STR(tags[standard].tag),
+ GET_ALIAS_STR(converters[converter].converter));
+ }
+ } else {
+ fprintf(stderr, "warning(line %d): duplicate aliases %s and %s found for standard tag %s between converter %s and converter %s\n",
+ lineNum, alias, GET_ALIAS_STR(aliasNum),
+ GET_TAG_STR(tags[standard].tag),
+ GET_ALIAS_STR(converters[converter].converter),
+ GET_ALIAS_STR(converters[idx].converter));
+ }
dupFound = TRUE;
break;
}
@@ -860,6 +870,9 @@ resolveAliases(uint16_t *uniqueAliasArr, uint16_t *uniqueAliasToConverterArr, ui
oldTagNum = currTagNum;
/*printf("%s -> %s\n", GET_ALIAS_STR(knownAliases[idx]), GET_ALIAS_STR(converters[currConvNum].converter));*/
}
+ if (uprv_strchr(GET_ALIAS_STR(converters[currConvNum].converter), UCNV_OPTION_SEP_CHAR) != NULL) {
+ uniqueAliasToConverterArr[uniqueAliasIdx-1] |= UCNV_CONTAINS_OPTION_BIT;
+ }
}
return uniqueAliasIdx;
}
@@ -906,6 +919,26 @@ createOneAliasList(uint16_t *aliasArrLists, uint32_t tag, uint32_t converter, ui
}
static void
+createNormalizedAliasStrings(char *normalizedStrings, const char *origStringBlock, int32_t stringBlockLength) {
+ int32_t currStrLen;
+ uprv_memcpy(normalizedStrings, origStringBlock, stringBlockLength);
+ while ((currStrLen = (int32_t)uprv_strlen(origStringBlock)) < stringBlockLength) {
+ int32_t currStrSize = currStrLen + 1;
+ if (currStrLen > 0) {
+ int32_t normStrLen;
+ ucnv_io_stripForCompare(normalizedStrings, origStringBlock);
+ normStrLen = uprv_strlen(normalizedStrings);
+ if (normStrLen > 0) {
+ uprv_memset(normalizedStrings + normStrLen, 0, currStrSize - normStrLen);
+ }
+ }
+ stringBlockLength -= currStrSize;
+ normalizedStrings += currStrSize;
+ origStringBlock += currStrSize;
+ }
+}
+
+static void
writeAliasTable(UNewDataMemory *out) {
uint32_t i, j;
uint32_t uniqueAliasesSize;
@@ -928,7 +961,12 @@ writeAliasTable(UNewDataMemory *out) {
}
/* Write the size of the TOC */
- udata_write32(out, 8);
+ if (tableOptions.stringNormalizationType == UCNV_IO_UNNORMALIZED) {
+ udata_write32(out, 8);
+ }
+ else {
+ udata_write32(out, 9);
+ }
/* Write the sizes of each section */
/* All sizes are the number of uint16_t units, not bytes */
@@ -938,8 +976,11 @@ writeAliasTable(UNewDataMemory *out) {
udata_write32(out, uniqueAliasesSize); /* The preresolved form of mapping an untagged the alias to a converter */
udata_write32(out, tagCount * converterCount);
udata_write32(out, aliasListsSize + 1);
- udata_write32(out, 0); /* Reserved space. */
+ udata_write32(out, sizeof(tableOptions) / sizeof(uint16_t));
udata_write32(out, (tagBlock.top + stringBlock.top) / sizeof(uint16_t));
+ if (tableOptions.stringNormalizationType != UCNV_IO_UNNORMALIZED) {
+ udata_write32(out, (tagBlock.top + stringBlock.top) / sizeof(uint16_t));
+ }
/* write the table of converters */
/* Think of this as the column headers */
@@ -973,12 +1014,26 @@ writeAliasTable(UNewDataMemory *out) {
/* Write the lists */
udata_writeBlock(out, (const void *)aliasLists, aliasListsSize * sizeof(uint16_t));
+ /* Write any options for the alias table. */
+ udata_writeBlock(out, (const void *)&tableOptions, sizeof(tableOptions));
+
/* write the tags strings */
udata_writeString(out, tagBlock.store, tagBlock.top);
/* write the aliases strings */
udata_writeString(out, stringBlock.store, stringBlock.top);
+ /* write the normalized aliases strings */
+ if (tableOptions.stringNormalizationType != UCNV_IO_UNNORMALIZED) {
+ char *normalizedStrings = (char *)uprv_malloc(tagBlock.top + stringBlock.top);
+ createNormalizedAliasStrings(normalizedStrings, tagBlock.store, tagBlock.top);
+ createNormalizedAliasStrings(normalizedStrings + tagBlock.top, stringBlock.store, stringBlock.top);
+
+ /* Write out the complete normalized array. */
+ udata_writeString(out, normalizedStrings, tagBlock.top + stringBlock.top);
+ uprv_free(normalizedStrings);
+ }
+
uprv_free(aliasArrLists);
uprv_free(uniqueAliases);
}
diff --git a/Build/source/libs/icu-xetex/tools/gencnval/gencnval.vcproj b/Build/source/libs/icu-xetex/tools/gencnval/gencnval.vcproj
index 6c0f5497c4c..3570af311f4 100644
--- a/Build/source/libs/icu-xetex/tools/gencnval/gencnval.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gencnval/gencnval.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gencnval.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gencnval.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genctd/.cvsignore b/Build/source/libs/icu-xetex/tools/genctd/.cvsignore
new file mode 100644
index 00000000000..ae431eb547e
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genctd/.cvsignore
@@ -0,0 +1,9 @@
+*.d
+*.o
+*.pdb
+*.plg
+Debug
+Makefile
+Release
+genctd
+genctd.1
diff --git a/Build/source/libs/icu-xetex/tools/genctd/Makefile.in b/Build/source/libs/icu-xetex/tools/genctd/Makefile.in
new file mode 100644
index 00000000000..6cea47a57c6
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genctd/Makefile.in
@@ -0,0 +1,95 @@
+## Makefile.in for ICU - tools/genctd
+## Copyright (c) 2002-2006 International Business Machines Corporation and
+## others. All Rights Reserved.
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../..
+
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = tools/genctd
+
+TARGET_STUB_NAME = genctd
+
+SECTION = 1
+
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
+
+## Target information
+TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
+
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
+
+OBJECTS = genctd.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET) $(MAN_FILES)
+
+install-local: all-local install-man
+ $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+ $(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
+
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+dist-local:
+
+clean-local:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+ $(RMV) $(TARGET) $(OBJECTS)
+
+distclean-local: clean-local
+ $(RMV) Makefile
+
+check-local: all-local
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(TARGET) : $(OBJECTS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/Build/source/libs/icu-xetex/tools/genctd/genctd.1.in b/Build/source/libs/icu-xetex/tools/genctd/genctd.1.in
new file mode 100644
index 00000000000..36224ea2387
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genctd/genctd.1.in
@@ -0,0 +1,111 @@
+.\" Hey, Emacs! This is -*-nroff-*- you know...
+.\"
+.\" genctd.1: manual page for the genctd utility
+.\"
+.\" Copyright (C) 2006 IBM, Inc. and others.
+.\"
+.TH GENCTD 1 "8 March 2006" "ICU MANPAGE" "ICU @VERSION@ Manual"
+.SH NAME
+.B genctd
+\- Compiles word list into ICU compact trie dictionary
+.SH SYNOPSIS
+.B genctd
+[
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+]
+[
+.BR "\-V\fP, \fB\-\-version"
+]
+[
+.BR "\-c\fP, \fB\-\-copyright"
+]
+[
+.BR "\-v\fP, \fB\-\-verbose"
+]
+[
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+]
+[
+.BI "\-i\fP, \fB\-\-icudatadir" " directory"
+]
+.BI "\-o\fP, \fB\-\-out" " output\-file"
+.IR " dictionary\-file"
+.SH DESCRIPTION
+.B genctd
+reads the word list from
+.I dictionary-file
+and creates a compact trie dictionary file. Normally this data file has the
+.B .ctd
+extension.
+.PP
+Words begin at the beginning of a line and are terminated by the first whitespace.
+Lines that begin with whitespace are ignored.
+.SH OPTIONS
+.TP
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+Print help about usage and exit.
+.TP
+.BR "\-V\fP, \fB\-\-version"
+Print the version of
+.B genctd
+and exit.
+.TP
+.BR "\-c\fP, \fB\-\-copyright"
+Embeds the standard ICU copyright into the
+.IR output-file .
+.TP
+.BR "\-v\fP, \fB\-\-verbose"
+Display extra informative messages during execution.
+.TP
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+Set the destination directory of the
+.IR output-file
+to
+.IR destination .
+.TP
+.BI "\-i\fP, \fB\-\-icudatadir" " directory"
+Look for any necessary ICU data files in
+.IR directory .
+For example, the file
+.B pnames.icu
+must be located when ICU's data is not built as a shared library.
+The default ICU data directory is specified by the environment variable
+.BR ICU_DATA .
+Most configurations of ICU do not require this argument.
+.TP
+.BI " dictionary\-file"
+The source file to read.
+.TP
+.BI "\-o\fP, \fB\-\-out" " output\-file"
+The output data file to write.
+.SH CAVEATS
+When the
+.IR dictionary-file
+contains a byte order mark (BOM) at the beginning of the file, which is the Unicode character
+.B U+FEFF,
+then the
+.IR dictionary-file
+is interpreted as Unicode. Without the BOM,
+the file is interpreted in the current operating system default codepage.
+In order to eliminate any ambiguity of the encoding for how the
+.IR rule-file
+was written, it is recommended that you write this file in UTF-8
+with the BOM.
+.SH ENVIRONMENT
+.TP 10
+.B ICU_DATA
+Specifies the directory containing ICU data. Defaults to
+.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
+Some tools in ICU depend on the presence of the trailing slash. It is thus
+important to make sure that it is present if
+.B ICU_DATA
+is set.
+.SH AUTHORS
+Deborah Goldsmith
+.SH VERSION
+1.0
+.SH COPYRIGHT
+Copyright (C) 2006 IBM, Inc. and others.
+.SH SEE ALSO
+.BR http://icu.sourceforge.net/userguide/boundaryAnalysis.html
+
diff --git a/Build/source/libs/icu-xetex/tools/genctd/genctd.cpp b/Build/source/libs/icu-xetex/tools/genctd/genctd.cpp
new file mode 100644
index 00000000000..5472d0265e4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genctd/genctd.cpp
@@ -0,0 +1,393 @@
+/*
+**********************************************************************
+* Copyright (C) 2002-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+**********************************************************************
+*
+* File genctd.c
+*/
+
+//--------------------------------------------------------------------
+//
+// Tool for generating CompactTrieDictionary data files (.ctd files).
+//
+// Usage: genctd [options] -o output-file.ctd input-file
+//
+// options: -v verbose
+// -? or -h help
+//
+// The input file is a plain text file containing words, one per line.
+// Words end at the first whitespace; lines beginning with whitespace
+// are ignored.
+// The file can be encoded as utf-8, or utf-16 (either endian), or
+// in the default code page (platform dependent.). utf encoded
+// files must include a BOM.
+//
+//--------------------------------------------------------------------
+
+#include "unicode/utypes.h"
+#include "unicode/uchar.h"
+#include "unicode/ucnv.h"
+#include "unicode/uniset.h"
+#include "unicode/unistr.h"
+#include "unicode/uclean.h"
+#include "unicode/udata.h"
+#include "unicode/putil.h"
+
+#include "uoptions.h"
+#include "unewdata.h"
+#include "ucmndata.h"
+#include "rbbidata.h"
+#include "triedict.h"
+#include "cmemory.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+static char *progName;
+static UOption options[]={
+ UOPTION_HELP_H, /* 0 */
+ UOPTION_HELP_QUESTION_MARK, /* 1 */
+ UOPTION_VERBOSE, /* 2 */
+ { "out", NULL, NULL, NULL, 'o', UOPT_REQUIRES_ARG, 0 }, /* 3 */
+ UOPTION_ICUDATADIR, /* 4 */
+ UOPTION_DESTDIR, /* 5 */
+ UOPTION_COPYRIGHT, /* 6 */
+};
+
+void usageAndDie(int retCode) {
+ printf("Usage: %s [-v] [-options] -o output-file dictionary-file\n", progName);
+ printf("\tRead in word list and write out compact trie dictionary\n"
+ "options:\n"
+ "\t-h or -? or --help this usage text\n"
+ "\t-V or --version show a version message\n"
+ "\t-c or --copyright include a copyright notice\n"
+ "\t-v or --verbose turn on verbose output\n"
+ "\t-i or --icudatadir directory for locating any needed intermediate data files,\n"
+ "\t followed by path, defaults to %s\n"
+ "\t-d or --destdir destination directory, followed by the path\n",
+ u_getDataDirectory());
+ exit (retCode);
+}
+
+
+#if UCONFIG_NO_BREAK_ITERATION
+
+/* dummy UDataInfo cf. udata.h */
+static UDataInfo dummyDataInfo = {
+ sizeof(UDataInfo),
+ 0,
+
+ U_IS_BIG_ENDIAN,
+ U_CHARSET_FAMILY,
+ U_SIZEOF_UCHAR,
+ 0,
+
+ { 0, 0, 0, 0 }, /* dummy dataFormat */
+ { 0, 0, 0, 0 }, /* dummy formatVersion */
+ { 0, 0, 0, 0 } /* dummy dataVersion */
+};
+
+#else
+
+//
+// Set up the ICU data header, defined in ucmndata.h
+//
+DataHeader dh ={
+ {sizeof(DataHeader), // Struct MappedData
+ 0xda,
+ 0x27},
+
+ { // struct UDataInfo
+ sizeof(UDataInfo), // size
+ 0, // reserved
+ U_IS_BIG_ENDIAN,
+ U_CHARSET_FAMILY,
+ U_SIZEOF_UCHAR,
+ 0, // reserved
+
+ { 0x54, 0x72, 0x44, 0x63 }, // "TrDc" Trie Dictionary
+ { 1, 0, 0, 0 }, // 1.0.0.0
+ { 0, 0, 0, 0 }, // Irrelevant for this data type
+ }};
+
+#endif
+
+//----------------------------------------------------------------------------
+//
+// main for genctd
+//
+//----------------------------------------------------------------------------
+int main(int argc, char **argv) {
+ UErrorCode status = U_ZERO_ERROR;
+ const char *wordFileName;
+ const char *outFileName;
+ const char *outDir = NULL;
+ const char *copyright = NULL;
+
+ //
+ // Pick up and check the command line arguments,
+ // using the standard ICU tool utils option handling.
+ //
+ U_MAIN_INIT_ARGS(argc, argv);
+ progName = argv[0];
+ argc=u_parseArgs(argc, argv, sizeof(options)/sizeof(options[0]), options);
+ if(argc<0) {
+ // Unrecognized option
+ fprintf(stderr, "error in command line argument \"%s\"\n", argv[-argc]);
+ usageAndDie(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+
+ if(options[0].doesOccur || options[1].doesOccur) {
+ // -? or -h for help.
+ usageAndDie(0);
+ }
+
+ if (!options[3].doesOccur || argc < 2) {
+ fprintf(stderr, "input and output file must both be specified.\n");
+ usageAndDie(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+ outFileName = options[3].value;
+ wordFileName = argv[1];
+
+ if (options[4].doesOccur) {
+ u_setDataDirectory(options[4].value);
+ }
+
+ /* Initialize ICU */
+ u_init(&status);
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "%s: can not initialize ICU. status = %s\n",
+ argv[0], u_errorName(status));
+ exit(1);
+ }
+ status = U_ZERO_ERROR;
+
+ /* Combine the directory with the file name */
+ if(options[5].doesOccur) {
+ outDir = options[5].value;
+ }
+ if (options[6].doesOccur) {
+ copyright = U_COPYRIGHT_STRING;
+ }
+
+#if UCONFIG_NO_BREAK_ITERATION
+
+ UNewDataMemory *pData;
+ char msg[1024];
+
+ /* write message with just the name */
+ sprintf(msg, "genctd writes dummy %s because of UCONFIG_NO_BREAK_ITERATION, see uconfig.h", outFileName);
+ fprintf(stderr, "%s\n", msg);
+
+ /* write the dummy data file */
+ pData = udata_create(outDir, NULL, outFileName, &dummyDataInfo, NULL, &status);
+ udata_writeBlock(pData, msg, strlen(msg));
+ udata_finish(pData, &status);
+ return (int)status;
+
+#else
+
+ //
+ // Read in the dictionary source file
+ //
+ long result;
+ long wordFileSize;
+ FILE *file;
+ char *wordBufferC;
+
+ file = fopen(wordFileName, "rb");
+ if( file == 0 ) {
+ fprintf(stderr, "Could not open file \"%s\"\n", wordFileName);
+ exit(-1);
+ }
+ fseek(file, 0, SEEK_END);
+ wordFileSize = ftell(file);
+ fseek(file, 0, SEEK_SET);
+ wordBufferC = new char[wordFileSize+10];
+
+ result = (long)fread(wordBufferC, 1, wordFileSize, file);
+ if (result != wordFileSize) {
+ fprintf(stderr, "Error reading file \"%s\"\n", wordFileName);
+ exit (-1);
+ }
+ wordBufferC[wordFileSize]=0;
+ fclose(file);
+
+ //
+ // Look for a Unicode Signature (BOM) on the word file
+ //
+ int32_t signatureLength;
+ const char * wordSourceC = wordBufferC;
+ const char* encoding = ucnv_detectUnicodeSignature(
+ wordSourceC, wordFileSize, &signatureLength, &status);
+ if (U_FAILURE(status)) {
+ exit(status);
+ }
+ if(encoding!=NULL ){
+ wordSourceC += signatureLength;
+ wordFileSize -= signatureLength;
+ }
+
+ //
+ // Open a converter to take the rule file to UTF-16
+ //
+ UConverter* conv;
+ conv = ucnv_open(encoding, &status);
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "ucnv_open: ICU Error \"%s\"\n", u_errorName(status));
+ exit(status);
+ }
+
+ //
+ // Convert the words to UChar.
+ // Preflight first to determine required buffer size.
+ //
+ uint32_t destCap = ucnv_toUChars(conv,
+ NULL, // dest,
+ 0, // destCapacity,
+ wordSourceC,
+ wordFileSize,
+ &status);
+ if (status != U_BUFFER_OVERFLOW_ERROR) {
+ fprintf(stderr, "ucnv_toUChars: ICU Error \"%s\"\n", u_errorName(status));
+ exit(status);
+ };
+
+ status = U_ZERO_ERROR;
+ UChar *wordSourceU = new UChar[destCap+1];
+ ucnv_toUChars(conv,
+ wordSourceU, // dest,
+ destCap+1,
+ wordSourceC,
+ wordFileSize,
+ &status);
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "ucnv_toUChars: ICU Error \"%s\"\n", u_errorName(status));
+ exit(status);
+ };
+ ucnv_close(conv);
+
+ // Get rid of the original file buffer
+ delete[] wordBufferC;
+
+ // Create a MutableTrieDictionary, and loop through all the lines, inserting
+ // words.
+
+ // First, pick a median character.
+ UChar *current = wordSourceU + (destCap/2);
+ UChar uc = *current++;
+ UnicodeSet breaks;
+ breaks.add(0x000A); // Line Feed
+ breaks.add(0x000D); // Carriage Return
+ breaks.add(0x2028); // Line Separator
+ breaks.add(0x2029); // Paragraph Separator
+
+ do {
+ // Look for line break
+ while (uc && !breaks.contains(uc)) {
+ uc = *current++;
+ }
+ // Now skip to first non-line-break
+ while (uc && breaks.contains(uc)) {
+ uc = *current++;
+ }
+ }
+ while (uc && (breaks.contains(uc) || u_isspace(uc)));
+
+ MutableTrieDictionary *mtd = new MutableTrieDictionary(uc, status);
+
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "new MutableTrieDictionary: ICU Error \"%s\"\n", u_errorName(status));
+ exit(status);
+ }
+
+ // Now add the words. Words are non-space characters at the beginning of
+ // lines, and must be at least one UChar.
+ current = wordSourceU;
+ UChar *candidate = current;
+ uc = *current++;
+ int32_t length = 0;
+
+ while (uc) {
+ while (uc && !u_isspace(uc)) {
+ ++length;
+ uc = *current++;
+ }
+ if (length > 0) {
+ mtd->addWord(candidate, length, status);
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "MutableTrieDictionary::addWord: ICU Error \"%s\"\n",
+ u_errorName(status));
+ exit(status);
+ }
+ }
+ // Find beginning of next line
+ while (uc && !breaks.contains(uc)) {
+ uc = *current++;
+ }
+ while (uc && breaks.contains(uc)) {
+ uc = *current++;
+ }
+ candidate = current-1;
+ length = 0;
+ }
+
+ // Get rid of the Unicode text buffer
+ delete[] wordSourceU;
+
+ // Now, create a CompactTrieDictionary from the mutable dictionary
+ CompactTrieDictionary *ctd = new CompactTrieDictionary(*mtd, status);
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "new CompactTrieDictionary: ICU Error \"%s\"\n", u_errorName(status));
+ exit(status);
+ }
+
+ // Get rid of the MutableTrieDictionary
+ delete mtd;
+
+ //
+ // Get the binary data from the dictionary.
+ //
+ uint32_t outDataSize = ctd->dataSize();
+ const uint8_t *outData = (const uint8_t *)ctd->data();
+
+ //
+ // Create the output file
+ //
+ size_t bytesWritten;
+ UNewDataMemory *pData;
+ pData = udata_create(outDir, NULL, outFileName, &(dh.info), copyright, &status);
+ if(U_FAILURE(status)) {
+ fprintf(stderr, "genctd: Could not open output file \"%s\", \"%s\"\n",
+ outFileName, u_errorName(status));
+ exit(status);
+ }
+
+
+ // Write the data itself.
+ udata_writeBlock(pData, outData, outDataSize);
+ // finish up
+ bytesWritten = udata_finish(pData, &status);
+ if(U_FAILURE(status)) {
+ fprintf(stderr, "genctd: error \"%s\" writing the output file\n", u_errorName(status));
+ exit(status);
+ }
+
+ if (bytesWritten != outDataSize) {
+ fprintf(stderr, "Error writing to output file \"%s\"\n", outFileName);
+ exit(-1);
+ }
+
+ // Get rid of the CompactTrieDictionary
+ delete ctd;
+
+ u_cleanup();
+
+ printf("genctd: tool completed successfully.\n");
+ return 0;
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+}
+
diff --git a/Build/source/libs/icu-xetex/tools/gencmn/decmn.vcproj b/Build/source/libs/icu-xetex/tools/genctd/genctd.vcproj
index 51a426ef3b5..d3c5911c96b 100644
--- a/Build/source/libs/icu-xetex/tools/gencmn/decmn.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genctd/genctd.vcproj
@@ -2,7 +2,8 @@
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
- Name="decmn"
+ Name="genctd"
+ ProjectGUID="{9D4211F7-2C77-439C-82F0-30A4E43BA569}"
SccProjectName=""
SccLocalPath="">
<Platforms>
@@ -12,8 +13,8 @@
<Configurations>
<Configuration
Name="Release|Win32"
- OutputDirectory=".\decmn_Win32_Release"
- IntermediateDirectory=".\decmn_Win32_Release"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
ConfigurationType="1"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
@@ -27,11 +28,12 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\decmn_Win32_Release/decmn.pch"
- AssemblerListingLocation=".\decmn_Win32_Release/"
- ObjectFile=".\decmn_Win32_Release/"
- ProgramDataBaseFileName=".\decmn_Win32_Release/"
- WarningLevel="4"
+ TreatWChar_tAsBuiltInType="TRUE"
+ PrecompiledHeaderFile=".\Release/genctd.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
SuppressStartupBanner="TRUE"
CompileAs="0"/>
<Tool
@@ -41,14 +43,14 @@
Outputs="..\..\..\bin\$(TargetFileName)"/>
<Tool
Name="VCLinkerTool"
- OutputFile=".\decmn_Win32_Release/decmn.exe"
+ OutputFile=".\Release/genctd.exe"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
- ProgramDatabaseFile=".\decmn_Win32_Release/decmn.pdb"
+ ProgramDatabaseFile=".\Release/genctd.pdb"
SubSystem="1"/>
<Tool
Name="VCMIDLTool"
- TypeLibraryName=".\decmn_Win32_Release/decmn.tlb"/>
+ TypeLibraryName=".\Release/genctd.tlb"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
@@ -72,8 +74,8 @@
</Configuration>
<Configuration
Name="Debug|Win32"
- OutputDirectory=".\decmn_Win32_Debug"
- IntermediateDirectory=".\decmn_Win32_Debug"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
ConfigurationType="1"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
@@ -88,12 +90,13 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
- PrecompiledHeaderFile=".\decmn_Win32_Debug/decmn.pch"
- AssemblerListingLocation=".\decmn_Win32_Debug/"
- ObjectFile=".\decmn_Win32_Debug/"
- ProgramDataBaseFileName=".\decmn_Win32_Debug/"
+ TreatWChar_tAsBuiltInType="TRUE"
+ PrecompiledHeaderFile=".\Debug/genctd.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
BrowseInformation="1"
- WarningLevel="4"
+ WarningLevel="3"
SuppressStartupBanner="TRUE"
DebugInformationFormat="4"
CompileAs="0"/>
@@ -104,15 +107,15 @@
Outputs="..\..\..\bin\$(TargetFileName)"/>
<Tool
Name="VCLinkerTool"
- OutputFile=".\decmn_Win32_Debug/decmn.exe"
+ OutputFile=".\Debug/genctd.exe"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\decmn_Win32_Debug/decmn.pdb"
+ ProgramDatabaseFile=".\Debug/genctd.pdb"
SubSystem="1"/>
<Tool
Name="VCMIDLTool"
- TypeLibraryName=".\decmn_Win32_Debug/decmn.tlb"/>
+ TypeLibraryName=".\Debug/genctd.tlb"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
@@ -142,7 +145,7 @@
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
<File
- RelativePath=".\decmn.c">
+ RelativePath=".\genctd.cpp">
</File>
</Filter>
<Filter
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/DeprecatedApi.txt b/Build/source/libs/icu-xetex/tools/gendraft/DeprecatedApi.txt
deleted file mode 100644
index b6a8527ad13..00000000000
--- a/Build/source/libs/icu-xetex/tools/gendraft/DeprecatedApi.txt
+++ /dev/null
@@ -1,225 +0,0 @@
-ubrk.h UBRK_TITLE ICU 2.8 Use the word break iterator for titlecasing for Unicode 4 and later.
-ucol.h ucol_getLocale ICU 2.8 Use ucol_getLocaleByType instead
-uloc.h ULOC_REQUESTED_LOCALE ICU 2.8
-ures.h RES_NONE ICU 2.6 Use the URES_ constant instead.
-ures.h RES_STRING ICU 2.6 Use the URES_ constant instead.
-ures.h RES_BINARY ICU 2.6 Use the URES_ constant instead.
-ures.h RES_TABLE ICU 2.6 Use the URES_ constant instead.
-ures.h RES_ALIAS ICU 2.6 Use the URES_ constant instead.
-ures.h RES_INT ICU 2.6 Use the URES_ constant instead.
-ures.h RES_ARRAY ICU 2.6 Use the URES_ constant instead.
-ures.h RES_INT_VECTOR ICU 2.6 Use the URES_ constant instead.
-ures.h RES_RESERVED ICU 2.6 Not used.
-ures.h ures_countArrayItems ICU 2.8 User ures_getSize instead
-ures.h ures_getLocale ICU 2.8 Use ures_getLocaleByType instead.
-ures.h ures_getVersionNumber ICU 2.8 Use ures_getVersion instead.
-utf_old.h (null) ICU 2.4. Use the macros in utf.h, utf16.h, utf8.h instead.
-utf_old.h UTF16_APPEND_CHAR_SAFE ICU 2.4. Use U16_APPEND instead, see utf_old.h.
-utf_old.h UTF16_APPEND_CHAR_UNSAFE ICU 2.4. Renamed to U16_APPEND_UNSAFE, see utf_old.h.
-utf_old.h UTF16_ARRAY_SIZE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF16_BACK_1_SAFE ICU 2.4. Renamed to U16_BACK_1, see utf_old.h.
-utf_old.h UTF16_BACK_1_UNSAFE ICU 2.4. Renamed to U16_BACK_1_UNSAFE, see utf_old.h.
-utf_old.h UTF16_BACK_N_SAFE ICU 2.4. Renamed to U16_BACK_N, see utf_old.h.
-utf_old.h UTF16_BACK_N_UNSAFE ICU 2.4. Renamed to U16_BACK_N_UNSAFE, see utf_old.h.
-utf_old.h UTF16_CHAR_LENGTH ICU 2.4. Renamed to U16_LENGTH, see utf_old.h.
-utf_old.h UTF16_FWD_1_SAFE ICU 2.4. Renamed to U16_FWD_1, see utf_old.h.
-utf_old.h UTF16_FWD_1_UNSAFE ICU 2.4. Renamed to U16_FWD_1_UNSAFE, see utf_old.h.
-utf_old.h UTF16_FWD_N_SAFE ICU 2.4. Renamed to U16_FWD_N, see utf_old.h.
-utf_old.h UTF16_FWD_N_UNSAFE ICU 2.4. Renamed to U16_FWD_N_UNSAFE, see utf_old.h.
-utf_old.h UTF16_GET_CHAR_SAFE ICU 2.4. Use U16_GET instead, see utf_old.h.
-utf_old.h UTF16_GET_CHAR_UNSAFE ICU 2.4. Renamed to U16_GET_UNSAFE, see utf_old.h.
-utf_old.h UTF16_GET_PAIR_VALUE ICU 2.4. Renamed to U16_GET_SUPPLEMENTARY, see utf_old.h.
-utf_old.h UTF16_IS_LEAD ICU 2.4. Renamed to U16_IS_LEAD, see utf_old.h.
-utf_old.h UTF16_IS_SINGLE ICU 2.4. Renamed to U16_IS_SINGLE, see utf_old.h.
-utf_old.h UTF16_IS_TRAIL ICU 2.4. Renamed to U16_IS_TRAIL, see utf_old.h.
-utf_old.h UTF16_LEAD ICU 2.4. Renamed to U16_LEAD, see utf_old.h.
-utf_old.h UTF16_MAX_CHAR_LENGTH ICU 2.4. Renamed to U16_MAX_LENGTH, see utf_old.h.
-utf_old.h UTF16_NEED_MULTIPLE_UCHAR ICU 2.4. Use U16_LENGTH or test ((uint32_t)(c)>0xffff) instead, see utf_old.h.
-utf_old.h UTF16_NEXT_CHAR_SAFE ICU 2.4. Use U16_NEXT instead, see utf_old.h.
-utf_old.h UTF16_NEXT_CHAR_UNSAFE ICU 2.4. Renamed to U16_NEXT_UNSAFE, see utf_old.h.
-utf_old.h UTF16_PREV_CHAR_SAFE ICU 2.4. Use U16_PREV instead, see utf_old.h.
-utf_old.h UTF16_PREV_CHAR_UNSAFE ICU 2.4. Renamed to U16_PREV_UNSAFE, see utf_old.h.
-utf_old.h UTF16_SET_CHAR_LIMIT_SAFE ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h.
-utf_old.h UTF16_SET_CHAR_LIMIT_UNSAFE ICU 2.4. Renamed to U16_SET_CP_LIMIT_UNSAFE, see utf_old.h.
-utf_old.h UTF16_SET_CHAR_START_SAFE ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h.
-utf_old.h UTF16_SET_CHAR_START_UNSAFE ICU 2.4. Renamed to U16_SET_CP_START_UNSAFE, see utf_old.h.
-utf_old.h UTF16_TRAIL ICU 2.4. Renamed to U16_TRAIL, see utf_old.h.
-utf_old.h UTF32_APPEND_CHAR_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_APPEND_CHAR_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_ARRAY_SIZE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_BACK_1_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_BACK_1_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_BACK_N_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_BACK_N_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_CHAR_LENGTH ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_FWD_1_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_FWD_1_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_FWD_N_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_FWD_N_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_GET_CHAR_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_GET_CHAR_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_IS_LEAD ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_IS_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_IS_SINGLE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_IS_TRAIL ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_MAX_CHAR_LENGTH ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_NEED_MULTIPLE_UCHAR ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_NEXT_CHAR_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_NEXT_CHAR_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_PREV_CHAR_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_PREV_CHAR_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_SET_CHAR_LIMIT_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_SET_CHAR_LIMIT_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_SET_CHAR_START_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF32_SET_CHAR_START_UNSAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF8_APPEND_CHAR_SAFE ICU 2.4. Use U8_APPEND instead, see utf_old.h.
-utf_old.h UTF8_APPEND_CHAR_UNSAFE ICU 2.4. Renamed to U8_APPEND_UNSAFE, see utf_old.h.
-utf_old.h UTF8_ARRAY_SIZE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF8_BACK_1_SAFE ICU 2.4. Renamed to U8_BACK_1, see utf_old.h.
-utf_old.h UTF8_BACK_1_UNSAFE ICU 2.4. Renamed to U8_BACK_1_UNSAFE, see utf_old.h.
-utf_old.h UTF8_BACK_N_SAFE ICU 2.4. Renamed to U8_BACK_N, see utf_old.h.
-utf_old.h UTF8_BACK_N_UNSAFE ICU 2.4. Renamed to U8_BACK_N_UNSAFE, see utf_old.h.
-utf_old.h UTF8_CHAR_LENGTH ICU 2.4. Use U8_LENGTH instead, see utf_old.h.
-utf_old.h UTF8_COUNT_TRAIL_BYTES ICU 2.4. Renamed to U8_COUNT_TRAIL_BYTES, see utf_old.h.
-utf_old.h UTF8_ERROR_VALUE_1 ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF8_ERROR_VALUE_2 ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF8_FWD_1_SAFE ICU 2.4. Renamed to U8_FWD_1, see utf_old.h.
-utf_old.h UTF8_FWD_1_UNSAFE ICU 2.4. Renamed to U8_FWD_1_UNSAFE, see utf_old.h.
-utf_old.h UTF8_FWD_N_SAFE ICU 2.4. Renamed to U8_FWD_N, see utf_old.h.
-utf_old.h UTF8_FWD_N_UNSAFE ICU 2.4. Renamed to U8_FWD_N_UNSAFE, see utf_old.h.
-utf_old.h UTF8_GET_CHAR_SAFE ICU 2.4. Use U8_GET instead, see utf_old.h.
-utf_old.h UTF8_GET_CHAR_UNSAFE ICU 2.4. Renamed to U8_GET_UNSAFE, see utf_old.h.
-utf_old.h UTF8_IS_LEAD ICU 2.4. Renamed to U8_IS_LEAD, see utf_old.h.
-utf_old.h UTF8_IS_SINGLE ICU 2.4. Renamed to U8_IS_SINGLE, see utf_old.h.
-utf_old.h UTF8_IS_TRAIL ICU 2.4. Renamed to U8_IS_TRAIL, see utf_old.h.
-utf_old.h UTF8_MASK_LEAD_BYTE ICU 2.4. Renamed to U8_MASK_LEAD_BYTE, see utf_old.h.
-utf_old.h UTF8_MAX_CHAR_LENGTH ICU 2.4. Renamed to U8_MAX_LENGTH, see utf_old.h.
-utf_old.h UTF8_NEED_MULTIPLE_UCHAR ICU 2.4. Use U8_LENGTH or test ((uint32_t)(c)>0x7f) instead, see utf_old.h.
-utf_old.h UTF8_NEXT_CHAR_SAFE ICU 2.4. Use U8_NEXT instead, see utf_old.h.
-utf_old.h UTF8_NEXT_CHAR_UNSAFE ICU 2.4. Renamed to U8_NEXT_UNSAFE, see utf_old.h.
-utf_old.h UTF8_PREV_CHAR_SAFE ICU 2.4. Use U8_PREV instead, see utf_old.h.
-utf_old.h UTF8_PREV_CHAR_UNSAFE ICU 2.4. Renamed to U8_PREV_UNSAFE, see utf_old.h.
-utf_old.h UTF8_SET_CHAR_LIMIT_SAFE ICU 2.4. Renamed to U8_SET_CP_LIMIT, see utf_old.h.
-utf_old.h UTF8_SET_CHAR_LIMIT_UNSAFE ICU 2.4. Renamed to U8_SET_CP_LIMIT_UNSAFE, see utf_old.h.
-utf_old.h UTF8_SET_CHAR_START_SAFE ICU 2.4. Renamed to U8_SET_CP_START, see utf_old.h.
-utf_old.h UTF8_SET_CHAR_START_UNSAFE ICU 2.4. Renamed to U8_SET_CP_START_UNSAFE, see utf_old.h.
-utf_old.h UTF_APPEND_CHAR ICU 2.4. Use U16_APPEND instead, see utf_old.h.
-utf_old.h UTF_APPEND_CHAR_SAFE ICU 2.4. Use U16_APPEND instead, see utf_old.h.
-utf_old.h UTF_APPEND_CHAR_UNSAFE ICU 2.4. Renamed to U16_APPEND_UNSAFE, see utf_old.h.
-utf_old.h UTF_ARRAY_SIZE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_BACK_1 ICU 2.4. Renamed to U16_BACK_1, see utf_old.h.
-utf_old.h UTF_BACK_1_SAFE ICU 2.4. Renamed to U16_BACK_1, see utf_old.h.
-utf_old.h UTF_BACK_1_UNSAFE ICU 2.4. Renamed to U16_BACK_1_UNSAFE, see utf_old.h.
-utf_old.h UTF_BACK_N ICU 2.4. Renamed to U16_BACK_N, see utf_old.h.
-utf_old.h UTF_BACK_N_SAFE ICU 2.4. Renamed to U16_BACK_N, see utf_old.h.
-utf_old.h UTF_BACK_N_UNSAFE ICU 2.4. Renamed to U16_BACK_N_UNSAFE, see utf_old.h.
-utf_old.h UTF_CHAR_LENGTH ICU 2.4. Renamed to U16_LENGTH, see utf_old.h.
-utf_old.h UTF_ERROR_VALUE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_FIRST_SURROGATE ICU 2.4. Renamed to U16_LEAD, see utf_old.h.
-utf_old.h UTF_FWD_1 ICU 2.4. Renamed to U16_FWD_1, see utf_old.h.
-utf_old.h UTF_FWD_1_SAFE ICU 2.4. Renamed to U16_FWD_1, see utf_old.h.
-utf_old.h UTF_FWD_1_UNSAFE ICU 2.4. Renamed to U16_FWD_1_UNSAFE, see utf_old.h.
-utf_old.h UTF_FWD_N ICU 2.4. Renamed to U16_FWD_N, see utf_old.h.
-utf_old.h UTF_FWD_N_SAFE ICU 2.4. Renamed to U16_FWD_N, see utf_old.h.
-utf_old.h UTF_FWD_N_UNSAFE ICU 2.4. Renamed to U16_FWD_N_UNSAFE, see utf_old.h.
-utf_old.h UTF_GET_CHAR ICU 2.4. Renamed to U16_GET, see utf_old.h.
-utf_old.h UTF_GET_CHAR_SAFE ICU 2.4. Use U16_GET instead, see utf_old.h.
-utf_old.h UTF_GET_CHAR_UNSAFE ICU 2.4. Renamed to U16_GET_UNSAFE, see utf_old.h.
-utf_old.h UTF_IS_ERROR ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_IS_FIRST_SURROGATE ICU 2.4. Renamed to U_IS_LEAD and U16_IS_LEAD, see utf_old.h.
-utf_old.h UTF_IS_LEAD ICU 2.4. Renamed to U_IS_LEAD and U16_IS_LEAD, see utf_old.h.
-utf_old.h UTF_IS_SECOND_SURROGATE ICU 2.4. Renamed to U_IS_TRAIL and U16_IS_TRAIL, see utf_old.h.
-utf_old.h UTF_IS_SINGLE ICU 2.4. Renamed to U_IS_SINGLE and U16_IS_SINGLE, see utf_old.h.
-utf_old.h UTF_IS_SURROGATE ICU 2.4. Renamed to U_IS_SURROGATE and U16_IS_SURROGATE, see utf_old.h.
-utf_old.h UTF_IS_SURROGATE_FIRST ICU 2.4. Renamed to U_IS_SURROGATE_LEAD and U16_IS_SURROGATE_LEAD, see utf_old.h.
-utf_old.h UTF_IS_TRAIL ICU 2.4. Renamed to U_IS_TRAIL and U16_IS_TRAIL, see utf_old.h.
-utf_old.h UTF_IS_UNICODE_CHAR ICU 2.4. Renamed to U_IS_UNICODE_CHAR, see utf_old.h.
-utf_old.h UTF_IS_UNICODE_NONCHAR ICU 2.4. Renamed to U_IS_UNICODE_NONCHAR, see utf_old.h.
-utf_old.h UTF_IS_VALID ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_MAX_CHAR_LENGTH ICU 2.4. Renamed to U16_MAX_LENGTH, see utf_old.h.
-utf_old.h UTF_NEED_MULTIPLE_UCHAR ICU 2.4. Use U16_LENGTH or test ((uint32_t)(c)>0xffff) instead.
-utf_old.h UTF_NEXT_CHAR ICU 2.4. Renamed to U16_NEXT, see utf_old.h.
-utf_old.h UTF_NEXT_CHAR_SAFE ICU 2.4. Use U16_NEXT instead, see utf_old.h.
-utf_old.h UTF_NEXT_CHAR_UNSAFE ICU 2.4. Renamed to U16_NEXT_UNSAFE, see utf_old.h.
-utf_old.h UTF_PREV_CHAR ICU 2.4. Renamed to U16_PREV, see utf_old.h.
-utf_old.h UTF_PREV_CHAR_SAFE ICU 2.4. Use U16_PREV instead, see utf_old.h.
-utf_old.h UTF_PREV_CHAR_UNSAFE ICU 2.4. Renamed to U16_PREV_UNSAFE, see utf_old.h.
-utf_old.h UTF_SAFE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_SECOND_SURROGATE ICU 2.4. Renamed to U16_TRAIL, see utf_old.h.
-utf_old.h UTF_SET_CHAR_LIMIT ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h.
-utf_old.h UTF_SET_CHAR_LIMIT_SAFE ICU 2.4. Renamed to U16_SET_CP_LIMIT, see utf_old.h.
-utf_old.h UTF_SET_CHAR_LIMIT_UNSAFE ICU 2.4. Renamed to U16_SET_CP_LIMIT_UNSAFE, see utf_old.h.
-utf_old.h UTF_SET_CHAR_START ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h.
-utf_old.h UTF_SET_CHAR_START_SAFE ICU 2.4. Renamed to U16_SET_CP_START, see utf_old.h.
-utf_old.h UTF_SET_CHAR_START_UNSAFE ICU 2.4. Renamed to U16_SET_CP_START_UNSAFE, see utf_old.h.
-utf_old.h UTF_SIZE ICU 2.4. Obsolete, see utf_old.h.
-utf_old.h UTF_SURROGATE_OFFSET ICU 2.4. Renamed to U16_SURROGATE_OFFSET, see utf_old.h.
-utrans.h utrans_getAvailableID ICU 2.8 Use utrans_openIDs() instead, see utrans.h
-utrans.h utrans_getID ICU 2.8 Use utrans_getUnicodeID() instead, see utrans.h
-utrans.h utrans_open ICU 2.8 Use utrans_openU() instead, see utrans.h
-utrans.h utrans_unregister ICU 2.8 Use utrans_unregisterID() instead, see utrans.h
-Calendar EAmpm ICU 2.6. Use C enum UCalendarAMPMs defined in ucal.h
-Calendar EDateFields ICU 2.6. Use C enum UCalendarDateFields defined in ucal.h
-Calendar EDaysOfWeek ICU 2.6. Use C enum UCalendarDaysOfWeek defined in ucal.h
-Calendar EMonths ICU 2.6. Use C enum UCalendarMonths defined in ucal.h
-Calendar add ICU 2.6. use add(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead.
-Calendar clear ICU 2.6. Use clear(UCalendarDateFields field) instead.
-Calendar fieldDifference ICU 2.6. Use fieldDifference(UDate when, UCalendarDateFields field, UErrorCode& status).
-Calendar get ICU 2.6. Use get(UCalendarDateFields field, UErrorCode& status) instead.
-Calendar getActualMaximum ICU 2.6. Use getActualMaximum(UCalendarDateFields field, UErrorCode& status) instead.
-Calendar getActualMinimum ICU 2.6. Use getActualMinimum(UCalendarDateFields field, UErrorCode& status) instead.
-Calendar getFirstDayOfWeek ICU 2.6 use the overload with error code
-Calendar getGreatestMinimum ICU 2.6. Use getGreatestMinimum(UCalendarDateFields field) instead.
-Calendar getLeastMaximum ICU 2.6. Use getLeastMaximum(UCalendarDateFields field) instead.
-Calendar getMaximum ICU 2.6. Use getMaximum(UCalendarDateFields field) instead.
-Calendar getMinimum ICU 2.6. Use getMinimum(UCalendarDateFields field) instead.
-Calendar internalGet ICU 2.6. Use internalGet(UCalendarDateFields field) instead.
-Calendar internalSet ICU 2.6. Use internalSet(UCalendarDateFields field, int32_t value) instead.
-Calendar isSet ICU 2.6. Use isSet(UCalendarDateFields field) instead.
-Calendar roll ICU 2.6. Use roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead.
-Calendar roll ICU 2.6. Use roll(UCalendarDateFields field, UBool up, UErrorCode& status) instead.
-Calendar set ICU 2.6. Use set(UCalendarDateFields field, int32_t value) instead.
-Calendar setFirstDayOfWeek ICU 2.6. Use setFirstDayOfWeek(UCalendarDaysOfWeek value) instead.
-Calendar fIsSet ICU 2.8 use (fStamp[n]!=kUnset)
-CollationKey (null) ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey CollationKey ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey CollationKey ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey CollationKey ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey ~CollationKey ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey compareTo ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey compareTo ICU 2.6 use the overload with error code
-CollationKey getByteArray ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey getDynamicClassID ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey getStaticClassID ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey hashCode ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey isBogus ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey operator!= ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey operator= ICU 2.8 Use Collator::getSortKey(...) instead
-CollationKey operator== ICU 2.8 Use Collator::getSortKey(...) instead
-Collator EComparisonResult ICU 2.6. Use C enum UCollationResult defined in ucol.h
-Collator Collator ICU 2.4. Subclasses should use the default constructor
-Collator compare ICU 2.6 use the overload with UErrorCode &
-Collator compare ICU 2.6 use the overload with UErrorCode &
-Collator compare ICU 2.6 use the overload with UErrorCode &
-Collator getCollationKey ICU 2.8 Use getSortKey(...) instead
-Collator getCollationKey ICU 2.8 Use getSortKey(...) instead
-Collator getLocale ICU 2.8 This API is under consideration for revision
-Collator getStrength ICU 2.6 Use getAttribute(UCOL_STRENGTH...) instead
-Collator setStrength ICU 2.6 Use setAttribute(UCOL_STRENGTH...) instead
-GregorianCalendar getActualMaximum ICU 2.6. Use getActualMaximum(UCalendarDateFields field) instead.
-GregorianCalendar getActualMinimum ICU 2.6. Use getActualMinimum(UCalendarDateFields field) instead. (Added to ICU 3.0 for signature consistency)
-GregorianCalendar getActualMinimum ICU 2.6. Use getActualMinimum(UCalendarDateFields field) instead.
-GregorianCalendar roll ICU 2.6. Use roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead.
-ResourceBundle getLocale ICU 2.8 Use getLocale(ULocDataLocaleType type, UErrorCode &status) overload instead.
-ResourceBundle getVersionNumber ICU 2.8 Use getVersion instead.
-RuleBasedCollator compare ICU 2.6 Use overload with UErrorCode&
-RuleBasedCollator compare ICU 2.6 Use overload with UErrorCode&
-RuleBasedCollator compare ICU 2.6 Use overload with UErrorCode&
-RuleBasedCollator getCollationKey ICU 2.8 Use getSortKey(...) instead
-RuleBasedCollator getCollationKey ICU 2.8 Use getSortKey(...) instead
-RuleBasedCollator getEComparisonResult ICU 2.6. We will not need it.
-RuleBasedCollator getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-RuleBasedCollator getStrength ICU 2.6 Use getAttribute(UCOL_STRENGTH...) instead
-RuleBasedCollator setStrength ICU 2.6 Use setAttribute(UCOL_STRENGTH...) instead
-SimpleTimeZone inDaylightTime ICU 2.4. Use Calendar::inDaylightTime() instead.
-TimeZone inDaylightTime ICU 2.4. Use Calendar::inDaylightTime() instead.
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/DraftApi.txt b/Build/source/libs/icu-xetex/tools/gendraft/DraftApi.txt
deleted file mode 100644
index 899595802a7..00000000000
--- a/Build/source/libs/icu-xetex/tools/gendraft/DraftApi.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-coll.h URegistryKey ICU 2.6
-ubrk.h ULineBreakTag ICU 2.8
-ubrk.h USentenceBreakTag ICU 2.8
-ubrk.h ULineBreakTag ICU 2.8
-ubrk.h USentenceBreakTag ICU 2.8
-ubrk.h ubrk_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-ubrk.h ubrk_getRuleStatusVec ICU 3.0
-ucal.h UCAL_EXTENDED_YEAR ICU 2.8
-ucal.h UCAL_JULIAN_DAY ICU 2.8
-ucal.h UCAL_MILLISECONDS_IN_DAY ICU 2.8
-ucal.h UCAL_DAY_OF_MONTH ICU 2.8
-ucal.h ucal_getDSTSavings ICU 2.6
-ucal.h ucal_getDefaultTimeZone ICU 2.6
-ucal.h ucal_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-ucal.h ucal_openCountryTimeZones ICU 2.6
-ucal.h ucal_openTimeZones ICU 2.6
-ucal.h ucal_setDefaultTimeZone ICU 2.6
-ucat.h u_catclose ICU 2.6
-ucat.h u_catgets ICU 2.6
-ucat.h u_catopen ICU 2.6
-ucat.h u_nl_catd ICU 2.6
-uchar.h UHangulSyllableType ICU 2.6
-uchar.h UBLOCK_NO_BLOCK ICU 2.6
-uchar.h UBLOCK_LIMBU ICU 2.6
-uchar.h UBLOCK_TAI_LE ICU 2.6
-uchar.h UBLOCK_KHMER_SYMBOLS ICU 2.6
-uchar.h UBLOCK_PHONETIC_EXTENSIONS ICU 2.6
-uchar.h UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS ICU 2.6
-uchar.h UBLOCK_YIJING_HEXAGRAM_SYMBOLS ICU 2.6
-uchar.h UBLOCK_LINEAR_B_SYLLABARY ICU 2.6
-uchar.h UBLOCK_LINEAR_B_IDEOGRAMS ICU 2.6
-uchar.h UBLOCK_AEGEAN_NUMBERS ICU 2.6
-uchar.h UBLOCK_UGARITIC ICU 2.6
-uchar.h UBLOCK_SHAVIAN ICU 2.6
-uchar.h UBLOCK_OSMANYA ICU 2.6
-uchar.h UBLOCK_CYPRIOT_SYLLABARY ICU 2.6
-uchar.h UBLOCK_TAI_XUAN_JING_SYMBOLS ICU 2.6
-uchar.h UBLOCK_VARIATION_SELECTORS_SUPPLEMENT ICU 2.6
-uchar.h UHangulSyllableType ICU 2.6
-uchar.h U_JG_FE ICU 2.6
-uchar.h U_JG_KHAPH ICU 2.6
-uchar.h U_JG_ZHAIN ICU 2.6
-uchar.h UCHAR_CASE_SENSITIVE ICU 2.6
-uchar.h UCHAR_HANGUL_SYLLABLE_TYPE ICU 2.6
-uchar.h u_isISOControl ICU 2.6
-uchar.h u_isJavaSpaceChar ICU 2.6
-uchar.h u_isblank ICU 2.6
-uchar.h u_isgraph ICU 2.6
-uchar.h u_ispunct ICU 2.6
-uchar.h u_isxdigit ICU 2.6
-uclean.h UMTX ICU 2.8
-uclean.h UMemAllocFn ICU 2.8
-uclean.h UMemFreeFn ICU 2.8
-uclean.h UMemReallocFn ICU 2.8
-uclean.h UMtxAtomicFn ICU 2.8
-uclean.h UMtxFn ICU 2.8
-uclean.h UMtxInitFn ICU 2.8
-uclean.h u_init ICU 2.6
-uclean.h u_setAtomicIncDecFunctions ICU 2.8
-uclean.h u_setMemoryFunctions ICU 2.8
-uclean.h u_setMutexFunctions ICU 2.8
-ucnv.h UCNV_GET_MAX_BYTES_FOR_STRING ICU 2.8
-ucnv.h UConverterUnicodeSet ICU 2.6
-ucnv.h UConverterUnicodeSet ICU 2.6
-ucnv.h UCNV_ROUNDTRIP_SET ICU 2.6
-ucnv.h UCNV_SET_COUNT ICU 2.6
-ucnv.h ucnv_convertEx ICU 2.6
-ucnv.h ucnv_fromAlgorithmic ICU 2.6
-ucnv.h ucnv_getUnicodeSet ICU 2.6
-ucnv.h ucnv_toAlgorithmic ICU 2.6
-ucol.h ucol_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-ucol.h ucol_getUCAVersion ICU 2.8
-ucol.h ucol_nextSortKeyPart ICU 2.6
-ucol.h ucol_strcollIter ICU 2.6
-ucoleitr.h ucol_primaryOrder ICU 2.6
-ucoleitr.h ucol_secondaryOrder ICU 2.6
-ucoleitr.h ucol_tertiaryOrder ICU 2.6
-uconfig.h UCONFIG_NO_IDNA ICU 2.6
-uconfig.h UCONFIG_NO_NORMALIZATION ICU 2.6
-uconfig.h UCONFIG_NO_SERVICE ICU 2.8
-ucurr.h UCurrNameStyle ICU 2.6
-ucurr.h UCurrNameStyle ICU 2.6
-ucurr.h UCURR_SYMBOL_NAME ICU 2.6
-ucurr.h UCURR_LONG_NAME ICU 2.6
-ucurr.h ucurr_forLocale ICU 2.8
-ucurr.h ucurr_getDefaultFractionDigits ICU 3.0
-ucurr.h ucurr_getName ICU 2.6
-ucurr.h ucurr_getRoundingIncrement ICU 3.0
-ucurr.h ucurr_register ICU 2.6
-udat.h UDateFormatField ICU 3.0
-udat.h UDateFormatField ICU 3.0
-udat.h UDAT_ERA_FIELD ICU 3.0
-udat.h UDAT_YEAR_FIELD ICU 3.0
-udat.h UDAT_MONTH_FIELD ICU 3.0
-udat.h UDAT_DATE_FIELD ICU 3.0
-udat.h UDAT_HOUR_OF_DAY1_FIELD ICU 3.0
-udat.h UDAT_HOUR_OF_DAY0_FIELD ICU 3.0
-udat.h UDAT_MINUTE_FIELD ICU 3.0
-udat.h UDAT_SECOND_FIELD ICU 3.0
-udat.h UDAT_FRACTIONAL_SECOND_FIELD ICU 3.0
-udat.h UDAT_DAY_OF_WEEK_FIELD ICU 3.0
-udat.h UDAT_DAY_OF_YEAR_FIELD ICU 3.0
-udat.h UDAT_DAY_OF_WEEK_IN_MONTH_FIELD ICU 3.0
-udat.h UDAT_WEEK_OF_YEAR_FIELD ICU 3.0
-udat.h UDAT_WEEK_OF_MONTH_FIELD ICU 3.0
-udat.h UDAT_AM_PM_FIELD ICU 3.0
-udat.h UDAT_HOUR1_FIELD ICU 3.0
-udat.h UDAT_HOUR0_FIELD ICU 3.0
-udat.h UDAT_TIMEZONE_FIELD ICU 3.0
-udat.h UDAT_YEAR_WOY_FIELD ICU 3.0
-udat.h UDAT_DOW_LOCAL_FIELD ICU 3.0
-udat.h UDAT_EXTENDED_YEAR_FIELD ICU 3.0
-udat.h UDAT_JULIAN_DAY_FIELD ICU 3.0
-udat.h UDAT_MILLISECONDS_IN_DAY_FIELD ICU 3.0
-udat.h UDAT_TIMEZONE_RFC_FIELD ICU 3.0
-udat.h UDAT_FIELD_COUNT ICU 3.0
-udat.h udat_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-uidna.h UIDNA_ALLOW_UNASSIGNED ICU 2.6
-uidna.h UIDNA_DEFAULT ICU 2.6
-uidna.h UIDNA_USE_STD3_RULES ICU 2.6
-uidna.h uidna_IDNToASCII ICU 2.6
-uidna.h uidna_IDNToUnicode ICU 2.6
-uidna.h uidna_compare ICU 2.6
-uidna.h uidna_toASCII ICU 2.6
-uidna.h uidna_toUnicode ICU 2.6
-uiter.h UITER_NO_STATE ICU 2.6
-uiter.h UCharIteratorGetState ICU 2.6
-uiter.h UCharIteratorSetState ICU 2.6
-uiter.h @1 ICU 2.6
-uiter.h UITER_UNKNOWN_INDEX ICU 2.6
-uiter.h uiter_getState ICU 2.6
-uiter.h uiter_setState ICU 2.6
-uiter.h uiter_setUTF16BE ICU 2.6
-uiter.h uiter_setUTF8 ICU 2.6
-uloc.h ULOC_KEYWORDS_CAPACITY ICU 2.8
-uloc.h ULOC_KEYWORD_AND_VALUES_CAPACITY ICU 2.8
-uloc.h ULOC_KEYWORD_ASSIGN ICU 2.8
-uloc.h ULOC_KEYWORD_ITEM_SEPARATOR ICU 2.8
-uloc.h ULOC_KEYWORD_SEPARATOR ICU 2.8
-uloc.h ULOC_SCRIPT_CAPACITY ICU 2.8
-uloc.h uloc_getBaseName ICU 2.8
-uloc.h uloc_getDisplayKeyword ICU 2.8
-uloc.h uloc_getDisplayKeywordValue ICU 2.8
-uloc.h uloc_getDisplayScript ICU 2.8
-uloc.h uloc_getKeywordValue ICU 2.8
-uloc.h uloc_getScript ICU 2.8
-uloc.h uloc_openKeywords ICU 2.8
-ulocdata.h UMeasurementSystem ICU 2.8
-ulocdata.h UMeasurementSystem ICU 2.8
-ulocdata.h ulocdata_getExemplarSet ICU 2.8
-ulocdata.h ulocdata_getMeasurementSystem ICU 2.8
-ulocdata.h ulocdata_getPaperSize ICU 2.8
-umachine.h INT64_C ICU 2.8
-umachine.h UINT64_C ICU 2.8
-umsg.h umsg_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-unistr.h operator+ ICU 2.8
-unorm.h UNORM_COMPARE_NORM_OPTIONS_SHIFT ICU 2.6
-unorm.h @2 ICU 2.6
-unorm.h UNORM_UNICODE_3_2 ICU 2.6
-unorm.h unorm_isNormalizedWithOptions ICU 2.6
-unorm.h unorm_quickCheckWithOptions ICU 2.6
-unum.h UNUM_MIN_SIGNIFICANT_DIGITS ICU 3.0
-unum.h UNUM_MAX_SIGNIFICANT_DIGITS ICU 3.0
-unum.h UNUM_LENIENT_PARSE ICU 3.0
-unum.h UNUM_PATTERN_DECIMAL ICU 3.0
-unum.h UNUM_ORDINAL ICU 3.0
-unum.h UNUM_DURATION ICU 3.0
-unum.h UNUM_PATTERN_RULEBASED ICU 3.0
-unum.h UNUM_SIGNIFICANT_DIGIT_SYMBOL ICU 3.0
-unum.h UNUM_DEFAULT_RULESET ICU 3.0
-unum.h UNUM_PUBLIC_RULESETS ICU 3.0
-unum.h unum_getLocaleByType ICU 2.8 likely to change in ICU 3.0, based on feedback
-unum.h unum_parseInt64 ICU 2.8
-uobject.h U_HAVE_PLACEMENT_NEW ICU 2.6
-uregex.h URegularExpression ICU 3.0
-uregex.h UREGEX_CANON_EQ ICU 2.4
-uregex.h UREGEX_UWORD ICU 2.8
-uregex.h uregex_appendReplacement ICU 3.0
-uregex.h uregex_appendTail ICU 3.0
-uregex.h uregex_clone ICU 3.0
-uregex.h uregex_close ICU 3.0
-uregex.h uregex_end ICU 3.0
-uregex.h uregex_find ICU 3.0
-uregex.h uregex_findNext ICU 3.0
-uregex.h uregex_flags ICU 3.0
-uregex.h uregex_getText ICU 3.0
-uregex.h uregex_group ICU 3.0
-uregex.h uregex_groupCount ICU 3.0
-uregex.h uregex_lookingAt ICU 3.0
-uregex.h uregex_matches ICU 3.0
-uregex.h uregex_open ICU 3.0
-uregex.h uregex_openC ICU 3.0
-uregex.h uregex_pattern ICU 3.0
-uregex.h uregex_replaceAll ICU 3.0
-uregex.h uregex_replaceFirst ICU 3.0
-uregex.h uregex_reset ICU 3.0
-uregex.h uregex_setText ICU 3.0
-uregex.h uregex_split ICU 3.0
-uregex.h uregex_start ICU 3.0
-ures.h URES_NONE ICU 2.6
-ures.h URES_STRING ICU 2.6
-ures.h URES_BINARY ICU 2.6
-ures.h URES_TABLE ICU 2.6
-ures.h URES_ALIAS ICU 2.6
-ures.h URES_INT ICU 2.6
-ures.h URES_ARRAY ICU 2.6
-ures.h URES_INT_VECTOR ICU 2.6
-ures.h ures_getLocaleByType ICU 2.8
-uscript.h USCRIPT_CANADIAN_ABORIGINAL ICU 2.6
-uset.h uset_addAll ICU 2.6
-uset.h uset_applyPattern ICU 2.8
-usprep.h USPREP_ALLOW_UNASSIGNED ICU 2.8
-usprep.h USPREP_DEFAULT ICU 2.8
-usprep.h UStringPrepProfile ICU 2.8
-usprep.h usprep_close ICU 2.8
-usprep.h usprep_open ICU 2.8
-usprep.h usprep_prepare ICU 2.8
-ustring.h u_strCompareIter ICU 2.6
-utf.h U_IS_BMP ICU 2.8
-utf.h U_IS_SUPPLEMENTARY ICU 2.8
-utrace.h UTraceData ICU 2.8
-utrace.h UTraceEntry ICU 2.8
-utrace.h UTraceExit ICU 2.8
-utrace.h UTraceFunctionNumber ICU 2.8
-utrace.h UTraceLevel ICU 2.8
-utrace.h UTraceFunctionNumber ICU 2.8
-utrace.h UTraceLevel ICU 2.8
-utrace.h UTRACE_OFF ICU 2.8
-utrace.h UTRACE_ERROR ICU 2.8
-utrace.h UTRACE_WARNING ICU 2.8
-utrace.h UTRACE_OPEN_CLOSE ICU 2.8
-utrace.h UTRACE_INFO ICU 2.8
-utrace.h UTRACE_VERBOSE ICU 2.8
-utrace.h utrace_format ICU 2.8
-utrace.h utrace_functionName ICU 2.8
-utrace.h utrace_getFunctions ICU 2.8
-utrace.h utrace_getLevel ICU 2.8
-utrace.h utrace_setFunctions ICU 2.8
-utrace.h utrace_setLevel ICU 2.8
-utrace.h utrace_vformat ICU 2.8
-utrans.h utrans_getUnicodeID ICU 2.8
-utrans.h utrans_openIDs ICU 2.8
-utrans.h utrans_openU ICU 2.8
-utrans.h utrans_unregisterID ICU 2.8
-utypes.h U_LAYOUTEX_API ICU 2.6
-uversion.h U_ICU_VERSION_MINOR_NUM ICU 2.6
-uversion.h U_ICU_VERSION_SHORT ICU 2.6
-uversion.h U_ICU_VERSION_SUFFIX ICU 2.6
-BreakIterator getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-Calendar add ICU 2.6.
-Calendar clear ICU 2.6.
-Calendar fieldDifference ICU 2.6.
-Calendar get ICU 2.6.
-Calendar getActualMaximum ICU 2.6.
-Calendar getActualMinimum ICU 2.6.
-Calendar getFirstDayOfWeek ICU 2.6
-Calendar getGreatestMinimum ICU 2.6.
-Calendar getLeastMaximum ICU 2.6.
-Calendar getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-Calendar getMaximum ICU 2.6.
-Calendar getMinimum ICU 2.6.
-Calendar internalSet ICU 2.6.
-Calendar isSet ICU 2.6.
-Calendar roll ICU 2.6.
-Calendar roll ICU 2.6.
-Calendar set ICU 2.6.
-Calendar setFirstDayOfWeek ICU 2.6.
-ChoiceFormat format ICU 2.8
-Collator compare ICU 2.6
-Collator compare ICU 2.6
-Collator compare ICU 2.6
-Collator getAvailableLocales ICU 2.6
-Collator registerFactory ICU 2.6
-Collator registerInstance ICU 2.6
-Collator unregister ICU 2.6
-CollatorFactory (null) ICU 2.6
-CollatorFactory createCollator ICU 2.6
-CollatorFactory getDisplayName ICU 2.6
-CollatorFactory getSupportedIDs ICU 2.6
-CollatorFactory visible ICU 2.6
-DateFormatSymbols getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-DecimalFormat format ICU 2.8
-DecimalFormat format ICU 2.8
-DecimalFormat getMaximumSignificantDigits ICU 3.0
-DecimalFormat getMinimumSignificantDigits ICU 3.0
-DecimalFormat setCurrency ICU 3.0
-DecimalFormat setMaximumSignificantDigits ICU 3.0
-DecimalFormat setMinimumSignificantDigits ICU 3.0
-DecimalFormatSymbols kSignificantDigitSymbol ICU 3.0
-DecimalFormatSymbols getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-FieldPosition clone ICU 2.8
-Format getLocale ICU 2.8 likely to change in ICU 3.0, based on feedback
-Formattable kInt64 ICU 2.8
-Formattable Formattable ICU 2.8
-Formattable clone ICU 2.8
-Formattable getArray ICU 2.8
-Formattable getDate ICU 2.8
-Formattable getDouble ICU 2.8
-Formattable getInt64 ICU 2.8
-Formattable getInt64 ICU 2.8
-Formattable getString ICU 2.8
-Formattable getString ICU 2.8
-Formattable getString ICU 2.8
-Formattable setInt64 ICU 2.8
-GregorianCalendar getActualMaximum ICU 2.6
-GregorianCalendar getActualMinimum ICU 3.0
-GregorianCalendar roll ICU 2.6.
-Locale clone ICU 2.8
-Locale createKeywords ICU 2.8
-Locale getBaseName ICU 2.8
-Locale getDisplayScript ICU 2.8
-Locale getDisplayScript ICU 2.8
-Locale getKeywordValue ICU 2.8
-Locale getScript ICU 2.8
-Normalizer isNormalized ICU 2.6
-Normalizer quickCheck ICU 2.6
-NumberFormat format ICU 2.8
-NumberFormat format ICU 2.8
-NumberFormat getAvailableLocales ICU 2.6
-NumberFormat getCurrency ICU 2.6
-NumberFormat registerFactory ICU 2.6
-NumberFormat setCurrency ICU 3.0
-NumberFormat unregister ICU 2.6
-NumberFormatFactory createFormat ICU 2.6
-NumberFormatFactory getSupportedIDs ICU 2.6
-NumberFormatFactory visible ICU 2.6
-ParsePosition clone ICU 2.8
-RegexMatcher RegexMatcher ICU 2.6
-RegexMatcher RegexMatcher ICU 2.6
-RegexMatcher lookingAt ICU 2.8
-RegexMatcher matches ICU 2.8
-RegexMatcher reset ICU 2.8
-RegexMatcher split ICU 2.6
-RegexPattern compile ICU 2.6
-RegexPattern matcher ICU 2.6
-Replaceable clone ICU 2.6
-ResourceBundle clone ICU 2.8
-ResourceBundle getLocale ICU 2.8
-RuleBasedBreakIterator RuleBasedBreakIterator ICU 2.8
-RuleBasedBreakIterator getRuleStatusVec ICU 3.0
-RuleBasedCollator compare ICU 2.6
-RuleBasedCollator compare ICU 2.6
-RuleBasedCollator compare ICU 2.6
-RuleBasedNumberFormat getDefaultRuleSetName ICU 3.0
-RuleBasedNumberFormat setDefaultRuleSet ICU 2.6
-SimpleNumberFormatFactory SimpleNumberFormatFactory ICU 2.6
-SimpleNumberFormatFactory getSupportedIDs ICU 2.6
-SimpleNumberFormatFactory visible ICU 2.6
-SimpleNumberFormatFactory _id ICU 2.6
-SimpleNumberFormatFactory _visible ICU 2.6
-SimpleTimeZone getOffset ICU 2.8
-StringEnumeration StringEnumeration ICU 2.8
-StringEnumeration clone ICU 2.8
-StringEnumeration ensureCharsCapacity ICU 2.8
-StringEnumeration setChars ICU 2.8
-StringEnumeration chars ICU 2.8
-StringEnumeration charsBuffer ICU 2.8
-StringEnumeration charsCapacity ICU 2.8
-StringEnumeration unistr ICU 2.8
-StringSearch clone ICU 2.8
-SymbolTable (null) ICU 2.8
-TimeZone getOffset ICU 2.8
-Transliterator countElements ICU 3.0
-Transliterator getAvailableIDs ICU 3.0
-Transliterator getElement ICU 3.0
-UCharIterator getState ICU 2.6
-UCharIterator setState ICU 2.6
-UMemory operator delete ICU 2.6
-UMemory operator new ICU 2.6
-UnicodeSet UnicodeSet ICU 2.8
-UnicodeSet applyPattern ICU 2.8
-UnicodeString clone ICU 2.6
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/ObsoleteApi.txt b/Build/source/libs/icu-xetex/tools/gendraft/ObsoleteApi.txt
deleted file mode 100644
index 319a98ef252..00000000000
--- a/Build/source/libs/icu-xetex/tools/gendraft/ObsoleteApi.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-DateFormat EField ICU 3.4 use UDateFormatField instead, since this API will be
-ICULayoutEngine (null) ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine ~ICULayoutEngine ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine countGlyphs ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine createInstance ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getCharIndices ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getCharIndices ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getDynamicClassID ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getGlyphPosition ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getGlyphPositions ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getGlyphs ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine getStaticClassID ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine layoutChars ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-ICULayoutEngine layoutString ICU 3.0. Use LayoutEngine.h instead since this API will be removed in that release.
-MessageFormat EFormatNumber ICU 3.0. The 10-argument limit was removed as of ICU 2.6,
-MessageFormat kMaxFormat ICU 3.0. The 10-argument limit was removed as of ICU 2.6,
-Transliterator countAvailableIDs ICU 3.4 use getAvailableIDs() instead
-Transliterator getAvailableID ICU 3.4 use getAvailableIDs() instead
-
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/exclude.txt b/Build/source/libs/icu-xetex/tools/gendraft/exclude.txt
new file mode 100644
index 00000000000..9f5c31988a2
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/gendraft/exclude.txt
@@ -0,0 +1,7 @@
+#*
+#*******************************************************************************
+#* Copyright (C) 2006, International Business Machines
+#* Corporation and others. All Rights Reserved.
+#*******************************************************************************
+#*
+# file that contains function names that need to be excluded from generation \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/gendraft.pl b/Build/source/libs/icu-xetex/tools/gendraft/gendraft.pl
deleted file mode 100644
index 06ee2366900..00000000000
--- a/Build/source/libs/icu-xetex/tools/gendraft/gendraft.pl
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/perl
-#*
-#*******************************************************************************
-#* Copyright (C) 2004, International Business Machines
-#* Corporation and others. All Rights Reserved.
-#*******************************************************************************
-#*
-#* file name: gendraft.pl
-#* encoding: US-ASCII
-#* tab size: 8 (not used)
-#* indentation:4
-#*
-#* Created by: Ram Viswanadha
-#*
-#* This tool filters the DraftAPI txt file generated by Doxygen and generates udarft.h
-#* udeprctd.h and uobslete.h
-#*
-
-use File::Find;
-use File::Basename;
-use IO::File;
-use Cwd;
-use File::Copy;
-use Getopt::Long;
-use File::Path;
-use File::Copy;
-
-$draftHeaderName = "udraft.h";
-$draftAppend = "DRAFT_API_DO_NOT_USE";
-$draftDefine = "U_HIDE_DRAFT_API";
-
-$deprecatedHeaderName = "udeprctd.h";
-$deprecatedAppend = "DEPRECATED_API_DO_NOT_USE";
-$deprecatedDefine = "U_HIDE_DEPRECATED_API";
-
-$obsoleteHeaderName = "uobslete.h";
-$obsoleteAppend = "OBSOLETE_API_DO_NOT_USE";
-$obsoleteDefine = "U_HIDE_OBSOLETE_API";
-
-$versionAppend="";
-
-#run the program
-main();
-
-#---------------------------------------------------------------------
-# The main program
-
-sub main(){
- GetOptions(
- "--draft-file=s" => \$draftFile,
- "--deprecated-file=s" => \$deprecatedFile,
- "--obsolete-file=s" => \$obsoleteFile,
- "--destdir=s" => \$destDir,
- "--version=s" => \$version,
- );
- usage() unless defined $draftFile;
- usage() unless defined $deprecatedFile;
- usage() unless defined $obsoleteFile;
- usage() unless defined $destDir;
- usage() unless defined $version;
-
- $versionAppend = $version;
- $versionAppend=~ s/\./_/;
-
- writeFile($draftFile, $draftHeaderName, $destDir, $draftAppend, $draftDefine);
- writeFile($deprecatedFile, $deprecatedHeaderName, $destDir, $deprecatedAppend, $deprecatedDefine);
- writeFile($obsoleteFile, $obsoleteHeaderName, $destDir, $obsoleteAppend, $obsoleteDefine);
-}
-
-#-----------------------------------------------------------------------
-sub getHeaderDef{
- ($headerName) = @_;
- $headerDef = uc($headerName); # this is building the constant for #define
- $headerDef =~ s/\./_/;
- return $headerDef;
-}
-
-#-----------------------------------------------------------------------
-sub writeFile{
- ($inFileName,$outFileName,$destDir, $symbolAppend, $symbolDef) = @_;
-
- $outFN = $destDir."/".$outFileName;
-
- $inFH = IO::File->new($inFileName,"r")
- or die "could not open the file $infile for reading: $! \n";
- $outFH = IO::File->new($outFN,"w")
- or die "could not open the file $outfile for writing: $! \n";
-
- $headerDef = getHeaderDef($outFileName);
-
- printHeader($outFH, $outFileName, $headerDef, $symbolDef);
- parseWriteFile($inFH, $outFH, $symbolAppend);
- printFooter($outFH, $headerDef, $symbolDef);
- close($inFH);
- close($outFH);
-}
-
-#-----------------------------------------------------------------------
-sub printHeader{
- ($outFH, $headername, $HEADERDEF, $symbolDef) = @_;
-#We will print our copyright here + warnings
-print $outFH <<END_HEADER_COMMENT;
-/*
-*******************************************************************************
-* Copyright (C) 2004, International Business Machines
-* Corporation and others. All Rights Reserved.
-*******************************************************************************
-*
-* file name: $headername
-* encoding: US-ASCII
-* tab size: 8 (not used)
-* indentation:4
-*
-* Created by: gendraft.pl, a perl script written by Ram Viswanadha
-*
-* Contains data for commenting out APIs.
-* Gets included by umachine.h
-*
-* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT
-* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
-*/
-
-#ifndef $HEADERDEF
-#define $HEADERDEF
-
-#ifdef $symbolDef
-
-END_HEADER_COMMENT
-}
-
-#-----------------------------------------------------------------------
-sub parseWriteFile{
- ($inFH, $outFH, $symbolAppend) = @_;
- while (defined ($line = <$inFH>)){
- ($a,$b,$c) = split( /\t/, $line);
- #just process C APIs for now
- if($b =~ /^[uU]/){
- $realSymbol = $b."_".$versionAppend;
- $nonExSymbol = $b."_".$symbolAppend;
- print $outFH "#define ".$realSymbol." ".$nonExSymbol."\n";
- }
- }
-}
-
-#-----------------------------------------------------------------------
-sub printFooter{
-
- ($outFH, $headerDef, $symbolDef ) = @_;
-#print the footer
-print $outFH <<END_FOOTER;
-
-#endif /* $symbolDef */
-#endif /* $headerDef */
-
-END_FOOTER
-}
-#-----------------------------------------------------------------------
-sub usage {
- print << "END";
-Usage:
-gendraft.pl
-Options:
- --draft-file=<path and name of output file of Doxygen containing draft API symbols>
- --deprecated-file=<path and name of output file of Doxygen containing deprecated API symbols>
- --obsolete-file=<path and name of output file of Doxygen containing obsolete API symbols>
- --destdir=<directory>
- --version=<current version of ICU>
-
-e.g.: gendraft.pl --draft-file=c:\blah\DraftAPI.txt --deprecated-file=c:\blah\DeprecatedAPI.txt --obsolete-file=c:\blah\ObsoleteFile.txt --destdir=<icu>/source/common/unicode --version=2.8
-END
- exit(0);
-}
diff --git a/Build/source/libs/icu-xetex/tools/gendraft/genheaders.pl b/Build/source/libs/icu-xetex/tools/gendraft/genheaders.pl
new file mode 100755
index 00000000000..6f83b2dfa85
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/gendraft/genheaders.pl
@@ -0,0 +1,253 @@
+#!/usr/bin/perl
+#*
+#*******************************************************************************
+#* Copyright (C) 2006, International Business Machines
+#* Corporation and others. All Rights Reserved.
+#*******************************************************************************
+#*
+#* file name: genheaders.pl
+#* encoding: US-ASCII
+#* tab size: 8 (not used)
+#* indentation:4
+#*
+#* Created by: Ram Viswanadha
+#*
+#* This tool filters the deprecated.html and friends file generated by Doxygen and generates udarft.h
+#* udeprctd.h and uobslete.h
+#*
+
+use File::Find;
+use File::Basename;
+use IO::File;
+use Cwd;
+use File::Copy;
+use Getopt::Long;
+use File::Path;
+use File::Copy;
+
+$draftHeaderName = "udraft.h";
+$draftAppend = "DRAFT_API_DO_NOT_USE";
+$draftDefine = "U_HIDE_DRAFT_API";
+
+$deprecatedHeaderName = "udeprctd.h";
+$deprecatedAppend = "DEPRECATED_API_DO_NOT_USE";
+$deprecatedDefine = "U_HIDE_DEPRECATED_API";
+
+$obsoleteHeaderName = "uobslete.h";
+$obsoleteAppend = "OBSOLETE_API_DO_NOT_USE";
+$obsoleteDefine = "U_HIDE_OBSOLETE_API";
+
+$systemHeaderName = "usystem.h";
+$systemAppend = "SYSTEM_API_DO_NOT_USE";
+$systemDefine = "U_HIDE_SYSTEM_API";
+
+$internalHeaderName = "uintrnal.h";
+$internalAppend = "INTERNAL_API_DO_NOT_USE";
+$internalDefine = "U_HIDE_INTERNAL_API";
+
+$versionAppend="";
+#run the program
+main();
+
+#---------------------------------------------------------------------
+# The main program
+
+sub main(){
+ GetOptions(
+ "--srcdir=s" => \$srcDir,
+ "--destdir=s" => \$destDir,
+ "--version=s" => \$version,
+ "--exclusion-list=s" => \$exclude,
+ "--include-types" => \$includeTypes
+ );
+ usage() unless defined $srcDir;
+ usage() unless defined $destDir;
+ usage() unless defined $version;
+ usage() unless defined $exclude;
+ $draftFile = "$srcDir/draft.html";
+ $deprecatedFile = "$srcDir/deprecated.html";
+ $obsoleteFile = "$srcDir/obsolete.html";
+ $systemFile = "$srcDir/system.html";
+ $internalFile = "$srcDir/internal.html";
+
+ $versionAppend = $version;
+ $versionAppend=~ s/\./_/;
+ $excludeFH = IO::File->new($exclude,"r")
+ or die "could not open the file $exclude for reading: $! \n";
+ my %exclude;
+ while (defined ($line = <$excludeFH>)){
+ next if( $line =~ /^#/);
+ $line =~ s/^\s+//;
+ $line =~ s/\s+\n$//;
+ $exclude{$line}="EXCLUDE";
+ }
+
+ writeFile($draftFile, $draftHeaderName, $destDir, $draftAppend, $draftDefine, \%exclude);
+ writeFile($deprecatedFile, $deprecatedHeaderName, $destDir, $deprecatedAppend, $deprecatedDefine, \%exclude);
+ writeFile($obsoleteFile, $obsoleteHeaderName, $destDir, $obsoleteAppend, $obsoleteDefine, \%exclude);
+ writeFile($systemFile, $systemHeaderName, $destDir, $systemAppend, $systemDefine, \%exclude);
+ writeFile($internalFile, $internalHeaderName, $destDir, $internalAppend, $internalDefine, \%exclude);
+}
+
+#-----------------------------------------------------------------------
+sub getHeaderDef{
+ ($headerName) = @_;
+ $headerDef = uc($headerName); # this is building the constant for #define
+ $headerDef =~ s/\./_/;
+ return $headerDef;
+}
+
+#-----------------------------------------------------------------------
+sub writeFile{
+ ($infile,$outfile,$destDir, $symbolAppend, $symbolDef, $exclude) = @_;
+
+ $headerDef = getHeaderDef($outfile);
+
+ $outfile = $destDir."/".$outfile;
+
+ $inFH = IO::File->new($infile,"r")
+ or die "could not open the file $infile for reading: $! \n";
+ $outFH = IO::File->new($outfile,"w")
+ or die "could not open the file $outfile for writing: $! \n";
+
+ #print "$headerDef>>> $outfile\n";
+ printHeader($outFH, $outFileName, $headerDef, $symbolDef);
+ parseWriteFile($inFH, $outFH, $symbolAppend, $exclude);
+ printFooter($outFH, $headerDef, $symbolDef);
+ close($inFH);
+ close($outFH);
+}
+
+#-----------------------------------------------------------------------
+sub printHeader{
+ ($outFH, $headername, $HEADERDEF, $symbolDef) = @_;
+ ($DAY, $MONTH, $YEAR) = (localtime)[3,4,5];
+ $YEAR += 1900;
+#We will print our copyright here + warnings
+print $outFH <<END_HEADER_COMMENT;
+/*
+*******************************************************************************
+* Copyright (C) 2004-$YEAR, International Business Machines
+* Corporation and others. All Rights Reserved.
+*******************************************************************************
+*
+* file name: $headername
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* Created by: genheaders.pl, a perl script written by Ram Viswanadha
+*
+* Contains data for commenting out APIs.
+* Gets included by umachine.h
+*
+* THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW WHAT
+* YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
+*/
+
+#ifndef $HEADERDEF
+#define $HEADERDEF
+
+#ifdef $symbolDef
+
+END_HEADER_COMMENT
+}
+
+#-----------------------------------------------------------------------
+sub parseWriteFile{
+ ($inFH, $outFH, $symbolAppend, $exclude) = @_;
+ %disableRenaming;
+ %enableRenaning;
+ while (defined ($line = <$inFH>)){
+ #just process C APIs for now
+ if($line =~ /\<dt\>/ ){
+ #special cases
+ if( ($line =~ /LEUnicode/)|| ($line =~ /LanguageCodes/) ||
+ ($line =~ /ScriptCodes/) || ($line =~ /\:+/) ||
+ ($line =~ /Class/) ){
+ next;
+ }
+ #<dt>Global <a class="el" href="utrans_8h.html#a21">utrans_unregister</a> </dt>
+ #<dt>Global <a class="el" href="classUnicodeString.html#w1w0">UnicodeString::kInvariant</a> </dt>
+ # the below regular expression works for both the above formats.
+ $line=~ m/\<dt\>.*\<a class=\".*\" href=\".*\">(.*)\<\/dt\>/;
+ my $value = $1;
+ $value =~ s/\<\/a\>\s*//g;
+ $value =~ s/^\s+//;
+ $value =~ s/\s+$//;
+ #print "$exclude->{$value}\n";
+ if($exclude->{$value} eq "EXCLUDE"){
+ #print "$value $exclude->{$value}\n";
+ next;
+ }
+ #print "$value $realSymbol $nonExSymbol\n";
+ next if(isStringAcceptable($value)==1);
+ $realSymbol = $value."_".$versionAppend;
+ $nonExSymbol = $value."_".$symbolAppend;
+ $disableRenaming{$value} = $nonExSymbol;
+ $enableRenaming{$realSymbol} = $nonExSymbol;
+ #print "$value $realSymbol $nonExSymbol\n";
+
+ }
+ }
+ print "size of disableRenaming: " . keys( %disableRenaming) . ".\n";
+ print "size of enableRenaming: " . keys( %enableRenaming) . ".\n";
+ print $outFH "# if U_DISABLE_RENAMING\n";
+ foreach $key (sort (keys(%disableRenaming))) {
+ print $outFH "# define $key $disableRenaming{$key}\n";
+ delete($disableRenaming{$key});
+ }
+ print $outFH "# else\n";
+ foreach $key (sort (keys(%enableRenaming))) {
+ print $outFH "# define $key $enableRenaming{$key}\n";
+ delete($enableRenaming{$key});
+ }
+ print $outFH "# endif /* U_DISABLE_RENAMING */\n";
+}
+#-----------------------------------------------------------------------
+sub isStringAcceptable{
+ ($string) = @_;
+ @str = split(//, $string);
+ $ret = 1;
+ foreach $val (@str){
+ if(($val ne "_") && !($val =~ /[0-9A-Z]/)){
+ #print "$val\n";
+ $ret = 0;
+ }
+ }
+ #print "$string : $ret\n";
+ if(!(defined $includeTypes)){
+ if($ret==0 && $str[0] eq 'U'){
+ $ret=1;
+ }
+ }
+ return $ret;
+}
+
+#-----------------------------------------------------------------------
+sub printFooter{
+
+ ($outFH, $headerDef, $symbolDef ) = @_;
+#print the footer
+print $outFH <<END_FOOTER;
+
+#endif /* $symbolDef */
+#endif /* $headerDef */
+
+END_FOOTER
+}
+#-----------------------------------------------------------------------
+sub usage {
+ print << "END";
+Usage:
+gendraft.pl
+Options:
+ --srcdir=<directory>
+ --destdir=<directory>
+ --version=<current version of ICU>
+ --exclusion-list=<file name>
+ --include-types
+e.g.: genheaders.pl --srcdir=<icu>/source/common/docs/html --destdir=<icu>/source/common/unicode --version=2.8 --exclusion-list=exclude.txt
+END
+ exit(0);
+}
diff --git a/Build/source/libs/icu-xetex/tools/gennames/.cvsignore b/Build/source/libs/icu-xetex/tools/gennames/.cvsignore
index 89950c57f4c..d4ae7cf785a 100644
--- a/Build/source/libs/icu-xetex/tools/gennames/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/gennames/.cvsignore
@@ -5,4 +5,7 @@ Debug
Makefile
Release
gennames
-gennames.8
+gennames.[0-9]
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/gennames/Makefile.in b/Build/source/libs/icu-xetex/tools/gennames/Makefile.in
index 5882f479afa..46162adaffc 100644
--- a/Build/source/libs/icu-xetex/tools/gennames/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gennames/Makefile.in
@@ -1,9 +1,9 @@
## Makefile.in for ICU - tools/gennames
## Copyright (c) 1999-2005, International Business Machines Corporation and
## others. All Rights Reserved.
-## Steven R. Loomi
+## Steven R. Loomis
-## Install directory information
+## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
@@ -14,23 +14,23 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/gennames
-##
-
TARGET_STUB_NAME = gennames
SECTION = 8
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-ALL_MAN_FILES = $(MANX_FILES)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(ALL_MAN_FILES)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gennames.o
@@ -38,9 +38,8 @@ OBJECTS = gennames.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local\
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -53,24 +52,19 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
-install-man: $(MANX_FILES)
+install-man: $(MAN_FILES)
# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
dist-local:
-clean-local:
+clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(TARGET) $(OBJECTS)
@@ -84,7 +78,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -93,3 +93,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/gennames/gennames.8.in b/Build/source/libs/icu-xetex/tools/gennames/gennames.8.in
deleted file mode 100644
index 77c1eb4333a..00000000000
--- a/Build/source/libs/icu-xetex/tools/gennames/gennames.8.in
+++ /dev/null
@@ -1,85 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" gennames.8: manual page for the gennames utility
-.\"
-.\" Copyright (C) 2000 IBM, Inc. and others.
-.\"
-.TH GENNAMES 8 "13 November 2001" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B gennames
-\- compile Unicode code points names into a data file
-.SH SYNOPSIS
-.B gennames
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.BR "\-v\fP, \fB\-\-verbose"
-]
-[
-.BR "\-q\fP, \fB\-\-quiet"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-[
-.BI "\-u\fP, \fB\-\-unicode" " version"
-]
-[
-.BI "\-1\fP, \fB\-\-unicode1-names"
-]
-[
-.IR filename
-]
-.SH DESCRIPTION
-.B gennames
-reads the Unicode character database from
-.I filename
-and produce the file
-.I unames.dat
-in its destination directory.
-Optionally, Unicode 1.0 names can be chosen over Unicode 2.0 names for
-those code points whose names were changed for Unicode 2.0.
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.BR "\-v\fP, \fB\-\-verbose"
-Display extra informative messages during execution.
-.TP
-.BR "\-q\fP, \fB\-\-quiet"
-Do not display any message during execution.
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is specified by the environment variable
-.BR ICU_DATA ,
-or the location set when ICU was built if
-.B ICU_DATA
-is not set.
-.TP
-.BI "\-u\fP, \fB\-\-unicode" " version"
-Mark the character names as belong to the specified
-.I version
-of Unicode. The default version is 3.1.1.
-.TP
-.BI "\-1\fP, \fB\-\-unicode1-names"
-Store Unicode 1.0 names in addition of Unicode 2.0 names for
-those code points whose names were changed for Unicode 2.0.
-.SH ENVIRONMENT
-.TP 10
-.B ICU_DATA
-Specifies the directory containing ICU data. Defaults to
-.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
-Some tools in ICU depend on the presence of the trailing slash. It is thus
-important to make sure that it is present if
-.B ICU_DATA
-is set.
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2000-2001 IBM, Inc. and others.
-.SH SEE ALSO
-.BR genprops (8)
diff --git a/Build/source/libs/icu-xetex/tools/gennames/gennames.vcproj b/Build/source/libs/icu-xetex/tools/gennames/gennames.vcproj
index 23e2c3dc22f..e8d07feecab 100644
--- a/Build/source/libs/icu-xetex/tools/gennames/gennames.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gennames/gennames.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gennames.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gennames.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gennorm/Makefile.in b/Build/source/libs/icu-xetex/tools/gennorm/Makefile.in
index 39e54287a8d..c2000d22fc1 100644
--- a/Build/source/libs/icu-xetex/tools/gennorm/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gennorm/Makefile.in
@@ -11,16 +11,15 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/gennorm
TARGET_STUB_NAME = gennorm
SECTION = 8
-MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/gennorm
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(MAN_FILES)
@@ -28,7 +27,10 @@ CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gennorm.o store.o
@@ -36,9 +38,8 @@ OBJECTS = gennorm.o store.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -57,21 +58,9 @@ install-local: all-local install-man
# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
install-man: $(MAN_FILES)
# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
-# $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
@@ -89,7 +78,13 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
diff --git a/Build/source/libs/icu-xetex/tools/gennorm/gennorm.8.in b/Build/source/libs/icu-xetex/tools/gennorm/gennorm.8.in
deleted file mode 100644
index be5e690eb9f..00000000000
--- a/Build/source/libs/icu-xetex/tools/gennorm/gennorm.8.in
+++ /dev/null
@@ -1,114 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" gennorm.8: manual page for the gennorm utility
-.\"
-.\" Copyright (C) 2000-2001 IBM, Inc. and others.
-.\"
-.TH GENNORM 8 "16 January 2001" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B gennorm
-\- compile normalization data from the Unicode Character Database
-.SH SYNOPSIS
-.B gennorm
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.BR "\-v\fP, \fB\-\-verbose"
-]
-[
-.BI "\-u\fP, \fB\-\-unicode" " version"
-]
-[
-.BI "\-c\fP, \fB\-\-copyright"
-]
-[
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-[
-.I suffix
-]
-.SH DESCRIPTION
-.B gennorm
-reads some of the Unicode Character Database files and compiles their
-normalization information into a binary form.
-The resulting file,
-.BR unorm.dat ,
-can then be read directly by ICU, or used by
-.BR pkgdata (8)
-for incorporation into a larger archive or library.
-.LP
-The files read by
-.B gennorm
-are described in the
-.B FILES
-section. If
-.I suffix
-is passed on the command line, the names of these files will actually
-be changed to include a dash followed by
-.I suffix
-in their basename. For example, the file
-.B UnicodeData.txt
-would be looked for under the name
-.BR UnicodeData\-\fIsuffix\fP.txt .
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.BR "\-v\fP, \fB\-\-verbose"
-Display extra informative messages during execution.
-.TP
-.BI "\-u\fP, \fB\-\-unicode" " version"
-Specify which
-.I version
-of Unicode the Unicode Character Database refers to.
-Defaults to
-.BR 3.0.0 .
-.TP
-.BI "\-c\fP, \fB\-\-copyright"
-Include a copyright notice into the binary data.
-.TP
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-Set the source directory to
-.IR source .
-The default source directory is specified by the environment variable
-.BR ICU_DATA .
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is specified by the environment variable
-.BR ICU_DATA .
-.SH ENVIRONMENT
-.TP 10
-.B ICU_DATA
-Specifies the directory containing ICU data. Defaults to
-.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
-Some tools in ICU depend on the presence of the trailing slash. It is thus
-important to make sure that it is present if
-.B ICU_DATA
-is set.
-.SH FILES
-The following files are read by
-.B gennorm
-and are looked for in the
-.I source
-directory.
-.TP 20
-.B UnicodeData.txt
-The main file in the Unicode Character Database. Contains character
-properties, combining classes information, decompositions, names,
-etc.\|.\|..
-.TP
-.B DerivedNormalizationProperties.txt
-Derived properties useful in dealing with normalization forms.
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2000-2002 IBM, Inc. and others.
-.SH SEE ALSO
-.BR pkgdata (8)
diff --git a/Build/source/libs/icu-xetex/tools/gennorm/gennorm.vcproj b/Build/source/libs/icu-xetex/tools/gennorm/gennorm.vcproj
index a6baee6d37e..34fcc44cb8f 100644
--- a/Build/source/libs/icu-xetex/tools/gennorm/gennorm.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gennorm/gennorm.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gennorm.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gennorm.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gennorm/store.c b/Build/source/libs/icu-xetex/tools/gennorm/store.c
index 51dce75e1dd..e0e4051b9fe 100644
--- a/Build/source/libs/icu-xetex/tools/gennorm/store.c
+++ b/Build/source/libs/icu-xetex/tools/gennorm/store.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -1035,7 +1035,9 @@ reorderString(uint32_t *s, int32_t length) {
return (uint16_t)(((uint16_t)ccs[0]<<8)|ccs[length-1]);
}
+#if 0
static UBool combineAndQC[64]={ 0 };
+#endif
/*
* canonically reorder the up to two decompositions
@@ -1068,7 +1070,9 @@ postParseFn(void *context, uint32_t code, Norm *norm) {
}
/* see which combinations of combiningFlags and qcFlags are used for NFC/NFKC */
+#if 0
combineAndQC[(norm->qcFlags&0x33)|((norm->combiningFlags&3)<<2)]=1;
+#endif
if(norm->combiningFlags&1) {
if(norm->udataCC!=0) {
diff --git a/Build/source/libs/icu-xetex/tools/genpname/Makefile.in b/Build/source/libs/icu-xetex/tools/genpname/Makefile.in
index bd94865e075..3d1670d4236 100644
--- a/Build/source/libs/icu-xetex/tools/genpname/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genpname/Makefile.in
@@ -11,20 +11,26 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
-
## Build directory information
subdir = tools/genpname
TARGET_STUB_NAME = genpname
+SECTION = 8
+
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+
+
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genpname.o
@@ -32,9 +38,8 @@ OBJECTS = genpname.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -47,12 +52,16 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(MAN_FILES)
+all-local: $(TARGET)
install-local: all-local
# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+install-man: $(MAN_FILES)
+# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
dist-local:
clean-local:
@@ -71,6 +80,12 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
$(TARGET) : $(OBJECTS)
$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
diff --git a/Build/source/libs/icu-xetex/tools/genpname/SyntheticPropertyValueAliases.txt b/Build/source/libs/icu-xetex/tools/genpname/SyntheticPropertyValueAliases.txt
new file mode 100644
index 00000000000..48cd1bec495
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genpname/SyntheticPropertyValueAliases.txt
@@ -0,0 +1,62 @@
+########################################################################
+# Copyright (c) 2006-2006, International Business Machines
+# Corporation and others. All Rights Reserved.
+########################################################################
+# file name: SyntheticPropertyValueAliases.txt
+# encoding: US-ASCII
+# tab size: 8 (not used)
+# indentation: 4
+# created by: gensvpa.pl
+########################################################################
+
+# This file follows the format of PropertyValueAliases.txt
+# It contains synthetic property value aliases not present
+# in the UCD. Unlike PropertyValueAliases.txt, it should
+# NOT contain a version number.
+
+########################################################################
+# THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW
+# WHAT YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
+########################################################################
+
+# set the same names as short and long names to fit the syntax without
+# inventing names that we would have to support forever
+
+# Script (sc)
+
+sc ; Batk ; Batk
+sc ; Blis ; Blis
+sc ; Brah ; Brah
+sc ; Cham ; Cham
+sc ; Cirt ; Cirt
+sc ; Cyrs ; Cyrs
+sc ; Egyd ; Egyd
+sc ; Egyh ; Egyh
+sc ; Egyp ; Egyp
+sc ; Geok ; Geok
+sc ; Hans ; Hans
+sc ; Hant ; Hant
+sc ; Hmng ; Hmng
+sc ; Hung ; Hung
+sc ; Inds ; Inds
+sc ; Java ; Java
+sc ; Kali ; Kali
+sc ; Latf ; Latf
+sc ; Latg ; Latg
+sc ; Lepc ; Lepc
+sc ; Lina ; Lina
+sc ; Mand ; Mand
+sc ; Maya ; Maya
+sc ; Mero ; Mero
+sc ; Orkh ; Orkh
+sc ; Perm ; Perm
+sc ; Plrd ; Plrd
+sc ; Roro ; Roro
+sc ; Sara ; Sara
+sc ; Syre ; Syre
+sc ; Syrj ; Syrj
+sc ; Syrn ; Syrn
+sc ; Teng ; Teng
+sc ; Vaii ; Vaii
+sc ; Visp ; Visp
+sc ; Zxxx ; Zxxx
diff --git a/Build/source/libs/icu-xetex/tools/genpname/data.h b/Build/source/libs/icu-xetex/tools/genpname/data.h
index 6ea703f372d..9ca86836e49 100644
--- a/Build/source/libs/icu-xetex/tools/genpname/data.h
+++ b/Build/source/libs/icu-xetex/tools/genpname/data.h
@@ -1,5 +1,5 @@
/**
- * Copyright (C) 2002-2005, International Business Machines Corporation and
+ * Copyright (C) 2002-2006, International Business Machines Corporation and
* others. All Rights Reserved.
*
* MACHINE GENERATED FILE. !!! Do not edit manually !!!
@@ -11,18 +11,18 @@
* PropertyAliases.txt
* PropertyValueAliases.txt
*
- * Date: Mon May 30 11:27:13 2005
- * Unicode version: 4.1.0
+ * Date: Tue Jun 13 12:03:23 2006
+ * Unicode version: 5.0.0
* Script: preparse.pl
*/
-/* Unicode version 4.1.0 */
-const uint8_t VERSION_0 = 4;
-const uint8_t VERSION_1 = 1;
+/* Unicode version 5.0.0 */
+const uint8_t VERSION_0 = 5;
+const uint8_t VERSION_1 = 0;
const uint8_t VERSION_2 = 0;
const uint8_t VERSION_3 = 0;
-const int32_t STRING_COUNT = 735;
+const int32_t STRING_COUNT = 788;
/* to be sorted */
const AliasName STRING_TABLE[] = {
@@ -75,834 +75,887 @@ const AliasName STRING_TABLE[] = {
AliasName("BL", 46),
AliasName("BN", 47),
AliasName("BR", 48),
- AliasName("Basic_Latin", 49),
- AliasName("Beh", 50),
- AliasName("Below", 51),
- AliasName("Below_Left", 52),
- AliasName("Below_Right", 53),
- AliasName("Beng", 54),
- AliasName("Bengali", 55),
- AliasName("Beth", 56),
- AliasName("Bidi_C", 57),
- AliasName("Bidi_Class", 58),
- AliasName("Bidi_Control", 59),
- AliasName("Bidi_M", 60),
- AliasName("Bidi_Mirrored", 61),
- AliasName("Bidi_Mirroring_Glyph", 62),
- AliasName("Block", 63),
- AliasName("Block_Elements", 64),
- AliasName("Bopo", 65),
- AliasName("Bopomofo", 66),
- AliasName("Bopomofo_Extended", 67),
- AliasName("Boundary_Neutral", 68),
- AliasName("Box_Drawing", 69),
- AliasName("Brai", 70),
- AliasName("Braille", 71),
- AliasName("Braille_Patterns", 72),
- AliasName("Break_After", 73),
- AliasName("Break_Before", 74),
- AliasName("Break_Both", 75),
- AliasName("Break_Symbols", 76),
- AliasName("Bugi", 77),
- AliasName("Buginese", 78),
- AliasName("Buhd", 79),
- AliasName("Buhid", 80),
- AliasName("Byzantine_Musical_Symbols", 81),
- AliasName("C", 82),
- AliasName("CB", 83),
- AliasName("CJK_Compatibility", 84),
- AliasName("CJK_Compatibility_Forms", 85),
- AliasName("CJK_Compatibility_Ideographs", 86),
- AliasName("CJK_Compatibility_Ideographs_Supplement", 87),
- AliasName("CJK_Radicals_Supplement", 88),
- AliasName("CJK_Strokes", 89),
- AliasName("CJK_Symbols_and_Punctuation", 90),
- AliasName("CJK_Unified_Ideographs", 91),
- AliasName("CJK_Unified_Ideographs_Extension_A", 92),
- AliasName("CJK_Unified_Ideographs_Extension_B", 93),
- AliasName("CL", 94),
- AliasName("CM", 95),
- AliasName("CN", 96),
- AliasName("CR", 97),
- AliasName("CS", 98),
- AliasName("Canadian_Aboriginal", 99),
- AliasName("Canonical", 100),
- AliasName("Canonical_Combining_Class", 101),
- AliasName("Cans", 102),
- AliasName("Carriage_Return", 103),
- AliasName("Case_Folding", 104),
- AliasName("Case_Sensitive", 105),
- AliasName("Cased_Letter", 106),
- AliasName("Cc", 107),
- AliasName("Cf", 108),
- AliasName("Cher", 109),
- AliasName("Cherokee", 110),
- AliasName("Circle", 111),
- AliasName("Close", 112),
- AliasName("Close_Punctuation", 113),
- AliasName("Cn", 114),
- AliasName("Co", 115),
- AliasName("Combining_Diacritical_Marks", 116),
- AliasName("Combining_Diacritical_Marks_Supplement", 117),
- AliasName("Combining_Diacritical_Marks_for_Symbols", 118),
- AliasName("Combining_Half_Marks", 119),
- AliasName("Combining_Mark", 120),
- AliasName("Common", 121),
- AliasName("Common_Separator", 122),
- AliasName("Comp_Ex", 123),
- AliasName("Compat", 124),
- AliasName("Complex_Context", 125),
- AliasName("Connector_Punctuation", 126),
- AliasName("Contingent_Break", 127),
- AliasName("Control", 128),
- AliasName("Control_Pictures", 129),
- AliasName("Copt", 130),
- AliasName("Coptic", 131),
- AliasName("Cprt", 132),
- AliasName("Cs", 133),
- AliasName("Currency_Symbol", 134),
- AliasName("Currency_Symbols", 135),
- AliasName("Cypriot", 136),
- AliasName("Cypriot_Syllabary", 137),
- AliasName("Cyrillic", 138),
- AliasName("Cyrillic_Supplement", 139),
- AliasName("Cyrillic_Supplementary", 140),
- AliasName("Cyrl", 141),
- AliasName("D", 142),
- AliasName("DA", 143),
- AliasName("DB", 144),
- AliasName("DI", 145),
- AliasName("Dal", 146),
- AliasName("Dalath_Rish", 147),
- AliasName("Dash", 148),
- AliasName("Dash_Punctuation", 149),
- AliasName("De", 150),
- AliasName("Decimal", 151),
- AliasName("Decimal_Number", 152),
- AliasName("Decomposition_Type", 153),
- AliasName("Default_Ignorable_Code_Point", 154),
- AliasName("Dep", 155),
- AliasName("Deprecated", 156),
- AliasName("Deseret", 157),
- AliasName("Deva", 158),
- AliasName("Devanagari", 159),
- AliasName("Di", 160),
- AliasName("Dia", 161),
- AliasName("Diacritic", 162),
- AliasName("Digit", 163),
- AliasName("Dingbats", 164),
- AliasName("Double_Above", 165),
- AliasName("Double_Below", 166),
- AliasName("Dsrt", 167),
- AliasName("Dual_Joining", 168),
- AliasName("E", 169),
- AliasName("EN", 170),
- AliasName("ES", 171),
- AliasName("ET", 172),
- AliasName("EX", 173),
- AliasName("East_Asian_Width", 174),
- AliasName("Enclosed_Alphanumerics", 175),
- AliasName("Enclosed_CJK_Letters_and_Months", 176),
- AliasName("Enclosing_Mark", 177),
- AliasName("Ethi", 178),
- AliasName("Ethiopic", 179),
- AliasName("Ethiopic_Extended", 180),
- AliasName("Ethiopic_Supplement", 181),
- AliasName("European_Number", 182),
- AliasName("European_Separator", 183),
- AliasName("European_Terminator", 184),
- AliasName("Exclamation", 185),
- AliasName("Ext", 186),
- AliasName("Extend", 187),
- AliasName("ExtendNumLet", 188),
- AliasName("Extender", 189),
- AliasName("F", 190),
- AliasName("FO", 191),
- AliasName("False", 192),
- AliasName("Fe", 193),
- AliasName("Feh", 194),
- AliasName("Final", 195),
- AliasName("Final_Punctuation", 196),
- AliasName("Final_Semkath", 197),
- AliasName("Font", 198),
- AliasName("Format", 199),
- AliasName("Fraction", 200),
- AliasName("Full_Composition_Exclusion", 201),
- AliasName("Fullwidth", 202),
- AliasName("GCB", 203),
- AliasName("GL", 204),
- AliasName("Gaf", 205),
- AliasName("Gamal", 206),
- AliasName("General_Category", 207),
- AliasName("General_Category_Mask", 208),
- AliasName("General_Punctuation", 209),
- AliasName("Geometric_Shapes", 210),
- AliasName("Geor", 211),
- AliasName("Georgian", 212),
- AliasName("Georgian_Supplement", 213),
- AliasName("Glag", 214),
- AliasName("Glagolitic", 215),
- AliasName("Glue", 216),
- AliasName("Goth", 217),
- AliasName("Gothic", 218),
- AliasName("Gr_Base", 219),
- AliasName("Gr_Ext", 220),
- AliasName("Gr_Link", 221),
- AliasName("Grapheme_Base", 222),
- AliasName("Grapheme_Cluster_Break", 223),
- AliasName("Grapheme_Extend", 224),
- AliasName("Grapheme_Link", 225),
- AliasName("Greek", 226),
- AliasName("Greek_Extended", 227),
- AliasName("Greek_and_Coptic", 228),
- AliasName("Grek", 229),
- AliasName("Gujarati", 230),
- AliasName("Gujr", 231),
- AliasName("Gurmukhi", 232),
- AliasName("Guru", 233),
- AliasName("H", 234),
- AliasName("H2", 235),
- AliasName("H3", 236),
- AliasName("HY", 237),
- AliasName("Hah", 238),
- AliasName("Halfwidth", 239),
- AliasName("Halfwidth_and_Fullwidth_Forms", 240),
- AliasName("Hamza_On_Heh_Goal", 241),
- AliasName("Han", 242),
- AliasName("Hang", 243),
- AliasName("Hangul", 244),
- AliasName("Hangul_Compatibility_Jamo", 245),
- AliasName("Hangul_Jamo", 246),
- AliasName("Hangul_Syllable_Type", 247),
- AliasName("Hangul_Syllables", 248),
- AliasName("Hani", 249),
- AliasName("Hano", 250),
- AliasName("Hanunoo", 251),
- AliasName("He", 252),
- AliasName("Hebr", 253),
- AliasName("Hebrew", 254),
- AliasName("Heh", 255),
- AliasName("Heh_Goal", 256),
- AliasName("Heth", 257),
- AliasName("Hex", 258),
- AliasName("Hex_Digit", 259),
- AliasName("High_Private_Use_Surrogates", 260),
- AliasName("High_Surrogates", 261),
- AliasName("Hira", 262),
- AliasName("Hiragana", 263),
- AliasName("Hrkt", 264),
- AliasName("Hyphen", 265),
- AliasName("ID", 266),
- AliasName("IDC", 267),
- AliasName("IDS", 268),
- AliasName("IDSB", 269),
- AliasName("IDST", 270),
- AliasName("IDS_Binary_Operator", 271),
- AliasName("IDS_Trinary_Operator", 272),
- AliasName("ID_Continue", 273),
- AliasName("ID_Start", 274),
- AliasName("IN", 275),
- AliasName("IPA_Extensions", 276),
- AliasName("IS", 277),
- AliasName("ISO_Comment", 278),
- AliasName("Ideo", 279),
- AliasName("Ideographic", 280),
- AliasName("Ideographic_Description_Characters", 281),
- AliasName("Infix_Numeric", 282),
- AliasName("Inherited", 283),
- AliasName("Initial", 284),
- AliasName("Initial_Punctuation", 285),
- AliasName("Inseparable", 286),
- AliasName("Inseperable", 287),
- AliasName("Iota_Subscript", 288),
- AliasName("Isolated", 289),
- AliasName("Ital", 290),
- AliasName("JL", 291),
- AliasName("JT", 292),
- AliasName("JV", 293),
- AliasName("Join_C", 294),
- AliasName("Join_Causing", 295),
- AliasName("Join_Control", 296),
- AliasName("Joining_Group", 297),
- AliasName("Joining_Type", 298),
- AliasName("KA", 299),
- AliasName("KV", 300),
- AliasName("Kaf", 301),
- AliasName("Kana", 302),
- AliasName("Kana_Voicing", 303),
- AliasName("Kanbun", 304),
- AliasName("Kangxi_Radicals", 305),
- AliasName("Kannada", 306),
- AliasName("Kaph", 307),
- AliasName("Katakana", 308),
- AliasName("Katakana_Or_Hiragana", 309),
- AliasName("Katakana_Phonetic_Extensions", 310),
- AliasName("Khaph", 311),
- AliasName("Khar", 312),
- AliasName("Kharoshthi", 313),
- AliasName("Khmer", 314),
- AliasName("Khmer_Symbols", 315),
- AliasName("Khmr", 316),
- AliasName("Knda", 317),
- AliasName("Knotted_Heh", 318),
- AliasName("L", 319),
- AliasName("LC", 320),
- AliasName("LE", 321),
- AliasName("LF", 322),
- AliasName("LO", 323),
- AliasName("LOE", 324),
- AliasName("LRE", 325),
- AliasName("LRO", 326),
- AliasName("LV", 327),
- AliasName("LVT", 328),
- AliasName("LVT_Syllable", 329),
- AliasName("LV_Syllable", 330),
- AliasName("Lam", 331),
- AliasName("Lamadh", 332),
- AliasName("Lao", 333),
- AliasName("Laoo", 334),
- AliasName("Latin", 335),
- AliasName("Latin-1_Supplement", 336),
- AliasName("Latin_Extended-A", 337),
- AliasName("Latin_Extended-B", 338),
- AliasName("Latin_Extended_Additional", 339),
- AliasName("Latn", 340),
- AliasName("Lead_Canonical_Combining_Class", 341),
- AliasName("Leading_Jamo", 342),
- AliasName("Left", 343),
- AliasName("Left_Joining", 344),
- AliasName("Left_To_Right", 345),
- AliasName("Left_To_Right_Embedding", 346),
- AliasName("Left_To_Right_Override", 347),
- AliasName("Letter", 348),
- AliasName("Letter_Number", 349),
- AliasName("Letterlike_Symbols", 350),
- AliasName("Limb", 351),
- AliasName("Limbu", 352),
- AliasName("Linb", 353),
- AliasName("Line_Break", 354),
- AliasName("Line_Feed", 355),
- AliasName("Line_Separator", 356),
- AliasName("Linear_B", 357),
- AliasName("Linear_B_Ideograms", 358),
- AliasName("Linear_B_Syllabary", 359),
- AliasName("Ll", 360),
- AliasName("Lm", 361),
- AliasName("Lo", 362),
- AliasName("Logical_Order_Exception", 363),
- AliasName("Low_Surrogates", 364),
- AliasName("Lower", 365),
- AliasName("Lowercase", 366),
- AliasName("Lowercase_Letter", 367),
- AliasName("Lowercase_Mapping", 368),
- AliasName("Lt", 369),
- AliasName("Lu", 370),
- AliasName("M", 371),
- AliasName("ML", 372),
- AliasName("MN", 373),
- AliasName("Malayalam", 374),
- AliasName("Mandatory_Break", 375),
- AliasName("Mark", 376),
- AliasName("Math", 377),
- AliasName("Math_Symbol", 378),
- AliasName("Mathematical_Alphanumeric_Symbols", 379),
- AliasName("Mathematical_Operators", 380),
- AliasName("Maybe", 381),
- AliasName("Mc", 382),
- AliasName("Me", 383),
- AliasName("Medial", 384),
- AliasName("Meem", 385),
- AliasName("MidLetter", 386),
- AliasName("MidNum", 387),
- AliasName("Mim", 388),
- AliasName("Miscellaneous_Mathematical_Symbols-A", 389),
- AliasName("Miscellaneous_Mathematical_Symbols-B", 390),
- AliasName("Miscellaneous_Symbols", 391),
- AliasName("Miscellaneous_Symbols_and_Arrows", 392),
- AliasName("Miscellaneous_Technical", 393),
- AliasName("Mlym", 394),
- AliasName("Mn", 395),
- AliasName("Modifier_Letter", 396),
- AliasName("Modifier_Symbol", 397),
- AliasName("Modifier_Tone_Letters", 398),
- AliasName("Mong", 399),
- AliasName("Mongolian", 400),
- AliasName("Musical_Symbols", 401),
- AliasName("Myanmar", 402),
- AliasName("Mymr", 403),
- AliasName("N", 404),
- AliasName("NA", 405),
- AliasName("NChar", 406),
- AliasName("NFC_Inert", 407),
- AliasName("NFC_QC", 408),
- AliasName("NFC_Quick_Check", 409),
- AliasName("NFD_Inert", 410),
- AliasName("NFD_QC", 411),
- AliasName("NFD_Quick_Check", 412),
- AliasName("NFKC_Inert", 413),
- AliasName("NFKC_QC", 414),
- AliasName("NFKC_Quick_Check", 415),
- AliasName("NFKD_Inert", 416),
- AliasName("NFKD_QC", 417),
- AliasName("NFKD_Quick_Check", 418),
- AliasName("NK", 419),
- AliasName("NL", 420),
- AliasName("NR", 421),
- AliasName("NS", 422),
- AliasName("NSM", 423),
- AliasName("NU", 424),
- AliasName("Na", 425),
- AliasName("Name", 426),
- AliasName("Narrow", 427),
- AliasName("Nd", 428),
- AliasName("Neutral", 429),
- AliasName("New_Tai_Lue", 430),
- AliasName("Next_Line", 431),
- AliasName("Nl", 432),
- AliasName("No", 433),
- AliasName("No_Block", 434),
- AliasName("No_Joining_Group", 435),
- AliasName("Nobreak", 436),
- AliasName("Non_Joining", 437),
- AliasName("Noncharacter_Code_Point", 438),
- AliasName("None", 439),
- AliasName("Nonspacing_Mark", 440),
- AliasName("Nonstarter", 441),
- AliasName("Noon", 442),
- AliasName("Not_Applicable", 443),
- AliasName("Not_Reordered", 444),
- AliasName("Nu", 445),
- AliasName("Nukta", 446),
- AliasName("Number", 447),
- AliasName("Number_Forms", 448),
- AliasName("Numeric", 449),
- AliasName("Numeric_Type", 450),
- AliasName("Numeric_Value", 451),
- AliasName("Nun", 452),
- AliasName("OLetter", 453),
- AliasName("ON", 454),
- AliasName("OP", 455),
- AliasName("OV", 456),
- AliasName("Ogam", 457),
- AliasName("Ogham", 458),
- AliasName("Old_Italic", 459),
- AliasName("Old_Persian", 460),
- AliasName("Open_Punctuation", 461),
- AliasName("Optical_Character_Recognition", 462),
- AliasName("Oriya", 463),
- AliasName("Orya", 464),
- AliasName("Osma", 465),
- AliasName("Osmanya", 466),
- AliasName("Other", 467),
- AliasName("Other_Letter", 468),
- AliasName("Other_Neutral", 469),
- AliasName("Other_Number", 470),
- AliasName("Other_Punctuation", 471),
- AliasName("Other_Symbol", 472),
- AliasName("Overlay", 473),
- AliasName("P", 474),
- AliasName("PDF", 475),
- AliasName("PO", 476),
- AliasName("PR", 477),
- AliasName("Paragraph_Separator", 478),
- AliasName("Pat_Syn", 479),
- AliasName("Pat_WS", 480),
- AliasName("Pattern_Syntax", 481),
- AliasName("Pattern_White_Space", 482),
- AliasName("Pc", 483),
- AliasName("Pd", 484),
- AliasName("Pe", 485),
- AliasName("Pf", 486),
- AliasName("Phonetic_Extensions", 487),
- AliasName("Phonetic_Extensions_Supplement", 488),
- AliasName("Pi", 489),
- AliasName("Po", 490),
- AliasName("Pop_Directional_Format", 491),
- AliasName("Postfix_Numeric", 492),
- AliasName("Prefix_Numeric", 493),
- AliasName("Private_Use", 494),
- AliasName("Private_Use_Area", 495),
- AliasName("Ps", 496),
- AliasName("Punctuation", 497),
- AliasName("QMark", 498),
- AliasName("QU", 499),
- AliasName("Qaac", 500),
- AliasName("Qaai", 501),
- AliasName("Qaf", 502),
- AliasName("Qaph", 503),
- AliasName("Quotation", 504),
- AliasName("Quotation_Mark", 505),
- AliasName("R", 506),
- AliasName("RLE", 507),
- AliasName("RLO", 508),
- AliasName("Radical", 509),
- AliasName("Reh", 510),
- AliasName("Reversed_Pe", 511),
- AliasName("Right", 512),
- AliasName("Right_Joining", 513),
- AliasName("Right_To_Left", 514),
- AliasName("Right_To_Left_Embedding", 515),
- AliasName("Right_To_Left_Override", 516),
- AliasName("Runic", 517),
- AliasName("Runr", 518),
- AliasName("S", 519),
- AliasName("SA", 520),
- AliasName("SB", 521),
- AliasName("SD", 522),
- AliasName("SE", 523),
- AliasName("SG", 524),
- AliasName("SP", 525),
- AliasName("ST", 526),
- AliasName("STerm", 527),
- AliasName("SY", 528),
- AliasName("Sad", 529),
- AliasName("Sadhe", 530),
- AliasName("Sc", 531),
- AliasName("Script", 532),
- AliasName("Seen", 533),
- AliasName("Segment_Separator", 534),
- AliasName("Segment_Starter", 535),
- AliasName("Semkath", 536),
- AliasName("Sensitive", 537),
- AliasName("Sentence_Break", 538),
- AliasName("Sep", 539),
- AliasName("Separator", 540),
- AliasName("Shavian", 541),
- AliasName("Shaw", 542),
- AliasName("Shin", 543),
- AliasName("Simple_Case_Folding", 544),
- AliasName("Simple_Lowercase_Mapping", 545),
- AliasName("Simple_Titlecase_Mapping", 546),
- AliasName("Simple_Uppercase_Mapping", 547),
- AliasName("Sinh", 548),
- AliasName("Sinhala", 549),
- AliasName("Sk", 550),
- AliasName("Sm", 551),
- AliasName("Small", 552),
- AliasName("Small_Form_Variants", 553),
- AliasName("So", 554),
- AliasName("Soft_Dotted", 555),
- AliasName("Sp", 556),
- AliasName("Space", 557),
- AliasName("Space_Separator", 558),
- AliasName("Spacing_Mark", 559),
- AliasName("Spacing_Modifier_Letters", 560),
- AliasName("Specials", 561),
- AliasName("Square", 562),
- AliasName("Sub", 563),
- AliasName("Super", 564),
- AliasName("Superscripts_and_Subscripts", 565),
- AliasName("Supplemental_Arrows-A", 566),
- AliasName("Supplemental_Arrows-B", 567),
- AliasName("Supplemental_Mathematical_Operators", 568),
- AliasName("Supplemental_Punctuation", 569),
- AliasName("Supplementary_Private_Use_Area-A", 570),
- AliasName("Supplementary_Private_Use_Area-B", 571),
- AliasName("Surrogate", 572),
- AliasName("Swash_Kaf", 573),
- AliasName("Sylo", 574),
- AliasName("Syloti_Nagri", 575),
- AliasName("Symbol", 576),
- AliasName("Syrc", 577),
- AliasName("Syriac", 578),
- AliasName("Syriac_Waw", 579),
- AliasName("T", 580),
- AliasName("Tagalog", 581),
- AliasName("Tagb", 582),
- AliasName("Tagbanwa", 583),
- AliasName("Tags", 584),
- AliasName("Tah", 585),
- AliasName("Tai_Le", 586),
- AliasName("Tai_Xuan_Jing_Symbols", 587),
- AliasName("Tale", 588),
- AliasName("Talu", 589),
- AliasName("Tamil", 590),
- AliasName("Taml", 591),
- AliasName("Taw", 592),
- AliasName("Teh_Marbuta", 593),
- AliasName("Telu", 594),
- AliasName("Telugu", 595),
- AliasName("Term", 596),
- AliasName("Terminal_Punctuation", 597),
- AliasName("Teth", 598),
- AliasName("Tfng", 599),
- AliasName("Tglg", 600),
- AliasName("Thaa", 601),
- AliasName("Thaana", 602),
- AliasName("Thai", 603),
- AliasName("Tibetan", 604),
- AliasName("Tibt", 605),
- AliasName("Tifinagh", 606),
- AliasName("Titlecase_Letter", 607),
- AliasName("Titlecase_Mapping", 608),
- AliasName("Trail_Canonical_Combining_Class", 609),
- AliasName("Trailing_Jamo", 610),
- AliasName("Transparent", 611),
- AliasName("True", 612),
- AliasName("U", 613),
- AliasName("UIdeo", 614),
- AliasName("UP", 615),
- AliasName("Ugar", 616),
- AliasName("Ugaritic", 617),
- AliasName("Unassigned", 618),
- AliasName("Unicode_1_Name", 619),
- AliasName("Unified_Canadian_Aboriginal_Syllabics", 620),
- AliasName("Unified_Ideograph", 621),
- AliasName("Unknown", 622),
- AliasName("Upper", 623),
- AliasName("Uppercase", 624),
- AliasName("Uppercase_Letter", 625),
- AliasName("Uppercase_Mapping", 626),
- AliasName("V", 627),
- AliasName("VR", 628),
- AliasName("VS", 629),
- AliasName("Variation_Selector", 630),
- AliasName("Variation_Selectors", 631),
- AliasName("Variation_Selectors_Supplement", 632),
- AliasName("Vertical", 633),
- AliasName("Vertical_Forms", 634),
- AliasName("Virama", 635),
- AliasName("Vowel_Jamo", 636),
- AliasName("W", 637),
- AliasName("WB", 638),
- AliasName("WJ", 639),
- AliasName("WS", 640),
- AliasName("WSpace", 641),
- AliasName("Waw", 642),
- AliasName("White_Space", 643),
- AliasName("Wide", 644),
- AliasName("Word_Break", 645),
- AliasName("Word_Joiner", 646),
- AliasName("XIDC", 647),
- AliasName("XIDS", 648),
- AliasName("XID_Continue", 649),
- AliasName("XID_Start", 650),
- AliasName("XX", 651),
- AliasName("Xpeo", 652),
- AliasName("Y", 653),
- AliasName("Yeh", 654),
- AliasName("Yeh_Barree", 655),
- AliasName("Yeh_With_Tail", 656),
- AliasName("Yes", 657),
- AliasName("Yi", 658),
- AliasName("Yi_Radicals", 659),
- AliasName("Yi_Syllables", 660),
- AliasName("Yiii", 661),
- AliasName("Yijing_Hexagram_Symbols", 662),
- AliasName("Yudh", 663),
- AliasName("Yudh_He", 664),
- AliasName("Z", 665),
- AliasName("ZW", 666),
- AliasName("ZWSpace", 667),
- AliasName("Zain", 668),
- AliasName("Zhain", 669),
- AliasName("Zl", 670),
- AliasName("Zp", 671),
- AliasName("Zs", 672),
- AliasName("Zyyy", 673),
- AliasName("age", 674),
- AliasName("alnum", 675),
- AliasName("bc", 676),
- AliasName("blank", 677),
- AliasName("blk", 678),
- AliasName("bmg", 679),
- AliasName("can", 680),
- AliasName("ccc", 681),
- AliasName("cf", 682),
- AliasName("cntrl", 683),
- AliasName("com", 684),
- AliasName("digit", 685),
- AliasName("dt", 686),
- AliasName("ea", 687),
- AliasName("enc", 688),
- AliasName("fin", 689),
- AliasName("font", 690),
- AliasName("fra", 691),
- AliasName("gc", 692),
- AliasName("gcm", 693),
- AliasName("graph", 694),
- AliasName("hst", 695),
- AliasName("init", 696),
- AliasName("isc", 697),
- AliasName("iso", 698),
- AliasName("jg", 699),
- AliasName("jt", 700),
- AliasName("lb", 701),
- AliasName("lc", 702),
- AliasName("lccc", 703),
- AliasName("med", 704),
- AliasName("na", 705),
- AliasName("na1", 706),
- AliasName("nar", 707),
- AliasName("nb", 708),
- AliasName("nfcinert", 709),
- AliasName("nfdinert", 710),
- AliasName("nfkcinert", 711),
- AliasName("nfkdinert", 712),
- AliasName("none", 713),
- AliasName("nt", 714),
- AliasName("nv", 715),
- AliasName("print", 716),
- AliasName("punct", 717),
- AliasName("sc", 718),
- AliasName("segstart", 719),
- AliasName("sfc", 720),
- AliasName("slc", 721),
- AliasName("sml", 722),
- AliasName("space", 723),
- AliasName("sqr", 724),
- AliasName("stc", 725),
- AliasName("sub", 726),
- AliasName("suc", 727),
- AliasName("sup", 728),
- AliasName("tc", 729),
- AliasName("tccc", 730),
- AliasName("uc", 731),
- AliasName("vert", 732),
- AliasName("wide", 733),
- AliasName("xdigit", 734),
+ AliasName("Bali", 49),
+ AliasName("Balinese", 50),
+ AliasName("Basic_Latin", 51),
+ AliasName("Batk", 52),
+ AliasName("Beh", 53),
+ AliasName("Below", 54),
+ AliasName("Below_Left", 55),
+ AliasName("Below_Right", 56),
+ AliasName("Beng", 57),
+ AliasName("Bengali", 58),
+ AliasName("Beth", 59),
+ AliasName("Bidi_C", 60),
+ AliasName("Bidi_Class", 61),
+ AliasName("Bidi_Control", 62),
+ AliasName("Bidi_M", 63),
+ AliasName("Bidi_Mirrored", 64),
+ AliasName("Bidi_Mirroring_Glyph", 65),
+ AliasName("Blis", 66),
+ AliasName("Block", 67),
+ AliasName("Block_Elements", 68),
+ AliasName("Bopo", 69),
+ AliasName("Bopomofo", 70),
+ AliasName("Bopomofo_Extended", 71),
+ AliasName("Boundary_Neutral", 72),
+ AliasName("Box_Drawing", 73),
+ AliasName("Brah", 74),
+ AliasName("Brai", 75),
+ AliasName("Braille", 76),
+ AliasName("Braille_Patterns", 77),
+ AliasName("Break_After", 78),
+ AliasName("Break_Before", 79),
+ AliasName("Break_Both", 80),
+ AliasName("Break_Symbols", 81),
+ AliasName("Bugi", 82),
+ AliasName("Buginese", 83),
+ AliasName("Buhd", 84),
+ AliasName("Buhid", 85),
+ AliasName("Byzantine_Musical_Symbols", 86),
+ AliasName("C", 87),
+ AliasName("CB", 88),
+ AliasName("CJK_Compatibility", 89),
+ AliasName("CJK_Compatibility_Forms", 90),
+ AliasName("CJK_Compatibility_Ideographs", 91),
+ AliasName("CJK_Compatibility_Ideographs_Supplement", 92),
+ AliasName("CJK_Radicals_Supplement", 93),
+ AliasName("CJK_Strokes", 94),
+ AliasName("CJK_Symbols_and_Punctuation", 95),
+ AliasName("CJK_Unified_Ideographs", 96),
+ AliasName("CJK_Unified_Ideographs_Extension_A", 97),
+ AliasName("CJK_Unified_Ideographs_Extension_B", 98),
+ AliasName("CL", 99),
+ AliasName("CM", 100),
+ AliasName("CN", 101),
+ AliasName("CR", 102),
+ AliasName("CS", 103),
+ AliasName("Canadian_Aboriginal", 104),
+ AliasName("Canonical", 105),
+ AliasName("Canonical_Combining_Class", 106),
+ AliasName("Cans", 107),
+ AliasName("Carriage_Return", 108),
+ AliasName("Case_Folding", 109),
+ AliasName("Case_Sensitive", 110),
+ AliasName("Cased_Letter", 111),
+ AliasName("Cc", 112),
+ AliasName("Cf", 113),
+ AliasName("Cham", 114),
+ AliasName("Cher", 115),
+ AliasName("Cherokee", 116),
+ AliasName("Circle", 117),
+ AliasName("Cirt", 118),
+ AliasName("Close", 119),
+ AliasName("Close_Punctuation", 120),
+ AliasName("Cn", 121),
+ AliasName("Co", 122),
+ AliasName("Combining_Diacritical_Marks", 123),
+ AliasName("Combining_Diacritical_Marks_Supplement", 124),
+ AliasName("Combining_Diacritical_Marks_for_Symbols", 125),
+ AliasName("Combining_Half_Marks", 126),
+ AliasName("Combining_Mark", 127),
+ AliasName("Common", 128),
+ AliasName("Common_Separator", 129),
+ AliasName("Comp_Ex", 130),
+ AliasName("Compat", 131),
+ AliasName("Complex_Context", 132),
+ AliasName("Connector_Punctuation", 133),
+ AliasName("Contingent_Break", 134),
+ AliasName("Control", 135),
+ AliasName("Control_Pictures", 136),
+ AliasName("Copt", 137),
+ AliasName("Coptic", 138),
+ AliasName("Counting_Rod_Numerals", 139),
+ AliasName("Cprt", 140),
+ AliasName("Cs", 141),
+ AliasName("Cuneiform", 142),
+ AliasName("Cuneiform_Numbers_and_Punctuation", 143),
+ AliasName("Currency_Symbol", 144),
+ AliasName("Currency_Symbols", 145),
+ AliasName("Cypriot", 146),
+ AliasName("Cypriot_Syllabary", 147),
+ AliasName("Cyrillic", 148),
+ AliasName("Cyrillic_Supplement", 149),
+ AliasName("Cyrillic_Supplementary", 150),
+ AliasName("Cyrl", 151),
+ AliasName("Cyrs", 152),
+ AliasName("D", 153),
+ AliasName("DA", 154),
+ AliasName("DB", 155),
+ AliasName("DI", 156),
+ AliasName("Dal", 157),
+ AliasName("Dalath_Rish", 158),
+ AliasName("Dash", 159),
+ AliasName("Dash_Punctuation", 160),
+ AliasName("De", 161),
+ AliasName("Decimal", 162),
+ AliasName("Decimal_Number", 163),
+ AliasName("Decomposition_Type", 164),
+ AliasName("Default_Ignorable_Code_Point", 165),
+ AliasName("Dep", 166),
+ AliasName("Deprecated", 167),
+ AliasName("Deseret", 168),
+ AliasName("Deva", 169),
+ AliasName("Devanagari", 170),
+ AliasName("Di", 171),
+ AliasName("Dia", 172),
+ AliasName("Diacritic", 173),
+ AliasName("Digit", 174),
+ AliasName("Dingbats", 175),
+ AliasName("Double_Above", 176),
+ AliasName("Double_Below", 177),
+ AliasName("Dsrt", 178),
+ AliasName("Dual_Joining", 179),
+ AliasName("E", 180),
+ AliasName("EN", 181),
+ AliasName("ES", 182),
+ AliasName("ET", 183),
+ AliasName("EX", 184),
+ AliasName("East_Asian_Width", 185),
+ AliasName("Egyd", 186),
+ AliasName("Egyh", 187),
+ AliasName("Egyp", 188),
+ AliasName("Enclosed_Alphanumerics", 189),
+ AliasName("Enclosed_CJK_Letters_and_Months", 190),
+ AliasName("Enclosing_Mark", 191),
+ AliasName("Ethi", 192),
+ AliasName("Ethiopic", 193),
+ AliasName("Ethiopic_Extended", 194),
+ AliasName("Ethiopic_Supplement", 195),
+ AliasName("European_Number", 196),
+ AliasName("European_Separator", 197),
+ AliasName("European_Terminator", 198),
+ AliasName("Exclamation", 199),
+ AliasName("Ext", 200),
+ AliasName("Extend", 201),
+ AliasName("ExtendNumLet", 202),
+ AliasName("Extender", 203),
+ AliasName("F", 204),
+ AliasName("FO", 205),
+ AliasName("False", 206),
+ AliasName("Fe", 207),
+ AliasName("Feh", 208),
+ AliasName("Final", 209),
+ AliasName("Final_Punctuation", 210),
+ AliasName("Final_Semkath", 211),
+ AliasName("Font", 212),
+ AliasName("Format", 213),
+ AliasName("Fraction", 214),
+ AliasName("Full_Composition_Exclusion", 215),
+ AliasName("Fullwidth", 216),
+ AliasName("GCB", 217),
+ AliasName("GL", 218),
+ AliasName("Gaf", 219),
+ AliasName("Gamal", 220),
+ AliasName("General_Category", 221),
+ AliasName("General_Category_Mask", 222),
+ AliasName("General_Punctuation", 223),
+ AliasName("Geok", 224),
+ AliasName("Geometric_Shapes", 225),
+ AliasName("Geor", 226),
+ AliasName("Georgian", 227),
+ AliasName("Georgian_Supplement", 228),
+ AliasName("Glag", 229),
+ AliasName("Glagolitic", 230),
+ AliasName("Glue", 231),
+ AliasName("Goth", 232),
+ AliasName("Gothic", 233),
+ AliasName("Gr_Base", 234),
+ AliasName("Gr_Ext", 235),
+ AliasName("Gr_Link", 236),
+ AliasName("Grapheme_Base", 237),
+ AliasName("Grapheme_Cluster_Break", 238),
+ AliasName("Grapheme_Extend", 239),
+ AliasName("Grapheme_Link", 240),
+ AliasName("Greek", 241),
+ AliasName("Greek_Extended", 242),
+ AliasName("Greek_and_Coptic", 243),
+ AliasName("Grek", 244),
+ AliasName("Gujarati", 245),
+ AliasName("Gujr", 246),
+ AliasName("Gurmukhi", 247),
+ AliasName("Guru", 248),
+ AliasName("H", 249),
+ AliasName("H2", 250),
+ AliasName("H3", 251),
+ AliasName("HY", 252),
+ AliasName("Hah", 253),
+ AliasName("Halfwidth", 254),
+ AliasName("Halfwidth_and_Fullwidth_Forms", 255),
+ AliasName("Hamza_On_Heh_Goal", 256),
+ AliasName("Han", 257),
+ AliasName("Hang", 258),
+ AliasName("Hangul", 259),
+ AliasName("Hangul_Compatibility_Jamo", 260),
+ AliasName("Hangul_Jamo", 261),
+ AliasName("Hangul_Syllable_Type", 262),
+ AliasName("Hangul_Syllables", 263),
+ AliasName("Hani", 264),
+ AliasName("Hano", 265),
+ AliasName("Hans", 266),
+ AliasName("Hant", 267),
+ AliasName("Hanunoo", 268),
+ AliasName("He", 269),
+ AliasName("Hebr", 270),
+ AliasName("Hebrew", 271),
+ AliasName("Heh", 272),
+ AliasName("Heh_Goal", 273),
+ AliasName("Heth", 274),
+ AliasName("Hex", 275),
+ AliasName("Hex_Digit", 276),
+ AliasName("High_Private_Use_Surrogates", 277),
+ AliasName("High_Surrogates", 278),
+ AliasName("Hira", 279),
+ AliasName("Hiragana", 280),
+ AliasName("Hmng", 281),
+ AliasName("Hrkt", 282),
+ AliasName("Hung", 283),
+ AliasName("Hyphen", 284),
+ AliasName("ID", 285),
+ AliasName("IDC", 286),
+ AliasName("IDS", 287),
+ AliasName("IDSB", 288),
+ AliasName("IDST", 289),
+ AliasName("IDS_Binary_Operator", 290),
+ AliasName("IDS_Trinary_Operator", 291),
+ AliasName("ID_Continue", 292),
+ AliasName("ID_Start", 293),
+ AliasName("IN", 294),
+ AliasName("IPA_Extensions", 295),
+ AliasName("IS", 296),
+ AliasName("ISO_Comment", 297),
+ AliasName("Ideo", 298),
+ AliasName("Ideographic", 299),
+ AliasName("Ideographic_Description_Characters", 300),
+ AliasName("Inds", 301),
+ AliasName("Infix_Numeric", 302),
+ AliasName("Inherited", 303),
+ AliasName("Initial", 304),
+ AliasName("Initial_Punctuation", 305),
+ AliasName("Inseparable", 306),
+ AliasName("Inseperable", 307),
+ AliasName("Iota_Subscript", 308),
+ AliasName("Isolated", 309),
+ AliasName("Ital", 310),
+ AliasName("JL", 311),
+ AliasName("JT", 312),
+ AliasName("JV", 313),
+ AliasName("Java", 314),
+ AliasName("Join_C", 315),
+ AliasName("Join_Causing", 316),
+ AliasName("Join_Control", 317),
+ AliasName("Joining_Group", 318),
+ AliasName("Joining_Type", 319),
+ AliasName("KA", 320),
+ AliasName("KV", 321),
+ AliasName("Kaf", 322),
+ AliasName("Kali", 323),
+ AliasName("Kana", 324),
+ AliasName("Kana_Voicing", 325),
+ AliasName("Kanbun", 326),
+ AliasName("Kangxi_Radicals", 327),
+ AliasName("Kannada", 328),
+ AliasName("Kaph", 329),
+ AliasName("Katakana", 330),
+ AliasName("Katakana_Or_Hiragana", 331),
+ AliasName("Katakana_Phonetic_Extensions", 332),
+ AliasName("Khaph", 333),
+ AliasName("Khar", 334),
+ AliasName("Kharoshthi", 335),
+ AliasName("Khmer", 336),
+ AliasName("Khmer_Symbols", 337),
+ AliasName("Khmr", 338),
+ AliasName("Knda", 339),
+ AliasName("Knotted_Heh", 340),
+ AliasName("L", 341),
+ AliasName("LC", 342),
+ AliasName("LE", 343),
+ AliasName("LF", 344),
+ AliasName("LO", 345),
+ AliasName("LOE", 346),
+ AliasName("LRE", 347),
+ AliasName("LRO", 348),
+ AliasName("LV", 349),
+ AliasName("LVT", 350),
+ AliasName("LVT_Syllable", 351),
+ AliasName("LV_Syllable", 352),
+ AliasName("Lam", 353),
+ AliasName("Lamadh", 354),
+ AliasName("Lao", 355),
+ AliasName("Laoo", 356),
+ AliasName("Latf", 357),
+ AliasName("Latg", 358),
+ AliasName("Latin", 359),
+ AliasName("Latin-1_Supplement", 360),
+ AliasName("Latin_Extended-A", 361),
+ AliasName("Latin_Extended-B", 362),
+ AliasName("Latin_Extended-C", 363),
+ AliasName("Latin_Extended-D", 364),
+ AliasName("Latin_Extended_Additional", 365),
+ AliasName("Latn", 366),
+ AliasName("Lead_Canonical_Combining_Class", 367),
+ AliasName("Leading_Jamo", 368),
+ AliasName("Left", 369),
+ AliasName("Left_Joining", 370),
+ AliasName("Left_To_Right", 371),
+ AliasName("Left_To_Right_Embedding", 372),
+ AliasName("Left_To_Right_Override", 373),
+ AliasName("Lepc", 374),
+ AliasName("Letter", 375),
+ AliasName("Letter_Number", 376),
+ AliasName("Letterlike_Symbols", 377),
+ AliasName("Limb", 378),
+ AliasName("Limbu", 379),
+ AliasName("Lina", 380),
+ AliasName("Linb", 381),
+ AliasName("Line_Break", 382),
+ AliasName("Line_Feed", 383),
+ AliasName("Line_Separator", 384),
+ AliasName("Linear_B", 385),
+ AliasName("Linear_B_Ideograms", 386),
+ AliasName("Linear_B_Syllabary", 387),
+ AliasName("Ll", 388),
+ AliasName("Lm", 389),
+ AliasName("Lo", 390),
+ AliasName("Logical_Order_Exception", 391),
+ AliasName("Low_Surrogates", 392),
+ AliasName("Lower", 393),
+ AliasName("Lowercase", 394),
+ AliasName("Lowercase_Letter", 395),
+ AliasName("Lowercase_Mapping", 396),
+ AliasName("Lt", 397),
+ AliasName("Lu", 398),
+ AliasName("M", 399),
+ AliasName("ML", 400),
+ AliasName("MN", 401),
+ AliasName("Malayalam", 402),
+ AliasName("Mand", 403),
+ AliasName("Mandatory_Break", 404),
+ AliasName("Mark", 405),
+ AliasName("Math", 406),
+ AliasName("Math_Symbol", 407),
+ AliasName("Mathematical_Alphanumeric_Symbols", 408),
+ AliasName("Mathematical_Operators", 409),
+ AliasName("Maya", 410),
+ AliasName("Maybe", 411),
+ AliasName("Mc", 412),
+ AliasName("Me", 413),
+ AliasName("Medial", 414),
+ AliasName("Meem", 415),
+ AliasName("Mero", 416),
+ AliasName("MidLetter", 417),
+ AliasName("MidNum", 418),
+ AliasName("Mim", 419),
+ AliasName("Miscellaneous_Mathematical_Symbols-A", 420),
+ AliasName("Miscellaneous_Mathematical_Symbols-B", 421),
+ AliasName("Miscellaneous_Symbols", 422),
+ AliasName("Miscellaneous_Symbols_and_Arrows", 423),
+ AliasName("Miscellaneous_Technical", 424),
+ AliasName("Mlym", 425),
+ AliasName("Mn", 426),
+ AliasName("Modifier_Letter", 427),
+ AliasName("Modifier_Symbol", 428),
+ AliasName("Modifier_Tone_Letters", 429),
+ AliasName("Mong", 430),
+ AliasName("Mongolian", 431),
+ AliasName("Musical_Symbols", 432),
+ AliasName("Myanmar", 433),
+ AliasName("Mymr", 434),
+ AliasName("N", 435),
+ AliasName("NA", 436),
+ AliasName("NChar", 437),
+ AliasName("NFC_Inert", 438),
+ AliasName("NFC_QC", 439),
+ AliasName("NFC_Quick_Check", 440),
+ AliasName("NFD_Inert", 441),
+ AliasName("NFD_QC", 442),
+ AliasName("NFD_Quick_Check", 443),
+ AliasName("NFKC_Inert", 444),
+ AliasName("NFKC_QC", 445),
+ AliasName("NFKC_Quick_Check", 446),
+ AliasName("NFKD_Inert", 447),
+ AliasName("NFKD_QC", 448),
+ AliasName("NFKD_Quick_Check", 449),
+ AliasName("NK", 450),
+ AliasName("NKo", 451),
+ AliasName("NL", 452),
+ AliasName("NR", 453),
+ AliasName("NS", 454),
+ AliasName("NSM", 455),
+ AliasName("NU", 456),
+ AliasName("Na", 457),
+ AliasName("Name", 458),
+ AliasName("Narrow", 459),
+ AliasName("Nd", 460),
+ AliasName("Neutral", 461),
+ AliasName("New_Tai_Lue", 462),
+ AliasName("Next_Line", 463),
+ AliasName("Nko", 464),
+ AliasName("Nkoo", 465),
+ AliasName("Nl", 466),
+ AliasName("No", 467),
+ AliasName("No_Block", 468),
+ AliasName("No_Joining_Group", 469),
+ AliasName("Nobreak", 470),
+ AliasName("Non_Joining", 471),
+ AliasName("Noncharacter_Code_Point", 472),
+ AliasName("None", 473),
+ AliasName("Nonspacing_Mark", 474),
+ AliasName("Nonstarter", 475),
+ AliasName("Noon", 476),
+ AliasName("Not_Applicable", 477),
+ AliasName("Not_Reordered", 478),
+ AliasName("Nu", 479),
+ AliasName("Nukta", 480),
+ AliasName("Number", 481),
+ AliasName("Number_Forms", 482),
+ AliasName("Numeric", 483),
+ AliasName("Numeric_Type", 484),
+ AliasName("Numeric_Value", 485),
+ AliasName("Nun", 486),
+ AliasName("OLetter", 487),
+ AliasName("ON", 488),
+ AliasName("OP", 489),
+ AliasName("OV", 490),
+ AliasName("Ogam", 491),
+ AliasName("Ogham", 492),
+ AliasName("Old_Italic", 493),
+ AliasName("Old_Persian", 494),
+ AliasName("Open_Punctuation", 495),
+ AliasName("Optical_Character_Recognition", 496),
+ AliasName("Oriya", 497),
+ AliasName("Orkh", 498),
+ AliasName("Orya", 499),
+ AliasName("Osma", 500),
+ AliasName("Osmanya", 501),
+ AliasName("Other", 502),
+ AliasName("Other_Letter", 503),
+ AliasName("Other_Neutral", 504),
+ AliasName("Other_Number", 505),
+ AliasName("Other_Punctuation", 506),
+ AliasName("Other_Symbol", 507),
+ AliasName("Overlay", 508),
+ AliasName("P", 509),
+ AliasName("PDF", 510),
+ AliasName("PO", 511),
+ AliasName("PR", 512),
+ AliasName("Paragraph_Separator", 513),
+ AliasName("Pat_Syn", 514),
+ AliasName("Pat_WS", 515),
+ AliasName("Pattern_Syntax", 516),
+ AliasName("Pattern_White_Space", 517),
+ AliasName("Pc", 518),
+ AliasName("Pd", 519),
+ AliasName("Pe", 520),
+ AliasName("Perm", 521),
+ AliasName("Pf", 522),
+ AliasName("Phag", 523),
+ AliasName("Phags-pa", 524),
+ AliasName("Phags_Pa", 525),
+ AliasName("Phnx", 526),
+ AliasName("Phoenician", 527),
+ AliasName("Phonetic_Extensions", 528),
+ AliasName("Phonetic_Extensions_Supplement", 529),
+ AliasName("Pi", 530),
+ AliasName("Plrd", 531),
+ AliasName("Po", 532),
+ AliasName("Pop_Directional_Format", 533),
+ AliasName("Postfix_Numeric", 534),
+ AliasName("Prefix_Numeric", 535),
+ AliasName("Private_Use", 536),
+ AliasName("Private_Use_Area", 537),
+ AliasName("Ps", 538),
+ AliasName("Punctuation", 539),
+ AliasName("QMark", 540),
+ AliasName("QU", 541),
+ AliasName("Qaac", 542),
+ AliasName("Qaai", 543),
+ AliasName("Qaf", 544),
+ AliasName("Qaph", 545),
+ AliasName("Quotation", 546),
+ AliasName("Quotation_Mark", 547),
+ AliasName("R", 548),
+ AliasName("RLE", 549),
+ AliasName("RLO", 550),
+ AliasName("Radical", 551),
+ AliasName("Reh", 552),
+ AliasName("Reversed_Pe", 553),
+ AliasName("Right", 554),
+ AliasName("Right_Joining", 555),
+ AliasName("Right_To_Left", 556),
+ AliasName("Right_To_Left_Embedding", 557),
+ AliasName("Right_To_Left_Override", 558),
+ AliasName("Roro", 559),
+ AliasName("Runic", 560),
+ AliasName("Runr", 561),
+ AliasName("S", 562),
+ AliasName("SA", 563),
+ AliasName("SB", 564),
+ AliasName("SD", 565),
+ AliasName("SE", 566),
+ AliasName("SG", 567),
+ AliasName("SP", 568),
+ AliasName("ST", 569),
+ AliasName("STerm", 570),
+ AliasName("SY", 571),
+ AliasName("Sad", 572),
+ AliasName("Sadhe", 573),
+ AliasName("Sara", 574),
+ AliasName("Sc", 575),
+ AliasName("Script", 576),
+ AliasName("Seen", 577),
+ AliasName("Segment_Separator", 578),
+ AliasName("Segment_Starter", 579),
+ AliasName("Semkath", 580),
+ AliasName("Sensitive", 581),
+ AliasName("Sentence_Break", 582),
+ AliasName("Sep", 583),
+ AliasName("Separator", 584),
+ AliasName("Shavian", 585),
+ AliasName("Shaw", 586),
+ AliasName("Shin", 587),
+ AliasName("Simple_Case_Folding", 588),
+ AliasName("Simple_Lowercase_Mapping", 589),
+ AliasName("Simple_Titlecase_Mapping", 590),
+ AliasName("Simple_Uppercase_Mapping", 591),
+ AliasName("Sinh", 592),
+ AliasName("Sinhala", 593),
+ AliasName("Sk", 594),
+ AliasName("Sm", 595),
+ AliasName("Small", 596),
+ AliasName("Small_Form_Variants", 597),
+ AliasName("So", 598),
+ AliasName("Soft_Dotted", 599),
+ AliasName("Sp", 600),
+ AliasName("Space", 601),
+ AliasName("Space_Separator", 602),
+ AliasName("Spacing_Mark", 603),
+ AliasName("Spacing_Modifier_Letters", 604),
+ AliasName("Specials", 605),
+ AliasName("Square", 606),
+ AliasName("Sub", 607),
+ AliasName("Super", 608),
+ AliasName("Superscripts_and_Subscripts", 609),
+ AliasName("Supplemental_Arrows-A", 610),
+ AliasName("Supplemental_Arrows-B", 611),
+ AliasName("Supplemental_Mathematical_Operators", 612),
+ AliasName("Supplemental_Punctuation", 613),
+ AliasName("Supplementary_Private_Use_Area-A", 614),
+ AliasName("Supplementary_Private_Use_Area-B", 615),
+ AliasName("Surrogate", 616),
+ AliasName("Swash_Kaf", 617),
+ AliasName("Sylo", 618),
+ AliasName("Syloti_Nagri", 619),
+ AliasName("Symbol", 620),
+ AliasName("Syrc", 621),
+ AliasName("Syre", 622),
+ AliasName("Syriac", 623),
+ AliasName("Syriac_Waw", 624),
+ AliasName("Syrj", 625),
+ AliasName("Syrn", 626),
+ AliasName("T", 627),
+ AliasName("Tagalog", 628),
+ AliasName("Tagb", 629),
+ AliasName("Tagbanwa", 630),
+ AliasName("Tags", 631),
+ AliasName("Tah", 632),
+ AliasName("Tai_Le", 633),
+ AliasName("Tai_Xuan_Jing_Symbols", 634),
+ AliasName("Tale", 635),
+ AliasName("Talu", 636),
+ AliasName("Tamil", 637),
+ AliasName("Taml", 638),
+ AliasName("Taw", 639),
+ AliasName("Teh_Marbuta", 640),
+ AliasName("Telu", 641),
+ AliasName("Telugu", 642),
+ AliasName("Teng", 643),
+ AliasName("Term", 644),
+ AliasName("Terminal_Punctuation", 645),
+ AliasName("Teth", 646),
+ AliasName("Tfng", 647),
+ AliasName("Tglg", 648),
+ AliasName("Thaa", 649),
+ AliasName("Thaana", 650),
+ AliasName("Thai", 651),
+ AliasName("Tibetan", 652),
+ AliasName("Tibt", 653),
+ AliasName("Tifinagh", 654),
+ AliasName("Titlecase_Letter", 655),
+ AliasName("Titlecase_Mapping", 656),
+ AliasName("Trail_Canonical_Combining_Class", 657),
+ AliasName("Trailing_Jamo", 658),
+ AliasName("Transparent", 659),
+ AliasName("True", 660),
+ AliasName("U", 661),
+ AliasName("UIdeo", 662),
+ AliasName("UP", 663),
+ AliasName("Ugar", 664),
+ AliasName("Ugaritic", 665),
+ AliasName("Unassigned", 666),
+ AliasName("Unicode_1_Name", 667),
+ AliasName("Unified_Canadian_Aboriginal_Syllabics", 668),
+ AliasName("Unified_Ideograph", 669),
+ AliasName("Unknown", 670),
+ AliasName("Upper", 671),
+ AliasName("Uppercase", 672),
+ AliasName("Uppercase_Letter", 673),
+ AliasName("Uppercase_Mapping", 674),
+ AliasName("V", 675),
+ AliasName("VR", 676),
+ AliasName("VS", 677),
+ AliasName("Vaii", 678),
+ AliasName("Variation_Selector", 679),
+ AliasName("Variation_Selectors", 680),
+ AliasName("Variation_Selectors_Supplement", 681),
+ AliasName("Vertical", 682),
+ AliasName("Vertical_Forms", 683),
+ AliasName("Virama", 684),
+ AliasName("Visp", 685),
+ AliasName("Vowel_Jamo", 686),
+ AliasName("W", 687),
+ AliasName("WB", 688),
+ AliasName("WJ", 689),
+ AliasName("WS", 690),
+ AliasName("WSpace", 691),
+ AliasName("Waw", 692),
+ AliasName("White_Space", 693),
+ AliasName("Wide", 694),
+ AliasName("Word_Break", 695),
+ AliasName("Word_Joiner", 696),
+ AliasName("XIDC", 697),
+ AliasName("XIDS", 698),
+ AliasName("XID_Continue", 699),
+ AliasName("XID_Start", 700),
+ AliasName("XX", 701),
+ AliasName("Xpeo", 702),
+ AliasName("Xsux", 703),
+ AliasName("Y", 704),
+ AliasName("Yeh", 705),
+ AliasName("Yeh_Barree", 706),
+ AliasName("Yeh_With_Tail", 707),
+ AliasName("Yes", 708),
+ AliasName("Yi", 709),
+ AliasName("Yi_Radicals", 710),
+ AliasName("Yi_Syllables", 711),
+ AliasName("Yiii", 712),
+ AliasName("Yijing_Hexagram_Symbols", 713),
+ AliasName("Yudh", 714),
+ AliasName("Yudh_He", 715),
+ AliasName("Z", 716),
+ AliasName("ZW", 717),
+ AliasName("ZWSpace", 718),
+ AliasName("Zain", 719),
+ AliasName("Zhain", 720),
+ AliasName("Zl", 721),
+ AliasName("Zp", 722),
+ AliasName("Zs", 723),
+ AliasName("Zxxx", 724),
+ AliasName("Zyyy", 725),
+ AliasName("Zzzz", 726),
+ AliasName("age", 727),
+ AliasName("alnum", 728),
+ AliasName("bc", 729),
+ AliasName("blank", 730),
+ AliasName("blk", 731),
+ AliasName("bmg", 732),
+ AliasName("can", 733),
+ AliasName("ccc", 734),
+ AliasName("cf", 735),
+ AliasName("cntrl", 736),
+ AliasName("com", 737),
+ AliasName("digit", 738),
+ AliasName("dt", 739),
+ AliasName("ea", 740),
+ AliasName("enc", 741),
+ AliasName("fin", 742),
+ AliasName("font", 743),
+ AliasName("fra", 744),
+ AliasName("gc", 745),
+ AliasName("gcm", 746),
+ AliasName("graph", 747),
+ AliasName("hst", 748),
+ AliasName("init", 749),
+ AliasName("isc", 750),
+ AliasName("iso", 751),
+ AliasName("jg", 752),
+ AliasName("jt", 753),
+ AliasName("lb", 754),
+ AliasName("lc", 755),
+ AliasName("lccc", 756),
+ AliasName("med", 757),
+ AliasName("na", 758),
+ AliasName("na1", 759),
+ AliasName("nar", 760),
+ AliasName("nb", 761),
+ AliasName("nfcinert", 762),
+ AliasName("nfdinert", 763),
+ AliasName("nfkcinert", 764),
+ AliasName("nfkdinert", 765),
+ AliasName("none", 766),
+ AliasName("nt", 767),
+ AliasName("nv", 768),
+ AliasName("print", 769),
+ AliasName("punct", 770),
+ AliasName("sc", 771),
+ AliasName("segstart", 772),
+ AliasName("sfc", 773),
+ AliasName("slc", 774),
+ AliasName("sml", 775),
+ AliasName("space", 776),
+ AliasName("sqr", 777),
+ AliasName("stc", 778),
+ AliasName("sub", 779),
+ AliasName("suc", 780),
+ AliasName("sup", 781),
+ AliasName("tc", 782),
+ AliasName("tccc", 783),
+ AliasName("uc", 784),
+ AliasName("vert", 785),
+ AliasName("wide", 786),
+ AliasName("xdigit", 787),
};
/* to be filled in */
-int32_t REMAP[735];
+int32_t REMAP[788];
-const int32_t NAME_GROUP_COUNT = 1063;
+const int32_t NAME_GROUP_COUNT = 1165;
int32_t NAME_GROUP[] = {
- 96, -128, /* 0: "CN", "Control" */
- 97, -97, /* 2: "CR", "CR" */
- 173, -187, /* 4: "EX", "Extend" */
- 319, -319, /* 6: "L", "L" */
- 322, -322, /* 8: "LF", "LF" */
- 327, -327, /* 10: "LV", "LV" */
- 328, -328, /* 12: "LVT", "LVT" */
- 651, -467, /* 14: "XX", "Other" */
- 580, -580, /* 16: "T", "T" */
- 627, -627, /* 18: "V", "V" */
- 371, -381, /* 20: "M", "Maybe" */
- 404, -433, /* 22: "N", "No" */
- 653, -657, /* 24: "Y", "Yes" */
+ 101, -135, /* 0: "CN", "Control" */
+ 102, -102, /* 2: "CR", "CR" */
+ 184, -201, /* 4: "EX", "Extend" */
+ 341, -341, /* 6: "L", "L" */
+ 344, -344, /* 8: "LF", "LF" */
+ 349, -349, /* 10: "LV", "LV" */
+ 350, -350, /* 12: "LVT", "LVT" */
+ 701, -502, /* 14: "XX", "Other" */
+ 627, -627, /* 16: "T", "T" */
+ 675, -675, /* 18: "V", "V" */
+ 399, -411, /* 20: "M", "Maybe" */
+ 435, -467, /* 22: "N", "No" */
+ 704, -708, /* 24: "Y", "Yes" */
9, -13, /* 26: "AT", "ATerm" */
- 94, -112, /* 28: "CL", "Close" */
- 191, -199, /* 30: "FO", "Format" */
- 323, -365, /* 32: "LO", "Lower" */
- 424, -449, /* 34: "NU", "Numeric" */
- 321, -453, /* 36: "LE", "OLetter" */
- 523, -539, /* 38: "SE", "Sep" */
- 525, -556, /* 40: "SP", "Sp" */
- 526, -527, /* 42: "ST", "STerm" */
- 615, -623, /* 44: "UP", "Upper" */
- 321, -5, /* 46: "LE", "ALetter" */
- 173, -188, /* 48: "EX", "ExtendNumLet" */
- 299, -308, /* 50: "KA", "Katakana" */
- 372, -386, /* 52: "ML", "MidLetter" */
- 373, -387, /* 54: "MN", "MidNum" */
+ 99, -119, /* 28: "CL", "Close" */
+ 205, -213, /* 30: "FO", "Format" */
+ 345, -393, /* 32: "LO", "Lower" */
+ 456, -483, /* 34: "NU", "Numeric" */
+ 343, -487, /* 36: "LE", "OLetter" */
+ 566, -583, /* 38: "SE", "Sep" */
+ 568, -600, /* 40: "SP", "Sp" */
+ 569, -570, /* 42: "ST", "STerm" */
+ 663, -671, /* 44: "UP", "Upper" */
+ 343, -5, /* 46: "LE", "ALetter" */
+ 184, -202, /* 48: "EX", "ExtendNumLet" */
+ 320, -330, /* 50: "KA", "Katakana" */
+ 400, -417, /* 52: "ML", "MidLetter" */
+ 401, -418, /* 54: "MN", "MidNum" */
22, -23, /* 56: "Alpha", "Alphabetic" */
2, -8, /* 58: "AHex", "ASCII_Hex_Digit" */
- 57, -59, /* 60: "Bidi_C", "Bidi_Control" */
- 60, -61, /* 62: "Bidi_M", "Bidi_Mirrored" */
- 537, -105, /* 64: "Sensitive", "Case_Sensitive" */
- 148, -148, /* 66: "Dash", "Dash" */
- 145, -154, /* 68: "DI", "Default_Ignorable_Code_Point" */
- 155, -156, /* 70: "Dep", "Deprecated" */
- 161, -162, /* 72: "Dia", "Diacritic" */
- 186, -189, /* 74: "Ext", "Extender" */
- 123, -201, /* 76: "Comp_Ex", "Full_Composition_Exclusion" */
- 219, -222, /* 78: "Gr_Base", "Grapheme_Base" */
- 220, -224, /* 80: "Gr_Ext", "Grapheme_Extend" */
- 221, -225, /* 82: "Gr_Link", "Grapheme_Link" */
- 258, -259, /* 84: "Hex", "Hex_Digit" */
- 265, -265, /* 86: "Hyphen", "Hyphen" */
- 279, -280, /* 88: "Ideo", "Ideographic" */
- 269, -271, /* 90: "IDSB", "IDS_Binary_Operator" */
- 270, -272, /* 92: "IDST", "IDS_Trinary_Operator" */
- 267, -273, /* 94: "IDC", "ID_Continue" */
- 268, -274, /* 96: "IDS", "ID_Start" */
- 294, -296, /* 98: "Join_C", "Join_Control" */
- 324, -363, /* 100: "LOE", "Logical_Order_Exception" */
- 365, -366, /* 102: "Lower", "Lowercase" */
- 377, -377, /* 104: "Math", "Math" */
- 709, -407, /* 106: "nfcinert", "NFC_Inert" */
- 710, -410, /* 108: "nfdinert", "NFD_Inert" */
- 711, -413, /* 110: "nfkcinert", "NFKC_Inert" */
- 712, -416, /* 112: "nfkdinert", "NFKD_Inert" */
- 406, -438, /* 114: "NChar", "Noncharacter_Code_Point" */
- 479, -481, /* 116: "Pat_Syn", "Pattern_Syntax" */
- 480, -482, /* 118: "Pat_WS", "Pattern_White_Space" */
- 0, -675, /* 120: "", "alnum" */
- 0, -677, /* 122: "", "blank" */
- 0, -694, /* 124: "", "graph" */
- 0, -716, /* 126: "", "print" */
- 0, -734, /* 128: "", "xdigit" */
- 498, -505, /* 130: "QMark", "Quotation_Mark" */
- 509, -509, /* 132: "Radical", "Radical" */
- 719, -535, /* 134: "segstart", "Segment_Starter" */
- 522, -555, /* 136: "SD", "Soft_Dotted" */
- 527, -527, /* 138: "STerm", "STerm" */
- 596, -597, /* 140: "Term", "Terminal_Punctuation" */
- 614, -621, /* 142: "UIdeo", "Unified_Ideograph" */
- 623, -624, /* 144: "Upper", "Uppercase" */
- 629, -630, /* 146: "VS", "Variation_Selector" */
- 641, 643, -723, /* 148: "WSpace", "White_Space", "space" */
- 647, -649, /* 151: "XIDC", "XID_Continue" */
- 648, -650, /* 153: "XIDS", "XID_Start" */
- 715, -451, /* 155: "nv", "Numeric_Value" */
- 676, -58, /* 157: "bc", "Bidi_Class" */
- 678, -63, /* 159: "blk", "Block" */
- 681, -101, /* 161: "ccc", "Canonical_Combining_Class" */
- 686, -153, /* 163: "dt", "Decomposition_Type" */
- 687, -174, /* 165: "ea", "East_Asian_Width" */
- 692, -207, /* 167: "gc", "General_Category" */
- 203, -223, /* 169: "GCB", "Grapheme_Cluster_Break" */
- 695, -247, /* 171: "hst", "Hangul_Syllable_Type" */
- 699, -297, /* 173: "jg", "Joining_Group" */
- 700, -298, /* 175: "jt", "Joining_Type" */
- 703, -341, /* 177: "lccc", "Lead_Canonical_Combining_Class" */
- 701, -354, /* 179: "lb", "Line_Break" */
- 408, -409, /* 181: "NFC_QC", "NFC_Quick_Check" */
- 411, -412, /* 183: "NFD_QC", "NFD_Quick_Check" */
- 414, -415, /* 185: "NFKC_QC", "NFKC_Quick_Check" */
- 417, -418, /* 187: "NFKD_QC", "NFKD_Quick_Check" */
- 714, -450, /* 189: "nt", "Numeric_Type" */
- 718, -532, /* 191: "sc", "Script" */
- 521, -538, /* 193: "SB", "Sentence_Break" */
- 730, -609, /* 195: "tccc", "Trail_Canonical_Combining_Class" */
- 638, -645, /* 197: "WB", "Word_Break" */
- 693, -208, /* 199: "gcm", "General_Category_Mask" */
- 674, -18, /* 201: "age", "Age" */
- 679, -62, /* 203: "bmg", "Bidi_Mirroring_Glyph" */
- 682, -104, /* 205: "cf", "Case_Folding" */
- 697, -278, /* 207: "isc", "ISO_Comment" */
- 702, -368, /* 209: "lc", "Lowercase_Mapping" */
- 705, -426, /* 211: "na", "Name" */
- 720, -544, /* 213: "sfc", "Simple_Case_Folding" */
- 721, -545, /* 215: "slc", "Simple_Lowercase_Mapping" */
- 725, -546, /* 217: "stc", "Simple_Titlecase_Mapping" */
- 727, -547, /* 219: "suc", "Simple_Uppercase_Mapping" */
- 729, -608, /* 221: "tc", "Titlecase_Mapping" */
- 706, -619, /* 223: "na1", "Unicode_1_Name" */
- 731, -626, /* 225: "uc", "Uppercase_Mapping" */
+ 60, -62, /* 60: "Bidi_C", "Bidi_Control" */
+ 63, -64, /* 62: "Bidi_M", "Bidi_Mirrored" */
+ 581, -110, /* 64: "Sensitive", "Case_Sensitive" */
+ 159, -159, /* 66: "Dash", "Dash" */
+ 156, -165, /* 68: "DI", "Default_Ignorable_Code_Point" */
+ 166, -167, /* 70: "Dep", "Deprecated" */
+ 172, -173, /* 72: "Dia", "Diacritic" */
+ 200, -203, /* 74: "Ext", "Extender" */
+ 130, -215, /* 76: "Comp_Ex", "Full_Composition_Exclusion" */
+ 234, -237, /* 78: "Gr_Base", "Grapheme_Base" */
+ 235, -239, /* 80: "Gr_Ext", "Grapheme_Extend" */
+ 236, -240, /* 82: "Gr_Link", "Grapheme_Link" */
+ 275, -276, /* 84: "Hex", "Hex_Digit" */
+ 284, -284, /* 86: "Hyphen", "Hyphen" */
+ 298, -299, /* 88: "Ideo", "Ideographic" */
+ 288, -290, /* 90: "IDSB", "IDS_Binary_Operator" */
+ 289, -291, /* 92: "IDST", "IDS_Trinary_Operator" */
+ 286, -292, /* 94: "IDC", "ID_Continue" */
+ 287, -293, /* 96: "IDS", "ID_Start" */
+ 315, -317, /* 98: "Join_C", "Join_Control" */
+ 346, -391, /* 100: "LOE", "Logical_Order_Exception" */
+ 393, -394, /* 102: "Lower", "Lowercase" */
+ 406, -406, /* 104: "Math", "Math" */
+ 762, -438, /* 106: "nfcinert", "NFC_Inert" */
+ 763, -441, /* 108: "nfdinert", "NFD_Inert" */
+ 764, -444, /* 110: "nfkcinert", "NFKC_Inert" */
+ 765, -447, /* 112: "nfkdinert", "NFKD_Inert" */
+ 437, -472, /* 114: "NChar", "Noncharacter_Code_Point" */
+ 514, -516, /* 116: "Pat_Syn", "Pattern_Syntax" */
+ 515, -517, /* 118: "Pat_WS", "Pattern_White_Space" */
+ 0, -728, /* 120: "", "alnum" */
+ 0, -730, /* 122: "", "blank" */
+ 0, -747, /* 124: "", "graph" */
+ 0, -769, /* 126: "", "print" */
+ 0, -787, /* 128: "", "xdigit" */
+ 540, -547, /* 130: "QMark", "Quotation_Mark" */
+ 551, -551, /* 132: "Radical", "Radical" */
+ 772, -579, /* 134: "segstart", "Segment_Starter" */
+ 565, -599, /* 136: "SD", "Soft_Dotted" */
+ 570, -570, /* 138: "STerm", "STerm" */
+ 644, -645, /* 140: "Term", "Terminal_Punctuation" */
+ 662, -669, /* 142: "UIdeo", "Unified_Ideograph" */
+ 671, -672, /* 144: "Upper", "Uppercase" */
+ 677, -679, /* 146: "VS", "Variation_Selector" */
+ 691, 693, -776, /* 148: "WSpace", "White_Space", "space" */
+ 697, -699, /* 151: "XIDC", "XID_Continue" */
+ 698, -700, /* 153: "XIDS", "XID_Start" */
+ 768, -485, /* 155: "nv", "Numeric_Value" */
+ 729, -61, /* 157: "bc", "Bidi_Class" */
+ 731, -67, /* 159: "blk", "Block" */
+ 734, -106, /* 161: "ccc", "Canonical_Combining_Class" */
+ 739, -164, /* 163: "dt", "Decomposition_Type" */
+ 740, -185, /* 165: "ea", "East_Asian_Width" */
+ 745, -221, /* 167: "gc", "General_Category" */
+ 217, -238, /* 169: "GCB", "Grapheme_Cluster_Break" */
+ 748, -262, /* 171: "hst", "Hangul_Syllable_Type" */
+ 752, -318, /* 173: "jg", "Joining_Group" */
+ 753, -319, /* 175: "jt", "Joining_Type" */
+ 756, -367, /* 177: "lccc", "Lead_Canonical_Combining_Class" */
+ 754, -382, /* 179: "lb", "Line_Break" */
+ 439, -440, /* 181: "NFC_QC", "NFC_Quick_Check" */
+ 442, -443, /* 183: "NFD_QC", "NFD_Quick_Check" */
+ 445, -446, /* 185: "NFKC_QC", "NFKC_Quick_Check" */
+ 448, -449, /* 187: "NFKD_QC", "NFKD_Quick_Check" */
+ 767, -484, /* 189: "nt", "Numeric_Type" */
+ 771, -576, /* 191: "sc", "Script" */
+ 564, -582, /* 193: "SB", "Sentence_Break" */
+ 783, -657, /* 195: "tccc", "Trail_Canonical_Combining_Class" */
+ 688, -695, /* 197: "WB", "Word_Break" */
+ 746, -222, /* 199: "gcm", "General_Category_Mask" */
+ 727, -18, /* 201: "age", "Age" */
+ 732, -65, /* 203: "bmg", "Bidi_Mirroring_Glyph" */
+ 735, -109, /* 205: "cf", "Case_Folding" */
+ 750, -297, /* 207: "isc", "ISO_Comment" */
+ 755, -396, /* 209: "lc", "Lowercase_Mapping" */
+ 758, -458, /* 211: "na", "Name" */
+ 773, -588, /* 213: "sfc", "Simple_Case_Folding" */
+ 774, -589, /* 215: "slc", "Simple_Lowercase_Mapping" */
+ 778, -590, /* 217: "stc", "Simple_Titlecase_Mapping" */
+ 780, -591, /* 219: "suc", "Simple_Uppercase_Mapping" */
+ 782, -656, /* 221: "tc", "Titlecase_Mapping" */
+ 759, -667, /* 223: "na1", "Unicode_1_Name" */
+ 784, -674, /* 225: "uc", "Uppercase_Mapping" */
6, -31, /* 227: "AN", "Arabic_Number" */
- 41, -478, /* 229: "B", "Paragraph_Separator" */
- 47, -68, /* 231: "BN", "Boundary_Neutral" */
- 98, -122, /* 233: "CS", "Common_Separator" */
- 423, -440, /* 235: "NSM", "Nonspacing_Mark" */
- 170, -182, /* 237: "EN", "European_Number" */
- 171, -183, /* 239: "ES", "European_Separator" */
- 172, -184, /* 241: "ET", "European_Terminator" */
- 319, -345, /* 243: "L", "Left_To_Right" */
- 325, -346, /* 245: "LRE", "Left_To_Right_Embedding" */
- 326, -347, /* 247: "LRO", "Left_To_Right_Override" */
- 454, -469, /* 249: "ON", "Other_Neutral" */
- 475, -491, /* 251: "PDF", "Pop_Directional_Format" */
- 506, -514, /* 253: "R", "Right_To_Left" */
+ 41, -513, /* 229: "B", "Paragraph_Separator" */
+ 47, -72, /* 231: "BN", "Boundary_Neutral" */
+ 103, -129, /* 233: "CS", "Common_Separator" */
+ 455, -474, /* 235: "NSM", "Nonspacing_Mark" */
+ 181, -196, /* 237: "EN", "European_Number" */
+ 182, -197, /* 239: "ES", "European_Separator" */
+ 183, -198, /* 241: "ET", "European_Terminator" */
+ 341, -371, /* 243: "L", "Left_To_Right" */
+ 347, -372, /* 245: "LRE", "Left_To_Right_Embedding" */
+ 348, -373, /* 247: "LRO", "Left_To_Right_Override" */
+ 488, -504, /* 249: "ON", "Other_Neutral" */
+ 510, -533, /* 251: "PDF", "Pop_Directional_Format" */
+ 548, -556, /* 253: "R", "Right_To_Left" */
4, -30, /* 255: "AL", "Arabic_Letter" */
- 507, -515, /* 257: "RLE", "Right_To_Left_Embedding" */
- 508, -516, /* 259: "RLO", "Right_To_Left_Override" */
- 519, -534, /* 261: "S", "Segment_Separator" */
- 640, -643, /* 263: "WS", "White_Space" */
- 190, -192, /* 265: "F", "False" */
- 580, -612, /* 267: "T", "True" */
+ 549, -557, /* 257: "RLE", "Right_To_Left_Embedding" */
+ 550, -558, /* 259: "RLO", "Right_To_Left_Override" */
+ 562, -578, /* 261: "S", "Segment_Separator" */
+ 690, -693, /* 263: "WS", "White_Space" */
+ 204, -206, /* 265: "F", "False" */
+ 627, -660, /* 267: "T", "True" */
0, -17, /* 269: "", "Aegean_Numbers" */
0, -24, /* 271: "", "Alphabetic_Presentation_Forms" */
0, -26, /* 273: "", "Ancient_Greek_Musical_Notation" */
@@ -913,390 +966,441 @@ int32_t NAME_GROUP[] = {
0, -34, /* 283: "", "Arabic_Supplement" */
0, -35, /* 285: "", "Armenian" */
0, -37, /* 287: "", "Arrows" */
- 0, -49, /* 289: "", "Basic_Latin" */
- 0, -55, /* 291: "", "Bengali" */
- 0, -64, /* 293: "", "Block_Elements" */
- 0, -66, /* 295: "", "Bopomofo" */
- 0, -67, /* 297: "", "Bopomofo_Extended" */
- 0, -69, /* 299: "", "Box_Drawing" */
- 0, -72, /* 301: "", "Braille_Patterns" */
- 0, -78, /* 303: "", "Buginese" */
- 0, -80, /* 305: "", "Buhid" */
- 0, -81, /* 307: "", "Byzantine_Musical_Symbols" */
- 0, -110, /* 309: "", "Cherokee" */
- 0, -84, /* 311: "", "CJK_Compatibility" */
- 0, -85, /* 313: "", "CJK_Compatibility_Forms" */
- 0, -86, /* 315: "", "CJK_Compatibility_Ideographs" */
- 0, -87, /* 317: "", "CJK_Compatibility_Ideographs_Supplement" */
- 0, -88, /* 319: "", "CJK_Radicals_Supplement" */
- 0, -89, /* 321: "", "CJK_Strokes" */
- 0, -90, /* 323: "", "CJK_Symbols_and_Punctuation" */
- 0, -91, /* 325: "", "CJK_Unified_Ideographs" */
- 0, -92, /* 327: "", "CJK_Unified_Ideographs_Extension_A" */
- 0, -93, /* 329: "", "CJK_Unified_Ideographs_Extension_B" */
- 0, -116, /* 331: "", "Combining_Diacritical_Marks" */
- 0, -117, /* 333: "", "Combining_Diacritical_Marks_Supplement" */
- 0, -119, /* 335: "", "Combining_Half_Marks" */
- 0, -118, /* 337: "", "Combining_Diacritical_Marks_for_Symbols" */
- 0, -129, /* 339: "", "Control_Pictures" */
- 0, -131, /* 341: "", "Coptic" */
- 0, -135, /* 343: "", "Currency_Symbols" */
- 0, -137, /* 345: "", "Cypriot_Syllabary" */
- 0, -138, /* 347: "", "Cyrillic" */
- 0, 139, -140, /* 349: "", "Cyrillic_Supplement", "Cyrillic_Supplementary" */
- 0, -157, /* 352: "", "Deseret" */
- 0, -159, /* 354: "", "Devanagari" */
- 0, -164, /* 356: "", "Dingbats" */
- 0, -175, /* 358: "", "Enclosed_Alphanumerics" */
- 0, -176, /* 360: "", "Enclosed_CJK_Letters_and_Months" */
- 0, -179, /* 362: "", "Ethiopic" */
- 0, -180, /* 364: "", "Ethiopic_Extended" */
- 0, -181, /* 366: "", "Ethiopic_Supplement" */
- 0, -209, /* 368: "", "General_Punctuation" */
- 0, -210, /* 370: "", "Geometric_Shapes" */
- 0, -212, /* 372: "", "Georgian" */
- 0, -213, /* 374: "", "Georgian_Supplement" */
- 0, -215, /* 376: "", "Glagolitic" */
- 0, -218, /* 378: "", "Gothic" */
- 0, -228, /* 380: "", "Greek_and_Coptic" */
- 0, -227, /* 382: "", "Greek_Extended" */
- 0, -230, /* 384: "", "Gujarati" */
- 0, -232, /* 386: "", "Gurmukhi" */
- 0, -240, /* 388: "", "Halfwidth_and_Fullwidth_Forms" */
- 0, -245, /* 390: "", "Hangul_Compatibility_Jamo" */
- 0, -246, /* 392: "", "Hangul_Jamo" */
- 0, -248, /* 394: "", "Hangul_Syllables" */
- 0, -251, /* 396: "", "Hanunoo" */
- 0, -254, /* 398: "", "Hebrew" */
- 0, -260, /* 400: "", "High_Private_Use_Surrogates" */
- 0, -261, /* 402: "", "High_Surrogates" */
- 0, -263, /* 404: "", "Hiragana" */
- 0, -281, /* 406: "", "Ideographic_Description_Characters" */
- 0, -276, /* 408: "", "IPA_Extensions" */
- 0, -304, /* 410: "", "Kanbun" */
- 0, -305, /* 412: "", "Kangxi_Radicals" */
- 0, -306, /* 414: "", "Kannada" */
- 0, -308, /* 416: "", "Katakana" */
- 0, -310, /* 418: "", "Katakana_Phonetic_Extensions" */
- 0, -313, /* 420: "", "Kharoshthi" */
- 0, -314, /* 422: "", "Khmer" */
- 0, -315, /* 424: "", "Khmer_Symbols" */
- 0, -333, /* 426: "", "Lao" */
- 0, -336, /* 428: "", "Latin-1_Supplement" */
- 0, -337, /* 430: "", "Latin_Extended-A" */
- 0, -339, /* 432: "", "Latin_Extended_Additional" */
- 0, -338, /* 434: "", "Latin_Extended-B" */
- 0, -350, /* 436: "", "Letterlike_Symbols" */
- 0, -352, /* 438: "", "Limbu" */
- 0, -358, /* 440: "", "Linear_B_Ideograms" */
- 0, -359, /* 442: "", "Linear_B_Syllabary" */
- 0, -364, /* 444: "", "Low_Surrogates" */
- 0, -374, /* 446: "", "Malayalam" */
- 0, -379, /* 448: "", "Mathematical_Alphanumeric_Symbols" */
- 0, -380, /* 450: "", "Mathematical_Operators" */
- 0, -389, /* 452: "", "Miscellaneous_Mathematical_Symbols-A" */
- 0, -390, /* 454: "", "Miscellaneous_Mathematical_Symbols-B" */
- 0, -391, /* 456: "", "Miscellaneous_Symbols" */
- 0, -392, /* 458: "", "Miscellaneous_Symbols_and_Arrows" */
- 0, -393, /* 460: "", "Miscellaneous_Technical" */
- 0, -398, /* 462: "", "Modifier_Tone_Letters" */
- 0, -400, /* 464: "", "Mongolian" */
- 0, -401, /* 466: "", "Musical_Symbols" */
- 0, -402, /* 468: "", "Myanmar" */
- 0, -430, /* 470: "", "New_Tai_Lue" */
- 0, -434, /* 472: "", "No_Block" */
- 0, -448, /* 474: "", "Number_Forms" */
- 0, -458, /* 476: "", "Ogham" */
- 0, -459, /* 478: "", "Old_Italic" */
- 0, -460, /* 480: "", "Old_Persian" */
- 0, -462, /* 482: "", "Optical_Character_Recognition" */
- 0, -463, /* 484: "", "Oriya" */
- 0, -466, /* 486: "", "Osmanya" */
- 0, -487, /* 488: "", "Phonetic_Extensions" */
- 0, -488, /* 490: "", "Phonetic_Extensions_Supplement" */
- 0, -495, /* 492: "", "Private_Use_Area" */
- 0, -517, /* 494: "", "Runic" */
- 0, -541, /* 496: "", "Shavian" */
- 0, -549, /* 498: "", "Sinhala" */
- 0, -553, /* 500: "", "Small_Form_Variants" */
- 0, -560, /* 502: "", "Spacing_Modifier_Letters" */
- 0, -561, /* 504: "", "Specials" */
- 0, -565, /* 506: "", "Superscripts_and_Subscripts" */
- 0, -566, /* 508: "", "Supplemental_Arrows-A" */
- 0, -567, /* 510: "", "Supplemental_Arrows-B" */
- 0, -568, /* 512: "", "Supplemental_Mathematical_Operators" */
- 0, -569, /* 514: "", "Supplemental_Punctuation" */
- 0, -570, /* 516: "", "Supplementary_Private_Use_Area-A" */
- 0, -571, /* 518: "", "Supplementary_Private_Use_Area-B" */
- 0, -575, /* 520: "", "Syloti_Nagri" */
- 0, -578, /* 522: "", "Syriac" */
- 0, -581, /* 524: "", "Tagalog" */
- 0, -583, /* 526: "", "Tagbanwa" */
- 0, -584, /* 528: "", "Tags" */
- 0, -586, /* 530: "", "Tai_Le" */
- 0, -587, /* 532: "", "Tai_Xuan_Jing_Symbols" */
- 0, -590, /* 534: "", "Tamil" */
- 0, -595, /* 536: "", "Telugu" */
- 0, -602, /* 538: "", "Thaana" */
- 0, -603, /* 540: "", "Thai" */
- 0, -604, /* 542: "", "Tibetan" */
- 0, -606, /* 544: "", "Tifinagh" */
- 0, -617, /* 546: "", "Ugaritic" */
- 0, -620, /* 548: "", "Unified_Canadian_Aboriginal_Syllabics" */
- 0, -631, /* 550: "", "Variation_Selectors" */
- 0, -632, /* 552: "", "Variation_Selectors_Supplement" */
- 0, -634, /* 554: "", "Vertical_Forms" */
- 0, -662, /* 556: "", "Yijing_Hexagram_Symbols" */
- 0, -659, /* 558: "", "Yi_Radicals" */
- 0, -660, /* 560: "", "Yi_Syllables" */
- 421, -444, /* 562: "NR", "Not_Reordered" */
- 456, -473, /* 564: "OV", "Overlay" */
- 12, -40, /* 566: "ATBL", "Attached_Below_Left" */
- 11, -39, /* 568: "ATB", "Attached_Below" */
- 10, -38, /* 570: "ATAR", "Attached_Above_Right" */
- 46, -52, /* 572: "BL", "Below_Left" */
- 41, -51, /* 574: "B", "Below" */
- 48, -53, /* 576: "BR", "Below_Right" */
- 319, -343, /* 578: "L", "Left" */
- 506, -512, /* 580: "R", "Right" */
- 4, -15, /* 582: "AL", "Above_Left" */
- 1, -14, /* 584: "A", "Above" */
- 7, -16, /* 586: "AR", "Above_Right" */
- 144, -166, /* 588: "DB", "Double_Below" */
- 143, -165, /* 590: "DA", "Double_Above" */
- 277, -288, /* 592: "IS", "Iota_Subscript" */
- 419, -446, /* 594: "NK", "Nukta" */
- 300, -303, /* 596: "KV", "Kana_Voicing" */
- 628, -635, /* 598: "VR", "Virama" */
- 680, -100, /* 600: "can", "Canonical" */
- 688, -111, /* 602: "enc", "Circle" */
- 684, -124, /* 604: "com", "Compat" */
- 689, -195, /* 606: "fin", "Final" */
- 690, -198, /* 608: "font", "Font" */
- 691, -200, /* 610: "fra", "Fraction" */
- 696, -284, /* 612: "init", "Initial" */
- 698, -289, /* 614: "iso", "Isolated" */
- 704, -384, /* 616: "med", "Medial" */
- 707, -427, /* 618: "nar", "Narrow" */
- 708, -436, /* 620: "nb", "Nobreak" */
- 713, -439, /* 622: "none", "None" */
- 722, -552, /* 624: "sml", "Small" */
- 724, -562, /* 626: "sqr", "Square" */
- 726, -563, /* 628: "sub", "Sub" */
- 728, -564, /* 630: "sup", "Super" */
- 732, -633, /* 632: "vert", "Vertical" */
- 733, -644, /* 634: "wide", "Wide" */
- 1, -25, /* 636: "A", "Ambiguous" */
- 190, -202, /* 638: "F", "Fullwidth" */
- 234, -239, /* 640: "H", "Halfwidth" */
- 425, -427, /* 642: "Na", "Narrow" */
- 404, -429, /* 644: "N", "Neutral" */
- 637, -644, /* 646: "W", "Wide" */
- 382, -559, /* 648: "Mc", "Spacing_Mark" */
- 483, -126, /* 650: "Pc", "Connector_Punctuation" */
- 107, 128, -683, /* 652: "Cc", "Control", "cntrl" */
- 531, -134, /* 655: "Sc", "Currency_Symbol" */
- 484, -149, /* 657: "Pd", "Dash_Punctuation" */
- 428, 152, -685, /* 659: "Nd", "Decimal_Number", "digit" */
- 383, -177, /* 662: "Me", "Enclosing_Mark" */
- 485, -113, /* 664: "Pe", "Close_Punctuation" */
- 486, -196, /* 666: "Pf", "Final_Punctuation" */
- 108, -199, /* 668: "Cf", "Format" */
- 114, -618, /* 670: "Cn", "Unassigned" */
- 489, -285, /* 672: "Pi", "Initial_Punctuation" */
- 432, -349, /* 674: "Nl", "Letter_Number" */
- 670, -356, /* 676: "Zl", "Line_Separator" */
- 360, -367, /* 678: "Ll", "Lowercase_Letter" */
- 551, -378, /* 680: "Sm", "Math_Symbol" */
- 361, -396, /* 682: "Lm", "Modifier_Letter" */
- 550, -397, /* 684: "Sk", "Modifier_Symbol" */
- 395, -440, /* 686: "Mn", "Nonspacing_Mark" */
- 362, -468, /* 688: "Lo", "Other_Letter" */
- 433, -470, /* 690: "No", "Other_Number" */
- 490, -471, /* 692: "Po", "Other_Punctuation" */
- 554, -472, /* 694: "So", "Other_Symbol" */
- 671, -478, /* 696: "Zp", "Paragraph_Separator" */
- 115, -494, /* 698: "Co", "Private_Use" */
- 672, -558, /* 700: "Zs", "Space_Separator" */
- 496, -461, /* 702: "Ps", "Open_Punctuation" */
- 133, -572, /* 704: "Cs", "Surrogate" */
- 369, -607, /* 706: "Lt", "Titlecase_Letter" */
- 370, -625, /* 708: "Lu", "Uppercase_Letter" */
- 82, -467, /* 710: "C", "Other" */
- 320, -106, /* 712: "LC", "Cased_Letter" */
- 319, -348, /* 714: "L", "Letter" */
- 371, -376, /* 716: "M", "Mark" */
- 404, -447, /* 718: "N", "Number" */
- 474, 497, -717, /* 720: "P", "Punctuation", "punct" */
- 519, -576, /* 723: "S", "Symbol" */
- 665, -540, /* 725: "Z", "Separator" */
- 319, -342, /* 727: "L", "Leading_Jamo" */
- 328, -329, /* 729: "LVT", "LVT_Syllable" */
- 327, -330, /* 731: "LV", "LV_Syllable" */
- 405, -443, /* 733: "NA", "Not_Applicable" */
- 580, -610, /* 735: "T", "Trailing_Jamo" */
- 627, -636, /* 737: "V", "Vowel_Jamo" */
- 0, -19, /* 739: "", "Ain" */
- 0, -20, /* 741: "", "Alaph" */
- 0, -21, /* 743: "", "Alef" */
- 0, -50, /* 745: "", "Beh" */
- 0, -56, /* 747: "", "Beth" */
- 0, -146, /* 749: "", "Dal" */
- 0, -147, /* 751: "", "Dalath_Rish" */
- 0, -169, /* 753: "", "E" */
- 0, -193, /* 755: "", "Fe" */
- 0, -194, /* 757: "", "Feh" */
- 0, -197, /* 759: "", "Final_Semkath" */
- 0, -205, /* 761: "", "Gaf" */
- 0, -206, /* 763: "", "Gamal" */
- 0, -238, /* 765: "", "Hah" */
- 0, -241, /* 767: "", "Hamza_On_Heh_Goal" */
- 0, -252, /* 769: "", "He" */
- 0, -255, /* 771: "", "Heh" */
- 0, -256, /* 773: "", "Heh_Goal" */
- 0, -257, /* 775: "", "Heth" */
- 0, -301, /* 777: "", "Kaf" */
- 0, -307, /* 779: "", "Kaph" */
- 0, -311, /* 781: "", "Khaph" */
- 0, -318, /* 783: "", "Knotted_Heh" */
- 0, -331, /* 785: "", "Lam" */
- 0, -332, /* 787: "", "Lamadh" */
- 0, -385, /* 789: "", "Meem" */
- 0, -388, /* 791: "", "Mim" */
- 0, -442, /* 793: "", "Noon" */
- 0, -435, /* 795: "", "No_Joining_Group" */
- 0, -452, /* 797: "", "Nun" */
- 0, -485, /* 799: "", "Pe" */
- 0, -502, /* 801: "", "Qaf" */
- 0, -503, /* 803: "", "Qaph" */
- 0, -510, /* 805: "", "Reh" */
- 0, -511, /* 807: "", "Reversed_Pe" */
- 0, -529, /* 809: "", "Sad" */
- 0, -530, /* 811: "", "Sadhe" */
- 0, -533, /* 813: "", "Seen" */
- 0, -536, /* 815: "", "Semkath" */
- 0, -543, /* 817: "", "Shin" */
- 0, -573, /* 819: "", "Swash_Kaf" */
- 0, -579, /* 821: "", "Syriac_Waw" */
- 0, -585, /* 823: "", "Tah" */
- 0, -592, /* 825: "", "Taw" */
- 0, -593, /* 827: "", "Teh_Marbuta" */
- 0, -598, /* 829: "", "Teth" */
- 0, -642, /* 831: "", "Waw" */
- 0, -654, /* 833: "", "Yeh" */
- 0, -655, /* 835: "", "Yeh_Barree" */
- 0, -656, /* 837: "", "Yeh_With_Tail" */
- 0, -663, /* 839: "", "Yudh" */
- 0, -664, /* 841: "", "Yudh_He" */
- 0, -668, /* 843: "", "Zain" */
- 0, -669, /* 845: "", "Zhain" */
- 142, -168, /* 847: "D", "Dual_Joining" */
- 82, -295, /* 849: "C", "Join_Causing" */
- 319, -344, /* 851: "L", "Left_Joining" */
- 613, -437, /* 853: "U", "Non_Joining" */
- 506, -513, /* 855: "R", "Right_Joining" */
- 580, -611, /* 857: "T", "Transparent" */
- 4, -23, /* 859: "AL", "Alphabetic" */
- 3, -25, /* 861: "AI", "Ambiguous" */
- 43, -73, /* 863: "BA", "Break_After" */
- 44, -74, /* 865: "BB", "Break_Before" */
- 42, -75, /* 867: "B2", "Break_Both" */
- 528, -76, /* 869: "SY", "Break_Symbols" */
- 97, -103, /* 871: "CR", "Carriage_Return" */
- 94, -113, /* 873: "CL", "Close_Punctuation" */
- 95, -120, /* 875: "CM", "Combining_Mark" */
- 520, -125, /* 877: "SA", "Complex_Context" */
- 83, -127, /* 879: "CB", "Contingent_Break" */
- 173, -185, /* 881: "EX", "Exclamation" */
- 204, -216, /* 883: "GL", "Glue" */
- 235, -235, /* 885: "H2", "H2" */
- 236, -236, /* 887: "H3", "H3" */
- 237, -265, /* 889: "HY", "Hyphen" */
- 266, -280, /* 891: "ID", "Ideographic" */
- 277, -282, /* 893: "IS", "Infix_Numeric" */
- 275, 286, -287, /* 895: "IN", "Inseparable", "Inseperable" */
- 291, -291, /* 898: "JL", "JL" */
- 292, -292, /* 900: "JT", "JT" */
- 293, -293, /* 902: "JV", "JV" */
- 322, -355, /* 904: "LF", "Line_Feed" */
- 45, -375, /* 906: "BK", "Mandatory_Break" */
- 420, -431, /* 908: "NL", "Next_Line" */
- 422, -441, /* 910: "NS", "Nonstarter" */
- 455, -461, /* 912: "OP", "Open_Punctuation" */
- 476, -492, /* 914: "PO", "Postfix_Numeric" */
- 477, -493, /* 916: "PR", "Prefix_Numeric" */
- 499, -504, /* 918: "QU", "Quotation" */
- 525, -557, /* 920: "SP", "Space" */
- 524, -572, /* 922: "SG", "Surrogate" */
- 651, -622, /* 924: "XX", "Unknown" */
- 639, -646, /* 926: "WJ", "Word_Joiner" */
- 666, -667, /* 928: "ZW", "ZWSpace" */
- 150, -151, /* 930: "De", "Decimal" */
- 160, -163, /* 932: "Di", "Digit" */
- 439, -439, /* 934: "None", "None" */
- 445, -449, /* 936: "Nu", "Numeric" */
- 28, -29, /* 938: "Arab", "Arabic" */
- 36, -35, /* 940: "Armn", "Armenian" */
- 54, -55, /* 942: "Beng", "Bengali" */
- 65, -66, /* 944: "Bopo", "Bopomofo" */
- 70, -71, /* 946: "Brai", "Braille" */
- 77, -78, /* 948: "Bugi", "Buginese" */
- 79, -80, /* 950: "Buhd", "Buhid" */
- 102, -99, /* 952: "Cans", "Canadian_Aboriginal" */
- 109, -110, /* 954: "Cher", "Cherokee" */
- 673, -121, /* 956: "Zyyy", "Common" */
- 130, 131, -500, /* 958: "Copt", "Coptic", "Qaac" */
- 132, -136, /* 961: "Cprt", "Cypriot" */
- 141, -138, /* 963: "Cyrl", "Cyrillic" */
- 167, -157, /* 965: "Dsrt", "Deseret" */
- 158, -159, /* 967: "Deva", "Devanagari" */
- 178, -179, /* 969: "Ethi", "Ethiopic" */
- 211, -212, /* 971: "Geor", "Georgian" */
- 214, -215, /* 973: "Glag", "Glagolitic" */
- 217, -218, /* 975: "Goth", "Gothic" */
- 229, -226, /* 977: "Grek", "Greek" */
- 231, -230, /* 979: "Gujr", "Gujarati" */
- 233, -232, /* 981: "Guru", "Gurmukhi" */
- 249, -242, /* 983: "Hani", "Han" */
- 243, -244, /* 985: "Hang", "Hangul" */
- 250, -251, /* 987: "Hano", "Hanunoo" */
- 253, -254, /* 989: "Hebr", "Hebrew" */
- 262, -263, /* 991: "Hira", "Hiragana" */
- 501, -283, /* 993: "Qaai", "Inherited" */
- 317, -306, /* 995: "Knda", "Kannada" */
- 302, -308, /* 997: "Kana", "Katakana" */
- 264, -309, /* 999: "Hrkt", "Katakana_Or_Hiragana" */
- 312, -313, /* 1001: "Khar", "Kharoshthi" */
- 316, -314, /* 1003: "Khmr", "Khmer" */
- 334, -333, /* 1005: "Laoo", "Lao" */
- 340, -335, /* 1007: "Latn", "Latin" */
- 351, -352, /* 1009: "Limb", "Limbu" */
- 353, -357, /* 1011: "Linb", "Linear_B" */
- 394, -374, /* 1013: "Mlym", "Malayalam" */
- 399, -400, /* 1015: "Mong", "Mongolian" */
- 403, -402, /* 1017: "Mymr", "Myanmar" */
- 589, -430, /* 1019: "Talu", "New_Tai_Lue" */
- 457, -458, /* 1021: "Ogam", "Ogham" */
- 290, -459, /* 1023: "Ital", "Old_Italic" */
- 652, -460, /* 1025: "Xpeo", "Old_Persian" */
- 464, -463, /* 1027: "Orya", "Oriya" */
- 465, -466, /* 1029: "Osma", "Osmanya" */
- 518, -517, /* 1031: "Runr", "Runic" */
- 542, -541, /* 1033: "Shaw", "Shavian" */
- 548, -549, /* 1035: "Sinh", "Sinhala" */
- 574, -575, /* 1037: "Sylo", "Syloti_Nagri" */
- 577, -578, /* 1039: "Syrc", "Syriac" */
- 600, -581, /* 1041: "Tglg", "Tagalog" */
- 582, -583, /* 1043: "Tagb", "Tagbanwa" */
- 588, -586, /* 1045: "Tale", "Tai_Le" */
- 591, -590, /* 1047: "Taml", "Tamil" */
- 594, -595, /* 1049: "Telu", "Telugu" */
- 601, -602, /* 1051: "Thaa", "Thaana" */
- 603, -603, /* 1053: "Thai", "Thai" */
- 605, -604, /* 1055: "Tibt", "Tibetan" */
- 599, -606, /* 1057: "Tfng", "Tifinagh" */
- 616, -617, /* 1059: "Ugar", "Ugaritic" */
- 661, -658, /* 1061: "Yiii", "Yi" */
+ 0, -50, /* 289: "", "Balinese" */
+ 0, -51, /* 291: "", "Basic_Latin" */
+ 0, -58, /* 293: "", "Bengali" */
+ 0, -68, /* 295: "", "Block_Elements" */
+ 0, -70, /* 297: "", "Bopomofo" */
+ 0, -71, /* 299: "", "Bopomofo_Extended" */
+ 0, -73, /* 301: "", "Box_Drawing" */
+ 0, -77, /* 303: "", "Braille_Patterns" */
+ 0, -83, /* 305: "", "Buginese" */
+ 0, -85, /* 307: "", "Buhid" */
+ 0, -86, /* 309: "", "Byzantine_Musical_Symbols" */
+ 0, -116, /* 311: "", "Cherokee" */
+ 0, -89, /* 313: "", "CJK_Compatibility" */
+ 0, -90, /* 315: "", "CJK_Compatibility_Forms" */
+ 0, -91, /* 317: "", "CJK_Compatibility_Ideographs" */
+ 0, -92, /* 319: "", "CJK_Compatibility_Ideographs_Supplement" */
+ 0, -93, /* 321: "", "CJK_Radicals_Supplement" */
+ 0, -94, /* 323: "", "CJK_Strokes" */
+ 0, -95, /* 325: "", "CJK_Symbols_and_Punctuation" */
+ 0, -96, /* 327: "", "CJK_Unified_Ideographs" */
+ 0, -97, /* 329: "", "CJK_Unified_Ideographs_Extension_A" */
+ 0, -98, /* 331: "", "CJK_Unified_Ideographs_Extension_B" */
+ 0, -123, /* 333: "", "Combining_Diacritical_Marks" */
+ 0, -124, /* 335: "", "Combining_Diacritical_Marks_Supplement" */
+ 0, -126, /* 337: "", "Combining_Half_Marks" */
+ 0, -125, /* 339: "", "Combining_Diacritical_Marks_for_Symbols" */
+ 0, -136, /* 341: "", "Control_Pictures" */
+ 0, -138, /* 343: "", "Coptic" */
+ 0, -139, /* 345: "", "Counting_Rod_Numerals" */
+ 0, -142, /* 347: "", "Cuneiform" */
+ 0, -143, /* 349: "", "Cuneiform_Numbers_and_Punctuation" */
+ 0, -145, /* 351: "", "Currency_Symbols" */
+ 0, -147, /* 353: "", "Cypriot_Syllabary" */
+ 0, -148, /* 355: "", "Cyrillic" */
+ 0, 149, -150, /* 357: "", "Cyrillic_Supplement", "Cyrillic_Supplementary" */
+ 0, -168, /* 360: "", "Deseret" */
+ 0, -170, /* 362: "", "Devanagari" */
+ 0, -175, /* 364: "", "Dingbats" */
+ 0, -189, /* 366: "", "Enclosed_Alphanumerics" */
+ 0, -190, /* 368: "", "Enclosed_CJK_Letters_and_Months" */
+ 0, -193, /* 370: "", "Ethiopic" */
+ 0, -194, /* 372: "", "Ethiopic_Extended" */
+ 0, -195, /* 374: "", "Ethiopic_Supplement" */
+ 0, -223, /* 376: "", "General_Punctuation" */
+ 0, -225, /* 378: "", "Geometric_Shapes" */
+ 0, -227, /* 380: "", "Georgian" */
+ 0, -228, /* 382: "", "Georgian_Supplement" */
+ 0, -230, /* 384: "", "Glagolitic" */
+ 0, -233, /* 386: "", "Gothic" */
+ 0, -243, /* 388: "", "Greek_and_Coptic" */
+ 0, -242, /* 390: "", "Greek_Extended" */
+ 0, -245, /* 392: "", "Gujarati" */
+ 0, -247, /* 394: "", "Gurmukhi" */
+ 0, -255, /* 396: "", "Halfwidth_and_Fullwidth_Forms" */
+ 0, -260, /* 398: "", "Hangul_Compatibility_Jamo" */
+ 0, -261, /* 400: "", "Hangul_Jamo" */
+ 0, -263, /* 402: "", "Hangul_Syllables" */
+ 0, -268, /* 404: "", "Hanunoo" */
+ 0, -271, /* 406: "", "Hebrew" */
+ 0, -277, /* 408: "", "High_Private_Use_Surrogates" */
+ 0, -278, /* 410: "", "High_Surrogates" */
+ 0, -280, /* 412: "", "Hiragana" */
+ 0, -300, /* 414: "", "Ideographic_Description_Characters" */
+ 0, -295, /* 416: "", "IPA_Extensions" */
+ 0, -326, /* 418: "", "Kanbun" */
+ 0, -327, /* 420: "", "Kangxi_Radicals" */
+ 0, -328, /* 422: "", "Kannada" */
+ 0, -330, /* 424: "", "Katakana" */
+ 0, -332, /* 426: "", "Katakana_Phonetic_Extensions" */
+ 0, -335, /* 428: "", "Kharoshthi" */
+ 0, -336, /* 430: "", "Khmer" */
+ 0, -337, /* 432: "", "Khmer_Symbols" */
+ 0, -355, /* 434: "", "Lao" */
+ 0, -360, /* 436: "", "Latin-1_Supplement" */
+ 0, -361, /* 438: "", "Latin_Extended-A" */
+ 0, -365, /* 440: "", "Latin_Extended_Additional" */
+ 0, -362, /* 442: "", "Latin_Extended-B" */
+ 0, -363, /* 444: "", "Latin_Extended-C" */
+ 0, -364, /* 446: "", "Latin_Extended-D" */
+ 0, -377, /* 448: "", "Letterlike_Symbols" */
+ 0, -379, /* 450: "", "Limbu" */
+ 0, -386, /* 452: "", "Linear_B_Ideograms" */
+ 0, -387, /* 454: "", "Linear_B_Syllabary" */
+ 0, -392, /* 456: "", "Low_Surrogates" */
+ 0, -402, /* 458: "", "Malayalam" */
+ 0, -408, /* 460: "", "Mathematical_Alphanumeric_Symbols" */
+ 0, -409, /* 462: "", "Mathematical_Operators" */
+ 0, -420, /* 464: "", "Miscellaneous_Mathematical_Symbols-A" */
+ 0, -421, /* 466: "", "Miscellaneous_Mathematical_Symbols-B" */
+ 0, -422, /* 468: "", "Miscellaneous_Symbols" */
+ 0, -423, /* 470: "", "Miscellaneous_Symbols_and_Arrows" */
+ 0, -424, /* 472: "", "Miscellaneous_Technical" */
+ 0, -429, /* 474: "", "Modifier_Tone_Letters" */
+ 0, -431, /* 476: "", "Mongolian" */
+ 0, -432, /* 478: "", "Musical_Symbols" */
+ 0, -433, /* 480: "", "Myanmar" */
+ 0, -462, /* 482: "", "New_Tai_Lue" */
+ 0, -451, /* 484: "", "NKo" */
+ 0, -468, /* 486: "", "No_Block" */
+ 0, -482, /* 488: "", "Number_Forms" */
+ 0, -492, /* 490: "", "Ogham" */
+ 0, -493, /* 492: "", "Old_Italic" */
+ 0, -494, /* 494: "", "Old_Persian" */
+ 0, -496, /* 496: "", "Optical_Character_Recognition" */
+ 0, -497, /* 498: "", "Oriya" */
+ 0, -501, /* 500: "", "Osmanya" */
+ 0, -524, /* 502: "", "Phags-pa" */
+ 0, -527, /* 504: "", "Phoenician" */
+ 0, -528, /* 506: "", "Phonetic_Extensions" */
+ 0, -529, /* 508: "", "Phonetic_Extensions_Supplement" */
+ 0, -537, /* 510: "", "Private_Use_Area" */
+ 0, -560, /* 512: "", "Runic" */
+ 0, -585, /* 514: "", "Shavian" */
+ 0, -593, /* 516: "", "Sinhala" */
+ 0, -597, /* 518: "", "Small_Form_Variants" */
+ 0, -604, /* 520: "", "Spacing_Modifier_Letters" */
+ 0, -605, /* 522: "", "Specials" */
+ 0, -609, /* 524: "", "Superscripts_and_Subscripts" */
+ 0, -610, /* 526: "", "Supplemental_Arrows-A" */
+ 0, -611, /* 528: "", "Supplemental_Arrows-B" */
+ 0, -612, /* 530: "", "Supplemental_Mathematical_Operators" */
+ 0, -613, /* 532: "", "Supplemental_Punctuation" */
+ 0, -614, /* 534: "", "Supplementary_Private_Use_Area-A" */
+ 0, -615, /* 536: "", "Supplementary_Private_Use_Area-B" */
+ 0, -619, /* 538: "", "Syloti_Nagri" */
+ 0, -623, /* 540: "", "Syriac" */
+ 0, -628, /* 542: "", "Tagalog" */
+ 0, -630, /* 544: "", "Tagbanwa" */
+ 0, -631, /* 546: "", "Tags" */
+ 0, -633, /* 548: "", "Tai_Le" */
+ 0, -634, /* 550: "", "Tai_Xuan_Jing_Symbols" */
+ 0, -637, /* 552: "", "Tamil" */
+ 0, -642, /* 554: "", "Telugu" */
+ 0, -650, /* 556: "", "Thaana" */
+ 0, -651, /* 558: "", "Thai" */
+ 0, -652, /* 560: "", "Tibetan" */
+ 0, -654, /* 562: "", "Tifinagh" */
+ 0, -665, /* 564: "", "Ugaritic" */
+ 0, -668, /* 566: "", "Unified_Canadian_Aboriginal_Syllabics" */
+ 0, -680, /* 568: "", "Variation_Selectors" */
+ 0, -681, /* 570: "", "Variation_Selectors_Supplement" */
+ 0, -683, /* 572: "", "Vertical_Forms" */
+ 0, -713, /* 574: "", "Yijing_Hexagram_Symbols" */
+ 0, -710, /* 576: "", "Yi_Radicals" */
+ 0, -711, /* 578: "", "Yi_Syllables" */
+ 453, -478, /* 580: "NR", "Not_Reordered" */
+ 490, -508, /* 582: "OV", "Overlay" */
+ 12, -40, /* 584: "ATBL", "Attached_Below_Left" */
+ 11, -39, /* 586: "ATB", "Attached_Below" */
+ 10, -38, /* 588: "ATAR", "Attached_Above_Right" */
+ 46, -55, /* 590: "BL", "Below_Left" */
+ 41, -54, /* 592: "B", "Below" */
+ 48, -56, /* 594: "BR", "Below_Right" */
+ 341, -369, /* 596: "L", "Left" */
+ 548, -554, /* 598: "R", "Right" */
+ 4, -15, /* 600: "AL", "Above_Left" */
+ 1, -14, /* 602: "A", "Above" */
+ 7, -16, /* 604: "AR", "Above_Right" */
+ 155, -177, /* 606: "DB", "Double_Below" */
+ 154, -176, /* 608: "DA", "Double_Above" */
+ 296, -308, /* 610: "IS", "Iota_Subscript" */
+ 450, -480, /* 612: "NK", "Nukta" */
+ 321, -325, /* 614: "KV", "Kana_Voicing" */
+ 676, -684, /* 616: "VR", "Virama" */
+ 733, -105, /* 618: "can", "Canonical" */
+ 741, -117, /* 620: "enc", "Circle" */
+ 737, -131, /* 622: "com", "Compat" */
+ 742, -209, /* 624: "fin", "Final" */
+ 743, -212, /* 626: "font", "Font" */
+ 744, -214, /* 628: "fra", "Fraction" */
+ 749, -304, /* 630: "init", "Initial" */
+ 751, -309, /* 632: "iso", "Isolated" */
+ 757, -414, /* 634: "med", "Medial" */
+ 760, -459, /* 636: "nar", "Narrow" */
+ 761, -470, /* 638: "nb", "Nobreak" */
+ 766, -473, /* 640: "none", "None" */
+ 775, -596, /* 642: "sml", "Small" */
+ 777, -606, /* 644: "sqr", "Square" */
+ 779, -607, /* 646: "sub", "Sub" */
+ 781, -608, /* 648: "sup", "Super" */
+ 785, -682, /* 650: "vert", "Vertical" */
+ 786, -694, /* 652: "wide", "Wide" */
+ 1, -25, /* 654: "A", "Ambiguous" */
+ 204, -216, /* 656: "F", "Fullwidth" */
+ 249, -254, /* 658: "H", "Halfwidth" */
+ 457, -459, /* 660: "Na", "Narrow" */
+ 435, -461, /* 662: "N", "Neutral" */
+ 687, -694, /* 664: "W", "Wide" */
+ 412, -603, /* 666: "Mc", "Spacing_Mark" */
+ 518, -133, /* 668: "Pc", "Connector_Punctuation" */
+ 112, 135, -736, /* 670: "Cc", "Control", "cntrl" */
+ 575, -144, /* 673: "Sc", "Currency_Symbol" */
+ 519, -160, /* 675: "Pd", "Dash_Punctuation" */
+ 460, 163, -738, /* 677: "Nd", "Decimal_Number", "digit" */
+ 413, -191, /* 680: "Me", "Enclosing_Mark" */
+ 520, -120, /* 682: "Pe", "Close_Punctuation" */
+ 522, -210, /* 684: "Pf", "Final_Punctuation" */
+ 113, -213, /* 686: "Cf", "Format" */
+ 121, -666, /* 688: "Cn", "Unassigned" */
+ 530, -305, /* 690: "Pi", "Initial_Punctuation" */
+ 466, -376, /* 692: "Nl", "Letter_Number" */
+ 721, -384, /* 694: "Zl", "Line_Separator" */
+ 388, -395, /* 696: "Ll", "Lowercase_Letter" */
+ 595, -407, /* 698: "Sm", "Math_Symbol" */
+ 389, -427, /* 700: "Lm", "Modifier_Letter" */
+ 594, -428, /* 702: "Sk", "Modifier_Symbol" */
+ 426, -474, /* 704: "Mn", "Nonspacing_Mark" */
+ 390, -503, /* 706: "Lo", "Other_Letter" */
+ 467, -505, /* 708: "No", "Other_Number" */
+ 532, -506, /* 710: "Po", "Other_Punctuation" */
+ 598, -507, /* 712: "So", "Other_Symbol" */
+ 722, -513, /* 714: "Zp", "Paragraph_Separator" */
+ 122, -536, /* 716: "Co", "Private_Use" */
+ 723, -602, /* 718: "Zs", "Space_Separator" */
+ 538, -495, /* 720: "Ps", "Open_Punctuation" */
+ 141, -616, /* 722: "Cs", "Surrogate" */
+ 397, -655, /* 724: "Lt", "Titlecase_Letter" */
+ 398, -673, /* 726: "Lu", "Uppercase_Letter" */
+ 87, -502, /* 728: "C", "Other" */
+ 342, -111, /* 730: "LC", "Cased_Letter" */
+ 341, -375, /* 732: "L", "Letter" */
+ 399, -405, /* 734: "M", "Mark" */
+ 435, -481, /* 736: "N", "Number" */
+ 509, 539, -770, /* 738: "P", "Punctuation", "punct" */
+ 562, -620, /* 741: "S", "Symbol" */
+ 716, -584, /* 743: "Z", "Separator" */
+ 341, -368, /* 745: "L", "Leading_Jamo" */
+ 350, -351, /* 747: "LVT", "LVT_Syllable" */
+ 349, -352, /* 749: "LV", "LV_Syllable" */
+ 436, -477, /* 751: "NA", "Not_Applicable" */
+ 627, -658, /* 753: "T", "Trailing_Jamo" */
+ 675, -686, /* 755: "V", "Vowel_Jamo" */
+ 0, -19, /* 757: "", "Ain" */
+ 0, -20, /* 759: "", "Alaph" */
+ 0, -21, /* 761: "", "Alef" */
+ 0, -53, /* 763: "", "Beh" */
+ 0, -59, /* 765: "", "Beth" */
+ 0, -157, /* 767: "", "Dal" */
+ 0, -158, /* 769: "", "Dalath_Rish" */
+ 0, -180, /* 771: "", "E" */
+ 0, -207, /* 773: "", "Fe" */
+ 0, -208, /* 775: "", "Feh" */
+ 0, -211, /* 777: "", "Final_Semkath" */
+ 0, -219, /* 779: "", "Gaf" */
+ 0, -220, /* 781: "", "Gamal" */
+ 0, -253, /* 783: "", "Hah" */
+ 0, -256, /* 785: "", "Hamza_On_Heh_Goal" */
+ 0, -269, /* 787: "", "He" */
+ 0, -272, /* 789: "", "Heh" */
+ 0, -273, /* 791: "", "Heh_Goal" */
+ 0, -274, /* 793: "", "Heth" */
+ 0, -322, /* 795: "", "Kaf" */
+ 0, -329, /* 797: "", "Kaph" */
+ 0, -333, /* 799: "", "Khaph" */
+ 0, -340, /* 801: "", "Knotted_Heh" */
+ 0, -353, /* 803: "", "Lam" */
+ 0, -354, /* 805: "", "Lamadh" */
+ 0, -415, /* 807: "", "Meem" */
+ 0, -419, /* 809: "", "Mim" */
+ 0, -476, /* 811: "", "Noon" */
+ 0, -469, /* 813: "", "No_Joining_Group" */
+ 0, -486, /* 815: "", "Nun" */
+ 0, -520, /* 817: "", "Pe" */
+ 0, -544, /* 819: "", "Qaf" */
+ 0, -545, /* 821: "", "Qaph" */
+ 0, -552, /* 823: "", "Reh" */
+ 0, -553, /* 825: "", "Reversed_Pe" */
+ 0, -572, /* 827: "", "Sad" */
+ 0, -573, /* 829: "", "Sadhe" */
+ 0, -577, /* 831: "", "Seen" */
+ 0, -580, /* 833: "", "Semkath" */
+ 0, -587, /* 835: "", "Shin" */
+ 0, -617, /* 837: "", "Swash_Kaf" */
+ 0, -624, /* 839: "", "Syriac_Waw" */
+ 0, -632, /* 841: "", "Tah" */
+ 0, -639, /* 843: "", "Taw" */
+ 0, -640, /* 845: "", "Teh_Marbuta" */
+ 0, -646, /* 847: "", "Teth" */
+ 0, -692, /* 849: "", "Waw" */
+ 0, -705, /* 851: "", "Yeh" */
+ 0, -706, /* 853: "", "Yeh_Barree" */
+ 0, -707, /* 855: "", "Yeh_With_Tail" */
+ 0, -714, /* 857: "", "Yudh" */
+ 0, -715, /* 859: "", "Yudh_He" */
+ 0, -719, /* 861: "", "Zain" */
+ 0, -720, /* 863: "", "Zhain" */
+ 153, -179, /* 865: "D", "Dual_Joining" */
+ 87, -316, /* 867: "C", "Join_Causing" */
+ 341, -370, /* 869: "L", "Left_Joining" */
+ 661, -471, /* 871: "U", "Non_Joining" */
+ 548, -555, /* 873: "R", "Right_Joining" */
+ 627, -659, /* 875: "T", "Transparent" */
+ 4, -23, /* 877: "AL", "Alphabetic" */
+ 3, -25, /* 879: "AI", "Ambiguous" */
+ 43, -78, /* 881: "BA", "Break_After" */
+ 44, -79, /* 883: "BB", "Break_Before" */
+ 42, -80, /* 885: "B2", "Break_Both" */
+ 571, -81, /* 887: "SY", "Break_Symbols" */
+ 102, -108, /* 889: "CR", "Carriage_Return" */
+ 99, -120, /* 891: "CL", "Close_Punctuation" */
+ 100, -127, /* 893: "CM", "Combining_Mark" */
+ 563, -132, /* 895: "SA", "Complex_Context" */
+ 88, -134, /* 897: "CB", "Contingent_Break" */
+ 184, -199, /* 899: "EX", "Exclamation" */
+ 218, -231, /* 901: "GL", "Glue" */
+ 250, -250, /* 903: "H2", "H2" */
+ 251, -251, /* 905: "H3", "H3" */
+ 252, -284, /* 907: "HY", "Hyphen" */
+ 285, -299, /* 909: "ID", "Ideographic" */
+ 296, -302, /* 911: "IS", "Infix_Numeric" */
+ 294, 306, -307, /* 913: "IN", "Inseparable", "Inseperable" */
+ 311, -311, /* 916: "JL", "JL" */
+ 312, -312, /* 918: "JT", "JT" */
+ 313, -313, /* 920: "JV", "JV" */
+ 344, -383, /* 922: "LF", "Line_Feed" */
+ 45, -404, /* 924: "BK", "Mandatory_Break" */
+ 452, -463, /* 926: "NL", "Next_Line" */
+ 454, -475, /* 928: "NS", "Nonstarter" */
+ 489, -495, /* 930: "OP", "Open_Punctuation" */
+ 511, -534, /* 932: "PO", "Postfix_Numeric" */
+ 512, -535, /* 934: "PR", "Prefix_Numeric" */
+ 541, -546, /* 936: "QU", "Quotation" */
+ 568, -601, /* 938: "SP", "Space" */
+ 567, -616, /* 940: "SG", "Surrogate" */
+ 701, -670, /* 942: "XX", "Unknown" */
+ 689, -696, /* 944: "WJ", "Word_Joiner" */
+ 717, -718, /* 946: "ZW", "ZWSpace" */
+ 161, -162, /* 948: "De", "Decimal" */
+ 171, -174, /* 950: "Di", "Digit" */
+ 473, -473, /* 952: "None", "None" */
+ 479, -483, /* 954: "Nu", "Numeric" */
+ 28, -29, /* 956: "Arab", "Arabic" */
+ 36, -35, /* 958: "Armn", "Armenian" */
+ 49, -50, /* 960: "Bali", "Balinese" */
+ 52, -52, /* 962: "Batk", "Batk" */
+ 57, -58, /* 964: "Beng", "Bengali" */
+ 66, -66, /* 966: "Blis", "Blis" */
+ 69, -70, /* 968: "Bopo", "Bopomofo" */
+ 74, -74, /* 970: "Brah", "Brah" */
+ 75, -76, /* 972: "Brai", "Braille" */
+ 82, -83, /* 974: "Bugi", "Buginese" */
+ 84, -85, /* 976: "Buhd", "Buhid" */
+ 107, -104, /* 978: "Cans", "Canadian_Aboriginal" */
+ 114, -114, /* 980: "Cham", "Cham" */
+ 115, -116, /* 982: "Cher", "Cherokee" */
+ 118, -118, /* 984: "Cirt", "Cirt" */
+ 725, -128, /* 986: "Zyyy", "Common" */
+ 137, 138, -542, /* 988: "Copt", "Coptic", "Qaac" */
+ 703, -142, /* 991: "Xsux", "Cuneiform" */
+ 140, -146, /* 993: "Cprt", "Cypriot" */
+ 151, -148, /* 995: "Cyrl", "Cyrillic" */
+ 186, -186, /* 997: "Egyd", "Egyd" */
+ 178, -168, /* 999: "Dsrt", "Deseret" */
+ 169, -170, /* 1001: "Deva", "Devanagari" */
+ 626, -626, /* 1003: "Syrn", "Syrn" */
+ 188, -188, /* 1005: "Egyp", "Egyp" */
+ 622, -622, /* 1007: "Syre", "Syre" */
+ 192, -193, /* 1009: "Ethi", "Ethiopic" */
+ 226, -227, /* 1011: "Geor", "Georgian" */
+ 229, -230, /* 1013: "Glag", "Glagolitic" */
+ 232, -233, /* 1015: "Goth", "Gothic" */
+ 244, -241, /* 1017: "Grek", "Greek" */
+ 246, -245, /* 1019: "Gujr", "Gujarati" */
+ 248, -247, /* 1021: "Guru", "Gurmukhi" */
+ 264, -257, /* 1023: "Hani", "Han" */
+ 258, -259, /* 1025: "Hang", "Hangul" */
+ 265, -268, /* 1027: "Hano", "Hanunoo" */
+ 301, -301, /* 1029: "Inds", "Inds" */
+ 270, -271, /* 1031: "Hebr", "Hebrew" */
+ 187, -187, /* 1033: "Egyh", "Egyh" */
+ 279, -280, /* 1035: "Hira", "Hiragana" */
+ 543, -303, /* 1037: "Qaai", "Inherited" */
+ 314, -314, /* 1039: "Java", "Java" */
+ 339, -328, /* 1041: "Knda", "Kannada" */
+ 324, -330, /* 1043: "Kana", "Katakana" */
+ 282, -331, /* 1045: "Hrkt", "Katakana_Or_Hiragana" */
+ 323, -323, /* 1047: "Kali", "Kali" */
+ 334, -335, /* 1049: "Khar", "Kharoshthi" */
+ 338, -336, /* 1051: "Khmr", "Khmer" */
+ 224, -224, /* 1053: "Geok", "Geok" */
+ 356, -355, /* 1055: "Laoo", "Lao" */
+ 366, -359, /* 1057: "Latn", "Latin" */
+ 357, -357, /* 1059: "Latf", "Latf" */
+ 358, -358, /* 1061: "Latg", "Latg" */
+ 374, -374, /* 1063: "Lepc", "Lepc" */
+ 378, -379, /* 1065: "Limb", "Limbu" */
+ 380, -380, /* 1067: "Lina", "Lina" */
+ 381, -385, /* 1069: "Linb", "Linear_B" */
+ 425, -402, /* 1071: "Mlym", "Malayalam" */
+ 403, -403, /* 1073: "Mand", "Mand" */
+ 410, -410, /* 1075: "Maya", "Maya" */
+ 416, -416, /* 1077: "Mero", "Mero" */
+ 430, -431, /* 1079: "Mong", "Mongolian" */
+ 434, -433, /* 1081: "Mymr", "Myanmar" */
+ 636, -462, /* 1083: "Talu", "New_Tai_Lue" */
+ 465, -464, /* 1085: "Nkoo", "Nko" */
+ 491, -492, /* 1087: "Ogam", "Ogham" */
+ 152, -152, /* 1089: "Cyrs", "Cyrs" */
+ 283, -283, /* 1091: "Hung", "Hung" */
+ 310, -493, /* 1093: "Ital", "Old_Italic" */
+ 521, -521, /* 1095: "Perm", "Perm" */
+ 702, -494, /* 1097: "Xpeo", "Old_Persian" */
+ 499, -497, /* 1099: "Orya", "Oriya" */
+ 498, -498, /* 1101: "Orkh", "Orkh" */
+ 500, -501, /* 1103: "Osma", "Osmanya" */
+ 281, -281, /* 1105: "Hmng", "Hmng" */
+ 523, -525, /* 1107: "Phag", "Phags_Pa" */
+ 526, -527, /* 1109: "Phnx", "Phoenician" */
+ 531, -531, /* 1111: "Plrd", "Plrd" */
+ 559, -559, /* 1113: "Roro", "Roro" */
+ 561, -560, /* 1115: "Runr", "Runic" */
+ 574, -574, /* 1117: "Sara", "Sara" */
+ 586, -585, /* 1119: "Shaw", "Shavian" */
+ 266, -266, /* 1121: "Hans", "Hans" */
+ 592, -593, /* 1123: "Sinh", "Sinhala" */
+ 618, -619, /* 1125: "Sylo", "Syloti_Nagri" */
+ 621, -623, /* 1127: "Syrc", "Syriac" */
+ 648, -628, /* 1129: "Tglg", "Tagalog" */
+ 629, -630, /* 1131: "Tagb", "Tagbanwa" */
+ 635, -633, /* 1133: "Tale", "Tai_Le" */
+ 638, -637, /* 1135: "Taml", "Tamil" */
+ 641, -642, /* 1137: "Telu", "Telugu" */
+ 643, -643, /* 1139: "Teng", "Teng" */
+ 649, -650, /* 1141: "Thaa", "Thaana" */
+ 651, -651, /* 1143: "Thai", "Thai" */
+ 653, -652, /* 1145: "Tibt", "Tibetan" */
+ 647, -654, /* 1147: "Tfng", "Tifinagh" */
+ 267, -267, /* 1149: "Hant", "Hant" */
+ 664, -665, /* 1151: "Ugar", "Ugaritic" */
+ 726, -670, /* 1153: "Zzzz", "Unknown" */
+ 724, -724, /* 1155: "Zxxx", "Zxxx" */
+ 678, -678, /* 1157: "Vaii", "Vaii" */
+ 685, -685, /* 1159: "Visp", "Visp" */
+ 625, -625, /* 1161: "Syrj", "Syrj" */
+ 712, -709, /* 1163: "Yiii", "Yi" */
};
#define MAX_NAMES_PER_GROUP 3
@@ -1406,7 +1510,7 @@ const Alias VALUES_binprop[] = {
Alias((int32_t) 1, 267),
};
-const int32_t VALUES_blk_COUNT = 146;
+const int32_t VALUES_blk_COUNT = 155;
const Alias VALUES_blk[] = {
Alias((int32_t) UBLOCK_AEGEAN_NUMBERS, 269),
@@ -1419,524 +1523,575 @@ const Alias VALUES_blk[] = {
Alias((int32_t) UBLOCK_ARABIC_SUPPLEMENT, 283),
Alias((int32_t) UBLOCK_ARMENIAN, 285),
Alias((int32_t) UBLOCK_ARROWS, 287),
- Alias((int32_t) UBLOCK_BASIC_LATIN, 289),
- Alias((int32_t) UBLOCK_BENGALI, 291),
- Alias((int32_t) UBLOCK_BLOCK_ELEMENTS, 293),
- Alias((int32_t) UBLOCK_BOPOMOFO, 295),
- Alias((int32_t) UBLOCK_BOPOMOFO_EXTENDED, 297),
- Alias((int32_t) UBLOCK_BOX_DRAWING, 299),
- Alias((int32_t) UBLOCK_BRAILLE_PATTERNS, 301),
- Alias((int32_t) UBLOCK_BUGINESE, 303),
- Alias((int32_t) UBLOCK_BUHID, 305),
- Alias((int32_t) UBLOCK_BYZANTINE_MUSICAL_SYMBOLS, 307),
- Alias((int32_t) UBLOCK_CHEROKEE, 309),
- Alias((int32_t) UBLOCK_CJK_COMPATIBILITY, 311),
- Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_FORMS, 313),
- Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, 315),
- Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT, 317),
- Alias((int32_t) UBLOCK_CJK_RADICALS_SUPPLEMENT, 319),
- Alias((int32_t) UBLOCK_CJK_STROKES, 321),
- Alias((int32_t) UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION, 323),
- Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS, 325),
- Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A, 327),
- Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, 329),
- Alias((int32_t) UBLOCK_COMBINING_DIACRITICAL_MARKS, 331),
- Alias((int32_t) UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT, 333),
- Alias((int32_t) UBLOCK_COMBINING_HALF_MARKS, 335),
- Alias((int32_t) UBLOCK_COMBINING_MARKS_FOR_SYMBOLS, 337),
- Alias((int32_t) UBLOCK_CONTROL_PICTURES, 339),
- Alias((int32_t) UBLOCK_COPTIC, 341),
- Alias((int32_t) UBLOCK_CURRENCY_SYMBOLS, 343),
- Alias((int32_t) UBLOCK_CYPRIOT_SYLLABARY, 345),
- Alias((int32_t) UBLOCK_CYRILLIC, 347),
- Alias((int32_t) UBLOCK_CYRILLIC_SUPPLEMENT, 349),
- Alias((int32_t) UBLOCK_DESERET, 352),
- Alias((int32_t) UBLOCK_DEVANAGARI, 354),
- Alias((int32_t) UBLOCK_DINGBATS, 356),
- Alias((int32_t) UBLOCK_ENCLOSED_ALPHANUMERICS, 358),
- Alias((int32_t) UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS, 360),
- Alias((int32_t) UBLOCK_ETHIOPIC, 362),
- Alias((int32_t) UBLOCK_ETHIOPIC_EXTENDED, 364),
- Alias((int32_t) UBLOCK_ETHIOPIC_SUPPLEMENT, 366),
- Alias((int32_t) UBLOCK_GENERAL_PUNCTUATION, 368),
- Alias((int32_t) UBLOCK_GEOMETRIC_SHAPES, 370),
- Alias((int32_t) UBLOCK_GEORGIAN, 372),
- Alias((int32_t) UBLOCK_GEORGIAN_SUPPLEMENT, 374),
- Alias((int32_t) UBLOCK_GLAGOLITIC, 376),
- Alias((int32_t) UBLOCK_GOTHIC, 378),
- Alias((int32_t) UBLOCK_GREEK, 380),
- Alias((int32_t) UBLOCK_GREEK_EXTENDED, 382),
- Alias((int32_t) UBLOCK_GUJARATI, 384),
- Alias((int32_t) UBLOCK_GURMUKHI, 386),
- Alias((int32_t) UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, 388),
- Alias((int32_t) UBLOCK_HANGUL_COMPATIBILITY_JAMO, 390),
- Alias((int32_t) UBLOCK_HANGUL_JAMO, 392),
- Alias((int32_t) UBLOCK_HANGUL_SYLLABLES, 394),
- Alias((int32_t) UBLOCK_HANUNOO, 396),
- Alias((int32_t) UBLOCK_HEBREW, 398),
- Alias((int32_t) UBLOCK_HIGH_PRIVATE_USE_SURROGATES, 400),
- Alias((int32_t) UBLOCK_HIGH_SURROGATES, 402),
- Alias((int32_t) UBLOCK_HIRAGANA, 404),
- Alias((int32_t) UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS, 406),
- Alias((int32_t) UBLOCK_IPA_EXTENSIONS, 408),
- Alias((int32_t) UBLOCK_KANBUN, 410),
- Alias((int32_t) UBLOCK_KANGXI_RADICALS, 412),
- Alias((int32_t) UBLOCK_KANNADA, 414),
- Alias((int32_t) UBLOCK_KATAKANA, 416),
- Alias((int32_t) UBLOCK_KATAKANA_PHONETIC_EXTENSIONS, 418),
- Alias((int32_t) UBLOCK_KHAROSHTHI, 420),
- Alias((int32_t) UBLOCK_KHMER, 422),
- Alias((int32_t) UBLOCK_KHMER_SYMBOLS, 424),
- Alias((int32_t) UBLOCK_LAO, 426),
- Alias((int32_t) UBLOCK_LATIN_1_SUPPLEMENT, 428),
- Alias((int32_t) UBLOCK_LATIN_EXTENDED_A, 430),
- Alias((int32_t) UBLOCK_LATIN_EXTENDED_ADDITIONAL, 432),
- Alias((int32_t) UBLOCK_LATIN_EXTENDED_B, 434),
- Alias((int32_t) UBLOCK_LETTERLIKE_SYMBOLS, 436),
- Alias((int32_t) UBLOCK_LIMBU, 438),
- Alias((int32_t) UBLOCK_LINEAR_B_IDEOGRAMS, 440),
- Alias((int32_t) UBLOCK_LINEAR_B_SYLLABARY, 442),
- Alias((int32_t) UBLOCK_LOW_SURROGATES, 444),
- Alias((int32_t) UBLOCK_MALAYALAM, 446),
- Alias((int32_t) UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS, 448),
- Alias((int32_t) UBLOCK_MATHEMATICAL_OPERATORS, 450),
- Alias((int32_t) UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A, 452),
- Alias((int32_t) UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B, 454),
- Alias((int32_t) UBLOCK_MISCELLANEOUS_SYMBOLS, 456),
- Alias((int32_t) UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS, 458),
- Alias((int32_t) UBLOCK_MISCELLANEOUS_TECHNICAL, 460),
- Alias((int32_t) UBLOCK_MODIFIER_TONE_LETTERS, 462),
- Alias((int32_t) UBLOCK_MONGOLIAN, 464),
- Alias((int32_t) UBLOCK_MUSICAL_SYMBOLS, 466),
- Alias((int32_t) UBLOCK_MYANMAR, 468),
- Alias((int32_t) UBLOCK_NEW_TAI_LUE, 470),
- Alias((int32_t) UBLOCK_NO_BLOCK, 472),
- Alias((int32_t) UBLOCK_NUMBER_FORMS, 474),
- Alias((int32_t) UBLOCK_OGHAM, 476),
- Alias((int32_t) UBLOCK_OLD_ITALIC, 478),
- Alias((int32_t) UBLOCK_OLD_PERSIAN, 480),
- Alias((int32_t) UBLOCK_OPTICAL_CHARACTER_RECOGNITION, 482),
- Alias((int32_t) UBLOCK_ORIYA, 484),
- Alias((int32_t) UBLOCK_OSMANYA, 486),
- Alias((int32_t) UBLOCK_PHONETIC_EXTENSIONS, 488),
- Alias((int32_t) UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT, 490),
- Alias((int32_t) UBLOCK_PRIVATE_USE_AREA, 492),
- Alias((int32_t) UBLOCK_RUNIC, 494),
- Alias((int32_t) UBLOCK_SHAVIAN, 496),
- Alias((int32_t) UBLOCK_SINHALA, 498),
- Alias((int32_t) UBLOCK_SMALL_FORM_VARIANTS, 500),
- Alias((int32_t) UBLOCK_SPACING_MODIFIER_LETTERS, 502),
- Alias((int32_t) UBLOCK_SPECIALS, 504),
- Alias((int32_t) UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS, 506),
- Alias((int32_t) UBLOCK_SUPPLEMENTAL_ARROWS_A, 508),
- Alias((int32_t) UBLOCK_SUPPLEMENTAL_ARROWS_B, 510),
- Alias((int32_t) UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS, 512),
- Alias((int32_t) UBLOCK_SUPPLEMENTAL_PUNCTUATION, 514),
- Alias((int32_t) UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A, 516),
- Alias((int32_t) UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B, 518),
- Alias((int32_t) UBLOCK_SYLOTI_NAGRI, 520),
- Alias((int32_t) UBLOCK_SYRIAC, 522),
- Alias((int32_t) UBLOCK_TAGALOG, 524),
- Alias((int32_t) UBLOCK_TAGBANWA, 526),
- Alias((int32_t) UBLOCK_TAGS, 528),
- Alias((int32_t) UBLOCK_TAI_LE, 530),
- Alias((int32_t) UBLOCK_TAI_XUAN_JING_SYMBOLS, 532),
- Alias((int32_t) UBLOCK_TAMIL, 534),
- Alias((int32_t) UBLOCK_TELUGU, 536),
- Alias((int32_t) UBLOCK_THAANA, 538),
- Alias((int32_t) UBLOCK_THAI, 540),
- Alias((int32_t) UBLOCK_TIBETAN, 542),
- Alias((int32_t) UBLOCK_TIFINAGH, 544),
- Alias((int32_t) UBLOCK_UGARITIC, 546),
- Alias((int32_t) UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS, 548),
- Alias((int32_t) UBLOCK_VARIATION_SELECTORS, 550),
- Alias((int32_t) UBLOCK_VARIATION_SELECTORS_SUPPLEMENT, 552),
- Alias((int32_t) UBLOCK_VERTICAL_FORMS, 554),
- Alias((int32_t) UBLOCK_YIJING_HEXAGRAM_SYMBOLS, 556),
- Alias((int32_t) UBLOCK_YI_RADICALS, 558),
- Alias((int32_t) UBLOCK_YI_SYLLABLES, 560),
+ Alias((int32_t) UBLOCK_BALINESE, 289),
+ Alias((int32_t) UBLOCK_BASIC_LATIN, 291),
+ Alias((int32_t) UBLOCK_BENGALI, 293),
+ Alias((int32_t) UBLOCK_BLOCK_ELEMENTS, 295),
+ Alias((int32_t) UBLOCK_BOPOMOFO, 297),
+ Alias((int32_t) UBLOCK_BOPOMOFO_EXTENDED, 299),
+ Alias((int32_t) UBLOCK_BOX_DRAWING, 301),
+ Alias((int32_t) UBLOCK_BRAILLE_PATTERNS, 303),
+ Alias((int32_t) UBLOCK_BUGINESE, 305),
+ Alias((int32_t) UBLOCK_BUHID, 307),
+ Alias((int32_t) UBLOCK_BYZANTINE_MUSICAL_SYMBOLS, 309),
+ Alias((int32_t) UBLOCK_CHEROKEE, 311),
+ Alias((int32_t) UBLOCK_CJK_COMPATIBILITY, 313),
+ Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_FORMS, 315),
+ Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, 317),
+ Alias((int32_t) UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT, 319),
+ Alias((int32_t) UBLOCK_CJK_RADICALS_SUPPLEMENT, 321),
+ Alias((int32_t) UBLOCK_CJK_STROKES, 323),
+ Alias((int32_t) UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION, 325),
+ Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS, 327),
+ Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A, 329),
+ Alias((int32_t) UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, 331),
+ Alias((int32_t) UBLOCK_COMBINING_DIACRITICAL_MARKS, 333),
+ Alias((int32_t) UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT, 335),
+ Alias((int32_t) UBLOCK_COMBINING_HALF_MARKS, 337),
+ Alias((int32_t) UBLOCK_COMBINING_MARKS_FOR_SYMBOLS, 339),
+ Alias((int32_t) UBLOCK_CONTROL_PICTURES, 341),
+ Alias((int32_t) UBLOCK_COPTIC, 343),
+ Alias((int32_t) UBLOCK_COUNTING_ROD_NUMERALS, 345),
+ Alias((int32_t) UBLOCK_CUNEIFORM, 347),
+ Alias((int32_t) UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION, 349),
+ Alias((int32_t) UBLOCK_CURRENCY_SYMBOLS, 351),
+ Alias((int32_t) UBLOCK_CYPRIOT_SYLLABARY, 353),
+ Alias((int32_t) UBLOCK_CYRILLIC, 355),
+ Alias((int32_t) UBLOCK_CYRILLIC_SUPPLEMENT, 357),
+ Alias((int32_t) UBLOCK_DESERET, 360),
+ Alias((int32_t) UBLOCK_DEVANAGARI, 362),
+ Alias((int32_t) UBLOCK_DINGBATS, 364),
+ Alias((int32_t) UBLOCK_ENCLOSED_ALPHANUMERICS, 366),
+ Alias((int32_t) UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS, 368),
+ Alias((int32_t) UBLOCK_ETHIOPIC, 370),
+ Alias((int32_t) UBLOCK_ETHIOPIC_EXTENDED, 372),
+ Alias((int32_t) UBLOCK_ETHIOPIC_SUPPLEMENT, 374),
+ Alias((int32_t) UBLOCK_GENERAL_PUNCTUATION, 376),
+ Alias((int32_t) UBLOCK_GEOMETRIC_SHAPES, 378),
+ Alias((int32_t) UBLOCK_GEORGIAN, 380),
+ Alias((int32_t) UBLOCK_GEORGIAN_SUPPLEMENT, 382),
+ Alias((int32_t) UBLOCK_GLAGOLITIC, 384),
+ Alias((int32_t) UBLOCK_GOTHIC, 386),
+ Alias((int32_t) UBLOCK_GREEK, 388),
+ Alias((int32_t) UBLOCK_GREEK_EXTENDED, 390),
+ Alias((int32_t) UBLOCK_GUJARATI, 392),
+ Alias((int32_t) UBLOCK_GURMUKHI, 394),
+ Alias((int32_t) UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, 396),
+ Alias((int32_t) UBLOCK_HANGUL_COMPATIBILITY_JAMO, 398),
+ Alias((int32_t) UBLOCK_HANGUL_JAMO, 400),
+ Alias((int32_t) UBLOCK_HANGUL_SYLLABLES, 402),
+ Alias((int32_t) UBLOCK_HANUNOO, 404),
+ Alias((int32_t) UBLOCK_HEBREW, 406),
+ Alias((int32_t) UBLOCK_HIGH_PRIVATE_USE_SURROGATES, 408),
+ Alias((int32_t) UBLOCK_HIGH_SURROGATES, 410),
+ Alias((int32_t) UBLOCK_HIRAGANA, 412),
+ Alias((int32_t) UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS, 414),
+ Alias((int32_t) UBLOCK_IPA_EXTENSIONS, 416),
+ Alias((int32_t) UBLOCK_KANBUN, 418),
+ Alias((int32_t) UBLOCK_KANGXI_RADICALS, 420),
+ Alias((int32_t) UBLOCK_KANNADA, 422),
+ Alias((int32_t) UBLOCK_KATAKANA, 424),
+ Alias((int32_t) UBLOCK_KATAKANA_PHONETIC_EXTENSIONS, 426),
+ Alias((int32_t) UBLOCK_KHAROSHTHI, 428),
+ Alias((int32_t) UBLOCK_KHMER, 430),
+ Alias((int32_t) UBLOCK_KHMER_SYMBOLS, 432),
+ Alias((int32_t) UBLOCK_LAO, 434),
+ Alias((int32_t) UBLOCK_LATIN_1_SUPPLEMENT, 436),
+ Alias((int32_t) UBLOCK_LATIN_EXTENDED_A, 438),
+ Alias((int32_t) UBLOCK_LATIN_EXTENDED_ADDITIONAL, 440),
+ Alias((int32_t) UBLOCK_LATIN_EXTENDED_B, 442),
+ Alias((int32_t) UBLOCK_LATIN_EXTENDED_C, 444),
+ Alias((int32_t) UBLOCK_LATIN_EXTENDED_D, 446),
+ Alias((int32_t) UBLOCK_LETTERLIKE_SYMBOLS, 448),
+ Alias((int32_t) UBLOCK_LIMBU, 450),
+ Alias((int32_t) UBLOCK_LINEAR_B_IDEOGRAMS, 452),
+ Alias((int32_t) UBLOCK_LINEAR_B_SYLLABARY, 454),
+ Alias((int32_t) UBLOCK_LOW_SURROGATES, 456),
+ Alias((int32_t) UBLOCK_MALAYALAM, 458),
+ Alias((int32_t) UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS, 460),
+ Alias((int32_t) UBLOCK_MATHEMATICAL_OPERATORS, 462),
+ Alias((int32_t) UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A, 464),
+ Alias((int32_t) UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B, 466),
+ Alias((int32_t) UBLOCK_MISCELLANEOUS_SYMBOLS, 468),
+ Alias((int32_t) UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS, 470),
+ Alias((int32_t) UBLOCK_MISCELLANEOUS_TECHNICAL, 472),
+ Alias((int32_t) UBLOCK_MODIFIER_TONE_LETTERS, 474),
+ Alias((int32_t) UBLOCK_MONGOLIAN, 476),
+ Alias((int32_t) UBLOCK_MUSICAL_SYMBOLS, 478),
+ Alias((int32_t) UBLOCK_MYANMAR, 480),
+ Alias((int32_t) UBLOCK_NEW_TAI_LUE, 482),
+ Alias((int32_t) UBLOCK_NKO, 484),
+ Alias((int32_t) UBLOCK_NO_BLOCK, 486),
+ Alias((int32_t) UBLOCK_NUMBER_FORMS, 488),
+ Alias((int32_t) UBLOCK_OGHAM, 490),
+ Alias((int32_t) UBLOCK_OLD_ITALIC, 492),
+ Alias((int32_t) UBLOCK_OLD_PERSIAN, 494),
+ Alias((int32_t) UBLOCK_OPTICAL_CHARACTER_RECOGNITION, 496),
+ Alias((int32_t) UBLOCK_ORIYA, 498),
+ Alias((int32_t) UBLOCK_OSMANYA, 500),
+ Alias((int32_t) UBLOCK_PHAGS_PA, 502),
+ Alias((int32_t) UBLOCK_PHOENICIAN, 504),
+ Alias((int32_t) UBLOCK_PHONETIC_EXTENSIONS, 506),
+ Alias((int32_t) UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT, 508),
+ Alias((int32_t) UBLOCK_PRIVATE_USE_AREA, 510),
+ Alias((int32_t) UBLOCK_RUNIC, 512),
+ Alias((int32_t) UBLOCK_SHAVIAN, 514),
+ Alias((int32_t) UBLOCK_SINHALA, 516),
+ Alias((int32_t) UBLOCK_SMALL_FORM_VARIANTS, 518),
+ Alias((int32_t) UBLOCK_SPACING_MODIFIER_LETTERS, 520),
+ Alias((int32_t) UBLOCK_SPECIALS, 522),
+ Alias((int32_t) UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS, 524),
+ Alias((int32_t) UBLOCK_SUPPLEMENTAL_ARROWS_A, 526),
+ Alias((int32_t) UBLOCK_SUPPLEMENTAL_ARROWS_B, 528),
+ Alias((int32_t) UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS, 530),
+ Alias((int32_t) UBLOCK_SUPPLEMENTAL_PUNCTUATION, 532),
+ Alias((int32_t) UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A, 534),
+ Alias((int32_t) UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B, 536),
+ Alias((int32_t) UBLOCK_SYLOTI_NAGRI, 538),
+ Alias((int32_t) UBLOCK_SYRIAC, 540),
+ Alias((int32_t) UBLOCK_TAGALOG, 542),
+ Alias((int32_t) UBLOCK_TAGBANWA, 544),
+ Alias((int32_t) UBLOCK_TAGS, 546),
+ Alias((int32_t) UBLOCK_TAI_LE, 548),
+ Alias((int32_t) UBLOCK_TAI_XUAN_JING_SYMBOLS, 550),
+ Alias((int32_t) UBLOCK_TAMIL, 552),
+ Alias((int32_t) UBLOCK_TELUGU, 554),
+ Alias((int32_t) UBLOCK_THAANA, 556),
+ Alias((int32_t) UBLOCK_THAI, 558),
+ Alias((int32_t) UBLOCK_TIBETAN, 560),
+ Alias((int32_t) UBLOCK_TIFINAGH, 562),
+ Alias((int32_t) UBLOCK_UGARITIC, 564),
+ Alias((int32_t) UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS, 566),
+ Alias((int32_t) UBLOCK_VARIATION_SELECTORS, 568),
+ Alias((int32_t) UBLOCK_VARIATION_SELECTORS_SUPPLEMENT, 570),
+ Alias((int32_t) UBLOCK_VERTICAL_FORMS, 572),
+ Alias((int32_t) UBLOCK_YIJING_HEXAGRAM_SYMBOLS, 574),
+ Alias((int32_t) UBLOCK_YI_RADICALS, 576),
+ Alias((int32_t) UBLOCK_YI_SYLLABLES, 578),
};
const int32_t VALUES_ccc_COUNT = 19;
const Alias VALUES_ccc[] = {
- Alias((int32_t) 0, 562),
- Alias((int32_t) 1, 564),
- Alias((int32_t) 200, 566),
- Alias((int32_t) 202, 568),
- Alias((int32_t) 216, 570),
- Alias((int32_t) 218, 572),
- Alias((int32_t) 220, 574),
- Alias((int32_t) 222, 576),
- Alias((int32_t) 224, 578),
- Alias((int32_t) 226, 580),
- Alias((int32_t) 228, 582),
- Alias((int32_t) 230, 584),
- Alias((int32_t) 232, 586),
- Alias((int32_t) 233, 588),
- Alias((int32_t) 234, 590),
- Alias((int32_t) 240, 592),
- Alias((int32_t) 7, 594),
- Alias((int32_t) 8, 596),
- Alias((int32_t) 9, 598),
+ Alias((int32_t) 0, 580),
+ Alias((int32_t) 1, 582),
+ Alias((int32_t) 200, 584),
+ Alias((int32_t) 202, 586),
+ Alias((int32_t) 216, 588),
+ Alias((int32_t) 218, 590),
+ Alias((int32_t) 220, 592),
+ Alias((int32_t) 222, 594),
+ Alias((int32_t) 224, 596),
+ Alias((int32_t) 226, 598),
+ Alias((int32_t) 228, 600),
+ Alias((int32_t) 230, 602),
+ Alias((int32_t) 232, 604),
+ Alias((int32_t) 233, 606),
+ Alias((int32_t) 234, 608),
+ Alias((int32_t) 240, 610),
+ Alias((int32_t) 7, 612),
+ Alias((int32_t) 8, 614),
+ Alias((int32_t) 9, 616),
};
const int32_t VALUES_dt_COUNT = 18;
const Alias VALUES_dt[] = {
- Alias((int32_t) U_DT_CANONICAL, 600),
- Alias((int32_t) U_DT_CIRCLE, 602),
- Alias((int32_t) U_DT_COMPAT, 604),
- Alias((int32_t) U_DT_FINAL, 606),
- Alias((int32_t) U_DT_FONT, 608),
- Alias((int32_t) U_DT_FRACTION, 610),
- Alias((int32_t) U_DT_INITIAL, 612),
- Alias((int32_t) U_DT_ISOLATED, 614),
- Alias((int32_t) U_DT_MEDIAL, 616),
- Alias((int32_t) U_DT_NARROW, 618),
- Alias((int32_t) U_DT_NOBREAK, 620),
- Alias((int32_t) U_DT_NONE, 622),
- Alias((int32_t) U_DT_SMALL, 624),
- Alias((int32_t) U_DT_SQUARE, 626),
- Alias((int32_t) U_DT_SUB, 628),
- Alias((int32_t) U_DT_SUPER, 630),
- Alias((int32_t) U_DT_VERTICAL, 632),
- Alias((int32_t) U_DT_WIDE, 634),
+ Alias((int32_t) U_DT_CANONICAL, 618),
+ Alias((int32_t) U_DT_CIRCLE, 620),
+ Alias((int32_t) U_DT_COMPAT, 622),
+ Alias((int32_t) U_DT_FINAL, 624),
+ Alias((int32_t) U_DT_FONT, 626),
+ Alias((int32_t) U_DT_FRACTION, 628),
+ Alias((int32_t) U_DT_INITIAL, 630),
+ Alias((int32_t) U_DT_ISOLATED, 632),
+ Alias((int32_t) U_DT_MEDIAL, 634),
+ Alias((int32_t) U_DT_NARROW, 636),
+ Alias((int32_t) U_DT_NOBREAK, 638),
+ Alias((int32_t) U_DT_NONE, 640),
+ Alias((int32_t) U_DT_SMALL, 642),
+ Alias((int32_t) U_DT_SQUARE, 644),
+ Alias((int32_t) U_DT_SUB, 646),
+ Alias((int32_t) U_DT_SUPER, 648),
+ Alias((int32_t) U_DT_VERTICAL, 650),
+ Alias((int32_t) U_DT_WIDE, 652),
};
const int32_t VALUES_ea_COUNT = 6;
const Alias VALUES_ea[] = {
- Alias((int32_t) U_EA_AMBIGUOUS, 636),
- Alias((int32_t) U_EA_FULLWIDTH, 638),
- Alias((int32_t) U_EA_HALFWIDTH, 640),
- Alias((int32_t) U_EA_NARROW, 642),
- Alias((int32_t) U_EA_NEUTRAL, 644),
- Alias((int32_t) U_EA_WIDE, 646),
+ Alias((int32_t) U_EA_AMBIGUOUS, 654),
+ Alias((int32_t) U_EA_FULLWIDTH, 656),
+ Alias((int32_t) U_EA_HALFWIDTH, 658),
+ Alias((int32_t) U_EA_NARROW, 660),
+ Alias((int32_t) U_EA_NEUTRAL, 662),
+ Alias((int32_t) U_EA_WIDE, 664),
};
const int32_t VALUES_gc_COUNT = 30;
const Alias VALUES_gc[] = {
- Alias((int32_t) U_COMBINING_SPACING_MARK, 648),
- Alias((int32_t) U_CONNECTOR_PUNCTUATION, 650),
- Alias((int32_t) U_CONTROL_CHAR, 652),
- Alias((int32_t) U_CURRENCY_SYMBOL, 655),
- Alias((int32_t) U_DASH_PUNCTUATION, 657),
- Alias((int32_t) U_DECIMAL_DIGIT_NUMBER, 659),
- Alias((int32_t) U_ENCLOSING_MARK, 662),
- Alias((int32_t) U_END_PUNCTUATION, 664),
- Alias((int32_t) U_FINAL_PUNCTUATION, 666),
- Alias((int32_t) U_FORMAT_CHAR, 668),
- Alias((int32_t) U_GENERAL_OTHER_TYPES, 670),
- Alias((int32_t) U_INITIAL_PUNCTUATION, 672),
- Alias((int32_t) U_LETTER_NUMBER, 674),
- Alias((int32_t) U_LINE_SEPARATOR, 676),
- Alias((int32_t) U_LOWERCASE_LETTER, 678),
- Alias((int32_t) U_MATH_SYMBOL, 680),
- Alias((int32_t) U_MODIFIER_LETTER, 682),
- Alias((int32_t) U_MODIFIER_SYMBOL, 684),
- Alias((int32_t) U_NON_SPACING_MARK, 686),
- Alias((int32_t) U_OTHER_LETTER, 688),
- Alias((int32_t) U_OTHER_NUMBER, 690),
- Alias((int32_t) U_OTHER_PUNCTUATION, 692),
- Alias((int32_t) U_OTHER_SYMBOL, 694),
- Alias((int32_t) U_PARAGRAPH_SEPARATOR, 696),
- Alias((int32_t) U_PRIVATE_USE_CHAR, 698),
- Alias((int32_t) U_SPACE_SEPARATOR, 700),
- Alias((int32_t) U_START_PUNCTUATION, 702),
- Alias((int32_t) U_SURROGATE, 704),
- Alias((int32_t) U_TITLECASE_LETTER, 706),
- Alias((int32_t) U_UPPERCASE_LETTER, 708),
+ Alias((int32_t) U_COMBINING_SPACING_MARK, 666),
+ Alias((int32_t) U_CONNECTOR_PUNCTUATION, 668),
+ Alias((int32_t) U_CONTROL_CHAR, 670),
+ Alias((int32_t) U_CURRENCY_SYMBOL, 673),
+ Alias((int32_t) U_DASH_PUNCTUATION, 675),
+ Alias((int32_t) U_DECIMAL_DIGIT_NUMBER, 677),
+ Alias((int32_t) U_ENCLOSING_MARK, 680),
+ Alias((int32_t) U_END_PUNCTUATION, 682),
+ Alias((int32_t) U_FINAL_PUNCTUATION, 684),
+ Alias((int32_t) U_FORMAT_CHAR, 686),
+ Alias((int32_t) U_GENERAL_OTHER_TYPES, 688),
+ Alias((int32_t) U_INITIAL_PUNCTUATION, 690),
+ Alias((int32_t) U_LETTER_NUMBER, 692),
+ Alias((int32_t) U_LINE_SEPARATOR, 694),
+ Alias((int32_t) U_LOWERCASE_LETTER, 696),
+ Alias((int32_t) U_MATH_SYMBOL, 698),
+ Alias((int32_t) U_MODIFIER_LETTER, 700),
+ Alias((int32_t) U_MODIFIER_SYMBOL, 702),
+ Alias((int32_t) U_NON_SPACING_MARK, 704),
+ Alias((int32_t) U_OTHER_LETTER, 706),
+ Alias((int32_t) U_OTHER_NUMBER, 708),
+ Alias((int32_t) U_OTHER_PUNCTUATION, 710),
+ Alias((int32_t) U_OTHER_SYMBOL, 712),
+ Alias((int32_t) U_PARAGRAPH_SEPARATOR, 714),
+ Alias((int32_t) U_PRIVATE_USE_CHAR, 716),
+ Alias((int32_t) U_SPACE_SEPARATOR, 718),
+ Alias((int32_t) U_START_PUNCTUATION, 720),
+ Alias((int32_t) U_SURROGATE, 722),
+ Alias((int32_t) U_TITLECASE_LETTER, 724),
+ Alias((int32_t) U_UPPERCASE_LETTER, 726),
};
const int32_t VALUES_gcm_COUNT = 38;
const Alias VALUES_gcm[] = {
- Alias((int32_t) U_GC_CC_MASK, 652),
- Alias((int32_t) U_GC_CF_MASK, 668),
- Alias((int32_t) U_GC_CN_MASK, 670),
- Alias((int32_t) U_GC_CO_MASK, 698),
- Alias((int32_t) U_GC_CS_MASK, 704),
- Alias((int32_t) U_GC_C_MASK, 710),
- Alias((int32_t) U_GC_LC_MASK, 712),
- Alias((int32_t) U_GC_LL_MASK, 678),
- Alias((int32_t) U_GC_LM_MASK, 682),
- Alias((int32_t) U_GC_LO_MASK, 688),
- Alias((int32_t) U_GC_LT_MASK, 706),
- Alias((int32_t) U_GC_LU_MASK, 708),
- Alias((int32_t) U_GC_L_MASK, 714),
- Alias((int32_t) U_GC_MC_MASK, 648),
- Alias((int32_t) U_GC_ME_MASK, 662),
- Alias((int32_t) U_GC_MN_MASK, 686),
- Alias((int32_t) U_GC_M_MASK, 716),
- Alias((int32_t) U_GC_ND_MASK, 659),
- Alias((int32_t) U_GC_NL_MASK, 674),
- Alias((int32_t) U_GC_NO_MASK, 690),
- Alias((int32_t) U_GC_N_MASK, 718),
- Alias((int32_t) U_GC_PC_MASK, 650),
- Alias((int32_t) U_GC_PD_MASK, 657),
- Alias((int32_t) U_GC_PE_MASK, 664),
- Alias((int32_t) U_GC_PF_MASK, 666),
- Alias((int32_t) U_GC_PI_MASK, 672),
- Alias((int32_t) U_GC_PO_MASK, 692),
- Alias((int32_t) U_GC_PS_MASK, 702),
- Alias((int32_t) U_GC_P_MASK, 720),
- Alias((int32_t) U_GC_SC_MASK, 655),
- Alias((int32_t) U_GC_SK_MASK, 684),
- Alias((int32_t) U_GC_SM_MASK, 680),
- Alias((int32_t) U_GC_SO_MASK, 694),
- Alias((int32_t) U_GC_S_MASK, 723),
- Alias((int32_t) U_GC_ZL_MASK, 676),
- Alias((int32_t) U_GC_ZP_MASK, 696),
- Alias((int32_t) U_GC_ZS_MASK, 700),
- Alias((int32_t) U_GC_Z_MASK, 725),
+ Alias((int32_t) U_GC_CC_MASK, 670),
+ Alias((int32_t) U_GC_CF_MASK, 686),
+ Alias((int32_t) U_GC_CN_MASK, 688),
+ Alias((int32_t) U_GC_CO_MASK, 716),
+ Alias((int32_t) U_GC_CS_MASK, 722),
+ Alias((int32_t) U_GC_C_MASK, 728),
+ Alias((int32_t) U_GC_LC_MASK, 730),
+ Alias((int32_t) U_GC_LL_MASK, 696),
+ Alias((int32_t) U_GC_LM_MASK, 700),
+ Alias((int32_t) U_GC_LO_MASK, 706),
+ Alias((int32_t) U_GC_LT_MASK, 724),
+ Alias((int32_t) U_GC_LU_MASK, 726),
+ Alias((int32_t) U_GC_L_MASK, 732),
+ Alias((int32_t) U_GC_MC_MASK, 666),
+ Alias((int32_t) U_GC_ME_MASK, 680),
+ Alias((int32_t) U_GC_MN_MASK, 704),
+ Alias((int32_t) U_GC_M_MASK, 734),
+ Alias((int32_t) U_GC_ND_MASK, 677),
+ Alias((int32_t) U_GC_NL_MASK, 692),
+ Alias((int32_t) U_GC_NO_MASK, 708),
+ Alias((int32_t) U_GC_N_MASK, 736),
+ Alias((int32_t) U_GC_PC_MASK, 668),
+ Alias((int32_t) U_GC_PD_MASK, 675),
+ Alias((int32_t) U_GC_PE_MASK, 682),
+ Alias((int32_t) U_GC_PF_MASK, 684),
+ Alias((int32_t) U_GC_PI_MASK, 690),
+ Alias((int32_t) U_GC_PO_MASK, 710),
+ Alias((int32_t) U_GC_PS_MASK, 720),
+ Alias((int32_t) U_GC_P_MASK, 738),
+ Alias((int32_t) U_GC_SC_MASK, 673),
+ Alias((int32_t) U_GC_SK_MASK, 702),
+ Alias((int32_t) U_GC_SM_MASK, 698),
+ Alias((int32_t) U_GC_SO_MASK, 712),
+ Alias((int32_t) U_GC_S_MASK, 741),
+ Alias((int32_t) U_GC_ZL_MASK, 694),
+ Alias((int32_t) U_GC_ZP_MASK, 714),
+ Alias((int32_t) U_GC_ZS_MASK, 718),
+ Alias((int32_t) U_GC_Z_MASK, 743),
};
const int32_t VALUES_hst_COUNT = 6;
const Alias VALUES_hst[] = {
- Alias((int32_t) U_HST_LEADING_JAMO, 727),
- Alias((int32_t) U_HST_LVT_SYLLABLE, 729),
- Alias((int32_t) U_HST_LV_SYLLABLE, 731),
- Alias((int32_t) U_HST_NOT_APPLICABLE, 733),
- Alias((int32_t) U_HST_TRAILING_JAMO, 735),
- Alias((int32_t) U_HST_VOWEL_JAMO, 737),
+ Alias((int32_t) U_HST_LEADING_JAMO, 745),
+ Alias((int32_t) U_HST_LVT_SYLLABLE, 747),
+ Alias((int32_t) U_HST_LV_SYLLABLE, 749),
+ Alias((int32_t) U_HST_NOT_APPLICABLE, 751),
+ Alias((int32_t) U_HST_TRAILING_JAMO, 753),
+ Alias((int32_t) U_HST_VOWEL_JAMO, 755),
};
const int32_t VALUES_jg_COUNT = 54;
const Alias VALUES_jg[] = {
- Alias((int32_t) U_JG_AIN, 739),
- Alias((int32_t) U_JG_ALAPH, 741),
- Alias((int32_t) U_JG_ALEF, 743),
- Alias((int32_t) U_JG_BEH, 745),
- Alias((int32_t) U_JG_BETH, 747),
- Alias((int32_t) U_JG_DAL, 749),
- Alias((int32_t) U_JG_DALATH_RISH, 751),
- Alias((int32_t) U_JG_E, 753),
- Alias((int32_t) U_JG_FE, 755),
- Alias((int32_t) U_JG_FEH, 757),
- Alias((int32_t) U_JG_FINAL_SEMKATH, 759),
- Alias((int32_t) U_JG_GAF, 761),
- Alias((int32_t) U_JG_GAMAL, 763),
- Alias((int32_t) U_JG_HAH, 765),
- Alias((int32_t) U_JG_HAMZA_ON_HEH_GOAL, 767),
- Alias((int32_t) U_JG_HE, 769),
- Alias((int32_t) U_JG_HEH, 771),
- Alias((int32_t) U_JG_HEH_GOAL, 773),
- Alias((int32_t) U_JG_HETH, 775),
- Alias((int32_t) U_JG_KAF, 777),
- Alias((int32_t) U_JG_KAPH, 779),
- Alias((int32_t) U_JG_KHAPH, 781),
- Alias((int32_t) U_JG_KNOTTED_HEH, 783),
- Alias((int32_t) U_JG_LAM, 785),
- Alias((int32_t) U_JG_LAMADH, 787),
- Alias((int32_t) U_JG_MEEM, 789),
- Alias((int32_t) U_JG_MIM, 791),
- Alias((int32_t) U_JG_NOON, 793),
- Alias((int32_t) U_JG_NO_JOINING_GROUP, 795),
- Alias((int32_t) U_JG_NUN, 797),
- Alias((int32_t) U_JG_PE, 799),
- Alias((int32_t) U_JG_QAF, 801),
- Alias((int32_t) U_JG_QAPH, 803),
- Alias((int32_t) U_JG_REH, 805),
- Alias((int32_t) U_JG_REVERSED_PE, 807),
- Alias((int32_t) U_JG_SAD, 809),
- Alias((int32_t) U_JG_SADHE, 811),
- Alias((int32_t) U_JG_SEEN, 813),
- Alias((int32_t) U_JG_SEMKATH, 815),
- Alias((int32_t) U_JG_SHIN, 817),
- Alias((int32_t) U_JG_SWASH_KAF, 819),
- Alias((int32_t) U_JG_SYRIAC_WAW, 821),
- Alias((int32_t) U_JG_TAH, 823),
- Alias((int32_t) U_JG_TAW, 825),
- Alias((int32_t) U_JG_TEH_MARBUTA, 827),
- Alias((int32_t) U_JG_TETH, 829),
- Alias((int32_t) U_JG_WAW, 831),
- Alias((int32_t) U_JG_YEH, 833),
- Alias((int32_t) U_JG_YEH_BARREE, 835),
- Alias((int32_t) U_JG_YEH_WITH_TAIL, 837),
- Alias((int32_t) U_JG_YUDH, 839),
- Alias((int32_t) U_JG_YUDH_HE, 841),
- Alias((int32_t) U_JG_ZAIN, 843),
- Alias((int32_t) U_JG_ZHAIN, 845),
+ Alias((int32_t) U_JG_AIN, 757),
+ Alias((int32_t) U_JG_ALAPH, 759),
+ Alias((int32_t) U_JG_ALEF, 761),
+ Alias((int32_t) U_JG_BEH, 763),
+ Alias((int32_t) U_JG_BETH, 765),
+ Alias((int32_t) U_JG_DAL, 767),
+ Alias((int32_t) U_JG_DALATH_RISH, 769),
+ Alias((int32_t) U_JG_E, 771),
+ Alias((int32_t) U_JG_FE, 773),
+ Alias((int32_t) U_JG_FEH, 775),
+ Alias((int32_t) U_JG_FINAL_SEMKATH, 777),
+ Alias((int32_t) U_JG_GAF, 779),
+ Alias((int32_t) U_JG_GAMAL, 781),
+ Alias((int32_t) U_JG_HAH, 783),
+ Alias((int32_t) U_JG_HAMZA_ON_HEH_GOAL, 785),
+ Alias((int32_t) U_JG_HE, 787),
+ Alias((int32_t) U_JG_HEH, 789),
+ Alias((int32_t) U_JG_HEH_GOAL, 791),
+ Alias((int32_t) U_JG_HETH, 793),
+ Alias((int32_t) U_JG_KAF, 795),
+ Alias((int32_t) U_JG_KAPH, 797),
+ Alias((int32_t) U_JG_KHAPH, 799),
+ Alias((int32_t) U_JG_KNOTTED_HEH, 801),
+ Alias((int32_t) U_JG_LAM, 803),
+ Alias((int32_t) U_JG_LAMADH, 805),
+ Alias((int32_t) U_JG_MEEM, 807),
+ Alias((int32_t) U_JG_MIM, 809),
+ Alias((int32_t) U_JG_NOON, 811),
+ Alias((int32_t) U_JG_NO_JOINING_GROUP, 813),
+ Alias((int32_t) U_JG_NUN, 815),
+ Alias((int32_t) U_JG_PE, 817),
+ Alias((int32_t) U_JG_QAF, 819),
+ Alias((int32_t) U_JG_QAPH, 821),
+ Alias((int32_t) U_JG_REH, 823),
+ Alias((int32_t) U_JG_REVERSED_PE, 825),
+ Alias((int32_t) U_JG_SAD, 827),
+ Alias((int32_t) U_JG_SADHE, 829),
+ Alias((int32_t) U_JG_SEEN, 831),
+ Alias((int32_t) U_JG_SEMKATH, 833),
+ Alias((int32_t) U_JG_SHIN, 835),
+ Alias((int32_t) U_JG_SWASH_KAF, 837),
+ Alias((int32_t) U_JG_SYRIAC_WAW, 839),
+ Alias((int32_t) U_JG_TAH, 841),
+ Alias((int32_t) U_JG_TAW, 843),
+ Alias((int32_t) U_JG_TEH_MARBUTA, 845),
+ Alias((int32_t) U_JG_TETH, 847),
+ Alias((int32_t) U_JG_WAW, 849),
+ Alias((int32_t) U_JG_YEH, 851),
+ Alias((int32_t) U_JG_YEH_BARREE, 853),
+ Alias((int32_t) U_JG_YEH_WITH_TAIL, 855),
+ Alias((int32_t) U_JG_YUDH, 857),
+ Alias((int32_t) U_JG_YUDH_HE, 859),
+ Alias((int32_t) U_JG_ZAIN, 861),
+ Alias((int32_t) U_JG_ZHAIN, 863),
};
const int32_t VALUES_jt_COUNT = 6;
const Alias VALUES_jt[] = {
- Alias((int32_t) U_JT_DUAL_JOINING, 847),
- Alias((int32_t) U_JT_JOIN_CAUSING, 849),
- Alias((int32_t) U_JT_LEFT_JOINING, 851),
- Alias((int32_t) U_JT_NON_JOINING, 853),
- Alias((int32_t) U_JT_RIGHT_JOINING, 855),
- Alias((int32_t) U_JT_TRANSPARENT, 857),
+ Alias((int32_t) U_JT_DUAL_JOINING, 865),
+ Alias((int32_t) U_JT_JOIN_CAUSING, 867),
+ Alias((int32_t) U_JT_LEFT_JOINING, 869),
+ Alias((int32_t) U_JT_NON_JOINING, 871),
+ Alias((int32_t) U_JT_RIGHT_JOINING, 873),
+ Alias((int32_t) U_JT_TRANSPARENT, 875),
};
const int32_t VALUES_lb_COUNT = 36;
const Alias VALUES_lb[] = {
- Alias((int32_t) U_LB_ALPHABETIC, 859),
- Alias((int32_t) U_LB_AMBIGUOUS, 861),
- Alias((int32_t) U_LB_BREAK_AFTER, 863),
- Alias((int32_t) U_LB_BREAK_BEFORE, 865),
- Alias((int32_t) U_LB_BREAK_BOTH, 867),
- Alias((int32_t) U_LB_BREAK_SYMBOLS, 869),
- Alias((int32_t) U_LB_CARRIAGE_RETURN, 871),
- Alias((int32_t) U_LB_CLOSE_PUNCTUATION, 873),
- Alias((int32_t) U_LB_COMBINING_MARK, 875),
- Alias((int32_t) U_LB_COMPLEX_CONTEXT, 877),
- Alias((int32_t) U_LB_CONTINGENT_BREAK, 879),
- Alias((int32_t) U_LB_EXCLAMATION, 881),
- Alias((int32_t) U_LB_GLUE, 883),
- Alias((int32_t) U_LB_H2, 885),
- Alias((int32_t) U_LB_H3, 887),
- Alias((int32_t) U_LB_HYPHEN, 889),
- Alias((int32_t) U_LB_IDEOGRAPHIC, 891),
- Alias((int32_t) U_LB_INFIX_NUMERIC, 893),
- Alias((int32_t) U_LB_INSEPARABLE, 895),
- Alias((int32_t) U_LB_JL, 898),
- Alias((int32_t) U_LB_JT, 900),
- Alias((int32_t) U_LB_JV, 902),
- Alias((int32_t) U_LB_LINE_FEED, 904),
- Alias((int32_t) U_LB_MANDATORY_BREAK, 906),
- Alias((int32_t) U_LB_NEXT_LINE, 908),
- Alias((int32_t) U_LB_NONSTARTER, 910),
+ Alias((int32_t) U_LB_ALPHABETIC, 877),
+ Alias((int32_t) U_LB_AMBIGUOUS, 879),
+ Alias((int32_t) U_LB_BREAK_AFTER, 881),
+ Alias((int32_t) U_LB_BREAK_BEFORE, 883),
+ Alias((int32_t) U_LB_BREAK_BOTH, 885),
+ Alias((int32_t) U_LB_BREAK_SYMBOLS, 887),
+ Alias((int32_t) U_LB_CARRIAGE_RETURN, 889),
+ Alias((int32_t) U_LB_CLOSE_PUNCTUATION, 891),
+ Alias((int32_t) U_LB_COMBINING_MARK, 893),
+ Alias((int32_t) U_LB_COMPLEX_CONTEXT, 895),
+ Alias((int32_t) U_LB_CONTINGENT_BREAK, 897),
+ Alias((int32_t) U_LB_EXCLAMATION, 899),
+ Alias((int32_t) U_LB_GLUE, 901),
+ Alias((int32_t) U_LB_H2, 903),
+ Alias((int32_t) U_LB_H3, 905),
+ Alias((int32_t) U_LB_HYPHEN, 907),
+ Alias((int32_t) U_LB_IDEOGRAPHIC, 909),
+ Alias((int32_t) U_LB_INFIX_NUMERIC, 911),
+ Alias((int32_t) U_LB_INSEPARABLE, 913),
+ Alias((int32_t) U_LB_JL, 916),
+ Alias((int32_t) U_LB_JT, 918),
+ Alias((int32_t) U_LB_JV, 920),
+ Alias((int32_t) U_LB_LINE_FEED, 922),
+ Alias((int32_t) U_LB_MANDATORY_BREAK, 924),
+ Alias((int32_t) U_LB_NEXT_LINE, 926),
+ Alias((int32_t) U_LB_NONSTARTER, 928),
Alias((int32_t) U_LB_NUMERIC, 34),
- Alias((int32_t) U_LB_OPEN_PUNCTUATION, 912),
- Alias((int32_t) U_LB_POSTFIX_NUMERIC, 914),
- Alias((int32_t) U_LB_PREFIX_NUMERIC, 916),
- Alias((int32_t) U_LB_QUOTATION, 918),
- Alias((int32_t) U_LB_SPACE, 920),
- Alias((int32_t) U_LB_SURROGATE, 922),
- Alias((int32_t) U_LB_UNKNOWN, 924),
- Alias((int32_t) U_LB_WORD_JOINER, 926),
- Alias((int32_t) U_LB_ZWSPACE, 928),
+ Alias((int32_t) U_LB_OPEN_PUNCTUATION, 930),
+ Alias((int32_t) U_LB_POSTFIX_NUMERIC, 932),
+ Alias((int32_t) U_LB_PREFIX_NUMERIC, 934),
+ Alias((int32_t) U_LB_QUOTATION, 936),
+ Alias((int32_t) U_LB_SPACE, 938),
+ Alias((int32_t) U_LB_SURROGATE, 940),
+ Alias((int32_t) U_LB_UNKNOWN, 942),
+ Alias((int32_t) U_LB_WORD_JOINER, 944),
+ Alias((int32_t) U_LB_ZWSPACE, 946),
};
const int32_t VALUES_lccc_COUNT = 19;
const Alias VALUES_lccc[] = {
- Alias((int32_t) 0, 562),
- Alias((int32_t) 1, 564),
- Alias((int32_t) 200, 566),
- Alias((int32_t) 202, 568),
- Alias((int32_t) 216, 570),
- Alias((int32_t) 218, 572),
- Alias((int32_t) 220, 574),
- Alias((int32_t) 222, 576),
- Alias((int32_t) 224, 578),
- Alias((int32_t) 226, 580),
- Alias((int32_t) 228, 582),
- Alias((int32_t) 230, 584),
- Alias((int32_t) 232, 586),
- Alias((int32_t) 233, 588),
- Alias((int32_t) 234, 590),
- Alias((int32_t) 240, 592),
- Alias((int32_t) 7, 594),
- Alias((int32_t) 8, 596),
- Alias((int32_t) 9, 598),
+ Alias((int32_t) 0, 580),
+ Alias((int32_t) 1, 582),
+ Alias((int32_t) 200, 584),
+ Alias((int32_t) 202, 586),
+ Alias((int32_t) 216, 588),
+ Alias((int32_t) 218, 590),
+ Alias((int32_t) 220, 592),
+ Alias((int32_t) 222, 594),
+ Alias((int32_t) 224, 596),
+ Alias((int32_t) 226, 598),
+ Alias((int32_t) 228, 600),
+ Alias((int32_t) 230, 602),
+ Alias((int32_t) 232, 604),
+ Alias((int32_t) 233, 606),
+ Alias((int32_t) 234, 608),
+ Alias((int32_t) 240, 610),
+ Alias((int32_t) 7, 612),
+ Alias((int32_t) 8, 614),
+ Alias((int32_t) 9, 616),
};
const int32_t VALUES_nt_COUNT = 4;
const Alias VALUES_nt[] = {
- Alias((int32_t) U_NT_DECIMAL, 930),
- Alias((int32_t) U_NT_DIGIT, 932),
- Alias((int32_t) U_NT_NONE, 934),
- Alias((int32_t) U_NT_NUMERIC, 936),
+ Alias((int32_t) U_NT_DECIMAL, 948),
+ Alias((int32_t) U_NT_DIGIT, 950),
+ Alias((int32_t) U_NT_NONE, 952),
+ Alias((int32_t) U_NT_NUMERIC, 954),
};
-const int32_t VALUES_sc_COUNT = 62;
+const int32_t VALUES_sc_COUNT = 104;
const Alias VALUES_sc[] = {
- Alias((int32_t) USCRIPT_ARABIC, 938),
- Alias((int32_t) USCRIPT_ARMENIAN, 940),
- Alias((int32_t) USCRIPT_BENGALI, 942),
- Alias((int32_t) USCRIPT_BOPOMOFO, 944),
- Alias((int32_t) USCRIPT_BRAILLE, 946),
- Alias((int32_t) USCRIPT_BUGINESE, 948),
- Alias((int32_t) USCRIPT_BUHID, 950),
- Alias((int32_t) USCRIPT_CANADIAN_ABORIGINAL, 952),
- Alias((int32_t) USCRIPT_CHEROKEE, 954),
- Alias((int32_t) USCRIPT_COMMON, 956),
- Alias((int32_t) USCRIPT_COPTIC, 958),
- Alias((int32_t) USCRIPT_CYPRIOT, 961),
- Alias((int32_t) USCRIPT_CYRILLIC, 963),
- Alias((int32_t) USCRIPT_DESERET, 965),
- Alias((int32_t) USCRIPT_DEVANAGARI, 967),
- Alias((int32_t) USCRIPT_ETHIOPIC, 969),
- Alias((int32_t) USCRIPT_GEORGIAN, 971),
- Alias((int32_t) USCRIPT_GLAGOLITIC, 973),
- Alias((int32_t) USCRIPT_GOTHIC, 975),
- Alias((int32_t) USCRIPT_GREEK, 977),
- Alias((int32_t) USCRIPT_GUJARATI, 979),
- Alias((int32_t) USCRIPT_GURMUKHI, 981),
- Alias((int32_t) USCRIPT_HAN, 983),
- Alias((int32_t) USCRIPT_HANGUL, 985),
- Alias((int32_t) USCRIPT_HANUNOO, 987),
- Alias((int32_t) USCRIPT_HEBREW, 989),
- Alias((int32_t) USCRIPT_HIRAGANA, 991),
- Alias((int32_t) USCRIPT_INHERITED, 993),
- Alias((int32_t) USCRIPT_KANNADA, 995),
- Alias((int32_t) USCRIPT_KATAKANA, 997),
- Alias((int32_t) USCRIPT_KATAKANA_OR_HIRAGANA, 999),
- Alias((int32_t) USCRIPT_KHAROSHTHI, 1001),
- Alias((int32_t) USCRIPT_KHMER, 1003),
- Alias((int32_t) USCRIPT_LAO, 1005),
- Alias((int32_t) USCRIPT_LATIN, 1007),
- Alias((int32_t) USCRIPT_LIMBU, 1009),
- Alias((int32_t) USCRIPT_LINEAR_B, 1011),
- Alias((int32_t) USCRIPT_MALAYALAM, 1013),
- Alias((int32_t) USCRIPT_MONGOLIAN, 1015),
- Alias((int32_t) USCRIPT_MYANMAR, 1017),
- Alias((int32_t) USCRIPT_NEW_TAI_LUE, 1019),
- Alias((int32_t) USCRIPT_OGHAM, 1021),
- Alias((int32_t) USCRIPT_OLD_ITALIC, 1023),
- Alias((int32_t) USCRIPT_OLD_PERSIAN, 1025),
- Alias((int32_t) USCRIPT_ORIYA, 1027),
- Alias((int32_t) USCRIPT_OSMANYA, 1029),
- Alias((int32_t) USCRIPT_RUNIC, 1031),
- Alias((int32_t) USCRIPT_SHAVIAN, 1033),
- Alias((int32_t) USCRIPT_SINHALA, 1035),
- Alias((int32_t) USCRIPT_SYLOTI_NAGRI, 1037),
- Alias((int32_t) USCRIPT_SYRIAC, 1039),
- Alias((int32_t) USCRIPT_TAGALOG, 1041),
- Alias((int32_t) USCRIPT_TAGBANWA, 1043),
- Alias((int32_t) USCRIPT_TAI_LE, 1045),
- Alias((int32_t) USCRIPT_TAMIL, 1047),
- Alias((int32_t) USCRIPT_TELUGU, 1049),
- Alias((int32_t) USCRIPT_THAANA, 1051),
- Alias((int32_t) USCRIPT_THAI, 1053),
- Alias((int32_t) USCRIPT_TIBETAN, 1055),
- Alias((int32_t) USCRIPT_TIFINAGH, 1057),
- Alias((int32_t) USCRIPT_UGARITIC, 1059),
- Alias((int32_t) USCRIPT_YI, 1061),
+ Alias((int32_t) USCRIPT_ARABIC, 956),
+ Alias((int32_t) USCRIPT_ARMENIAN, 958),
+ Alias((int32_t) USCRIPT_BALINESE, 960),
+ Alias((int32_t) USCRIPT_BATAK, 962),
+ Alias((int32_t) USCRIPT_BENGALI, 964),
+ Alias((int32_t) USCRIPT_BLISSYMBOLS, 966),
+ Alias((int32_t) USCRIPT_BOPOMOFO, 968),
+ Alias((int32_t) USCRIPT_BRAHMI, 970),
+ Alias((int32_t) USCRIPT_BRAILLE, 972),
+ Alias((int32_t) USCRIPT_BUGINESE, 974),
+ Alias((int32_t) USCRIPT_BUHID, 976),
+ Alias((int32_t) USCRIPT_CANADIAN_ABORIGINAL, 978),
+ Alias((int32_t) USCRIPT_CHAM, 980),
+ Alias((int32_t) USCRIPT_CHEROKEE, 982),
+ Alias((int32_t) USCRIPT_CIRTH, 984),
+ Alias((int32_t) USCRIPT_COMMON, 986),
+ Alias((int32_t) USCRIPT_COPTIC, 988),
+ Alias((int32_t) USCRIPT_CUNEIFORM, 991),
+ Alias((int32_t) USCRIPT_CYPRIOT, 993),
+ Alias((int32_t) USCRIPT_CYRILLIC, 995),
+ Alias((int32_t) USCRIPT_DEMOTIC_EGYPTIAN, 997),
+ Alias((int32_t) USCRIPT_DESERET, 999),
+ Alias((int32_t) USCRIPT_DEVANAGARI, 1001),
+ Alias((int32_t) USCRIPT_EASTERN_SYRIAC, 1003),
+ Alias((int32_t) USCRIPT_EGYPTIAN_HIEROGLYPHS, 1005),
+ Alias((int32_t) USCRIPT_ESTRANGELO_SYRIAC, 1007),
+ Alias((int32_t) USCRIPT_ETHIOPIC, 1009),
+ Alias((int32_t) USCRIPT_GEORGIAN, 1011),
+ Alias((int32_t) USCRIPT_GLAGOLITIC, 1013),
+ Alias((int32_t) USCRIPT_GOTHIC, 1015),
+ Alias((int32_t) USCRIPT_GREEK, 1017),
+ Alias((int32_t) USCRIPT_GUJARATI, 1019),
+ Alias((int32_t) USCRIPT_GURMUKHI, 1021),
+ Alias((int32_t) USCRIPT_HAN, 1023),
+ Alias((int32_t) USCRIPT_HANGUL, 1025),
+ Alias((int32_t) USCRIPT_HANUNOO, 1027),
+ Alias((int32_t) USCRIPT_HARAPPAN_INDUS, 1029),
+ Alias((int32_t) USCRIPT_HEBREW, 1031),
+ Alias((int32_t) USCRIPT_HIERATIC_EGYPTIAN, 1033),
+ Alias((int32_t) USCRIPT_HIRAGANA, 1035),
+ Alias((int32_t) USCRIPT_INHERITED, 1037),
+ Alias((int32_t) USCRIPT_JAVANESE, 1039),
+ Alias((int32_t) USCRIPT_KANNADA, 1041),
+ Alias((int32_t) USCRIPT_KATAKANA, 1043),
+ Alias((int32_t) USCRIPT_KATAKANA_OR_HIRAGANA, 1045),
+ Alias((int32_t) USCRIPT_KAYAH_LI, 1047),
+ Alias((int32_t) USCRIPT_KHAROSHTHI, 1049),
+ Alias((int32_t) USCRIPT_KHMER, 1051),
+ Alias((int32_t) USCRIPT_KHUTSURI, 1053),
+ Alias((int32_t) USCRIPT_LAO, 1055),
+ Alias((int32_t) USCRIPT_LATIN, 1057),
+ Alias((int32_t) USCRIPT_LATIN_FRAKTUR, 1059),
+ Alias((int32_t) USCRIPT_LATIN_GAELIC, 1061),
+ Alias((int32_t) USCRIPT_LEPCHA, 1063),
+ Alias((int32_t) USCRIPT_LIMBU, 1065),
+ Alias((int32_t) USCRIPT_LINEAR_A, 1067),
+ Alias((int32_t) USCRIPT_LINEAR_B, 1069),
+ Alias((int32_t) USCRIPT_MALAYALAM, 1071),
+ Alias((int32_t) USCRIPT_MANDAEAN, 1073),
+ Alias((int32_t) USCRIPT_MAYAN_HIEROGLYPHS, 1075),
+ Alias((int32_t) USCRIPT_MEROITIC, 1077),
+ Alias((int32_t) USCRIPT_MONGOLIAN, 1079),
+ Alias((int32_t) USCRIPT_MYANMAR, 1081),
+ Alias((int32_t) USCRIPT_NEW_TAI_LUE, 1083),
+ Alias((int32_t) USCRIPT_NKO, 1085),
+ Alias((int32_t) USCRIPT_OGHAM, 1087),
+ Alias((int32_t) USCRIPT_OLD_CHURCH_SLAVONIC_CYRILLIC, 1089),
+ Alias((int32_t) USCRIPT_OLD_HUNGARIAN, 1091),
+ Alias((int32_t) USCRIPT_OLD_ITALIC, 1093),
+ Alias((int32_t) USCRIPT_OLD_PERMIC, 1095),
+ Alias((int32_t) USCRIPT_OLD_PERSIAN, 1097),
+ Alias((int32_t) USCRIPT_ORIYA, 1099),
+ Alias((int32_t) USCRIPT_ORKHON, 1101),
+ Alias((int32_t) USCRIPT_OSMANYA, 1103),
+ Alias((int32_t) USCRIPT_PAHAWH_HMONG, 1105),
+ Alias((int32_t) USCRIPT_PHAGS_PA, 1107),
+ Alias((int32_t) USCRIPT_PHOENICIAN, 1109),
+ Alias((int32_t) USCRIPT_PHONETIC_POLLARD, 1111),
+ Alias((int32_t) USCRIPT_RONGORONGO, 1113),
+ Alias((int32_t) USCRIPT_RUNIC, 1115),
+ Alias((int32_t) USCRIPT_SARATI, 1117),
+ Alias((int32_t) USCRIPT_SHAVIAN, 1119),
+ Alias((int32_t) USCRIPT_SIMPLIFIED_HAN, 1121),
+ Alias((int32_t) USCRIPT_SINHALA, 1123),
+ Alias((int32_t) USCRIPT_SYLOTI_NAGRI, 1125),
+ Alias((int32_t) USCRIPT_SYRIAC, 1127),
+ Alias((int32_t) USCRIPT_TAGALOG, 1129),
+ Alias((int32_t) USCRIPT_TAGBANWA, 1131),
+ Alias((int32_t) USCRIPT_TAI_LE, 1133),
+ Alias((int32_t) USCRIPT_TAMIL, 1135),
+ Alias((int32_t) USCRIPT_TELUGU, 1137),
+ Alias((int32_t) USCRIPT_TENGWAR, 1139),
+ Alias((int32_t) USCRIPT_THAANA, 1141),
+ Alias((int32_t) USCRIPT_THAI, 1143),
+ Alias((int32_t) USCRIPT_TIBETAN, 1145),
+ Alias((int32_t) USCRIPT_TIFINAGH, 1147),
+ Alias((int32_t) USCRIPT_TRADITIONAL_HAN, 1149),
+ Alias((int32_t) USCRIPT_UGARITIC, 1151),
+ Alias((int32_t) USCRIPT_UNKNOWN, 1153),
+ Alias((int32_t) USCRIPT_UNWRITTEN_LANGUAGES, 1155),
+ Alias((int32_t) USCRIPT_VAI, 1157),
+ Alias((int32_t) USCRIPT_VISIBLE_SPEECH, 1159),
+ Alias((int32_t) USCRIPT_WESTERN_SYRIAC, 1161),
+ Alias((int32_t) USCRIPT_YI, 1163),
};
const int32_t VALUES_tccc_COUNT = 19;
const Alias VALUES_tccc[] = {
- Alias((int32_t) 0, 562),
- Alias((int32_t) 1, 564),
- Alias((int32_t) 200, 566),
- Alias((int32_t) 202, 568),
- Alias((int32_t) 216, 570),
- Alias((int32_t) 218, 572),
- Alias((int32_t) 220, 574),
- Alias((int32_t) 222, 576),
- Alias((int32_t) 224, 578),
- Alias((int32_t) 226, 580),
- Alias((int32_t) 228, 582),
- Alias((int32_t) 230, 584),
- Alias((int32_t) 232, 586),
- Alias((int32_t) 233, 588),
- Alias((int32_t) 234, 590),
- Alias((int32_t) 240, 592),
- Alias((int32_t) 7, 594),
- Alias((int32_t) 8, 596),
- Alias((int32_t) 9, 598),
+ Alias((int32_t) 0, 580),
+ Alias((int32_t) 1, 582),
+ Alias((int32_t) 200, 584),
+ Alias((int32_t) 202, 586),
+ Alias((int32_t) 216, 588),
+ Alias((int32_t) 218, 590),
+ Alias((int32_t) 220, 592),
+ Alias((int32_t) 222, 594),
+ Alias((int32_t) 224, 596),
+ Alias((int32_t) 226, 598),
+ Alias((int32_t) 228, 600),
+ Alias((int32_t) 230, 602),
+ Alias((int32_t) 232, 604),
+ Alias((int32_t) 233, 606),
+ Alias((int32_t) 234, 608),
+ Alias((int32_t) 240, 610),
+ Alias((int32_t) 7, 612),
+ Alias((int32_t) 8, 614),
+ Alias((int32_t) 9, 616),
};
const int32_t PROPERTY_COUNT = 85;
diff --git a/Build/source/libs/icu-xetex/tools/genpname/genpname.cpp b/Build/source/libs/icu-xetex/tools/genpname/genpname.cpp
index b2df4d5cfe3..bfaeac013b8 100644
--- a/Build/source/libs/icu-xetex/tools/genpname/genpname.cpp
+++ b/Build/source/libs/icu-xetex/tools/genpname/genpname.cpp
@@ -1,6 +1,6 @@
/*
**********************************************************************
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
@@ -162,10 +162,13 @@ void die(const char* msg) {
*/
class AliasList {
public:
+ virtual ~AliasList();
virtual const Alias& operator[](int32_t i) const = 0;
virtual int32_t count() const = 0;
};
+AliasList::~AliasList() {}
+
/**
* A single array.
*/
diff --git a/Build/source/libs/icu-xetex/tools/genpname/genpname.vcproj b/Build/source/libs/icu-xetex/tools/genpname/genpname.vcproj
index 3647d6e15bc..3e92024417b 100644
--- a/Build/source/libs/icu-xetex/tools/genpname/genpname.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genpname/genpname.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genpname.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genpname.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genpname/gensvpa.pl b/Build/source/libs/icu-xetex/tools/genpname/gensvpa.pl
new file mode 100755
index 00000000000..bcbf1cc4224
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/genpname/gensvpa.pl
@@ -0,0 +1,161 @@
+#!/usr/bin/perl
+#*
+#*******************************************************************************
+#* Copyright (C) 2006, International Business Machines
+#* Corporation and others. All Rights Reserved.
+#*******************************************************************************
+#*
+#* file name: genspva.pl
+#* encoding: US-ASCII
+#* tab size: 8 (not used)
+#* indentation:4
+#*
+#* Created by: Ram Viswanadha
+#*
+#* This file filters iso15924-utf8-<date>.txt
+#*
+
+use File::Find;
+use File::Basename;
+use IO::File;
+use Cwd;
+use File::Copy;
+use Getopt::Long;
+use File::Path;
+use File::Copy;
+
+#run the program
+main();
+
+#---------------------------------------------------------------------
+# The main program
+
+sub main(){
+ GetOptions(
+ "--destdir=s" => \$destdir,
+ "--iso15924=s" => \$iso,
+ "--prop=s" => \$prop,
+ "--code-start=s" => \$code,
+ );
+ usage() unless defined $destdir;
+ usage() unless defined $iso;
+ usage() unless defined $prop;
+
+ $outfile = "$destdir/SyntheticPropertyValueAliases.txt";
+ $propFH = IO::File->new($prop,"r")
+ or die "could not open the file $prop for reading: $! \n";
+ $isoFH = IO::File->new($iso,"r")
+ or die "could not open the file $iso for reading: $! \n";
+ $outFH = IO::File->new($outfile,"w")
+ or die "could not open the file $outfile for reading: $! \n";
+ my @propLines;
+ while (<$propFH>) {
+ next if(!($_ =~/sc ; /));
+ push(@propLines, $_);
+ }
+ printHeader($outFH);
+ if(defined $code){
+ print "Please add the following to UScriptCode enum in uscript.h.\n";
+ print "#ifndef U_HIDE_DRAFT_API\n";
+ }
+ while (<$isoFH>) {
+ next if($_=~/^#/);#skip if the line starts with a comment char
+ ($script, $t, $name, $rest) = split(/;/,$_,4);
+ #sc ; Arab
+ $outstr = "sc ; $script";
+ $encoded = 0; #false
+
+ # seach the propLines to make sure that this scipt code is not
+ # encoded in Unicode
+ foreach $key (@propLines){
+ if($key =~ /$outstr/){
+ $encoded = 1;
+ }
+ }
+ next if($encoded == 1);
+ #ignore private use codes
+ next if($script =~ /Qa[ab][a-z]/);
+
+ #if($script eq "Qaaa"){
+ # $outstr = $outstr." ; Private_Use_Start\n";
+ #}elsif($script eq "Qabx"){
+ # $outstr = $outstr." ; Private_Use_End\n";
+ #}else{
+ # $outstr = $outstr." ; $script \n";
+ #}
+
+ $outstr = $outstr." ; $script \n";
+ print $outFH $outstr;
+
+ #print to console
+ if(defined $code){
+ if($name =~ /[(\s,\x80-\xFF]/){
+ $name = $script;
+ }
+ $name =~s/-/_/g;
+
+ $scriptcode = "USCRIPT_".uc($name);
+ print " $scriptcode = $code, /* $script */\n";
+ $code++;
+ }
+
+ }
+ if(defined $code){
+ print "#endif /* U_HIDE_DRAFT_API */\n";
+ }
+ for($i=0; $i<2; $i++){
+
+ }
+ close($isoFH);
+ close($propFH);
+ close($outFH);
+}
+#-----------------------------------------------------------------------
+sub printHeader{
+ ($outFH) = @_;
+ ($DAY, $MONTH, $YEAR) = (localtime)[3,4,5];
+ $YEAR += 1900;
+ #We will print our copyright here + warnings
+print $outFH <<END_HEADER_COMMENT;
+########################################################################
+# Copyright (c) 2006-$YEAR, International Business Machines
+# Corporation and others. All Rights Reserved.
+########################################################################
+# file name: SyntheticPropertyValueAliases.txt
+# encoding: US-ASCII
+# tab size: 8 (not used)
+# indentation: 4
+# created by: gensvpa.pl
+########################################################################
+
+# This file follows the format of PropertyValueAliases.txt
+# It contains synthetic property value aliases not present
+# in the UCD. Unlike PropertyValueAliases.txt, it should
+# NOT contain a version number.
+
+########################################################################
+# THIS FILE IS MACHINE-GENERATED, DON'T PLAY WITH IT IF YOU DON'T KNOW
+# WHAT YOU ARE DOING, OTHERWISE VERY BAD THINGS WILL HAPPEN!
+########################################################################
+
+# set the same names as short and long names to fit the syntax without
+# inventing names that we would have to support forever
+
+# Script (sc)
+
+END_HEADER_COMMENT
+}
+#-----------------------------------------------------------------------
+sub usage {
+ print << "END";
+Usage:
+gensvpa.pl
+Options:
+ --destdir=<directory>
+ --iso15924=<file name>
+ --prop=<PropertyValueAliases.txt>
+ --code-start=s
+e.g.: gensvpa.pl --destdir=<icu>/source/tools/genpname --iso15924=iso15924-utf8-20041025.txt --prop=<icu>/source/data/unidata --code-start=60
+END
+ exit(0);
+} \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/tools/genpname/preparse.pl b/Build/source/libs/icu-xetex/tools/genpname/preparse.pl
index c13ea0cfe3d..3e6c9704de2 100644
--- a/Build/source/libs/icu-xetex/tools/genpname/preparse.pl
+++ b/Build/source/libs/icu-xetex/tools/genpname/preparse.pl
@@ -1,7 +1,7 @@
#!/bin/perl -w
#*******************************************************************
# COPYRIGHT:
-# Copyright (c) 2002-2005, International Business Machines Corporation and
+# Copyright (c) 2002-2006, International Business Machines Corporation and
# others. All Rights Reserved.
#*******************************************************************
@@ -65,8 +65,9 @@ my $UNIDATA_DIR = "$ICU_DIR/source/data/unidata";
# Get the current year from the system
my $YEAR = 1900+@{[localtime]}[5]; # Get the current year
-# Used to make "n/a" property aliases (Unicode or Synthetic) unique
+# Used to make "n/a" property [value] aliases (Unicode or Synthetic) unique
my $propNA = 0;
+my $valueNA = 0;
#----------------------------------------------------------------------
# Top level property keys for binary, enumerated, string, and double props
@@ -428,7 +429,9 @@ sub readAndMerge {
my $pa = {};
read_PropertyAliases($pa, "$unidataDir/PropertyAliases.txt");
read_PropertyAliases($pa, "SyntheticPropertyAliases.txt");
- my $va = read_PropertyValueAliases("$unidataDir/PropertyValueAliases.txt");
+ my $va = {};
+ read_PropertyValueAliases($va, "$unidataDir/PropertyValueAliases.txt");
+ read_PropertyValueAliases($va, "SyntheticPropertyValueAliases.txt");
# Extract property family hash
my $fam = $pa->{'_family'};
@@ -667,7 +670,7 @@ sub merge_PropertyValueAliases {
# look up both long and short & ignore case
my $n;
if (exists $pva->{$name}) {
- $n = $name;
+ $n = $name;
} else {
# iterate (slow)
for my $a (keys %$pva) {
@@ -680,7 +683,7 @@ sub merge_PropertyValueAliases {
}
}
}
-
+
# For blocks, do a loose match from Blocks.txt pseudo-name
# to PropertyValueAliases long name.
if (!$n && $prop eq 'blk') {
@@ -853,15 +856,13 @@ sub read_PropertyAliases {
# @return a hash reference.
sub read_PropertyValueAliases {
- my $filename = shift;
+ my $hash = shift; # result
- my $hash = {}; # result
+ my $filename = shift;
my $in = new FileHandle($filename, 'r');
die "Error: Cannot open $filename" if (!defined $in);
- my $valueNA = 0; # Used to make "n/a" strings unique
-
while (<$in>) {
# Read version (embedded in a comment)
@@ -912,8 +913,6 @@ sub read_PropertyValueAliases {
# are of the same form as the 'ccc' value aliases.
$hash->{'binprop'}->{'0'} = 'F|False';
$hash->{'binprop'}->{'1'} = 'T|True';
-
- $hash;
}
#----------------------------------------------------------------------
@@ -960,7 +959,7 @@ sub read_Blocks {
s/\#.*//;
next unless (/\S/);
- if (/^([0-9a-f]+)\.\.[0-9a-f]+;\s*(.+?)\s*$/i) {
+ if (/^([0-9a-f]+)\.\.[0-9a-f]+\s*;\s*(.+?)\s*$/i) {
die "Error: Duplicate range $1 in $filename"
if (exists $hash->{$1});
$hash->{$1} = $2;
diff --git a/Build/source/libs/icu-xetex/tools/genprops/.cvsignore b/Build/source/libs/icu-xetex/tools/genprops/.cvsignore
index a962dfed55b..009131bf85b 100644
--- a/Build/source/libs/icu-xetex/tools/genprops/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/genprops/.cvsignore
@@ -5,4 +5,7 @@ Makefile
*.o
*.pdb
genprops
-genprops.[0-9] \ No newline at end of file
+genprops.[0-9]
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/genprops/Makefile.in b/Build/source/libs/icu-xetex/tools/genprops/Makefile.in
index 00495b09c39..3fd2fe97fca 100644
--- a/Build/source/libs/icu-xetex/tools/genprops/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genprops/Makefile.in
@@ -11,16 +11,15 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/genprops
TARGET_STUB_NAME = genprops
SECTION = 8
-MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/genprops
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(MAN_FILES)
@@ -28,7 +27,10 @@ CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genprops.o props2.o store.o
@@ -36,9 +38,8 @@ OBJECTS = genprops.o props2.o store.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -57,21 +58,9 @@ install-local: all-local install-man
# $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
# $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
install-man: $(MAN_FILES)
# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
-# $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
@@ -91,6 +80,12 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
$(TARGET) : $(OBJECTS)
$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
diff --git a/Build/source/libs/icu-xetex/tools/genprops/genprops.8.in b/Build/source/libs/icu-xetex/tools/genprops/genprops.8.in
deleted file mode 100644
index e161c877526..00000000000
--- a/Build/source/libs/icu-xetex/tools/genprops/genprops.8.in
+++ /dev/null
@@ -1,126 +0,0 @@
-.\" Hey, Emacs! This is -*-nroff-*- you know...
-.\"
-.\" genprops.8: manual page for the genprops utility
-.\"
-.\" Copyright (C) 2000-2001 IBM, Inc. and others.
-.\"
-.TH GENPROPS 8 "16 January 2001" "ICU MANPAGE" "ICU @VERSION@ Manual"
-.SH NAME
-.B genprops
-\- compile properties from the Unicode Character Database
-.SH SYNOPSIS
-.B genprops
-[
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-]
-[
-.BR "\-v\fP, \fB\-\-verbose"
-]
-[
-.BI "\-u\fP, \fB\-\-unicode" " version"
-]
-[
-.BI "\-c\fP, \fB\-\-copyright"
-]
-[
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-]
-[
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-]
-[
-.I suffix
-]
-.SH DESCRIPTION
-.B genprops
-reads some of the Unicode Character Database files and compiles their
-information information into a binary form.
-The resulting file,
-.BR icudata.dat ,
-can then be read directly by ICU, or used by
-.BR pkgdata (8)
-for incorporation into a larger archive or library.
-.LP
-The files read by
-.B genprops
-are described in the
-.B FILES
-section. If
-.I suffix
-is passed on the command line, the names of these files will actually
-be changed to include a dash followed by
-.I suffix
-in their basename. For example, the file
-.B UnicodeData.txt
-would be looked for under the name
-.BR UnicodeData\-\fIsuffix\fP.txt .
-.SH OPTIONS
-.TP
-.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
-Print help about usage and exit.
-.TP
-.BR "\-v\fP, \fB\-\-verbose"
-Display extra informative messages during execution.
-.TP
-.BI "\-u\fP, \fB\-\-unicode" " version"
-Specify which
-.I version
-of Unicode the Unicode Character Database refers to.
-Defaults to
-.BR 3.0.0 .
-.TP
-.BI "\-c\fP, \fB\-\-copyright"
-Include a copyright notice into the binary data.
-.TP
-.BI "\-s\fP, \fB\-\-sourcedir" " source"
-Set the source directory to
-.IR source .
-The default source directory is specified by the environment variable
-.BR ICU_DATA .
-.TP
-.BI "\-d\fP, \fB\-\-destdir" " destination"
-Set the destination directory to
-.IR destination .
-The default destination directory is specified by the environment variable
-.BR ICU_DATA .
-.SH ENVIRONMENT
-.TP 10
-.B ICU_DATA
-Specifies the directory containing ICU data. Defaults to
-.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
-Some tools in ICU depend on the presence of the trailing slash. It is thus
-important to make sure that it is present if
-.B ICU_DATA
-is set.
-.SH FILES
-The following files are read by
-.B genprops
-and are looked for in the
-.I source
-directory.
-.TP 20
-.B UnicodeData.txt
-The main file in the Unicode Character Database. Contains character
-properties, combining classes information, decompositions, names,
-etc.\|.\|..
-.TP
-.B BidiMirroring.txt
-Properties for substituting characters in an implementation of
-bidirectional mirroring.
-.TP
-.B SpecialCasing.txt
-List of properties required for full case mapping.
-.TP
-.B CaseFolding.txt
-Mapping from characters to their case-folded forms. (Note: this file
-is derived from
-.B UnicodeData.txt
-and
-.B SpecialCasing.txt
-when generated by the Unicode Consortium.)
-.SH VERSION
-@VERSION@
-.SH COPYRIGHT
-Copyright (C) 2000-2002 IBM, Inc. and others.
-.SH SEE ALSO
-.BR pkgdata (8)
diff --git a/Build/source/libs/icu-xetex/tools/genprops/genprops.vcproj b/Build/source/libs/icu-xetex/tools/genprops/genprops.vcproj
index dec296d77ec..b9c6b92904f 100644
--- a/Build/source/libs/icu-xetex/tools/genprops/genprops.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genprops/genprops.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genprops.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genprops.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genprops/props2.c b/Build/source/libs/icu-xetex/tools/genprops/props2.c
index 029bf6c3ad5..9f18a11ba58 100644
--- a/Build/source/libs/icu-xetex/tools/genprops/props2.c
+++ b/Build/source/libs/icu-xetex/tools/genprops/props2.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -294,7 +294,13 @@ derCorePropsNames[]={
/* new properties bits in ICU 2.6/format version 3.2 */
{ "ID_Start", 1, UPROPS_ID_START },
{ "ID_Continue", 1, UPROPS_ID_CONTINUE },
- { "Grapheme_Base", 1, UPROPS_GRAPHEME_BASE }
+ { "Grapheme_Base", 1, UPROPS_GRAPHEME_BASE },
+
+ /*
+ * Unicode 5/ICU 3.6 moves Grapheme_Link from PropList.txt
+ * to DerivedCoreProperties.txt and deprecates it.
+ */
+ { "Grapheme_Link", 1, UPROPS_GRAPHEME_LINK }
};
static const Binaries
@@ -514,8 +520,13 @@ ageLineFn(void *context,
}
++limit;
- /* parse version number */
+ /* ignore "unassigned" (the default is already set to 0.0) */
s=(char *)u_skipWhitespace(fields[1][0]);
+ if(0==uprv_strncmp(s, "unassigned", 10)) {
+ return;
+ }
+
+ /* parse version number */
value=(uint32_t)uprv_strtoul(s, &end, 10);
if(s==end || value==0 || value>15 || (*end!='.' && *end!=' ' && *end!='\t' && *end!=0)) {
fprintf(stderr, "genprops: syntax error in DerivedAge.txt field 1 at %s\n", fields[1][0]);
diff --git a/Build/source/libs/icu-xetex/tools/genprops/store.c b/Build/source/libs/icu-xetex/tools/genprops/store.c
index 9432aa01250..76cfa3e75a6 100644
--- a/Build/source/libs/icu-xetex/tools/genprops/store.c
+++ b/Build/source/libs/icu-xetex/tools/genprops/store.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -392,7 +392,7 @@ generateData(const char *dataDir, UBool csource) {
UNewDataMemory *pData;
UErrorCode errorCode=U_ZERO_ERROR;
- uint32_t size;
+ uint32_t size = 0;
int32_t trieSize, additionalPropsSize, offset;
long dataLength;
diff --git a/Build/source/libs/icu-xetex/tools/genrb/Makefile.in b/Build/source/libs/icu-xetex/tools/genrb/Makefile.in
index eef6861698f..8ec43fccb4b 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genrb/Makefile.in
@@ -10,7 +10,8 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/genrb
TARGET_STUB_NAME = genrb
DERB_STUB_NAME = derb
@@ -19,8 +20,6 @@ SECTION = 1
MAN_FILES = $(TARGET_STUB_NAME).$(SECTION) $(DERB_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/genrb
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(MAN_FILES) $(DEPS) $(DERB_DEPS)
@@ -29,7 +28,10 @@ CLEANFILES = *~ $(MAN_FILES) $(DEPS) $(DERB_DEPS)
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
DERB = $(BINDIR)/$(DERB_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
LIBS = $(LIBICUI18N) $(LIBICUTOOLUTIL) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = errmsg.o genrb.o parse.o read.o reslist.o ustr.o rbutil.o \
@@ -41,8 +43,7 @@ DERB_DEPS = $(DERB_OBJ:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -62,9 +63,13 @@ install-local: all-local install-man
$(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
$(INSTALL) $(DERB) $(DESTDIR)$(bindir)
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
dist-local:
-clean-local:
+clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(TARGET) $(DERB) $(OBJECTS) $(DERB_OBJ)
@@ -84,13 +89,6 @@ $(DERB) : $(DERB_OBJ)
$(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
-# the 'mv' will always fail if you are building in the source dir
-
-# man page
-install-man: $(MAN_FILES)
- $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-
# This line is needed to serialize builds when the gmake -j option is used.
$(TARGET_STUB_NAME).$(SECTION): $(DERB_STUB_NAME).$(SECTION)
@@ -98,12 +96,6 @@ $(TARGET_STUB_NAME).$(SECTION): $(DERB_STUB_NAME).$(SECTION)
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-# build postscript and pdf formats
-$(TARGET).ps: $(TARGET).$(SECTION)
- groff -man < $< > $@
-
-$(TARGET).pdf: $(TARGET).ps
- ps2pdf $< $@
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
diff --git a/Build/source/libs/icu-xetex/tools/genrb/derb.c b/Build/source/libs/icu-xetex/tools/genrb/derb.c
index 4bf033d886c..d63c481193e 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/derb.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/derb.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -33,6 +33,17 @@
#if defined(U_WINDOWS) || defined(U_CYGWIN)
#include <io.h>
#include <fcntl.h>
+#define USE_FILENO_BINARY_MODE 1
+/* Windows likes to rename Unix-like functions */
+#ifndef fileno
+#define fileno _fileno
+#endif
+#ifndef setmode
+#define setmode _setmode
+#endif
+#ifndef O_BINARY
+#define O_BINARY _O_BINARY
+#endif
#endif
#define DERB_VERSION "1.0"
@@ -45,8 +56,6 @@ static const int32_t indentsize = 4;
static int32_t truncsize = DERB_DEFAULT_TRUNC;
static UBool trunc = FALSE;
-static const UChar baderror[] = { 0x0042, 0x0041, 0x0044, 0x0000 };
-
static const char *getEncodingName(const char *encoding);
static void reportError(const char *pname, UErrorCode *status, const char *when);
static UChar *quotedString(const UChar *string);
@@ -285,7 +294,7 @@ main(int argc, char* argv[]) {
if (tostdout) {
out = stdout;
#if defined(U_WINDOWS) || defined(U_CYGWIN)
- if (_setmode(_fileno(out), _O_BINARY) == -1) {
+ if (setmode(fileno(out), O_BINARY) == -1) {
fprintf(stderr, "%s: couldn't set standard output to binary mode\n", pname);
return 4;
}
diff --git a/Build/source/libs/icu-xetex/tools/genrb/derb.vcproj b/Build/source/libs/icu-xetex/tools/genrb/derb.vcproj
index 88bc22df982..eb0bf376213 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/derb.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genrb/derb.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\derb_Win32_Release/derb.pch"
AssemblerListingLocation=".\derb_Win32_Release/"
ObjectFile=".\derb_Win32_Release/"
@@ -92,6 +93,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\derb_Win32_Debug/derb.pch"
AssemblerListingLocation=".\derb_Win32_Debug/"
ObjectFile=".\derb_Win32_Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genrb/gendtjar.pl b/Build/source/libs/icu-xetex/tools/genrb/gendtjar.pl
index 98e5b50ce80..0e953cac5c6 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/gendtjar.pl
+++ b/Build/source/libs/icu-xetex/tools/genrb/gendtjar.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl
# ********************************************************************
# * COPYRIGHT:
-# * Copyright (c) 2002-2005, International Business Machines Corporation and
+# * Copyright (c) 2002-2006, International Business Machines Corporation and
# * others. All Rights Reserved.
# ********************************************************************
@@ -63,7 +63,7 @@ sub main(){
$path=$ENV{'PATH'};
- if($platform eq "cygwin" ){
+ if(($platform eq "cygwin") || ($platform eq "linux")){
$icuBinDir .= "/source/bin";
$icuLibDir = abs_path($icuBinDir."/../lib");
$path .=":$icuBinDir:$icuLibDir";
@@ -141,7 +141,7 @@ sub buildICU{
unlink($icuBuildDir."../");
unlink($icuTestDataDir."../");
- if(($platform eq "cygwin")||($platform eq "darwin")){
+ if(($platform eq "cygwin")||($platform eq "darwin")||($platform eq "linux")){
# make all in ICU
cmd("make all", $verbose);
chdir($icuSrcDataDir);
@@ -250,9 +250,13 @@ sub convertData{
$i=0;
# now convert
foreach $item (@list){
- next if($item eq "." || $item eq "..");
+ next if($item eq "." || $item eq "..");
+ # next if($item =~ /^t_.*$\.res/ ||$item =~ /^translit_.*$\.res/ ||
+ # $item=~/$\.crs/ || $item=~ /$\.txt/ ||
+ # $item=~/icudata\.res/ || $item=~/$\.exp/ || $item=~/$\.lib/ ||
+ # $item=~/$\.obj/ || $item=~/$\.lst/);
next if($item =~ /^t_.*$\.res/ ||$item =~ /^translit_.*$\.res/ || $item =~ /$\.cnv/ ||
- $item=~/$\.crs/ || $item=~ /$\.txt/ || $item=~ /^zoneinfo/ ||
+ $item=~/$\.crs/ || $item=~ /$\.txt/ ||
$item=~/icudata\.res/ || $item=~/$\.exp/ || $item=~/$\.lib/ || $item=~/$\.obj/ ||
$item=~/cnvalias\.icu/ || $item=~/$\.lst/);
if(-d "$icuDataDir/$item"){
@@ -296,18 +300,16 @@ sub convertTestData{
next if($item =~ /$\.cnv/ || item=~/$\.crs/ || $item=~ /$\.txt/ ||
$item=~/$\.exp/ || $item=~/$\.lib/ || $item=~/$\.obj/ ||
$item=~/$\.mak/ || $item=~/test\.icu/ || $item=~/$\.lst/);
-
- if($item =~ /^testdata_/){
- $file = $item;
- $file =~ s/testdata_//g;
- if($endian eq "l"){
- $command = "$icuswap $icuDataDir/$item $tempDir/$icu4jDataDir/$file";
- cmd($command, $verbose);
- }else{
- #print("Copying $icuDataDir/$item $tempDir/$icu4jDataDir/$file\n");
- copy("$icuDataDir/$item", "$tempDir/$icu4jDataDir/$file");
- }
+ $file = $item;
+ $file =~ s/testdata_//g;
+ if($endian eq "l"){
+ $command = "$icuswap $icuDataDir/$item $tempDir/$icu4jDataDir/$file";
+ cmd($command, $verbose);
+ }else{
+ #print("Copying $icuDataDir/$item $tempDir/$icu4jDataDir/$file\n");
+ copy("$icuDataDir/$item", "$tempDir/$icu4jDataDir/$file");
}
+
}
chdir("..");
diff --git a/Build/source/libs/icu-xetex/tools/genrb/genrb.c b/Build/source/libs/icu-xetex/tools/genrb/genrb.c
index f6929bb7e1a..a73febadd75 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/genrb.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/genrb.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -50,7 +50,6 @@ enum
PACKAGE_NAME,
BUNDLE_NAME,
WRITE_XLIFF,
- TOUCHFILE,
STRICT,
NO_BINARY_COLLATION,
/*added by Jing*/
@@ -72,16 +71,13 @@ UOption options[]={
UOPTION_PACKAGE_NAME,
UOPTION_BUNDLE_NAME,
UOPTION_DEF( "write-xliff", 'x', UOPT_OPTIONAL_ARG),
- UOPTION_DEF( "touchfile", 't', UOPT_NO_ARG),
UOPTION_DEF( "strict", 'k', UOPT_NO_ARG), /* 14 */
UOPTION_DEF( "noBinaryCollation", 'C', UOPT_NO_ARG),/* 15 */
- /*added by Jing*/
UOPTION_DEF( "language", 'l', UOPT_REQUIRES_ARG)
};
static UBool write_java = FALSE;
static UBool write_xliff = FALSE;
-static UBool touchfile = FALSE;
static const char* outputEnc ="";
static const char* gPackageName=NULL;
static const char* bundleName=NULL;
@@ -146,9 +142,7 @@ main(int argc,
"\t-j or --write-java write a Java ListResourceBundle for ICU4J, followed by optional encoding\n"
"\t defaults to ASCII and \\uXXXX format.\n"
"\t-p or --package-name For ICU4J: package name for writing the ListResourceBundle for ICU4J,\n"
- "\t defaults to com.ibm.icu.impl.data\n"
- "\t For ICU4C: Package name for the .res files on output. Specfiying\n"
- "\t 'ICUDATA' defaults to the current ICU4C data name.\n");
+ "\t defaults to com.ibm.icu.impl.data\n");
fprintf(stderr,
"\t-b or --bundle-name bundle name for writing the ListResourceBundle for ICU4J,\n"
"\t defaults to LocaleElements\n"
@@ -193,15 +187,6 @@ main(int argc,
}
}
- if(options[TOUCHFILE].doesOccur) {
- if(gPackageName == NULL) {
- fprintf(stderr, "%s: Don't use touchfile (-t) option with no package.\n",
- argv[0]);
- return -1;
- }
- touchfile = TRUE;
- }
-
if(options[ENCODING].doesOccur) {
encoding = options[ENCODING].value;
}
@@ -379,7 +364,7 @@ processFile(const char *filename, const char *cp, const char *inputDir, const ch
printf("autodetected encoding %s\n", cp);
}
/* Parse the data into an SRBRoot */
- data = parse(ucbuf, inputDir, status);
+ data = parse(ucbuf, inputDir, outputDir, status);
if (data == NULL || U_FAILURE(*status)) {
fprintf(stderr, "couldn't parse the file %s. Error:%s\n", filename,u_errorName(*status));
@@ -388,37 +373,6 @@ processFile(const char *filename, const char *cp, const char *inputDir, const ch
/* Determine the target rb filename */
rbname = make_res_filename(filename, outputDir, packageName, status);
- if(touchfile == TRUE) {
- FileStream *q;
- char msg[1024];
- char *tfname = NULL;
-
- tfname = make_res_filename(filename, outputDir, NULL, status);
-
- if(U_FAILURE(*status))
- {
- fprintf(stderr, "Error writing touchfile for \"%s\"\n", filename);
- *status = U_FILE_ACCESS_ERROR;
- } else {
- uprv_strcat(tfname, ".res");
- sprintf(msg, "This empty file tells nmake that %s in package %s has been updated.\n",
- filename, packageName);
-
- q = T_FileStream_open(tfname, "w");
- if(q == NULL)
- {
- fprintf(stderr, "Error writing touchfile \"%s\"\n", tfname);
- *status = U_FILE_ACCESS_ERROR;
- }
- else
- {
- T_FileStream_write(q, msg, (int32_t)uprv_strlen(msg));
- T_FileStream_close(q);
- }
- uprv_free(tfname);
- }
-
- }
if(U_FAILURE(*status)) {
fprintf(stderr, "couldn't make the res fileName for bundle %s. Error:%s\n", filename,u_errorName(*status));
goto finish;
diff --git a/Build/source/libs/icu-xetex/tools/genrb/genrb.vcproj b/Build/source/libs/icu-xetex/tools/genrb/genrb.vcproj
index 0eaa5f0de91..e564c2072f5 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/genrb.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genrb/genrb.vcproj
@@ -26,6 +26,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genrb.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -87,6 +88,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genrb.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genrb/parse.c b/Build/source/libs/icu-xetex/tools/genrb/parse.c
index 1de849fe68a..b4aa2caf0e1 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/parse.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/parse.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -83,6 +83,8 @@ static UCHARBUF *buffer;
static struct SRBRoot *bundle;
static const char *inputdir;
static uint32_t inputdirLength;
+static const char *outputdir;
+static uint32_t outputdirLength;
static UBool gMakeBinaryCollation = TRUE;
@@ -203,14 +205,14 @@ expect(enum ETokenType expectedToken, struct UString **tokenValue, struct UStrin
enum ETokenType token = getToken(tokenValue, comment, &line, status);
- if (U_FAILURE(*status))
+ if (linenumber != NULL)
{
- return;
+ *linenumber = line;
}
- if (linenumber != NULL)
+ if (U_FAILURE(*status))
{
- *linenumber = line;
+ return;
}
if (token != expectedToken)
@@ -473,8 +475,71 @@ parseTransliterator(char *tag, uint32_t startline, const struct UString* comment
return result;
}
+static struct SResource* dependencyArray = NULL;
static struct SResource *
+parseDependency(char *tag, uint32_t startline, const struct UString* comment, UErrorCode *status)
+{
+ struct SResource *result = NULL;
+ struct SResource *elem = NULL;
+ struct UString *tokenValue;
+ uint32_t line;
+ char filename[256] = { '\0' };
+ char cs[128] = { '\0' };
+
+ expect(TOK_STRING, &tokenValue, NULL, &line, status);
+
+ if(isVerbose()){
+ printf(" %s at line %i \n", (tag == NULL) ? "(null)" : tag, (int)startline);
+ }
+
+ if (U_FAILURE(*status))
+ {
+ return NULL;
+ }
+ /* make the filename including the directory */
+ if (outputdir != NULL)
+ {
+ uprv_strcat(filename, outputdir);
+
+ if (outputdir[outputdirLength - 1] != U_FILE_SEP_CHAR)
+ {
+ uprv_strcat(filename, U_FILE_SEP_STRING);
+ }
+ }
+
+ u_UCharsToChars(tokenValue->fChars, cs, tokenValue->fLength);
+
+ if (U_FAILURE(*status))
+ {
+ return NULL;
+ }
+ uprv_strcat(filename, cs);
+ if(!T_FileStream_file_exists(filename)){
+ if(isStrict()){
+ error(line, "The dependency file %s does not exist. Please make sure it exists.\n",filename);
+ }else{
+ warning(line, "The dependency file %s does not exist. Please make sure it exists.\n",filename);
+ }
+ }
+ if(dependencyArray==NULL){
+ dependencyArray = array_open(bundle, "%%DEPENDENCY", NULL, status);
+ }
+ if(tag!=NULL){
+ result = string_open(bundle, tag, tokenValue->fChars, tokenValue->fLength, comment, status);
+ }
+ elem = string_open(bundle, NULL, tokenValue->fChars, tokenValue->fLength, comment, status);
+
+ array_add(dependencyArray, elem, status);
+
+ if (U_FAILURE(*status))
+ {
+ return NULL;
+ }
+ expect(TOK_CLOSE_BRACE, NULL, NULL, NULL, status);
+ return result;
+}
+static struct SResource *
parseString(char *tag, uint32_t startline, const struct UString* comment, UErrorCode *status)
{
struct UString *tokenValue;
@@ -1474,6 +1539,7 @@ U_STRING_DECL(k_type_string, "string", 6);
U_STRING_DECL(k_type_binary, "binary", 6);
U_STRING_DECL(k_type_bin, "bin", 3);
U_STRING_DECL(k_type_table, "table", 5);
+U_STRING_DECL(k_type_table_no_fallback, "table(nofallback)", 17);
U_STRING_DECL(k_type_int, "int", 3);
U_STRING_DECL(k_type_integer, "integer", 7);
U_STRING_DECL(k_type_array, "array", 5);
@@ -1487,6 +1553,7 @@ U_STRING_DECL(k_type_reserved, "reserved", 8);
U_STRING_DECL(k_type_plugin_uca_rules, "process(uca_rules)", 18);
U_STRING_DECL(k_type_plugin_collation, "process(collation)", 18);
U_STRING_DECL(k_type_plugin_transliterator, "process(transliterator)", 23);
+U_STRING_DECL(k_type_plugin_dependency, "process(dependency)", 19);
typedef enum EResourceType
{
@@ -1494,6 +1561,7 @@ typedef enum EResourceType
RT_STRING,
RT_BINARY,
RT_TABLE,
+ RT_TABLE_NO_FALLBACK,
RT_INTEGER,
RT_ARRAY,
RT_ALIAS,
@@ -1503,6 +1571,7 @@ typedef enum EResourceType
RT_PROCESS_UCA_RULES,
RT_PROCESS_COLLATION,
RT_PROCESS_TRANSLITERATOR,
+ RT_PROCESS_DEPENDENCY,
RT_RESERVED
} EResourceType;
@@ -1515,6 +1584,7 @@ static struct {
{"string", k_type_string, parseString},
{"binary", k_type_binary, parseBinary},
{"table", k_type_table, parseTable},
+ {"table(nofallback)", k_type_table_no_fallback, NULL}, /* parseFunction will never be called */
{"integer", k_type_integer, parseInteger},
{"array", k_type_array, parseArray},
{"alias", k_type_alias, parseAlias},
@@ -1522,8 +1592,9 @@ static struct {
{"import", k_type_import, parseImport},
{"include", k_type_include, parseInclude},
{"process(uca_rules)", k_type_plugin_uca_rules, parseUCARules},
- {"process(collation)", k_type_plugin_collation, NULL},
+ {"process(collation)", k_type_plugin_collation, NULL /* not implemented yet */},
{"process(transliterator)", k_type_plugin_transliterator, parseTransliterator},
+ {"process(dependency)", k_type_plugin_dependency, parseDependency},
{"reserved", NULL, NULL}
};
@@ -1535,6 +1606,7 @@ void initParser(UBool makeBinaryCollation)
U_STRING_INIT(k_type_binary, "binary", 6);
U_STRING_INIT(k_type_bin, "bin", 3);
U_STRING_INIT(k_type_table, "table", 5);
+ U_STRING_INIT(k_type_table_no_fallback, "table(nofallback)", 17);
U_STRING_INIT(k_type_int, "int", 3);
U_STRING_INIT(k_type_integer, "integer", 7);
U_STRING_INIT(k_type_array, "array", 5);
@@ -1547,6 +1619,8 @@ void initParser(UBool makeBinaryCollation)
U_STRING_INIT(k_type_plugin_uca_rules, "process(uca_rules)", 18);
U_STRING_INIT(k_type_plugin_collation, "process(collation)", 18);
U_STRING_INIT(k_type_plugin_transliterator, "process(transliterator)", 23);
+ U_STRING_INIT(k_type_plugin_dependency, "process(dependency)", 19);
+
for (i = 0; i < MAX_LOOKAHEAD + 1; i++)
{
ustr_init(&lookahead[i].value);
@@ -1554,6 +1628,10 @@ void initParser(UBool makeBinaryCollation)
gMakeBinaryCollation = makeBinaryCollation;
}
+static U_INLINE UBool isTable(enum EResourceType type) {
+ return (UBool)(type==RT_TABLE || type==RT_TABLE_NO_FALLBACK);
+}
+
static enum EResourceType
parseResourceType(UErrorCode *status)
{
@@ -1572,7 +1650,8 @@ parseResourceType(UErrorCode *status)
*status = U_ZERO_ERROR;
/* Search for normal types */
- for (result = RT_UNKNOWN+1; result < RT_RESERVED; result++) {
+ result=RT_UNKNOWN;
+ while (++result < RT_RESERVED) {
if (u_strcmp(tokenValue->fChars, gResourceTypes[result].nameUChars) == 0) {
break;
}
@@ -1595,6 +1674,7 @@ parseResourceType(UErrorCode *status)
return result;
}
+/* parse a non-top-level resource */
static struct SResource *
parseResource(char *tag, const struct UString *comment, UErrorCode *status)
{
@@ -1706,6 +1786,10 @@ parseResource(char *tag, const struct UString *comment, UErrorCode *status)
}
/* printf("Type guessed as %s\n", resourceNames[resType]); */
+ } else if(resType == RT_TABLE_NO_FALLBACK) {
+ *status = U_INVALID_FORMAT_ERROR;
+ error(startline, "error: %s resource type not valid except on top bundle level", gResourceTypes[resType].nameChars);
+ return NULL;
}
/* We should now know what we need to parse next, so call the appropriate parser
@@ -1722,8 +1806,9 @@ parseResource(char *tag, const struct UString *comment, UErrorCode *status)
return NULL;
}
+/* parse the top-level resource */
struct SRBRoot *
-parse(UCHARBUF *buf, const char *currentInputDir, UErrorCode *status)
+parse(UCHARBUF *buf, const char *inputDir, const char *outputDir, UErrorCode *status)
{
struct UString *tokenValue;
struct UString comment;
@@ -1734,8 +1819,10 @@ parse(UCHARBUF *buf, const char *currentInputDir, UErrorCode *status)
initLookahead(buf, status);
- inputdir = currentInputDir;
+ inputdir = inputDir;
inputdirLength = (inputdir != NULL) ? (uint32_t)uprv_strlen(inputdir) : 0;
+ outputdir = outputDir;
+ outputdirLength = (outputdir != NULL) ? (uint32_t)uprv_strlen(outputdir) : 0;
ustr_init(&comment);
expect(TOK_STRING, &tokenValue, &comment, NULL, status);
@@ -1753,21 +1840,11 @@ parse(UCHARBUF *buf, const char *currentInputDir, UErrorCode *status)
/* expect(TOK_OPEN_BRACE, NULL, &line, status); */
/* The following code is to make Empty bundle work no matter with :table specifer or not */
token = getToken(NULL, NULL, &line, status);
-
- if(token==TOK_COLON)
- {
+ if(token==TOK_COLON) {
*status=U_ZERO_ERROR;
- }
- else
- {
- *status=U_PARSE_ERROR;
- }
-
- if(U_SUCCESS(*status)){
-
bundleType=parseResourceType(status);
- if(bundleType==RT_TABLE)
+ if(isTable(bundleType))
{
expect(TOK_OPEN_BRACE, NULL, NULL, &line, status);
}
@@ -1779,12 +1856,17 @@ parse(UCHARBUF *buf, const char *currentInputDir, UErrorCode *status)
}
else
{
+ /* not a colon */
if(token==TOK_OPEN_BRACE)
{
*status=U_ZERO_ERROR;
+ bundleType=RT_TABLE;
}
else
{
+ /* neither colon nor open brace */
+ *status=U_PARSE_ERROR;
+ bundleType=RT_UNKNOWN;
error(line, "parse error, did not find open-brace '{' or colon ':', stopped with %s", u_errorName(*status));
}
}
@@ -1796,11 +1878,25 @@ parse(UCHARBUF *buf, const char *currentInputDir, UErrorCode *status)
return NULL;
}
+ if(bundleType==RT_TABLE_NO_FALLBACK) {
+ /*
+ * Parse a top-level table with the table(nofallback) declaration.
+ * This is the same as a regular table, but also sets the
+ * URES_ATT_NO_FALLBACK flag in indexes[URES_INDEX_ATTRIBUTES] .
+ */
+ bundle->noFallback=TRUE;
+ }
+ /* top-level tables need not handle special table names like "collations" */
realParseTable(bundle->fRoot, NULL, line, status);
-
+
+ if(dependencyArray!=NULL){
+ table_add(bundle->fRoot, dependencyArray, 0, status);
+ dependencyArray = NULL;
+ }
if (U_FAILURE(*status))
{
bundle_close(bundle, status);
+ array_close(dependencyArray, status);
return NULL;
}
diff --git a/Build/source/libs/icu-xetex/tools/genrb/parse.h b/Build/source/libs/icu-xetex/tools/genrb/parse.h
index 79ffd79c3d2..da5b345beb1 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/parse.h
+++ b/Build/source/libs/icu-xetex/tools/genrb/parse.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2003, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -27,7 +27,7 @@ U_CDECL_BEGIN
void initParser(UBool makeBinaryCollation);
/* Parse a ResourceBundle text file */
-struct SRBRoot* parse(UCHARBUF *buf, const char* inputDir, UErrorCode *status);
+struct SRBRoot* parse(UCHARBUF *buf, const char* inputDir, const char* outputDir, UErrorCode *status);
U_CDECL_END
diff --git a/Build/source/libs/icu-xetex/tools/genrb/reslist.c b/Build/source/libs/icu-xetex/tools/genrb/reslist.c
index 32b45937079..9f30ca9c108 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/reslist.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/reslist.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -40,7 +40,7 @@ static const UDataInfo dataInfo= {
0,
{0x52, 0x65, 0x73, 0x42}, /* dataFormat="resb" */
- {1, 1, 0, 0}, /* formatVersion */
+ {1, 2, 0, 0}, /* formatVersion */
{1, 4, 0, 0} /* dataVersion take a look at version inside parsed resb*/
};
@@ -393,12 +393,22 @@ void bundle_write(struct SRBRoot *bundle, const char *outputDir, const char *out
* write int32_t indexes[] after root and before the strings
* to make it easier to parse resource bundles in icuswap or from Java etc.
*/
+ uprv_memset(indexes, 0, sizeof(indexes));
indexes[URES_INDEX_LENGTH]= URES_INDEX_TOP;
indexes[URES_INDEX_STRINGS_TOP]= (int32_t)(usedOffset>>2);
indexes[URES_INDEX_RESOURCES_TOP]= (int32_t)(top>>2);
indexes[URES_INDEX_BUNDLE_TOP]= indexes[URES_INDEX_RESOURCES_TOP];
indexes[URES_INDEX_MAX_TABLE_LENGTH]= bundle->fMaxTableLength;
+ /*
+ * formatVersion 1.2 (ICU 3.6):
+ * write indexes[URES_INDEX_ATTRIBUTES] with URES_ATT_NO_FALLBACK set or not set
+ * the memset() above initialized all indexes[] to 0
+ */
+ if(bundle->noFallback) {
+ indexes[URES_INDEX_ATTRIBUTES]=URES_ATT_NO_FALLBACK;
+ }
+
/* write the indexes[] */
udata_writeBlock(mem, indexes, sizeof(indexes));
@@ -441,6 +451,7 @@ struct SResource* res_open(const struct UString* comment, UErrorCode* status){
res->fComment = (struct UString *) uprv_malloc(sizeof(struct UString));
if(res->fComment == NULL){
*status = U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(res);
return NULL;
}
ustr_init(res->fComment);
@@ -478,7 +489,7 @@ struct SResource* table_open(struct SRBRoot *bundle, char *tag, const struct US
return res;
}
-struct SResource* array_open(struct SRBRoot *bundle, char *tag, const struct UString* comment, UErrorCode *status) {
+struct SResource* array_open(struct SRBRoot *bundle, const char *tag, const struct UString* comment, UErrorCode *status) {
struct SResource *res = res_open(comment, status);
@@ -743,9 +754,12 @@ void table_close(struct SResource *table, UErrorCode *status) {
void array_close(struct SResource *array, UErrorCode *status) {
struct SResource *current = NULL;
struct SResource *prev = NULL;
-
+
+ if(array==NULL){
+ return;
+ }
current = array->u.fArray.fFirst;
-
+
while (current != NULL) {
prev = current;
current = current->fNext;
diff --git a/Build/source/libs/icu-xetex/tools/genrb/reslist.h b/Build/source/libs/icu-xetex/tools/genrb/reslist.h
index 34e35fd27c4..2d6a3783df6 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/reslist.h
+++ b/Build/source/libs/icu-xetex/tools/genrb/reslist.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2003, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -41,6 +41,7 @@ struct SRBRoot {
int32_t fCount;
struct SResource *fRoot;
int32_t fMaxTableLength;
+ UBool noFallback; /* see URES_ATT_NO_FALLBACK */
};
struct SRBRoot *bundle_open(const struct UString* comment, UErrorCode *status);
@@ -84,7 +85,7 @@ struct SResArray {
struct SResource *fLast;
};
-struct SResource* array_open(struct SRBRoot *bundle, char *tag, const struct UString* comment, UErrorCode *status);
+struct SResource* array_open(struct SRBRoot *bundle, const char *tag, const struct UString* comment, UErrorCode *status);
void array_close(struct SResource *array, UErrorCode *status);
void array_add(struct SResource *array, struct SResource *res, UErrorCode *status);
diff --git a/Build/source/libs/icu-xetex/tools/genrb/ustr.c b/Build/source/libs/icu-xetex/tools/genrb/ustr.c
index 2a35db0b5c7..aafcec54241 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/ustr.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/ustr.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2004, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -206,7 +206,6 @@ ustr_resize(struct UString *s,
s->fChars = (UChar*) uprv_realloc(s->fChars, sizeof(UChar) * (len + 1));
if(s->fChars == 0) {
*status = U_MEMORY_ALLOCATION_ERROR;
- s->fChars = 0;
s->fLength = s->fCapacity = 0;
return;
}
diff --git a/Build/source/libs/icu-xetex/tools/genrb/wrtjava.c b/Build/source/libs/icu-xetex/tools/genrb/wrtjava.c
index 7df452606d2..a4293ae2807 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/wrtjava.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/wrtjava.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2003, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -230,23 +230,24 @@ str_write_java( uint16_t* src, int32_t srcLen, UBool printEndLine, UErrorCode *s
uint32_t length = srcLen*8;
uint32_t bufLen = 0;
+ uint32_t columnCount;
char* buf = (char*) malloc(sizeof(char)*length);
- uint32_t columnCount = getColumnCount(srcLen);
-
- /* test for NULL */
if(buf == NULL) {
*status = U_MEMORY_ALLOCATION_ERROR;
return;
}
+ columnCount = getColumnCount(srcLen);
memset(buf,0,length);
bufLen = uCharsToChars(buf,length,src,srcLen,status);
- if(printEndLine) write_tabs(out);
+ if(printEndLine)
+ write_tabs(out);
if(U_FAILURE(*status)){
+ uprv_free(buf);
return;
}
@@ -299,6 +300,7 @@ str_write_java( uint16_t* src, int32_t srcLen, UBool printEndLine, UErrorCode *s
}else{
T_FileStream_write(out,"\"",1);
}
+ uprv_free(buf);
}
static void
diff --git a/Build/source/libs/icu-xetex/tools/genrb/wrtxml.c b/Build/source/libs/icu-xetex/tools/genrb/wrtxml.c
index c5abaae8285..4e0cd73121b 100644
--- a/Build/source/libs/icu-xetex/tools/genrb/wrtxml.c
+++ b/Build/source/libs/icu-xetex/tools/genrb/wrtxml.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -288,6 +288,7 @@ static char* convertAndEscape(char** pDest, int32_t destCap, int32_t* destLength
temp = (char*) uprv_malloc(sizeof(char)*destCap);
if(temp==NULL){
*status=U_MEMORY_ALLOCATION_ERROR;
+ uprv_free(dest);
return NULL;
}
uprv_memmove(temp,dest,destLen);
@@ -308,13 +309,7 @@ static char* convertAndEscape(char** pDest, int32_t destCap, int32_t* destLength
#define LF 0x000D
#define AT_SIGN 0x0040
-static const UChar tokens[][11] = {
- {0x0040, 0x0074, 0x0072, 0x0061, 0x006e, 0x0073, 0x006c, 0x0061, 0x0074, 0x0065, 0x0000}, /* @translate */
- {0x0040, 0x006e, 0x006f, 0x0074, 0x0065, 0x0000} /* @note */
-};
-static const UChar yes[] = { 0x0079, 0x0065, 0x0073, 0x0000}; /* yes */
-static const UChar no[] ={ 0x006e, 0x006f, 0x0000 }; /* no */
@@ -503,7 +498,7 @@ string_write_xml(struct SResource *res, const char* id, const char* language, UE
T_FileStream_write(out,valStrStart, (int32_t)uprv_strlen(valStrStart));
/* T_FileStream_write(out,language, (int32_t)uprv_strlen(language)); */
- T_FileStream_write(out,"\">", 2);
+ T_FileStream_write(out,">", 1);
buf = convertAndEscape(&buf,0,&bufLen,res->u.fString.fChars,res->u.fString.fLength,status);
@@ -543,7 +538,7 @@ string_write_xml(struct SResource *res, const char* id, const char* language, UE
T_FileStream_write(out,valStrStart, (int32_t)uprv_strlen(valStrStart));
/*T_FileStream_write(out,language, (int32_t)uprv_strlen(language));*/
- T_FileStream_write(out,"\">", 2);
+ T_FileStream_write(out,">", 1);
buf = convertAndEscape(&buf,0,&bufLen,res->u.fString.fChars,res->u.fString.fLength,status);
if(U_FAILURE(*status)){
@@ -870,9 +865,18 @@ bin_write_xml( struct SResource *res, const char* id, const char* language, UErr
if(res->u.fBinaryValue.fFileName!=NULL){
uprv_strcpy(fileName, res->u.fBinaryValue.fFileName);
f = uprv_strrchr(fileName, '\\');
- f++;
+ if (f != NULL) {
+ f++;
+ }
+ else {
+ f = fileName;
+ }
ext = uprv_strrchr(fileName, '.');
+ if (ext == NULL) {
+ fprintf(stderr, "Error: %s is an unknown binary filename type.\n", fileName);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
if(uprv_strcmp(ext, ".jpg")==0 || uprv_strcmp(ext, ".jpeg")==0 || uprv_strcmp(ext, ".gif")==0 ){
m_type = "\"image";
} else if(uprv_strcmp(ext, ".wav")==0 || uprv_strcmp(ext, ".au")==0 ){
@@ -987,10 +991,10 @@ bin_write_xml( struct SResource *res, const char* id, const char* language, UErr
write_tabs(out);
T_FileStream_write(out,end,(int32_t)uprv_strlen(end));
- uprv_free(fn);
uprv_free(sid);
sid = NULL;
}
+ uprv_free(fn);
}
@@ -1163,8 +1167,8 @@ bundle_write_xml(struct SRBRoot *bundle, const char *outputDir,const char* outpu
char* xmlfileName = NULL;
char* outputFileName = NULL;
char* originalFileName = NULL;
- const char* fileStart = "<file xml:space = \"preserve\" datatype=\"ICUResourceBundle\" source-language = \"";
- const char* file1 = "\" datatype = \"text\" ";
+ const char* fileStart = "<file xml:space = \"preserve\" source-language = \"";
+ const char* file1 = "\" datatype = \"ICUResourceBundle\" ";
const char* file2 = "original = \"";
const char* file3 = "\" tool = \"genrb\" ";
const char* file4 = "date = \"";
@@ -1275,14 +1279,14 @@ bundle_write_xml(struct SRBRoot *bundle, const char *outputDir,const char* outpu
}
if (U_FAILURE(*status)) {
- return;
+ goto cleanup_bundle_write_xml;
}
out= T_FileStream_open(xmlfileName,"w");
if(out==NULL){
*status = U_FILE_ACCESS_ERROR;
- return;
+ goto cleanup_bundle_write_xml;
}
T_FileStream_write(out,xmlHeader, (int32_t)uprv_strlen(xmlHeader));
@@ -1291,7 +1295,7 @@ bundle_write_xml(struct SRBRoot *bundle, const char *outputDir,const char* outpu
enc = outputEnc;
conv=ucnv_open(enc,status);
if(U_FAILURE(*status)){
- return;
+ goto cleanup_bundle_write_xml;
}
}
T_FileStream_write(out,bundleStart, (int32_t)uprv_strlen(bundleStart));
@@ -1338,6 +1342,7 @@ bundle_write_xml(struct SRBRoot *bundle, const char *outputDir,const char* outpu
ucnv_close(conv);
+cleanup_bundle_write_xml:
if(originalFileName!= NULL) {
uprv_free(originalFileName);
originalFileName = NULL;
diff --git a/Build/source/libs/icu-xetex/tools/genren/genren.pl b/Build/source/libs/icu-xetex/tools/genren/genren.pl
index 00aa60c37e6..b1c6a32d83d 100755
--- a/Build/source/libs/icu-xetex/tools/genren/genren.pl
+++ b/Build/source/libs/icu-xetex/tools/genren/genren.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl
#*
#*******************************************************************************
-#* Copyright (C) 2001-2005, International Business Machines
+#* Copyright (C) 2001-2006, International Business Machines
#* Corporation and others. All Rights Reserved.
#*******************************************************************************
#*
@@ -60,7 +60,7 @@ $HEADERDEF =~ s/\./_/;
print HEADER <<"EndOfHeaderComment";
/*
*******************************************************************************
-* Copyright (C) 2002-2005, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
diff --git a/Build/source/libs/icu-xetex/tools/gensprep/Makefile.in b/Build/source/libs/icu-xetex/tools/gensprep/Makefile.in
index 8d40bc60f78..0739775d177 100644
--- a/Build/source/libs/icu-xetex/tools/gensprep/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gensprep/Makefile.in
@@ -11,7 +11,8 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/gensprep
TARGET_STUB_NAME = gensprep
@@ -19,8 +20,6 @@ SECTION = 8
MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/gensprep
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS) $(MAN_FILES)
@@ -28,7 +27,10 @@ CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gensprep.o store.o
@@ -36,9 +38,8 @@ OBJECTS = gensprep.o store.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
-.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -57,21 +58,9 @@ install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
-# man page
install-man: $(MAN_FILES)
$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
dist-local:
@@ -91,6 +80,12 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
$(TARGET) : $(OBJECTS)
$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
diff --git a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.c b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.c
index 6a931fc6a4f..7421545158f 100644
--- a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.c
+++ b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003-2005, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -63,7 +63,6 @@ static UOption options[]={
UOPTION_DESTDIR,
UOPTION_SOURCEDIR,
UOPTION_ICUDATADIR,
- UOPTION_PACKAGE_NAME,
UOPTION_BUNDLE_NAME,
{ "normalization", NULL, NULL, NULL, 'n', UOPT_REQUIRES_ARG, 0 },
{ "check-bidi", NULL, NULL, NULL, 'k', UOPT_NO_ARG, 0},
@@ -78,7 +77,6 @@ enum{
DESTDIR,
SOURCEDIR,
ICUDATADIR,
- PACKAGE_NAME,
BUNDLE_NAME,
NORMALIZE,
CHECK_BIDI,
@@ -110,7 +108,6 @@ static int printHelp(int argc, char* argv[]){
"\t followed by path, defaults to %s\n",
u_getDataDirectory());
fprintf(stderr,
- "\t-p or --package-name prepend the output data file name with the package name specified\n"
"\t-n or --normalize turn on the option for normalization and include mappings\n"
"\t from NormalizationCorrections.txt from the given path,\n"
"\t e.g: /test/icu/source/data/unidata\n"
@@ -127,7 +124,7 @@ main(int argc, char* argv[]) {
char* filename = NULL;
#endif
const char *srcDir=NULL, *destDir=NULL, *icuUniDataDir=NULL;
- const char *packageName=NULL, *bundleName=NULL, *inputFileName = NULL;
+ const char *bundleName=NULL, *inputFileName = NULL;
char *basename=NULL;
int32_t sprepOptions = 0;
@@ -140,7 +137,6 @@ main(int argc, char* argv[]) {
options[SOURCEDIR].value="";
options[UNICODE_VERSION].value="0"; /* don't assume the unicode version */
options[BUNDLE_NAME].value = DATA_NAME;
- options[PACKAGE_NAME].value = NULL;
options[NORMALIZE].value = "";
argc=u_parseArgs(argc, argv, sizeof(options)/sizeof(options[0]), options);
@@ -161,7 +157,6 @@ main(int argc, char* argv[]) {
haveCopyright=options[COPYRIGHT].doesOccur;
srcDir=options[SOURCEDIR].value;
destDir=options[DESTDIR].value;
- packageName = options[PACKAGE_NAME].value;
bundleName = options[BUNDLE_NAME].value;
icuUniDataDir = options[NORMALIZE].value;
@@ -183,7 +178,7 @@ main(int argc, char* argv[]) {
"gensprep writes dummy " U_ICUDATA_NAME "_" DATA_NAME "." DATA_TYPE
" because UCONFIG_NO_IDNA is set, \n"
"see icu/source/common/unicode/uconfig.h\n");
- generateData(destDir, packageName, bundleName);
+ generateData(destDir, bundleName);
#else
@@ -243,9 +238,9 @@ main(int argc, char* argv[]) {
/* process parsed data */
if(U_SUCCESS(errorCode)) {
/* write the data file */
- generateData(destDir, packageName, bundleName);
+ generateData(destDir, bundleName);
- cleanUpData();
+ cleanUpData();
}
uprv_free(filename);
diff --git a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.h b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.h
index 9b76e8e8757..cb3a6744706 100644
--- a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.h
+++ b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -52,7 +52,7 @@ storeRange(uint32_t start, uint32_t end, UStringPrepType type,UErrorCode* status
#endif
extern void
-generateData(const char *dataDir, const char* packageName, const char* bundleName);
+generateData(const char *dataDir, const char* bundleName);
extern void
setOptions(int32_t options);
diff --git a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.vcproj b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.vcproj
index 99922253e58..e31f0a33f30 100644
--- a/Build/source/libs/icu-xetex/tools/gensprep/gensprep.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gensprep/gensprep.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gensprep.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -88,6 +89,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gensprep.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/gensprep/store.c b/Build/source/libs/icu-xetex/tools/gensprep/store.c
index 46262039173..58b88b3ae7c 100644
--- a/Build/source/libs/icu-xetex/tools/gensprep/store.c
+++ b/Build/source/libs/icu-xetex/tools/gensprep/store.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2005, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -377,7 +377,7 @@ storeMapping(uint32_t codepoint, uint32_t* mapping,int32_t length,
/* initialize the hashtable */
if(hashTable==NULL){
- hashTable = uhash_open(hashEntry, compareEntries, status);
+ hashTable = uhash_open(hashEntry, compareEntries, NULL, status);
uhash_setValueDeleter(hashTable, valueDeleter);
}
@@ -492,11 +492,11 @@ extern void
storeRange(uint32_t start, uint32_t end, UStringPrepType type,UErrorCode* status){
uint16_t trieWord = 0;
- trieWord += (_SPREP_TYPE_THRESHOLD + type); /* the top 4 bits contain the value */
- if(trieWord > 0xFFFF){
+ if((int)(_SPREP_TYPE_THRESHOLD + type) > 0xFFFF){
fprintf(stderr,"trieWord cannot contain value greater than 0xFFFF.\n");
exit(U_ILLEGAL_CHAR_FOUND);
}
+ trieWord = (_SPREP_TYPE_THRESHOLD + type); /* the top 4 bits contain the value */
if(start == end){
uint32_t savedTrieWord = utrie_get32(sprepTrie, start, NULL);
if(savedTrieWord>0){
@@ -574,7 +574,7 @@ getFoldedValue(UNewTrie *trie, UChar32 start, int32_t offset) {
#endif /* #if !UCONFIG_NO_IDNA */
extern void
-generateData(const char *dataDir, const char *packageName, const char* bundleName) {
+generateData(const char *dataDir, const char* bundleName) {
static uint8_t sprepTrieBlock[100000];
UNewDataMemory *pData;
@@ -610,12 +610,7 @@ generateData(const char *dataDir, const char *packageName, const char* bundleNam
#endif
- if(packageName != NULL) {
- uprv_strcpy(fileName,packageName);
- uprv_strcat(fileName,"_");
- } else {
- fileName[0]=0;
- }
+ fileName[0]=0;
uprv_strcat(fileName,bundleName);
/* write the data */
pData=udata_create(dataDir, DATA_TYPE, fileName, &dataInfo,
diff --git a/Build/source/libs/icu-xetex/tools/gentest/.cvsignore b/Build/source/libs/icu-xetex/tools/gentest/.cvsignore
index 977df7bbe7f..e3aede43d39 100644
--- a/Build/source/libs/icu-xetex/tools/gentest/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/gentest/.cvsignore
@@ -5,3 +5,4 @@ Makefile
*.o
*.pdb
gentest
+gentest.exe \ No newline at end of file
diff --git a/Build/source/libs/icu-xetex/tools/gentest/Makefile.in b/Build/source/libs/icu-xetex/tools/gentest/Makefile.in
index ccfb5e911b6..39f1f9253b2 100644
--- a/Build/source/libs/icu-xetex/tools/gentest/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/gentest/Makefile.in
@@ -1,5 +1,4 @@
## Makefile.in for ICU - tools/gentest
-
## Copyright (c) 1999-2005, International Business Machines Corporation and
## others. All Rights Reserved.
## Madhu Katragadda
@@ -15,15 +14,16 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/gentest
-##
-
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
## Target information
TARGET = gentest$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = gentest.o genres32.o
@@ -32,8 +32,7 @@ DEPS = $(OBJECTS:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local
+distclean distclean-local dist dist-local check check-local
## Clear suffix list
.SUFFIXES :
@@ -52,7 +51,7 @@ install-local: all-local
dist-local:
-clean-local:
+clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(TARGET) $(OBJECTS)
@@ -76,4 +75,3 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
endif
endif
-
diff --git a/Build/source/libs/icu-xetex/tools/gentest/gentest.c b/Build/source/libs/icu-xetex/tools/gentest/gentest.c
index 57869c1048a..b65bd0bf5e2 100644
--- a/Build/source/libs/icu-xetex/tools/gentest/gentest.c
+++ b/Build/source/libs/icu-xetex/tools/gentest/gentest.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1999-2004, International Business Machines
+* Copyright (C) 1999-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -28,7 +28,6 @@
#include "uoptions.h"
#include "gentest.h"
-#define DATA_PKG "testdata"
#define DATA_NAME "test"
#define DATA_TYPE "icu"
@@ -73,7 +72,7 @@ main(int argc, char* argv[]) {
if(argc<0 || options[0].doesOccur || options[1].doesOccur) {
fprintf(stderr,
"usage: %s [-options]\n"
- "\tcreate the test file " DATA_PKG "_" DATA_NAME "." DATA_TYPE " unless the -r option is given.\n"
+ "\tcreate the test file " DATA_NAME "." DATA_TYPE " unless the -r option is given.\n"
"\toptions:\n"
"\t\t-h or -? or --help this usage text\n"
"\t\t-d or --destdir destination directory, followed by the path\n"
@@ -101,7 +100,7 @@ createData(const char* outputDirectory, UErrorCode *errorCode) {
long dataLength;
uint32_t size;
- pData=udata_create(outputDirectory, DATA_TYPE, DATA_PKG "_" DATA_NAME, &dataInfo,
+ pData=udata_create(outputDirectory, DATA_TYPE, DATA_NAME, &dataInfo,
U_COPYRIGHT_STRING, errorCode);
if(U_FAILURE(*errorCode)) {
fprintf(stderr, "gentest: unable to create data memory, error %d\n", *errorCode);
diff --git a/Build/source/libs/icu-xetex/tools/gentest/gentest.vcproj b/Build/source/libs/icu-xetex/tools/gentest/gentest.vcproj
index 9e35d65e537..66faff11768 100644
--- a/Build/source/libs/icu-xetex/tools/gentest/gentest.vcproj
+++ b/Build/source/libs/icu-xetex/tools/gentest/gentest.vcproj
@@ -27,6 +27,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/gentest.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -85,6 +86,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/gentest.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
diff --git a/Build/source/libs/icu-xetex/tools/genuca/Makefile.in b/Build/source/libs/icu-xetex/tools/genuca/Makefile.in
index 3ec6f6b8d15..34fbb443a95 100644
--- a/Build/source/libs/icu-xetex/tools/genuca/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/genuca/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - tools/genuca
-## Copyright (c) 1999-2004, International Business Machines Corporation and
+## Copyright (c) 1999-2005, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
@@ -10,7 +10,8 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/genuca
TARGET_STUB_NAME = genuca
@@ -18,27 +19,26 @@ SECTION = 8
MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
-## Build directory information
-subdir = tools/genuca
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(MAN_FILES) $(DEPS)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(srcdir)/../toolutil
LIBS = $(LIBICUI18N) $(LIBICUTOOLUTIL) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = genuca.o
DEPS = $(OBJECTS:.o=.d)
-
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -51,15 +51,19 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
dist-local:
-clean-local:
+clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(TARGET) $(OBJECTS)
@@ -76,23 +80,10 @@ $(TARGET) : $(OBJECTS)
$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-# the 'mv' will always fail if you are building in the source dir
-
-# man page
-install-man: $(MAN_FILES)
- $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $< $(DESTDIR)$(mandir)/man$(SECTION)
-
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-# build postscript and pdf formats
-#$(TARGET).ps: $(TARGET).$(SECTION)
-# groff -man < $< > $@
-
-#$(TARGET).pdf: $(TARGET).ps
-# ps2pdf $< $@
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -101,3 +92,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/genuca/genuca.cpp b/Build/source/libs/icu-xetex/tools/genuca/genuca.cpp
index 63bf1082552..8a0f87180c9 100644
--- a/Build/source/libs/icu-xetex/tools/genuca/genuca.cpp
+++ b/Build/source/libs/icu-xetex/tools/genuca/genuca.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -778,6 +778,10 @@ write_uca_table(const char *filename,
UErrorCode *status)
{
FILE *data = fopen(filename, "r");
+ if(data == NULL) {
+ fprintf(stderr, "Couldn't open file: %s\n", filename);
+ return -1;
+ }
uint32_t line = 0;
UCAElements *element = NULL;
UChar variableTopValue = 0;
@@ -836,11 +840,6 @@ write_uca_table(const char *filename,
#endif
- if(data == NULL) {
- fprintf(stderr, "Couldn't open file: %s\n", filename);
- return -1;
- }
-
uprv_memset(inverseTable, 0xDA, sizeof(int32_t)*3*0xFFFF);
opts->variableTopValue = variableTopValue;
@@ -858,6 +857,9 @@ write_uca_table(const char *filename,
if(U_FAILURE(*status))
{
fprintf(stderr, "Failed to init UCA temp table: %s\n", u_errorName(*status));
+ uprv_free(opts);
+ uprv_free(myD);
+ fclose(data);
return -1;
}
@@ -952,8 +954,12 @@ struct {
}
if(UCAVersion[0] == 0 && UCAVersion[1] == 0 && UCAVersion[2] == 0 && UCAVersion[3] == 0) {
- fprintf(stderr, "UCA version not specified. Cannot create data file!\n");
- return -1;
+ fprintf(stderr, "UCA version not specified. Cannot create data file!\n");
+ uprv_uca_closeTempTable(t);
+ uprv_free(opts);
+ uprv_free(myD);
+ fclose(data);
+ return -1;
}
/* {
uint32_t trieWord = utrie_get32(t->mapping, 0xDC01, NULL);
@@ -992,6 +998,10 @@ struct {
if(U_FAILURE(*status)) {
fprintf(stderr, "Error creating table: %s\n", u_errorName(*status));
+ uprv_uca_closeTempTable(t);
+ uprv_free(opts);
+ uprv_free(myD);
+ fclose(data);
return -1;
}
@@ -1013,7 +1023,7 @@ struct {
uprv_memcpy(inverse->UCAVersion, UCAVersion, sizeof(UVersionInfo));
writeOutInverseData(inverse, outputDir, copyright, status);
- uprv_uca_closeTempTable(t);
+ uprv_uca_closeTempTable(t);
uprv_free(myD);
uprv_free(opts);
diff --git a/Build/source/libs/icu-xetex/tools/genuca/genuca.vcproj b/Build/source/libs/icu-xetex/tools/genuca/genuca.vcproj
index f8704296c28..e390f12ad98 100644
--- a/Build/source/libs/icu-xetex/tools/genuca/genuca.vcproj
+++ b/Build/source/libs/icu-xetex/tools/genuca/genuca.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/genuca.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -91,6 +92,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/genuca.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/.cvsignore b/Build/source/libs/icu-xetex/tools/icupkg/.cvsignore
new file mode 100644
index 00000000000..cef5c3dbd46
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/.cvsignore
@@ -0,0 +1,11 @@
+Debug
+Release
+Makefile
+*.d
+*.o
+*.pdb
+icupkg
+icupkg.[0-9]
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/Makefile.in b/Build/source/libs/icu-xetex/tools/icupkg/Makefile.in
new file mode 100644
index 00000000000..155c3aa11f4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/Makefile.in
@@ -0,0 +1,96 @@
+## Makefile.in for ICU - tools/icupkg
+## Copyright (c) 1999-2006, International Business Machines Corporation and
+## others. All Rights Reserved.
+## Steven R. Loomis
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../..
+
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = tools/icupkg
+
+TARGET_STUB_NAME = icupkg
+
+SECTION = 8
+
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
+
+## Target information
+TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
+
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
+
+OBJECTS = icupkg.o
+
+DEPS = $(OBJECTS:.o=.d)
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+all-local: $(TARGET) $(MAN_FILES)
+
+install-local: all-local install-man
+ $(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+ $(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+
+dist-local:
+
+clean-local:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+ $(RMV) $(TARGET) $(OBJECTS)
+
+distclean-local: clean-local
+ $(RMV) Makefile
+
+check-local: all-local
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(TARGET) : $(OBJECTS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/icupkg.1.in b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.1.in
new file mode 100644
index 00000000000..c5ea50e5a50
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.1.in
@@ -0,0 +1,204 @@
+.\" Hey, Emacs! This is -*-nroff-*- you know...
+.\"
+.\" icupkg.1: manual page for the icupkg utility
+.\"
+.\" Copyright (C) 2000-2006 IBM, Inc. and others.
+.\"
+.TH ICUPKG 1 "18 August 2006" "ICU MANPAGE" "ICU @VERSION@ Manual"
+.SH NAME
+.B icupkg
+\- extract or modify an ICU
+.B .dat
+archive
+.SH SYNOPSIS
+.B icupkg
+[
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+]
+[
+.BR "\-tl\fP, \fB\-\-type" " l"
+|
+.BR "\-tb\fP, \fB\-\-type" " b"
+|
+.BR "\-te\fP, \fB\-\-type" " e"
+]
+[
+.BR "\-c\fP, \fB\-\-copyright"
+|
+.BI "\-C\fP, \fB\-\-comment" " comment"
+]
+[
+.BI "\-a\fP, \fB\-\-add" " list"
+]
+[
+.BI "\-r\fP, \fB\-\-remove" " list"
+]
+[
+.BI "\-x\fP, \fB\-\-extract" " list"
+]
+[
+.BI "\-l\fP, \fB\-\-list"
+]
+[
+.BI "\-s\fP, \fB\-\-sourcedir" " source"
+]
+[
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+]
+[
+.BI "\-w\fP, \fB\-\-writepkg"
+]
+[
+.BI "\-m\fP, \fB\-\-matchmode" " mode"
+]
+.IR infilename
+[
+.BI "outfilename"
+]
+.SH DESCRIPTION
+.B icupkg
+reads the input ICU
+.B .dat
+package file, modify it according to the options,
+swap it to the desired platform properties (charset & endianness),
+and optionally write the resulting ICU
+.B .dat
+package to the output file.
+Items are removed, then added, then extracted and listed.
+An ICU
+.B .dat
+package is written if items are removed or added,
+or if the input and output filenames differ,
+or if the
+.BR "\-w\fP, \fB\-\-writepkg"
+option is set.
+.PP
+If the input filename is "new" then an empty package is created.
+If the output filename is missing, then it is automatically generated
+from the input filename. If the input filename ends with an l, b, or e
+matching its platform properties, then the output filename will
+contain the letter from the
+.BI "\-t\fP, \fB\-\-type"
+option.
+.PP
+This tool can also be used to just swap a single ICU data file, replacing the
+former icuswap tool. For this mode, provide the infilename (and optional
+outfilename) for a non-package ICU data file.
+Allowed options include
+.BI "\-t\fP, \fB\-w\fP, \fB\-s\fP"
+and
+.BI \-d
+.
+The filenames can be absolute, or relative to the source/dest dir paths.
+Other options are not allowed in this mode.
+.SH OPTIONS
+.TP
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+Print help about usage and exit.
+.TP
+.BI "\-tl\fP, \fB\-\-type" " l"
+Output for little-endian/ASCII charset family.
+The output type defaults to the input type.
+.TP
+.BI "\-tb\fP, \fB\-\-type" " b"
+Output for big-endian/ASCII charset family.
+The output type defaults to the input type.
+.TP
+.BI "\-te\fP, \fB\-\-type" " e"
+Output for big-endian/EBCDIC charset family.
+The output type defaults to the input type.
+.TP
+.BR \-c\fP, \fB\-\-copyright
+Include the ICU copyright notice in the resulting data.
+.TP
+.BI "\-C\fP, \fB\-\-comment" " comment"
+Include the specified
+.I comment
+in the resulting data instead of the ICU copyright notice.
+.TP
+.BI "\-a\fP, \fB\-\-add" " list"
+Add items from the
+.I list
+to the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-r\fP, \fB\-\-remove" " list"
+Remove items from the
+.I list
+from the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-x\fP, \fB\-\-extract" " list"
+Extract items from the
+.I list
+from the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-m\fP, \fB\-\-matchmode" " mode"
+Set the matching mode for item names with wildcards.
+.TP
+.BI "\-s\fP, \fB\-\-sourcedir" " source"
+Set the source directory to
+.IR source .
+The default source directory is the current directory.
+.TP
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+Set the destination directory to
+.IR destination .
+The default destination directory is the current directory.
+.TP
+.BI "\-l\fP, \fB\-\-list"
+List the package items to stdout (after modifying the package).
+.SH LIST FILE SYNTAX
+Items are listed on one or more lines and separated by whitespace (space+tab).
+Comments begin with
+.B #
+and are ignored. Empty lines are ignored. Lines where the first non-whitespace
+character is one of "%&'()*+,-./:;<=>?_ are also ignored
+to reserve for future syntax.
+.PP
+Items for removal or extraction may contain a single
+.B *
+wildcard character. The
+.B *
+matches zero or more characters. If
+.BI "\-m\fP, \fB\-\-matchmode" " noslash"
+is set, then the
+.B *
+character does not match the
+.B /
+character.
+.PP
+Items must be listed relative to the package, and the
+.B "\fB\-\-sourcedir"
+or the
+.B "\fB\-\-destdir"
+path will be prepended. The paths are only prepended to item
+filenames while adding or extracting items, not to ICU .dat package or list
+filenames.
+.PP
+Paths may contain
+.B /
+instead of the platform's file separator character and are converted as
+appropriate.
+.SH AUTHORS
+Markus Scherer
+.br
+George Rhoten
+.SH VERSION
+1.0
+.SH COPYRIGHT
+Copyright (C) 2006 IBM, Inc. and others.
+.SH SEE ALSO
+.BR pkgdata (1)
+.BR genrb (1)
+
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/icupkg.8.in b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.8.in
new file mode 100644
index 00000000000..37caabaf9bf
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.8.in
@@ -0,0 +1,204 @@
+.\" Hey, Emacs! This is -*-nroff-*- you know...
+.\"
+.\" icupkg.8: manual page for the icupkg utility
+.\"
+.\" Copyright (C) 2000-2006 IBM, Inc. and others.
+.\"
+.TH ICUPKG 8 "18 August 2006" "ICU MANPAGE" "ICU @VERSION@ Manual"
+.SH NAME
+.B icupkg
+\- extract or modify an ICU
+.B .dat
+archive
+.SH SYNOPSIS
+.B icupkg
+[
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+]
+[
+.BR "\-tl\fP, \fB\-\-type" " l"
+|
+.BR "\-tb\fP, \fB\-\-type" " b"
+|
+.BR "\-te\fP, \fB\-\-type" " e"
+]
+[
+.BR "\-c\fP, \fB\-\-copyright"
+|
+.BI "\-C\fP, \fB\-\-comment" " comment"
+]
+[
+.BI "\-a\fP, \fB\-\-add" " list"
+]
+[
+.BI "\-r\fP, \fB\-\-remove" " list"
+]
+[
+.BI "\-x\fP, \fB\-\-extract" " list"
+]
+[
+.BI "\-l\fP, \fB\-\-list"
+]
+[
+.BI "\-s\fP, \fB\-\-sourcedir" " source"
+]
+[
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+]
+[
+.BI "\-w\fP, \fB\-\-writepkg"
+]
+[
+.BI "\-m\fP, \fB\-\-matchmode" " mode"
+]
+.IR infilename
+[
+.BI "outfilename"
+]
+.SH DESCRIPTION
+.B icupkg
+reads the input ICU
+.B .dat
+package file, modify it according to the options,
+swap it to the desired platform properties (charset & endianness),
+and optionally write the resulting ICU
+.B .dat
+package to the output file.
+Items are removed, then added, then extracted and listed.
+An ICU
+.B .dat
+package is written if items are removed or added,
+or if the input and output filenames differ,
+or if the
+.BR "\-w\fP, \fB\-\-writepkg"
+option is set.
+.PP
+If the input filename is "new" then an empty package is created.
+If the output filename is missing, then it is automatically generated
+from the input filename. If the input filename ends with an l, b, or e
+matching its platform properties, then the output filename will
+contain the letter from the
+.BI "\-t\fP, \fB\-\-type"
+option.
+.PP
+This tool can also be used to just swap a single ICU data file, replacing the
+former icuswap tool. For this mode, provide the infilename (and optional
+outfilename) for a non-package ICU data file.
+Allowed options include
+.BI "\-t\fP, \fB\-w\fP, \fB\-s\fP"
+and
+.BI \-d
+.
+The filenames can be absolute, or relative to the source/dest dir paths.
+Other options are not allowed in this mode.
+.SH OPTIONS
+.TP
+.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
+Print help about usage and exit.
+.TP
+.BI "\-tl\fP, \fB\-\-type" " l"
+Output for little-endian/ASCII charset family.
+The output type defaults to the input type.
+.TP
+.BI "\-tb\fP, \fB\-\-type" " b"
+Output for big-endian/ASCII charset family.
+The output type defaults to the input type.
+.TP
+.BI "\-te\fP, \fB\-\-type" " e"
+Output for big-endian/EBCDIC charset family.
+The output type defaults to the input type.
+.TP
+.BR \-c\fP, \fB\-\-copyright
+Include the ICU copyright notice in the resulting data.
+.TP
+.BI "\-C\fP, \fB\-\-comment" " comment"
+Include the specified
+.I comment
+in the resulting data instead of the ICU copyright notice.
+.TP
+.BI "\-a\fP, \fB\-\-add" " list"
+Add items from the
+.I list
+to the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-r\fP, \fB\-\-remove" " list"
+Remove items from the
+.I list
+from the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-x\fP, \fB\-\-extract" " list"
+Extract items from the
+.I list
+from the package. The list can be a single filename with a
+.B .txt
+file extension containing a list of item filenames, or an ICU
+.B .dat
+package filename.
+.TP
+.BI "\-m\fP, \fB\-\-matchmode" " mode"
+Set the matching mode for item names with wildcards.
+.TP
+.BI "\-s\fP, \fB\-\-sourcedir" " source"
+Set the source directory to
+.IR source .
+The default source directory is the current directory.
+.TP
+.BI "\-d\fP, \fB\-\-destdir" " destination"
+Set the destination directory to
+.IR destination .
+The default destination directory is the current directory.
+.TP
+.BI "\-l\fP, \fB\-\-list"
+List the package items to stdout (after modifying the package).
+.SH LIST FILE SYNTAX
+Items are listed on one or more lines and separated by whitespace (space+tab).
+Comments begin with
+.B #
+and are ignored. Empty lines are ignored. Lines where the first non-whitespace
+character is one of "%&'()*+,-./:;<=>?_ are also ignored
+to reserve for future syntax.
+.PP
+Items for removal or extraction may contain a single
+.B *
+wildcard character. The
+.B *
+matches zero or more characters. If
+.BI "\-m\fP, \fB\-\-matchmode" " noslash"
+is set, then the
+.B *
+character does not match the
+.B /
+character.
+.PP
+Items must be listed relative to the package, and the
+.B "\fB\-\-sourcedir"
+or the
+.B "\fB\-\-destdir"
+path will be prepended. The paths are only prepended to item
+filenames while adding or extracting items, not to ICU .dat package or list
+filenames.
+.PP
+Paths may contain
+.B /
+instead of the platform's file separator character and are converted as
+appropriate.
+.SH AUTHORS
+Markus Scherer
+.br
+George Rhoten
+.SH VERSION
+1.0
+.SH COPYRIGHT
+Copyright (C) 2006 IBM, Inc. and others.
+.SH SEE ALSO
+.BR pkgdata (1)
+.BR genrb (1)
+
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/icupkg.cpp b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.cpp
new file mode 100644
index 00000000000..93c488ddda7
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.cpp
@@ -0,0 +1,579 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: icupkg.cpp
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005jul29
+* created by: Markus W. Scherer
+*
+* This tool operates on ICU data (.dat package) files.
+* It takes one as input, or creates an empty one, and can remove, add, and
+* extract data pieces according to command-line options.
+* At the same time, it swaps each piece to a consistent set of platform
+* properties as desired.
+* Useful as an install-time tool for shipping only one flavor of ICU data
+* and preparing data files for the target platform.
+* Also for customizing ICU data (pruning, augmenting, replacing) and for
+* taking it apart.
+* Subsumes functionality and implementation code from
+* gencmn, decmn, and icuswap tools.
+* Will not work with data DLLs (shared libraries).
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/putil.h"
+#include "cstring.h"
+#include "toolutil.h"
+#include "uoptions.h"
+#include "uparse.h"
+#include "package.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+// TODO: add --matchmode=regex for using the ICU regex engine for item name pattern matching?
+
+// general definitions ----------------------------------------------------- ***
+
+#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
+// read a file list -------------------------------------------------------- ***
+
+static const char *reservedChars="\"%&'()*+,-./:;<=>?_";
+
+static const struct {
+ const char *suffix;
+ int32_t length;
+} listFileSuffixes[]={
+ { ".txt", 4 },
+ { ".lst", 4 },
+ { ".tmp", 4 }
+};
+
+/* check for multiple text file suffixes to see if this list name is a text file name */
+static UBool
+isListTextFile(const char *listname) {
+ const char *listNameEnd=strchr(listname, 0);
+ const char *suffix;
+ int32_t i, length;
+ for(i=0; i<LENGTHOF(listFileSuffixes); ++i) {
+ suffix=listFileSuffixes[i].suffix;
+ length=listFileSuffixes[i].length;
+ if((listNameEnd-listname)>length && 0==memcmp(listNameEnd-length, suffix, length)) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+/*
+ * Read a file list.
+ * If the listname ends with ".txt", then read the list file
+ * (in the system/ invariant charset).
+ * If the listname ends with ".dat", then read the ICU .dat package file.
+ * Otherwise, read the file itself as a single-item list.
+ */
+static Package *
+readList(const char *filesPath, const char *listname, UBool readContents) {
+ Package *listPkg;
+ FILE *file;
+ const char *listNameEnd;
+
+ if(listname==NULL || listname[0]==0) {
+ fprintf(stderr, "missing list file\n");
+ return NULL;
+ }
+
+ listPkg=new Package();
+ if(listPkg==NULL) {
+ fprintf(stderr, "icupkg: not enough memory\n");
+ exit(U_MEMORY_ALLOCATION_ERROR);
+ }
+
+ listNameEnd=strchr(listname, 0);
+ if(isListTextFile(listname)) {
+ // read the list file
+ char line[1024];
+ char *end;
+ const char *start;
+
+ file=fopen(listname, "r");
+ if(file==NULL) {
+ fprintf(stderr, "icupkg: unable to open list file \"%s\"\n", listname);
+ delete listPkg;
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ while(fgets(line, sizeof(line), file)) {
+ // remove comments
+ end=strchr(line, '#');
+ if(end!=NULL) {
+ *end=0;
+ } else {
+ // remove trailing CR LF
+ end=strchr(line, 0);
+ while(line<end && (*(end-1)=='\r' || *(end-1)=='\n')) {
+ *--end=0;
+ }
+ }
+
+ // check first non-whitespace character and
+ // skip empty lines and
+ // skip lines starting with reserved characters
+ start=u_skipWhitespace(line);
+ if(*start==0 || NULL!=strchr(reservedChars, *start)) {
+ continue;
+ }
+
+ // take whitespace-separated items from the line
+ for(;;) {
+ // find whitespace after the item or the end of the line
+ for(end=(char *)start; *end!=0 && *end!=' ' && *end!='\t'; ++end) {}
+ if(*end==0) {
+ // this item is the last one on the line
+ end=NULL;
+ } else {
+ // the item is terminated by whitespace, terminate it with NUL
+ *end=0;
+ }
+ if(readContents) {
+ listPkg->addFile(filesPath, start);
+ } else {
+ listPkg->addItem(start);
+ }
+
+ // find the start of the next item or exit the loop
+ if(end==NULL || *(start=u_skipWhitespace(end+1))==0) {
+ break;
+ }
+ }
+ }
+ fclose(file);
+ } else if((listNameEnd-listname)>4 && 0==memcmp(listNameEnd-4, ".dat", 4)) {
+ // read the ICU .dat package
+ listPkg->readPackage(listname);
+ } else {
+ // list the single file itself
+ if(readContents) {
+ listPkg->addFile(filesPath, listname);
+ } else {
+ listPkg->addItem(listname);
+ }
+ }
+
+ return listPkg;
+}
+
+// main() ------------------------------------------------------------------ ***
+
+static void
+printUsage(const char *pname, UBool isHelp) {
+ FILE *where=isHelp ? stdout : stderr;
+
+ fprintf(where,
+ "%csage: %s [-h|-?|--help ] [-tl|-tb|-te] [-c] [-C comment]\n"
+ "\t[-a list] [-r list] [-x list] [-l]\n"
+ "\t[-s path] [-d path] [-w] [-m mode]\n"
+ "\tinfilename [outfilename]\n",
+ isHelp ? 'U' : 'u', pname);
+ if(isHelp) {
+ fprintf(where,
+ "\n"
+ "Read the input ICU .dat package file, modify it according to the options,\n"
+ "swap it to the desired platform properties (charset & endianness),\n"
+ "and optionally write the resulting ICU .dat package to the output file.\n"
+ "Items are removed, then added, then extracted and listed.\n"
+ "An ICU .dat package is written if items are removed or added,\n"
+ "or if the input and output filenames differ,\n"
+ "or if the --writepkg (-w) option is set.\n");
+ fprintf(where,
+ "\n"
+ "If the input filename is \"new\" then an empty package is created.\n"
+ "If the output filename is missing, then it is automatically generated\n"
+ "from the input filename: If the input filename ends with an l, b, or e\n"
+ "matching its platform properties, then the output filename will\n"
+ "contain the letter from the -t (--type) option.\n");
+ fprintf(where,
+ "\n"
+ "This tool can also be used to just swap a single ICU data file, replacing the\n"
+ "former icuswap tool. For this mode, provide the infilename (and optional\n"
+ "outfilename) for a non-package ICU data file.\n"
+ "Allowed options include -t, -w, -s and -d.\n"
+ "The filenames can be absolute, or relative to the source/dest dir paths.\n"
+ "Other options are not allowed in this mode.\n");
+ fprintf(where,
+ "\n"
+ "Options:\n"
+ "\t(Only the last occurrence of an option is used.)\n"
+ "\n"
+ "\t-h or -? or --help print this message and exit\n");
+ fprintf(where,
+ "\n"
+ "\t-tl or --type l output for little-endian/ASCII charset family\n"
+ "\t-tb or --type b output for big-endian/ASCII charset family\n"
+ "\t-te or --type e output for big-endian/EBCDIC charset family\n"
+ "\t The output type defaults to the input type.\n"
+ "\n"
+ "\t-c or --copyright include the ICU copyright notice\n"
+ "\t-C comment or --comment comment include a comment string\n");
+ fprintf(where,
+ "\n"
+ "\t-a list or --add list add items to the package\n"
+ "\t-r list or --remove list remove items from the package\n"
+ "\t-x list or --extract list extract items from the package\n"
+ "\tThe list can be a single item's filename,\n"
+ "\tor a .txt filename with a list of item filenames,\n"
+ "\tor an ICU .dat package filename.\n");
+ fprintf(where,
+ "\n"
+ "\t-w or --writepkg write the output package even if no items are removed\n"
+ "\t or added (e.g., for only swapping the data)\n");
+ fprintf(where,
+ "\n"
+ "\t-m mode or --matchmode mode set the matching mode for item names with\n"
+ "\t wildcards\n"
+ "\t noslash: the '*' wildcard does not match the '/' tree separator\n");
+ /*
+ * Usage text columns, starting after the initial TAB.
+ * 1 2 3 4 5 6 7 8
+ * 901234567890123456789012345678901234567890123456789012345678901234567890
+ */
+ fprintf(where,
+ "\n"
+ "\tList file syntax: Items are listed on one or more lines and separated\n"
+ "\tby whitespace (space+tab).\n"
+ "\tComments begin with # and are ignored. Empty lines are ignored.\n"
+ "\tLines where the first non-whitespace character is one of %s\n"
+ "\tare also ignored, to reserve for future syntax.\n",
+ reservedChars);
+ fprintf(where,
+ "\tItems for removal or extraction may contain a single '*' wildcard\n"
+ "\tcharacter. The '*' matches zero or more characters.\n"
+ "\tIf --matchmode noslash (-m noslash) is set, then the '*'\n"
+ "\tdoes not match '/'.\n");
+ fprintf(where,
+ "\n"
+ "\tItems must be listed relative to the package, and the --sourcedir or\n"
+ "\tthe --destdir path will be prepended.\n"
+ "\tThe paths are only prepended to item filenames while adding or\n"
+ "\textracting items, not to ICU .dat package or list filenames.\n"
+ "\t\n"
+ "\tPaths may contain '/' instead of the platform's\n"
+ "\tfile separator character, and are converted as appropriate.\n");
+ fprintf(where,
+ "\n"
+ "\t-s path or --sourcedir path directory for the --add items\n"
+ "\t-d path or --destdir path directory for the --extract items\n"
+ "\n"
+ "\t-l or --list list the package items to stdout\n"
+ "\t (after modifying the package)\n");
+ }
+}
+
+static UOption options[]={
+ UOPTION_HELP_H,
+ UOPTION_HELP_QUESTION_MARK,
+ UOPTION_DEF("type", 't', UOPT_REQUIRES_ARG),
+
+ UOPTION_COPYRIGHT,
+ UOPTION_DEF("comment", 'C', UOPT_REQUIRES_ARG),
+
+ UOPTION_SOURCEDIR,
+ UOPTION_DESTDIR,
+
+ UOPTION_DEF("writepkg", 'w', UOPT_NO_ARG),
+
+ UOPTION_DEF("matchmode", 'm', UOPT_REQUIRES_ARG),
+
+ UOPTION_DEF("add", 'a', UOPT_REQUIRES_ARG),
+ UOPTION_DEF("remove", 'r', UOPT_REQUIRES_ARG),
+ UOPTION_DEF("extract", 'x', UOPT_REQUIRES_ARG),
+
+ UOPTION_DEF("list", 'l', UOPT_NO_ARG)
+};
+
+enum {
+ OPT_HELP_H,
+ OPT_HELP_QUESTION_MARK,
+ OPT_OUT_TYPE,
+
+ OPT_COPYRIGHT,
+ OPT_COMMENT,
+
+ OPT_SOURCEDIR,
+ OPT_DESTDIR,
+
+ OPT_WRITEPKG,
+
+ OPT_MATCHMODE,
+
+ OPT_ADD_LIST,
+ OPT_REMOVE_LIST,
+ OPT_EXTRACT_LIST,
+
+ OPT_LIST_ITEMS,
+
+ OPT_COUNT
+};
+
+static UBool
+isPackageName(const char *filename) {
+ int32_t len;
+
+ len=(int32_t)strlen(filename)-4; /* -4: subtract the length of ".dat" */
+ return (UBool)(len>0 && 0==strcmp(filename+len, ".dat"));
+}
+
+extern int
+main(int argc, char *argv[]) {
+ const char *pname, *sourcePath, *destPath, *inFilename, *outFilename, *outComment;
+ char outType;
+ UBool isHelp, isModified, isPackage;
+
+ Package *pkg, *listPkg;
+
+ U_MAIN_INIT_ARGS(argc, argv);
+
+ /* get the program basename */
+ pname=findBasename(argv[0]);
+
+ argc=u_parseArgs(argc, argv, LENGTHOF(options), options);
+ isHelp=options[OPT_HELP_H].doesOccur || options[OPT_HELP_QUESTION_MARK].doesOccur;
+ if(isHelp) {
+ printUsage(pname, TRUE);
+ return U_ZERO_ERROR;
+ }
+ if(argc<2 || 3<argc) {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+
+ pkg=new Package;
+ if(pkg==NULL) {
+ fprintf(stderr, "icupkg: not enough memory\n");
+ return U_MEMORY_ALLOCATION_ERROR;
+ }
+ isModified=FALSE;
+
+ if(options[OPT_SOURCEDIR].doesOccur) {
+ sourcePath=options[OPT_SOURCEDIR].value;
+ } else {
+ // work relative to the current working directory
+ sourcePath=NULL;
+ }
+ if(options[OPT_DESTDIR].doesOccur) {
+ destPath=options[OPT_DESTDIR].value;
+ } else {
+ // work relative to the current working directory
+ destPath=NULL;
+ }
+
+ if(0==strcmp(argv[1], "new")) {
+ inFilename=NULL;
+ isPackage=TRUE;
+ } else {
+ inFilename=argv[1];
+ if(isPackageName(inFilename)) {
+ pkg->readPackage(inFilename);
+ isPackage=TRUE;
+ } else {
+ /* swap a single file (icuswap replacement) rather than work on a package */
+ pkg->addFile(sourcePath, inFilename);
+ isPackage=FALSE;
+ }
+ }
+
+ if(argc>=3) {
+ outFilename=argv[2];
+ if(0!=strcmp(argv[1], argv[2])) {
+ isModified=TRUE;
+ }
+ } else if(isPackage) {
+ outFilename=NULL;
+ } else /* !isPackage */ {
+ outFilename=inFilename;
+ isModified=(UBool)(sourcePath!=destPath);
+ }
+
+ /* parse the output type option */
+ if(options[OPT_OUT_TYPE].doesOccur) {
+ const char *type=options[OPT_OUT_TYPE].value;
+ if(type[0]==0 || type[1]!=0) {
+ /* the type must be exactly one letter */
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ outType=type[0];
+ switch(outType) {
+ case 'l':
+ case 'b':
+ case 'e':
+ break;
+ default:
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+
+ /*
+ * Set the isModified flag if the output type differs from the
+ * input package type.
+ * If we swap a single file, just assume that we are modifying it.
+ * The Package class does not give us access to the item and its type.
+ */
+ isModified=(UBool)(!isPackage || outType!=pkg->getInType());
+ } else if(isPackage) {
+ outType=pkg->getInType(); // default to input type
+ } else /* !isPackage: swap single file */ {
+ outType=0; /* tells extractItem() to not swap */
+ }
+
+ if(options[OPT_WRITEPKG].doesOccur) {
+ isModified=TRUE;
+ }
+
+ if(!isPackage) {
+ /*
+ * icuswap tool replacement: Only swap a single file.
+ * Check that irrelevant options are not set.
+ */
+ if( options[OPT_COMMENT].doesOccur ||
+ options[OPT_COPYRIGHT].doesOccur ||
+ options[OPT_MATCHMODE].doesOccur ||
+ options[OPT_REMOVE_LIST].doesOccur ||
+ options[OPT_ADD_LIST].doesOccur ||
+ options[OPT_EXTRACT_LIST].doesOccur ||
+ options[OPT_LIST_ITEMS].doesOccur
+ ) {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ if(isModified) {
+ pkg->extractItem(destPath, outFilename, 0, outType);
+ }
+
+ delete pkg;
+ return 0;
+ }
+
+ /* Work with a package. */
+
+ if(options[OPT_COMMENT].doesOccur) {
+ outComment=options[OPT_COMMENT].value;
+ } else if(options[OPT_COPYRIGHT].doesOccur) {
+ outComment=U_COPYRIGHT_STRING;
+ } else {
+ outComment=NULL;
+ }
+
+ if(options[OPT_MATCHMODE].doesOccur) {
+ if(0==strcmp(options[OPT_MATCHMODE].value, "noslash")) {
+ pkg->setMatchMode(Package::MATCH_NOSLASH);
+ } else {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ }
+
+ /* remove items */
+ if(options[OPT_REMOVE_LIST].doesOccur) {
+ listPkg=readList(NULL, options[OPT_REMOVE_LIST].value, FALSE);
+ if(listPkg!=NULL) {
+ pkg->removeItems(*listPkg);
+ delete listPkg;
+ isModified=TRUE;
+ } else {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ }
+
+ /*
+ * add items
+ * use a separate Package so that its memory and items stay around
+ * as long as the main Package
+ */
+ if(options[OPT_ADD_LIST].doesOccur) {
+ listPkg=readList(sourcePath, options[OPT_ADD_LIST].value, TRUE);
+ if(listPkg!=NULL) {
+ pkg->addItems(*listPkg);
+ delete listPkg;
+ isModified=TRUE;
+ } else {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ }
+
+ /* extract items */
+ if(options[OPT_EXTRACT_LIST].doesOccur) {
+ listPkg=readList(NULL, options[OPT_EXTRACT_LIST].value, FALSE);
+ if(listPkg!=NULL) {
+ pkg->extractItems(destPath, *listPkg, outType);
+ delete listPkg;
+ } else {
+ printUsage(pname, FALSE);
+ return U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ }
+
+ /* list items */
+ if(options[OPT_LIST_ITEMS].doesOccur) {
+ pkg->listItems(stdout);
+ }
+
+ /* check dependencies between items */
+ if(!pkg->checkDependencies()) {
+ /* some dependencies are not fulfilled */
+ return U_MISSING_RESOURCE_ERROR;
+ }
+
+ /* write the output .dat package if there are any modifications */
+ if(isModified) {
+ char outFilenameBuffer[1024]; // for auto-generated output filename, if necessary
+
+ if(outFilename==NULL || outFilename[0]==0) {
+ if(inFilename==NULL || inFilename[0]==0) {
+ fprintf(stderr, "icupkg: unable to auto-generate an output filename if there is no input filename\n");
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+
+ /*
+ * auto-generate a filename:
+ * copy the inFilename,
+ * and if the last basename character matches the input file's type,
+ * then replace it with the output file's type
+ */
+ char suffix[6]="?.dat";
+ char *s;
+
+ suffix[0]=pkg->getInType();
+ strcpy(outFilenameBuffer, inFilename);
+ s=strchr(outFilenameBuffer, 0);
+ if((s-outFilenameBuffer)>5 && 0==memcmp(s-5, suffix, 5)) {
+ *(s-5)=outType;
+ }
+ outFilename=outFilenameBuffer;
+ }
+ pkg->writePackage(outFilename, outType, outComment);
+ }
+
+ delete pkg;
+ return 0;
+}
+
+/*
+ * Hey, Emacs, please set the following:
+ *
+ * Local Variables:
+ * indent-tabs-mode: nil
+ * End:
+ *
+ */
diff --git a/Build/source/libs/icu-xetex/tools/icupkg/icupkg.vcproj b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.vcproj
new file mode 100644
index 00000000000..281b2987f1b
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/icupkg/icupkg.vcproj
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="icupkg"
+ ProjectGUID="{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}"
+ Keyword="Win32Proj">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="Release"
+ IntermediateDirectory="Release"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ ImproveFloatingPointConsistency="TRUE"
+ AdditionalIncludeDirectories="..\..\common;..\toolutil"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
+ PrecompiledHeaderFile="Release/icupkg.pch"
+ AssemblerListingLocation="Release/"
+ ObjectFile="Release/"
+ ProgramDataBaseFileName="Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(TargetPath)&quot; ..\..\..\bin
+"
+ Outputs="..\..\..\bin\$(TargetFileName)"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/icupkg.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ ProgramDatabaseFile="Release/icupkg.pdb"
+ SubSystem="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="Debug"
+ IntermediateDirectory="Debug"
+ ConfigurationType="1"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ ImproveFloatingPointConsistency="TRUE"
+ AdditionalIncludeDirectories="..\..\common;..\toolutil"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ BufferSecurityCheck="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
+ PrecompiledHeaderFile="Debug/icupkg.pch"
+ AssemblerListingLocation="Debug/"
+ ObjectFile="Debug/"
+ ProgramDataBaseFileName="Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="copy &quot;$(TargetPath)&quot; ..\..\..\bin
+"
+ Outputs="..\..\..\bin\$(TargetFileName)"/>
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="$(OutDir)/icupkg.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="TRUE"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile="$(OutDir)/icupkg.pdb"
+ SubSystem="1"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath="icupkg.cpp">
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu-xetex/tools/icuswap/Makefile.in b/Build/source/libs/icu-xetex/tools/icuswap/Makefile.in
index 073a2abb457..6fd0ced2737 100644
--- a/Build/source/libs/icu-xetex/tools/icuswap/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/icuswap/Makefile.in
@@ -1,5 +1,5 @@
## Makefile.in for ICU - tools/icuswap
-## Copyright (c) 1999-2005, International Business Machines Corporation and
+## Copyright (c) 1999-2006, International Business Machines Corporation and
## others. All Rights Reserved.
## Steven R. Loomis
@@ -14,33 +14,31 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/icuswap
-##
-
TARGET_STUB_NAME = icuswap
-SECTION = 1
-
-#MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
+SECTION = 8
-#ALL_MAN_FILES = $(MANX_FILES)
+#MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(ALL_MAN_FILES)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil $(BIR_CPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
-OBJECTS = icuswap.o swapimpl.o
+OBJECTS = icuswap.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man install-manx
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -53,12 +51,17 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(sbindir)
+install-man: $(MAN_FILES)
+# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+
dist-local:
clean-local:
@@ -75,18 +78,14 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
- $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
+ $(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-# man page
-install-man: install-manx
-install-manx: $(MANX_FILES)
-# $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
-# $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
@@ -94,3 +93,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/icuswap/icuswap.cpp b/Build/source/libs/icu-xetex/tools/icuswap/icuswap.cpp
index f2c8869ee7f..2fb331995be 100644
--- a/Build/source/libs/icu-xetex/tools/icuswap/icuswap.cpp
+++ b/Build/source/libs/icu-xetex/tools/icuswap/icuswap.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003-2005, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -31,29 +31,14 @@
#include "uarrsort.h"
#include "ucmndata.h"
#include "udataswp.h"
+#include "swapimpl.h"
#include "toolutil.h"
#include "uoptions.h"
-/* swapping implementations in common */
-
-#include "uresdata.h"
-#include "ucnv_io.h"
-#include "uprops.h"
-#include "ucase.h"
-#include "ubidi_props.h"
-#include "ucol_swp.h"
-#include "ucnv_bld.h"
-#include "unormimp.h"
-#include "sprpimpl.h"
-#include "propname.h"
-#include "rbbidata.h"
-
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-/* swapping implementations in i18n */
-
/* definitions */
#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
@@ -81,38 +66,14 @@ fileSize(FILE *f) {
}
/**
- * Identifies and then transforms the ICU data piece in-place, or determines
- * its length. See UDataSwapFn.
- * This function handles .dat data packages as well as single data pieces
- * and internally dispatches to per-type swap functions.
- * Sets a U_UNSUPPORTED_ERROR if the data format is not recognized.
- *
- * @see UDataSwapFn
- * @see udata_openSwapper
- * @see udata_openSwapperForInputData
- * @internal ICU 2.8
- */
-static int32_t
-udata_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode);
-
-/**
* Swap an ICU .dat package, including swapping of enclosed items.
*/
U_CFUNC int32_t U_CALLCONV
-udata_swapPackage(const UDataSwapper *ds,
+udata_swapPackage(const char *inFilename, const char *outFilename,
+ const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode);
-/*
- * udata_swapPackage() needs to rename ToC name entries from the old package
- * name to the new one.
- * We store the filenames here, and udata_swapPackage() will extract the
- * package names.
- */
-static const char *inFilename, *outFilename;
-
U_CDECL_BEGIN
static void U_CALLCONV
printError(void *context, const char *fmt, va_list args) {
@@ -148,12 +109,15 @@ main(int argc, char *argv[]) {
int rc;
UDataSwapper *ds;
+ const UDataInfo *pInfo;
UErrorCode errorCode;
uint8_t outCharset;
UBool outIsBigEndian;
U_MAIN_INIT_ARGS(argc, argv);
+ fprintf(stderr, "Warning: icuswap is an obsolete tool and it will be removed in the next ICU release.\nPlease use the icupkg tool instead.\n");
+
/* get the program basename */
pname=strrchr(argv[0], U_FILE_SEP_CHAR);
if(pname==NULL) {
@@ -197,10 +161,6 @@ main(int argc, char *argv[]) {
in=out=NULL;
data=NULL;
- /* udata_swapPackage() needs the filenames */
- inFilename=argv[1];
- outFilename=argv[2];
-
/* open the input file, get its length, allocate memory for it, read the file */
in=fopen(argv[1], "rb");
if(in==NULL) {
@@ -254,13 +214,40 @@ main(int argc, char *argv[]) {
ds->printError=printError;
ds->printErrorContext=stderr;
- length=udata_swap(ds, data, length, data, &errorCode);
- udata_closeSwapper(ds);
- if(U_FAILURE(errorCode)) {
- fprintf(stderr, "%s: udata_swap(\"%s\") failed - %s\n",
- pname, argv[1], u_errorName(errorCode));
- rc=4;
- goto done;
+ /* speculative cast, protected by the following length check */
+ pInfo=(const UDataInfo *)((const char *)data+4);
+
+ if( length>=20 &&
+ pInfo->dataFormat[0]==0x43 && /* dataFormat="CmnD" */
+ pInfo->dataFormat[1]==0x6d &&
+ pInfo->dataFormat[2]==0x6e &&
+ pInfo->dataFormat[3]==0x44
+ ) {
+ /*
+ * swap the .dat package
+ * udata_swapPackage() needs to rename ToC name entries from the old package
+ * name to the new one.
+ * We pass it the filenames, and udata_swapPackage() will extract the
+ * package names.
+ */
+ length=udata_swapPackage(argv[1], argv[2], ds, data, length, data, &errorCode);
+ udata_closeSwapper(ds);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "%s: udata_swapPackage(\"%s\") failed - %s\n",
+ pname, argv[1], u_errorName(errorCode));
+ rc=4;
+ goto done;
+ }
+ } else {
+ /* swap the data, which is not a .dat package */
+ length=udata_swap(ds, data, length, data, &errorCode);
+ udata_closeSwapper(ds);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "%s: udata_swap(\"%s\") failed - %s\n",
+ pname, argv[1], u_errorName(errorCode));
+ rc=4;
+ goto done;
+ }
}
out=fopen(argv[2], "wb");
@@ -295,127 +282,6 @@ done:
return rc;
}
-/* swap the data ------------------------------------------------------------ */
-
-static const struct {
- uint8_t dataFormat[4];
- UDataSwapFn *swapFn;
-} swapFns[]={
- { { 0x52, 0x65, 0x73, 0x42 }, ures_swap }, /* dataFormat="ResB" */
-#if !UCONFIG_NO_LEGACY_CONVERSION
- { { 0x63, 0x6e, 0x76, 0x74 }, ucnv_swap }, /* dataFormat="cnvt" */
- { { 0x43, 0x76, 0x41, 0x6c }, ucnv_swapAliases }, /* dataFormat="CvAl" */
-#endif
- { { 0x43, 0x6d, 0x6e, 0x44 }, udata_swapPackage }, /* dataFormat="CmnD" */
-#if !UCONFIG_NO_IDNA
- { { 0x53, 0x50, 0x52, 0x50 }, usprep_swap }, /* dataFormat="SPRP" */
-#endif
- /* insert data formats here, descending by expected frequency of occurrence */
- { { 0x55, 0x50, 0x72, 0x6f }, uprops_swap }, /* dataFormat="UPro" */
-
- { { UCASE_FMT_0, UCASE_FMT_1, UCASE_FMT_2, UCASE_FMT_3 },
- ucase_swap }, /* dataFormat="cAsE" */
-
- { { UBIDI_FMT_0, UBIDI_FMT_1, UBIDI_FMT_2, UBIDI_FMT_3 },
- ubidi_swap }, /* dataFormat="BiDi" */
-
-#if !UCONFIG_NO_NORMALIZATION
- { { 0x4e, 0x6f, 0x72, 0x6d }, unorm_swap }, /* dataFormat="Norm" */
-#endif
-#if !UCONFIG_NO_COLLATION
- { { 0x55, 0x43, 0x6f, 0x6c }, ucol_swap }, /* dataFormat="UCol" */
- { { 0x49, 0x6e, 0x76, 0x43 }, ucol_swapInverseUCA },/* dataFormat="InvC" */
-#endif
-#if !UCONFIG_NO_BREAK_ITERATION
- { { 0x42, 0x72, 0x6b, 0x20 }, ubrk_swap }, /* dataFormat="Brk " */
-#endif
- { { 0x70, 0x6e, 0x61, 0x6d }, upname_swap }, /* dataFormat="pnam" */
- { { 0x75, 0x6e, 0x61, 0x6d }, uchar_swapNames } /* dataFormat="unam" */
-};
-
-static int32_t
-udata_swap(const UDataSwapper *ds,
- const void *inData, int32_t length, void *outData,
- UErrorCode *pErrorCode) {
- char dataFormatChars[4];
- const UDataInfo *pInfo;
- int32_t headerSize, i, swappedLength;
-
- if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
- return 0;
- }
-
- /*
- * Preflight the header first; checks for illegal arguments, too.
- * Do not swap the header right away because the format-specific swapper
- * will swap it, get the headerSize again, and also use the header
- * information. Otherwise we would have to pass some of the information
- * and not be able to use the UDataSwapFn signature.
- */
- headerSize=udata_swapDataHeader(ds, inData, -1, NULL, pErrorCode);
-
- /*
- * If we wanted udata_swap() to also handle non-loadable data like a UTrie,
- * then we could check here for further known magic values and structures.
- */
- if(U_FAILURE(*pErrorCode)) {
- return 0; /* the data format was not recognized */
- }
-
- pInfo=(const UDataInfo *)((const char *)inData+4);
-
- {
- /* convert the data format from ASCII to Unicode to the system charset */
- UChar u[4]={
- pInfo->dataFormat[0], pInfo->dataFormat[1],
- pInfo->dataFormat[2], pInfo->dataFormat[3]
- };
-
- if(uprv_isInvariantUString(u, 4)) {
- u_UCharsToChars(u, dataFormatChars, 4);
- } else {
- dataFormatChars[0]=dataFormatChars[1]=dataFormatChars[2]=dataFormatChars[3]='?';
- }
- }
-
- /* dispatch to the swap function for the dataFormat */
- for(i=0; i<LENGTHOF(swapFns); ++i) {
- if(0==memcmp(swapFns[i].dataFormat, pInfo->dataFormat, 4)) {
- swappedLength=swapFns[i].swapFn(ds, inData, length, outData, pErrorCode);
-
- if(U_FAILURE(*pErrorCode)) {
- udata_printError(ds, "udata_swap(): failure swapping data format %02x.%02x.%02x.%02x (\"%c%c%c%c\") - %s\n",
- pInfo->dataFormat[0], pInfo->dataFormat[1],
- pInfo->dataFormat[2], pInfo->dataFormat[3],
- dataFormatChars[0], dataFormatChars[1],
- dataFormatChars[2], dataFormatChars[3],
- u_errorName(*pErrorCode));
- } else if(swappedLength<(length-15)) {
- /* swapped less than expected */
- udata_printError(ds, "udata_swap() warning: swapped only %d out of %d bytes - data format %02x.%02x.%02x.%02x (\"%c%c%c%c\")\n",
- swappedLength, length,
- pInfo->dataFormat[0], pInfo->dataFormat[1],
- pInfo->dataFormat[2], pInfo->dataFormat[3],
- dataFormatChars[0], dataFormatChars[1],
- dataFormatChars[2], dataFormatChars[3],
- u_errorName(*pErrorCode));
- }
-
- return swappedLength;
- }
- }
-
- /* the dataFormat was not recognized */
- udata_printError(ds, "udata_swap(): unknown data format %02x.%02x.%02x.%02x (\"%c%c%c%c\")\n",
- pInfo->dataFormat[0], pInfo->dataFormat[1],
- pInfo->dataFormat[2], pInfo->dataFormat[3],
- dataFormatChars[0], dataFormatChars[1],
- dataFormatChars[2], dataFormatChars[3]);
-
- *pErrorCode=U_UNSUPPORTED_ERROR;
- return 0;
-}
-
/* swap .dat package files -------------------------------------------------- */
static int32_t
@@ -465,7 +331,8 @@ compareToCEntries(const void *context, const void *left, const void *right) {
U_CDECL_END
U_CFUNC int32_t U_CALLCONV
-udata_swapPackage(const UDataSwapper *ds,
+udata_swapPackage(const char *inFilename, const char *outFilename,
+ const UDataSwapper *ds,
const void *inData, int32_t length, void *outData,
UErrorCode *pErrorCode) {
const UDataInfo *pInfo;
@@ -577,7 +444,7 @@ udata_swapPackage(const UDataSwapper *ds,
}
}
if((uint32_t)length<offset) {
- udata_printError(ds, "udata_swapPackage(): too few bytes (%d after header) for unames.icu\n",
+ udata_printError(ds, "udata_swapPackage(): too few bytes (%d after header) for a .dat package\n",
length);
*pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
return 0;
diff --git a/Build/source/libs/icu-xetex/tools/icuswap/icuswap.vcproj b/Build/source/libs/icu-xetex/tools/icuswap/icuswap.vcproj
index 4ef63ae7bb1..4d37294835c 100644
--- a/Build/source/libs/icu-xetex/tools/icuswap/icuswap.vcproj
+++ b/Build/source/libs/icu-xetex/tools/icuswap/icuswap.vcproj
@@ -3,6 +3,7 @@
ProjectType="Visual C++"
Version="7.10"
Name="icuswap"
+ ProjectGUID="{39690C2A-AD89-45E4-893A-899496B85785}"
SccProjectName=""
SccLocalPath="">
<Platforms>
@@ -138,24 +139,9 @@
<References>
</References>
<Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
- <File
- RelativePath=".\icuswap.cpp">
- </File>
- <File
- RelativePath=".\swapimpl.cpp">
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl">
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
- </Filter>
+ <File
+ RelativePath=".\icuswap.cpp">
+ </File>
</Files>
<Globals>
</Globals>
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/Makefile.in b/Build/source/libs/icu-xetex/tools/makeconv/Makefile.in
index 2dbd9d7cd4e..91e2124d8d4 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/makeconv/Makefile.in
@@ -11,38 +11,34 @@ top_builddir = ../..
include $(top_builddir)/icudefs.mk
-##
+## Build directory information
+subdir = tools/makeconv
TARGET_STUB_NAME = makeconv
SECTION = 1
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
-
-ALL_MAN_FILES = $(MANX_FILES)
-
-
-## Build directory information
-subdir = tools/makeconv
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(ALL_MAN_FILES) $(DEPS)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
OBJECTS = makeconv.o ucnvstat.o genmbcs.o gencnvex.o
DEPS = $(OBJECTS:.o=.d)
-
## List of phony targets
-.PHONY : all all-local install install-local install-man clean clean-local \
- distclean distclean-local dist dist-local check \
- check-local
+.PHONY : all all-local install install-local clean clean-local \
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -55,17 +51,18 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
-dist-local:
+install-man: $(MAN_FILES)
+ $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+ $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-rebuild: $(TARGET)
- -$(RMV)
- $(MAKE) all-local
+
+dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
@@ -76,18 +73,13 @@ distclean-local: clean-local
check-local: all-local
-
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-$(TARGET): $(OBJECTS)
+$(TARGET) : $(OBJECTS)
$(LINK.cc) $(OUTOPT)$@ $^ $(LIBS)
-install-man: install-manx
-install-manx: $(MANX_FILES)
- $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
- $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
@@ -101,3 +93,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/gencnvex.c b/Build/source/libs/icu-xetex/tools/makeconv/gencnvex.c
index 0ae6d4a1e27..c5fc7d464c3 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/gencnvex.c
+++ b/Build/source/libs/icu-xetex/tools/makeconv/gencnvex.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2003-2004, International Business Machines
+* Copyright (C) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -29,6 +29,7 @@
#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
static void
CnvExtClose(NewConverter *cnvData);
@@ -1057,3 +1058,4 @@ CnvExtAddTable(NewConverter *cnvData, UCMTable *table, UConverterStaticData *sta
makeToUTable(extData, table) &&
makeFromUTable(extData, table);
}
+
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.c b/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.c
index 41d0101169d..b4596ad99e7 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.c
+++ b/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -25,6 +25,7 @@
#include "makeconv.h"
#include "genmbcs.h"
+
typedef struct MBCSData {
NewConverter newConverter;
@@ -1098,3 +1099,4 @@ MBCSWrite(NewConverter *cnvData, const UConverterStaticData *staticData,
/* return the number of bytes that should have been written */
return header.offsetFromUBytes+header.fromUBytesLength;
}
+
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.h b/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.h
index 9313202649f..0eb5b8603fa 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.h
+++ b/Build/source/libs/icu-xetex/tools/makeconv/genmbcs.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2003, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -42,4 +42,4 @@ MBCSOpen(UCMFile *ucm);
U_CFUNC NewConverter *
CnvExtOpen(UCMFile *ucm);
-#endif
+#endif /* __GENMBCS_H__ */
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.c b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.c
index 934cdee7b70..1bd4bec3661 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.c
+++ b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.c
@@ -1,7 +1,7 @@
/*
********************************************************************************
*
- * Copyright (C) 1998-2005, International Business Machines
+ * Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
********************************************************************************
@@ -36,6 +36,7 @@
#define DEBUG 0
+
typedef struct ConvData {
UCMFile *ucm;
NewConverter *cnvData, *extData;
@@ -76,7 +77,6 @@ extern const UConverterStaticData * ucnv_converterStaticData[UCNV_NUMBER_OF_SUPP
* Global - verbosity
*/
UBool VERBOSE = FALSE;
-UBool TOUCHFILE = FALSE;
static void
createConverter(ConvData *data, const char* converterName, UErrorCode *pErrorCode);
@@ -171,8 +171,6 @@ static UOption options[]={
UOPTION_VERSION, /* 3 */
UOPTION_DESTDIR, /* 4 */
UOPTION_VERBOSE, /* 5 */
- UOPTION_PACKAGE_NAME, /* 6 */
- UOPTION_DEF( "touchfile", 't', UOPT_NO_ARG) /* 7 */
};
int main(int argc, char* argv[])
@@ -180,9 +178,7 @@ int main(int argc, char* argv[])
ConvData data;
UErrorCode err = U_ZERO_ERROR, localError;
char outFileName[UCNV_MAX_FULL_FILE_NAME_LENGTH];
- char touchFileName[UCNV_MAX_FULL_FILE_NAME_LENGTH];
const char* destdir, *arg;
- const char *pkgName = NULL;
size_t destdirlen;
char* dot = NULL, *outBasename;
char cnvName[UCNV_MAX_FULL_FILE_NAME_LENGTH];
@@ -221,48 +217,16 @@ int main(int argc, char* argv[])
"\t-d or --destdir destination directory, followed by the path\n"
"\t-v or --verbose Turn on verbose output\n",
argv[0]);
- fprintf(stderr,
- "\t-p or --pkgname sets the 'package' name for output files.\n"
- "\t If name is ICUDATA, then the default icu package\n"
- "\t name will be used.\n"
- "\t-t or --touchfile Generate additional small file without packagename, for nmake\n");
return argc<0 ? U_ILLEGAL_ARGUMENT_ERROR : U_ZERO_ERROR;
}
if(options[3].doesOccur) {
- fprintf(stderr,"makeconv version %hu.%hu, ICU tool to read .ucm codepage mapping files and write .cnv files\n",
+ fprintf(stderr,"makeconv version %hu.%hu, ICU tool to read .ucm codepage mapping files and write .cnv files\n",
dataInfo.formatVersion[0], dataInfo.formatVersion[1]);
- fprintf(stderr, "Copyright (C) 1998-2000, International Business Machines\n");
- fprintf(stderr,"Corporation and others. All Rights Reserved.\n");
+ fprintf(stderr, U_COPYRIGHT_STRING "\n");
exit(0);
}
- TOUCHFILE = options[7].doesOccur;
-
- if(!options[6].doesOccur)
- {
- pkgName=NULL;
- }
- else
- {
- pkgName =options[6].value;
- if(!strcmp(pkgName, "ICUDATA"))
- {
- pkgName = U_ICUDATA_NAME;
- }
- if(pkgName[0] == 0)
- {
- pkgName = NULL;
-
- if(TOUCHFILE)
- {
- fprintf(stderr, "%s: Don't use touchfile option with an empty packagename.\n",
- argv[0]);
- exit(1);
- }
- }
- }
-
/* get the options values */
haveCopyright = options[2].doesOccur;
destdir = options[4].value;
@@ -323,21 +287,6 @@ int main(int argc, char* argv[])
/* the basename without extension is the converter name */
uprv_strcpy(cnvName, outBasename);
- if(TOUCHFILE)
- {
- uprv_strcpy(touchFileName, outBasename);
- uprv_strcat(touchFileName, ".cnv");
- }
-
- if(pkgName != NULL)
- {
- /* changes both basename and filename */
- uprv_strcpy(outBasename, pkgName);
- uprv_strcat(outBasename, "_");
- uprv_strcat(outBasename, cnvName);
- }
-
-
/*Adds the target extension*/
uprv_strcat(outBasename, CONVERTER_FILE_EXTENSION);
@@ -381,40 +330,10 @@ int main(int argc, char* argv[])
}
}
- if(pkgName == NULL)
- {
- uprv_strcpy(cnvNameWithPkg, cnvName);
- }
- else
- {
- uprv_strcpy(cnvNameWithPkg, pkgName);
- uprv_strcat(cnvNameWithPkg, "_");
- uprv_strcat(cnvNameWithPkg, cnvName);
- }
+ uprv_strcpy(cnvNameWithPkg, cnvName);
localError = U_ZERO_ERROR;
writeConverterData(&data, cnvNameWithPkg, destdir, &localError);
- if(TOUCHFILE)
- {
- FileStream *q;
- char msg[1024];
-
- sprintf(msg, "This empty file tells nmake that %s in package %s has been updated.\n",
- cnvName, pkgName);
-
- q = T_FileStream_open(touchFileName, "w");
- if(q == NULL)
- {
- fprintf(stderr, "Error writing touchfile \"%s\"\n", touchFileName);
- localError = U_FILE_ACCESS_ERROR;
- }
-
- else
- {
- T_FileStream_write(q, msg, (int32_t)uprv_strlen(msg));
- T_FileStream_close(q);
- }
- }
if(U_FAILURE(localError))
{
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.h b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.h
index bb6c5004320..0fa0fb2d1dc 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.h
+++ b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.h
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2003, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -54,4 +54,4 @@ struct NewConverter {
UNewDataMemory *pData, int32_t tableType);
};
-#endif
+#endif /* __MAKECONV_H__ */
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.vcproj b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.vcproj
index 4b3aadb36fd..cfb95afd7e9 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/makeconv.vcproj
+++ b/Build/source/libs/icu-xetex/tools/makeconv/makeconv.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/makeconv.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -90,6 +91,7 @@
StringPooling="TRUE"
RuntimeLibrary="2"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/makeconv.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
diff --git a/Build/source/libs/icu-xetex/tools/makeconv/ucnvstat.c b/Build/source/libs/icu-xetex/tools/makeconv/ucnvstat.c
index 2ba8ec5a041..0dfdc956875 100644
--- a/Build/source/libs/icu-xetex/tools/makeconv/ucnvstat.c
+++ b/Build/source/libs/icu-xetex/tools/makeconv/ucnvstat.c
@@ -1,7 +1,7 @@
/*
******************************************************************************
*
- * Copyright (C) 1998-2001, International Business Machines
+ * Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
******************************************************************************
@@ -64,3 +64,4 @@ const UConverterStaticData *ucnv_converterStaticData[UCNV_NUMBER_OF_SUPPORTED_CO
NULL/*ISO2022*/,
/* LMBCS */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
+
diff --git a/Build/source/libs/icu-xetex/tools/memcheck/ICUMemCheck.pl b/Build/source/libs/icu-xetex/tools/memcheck/ICUMemCheck.pl
new file mode 100755
index 00000000000..ea9c14862f0
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/memcheck/ICUMemCheck.pl
@@ -0,0 +1,68 @@
+# ***********************************************************************
+# * COPYRIGHT:
+# * Copyright (c) 2004-2006, International Business Machines Corporation
+# * and others. All Rights Reserved.
+# ***********************************************************************
+#
+# This perl script checks for correct memory function usage in ICU library code.
+# It works with Linux builds of ICU using gcc.
+#
+# To run it,
+# 1. Build ICU
+# 2. cd icu/source
+# 3. perl ICUMemCheck.pl
+#
+# All object files containing direct references to C or C++ runtime library memory
+# functions will be listed in the output.
+#
+# For ICU 3.6, the expected output is
+# common/uniset.o U operator delete(void*)
+# common/unifilt.o U operator delete(void*)
+# common/cmemory.o U malloc
+# common/cmemory.o U free
+# i18n/strrepl.o U operator delete(void*)
+# layout/LEFontInstance.o U operator delete(void*)
+# layout/LEGlyphStorage.o U operator delete(void*)
+# layout/LayoutEngine.o U operator delete(void*)
+#
+# cmemory.c Expected failures from uprv_malloc, uprv_free implementation.
+# uniset.cpp Fails because of SymbolTable::~SymbolTable()
+# unifilt.cpp Fails because of UnicodeMatcher::~UnicodeMatcher()
+# strrepl.cpp Fails because of UnicodeReplacer::~UnicodeReplacer()
+# LayoutEngine.cpp Fails because of LEGlyphFilter::~LEGlyphFilter()
+# LEGlyphStorage.cpp Fails because of LEInsertionCallback::~LEInsertionCallback()
+# LEFontInstance.cpp Fails because of LECharMapper::~LECharMapper
+#
+# To verify that no additional problems exist in the .cpp files, #ifdef out the
+# offending destructors, rebuild icu, and re-run the tool. The problems should
+# be gone.
+#
+# The problem destructors all are for mix-in style interface classes.
+# These classes can not derive from UObject or UMemory because of multiple-inheritance
+# problems, so they don't get the ICU memory functions. The delete code
+# in the destructors will never be called because stand-alone instances of
+# the classes cannot exist.
+#
+$fileNames = `find common i18n layout io -name "*.o" -print`;
+foreach $f (split('\n', $fileNames)) {
+ $symbols = `nm -u -C $f`;
+ if ($symbols =~ /U +operator delete\(void\*\)/) {
+ print "$f $&\n";
+ }
+ if ($symbols =~ /U +operator delete\[\]\(void\*\)/) {
+ print "$f $&\n";
+ }
+ if ($symbols =~ /U +operator new\(unsigned int\)/) {
+ print "$f $&\n";
+ }
+ if ($symbols =~ /U +operator new\[\]\(unsigned int\)/) {
+ print "$f $&\n";
+ }
+ if ($symbols =~ /U +malloc.*/) {
+ print "$f $&\n";
+ }
+ if ($symbols =~ /U +free.*/) {
+ print "$f $&\n";
+ }
+
+}
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/Makefile.in b/Build/source/libs/icu-xetex/tools/pkgdata/Makefile.in
index b2a424d19b6..9818e5df5f8 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/Makefile.in
@@ -14,18 +14,14 @@ include $(top_builddir)/icudefs.mk
## Build directory information
subdir = tools/pkgdata
-##
-
TARGET_STUB_NAME = pkgdata
SECTION = 1
-MANX_FILES = $(TARGET_STUB_NAME).$(SECTION)
-
-ALL_MAN_FILES = $(MANX_FILES)
+MAN_FILES = $(TARGET_STUB_NAME).$(SECTION)
## Extra files to remove for 'make clean'
-CLEANFILES = *~ $(DEPS) $(ALL_MAN_FILES)
+CLEANFILES = *~ $(DEPS) $(MAN_FILES)
ifneq ($(PKGDATA_DEFS),)
DEFS += $(PKGDATA_DEFS)
@@ -34,7 +30,10 @@ endif
## Target information
TARGET = $(BINDIR)/$(TARGET_STUB_NAME)$(EXEEXT)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(srcdir)/../toolutil
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(srcdir)/../toolutil
DEFS += -DUDATA_SO_SUFFIX=\".$(SO)\" -DSTATIC_O=\"$(STATIC_O)\"
LIBS = $(LIBICUTOOLUTIL) $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS) $(LIB_M)
@@ -44,8 +43,7 @@ DEPS = $(OBJECTS:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check \
-check-local install-man install-manx
+distclean distclean-local dist dist-local check check-local install-man
## Clear suffix list
.SUFFIXES :
@@ -58,21 +56,16 @@ distclean : distclean-local
dist: dist-local
check: all check-local
-all-local: $(TARGET) $(ALL_MAN_FILES)
+all-local: $(TARGET) $(MAN_FILES)
install-local: all-local install-man
$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
$(INSTALL) $(TARGET) $(DESTDIR)$(bindir)
-# man page
-install-man: install-manx
-install-manx: $(MANX_FILES)
+install-man: $(MAN_FILES)
$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
-%.$(SECTION): $(srcdir)/%.$(SECTION).in
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
dist-local:
@@ -89,12 +82,14 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+$(TARGET) : $(OBJECTS)
+ $(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
+
+%.$(SECTION): $(srcdir)/%.$(SECTION).in
cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
-$(TARGET) : $(OBJECTS)
- $(LINK.c) $(OUTOPT)$@ $^ $(LIBS)
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
@@ -103,3 +98,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/cmnmode.c b/Build/source/libs/icu-xetex/tools/pkgdata/cmnmode.c
index 2104e9e73ee..05639d144dc 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/cmnmode.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/cmnmode.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -76,13 +76,8 @@ void pkg_mode_common(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
sprintf(tmp, "all: $(TARGET)\n\n");
T_FileStream_writeLine(makefile, tmp);
- if(!o->embed) {
T_FileStream_writeLine(makefile, "$(TARGET): $(CMNLIST) $(DATAFILEPATHS)\n"
"\t$(INVOKE) $(GENCMN) -n $(CNAME) -c -s $(SRCDIR) -d $(TARGETDIR) 0 $(CMNLIST)\n\n");
- } else {
- T_FileStream_writeLine(makefile, "$(TARGET): $(CMNLIST) $(DATAFILEPATHS)\n"
- "\t$(INVOKE) $(GENCMN) -n $(CNAME) -c -d $(TARGETDIR) 0 -E $(CMNLIST)\n\n");
- }
if(o->hadStdin == FALSE) { /* shortcut */
T_FileStream_writeLine(makefile, "$(CMNLIST): $(LISTFILES)\n"
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/dllmode.c b/Build/source/libs/icu-xetex/tools/pkgdata/dllmode.c
index e6221977e60..9aac5a56d2d 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/dllmode.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/dllmode.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -67,6 +67,8 @@ void pkg_mode_dll(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
sprintf(tmp, "# File to make:\nBATCH_TARGET=\"//'${LOADMOD}(IXMI" U_ICU_VERSION_SHORT "TE)'\"\n\n");
else if (uprv_strcmp(o->libName, U_LIBICUDATA_NAME"_stub") == 0)
sprintf(tmp, "# File to make:\nBATCH_TARGET=\"//'${LOADMOD}(IXMI" U_ICU_VERSION_SHORT "D1)'\"\n\n");
+ else
+ sprintf(tmp, "\n");
T_FileStream_writeLine(makefile, tmp);
#endif
@@ -163,13 +165,8 @@ void pkg_mode_dll(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
T_FileStream_writeLine(makefile, "# 'TOCOBJ' contains C Table of Contents objects [if any]\n");
- if(!o->embed) {
- sprintf(tmp, "$(TEMP_DIR)/$(NAME)_dat.c: $(CMNLIST)\n"
+ sprintf(tmp, "$(TEMP_DIR)/$(NAME)_dat.c: $(CMNLIST)\n"
"\t$(INVOKE) $(GENCMN) -e $(ENTRYPOINT) -n $(NAME) -S -s $(SRCDIR) -d $(TEMP_DIR) 0 $(CMNLIST)\n\n");
- } else {
- sprintf(tmp, "$(TEMP_DIR)/$(NAME)_dat.c: $(CMNLIST)\n"
- "\t$(INVOKE) $(GENCMN) -e $(ENTRYPOINT) -n $(NAME) -S -E -d $(TEMP_DIR) 0 $(CMNLIST)\n\n");
- }
T_FileStream_writeLine(makefile, tmp);
sprintf(tmp, "TOCOBJ= $(NAME)_dat%s \n\n", OBJ_SUFFIX);
@@ -221,9 +218,16 @@ void pkg_mode_dll(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
"\t$(SHLIB.c) -o $@ $(OBJECTS) $(DLL_LDFLAGS)\n\n");
#endif
+#ifdef U_AIX
+ T_FileStream_writeLine(makefile, "$(TARGETDIR)/$(FINAL_SO_TARGET): $(OBJECTS) $(LISTFILES) $(DLL_DEPS)\n"
+ "\t$(SHLIB.c) -o $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ)) $(OBJECTS) $(DLL_LDFLAGS)\n"
+ "\t$(AR) $(ARFLAGS) $@ $(FINAL_SO_TARGET:.$(SO)=.$(SOBJ))\n"
+ "\t-$(AR) vt $@\n\n");
+#else
T_FileStream_writeLine(makefile, "$(TARGETDIR)/$(FINAL_SO_TARGET): $(OBJECTS) $(LISTFILES) $(DLL_DEPS)\n"
"\t$(SHLIB.c) -o $@ $(OBJECTS) $(DLL_LDFLAGS)\n"
"\t-ls -l $@\n\n");
+#endif
#ifdef OS390
/*
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/filemode.c b/Build/source/libs/icu-xetex/tools/pkgdata/filemode.c
index 0bf94c77d35..6710a83ca14 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/filemode.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/filemode.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -51,143 +51,141 @@ install: all
*/
-
+#ifdef U_MAKE_IS_NMAKE
+#define DEPENDENT_FILE_RULE "$?"
+#else
+#define DEPENDENT_FILE_RULE "$<"
+#endif
void pkg_mode_files(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
{
- char tmp[1024], tmp2[1024], srcPath[1024];
- char stanza[3072];
+ char tmp[1024], tmp2[1024], srcPath[1024];
+ char stanza[3072];
- CharList *tail = NULL, *infiles = NULL;
+ CharList *tail = NULL, *infiles = NULL;
- CharList *copyFilesLeft = NULL; /* left hand side of the copy rule*/
- CharList *copyFilesRight = NULL; /* rhs "" "" */
- CharList *copyFilesInstall = NULL;
+ CharList *copyFilesLeft = NULL; /* left hand side of the copy rule*/
+ CharList *copyFilesRight = NULL; /* rhs "" "" */
+ CharList *copyFilesInstall = NULL;
- CharList *copyFilesLeftTail = NULL;
- CharList *copyFilesRightTail = NULL;
- CharList *copyFilesInstallTail = NULL;
+ CharList *copyFilesLeftTail = NULL;
+ CharList *copyFilesRightTail = NULL;
+ CharList *copyFilesInstallTail = NULL;
- CharList *copyDirs = NULL; /* list of dirs to create for copying */
- CharList *installDirs = NULL; /* list of dirs to create for installation */
+ CharList *copyDirs = NULL; /* list of dirs to create for copying */
+ CharList *installDirs = NULL; /* list of dirs to create for installation */
-/* CharList *copyCommands = NULL;*/
+ /* CharList *copyCommands = NULL;*/
- const char *baseName;
+ const char *baseName;
- T_FileStream_writeLine(makefile, "\n.PHONY: $(NAME) all install clean\n\nall: $(NAME)\n\n");
+#ifndef U_MAKE_IS_NMAKE
+ T_FileStream_writeLine(makefile, "\n.PHONY: $(NAME) all install clean\n");
+#endif
+ T_FileStream_writeLine(makefile, "\nall: $(NAME)\n\n");
- if(o->embed) {
- infiles = o->filePaths;
- } else {
infiles = o->files; /* raw files - no paths other than tree paths */
- }
-
- /* Dont' copy files already in tmp */
- for(;infiles;infiles = infiles->next)
- {
- uprv_strcpy(tmp, o->targetDir);
- uprv_strcat(tmp, U_FILE_SEP_STRING);
- if(o->embed) {
- baseName = findBasename(infiles->str);
- uprv_strcpy(srcPath, baseName);
- } else {
- baseName = infiles->str;
- uprv_strcat(tmp, o->shortName);
- uprv_strcat(tmp, U_FILE_SEP_STRING);
- uprv_strcpy(srcPath, "$(SRCDIR)/");
- uprv_strcat(srcPath, infiles->str);
- }
- uprv_strcat(tmp, baseName);
-
- copyDirs = pkg_appendUniqueDirToList(copyDirs, NULL, tmp);
- o->outFiles = pkg_appendToList(o->outFiles, &tail, uprv_strdup(tmp));
-
- if(strcmp(tmp, infiles->str) == 0)
- {
- /* fprintf(stderr, "### NOT copying: %s\n", tmp); */
- /* no copy needed.. */
- } else {
- sprintf(stanza, "%s: %s\n\t$(INSTALL_DATA) $< $@\n", tmp, srcPath);
- T_FileStream_writeLine(makefile, stanza);
+ /* Dont' copy files already in tmp */
+ for(;infiles;infiles = infiles->next)
+ {
+ uprv_strcpy(tmp, o->targetDir);
+ uprv_strcat(tmp, U_FILE_SEP_STRING);
+ baseName = infiles->str;
+ uprv_strcat(tmp, o->shortName);
+ uprv_strcat(tmp, U_FILE_SEP_STRING);
+ uprv_strcpy(srcPath, "$(SRCDIR)/");
+ uprv_strcat(srcPath, infiles->str);
+ uprv_strcat(tmp, baseName);
+
+ copyDirs = pkg_appendUniqueDirToList(copyDirs, NULL, tmp);
+
+ o->outFiles = pkg_appendToList(o->outFiles, &tail, uprv_strdup(tmp));
+
+ if(strcmp(tmp, infiles->str) == 0)
+ {
+ /* fprintf(stderr, "### NOT copying: %s\n", tmp); */
+ /* no copy needed.. */
+ } else {
+ sprintf(stanza, "%s: %s\n\t$(INSTALL_DATA) "DEPENDENT_FILE_RULE" $@\n", tmp, srcPath);
+ convertToNativePathSeparators(stanza);
+ T_FileStream_writeLine(makefile, stanza);
+ }
+
+ uprv_strcpy(tmp2, "$(INSTALLTO)" U_FILE_SEP_STRING);
+ uprv_strcat(tmp2, o->shortName);
+ uprv_strcat(tmp2, U_FILE_SEP_STRING);
+ uprv_strcat(tmp2, baseName);
+
+ installDirs = pkg_appendUniqueDirToList(installDirs, NULL, tmp2);
+
+ if(strcmp(tmp2, infiles->str) == 0) {
+ /* fprintf(stderr, "### NOT copying: %s\n", tmp2); */
+ /* no copy needed.. */
+ } else {
+ sprintf(stanza, "%s: %s\n\t$(INSTALL_DATA) "DEPENDENT_FILE_RULE" $@\n", tmp2, tmp);
+ convertToNativePathSeparators(stanza);
+ T_FileStream_writeLine(makefile, stanza);
+
+ /* left hand side: target path, target name */
+ copyFilesLeft = pkg_appendToList(copyFilesLeft, &copyFilesLeftTail, uprv_strdup(tmp));
+
+ /* fprintf(stderr, "##### COPY %s from %s\n", tmp, infiles->str); */
+ /* rhs: source path */
+ copyFilesRight = pkg_appendToList(copyFilesRight, &copyFilesRightTail, uprv_strdup(infiles->str));
+
+ /* install: installed path */
+ copyFilesInstall = pkg_appendToList(copyFilesInstall, &copyFilesInstallTail, uprv_strdup(tmp2));
+ }
}
- uprv_strcpy(tmp2, "$(INSTALLTO)" U_FILE_SEP_STRING);
- if(!o->embed) {
- uprv_strcat(tmp2, o->shortName);
- uprv_strcat(tmp2, U_FILE_SEP_STRING);
+ if(o->nooutput || o->verbose) {
+ CharList *i;
+ fprintf(stdout, "# Output files: ");
+ for(i = o->outFiles; i; i=i->next) {
+ printf("%s ", i->str);
+ }
+ printf("\n");
}
- uprv_strcat(tmp2, baseName);
-
- installDirs = pkg_appendUniqueDirToList(installDirs, NULL, tmp2);
-
- if(strcmp(tmp2, infiles->str) == 0) {
- /* fprintf(stderr, "### NOT copying: %s\n", tmp2); */
- /* no copy needed.. */
- } else {
- sprintf(stanza, "%s: %s\n\t$(INSTALL_DATA) $< $@\n", tmp2, tmp);
- T_FileStream_writeLine(makefile, stanza);
-
- /* left hand side: target path, target name */
- copyFilesLeft = pkg_appendToList(copyFilesLeft, &copyFilesLeftTail, uprv_strdup(tmp));
-
- /* fprintf(stderr, "##### COPY %s from %s\n", tmp, infiles->str); */
- /* rhs: source path */
- copyFilesRight = pkg_appendToList(copyFilesRight, &copyFilesRightTail, uprv_strdup(infiles->str));
-
- /* install: installed path */
- copyFilesInstall = pkg_appendToList(copyFilesInstall, &copyFilesInstallTail, uprv_strdup(tmp2));
- }
- }
-
- if(o->nooutput || o->verbose) {
- CharList *i;
- fprintf(stdout, "# Output files: ");
- for(i = o->outFiles; i; i=i->next) {
- printf("%s ", i->str);
- }
- printf("\n");
- }
- if(o->nooutput) {
- *status = U_ZERO_ERROR;
- return;
- }
+ if(o->nooutput) {
+ *status = U_ZERO_ERROR;
+ return;
+ }
- /* these are also the files to delete */
- T_FileStream_writeLine(makefile, "COPIEDDEST= ");
- pkg_writeCharListWrap(makefile, copyFilesLeft, " ", " \\\n", 0);
- T_FileStream_writeLine(makefile, "\n\n");
+ /* these are also the files to delete */
+ T_FileStream_writeLine(makefile, "COPIEDDEST= ");
+ pkg_writeCharListWrap(makefile, copyFilesLeft, " ", " \\\n", 0);
+ T_FileStream_writeLine(makefile, "\n\n");
- T_FileStream_writeLine(makefile, "INSTALLEDDEST= ");
- pkg_writeCharListWrap(makefile, copyFilesInstall, " ", " \\\n", 0);
- T_FileStream_writeLine(makefile, "\n\n");
+ T_FileStream_writeLine(makefile, "INSTALLEDDEST= ");
+ pkg_writeCharListWrap(makefile, copyFilesInstall, " ", " \\\n", 0);
+ T_FileStream_writeLine(makefile, "\n\n");
- T_FileStream_writeLine(makefile, "COPYDIRS= ");
- pkg_writeCharListWrap(makefile, copyDirs, " ", " \\\n", 0);
- T_FileStream_writeLine(makefile, "\n\n");
+ T_FileStream_writeLine(makefile, "COPYDIRS= ");
+ pkg_writeCharListWrap(makefile, copyDirs, " ", " \\\n", 0);
+ T_FileStream_writeLine(makefile, "\n\n");
- T_FileStream_writeLine(makefile, "INSTALLDIRS= ");
- pkg_writeCharListWrap(makefile, installDirs, " ", " \\\n", 0);
- T_FileStream_writeLine(makefile, "\n\n");
+ T_FileStream_writeLine(makefile, "INSTALLDIRS= ");
+ pkg_writeCharListWrap(makefile, installDirs, " ", " \\\n", 0);
+ T_FileStream_writeLine(makefile, "\n\n");
- if(copyFilesRight != NULL)
- {
- T_FileStream_writeLine(makefile, "$(NAME): copy-dirs $(COPIEDDEST)\n\n");
+ if(copyFilesRight != NULL)
+ {
+ T_FileStream_writeLine(makefile, "$(NAME): copy-dirs $(COPIEDDEST)\n\n");
- T_FileStream_writeLine(makefile, "clean:\n\t-$(RMV) $(COPIEDDEST) $(MAKEFILE)");
- T_FileStream_writeLine(makefile, "\n\n");
+ T_FileStream_writeLine(makefile, "clean:\n\t-$(RMV) $(COPIEDDEST) $(MAKEFILE)");
+ T_FileStream_writeLine(makefile, "\n\n");
- }
- else
- {
- T_FileStream_writeLine(makefile, "clean:\n\n");
- }
- T_FileStream_writeLine(makefile, "install: install-dirs $(INSTALLEDDEST)\n\n");
- T_FileStream_writeLine(makefile, "install-dirs:\n\t$(MKINSTALLDIRS) $(INSTALLDIRS)\n\n");
- T_FileStream_writeLine(makefile, "copy-dirs:\n\t$(MKINSTALLDIRS) $(COPYDIRS)\n\n");
+ }
+ else
+ {
+ T_FileStream_writeLine(makefile, "clean:\n\n");
+ }
+ T_FileStream_writeLine(makefile, "install: install-dirs $(INSTALLEDDEST)\n\n");
+ T_FileStream_writeLine(makefile, "install-dirs:\n\t$(MKINSTALLDIRS) $(INSTALLDIRS)\n\n");
+ T_FileStream_writeLine(makefile, "copy-dirs:\n\t$(MKINSTALLDIRS) $(COPYDIRS)\n\n");
}
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/make.c b/Build/source/libs/icu-xetex/tools/pkgdata/make.c
index 750cd295de4..53e9c03a8d3 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/make.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/make.c
@@ -1,6 +1,6 @@
/**************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
***************************************************************************
@@ -24,6 +24,7 @@
#include "unicode/putil.h"
#include "makefile.h"
#include "cstring.h"
+#include "cmemory.h"
#include <stdio.h>
#ifdef U_MAKE_IS_NMAKE
@@ -35,6 +36,8 @@ void
pkg_mak_writeHeader(FileStream *f, const UPKGOptions *o)
{
const char *appendVersion = NULL;
+ char *srcDir = convertToNativePathSeparators(uprv_strdup(o->srcDir));
+
if(o->version && !uprv_strstr(o->shortName,o->version)) { /* do not append version if
already contained in the name */
appendVersion = o->version;
@@ -59,12 +62,14 @@ pkg_mak_writeHeader(FileStream *f, const UPKGOptions *o)
"ENTRYPOINT=%s\n"
"TARGET_VERSION=%s\n"
"MKINSTALLDIRS=mkdir\n"
+ "INSTALL_DATA=copy\n"
+ "RMV=del /F"
"\n\n\n",
o->shortName,
(appendVersion ? appendVersion : ""),
o->cShortName,
o->libName,
- o->srcDir,
+ srcDir,
o->targetDir,
o->tmpDir,
o->mode,
@@ -102,6 +107,7 @@ pkg_mak_writeHeader(FileStream *f, const UPKGOptions *o)
T_FileStream_writeLine(f, "\n\n\n");
+ uprv_free(srcDir);
}
/* Write a stanza in the makefile, with specified "target: parents... \n\n\tcommands" [etc] */
@@ -271,14 +277,11 @@ pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects,
CharList *infiles;
CharList *parents = NULL, *commands = NULL;
int32_t genFileOffset = 0; /* offset from beginning of .c and .o file name, use to chop off package name for AS/400 */
- static int serNo = 0; /* counter for numeric file names */
- char serName[100];
+ char *parentPath;
+ const char *tchar;
+ char tree[1024];
- if(o->embed) {
- infiles = o->filePaths;
- } else {
- infiles = o->files; /* raw files - no paths other than tree paths */
- }
+ infiles = o->files; /* raw files - no paths other than tree paths */
#if defined (OS400)
if(infiles != NULL) {
@@ -291,36 +294,26 @@ pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects,
#endif
for(;infiles;infiles = infiles->next) {
- if(o->embed) {
- baseName = findBasename(infiles->str);
- } else {
- baseName = infiles->str; /* skip the icudt28b/ part */
- }
+ baseName = infiles->str; /* skip the icudt28b/ part */
p = uprv_strrchr(baseName, '.');
if( (p == NULL) || (*p == '\0' ) ) {
continue;
}
- if(o->numeric) {
- sprintf(serName, "t%04x", serNo++);
- uprv_strcpy(tmp,serName);
- uprv_strcat(tmp, objSuffix);
- } else {
- uprv_strncpy(tmp, baseName, p-baseName);
- p++;
-
- uprv_strcpy(tmp+(p-1-baseName), "_"); /* to append */
- uprv_strcat(tmp, p);
- uprv_strcat(tmp, objSuffix );
-
- /* iSeries cannot have '-' in the .o objects. */
- for( tmpPtr = tmp; *tmpPtr; tmpPtr++ ) {
- if ( *tmpPtr == U_FILE_SEP_CHAR ) { /* map tree names with underscores */
- *tmpPtr = '_';
- }
- if ( *tmpPtr == '-' ) {
- *tmpPtr = '_';
- }
+ uprv_strncpy(tmp, baseName, p-baseName);
+ p++;
+
+ uprv_strcpy(tmp+(p-1-baseName), "_"); /* to append */
+ uprv_strcat(tmp, p);
+ uprv_strcat(tmp, objSuffix );
+
+ /* iSeries cannot have '-' in the .o objects. */
+ for( tmpPtr = tmp; *tmpPtr; tmpPtr++ ) {
+ if ( *tmpPtr == U_FILE_SEP_CHAR ) { /* map tree names with underscores */
+ *tmpPtr = '_';
+ }
+ if ( *tmpPtr == '-' ) {
+ *tmpPtr = '_';
}
}
@@ -331,20 +324,12 @@ pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects,
uprv_strcpy(cfile+uprv_strlen(cfile)-uprv_strlen(objSuffix), ".c" ); /* replace .o with .c */
/* Make up parents.. */
- if(!o->embed) {
- char *parentPath;
- parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR)/"));
- sprintf(parentPath, "$(SRCDIR)/%s", baseName);
- parents = pkg_appendToList(parents, NULL, parentPath);
- } else {
- parents = pkg_appendToList(parents, NULL, uprv_strdup(infiles->str));
- }
+ parentPath = uprv_malloc(1+uprv_strlen(baseName) + uprv_strlen("$(SRCDIR)/"));
+ sprintf(parentPath, "$(SRCDIR)/%s", baseName);
+ parents = pkg_appendToList(parents, NULL, parentPath);
/* make up commands.. */
- if(!o->embed) {
/* search for tree.. */
- const char *tchar;
- char tree[1024];
if((tchar=uprv_strchr(baseName, '/'))) {
tree[0]='_';
strncpy(tree+1,baseName,tchar-baseName);
@@ -357,18 +342,8 @@ pkg_mak_writeObjRules(UPKGOptions *o, FileStream *makefile, CharList **objects,
#else
sprintf(stanza, "$(INVOKE) $(GENCCODE) -n $(CNAME)%s -d $(TEMP_DIR) $<", tree);
#endif
- } else {
-#ifdef OS400
- sprintf(stanza, "$(INVOKE) $(GENCCODE) -d $(TEMP_DIR) %s", infiles->str);
-#else
- sprintf(stanza, "$(INVOKE) $(GENCCODE) -d $(TEMP_DIR) $<");
-#endif
- }
- if(o->numeric) {
- strcat(stanza, " -f ");
- strcat(stanza,serName);
- } else if(!o->embed && uprv_strchr(baseName, '/')) {
+ if(uprv_strchr(baseName, '/')) {
/* append actual file - ex: coll_en_res otherwise the tree name will be lost */
strcat(stanza, " -f ");
strncat(stanza, tmp, (strlen(tmp)-strlen(objSuffix)));
@@ -421,11 +396,7 @@ pkg_mak_writeAssemblyHeader(FileStream *f, const UPKGOptions *o)
T_FileStream_writeLine(f, "BASE_OBJECTS=$(NAME)_dat.o\n");
T_FileStream_writeLine(f, "\n");
T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME).dat: $(CMNLIST) $(DATAFILEPATHS)\n");
- if(!o->embed) {
- T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCMN) -c -e $(ENTRYPOINT) -n $(NAME) -s $(SRCDIR) -t dat -d $(TEMP_DIR) 0 $(CMNLIST)\n");
- } else {
- T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCMN) -c -e $(ENTRYPOINT) -n $(NAME) -E -t dat -d $(TEMP_DIR) 0 $(CMNLIST)\n");
- }
+ T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCMN) -c -e $(ENTRYPOINT) -n $(NAME) -s $(SRCDIR) -t dat -d $(TEMP_DIR) 0 $(CMNLIST)\n");
T_FileStream_writeLine(f, "\n");
T_FileStream_writeLine(f, "$(TEMP_DIR)/$(NAME)_dat.o : $(TEMP_DIR)/$(NAME).dat\n");
T_FileStream_writeLine(f, "\t$(INVOKE) $(GENCCODE) $(GENCCODE_ASSEMBLY) -n $(NAME) -e $(ENTRYPOINT) -d $(TEMP_DIR) $<\n");
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.c b/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.c
index be7f7edec47..09f900fabcf 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -25,6 +25,7 @@
#include "unicode/uclean.h"
#include "unewdata.h"
#include "uoptions.h"
+#include "putilimp.h"
#if U_HAVE_POPEN
/*
@@ -72,6 +73,30 @@ static struct
#endif /*#ifdef U_MAKE_IS_NMAKE*/
};
+enum {
+ NAME,
+ BLDOPT,
+ MODE,
+ HELP,
+ HELP_QUESTION_MARK,
+ VERBOSE,
+ COPYRIGHT,
+ COMMENT,
+ DESTDIR,
+ CLEAN,
+ NOOUTPUT,
+ REBUILD,
+ TEMPDIR,
+ INSTALL,
+ SOURCEDIR,
+ ENTRYPOINT,
+ REVISION,
+ MAKEARG,
+ FORCE_PREFIX,
+ LIBNAME,
+ QUIET
+};
+
static UOption options[]={
/*00*/ UOPTION_DEF( "name", 'p', UOPT_REQUIRES_ARG),
/*01*/ UOPTION_DEF( "bldopt", 'O', UOPT_REQUIRES_ARG), /* on Win32 it is release or debug */
@@ -90,12 +115,10 @@ static UOption options[]={
/*14*/ UOPTION_SOURCEDIR ,
/*15*/ UOPTION_DEF( "entrypoint", 'e', UOPT_REQUIRES_ARG),
/*16*/ UOPTION_DEF( "revision", 'r', UOPT_REQUIRES_ARG),
- /*17*/ UOPTION_DEF( 0, 'M', UOPT_REQUIRES_ARG),
+ /*17*/ UOPTION_DEF( "makearg", 'M', UOPT_REQUIRES_ARG),
/*18*/ UOPTION_DEF( "force-prefix", 'f', UOPT_NO_ARG),
- /*19*/ UOPTION_DEF( "numerictmp", 'N', UOPT_NO_ARG),
- /*20*/ UOPTION_DEF( "embed", 'E', UOPT_NO_ARG),
- /*21*/ UOPTION_DEF( "libname", 'L', UOPT_REQUIRES_ARG),
- /*22*/ UOPTION_DEF( "quiet", 'q', UOPT_NO_ARG)
+ /*19*/ UOPTION_DEF( "libname", 'L', UOPT_REQUIRES_ARG),
+ /*20*/ UOPTION_DEF( "quiet", 'q', UOPT_NO_ARG)
};
const char options_help[][320]={
@@ -122,8 +145,6 @@ const char options_help[][320]={
"Specify a version when packaging in DLL or static mode",
"Pass the next argument to make(1)",
"Add package to all file names if not present",
- "Use short numeric temporary file names such as t1234.c",
- "Use Embedded paths (such as 'mypackage_') - for compatibility.",
"Library name to build (if different than package name)",
"Quite mode. (e.g. Do not output a readme file for static libraries)"
};
@@ -144,8 +165,8 @@ main(int argc, char* argv[]) {
progname = argv[0];
- options[2].value = "common";
- options[17].value = "";
+ options[MODE].value = "common";
+ options[MAKEARG].value = "";
/* read command line options */
argc=u_parseArgs(argc, argv, sizeof(options)/sizeof(options[0]), options);
@@ -154,7 +175,7 @@ main(int argc, char* argv[]) {
/* I've decided to simply print an error and quit. This tool has too
many options to just display them all of the time. */
- if(options[3].doesOccur || options[4].doesOccur) {
+ if(options[HELP].doesOccur || options[HELP_QUESTION_MARK].doesOccur) {
needsHelp = TRUE;
}
else {
@@ -167,7 +188,7 @@ main(int argc, char* argv[]) {
return 1;
}
- if(!options[1].doesOccur) {
+ if(!options[BLDOPT].doesOccur) {
/* Try to fill in from icu-config or equivalent */
fillInMakefileFromICUConfig(&options[1]);
}
@@ -179,13 +200,13 @@ main(int argc, char* argv[]) {
}
#endif
- if(!options[1].doesOccur) {
+ if(!options[BLDOPT].doesOccur) {
fprintf(stderr, " required parameter is missing: -O is required \n");
fprintf(stderr, "Run '%s --help' for help.\n", progname);
return 1;
}
- if(!options[0].doesOccur) /* -O we already have - don't report it. */
+ if(!options[NAME].doesOccur) /* -O we already have - don't report it. */
{
fprintf(stderr, " required parameter -p is missing \n");
fprintf(stderr, "Run '%s --help' for help.\n", progname);
@@ -234,9 +255,9 @@ main(int argc, char* argv[]) {
/* OK, fill in the options struct */
uprv_memset(&o, 0, sizeof(o));
- o.mode = options[2].value;
- o.version = options[16].doesOccur ? options[16].value : 0;
- o.makeArgs = options[17].value;
+ o.mode = options[MODE].value;
+ o.version = options[REVISION].doesOccur ? options[REVISION].value : 0;
+ o.makeArgs = options[MAKEARG].value;
o.fcn = NULL;
@@ -274,24 +295,24 @@ main(int argc, char* argv[]) {
o.cShortName = csname;
}
- if(options[21].doesOccur) { /* get libname from shortname, or explicit -L parameter */
- o.libName = options[21].value;
+ if(options[LIBNAME].doesOccur) { /* get libname from shortname, or explicit -L parameter */
+ o.libName = options[LIBNAME].value;
} else {
o.libName = o.shortName;
}
- if(options[22].doesOccur) {
+ if(options[QUIET].doesOccur) {
o.quiet = TRUE;
} else {
o.quiet = FALSE;
}
- o.verbose = options[5].doesOccur;
+ o.verbose = options[VERBOSE].doesOccur;
#ifdef U_MAKE_IS_NMAKE /* format is R:pathtoICU or D:pathtoICU */
{
- char *pathstuff = (char *)options[1].value;
- if(options[1].value[uprv_strlen(options[1].value)-1] == '\\') {
- pathstuff[uprv_strlen(options[1].value)-1] = '\0';
+ char *pathstuff = (char *)options[BLDOPT].value;
+ if(options[1].value[uprv_strlen(options[BLDOPT].value)-1] == '\\') {
+ pathstuff[uprv_strlen(options[BLDOPT].value)-1] = '\0';
}
if(*pathstuff == PKGDATA_DERIVED_PATH || *pathstuff == 'R' || *pathstuff == 'D') {
o.options = pathstuff;
@@ -314,48 +335,42 @@ main(int argc, char* argv[]) {
}
}
#else /* on UNIX, we'll just include the file... */
- o.options = options[1].value;
+ o.options = options[BLDOPT].value;
#endif
- if(options[6].doesOccur) {
+ if(options[COPYRIGHT].doesOccur) {
o.comment = U_COPYRIGHT_STRING;
- } else if (options[7].doesOccur) {
- o.comment = options[7].value;
+ } else if (options[COMMENT].doesOccur) {
+ o.comment = options[COMMENT].value;
}
- if( options[8].doesOccur ) {
- o.targetDir = options[8].value;
+ if( options[DESTDIR].doesOccur ) {
+ o.targetDir = options[DESTDIR].value;
} else {
o.targetDir = "."; /* cwd */
}
- o.clean = options[9].doesOccur;
- o.nooutput = options[10].doesOccur;
- o.rebuild = options[11].doesOccur;
- o.numeric = options[19].doesOccur;
- if(o.numeric) {
- o.rebuild = TRUE; /* force rebuild if numeric */
- }
-
- o.embed = options[20].doesOccur;
+ o.clean = options[CLEAN].doesOccur;
+ o.nooutput = options[NOOUTPUT].doesOccur;
+ o.rebuild = options[REBUILD].doesOccur;
- if( options[12].doesOccur ) {
- o.tmpDir = options[12].value;
+ if( options[TEMPDIR].doesOccur ) {
+ o.tmpDir = options[TEMPDIR].value;
} else {
o.tmpDir = o.targetDir;
}
- if( options[13].doesOccur ) {
- o.install = options[13].value;
+ if( options[INSTALL].doesOccur ) {
+ o.install = options[INSTALL].value;
}
- if( options[14].doesOccur ) {
- o.srcDir = options[14].value;
+ if( options[SOURCEDIR].doesOccur ) {
+ o.srcDir = options[SOURCEDIR].value;
} else {
o.srcDir = ".";
}
- if( options[15].doesOccur ) {
- o.entryName = options[15].value;
+ if( options[ENTRYPOINT].doesOccur ) {
+ o.entryName = options[ENTRYPOINT].value;
} else {
o.entryName = o.cShortName;
}
@@ -491,19 +506,9 @@ static void loadLists(UPKGOptions *o, UErrorCode *status)
char *linePtr, *lineNext;
const uint32_t lineMax = 16300;
char tmp[1024];
- char pkgPrefix[1024];
- int32_t pkgPrefixLen;
- const char *baseName;
char *s;
int32_t ln=0; /* line number */
- UBool fixPrefix;
-
- fixPrefix = options[18].doesOccur;
-
- strcpy(pkgPrefix, o->shortName);
- strcat(pkgPrefix, "_");
- pkgPrefixLen=(int32_t)uprv_strlen(pkgPrefix);
for(l = o->fileListFiles; l; l = l->next) {
if(o->verbose) {
fprintf(stdout, "# Reading %s..\n", l->str);
@@ -518,100 +523,79 @@ static void loadLists(UPKGOptions *o, UErrorCode *status)
}
while(T_FileStream_readLine(in, line, sizeof(line))!=NULL) { /* for each line */
- if((ln == 0) && (!o->embed)) {
- /* determine if we need to run in 'embed' (compatibility) mode */
- if(!strncmp(findBasename(line), pkgPrefix, pkgPrefixLen)) {
- fprintf(stderr, "Warning: Found path '%s' in file name. Assuming compatibility (-E) mode.\n", pkgPrefix);
- o->embed = 1;
+ ln++;
+ if(uprv_strlen(line)>lineMax) {
+ fprintf(stderr, "%s:%d - line too long (over %d chars)\n", l->str, (int)ln, (int)lineMax);
+ exit(1);
}
- }
- ln++;
- if(uprv_strlen(line)>lineMax) {
- fprintf(stderr, "%s:%d - line too long (over %d chars)\n", l->str, (int)ln, (int)lineMax);
- exit(1);
- }
- /* remove spaces at the beginning */
- linePtr = line;
- while(isspace(*linePtr)) {
- linePtr++;
- }
- s=linePtr;
- /* remove trailing newline characters */
- while(*s!=0) {
- if(*s=='\r' || *s=='\n') {
- *s=0;
- break;
+ /* remove spaces at the beginning */
+ linePtr = line;
+ while(isspace(*linePtr)) {
+ linePtr++;
}
+ s=linePtr;
+ /* remove trailing newline characters */
+ while(*s!=0) {
+ if(*s=='\r' || *s=='\n') {
+ *s=0;
+ break;
+ }
++s;
- }
- if((*linePtr == 0) || (*linePtr == '#')) {
- continue; /* comment or empty line */
- }
-
- /* Now, process the line */
- lineNext = NULL;
-
- while(linePtr && *linePtr) { /* process space-separated items */
- while(*linePtr == ' ') {
- linePtr++;
}
- /* Find the next quote */
- if(linePtr[0] == '"')
- {
- lineNext = uprv_strchr(linePtr+1, '"');
- if(lineNext == NULL) {
- fprintf(stderr, "%s:%d - missing trailing double quote (\")\n",
- l->str, (int)ln);
- exit(1);
+ if((*linePtr == 0) || (*linePtr == '#')) {
+ continue; /* comment or empty line */
+ }
+
+ /* Now, process the line */
+ lineNext = NULL;
+
+ while(linePtr && *linePtr) { /* process space-separated items */
+ while(*linePtr == ' ') {
+ linePtr++;
+ }
+ /* Find the next quote */
+ if(linePtr[0] == '"')
+ {
+ lineNext = uprv_strchr(linePtr+1, '"');
+ if(lineNext == NULL) {
+ fprintf(stderr, "%s:%d - missing trailing double quote (\")\n",
+ l->str, (int)ln);
+ exit(1);
+ } else {
+ lineNext++;
+ if(*lineNext) {
+ if(*lineNext != ' ') {
+ fprintf(stderr, "%s:%d - malformed quoted line at position %d, expected ' ' got '%c'\n",
+ l->str, (int)ln, (int)(lineNext-line), (*lineNext)?*lineNext:'0');
+ exit(1);
+ }
+ *lineNext = 0;
+ lineNext++;
+ }
+ }
} else {
- lineNext++;
- if(*lineNext) {
- if(*lineNext != ' ') {
- fprintf(stderr, "%s:%d - malformed quoted line at position %d, expected ' ' got '%c'\n",
- l->str, (int)ln, (int)(lineNext-line), (*lineNext)?*lineNext:'0');
- exit(1);
+ lineNext = uprv_strchr(linePtr, ' ');
+ if(lineNext) {
+ *lineNext = 0; /* terminate at space */
+ lineNext++;
}
- *lineNext = 0;
- lineNext++;
- }
}
- } else {
- lineNext = uprv_strchr(linePtr, ' ');
- if(lineNext) {
- *lineNext = 0; /* terminate at space */
- lineNext++;
- }
- }
-
- /* add the file */
- s = (char*)getLongPathname(linePtr);
-
- if(o->embed == 0) {
- /* normal mode.. o->files is just the bare list without package names */
- o->files = pkg_appendToList(o->files, &tail, uprv_strdup(linePtr));
- uprv_strcpy(tmp, o->srcDir);
- uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_SEP_STRING);
- uprv_strcat(tmp, s);
- o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(tmp));
- } else {/* embedded package_ mode */
- baseName = findBasename(s);
-
- if(s != baseName) {
- /* s was something 'long' with a path */
- /* paths already have the prefix */
- o->files = pkg_appendToList(o->files, &tail, uprv_strdup(baseName));
- o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(s));
- } else { /* s was just a basename, we want to prepend source dir*/
- /* check for prefix of package */
+
+ /* add the file */
+ s = (char*)getLongPathname(linePtr);
+
+ /* normal mode.. o->files is just the bare list without package names */
+ o->files = pkg_appendToList(o->files, &tail, uprv_strdup(linePtr));
+ if(uprv_pathIsAbsolute(s)) {
+ fprintf(stderr, "pkgdata: Error: absolute path encountered. Old style paths are not supported. Use relative paths such as 'fur.res' or 'translit%cfur.res'.\n\tBad path: '%s'\n", U_FILE_SEP_CHAR, s);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
uprv_strcpy(tmp, o->srcDir);
uprv_strcat(tmp, o->srcDir[uprv_strlen(o->srcDir)-1]==U_FILE_SEP_CHAR?"":U_FILE_SEP_STRING);
- o->files = pkg_appendToList(o->files, &tail, uprv_strdup(baseName));
uprv_strcat(tmp, s);
o->filePaths = pkg_appendToList(o->filePaths, &tail2, uprv_strdup(tmp));
- }
- } /* end compatibility mode */
- linePtr = lineNext;
- } /* for each entry on line */
+ linePtr = lineNext;
+ } /* for each entry on line */
} /* for each line */
T_FileStream_close(in);
} /* for each file list file */
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.vcproj b/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.vcproj
index 22bdd880a3c..b33310fa711 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.vcproj
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/pkgdata.vcproj
@@ -28,6 +28,7 @@
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/pkgdata.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -91,6 +92,7 @@
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/pkgdata.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.c b/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.c
index d3e0bf5bcf4..97f3ff51c36 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.c
@@ -1,6 +1,6 @@
/**************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
***************************************************************************
@@ -28,7 +28,6 @@ const char *pkg_writeCharListWrap(FileStream *s, CharList *l, const char *delim,
{
int32_t ln = 0;
char buffer[1024];
- const CharList *ol = NULL;
while(l != NULL)
{
if(l->str)
@@ -53,11 +52,9 @@ const char *pkg_writeCharListWrap(FileStream *s, CharList *l, const char *delim,
}
}
T_FileStream_write(s, buffer, (int32_t)uprv_strlen(buffer));
- }
-
- ln += (int32_t)uprv_strlen(l->str);
- ol = l;
+ ln += (int32_t)uprv_strlen(l->str);
+ }
if(l->next && delim)
{
@@ -199,11 +196,21 @@ CharList *pkg_appendToList(CharList *l, CharList** end, const char *str)
return l;
}
+char * convertToNativePathSeparators(char *path) {
+#if defined(U_MAKE_IS_NMAKE)
+ char *itr;
+ while ((itr = uprv_strchr(path, U_FILE_ALT_SEP_CHAR))) {
+ *itr = U_FILE_SEP_CHAR;
+ }
+#endif
+ return path;
+}
+
CharList *pkg_appendUniqueDirToList(CharList *l, CharList** end, const char *strAlias) {
char aBuf[1024];
char *rPtr;
rPtr = uprv_strrchr(strAlias, U_FILE_SEP_CHAR);
-#if defined(U_FILE_ALT_SEP_CHAR) && (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR)
+#if (U_FILE_SEP_CHAR != U_FILE_ALT_SEP_CHAR)
{
char *aPtr = uprv_strrchr(strAlias, U_FILE_ALT_SEP_CHAR);
if(!rPtr || /* regular char wasn't found or.. */
@@ -222,6 +229,7 @@ CharList *pkg_appendUniqueDirToList(CharList *l, CharList** end, const char *str
}
strncpy(aBuf, strAlias,(rPtr-strAlias));
aBuf[rPtr-strAlias]=0; /* no trailing slash */
+ convertToNativePathSeparators(aBuf);
if(!pkg_listContains(l, aBuf)) {
return pkg_appendToList(l, end, uprv_strdup(aBuf));
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.h b/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.h
index 2d2db01b0cb..8826cda543c 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.h
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/pkgtypes.h
@@ -1,6 +1,6 @@
/**************************************************************************
*
-* Copyright (C) 2000-2005, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
***************************************************************************
@@ -130,13 +130,12 @@ typedef struct UPKGOptions_
UBool verbose;
UBool quiet;
UBool hadStdin; /* Stdin was a dependency - don't make anything depend on the file list coming in. */
- UBool numeric; /* use numeric, short, temporary file names */
- int32_t embed; /* embedded package - i.e. .../mypkg_myfile.res files */
-
UPKGMODE *fcn; /* Handler function */
} UPKGOptions;
+char * convertToNativePathSeparators(char *path);
+
/* set up common defines for library naming */
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/sttcmode.c b/Build/source/libs/icu-xetex/tools/pkgdata/sttcmode.c
index 57fd7e86baf..568dec7b618 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/sttcmode.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/sttcmode.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2002-2004, International Business Machines
+* Copyright (C) 2002-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -35,11 +35,13 @@
/** set if AR is NOT to be called implicitly by gnumake
** (i.e. if the form libblah.a($(OBJECTS) doesnt work)
**/
+#if !defined(NO_IMPLICIT_AR)
#if defined(OS400) || defined(OS390)
# define NO_IMPLICIT_AR 1
#else
# define NO_IMPLICIT_AR 0
#endif
+#endif
void pkg_sttc_writeReadme(struct UPKGOptions_ *o, const char *libName, UErrorCode *status)
{
@@ -204,13 +206,8 @@ void pkg_mode_static(UPKGOptions *o, FileStream *makefile, UErrorCode *status)
T_FileStream_writeLine(makefile, "# 'TOCOBJ' contains C Table of Contents objects [if any]\n");
- if(!o->embed) {
sprintf(tmp, "$(TEMP_PATH)$(NAME)_dat.c: $(CMNLIST)\n"
"\t$(INVOKE) $(GENCMN) -e $(ENTRYPOINT) -n $(NAME) -S -s $(SRCDIR) -d $(TEMP_DIR) 0 $(CMNLIST)\n\n");
- } else {
- sprintf(tmp, "$(TEMP_PATH)$(NAME)_dat.c: $(CMNLIST)\n"
- "\t$(INVOKE) $(GENCMN) -e $(ENTRYPOINT) -n $(NAME) -S -E -d $(TEMP_DIR) 0 $(CMNLIST)\n\n");
- }
T_FileStream_writeLine(makefile, tmp);
sprintf(tmp, "TOCOBJ= $(NAME)_dat.$(STATIC_O)\n\n");
diff --git a/Build/source/libs/icu-xetex/tools/pkgdata/winmode.c b/Build/source/libs/icu-xetex/tools/pkgdata/winmode.c
index b7b80ed4559..d5b598746ea 100644
--- a/Build/source/libs/icu-xetex/tools/pkgdata/winmode.c
+++ b/Build/source/libs/icu-xetex/tools/pkgdata/winmode.c
@@ -1,6 +1,6 @@
/******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -40,19 +40,13 @@ void writeCmnRules(UPKGOptions *o, FileStream *makefile)
char tmp[1024];
CharList *infiles;
- if(!o->embed) {
- infiles = o->files;
- } else {
- infiles = o->filePaths;
- }
+ infiles = o->files;
sprintf(tmp, "\"$(TARGETDIR)\\$(CMNTARGET)\" : $(DATAFILEPATHS)\n"
- "\t%s\"$(GENCMN)\" %s%s%s-d \"$(TARGETDIR)\" %s %s -n \"$(NAME)\" 0 <<\n",
+ "\t%s\"$(GENCMN)\" %s%s%s-d \"$(TARGETDIR)\" -s \"$(SRCDIR)\" -n \"$(NAME)\" 0 <<\n",
(o->verbose ? "" : "@"),
(o->comment ? "-C \"" : ""),
(o->comment ? o->comment : ""),
- (o->comment ? "\" " : ""),
- (o->embed ? "-E" : ""),
- o->embed ? "" : "-s \"$(SRCDIR)\"");
+ (o->comment ? "\" " : ""));
T_FileStream_writeLine(makefile, tmp);
pkg_writeCharList(makefile, infiles, "\n", -1);
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/.cvsignore b/Build/source/libs/icu-xetex/tools/toolutil/.cvsignore
index b502395ec2b..4eb07da21ca 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/.cvsignore
+++ b/Build/source/libs/icu-xetex/tools/toolutil/.cvsignore
@@ -5,4 +5,6 @@ Makefile
*.o
*.pdb
libicu*
-
+*.plg
+*.ncb
+*.opt
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/Makefile.in b/Build/source/libs/icu-xetex/tools/toolutil/Makefile.in
index 208333fa632..0fa1d97c865 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/Makefile.in
+++ b/Build/source/libs/icu-xetex/tools/toolutil/Makefile.in
@@ -1,6 +1,9 @@
-## Copyright (C) 1999-2005, International Business Machines Corporation
-## and others. All Rights Reserved.
-
+#******************************************************************************
+#
+# Copyright (C) 1999-2005, International Business Machines
+# Corporation and others. All Rights Reserved.
+#
+#******************************************************************************
## Makefile.in for ICU - tools/toolutil
## Steven R. Loomis
@@ -10,6 +13,7 @@ top_srcdir = @top_srcdir@
top_builddir = ../..
+## All the flags and other definitions are included here.
include $(top_builddir)/icudefs.mk
## Build directory information
@@ -28,7 +32,7 @@ endif
ifneq ($(ENABLE_SHARED),)
SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
-ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(SHARED_OBJECT)
endif
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS)
@@ -37,20 +41,28 @@ DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
-LDFLAGS += $(LDFLAGSICUTOOLUTIL)
-CPPFLAGS += -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
+ifneq ($(top_builddir),$(top_srcdir))
+CPPFLAGS += -I$(top_builddir)/common
+endif
+CPPFLAGS += -I$(top_srcdir)/common -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
DEFS += -DU_TOOLUTIL_IMPLEMENTATION
+LDFLAGS += $(LDFLAGSICUTOOLUTIL)
LIBS = $(LIBICUI18N) $(LIBICUUC) $(DEFAULT_LIBS)
-OBJECTS = filestrm.o propsvec.o toolutil.o unewdata.o ucm.o ucmstate.o uoptions.o uparse.o ucbuf.o xmlparser.o writesrc.o
+OBJECTS = filestrm.o package.o pkgitems.o propsvec.o swapimpl.o toolutil.o unewdata.o \
+ucm.o ucmstate.o uoptions.o uparse.o \
+ucbuf.o xmlparser.o writesrc.o
STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
DEPS = $(OBJECTS:.o=.d)
+-include Makefile.local
+
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
-distclean distclean-local dist dist-local check check-local install-library
+distclean distclean-local install-library dist \
+dist-local check check-local
## Clear suffix list
.SUFFIXES :
@@ -103,7 +115,7 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
-$(FINAL_SO_TARGET): $(OBJECTS)
+$(SHARED_OBJECT): $(OBJECTS)
$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
endif
@@ -114,3 +126,4 @@ ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
+
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/package.cpp b/Build/source/libs/icu-xetex/tools/toolutil/package.cpp
new file mode 100644
index 00000000000..2bc9a504d10
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/toolutil/package.cpp
@@ -0,0 +1,1202 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 1999-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: package.cpp
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005aug25
+* created by: Markus W. Scherer
+*
+* Read, modify, and write ICU .dat data package files.
+* This is an integral part of the icupkg tool, moved to the toolutil library
+* because parts of tool implementations tend to be later shared by
+* other tools.
+* Subsumes functionality and implementation code from
+* gencmn, decmn, and icuswap tools.
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/putil.h"
+#include "unicode/udata.h"
+#include "cstring.h"
+#include "uarrsort.h"
+#include "ucmndata.h"
+#include "udataswp.h"
+#include "swapimpl.h"
+#include "toolutil.h"
+#include "package.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+// general definitions ----------------------------------------------------- ***
+
+#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
+/* UDataInfo cf. udata.h */
+static const UDataInfo dataInfo={
+ (uint16_t)sizeof(UDataInfo),
+ 0,
+
+ U_IS_BIG_ENDIAN,
+ U_CHARSET_FAMILY,
+ (uint8_t)sizeof(UChar),
+ 0,
+
+ {0x43, 0x6d, 0x6e, 0x44}, /* dataFormat="CmnD" */
+ {1, 0, 0, 0}, /* formatVersion */
+ {3, 0, 0, 0} /* dataVersion */
+};
+
+U_CDECL_BEGIN
+static void U_CALLCONV
+printPackageError(void *context, const char *fmt, va_list args) {
+ vfprintf((FILE *)context, fmt, args);
+}
+U_CDECL_END
+
+static uint16_t
+readSwapUInt16(uint16_t x) {
+ return (uint16_t)((x<<8)|(x>>8));
+}
+
+// platform types ---------------------------------------------------------- ***
+
+static const char *types="lb?e";
+
+enum { TYPE_L, TYPE_B, TYPE_LE, TYPE_E, TYPE_COUNT };
+
+static inline int32_t
+makeTypeEnum(uint8_t charset, UBool isBigEndian) {
+ return 2*(int32_t)charset+isBigEndian;
+}
+
+static inline int32_t
+makeTypeEnum(char type) {
+ return
+ type == 'l' ? TYPE_L :
+ type == 'b' ? TYPE_B :
+ type == 'e' ? TYPE_E :
+ -1;
+}
+
+static inline char
+makeTypeLetter(uint8_t charset, UBool isBigEndian) {
+ return types[makeTypeEnum(charset, isBigEndian)];
+}
+
+static inline char
+makeTypeLetter(int32_t typeEnum) {
+ return types[typeEnum];
+}
+
+static void
+makeTypeProps(char type, uint8_t &charset, UBool &isBigEndian) {
+ int32_t typeEnum=makeTypeEnum(type);
+ charset=(uint8_t)(typeEnum>>1);
+ isBigEndian=(UBool)(typeEnum&1);
+}
+
+U_CFUNC const UDataInfo *
+getDataInfo(const uint8_t *data, int32_t length,
+ int32_t &infoLength, int32_t &headerLength,
+ UErrorCode *pErrorCode) {
+ const DataHeader *pHeader;
+ const UDataInfo *pInfo;
+
+ if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+ return NULL;
+ }
+ if( data==NULL ||
+ (length>=0 && length<(int32_t)sizeof(DataHeader))
+ ) {
+ *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return NULL;
+ }
+
+ pHeader=(const DataHeader *)data;
+ pInfo=&pHeader->info;
+ if( (length>=0 && length<(int32_t)sizeof(DataHeader)) ||
+ pHeader->dataHeader.magic1!=0xda ||
+ pHeader->dataHeader.magic2!=0x27 ||
+ pInfo->sizeofUChar!=2
+ ) {
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return NULL;
+ }
+
+ if(pInfo->isBigEndian==U_IS_BIG_ENDIAN) {
+ headerLength=pHeader->dataHeader.headerSize;
+ infoLength=pInfo->size;
+ } else {
+ headerLength=readSwapUInt16(pHeader->dataHeader.headerSize);
+ infoLength=readSwapUInt16(pInfo->size);
+ }
+
+ if( headerLength<(int32_t)sizeof(DataHeader) ||
+ infoLength<(int32_t)sizeof(UDataInfo) ||
+ headerLength<(int32_t)(sizeof(pHeader->dataHeader)+infoLength) ||
+ (length>=0 && length<headerLength)
+ ) {
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return NULL;
+ }
+
+ return pInfo;
+}
+
+static int32_t
+getTypeEnumForInputData(const uint8_t *data, int32_t length,
+ UErrorCode *pErrorCode) {
+ const UDataInfo *pInfo;
+ int32_t infoLength, headerLength;
+
+ /* getDataInfo() checks for illegal arguments */
+ pInfo=getDataInfo(data, length, infoLength, headerLength, pErrorCode);
+ if(pInfo==NULL) {
+ return -1;
+ }
+
+ return makeTypeEnum(pInfo->charsetFamily, (UBool)pInfo->isBigEndian);
+}
+
+// file handling ----------------------------------------------------------- ***
+
+static void
+extractPackageName(const char *filename,
+ char pkg[], int32_t capacity) {
+ const char *basename;
+ int32_t len;
+
+ basename=findBasename(filename);
+ len=(int32_t)strlen(basename)-4; /* -4: subtract the length of ".dat" */
+
+ if(len<=0 || 0!=strcmp(basename+len, ".dat")) {
+ fprintf(stderr, "icupkg: \"%s\" is not recognized as a package filename (must end with .dat)\n",
+ basename);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+
+ if(len>=capacity) {
+ fprintf(stderr, "icupkg: the package name \"%s\" is too long (>=%ld)\n",
+ basename, (long)capacity);
+ exit(U_ILLEGAL_ARGUMENT_ERROR);
+ }
+
+ memcpy(pkg, basename, len);
+ pkg[len]=0;
+}
+
+static int32_t
+getFileLength(FILE *f) {
+ int32_t length;
+
+ fseek(f, 0, SEEK_END);
+ length=(int32_t)ftell(f);
+ fseek(f, 0, SEEK_SET);
+ return length;
+}
+
+/*
+ * Turn tree separators and alternate file separators into normal file separators.
+ */
+#if U_TREE_ENTRY_SEP_CHAR==U_FILE_SEP_CHAR && U_FILE_ALT_SEP_CHAR==U_FILE_SEP_CHAR
+#define treeToPath(s)
+#else
+static void
+treeToPath(char *s) {
+ char *t;
+
+ for(t=s; *t!=0; ++t) {
+ if(*t==U_TREE_ENTRY_SEP_CHAR || *t==U_FILE_ALT_SEP_CHAR) {
+ *t=U_FILE_SEP_CHAR;
+ }
+ }
+}
+#endif
+
+/*
+ * Turn file separators into tree separators.
+ */
+#if U_TREE_ENTRY_SEP_CHAR==U_FILE_SEP_CHAR && U_FILE_ALT_SEP_CHAR==U_FILE_SEP_CHAR
+#define pathToTree(s)
+#else
+static void
+pathToTree(char *s) {
+ char *t;
+
+ for(t=s; *t!=0; ++t) {
+ if(*t==U_FILE_SEP_CHAR || *t==U_FILE_ALT_SEP_CHAR) {
+ *t=U_TREE_ENTRY_SEP_CHAR;
+ }
+ }
+}
+#endif
+
+/*
+ * Prepend the path (if any) to the name and run the name through treeToName().
+ */
+static void
+makeFullFilename(const char *path, const char *name,
+ char *filename, int32_t capacity) {
+ char *s;
+
+ // prepend the path unless NULL or empty
+ if(path!=NULL && path[0]!=0) {
+ if((int32_t)(strlen(path)+1)>=capacity) {
+ fprintf(stderr, "pathname too long: \"%s\"\n", path);
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+ strcpy(filename, path);
+
+ // make sure the path ends with a file separator
+ s=strchr(filename, 0);
+ if(*(s-1)!=U_FILE_SEP_CHAR && *(s-1)!=U_FILE_ALT_SEP_CHAR) {
+ *s++=U_FILE_SEP_CHAR;
+ }
+ } else {
+ s=filename;
+ }
+
+ // turn the name into a filename, turn tree separators into file separators
+ if((int32_t)((s-filename)+strlen(name))>=capacity) {
+ fprintf(stderr, "path/filename too long: \"%s%s\"\n", filename, name);
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+ strcpy(s, name);
+ treeToPath(s);
+}
+
+static void
+makeFullFilenameAndDirs(const char *path, const char *name,
+ char *filename, int32_t capacity) {
+ char *sep;
+ UErrorCode errorCode;
+
+ makeFullFilename(path, name, filename, capacity);
+
+ // make tree directories
+ errorCode=U_ZERO_ERROR;
+ sep=strchr(filename, 0)-strlen(name);
+ while((sep=strchr(sep, U_FILE_SEP_CHAR))!=NULL) {
+ if(sep!=filename) {
+ *sep=0; // truncate temporarily
+ uprv_mkdir(filename, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: unable to create tree directory \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+ }
+ *sep++=U_FILE_SEP_CHAR; // restore file separator character
+ }
+}
+
+static uint8_t *
+readFile(const char *path, const char *name, int32_t &length, char &type) {
+ char filename[1024];
+ FILE *file;
+ uint8_t *data;
+ UErrorCode errorCode;
+ int32_t fileLength, typeEnum;
+
+ makeFullFilename(path, name, filename, (int32_t)sizeof(filename));
+
+ /* open the input file, get its length, allocate memory for it, read the file */
+ file=fopen(filename, "rb");
+ if(file==NULL) {
+ fprintf(stderr, "icupkg: unable to open input file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ /* get the file length */
+ fileLength=getFileLength(file);
+ if(ferror(file) || fileLength<=0) {
+ fprintf(stderr, "icupkg: empty input file \"%s\"\n", filename);
+ fclose(file);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ /* allocate the buffer, pad to multiple of 16 */
+ length=(fileLength+0xf)&~0xf;
+ data=(uint8_t *)malloc(length);
+ if(data==NULL) {
+ fclose(file);
+ exit(U_MEMORY_ALLOCATION_ERROR);
+ }
+
+ /* read the file */
+ if(fileLength!=(int32_t)fread(data, 1, fileLength, file)) {
+ fprintf(stderr, "icupkg: error reading \"%s\"\n", filename);
+ fclose(file);
+ free(data);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ /* pad the file to a multiple of 16 using the usual padding byte */
+ if(fileLength<length) {
+ memset(data+fileLength, 0xaa, length-fileLength);
+ }
+
+ fclose(file);
+
+ // minimum check for ICU-format data
+ errorCode=U_ZERO_ERROR;
+ typeEnum=getTypeEnumForInputData(data, length, &errorCode);
+ if(typeEnum<0 || U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: not an ICU data file: \"%s\"\n", filename);
+ free(data);
+ exit(U_INVALID_FORMAT_ERROR);
+ }
+ type=makeTypeLetter(typeEnum);
+
+ return data;
+}
+
+// .dat package file representation ---------------------------------------- ***
+
+U_CDECL_BEGIN
+
+static int32_t U_CALLCONV
+compareItems(const void * /*context*/, const void *left, const void *right) {
+ return (int32_t)strcmp(((Item *)left)->name, ((Item *)right)->name);
+}
+
+U_CDECL_END
+
+Package::Package() {
+ inPkgName[0]=0;
+ inData=NULL;
+ inLength=0;
+ inCharset=U_CHARSET_FAMILY;
+ inIsBigEndian=U_IS_BIG_ENDIAN;
+
+ itemCount=0;
+ inStringTop=outStringTop=0;
+
+ matchMode=0;
+ findPrefix=findSuffix=NULL;
+ findPrefixLength=findSuffixLength=0;
+ findNextIndex=-1;
+
+ // create a header for an empty package
+ DataHeader *pHeader;
+ pHeader=(DataHeader *)header;
+ pHeader->dataHeader.magic1=0xda;
+ pHeader->dataHeader.magic2=0x27;
+ memcpy(&pHeader->info, &dataInfo, sizeof(dataInfo));
+ headerLength=(int32_t)(4+sizeof(dataInfo));
+ if(headerLength&0xf) {
+ /* NUL-pad the header to a multiple of 16 */
+ int32_t length=(headerLength+0xf)&~0xf;
+ memset(header+headerLength, 0, length-headerLength);
+ headerLength=length;
+ }
+ pHeader->dataHeader.headerSize=(uint16_t)headerLength;
+}
+
+Package::~Package() {
+ int32_t index;
+
+ free(inData);
+
+ for(index=0; index<itemCount; ++index) {
+ if(items[index].isDataOwned) {
+ free(items[index].data);
+ }
+ }
+}
+
+void
+Package::readPackage(const char *filename) {
+ UDataSwapper *ds;
+ const UDataInfo *pInfo;
+ UErrorCode errorCode;
+
+ const uint8_t *inBytes;
+
+ int32_t length, offset, i;
+ int32_t itemLength, typeEnum;
+ char type;
+
+ const UDataOffsetTOCEntry *inEntries;
+
+ extractPackageName(filename, inPkgName, (int32_t)sizeof(inPkgName));
+
+ /* read the file */
+ inData=readFile(NULL, filename, inLength, type);
+ length=inLength;
+
+ /*
+ * swap the header - even if the swapping itself is a no-op
+ * because it tells us the header length
+ */
+ errorCode=U_ZERO_ERROR;
+ makeTypeProps(type, inCharset, inIsBigEndian);
+ ds=udata_openSwapper(inIsBigEndian, inCharset, U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_openSwapper(\"%s\") failed - %s\n",
+ filename, u_errorName(errorCode));
+ exit(errorCode);
+ }
+
+ ds->printError=printPackageError;
+ ds->printErrorContext=stderr;
+
+ headerLength=sizeof(header);
+ if(length<headerLength) {
+ headerLength=length;
+ }
+ headerLength=udata_swapDataHeader(ds, inData, headerLength, header, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ exit(errorCode);
+ }
+
+ /* check data format and format version */
+ pInfo=(const UDataInfo *)((const char *)inData+4);
+ if(!(
+ pInfo->dataFormat[0]==0x43 && /* dataFormat="CmnD" */
+ pInfo->dataFormat[1]==0x6d &&
+ pInfo->dataFormat[2]==0x6e &&
+ pInfo->dataFormat[3]==0x44 &&
+ pInfo->formatVersion[0]==1
+ )) {
+ fprintf(stderr, "icupkg: data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as an ICU .dat package\n",
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3],
+ pInfo->formatVersion[0]);
+ exit(U_UNSUPPORTED_ERROR);
+ }
+ inIsBigEndian=(UBool)pInfo->isBigEndian;
+ inCharset=pInfo->charsetFamily;
+
+ inBytes=(const uint8_t *)inData+headerLength;
+ inEntries=(const UDataOffsetTOCEntry *)(inBytes+4);
+
+ /* check that the itemCount fits, then the ToC table, then at least the header of the last item */
+ length-=headerLength;
+ if(length<4) {
+ /* itemCount does not fit */
+ offset=0x7fffffff;
+ } else {
+ itemCount=udata_readInt32(ds, *(const int32_t *)inBytes);
+ if(itemCount==0) {
+ offset=4;
+ } else if(length<(4+8*itemCount)) {
+ /* ToC table does not fit */
+ offset=0x7fffffff;
+ } else {
+ /* offset of the last item plus at least 20 bytes for its header */
+ offset=20+(int32_t)ds->readUInt32(inEntries[itemCount-1].dataOffset);
+ }
+ }
+ if(length<offset) {
+ fprintf(stderr, "icupkg: too few bytes (%ld after header) for a .dat package\n",
+ (long)length);
+ exit(U_INDEX_OUTOFBOUNDS_ERROR);
+ }
+ /* do not modify the package length variable until the last item's length is set */
+
+ if(itemCount>0) {
+ char prefix[MAX_PKG_NAME_LENGTH+4];
+ char *s, *inItemStrings;
+ int32_t inPkgNameLength, prefixLength, stringsOffset;
+
+ if(itemCount>MAX_FILE_COUNT) {
+ fprintf(stderr, "icupkg: too many items, maximum is %d\n", MAX_FILE_COUNT);
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+
+ /* swap the item name strings */
+ stringsOffset=4+8*itemCount;
+ itemLength=(int32_t)(ds->readUInt32(inEntries[0].dataOffset))-stringsOffset;
+
+ // don't include padding bytes at the end of the item names
+ while(itemLength>0 && inBytes[stringsOffset+itemLength-1]!=0) {
+ --itemLength;
+ }
+
+ if((inStringTop+itemLength)>STRING_STORE_SIZE) {
+ fprintf(stderr, "icupkg: total length of item name strings too long\n");
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+
+ inItemStrings=inStrings+inStringTop;
+ ds->swapInvChars(ds, inBytes+stringsOffset, itemLength, inItemStrings, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg failed to swap the input .dat package item name strings\n");
+ exit(U_INVALID_FORMAT_ERROR);
+ }
+ inStringTop+=itemLength;
+
+ // reset the Item entries
+ memset(items, 0, itemCount*sizeof(Item));
+
+ inPkgNameLength=strlen(inPkgName);
+ memcpy(prefix, inPkgName, inPkgNameLength);
+ prefixLength=inPkgNameLength;
+
+ /*
+ * Get the common prefix of the items.
+ * New-style ICU .dat packages use tree separators ('/') between package names,
+ * tree names, and item names,
+ * while old-style ICU .dat packages (before multi-tree support)
+ * use an underscore ('_') between package and item names.
+ */
+ offset=(int32_t)ds->readUInt32(inEntries[0].nameOffset)-stringsOffset;
+ s=inItemStrings+offset;
+ if( (int32_t)strlen(s)>=(inPkgNameLength+2) &&
+ 0==memcmp(s, inPkgName, inPkgNameLength) &&
+ s[inPkgNameLength]=='_'
+ ) {
+ // old-style .dat package
+ prefix[prefixLength++]='_';
+ } else {
+ // new-style .dat package
+ prefix[prefixLength++]=U_TREE_ENTRY_SEP_CHAR;
+ // if it turns out to not contain U_TREE_ENTRY_SEP_CHAR
+ // then the test in the loop below will fail
+ }
+ prefix[prefixLength]=0;
+
+ /* read the ToC table */
+ for(i=0; i<itemCount; ++i) {
+ // skip the package part of the item name, error if it does not match the actual package name
+ // or if nothing follows the package name
+ offset=(int32_t)ds->readUInt32(inEntries[i].nameOffset)-stringsOffset;
+ s=inItemStrings+offset;
+ if(0!=strncmp(s, prefix, prefixLength) || s[prefixLength]==0) {
+ fprintf(stderr, "icupkg: input .dat item name \"%s\" does not start with \"%s\"\n",
+ s, prefix);
+ exit(U_UNSUPPORTED_ERROR);
+ }
+ items[i].name=s+prefixLength;
+
+ // set the item's data
+ items[i].data=(uint8_t *)inBytes+ds->readUInt32(inEntries[i].dataOffset);
+ if(i>0) {
+ items[i-1].length=(int32_t)(items[i].data-items[i-1].data);
+
+ // set the previous item's platform type
+ typeEnum=getTypeEnumForInputData(items[i-1].data, items[i-1].length, &errorCode);
+ if(typeEnum<0 || U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: not an ICU data file: item \"%s\" in \"%s\"\n", items[i-1].name, filename);
+ exit(U_INVALID_FORMAT_ERROR);
+ }
+ items[i-1].type=makeTypeLetter(typeEnum);
+ }
+ items[i].isDataOwned=FALSE;
+ }
+ // set the last item's length
+ items[itemCount-1].length=length-ds->readUInt32(inEntries[itemCount-1].dataOffset);
+
+ // set the last item's platform type
+ typeEnum=getTypeEnumForInputData(items[itemCount-1].data, items[itemCount-1].length, &errorCode);
+ if(typeEnum<0 || U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: not an ICU data file: item \"%s\" in \"%s\"\n", items[i-1].name, filename);
+ exit(U_INVALID_FORMAT_ERROR);
+ }
+ items[itemCount-1].type=makeTypeLetter(typeEnum);
+
+ if(type!=U_ICUDATA_TYPE_LETTER[0]) {
+ // sort the item names for the local charset
+ sortItems();
+ }
+ }
+
+ udata_closeSwapper(ds);
+}
+
+char
+Package::getInType() {
+ return makeTypeLetter(inCharset, inIsBigEndian);
+}
+
+void
+Package::writePackage(const char *filename, char outType, const char *comment) {
+ char prefix[MAX_PKG_NAME_LENGTH+4];
+ UDataOffsetTOCEntry entry;
+ UDataSwapper *dsLocalToOut, *ds[TYPE_COUNT];
+ FILE *file;
+ Item *pItem;
+ char *name;
+ UErrorCode errorCode;
+ int32_t i, length, prefixLength, maxItemLength, basenameOffset, offset, outInt32;
+ uint8_t outCharset;
+ UBool outIsBigEndian;
+
+ extractPackageName(filename, prefix, MAX_PKG_NAME_LENGTH);
+
+ // if there is an explicit comment, then use it, else use what's in the current header
+ if(comment!=NULL) {
+ /* get the header size minus the current comment */
+ DataHeader *pHeader;
+ int32_t length;
+
+ pHeader=(DataHeader *)header;
+ headerLength=4+pHeader->info.size;
+ length=(int32_t)strlen(comment);
+ if((int32_t)(headerLength+length)>=(int32_t)sizeof(header)) {
+ fprintf(stderr, "icupkg: comment too long\n");
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+ memcpy(header+headerLength, comment, length+1);
+ headerLength+=length;
+ if(headerLength&0xf) {
+ /* NUL-pad the header to a multiple of 16 */
+ length=(headerLength+0xf)&~0xf;
+ memset(header+headerLength, 0, length-headerLength);
+ headerLength=length;
+ }
+ pHeader->dataHeader.headerSize=(uint16_t)headerLength;
+ }
+
+ makeTypeProps(outType, outCharset, outIsBigEndian);
+
+ // open (TYPE_COUNT-2) swappers
+ // one is a no-op for local type==outType
+ // one type (TYPE_LE) is bogus
+ errorCode=U_ZERO_ERROR;
+ i=makeTypeEnum(outType);
+ ds[TYPE_B]= i==TYPE_B ? NULL : udata_openSwapper(TRUE, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode);
+ ds[TYPE_L]= i==TYPE_L ? NULL : udata_openSwapper(FALSE, U_ASCII_FAMILY, outIsBigEndian, outCharset, &errorCode);
+ ds[TYPE_LE]=NULL;
+ ds[TYPE_E]= i==TYPE_E ? NULL : udata_openSwapper(TRUE, U_EBCDIC_FAMILY, outIsBigEndian, outCharset, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_openSwapper() failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+ for(i=0; i<TYPE_COUNT; ++i) {
+ if(ds[i]!=NULL) {
+ ds[i]->printError=printPackageError;
+ ds[i]->printErrorContext=stderr;
+ }
+ }
+
+ dsLocalToOut=ds[makeTypeEnum(U_CHARSET_FAMILY, U_IS_BIG_ENDIAN)];
+
+ // create the file and write its contents
+ file=fopen(filename, "wb");
+ if(file==NULL) {
+ fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ // swap and write the header
+ if(dsLocalToOut!=NULL) {
+ udata_swapDataHeader(dsLocalToOut, header, headerLength, header, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_swapDataHeader(local to out) failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+ }
+ length=(int32_t)fwrite(header, 1, headerLength, file);
+ if(length!=headerLength) {
+ fprintf(stderr, "icupkg: unable to write complete header to file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ // prepare and swap the package name with a tree separator
+ // for prepending to item names
+ strcat(prefix, U_TREE_ENTRY_SEP_STRING);
+ prefixLength=(int32_t)strlen(prefix);
+ if(dsLocalToOut!=NULL) {
+ dsLocalToOut->swapInvChars(dsLocalToOut, prefix, prefixLength, prefix, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: swapInvChars(output package name) failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+
+ // swap and sort the item names (sorting needs to be done in the output charset)
+ dsLocalToOut->swapInvChars(dsLocalToOut, inStrings, inStringTop, inStrings, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: swapInvChars(item names) failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+ sortItems();
+ }
+
+ // create the output item names in sorted order, with the package name prepended to each
+ for(i=0; i<itemCount; ++i) {
+ length=(int32_t)strlen(items[i].name);
+ name=allocString(FALSE, length+prefixLength);
+ memcpy(name, prefix, prefixLength);
+ memcpy(name+prefixLength, items[i].name, length+1);
+ items[i].name=name;
+ }
+
+ // calculate offsets for item names and items, pad to 16-align items
+ // align only the first item; each item's length is a multiple of 16
+ basenameOffset=4+8*itemCount;
+ offset=basenameOffset+outStringTop;
+ if((length=(offset&15))!=0) {
+ length=16-length;
+ memset(allocString(FALSE, length-1), 0xaa, length);
+ offset+=length;
+ }
+
+ // write the table of contents
+ // first the itemCount
+ outInt32=itemCount;
+ if(dsLocalToOut!=NULL) {
+ dsLocalToOut->swapArray32(dsLocalToOut, &outInt32, 4, &outInt32, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: swapArray32(item count) failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+ }
+ length=(int32_t)fwrite(&outInt32, 1, 4, file);
+ if(length!=4) {
+ fprintf(stderr, "icupkg: unable to write complete item count to file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ // then write the item entries (and collect the maxItemLength)
+ maxItemLength=0;
+ for(i=0; i<itemCount; ++i) {
+ entry.nameOffset=(uint32_t)(basenameOffset+(items[i].name-outStrings));
+ entry.dataOffset=(uint32_t)offset;
+ if(dsLocalToOut!=NULL) {
+ dsLocalToOut->swapArray32(dsLocalToOut, &entry, 8, &entry, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: swapArray32(item entry %ld) failed - %s\n", (long)i, u_errorName(errorCode));
+ exit(errorCode);
+ }
+ }
+ length=(int32_t)fwrite(&entry, 1, 8, file);
+ if(length!=8) {
+ fprintf(stderr, "icupkg: unable to write complete item entry %ld to file \"%s\"\n", (long)i, filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ length=items[i].length;
+ if(length>maxItemLength) {
+ maxItemLength=length;
+ }
+ offset+=length;
+ }
+
+ // write the item names
+ length=(int32_t)fwrite(outStrings, 1, outStringTop, file);
+ if(length!=outStringTop) {
+ fprintf(stderr, "icupkg: unable to write complete item names to file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ // write the items
+ for(pItem=items, i=0; i<itemCount; ++pItem, ++i) {
+ int32_t type=makeTypeEnum(pItem->type);
+ if(ds[type]!=NULL) {
+ // swap each item from its platform properties to the desired ones
+ udata_swap(
+ ds[type],
+ pItem->data, pItem->length, pItem->data,
+ &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_swap(item %ld) failed - %s\n", (long)i, u_errorName(errorCode));
+ exit(errorCode);
+ }
+ }
+ length=(int32_t)fwrite(pItem->data, 1, pItem->length, file);
+ if(length!=pItem->length) {
+ fprintf(stderr, "icupkg: unable to write complete item %ld to file \"%s\"\n", (long)i, filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+ }
+
+ if(ferror(file)) {
+ fprintf(stderr, "icupkg: unable to write complete file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+
+ fclose(file);
+ for(i=0; i<TYPE_COUNT; ++i) {
+ udata_closeSwapper(ds[i]);
+ }
+}
+
+int32_t
+Package::findItem(const char *name, int32_t length) {
+ int32_t i, start, limit;
+ int result;
+
+ /* do a binary search for the string */
+ start=0;
+ limit=itemCount;
+ while(start<limit) {
+ i=(start+limit)/2;
+ if(length>=0) {
+ result=strncmp(name, items[i].name, length);
+ } else {
+ result=strcmp(name, items[i].name);
+ }
+
+ if(result==0) {
+ /* found */
+ if(length>=0) {
+ /*
+ * if we compared just prefixes, then we may need to back up
+ * to the first item with this prefix
+ */
+ while(i>0 && 0==strncmp(name, items[i-1].name, length)) {
+ --i;
+ }
+ }
+ return i;
+ } else if(result<0) {
+ limit=i;
+ } else /* result>0 */ {
+ start=i+1;
+ }
+ }
+
+ return ~start; /* not found, return binary-not of the insertion point */
+}
+
+void
+Package::findItems(const char *pattern) {
+ const char *wild;
+
+ if(pattern==NULL || *pattern==0) {
+ findNextIndex=-1;
+ return;
+ }
+
+ findPrefix=pattern;
+ findSuffix=NULL;
+ findSuffixLength=0;
+
+ wild=strchr(pattern, '*');
+ if(wild==NULL) {
+ // no wildcard
+ findPrefixLength=(int32_t)strlen(pattern);
+ } else {
+ // one wildcard
+ findPrefixLength=(int32_t)(wild-pattern);
+ findSuffix=wild+1;
+ findSuffixLength=(int32_t)strlen(findSuffix);
+ if(NULL!=strchr(findSuffix, '*')) {
+ // two or more wildcards
+ fprintf(stderr, "icupkg: syntax error (more than one '*') in item pattern \"%s\"\n", pattern);
+ exit(U_PARSE_ERROR);
+ }
+ }
+
+ if(findPrefixLength==0) {
+ findNextIndex=0;
+ } else {
+ findNextIndex=findItem(findPrefix, findPrefixLength);
+ }
+}
+
+int32_t
+Package::findNextItem() {
+ const char *name, *middle, *treeSep;
+ int32_t index, nameLength, middleLength;
+
+ if(findNextIndex<0) {
+ return -1;
+ }
+
+ while(findNextIndex<itemCount) {
+ index=findNextIndex++;
+ name=items[index].name;
+ nameLength=(int32_t)strlen(name);
+ if(nameLength<(findPrefixLength+findSuffixLength)) {
+ // item name too short for prefix & suffix
+ continue;
+ }
+ if(findPrefixLength>0 && 0!=memcmp(findPrefix, name, findPrefixLength)) {
+ // left the range of names with this prefix
+ break;
+ }
+ middle=name+findPrefixLength;
+ middleLength=nameLength-findPrefixLength-findSuffixLength;
+ if(findSuffixLength>0 && 0!=memcmp(findSuffix, name+(nameLength-findSuffixLength), findSuffixLength)) {
+ // suffix does not match
+ continue;
+ }
+ // prefix & suffix match
+
+ if(matchMode&MATCH_NOSLASH) {
+ treeSep=strchr(middle, U_TREE_ENTRY_SEP_CHAR);
+ if(treeSep!=NULL && (treeSep-middle)<middleLength) {
+ // the middle (matching the * wildcard) contains a tree separator /
+ continue;
+ }
+ }
+
+ // found a matching item
+ return index;
+ }
+
+ // no more items
+ findNextIndex=-1;
+ return -1;
+}
+
+void
+Package::setMatchMode(uint32_t mode) {
+ matchMode=mode;
+}
+
+void
+Package::addItem(const char *name) {
+ addItem(name, NULL, 0, FALSE, U_ICUDATA_TYPE_LETTER[0]);
+}
+
+void
+Package::addItem(const char *name, uint8_t *data, int32_t length, UBool isDataOwned, char type) {
+ int32_t index;
+
+ index=findItem(name);
+ if(index<0) {
+ // new item, make space at the insertion point
+ if(itemCount>=MAX_FILE_COUNT) {
+ fprintf(stderr, "icupkg: too many items, maximum is %d\n", MAX_FILE_COUNT);
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+ // move the following items down
+ index=~index;
+ if(index<itemCount) {
+ memmove(items+index+1, items+index, (itemCount-index)*sizeof(Item));
+ }
+ ++itemCount;
+
+ // reset this Item entry
+ memset(items+index, 0, sizeof(Item));
+
+ // copy the item's name
+ items[index].name=allocString(TRUE, strlen(name));
+ strcpy(items[index].name, name);
+ pathToTree(items[index].name);
+ } else {
+ // same-name item found, replace it
+ if(items[index].isDataOwned) {
+ free(items[index].data);
+ }
+
+ // keep the item's name since it is the same
+ }
+
+ // set the item's data
+ items[index].data=data;
+ items[index].length=length;
+ items[index].isDataOwned=isDataOwned;
+ items[index].type=type;
+}
+
+void
+Package::addFile(const char *filesPath, const char *name) {
+ uint8_t *data;
+ int32_t length;
+ char type;
+
+ data=readFile(filesPath, name, length, type);
+ // readFile() exits the tool if it fails
+ addItem(name, data, length, TRUE, type);
+}
+
+void
+Package::addItems(const Package &listPkg) {
+ const Item *pItem;
+ int32_t i;
+
+ for(pItem=listPkg.items, i=0; i<listPkg.itemCount; ++pItem, ++i) {
+ addItem(pItem->name, pItem->data, pItem->length, FALSE, pItem->type);
+ }
+}
+
+void
+Package::removeItem(int32_t index) {
+ if(index>=0) {
+ // remove the item
+ if(items[index].isDataOwned) {
+ free(items[index].data);
+ }
+
+ // move the following items up
+ if((index+1)<itemCount) {
+ memmove(items+index, items+index+1, (itemCount-(index+1))*sizeof(Item));
+ }
+ --itemCount;
+
+ if(index<=findNextIndex) {
+ --findNextIndex;
+ }
+ }
+}
+
+void
+Package::removeItems(const char *pattern) {
+ int32_t index;
+
+ findItems(pattern);
+ while((index=findNextItem())>=0) {
+ removeItem(index);
+ }
+}
+
+void
+Package::removeItems(const Package &listPkg) {
+ const Item *pItem;
+ int32_t i;
+
+ for(pItem=listPkg.items, i=0; i<listPkg.itemCount; ++pItem, ++i) {
+ removeItems(pItem->name);
+ }
+}
+
+void
+Package::extractItem(const char *filesPath, const char *outName, int32_t index, char outType) {
+ char filename[1024];
+ UDataSwapper *ds;
+ FILE *file;
+ Item *pItem;
+ int32_t fileLength;
+ uint8_t itemCharset, outCharset;
+ UBool itemIsBigEndian, outIsBigEndian;
+
+ if(index<0 || itemCount<=index) {
+ return;
+ }
+ pItem=items+index;
+
+ // swap the data to the outType
+ // outType==0: don't swap
+ if(outType!=0 && pItem->type!=outType) {
+ // open the swapper
+ UErrorCode errorCode=U_ZERO_ERROR;
+ makeTypeProps(pItem->type, itemCharset, itemIsBigEndian);
+ makeTypeProps(outType, outCharset, outIsBigEndian);
+ ds=udata_openSwapper(itemIsBigEndian, itemCharset, outIsBigEndian, outCharset, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_openSwapper(item %ld) failed - %s\n",
+ (long)index, u_errorName(errorCode));
+ exit(errorCode);
+ }
+
+ ds->printError=printPackageError;
+ ds->printErrorContext=stderr;
+
+ // swap the item from its platform properties to the desired ones
+ udata_swap(ds, pItem->data, pItem->length, pItem->data, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_swap(item %ld) failed - %s\n", (long)index, u_errorName(errorCode));
+ exit(errorCode);
+ }
+ udata_closeSwapper(ds);
+ }
+
+ // create the file and write its contents
+ makeFullFilenameAndDirs(filesPath, outName, filename, (int32_t)sizeof(filename));
+ file=fopen(filename, "wb");
+ if(file==NULL) {
+ fprintf(stderr, "icupkg: unable to create file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+ fileLength=(int32_t)fwrite(pItem->data, 1, pItem->length, file);
+
+ if(ferror(file) || fileLength!=pItem->length) {
+ fprintf(stderr, "icupkg: unable to write complete file \"%s\"\n", filename);
+ exit(U_FILE_ACCESS_ERROR);
+ }
+ fclose(file);
+}
+
+void
+Package::extractItem(const char *filesPath, int32_t index, char outType) {
+ extractItem(filesPath, items[index].name, index, outType);
+}
+
+void
+Package::extractItems(const char *filesPath, const char *pattern, char outType) {
+ int32_t index;
+
+ findItems(pattern);
+ while((index=findNextItem())>=0) {
+ extractItem(filesPath, index, outType);
+ }
+}
+
+void
+Package::extractItems(const char *filesPath, const Package &listPkg, char outType) {
+ const Item *pItem;
+ int32_t i;
+
+ for(pItem=listPkg.items, i=0; i<listPkg.itemCount; ++pItem, ++i) {
+ extractItems(filesPath, pItem->name, outType);
+ }
+}
+
+void
+Package::listItems(FILE *file) {
+ int32_t i;
+
+ for(i=0; i<itemCount; ++i) {
+ fprintf(file, "%s\n", items[i].name);
+ }
+}
+
+void
+Package::checkDependency(void *context, const char *itemName, const char *targetName) {
+ // check dependency: make sure the target item is in the package
+ Package *me=(Package *)context;
+ if(me->findItem(targetName)<0) {
+ me->isMissingItems=TRUE;
+ fprintf(stderr, "Item %s depends on missing item %s\n", itemName, targetName);
+ }
+}
+
+UBool
+Package::checkDependencies() {
+ int32_t i;
+
+ isMissingItems=FALSE;
+ for(i=0; i<itemCount; ++i) {
+ enumDependencies(items+i);
+ }
+ return (UBool)!isMissingItems;
+}
+
+char *
+Package::allocString(UBool in, int32_t length) {
+ char *p;
+ int32_t top;
+
+ if(in) {
+ top=inStringTop;
+ p=inStrings+top;
+ } else {
+ top=outStringTop;
+ p=outStrings+top;
+ }
+ top+=length+1;
+
+ if(top>STRING_STORE_SIZE) {
+ fprintf(stderr, "icupkg: string storage overflow\n");
+ exit(U_BUFFER_OVERFLOW_ERROR);
+ }
+ if(in) {
+ inStringTop=top;
+ } else {
+ outStringTop=top;
+ }
+ return p;
+}
+
+void
+Package::sortItems() {
+ UErrorCode errorCode=U_ZERO_ERROR;
+ uprv_sortArray(items, itemCount, (int32_t)sizeof(Item), compareItems, NULL, FALSE, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: sorting item names failed - %s\n", u_errorName(errorCode));
+ exit(errorCode);
+ }
+}
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/package.h b/Build/source/libs/icu-xetex/tools/toolutil/package.h
new file mode 100644
index 00000000000..8e50975ebea
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/toolutil/package.h
@@ -0,0 +1,159 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2005-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: package.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005aug25
+* created by: Markus W. Scherer
+*
+* Read, modify, and write ICU .dat data package files.
+*/
+
+#ifndef __PACKAGE_H__
+#define __PACKAGE_H__
+
+#include "unicode/utypes.h"
+
+#include <stdio.h>
+
+// .dat package file representation ---------------------------------------- ***
+
+#define STRING_STORE_SIZE 100000
+#define MAX_FILE_COUNT 2000
+#define MAX_PKG_NAME_LENGTH 32
+
+U_NAMESPACE_BEGIN
+
+struct Item {
+ char *name;
+ uint8_t *data;
+ int32_t length;
+ UBool isDataOwned;
+ char type;
+};
+
+class U_TOOLUTIL_API Package {
+public:
+ /*
+ * Constructor.
+ * Prepare this object for a new, empty package.
+ */
+ Package();
+
+ /* Destructor. */
+ ~Package();
+
+ /*
+ * Read an existing .dat package file.
+ * The header and item name strings are swapped into this object,
+ * but the items are left unswapped.
+ */
+ void readPackage(const char *filename);
+ /*
+ * Write a .dat package file with the items in this object.
+ * Swap all pieces to the desired output platform properties.
+ * The package becomes unusable:
+ * The item names are swapped and sorted in the outCharset rather than the local one.
+ * Also, the items themselves are swapped in-place
+ */
+ void writePackage(const char *filename, char outType, const char *comment);
+
+ /*
+ * Return the input data type letter (l, b, or e).
+ */
+ char getInType();
+
+ // find the item in items[], return the non-negative index if found, else the binary-not of the insertion point
+ int32_t findItem(const char *name, int32_t length=-1);
+
+ /*
+ * Set internal state for following calls to findNextItem() which will return
+ * indexes for items whose names match the pattern.
+ */
+ void findItems(const char *pattern);
+ int32_t findNextItem();
+ /*
+ * Set the match mode for findItems() & findNextItem().
+ * @param mode 0=default
+ * MATCH_NOSLASH * does not match a '/'
+ */
+ void setMatchMode(uint32_t mode);
+
+ enum {
+ MATCH_NOSLASH=1
+ };
+
+ void addItem(const char *name);
+ void addItem(const char *name, uint8_t *data, int32_t length, UBool isDataOwned, char type);
+ void addFile(const char *filesPath, const char *name);
+ void addItems(const Package &listPkg);
+
+ void removeItem(int32_t index);
+ void removeItems(const char *pattern);
+ void removeItems(const Package &listPkg);
+
+ /* The extractItem() functions accept outputType=0 to mean "don't swap the item". */
+ void extractItem(const char *filesPath, int32_t index, char outType);
+ void extractItems(const char *filesPath, const char *pattern, char outType);
+ void extractItems(const char *filesPath, const Package &listPkg, char outType);
+
+ /* This variant extracts an item to a specific filename. */
+ void extractItem(const char *filesPath, const char *outName, int32_t index, char outType);
+
+ void listItems(FILE *file);
+
+ /*
+ * Check dependencies and return TRUE if all dependencies are fulfilled.
+ */
+ UBool checkDependencies();
+
+private:
+ void enumDependencies(Item *pItem);
+
+ static void checkDependency(void *context, const char *itemName, const char *targetName);
+
+ /*
+ * Allocate a string in inStrings or outStrings.
+ * The length does not include the terminating NUL.
+ */
+ char *allocString(UBool in, int32_t length);
+
+ void sortItems();
+
+ // data fields
+ char inPkgName[MAX_PKG_NAME_LENGTH];
+
+ uint8_t *inData;
+ uint8_t header[1024];
+ int32_t inLength, headerLength;
+ uint8_t inCharset;
+ UBool inIsBigEndian;
+
+ int32_t itemCount;
+ Item items[MAX_FILE_COUNT];
+
+ int32_t inStringTop, outStringTop;
+ char inStrings[STRING_STORE_SIZE], outStrings[STRING_STORE_SIZE];
+
+ // match mode for findItems(pattern) and findNextItem()
+ uint32_t matchMode;
+
+ // state for findItems(pattern) and findNextItem()
+ const char *findPrefix, *findSuffix;
+ int32_t findPrefixLength, findSuffixLength;
+ int32_t findNextIndex;
+
+ // state for checkDependencies()
+ UBool isMissingItems;
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/pkg_imp.h b/Build/source/libs/icu-xetex/tools/toolutil/pkg_imp.h
new file mode 100644
index 00000000000..0b0c2b740f8
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/toolutil/pkg_imp.h
@@ -0,0 +1,35 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2005, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: pkg_imp.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005sep18
+* created by: Markus W. Scherer
+*
+* Implementation definitions for data package functions in toolutil.
+*/
+
+#ifndef __PKG_IMP_H__
+#define __PKG_IMP_H__
+
+#include "unicode/utypes.h"
+
+/*
+ * Read an ICU data item with any platform type,
+ * return the pointer to the UDataInfo in its header,
+ * and set the lengths of the UDataInfo and of the whole header.
+ * All data remains in its platform type.
+ */
+U_CFUNC const UDataInfo *
+getDataInfo(const uint8_t *data, int32_t length,
+ int32_t &infoLength, int32_t &headerLength,
+ UErrorCode *pErrorCode);
+
+#endif
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/pkgitems.cpp b/Build/source/libs/icu-xetex/tools/toolutil/pkgitems.cpp
new file mode 100644
index 00000000000..bddbfa5b6fa
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/toolutil/pkgitems.cpp
@@ -0,0 +1,638 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2003-2006, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: pkgitems.cpp
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005sep18
+* created by: Markus W. Scherer
+*
+* Companion file to package.cpp. Deals with details of ICU data item formats.
+* Used for item dependencies.
+* Contains adapted code from uresdata.c and ucnv_bld.c (swapper code from 2003).
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/ures.h"
+#include "unicode/putil.h"
+#include "unicode/udata.h"
+#include "cstring.h"
+#include "ucmndata.h"
+#include "udataswp.h"
+#include "swapimpl.h"
+#include "toolutil.h"
+#include "package.h"
+#include "pkg_imp.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* item formats in common */
+
+#include "uresdata.h"
+#include "ucnv_bld.h"
+#include "ucnv_io.h"
+
+// general definitions ----------------------------------------------------- ***
+
+#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
+
+U_CDECL_BEGIN
+
+static void U_CALLCONV
+printError(void *context, const char *fmt, va_list args) {
+ vfprintf((FILE *)context, fmt, args);
+}
+
+U_CDECL_END
+
+typedef void CheckDependency(void *context, const char *itemName, const char *targetName);
+
+// check a dependency ------------------------------------------------------ ***
+
+/*
+ * assemble the target item name from the source item name, an ID
+ * and a suffix
+ */
+static void
+checkIDSuffix(const char *itemName, const char *id, int32_t idLength, const char *suffix,
+ CheckDependency check, void *context,
+ UErrorCode *pErrorCode) {
+ char target[200];
+ const char *itemID;
+ int32_t treeLength, suffixLength, targetLength;
+
+ // get the item basename
+ itemID=strrchr(itemName, '/');
+ if(itemID!=NULL) {
+ ++itemID;
+ } else {
+ itemID=itemName;
+ }
+
+ // build the target string
+ treeLength=(int32_t)(itemID-itemName);
+ if(idLength<0) {
+ idLength=(int32_t)strlen(id);
+ }
+ suffixLength=(int32_t)strlen(suffix);
+ targetLength=treeLength+idLength+suffixLength;
+ if(targetLength>=(int32_t)sizeof(target)) {
+ fprintf(stderr, "icupkg/checkIDSuffix(%s) alias target item name length %ld too long\n",
+ itemName, (long)targetLength);
+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
+ return;
+ }
+
+ memcpy(target, itemName, treeLength);
+ memcpy(target+treeLength, id, idLength);
+ memcpy(target+treeLength+idLength, suffix, suffixLength+1); // +1 includes the terminating NUL
+
+ check(context, itemName, target);
+}
+
+/* assemble the target item name from the item's parent item name */
+static void
+checkParent(const char *itemName, CheckDependency check, void *context,
+ UErrorCode *pErrorCode) {
+ const char *itemID, *parent, *parentLimit, *suffix;
+ int32_t parentLength;
+
+ // get the item basename
+ itemID=strrchr(itemName, '/');
+ if(itemID!=NULL) {
+ ++itemID;
+ } else {
+ itemID=itemName;
+ }
+
+ // get the item suffix
+ suffix=strrchr(itemID, '.');
+ if(suffix==NULL) {
+ // empty suffix, point to the end of the string
+ suffix=strrchr(itemID, 0);
+ }
+
+ // get the position of the last '_'
+ for(parentLimit=suffix; parentLimit>itemID && *--parentLimit!='_';) {}
+
+ if(parentLimit!=itemID) {
+ // get the parent item name by truncating the last part of this item's name */
+ parent=itemID;
+ parentLength=(int32_t)(parentLimit-itemID);
+ } else {
+ // no '_' in the item name: the parent is the root bundle
+ parent="root";
+ parentLength=4;
+ if((suffix-itemID)==parentLength && 0==memcmp(itemID, parent, parentLength)) {
+ // the item itself is "root", which does not depend on a parent
+ return;
+ }
+ }
+ checkIDSuffix(itemName, parent, parentLength, suffix, check, context, pErrorCode);
+}
+
+// get dependencies from resource bundles ---------------------------------- ***
+
+static const char *const gAliasKey="%%ALIAS";
+enum { gAliasKeyLength=7 };
+
+/*
+ * Enumerate one resource item and its children and extract dependencies from
+ * aliases.
+ * Code adapted from ures_preflightResource() and ures_swapResource().
+ */
+static void
+ures_enumDependencies(const UDataSwapper *ds,
+ const char *itemName,
+ const Resource *inBundle, int32_t length,
+ Resource res, const char *inKey, int32_t depth,
+ CheckDependency check, void *context,
+ UErrorCode *pErrorCode) {
+ const Resource *p;
+ int32_t offset;
+
+ if(res==0 || RES_GET_TYPE(res)==URES_INT) {
+ /* empty string or integer, nothing to do */
+ return;
+ }
+
+ /* all other types use an offset to point to their data */
+ offset=(int32_t)RES_GET_OFFSET(res);
+ if(0<=length && length<=offset) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) resource offset exceeds bundle length %d\n",
+ itemName, res, length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return;
+ }
+ p=inBundle+offset;
+
+ switch(RES_GET_TYPE(res)) {
+ /* strings and aliases have physically the same value layout */
+ case URES_STRING:
+ // we ignore all strings except top-level strings with a %%ALIAS key
+ if(depth!=1) {
+ break;
+ } else {
+ char key[8];
+ int32_t keyLength;
+
+ keyLength=(int32_t)strlen(inKey);
+ if(keyLength!=gAliasKeyLength) {
+ break;
+ }
+ ds->swapInvChars(ds, inKey, gAliasKeyLength+1, key, pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) string key contains variant characters\n",
+ itemName, res);
+ return;
+ }
+ if(0!=strcmp(key, gAliasKey)) {
+ break;
+ }
+ }
+ // for the top-level %%ALIAS string fall through to URES_ALIAS
+ case URES_ALIAS:
+ {
+ char localeID[32];
+ const uint16_t *p16;
+ int32_t i, stringLength;
+ uint16_t u16, ored16;
+
+ stringLength=udata_readInt32(ds, (int32_t)*p);
+
+ /* top=offset+1+(string length +1)/2 rounded up */
+ offset+=1+((stringLength+1)+1)/2;
+ if(offset>length) {
+ break; // the resource does not fit into the bundle, print error below
+ }
+
+ // extract the locale ID from alias strings like
+ // locale_ID/key1/key2/key3
+ // locale_ID
+ if(U_IS_BIG_ENDIAN==ds->inIsBigEndian) {
+ u16=0x2f; // slash in local endianness
+ } else {
+ u16=0x2f00; // slash in opposite endianness
+ }
+ p16=(const uint16_t *)(p+1); // Unicode string contents
+
+ // search for the first slash
+ for(i=0; i<stringLength && p16[i]!=u16; ++i) {}
+
+ if(RES_GET_TYPE(res)==URES_ALIAS) {
+ // ignore aliases with an initial slash:
+ // /ICUDATA/... and /pkgname/... go to a different package
+ // /LOCALE/... are for dynamic sideways fallbacks and don't go to a fixed bundle
+ if(i==0) {
+ break; // initial slash ('/')
+ }
+
+ // ignore the intra-bundle path starting from the first slash ('/')
+ stringLength=i;
+ } else /* URES_STRING */ {
+ // the whole string should only consist of a locale ID
+ if(i!=stringLength) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) %%ALIAS contains a '/'\n",
+ itemName, res);
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return;
+ }
+ }
+
+ // convert the Unicode string to char * and
+ // check that it has a bundle path but no package
+ if(stringLength>=(int32_t)sizeof(localeID)) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) alias locale ID length %ld too long\n",
+ itemName, res, stringLength);
+ *pErrorCode=U_BUFFER_OVERFLOW_ERROR;
+ return;
+ }
+
+ // convert the alias Unicode string to US-ASCII
+ ored16=0;
+ if(U_IS_BIG_ENDIAN==ds->inIsBigEndian) {
+ for(i=0; i<stringLength; ++i) {
+ u16=p16[i];
+ ored16|=u16;
+ localeID[i]=(char)u16;
+ }
+ } else {
+ for(i=0; i<stringLength; ++i) {
+ u16=p16[i];
+ ored16|=u16;
+ localeID[i]=(char)(u16>>8);
+ }
+ ored16=(uint16_t)((ored16<<8)|(ored16>>8));
+ }
+ localeID[stringLength]=0;
+ if(ored16>0x7f) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) alias string contains non-ASCII characters\n",
+ itemName, res);
+ *pErrorCode=U_INVALID_CHAR_FOUND;
+ return;
+ }
+
+ if(U_CHARSET_FAMILY==U_EBCDIC_FAMILY) {
+ // swap to EBCDIC
+ // our swapper is probably not the right one, but
+ // the function uses it only for printing errors
+ uprv_ebcdicFromAscii(ds, localeID, stringLength, localeID, pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ return;
+ }
+ }
+#if U_CHARSET_FAMILY!=U_ASCII_FAMILY && U_CHARSET_FAMILY!=U_EBCDIC_FAMILY
+# error Unknown U_CHARSET_FAMILY value!
+#endif
+
+ checkIDSuffix(itemName, localeID, -1, ".res", check, context, pErrorCode);
+ }
+ break;
+ case URES_TABLE:
+ case URES_TABLE32:
+ {
+ const uint16_t *pKey16;
+ const int32_t *pKey32;
+
+ Resource item;
+ int32_t i, count;
+
+ if(RES_GET_TYPE(res)==URES_TABLE) {
+ /* get table item count */
+ pKey16=(const uint16_t *)p;
+ count=ds->readUInt16(*pKey16++);
+
+ pKey32=NULL;
+
+ /* top=((1+ table item count)/2 rounded up)+(table item count) */
+ offset+=((1+count)+1)/2;
+ } else {
+ /* get table item count */
+ pKey32=(const int32_t *)p;
+ count=udata_readInt32(ds, *pKey32++);
+
+ pKey16=NULL;
+
+ /* top=(1+ table item count)+(table item count) */
+ offset+=1+count;
+ }
+
+ p=inBundle+offset; /* pointer to table resources */
+ offset+=count;
+
+ if(offset>length) {
+ break; // the resource does not fit into the bundle, print error below
+ }
+
+ /* recurse */
+ for(i=0; i<count; ++i) {
+ item=ds->readUInt32(*p++);
+ ures_enumDependencies(
+ ds, itemName, inBundle, length, item,
+ ((const char *)inBundle)+
+ (pKey16!=NULL ?
+ ds->readUInt16(pKey16[i]) :
+ udata_readInt32(ds, pKey32[i])),
+ depth+1,
+ check, context,
+ pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s table res=%08x)[%d].recurse(%08x) failed\n",
+ itemName, res, i, item);
+ break;
+ }
+ }
+ }
+ break;
+ case URES_ARRAY:
+ {
+ Resource item;
+ int32_t i, count;
+
+ /* top=offset+1+(array length) */
+ count=udata_readInt32(ds, (int32_t)*p++);
+ offset+=1+count;
+
+ if(offset>length) {
+ break; // the resource does not fit into the bundle, print error below
+ }
+
+ /* recurse */
+ for(i=0; i<count; ++i) {
+ item=ds->readUInt32(*p++);
+ ures_enumDependencies(
+ ds, itemName, inBundle, length,
+ item, NULL, depth+1,
+ check, context,
+ pErrorCode);
+ if(U_FAILURE(*pErrorCode)) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s array res=%08x)[%d].recurse(%08x) failed\n",
+ itemName, res, i, item);
+ break;
+ }
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ if(U_FAILURE(*pErrorCode)) {
+ /* nothing to do */
+ } else if(0<=length && length<offset) {
+ udata_printError(ds, "icupkg/ures_enumDependencies(%s res=%08x) resource limit exceeds bundle length %d\n",
+ itemName, res, length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ }
+}
+
+/* code adapted from ures_swap() */
+static void
+ures_enumDependencies(const UDataSwapper *ds,
+ const char *itemName, const UDataInfo *pInfo,
+ const uint8_t *inBytes, int32_t length,
+ CheckDependency check, void *context,
+ UErrorCode *pErrorCode) {
+ const Resource *inBundle;
+ Resource rootRes;
+
+ /* the following integers count Resource item offsets (4 bytes each), not bytes */
+ int32_t bundleLength;
+
+ /* check format version */
+ if(pInfo->formatVersion[0]!=1) {
+ fprintf(stderr, "icupkg: .res format version %02x not supported\n",
+ pInfo->formatVersion[0]);
+ exit(U_UNSUPPORTED_ERROR);
+ }
+
+ /* a resource bundle must contain at least one resource item */
+ bundleLength=length/4;
+
+ /* formatVersion 1.1 must have a root item and at least 5 indexes */
+ if( bundleLength<
+ (pInfo->formatVersion[1]==0 ? 1 : 1+5)
+ ) {
+ fprintf(stderr, "icupkg: too few bytes (%d after header) for a resource bundle\n",
+ length);
+ exit(U_INDEX_OUTOFBOUNDS_ERROR);
+ }
+
+ inBundle=(const Resource *)inBytes;
+ rootRes=ds->readUInt32(*inBundle);
+
+ ures_enumDependencies(
+ ds, itemName, inBundle, bundleLength,
+ rootRes, NULL, 0,
+ check, context,
+ pErrorCode);
+
+ /*
+ * if the bundle attributes are present and the nofallback flag is not set,
+ * then add the parent bundle as a dependency
+ */
+ if(pInfo->formatVersion[1]>=1) {
+ int32_t indexes[URES_INDEX_TOP];
+ const int32_t *inIndexes;
+
+ inIndexes=(const int32_t *)inBundle+1;
+ indexes[URES_INDEX_LENGTH]=udata_readInt32(ds, inIndexes[URES_INDEX_LENGTH]);
+ if(indexes[URES_INDEX_LENGTH]>URES_INDEX_ATTRIBUTES) {
+ indexes[URES_INDEX_ATTRIBUTES]=udata_readInt32(ds, inIndexes[URES_INDEX_ATTRIBUTES]);
+ if(0==(indexes[URES_INDEX_ATTRIBUTES]&URES_ATT_NO_FALLBACK)) {
+ /* this bundle participates in locale fallback */
+ checkParent(itemName, check, context, pErrorCode);
+ }
+ }
+ }
+}
+
+// get dependencies from conversion tables --------------------------------- ***
+
+/* code adapted from ucnv_swap() */
+static void
+ucnv_enumDependencies(const UDataSwapper *ds,
+ const char *itemName, const UDataInfo *pInfo,
+ const uint8_t *inBytes, int32_t length,
+ CheckDependency check, void *context,
+ UErrorCode *pErrorCode) {
+ uint32_t staticDataSize;
+
+ const UConverterStaticData *inStaticData;
+
+ const _MBCSHeader *inMBCSHeader;
+ uint8_t outputType;
+
+ /* check format version */
+ if(!(
+ pInfo->formatVersion[0]==6 &&
+ pInfo->formatVersion[1]>=2
+ )) {
+ fprintf(stderr, "icupkg/ucnv_enumDependencies(): .cnv format version %02x.%02x not supported\n",
+ pInfo->formatVersion[0], pInfo->formatVersion[1]);
+ exit(U_UNSUPPORTED_ERROR);
+ }
+
+ /* read the initial UConverterStaticData structure after the UDataInfo header */
+ inStaticData=(const UConverterStaticData *)inBytes;
+
+ if( length<(int32_t)sizeof(UConverterStaticData) ||
+ (uint32_t)length<(staticDataSize=ds->readUInt32(inStaticData->structSize))
+ ) {
+ udata_printError(ds, "icupkg/ucnv_enumDependencies(): too few bytes (%d after header) for an ICU .cnv conversion table\n",
+ length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return;
+ }
+
+ inBytes+=staticDataSize;
+ length-=(int32_t)staticDataSize;
+
+ /* check for supported conversionType values */
+ if(inStaticData->conversionType==UCNV_MBCS) {
+ /* MBCS data */
+ uint32_t mbcsHeaderFlags;
+ int32_t extOffset;
+
+ inMBCSHeader=(const _MBCSHeader *)inBytes;
+
+ if(length<(int32_t)sizeof(_MBCSHeader)) {
+ udata_printError(ds, "icupkg/ucnv_enumDependencies(): too few bytes (%d after headers) for an ICU MBCS .cnv conversion table\n",
+ length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return;
+ }
+ if(!(inMBCSHeader->version[0]==4 && inMBCSHeader->version[1]>=1)) {
+ udata_printError(ds, "icupkg/ucnv_enumDependencies(): unsupported _MBCSHeader.version %d.%d\n",
+ inMBCSHeader->version[0], inMBCSHeader->version[1]);
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return;
+ }
+
+ mbcsHeaderFlags=ds->readUInt32(inMBCSHeader->flags);
+ extOffset=(int32_t)(mbcsHeaderFlags>>8);
+ outputType=(uint8_t)mbcsHeaderFlags;
+
+ if(outputType==MBCS_OUTPUT_EXT_ONLY) {
+ /*
+ * extension-only file,
+ * contains a base name instead of normal base table data
+ */
+ char baseName[32];
+ int32_t baseNameLength;
+
+ /* there is extension data after the base data, see ucnv_ext.h */
+ if(length<(extOffset+UCNV_EXT_INDEXES_MIN_LENGTH*4)) {
+ udata_printError(ds, "icupkg/ucnv_enumDependencies(): too few bytes (%d after headers) for an ICU MBCS .cnv conversion table with extension data\n",
+ length);
+ *pErrorCode=U_INDEX_OUTOFBOUNDS_ERROR;
+ return;
+ }
+
+ /* swap the base name, between the header and the extension data */
+ baseNameLength=(int32_t)strlen((const char *)(inMBCSHeader+1));
+ if(baseNameLength>=(int32_t)sizeof(baseName)) {
+ udata_printError(ds, "icupkg/ucnv_enumDependencies(%s): base name length %ld too long\n",
+ itemName, baseNameLength);
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return;
+ }
+ ds->swapInvChars(ds, inMBCSHeader+1, baseNameLength+1, baseName, pErrorCode);
+
+ checkIDSuffix(itemName, baseName, -1, ".cnv", check, context, pErrorCode);
+ }
+ }
+}
+
+// ICU data formats -------------------------------------------------------- ***
+
+static const struct {
+ uint8_t dataFormat[4];
+} dataFormats[]={
+ { { 0x52, 0x65, 0x73, 0x42 } }, /* dataFormat="ResB" */
+ { { 0x63, 0x6e, 0x76, 0x74 } }, /* dataFormat="cnvt" */
+ { { 0x43, 0x76, 0x41, 0x6c } } /* dataFormat="CvAl" */
+};
+
+enum {
+ FMT_RES,
+ FMT_CNV,
+ FMT_ALIAS,
+ FMT_COUNT
+};
+
+static int32_t
+getDataFormat(const uint8_t dataFormat[4]) {
+ int32_t i;
+
+ for(i=0; i<FMT_COUNT; ++i) {
+ if(0==memcmp(dataFormats[i].dataFormat, dataFormat, 4)) {
+ return i;
+ }
+ }
+ return -1;
+}
+
+// enumerate dependencies of a package item -------------------------------- ***
+
+U_NAMESPACE_BEGIN
+
+void
+Package::enumDependencies(Item *pItem) {
+ const UDataInfo *pInfo;
+ const uint8_t *inBytes;
+ int32_t format, length, infoLength, itemHeaderLength;
+ UErrorCode errorCode;
+
+ errorCode=U_ZERO_ERROR;
+ pInfo=getDataInfo(pItem->data,pItem->length, infoLength, itemHeaderLength, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ return; // should not occur because readFile() checks headers
+ }
+
+ // find the data format and call the corresponding function, if any
+ format=getDataFormat(pInfo->dataFormat);
+ if(format>=0) {
+ UDataSwapper *ds;
+
+ // TODO: share/cache swappers
+ ds=udata_openSwapper((UBool)pInfo->isBigEndian, pInfo->charsetFamily, U_IS_BIG_ENDIAN, U_CHARSET_FAMILY, &errorCode);
+ if(U_FAILURE(errorCode)) {
+ fprintf(stderr, "icupkg: udata_openSwapper(\"%s\") failed - %s\n",
+ pItem->name, u_errorName(errorCode));
+ exit(errorCode);
+ }
+
+ ds->printError=printError;
+ ds->printErrorContext=stderr;
+
+ inBytes=pItem->data+itemHeaderLength;
+ length=pItem->length-itemHeaderLength;
+
+ switch(format) {
+ case FMT_RES:
+ ures_enumDependencies(ds, pItem->name, pInfo, inBytes, length, checkDependency, this, &errorCode);
+ break;
+ case FMT_CNV:
+ ucnv_enumDependencies(ds, pItem->name, pInfo, inBytes, length, checkDependency, this, &errorCode);
+ break;
+ default:
+ break;
+ }
+
+ udata_closeSwapper(ds);
+
+ if(U_FAILURE(errorCode)) {
+ exit(errorCode);
+ }
+ }
+}
+U_NAMESPACE_END
diff --git a/Build/source/libs/icu-xetex/tools/icuswap/swapimpl.cpp b/Build/source/libs/icu-xetex/tools/toolutil/swapimpl.cpp
index 41e6d4cafed..fd0f7faf6ad 100644
--- a/Build/source/libs/icu-xetex/tools/icuswap/swapimpl.cpp
+++ b/Build/source/libs/icu-xetex/tools/toolutil/swapimpl.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2005, International Business Machines
+* Copyright (C) 2005-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -34,11 +34,26 @@
#include "ucmndata.h"
#include "udataswp.h"
+/* swapping implementations in common */
+
+#include "uresdata.h"
+#include "ucnv_io.h"
#include "uprops.h"
#include "ucase.h"
#include "ubidi_props.h"
+#include "ucol_swp.h"
+#include "ucnv_bld.h"
#include "unormimp.h"
-#include "utrie.h"
+#include "sprpimpl.h"
+#include "propname.h"
+#include "rbbidata.h"
+#include "triedict.h"
+
+/* swapping implementations in i18n */
+
+/* definitions */
+
+#define LENGTHOF(array) (int32_t)(sizeof(array)/sizeof((array)[0]))
/* Unicode properties data swapping ----------------------------------------- */
@@ -503,3 +518,126 @@ unorm_swap(const UDataSwapper *ds,
}
#endif
+
+/* swap any data (except a .dat package) ------------------------------------ */
+
+static const struct {
+ uint8_t dataFormat[4];
+ UDataSwapFn *swapFn;
+} swapFns[]={
+ { { 0x52, 0x65, 0x73, 0x42 }, ures_swap }, /* dataFormat="ResB" */
+#if !UCONFIG_NO_LEGACY_CONVERSION
+ { { 0x63, 0x6e, 0x76, 0x74 }, ucnv_swap }, /* dataFormat="cnvt" */
+#endif
+#if !UCONFIG_NO_CONVERSION
+ { { 0x43, 0x76, 0x41, 0x6c }, ucnv_swapAliases }, /* dataFormat="CvAl" */
+#endif
+#if !UCONFIG_NO_IDNA
+ { { 0x53, 0x50, 0x52, 0x50 }, usprep_swap }, /* dataFormat="SPRP" */
+#endif
+ /* insert data formats here, descending by expected frequency of occurrence */
+ { { 0x55, 0x50, 0x72, 0x6f }, uprops_swap }, /* dataFormat="UPro" */
+
+ { { UCASE_FMT_0, UCASE_FMT_1, UCASE_FMT_2, UCASE_FMT_3 },
+ ucase_swap }, /* dataFormat="cAsE" */
+
+ { { UBIDI_FMT_0, UBIDI_FMT_1, UBIDI_FMT_2, UBIDI_FMT_3 },
+ ubidi_swap }, /* dataFormat="BiDi" */
+
+#if !UCONFIG_NO_NORMALIZATION
+ { { 0x4e, 0x6f, 0x72, 0x6d }, unorm_swap }, /* dataFormat="Norm" */
+#endif
+#if !UCONFIG_NO_COLLATION
+ { { 0x55, 0x43, 0x6f, 0x6c }, ucol_swap }, /* dataFormat="UCol" */
+ { { 0x49, 0x6e, 0x76, 0x43 }, ucol_swapInverseUCA },/* dataFormat="InvC" */
+#endif
+#if !UCONFIG_NO_BREAK_ITERATION
+ { { 0x42, 0x72, 0x6b, 0x20 }, ubrk_swap }, /* dataFormat="Brk " */
+ { { 0x54, 0x72, 0x44, 0x63 }, triedict_swap }, /* dataFormat="TrDc " */
+#endif
+ { { 0x70, 0x6e, 0x61, 0x6d }, upname_swap }, /* dataFormat="pnam" */
+ { { 0x75, 0x6e, 0x61, 0x6d }, uchar_swapNames } /* dataFormat="unam" */
+};
+
+U_CAPI int32_t U_EXPORT2
+udata_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode) {
+ char dataFormatChars[4];
+ const UDataInfo *pInfo;
+ int32_t headerSize, i, swappedLength;
+
+ if(pErrorCode==NULL || U_FAILURE(*pErrorCode)) {
+ return 0;
+ }
+
+ /*
+ * Preflight the header first; checks for illegal arguments, too.
+ * Do not swap the header right away because the format-specific swapper
+ * will swap it, get the headerSize again, and also use the header
+ * information. Otherwise we would have to pass some of the information
+ * and not be able to use the UDataSwapFn signature.
+ */
+ headerSize=udata_swapDataHeader(ds, inData, -1, NULL, pErrorCode);
+
+ /*
+ * If we wanted udata_swap() to also handle non-loadable data like a UTrie,
+ * then we could check here for further known magic values and structures.
+ */
+ if(U_FAILURE(*pErrorCode)) {
+ return 0; /* the data format was not recognized */
+ }
+
+ pInfo=(const UDataInfo *)((const char *)inData+4);
+
+ {
+ /* convert the data format from ASCII to Unicode to the system charset */
+ UChar u[4]={
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3]
+ };
+
+ if(uprv_isInvariantUString(u, 4)) {
+ u_UCharsToChars(u, dataFormatChars, 4);
+ } else {
+ dataFormatChars[0]=dataFormatChars[1]=dataFormatChars[2]=dataFormatChars[3]='?';
+ }
+ }
+
+ /* dispatch to the swap function for the dataFormat */
+ for(i=0; i<LENGTHOF(swapFns); ++i) {
+ if(0==memcmp(swapFns[i].dataFormat, pInfo->dataFormat, 4)) {
+ swappedLength=swapFns[i].swapFn(ds, inData, length, outData, pErrorCode);
+
+ if(U_FAILURE(*pErrorCode)) {
+ udata_printError(ds, "udata_swap(): failure swapping data format %02x.%02x.%02x.%02x (\"%c%c%c%c\") - %s\n",
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3],
+ dataFormatChars[0], dataFormatChars[1],
+ dataFormatChars[2], dataFormatChars[3],
+ u_errorName(*pErrorCode));
+ } else if(swappedLength<(length-15)) {
+ /* swapped less than expected */
+ udata_printError(ds, "udata_swap() warning: swapped only %d out of %d bytes - data format %02x.%02x.%02x.%02x (\"%c%c%c%c\")\n",
+ swappedLength, length,
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3],
+ dataFormatChars[0], dataFormatChars[1],
+ dataFormatChars[2], dataFormatChars[3],
+ u_errorName(*pErrorCode));
+ }
+
+ return swappedLength;
+ }
+ }
+
+ /* the dataFormat was not recognized */
+ udata_printError(ds, "udata_swap(): unknown data format %02x.%02x.%02x.%02x (\"%c%c%c%c\")\n",
+ pInfo->dataFormat[0], pInfo->dataFormat[1],
+ pInfo->dataFormat[2], pInfo->dataFormat[3],
+ dataFormatChars[0], dataFormatChars[1],
+ dataFormatChars[2], dataFormatChars[3]);
+
+ *pErrorCode=U_UNSUPPORTED_ERROR;
+ return 0;
+}
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/swapimpl.h b/Build/source/libs/icu-xetex/tools/toolutil/swapimpl.h
new file mode 100644
index 00000000000..b36ec2609da
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/toolutil/swapimpl.h
@@ -0,0 +1,43 @@
+/*
+*******************************************************************************
+*
+* Copyright (C) 2005, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+*******************************************************************************
+* file name: swapimpl.h
+* encoding: US-ASCII
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2005jul29
+* created by: Markus W. Scherer
+*
+* Declarations for data file swapping functions not declared in internal
+* library headers.
+*/
+
+#ifndef __SWAPIMPL_H__
+#define __SWAPIMPL_H__
+
+#include "unicode/utypes.h"
+#include "udataswp.h"
+
+/**
+ * Identifies and then transforms the ICU data piece in-place, or determines
+ * its length. See UDataSwapFn.
+ * This function handles single data pieces (but not .dat data packages)
+ * and internally dispatches to per-type swap functions.
+ * Sets a U_UNSUPPORTED_ERROR if the data format is not recognized.
+ *
+ * @see UDataSwapFn
+ * @see udata_openSwapper
+ * @see udata_openSwapperForInputData
+ * @internal ICU 2.8
+ */
+U_CAPI int32_t U_EXPORT2
+udata_swap(const UDataSwapper *ds,
+ const void *inData, int32_t length, void *outData,
+ UErrorCode *pErrorCode);
+
+#endif
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/toolutil.vcproj b/Build/source/libs/icu-xetex/tools/toolutil/toolutil.vcproj
index 12d6b307cc9..38b3ed3bfdf 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/toolutil.vcproj
+++ b/Build/source/libs/icu-xetex/tools/toolutil/toolutil.vcproj
@@ -26,6 +26,8 @@
StringPooling="TRUE"
RuntimeLibrary="2"
EnableFunctionLevelLinking="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Release/toolutil.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
@@ -37,11 +39,11 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\..\bin\icutu34.dll"
+ OutputFile="..\..\..\bin\icutu36.dll"
LinkIncremental="1"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\lib"
- ProgramDatabaseFile=".\..\..\..\lib\icutu34.pdb"
+ ProgramDatabaseFile=".\..\..\..\lib\icutu36.pdb"
EnableCOMDATFolding="2"
BaseAddress="0x4ac00000"
ImportLibrary="..\..\..\lib\icutu.lib"/>
@@ -90,6 +92,8 @@
BasicRuntimeChecks="3"
RuntimeLibrary="3"
BufferSecurityCheck="TRUE"
+ DisableLanguageExtensions="TRUE"
+ TreatWChar_tAsBuiltInType="TRUE"
PrecompiledHeaderFile=".\Debug/toolutil.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
@@ -102,12 +106,12 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- OutputFile="..\..\..\bin\icutu34d.dll"
+ OutputFile="..\..\..\bin\icutu36d.dll"
LinkIncremental="2"
SuppressStartupBanner="TRUE"
AdditionalLibraryDirectories="..\..\..\lib"
GenerateDebugInformation="TRUE"
- ProgramDatabaseFile=".\..\..\..\lib\icutu34d.pdb"
+ ProgramDatabaseFile=".\..\..\..\lib\icutu36d.pdb"
BaseAddress="0x4ac00000"
ImportLibrary="..\..\..\lib\icutud.lib"/>
<Tool
@@ -149,10 +153,31 @@
RelativePath=".\filestrm.c">
</File>
<File
+ RelativePath=".\package.cpp">
+ </File>
+ <File
+ RelativePath=".\pkgitems.cpp">
+ </File>
+ <File
RelativePath=".\propsvec.c">
</File>
<File
+ RelativePath=".\swapimpl.cpp">
+ </File>
+ <File
RelativePath=".\toolutil.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ DisableLanguageExtensions="FALSE"/>
+ </FileConfiguration>
</File>
<File
RelativePath=".\ucbuf.c">
@@ -186,9 +211,18 @@
RelativePath=".\filestrm.h">
</File>
<File
+ RelativePath=".\package.h">
+ </File>
+ <File
+ RelativePath=".\pkg_imp.h">
+ </File>
+ <File
RelativePath=".\propsvec.h">
</File>
<File
+ RelativePath=".\swapimpl.h">
+ </File>
+ <File
RelativePath=".\toolutil.h">
</File>
<File
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/ucbuf.c b/Build/source/libs/icu-xetex/tools/toolutil/ucbuf.c
index ed2abff055a..824bde1eaa3 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/ucbuf.c
+++ b/Build/source/libs/icu-xetex/tools/toolutil/ucbuf.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 1998-2005, International Business Machines
+* Copyright (C) 1998-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -461,55 +461,61 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere
if(in!=NULL){
UCHARBUF* buf =(UCHARBUF*) uprv_malloc(sizeof(UCHARBUF));
fileSize = T_FileStream_size(in);
- if(buf){
- buf->in=in;
- buf->conv=NULL;
- buf->showWarning = showWarning;
- buf->isBuffered = buffered;
- buf->signatureLength=0;
- if(*cp==NULL || **cp=='\0'){
- /* don't have code page name... try to autodetect */
- ucbuf_autodetect_fs(in,cp,&buf->conv,&buf->signatureLength,error);
- }else if(ucbuf_isCPKnown(*cp)){
- /* discard BOM */
- ucbuf_autodetect_fs(in,&knownCp,&buf->conv,&buf->signatureLength,error);
- }
- if(U_SUCCESS(*error) && buf->conv==NULL) {
- buf->conv=ucnv_open(*cp,error);
- }
- if(U_FAILURE(*error)){
- ucnv_close(buf->conv);
- uprv_free(buf);
- return NULL;
- }
-
- if((buf->conv==NULL) && (buf->showWarning==TRUE)){
- fprintf(stderr,"###WARNING: No converter defined. Using codepage of system.\n");
- }
- buf->remaining=fileSize-buf->signatureLength;
- if(buf->isBuffered){
- buf->bufCapacity=MAX_U_BUF;
- }else{
- buf->bufCapacity=buf->remaining+buf->signatureLength+1/*for terminating nul*/;
- }
- buf->buffer=(UChar*) uprv_malloc(U_SIZEOF_UCHAR * buf->bufCapacity );
- if (buf->buffer == NULL) {
- *error = U_MEMORY_ALLOCATION_ERROR;
- return NULL;
- }
- buf->currentPos=buf->buffer;
- buf->bufLimit=buf->buffer;
- if(U_FAILURE(*error)){
- fprintf(stderr, "Could not open codepage [%s]: %s\n", *cp, u_errorName(*error));
- return NULL;
- }
- buf=ucbuf_fillucbuf(buf,error);
- return buf;
+ if(buf == NULL){
+ *error = U_MEMORY_ALLOCATION_ERROR;
+ T_FileStream_close(in);
+ return NULL;
+ }
+ buf->in=in;
+ buf->conv=NULL;
+ buf->showWarning = showWarning;
+ buf->isBuffered = buffered;
+ buf->signatureLength=0;
+ if(*cp==NULL || **cp=='\0'){
+ /* don't have code page name... try to autodetect */
+ ucbuf_autodetect_fs(in,cp,&buf->conv,&buf->signatureLength,error);
+ }else if(ucbuf_isCPKnown(*cp)){
+ /* discard BOM */
+ ucbuf_autodetect_fs(in,&knownCp,&buf->conv,&buf->signatureLength,error);
+ }
+ if(U_SUCCESS(*error) && buf->conv==NULL) {
+ buf->conv=ucnv_open(*cp,error);
+ }
+ if(U_FAILURE(*error)){
+ ucnv_close(buf->conv);
+ uprv_free(buf);
+ T_FileStream_close(in);
+ return NULL;
+ }
+
+ if((buf->conv==NULL) && (buf->showWarning==TRUE)){
+ fprintf(stderr,"###WARNING: No converter defined. Using codepage of system.\n");
+ }
+ buf->remaining=fileSize-buf->signatureLength;
+ if(buf->isBuffered){
+ buf->bufCapacity=MAX_U_BUF;
}else{
+ buf->bufCapacity=buf->remaining+buf->signatureLength+1/*for terminating nul*/;
+ }
+ buf->buffer=(UChar*) uprv_malloc(U_SIZEOF_UCHAR * buf->bufCapacity );
+ if (buf->buffer == NULL) {
*error = U_MEMORY_ALLOCATION_ERROR;
+ ucnv_close(buf->conv);
+ uprv_free(buf);
+ T_FileStream_close(in);
return NULL;
}
-
+ buf->currentPos=buf->buffer;
+ buf->bufLimit=buf->buffer;
+ if(U_FAILURE(*error)){
+ fprintf(stderr, "Could not open codepage [%s]: %s\n", *cp, u_errorName(*error));
+ ucnv_close(buf->conv);
+ uprv_free(buf);
+ T_FileStream_close(in);
+ return NULL;
+ }
+ buf=ucbuf_fillucbuf(buf,error);
+ return buf;
}
*error =U_FILE_ACCESS_ERROR;
return NULL;
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/uparse.c b/Build/source/libs/icu-xetex/tools/toolutil/uparse.c
index 0a49ecb9a79..f9f84721c27 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/uparse.c
+++ b/Build/source/libs/icu-xetex/tools/toolutil/uparse.c
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2000-2004, International Business Machines
+* Copyright (C) 2000-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -36,6 +36,29 @@ u_skipWhitespace(const char *s) {
return s;
}
+/*
+ * If the string starts with # @missing: then return the pointer to the
+ * following non-whitespace character.
+ * Otherwise return the original pointer.
+ * Unicode 5.0 adds such lines in some data files to document
+ * default property values.
+ * Poor man's regex for variable amounts of white space.
+ */
+static const char *
+getMissingLimit(const char *s) {
+ const char *s0=s;
+ if(
+ *(s=u_skipWhitespace(s))=='#' &&
+ *(s=u_skipWhitespace(s+1))=='@' &&
+ 0==strncmp((s=u_skipWhitespace(s+1)), "missing", 7) &&
+ *(s=u_skipWhitespace(s+7))==':'
+ ) {
+ return u_skipWhitespace(s+1);
+ } else {
+ return s0;
+ }
+}
+
U_CAPI void U_EXPORT2
u_parseDelimitedFile(const char *filename, char delimiter,
char *fields[][2], int32_t fieldCount,
@@ -74,16 +97,28 @@ u_parseDelimitedFile(const char *filename, char delimiter,
line[--length]=0;
}
+ /*
+ * detect a line with # @missing:
+ * start parsing after that, or else from the beginning of the line
+ * set the default warning for @missing lines
+ */
+ start=(char *)getMissingLimit(line);
+ if(start==line) {
+ *pErrorCode=U_ZERO_ERROR;
+ } else {
+ *pErrorCode=U_USING_DEFAULT_WARNING;
+ }
+
/* skip this line if it is empty or a comment */
- if(line[0]==0 || line[0]=='#') {
+ if(*start==0 || *start=='#') {
continue;
}
/* remove in-line comments */
- limit=uprv_strchr(line, '#');
+ limit=uprv_strchr(start, '#');
if(limit!=NULL) {
/* get white space before the pound sign */
- while(limit>line && (*(limit-1)==' ' || *(limit-1)=='\t')) {
+ while(limit>start && (*(limit-1)==' ' || *(limit-1)=='\t')) {
--limit;
}
@@ -92,12 +127,11 @@ u_parseDelimitedFile(const char *filename, char delimiter,
}
/* skip lines with only whitespace */
- if(u_skipWhitespace(line)[0]==0) {
+ if(u_skipWhitespace(start)[0]==0) {
continue;
}
/* for each field, call the corresponding field function */
- start=line;
for(i=0; i<fieldCount; ++i) {
/* set the limit pointer of this field */
limit=start;
@@ -156,6 +190,7 @@ u_parseCodePoints(const char *s,
}
if(s==NULL || destCapacity<0 || (destCapacity>0 && dest==NULL)) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
}
count=0;
@@ -261,6 +296,7 @@ u_parseCodePointRange(const char *s,
}
if(s==NULL || pStart==NULL || pEnd==NULL) {
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
+ return 0;
}
s=u_skipWhitespace(s);
diff --git a/Build/source/libs/icu-xetex/tools/toolutil/xmlparser.cpp b/Build/source/libs/icu-xetex/tools/toolutil/xmlparser.cpp
index e332552b02c..195fa30385c 100644
--- a/Build/source/libs/icu-xetex/tools/toolutil/xmlparser.cpp
+++ b/Build/source/libs/icu-xetex/tools/toolutil/xmlparser.cpp
@@ -1,7 +1,7 @@
/*
*******************************************************************************
*
-* Copyright (C) 2004-2005, International Business Machines
+* Copyright (C) 2004-2006, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
@@ -61,27 +61,27 @@ UXMLParser::UXMLParser(UErrorCode &status) :
// example: "<?xml version=1.0 encoding="utf-16" ?>
// This is a sloppy implementation - just look for the leading <?xml and the closing ?>
// allow for a possible leading BOM.
- mXMLDecl(UnicodeString("(?s)\\uFEFF?<\\?xml.+?\\?>", -1, US_INV), 0, status),
+ mXMLDecl(UnicodeString("(?s)\\uFEFF?<\\?xml.+?\\?>"), 0, status),
// XML Comment production #15
// example: "<!-- whatever -->
// note, does not detect an illegal "--" within comments
- mXMLComment(UnicodeString("(?s)<!--.+?-->", -1, US_INV), 0, status),
+ mXMLComment(UnicodeString("(?s)<!--.+?-->"), 0, status),
// XML Spaces
// production [3]
- mXMLSP(UnicodeString(XML_SPACES "+", -1, US_INV), 0, status),
+ mXMLSP(UnicodeString(XML_SPACES "+"), 0, status),
// XML Doctype decl production #28
// example "<!DOCTYPE foo SYSTEM "somewhere" >
// TODO: we don't actually parse the DOCTYPE or internal subsets.
// Some internal dtd subsets could confuse this simple-minded
// attempt at skipping over them.
- mXMLDoctype(UnicodeString("(?s)<!DOCTYPE.+?>", -1, US_INV), 0, status),
+ mXMLDoctype(UnicodeString("(?s)<!DOCTYPE.+?>"), 0, status),
// XML PI production #16
// example "<?target stuff?>
- mXMLPI(UnicodeString("(?s)<\\?.+?\\?>", -1, US_INV), 0, status),
+ mXMLPI(UnicodeString("(?s)<\\?.+?\\?>"), 0, status),
// XML Element Start Productions #40, #41
// example <foo att1='abc' att2="d e f" >
@@ -92,11 +92,11 @@ UXMLParser::UXMLParser(UErrorCode &status) :
XML_SPACES "+" XML_NAME XML_SPACES "*=" XML_SPACES "*" // match "ATTR_NAME = "
"(?:(?:\\\'[^<\\\']*?\\\')|(?:\\\"[^<\\\"]*?\\\"))" // match '"attribute value"'
")*" // * for zero or more attributes.
- XML_SPACES "*?>", -1, US_INV), 0, status), // match " >"
+ XML_SPACES "*?>"), 0, status), // match " >"
// XML Element End production #42
// example </foo>
- mXMLElemEnd (UnicodeString("</(" XML_NAME ")" XML_SPACES "*>", -1, US_INV), 0, status),
+ mXMLElemEnd (UnicodeString("</(" XML_NAME ")" XML_SPACES "*>"), 0, status),
// XML Element Empty production #44
// example <foo att1="abc" att2="d e f" />
@@ -105,11 +105,11 @@ UXMLParser::UXMLParser(UErrorCode &status) :
XML_SPACES "+" XML_NAME XML_SPACES "*=" XML_SPACES "*" // match "ATTR_NAME = "
"(?:(?:\\\'[^<\\\']*?\\\')|(?:\\\"[^<\\\"]*?\\\"))" // match '"attribute value"'
")*" // * for zero or more attributes.
- XML_SPACES "*?/>", -1, US_INV), 0, status), // match " />"
+ XML_SPACES "*?/>"), 0, status), // match " />"
// XMLCharData. Everything but '<'. Note that & will be dealt with later.
- mXMLCharData(UnicodeString("(?s)[^<]*", -1, US_INV), 0, status),
+ mXMLCharData(UnicodeString("(?s)[^<]*"), 0, status),
// Attribute name = "value". XML Productions 10, 40/41
// Capture group 1 is name,
@@ -121,20 +121,20 @@ UXMLParser::UXMLParser(UErrorCode &status) :
// Here, we match a single attribute, and make its name and
// attribute value available to the parser code.
mAttrValue(UnicodeString(XML_SPACES "+(" XML_NAME ")" XML_SPACES "*=" XML_SPACES "*"
- "((?:\\\'[^<\\\']*?\\\')|(?:\\\"[^<\\\"]*?\\\"))", -1, US_INV), 0, status),
+ "((?:\\\'[^<\\\']*?\\\')|(?:\\\"[^<\\\"]*?\\\"))"), 0, status),
- mAttrNormalizer(UnicodeString(XML_SPACES, -1, US_INV), 0, status),
+ mAttrNormalizer(UnicodeString(XML_SPACES), 0, status),
// Match any of the new-line sequences in content.
// All are changed to \u000a.
- mNewLineNormalizer(UnicodeString("\\u000d\\u000a|\\u000d\\u0085|\\u000a|\\u000d|\\u0085|\\u2028", -1, US_INV), 0, status),
+ mNewLineNormalizer(UnicodeString("\\u000d\\u000a|\\u000d\\u0085|\\u000a|\\u000d|\\u0085|\\u2028"), 0, status),
// & char references
// We will figure out what we've got based on which capture group has content.
// The last one is a catchall for unrecognized entity references..
// 1 2 3 4 5 6 7 8
- mAmps(UnicodeString("&(?:(amp;)|(lt;)|(gt;)|(apos;)|(quot;)|#x([0-9A-Fa-f]{1,8});|#([0-9]{1,8});|(.))", -1, US_INV),
+ mAmps(UnicodeString("&(?:(amp;)|(lt;)|(gt;)|(apos;)|(quot;)|#x([0-9A-Fa-f]{1,8});|#([0-9]{1,8});|(.))"),
0, status),
fNames(status),
@@ -241,7 +241,7 @@ UXMLParser::parseFile(const char *filename, UErrorCode &errorCode) {
attValue.truncate(attValue.length()-1); // and one from the end.
if(attName==UNICODE_STRING("encoding", 8)) {
- length=attValue.extract(0, 0x7fffffff, charsetBuffer, (int32_t)sizeof(charsetBuffer), US_INV);
+ length=attValue.extract(0, 0x7fffffff, charsetBuffer, (int32_t)sizeof(charsetBuffer));
charset=charsetBuffer;
break;
}
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/.cvsignore b/Build/source/libs/icu-xetex/tools/tzcode/.cvsignore
new file mode 100644
index 00000000000..632975a3a70
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/.cvsignore
@@ -0,0 +1,3 @@
+Makefile
+tz2icu
+zic
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/Makefile.in b/Build/source/libs/icu-xetex/tools/tzcode/Makefile.in
new file mode 100644
index 00000000000..af9ff6e9d0a
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/Makefile.in
@@ -0,0 +1,88 @@
+# Some Portions Copyright (c) 2006 IBM and others. All Rights Reserved.
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ../..
+
+subdir = tools/tzcode
+
+include $(top_builddir)/icudefs.mk
+
+OBJECTS= zic.o localtime.o asctime.o scheck.o ialloc.o
+TZDATA = $(firstword $(wildcard ./tzdata*.tar.gz) $(wildcard $(srcdir)/tzdata*.tar.gz))
+
+ifeq ($(TZDATA),)
+all:
+ @echo ERROR tzdata*.tar.gz can\'t be found.
+ @false
+else
+all: icu_data
+endif
+
+PRIMARY_YDATA= africa antarctica asia australasia \
+ europe northamerica southamerica
+YDATA= $(PRIMARY_YDATA) pacificnew etcetera factory backward
+NDATA= systemv
+SDATA= solar87 solar88 solar89
+TDATA= $(YDATA) $(NDATA) $(SDATA)
+YEARISTYPE= ./yearistype
+
+ZIC = ./zic
+TZDIR=zoneinfo
+
+CFLAGS+=-D_POSIX_C_SOURCE
+CPPFLAGS+= -DTZDIR=\"$(TZDIR)\"
+
+# more data
+XDATA=zone.tab yearistype.sh leapseconds iso3166.tab
+ICUDATA=ZoneMetaData.java icu_zone.txt tz2icu zoneinfo.txt
+
+
+
+zic: $(OBJECTS) yearistype $(srcdir)/tz2icu.h
+ $(CC) $(CFLAGS) $(LFLAGS) -I$(srcdir) $(OBJECTS) $(LDLIBS) -o $@
+
+tz2icu: $(srcdir)/tz2icu.cpp $(srcdir)/tz2icu.h
+ $(CXX) -W -Wall -I$(srcdir) -pedantic $(srcdir)/tz2icu.cpp -o $@
+
+yearistype.sh: $(TZDATA)
+ gunzip -d < $(TZDATA) | tar xf -
+
+yearistype: yearistype.sh
+ cp yearistype.sh yearistype
+ chmod +x yearistype
+
+tz.alias: $(srcdir)/tz.alias
+ cp $< .
+
+posix_only: zic $(TDATA)
+ $(ZIC) -y $(YEARISTYPE) -d $(TZDIR) -L /dev/null $(TDATA)
+
+
+icu_data: tz2icu posix_only tz.alias
+ ./tz2icu $(TZDIR) zone.tab `echo $(TZDATA) | sed -e "s/.*\/tzdata//;s/\.tar\.gz$$//"`
+
+clean:
+ -rm -f core *.o *.out zdump zic yearistype date
+ @echo ICU specific cleanup:
+ -rm -f $(ICUDATA)
+ -rm -rf $(TZDIR)
+ifneq ($(srcdir),.)
+ -$(RMV) tz.alias
+endif
+ifneq ($(TZDATA),)
+ -rm -rf `gunzip -d < $(TZDATA) | tar tf - | grep -o '[^ ]*$$' | tr '\n' ' '`
+endif
+
+dataclean: clean
+ -rm -f $(TDATA) $(XDATA)
+
+distclean: dataclean clean
+ -rm -f Makefile
+
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/asctime.c b/Build/source/libs/icu-xetex/tools/tzcode/asctime.c
new file mode 100644
index 00000000000..e0804f16f4d
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/asctime.c
@@ -0,0 +1,138 @@
+/*
+** This file is in the public domain, so clarified as of
+** 1996-06-05 by Arthur David Olson.
+*/
+
+/*
+** Avoid the temptation to punt entirely to strftime;
+** the output of strftime is supposed to be locale specific
+** whereas the output of asctime is supposed to be constant.
+*/
+
+#ifndef lint
+#ifndef NOID
+static char elsieid[] = "@(#)asctime.c 8.2";
+#endif /* !defined NOID */
+#endif /* !defined lint */
+
+/*LINTLIBRARY*/
+
+#include "private.h"
+#include "tzfile.h"
+
+/*
+** Some systems only handle "%.2d"; others only handle "%02d";
+** "%02.2d" makes (most) everybody happy.
+** At least some versions of gcc warn about the %02.2d;
+** we conditionalize below to avoid the warning.
+*/
+/*
+** All years associated with 32-bit time_t values are exactly four digits long;
+** some years associated with 64-bit time_t values are not.
+** Vintage programs are coded for years that are always four digits long
+** and may assume that the newline always lands in the same place.
+** For years that are less than four digits, we pad the output with
+** leading zeroes to get the newline in the traditional place.
+** The -4 ensures that we get four characters of output even if
+** we call a strftime variant that produces fewer characters for some years.
+** The ISO C 1999 and POSIX 1003.1-2004 standards prohibit padding the year,
+** but many implementations pad anyway; most likely the standards are buggy.
+*/
+#ifdef __GNUC__
+#define ASCTIME_FMT "%.3s %.3s%3d %2.2d:%2.2d:%2.2d %-4s\n"
+#else /* !defined __GNUC__ */
+#define ASCTIME_FMT "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %-4s\n"
+#endif /* !defined __GNUC__ */
+/*
+** For years that are more than four digits we put extra spaces before the year
+** so that code trying to overwrite the newline won't end up overwriting
+** a digit within a year and truncating the year (operating on the assumption
+** that no output is better than wrong output).
+*/
+#ifdef __GNUC__
+#define ASCTIME_FMT_B "%.3s %.3s%3d %2.2d:%2.2d:%2.2d %s\n"
+#else /* !defined __GNUC__ */
+#define ASCTIME_FMT_B "%.3s %.3s%3d %02.2d:%02.2d:%02.2d %s\n"
+#endif /* !defined __GNUC__ */
+
+#define STD_ASCTIME_BUF_SIZE 26
+/*
+** Big enough for something such as
+** ??? ???-2147483648 -2147483648:-2147483648:-2147483648 -2147483648\n
+** (two three-character abbreviations, five strings denoting integers,
+** seven explicit spaces, two explicit colons, a newline,
+** and a trailing ASCII nul).
+** The values above are for systems where an int is 32 bits and are provided
+** as an example; the define below calculates the maximum for the system at
+** hand.
+*/
+#define MAX_ASCTIME_BUF_SIZE (2*3+5*INT_STRLEN_MAXIMUM(int)+7+2+1+1)
+
+static char buf_asctime[MAX_ASCTIME_BUF_SIZE];
+
+/*
+** A la ISO/IEC 9945-1, ANSI/IEEE Std 1003.1, 2004 Edition.
+*/
+
+char *
+asctime_r(timeptr, buf)
+register const struct tm * timeptr;
+char * buf;
+{
+ static const char wday_name[][3] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+ };
+ static const char mon_name[][3] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+ };
+ register const char * wn;
+ register const char * mn;
+ char year[INT_STRLEN_MAXIMUM(int) + 2];
+ char result[MAX_ASCTIME_BUF_SIZE];
+
+ if (timeptr->tm_wday < 0 || timeptr->tm_wday >= DAYSPERWEEK)
+ wn = "???";
+ else wn = wday_name[timeptr->tm_wday];
+ if (timeptr->tm_mon < 0 || timeptr->tm_mon >= MONSPERYEAR)
+ mn = "???";
+ else mn = mon_name[timeptr->tm_mon];
+ /*
+ ** Use strftime's %Y to generate the year, to avoid overflow problems
+ ** when computing timeptr->tm_year + TM_YEAR_BASE.
+ ** Assume that strftime is unaffected by other out-of-range members
+ ** (e.g., timeptr->tm_mday) when processing "%Y".
+ */
+ (void) strftime(year, sizeof year, "%Y", timeptr);
+ /*
+ ** We avoid using snprintf since it's not available on all systems.
+ */
+ (void) sprintf(result,
+ ((strlen(year) <= 4) ? ASCTIME_FMT : ASCTIME_FMT_B),
+ wn, mn,
+ timeptr->tm_mday, timeptr->tm_hour,
+ timeptr->tm_min, timeptr->tm_sec,
+ year);
+ if (strlen(result) < STD_ASCTIME_BUF_SIZE || buf == buf_asctime) {
+ (void) strcpy(buf, result);
+ return buf;
+ } else {
+#ifdef EOVERFLOW
+ errno = EOVERFLOW;
+#else /* !defined EOVERFLOW */
+ errno = EINVAL;
+#endif /* !defined EOVERFLOW */
+ return NULL;
+ }
+}
+
+/*
+** A la ISO/IEC 9945-1, ANSI/IEEE Std 1003.1, 2004 Edition.
+*/
+
+char *
+asctime(timeptr)
+register const struct tm * timeptr;
+{
+ return asctime_r(timeptr, buf_asctime);
+}
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/ialloc.c b/Build/source/libs/icu-xetex/tools/tzcode/ialloc.c
new file mode 100644
index 00000000000..1fc2035f452
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/ialloc.c
@@ -0,0 +1,86 @@
+/*
+** This file is in the public domain, so clarified as of
+** 2006-07-17 by Arthur David Olson.
+*/
+
+#ifndef lint
+#ifndef NOID
+static char elsieid[] = "@(#)ialloc.c 8.30";
+#endif /* !defined NOID */
+#endif /* !defined lint */
+
+/*LINTLIBRARY*/
+
+#include "private.h"
+
+#define nonzero(n) (((n) == 0) ? 1 : (n))
+
+char *
+imalloc(n)
+const int n;
+{
+ return malloc((size_t) nonzero(n));
+}
+
+char *
+icalloc(nelem, elsize)
+int nelem;
+int elsize;
+{
+ if (nelem == 0 || elsize == 0)
+ nelem = elsize = 1;
+ return calloc((size_t) nelem, (size_t) elsize);
+}
+
+void *
+irealloc(pointer, size)
+void * const pointer;
+const int size;
+{
+ if (pointer == NULL)
+ return imalloc(size);
+ return realloc((void *) pointer, (size_t) nonzero(size));
+}
+
+char *
+icatalloc(old, new)
+char * const old;
+const char * const new;
+{
+ register char * result;
+ register int oldsize, newsize;
+
+ newsize = (new == NULL) ? 0 : strlen(new);
+ if (old == NULL)
+ oldsize = 0;
+ else if (newsize == 0)
+ return old;
+ else oldsize = strlen(old);
+ if ((result = irealloc(old, oldsize + newsize + 1)) != NULL)
+ if (new != NULL)
+ (void) strcpy(result + oldsize, new);
+ return result;
+}
+
+char *
+icpyalloc(string)
+const char * const string;
+{
+ return icatalloc((char *) NULL, string);
+}
+
+void
+ifree(p)
+char * const p;
+{
+ if (p != NULL)
+ (void) free(p);
+}
+
+void
+icfree(p)
+char * const p;
+{
+ if (p != NULL)
+ (void) free(p);
+}
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/localtime.c b/Build/source/libs/icu-xetex/tools/tzcode/localtime.c
new file mode 100644
index 00000000000..1fdfbdbb312
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/localtime.c
@@ -0,0 +1,2053 @@
+/*
+** This file is in the public domain, so clarified as of
+** 1996-06-05 by Arthur David Olson.
+*/
+
+#ifndef lint
+#ifndef NOID
+static char elsieid[] = "@(#)localtime.c 8.5";
+#endif /* !defined NOID */
+#endif /* !defined lint */
+
+/*
+** Leap second handling from Bradley White.
+** POSIX-style TZ environment variable handling from Guy Harris.
+*/
+
+/*LINTLIBRARY*/
+
+#include "private.h"
+#include "tzfile.h"
+#include "fcntl.h"
+#include "float.h" /* for FLT_MAX and DBL_MAX */
+
+#ifndef TZ_ABBR_MAX_LEN
+#define TZ_ABBR_MAX_LEN 16
+#endif /* !defined TZ_ABBR_MAX_LEN */
+
+#ifndef TZ_ABBR_CHAR_SET
+#define TZ_ABBR_CHAR_SET \
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 :+-._"
+#endif /* !defined TZ_ABBR_CHAR_SET */
+
+#ifndef TZ_ABBR_ERR_CHAR
+#define TZ_ABBR_ERR_CHAR '_'
+#endif /* !defined TZ_ABBR_ERR_CHAR */
+
+/*
+** SunOS 4.1.1 headers lack O_BINARY.
+*/
+
+#ifdef O_BINARY
+#define OPEN_MODE (O_RDONLY | O_BINARY)
+#endif /* defined O_BINARY */
+#ifndef O_BINARY
+#define OPEN_MODE O_RDONLY
+#endif /* !defined O_BINARY */
+
+#ifndef WILDABBR
+/*
+** Someone might make incorrect use of a time zone abbreviation:
+** 1. They might reference tzname[0] before calling tzset (explicitly
+** or implicitly).
+** 2. They might reference tzname[1] before calling tzset (explicitly
+** or implicitly).
+** 3. They might reference tzname[1] after setting to a time zone
+** in which Daylight Saving Time is never observed.
+** 4. They might reference tzname[0] after setting to a time zone
+** in which Standard Time is never observed.
+** 5. They might reference tm.TM_ZONE after calling offtime.
+** What's best to do in the above cases is open to debate;
+** for now, we just set things up so that in any of the five cases
+** WILDABBR is used. Another possibility: initialize tzname[0] to the
+** string "tzname[0] used before set", and similarly for the other cases.
+** And another: initialize tzname[0] to "ERA", with an explanation in the
+** manual page of what this "time zone abbreviation" means (doing this so
+** that tzname[0] has the "normal" length of three characters).
+*/
+#define WILDABBR " "
+#endif /* !defined WILDABBR */
+
+static char wildabbr[] = WILDABBR;
+
+static const char gmt[] = "GMT";
+
+/*
+** The DST rules to use if TZ has no rules and we can't load TZDEFRULES.
+** We default to US rules as of 1999-08-17.
+** POSIX 1003.1 section 8.1.1 says that the default DST rules are
+** implementation dependent; for historical reasons, US rules are a
+** common default.
+*/
+#ifndef TZDEFRULESTRING
+#define TZDEFRULESTRING ",M4.1.0,M10.5.0"
+#endif /* !defined TZDEFDST */
+
+struct ttinfo { /* time type information */
+ long tt_gmtoff; /* UTC offset in seconds */
+ int tt_isdst; /* used to set tm_isdst */
+ int tt_abbrind; /* abbreviation list index */
+ int tt_ttisstd; /* TRUE if transition is std time */
+ int tt_ttisgmt; /* TRUE if transition is UTC */
+};
+
+struct lsinfo { /* leap second information */
+ time_t ls_trans; /* transition time */
+ long ls_corr; /* correction to apply */
+};
+
+#define BIGGEST(a, b) (((a) > (b)) ? (a) : (b))
+
+#ifdef TZNAME_MAX
+#define MY_TZNAME_MAX TZNAME_MAX
+#endif /* defined TZNAME_MAX */
+#ifndef TZNAME_MAX
+#define MY_TZNAME_MAX 255
+#endif /* !defined TZNAME_MAX */
+
+struct state {
+ int leapcnt;
+ int timecnt;
+ int typecnt;
+ int charcnt;
+ int goback;
+ int goahead;
+ time_t ats[TZ_MAX_TIMES];
+ unsigned char types[TZ_MAX_TIMES];
+ struct ttinfo ttis[TZ_MAX_TYPES];
+ char chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, sizeof gmt),
+ (2 * (MY_TZNAME_MAX + 1)))];
+ struct lsinfo lsis[TZ_MAX_LEAPS];
+};
+
+struct rule {
+ int r_type; /* type of rule--see below */
+ int r_day; /* day number of rule */
+ int r_week; /* week number of rule */
+ int r_mon; /* month number of rule */
+ long r_time; /* transition time of rule */
+};
+
+#define JULIAN_DAY 0 /* Jn - Julian day */
+#define DAY_OF_YEAR 1 /* n - day of year */
+#define MONTH_NTH_DAY_OF_WEEK 2 /* Mm.n.d - month, week, day of week */
+
+/*
+** Prototypes for static functions.
+*/
+
+static long detzcode P((const char * codep));
+static time_t detzcode64 P((const char * codep));
+static int differ_by_repeat P((time_t t1, time_t t0));
+static const char * getzname P((const char * strp));
+static const char * getqzname P((const char * strp, const int delim));
+static const char * getnum P((const char * strp, int * nump, int min,
+ int max));
+static const char * getsecs P((const char * strp, long * secsp));
+static const char * getoffset P((const char * strp, long * offsetp));
+static const char * getrule P((const char * strp, struct rule * rulep));
+static void gmtload P((struct state * sp));
+static struct tm * gmtsub P((const time_t * timep, long offset,
+ struct tm * tmp));
+static struct tm * localsub P((const time_t * timep, long offset,
+ struct tm * tmp));
+static int increment_overflow P((int * number, int delta));
+static int leaps_thru_end_of P((int y));
+static int long_increment_overflow P((long * number, int delta));
+static int long_normalize_overflow P((long * tensptr,
+ int * unitsptr, int base));
+static int normalize_overflow P((int * tensptr, int * unitsptr,
+ int base));
+static void settzname P((void));
+static time_t time1 P((struct tm * tmp,
+ struct tm * (*funcp) P((const time_t *,
+ long, struct tm *)),
+ long offset));
+static time_t time2 P((struct tm *tmp,
+ struct tm * (*funcp) P((const time_t *,
+ long, struct tm*)),
+ long offset, int * okayp));
+static time_t time2sub P((struct tm *tmp,
+ struct tm * (*funcp) P((const time_t *,
+ long, struct tm*)),
+ long offset, int * okayp, int do_norm_secs));
+static struct tm * timesub P((const time_t * timep, long offset,
+ const struct state * sp, struct tm * tmp));
+static int tmcomp P((const struct tm * atmp,
+ const struct tm * btmp));
+static time_t transtime P((time_t janfirst, int year,
+ const struct rule * rulep, long offset));
+static int tzload P((const char * name, struct state * sp,
+ int doextend));
+static int tzparse P((const char * name, struct state * sp,
+ int lastditch));
+
+#ifdef ALL_STATE
+static struct state * lclptr;
+static struct state * gmtptr;
+#endif /* defined ALL_STATE */
+
+#ifndef ALL_STATE
+static struct state lclmem;
+static struct state gmtmem;
+#define lclptr (&lclmem)
+#define gmtptr (&gmtmem)
+#endif /* State Farm */
+
+#ifndef TZ_STRLEN_MAX
+#define TZ_STRLEN_MAX 255
+#endif /* !defined TZ_STRLEN_MAX */
+
+static char lcl_TZname[TZ_STRLEN_MAX + 1];
+static int lcl_is_set;
+static int gmt_is_set;
+
+char * tzname[2] = {
+ wildabbr,
+ wildabbr
+};
+
+/*
+** Section 4.12.3 of X3.159-1989 requires that
+** Except for the strftime function, these functions [asctime,
+** ctime, gmtime, localtime] return values in one of two static
+** objects: a broken-down time structure and an array of char.
+** Thanks to Paul Eggert for noting this.
+*/
+
+static struct tm tm;
+
+#ifdef USG_COMPAT
+time_t timezone = 0;
+int daylight = 0;
+#endif /* defined USG_COMPAT */
+
+#ifdef ALTZONE
+time_t altzone = 0;
+#endif /* defined ALTZONE */
+
+static long
+detzcode(codep)
+const char * const codep;
+{
+ register long result;
+ register int i;
+
+ result = (codep[0] & 0x80) ? ~0L : 0;
+ for (i = 0; i < 4; ++i)
+ result = (result << 8) | (codep[i] & 0xff);
+ return result;
+}
+
+static time_t
+detzcode64(codep)
+const char * const codep;
+{
+ register time_t result;
+ register int i;
+
+ result = (codep[0] & 0x80) ? (~(int_fast64_t) 0) : 0;
+ for (i = 0; i < 8; ++i)
+ result = result * 256 + (codep[i] & 0xff);
+ return result;
+}
+
+static void
+settzname P((void))
+{
+ register struct state * const sp = lclptr;
+ register int i;
+
+ tzname[0] = wildabbr;
+ tzname[1] = wildabbr;
+#ifdef USG_COMPAT
+ daylight = 0;
+ timezone = 0;
+#endif /* defined USG_COMPAT */
+#ifdef ALTZONE
+ altzone = 0;
+#endif /* defined ALTZONE */
+#ifdef ALL_STATE
+ if (sp == NULL) {
+ tzname[0] = tzname[1] = gmt;
+ return;
+ }
+#endif /* defined ALL_STATE */
+ for (i = 0; i < sp->typecnt; ++i) {
+ register const struct ttinfo * const ttisp = &sp->ttis[i];
+
+ tzname[ttisp->tt_isdst] =
+ &sp->chars[ttisp->tt_abbrind];
+#ifdef USG_COMPAT
+ if (ttisp->tt_isdst)
+ daylight = 1;
+ if (i == 0 || !ttisp->tt_isdst)
+ timezone = -(ttisp->tt_gmtoff);
+#endif /* defined USG_COMPAT */
+#ifdef ALTZONE
+ if (i == 0 || ttisp->tt_isdst)
+ altzone = -(ttisp->tt_gmtoff);
+#endif /* defined ALTZONE */
+ }
+ /*
+ ** And to get the latest zone names into tzname. . .
+ */
+ for (i = 0; i < sp->timecnt; ++i) {
+ register const struct ttinfo * const ttisp =
+ &sp->ttis[
+ sp->types[i]];
+
+ tzname[ttisp->tt_isdst] =
+ &sp->chars[ttisp->tt_abbrind];
+ }
+ /*
+ ** Finally, scrub the abbreviations.
+ ** First, replace bogus characters.
+ */
+ for (i = 0; i < sp->charcnt; ++i)
+ if (strchr(TZ_ABBR_CHAR_SET, sp->chars[i]) == NULL)
+ sp->chars[i] = TZ_ABBR_ERR_CHAR;
+ /*
+ ** Second, truncate long abbreviations.
+ */
+ for (i = 0; i < sp->typecnt; ++i) {
+ register const struct ttinfo * const ttisp = &sp->ttis[i];
+ register char * cp = &sp->chars[ttisp->tt_abbrind];
+
+ if (strlen(cp) > TZ_ABBR_MAX_LEN &&
+ strcmp(cp, GRANDPARENTED) != 0)
+ *(cp + TZ_ABBR_MAX_LEN) = '\0';
+ }
+}
+
+static int
+differ_by_repeat(t1, t0)
+const time_t t1;
+const time_t t0;
+{
+ if (TYPE_INTEGRAL(time_t) &&
+ TYPE_BIT(time_t) - TYPE_SIGNED(time_t) < SECSPERREPEAT_BITS)
+ return 0;
+ return t1 - t0 == SECSPERREPEAT;
+}
+
+static int
+tzload(name, sp, doextend)
+register const char * name;
+register struct state * const sp;
+register const int doextend;
+{
+ register const char * p;
+ register int i;
+ register int fid;
+ register int stored;
+ register int nread;
+ union {
+ struct tzhead tzhead;
+ char buf[2 * sizeof(struct tzhead) +
+ 2 * sizeof *sp +
+ 4 * TZ_MAX_TIMES];
+ } u;
+
+ if (name == NULL && (name = TZDEFAULT) == NULL)
+ return -1;
+ {
+ register int doaccess;
+ /*
+ ** Section 4.9.1 of the C standard says that
+ ** "FILENAME_MAX expands to an integral constant expression
+ ** that is the size needed for an array of char large enough
+ ** to hold the longest file name string that the implementation
+ ** guarantees can be opened."
+ */
+ char fullname[FILENAME_MAX + 1];
+
+ if (name[0] == ':')
+ ++name;
+ doaccess = name[0] == '/';
+ if (!doaccess) {
+ if ((p = TZDIR) == NULL)
+ return -1;
+ if ((strlen(p) + strlen(name) + 1) >= sizeof fullname)
+ return -1;
+ (void) strcpy(fullname, p);
+ (void) strcat(fullname, "/");
+ (void) strcat(fullname, name);
+ /*
+ ** Set doaccess if '.' (as in "../") shows up in name.
+ */
+ if (strchr(name, '.') != NULL)
+ doaccess = TRUE;
+ name = fullname;
+ }
+ if (doaccess && access(name, R_OK) != 0)
+ return -1;
+ if ((fid = open(name, OPEN_MODE)) == -1)
+ return -1;
+ }
+ nread = read(fid, u.buf, sizeof u.buf);
+ if (close(fid) < 0 || nread <= 0)
+ return -1;
+ for (stored = 4; stored <= 8; stored *= 2) {
+ int ttisstdcnt;
+ int ttisgmtcnt;
+
+ ttisstdcnt = (int) detzcode(u.tzhead.tzh_ttisstdcnt);
+ ttisgmtcnt = (int) detzcode(u.tzhead.tzh_ttisgmtcnt);
+ sp->leapcnt = (int) detzcode(u.tzhead.tzh_leapcnt);
+ sp->timecnt = (int) detzcode(u.tzhead.tzh_timecnt);
+ sp->typecnt = (int) detzcode(u.tzhead.tzh_typecnt);
+ sp->charcnt = (int) detzcode(u.tzhead.tzh_charcnt);
+ p = u.tzhead.tzh_charcnt + sizeof u.tzhead.tzh_charcnt;
+ if (sp->leapcnt < 0 || sp->leapcnt > TZ_MAX_LEAPS ||
+ sp->typecnt <= 0 || sp->typecnt > TZ_MAX_TYPES ||
+ sp->timecnt < 0 || sp->timecnt > TZ_MAX_TIMES ||
+ sp->charcnt < 0 || sp->charcnt > TZ_MAX_CHARS ||
+ (ttisstdcnt != sp->typecnt && ttisstdcnt != 0) ||
+ (ttisgmtcnt != sp->typecnt && ttisgmtcnt != 0))
+ return -1;
+ if (nread - (p - u.buf) <
+ sp->timecnt * stored + /* ats */
+ sp->timecnt + /* types */
+ sp->typecnt * 6 + /* ttinfos */
+ sp->charcnt + /* chars */
+ sp->leapcnt * (stored + 4) + /* lsinfos */
+ ttisstdcnt + /* ttisstds */
+ ttisgmtcnt) /* ttisgmts */
+ return -1;
+ for (i = 0; i < sp->timecnt; ++i) {
+ sp->ats[i] = (stored == 4) ?
+ detzcode(p) : detzcode64(p);
+ p += stored;
+ }
+ for (i = 0; i < sp->timecnt; ++i) {
+ sp->types[i] = (unsigned char) *p++;
+ if (sp->types[i] >= sp->typecnt)
+ return -1;
+ }
+ for (i = 0; i < sp->typecnt; ++i) {
+ register struct ttinfo * ttisp;
+
+ ttisp = &sp->ttis[i];
+ ttisp->tt_gmtoff = detzcode(p);
+ p += 4;
+ ttisp->tt_isdst = (unsigned char) *p++;
+ if (ttisp->tt_isdst != 0 && ttisp->tt_isdst != 1)
+ return -1;
+ ttisp->tt_abbrind = (unsigned char) *p++;
+ if (ttisp->tt_abbrind < 0 ||
+ ttisp->tt_abbrind > sp->charcnt)
+ return -1;
+ }
+ for (i = 0; i < sp->charcnt; ++i)
+ sp->chars[i] = *p++;
+ sp->chars[i] = '\0'; /* ensure '\0' at end */
+ for (i = 0; i < sp->leapcnt; ++i) {
+ register struct lsinfo * lsisp;
+
+ lsisp = &sp->lsis[i];
+ lsisp->ls_trans = (stored == 4) ?
+ detzcode(p) : detzcode64(p);
+ p += stored;
+ lsisp->ls_corr = detzcode(p);
+ p += 4;
+ }
+ for (i = 0; i < sp->typecnt; ++i) {
+ register struct ttinfo * ttisp;
+
+ ttisp = &sp->ttis[i];
+ if (ttisstdcnt == 0)
+ ttisp->tt_ttisstd = FALSE;
+ else {
+ ttisp->tt_ttisstd = *p++;
+ if (ttisp->tt_ttisstd != TRUE &&
+ ttisp->tt_ttisstd != FALSE)
+ return -1;
+ }
+ }
+ for (i = 0; i < sp->typecnt; ++i) {
+ register struct ttinfo * ttisp;
+
+ ttisp = &sp->ttis[i];
+ if (ttisgmtcnt == 0)
+ ttisp->tt_ttisgmt = FALSE;
+ else {
+ ttisp->tt_ttisgmt = *p++;
+ if (ttisp->tt_ttisgmt != TRUE &&
+ ttisp->tt_ttisgmt != FALSE)
+ return -1;
+ }
+ }
+ /*
+ ** Out-of-sort ats should mean we're running on a
+ ** signed time_t system but using a data file with
+ ** unsigned values (or vice versa).
+ */
+ for (i = 0; i < sp->timecnt - 2; ++i)
+ if (sp->ats[i] > sp->ats[i + 1]) {
+ ++i;
+ if (TYPE_SIGNED(time_t)) {
+ /*
+ ** Ignore the end (easy).
+ */
+ sp->timecnt = i;
+ } else {
+ /*
+ ** Ignore the beginning (harder).
+ */
+ register int j;
+
+ for (j = 0; j + i < sp->timecnt; ++j) {
+ sp->ats[j] = sp->ats[j + i];
+ sp->types[j] = sp->types[j + i];
+ }
+ sp->timecnt = j;
+ }
+ break;
+ }
+ /*
+ ** If this is an old file, we're done.
+ */
+ if (u.tzhead.tzh_version[0] == '\0')
+ break;
+ nread -= p - u.buf;
+ for (i = 0; i < nread; ++i)
+ u.buf[i] = p[i];
+ /*
+ ** If this is a narrow integer time_t system, we're done.
+ */
+ if (stored >= (int) sizeof(time_t) && TYPE_INTEGRAL(time_t))
+ break;
+ }
+ if (doextend && nread > 2 &&
+ u.buf[0] == '\n' && u.buf[nread - 1] == '\n' &&
+ sp->typecnt + 2 <= TZ_MAX_TYPES) {
+ struct state ts;
+ register int result;
+
+ u.buf[nread - 1] = '\0';
+ result = tzparse(&u.buf[1], &ts, FALSE);
+ if (result == 0 && ts.typecnt == 2 &&
+ sp->charcnt + ts.charcnt <= TZ_MAX_CHARS) {
+ for (i = 0; i < 2; ++i)
+ ts.ttis[i].tt_abbrind +=
+ sp->charcnt;
+ for (i = 0; i < ts.charcnt; ++i)
+ sp->chars[sp->charcnt++] =
+ ts.chars[i];
+ i = 0;
+ while (i < ts.timecnt &&
+ ts.ats[i] <=
+ sp->ats[sp->timecnt - 1])
+ ++i;
+ while (i < ts.timecnt &&
+ sp->timecnt < TZ_MAX_TIMES) {
+ sp->ats[sp->timecnt] =
+ ts.ats[i];
+ sp->types[sp->timecnt] =
+ sp->typecnt +
+ ts.types[i];
+ ++sp->timecnt;
+ ++i;
+ }
+ sp->ttis[sp->typecnt++] = ts.ttis[0];
+ sp->ttis[sp->typecnt++] = ts.ttis[1];
+ }
+ }
+ i = 2 * YEARSPERREPEAT;
+ sp->goback = sp->goahead = sp->timecnt > i;
+ sp->goback = sp->goback && sp->types[i] == sp->types[0] &&
+ differ_by_repeat(sp->ats[i], sp->ats[0]);
+ sp->goahead = sp->goahead &&
+ sp->types[sp->timecnt - 1] == sp->types[sp->timecnt - 1 - i] &&
+ differ_by_repeat(sp->ats[sp->timecnt - 1],
+ sp->ats[sp->timecnt - 1 - i]);
+ return 0;
+}
+
+static const int mon_lengths[2][MONSPERYEAR] = {
+ { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+ { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+};
+
+static const int year_lengths[2] = {
+ DAYSPERNYEAR, DAYSPERLYEAR
+};
+
+/*
+** Given a pointer into a time zone string, scan until a character that is not
+** a valid character in a zone name is found. Return a pointer to that
+** character.
+*/
+
+static const char *
+getzname(strp)
+register const char * strp;
+{
+ register char c;
+
+ while ((c = *strp) != '\0' && !is_digit(c) && c != ',' && c != '-' &&
+ c != '+')
+ ++strp;
+ return strp;
+}
+
+/*
+** Given a pointer into an extended time zone string, scan until the ending
+** delimiter of the zone name is located. Return a pointer to the delimiter.
+**
+** As with getzname above, the legal character set is actually quite
+** restricted, with other characters producing undefined results.
+** We don't do any checking here; checking is done later in common-case code.
+*/
+
+static const char *
+getqzname(register const char *strp, const int delim)
+{
+ register int c;
+
+ while ((c = *strp) != '\0' && c != delim)
+ ++strp;
+ return strp;
+}
+
+/*
+** Given a pointer into a time zone string, extract a number from that string.
+** Check that the number is within a specified range; if it is not, return
+** NULL.
+** Otherwise, return a pointer to the first character not part of the number.
+*/
+
+static const char *
+getnum(strp, nump, min, max)
+register const char * strp;
+int * const nump;
+const int min;
+const int max;
+{
+ register char c;
+ register int num;
+
+ if (strp == NULL || !is_digit(c = *strp))
+ return NULL;
+ num = 0;
+ do {
+ num = num * 10 + (c - '0');
+ if (num > max)
+ return NULL; /* illegal value */
+ c = *++strp;
+ } while (is_digit(c));
+ if (num < min)
+ return NULL; /* illegal value */
+ *nump = num;
+ return strp;
+}
+
+/*
+** Given a pointer into a time zone string, extract a number of seconds,
+** in hh[:mm[:ss]] form, from the string.
+** If any error occurs, return NULL.
+** Otherwise, return a pointer to the first character not part of the number
+** of seconds.
+*/
+
+static const char *
+getsecs(strp, secsp)
+register const char * strp;
+long * const secsp;
+{
+ int num;
+
+ /*
+ ** `HOURSPERDAY * DAYSPERWEEK - 1' allows quasi-Posix rules like
+ ** "M10.4.6/26", which does not conform to Posix,
+ ** but which specifies the equivalent of
+ ** ``02:00 on the first Sunday on or after 23 Oct''.
+ */
+ strp = getnum(strp, &num, 0, HOURSPERDAY * DAYSPERWEEK - 1);
+ if (strp == NULL)
+ return NULL;
+ *secsp = num * (long) SECSPERHOUR;
+ if (*strp == ':') {
+ ++strp;
+ strp = getnum(strp, &num, 0, MINSPERHOUR - 1);
+ if (strp == NULL)
+ return NULL;
+ *secsp += num * SECSPERMIN;
+ if (*strp == ':') {
+ ++strp;
+ /* `SECSPERMIN' allows for leap seconds. */
+ strp = getnum(strp, &num, 0, SECSPERMIN);
+ if (strp == NULL)
+ return NULL;
+ *secsp += num;
+ }
+ }
+ return strp;
+}
+
+/*
+** Given a pointer into a time zone string, extract an offset, in
+** [+-]hh[:mm[:ss]] form, from the string.
+** If any error occurs, return NULL.
+** Otherwise, return a pointer to the first character not part of the time.
+*/
+
+static const char *
+getoffset(strp, offsetp)
+register const char * strp;
+long * const offsetp;
+{
+ register int neg = 0;
+
+ if (*strp == '-') {
+ neg = 1;
+ ++strp;
+ } else if (*strp == '+')
+ ++strp;
+ strp = getsecs(strp, offsetp);
+ if (strp == NULL)
+ return NULL; /* illegal time */
+ if (neg)
+ *offsetp = -*offsetp;
+ return strp;
+}
+
+/*
+** Given a pointer into a time zone string, extract a rule in the form
+** date[/time]. See POSIX section 8 for the format of "date" and "time".
+** If a valid rule is not found, return NULL.
+** Otherwise, return a pointer to the first character not part of the rule.
+*/
+
+static const char *
+getrule(strp, rulep)
+const char * strp;
+register struct rule * const rulep;
+{
+ if (*strp == 'J') {
+ /*
+ ** Julian day.
+ */
+ rulep->r_type = JULIAN_DAY;
+ ++strp;
+ strp = getnum(strp, &rulep->r_day, 1, DAYSPERNYEAR);
+ } else if (*strp == 'M') {
+ /*
+ ** Month, week, day.
+ */
+ rulep->r_type = MONTH_NTH_DAY_OF_WEEK;
+ ++strp;
+ strp = getnum(strp, &rulep->r_mon, 1, MONSPERYEAR);
+ if (strp == NULL)
+ return NULL;
+ if (*strp++ != '.')
+ return NULL;
+ strp = getnum(strp, &rulep->r_week, 1, 5);
+ if (strp == NULL)
+ return NULL;
+ if (*strp++ != '.')
+ return NULL;
+ strp = getnum(strp, &rulep->r_day, 0, DAYSPERWEEK - 1);
+ } else if (is_digit(*strp)) {
+ /*
+ ** Day of year.
+ */
+ rulep->r_type = DAY_OF_YEAR;
+ strp = getnum(strp, &rulep->r_day, 0, DAYSPERLYEAR - 1);
+ } else return NULL; /* invalid format */
+ if (strp == NULL)
+ return NULL;
+ if (*strp == '/') {
+ /*
+ ** Time specified.
+ */
+ ++strp;
+ strp = getsecs(strp, &rulep->r_time);
+ } else rulep->r_time = 2 * SECSPERHOUR; /* default = 2:00:00 */
+ return strp;
+}
+
+/*
+** Given the Epoch-relative time of January 1, 00:00:00 UTC, in a year, the
+** year, a rule, and the offset from UTC at the time that rule takes effect,
+** calculate the Epoch-relative time that rule takes effect.
+*/
+
+static time_t
+transtime(janfirst, year, rulep, offset)
+const time_t janfirst;
+const int year;
+register const struct rule * const rulep;
+const long offset;
+{
+ register int leapyear;
+ register time_t value;
+ register int i;
+ int d, m1, yy0, yy1, yy2, dow;
+
+ INITIALIZE(value);
+ leapyear = isleap(year);
+ switch (rulep->r_type) {
+
+ case JULIAN_DAY:
+ /*
+ ** Jn - Julian day, 1 == January 1, 60 == March 1 even in leap
+ ** years.
+ ** In non-leap years, or if the day number is 59 or less, just
+ ** add SECSPERDAY times the day number-1 to the time of
+ ** January 1, midnight, to get the day.
+ */
+ value = janfirst + (rulep->r_day - 1) * SECSPERDAY;
+ if (leapyear && rulep->r_day >= 60)
+ value += SECSPERDAY;
+ break;
+
+ case DAY_OF_YEAR:
+ /*
+ ** n - day of year.
+ ** Just add SECSPERDAY times the day number to the time of
+ ** January 1, midnight, to get the day.
+ */
+ value = janfirst + rulep->r_day * SECSPERDAY;
+ break;
+
+ case MONTH_NTH_DAY_OF_WEEK:
+ /*
+ ** Mm.n.d - nth "dth day" of month m.
+ */
+ value = janfirst;
+ for (i = 0; i < rulep->r_mon - 1; ++i)
+ value += mon_lengths[leapyear][i] * SECSPERDAY;
+
+ /*
+ ** Use Zeller's Congruence to get day-of-week of first day of
+ ** month.
+ */
+ m1 = (rulep->r_mon + 9) % 12 + 1;
+ yy0 = (rulep->r_mon <= 2) ? (year - 1) : year;
+ yy1 = yy0 / 100;
+ yy2 = yy0 % 100;
+ dow = ((26 * m1 - 2) / 10 +
+ 1 + yy2 + yy2 / 4 + yy1 / 4 - 2 * yy1) % 7;
+ if (dow < 0)
+ dow += DAYSPERWEEK;
+
+ /*
+ ** "dow" is the day-of-week of the first day of the month. Get
+ ** the day-of-month (zero-origin) of the first "dow" day of the
+ ** month.
+ */
+ d = rulep->r_day - dow;
+ if (d < 0)
+ d += DAYSPERWEEK;
+ for (i = 1; i < rulep->r_week; ++i) {
+ if (d + DAYSPERWEEK >=
+ mon_lengths[leapyear][rulep->r_mon - 1])
+ break;
+ d += DAYSPERWEEK;
+ }
+
+ /*
+ ** "d" is the day-of-month (zero-origin) of the day we want.
+ */
+ value += d * SECSPERDAY;
+ break;
+ }
+
+ /*
+ ** "value" is the Epoch-relative time of 00:00:00 UTC on the day in
+ ** question. To get the Epoch-relative time of the specified local
+ ** time on that day, add the transition time and the current offset
+ ** from UTC.
+ */
+ return value + rulep->r_time + offset;
+}
+
+/*
+** Given a POSIX section 8-style TZ string, fill in the rule tables as
+** appropriate.
+*/
+
+static int
+tzparse(name, sp, lastditch)
+const char * name;
+register struct state * const sp;
+const int lastditch;
+{
+ const char * stdname;
+ const char * dstname;
+ size_t stdlen;
+ size_t dstlen;
+ long stdoffset;
+ long dstoffset;
+ register time_t * atp;
+ register unsigned char * typep;
+ register char * cp;
+ register int load_result;
+
+ INITIALIZE(dstname);
+ stdname = name;
+ if (lastditch) {
+ stdlen = strlen(name); /* length of standard zone name */
+ name += stdlen;
+ if (stdlen >= sizeof sp->chars)
+ stdlen = (sizeof sp->chars) - 1;
+ stdoffset = 0;
+ } else {
+ if (*name == '<') {
+ name++;
+ stdname = name;
+ name = getqzname(name, '>');
+ if (*name != '>')
+ return (-1);
+ stdlen = name - stdname;
+ name++;
+ } else {
+ name = getzname(name);
+ stdlen = name - stdname;
+ }
+ if (*name == '\0')
+ return -1;
+ name = getoffset(name, &stdoffset);
+ if (name == NULL)
+ return -1;
+ }
+ load_result = tzload(TZDEFRULES, sp, FALSE);
+ if (load_result != 0)
+ sp->leapcnt = 0; /* so, we're off a little */
+ if (*name != '\0') {
+ if (*name == '<') {
+ dstname = ++name;
+ name = getqzname(name, '>');
+ if (*name != '>')
+ return -1;
+ dstlen = name - dstname;
+ name++;
+ } else {
+ dstname = name;
+ name = getzname(name);
+ dstlen = name - dstname; /* length of DST zone name */
+ }
+ if (*name != '\0' && *name != ',' && *name != ';') {
+ name = getoffset(name, &dstoffset);
+ if (name == NULL)
+ return -1;
+ } else dstoffset = stdoffset - SECSPERHOUR;
+ if (*name == '\0' && load_result != 0)
+ name = TZDEFRULESTRING;
+ if (*name == ',' || *name == ';') {
+ struct rule start;
+ struct rule end;
+ register int year;
+ register time_t janfirst;
+ time_t starttime;
+ time_t endtime;
+
+ ++name;
+ if ((name = getrule(name, &start)) == NULL)
+ return -1;
+ if (*name++ != ',')
+ return -1;
+ if ((name = getrule(name, &end)) == NULL)
+ return -1;
+ if (*name != '\0')
+ return -1;
+ sp->typecnt = 2; /* standard time and DST */
+ /*
+ ** Two transitions per year, from EPOCH_YEAR forward.
+ */
+ sp->ttis[0].tt_gmtoff = -dstoffset;
+ sp->ttis[0].tt_isdst = 1;
+ sp->ttis[0].tt_abbrind = stdlen + 1;
+ sp->ttis[1].tt_gmtoff = -stdoffset;
+ sp->ttis[1].tt_isdst = 0;
+ sp->ttis[1].tt_abbrind = 0;
+ atp = sp->ats;
+ typep = sp->types;
+ janfirst = 0;
+ sp->timecnt = 0;
+ for (year = EPOCH_YEAR;
+ sp->timecnt + 2 <= TZ_MAX_TIMES;
+ ++year) {
+ time_t newfirst;
+
+ starttime = transtime(janfirst, year, &start,
+ stdoffset);
+ endtime = transtime(janfirst, year, &end,
+ dstoffset);
+ if (starttime > endtime) {
+ *atp++ = endtime;
+ *typep++ = 1; /* DST ends */
+ *atp++ = starttime;
+ *typep++ = 0; /* DST begins */
+ } else {
+ *atp++ = starttime;
+ *typep++ = 0; /* DST begins */
+ *atp++ = endtime;
+ *typep++ = 1; /* DST ends */
+ }
+ sp->timecnt += 2;
+ newfirst = janfirst;
+ newfirst += year_lengths[isleap(year)] *
+ SECSPERDAY;
+ if (newfirst <= janfirst)
+ break;
+ janfirst = newfirst;
+ }
+ } else {
+ register long theirstdoffset;
+ register long theirdstoffset;
+ register long theiroffset;
+ register int isdst;
+ register int i;
+ register int j;
+
+ if (*name != '\0')
+ return -1;
+ /*
+ ** Initial values of theirstdoffset and theirdstoffset.
+ */
+ theirstdoffset = 0;
+ for (i = 0; i < sp->timecnt; ++i) {
+ j = sp->types[i];
+ if (!sp->ttis[j].tt_isdst) {
+ theirstdoffset =
+ -sp->ttis[j].tt_gmtoff;
+ break;
+ }
+ }
+ theirdstoffset = 0;
+ for (i = 0; i < sp->timecnt; ++i) {
+ j = sp->types[i];
+ if (sp->ttis[j].tt_isdst) {
+ theirdstoffset =
+ -sp->ttis[j].tt_gmtoff;
+ break;
+ }
+ }
+ /*
+ ** Initially we're assumed to be in standard time.
+ */
+ isdst = FALSE;
+ theiroffset = theirstdoffset;
+ /*
+ ** Now juggle transition times and types
+ ** tracking offsets as you do.
+ */
+ for (i = 0; i < sp->timecnt; ++i) {
+ j = sp->types[i];
+ sp->types[i] = sp->ttis[j].tt_isdst;
+ if (sp->ttis[j].tt_ttisgmt) {
+ /* No adjustment to transition time */
+ } else {
+ /*
+ ** If summer time is in effect, and the
+ ** transition time was not specified as
+ ** standard time, add the summer time
+ ** offset to the transition time;
+ ** otherwise, add the standard time
+ ** offset to the transition time.
+ */
+ /*
+ ** Transitions from DST to DDST
+ ** will effectively disappear since
+ ** POSIX provides for only one DST
+ ** offset.
+ */
+ if (isdst && !sp->ttis[j].tt_ttisstd) {
+ sp->ats[i] += dstoffset -
+ theirdstoffset;
+ } else {
+ sp->ats[i] += stdoffset -
+ theirstdoffset;
+ }
+ }
+ theiroffset = -sp->ttis[j].tt_gmtoff;
+ if (sp->ttis[j].tt_isdst)
+ theirdstoffset = theiroffset;
+ else theirstdoffset = theiroffset;
+ }
+ /*
+ ** Finally, fill in ttis.
+ ** ttisstd and ttisgmt need not be handled.
+ */
+ sp->ttis[0].tt_gmtoff = -stdoffset;
+ sp->ttis[0].tt_isdst = FALSE;
+ sp->ttis[0].tt_abbrind = 0;
+ sp->ttis[1].tt_gmtoff = -dstoffset;
+ sp->ttis[1].tt_isdst = TRUE;
+ sp->ttis[1].tt_abbrind = stdlen + 1;
+ sp->typecnt = 2;
+ }
+ } else {
+ dstlen = 0;
+ sp->typecnt = 1; /* only standard time */
+ sp->timecnt = 0;
+ sp->ttis[0].tt_gmtoff = -stdoffset;
+ sp->ttis[0].tt_isdst = 0;
+ sp->ttis[0].tt_abbrind = 0;
+ }
+ sp->charcnt = stdlen + 1;
+ if (dstlen != 0)
+ sp->charcnt += dstlen + 1;
+ if ((size_t) sp->charcnt > sizeof sp->chars)
+ return -1;
+ cp = sp->chars;
+ (void) strncpy(cp, stdname, stdlen);
+ cp += stdlen;
+ *cp++ = '\0';
+ if (dstlen != 0) {
+ (void) strncpy(cp, dstname, dstlen);
+ *(cp + dstlen) = '\0';
+ }
+ return 0;
+}
+
+static void
+gmtload(sp)
+struct state * const sp;
+{
+ if (tzload(gmt, sp, TRUE) != 0)
+ (void) tzparse(gmt, sp, TRUE);
+}
+
+#ifndef STD_INSPIRED
+/*
+** A non-static declaration of tzsetwall in a system header file
+** may cause a warning about this upcoming static declaration...
+*/
+static
+#endif /* !defined STD_INSPIRED */
+void
+tzsetwall P((void))
+{
+ if (lcl_is_set < 0)
+ return;
+ lcl_is_set = -1;
+
+#ifdef ALL_STATE
+ if (lclptr == NULL) {
+ lclptr = (struct state *) malloc(sizeof *lclptr);
+ if (lclptr == NULL) {
+ settzname(); /* all we can do */
+ return;
+ }
+ }
+#endif /* defined ALL_STATE */
+ if (tzload((char *) NULL, lclptr, TRUE) != 0)
+ gmtload(lclptr);
+ settzname();
+}
+
+void
+tzset P((void))
+{
+ register const char * name;
+
+ name = getenv("TZ");
+ if (name == NULL) {
+ tzsetwall();
+ return;
+ }
+
+ if (lcl_is_set > 0 && strcmp(lcl_TZname, name) == 0)
+ return;
+ lcl_is_set = strlen(name) < sizeof lcl_TZname;
+ if (lcl_is_set)
+ (void) strcpy(lcl_TZname, name);
+
+#ifdef ALL_STATE
+ if (lclptr == NULL) {
+ lclptr = (struct state *) malloc(sizeof *lclptr);
+ if (lclptr == NULL) {
+ settzname(); /* all we can do */
+ return;
+ }
+ }
+#endif /* defined ALL_STATE */
+ if (*name == '\0') {
+ /*
+ ** User wants it fast rather than right.
+ */
+ lclptr->leapcnt = 0; /* so, we're off a little */
+ lclptr->timecnt = 0;
+ lclptr->typecnt = 0;
+ lclptr->ttis[0].tt_isdst = 0;
+ lclptr->ttis[0].tt_gmtoff = 0;
+ lclptr->ttis[0].tt_abbrind = 0;
+ (void) strcpy(lclptr->chars, gmt);
+ } else if (tzload(name, lclptr, TRUE) != 0)
+ if (name[0] == ':' || tzparse(name, lclptr, FALSE) != 0)
+ (void) gmtload(lclptr);
+ settzname();
+}
+
+/*
+** The easy way to behave "as if no library function calls" localtime
+** is to not call it--so we drop its guts into "localsub", which can be
+** freely called. (And no, the PANS doesn't require the above behavior--
+** but it *is* desirable.)
+**
+** The unused offset argument is for the benefit of mktime variants.
+*/
+
+/*ARGSUSED*/
+static struct tm *
+localsub(timep, offset, tmp)
+const time_t * const timep;
+const long offset;
+struct tm * const tmp;
+{
+ register struct state * sp;
+ register const struct ttinfo * ttisp;
+ register int i;
+ register struct tm * result;
+ const time_t t = *timep;
+
+ sp = lclptr;
+#ifdef ALL_STATE
+ if (sp == NULL)
+ return gmtsub(timep, offset, tmp);
+#endif /* defined ALL_STATE */
+ if ((sp->goback && t < sp->ats[0]) ||
+ (sp->goahead && t > sp->ats[sp->timecnt - 1])) {
+ time_t newt = t;
+ register time_t seconds;
+ register time_t tcycles;
+ register int_fast64_t icycles;
+
+ if (t < sp->ats[0])
+ seconds = sp->ats[0] - t;
+ else seconds = t - sp->ats[sp->timecnt - 1];
+ --seconds;
+ tcycles = seconds / YEARSPERREPEAT / AVGSECSPERYEAR;
+ ++tcycles;
+ icycles = tcycles;
+ if (tcycles - icycles >= 1 || icycles - tcycles >= 1)
+ return NULL;
+ seconds = icycles;
+ seconds *= YEARSPERREPEAT;
+ seconds *= AVGSECSPERYEAR;
+ if (t < sp->ats[0])
+ newt += seconds;
+ else newt -= seconds;
+ if (newt < sp->ats[0] ||
+ newt > sp->ats[sp->timecnt - 1])
+ return NULL; /* "cannot happen" */
+ result = localsub(&newt, offset, tmp);
+ if (result == tmp) {
+ register time_t newy;
+
+ newy = tmp->tm_year;
+ if (t < sp->ats[0])
+ newy -= icycles * YEARSPERREPEAT;
+ else newy += icycles * YEARSPERREPEAT;
+ tmp->tm_year = newy;
+ if (tmp->tm_year != newy)
+ return NULL;
+ }
+ return result;
+ }
+ if (sp->timecnt == 0 || t < sp->ats[0]) {
+ i = 0;
+ while (sp->ttis[i].tt_isdst)
+ if (++i >= sp->typecnt) {
+ i = 0;
+ break;
+ }
+ } else {
+ register int lo = 1;
+ register int hi = sp->timecnt;
+
+ while (lo < hi) {
+ register int mid = (lo + hi) >> 1;
+
+ if (t < sp->ats[mid])
+ hi = mid;
+ else lo = mid + 1;
+ }
+ i = (int) sp->types[lo - 1];
+ }
+ ttisp = &sp->ttis[i];
+ /*
+ ** To get (wrong) behavior that's compatible with System V Release 2.0
+ ** you'd replace the statement below with
+ ** t += ttisp->tt_gmtoff;
+ ** timesub(&t, 0L, sp, tmp);
+ */
+ result = timesub(&t, ttisp->tt_gmtoff, sp, tmp);
+ tmp->tm_isdst = ttisp->tt_isdst;
+ tzname[tmp->tm_isdst] = &sp->chars[ttisp->tt_abbrind];
+#ifdef TM_ZONE
+ tmp->TM_ZONE = &sp->chars[ttisp->tt_abbrind];
+#endif /* defined TM_ZONE */
+ return result;
+}
+
+struct tm *
+localtime(timep)
+const time_t * const timep;
+{
+ tzset();
+ return localsub(timep, 0L, &tm);
+}
+
+/*
+** Re-entrant version of localtime.
+*/
+
+struct tm *
+localtime_r(timep, tmp)
+const time_t * const timep;
+struct tm * tmp;
+{
+ return localsub(timep, 0L, tmp);
+}
+
+/*
+** gmtsub is to gmtime as localsub is to localtime.
+*/
+
+static struct tm *
+gmtsub(timep, offset, tmp)
+const time_t * const timep;
+const long offset;
+struct tm * const tmp;
+{
+ register struct tm * result;
+
+ if (!gmt_is_set) {
+ gmt_is_set = TRUE;
+#ifdef ALL_STATE
+ gmtptr = (struct state *) malloc(sizeof *gmtptr);
+ if (gmtptr != NULL)
+#endif /* defined ALL_STATE */
+ gmtload(gmtptr);
+ }
+ result = timesub(timep, offset, gmtptr, tmp);
+#ifdef TM_ZONE
+ /*
+ ** Could get fancy here and deliver something such as
+ ** "UTC+xxxx" or "UTC-xxxx" if offset is non-zero,
+ ** but this is no time for a treasure hunt.
+ */
+ if (offset != 0)
+ tmp->TM_ZONE = wildabbr;
+ else {
+#ifdef ALL_STATE
+ if (gmtptr == NULL)
+ tmp->TM_ZONE = gmt;
+ else tmp->TM_ZONE = gmtptr->chars;
+#endif /* defined ALL_STATE */
+#ifndef ALL_STATE
+ tmp->TM_ZONE = gmtptr->chars;
+#endif /* State Farm */
+ }
+#endif /* defined TM_ZONE */
+ return result;
+}
+
+struct tm *
+gmtime(timep)
+const time_t * const timep;
+{
+ return gmtsub(timep, 0L, &tm);
+}
+
+/*
+* Re-entrant version of gmtime.
+*/
+
+struct tm *
+gmtime_r(timep, tmp)
+const time_t * const timep;
+struct tm * tmp;
+{
+ return gmtsub(timep, 0L, tmp);
+}
+
+#ifdef STD_INSPIRED
+
+struct tm *
+offtime(timep, offset)
+const time_t * const timep;
+const long offset;
+{
+ return gmtsub(timep, offset, &tm);
+}
+
+#endif /* defined STD_INSPIRED */
+
+/*
+** Return the number of leap years through the end of the given year
+** where, to make the math easy, the answer for year zero is defined as zero.
+*/
+
+static int
+leaps_thru_end_of(y)
+register const int y;
+{
+ return (y >= 0) ? (y / 4 - y / 100 + y / 400) :
+ -(leaps_thru_end_of(-(y + 1)) + 1);
+}
+
+static struct tm *
+timesub(timep, offset, sp, tmp)
+const time_t * const timep;
+const long offset;
+register const struct state * const sp;
+register struct tm * const tmp;
+{
+ register const struct lsinfo * lp;
+ register time_t tdays;
+ register int idays; /* unsigned would be so 2003 */
+ register long rem;
+ int y;
+ register const int * ip;
+ register long corr;
+ register int hit;
+ register int i;
+
+ corr = 0;
+ hit = 0;
+#ifdef ALL_STATE
+ i = (sp == NULL) ? 0 : sp->leapcnt;
+#endif /* defined ALL_STATE */
+#ifndef ALL_STATE
+ i = sp->leapcnt;
+#endif /* State Farm */
+ while (--i >= 0) {
+ lp = &sp->lsis[i];
+ if (*timep >= lp->ls_trans) {
+ if (*timep == lp->ls_trans) {
+ hit = ((i == 0 && lp->ls_corr > 0) ||
+ lp->ls_corr > sp->lsis[i - 1].ls_corr);
+ if (hit)
+ while (i > 0 &&
+ sp->lsis[i].ls_trans ==
+ sp->lsis[i - 1].ls_trans + 1 &&
+ sp->lsis[i].ls_corr ==
+ sp->lsis[i - 1].ls_corr + 1) {
+ ++hit;
+ --i;
+ }
+ }
+ corr = lp->ls_corr;
+ break;
+ }
+ }
+ y = EPOCH_YEAR;
+ tdays = *timep / SECSPERDAY;
+ rem = *timep - tdays * SECSPERDAY;
+ while (tdays < 0 || tdays >= year_lengths[isleap(y)]) {
+ int newy;
+ register time_t tdelta;
+ register int idelta;
+ register int leapdays;
+
+ tdelta = tdays / DAYSPERLYEAR;
+ idelta = tdelta;
+ if (tdelta - idelta >= 1 || idelta - tdelta >= 1)
+ return NULL;
+ if (idelta == 0)
+ idelta = (tdays < 0) ? -1 : 1;
+ newy = y;
+ if (increment_overflow(&newy, idelta))
+ return NULL;
+ leapdays = leaps_thru_end_of(newy - 1) -
+ leaps_thru_end_of(y - 1);
+ tdays -= ((time_t) newy - y) * DAYSPERNYEAR;
+ tdays -= leapdays;
+ y = newy;
+ }
+ {
+ register long seconds;
+
+ seconds = tdays * SECSPERDAY + 0.5;
+ tdays = seconds / SECSPERDAY;
+ rem += seconds - tdays * SECSPERDAY;
+ }
+ /*
+ ** Given the range, we can now fearlessly cast...
+ */
+ idays = tdays;
+ rem += offset - corr;
+ while (rem < 0) {
+ rem += SECSPERDAY;
+ --idays;
+ }
+ while (rem >= SECSPERDAY) {
+ rem -= SECSPERDAY;
+ ++idays;
+ }
+ while (idays < 0) {
+ if (increment_overflow(&y, -1))
+ return NULL;
+ idays += year_lengths[isleap(y)];
+ }
+ while (idays >= year_lengths[isleap(y)]) {
+ idays -= year_lengths[isleap(y)];
+ if (increment_overflow(&y, 1))
+ return NULL;
+ }
+ tmp->tm_year = y;
+ if (increment_overflow(&tmp->tm_year, -TM_YEAR_BASE))
+ return NULL;
+ tmp->tm_yday = idays;
+ /*
+ ** The "extra" mods below avoid overflow problems.
+ */
+ tmp->tm_wday = EPOCH_WDAY +
+ ((y - EPOCH_YEAR) % DAYSPERWEEK) *
+ (DAYSPERNYEAR % DAYSPERWEEK) +
+ leaps_thru_end_of(y - 1) -
+ leaps_thru_end_of(EPOCH_YEAR - 1) +
+ idays;
+ tmp->tm_wday %= DAYSPERWEEK;
+ if (tmp->tm_wday < 0)
+ tmp->tm_wday += DAYSPERWEEK;
+ tmp->tm_hour = (int) (rem / SECSPERHOUR);
+ rem %= SECSPERHOUR;
+ tmp->tm_min = (int) (rem / SECSPERMIN);
+ /*
+ ** A positive leap second requires a special
+ ** representation. This uses "... ??:59:60" et seq.
+ */
+ tmp->tm_sec = (int) (rem % SECSPERMIN) + hit;
+ ip = mon_lengths[isleap(y)];
+ for (tmp->tm_mon = 0; idays >= ip[tmp->tm_mon]; ++(tmp->tm_mon))
+ idays -= ip[tmp->tm_mon];
+ tmp->tm_mday = (int) (idays + 1);
+ tmp->tm_isdst = 0;
+#ifdef TM_GMTOFF
+ tmp->TM_GMTOFF = offset;
+#endif /* defined TM_GMTOFF */
+ return tmp;
+}
+
+char *
+ctime(timep)
+const time_t * const timep;
+{
+/*
+** Section 4.12.3.2 of X3.159-1989 requires that
+** The ctime function converts the calendar time pointed to by timer
+** to local time in the form of a string. It is equivalent to
+** asctime(localtime(timer))
+*/
+ return asctime(localtime(timep));
+}
+
+char *
+ctime_r(timep, buf)
+const time_t * const timep;
+char * buf;
+{
+ struct tm mytm;
+
+ return asctime_r(localtime_r(timep, &mytm), buf);
+}
+
+/*
+** Adapted from code provided by Robert Elz, who writes:
+** The "best" way to do mktime I think is based on an idea of Bob
+** Kridle's (so its said...) from a long time ago.
+** It does a binary search of the time_t space. Since time_t's are
+** just 32 bits, its a max of 32 iterations (even at 64 bits it
+** would still be very reasonable).
+*/
+
+#ifndef WRONG
+#define WRONG (-1)
+#endif /* !defined WRONG */
+
+/*
+** Simplified normalize logic courtesy Paul Eggert.
+*/
+
+static int
+increment_overflow(number, delta)
+int * number;
+int delta;
+{
+ int number0;
+
+ number0 = *number;
+ *number += delta;
+ return (*number < number0) != (delta < 0);
+}
+
+static int
+long_increment_overflow(number, delta)
+long * number;
+int delta;
+{
+ long number0;
+
+ number0 = *number;
+ *number += delta;
+ return (*number < number0) != (delta < 0);
+}
+
+static int
+normalize_overflow(tensptr, unitsptr, base)
+int * const tensptr;
+int * const unitsptr;
+const int base;
+{
+ register int tensdelta;
+
+ tensdelta = (*unitsptr >= 0) ?
+ (*unitsptr / base) :
+ (-1 - (-1 - *unitsptr) / base);
+ *unitsptr -= tensdelta * base;
+ return increment_overflow(tensptr, tensdelta);
+}
+
+static int
+long_normalize_overflow(tensptr, unitsptr, base)
+long * const tensptr;
+int * const unitsptr;
+const int base;
+{
+ register int tensdelta;
+
+ tensdelta = (*unitsptr >= 0) ?
+ (*unitsptr / base) :
+ (-1 - (-1 - *unitsptr) / base);
+ *unitsptr -= tensdelta * base;
+ return long_increment_overflow(tensptr, tensdelta);
+}
+
+static int
+tmcomp(atmp, btmp)
+register const struct tm * const atmp;
+register const struct tm * const btmp;
+{
+ register int result;
+
+ if ((result = (atmp->tm_year - btmp->tm_year)) == 0 &&
+ (result = (atmp->tm_mon - btmp->tm_mon)) == 0 &&
+ (result = (atmp->tm_mday - btmp->tm_mday)) == 0 &&
+ (result = (atmp->tm_hour - btmp->tm_hour)) == 0 &&
+ (result = (atmp->tm_min - btmp->tm_min)) == 0)
+ result = atmp->tm_sec - btmp->tm_sec;
+ return result;
+}
+
+static time_t
+time2sub(tmp, funcp, offset, okayp, do_norm_secs)
+struct tm * const tmp;
+struct tm * (* const funcp) P((const time_t*, long, struct tm*));
+const long offset;
+int * const okayp;
+const int do_norm_secs;
+{
+ register const struct state * sp;
+ register int dir;
+ register int i, j;
+ register int saved_seconds;
+ register long li;
+ register time_t lo;
+ register time_t hi;
+ long y;
+ time_t newt;
+ time_t t;
+ struct tm yourtm, mytm;
+
+ *okayp = FALSE;
+ yourtm = *tmp;
+ if (do_norm_secs) {
+ if (normalize_overflow(&yourtm.tm_min, &yourtm.tm_sec,
+ SECSPERMIN))
+ return WRONG;
+ }
+ if (normalize_overflow(&yourtm.tm_hour, &yourtm.tm_min, MINSPERHOUR))
+ return WRONG;
+ if (normalize_overflow(&yourtm.tm_mday, &yourtm.tm_hour, HOURSPERDAY))
+ return WRONG;
+ y = yourtm.tm_year;
+ if (long_normalize_overflow(&y, &yourtm.tm_mon, MONSPERYEAR))
+ return WRONG;
+ /*
+ ** Turn y into an actual year number for now.
+ ** It is converted back to an offset from TM_YEAR_BASE later.
+ */
+ if (long_increment_overflow(&y, TM_YEAR_BASE))
+ return WRONG;
+ while (yourtm.tm_mday <= 0) {
+ if (long_increment_overflow(&y, -1))
+ return WRONG;
+ li = y + (1 < yourtm.tm_mon);
+ yourtm.tm_mday += year_lengths[isleap(li)];
+ }
+ while (yourtm.tm_mday > DAYSPERLYEAR) {
+ li = y + (1 < yourtm.tm_mon);
+ yourtm.tm_mday -= year_lengths[isleap(li)];
+ if (long_increment_overflow(&y, 1))
+ return WRONG;
+ }
+ for ( ; ; ) {
+ i = mon_lengths[isleap(y)][yourtm.tm_mon];
+ if (yourtm.tm_mday <= i)
+ break;
+ yourtm.tm_mday -= i;
+ if (++yourtm.tm_mon >= MONSPERYEAR) {
+ yourtm.tm_mon = 0;
+ if (long_increment_overflow(&y, 1))
+ return WRONG;
+ }
+ }
+ if (long_increment_overflow(&y, -TM_YEAR_BASE))
+ return WRONG;
+ yourtm.tm_year = y;
+ if (yourtm.tm_year != y)
+ return WRONG;
+ if (yourtm.tm_sec >= 0 && yourtm.tm_sec < SECSPERMIN)
+ saved_seconds = 0;
+ else if (y + TM_YEAR_BASE < EPOCH_YEAR) {
+ /*
+ ** We can't set tm_sec to 0, because that might push the
+ ** time below the minimum representable time.
+ ** Set tm_sec to 59 instead.
+ ** This assumes that the minimum representable time is
+ ** not in the same minute that a leap second was deleted from,
+ ** which is a safer assumption than using 58 would be.
+ */
+ if (increment_overflow(&yourtm.tm_sec, 1 - SECSPERMIN))
+ return WRONG;
+ saved_seconds = yourtm.tm_sec;
+ yourtm.tm_sec = SECSPERMIN - 1;
+ } else {
+ saved_seconds = yourtm.tm_sec;
+ yourtm.tm_sec = 0;
+ }
+ /*
+ ** Do a binary search (this works whatever time_t's type is).
+ */
+ if (!TYPE_SIGNED(time_t)) {
+ lo = 0;
+ hi = lo - 1;
+ } else if (!TYPE_INTEGRAL(time_t)) {
+ if (sizeof(time_t) > sizeof(float))
+ hi = (time_t) DBL_MAX;
+ else hi = (time_t) FLT_MAX;
+ lo = -hi;
+ } else {
+ lo = 1;
+ for (i = 0; i < (int) TYPE_BIT(time_t) - 1; ++i)
+ lo *= 2;
+ hi = -(lo + 1);
+ }
+ for ( ; ; ) {
+ t = lo / 2 + hi / 2;
+ if (t < lo)
+ t = lo;
+ else if (t > hi)
+ t = hi;
+ if ((*funcp)(&t, offset, &mytm) == NULL) {
+ /*
+ ** Assume that t is too extreme to be represented in
+ ** a struct tm; arrange things so that it is less
+ ** extreme on the next pass.
+ */
+ dir = (t > 0) ? 1 : -1;
+ } else dir = tmcomp(&mytm, &yourtm);
+ if (dir != 0) {
+ if (t == lo) {
+ ++t;
+ if (t <= lo)
+ return WRONG;
+ ++lo;
+ } else if (t == hi) {
+ --t;
+ if (t >= hi)
+ return WRONG;
+ --hi;
+ }
+ if (lo > hi)
+ return WRONG;
+ if (dir > 0)
+ hi = t;
+ else lo = t;
+ continue;
+ }
+ if (yourtm.tm_isdst < 0 || mytm.tm_isdst == yourtm.tm_isdst)
+ break;
+ /*
+ ** Right time, wrong type.
+ ** Hunt for right time, right type.
+ ** It's okay to guess wrong since the guess
+ ** gets checked.
+ */
+ /*
+ ** The (void *) casts are the benefit of SunOS 3.3 on Sun 2's.
+ */
+ sp = (const struct state *)
+ (((void *) funcp == (void *) localsub) ?
+ lclptr : gmtptr);
+#ifdef ALL_STATE
+ if (sp == NULL)
+ return WRONG;
+#endif /* defined ALL_STATE */
+ for (i = sp->typecnt - 1; i >= 0; --i) {
+ if (sp->ttis[i].tt_isdst != yourtm.tm_isdst)
+ continue;
+ for (j = sp->typecnt - 1; j >= 0; --j) {
+ if (sp->ttis[j].tt_isdst == yourtm.tm_isdst)
+ continue;
+ newt = t + sp->ttis[j].tt_gmtoff -
+ sp->ttis[i].tt_gmtoff;
+ if ((*funcp)(&newt, offset, &mytm) == NULL)
+ continue;
+ if (tmcomp(&mytm, &yourtm) != 0)
+ continue;
+ if (mytm.tm_isdst != yourtm.tm_isdst)
+ continue;
+ /*
+ ** We have a match.
+ */
+ t = newt;
+ goto label;
+ }
+ }
+ return WRONG;
+ }
+label:
+ newt = t + saved_seconds;
+ if ((newt < t) != (saved_seconds < 0))
+ return WRONG;
+ t = newt;
+ if ((*funcp)(&t, offset, tmp))
+ *okayp = TRUE;
+ return t;
+}
+
+static time_t
+time2(tmp, funcp, offset, okayp)
+struct tm * const tmp;
+struct tm * (* const funcp) P((const time_t*, long, struct tm*));
+const long offset;
+int * const okayp;
+{
+ time_t t;
+
+ /*
+ ** First try without normalization of seconds
+ ** (in case tm_sec contains a value associated with a leap second).
+ ** If that fails, try with normalization of seconds.
+ */
+ t = time2sub(tmp, funcp, offset, okayp, FALSE);
+ return *okayp ? t : time2sub(tmp, funcp, offset, okayp, TRUE);
+}
+
+static time_t
+time1(tmp, funcp, offset)
+struct tm * const tmp;
+struct tm * (* const funcp) P((const time_t *, long, struct tm *));
+const long offset;
+{
+ register time_t t;
+ register const struct state * sp;
+ register int samei, otheri;
+ register int sameind, otherind;
+ register int i;
+ register int nseen;
+ int seen[TZ_MAX_TYPES];
+ int types[TZ_MAX_TYPES];
+ int okay;
+
+ if (tmp->tm_isdst > 1)
+ tmp->tm_isdst = 1;
+ t = time2(tmp, funcp, offset, &okay);
+#ifdef PCTS
+ /*
+ ** PCTS code courtesy Grant Sullivan.
+ */
+ if (okay)
+ return t;
+ if (tmp->tm_isdst < 0)
+ tmp->tm_isdst = 0; /* reset to std and try again */
+#endif /* defined PCTS */
+#ifndef PCTS
+ if (okay || tmp->tm_isdst < 0)
+ return t;
+#endif /* !defined PCTS */
+ /*
+ ** We're supposed to assume that somebody took a time of one type
+ ** and did some math on it that yielded a "struct tm" that's bad.
+ ** We try to divine the type they started from and adjust to the
+ ** type they need.
+ */
+ /*
+ ** The (void *) casts are the benefit of SunOS 3.3 on Sun 2's.
+ */
+ sp = (const struct state *) (((void *) funcp == (void *) localsub) ?
+ lclptr : gmtptr);
+#ifdef ALL_STATE
+ if (sp == NULL)
+ return WRONG;
+#endif /* defined ALL_STATE */
+ for (i = 0; i < sp->typecnt; ++i)
+ seen[i] = FALSE;
+ nseen = 0;
+ for (i = sp->timecnt - 1; i >= 0; --i)
+ if (!seen[sp->types[i]]) {
+ seen[sp->types[i]] = TRUE;
+ types[nseen++] = sp->types[i];
+ }
+ for (sameind = 0; sameind < nseen; ++sameind) {
+ samei = types[sameind];
+ if (sp->ttis[samei].tt_isdst != tmp->tm_isdst)
+ continue;
+ for (otherind = 0; otherind < nseen; ++otherind) {
+ otheri = types[otherind];
+ if (sp->ttis[otheri].tt_isdst == tmp->tm_isdst)
+ continue;
+ tmp->tm_sec += sp->ttis[otheri].tt_gmtoff -
+ sp->ttis[samei].tt_gmtoff;
+ tmp->tm_isdst = !tmp->tm_isdst;
+ t = time2(tmp, funcp, offset, &okay);
+ if (okay)
+ return t;
+ tmp->tm_sec -= sp->ttis[otheri].tt_gmtoff -
+ sp->ttis[samei].tt_gmtoff;
+ tmp->tm_isdst = !tmp->tm_isdst;
+ }
+ }
+ return WRONG;
+}
+
+time_t
+mktime(tmp)
+struct tm * const tmp;
+{
+ tzset();
+ return time1(tmp, localsub, 0L);
+}
+
+#ifdef STD_INSPIRED
+
+time_t
+timelocal(tmp)
+struct tm * const tmp;
+{
+ tmp->tm_isdst = -1; /* in case it wasn't initialized */
+ return mktime(tmp);
+}
+
+time_t
+timegm(tmp)
+struct tm * const tmp;
+{
+ tmp->tm_isdst = 0;
+ return time1(tmp, gmtsub, 0L);
+}
+
+time_t
+timeoff(tmp, offset)
+struct tm * const tmp;
+const long offset;
+{
+ tmp->tm_isdst = 0;
+ return time1(tmp, gmtsub, offset);
+}
+
+#endif /* defined STD_INSPIRED */
+
+#ifdef CMUCS
+
+/*
+** The following is supplied for compatibility with
+** previous versions of the CMUCS runtime library.
+*/
+
+long
+gtime(tmp)
+struct tm * const tmp;
+{
+ const time_t t = mktime(tmp);
+
+ if (t == WRONG)
+ return -1;
+ return t;
+}
+
+#endif /* defined CMUCS */
+
+/*
+** XXX--is the below the right way to conditionalize??
+*/
+
+#ifdef STD_INSPIRED
+
+/*
+** IEEE Std 1003.1-1988 (POSIX) legislates that 536457599
+** shall correspond to "Wed Dec 31 23:59:59 UTC 1986", which
+** is not the case if we are accounting for leap seconds.
+** So, we provide the following conversion routines for use
+** when exchanging timestamps with POSIX conforming systems.
+*/
+
+static long
+leapcorr(timep)
+time_t * timep;
+{
+ register struct state * sp;
+ register struct lsinfo * lp;
+ register int i;
+
+ sp = lclptr;
+ i = sp->leapcnt;
+ while (--i >= 0) {
+ lp = &sp->lsis[i];
+ if (*timep >= lp->ls_trans)
+ return lp->ls_corr;
+ }
+ return 0;
+}
+
+time_t
+time2posix(t)
+time_t t;
+{
+ tzset();
+ return t - leapcorr(&t);
+}
+
+time_t
+posix2time(t)
+time_t t;
+{
+ time_t x;
+ time_t y;
+
+ tzset();
+ /*
+ ** For a positive leap second hit, the result
+ ** is not unique. For a negative leap second
+ ** hit, the corresponding time doesn't exist,
+ ** so we return an adjacent second.
+ */
+ x = t + leapcorr(&t);
+ y = x - leapcorr(&x);
+ if (y < t) {
+ do {
+ x++;
+ y = x - leapcorr(&x);
+ } while (y < t);
+ if (t != y)
+ return x - 1;
+ } else if (y > t) {
+ do {
+ --x;
+ y = x - leapcorr(&x);
+ } while (y > t);
+ if (t != y)
+ return x + 1;
+ }
+ return x;
+}
+
+#endif /* defined STD_INSPIRED */
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/patch-icu-tzcode b/Build/source/libs/icu-xetex/tools/tzcode/patch-icu-tzcode
deleted file mode 100644
index ca514eafa15..00000000000
--- a/Build/source/libs/icu-xetex/tools/tzcode/patch-icu-tzcode
+++ /dev/null
@@ -1,475 +0,0 @@
-diff -ur ../tzcode.orig/Makefile ./Makefile
---- ../tzcode.orig/Makefile 2005-06-13 11:33:54.000000000 -0700
-+++ ./Makefile 2005-06-30 16:14:15.000000000 -0700
-@@ -40,7 +40,7 @@
- # (and subdirectories).
- # Use an absolute path name for TZDIR unless you're just testing the software.
-
--TZDIR= $(TOPDIR)/etc/zoneinfo
-+TZDIR= zoneinfo
-
- # The "tzselect", "zic", and "zdump" commands get installed in. . .
-
-@@ -240,9 +240,11 @@
-
- ###############################################################################
-
--cc= cc
-+cc= gcc
- CC= $(cc) -DTZDIR=\"$(TZDIR)\"
-
-+CPP= g++
-+
- TZCSRCS= zic.c localtime.c asctime.c scheck.c ialloc.c
- TZCOBJS= zic.o localtime.o asctime.o scheck.o ialloc.o
- TZDSRCS= zdump.c localtime.c ialloc.c
-@@ -276,7 +278,10 @@
-
- SHELL= /bin/sh
-
--all: tzselect zic zdump $(LIBOBJS)
-+LS= /bin/ls
-+SED= /bin/sed
-+
-+all: tzselect zic zdump $(LIBOBJS) tz2icu
-
- ALL: all date
-
-@@ -309,9 +314,12 @@
- zdump: $(TZDOBJS)
- $(CC) $(CFLAGS) $(LFLAGS) $(TZDOBJS) $(LDLIBS) -o $@
-
--zic: $(TZCOBJS) yearistype
-+zic: $(TZCOBJS) yearistype tz2icu.h
- $(CC) $(CFLAGS) $(LFLAGS) $(TZCOBJS) $(LDLIBS) -o $@
-
-+tz2icu: tz2icu.cpp tz2icu.h
-+ $(CPP) -W -Wall -pedantic tz2icu.cpp -o $@
-+
- yearistype: yearistype.sh
- cp yearistype.sh yearistype
- chmod +x yearistype
-@@ -322,6 +330,9 @@
- right_only: zic leapseconds $(TDATA)
- $(ZIC) -y $(YEARISTYPE) -d $(TZDIR) -L leapseconds $(TDATA)
-
-+icu_data: tz2icu posix_only
-+ ./tz2icu zoneinfo zone.tab `$(LS) tzdata*.tar.gz | $(SED) -e "s/^tzdata//;s/\.tar\.gz$$//"`
-+
- # In earlier versions of this makefile, the other two directories were
- # subdirectories of $(TZDIR). However, this led to configuration errors.
- # For example, with posix_right under the earlier scheme,
-diff -ur ../tzcode.orig/zic.c ./zic.c
---- ../tzcode.orig/zic.c 2005-05-26 11:54:07.000000000 -0700
-+++ ./zic.c 2005-06-30 16:39:56.000000000 -0700
-@@ -23,6 +23,20 @@
- #define MKDIR_UMASK 0755
- #endif
-
-+/* Enable extensions and modifications for ICU. */
-+#define ICU
-+
-+/* Continue executing after link failure. Even if ICU is undefined
-+ * (for vanilla zic behavior), ICU_LINKS should be defined, since zic
-+ * appears to fail on the 2003 data the first time through during the
-+ * linking phase. Running zic twice, with ICU_LINKS defined, causes
-+ * links to be handled correctly. */
-+#define ICU_LINKS
-+
-+#ifdef ICU
-+#include "tz2icu.h"
-+#endif
-+
- /*
- ** On some ancient hosts, predicates like `isspace(C)' are defined
- ** only if isascii(C) || C == EOF. Modern hosts obey the C Standard,
-@@ -96,8 +110,14 @@
- extern int optind;
-
- static void addtt P((zic_t starttime, int type));
-+#ifdef ICU
-+static int addtype P((long gmtoff, long rawoff, long dstoff,
-+ const char * abbr, int isdst,
-+ int ttisstd, int ttisgmt));
-+#else
- static int addtype P((long gmtoff, const char * abbr, int isdst,
- int ttisstd, int ttisgmt));
-+#endif
- static void leapadd P((zic_t t, int positive, int rolling, int count));
- static void adjleap P((void));
- static void associate P((void));
-@@ -266,6 +286,18 @@
- const int l_value;
- };
-
-+#ifdef ICU
-+
-+/* Indices into rules[] for final rules. They will occur in pairs,
-+ * with finalRules[i] occurring before finalRules[i+1] in the year.
-+ * Each zone need only store a start year, a standard offset, and an
-+ * index into finalRules[]. FinalRules[] are aliases into rules[]. */
-+
-+static const struct rule ** finalRules;
-+static int finalRulesCount;
-+
-+#endif
-+
- static struct lookup const * byword P((const char * string,
- const struct lookup * lp));
-
-@@ -348,6 +380,11 @@
- unsigned char type;
- } attypes[TZ_MAX_TIMES];
- static long gmtoffs[TZ_MAX_TYPES];
-+#ifdef ICU
-+/* gmtoffs[i] = rawoffs[i] + dstoffs[i] */
-+static long rawoffs[TZ_MAX_TYPES];
-+static long dstoffs[TZ_MAX_TYPES];
-+#endif
- static char isdsts[TZ_MAX_TYPES];
- static unsigned char abbrinds[TZ_MAX_TYPES];
- static char ttisstds[TZ_MAX_TYPES];
-@@ -459,6 +496,62 @@
- (void) exit(EXIT_FAILURE);
- }
-
-+#ifdef ICU
-+
-+/* File into which we will write supplemental ICU data. */
-+static FILE * icuFile;
-+
-+void emit_icu_zone(FILE* f, const char* zoneName, int zoneOffset,
-+ const struct rule* rule,
-+ int ruleIndex, int startYear) {
-+ /* machine-readable section */
-+ fprintf(f, "zone %s %d %d %s", zoneName, zoneOffset, startYear, rule->r_name);
-+
-+ /* human-readable section */
-+ fprintf(f, " # zone %s, offset %d, year >= %d, rule %s (%d)\n",
-+ zoneName, zoneOffset, startYear,
-+ rule->r_name, ruleIndex);
-+}
-+
-+void emit_icu_link(FILE* f, const char* from, const char* to) {
-+ /* machine-readable section */
-+ fprintf(f, "link %s %s\n", from, to);
-+}
-+
-+static const char* DYCODE[] = {"DOM", "DOWGEQ", "DOWLEQ"};
-+
-+void emit_icu_rule(FILE* f, const struct rule* r, int ruleIndex) {
-+ if (r->r_yrtype != NULL) {
-+ warning("year types not supported by ICU");
-+ fprintf(stderr, "rule %s, file %s, line %d\n",
-+ r->r_name, r->r_filename, r->r_linenum);
-+ }
-+
-+ /* machine-readable section */
-+ fprintf(f, "rule %s %s %d %d %d %d %d %d %d",
-+ r->r_name, DYCODE[r->r_dycode],
-+ r->r_month, r->r_dayofmonth,
-+ (r->r_dycode == DC_DOM ? -1 : r->r_wday),
-+ r->r_tod, r->r_todisstd, r->r_todisgmt, r->r_stdoff
-+ );
-+
-+ /* human-readable section */
-+ fprintf(f, " # %d: %s, file %s, line %d",
-+ ruleIndex, r->r_name, r->r_filename, r->r_linenum);
-+ fprintf(f, ", mode %s", DYCODE[r->r_dycode]);
-+ fprintf(f, ", %s, dom %d", mon_names[r->r_month].l_word, r->r_dayofmonth);
-+ if (r->r_dycode != DC_DOM) {
-+ fprintf(f, ", %s", wday_names[r->r_wday].l_word);
-+ }
-+ fprintf(f, ", time %d", r->r_tod);
-+ fprintf(f, ", isstd %d", r->r_todisstd);
-+ fprintf(f, ", isgmt %d", r->r_todisgmt);
-+ fprintf(f, ", offset %ld", r->r_stdoff);
-+ fprintf(f, "\n");
-+}
-+
-+#endif
-+
- static const char * psxrules;
- static const char * lcltime;
- static const char * directory;
-@@ -566,6 +659,14 @@
- adjleap();
- }
-
-+#ifdef ICU
-+ if ((icuFile = fopen(ICU_ZONE_FILE, "w")) == NULL) {
-+ const char *e = strerror(errno);
-+ (void) fprintf(stderr, _("%s: Can't open %s: %s\n"),
-+ progname, ICU_ZONE_FILE, e);
-+ (void) exit(EXIT_FAILURE);
-+ }
-+#endif
- for (i = optind; i < argc; ++i)
- infile(argv[i]);
- if (errors)
-@@ -585,6 +686,9 @@
- for (i = 0; i < nlinks; ++i) {
- eat(links[i].l_filename, links[i].l_linenum);
- dolink(links[i].l_from, links[i].l_to);
-+#ifdef ICU
-+ emit_icu_link(icuFile, links[i].l_from, links[i].l_to);
-+#endif
- if (noise)
- for (j = 0; j < nlinks; ++j)
- if (strcmp(links[i].l_to,
-@@ -599,6 +703,11 @@
- eat("command line", 1);
- dolink(psxrules, TZDEFRULES);
- }
-+#ifdef ICU
-+ for (i=0; i<finalRulesCount; ++i) {
-+ emit_icu_rule(icuFile, finalRules[i], i);
-+ }
-+#endif /*ICU*/
- return (errors == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
- }
-
-@@ -664,7 +773,9 @@
- (void) fprintf(stderr,
- _("%s: Can't link from %s to %s: %s\n"),
- progname, fromname, toname, e);
-+#ifndef ICU_LINKS
- (void) exit(EXIT_FAILURE);
-+#endif
- }
- }
- ifree(fromname);
-@@ -1539,7 +1650,12 @@
- convert(eitol(timecnt), tzh.tzh_timecnt);
- convert(eitol(typecnt), tzh.tzh_typecnt);
- convert(eitol(charcnt), tzh.tzh_charcnt);
-+#ifdef ICU
-+ * (ICUZoneinfoVersion*) &tzh.tzh_reserved = TZ_ICU_VERSION;
-+ (void) strncpy(tzh.tzh_magic, TZ_ICU_MAGIC, sizeof tzh.tzh_magic);
-+#else
- (void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
-+#endif
- #define DO(field) (void) fwrite((void *) tzh.field, \
- (size_t) sizeof tzh.field, (size_t) 1, fp)
- DO(tzh_magic);
-@@ -1564,7 +1680,12 @@
- (void) fwrite((void *) types, (size_t) sizeof types[0],
- (size_t) timecnt, fp);
- for (i = 0; i < typecnt; ++i) {
-+#ifdef ICU
-+ puttzcode((long) rawoffs[i], fp);
-+ puttzcode((long) dstoffs[i], fp);
-+#else
- puttzcode((long) gmtoffs[i], fp);
-+#endif
- (void) putc(isdsts[i], fp);
- (void) putc(abbrinds[i], fp);
- }
-@@ -1620,6 +1741,24 @@
- }
- }
-
-+#ifdef ICU
-+
-+int add_icu_final_rules(const struct rule* r1, const struct rule* r2) {
-+ int i;
-+
-+ for (i=0; i<finalRulesCount; ++i) { /* i+=2 should work too */
-+ if (r1==finalRules[i]) return i; /* [sic] pointer comparison */
-+ }
-+
-+ finalRules = (const struct rule**) (void*) erealloc((char *) finalRules,
-+ (finalRulesCount + 2) * sizeof(*finalRules));
-+ finalRules[finalRulesCount++] = r1;
-+ finalRules[finalRulesCount++] = r2;
-+ return finalRulesCount - 2;
-+}
-+
-+#endif /*ICU*/
-+
- static void
- outzone(zpfirst, zonecount)
- const struct zone * const zpfirst;
-@@ -1638,6 +1777,11 @@
- register int startttisgmt;
- register int type;
- char startbuf[BUFSIZ];
-+#ifdef ICU
-+ int finalRuleYear, finalRuleIndex;
-+ const struct rule* finalRule1;
-+ const struct rule* finalRule2;
-+#endif
-
- INITIALIZE(untiltime);
- INITIALIZE(starttime);
-@@ -1667,11 +1811,55 @@
- eat(zp->z_filename, zp->z_linenum);
- *startbuf = '\0';
- startoff = zp->z_gmtoff;
-+#ifdef ICU
-+ finalRuleYear = finalRuleIndex = -1;
-+ finalRule1 = finalRule2 = NULL;
-+ if (i == (zonecount - 1)) { /* !useuntil */
-+ /* Look for exactly 2 rules that end at 'max' and
-+ * note them. Determine max(r_loyear) for the 2 of
-+ * them. */
-+ for (j=0; j<zp->z_nrules; ++j) {
-+ rp = &zp->z_rules[j];
-+ if (rp->r_hiyear == INT_MAX) {
-+ if (finalRule1 == NULL) {
-+ finalRule1 = rp;
-+ finalRuleYear = rp->r_loyear;
-+ } else if (finalRule2 == NULL) {
-+ finalRule2 = rp;
-+ if (rp->r_loyear > finalRuleYear) {
-+ finalRuleYear = rp->r_loyear;
-+ }
-+ } else {
-+ error("more than two max rules found (ICU)");
-+ exit(EXIT_FAILURE);
-+ }
-+ }
-+ }
-+ if (finalRule1 != NULL && finalRule2 == NULL) {
-+ error("only one max rule found (ICU)");
-+ exit(EXIT_FAILURE);
-+ }
-+ if (finalRule1 != NULL) {
-+ /* Swap if necessary so finalRule1 occurs before
-+ * finalRule2 */
-+ if (finalRule1->r_month > finalRule2->r_month) {
-+ const struct rule* t = finalRule1;
-+ finalRule1 = finalRule2;
-+ finalRule2 = t;
-+ }
-+ /* Add final rule to our list */
-+ finalRuleIndex = add_icu_final_rules(finalRule1, finalRule2);
-+ }
-+ }
-+#endif
- if (zp->z_nrules == 0) {
- stdoff = zp->z_stdoff;
- doabbr(startbuf, zp->z_format,
- (char *) NULL, stdoff != 0);
- type = addtype(oadd(zp->z_gmtoff, stdoff),
-+#ifdef ICU
-+ zp->z_gmtoff, stdoff,
-+#endif
- startbuf, stdoff != 0, startttisstd,
- startttisgmt);
- if (usestart) {
-@@ -1745,6 +1933,15 @@
- break; /* go on to next year */
- rp = &zp->z_rules[k];
- rp->r_todo = FALSE;
-+#ifdef ICU
-+ if (year >= finalRuleYear && rp == finalRule1) {
-+ emit_icu_zone(icuFile,
-+ zpfirst->z_name, zp->z_gmtoff,
-+ rp, finalRuleIndex, year);
-+ /* only emit this for the first year */
-+ finalRule1 = NULL;
-+ }
-+#endif
- if (useuntil && ktime >= untiltime)
- break;
- stdoff = rp->r_stdoff;
-@@ -1773,8 +1970,14 @@
- doabbr(buf, zp->z_format, rp->r_abbrvar,
- rp->r_stdoff != 0);
- offset = oadd(zp->z_gmtoff, rp->r_stdoff);
-+#ifdef ICU
-+ type = addtype(offset, zp->z_gmtoff, rp->r_stdoff,
-+ buf, rp->r_stdoff != 0,
-+ rp->r_todisstd, rp->r_todisgmt);
-+#else
- type = addtype(offset, buf, rp->r_stdoff != 0,
- rp->r_todisstd, rp->r_todisgmt);
-+#endif
- addtt(ktime, type);
- }
- }
-@@ -1788,10 +1991,19 @@
- if (*startbuf == '\0')
- error(_("can't determine time zone abbreviation to use just after until time"));
- else addtt(starttime,
-+#ifdef ICU
-+ addtype(startoff,
-+ zp->z_gmtoff, startoff - zp->z_gmtoff,
-+ startbuf,
-+ startoff != zp->z_gmtoff,
-+ startttisstd,
-+ startttisgmt));
-+#else
- addtype(startoff, startbuf,
- startoff != zp->z_gmtoff,
- startttisstd,
- startttisgmt));
-+#endif
- }
- /*
- ** Now we may get to set starttime for the next zone line.
-@@ -1817,6 +2029,10 @@
- if (starttime <= min_time ||
- (timecnt == 1 && attypes[0].at < min_time)) {
- gmtoffs[0] = gmtoffs[type];
-+#ifdef ICU
-+ rawoffs[0] = rawoffs[type];
-+ dstoffs[0] = dstoffs[type];
-+#endif
- isdsts[0] = isdsts[type];
- ttisstds[0] = ttisstds[type];
- ttisgmts[0] = ttisgmts[type];
-@@ -1838,8 +2054,15 @@
- }
-
- static int
-+#ifdef ICU
-+addtype(gmtoff, rawoff, dstoff, abbr, isdst, ttisstd, ttisgmt)
-+const long gmtoff;
-+const long rawoff;
-+const long dstoff;
-+#else
- addtype(gmtoff, abbr, isdst, ttisstd, ttisgmt)
- const long gmtoff;
-+#endif
- const char * const abbr;
- const int isdst;
- const int ttisstd;
-@@ -1859,12 +2082,25 @@
- error(_("internal error - addtype called with bad ttisgmt"));
- (void) exit(EXIT_FAILURE);
- }
-+#ifdef ICU
-+ if (isdst != (dstoff != 0)) {
-+ error(_("internal error - addtype called with bad isdst/dstoff"));
-+ (void) exit(EXIT_FAILURE);
-+ }
-+ if (gmtoff != (rawoff + dstoff)) {
-+ error(_("internal error - addtype called with bad gmt/raw/dstoff"));
-+ (void) exit(EXIT_FAILURE);
-+ }
-+#endif
- /*
- ** See if there's already an entry for this zone type.
- ** If so, just return its index.
- */
- for (i = 0; i < typecnt; ++i) {
- if (gmtoff == gmtoffs[i] && isdst == isdsts[i] &&
-+#ifdef ICU
-+ rawoff == rawoffs[i] && dstoff == dstoffs[i] &&
-+#endif
- strcmp(abbr, &chars[abbrinds[i]]) == 0 &&
- ttisstd == ttisstds[i] &&
- ttisgmt == ttisgmts[i])
-@@ -1879,6 +2115,10 @@
- (void) exit(EXIT_FAILURE);
- }
- gmtoffs[i] = gmtoff;
-+#ifdef ICU
-+ rawoffs[i] = rawoff;
-+ dstoffs[i] = dstoff;
-+#endif
- isdsts[i] = isdst;
- ttisstds[i] = ttisstd;
- ttisgmts[i] = ttisgmt;
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/private.h b/Build/source/libs/icu-xetex/tools/tzcode/private.h
new file mode 100644
index 00000000000..2837b70c101
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/private.h
@@ -0,0 +1,368 @@
+#ifndef PRIVATE_H
+
+#define PRIVATE_H
+
+/*
+** This file is in the public domain, so clarified as of
+** 1996-06-05 by Arthur David Olson.
+*/
+
+/*
+** This header is for use ONLY with the time conversion code.
+** There is no guarantee that it will remain unchanged,
+** or that it will remain at all.
+** Do NOT copy it to any system include directory.
+** Thank you!
+*/
+
+/*
+** ID
+*/
+
+#ifndef lint
+#ifndef NOID
+static char privatehid[] = "@(#)private.h 8.2";
+#endif /* !defined NOID */
+#endif /* !defined lint */
+
+#define GRANDPARENTED "Local time zone must be set--see zic manual page"
+
+/*
+** Defaults for preprocessor symbols.
+** You can override these in your C compiler options, e.g. `-DHAVE_ADJTIME=0'.
+*/
+
+#ifndef HAVE_ADJTIME
+#define HAVE_ADJTIME 1
+#endif /* !defined HAVE_ADJTIME */
+
+#ifndef HAVE_GETTEXT
+#define HAVE_GETTEXT 0
+#endif /* !defined HAVE_GETTEXT */
+
+#ifndef HAVE_INCOMPATIBLE_CTIME_R
+#define HAVE_INCOMPATIBLE_CTIME_R 0
+#endif /* !defined INCOMPATIBLE_CTIME_R */
+
+#ifndef HAVE_SETTIMEOFDAY
+#define HAVE_SETTIMEOFDAY 3
+#endif /* !defined HAVE_SETTIMEOFDAY */
+
+#ifndef HAVE_STRERROR
+#define HAVE_STRERROR 1
+#endif /* !defined HAVE_STRERROR */
+
+#ifndef HAVE_SYMLINK
+#define HAVE_SYMLINK 1
+#endif /* !defined HAVE_SYMLINK */
+
+#ifndef HAVE_SYS_STAT_H
+#define HAVE_SYS_STAT_H 1
+#endif /* !defined HAVE_SYS_STAT_H */
+
+#ifndef HAVE_SYS_WAIT_H
+#define HAVE_SYS_WAIT_H 1
+#endif /* !defined HAVE_SYS_WAIT_H */
+
+#ifndef HAVE_UNISTD_H
+#define HAVE_UNISTD_H 1
+#endif /* !defined HAVE_UNISTD_H */
+
+#ifndef HAVE_UTMPX_H
+#define HAVE_UTMPX_H 0
+#endif /* !defined HAVE_UTMPX_H */
+
+#ifndef LOCALE_HOME
+#define LOCALE_HOME "/usr/lib/locale"
+#endif /* !defined LOCALE_HOME */
+
+#if HAVE_INCOMPATIBLE_CTIME_R
+#define asctime_r _incompatible_asctime_r
+#define ctime_r _incompatible_ctime_r
+#endif /* HAVE_INCOMPATIBLE_CTIME_R */
+
+/*
+** Nested includes
+*/
+
+#include "sys/types.h" /* for time_t */
+#include "stdio.h"
+#include "errno.h"
+#include "string.h"
+#include "limits.h" /* for CHAR_BIT et al. */
+#include "time.h"
+#include "stdlib.h"
+
+#if HAVE_GETTEXT
+#include "libintl.h"
+#endif /* HAVE_GETTEXT */
+
+#if HAVE_SYS_WAIT_H
+#include <sys/wait.h> /* for WIFEXITED and WEXITSTATUS */
+#endif /* HAVE_SYS_WAIT_H */
+
+#ifndef WIFEXITED
+#define WIFEXITED(status) (((status) & 0xff) == 0)
+#endif /* !defined WIFEXITED */
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(status) (((status) >> 8) & 0xff)
+#endif /* !defined WEXITSTATUS */
+
+#if HAVE_UNISTD_H
+#include "unistd.h" /* for F_OK and R_OK */
+#endif /* HAVE_UNISTD_H */
+
+#if !HAVE_UNISTD_H
+#ifndef F_OK
+#define F_OK 0
+#endif /* !defined F_OK */
+#ifndef R_OK
+#define R_OK 4
+#endif /* !defined R_OK */
+#endif /* !HAVE_UNISTD_H */
+
+/* Unlike <ctype.h>'s isdigit, this also works if c < 0 | c > UCHAR_MAX. */
+#define is_digit(c) ((unsigned)(c) - '0' <= 9)
+
+/*
+** Define HAVE_STDINT_H's default value here, rather than at the
+** start, since __GLIBC__'s value depends on previously-included
+** files.
+** (glibc 2.1 and later have stdint.h, even with pre-C99 compilers.)
+*/
+#ifndef HAVE_STDINT_H
+#define HAVE_STDINT_H \
+ (199901 <= __STDC_VERSION__ || \
+ 2 < (__GLIBC__ + (0 < __GLIBC_MINOR__)))
+#endif /* !defined HAVE_STDINT_H */
+
+#if HAVE_STDINT_H
+#include "stdint.h"
+#endif /* !HAVE_STDINT_H */
+
+#ifndef INT_FAST64_MAX
+/* Pre-C99 GCC compilers define __LONG_LONG_MAX__ instead of LLONG_MAX. */
+#if defined LLONG_MAX || defined __LONG_LONG_MAX__
+typedef long long int_fast64_t;
+#else /* ! (defined LLONG_MAX || defined __LONG_LONG_MAX__) */
+#if (LONG_MAX >> 31) < 0xffffffff
+Please use a compiler that supports a 64-bit integer type (or wider);
+you may need to compile with "-DHAVE_STDINT_H".
+#endif /* (LONG_MAX >> 31) < 0xffffffff */
+typedef long int_fast64_t;
+#endif /* ! (defined LLONG_MAX || defined __LONG_LONG_MAX__) */
+#endif /* !defined INT_FAST64_MAX */
+
+#ifndef INT32_MAX
+#define INT32_MAX 0x7fffffff
+#endif /* !defined INT32_MAX */
+#ifndef INT32_MIN
+#define INT32_MIN (-1 - INT32_MAX)
+#endif /* !defined INT32_MIN */
+
+/*
+** Workarounds for compilers/systems.
+*/
+
+/*
+** If your compiler lacks prototypes, "#define P(x) ()".
+*/
+
+#ifndef P
+#define P(x) x
+#endif /* !defined P */
+
+/*
+** SunOS 4.1.1 headers lack EXIT_SUCCESS.
+*/
+
+#ifndef EXIT_SUCCESS
+#define EXIT_SUCCESS 0
+#endif /* !defined EXIT_SUCCESS */
+
+/*
+** SunOS 4.1.1 headers lack EXIT_FAILURE.
+*/
+
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif /* !defined EXIT_FAILURE */
+
+/*
+** SunOS 4.1.1 headers lack FILENAME_MAX.
+*/
+
+#ifndef FILENAME_MAX
+
+#ifndef MAXPATHLEN
+#ifdef unix
+#include "sys/param.h"
+#endif /* defined unix */
+#endif /* !defined MAXPATHLEN */
+
+#ifdef MAXPATHLEN
+#define FILENAME_MAX MAXPATHLEN
+#endif /* defined MAXPATHLEN */
+#ifndef MAXPATHLEN
+#define FILENAME_MAX 1024 /* Pure guesswork */
+#endif /* !defined MAXPATHLEN */
+
+#endif /* !defined FILENAME_MAX */
+
+/*
+** SunOS 4.1.1 libraries lack remove.
+*/
+
+#ifndef remove
+extern int unlink P((const char * filename));
+#define remove unlink
+#endif /* !defined remove */
+
+/*
+** Some ancient errno.h implementations don't declare errno.
+** But some newer errno.h implementations define it as a macro.
+** Fix the former without affecting the latter.
+*/
+
+#ifndef errno
+extern int errno;
+#endif /* !defined errno */
+
+/*
+** Some time.h implementations don't declare asctime_r.
+** Others might define it as a macro.
+** Fix the former without affecting the latter.
+*/
+
+#ifndef asctime_r
+extern char * asctime_r();
+#endif
+
+/*
+** Private function declarations.
+*/
+
+char * icalloc P((int nelem, int elsize));
+char * icatalloc P((char * old, const char * new));
+char * icpyalloc P((const char * string));
+char * imalloc P((int n));
+void * irealloc P((void * pointer, int size));
+void icfree P((char * pointer));
+void ifree P((char * pointer));
+const char * scheck P((const char * string, const char * format));
+
+/*
+** Finally, some convenience items.
+*/
+
+#ifndef TRUE
+#define TRUE 1
+#endif /* !defined TRUE */
+
+#ifndef FALSE
+#define FALSE 0
+#endif /* !defined FALSE */
+
+#ifndef TYPE_BIT
+#define TYPE_BIT(type) (sizeof (type) * CHAR_BIT)
+#endif /* !defined TYPE_BIT */
+
+#ifndef TYPE_SIGNED
+#define TYPE_SIGNED(type) (((type) -1) < 0)
+#endif /* !defined TYPE_SIGNED */
+
+/*
+** Since the definition of TYPE_INTEGRAL contains floating point numbers,
+** it cannot be used in preprocessor directives.
+*/
+
+#ifndef TYPE_INTEGRAL
+#define TYPE_INTEGRAL(type) (((type) 0.5) != 0.5)
+#endif /* !defined TYPE_INTEGRAL */
+
+#ifndef INT_STRLEN_MAXIMUM
+/*
+** 302 / 1000 is log10(2.0) rounded up.
+** Subtract one for the sign bit if the type is signed;
+** add one for integer division truncation;
+** add one more for a minus sign if the type is signed.
+*/
+#define INT_STRLEN_MAXIMUM(type) \
+ ((TYPE_BIT(type) - TYPE_SIGNED(type)) * 302 / 1000 + \
+ 1 + TYPE_SIGNED(type))
+#endif /* !defined INT_STRLEN_MAXIMUM */
+
+/*
+** INITIALIZE(x)
+*/
+
+#ifndef GNUC_or_lint
+#ifdef lint
+#define GNUC_or_lint
+#endif /* defined lint */
+#ifndef lint
+#ifdef __GNUC__
+#define GNUC_or_lint
+#endif /* defined __GNUC__ */
+#endif /* !defined lint */
+#endif /* !defined GNUC_or_lint */
+
+#ifndef INITIALIZE
+#ifdef GNUC_or_lint
+#define INITIALIZE(x) ((x) = 0)
+#endif /* defined GNUC_or_lint */
+#ifndef GNUC_or_lint
+#define INITIALIZE(x)
+#endif /* !defined GNUC_or_lint */
+#endif /* !defined INITIALIZE */
+
+/*
+** For the benefit of GNU folk...
+** `_(MSGID)' uses the current locale's message library string for MSGID.
+** The default is to use gettext if available, and use MSGID otherwise.
+*/
+
+#ifndef _
+#if HAVE_GETTEXT
+#define _(msgid) gettext(msgid)
+#else /* !HAVE_GETTEXT */
+#define _(msgid) msgid
+#endif /* !HAVE_GETTEXT */
+#endif /* !defined _ */
+
+#ifndef TZ_DOMAIN
+#define TZ_DOMAIN "tz"
+#endif /* !defined TZ_DOMAIN */
+
+#if HAVE_INCOMPATIBLE_CTIME_R
+#undef asctime_r
+#undef ctime_r
+char *asctime_r P((struct tm const *, char *));
+char *ctime_r P((time_t const *, char *));
+#endif /* HAVE_INCOMPATIBLE_CTIME_R */
+
+#ifndef YEARSPERREPEAT
+#define YEARSPERREPEAT 400 /* years before a Gregorian repeat */
+#endif /* !defined YEARSPERREPEAT */
+
+/*
+** The Gregorian year averages 365.2425 days, which is 31556952 seconds.
+*/
+
+#ifndef AVGSECSPERYEAR
+#define AVGSECSPERYEAR 31556952L
+#endif /* !defined AVGSECSPERYEAR */
+
+#ifndef SECSPERREPEAT
+#define SECSPERREPEAT ((int_fast64_t) YEARSPERREPEAT * (int_fast64_t) AVGSECSPERYEAR)
+#endif /* !defined SECSPERREPEAT */
+
+#ifndef SECSPERREPEAT_BITS
+#define SECSPERREPEAT_BITS 34 /* ceil(log2(SECSPERREPEAT)) */
+#endif /* !defined SECSPERREPEAT_BITS */
+
+/*
+** UNIX was a registered trademark of The Open Group in 2003.
+*/
+
+#endif /* !defined PRIVATE_H */
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/readme.txt b/Build/source/libs/icu-xetex/tools/tzcode/readme.txt
index 2558608d65b..656a64887bf 100644
--- a/Build/source/libs/icu-xetex/tools/tzcode/readme.txt
+++ b/Build/source/libs/icu-xetex/tools/tzcode/readme.txt
@@ -1,5 +1,5 @@
**********************************************************************
-* Copyright (c) 2003-2005, International Business Machines
+* Copyright (c) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -7,6 +7,10 @@
* Since: ICU 2.8
**********************************************************************
+Note: this directory currently contains tzcode as of tzcode2006h.tar.gz
+ with localtime.c patches from tzcode2006i.tar.gz
+
+
----------------------------------------------------------------------
OVERVIEW
@@ -56,91 +60,29 @@ several parts. E.g.:
tzcode2003a.tar.gz 98 KB 3/24/2003 2:32:00 PM
tzdata2003a.tar.gz 132 KB 3/24/2003 2:32:00 PM
-ICU only uses the tzcodeYYYYV.tar.gz and tzdataYYYYV.tar.gz files,
+ICU only uses the tzdataYYYYV.tar.gz files,
where YYYY is the year and V is the version letter ('a'...'z').
+This directory has partial contents of tzcode checked into ICU
+
----------------------------------------------------------------------
HOWTO
-1. Obtain the current versions of tzcodeYYYYV.tar.gz (aka `tzcode')
- and tzdataYYYYV.tar.gz (aka `tzdata') from the FTP site given
+0. Note, these instructions will only work on POSIX type systems.
+
+1. Obtain the current versions of tzdataYYYYV.tar.gz (aka `tzdata') from the FTP site given
above. Either manually download or use wget:
$ cd {path_to}/icu/source/tools/tzcode
- $ wget "ftp://elsie.nci.nih.gov/pub/tz*.tar.gz"
+ $ wget "ftp://elsie.nci.nih.gov/pub/tzdata*.tar.gz"
-2. Unpack tzcode and tzdata directly into the directory tzcode:
-
- $ tar xzvf tzcode*.tar.gz
- $ tar xzvf tzdata*.tar.gz
+2. copy only one tzdata*.tar.gz file into the icu/source/data/in/ directory (you may have to create this directory)
*** Make sure you only have ONE FILE named tzdata*.tar.gz in the
directory.
- *** Do NOT delete the tzdata*.tar.gz file.
-
- The Makefile looks in the current directory to determine the
- version of Olson data it is building by looking for tzdata*.tar.gz.
-
-3. Apply the ICU patch to zic.c:
-
- $ patch < patch-icu-tzcode
-
- If patch complains at this point, there is a mismatch that must be
- manually addressed. See the CVS log of `patch-icu-tzcode' for
- version details.
-
-4. Build:
-
- $ make icu_data
-
-5. Copy the data files to the correct location in the ICU4C/ICU4J
- source trees:
-
- $ cp zoneinfo.txt ../../../data/misc/
- $ cp ZoneMetaData.java {path_to}/icu4j/src/com/ibm/icu/impl
-
-6. Rebuild ICU:
- $ cd ../../../
- $ {*make}
+3. Build ICU normally. You will see a notice "updating zoneinfo.txt..."
-7. Don't forget to check in the new zoneinfo.txt (from its location at
+4. For ICU maintainers, don't forget to check in the new
+ zoneinfo.txt (from its location at
{path_to}/icu/source/data/misc/zoneinfo.txt) into CVS.
-
-----------------------------------------------------------------------
-HOWTO regenerate patch-icu-tzcode
-
-If you need to edit any of the tzcode* files, you will need to
-regenerate the patch file as follows.
-
-1. Follow the above instructions to extract and patch the tzcode*
- files in {path_to}/icu/source/tools/tzcode. Modify any of the
- tzcode files.
-
-2. Extract a clean set of the tzcode* files into a new directory,
- ../tzcode.orig/:
-
- $ mkdir ../tzcode.orig
- $ cd ../tzcode.orig
- $ tar xzf ../tzcode/tzcode*.tar.gz
- $ cd ../tzcode
-
-3. Compute diffs, ignoring files that are in only one directory:
-
- $ diff -ur ../tzcode.orig . | grep -vE -e "^Only in " > patch-icu-tzcode
-
-4. Test the patch-icu-tzcode file by regenerating and diffing the
- files again in another directory. The expected output from the
- final diff command is *nothing*.
-
- $ mkdir ../tzcode.new
- $ cd ../tzcode.new
- $ tar xzf ../tzcode/tzcode*.tar.gz
- $ patch < ../tzcode/patch-icu-tzcode
- $ cd ../tzcode
- $ diff -ur ../tzcode.new . | grep -vE -e "^Only in "
-
-5. Check in the new patch-icu-tzcode file.
-
-----------------------------------------------------------------------
-eof
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/scheck.c b/Build/source/libs/icu-xetex/tools/tzcode/scheck.c
new file mode 100644
index 00000000000..74d9b07c149
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/scheck.c
@@ -0,0 +1,63 @@
+/*
+** This file is in the public domain, so clarified as of
+** 2006-07-17 by Arthur David Olson.
+*/
+
+#ifndef lint
+#ifndef NOID
+static char elsieid[] = "@(#)scheck.c 8.19";
+#endif /* !defined lint */
+#endif /* !defined NOID */
+
+/*LINTLIBRARY*/
+
+#include "private.h"
+
+const char *
+scheck(string, format)
+const char * const string;
+const char * const format;
+{
+ register char * fbuf;
+ register const char * fp;
+ register char * tp;
+ register int c;
+ register const char * result;
+ char dummy;
+
+ result = "";
+ if (string == NULL || format == NULL)
+ return result;
+ fbuf = imalloc((int) (2 * strlen(format) + 4));
+ if (fbuf == NULL)
+ return result;
+ fp = format;
+ tp = fbuf;
+ while ((*tp++ = c = *fp++) != '\0') {
+ if (c != '%')
+ continue;
+ if (*fp == '%') {
+ *tp++ = *fp++;
+ continue;
+ }
+ *tp++ = '*';
+ if (*fp == '*')
+ ++fp;
+ while (is_digit(*fp))
+ *tp++ = *fp++;
+ if (*fp == 'l' || *fp == 'h')
+ *tp++ = *fp++;
+ else if (*fp == '[')
+ do *tp++ = *fp++;
+ while (*fp != '\0' && *fp != ']');
+ if ((*tp++ = *fp++) == '\0')
+ break;
+ }
+ *(tp - 1) = '%';
+ *tp++ = 'c';
+ *tp = '\0';
+ if (sscanf(string, fbuf, &dummy) != 1)
+ result = (char *) format;
+ ifree(fbuf);
+ return result;
+}
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/tz.alias b/Build/source/libs/icu-xetex/tools/tzcode/tz.alias
index ed5199eb305..4494b2934ff 100644
--- a/Build/source/libs/icu-xetex/tools/tzcode/tz.alias
+++ b/Build/source/libs/icu-xetex/tools/tzcode/tz.alias
@@ -1,5 +1,5 @@
######################################################################
-# Copyright (C) 1999-2004, International Business Machines
+# Copyright (C) 1999-2006, International Business Machines
# Corporation and others. All Rights Reserved.
######################################################################
# A simple alias list. We use this to retain backward compatibility.
@@ -29,7 +29,7 @@ EAT Africa/Addis_Ababa
ECT Europe/Paris
# EET Europe/Istanbul # EET is a standard UNIX zone
#### EST America/New_York # Linked to America/Indianapolis in Olson
-# HST Pacific/Honolulu # Olson LINK
+HST Pacific/Honolulu # Olson LINK - was removed 2005-Nov-21, confirmed gone in 2006a.
IET America/Indianapolis
IST Asia/Calcutta
JST Asia/Tokyo
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/tz2icu.cpp b/Build/source/libs/icu-xetex/tools/tzcode/tz2icu.cpp
index 91d634db23a..a60f39065b9 100644
--- a/Build/source/libs/icu-xetex/tools/tzcode/tz2icu.cpp
+++ b/Build/source/libs/icu-xetex/tools/tzcode/tz2icu.cpp
@@ -1,6 +1,7 @@
+
/*
**********************************************************************
-* Copyright (c) 2003-2004, International Business Machines
+* Copyright (c) 2003-2006, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Author: Alan Liu
@@ -277,9 +278,16 @@ void readzoneinfo(ifstream& file, ZoneInfo& info) {
if (strncmp(buf, TZ_ICU_MAGIC, 4) != 0) {
throw invalid_argument("TZ_ICU_MAGIC signature missing");
}
+ // skip additional Olson byte version
+ file.read(buf, 1);
+ // if '\0', we have just one copy of data, if '2', there is additional
+ // 64 bit version at the end.
+ if(buf[0]!=0 && buf[0]!='2') {
+ throw invalid_argument("Bad Olson version info");
+ }
// Read reserved bytes. The first of these will be a version byte.
- file.read(buf, 16);
+ file.read(buf, 15);
if (*(ICUZoneinfoVersion*)&buf != TZ_ICU_VERSION) {
throw invalid_argument("File version mismatch");
}
@@ -457,12 +465,20 @@ void handleFile(string path, string id) {
// Check eof-relative pos (there may be a cleaner way to do this)
long eofPos = (long) file.tellg();
+ char buf[32];
+ file.read(buf, 4);
file.seekg(0, ios::end);
eofPos = eofPos - (long) file.tellg();
if (eofPos) {
+ // 2006c merged 32 and 64 bit versions in a fat binary
+ // 64 version starts at the end of 32 bit version.
+ // Therefore, if the file is *not* consumed, check
+ // if it is maybe being restarted.
+ if (strncmp(buf, TZ_ICU_MAGIC, 4) != 0) {
ostringstream os;
os << (-eofPos) << " unprocessed bytes at end";
throw invalid_argument(os.str());
+ }
}
ZONEINFO[id] = info;
@@ -1405,7 +1421,8 @@ int main(int argc, char *argv[]) {
<< "// >> !!! >>> DO NOT EDIT <<< !!! <<" << endl
<< "//---------------------------------------------------------" << endl
<< endl
- << ICU_TZ_RESOURCE " {" << endl
+ << ICU_TZ_RESOURCE ":table(nofallback) {" << endl
+ << " TZVersion { \"" << version << "\" }" << endl
<< " Zones:array { " << endl
<< ZONEINFO // Zones (the actual data)
<< " }" << endl;
@@ -1499,6 +1516,7 @@ int main(int argc, char *argv[]) {
// Emit equivalency lists
bool first1 = true;
+ java << " public static final String VERSION = \"" + version + "\";" << endl;
java << " public static final String[][] EQUIV = {" << endl;
for (ZoneMap::const_iterator i=ZONEINFO.begin(); i!=ZONEINFO.end(); ++i) {
if (i->second.isAlias() || i->second.getAliases().size() == 0) {
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/tzfile.h b/Build/source/libs/icu-xetex/tools/tzcode/tzfile.h
new file mode 100644
index 00000000000..3a9eee305a5
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/tzfile.h
@@ -0,0 +1,180 @@
+#ifndef TZFILE_H
+
+#define TZFILE_H
+
+/*
+** This file is in the public domain, so clarified as of
+** 1996-06-05 by Arthur David Olson.
+*/
+
+/*
+** This header is for use ONLY with the time conversion code.
+** There is no guarantee that it will remain unchanged,
+** or that it will remain at all.
+** Do NOT copy it to any system include directory.
+** Thank you!
+*/
+
+/*
+** ID
+*/
+
+#ifndef lint
+#ifndef NOID
+static char tzfilehid[] = "@(#)tzfile.h 8.1";
+#endif /* !defined NOID */
+#endif /* !defined lint */
+
+/*
+** Information about time zone files.
+*/
+
+#ifndef TZDIR
+#define TZDIR "/usr/local/etc/zoneinfo" /* Time zone object file directory */
+#endif /* !defined TZDIR */
+
+#ifndef TZDEFAULT
+#define TZDEFAULT "localtime"
+#endif /* !defined TZDEFAULT */
+
+#ifndef TZDEFRULES
+#define TZDEFRULES "posixrules"
+#endif /* !defined TZDEFRULES */
+
+/*
+** Each file begins with. . .
+*/
+
+#define TZ_MAGIC "TZif"
+
+struct tzhead {
+ char tzh_magic[4]; /* TZ_MAGIC */
+ char tzh_version[1]; /* '\0' or '2' as of 2005 */
+ char tzh_reserved[15]; /* reserved--must be zero */
+ char tzh_ttisgmtcnt[4]; /* coded number of trans. time flags */
+ char tzh_ttisstdcnt[4]; /* coded number of trans. time flags */
+ char tzh_leapcnt[4]; /* coded number of leap seconds */
+ char tzh_timecnt[4]; /* coded number of transition times */
+ char tzh_typecnt[4]; /* coded number of local time types */
+ char tzh_charcnt[4]; /* coded number of abbr. chars */
+};
+
+/*
+** . . .followed by. . .
+**
+** tzh_timecnt (char [4])s coded transition times a la time(2)
+** tzh_timecnt (unsigned char)s types of local time starting at above
+** tzh_typecnt repetitions of
+** one (char [4]) coded UTC offset in seconds
+** one (unsigned char) used to set tm_isdst
+** one (unsigned char) that's an abbreviation list index
+** tzh_charcnt (char)s '\0'-terminated zone abbreviations
+** tzh_leapcnt repetitions of
+** one (char [4]) coded leap second transition times
+** one (char [4]) total correction after above
+** tzh_ttisstdcnt (char)s indexed by type; if TRUE, transition
+** time is standard time, if FALSE,
+** transition time is wall clock time
+** if absent, transition times are
+** assumed to be wall clock time
+** tzh_ttisgmtcnt (char)s indexed by type; if TRUE, transition
+** time is UTC, if FALSE,
+** transition time is local time
+** if absent, transition times are
+** assumed to be local time
+*/
+
+/*
+** If tzh_version is '2' or greater, the above is followed by a second instance
+** of tzhead and a second instance of the data in which each coded transition
+** time uses 8 rather than 4 chars,
+** then a POSIX-TZ-environment-variable-style string for use in handling
+** instants after the last transition time stored in the file
+** (with nothing between the newlines if there is no POSIX representation for
+** such instants).
+*/
+
+/*
+** In the current implementation, "tzset()" refuses to deal with files that
+** exceed any of the limits below.
+*/
+
+#ifndef TZ_MAX_TIMES
+#define TZ_MAX_TIMES 1200
+#endif /* !defined TZ_MAX_TIMES */
+
+#ifndef TZ_MAX_TYPES
+#ifndef NOSOLAR
+#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
+#endif /* !defined NOSOLAR */
+#ifdef NOSOLAR
+/*
+** Must be at least 14 for Europe/Riga as of Jan 12 1995,
+** as noted by Earl Chew.
+*/
+#define TZ_MAX_TYPES 20 /* Maximum number of local time types */
+#endif /* !defined NOSOLAR */
+#endif /* !defined TZ_MAX_TYPES */
+
+#ifndef TZ_MAX_CHARS
+#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
+ /* (limited by what unsigned chars can hold) */
+#endif /* !defined TZ_MAX_CHARS */
+
+#ifndef TZ_MAX_LEAPS
+#define TZ_MAX_LEAPS 50 /* Maximum number of leap second corrections */
+#endif /* !defined TZ_MAX_LEAPS */
+
+#define SECSPERMIN 60
+#define MINSPERHOUR 60
+#define HOURSPERDAY 24
+#define DAYSPERWEEK 7
+#define DAYSPERNYEAR 365
+#define DAYSPERLYEAR 366
+#define SECSPERHOUR (SECSPERMIN * MINSPERHOUR)
+#define SECSPERDAY ((long) SECSPERHOUR * HOURSPERDAY)
+#define MONSPERYEAR 12
+
+#define TM_SUNDAY 0
+#define TM_MONDAY 1
+#define TM_TUESDAY 2
+#define TM_WEDNESDAY 3
+#define TM_THURSDAY 4
+#define TM_FRIDAY 5
+#define TM_SATURDAY 6
+
+#define TM_JANUARY 0
+#define TM_FEBRUARY 1
+#define TM_MARCH 2
+#define TM_APRIL 3
+#define TM_MAY 4
+#define TM_JUNE 5
+#define TM_JULY 6
+#define TM_AUGUST 7
+#define TM_SEPTEMBER 8
+#define TM_OCTOBER 9
+#define TM_NOVEMBER 10
+#define TM_DECEMBER 11
+
+#define TM_YEAR_BASE 1900
+
+#define EPOCH_YEAR 1970
+#define EPOCH_WDAY TM_THURSDAY
+
+#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
+
+/*
+** Since everything in isleap is modulo 400 (or a factor of 400), we know that
+** isleap(y) == isleap(y % 400)
+** and so
+** isleap(a + b) == isleap((a + b) % 400)
+** or
+** isleap(a + b) == isleap(a % 400 + b % 400)
+** This is true even if % means modulo rather than Fortran remainder
+** (which is allowed by C89 but not C99).
+** We use this to avoid addition overflow problems.
+*/
+
+#define isleap_sum(a, b) isleap((a) % 400 + (b) % 400)
+
+#endif /* !defined TZFILE_H */
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/tzselect.ksh b/Build/source/libs/icu-xetex/tools/tzcode/tzselect.ksh
new file mode 100644
index 00000000000..26dfa984766
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/tzselect.ksh
@@ -0,0 +1,308 @@
+#! /bin/ksh
+
+# '@(#)tzselect.ksh 8.1'
+
+# Ask the user about the time zone, and output the resulting TZ value to stdout.
+# Interact with the user via stderr and stdin.
+
+# Contributed by Paul Eggert.
+
+# Porting notes:
+#
+# This script requires several features of the Korn shell.
+# If your host lacks the Korn shell,
+# you can use either of the following free programs instead:
+#
+# <a href=ftp://ftp.gnu.org/pub/gnu/>
+# Bourne-Again shell (bash)
+# </a>
+#
+# <a href=ftp://ftp.cs.mun.ca/pub/pdksh/pdksh.tar.gz>
+# Public domain ksh
+# </a>
+#
+# This script also uses several features of modern awk programs.
+# If your host lacks awk, or has an old awk that does not conform to Posix.2,
+# you can use either of the following free programs instead:
+#
+# <a href=ftp://ftp.gnu.org/pub/gnu/>
+# GNU awk (gawk)
+# </a>
+#
+# <a href=ftp://ftp.whidbey.net/pub/brennan/>
+# mawk
+# </a>
+
+
+# Specify default values for environment variables if they are unset.
+: ${AWK=awk}
+: ${TZDIR=$(pwd)}
+
+# Check for awk Posix compliance.
+($AWK -v x=y 'BEGIN { exit 123 }') </dev/null >/dev/null 2>&1
+[ $? = 123 ] || {
+ echo >&2 "$0: Sorry, your \`$AWK' program is not Posix compatible."
+ exit 1
+}
+
+# Make sure the tables are readable.
+TZ_COUNTRY_TABLE=$TZDIR/iso3166.tab
+TZ_ZONE_TABLE=$TZDIR/zone.tab
+for f in $TZ_COUNTRY_TABLE $TZ_ZONE_TABLE
+do
+ <$f || {
+ echo >&2 "$0: time zone files are not set up correctly"
+ exit 1
+ }
+done
+
+newline='
+'
+IFS=$newline
+
+
+# Work around a bug in bash 1.14.7 and earlier, where $PS3 is sent to stdout.
+case $(echo 1 | (select x in x; do break; done) 2>/dev/null) in
+?*) PS3=
+esac
+
+
+# Begin the main loop. We come back here if the user wants to retry.
+while
+
+ echo >&2 'Please identify a location' \
+ 'so that time zone rules can be set correctly.'
+
+ continent=
+ country=
+ region=
+
+
+ # Ask the user for continent or ocean.
+
+ echo >&2 'Please select a continent or ocean.'
+
+ select continent in \
+ Africa \
+ Americas \
+ Antarctica \
+ 'Arctic Ocean' \
+ Asia \
+ 'Atlantic Ocean' \
+ Australia \
+ Europe \
+ 'Indian Ocean' \
+ 'Pacific Ocean' \
+ 'none - I want to specify the time zone using the Posix TZ format.'
+ do
+ case $continent in
+ '')
+ echo >&2 'Please enter a number in range.';;
+ ?*)
+ case $continent in
+ Americas) continent=America;;
+ *' '*) continent=$(expr "$continent" : '\([^ ]*\)')
+ esac
+ break
+ esac
+ done
+ case $continent in
+ '')
+ exit 1;;
+ none)
+ # Ask the user for a Posix TZ string. Check that it conforms.
+ while
+ echo >&2 'Please enter the desired value' \
+ 'of the TZ environment variable.'
+ echo >&2 'For example, GST-10 is a zone named GST' \
+ 'that is 10 hours ahead (east) of UTC.'
+ read TZ
+ $AWK -v TZ="$TZ" 'BEGIN {
+ tzname = "[^-+,0-9][^-+,0-9][^-+,0-9]+"
+ time = "[0-2]?[0-9](:[0-5][0-9](:[0-5][0-9])?)?"
+ offset = "[-+]?" time
+ date = "(J?[0-9]+|M[0-9]+\.[0-9]+\.[0-9]+)"
+ datetime = "," date "(/" time ")?"
+ tzpattern = "^(:.*|" tzname offset "(" tzname \
+ "(" offset ")?(" datetime datetime ")?)?)$"
+ if (TZ ~ tzpattern) exit 1
+ exit 0
+ }'
+ do
+ echo >&2 "\`$TZ' is not a conforming" \
+ 'Posix time zone string.'
+ done
+ TZ_for_date=$TZ;;
+ *)
+ # Get list of names of countries in the continent or ocean.
+ countries=$($AWK -F'\t' \
+ -v continent="$continent" \
+ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
+ '
+ /^#/ { next }
+ $3 ~ ("^" continent "/") {
+ if (!cc_seen[$1]++) cc_list[++ccs] = $1
+ }
+ END {
+ while (getline <TZ_COUNTRY_TABLE) {
+ if ($0 !~ /^#/) cc_name[$1] = $2
+ }
+ for (i = 1; i <= ccs; i++) {
+ country = cc_list[i]
+ if (cc_name[country]) {
+ country = cc_name[country]
+ }
+ print country
+ }
+ }
+ ' <$TZ_ZONE_TABLE | sort -f)
+
+
+ # If there's more than one country, ask the user which one.
+ case $countries in
+ *"$newline"*)
+ echo >&2 'Please select a country.'
+ select country in $countries
+ do
+ case $country in
+ '') echo >&2 'Please enter a number in range.';;
+ ?*) break
+ esac
+ done
+
+ case $country in
+ '') exit 1
+ esac;;
+ *)
+ country=$countries
+ esac
+
+
+ # Get list of names of time zone rule regions in the country.
+ regions=$($AWK -F'\t' \
+ -v country="$country" \
+ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
+ '
+ BEGIN {
+ cc = country
+ while (getline <TZ_COUNTRY_TABLE) {
+ if ($0 !~ /^#/ && country == $2) {
+ cc = $1
+ break
+ }
+ }
+ }
+ $1 == cc { print $4 }
+ ' <$TZ_ZONE_TABLE)
+
+
+ # If there's more than one region, ask the user which one.
+ case $regions in
+ *"$newline"*)
+ echo >&2 'Please select one of the following' \
+ 'time zone regions.'
+ select region in $regions
+ do
+ case $region in
+ '') echo >&2 'Please enter a number in range.';;
+ ?*) break
+ esac
+ done
+ case $region in
+ '') exit 1
+ esac;;
+ *)
+ region=$regions
+ esac
+
+ # Determine TZ from country and region.
+ TZ=$($AWK -F'\t' \
+ -v country="$country" \
+ -v region="$region" \
+ -v TZ_COUNTRY_TABLE="$TZ_COUNTRY_TABLE" \
+ '
+ BEGIN {
+ cc = country
+ while (getline <TZ_COUNTRY_TABLE) {
+ if ($0 !~ /^#/ && country == $2) {
+ cc = $1
+ break
+ }
+ }
+ }
+ $1 == cc && $4 == region { print $3 }
+ ' <$TZ_ZONE_TABLE)
+
+ # Make sure the corresponding zoneinfo file exists.
+ TZ_for_date=$TZDIR/$TZ
+ <$TZ_for_date || {
+ echo >&2 "$0: time zone files are not set up correctly"
+ exit 1
+ }
+ esac
+
+
+ # Use the proposed TZ to output the current date relative to UTC.
+ # Loop until they agree in seconds.
+ # Give up after 8 unsuccessful tries.
+
+ extra_info=
+ for i in 1 2 3 4 5 6 7 8
+ do
+ TZdate=$(LANG=C TZ="$TZ_for_date" date)
+ UTdate=$(LANG=C TZ=UTC0 date)
+ TZsec=$(expr "$TZdate" : '.*:\([0-5][0-9]\)')
+ UTsec=$(expr "$UTdate" : '.*:\([0-5][0-9]\)')
+ case $TZsec in
+ $UTsec)
+ extra_info="
+Local time is now: $TZdate.
+Universal Time is now: $UTdate."
+ break
+ esac
+ done
+
+
+ # Output TZ info and ask the user to confirm.
+
+ echo >&2 ""
+ echo >&2 "The following information has been given:"
+ echo >&2 ""
+ case $country+$region in
+ ?*+?*) echo >&2 " $country$newline $region";;
+ ?*+) echo >&2 " $country";;
+ +) echo >&2 " TZ='$TZ'"
+ esac
+ echo >&2 ""
+ echo >&2 "Therefore TZ='$TZ' will be used.$extra_info"
+ echo >&2 "Is the above information OK?"
+
+ ok=
+ select ok in Yes No
+ do
+ case $ok in
+ '') echo >&2 'Please enter 1 for Yes, or 2 for No.';;
+ ?*) break
+ esac
+ done
+ case $ok in
+ '') exit 1;;
+ Yes) break
+ esac
+do :
+done
+
+case $SHELL in
+*csh) file=.login line="setenv TZ '$TZ'";;
+*) file=.profile line="TZ='$TZ'; export TZ"
+esac
+
+echo >&2 "
+You can make this change permanent for yourself by appending the line
+ $line
+to the file '$file' in your home directory; then log out and log in again.
+
+Here is that TZ value again, this time on standard output so that you
+can use the $0 command in shell scripts:"
+
+echo "$TZ"
diff --git a/Build/source/libs/icu-xetex/tools/tzcode/zic.c b/Build/source/libs/icu-xetex/tools/tzcode/zic.c
new file mode 100644
index 00000000000..47f92d22cc4
--- /dev/null
+++ b/Build/source/libs/icu-xetex/tools/tzcode/zic.c
@@ -0,0 +1,2948 @@
+/*
+** This file is in the public domain, so clarified as of
+** 2006-07-17 by Arthur David Olson.
+*/
+
+static char elsieid[] = "@(#)zic.c 8.7";
+
+#include "private.h"
+#include "locale.h"
+#include "tzfile.h"
+
+#define ZIC_VERSION '2'
+
+typedef int_fast64_t zic_t;
+
+#ifndef ZIC_MAX_ABBR_LEN_WO_WARN
+#define ZIC_MAX_ABBR_LEN_WO_WARN 6
+#endif /* !defined ZIC_MAX_ABBR_LEN_WO_WARN */
+
+#if HAVE_SYS_STAT_H
+#include "sys/stat.h"
+#endif
+#ifdef S_IRUSR
+#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
+#else
+#define MKDIR_UMASK 0755
+#endif
+
+/* Enable extensions and modifications for ICU. */
+#define ICU
+
+/* Continue executing after link failure. Even if ICU is undefined
+ * (for vanilla zic behavior), ICU_LINKS should be defined, since zic
+ * appears to fail on the 2003 data the first time through during the
+ * linking phase. Running zic twice, with ICU_LINKS defined, causes
+ * links to be handled correctly. */
+#define ICU_LINKS
+
+#ifdef ICU
+#include "tz2icu.h"
+#endif
+
+/*
+** On some ancient hosts, predicates like `isspace(C)' are defined
+** only if isascii(C) || C == EOF. Modern hosts obey the C Standard,
+** which says they are defined only if C == ((unsigned char) C) || C == EOF.
+** Neither the C Standard nor Posix require that `isascii' exist.
+** For portability, we check both ancient and modern requirements.
+** If isascii is not defined, the isascii check succeeds trivially.
+*/
+#include "ctype.h"
+#ifndef isascii
+#define isascii(x) 1
+#endif
+
+#define OFFSET_STRLEN_MAXIMUM (7 + INT_STRLEN_MAXIMUM(long))
+#define RULE_STRLEN_MAXIMUM 8 /* "Mdd.dd.d" */
+
+#define end(cp) (strchr((cp), '\0'))
+
+struct rule {
+ const char * r_filename;
+ int r_linenum;
+ const char * r_name;
+
+ int r_loyear; /* for example, 1986 */
+ int r_hiyear; /* for example, 1986 */
+ const char * r_yrtype;
+ int r_lowasnum;
+ int r_hiwasnum;
+
+ int r_month; /* 0..11 */
+
+ int r_dycode; /* see below */
+ int r_dayofmonth;
+ int r_wday;
+
+ long r_tod; /* time from midnight */
+ int r_todisstd; /* above is standard time if TRUE */
+ /* or wall clock time if FALSE */
+ int r_todisgmt; /* above is GMT if TRUE */
+ /* or local time if FALSE */
+ long r_stdoff; /* offset from standard time */
+ const char * r_abbrvar; /* variable part of abbreviation */
+
+ int r_todo; /* a rule to do (used in outzone) */
+ zic_t r_temp; /* used in outzone */
+};
+
+/*
+** r_dycode r_dayofmonth r_wday
+*/
+
+#define DC_DOM 0 /* 1..31 */ /* unused */
+#define DC_DOWGEQ 1 /* 1..31 */ /* 0..6 (Sun..Sat) */
+#define DC_DOWLEQ 2 /* 1..31 */ /* 0..6 (Sun..Sat) */
+
+struct zone {
+ const char * z_filename;
+ int z_linenum;
+
+ const char * z_name;
+ long z_gmtoff;
+ const char * z_rule;
+ const char * z_format;
+
+ long z_stdoff;
+
+ struct rule * z_rules;
+ int z_nrules;
+
+ struct rule z_untilrule;
+ zic_t z_untiltime;
+};
+
+extern int getopt P((int argc, char * const argv[],
+ const char * options));
+extern int link P((const char * fromname, const char * toname));
+extern char * optarg;
+extern int optind;
+
+static void addtt P((zic_t starttime, int type));
+#ifdef ICU
+static int addtype P((long gmtoff, long rawoff, long dstoff,
+ const char * abbr, int isdst,
+ int ttisstd, int ttisgmt));
+#else
+static int addtype P((long gmtoff, const char * abbr, int isdst,
+ int ttisstd, int ttisgmt));
+#endif
+static void leapadd P((zic_t t, int positive, int rolling, int count));
+static void adjleap P((void));
+static void associate P((void));
+static int ciequal P((const char * ap, const char * bp));
+static void convert P((long val, char * buf));
+static void convert64 P((zic_t val, char * buf));
+static void dolink P((const char * fromfile, const char * tofile));
+static void doabbr P((char * abbr, const char * format,
+ const char * letters, int isdst, int doquotes));
+static void eat P((const char * name, int num));
+static void eats P((const char * name, int num,
+ const char * rname, int rnum));
+static long eitol P((int i));
+static void error P((const char * message));
+static char ** getfields P((char * buf));
+static long gethms P((const char * string, const char * errstrng,
+ int signable));
+static void infile P((const char * filename));
+static void inleap P((char ** fields, int nfields));
+static void inlink P((char ** fields, int nfields));
+static void inrule P((char ** fields, int nfields));
+static int inzcont P((char ** fields, int nfields));
+static int inzone P((char ** fields, int nfields));
+static int inzsub P((char ** fields, int nfields, int iscont));
+static int is32 P((zic_t x));
+static int itsabbr P((const char * abbr, const char * word));
+static int itsdir P((const char * name));
+static int lowerit P((int c));
+static char * memcheck P((char * tocheck));
+static int mkdirs P((char * filename));
+static void newabbr P((const char * abbr));
+static long oadd P((long t1, long t2));
+static void outzone P((const struct zone * zp, int ntzones));
+static void puttzcode P((long code, FILE * fp));
+static void puttzcode64 P((zic_t code, FILE * fp));
+static int rcomp P((const void * leftp, const void * rightp));
+static zic_t rpytime P((const struct rule * rp, int wantedy));
+static void rulesub P((struct rule * rp,
+ const char * loyearp, const char * hiyearp,
+ const char * typep, const char * monthp,
+ const char * dayp, const char * timep));
+static int stringoffset P((char * result, long offset));
+static int stringrule P((char * result, const struct rule * rp,
+ long dstoff, long gmtoff));
+static void stringzone P((char * result,
+ const struct zone * zp, int ntzones));
+static void setboundaries P((void));
+static zic_t tadd P((zic_t t1, long t2));
+static void usage P((void));
+static void writezone P((const char * name, const char * string));
+static int yearistype P((int year, const char * type));
+
+#if !HAVE_STRERROR
+static char * strerror P((int));
+#endif /* !HAVE_STRERROR */
+
+static int charcnt;
+static int errors;
+static const char * filename;
+static int leapcnt;
+static int leapseen;
+static int leapminyear;
+static int leapmaxyear;
+static int linenum;
+static int max_abbrvar_len;
+static int max_format_len;
+static zic_t max_time;
+static int max_year;
+static zic_t min_time;
+static int min_year;
+static int noise;
+static const char * rfilename;
+static int rlinenum;
+static const char * progname;
+static int timecnt;
+static int typecnt;
+
+/*
+** Line codes.
+*/
+
+#define LC_RULE 0
+#define LC_ZONE 1
+#define LC_LINK 2
+#define LC_LEAP 3
+
+/*
+** Which fields are which on a Zone line.
+*/
+
+#define ZF_NAME 1
+#define ZF_GMTOFF 2
+#define ZF_RULE 3
+#define ZF_FORMAT 4
+#define ZF_TILYEAR 5
+#define ZF_TILMONTH 6
+#define ZF_TILDAY 7
+#define ZF_TILTIME 8
+#define ZONE_MINFIELDS 5
+#define ZONE_MAXFIELDS 9
+
+/*
+** Which fields are which on a Zone continuation line.
+*/
+
+#define ZFC_GMTOFF 0
+#define ZFC_RULE 1
+#define ZFC_FORMAT 2
+#define ZFC_TILYEAR 3
+#define ZFC_TILMONTH 4
+#define ZFC_TILDAY 5
+#define ZFC_TILTIME 6
+#define ZONEC_MINFIELDS 3
+#define ZONEC_MAXFIELDS 7
+
+/*
+** Which files are which on a Rule line.
+*/
+
+#define RF_NAME 1
+#define RF_LOYEAR 2
+#define RF_HIYEAR 3
+#define RF_COMMAND 4
+#define RF_MONTH 5
+#define RF_DAY 6
+#define RF_TOD 7
+#define RF_STDOFF 8
+#define RF_ABBRVAR 9
+#define RULE_FIELDS 10
+
+/*
+** Which fields are which on a Link line.
+*/
+
+#define LF_FROM 1
+#define LF_TO 2
+#define LINK_FIELDS 3
+
+/*
+** Which fields are which on a Leap line.
+*/
+
+#define LP_YEAR 1
+#define LP_MONTH 2
+#define LP_DAY 3
+#define LP_TIME 4
+#define LP_CORR 5
+#define LP_ROLL 6
+#define LEAP_FIELDS 7
+
+/*
+** Year synonyms.
+*/
+
+#define YR_MINIMUM 0
+#define YR_MAXIMUM 1
+#define YR_ONLY 2
+
+static struct rule * rules;
+static int nrules; /* number of rules */
+
+static struct zone * zones;
+static int nzones; /* number of zones */
+
+struct link {
+ const char * l_filename;
+ int l_linenum;
+ const char * l_from;
+ const char * l_to;
+};
+
+static struct link * links;
+static int nlinks;
+
+struct lookup {
+ const char * l_word;
+ const int l_value;
+};
+
+#ifdef ICU
+
+/* Indices into rules[] for final rules. They will occur in pairs,
+ * with finalRules[i] occurring before finalRules[i+1] in the year.
+ * Each zone need only store a start year, a standard offset, and an
+ * index into finalRules[]. FinalRules[] are aliases into rules[]. */
+
+static const struct rule ** finalRules;
+static int finalRulesCount;
+
+#endif
+
+static struct lookup const * byword P((const char * string,
+ const struct lookup * lp));
+
+static struct lookup const line_codes[] = {
+ { "Rule", LC_RULE },
+ { "Zone", LC_ZONE },
+ { "Link", LC_LINK },
+ { "Leap", LC_LEAP },
+ { NULL, 0}
+};
+
+static struct lookup const mon_names[] = {
+ { "January", TM_JANUARY },
+ { "February", TM_FEBRUARY },
+ { "March", TM_MARCH },
+ { "April", TM_APRIL },
+ { "May", TM_MAY },
+ { "June", TM_JUNE },
+ { "July", TM_JULY },
+ { "August", TM_AUGUST },
+ { "September", TM_SEPTEMBER },
+ { "October", TM_OCTOBER },
+ { "November", TM_NOVEMBER },
+ { "December", TM_DECEMBER },
+ { NULL, 0 }
+};
+
+static struct lookup const wday_names[] = {
+ { "Sunday", TM_SUNDAY },
+ { "Monday", TM_MONDAY },
+ { "Tuesday", TM_TUESDAY },
+ { "Wednesday", TM_WEDNESDAY },
+ { "Thursday", TM_THURSDAY },
+ { "Friday", TM_FRIDAY },
+ { "Saturday", TM_SATURDAY },
+ { NULL, 0 }
+};
+
+static struct lookup const lasts[] = {
+ { "last-Sunday", TM_SUNDAY },
+ { "last-Monday", TM_MONDAY },
+ { "last-Tuesday", TM_TUESDAY },
+ { "last-Wednesday", TM_WEDNESDAY },
+ { "last-Thursday", TM_THURSDAY },
+ { "last-Friday", TM_FRIDAY },
+ { "last-Saturday", TM_SATURDAY },
+ { NULL, 0 }
+};
+
+static struct lookup const begin_years[] = {
+ { "minimum", YR_MINIMUM },
+ { "maximum", YR_MAXIMUM },
+ { NULL, 0 }
+};
+
+static struct lookup const end_years[] = {
+ { "minimum", YR_MINIMUM },
+ { "maximum", YR_MAXIMUM },
+ { "only", YR_ONLY },
+ { NULL, 0 }
+};
+
+static struct lookup const leap_types[] = {
+ { "Rolling", TRUE },
+ { "Stationary", FALSE },
+ { NULL, 0 }
+};
+
+static const int len_months[2][MONSPERYEAR] = {
+ { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
+ { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+};
+
+static const int len_years[2] = {
+ DAYSPERNYEAR, DAYSPERLYEAR
+};
+
+static struct attype {
+ zic_t at;
+ unsigned char type;
+} attypes[TZ_MAX_TIMES];
+static long gmtoffs[TZ_MAX_TYPES];
+#ifdef ICU
+/* gmtoffs[i] = rawoffs[i] + dstoffs[i] */
+static long rawoffs[TZ_MAX_TYPES];
+static long dstoffs[TZ_MAX_TYPES];
+#endif
+static char isdsts[TZ_MAX_TYPES];
+static unsigned char abbrinds[TZ_MAX_TYPES];
+static char ttisstds[TZ_MAX_TYPES];
+static char ttisgmts[TZ_MAX_TYPES];
+static char chars[TZ_MAX_CHARS];
+static zic_t trans[TZ_MAX_LEAPS];
+static long corr[TZ_MAX_LEAPS];
+static char roll[TZ_MAX_LEAPS];
+
+/*
+** Memory allocation.
+*/
+
+static char *
+memcheck(ptr)
+char * const ptr;
+{
+ if (ptr == NULL) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr, _("%s: Memory exhausted: %s\n"),
+ progname, e);
+ exit(EXIT_FAILURE);
+ }
+ return ptr;
+}
+
+#define emalloc(size) memcheck(imalloc(size))
+#define erealloc(ptr, size) memcheck(irealloc((ptr), (size)))
+#define ecpyalloc(ptr) memcheck(icpyalloc(ptr))
+#define ecatalloc(oldp, newp) memcheck(icatalloc((oldp), (newp)))
+
+/*
+** Error handling.
+*/
+
+#if !HAVE_STRERROR
+static char *
+strerror(errnum)
+int errnum;
+{
+ extern char * sys_errlist[];
+ extern int sys_nerr;
+
+ return (errnum > 0 && errnum <= sys_nerr) ?
+ sys_errlist[errnum] : _("Unknown system error");
+}
+#endif /* !HAVE_STRERROR */
+
+static void
+eats(name, num, rname, rnum)
+const char * const name;
+const int num;
+const char * const rname;
+const int rnum;
+{
+ filename = name;
+ linenum = num;
+ rfilename = rname;
+ rlinenum = rnum;
+}
+
+static void
+eat(name, num)
+const char * const name;
+const int num;
+{
+ eats(name, num, (char *) NULL, -1);
+}
+
+static void
+error(string)
+const char * const string;
+{
+ /*
+ ** Match the format of "cc" to allow sh users to
+ ** zic ... 2>&1 | error -t "*" -v
+ ** on BSD systems.
+ */
+ (void) fprintf(stderr, _("\"%s\", line %d: %s"),
+ filename, linenum, string);
+ if (rfilename != NULL)
+ (void) fprintf(stderr, _(" (rule from \"%s\", line %d)"),
+ rfilename, rlinenum);
+ (void) fprintf(stderr, "\n");
+ ++errors;
+}
+
+static void
+warning(string)
+const char * const string;
+{
+ char * cp;
+
+ cp = ecpyalloc(_("warning: "));
+ cp = ecatalloc(cp, string);
+ error(cp);
+ ifree(cp);
+ --errors;
+}
+
+static void
+usage P((void))
+{
+ (void) fprintf(stderr, _("%s: usage is %s \
+[ --version ] [ -v ] [ -l localtime ] [ -p posixrules ] \\\n\
+\t[ -d directory ] [ -L leapseconds ] [ -y yearistype ] [ filename ... ]\n"),
+ progname, progname);
+ exit(EXIT_FAILURE);
+}
+
+#ifdef ICU
+
+/* File into which we will write supplemental ICU data. */
+static FILE * icuFile;
+
+void emit_icu_zone(FILE* f, const char* zoneName, int zoneOffset,
+ const struct rule* rule,
+ int ruleIndex, int startYear) {
+ /* machine-readable section */
+ fprintf(f, "zone %s %d %d %s", zoneName, zoneOffset, startYear, rule->r_name);
+
+ /* human-readable section */
+ fprintf(f, " # zone %s, offset %d, year >= %d, rule %s (%d)\n",
+ zoneName, zoneOffset, startYear,
+ rule->r_name, ruleIndex);
+}
+
+void emit_icu_link(FILE* f, const char* from, const char* to) {
+ /* machine-readable section */
+ fprintf(f, "link %s %s\n", from, to);
+}
+
+static const char* DYCODE[] = {"DOM", "DOWGEQ", "DOWLEQ"};
+
+void emit_icu_rule(FILE* f, const struct rule* r, int ruleIndex) {
+ if (r->r_yrtype != NULL) {
+ warning("year types not supported by ICU");
+ fprintf(stderr, "rule %s, file %s, line %d\n",
+ r->r_name, r->r_filename, r->r_linenum);
+ }
+
+ /* machine-readable section */
+ fprintf(f, "rule %s %s %d %d %d %d %d %d %d",
+ r->r_name, DYCODE[r->r_dycode],
+ r->r_month, r->r_dayofmonth,
+ (r->r_dycode == DC_DOM ? -1 : r->r_wday),
+ r->r_tod, r->r_todisstd, r->r_todisgmt, r->r_stdoff
+ );
+
+ /* human-readable section */
+ fprintf(f, " # %d: %s, file %s, line %d",
+ ruleIndex, r->r_name, r->r_filename, r->r_linenum);
+ fprintf(f, ", mode %s", DYCODE[r->r_dycode]);
+ fprintf(f, ", %s, dom %d", mon_names[r->r_month].l_word, r->r_dayofmonth);
+ if (r->r_dycode != DC_DOM) {
+ fprintf(f, ", %s", wday_names[r->r_wday].l_word);
+ }
+ fprintf(f, ", time %d", r->r_tod);
+ fprintf(f, ", isstd %d", r->r_todisstd);
+ fprintf(f, ", isgmt %d", r->r_todisgmt);
+ fprintf(f, ", offset %ld", r->r_stdoff);
+ fprintf(f, "\n");
+}
+
+#endif
+
+static const char * psxrules;
+static const char * lcltime;
+static const char * directory;
+static const char * leapsec;
+static const char * yitcommand;
+
+int
+main(argc, argv)
+int argc;
+char * argv[];
+{
+ register int i;
+ register int j;
+ register int c;
+
+#ifdef unix
+ (void) umask(umask(S_IWGRP | S_IWOTH) | (S_IWGRP | S_IWOTH));
+#endif /* defined unix */
+#if HAVE_GETTEXT
+ (void) setlocale(LC_ALL, "");
+#ifdef TZ_DOMAINDIR
+ (void) bindtextdomain(TZ_DOMAIN, TZ_DOMAINDIR);
+#endif /* defined TEXTDOMAINDIR */
+ (void) textdomain(TZ_DOMAIN);
+#endif /* HAVE_GETTEXT */
+ progname = argv[0];
+ if (TYPE_BIT(zic_t) < 64) {
+ (void) fprintf(stderr, "%s: %s\n", progname,
+ _("wild compilation-time specification of zic_t"));
+ exit(EXIT_FAILURE);
+ }
+ for (i = 1; i < argc; ++i)
+ if (strcmp(argv[i], "--version") == 0) {
+ (void) printf("%s\n", elsieid);
+ exit(EXIT_SUCCESS);
+ }
+ while ((c = getopt(argc, argv, "d:l:p:L:vsy:")) != EOF && c != -1)
+ switch (c) {
+ default:
+ usage();
+ case 'd':
+ if (directory == NULL)
+ directory = optarg;
+ else {
+ (void) fprintf(stderr,
+_("%s: More than one -d option specified\n"),
+ progname);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'l':
+ if (lcltime == NULL)
+ lcltime = optarg;
+ else {
+ (void) fprintf(stderr,
+_("%s: More than one -l option specified\n"),
+ progname);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'p':
+ if (psxrules == NULL)
+ psxrules = optarg;
+ else {
+ (void) fprintf(stderr,
+_("%s: More than one -p option specified\n"),
+ progname);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'y':
+ if (yitcommand == NULL)
+ yitcommand = optarg;
+ else {
+ (void) fprintf(stderr,
+_("%s: More than one -y option specified\n"),
+ progname);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'L':
+ if (leapsec == NULL)
+ leapsec = optarg;
+ else {
+ (void) fprintf(stderr,
+_("%s: More than one -L option specified\n"),
+ progname);
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case 'v':
+ noise = TRUE;
+ break;
+ case 's':
+ (void) printf("%s: -s ignored\n", progname);
+ break;
+ }
+ if (optind == argc - 1 && strcmp(argv[optind], "=") == 0)
+ usage(); /* usage message by request */
+ if (directory == NULL)
+ directory = TZDIR;
+ if (yitcommand == NULL)
+ yitcommand = "yearistype";
+
+ setboundaries();
+
+ if (optind < argc && leapsec != NULL) {
+ infile(leapsec);
+ adjleap();
+ }
+
+#ifdef ICU
+ if ((icuFile = fopen(ICU_ZONE_FILE, "w")) == NULL) {
+ const char *e = strerror(errno);
+ (void) fprintf(stderr, _("%s: Can't open %s: %s\n"),
+ progname, ICU_ZONE_FILE, e);
+ (void) exit(EXIT_FAILURE);
+ }
+#endif
+ for (i = optind; i < argc; ++i)
+ infile(argv[i]);
+ if (errors)
+ exit(EXIT_FAILURE);
+ associate();
+ for (i = 0; i < nzones; i = j) {
+ /*
+ ** Find the next non-continuation zone entry.
+ */
+ for (j = i + 1; j < nzones && zones[j].z_name == NULL; ++j)
+ continue;
+ outzone(&zones[i], j - i);
+ }
+ /*
+ ** Make links.
+ */
+ for (i = 0; i < nlinks; ++i) {
+ eat(links[i].l_filename, links[i].l_linenum);
+ dolink(links[i].l_from, links[i].l_to);
+#ifdef ICU
+ emit_icu_link(icuFile, links[i].l_from, links[i].l_to);
+#endif
+ if (noise)
+ for (j = 0; j < nlinks; ++j)
+ if (strcmp(links[i].l_to,
+ links[j].l_from) == 0)
+ warning(_("link to link"));
+ }
+ if (lcltime != NULL) {
+ eat("command line", 1);
+ dolink(lcltime, TZDEFAULT);
+ }
+ if (psxrules != NULL) {
+ eat("command line", 1);
+ dolink(psxrules, TZDEFRULES);
+ }
+#ifdef ICU
+ for (i=0; i<finalRulesCount; ++i) {
+ emit_icu_rule(icuFile, finalRules[i], i);
+ }
+#endif /*ICU*/
+ return (errors == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+static void
+dolink(fromfile, tofile)
+const char * const fromfile;
+const char * const tofile;
+{
+ register char * fromname;
+ register char * toname;
+
+ if (fromfile[0] == '/')
+ fromname = ecpyalloc(fromfile);
+ else {
+ fromname = ecpyalloc(directory);
+ fromname = ecatalloc(fromname, "/");
+ fromname = ecatalloc(fromname, fromfile);
+ }
+ if (tofile[0] == '/')
+ toname = ecpyalloc(tofile);
+ else {
+ toname = ecpyalloc(directory);
+ toname = ecatalloc(toname, "/");
+ toname = ecatalloc(toname, tofile);
+ }
+ /*
+ ** We get to be careful here since
+ ** there's a fair chance of root running us.
+ */
+ if (!itsdir(toname))
+ (void) remove(toname);
+ if (link(fromname, toname) != 0) {
+ int result;
+
+ if (mkdirs(toname) != 0)
+ exit(EXIT_FAILURE);
+
+ result = link(fromname, toname);
+#if HAVE_SYMLINK
+ if (result != 0 &&
+ access(fromname, F_OK) == 0 &&
+ !itsdir(fromname)) {
+ const char *s = tofile;
+ register char * symlinkcontents = NULL;
+
+ while ((s = strchr(s+1, '/')) != NULL)
+ symlinkcontents =
+ ecatalloc(symlinkcontents,
+ "../");
+ symlinkcontents =
+ ecatalloc(symlinkcontents,
+ fromfile);
+ result = symlink(symlinkcontents,
+ toname);
+ if (result == 0)
+warning(_("hard link failed, symbolic link used"));
+ ifree(symlinkcontents);
+ }
+#endif /* HAVE_SYMLINK */
+ if (result != 0) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr,
+ _("%s: Can't link from %s to %s: %s\n"),
+ progname, fromname, toname, e);
+#ifndef ICU_LINKS
+ exit(EXIT_FAILURE);
+#endif
+ }
+ }
+ ifree(fromname);
+ ifree(toname);
+}
+
+#define TIME_T_BITS_IN_FILE 64
+
+static void
+setboundaries P((void))
+{
+ register int i;
+
+ min_time = -1;
+ for (i = 0; i < TIME_T_BITS_IN_FILE - 1; ++i)
+ min_time *= 2;
+ max_time = -(min_time + 1);
+}
+
+static int
+itsdir(name)
+const char * const name;
+{
+ register char * myname;
+ register int accres;
+
+ myname = ecpyalloc(name);
+ myname = ecatalloc(myname, "/.");
+ accres = access(myname, F_OK);
+ ifree(myname);
+ return accres == 0;
+}
+
+/*
+** Associate sets of rules with zones.
+*/
+
+/*
+** Sort by rule name.
+*/
+
+static int
+rcomp(cp1, cp2)
+const void * cp1;
+const void * cp2;
+{
+ return strcmp(((const struct rule *) cp1)->r_name,
+ ((const struct rule *) cp2)->r_name);
+}
+
+static void
+associate P((void))
+{
+ register struct zone * zp;
+ register struct rule * rp;
+ register int base, out;
+ register int i, j;
+
+ if (nrules != 0) {
+ (void) qsort((void *) rules, (size_t) nrules,
+ (size_t) sizeof *rules, rcomp);
+ for (i = 0; i < nrules - 1; ++i) {
+ if (strcmp(rules[i].r_name,
+ rules[i + 1].r_name) != 0)
+ continue;
+ if (strcmp(rules[i].r_filename,
+ rules[i + 1].r_filename) == 0)
+ continue;
+ eat(rules[i].r_filename, rules[i].r_linenum);
+ warning(_("same rule name in multiple files"));
+ eat(rules[i + 1].r_filename, rules[i + 1].r_linenum);
+ warning(_("same rule name in multiple files"));
+ for (j = i + 2; j < nrules; ++j) {
+ if (strcmp(rules[i].r_name,
+ rules[j].r_name) != 0)
+ break;
+ if (strcmp(rules[i].r_filename,
+ rules[j].r_filename) == 0)
+ continue;
+ if (strcmp(rules[i + 1].r_filename,
+ rules[j].r_filename) == 0)
+ continue;
+ break;
+ }
+ i = j - 1;
+ }
+ }
+ for (i = 0; i < nzones; ++i) {
+ zp = &zones[i];
+ zp->z_rules = NULL;
+ zp->z_nrules = 0;
+ }
+ for (base = 0; base < nrules; base = out) {
+ rp = &rules[base];
+ for (out = base + 1; out < nrules; ++out)
+ if (strcmp(rp->r_name, rules[out].r_name) != 0)
+ break;
+ for (i = 0; i < nzones; ++i) {
+ zp = &zones[i];
+ if (strcmp(zp->z_rule, rp->r_name) != 0)
+ continue;
+ zp->z_rules = rp;
+ zp->z_nrules = out - base;
+ }
+ }
+ for (i = 0; i < nzones; ++i) {
+ zp = &zones[i];
+ if (zp->z_nrules == 0) {
+ /*
+ ** Maybe we have a local standard time offset.
+ */
+ eat(zp->z_filename, zp->z_linenum);
+ zp->z_stdoff = gethms(zp->z_rule, _("unruly zone"),
+ TRUE);
+ /*
+ ** Note, though, that if there's no rule,
+ ** a '%s' in the format is a bad thing.
+ */
+ if (strchr(zp->z_format, '%') != 0)
+ error(_("%s in ruleless zone"));
+ }
+ }
+ if (errors)
+ exit(EXIT_FAILURE);
+}
+
+static void
+infile(name)
+const char * name;
+{
+ register FILE * fp;
+ register char ** fields;
+ register char * cp;
+ register const struct lookup * lp;
+ register int nfields;
+ register int wantcont;
+ register int num;
+ char buf[BUFSIZ];
+
+ if (strcmp(name, "-") == 0) {
+ name = _("standard input");
+ fp = stdin;
+ } else if ((fp = fopen(name, "r")) == NULL) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr, _("%s: Can't open %s: %s\n"),
+ progname, name, e);
+ exit(EXIT_FAILURE);
+ }
+ wantcont = FALSE;
+ for (num = 1; ; ++num) {
+ eat(name, num);
+ if (fgets(buf, (int) sizeof buf, fp) != buf)
+ break;
+ cp = strchr(buf, '\n');
+ if (cp == NULL) {
+ error(_("line too long"));
+ exit(EXIT_FAILURE);
+ }
+ *cp = '\0';
+ fields = getfields(buf);
+ nfields = 0;
+ while (fields[nfields] != NULL) {
+ static char nada;
+
+ if (strcmp(fields[nfields], "-") == 0)
+ fields[nfields] = &nada;
+ ++nfields;
+ }
+ if (nfields == 0) {
+ /* nothing to do */
+ } else if (wantcont) {
+ wantcont = inzcont(fields, nfields);
+ } else {
+ lp = byword(fields[0], line_codes);
+ if (lp == NULL)
+ error(_("input line of unknown type"));
+ else switch ((int) (lp->l_value)) {
+ case LC_RULE:
+ inrule(fields, nfields);
+ wantcont = FALSE;
+ break;
+ case LC_ZONE:
+ wantcont = inzone(fields, nfields);
+ break;
+ case LC_LINK:
+ inlink(fields, nfields);
+ wantcont = FALSE;
+ break;
+ case LC_LEAP:
+ if (name != leapsec)
+ (void) fprintf(stderr,
+_("%s: Leap line in non leap seconds file %s\n"),
+ progname, name);
+ else inleap(fields, nfields);
+ wantcont = FALSE;
+ break;
+ default: /* "cannot happen" */
+ (void) fprintf(stderr,
+_("%s: panic: Invalid l_value %d\n"),
+ progname, lp->l_value);
+ exit(EXIT_FAILURE);
+ }
+ }
+ ifree((char *) fields);
+ }
+ if (ferror(fp)) {
+ (void) fprintf(stderr, _("%s: Error reading %s\n"),
+ progname, filename);
+ exit(EXIT_FAILURE);
+ }
+ if (fp != stdin && fclose(fp)) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr, _("%s: Error closing %s: %s\n"),
+ progname, filename, e);
+ exit(EXIT_FAILURE);
+ }
+ if (wantcont)
+ error(_("expected continuation line not found"));
+}
+
+/*
+** Convert a string of one of the forms
+** h -h hh:mm -hh:mm hh:mm:ss -hh:mm:ss
+** into a number of seconds.
+** A null string maps to zero.
+** Call error with errstring and return zero on errors.
+*/
+
+static long
+gethms(string, errstring, signable)
+const char * string;
+const char * const errstring;
+const int signable;
+{
+ int hh, mm, ss, sign;
+
+ if (string == NULL || *string == '\0')
+ return 0;
+ if (!signable)
+ sign = 1;
+ else if (*string == '-') {
+ sign = -1;
+ ++string;
+ } else sign = 1;
+ if (sscanf(string, scheck(string, "%d"), &hh) == 1)
+ mm = ss = 0;
+ else if (sscanf(string, scheck(string, "%d:%d"), &hh, &mm) == 2)
+ ss = 0;
+ else if (sscanf(string, scheck(string, "%d:%d:%d"),
+ &hh, &mm, &ss) != 3) {
+ error(errstring);
+ return 0;
+ }
+ if ((hh < 0 || hh >= HOURSPERDAY ||
+ mm < 0 || mm >= MINSPERHOUR ||
+ ss < 0 || ss > SECSPERMIN) &&
+ !(hh == HOURSPERDAY && mm == 0 && ss == 0)) {
+ error(errstring);
+ return 0;
+ }
+ if (noise && hh == HOURSPERDAY)
+ warning(_("24:00 not handled by pre-1998 versions of zic"));
+ return eitol(sign) *
+ (eitol(hh * MINSPERHOUR + mm) *
+ eitol(SECSPERMIN) + eitol(ss));
+}
+
+static void
+inrule(fields, nfields)
+register char ** const fields;
+const int nfields;
+{
+ static struct rule r;
+
+ if (nfields != RULE_FIELDS) {
+ error(_("wrong number of fields on Rule line"));
+ return;
+ }
+ if (*fields[RF_NAME] == '\0') {
+ error(_("nameless rule"));
+ return;
+ }
+ r.r_filename = filename;
+ r.r_linenum = linenum;
+ r.r_stdoff = gethms(fields[RF_STDOFF], _("invalid saved time"), TRUE);
+ rulesub(&r, fields[RF_LOYEAR], fields[RF_HIYEAR], fields[RF_COMMAND],
+ fields[RF_MONTH], fields[RF_DAY], fields[RF_TOD]);
+ r.r_name = ecpyalloc(fields[RF_NAME]);
+ r.r_abbrvar = ecpyalloc(fields[RF_ABBRVAR]);
+ if (max_abbrvar_len < strlen(r.r_abbrvar))
+ max_abbrvar_len = strlen(r.r_abbrvar);
+ rules = (struct rule *) (void *) erealloc((char *) rules,
+ (int) ((nrules + 1) * sizeof *rules));
+ rules[nrules++] = r;
+}
+
+static int
+inzone(fields, nfields)
+register char ** const fields;
+const int nfields;
+{
+ register int i;
+ static char * buf;
+
+ if (nfields < ZONE_MINFIELDS || nfields > ZONE_MAXFIELDS) {
+ error(_("wrong number of fields on Zone line"));
+ return FALSE;
+ }
+ if (strcmp(fields[ZF_NAME], TZDEFAULT) == 0 && lcltime != NULL) {
+ buf = erealloc(buf, (int) (132 + strlen(TZDEFAULT)));
+ (void) sprintf(buf,
+_("\"Zone %s\" line and -l option are mutually exclusive"),
+ TZDEFAULT);
+ error(buf);
+ return FALSE;
+ }
+ if (strcmp(fields[ZF_NAME], TZDEFRULES) == 0 && psxrules != NULL) {
+ buf = erealloc(buf, (int) (132 + strlen(TZDEFRULES)));
+ (void) sprintf(buf,
+_("\"Zone %s\" line and -p option are mutually exclusive"),
+ TZDEFRULES);
+ error(buf);
+ return FALSE;
+ }
+ for (i = 0; i < nzones; ++i)
+ if (zones[i].z_name != NULL &&
+ strcmp(zones[i].z_name, fields[ZF_NAME]) == 0) {
+ buf = erealloc(buf, (int) (132 +
+ strlen(fields[ZF_NAME]) +
+ strlen(zones[i].z_filename)));
+ (void) sprintf(buf,
+_("duplicate zone name %s (file \"%s\", line %d)"),
+ fields[ZF_NAME],
+ zones[i].z_filename,
+ zones[i].z_linenum);
+ error(buf);
+ return FALSE;
+ }
+ return inzsub(fields, nfields, FALSE);
+}
+
+static int
+inzcont(fields, nfields)
+register char ** const fields;
+const int nfields;
+{
+ if (nfields < ZONEC_MINFIELDS || nfields > ZONEC_MAXFIELDS) {
+ error(_("wrong number of fields on Zone continuation line"));
+ return FALSE;
+ }
+ return inzsub(fields, nfields, TRUE);
+}
+
+static int
+inzsub(fields, nfields, iscont)
+register char ** const fields;
+const int nfields;
+const int iscont;
+{
+ register char * cp;
+ static struct zone z;
+ register int i_gmtoff, i_rule, i_format;
+ register int i_untilyear, i_untilmonth;
+ register int i_untilday, i_untiltime;
+ register int hasuntil;
+
+ if (iscont) {
+ i_gmtoff = ZFC_GMTOFF;
+ i_rule = ZFC_RULE;
+ i_format = ZFC_FORMAT;
+ i_untilyear = ZFC_TILYEAR;
+ i_untilmonth = ZFC_TILMONTH;
+ i_untilday = ZFC_TILDAY;
+ i_untiltime = ZFC_TILTIME;
+ z.z_name = NULL;
+ } else {
+ i_gmtoff = ZF_GMTOFF;
+ i_rule = ZF_RULE;
+ i_format = ZF_FORMAT;
+ i_untilyear = ZF_TILYEAR;
+ i_untilmonth = ZF_TILMONTH;
+ i_untilday = ZF_TILDAY;
+ i_untiltime = ZF_TILTIME;
+ z.z_name = ecpyalloc(fields[ZF_NAME]);
+ }
+ z.z_filename = filename;
+ z.z_linenum = linenum;
+ z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UTC offset"), TRUE);
+ if ((cp = strchr(fields[i_format], '%')) != 0) {
+ if (*++cp != 's' || strchr(cp, '%') != 0) {
+ error(_("invalid abbreviation format"));
+ return FALSE;
+ }
+ }
+ z.z_rule = ecpyalloc(fields[i_rule]);
+ z.z_format = ecpyalloc(fields[i_format]);
+ if (max_format_len < strlen(z.z_format))
+ max_format_len = strlen(z.z_format);
+ hasuntil = nfields > i_untilyear;
+ if (hasuntil) {
+ z.z_untilrule.r_filename = filename;
+ z.z_untilrule.r_linenum = linenum;
+ rulesub(&z.z_untilrule,
+ fields[i_untilyear],
+ "only",
+ "",
+ (nfields > i_untilmonth) ?
+ fields[i_untilmonth] : "Jan",
+ (nfields > i_untilday) ? fields[i_untilday] : "1",
+ (nfields > i_untiltime) ? fields[i_untiltime] : "0");
+ z.z_untiltime = rpytime(&z.z_untilrule,
+ z.z_untilrule.r_loyear);
+ if (iscont && nzones > 0 &&
+ z.z_untiltime > min_time &&
+ z.z_untiltime < max_time &&
+ zones[nzones - 1].z_untiltime > min_time &&
+ zones[nzones - 1].z_untiltime < max_time &&
+ zones[nzones - 1].z_untiltime >= z.z_untiltime) {
+ error(_(
+"Zone continuation line end time is not after end time of previous line"
+ ));
+ return FALSE;
+ }
+ }
+ zones = (struct zone *) (void *) erealloc((char *) zones,
+ (int) ((nzones + 1) * sizeof *zones));
+ zones[nzones++] = z;
+ /*
+ ** If there was an UNTIL field on this line,
+ ** there's more information about the zone on the next line.
+ */
+ return hasuntil;
+}
+
+static void
+inleap(fields, nfields)
+register char ** const fields;
+const int nfields;
+{
+ register const char * cp;
+ register const struct lookup * lp;
+ register int i, j;
+ int year, month, day;
+ long dayoff, tod;
+ zic_t t;
+
+ if (nfields != LEAP_FIELDS) {
+ error(_("wrong number of fields on Leap line"));
+ return;
+ }
+ dayoff = 0;
+ cp = fields[LP_YEAR];
+ if (sscanf(cp, scheck(cp, "%d"), &year) != 1) {
+ /*
+ ** Leapin' Lizards!
+ */
+ error(_("invalid leaping year"));
+ return;
+ }
+ if (!leapseen || leapmaxyear < year)
+ leapmaxyear = year;
+ if (!leapseen || leapminyear > year)
+ leapminyear = year;
+ leapseen = TRUE;
+ j = EPOCH_YEAR;
+ while (j != year) {
+ if (year > j) {
+ i = len_years[isleap(j)];
+ ++j;
+ } else {
+ --j;
+ i = -len_years[isleap(j)];
+ }
+ dayoff = oadd(dayoff, eitol(i));
+ }
+ if ((lp = byword(fields[LP_MONTH], mon_names)) == NULL) {
+ error(_("invalid month name"));
+ return;
+ }
+ month = lp->l_value;
+ j = TM_JANUARY;
+ while (j != month) {
+ i = len_months[isleap(year)][j];
+ dayoff = oadd(dayoff, eitol(i));
+ ++j;
+ }
+ cp = fields[LP_DAY];
+ if (sscanf(cp, scheck(cp, "%d"), &day) != 1 ||
+ day <= 0 || day > len_months[isleap(year)][month]) {
+ error(_("invalid day of month"));
+ return;
+ }
+ dayoff = oadd(dayoff, eitol(day - 1));
+ if (dayoff < 0 && !TYPE_SIGNED(zic_t)) {
+ error(_("time before zero"));
+ return;
+ }
+ if (dayoff < min_time / SECSPERDAY) {
+ error(_("time too small"));
+ return;
+ }
+ if (dayoff > max_time / SECSPERDAY) {
+ error(_("time too large"));
+ return;
+ }
+ t = (zic_t) dayoff * SECSPERDAY;
+ tod = gethms(fields[LP_TIME], _("invalid time of day"), FALSE);
+ cp = fields[LP_CORR];
+ {
+ register int positive;
+ int count;
+
+ if (strcmp(cp, "") == 0) { /* infile() turns "-" into "" */
+ positive = FALSE;
+ count = 1;
+ } else if (strcmp(cp, "--") == 0) {
+ positive = FALSE;
+ count = 2;
+ } else if (strcmp(cp, "+") == 0) {
+ positive = TRUE;
+ count = 1;
+ } else if (strcmp(cp, "++") == 0) {
+ positive = TRUE;
+ count = 2;
+ } else {
+ error(_("illegal CORRECTION field on Leap line"));
+ return;
+ }
+ if ((lp = byword(fields[LP_ROLL], leap_types)) == NULL) {
+ error(_(
+ "illegal Rolling/Stationary field on Leap line"
+ ));
+ return;
+ }
+ leapadd(tadd(t, tod), positive, lp->l_value, count);
+ }
+}
+
+static void
+inlink(fields, nfields)
+register char ** const fields;
+const int nfields;
+{
+ struct link l;
+
+ if (nfields != LINK_FIELDS) {
+ error(_("wrong number of fields on Link line"));
+ return;
+ }
+ if (*fields[LF_FROM] == '\0') {
+ error(_("blank FROM field on Link line"));
+ return;
+ }
+ if (*fields[LF_TO] == '\0') {
+ error(_("blank TO field on Link line"));
+ return;
+ }
+ l.l_filename = filename;
+ l.l_linenum = linenum;
+ l.l_from = ecpyalloc(fields[LF_FROM]);
+ l.l_to = ecpyalloc(fields[LF_TO]);
+ links = (struct link *) (void *) erealloc((char *) links,
+ (int) ((nlinks + 1) * sizeof *links));
+ links[nlinks++] = l;
+}
+
+static void
+rulesub(rp, loyearp, hiyearp, typep, monthp, dayp, timep)
+register struct rule * const rp;
+const char * const loyearp;
+const char * const hiyearp;
+const char * const typep;
+const char * const monthp;
+const char * const dayp;
+const char * const timep;
+{
+ register const struct lookup * lp;
+ register const char * cp;
+ register char * dp;
+ register char * ep;
+
+ if ((lp = byword(monthp, mon_names)) == NULL) {
+ error(_("invalid month name"));
+ return;
+ }
+ rp->r_month = lp->l_value;
+ rp->r_todisstd = FALSE;
+ rp->r_todisgmt = FALSE;
+ dp = ecpyalloc(timep);
+ if (*dp != '\0') {
+ ep = dp + strlen(dp) - 1;
+ switch (lowerit(*ep)) {
+ case 's': /* Standard */
+ rp->r_todisstd = TRUE;
+ rp->r_todisgmt = FALSE;
+ *ep = '\0';
+ break;
+ case 'w': /* Wall */
+ rp->r_todisstd = FALSE;
+ rp->r_todisgmt = FALSE;
+ *ep = '\0';
+ break;
+ case 'g': /* Greenwich */
+ case 'u': /* Universal */
+ case 'z': /* Zulu */
+ rp->r_todisstd = TRUE;
+ rp->r_todisgmt = TRUE;
+ *ep = '\0';
+ break;
+ }
+ }
+ rp->r_tod = gethms(dp, _("invalid time of day"), FALSE);
+ ifree(dp);
+ /*
+ ** Year work.
+ */
+ cp = loyearp;
+ lp = byword(cp, begin_years);
+ rp->r_lowasnum = lp == NULL;
+ if (!rp->r_lowasnum) switch ((int) lp->l_value) {
+ case YR_MINIMUM:
+ rp->r_loyear = INT_MIN;
+ break;
+ case YR_MAXIMUM:
+ rp->r_loyear = INT_MAX;
+ break;
+ default: /* "cannot happen" */
+ (void) fprintf(stderr,
+ _("%s: panic: Invalid l_value %d\n"),
+ progname, lp->l_value);
+ exit(EXIT_FAILURE);
+ } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_loyear) != 1) {
+ error(_("invalid starting year"));
+ return;
+ }
+ cp = hiyearp;
+ lp = byword(cp, end_years);
+ rp->r_hiwasnum = lp == NULL;
+ if (!rp->r_hiwasnum) switch ((int) lp->l_value) {
+ case YR_MINIMUM:
+ rp->r_hiyear = INT_MIN;
+ break;
+ case YR_MAXIMUM:
+ rp->r_hiyear = INT_MAX;
+ break;
+ case YR_ONLY:
+ rp->r_hiyear = rp->r_loyear;
+ break;
+ default: /* "cannot happen" */
+ (void) fprintf(stderr,
+ _("%s: panic: Invalid l_value %d\n"),
+ progname, lp->l_value);
+ exit(EXIT_FAILURE);
+ } else if (sscanf(cp, scheck(cp, "%d"), &rp->r_hiyear) != 1) {
+ error(_("invalid ending year"));
+ return;
+ }
+ if (rp->r_loyear > rp->r_hiyear) {
+ error(_("starting year greater than ending year"));
+ return;
+ }
+ if (*typep == '\0')
+ rp->r_yrtype = NULL;
+ else {
+ if (rp->r_loyear == rp->r_hiyear) {
+ error(_("typed single year"));
+ return;
+ }
+ rp->r_yrtype = ecpyalloc(typep);
+ }
+ /*
+ ** Day work.
+ ** Accept things such as:
+ ** 1
+ ** last-Sunday
+ ** Sun<=20
+ ** Sun>=7
+ */
+ dp = ecpyalloc(dayp);
+ if ((lp = byword(dp, lasts)) != NULL) {
+ rp->r_dycode = DC_DOWLEQ;
+ rp->r_wday = lp->l_value;
+ rp->r_dayofmonth = len_months[1][rp->r_month];
+ } else {
+ if ((ep = strchr(dp, '<')) != 0)
+ rp->r_dycode = DC_DOWLEQ;
+ else if ((ep = strchr(dp, '>')) != 0)
+ rp->r_dycode = DC_DOWGEQ;
+ else {
+ ep = dp;
+ rp->r_dycode = DC_DOM;
+ }
+ if (rp->r_dycode != DC_DOM) {
+ *ep++ = 0;
+ if (*ep++ != '=') {
+ error(_("invalid day of month"));
+ ifree(dp);
+ return;
+ }
+ if ((lp = byword(dp, wday_names)) == NULL) {
+ error(_("invalid weekday name"));
+ ifree(dp);
+ return;
+ }
+ rp->r_wday = lp->l_value;
+ }
+ if (sscanf(ep, scheck(ep, "%d"), &rp->r_dayofmonth) != 1 ||
+ rp->r_dayofmonth <= 0 ||
+ (rp->r_dayofmonth > len_months[1][rp->r_month])) {
+ error(_("invalid day of month"));
+ ifree(dp);
+ return;
+ }
+ }
+ ifree(dp);
+}
+
+static void
+convert(val, buf)
+const long val;
+char * const buf;
+{
+ register int i;
+ register int shift;
+
+ for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
+ buf[i] = val >> shift;
+}
+
+static void
+convert64(val, buf)
+const zic_t val;
+char * const buf;
+{
+ register int i;
+ register int shift;
+
+ for (i = 0, shift = 56; i < 8; ++i, shift -= 8)
+ buf[i] = val >> shift;
+}
+
+static void
+puttzcode(val, fp)
+const long val;
+FILE * const fp;
+{
+ char buf[4];
+
+ convert(val, buf);
+ (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp);
+}
+
+static void
+puttzcode64(val, fp)
+const zic_t val;
+FILE * const fp;
+{
+ char buf[8];
+
+ convert64(val, buf);
+ (void) fwrite((void *) buf, (size_t) sizeof buf, (size_t) 1, fp);
+}
+
+static int
+atcomp(avp, bvp)
+const void * avp;
+const void * bvp;
+{
+ const zic_t a = ((const struct attype *) avp)->at;
+ const zic_t b = ((const struct attype *) bvp)->at;
+
+ return (a < b) ? -1 : (a > b);
+}
+
+static int
+is32(x)
+const zic_t x;
+{
+ return INT32_MIN <= x && x <= INT32_MAX;
+}
+
+static void
+writezone(name, string)
+const char * const name;
+const char * const string;
+{
+ register FILE * fp;
+ register int i, j;
+ register int leapcnt32, leapi32;
+ register int timecnt32, timei32;
+ register int pass;
+ static char * fullname;
+ static const struct tzhead tzh0;
+ static struct tzhead tzh;
+ zic_t ats[TZ_MAX_TIMES];
+ unsigned char types[TZ_MAX_TIMES];
+
+ /*
+ ** Sort.
+ */
+ if (timecnt > 1)
+ (void) qsort((void *) attypes, (size_t) timecnt,
+ (size_t) sizeof *attypes, atcomp);
+ /*
+ ** Optimize.
+ */
+ {
+ int fromi;
+ int toi;
+
+ toi = 0;
+ fromi = 0;
+ while (fromi < timecnt && attypes[fromi].at < min_time)
+ ++fromi;
+ if (isdsts[0] == 0)
+ while (fromi < timecnt && attypes[fromi].type == 0)
+ ++fromi; /* handled by default rule */
+ for ( ; fromi < timecnt; ++fromi) {
+ if (toi != 0 && ((attypes[fromi].at +
+ gmtoffs[attypes[toi - 1].type]) <=
+ (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0
+ : attypes[toi - 2].type]))) {
+ attypes[toi - 1].type =
+ attypes[fromi].type;
+ continue;
+ }
+ if (toi == 0 ||
+ attypes[toi - 1].type != attypes[fromi].type)
+ attypes[toi++] = attypes[fromi];
+ }
+ timecnt = toi;
+ }
+ /*
+ ** Transfer.
+ */
+ for (i = 0; i < timecnt; ++i) {
+ ats[i] = attypes[i].at;
+ types[i] = attypes[i].type;
+ }
+ /*
+ ** Correct for leap seconds.
+ */
+ for (i = 0; i < timecnt; ++i) {
+ j = leapcnt;
+ while (--j >= 0)
+ if (ats[i] > trans[j] - corr[j]) {
+ ats[i] = tadd(ats[i], corr[j]);
+ break;
+ }
+ }
+ /*
+ ** Figure out 32-bit-limited starts and counts.
+ */
+ timecnt32 = timecnt;
+ timei32 = 0;
+ leapcnt32 = leapcnt;
+ leapi32 = 0;
+ while (timecnt32 > 0 && !is32(ats[timecnt32 - 1]))
+ --timecnt32;
+ while (timecnt32 > 0 && !is32(ats[timei32])) {
+ --timecnt32;
+ ++timei32;
+ }
+ while (leapcnt32 > 0 && !is32(trans[leapcnt32 - 1]))
+ --leapcnt32;
+ while (leapcnt32 > 0 && !is32(trans[leapi32])) {
+ --leapcnt32;
+ ++leapi32;
+ }
+ fullname = erealloc(fullname,
+ (int) (strlen(directory) + 1 + strlen(name) + 1));
+ (void) sprintf(fullname, "%s/%s", directory, name);
+ /*
+ ** Remove old file, if any, to snap links.
+ */
+ if (!itsdir(fullname) && remove(fullname) != 0 && errno != ENOENT) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr, _("%s: Can't remove %s: %s\n"),
+ progname, fullname, e);
+ exit(EXIT_FAILURE);
+ }
+ if ((fp = fopen(fullname, "wb")) == NULL) {
+ if (mkdirs(fullname) != 0)
+ exit(EXIT_FAILURE);
+ if ((fp = fopen(fullname, "wb")) == NULL) {
+ const char *e = strerror(errno);
+
+ (void) fprintf(stderr, _("%s: Can't create %s: %s\n"),
+ progname, fullname, e);
+ exit(EXIT_FAILURE);
+ }
+ }
+ for (pass = 1; pass <= 2; ++pass) {
+ register int thistimei, thistimecnt;
+ register int thisleapi, thisleapcnt;
+ register int thistimelim, thisleaplim;
+ int writetype[TZ_MAX_TIMES];
+ int typemap[TZ_MAX_TYPES];
+ register int thistypecnt;
+ char thischars[TZ_MAX_CHARS];
+ char thischarcnt;
+ int indmap[TZ_MAX_CHARS];
+
+ if (pass == 1) {
+ thistimei = timei32;
+ thistimecnt = timecnt32;
+ thisleapi = leapi32;
+ thisleapcnt = leapcnt32;
+ } else {
+ thistimei = 0;
+ thistimecnt = timecnt;
+ thisleapi = 0;
+ thisleapcnt = leapcnt;
+ }
+ thistimelim = thistimei + thistimecnt;
+ thisleaplim = thisleapi + thisleapcnt;
+ for (i = 0; i < typecnt; ++i)
+ writetype[i] = thistimecnt == timecnt;
+ if (thistimecnt == 0) {
+ /*
+ ** No transition times fall in the current
+ ** (32- or 64-bit) window.
+ */
+ if (typecnt != 0)
+ writetype[typecnt - 1] = TRUE;
+ } else {
+ for (i = thistimei - 1; i < thistimelim; ++i)
+ if (i >= 0)
+ writetype[types[i]] = TRUE;
+ /*
+ ** For America/Godthab and Antarctica/Palmer
+ */
+ if (thistimei == 0)
+ writetype[0] = TRUE;
+ }
+ thistypecnt = 0;
+ for (i = 0; i < typecnt; ++i)
+ typemap[i] = writetype[i] ? thistypecnt++ : -1;
+ for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i)
+ indmap[i] = -1;
+ thischarcnt = 0;
+ for (i = 0; i < typecnt; ++i) {
+ register char * thisabbr;
+
+ if (!writetype[i])
+ continue;
+ if (indmap[abbrinds[i]] >= 0)
+ continue;
+ thisabbr = &chars[abbrinds[i]];
+ for (j = 0; j < thischarcnt; ++j)
+ if (strcmp(&thischars[j], thisabbr) == 0)
+ break;
+ if (j == thischarcnt) {
+ (void) strcpy(&thischars[(int) thischarcnt],
+ thisabbr);
+ thischarcnt += strlen(thisabbr) + 1;
+ }
+ indmap[abbrinds[i]] = j;
+ }
+#define DO(field) (void) fwrite((void *) tzh.field, \
+ (size_t) sizeof tzh.field, (size_t) 1, fp)
+ tzh = tzh0;
+#ifdef ICU
+ * (ICUZoneinfoVersion*) &tzh.tzh_reserved = TZ_ICU_VERSION;
+ (void) strncpy(tzh.tzh_magic, TZ_ICU_MAGIC, sizeof tzh.tzh_magic);
+#else
+ (void) strncpy(tzh.tzh_magic, TZ_MAGIC, sizeof tzh.tzh_magic);
+#endif
+ tzh.tzh_version[0] = ZIC_VERSION;
+ convert(eitol(thistypecnt), tzh.tzh_ttisgmtcnt);
+ convert(eitol(thistypecnt), tzh.tzh_ttisstdcnt);
+ convert(eitol(thisleapcnt), tzh.tzh_leapcnt);
+ convert(eitol(thistimecnt), tzh.tzh_timecnt);
+ convert(eitol(thistypecnt), tzh.tzh_typecnt);
+ convert(eitol(thischarcnt), tzh.tzh_charcnt);
+ DO(tzh_magic);
+ DO(tzh_version);
+ DO(tzh_reserved);
+ DO(tzh_ttisgmtcnt);
+ DO(tzh_ttisstdcnt);
+ DO(tzh_leapcnt);
+ DO(tzh_timecnt);
+ DO(tzh_typecnt);
+ DO(tzh_charcnt);
+#undef DO
+ for (i = thistimei; i < thistimelim; ++i)
+ if (pass == 1)
+ puttzcode((long) ats[i], fp);
+ else puttzcode64(ats[i], fp);
+ for (i = thistimei; i < thistimelim; ++i) {
+ unsigned char uc;
+
+ uc = typemap[types[i]];
+ (void) fwrite((void *) &uc,
+ (size_t) sizeof uc,
+ (size_t) 1,
+ fp);
+ }
+ for (i = 0; i < typecnt; ++i)
+ if (writetype[i]) {
+#ifdef ICU
+ puttzcode((long) rawoffs[i], fp);
+ puttzcode((long) dstoffs[i], fp);
+#else
+ puttzcode((long) gmtoffs[i], fp);
+#endif
+ (void) putc(isdsts[i], fp);
+ (void) putc((unsigned char) indmap[abbrinds[i]], fp);
+ }
+ if (thischarcnt != 0)
+ (void) fwrite((void *) thischars,
+ (size_t) sizeof thischars[0],
+ (size_t) thischarcnt, fp);
+ for (i = thisleapi; i < thisleaplim; ++i) {
+ register zic_t todo;
+
+ if (roll[i]) {
+ if (timecnt == 0 || trans[i] < ats[0]) {
+ j = 0;
+ while (isdsts[j])
+ if (++j >= typecnt) {
+ j = 0;
+ break;
+ }
+ } else {
+ j = 1;
+ while (j < timecnt &&
+ trans[i] >= ats[j])
+ ++j;
+ j = types[j - 1];
+ }
+ todo = tadd(trans[i], -gmtoffs[j]);
+ } else todo = trans[i];
+ if (pass == 1)
+ puttzcode((long) todo, fp);
+ else puttzcode64(todo, fp);
+ puttzcode(corr[i], fp);
+ }
+ for (i = 0; i < typecnt; ++i)
+ if (writetype[i])
+ (void) putc(ttisstds[i], fp);
+ for (i = 0; i < typecnt; ++i)
+ if (writetype[i])
+ (void) putc(ttisgmts[i], fp);
+ }
+ (void) fprintf(fp, "\n%s\n", string);
+ if (ferror(fp) || fclose(fp)) {
+ (void) fprintf(stderr, _("%s: Error writing %s\n"),
+ progname, fullname);
+ exit(EXIT_FAILURE);
+ }
+}
+
+static void
+doabbr(abbr, format, letters, isdst, doquotes)
+char * const abbr;
+const char * const format;
+const char * const letters;
+const int isdst;
+const int doquotes;
+{
+ register char * cp;
+ register char * slashp;
+ register int len;
+
+ slashp = strchr(format, '/');
+ if (slashp == NULL) {
+ if (letters == NULL)
+ (void) strcpy(abbr, format);
+ else (void) sprintf(abbr, format, letters);
+ } else if (isdst) {
+ (void) strcpy(abbr, slashp + 1);
+ } else {
+ if (slashp > format)
+ (void) strncpy(abbr, format,
+ (unsigned) (slashp - format));
+ abbr[slashp - format] = '\0';
+ }
+ if (!doquotes)
+ return;
+ for (cp = abbr; *cp != '\0'; ++cp)
+ if (strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", *cp) == NULL &&
+ strchr("abcdefghijklmnopqrstuvwxyz", *cp) == NULL)
+ break;
+ len = strlen(abbr);
+ if (len > 0 && *cp == '\0')
+ return;
+ abbr[len + 2] = '\0';
+ abbr[len + 1] = '>';
+ for ( ; len > 0; --len)
+ abbr[len] = abbr[len - 1];
+ abbr[0] = '<';
+}
+
+static void
+updateminmax(x)
+const int x;
+{
+ if (min_year > x)
+ min_year = x;
+ if (max_year < x)
+ max_year = x;
+}
+
+static int
+stringoffset(result, offset)
+char * result;
+long offset;
+{
+ register int hours;
+ register int minutes;
+ register int seconds;
+
+ result[0] = '\0';
+ if (offset < 0) {
+ (void) strcpy(result, "-");
+ offset = -offset;
+ }
+ seconds = offset % SECSPERMIN;
+ offset /= SECSPERMIN;
+ minutes = offset % MINSPERHOUR;
+ offset /= MINSPERHOUR;
+ hours = offset;
+ if (hours >= HOURSPERDAY) {
+ result[0] = '\0';
+ return -1;
+ }
+ (void) sprintf(end(result), "%d", hours);
+ if (minutes != 0 || seconds != 0) {
+ (void) sprintf(end(result), ":%02d", minutes);
+ if (seconds != 0)
+ (void) sprintf(end(result), ":%02d", seconds);
+ }
+ return 0;
+}
+
+static int
+stringrule(result, rp, dstoff, gmtoff)
+char * result;
+const struct rule * const rp;
+const long dstoff;
+const long gmtoff;
+{
+ register long tod;
+
+ result = end(result);
+ if (rp->r_dycode == DC_DOM) {
+ register int month, total;
+
+ if (rp->r_dayofmonth == 29 && rp->r_month == TM_FEBRUARY)
+ return -1;
+ total = 0;
+ for (month = 0; month < rp->r_month; ++month)
+ total += len_months[0][month];
+ (void) sprintf(result, "J%d", total + rp->r_dayofmonth);
+ } else {
+ register int week;
+
+ if (rp->r_dycode == DC_DOWGEQ) {
+ week = 1 + rp->r_dayofmonth / DAYSPERWEEK;
+ if ((week - 1) * DAYSPERWEEK + 1 != rp->r_dayofmonth)
+ return -1;
+ } else if (rp->r_dycode == DC_DOWLEQ) {
+ if (rp->r_dayofmonth == len_months[1][rp->r_month])
+ week = 5;
+ else {
+ week = 1 + rp->r_dayofmonth / DAYSPERWEEK;
+ if (week * DAYSPERWEEK - 1 != rp->r_dayofmonth)
+ return -1;
+ }
+ } else return -1; /* "cannot happen" */
+ (void) sprintf(result, "M%d.%d.%d",
+ rp->r_month + 1, week, rp->r_wday);
+ }
+ tod = rp->r_tod;
+ if (rp->r_todisgmt)
+ tod += gmtoff;
+ if (rp->r_todisstd && rp->r_stdoff == 0)
+ tod += dstoff;
+ if (tod < 0) {
+ result[0] = '\0';
+ return -1;
+ }
+ if (tod != 2 * SECSPERMIN * MINSPERHOUR) {
+ (void) strcat(result, "/");
+ if (stringoffset(end(result), tod) != 0)
+ return -1;
+ }
+ return 0;
+}
+
+static void
+stringzone(result, zpfirst, zonecount)
+char * result;
+const struct zone * const zpfirst;
+const int zonecount;
+{
+ register const struct zone * zp;
+ register struct rule * rp;
+ register struct rule * stdrp;
+ register struct rule * dstrp;
+ register int i;
+ register const char * abbrvar;
+
+ result[0] = '\0';
+ zp = zpfirst + zonecount - 1;
+ stdrp = dstrp = NULL;
+ for (i = 0; i < zp->z_nrules; ++i) {
+ rp = &zp->z_rules[i];
+ if (rp->r_hiwasnum || rp->r_hiyear != INT_MAX)
+ continue;
+ if (rp->r_yrtype != NULL)
+ continue;
+ if (rp->r_stdoff == 0) {
+ if (stdrp == NULL)
+ stdrp = rp;
+ else return;
+ } else {
+ if (dstrp == NULL)
+ dstrp = rp;
+ else return;
+ }
+ }
+ if (stdrp == NULL && dstrp == NULL) {
+ /*
+ ** There are no rules running through "max".
+ ** Let's find the latest rule.
+ */
+ for (i = 0; i < zp->z_nrules; ++i) {
+ rp = &zp->z_rules[i];
+ if (stdrp == NULL || rp->r_hiyear > stdrp->r_hiyear ||
+ (rp->r_hiyear == stdrp->r_hiyear &&
+ rp->r_month > stdrp->r_month))
+ stdrp = rp;
+ }
+ if (stdrp != NULL && stdrp->r_stdoff != 0)
+ return; /* We end up in DST (a POSIX no-no). */
+ /*
+ ** Horrid special case: if year is 2037,
+ ** presume this is a zone handled on a year-by-year basis;
+ ** do not try to apply a rule to the zone.
+ */
+ if (stdrp != NULL && stdrp->r_hiyear == 2037)
+ return;
+ }
+ if (stdrp == NULL && zp->z_nrules != 0)
+ return;
+ abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar;
+ doabbr(result, zp->z_format, abbrvar, FALSE, TRUE);
+ if (stringoffset(end(result), -zp->z_gmtoff) != 0) {
+ result[0] = '\0';
+ return;
+ }
+ if (dstrp == NULL)
+ return;
+ doabbr(end(result), zp->z_format, dstrp->r_abbrvar, TRUE, TRUE);
+ if (dstrp->r_stdoff != SECSPERMIN * MINSPERHOUR)
+ if (stringoffset(end(result),
+ -(zp->z_gmtoff + dstrp->r_stdoff)) != 0) {
+ result[0] = '\0';
+ return;
+ }
+ (void) strcat(result, ",");
+ if (stringrule(result, dstrp, dstrp->r_stdoff, zp->z_gmtoff) != 0) {
+ result[0] = '\0';
+ return;
+ }
+ (void) strcat(result, ",");
+ if (stringrule(result, stdrp, dstrp->r_stdoff, zp->z_gmtoff) != 0) {
+ result[0] = '\0';
+ return;
+ }
+}
+
+#ifdef ICU
+
+int add_icu_final_rules(const struct rule* r1, const struct rule* r2) {
+ int i;
+
+ for (i=0; i<finalRulesCount; ++i) { /* i+=2 should work too */
+ if (r1==finalRules[i]) return i; /* [sic] pointer comparison */
+ }
+
+ finalRules = (const struct rule**) (void*) erealloc((char *) finalRules,
+ (finalRulesCount + 2) * sizeof(*finalRules));
+ finalRules[finalRulesCount++] = r1;
+ finalRules[finalRulesCount++] = r2;
+ return finalRulesCount - 2;
+}
+
+#endif /*ICU*/
+
+static void
+outzone(zpfirst, zonecount)
+const struct zone * const zpfirst;
+const int zonecount;
+{
+ register const struct zone * zp;
+ register struct rule * rp;
+ register int i, j;
+ register int usestart, useuntil;
+ register zic_t starttime, untiltime;
+ register long gmtoff;
+ register long stdoff;
+ register int year;
+ register long startoff;
+ register int startttisstd;
+ register int startttisgmt;
+ register int type;
+ register char * startbuf;
+ register char * ab;
+ register char * envvar;
+ register int max_abbr_len;
+ register int max_envvar_len;
+#ifdef ICU
+ int finalRuleYear, finalRuleIndex;
+ const struct rule* finalRule1;
+ const struct rule* finalRule2;
+#endif
+
+ max_abbr_len = 2 + max_format_len + max_abbrvar_len;
+ max_envvar_len = 2 * max_abbr_len + 5 * 9;
+ startbuf = emalloc(max_abbr_len + 1);
+ ab = emalloc(max_abbr_len + 1);
+ envvar = emalloc(max_envvar_len + 1);
+ INITIALIZE(untiltime);
+ INITIALIZE(starttime);
+ /*
+ ** Now. . .finally. . .generate some useful data!
+ */
+ timecnt = 0;
+ typecnt = 0;
+ charcnt = 0;
+ /*
+ ** Thanks to Earl Chew
+ ** for noting the need to unconditionally initialize startttisstd.
+ */
+ startttisstd = FALSE;
+ startttisgmt = FALSE;
+ min_year = max_year = EPOCH_YEAR;
+ if (leapseen) {
+ updateminmax(leapminyear);
+ updateminmax(leapmaxyear);
+ }
+ for (i = 0; i < zonecount; ++i) {
+ zp = &zpfirst[i];
+ updateminmax(zp->z_untilrule.r_loyear);
+ for (j = 0; j < zp->z_nrules; ++j) {
+ rp = &zp->z_rules[j];
+ if (rp->r_lowasnum)
+ updateminmax(rp->r_loyear);
+ if (rp->r_hiwasnum)
+ updateminmax(rp->r_hiyear);
+ }
+ }
+ /*
+ ** Generate lots of data if a rule can't cover all future times.
+ */
+ stringzone(envvar, zpfirst, zonecount);
+ if (noise && envvar[0] == '\0') {
+ register char * wp;
+
+wp = ecpyalloc(_("no POSIX environment variable for zone"));
+ wp = ecatalloc(wp, " ");
+ wp = ecatalloc(wp, zpfirst->z_name);
+ warning(wp);
+ ifree(wp);
+ }
+ if (envvar[0] == '\0') {
+ if (min_year >= INT_MIN + YEARSPERREPEAT)
+ min_year -= YEARSPERREPEAT;
+ else min_year = INT_MIN;
+ if (max_year <= INT_MAX - YEARSPERREPEAT)
+ max_year += YEARSPERREPEAT;
+ else max_year = INT_MAX;
+ }
+ /*
+ ** For the benefit of older systems, generate data through 2037.
+ */
+ if (max_year < 2037)
+ max_year = 2037;
+ for (i = 0; i < zonecount; ++i) {
+ /*
+ ** A guess that may well be corrected later.
+ */
+ stdoff = 0;
+ zp = &zpfirst[i];
+ usestart = i > 0 && (zp - 1)->z_untiltime > min_time;
+ useuntil = i < (zonecount - 1);
+ if (useuntil && zp->z_untiltime <= min_time)
+ continue;
+ gmtoff = zp->z_gmtoff;
+ eat(zp->z_filename, zp->z_linenum);
+ *startbuf = '\0';
+ startoff = zp->z_gmtoff;
+#ifdef ICU
+ finalRuleYear = finalRuleIndex = -1;
+ finalRule1 = finalRule2 = NULL;
+ if (i == (zonecount - 1)) { /* !useuntil */
+ /* Look for exactly 2 rules that end at 'max' and
+ * note them. Determine max(r_loyear) for the 2 of
+ * them. */
+ for (j=0; j<zp->z_nrules; ++j) {
+ rp = &zp->z_rules[j];
+ if (rp->r_hiyear == INT_MAX) {
+ if (finalRule1 == NULL) {
+ finalRule1 = rp;
+ finalRuleYear = rp->r_loyear;
+ } else if (finalRule2 == NULL) {
+ finalRule2 = rp;
+ if (rp->r_loyear > finalRuleYear) {
+ finalRuleYear = rp->r_loyear;
+ }
+ } else {
+ error("more than two max rules found (ICU)");
+ exit(EXIT_FAILURE);
+ }
+ }
+ }
+ if (finalRule1 != NULL && finalRule2 == NULL) {
+ error("only one max rule found (ICU)");
+ exit(EXIT_FAILURE);
+ }
+ if (finalRule1 != NULL) {
+ /* Swap if necessary so finalRule1 occurs before
+ * finalRule2 */
+ if (finalRule1->r_month > finalRule2->r_month) {
+ const struct rule* t = finalRule1;
+ finalRule1 = finalRule2;
+ finalRule2 = t;
+ }
+ /* Add final rule to our list */
+ finalRuleIndex = add_icu_final_rules(finalRule1, finalRule2);
+ }
+ }
+#endif
+
+ if (zp->z_nrules == 0) {
+ stdoff = zp->z_stdoff;
+ doabbr(startbuf, zp->z_format,
+ (char *) NULL, stdoff != 0, FALSE);
+ type = addtype(oadd(zp->z_gmtoff, stdoff),
+#ifdef ICU
+ zp->z_gmtoff, stdoff,
+#endif
+ startbuf, stdoff != 0, startttisstd,
+ startttisgmt);
+ if (usestart) {
+ addtt(starttime, type);
+ usestart = FALSE;
+ } else if (stdoff != 0)
+ addtt(min_time, type);
+ } else for (year = min_year; year <= max_year; ++year) {
+ if (useuntil && year > zp->z_untilrule.r_hiyear)
+ break;
+ /*
+ ** Mark which rules to do in the current year.
+ ** For those to do, calculate rpytime(rp, year);
+ */
+ for (j = 0; j < zp->z_nrules; ++j) {
+ rp = &zp->z_rules[j];
+ eats(zp->z_filename, zp->z_linenum,
+ rp->r_filename, rp->r_linenum);
+ rp->r_todo = year >= rp->r_loyear &&
+ year <= rp->r_hiyear &&
+ yearistype(year, rp->r_yrtype);
+ if (rp->r_todo)
+ rp->r_temp = rpytime(rp, year);
+ }
+ for ( ; ; ) {
+ register int k;
+ register zic_t jtime, ktime;
+ register long offset;
+
+ INITIALIZE(ktime);
+ if (useuntil) {
+ /*
+ ** Turn untiltime into UTC
+ ** assuming the current gmtoff and
+ ** stdoff values.
+ */
+ untiltime = zp->z_untiltime;
+ if (!zp->z_untilrule.r_todisgmt)
+ untiltime = tadd(untiltime,
+ -gmtoff);
+ if (!zp->z_untilrule.r_todisstd)
+ untiltime = tadd(untiltime,
+ -stdoff);
+ }
+ /*
+ ** Find the rule (of those to do, if any)
+ ** that takes effect earliest in the year.
+ */
+ k = -1;
+ for (j = 0; j < zp->z_nrules; ++j) {
+ rp = &zp->z_rules[j];
+ if (!rp->r_todo)
+ continue;
+ eats(zp->z_filename, zp->z_linenum,
+ rp->r_filename, rp->r_linenum);
+ offset = rp->r_todisgmt ? 0 : gmtoff;
+ if (!rp->r_todisstd)
+ offset = oadd(offset, stdoff);
+ jtime = rp->r_temp;
+ if (jtime == min_time ||
+ jtime == max_time)
+ continue;
+ jtime = tadd(jtime, -offset);
+ if (k < 0 || jtime < ktime) {
+ k = j;
+ ktime = jtime;
+ }
+ }
+ if (k < 0)
+ break; /* go on to next year */
+ rp = &zp->z_rules[k];
+ rp->r_todo = FALSE;
+#ifdef ICU
+ if (year >= finalRuleYear && rp == finalRule1) {
+ emit_icu_zone(icuFile,
+ zpfirst->z_name, zp->z_gmtoff,
+ rp, finalRuleIndex, year);
+ /* only emit this for the first year */
+ finalRule1 = NULL;
+ }
+#endif
+ if (useuntil && ktime >= untiltime)
+ break;
+ stdoff = rp->r_stdoff;
+ if (usestart && ktime == starttime)
+ usestart = FALSE;
+ if (usestart) {
+ if (ktime < starttime) {
+ startoff = oadd(zp->z_gmtoff,
+ stdoff);
+ doabbr(startbuf, zp->z_format,
+ rp->r_abbrvar,
+ rp->r_stdoff != 0,
+ FALSE);
+ continue;
+ }
+ if (*startbuf == '\0' &&
+ startoff == oadd(zp->z_gmtoff,
+ stdoff)) {
+ doabbr(startbuf,
+ zp->z_format,
+ rp->r_abbrvar,
+ rp->r_stdoff !=
+ 0,
+ FALSE);
+ }
+ }
+ eats(zp->z_filename, zp->z_linenum,
+ rp->r_filename, rp->r_linenum);
+ doabbr(ab, zp->z_format, rp->r_abbrvar,
+ rp->r_stdoff != 0, FALSE);
+ offset = oadd(zp->z_gmtoff, rp->r_stdoff);
+#ifdef ICU
+ type = addtype(offset, zp->z_gmtoff, rp->r_stdoff,
+ ab, rp->r_stdoff != 0,
+ rp->r_todisstd, rp->r_todisgmt);
+#else
+ type = addtype(offset, ab, rp->r_stdoff != 0,
+ rp->r_todisstd, rp->r_todisgmt);
+#endif
+ addtt(ktime, type);
+ }
+ }
+ if (usestart) {
+ if (*startbuf == '\0' &&
+ zp->z_format != NULL &&
+ strchr(zp->z_format, '%') == NULL &&
+ strchr(zp->z_format, '/') == NULL)
+ (void) strcpy(startbuf, zp->z_format);
+ eat(zp->z_filename, zp->z_linenum);
+ if (*startbuf == '\0')
+error(_("can't determine time zone abbreviation to use just after until time"));
+ else addtt(starttime,
+#ifdef ICU
+ addtype(startoff,
+ zp->z_gmtoff, startoff - zp->z_gmtoff,
+ startbuf,
+ startoff != zp->z_gmtoff,
+ startttisstd,
+ startttisgmt));
+#else
+ addtype(startoff, startbuf,
+ startoff != zp->z_gmtoff,
+ startttisstd,
+ startttisgmt));
+#endif
+ }
+ /*
+ ** Now we may get to set starttime for the next zone line.
+ */
+ if (useuntil) {
+ startttisstd = zp->z_untilrule.r_todisstd;
+ startttisgmt = zp->z_untilrule.r_todisgmt;
+ starttime = zp->z_untiltime;
+ if (!startttisstd)
+ starttime = tadd(starttime, -stdoff);
+ if (!startttisgmt)
+ starttime = tadd(starttime, -gmtoff);
+ }
+ }
+ writezone(zpfirst->z_name, envvar);
+ ifree(startbuf);
+ ifree(ab);
+ ifree(envvar);
+}
+
+static void
+addtt(starttime, type)
+const zic_t starttime;
+int type;
+{
+ if (starttime <= min_time ||
+ (timecnt == 1 && attypes[0].at < min_time)) {
+ gmtoffs[0] = gmtoffs[type];
+#ifdef ICU
+ rawoffs[0] = rawoffs[type];
+ dstoffs[0] = dstoffs[type];
+#endif
+ isdsts[0] = isdsts[type];
+ ttisstds[0] = ttisstds[type];
+ ttisgmts[0] = ttisgmts[type];
+ if (abbrinds[type] != 0)
+ (void) strcpy(chars, &chars[abbrinds[type]]);
+ abbrinds[0] = 0;
+ charcnt = strlen(chars) + 1;
+ typecnt = 1;
+ timecnt = 0;
+ type = 0;
+ }
+ if (timecnt >= TZ_MAX_TIMES) {
+ error(_("too many transitions?!"));
+ exit(EXIT_FAILURE);
+ }
+ attypes[timecnt].at = starttime;
+ attypes[timecnt].type = type;
+ ++timecnt;
+}
+
+static int
+#ifdef ICU
+addtype(gmtoff, rawoff, dstoff, abbr, isdst, ttisstd, ttisgmt)
+const long gmtoff;
+const long rawoff;
+const long dstoff;
+#else
+addtype(gmtoff, abbr, isdst, ttisstd, ttisgmt)
+const long gmtoff;
+#endif
+const char * const abbr;
+const int isdst;
+const int ttisstd;
+const int ttisgmt;
+{
+ register int i, j;
+
+ if (isdst != TRUE && isdst != FALSE) {
+ error(_("internal error - addtype called with bad isdst"));
+ exit(EXIT_FAILURE);
+ }
+ if (ttisstd != TRUE && ttisstd != FALSE) {
+ error(_("internal error - addtype called with bad ttisstd"));
+ exit(EXIT_FAILURE);
+ }
+ if (ttisgmt != TRUE && ttisgmt != FALSE) {
+ error(_("internal error - addtype called with bad ttisgmt"));
+ exit(EXIT_FAILURE);
+ }
+#ifdef ICU
+ if (isdst != (dstoff != 0)) {
+ error(_("internal error - addtype called with bad isdst/dstoff"));
+ (void) exit(EXIT_FAILURE);
+ }
+ if (gmtoff != (rawoff + dstoff)) {
+ error(_("internal error - addtype called with bad gmt/raw/dstoff"));
+ (void) exit(EXIT_FAILURE);
+ }
+#endif
+ /*
+ ** See if there's already an entry for this zone type.
+ ** If so, just return its index.
+ */
+ for (i = 0; i < typecnt; ++i) {
+ if (gmtoff == gmtoffs[i] && isdst == isdsts[i] &&
+#ifdef ICU
+ rawoff == rawoffs[i] && dstoff == dstoffs[i] &&
+#endif
+ strcmp(abbr, &chars[abbrinds[i]]) == 0 &&
+ ttisstd == ttisstds[i] &&
+ ttisgmt == ttisgmts[i])
+ return i;
+ }
+ /*
+ ** There isn't one; add a new one, unless there are already too
+ ** many.
+ */
+ if (typecnt >= TZ_MAX_TYPES) {
+ error(_("too many local time types"));
+ exit(EXIT_FAILURE);
+ }
+ gmtoffs[i] = gmtoff;
+#ifdef ICU
+ rawoffs[i] = rawoff;
+ dstoffs[i] = dstoff;
+#endif
+ isdsts[i] = isdst;
+ ttisstds[i] = ttisstd;
+ ttisgmts[i] = ttisgmt;
+
+ for (j = 0; j < charcnt; ++j)
+ if (strcmp(&chars[j], abbr) == 0)
+ break;
+ if (j == charcnt)
+ newabbr(abbr);
+ abbrinds[i] = j;
+ ++typecnt;
+ return i;
+}
+
+static void
+leapadd(t, positive, rolling, count)
+const zic_t t;
+const int positive;
+const int rolling;
+int count;
+{
+ register int i, j;
+
+ if (leapcnt + (positive ? count : 1) > TZ_MAX_LEAPS) {
+ error(_("too many leap seconds"));
+ exit(EXIT_FAILURE);
+ }
+ for (i = 0; i < leapcnt; ++i)
+ if (t <= trans[i]) {
+ if (t == trans[i]) {
+ error(_("repeated leap second moment"));
+ exit(EXIT_FAILURE);
+ }
+ break;
+ }
+ do {
+ for (j = leapcnt; j > i; --j) {
+ trans[j] = trans[j - 1];
+ corr[j] = corr[j - 1];
+ roll[j] = roll[j - 1];
+ }
+ trans[i] = t;
+ corr[i] = positive ? 1L : eitol(-count);
+ roll[i] = rolling;
+ ++leapcnt;
+ } while (positive && --count != 0);
+}
+
+static void
+adjleap P((void))
+{
+ register int i;
+ register long last = 0;
+
+ /*
+ ** propagate leap seconds forward
+ */
+ for (i = 0; i < leapcnt; ++i) {
+ trans[i] = tadd(trans[i], last);
+ last = corr[i] += last;
+ }
+}
+
+static int
+yearistype(year, type)
+const int year;
+const char * const type;
+{
+ static char * buf;
+ int result;
+
+ if (type == NULL || *type == '\0')
+ return TRUE;
+ buf = erealloc(buf, (int) (132 + strlen(yitcommand) + strlen(type)));
+ (void) sprintf(buf, "%s %d %s", yitcommand, year, type);
+ result = system(buf);
+ if (WIFEXITED(result)) switch (WEXITSTATUS(result)) {
+ case 0:
+ return TRUE;
+ case 1:
+ return FALSE;
+ }
+ error(_("Wild result from command execution"));
+ (void) fprintf(stderr, _("%s: command was '%s', result was %d\n"),
+ progname, buf, result);
+ for ( ; ; )
+ exit(EXIT_FAILURE);
+}
+
+static int
+lowerit(a)
+int a;
+{
+ a = (unsigned char) a;
+ return (isascii(a) && isupper(a)) ? tolower(a) : a;
+}
+
+static int
+ciequal(ap, bp) /* case-insensitive equality */
+register const char * ap;
+register const char * bp;
+{
+ while (lowerit(*ap) == lowerit(*bp++))
+ if (*ap++ == '\0')
+ return TRUE;
+ return FALSE;
+}
+
+static int
+itsabbr(abbr, word)
+register const char * abbr;
+register const char * word;
+{
+ if (lowerit(*abbr) != lowerit(*word))
+ return FALSE;
+ ++word;
+ while (*++abbr != '\0')
+ do {
+ if (*word == '\0')
+ return FALSE;
+ } while (lowerit(*word++) != lowerit(*abbr));
+ return TRUE;
+}
+
+static const struct lookup *
+byword(word, table)
+register const char * const word;
+register const struct lookup * const table;
+{
+ register const struct lookup * foundlp;
+ register const struct lookup * lp;
+
+ if (word == NULL || table == NULL)
+ return NULL;
+ /*
+ ** Look for exact match.
+ */
+ for (lp = table; lp->l_word != NULL; ++lp)
+ if (ciequal(word, lp->l_word))
+ return lp;
+ /*
+ ** Look for inexact match.
+ */
+ foundlp = NULL;
+ for (lp = table; lp->l_word != NULL; ++lp)
+ if (itsabbr(word, lp->l_word)) {
+ if (foundlp == NULL)
+ foundlp = lp;
+ else return NULL; /* multiple inexact matches */
+ }
+ return foundlp;
+}
+
+static char **
+getfields(cp)
+register char * cp;
+{
+ register char * dp;
+ register char ** array;
+ register int nsubs;
+
+ if (cp == NULL)
+ return NULL;
+ array = (char **) (void *)
+ emalloc((int) ((strlen(cp) + 1) * sizeof *array));
+ nsubs = 0;
+ for ( ; ; ) {
+ while (isascii((unsigned char) *cp) &&
+ isspace((unsigned char) *cp))
+ ++cp;
+ if (*cp == '\0' || *cp == '#')
+ break;
+ array[nsubs++] = dp = cp;
+ do {
+ if ((*dp = *cp++) != '"')
+ ++dp;
+ else while ((*dp = *cp++) != '"')
+ if (*dp != '\0')
+ ++dp;
+ else error(_(
+ "Odd number of quotation marks"
+ ));
+ } while (*cp != '\0' && *cp != '#' &&
+ (!isascii(*cp) || !isspace((unsigned char) *cp)));
+ if (isascii(*cp) && isspace((unsigned char) *cp))
+ ++cp;
+ *dp = '\0';
+ }
+ array[nsubs] = NULL;
+ return array;
+}
+
+static long
+oadd(t1, t2)
+const long t1;
+const long t2;
+{
+ register long t;
+
+ t = t1 + t2;
+ if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1)) {
+ error(_("time overflow"));
+ exit(EXIT_FAILURE);
+ }
+ return t;
+}
+
+static zic_t
+tadd(t1, t2)
+const zic_t t1;
+const long t2;
+{
+ register zic_t t;
+
+ if (t1 == max_time && t2 > 0)
+ return max_time;
+ if (t1 == min_time && t2 < 0)
+ return min_time;
+ t = t1 + t2;
+ if ((t2 > 0 && t <= t1) || (t2 < 0 && t >= t1)) {
+ error(_("time overflow"));
+ exit(EXIT_FAILURE);
+ }
+ return t;
+}
+
+/*
+** Given a rule, and a year, compute the date - in seconds since January 1,
+** 1970, 00:00 LOCAL time - in that year that the rule refers to.
+*/
+
+static zic_t
+rpytime(rp, wantedy)
+register const struct rule * const rp;
+register const int wantedy;
+{
+ register int y, m, i;
+ register long dayoff; /* with a nod to Margaret O. */
+ register zic_t t;
+
+ if (wantedy == INT_MIN)
+ return min_time;
+ if (wantedy == INT_MAX)
+ return max_time;
+ dayoff = 0;
+ m = TM_JANUARY;
+ y = EPOCH_YEAR;
+ while (wantedy != y) {
+ if (wantedy > y) {
+ i = len_years[isleap(y)];
+ ++y;
+ } else {
+ --y;
+ i = -len_years[isleap(y)];
+ }
+ dayoff = oadd(dayoff, eitol(i));
+ }
+ while (m != rp->r_month) {
+ i = len_months[isleap(y)][m];
+ dayoff = oadd(dayoff, eitol(i));
+ ++m;
+ }
+ i = rp->r_dayofmonth;
+ if (m == TM_FEBRUARY && i == 29 && !isleap(y)) {
+ if (rp->r_dycode == DC_DOWLEQ)
+ --i;
+ else {
+ error(_("use of 2/29 in non leap-year"));
+ exit(EXIT_FAILURE);
+ }
+ }
+ --i;
+ dayoff = oadd(dayoff, eitol(i));
+ if (rp->r_dycode == DC_DOWGEQ || rp->r_dycode == DC_DOWLEQ) {
+ register long wday;
+
+#define LDAYSPERWEEK ((long) DAYSPERWEEK)
+ wday = eitol(EPOCH_WDAY);
+ /*
+ ** Don't trust mod of negative numbers.
+ */
+ if (dayoff >= 0)
+ wday = (wday + dayoff) % LDAYSPERWEEK;
+ else {
+ wday -= ((-dayoff) % LDAYSPERWEEK);
+ if (wday < 0)
+ wday += LDAYSPERWEEK;
+ }
+ while (wday != eitol(rp->r_wday))
+ if (rp->r_dycode == DC_DOWGEQ) {
+ dayoff = oadd(dayoff, (long) 1);
+ if (++wday >= LDAYSPERWEEK)
+ wday = 0;
+ ++i;
+ } else {
+ dayoff = oadd(dayoff, (long) -1);
+ if (--wday < 0)
+ wday = LDAYSPERWEEK - 1;
+ --i;
+ }
+ if (i < 0 || i >= len_months[isleap(y)][m]) {
+ if (noise)
+ warning(_("rule goes past start/end of month--\
+will not work with pre-2004 versions of zic"));
+ }
+ }
+ if (dayoff < min_time / SECSPERDAY)
+ return min_time;
+ if (dayoff > max_time / SECSPERDAY)
+ return max_time;
+ t = (zic_t) dayoff * SECSPERDAY;
+ return tadd(t, rp->r_tod);
+}
+
+static void
+newabbr(string)
+const char * const string;
+{
+ register int i;
+
+ if (strcmp(string, GRANDPARENTED) != 0) {
+ register const char * cp;
+ register char * wp;
+
+ /*
+ ** Want one to ZIC_MAX_ABBR_LEN_WO_WARN alphabetics
+ ** optionally followed by a + or - and a number from 1 to 14.
+ */
+ cp = string;
+ wp = NULL;
+ while (isascii((unsigned char) *cp) &&
+ isalpha((unsigned char) *cp))
+ ++cp;
+ if (cp - string == 0)
+wp = _("time zone abbreviation lacks alphabetic at start");
+ if (noise && cp - string > 3)
+wp = _("time zone abbreviation has more than 3 alphabetics");
+ if (cp - string > ZIC_MAX_ABBR_LEN_WO_WARN)
+wp = _("time zone abbreviation has too many alphabetics");
+ if (wp == NULL && (*cp == '+' || *cp == '-')) {
+ ++cp;
+ if (isascii((unsigned char) *cp) &&
+ isdigit((unsigned char) *cp))
+ if (*cp++ == '1' &&
+ *cp >= '0' && *cp <= '4')
+ ++cp;
+ }
+ if (*cp != '\0')
+wp = _("time zone abbreviation differs from POSIX standard");
+ if (wp != NULL) {
+ wp = ecpyalloc(wp);
+ wp = ecatalloc(wp, " (");
+ wp = ecatalloc(wp, string);
+ wp = ecatalloc(wp, ")");
+ warning(wp);
+ ifree(wp);
+ }
+ }
+ i = strlen(string) + 1;
+ if (charcnt + i > TZ_MAX_CHARS) {
+ error(_("too many, or too long, time zone abbreviations"));
+ exit(EXIT_FAILURE);
+ }
+ (void) strcpy(&chars[charcnt], string);
+ charcnt += eitol(i);
+}
+
+static int
+mkdirs(argname)
+char * const argname;
+{
+ register char * name;
+ register char * cp;
+
+ if (argname == NULL || *argname == '\0')
+ return 0;
+ cp = name = ecpyalloc(argname);
+ while ((cp = strchr(cp + 1, '/')) != 0) {
+ *cp = '\0';
+#ifndef unix
+ /*
+ ** DOS drive specifier?
+ */
+ if (isalpha((unsigned char) name[0]) &&
+ name[1] == ':' && name[2] == '\0') {
+ *cp = '/';
+ continue;
+ }
+#endif /* !defined unix */
+ if (!itsdir(name)) {
+ /*
+ ** It doesn't seem to exist, so we try to create it.
+ ** Creation may fail because of the directory being
+ ** created by some other multiprocessor, so we get
+ ** to do extra checking.
+ */
+ if (mkdir(name, MKDIR_UMASK) != 0) {
+ const char *e = strerror(errno);
+
+ if (errno != EEXIST || !itsdir(name)) {
+ (void) fprintf(stderr,
+_("%s: Can't create directory %s: %s\n"),
+ progname, name, e);
+ ifree(name);
+ return -1;
+ }
+ }
+ }
+ *cp = '/';
+ }
+ ifree(name);
+ return 0;
+}
+
+static long
+eitol(i)
+const int i;
+{
+ long l;
+
+ l = i;
+ if ((i < 0 && l >= 0) || (i == 0 && l != 0) || (i > 0 && l <= 0)) {
+ (void) fprintf(stderr,
+ _("%s: %d did not sign extend correctly\n"),
+ progname, i);
+ exit(EXIT_FAILURE);
+ }
+ return l;
+}
+
+/*
+** UNIX was a registered trademark of The Open Group in 2003.
+*/